From 43851932e8f329fea6fed32d5b58438432954ec5 Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Tue, 4 Nov 2025 13:37:27 +0700 Subject: [PATCH 01/17] feat(dbml-core): add Oracle parser --- .../__tests__/importer/importer.spec.js | 4 + .../input/alter_table_add_check.in.sql | 207 + .../input/alter_table_add_fk.in.sql | 147 + .../input/alter_table_add_not_null.in.sql | 93 + .../input/alter_table_add_pk.in.sql | 69 + .../input/alter_table_add_unique.in.sql | 69 + .../alter_table_check_constraints.in.sql | 81 + .../input/alter_table_set_default.in.sql | 175 + .../input/alter_table_set_nullable.in.sql | 169 + .../input/column_def_checks.in.sql | 242 + .../input/column_def_default.in.sql | 281 + .../input/column_def_fk.in.sql | 220 + .../input/column_def_increment.in.sql | 93 + .../input/column_def_not_null.in.sql | 196 + .../input/column_def_pk.in.sql | 196 + .../input/column_def_unique.in.sql | 196 + .../oracle_importer/input/comment.in.sql | 6 + .../oracle_importer/input/create_index.in.sql | 123 + .../oracle_importer/input/create_table.in.sql | 317 + .../oracle_importer/input/data_types.in.sql | 26 + .../input/in_table_checks.in.sql | 137 + .../oracle_importer/input/in_table_fk.in.sql | 133 + .../oracle_importer/input/in_table_pk.in.sql | 70 + .../input/in_table_unique.in.sql | 70 + .../input/insert_general.in.sql | 162 + .../output/alter_table_add_check.out.dbml | 71 + .../output/alter_table_add_fk.out.dbml | 83 + .../output/alter_table_add_not_null.out.dbml | 37 + .../output/alter_table_add_pk.out.dbml | 64 + .../output/alter_table_add_unique.out.dbml | 64 + .../alter_table_check_constraints.out.dbml | 70 + .../output/alter_table_set_default.out.dbml | 62 + .../output/alter_table_set_nullable.out.dbml | 66 + .../output/column_def_checks.out.dbml | 190 + .../output/column_def_default.out.dbml | 213 + .../output/column_def_fk.out.dbml | 271 + .../output/column_def_increment.out.dbml | 76 + .../output/column_def_not_null.out.dbml | 152 + .../output/column_def_pk.out.dbml | 152 + .../output/column_def_unique.out.dbml | 152 + .../oracle_importer/output/comment.out.dbml | 4 + .../output/create_index.out.dbml | 86 + .../output/create_table.out.dbml | 217 + .../output/data_types.out.dbml | 26 + .../output/in_table_checks.out.dbml | 143 + .../output/in_table_fk.out.dbml | 125 + .../output/in_table_pk.out.dbml | 69 + .../output/in_table_unique.out.dbml | 69 + .../output/insert_general.out.dbml | 16 + .../input/alter_table_add_check.in.sql | 207 + .../input/alter_table_add_fk.in.sql | 147 + .../input/alter_table_add_not_null.in.sql | 93 + .../input/alter_table_add_pk.in.sql | 69 + .../input/alter_table_add_unique.in.sql | 69 + .../alter_table_check_constraints.in.sql | 81 + .../input/alter_table_set_default.in.sql | 175 + .../input/alter_table_set_nullable.in.sql | 169 + .../input/column_def_checks.in.sql | 242 + .../input/column_def_default.in.sql | 281 + .../oracle-parse/input/column_def_fk.in.sql | 220 + .../input/column_def_increment.in.sql | 93 + .../input/column_def_not_null.in.sql | 196 + .../oracle-parse/input/column_def_pk.in.sql | 196 + .../input/column_def_unique.in.sql | 196 + .../parser/oracle-parse/input/comment.in.sql | 6 + .../oracle-parse/input/create_index.in.sql | 123 + .../oracle-parse/input/create_table.in.sql | 317 + .../oracle-parse/input/data_types.in.sql | 26 + .../oracle-parse/input/in_table_checks.in.sql | 137 + .../oracle-parse/input/in_table_fk.in.sql | 133 + .../oracle-parse/input/in_table_pk.in.sql | 70 + .../oracle-parse/input/in_table_unique.in.sql | 70 + .../oracle-parse/input/insert_general.in.sql | 162 + .../output/alter_table_add_check.out.json | 273 + .../output/alter_table_add_fk.out.json | 540 + .../output/alter_table_add_not_null.out.json | 220 + .../output/alter_table_add_pk.out.json | 346 + .../output/alter_table_add_unique.out.json | 345 + .../alter_table_check_constraints.out.json | 336 + .../output/alter_table_set_default.out.json | 444 + .../output/alter_table_set_nullable.out.json | 450 + .../output/column_def_checks.out.json | 1471 + .../output/column_def_default.out.json | 1509 + .../output/column_def_fk.out.json | 1643 + .../output/column_def_increment.out.json | 483 + .../output/column_def_not_null.out.json | 810 + .../output/column_def_pk.out.json | 767 + .../output/column_def_unique.out.json | 807 + .../oracle-parse/output/comment.out.json | 31 + .../oracle-parse/output/create_index.out.json | 528 + .../oracle-parse/output/create_table.out.json | 1010 + .../oracle-parse/output/data_types.out.json | 186 + .../output/in_table_checks.out.json | 536 + .../oracle-parse/output/in_table_fk.out.json | 715 + .../oracle-parse/output/in_table_pk.out.json | 380 + .../output/in_table_unique.out.json | 380 + .../output/insert_general.out.json | 905 + .../dbml-core/__tests__/parser/parser.spec.js | 4 + .../parse/ANTLR/ASTGeneration/constants.js | 31 +- .../src/parse/ANTLR/ASTGeneration/index.js | 19 + .../oraclesql/OracleSQLASTGen.js | 961 + .../ANTLR/parsers/oraclesql/OracleSqlLexer.g4 | 2618 + .../parsers/oraclesql/OracleSqlLexer.interp | 7475 + .../ANTLR/parsers/oraclesql/OracleSqlLexer.js | 16413 + .../parsers/oraclesql/OracleSqlLexer.tokens | 4934 + .../parsers/oraclesql/OracleSqlLexerBase.js | 8 + .../parsers/oraclesql/OracleSqlParser.g4 | 9983 + .../parsers/oraclesql/OracleSqlParser.interp | 6174 + .../parsers/oraclesql/OracleSqlParser.js | 325346 +++++++++++++++ .../parsers/oraclesql/OracleSqlParser.tokens | 4934 + .../parsers/oraclesql/OracleSqlParserBase.js | 34 + .../oraclesql/OracleSqlParserVisitor.js | 7240 + packages/dbml-core/src/parse/Parser.js | 8 + packages/dbml-core/types/import/index.d.ts | 2 +- packages/dbml-core/types/parse/Parser.d.ts | 4 +- 115 files changed, 410724 insertions(+), 17 deletions(-) create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_check.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_fk.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_not_null.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_pk.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_unique.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_check_constraints.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_set_default.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_set_nullable.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_checks.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_default.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_fk.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_increment.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_not_null.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_pk.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_unique.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/comment.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/create_index.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/create_table.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/data_types.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_checks.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_fk.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_pk.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_unique.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/input/insert_general.in.sql create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_check.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_fk.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_not_null.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_pk.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_unique.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_check_constraints.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_set_default.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_set_nullable.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_checks.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_default.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_fk.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_increment.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_not_null.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_pk.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_unique.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/comment.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/create_index.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/create_table.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/data_types.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_checks.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_fk.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_pk.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_unique.out.dbml create mode 100644 packages/dbml-core/__tests__/importer/oracle_importer/output/insert_general.out.dbml create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_check.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_fk.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_not_null.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_pk.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_unique.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_check_constraints.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_set_default.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_set_nullable.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_checks.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_default.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_fk.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_increment.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_not_null.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_pk.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_unique.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/comment.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/create_index.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/create_table.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/data_types.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_checks.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_fk.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_pk.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_unique.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/input/insert_general.in.sql create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_check.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_fk.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_not_null.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_pk.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_unique.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_check_constraints.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_set_default.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_set_nullable.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_checks.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_default.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_fk.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_increment.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_not_null.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_pk.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_unique.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/comment.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/create_index.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/create_table.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/data_types.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_checks.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_fk.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_pk.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_unique.out.json create mode 100644 packages/dbml-core/__tests__/parser/oracle-parse/output/insert_general.out.json create mode 100644 packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js create mode 100644 packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.g4 create mode 100644 packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.interp create mode 100644 packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.js create mode 100644 packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.tokens create mode 100644 packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexerBase.js create mode 100644 packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.g4 create mode 100644 packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.interp create mode 100644 packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.js create mode 100644 packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.tokens create mode 100644 packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParserBase.js create mode 100644 packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParserVisitor.js diff --git a/packages/dbml-core/__tests__/importer/importer.spec.js b/packages/dbml-core/__tests__/importer/importer.spec.js index 43d11c605..fbb118479 100644 --- a/packages/dbml-core/__tests__/importer/importer.spec.js +++ b/packages/dbml-core/__tests__/importer/importer.spec.js @@ -33,4 +33,8 @@ describe('@dbml/core - importer', () => { test.each(scanTestNames(__dirname, 'snowflake_importer/input'))('snowflake_importer/%s', (name) => { runTest(name, 'snowflake_importer', 'snowflake'); }); + + test.each(scanTestNames(__dirname, 'oracle_importer/input'))('oracle_importer/%s', (name) => { + runTest(name, 'oracle_importer', 'oracle'); + }); }); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_check.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_check.in.sql new file mode 100644 index 000000000..d1bd30542 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_check.in.sql @@ -0,0 +1,207 @@ +-- Oracle SQL ALTER TABLE ADD CHECK Constraint Test Cases +-- Test setup: Create base tables +CREATE TABLE employees ( + emp_id NUMBER(10), + emp_name VARCHAR2(100), + salary NUMBER(10,2), + commission_pct NUMBER(3,2), + hire_date DATE, + email VARCHAR2(100), + department_id NUMBER(5), + status VARCHAR2(20), + age NUMBER(3), + performance_score NUMBER(3,1) +); + +CREATE TABLE products ( + product_id NUMBER(10), + product_name VARCHAR2(200), + price NUMBER(10,2), + discount_price NUMBER(10,2), + stock_quantity NUMBER(8), + category VARCHAR2(50), + weight NUMBER(8,2) +); + +-- ============================================ +-- NAMED CHECK CONSTRAINTS +-- ============================================ + +-- Simple column value check with named constraint +ALTER TABLE employees +ADD CONSTRAINT chk_salary_positive +CHECK (salary > 0); + +-- Range check with named constraint +ALTER TABLE employees +ADD CONSTRAINT chk_commission_range +CHECK (commission_pct BETWEEN 0 AND 1); + +-- String pattern check with named constraint +ALTER TABLE employees +ADD CONSTRAINT chk_status_values +CHECK (status IN ('ACTIVE', 'INACTIVE', 'ON_LEAVE', 'TERMINATED')); + +-- Email format check with named constraint +ALTER TABLE employees +ADD CONSTRAINT chk_email_format +CHECK (email LIKE '%@%'); + +-- Multiple column comparison with named constraint +ALTER TABLE products +ADD CONSTRAINT chk_price_comparison +CHECK (discount_price <= price); + +-- ============================================ +-- UNNAMED CHECK CONSTRAINTS +-- ============================================ + +-- Simple check without constraint name +ALTER TABLE employees +ADD CHECK (age >= 18); + +-- Range check without name +ALTER TABLE products +ADD CHECK (stock_quantity >= 0); + +-- String value check without name +ALTER TABLE products +ADD CHECK (category IS NOT NULL); + +-- Comparison check without name +ALTER TABLE employees +ADD CHECK (salary >= 0); + +-- ============================================ +-- COMPLEX EXPRESSION CHECKS +-- ============================================ + +-- Arithmetic expression +ALTER TABLE employees +ADD CONSTRAINT chk_salary_calculation +CHECK (salary * 12 > 0); + +-- Multiple conditions with AND +ALTER TABLE employees +ADD CONSTRAINT chk_salary_dept_rules +CHECK (salary > 0 AND department_id IS NOT NULL); + +-- Multiple conditions with OR +ALTER TABLE employees +ADD CONSTRAINT chk_commission_or_salary +CHECK (commission_pct > 0 OR salary > 50000); + +-- Complex arithmetic with multiple columns +ALTER TABLE products +ADD CONSTRAINT chk_price_margin +CHECK ((price - discount_price) >= price * 0.05); + +-- NULL handling +ALTER TABLE employees +ADD CONSTRAINT chk_email_required +CHECK (email IS NOT NULL AND LENGTH(email) > 5); + +-- CASE expression in check +ALTER TABLE employees +ADD CONSTRAINT chk_salary_by_status +CHECK ( + CASE + WHEN status = 'ACTIVE' THEN salary > 0 + WHEN status = 'INACTIVE' THEN 1 = 1 + ELSE 1 = 1 + END = 1 +); + +-- Function calls in check +ALTER TABLE employees +ADD CONSTRAINT chk_name_length +CHECK (LENGTH(TRIM(emp_name)) > 0); + +-- Mathematical functions +ALTER TABLE products +ADD CONSTRAINT chk_weight_reasonable +CHECK (weight > 0 AND weight < 10000); + +-- Date comparison +ALTER TABLE employees +ADD CONSTRAINT chk_hire_date_valid +CHECK (hire_date <= SYSDATE); + +-- NOT condition +ALTER TABLE products +ADD CONSTRAINT chk_price_not_negative +CHECK (NOT (price < 0)); + +-- Nested conditions +ALTER TABLE employees +ADD CONSTRAINT chk_complex_conditions +CHECK ( + (salary > 30000 AND age >= 21) OR + (salary <= 30000 AND age >= 18) +); + +-- String functions +ALTER TABLE employees +ADD CONSTRAINT chk_email_lowercase +CHECK (email = LOWER(email)); + +-- UPPER/LOWER with IN clause +ALTER TABLE products +ADD CONSTRAINT chk_category_uppercase +CHECK (UPPER(category) IN ('ELECTRONICS', 'CLOTHING', 'FOOD', 'BOOKS')); + +-- Multiple arithmetic operations +ALTER TABLE products +ADD CONSTRAINT chk_price_calculations +CHECK (price * stock_quantity > 0 AND price / 100 < 100000); + +-- Combining comparison operators +ALTER TABLE employees +ADD CONSTRAINT chk_performance_range +CHECK (performance_score >= 0.0 AND performance_score <= 10.0); + +-- Expression with parentheses +ALTER TABLE products +ADD CONSTRAINT chk_discount_rules +CHECK ((price - discount_price) * stock_quantity >= 0); + +-- LIKE with wildcards +ALTER TABLE employees +ADD CONSTRAINT chk_email_domain +CHECK (email LIKE '%@%.com' OR email LIKE '%@%.org'); + +-- NOT IN clause +ALTER TABLE employees +ADD CONSTRAINT chk_status_not_invalid +CHECK (status NOT IN ('PENDING', 'UNKNOWN')); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Very long expression +ALTER TABLE employees +ADD CONSTRAINT chk_comprehensive_validation +CHECK ( + salary > 0 AND + salary < 1000000 AND + age >= 18 AND + age <= 100 AND + (commission_pct IS NULL OR (commission_pct >= 0 AND commission_pct <= 1)) AND + status IN ('ACTIVE', 'INACTIVE', 'ON_LEAVE', 'TERMINATED') +); + +-- Multiple checks added in sequence for same table +ALTER TABLE products ADD CHECK (product_name IS NOT NULL); +ALTER TABLE products ADD CONSTRAINT chk_prod_name_length CHECK (LENGTH(product_name) <= 200); +ALTER TABLE products ADD CONSTRAINT chk_stock_max CHECK (stock_quantity <= 1000000); + +-- Check with BETWEEN and NOT +ALTER TABLE employees +ADD CONSTRAINT chk_age_working +CHECK (age BETWEEN 18 AND 70); + +-- Check constraint with IS NOT NULL combined with value check +ALTER TABLE employees +ADD CONSTRAINT chk_dept_valid +CHECK (department_id IS NOT NULL AND department_id > 0); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_fk.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_fk.in.sql new file mode 100644 index 000000000..6909b7c9b --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_fk.in.sql @@ -0,0 +1,147 @@ +-- Oracle SQL ALTER TABLE ADD FOREIGN KEY Constraint Test Cases +-- Test setup: Create base tables with primary keys +CREATE TABLE departments ( + dept_id NUMBER(10) PRIMARY KEY, + dept_name VARCHAR2(100), + location_id NUMBER(10), + manager_id NUMBER(10) +); + +CREATE TABLE locations ( + location_id NUMBER(10) PRIMARY KEY, + city VARCHAR2(100), + country_code CHAR(2) +); + +CREATE TABLE countries ( + country_code CHAR(2) PRIMARY KEY, + country_name VARCHAR2(100) +); + +CREATE TABLE employees ( + emp_id NUMBER(10) PRIMARY KEY, + emp_name VARCHAR2(100), + department_id NUMBER(10), + manager_id NUMBER(10), + hire_date DATE, + location_id NUMBER(10) +); + +CREATE TABLE projects ( + project_id NUMBER(10) PRIMARY KEY, + project_name VARCHAR2(200), + dept_id NUMBER(10), + lead_emp_id NUMBER(10), + backup_emp_id NUMBER(10) +); + +CREATE TABLE assignments ( + assignment_id NUMBER(10) PRIMARY KEY, + emp_id NUMBER(10), + project_id NUMBER(10), + start_date DATE +); + +-- Table with composite primary key +CREATE TABLE project_tasks ( + project_id NUMBER(10), + task_id NUMBER(10), + task_name VARCHAR2(200), + assigned_emp_id NUMBER(10), + PRIMARY KEY (project_id, task_id) +); + +CREATE TABLE task_hours ( + hour_id NUMBER(10) PRIMARY KEY, + project_id NUMBER(10), + task_id NUMBER(10), + hours_worked NUMBER(5,2) +); + +-- ============================================ +-- NAMED FOREIGN KEY CONSTRAINTS - BASIC +-- ============================================ + +-- Simple single-column FK with constraint name +ALTER TABLE employees +ADD CONSTRAINT fk_emp_dept +FOREIGN KEY (department_id) +REFERENCES departments(dept_id); + +-- Single-column FK referencing different table +ALTER TABLE departments +ADD CONSTRAINT fk_dept_location +FOREIGN KEY (location_id) +REFERENCES locations(location_id); + +-- FK with explicit column name in referenced table +ALTER TABLE locations +ADD CONSTRAINT fk_loc_country +FOREIGN KEY (country_code) +REFERENCES countries(country_code); + +-- Self-referencing FK (hierarchical) +ALTER TABLE employees +ADD CONSTRAINT fk_emp_manager +FOREIGN KEY (manager_id) +REFERENCES employees(emp_id); + +-- Another self-referencing FK on different table +ALTER TABLE departments +ADD CONSTRAINT fk_dept_manager +FOREIGN KEY (manager_id) +REFERENCES employees(emp_id); + +-- ============================================ +-- UNNAMED FOREIGN KEY CONSTRAINTS +-- ============================================ + +-- FK without explicit constraint name (Oracle auto-generates) +ALTER TABLE projects +ADD FOREIGN KEY (dept_id) +REFERENCES departments(dept_id); + +-- Another unnamed FK +ALTER TABLE assignments +ADD FOREIGN KEY (emp_id) +REFERENCES employees(emp_id); + +-- Unnamed FK with different columns +ALTER TABLE assignments +ADD FOREIGN KEY (project_id) +REFERENCES projects(project_id); + +-- ============================================ +-- COMPOSITE FOREIGN KEYS (Multiple Columns) +-- ============================================ + +-- Two-column composite FK +ALTER TABLE task_hours +ADD CONSTRAINT fk_task_hours_project_task +FOREIGN KEY (project_id, task_id) +REFERENCES project_tasks(project_id, task_id); + +-- ============================================ +-- FOREIGN KEYS WITH ON DELETE ACTIONS +-- ============================================ + +-- ON DELETE CASCADE - delete child records when parent is deleted +ALTER TABLE projects +ADD CONSTRAINT fk_proj_lead_emp +FOREIGN KEY (lead_emp_id) +REFERENCES employees(emp_id) +ON DELETE CASCADE; + +-- ON DELETE SET NULL - set FK to NULL when parent is deleted +ALTER TABLE projects +ADD CONSTRAINT fk_proj_backup_emp +FOREIGN KEY (backup_emp_id) +REFERENCES employees(emp_id) +ON DELETE SET NULL; + +-- ON DELETE CASCADE with named constraint +ALTER TABLE project_tasks +ADD CONSTRAINT fk_task_assigned_emp +FOREIGN KEY (assigned_emp_id) +REFERENCES employees(emp_id) +ON DELETE CASCADE; diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_not_null.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_not_null.in.sql new file mode 100644 index 000000000..aa10cf096 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_not_null.in.sql @@ -0,0 +1,93 @@ +-- Oracle SQL ALTER TABLE ADD NOT NULL Constraint Test Cases +-- Test setup: Create base tables with minimal required fields +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100), + email VARCHAR2(100), + phone VARCHAR2(20) +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200), + price NUMBER(10,2), + category VARCHAR2(50), + manufacturer VARCHAR2(100), + sku VARCHAR2(50) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10), + ship_date DATE, + total_amount NUMBER(12,2) +); + +CREATE TABLE departments ( + dept_id NUMBER(10), + dept_name VARCHAR2(100), + manager_id NUMBER(10), + status VARCHAR2(20) +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10), + supp_name VARCHAR2(100), + contact VARCHAR2(100), + ssn VARCHAR2(11), + badge_number VARCHAR2(10) +); + +-- ============================================ +-- BASIC NOT NULL CONSTRAINTS +-- ============================================ + +-- Simple NOT NULL constraint (Oracle 11g+ inline syntax) +-- Note: In Oracle, NOT NULL is technically a CHECK constraint +ALTER TABLE customers +MODIFY cust_name NOT NULL; + +-- NOT NULL on numeric column +ALTER TABLE inventory +MODIFY price NOT NULL; + +-- NOT NULL on date column +ALTER TABLE shipments +MODIFY ship_date NOT NULL; + +-- NOT NULL on VARCHAR2 column +ALTER TABLE customers +MODIFY email NOT NULL; + +-- NOT NULL on CHAR column +ALTER TABLE inventory +MODIFY category NOT NULL; + +-- ============================================ +-- NAMED NOT NULL CONSTRAINTS +-- ============================================ + +-- NOT NULL with explicit constraint name +ALTER TABLE departments +MODIFY dept_name CONSTRAINT nn_dept_name NOT NULL; + +-- Multiple named NOT NULL constraints +ALTER TABLE shipments +MODIFY customer_id CONSTRAINT nn_ship_customer NOT NULL; + +ALTER TABLE suppliers +MODIFY supp_name CONSTRAINT nn_supp_name NOT NULL; + +-- Named NOT NULL on different data types +ALTER TABLE inventory +MODIFY item_name CONSTRAINT nn_item_name NOT NULL; + +ALTER TABLE shipments +MODIFY total_amount CONSTRAINT nn_ship_total NOT NULL; + +ALTER TABLE departments +MODIFY dept_id CONSTRAINT nn_dept_id NOT NULL; + +-- Multiple NOT NULL constraints +ALTER TABLE inventory +MODIFY (manufacturer NOT NULL, sku NOT NULL); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_pk.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_pk.in.sql new file mode 100644 index 000000000..1e4eda293 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_pk.in.sql @@ -0,0 +1,69 @@ +-- Oracle SQL ALTER TABLE Add Primary Key Test Cases +-- Test setup: Create tables without PRIMARY KEY constraints +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100) NOT NULL, + email VARCHAR2(100), + phone VARCHAR2(20), + address VARCHAR2(200) +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200) NOT NULL, + price NUMBER(10,2) NOT NULL, + category VARCHAR2(50), + sku VARCHAR2(50) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10) NOT NULL, + ship_date DATE, + total_amount NUMBER(12,2), + tracking_number VARCHAR2(50) +); + +CREATE TABLE datatype_tests ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +CREATE TABLE complex_test ( + id NUMBER(10), + code VARCHAR2(20) UNIQUE, + name VARCHAR2(100) NOT NULL, + parent_id NUMBER(10), + status VARCHAR2(20), + CONSTRAINT fk_complex_parent FOREIGN KEY (parent_id) REFERENCES complex_test(id) +); + +CREATE TABLE combo_test ( + col1 NUMBER(10), + col2 VARCHAR2(50) +); + +-- ============================================ +-- ADD PRIMARY KEY CONSTRAINTS (All Methods) +-- ============================================ + +-- Method 1: Add PRIMARY KEY using ALTER TABLE with named constraint +ALTER TABLE customers +ADD CONSTRAINT pk_cust_id PRIMARY KEY (cust_id); + +-- Method 2: Add PRIMARY KEY using ALTER TABLE without constraint name +ALTER TABLE inventory +ADD PRIMARY KEY (item_id); + +-- Method 3: Add composite PRIMARY KEY (multiple columns) +ALTER TABLE complex_test +ADD CONSTRAINT pk_complex_composite PRIMARY KEY (id, code); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_unique.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_unique.in.sql new file mode 100644 index 000000000..6448262bc --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_add_unique.in.sql @@ -0,0 +1,69 @@ +-- Oracle SQL ALTER TABLE Add Unique Constraint Test Cases +-- Test setup: Create tables without UNIQUE constraints +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100) NOT NULL, + email VARCHAR2(100), + phone VARCHAR2(20), + address VARCHAR2(200) +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200) NOT NULL, + price NUMBER(10,2) NOT NULL, + category VARCHAR2(50), + sku VARCHAR2(50) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10) NOT NULL, + ship_date DATE, + total_amount NUMBER(12,2), + tracking_number VARCHAR2(50) +); + +CREATE TABLE datatype_tests ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +CREATE TABLE complex_test ( + id NUMBER(10), + code VARCHAR2(20), + name VARCHAR2(100) NOT NULL, + parent_id NUMBER(10), + status VARCHAR2(20), + CONSTRAINT fk_complex_parent FOREIGN KEY (parent_id) REFERENCES complex_test(id) +); + +CREATE TABLE combo_test ( + col1 NUMBER(10), + col2 VARCHAR2(50) +); + +-- ============================================ +-- ADD UNIQUE CONSTRAINTS (All Methods) +-- ============================================ + +-- Method 1: Add UNIQUE constraint using ALTER TABLE with named constraint +ALTER TABLE customers +ADD CONSTRAINT uk_cust_phone UNIQUE (phone); + +-- Method 2: Add UNIQUE constraint without constraint name +ALTER TABLE inventory +ADD UNIQUE (sku); + +-- Method 3: Add composite UNIQUE constraint (multiple columns) +ALTER TABLE complex_test +ADD CONSTRAINT uk_complex_id_status UNIQUE (id, status); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_check_constraints.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_check_constraints.in.sql new file mode 100644 index 000000000..965283965 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_check_constraints.in.sql @@ -0,0 +1,81 @@ +-- Oracle SQL ALTER TABLE Add Check Constraint Test Cases +-- Test setup: Create tables without CHECK constraints +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100) NOT NULL, + email VARCHAR2(100), + phone VARCHAR2(20), + address VARCHAR2(200) +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200) NOT NULL, + price NUMBER(10,2) NOT NULL, + category VARCHAR2(50), + sku VARCHAR2(50) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10) NOT NULL, + ship_date DATE, + total_amount NUMBER(12,2), + tracking_number VARCHAR2(50) +); + +CREATE TABLE datatype_tests ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +CREATE TABLE complex_test ( + id NUMBER(10), + code VARCHAR2(20), + name VARCHAR2(100) NOT NULL, + parent_id NUMBER(10), + status VARCHAR2(20), + CONSTRAINT fk_complex_parent FOREIGN KEY (parent_id) REFERENCES complex_test(id) +); + +CREATE TABLE combo_test ( + col1 NUMBER(10), + col2 VARCHAR2(50) +); + +-- ============================================ +-- ADD CHECK CONSTRAINTS (All Methods) +-- ============================================ + +-- Method 1: Add CHECK constraint with named constraint (single condition) +ALTER TABLE customers +ADD CONSTRAINT chk_cust_id_pos CHECK (cust_id > 0); + +-- Method 2: Add CHECK constraint without constraint name +ALTER TABLE inventory +ADD CHECK (price >= 0); + +-- Method 3: Add CHECK constraint with multiple conditions (compound expression) +ALTER TABLE shipments +ADD CONSTRAINT chk_ship_amount CHECK (total_amount >= 0); + +-- Method 4: Add CHECK constraint on VARCHAR2 with specific values +ALTER TABLE inventory +ADD CONSTRAINT chk_inv_category CHECK (category IN ('ELECTRONICS', 'CLOTHING', 'BOOKS')); + +-- Method 5: Add CHECK constraint with date comparison +ALTER TABLE shipments +ADD CONSTRAINT chk_ship_date_valid CHECK (ship_date >= TRUNC(SYSDATE)); + +-- Method 6: Add CHECK constraint with complex expression (multiple columns) +ALTER TABLE complex_test +ADD CONSTRAINT chk_id_status CHECK (id IS NOT NULL OR status = 'ACTIVE'); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_set_default.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_set_default.in.sql new file mode 100644 index 000000000..08509fcb1 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_set_default.in.sql @@ -0,0 +1,175 @@ +-- Oracle SQL ALTER TABLE Set Column Default Test Cases +-- Test setup: Create base tables with minimal required fields +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100), + email VARCHAR2(100), + phone VARCHAR2(20) DEFAULT '0123456789', + address VARCHAR2(200), + status VARCHAR2(20) DEFAULT 'active', + reg_date DATE, + last_login TIMESTAMP +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200), + price NUMBER(10,2), + category VARCHAR2(50), + sku VARCHAR2(50), + weight NUMBER(8,2), + stock_level NUMBER(10), + reorder_level NUMBER(10) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10), + ship_date DATE, + total_amount NUMBER(12,2), + tracking_number VARCHAR2(50), + carrier VARCHAR2(100), + priority NUMBER(2), + notes VARCHAR2(4000) +); + +CREATE TABLE departments ( + dept_id NUMBER(10), + dept_name VARCHAR2(100), + manager_id NUMBER(10), + budget NUMBER(12,2), + location VARCHAR2(50), + established_date DATE +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10), + supp_name VARCHAR2(100), + contact VARCHAR2(100), + ssn VARCHAR2(11), + badge_number VARCHAR2(10), + credit_limit NUMBER(10,2) +); + +CREATE TABLE test_defaults ( + col1 NUMBER, + col2 VARCHAR2(50), + col3 DATE, + col4 TIMESTAMP, + col5 CLOB, + col6 RAW(100), + col7 FLOAT, + col8 INTEGER, + col9 NVARCHAR2(100) +); + +-- Create sequence for testing +CREATE SEQUENCE test_seq START WITH 1 INCREMENT BY 1; + +-- ============================================ +-- BASIC DEFAULT SETTINGS +-- ============================================ + +-- Simple DEFAULT constraint (numeric literal) +ALTER TABLE customers +MODIFY cust_id DEFAULT 0; + +-- DEFAULT on VARCHAR2 column (string literal) +ALTER TABLE inventory +MODIFY item_name DEFAULT 'Unknown'; + +-- DEFAULT on DATE column +ALTER TABLE shipments +MODIFY ship_date DEFAULT SYSDATE; + +-- DEFAULT on NUMBER column +ALTER TABLE departments +MODIFY budget DEFAULT 10000.00; + +-- DEFAULT on CHAR/VARCHAR2 column +ALTER TABLE suppliers +MODIFY contact DEFAULT 'N/A'; + +-- ============================================ +-- DEFAULT WITH EXPRESSIONS +-- ============================================ + +-- DEFAULT with SYSDATE +ALTER TABLE customers +MODIFY reg_date DEFAULT SYSDATE; + +-- DEFAULT with USER function +ALTER TABLE inventory +MODIFY category DEFAULT USER; + +-- DEFAULT with SYS_GUID() +ALTER TABLE shipments +MODIFY tracking_number DEFAULT SYS_GUID(); + +-- DEFAULT with sequence.NEXTVAL +ALTER TABLE departments +MODIFY dept_id DEFAULT test_seq.NEXTVAL; + +-- DEFAULT with arithmetic expression +ALTER TABLE suppliers +MODIFY credit_limit DEFAULT 5000 + 1000; + +-- ============================================ +-- DEFAULT ON NULL +-- ============================================ + +-- Simple DEFAULT ON NULL (literal) +ALTER TABLE customers +MODIFY email DEFAULT ON NULL 'noemail@example.com'; + +-- DEFAULT ON NULL on numeric column +ALTER TABLE inventory +MODIFY price DEFAULT ON NULL 0.00; + +-- DEFAULT ON NULL on date column +ALTER TABLE shipments +MODIFY customer_id DEFAULT ON NULL 1; + +-- DEFAULT ON NULL with expression +ALTER TABLE departments +MODIFY established_date DEFAULT ON NULL SYSDATE; + +-- DEFAULT ON NULL on VARCHAR2 +ALTER TABLE suppliers +MODIFY supp_name DEFAULT ON NULL 'Anonymous'; + +-- ============================================ +-- OVERRIDING DEFAULT +-- ============================================ + +-- Remove DEFAULT by setting to NULL +ALTER TABLE customers +MODIFY phone DEFAULT NULL; + +-- Overide DEFAULT +ALTER TABLE customers +MODIFY status DEFAULT 'churned'; + +-- ============================================ +-- MULTIPLE COLUMNS IN ONE STATEMENT +-- ============================================ + +-- Multiple DEFAULT settings in single ALTER +ALTER TABLE customers +MODIFY (cust_id DEFAULT 1, email DEFAULT 'email@example.com'); + +-- Multiple with mixed options +ALTER TABLE inventory +MODIFY (price DEFAULT 0.99 NOT NULL, category DEFAULT 'Misc' NOT NULL); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Very long default string +ALTER TABLE shipments +MODIFY notes DEFAULT 'This is a very long default value for testing purposes, exceeding typical lengths to check parser limits and storage implications in Oracle SQL'; + +-- DEFAULT with complex expression +ALTER TABLE departments +MODIFY location DEFAULT UPPER(USER) || '_DEPT'; diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_set_nullable.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_set_nullable.in.sql new file mode 100644 index 000000000..04ac11e1e --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/alter_table_set_nullable.in.sql @@ -0,0 +1,169 @@ +-- Oracle SQL ALTER TABLE Set Nullable (Remove NOT NULL) Test Cases +-- Test setup: Create tables with NOT NULL constraints +CREATE TABLE employees ( + emp_id NUMBER(10) CONSTRAINT nn_emp_id NOT NULL, + emp_name VARCHAR2(100) NOT NULL, + email VARCHAR2(100) CONSTRAINT nn_emp_email NOT NULL, + phone VARCHAR2(20) NOT NULL, + salary NUMBER(10,2) NOT NULL, + commission_pct NUMBER(3,2) NOT NULL, + hire_date DATE NOT NULL, + department_id NUMBER(10) NOT NULL, + manager_id NUMBER(10) CONSTRAINT nn_emp_manager NOT NULL, + status VARCHAR2(20) NOT NULL, + ssn VARCHAR2(11) CONSTRAINT nn_emp_ssn NOT NULL, + badge_number VARCHAR2(10) NOT NULL, + title VARCHAR2(100) NOT NULL, + office_location VARCHAR2(50) NOT NULL +); + +CREATE TABLE products ( + product_id NUMBER(10) NOT NULL, + product_name VARCHAR2(200) CONSTRAINT nn_prod_name NOT NULL, + description VARCHAR2(4000) NOT NULL, + price NUMBER(10,2) CONSTRAINT nn_prod_price NOT NULL, + category VARCHAR2(50) NOT NULL, + manufacturer VARCHAR2(100) CONSTRAINT nn_prod_manuf NOT NULL, + sku VARCHAR2(50) NOT NULL, + weight NUMBER(8,2) NOT NULL +); + +CREATE TABLE orders ( + order_id NUMBER(10) NOT NULL, + customer_id NUMBER(10) CONSTRAINT nn_order_customer NOT NULL, + order_date DATE NOT NULL, + ship_date DATE CONSTRAINT nn_order_ship NOT NULL, + total_amount NUMBER(12,2) NOT NULL, + tax_amount NUMBER(10,2) NOT NULL, + discount_amount NUMBER(10,2) NOT NULL +); + +-- ============================================ +-- BASIC NULL SYNTAX (Make Column Nullable) +-- ============================================ + +-- Simple MODIFY to NULL (removes NOT NULL constraint) +ALTER TABLE employees +MODIFY commission_pct NULL; + +-- Make numeric column nullable +ALTER TABLE employees +MODIFY salary NULL; + +-- Make VARCHAR2 column nullable +ALTER TABLE employees +MODIFY phone NULL; + +-- Make DATE column nullable +ALTER TABLE employees +MODIFY hire_date NULL; + +-- Make multiple columns nullable (separate statements) +ALTER TABLE products +MODIFY description NULL; + +ALTER TABLE products +MODIFY weight NULL; + +ALTER TABLE products +MODIFY manufacturer NULL; + +-- ============================================ +-- MODIFY COLUMN TO NULL (Various Data Types) +-- ============================================ + +CREATE TABLE datatype_tests ( + col_number NUMBER(10,2) NOT NULL, + col_varchar2 VARCHAR2(100) NOT NULL, + col_char CHAR(10) NOT NULL, + col_date DATE NOT NULL, + col_timestamp TIMESTAMP NOT NULL, + col_clob CLOB NOT NULL, + col_raw RAW(100) NOT NULL, + col_float FLOAT NOT NULL, + col_integer INTEGER NOT NULL, + col_nvarchar2 NVARCHAR2(100) NOT NULL, + col_nchar NCHAR(10) NOT NULL +); + +-- Make NUMBER column nullable +ALTER TABLE datatype_tests +MODIFY col_number NULL; + +-- Make VARCHAR2 column nullable +ALTER TABLE datatype_tests +MODIFY col_varchar2 NULL; + +-- Make CHAR column nullable +ALTER TABLE datatype_tests +MODIFY col_char NULL; + +-- Make DATE column nullable +ALTER TABLE datatype_tests +MODIFY col_date NULL; + +-- Make TIMESTAMP column nullable +ALTER TABLE datatype_tests +MODIFY col_timestamp NULL; + +-- Make CLOB column nullable +ALTER TABLE datatype_tests +MODIFY col_clob NULL; + +-- Make RAW column nullable +ALTER TABLE datatype_tests +MODIFY col_raw NULL; + +-- Make FLOAT column nullable +ALTER TABLE datatype_tests +MODIFY col_float NULL; + +-- Make INTEGER column nullable +ALTER TABLE datatype_tests +MODIFY col_integer NULL; + +-- Make NVARCHAR2 column nullable +ALTER TABLE datatype_tests +MODIFY col_nvarchar2 NULL; + +-- Make NCHAR column nullable +ALTER TABLE datatype_tests +MODIFY col_nchar NULL; + +-- ============================================ +-- COMPLEX SCENARIOS +-- ============================================ + +-- Table with multiple constraint types +CREATE TABLE complex_test ( + id NUMBER(10) CONSTRAINT pk_complex PRIMARY KEY, + code VARCHAR2(20) CONSTRAINT uk_complex_code UNIQUE NOT NULL, + name VARCHAR2(100) CONSTRAINT nn_complex_name NOT NULL, + parent_id NUMBER(10) CONSTRAINT nn_complex_parent NOT NULL, + status VARCHAR2(20) CONSTRAINT nn_complex_status NOT NULL, + CONSTRAINT fk_complex_parent FOREIGN KEY (parent_id) REFERENCES complex_test(id) +); + +-- Make column nullable using MODIFY +ALTER TABLE complex_test +MODIFY status NULL; + +ALTER TABLE complex_test +MODIFY code NULL; + +-- ============================================ +-- COMBINATION WITH OTHER MODIFICATIONS +-- ============================================ + +CREATE TABLE combo_test ( + col1 NUMBER(10) NOT NULL, + col2 VARCHAR2(50) NOT NULL +); + +-- Modify data type and make nullable in same statement +ALTER TABLE combo_test +MODIFY col1 NUMBER(12) NULL; + +-- Modify size and make nullable +ALTER TABLE combo_test +MODIFY col2 VARCHAR2(100) NULL; diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_checks.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_checks.in.sql new file mode 100644 index 000000000..52193eb39 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_checks.in.sql @@ -0,0 +1,242 @@ +-- Oracle SQL Inline CHECK Constraint Test Cases +-- Test setup: Create tables with inline CHECK constraints on different columns +CREATE TABLE customers ( + cust_id NUMBER(10) CONSTRAINT chk_cust_id_pos CHECK (cust_id > 0), + cust_name VARCHAR2(100) CONSTRAINT chk_cust_name_len CHECK (LENGTH(cust_name) <= 100), + email VARCHAR2(100) CONSTRAINT chk_email_format CHECK (email LIKE '%@%.%'), + phone VARCHAR2(20) CONSTRAINT chk_phone_len CHECK (LENGTH(phone) >= 10), + address VARCHAR2(200) CONSTRAINT chk_address_not_empty CHECK (address IS NOT NULL), + status VARCHAR2(20) CONSTRAINT chk_cust_status CHECK (status IN ('ACTIVE', 'INACTIVE')), + reg_date DATE CONSTRAINT chk_reg_date CHECK (reg_date >= TO_DATE('2000-01-01', 'YYYY-MM-DD')), + last_login TIMESTAMP CONSTRAINT chk_last_login CHECK (last_login <= SYSTIMESTAMP) CONSTRAINT chk_last_login_2 CHECK (last_login >= SYSTIMESTAMP), + last_login_2 TIMESTAMP CHECK (last_login_2 <= SYSTIMESTAMP) CHECK (last_login_2 >= SYSTIMESTAMP), + last_login_3 TIMESTAMP CHECK (last_login_3 <= SYSTIMESTAMP) CONSTRAINT chk_last_login_3 CHECK (last_login_3 >= SYSTIMESTAMP) +); + +CREATE TABLE inventory ( + item_id NUMBER(10) CONSTRAINT chk_item_id_pos CHECK (item_id > 0), + item_name VARCHAR2(200) CONSTRAINT chk_item_name CHECK (item_name IS NOT NULL), + price NUMBER(10,2) CONSTRAINT chk_price_pos CHECK (price >= 0), + category VARCHAR2(50) CONSTRAINT chk_category_valid CHECK (category IN ('ELECTRONICS', 'CLOTHING', 'BOOKS')), + sku VARCHAR2(50) CONSTRAINT chk_sku_len CHECK (LENGTH(sku) <= 50), + weight NUMBER(8,2) CONSTRAINT chk_weight_pos CHECK (weight > 0), + stock_level NUMBER(10) CONSTRAINT chk_stock_level CHECK (stock_level >= 0), + reorder_level NUMBER(10) CONSTRAINT chk_reorder_level CHECK (reorder_level >= 0) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10) CONSTRAINT chk_ship_id CHECK (ship_id > 0), + customer_id NUMBER(10) CONSTRAINT chk_cust_id_valid CHECK (customer_id > 0), + ship_date DATE CONSTRAINT chk_ship_date CHECK (ship_date >= TRUNC(SYSDATE)), + total_amount NUMBER(12,2) CONSTRAINT chk_total_amount CHECK (total_amount >= 0), + tracking_number VARCHAR2(50) CONSTRAINT chk_tracking_len CHECK (LENGTH(tracking_number) <= 50), + carrier VARCHAR2(100) CONSTRAINT chk_carrier CHECK (carrier IS NOT NULL), + priority NUMBER(2) CONSTRAINT chk_priority_range CHECK (priority BETWEEN 1 AND 5), + notes VARCHAR2(4000) CONSTRAINT chk_notes_len CHECK (LENGTH(notes) <= 4000) +); + +CREATE TABLE departments ( + dept_id NUMBER(10) CONSTRAINT chk_dept_id CHECK (dept_id > 0), + dept_name VARCHAR2(100) CONSTRAINT chk_dept_name CHECK (dept_name IS NOT NULL), + manager_id NUMBER(10) CONSTRAINT chk_manager_id CHECK (manager_id > 0), + budget NUMBER(12,2) CONSTRAINT chk_budget_pos CHECK (budget >= 0), + location VARCHAR2(50) CONSTRAINT chk_location CHECK (location IS NOT NULL), + established_date DATE CONSTRAINT chk_est_date CHECK (established_date <= SYSDATE) +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10) CONSTRAINT chk_supp_id CHECK (supp_id > 0), + supp_name VARCHAR2(100) CONSTRAINT chk_supp_name CHECK (supp_name IS NOT NULL), + contact VARCHAR2(100) CONSTRAINT chk_contact_len CHECK (LENGTH(contact) <= 100), + ssn VARCHAR2(11) CONSTRAINT chk_ssn_format CHECK (ssn LIKE '___-__-____'), + badge_number VARCHAR2(10) CONSTRAINT chk_badge_len CHECK (LENGTH(badge_number) <= 10), + credit_limit NUMBER(10,2) CONSTRAINT chk_credit_limit CHECK (credit_limit >= 0) +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2) CONSTRAINT chk_number_pos CHECK (col_number >= 0), + col_varchar2 VARCHAR2(100) CONSTRAINT chk_varchar2_len CHECK (LENGTH(col_varchar2) <= 100), + col_char CHAR(10) CONSTRAINT chk_char_len CHECK (LENGTH(col_char) = 10), + col_date DATE CONSTRAINT chk_date CHECK (col_date >= TO_DATE('2000-01-01', 'YYYY-MM-DD')), + col_timestamp TIMESTAMP CONSTRAINT chk_timestamp CHECK (col_timestamp <= SYSTIMESTAMP), + col_clob CLOB CONSTRAINT chk_clob_not_null CHECK (col_clob IS NOT NULL), + col_raw RAW(100) CONSTRAINT chk_raw_len CHECK (LENGTH(col_raw) <= 100), + col_float FLOAT CONSTRAINT chk_float_pos CHECK (col_float >= 0), + col_integer INTEGER CONSTRAINT chk_integer_pos CHECK (col_integer >= 0), + col_nvarchar2 NVARCHAR2(100) CONSTRAINT chk_nvarchar2_len CHECK (LENGTH(col_nvarchar2) <= 100), + col_nchar NCHAR(10) CONSTRAINT chk_nchar_len CHECK (LENGTH(col_nchar) = 10) +); + +-- ============================================ +-- BASIC INLINE CHECK CONSTRAINTS +-- ============================================ + +-- Simple CHECK constraint (numeric comparison) +CREATE TABLE test_basic ( + id NUMBER(10) CONSTRAINT chk_id_pos CHECK (id > 0), + value NUMBER(10) CONSTRAINT chk_value_range CHECK (value BETWEEN 1 AND 1000) +); + +-- CHECK constraint on VARCHAR2 with specific values +CREATE TABLE test_status ( + status VARCHAR2(20) CONSTRAINT chk_status_values CHECK (status IN ('OPEN', 'CLOSED', 'PENDING')), + code VARCHAR2(10) CONSTRAINT chk_code_len CHECK (LENGTH(code) <= 10) +); + +-- CHECK constraint with IS NOT NULL +CREATE TABLE test_not_null ( + name VARCHAR2(100) CONSTRAINT chk_name_not_null CHECK (name IS NOT NULL), + description VARCHAR2(200) CONSTRAINT chk_desc_len CHECK (LENGTH(description) <= 200) +); + +-- CHECK constraint on DATE comparison +CREATE TABLE test_dates ( + event_date DATE CONSTRAINT chk_event_date CHECK (event_date >= SYSDATE), + end_date DATE CONSTRAINT chk_end_date CHECK (end_date > SYSDATE) +); + +-- ============================================ +-- COMPLEX INLINE CHECK CONSTRAINTS +-- ============================================ + +-- CHECK constraint with compound expression +CREATE TABLE test_compound ( + quantity NUMBER(10) CONSTRAINT chk_qty_pos CHECK (quantity >= 0), + price NUMBER(10,2) CONSTRAINT chk_qty_price CHECK (quantity * price >= 0) +); + +-- CHECK constraint with LIKE pattern +CREATE TABLE test_pattern ( + email VARCHAR2(100) CONSTRAINT chk_email_pattern CHECK (email LIKE '%@%.%'), + phone VARCHAR2(20) CONSTRAINT chk_phone_pattern CHECK (phone LIKE '[0-9]%') +); + +-- CHECK constraint with multiple conditions +CREATE TABLE test_multi_condition ( + score NUMBER(3) CONSTRAINT chk_score_range CHECK (score BETWEEN 0 AND 100), + grade CHAR(1) CONSTRAINT chk_grade_valid CHECK (grade IN ('A', 'B', 'C', 'D', 'F') AND score > 0) +); + +-- ============================================ +-- CHECK CONSTRAINTS WITH ENABLE/DISABLE +-- ============================================ + +-- CHECK constraint with ENABLE +CREATE TABLE test_enable ( + level NUMBER(2) CONSTRAINT chk_level_range CHECK (level BETWEEN 1 AND 10) ENABLE, + rating NUMBER(2) CONSTRAINT chk_rating CHECK (rating >= 0) ENABLE +); + +-- CHECK constraint with DISABLE +CREATE TABLE test_disable ( + priority NUMBER(2) CONSTRAINT chk_priority_range CHECK (priority BETWEEN 1 AND 5) DISABLE, + rank NUMBER(2) CONSTRAINT chk_rank CHECK (rank >= 0) DISABLE +); + +-- CHECK constraint with ENABLE VALIDATE +CREATE TABLE test_validate ( + amount NUMBER(10,2) CONSTRAINT chk_amount_pos CHECK (amount >= 0) ENABLE VALIDATE, + tax NUMBER(10,2) CONSTRAINT chk_tax_pos CHECK (tax >= 0) ENABLE VALIDATE +); + +-- CHECK constraint with ENABLE NOVALIDATE +CREATE TABLE test_novalidate ( + discount NUMBER(10,2) CONSTRAINT chk_discount CHECK (discount >= 0) ENABLE NOVALIDATE, + margin NUMBER(10,2) CONSTRAINT chk_margin CHECK (margin >= 0) ENABLE NOVALIDATE +); + +-- CHECK constraint with DISABLE NOVALIDATE +CREATE TABLE test_disable_novalidate ( + weight NUMBER(8,2) CONSTRAINT chk_weight CHECK (weight > 0) DISABLE NOVALIDATE, + volume NUMBER(8,2) CONSTRAINT chk_volume CHECK (volume > 0) DISABLE NOVALIDATE +); + +-- ============================================ +-- CHECK CONSTRAINTS WITH RELY/NORELY +-- ============================================ + +-- CHECK constraint with RELY +CREATE TABLE test_rely ( + code NUMBER(10) CONSTRAINT chk_code_pos CHECK (code > 0) RELY, + ref_id NUMBER(10) CONSTRAINT chk_ref_id CHECK (ref_id > 0) RELY +); + +-- CHECK constraint with NORELY +CREATE TABLE test_norely ( + sequence NUMBER(10) CONSTRAINT chk_seq_pos CHECK (sequence > 0) NORELY, + counter NUMBER(10) CONSTRAINT chk_counter CHECK (counter >= 0) NORELY +); + +-- CHECK constraint with ENABLE RELY +CREATE TABLE test_enable_rely ( + batch_id NUMBER(10) CONSTRAINT chk_batch_id CHECK (batch_id > 0) ENABLE RELY, + lot_number VARCHAR2(20) CONSTRAINT chk_lot_len CHECK (LENGTH(lot_number) <= 20) ENABLE RELY +); + +-- CHECK constraint with DISABLE NORELY +CREATE TABLE test_disable_norely ( + zone_id NUMBER(5) CONSTRAINT chk_zone_id CHECK (zone_id > 0) DISABLE NORELY, + area_code VARCHAR2(10) CONSTRAINT chk_area_len CHECK (LENGTH(area_code) <= 10) DISABLE NORELY +); + +-- ============================================ +-- CHECK CONSTRAINTS WITH DEFERRABLE OPTIONS +-- ============================================ + +-- CHECK constraint with DEFERRABLE INITIALLY DEFERRED +CREATE TABLE test_deferrable_deferred ( + order_id NUMBER(10) CONSTRAINT chk_order_id CHECK (order_id > 0) DEFERRABLE INITIALLY DEFERRED, + line_item NUMBER(5) CONSTRAINT chk_line_item CHECK (line_item > 0) DEFERRABLE INITIALLY DEFERRED +); + +-- CHECK constraint with DEFERRABLE INITIALLY IMMEDIATE +CREATE TABLE test_deferrable_immediate ( + invoice_id NUMBER(10) CONSTRAINT chk_invoice_id CHECK (invoice_id > 0) DEFERRABLE INITIALLY IMMEDIATE, + payment_status VARCHAR2(20) CONSTRAINT chk_payment_status CHECK (payment_status IN ('PAID', 'PENDING')) DEFERRABLE INITIALLY IMMEDIATE +); + +-- CHECK constraint with NOT DEFERRABLE +CREATE TABLE test_not_deferrable ( + ticket_id NUMBER(10) CONSTRAINT chk_ticket_id CHECK (ticket_id > 0) NOT DEFERRABLE, + issue_date DATE CONSTRAINT chk_issue_date CHECK (issue_date <= SYSDATE) NOT DEFERRABLE +); + +-- ============================================ +-- CHECK CONSTRAINTS ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes_inline ( + col_number NUMBER(10,2) CONSTRAINT chk_number CHECK (col_number >= 0), + col_varchar2 VARCHAR2(100) CONSTRAINT chk_varchar2 CHECK (LENGTH(col_varchar2) <= 100), + col_char CHAR(10) CONSTRAINT chk_char CHECK (LENGTH(col_char) = 10), + col_date DATE CONSTRAINT chk_date_valid CHECK (col_date >= TO_DATE('2000-01-01', 'YYYY-MM-DD')), + col_timestamp TIMESTAMP CONSTRAINT chk_timestamp_valid CHECK (col_timestamp <= SYSTIMESTAMP), + col_clob CLOB CONSTRAINT chk_clob CHECK (col_clob IS NOT NULL), + col_raw RAW(100) CONSTRAINT chk_raw CHECK (LENGTH(col_raw) <= 100), + col_float FLOAT CONSTRAINT chk_float CHECK (col_float >= 0), + col_integer INTEGER CONSTRAINT chk_integer CHECK (col_integer >= 0), + col_nvarchar2 NVARCHAR2(100) CONSTRAINT chk_nvarchar2 CHECK (LENGTH(col_nvarchar2) <= 100), + col_nchar NCHAR(10) CONSTRAINT chk_nchar CHECK (LENGTH(col_nchar) = 10) +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- CHECK constraint with complex expression +CREATE TABLE test_complex ( + score NUMBER(3) CONSTRAINT chk_score_complex CHECK (score >= 0 AND MOD(score, 2) = 0), + rating VARCHAR2(20) CONSTRAINT chk_rating_complex CHECK (rating IN ('HIGH', 'MEDIUM', 'LOW') AND LENGTH(rating) > 3) +); + +-- CHECK constraint with pattern matching +CREATE TABLE test_pattern_match ( + zip_code VARCHAR2(10) CONSTRAINT chk_zip_format CHECK (REGEXP_LIKE(zip_code, '^[0-9]{5}(-[0-9]{4})?$')), + serial_number VARCHAR2(20) CONSTRAINT chk_serial_format CHECK (REGEXP_LIKE(serial_number, '^[A-Z0-9]+$')) +); + +-- CHECK constraint with subquery (Note: Oracle allows subqueries in CHECK constraints in some versions) +CREATE TABLE test_subquery ( + dept_id NUMBER(10) CONSTRAINT chk_dept_id_exists CHECK (dept_id IN (SELECT dept_id FROM departments)), + emp_count NUMBER(5) CONSTRAINT chk_emp_count CHECK (emp_count >= 0) +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_default.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_default.in.sql new file mode 100644 index 000000000..8ff549205 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_default.in.sql @@ -0,0 +1,281 @@ +-- Oracle SQL Inline Column Default Test Cases +-- Test setup: Create tables with inline DEFAULT on different columns +CREATE TABLE customers ( + cust_id NUMBER(10) DEFAULT 0, + cust_name VARCHAR2(100) DEFAULT 'Unknown', + email VARCHAR2(100) DEFAULT 'noemail@example.com', + phone VARCHAR2(20) DEFAULT 'N/A', + address VARCHAR2(200) DEFAULT 'Unknown Address', + status VARCHAR2(20) DEFAULT 'ACTIVE', + reg_date DATE DEFAULT SYSDATE, + last_login TIMESTAMP DEFAULT SYSTIMESTAMP +); + +CREATE TABLE inventory ( + item_id NUMBER(10) DEFAULT 1, + item_name VARCHAR2(200) DEFAULT 'Item', + price NUMBER(10,2) DEFAULT 0.00, + category VARCHAR2(50) DEFAULT 'Misc', + sku VARCHAR2(50) DEFAULT 'SKU000', + weight NUMBER(8,2) DEFAULT 0.0, + stock_level NUMBER(10) DEFAULT 0, + reorder_level NUMBER(10) DEFAULT 10 +); + +CREATE TABLE shipments ( + ship_id NUMBER(10) DEFAULT test_seq.NEXTVAL, + customer_id NUMBER(10) DEFAULT 1, + ship_date DATE DEFAULT SYSDATE, + total_amount NUMBER(12,2) DEFAULT 0.00, + tracking_number VARCHAR2(50) DEFAULT SYS_GUID(), + carrier VARCHAR2(100) DEFAULT 'UPS', + priority NUMBER(2) DEFAULT 1, + notes VARCHAR2(4000) DEFAULT 'No notes' +); + +CREATE TABLE departments ( + dept_id NUMBER(10) DEFAULT 100, + dept_name VARCHAR2(100) DEFAULT 'General', + manager_id NUMBER(10) DEFAULT 0, + budget NUMBER(12,2) DEFAULT 10000.00, + location VARCHAR2(50) DEFAULT 'HQ', + established_date DATE DEFAULT SYSDATE +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10) DEFAULT 500, + supp_name VARCHAR2(100) DEFAULT 'Supplier', + contact VARCHAR2(100) DEFAULT 'Contact', + ssn VARCHAR2(11) DEFAULT '000-00-0000', + badge_number VARCHAR2(10) DEFAULT 'BADGE000', + credit_limit NUMBER(10,2) DEFAULT 5000.00 +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2) DEFAULT 42.00, + col_varchar2 VARCHAR2(100) DEFAULT 'Default Text', + col_char CHAR(10) DEFAULT 'CHARDEF ', + col_date DATE DEFAULT SYSDATE, + col_timestamp TIMESTAMP DEFAULT SYSTIMESTAMP, + col_clob CLOB DEFAULT EMPTY_CLOB(), + col_raw RAW(100) DEFAULT HEXTORAW('00'), + col_float FLOAT DEFAULT 3.14, + col_integer INTEGER DEFAULT 100, + col_nvarchar2 NVARCHAR2(100) DEFAULT N'Default National', + col_nchar NCHAR(10) DEFAULT N'NCHARDEF ' +); + +-- Create sequence for testing +CREATE SEQUENCE test_seq START WITH 1 INCREMENT BY 1; + +-- ============================================ +-- BASIC INLINE DEFAULTS +-- ============================================ + +-- Simple DEFAULT (numeric literal) +CREATE TABLE test_basic_num ( + id NUMBER(10) DEFAULT 0, + value NUMBER(10) DEFAULT 100 +); + +-- DEFAULT on VARCHAR2 (string literal) +CREATE TABLE test_basic_varchar ( + name VARCHAR2(100) DEFAULT 'Unknown', + code VARCHAR2(10) DEFAULT 'CODE' +); + +-- DEFAULT on DATE +CREATE TABLE test_basic_date ( + event_date DATE DEFAULT SYSDATE, + end_date DATE DEFAULT SYSDATE + 1 +); + +-- ============================================ +-- INLINE DEFAULT WITH EXPRESSIONS +-- ============================================ + +-- DEFAULT with SYSDATE +CREATE TABLE test_expr_sysdate ( + created_at DATE DEFAULT SYSDATE, + updated_at DATE DEFAULT SYSDATE +); + +-- DEFAULT with USER +CREATE TABLE test_expr_user ( + created_by VARCHAR2(30) DEFAULT USER, + modified_by VARCHAR2(30) DEFAULT USER +); + +-- DEFAULT with SYS_GUID() +CREATE TABLE test_expr_guid ( + unique_id VARCHAR2(32) DEFAULT SYS_GUID(), + session_id VARCHAR2(32) DEFAULT SYS_GUID() +); + +-- DEFAULT with sequence.NEXTVAL +CREATE TABLE test_expr_seq ( + seq_id NUMBER(10) DEFAULT test_seq.NEXTVAL, + auto_id NUMBER(10) DEFAULT test_seq.NEXTVAL +); + +-- DEFAULT with arithmetic expression +CREATE TABLE test_expr_arith ( + base_value NUMBER(10) DEFAULT 1000, + calc_value NUMBER(10) DEFAULT 1000 + 500 +); + +-- ============================================ +-- INLINE DEFAULT ON NULL +-- ============================================ + +-- Simple DEFAULT ON NULL (literal) +CREATE TABLE test_on_null_basic ( + email VARCHAR2(100) DEFAULT ON NULL 'noemail@example.com', + phone VARCHAR2(20) DEFAULT ON NULL 'N/A' +); + +-- DEFAULT ON NULL on numeric +CREATE TABLE test_on_null_num ( + quantity NUMBER(10) DEFAULT ON NULL 0, + discount NUMBER(5,2) DEFAULT ON NULL 0.00 +); + +-- DEFAULT ON NULL on date +CREATE TABLE test_on_null_date ( + start_date DATE DEFAULT ON NULL SYSDATE, + end_date DATE DEFAULT ON NULL SYSDATE + 7 +); + +-- ============================================ +-- INLINE DEFAULT COMBINED WITH NOT NULL +-- ============================================ + +-- DEFAULT with NOT NULL +CREATE TABLE test_default_not_null ( + status VARCHAR2(20) DEFAULT 'ACTIVE' NOT NULL, + priority NUMBER(2) DEFAULT 1 NOT NULL +); + +-- DEFAULT ON NULL with NOT NULL +CREATE TABLE test_on_null_not_null ( + name VARCHAR2(100) DEFAULT ON NULL 'Unknown' NOT NULL, + code VARCHAR2(10) DEFAULT ON NULL 'CODE' NOT NULL +); + +-- ============================================ +-- INLINE DEFAULT WITH NOT NULL OPTIONS +-- ============================================ + +-- DEFAULT with NOT NULL ENABLE +CREATE TABLE test_nn_enable ( + level NUMBER(2) DEFAULT 1 NOT NULL ENABLE, + rating NUMBER(2) DEFAULT 5 NOT NULL ENABLE +); + +-- DEFAULT with NOT NULL DISABLE +CREATE TABLE test_nn_disable ( + rank NUMBER(2) DEFAULT 10 NOT NULL DISABLE, + score NUMBER(3) DEFAULT 0 NOT NULL DISABLE +); + +-- DEFAULT with NOT NULL ENABLE VALIDATE +CREATE TABLE test_nn_validate ( + amount NUMBER(10,2) DEFAULT 0.00 NOT NULL ENABLE VALIDATE, + tax NUMBER(10,2) DEFAULT 0.00 NOT NULL ENABLE VALIDATE +); + +-- DEFAULT with NOT NULL ENABLE NOVALIDATE +CREATE TABLE test_nn_novalidate ( + discount NUMBER(5,2) DEFAULT 0.00 NOT NULL ENABLE NOVALIDATE, + margin NUMBER(5,2) DEFAULT 0.10 NOT NULL ENABLE NOVALIDATE +); + +-- DEFAULT with NOT NULL DISABLE NOVALIDATE +CREATE TABLE test_nn_disable_noval ( + weight NUMBER(8,2) DEFAULT 0.0 NOT NULL DISABLE NOVALIDATE, + volume NUMBER(8,2) DEFAULT 0.0 NOT NULL DISABLE NOVALIDATE +); + +-- ============================================ +-- INLINE DEFAULT WITH RELY/NORELY +-- ============================================ + +-- DEFAULT with NOT NULL RELY +CREATE TABLE test_nn_rely ( + code NUMBER(10) DEFAULT 100 NOT NULL RELY, + ref_id NUMBER(10) DEFAULT 200 NOT NULL RELY +); + +-- DEFAULT with NOT NULL NORELY +CREATE TABLE test_nn_norely ( + sequence NUMBER(10) DEFAULT 1 NOT NULL NORELY, + counter NUMBER(10) DEFAULT 0 NOT NULL NORELY +); + +-- DEFAULT with NOT NULL ENABLE RELY +CREATE TABLE test_nn_enable_rely ( + batch_id NUMBER(10) DEFAULT 500 NOT NULL ENABLE RELY, + lot_number VARCHAR2(20) DEFAULT 'LOT' NOT NULL ENABLE RELY +); + +-- DEFAULT with NOT NULL DISABLE NORELY +CREATE TABLE test_nn_disable_norely ( + zone_id NUMBER(5) DEFAULT 1 NOT NULL DISABLE NORELY, + area_code VARCHAR2(10) DEFAULT 'AREA' NOT NULL DISABLE NORELY +); + +-- ============================================ +-- INLINE DEFAULT WITH DEFERRABLE OPTIONS +-- ============================================ + +-- DEFAULT with NOT NULL DEFERRABLE INITIALLY DEFERRED +CREATE TABLE test_nn_defer_deferred ( + order_id NUMBER(10) DEFAULT 1000 NOT NULL DEFERRABLE INITIALLY DEFERRED, + line_item NUMBER(5) DEFAULT 1 NOT NULL DEFERRABLE INITIALLY DEFERRED +); + +-- DEFAULT with NOT NULL DEFERRABLE INITIALLY IMMEDIATE +CREATE TABLE test_nn_defer_immediate ( + invoice_id NUMBER(10) DEFAULT 2000 NOT NULL DEFERRABLE INITIALLY IMMEDIATE, + payment_status VARCHAR2(20) DEFAULT 'PENDING' NOT NULL DEFERRABLE INITIALLY IMMEDIATE +); + +-- DEFAULT with NOT NULL NOT DEFERRABLE +CREATE TABLE test_nn_not_defer ( + ticket_id NUMBER(10) DEFAULT 3000 NOT NULL NOT DEFERRABLE, + issue_date DATE DEFAULT SYSDATE NOT NULL NOT DEFERRABLE +); + +-- ============================================ +-- INLINE DEFAULT ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes_inline ( + col_number NUMBER(10,2) DEFAULT 0.00, + col_varchar2 VARCHAR2(100) DEFAULT 'Text', + col_char CHAR(10) DEFAULT 'CHAR ', + col_date DATE DEFAULT SYSDATE, + col_timestamp TIMESTAMP DEFAULT SYSTIMESTAMP, + col_clob CLOB DEFAULT 'CLOB Default', + col_raw RAW(100) DEFAULT HEXTORAW('0000'), + col_float FLOAT DEFAULT 1.23, + col_integer INTEGER DEFAULT 42, + col_nvarchar2 NVARCHAR2(100) DEFAULT N'National Text', + col_nchar NCHAR(10) DEFAULT N'NCHAR ' +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- DEFAULT with complex expression +CREATE TABLE test_complex_expr ( + full_name VARCHAR2(200) DEFAULT USER || '_USER', + calc_field NUMBER(10) DEFAULT 100 * 2 +); + +-- Very long default string +CREATE TABLE test_long_default ( + description VARCHAR2(4000) DEFAULT 'This is a very long default value for testing purposes, exceeding typical lengths to check parser limits and storage implications in Oracle SQL', + comments VARCHAR2(4000) DEFAULT 'Another long default string to test maximum lengths and handling in table creation statements' +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_fk.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_fk.in.sql new file mode 100644 index 000000000..838b20f05 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_fk.in.sql @@ -0,0 +1,220 @@ +-- Oracle SQL Inline Foreign Key Constraint Test Cases +-- Test setup: Create parent tables first, followed by child tables with inline FOREIGN KEY constraints +CREATE TABLE departments ( + dept_id NUMBER(10), + dept_name VARCHAR2(100), + CONSTRAINT pk_dept_id PRIMARY KEY (dept_id) +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10), + supp_name VARCHAR2(100), + CONSTRAINT pk_supp_id PRIMARY KEY (supp_id) +); + +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100), + CONSTRAINT pk_cust_id PRIMARY KEY (cust_id) +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200), + CONSTRAINT pk_item_id PRIMARY KEY (item_id) +); + +CREATE TABLE complex_test ( + id NUMBER(10), + code VARCHAR2(20), + CONSTRAINT pk_complex_id PRIMARY KEY (id) +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + CONSTRAINT pk_datatype_number PRIMARY KEY (col_number) +); + +-- Create sequence for testing +CREATE SEQUENCE test_seq START WITH 1 INCREMENT BY 1; + +-- ============================================ +-- BASIC INLINE FOREIGN KEY CONSTRAINTS +-- ============================================ + +-- Simple inline FOREIGN KEY +CREATE TABLE employees ( + emp_id NUMBER(10), + emp_name VARCHAR2(100), + dept_id NUMBER(10) CONSTRAINT fk_emp_dept REFERENCES departments(dept_id), + manager_id NUMBER(10) CONSTRAINT fk_emp_manager REFERENCES employees(emp_id) +); + +-- FOREIGN KEY on VARCHAR2 column +CREATE TABLE orders ( + order_id NUMBER(10), + customer_id NUMBER(10) CONSTRAINT fk_order_cust REFERENCES customers(cust_id), + tracking_number VARCHAR2(50) CONSTRAINT fk_order_track REFERENCES shipments(tracking_number) +); + +-- FOREIGN KEY with NOT NULL +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10) NOT NULL CONSTRAINT fk_ship_cust REFERENCES customers(cust_id), + tracking_number VARCHAR2(50) CONSTRAINT pk_ship_track PRIMARY KEY +); + +-- FOREIGN KEY referencing composite key +CREATE TABLE complex_child ( + child_id NUMBER(10), + parent_id NUMBER(10) CONSTRAINT fk_child_complex REFERENCES complex_test(id), + parent_code VARCHAR2(20) CONSTRAINT fk_child_code REFERENCES complex_test(code) +); + +-- ============================================ +-- FOREIGN KEY WITH ENABLE/DISABLE +-- ============================================ + +-- FOREIGN KEY with ENABLE +CREATE TABLE test_enable ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_enable_dept REFERENCES departments(dept_id) ENABLE, + supp_id NUMBER(10) CONSTRAINT fk_enable_supp REFERENCES suppliers(supp_id) ENABLE +); + +-- FOREIGN KEY with DISABLE +CREATE TABLE test_disable ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_disable_dept REFERENCES departments(dept_id) DISABLE, + cust_id NUMBER(10) CONSTRAINT fk_disable_cust REFERENCES customers(cust_id) DISABLE +); + +-- FOREIGN KEY with ENABLE VALIDATE +CREATE TABLE test_validate ( + id NUMBER(10), + item_id NUMBER(10) CONSTRAINT fk_validate_item REFERENCES inventory(item_id) ENABLE VALIDATE, + supp_id NUMBER(10) CONSTRAINT fk_validate_supp REFERENCES suppliers(supp_id) ENABLE VALIDATE +); + +-- FOREIGN KEY with ENABLE NOVALIDATE +CREATE TABLE test_novalidate ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_noval_dept REFERENCES departments(dept_id) ENABLE NOVALIDATE, + cust_id NUMBER(10) CONSTRAINT fk_noval_cust REFERENCES customers(cust_id) ENABLE NOVALIDATE +); + +-- FOREIGN KEY with DISABLE NOVALIDATE +CREATE TABLE test_disable_novalidate ( + id NUMBER(10), + item_id NUMBER(10) CONSTRAINT fk_dis_noval_item REFERENCES inventory(item_id) DISABLE NOVALIDATE, + supp_id NUMBER(10) CONSTRAINT fk_dis_noval_supp REFERENCES suppliers(supp_id) DISABLE NOVALIDATE +); + +-- ============================================ +-- FOREIGN KEY WITH RELY/NORELY +-- ============================================ + +-- FOREIGN KEY with RELY +CREATE TABLE test_rely ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_rely_dept REFERENCES departments(dept_id) RELY, + cust_id NUMBER(10) CONSTRAINT fk_rely_cust REFERENCES customers(cust_id) RELY +); + +-- FOREIGN KEY with NORELY +CREATE TABLE test_norely ( + id NUMBER(10), + item_id NUMBER(10) CONSTRAINT fk_norely_item REFERENCES inventory(item_id) NORELY, + supp_id NUMBER(10) CONSTRAINT fk_norely_supp REFERENCES suppliers(supp_id) NORELY +); + +-- FOREIGN KEY with ENABLE RELY +CREATE TABLE test_enable_rely ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_en_rely_dept REFERENCES departments(dept_id) ENABLE RELY, + cust_id NUMBER(10) CONSTRAINT fk_en_rely_cust REFERENCES customers(cust_id) ENABLE RELY +); + +-- FOREIGN KEY with DISABLE NORELY +CREATE TABLE test_disable_norely ( + id NUMBER(10), + item_id NUMBER(10) CONSTRAINT fk_dis_norely_item REFERENCES inventory(item_id) DISABLE NORELY, + supp_id NUMBER(10) CONSTRAINT fk_dis_norely_supp REFERENCES suppliers(supp_id) DISABLE NORELY +); + +-- ============================================ +-- FOREIGN KEY WITH DEFERRABLE OPTIONS +-- ============================================ + +-- FOREIGN KEY with DEFERRABLE INITIALLY DEFERRED +CREATE TABLE test_deferrable_deferred ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_def_deferred_dept REFERENCES departments(dept_id) DEFERRABLE INITIALLY DEFERRED, + cust_id NUMBER(10) CONSTRAINT fk_def_deferred_cust REFERENCES customers(cust_id) DEFERRABLE INITIALLY DEFERRED +); + +-- FOREIGN KEY with DEFERRABLE INITIALLY IMMEDIATE +CREATE TABLE test_deferrable_immediate ( + id NUMBER(10), + item_id NUMBER(10) CONSTRAINT fk_def_immed_item REFERENCES inventory(item_id) DEFERRABLE INITIALLY IMMEDIATE, + supp_id NUMBER(10) CONSTRAINT fk_def_immed_supp REFERENCES suppliers(supp_id) DEFERRABLE INITIALLY IMMEDIATE +); + +-- FOREIGN KEY with NOT DEFERRABLE +CREATE TABLE test_not_deferrable ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_not_def_dept REFERENCES departments(dept_id) NOT DEFERRABLE, + cust_id NUMBER(10) CONSTRAINT fk_not_def_cust REFERENCES customers(cust_id) NOT DEFERRABLE +); + +-- ============================================ +-- FOREIGN KEY ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes_fk ( + id NUMBER(10), + col_number NUMBER(10,2) CONSTRAINT fk_dt_number REFERENCES test_datatypes(col_number), + col_varchar2 VARCHAR2(100) CONSTRAINT fk_dt_varchar2 REFERENCES test_datatypes(col_varchar2), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- FOREIGN KEY with self-referencing table +CREATE TABLE employees_self ( + emp_id NUMBER(10), + manager_id NUMBER(10) CONSTRAINT fk_self_emp REFERENCES employees_self(emp_id), + dept_id NUMBER(10) CONSTRAINT fk_self_dept REFERENCES departments(dept_id) +); + +-- FOREIGN KEY with composite key reference +CREATE TABLE order_details ( + order_id NUMBER(10), + item_id NUMBER(10) CONSTRAINT fk_detail_item REFERENCES inventory(item_id), + cust_id NUMBER(10) CONSTRAINT fk_detail_cust REFERENCES customers(cust_id) +); + +-- FOREIGN KEY with ON DELETE CASCADE +CREATE TABLE test_cascade ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_cascade_dept REFERENCES departments(dept_id) ON DELETE CASCADE, + supp_id NUMBER(10) CONSTRAINT fk_cascade_supp REFERENCES suppliers(supp_id) ON DELETE CASCADE +); + +-- FOREIGN KEY with ON DELETE SET NULL +CREATE TABLE test_set_null ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_set_null_dept REFERENCES departments(dept_id) ON DELETE SET NULL, + cust_id NUMBER(10) CONSTRAINT fk_set_null_cust REFERENCES customers(cust_id) ON DELETE SET NULL +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_increment.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_increment.in.sql new file mode 100644 index 000000000..915a2bf80 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_increment.in.sql @@ -0,0 +1,93 @@ +-- Oracle SQL Inline GENERATED BY DEFAULT AS IDENTITY Test Cases +-- Test setup: Create tables with inline GENERATED BY DEFAULT AS IDENTITY constraints on different columns +CREATE TABLE customers ( + cust_id NUMBER GENERATED BY DEFAULT AS IDENTITY, + cust_name VARCHAR2(100) DEFAULT 'Unknown', + email VARCHAR2(100) DEFAULT 'noemail@example.com', + phone VARCHAR2(20) DEFAULT 'N/A' +); + +CREATE TABLE inventory ( + item_id NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 100 INCREMENT BY 1), + item_name VARCHAR2(200) DEFAULT 'Default Item', + price NUMBER(10,2) DEFAULT 0.00, + category VARCHAR2(50) DEFAULT 'Misc' +); + +CREATE TABLE shipments ( + ship_id NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 1000 INCREMENT BY 10), + customer_id NUMBER(10) DEFAULT 1, + ship_date DATE DEFAULT SYSDATE, + total_amount NUMBER(12,2) DEFAULT 0.00 +); + +CREATE TABLE departments ( + dept_id NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 1 INCREMENT BY 2), + dept_name VARCHAR2(100) DEFAULT 'General', + manager_id NUMBER(10) DEFAULT 0, + budget NUMBER(12,2) DEFAULT 10000.00 +); + +CREATE TABLE suppliers ( + supp_id NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 500 INCREMENT BY 5), + supp_name VARCHAR2(100) DEFAULT 'Anonymous', + contact VARCHAR2(100) DEFAULT 'Contact', + credit_limit NUMBER(10,2) DEFAULT 5000.00 +); + +CREATE TABLE test_datatypes ( + col_number NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 10 INCREMENT BY 1), + col_varchar2 VARCHAR2(100) DEFAULT 'Default Text', + col_char CHAR(10) DEFAULT 'DEFAULT ', + col_date DATE DEFAULT SYSDATE +); + +-- ============================================ +-- BASIC INLINE IDENTITY CONSTRAINTS +-- ============================================ + +-- Simple GENERATED BY DEFAULT AS IDENTITY +CREATE TABLE test_basic ( + id NUMBER GENERATED BY DEFAULT AS IDENTITY, + value NUMBER(10) DEFAULT 100 +); + +-- IDENTITY with default settings +CREATE TABLE test_status ( + status_id NUMBER GENERATED BY DEFAULT AS IDENTITY, + status VARCHAR2(20) DEFAULT 'OPEN' +); + +-- IDENTITY with NOT NULL +CREATE TABLE test_not_null ( + record_id NUMBER GENERATED BY DEFAULT AS IDENTITY NOT NULL, + description VARCHAR2(200) DEFAULT 'No description' NOT NULL +); + +-- ============================================ +-- IDENTITY WITH CUSTOM OPTIONS +-- ============================================ + +-- IDENTITY with START WITH +CREATE TABLE test_start_with ( + order_id NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 1000), + order_code VARCHAR2(20) DEFAULT 'ORD000' +); + +-- IDENTITY with INCREMENT BY +CREATE TABLE test_increment ( + ticket_id NUMBER GENERATED BY DEFAULT AS IDENTITY (INCREMENT BY 5), + ticket_type VARCHAR2(20) DEFAULT 'STANDARD' +); + +-- IDENTITY with MAXVALUE +CREATE TABLE test_maxvalue ( + ref_id NUMBER GENERATED BY DEFAULT AS IDENTITY (MAXVALUE 99999), + ref_name VARCHAR2(100) DEFAULT 'Reference' +); + +-- IDENTITY with MINVALUE +CREATE TABLE test_minvalue ( + batch_id NUMBER GENERATED BY DEFAULT AS IDENTITY (MINVALUE 1), + batch_name VARCHAR2(50) DEFAULT 'Batch' +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_not_null.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_not_null.in.sql new file mode 100644 index 000000000..125514ab3 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_not_null.in.sql @@ -0,0 +1,196 @@ +-- Oracle SQL Inline NOT NULL Constraint Test Cases +-- Test setup: Create tables with inline NOT NULL constraints on different columns +CREATE TABLE customers ( + cust_id NUMBER(10) NOT NULL, + cust_name VARCHAR2(100) NOT NULL, + email VARCHAR2(100) NOT NULL, + phone VARCHAR2(20) NOT NULL +); + +CREATE TABLE inventory ( + item_id NUMBER(10) NOT NULL, + item_name VARCHAR2(200) NOT NULL, + price NUMBER(10,2) NOT NULL, + category VARCHAR2(50) NOT NULL +); + +CREATE TABLE shipments ( + ship_id NUMBER(10) NOT NULL, + customer_id NUMBER(10) NOT NULL, + ship_date DATE NOT NULL, + total_amount NUMBER(12,2) NOT NULL +); + +CREATE TABLE departments ( + dept_id NUMBER(10) NOT NULL, + dept_name VARCHAR2(100) NOT NULL, + manager_id NUMBER(10) NOT NULL, + budget NUMBER(12,2) NOT NULL +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10) NOT NULL, + supp_name VARCHAR2(100) NOT NULL, + contact VARCHAR2(100) NOT NULL, + credit_limit NUMBER(10,2) NOT NULL +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2) NOT NULL, + col_varchar2 VARCHAR2(100) NOT NULL, + col_char CHAR(10) NOT NULL, + col_date DATE NOT NULL, + col_timestamp TIMESTAMP NOT NULL, + col_clob CLOB NOT NULL, + col_raw RAW(100) NOT NULL, + col_float FLOAT NOT NULL, + col_integer INTEGER NOT NULL, + col_nvarchar2 NVARCHAR2(100) NOT NULL, + col_nchar NCHAR(10) NOT NULL +); + +-- ============================================ +-- BASIC INLINE NOT NULL CONSTRAINTS +-- ============================================ + +-- Simple NOT NULL constraint +CREATE TABLE test_basic ( + id NUMBER(10) NOT NULL, + value NUMBER(10) NOT NULL +); + +-- NOT NULL on VARCHAR2 +CREATE TABLE test_status ( + status VARCHAR2(20) NOT NULL, + code VARCHAR2(10) NOT NULL +); + +-- NOT NULL with named constraint +CREATE TABLE test_named ( + record_id NUMBER(10) CONSTRAINT nn_record_id NOT NULL, + description VARCHAR2(200) CONSTRAINT nn_description NOT NULL +); + +-- NOT NULL on DATE +CREATE TABLE test_dates ( + event_date DATE NOT NULL, + end_date DATE NOT NULL +); + +-- ============================================ +-- NOT NULL WITH ENABLE/DISABLE +-- ============================================ + +-- NOT NULL with ENABLE +CREATE TABLE test_enable ( + level NUMBER(2) NOT NULL ENABLE, + rating NUMBER(2) NOT NULL ENABLE +); + +-- NOT NULL with DISABLE +CREATE TABLE test_disable ( + priority NUMBER(2) NOT NULL DISABLE, + rank NUMBER(2) NOT NULL DISABLE +); + +-- NOT NULL with ENABLE VALIDATE +CREATE TABLE test_validate ( + amount NUMBER(10,2) NOT NULL ENABLE VALIDATE, + tax NUMBER(10,2) NOT NULL ENABLE VALIDATE +); + +-- NOT NULL with ENABLE NOVALIDATE +CREATE TABLE test_novalidate ( + discount NUMBER(10,2) NOT NULL ENABLE NOVALIDATE, + margin NUMBER(10,2) NOT NULL ENABLE NOVALIDATE +); + +-- NOT NULL with DISABLE NOVALIDATE +CREATE TABLE test_disable_novalidate ( + weight NUMBER(8,2) NOT NULL DISABLE NOVALIDATE, + volume NUMBER(8,2) NOT NULL DISABLE NOVALIDATE +); + +-- ============================================ +-- NOT NULL WITH RELY/NORELY +-- ============================================ + +-- NOT NULL with RELY +CREATE TABLE test_rely ( + code NUMBER(10) NOT NULL RELY, + ref_id NUMBER(10) NOT NULL RELY +); + +-- NOT NULL with NORELY +CREATE TABLE test_norely ( + sequence NUMBER(10) NOT NULL NORELY, + counter NUMBER(10) NOT NULL NORELY +); + +-- NOT NULL with ENABLE RELY +CREATE TABLE test_enable_rely ( + batch_id NUMBER(10) NOT NULL ENABLE RELY, + lot_number VARCHAR2(20) NOT NULL ENABLE RELY +); + +-- NOT NULL with DISABLE NORELY +CREATE TABLE test_disable_norely ( + zone_id NUMBER(5) NOT NULL DISABLE NORELY, + area_code VARCHAR2(10) NOT NULL DISABLE NORELY +); + +-- ============================================ +-- NOT NULL WITH DEFERRABLE OPTIONS +-- ============================================ + +-- NOT NULL with DEFERRABLE INITIALLY DEFERRED +CREATE TABLE test_deferrable_deferred ( + order_id NUMBER(10) NOT NULL DEFERRABLE INITIALLY DEFERRED, + line_item NUMBER(5) NOT NULL DEFERRABLE INITIALLY DEFERRED +); + +-- NOT NULL with DEFERRABLE INITIALLY IMMEDIATE +CREATE TABLE test_deferrable_immediate ( + invoice_id NUMBER(10) NOT NULL DEFERRABLE INITIALLY IMMEDIATE, + payment_status VARCHAR2(20) NOT NULL DEFERRABLE INITIALLY IMMEDIATE +); + +-- NOT NULL with NOT DEFERRABLE +CREATE TABLE test_not_deferrable ( + ticket_id NUMBER(10) NOT NULL NOT DEFERRABLE, + issue_date DATE NOT NULL NOT DEFERRABLE +); + +-- ============================================ +-- NOT NULL ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes_inline ( + col_number NUMBER(10,2) NOT NULL, + col_varchar2 VARCHAR2(100) NOT NULL, + col_char CHAR(10) NOT NULL, + col_date DATE NOT NULL, + col_timestamp TIMESTAMP NOT NULL, + col_clob CLOB NOT NULL, + col_raw RAW(100) NOT NULL, + col_float FLOAT NOT NULL, + col_integer INTEGER NOT NULL, + col_nvarchar2 NVARCHAR2(100) NOT NULL, + col_nchar NCHAR(10) NOT NULL +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- NOT NULL with named constraint and long name +CREATE TABLE test_long_name ( + identifier NUMBER(10) CONSTRAINT nn_very_long_constraint_name_for_testing_parser_limits NOT NULL, + record_code VARCHAR2(20) CONSTRAINT nn_record_code_long NOT NULL +); + +-- NOT NULL with combined options +CREATE TABLE test_complex ( + score NUMBER(3) NOT NULL ENABLE VALIDATE RELY, + rating VARCHAR2(20) NOT NULL DISABLE NOVALIDATE NORELY +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_pk.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_pk.in.sql new file mode 100644 index 000000000..a005f890f --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_pk.in.sql @@ -0,0 +1,196 @@ +-- Oracle SQL Inline PRIMARY KEY Constraint Test Cases +-- Test setup: Create tables with inline PRIMARY KEY constraints on different columns +CREATE TABLE customers ( + cust_id NUMBER(10) PRIMARY KEY, + cust_name VARCHAR2(100), + email VARCHAR2(100), + phone VARCHAR2(20) +); + +CREATE TABLE inventory ( + item_id NUMBER(10) PRIMARY KEY, + item_name VARCHAR2(200), + price NUMBER(10,2), + category VARCHAR2(50) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10) PRIMARY KEY, + customer_id NUMBER(10), + ship_date DATE, + total_amount NUMBER(12,2) +); + +CREATE TABLE departments ( + dept_id NUMBER(10) PRIMARY KEY, + dept_name VARCHAR2(100), + manager_id NUMBER(10), + budget NUMBER(12,2) +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10) PRIMARY KEY, + supp_name VARCHAR2(100), + contact VARCHAR2(100), + credit_limit NUMBER(10,2) +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2) PRIMARY KEY, + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +-- ============================================ +-- BASIC INLINE PRIMARY KEY CONSTRAINTS +-- ============================================ + +-- Simple PRIMARY KEY constraint +CREATE TABLE test_basic ( + id NUMBER(10) PRIMARY KEY, + value NUMBER(10) +); + +-- PRIMARY KEY with named constraint +CREATE TABLE test_named ( + code NUMBER(10) CONSTRAINT pk_code PRIMARY KEY, + description VARCHAR2(200) +); + +-- PRIMARY KEY on VARCHAR2 +CREATE TABLE test_status ( + status_code VARCHAR2(20) CONSTRAINT pk_status_code PRIMARY KEY, + status_desc VARCHAR2(100) +); + +-- PRIMARY KEY on DATE +CREATE TABLE test_dates ( + event_date DATE CONSTRAINT pk_event_date PRIMARY KEY, + event_desc VARCHAR2(200) +); + +-- ============================================ +-- PRIMARY KEY WITH ENABLE/DISABLE +-- ============================================ + +-- PRIMARY KEY with ENABLE +CREATE TABLE test_enable ( + level NUMBER(2) PRIMARY KEY ENABLE, + level_desc VARCHAR2(50) +); + +-- PRIMARY KEY with DISABLE +CREATE TABLE test_disable ( + priority NUMBER(2) PRIMARY KEY DISABLE, + priority_desc VARCHAR2(50) +); + +-- PRIMARY KEY with ENABLE VALIDATE +CREATE TABLE test_validate ( + amount NUMBER(10,2) PRIMARY KEY ENABLE VALIDATE, + amount_desc VARCHAR2(100) +); + +-- PRIMARY KEY with ENABLE NOVALIDATE +CREATE TABLE test_novalidate ( + discount NUMBER(10,2) PRIMARY KEY ENABLE NOVALIDATE, + discount_desc VARCHAR2(100) +); + +-- PRIMARY KEY with DISABLE NOVALIDATE +CREATE TABLE test_disable_novalidate ( + weight NUMBER(8,2) PRIMARY KEY DISABLE NOVALIDATE, + weight_desc VARCHAR2(100) +); + +-- ============================================ +-- PRIMARY KEY WITH RELY/NORELY +-- ============================================ + +-- PRIMARY KEY with RELY +CREATE TABLE test_rely ( + code NUMBER(10) PRIMARY KEY RELY, + code_desc VARCHAR2(50) +); + +-- PRIMARY KEY with NORELY +CREATE TABLE test_norely ( + sequence NUMBER(10) PRIMARY KEY NORELY, + sequence_desc VARCHAR2(50) +); + +-- PRIMARY KEY with ENABLE RELY +CREATE TABLE test_enable_rely ( + batch_id NUMBER(10) PRIMARY KEY ENABLE RELY, + batch_desc VARCHAR2(50) +); + +-- PRIMARY KEY with DISABLE NORELY +CREATE TABLE test_disable_norely ( + zone_id NUMBER(5) PRIMARY KEY DISABLE NORELY, + zone_desc VARCHAR2(50) +); + +-- ============================================ +-- PRIMARY KEY WITH DEFERRABLE OPTIONS +-- ============================================ + +-- PRIMARY KEY with DEFERRABLE INITIALLY DEFERRED +CREATE TABLE test_deferrable_deferred ( + order_id NUMBER(10) PRIMARY KEY DEFERRABLE INITIALLY DEFERRED, + order_desc VARCHAR2(100) +); + +-- PRIMARY KEY with DEFERRABLE INITIALLY IMMEDIATE +CREATE TABLE test_deferrable_immediate ( + invoice_id NUMBER(10) PRIMARY KEY DEFERRABLE INITIALLY IMMEDIATE, + invoice_desc VARCHAR2(100) +); + +-- PRIMARY KEY with NOT DEFERRABLE +CREATE TABLE test_not_deferrable ( + ticket_id NUMBER(10) PRIMARY KEY NOT DEFERRABLE, + ticket_desc VARCHAR2(100) +); + +-- ============================================ +-- PRIMARY KEY ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes_inline ( + col_number NUMBER(10,2) PRIMARY KEY, + col_varchar2 VARCHAR2(100), + col_char CHAR(10) PRIMARY KEY, + col_date DATE PRIMARY KEY, + col_timestamp TIMESTAMP PRIMARY KEY, + col_clob CLOB PRIMARY KEY, + col_raw RAW(100) PRIMARY KEY, + col_float FLOAT PRIMARY KEY, + col_integer INTEGER PRIMARY KEY, + col_nvarchar2 NVARCHAR2(100) PRIMARY KEY, + col_nchar NCHAR(10) PRIMARY KEY +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- PRIMARY KEY with named constraint and long name +CREATE TABLE test_long_name ( + identifier NUMBER(10) CONSTRAINT pk_very_long_constraint_name_for_testing_parser_limits PRIMARY KEY, + record_code VARCHAR2(20) +); + +-- PRIMARY KEY with combined options +CREATE TABLE test_complex ( + score NUMBER(3) PRIMARY KEY ENABLE VALIDATE RELY, + rating VARCHAR2(20) PRIMARY KEY DISABLE NOVALIDATE NORELY +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_unique.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_unique.in.sql new file mode 100644 index 000000000..af552ccb5 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/column_def_unique.in.sql @@ -0,0 +1,196 @@ +-- Oracle SQL Inline UNIQUE Constraint Test Cases +-- Test setup: Create tables with inline UNIQUE constraints on different columns +CREATE TABLE customers ( + cust_id NUMBER(10) UNIQUE, + cust_name VARCHAR2(100) UNIQUE, + email VARCHAR2(100) UNIQUE, + phone VARCHAR2(20) UNIQUE +); + +CREATE TABLE inventory ( + item_id NUMBER(10) UNIQUE, + item_name VARCHAR2(200) UNIQUE, + price NUMBER(10,2), + sku VARCHAR2(50) UNIQUE +); + +CREATE TABLE shipments ( + ship_id NUMBER(10) UNIQUE, + customer_id NUMBER(10), + ship_date DATE UNIQUE, + tracking_number VARCHAR2(50) UNIQUE +); + +CREATE TABLE departments ( + dept_id NUMBER(10) UNIQUE, + dept_name VARCHAR2(100) UNIQUE, + manager_id NUMBER(10) UNIQUE, + budget NUMBER(12,2) +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10) UNIQUE, + supp_name VARCHAR2(100) UNIQUE, + contact VARCHAR2(100) UNIQUE, + ssn VARCHAR2(11) UNIQUE +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2) UNIQUE, + col_varchar2 VARCHAR2(100) UNIQUE, + col_char CHAR(10) UNIQUE, + col_date DATE UNIQUE, + col_timestamp TIMESTAMP UNIQUE, + col_clob CLOB UNIQUE, + col_raw RAW(100) UNIQUE, + col_float FLOAT UNIQUE, + col_integer INTEGER UNIQUE, + col_nvarchar2 NVARCHAR2(100) UNIQUE, + col_nchar NCHAR(10) UNIQUE +); + +-- ============================================ +-- BASIC INLINE UNIQUE CONSTRAINTS +-- ============================================ + +-- Simple UNIQUE constraint +CREATE TABLE test_basic ( + id NUMBER(10) UNIQUE, + value NUMBER(10) UNIQUE +); + +-- UNIQUE with named constraint +CREATE TABLE test_named ( + code VARCHAR2(20) CONSTRAINT uk_code UNIQUE, + ref_id NUMBER(10) CONSTRAINT uk_ref_id UNIQUE +); + +-- UNIQUE on VARCHAR2 +CREATE TABLE test_status ( + status VARCHAR2(20) CONSTRAINT uk_status UNIQUE, + status_code VARCHAR2(10) CONSTRAINT uk_status_code UNIQUE +); + +-- UNIQUE on DATE +CREATE TABLE test_dates ( + event_date DATE CONSTRAINT uk_event_date UNIQUE, + end_date DATE CONSTRAINT uk_end_date UNIQUE +); + +-- ============================================ +-- UNIQUE WITH ENABLE/DISABLE +-- ============================================ + +-- UNIQUE with ENABLE +CREATE TABLE test_enable ( + level NUMBER(2) UNIQUE ENABLE, + rating NUMBER(2) UNIQUE ENABLE +); + +-- UNIQUE with DISABLE +CREATE TABLE test_disable ( + priority NUMBER(2) UNIQUE DISABLE, + rank NUMBER(2) UNIQUE DISABLE +); + +-- UNIQUE with ENABLE VALIDATE +CREATE TABLE test_validate ( + amount NUMBER(10,2) UNIQUE ENABLE VALIDATE, + tax NUMBER(10,2) UNIQUE ENABLE VALIDATE +); + +-- UNIQUE with ENABLE NOVALIDATE +CREATE TABLE test_novalidate ( + discount NUMBER(10,2) UNIQUE ENABLE NOVALIDATE, + margin NUMBER(10,2) UNIQUE ENABLE NOVALIDATE +); + +-- UNIQUE with DISABLE NOVALIDATE +CREATE TABLE test_disable_novalidate ( + weight NUMBER(8,2) UNIQUE DISABLE NOVALIDATE, + volume NUMBER(8,2) UNIQUE DISABLE NOVALIDATE +); + +-- ============================================ +-- UNIQUE WITH RELY/NORELY +-- ============================================ + +-- UNIQUE with RELY +CREATE TABLE test_rely ( + code NUMBER(10) UNIQUE RELY, + ref_id NUMBER(10) UNIQUE RELY +); + +-- UNIQUE with NORELY +CREATE TABLE test_norely ( + sequence NUMBER(10) UNIQUE NORELY, + counter NUMBER(10) UNIQUE NORELY +); + +-- UNIQUE with ENABLE RELY +CREATE TABLE test_enable_rely ( + batch_id NUMBER(10) UNIQUE ENABLE RELY, + lot_number VARCHAR2(20) UNIQUE ENABLE RELY +); + +-- UNIQUE with DISABLE NORELY +CREATE TABLE test_disable_norely ( + zone_id NUMBER(5) UNIQUE DISABLE NORELY, + area_code VARCHAR2(10) UNIQUE DISABLE NORELY +); + +-- ============================================ +-- UNIQUE WITH DEFERRABLE OPTIONS +-- ============================================ + +-- UNIQUE with DEFERRABLE INITIALLY DEFERRED +CREATE TABLE test_deferrable_deferred ( + order_id NUMBER(10) UNIQUE DEFERRABLE INITIALLY DEFERRED, + line_item NUMBER(5) UNIQUE DEFERRABLE INITIALLY DEFERRED +); + +-- UNIQUE with DEFERRABLE INITIALLY IMMEDIATE +CREATE TABLE test_deferrable_immediate ( + invoice_id NUMBER(10) UNIQUE DEFERRABLE INITIALLY IMMEDIATE, + payment_status VARCHAR2(20) UNIQUE DEFERRABLE INITIALLY IMMEDIATE +); + +-- UNIQUE with NOT DEFERRABLE +CREATE TABLE test_not_deferrable ( + ticket_id NUMBER(10) UNIQUE NOT DEFERRABLE, + issue_date DATE UNIQUE NOT DEFERRABLE +); + +-- ============================================ +-- UNIQUE ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes_inline ( + col_number NUMBER(10,2) UNIQUE, + col_varchar2 VARCHAR2(100) UNIQUE, + col_char CHAR(10) UNIQUE, + col_date DATE UNIQUE, + col_timestamp TIMESTAMP UNIQUE, + col_clob CLOB UNIQUE, + col_raw RAW(100) UNIQUE, + col_float FLOAT UNIQUE, + col_integer INTEGER UNIQUE, + col_nvarchar2 NVARCHAR2(100) UNIQUE, + col_nchar NCHAR(10) UNIQUE +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- UNIQUE with named constraint and long name +CREATE TABLE test_long_name ( + identifier NUMBER(10) CONSTRAINT uk_very_long_constraint_name_for_testing_parser_limits UNIQUE, + record_code VARCHAR2(20) CONSTRAINT uk_record_code_long UNIQUE +); + +-- UNIQUE with combined options +CREATE TABLE test_complex ( + score NUMBER(3) UNIQUE ENABLE VALIDATE RELY, + rating VARCHAR2(20) UNIQUE DISABLE NOVALIDATE NORELY +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/comment.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/comment.in.sql new file mode 100644 index 000000000..f3c1ec80f --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/comment.in.sql @@ -0,0 +1,6 @@ +CREATE TABLE customers ( + name VARCHAR(20) +); + +COMMENT ON TABLE customers IS 'This table stores customer data.'; +COMMENT ON COLUMN customers.name IS 'The name of the customer.'; diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/create_index.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/create_index.in.sql new file mode 100644 index 000000000..c2fcda65a --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/create_index.in.sql @@ -0,0 +1,123 @@ +-- Oracle SQL CREATE INDEX Test Cases +-- Test setup: Create tables to support index creation with minimal required fields +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100), + email VARCHAR2(100), + phone VARCHAR2(20), + status VARCHAR2(20), + reg_date DATE, + region VARCHAR2(50), + credit_limit NUMBER(10,2) +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200), + price NUMBER(10,2), + category VARCHAR2(50), + sku VARCHAR2(50), + stock_level NUMBER(10), + warehouse_id NUMBER(10), + supplier_id NUMBER(10) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10), + ship_date DATE, + total_amount NUMBER(12,2), + tracking_number VARCHAR2(50), + carrier VARCHAR2(100), + priority NUMBER(2) +); + +CREATE TABLE departments ( + dept_id NUMBER(10), + dept_name VARCHAR2(100), + manager_id NUMBER(10), + location VARCHAR2(50) +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10), + supp_name VARCHAR2(100), + contact VARCHAR2(100), + city VARCHAR2(50) +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +-- ============================================ +-- BASIC INDEX CREATION +-- ============================================ + +-- Simple B-tree index (default type, named) +CREATE INDEX idx_cust_id ON customers(cust_id); + +-- Simple UNIQUE index +CREATE UNIQUE INDEX idx_cust_email ON customers(email); + +-- Bitmap index (suitable for low-cardinality columns) +CREATE BITMAP INDEX idx_cust_status ON customers(status); + +-- ============================================ +-- COMPOSITE INDEXES +-- ============================================ + +-- Composite B-tree index (multiple columns) +CREATE INDEX idx_inv_item_price ON inventory(item_name, price); + +-- Composite UNIQUE index +CREATE UNIQUE INDEX idx_ship_cust_date ON shipments(customer_id, ship_date); + +-- Composite bitmap index (for low-cardinality columns) +CREATE BITMAP INDEX idx_inv_category_stock ON inventory(category, stock_level); + +-- ============================================ +-- FUNCTION-BASED INDEXES +-- ============================================ + +-- Function-based B-tree index +CREATE INDEX idx_cust_name_upper ON customers(UPPER(cust_name)); + +-- Function-based UNIQUE index +CREATE UNIQUE INDEX idx_cust_email_lower ON customers(LOWER(email)); + +-- Function-based composite index +CREATE INDEX idx_inv_name_price ON inventory(UPPER(item_name), price * 1.1); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Index with very long name +CREATE INDEX idx_very_long_index_name_for_testing_parser_limits ON customers(cust_id); + +-- Bitmap index on high-cardinality column (unusual but valid) +CREATE BITMAP INDEX idx_cust_id_bitmap ON customers(cust_id); + +-- Function-based index with complex expression +CREATE INDEX idx_cust_complex ON customers(TO_CHAR(reg_date, 'YYYYMM') || cust_name); + +-- Index on nullable column +CREATE INDEX idx_ship_nullable ON shipments(customer_id); + +-- Composite index with multiple data types +CREATE INDEX idx_dt_mixed ON test_datatypes(col_number, col_varchar2, col_date); + +-- Note: Hash indexes are not directly supported in Oracle; B-tree is used instead +-- For hash-like behavior, Oracle uses hash-partitioned indexes or function-based indexes +CREATE INDEX idx_inv_hash_like ON inventory(ORA_HASH(item_name)); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/create_table.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/create_table.in.sql new file mode 100644 index 000000000..48d9d81be --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/create_table.in.sql @@ -0,0 +1,317 @@ +-- Oracle SQL CREATE TABLE Test Cases with Various Table Names +-- Test cases covering table creation with different naming conventions, including schema names, special characters, quoted identifiers, and edge cases +-- Each table uses unique columns and configurations to avoid repetition, with minimal constraints to focus on table naming + +-- ============================================ +-- BASIC TABLE NAMING +-- ============================================ + +-- Simple table name without schema +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100) +); + +-- Table name with schema prefix +CREATE TABLE hr.employees ( + emp_id NUMBER(10), + emp_name VARCHAR2(100) +); + +-- Table name with uppercase +CREATE TABLE INVENTORY ( + item_id NUMBER(10), + item_name VARCHAR2(200) +); + +-- Table name with lowercase +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10) +); + +-- ============================================ +-- TABLE NAMES WITH SPECIAL CHARACTERS +-- ============================================ + +-- Table name with spaces (quoted identifier) +CREATE TABLE "Customer Data" ( + data_id NUMBER(10), + data_value VARCHAR2(100) +); + +-- Table name with special characters (e.g., hyphen, underscore, dollar) +CREATE TABLE "order-details$test" ( + order_id NUMBER(10), + detail_desc VARCHAR2(200) +); + +-- Table name with mixed special characters +CREATE TABLE "sales#report@2023" ( + report_id NUMBER(10), + report_date DATE +); + +-- Table name with non-ASCII characters +CREATE TABLE "客户信息" ( + client_id NUMBER(10), + client_name NVARCHAR2(100) +); + +-- ============================================ +-- TABLE NAMES WITH SCHEMA AND SPECIAL CHARACTERS +-- ============================================ + +-- Schema with simple table name +CREATE TABLE sales.departments ( + dept_id NUMBER(10), + dept_name VARCHAR2(100) +); + +-- Schema with quoted table name containing spaces +CREATE TABLE hr."Employee Records" ( + record_id NUMBER(10), + record_status VARCHAR2(20) +); + +-- Schema with special characters in table name +CREATE TABLE finance."budget-report#2023" ( + budget_id NUMBER(10), + amount NUMBER(12,2) +); + +-- Schema with non-ASCII table name +CREATE TABLE global."製品データ" ( + product_id NUMBER(10), + product_name NVARCHAR2(200) +); + +-- ============================================ +-- LONG AND COMPLEX TABLE NAMES +-- ============================================ + +-- Maximum length table name (30 bytes in Oracle 12c and earlier, 128 bytes in 12.2+) +CREATE TABLE "very_long_table_name_for_testing_parser_limits_1234567890" ( + id NUMBER(10), + description VARCHAR2(4000) +); + +-- Table name with mixed case and spaces +CREATE TABLE "Sales Report Data 2023" ( + sales_id NUMBER(10), + sales_amount NUMBER(12,2) +); + +-- Table name with multiple special characters +CREATE TABLE "test@#$%^&*_table!" ( + test_id NUMBER(10), + test_value VARCHAR2(100) +); + +-- ============================================ +-- TABLE NAMES WITH CONSTRAINTS +-- ============================================ + +-- Table with PRIMARY KEY and special name +CREATE TABLE "project_tasks#1" ( + task_id NUMBER(10) PRIMARY KEY, + task_name VARCHAR2(100) +); + +-- Table with FOREIGN KEY and quoted name +CREATE TABLE "order details" ( + order_id NUMBER(10), + cust_id NUMBER(10) CONSTRAINT fk_order_cust REFERENCES customers(cust_id), + order_date DATE +); + +-- Table with NOT NULL and schema-qualified special name +CREATE TABLE hr."Employee_Contracts_2023" ( + contract_id NUMBER(10) NOT NULL, + emp_name VARCHAR2(100) NOT NULL +); + +-- Table with DEFAULT and non-ASCII name +CREATE TABLE "供应商数据" ( + supp_id NUMBER(10), + supp_name VARCHAR2(100) DEFAULT 'Anonymous' +); + +-- ============================================ +-- TABLE NAMES WITH STORAGE AND PARTITIONING +-- ============================================ + +-- Table with TABLESPACE and quoted name +CREATE TABLE "Sales Data Archive" ( + archive_id NUMBER(10), + archive_date DATE +) TABLESPACE archive_ts; + +-- Range-partitioned table with special name +CREATE TABLE "orders-2023-range" ( + order_id NUMBER(10), + order_date DATE, + total_amount NUMBER(12,2) +) PARTITION BY RANGE (order_date) ( + PARTITION p1 VALUES LESS THAN (TO_DATE('2023-01-01', 'YYYY-MM-DD')), + PARTITION p2 VALUES LESS THAN (TO_DATE('2024-01-01', 'YYYY-MM-DD')), + PARTITION p3 VALUES LESS THAN (MAXVALUE) +); + +-- List-partitioned table with schema and special name +CREATE TABLE sales."Customer_Regions#List" ( + cust_id NUMBER(10), + region VARCHAR2(50) +) PARTITION BY LIST (region) ( + PARTITION p_north VALUES ('North'), + PARTITION p_south VALUES ('South'), + PARTITION p_east VALUES ('East'), + PARTITION p_west VALUES ('West') +); + +-- Hash-partitioned table with quoted name +CREATE TABLE "inventory_hash@test" ( + item_id NUMBER(10), + item_name VARCHAR2(200) +) PARTITION BY HASH (item_id) ( + PARTITION p1, + PARTITION p2, + PARTITION p3, + PARTITION p4 +); + +-- ============================================ +-- TABLE NAMES WITH TEMPORARY AND EXTERNAL OPTIONS +-- ============================================ + +-- Global temporary table with quoted name +CREATE GLOBAL TEMPORARY TABLE "Temp Customer Data" ( + temp_id NUMBER(10), + temp_name VARCHAR2(100) +) ON COMMIT PRESERVE ROWS; + +-- External table with special name +CREATE TABLE "external_logs#2023" ( + log_id NUMBER(10), + log_message VARCHAR2(4000) +) ORGANIZATION EXTERNAL ( + TYPE ORACLE_LOADER + DEFAULT DIRECTORY data_dir + ACCESS PARAMETERS ( + RECORDS DELIMITED BY NEWLINE + FIELDS TERMINATED BY ',' + ) + LOCATION ('logs.csv') +); + +-- Index-organized table with schema and special name +CREATE TABLE hr."Employee_IOT@Data" ( + emp_id NUMBER(10) PRIMARY KEY, + emp_name VARCHAR2(100) +) ORGANIZATION INDEX; + +-- ============================================ +-- TABLE NAMES WITH CONSTRAINT OPTIONS +-- ============================================ + +-- Table with ENABLE VALIDATE and quoted name +CREATE TABLE "Project Tasks#Validated" ( + task_id NUMBER(10) PRIMARY KEY ENABLE VALIDATE, + task_name VARCHAR2(100) NOT NULL ENABLE VALIDATE +); + +-- Table with DISABLE NOVALIDATE and special name +CREATE TABLE "Tasks#NonValidated" ( + task_id NUMBER(10) PRIMARY KEY DISABLE NOVALIDATE, + priority NUMBER(2) NOT NULL DISABLE NOVALIDATE +); + +-- Table with RELY and schema-qualified name +CREATE TABLE sales."Orders_Rely#2023" ( + order_id NUMBER(10) PRIMARY KEY RELY, + order_amount NUMBER(12,2) NOT NULL RELY +); + +-- Table with NORELY and quoted name +CREATE TABLE "Suppliers_Norely@Data" ( + supp_id NUMBER(10) PRIMARY KEY NORELY, + supp_contact VARCHAR2(100) NOT NULL NORELY +); + +-- Table with DEFERRABLE and special name +CREATE TABLE "Contracts@Defer" ( + contract_id NUMBER(10) PRIMARY KEY DEFERRABLE INITIALLY DEFERRED, + contract_name VARCHAR2(100) NOT NULL DEFERRABLE INITIALLY DEFERRED +); + +-- Table with NOT DEFERRABLE and quoted name +CREATE TABLE "Tickets#NonDefer" ( + ticket_id NUMBER(10) PRIMARY KEY NOT DEFERRABLE, + ticket_type VARCHAR2(20) NOT NULL NOT DEFERRABLE +); + +-- ============================================ +-- TABLE NAMES WITH DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE "Test Data Types#2023" ( + col_number NUMBER(10,2) NOT NULL, + col_varchar2 VARCHAR2(100) UNIQUE, + col_char CHAR(10) DEFAULT 'DEFAULT ', + col_date DATE PRIMARY KEY, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Table with maximum length name (128 bytes in Oracle 12.2+) +CREATE TABLE "very_long_table_name_1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678" ( + id NUMBER(10), + value VARCHAR2(100) +); + +-- Table with reserved word as name (quoted) +CREATE TABLE "TABLE" ( + table_id NUMBER(10), + table_name VARCHAR2(100) +); + +-- Table with special characters and spaces in schema and table name +CREATE TABLE "hr data"."Employee Data#Report$2023" ( + report_id NUMBER(10), + report_value VARCHAR2(200) +); + +-- Table with Unicode characters in schema and table name +CREATE TABLE "グローバル"."製品情報@データ" ( + prod_id NUMBER(10), + prod_name NVARCHAR2(200) +); + +-- Table with mixed case, spaces, and special characters +CREATE TABLE "Sales Report#Data 2023@Prod" ( + sales_id NUMBER(10), + sales_amount NUMBER(12,2) +); + +-- Table with temporary storage and special name +CREATE GLOBAL TEMPORARY TABLE "Temp#Customer_Records" ( + temp_id NUMBER(10) PRIMARY KEY, + temp_name VARCHAR2(100) NOT NULL +) ON COMMIT DELETE ROWS; + +-- Table with composite PRIMARY KEY and quoted name +CREATE TABLE "Order Details#2023" ( + order_id NUMBER(10), + item_id NUMBER(10), + quantity NUMBER(10), + CONSTRAINT pk_order_details PRIMARY KEY (order_id, item_id) +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/data_types.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/data_types.in.sql new file mode 100644 index 000000000..f482c1fa0 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/data_types.in.sql @@ -0,0 +1,26 @@ +CREATE TABLE data_types ( + c1_char CHAR(10), + c2_varchar2 VARCHAR2(50), + c3_varchar VARCHAR(50), + c4_nchar NCHAR(20), + c5_nvarchar2 NVARCHAR2(100), + c6_number NUMBER(10, 2), + c7_long LONG, + c8_date DATE, + c9_binary_float BINARY_FLOAT, + c10_binary_double BINARY_DOUBLE, + c11_timestamp TIMESTAMP(6), + c12_timestamp_with_tz TIMESTAMP(6) WITH TIME ZONE, + c13_timestamp_with_local_tz TIMESTAMP(6) WITH LOCAL TIME ZONE, + c14_interval_ytm INTERVAL YEAR(2) TO MONTH, + c15_interval_dts INTERVAL DAY(2) TO SECOND(6), + c16_raw RAW(1000), + c17_long_raw LONG RAW, + c18_rowid ROWID, + c19_urowid UROWID(4000), + c20_clob CLOB, + c21_nclob NCLOB, + c22_blob BLOB, + c23_bfile BFILE, + c24_xmltype XMLTYPE +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_checks.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_checks.in.sql new file mode 100644 index 000000000..1a15890d7 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_checks.in.sql @@ -0,0 +1,137 @@ +-- Oracle SQL Out-of-Line CHECK Constraint Test Cases +-- Test cases covering out-of-line CHECK constraints in table definitions, including nameless, named, simple, and complex constraints +-- Each table uses unique columns and constraints to avoid repetition, with constraints applied to different columns across cases + +-- ============================================ +-- BASIC OUT-OF-LINE CHECK CONSTRAINTS +-- ============================================ + +-- Simple nameless CHECK constraint +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100), + email VARCHAR2(100), + phone VARCHAR2(20), + CHECK (cust_id > 0) +); + +-- Named CHECK constraint +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200), + price NUMBER(10,2), + category VARCHAR2(50), + CONSTRAINT chk_price_pos CHECK (price >= 0) +); + +-- Out-of-line CHECK with multiple columns +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10), + ship_date DATE, + total_amount NUMBER(12,2), + CONSTRAINT chk_amount_date CHECK (total_amount >= 0 AND ship_date IS NOT NULL) +); + +-- ============================================ +-- SIMPLE OUT-OF-LINE CHECK CONSTRAINTS +-- ============================================ + +-- Nameless CHECK on single column +CREATE TABLE departments ( + dept_id NUMBER(10), + dept_name VARCHAR2(100), + manager_id NUMBER(10), + budget NUMBER(12,2), + CHECK (budget >= 0) +); + +-- Named CHECK on single column +CREATE TABLE suppliers ( + supp_id NUMBER(10), + supp_name VARCHAR2(100), + contact VARCHAR2(100), + credit_limit NUMBER(10,2), + CONSTRAINT chk_credit_limit CHECK (credit_limit >= 0) +); + +-- CHECK with string pattern +CREATE TABLE employees ( + emp_id NUMBER(10), + emp_name VARCHAR2(100), + email VARCHAR2(100), + status VARCHAR2(20), + CONSTRAINT chk_status_values CHECK (status IN ('ACTIVE', 'INACTIVE', 'SUSPENDED')) +); + +-- ============================================ +-- COMPLEX OUT-OF-LINE CHECK CONSTRAINTS +-- ============================================ + +-- Complex CHECK with multiple conditions +CREATE TABLE orders ( + order_id NUMBER(10), + customer_id NUMBER(10), + order_date DATE, + total_amount NUMBER(12,2), + tax_amount NUMBER(10,2), + CONSTRAINT chk_order_amounts CHECK (total_amount >= tax_amount AND tax_amount >= 0) +); + +-- Complex CHECK with date comparison +CREATE TABLE contracts ( + contract_id NUMBER(10), + start_date DATE, + end_date DATE, + amount NUMBER(12,2), + CONSTRAINT chk_date_range CHECK (end_date > start_date AND start_date >= SYSDATE) +); + +-- Complex CHECK with pattern matching +CREATE TABLE users ( + user_id NUMBER(10), + username VARCHAR2(50), + email VARCHAR2(100), + ssn VARCHAR2(11), + CONSTRAINT chk_ssn_format CHECK (ssn LIKE '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]') +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Complex CHECK with multiple columns and expressions +CREATE TABLE sales ( + sale_id NUMBER(10), + sale_date DATE, + amount NUMBER(12,2), + discount NUMBER(10,2), + CONSTRAINT chk_sale_complex CHECK (amount >= discount AND discount >= 0 AND sale_date >= SYSDATE) +); + +-- CHECK with regular expression +CREATE TABLE accounts ( + account_id NUMBER(10), + account_number VARCHAR2(20), + balance NUMBER(12,2), + account_type VARCHAR2(20), + CONSTRAINT chk_acc_number CHECK (REGEXP_LIKE(account_number, '^[0-9]{10}$')) +); + +-- CHECK with long constraint name +CREATE TABLE reports ( + report_id NUMBER(10), + report_name VARCHAR2(100), + report_date DATE, + status VARCHAR2(20), + CONSTRAINT chk_very_long_constraint_name_for_testing_parser_limits CHECK (status IN ('DRAFT', 'FINAL', 'ARCHIVED')) +); + +-- CHECK with subquery (Note: Oracle allows subqueries in CHECK constraints in some versions) +CREATE TABLE employees_sub ( + emp_id NUMBER(10), + dept_id NUMBER(10), + emp_name VARCHAR2(100), + salary NUMBER(10,2), + CONSTRAINT chk_dept_exists CHECK (dept_id IN (SELECT dept_id FROM departments)) +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_fk.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_fk.in.sql new file mode 100644 index 000000000..c0eada7cc --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_fk.in.sql @@ -0,0 +1,133 @@ +-- Oracle SQL Out-of-Line FOREIGN KEY Constraint Test Cases +-- Test cases covering out-of-line FOREIGN KEY constraints in table definitions, including nameless, named, simple, and complex constraints +-- Each table uses unique columns and constraints to avoid repetition, with constraints applied to different columns across cases +-- ============================================ +-- BASIC OUT-OF-LINE FOREIGN KEY CONSTRAINTS +-- ============================================ +CREATE TABLE departments ( + dept_id NUMBER(10) PRIMARY KEY +); + +CREATE TABLE customers ( + cust_id NUMBER(10) PRIMARY KEY +); + +CREATE TABLE employees ( + emp_id NUMBER(10), + emp_name VARCHAR2(100), + dept_id NUMBER(10), + FOREIGN KEY (dept_id) REFERENCES departments(dept_id) +); + +-- Named FOREIGN KEY +CREATE TABLE orders ( + order_id NUMBER(10), + customer_id NUMBER(10), + order_date DATE, + CONSTRAINT fk_order_cust FOREIGN KEY (customer_id) REFERENCES customers(cust_id) +); + +-- FOREIGN KEY with NOT NULL +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10) NOT NULL, + ship_date DATE, + CONSTRAINT fk_ship_cust FOREIGN KEY (customer_id) REFERENCES customers(cust_id) +); + +-- ============================================ +-- COMPLEX OUT-OF-LINE FOREIGN KEY CONSTRAINTS +-- ============================================ +CREATE TABLE complex_parent ( + id NUMBER(10), + code VARCHAR2(20), + PRIMARY KEY (id, code) +); + +CREATE TABLE inventory ( + item_id NUMBER(10) PRIMARY KEY +); + +CREATE TABLE complex_child ( + child_id NUMBER(10), + parent_id NUMBER(10), + parent_code VARCHAR2(20), + CONSTRAINT fk_child_complex FOREIGN KEY (parent_id, parent_code) REFERENCES complex_parent(id, code) +); + +-- FOREIGN KEY with multiple columns (non-composite parent key) +CREATE TABLE order_details ( + detail_id NUMBER(10), + order_id NUMBER(10), + item_id NUMBER(10), + CONSTRAINT fk_detail_item FOREIGN KEY (item_id) REFERENCES inventory(item_id) +); + +-- FOREIGN KEY with ON DELETE CASCADE +CREATE TABLE assignments ( + assignment_id NUMBER(10), + emp_id NUMBER(10), + dept_id NUMBER(10), + CONSTRAINT fk_assign_dept FOREIGN KEY (dept_id) REFERENCES departments(dept_id) ON DELETE CASCADE +); + +-- FOREIGN KEY with ON DELETE SET NULL +CREATE TABLE project_members ( + member_id NUMBER(10), + emp_id NUMBER(10), + dept_id NUMBER(10), + CONSTRAINT fk_member_dept FOREIGN KEY (dept_id) REFERENCES departments(dept_id) ON DELETE SET NULL +); + +-- ============================================ +-- FOREIGN KEY ON DIFFERENT DATA TYPES +-- ============================================ +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2) UNIQUE, + col_varchar2 VARCHAR2(100) UNIQUE +); + +CREATE TABLE test_datatypes_fk ( + id NUMBER(10), + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + CONSTRAINT fk_dt_number FOREIGN KEY (col_number) REFERENCES test_datatypes(col_number), + CONSTRAINT fk_dt_varchar2 FOREIGN KEY (col_varchar2) REFERENCES test_datatypes(col_varchar2) +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ +-- FOREIGN KEY with self-referencing table +CREATE TABLE employees_self ( + emp_id NUMBER(10) PRIMARY KEY, + manager_id NUMBER(10), + emp_name VARCHAR2(100), + CONSTRAINT fk_self_manager FOREIGN KEY (manager_id) REFERENCES employees_self(emp_id) +); + +-- FOREIGN KEY with long constraint name +CREATE TABLE order_history ( + history_id NUMBER(10), + order_id NUMBER(10), + history_date DATE, + CONSTRAINT fk_very_long_constraint_name_for_testing_parser_limits FOREIGN KEY (order_id) REFERENCES orders(order_id) +); + +-- Complex FOREIGN KEY with ON DELETE CASCADE and DEFERRABLE +CREATE TABLE shipment_details ( + detail_id NUMBER(10), + ship_id NUMBER(10), + item_id NUMBER(10), + CONSTRAINT fk_ship_detail FOREIGN KEY (ship_id) REFERENCES shipments(ship_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED +); + +-- FOREIGN KEY with combined options (ENABLE VALIDATE RELY) +CREATE TABLE project_assignments ( + assign_id NUMBER(10), + emp_id NUMBER(10), + project_id NUMBER(10), + CONSTRAINT fk_assign_emp FOREIGN KEY (emp_id) REFERENCES employees(emp_id) ENABLE VALIDATE RELY +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_pk.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_pk.in.sql new file mode 100644 index 000000000..645143008 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_pk.in.sql @@ -0,0 +1,70 @@ +-- Oracle SQL Out-of-Line PRIMARY KEY Constraint Test Cases +-- Test cases covering out-of-line PRIMARY KEY constraints in table definitions, including nameless, named, simple, and composite constraints +-- Each table uses unique columns and constraints to avoid repetition, with constraints applied to different columns across cases + +-- ============================================ +-- PRIMARY KEY ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10), + CONSTRAINT pk_number PRIMARY KEY (col_number), + CONSTRAINT pk_varchar2 PRIMARY KEY (col_varchar2), + CONSTRAINT pk_char PRIMARY KEY (col_char), + CONSTRAINT pk_date PRIMARY KEY (col_date), + CONSTRAINT pk_timestamp PRIMARY KEY (col_timestamp), + CONSTRAINT pk_clob PRIMARY KEY (col_clob), + CONSTRAINT pk_raw PRIMARY KEY (col_raw), + CONSTRAINT pk_float PRIMARY KEY (col_float), + CONSTRAINT pk_integer PRIMARY KEY (col_integer), + CONSTRAINT pk_nvarchar2 PRIMARY KEY (col_nvarchar2), + CONSTRAINT pk_nchar PRIMARY KEY (col_nchar) +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Composite PRIMARY KEY with multiple columns +CREATE TABLE order_details ( + order_id NUMBER(10), + item_id NUMBER(10), + quantity NUMBER(10), + order_date DATE, + CONSTRAINT pk_order_details PRIMARY KEY (order_id, item_id) +); + +-- PRIMARY KEY with long constraint name +CREATE TABLE reports ( + report_id NUMBER(10), + report_name VARCHAR2(100), + report_date DATE, + status VARCHAR2(20), + CONSTRAINT pk_very_long_constraint_name_for_testing_parser_limits PRIMARY KEY (report_id) +); + +-- PRIMARY KEY with combined options +CREATE TABLE sales ( + sale_id NUMBER(10), + sale_date DATE, + amount NUMBER(12,2), + CONSTRAINT pk_sale PRIMARY KEY (sale_id) ENABLE VALIDATE RELY +); + +-- PRIMARY KEY with DISABLE NOVALIDATE NORELY +CREATE TABLE accounts ( + account_id NUMBER(10), + account_number VARCHAR2(20), + balance NUMBER(12,2), + CONSTRAINT pk_account PRIMARY KEY (account_id) DISABLE NOVALIDATE NORELY +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_unique.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_unique.in.sql new file mode 100644 index 000000000..47999a08b --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/in_table_unique.in.sql @@ -0,0 +1,70 @@ +-- Oracle SQL Out-of-Line UNIQUE Constraint Test Cases +-- Test cases covering out-of-line UNIQUE constraints in table definitions, including nameless, named, simple, and composite constraints +-- Each table uses unique columns and constraints to avoid repetition, with constraints applied to different columns across cases + +-- ============================================ +-- UNIQUE ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10), + CONSTRAINT uk_number UNIQUE (col_number), + CONSTRAINT uk_varchar2 UNIQUE (col_varchar2), + CONSTRAINT uk_char UNIQUE (col_char), + CONSTRAINT uk_date UNIQUE (col_date), + CONSTRAINT uk_timestamp UNIQUE (col_timestamp), + CONSTRAINT uk_clob UNIQUE (col_clob), + CONSTRAINT uk_raw UNIQUE (col_raw), + CONSTRAINT uk_float UNIQUE (col_float), + CONSTRAINT uk_integer UNIQUE (col_integer), + CONSTRAINT uk_nvarchar2 UNIQUE (col_nvarchar2), + CONSTRAINT uk_nchar UNIQUE (col_nchar) +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Composite UNIQUE with multiple columns +CREATE TABLE order_details ( + order_id NUMBER(10), + item_id NUMBER(10), + quantity NUMBER(10), + order_ref VARCHAR2(20), + CONSTRAINT uk_order_ref UNIQUE (order_id, item_id) +); + +-- UNIQUE with long constraint name +CREATE TABLE reports ( + report_id NUMBER(10), + report_name VARCHAR2(100), + report_date DATE, + report_code VARCHAR2(20), + CONSTRAINT uk_very_long_constraint_name_for_testing_parser_limits UNIQUE (report_code) +); + +-- UNIQUE with combined options +CREATE TABLE sales ( + sale_id NUMBER(10), + sale_date DATE, + sale_code VARCHAR2(20), + CONSTRAINT uk_sale_code UNIQUE (sale_code) ENABLE VALIDATE RELY +); + +-- UNIQUE with DISABLE NOVALIDATE NORELY +CREATE TABLE accounts ( + account_id NUMBER(10), + account_number VARCHAR2(20), + balance NUMBER(12,2), + CONSTRAINT uk_account_number UNIQUE (account_number) DISABLE NOVALIDATE NORELY +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/input/insert_general.in.sql b/packages/dbml-core/__tests__/importer/oracle_importer/input/insert_general.in.sql new file mode 100644 index 000000000..852154ed6 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/input/insert_general.in.sql @@ -0,0 +1,162 @@ +CREATE TABLE database_products ( + product_id NUMBER(10) PRIMARY KEY, + product_name VARCHAR2(100) NOT NULL, + vendor_name VARCHAR2(100), + release_year NUMBER(4), + is_open_source NUMBER(1) DEFAULT 0, + license_cost NUMBER(10, 2), + market_share NUMBER(5, 2), + latest_version VARCHAR2(20), + description CLOB, + created_at TIMESTAMP DEFAULT SYSTIMESTAMP, + updated_at TIMESTAMP DEFAULT SYSTIMESTAMP, + is_active NUMBER(1) DEFAULT 1, + max_connections NUMBER(10), + status CHAR(1) DEFAULT 'A' +); + +-- 1. Basic INSERT with all columns specified +INSERT INTO database_products ( + product_id, product_name, vendor_name, release_year, is_open_source, + license_cost, market_share, latest_version, description, is_active, max_connections, status +) VALUES ( + db_products_seq.NEXTVAL, 'Oracle Database', 'Oracle Corporation', 1979, 0, + 47500.00, 28.5, '21c', 'Enterprise relational database management system', 1, 10000, 'A' +); + +-- 2. INSERT with boolean-like values (0/1) +INSERT INTO database_products (product_name, vendor_name, is_open_source, is_active) +VALUES ('MySQL', 'Oracle Corporation', 1, 1); + +-- 3. INSERT with NULL values explicitly +INSERT INTO database_products (product_name, vendor_name, license_cost, description) +VALUES ('PostgreSQL', 'PostgreSQL Global Development Group', NULL, NULL); + +-- 4. INSERT with numeric expressions +INSERT INTO database_products (product_name, release_year, market_share, max_connections) +VALUES ('SQLite', 2000, 15.5 + 2.3, 1000 * 10); + +-- 5. INSERT with string functions +INSERT INTO database_products (product_name, vendor_name, description, latest_version) +VALUES ( + UPPER('microsoft sql server'), + 'Microsoft' || ' Corporation', -- Oracle uses || for concatenation + TRIM(' Relational database management system '), + SUBSTR('2022-CU10', 1, 4) -- Oracle uses SUBSTR not SUBSTRING +); + +-- 6. INSERT with date/time functions +INSERT INTO database_products (product_name, vendor_name, release_year, created_at) +VALUES ('MariaDB', 'MariaDB Foundation', EXTRACT(YEAR FROM SYSDATE), SYSTIMESTAMP); + +-- 7. INSERT multiple rows using INSERT ALL +INSERT ALL + INTO database_products (product_name, vendor_name, is_open_source, market_share) + VALUES ('MongoDB', 'MongoDB Inc.', 1, 8.2) + INTO database_products (product_name, vendor_name, is_open_source, market_share) + VALUES ('Redis', 'Redis Ltd.', 1, 6.7) + INTO database_products (product_name, vendor_name, is_open_source, market_share) + VALUES ('Cassandra', 'Apache Software Foundation', 1, 4.1) +SELECT * FROM DUAL; + +-- 8. INSERT with mathematical calculations +INSERT INTO database_products (product_name, license_cost, market_share, max_connections) +VALUES ('IBM Db2', 1500.00 * 12, ROUND(5.678, 1), POWER(2, 14)); + +-- 9. INSERT with conditional expression (CASE) +INSERT INTO database_products (product_name, vendor_name, license_cost, is_open_source) +VALUES ( + 'Amazon Aurora', + 'Amazon Web Services', + CASE WHEN 1=1 THEN 0.00 ELSE 1000.00 END, + 0 +); + +-- 10. INSERT with only some columns (others will use defaults) +INSERT INTO database_products (product_name) +VALUES ('CockroachDB'); + +-- 11. INSERT with negative numbers +INSERT INTO database_products (product_name, license_cost, release_year) +VALUES ('Test Database', -100.00, 2020); + +-- 12. INSERT with very large numbers +INSERT INTO database_products (product_name, max_connections, license_cost) +VALUES ('Enterprise DB', 999999, 99999.99); + +-- 13. INSERT with string containing newlines using CHR(10) +INSERT INTO database_products (product_name, description) +VALUES ('Neo4j', 'Graph database for connected data' || CHR(10) || 'Supports Cypher query language'); + +-- 14. INSERT with TO_DATE function +INSERT INTO database_products (product_name, release_year, created_at) +VALUES ('Firebird', 2000, TO_TIMESTAMP('2000-07-25 10:30:00', 'YYYY-MM-DD HH24:MI:SS')); + +-- 15. INSERT with column order different from table definition +INSERT INTO database_products (is_active, product_name, is_open_source, vendor_name) +VALUES (1, 'TimescaleDB', 1, 'Timescale Inc.'); + +-- 16. INSERT with zero values +INSERT INTO database_products (product_name, license_cost, market_share, max_connections) +VALUES ('MemSQL', 0.00, 0.0, 0); + +-- 17. INSERT using SYSDATE and string concatenation +INSERT INTO database_products (product_name, release_year, latest_version, created_at) +VALUES ('InfluxDB', EXTRACT(YEAR FROM SYSDATE), 'v' || '2.7', SYSDATE); + +-- 18. INSERT with NVL function (null value handling) +INSERT INTO database_products (product_name, vendor_name, license_cost) +VALUES ('Vertica', 'Micro Focus', NVL(NULL, 5000.00)); + +-- 19. INSERT with DECODE function +INSERT INTO database_products (product_name, is_open_source, status) +VALUES ('Greenplum', DECODE('yes', 'yes', 1, 'no', 0, 0), 'A'); + +-- 20. INSERT with LENGTH function +INSERT INTO database_products (product_name, max_connections, vendor_name) +VALUES ('SAP HANA', LENGTH('Maximum'), 'SAP SE'); + +-- 21. INSERT with INITCAP (capitalize first letter) +INSERT INTO database_products (product_name, vendor_name) +VALUES (INITCAP('clickhouse'), INITCAP('clickhouse inc')); + +-- 22. INSERT with COALESCE function +INSERT INTO database_products (product_name, license_cost, market_share) +VALUES ('Snowflake', COALESCE(NULL, NULL, 2500.00), 3.5); + +-- 23. INSERT with GREATEST/LEAST functions +INSERT INTO database_products (product_name, max_connections, market_share) +VALUES ('Teradata', GREATEST(1000, 5000, 3000), LEAST(10.5, 8.2, 15.7)); + +-- 24. INSERT with MOD function +INSERT INTO database_products (product_name, max_connections, release_year) +VALUES ('Informix', MOD(10050, 1000), 1980 + MOD(45, 20)); + +-- 25. INSERT using sequence explicitly +INSERT INTO database_products (product_id, product_name, vendor_name) +VALUES (db_products_seq.NEXTVAL, 'DynamoDB', 'Amazon Web Services'); + +-- 26. INSERT with LPAD/RPAD functions +INSERT INTO database_products (product_name, latest_version) +VALUES ('SingleStore', LPAD('8', 3, '0') || '.' || RPAD('5', 2, '0')); + +-- 27. INSERT with REPLACE function +INSERT INTO database_products (product_name, description) +VALUES ('Azure SQL', REPLACE('Microsoft cloud database service', 'cloud', 'managed cloud')); + +-- 28. INSERT with ABS (absolute value) +INSERT INTO database_products (product_name, license_cost, market_share) +VALUES ('Db2 Warehouse', ABS(-15000), ABS(-4.5)); + +-- 29. INSERT with TRUNC function +INSERT INTO database_products (product_name, market_share, license_cost) +VALUES ('Actian Ingres', TRUNC(7.89456, 2), TRUNC(12345.6789, 2)); + +-- 30. INSERT with multiple function combinations +INSERT INTO database_products (product_name, vendor_name, latest_version, release_year) +VALUES ( + UPPER(SUBSTR('rockset database', 1, 7)), + INITCAP(TRIM(' rockset inc ')), + 'v' || TO_CHAR(ROUND(2.75, 1)), + TO_NUMBER(TO_CHAR(SYSDATE, 'YYYY')) - 5 +); diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_check.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_check.out.dbml new file mode 100644 index 000000000..970aa24e3 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_check.out.dbml @@ -0,0 +1,71 @@ +Table "employees" { + "emp_id" NUMBER(10) + "emp_name" VARCHAR2(100) + "salary" NUMBER(10,2) + "commission_pct" NUMBER(3,2) + "hire_date" DATE + "email" VARCHAR2(100) + "department_id" NUMBER(5) + "status" VARCHAR2(20) + "age" NUMBER(3) + "performance_score" NUMBER(3,1) + + Checks { + `salary > 0` [name: 'chk_salary_positive'] + `commission_pct BETWEEN 0 AND 1` [name: 'chk_commission_range'] + `status IN ('ACTIVE', 'INACTIVE', 'ON_LEAVE', 'TERMINATED')` [name: 'chk_status_values'] + `email LIKE '%@%'` [name: 'chk_email_format'] + `age >= 18` + `salary >= 0` + `salary * 12 > 0` [name: 'chk_salary_calculation'] + `salary > 0 AND department_id IS NOT NULL` [name: 'chk_salary_dept_rules'] + `commission_pct > 0 OR salary > 50000` [name: 'chk_commission_or_salary'] + `email IS NOT NULL AND LENGTH(email) > 5` [name: 'chk_email_required'] + `CASE + WHEN status = 'ACTIVE' THEN salary > 0 + WHEN status = 'INACTIVE' THEN 1 = 1 + ELSE 1 = 1 + END = 1` [name: 'chk_salary_by_status'] + `LENGTH(TRIM(emp_name)) > 0` [name: 'chk_name_length'] + `hire_date <= SYSDATE` [name: 'chk_hire_date_valid'] + `(salary > 30000 AND age >= 21) OR + (salary <= 30000 AND age >= 18)` [name: 'chk_complex_conditions'] + `email = LOWER(email)` [name: 'chk_email_lowercase'] + `performance_score >= 0.0 AND performance_score <= 10.0` [name: 'chk_performance_range'] + `email LIKE '%@%.com' OR email LIKE '%@%.org'` [name: 'chk_email_domain'] + `status NOT IN ('PENDING', 'UNKNOWN')` [name: 'chk_status_not_invalid'] + `salary > 0 AND + salary < 1000000 AND + age >= 18 AND + age <= 100 AND + (commission_pct IS NULL OR (commission_pct >= 0 AND commission_pct <= 1)) AND + status IN ('ACTIVE', 'INACTIVE', 'ON_LEAVE', 'TERMINATED')` [name: 'chk_comprehensive_validation'] + `age BETWEEN 18 AND 70` [name: 'chk_age_working'] + `department_id IS NOT NULL AND department_id > 0` [name: 'chk_dept_valid'] + } +} + +Table "products" { + "product_id" NUMBER(10) + "product_name" VARCHAR2(200) + "price" NUMBER(10,2) + "discount_price" NUMBER(10,2) + "stock_quantity" NUMBER(8) + "category" VARCHAR2(50) + "weight" NUMBER(8,2) + + Checks { + `discount_price <= price` [name: 'chk_price_comparison'] + `stock_quantity >= 0` + `category IS NOT NULL` + `(price - discount_price) >= price * 0.05` [name: 'chk_price_margin'] + `weight > 0 AND weight < 10000` [name: 'chk_weight_reasonable'] + `NOT (price < 0)` [name: 'chk_price_not_negative'] + `UPPER(category) IN ('ELECTRONICS', 'CLOTHING', 'FOOD', 'BOOKS')` [name: 'chk_category_uppercase'] + `price * stock_quantity > 0 AND price / 100 < 100000` [name: 'chk_price_calculations'] + `(price - discount_price) * stock_quantity >= 0` [name: 'chk_discount_rules'] + `product_name IS NOT NULL` + `LENGTH(product_name) <= 200` [name: 'chk_prod_name_length'] + `stock_quantity <= 1000000` [name: 'chk_stock_max'] + } +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_fk.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_fk.out.dbml new file mode 100644 index 000000000..1a17848dd --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_fk.out.dbml @@ -0,0 +1,83 @@ +Table "departments" { + "dept_id" NUMBER(10) [pk] + "dept_name" VARCHAR2(100) + "location_id" NUMBER(10) + "manager_id" NUMBER(10) +} + +Table "locations" { + "location_id" NUMBER(10) [pk] + "city" VARCHAR2(100) + "country_code" CHAR(2) +} + +Table "countries" { + "country_code" CHAR(2) [pk] + "country_name" VARCHAR2(100) +} + +Table "employees" { + "emp_id" NUMBER(10) [pk] + "emp_name" VARCHAR2(100) + "department_id" NUMBER(10) + "manager_id" NUMBER(10) + "hire_date" DATE + "location_id" NUMBER(10) +} + +Table "projects" { + "project_id" NUMBER(10) [pk] + "project_name" VARCHAR2(200) + "dept_id" NUMBER(10) + "lead_emp_id" NUMBER(10) + "backup_emp_id" NUMBER(10) +} + +Table "assignments" { + "assignment_id" NUMBER(10) [pk] + "emp_id" NUMBER(10) + "project_id" NUMBER(10) + "start_date" DATE +} + +Table "project_tasks" { + "project_id" NUMBER(10) + "task_id" NUMBER(10) + "task_name" VARCHAR2(200) + "assigned_emp_id" NUMBER(10) + + Indexes { + (project_id, task_id) [pk] + } +} + +Table "task_hours" { + "hour_id" NUMBER(10) [pk] + "project_id" NUMBER(10) + "task_id" NUMBER(10) + "hours_worked" NUMBER(5,2) +} + +Ref "fk_emp_dept":"departments"."dept_id" < "employees"."department_id" + +Ref "fk_dept_location":"locations"."location_id" < "departments"."location_id" + +Ref "fk_loc_country":"countries"."country_code" < "locations"."country_code" + +Ref "fk_emp_manager":"employees"."emp_id" < "employees"."manager_id" + +Ref "fk_dept_manager":"employees"."emp_id" < "departments"."manager_id" + +Ref:"departments"."dept_id" < "projects"."dept_id" + +Ref:"employees"."emp_id" < "assignments"."emp_id" + +Ref:"projects"."project_id" < "assignments"."project_id" + +Ref "fk_task_hours_project_task":"project_tasks".("project_id", "task_id") < "task_hours".("project_id", "task_id") + +Ref "fk_proj_lead_emp":"employees"."emp_id" < "projects"."lead_emp_id" + +Ref "fk_proj_backup_emp":"employees"."emp_id" < "projects"."backup_emp_id" + +Ref "fk_task_assigned_emp":"employees"."emp_id" < "project_tasks"."assigned_emp_id" diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_not_null.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_not_null.out.dbml new file mode 100644 index 000000000..fb27d73af --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_not_null.out.dbml @@ -0,0 +1,37 @@ +Table "customers" { + "cust_id" NUMBER(10) + "cust_name" VARCHAR2(100) [not null] + "email" VARCHAR2(100) [not null] + "phone" VARCHAR2(20) +} + +Table "inventory" { + "item_id" NUMBER(10) + "item_name" VARCHAR2(200) [not null] + "price" NUMBER(10,2) [not null] + "category" VARCHAR2(50) [not null] + "manufacturer" VARCHAR2(100) [not null] + "sku" VARCHAR2(50) [not null] +} + +Table "shipments" { + "ship_id" NUMBER(10) + "customer_id" NUMBER(10) [not null] + "ship_date" DATE [not null] + "total_amount" NUMBER(12,2) [not null] +} + +Table "departments" { + "dept_id" NUMBER(10) [not null] + "dept_name" VARCHAR2(100) [not null] + "manager_id" NUMBER(10) + "status" VARCHAR2(20) +} + +Table "suppliers" { + "supp_id" NUMBER(10) + "supp_name" VARCHAR2(100) [not null] + "contact" VARCHAR2(100) + "ssn" VARCHAR2(11) + "badge_number" VARCHAR2(10) +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_pk.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_pk.out.dbml new file mode 100644 index 000000000..f228e3d50 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_pk.out.dbml @@ -0,0 +1,64 @@ +Table "customers" { + "cust_id" NUMBER(10) + "cust_name" VARCHAR2(100) [not null] + "email" VARCHAR2(100) + "phone" VARCHAR2(20) + "address" VARCHAR2(200) + + Indexes { + cust_id [pk, name: "pk_cust_id"] + } +} + +Table "inventory" { + "item_id" NUMBER(10) + "item_name" VARCHAR2(200) [not null] + "price" NUMBER(10,2) [not null] + "category" VARCHAR2(50) + "sku" VARCHAR2(50) + + Indexes { + item_id [pk] + } +} + +Table "shipments" { + "ship_id" NUMBER(10) + "customer_id" NUMBER(10) [not null] + "ship_date" DATE + "total_amount" NUMBER(12,2) + "tracking_number" VARCHAR2(50) +} + +Table "datatype_tests" { + "col_number" NUMBER(10,2) + "col_varchar2" VARCHAR2(100) + "col_char" CHAR(10) + "col_date" DATE + "col_timestamp" TIMESTAMP + "col_clob" CLOB + "col_raw" RAW(100) + "col_float" FLOAT + "col_integer" INTEGER + "col_nvarchar2" NVARCHAR2(100) + "col_nchar" NCHAR(10) +} + +Table "complex_test" { + "id" NUMBER(10) + "code" VARCHAR2(20) [unique] + "name" VARCHAR2(100) [not null] + "parent_id" NUMBER(10) + "status" VARCHAR2(20) + + Indexes { + (id, code) [pk, name: "pk_complex_composite"] + } +} + +Table "combo_test" { + "col1" NUMBER(10) + "col2" VARCHAR2(50) +} + +Ref "fk_complex_parent":"complex_test"."id" < "complex_test"."parent_id" diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_unique.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_unique.out.dbml new file mode 100644 index 000000000..ea56339ff --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_add_unique.out.dbml @@ -0,0 +1,64 @@ +Table "customers" { + "cust_id" NUMBER(10) + "cust_name" VARCHAR2(100) [not null] + "email" VARCHAR2(100) + "phone" VARCHAR2(20) + "address" VARCHAR2(200) + + Indexes { + phone [unique, name: "uk_cust_phone"] + } +} + +Table "inventory" { + "item_id" NUMBER(10) + "item_name" VARCHAR2(200) [not null] + "price" NUMBER(10,2) [not null] + "category" VARCHAR2(50) + "sku" VARCHAR2(50) + + Indexes { + sku [unique] + } +} + +Table "shipments" { + "ship_id" NUMBER(10) + "customer_id" NUMBER(10) [not null] + "ship_date" DATE + "total_amount" NUMBER(12,2) + "tracking_number" VARCHAR2(50) +} + +Table "datatype_tests" { + "col_number" NUMBER(10,2) + "col_varchar2" VARCHAR2(100) + "col_char" CHAR(10) + "col_date" DATE + "col_timestamp" TIMESTAMP + "col_clob" CLOB + "col_raw" RAW(100) + "col_float" FLOAT + "col_integer" INTEGER + "col_nvarchar2" NVARCHAR2(100) + "col_nchar" NCHAR(10) +} + +Table "complex_test" { + "id" NUMBER(10) + "code" VARCHAR2(20) + "name" VARCHAR2(100) [not null] + "parent_id" NUMBER(10) + "status" VARCHAR2(20) + + Indexes { + (id, status) [unique, name: "uk_complex_id_status"] + } +} + +Table "combo_test" { + "col1" NUMBER(10) + "col2" VARCHAR2(50) +} + +Ref "fk_complex_parent":"complex_test"."id" < "complex_test"."parent_id" diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_check_constraints.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_check_constraints.out.dbml new file mode 100644 index 000000000..bfe70496c --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_check_constraints.out.dbml @@ -0,0 +1,70 @@ +Table "customers" { + "cust_id" NUMBER(10) + "cust_name" VARCHAR2(100) [not null] + "email" VARCHAR2(100) + "phone" VARCHAR2(20) + "address" VARCHAR2(200) + + Checks { + `cust_id > 0` [name: 'chk_cust_id_pos'] + } +} + +Table "inventory" { + "item_id" NUMBER(10) + "item_name" VARCHAR2(200) [not null] + "price" NUMBER(10,2) [not null] + "category" VARCHAR2(50) + "sku" VARCHAR2(50) + + Checks { + `price >= 0` + `category IN ('ELECTRONICS', 'CLOTHING', 'BOOKS')` [name: 'chk_inv_category'] + } +} + +Table "shipments" { + "ship_id" NUMBER(10) + "customer_id" NUMBER(10) [not null] + "ship_date" DATE + "total_amount" NUMBER(12,2) + "tracking_number" VARCHAR2(50) + + Checks { + `total_amount >= 0` [name: 'chk_ship_amount'] + `ship_date >= TRUNC(SYSDATE)` [name: 'chk_ship_date_valid'] + } +} + +Table "datatype_tests" { + "col_number" NUMBER(10,2) + "col_varchar2" VARCHAR2(100) + "col_char" CHAR(10) + "col_date" DATE + "col_timestamp" TIMESTAMP + "col_clob" CLOB + "col_raw" RAW(100) + "col_float" FLOAT + "col_integer" INTEGER + "col_nvarchar2" NVARCHAR2(100) + "col_nchar" NCHAR(10) +} + +Table "complex_test" { + "id" NUMBER(10) + "code" VARCHAR2(20) + "name" VARCHAR2(100) [not null] + "parent_id" NUMBER(10) + "status" VARCHAR2(20) + + Checks { + `id IS NOT NULL OR status = 'ACTIVE'` [name: 'chk_id_status'] + } +} + +Table "combo_test" { + "col1" NUMBER(10) + "col2" VARCHAR2(50) +} + +Ref "fk_complex_parent":"complex_test"."id" < "complex_test"."parent_id" diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_set_default.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_set_default.out.dbml new file mode 100644 index 000000000..afed80c91 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_set_default.out.dbml @@ -0,0 +1,62 @@ +Table "customers" { + "cust_id" NUMBER(10) [default: 1] + "cust_name" VARCHAR2(100) + "email" VARCHAR2(100) [default: 'email@example.com'] + "phone" VARCHAR2(20) [default: null] + "address" VARCHAR2(200) + "status" VARCHAR2(20) [default: 'churned'] + "reg_date" DATE [default: `SYSDATE`] + "last_login" TIMESTAMP +} + +Table "inventory" { + "item_id" NUMBER(10) + "item_name" VARCHAR2(200) [default: 'Unknown'] + "price" NUMBER(10,2) [default: 0.99] + "category" VARCHAR2(50) [default: 'Misc'] + "sku" VARCHAR2(50) + "weight" NUMBER(8,2) + "stock_level" NUMBER(10) + "reorder_level" NUMBER(10) +} + +Table "shipments" { + "ship_id" NUMBER(10) + "customer_id" NUMBER(10) [default: 1] + "ship_date" DATE [default: `SYSDATE`] + "total_amount" NUMBER(12,2) + "tracking_number" VARCHAR2(50) [default: `SYS_GUID()`] + "carrier" VARCHAR2(100) + "priority" NUMBER(2) + "notes" VARCHAR2(4000) [default: 'This is a very long default value for testing purposes, exceeding typical lengths to check parser limits and storage implications in Oracle SQL'] +} + +Table "departments" { + "dept_id" NUMBER(10) [default: `test_seq.NEXTVAL`] + "dept_name" VARCHAR2(100) + "manager_id" NUMBER(10) + "budget" NUMBER(12,2) [default: 10000] + "location" VARCHAR2(50) [default: `UPPER(USER) || '_DEPT'`] + "established_date" DATE [default: `SYSDATE`] +} + +Table "suppliers" { + "supp_id" NUMBER(10) + "supp_name" VARCHAR2(100) [default: 'Anonymous'] + "contact" VARCHAR2(100) [default: 'N/A'] + "ssn" VARCHAR2(11) + "badge_number" VARCHAR2(10) + "credit_limit" NUMBER(10,2) [default: `5000 + 1000`] +} + +Table "test_defaults" { + "col1" NUMBER + "col2" VARCHAR2(50) + "col3" DATE + "col4" TIMESTAMP + "col5" CLOB + "col6" RAW(100) + "col7" FLOAT + "col8" INTEGER + "col9" NVARCHAR2(100) +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_set_nullable.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_set_nullable.out.dbml new file mode 100644 index 000000000..61b640b1f --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/alter_table_set_nullable.out.dbml @@ -0,0 +1,66 @@ +Table "employees" { + "emp_id" NUMBER(10) [not null] + "emp_name" VARCHAR2(100) [not null] + "email" VARCHAR2(100) [not null] + "phone" VARCHAR2(20) + "salary" NUMBER(10,2) + "commission_pct" NUMBER(3,2) + "hire_date" DATE + "department_id" NUMBER(10) [not null] + "manager_id" NUMBER(10) [not null] + "status" VARCHAR2(20) [not null] + "ssn" VARCHAR2(11) [not null] + "badge_number" VARCHAR2(10) [not null] + "title" VARCHAR2(100) [not null] + "office_location" VARCHAR2(50) [not null] +} + +Table "products" { + "product_id" NUMBER(10) [not null] + "product_name" VARCHAR2(200) [not null] + "description" VARCHAR2(4000) + "price" NUMBER(10,2) [not null] + "category" VARCHAR2(50) [not null] + "manufacturer" VARCHAR2(100) + "sku" VARCHAR2(50) [not null] + "weight" NUMBER(8,2) +} + +Table "orders" { + "order_id" NUMBER(10) [not null] + "customer_id" NUMBER(10) [not null] + "order_date" DATE [not null] + "ship_date" DATE [not null] + "total_amount" NUMBER(12,2) [not null] + "tax_amount" NUMBER(10,2) [not null] + "discount_amount" NUMBER(10,2) [not null] +} + +Table "datatype_tests" { + "col_number" NUMBER(10,2) + "col_varchar2" VARCHAR2(100) + "col_char" CHAR(10) + "col_date" DATE + "col_timestamp" TIMESTAMP + "col_clob" CLOB + "col_raw" RAW(100) + "col_float" FLOAT + "col_integer" INTEGER + "col_nvarchar2" NVARCHAR2(100) + "col_nchar" NCHAR(10) +} + +Table "complex_test" { + "id" NUMBER(10) [pk] + "code" VARCHAR2(20) [unique] + "name" VARCHAR2(100) [not null] + "parent_id" NUMBER(10) [not null] + "status" VARCHAR2(20) +} + +Table "combo_test" { + "col1" NUMBER(10) + "col2" VARCHAR2(50) +} + +Ref "fk_complex_parent":"complex_test"."id" < "complex_test"."parent_id" diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_checks.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_checks.out.dbml new file mode 100644 index 000000000..86ea4bd8c --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_checks.out.dbml @@ -0,0 +1,190 @@ +Table "customers" { + "cust_id" NUMBER(10) [check: `cust_id > 0`] + "cust_name" VARCHAR2(100) [check: `LENGTH(cust_name) <= 100`] + "email" VARCHAR2(100) [check: `email LIKE '%@%.%'`] + "phone" VARCHAR2(20) [check: `LENGTH(phone) >= 10`] + "address" VARCHAR2(200) [check: `address IS NOT NULL`] + "status" VARCHAR2(20) [check: `status IN ('ACTIVE', 'INACTIVE')`] + "reg_date" DATE [check: `reg_date >= TO_DATE('2000-01-01', 'YYYY-MM-DD')`] + "last_login" TIMESTAMP [check: `last_login <= SYSTIMESTAMP`, check: `last_login >= SYSTIMESTAMP`] + "last_login_2" TIMESTAMP [check: `last_login_2 <= SYSTIMESTAMP`, check: `last_login_2 >= SYSTIMESTAMP`] + "last_login_3" TIMESTAMP [check: `last_login_3 <= SYSTIMESTAMP`, check: `last_login_3 >= SYSTIMESTAMP`] +} + +Table "inventory" { + "item_id" NUMBER(10) [check: `item_id > 0`] + "item_name" VARCHAR2(200) [check: `item_name IS NOT NULL`] + "price" NUMBER(10,2) [check: `price >= 0`] + "category" VARCHAR2(50) [check: `category IN ('ELECTRONICS', 'CLOTHING', 'BOOKS')`] + "sku" VARCHAR2(50) [check: `LENGTH(sku) <= 50`] + "weight" NUMBER(8,2) [check: `weight > 0`] + "stock_level" NUMBER(10) [check: `stock_level >= 0`] + "reorder_level" NUMBER(10) [check: `reorder_level >= 0`] +} + +Table "shipments" { + "ship_id" NUMBER(10) [check: `ship_id > 0`] + "customer_id" NUMBER(10) [check: `customer_id > 0`] + "ship_date" DATE [check: `ship_date >= TRUNC(SYSDATE)`] + "total_amount" NUMBER(12,2) [check: `total_amount >= 0`] + "tracking_number" VARCHAR2(50) [check: `LENGTH(tracking_number) <= 50`] + "carrier" VARCHAR2(100) [check: `carrier IS NOT NULL`] + "priority" NUMBER(2) [check: `priority BETWEEN 1 AND 5`] + "notes" VARCHAR2(4000) [check: `LENGTH(notes) <= 4000`] +} + +Table "departments" { + "dept_id" NUMBER(10) [check: `dept_id > 0`] + "dept_name" VARCHAR2(100) [check: `dept_name IS NOT NULL`] + "manager_id" NUMBER(10) [check: `manager_id > 0`] + "budget" NUMBER(12,2) [check: `budget >= 0`] + "location" VARCHAR2(50) [check: `location IS NOT NULL`] + "established_date" DATE [check: `established_date <= SYSDATE`] +} + +Table "suppliers" { + "supp_id" NUMBER(10) [check: `supp_id > 0`] + "supp_name" VARCHAR2(100) [check: `supp_name IS NOT NULL`] + "contact" VARCHAR2(100) [check: `LENGTH(contact) <= 100`] + "ssn" VARCHAR2(11) [check: `ssn LIKE '___-__-____'`] + "badge_number" VARCHAR2(10) [check: `LENGTH(badge_number) <= 10`] + "credit_limit" NUMBER(10,2) [check: `credit_limit >= 0`] +} + +Table "test_datatypes" { + "col_number" NUMBER(10,2) [check: `col_number >= 0`] + "col_varchar2" VARCHAR2(100) [check: `LENGTH(col_varchar2) <= 100`] + "col_char" CHAR(10) [check: `LENGTH(col_char) = 10`] + "col_date" DATE [check: `col_date >= TO_DATE('2000-01-01', 'YYYY-MM-DD')`] + "col_timestamp" TIMESTAMP [check: `col_timestamp <= SYSTIMESTAMP`] + "col_clob" CLOB [check: `col_clob IS NOT NULL`] + "col_raw" RAW(100) [check: `LENGTH(col_raw) <= 100`] + "col_float" FLOAT [check: `col_float >= 0`] + "col_integer" INTEGER [check: `col_integer >= 0`] + "col_nvarchar2" NVARCHAR2(100) [check: `LENGTH(col_nvarchar2) <= 100`] + "col_nchar" NCHAR(10) [check: `LENGTH(col_nchar) = 10`] +} + +Table "test_basic" { + "id" NUMBER(10) [check: `id > 0`] + "value" NUMBER(10) [check: `value BETWEEN 1 AND 1000`] +} + +Table "test_status" { + "status" VARCHAR2(20) [check: `status IN ('OPEN', 'CLOSED', 'PENDING')`] + "code" VARCHAR2(10) [check: `LENGTH(code) <= 10`] +} + +Table "test_not_null" { + "name" VARCHAR2(100) [check: `name IS NOT NULL`] + "description" VARCHAR2(200) [check: `LENGTH(description) <= 200`] +} + +Table "test_dates" { + "event_date" DATE [check: `event_date >= SYSDATE`] + "end_date" DATE [check: `end_date > SYSDATE`] +} + +Table "test_compound" { + "quantity" NUMBER(10) [check: `quantity >= 0`] + "price" NUMBER(10,2) [check: `quantity * price >= 0`] +} + +Table "test_pattern" { + "email" VARCHAR2(100) [check: `email LIKE '%@%.%'`] + "phone" VARCHAR2(20) [check: `phone LIKE '[0-9]%'`] +} + +Table "test_multi_condition" { + "score" NUMBER(3) [check: `score BETWEEN 0 AND 100`] + "grade" CHAR(1) [check: `grade IN ('A', 'B', 'C', 'D', 'F') AND score > 0`] +} + +Table "test_enable" { + "level" NUMBER(2) [check: `level BETWEEN 1 AND 10`] + "rating" NUMBER(2) [check: `rating >= 0`] +} + +Table "test_disable" { + "priority" NUMBER(2) [check: `priority BETWEEN 1 AND 5`] + "rank" NUMBER(2) [check: `rank >= 0`] +} + +Table "test_validate" { + "amount" NUMBER(10,2) [check: `amount >= 0`] + "tax" NUMBER(10,2) [check: `tax >= 0`] +} + +Table "test_novalidate" { + "discount" NUMBER(10,2) [check: `discount >= 0`] + "margin" NUMBER(10,2) [check: `margin >= 0`] +} + +Table "test_disable_novalidate" { + "weight" NUMBER(8,2) [check: `weight > 0`] + "volume" NUMBER(8,2) [check: `volume > 0`] +} + +Table "test_rely" { + "code" NUMBER(10) [check: `code > 0`] + "ref_id" NUMBER(10) [check: `ref_id > 0`] +} + +Table "test_norely" { + "sequence" NUMBER(10) [check: `sequence > 0`] + "counter" NUMBER(10) [check: `counter >= 0`] +} + +Table "test_enable_rely" { + "batch_id" NUMBER(10) [check: `batch_id > 0`] + "lot_number" VARCHAR2(20) [check: `LENGTH(lot_number) <= 20`] +} + +Table "test_disable_norely" { + "zone_id" NUMBER(5) [check: `zone_id > 0`] + "area_code" VARCHAR2(10) [check: `LENGTH(area_code) <= 10`] +} + +Table "test_deferrable_deferred" { + "order_id" NUMBER(10) [check: `order_id > 0`] + "line_item" NUMBER(5) [check: `line_item > 0`] +} + +Table "test_deferrable_immediate" { + "invoice_id" NUMBER(10) [check: `invoice_id > 0`] + "payment_status" VARCHAR2(20) [check: `payment_status IN ('PAID', 'PENDING')`] +} + +Table "test_not_deferrable" { + "ticket_id" NUMBER(10) [check: `ticket_id > 0`] + "issue_date" DATE [check: `issue_date <= SYSDATE`] +} + +Table "test_datatypes_inline" { + "col_number" NUMBER(10,2) [check: `col_number >= 0`] + "col_varchar2" VARCHAR2(100) [check: `LENGTH(col_varchar2) <= 100`] + "col_char" CHAR(10) [check: `LENGTH(col_char) = 10`] + "col_date" DATE [check: `col_date >= TO_DATE('2000-01-01', 'YYYY-MM-DD')`] + "col_timestamp" TIMESTAMP [check: `col_timestamp <= SYSTIMESTAMP`] + "col_clob" CLOB [check: `col_clob IS NOT NULL`] + "col_raw" RAW(100) [check: `LENGTH(col_raw) <= 100`] + "col_float" FLOAT [check: `col_float >= 0`] + "col_integer" INTEGER [check: `col_integer >= 0`] + "col_nvarchar2" NVARCHAR2(100) [check: `LENGTH(col_nvarchar2) <= 100`] + "col_nchar" NCHAR(10) [check: `LENGTH(col_nchar) = 10`] +} + +Table "test_complex" { + "score" NUMBER(3) [check: `score >= 0 AND MOD(score, 2) = 0`] + "rating" VARCHAR2(20) [check: `rating IN ('HIGH', 'MEDIUM', 'LOW') AND LENGTH(rating) > 3`] +} + +Table "test_pattern_match" { + "zip_code" VARCHAR2(10) [check: `REGEXP_LIKE(zip_code, '^[0-9]{5}(-[0-9]{4})?$')`] + "serial_number" VARCHAR2(20) [check: `REGEXP_LIKE(serial_number, '^[A-Z0-9]+$')`] +} + +Table "test_subquery" { + "dept_id" NUMBER(10) [check: `dept_id IN (SELECT dept_id FROM departments)`] + "emp_count" NUMBER(5) [check: `emp_count >= 0`] +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_default.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_default.out.dbml new file mode 100644 index 000000000..8f4f62403 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_default.out.dbml @@ -0,0 +1,213 @@ +Table "customers" { + "cust_id" NUMBER(10) [default: 0] + "cust_name" VARCHAR2(100) [default: 'Unknown'] + "email" VARCHAR2(100) [default: 'noemail@example.com'] + "phone" VARCHAR2(20) [default: 'N/A'] + "address" VARCHAR2(200) [default: 'Unknown Address'] + "status" VARCHAR2(20) [default: 'ACTIVE'] + "reg_date" DATE [default: `SYSDATE`] + "last_login" TIMESTAMP [default: `SYSTIMESTAMP`] +} + +Table "inventory" { + "item_id" NUMBER(10) [default: 1] + "item_name" VARCHAR2(200) [default: 'Item'] + "price" NUMBER(10,2) [default: 0] + "category" VARCHAR2(50) [default: 'Misc'] + "sku" VARCHAR2(50) [default: 'SKU000'] + "weight" NUMBER(8,2) [default: 0] + "stock_level" NUMBER(10) [default: 0] + "reorder_level" NUMBER(10) [default: 10] +} + +Table "shipments" { + "ship_id" NUMBER(10) [default: `test_seq.NEXTVAL`] + "customer_id" NUMBER(10) [default: 1] + "ship_date" DATE [default: `SYSDATE`] + "total_amount" NUMBER(12,2) [default: 0] + "tracking_number" VARCHAR2(50) [default: `SYS_GUID()`] + "carrier" VARCHAR2(100) [default: 'UPS'] + "priority" NUMBER(2) [default: 1] + "notes" VARCHAR2(4000) [default: 'No notes'] +} + +Table "departments" { + "dept_id" NUMBER(10) [default: 100] + "dept_name" VARCHAR2(100) [default: 'General'] + "manager_id" NUMBER(10) [default: 0] + "budget" NUMBER(12,2) [default: 10000] + "location" VARCHAR2(50) [default: 'HQ'] + "established_date" DATE [default: `SYSDATE`] +} + +Table "suppliers" { + "supp_id" NUMBER(10) [default: 500] + "supp_name" VARCHAR2(100) [default: 'Supplier'] + "contact" VARCHAR2(100) [default: 'Contact'] + "ssn" VARCHAR2(11) [default: '000-00-0000'] + "badge_number" VARCHAR2(10) [default: 'BADGE000'] + "credit_limit" NUMBER(10,2) [default: 5000] +} + +Table "test_datatypes" { + "col_number" NUMBER(10,2) [default: 42] + "col_varchar2" VARCHAR2(100) [default: 'Default Text'] + "col_char" CHAR(10) [default: 'CHARDEF '] + "col_date" DATE [default: `SYSDATE`] + "col_timestamp" TIMESTAMP [default: `SYSTIMESTAMP`] + "col_clob" CLOB [default: `EMPTY_CLOB()`] + "col_raw" RAW(100) [default: `HEXTORAW('00')`] + "col_float" FLOAT [default: 3.14] + "col_integer" INTEGER [default: 100] + "col_nvarchar2" NVARCHAR2(100) [default: `N'Default National'`] + "col_nchar" NCHAR(10) [default: `N'NCHARDEF '`] +} + +Table "test_basic_num" { + "id" NUMBER(10) [default: 0] + "value" NUMBER(10) [default: 100] +} + +Table "test_basic_varchar" { + "name" VARCHAR2(100) [default: 'Unknown'] + "code" VARCHAR2(10) [default: 'CODE'] +} + +Table "test_basic_date" { + "event_date" DATE [default: `SYSDATE`] + "end_date" DATE [default: `SYSDATE + 1`] +} + +Table "test_expr_sysdate" { + "created_at" DATE [default: `SYSDATE`] + "updated_at" DATE [default: `SYSDATE`] +} + +Table "test_expr_user" { + "created_by" VARCHAR2(30) [default: `USER`] + "modified_by" VARCHAR2(30) [default: `USER`] +} + +Table "test_expr_guid" { + "unique_id" VARCHAR2(32) [default: `SYS_GUID()`] + "session_id" VARCHAR2(32) [default: `SYS_GUID()`] +} + +Table "test_expr_seq" { + "seq_id" NUMBER(10) [default: `test_seq.NEXTVAL`] + "auto_id" NUMBER(10) [default: `test_seq.NEXTVAL`] +} + +Table "test_expr_arith" { + "base_value" NUMBER(10) [default: 1000] + "calc_value" NUMBER(10) [default: `1000 + 500`] +} + +Table "test_on_null_basic" { + "email" VARCHAR2(100) [default: 'noemail@example.com'] + "phone" VARCHAR2(20) [default: 'N/A'] +} + +Table "test_on_null_num" { + "quantity" NUMBER(10) [default: 0] + "discount" NUMBER(5,2) [default: 0] +} + +Table "test_on_null_date" { + "start_date" DATE [default: `SYSDATE`] + "end_date" DATE [default: `SYSDATE + 7`] +} + +Table "test_default_not_null" { + "status" VARCHAR2(20) [not null, default: 'ACTIVE'] + "priority" NUMBER(2) [not null, default: 1] +} + +Table "test_on_null_not_null" { + "name" VARCHAR2(100) [not null, default: 'Unknown'] + "code" VARCHAR2(10) [not null, default: 'CODE'] +} + +Table "test_nn_enable" { + "level" NUMBER(2) [not null, default: 1] + "rating" NUMBER(2) [not null, default: 5] +} + +Table "test_nn_disable" { + "rank" NUMBER(2) [not null, default: 10] + "score" NUMBER(3) [not null, default: 0] +} + +Table "test_nn_validate" { + "amount" NUMBER(10,2) [not null, default: 0] + "tax" NUMBER(10,2) [not null, default: 0] +} + +Table "test_nn_novalidate" { + "discount" NUMBER(5,2) [not null, default: 0] + "margin" NUMBER(5,2) [not null, default: 0.1] +} + +Table "test_nn_disable_noval" { + "weight" NUMBER(8,2) [not null, default: 0] + "volume" NUMBER(8,2) [not null, default: 0] +} + +Table "test_nn_rely" { + "code" NUMBER(10) [not null, default: 100] + "ref_id" NUMBER(10) [not null, default: 200] +} + +Table "test_nn_norely" { + "sequence" NUMBER(10) [not null, default: 1] + "counter" NUMBER(10) [not null, default: 0] +} + +Table "test_nn_enable_rely" { + "batch_id" NUMBER(10) [not null, default: 500] + "lot_number" VARCHAR2(20) [not null, default: 'LOT'] +} + +Table "test_nn_disable_norely" { + "zone_id" NUMBER(5) [not null, default: 1] + "area_code" VARCHAR2(10) [not null, default: 'AREA'] +} + +Table "test_nn_defer_deferred" { + "order_id" NUMBER(10) [not null, default: 1000] + "line_item" NUMBER(5) [not null, default: 1] +} + +Table "test_nn_defer_immediate" { + "invoice_id" NUMBER(10) [not null, default: 2000] + "payment_status" VARCHAR2(20) [not null, default: 'PENDING'] +} + +Table "test_nn_not_defer" { + "ticket_id" NUMBER(10) [not null, default: 3000] + "issue_date" DATE [not null, default: `SYSDATE`] +} + +Table "test_datatypes_inline" { + "col_number" NUMBER(10,2) [default: 0] + "col_varchar2" VARCHAR2(100) [default: 'Text'] + "col_char" CHAR(10) [default: 'CHAR '] + "col_date" DATE [default: `SYSDATE`] + "col_timestamp" TIMESTAMP [default: `SYSTIMESTAMP`] + "col_clob" CLOB [default: 'CLOB Default'] + "col_raw" RAW(100) [default: `HEXTORAW('0000')`] + "col_float" FLOAT [default: 1.23] + "col_integer" INTEGER [default: 42] + "col_nvarchar2" NVARCHAR2(100) [default: `N'National Text'`] + "col_nchar" NCHAR(10) [default: `N'NCHAR '`] +} + +Table "test_complex_expr" { + "full_name" VARCHAR2(200) [default: `USER || '_USER'`] + "calc_field" NUMBER(10) [default: `100 * 2`] +} + +Table "test_long_default" { + "description" VARCHAR2(4000) [default: 'This is a very long default value for testing purposes, exceeding typical lengths to check parser limits and storage implications in Oracle SQL'] + "comments" VARCHAR2(4000) [default: 'Another long default string to test maximum lengths and handling in table creation statements'] +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_fk.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_fk.out.dbml new file mode 100644 index 000000000..fb5eb5838 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_fk.out.dbml @@ -0,0 +1,271 @@ +Table "departments" { + "dept_id" NUMBER(10) + "dept_name" VARCHAR2(100) + + Indexes { + dept_id [pk, name: "pk_dept_id"] + } +} + +Table "suppliers" { + "supp_id" NUMBER(10) + "supp_name" VARCHAR2(100) + + Indexes { + supp_id [pk, name: "pk_supp_id"] + } +} + +Table "customers" { + "cust_id" NUMBER(10) + "cust_name" VARCHAR2(100) + + Indexes { + cust_id [pk, name: "pk_cust_id"] + } +} + +Table "inventory" { + "item_id" NUMBER(10) + "item_name" VARCHAR2(200) + + Indexes { + item_id [pk, name: "pk_item_id"] + } +} + +Table "complex_test" { + "id" NUMBER(10) + "code" VARCHAR2(20) + + Indexes { + id [pk, name: "pk_complex_id"] + } +} + +Table "test_datatypes" { + "col_number" NUMBER(10,2) + "col_varchar2" VARCHAR2(100) + + Indexes { + col_number [pk, name: "pk_datatype_number"] + } +} + +Table "employees" { + "emp_id" NUMBER(10) + "emp_name" VARCHAR2(100) + "dept_id" NUMBER(10) + "manager_id" NUMBER(10) +} + +Table "orders" { + "order_id" NUMBER(10) + "customer_id" NUMBER(10) + "tracking_number" VARCHAR2(50) +} + +Table "shipments" { + "ship_id" NUMBER(10) + "customer_id" NUMBER(10) [not null] + "tracking_number" VARCHAR2(50) [pk] +} + +Table "complex_child" { + "child_id" NUMBER(10) + "parent_id" NUMBER(10) + "parent_code" VARCHAR2(20) +} + +Table "test_enable" { + "id" NUMBER(10) + "dept_id" NUMBER(10) + "supp_id" NUMBER(10) +} + +Table "test_disable" { + "id" NUMBER(10) + "dept_id" NUMBER(10) + "cust_id" NUMBER(10) +} + +Table "test_validate" { + "id" NUMBER(10) + "item_id" NUMBER(10) + "supp_id" NUMBER(10) +} + +Table "test_novalidate" { + "id" NUMBER(10) + "dept_id" NUMBER(10) + "cust_id" NUMBER(10) +} + +Table "test_disable_novalidate" { + "id" NUMBER(10) + "item_id" NUMBER(10) + "supp_id" NUMBER(10) +} + +Table "test_rely" { + "id" NUMBER(10) + "dept_id" NUMBER(10) + "cust_id" NUMBER(10) +} + +Table "test_norely" { + "id" NUMBER(10) + "item_id" NUMBER(10) + "supp_id" NUMBER(10) +} + +Table "test_enable_rely" { + "id" NUMBER(10) + "dept_id" NUMBER(10) + "cust_id" NUMBER(10) +} + +Table "test_disable_norely" { + "id" NUMBER(10) + "item_id" NUMBER(10) + "supp_id" NUMBER(10) +} + +Table "test_deferrable_deferred" { + "id" NUMBER(10) + "dept_id" NUMBER(10) + "cust_id" NUMBER(10) +} + +Table "test_deferrable_immediate" { + "id" NUMBER(10) + "item_id" NUMBER(10) + "supp_id" NUMBER(10) +} + +Table "test_not_deferrable" { + "id" NUMBER(10) + "dept_id" NUMBER(10) + "cust_id" NUMBER(10) +} + +Table "test_datatypes_fk" { + "id" NUMBER(10) + "col_number" NUMBER(10,2) + "col_varchar2" VARCHAR2(100) + "col_char" CHAR(10) + "col_date" DATE + "col_timestamp" TIMESTAMP + "col_clob" CLOB + "col_raw" RAW(100) + "col_float" FLOAT + "col_integer" INTEGER + "col_nvarchar2" NVARCHAR2(100) + "col_nchar" NCHAR(10) +} + +Table "employees_self" { + "emp_id" NUMBER(10) + "manager_id" NUMBER(10) + "dept_id" NUMBER(10) +} + +Table "order_details" { + "order_id" NUMBER(10) + "item_id" NUMBER(10) + "cust_id" NUMBER(10) +} + +Table "test_cascade" { + "id" NUMBER(10) + "dept_id" NUMBER(10) + "supp_id" NUMBER(10) +} + +Table "test_set_null" { + "id" NUMBER(10) + "dept_id" NUMBER(10) + "cust_id" NUMBER(10) +} + +Ref "fk_emp_dept":"departments"."dept_id" < "employees"."dept_id" + +Ref "fk_emp_manager":"employees"."emp_id" < "employees"."manager_id" + +Ref "fk_order_cust":"customers"."cust_id" < "orders"."customer_id" + +Ref "fk_order_track":"shipments"."tracking_number" < "orders"."tracking_number" + +Ref "fk_ship_cust":"customers"."cust_id" < "shipments"."customer_id" + +Ref "fk_child_complex":"complex_test"."id" < "complex_child"."parent_id" + +Ref "fk_child_code":"complex_test"."code" < "complex_child"."parent_code" + +Ref "fk_enable_dept":"departments"."dept_id" < "test_enable"."dept_id" + +Ref "fk_enable_supp":"suppliers"."supp_id" < "test_enable"."supp_id" + +Ref "fk_disable_dept":"departments"."dept_id" < "test_disable"."dept_id" + +Ref "fk_disable_cust":"customers"."cust_id" < "test_disable"."cust_id" + +Ref "fk_validate_item":"inventory"."item_id" < "test_validate"."item_id" + +Ref "fk_validate_supp":"suppliers"."supp_id" < "test_validate"."supp_id" + +Ref "fk_noval_dept":"departments"."dept_id" < "test_novalidate"."dept_id" + +Ref "fk_noval_cust":"customers"."cust_id" < "test_novalidate"."cust_id" + +Ref "fk_dis_noval_item":"inventory"."item_id" < "test_disable_novalidate"."item_id" + +Ref "fk_dis_noval_supp":"suppliers"."supp_id" < "test_disable_novalidate"."supp_id" + +Ref "fk_rely_dept":"departments"."dept_id" < "test_rely"."dept_id" + +Ref "fk_rely_cust":"customers"."cust_id" < "test_rely"."cust_id" + +Ref "fk_norely_item":"inventory"."item_id" < "test_norely"."item_id" + +Ref "fk_norely_supp":"suppliers"."supp_id" < "test_norely"."supp_id" + +Ref "fk_en_rely_dept":"departments"."dept_id" < "test_enable_rely"."dept_id" + +Ref "fk_en_rely_cust":"customers"."cust_id" < "test_enable_rely"."cust_id" + +Ref "fk_dis_norely_item":"inventory"."item_id" < "test_disable_norely"."item_id" + +Ref "fk_dis_norely_supp":"suppliers"."supp_id" < "test_disable_norely"."supp_id" + +Ref "fk_def_deferred_dept":"departments"."dept_id" < "test_deferrable_deferred"."dept_id" + +Ref "fk_def_deferred_cust":"customers"."cust_id" < "test_deferrable_deferred"."cust_id" + +Ref "fk_def_immed_item":"inventory"."item_id" < "test_deferrable_immediate"."item_id" + +Ref "fk_def_immed_supp":"suppliers"."supp_id" < "test_deferrable_immediate"."supp_id" + +Ref "fk_not_def_dept":"departments"."dept_id" < "test_not_deferrable"."dept_id" + +Ref "fk_not_def_cust":"customers"."cust_id" < "test_not_deferrable"."cust_id" + +Ref "fk_dt_number":"test_datatypes"."col_number" < "test_datatypes_fk"."col_number" + +Ref "fk_dt_varchar2":"test_datatypes"."col_varchar2" < "test_datatypes_fk"."col_varchar2" + +Ref "fk_self_emp":"employees_self"."emp_id" < "employees_self"."manager_id" + +Ref "fk_self_dept":"departments"."dept_id" < "employees_self"."dept_id" + +Ref "fk_detail_item":"inventory"."item_id" < "order_details"."item_id" + +Ref "fk_detail_cust":"customers"."cust_id" < "order_details"."cust_id" + +Ref "fk_cascade_dept":"departments"."dept_id" < "test_cascade"."dept_id" + +Ref "fk_cascade_supp":"suppliers"."supp_id" < "test_cascade"."supp_id" + +Ref "fk_set_null_dept":"departments"."dept_id" < "test_set_null"."dept_id" + +Ref "fk_set_null_cust":"customers"."cust_id" < "test_set_null"."cust_id" diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_increment.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_increment.out.dbml new file mode 100644 index 000000000..a8314bcd0 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_increment.out.dbml @@ -0,0 +1,76 @@ +Table "customers" { + "cust_id" NUMBER [increment] + "cust_name" VARCHAR2(100) [default: 'Unknown'] + "email" VARCHAR2(100) [default: 'noemail@example.com'] + "phone" VARCHAR2(20) [default: 'N/A'] +} + +Table "inventory" { + "item_id" NUMBER [increment] + "item_name" VARCHAR2(200) [default: 'Default Item'] + "price" NUMBER(10,2) [default: 0] + "category" VARCHAR2(50) [default: 'Misc'] +} + +Table "shipments" { + "ship_id" NUMBER [increment] + "customer_id" NUMBER(10) [default: 1] + "ship_date" DATE [default: `SYSDATE`] + "total_amount" NUMBER(12,2) [default: 0] +} + +Table "departments" { + "dept_id" NUMBER [increment] + "dept_name" VARCHAR2(100) [default: 'General'] + "manager_id" NUMBER(10) [default: 0] + "budget" NUMBER(12,2) [default: 10000] +} + +Table "suppliers" { + "supp_id" NUMBER [increment] + "supp_name" VARCHAR2(100) [default: 'Anonymous'] + "contact" VARCHAR2(100) [default: 'Contact'] + "credit_limit" NUMBER(10,2) [default: 5000] +} + +Table "test_datatypes" { + "col_number" NUMBER [increment] + "col_varchar2" VARCHAR2(100) [default: 'Default Text'] + "col_char" CHAR(10) [default: 'DEFAULT '] + "col_date" DATE [default: `SYSDATE`] +} + +Table "test_basic" { + "id" NUMBER [increment] + "value" NUMBER(10) [default: 100] +} + +Table "test_status" { + "status_id" NUMBER [increment] + "status" VARCHAR2(20) [default: 'OPEN'] +} + +Table "test_not_null" { + "record_id" NUMBER [not null, increment] + "description" VARCHAR2(200) [not null, default: 'No description'] +} + +Table "test_start_with" { + "order_id" NUMBER [increment] + "order_code" VARCHAR2(20) [default: 'ORD000'] +} + +Table "test_increment" { + "ticket_id" NUMBER [increment] + "ticket_type" VARCHAR2(20) [default: 'STANDARD'] +} + +Table "test_maxvalue" { + "ref_id" NUMBER [increment] + "ref_name" VARCHAR2(100) [default: 'Reference'] +} + +Table "test_minvalue" { + "batch_id" NUMBER [increment] + "batch_name" VARCHAR2(50) [default: 'Batch'] +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_not_null.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_not_null.out.dbml new file mode 100644 index 000000000..f7389e750 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_not_null.out.dbml @@ -0,0 +1,152 @@ +Table "customers" { + "cust_id" NUMBER(10) [not null] + "cust_name" VARCHAR2(100) [not null] + "email" VARCHAR2(100) [not null] + "phone" VARCHAR2(20) [not null] +} + +Table "inventory" { + "item_id" NUMBER(10) [not null] + "item_name" VARCHAR2(200) [not null] + "price" NUMBER(10,2) [not null] + "category" VARCHAR2(50) [not null] +} + +Table "shipments" { + "ship_id" NUMBER(10) [not null] + "customer_id" NUMBER(10) [not null] + "ship_date" DATE [not null] + "total_amount" NUMBER(12,2) [not null] +} + +Table "departments" { + "dept_id" NUMBER(10) [not null] + "dept_name" VARCHAR2(100) [not null] + "manager_id" NUMBER(10) [not null] + "budget" NUMBER(12,2) [not null] +} + +Table "suppliers" { + "supp_id" NUMBER(10) [not null] + "supp_name" VARCHAR2(100) [not null] + "contact" VARCHAR2(100) [not null] + "credit_limit" NUMBER(10,2) [not null] +} + +Table "test_datatypes" { + "col_number" NUMBER(10,2) [not null] + "col_varchar2" VARCHAR2(100) [not null] + "col_char" CHAR(10) [not null] + "col_date" DATE [not null] + "col_timestamp" TIMESTAMP [not null] + "col_clob" CLOB [not null] + "col_raw" RAW(100) [not null] + "col_float" FLOAT [not null] + "col_integer" INTEGER [not null] + "col_nvarchar2" NVARCHAR2(100) [not null] + "col_nchar" NCHAR(10) [not null] +} + +Table "test_basic" { + "id" NUMBER(10) [not null] + "value" NUMBER(10) [not null] +} + +Table "test_status" { + "status" VARCHAR2(20) [not null] + "code" VARCHAR2(10) [not null] +} + +Table "test_named" { + "record_id" NUMBER(10) [not null] + "description" VARCHAR2(200) [not null] +} + +Table "test_dates" { + "event_date" DATE [not null] + "end_date" DATE [not null] +} + +Table "test_enable" { + "level" NUMBER(2) [not null] + "rating" NUMBER(2) [not null] +} + +Table "test_disable" { + "priority" NUMBER(2) [not null] + "rank" NUMBER(2) [not null] +} + +Table "test_validate" { + "amount" NUMBER(10,2) [not null] + "tax" NUMBER(10,2) [not null] +} + +Table "test_novalidate" { + "discount" NUMBER(10,2) [not null] + "margin" NUMBER(10,2) [not null] +} + +Table "test_disable_novalidate" { + "weight" NUMBER(8,2) [not null] + "volume" NUMBER(8,2) [not null] +} + +Table "test_rely" { + "code" NUMBER(10) [not null] + "ref_id" NUMBER(10) [not null] +} + +Table "test_norely" { + "sequence" NUMBER(10) [not null] + "counter" NUMBER(10) [not null] +} + +Table "test_enable_rely" { + "batch_id" NUMBER(10) [not null] + "lot_number" VARCHAR2(20) [not null] +} + +Table "test_disable_norely" { + "zone_id" NUMBER(5) [not null] + "area_code" VARCHAR2(10) [not null] +} + +Table "test_deferrable_deferred" { + "order_id" NUMBER(10) [not null] + "line_item" NUMBER(5) [not null] +} + +Table "test_deferrable_immediate" { + "invoice_id" NUMBER(10) [not null] + "payment_status" VARCHAR2(20) [not null] +} + +Table "test_not_deferrable" { + "ticket_id" NUMBER(10) [not null] + "issue_date" DATE [not null] +} + +Table "test_datatypes_inline" { + "col_number" NUMBER(10,2) [not null] + "col_varchar2" VARCHAR2(100) [not null] + "col_char" CHAR(10) [not null] + "col_date" DATE [not null] + "col_timestamp" TIMESTAMP [not null] + "col_clob" CLOB [not null] + "col_raw" RAW(100) [not null] + "col_float" FLOAT [not null] + "col_integer" INTEGER [not null] + "col_nvarchar2" NVARCHAR2(100) [not null] + "col_nchar" NCHAR(10) [not null] +} + +Table "test_long_name" { + "identifier" NUMBER(10) [not null] + "record_code" VARCHAR2(20) [not null] +} + +Table "test_complex" { + "score" NUMBER(3) [not null] + "rating" VARCHAR2(20) [not null] +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_pk.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_pk.out.dbml new file mode 100644 index 000000000..d13077dac --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_pk.out.dbml @@ -0,0 +1,152 @@ +Table "customers" { + "cust_id" NUMBER(10) [pk] + "cust_name" VARCHAR2(100) + "email" VARCHAR2(100) + "phone" VARCHAR2(20) +} + +Table "inventory" { + "item_id" NUMBER(10) [pk] + "item_name" VARCHAR2(200) + "price" NUMBER(10,2) + "category" VARCHAR2(50) +} + +Table "shipments" { + "ship_id" NUMBER(10) [pk] + "customer_id" NUMBER(10) + "ship_date" DATE + "total_amount" NUMBER(12,2) +} + +Table "departments" { + "dept_id" NUMBER(10) [pk] + "dept_name" VARCHAR2(100) + "manager_id" NUMBER(10) + "budget" NUMBER(12,2) +} + +Table "suppliers" { + "supp_id" NUMBER(10) [pk] + "supp_name" VARCHAR2(100) + "contact" VARCHAR2(100) + "credit_limit" NUMBER(10,2) +} + +Table "test_datatypes" { + "col_number" NUMBER(10,2) [pk] + "col_varchar2" VARCHAR2(100) + "col_char" CHAR(10) + "col_date" DATE + "col_timestamp" TIMESTAMP + "col_clob" CLOB + "col_raw" RAW(100) + "col_float" FLOAT + "col_integer" INTEGER + "col_nvarchar2" NVARCHAR2(100) + "col_nchar" NCHAR(10) +} + +Table "test_basic" { + "id" NUMBER(10) [pk] + "value" NUMBER(10) +} + +Table "test_named" { + "code" NUMBER(10) [pk] + "description" VARCHAR2(200) +} + +Table "test_status" { + "status_code" VARCHAR2(20) [pk] + "status_desc" VARCHAR2(100) +} + +Table "test_dates" { + "event_date" DATE [pk] + "event_desc" VARCHAR2(200) +} + +Table "test_enable" { + "level" NUMBER(2) [pk] + "level_desc" VARCHAR2(50) +} + +Table "test_disable" { + "priority" NUMBER(2) [pk] + "priority_desc" VARCHAR2(50) +} + +Table "test_validate" { + "amount" NUMBER(10,2) [pk] + "amount_desc" VARCHAR2(100) +} + +Table "test_novalidate" { + "discount" NUMBER(10,2) [pk] + "discount_desc" VARCHAR2(100) +} + +Table "test_disable_novalidate" { + "weight" NUMBER(8,2) [pk] + "weight_desc" VARCHAR2(100) +} + +Table "test_rely" { + "code" NUMBER(10) [pk] + "code_desc" VARCHAR2(50) +} + +Table "test_norely" { + "sequence" NUMBER(10) [pk] + "sequence_desc" VARCHAR2(50) +} + +Table "test_enable_rely" { + "batch_id" NUMBER(10) [pk] + "batch_desc" VARCHAR2(50) +} + +Table "test_disable_norely" { + "zone_id" NUMBER(5) [pk] + "zone_desc" VARCHAR2(50) +} + +Table "test_deferrable_deferred" { + "order_id" NUMBER(10) [pk] + "order_desc" VARCHAR2(100) +} + +Table "test_deferrable_immediate" { + "invoice_id" NUMBER(10) [pk] + "invoice_desc" VARCHAR2(100) +} + +Table "test_not_deferrable" { + "ticket_id" NUMBER(10) [pk] + "ticket_desc" VARCHAR2(100) +} + +Table "test_datatypes_inline" { + "col_number" NUMBER(10,2) [pk] + "col_varchar2" VARCHAR2(100) + "col_char" CHAR(10) [pk] + "col_date" DATE [pk] + "col_timestamp" TIMESTAMP [pk] + "col_clob" CLOB [pk] + "col_raw" RAW(100) [pk] + "col_float" FLOAT [pk] + "col_integer" INTEGER [pk] + "col_nvarchar2" NVARCHAR2(100) [pk] + "col_nchar" NCHAR(10) [pk] +} + +Table "test_long_name" { + "identifier" NUMBER(10) [pk] + "record_code" VARCHAR2(20) +} + +Table "test_complex" { + "score" NUMBER(3) [pk] + "rating" VARCHAR2(20) [pk] +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_unique.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_unique.out.dbml new file mode 100644 index 000000000..c58784876 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/column_def_unique.out.dbml @@ -0,0 +1,152 @@ +Table "customers" { + "cust_id" NUMBER(10) [unique] + "cust_name" VARCHAR2(100) [unique] + "email" VARCHAR2(100) [unique] + "phone" VARCHAR2(20) [unique] +} + +Table "inventory" { + "item_id" NUMBER(10) [unique] + "item_name" VARCHAR2(200) [unique] + "price" NUMBER(10,2) + "sku" VARCHAR2(50) [unique] +} + +Table "shipments" { + "ship_id" NUMBER(10) [unique] + "customer_id" NUMBER(10) + "ship_date" DATE [unique] + "tracking_number" VARCHAR2(50) [unique] +} + +Table "departments" { + "dept_id" NUMBER(10) [unique] + "dept_name" VARCHAR2(100) [unique] + "manager_id" NUMBER(10) [unique] + "budget" NUMBER(12,2) +} + +Table "suppliers" { + "supp_id" NUMBER(10) [unique] + "supp_name" VARCHAR2(100) [unique] + "contact" VARCHAR2(100) [unique] + "ssn" VARCHAR2(11) [unique] +} + +Table "test_datatypes" { + "col_number" NUMBER(10,2) [unique] + "col_varchar2" VARCHAR2(100) [unique] + "col_char" CHAR(10) [unique] + "col_date" DATE [unique] + "col_timestamp" TIMESTAMP [unique] + "col_clob" CLOB [unique] + "col_raw" RAW(100) [unique] + "col_float" FLOAT [unique] + "col_integer" INTEGER [unique] + "col_nvarchar2" NVARCHAR2(100) [unique] + "col_nchar" NCHAR(10) [unique] +} + +Table "test_basic" { + "id" NUMBER(10) [unique] + "value" NUMBER(10) [unique] +} + +Table "test_named" { + "code" VARCHAR2(20) [unique] + "ref_id" NUMBER(10) [unique] +} + +Table "test_status" { + "status" VARCHAR2(20) [unique] + "status_code" VARCHAR2(10) [unique] +} + +Table "test_dates" { + "event_date" DATE [unique] + "end_date" DATE [unique] +} + +Table "test_enable" { + "level" NUMBER(2) [unique] + "rating" NUMBER(2) [unique] +} + +Table "test_disable" { + "priority" NUMBER(2) [unique] + "rank" NUMBER(2) [unique] +} + +Table "test_validate" { + "amount" NUMBER(10,2) [unique] + "tax" NUMBER(10,2) [unique] +} + +Table "test_novalidate" { + "discount" NUMBER(10,2) [unique] + "margin" NUMBER(10,2) [unique] +} + +Table "test_disable_novalidate" { + "weight" NUMBER(8,2) [unique] + "volume" NUMBER(8,2) [unique] +} + +Table "test_rely" { + "code" NUMBER(10) [unique] + "ref_id" NUMBER(10) [unique] +} + +Table "test_norely" { + "sequence" NUMBER(10) [unique] + "counter" NUMBER(10) [unique] +} + +Table "test_enable_rely" { + "batch_id" NUMBER(10) [unique] + "lot_number" VARCHAR2(20) [unique] +} + +Table "test_disable_norely" { + "zone_id" NUMBER(5) [unique] + "area_code" VARCHAR2(10) [unique] +} + +Table "test_deferrable_deferred" { + "order_id" NUMBER(10) [unique] + "line_item" NUMBER(5) [unique] +} + +Table "test_deferrable_immediate" { + "invoice_id" NUMBER(10) [unique] + "payment_status" VARCHAR2(20) [unique] +} + +Table "test_not_deferrable" { + "ticket_id" NUMBER(10) [unique] + "issue_date" DATE [unique] +} + +Table "test_datatypes_inline" { + "col_number" NUMBER(10,2) [unique] + "col_varchar2" VARCHAR2(100) [unique] + "col_char" CHAR(10) [unique] + "col_date" DATE [unique] + "col_timestamp" TIMESTAMP [unique] + "col_clob" CLOB [unique] + "col_raw" RAW(100) [unique] + "col_float" FLOAT [unique] + "col_integer" INTEGER [unique] + "col_nvarchar2" NVARCHAR2(100) [unique] + "col_nchar" NCHAR(10) [unique] +} + +Table "test_long_name" { + "identifier" NUMBER(10) [unique] + "record_code" VARCHAR2(20) [unique] +} + +Table "test_complex" { + "score" NUMBER(3) [unique] + "rating" VARCHAR2(20) [unique] +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/comment.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/comment.out.dbml new file mode 100644 index 000000000..9a0596f2d --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/comment.out.dbml @@ -0,0 +1,4 @@ +Table "customers" { + "name" VARCHAR(20) [note: 'The name of the customer.'] + Note: 'This table stores customer data.' +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/create_index.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/create_index.out.dbml new file mode 100644 index 000000000..2cc169e1c --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/create_index.out.dbml @@ -0,0 +1,86 @@ +Table "customers" { + "cust_id" NUMBER(10) + "cust_name" VARCHAR2(100) + "email" VARCHAR2(100) + "phone" VARCHAR2(20) + "status" VARCHAR2(20) + "reg_date" DATE + "region" VARCHAR2(50) + "credit_limit" NUMBER(10,2) + + Indexes { + cust_id [name: "idx_cust_id"] + email [unique, name: "idx_cust_email"] + status [type: bitmap, name: "idx_cust_status"] + `UPPER(cust_name)` [name: "idx_cust_name_upper"] + `LOWER(email)` [unique, name: "idx_cust_email_lower"] + cust_id [name: "idx_very_long_index_name_for_testing_parser_limits"] + cust_id [type: bitmap, name: "idx_cust_id_bitmap"] + `TO_CHAR(reg_date, 'YYYYMM') || cust_name` [name: "idx_cust_complex"] + } +} + +Table "inventory" { + "item_id" NUMBER(10) + "item_name" VARCHAR2(200) + "price" NUMBER(10,2) + "category" VARCHAR2(50) + "sku" VARCHAR2(50) + "stock_level" NUMBER(10) + "warehouse_id" NUMBER(10) + "supplier_id" NUMBER(10) + + Indexes { + (item_name, price) [name: "idx_inv_item_price"] + (category, stock_level) [type: bitmap, name: "idx_inv_category_stock"] + (`UPPER(item_name)`, `price * 1.1`) [name: "idx_inv_name_price"] + `ORA_HASH(item_name)` [name: "idx_inv_hash_like"] + } +} + +Table "shipments" { + "ship_id" NUMBER(10) + "customer_id" NUMBER(10) + "ship_date" DATE + "total_amount" NUMBER(12,2) + "tracking_number" VARCHAR2(50) + "carrier" VARCHAR2(100) + "priority" NUMBER(2) + + Indexes { + (customer_id, ship_date) [unique, name: "idx_ship_cust_date"] + customer_id [name: "idx_ship_nullable"] + } +} + +Table "departments" { + "dept_id" NUMBER(10) + "dept_name" VARCHAR2(100) + "manager_id" NUMBER(10) + "location" VARCHAR2(50) +} + +Table "suppliers" { + "supp_id" NUMBER(10) + "supp_name" VARCHAR2(100) + "contact" VARCHAR2(100) + "city" VARCHAR2(50) +} + +Table "test_datatypes" { + "col_number" NUMBER(10,2) + "col_varchar2" VARCHAR2(100) + "col_char" CHAR(10) + "col_date" DATE + "col_timestamp" TIMESTAMP + "col_clob" CLOB + "col_raw" RAW(100) + "col_float" FLOAT + "col_integer" INTEGER + "col_nvarchar2" NVARCHAR2(100) + "col_nchar" NCHAR(10) + + Indexes { + (col_number, col_varchar2, col_date) [name: "idx_dt_mixed"] + } +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/create_table.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/create_table.out.dbml new file mode 100644 index 000000000..4a44240d5 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/create_table.out.dbml @@ -0,0 +1,217 @@ +Table "customers" { + "cust_id" NUMBER(10) + "cust_name" VARCHAR2(100) +} + +Table "INVENTORY" { + "item_id" NUMBER(10) + "item_name" VARCHAR2(200) +} + +Table "shipments" { + "ship_id" NUMBER(10) + "customer_id" NUMBER(10) +} + +Table "Customer Data" { + "data_id" NUMBER(10) + "data_value" VARCHAR2(100) +} + +Table "order-details$test" { + "order_id" NUMBER(10) + "detail_desc" VARCHAR2(200) +} + +Table "sales#report@2023" { + "report_id" NUMBER(10) + "report_date" DATE +} + +Table "客户信息" { + "client_id" NUMBER(10) + "client_name" NVARCHAR2(100) +} + +Table "very_long_table_name_for_testing_parser_limits_1234567890" { + "id" NUMBER(10) + "description" VARCHAR2(4000) +} + +Table "Sales Report Data 2023" { + "sales_id" NUMBER(10) + "sales_amount" NUMBER(12,2) +} + +Table "test@#$%^&*_table!" { + "test_id" NUMBER(10) + "test_value" VARCHAR2(100) +} + +Table "project_tasks#1" { + "task_id" NUMBER(10) [pk] + "task_name" VARCHAR2(100) +} + +Table "order details" { + "order_id" NUMBER(10) + "cust_id" NUMBER(10) + "order_date" DATE +} + +Table "供应商数据" { + "supp_id" NUMBER(10) + "supp_name" VARCHAR2(100) [default: 'Anonymous'] +} + +Table "Sales Data Archive" { + "archive_id" NUMBER(10) + "archive_date" DATE +} + +Table "orders-2023-range" { + "order_id" NUMBER(10) + "order_date" DATE + "total_amount" NUMBER(12,2) +} + +Table "inventory_hash@test" { + "item_id" NUMBER(10) + "item_name" VARCHAR2(200) +} + +Table "Temp Customer Data" { + "temp_id" NUMBER(10) + "temp_name" VARCHAR2(100) +} + +Table "external_logs#2023" { + "log_id" NUMBER(10) + "log_message" VARCHAR2(4000) +} + +Table "Project Tasks#Validated" { + "task_id" NUMBER(10) [pk] + "task_name" VARCHAR2(100) [not null] +} + +Table "Tasks#NonValidated" { + "task_id" NUMBER(10) [pk] + "priority" NUMBER(2) [not null] +} + +Table "Suppliers_Norely@Data" { + "supp_id" NUMBER(10) [pk] + "supp_contact" VARCHAR2(100) [not null] +} + +Table "Contracts@Defer" { + "contract_id" NUMBER(10) [pk] + "contract_name" VARCHAR2(100) [not null] +} + +Table "Tickets#NonDefer" { + "ticket_id" NUMBER(10) [pk] + "ticket_type" VARCHAR2(20) [not null] +} + +Table "Test Data Types#2023" { + "col_number" NUMBER(10,2) [not null] + "col_varchar2" VARCHAR2(100) [unique] + "col_char" CHAR(10) [default: 'DEFAULT '] + "col_date" DATE [pk] + "col_timestamp" TIMESTAMP + "col_clob" CLOB + "col_raw" RAW(100) + "col_float" FLOAT + "col_integer" INTEGER + "col_nvarchar2" NVARCHAR2(100) + "col_nchar" NCHAR(10) +} + +Table "very_long_table_name_1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678" { + "id" NUMBER(10) + "value" VARCHAR2(100) +} + +Table "TABLE" { + "table_id" NUMBER(10) + "table_name" VARCHAR2(100) +} + +Table "Sales Report#Data 2023@Prod" { + "sales_id" NUMBER(10) + "sales_amount" NUMBER(12,2) +} + +Table "Temp#Customer_Records" { + "temp_id" NUMBER(10) [pk] + "temp_name" VARCHAR2(100) [not null] +} + +Table "Order Details#2023" { + "order_id" NUMBER(10) + "item_id" NUMBER(10) + "quantity" NUMBER(10) + + Indexes { + (order_id, item_id) [pk, name: "pk_order_details"] + } +} + +Ref "fk_order_cust":"customers"."cust_id" < "order details"."cust_id" + +Table "hr"."employees" { + "emp_id" NUMBER(10) + "emp_name" VARCHAR2(100) +} + +Table "hr"."Employee Records" { + "record_id" NUMBER(10) + "record_status" VARCHAR2(20) +} + +Table "hr"."Employee_Contracts_2023" { + "contract_id" NUMBER(10) [not null] + "emp_name" VARCHAR2(100) [not null] +} + +Table "hr"."Employee_IOT@Data" { + "emp_id" NUMBER(10) [pk] + "emp_name" VARCHAR2(100) +} + +Table "sales"."departments" { + "dept_id" NUMBER(10) + "dept_name" VARCHAR2(100) +} + +Table "sales"."Customer_Regions#List" { + "cust_id" NUMBER(10) + "region" VARCHAR2(50) +} + +Table "sales"."Orders_Rely#2023" { + "order_id" NUMBER(10) [pk] + "order_amount" NUMBER(12,2) [not null] +} + +Table "finance"."budget-report#2023" { + "budget_id" NUMBER(10) + "amount" NUMBER(12,2) +} + +Table "global"."製品データ" { + "product_id" NUMBER(10) + "product_name" NVARCHAR2(200) +} + +Table "hr data"."Employee Data#Report$2023" { + "report_id" NUMBER(10) + "report_value" VARCHAR2(200) +} + +Table "グローバル"."製品情報@データ" { + "prod_id" NUMBER(10) + "prod_name" NVARCHAR2(200) +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/data_types.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/data_types.out.dbml new file mode 100644 index 000000000..d99d0a098 --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/data_types.out.dbml @@ -0,0 +1,26 @@ +Table "data_types" { + "c1_char" CHAR(10) + "c2_varchar2" VARCHAR2(50) + "c3_varchar" VARCHAR(50) + "c4_nchar" NCHAR(20) + "c5_nvarchar2" NVARCHAR2(100) + "c6_number" "NUMBER(10, 2)" + "c7_long" LONG + "c8_date" DATE + "c9_binary_float" BINARY_FLOAT + "c10_binary_double" BINARY_DOUBLE + "c11_timestamp" TIMESTAMP(6) + "c12_timestamp_with_tz" "TIMESTAMP(6) WITH TIME ZONE" + "c13_timestamp_with_local_tz" "TIMESTAMP(6) WITH LOCAL TIME ZONE" + "c14_interval_ytm" "INTERVAL YEAR(2) TO MONTH" + "c15_interval_dts" "INTERVAL DAY(2) TO SECOND(6)" + "c16_raw" RAW(1000) + "c17_long_raw" "LONG RAW" + "c18_rowid" ROWID + "c19_urowid" UROWID(4000) + "c20_clob" CLOB + "c21_nclob" NCLOB + "c22_blob" BLOB + "c23_bfile" BFILE + "c24_xmltype" XMLTYPE +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_checks.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_checks.out.dbml new file mode 100644 index 000000000..da8946bcd --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_checks.out.dbml @@ -0,0 +1,143 @@ +Table "customers" { + "cust_id" NUMBER(10) + "cust_name" VARCHAR2(100) + "email" VARCHAR2(100) + "phone" VARCHAR2(20) + + Checks { + `cust_id > 0` + } +} + +Table "inventory" { + "item_id" NUMBER(10) + "item_name" VARCHAR2(200) + "price" NUMBER(10,2) + "category" VARCHAR2(50) + + Checks { + `price >= 0` [name: 'chk_price_pos'] + } +} + +Table "shipments" { + "ship_id" NUMBER(10) + "customer_id" NUMBER(10) + "ship_date" DATE + "total_amount" NUMBER(12,2) + + Checks { + `total_amount >= 0 AND ship_date IS NOT NULL` [name: 'chk_amount_date'] + } +} + +Table "departments" { + "dept_id" NUMBER(10) + "dept_name" VARCHAR2(100) + "manager_id" NUMBER(10) + "budget" NUMBER(12,2) + + Checks { + `budget >= 0` + } +} + +Table "suppliers" { + "supp_id" NUMBER(10) + "supp_name" VARCHAR2(100) + "contact" VARCHAR2(100) + "credit_limit" NUMBER(10,2) + + Checks { + `credit_limit >= 0` [name: 'chk_credit_limit'] + } +} + +Table "employees" { + "emp_id" NUMBER(10) + "emp_name" VARCHAR2(100) + "email" VARCHAR2(100) + "status" VARCHAR2(20) + + Checks { + `status IN ('ACTIVE', 'INACTIVE', 'SUSPENDED')` [name: 'chk_status_values'] + } +} + +Table "orders" { + "order_id" NUMBER(10) + "customer_id" NUMBER(10) + "order_date" DATE + "total_amount" NUMBER(12,2) + "tax_amount" NUMBER(10,2) + + Checks { + `total_amount >= tax_amount AND tax_amount >= 0` [name: 'chk_order_amounts'] + } +} + +Table "contracts" { + "contract_id" NUMBER(10) + "start_date" DATE + "end_date" DATE + "amount" NUMBER(12,2) + + Checks { + `end_date > start_date AND start_date >= SYSDATE` [name: 'chk_date_range'] + } +} + +Table "users" { + "user_id" NUMBER(10) + "username" VARCHAR2(50) + "email" VARCHAR2(100) + "ssn" VARCHAR2(11) + + Checks { + `ssn LIKE '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]'` [name: 'chk_ssn_format'] + } +} + +Table "sales" { + "sale_id" NUMBER(10) + "sale_date" DATE + "amount" NUMBER(12,2) + "discount" NUMBER(10,2) + + Checks { + `amount >= discount AND discount >= 0 AND sale_date >= SYSDATE` [name: 'chk_sale_complex'] + } +} + +Table "accounts" { + "account_id" NUMBER(10) + "account_number" VARCHAR2(20) + "balance" NUMBER(12,2) + "account_type" VARCHAR2(20) + + Checks { + `REGEXP_LIKE(account_number, '^[0-9]{10}$')` [name: 'chk_acc_number'] + } +} + +Table "reports" { + "report_id" NUMBER(10) + "report_name" VARCHAR2(100) + "report_date" DATE + "status" VARCHAR2(20) + + Checks { + `status IN ('DRAFT', 'FINAL', 'ARCHIVED')` [name: 'chk_very_long_constraint_name_for_testing_parser_limits'] + } +} + +Table "employees_sub" { + "emp_id" NUMBER(10) + "dept_id" NUMBER(10) + "emp_name" VARCHAR2(100) + "salary" NUMBER(10,2) + + Checks { + `dept_id IN (SELECT dept_id FROM departments)` [name: 'chk_dept_exists'] + } +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_fk.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_fk.out.dbml new file mode 100644 index 000000000..ef5b090fe --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_fk.out.dbml @@ -0,0 +1,125 @@ +Table "departments" { + "dept_id" NUMBER(10) [pk] +} + +Table "customers" { + "cust_id" NUMBER(10) [pk] +} + +Table "employees" { + "emp_id" NUMBER(10) + "emp_name" VARCHAR2(100) + "dept_id" NUMBER(10) +} + +Table "orders" { + "order_id" NUMBER(10) + "customer_id" NUMBER(10) + "order_date" DATE +} + +Table "shipments" { + "ship_id" NUMBER(10) + "customer_id" NUMBER(10) [not null] + "ship_date" DATE +} + +Table "complex_parent" { + "id" NUMBER(10) + "code" VARCHAR2(20) + + Indexes { + (id, code) [pk] + } +} + +Table "inventory" { + "item_id" NUMBER(10) [pk] +} + +Table "complex_child" { + "child_id" NUMBER(10) + "parent_id" NUMBER(10) + "parent_code" VARCHAR2(20) +} + +Table "order_details" { + "detail_id" NUMBER(10) + "order_id" NUMBER(10) + "item_id" NUMBER(10) +} + +Table "assignments" { + "assignment_id" NUMBER(10) + "emp_id" NUMBER(10) + "dept_id" NUMBER(10) +} + +Table "project_members" { + "member_id" NUMBER(10) + "emp_id" NUMBER(10) + "dept_id" NUMBER(10) +} + +Table "test_datatypes" { + "col_number" NUMBER(10,2) [unique] + "col_varchar2" VARCHAR2(100) [unique] +} + +Table "test_datatypes_fk" { + "id" NUMBER(10) + "col_number" NUMBER(10,2) + "col_varchar2" VARCHAR2(100) + "col_char" CHAR(10) + "col_date" DATE +} + +Table "employees_self" { + "emp_id" NUMBER(10) [pk] + "manager_id" NUMBER(10) + "emp_name" VARCHAR2(100) +} + +Table "order_history" { + "history_id" NUMBER(10) + "order_id" NUMBER(10) + "history_date" DATE +} + +Table "shipment_details" { + "detail_id" NUMBER(10) + "ship_id" NUMBER(10) + "item_id" NUMBER(10) +} + +Table "project_assignments" { + "assign_id" NUMBER(10) + "emp_id" NUMBER(10) + "project_id" NUMBER(10) +} + +Ref:"departments"."dept_id" < "employees"."dept_id" + +Ref "fk_order_cust":"customers"."cust_id" < "orders"."customer_id" + +Ref "fk_ship_cust":"customers"."cust_id" < "shipments"."customer_id" + +Ref "fk_child_complex":"complex_parent".("id", "code") < "complex_child".("parent_id", "parent_code") + +Ref "fk_detail_item":"inventory"."item_id" < "order_details"."item_id" + +Ref "fk_assign_dept":"departments"."dept_id" < "assignments"."dept_id" + +Ref "fk_member_dept":"departments"."dept_id" < "project_members"."dept_id" + +Ref "fk_dt_number":"test_datatypes"."col_number" < "test_datatypes_fk"."col_number" + +Ref "fk_dt_varchar2":"test_datatypes"."col_varchar2" < "test_datatypes_fk"."col_varchar2" + +Ref "fk_self_manager":"employees_self"."emp_id" < "employees_self"."manager_id" + +Ref "fk_very_long_constraint_name_for_testing_parser_limits":"orders"."order_id" < "order_history"."order_id" + +Ref "fk_ship_detail":"shipments"."ship_id" < "shipment_details"."ship_id" + +Ref "fk_assign_emp":"employees"."emp_id" < "project_assignments"."emp_id" diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_pk.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_pk.out.dbml new file mode 100644 index 000000000..42afe6fed --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_pk.out.dbml @@ -0,0 +1,69 @@ +Table "test_datatypes" { + "col_number" NUMBER(10,2) + "col_varchar2" VARCHAR2(100) + "col_char" CHAR(10) + "col_date" DATE + "col_timestamp" TIMESTAMP + "col_clob" CLOB + "col_raw" RAW(100) + "col_float" FLOAT + "col_integer" INTEGER + "col_nvarchar2" NVARCHAR2(100) + "col_nchar" NCHAR(10) + + Indexes { + col_number [pk, name: "pk_number"] + col_varchar2 [pk, name: "pk_varchar2"] + col_char [pk, name: "pk_char"] + col_date [pk, name: "pk_date"] + col_timestamp [pk, name: "pk_timestamp"] + col_clob [pk, name: "pk_clob"] + col_raw [pk, name: "pk_raw"] + col_float [pk, name: "pk_float"] + col_integer [pk, name: "pk_integer"] + col_nvarchar2 [pk, name: "pk_nvarchar2"] + col_nchar [pk, name: "pk_nchar"] + } +} + +Table "order_details" { + "order_id" NUMBER(10) + "item_id" NUMBER(10) + "quantity" NUMBER(10) + "order_date" DATE + + Indexes { + (order_id, item_id) [pk, name: "pk_order_details"] + } +} + +Table "reports" { + "report_id" NUMBER(10) + "report_name" VARCHAR2(100) + "report_date" DATE + "status" VARCHAR2(20) + + Indexes { + report_id [pk, name: "pk_very_long_constraint_name_for_testing_parser_limits"] + } +} + +Table "sales" { + "sale_id" NUMBER(10) + "sale_date" DATE + "amount" NUMBER(12,2) + + Indexes { + sale_id [pk, name: "pk_sale"] + } +} + +Table "accounts" { + "account_id" NUMBER(10) + "account_number" VARCHAR2(20) + "balance" NUMBER(12,2) + + Indexes { + account_id [pk, name: "pk_account"] + } +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_unique.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_unique.out.dbml new file mode 100644 index 000000000..7b449849f --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/in_table_unique.out.dbml @@ -0,0 +1,69 @@ +Table "test_datatypes" { + "col_number" NUMBER(10,2) + "col_varchar2" VARCHAR2(100) + "col_char" CHAR(10) + "col_date" DATE + "col_timestamp" TIMESTAMP + "col_clob" CLOB + "col_raw" RAW(100) + "col_float" FLOAT + "col_integer" INTEGER + "col_nvarchar2" NVARCHAR2(100) + "col_nchar" NCHAR(10) + + Indexes { + col_number [unique, name: "uk_number"] + col_varchar2 [unique, name: "uk_varchar2"] + col_char [unique, name: "uk_char"] + col_date [unique, name: "uk_date"] + col_timestamp [unique, name: "uk_timestamp"] + col_clob [unique, name: "uk_clob"] + col_raw [unique, name: "uk_raw"] + col_float [unique, name: "uk_float"] + col_integer [unique, name: "uk_integer"] + col_nvarchar2 [unique, name: "uk_nvarchar2"] + col_nchar [unique, name: "uk_nchar"] + } +} + +Table "order_details" { + "order_id" NUMBER(10) + "item_id" NUMBER(10) + "quantity" NUMBER(10) + "order_ref" VARCHAR2(20) + + Indexes { + (order_id, item_id) [unique, name: "uk_order_ref"] + } +} + +Table "reports" { + "report_id" NUMBER(10) + "report_name" VARCHAR2(100) + "report_date" DATE + "report_code" VARCHAR2(20) + + Indexes { + report_code [unique, name: "uk_very_long_constraint_name_for_testing_parser_limits"] + } +} + +Table "sales" { + "sale_id" NUMBER(10) + "sale_date" DATE + "sale_code" VARCHAR2(20) + + Indexes { + sale_code [unique, name: "uk_sale_code"] + } +} + +Table "accounts" { + "account_id" NUMBER(10) + "account_number" VARCHAR2(20) + "balance" NUMBER(12,2) + + Indexes { + account_number [unique, name: "uk_account_number"] + } +} diff --git a/packages/dbml-core/__tests__/importer/oracle_importer/output/insert_general.out.dbml b/packages/dbml-core/__tests__/importer/oracle_importer/output/insert_general.out.dbml new file mode 100644 index 000000000..e69c1ea1a --- /dev/null +++ b/packages/dbml-core/__tests__/importer/oracle_importer/output/insert_general.out.dbml @@ -0,0 +1,16 @@ +Table "database_products" { + "product_id" NUMBER(10) [pk] + "product_name" VARCHAR2(100) [not null] + "vendor_name" VARCHAR2(100) + "release_year" NUMBER(4) + "is_open_source" NUMBER(1) [default: 0] + "license_cost" "NUMBER(10, 2)" + "market_share" "NUMBER(5, 2)" + "latest_version" VARCHAR2(20) + "description" CLOB + "created_at" TIMESTAMP [default: `SYSTIMESTAMP`] + "updated_at" TIMESTAMP [default: `SYSTIMESTAMP`] + "is_active" NUMBER(1) [default: 1] + "max_connections" NUMBER(10) + "status" CHAR(1) [default: 'A'] +} diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_check.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_check.in.sql new file mode 100644 index 000000000..d1bd30542 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_check.in.sql @@ -0,0 +1,207 @@ +-- Oracle SQL ALTER TABLE ADD CHECK Constraint Test Cases +-- Test setup: Create base tables +CREATE TABLE employees ( + emp_id NUMBER(10), + emp_name VARCHAR2(100), + salary NUMBER(10,2), + commission_pct NUMBER(3,2), + hire_date DATE, + email VARCHAR2(100), + department_id NUMBER(5), + status VARCHAR2(20), + age NUMBER(3), + performance_score NUMBER(3,1) +); + +CREATE TABLE products ( + product_id NUMBER(10), + product_name VARCHAR2(200), + price NUMBER(10,2), + discount_price NUMBER(10,2), + stock_quantity NUMBER(8), + category VARCHAR2(50), + weight NUMBER(8,2) +); + +-- ============================================ +-- NAMED CHECK CONSTRAINTS +-- ============================================ + +-- Simple column value check with named constraint +ALTER TABLE employees +ADD CONSTRAINT chk_salary_positive +CHECK (salary > 0); + +-- Range check with named constraint +ALTER TABLE employees +ADD CONSTRAINT chk_commission_range +CHECK (commission_pct BETWEEN 0 AND 1); + +-- String pattern check with named constraint +ALTER TABLE employees +ADD CONSTRAINT chk_status_values +CHECK (status IN ('ACTIVE', 'INACTIVE', 'ON_LEAVE', 'TERMINATED')); + +-- Email format check with named constraint +ALTER TABLE employees +ADD CONSTRAINT chk_email_format +CHECK (email LIKE '%@%'); + +-- Multiple column comparison with named constraint +ALTER TABLE products +ADD CONSTRAINT chk_price_comparison +CHECK (discount_price <= price); + +-- ============================================ +-- UNNAMED CHECK CONSTRAINTS +-- ============================================ + +-- Simple check without constraint name +ALTER TABLE employees +ADD CHECK (age >= 18); + +-- Range check without name +ALTER TABLE products +ADD CHECK (stock_quantity >= 0); + +-- String value check without name +ALTER TABLE products +ADD CHECK (category IS NOT NULL); + +-- Comparison check without name +ALTER TABLE employees +ADD CHECK (salary >= 0); + +-- ============================================ +-- COMPLEX EXPRESSION CHECKS +-- ============================================ + +-- Arithmetic expression +ALTER TABLE employees +ADD CONSTRAINT chk_salary_calculation +CHECK (salary * 12 > 0); + +-- Multiple conditions with AND +ALTER TABLE employees +ADD CONSTRAINT chk_salary_dept_rules +CHECK (salary > 0 AND department_id IS NOT NULL); + +-- Multiple conditions with OR +ALTER TABLE employees +ADD CONSTRAINT chk_commission_or_salary +CHECK (commission_pct > 0 OR salary > 50000); + +-- Complex arithmetic with multiple columns +ALTER TABLE products +ADD CONSTRAINT chk_price_margin +CHECK ((price - discount_price) >= price * 0.05); + +-- NULL handling +ALTER TABLE employees +ADD CONSTRAINT chk_email_required +CHECK (email IS NOT NULL AND LENGTH(email) > 5); + +-- CASE expression in check +ALTER TABLE employees +ADD CONSTRAINT chk_salary_by_status +CHECK ( + CASE + WHEN status = 'ACTIVE' THEN salary > 0 + WHEN status = 'INACTIVE' THEN 1 = 1 + ELSE 1 = 1 + END = 1 +); + +-- Function calls in check +ALTER TABLE employees +ADD CONSTRAINT chk_name_length +CHECK (LENGTH(TRIM(emp_name)) > 0); + +-- Mathematical functions +ALTER TABLE products +ADD CONSTRAINT chk_weight_reasonable +CHECK (weight > 0 AND weight < 10000); + +-- Date comparison +ALTER TABLE employees +ADD CONSTRAINT chk_hire_date_valid +CHECK (hire_date <= SYSDATE); + +-- NOT condition +ALTER TABLE products +ADD CONSTRAINT chk_price_not_negative +CHECK (NOT (price < 0)); + +-- Nested conditions +ALTER TABLE employees +ADD CONSTRAINT chk_complex_conditions +CHECK ( + (salary > 30000 AND age >= 21) OR + (salary <= 30000 AND age >= 18) +); + +-- String functions +ALTER TABLE employees +ADD CONSTRAINT chk_email_lowercase +CHECK (email = LOWER(email)); + +-- UPPER/LOWER with IN clause +ALTER TABLE products +ADD CONSTRAINT chk_category_uppercase +CHECK (UPPER(category) IN ('ELECTRONICS', 'CLOTHING', 'FOOD', 'BOOKS')); + +-- Multiple arithmetic operations +ALTER TABLE products +ADD CONSTRAINT chk_price_calculations +CHECK (price * stock_quantity > 0 AND price / 100 < 100000); + +-- Combining comparison operators +ALTER TABLE employees +ADD CONSTRAINT chk_performance_range +CHECK (performance_score >= 0.0 AND performance_score <= 10.0); + +-- Expression with parentheses +ALTER TABLE products +ADD CONSTRAINT chk_discount_rules +CHECK ((price - discount_price) * stock_quantity >= 0); + +-- LIKE with wildcards +ALTER TABLE employees +ADD CONSTRAINT chk_email_domain +CHECK (email LIKE '%@%.com' OR email LIKE '%@%.org'); + +-- NOT IN clause +ALTER TABLE employees +ADD CONSTRAINT chk_status_not_invalid +CHECK (status NOT IN ('PENDING', 'UNKNOWN')); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Very long expression +ALTER TABLE employees +ADD CONSTRAINT chk_comprehensive_validation +CHECK ( + salary > 0 AND + salary < 1000000 AND + age >= 18 AND + age <= 100 AND + (commission_pct IS NULL OR (commission_pct >= 0 AND commission_pct <= 1)) AND + status IN ('ACTIVE', 'INACTIVE', 'ON_LEAVE', 'TERMINATED') +); + +-- Multiple checks added in sequence for same table +ALTER TABLE products ADD CHECK (product_name IS NOT NULL); +ALTER TABLE products ADD CONSTRAINT chk_prod_name_length CHECK (LENGTH(product_name) <= 200); +ALTER TABLE products ADD CONSTRAINT chk_stock_max CHECK (stock_quantity <= 1000000); + +-- Check with BETWEEN and NOT +ALTER TABLE employees +ADD CONSTRAINT chk_age_working +CHECK (age BETWEEN 18 AND 70); + +-- Check constraint with IS NOT NULL combined with value check +ALTER TABLE employees +ADD CONSTRAINT chk_dept_valid +CHECK (department_id IS NOT NULL AND department_id > 0); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_fk.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_fk.in.sql new file mode 100644 index 000000000..6909b7c9b --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_fk.in.sql @@ -0,0 +1,147 @@ +-- Oracle SQL ALTER TABLE ADD FOREIGN KEY Constraint Test Cases +-- Test setup: Create base tables with primary keys +CREATE TABLE departments ( + dept_id NUMBER(10) PRIMARY KEY, + dept_name VARCHAR2(100), + location_id NUMBER(10), + manager_id NUMBER(10) +); + +CREATE TABLE locations ( + location_id NUMBER(10) PRIMARY KEY, + city VARCHAR2(100), + country_code CHAR(2) +); + +CREATE TABLE countries ( + country_code CHAR(2) PRIMARY KEY, + country_name VARCHAR2(100) +); + +CREATE TABLE employees ( + emp_id NUMBER(10) PRIMARY KEY, + emp_name VARCHAR2(100), + department_id NUMBER(10), + manager_id NUMBER(10), + hire_date DATE, + location_id NUMBER(10) +); + +CREATE TABLE projects ( + project_id NUMBER(10) PRIMARY KEY, + project_name VARCHAR2(200), + dept_id NUMBER(10), + lead_emp_id NUMBER(10), + backup_emp_id NUMBER(10) +); + +CREATE TABLE assignments ( + assignment_id NUMBER(10) PRIMARY KEY, + emp_id NUMBER(10), + project_id NUMBER(10), + start_date DATE +); + +-- Table with composite primary key +CREATE TABLE project_tasks ( + project_id NUMBER(10), + task_id NUMBER(10), + task_name VARCHAR2(200), + assigned_emp_id NUMBER(10), + PRIMARY KEY (project_id, task_id) +); + +CREATE TABLE task_hours ( + hour_id NUMBER(10) PRIMARY KEY, + project_id NUMBER(10), + task_id NUMBER(10), + hours_worked NUMBER(5,2) +); + +-- ============================================ +-- NAMED FOREIGN KEY CONSTRAINTS - BASIC +-- ============================================ + +-- Simple single-column FK with constraint name +ALTER TABLE employees +ADD CONSTRAINT fk_emp_dept +FOREIGN KEY (department_id) +REFERENCES departments(dept_id); + +-- Single-column FK referencing different table +ALTER TABLE departments +ADD CONSTRAINT fk_dept_location +FOREIGN KEY (location_id) +REFERENCES locations(location_id); + +-- FK with explicit column name in referenced table +ALTER TABLE locations +ADD CONSTRAINT fk_loc_country +FOREIGN KEY (country_code) +REFERENCES countries(country_code); + +-- Self-referencing FK (hierarchical) +ALTER TABLE employees +ADD CONSTRAINT fk_emp_manager +FOREIGN KEY (manager_id) +REFERENCES employees(emp_id); + +-- Another self-referencing FK on different table +ALTER TABLE departments +ADD CONSTRAINT fk_dept_manager +FOREIGN KEY (manager_id) +REFERENCES employees(emp_id); + +-- ============================================ +-- UNNAMED FOREIGN KEY CONSTRAINTS +-- ============================================ + +-- FK without explicit constraint name (Oracle auto-generates) +ALTER TABLE projects +ADD FOREIGN KEY (dept_id) +REFERENCES departments(dept_id); + +-- Another unnamed FK +ALTER TABLE assignments +ADD FOREIGN KEY (emp_id) +REFERENCES employees(emp_id); + +-- Unnamed FK with different columns +ALTER TABLE assignments +ADD FOREIGN KEY (project_id) +REFERENCES projects(project_id); + +-- ============================================ +-- COMPOSITE FOREIGN KEYS (Multiple Columns) +-- ============================================ + +-- Two-column composite FK +ALTER TABLE task_hours +ADD CONSTRAINT fk_task_hours_project_task +FOREIGN KEY (project_id, task_id) +REFERENCES project_tasks(project_id, task_id); + +-- ============================================ +-- FOREIGN KEYS WITH ON DELETE ACTIONS +-- ============================================ + +-- ON DELETE CASCADE - delete child records when parent is deleted +ALTER TABLE projects +ADD CONSTRAINT fk_proj_lead_emp +FOREIGN KEY (lead_emp_id) +REFERENCES employees(emp_id) +ON DELETE CASCADE; + +-- ON DELETE SET NULL - set FK to NULL when parent is deleted +ALTER TABLE projects +ADD CONSTRAINT fk_proj_backup_emp +FOREIGN KEY (backup_emp_id) +REFERENCES employees(emp_id) +ON DELETE SET NULL; + +-- ON DELETE CASCADE with named constraint +ALTER TABLE project_tasks +ADD CONSTRAINT fk_task_assigned_emp +FOREIGN KEY (assigned_emp_id) +REFERENCES employees(emp_id) +ON DELETE CASCADE; diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_not_null.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_not_null.in.sql new file mode 100644 index 000000000..aa10cf096 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_not_null.in.sql @@ -0,0 +1,93 @@ +-- Oracle SQL ALTER TABLE ADD NOT NULL Constraint Test Cases +-- Test setup: Create base tables with minimal required fields +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100), + email VARCHAR2(100), + phone VARCHAR2(20) +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200), + price NUMBER(10,2), + category VARCHAR2(50), + manufacturer VARCHAR2(100), + sku VARCHAR2(50) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10), + ship_date DATE, + total_amount NUMBER(12,2) +); + +CREATE TABLE departments ( + dept_id NUMBER(10), + dept_name VARCHAR2(100), + manager_id NUMBER(10), + status VARCHAR2(20) +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10), + supp_name VARCHAR2(100), + contact VARCHAR2(100), + ssn VARCHAR2(11), + badge_number VARCHAR2(10) +); + +-- ============================================ +-- BASIC NOT NULL CONSTRAINTS +-- ============================================ + +-- Simple NOT NULL constraint (Oracle 11g+ inline syntax) +-- Note: In Oracle, NOT NULL is technically a CHECK constraint +ALTER TABLE customers +MODIFY cust_name NOT NULL; + +-- NOT NULL on numeric column +ALTER TABLE inventory +MODIFY price NOT NULL; + +-- NOT NULL on date column +ALTER TABLE shipments +MODIFY ship_date NOT NULL; + +-- NOT NULL on VARCHAR2 column +ALTER TABLE customers +MODIFY email NOT NULL; + +-- NOT NULL on CHAR column +ALTER TABLE inventory +MODIFY category NOT NULL; + +-- ============================================ +-- NAMED NOT NULL CONSTRAINTS +-- ============================================ + +-- NOT NULL with explicit constraint name +ALTER TABLE departments +MODIFY dept_name CONSTRAINT nn_dept_name NOT NULL; + +-- Multiple named NOT NULL constraints +ALTER TABLE shipments +MODIFY customer_id CONSTRAINT nn_ship_customer NOT NULL; + +ALTER TABLE suppliers +MODIFY supp_name CONSTRAINT nn_supp_name NOT NULL; + +-- Named NOT NULL on different data types +ALTER TABLE inventory +MODIFY item_name CONSTRAINT nn_item_name NOT NULL; + +ALTER TABLE shipments +MODIFY total_amount CONSTRAINT nn_ship_total NOT NULL; + +ALTER TABLE departments +MODIFY dept_id CONSTRAINT nn_dept_id NOT NULL; + +-- Multiple NOT NULL constraints +ALTER TABLE inventory +MODIFY (manufacturer NOT NULL, sku NOT NULL); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_pk.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_pk.in.sql new file mode 100644 index 000000000..1e4eda293 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_pk.in.sql @@ -0,0 +1,69 @@ +-- Oracle SQL ALTER TABLE Add Primary Key Test Cases +-- Test setup: Create tables without PRIMARY KEY constraints +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100) NOT NULL, + email VARCHAR2(100), + phone VARCHAR2(20), + address VARCHAR2(200) +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200) NOT NULL, + price NUMBER(10,2) NOT NULL, + category VARCHAR2(50), + sku VARCHAR2(50) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10) NOT NULL, + ship_date DATE, + total_amount NUMBER(12,2), + tracking_number VARCHAR2(50) +); + +CREATE TABLE datatype_tests ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +CREATE TABLE complex_test ( + id NUMBER(10), + code VARCHAR2(20) UNIQUE, + name VARCHAR2(100) NOT NULL, + parent_id NUMBER(10), + status VARCHAR2(20), + CONSTRAINT fk_complex_parent FOREIGN KEY (parent_id) REFERENCES complex_test(id) +); + +CREATE TABLE combo_test ( + col1 NUMBER(10), + col2 VARCHAR2(50) +); + +-- ============================================ +-- ADD PRIMARY KEY CONSTRAINTS (All Methods) +-- ============================================ + +-- Method 1: Add PRIMARY KEY using ALTER TABLE with named constraint +ALTER TABLE customers +ADD CONSTRAINT pk_cust_id PRIMARY KEY (cust_id); + +-- Method 2: Add PRIMARY KEY using ALTER TABLE without constraint name +ALTER TABLE inventory +ADD PRIMARY KEY (item_id); + +-- Method 3: Add composite PRIMARY KEY (multiple columns) +ALTER TABLE complex_test +ADD CONSTRAINT pk_complex_composite PRIMARY KEY (id, code); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_unique.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_unique.in.sql new file mode 100644 index 000000000..6448262bc --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_add_unique.in.sql @@ -0,0 +1,69 @@ +-- Oracle SQL ALTER TABLE Add Unique Constraint Test Cases +-- Test setup: Create tables without UNIQUE constraints +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100) NOT NULL, + email VARCHAR2(100), + phone VARCHAR2(20), + address VARCHAR2(200) +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200) NOT NULL, + price NUMBER(10,2) NOT NULL, + category VARCHAR2(50), + sku VARCHAR2(50) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10) NOT NULL, + ship_date DATE, + total_amount NUMBER(12,2), + tracking_number VARCHAR2(50) +); + +CREATE TABLE datatype_tests ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +CREATE TABLE complex_test ( + id NUMBER(10), + code VARCHAR2(20), + name VARCHAR2(100) NOT NULL, + parent_id NUMBER(10), + status VARCHAR2(20), + CONSTRAINT fk_complex_parent FOREIGN KEY (parent_id) REFERENCES complex_test(id) +); + +CREATE TABLE combo_test ( + col1 NUMBER(10), + col2 VARCHAR2(50) +); + +-- ============================================ +-- ADD UNIQUE CONSTRAINTS (All Methods) +-- ============================================ + +-- Method 1: Add UNIQUE constraint using ALTER TABLE with named constraint +ALTER TABLE customers +ADD CONSTRAINT uk_cust_phone UNIQUE (phone); + +-- Method 2: Add UNIQUE constraint without constraint name +ALTER TABLE inventory +ADD UNIQUE (sku); + +-- Method 3: Add composite UNIQUE constraint (multiple columns) +ALTER TABLE complex_test +ADD CONSTRAINT uk_complex_id_status UNIQUE (id, status); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_check_constraints.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_check_constraints.in.sql new file mode 100644 index 000000000..965283965 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_check_constraints.in.sql @@ -0,0 +1,81 @@ +-- Oracle SQL ALTER TABLE Add Check Constraint Test Cases +-- Test setup: Create tables without CHECK constraints +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100) NOT NULL, + email VARCHAR2(100), + phone VARCHAR2(20), + address VARCHAR2(200) +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200) NOT NULL, + price NUMBER(10,2) NOT NULL, + category VARCHAR2(50), + sku VARCHAR2(50) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10) NOT NULL, + ship_date DATE, + total_amount NUMBER(12,2), + tracking_number VARCHAR2(50) +); + +CREATE TABLE datatype_tests ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +CREATE TABLE complex_test ( + id NUMBER(10), + code VARCHAR2(20), + name VARCHAR2(100) NOT NULL, + parent_id NUMBER(10), + status VARCHAR2(20), + CONSTRAINT fk_complex_parent FOREIGN KEY (parent_id) REFERENCES complex_test(id) +); + +CREATE TABLE combo_test ( + col1 NUMBER(10), + col2 VARCHAR2(50) +); + +-- ============================================ +-- ADD CHECK CONSTRAINTS (All Methods) +-- ============================================ + +-- Method 1: Add CHECK constraint with named constraint (single condition) +ALTER TABLE customers +ADD CONSTRAINT chk_cust_id_pos CHECK (cust_id > 0); + +-- Method 2: Add CHECK constraint without constraint name +ALTER TABLE inventory +ADD CHECK (price >= 0); + +-- Method 3: Add CHECK constraint with multiple conditions (compound expression) +ALTER TABLE shipments +ADD CONSTRAINT chk_ship_amount CHECK (total_amount >= 0); + +-- Method 4: Add CHECK constraint on VARCHAR2 with specific values +ALTER TABLE inventory +ADD CONSTRAINT chk_inv_category CHECK (category IN ('ELECTRONICS', 'CLOTHING', 'BOOKS')); + +-- Method 5: Add CHECK constraint with date comparison +ALTER TABLE shipments +ADD CONSTRAINT chk_ship_date_valid CHECK (ship_date >= TRUNC(SYSDATE)); + +-- Method 6: Add CHECK constraint with complex expression (multiple columns) +ALTER TABLE complex_test +ADD CONSTRAINT chk_id_status CHECK (id IS NOT NULL OR status = 'ACTIVE'); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_set_default.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_set_default.in.sql new file mode 100644 index 000000000..08509fcb1 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_set_default.in.sql @@ -0,0 +1,175 @@ +-- Oracle SQL ALTER TABLE Set Column Default Test Cases +-- Test setup: Create base tables with minimal required fields +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100), + email VARCHAR2(100), + phone VARCHAR2(20) DEFAULT '0123456789', + address VARCHAR2(200), + status VARCHAR2(20) DEFAULT 'active', + reg_date DATE, + last_login TIMESTAMP +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200), + price NUMBER(10,2), + category VARCHAR2(50), + sku VARCHAR2(50), + weight NUMBER(8,2), + stock_level NUMBER(10), + reorder_level NUMBER(10) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10), + ship_date DATE, + total_amount NUMBER(12,2), + tracking_number VARCHAR2(50), + carrier VARCHAR2(100), + priority NUMBER(2), + notes VARCHAR2(4000) +); + +CREATE TABLE departments ( + dept_id NUMBER(10), + dept_name VARCHAR2(100), + manager_id NUMBER(10), + budget NUMBER(12,2), + location VARCHAR2(50), + established_date DATE +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10), + supp_name VARCHAR2(100), + contact VARCHAR2(100), + ssn VARCHAR2(11), + badge_number VARCHAR2(10), + credit_limit NUMBER(10,2) +); + +CREATE TABLE test_defaults ( + col1 NUMBER, + col2 VARCHAR2(50), + col3 DATE, + col4 TIMESTAMP, + col5 CLOB, + col6 RAW(100), + col7 FLOAT, + col8 INTEGER, + col9 NVARCHAR2(100) +); + +-- Create sequence for testing +CREATE SEQUENCE test_seq START WITH 1 INCREMENT BY 1; + +-- ============================================ +-- BASIC DEFAULT SETTINGS +-- ============================================ + +-- Simple DEFAULT constraint (numeric literal) +ALTER TABLE customers +MODIFY cust_id DEFAULT 0; + +-- DEFAULT on VARCHAR2 column (string literal) +ALTER TABLE inventory +MODIFY item_name DEFAULT 'Unknown'; + +-- DEFAULT on DATE column +ALTER TABLE shipments +MODIFY ship_date DEFAULT SYSDATE; + +-- DEFAULT on NUMBER column +ALTER TABLE departments +MODIFY budget DEFAULT 10000.00; + +-- DEFAULT on CHAR/VARCHAR2 column +ALTER TABLE suppliers +MODIFY contact DEFAULT 'N/A'; + +-- ============================================ +-- DEFAULT WITH EXPRESSIONS +-- ============================================ + +-- DEFAULT with SYSDATE +ALTER TABLE customers +MODIFY reg_date DEFAULT SYSDATE; + +-- DEFAULT with USER function +ALTER TABLE inventory +MODIFY category DEFAULT USER; + +-- DEFAULT with SYS_GUID() +ALTER TABLE shipments +MODIFY tracking_number DEFAULT SYS_GUID(); + +-- DEFAULT with sequence.NEXTVAL +ALTER TABLE departments +MODIFY dept_id DEFAULT test_seq.NEXTVAL; + +-- DEFAULT with arithmetic expression +ALTER TABLE suppliers +MODIFY credit_limit DEFAULT 5000 + 1000; + +-- ============================================ +-- DEFAULT ON NULL +-- ============================================ + +-- Simple DEFAULT ON NULL (literal) +ALTER TABLE customers +MODIFY email DEFAULT ON NULL 'noemail@example.com'; + +-- DEFAULT ON NULL on numeric column +ALTER TABLE inventory +MODIFY price DEFAULT ON NULL 0.00; + +-- DEFAULT ON NULL on date column +ALTER TABLE shipments +MODIFY customer_id DEFAULT ON NULL 1; + +-- DEFAULT ON NULL with expression +ALTER TABLE departments +MODIFY established_date DEFAULT ON NULL SYSDATE; + +-- DEFAULT ON NULL on VARCHAR2 +ALTER TABLE suppliers +MODIFY supp_name DEFAULT ON NULL 'Anonymous'; + +-- ============================================ +-- OVERRIDING DEFAULT +-- ============================================ + +-- Remove DEFAULT by setting to NULL +ALTER TABLE customers +MODIFY phone DEFAULT NULL; + +-- Overide DEFAULT +ALTER TABLE customers +MODIFY status DEFAULT 'churned'; + +-- ============================================ +-- MULTIPLE COLUMNS IN ONE STATEMENT +-- ============================================ + +-- Multiple DEFAULT settings in single ALTER +ALTER TABLE customers +MODIFY (cust_id DEFAULT 1, email DEFAULT 'email@example.com'); + +-- Multiple with mixed options +ALTER TABLE inventory +MODIFY (price DEFAULT 0.99 NOT NULL, category DEFAULT 'Misc' NOT NULL); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Very long default string +ALTER TABLE shipments +MODIFY notes DEFAULT 'This is a very long default value for testing purposes, exceeding typical lengths to check parser limits and storage implications in Oracle SQL'; + +-- DEFAULT with complex expression +ALTER TABLE departments +MODIFY location DEFAULT UPPER(USER) || '_DEPT'; diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_set_nullable.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_set_nullable.in.sql new file mode 100644 index 000000000..04ac11e1e --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/alter_table_set_nullable.in.sql @@ -0,0 +1,169 @@ +-- Oracle SQL ALTER TABLE Set Nullable (Remove NOT NULL) Test Cases +-- Test setup: Create tables with NOT NULL constraints +CREATE TABLE employees ( + emp_id NUMBER(10) CONSTRAINT nn_emp_id NOT NULL, + emp_name VARCHAR2(100) NOT NULL, + email VARCHAR2(100) CONSTRAINT nn_emp_email NOT NULL, + phone VARCHAR2(20) NOT NULL, + salary NUMBER(10,2) NOT NULL, + commission_pct NUMBER(3,2) NOT NULL, + hire_date DATE NOT NULL, + department_id NUMBER(10) NOT NULL, + manager_id NUMBER(10) CONSTRAINT nn_emp_manager NOT NULL, + status VARCHAR2(20) NOT NULL, + ssn VARCHAR2(11) CONSTRAINT nn_emp_ssn NOT NULL, + badge_number VARCHAR2(10) NOT NULL, + title VARCHAR2(100) NOT NULL, + office_location VARCHAR2(50) NOT NULL +); + +CREATE TABLE products ( + product_id NUMBER(10) NOT NULL, + product_name VARCHAR2(200) CONSTRAINT nn_prod_name NOT NULL, + description VARCHAR2(4000) NOT NULL, + price NUMBER(10,2) CONSTRAINT nn_prod_price NOT NULL, + category VARCHAR2(50) NOT NULL, + manufacturer VARCHAR2(100) CONSTRAINT nn_prod_manuf NOT NULL, + sku VARCHAR2(50) NOT NULL, + weight NUMBER(8,2) NOT NULL +); + +CREATE TABLE orders ( + order_id NUMBER(10) NOT NULL, + customer_id NUMBER(10) CONSTRAINT nn_order_customer NOT NULL, + order_date DATE NOT NULL, + ship_date DATE CONSTRAINT nn_order_ship NOT NULL, + total_amount NUMBER(12,2) NOT NULL, + tax_amount NUMBER(10,2) NOT NULL, + discount_amount NUMBER(10,2) NOT NULL +); + +-- ============================================ +-- BASIC NULL SYNTAX (Make Column Nullable) +-- ============================================ + +-- Simple MODIFY to NULL (removes NOT NULL constraint) +ALTER TABLE employees +MODIFY commission_pct NULL; + +-- Make numeric column nullable +ALTER TABLE employees +MODIFY salary NULL; + +-- Make VARCHAR2 column nullable +ALTER TABLE employees +MODIFY phone NULL; + +-- Make DATE column nullable +ALTER TABLE employees +MODIFY hire_date NULL; + +-- Make multiple columns nullable (separate statements) +ALTER TABLE products +MODIFY description NULL; + +ALTER TABLE products +MODIFY weight NULL; + +ALTER TABLE products +MODIFY manufacturer NULL; + +-- ============================================ +-- MODIFY COLUMN TO NULL (Various Data Types) +-- ============================================ + +CREATE TABLE datatype_tests ( + col_number NUMBER(10,2) NOT NULL, + col_varchar2 VARCHAR2(100) NOT NULL, + col_char CHAR(10) NOT NULL, + col_date DATE NOT NULL, + col_timestamp TIMESTAMP NOT NULL, + col_clob CLOB NOT NULL, + col_raw RAW(100) NOT NULL, + col_float FLOAT NOT NULL, + col_integer INTEGER NOT NULL, + col_nvarchar2 NVARCHAR2(100) NOT NULL, + col_nchar NCHAR(10) NOT NULL +); + +-- Make NUMBER column nullable +ALTER TABLE datatype_tests +MODIFY col_number NULL; + +-- Make VARCHAR2 column nullable +ALTER TABLE datatype_tests +MODIFY col_varchar2 NULL; + +-- Make CHAR column nullable +ALTER TABLE datatype_tests +MODIFY col_char NULL; + +-- Make DATE column nullable +ALTER TABLE datatype_tests +MODIFY col_date NULL; + +-- Make TIMESTAMP column nullable +ALTER TABLE datatype_tests +MODIFY col_timestamp NULL; + +-- Make CLOB column nullable +ALTER TABLE datatype_tests +MODIFY col_clob NULL; + +-- Make RAW column nullable +ALTER TABLE datatype_tests +MODIFY col_raw NULL; + +-- Make FLOAT column nullable +ALTER TABLE datatype_tests +MODIFY col_float NULL; + +-- Make INTEGER column nullable +ALTER TABLE datatype_tests +MODIFY col_integer NULL; + +-- Make NVARCHAR2 column nullable +ALTER TABLE datatype_tests +MODIFY col_nvarchar2 NULL; + +-- Make NCHAR column nullable +ALTER TABLE datatype_tests +MODIFY col_nchar NULL; + +-- ============================================ +-- COMPLEX SCENARIOS +-- ============================================ + +-- Table with multiple constraint types +CREATE TABLE complex_test ( + id NUMBER(10) CONSTRAINT pk_complex PRIMARY KEY, + code VARCHAR2(20) CONSTRAINT uk_complex_code UNIQUE NOT NULL, + name VARCHAR2(100) CONSTRAINT nn_complex_name NOT NULL, + parent_id NUMBER(10) CONSTRAINT nn_complex_parent NOT NULL, + status VARCHAR2(20) CONSTRAINT nn_complex_status NOT NULL, + CONSTRAINT fk_complex_parent FOREIGN KEY (parent_id) REFERENCES complex_test(id) +); + +-- Make column nullable using MODIFY +ALTER TABLE complex_test +MODIFY status NULL; + +ALTER TABLE complex_test +MODIFY code NULL; + +-- ============================================ +-- COMBINATION WITH OTHER MODIFICATIONS +-- ============================================ + +CREATE TABLE combo_test ( + col1 NUMBER(10) NOT NULL, + col2 VARCHAR2(50) NOT NULL +); + +-- Modify data type and make nullable in same statement +ALTER TABLE combo_test +MODIFY col1 NUMBER(12) NULL; + +-- Modify size and make nullable +ALTER TABLE combo_test +MODIFY col2 VARCHAR2(100) NULL; diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_checks.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_checks.in.sql new file mode 100644 index 000000000..52193eb39 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_checks.in.sql @@ -0,0 +1,242 @@ +-- Oracle SQL Inline CHECK Constraint Test Cases +-- Test setup: Create tables with inline CHECK constraints on different columns +CREATE TABLE customers ( + cust_id NUMBER(10) CONSTRAINT chk_cust_id_pos CHECK (cust_id > 0), + cust_name VARCHAR2(100) CONSTRAINT chk_cust_name_len CHECK (LENGTH(cust_name) <= 100), + email VARCHAR2(100) CONSTRAINT chk_email_format CHECK (email LIKE '%@%.%'), + phone VARCHAR2(20) CONSTRAINT chk_phone_len CHECK (LENGTH(phone) >= 10), + address VARCHAR2(200) CONSTRAINT chk_address_not_empty CHECK (address IS NOT NULL), + status VARCHAR2(20) CONSTRAINT chk_cust_status CHECK (status IN ('ACTIVE', 'INACTIVE')), + reg_date DATE CONSTRAINT chk_reg_date CHECK (reg_date >= TO_DATE('2000-01-01', 'YYYY-MM-DD')), + last_login TIMESTAMP CONSTRAINT chk_last_login CHECK (last_login <= SYSTIMESTAMP) CONSTRAINT chk_last_login_2 CHECK (last_login >= SYSTIMESTAMP), + last_login_2 TIMESTAMP CHECK (last_login_2 <= SYSTIMESTAMP) CHECK (last_login_2 >= SYSTIMESTAMP), + last_login_3 TIMESTAMP CHECK (last_login_3 <= SYSTIMESTAMP) CONSTRAINT chk_last_login_3 CHECK (last_login_3 >= SYSTIMESTAMP) +); + +CREATE TABLE inventory ( + item_id NUMBER(10) CONSTRAINT chk_item_id_pos CHECK (item_id > 0), + item_name VARCHAR2(200) CONSTRAINT chk_item_name CHECK (item_name IS NOT NULL), + price NUMBER(10,2) CONSTRAINT chk_price_pos CHECK (price >= 0), + category VARCHAR2(50) CONSTRAINT chk_category_valid CHECK (category IN ('ELECTRONICS', 'CLOTHING', 'BOOKS')), + sku VARCHAR2(50) CONSTRAINT chk_sku_len CHECK (LENGTH(sku) <= 50), + weight NUMBER(8,2) CONSTRAINT chk_weight_pos CHECK (weight > 0), + stock_level NUMBER(10) CONSTRAINT chk_stock_level CHECK (stock_level >= 0), + reorder_level NUMBER(10) CONSTRAINT chk_reorder_level CHECK (reorder_level >= 0) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10) CONSTRAINT chk_ship_id CHECK (ship_id > 0), + customer_id NUMBER(10) CONSTRAINT chk_cust_id_valid CHECK (customer_id > 0), + ship_date DATE CONSTRAINT chk_ship_date CHECK (ship_date >= TRUNC(SYSDATE)), + total_amount NUMBER(12,2) CONSTRAINT chk_total_amount CHECK (total_amount >= 0), + tracking_number VARCHAR2(50) CONSTRAINT chk_tracking_len CHECK (LENGTH(tracking_number) <= 50), + carrier VARCHAR2(100) CONSTRAINT chk_carrier CHECK (carrier IS NOT NULL), + priority NUMBER(2) CONSTRAINT chk_priority_range CHECK (priority BETWEEN 1 AND 5), + notes VARCHAR2(4000) CONSTRAINT chk_notes_len CHECK (LENGTH(notes) <= 4000) +); + +CREATE TABLE departments ( + dept_id NUMBER(10) CONSTRAINT chk_dept_id CHECK (dept_id > 0), + dept_name VARCHAR2(100) CONSTRAINT chk_dept_name CHECK (dept_name IS NOT NULL), + manager_id NUMBER(10) CONSTRAINT chk_manager_id CHECK (manager_id > 0), + budget NUMBER(12,2) CONSTRAINT chk_budget_pos CHECK (budget >= 0), + location VARCHAR2(50) CONSTRAINT chk_location CHECK (location IS NOT NULL), + established_date DATE CONSTRAINT chk_est_date CHECK (established_date <= SYSDATE) +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10) CONSTRAINT chk_supp_id CHECK (supp_id > 0), + supp_name VARCHAR2(100) CONSTRAINT chk_supp_name CHECK (supp_name IS NOT NULL), + contact VARCHAR2(100) CONSTRAINT chk_contact_len CHECK (LENGTH(contact) <= 100), + ssn VARCHAR2(11) CONSTRAINT chk_ssn_format CHECK (ssn LIKE '___-__-____'), + badge_number VARCHAR2(10) CONSTRAINT chk_badge_len CHECK (LENGTH(badge_number) <= 10), + credit_limit NUMBER(10,2) CONSTRAINT chk_credit_limit CHECK (credit_limit >= 0) +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2) CONSTRAINT chk_number_pos CHECK (col_number >= 0), + col_varchar2 VARCHAR2(100) CONSTRAINT chk_varchar2_len CHECK (LENGTH(col_varchar2) <= 100), + col_char CHAR(10) CONSTRAINT chk_char_len CHECK (LENGTH(col_char) = 10), + col_date DATE CONSTRAINT chk_date CHECK (col_date >= TO_DATE('2000-01-01', 'YYYY-MM-DD')), + col_timestamp TIMESTAMP CONSTRAINT chk_timestamp CHECK (col_timestamp <= SYSTIMESTAMP), + col_clob CLOB CONSTRAINT chk_clob_not_null CHECK (col_clob IS NOT NULL), + col_raw RAW(100) CONSTRAINT chk_raw_len CHECK (LENGTH(col_raw) <= 100), + col_float FLOAT CONSTRAINT chk_float_pos CHECK (col_float >= 0), + col_integer INTEGER CONSTRAINT chk_integer_pos CHECK (col_integer >= 0), + col_nvarchar2 NVARCHAR2(100) CONSTRAINT chk_nvarchar2_len CHECK (LENGTH(col_nvarchar2) <= 100), + col_nchar NCHAR(10) CONSTRAINT chk_nchar_len CHECK (LENGTH(col_nchar) = 10) +); + +-- ============================================ +-- BASIC INLINE CHECK CONSTRAINTS +-- ============================================ + +-- Simple CHECK constraint (numeric comparison) +CREATE TABLE test_basic ( + id NUMBER(10) CONSTRAINT chk_id_pos CHECK (id > 0), + value NUMBER(10) CONSTRAINT chk_value_range CHECK (value BETWEEN 1 AND 1000) +); + +-- CHECK constraint on VARCHAR2 with specific values +CREATE TABLE test_status ( + status VARCHAR2(20) CONSTRAINT chk_status_values CHECK (status IN ('OPEN', 'CLOSED', 'PENDING')), + code VARCHAR2(10) CONSTRAINT chk_code_len CHECK (LENGTH(code) <= 10) +); + +-- CHECK constraint with IS NOT NULL +CREATE TABLE test_not_null ( + name VARCHAR2(100) CONSTRAINT chk_name_not_null CHECK (name IS NOT NULL), + description VARCHAR2(200) CONSTRAINT chk_desc_len CHECK (LENGTH(description) <= 200) +); + +-- CHECK constraint on DATE comparison +CREATE TABLE test_dates ( + event_date DATE CONSTRAINT chk_event_date CHECK (event_date >= SYSDATE), + end_date DATE CONSTRAINT chk_end_date CHECK (end_date > SYSDATE) +); + +-- ============================================ +-- COMPLEX INLINE CHECK CONSTRAINTS +-- ============================================ + +-- CHECK constraint with compound expression +CREATE TABLE test_compound ( + quantity NUMBER(10) CONSTRAINT chk_qty_pos CHECK (quantity >= 0), + price NUMBER(10,2) CONSTRAINT chk_qty_price CHECK (quantity * price >= 0) +); + +-- CHECK constraint with LIKE pattern +CREATE TABLE test_pattern ( + email VARCHAR2(100) CONSTRAINT chk_email_pattern CHECK (email LIKE '%@%.%'), + phone VARCHAR2(20) CONSTRAINT chk_phone_pattern CHECK (phone LIKE '[0-9]%') +); + +-- CHECK constraint with multiple conditions +CREATE TABLE test_multi_condition ( + score NUMBER(3) CONSTRAINT chk_score_range CHECK (score BETWEEN 0 AND 100), + grade CHAR(1) CONSTRAINT chk_grade_valid CHECK (grade IN ('A', 'B', 'C', 'D', 'F') AND score > 0) +); + +-- ============================================ +-- CHECK CONSTRAINTS WITH ENABLE/DISABLE +-- ============================================ + +-- CHECK constraint with ENABLE +CREATE TABLE test_enable ( + level NUMBER(2) CONSTRAINT chk_level_range CHECK (level BETWEEN 1 AND 10) ENABLE, + rating NUMBER(2) CONSTRAINT chk_rating CHECK (rating >= 0) ENABLE +); + +-- CHECK constraint with DISABLE +CREATE TABLE test_disable ( + priority NUMBER(2) CONSTRAINT chk_priority_range CHECK (priority BETWEEN 1 AND 5) DISABLE, + rank NUMBER(2) CONSTRAINT chk_rank CHECK (rank >= 0) DISABLE +); + +-- CHECK constraint with ENABLE VALIDATE +CREATE TABLE test_validate ( + amount NUMBER(10,2) CONSTRAINT chk_amount_pos CHECK (amount >= 0) ENABLE VALIDATE, + tax NUMBER(10,2) CONSTRAINT chk_tax_pos CHECK (tax >= 0) ENABLE VALIDATE +); + +-- CHECK constraint with ENABLE NOVALIDATE +CREATE TABLE test_novalidate ( + discount NUMBER(10,2) CONSTRAINT chk_discount CHECK (discount >= 0) ENABLE NOVALIDATE, + margin NUMBER(10,2) CONSTRAINT chk_margin CHECK (margin >= 0) ENABLE NOVALIDATE +); + +-- CHECK constraint with DISABLE NOVALIDATE +CREATE TABLE test_disable_novalidate ( + weight NUMBER(8,2) CONSTRAINT chk_weight CHECK (weight > 0) DISABLE NOVALIDATE, + volume NUMBER(8,2) CONSTRAINT chk_volume CHECK (volume > 0) DISABLE NOVALIDATE +); + +-- ============================================ +-- CHECK CONSTRAINTS WITH RELY/NORELY +-- ============================================ + +-- CHECK constraint with RELY +CREATE TABLE test_rely ( + code NUMBER(10) CONSTRAINT chk_code_pos CHECK (code > 0) RELY, + ref_id NUMBER(10) CONSTRAINT chk_ref_id CHECK (ref_id > 0) RELY +); + +-- CHECK constraint with NORELY +CREATE TABLE test_norely ( + sequence NUMBER(10) CONSTRAINT chk_seq_pos CHECK (sequence > 0) NORELY, + counter NUMBER(10) CONSTRAINT chk_counter CHECK (counter >= 0) NORELY +); + +-- CHECK constraint with ENABLE RELY +CREATE TABLE test_enable_rely ( + batch_id NUMBER(10) CONSTRAINT chk_batch_id CHECK (batch_id > 0) ENABLE RELY, + lot_number VARCHAR2(20) CONSTRAINT chk_lot_len CHECK (LENGTH(lot_number) <= 20) ENABLE RELY +); + +-- CHECK constraint with DISABLE NORELY +CREATE TABLE test_disable_norely ( + zone_id NUMBER(5) CONSTRAINT chk_zone_id CHECK (zone_id > 0) DISABLE NORELY, + area_code VARCHAR2(10) CONSTRAINT chk_area_len CHECK (LENGTH(area_code) <= 10) DISABLE NORELY +); + +-- ============================================ +-- CHECK CONSTRAINTS WITH DEFERRABLE OPTIONS +-- ============================================ + +-- CHECK constraint with DEFERRABLE INITIALLY DEFERRED +CREATE TABLE test_deferrable_deferred ( + order_id NUMBER(10) CONSTRAINT chk_order_id CHECK (order_id > 0) DEFERRABLE INITIALLY DEFERRED, + line_item NUMBER(5) CONSTRAINT chk_line_item CHECK (line_item > 0) DEFERRABLE INITIALLY DEFERRED +); + +-- CHECK constraint with DEFERRABLE INITIALLY IMMEDIATE +CREATE TABLE test_deferrable_immediate ( + invoice_id NUMBER(10) CONSTRAINT chk_invoice_id CHECK (invoice_id > 0) DEFERRABLE INITIALLY IMMEDIATE, + payment_status VARCHAR2(20) CONSTRAINT chk_payment_status CHECK (payment_status IN ('PAID', 'PENDING')) DEFERRABLE INITIALLY IMMEDIATE +); + +-- CHECK constraint with NOT DEFERRABLE +CREATE TABLE test_not_deferrable ( + ticket_id NUMBER(10) CONSTRAINT chk_ticket_id CHECK (ticket_id > 0) NOT DEFERRABLE, + issue_date DATE CONSTRAINT chk_issue_date CHECK (issue_date <= SYSDATE) NOT DEFERRABLE +); + +-- ============================================ +-- CHECK CONSTRAINTS ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes_inline ( + col_number NUMBER(10,2) CONSTRAINT chk_number CHECK (col_number >= 0), + col_varchar2 VARCHAR2(100) CONSTRAINT chk_varchar2 CHECK (LENGTH(col_varchar2) <= 100), + col_char CHAR(10) CONSTRAINT chk_char CHECK (LENGTH(col_char) = 10), + col_date DATE CONSTRAINT chk_date_valid CHECK (col_date >= TO_DATE('2000-01-01', 'YYYY-MM-DD')), + col_timestamp TIMESTAMP CONSTRAINT chk_timestamp_valid CHECK (col_timestamp <= SYSTIMESTAMP), + col_clob CLOB CONSTRAINT chk_clob CHECK (col_clob IS NOT NULL), + col_raw RAW(100) CONSTRAINT chk_raw CHECK (LENGTH(col_raw) <= 100), + col_float FLOAT CONSTRAINT chk_float CHECK (col_float >= 0), + col_integer INTEGER CONSTRAINT chk_integer CHECK (col_integer >= 0), + col_nvarchar2 NVARCHAR2(100) CONSTRAINT chk_nvarchar2 CHECK (LENGTH(col_nvarchar2) <= 100), + col_nchar NCHAR(10) CONSTRAINT chk_nchar CHECK (LENGTH(col_nchar) = 10) +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- CHECK constraint with complex expression +CREATE TABLE test_complex ( + score NUMBER(3) CONSTRAINT chk_score_complex CHECK (score >= 0 AND MOD(score, 2) = 0), + rating VARCHAR2(20) CONSTRAINT chk_rating_complex CHECK (rating IN ('HIGH', 'MEDIUM', 'LOW') AND LENGTH(rating) > 3) +); + +-- CHECK constraint with pattern matching +CREATE TABLE test_pattern_match ( + zip_code VARCHAR2(10) CONSTRAINT chk_zip_format CHECK (REGEXP_LIKE(zip_code, '^[0-9]{5}(-[0-9]{4})?$')), + serial_number VARCHAR2(20) CONSTRAINT chk_serial_format CHECK (REGEXP_LIKE(serial_number, '^[A-Z0-9]+$')) +); + +-- CHECK constraint with subquery (Note: Oracle allows subqueries in CHECK constraints in some versions) +CREATE TABLE test_subquery ( + dept_id NUMBER(10) CONSTRAINT chk_dept_id_exists CHECK (dept_id IN (SELECT dept_id FROM departments)), + emp_count NUMBER(5) CONSTRAINT chk_emp_count CHECK (emp_count >= 0) +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_default.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_default.in.sql new file mode 100644 index 000000000..8ff549205 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_default.in.sql @@ -0,0 +1,281 @@ +-- Oracle SQL Inline Column Default Test Cases +-- Test setup: Create tables with inline DEFAULT on different columns +CREATE TABLE customers ( + cust_id NUMBER(10) DEFAULT 0, + cust_name VARCHAR2(100) DEFAULT 'Unknown', + email VARCHAR2(100) DEFAULT 'noemail@example.com', + phone VARCHAR2(20) DEFAULT 'N/A', + address VARCHAR2(200) DEFAULT 'Unknown Address', + status VARCHAR2(20) DEFAULT 'ACTIVE', + reg_date DATE DEFAULT SYSDATE, + last_login TIMESTAMP DEFAULT SYSTIMESTAMP +); + +CREATE TABLE inventory ( + item_id NUMBER(10) DEFAULT 1, + item_name VARCHAR2(200) DEFAULT 'Item', + price NUMBER(10,2) DEFAULT 0.00, + category VARCHAR2(50) DEFAULT 'Misc', + sku VARCHAR2(50) DEFAULT 'SKU000', + weight NUMBER(8,2) DEFAULT 0.0, + stock_level NUMBER(10) DEFAULT 0, + reorder_level NUMBER(10) DEFAULT 10 +); + +CREATE TABLE shipments ( + ship_id NUMBER(10) DEFAULT test_seq.NEXTVAL, + customer_id NUMBER(10) DEFAULT 1, + ship_date DATE DEFAULT SYSDATE, + total_amount NUMBER(12,2) DEFAULT 0.00, + tracking_number VARCHAR2(50) DEFAULT SYS_GUID(), + carrier VARCHAR2(100) DEFAULT 'UPS', + priority NUMBER(2) DEFAULT 1, + notes VARCHAR2(4000) DEFAULT 'No notes' +); + +CREATE TABLE departments ( + dept_id NUMBER(10) DEFAULT 100, + dept_name VARCHAR2(100) DEFAULT 'General', + manager_id NUMBER(10) DEFAULT 0, + budget NUMBER(12,2) DEFAULT 10000.00, + location VARCHAR2(50) DEFAULT 'HQ', + established_date DATE DEFAULT SYSDATE +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10) DEFAULT 500, + supp_name VARCHAR2(100) DEFAULT 'Supplier', + contact VARCHAR2(100) DEFAULT 'Contact', + ssn VARCHAR2(11) DEFAULT '000-00-0000', + badge_number VARCHAR2(10) DEFAULT 'BADGE000', + credit_limit NUMBER(10,2) DEFAULT 5000.00 +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2) DEFAULT 42.00, + col_varchar2 VARCHAR2(100) DEFAULT 'Default Text', + col_char CHAR(10) DEFAULT 'CHARDEF ', + col_date DATE DEFAULT SYSDATE, + col_timestamp TIMESTAMP DEFAULT SYSTIMESTAMP, + col_clob CLOB DEFAULT EMPTY_CLOB(), + col_raw RAW(100) DEFAULT HEXTORAW('00'), + col_float FLOAT DEFAULT 3.14, + col_integer INTEGER DEFAULT 100, + col_nvarchar2 NVARCHAR2(100) DEFAULT N'Default National', + col_nchar NCHAR(10) DEFAULT N'NCHARDEF ' +); + +-- Create sequence for testing +CREATE SEQUENCE test_seq START WITH 1 INCREMENT BY 1; + +-- ============================================ +-- BASIC INLINE DEFAULTS +-- ============================================ + +-- Simple DEFAULT (numeric literal) +CREATE TABLE test_basic_num ( + id NUMBER(10) DEFAULT 0, + value NUMBER(10) DEFAULT 100 +); + +-- DEFAULT on VARCHAR2 (string literal) +CREATE TABLE test_basic_varchar ( + name VARCHAR2(100) DEFAULT 'Unknown', + code VARCHAR2(10) DEFAULT 'CODE' +); + +-- DEFAULT on DATE +CREATE TABLE test_basic_date ( + event_date DATE DEFAULT SYSDATE, + end_date DATE DEFAULT SYSDATE + 1 +); + +-- ============================================ +-- INLINE DEFAULT WITH EXPRESSIONS +-- ============================================ + +-- DEFAULT with SYSDATE +CREATE TABLE test_expr_sysdate ( + created_at DATE DEFAULT SYSDATE, + updated_at DATE DEFAULT SYSDATE +); + +-- DEFAULT with USER +CREATE TABLE test_expr_user ( + created_by VARCHAR2(30) DEFAULT USER, + modified_by VARCHAR2(30) DEFAULT USER +); + +-- DEFAULT with SYS_GUID() +CREATE TABLE test_expr_guid ( + unique_id VARCHAR2(32) DEFAULT SYS_GUID(), + session_id VARCHAR2(32) DEFAULT SYS_GUID() +); + +-- DEFAULT with sequence.NEXTVAL +CREATE TABLE test_expr_seq ( + seq_id NUMBER(10) DEFAULT test_seq.NEXTVAL, + auto_id NUMBER(10) DEFAULT test_seq.NEXTVAL +); + +-- DEFAULT with arithmetic expression +CREATE TABLE test_expr_arith ( + base_value NUMBER(10) DEFAULT 1000, + calc_value NUMBER(10) DEFAULT 1000 + 500 +); + +-- ============================================ +-- INLINE DEFAULT ON NULL +-- ============================================ + +-- Simple DEFAULT ON NULL (literal) +CREATE TABLE test_on_null_basic ( + email VARCHAR2(100) DEFAULT ON NULL 'noemail@example.com', + phone VARCHAR2(20) DEFAULT ON NULL 'N/A' +); + +-- DEFAULT ON NULL on numeric +CREATE TABLE test_on_null_num ( + quantity NUMBER(10) DEFAULT ON NULL 0, + discount NUMBER(5,2) DEFAULT ON NULL 0.00 +); + +-- DEFAULT ON NULL on date +CREATE TABLE test_on_null_date ( + start_date DATE DEFAULT ON NULL SYSDATE, + end_date DATE DEFAULT ON NULL SYSDATE + 7 +); + +-- ============================================ +-- INLINE DEFAULT COMBINED WITH NOT NULL +-- ============================================ + +-- DEFAULT with NOT NULL +CREATE TABLE test_default_not_null ( + status VARCHAR2(20) DEFAULT 'ACTIVE' NOT NULL, + priority NUMBER(2) DEFAULT 1 NOT NULL +); + +-- DEFAULT ON NULL with NOT NULL +CREATE TABLE test_on_null_not_null ( + name VARCHAR2(100) DEFAULT ON NULL 'Unknown' NOT NULL, + code VARCHAR2(10) DEFAULT ON NULL 'CODE' NOT NULL +); + +-- ============================================ +-- INLINE DEFAULT WITH NOT NULL OPTIONS +-- ============================================ + +-- DEFAULT with NOT NULL ENABLE +CREATE TABLE test_nn_enable ( + level NUMBER(2) DEFAULT 1 NOT NULL ENABLE, + rating NUMBER(2) DEFAULT 5 NOT NULL ENABLE +); + +-- DEFAULT with NOT NULL DISABLE +CREATE TABLE test_nn_disable ( + rank NUMBER(2) DEFAULT 10 NOT NULL DISABLE, + score NUMBER(3) DEFAULT 0 NOT NULL DISABLE +); + +-- DEFAULT with NOT NULL ENABLE VALIDATE +CREATE TABLE test_nn_validate ( + amount NUMBER(10,2) DEFAULT 0.00 NOT NULL ENABLE VALIDATE, + tax NUMBER(10,2) DEFAULT 0.00 NOT NULL ENABLE VALIDATE +); + +-- DEFAULT with NOT NULL ENABLE NOVALIDATE +CREATE TABLE test_nn_novalidate ( + discount NUMBER(5,2) DEFAULT 0.00 NOT NULL ENABLE NOVALIDATE, + margin NUMBER(5,2) DEFAULT 0.10 NOT NULL ENABLE NOVALIDATE +); + +-- DEFAULT with NOT NULL DISABLE NOVALIDATE +CREATE TABLE test_nn_disable_noval ( + weight NUMBER(8,2) DEFAULT 0.0 NOT NULL DISABLE NOVALIDATE, + volume NUMBER(8,2) DEFAULT 0.0 NOT NULL DISABLE NOVALIDATE +); + +-- ============================================ +-- INLINE DEFAULT WITH RELY/NORELY +-- ============================================ + +-- DEFAULT with NOT NULL RELY +CREATE TABLE test_nn_rely ( + code NUMBER(10) DEFAULT 100 NOT NULL RELY, + ref_id NUMBER(10) DEFAULT 200 NOT NULL RELY +); + +-- DEFAULT with NOT NULL NORELY +CREATE TABLE test_nn_norely ( + sequence NUMBER(10) DEFAULT 1 NOT NULL NORELY, + counter NUMBER(10) DEFAULT 0 NOT NULL NORELY +); + +-- DEFAULT with NOT NULL ENABLE RELY +CREATE TABLE test_nn_enable_rely ( + batch_id NUMBER(10) DEFAULT 500 NOT NULL ENABLE RELY, + lot_number VARCHAR2(20) DEFAULT 'LOT' NOT NULL ENABLE RELY +); + +-- DEFAULT with NOT NULL DISABLE NORELY +CREATE TABLE test_nn_disable_norely ( + zone_id NUMBER(5) DEFAULT 1 NOT NULL DISABLE NORELY, + area_code VARCHAR2(10) DEFAULT 'AREA' NOT NULL DISABLE NORELY +); + +-- ============================================ +-- INLINE DEFAULT WITH DEFERRABLE OPTIONS +-- ============================================ + +-- DEFAULT with NOT NULL DEFERRABLE INITIALLY DEFERRED +CREATE TABLE test_nn_defer_deferred ( + order_id NUMBER(10) DEFAULT 1000 NOT NULL DEFERRABLE INITIALLY DEFERRED, + line_item NUMBER(5) DEFAULT 1 NOT NULL DEFERRABLE INITIALLY DEFERRED +); + +-- DEFAULT with NOT NULL DEFERRABLE INITIALLY IMMEDIATE +CREATE TABLE test_nn_defer_immediate ( + invoice_id NUMBER(10) DEFAULT 2000 NOT NULL DEFERRABLE INITIALLY IMMEDIATE, + payment_status VARCHAR2(20) DEFAULT 'PENDING' NOT NULL DEFERRABLE INITIALLY IMMEDIATE +); + +-- DEFAULT with NOT NULL NOT DEFERRABLE +CREATE TABLE test_nn_not_defer ( + ticket_id NUMBER(10) DEFAULT 3000 NOT NULL NOT DEFERRABLE, + issue_date DATE DEFAULT SYSDATE NOT NULL NOT DEFERRABLE +); + +-- ============================================ +-- INLINE DEFAULT ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes_inline ( + col_number NUMBER(10,2) DEFAULT 0.00, + col_varchar2 VARCHAR2(100) DEFAULT 'Text', + col_char CHAR(10) DEFAULT 'CHAR ', + col_date DATE DEFAULT SYSDATE, + col_timestamp TIMESTAMP DEFAULT SYSTIMESTAMP, + col_clob CLOB DEFAULT 'CLOB Default', + col_raw RAW(100) DEFAULT HEXTORAW('0000'), + col_float FLOAT DEFAULT 1.23, + col_integer INTEGER DEFAULT 42, + col_nvarchar2 NVARCHAR2(100) DEFAULT N'National Text', + col_nchar NCHAR(10) DEFAULT N'NCHAR ' +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- DEFAULT with complex expression +CREATE TABLE test_complex_expr ( + full_name VARCHAR2(200) DEFAULT USER || '_USER', + calc_field NUMBER(10) DEFAULT 100 * 2 +); + +-- Very long default string +CREATE TABLE test_long_default ( + description VARCHAR2(4000) DEFAULT 'This is a very long default value for testing purposes, exceeding typical lengths to check parser limits and storage implications in Oracle SQL', + comments VARCHAR2(4000) DEFAULT 'Another long default string to test maximum lengths and handling in table creation statements' +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_fk.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_fk.in.sql new file mode 100644 index 000000000..838b20f05 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_fk.in.sql @@ -0,0 +1,220 @@ +-- Oracle SQL Inline Foreign Key Constraint Test Cases +-- Test setup: Create parent tables first, followed by child tables with inline FOREIGN KEY constraints +CREATE TABLE departments ( + dept_id NUMBER(10), + dept_name VARCHAR2(100), + CONSTRAINT pk_dept_id PRIMARY KEY (dept_id) +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10), + supp_name VARCHAR2(100), + CONSTRAINT pk_supp_id PRIMARY KEY (supp_id) +); + +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100), + CONSTRAINT pk_cust_id PRIMARY KEY (cust_id) +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200), + CONSTRAINT pk_item_id PRIMARY KEY (item_id) +); + +CREATE TABLE complex_test ( + id NUMBER(10), + code VARCHAR2(20), + CONSTRAINT pk_complex_id PRIMARY KEY (id) +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + CONSTRAINT pk_datatype_number PRIMARY KEY (col_number) +); + +-- Create sequence for testing +CREATE SEQUENCE test_seq START WITH 1 INCREMENT BY 1; + +-- ============================================ +-- BASIC INLINE FOREIGN KEY CONSTRAINTS +-- ============================================ + +-- Simple inline FOREIGN KEY +CREATE TABLE employees ( + emp_id NUMBER(10), + emp_name VARCHAR2(100), + dept_id NUMBER(10) CONSTRAINT fk_emp_dept REFERENCES departments(dept_id), + manager_id NUMBER(10) CONSTRAINT fk_emp_manager REFERENCES employees(emp_id) +); + +-- FOREIGN KEY on VARCHAR2 column +CREATE TABLE orders ( + order_id NUMBER(10), + customer_id NUMBER(10) CONSTRAINT fk_order_cust REFERENCES customers(cust_id), + tracking_number VARCHAR2(50) CONSTRAINT fk_order_track REFERENCES shipments(tracking_number) +); + +-- FOREIGN KEY with NOT NULL +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10) NOT NULL CONSTRAINT fk_ship_cust REFERENCES customers(cust_id), + tracking_number VARCHAR2(50) CONSTRAINT pk_ship_track PRIMARY KEY +); + +-- FOREIGN KEY referencing composite key +CREATE TABLE complex_child ( + child_id NUMBER(10), + parent_id NUMBER(10) CONSTRAINT fk_child_complex REFERENCES complex_test(id), + parent_code VARCHAR2(20) CONSTRAINT fk_child_code REFERENCES complex_test(code) +); + +-- ============================================ +-- FOREIGN KEY WITH ENABLE/DISABLE +-- ============================================ + +-- FOREIGN KEY with ENABLE +CREATE TABLE test_enable ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_enable_dept REFERENCES departments(dept_id) ENABLE, + supp_id NUMBER(10) CONSTRAINT fk_enable_supp REFERENCES suppliers(supp_id) ENABLE +); + +-- FOREIGN KEY with DISABLE +CREATE TABLE test_disable ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_disable_dept REFERENCES departments(dept_id) DISABLE, + cust_id NUMBER(10) CONSTRAINT fk_disable_cust REFERENCES customers(cust_id) DISABLE +); + +-- FOREIGN KEY with ENABLE VALIDATE +CREATE TABLE test_validate ( + id NUMBER(10), + item_id NUMBER(10) CONSTRAINT fk_validate_item REFERENCES inventory(item_id) ENABLE VALIDATE, + supp_id NUMBER(10) CONSTRAINT fk_validate_supp REFERENCES suppliers(supp_id) ENABLE VALIDATE +); + +-- FOREIGN KEY with ENABLE NOVALIDATE +CREATE TABLE test_novalidate ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_noval_dept REFERENCES departments(dept_id) ENABLE NOVALIDATE, + cust_id NUMBER(10) CONSTRAINT fk_noval_cust REFERENCES customers(cust_id) ENABLE NOVALIDATE +); + +-- FOREIGN KEY with DISABLE NOVALIDATE +CREATE TABLE test_disable_novalidate ( + id NUMBER(10), + item_id NUMBER(10) CONSTRAINT fk_dis_noval_item REFERENCES inventory(item_id) DISABLE NOVALIDATE, + supp_id NUMBER(10) CONSTRAINT fk_dis_noval_supp REFERENCES suppliers(supp_id) DISABLE NOVALIDATE +); + +-- ============================================ +-- FOREIGN KEY WITH RELY/NORELY +-- ============================================ + +-- FOREIGN KEY with RELY +CREATE TABLE test_rely ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_rely_dept REFERENCES departments(dept_id) RELY, + cust_id NUMBER(10) CONSTRAINT fk_rely_cust REFERENCES customers(cust_id) RELY +); + +-- FOREIGN KEY with NORELY +CREATE TABLE test_norely ( + id NUMBER(10), + item_id NUMBER(10) CONSTRAINT fk_norely_item REFERENCES inventory(item_id) NORELY, + supp_id NUMBER(10) CONSTRAINT fk_norely_supp REFERENCES suppliers(supp_id) NORELY +); + +-- FOREIGN KEY with ENABLE RELY +CREATE TABLE test_enable_rely ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_en_rely_dept REFERENCES departments(dept_id) ENABLE RELY, + cust_id NUMBER(10) CONSTRAINT fk_en_rely_cust REFERENCES customers(cust_id) ENABLE RELY +); + +-- FOREIGN KEY with DISABLE NORELY +CREATE TABLE test_disable_norely ( + id NUMBER(10), + item_id NUMBER(10) CONSTRAINT fk_dis_norely_item REFERENCES inventory(item_id) DISABLE NORELY, + supp_id NUMBER(10) CONSTRAINT fk_dis_norely_supp REFERENCES suppliers(supp_id) DISABLE NORELY +); + +-- ============================================ +-- FOREIGN KEY WITH DEFERRABLE OPTIONS +-- ============================================ + +-- FOREIGN KEY with DEFERRABLE INITIALLY DEFERRED +CREATE TABLE test_deferrable_deferred ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_def_deferred_dept REFERENCES departments(dept_id) DEFERRABLE INITIALLY DEFERRED, + cust_id NUMBER(10) CONSTRAINT fk_def_deferred_cust REFERENCES customers(cust_id) DEFERRABLE INITIALLY DEFERRED +); + +-- FOREIGN KEY with DEFERRABLE INITIALLY IMMEDIATE +CREATE TABLE test_deferrable_immediate ( + id NUMBER(10), + item_id NUMBER(10) CONSTRAINT fk_def_immed_item REFERENCES inventory(item_id) DEFERRABLE INITIALLY IMMEDIATE, + supp_id NUMBER(10) CONSTRAINT fk_def_immed_supp REFERENCES suppliers(supp_id) DEFERRABLE INITIALLY IMMEDIATE +); + +-- FOREIGN KEY with NOT DEFERRABLE +CREATE TABLE test_not_deferrable ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_not_def_dept REFERENCES departments(dept_id) NOT DEFERRABLE, + cust_id NUMBER(10) CONSTRAINT fk_not_def_cust REFERENCES customers(cust_id) NOT DEFERRABLE +); + +-- ============================================ +-- FOREIGN KEY ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes_fk ( + id NUMBER(10), + col_number NUMBER(10,2) CONSTRAINT fk_dt_number REFERENCES test_datatypes(col_number), + col_varchar2 VARCHAR2(100) CONSTRAINT fk_dt_varchar2 REFERENCES test_datatypes(col_varchar2), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- FOREIGN KEY with self-referencing table +CREATE TABLE employees_self ( + emp_id NUMBER(10), + manager_id NUMBER(10) CONSTRAINT fk_self_emp REFERENCES employees_self(emp_id), + dept_id NUMBER(10) CONSTRAINT fk_self_dept REFERENCES departments(dept_id) +); + +-- FOREIGN KEY with composite key reference +CREATE TABLE order_details ( + order_id NUMBER(10), + item_id NUMBER(10) CONSTRAINT fk_detail_item REFERENCES inventory(item_id), + cust_id NUMBER(10) CONSTRAINT fk_detail_cust REFERENCES customers(cust_id) +); + +-- FOREIGN KEY with ON DELETE CASCADE +CREATE TABLE test_cascade ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_cascade_dept REFERENCES departments(dept_id) ON DELETE CASCADE, + supp_id NUMBER(10) CONSTRAINT fk_cascade_supp REFERENCES suppliers(supp_id) ON DELETE CASCADE +); + +-- FOREIGN KEY with ON DELETE SET NULL +CREATE TABLE test_set_null ( + id NUMBER(10), + dept_id NUMBER(10) CONSTRAINT fk_set_null_dept REFERENCES departments(dept_id) ON DELETE SET NULL, + cust_id NUMBER(10) CONSTRAINT fk_set_null_cust REFERENCES customers(cust_id) ON DELETE SET NULL +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_increment.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_increment.in.sql new file mode 100644 index 000000000..915a2bf80 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_increment.in.sql @@ -0,0 +1,93 @@ +-- Oracle SQL Inline GENERATED BY DEFAULT AS IDENTITY Test Cases +-- Test setup: Create tables with inline GENERATED BY DEFAULT AS IDENTITY constraints on different columns +CREATE TABLE customers ( + cust_id NUMBER GENERATED BY DEFAULT AS IDENTITY, + cust_name VARCHAR2(100) DEFAULT 'Unknown', + email VARCHAR2(100) DEFAULT 'noemail@example.com', + phone VARCHAR2(20) DEFAULT 'N/A' +); + +CREATE TABLE inventory ( + item_id NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 100 INCREMENT BY 1), + item_name VARCHAR2(200) DEFAULT 'Default Item', + price NUMBER(10,2) DEFAULT 0.00, + category VARCHAR2(50) DEFAULT 'Misc' +); + +CREATE TABLE shipments ( + ship_id NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 1000 INCREMENT BY 10), + customer_id NUMBER(10) DEFAULT 1, + ship_date DATE DEFAULT SYSDATE, + total_amount NUMBER(12,2) DEFAULT 0.00 +); + +CREATE TABLE departments ( + dept_id NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 1 INCREMENT BY 2), + dept_name VARCHAR2(100) DEFAULT 'General', + manager_id NUMBER(10) DEFAULT 0, + budget NUMBER(12,2) DEFAULT 10000.00 +); + +CREATE TABLE suppliers ( + supp_id NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 500 INCREMENT BY 5), + supp_name VARCHAR2(100) DEFAULT 'Anonymous', + contact VARCHAR2(100) DEFAULT 'Contact', + credit_limit NUMBER(10,2) DEFAULT 5000.00 +); + +CREATE TABLE test_datatypes ( + col_number NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 10 INCREMENT BY 1), + col_varchar2 VARCHAR2(100) DEFAULT 'Default Text', + col_char CHAR(10) DEFAULT 'DEFAULT ', + col_date DATE DEFAULT SYSDATE +); + +-- ============================================ +-- BASIC INLINE IDENTITY CONSTRAINTS +-- ============================================ + +-- Simple GENERATED BY DEFAULT AS IDENTITY +CREATE TABLE test_basic ( + id NUMBER GENERATED BY DEFAULT AS IDENTITY, + value NUMBER(10) DEFAULT 100 +); + +-- IDENTITY with default settings +CREATE TABLE test_status ( + status_id NUMBER GENERATED BY DEFAULT AS IDENTITY, + status VARCHAR2(20) DEFAULT 'OPEN' +); + +-- IDENTITY with NOT NULL +CREATE TABLE test_not_null ( + record_id NUMBER GENERATED BY DEFAULT AS IDENTITY NOT NULL, + description VARCHAR2(200) DEFAULT 'No description' NOT NULL +); + +-- ============================================ +-- IDENTITY WITH CUSTOM OPTIONS +-- ============================================ + +-- IDENTITY with START WITH +CREATE TABLE test_start_with ( + order_id NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 1000), + order_code VARCHAR2(20) DEFAULT 'ORD000' +); + +-- IDENTITY with INCREMENT BY +CREATE TABLE test_increment ( + ticket_id NUMBER GENERATED BY DEFAULT AS IDENTITY (INCREMENT BY 5), + ticket_type VARCHAR2(20) DEFAULT 'STANDARD' +); + +-- IDENTITY with MAXVALUE +CREATE TABLE test_maxvalue ( + ref_id NUMBER GENERATED BY DEFAULT AS IDENTITY (MAXVALUE 99999), + ref_name VARCHAR2(100) DEFAULT 'Reference' +); + +-- IDENTITY with MINVALUE +CREATE TABLE test_minvalue ( + batch_id NUMBER GENERATED BY DEFAULT AS IDENTITY (MINVALUE 1), + batch_name VARCHAR2(50) DEFAULT 'Batch' +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_not_null.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_not_null.in.sql new file mode 100644 index 000000000..125514ab3 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_not_null.in.sql @@ -0,0 +1,196 @@ +-- Oracle SQL Inline NOT NULL Constraint Test Cases +-- Test setup: Create tables with inline NOT NULL constraints on different columns +CREATE TABLE customers ( + cust_id NUMBER(10) NOT NULL, + cust_name VARCHAR2(100) NOT NULL, + email VARCHAR2(100) NOT NULL, + phone VARCHAR2(20) NOT NULL +); + +CREATE TABLE inventory ( + item_id NUMBER(10) NOT NULL, + item_name VARCHAR2(200) NOT NULL, + price NUMBER(10,2) NOT NULL, + category VARCHAR2(50) NOT NULL +); + +CREATE TABLE shipments ( + ship_id NUMBER(10) NOT NULL, + customer_id NUMBER(10) NOT NULL, + ship_date DATE NOT NULL, + total_amount NUMBER(12,2) NOT NULL +); + +CREATE TABLE departments ( + dept_id NUMBER(10) NOT NULL, + dept_name VARCHAR2(100) NOT NULL, + manager_id NUMBER(10) NOT NULL, + budget NUMBER(12,2) NOT NULL +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10) NOT NULL, + supp_name VARCHAR2(100) NOT NULL, + contact VARCHAR2(100) NOT NULL, + credit_limit NUMBER(10,2) NOT NULL +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2) NOT NULL, + col_varchar2 VARCHAR2(100) NOT NULL, + col_char CHAR(10) NOT NULL, + col_date DATE NOT NULL, + col_timestamp TIMESTAMP NOT NULL, + col_clob CLOB NOT NULL, + col_raw RAW(100) NOT NULL, + col_float FLOAT NOT NULL, + col_integer INTEGER NOT NULL, + col_nvarchar2 NVARCHAR2(100) NOT NULL, + col_nchar NCHAR(10) NOT NULL +); + +-- ============================================ +-- BASIC INLINE NOT NULL CONSTRAINTS +-- ============================================ + +-- Simple NOT NULL constraint +CREATE TABLE test_basic ( + id NUMBER(10) NOT NULL, + value NUMBER(10) NOT NULL +); + +-- NOT NULL on VARCHAR2 +CREATE TABLE test_status ( + status VARCHAR2(20) NOT NULL, + code VARCHAR2(10) NOT NULL +); + +-- NOT NULL with named constraint +CREATE TABLE test_named ( + record_id NUMBER(10) CONSTRAINT nn_record_id NOT NULL, + description VARCHAR2(200) CONSTRAINT nn_description NOT NULL +); + +-- NOT NULL on DATE +CREATE TABLE test_dates ( + event_date DATE NOT NULL, + end_date DATE NOT NULL +); + +-- ============================================ +-- NOT NULL WITH ENABLE/DISABLE +-- ============================================ + +-- NOT NULL with ENABLE +CREATE TABLE test_enable ( + level NUMBER(2) NOT NULL ENABLE, + rating NUMBER(2) NOT NULL ENABLE +); + +-- NOT NULL with DISABLE +CREATE TABLE test_disable ( + priority NUMBER(2) NOT NULL DISABLE, + rank NUMBER(2) NOT NULL DISABLE +); + +-- NOT NULL with ENABLE VALIDATE +CREATE TABLE test_validate ( + amount NUMBER(10,2) NOT NULL ENABLE VALIDATE, + tax NUMBER(10,2) NOT NULL ENABLE VALIDATE +); + +-- NOT NULL with ENABLE NOVALIDATE +CREATE TABLE test_novalidate ( + discount NUMBER(10,2) NOT NULL ENABLE NOVALIDATE, + margin NUMBER(10,2) NOT NULL ENABLE NOVALIDATE +); + +-- NOT NULL with DISABLE NOVALIDATE +CREATE TABLE test_disable_novalidate ( + weight NUMBER(8,2) NOT NULL DISABLE NOVALIDATE, + volume NUMBER(8,2) NOT NULL DISABLE NOVALIDATE +); + +-- ============================================ +-- NOT NULL WITH RELY/NORELY +-- ============================================ + +-- NOT NULL with RELY +CREATE TABLE test_rely ( + code NUMBER(10) NOT NULL RELY, + ref_id NUMBER(10) NOT NULL RELY +); + +-- NOT NULL with NORELY +CREATE TABLE test_norely ( + sequence NUMBER(10) NOT NULL NORELY, + counter NUMBER(10) NOT NULL NORELY +); + +-- NOT NULL with ENABLE RELY +CREATE TABLE test_enable_rely ( + batch_id NUMBER(10) NOT NULL ENABLE RELY, + lot_number VARCHAR2(20) NOT NULL ENABLE RELY +); + +-- NOT NULL with DISABLE NORELY +CREATE TABLE test_disable_norely ( + zone_id NUMBER(5) NOT NULL DISABLE NORELY, + area_code VARCHAR2(10) NOT NULL DISABLE NORELY +); + +-- ============================================ +-- NOT NULL WITH DEFERRABLE OPTIONS +-- ============================================ + +-- NOT NULL with DEFERRABLE INITIALLY DEFERRED +CREATE TABLE test_deferrable_deferred ( + order_id NUMBER(10) NOT NULL DEFERRABLE INITIALLY DEFERRED, + line_item NUMBER(5) NOT NULL DEFERRABLE INITIALLY DEFERRED +); + +-- NOT NULL with DEFERRABLE INITIALLY IMMEDIATE +CREATE TABLE test_deferrable_immediate ( + invoice_id NUMBER(10) NOT NULL DEFERRABLE INITIALLY IMMEDIATE, + payment_status VARCHAR2(20) NOT NULL DEFERRABLE INITIALLY IMMEDIATE +); + +-- NOT NULL with NOT DEFERRABLE +CREATE TABLE test_not_deferrable ( + ticket_id NUMBER(10) NOT NULL NOT DEFERRABLE, + issue_date DATE NOT NULL NOT DEFERRABLE +); + +-- ============================================ +-- NOT NULL ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes_inline ( + col_number NUMBER(10,2) NOT NULL, + col_varchar2 VARCHAR2(100) NOT NULL, + col_char CHAR(10) NOT NULL, + col_date DATE NOT NULL, + col_timestamp TIMESTAMP NOT NULL, + col_clob CLOB NOT NULL, + col_raw RAW(100) NOT NULL, + col_float FLOAT NOT NULL, + col_integer INTEGER NOT NULL, + col_nvarchar2 NVARCHAR2(100) NOT NULL, + col_nchar NCHAR(10) NOT NULL +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- NOT NULL with named constraint and long name +CREATE TABLE test_long_name ( + identifier NUMBER(10) CONSTRAINT nn_very_long_constraint_name_for_testing_parser_limits NOT NULL, + record_code VARCHAR2(20) CONSTRAINT nn_record_code_long NOT NULL +); + +-- NOT NULL with combined options +CREATE TABLE test_complex ( + score NUMBER(3) NOT NULL ENABLE VALIDATE RELY, + rating VARCHAR2(20) NOT NULL DISABLE NOVALIDATE NORELY +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_pk.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_pk.in.sql new file mode 100644 index 000000000..a005f890f --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_pk.in.sql @@ -0,0 +1,196 @@ +-- Oracle SQL Inline PRIMARY KEY Constraint Test Cases +-- Test setup: Create tables with inline PRIMARY KEY constraints on different columns +CREATE TABLE customers ( + cust_id NUMBER(10) PRIMARY KEY, + cust_name VARCHAR2(100), + email VARCHAR2(100), + phone VARCHAR2(20) +); + +CREATE TABLE inventory ( + item_id NUMBER(10) PRIMARY KEY, + item_name VARCHAR2(200), + price NUMBER(10,2), + category VARCHAR2(50) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10) PRIMARY KEY, + customer_id NUMBER(10), + ship_date DATE, + total_amount NUMBER(12,2) +); + +CREATE TABLE departments ( + dept_id NUMBER(10) PRIMARY KEY, + dept_name VARCHAR2(100), + manager_id NUMBER(10), + budget NUMBER(12,2) +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10) PRIMARY KEY, + supp_name VARCHAR2(100), + contact VARCHAR2(100), + credit_limit NUMBER(10,2) +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2) PRIMARY KEY, + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +-- ============================================ +-- BASIC INLINE PRIMARY KEY CONSTRAINTS +-- ============================================ + +-- Simple PRIMARY KEY constraint +CREATE TABLE test_basic ( + id NUMBER(10) PRIMARY KEY, + value NUMBER(10) +); + +-- PRIMARY KEY with named constraint +CREATE TABLE test_named ( + code NUMBER(10) CONSTRAINT pk_code PRIMARY KEY, + description VARCHAR2(200) +); + +-- PRIMARY KEY on VARCHAR2 +CREATE TABLE test_status ( + status_code VARCHAR2(20) CONSTRAINT pk_status_code PRIMARY KEY, + status_desc VARCHAR2(100) +); + +-- PRIMARY KEY on DATE +CREATE TABLE test_dates ( + event_date DATE CONSTRAINT pk_event_date PRIMARY KEY, + event_desc VARCHAR2(200) +); + +-- ============================================ +-- PRIMARY KEY WITH ENABLE/DISABLE +-- ============================================ + +-- PRIMARY KEY with ENABLE +CREATE TABLE test_enable ( + level NUMBER(2) PRIMARY KEY ENABLE, + level_desc VARCHAR2(50) +); + +-- PRIMARY KEY with DISABLE +CREATE TABLE test_disable ( + priority NUMBER(2) PRIMARY KEY DISABLE, + priority_desc VARCHAR2(50) +); + +-- PRIMARY KEY with ENABLE VALIDATE +CREATE TABLE test_validate ( + amount NUMBER(10,2) PRIMARY KEY ENABLE VALIDATE, + amount_desc VARCHAR2(100) +); + +-- PRIMARY KEY with ENABLE NOVALIDATE +CREATE TABLE test_novalidate ( + discount NUMBER(10,2) PRIMARY KEY ENABLE NOVALIDATE, + discount_desc VARCHAR2(100) +); + +-- PRIMARY KEY with DISABLE NOVALIDATE +CREATE TABLE test_disable_novalidate ( + weight NUMBER(8,2) PRIMARY KEY DISABLE NOVALIDATE, + weight_desc VARCHAR2(100) +); + +-- ============================================ +-- PRIMARY KEY WITH RELY/NORELY +-- ============================================ + +-- PRIMARY KEY with RELY +CREATE TABLE test_rely ( + code NUMBER(10) PRIMARY KEY RELY, + code_desc VARCHAR2(50) +); + +-- PRIMARY KEY with NORELY +CREATE TABLE test_norely ( + sequence NUMBER(10) PRIMARY KEY NORELY, + sequence_desc VARCHAR2(50) +); + +-- PRIMARY KEY with ENABLE RELY +CREATE TABLE test_enable_rely ( + batch_id NUMBER(10) PRIMARY KEY ENABLE RELY, + batch_desc VARCHAR2(50) +); + +-- PRIMARY KEY with DISABLE NORELY +CREATE TABLE test_disable_norely ( + zone_id NUMBER(5) PRIMARY KEY DISABLE NORELY, + zone_desc VARCHAR2(50) +); + +-- ============================================ +-- PRIMARY KEY WITH DEFERRABLE OPTIONS +-- ============================================ + +-- PRIMARY KEY with DEFERRABLE INITIALLY DEFERRED +CREATE TABLE test_deferrable_deferred ( + order_id NUMBER(10) PRIMARY KEY DEFERRABLE INITIALLY DEFERRED, + order_desc VARCHAR2(100) +); + +-- PRIMARY KEY with DEFERRABLE INITIALLY IMMEDIATE +CREATE TABLE test_deferrable_immediate ( + invoice_id NUMBER(10) PRIMARY KEY DEFERRABLE INITIALLY IMMEDIATE, + invoice_desc VARCHAR2(100) +); + +-- PRIMARY KEY with NOT DEFERRABLE +CREATE TABLE test_not_deferrable ( + ticket_id NUMBER(10) PRIMARY KEY NOT DEFERRABLE, + ticket_desc VARCHAR2(100) +); + +-- ============================================ +-- PRIMARY KEY ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes_inline ( + col_number NUMBER(10,2) PRIMARY KEY, + col_varchar2 VARCHAR2(100), + col_char CHAR(10) PRIMARY KEY, + col_date DATE PRIMARY KEY, + col_timestamp TIMESTAMP PRIMARY KEY, + col_clob CLOB PRIMARY KEY, + col_raw RAW(100) PRIMARY KEY, + col_float FLOAT PRIMARY KEY, + col_integer INTEGER PRIMARY KEY, + col_nvarchar2 NVARCHAR2(100) PRIMARY KEY, + col_nchar NCHAR(10) PRIMARY KEY +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- PRIMARY KEY with named constraint and long name +CREATE TABLE test_long_name ( + identifier NUMBER(10) CONSTRAINT pk_very_long_constraint_name_for_testing_parser_limits PRIMARY KEY, + record_code VARCHAR2(20) +); + +-- PRIMARY KEY with combined options +CREATE TABLE test_complex ( + score NUMBER(3) PRIMARY KEY ENABLE VALIDATE RELY, + rating VARCHAR2(20) PRIMARY KEY DISABLE NOVALIDATE NORELY +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_unique.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_unique.in.sql new file mode 100644 index 000000000..af552ccb5 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/column_def_unique.in.sql @@ -0,0 +1,196 @@ +-- Oracle SQL Inline UNIQUE Constraint Test Cases +-- Test setup: Create tables with inline UNIQUE constraints on different columns +CREATE TABLE customers ( + cust_id NUMBER(10) UNIQUE, + cust_name VARCHAR2(100) UNIQUE, + email VARCHAR2(100) UNIQUE, + phone VARCHAR2(20) UNIQUE +); + +CREATE TABLE inventory ( + item_id NUMBER(10) UNIQUE, + item_name VARCHAR2(200) UNIQUE, + price NUMBER(10,2), + sku VARCHAR2(50) UNIQUE +); + +CREATE TABLE shipments ( + ship_id NUMBER(10) UNIQUE, + customer_id NUMBER(10), + ship_date DATE UNIQUE, + tracking_number VARCHAR2(50) UNIQUE +); + +CREATE TABLE departments ( + dept_id NUMBER(10) UNIQUE, + dept_name VARCHAR2(100) UNIQUE, + manager_id NUMBER(10) UNIQUE, + budget NUMBER(12,2) +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10) UNIQUE, + supp_name VARCHAR2(100) UNIQUE, + contact VARCHAR2(100) UNIQUE, + ssn VARCHAR2(11) UNIQUE +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2) UNIQUE, + col_varchar2 VARCHAR2(100) UNIQUE, + col_char CHAR(10) UNIQUE, + col_date DATE UNIQUE, + col_timestamp TIMESTAMP UNIQUE, + col_clob CLOB UNIQUE, + col_raw RAW(100) UNIQUE, + col_float FLOAT UNIQUE, + col_integer INTEGER UNIQUE, + col_nvarchar2 NVARCHAR2(100) UNIQUE, + col_nchar NCHAR(10) UNIQUE +); + +-- ============================================ +-- BASIC INLINE UNIQUE CONSTRAINTS +-- ============================================ + +-- Simple UNIQUE constraint +CREATE TABLE test_basic ( + id NUMBER(10) UNIQUE, + value NUMBER(10) UNIQUE +); + +-- UNIQUE with named constraint +CREATE TABLE test_named ( + code VARCHAR2(20) CONSTRAINT uk_code UNIQUE, + ref_id NUMBER(10) CONSTRAINT uk_ref_id UNIQUE +); + +-- UNIQUE on VARCHAR2 +CREATE TABLE test_status ( + status VARCHAR2(20) CONSTRAINT uk_status UNIQUE, + status_code VARCHAR2(10) CONSTRAINT uk_status_code UNIQUE +); + +-- UNIQUE on DATE +CREATE TABLE test_dates ( + event_date DATE CONSTRAINT uk_event_date UNIQUE, + end_date DATE CONSTRAINT uk_end_date UNIQUE +); + +-- ============================================ +-- UNIQUE WITH ENABLE/DISABLE +-- ============================================ + +-- UNIQUE with ENABLE +CREATE TABLE test_enable ( + level NUMBER(2) UNIQUE ENABLE, + rating NUMBER(2) UNIQUE ENABLE +); + +-- UNIQUE with DISABLE +CREATE TABLE test_disable ( + priority NUMBER(2) UNIQUE DISABLE, + rank NUMBER(2) UNIQUE DISABLE +); + +-- UNIQUE with ENABLE VALIDATE +CREATE TABLE test_validate ( + amount NUMBER(10,2) UNIQUE ENABLE VALIDATE, + tax NUMBER(10,2) UNIQUE ENABLE VALIDATE +); + +-- UNIQUE with ENABLE NOVALIDATE +CREATE TABLE test_novalidate ( + discount NUMBER(10,2) UNIQUE ENABLE NOVALIDATE, + margin NUMBER(10,2) UNIQUE ENABLE NOVALIDATE +); + +-- UNIQUE with DISABLE NOVALIDATE +CREATE TABLE test_disable_novalidate ( + weight NUMBER(8,2) UNIQUE DISABLE NOVALIDATE, + volume NUMBER(8,2) UNIQUE DISABLE NOVALIDATE +); + +-- ============================================ +-- UNIQUE WITH RELY/NORELY +-- ============================================ + +-- UNIQUE with RELY +CREATE TABLE test_rely ( + code NUMBER(10) UNIQUE RELY, + ref_id NUMBER(10) UNIQUE RELY +); + +-- UNIQUE with NORELY +CREATE TABLE test_norely ( + sequence NUMBER(10) UNIQUE NORELY, + counter NUMBER(10) UNIQUE NORELY +); + +-- UNIQUE with ENABLE RELY +CREATE TABLE test_enable_rely ( + batch_id NUMBER(10) UNIQUE ENABLE RELY, + lot_number VARCHAR2(20) UNIQUE ENABLE RELY +); + +-- UNIQUE with DISABLE NORELY +CREATE TABLE test_disable_norely ( + zone_id NUMBER(5) UNIQUE DISABLE NORELY, + area_code VARCHAR2(10) UNIQUE DISABLE NORELY +); + +-- ============================================ +-- UNIQUE WITH DEFERRABLE OPTIONS +-- ============================================ + +-- UNIQUE with DEFERRABLE INITIALLY DEFERRED +CREATE TABLE test_deferrable_deferred ( + order_id NUMBER(10) UNIQUE DEFERRABLE INITIALLY DEFERRED, + line_item NUMBER(5) UNIQUE DEFERRABLE INITIALLY DEFERRED +); + +-- UNIQUE with DEFERRABLE INITIALLY IMMEDIATE +CREATE TABLE test_deferrable_immediate ( + invoice_id NUMBER(10) UNIQUE DEFERRABLE INITIALLY IMMEDIATE, + payment_status VARCHAR2(20) UNIQUE DEFERRABLE INITIALLY IMMEDIATE +); + +-- UNIQUE with NOT DEFERRABLE +CREATE TABLE test_not_deferrable ( + ticket_id NUMBER(10) UNIQUE NOT DEFERRABLE, + issue_date DATE UNIQUE NOT DEFERRABLE +); + +-- ============================================ +-- UNIQUE ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes_inline ( + col_number NUMBER(10,2) UNIQUE, + col_varchar2 VARCHAR2(100) UNIQUE, + col_char CHAR(10) UNIQUE, + col_date DATE UNIQUE, + col_timestamp TIMESTAMP UNIQUE, + col_clob CLOB UNIQUE, + col_raw RAW(100) UNIQUE, + col_float FLOAT UNIQUE, + col_integer INTEGER UNIQUE, + col_nvarchar2 NVARCHAR2(100) UNIQUE, + col_nchar NCHAR(10) UNIQUE +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- UNIQUE with named constraint and long name +CREATE TABLE test_long_name ( + identifier NUMBER(10) CONSTRAINT uk_very_long_constraint_name_for_testing_parser_limits UNIQUE, + record_code VARCHAR2(20) CONSTRAINT uk_record_code_long UNIQUE +); + +-- UNIQUE with combined options +CREATE TABLE test_complex ( + score NUMBER(3) UNIQUE ENABLE VALIDATE RELY, + rating VARCHAR2(20) UNIQUE DISABLE NOVALIDATE NORELY +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/comment.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/comment.in.sql new file mode 100644 index 000000000..f3c1ec80f --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/comment.in.sql @@ -0,0 +1,6 @@ +CREATE TABLE customers ( + name VARCHAR(20) +); + +COMMENT ON TABLE customers IS 'This table stores customer data.'; +COMMENT ON COLUMN customers.name IS 'The name of the customer.'; diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/create_index.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/create_index.in.sql new file mode 100644 index 000000000..c2fcda65a --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/create_index.in.sql @@ -0,0 +1,123 @@ +-- Oracle SQL CREATE INDEX Test Cases +-- Test setup: Create tables to support index creation with minimal required fields +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100), + email VARCHAR2(100), + phone VARCHAR2(20), + status VARCHAR2(20), + reg_date DATE, + region VARCHAR2(50), + credit_limit NUMBER(10,2) +); + +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200), + price NUMBER(10,2), + category VARCHAR2(50), + sku VARCHAR2(50), + stock_level NUMBER(10), + warehouse_id NUMBER(10), + supplier_id NUMBER(10) +); + +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10), + ship_date DATE, + total_amount NUMBER(12,2), + tracking_number VARCHAR2(50), + carrier VARCHAR2(100), + priority NUMBER(2) +); + +CREATE TABLE departments ( + dept_id NUMBER(10), + dept_name VARCHAR2(100), + manager_id NUMBER(10), + location VARCHAR2(50) +); + +CREATE TABLE suppliers ( + supp_id NUMBER(10), + supp_name VARCHAR2(100), + contact VARCHAR2(100), + city VARCHAR2(50) +); + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +-- ============================================ +-- BASIC INDEX CREATION +-- ============================================ + +-- Simple B-tree index (default type, named) +CREATE INDEX idx_cust_id ON customers(cust_id); + +-- Simple UNIQUE index +CREATE UNIQUE INDEX idx_cust_email ON customers(email); + +-- Bitmap index (suitable for low-cardinality columns) +CREATE BITMAP INDEX idx_cust_status ON customers(status); + +-- ============================================ +-- COMPOSITE INDEXES +-- ============================================ + +-- Composite B-tree index (multiple columns) +CREATE INDEX idx_inv_item_price ON inventory(item_name, price); + +-- Composite UNIQUE index +CREATE UNIQUE INDEX idx_ship_cust_date ON shipments(customer_id, ship_date); + +-- Composite bitmap index (for low-cardinality columns) +CREATE BITMAP INDEX idx_inv_category_stock ON inventory(category, stock_level); + +-- ============================================ +-- FUNCTION-BASED INDEXES +-- ============================================ + +-- Function-based B-tree index +CREATE INDEX idx_cust_name_upper ON customers(UPPER(cust_name)); + +-- Function-based UNIQUE index +CREATE UNIQUE INDEX idx_cust_email_lower ON customers(LOWER(email)); + +-- Function-based composite index +CREATE INDEX idx_inv_name_price ON inventory(UPPER(item_name), price * 1.1); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Index with very long name +CREATE INDEX idx_very_long_index_name_for_testing_parser_limits ON customers(cust_id); + +-- Bitmap index on high-cardinality column (unusual but valid) +CREATE BITMAP INDEX idx_cust_id_bitmap ON customers(cust_id); + +-- Function-based index with complex expression +CREATE INDEX idx_cust_complex ON customers(TO_CHAR(reg_date, 'YYYYMM') || cust_name); + +-- Index on nullable column +CREATE INDEX idx_ship_nullable ON shipments(customer_id); + +-- Composite index with multiple data types +CREATE INDEX idx_dt_mixed ON test_datatypes(col_number, col_varchar2, col_date); + +-- Note: Hash indexes are not directly supported in Oracle; B-tree is used instead +-- For hash-like behavior, Oracle uses hash-partitioned indexes or function-based indexes +CREATE INDEX idx_inv_hash_like ON inventory(ORA_HASH(item_name)); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/create_table.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/create_table.in.sql new file mode 100644 index 000000000..48d9d81be --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/create_table.in.sql @@ -0,0 +1,317 @@ +-- Oracle SQL CREATE TABLE Test Cases with Various Table Names +-- Test cases covering table creation with different naming conventions, including schema names, special characters, quoted identifiers, and edge cases +-- Each table uses unique columns and configurations to avoid repetition, with minimal constraints to focus on table naming + +-- ============================================ +-- BASIC TABLE NAMING +-- ============================================ + +-- Simple table name without schema +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100) +); + +-- Table name with schema prefix +CREATE TABLE hr.employees ( + emp_id NUMBER(10), + emp_name VARCHAR2(100) +); + +-- Table name with uppercase +CREATE TABLE INVENTORY ( + item_id NUMBER(10), + item_name VARCHAR2(200) +); + +-- Table name with lowercase +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10) +); + +-- ============================================ +-- TABLE NAMES WITH SPECIAL CHARACTERS +-- ============================================ + +-- Table name with spaces (quoted identifier) +CREATE TABLE "Customer Data" ( + data_id NUMBER(10), + data_value VARCHAR2(100) +); + +-- Table name with special characters (e.g., hyphen, underscore, dollar) +CREATE TABLE "order-details$test" ( + order_id NUMBER(10), + detail_desc VARCHAR2(200) +); + +-- Table name with mixed special characters +CREATE TABLE "sales#report@2023" ( + report_id NUMBER(10), + report_date DATE +); + +-- Table name with non-ASCII characters +CREATE TABLE "客户信息" ( + client_id NUMBER(10), + client_name NVARCHAR2(100) +); + +-- ============================================ +-- TABLE NAMES WITH SCHEMA AND SPECIAL CHARACTERS +-- ============================================ + +-- Schema with simple table name +CREATE TABLE sales.departments ( + dept_id NUMBER(10), + dept_name VARCHAR2(100) +); + +-- Schema with quoted table name containing spaces +CREATE TABLE hr."Employee Records" ( + record_id NUMBER(10), + record_status VARCHAR2(20) +); + +-- Schema with special characters in table name +CREATE TABLE finance."budget-report#2023" ( + budget_id NUMBER(10), + amount NUMBER(12,2) +); + +-- Schema with non-ASCII table name +CREATE TABLE global."製品データ" ( + product_id NUMBER(10), + product_name NVARCHAR2(200) +); + +-- ============================================ +-- LONG AND COMPLEX TABLE NAMES +-- ============================================ + +-- Maximum length table name (30 bytes in Oracle 12c and earlier, 128 bytes in 12.2+) +CREATE TABLE "very_long_table_name_for_testing_parser_limits_1234567890" ( + id NUMBER(10), + description VARCHAR2(4000) +); + +-- Table name with mixed case and spaces +CREATE TABLE "Sales Report Data 2023" ( + sales_id NUMBER(10), + sales_amount NUMBER(12,2) +); + +-- Table name with multiple special characters +CREATE TABLE "test@#$%^&*_table!" ( + test_id NUMBER(10), + test_value VARCHAR2(100) +); + +-- ============================================ +-- TABLE NAMES WITH CONSTRAINTS +-- ============================================ + +-- Table with PRIMARY KEY and special name +CREATE TABLE "project_tasks#1" ( + task_id NUMBER(10) PRIMARY KEY, + task_name VARCHAR2(100) +); + +-- Table with FOREIGN KEY and quoted name +CREATE TABLE "order details" ( + order_id NUMBER(10), + cust_id NUMBER(10) CONSTRAINT fk_order_cust REFERENCES customers(cust_id), + order_date DATE +); + +-- Table with NOT NULL and schema-qualified special name +CREATE TABLE hr."Employee_Contracts_2023" ( + contract_id NUMBER(10) NOT NULL, + emp_name VARCHAR2(100) NOT NULL +); + +-- Table with DEFAULT and non-ASCII name +CREATE TABLE "供应商数据" ( + supp_id NUMBER(10), + supp_name VARCHAR2(100) DEFAULT 'Anonymous' +); + +-- ============================================ +-- TABLE NAMES WITH STORAGE AND PARTITIONING +-- ============================================ + +-- Table with TABLESPACE and quoted name +CREATE TABLE "Sales Data Archive" ( + archive_id NUMBER(10), + archive_date DATE +) TABLESPACE archive_ts; + +-- Range-partitioned table with special name +CREATE TABLE "orders-2023-range" ( + order_id NUMBER(10), + order_date DATE, + total_amount NUMBER(12,2) +) PARTITION BY RANGE (order_date) ( + PARTITION p1 VALUES LESS THAN (TO_DATE('2023-01-01', 'YYYY-MM-DD')), + PARTITION p2 VALUES LESS THAN (TO_DATE('2024-01-01', 'YYYY-MM-DD')), + PARTITION p3 VALUES LESS THAN (MAXVALUE) +); + +-- List-partitioned table with schema and special name +CREATE TABLE sales."Customer_Regions#List" ( + cust_id NUMBER(10), + region VARCHAR2(50) +) PARTITION BY LIST (region) ( + PARTITION p_north VALUES ('North'), + PARTITION p_south VALUES ('South'), + PARTITION p_east VALUES ('East'), + PARTITION p_west VALUES ('West') +); + +-- Hash-partitioned table with quoted name +CREATE TABLE "inventory_hash@test" ( + item_id NUMBER(10), + item_name VARCHAR2(200) +) PARTITION BY HASH (item_id) ( + PARTITION p1, + PARTITION p2, + PARTITION p3, + PARTITION p4 +); + +-- ============================================ +-- TABLE NAMES WITH TEMPORARY AND EXTERNAL OPTIONS +-- ============================================ + +-- Global temporary table with quoted name +CREATE GLOBAL TEMPORARY TABLE "Temp Customer Data" ( + temp_id NUMBER(10), + temp_name VARCHAR2(100) +) ON COMMIT PRESERVE ROWS; + +-- External table with special name +CREATE TABLE "external_logs#2023" ( + log_id NUMBER(10), + log_message VARCHAR2(4000) +) ORGANIZATION EXTERNAL ( + TYPE ORACLE_LOADER + DEFAULT DIRECTORY data_dir + ACCESS PARAMETERS ( + RECORDS DELIMITED BY NEWLINE + FIELDS TERMINATED BY ',' + ) + LOCATION ('logs.csv') +); + +-- Index-organized table with schema and special name +CREATE TABLE hr."Employee_IOT@Data" ( + emp_id NUMBER(10) PRIMARY KEY, + emp_name VARCHAR2(100) +) ORGANIZATION INDEX; + +-- ============================================ +-- TABLE NAMES WITH CONSTRAINT OPTIONS +-- ============================================ + +-- Table with ENABLE VALIDATE and quoted name +CREATE TABLE "Project Tasks#Validated" ( + task_id NUMBER(10) PRIMARY KEY ENABLE VALIDATE, + task_name VARCHAR2(100) NOT NULL ENABLE VALIDATE +); + +-- Table with DISABLE NOVALIDATE and special name +CREATE TABLE "Tasks#NonValidated" ( + task_id NUMBER(10) PRIMARY KEY DISABLE NOVALIDATE, + priority NUMBER(2) NOT NULL DISABLE NOVALIDATE +); + +-- Table with RELY and schema-qualified name +CREATE TABLE sales."Orders_Rely#2023" ( + order_id NUMBER(10) PRIMARY KEY RELY, + order_amount NUMBER(12,2) NOT NULL RELY +); + +-- Table with NORELY and quoted name +CREATE TABLE "Suppliers_Norely@Data" ( + supp_id NUMBER(10) PRIMARY KEY NORELY, + supp_contact VARCHAR2(100) NOT NULL NORELY +); + +-- Table with DEFERRABLE and special name +CREATE TABLE "Contracts@Defer" ( + contract_id NUMBER(10) PRIMARY KEY DEFERRABLE INITIALLY DEFERRED, + contract_name VARCHAR2(100) NOT NULL DEFERRABLE INITIALLY DEFERRED +); + +-- Table with NOT DEFERRABLE and quoted name +CREATE TABLE "Tickets#NonDefer" ( + ticket_id NUMBER(10) PRIMARY KEY NOT DEFERRABLE, + ticket_type VARCHAR2(20) NOT NULL NOT DEFERRABLE +); + +-- ============================================ +-- TABLE NAMES WITH DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE "Test Data Types#2023" ( + col_number NUMBER(10,2) NOT NULL, + col_varchar2 VARCHAR2(100) UNIQUE, + col_char CHAR(10) DEFAULT 'DEFAULT ', + col_date DATE PRIMARY KEY, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10) +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Table with maximum length name (128 bytes in Oracle 12.2+) +CREATE TABLE "very_long_table_name_1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678" ( + id NUMBER(10), + value VARCHAR2(100) +); + +-- Table with reserved word as name (quoted) +CREATE TABLE "TABLE" ( + table_id NUMBER(10), + table_name VARCHAR2(100) +); + +-- Table with special characters and spaces in schema and table name +CREATE TABLE "hr data"."Employee Data#Report$2023" ( + report_id NUMBER(10), + report_value VARCHAR2(200) +); + +-- Table with Unicode characters in schema and table name +CREATE TABLE "グローバル"."製品情報@データ" ( + prod_id NUMBER(10), + prod_name NVARCHAR2(200) +); + +-- Table with mixed case, spaces, and special characters +CREATE TABLE "Sales Report#Data 2023@Prod" ( + sales_id NUMBER(10), + sales_amount NUMBER(12,2) +); + +-- Table with temporary storage and special name +CREATE GLOBAL TEMPORARY TABLE "Temp#Customer_Records" ( + temp_id NUMBER(10) PRIMARY KEY, + temp_name VARCHAR2(100) NOT NULL +) ON COMMIT DELETE ROWS; + +-- Table with composite PRIMARY KEY and quoted name +CREATE TABLE "Order Details#2023" ( + order_id NUMBER(10), + item_id NUMBER(10), + quantity NUMBER(10), + CONSTRAINT pk_order_details PRIMARY KEY (order_id, item_id) +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/data_types.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/data_types.in.sql new file mode 100644 index 000000000..f482c1fa0 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/data_types.in.sql @@ -0,0 +1,26 @@ +CREATE TABLE data_types ( + c1_char CHAR(10), + c2_varchar2 VARCHAR2(50), + c3_varchar VARCHAR(50), + c4_nchar NCHAR(20), + c5_nvarchar2 NVARCHAR2(100), + c6_number NUMBER(10, 2), + c7_long LONG, + c8_date DATE, + c9_binary_float BINARY_FLOAT, + c10_binary_double BINARY_DOUBLE, + c11_timestamp TIMESTAMP(6), + c12_timestamp_with_tz TIMESTAMP(6) WITH TIME ZONE, + c13_timestamp_with_local_tz TIMESTAMP(6) WITH LOCAL TIME ZONE, + c14_interval_ytm INTERVAL YEAR(2) TO MONTH, + c15_interval_dts INTERVAL DAY(2) TO SECOND(6), + c16_raw RAW(1000), + c17_long_raw LONG RAW, + c18_rowid ROWID, + c19_urowid UROWID(4000), + c20_clob CLOB, + c21_nclob NCLOB, + c22_blob BLOB, + c23_bfile BFILE, + c24_xmltype XMLTYPE +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_checks.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_checks.in.sql new file mode 100644 index 000000000..1a15890d7 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_checks.in.sql @@ -0,0 +1,137 @@ +-- Oracle SQL Out-of-Line CHECK Constraint Test Cases +-- Test cases covering out-of-line CHECK constraints in table definitions, including nameless, named, simple, and complex constraints +-- Each table uses unique columns and constraints to avoid repetition, with constraints applied to different columns across cases + +-- ============================================ +-- BASIC OUT-OF-LINE CHECK CONSTRAINTS +-- ============================================ + +-- Simple nameless CHECK constraint +CREATE TABLE customers ( + cust_id NUMBER(10), + cust_name VARCHAR2(100), + email VARCHAR2(100), + phone VARCHAR2(20), + CHECK (cust_id > 0) +); + +-- Named CHECK constraint +CREATE TABLE inventory ( + item_id NUMBER(10), + item_name VARCHAR2(200), + price NUMBER(10,2), + category VARCHAR2(50), + CONSTRAINT chk_price_pos CHECK (price >= 0) +); + +-- Out-of-line CHECK with multiple columns +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10), + ship_date DATE, + total_amount NUMBER(12,2), + CONSTRAINT chk_amount_date CHECK (total_amount >= 0 AND ship_date IS NOT NULL) +); + +-- ============================================ +-- SIMPLE OUT-OF-LINE CHECK CONSTRAINTS +-- ============================================ + +-- Nameless CHECK on single column +CREATE TABLE departments ( + dept_id NUMBER(10), + dept_name VARCHAR2(100), + manager_id NUMBER(10), + budget NUMBER(12,2), + CHECK (budget >= 0) +); + +-- Named CHECK on single column +CREATE TABLE suppliers ( + supp_id NUMBER(10), + supp_name VARCHAR2(100), + contact VARCHAR2(100), + credit_limit NUMBER(10,2), + CONSTRAINT chk_credit_limit CHECK (credit_limit >= 0) +); + +-- CHECK with string pattern +CREATE TABLE employees ( + emp_id NUMBER(10), + emp_name VARCHAR2(100), + email VARCHAR2(100), + status VARCHAR2(20), + CONSTRAINT chk_status_values CHECK (status IN ('ACTIVE', 'INACTIVE', 'SUSPENDED')) +); + +-- ============================================ +-- COMPLEX OUT-OF-LINE CHECK CONSTRAINTS +-- ============================================ + +-- Complex CHECK with multiple conditions +CREATE TABLE orders ( + order_id NUMBER(10), + customer_id NUMBER(10), + order_date DATE, + total_amount NUMBER(12,2), + tax_amount NUMBER(10,2), + CONSTRAINT chk_order_amounts CHECK (total_amount >= tax_amount AND tax_amount >= 0) +); + +-- Complex CHECK with date comparison +CREATE TABLE contracts ( + contract_id NUMBER(10), + start_date DATE, + end_date DATE, + amount NUMBER(12,2), + CONSTRAINT chk_date_range CHECK (end_date > start_date AND start_date >= SYSDATE) +); + +-- Complex CHECK with pattern matching +CREATE TABLE users ( + user_id NUMBER(10), + username VARCHAR2(50), + email VARCHAR2(100), + ssn VARCHAR2(11), + CONSTRAINT chk_ssn_format CHECK (ssn LIKE '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]') +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Complex CHECK with multiple columns and expressions +CREATE TABLE sales ( + sale_id NUMBER(10), + sale_date DATE, + amount NUMBER(12,2), + discount NUMBER(10,2), + CONSTRAINT chk_sale_complex CHECK (amount >= discount AND discount >= 0 AND sale_date >= SYSDATE) +); + +-- CHECK with regular expression +CREATE TABLE accounts ( + account_id NUMBER(10), + account_number VARCHAR2(20), + balance NUMBER(12,2), + account_type VARCHAR2(20), + CONSTRAINT chk_acc_number CHECK (REGEXP_LIKE(account_number, '^[0-9]{10}$')) +); + +-- CHECK with long constraint name +CREATE TABLE reports ( + report_id NUMBER(10), + report_name VARCHAR2(100), + report_date DATE, + status VARCHAR2(20), + CONSTRAINT chk_very_long_constraint_name_for_testing_parser_limits CHECK (status IN ('DRAFT', 'FINAL', 'ARCHIVED')) +); + +-- CHECK with subquery (Note: Oracle allows subqueries in CHECK constraints in some versions) +CREATE TABLE employees_sub ( + emp_id NUMBER(10), + dept_id NUMBER(10), + emp_name VARCHAR2(100), + salary NUMBER(10,2), + CONSTRAINT chk_dept_exists CHECK (dept_id IN (SELECT dept_id FROM departments)) +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_fk.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_fk.in.sql new file mode 100644 index 000000000..c0eada7cc --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_fk.in.sql @@ -0,0 +1,133 @@ +-- Oracle SQL Out-of-Line FOREIGN KEY Constraint Test Cases +-- Test cases covering out-of-line FOREIGN KEY constraints in table definitions, including nameless, named, simple, and complex constraints +-- Each table uses unique columns and constraints to avoid repetition, with constraints applied to different columns across cases +-- ============================================ +-- BASIC OUT-OF-LINE FOREIGN KEY CONSTRAINTS +-- ============================================ +CREATE TABLE departments ( + dept_id NUMBER(10) PRIMARY KEY +); + +CREATE TABLE customers ( + cust_id NUMBER(10) PRIMARY KEY +); + +CREATE TABLE employees ( + emp_id NUMBER(10), + emp_name VARCHAR2(100), + dept_id NUMBER(10), + FOREIGN KEY (dept_id) REFERENCES departments(dept_id) +); + +-- Named FOREIGN KEY +CREATE TABLE orders ( + order_id NUMBER(10), + customer_id NUMBER(10), + order_date DATE, + CONSTRAINT fk_order_cust FOREIGN KEY (customer_id) REFERENCES customers(cust_id) +); + +-- FOREIGN KEY with NOT NULL +CREATE TABLE shipments ( + ship_id NUMBER(10), + customer_id NUMBER(10) NOT NULL, + ship_date DATE, + CONSTRAINT fk_ship_cust FOREIGN KEY (customer_id) REFERENCES customers(cust_id) +); + +-- ============================================ +-- COMPLEX OUT-OF-LINE FOREIGN KEY CONSTRAINTS +-- ============================================ +CREATE TABLE complex_parent ( + id NUMBER(10), + code VARCHAR2(20), + PRIMARY KEY (id, code) +); + +CREATE TABLE inventory ( + item_id NUMBER(10) PRIMARY KEY +); + +CREATE TABLE complex_child ( + child_id NUMBER(10), + parent_id NUMBER(10), + parent_code VARCHAR2(20), + CONSTRAINT fk_child_complex FOREIGN KEY (parent_id, parent_code) REFERENCES complex_parent(id, code) +); + +-- FOREIGN KEY with multiple columns (non-composite parent key) +CREATE TABLE order_details ( + detail_id NUMBER(10), + order_id NUMBER(10), + item_id NUMBER(10), + CONSTRAINT fk_detail_item FOREIGN KEY (item_id) REFERENCES inventory(item_id) +); + +-- FOREIGN KEY with ON DELETE CASCADE +CREATE TABLE assignments ( + assignment_id NUMBER(10), + emp_id NUMBER(10), + dept_id NUMBER(10), + CONSTRAINT fk_assign_dept FOREIGN KEY (dept_id) REFERENCES departments(dept_id) ON DELETE CASCADE +); + +-- FOREIGN KEY with ON DELETE SET NULL +CREATE TABLE project_members ( + member_id NUMBER(10), + emp_id NUMBER(10), + dept_id NUMBER(10), + CONSTRAINT fk_member_dept FOREIGN KEY (dept_id) REFERENCES departments(dept_id) ON DELETE SET NULL +); + +-- ============================================ +-- FOREIGN KEY ON DIFFERENT DATA TYPES +-- ============================================ +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2) UNIQUE, + col_varchar2 VARCHAR2(100) UNIQUE +); + +CREATE TABLE test_datatypes_fk ( + id NUMBER(10), + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + CONSTRAINT fk_dt_number FOREIGN KEY (col_number) REFERENCES test_datatypes(col_number), + CONSTRAINT fk_dt_varchar2 FOREIGN KEY (col_varchar2) REFERENCES test_datatypes(col_varchar2) +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ +-- FOREIGN KEY with self-referencing table +CREATE TABLE employees_self ( + emp_id NUMBER(10) PRIMARY KEY, + manager_id NUMBER(10), + emp_name VARCHAR2(100), + CONSTRAINT fk_self_manager FOREIGN KEY (manager_id) REFERENCES employees_self(emp_id) +); + +-- FOREIGN KEY with long constraint name +CREATE TABLE order_history ( + history_id NUMBER(10), + order_id NUMBER(10), + history_date DATE, + CONSTRAINT fk_very_long_constraint_name_for_testing_parser_limits FOREIGN KEY (order_id) REFERENCES orders(order_id) +); + +-- Complex FOREIGN KEY with ON DELETE CASCADE and DEFERRABLE +CREATE TABLE shipment_details ( + detail_id NUMBER(10), + ship_id NUMBER(10), + item_id NUMBER(10), + CONSTRAINT fk_ship_detail FOREIGN KEY (ship_id) REFERENCES shipments(ship_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED +); + +-- FOREIGN KEY with combined options (ENABLE VALIDATE RELY) +CREATE TABLE project_assignments ( + assign_id NUMBER(10), + emp_id NUMBER(10), + project_id NUMBER(10), + CONSTRAINT fk_assign_emp FOREIGN KEY (emp_id) REFERENCES employees(emp_id) ENABLE VALIDATE RELY +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_pk.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_pk.in.sql new file mode 100644 index 000000000..645143008 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_pk.in.sql @@ -0,0 +1,70 @@ +-- Oracle SQL Out-of-Line PRIMARY KEY Constraint Test Cases +-- Test cases covering out-of-line PRIMARY KEY constraints in table definitions, including nameless, named, simple, and composite constraints +-- Each table uses unique columns and constraints to avoid repetition, with constraints applied to different columns across cases + +-- ============================================ +-- PRIMARY KEY ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10), + CONSTRAINT pk_number PRIMARY KEY (col_number), + CONSTRAINT pk_varchar2 PRIMARY KEY (col_varchar2), + CONSTRAINT pk_char PRIMARY KEY (col_char), + CONSTRAINT pk_date PRIMARY KEY (col_date), + CONSTRAINT pk_timestamp PRIMARY KEY (col_timestamp), + CONSTRAINT pk_clob PRIMARY KEY (col_clob), + CONSTRAINT pk_raw PRIMARY KEY (col_raw), + CONSTRAINT pk_float PRIMARY KEY (col_float), + CONSTRAINT pk_integer PRIMARY KEY (col_integer), + CONSTRAINT pk_nvarchar2 PRIMARY KEY (col_nvarchar2), + CONSTRAINT pk_nchar PRIMARY KEY (col_nchar) +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Composite PRIMARY KEY with multiple columns +CREATE TABLE order_details ( + order_id NUMBER(10), + item_id NUMBER(10), + quantity NUMBER(10), + order_date DATE, + CONSTRAINT pk_order_details PRIMARY KEY (order_id, item_id) +); + +-- PRIMARY KEY with long constraint name +CREATE TABLE reports ( + report_id NUMBER(10), + report_name VARCHAR2(100), + report_date DATE, + status VARCHAR2(20), + CONSTRAINT pk_very_long_constraint_name_for_testing_parser_limits PRIMARY KEY (report_id) +); + +-- PRIMARY KEY with combined options +CREATE TABLE sales ( + sale_id NUMBER(10), + sale_date DATE, + amount NUMBER(12,2), + CONSTRAINT pk_sale PRIMARY KEY (sale_id) ENABLE VALIDATE RELY +); + +-- PRIMARY KEY with DISABLE NOVALIDATE NORELY +CREATE TABLE accounts ( + account_id NUMBER(10), + account_number VARCHAR2(20), + balance NUMBER(12,2), + CONSTRAINT pk_account PRIMARY KEY (account_id) DISABLE NOVALIDATE NORELY +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_unique.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_unique.in.sql new file mode 100644 index 000000000..47999a08b --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/in_table_unique.in.sql @@ -0,0 +1,70 @@ +-- Oracle SQL Out-of-Line UNIQUE Constraint Test Cases +-- Test cases covering out-of-line UNIQUE constraints in table definitions, including nameless, named, simple, and composite constraints +-- Each table uses unique columns and constraints to avoid repetition, with constraints applied to different columns across cases + +-- ============================================ +-- UNIQUE ON DIFFERENT DATA TYPES +-- ============================================ + +CREATE TABLE test_datatypes ( + col_number NUMBER(10,2), + col_varchar2 VARCHAR2(100), + col_char CHAR(10), + col_date DATE, + col_timestamp TIMESTAMP, + col_clob CLOB, + col_raw RAW(100), + col_float FLOAT, + col_integer INTEGER, + col_nvarchar2 NVARCHAR2(100), + col_nchar NCHAR(10), + CONSTRAINT uk_number UNIQUE (col_number), + CONSTRAINT uk_varchar2 UNIQUE (col_varchar2), + CONSTRAINT uk_char UNIQUE (col_char), + CONSTRAINT uk_date UNIQUE (col_date), + CONSTRAINT uk_timestamp UNIQUE (col_timestamp), + CONSTRAINT uk_clob UNIQUE (col_clob), + CONSTRAINT uk_raw UNIQUE (col_raw), + CONSTRAINT uk_float UNIQUE (col_float), + CONSTRAINT uk_integer UNIQUE (col_integer), + CONSTRAINT uk_nvarchar2 UNIQUE (col_nvarchar2), + CONSTRAINT uk_nchar UNIQUE (col_nchar) +); + +-- ============================================ +-- EDGE CASES AND SPECIAL SCENARIOS +-- ============================================ + +-- Composite UNIQUE with multiple columns +CREATE TABLE order_details ( + order_id NUMBER(10), + item_id NUMBER(10), + quantity NUMBER(10), + order_ref VARCHAR2(20), + CONSTRAINT uk_order_ref UNIQUE (order_id, item_id) +); + +-- UNIQUE with long constraint name +CREATE TABLE reports ( + report_id NUMBER(10), + report_name VARCHAR2(100), + report_date DATE, + report_code VARCHAR2(20), + CONSTRAINT uk_very_long_constraint_name_for_testing_parser_limits UNIQUE (report_code) +); + +-- UNIQUE with combined options +CREATE TABLE sales ( + sale_id NUMBER(10), + sale_date DATE, + sale_code VARCHAR2(20), + CONSTRAINT uk_sale_code UNIQUE (sale_code) ENABLE VALIDATE RELY +); + +-- UNIQUE with DISABLE NOVALIDATE NORELY +CREATE TABLE accounts ( + account_id NUMBER(10), + account_number VARCHAR2(20), + balance NUMBER(12,2), + CONSTRAINT uk_account_number UNIQUE (account_number) DISABLE NOVALIDATE NORELY +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/input/insert_general.in.sql b/packages/dbml-core/__tests__/parser/oracle-parse/input/insert_general.in.sql new file mode 100644 index 000000000..852154ed6 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/input/insert_general.in.sql @@ -0,0 +1,162 @@ +CREATE TABLE database_products ( + product_id NUMBER(10) PRIMARY KEY, + product_name VARCHAR2(100) NOT NULL, + vendor_name VARCHAR2(100), + release_year NUMBER(4), + is_open_source NUMBER(1) DEFAULT 0, + license_cost NUMBER(10, 2), + market_share NUMBER(5, 2), + latest_version VARCHAR2(20), + description CLOB, + created_at TIMESTAMP DEFAULT SYSTIMESTAMP, + updated_at TIMESTAMP DEFAULT SYSTIMESTAMP, + is_active NUMBER(1) DEFAULT 1, + max_connections NUMBER(10), + status CHAR(1) DEFAULT 'A' +); + +-- 1. Basic INSERT with all columns specified +INSERT INTO database_products ( + product_id, product_name, vendor_name, release_year, is_open_source, + license_cost, market_share, latest_version, description, is_active, max_connections, status +) VALUES ( + db_products_seq.NEXTVAL, 'Oracle Database', 'Oracle Corporation', 1979, 0, + 47500.00, 28.5, '21c', 'Enterprise relational database management system', 1, 10000, 'A' +); + +-- 2. INSERT with boolean-like values (0/1) +INSERT INTO database_products (product_name, vendor_name, is_open_source, is_active) +VALUES ('MySQL', 'Oracle Corporation', 1, 1); + +-- 3. INSERT with NULL values explicitly +INSERT INTO database_products (product_name, vendor_name, license_cost, description) +VALUES ('PostgreSQL', 'PostgreSQL Global Development Group', NULL, NULL); + +-- 4. INSERT with numeric expressions +INSERT INTO database_products (product_name, release_year, market_share, max_connections) +VALUES ('SQLite', 2000, 15.5 + 2.3, 1000 * 10); + +-- 5. INSERT with string functions +INSERT INTO database_products (product_name, vendor_name, description, latest_version) +VALUES ( + UPPER('microsoft sql server'), + 'Microsoft' || ' Corporation', -- Oracle uses || for concatenation + TRIM(' Relational database management system '), + SUBSTR('2022-CU10', 1, 4) -- Oracle uses SUBSTR not SUBSTRING +); + +-- 6. INSERT with date/time functions +INSERT INTO database_products (product_name, vendor_name, release_year, created_at) +VALUES ('MariaDB', 'MariaDB Foundation', EXTRACT(YEAR FROM SYSDATE), SYSTIMESTAMP); + +-- 7. INSERT multiple rows using INSERT ALL +INSERT ALL + INTO database_products (product_name, vendor_name, is_open_source, market_share) + VALUES ('MongoDB', 'MongoDB Inc.', 1, 8.2) + INTO database_products (product_name, vendor_name, is_open_source, market_share) + VALUES ('Redis', 'Redis Ltd.', 1, 6.7) + INTO database_products (product_name, vendor_name, is_open_source, market_share) + VALUES ('Cassandra', 'Apache Software Foundation', 1, 4.1) +SELECT * FROM DUAL; + +-- 8. INSERT with mathematical calculations +INSERT INTO database_products (product_name, license_cost, market_share, max_connections) +VALUES ('IBM Db2', 1500.00 * 12, ROUND(5.678, 1), POWER(2, 14)); + +-- 9. INSERT with conditional expression (CASE) +INSERT INTO database_products (product_name, vendor_name, license_cost, is_open_source) +VALUES ( + 'Amazon Aurora', + 'Amazon Web Services', + CASE WHEN 1=1 THEN 0.00 ELSE 1000.00 END, + 0 +); + +-- 10. INSERT with only some columns (others will use defaults) +INSERT INTO database_products (product_name) +VALUES ('CockroachDB'); + +-- 11. INSERT with negative numbers +INSERT INTO database_products (product_name, license_cost, release_year) +VALUES ('Test Database', -100.00, 2020); + +-- 12. INSERT with very large numbers +INSERT INTO database_products (product_name, max_connections, license_cost) +VALUES ('Enterprise DB', 999999, 99999.99); + +-- 13. INSERT with string containing newlines using CHR(10) +INSERT INTO database_products (product_name, description) +VALUES ('Neo4j', 'Graph database for connected data' || CHR(10) || 'Supports Cypher query language'); + +-- 14. INSERT with TO_DATE function +INSERT INTO database_products (product_name, release_year, created_at) +VALUES ('Firebird', 2000, TO_TIMESTAMP('2000-07-25 10:30:00', 'YYYY-MM-DD HH24:MI:SS')); + +-- 15. INSERT with column order different from table definition +INSERT INTO database_products (is_active, product_name, is_open_source, vendor_name) +VALUES (1, 'TimescaleDB', 1, 'Timescale Inc.'); + +-- 16. INSERT with zero values +INSERT INTO database_products (product_name, license_cost, market_share, max_connections) +VALUES ('MemSQL', 0.00, 0.0, 0); + +-- 17. INSERT using SYSDATE and string concatenation +INSERT INTO database_products (product_name, release_year, latest_version, created_at) +VALUES ('InfluxDB', EXTRACT(YEAR FROM SYSDATE), 'v' || '2.7', SYSDATE); + +-- 18. INSERT with NVL function (null value handling) +INSERT INTO database_products (product_name, vendor_name, license_cost) +VALUES ('Vertica', 'Micro Focus', NVL(NULL, 5000.00)); + +-- 19. INSERT with DECODE function +INSERT INTO database_products (product_name, is_open_source, status) +VALUES ('Greenplum', DECODE('yes', 'yes', 1, 'no', 0, 0), 'A'); + +-- 20. INSERT with LENGTH function +INSERT INTO database_products (product_name, max_connections, vendor_name) +VALUES ('SAP HANA', LENGTH('Maximum'), 'SAP SE'); + +-- 21. INSERT with INITCAP (capitalize first letter) +INSERT INTO database_products (product_name, vendor_name) +VALUES (INITCAP('clickhouse'), INITCAP('clickhouse inc')); + +-- 22. INSERT with COALESCE function +INSERT INTO database_products (product_name, license_cost, market_share) +VALUES ('Snowflake', COALESCE(NULL, NULL, 2500.00), 3.5); + +-- 23. INSERT with GREATEST/LEAST functions +INSERT INTO database_products (product_name, max_connections, market_share) +VALUES ('Teradata', GREATEST(1000, 5000, 3000), LEAST(10.5, 8.2, 15.7)); + +-- 24. INSERT with MOD function +INSERT INTO database_products (product_name, max_connections, release_year) +VALUES ('Informix', MOD(10050, 1000), 1980 + MOD(45, 20)); + +-- 25. INSERT using sequence explicitly +INSERT INTO database_products (product_id, product_name, vendor_name) +VALUES (db_products_seq.NEXTVAL, 'DynamoDB', 'Amazon Web Services'); + +-- 26. INSERT with LPAD/RPAD functions +INSERT INTO database_products (product_name, latest_version) +VALUES ('SingleStore', LPAD('8', 3, '0') || '.' || RPAD('5', 2, '0')); + +-- 27. INSERT with REPLACE function +INSERT INTO database_products (product_name, description) +VALUES ('Azure SQL', REPLACE('Microsoft cloud database service', 'cloud', 'managed cloud')); + +-- 28. INSERT with ABS (absolute value) +INSERT INTO database_products (product_name, license_cost, market_share) +VALUES ('Db2 Warehouse', ABS(-15000), ABS(-4.5)); + +-- 29. INSERT with TRUNC function +INSERT INTO database_products (product_name, market_share, license_cost) +VALUES ('Actian Ingres', TRUNC(7.89456, 2), TRUNC(12345.6789, 2)); + +-- 30. INSERT with multiple function combinations +INSERT INTO database_products (product_name, vendor_name, latest_version, release_year) +VALUES ( + UPPER(SUBSTR('rockset database', 1, 7)), + INITCAP(TRIM(' rockset inc ')), + 'v' || TO_CHAR(ROUND(2.75, 1)), + TO_NUMBER(TO_CHAR(SYSDATE, 'YYYY')) - 5 +); diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_check.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_check.out.json new file mode 100644 index 000000000..2848d8c11 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_check.out.json @@ -0,0 +1,273 @@ +{ + "schemas": [], + "tables": [ + { + "name": "employees", + "fields": [ + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "emp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "salary", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "commission_pct", + "type": { + "type_name": "NUMBER(3,2)" + }, + "checks": [] + }, + { + "name": "hire_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "department_id", + "type": { + "type_name": "NUMBER(5)" + }, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + }, + { + "name": "age", + "type": { + "type_name": "NUMBER(3)" + }, + "checks": [] + }, + { + "name": "performance_score", + "type": { + "type_name": "NUMBER(3,1)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_salary_positive", + "expression": "salary > 0" + }, + { + "name": "chk_commission_range", + "expression": "commission_pct BETWEEN 0 AND 1" + }, + { + "name": "chk_status_values", + "expression": "status IN ('ACTIVE', 'INACTIVE', 'ON_LEAVE', 'TERMINATED')" + }, + { + "name": "chk_email_format", + "expression": "email LIKE '%@%'" + }, + { + "expression": "age >= 18" + }, + { + "expression": "salary >= 0" + }, + { + "name": "chk_salary_calculation", + "expression": "salary * 12 > 0" + }, + { + "name": "chk_salary_dept_rules", + "expression": "salary > 0 AND department_id IS NOT NULL" + }, + { + "name": "chk_commission_or_salary", + "expression": "commission_pct > 0 OR salary > 50000" + }, + { + "name": "chk_email_required", + "expression": "email IS NOT NULL AND LENGTH(email) > 5" + }, + { + "name": "chk_salary_by_status", + "expression": "CASE \n WHEN status = 'ACTIVE' THEN salary > 0\n WHEN status = 'INACTIVE' THEN 1 = 1\n ELSE 1 = 1\n END = 1" + }, + { + "name": "chk_name_length", + "expression": "LENGTH(TRIM(emp_name)) > 0" + }, + { + "name": "chk_hire_date_valid", + "expression": "hire_date <= SYSDATE" + }, + { + "name": "chk_complex_conditions", + "expression": "(salary > 30000 AND age >= 21) OR \n (salary <= 30000 AND age >= 18)" + }, + { + "name": "chk_email_lowercase", + "expression": "email = LOWER(email)" + }, + { + "name": "chk_performance_range", + "expression": "performance_score >= 0.0 AND performance_score <= 10.0" + }, + { + "name": "chk_email_domain", + "expression": "email LIKE '%@%.com' OR email LIKE '%@%.org'" + }, + { + "name": "chk_status_not_invalid", + "expression": "status NOT IN ('PENDING', 'UNKNOWN')" + }, + { + "name": "chk_comprehensive_validation", + "expression": "salary > 0 AND \n salary < 1000000 AND\n age >= 18 AND \n age <= 100 AND\n (commission_pct IS NULL OR (commission_pct >= 0 AND commission_pct <= 1)) AND\n status IN ('ACTIVE', 'INACTIVE', 'ON_LEAVE', 'TERMINATED')" + }, + { + "name": "chk_age_working", + "expression": "age BETWEEN 18 AND 70" + }, + { + "name": "chk_dept_valid", + "expression": "department_id IS NOT NULL AND department_id > 0" + } + ] + }, + { + "name": "products", + "fields": [ + { + "name": "product_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "product_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "discount_price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "stock_quantity", + "type": { + "type_name": "NUMBER(8)" + }, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + }, + { + "name": "weight", + "type": { + "type_name": "NUMBER(8,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_price_comparison", + "expression": "discount_price <= price" + }, + { + "expression": "stock_quantity >= 0" + }, + { + "expression": "category IS NOT NULL" + }, + { + "name": "chk_price_margin", + "expression": "(price - discount_price) >= price * 0.05" + }, + { + "name": "chk_weight_reasonable", + "expression": "weight > 0 AND weight < 10000" + }, + { + "name": "chk_price_not_negative", + "expression": "NOT (price < 0)" + }, + { + "name": "chk_category_uppercase", + "expression": "UPPER(category) IN ('ELECTRONICS', 'CLOTHING', 'FOOD', 'BOOKS')" + }, + { + "name": "chk_price_calculations", + "expression": "price * stock_quantity > 0 AND price / 100 < 100000" + }, + { + "name": "chk_discount_rules", + "expression": "(price - discount_price) * stock_quantity >= 0" + }, + { + "expression": "product_name IS NOT NULL" + }, + { + "name": "chk_prod_name_length", + "expression": "LENGTH(product_name) <= 200" + }, + { + "name": "chk_stock_max", + "expression": "stock_quantity <= 1000000" + } + ] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_fk.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_fk.out.json new file mode 100644 index 000000000..c21128452 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_fk.out.json @@ -0,0 +1,540 @@ +{ + "schemas": [], + "tables": [ + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "location_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "locations", + "fields": [ + { + "name": "location_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "city", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "country_code", + "type": { + "type_name": "CHAR(2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "countries", + "fields": [ + { + "name": "country_code", + "type": { + "type_name": "CHAR(2)" + }, + "pk": true, + "checks": [] + }, + { + "name": "country_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "employees", + "fields": [ + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "emp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "department_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "hire_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "location_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "projects", + "fields": [ + { + "name": "project_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "project_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "lead_emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "backup_emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "assignments", + "fields": [ + { + "name": "assignment_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "project_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "start_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "project_tasks", + "fields": [ + { + "name": "project_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "task_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "task_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + }, + { + "name": "assigned_emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [ + { + "pk": true, + "columns": [ + { + "value": "project_id", + "type": "column" + }, + { + "value": "task_id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "task_hours", + "fields": [ + { + "name": "hour_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "project_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "task_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "hours_worked", + "type": { + "type_name": "NUMBER(5,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [ + { + "name": "fk_emp_dept", + "endpoints": [ + { + "tableName": "employees", + "fieldNames": [ + "department_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_dept_location", + "endpoints": [ + { + "tableName": "departments", + "fieldNames": [ + "location_id" + ], + "relation": "*" + }, + { + "tableName": "locations", + "fieldNames": [ + "location_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_loc_country", + "endpoints": [ + { + "tableName": "locations", + "fieldNames": [ + "country_code" + ], + "relation": "*" + }, + { + "tableName": "countries", + "fieldNames": [ + "country_code" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_emp_manager", + "endpoints": [ + { + "tableName": "employees", + "fieldNames": [ + "manager_id" + ], + "relation": "*" + }, + { + "tableName": "employees", + "fieldNames": [ + "emp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_dept_manager", + "endpoints": [ + { + "tableName": "departments", + "fieldNames": [ + "manager_id" + ], + "relation": "*" + }, + { + "tableName": "employees", + "fieldNames": [ + "emp_id" + ], + "relation": "1" + } + ] + }, + { + "endpoints": [ + { + "tableName": "projects", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "endpoints": [ + { + "tableName": "assignments", + "fieldNames": [ + "emp_id" + ], + "relation": "*" + }, + { + "tableName": "employees", + "fieldNames": [ + "emp_id" + ], + "relation": "1" + } + ] + }, + { + "endpoints": [ + { + "tableName": "assignments", + "fieldNames": [ + "project_id" + ], + "relation": "*" + }, + { + "tableName": "projects", + "fieldNames": [ + "project_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_task_hours_project_task", + "endpoints": [ + { + "tableName": "task_hours", + "fieldNames": [ + "project_id", + "task_id" + ], + "relation": "*" + }, + { + "tableName": "project_tasks", + "fieldNames": [ + "project_id", + "task_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_proj_lead_emp", + "endpoints": [ + { + "tableName": "projects", + "fieldNames": [ + "lead_emp_id" + ], + "relation": "*" + }, + { + "tableName": "employees", + "fieldNames": [ + "emp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_proj_backup_emp", + "endpoints": [ + { + "tableName": "projects", + "fieldNames": [ + "backup_emp_id" + ], + "relation": "*" + }, + { + "tableName": "employees", + "fieldNames": [ + "emp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_task_assigned_emp", + "endpoints": [ + { + "tableName": "project_tasks", + "fieldNames": [ + "assigned_emp_id" + ], + "relation": "*" + }, + { + "tableName": "employees", + "fieldNames": [ + "emp_id" + ], + "relation": "1" + } + ] + } + ], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_not_null.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_not_null.out.json new file mode 100644 index 000000000..47a935a00 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_not_null.out.json @@ -0,0 +1,220 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "manufacturer", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "sku", + "type": { + "type_name": "VARCHAR2(50)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "not_null": true, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "suppliers", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "contact", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "ssn", + "type": { + "type_name": "VARCHAR2(11)" + }, + "checks": [] + }, + { + "name": "badge_number", + "type": { + "type_name": "VARCHAR2(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_pk.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_pk.out.json new file mode 100644 index 000000000..d78df09d4 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_pk.out.json @@ -0,0 +1,346 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + }, + { + "name": "address", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_cust_id", + "pk": true, + "columns": [ + { + "value": "cust_id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + }, + { + "name": "sku", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [ + { + "pk": true, + "columns": [ + { + "value": "item_id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + }, + { + "name": "tracking_number", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "datatype_tests", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "complex_test", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "unique": true, + "checks": [] + }, + { + "name": "name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "parent_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_complex_composite", + "pk": true, + "columns": [ + { + "value": "id", + "type": "column" + }, + { + "value": "code", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "combo_test", + "fields": [ + { + "name": "col1", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "col2", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [ + { + "name": "fk_complex_parent", + "endpoints": [ + { + "tableName": "complex_test", + "fieldNames": [ + "parent_id" + ], + "relation": "*" + }, + { + "tableName": "complex_test", + "fieldNames": [ + "id" + ], + "relation": "1" + } + ] + } + ], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_unique.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_unique.out.json new file mode 100644 index 000000000..5020f34a5 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_add_unique.out.json @@ -0,0 +1,345 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + }, + { + "name": "address", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "uk_cust_phone", + "unique": true, + "columns": [ + { + "value": "phone", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + }, + { + "name": "sku", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [ + { + "unique": true, + "columns": [ + { + "value": "sku", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + }, + { + "name": "tracking_number", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "datatype_tests", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "complex_test", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + }, + { + "name": "name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "parent_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "uk_complex_id_status", + "unique": true, + "columns": [ + { + "value": "id", + "type": "column" + }, + { + "value": "status", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "combo_test", + "fields": [ + { + "name": "col1", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "col2", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [ + { + "name": "fk_complex_parent", + "endpoints": [ + { + "tableName": "complex_test", + "fieldNames": [ + "parent_id" + ], + "relation": "*" + }, + { + "tableName": "complex_test", + "fieldNames": [ + "id" + ], + "relation": "1" + } + ] + } + ], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_check_constraints.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_check_constraints.out.json new file mode 100644 index 000000000..8f2bd458e --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_check_constraints.out.json @@ -0,0 +1,336 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + }, + { + "name": "address", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_cust_id_pos", + "expression": "cust_id > 0" + } + ] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + }, + { + "name": "sku", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "expression": "price >= 0" + }, + { + "name": "chk_inv_category", + "expression": "category IN ('ELECTRONICS', 'CLOTHING', 'BOOKS')" + } + ] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + }, + { + "name": "tracking_number", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_ship_amount", + "expression": "total_amount >= 0" + }, + { + "name": "chk_ship_date_valid", + "expression": "ship_date >= TRUNC(SYSDATE)" + } + ] + }, + { + "name": "datatype_tests", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "complex_test", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + }, + { + "name": "name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "parent_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_id_status", + "expression": "id IS NOT NULL OR status = 'ACTIVE'" + } + ] + }, + { + "name": "combo_test", + "fields": [ + { + "name": "col1", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "col2", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [ + { + "name": "fk_complex_parent", + "endpoints": [ + { + "tableName": "complex_test", + "fieldNames": [ + "parent_id" + ], + "relation": "*" + }, + { + "tableName": "complex_test", + "fieldNames": [ + "id" + ], + "relation": "1" + } + ] + } + ], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_set_default.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_set_default.out.json new file mode 100644 index 000000000..3578ce76b --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_set_default.out.json @@ -0,0 +1,444 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 1, + "type": "number" + }, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "email@example.com", + "type": "string" + }, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "dbdefault": { + "value": null, + "type": "boolean" + }, + "checks": [] + }, + { + "name": "address", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "dbdefault": { + "value": "churned", + "type": "string" + }, + "checks": [] + }, + { + "name": "reg_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + }, + { + "name": "last_login", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "dbdefault": { + "value": "Unknown", + "type": "string" + }, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "dbdefault": { + "value": 0.99, + "type": "number" + }, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "dbdefault": { + "value": "Misc", + "type": "string" + }, + "checks": [] + }, + { + "name": "sku", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + }, + { + "name": "weight", + "type": { + "type_name": "NUMBER(8,2)" + }, + "checks": [] + }, + { + "name": "stock_level", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "reorder_level", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 1, + "type": "number" + }, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + }, + { + "name": "tracking_number", + "type": { + "type_name": "VARCHAR2(50)" + }, + "dbdefault": { + "value": "SYS_GUID()", + "type": "expression" + }, + "checks": [] + }, + { + "name": "carrier", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "priority", + "type": { + "type_name": "NUMBER(2)" + }, + "checks": [] + }, + { + "name": "notes", + "type": { + "type_name": "VARCHAR2(4000)" + }, + "dbdefault": { + "value": "This is a very long default value for testing purposes, exceeding typical lengths to check parser limits and storage implications in Oracle SQL", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": "test_seq.NEXTVAL", + "type": "expression" + }, + "checks": [] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "budget", + "type": { + "type_name": "NUMBER(12,2)" + }, + "dbdefault": { + "value": 10000, + "type": "number" + }, + "checks": [] + }, + { + "name": "location", + "type": { + "type_name": "VARCHAR2(50)" + }, + "dbdefault": { + "value": "UPPER(USER) || '_DEPT'", + "type": "expression" + }, + "checks": [] + }, + { + "name": "established_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "suppliers", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Anonymous", + "type": "string" + }, + "checks": [] + }, + { + "name": "contact", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "N/A", + "type": "string" + }, + "checks": [] + }, + { + "name": "ssn", + "type": { + "type_name": "VARCHAR2(11)" + }, + "checks": [] + }, + { + "name": "badge_number", + "type": { + "type_name": "VARCHAR2(10)" + }, + "checks": [] + }, + { + "name": "credit_limit", + "type": { + "type_name": "NUMBER(10,2)" + }, + "dbdefault": { + "value": "5000 + 1000", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_defaults", + "fields": [ + { + "name": "col1", + "type": { + "type_name": "NUMBER" + }, + "checks": [] + }, + { + "name": "col2", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + }, + { + "name": "col3", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "col4", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [] + }, + { + "name": "col5", + "type": { + "type_name": "CLOB" + }, + "checks": [] + }, + { + "name": "col6", + "type": { + "type_name": "RAW(100)" + }, + "checks": [] + }, + { + "name": "col7", + "type": { + "type_name": "FLOAT" + }, + "checks": [] + }, + { + "name": "col8", + "type": { + "type_name": "INTEGER" + }, + "checks": [] + }, + { + "name": "col9", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_set_nullable.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_set_nullable.out.json new file mode 100644 index 000000000..7a7032b2a --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/alter_table_set_nullable.out.json @@ -0,0 +1,450 @@ +{ + "schemas": [], + "tables": [ + { + "name": "employees", + "fields": [ + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "emp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": false, + "checks": [] + }, + { + "name": "salary", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": false, + "checks": [] + }, + { + "name": "commission_pct", + "type": { + "type_name": "NUMBER(3,2)" + }, + "not_null": false, + "checks": [] + }, + { + "name": "hire_date", + "type": { + "type_name": "DATE" + }, + "not_null": false, + "checks": [] + }, + { + "name": "department_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "ssn", + "type": { + "type_name": "VARCHAR2(11)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "badge_number", + "type": { + "type_name": "VARCHAR2(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "title", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "office_location", + "type": { + "type_name": "VARCHAR2(50)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "products", + "fields": [ + { + "name": "product_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "product_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "description", + "type": { + "type_name": "VARCHAR2(4000)" + }, + "not_null": false, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "manufacturer", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": false, + "checks": [] + }, + { + "name": "sku", + "type": { + "type_name": "VARCHAR2(50)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "weight", + "type": { + "type_name": "NUMBER(8,2)" + }, + "not_null": false, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "orders", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "order_date", + "type": { + "type_name": "DATE" + }, + "not_null": true, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "not_null": true, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "tax_amount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "discount_amount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "datatype_tests", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": false, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": false, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "not_null": false, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "not_null": false, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "not_null": false, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "not_null": false, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "not_null": false, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "not_null": false, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "not_null": false, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "not_null": false, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "not_null": false, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "complex_test", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": false, + "unique": true, + "checks": [] + }, + { + "name": "name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "parent_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": false, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "combo_test", + "fields": [ + { + "name": "col1", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": false, + "checks": [] + }, + { + "name": "col2", + "type": { + "type_name": "VARCHAR2(50)" + }, + "not_null": false, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [ + { + "name": "fk_complex_parent", + "endpoints": [ + { + "tableName": "complex_test", + "fieldNames": [ + "parent_id" + ], + "relation": "*" + }, + { + "tableName": "complex_test", + "fieldNames": [ + "id" + ], + "relation": "1" + } + ] + } + ], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_checks.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_checks.out.json new file mode 100644 index 000000000..907f1867f --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_checks.out.json @@ -0,0 +1,1471 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "cust_id > 0", + "name": "chk_cust_id_pos" + } + ] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [ + { + "expression": "LENGTH(cust_name) <= 100", + "name": "chk_cust_name_len" + } + ] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [ + { + "expression": "email LIKE '%@%.%'", + "name": "chk_email_format" + } + ] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [ + { + "expression": "LENGTH(phone) >= 10", + "name": "chk_phone_len" + } + ] + }, + { + "name": "address", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [ + { + "expression": "address IS NOT NULL", + "name": "chk_address_not_empty" + } + ] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [ + { + "expression": "status IN ('ACTIVE', 'INACTIVE')", + "name": "chk_cust_status" + } + ] + }, + { + "name": "reg_date", + "type": { + "type_name": "DATE" + }, + "checks": [ + { + "expression": "reg_date >= TO_DATE('2000-01-01', 'YYYY-MM-DD')", + "name": "chk_reg_date" + } + ] + }, + { + "name": "last_login", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [ + { + "expression": "last_login <= SYSTIMESTAMP", + "name": "chk_last_login" + }, + { + "expression": "last_login >= SYSTIMESTAMP", + "name": "chk_last_login_2" + } + ] + }, + { + "name": "last_login_2", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [ + { + "expression": "last_login_2 <= SYSTIMESTAMP" + }, + { + "expression": "last_login_2 >= SYSTIMESTAMP" + } + ] + }, + { + "name": "last_login_3", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [ + { + "expression": "last_login_3 <= SYSTIMESTAMP" + }, + { + "expression": "last_login_3 >= SYSTIMESTAMP", + "name": "chk_last_login_3" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "item_id > 0", + "name": "chk_item_id_pos" + } + ] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [ + { + "expression": "item_name IS NOT NULL", + "name": "chk_item_name" + } + ] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [ + { + "expression": "price >= 0", + "name": "chk_price_pos" + } + ] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [ + { + "expression": "category IN ('ELECTRONICS', 'CLOTHING', 'BOOKS')", + "name": "chk_category_valid" + } + ] + }, + { + "name": "sku", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [ + { + "expression": "LENGTH(sku) <= 50", + "name": "chk_sku_len" + } + ] + }, + { + "name": "weight", + "type": { + "type_name": "NUMBER(8,2)" + }, + "checks": [ + { + "expression": "weight > 0", + "name": "chk_weight_pos" + } + ] + }, + { + "name": "stock_level", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "stock_level >= 0", + "name": "chk_stock_level" + } + ] + }, + { + "name": "reorder_level", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "reorder_level >= 0", + "name": "chk_reorder_level" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "ship_id > 0", + "name": "chk_ship_id" + } + ] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "customer_id > 0", + "name": "chk_cust_id_valid" + } + ] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "checks": [ + { + "expression": "ship_date >= TRUNC(SYSDATE)", + "name": "chk_ship_date" + } + ] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [ + { + "expression": "total_amount >= 0", + "name": "chk_total_amount" + } + ] + }, + { + "name": "tracking_number", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [ + { + "expression": "LENGTH(tracking_number) <= 50", + "name": "chk_tracking_len" + } + ] + }, + { + "name": "carrier", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [ + { + "expression": "carrier IS NOT NULL", + "name": "chk_carrier" + } + ] + }, + { + "name": "priority", + "type": { + "type_name": "NUMBER(2)" + }, + "checks": [ + { + "expression": "priority BETWEEN 1 AND 5", + "name": "chk_priority_range" + } + ] + }, + { + "name": "notes", + "type": { + "type_name": "VARCHAR2(4000)" + }, + "checks": [ + { + "expression": "LENGTH(notes) <= 4000", + "name": "chk_notes_len" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "dept_id > 0", + "name": "chk_dept_id" + } + ] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [ + { + "expression": "dept_name IS NOT NULL", + "name": "chk_dept_name" + } + ] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "manager_id > 0", + "name": "chk_manager_id" + } + ] + }, + { + "name": "budget", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [ + { + "expression": "budget >= 0", + "name": "chk_budget_pos" + } + ] + }, + { + "name": "location", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [ + { + "expression": "location IS NOT NULL", + "name": "chk_location" + } + ] + }, + { + "name": "established_date", + "type": { + "type_name": "DATE" + }, + "checks": [ + { + "expression": "established_date <= SYSDATE", + "name": "chk_est_date" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "suppliers", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "supp_id > 0", + "name": "chk_supp_id" + } + ] + }, + { + "name": "supp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [ + { + "expression": "supp_name IS NOT NULL", + "name": "chk_supp_name" + } + ] + }, + { + "name": "contact", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [ + { + "expression": "LENGTH(contact) <= 100", + "name": "chk_contact_len" + } + ] + }, + { + "name": "ssn", + "type": { + "type_name": "VARCHAR2(11)" + }, + "checks": [ + { + "expression": "ssn LIKE '___-__-____'", + "name": "chk_ssn_format" + } + ] + }, + { + "name": "badge_number", + "type": { + "type_name": "VARCHAR2(10)" + }, + "checks": [ + { + "expression": "LENGTH(badge_number) <= 10", + "name": "chk_badge_len" + } + ] + }, + { + "name": "credit_limit", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [ + { + "expression": "credit_limit >= 0", + "name": "chk_credit_limit" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [ + { + "expression": "col_number >= 0", + "name": "chk_number_pos" + } + ] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [ + { + "expression": "LENGTH(col_varchar2) <= 100", + "name": "chk_varchar2_len" + } + ] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "checks": [ + { + "expression": "LENGTH(col_char) = 10", + "name": "chk_char_len" + } + ] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "checks": [ + { + "expression": "col_date >= TO_DATE('2000-01-01', 'YYYY-MM-DD')", + "name": "chk_date" + } + ] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [ + { + "expression": "col_timestamp <= SYSTIMESTAMP", + "name": "chk_timestamp" + } + ] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "checks": [ + { + "expression": "col_clob IS NOT NULL", + "name": "chk_clob_not_null" + } + ] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "checks": [ + { + "expression": "LENGTH(col_raw) <= 100", + "name": "chk_raw_len" + } + ] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "checks": [ + { + "expression": "col_float >= 0", + "name": "chk_float_pos" + } + ] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "checks": [ + { + "expression": "col_integer >= 0", + "name": "chk_integer_pos" + } + ] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [ + { + "expression": "LENGTH(col_nvarchar2) <= 100", + "name": "chk_nvarchar2_len" + } + ] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "checks": [ + { + "expression": "LENGTH(col_nchar) = 10", + "name": "chk_nchar_len" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_basic", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "id > 0", + "name": "chk_id_pos" + } + ] + }, + { + "name": "value", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "value BETWEEN 1 AND 1000", + "name": "chk_value_range" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_status", + "fields": [ + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [ + { + "expression": "status IN ('OPEN', 'CLOSED', 'PENDING')", + "name": "chk_status_values" + } + ] + }, + { + "name": "code", + "type": { + "type_name": "VARCHAR2(10)" + }, + "checks": [ + { + "expression": "LENGTH(code) <= 10", + "name": "chk_code_len" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_not_null", + "fields": [ + { + "name": "name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [ + { + "expression": "name IS NOT NULL", + "name": "chk_name_not_null" + } + ] + }, + { + "name": "description", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [ + { + "expression": "LENGTH(description) <= 200", + "name": "chk_desc_len" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_dates", + "fields": [ + { + "name": "event_date", + "type": { + "type_name": "DATE" + }, + "checks": [ + { + "expression": "event_date >= SYSDATE", + "name": "chk_event_date" + } + ] + }, + { + "name": "end_date", + "type": { + "type_name": "DATE" + }, + "checks": [ + { + "expression": "end_date > SYSDATE", + "name": "chk_end_date" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_compound", + "fields": [ + { + "name": "quantity", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "quantity >= 0", + "name": "chk_qty_pos" + } + ] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [ + { + "expression": "quantity * price >= 0", + "name": "chk_qty_price" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_pattern", + "fields": [ + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [ + { + "expression": "email LIKE '%@%.%'", + "name": "chk_email_pattern" + } + ] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [ + { + "expression": "phone LIKE '[0-9]%'", + "name": "chk_phone_pattern" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_multi_condition", + "fields": [ + { + "name": "score", + "type": { + "type_name": "NUMBER(3)" + }, + "checks": [ + { + "expression": "score BETWEEN 0 AND 100", + "name": "chk_score_range" + } + ] + }, + { + "name": "grade", + "type": { + "type_name": "CHAR(1)" + }, + "checks": [ + { + "expression": "grade IN ('A', 'B', 'C', 'D', 'F') AND score > 0", + "name": "chk_grade_valid" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_enable", + "fields": [ + { + "name": "level", + "type": { + "type_name": "NUMBER(2)" + }, + "checks": [ + { + "expression": "level BETWEEN 1 AND 10", + "name": "chk_level_range" + } + ] + }, + { + "name": "rating", + "type": { + "type_name": "NUMBER(2)" + }, + "checks": [ + { + "expression": "rating >= 0", + "name": "chk_rating" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable", + "fields": [ + { + "name": "priority", + "type": { + "type_name": "NUMBER(2)" + }, + "checks": [ + { + "expression": "priority BETWEEN 1 AND 5", + "name": "chk_priority_range" + } + ] + }, + { + "name": "rank", + "type": { + "type_name": "NUMBER(2)" + }, + "checks": [ + { + "expression": "rank >= 0", + "name": "chk_rank" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_validate", + "fields": [ + { + "name": "amount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [ + { + "expression": "amount >= 0", + "name": "chk_amount_pos" + } + ] + }, + { + "name": "tax", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [ + { + "expression": "tax >= 0", + "name": "chk_tax_pos" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_novalidate", + "fields": [ + { + "name": "discount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [ + { + "expression": "discount >= 0", + "name": "chk_discount" + } + ] + }, + { + "name": "margin", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [ + { + "expression": "margin >= 0", + "name": "chk_margin" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable_novalidate", + "fields": [ + { + "name": "weight", + "type": { + "type_name": "NUMBER(8,2)" + }, + "checks": [ + { + "expression": "weight > 0", + "name": "chk_weight" + } + ] + }, + { + "name": "volume", + "type": { + "type_name": "NUMBER(8,2)" + }, + "checks": [ + { + "expression": "volume > 0", + "name": "chk_volume" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_rely", + "fields": [ + { + "name": "code", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "code > 0", + "name": "chk_code_pos" + } + ] + }, + { + "name": "ref_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "ref_id > 0", + "name": "chk_ref_id" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_norely", + "fields": [ + { + "name": "sequence", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "sequence > 0", + "name": "chk_seq_pos" + } + ] + }, + { + "name": "counter", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "counter >= 0", + "name": "chk_counter" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_enable_rely", + "fields": [ + { + "name": "batch_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "batch_id > 0", + "name": "chk_batch_id" + } + ] + }, + { + "name": "lot_number", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [ + { + "expression": "LENGTH(lot_number) <= 20", + "name": "chk_lot_len" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable_norely", + "fields": [ + { + "name": "zone_id", + "type": { + "type_name": "NUMBER(5)" + }, + "checks": [ + { + "expression": "zone_id > 0", + "name": "chk_zone_id" + } + ] + }, + { + "name": "area_code", + "type": { + "type_name": "VARCHAR2(10)" + }, + "checks": [ + { + "expression": "LENGTH(area_code) <= 10", + "name": "chk_area_len" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_deferrable_deferred", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "order_id > 0", + "name": "chk_order_id" + } + ] + }, + { + "name": "line_item", + "type": { + "type_name": "NUMBER(5)" + }, + "checks": [ + { + "expression": "line_item > 0", + "name": "chk_line_item" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_deferrable_immediate", + "fields": [ + { + "name": "invoice_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "invoice_id > 0", + "name": "chk_invoice_id" + } + ] + }, + { + "name": "payment_status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [ + { + "expression": "payment_status IN ('PAID', 'PENDING')", + "name": "chk_payment_status" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_not_deferrable", + "fields": [ + { + "name": "ticket_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "ticket_id > 0", + "name": "chk_ticket_id" + } + ] + }, + { + "name": "issue_date", + "type": { + "type_name": "DATE" + }, + "checks": [ + { + "expression": "issue_date <= SYSDATE", + "name": "chk_issue_date" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes_inline", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [ + { + "expression": "col_number >= 0", + "name": "chk_number" + } + ] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [ + { + "expression": "LENGTH(col_varchar2) <= 100", + "name": "chk_varchar2" + } + ] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "checks": [ + { + "expression": "LENGTH(col_char) = 10", + "name": "chk_char" + } + ] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "checks": [ + { + "expression": "col_date >= TO_DATE('2000-01-01', 'YYYY-MM-DD')", + "name": "chk_date_valid" + } + ] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [ + { + "expression": "col_timestamp <= SYSTIMESTAMP", + "name": "chk_timestamp_valid" + } + ] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "checks": [ + { + "expression": "col_clob IS NOT NULL", + "name": "chk_clob" + } + ] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "checks": [ + { + "expression": "LENGTH(col_raw) <= 100", + "name": "chk_raw" + } + ] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "checks": [ + { + "expression": "col_float >= 0", + "name": "chk_float" + } + ] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "checks": [ + { + "expression": "col_integer >= 0", + "name": "chk_integer" + } + ] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [ + { + "expression": "LENGTH(col_nvarchar2) <= 100", + "name": "chk_nvarchar2" + } + ] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "checks": [ + { + "expression": "LENGTH(col_nchar) = 10", + "name": "chk_nchar" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_complex", + "fields": [ + { + "name": "score", + "type": { + "type_name": "NUMBER(3)" + }, + "checks": [ + { + "expression": "score >= 0 AND MOD(score, 2) = 0", + "name": "chk_score_complex" + } + ] + }, + { + "name": "rating", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [ + { + "expression": "rating IN ('HIGH', 'MEDIUM', 'LOW') AND LENGTH(rating) > 3", + "name": "chk_rating_complex" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_pattern_match", + "fields": [ + { + "name": "zip_code", + "type": { + "type_name": "VARCHAR2(10)" + }, + "checks": [ + { + "expression": "REGEXP_LIKE(zip_code, '^[0-9]{5}(-[0-9]{4})?$')", + "name": "chk_zip_format" + } + ] + }, + { + "name": "serial_number", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [ + { + "expression": "REGEXP_LIKE(serial_number, '^[A-Z0-9]+$')", + "name": "chk_serial_format" + } + ] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_subquery", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [ + { + "expression": "dept_id IN (SELECT dept_id FROM departments)", + "name": "chk_dept_id_exists" + } + ] + }, + { + "name": "emp_count", + "type": { + "type_name": "NUMBER(5)" + }, + "checks": [ + { + "expression": "emp_count >= 0", + "name": "chk_emp_count" + } + ] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_default.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_default.out.json new file mode 100644 index 000000000..83e63cb68 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_default.out.json @@ -0,0 +1,1509 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Unknown", + "type": "string" + }, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "noemail@example.com", + "type": "string" + }, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "dbdefault": { + "value": "N/A", + "type": "string" + }, + "checks": [] + }, + { + "name": "address", + "type": { + "type_name": "VARCHAR2(200)" + }, + "dbdefault": { + "value": "Unknown Address", + "type": "string" + }, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "dbdefault": { + "value": "ACTIVE", + "type": "string" + }, + "checks": [] + }, + { + "name": "reg_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + }, + { + "name": "last_login", + "type": { + "type_name": "TIMESTAMP" + }, + "dbdefault": { + "value": "SYSTIMESTAMP", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 1, + "type": "number" + }, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "dbdefault": { + "value": "Item", + "type": "string" + }, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "dbdefault": { + "value": "Misc", + "type": "string" + }, + "checks": [] + }, + { + "name": "sku", + "type": { + "type_name": "VARCHAR2(50)" + }, + "dbdefault": { + "value": "SKU000", + "type": "string" + }, + "checks": [] + }, + { + "name": "weight", + "type": { + "type_name": "NUMBER(8,2)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "stock_level", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "reorder_level", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 10, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": "test_seq.NEXTVAL", + "type": "expression" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 1, + "type": "number" + }, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "tracking_number", + "type": { + "type_name": "VARCHAR2(50)" + }, + "dbdefault": { + "value": "SYS_GUID()", + "type": "expression" + }, + "checks": [] + }, + { + "name": "carrier", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "UPS", + "type": "string" + }, + "checks": [] + }, + { + "name": "priority", + "type": { + "type_name": "NUMBER(2)" + }, + "dbdefault": { + "value": 1, + "type": "number" + }, + "checks": [] + }, + { + "name": "notes", + "type": { + "type_name": "VARCHAR2(4000)" + }, + "dbdefault": { + "value": "No notes", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 100, + "type": "number" + }, + "checks": [] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "General", + "type": "string" + }, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "budget", + "type": { + "type_name": "NUMBER(12,2)" + }, + "dbdefault": { + "value": 10000, + "type": "number" + }, + "checks": [] + }, + { + "name": "location", + "type": { + "type_name": "VARCHAR2(50)" + }, + "dbdefault": { + "value": "HQ", + "type": "string" + }, + "checks": [] + }, + { + "name": "established_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "suppliers", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 500, + "type": "number" + }, + "checks": [] + }, + { + "name": "supp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Supplier", + "type": "string" + }, + "checks": [] + }, + { + "name": "contact", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Contact", + "type": "string" + }, + "checks": [] + }, + { + "name": "ssn", + "type": { + "type_name": "VARCHAR2(11)" + }, + "dbdefault": { + "value": "000-00-0000", + "type": "string" + }, + "checks": [] + }, + { + "name": "badge_number", + "type": { + "type_name": "VARCHAR2(10)" + }, + "dbdefault": { + "value": "BADGE000", + "type": "string" + }, + "checks": [] + }, + { + "name": "credit_limit", + "type": { + "type_name": "NUMBER(10,2)" + }, + "dbdefault": { + "value": 5000, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "dbdefault": { + "value": 42, + "type": "number" + }, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Default Text", + "type": "string" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "dbdefault": { + "value": "CHARDEF ", + "type": "string" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "dbdefault": { + "value": "SYSTIMESTAMP", + "type": "expression" + }, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "dbdefault": { + "value": "EMPTY_CLOB()", + "type": "expression" + }, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "dbdefault": { + "value": "HEXTORAW('00')", + "type": "expression" + }, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "dbdefault": { + "value": 3.14, + "type": "number" + }, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "dbdefault": { + "value": 100, + "type": "number" + }, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "dbdefault": { + "value": "N'Default National'", + "type": "expression" + }, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "dbdefault": { + "value": "N'NCHARDEF '", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_basic_num", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "value", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 100, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_basic_varchar", + "fields": [ + { + "name": "name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Unknown", + "type": "string" + }, + "checks": [] + }, + { + "name": "code", + "type": { + "type_name": "VARCHAR2(10)" + }, + "dbdefault": { + "value": "CODE", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_basic_date", + "fields": [ + { + "name": "event_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + }, + { + "name": "end_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE + 1", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_expr_sysdate", + "fields": [ + { + "name": "created_at", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + }, + { + "name": "updated_at", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_expr_user", + "fields": [ + { + "name": "created_by", + "type": { + "type_name": "VARCHAR2(30)" + }, + "dbdefault": { + "value": "USER", + "type": "expression" + }, + "checks": [] + }, + { + "name": "modified_by", + "type": { + "type_name": "VARCHAR2(30)" + }, + "dbdefault": { + "value": "USER", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_expr_guid", + "fields": [ + { + "name": "unique_id", + "type": { + "type_name": "VARCHAR2(32)" + }, + "dbdefault": { + "value": "SYS_GUID()", + "type": "expression" + }, + "checks": [] + }, + { + "name": "session_id", + "type": { + "type_name": "VARCHAR2(32)" + }, + "dbdefault": { + "value": "SYS_GUID()", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_expr_seq", + "fields": [ + { + "name": "seq_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": "test_seq.NEXTVAL", + "type": "expression" + }, + "checks": [] + }, + { + "name": "auto_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": "test_seq.NEXTVAL", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_expr_arith", + "fields": [ + { + "name": "base_value", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 1000, + "type": "number" + }, + "checks": [] + }, + { + "name": "calc_value", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": "1000 + 500", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_on_null_basic", + "fields": [ + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "noemail@example.com", + "type": "string" + }, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "dbdefault": { + "value": "N/A", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_on_null_num", + "fields": [ + { + "name": "quantity", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "discount", + "type": { + "type_name": "NUMBER(5,2)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_on_null_date", + "fields": [ + { + "name": "start_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + }, + { + "name": "end_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE + 7", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_default_not_null", + "fields": [ + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": true, + "dbdefault": { + "value": "ACTIVE", + "type": "string" + }, + "checks": [] + }, + { + "name": "priority", + "type": { + "type_name": "NUMBER(2)" + }, + "not_null": true, + "dbdefault": { + "value": 1, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_on_null_not_null", + "fields": [ + { + "name": "name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "dbdefault": { + "value": "Unknown", + "type": "string" + }, + "checks": [] + }, + { + "name": "code", + "type": { + "type_name": "VARCHAR2(10)" + }, + "not_null": true, + "dbdefault": { + "value": "CODE", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_nn_enable", + "fields": [ + { + "name": "level", + "type": { + "type_name": "NUMBER(2)" + }, + "not_null": true, + "dbdefault": { + "value": 1, + "type": "number" + }, + "checks": [] + }, + { + "name": "rating", + "type": { + "type_name": "NUMBER(2)" + }, + "not_null": true, + "dbdefault": { + "value": 5, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_nn_disable", + "fields": [ + { + "name": "rank", + "type": { + "type_name": "NUMBER(2)" + }, + "not_null": true, + "dbdefault": { + "value": 10, + "type": "number" + }, + "checks": [] + }, + { + "name": "score", + "type": { + "type_name": "NUMBER(3)" + }, + "not_null": true, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_nn_validate", + "fields": [ + { + "name": "amount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "tax", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_nn_novalidate", + "fields": [ + { + "name": "discount", + "type": { + "type_name": "NUMBER(5,2)" + }, + "not_null": true, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "margin", + "type": { + "type_name": "NUMBER(5,2)" + }, + "not_null": true, + "dbdefault": { + "value": 0.1, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_nn_disable_noval", + "fields": [ + { + "name": "weight", + "type": { + "type_name": "NUMBER(8,2)" + }, + "not_null": true, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "volume", + "type": { + "type_name": "NUMBER(8,2)" + }, + "not_null": true, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_nn_rely", + "fields": [ + { + "name": "code", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "dbdefault": { + "value": 100, + "type": "number" + }, + "checks": [] + }, + { + "name": "ref_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "dbdefault": { + "value": 200, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_nn_norely", + "fields": [ + { + "name": "sequence", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "dbdefault": { + "value": 1, + "type": "number" + }, + "checks": [] + }, + { + "name": "counter", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_nn_enable_rely", + "fields": [ + { + "name": "batch_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "dbdefault": { + "value": 500, + "type": "number" + }, + "checks": [] + }, + { + "name": "lot_number", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": true, + "dbdefault": { + "value": "LOT", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_nn_disable_norely", + "fields": [ + { + "name": "zone_id", + "type": { + "type_name": "NUMBER(5)" + }, + "not_null": true, + "dbdefault": { + "value": 1, + "type": "number" + }, + "checks": [] + }, + { + "name": "area_code", + "type": { + "type_name": "VARCHAR2(10)" + }, + "not_null": true, + "dbdefault": { + "value": "AREA", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_nn_defer_deferred", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "dbdefault": { + "value": 1000, + "type": "number" + }, + "checks": [] + }, + { + "name": "line_item", + "type": { + "type_name": "NUMBER(5)" + }, + "not_null": true, + "dbdefault": { + "value": 1, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_nn_defer_immediate", + "fields": [ + { + "name": "invoice_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "dbdefault": { + "value": 2000, + "type": "number" + }, + "checks": [] + }, + { + "name": "payment_status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": true, + "dbdefault": { + "value": "PENDING", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_nn_not_defer", + "fields": [ + { + "name": "ticket_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "dbdefault": { + "value": 3000, + "type": "number" + }, + "checks": [] + }, + { + "name": "issue_date", + "type": { + "type_name": "DATE" + }, + "not_null": true, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes_inline", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Text", + "type": "string" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "dbdefault": { + "value": "CHAR ", + "type": "string" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "dbdefault": { + "value": "SYSTIMESTAMP", + "type": "expression" + }, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "dbdefault": { + "value": "CLOB Default", + "type": "string" + }, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "dbdefault": { + "value": "HEXTORAW('0000')", + "type": "expression" + }, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "dbdefault": { + "value": 1.23, + "type": "number" + }, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "dbdefault": { + "value": 42, + "type": "number" + }, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "dbdefault": { + "value": "N'National Text'", + "type": "expression" + }, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "dbdefault": { + "value": "N'NCHAR '", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_complex_expr", + "fields": [ + { + "name": "full_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "dbdefault": { + "value": "USER || '_USER'", + "type": "expression" + }, + "checks": [] + }, + { + "name": "calc_field", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": "100 * 2", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_long_default", + "fields": [ + { + "name": "description", + "type": { + "type_name": "VARCHAR2(4000)" + }, + "dbdefault": { + "value": "This is a very long default value for testing purposes, exceeding typical lengths to check parser limits and storage implications in Oracle SQL", + "type": "string" + }, + "checks": [] + }, + { + "name": "comments", + "type": { + "type_name": "VARCHAR2(4000)" + }, + "dbdefault": { + "value": "Another long default string to test maximum lengths and handling in table creation statements", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_fk.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_fk.out.json new file mode 100644 index 000000000..ae7d5cf64 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_fk.out.json @@ -0,0 +1,1643 @@ +{ + "schemas": [], + "tables": [ + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_dept_id", + "pk": true, + "columns": [ + { + "value": "dept_id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "suppliers", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_supp_id", + "pk": true, + "columns": [ + { + "value": "supp_id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_cust_id", + "pk": true, + "columns": [ + { + "value": "cust_id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_item_id", + "pk": true, + "columns": [ + { + "value": "item_id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "complex_test", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_complex_id", + "pk": true, + "columns": [ + { + "value": "id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "test_datatypes", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_datatype_number", + "pk": true, + "columns": [ + { + "value": "col_number", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "employees", + "fields": [ + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "emp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "orders", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "tracking_number", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "tracking_number", + "type": { + "type_name": "VARCHAR2(50)" + }, + "pk": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "complex_child", + "fields": [ + { + "name": "child_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "parent_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "parent_code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_enable", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_validate", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_novalidate", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable_novalidate", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_rely", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_norely", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_enable_rely", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable_norely", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_deferrable_deferred", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_deferrable_immediate", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_not_deferrable", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes_fk", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "employees_self", + "fields": [ + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "order_details", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_cascade", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_set_null", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [ + { + "name": "fk_emp_dept", + "endpoints": [ + { + "tableName": "employees", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_emp_manager", + "endpoints": [ + { + "tableName": "employees", + "fieldNames": [ + "manager_id" + ], + "relation": "*" + }, + { + "tableName": "employees", + "fieldNames": [ + "emp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_order_cust", + "endpoints": [ + { + "tableName": "orders", + "fieldNames": [ + "customer_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_order_track", + "endpoints": [ + { + "tableName": "orders", + "fieldNames": [ + "tracking_number" + ], + "relation": "*" + }, + { + "tableName": "shipments", + "fieldNames": [ + "tracking_number" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_ship_cust", + "endpoints": [ + { + "tableName": "shipments", + "fieldNames": [ + "customer_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_child_complex", + "endpoints": [ + { + "tableName": "complex_child", + "fieldNames": [ + "parent_id" + ], + "relation": "*" + }, + { + "tableName": "complex_test", + "fieldNames": [ + "id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_child_code", + "endpoints": [ + { + "tableName": "complex_child", + "fieldNames": [ + "parent_code" + ], + "relation": "*" + }, + { + "tableName": "complex_test", + "fieldNames": [ + "code" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_enable_dept", + "endpoints": [ + { + "tableName": "test_enable", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_enable_supp", + "endpoints": [ + { + "tableName": "test_enable", + "fieldNames": [ + "supp_id" + ], + "relation": "*" + }, + { + "tableName": "suppliers", + "fieldNames": [ + "supp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_disable_dept", + "endpoints": [ + { + "tableName": "test_disable", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_disable_cust", + "endpoints": [ + { + "tableName": "test_disable", + "fieldNames": [ + "cust_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_validate_item", + "endpoints": [ + { + "tableName": "test_validate", + "fieldNames": [ + "item_id" + ], + "relation": "*" + }, + { + "tableName": "inventory", + "fieldNames": [ + "item_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_validate_supp", + "endpoints": [ + { + "tableName": "test_validate", + "fieldNames": [ + "supp_id" + ], + "relation": "*" + }, + { + "tableName": "suppliers", + "fieldNames": [ + "supp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_noval_dept", + "endpoints": [ + { + "tableName": "test_novalidate", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_noval_cust", + "endpoints": [ + { + "tableName": "test_novalidate", + "fieldNames": [ + "cust_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_dis_noval_item", + "endpoints": [ + { + "tableName": "test_disable_novalidate", + "fieldNames": [ + "item_id" + ], + "relation": "*" + }, + { + "tableName": "inventory", + "fieldNames": [ + "item_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_dis_noval_supp", + "endpoints": [ + { + "tableName": "test_disable_novalidate", + "fieldNames": [ + "supp_id" + ], + "relation": "*" + }, + { + "tableName": "suppliers", + "fieldNames": [ + "supp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_rely_dept", + "endpoints": [ + { + "tableName": "test_rely", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_rely_cust", + "endpoints": [ + { + "tableName": "test_rely", + "fieldNames": [ + "cust_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_norely_item", + "endpoints": [ + { + "tableName": "test_norely", + "fieldNames": [ + "item_id" + ], + "relation": "*" + }, + { + "tableName": "inventory", + "fieldNames": [ + "item_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_norely_supp", + "endpoints": [ + { + "tableName": "test_norely", + "fieldNames": [ + "supp_id" + ], + "relation": "*" + }, + { + "tableName": "suppliers", + "fieldNames": [ + "supp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_en_rely_dept", + "endpoints": [ + { + "tableName": "test_enable_rely", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_en_rely_cust", + "endpoints": [ + { + "tableName": "test_enable_rely", + "fieldNames": [ + "cust_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_dis_norely_item", + "endpoints": [ + { + "tableName": "test_disable_norely", + "fieldNames": [ + "item_id" + ], + "relation": "*" + }, + { + "tableName": "inventory", + "fieldNames": [ + "item_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_dis_norely_supp", + "endpoints": [ + { + "tableName": "test_disable_norely", + "fieldNames": [ + "supp_id" + ], + "relation": "*" + }, + { + "tableName": "suppliers", + "fieldNames": [ + "supp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_def_deferred_dept", + "endpoints": [ + { + "tableName": "test_deferrable_deferred", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_def_deferred_cust", + "endpoints": [ + { + "tableName": "test_deferrable_deferred", + "fieldNames": [ + "cust_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_def_immed_item", + "endpoints": [ + { + "tableName": "test_deferrable_immediate", + "fieldNames": [ + "item_id" + ], + "relation": "*" + }, + { + "tableName": "inventory", + "fieldNames": [ + "item_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_def_immed_supp", + "endpoints": [ + { + "tableName": "test_deferrable_immediate", + "fieldNames": [ + "supp_id" + ], + "relation": "*" + }, + { + "tableName": "suppliers", + "fieldNames": [ + "supp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_not_def_dept", + "endpoints": [ + { + "tableName": "test_not_deferrable", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_not_def_cust", + "endpoints": [ + { + "tableName": "test_not_deferrable", + "fieldNames": [ + "cust_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_dt_number", + "endpoints": [ + { + "tableName": "test_datatypes_fk", + "fieldNames": [ + "col_number" + ], + "relation": "*" + }, + { + "tableName": "test_datatypes", + "fieldNames": [ + "col_number" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_dt_varchar2", + "endpoints": [ + { + "tableName": "test_datatypes_fk", + "fieldNames": [ + "col_varchar2" + ], + "relation": "*" + }, + { + "tableName": "test_datatypes", + "fieldNames": [ + "col_varchar2" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_self_emp", + "endpoints": [ + { + "tableName": "employees_self", + "fieldNames": [ + "manager_id" + ], + "relation": "*" + }, + { + "tableName": "employees_self", + "fieldNames": [ + "emp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_self_dept", + "endpoints": [ + { + "tableName": "employees_self", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_detail_item", + "endpoints": [ + { + "tableName": "order_details", + "fieldNames": [ + "item_id" + ], + "relation": "*" + }, + { + "tableName": "inventory", + "fieldNames": [ + "item_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_detail_cust", + "endpoints": [ + { + "tableName": "order_details", + "fieldNames": [ + "cust_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_cascade_dept", + "endpoints": [ + { + "tableName": "test_cascade", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_cascade_supp", + "endpoints": [ + { + "tableName": "test_cascade", + "fieldNames": [ + "supp_id" + ], + "relation": "*" + }, + { + "tableName": "suppliers", + "fieldNames": [ + "supp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_set_null_dept", + "endpoints": [ + { + "tableName": "test_set_null", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_set_null_cust", + "endpoints": [ + { + "tableName": "test_set_null", + "fieldNames": [ + "cust_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + } + ], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_increment.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_increment.out.json new file mode 100644 index 000000000..f04210f02 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_increment.out.json @@ -0,0 +1,483 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER" + }, + "increment": true, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Unknown", + "type": "string" + }, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "noemail@example.com", + "type": "string" + }, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "dbdefault": { + "value": "N/A", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER" + }, + "increment": true, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "dbdefault": { + "value": "Default Item", + "type": "string" + }, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "dbdefault": { + "value": "Misc", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER" + }, + "increment": true, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 1, + "type": "number" + }, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER" + }, + "increment": true, + "checks": [] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "General", + "type": "string" + }, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "budget", + "type": { + "type_name": "NUMBER(12,2)" + }, + "dbdefault": { + "value": 10000, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "suppliers", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER" + }, + "increment": true, + "checks": [] + }, + { + "name": "supp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Anonymous", + "type": "string" + }, + "checks": [] + }, + { + "name": "contact", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Contact", + "type": "string" + }, + "checks": [] + }, + { + "name": "credit_limit", + "type": { + "type_name": "NUMBER(10,2)" + }, + "dbdefault": { + "value": 5000, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER" + }, + "increment": true, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Default Text", + "type": "string" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "dbdefault": { + "value": "DEFAULT ", + "type": "string" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "dbdefault": { + "value": "SYSDATE", + "type": "expression" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_basic", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER" + }, + "increment": true, + "checks": [] + }, + { + "name": "value", + "type": { + "type_name": "NUMBER(10)" + }, + "dbdefault": { + "value": 100, + "type": "number" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_status", + "fields": [ + { + "name": "status_id", + "type": { + "type_name": "NUMBER" + }, + "increment": true, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "dbdefault": { + "value": "OPEN", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_not_null", + "fields": [ + { + "name": "record_id", + "type": { + "type_name": "NUMBER" + }, + "not_null": true, + "increment": true, + "checks": [] + }, + { + "name": "description", + "type": { + "type_name": "VARCHAR2(200)" + }, + "not_null": true, + "dbdefault": { + "value": "No description", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_start_with", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER" + }, + "increment": true, + "checks": [] + }, + { + "name": "order_code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "dbdefault": { + "value": "ORD000", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_increment", + "fields": [ + { + "name": "ticket_id", + "type": { + "type_name": "NUMBER" + }, + "increment": true, + "checks": [] + }, + { + "name": "ticket_type", + "type": { + "type_name": "VARCHAR2(20)" + }, + "dbdefault": { + "value": "STANDARD", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_maxvalue", + "fields": [ + { + "name": "ref_id", + "type": { + "type_name": "NUMBER" + }, + "increment": true, + "checks": [] + }, + { + "name": "ref_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Reference", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_minvalue", + "fields": [ + { + "name": "batch_id", + "type": { + "type_name": "NUMBER" + }, + "increment": true, + "checks": [] + }, + { + "name": "batch_name", + "type": { + "type_name": "VARCHAR2(50)" + }, + "dbdefault": { + "value": "Batch", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_not_null.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_not_null.out.json new file mode 100644 index 000000000..5b09b83af --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_not_null.out.json @@ -0,0 +1,810 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "not_null": true, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "budget", + "type": { + "type_name": "NUMBER(12,2)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "suppliers", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "supp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "contact", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "credit_limit", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_basic", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "value", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_status", + "fields": [ + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "code", + "type": { + "type_name": "VARCHAR2(10)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_named", + "fields": [ + { + "name": "record_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "description", + "type": { + "type_name": "VARCHAR2(200)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_dates", + "fields": [ + { + "name": "event_date", + "type": { + "type_name": "DATE" + }, + "not_null": true, + "checks": [] + }, + { + "name": "end_date", + "type": { + "type_name": "DATE" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_enable", + "fields": [ + { + "name": "level", + "type": { + "type_name": "NUMBER(2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "rating", + "type": { + "type_name": "NUMBER(2)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable", + "fields": [ + { + "name": "priority", + "type": { + "type_name": "NUMBER(2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "rank", + "type": { + "type_name": "NUMBER(2)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_validate", + "fields": [ + { + "name": "amount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "tax", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_novalidate", + "fields": [ + { + "name": "discount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "margin", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable_novalidate", + "fields": [ + { + "name": "weight", + "type": { + "type_name": "NUMBER(8,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "volume", + "type": { + "type_name": "NUMBER(8,2)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_rely", + "fields": [ + { + "name": "code", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "ref_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_norely", + "fields": [ + { + "name": "sequence", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "counter", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_enable_rely", + "fields": [ + { + "name": "batch_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "lot_number", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable_norely", + "fields": [ + { + "name": "zone_id", + "type": { + "type_name": "NUMBER(5)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "area_code", + "type": { + "type_name": "VARCHAR2(10)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_deferrable_deferred", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "line_item", + "type": { + "type_name": "NUMBER(5)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_deferrable_immediate", + "fields": [ + { + "name": "invoice_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "payment_status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_not_deferrable", + "fields": [ + { + "name": "ticket_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "issue_date", + "type": { + "type_name": "DATE" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes_inline", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_long_name", + "fields": [ + { + "name": "identifier", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "record_code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_complex", + "fields": [ + { + "name": "score", + "type": { + "type_name": "NUMBER(3)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "rating", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_pk.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_pk.out.json new file mode 100644 index 000000000..935b3c4d9 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_pk.out.json @@ -0,0 +1,767 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "budget", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "suppliers", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "supp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "contact", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "credit_limit", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "pk": true, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_basic", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "value", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_named", + "fields": [ + { + "name": "code", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "description", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_status", + "fields": [ + { + "name": "status_code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "pk": true, + "checks": [] + }, + { + "name": "status_desc", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_dates", + "fields": [ + { + "name": "event_date", + "type": { + "type_name": "DATE" + }, + "pk": true, + "checks": [] + }, + { + "name": "event_desc", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_enable", + "fields": [ + { + "name": "level", + "type": { + "type_name": "NUMBER(2)" + }, + "pk": true, + "checks": [] + }, + { + "name": "level_desc", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable", + "fields": [ + { + "name": "priority", + "type": { + "type_name": "NUMBER(2)" + }, + "pk": true, + "checks": [] + }, + { + "name": "priority_desc", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_validate", + "fields": [ + { + "name": "amount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "pk": true, + "checks": [] + }, + { + "name": "amount_desc", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_novalidate", + "fields": [ + { + "name": "discount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "pk": true, + "checks": [] + }, + { + "name": "discount_desc", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable_novalidate", + "fields": [ + { + "name": "weight", + "type": { + "type_name": "NUMBER(8,2)" + }, + "pk": true, + "checks": [] + }, + { + "name": "weight_desc", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_rely", + "fields": [ + { + "name": "code", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "code_desc", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_norely", + "fields": [ + { + "name": "sequence", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "sequence_desc", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_enable_rely", + "fields": [ + { + "name": "batch_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "batch_desc", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable_norely", + "fields": [ + { + "name": "zone_id", + "type": { + "type_name": "NUMBER(5)" + }, + "pk": true, + "checks": [] + }, + { + "name": "zone_desc", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_deferrable_deferred", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "order_desc", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_deferrable_immediate", + "fields": [ + { + "name": "invoice_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "invoice_desc", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_not_deferrable", + "fields": [ + { + "name": "ticket_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "ticket_desc", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes_inline", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "pk": true, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "pk": true, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "pk": true, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "pk": true, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "pk": true, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "pk": true, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "pk": true, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "pk": true, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "pk": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_long_name", + "fields": [ + { + "name": "identifier", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "record_code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_complex", + "fields": [ + { + "name": "score", + "type": { + "type_name": "NUMBER(3)" + }, + "pk": true, + "checks": [] + }, + { + "name": "rating", + "type": { + "type_name": "VARCHAR2(20)" + }, + "pk": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_unique.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_unique.out.json new file mode 100644 index 000000000..29714f93d --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/column_def_unique.out.json @@ -0,0 +1,807 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "unique": true, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "unique": true, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "unique": true, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "sku", + "type": { + "type_name": "VARCHAR2(50)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "unique": true, + "checks": [] + }, + { + "name": "tracking_number", + "type": { + "type_name": "VARCHAR2(50)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "unique": true, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "budget", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "suppliers", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "supp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "unique": true, + "checks": [] + }, + { + "name": "contact", + "type": { + "type_name": "VARCHAR2(100)" + }, + "unique": true, + "checks": [] + }, + { + "name": "ssn", + "type": { + "type_name": "VARCHAR2(11)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_basic", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "value", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_named", + "fields": [ + { + "name": "code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "unique": true, + "checks": [] + }, + { + "name": "ref_id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_status", + "fields": [ + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "unique": true, + "checks": [] + }, + { + "name": "status_code", + "type": { + "type_name": "VARCHAR2(10)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_dates", + "fields": [ + { + "name": "event_date", + "type": { + "type_name": "DATE" + }, + "unique": true, + "checks": [] + }, + { + "name": "end_date", + "type": { + "type_name": "DATE" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_enable", + "fields": [ + { + "name": "level", + "type": { + "type_name": "NUMBER(2)" + }, + "unique": true, + "checks": [] + }, + { + "name": "rating", + "type": { + "type_name": "NUMBER(2)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable", + "fields": [ + { + "name": "priority", + "type": { + "type_name": "NUMBER(2)" + }, + "unique": true, + "checks": [] + }, + { + "name": "rank", + "type": { + "type_name": "NUMBER(2)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_validate", + "fields": [ + { + "name": "amount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "unique": true, + "checks": [] + }, + { + "name": "tax", + "type": { + "type_name": "NUMBER(10,2)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_novalidate", + "fields": [ + { + "name": "discount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "unique": true, + "checks": [] + }, + { + "name": "margin", + "type": { + "type_name": "NUMBER(10,2)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable_novalidate", + "fields": [ + { + "name": "weight", + "type": { + "type_name": "NUMBER(8,2)" + }, + "unique": true, + "checks": [] + }, + { + "name": "volume", + "type": { + "type_name": "NUMBER(8,2)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_rely", + "fields": [ + { + "name": "code", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "ref_id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_norely", + "fields": [ + { + "name": "sequence", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "counter", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_enable_rely", + "fields": [ + { + "name": "batch_id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "lot_number", + "type": { + "type_name": "VARCHAR2(20)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_disable_norely", + "fields": [ + { + "name": "zone_id", + "type": { + "type_name": "NUMBER(5)" + }, + "unique": true, + "checks": [] + }, + { + "name": "area_code", + "type": { + "type_name": "VARCHAR2(10)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_deferrable_deferred", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "line_item", + "type": { + "type_name": "NUMBER(5)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_deferrable_immediate", + "fields": [ + { + "name": "invoice_id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "payment_status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_not_deferrable", + "fields": [ + { + "name": "ticket_id", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "issue_date", + "type": { + "type_name": "DATE" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes_inline", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_long_name", + "fields": [ + { + "name": "identifier", + "type": { + "type_name": "NUMBER(10)" + }, + "unique": true, + "checks": [] + }, + { + "name": "record_code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_complex", + "fields": [ + { + "name": "score", + "type": { + "type_name": "NUMBER(3)" + }, + "unique": true, + "checks": [] + }, + { + "name": "rating", + "type": { + "type_name": "VARCHAR2(20)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/comment.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/comment.out.json new file mode 100644 index 000000000..9041fe9d6 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/comment.out.json @@ -0,0 +1,31 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "name", + "type": { + "type_name": "VARCHAR(20)" + }, + "note": { + "value": "The name of the customer." + }, + "checks": [] + } + ], + "indexes": [], + "note": { + "value": "This table stores customer data." + }, + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/create_index.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/create_index.out.json new file mode 100644 index 000000000..ac9b49b73 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/create_index.out.json @@ -0,0 +1,528 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + }, + { + "name": "reg_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "region", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + }, + { + "name": "credit_limit", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "idx_cust_id", + "unique": false, + "columns": [ + { + "value": "cust_id", + "type": "column" + } + ] + }, + { + "name": "idx_cust_email", + "unique": true, + "columns": [ + { + "value": "email", + "type": "column" + } + ] + }, + { + "name": "idx_cust_status", + "type": "bitmap", + "unique": false, + "columns": [ + { + "value": "status", + "type": "column" + } + ] + }, + { + "name": "idx_cust_name_upper", + "unique": false, + "columns": [ + { + "value": "UPPER(cust_name)", + "type": "expression" + } + ] + }, + { + "name": "idx_cust_email_lower", + "unique": true, + "columns": [ + { + "value": "LOWER(email)", + "type": "expression" + } + ] + }, + { + "name": "idx_very_long_index_name_for_testing_parser_limits", + "unique": false, + "columns": [ + { + "value": "cust_id", + "type": "column" + } + ] + }, + { + "name": "idx_cust_id_bitmap", + "type": "bitmap", + "unique": false, + "columns": [ + { + "value": "cust_id", + "type": "column" + } + ] + }, + { + "name": "idx_cust_complex", + "unique": false, + "columns": [ + { + "value": "TO_CHAR(reg_date, 'YYYYMM') || cust_name", + "type": "expression" + } + ] + } + ], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + }, + { + "name": "sku", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + }, + { + "name": "stock_level", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "warehouse_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supplier_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "idx_inv_item_price", + "unique": false, + "columns": [ + { + "value": "item_name", + "type": "column" + }, + { + "value": "price", + "type": "column" + } + ] + }, + { + "name": "idx_inv_category_stock", + "type": "bitmap", + "unique": false, + "columns": [ + { + "value": "category", + "type": "column" + }, + { + "value": "stock_level", + "type": "column" + } + ] + }, + { + "name": "idx_inv_name_price", + "unique": false, + "columns": [ + { + "value": "UPPER(item_name)", + "type": "expression" + }, + { + "value": "price * 1.1", + "type": "expression" + } + ] + }, + { + "name": "idx_inv_hash_like", + "unique": false, + "columns": [ + { + "value": "ORA_HASH(item_name)", + "type": "expression" + } + ] + } + ], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + }, + { + "name": "tracking_number", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + }, + { + "name": "carrier", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "priority", + "type": { + "type_name": "NUMBER(2)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "idx_ship_cust_date", + "unique": true, + "columns": [ + { + "value": "customer_id", + "type": "column" + }, + { + "value": "ship_date", + "type": "column" + } + ] + }, + { + "name": "idx_ship_nullable", + "unique": false, + "columns": [ + { + "value": "customer_id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "location", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "suppliers", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "contact", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "city", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "idx_dt_mixed", + "unique": false, + "columns": [ + { + "value": "col_number", + "type": "column" + }, + { + "value": "col_varchar2", + "type": "column" + }, + { + "value": "col_date", + "type": "column" + } + ] + } + ], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/create_table.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/create_table.out.json new file mode 100644 index 000000000..2a110d884 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/create_table.out.json @@ -0,0 +1,1010 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "employees", + "schemaName": "hr", + "fields": [ + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "emp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "INVENTORY", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Customer Data", + "fields": [ + { + "name": "data_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "data_value", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "order-details$test", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "detail_desc", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "sales#report@2023", + "fields": [ + { + "name": "report_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "report_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "客户信息", + "fields": [ + { + "name": "client_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "client_name", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "departments", + "schemaName": "sales", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Employee Records", + "schemaName": "hr", + "fields": [ + { + "name": "record_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "record_status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "budget-report#2023", + "schemaName": "finance", + "fields": [ + { + "name": "budget_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "製品データ", + "schemaName": "global", + "fields": [ + { + "name": "product_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "product_name", + "type": { + "type_name": "NVARCHAR2(200)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "very_long_table_name_for_testing_parser_limits_1234567890", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "description", + "type": { + "type_name": "VARCHAR2(4000)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Sales Report Data 2023", + "fields": [ + { + "name": "sales_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "sales_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test@#$%^&*_table!", + "fields": [ + { + "name": "test_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "test_value", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "project_tasks#1", + "fields": [ + { + "name": "task_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "task_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "order details", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "order_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Employee_Contracts_2023", + "schemaName": "hr", + "fields": [ + { + "name": "contract_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "emp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "供应商数据", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "dbdefault": { + "value": "Anonymous", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Sales Data Archive", + "fields": [ + { + "name": "archive_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "archive_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "orders-2023-range", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "order_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Customer_Regions#List", + "schemaName": "sales", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "region", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "inventory_hash@test", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Temp Customer Data", + "fields": [ + { + "name": "temp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "temp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "external_logs#2023", + "fields": [ + { + "name": "log_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "log_message", + "type": { + "type_name": "VARCHAR2(4000)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Employee_IOT@Data", + "schemaName": "hr", + "fields": [ + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "emp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Project Tasks#Validated", + "fields": [ + { + "name": "task_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "task_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Tasks#NonValidated", + "fields": [ + { + "name": "task_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "priority", + "type": { + "type_name": "NUMBER(2)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Orders_Rely#2023", + "schemaName": "sales", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "order_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Suppliers_Norely@Data", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "supp_contact", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Contracts@Defer", + "fields": [ + { + "name": "contract_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "contract_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Tickets#NonDefer", + "fields": [ + { + "name": "ticket_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "ticket_type", + "type": { + "type_name": "VARCHAR2(20)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Test Data Types#2023", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "dbdefault": { + "value": "DEFAULT ", + "type": "string" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "pk": true, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "very_long_table_name_1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "value", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "TABLE", + "fields": [ + { + "name": "table_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "table_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Employee Data#Report$2023", + "schemaName": "hr data", + "fields": [ + { + "name": "report_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "report_value", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "製品情報@データ", + "schemaName": "グローバル", + "fields": [ + { + "name": "prod_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "prod_name", + "type": { + "type_name": "NVARCHAR2(200)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Sales Report#Data 2023@Prod", + "fields": [ + { + "name": "sales_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "sales_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Temp#Customer_Records", + "fields": [ + { + "name": "temp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "temp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "Order Details#2023", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "quantity", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_order_details", + "pk": true, + "columns": [ + { + "value": "order_id", + "type": "column" + }, + { + "value": "item_id", + "type": "column" + } + ] + } + ], + "checks": [] + } + ], + "refs": [ + { + "name": "fk_order_cust", + "endpoints": [ + { + "tableName": "order details", + "fieldNames": [ + "cust_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + } + ], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/data_types.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/data_types.out.json new file mode 100644 index 000000000..18aa87f44 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/data_types.out.json @@ -0,0 +1,186 @@ +{ + "schemas": [], + "tables": [ + { + "name": "data_types", + "fields": [ + { + "name": "c1_char", + "type": { + "type_name": "CHAR(10)" + }, + "checks": [] + }, + { + "name": "c2_varchar2", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + }, + { + "name": "c3_varchar", + "type": { + "type_name": "VARCHAR(50)" + }, + "checks": [] + }, + { + "name": "c4_nchar", + "type": { + "type_name": "NCHAR(20)" + }, + "checks": [] + }, + { + "name": "c5_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "c6_number", + "type": { + "type_name": "NUMBER(10, 2)" + }, + "checks": [] + }, + { + "name": "c7_long", + "type": { + "type_name": "LONG" + }, + "checks": [] + }, + { + "name": "c8_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "c9_binary_float", + "type": { + "type_name": "BINARY_FLOAT" + }, + "checks": [] + }, + { + "name": "c10_binary_double", + "type": { + "type_name": "BINARY_DOUBLE" + }, + "checks": [] + }, + { + "name": "c11_timestamp", + "type": { + "type_name": "TIMESTAMP(6)" + }, + "checks": [] + }, + { + "name": "c12_timestamp_with_tz", + "type": { + "type_name": "TIMESTAMP(6) WITH TIME ZONE" + }, + "checks": [] + }, + { + "name": "c13_timestamp_with_local_tz", + "type": { + "type_name": "TIMESTAMP(6) WITH LOCAL TIME ZONE" + }, + "checks": [] + }, + { + "name": "c14_interval_ytm", + "type": { + "type_name": "INTERVAL YEAR(2) TO MONTH" + }, + "checks": [] + }, + { + "name": "c15_interval_dts", + "type": { + "type_name": "INTERVAL DAY(2) TO SECOND(6)" + }, + "checks": [] + }, + { + "name": "c16_raw", + "type": { + "type_name": "RAW(1000)" + }, + "checks": [] + }, + { + "name": "c17_long_raw", + "type": { + "type_name": "LONG RAW" + }, + "checks": [] + }, + { + "name": "c18_rowid", + "type": { + "type_name": "ROWID" + }, + "checks": [] + }, + { + "name": "c19_urowid", + "type": { + "type_name": "UROWID(4000)" + }, + "checks": [] + }, + { + "name": "c20_clob", + "type": { + "type_name": "CLOB" + }, + "checks": [] + }, + { + "name": "c21_nclob", + "type": { + "type_name": "NCLOB" + }, + "checks": [] + }, + { + "name": "c22_blob", + "type": { + "type_name": "BLOB" + }, + "checks": [] + }, + { + "name": "c23_bfile", + "type": { + "type_name": "BFILE" + }, + "checks": [] + }, + { + "name": "c24_xmltype", + "type": { + "type_name": "XMLTYPE" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_checks.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_checks.out.json new file mode 100644 index 000000000..92ebfc14f --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_checks.out.json @@ -0,0 +1,536 @@ +{ + "schemas": [], + "tables": [ + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "cust_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "phone", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "expression": "cust_id > 0" + } + ] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_name", + "type": { + "type_name": "VARCHAR2(200)" + }, + "checks": [] + }, + { + "name": "price", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "category", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_price_pos", + "expression": "price >= 0" + } + ] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_amount_date", + "expression": "total_amount >= 0 AND ship_date IS NOT NULL" + } + ] + }, + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "budget", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "expression": "budget >= 0" + } + ] + }, + { + "name": "suppliers", + "fields": [ + { + "name": "supp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "supp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "contact", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "credit_limit", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_credit_limit", + "expression": "credit_limit >= 0" + } + ] + }, + { + "name": "employees", + "fields": [ + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "emp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_status_values", + "expression": "status IN ('ACTIVE', 'INACTIVE', 'SUSPENDED')" + } + ] + }, + { + "name": "orders", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "order_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "total_amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + }, + { + "name": "tax_amount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_order_amounts", + "expression": "total_amount >= tax_amount AND tax_amount >= 0" + } + ] + }, + { + "name": "contracts", + "fields": [ + { + "name": "contract_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "start_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "end_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_date_range", + "expression": "end_date > start_date AND start_date >= SYSDATE" + } + ] + }, + { + "name": "users", + "fields": [ + { + "name": "user_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "username", + "type": { + "type_name": "VARCHAR2(50)" + }, + "checks": [] + }, + { + "name": "email", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "ssn", + "type": { + "type_name": "VARCHAR2(11)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_ssn_format", + "expression": "ssn LIKE '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]'" + } + ] + }, + { + "name": "sales", + "fields": [ + { + "name": "sale_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "sale_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + }, + { + "name": "discount", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_sale_complex", + "expression": "amount >= discount AND discount >= 0 AND sale_date >= SYSDATE" + } + ] + }, + { + "name": "accounts", + "fields": [ + { + "name": "account_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "account_number", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + }, + { + "name": "balance", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + }, + { + "name": "account_type", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_acc_number", + "expression": "REGEXP_LIKE(account_number, '^[0-9]{10}$')" + } + ] + }, + { + "name": "reports", + "fields": [ + { + "name": "report_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "report_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "report_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_very_long_constraint_name_for_testing_parser_limits", + "expression": "status IN ('DRAFT', 'FINAL', 'ARCHIVED')" + } + ] + }, + { + "name": "employees_sub", + "fields": [ + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "emp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "salary", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [ + { + "name": "chk_dept_exists", + "expression": "dept_id IN (SELECT dept_id FROM departments)" + } + ] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_fk.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_fk.out.json new file mode 100644 index 000000000..7d152e7cc --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_fk.out.json @@ -0,0 +1,715 @@ +{ + "schemas": [], + "tables": [ + { + "name": "departments", + "fields": [ + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "customers", + "fields": [ + { + "name": "cust_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "employees", + "fields": [ + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "emp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "orders", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "order_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "shipments", + "fields": [ + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "customer_id", + "type": { + "type_name": "NUMBER(10)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "ship_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "complex_parent", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [ + { + "pk": true, + "columns": [ + { + "value": "id", + "type": "column" + }, + { + "value": "code", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "inventory", + "fields": [ + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "complex_child", + "fields": [ + { + "name": "child_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "parent_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "parent_code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "order_details", + "fields": [ + { + "name": "detail_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "assignments", + "fields": [ + { + "name": "assignment_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "project_members", + "fields": [ + { + "name": "member_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "dept_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "unique": true, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "unique": true, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "test_datatypes_fk", + "fields": [ + { + "name": "id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "employees_self", + "fields": [ + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "manager_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "emp_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "order_history", + "fields": [ + { + "name": "history_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "history_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "shipment_details", + "fields": [ + { + "name": "detail_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "ship_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + }, + { + "name": "project_assignments", + "fields": [ + { + "name": "assign_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "emp_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "project_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [ + { + "endpoints": [ + { + "tableName": "employees", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_order_cust", + "endpoints": [ + { + "tableName": "orders", + "fieldNames": [ + "customer_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_ship_cust", + "endpoints": [ + { + "tableName": "shipments", + "fieldNames": [ + "customer_id" + ], + "relation": "*" + }, + { + "tableName": "customers", + "fieldNames": [ + "cust_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_child_complex", + "endpoints": [ + { + "tableName": "complex_child", + "fieldNames": [ + "parent_id", + "parent_code" + ], + "relation": "*" + }, + { + "tableName": "complex_parent", + "fieldNames": [ + "id", + "code" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_detail_item", + "endpoints": [ + { + "tableName": "order_details", + "fieldNames": [ + "item_id" + ], + "relation": "*" + }, + { + "tableName": "inventory", + "fieldNames": [ + "item_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_assign_dept", + "endpoints": [ + { + "tableName": "assignments", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_member_dept", + "endpoints": [ + { + "tableName": "project_members", + "fieldNames": [ + "dept_id" + ], + "relation": "*" + }, + { + "tableName": "departments", + "fieldNames": [ + "dept_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_dt_number", + "endpoints": [ + { + "tableName": "test_datatypes_fk", + "fieldNames": [ + "col_number" + ], + "relation": "*" + }, + { + "tableName": "test_datatypes", + "fieldNames": [ + "col_number" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_dt_varchar2", + "endpoints": [ + { + "tableName": "test_datatypes_fk", + "fieldNames": [ + "col_varchar2" + ], + "relation": "*" + }, + { + "tableName": "test_datatypes", + "fieldNames": [ + "col_varchar2" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_self_manager", + "endpoints": [ + { + "tableName": "employees_self", + "fieldNames": [ + "manager_id" + ], + "relation": "*" + }, + { + "tableName": "employees_self", + "fieldNames": [ + "emp_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_very_long_constraint_name_for_testing_parser_limits", + "endpoints": [ + { + "tableName": "order_history", + "fieldNames": [ + "order_id" + ], + "relation": "*" + }, + { + "tableName": "orders", + "fieldNames": [ + "order_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_ship_detail", + "endpoints": [ + { + "tableName": "shipment_details", + "fieldNames": [ + "ship_id" + ], + "relation": "*" + }, + { + "tableName": "shipments", + "fieldNames": [ + "ship_id" + ], + "relation": "1" + } + ] + }, + { + "name": "fk_assign_emp", + "endpoints": [ + { + "tableName": "project_assignments", + "fieldNames": [ + "emp_id" + ], + "relation": "*" + }, + { + "tableName": "employees", + "fieldNames": [ + "emp_id" + ], + "relation": "1" + } + ] + } + ], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_pk.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_pk.out.json new file mode 100644 index 000000000..de693a38d --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_pk.out.json @@ -0,0 +1,380 @@ +{ + "schemas": [], + "tables": [ + { + "name": "test_datatypes", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_number", + "pk": true, + "columns": [ + { + "value": "col_number", + "type": "column" + } + ] + }, + { + "name": "pk_varchar2", + "pk": true, + "columns": [ + { + "value": "col_varchar2", + "type": "column" + } + ] + }, + { + "name": "pk_char", + "pk": true, + "columns": [ + { + "value": "col_char", + "type": "column" + } + ] + }, + { + "name": "pk_date", + "pk": true, + "columns": [ + { + "value": "col_date", + "type": "column" + } + ] + }, + { + "name": "pk_timestamp", + "pk": true, + "columns": [ + { + "value": "col_timestamp", + "type": "column" + } + ] + }, + { + "name": "pk_clob", + "pk": true, + "columns": [ + { + "value": "col_clob", + "type": "column" + } + ] + }, + { + "name": "pk_raw", + "pk": true, + "columns": [ + { + "value": "col_raw", + "type": "column" + } + ] + }, + { + "name": "pk_float", + "pk": true, + "columns": [ + { + "value": "col_float", + "type": "column" + } + ] + }, + { + "name": "pk_integer", + "pk": true, + "columns": [ + { + "value": "col_integer", + "type": "column" + } + ] + }, + { + "name": "pk_nvarchar2", + "pk": true, + "columns": [ + { + "value": "col_nvarchar2", + "type": "column" + } + ] + }, + { + "name": "pk_nchar", + "pk": true, + "columns": [ + { + "value": "col_nchar", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "order_details", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "quantity", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "order_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_order_details", + "pk": true, + "columns": [ + { + "value": "order_id", + "type": "column" + }, + { + "value": "item_id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "reports", + "fields": [ + { + "name": "report_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "report_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "report_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_very_long_constraint_name_for_testing_parser_limits", + "pk": true, + "columns": [ + { + "value": "report_id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "sales", + "fields": [ + { + "name": "sale_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "sale_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "amount", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_sale", + "pk": true, + "columns": [ + { + "value": "sale_id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "accounts", + "fields": [ + { + "name": "account_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "account_number", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + }, + { + "name": "balance", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "pk_account", + "pk": true, + "columns": [ + { + "value": "account_id", + "type": "column" + } + ] + } + ], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_unique.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_unique.out.json new file mode 100644 index 000000000..574ab66c8 --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/in_table_unique.out.json @@ -0,0 +1,380 @@ +{ + "schemas": [], + "tables": [ + { + "name": "test_datatypes", + "fields": [ + { + "name": "col_number", + "type": { + "type_name": "NUMBER(10,2)" + }, + "checks": [] + }, + { + "name": "col_varchar2", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_char", + "type": { + "type_name": "CHAR(10)" + }, + "checks": [] + }, + { + "name": "col_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "col_timestamp", + "type": { + "type_name": "TIMESTAMP" + }, + "checks": [] + }, + { + "name": "col_clob", + "type": { + "type_name": "CLOB" + }, + "checks": [] + }, + { + "name": "col_raw", + "type": { + "type_name": "RAW(100)" + }, + "checks": [] + }, + { + "name": "col_float", + "type": { + "type_name": "FLOAT" + }, + "checks": [] + }, + { + "name": "col_integer", + "type": { + "type_name": "INTEGER" + }, + "checks": [] + }, + { + "name": "col_nvarchar2", + "type": { + "type_name": "NVARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "col_nchar", + "type": { + "type_name": "NCHAR(10)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "uk_number", + "unique": true, + "columns": [ + { + "value": "col_number", + "type": "column" + } + ] + }, + { + "name": "uk_varchar2", + "unique": true, + "columns": [ + { + "value": "col_varchar2", + "type": "column" + } + ] + }, + { + "name": "uk_char", + "unique": true, + "columns": [ + { + "value": "col_char", + "type": "column" + } + ] + }, + { + "name": "uk_date", + "unique": true, + "columns": [ + { + "value": "col_date", + "type": "column" + } + ] + }, + { + "name": "uk_timestamp", + "unique": true, + "columns": [ + { + "value": "col_timestamp", + "type": "column" + } + ] + }, + { + "name": "uk_clob", + "unique": true, + "columns": [ + { + "value": "col_clob", + "type": "column" + } + ] + }, + { + "name": "uk_raw", + "unique": true, + "columns": [ + { + "value": "col_raw", + "type": "column" + } + ] + }, + { + "name": "uk_float", + "unique": true, + "columns": [ + { + "value": "col_float", + "type": "column" + } + ] + }, + { + "name": "uk_integer", + "unique": true, + "columns": [ + { + "value": "col_integer", + "type": "column" + } + ] + }, + { + "name": "uk_nvarchar2", + "unique": true, + "columns": [ + { + "value": "col_nvarchar2", + "type": "column" + } + ] + }, + { + "name": "uk_nchar", + "unique": true, + "columns": [ + { + "value": "col_nchar", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "order_details", + "fields": [ + { + "name": "order_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "item_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "quantity", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "order_ref", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "uk_order_ref", + "unique": true, + "columns": [ + { + "value": "order_id", + "type": "column" + }, + { + "value": "item_id", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "reports", + "fields": [ + { + "name": "report_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "report_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "report_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "report_code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "uk_very_long_constraint_name_for_testing_parser_limits", + "unique": true, + "columns": [ + { + "value": "report_code", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "sales", + "fields": [ + { + "name": "sale_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "sale_date", + "type": { + "type_name": "DATE" + }, + "checks": [] + }, + { + "name": "sale_code", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "uk_sale_code", + "unique": true, + "columns": [ + { + "value": "sale_code", + "type": "column" + } + ] + } + ], + "checks": [] + }, + { + "name": "accounts", + "fields": [ + { + "name": "account_id", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "account_number", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + }, + { + "name": "balance", + "type": { + "type_name": "NUMBER(12,2)" + }, + "checks": [] + } + ], + "indexes": [ + { + "name": "uk_account_number", + "unique": true, + "columns": [ + { + "value": "account_number", + "type": "column" + } + ] + } + ], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/oracle-parse/output/insert_general.out.json b/packages/dbml-core/__tests__/parser/oracle-parse/output/insert_general.out.json new file mode 100644 index 000000000..9bf07fdec --- /dev/null +++ b/packages/dbml-core/__tests__/parser/oracle-parse/output/insert_general.out.json @@ -0,0 +1,905 @@ +{ + "schemas": [], + "tables": [ + { + "name": "database_products", + "fields": [ + { + "name": "product_id", + "type": { + "type_name": "NUMBER(10)" + }, + "pk": true, + "checks": [] + }, + { + "name": "product_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "not_null": true, + "checks": [] + }, + { + "name": "vendor_name", + "type": { + "type_name": "VARCHAR2(100)" + }, + "checks": [] + }, + { + "name": "release_year", + "type": { + "type_name": "NUMBER(4)" + }, + "checks": [] + }, + { + "name": "is_open_source", + "type": { + "type_name": "NUMBER(1)" + }, + "dbdefault": { + "value": 0, + "type": "number" + }, + "checks": [] + }, + { + "name": "license_cost", + "type": { + "type_name": "NUMBER(10, 2)" + }, + "checks": [] + }, + { + "name": "market_share", + "type": { + "type_name": "NUMBER(5, 2)" + }, + "checks": [] + }, + { + "name": "latest_version", + "type": { + "type_name": "VARCHAR2(20)" + }, + "checks": [] + }, + { + "name": "description", + "type": { + "type_name": "CLOB" + }, + "checks": [] + }, + { + "name": "created_at", + "type": { + "type_name": "TIMESTAMP" + }, + "dbdefault": { + "value": "SYSTIMESTAMP", + "type": "expression" + }, + "checks": [] + }, + { + "name": "updated_at", + "type": { + "type_name": "TIMESTAMP" + }, + "dbdefault": { + "value": "SYSTIMESTAMP", + "type": "expression" + }, + "checks": [] + }, + { + "name": "is_active", + "type": { + "type_name": "NUMBER(1)" + }, + "dbdefault": { + "value": 1, + "type": "number" + }, + "checks": [] + }, + { + "name": "max_connections", + "type": { + "type_name": "NUMBER(10)" + }, + "checks": [] + }, + { + "name": "status", + "type": { + "type_name": "CHAR(1)" + }, + "dbdefault": { + "value": "A", + "type": "string" + }, + "checks": [] + } + ], + "indexes": [], + "checks": [] + } + ], + "refs": [], + "enums": [], + "tableGroups": [], + "aliases": [], + "project": {}, + "records": [ + { + "tableName": "database_products", + "columns": [ + "product_id", + "product_name", + "vendor_name", + "release_year", + "is_open_source", + "license_cost", + "market_share", + "latest_version", + "description", + "is_active", + "max_connections", + "status" + ], + "values": [ + [ + { + "value": "db_products_seq.NEXTVAL", + "type": "expression" + }, + { + "value": "Oracle Database", + "type": "string" + }, + { + "value": "Oracle Corporation", + "type": "string" + }, + { + "value": 1979, + "type": "number" + }, + { + "value": 0, + "type": "number" + }, + { + "value": 47500, + "type": "number" + }, + { + "value": 28.5, + "type": "number" + }, + { + "value": "21c", + "type": "string" + }, + { + "value": "Enterprise relational database management system", + "type": "string" + }, + { + "value": 1, + "type": "number" + }, + { + "value": 10000, + "type": "number" + }, + { + "value": "A", + "type": "string" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "vendor_name", + "is_open_source", + "is_active" + ], + "values": [ + [ + { + "value": "MySQL", + "type": "string" + }, + { + "value": "Oracle Corporation", + "type": "string" + }, + { + "value": 1, + "type": "number" + }, + { + "value": 1, + "type": "number" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "vendor_name", + "license_cost", + "description" + ], + "values": [ + [ + { + "value": "PostgreSQL", + "type": "string" + }, + { + "value": "PostgreSQL Global Development Group", + "type": "string" + }, + { + "value": null, + "type": "boolean" + }, + { + "value": null, + "type": "boolean" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "release_year", + "market_share", + "max_connections" + ], + "values": [ + [ + { + "value": "SQLite", + "type": "string" + }, + { + "value": 2000, + "type": "number" + }, + { + "value": "15.5 + 2.3", + "type": "expression" + }, + { + "value": "1000 * 10", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "vendor_name", + "description", + "latest_version" + ], + "values": [ + [ + { + "value": "UPPER('microsoft sql server')", + "type": "expression" + }, + { + "value": "'Microsoft' || ' Corporation'", + "type": "expression" + }, + { + "value": "TRIM(' Relational database management system ')", + "type": "expression" + }, + { + "value": "SUBSTR('2022-CU10', 1, 4)", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "vendor_name", + "release_year", + "created_at" + ], + "values": [ + [ + { + "value": "MariaDB", + "type": "string" + }, + { + "value": "MariaDB Foundation", + "type": "string" + }, + { + "value": "EXTRACT(YEAR FROM SYSDATE)", + "type": "expression" + }, + { + "value": "SYSTIMESTAMP", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "license_cost", + "market_share", + "max_connections" + ], + "values": [ + [ + { + "value": "IBM Db2", + "type": "string" + }, + { + "value": "1500.00 * 12", + "type": "expression" + }, + { + "value": "ROUND(5.678, 1)", + "type": "expression" + }, + { + "value": "POWER(2, 14)", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "vendor_name", + "license_cost", + "is_open_source" + ], + "values": [ + [ + { + "value": "Amazon Aurora", + "type": "string" + }, + { + "value": "Amazon Web Services", + "type": "string" + }, + { + "value": "CASE WHEN 1=1 THEN 0.00 ELSE 1000.00 END", + "type": "expression" + }, + { + "value": 0, + "type": "number" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name" + ], + "values": [ + [ + { + "value": "CockroachDB", + "type": "string" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "license_cost", + "release_year" + ], + "values": [ + [ + { + "value": "Test Database", + "type": "string" + }, + { + "value": "-100.00", + "type": "expression" + }, + { + "value": 2020, + "type": "number" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "max_connections", + "license_cost" + ], + "values": [ + [ + { + "value": "Enterprise DB", + "type": "string" + }, + { + "value": 999999, + "type": "number" + }, + { + "value": 99999.99, + "type": "number" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "description" + ], + "values": [ + [ + { + "value": "Neo4j", + "type": "string" + }, + { + "value": "'Graph database for connected data' || CHR(10) || 'Supports Cypher query language'", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "release_year", + "created_at" + ], + "values": [ + [ + { + "value": "Firebird", + "type": "string" + }, + { + "value": 2000, + "type": "number" + }, + { + "value": "TO_TIMESTAMP('2000-07-25 10:30:00', 'YYYY-MM-DD HH24:MI:SS')", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "is_active", + "product_name", + "is_open_source", + "vendor_name" + ], + "values": [ + [ + { + "value": 1, + "type": "number" + }, + { + "value": "TimescaleDB", + "type": "string" + }, + { + "value": 1, + "type": "number" + }, + { + "value": "Timescale Inc.", + "type": "string" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "license_cost", + "market_share", + "max_connections" + ], + "values": [ + [ + { + "value": "MemSQL", + "type": "string" + }, + { + "value": 0, + "type": "number" + }, + { + "value": 0, + "type": "number" + }, + { + "value": 0, + "type": "number" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "release_year", + "latest_version", + "created_at" + ], + "values": [ + [ + { + "value": "InfluxDB", + "type": "string" + }, + { + "value": "EXTRACT(YEAR FROM SYSDATE)", + "type": "expression" + }, + { + "value": "'v' || '2.7'", + "type": "expression" + }, + { + "value": "SYSDATE", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "vendor_name", + "license_cost" + ], + "values": [ + [ + { + "value": "Vertica", + "type": "string" + }, + { + "value": "Micro Focus", + "type": "string" + }, + { + "value": "NVL(NULL, 5000.00)", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "is_open_source", + "status" + ], + "values": [ + [ + { + "value": "Greenplum", + "type": "string" + }, + { + "value": "DECODE('yes', 'yes', 1, 'no', 0, 0)", + "type": "expression" + }, + { + "value": "A", + "type": "string" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "max_connections", + "vendor_name" + ], + "values": [ + [ + { + "value": "SAP HANA", + "type": "string" + }, + { + "value": "LENGTH('Maximum')", + "type": "expression" + }, + { + "value": "SAP SE", + "type": "string" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "vendor_name" + ], + "values": [ + [ + { + "value": "INITCAP('clickhouse')", + "type": "expression" + }, + { + "value": "INITCAP('clickhouse inc')", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "license_cost", + "market_share" + ], + "values": [ + [ + { + "value": "Snowflake", + "type": "string" + }, + { + "value": "COALESCE(NULL, NULL, 2500.00)", + "type": "expression" + }, + { + "value": 3.5, + "type": "number" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "max_connections", + "market_share" + ], + "values": [ + [ + { + "value": "Teradata", + "type": "string" + }, + { + "value": "GREATEST(1000, 5000, 3000)", + "type": "expression" + }, + { + "value": "LEAST(10.5, 8.2, 15.7)", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "max_connections", + "release_year" + ], + "values": [ + [ + { + "value": "Informix", + "type": "string" + }, + { + "value": "MOD(10050, 1000)", + "type": "expression" + }, + { + "value": "1980 + MOD(45, 20)", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_id", + "product_name", + "vendor_name" + ], + "values": [ + [ + { + "value": "db_products_seq.NEXTVAL", + "type": "expression" + }, + { + "value": "DynamoDB", + "type": "string" + }, + { + "value": "Amazon Web Services", + "type": "string" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "latest_version" + ], + "values": [ + [ + { + "value": "SingleStore", + "type": "string" + }, + { + "value": "LPAD('8', 3, '0') || '.' || RPAD('5', 2, '0')", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "description" + ], + "values": [ + [ + { + "value": "Azure SQL", + "type": "string" + }, + { + "value": "REPLACE('Microsoft cloud database service', 'cloud', 'managed cloud')", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "license_cost", + "market_share" + ], + "values": [ + [ + { + "value": "Db2 Warehouse", + "type": "string" + }, + { + "value": "ABS(-15000)", + "type": "expression" + }, + { + "value": "ABS(-4.5)", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "market_share", + "license_cost" + ], + "values": [ + [ + { + "value": "Actian Ingres", + "type": "string" + }, + { + "value": "TRUNC(7.89456, 2)", + "type": "expression" + }, + { + "value": "TRUNC(12345.6789, 2)", + "type": "expression" + } + ] + ] + }, + { + "tableName": "database_products", + "columns": [ + "product_name", + "vendor_name", + "latest_version", + "release_year" + ], + "values": [ + [ + { + "value": "UPPER(SUBSTR('rockset database', 1, 7))", + "type": "expression" + }, + { + "value": "INITCAP(TRIM(' rockset inc '))", + "type": "expression" + }, + { + "value": "'v' || TO_CHAR(ROUND(2.75, 1))", + "type": "expression" + }, + { + "value": "TO_NUMBER(TO_CHAR(SYSDATE, 'YYYY')) - 5", + "type": "expression" + } + ] + ] + } + ] +} \ No newline at end of file diff --git a/packages/dbml-core/__tests__/parser/parser.spec.js b/packages/dbml-core/__tests__/parser/parser.spec.js index 53adfff43..bfe941e1e 100644 --- a/packages/dbml-core/__tests__/parser/parser.spec.js +++ b/packages/dbml-core/__tests__/parser/parser.spec.js @@ -29,5 +29,9 @@ describe('@dbml/core', () => { test.each(scanTestNames(__dirname, 'mssql-parse/input'))('mssql-parse/%s', (name) => { runTest(name, 'mssql-parse', 'mssql', 'parseMSSQLToJSONv2'); }); + + test.each(scanTestNames(__dirname, 'oracle-parse/input'))('oracle-parse/%s', (name) => { + runTest(name, 'oracle-parse', 'oracle', 'parseOracleToJSON'); + }); }); }); diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/constants.js b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/constants.js index f832a2c1a..5e3547f9e 100644 --- a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/constants.js +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/constants.js @@ -1,22 +1,23 @@ export const TABLE_CONSTRAINT_KIND = { - FIELD: 'field', - INDEX: 'index', - FK: 'fk', - UNIQUE: 'unique', - PK: 'pk', - DEFAULT: 'default', - CHECK: 'check', + FIELD: 'table_field', + INDEX: 'table_index', + FK: 'table_fk', + UNIQUE: 'table_unique', + PK: 'table_pk', + DEFAULT: 'table_default', + CHECK: 'table_check', }; export const COLUMN_CONSTRAINT_KIND = { - NOT_NULL: 'not_null', - UNIQUE: 'unique', - PK: 'pk', - DEFAULT: 'dbdefault', - INCREMENT: 'increment', - INLINE_REF: 'inline_ref', - NOTE: 'note', - CHECK: 'check', + NOT_NULL: 'col_not_null', + NULLABLE: 'col_nullable', + UNIQUE: 'col_unique', + PK: 'col_pk', + DEFAULT: 'col_dbdefault', + INCREMENT: 'col_increment', + INLINE_REF: 'col_inline_ref', + NOTE: 'col_note', + CHECK: 'col_check', }; export const DATA_TYPE = { diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/index.js b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/index.js index 8d401ebe5..ea1c6f95e 100644 --- a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/index.js +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/index.js @@ -17,6 +17,10 @@ import TSqlLexer from '../parsers/mssql/TSqlLexer'; import TSqlParser from '../parsers/mssql/TSqlParser'; import MssqlASTGen from './mssql/MssqlASTGen'; +import OracleSQLLexer from '../parsers/oraclesql/OracleSqlLexer'; +import OracleSQLParser from '../parsers/oraclesql/OracleSqlParser'; +import OracleSqlASTGen from './oraclesql/OracleSQLASTGen'; + function parse (input, format) { const chars = new antlr4.InputStream(input); let database = null; @@ -84,6 +88,21 @@ function parse (input, format) { if (errorListener.errors.length) throw errorListener.errors; break; } + case 'oracle': { + const lexer = new OracleSQLLexer(chars); + const tokens = new antlr4.CommonTokenStream(lexer); + const parser = new OracleSQLParser(tokens); + parser.buildParseTrees = true; + parser.removeErrorListeners(); + parser.addErrorListener(errorListener); + + const parseTree = parser.sql_script(); + + database = parseTree.accept(new OracleSqlASTGen()); + + if (errorListener.errors.length) throw errorListener.errors; + break; + } default: throw new Error(`Format not supported: ${format}`); } diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js new file mode 100644 index 000000000..f05bda6fa --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js @@ -0,0 +1,961 @@ +import { last, flatten, merge } from 'lodash'; +import { + Field, + Index, + Table, + TableRecord, + Ref, + Endpoint, +} from '../AST'; +import { + TABLE_CONSTRAINT_KIND, + COLUMN_CONSTRAINT_KIND, + DATA_TYPE, + CONSTRAINT_TYPE, +} from '../constants'; +import { getOriginalText } from '../helpers'; +import { CompilerError } from '../../../error'; +import OracleSqlParserVisitor from '../../parsers/oraclesql/OracleSqlParserVisitor'; + +const findTable = (tables, schemaName, tableName) => { + const realSchemaName = schemaName || null; + const table = tables.find(table => { + const targetSchemaName = table.schemaName || null; + return targetSchemaName === realSchemaName && table.name === tableName; + }); + return table; +}; + +const findColumn = (table, columnName) => { + const column = table.fields.find(field => field.name === columnName); + return column; +}; + +// `e` is the value returned by `visitExpression` +const processDefaultExpression = (e) => ({ + value: e.type !== CONSTRAINT_TYPE.COLUMN ? e.value : e.rawValue, + type: e.type !== CONSTRAINT_TYPE.COLUMN ? e.type : DATA_TYPE.EXPRESSION, +}); + +// `e` is the value returned by `visitExpression` +const processIndexExpression = (e) => { + let type; + switch (e.type) { + case CONSTRAINT_TYPE.COLUMN: + type = CONSTRAINT_TYPE.COLUMN; + break; + case DATA_TYPE.STRING: + type = CONSTRAINT_TYPE.STRING; + break; + default: + type = CONSTRAINT_TYPE.EXPRESSION; + break; + } + return { + value: e.value.toString(), + type, + }; +}; + +const createCompilerError = (ctx, message) => { + return CompilerError.create([{ + message, + location: { + start: { + line: ctx.start.line, + column: ctx.start.charPositionInLine + 1, + }, + end: { + line: ctx.stop.line, + column: ctx.stop.charPositionInLine + ctx.stop.text.length + 1, + }, + }, + }]); +}; + +// Only methods for rules representing whole statements can mutate `data`: +// * create_table +// * alter_table +// * create_index +// * insert_statement +// All other methods must be pure +export default class OracleSqlASTGen extends OracleSqlParserVisitor { + constructor () { + super(); + this.data = { + schemas: [], + tables: [], + refs: [], + enums: [], + tableGroups: [], + aliases: [], + project: {}, + records: [], + }; + } + + // sql_script + // : sql_plus_command_no_semicolon? ( + // (((sql_plus_command SEMICOLON? '/'?) | (unit_statement SEMICOLON '/'?))* (sql_plus_command | unit_statement)) SEMICOLON? '/'? + // )? EOF + // ; + visitSql_script (ctx) { + ctx.unit_statement()?.forEach(stmt => stmt.accept(this)); + return this.data; + } + + // unit_statement + // : create_table + // | comment_on_table + // | comment_on_column + // | alter_table + // | create_index + // | data_manipulation_language_statements + // | + // ; + visitUnit_statement (ctx) { + if (ctx.create_table()) { + ctx.create_table().accept(this); + } else if (ctx.comment_on_table()) { + ctx.comment_on_table().accept(this); + } else if (ctx.comment_on_column()) { + ctx.comment_on_column().accept(this); + } else if (ctx.alter_table()) { + ctx.alter_table().accept(this); + } else if (ctx.create_index()) { + ctx.create_index().accept(this); + } else if (ctx.data_manipulation_language_statements()) { + ctx.data_manipulation_language_statements().accept(this); + } + } + + // data_manipulation_language_statements + // : insert_statement + // | + // ; + visitData_manipulation_language_statements (ctx) { + if (ctx.insert_statement()) { + ctx.insert_statement().accept(this); + } + } + + // create_table + // : CREATE TABLE (schema_name '.')? table_name + // (relational_table | ) + // | + // ; + visitCreate_table (ctx) { + const tableName = ctx.table_name().accept(this); + const schemaName = ctx.schema_name() ? ctx.schema_name().accept(this) : undefined; + + if (ctx.relational_table()) { + const tableElements = ctx.relational_table().accept(this); + const [fieldsData, indexes, tableRefs, tableChecks] = tableElements.reduce((acc, ele) => { + if (ele.type === TABLE_CONSTRAINT_KIND.FIELD) acc[0].push(ele.value); + else if ([TABLE_CONSTRAINT_KIND.INDEX, TABLE_CONSTRAINT_KIND.UNIQUE, TABLE_CONSTRAINT_KIND.PK].includes(ele.type)) acc[1].push(ele.value); + else if (ele.type === TABLE_CONSTRAINT_KIND.FK) acc[2].push(ele.value); + else if (ele.type === TABLE_CONSTRAINT_KIND.CHECK) acc[3].push(...ele.value.checks); + return acc; + }, [[], [], [], []]); + + this.data.refs.push(...flatten( + fieldsData.map(fieldData => fieldData.inline_refs.map(inlineRef => { + inlineRef.endpoints[0].tableName = tableName; + inlineRef.endpoints[0].schemaName = schemaName; + inlineRef.endpoints[0].fieldNames = [fieldData.field.name]; + return inlineRef; + })), + )); + + this.data.refs.push(...tableRefs.map(tableRef => { + tableRef.endpoints[0].tableName = tableName; + tableRef.endpoints[0].schemaName = schemaName; + return tableRef; + })); + + this.data.tables.push(new Table({ + name: tableName, + schemaName, + fields: fieldsData.map(fd => fd.field), + indexes, + checks: tableChecks, + })); + } + } + + // relational_table + // : ('(' relational_property (',' relational_property)* ')')? relational_table_properties? + // ; + visitRelational_table (ctx) { + if (ctx.relational_property()) { + return ctx.relational_property().map(p => p.accept(this)); + } + return []; + } + + // relational_property + // : column_definition + // | out_of_line_constraint + // | out_of_line_ref_constraint + // | + // ; + visitRelational_property (ctx) { + if (ctx.column_definition()) { + return ctx.column_definition().accept(this); + } + if (ctx.out_of_line_constraint()) { + return ctx.out_of_line_constraint().accept(this); + } + if (ctx.out_of_line_ref_constraint()) { + return ctx.out_of_line_ref_constraint().accept(this); + } + return null; + } + + // column_definition + // : column_name ((datatype | type_name) (COLLATE column_collation_name)?)? SORT? ( + // VISIBLE + // | INVISIBLE + // )? (DEFAULT (ON NULL_)? expression | identity_clause)? (ENCRYPT encryption_spec)? ( + // inline_constraint+ + // | inline_ref_constraint + // )? annotations_clause? + // ; + visitColumn_definition (ctx) { + const name = last(ctx.column_name().accept(this)); + const type = ctx.datatype()?.accept(this) || ctx.type_name()?.accept(this); + if (!type) throw createCompilerError(ctx, 'Importing a column definition without a type is not supported'); + const constraints = (ctx.inline_constraint() || []).map(c => c.accept(this)).filter(Boolean); + if (ctx.DEFAULT()) { + const value = ctx.expression().accept(this); + constraints.push({ + type: COLUMN_CONSTRAINT_KIND.DEFAULT, + value: { + dbdefault: processDefaultExpression(value), + }, + }); + } + if (ctx.identity_clause()) { + constraints.push({ + type: COLUMN_CONSTRAINT_KIND.INCREMENT, + value: { + increment: true, + }, + }); + } + + const settings = { checks: [], inline_refs: [] }; + constraints.forEach(constraint => { + switch (constraint.type) { + case COLUMN_CONSTRAINT_KIND.DEFAULT: + settings.dbdefault = constraint.value.dbdefault; + break; + case COLUMN_CONSTRAINT_KIND.NOT_NULL: + settings.not_null = true; + break; + case COLUMN_CONSTRAINT_KIND.NULLABLE: + settings.not_null = false; + break; + case COLUMN_CONSTRAINT_KIND.PK: + settings.pk = true; + break; + case COLUMN_CONSTRAINT_KIND.UNIQUE: + settings.unique = true; + break; + case COLUMN_CONSTRAINT_KIND.CHECK: + settings.checks.push(...constraint.value.checks); + break; + case COLUMN_CONSTRAINT_KIND.INCREMENT: + settings.increment = true; + break; + case COLUMN_CONSTRAINT_KIND.FK: + settings.inline_refs.push(...constraint.value.inline_refs); + break; + default: + } + }); + const field = new Field({ + name, + type, + ...settings, + }); + + return { + type: TABLE_CONSTRAINT_KIND.FIELD, + value: { + field, + inline_refs: settings.inline_refs || [], + }, + }; + } + + // inline_constraint + // : constraint_name? ( + // NOT? NULL_ + // | (UNIQUE | PRIMARY) KEY? + // | references_clause + // | check_constraint + // ) constraint_state? + // ; + visitInline_constraint (ctx) { + if (ctx.NULL_() && ctx.NOT()) { + return { + type: COLUMN_CONSTRAINT_KIND.NOT_NULL, + value: { + not_null: true, + }, + }; + } + if (ctx.NULL_()) { + return { + type: COLUMN_CONSTRAINT_KIND.NULLABLE, + value: { + not_null: false, + }, + }; + } + if (ctx.UNIQUE()) { + return { + type: COLUMN_CONSTRAINT_KIND.UNIQUE, + value: { + unique: true, + }, + }; + } + if (ctx.PRIMARY()) { + return { + type: COLUMN_CONSTRAINT_KIND.PK, + value: { + pk: true, + }, + }; + } + const name = ctx.constraint_name()?.accept(this); + if (ctx.references_clause()) { + const ref = ctx.references_clause().accept(this); + ref.name = name; + return { + type: COLUMN_CONSTRAINT_KIND.FK, + value: { + inline_refs: [ref], + }, + }; + } + if (ctx.check_constraint()) { + const checkCtx = ctx.check_constraint(); + checkCtx.isColumn = true; + const check = checkCtx.accept(this); + check.value.checks[0].name = name; + return check; + } + return null; + } + + // out_of_line_constraint + // : ( + // ((CONSTRAINT | CONSTRAINTS) constraint_name)? ( + // UNIQUE '(' column_name (',' column_name)* ')' + // | PRIMARY KEY '(' column_name (',' column_name)* ')' + // | foreign_key_clause + // | CHECK '(' condition ')' + // ) + // ) + // constraint_state? + // parallel_clause? + // ; + visitOut_of_line_constraint (ctx) { + if (ctx.UNIQUE()) { + const columns = ctx.column_name().map(c => ({ value: last(c.accept(this)), type: CONSTRAINT_TYPE.COLUMN })); + return { + type: TABLE_CONSTRAINT_KIND.UNIQUE, + value: new Index({ + columns, + unique: true, + name: ctx.constraint_name()?.accept(this), + }), + }; + } + if (ctx.PRIMARY()) { + const columns = ctx.column_name().map(c => ({ value: last(c.accept(this)), type: CONSTRAINT_TYPE.COLUMN })); + return { + type: TABLE_CONSTRAINT_KIND.PK, + value: new Index({ + columns, + pk: true, + name: ctx.constraint_name()?.accept(this), + }), + }; + } + if (ctx.foreign_key_clause()) { + const ref = ctx.foreign_key_clause().accept(this); + ref.value.name = ctx.constraint_name()?.accept(this); + return ref; + } + if (ctx.condition()) { + const expression = getOriginalText(ctx.condition()); + return { + type: TABLE_CONSTRAINT_KIND.CHECK, + value: { + checks: [ + { + name: ctx.constraint_name()?.accept(this), + expression, + }, + ], + }, + }; + } + return null; + } + + // out_of_line_ref_constraint + // : (CONSTRAINT constraint_name)? FOREIGN KEY '(' (','? ref_col_or_attr = regular_id)+ ')' references_clause constraint_state? + // | + // ; + visitOut_of_line_ref_constraint (ctx) { + const refName = ctx.constraint_name()?.accept(this); + const firstFieldNames = ctx.regular_id().map(c => c.accept(this)); + const ref = ctx.references_clause().accept(this); + ref.endpoints[0].fieldNames = firstFieldNames; + if (refName) { + ref.name = refName; + } + return { + type: TABLE_CONSTRAINT_KIND.FK, + value: ref, + }; + } + + // foreign_key_clause + // : FOREIGN KEY paren_column_list references_clause on_delete_clause? + // ; + visitForeign_key_clause (ctx) { + const firstFieldNames = ctx.paren_column_list().accept(this).map(c => last(c)); + const ref = ctx.references_clause().accept(this); + ref.endpoints[0].fieldNames = firstFieldNames; + if (ctx.on_delete_clause()) { + ref.onDelete = ctx.on_delete_clause().accept(this); + } + return { + type: TABLE_CONSTRAINT_KIND.FK, + value: ref, + }; + } + + // references_clause + // : REFERENCES tableview_name paren_column_list? (ON DELETE (CASCADE | SET NULL_))? + // ; + visitReferences_clause (ctx) { + if (!ctx.paren_column_list()) throw createCompilerError(ctx.tableview_name(), 'Importing a foreign key with implicit referenced columns is not supported'); + const names = ctx.tableview_name().accept(this); + const refTableName = last(names); + const refSchemaName = names.length > 1 ? names[names.length - 2] : undefined; + const secondFieldNames = ctx.paren_column_list().accept(this).map(c => last(c)); + + return new Ref({ + endpoints: [ + new Endpoint({ + tableName: null, + schemaName: null, + fieldNames: [], + relation: '*', + }), + new Endpoint({ + tableName: refTableName, + schemaName: refSchemaName, + fieldNames: secondFieldNames, + relation: '1', + }), + ], + }); + } + + // on_delete_clause + // : ON DELETE (CASCADE | SET NULL_) + // ; + visitOn_delete_clause (ctx) { + if (ctx.CASCADE()) return 'cascade'; + if (ctx.SET() && ctx.NULL_()) return 'set null'; + return null; + } + + // check_constraint + // : CHECK '(' condition ')' + // ; + visitCheck_constraint (ctx) { + const expression = getOriginalText(ctx.condition()); + return { + type: ctx.isColumn ? COLUMN_CONSTRAINT_KIND.CHECK : TABLE_CONSTRAINT_KIND.CHECK, + value: { + checks: [ + { + expression, + }, + ], + }, + }; + } + + visitColumn_list (ctx) { + return ctx.column_name().map(c => c.accept(this)); + } + + // tableview_name + // : identifier ('.' id_expression)? ( + // AT_SIGN link_name + // | /*TODO{!(input.LA(2) == BY)}?*/ partition_extension_clause + // )? + // | xmltable outer_join_sign? + // ; + visitTableview_name (ctx) { + const schema = ctx.id_expression() ? [ctx.identifier().accept(this)] : []; + const table = ctx.id_expression() ? ctx.id_expression().accept(this) : ctx.identifier().accept(this); + return [...schema, table]; + } + + visitSchema_name (ctx) { + return ctx.identifier().accept(this); + } + + visitTable_name (ctx) { + return ctx.identifier().accept(this); + } + + visitColumn_name (ctx) { + return [ctx.identifier().accept(this)].concat(ctx.id_expression().map(i => i.accept(this))); + } + + visitIdentifier (ctx) { + const text = getOriginalText(ctx); + if (text.startsWith('"')) { + return text.substring(1, text.length - 1); + } + text.replace('""', '"'); + return text; + } + + visitType_name (ctx) { + const names = ctx.id_expression().map(i => i.accept(this)); + const typeName = last(names); + const schemaName = names.length > 1 ? names[names.length - 2] : undefined; + return { + type_name: typeName, + schemaName, + }; + } + + visitDatatype (ctx) { + const typeName = getOriginalText(ctx); + return { + type_name: typeName, + }; + } + + // comment_on_table + // : COMMENT ON TABLE tableview_name IS quoted_string + // ; + visitComment_on_table (ctx) { + const names = ctx.tableview_name().accept(this); + const tableName = last(names); + const schemaName = names.length > 1 ? names[names.length - 2] : undefined; + const table = findTable(this.data.tables, schemaName, tableName); + if (!table) { + throw createCompilerError(ctx.tableview_name(), `Table ${tableName} not found`); + } + const note = ctx.quoted_string().accept(this); + table.note = { value: note }; + } + + // comment_on_column + // : COMMENT ON COLUMN column_name IS quoted_string + // ; + visitComment_on_column (ctx) { + const names = ctx.column_name().accept(this); + const columnName = last(names); + names.pop(); + const tableName = last(names); + names.pop(); + const schemaName = last(names); + + const table = findTable(this.data.tables, schemaName, tableName); + if (!table) { + throw createCompilerError(ctx.tableview_name(), `Table ${tableName} not found`); + } + const field = findColumn(table, columnName); + if (!field) { + throw createCompilerError(ctx.column_name(), `Column ${columnName} not found in table ${tableName}`); + } + const note = ctx.quoted_string().accept(this); + field.note = { value: note }; + } + + // alter_table + // : ALTER TABLE tableview_name memoptimize_read_write_clause* (constraint_clauses | column_clauses | ) ((enable_disable_clause | enable_or_disable (TABLE LOCK | ALL TRIGGERS))+)? + + // ; + visitAlter_table (ctx) { + const names = ctx.tableview_name().accept(this); + const tableName = last(names); + const schemaName = names.length > 1 ? names[names.length - 2] : undefined; + const table = findTable(this.data.tables, schemaName, tableName); + if (!table) { + throw createCompilerError(ctx.tableview_name(), `Table ${tableName} not found`); + } + + function handleConstraint (column, constraint) { + switch (constraint.type) { + case TABLE_CONSTRAINT_KIND.FK: + case COLUMN_CONSTRAINT_KIND.FK: + constraint.value.endpoints[0].tableName = tableName; + constraint.value.endpoints[0].schemaName = schemaName; + this.data.refs.push(constraint.value); + break; + + case TABLE_CONSTRAINT_KIND.CHECK: + if (!table.checks) table.checks = []; + table.checks.push(...constraint.value.checks); + break; + case COLUMN_CONSTRAINT_KIND.CHECK: + if (!column.checks) table.checks = []; + column.checks.push(...constraint.value.checks); + break; + + case COLUMN_CONSTRAINT_KIND.PK: + column.pk = true; + column.unique = undefined; + break; + case COLUMN_CONSTRAINT_KIND.UNIQUE: + column.unique = true; + break; + + case TABLE_CONSTRAINT_KIND.UNIQUE: + case TABLE_CONSTRAINT_KIND.INDEX: + case TABLE_CONSTRAINT_KIND.PK: + if (!table.indexes) table.indexes = []; + table.indexes.push(constraint.value); + break; + + case COLUMN_CONSTRAINT_KIND.DEFAULT: + column.dbdefault = constraint.value.dbdefault; + break; + case COLUMN_CONSTRAINT_KIND.NOT_NULL: + column.not_null = true; + break; + case COLUMN_CONSTRAINT_KIND.NULLABLE: + column.not_null = false; + break; + case COLUMN_CONSTRAINT_KIND.INCREMENT: + column.increment = true; + break; + + default: + } + } + + if (ctx.constraint_clauses() || ctx.column_clauses()) { + const res = ctx.constraint_clauses() ? [{ column: null, constraints: ctx.constraint_clauses().accept(this) }] : ctx.column_clauses().accept(this); + res.forEach(r => { + const column = r.column !== null ? findColumn(table, r.column) : null; + if (r.column !== null && !column) { + throw new CompilerError(ctx.tableview_name(), `Column ${r.column} not found on Table ${tableName}`); + } + r.constraints.forEach(c => handleConstraint.bind(this)(column, c)); + }); + } + } + + // column_clauses + // : add_modify_drop_column_clauses + // | + // ; + visitColumn_clauses (ctx) { + if (ctx.add_modify_drop_column_clauses()) { + return ctx.add_modify_drop_column_clauses().accept(this); + } + return []; + } + + // add_modify_drop_column_clauses + // : (constraint_clauses | add_column_clause | modify_column_clauses | drop_column_clause)+ + // ; + visitAdd_modify_drop_column_clauses (ctx) { + const constraints = []; + if (ctx.constraint_clauses()) { + constraints.push({ column: null, constraints: ctx.constraint_clauses().flatMap(c => c.accept(this)) }); + } + if (ctx.modify_column_clauses()) { + constraints.push(...ctx.modify_column_clauses().flatMap(c => c.accept(this))); + } + return constraints; + } + + // modify_column_clauses + // : MODIFY ( + // '(' modify_col_properties (',' modify_col_properties)* ')' + // | '(' modify_col_visibility (',' modify_col_visibility)* ')' + // | modify_col_properties + // | modify_col_visibility + // | modify_col_substitutable + // ) + // ; + visitModify_column_clauses (ctx) { + return ctx.modify_col_properties().map(c => c.accept(this)); + } + + // modify_col_properties + // : column_name datatype? (DEFAULT (ON NULL_)? expression)? (ENCRYPT encryption_spec | DECRYPT)? inline_constraint* lob_storage_clause? annotations_clause? + // ; + visitModify_col_properties (ctx) { + const constraints = []; + const columnName = last(ctx.column_name().accept(this)); + if (ctx.DEFAULT()) { + const expression = ctx.expression().accept(this); + constraints.push({ + type: COLUMN_CONSTRAINT_KIND.DEFAULT, + value: { + dbdefault: processDefaultExpression(expression), + }, + }); + } else if (ctx.inline_constraint()) { + constraints.push(...ctx.inline_constraint().map(c => c.accept(this))); + } + return { + column: columnName, + constraints, + }; + } + + // constraint_clauses + // : ADD '(' (out_of_line_constraint (',' out_of_line_constraint)* | out_of_line_ref_constraint) ')' + // | ADD (out_of_line_constraint | out_of_line_ref_constraint) + // | + // ; + visitConstraint_clauses (ctx) { + if (ctx.out_of_line_constraint()) { + return ctx.out_of_line_constraint().map(c => c.accept(this)).filter(Boolean); + } + if (ctx.out_of_line_ref_constraint()) { + return [ctx.out_of_line_ref_constraint().accept(this)]; + } + return []; + } + + // create_index + // : CREATE (UNIQUE | BITMAP)? INDEX index_name (IF NOT EXISTS)? ON ( + // cluster_index_clause + // | table_index_clause + // | bitmap_join_index_clause + // ) (USABLE | UNUSABLE)? ((DEFERRED | IMMEDIATE) INVALIDATION)? + // ; + visitCreate_index (ctx) { + if (!ctx.table_index_clause()) return; + + const unique = !!ctx.UNIQUE(); + const bitmap = !!ctx.BITMAP(); + + const indexName = ctx.index_name().accept(this); + + const { names, columns } = ctx.table_index_clause().accept(this); + const tableName = last(names); + const schemaName = names.length > 1 ? names[names.length - 2] : undefined; + + const table = findTable(this.data.tables, schemaName, tableName); + if (!table) { + throw createCompilerError(ctx.tableview_name(), `Table ${tableName} not found`); + } + + if (!table.indexes) table.indexes = []; + table.indexes.push( + new Index({ + name: indexName, + columns, + unique, + type: bitmap ? 'bitmap' : undefined, + }), + ); + } + + // table_index_clause + // : tableview_name table_alias? '(' index_expr (ASC | DESC)? (',' index_expr (ASC | DESC)?)* ')' index_properties? + // ; + visitTable_index_clause (ctx) { + const names = ctx.tableview_name().accept(this); + const columns = ctx.index_expr().map(i => i.accept(this)); + return { + names, + columns, + }; + } + + // constraint_name + // : id_expression + // ; + visitConstraint_name (ctx) { + return getOriginalText(ctx); + } + + visitIndex_name (ctx) { + return ctx.identifier().accept(this); + } + + // index_expr + // : column_name + // | expression + // ; + + visitIndex_expr (ctx) { + if (ctx.expression()) { + const expression = processIndexExpression(ctx.expression().accept(this)); + return { + value: expression.value, + type: expression.type, + }; + } + const columnName = last(ctx.column_name().accept(this)); + return { + value: columnName, + type: CONSTRAINT_TYPE.COLUMN, + }; + } + + // insert_statement + // : INSERT (single_table_insert | ) + // ; + visitInsert_statement (ctx) { + if (ctx.single_table_insert()) { + ctx.single_table_insert().accept(this); + } + } + + // single_table_insert + // : insert_into_clause (values_clause | ) + // ; + visitSingle_table_insert (ctx) { + const intoClause = ctx.insert_into_clause().accept(this); + const valuesClause = ctx.values_clause().accept(this); + + if (intoClause && valuesClause) { + const { tableName, schemaName, columns } = intoClause; + const { values } = valuesClause; + + const record = new TableRecord({ + schemaName, + tableName, + columns, + values, + }); + this.data.records.push(record); + } + } + + // insert_into_clause + // : INTO general_table_ref paren_column_list? + // ; + visitInsert_into_clause (ctx) { + const names = ctx.general_table_ref().accept(this); + const tableName = last(names); + const schemaName = names.length > 1 ? names[names.length - 2] : undefined; + const columns = ctx.paren_column_list() ? ctx.paren_column_list().accept(this).map(c => last(c)) : []; + return { + tableName, + schemaName, + columns, + }; + } + + visitGeneral_table_ref (ctx) { + return ctx.dml_table_expression_clause().accept(this); + } + + visitDml_table_expression_clause (ctx) { + if (ctx.tableview_name()) { + return ctx.tableview_name().accept(this); + } + return []; + } + + visitParen_column_list (ctx) { + return ctx.column_list().accept(this); + } + + // values_clause + // : VALUES '(' expressions_ ')' + // ; + visitValues_clause (ctx) { + const expressions = ctx.expressions_().accept(this); + return { + values: [expressions.map(e => ({ + value: e.type !== CONSTRAINT_TYPE.COLUMN ? e.value : e.rawValue, + type: e.type !== CONSTRAINT_TYPE.COLUMN ? e.type : DATA_TYPE.EXPRESSION, + }))], + }; + } + + visitExpressions_ (ctx) { + return ctx.expression().map(e => e.accept(this)); + } + + visitId_expression (ctx) { + return getOriginalText(ctx); + } + + // expression + // : CHAR_STRING + // | TRUE + // | FALSE + // | NULL_ + // | APPROXIMATE_NUM_LIT + // | UNSIGNED_INTEGER + // | column_name + // | cursor_expression + // | logical_expression + // ; + visitExpression (ctx) { + const value = getOriginalText(ctx); + if (ctx.CHAR_STRING()) { + return { + type: DATA_TYPE.STRING, + value: value.slice(1, -1), + }; + } + if (ctx.TRUE()) { + return { + type: DATA_TYPE.BOOLEAN, + value: true, + }; + } + if (ctx.FALSE()) { + return { + type: DATA_TYPE.BOOLEAN, + value: false, + }; + } + if (ctx.NULL_()) { + return { + type: DATA_TYPE.BOOLEAN, + value: null, + }; + } + if (ctx.APPROXIMATE_NUM_LIT() || ctx.UNSIGNED_INTEGER()) { + return { + type: DATA_TYPE.NUMBER, + value: parseFloat(value), + }; + } + if (ctx.column_name()) { + return { + type: CONSTRAINT_TYPE.COLUMN, + rawValue: value, + value: getOriginalText(ctx.column_name()), + }; + } + return { + type: CONSTRAINT_TYPE.EXPRESSION, + value, + }; + } + + visitQuoted_string (ctx) { + return getOriginalText(ctx).slice(1, -1).replaceAll("''", "'"); + } +} diff --git a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.g4 b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.g4 new file mode 100644 index 000000000..1bd35eed0 --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.g4 @@ -0,0 +1,2618 @@ +/** + * Oracle(c) PL/SQL 11g Parser + * + * Copyright (c) 2009-2011 Alexandre Porcelli + * Copyright (c) 2015-2019 Ivan Kochurkin (KvanTTT, kvanttt@gmail.com, Positive Technologies). + * Copyright (c) 2017 Mark Adams + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// $antlr-format alignTrailingComments true, columnLimit 150, maxEmptyLinesToKeep 1, reflowComments false, useTab false +// $antlr-format allowShortRulesOnASingleLine true, allowShortBlocksOnASingleLine true, minEmptyLines 0, alignSemicolons ownLine +// $antlr-format alignColons trailing, singleLineOverrulesHangingColon true, alignLexerCommands true, alignLabels true, alignTrailers true + +lexer grammar OracleSqlLexer; + +options { + superClass = OracleSqlLexerBase; + caseInsensitive = true; +} + +// Insert here @header for C++ lexer. + +ABORT : 'ABORT'; +ABS : 'ABS'; +ABSENT : 'ABSENT'; +ACCESS : 'ACCESS'; +ACCESSED : 'ACCESSED'; +ACCESSIBLE : 'ACCESSIBLE'; +ACCOUNT : 'ACCOUNT'; +ACL : 'ACL'; +ACOS : 'ACOS'; +ACROSS : 'ACROSS'; +ACTION : 'ACTION'; +ACTIONS : 'ACTIONS'; +ACTIVATE : 'ACTIVATE'; +ACTIVE : 'ACTIVE'; +ACTIVE_COMPONENT : 'ACTIVE_COMPONENT'; +ACTIVE_DATA : 'ACTIVE_DATA'; +ACTIVE_FUNCTION : 'ACTIVE_FUNCTION'; +ACTIVE_TAG : 'ACTIVE_TAG'; +ACTIVITY : 'ACTIVITY'; +ADAPTIVE_PLAN : 'ADAPTIVE_PLAN'; +ADD : 'ADD'; +ADD_COLUMN : 'ADD_COLUMN'; +ADD_GROUP : 'ADD_GROUP'; +ADD_MONTHS : 'ADD_MONTHS'; +ADJ_DATE : 'ADJ_DATE'; +ADMIN : 'ADMIN'; +ADMINISTER : 'ADMINISTER'; +ADMINISTRATOR : 'ADMINISTRATOR'; +ADVANCED : 'ADVANCED'; +ADVISE : 'ADVISE'; +ADVISOR : 'ADVISOR'; +AFD_DISKSTRING : 'AFD_DISKSTRING'; +AFTER : 'AFTER'; +AGENT : 'AGENT'; +AGGREGATE : 'AGGREGATE'; +A_LETTER : 'A'; +ALIAS : 'ALIAS'; +ALL : 'ALL'; +ALLOCATE : 'ALLOCATE'; +ALLOW : 'ALLOW'; +ALL_ROWS : 'ALL_ROWS'; +ALTER : 'ALTER'; +ALTERNATE : 'ALTERNATE'; +ALWAYS : 'ALWAYS'; +ANALYTIC : 'ANALYTIC'; +ANALYZE : 'ANALYZE'; +ANCESTOR : 'ANCESTOR'; +ANCILLARY : 'ANCILLARY'; +AND : 'AND'; +AND_EQUAL : 'AND_EQUAL'; +ANNOTATIONS : 'ANNOTATIONS'; +ANOMALY : 'ANOMALY'; +ANSI_REARCH : 'ANSI_REARCH'; +ANTIJOIN : 'ANTIJOIN'; +ANY : 'ANY'; +ANYSCHEMA : 'ANYSCHEMA'; +APPEND : 'APPEND'; +APPENDCHILDXML : 'APPENDCHILDXML'; +APPEND_VALUES : 'APPEND_VALUES'; +APPLICATION : 'APPLICATION'; +APPLY : 'APPLY'; +APPROX_COUNT_DISTINCT : 'APPROX_COUNT_DISTINCT'; +ARCHIVAL : 'ARCHIVAL'; +ARCHIVE : 'ARCHIVE'; +ARCHIVED : 'ARCHIVED'; +ARCHIVELOG : 'ARCHIVELOG'; +ARE : 'ARE'; +ARRAY : 'ARRAY'; +AS : 'AS'; +ASC : 'ASC'; +ASCII : 'ASCII'; +ASCIISTR : 'ASCIISTR'; +ASIN : 'ASIN'; +ASIS : 'ASIS'; +ASSEMBLY : 'ASSEMBLY'; +ASSIGN : 'ASSIGN'; +ASSOCIATE : 'ASSOCIATE'; +ASYNC : 'ASYNC'; +ASYNCHRONOUS : 'ASYNCHRONOUS'; +ATAN2 : 'ATAN2'; +ATAN : 'ATAN'; +AT : 'AT'; +ATTRIBUTE : 'ATTRIBUTE'; +ATTRIBUTES : 'ATTRIBUTES'; +AUDIT : 'AUDIT'; +AUTHENTICATED : 'AUTHENTICATED'; +AUTHENTICATION : 'AUTHENTICATION'; +AUTHID : 'AUTHID'; +AUTHORIZATION : 'AUTHORIZATION'; +AUTOALLOCATE : 'AUTOALLOCATE'; +AUTO : 'AUTO'; +AUTOBACKUP : 'AUTOBACKUP'; +AUTOEXTEND : 'AUTOEXTEND'; +AUTO_LOGIN : 'AUTO_LOGIN'; +AUTOMATIC : 'AUTOMATIC'; +AUTONOMOUS_TRANSACTION : 'AUTONOMOUS_TRANSACTION'; +AUTO_REOPTIMIZE : 'AUTO_REOPTIMIZE'; +AVAILABILITY : 'AVAILABILITY'; +AVRO : 'AVRO'; +BACKGROUND : 'BACKGROUND'; +BACKINGFILE : 'BACKINGFILE'; +BACKUP : 'BACKUP'; +BACKUPS : 'BACKUPS'; +BACKUPSET : 'BACKUPSET'; +BADFILE : 'BADFILE'; +BASIC : 'BASIC'; +BASICFILE : 'BASICFILE'; +BATCH : 'BATCH'; +BATCHSIZE : 'BATCHSIZE'; +BATCH_TABLE_ACCESS_BY_ROWID : 'BATCH_TABLE_ACCESS_BY_ROWID'; +BECOME : 'BECOME'; +BEFORE : 'BEFORE'; +BEGIN : 'BEGIN'; +BEGINNING : 'BEGINNING'; +BEGIN_OUTLINE_DATA : 'BEGIN_OUTLINE_DATA'; +BEHALF : 'BEHALF'; +BEQUEATH : 'BEQUEATH'; +BETWEEN : 'BETWEEN'; +BFILE : 'BFILE'; +BFILENAME : 'BFILENAME'; +BIG : 'BIG'; +BIGFILE : 'BIGFILE'; +BIGINT : 'BIGINT'; +BINARY : 'BINARY'; +BINARY_DOUBLE : 'BINARY_DOUBLE'; +BINARY_DOUBLE_INFINITY : 'BINARY_DOUBLE_INFINITY'; +BINARY_DOUBLE_NAN : 'BINARY_DOUBLE_NAN'; +BINARY_FLOAT : 'BINARY_FLOAT'; +BINARY_FLOAT_INFINITY : 'BINARY_FLOAT_INFINITY'; +BINARY_FLOAT_NAN : 'BINARY_FLOAT_NAN'; +BINARY_INTEGER : 'BINARY_INTEGER'; +BIND_AWARE : 'BIND_AWARE'; +BINDING : 'BINDING'; +BIN_TO_NUM : 'BIN_TO_NUM'; +BITAND : 'BITAND'; +BITMAP_AND : 'BITMAP_AND'; +BITMAP : 'BITMAP'; +BITMAPS : 'BITMAPS'; +BITMAP_TREE : 'BITMAP_TREE'; +BITS : 'BITS'; +BLANKS : 'BLANKS'; +BLOB : 'BLOB'; +BLOCK : 'BLOCK'; +BLOCK_RANGE : 'BLOCK_RANGE'; +BLOCKS : 'BLOCKS'; +BLOCKSIZE : 'BLOCKSIZE'; +BODY : 'BODY'; +BOOLEAN : 'BOOLEAN'; +BOTH : 'BOTH'; +BOUND : 'BOUND'; +BRANCH : 'BRANCH'; +BREADTH : 'BREADTH'; +BROADCAST : 'BROADCAST'; +BSON : 'BSON'; +BUFFER : 'BUFFER'; +BUFFER_CACHE : 'BUFFER_CACHE'; +BUFFER_POOL : 'BUFFER_POOL'; +BUILD : 'BUILD'; +BULK : 'BULK'; +BY : 'BY'; +BYPASS_RECURSIVE_CHECK : 'BYPASS_RECURSIVE_CHECK'; +BYPASS_UJVC : 'BYPASS_UJVC'; +BYTE : 'BYTE'; +BYTES : 'BYTES'; +BYTEORDERMARK : 'BYTEORDERMARK'; +CACHE : 'CACHE'; +CACHE_CB : 'CACHE_CB'; +CACHE_INSTANCES : 'CACHE_INSTANCES'; +CACHE_TEMP_TABLE : 'CACHE_TEMP_TABLE'; +CACHING : 'CACHING'; +CALCULATED : 'CALCULATED'; +CALLBACK : 'CALLBACK'; +CALL : 'CALL'; +CANCEL : 'CANCEL'; +CANONICAL : 'CANONICAL'; +CAPACITY : 'CAPACITY'; +CAPTION : 'CAPTION'; +CARDINALITY : 'CARDINALITY'; +CASCADE : 'CASCADE'; +CASE : 'CASE'; +CAST : 'CAST'; +CASESENSITIVE : 'CASE-SENSITIVE'; +CATEGORY : 'CATEGORY'; +CDBDEFAULT : 'CDB$DEFAULT'; +CEIL : 'CEIL'; +CELL_FLASH_CACHE : 'CELL_FLASH_CACHE'; +CERTIFICATE : 'CERTIFICATE'; +CFILE : 'CFILE'; +CHAINED : 'CHAINED'; +CHANGE : 'CHANGE'; +CHANGETRACKING : 'CHANGETRACKING'; +CHANGE_DUPKEY_ERROR_INDEX : 'CHANGE_DUPKEY_ERROR_INDEX'; +CHARACTER : 'CHARACTER'; +CHARACTERS : 'CHARACTERS'; +CHARACTERSET : 'CHARACTERSET'; +CHAR : 'CHAR'; +CHAR_CS : 'CHAR_CS'; +CHARTOROWID : 'CHARTOROWID'; +CHECK_ACL_REWRITE : 'CHECK_ACL_REWRITE'; +CHECK : 'CHECK'; +CHECKPOINT : 'CHECKPOINT'; +CHILD : 'CHILD'; +CHOOSE : 'CHOOSE'; +CHR : 'CHR'; +CHUNK : 'CHUNK'; +CLASS : 'CLASS'; +CLASSIFICATION : 'CLASSIFICATION'; +CLASSIFIER : 'CLASSIFIER'; +CLAUSE : 'CLAUSE'; +CLEAN : 'CLEAN'; +CLEANUP : 'CLEANUP'; +CLEAR : 'CLEAR'; +C_LETTER : 'C'; +CLIENT : 'CLIENT'; +CLOB : 'CLOB'; +CLONE : 'CLONE'; +CLOSE_CACHED_OPEN_CURSORS : 'CLOSE_CACHED_OPEN_CURSORS'; +CLOSE : 'CLOSE'; +CLUSTER_BY_ROWID : 'CLUSTER_BY_ROWID'; +CLUSTER : 'CLUSTER'; +CLUSTER_DETAILS : 'CLUSTER_DETAILS'; +CLUSTER_DISTANCE : 'CLUSTER_DISTANCE'; +CLUSTER_ID : 'CLUSTER_ID'; +CLUSTERING : 'CLUSTERING'; +CLUSTERING_FACTOR : 'CLUSTERING_FACTOR'; +CLUSTER_PROBABILITY : 'CLUSTER_PROBABILITY'; +CLUSTER_SET : 'CLUSTER_SET'; +COALESCE : 'COALESCE'; +COALESCE_SQ : 'COALESCE_SQ'; +COARSE : 'COARSE'; +CO_AUTH_IND : 'CO_AUTH_IND'; +COLD : 'COLD'; +COLLECT : 'COLLECT'; +COLLECTION : 'COLLECTION'; +COLUMNAR : 'COLUMNAR'; +COLUMN_AUTH_INDICATOR : 'COLUMN_AUTH_INDICATOR'; +COLUMN : 'COLUMN'; +COLUMNS : 'COLUMNS'; +COLUMN_STATS : 'COLUMN_STATS'; +COLUMN_VALUE : 'COLUMN_VALUE'; +COMMENT : 'COMMENT'; +COMMIT : 'COMMIT'; +COMMITTED : 'COMMITTED'; +COMMON : 'COMMON'; +COMMON_DATA : 'COMMON_DATA'; +COMPACT : 'COMPACT'; +COMPATIBLE : 'COMPATIBLE'; +COMPATIBILITY : 'COMPATIBILITY'; +COMPILE : 'COMPILE'; +COMPLETE : 'COMPLETE'; +COMPLIANCE : 'COMPLIANCE'; +COMPONENT : 'COMPONENT'; +COMPONENTS : 'COMPONENTS'; +COMPOSE : 'COMPOSE'; +COMPOSITE : 'COMPOSITE'; +COMPOSITE_LIMIT : 'COMPOSITE_LIMIT'; +COMPOUND : 'COMPOUND'; +COMPRESS : 'COMPRESS'; +COMPRESSION : 'COMPRESSION'; +COMPUTE : 'COMPUTE'; +CONCAT : 'CONCAT'; +CON_DBID_TO_ID : 'CON_DBID_TO_ID'; +CONDITIONAL : 'CONDITIONAL'; +CONDITION : 'CONDITION'; +CONFIRM : 'CONFIRM'; +CONFORMING : 'CONFORMING'; +CON_GUID_TO_ID : 'CON_GUID_TO_ID'; +CON_ID : 'CON_ID'; +CON_NAME_TO_ID : 'CON_NAME_TO_ID'; +CONNECT_BY_CB_WHR_ONLY : 'CONNECT_BY_CB_WHR_ONLY'; +CONNECT_BY_COMBINE_SW : 'CONNECT_BY_COMBINE_SW'; +CONNECT_BY_COST_BASED : 'CONNECT_BY_COST_BASED'; +CONNECT_BY_ELIM_DUPS : 'CONNECT_BY_ELIM_DUPS'; +CONNECT_BY_FILTERING : 'CONNECT_BY_FILTERING'; +CONNECT_BY_ISCYCLE : 'CONNECT_BY_ISCYCLE'; +CONNECT_BY_ISLEAF : 'CONNECT_BY_ISLEAF'; +CONNECT_BY_ROOT : 'CONNECT_BY_ROOT'; +CONNECT : 'CONNECT'; +CONNECT_TIME : 'CONNECT_TIME'; +CONSIDER : 'CONSIDER'; +CONSISTENT : 'CONSISTENT'; +CONSTANT : 'CONSTANT'; +CONST : 'CONST'; +CONSTRAINT : 'CONSTRAINT'; +CONSTRAINTS : 'CONSTRAINTS'; +CONSTRUCTOR : 'CONSTRUCTOR'; +CONTAINER : 'CONTAINER'; +CONTAINERS : 'CONTAINERS'; +CONTAINERS_DEFAULT : 'CONTAINERS_DEFAULT'; +CONTAINER_DATA : 'CONTAINER_DATA'; +CONTAINER_MAP : 'CONTAINER_MAP'; +CONTENT : 'CONTENT'; +CONTENTS : 'CONTENTS'; +CONTEXT : 'CONTEXT'; +CONTINUE : 'CONTINUE'; +CONTROLFILE : 'CONTROLFILE'; +CON_UID_TO_ID : 'CON_UID_TO_ID'; +CONVERT : 'CONVERT'; +CONVERSION : 'CONVERSION'; +COOKIE : 'COOKIE'; +COPY : 'COPY'; +CORR_K : 'CORR_K'; +CORR_S : 'CORR_S'; +CORRUPTION : 'CORRUPTION'; +CORRUPT_XID_ALL : 'CORRUPT_XID_ALL'; +CORRUPT_XID : 'CORRUPT_XID'; +COS : 'COS'; +COSH : 'COSH'; +COST : 'COST'; +COST_XML_QUERY_REWRITE : 'COST_XML_QUERY_REWRITE'; +COUNT : 'COUNT'; +COUNTED : 'COUNTED'; +COVAR_POP : 'COVAR_POP'; +COVAR_SAMP : 'COVAR_SAMP'; +CPU_COSTING : 'CPU_COSTING'; +CPU_PER_CALL : 'CPU_PER_CALL'; +CPU_PER_SESSION : 'CPU_PER_SESSION'; +CRASH : 'CRASH'; +CREATE : 'CREATE'; +CREATE_FILE_DEST : 'CREATE_FILE_DEST'; +CREATE_STORED_OUTLINES : 'CREATE_STORED_OUTLINES'; +CREATION : 'CREATION'; +CREDENTIAL : 'CREDENTIAL'; +CRITICAL : 'CRITICAL'; +CROSS : 'CROSS'; +CROSSEDITION : 'CROSSEDITION'; +CSCONVERT : 'CSCONVERT'; +CSV : 'CSV'; +CUBE_AJ : 'CUBE_AJ'; +CUBE : 'CUBE'; +CUBE_GB : 'CUBE_GB'; +CUBE_SJ : 'CUBE_SJ'; +CUME_DISTM : 'CUME_DISTM'; +CURRENT : 'CURRENT'; +CURRENT_DATE : 'CURRENT_DATE'; +CURRENT_SCHEMA : 'CURRENT_SCHEMA'; +CURRENT_TIME : 'CURRENT_TIME'; +CURRENT_TIMESTAMP : 'CURRENT_TIMESTAMP'; +CURRENT_USER : 'CURRENT_USER'; +CURRENTV : 'CURRENTV'; +CURSOR : 'CURSOR'; +CURSOR_SHARING_EXACT : 'CURSOR_SHARING_EXACT'; +CURSOR_SPECIFIC_SEGMENT : 'CURSOR_SPECIFIC_SEGMENT'; +CUSTOMDATUM : 'CUSTOMDATUM'; +CV : 'CV'; +CYCLE : 'CYCLE'; +DANGLING : 'DANGLING'; +DATABASE : 'DATABASE'; +DATA : 'DATA'; +DATAFILE : 'DATAFILE'; +DATAFILES : 'DATAFILES'; +DATAGUARDCONFIG : 'DATAGUARDCONFIG'; +DATAMOVEMENT : 'DATAMOVEMENT'; +DATAOBJNO : 'DATAOBJNO'; +DATAOBJ_TO_MAT_PARTITION : 'DATAOBJ_TO_MAT_PARTITION'; +DATAOBJ_TO_PARTITION : 'DATAOBJ_TO_PARTITION'; +DATAPUMP : 'DATAPUMP'; +DATA_SECURITY_REWRITE_LIMIT : 'DATA_SECURITY_REWRITE_LIMIT'; +DATE : 'DATE'; +DATE_CACHE : 'DATE_CACHE'; +DATE_FORMAT : 'DATE_FORMAT'; +DATE_MODE : 'DATE_MODE'; +DAY : 'DAY'; +DAYS : 'DAYS'; +DAY_TO_SECOND : 'DAY_TO_SECOND'; +DBA : 'DBA'; +DBA_RECYCLEBIN : 'DBA_RECYCLEBIN'; +DBLINK : 'DBLINK'; +DBMS_STATS : 'DBMS_STATS'; +DB_ROLE_CHANGE : 'DB_ROLE_CHANGE'; +DBTIMEZONE : 'DBTIMEZONE'; +DB_UNIQUE_NAME : 'DB_UNIQUE_NAME'; +DB_VERSION : 'DB_VERSION'; +DDL : 'DDL'; +DEALLOCATE : 'DEALLOCATE'; +DEBUG : 'DEBUG'; +DEBUGGER : 'DEBUGGER'; +DEC : 'DEC'; +DECIMAL : 'DECIMAL'; +DECLARE : 'DECLARE'; +DECOMPOSE : 'DECOMPOSE'; +DECORRELATE : 'DECORRELATE'; +DECR : 'DECR'; +DECREMENT : 'DECREMENT'; +DECRYPT : 'DECRYPT'; +DEDUPLICATE : 'DEDUPLICATE'; +DEFAULT : 'DEFAULT'; +DEFAULTIF : 'DEFAULTIF'; +DEFAULTS : 'DEFAULTS'; +DEFAULT_COLLATION : 'DEFAULT_COLLATION'; +DEFAULT_CREDENTIAL : 'DEFAULT_CREDENTIAL'; +DEFERRABLE : 'DEFERRABLE'; +DEFERRED : 'DEFERRED'; +DEFINED : 'DEFINED'; +DEFINE : 'DEFINE'; +DEFINER : 'DEFINER'; +DEGREE : 'DEGREE'; +DELAY : 'DELAY'; +DELEGATE : 'DELEGATE'; +DELETE_ALL : 'DELETE_ALL'; +DELETE : 'DELETE'; +DELETEXML : 'DELETEXML'; +DELIMITED : 'DELIMITED'; +DEMAND : 'DEMAND'; +DENSE_RANKM : 'DENSE_RANKM'; +DEPENDENT : 'DEPENDENT'; +DEPRECATE : 'DEPRECATE'; +DEPTH : 'DEPTH'; +DEQUEUE : 'DEQUEUE'; +DEREF : 'DEREF'; +DEREF_NO_REWRITE : 'DEREF_NO_REWRITE'; +DESC : 'DESC'; +DESCRIPTION : 'DESCRIPTION'; +DESTROY : 'DESTROY'; +DETACHED : 'DETACHED'; +DETECTED : 'DETECTED'; +DETERMINES : 'DETERMINES'; +DETERMINISTIC : 'DETERMINISTIC'; +DICTIONARY : 'DICTIONARY'; +DIMENSION : 'DIMENSION'; +DIMENSIONS : 'DIMENSIONS'; +DIRECTIO : 'DIRECTIO'; +DIRECT_LOAD : 'DIRECT_LOAD'; +DIRECTORY : 'DIRECTORY'; +DIRECT_PATH : 'DIRECT_PATH'; +DISABLE_ALL : 'DISABLE_ALL'; +DISABLE : 'DISABLE'; +DISABLED : 'DISABLED'; +DISABLE_DIRECTORY_LINK_CHECK : 'DISABLE_DIRECTORY_LINK_CHECK'; +DISABLE_PARALLEL_DML : 'DISABLE_PARALLEL_DML'; +DISABLE_PRESET : 'DISABLE_PRESET'; +DISABLE_RPKE : 'DISABLE_RPKE'; +DISALLOW : 'DISALLOW'; +DISASSOCIATE : 'DISASSOCIATE'; +DISCARD : 'DISCARD'; +DISCARDFILE : 'DISCARDFILE'; +DISCONNECT : 'DISCONNECT'; +DISK : 'DISK'; +DISKGROUP : 'DISKGROUP'; +DISKGROUP_PLUS : '\'+ DISKGROUP'; +DISKS : 'DISKS'; +DISMOUNT : 'DISMOUNT'; +DISTINCT : 'DISTINCT'; +DISTINGUISHED : 'DISTINGUISHED'; +DISTRIBUTED : 'DISTRIBUTED'; +DISTRIBUTE : 'DISTRIBUTE'; +DML : 'DML'; +DML_UPDATE : 'DML_UPDATE'; +DNFS_DISABLE : 'DNFS_DISABLE'; +DNFS_ENABLE : 'DNFS_ENABLE'; +DNFS_READBUFFERS : 'DNFS_READBUFFERS'; +DOCFIDELITY : 'DOCFIDELITY'; +DOCUMENT : 'DOCUMENT'; +DOLLAR_ELSE : '$ELSE'; +DOLLAR_ELSIF : '$ELSIF'; +DOLLAR_END : '$END'; +DOLLAR_ERROR : '$ERROR'; +DOLLAR_IF : '$IF'; +DOLLAR_THEN : '$THEN'; +DOMAIN_INDEX_FILTER : 'DOMAIN_INDEX_FILTER'; +DOMAIN_INDEX_NO_SORT : 'DOMAIN_INDEX_NO_SORT'; +DOMAIN_INDEX_SORT : 'DOMAIN_INDEX_SORT'; +DOUBLE : 'DOUBLE'; +DOWNGRADE : 'DOWNGRADE'; +DRIVING_SITE : 'DRIVING_SITE'; +DROP_COLUMN : 'DROP_COLUMN'; +DROP : 'DROP'; +DROP_GROUP : 'DROP_GROUP'; +DSINTERVAL_UNCONSTRAINED : 'DSINTERVAL_UNCONSTRAINED'; +DST_UPGRADE_INSERT_CONV : 'DST_UPGRADE_INSERT_CONV'; +DUMP : 'DUMP'; +DUMPSET : 'DUMPSET'; +DUPLICATE : 'DUPLICATE'; +DV : 'DV'; +DYNAMIC : 'DYNAMIC'; +DYNAMIC_SAMPLING : 'DYNAMIC_SAMPLING'; +DYNAMIC_SAMPLING_EST_CDN : 'DYNAMIC_SAMPLING_EST_CDN'; +E_LETTER : 'E'; +EACH : 'EACH'; +EDITIONABLE : 'EDITIONABLE'; +EDITION : 'EDITION'; +EDITIONING : 'EDITIONING'; +EDITIONS : 'EDITIONS'; +ELEMENT : 'ELEMENT'; +ELIM_GROUPBY : 'ELIM_GROUPBY'; +ELIMINATE_JOIN : 'ELIMINATE_JOIN'; +ELIMINATE_OBY : 'ELIMINATE_OBY'; +ELIMINATE_OUTER_JOIN : 'ELIMINATE_OUTER_JOIN'; +ELSE : 'ELSE'; +ELSIF : 'ELSIF'; +EM : 'EM'; +EMBEDDED : 'EMBEDDED'; +EMPTY_BLOB : 'EMPTY_BLOB'; +EMPTY_CLOB : 'EMPTY_CLOB'; +EMPTY_ : 'EMPTY'; +ENABLE_ALL : 'ENABLE_ALL'; +ENABLE : 'ENABLE'; +ENABLED : 'ENABLED'; +ENABLE_PARALLEL_DML : 'ENABLE_PARALLEL_DML'; +ENABLE_PRESET : 'ENABLE_PRESET'; +ENCLOSED : 'ENCLOSED'; +ENCODING : 'ENCODING'; +ENCRYPT : 'ENCRYPT'; +ENCRYPTION : 'ENCRYPTION'; +ENCRYPTPASSWORDISNULL : 'ENCRYPTPASSWORDISNULL'; +END : 'END'; +END_OUTLINE_DATA : 'END_OUTLINE_DATA'; +ENDIAN : 'ENDIAN'; +ENFORCED : 'ENFORCED'; +ENFORCE : 'ENFORCE'; +ENQUEUE : 'ENQUEUE'; +ENTERPRISE : 'ENTERPRISE'; +ENTITYESCAPING : 'ENTITYESCAPING'; +ENTRY : 'ENTRY'; +EQUIPART : 'EQUIPART'; +ERR : 'ERR'; +ERROR_ARGUMENT : 'ERROR_ARGUMENT'; +ERROR : 'ERROR'; +ERROR_ON_OVERLAP_TIME : 'ERROR_ON_OVERLAP_TIME'; +ERRORS : 'ERRORS'; +ERROR_INDEX : 'ERROR_INDEX'; +ERROR_CODE : 'ERROR_CODE'; +ESCAPE : 'ESCAPE'; +ESCAPED : 'ESCAPED'; +ESTIMATE : 'ESTIMATE'; +EVAL : 'EVAL'; +EVALNAME : 'EVALNAME'; +EVALUATE : 'EVALUATE'; +EVALUATION : 'EVALUATION'; +EVENTS : 'EVENTS'; +EVERY : 'EVERY'; +EXCEPT : 'EXCEPT'; +EXCEPTION : 'EXCEPTION'; +EXCEPTION_INIT : 'EXCEPTION_INIT'; +EXCEPTIONS : 'EXCEPTIONS'; +EXCHANGE : 'EXCHANGE'; +EXCLUDE : 'EXCLUDE'; +EXCLUDING : 'EXCLUDING'; +EXCLUSIVE : 'EXCLUSIVE'; +EXECUTE : 'EXECUTE'; +EXEMPT : 'EXEMPT'; +EXISTING : 'EXISTING'; +EXISTS : 'EXISTS'; +EXISTSNODE : 'EXISTSNODE'; +EXIT : 'EXIT'; +EXPAND_GSET_TO_UNION : 'EXPAND_GSET_TO_UNION'; +EXPAND_TABLE : 'EXPAND_TABLE'; +EXP : 'EXP'; +EXPIRE : 'EXPIRE'; +EXPLAIN : 'EXPLAIN'; +EXPLOSION : 'EXPLOSION'; +EXPORT : 'EXPORT'; +EXPR_CORR_CHECK : 'EXPR_CORR_CHECK'; +EXPRESS : 'EXPRESS'; +EXTENDS : 'EXTENDS'; +EXTENT : 'EXTENT'; +EXTENTS : 'EXTENTS'; +EXTERNAL : 'EXTERNAL'; +EXTERNALLY : 'EXTERNALLY'; +EXTRACTCLOBXML : 'EXTRACTCLOBXML'; +EXTRACT : 'EXTRACT'; +EXTRACTVALUE : 'EXTRACTVALUE'; +EXTRA : 'EXTRA'; +FACILITY : 'FACILITY'; +FACT : 'FACT'; +FACTOR : 'FACTOR'; +FACTORIZE_JOIN : 'FACTORIZE_JOIN'; +FAILED : 'FAILED'; +FAILED_LOGIN_ATTEMPTS : 'FAILED_LOGIN_ATTEMPTS'; +FAILGROUP : 'FAILGROUP'; +FAILOVER : 'FAILOVER'; +FAILURE : 'FAILURE'; +FALSE : 'FALSE'; +FAMILY : 'FAMILY'; +FAR : 'FAR'; +FAST : 'FAST'; +FASTSTART : 'FASTSTART'; +FBTSCAN : 'FBTSCAN'; +FEATURE : 'FEATURE'; +FEATURE_DETAILS : 'FEATURE_DETAILS'; +FEATURE_ID : 'FEATURE_ID'; +FEATURE_SET : 'FEATURE_SET'; +FEATURE_VALUE : 'FEATURE_VALUE'; +FETCH : 'FETCH'; +FIELD : 'FIELD'; +FIELDS : 'FIELDS'; +FILE : 'FILE'; +FILE_NAME_CONVERT : 'FILE_NAME_CONVERT'; +FILEGROUP : 'FILEGROUP'; +FILESTORE : 'FILESTORE'; +FILESYSTEM_LIKE_LOGGING : 'FILESYSTEM_LIKE_LOGGING'; +FILTER : 'FILTER'; +FINAL : 'FINAL'; +FINE : 'FINE'; +FINISH : 'FINISH'; +FIRST : 'FIRST'; +FIRSTM : 'FIRSTM'; +FIRST_ROWS : 'FIRST_ROWS'; +FIRST_VALUE : 'FIRST_VALUE'; +FIXED : 'FIXED'; +FIXED_VIEW_DATA : 'FIXED_VIEW_DATA'; +FLAGGER : 'FLAGGER'; +FLASHBACK : 'FLASHBACK'; +FLASH_CACHE : 'FLASH_CACHE'; +FLOAT : 'FLOAT'; +FLOB : 'FLOB'; +FLEX : 'FLEX'; +FLOOR : 'FLOOR'; +FLUSH : 'FLUSH'; +FOLDER : 'FOLDER'; +FOLLOWING : 'FOLLOWING'; +FOLLOWS : 'FOLLOWS'; +FORALL : 'FORALL'; +FORCE : 'FORCE'; +FORCE_XML_QUERY_REWRITE : 'FORCE_XML_QUERY_REWRITE'; +FOREIGN : 'FOREIGN'; +FOREVER : 'FOREVER'; +FOR : 'FOR'; +FORMAT : 'FORMAT'; +FORWARD : 'FORWARD'; +FRAGMENT_NUMBER : 'FRAGMENT_NUMBER'; +FREELIST : 'FREELIST'; +FREELISTS : 'FREELISTS'; +FREEPOOLS : 'FREEPOOLS'; +FRESH : 'FRESH'; +FROM : 'FROM'; +FROM_TZ : 'FROM_TZ'; +FULL : 'FULL'; +FULL_OUTER_JOIN_TO_OUTER : 'FULL_OUTER_JOIN_TO_OUTER'; +FUNCTION : 'FUNCTION'; +FUNCTIONS : 'FUNCTIONS'; +FTP : 'FTP'; +G_LETTER : 'G'; +GATHER_OPTIMIZER_STATISTICS : 'GATHER_OPTIMIZER_STATISTICS'; +GATHER_PLAN_STATISTICS : 'GATHER_PLAN_STATISTICS'; +GBY_CONC_ROLLUP : 'GBY_CONC_ROLLUP'; +GBY_PUSHDOWN : 'GBY_PUSHDOWN'; +GENERATED : 'GENERATED'; +GET : 'GET'; +GLOBAL : 'GLOBAL'; +GLOBALLY : 'GLOBALLY'; +GLOBAL_NAME : 'GLOBAL_NAME'; +GLOBAL_TOPIC_ENABLED : 'GLOBAL_TOPIC_ENABLED'; +GOTO : 'GOTO'; +GRANT : 'GRANT'; +GROUP_BY : 'GROUP_BY'; +GROUP : 'GROUP'; +GROUP_ID : 'GROUP_ID'; +GROUPING : 'GROUPING'; +GROUPING_ID : 'GROUPING_ID'; +GROUPS : 'GROUPS'; +GUARANTEED : 'GUARANTEED'; +GUARANTEE : 'GUARANTEE'; +GUARD : 'GUARD'; +HADOOP_TRAILERS : 'HADOOP_TRAILERS'; +HALF_YEARS : 'HALF_YEARS'; +HASH_AJ : 'HASH_AJ'; +HASH : 'HASH'; +HASHKEYS : 'HASHKEYS'; +HASH_SJ : 'HASH_SJ'; +HAVING : 'HAVING'; +HEADER : 'HEADER'; +HEAP : 'HEAP'; +HELP : 'HELP'; +HEXTORAW : 'HEXTORAW'; +HEXTOREF : 'HEXTOREF'; +HIDDEN_KEYWORD : 'HIDDEN'; +HIDE : 'HIDE'; +HIER_ORDER : 'HIER_ORDER'; +HIERARCHICAL : 'HIERARCHICAL'; +HIERARCHIES : 'HIERARCHIES'; +HIERARCHY : 'HIERARCHY'; +HIGH : 'HIGH'; +HINTSET_BEGIN : 'HINTSET_BEGIN'; +HINTSET_END : 'HINTSET_END'; +HOT : 'HOT'; +HOUR : 'HOUR'; +HOURS : 'HOURS'; +HTTP : 'HTTP'; +HWM_BROKERED : 'HWM_BROKERED'; +HYBRID : 'HYBRID'; +H_LETTER : 'H'; +IDENTIFIED : 'IDENTIFIED'; +IDENTIFIER : 'IDENTIFIER'; +IDENTITY : 'IDENTITY'; +IDGENERATORS : 'IDGENERATORS'; +ID : 'ID'; +IDLE_TIME : 'IDLE_TIME'; +IF : 'IF'; +IGNORE : 'IGNORE'; +IGNORE_CHARS_AFTER_EOR : 'IGNORE_CHARS_AFTER_EOR'; +IGNORE_OPTIM_EMBEDDED_HINTS : 'IGNORE_OPTIM_EMBEDDED_HINTS'; +IGNORE_ROW_ON_DUPKEY_INDEX : 'IGNORE_ROW_ON_DUPKEY_INDEX'; +IGNORE_WHERE_CLAUSE : 'IGNORE_WHERE_CLAUSE'; +ILM : 'ILM'; +IMMEDIATE : 'IMMEDIATE'; +IMPACT : 'IMPACT'; +IMPORT : 'IMPORT'; +INACTIVE : 'INACTIVE'; +INACTIVE_ACCOUNT_TIME : 'INACTIVE_ACCOUNT_TIME'; +INCLUDE : 'INCLUDE'; +INCLUDE_VERSION : 'INCLUDE_VERSION'; +INCLUDING : 'INCLUDING'; +INCREMENTAL : 'INCREMENTAL'; +INCREMENT : 'INCREMENT'; +INCR : 'INCR'; +INDENT : 'INDENT'; +INDEX_ASC : 'INDEX_ASC'; +INDEX_COMBINE : 'INDEX_COMBINE'; +INDEX_DESC : 'INDEX_DESC'; +INDEXED : 'INDEXED'; +INDEXES : 'INDEXES'; +INDEX_FFS : 'INDEX_FFS'; +INDEX_FILTER : 'INDEX_FILTER'; +INDEX : 'INDEX'; +INDEXING : 'INDEXING'; +INDEX_JOIN : 'INDEX_JOIN'; +INDEX_ROWS : 'INDEX_ROWS'; +INDEX_RRS : 'INDEX_RRS'; +INDEX_RS_ASC : 'INDEX_RS_ASC'; +INDEX_RS_DESC : 'INDEX_RS_DESC'; +INDEX_RS : 'INDEX_RS'; +INDEX_SCAN : 'INDEX_SCAN'; +INDEX_SKIP_SCAN : 'INDEX_SKIP_SCAN'; +INDEX_SS_ASC : 'INDEX_SS_ASC'; +INDEX_SS_DESC : 'INDEX_SS_DESC'; +INDEX_SS : 'INDEX_SS'; +INDEX_STATS : 'INDEX_STATS'; +INDEXTYPE : 'INDEXTYPE'; +INDEXTYPES : 'INDEXTYPES'; +INDICATOR : 'INDICATOR'; +INDICES : 'INDICES'; +INFINITE : 'INFINITE'; +INFORMATIONAL : 'INFORMATIONAL'; +INHERIT : 'INHERIT'; +IN : 'IN'; +INITCAP : 'INITCAP'; +INITIAL : 'INITIAL'; +INITIALIZED : 'INITIALIZED'; +INITIALLY : 'INITIALLY'; +INITRANS : 'INITRANS'; +INLINE : 'INLINE'; +INLINE_XMLTYPE_NT : 'INLINE_XMLTYPE_NT'; +INMEMORY : 'INMEMORY'; +IN_MEMORY_METADATA : 'IN_MEMORY_METADATA'; +INMEMORY_PRUNING : 'INMEMORY_PRUNING'; +INNER : 'INNER'; +INOUT : 'INOUT'; +INPLACE : 'INPLACE'; +INPUTFORMAT : 'INPUTFORMAT'; +INSERTCHILDXMLAFTER : 'INSERTCHILDXMLAFTER'; +INSERTCHILDXMLBEFORE : 'INSERTCHILDXMLBEFORE'; +INSERTCHILDXML : 'INSERTCHILDXML'; +INSERT : 'INSERT'; +INSERTXMLAFTER : 'INSERTXMLAFTER'; +INSERTXMLBEFORE : 'INSERTXMLBEFORE'; +INSTANCE : 'INSTANCE'; +INSTANCES : 'INSTANCES'; +INSTANTIABLE : 'INSTANTIABLE'; +INSTANTLY : 'INSTANTLY'; +INSTEAD : 'INSTEAD'; +INSTR2 : 'INSTR2'; +INSTR4 : 'INSTR4'; +INSTRB : 'INSTRB'; +INSTRC : 'INSTRC'; +INSTR : 'INSTR'; +INTEGER : 'INTEGER'; +INTERLEAVED : 'INTERLEAVED'; +INTERMEDIATE : 'INTERMEDIATE'; +INTERNAL_CONVERT : 'INTERNAL_CONVERT'; +INTERNAL_USE : 'INTERNAL_USE'; +INTERPRETED : 'INTERPRETED'; +INTERSECT : 'INTERSECT'; +INTERVAL : 'INTERVAL'; +INT : 'INT'; +INTERNAL : 'INTERNAL'; +INTO : 'INTO'; +INVALIDATE : 'INVALIDATE'; +INVALIDATION : 'INVALIDATION'; +INVISIBLE : 'INVISIBLE'; +IN_XQUERY : 'IN_XQUERY'; +IO_OPTIONS : 'IO_OPTIONS'; +IS : 'IS'; +IS_LEAF : 'IS_LEAF'; +ISOLATION : 'ISOLATION'; +ISOLATION_LEVEL : 'ISOLATION_LEVEL'; +ITEMS : 'ITEMS'; +ITERATE : 'ITERATE'; +ITERATION_NUMBER : 'ITERATION_NUMBER'; +JAVA : 'JAVA'; +JOB : 'JOB'; +JOIN : 'JOIN'; +JSON_ARRAYAGG : 'JSON_ARRAYAGG'; +JSON_ARRAY : 'JSON_ARRAY'; +JSON_EQUAL : 'JSON_EQUAL'; +JSON_EXISTS2 : 'JSON_EXISTS2'; +JSON_EXISTS : 'JSON_EXISTS'; +JSONGET : 'JSONGET'; +JSON : 'JSON'; +JSON_OBJECTAGG : 'JSON_OBJECTAGG'; +JSON_OBJECT : 'JSON_OBJECT'; +JSONPARSE : 'JSONPARSE'; +JSON_QUERY : 'JSON_QUERY'; +JSON_SERIALIZE : 'JSON_SERIALIZE'; +JSON_TABLE : 'JSON_TABLE'; +JSON_TEXTCONTAINS2 : 'JSON_TEXTCONTAINS2'; +JSON_TEXTCONTAINS : 'JSON_TEXTCONTAINS'; +JSON_TRANSFORM : 'JSON_TRANSFORM'; +JSON_VALUE : 'JSON_VALUE'; +K_LETTER : 'K'; +KEEP_DUPLICATES : 'KEEP_DUPLICATES'; +KEEP : 'KEEP'; +KERBEROS : 'KERBEROS'; +KEY : 'KEY'; +KEY_LENGTH : 'KEY_LENGTH'; +KEYSIZE : 'KEYSIZE'; +KEYS : 'KEYS'; +KEYSTORE : 'KEYSTORE'; +KILL : 'KILL'; +LABEL : 'LABEL'; +LANGUAGE : 'LANGUAGE'; +LAST_DAY : 'LAST_DAY'; +LAST : 'LAST'; +LAST_VALUE : 'LAST_VALUE'; +LATERAL : 'LATERAL'; +LATEST : 'LATEST'; +LAX : 'LAX'; +LAYER : 'LAYER'; +LDAP_REGISTRATION_ENABLED : 'LDAP_REGISTRATION_ENABLED'; +LDAP_REGISTRATION : 'LDAP_REGISTRATION'; +LDAP_REG_SYNC_INTERVAL : 'LDAP_REG_SYNC_INTERVAL'; +LDRTRIM : 'LDRTRIM'; +LEAF : 'LEAF'; +LEAD_CDB : 'LEAD_CDB'; +LEAD_CDB_URI : 'LEAD_CDB_URI'; +LEADING : 'LEADING'; +LEFT : 'LEFT'; +LENGTH2 : 'LENGTH2'; +LENGTH4 : 'LENGTH4'; +LENGTHB : 'LENGTHB'; +LENGTHC : 'LENGTHC'; +LENGTH : 'LENGTH'; +LESS : 'LESS'; +LEVEL : 'LEVEL'; +LEVEL_NAME : 'LEVEL_NAME'; +LEVELS : 'LEVELS'; +LIBRARY : 'LIBRARY'; +LIFECYCLE : 'LIFECYCLE'; +LIFE : 'LIFE'; +LIFETIME : 'LIFETIME'; +LIKE2 : 'LIKE2'; +LIKE4 : 'LIKE4'; +LIKEC : 'LIKEC'; +LIKE_EXPAND : 'LIKE_EXPAND'; +LIKE : 'LIKE'; +LIMIT : 'LIMIT'; +LINEAR : 'LINEAR'; +LINES : 'LINES'; +LINK : 'LINK'; +LIST : 'LIST'; +LITTLE : 'LITTLE'; +LLS : 'LLS'; +LN : 'LN'; +LNNVL : 'LNNVL'; +LOAD : 'LOAD'; +LOB : 'LOB'; +LOBFILE : 'LOBFILE'; +LOBNVL : 'LOBNVL'; +LOBS : 'LOBS'; +LOCAL_INDEXES : 'LOCAL_INDEXES'; +LOCAL : 'LOCAL'; +LOCALTIME : 'LOCALTIME'; +LOCALTIMESTAMP : 'LOCALTIMESTAMP'; +LOCATION : 'LOCATION'; +LOCATOR : 'LOCATOR'; +LOCKDOWN : 'LOCKDOWN'; +LOCKED : 'LOCKED'; +LOCKING : 'LOCKING'; +LOCK : 'LOCK'; +LOGFILE : 'LOGFILE'; +LOGFILES : 'LOGFILES'; +LOGGING : 'LOGGING'; +LOGICAL : 'LOGICAL'; +LOGICAL_READS_PER_CALL : 'LOGICAL_READS_PER_CALL'; +LOGICAL_READS_PER_SESSION : 'LOGICAL_READS_PER_SESSION'; +LOG : 'LOG'; +LOGMINING : 'LOGMINING'; +LOGOFF : 'LOGOFF'; +LOGON : 'LOGON'; +LOG_READ_ONLY_VIOLATIONS : 'LOG_READ_ONLY_VIOLATIONS'; +LONG : 'LONG'; +LOOP : 'LOOP'; +LOST : 'LOST'; +LOWER : 'LOWER'; +LOW : 'LOW'; +LPAD : 'LPAD'; +LRTRIM : 'LRTRIM'; +LTRIM : 'LTRIM'; +M_LETTER : 'M'; +MAIN : 'MAIN'; +MAKE_REF : 'MAKE_REF'; +MANAGED : 'MANAGED'; +MANAGE : 'MANAGE'; +MANAGEMENT : 'MANAGEMENT'; +MANAGER : 'MANAGER'; +MANDATORY : 'MANDATORY'; +MANUAL : 'MANUAL'; +MAP : 'MAP'; +MAPPING : 'MAPPING'; +MASK : 'MASK'; +MASTER : 'MASTER'; +MATCHED : 'MATCHED'; +MATCHES : 'MATCHES'; +MATCH : 'MATCH'; +MATCH_NUMBER : 'MATCH_NUMBER'; +MATCH_RECOGNIZE : 'MATCH_RECOGNIZE'; +MATERIALIZED : 'MATERIALIZED'; +MATERIALIZE : 'MATERIALIZE'; +MAXARCHLOGS : 'MAXARCHLOGS'; +MAXDATAFILES : 'MAXDATAFILES'; +MAXEXTENTS : 'MAXEXTENTS'; +MAXIMIZE : 'MAXIMIZE'; +MAXINSTANCES : 'MAXINSTANCES'; +MAXLOGFILES : 'MAXLOGFILES'; +MAXLOGHISTORY : 'MAXLOGHISTORY'; +MAXLOGMEMBERS : 'MAXLOGMEMBERS'; +MAX_SHARED_TEMP_SIZE : 'MAX_SHARED_TEMP_SIZE'; +MAXSIZE : 'MAXSIZE'; +MAXTRANS : 'MAXTRANS'; +MAXVALUE : 'MAXVALUE'; +MEASURE : 'MEASURE'; +MEASURES : 'MEASURES'; +MEDIUM : 'MEDIUM'; +MEMBER : 'MEMBER'; +MEMBER_CAPTION : 'MEMBER_CAPTION'; +MEMBER_DESCRIPTION : 'MEMBER_DESCRIPTION'; +MEMBER_NAME : 'MEMBER_NAME'; +MEMBER_UNIQUE_NAME : 'MEMBER_UNIQUE_NAME'; +MEMCOMPRESS : 'MEMCOMPRESS'; +MEMORY : 'MEMORY'; +MERGEACTIONS : 'MERGE$ACTIONS'; +MERGE_AJ : 'MERGE_AJ'; +MERGE_CONST_ON : 'MERGE_CONST_ON'; +MERGE : 'MERGE'; +MERGE_SJ : 'MERGE_SJ'; +METADATA : 'METADATA'; +METHOD : 'METHOD'; +MIGRATE : 'MIGRATE'; +MIGRATION : 'MIGRATION'; +MINEXTENTS : 'MINEXTENTS'; +MINIMIZE : 'MINIMIZE'; +MINIMUM : 'MINIMUM'; +MINING : 'MINING'; +MINUS : 'MINUS'; +MINUS_NULL : 'MINUS_NULL'; +MINUTE : 'MINUTE'; +MINUTES : 'MINUTES'; +MINVALUE : 'MINVALUE'; +MIRRORCOLD : 'MIRRORCOLD'; +MIRRORHOT : 'MIRRORHOT'; +MIRROR : 'MIRROR'; +MISSING : 'MISSING'; +MISMATCH : 'MISMATCH'; +MLSLABEL : 'MLSLABEL'; +MODEL_COMPILE_SUBQUERY : 'MODEL_COMPILE_SUBQUERY'; +MODEL_DONTVERIFY_UNIQUENESS : 'MODEL_DONTVERIFY_UNIQUENESS'; +MODEL_DYNAMIC_SUBQUERY : 'MODEL_DYNAMIC_SUBQUERY'; +MODEL_MIN_ANALYSIS : 'MODEL_MIN_ANALYSIS'; +MODEL : 'MODEL'; +MODEL_NB : 'MODEL_NB'; +MODEL_NO_ANALYSIS : 'MODEL_NO_ANALYSIS'; +MODEL_PBY : 'MODEL_PBY'; +MODEL_PUSH_REF : 'MODEL_PUSH_REF'; +MODEL_SV : 'MODEL_SV'; +MODE : 'MODE'; +MODIFICATION : 'MODIFICATION'; +MODIFY_COLUMN_TYPE : 'MODIFY_COLUMN_TYPE'; +MODIFY : 'MODIFY'; +MOD : 'MOD'; +MODULE : 'MODULE'; +MONITORING : 'MONITORING'; +MONITOR : 'MONITOR'; +MONTH : 'MONTH'; +MONTHS_BETWEEN : 'MONTHS_BETWEEN'; +MONTHS : 'MONTHS'; +MOUNT : 'MOUNT'; +MOUNTPATH : 'MOUNTPATH'; +MOUNTPOINT : 'MOUNTPOINT'; +MOVEMENT : 'MOVEMENT'; +MOVE : 'MOVE'; +MULTIDIMENSIONAL : 'MULTIDIMENSIONAL'; +MULTISET : 'MULTISET'; +MV_MERGE : 'MV_MERGE'; +NAMED : 'NAMED'; +NAME : 'NAME'; +NAMESPACE : 'NAMESPACE'; +NAN_ : 'NAN'; +NANVL : 'NANVL'; +NATIONAL : 'NATIONAL'; +NATIVE_FULL_OUTER_JOIN : 'NATIVE_FULL_OUTER_JOIN'; +NATIVE : 'NATIVE'; +NATURAL : 'NATURAL'; +NATURALN : 'NATURALN'; +NAV : 'NAV'; +NCHAR_CS : 'NCHAR_CS'; +NCHAR : 'NCHAR'; +NCHR : 'NCHR'; +NCLOB : 'NCLOB'; +NEEDED : 'NEEDED'; +NEG : 'NEG'; +NESTED : 'NESTED'; +NESTED_TABLE_FAST_INSERT : 'NESTED_TABLE_FAST_INSERT'; +NESTED_TABLE_GET_REFS : 'NESTED_TABLE_GET_REFS'; +NESTED_TABLE_ID : 'NESTED_TABLE_ID'; +NESTED_TABLE_SET_REFS : 'NESTED_TABLE_SET_REFS'; +NESTED_TABLE_SET_SETID : 'NESTED_TABLE_SET_SETID'; +NETWORK : 'NETWORK'; +NEVER : 'NEVER'; +NEW : 'NEW'; +NEWLINE_ : 'NEWLINE'; +NEW_TIME : 'NEW_TIME'; +NEXT_DAY : 'NEXT_DAY'; +NEXT : 'NEXT'; +NL_AJ : 'NL_AJ'; +NLJ_BATCHING : 'NLJ_BATCHING'; +NLJ_INDEX_FILTER : 'NLJ_INDEX_FILTER'; +NLJ_INDEX_SCAN : 'NLJ_INDEX_SCAN'; +NLJ_PREFETCH : 'NLJ_PREFETCH'; +NLS_CALENDAR : 'NLS_CALENDAR'; +NLS_CHARACTERSET : 'NLS_CHARACTERSET'; +NLS_CHARSET_DECL_LEN : 'NLS_CHARSET_DECL_LEN'; +NLS_CHARSET_ID : 'NLS_CHARSET_ID'; +NLS_CHARSET_NAME : 'NLS_CHARSET_NAME'; +NLS_COMP : 'NLS_COMP'; +NLS_CURRENCY : 'NLS_CURRENCY'; +NLS_DATE_FORMAT : 'NLS_DATE_FORMAT'; +NLS_DATE_LANGUAGE : 'NLS_DATE_LANGUAGE'; +NLS_INITCAP : 'NLS_INITCAP'; +NLS_ISO_CURRENCY : 'NLS_ISO_CURRENCY'; +NL_SJ : 'NL_SJ'; +NLS_LANG : 'NLS_LANG'; +NLS_LANGUAGE : 'NLS_LANGUAGE'; +NLS_LENGTH_SEMANTICS : 'NLS_LENGTH_SEMANTICS'; +NLS_LOWER : 'NLS_LOWER'; +NLS_NCHAR_CONV_EXCP : 'NLS_NCHAR_CONV_EXCP'; +NLS_NUMERIC_CHARACTERS : 'NLS_NUMERIC_CHARACTERS'; +NLS_SORT : 'NLS_SORT'; +NLSSORT : 'NLSSORT'; +NLS_SPECIAL_CHARS : 'NLS_SPECIAL_CHARS'; +NLS_TERRITORY : 'NLS_TERRITORY'; +NLS_UPPER : 'NLS_UPPER'; +NO_ACCESS : 'NO_ACCESS'; +NO_ADAPTIVE_PLAN : 'NO_ADAPTIVE_PLAN'; +NO_ANSI_REARCH : 'NO_ANSI_REARCH'; +NOAPPEND : 'NOAPPEND'; +NOARCHIVELOG : 'NOARCHIVELOG'; +NOAUDIT : 'NOAUDIT'; +NOBADFILE : 'NOBADFILE'; +NO_AUTO_REOPTIMIZE : 'NO_AUTO_REOPTIMIZE'; +NO_BASETABLE_MULTIMV_REWRITE : 'NO_BASETABLE_MULTIMV_REWRITE'; +NO_BATCH_TABLE_ACCESS_BY_ROWID : 'NO_BATCH_TABLE_ACCESS_BY_ROWID'; +NO_BIND_AWARE : 'NO_BIND_AWARE'; +NO_BUFFER : 'NO_BUFFER'; +NOCACHE : 'NOCACHE'; +NOCHECK : 'NOCHECK'; +NO_CARTESIAN : 'NO_CARTESIAN'; +NO_CHECK_ACL_REWRITE : 'NO_CHECK_ACL_REWRITE'; +NO_CLUSTER_BY_ROWID : 'NO_CLUSTER_BY_ROWID'; +NO_CLUSTERING : 'NO_CLUSTERING'; +NO_COALESCE_SQ : 'NO_COALESCE_SQ'; +NO_COMMON_DATA : 'NO_COMMON_DATA'; +NOCOMPRESS : 'NOCOMPRESS'; +NO_CONNECT_BY_CB_WHR_ONLY : 'NO_CONNECT_BY_CB_WHR_ONLY'; +NO_CONNECT_BY_COMBINE_SW : 'NO_CONNECT_BY_COMBINE_SW'; +NO_CONNECT_BY_COST_BASED : 'NO_CONNECT_BY_COST_BASED'; +NO_CONNECT_BY_ELIM_DUPS : 'NO_CONNECT_BY_ELIM_DUPS'; +NO_CONNECT_BY_FILTERING : 'NO_CONNECT_BY_FILTERING'; +NOCOPY : 'NOCOPY'; +NO_COST_XML_QUERY_REWRITE : 'NO_COST_XML_QUERY_REWRITE'; +NO_CPU_COSTING : 'NO_CPU_COSTING'; +NOCPU_COSTING : 'NOCPU_COSTING'; +NOCYCLE : 'NOCYCLE'; +NO_DATA_SECURITY_REWRITE : 'NO_DATA_SECURITY_REWRITE'; +NO_DECORRELATE : 'NO_DECORRELATE'; +NODELAY : 'NODELAY'; +NODIRECTIO : 'NODIRECTIO'; +NODISCARDFILE : 'NODISCARDFILE'; +NO_DOMAIN_INDEX_FILTER : 'NO_DOMAIN_INDEX_FILTER'; +NO_DST_UPGRADE_INSERT_CONV : 'NO_DST_UPGRADE_INSERT_CONV'; +NO_ELIM_GROUPBY : 'NO_ELIM_GROUPBY'; +NO_ELIMINATE_JOIN : 'NO_ELIMINATE_JOIN'; +NO_ELIMINATE_OBY : 'NO_ELIMINATE_OBY'; +NO_ELIMINATE_OUTER_JOIN : 'NO_ELIMINATE_OUTER_JOIN'; +NOENTITYESCAPING : 'NOENTITYESCAPING'; +NO_EXPAND_GSET_TO_UNION : 'NO_EXPAND_GSET_TO_UNION'; +NO_EXPAND : 'NO_EXPAND'; +NO_EXPAND_TABLE : 'NO_EXPAND_TABLE'; +NOEXTEND : 'NOEXTEND'; +NO_FACT : 'NO_FACT'; +NO_FACTORIZE_JOIN : 'NO_FACTORIZE_JOIN'; +NO_FILTERING : 'NO_FILTERING'; +NOFORCE : 'NOFORCE'; +NO_FULL_OUTER_JOIN_TO_OUTER : 'NO_FULL_OUTER_JOIN_TO_OUTER'; +NO_GATHER_OPTIMIZER_STATISTICS : 'NO_GATHER_OPTIMIZER_STATISTICS'; +NO_GBY_PUSHDOWN : 'NO_GBY_PUSHDOWN'; +NOGUARANTEE : 'NOGUARANTEE'; +NO_INDEX_FFS : 'NO_INDEX_FFS'; +NO_INDEX : 'NO_INDEX'; +NO_INDEX_SS : 'NO_INDEX_SS'; +NO_INMEMORY : 'NO_INMEMORY'; +NO_INMEMORY_PRUNING : 'NO_INMEMORY_PRUNING'; +NOKEEP : 'NOKEEP'; +NO_LOAD : 'NO_LOAD'; +NOLOCAL : 'NOLOCAL'; +NOLOG : 'NOLOG'; +NOLOGFILE : 'NOLOGFILE'; +NOLOGGING : 'NOLOGGING'; +NOMAPPING : 'NOMAPPING'; +NOMAXVALUE : 'NOMAXVALUE'; +NO_MERGE : 'NO_MERGE'; +NOMINIMIZE : 'NOMINIMIZE'; +NOMINVALUE : 'NOMINVALUE'; +NO_MODEL_PUSH_REF : 'NO_MODEL_PUSH_REF'; +NO_MONITORING : 'NO_MONITORING'; +NOMONITORING : 'NOMONITORING'; +NO_MONITOR : 'NO_MONITOR'; +NO_MULTIMV_REWRITE : 'NO_MULTIMV_REWRITE'; +NO_NATIVE_FULL_OUTER_JOIN : 'NO_NATIVE_FULL_OUTER_JOIN'; +NONBLOCKING : 'NONBLOCKING'; +NONEDITIONABLE : 'NONEDITIONABLE'; +NONE : 'NONE'; +NONULLIF : 'NONULLIF'; +NO_NLJ_BATCHING : 'NO_NLJ_BATCHING'; +NO_NLJ_PREFETCH : 'NO_NLJ_PREFETCH'; +NO : 'NO'; +NONSCHEMA : 'NONSCHEMA'; +NO_OBJECT_LINK : 'NO_OBJECT_LINK'; +NOORDER : 'NOORDER'; +NO_ORDER_ROLLUPS : 'NO_ORDER_ROLLUPS'; +NO_OUTER_JOIN_TO_ANTI : 'NO_OUTER_JOIN_TO_ANTI'; +NO_OUTER_JOIN_TO_INNER : 'NO_OUTER_JOIN_TO_INNER'; +NOOVERRIDE : 'NOOVERRIDE'; +NO_PARALLEL_INDEX : 'NO_PARALLEL_INDEX'; +NOPARALLEL_INDEX : 'NOPARALLEL_INDEX'; +NO_PARALLEL : 'NO_PARALLEL'; +NOPARALLEL : 'NOPARALLEL'; +NO_PARTIAL_COMMIT : 'NO_PARTIAL_COMMIT'; +NO_PARTIAL_JOIN : 'NO_PARTIAL_JOIN'; +NO_PARTIAL_ROLLUP_PUSHDOWN : 'NO_PARTIAL_ROLLUP_PUSHDOWN'; +NOPARTITION : 'NOPARTITION'; +NO_PLACE_DISTINCT : 'NO_PLACE_DISTINCT'; +NO_PLACE_GROUP_BY : 'NO_PLACE_GROUP_BY'; +NO_PQ_CONCURRENT_UNION : 'NO_PQ_CONCURRENT_UNION'; +NO_PQ_MAP : 'NO_PQ_MAP'; +NOPROMPT : 'NOPROMPT'; +NO_PQ_REPLICATE : 'NO_PQ_REPLICATE'; +NO_PQ_SKEW : 'NO_PQ_SKEW'; +NO_PRUNE_GSETS : 'NO_PRUNE_GSETS'; +NO_PULL_PRED : 'NO_PULL_PRED'; +NO_PUSH_PRED : 'NO_PUSH_PRED'; +NO_PUSH_SUBQ : 'NO_PUSH_SUBQ'; +NO_PX_FAULT_TOLERANCE : 'NO_PX_FAULT_TOLERANCE'; +NO_PX_JOIN_FILTER : 'NO_PX_JOIN_FILTER'; +NO_QKN_BUFF : 'NO_QKN_BUFF'; +NO_QUERY_TRANSFORMATION : 'NO_QUERY_TRANSFORMATION'; +NO_REF_CASCADE : 'NO_REF_CASCADE'; +NORELOCATE : 'NORELOCATE'; +NORELY : 'NORELY'; +NOREPAIR : 'NOREPAIR'; +NOREPLAY : 'NOREPLAY'; +NORESETLOGS : 'NORESETLOGS'; +NO_RESULT_CACHE : 'NO_RESULT_CACHE'; +NOREVERSE : 'NOREVERSE'; +NO_REWRITE : 'NO_REWRITE'; +NOREWRITE : 'NOREWRITE'; +NORMAL : 'NORMAL'; +NO_ROOT_SW_FOR_LOCAL : 'NO_ROOT_SW_FOR_LOCAL'; +NOROWDEPENDENCIES : 'NOROWDEPENDENCIES'; +NOSCALE : 'NOSCALE'; +NOSCHEMACHECK : 'NOSCHEMACHECK'; +NOSEGMENT : 'NOSEGMENT'; +NO_SEMIJOIN : 'NO_SEMIJOIN'; +NO_SEMI_TO_INNER : 'NO_SEMI_TO_INNER'; +NO_SET_TO_JOIN : 'NO_SET_TO_JOIN'; +NOSHARD : 'NOSHARD'; +NOSORT : 'NOSORT'; +NO_SQL_TRANSLATION : 'NO_SQL_TRANSLATION'; +NO_SQL_TUNE : 'NO_SQL_TUNE'; +NO_STAR_TRANSFORMATION : 'NO_STAR_TRANSFORMATION'; +NO_STATEMENT_QUEUING : 'NO_STATEMENT_QUEUING'; +NO_STATS_GSETS : 'NO_STATS_GSETS'; +NOSTRICT : 'NOSTRICT'; +NO_SUBQUERY_PRUNING : 'NO_SUBQUERY_PRUNING'; +NO_SUBSTRB_PAD : 'NO_SUBSTRB_PAD'; +NO_SWAP_JOIN_INPUTS : 'NO_SWAP_JOIN_INPUTS'; +NOSWITCH : 'NOSWITCH'; +NO_TABLE_LOOKUP_BY_NL : 'NO_TABLE_LOOKUP_BY_NL'; +NO_TEMP_TABLE : 'NO_TEMP_TABLE'; +NOTHING : 'NOTHING'; +NOTIFICATION : 'NOTIFICATION'; +NOTRIM : 'NOTRIM'; +NOT : 'NOT'; +NO_TRANSFORM_DISTINCT_AGG : 'NO_TRANSFORM_DISTINCT_AGG'; +NO_UNNEST : 'NO_UNNEST'; +NO_USE_CUBE : 'NO_USE_CUBE'; +NO_USE_HASH_AGGREGATION : 'NO_USE_HASH_AGGREGATION'; +NO_USE_HASH_GBY_FOR_PUSHDOWN : 'NO_USE_HASH_GBY_FOR_PUSHDOWN'; +NO_USE_HASH : 'NO_USE_HASH'; +NO_USE_INVISIBLE_INDEXES : 'NO_USE_INVISIBLE_INDEXES'; +NO_USE_MERGE : 'NO_USE_MERGE'; +NO_USE_NL : 'NO_USE_NL'; +NO_USE_VECTOR_AGGREGATION : 'NO_USE_VECTOR_AGGREGATION'; +NOVALIDATE : 'NOVALIDATE'; +NO_VECTOR_TRANSFORM_DIMS : 'NO_VECTOR_TRANSFORM_DIMS'; +NO_VECTOR_TRANSFORM_FACT : 'NO_VECTOR_TRANSFORM_FACT'; +NO_VECTOR_TRANSFORM : 'NO_VECTOR_TRANSFORM'; +NOWAIT : 'NOWAIT'; +NO_XDB_FASTPATH_INSERT : 'NO_XDB_FASTPATH_INSERT'; +NO_XML_DML_REWRITE : 'NO_XML_DML_REWRITE'; +NO_XMLINDEX_REWRITE_IN_SELECT : 'NO_XMLINDEX_REWRITE_IN_SELECT'; +NO_XMLINDEX_REWRITE : 'NO_XMLINDEX_REWRITE'; +NO_XML_QUERY_REWRITE : 'NO_XML_QUERY_REWRITE'; +NO_ZONEMAP : 'NO_ZONEMAP'; +NTH_VALUE : 'NTH_VALUE'; +NULLIF : 'NULLIF'; +NULL_ : 'NULL'; +NULLS : 'NULLS'; +NUMBER : 'NUMBER'; +NUMERIC : 'NUMERIC'; +NUM_INDEX_KEYS : 'NUM_INDEX_KEYS'; +NUMTODSINTERVAL : 'NUMTODSINTERVAL'; +NUMTOYMINTERVAL : 'NUMTOYMINTERVAL'; +NVARCHAR2 : 'NVARCHAR2'; +NVL2 : 'NVL2'; +OBJECT2XML : 'OBJECT2XML'; +OBJECT : 'OBJECT'; +OBJ_ID : 'OBJ_ID'; +OBJNO : 'OBJNO'; +OBJNO_REUSE : 'OBJNO_REUSE'; +OCCURENCES : 'OCCURENCES'; +OFFLINE : 'OFFLINE'; +OFF : 'OFF'; +OFFSET : 'OFFSET'; +OF : 'OF'; +OIDINDEX : 'OIDINDEX'; +OID : 'OID'; +OLAP : 'OLAP'; +OLD : 'OLD'; +OLD_PUSH_PRED : 'OLD_PUSH_PRED'; +OLS : 'OLS'; +OLTP : 'OLTP'; +OMIT : 'OMIT'; +ONE : 'ONE'; +ONLINE : 'ONLINE'; +ONLINELOG : 'ONLINELOG'; +ONLY : 'ONLY'; +ON : 'ON'; +OPAQUE : 'OPAQUE'; +OPAQUE_TRANSFORM : 'OPAQUE_TRANSFORM'; +OPAQUE_XCANONICAL : 'OPAQUE_XCANONICAL'; +OPCODE : 'OPCODE'; +OPEN : 'OPEN'; +OPERATIONS : 'OPERATIONS'; +OPERATOR : 'OPERATOR'; +OPT_ESTIMATE : 'OPT_ESTIMATE'; +OPTIMAL : 'OPTIMAL'; +OPTIMIZE : 'OPTIMIZE'; +OPTIMIZER_FEATURES_ENABLE : 'OPTIMIZER_FEATURES_ENABLE'; +OPTIMIZER_GOAL : 'OPTIMIZER_GOAL'; +OPTION : 'OPTION'; +OPTIONALLY : 'OPTIONALLY'; +OPT_PARAM : 'OPT_PARAM'; +ORA_BRANCH : 'ORA_BRANCH'; +ORA_CHECK_ACL : 'ORA_CHECK_ACL'; +ORA_CHECK_PRIVILEGE : 'ORA_CHECK_PRIVILEGE'; +ORA_CLUSTERING : 'ORA_CLUSTERING'; +ORADATA : 'ORADATA'; +ORC : 'ORC'; +ORACLE_DATE : 'ORACLE_DATE'; +ORACLE_NUMBER : 'ORACLE_NUMBER'; +ORADEBUG : 'ORADEBUG'; +ORA_DST_AFFECTED : 'ORA_DST_AFFECTED'; +ORA_DST_CONVERT : 'ORA_DST_CONVERT'; +ORA_DST_ERROR : 'ORA_DST_ERROR'; +ORA_GET_ACLIDS : 'ORA_GET_ACLIDS'; +ORA_GET_PRIVILEGES : 'ORA_GET_PRIVILEGES'; +ORA_HASH : 'ORA_HASH'; +ORA_INVOKING_USERID : 'ORA_INVOKING_USERID'; +ORA_INVOKING_USER : 'ORA_INVOKING_USER'; +ORA_INVOKING_XS_USER_GUID : 'ORA_INVOKING_XS_USER_GUID'; +ORA_INVOKING_XS_USER : 'ORA_INVOKING_XS_USER'; +ORA_RAWCOMPARE : 'ORA_RAWCOMPARE'; +ORA_RAWCONCAT : 'ORA_RAWCONCAT'; +ORA_ROWSCN : 'ORA_ROWSCN'; +ORA_ROWSCN_RAW : 'ORA_ROWSCN_RAW'; +ORA_ROWVERSION : 'ORA_ROWVERSION'; +ORA_TABVERSION : 'ORA_TABVERSION'; +ORA_WRITE_TIME : 'ORA_WRITE_TIME'; +ORDERED : 'ORDERED'; +ORDERED_PREDICATES : 'ORDERED_PREDICATES'; +ORDER : 'ORDER'; +ORDINALITY : 'ORDINALITY'; +OR_EXPAND : 'OR_EXPAND'; +ORGANIZATION : 'ORGANIZATION'; +OR : 'OR'; +OR_PREDICATES : 'OR_PREDICATES'; +OSERROR : 'OSERROR'; +OTHER : 'OTHER'; +OUTER_JOIN_TO_ANTI : 'OUTER_JOIN_TO_ANTI'; +OUTER_JOIN_TO_INNER : 'OUTER_JOIN_TO_INNER'; +OUTER : 'OUTER'; +OUTLINE_LEAF : 'OUTLINE_LEAF'; +OUTLINE : 'OUTLINE'; +OUTPUTFORMAT : 'OUTPUTFORMAT'; +OUT_OF_LINE : 'OUT_OF_LINE'; +OUT : 'OUT'; +OVERFLOW_NOMOVE : 'OVERFLOW_NOMOVE'; +OVERFLOW_ : 'OVERFLOW'; +OVERLAPS : 'OVERLAPS'; +OVER : 'OVER'; +OVERRIDE : 'OVERRIDE'; +OVERRIDING : 'OVERRIDING'; +OWNER : 'OWNER'; +OWNERSHIP : 'OWNERSHIP'; +OWN : 'OWN'; +P_LETTER : 'P'; +PACKAGE : 'PACKAGE'; +PACKAGES : 'PACKAGES'; +PARALLEL_ENABLE : 'PARALLEL_ENABLE'; +PARALLEL_INDEX : 'PARALLEL_INDEX'; +PARALLEL : 'PARALLEL'; +PARAMETERFILE : 'PARAMETERFILE'; +PARAMETERS : 'PARAMETERS'; +PARAM : 'PARAM'; +PARENT : 'PARENT'; +PARENT_LEVEL_NAME : 'PARENT_LEVEL_NAME'; +PARENT_UNIQUE_NAME : 'PARENT_UNIQUE_NAME'; +PARITY : 'PARITY'; +PARQUET : 'PARQUET'; +PARTIAL_JOIN : 'PARTIAL_JOIN'; +PARTIALLY : 'PARTIALLY'; +PARTIAL : 'PARTIAL'; +PARTIAL_ROLLUP_PUSHDOWN : 'PARTIAL_ROLLUP_PUSHDOWN'; +PARTITION_HASH : 'PARTITION_HASH'; +PARTITION_LIST : 'PARTITION_LIST'; +PARTITION : 'PARTITION'; +PARTITION_RANGE : 'PARTITION_RANGE'; +PARTITIONS : 'PARTITIONS'; +PARTNUMINST : 'PART$NUM$INST'; +PASSING : 'PASSING'; +PASSWORD_GRACE_TIME : 'PASSWORD_GRACE_TIME'; +PASSWORD_LIFE_TIME : 'PASSWORD_LIFE_TIME'; +PASSWORD_LOCK_TIME : 'PASSWORD_LOCK_TIME'; +PASSWORD : 'PASSWORD'; +PASSWORD_REUSE_MAX : 'PASSWORD_REUSE_MAX'; +PASSWORD_REUSE_TIME : 'PASSWORD_REUSE_TIME'; +PASSWORD_ROLLOVER_TIME : 'PASSWORD_ROLLOVER_TIME'; +PASSWORD_VERIFY_FUNCTION : 'PASSWORD_VERIFY_FUNCTION'; +PAST : 'PAST'; +PATCH : 'PATCH'; +PATH : 'PATH'; +PATH_PREFIX : 'PATH_PREFIX'; +PATHS : 'PATHS'; +PATTERN : 'PATTERN'; +PBL_HS_BEGIN : 'PBL_HS_BEGIN'; +PBL_HS_END : 'PBL_HS_END'; +PCTFREE : 'PCTFREE'; +PCTINCREASE : 'PCTINCREASE'; +PCTTHRESHOLD : 'PCTTHRESHOLD'; +PCTUSED : 'PCTUSED'; +PCTVERSION : 'PCTVERSION'; +PENDING : 'PENDING'; +PERCENT_FOUND : '%' SPACE* 'FOUND'; +PERCENT_ISOPEN : '%' SPACE* 'ISOPEN'; +PERCENT_NOTFOUND : '%' SPACE* 'NOTFOUND'; +PERCENT_KEYWORD : 'PERCENT'; +PERCENT_RANKM : 'PERCENT_RANKM'; +PERCENT_ROWCOUNT : '%' SPACE* 'ROWCOUNT'; +PERCENT_ROWTYPE : '%' SPACE* 'ROWTYPE'; +PERCENT_TYPE : '%' SPACE* 'TYPE'; +PERCENT_BULK_EXCEPTIONS : '%' SPACE* 'BULK_EXCEPTIONS'; +PERCENT_BULK_ROWCOUNT : '%' SPACE* 'BULK_ROWCOUNT'; +PERFORMANCE : 'PERFORMANCE'; +PERIOD_KEYWORD : 'PERIOD'; +PERMANENT : 'PERMANENT'; +PERMISSION : 'PERMISSION'; +PERMUTE : 'PERMUTE'; +PER : 'PER'; +PFILE : 'PFILE'; +PHYSICAL : 'PHYSICAL'; +PIKEY : 'PIKEY'; +PIPELINED : 'PIPELINED'; +PIPE : 'PIPE'; +PIV_GB : 'PIV_GB'; +PIVOT : 'PIVOT'; +PIV_SSF : 'PIV_SSF'; +PLACE_DISTINCT : 'PLACE_DISTINCT'; +PLACE_GROUP_BY : 'PLACE_GROUP_BY'; +PLAN : 'PLAN'; +PLSCOPE_SETTINGS : 'PLSCOPE_SETTINGS'; +PLS_INTEGER : 'PLS_INTEGER'; +PLSQL_CCFLAGS : 'PLSQL_CCFLAGS'; +PLSQL_CODE_TYPE : 'PLSQL_CODE_TYPE'; +PLSQL_DEBUG : 'PLSQL_DEBUG'; +PLSQL_OPTIMIZE_LEVEL : 'PLSQL_OPTIMIZE_LEVEL'; +PLSQL_WARNINGS : 'PLSQL_WARNINGS'; +PLUGGABLE : 'PLUGGABLE'; +PMEM : 'PMEM'; +POINT : 'POINT'; +POLICY : 'POLICY'; +POOL_16K : 'POOL_16K'; +POOL_2K : 'POOL_2K'; +POOL_32K : 'POOL_32K'; +POOL_4K : 'POOL_4K'; +POOL_8K : 'POOL_8K'; +POSITION : 'POSITION'; +POSITIVEN : 'POSITIVEN'; +POSITIVE : 'POSITIVE'; +POST_TRANSACTION : 'POST_TRANSACTION'; +POWERMULTISET_BY_CARDINALITY : 'POWERMULTISET_BY_CARDINALITY'; +POWERMULTISET : 'POWERMULTISET'; +POWER : 'POWER'; +PQ_CONCURRENT_UNION : 'PQ_CONCURRENT_UNION'; +PQ_DISTRIBUTE : 'PQ_DISTRIBUTE'; +PQ_DISTRIBUTE_WINDOW : 'PQ_DISTRIBUTE_WINDOW'; +PQ_FILTER : 'PQ_FILTER'; +PQ_MAP : 'PQ_MAP'; +PQ_NOMAP : 'PQ_NOMAP'; +PQ_REPLICATE : 'PQ_REPLICATE'; +PQ_SKEW : 'PQ_SKEW'; +PRAGMA : 'PRAGMA'; +PREBUILT : 'PREBUILT'; +PRECEDES : 'PRECEDES'; +PRECEDING : 'PRECEDING'; +PRECISION : 'PRECISION'; +PRECOMPUTE_SUBQUERY : 'PRECOMPUTE_SUBQUERY'; +PREDICATE_REORDERS : 'PREDICATE_REORDERS'; +PRELOAD : 'PRELOAD'; +PREPARE : 'PREPARE'; +PREPROCESSOR : 'PREPROCESSOR'; +PRESENTNNV : 'PRESENTNNV'; +PRESENT : 'PRESENT'; +PRESENTV : 'PRESENTV'; +PRESERVE_OID : 'PRESERVE_OID'; +PRESERVE : 'PRESERVE'; +PRETTY : 'PRETTY'; +PREVIOUS : 'PREVIOUS'; +PREV : 'PREV'; +PRIMARY : 'PRIMARY'; +PRINTBLOBTOCLOB : 'PRINTBLOBTOCLOB'; +PRIORITY : 'PRIORITY'; +PRIOR : 'PRIOR'; +PRIVATE : 'PRIVATE'; +PRIVATE_SGA : 'PRIVATE_SGA'; +PRIVILEGED : 'PRIVILEGED'; +PRIVILEGE : 'PRIVILEGE'; +PRIVILEGES : 'PRIVILEGES'; +PROCEDURAL : 'PROCEDURAL'; +PROCEDURE : 'PROCEDURE'; +PROCESS : 'PROCESS'; +PROFILE : 'PROFILE'; +PROGRAM : 'PROGRAM'; +PROJECT : 'PROJECT'; +PROPAGATE : 'PROPAGATE'; +PROPERTY : 'PROPERTY'; +PROTECTED : 'PROTECTED'; +PROTECTION : 'PROTECTION'; +PROTOCOL : 'PROTOCOL'; +PROXY : 'PROXY'; +PRUNING : 'PRUNING'; +PUBLIC : 'PUBLIC'; +PULL_PRED : 'PULL_PRED'; +PURGE : 'PURGE'; +PUSH_PRED : 'PUSH_PRED'; +PUSH_SUBQ : 'PUSH_SUBQ'; +PX_FAULT_TOLERANCE : 'PX_FAULT_TOLERANCE'; +PX_GRANULE : 'PX_GRANULE'; +PX_JOIN_FILTER : 'PX_JOIN_FILTER'; +QB_NAME : 'QB_NAME'; +QUARTERS : 'QUARTERS'; +QUERY_BLOCK : 'QUERY_BLOCK'; +QUERY : 'QUERY'; +QUEUE_CURR : 'QUEUE_CURR'; +QUEUE : 'QUEUE'; +QUEUE_ROWP : 'QUEUE_ROWP'; +QUIESCE : 'QUIESCE'; +QUORUM : 'QUORUM'; +QUOTA : 'QUOTA'; +QUOTAGROUP : 'QUOTAGROUP'; +RAISE : 'RAISE'; +RANDOM_LOCAL : 'RANDOM_LOCAL'; +RANDOM : 'RANDOM'; +RANGE : 'RANGE'; +RANKM : 'RANKM'; +RAPIDLY : 'RAPIDLY'; +RAW : 'RAW'; +RAWTOHEX : 'RAWTOHEX'; +RAWTONHEX : 'RAWTONHEX'; +RBA : 'RBA'; +RBO_OUTLINE : 'RBO_OUTLINE'; +RCFILE : 'RCFILE'; +RDBA : 'RDBA'; +READ : 'READ'; +READS : 'READS'; +READSIZE : 'READSIZE'; +REALM : 'REALM'; +REAL : 'REAL'; +REBALANCE : 'REBALANCE'; +REBUILD : 'REBUILD'; +RECORD : 'RECORD'; +RECORDS : 'RECORDS'; +RECORDS_PER_BLOCK : 'RECORDS_PER_BLOCK'; +RECOVERABLE : 'RECOVERABLE'; +RECOVER : 'RECOVER'; +RECOVERY : 'RECOVERY'; +RECYCLEBIN : 'RECYCLEBIN'; +RECYCLE : 'RECYCLE'; +REDACTION : 'REDACTION'; +REDEFINE : 'REDEFINE'; +REDO : 'REDO'; +REDUCED : 'REDUCED'; +REDUNDANCY : 'REDUNDANCY'; +REF_CASCADE_CURSOR : 'REF_CASCADE_CURSOR'; +REFERENCED : 'REFERENCED'; +REFERENCE : 'REFERENCE'; +REFERENCES : 'REFERENCES'; +REFERENCING : 'REFERENCING'; +REF : 'REF'; +REFRESH : 'REFRESH'; +REFTOHEX : 'REFTOHEX'; +REGEXP_COUNT : 'REGEXP_COUNT'; +REGEXP_INSTR : 'REGEXP_INSTR'; +REGEXP_LIKE : 'REGEXP_LIKE'; +REGEXP_REPLACE : 'REGEXP_REPLACE'; +REGEXP_SUBSTR : 'REGEXP_SUBSTR'; +REGISTER : 'REGISTER'; +REGR_AVGX : 'REGR_AVGX'; +REGR_AVGY : 'REGR_AVGY'; +REGR_COUNT : 'REGR_COUNT'; +REGR_INTERCEPT : 'REGR_INTERCEPT'; +REGR_R2 : 'REGR_R2'; +REGR_SLOPE : 'REGR_SLOPE'; +REGR_SXX : 'REGR_SXX'; +REGR_SXY : 'REGR_SXY'; +REGR_SYY : 'REGR_SYY'; +REGULAR : 'REGULAR'; +REJECT : 'REJECT'; +REKEY : 'REKEY'; +RELATIONAL : 'RELATIONAL'; +RELIES_ON : 'RELIES_ON'; +RELOCATE : 'RELOCATE'; +RELY : 'RELY'; +REMAINDER : 'REMAINDER'; +REMOTE : 'REMOTE'; +REMOTE_MAPPED : 'REMOTE_MAPPED'; +REMOVE : 'REMOVE'; +RENAME : 'RENAME'; +REPAIR : 'REPAIR'; +REPEAT : 'REPEAT'; +REPLACE : 'REPLACE'; +REPLICATION : 'REPLICATION'; +REQUIRED : 'REQUIRED'; +RESETLOGS : 'RESETLOGS'; +RESET : 'RESET'; +RESIZE : 'RESIZE'; +RESOLVE : 'RESOLVE'; +RESOLVER : 'RESOLVER'; +RESOURCE : 'RESOURCE'; +RESPECT : 'RESPECT'; +RESTART : 'RESTART'; +RESTORE_AS_INTERVALS : 'RESTORE_AS_INTERVALS'; +RESTORE : 'RESTORE'; +RESTRICT_ALL_REF_CONS : 'RESTRICT_ALL_REF_CONS'; +RESTRICTED : 'RESTRICTED'; +RESTRICT_REFERENCES : 'RESTRICT_REFERENCES'; +RESTRICT : 'RESTRICT'; +RESULT_CACHE : 'RESULT_CACHE'; +RESULT : 'RESULT'; +RESUMABLE : 'RESUMABLE'; +RESUME : 'RESUME'; +RETENTION : 'RETENTION'; +RETRY_ON_ROW_CHANGE : 'RETRY_ON_ROW_CHANGE'; +RETURNING : 'RETURNING'; +RETURN : 'RETURN'; +REUSE : 'REUSE'; +REVERSE : 'REVERSE'; +REVOKE : 'REVOKE'; +REWRITE_OR_ERROR : 'REWRITE_OR_ERROR'; +REWRITE : 'REWRITE'; +RIGHT : 'RIGHT'; +ROLE : 'ROLE'; +ROLESET : 'ROLESET'; +ROLES : 'ROLES'; +ROLLBACK : 'ROLLBACK'; +ROLLING : 'ROLLING'; +ROLLUP : 'ROLLUP'; +ROWDEPENDENCIES : 'ROWDEPENDENCIES'; +ROWID_MAPPING_TABLE : 'ROWID_MAPPING_TABLE'; +ROWID : 'ROWID'; +ROWIDTOCHAR : 'ROWIDTOCHAR'; +ROWIDTONCHAR : 'ROWIDTONCHAR'; +ROW_LENGTH : 'ROW_LENGTH'; +ROWNUM : 'ROWNUM'; +ROW : 'ROW'; +ROWS : 'ROWS'; +RPAD : 'RPAD'; +RTRIM : 'RTRIM'; +RULE : 'RULE'; +RULES : 'RULES'; +RUNNING : 'RUNNING'; +SALT : 'SALT'; +SAMPLE : 'SAMPLE'; +SAVE_AS_INTERVALS : 'SAVE_AS_INTERVALS'; +SAVEPOINT : 'SAVEPOINT'; +SAVE : 'SAVE'; +SB4 : 'SB4'; +SCALE_ROWS : 'SCALE_ROWS'; +SCALE : 'SCALE'; +SCAN_INSTANCES : 'SCAN_INSTANCES'; +SCAN : 'SCAN'; +SCHEDULER : 'SCHEDULER'; +SCHEMACHECK : 'SCHEMACHECK'; +SCHEMA : 'SCHEMA'; +SCN_ASCENDING : 'SCN_ASCENDING'; +SCN : 'SCN'; +SCOPE : 'SCOPE'; +SCRUB : 'SCRUB'; +SD_ALL : 'SD_ALL'; +SD_INHIBIT : 'SD_INHIBIT'; +SDO_GEOM_MBR : 'SDO_GEOM_MBR'; +SDO_GEOMETRY : 'SDO_GEOMETRY'; +SD_SHOW : 'SD_SHOW'; +SEARCH : 'SEARCH'; +SECOND : 'SECOND'; +SECONDS : 'SECONDS'; +SECRET : 'SECRET'; +SECUREFILE_DBA : 'SECUREFILE_DBA'; +SECUREFILE : 'SECUREFILE'; +SECURITY : 'SECURITY'; +SEED : 'SEED'; +SEG_BLOCK : 'SEG_BLOCK'; +SEG_FILE : 'SEG_FILE'; +SEGMENT : 'SEGMENT'; +SELECTIVITY : 'SELECTIVITY'; +SELECT : 'SELECT'; +SELF : 'SELF'; +SEMIJOIN_DRIVER : 'SEMIJOIN_DRIVER'; +SEMIJOIN : 'SEMIJOIN'; +SEMI_TO_INNER : 'SEMI_TO_INNER'; +SEQUENCED : 'SEQUENCED'; +SEQUENCE : 'SEQUENCE'; +SEQUENCEFILE : 'SEQUENCEFILE'; +SEQUENTIAL : 'SEQUENTIAL'; +SEQ : 'SEQ'; +SERDE : 'SERDE'; +SERDEPROPERTIES : 'SERDEPROPERTIES'; +SERIALIZABLE : 'SERIALIZABLE'; +SERIALLY_REUSABLE : 'SERIALLY_REUSABLE'; +SERIAL : 'SERIAL'; +SERVERERROR : 'SERVERERROR'; +SERVICE_NAME_CONVERT : 'SERVICE_NAME_CONVERT'; +SERVICE : 'SERVICE'; +SERVICES : 'SERVICES'; +SESSION_CACHED_CURSORS : 'SESSION_CACHED_CURSORS'; +SESSION : 'SESSION'; +SESSIONS_PER_USER : 'SESSIONS_PER_USER'; +SESSIONTIMEZONE : 'SESSIONTIMEZONE'; +SESSIONTZNAME : 'SESSIONTZNAME'; +SET : 'SET'; +SETS : 'SETS'; +SETTINGS : 'SETTINGS'; +SET_TO_JOIN : 'SET_TO_JOIN'; +SEVERE : 'SEVERE'; +SHARD : 'SHARD'; +SHARDSPACE : 'SHARDSPACE'; +SHARED_POOL : 'SHARED_POOL'; +SHARED : 'SHARED'; +SHARE : 'SHARE'; +SHARING : 'SHARING'; +SHELFLIFE : 'SHELFLIFE'; +SHOW : 'SHOW'; +SHRINK : 'SHRINK'; +SHUTDOWN : 'SHUTDOWN'; +SIBLINGS : 'SIBLINGS'; +SID : 'SID'; +SITE : 'SITE'; +SIGNAL_COMPONENT : 'SIGNAL_COMPONENT'; +SIGNAL_FUNCTION : 'SIGNAL_FUNCTION'; +SIGN : 'SIGN'; +SIGNTYPE : 'SIGNTYPE'; +SIMPLE_INTEGER : 'SIMPLE_INTEGER'; +SIMPLE : 'SIMPLE'; +SINGLE : 'SINGLE'; +SINGLETASK : 'SINGLETASK'; +SINH : 'SINH'; +SIN : 'SIN'; +SIZE : 'SIZE'; +SIZES : 'SIZES'; +SKIP_EXT_OPTIMIZER : 'SKIP_EXT_OPTIMIZER'; +SKIP_ : 'SKIP'; +SKIP_UNQ_UNUSABLE_IDX : 'SKIP_UNQ_UNUSABLE_IDX'; +SKIP_UNUSABLE_INDEXES : 'SKIP_UNUSABLE_INDEXES'; +SMALLFILE : 'SMALLFILE'; +SMALLINT : 'SMALLINT'; +SNAPSHOT : 'SNAPSHOT'; +SOME : 'SOME'; +SORT : 'SORT'; +SOUNDEX : 'SOUNDEX'; +SOURCE_FILE_DIRECTORY : 'SOURCE_FILE_DIRECTORY'; +SOURCE_FILE_NAME_CONVERT : 'SOURCE_FILE_NAME_CONVERT'; +SOURCE : 'SOURCE'; +SPACE_KEYWORD : 'SPACE'; +SPECIFICATION : 'SPECIFICATION'; +SPFILE : 'SPFILE'; +SPLIT : 'SPLIT'; +SPREADSHEET : 'SPREADSHEET'; +SQLDATA : 'SQLDATA'; +SQLERROR : 'SQLERROR'; +SQLLDR : 'SQLLDR'; +SQL : 'SQL'; +FILE_EXT : 'PKB' | 'PKS'; +SQL_MACRO : 'SQL_MACRO'; +SQL_TRACE : 'SQL_TRACE'; +SQL_TRANSLATION_PROFILE : 'SQL_TRANSLATION_PROFILE'; +SQRT : 'SQRT'; +STALE : 'STALE'; +STANDALONE : 'STANDALONE'; +STANDARD : 'STANDARD'; +STANDARD_HASH : 'STANDARD_HASH'; +STANDBY_MAX_DATA_DELAY : 'STANDBY_MAX_DATA_DELAY'; +STANDBYS : 'STANDBYS'; +STANDBY : 'STANDBY'; +STAR : 'STAR'; +STAR_TRANSFORMATION : 'STAR_TRANSFORMATION'; +START : 'START'; +STARTOF : 'STARTOF'; +STARTUP : 'STARTUP'; +STATEMENT_ID : 'STATEMENT_ID'; +STATEMENT_QUEUING : 'STATEMENT_QUEUING'; +STATEMENTS : 'STATEMENTS'; +STATEMENT : 'STATEMENT'; +STATE : 'STATE'; +STATIC : 'STATIC'; +STATISTICS : 'STATISTICS'; +STATS_BINOMIAL_TEST : 'STATS_BINOMIAL_TEST'; +STATS_CROSSTAB : 'STATS_CROSSTAB'; +STATS_F_TEST : 'STATS_F_TEST'; +STATS_KS_TEST : 'STATS_KS_TEST'; +STATS_MODE : 'STATS_MODE'; +STATS_MW_TEST : 'STATS_MW_TEST'; +STATS_ONE_WAY_ANOVA : 'STATS_ONE_WAY_ANOVA'; +STATS_T_TEST_INDEP : 'STATS_T_TEST_INDEP'; +STATS_T_TEST_INDEPU : 'STATS_T_TEST_INDEPU'; +STATS_T_TEST_ONE : 'STATS_T_TEST_ONE'; +STATS_T_TEST_PAIRED : 'STATS_T_TEST_PAIRED'; +STATS_WSR_TEST : 'STATS_WSR_TEST'; +STDDEV_POP : 'STDDEV_POP'; +STDDEV_SAMP : 'STDDEV_SAMP'; +STOP : 'STOP'; +STORAGE : 'STORAGE'; +STORE : 'STORE'; +STREAMS : 'STREAMS'; +STREAM : 'STREAM'; +STRICT : 'STRICT'; +STRING : 'STRING'; +STRIPE_COLUMNS : 'STRIPE_COLUMNS'; +STRIPE_WIDTH : 'STRIPE_WIDTH'; +STRIP : 'STRIP'; +STRUCTURE : 'STRUCTURE'; +SUBMULTISET : 'SUBMULTISET'; +SUBPARTITION_REL : 'SUBPARTITION_REL'; +SUBPARTITIONS : 'SUBPARTITIONS'; +SUBPARTITION : 'SUBPARTITION'; +SUBQUERIES : 'SUBQUERIES'; +SUBQUERY_PRUNING : 'SUBQUERY_PRUNING'; +SUBSCRIBE : 'SUBSCRIBE'; +SUBSET : 'SUBSET'; +SUBSTITUTABLE : 'SUBSTITUTABLE'; +SUBSTR2 : 'SUBSTR2'; +SUBSTR4 : 'SUBSTR4'; +SUBSTRB : 'SUBSTRB'; +SUBSTRC : 'SUBSTRC'; +SUBTYPE : 'SUBTYPE'; +SUCCESSFUL : 'SUCCESSFUL'; +SUCCESS : 'SUCCESS'; +SUMMARY : 'SUMMARY'; +SUPPLEMENTAL : 'SUPPLEMENTAL'; +SUSPEND : 'SUSPEND'; +SWAP_JOIN_INPUTS : 'SWAP_JOIN_INPUTS'; +SWITCHOVER : 'SWITCHOVER'; +SWITCH : 'SWITCH'; +SYNCHRONOUS : 'SYNCHRONOUS'; +SYNC : 'SYNC'; +SYNONYM : 'SYNONYM'; +SYS : 'SYS'; +SYSASM : 'SYSASM'; +SYS_AUDIT : 'SYS_AUDIT'; +SYSAUX : 'SYSAUX'; +SYSBACKUP : 'SYSBACKUP'; +SYS_CHECKACL : 'SYS_CHECKACL'; +SYS_CHECK_PRIVILEGE : 'SYS_CHECK_PRIVILEGE'; +SYS_CONNECT_BY_PATH : 'SYS_CONNECT_BY_PATH'; +SYS_CONTEXT : 'SYS_CONTEXT'; +SYSDATE : 'SYSDATE'; +SYSDBA : 'SYSDBA'; +SYS_DBURIGEN : 'SYS_DBURIGEN'; +SYSDG : 'SYSDG'; +SYS_DL_CURSOR : 'SYS_DL_CURSOR'; +SYS_DM_RXFORM_CHR : 'SYS_DM_RXFORM_CHR'; +SYS_DM_RXFORM_NUM : 'SYS_DM_RXFORM_NUM'; +SYS_DOM_COMPARE : 'SYS_DOM_COMPARE'; +SYS_DST_PRIM2SEC : 'SYS_DST_PRIM2SEC'; +SYS_DST_SEC2PRIM : 'SYS_DST_SEC2PRIM'; +SYS_ET_BFILE_TO_RAW : 'SYS_ET_BFILE_TO_RAW'; +SYS_ET_BLOB_TO_IMAGE : 'SYS_ET_BLOB_TO_IMAGE'; +SYS_ET_IMAGE_TO_BLOB : 'SYS_ET_IMAGE_TO_BLOB'; +SYS_ET_RAW_TO_BFILE : 'SYS_ET_RAW_TO_BFILE'; +SYS_EXTPDTXT : 'SYS_EXTPDTXT'; +SYS_EXTRACT_UTC : 'SYS_EXTRACT_UTC'; +SYS_FBT_INSDEL : 'SYS_FBT_INSDEL'; +SYS_FILTER_ACLS : 'SYS_FILTER_ACLS'; +SYS_FNMATCHES : 'SYS_FNMATCHES'; +SYS_FNREPLACE : 'SYS_FNREPLACE'; +SYS_GET_ACLIDS : 'SYS_GET_ACLIDS'; +SYS_GET_COL_ACLIDS : 'SYS_GET_COL_ACLIDS'; +SYS_GET_PRIVILEGES : 'SYS_GET_PRIVILEGES'; +SYS_GETTOKENID : 'SYS_GETTOKENID'; +SYS_GETXTIVAL : 'SYS_GETXTIVAL'; +SYS_GUID : 'SYS_GUID'; +SYSGUID : 'SYSGUID'; +SYSKM : 'SYSKM'; +SYS_MAKE_XMLNODEID : 'SYS_MAKE_XMLNODEID'; +SYS_MAKEXML : 'SYS_MAKEXML'; +SYS_MKXMLATTR : 'SYS_MKXMLATTR'; +SYS_MKXTI : 'SYS_MKXTI'; +SYSOBJ : 'SYSOBJ'; +SYS_OP_ADT2BIN : 'SYS_OP_ADT2BIN'; +SYS_OP_ADTCONS : 'SYS_OP_ADTCONS'; +SYS_OP_ALSCRVAL : 'SYS_OP_ALSCRVAL'; +SYS_OP_ATG : 'SYS_OP_ATG'; +SYS_OP_BIN2ADT : 'SYS_OP_BIN2ADT'; +SYS_OP_BITVEC : 'SYS_OP_BITVEC'; +SYS_OP_BL2R : 'SYS_OP_BL2R'; +SYS_OP_BLOOM_FILTER_LIST : 'SYS_OP_BLOOM_FILTER_LIST'; +SYS_OP_BLOOM_FILTER : 'SYS_OP_BLOOM_FILTER'; +SYS_OP_C2C : 'SYS_OP_C2C'; +SYS_OP_CAST : 'SYS_OP_CAST'; +SYS_OP_CEG : 'SYS_OP_CEG'; +SYS_OP_CL2C : 'SYS_OP_CL2C'; +SYS_OP_COMBINED_HASH : 'SYS_OP_COMBINED_HASH'; +SYS_OP_COMP : 'SYS_OP_COMP'; +SYS_OP_CONVERT : 'SYS_OP_CONVERT'; +SYS_OP_COUNTCHG : 'SYS_OP_COUNTCHG'; +SYS_OP_CSCONV : 'SYS_OP_CSCONV'; +SYS_OP_CSCONVTEST : 'SYS_OP_CSCONVTEST'; +SYS_OP_CSR : 'SYS_OP_CSR'; +SYS_OP_CSX_PATCH : 'SYS_OP_CSX_PATCH'; +SYS_OP_CYCLED_SEQ : 'SYS_OP_CYCLED_SEQ'; +SYS_OP_DECOMP : 'SYS_OP_DECOMP'; +SYS_OP_DESCEND : 'SYS_OP_DESCEND'; +SYS_OP_DISTINCT : 'SYS_OP_DISTINCT'; +SYS_OP_DRA : 'SYS_OP_DRA'; +SYS_OP_DUMP : 'SYS_OP_DUMP'; +SYS_OP_DV_CHECK : 'SYS_OP_DV_CHECK'; +SYS_OP_ENFORCE_NOT_NULL : 'SYS_OP_ENFORCE_NOT_NULL$'; +SYSOPER : 'SYSOPER'; +SYS_OP_EXTRACT : 'SYS_OP_EXTRACT'; +SYS_OP_GROUPING : 'SYS_OP_GROUPING'; +SYS_OP_GUID : 'SYS_OP_GUID'; +SYS_OP_HASH : 'SYS_OP_HASH'; +SYS_OP_IIX : 'SYS_OP_IIX'; +SYS_OP_ITR : 'SYS_OP_ITR'; +SYS_OP_KEY_VECTOR_CREATE : 'SYS_OP_KEY_VECTOR_CREATE'; +SYS_OP_KEY_VECTOR_FILTER_LIST : 'SYS_OP_KEY_VECTOR_FILTER_LIST'; +SYS_OP_KEY_VECTOR_FILTER : 'SYS_OP_KEY_VECTOR_FILTER'; +SYS_OP_KEY_VECTOR_SUCCEEDED : 'SYS_OP_KEY_VECTOR_SUCCEEDED'; +SYS_OP_KEY_VECTOR_USE : 'SYS_OP_KEY_VECTOR_USE'; +SYS_OP_LBID : 'SYS_OP_LBID'; +SYS_OP_LOBLOC2BLOB : 'SYS_OP_LOBLOC2BLOB'; +SYS_OP_LOBLOC2CLOB : 'SYS_OP_LOBLOC2CLOB'; +SYS_OP_LOBLOC2ID : 'SYS_OP_LOBLOC2ID'; +SYS_OP_LOBLOC2NCLOB : 'SYS_OP_LOBLOC2NCLOB'; +SYS_OP_LOBLOC2TYP : 'SYS_OP_LOBLOC2TYP'; +SYS_OP_LSVI : 'SYS_OP_LSVI'; +SYS_OP_LVL : 'SYS_OP_LVL'; +SYS_OP_MAKEOID : 'SYS_OP_MAKEOID'; +SYS_OP_MAP_NONNULL : 'SYS_OP_MAP_NONNULL'; +SYS_OP_MSR : 'SYS_OP_MSR'; +SYS_OP_NICOMBINE : 'SYS_OP_NICOMBINE'; +SYS_OP_NIEXTRACT : 'SYS_OP_NIEXTRACT'; +SYS_OP_NII : 'SYS_OP_NII'; +SYS_OP_NIX : 'SYS_OP_NIX'; +SYS_OP_NOEXPAND : 'SYS_OP_NOEXPAND'; +SYS_OP_NTCIMG : 'SYS_OP_NTCIMG$'; +SYS_OP_NUMTORAW : 'SYS_OP_NUMTORAW'; +SYS_OP_OIDVALUE : 'SYS_OP_OIDVALUE'; +SYS_OP_OPNSIZE : 'SYS_OP_OPNSIZE'; +SYS_OP_PAR_1 : 'SYS_OP_PAR_1'; +SYS_OP_PARGID_1 : 'SYS_OP_PARGID_1'; +SYS_OP_PARGID : 'SYS_OP_PARGID'; +SYS_OP_PAR : 'SYS_OP_PAR'; +SYS_OP_PART_ID : 'SYS_OP_PART_ID'; +SYS_OP_PIVOT : 'SYS_OP_PIVOT'; +SYS_OP_R2O : 'SYS_OP_R2O'; +SYS_OP_RAWTONUM : 'SYS_OP_RAWTONUM'; +SYS_OP_RDTM : 'SYS_OP_RDTM'; +SYS_OP_REF : 'SYS_OP_REF'; +SYS_OP_RMTD : 'SYS_OP_RMTD'; +SYS_OP_ROWIDTOOBJ : 'SYS_OP_ROWIDTOOBJ'; +SYS_OP_RPB : 'SYS_OP_RPB'; +SYS_OPTLOBPRBSC : 'SYS_OPTLOBPRBSC'; +SYS_OP_TOSETID : 'SYS_OP_TOSETID'; +SYS_OP_TPR : 'SYS_OP_TPR'; +SYS_OP_TRTB : 'SYS_OP_TRTB'; +SYS_OPTXICMP : 'SYS_OPTXICMP'; +SYS_OPTXQCASTASNQ : 'SYS_OPTXQCASTASNQ'; +SYS_OP_UNDESCEND : 'SYS_OP_UNDESCEND'; +SYS_OP_VECAND : 'SYS_OP_VECAND'; +SYS_OP_VECBIT : 'SYS_OP_VECBIT'; +SYS_OP_VECOR : 'SYS_OP_VECOR'; +SYS_OP_VECXOR : 'SYS_OP_VECXOR'; +SYS_OP_VERSION : 'SYS_OP_VERSION'; +SYS_OP_VREF : 'SYS_OP_VREF'; +SYS_OP_VVD : 'SYS_OP_VVD'; +SYS_OP_XMLCONS_FOR_CSX : 'SYS_OP_XMLCONS_FOR_CSX'; +SYS_OP_XPTHATG : 'SYS_OP_XPTHATG'; +SYS_OP_XPTHIDX : 'SYS_OP_XPTHIDX'; +SYS_OP_XPTHOP : 'SYS_OP_XPTHOP'; +SYS_OP_XTXT2SQLT : 'SYS_OP_XTXT2SQLT'; +SYS_OP_ZONE_ID : 'SYS_OP_ZONE_ID'; +SYS_ORDERKEY_DEPTH : 'SYS_ORDERKEY_DEPTH'; +SYS_ORDERKEY_MAXCHILD : 'SYS_ORDERKEY_MAXCHILD'; +SYS_ORDERKEY_PARENT : 'SYS_ORDERKEY_PARENT'; +SYS_PARALLEL_TXN : 'SYS_PARALLEL_TXN'; +SYS_PATHID_IS_ATTR : 'SYS_PATHID_IS_ATTR'; +SYS_PATHID_IS_NMSPC : 'SYS_PATHID_IS_NMSPC'; +SYS_PATHID_LASTNAME : 'SYS_PATHID_LASTNAME'; +SYS_PATHID_LASTNMSPC : 'SYS_PATHID_LASTNMSPC'; +SYS_PATH_REVERSE : 'SYS_PATH_REVERSE'; +SYS_PXQEXTRACT : 'SYS_PXQEXTRACT'; +SYS_RAW_TO_XSID : 'SYS_RAW_TO_XSID'; +SYS_RID_ORDER : 'SYS_RID_ORDER'; +SYS_ROW_DELTA : 'SYS_ROW_DELTA'; +SYS_SC_2_XMLT : 'SYS_SC_2_XMLT'; +SYS_SYNRCIREDO : 'SYS_SYNRCIREDO'; +SYSTEM_DEFINED : 'SYSTEM_DEFINED'; +SYSTEM : 'SYSTEM'; +SYSTIMESTAMP : 'SYSTIMESTAMP'; +SYS_TYPEID : 'SYS_TYPEID'; +SYS_UMAKEXML : 'SYS_UMAKEXML'; +SYS_XMLANALYZE : 'SYS_XMLANALYZE'; +SYS_XMLCONTAINS : 'SYS_XMLCONTAINS'; +SYS_XMLCONV : 'SYS_XMLCONV'; +SYS_XMLEXNSURI : 'SYS_XMLEXNSURI'; +SYS_XMLGEN : 'SYS_XMLGEN'; +SYS_XMLI_LOC_ISNODE : 'SYS_XMLI_LOC_ISNODE'; +SYS_XMLI_LOC_ISTEXT : 'SYS_XMLI_LOC_ISTEXT'; +SYS_XMLINSTR : 'SYS_XMLINSTR'; +SYS_XMLLOCATOR_GETSVAL : 'SYS_XMLLOCATOR_GETSVAL'; +SYS_XMLNODEID_GETCID : 'SYS_XMLNODEID_GETCID'; +SYS_XMLNODEID_GETLOCATOR : 'SYS_XMLNODEID_GETLOCATOR'; +SYS_XMLNODEID_GETOKEY : 'SYS_XMLNODEID_GETOKEY'; +SYS_XMLNODEID_GETPATHID : 'SYS_XMLNODEID_GETPATHID'; +SYS_XMLNODEID_GETPTRID : 'SYS_XMLNODEID_GETPTRID'; +SYS_XMLNODEID_GETRID : 'SYS_XMLNODEID_GETRID'; +SYS_XMLNODEID_GETSVAL : 'SYS_XMLNODEID_GETSVAL'; +SYS_XMLNODEID_GETTID : 'SYS_XMLNODEID_GETTID'; +SYS_XMLNODEID : 'SYS_XMLNODEID'; +SYS_XMLT_2_SC : 'SYS_XMLT_2_SC'; +SYS_XMLTRANSLATE : 'SYS_XMLTRANSLATE'; +SYS_XMLTYPE2SQL : 'SYS_XMLTYPE2SQL'; +SYS_XQ_ASQLCNV : 'SYS_XQ_ASQLCNV'; +SYS_XQ_ATOMCNVCHK : 'SYS_XQ_ATOMCNVCHK'; +SYS_XQBASEURI : 'SYS_XQBASEURI'; +SYS_XQCASTABLEERRH : 'SYS_XQCASTABLEERRH'; +SYS_XQCODEP2STR : 'SYS_XQCODEP2STR'; +SYS_XQCODEPEQ : 'SYS_XQCODEPEQ'; +SYS_XQCON2SEQ : 'SYS_XQCON2SEQ'; +SYS_XQCONCAT : 'SYS_XQCONCAT'; +SYS_XQDELETE : 'SYS_XQDELETE'; +SYS_XQDFLTCOLATION : 'SYS_XQDFLTCOLATION'; +SYS_XQDOC : 'SYS_XQDOC'; +SYS_XQDOCURI : 'SYS_XQDOCURI'; +SYS_XQDURDIV : 'SYS_XQDURDIV'; +SYS_XQED4URI : 'SYS_XQED4URI'; +SYS_XQENDSWITH : 'SYS_XQENDSWITH'; +SYS_XQERRH : 'SYS_XQERRH'; +SYS_XQERR : 'SYS_XQERR'; +SYS_XQESHTMLURI : 'SYS_XQESHTMLURI'; +SYS_XQEXLOBVAL : 'SYS_XQEXLOBVAL'; +SYS_XQEXSTWRP : 'SYS_XQEXSTWRP'; +SYS_XQEXTRACT : 'SYS_XQEXTRACT'; +SYS_XQEXTRREF : 'SYS_XQEXTRREF'; +SYS_XQEXVAL : 'SYS_XQEXVAL'; +SYS_XQFB2STR : 'SYS_XQFB2STR'; +SYS_XQFNBOOL : 'SYS_XQFNBOOL'; +SYS_XQFNCMP : 'SYS_XQFNCMP'; +SYS_XQFNDATIM : 'SYS_XQFNDATIM'; +SYS_XQFNLNAME : 'SYS_XQFNLNAME'; +SYS_XQFNNM : 'SYS_XQFNNM'; +SYS_XQFNNSURI : 'SYS_XQFNNSURI'; +SYS_XQFNPREDTRUTH : 'SYS_XQFNPREDTRUTH'; +SYS_XQFNQNM : 'SYS_XQFNQNM'; +SYS_XQFNROOT : 'SYS_XQFNROOT'; +SYS_XQFORMATNUM : 'SYS_XQFORMATNUM'; +SYS_XQFTCONTAIN : 'SYS_XQFTCONTAIN'; +SYS_XQFUNCR : 'SYS_XQFUNCR'; +SYS_XQGETCONTENT : 'SYS_XQGETCONTENT'; +SYS_XQINDXOF : 'SYS_XQINDXOF'; +SYS_XQINSERT : 'SYS_XQINSERT'; +SYS_XQINSPFX : 'SYS_XQINSPFX'; +SYS_XQIRI2URI : 'SYS_XQIRI2URI'; +SYS_XQLANG : 'SYS_XQLANG'; +SYS_XQLLNMFRMQNM : 'SYS_XQLLNMFRMQNM'; +SYS_XQMKNODEREF : 'SYS_XQMKNODEREF'; +SYS_XQNILLED : 'SYS_XQNILLED'; +SYS_XQNODENAME : 'SYS_XQNODENAME'; +SYS_XQNORMSPACE : 'SYS_XQNORMSPACE'; +SYS_XQNORMUCODE : 'SYS_XQNORMUCODE'; +SYS_XQ_NRNG : 'SYS_XQ_NRNG'; +SYS_XQNSP4PFX : 'SYS_XQNSP4PFX'; +SYS_XQNSPFRMQNM : 'SYS_XQNSPFRMQNM'; +SYS_XQPFXFRMQNM : 'SYS_XQPFXFRMQNM'; +SYS_XQ_PKSQL2XML : 'SYS_XQ_PKSQL2XML'; +SYS_XQPOLYABS : 'SYS_XQPOLYABS'; +SYS_XQPOLYADD : 'SYS_XQPOLYADD'; +SYS_XQPOLYCEL : 'SYS_XQPOLYCEL'; +SYS_XQPOLYCSTBL : 'SYS_XQPOLYCSTBL'; +SYS_XQPOLYCST : 'SYS_XQPOLYCST'; +SYS_XQPOLYDIV : 'SYS_XQPOLYDIV'; +SYS_XQPOLYFLR : 'SYS_XQPOLYFLR'; +SYS_XQPOLYMOD : 'SYS_XQPOLYMOD'; +SYS_XQPOLYMUL : 'SYS_XQPOLYMUL'; +SYS_XQPOLYRND : 'SYS_XQPOLYRND'; +SYS_XQPOLYSQRT : 'SYS_XQPOLYSQRT'; +SYS_XQPOLYSUB : 'SYS_XQPOLYSUB'; +SYS_XQPOLYUMUS : 'SYS_XQPOLYUMUS'; +SYS_XQPOLYUPLS : 'SYS_XQPOLYUPLS'; +SYS_XQPOLYVEQ : 'SYS_XQPOLYVEQ'; +SYS_XQPOLYVGE : 'SYS_XQPOLYVGE'; +SYS_XQPOLYVGT : 'SYS_XQPOLYVGT'; +SYS_XQPOLYVLE : 'SYS_XQPOLYVLE'; +SYS_XQPOLYVLT : 'SYS_XQPOLYVLT'; +SYS_XQPOLYVNE : 'SYS_XQPOLYVNE'; +SYS_XQREF2VAL : 'SYS_XQREF2VAL'; +SYS_XQRENAME : 'SYS_XQRENAME'; +SYS_XQREPLACE : 'SYS_XQREPLACE'; +SYS_XQRESVURI : 'SYS_XQRESVURI'; +SYS_XQRNDHALF2EVN : 'SYS_XQRNDHALF2EVN'; +SYS_XQRSLVQNM : 'SYS_XQRSLVQNM'; +SYS_XQRYENVPGET : 'SYS_XQRYENVPGET'; +SYS_XQRYVARGET : 'SYS_XQRYVARGET'; +SYS_XQRYWRP : 'SYS_XQRYWRP'; +SYS_XQSEQ2CON4XC : 'SYS_XQSEQ2CON4XC'; +SYS_XQSEQ2CON : 'SYS_XQSEQ2CON'; +SYS_XQSEQDEEPEQ : 'SYS_XQSEQDEEPEQ'; +SYS_XQSEQINSB : 'SYS_XQSEQINSB'; +SYS_XQSEQRM : 'SYS_XQSEQRM'; +SYS_XQSEQRVS : 'SYS_XQSEQRVS'; +SYS_XQSEQSUB : 'SYS_XQSEQSUB'; +SYS_XQSEQTYPMATCH : 'SYS_XQSEQTYPMATCH'; +SYS_XQSTARTSWITH : 'SYS_XQSTARTSWITH'; +SYS_XQSTATBURI : 'SYS_XQSTATBURI'; +SYS_XQSTR2CODEP : 'SYS_XQSTR2CODEP'; +SYS_XQSTRJOIN : 'SYS_XQSTRJOIN'; +SYS_XQSUBSTRAFT : 'SYS_XQSUBSTRAFT'; +SYS_XQSUBSTRBEF : 'SYS_XQSUBSTRBEF'; +SYS_XQTOKENIZE : 'SYS_XQTOKENIZE'; +SYS_XQTREATAS : 'SYS_XQTREATAS'; +SYS_XQ_UPKXML2SQL : 'SYS_XQ_UPKXML2SQL'; +SYS_XQXFORM : 'SYS_XQXFORM'; +SYS_XSID_TO_RAW : 'SYS_XSID_TO_RAW'; +SYS_ZMAP_FILTER : 'SYS_ZMAP_FILTER'; +SYS_ZMAP_REFRESH : 'SYS_ZMAP_REFRESH'; +T_LETTER : 'T'; +TABLE_LOOKUP_BY_NL : 'TABLE_LOOKUP_BY_NL'; +TABLESPACE_NO : 'TABLESPACE_NO'; +TABLESPACE : 'TABLESPACE'; +TABLES : 'TABLES'; +TABLE_STATS : 'TABLE_STATS'; +TABLE : 'TABLE'; +TABNO : 'TABNO'; +TAG : 'TAG'; +TANH : 'TANH'; +TAN : 'TAN'; +TBLORIDXPARTNUM : 'TBL$OR$IDX$PART$NUM'; +TEMPFILE : 'TEMPFILE'; +TEMPLATE : 'TEMPLATE'; +TEMPLATE_TABLE : 'TEMPLATE_TABLE'; +TEMPORARY : 'TEMPORARY'; +TEMP_TABLE : 'TEMP_TABLE'; +TERMINATED : 'TERMINATED'; +TEST : 'TEST'; +TEXT : 'TEXT'; +TEXTFILE : 'TEXTFILE'; +THAN : 'THAN'; +THEN : 'THEN'; +THE : 'THE'; +THESE : 'THESE'; +THREAD : 'THREAD'; +THROUGH : 'THROUGH'; +TIER : 'TIER'; +TIES : 'TIES'; +TIMEOUT : 'TIMEOUT'; +TIMESTAMP_LTZ_UNCONSTRAINED : 'TIMESTAMP_LTZ_UNCONSTRAINED'; +TIMESTAMP : 'TIMESTAMP'; +TIMESTAMP_TZ_UNCONSTRAINED : 'TIMESTAMP_TZ_UNCONSTRAINED'; +TIMESTAMP_UNCONSTRAINED : 'TIMESTAMP_UNCONSTRAINED'; +TIMES : 'TIMES'; +TIME : 'TIME'; +TIMEZONE : 'TIMEZONE'; +TIMEZONE_ABBR : 'TIMEZONE_ABBR'; +TIMEZONE_HOUR : 'TIMEZONE_HOUR'; +TIMEZONE_MINUTE : 'TIMEZONE_MINUTE'; +TIMEZONE_OFFSET : 'TIMEZONE_OFFSET'; +TIMEZONE_REGION : 'TIMEZONE_REGION'; +TIME_ZONE : 'TIME_ZONE'; +TIMING : 'TIMING'; +TINYINT : 'TINYINT'; +TIV_GB : 'TIV_GB'; +TIV_SSF : 'TIV_SSF'; +TO_ACLID : 'TO_ACLID'; +TO_BINARY_DOUBLE : 'TO_BINARY_DOUBLE'; +TO_BINARY_FLOAT : 'TO_BINARY_FLOAT'; +TO_BLOB : 'TO_BLOB'; +TO_CLOB : 'TO_CLOB'; +TO_DSINTERVAL : 'TO_DSINTERVAL'; +TO_LOB : 'TO_LOB'; +TO_MULTI_BYTE : 'TO_MULTI_BYTE'; +TO_NCHAR : 'TO_NCHAR'; +TO_NCLOB : 'TO_NCLOB'; +TO_NUMBER : 'TO_NUMBER'; +TOPLEVEL : 'TOPLEVEL'; +TO_SINGLE_BYTE : 'TO_SINGLE_BYTE'; +TO_TIMESTAMP : 'TO_TIMESTAMP'; +TO_TIMESTAMP_TZ : 'TO_TIMESTAMP_TZ'; +TO_TIME : 'TO_TIME'; +TO_TIME_TZ : 'TO_TIME_TZ'; +TO : 'TO'; +TO_YMINTERVAL : 'TO_YMINTERVAL'; +TRACE : 'TRACE'; +TRACING : 'TRACING'; +TRACKING : 'TRACKING'; +TRAILING : 'TRAILING'; +TRANSACTION : 'TRANSACTION'; +TRANSFORM : 'TRANSFORM'; +TRANSFORMS : 'TRANSFORMS'; +TRANSFORM_DISTINCT_AGG : 'TRANSFORM_DISTINCT_AGG'; +TRANSITIONAL : 'TRANSITIONAL'; +TRANSITION : 'TRANSITION'; +TRANSLATE : 'TRANSLATE'; +TRANSLATION : 'TRANSLATION'; +TREAT : 'TREAT'; +TRIGGERS : 'TRIGGERS'; +TRIGGER : 'TRIGGER'; +TRUE : 'TRUE'; +TRUNCATE : 'TRUNCATE'; +TRUNC : 'TRUNC'; +TRUSTED : 'TRUSTED'; +TRUST : 'TRUST'; +TUNING : 'TUNING'; +TX : 'TX'; +TYPES : 'TYPES'; +TYPE : 'TYPE'; +TZ_OFFSET : 'TZ_OFFSET'; +UB2 : 'UB2'; +UBA : 'UBA'; +UCS2 : 'UCS2'; +UDF : 'UDF'; +UID : 'UID'; +UNARCHIVED : 'UNARCHIVED'; +UNBOUNDED : 'UNBOUNDED'; +UNBOUND : 'UNBOUND'; +UNCONDITIONAL : 'UNCONDITIONAL'; +UNDER : 'UNDER'; +UNDO : 'UNDO'; +UNDROP : 'UNDROP'; +UNIFORM : 'UNIFORM'; +UNION : 'UNION'; +UNIONTYPE : 'UNIONTYPE'; +UNIQUE : 'UNIQUE'; +UNISTR : 'UNISTR'; +UNLIMITED : 'UNLIMITED'; +UNLOAD : 'UNLOAD'; +UNLOCK : 'UNLOCK'; +UNMATCHED : 'UNMATCHED'; +UNNEST_INNERJ_DISTINCT_VIEW : 'UNNEST_INNERJ_DISTINCT_VIEW'; +UNNEST_NOSEMIJ_NODISTINCTVIEW : 'UNNEST_NOSEMIJ_NODISTINCTVIEW'; +UNNEST_SEMIJ_VIEW : 'UNNEST_SEMIJ_VIEW'; +UNNEST : 'UNNEST'; +UNPACKED : 'UNPACKED'; +UNPIVOT : 'UNPIVOT'; +UNPLUG : 'UNPLUG'; +UNPROTECTED : 'UNPROTECTED'; +UNQUIESCE : 'UNQUIESCE'; +UNRECOVERABLE : 'UNRECOVERABLE'; +UNRESTRICTED : 'UNRESTRICTED'; +UNSIGNED : 'UNSIGNED'; +UNSUBSCRIBE : 'UNSUBSCRIBE'; +UNTIL : 'UNTIL'; +UNUSABLE : 'UNUSABLE'; +UNUSED : 'UNUSED'; +UPDATABLE : 'UPDATABLE'; +UPDATED : 'UPDATED'; +UPDATE : 'UPDATE'; +UPDATEXML : 'UPDATEXML'; +UPD_INDEXES : 'UPD_INDEXES'; +UPD_JOININDEX : 'UPD_JOININDEX'; +UPGRADE : 'UPGRADE'; +UPPER : 'UPPER'; +UPSERT : 'UPSERT'; +UROWID : 'UROWID'; +USABLE : 'USABLE'; +USAGE : 'USAGE'; +USE_ANTI : 'USE_ANTI'; +USE_CONCAT : 'USE_CONCAT'; +USE_CUBE : 'USE_CUBE'; +USE_HASH_AGGREGATION : 'USE_HASH_AGGREGATION'; +USE_HASH_GBY_FOR_PUSHDOWN : 'USE_HASH_GBY_FOR_PUSHDOWN'; +USE_HASH : 'USE_HASH'; +USE_HIDDEN_PARTITIONS : 'USE_HIDDEN_PARTITIONS'; +USE_INVISIBLE_INDEXES : 'USE_INVISIBLE_INDEXES'; +USE_MERGE_CARTESIAN : 'USE_MERGE_CARTESIAN'; +USE_MERGE : 'USE_MERGE'; +USE_NL : 'USE_NL'; +USE_NL_WITH_INDEX : 'USE_NL_WITH_INDEX'; +USE_PRIVATE_OUTLINES : 'USE_PRIVATE_OUTLINES'; +USER_DATA : 'USER_DATA'; +USER_DEFINED : 'USER_DEFINED'; +USERENV : 'USERENV'; +USERGROUP : 'USERGROUP'; +USER_RECYCLEBIN : 'USER_RECYCLEBIN'; +USERS : 'USERS'; +USER_TABLESPACES : 'USER_TABLESPACES'; +USER : 'USER'; +USE_SEMI : 'USE_SEMI'; +USE_STORED_OUTLINES : 'USE_STORED_OUTLINES'; +USE_TTT_FOR_GSETS : 'USE_TTT_FOR_GSETS'; +USE : 'USE'; +USE_VECTOR_AGGREGATION : 'USE_VECTOR_AGGREGATION'; +USE_WEAK_NAME_RESL : 'USE_WEAK_NAME_RESL'; +USING_NO_EXPAND : 'USING_NO_EXPAND'; +USING_NLS_COMP : 'USING_NLS_COMP'; +USING : 'USING'; +UTF16BE : 'UTF16BE'; +UTF16LE : 'UTF16LE'; +UTF32 : 'UTF32'; +UTF8 : 'UTF8'; +V1 : 'V1'; +V2 : 'V2'; +VALIDATE : 'VALIDATE'; +VALIDATE_CONVERSION : 'VALIDATE_CONVERSION'; +VALIDATION : 'VALIDATION'; +VALID_TIME_END : 'VALID_TIME_END'; +VALUES : 'VALUES'; +VALUE : 'VALUE'; +VARCHAR2 : 'VARCHAR2'; +VARCHAR : 'VARCHAR'; +VARCHARC : 'VARCHARC'; +VARIABLE : 'VARIABLE'; +VARRAW : 'VARRAW'; +VARRAWC : 'VARRAWC'; +VAR_POP : 'VAR_POP'; +VARRAYS : 'VARRAYS'; +VARRAY : 'VARRAY'; +VAR_SAMP : 'VAR_SAMP'; +VARYING : 'VARYING'; +VECTOR_READ_TRACE : 'VECTOR_READ_TRACE'; +VECTOR_READ : 'VECTOR_READ'; +VECTOR_TRANSFORM_DIMS : 'VECTOR_TRANSFORM_DIMS'; +VECTOR_TRANSFORM_FACT : 'VECTOR_TRANSFORM_FACT'; +VECTOR_TRANSFORM : 'VECTOR_TRANSFORM'; +VERIFIER : 'VERIFIER'; +VERIFY : 'VERIFY'; +VERSIONING : 'VERSIONING'; +VERSIONS_ENDSCN : 'VERSIONS_ENDSCN'; +VERSIONS_ENDTIME : 'VERSIONS_ENDTIME'; +VERSIONS_OPERATION : 'VERSIONS_OPERATION'; +VERSIONS_STARTSCN : 'VERSIONS_STARTSCN'; +VERSIONS_STARTTIME : 'VERSIONS_STARTTIME'; +VERSIONS : 'VERSIONS'; +VERSIONS_XID : 'VERSIONS_XID'; +VERSION : 'VERSION'; +VIEW : 'VIEW'; +VIOLATION : 'VIOLATION'; +VIRTUAL : 'VIRTUAL'; +VISIBILITY : 'VISIBILITY'; +VISIBLE : 'VISIBLE'; +VOLUME : 'VOLUME'; +VSIZE : 'VSIZE'; +WAIT : 'WAIT'; +WALLET : 'WALLET'; +WARNING : 'WARNING'; +WEEKS : 'WEEKS'; +WEEK : 'WEEK'; +WELLFORMED : 'WELLFORMED'; +WHENEVER : 'WHENEVER'; +WHEN : 'WHEN'; +WHERE : 'WHERE'; +WHILE : 'WHILE'; +WHITESPACE : 'WHITESPACE'; +WIDTH_BUCKET : 'WIDTH_BUCKET'; +WITHIN : 'WITHIN'; +WITHOUT : 'WITHOUT'; +WITH_PLSQL : 'WITH_PLSQL'; +WITH : 'WITH'; +WORK : 'WORK'; +WORKERID : 'WORKERID'; +WRAPPED : 'WRAPPED'; +WRAPPER : 'WRAPPER'; +WRITE : 'WRITE'; +XDB_FASTPATH_INSERT : 'XDB_FASTPATH_INSERT'; +XDB : 'XDB'; +X_DYN_PRUNE : 'X_DYN_PRUNE'; +XID : 'XID'; +XML2OBJECT : 'XML2OBJECT'; +XMLAGG : 'XMLAGG'; +XMLATTRIBUTES : 'XMLATTRIBUTES'; +XMLCAST : 'XMLCAST'; +XMLCDATA : 'XMLCDATA'; +XMLCOLATTVAL : 'XMLCOLATTVAL'; +XMLCOMMENT : 'XMLCOMMENT'; +XMLCONCAT : 'XMLCONCAT'; +XMLDIFF : 'XMLDIFF'; +XML_DML_RWT_STMT : 'XML_DML_RWT_STMT'; +XMLELEMENT : 'XMLELEMENT'; +XMLEXISTS2 : 'XMLEXISTS2'; +XMLEXISTS : 'XMLEXISTS'; +XMLFOREST : 'XMLFOREST'; +XMLINDEX : 'XMLINDEX'; +XMLINDEX_REWRITE_IN_SELECT : 'XMLINDEX_REWRITE_IN_SELECT'; +XMLINDEX_REWRITE : 'XMLINDEX_REWRITE'; +XMLINDEX_SEL_IDX_TBL : 'XMLINDEX_SEL_IDX_TBL'; +XMLISNODE : 'XMLISNODE'; +XMLISVALID : 'XMLISVALID'; +XMLNAMESPACES : 'XMLNAMESPACES'; +XMLPARSE : 'XMLPARSE'; +XMLPATCH : 'XMLPATCH'; +XMLPI : 'XMLPI'; +XMLQUERYVAL : 'XMLQUERYVAL'; +XMLQUERY : 'XMLQUERY'; +XMLROOT : 'XMLROOT'; +XMLSCHEMA : 'XMLSCHEMA'; +XMLSERIALIZE : 'XMLSERIALIZE'; +XMLTABLE : 'XMLTABLE'; +XMLTAG : 'XMLTAG'; +XMLTRANSFORMBLOB : 'XMLTRANSFORMBLOB'; +XMLTRANSFORM : 'XMLTRANSFORM'; +XMLTYPE : 'XMLTYPE'; +XML : 'XML'; +XPATHTABLE : 'XPATHTABLE'; +XS_SYS_CONTEXT : 'XS_SYS_CONTEXT'; +XS : 'XS'; +XTRANSPORT : 'XTRANSPORT'; +YEARS : 'YEARS'; +YEAR : 'YEAR'; +YEAR_TO_MONTH : 'YEAR_TO_MONTH'; +YES : 'YES'; +YMINTERVAL_UNCONSTRAINED : 'YMINTERVAL_UNCONSTRAINED'; +ZONEMAP : 'ZONEMAP'; +ZONE : 'ZONE'; +ZONED : 'ZONED'; +PREDICTION : 'PREDICTION'; +PREDICTION_BOUNDS : 'PREDICTION_BOUNDS'; +PREDICTION_COST : 'PREDICTION_COST'; +PREDICTION_DETAILS : 'PREDICTION_DETAILS'; +PREDICTION_PROBABILITY : 'PREDICTION_PROBABILITY'; +PREDICTION_SET : 'PREDICTION_SET'; + +BLOCKCHAIN : 'BLOCKCHAIN'; +COLLATE : 'COLLATE'; +COLLATION : 'COLLATION'; +DEFINITION : 'DEFINITION'; +DUPLICATED : 'DUPLICATED'; +EXTENDED : 'EXTENDED'; +HASHING : 'HASHING'; +IDLE : 'IDLE'; +IMMUTABLE : 'IMMUTABLE'; +ORACLE_DATAPUMP : 'ORACLE_DATAPUMP'; +ORACLE_HDFS : 'ORACLE_HDFS'; +ORACLE_HIVE : 'ORACLE_HIVE'; +ORACLE_LOADER : 'ORACLE_LOADER'; +SHA2_512_Q : '"SHA2_512"'; +SHARDED : 'SHARDED'; +V1_Q : '"V1"'; + +ISOLATE : 'ISOLATE'; +ROOT : 'ROOT'; +UNITE : 'UNITE'; +ALGORITHM : 'ALGORITHM'; + +CUME_DIST : 'CUME_DIST'; +DENSE_RANK : 'DENSE_RANK'; +LISTAGG : 'LISTAGG'; +PERCENT_RANK : 'PERCENT_RANK'; +PERCENTILE_CONT : 'PERCENTILE_CONT'; +PERCENTILE_DISC : 'PERCENTILE_DISC'; +RANK : 'RANK'; + +AVG : 'AVG'; +CORR : 'CORR'; +COVAR_ : 'COVAR_'; +DECODE : 'DECODE'; +LAG : 'LAG'; +LAG_DIFF : 'LAG_DIFF'; +LAG_DIFF_PERCENT : 'LAG_DIFF_PERCENT'; +LEAD : 'LEAD'; +MAX : 'MAX'; +MEDIAN : 'MEDIAN'; +MEMOPTIMIZE : 'MEMOPTIMIZE'; +MIN : 'MIN'; +NTILE : 'NTILE'; +NVL : 'NVL'; +RATIO_TO_REPORT : 'RATIO_TO_REPORT'; +REGR_ : 'REGR_'; +ROUND : 'ROUND'; +ROW_NUMBER : 'ROW_NUMBER'; +SUBSTR : 'SUBSTR'; +TO_CHAR : 'TO_CHAR'; +TRIM : 'TRIM'; +SUM : 'SUM'; +STDDEV : 'STDDEV'; +VAR_ : 'VAR_'; +VARIANCE : 'VARIANCE'; +LEAST : 'LEAST'; +GREATEST : 'GREATEST'; +TO_DATE : 'TO_DATE'; + +CHARSETID : 'CHARSETID'; +CHARSETFORM : 'CHARSETFORM'; +DURATION : 'DURATION'; +EXTEND : 'EXTEND'; +MAXLEN : 'MAXLEN'; +PERSISTABLE : 'PERSISTABLE'; +POLYMORPHIC : 'POLYMORPHIC'; +STRUCT : 'STRUCT'; +TDO : 'TDO'; +WM_CONCAT : 'WM_CONCAT'; + +// Rule #358 - subtoken typecast in , it also incorporates +// Lowercase 'n' is a usual addition to the standard + +NATIONAL_CHAR_STRING_LIT: 'N' '\'' (~('\'' | '\r' | '\n') | '\'' '\'' | NEWLINE)* '\''; + +// Rule #040 - subtoken typecast in +// Lowercase 'b' is a usual addition to the standard + +BIT_STRING_LIT: 'B' ('\'' [01]* '\'')+; + +// Rule #284 - subtoken typecast in +// Lowercase 'x' is a usual addition to the standard +// The '0X' is used in external_table_clause sub-rules + +HEX_STRING_LIT : ('X' | '0X') ('\'' [A-F0-9]* '\'')+; +DOUBLE_PERIOD : '..'; +PERIOD : '.'; + +//{ Rule #238 +// This rule is a bit tricky - it resolves the ambiguity with +// It also incorporates and for the +// Rule #501 was incorporated directly in the token +// See also the rule #617 +/* + : ( + UNSIGNED_INTEGER + ( '.' UNSIGNED_INTEGER + | {$type = UNSIGNED_INTEGER;} + ) ( E ('+' | '-')? UNSIGNED_INTEGER {$type = APPROXIMATE_NUM_LIT;} )? + | '.' UNSIGNED_INTEGER ( E ('+' | '-')? UNSIGNED_INTEGER {$type = APPROXIMATE_NUM_LIT;} )? + ) + (D | F)? + ;*/ + +UNSIGNED_INTEGER : [0-9]+; +APPROXIMATE_NUM_LIT : FLOAT_FRAGMENT ('E' ('+' | '-')? (FLOAT_FRAGMENT | [0-9]+))? ('D' | 'F')?; + +// Rule #--- is a base for Rule #065 , it incorporates +// and a superfluous subtoken typecasting of the "QUOTE" +CHAR_STRING: '\'' (~('\'' | '\r' | '\n') | '\'' '\'' | NEWLINE)* '\''; + +// See https://livesql.oracle.com/apex/livesql/file/content_CIREYU9EA54EOKQ7LAMZKRF6P.html +// TODO: context sensitive string quotes (any characted after quote) +CHAR_STRING_PERL: + 'Q' '\'' ( + QS_ANGLE + | QS_BRACE + | QS_BRACK + | QS_PAREN + | QS_EXCLAM + | QS_SHARP + | QS_QUOTE + | QS_DQUOTE + | QS_TILDA + | QS_SOLIDUS + | QS_RSOLIDUS + ) '\'' -> type(CHAR_STRING) +; +fragment QS_ANGLE : '<' .*? '>'; +fragment QS_BRACE : '{' .*? '}'; +fragment QS_BRACK : '[' .*? ']'; +fragment QS_PAREN : '(' .*? ')'; +fragment QS_EXCLAM : '!' .*? '!'; +fragment QS_SHARP : '#' .*? '#'; +fragment QS_QUOTE : '\'' .*? '\''; +fragment QS_DQUOTE : '"' .*? '"'; +fragment QS_TILDA : '~' .*? '~'; +fragment QS_SOLIDUS : '/' .*? '/'; +fragment QS_RSOLIDUS : '\\' .*? '\\'; + +DELIMITED_ID: '"' (~ [\u0000"] | '"' '"')+ '"'; + +PERCENT : '%'; +AMPERSAND : '&'; +LEFT_PAREN : '('; +RIGHT_PAREN : ')'; +DOUBLE_ASTERISK : '**'; +ASTERISK : '*'; +PLUS_SIGN : '+'; +MINUS_SIGN : '-'; +COMMA : ','; +SOLIDUS : '/'; +AT_SIGN : '@'; +ASSIGN_OP : ':='; +HASH_OP : '#'; + +LEFT_CURLY_PAREN : '{'; +RIGHT_CURLY_PAREN : '}'; + +SQ: '\''; + +BINDVAR: + ':' SIMPLE_LETTER (SIMPLE_LETTER | [0-9] | '_')* + | ':' DELIMITED_ID // not used in SQL but spotted in v$sqltext when using cursor_sharing + | ':' UNSIGNED_INTEGER + | QUESTION_MARK // not in SQL, not in Oracle, not in OCI, use this for JDBC +; + +NOT_EQUAL_OP : '!=' | '<>' | '^=' | '~='; +CARRET_OPERATOR_PART : '^'; +TILDE_OPERATOR_PART : '~'; +EXCLAMATION_OPERATOR_PART : '!'; +GREATER_THAN_OP : '>'; +LESS_THAN_OP : '<'; +COLON : ':'; +SEMICOLON : ';'; + +BAR : '|'; +EQUALS_OP : '='; + +LEFT_BRACKET : '['; +RIGHT_BRACKET : ']'; + +INTRODUCER: '_'; + +// Comments https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements006.htm + +SINGLE_LINE_COMMENT : '--' ~('\r' | '\n')* NEWLINE_EOF -> channel(HIDDEN); +MULTI_LINE_COMMENT : '/*' .*? '*/' -> channel(HIDDEN); +// https://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve034.htm#SQPUG054 +REMARK_COMMENT: + 'REM' {this.IsNewlineAtPos(-4)}? 'ARK'? (' ' ~('\r' | '\n')*)? NEWLINE_EOF -> channel(HIDDEN) +; + +// https://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve032.htm#SQPUG052 +PROMPT_MESSAGE: 'PRO' {this.IsNewlineAtPos(-4)}? 'MPT'? (' ' ~('\r' | '\n')*)? NEWLINE_EOF; + +// TODO: should starts with newline +START_CMD: // https://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12002.htm + '@' '@'? +; // https://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12003.htm + +REGULAR_ID: SIMPLE_LETTER (SIMPLE_LETTER | '$' | '_' | '#' | [0-9])*; + +INQUIRY_DIRECTIVE: '$$' (SIMPLE_LETTER | '_')+; + +SPACES: [ \t\r\n]+ -> channel(HIDDEN); + +// Fragment rules + +fragment NEWLINE_EOF : NEWLINE | EOF; +fragment QUESTION_MARK : '?'; +fragment SIMPLE_LETTER : [\p{Letter}]; +fragment FLOAT_FRAGMENT : UNSIGNED_INTEGER* '.'? UNSIGNED_INTEGER+; +fragment NEWLINE : '\r'? '\n'; +fragment SPACE : [ \t]; diff --git a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.interp b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.interp new file mode 100644 index 000000000..f08b5d8cc --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.interp @@ -0,0 +1,7475 @@ +token literal names: +null +'ABORT' +'ABS' +'ABSENT' +'ACCESS' +'ACCESSED' +'ACCESSIBLE' +'ACCOUNT' +'ACL' +'ACOS' +'ACROSS' +'ACTION' +'ACTIONS' +'ACTIVATE' +'ACTIVE' +'ACTIVE_COMPONENT' +'ACTIVE_DATA' +'ACTIVE_FUNCTION' +'ACTIVE_TAG' +'ACTIVITY' +'ADAPTIVE_PLAN' +'ADD' +'ADD_COLUMN' +'ADD_GROUP' +'ADD_MONTHS' +'ADJ_DATE' +'ADMIN' +'ADMINISTER' +'ADMINISTRATOR' +'ADVANCED' +'ADVISE' +'ADVISOR' +'AFD_DISKSTRING' +'AFTER' +'AGENT' +'AGGREGATE' +'A' +'ALIAS' +'ALL' +'ALLOCATE' +'ALLOW' +'ALL_ROWS' +'ALTER' +'ALTERNATE' +'ALWAYS' +'ANALYTIC' +'ANALYZE' +'ANCESTOR' +'ANCILLARY' +'AND' +'AND_EQUAL' +'ANNOTATIONS' +'ANOMALY' +'ANSI_REARCH' +'ANTIJOIN' +'ANY' +'ANYSCHEMA' +'APPEND' +'APPENDCHILDXML' +'APPEND_VALUES' +'APPLICATION' +'APPLY' +'APPROX_COUNT_DISTINCT' +'ARCHIVAL' +'ARCHIVE' +'ARCHIVED' +'ARCHIVELOG' +'ARE' +'ARRAY' +'AS' +'ASC' +'ASCII' +'ASCIISTR' +'ASIN' +'ASIS' +'ASSEMBLY' +'ASSIGN' +'ASSOCIATE' +'ASYNC' +'ASYNCHRONOUS' +'ATAN2' +'ATAN' +'AT' +'ATTRIBUTE' +'ATTRIBUTES' +'AUDIT' +'AUTHENTICATED' +'AUTHENTICATION' +'AUTHID' +'AUTHORIZATION' +'AUTOALLOCATE' +'AUTO' +'AUTOBACKUP' +'AUTOEXTEND' +'AUTO_LOGIN' +'AUTOMATIC' +'AUTONOMOUS_TRANSACTION' +'AUTO_REOPTIMIZE' +'AVAILABILITY' +'AVRO' +'BACKGROUND' +'BACKINGFILE' +'BACKUP' +'BACKUPS' +'BACKUPSET' +'BADFILE' +'BASIC' +'BASICFILE' +'BATCH' +'BATCHSIZE' +'BATCH_TABLE_ACCESS_BY_ROWID' +'BECOME' +'BEFORE' +'BEGIN' +'BEGINNING' +'BEGIN_OUTLINE_DATA' +'BEHALF' +'BEQUEATH' +'BETWEEN' +'BFILE' +'BFILENAME' +'BIG' +'BIGFILE' +'BIGINT' +'BINARY' +'BINARY_DOUBLE' +'BINARY_DOUBLE_INFINITY' +'BINARY_DOUBLE_NAN' +'BINARY_FLOAT' +'BINARY_FLOAT_INFINITY' +'BINARY_FLOAT_NAN' +'BINARY_INTEGER' +'BIND_AWARE' +'BINDING' +'BIN_TO_NUM' +'BITAND' +'BITMAP_AND' +'BITMAP' +'BITMAPS' +'BITMAP_TREE' +'BITS' +'BLANKS' +'BLOB' +'BLOCK' +'BLOCK_RANGE' +'BLOCKS' +'BLOCKSIZE' +'BODY' +'BOOLEAN' +'BOTH' +'BOUND' +'BRANCH' +'BREADTH' +'BROADCAST' +'BSON' +'BUFFER' +'BUFFER_CACHE' +'BUFFER_POOL' +'BUILD' +'BULK' +'BY' +'BYPASS_RECURSIVE_CHECK' +'BYPASS_UJVC' +'BYTE' +'BYTES' +'BYTEORDERMARK' +'CACHE' +'CACHE_CB' +'CACHE_INSTANCES' +'CACHE_TEMP_TABLE' +'CACHING' +'CALCULATED' +'CALLBACK' +'CALL' +'CANCEL' +'CANONICAL' +'CAPACITY' +'CAPTION' +'CARDINALITY' +'CASCADE' +'CASE' +'CAST' +'CASE-SENSITIVE' +'CATEGORY' +'CDB$DEFAULT' +'CEIL' +'CELL_FLASH_CACHE' +'CERTIFICATE' +'CFILE' +'CHAINED' +'CHANGE' +'CHANGETRACKING' +'CHANGE_DUPKEY_ERROR_INDEX' +'CHARACTER' +'CHARACTERS' +'CHARACTERSET' +'CHAR' +'CHAR_CS' +'CHARTOROWID' +'CHECK_ACL_REWRITE' +'CHECK' +'CHECKPOINT' +'CHILD' +'CHOOSE' +'CHR' +'CHUNK' +'CLASS' +'CLASSIFICATION' +'CLASSIFIER' +'CLAUSE' +'CLEAN' +'CLEANUP' +'CLEAR' +'C' +'CLIENT' +'CLOB' +'CLONE' +'CLOSE_CACHED_OPEN_CURSORS' +'CLOSE' +'CLUSTER_BY_ROWID' +'CLUSTER' +'CLUSTER_DETAILS' +'CLUSTER_DISTANCE' +'CLUSTER_ID' +'CLUSTERING' +'CLUSTERING_FACTOR' +'CLUSTER_PROBABILITY' +'CLUSTER_SET' +'COALESCE' +'COALESCE_SQ' +'COARSE' +'CO_AUTH_IND' +'COLD' +'COLLECT' +'COLLECTION' +'COLUMNAR' +'COLUMN_AUTH_INDICATOR' +'COLUMN' +'COLUMNS' +'COLUMN_STATS' +'COLUMN_VALUE' +'COMMENT' +'COMMIT' +'COMMITTED' +'COMMON' +'COMMON_DATA' +'COMPACT' +'COMPATIBLE' +'COMPATIBILITY' +'COMPILE' +'COMPLETE' +'COMPLIANCE' +'COMPONENT' +'COMPONENTS' +'COMPOSE' +'COMPOSITE' +'COMPOSITE_LIMIT' +'COMPOUND' +'COMPRESS' +'COMPRESSION' +'COMPUTE' +'CONCAT' +'CON_DBID_TO_ID' +'CONDITIONAL' +'CONDITION' +'CONFIRM' +'CONFORMING' +'CON_GUID_TO_ID' +'CON_ID' +'CON_NAME_TO_ID' +'CONNECT_BY_CB_WHR_ONLY' +'CONNECT_BY_COMBINE_SW' +'CONNECT_BY_COST_BASED' +'CONNECT_BY_ELIM_DUPS' +'CONNECT_BY_FILTERING' +'CONNECT_BY_ISCYCLE' +'CONNECT_BY_ISLEAF' +'CONNECT_BY_ROOT' +'CONNECT' +'CONNECT_TIME' +'CONSIDER' +'CONSISTENT' +'CONSTANT' +'CONST' +'CONSTRAINT' +'CONSTRAINTS' +'CONSTRUCTOR' +'CONTAINER' +'CONTAINERS' +'CONTAINERS_DEFAULT' +'CONTAINER_DATA' +'CONTAINER_MAP' +'CONTENT' +'CONTENTS' +'CONTEXT' +'CONTINUE' +'CONTROLFILE' +'CON_UID_TO_ID' +'CONVERT' +'CONVERSION' +'COOKIE' +'COPY' +'CORR_K' +'CORR_S' +'CORRUPTION' +'CORRUPT_XID_ALL' +'CORRUPT_XID' +'COS' +'COSH' +'COST' +'COST_XML_QUERY_REWRITE' +'COUNT' +'COUNTED' +'COVAR_POP' +'COVAR_SAMP' +'CPU_COSTING' +'CPU_PER_CALL' +'CPU_PER_SESSION' +'CRASH' +'CREATE' +'CREATE_FILE_DEST' +'CREATE_STORED_OUTLINES' +'CREATION' +'CREDENTIAL' +'CRITICAL' +'CROSS' +'CROSSEDITION' +'CSCONVERT' +'CSV' +'CUBE_AJ' +'CUBE' +'CUBE_GB' +'CUBE_SJ' +'CUME_DISTM' +'CURRENT' +'CURRENT_DATE' +'CURRENT_SCHEMA' +'CURRENT_TIME' +'CURRENT_TIMESTAMP' +'CURRENT_USER' +'CURRENTV' +'CURSOR' +'CURSOR_SHARING_EXACT' +'CURSOR_SPECIFIC_SEGMENT' +'CUSTOMDATUM' +'CV' +'CYCLE' +'DANGLING' +'DATABASE' +'DATA' +'DATAFILE' +'DATAFILES' +'DATAGUARDCONFIG' +'DATAMOVEMENT' +'DATAOBJNO' +'DATAOBJ_TO_MAT_PARTITION' +'DATAOBJ_TO_PARTITION' +'DATAPUMP' +'DATA_SECURITY_REWRITE_LIMIT' +'DATE' +'DATE_CACHE' +'DATE_FORMAT' +'DATE_MODE' +'DAY' +'DAYS' +'DAY_TO_SECOND' +'DBA' +'DBA_RECYCLEBIN' +'DBLINK' +'DBMS_STATS' +'DB_ROLE_CHANGE' +'DBTIMEZONE' +'DB_UNIQUE_NAME' +'DB_VERSION' +'DDL' +'DEALLOCATE' +'DEBUG' +'DEBUGGER' +'DEC' +'DECIMAL' +'DECLARE' +'DECOMPOSE' +'DECORRELATE' +'DECR' +'DECREMENT' +'DECRYPT' +'DEDUPLICATE' +'DEFAULT' +'DEFAULTIF' +'DEFAULTS' +'DEFAULT_COLLATION' +'DEFAULT_CREDENTIAL' +'DEFERRABLE' +'DEFERRED' +'DEFINED' +'DEFINE' +'DEFINER' +'DEGREE' +'DELAY' +'DELEGATE' +'DELETE_ALL' +'DELETE' +'DELETEXML' +'DELIMITED' +'DEMAND' +'DENSE_RANKM' +'DEPENDENT' +'DEPRECATE' +'DEPTH' +'DEQUEUE' +'DEREF' +'DEREF_NO_REWRITE' +'DESC' +'DESCRIPTION' +'DESTROY' +'DETACHED' +'DETECTED' +'DETERMINES' +'DETERMINISTIC' +'DICTIONARY' +'DIMENSION' +'DIMENSIONS' +'DIRECTIO' +'DIRECT_LOAD' +'DIRECTORY' +'DIRECT_PATH' +'DISABLE_ALL' +'DISABLE' +'DISABLED' +'DISABLE_DIRECTORY_LINK_CHECK' +'DISABLE_PARALLEL_DML' +'DISABLE_PRESET' +'DISABLE_RPKE' +'DISALLOW' +'DISASSOCIATE' +'DISCARD' +'DISCARDFILE' +'DISCONNECT' +'DISK' +'DISKGROUP' +'\'+ DISKGROUP' +'DISKS' +'DISMOUNT' +'DISTINCT' +'DISTINGUISHED' +'DISTRIBUTED' +'DISTRIBUTE' +'DML' +'DML_UPDATE' +'DNFS_DISABLE' +'DNFS_ENABLE' +'DNFS_READBUFFERS' +'DOCFIDELITY' +'DOCUMENT' +'$ELSE' +'$ELSIF' +'$END' +'$ERROR' +'$IF' +'$THEN' +'DOMAIN_INDEX_FILTER' +'DOMAIN_INDEX_NO_SORT' +'DOMAIN_INDEX_SORT' +'DOUBLE' +'DOWNGRADE' +'DRIVING_SITE' +'DROP_COLUMN' +'DROP' +'DROP_GROUP' +'DSINTERVAL_UNCONSTRAINED' +'DST_UPGRADE_INSERT_CONV' +'DUMP' +'DUMPSET' +'DUPLICATE' +'DV' +'DYNAMIC' +'DYNAMIC_SAMPLING' +'DYNAMIC_SAMPLING_EST_CDN' +'E' +'EACH' +'EDITIONABLE' +'EDITION' +'EDITIONING' +'EDITIONS' +'ELEMENT' +'ELIM_GROUPBY' +'ELIMINATE_JOIN' +'ELIMINATE_OBY' +'ELIMINATE_OUTER_JOIN' +'ELSE' +'ELSIF' +'EM' +'EMBEDDED' +'EMPTY_BLOB' +'EMPTY_CLOB' +'EMPTY' +'ENABLE_ALL' +'ENABLE' +'ENABLED' +'ENABLE_PARALLEL_DML' +'ENABLE_PRESET' +'ENCLOSED' +'ENCODING' +'ENCRYPT' +'ENCRYPTION' +'ENCRYPTPASSWORDISNULL' +'END' +'END_OUTLINE_DATA' +'ENDIAN' +'ENFORCED' +'ENFORCE' +'ENQUEUE' +'ENTERPRISE' +'ENTITYESCAPING' +'ENTRY' +'EQUIPART' +'ERR' +'ERROR_ARGUMENT' +'ERROR' +'ERROR_ON_OVERLAP_TIME' +'ERRORS' +'ERROR_INDEX' +'ERROR_CODE' +'ESCAPE' +'ESCAPED' +'ESTIMATE' +'EVAL' +'EVALNAME' +'EVALUATE' +'EVALUATION' +'EVENTS' +'EVERY' +'EXCEPT' +'EXCEPTION' +'EXCEPTION_INIT' +'EXCEPTIONS' +'EXCHANGE' +'EXCLUDE' +'EXCLUDING' +'EXCLUSIVE' +'EXECUTE' +'EXEMPT' +'EXISTING' +'EXISTS' +'EXISTSNODE' +'EXIT' +'EXPAND_GSET_TO_UNION' +'EXPAND_TABLE' +'EXP' +'EXPIRE' +'EXPLAIN' +'EXPLOSION' +'EXPORT' +'EXPR_CORR_CHECK' +'EXPRESS' +'EXTENDS' +'EXTENT' +'EXTENTS' +'EXTERNAL' +'EXTERNALLY' +'EXTRACTCLOBXML' +'EXTRACT' +'EXTRACTVALUE' +'EXTRA' +'FACILITY' +'FACT' +'FACTOR' +'FACTORIZE_JOIN' +'FAILED' +'FAILED_LOGIN_ATTEMPTS' +'FAILGROUP' +'FAILOVER' +'FAILURE' +'FALSE' +'FAMILY' +'FAR' +'FAST' +'FASTSTART' +'FBTSCAN' +'FEATURE' +'FEATURE_DETAILS' +'FEATURE_ID' +'FEATURE_SET' +'FEATURE_VALUE' +'FETCH' +'FIELD' +'FIELDS' +'FILE' +'FILE_NAME_CONVERT' +'FILEGROUP' +'FILESTORE' +'FILESYSTEM_LIKE_LOGGING' +'FILTER' +'FINAL' +'FINE' +'FINISH' +'FIRST' +'FIRSTM' +'FIRST_ROWS' +'FIRST_VALUE' +'FIXED' +'FIXED_VIEW_DATA' +'FLAGGER' +'FLASHBACK' +'FLASH_CACHE' +'FLOAT' +'FLOB' +'FLEX' +'FLOOR' +'FLUSH' +'FOLDER' +'FOLLOWING' +'FOLLOWS' +'FORALL' +'FORCE' +'FORCE_XML_QUERY_REWRITE' +'FOREIGN' +'FOREVER' +'FOR' +'FORMAT' +'FORWARD' +'FRAGMENT_NUMBER' +'FREELIST' +'FREELISTS' +'FREEPOOLS' +'FRESH' +'FROM' +'FROM_TZ' +'FULL' +'FULL_OUTER_JOIN_TO_OUTER' +'FUNCTION' +'FUNCTIONS' +'FTP' +'G' +'GATHER_OPTIMIZER_STATISTICS' +'GATHER_PLAN_STATISTICS' +'GBY_CONC_ROLLUP' +'GBY_PUSHDOWN' +'GENERATED' +'GET' +'GLOBAL' +'GLOBALLY' +'GLOBAL_NAME' +'GLOBAL_TOPIC_ENABLED' +'GOTO' +'GRANT' +'GROUP_BY' +'GROUP' +'GROUP_ID' +'GROUPING' +'GROUPING_ID' +'GROUPS' +'GUARANTEED' +'GUARANTEE' +'GUARD' +'HADOOP_TRAILERS' +'HALF_YEARS' +'HASH_AJ' +'HASH' +'HASHKEYS' +'HASH_SJ' +'HAVING' +'HEADER' +'HEAP' +'HELP' +'HEXTORAW' +'HEXTOREF' +'HIDDEN' +'HIDE' +'HIER_ORDER' +'HIERARCHICAL' +'HIERARCHIES' +'HIERARCHY' +'HIGH' +'HINTSET_BEGIN' +'HINTSET_END' +'HOT' +'HOUR' +'HOURS' +'HTTP' +'HWM_BROKERED' +'HYBRID' +'H' +'IDENTIFIED' +'IDENTIFIER' +'IDENTITY' +'IDGENERATORS' +'ID' +'IDLE_TIME' +'IF' +'IGNORE' +'IGNORE_CHARS_AFTER_EOR' +'IGNORE_OPTIM_EMBEDDED_HINTS' +'IGNORE_ROW_ON_DUPKEY_INDEX' +'IGNORE_WHERE_CLAUSE' +'ILM' +'IMMEDIATE' +'IMPACT' +'IMPORT' +'INACTIVE' +'INACTIVE_ACCOUNT_TIME' +'INCLUDE' +'INCLUDE_VERSION' +'INCLUDING' +'INCREMENTAL' +'INCREMENT' +'INCR' +'INDENT' +'INDEX_ASC' +'INDEX_COMBINE' +'INDEX_DESC' +'INDEXED' +'INDEXES' +'INDEX_FFS' +'INDEX_FILTER' +'INDEX' +'INDEXING' +'INDEX_JOIN' +'INDEX_ROWS' +'INDEX_RRS' +'INDEX_RS_ASC' +'INDEX_RS_DESC' +'INDEX_RS' +'INDEX_SCAN' +'INDEX_SKIP_SCAN' +'INDEX_SS_ASC' +'INDEX_SS_DESC' +'INDEX_SS' +'INDEX_STATS' +'INDEXTYPE' +'INDEXTYPES' +'INDICATOR' +'INDICES' +'INFINITE' +'INFORMATIONAL' +'INHERIT' +'IN' +'INITCAP' +'INITIAL' +'INITIALIZED' +'INITIALLY' +'INITRANS' +'INLINE' +'INLINE_XMLTYPE_NT' +'INMEMORY' +'IN_MEMORY_METADATA' +'INMEMORY_PRUNING' +'INNER' +'INOUT' +'INPLACE' +'INPUTFORMAT' +'INSERTCHILDXMLAFTER' +'INSERTCHILDXMLBEFORE' +'INSERTCHILDXML' +'INSERT' +'INSERTXMLAFTER' +'INSERTXMLBEFORE' +'INSTANCE' +'INSTANCES' +'INSTANTIABLE' +'INSTANTLY' +'INSTEAD' +'INSTR2' +'INSTR4' +'INSTRB' +'INSTRC' +'INSTR' +'INTEGER' +'INTERLEAVED' +'INTERMEDIATE' +'INTERNAL_CONVERT' +'INTERNAL_USE' +'INTERPRETED' +'INTERSECT' +'INTERVAL' +'INT' +'INTERNAL' +'INTO' +'INVALIDATE' +'INVALIDATION' +'INVISIBLE' +'IN_XQUERY' +'IO_OPTIONS' +'IS' +'IS_LEAF' +'ISOLATION' +'ISOLATION_LEVEL' +'ITEMS' +'ITERATE' +'ITERATION_NUMBER' +'JAVA' +'JOB' +'JOIN' +'JSON_ARRAYAGG' +'JSON_ARRAY' +'JSON_EQUAL' +'JSON_EXISTS2' +'JSON_EXISTS' +'JSONGET' +'JSON' +'JSON_OBJECTAGG' +'JSON_OBJECT' +'JSONPARSE' +'JSON_QUERY' +'JSON_SERIALIZE' +'JSON_TABLE' +'JSON_TEXTCONTAINS2' +'JSON_TEXTCONTAINS' +'JSON_TRANSFORM' +'JSON_VALUE' +'K' +'KEEP_DUPLICATES' +'KEEP' +'KERBEROS' +'KEY' +'KEY_LENGTH' +'KEYSIZE' +'KEYS' +'KEYSTORE' +'KILL' +'LABEL' +'LANGUAGE' +'LAST_DAY' +'LAST' +'LAST_VALUE' +'LATERAL' +'LATEST' +'LAX' +'LAYER' +'LDAP_REGISTRATION_ENABLED' +'LDAP_REGISTRATION' +'LDAP_REG_SYNC_INTERVAL' +'LDRTRIM' +'LEAF' +'LEAD_CDB' +'LEAD_CDB_URI' +'LEADING' +'LEFT' +'LENGTH2' +'LENGTH4' +'LENGTHB' +'LENGTHC' +'LENGTH' +'LESS' +'LEVEL' +'LEVEL_NAME' +'LEVELS' +'LIBRARY' +'LIFECYCLE' +'LIFE' +'LIFETIME' +'LIKE2' +'LIKE4' +'LIKEC' +'LIKE_EXPAND' +'LIKE' +'LIMIT' +'LINEAR' +'LINES' +'LINK' +'LIST' +'LITTLE' +'LLS' +'LN' +'LNNVL' +'LOAD' +'LOB' +'LOBFILE' +'LOBNVL' +'LOBS' +'LOCAL_INDEXES' +'LOCAL' +'LOCALTIME' +'LOCALTIMESTAMP' +'LOCATION' +'LOCATOR' +'LOCKDOWN' +'LOCKED' +'LOCKING' +'LOCK' +'LOGFILE' +'LOGFILES' +'LOGGING' +'LOGICAL' +'LOGICAL_READS_PER_CALL' +'LOGICAL_READS_PER_SESSION' +'LOG' +'LOGMINING' +'LOGOFF' +'LOGON' +'LOG_READ_ONLY_VIOLATIONS' +'LONG' +'LOOP' +'LOST' +'LOWER' +'LOW' +'LPAD' +'LRTRIM' +'LTRIM' +'M' +'MAIN' +'MAKE_REF' +'MANAGED' +'MANAGE' +'MANAGEMENT' +'MANAGER' +'MANDATORY' +'MANUAL' +'MAP' +'MAPPING' +'MASK' +'MASTER' +'MATCHED' +'MATCHES' +'MATCH' +'MATCH_NUMBER' +'MATCH_RECOGNIZE' +'MATERIALIZED' +'MATERIALIZE' +'MAXARCHLOGS' +'MAXDATAFILES' +'MAXEXTENTS' +'MAXIMIZE' +'MAXINSTANCES' +'MAXLOGFILES' +'MAXLOGHISTORY' +'MAXLOGMEMBERS' +'MAX_SHARED_TEMP_SIZE' +'MAXSIZE' +'MAXTRANS' +'MAXVALUE' +'MEASURE' +'MEASURES' +'MEDIUM' +'MEMBER' +'MEMBER_CAPTION' +'MEMBER_DESCRIPTION' +'MEMBER_NAME' +'MEMBER_UNIQUE_NAME' +'MEMCOMPRESS' +'MEMORY' +'MERGE$ACTIONS' +'MERGE_AJ' +'MERGE_CONST_ON' +'MERGE' +'MERGE_SJ' +'METADATA' +'METHOD' +'MIGRATE' +'MIGRATION' +'MINEXTENTS' +'MINIMIZE' +'MINIMUM' +'MINING' +'MINUS' +'MINUS_NULL' +'MINUTE' +'MINUTES' +'MINVALUE' +'MIRRORCOLD' +'MIRRORHOT' +'MIRROR' +'MISSING' +'MISMATCH' +'MLSLABEL' +'MODEL_COMPILE_SUBQUERY' +'MODEL_DONTVERIFY_UNIQUENESS' +'MODEL_DYNAMIC_SUBQUERY' +'MODEL_MIN_ANALYSIS' +'MODEL' +'MODEL_NB' +'MODEL_NO_ANALYSIS' +'MODEL_PBY' +'MODEL_PUSH_REF' +'MODEL_SV' +'MODE' +'MODIFICATION' +'MODIFY_COLUMN_TYPE' +'MODIFY' +'MOD' +'MODULE' +'MONITORING' +'MONITOR' +'MONTH' +'MONTHS_BETWEEN' +'MONTHS' +'MOUNT' +'MOUNTPATH' +'MOUNTPOINT' +'MOVEMENT' +'MOVE' +'MULTIDIMENSIONAL' +'MULTISET' +'MV_MERGE' +'NAMED' +'NAME' +'NAMESPACE' +'NAN' +'NANVL' +'NATIONAL' +'NATIVE_FULL_OUTER_JOIN' +'NATIVE' +'NATURAL' +'NATURALN' +'NAV' +'NCHAR_CS' +'NCHAR' +'NCHR' +'NCLOB' +'NEEDED' +'NEG' +'NESTED' +'NESTED_TABLE_FAST_INSERT' +'NESTED_TABLE_GET_REFS' +'NESTED_TABLE_ID' +'NESTED_TABLE_SET_REFS' +'NESTED_TABLE_SET_SETID' +'NETWORK' +'NEVER' +'NEW' +'NEWLINE' +'NEW_TIME' +'NEXT_DAY' +'NEXT' +'NL_AJ' +'NLJ_BATCHING' +'NLJ_INDEX_FILTER' +'NLJ_INDEX_SCAN' +'NLJ_PREFETCH' +'NLS_CALENDAR' +'NLS_CHARACTERSET' +'NLS_CHARSET_DECL_LEN' +'NLS_CHARSET_ID' +'NLS_CHARSET_NAME' +'NLS_COMP' +'NLS_CURRENCY' +'NLS_DATE_FORMAT' +'NLS_DATE_LANGUAGE' +'NLS_INITCAP' +'NLS_ISO_CURRENCY' +'NL_SJ' +'NLS_LANG' +'NLS_LANGUAGE' +'NLS_LENGTH_SEMANTICS' +'NLS_LOWER' +'NLS_NCHAR_CONV_EXCP' +'NLS_NUMERIC_CHARACTERS' +'NLS_SORT' +'NLSSORT' +'NLS_SPECIAL_CHARS' +'NLS_TERRITORY' +'NLS_UPPER' +'NO_ACCESS' +'NO_ADAPTIVE_PLAN' +'NO_ANSI_REARCH' +'NOAPPEND' +'NOARCHIVELOG' +'NOAUDIT' +'NOBADFILE' +'NO_AUTO_REOPTIMIZE' +'NO_BASETABLE_MULTIMV_REWRITE' +'NO_BATCH_TABLE_ACCESS_BY_ROWID' +'NO_BIND_AWARE' +'NO_BUFFER' +'NOCACHE' +'NOCHECK' +'NO_CARTESIAN' +'NO_CHECK_ACL_REWRITE' +'NO_CLUSTER_BY_ROWID' +'NO_CLUSTERING' +'NO_COALESCE_SQ' +'NO_COMMON_DATA' +'NOCOMPRESS' +'NO_CONNECT_BY_CB_WHR_ONLY' +'NO_CONNECT_BY_COMBINE_SW' +'NO_CONNECT_BY_COST_BASED' +'NO_CONNECT_BY_ELIM_DUPS' +'NO_CONNECT_BY_FILTERING' +'NOCOPY' +'NO_COST_XML_QUERY_REWRITE' +'NO_CPU_COSTING' +'NOCPU_COSTING' +'NOCYCLE' +'NO_DATA_SECURITY_REWRITE' +'NO_DECORRELATE' +'NODELAY' +'NODIRECTIO' +'NODISCARDFILE' +'NO_DOMAIN_INDEX_FILTER' +'NO_DST_UPGRADE_INSERT_CONV' +'NO_ELIM_GROUPBY' +'NO_ELIMINATE_JOIN' +'NO_ELIMINATE_OBY' +'NO_ELIMINATE_OUTER_JOIN' +'NOENTITYESCAPING' +'NO_EXPAND_GSET_TO_UNION' +'NO_EXPAND' +'NO_EXPAND_TABLE' +'NOEXTEND' +'NO_FACT' +'NO_FACTORIZE_JOIN' +'NO_FILTERING' +'NOFORCE' +'NO_FULL_OUTER_JOIN_TO_OUTER' +'NO_GATHER_OPTIMIZER_STATISTICS' +'NO_GBY_PUSHDOWN' +'NOGUARANTEE' +'NO_INDEX_FFS' +'NO_INDEX' +'NO_INDEX_SS' +'NO_INMEMORY' +'NO_INMEMORY_PRUNING' +'NOKEEP' +'NO_LOAD' +'NOLOCAL' +'NOLOG' +'NOLOGFILE' +'NOLOGGING' +'NOMAPPING' +'NOMAXVALUE' +'NO_MERGE' +'NOMINIMIZE' +'NOMINVALUE' +'NO_MODEL_PUSH_REF' +'NO_MONITORING' +'NOMONITORING' +'NO_MONITOR' +'NO_MULTIMV_REWRITE' +'NO_NATIVE_FULL_OUTER_JOIN' +'NONBLOCKING' +'NONEDITIONABLE' +'NONE' +'NONULLIF' +'NO_NLJ_BATCHING' +'NO_NLJ_PREFETCH' +'NO' +'NONSCHEMA' +'NO_OBJECT_LINK' +'NOORDER' +'NO_ORDER_ROLLUPS' +'NO_OUTER_JOIN_TO_ANTI' +'NO_OUTER_JOIN_TO_INNER' +'NOOVERRIDE' +'NO_PARALLEL_INDEX' +'NOPARALLEL_INDEX' +'NO_PARALLEL' +'NOPARALLEL' +'NO_PARTIAL_COMMIT' +'NO_PARTIAL_JOIN' +'NO_PARTIAL_ROLLUP_PUSHDOWN' +'NOPARTITION' +'NO_PLACE_DISTINCT' +'NO_PLACE_GROUP_BY' +'NO_PQ_CONCURRENT_UNION' +'NO_PQ_MAP' +'NOPROMPT' +'NO_PQ_REPLICATE' +'NO_PQ_SKEW' +'NO_PRUNE_GSETS' +'NO_PULL_PRED' +'NO_PUSH_PRED' +'NO_PUSH_SUBQ' +'NO_PX_FAULT_TOLERANCE' +'NO_PX_JOIN_FILTER' +'NO_QKN_BUFF' +'NO_QUERY_TRANSFORMATION' +'NO_REF_CASCADE' +'NORELOCATE' +'NORELY' +'NOREPAIR' +'NOREPLAY' +'NORESETLOGS' +'NO_RESULT_CACHE' +'NOREVERSE' +'NO_REWRITE' +'NOREWRITE' +'NORMAL' +'NO_ROOT_SW_FOR_LOCAL' +'NOROWDEPENDENCIES' +'NOSCALE' +'NOSCHEMACHECK' +'NOSEGMENT' +'NO_SEMIJOIN' +'NO_SEMI_TO_INNER' +'NO_SET_TO_JOIN' +'NOSHARD' +'NOSORT' +'NO_SQL_TRANSLATION' +'NO_SQL_TUNE' +'NO_STAR_TRANSFORMATION' +'NO_STATEMENT_QUEUING' +'NO_STATS_GSETS' +'NOSTRICT' +'NO_SUBQUERY_PRUNING' +'NO_SUBSTRB_PAD' +'NO_SWAP_JOIN_INPUTS' +'NOSWITCH' +'NO_TABLE_LOOKUP_BY_NL' +'NO_TEMP_TABLE' +'NOTHING' +'NOTIFICATION' +'NOTRIM' +'NOT' +'NO_TRANSFORM_DISTINCT_AGG' +'NO_UNNEST' +'NO_USE_CUBE' +'NO_USE_HASH_AGGREGATION' +'NO_USE_HASH_GBY_FOR_PUSHDOWN' +'NO_USE_HASH' +'NO_USE_INVISIBLE_INDEXES' +'NO_USE_MERGE' +'NO_USE_NL' +'NO_USE_VECTOR_AGGREGATION' +'NOVALIDATE' +'NO_VECTOR_TRANSFORM_DIMS' +'NO_VECTOR_TRANSFORM_FACT' +'NO_VECTOR_TRANSFORM' +'NOWAIT' +'NO_XDB_FASTPATH_INSERT' +'NO_XML_DML_REWRITE' +'NO_XMLINDEX_REWRITE_IN_SELECT' +'NO_XMLINDEX_REWRITE' +'NO_XML_QUERY_REWRITE' +'NO_ZONEMAP' +'NTH_VALUE' +'NULLIF' +'NULL' +'NULLS' +'NUMBER' +'NUMERIC' +'NUM_INDEX_KEYS' +'NUMTODSINTERVAL' +'NUMTOYMINTERVAL' +'NVARCHAR2' +'NVL2' +'OBJECT2XML' +'OBJECT' +'OBJ_ID' +'OBJNO' +'OBJNO_REUSE' +'OCCURENCES' +'OFFLINE' +'OFF' +'OFFSET' +'OF' +'OIDINDEX' +'OID' +'OLAP' +'OLD' +'OLD_PUSH_PRED' +'OLS' +'OLTP' +'OMIT' +'ONE' +'ONLINE' +'ONLINELOG' +'ONLY' +'ON' +'OPAQUE' +'OPAQUE_TRANSFORM' +'OPAQUE_XCANONICAL' +'OPCODE' +'OPEN' +'OPERATIONS' +'OPERATOR' +'OPT_ESTIMATE' +'OPTIMAL' +'OPTIMIZE' +'OPTIMIZER_FEATURES_ENABLE' +'OPTIMIZER_GOAL' +'OPTION' +'OPTIONALLY' +'OPT_PARAM' +'ORA_BRANCH' +'ORA_CHECK_ACL' +'ORA_CHECK_PRIVILEGE' +'ORA_CLUSTERING' +'ORADATA' +'ORC' +'ORACLE_DATE' +'ORACLE_NUMBER' +'ORADEBUG' +'ORA_DST_AFFECTED' +'ORA_DST_CONVERT' +'ORA_DST_ERROR' +'ORA_GET_ACLIDS' +'ORA_GET_PRIVILEGES' +'ORA_HASH' +'ORA_INVOKING_USERID' +'ORA_INVOKING_USER' +'ORA_INVOKING_XS_USER_GUID' +'ORA_INVOKING_XS_USER' +'ORA_RAWCOMPARE' +'ORA_RAWCONCAT' +'ORA_ROWSCN' +'ORA_ROWSCN_RAW' +'ORA_ROWVERSION' +'ORA_TABVERSION' +'ORA_WRITE_TIME' +'ORDERED' +'ORDERED_PREDICATES' +'ORDER' +'ORDINALITY' +'OR_EXPAND' +'ORGANIZATION' +'OR' +'OR_PREDICATES' +'OSERROR' +'OTHER' +'OUTER_JOIN_TO_ANTI' +'OUTER_JOIN_TO_INNER' +'OUTER' +'OUTLINE_LEAF' +'OUTLINE' +'OUTPUTFORMAT' +'OUT_OF_LINE' +'OUT' +'OVERFLOW_NOMOVE' +'OVERFLOW' +'OVERLAPS' +'OVER' +'OVERRIDE' +'OVERRIDING' +'OWNER' +'OWNERSHIP' +'OWN' +'P' +'PACKAGE' +'PACKAGES' +'PARALLEL_ENABLE' +'PARALLEL_INDEX' +'PARALLEL' +'PARAMETERFILE' +'PARAMETERS' +'PARAM' +'PARENT' +'PARENT_LEVEL_NAME' +'PARENT_UNIQUE_NAME' +'PARITY' +'PARQUET' +'PARTIAL_JOIN' +'PARTIALLY' +'PARTIAL' +'PARTIAL_ROLLUP_PUSHDOWN' +'PARTITION_HASH' +'PARTITION_LIST' +'PARTITION' +'PARTITION_RANGE' +'PARTITIONS' +'PART$NUM$INST' +'PASSING' +'PASSWORD_GRACE_TIME' +'PASSWORD_LIFE_TIME' +'PASSWORD_LOCK_TIME' +'PASSWORD' +'PASSWORD_REUSE_MAX' +'PASSWORD_REUSE_TIME' +'PASSWORD_ROLLOVER_TIME' +'PASSWORD_VERIFY_FUNCTION' +'PAST' +'PATCH' +'PATH' +'PATH_PREFIX' +'PATHS' +'PATTERN' +'PBL_HS_BEGIN' +'PBL_HS_END' +'PCTFREE' +'PCTINCREASE' +'PCTTHRESHOLD' +'PCTUSED' +'PCTVERSION' +'PENDING' +null +null +null +'PERCENT' +'PERCENT_RANKM' +null +null +null +null +null +'PERFORMANCE' +'PERIOD' +'PERMANENT' +'PERMISSION' +'PERMUTE' +'PER' +'PFILE' +'PHYSICAL' +'PIKEY' +'PIPELINED' +'PIPE' +'PIV_GB' +'PIVOT' +'PIV_SSF' +'PLACE_DISTINCT' +'PLACE_GROUP_BY' +'PLAN' +'PLSCOPE_SETTINGS' +'PLS_INTEGER' +'PLSQL_CCFLAGS' +'PLSQL_CODE_TYPE' +'PLSQL_DEBUG' +'PLSQL_OPTIMIZE_LEVEL' +'PLSQL_WARNINGS' +'PLUGGABLE' +'PMEM' +'POINT' +'POLICY' +'POOL_16K' +'POOL_2K' +'POOL_32K' +'POOL_4K' +'POOL_8K' +'POSITION' +'POSITIVEN' +'POSITIVE' +'POST_TRANSACTION' +'POWERMULTISET_BY_CARDINALITY' +'POWERMULTISET' +'POWER' +'PQ_CONCURRENT_UNION' +'PQ_DISTRIBUTE' +'PQ_DISTRIBUTE_WINDOW' +'PQ_FILTER' +'PQ_MAP' +'PQ_NOMAP' +'PQ_REPLICATE' +'PQ_SKEW' +'PRAGMA' +'PREBUILT' +'PRECEDES' +'PRECEDING' +'PRECISION' +'PRECOMPUTE_SUBQUERY' +'PREDICATE_REORDERS' +'PRELOAD' +'PREPARE' +'PREPROCESSOR' +'PRESENTNNV' +'PRESENT' +'PRESENTV' +'PRESERVE_OID' +'PRESERVE' +'PRETTY' +'PREVIOUS' +'PREV' +'PRIMARY' +'PRINTBLOBTOCLOB' +'PRIORITY' +'PRIOR' +'PRIVATE' +'PRIVATE_SGA' +'PRIVILEGED' +'PRIVILEGE' +'PRIVILEGES' +'PROCEDURAL' +'PROCEDURE' +'PROCESS' +'PROFILE' +'PROGRAM' +'PROJECT' +'PROPAGATE' +'PROPERTY' +'PROTECTED' +'PROTECTION' +'PROTOCOL' +'PROXY' +'PRUNING' +'PUBLIC' +'PULL_PRED' +'PURGE' +'PUSH_PRED' +'PUSH_SUBQ' +'PX_FAULT_TOLERANCE' +'PX_GRANULE' +'PX_JOIN_FILTER' +'QB_NAME' +'QUARTERS' +'QUERY_BLOCK' +'QUERY' +'QUEUE_CURR' +'QUEUE' +'QUEUE_ROWP' +'QUIESCE' +'QUORUM' +'QUOTA' +'QUOTAGROUP' +'RAISE' +'RANDOM_LOCAL' +'RANDOM' +'RANGE' +'RANKM' +'RAPIDLY' +'RAW' +'RAWTOHEX' +'RAWTONHEX' +'RBA' +'RBO_OUTLINE' +'RCFILE' +'RDBA' +'READ' +'READS' +'READSIZE' +'REALM' +'REAL' +'REBALANCE' +'REBUILD' +'RECORD' +'RECORDS' +'RECORDS_PER_BLOCK' +'RECOVERABLE' +'RECOVER' +'RECOVERY' +'RECYCLEBIN' +'RECYCLE' +'REDACTION' +'REDEFINE' +'REDO' +'REDUCED' +'REDUNDANCY' +'REF_CASCADE_CURSOR' +'REFERENCED' +'REFERENCE' +'REFERENCES' +'REFERENCING' +'REF' +'REFRESH' +'REFTOHEX' +'REGEXP_COUNT' +'REGEXP_INSTR' +'REGEXP_LIKE' +'REGEXP_REPLACE' +'REGEXP_SUBSTR' +'REGISTER' +'REGR_AVGX' +'REGR_AVGY' +'REGR_COUNT' +'REGR_INTERCEPT' +'REGR_R2' +'REGR_SLOPE' +'REGR_SXX' +'REGR_SXY' +'REGR_SYY' +'REGULAR' +'REJECT' +'REKEY' +'RELATIONAL' +'RELIES_ON' +'RELOCATE' +'RELY' +'REMAINDER' +'REMOTE' +'REMOTE_MAPPED' +'REMOVE' +'RENAME' +'REPAIR' +'REPEAT' +'REPLACE' +'REPLICATION' +'REQUIRED' +'RESETLOGS' +'RESET' +'RESIZE' +'RESOLVE' +'RESOLVER' +'RESOURCE' +'RESPECT' +'RESTART' +'RESTORE_AS_INTERVALS' +'RESTORE' +'RESTRICT_ALL_REF_CONS' +'RESTRICTED' +'RESTRICT_REFERENCES' +'RESTRICT' +'RESULT_CACHE' +'RESULT' +'RESUMABLE' +'RESUME' +'RETENTION' +'RETRY_ON_ROW_CHANGE' +'RETURNING' +'RETURN' +'REUSE' +'REVERSE' +'REVOKE' +'REWRITE_OR_ERROR' +'REWRITE' +'RIGHT' +'ROLE' +'ROLESET' +'ROLES' +'ROLLBACK' +'ROLLING' +'ROLLUP' +'ROWDEPENDENCIES' +'ROWID_MAPPING_TABLE' +'ROWID' +'ROWIDTOCHAR' +'ROWIDTONCHAR' +'ROW_LENGTH' +'ROWNUM' +'ROW' +'ROWS' +'RPAD' +'RTRIM' +'RULE' +'RULES' +'RUNNING' +'SALT' +'SAMPLE' +'SAVE_AS_INTERVALS' +'SAVEPOINT' +'SAVE' +'SB4' +'SCALE_ROWS' +'SCALE' +'SCAN_INSTANCES' +'SCAN' +'SCHEDULER' +'SCHEMACHECK' +'SCHEMA' +'SCN_ASCENDING' +'SCN' +'SCOPE' +'SCRUB' +'SD_ALL' +'SD_INHIBIT' +'SDO_GEOM_MBR' +'SDO_GEOMETRY' +'SD_SHOW' +'SEARCH' +'SECOND' +'SECONDS' +'SECRET' +'SECUREFILE_DBA' +'SECUREFILE' +'SECURITY' +'SEED' +'SEG_BLOCK' +'SEG_FILE' +'SEGMENT' +'SELECTIVITY' +'SELECT' +'SELF' +'SEMIJOIN_DRIVER' +'SEMIJOIN' +'SEMI_TO_INNER' +'SEQUENCED' +'SEQUENCE' +'SEQUENCEFILE' +'SEQUENTIAL' +'SEQ' +'SERDE' +'SERDEPROPERTIES' +'SERIALIZABLE' +'SERIALLY_REUSABLE' +'SERIAL' +'SERVERERROR' +'SERVICE_NAME_CONVERT' +'SERVICE' +'SERVICES' +'SESSION_CACHED_CURSORS' +'SESSION' +'SESSIONS_PER_USER' +'SESSIONTIMEZONE' +'SESSIONTZNAME' +'SET' +'SETS' +'SETTINGS' +'SET_TO_JOIN' +'SEVERE' +'SHARD' +'SHARDSPACE' +'SHARED_POOL' +'SHARED' +'SHARE' +'SHARING' +'SHELFLIFE' +'SHOW' +'SHRINK' +'SHUTDOWN' +'SIBLINGS' +'SID' +'SITE' +'SIGNAL_COMPONENT' +'SIGNAL_FUNCTION' +'SIGN' +'SIGNTYPE' +'SIMPLE_INTEGER' +'SIMPLE' +'SINGLE' +'SINGLETASK' +'SINH' +'SIN' +'SIZE' +'SIZES' +'SKIP_EXT_OPTIMIZER' +'SKIP' +'SKIP_UNQ_UNUSABLE_IDX' +'SKIP_UNUSABLE_INDEXES' +'SMALLFILE' +'SMALLINT' +'SNAPSHOT' +'SOME' +'SORT' +'SOUNDEX' +'SOURCE_FILE_DIRECTORY' +'SOURCE_FILE_NAME_CONVERT' +'SOURCE' +'SPACE' +'SPECIFICATION' +'SPFILE' +'SPLIT' +'SPREADSHEET' +'SQLDATA' +'SQLERROR' +'SQLLDR' +'SQL' +null +'SQL_MACRO' +'SQL_TRACE' +'SQL_TRANSLATION_PROFILE' +'SQRT' +'STALE' +'STANDALONE' +'STANDARD' +'STANDARD_HASH' +'STANDBY_MAX_DATA_DELAY' +'STANDBYS' +'STANDBY' +'STAR' +'STAR_TRANSFORMATION' +'START' +'STARTOF' +'STARTUP' +'STATEMENT_ID' +'STATEMENT_QUEUING' +'STATEMENTS' +'STATEMENT' +'STATE' +'STATIC' +'STATISTICS' +'STATS_BINOMIAL_TEST' +'STATS_CROSSTAB' +'STATS_F_TEST' +'STATS_KS_TEST' +'STATS_MODE' +'STATS_MW_TEST' +'STATS_ONE_WAY_ANOVA' +'STATS_T_TEST_INDEP' +'STATS_T_TEST_INDEPU' +'STATS_T_TEST_ONE' +'STATS_T_TEST_PAIRED' +'STATS_WSR_TEST' +'STDDEV_POP' +'STDDEV_SAMP' +'STOP' +'STORAGE' +'STORE' +'STREAMS' +'STREAM' +'STRICT' +'STRING' +'STRIPE_COLUMNS' +'STRIPE_WIDTH' +'STRIP' +'STRUCTURE' +'SUBMULTISET' +'SUBPARTITION_REL' +'SUBPARTITIONS' +'SUBPARTITION' +'SUBQUERIES' +'SUBQUERY_PRUNING' +'SUBSCRIBE' +'SUBSET' +'SUBSTITUTABLE' +'SUBSTR2' +'SUBSTR4' +'SUBSTRB' +'SUBSTRC' +'SUBTYPE' +'SUCCESSFUL' +'SUCCESS' +'SUMMARY' +'SUPPLEMENTAL' +'SUSPEND' +'SWAP_JOIN_INPUTS' +'SWITCHOVER' +'SWITCH' +'SYNCHRONOUS' +'SYNC' +'SYNONYM' +'SYS' +'SYSASM' +'SYS_AUDIT' +'SYSAUX' +'SYSBACKUP' +'SYS_CHECKACL' +'SYS_CHECK_PRIVILEGE' +'SYS_CONNECT_BY_PATH' +'SYS_CONTEXT' +'SYSDATE' +'SYSDBA' +'SYS_DBURIGEN' +'SYSDG' +'SYS_DL_CURSOR' +'SYS_DM_RXFORM_CHR' +'SYS_DM_RXFORM_NUM' +'SYS_DOM_COMPARE' +'SYS_DST_PRIM2SEC' +'SYS_DST_SEC2PRIM' +'SYS_ET_BFILE_TO_RAW' +'SYS_ET_BLOB_TO_IMAGE' +'SYS_ET_IMAGE_TO_BLOB' +'SYS_ET_RAW_TO_BFILE' +'SYS_EXTPDTXT' +'SYS_EXTRACT_UTC' +'SYS_FBT_INSDEL' +'SYS_FILTER_ACLS' +'SYS_FNMATCHES' +'SYS_FNREPLACE' +'SYS_GET_ACLIDS' +'SYS_GET_COL_ACLIDS' +'SYS_GET_PRIVILEGES' +'SYS_GETTOKENID' +'SYS_GETXTIVAL' +'SYS_GUID' +'SYSGUID' +'SYSKM' +'SYS_MAKE_XMLNODEID' +'SYS_MAKEXML' +'SYS_MKXMLATTR' +'SYS_MKXTI' +'SYSOBJ' +'SYS_OP_ADT2BIN' +'SYS_OP_ADTCONS' +'SYS_OP_ALSCRVAL' +'SYS_OP_ATG' +'SYS_OP_BIN2ADT' +'SYS_OP_BITVEC' +'SYS_OP_BL2R' +'SYS_OP_BLOOM_FILTER_LIST' +'SYS_OP_BLOOM_FILTER' +'SYS_OP_C2C' +'SYS_OP_CAST' +'SYS_OP_CEG' +'SYS_OP_CL2C' +'SYS_OP_COMBINED_HASH' +'SYS_OP_COMP' +'SYS_OP_CONVERT' +'SYS_OP_COUNTCHG' +'SYS_OP_CSCONV' +'SYS_OP_CSCONVTEST' +'SYS_OP_CSR' +'SYS_OP_CSX_PATCH' +'SYS_OP_CYCLED_SEQ' +'SYS_OP_DECOMP' +'SYS_OP_DESCEND' +'SYS_OP_DISTINCT' +'SYS_OP_DRA' +'SYS_OP_DUMP' +'SYS_OP_DV_CHECK' +'SYS_OP_ENFORCE_NOT_NULL$' +'SYSOPER' +'SYS_OP_EXTRACT' +'SYS_OP_GROUPING' +'SYS_OP_GUID' +'SYS_OP_HASH' +'SYS_OP_IIX' +'SYS_OP_ITR' +'SYS_OP_KEY_VECTOR_CREATE' +'SYS_OP_KEY_VECTOR_FILTER_LIST' +'SYS_OP_KEY_VECTOR_FILTER' +'SYS_OP_KEY_VECTOR_SUCCEEDED' +'SYS_OP_KEY_VECTOR_USE' +'SYS_OP_LBID' +'SYS_OP_LOBLOC2BLOB' +'SYS_OP_LOBLOC2CLOB' +'SYS_OP_LOBLOC2ID' +'SYS_OP_LOBLOC2NCLOB' +'SYS_OP_LOBLOC2TYP' +'SYS_OP_LSVI' +'SYS_OP_LVL' +'SYS_OP_MAKEOID' +'SYS_OP_MAP_NONNULL' +'SYS_OP_MSR' +'SYS_OP_NICOMBINE' +'SYS_OP_NIEXTRACT' +'SYS_OP_NII' +'SYS_OP_NIX' +'SYS_OP_NOEXPAND' +'SYS_OP_NTCIMG$' +'SYS_OP_NUMTORAW' +'SYS_OP_OIDVALUE' +'SYS_OP_OPNSIZE' +'SYS_OP_PAR_1' +'SYS_OP_PARGID_1' +'SYS_OP_PARGID' +'SYS_OP_PAR' +'SYS_OP_PART_ID' +'SYS_OP_PIVOT' +'SYS_OP_R2O' +'SYS_OP_RAWTONUM' +'SYS_OP_RDTM' +'SYS_OP_REF' +'SYS_OP_RMTD' +'SYS_OP_ROWIDTOOBJ' +'SYS_OP_RPB' +'SYS_OPTLOBPRBSC' +'SYS_OP_TOSETID' +'SYS_OP_TPR' +'SYS_OP_TRTB' +'SYS_OPTXICMP' +'SYS_OPTXQCASTASNQ' +'SYS_OP_UNDESCEND' +'SYS_OP_VECAND' +'SYS_OP_VECBIT' +'SYS_OP_VECOR' +'SYS_OP_VECXOR' +'SYS_OP_VERSION' +'SYS_OP_VREF' +'SYS_OP_VVD' +'SYS_OP_XMLCONS_FOR_CSX' +'SYS_OP_XPTHATG' +'SYS_OP_XPTHIDX' +'SYS_OP_XPTHOP' +'SYS_OP_XTXT2SQLT' +'SYS_OP_ZONE_ID' +'SYS_ORDERKEY_DEPTH' +'SYS_ORDERKEY_MAXCHILD' +'SYS_ORDERKEY_PARENT' +'SYS_PARALLEL_TXN' +'SYS_PATHID_IS_ATTR' +'SYS_PATHID_IS_NMSPC' +'SYS_PATHID_LASTNAME' +'SYS_PATHID_LASTNMSPC' +'SYS_PATH_REVERSE' +'SYS_PXQEXTRACT' +'SYS_RAW_TO_XSID' +'SYS_RID_ORDER' +'SYS_ROW_DELTA' +'SYS_SC_2_XMLT' +'SYS_SYNRCIREDO' +'SYSTEM_DEFINED' +'SYSTEM' +'SYSTIMESTAMP' +'SYS_TYPEID' +'SYS_UMAKEXML' +'SYS_XMLANALYZE' +'SYS_XMLCONTAINS' +'SYS_XMLCONV' +'SYS_XMLEXNSURI' +'SYS_XMLGEN' +'SYS_XMLI_LOC_ISNODE' +'SYS_XMLI_LOC_ISTEXT' +'SYS_XMLINSTR' +'SYS_XMLLOCATOR_GETSVAL' +'SYS_XMLNODEID_GETCID' +'SYS_XMLNODEID_GETLOCATOR' +'SYS_XMLNODEID_GETOKEY' +'SYS_XMLNODEID_GETPATHID' +'SYS_XMLNODEID_GETPTRID' +'SYS_XMLNODEID_GETRID' +'SYS_XMLNODEID_GETSVAL' +'SYS_XMLNODEID_GETTID' +'SYS_XMLNODEID' +'SYS_XMLT_2_SC' +'SYS_XMLTRANSLATE' +'SYS_XMLTYPE2SQL' +'SYS_XQ_ASQLCNV' +'SYS_XQ_ATOMCNVCHK' +'SYS_XQBASEURI' +'SYS_XQCASTABLEERRH' +'SYS_XQCODEP2STR' +'SYS_XQCODEPEQ' +'SYS_XQCON2SEQ' +'SYS_XQCONCAT' +'SYS_XQDELETE' +'SYS_XQDFLTCOLATION' +'SYS_XQDOC' +'SYS_XQDOCURI' +'SYS_XQDURDIV' +'SYS_XQED4URI' +'SYS_XQENDSWITH' +'SYS_XQERRH' +'SYS_XQERR' +'SYS_XQESHTMLURI' +'SYS_XQEXLOBVAL' +'SYS_XQEXSTWRP' +'SYS_XQEXTRACT' +'SYS_XQEXTRREF' +'SYS_XQEXVAL' +'SYS_XQFB2STR' +'SYS_XQFNBOOL' +'SYS_XQFNCMP' +'SYS_XQFNDATIM' +'SYS_XQFNLNAME' +'SYS_XQFNNM' +'SYS_XQFNNSURI' +'SYS_XQFNPREDTRUTH' +'SYS_XQFNQNM' +'SYS_XQFNROOT' +'SYS_XQFORMATNUM' +'SYS_XQFTCONTAIN' +'SYS_XQFUNCR' +'SYS_XQGETCONTENT' +'SYS_XQINDXOF' +'SYS_XQINSERT' +'SYS_XQINSPFX' +'SYS_XQIRI2URI' +'SYS_XQLANG' +'SYS_XQLLNMFRMQNM' +'SYS_XQMKNODEREF' +'SYS_XQNILLED' +'SYS_XQNODENAME' +'SYS_XQNORMSPACE' +'SYS_XQNORMUCODE' +'SYS_XQ_NRNG' +'SYS_XQNSP4PFX' +'SYS_XQNSPFRMQNM' +'SYS_XQPFXFRMQNM' +'SYS_XQ_PKSQL2XML' +'SYS_XQPOLYABS' +'SYS_XQPOLYADD' +'SYS_XQPOLYCEL' +'SYS_XQPOLYCSTBL' +'SYS_XQPOLYCST' +'SYS_XQPOLYDIV' +'SYS_XQPOLYFLR' +'SYS_XQPOLYMOD' +'SYS_XQPOLYMUL' +'SYS_XQPOLYRND' +'SYS_XQPOLYSQRT' +'SYS_XQPOLYSUB' +'SYS_XQPOLYUMUS' +'SYS_XQPOLYUPLS' +'SYS_XQPOLYVEQ' +'SYS_XQPOLYVGE' +'SYS_XQPOLYVGT' +'SYS_XQPOLYVLE' +'SYS_XQPOLYVLT' +'SYS_XQPOLYVNE' +'SYS_XQREF2VAL' +'SYS_XQRENAME' +'SYS_XQREPLACE' +'SYS_XQRESVURI' +'SYS_XQRNDHALF2EVN' +'SYS_XQRSLVQNM' +'SYS_XQRYENVPGET' +'SYS_XQRYVARGET' +'SYS_XQRYWRP' +'SYS_XQSEQ2CON4XC' +'SYS_XQSEQ2CON' +'SYS_XQSEQDEEPEQ' +'SYS_XQSEQINSB' +'SYS_XQSEQRM' +'SYS_XQSEQRVS' +'SYS_XQSEQSUB' +'SYS_XQSEQTYPMATCH' +'SYS_XQSTARTSWITH' +'SYS_XQSTATBURI' +'SYS_XQSTR2CODEP' +'SYS_XQSTRJOIN' +'SYS_XQSUBSTRAFT' +'SYS_XQSUBSTRBEF' +'SYS_XQTOKENIZE' +'SYS_XQTREATAS' +'SYS_XQ_UPKXML2SQL' +'SYS_XQXFORM' +'SYS_XSID_TO_RAW' +'SYS_ZMAP_FILTER' +'SYS_ZMAP_REFRESH' +'T' +'TABLE_LOOKUP_BY_NL' +'TABLESPACE_NO' +'TABLESPACE' +'TABLES' +'TABLE_STATS' +'TABLE' +'TABNO' +'TAG' +'TANH' +'TAN' +'TBL$OR$IDX$PART$NUM' +'TEMPFILE' +'TEMPLATE' +'TEMPLATE_TABLE' +'TEMPORARY' +'TEMP_TABLE' +'TERMINATED' +'TEST' +'TEXT' +'TEXTFILE' +'THAN' +'THEN' +'THE' +'THESE' +'THREAD' +'THROUGH' +'TIER' +'TIES' +'TIMEOUT' +'TIMESTAMP_LTZ_UNCONSTRAINED' +'TIMESTAMP' +'TIMESTAMP_TZ_UNCONSTRAINED' +'TIMESTAMP_UNCONSTRAINED' +'TIMES' +'TIME' +'TIMEZONE' +'TIMEZONE_ABBR' +'TIMEZONE_HOUR' +'TIMEZONE_MINUTE' +'TIMEZONE_OFFSET' +'TIMEZONE_REGION' +'TIME_ZONE' +'TIMING' +'TINYINT' +'TIV_GB' +'TIV_SSF' +'TO_ACLID' +'TO_BINARY_DOUBLE' +'TO_BINARY_FLOAT' +'TO_BLOB' +'TO_CLOB' +'TO_DSINTERVAL' +'TO_LOB' +'TO_MULTI_BYTE' +'TO_NCHAR' +'TO_NCLOB' +'TO_NUMBER' +'TOPLEVEL' +'TO_SINGLE_BYTE' +'TO_TIMESTAMP' +'TO_TIMESTAMP_TZ' +'TO_TIME' +'TO_TIME_TZ' +'TO' +'TO_YMINTERVAL' +'TRACE' +'TRACING' +'TRACKING' +'TRAILING' +'TRANSACTION' +'TRANSFORM' +'TRANSFORMS' +'TRANSFORM_DISTINCT_AGG' +'TRANSITIONAL' +'TRANSITION' +'TRANSLATE' +'TRANSLATION' +'TREAT' +'TRIGGERS' +'TRIGGER' +'TRUE' +'TRUNCATE' +'TRUNC' +'TRUSTED' +'TRUST' +'TUNING' +'TX' +'TYPES' +'TYPE' +'TZ_OFFSET' +'UB2' +'UBA' +'UCS2' +'UDF' +'UID' +'UNARCHIVED' +'UNBOUNDED' +'UNBOUND' +'UNCONDITIONAL' +'UNDER' +'UNDO' +'UNDROP' +'UNIFORM' +'UNION' +'UNIONTYPE' +'UNIQUE' +'UNISTR' +'UNLIMITED' +'UNLOAD' +'UNLOCK' +'UNMATCHED' +'UNNEST_INNERJ_DISTINCT_VIEW' +'UNNEST_NOSEMIJ_NODISTINCTVIEW' +'UNNEST_SEMIJ_VIEW' +'UNNEST' +'UNPACKED' +'UNPIVOT' +'UNPLUG' +'UNPROTECTED' +'UNQUIESCE' +'UNRECOVERABLE' +'UNRESTRICTED' +'UNSIGNED' +'UNSUBSCRIBE' +'UNTIL' +'UNUSABLE' +'UNUSED' +'UPDATABLE' +'UPDATED' +'UPDATE' +'UPDATEXML' +'UPD_INDEXES' +'UPD_JOININDEX' +'UPGRADE' +'UPPER' +'UPSERT' +'UROWID' +'USABLE' +'USAGE' +'USE_ANTI' +'USE_CONCAT' +'USE_CUBE' +'USE_HASH_AGGREGATION' +'USE_HASH_GBY_FOR_PUSHDOWN' +'USE_HASH' +'USE_HIDDEN_PARTITIONS' +'USE_INVISIBLE_INDEXES' +'USE_MERGE_CARTESIAN' +'USE_MERGE' +'USE_NL' +'USE_NL_WITH_INDEX' +'USE_PRIVATE_OUTLINES' +'USER_DATA' +'USER_DEFINED' +'USERENV' +'USERGROUP' +'USER_RECYCLEBIN' +'USERS' +'USER_TABLESPACES' +'USER' +'USE_SEMI' +'USE_STORED_OUTLINES' +'USE_TTT_FOR_GSETS' +'USE' +'USE_VECTOR_AGGREGATION' +'USE_WEAK_NAME_RESL' +'USING_NO_EXPAND' +'USING_NLS_COMP' +'USING' +'UTF16BE' +'UTF16LE' +'UTF32' +'UTF8' +'V1' +'V2' +'VALIDATE' +'VALIDATE_CONVERSION' +'VALIDATION' +'VALID_TIME_END' +'VALUES' +'VALUE' +'VARCHAR2' +'VARCHAR' +'VARCHARC' +'VARIABLE' +'VARRAW' +'VARRAWC' +'VAR_POP' +'VARRAYS' +'VARRAY' +'VAR_SAMP' +'VARYING' +'VECTOR_READ_TRACE' +'VECTOR_READ' +'VECTOR_TRANSFORM_DIMS' +'VECTOR_TRANSFORM_FACT' +'VECTOR_TRANSFORM' +'VERIFIER' +'VERIFY' +'VERSIONING' +'VERSIONS_ENDSCN' +'VERSIONS_ENDTIME' +'VERSIONS_OPERATION' +'VERSIONS_STARTSCN' +'VERSIONS_STARTTIME' +'VERSIONS' +'VERSIONS_XID' +'VERSION' +'VIEW' +'VIOLATION' +'VIRTUAL' +'VISIBILITY' +'VISIBLE' +'VOLUME' +'VSIZE' +'WAIT' +'WALLET' +'WARNING' +'WEEKS' +'WEEK' +'WELLFORMED' +'WHENEVER' +'WHEN' +'WHERE' +'WHILE' +'WHITESPACE' +'WIDTH_BUCKET' +'WITHIN' +'WITHOUT' +'WITH_PLSQL' +'WITH' +'WORK' +'WORKERID' +'WRAPPED' +'WRAPPER' +'WRITE' +'XDB_FASTPATH_INSERT' +'XDB' +'X_DYN_PRUNE' +'XID' +'XML2OBJECT' +'XMLAGG' +'XMLATTRIBUTES' +'XMLCAST' +'XMLCDATA' +'XMLCOLATTVAL' +'XMLCOMMENT' +'XMLCONCAT' +'XMLDIFF' +'XML_DML_RWT_STMT' +'XMLELEMENT' +'XMLEXISTS2' +'XMLEXISTS' +'XMLFOREST' +'XMLINDEX' +'XMLINDEX_REWRITE_IN_SELECT' +'XMLINDEX_REWRITE' +'XMLINDEX_SEL_IDX_TBL' +'XMLISNODE' +'XMLISVALID' +'XMLNAMESPACES' +'XMLPARSE' +'XMLPATCH' +'XMLPI' +'XMLQUERYVAL' +'XMLQUERY' +'XMLROOT' +'XMLSCHEMA' +'XMLSERIALIZE' +'XMLTABLE' +'XMLTAG' +'XMLTRANSFORMBLOB' +'XMLTRANSFORM' +'XMLTYPE' +'XML' +'XPATHTABLE' +'XS_SYS_CONTEXT' +'XS' +'XTRANSPORT' +'YEARS' +'YEAR' +'YEAR_TO_MONTH' +'YES' +'YMINTERVAL_UNCONSTRAINED' +'ZONEMAP' +'ZONE' +'ZONED' +'PREDICTION' +'PREDICTION_BOUNDS' +'PREDICTION_COST' +'PREDICTION_DETAILS' +'PREDICTION_PROBABILITY' +'PREDICTION_SET' +'BLOCKCHAIN' +'COLLATE' +'COLLATION' +'DEFINITION' +'DUPLICATED' +'EXTENDED' +'HASHING' +'IDLE' +'IMMUTABLE' +'ORACLE_DATAPUMP' +'ORACLE_HDFS' +'ORACLE_HIVE' +'ORACLE_LOADER' +'"SHA2_512"' +'SHARDED' +'"V1"' +'ISOLATE' +'ROOT' +'UNITE' +'ALGORITHM' +'CUME_DIST' +'DENSE_RANK' +'LISTAGG' +'PERCENT_RANK' +'PERCENTILE_CONT' +'PERCENTILE_DISC' +'RANK' +'AVG' +'CORR' +'COVAR_' +'DECODE' +'LAG' +'LAG_DIFF' +'LAG_DIFF_PERCENT' +'LEAD' +'MAX' +'MEDIAN' +'MEMOPTIMIZE' +'MIN' +'NTILE' +'NVL' +'RATIO_TO_REPORT' +'REGR_' +'ROUND' +'ROW_NUMBER' +'SUBSTR' +'TO_CHAR' +'TRIM' +'SUM' +'STDDEV' +'VAR_' +'VARIANCE' +'LEAST' +'GREATEST' +'TO_DATE' +'CHARSETID' +'CHARSETFORM' +'DURATION' +'EXTEND' +'MAXLEN' +'PERSISTABLE' +'POLYMORPHIC' +'STRUCT' +'TDO' +'WM_CONCAT' +null +null +null +'..' +'.' +null +null +null +null +'%' +'&' +'(' +')' +'**' +'*' +'+' +'-' +',' +'/' +'@' +':=' +'#' +'{' +'}' +'\'' +null +null +'^' +'~' +'!' +'>' +'<' +':' +';' +'|' +'=' +'[' +']' +'_' +null +null +null +null +null +null +null +null + +token symbolic names: +null +ABORT +ABS +ABSENT +ACCESS +ACCESSED +ACCESSIBLE +ACCOUNT +ACL +ACOS +ACROSS +ACTION +ACTIONS +ACTIVATE +ACTIVE +ACTIVE_COMPONENT +ACTIVE_DATA +ACTIVE_FUNCTION +ACTIVE_TAG +ACTIVITY +ADAPTIVE_PLAN +ADD +ADD_COLUMN +ADD_GROUP +ADD_MONTHS +ADJ_DATE +ADMIN +ADMINISTER +ADMINISTRATOR +ADVANCED +ADVISE +ADVISOR +AFD_DISKSTRING +AFTER +AGENT +AGGREGATE +A_LETTER +ALIAS +ALL +ALLOCATE +ALLOW +ALL_ROWS +ALTER +ALTERNATE +ALWAYS +ANALYTIC +ANALYZE +ANCESTOR +ANCILLARY +AND +AND_EQUAL +ANNOTATIONS +ANOMALY +ANSI_REARCH +ANTIJOIN +ANY +ANYSCHEMA +APPEND +APPENDCHILDXML +APPEND_VALUES +APPLICATION +APPLY +APPROX_COUNT_DISTINCT +ARCHIVAL +ARCHIVE +ARCHIVED +ARCHIVELOG +ARE +ARRAY +AS +ASC +ASCII +ASCIISTR +ASIN +ASIS +ASSEMBLY +ASSIGN +ASSOCIATE +ASYNC +ASYNCHRONOUS +ATAN2 +ATAN +AT +ATTRIBUTE +ATTRIBUTES +AUDIT +AUTHENTICATED +AUTHENTICATION +AUTHID +AUTHORIZATION +AUTOALLOCATE +AUTO +AUTOBACKUP +AUTOEXTEND +AUTO_LOGIN +AUTOMATIC +AUTONOMOUS_TRANSACTION +AUTO_REOPTIMIZE +AVAILABILITY +AVRO +BACKGROUND +BACKINGFILE +BACKUP +BACKUPS +BACKUPSET +BADFILE +BASIC +BASICFILE +BATCH +BATCHSIZE +BATCH_TABLE_ACCESS_BY_ROWID +BECOME +BEFORE +BEGIN +BEGINNING +BEGIN_OUTLINE_DATA +BEHALF +BEQUEATH +BETWEEN +BFILE +BFILENAME +BIG +BIGFILE +BIGINT +BINARY +BINARY_DOUBLE +BINARY_DOUBLE_INFINITY +BINARY_DOUBLE_NAN +BINARY_FLOAT +BINARY_FLOAT_INFINITY +BINARY_FLOAT_NAN +BINARY_INTEGER +BIND_AWARE +BINDING +BIN_TO_NUM +BITAND +BITMAP_AND +BITMAP +BITMAPS +BITMAP_TREE +BITS +BLANKS +BLOB +BLOCK +BLOCK_RANGE +BLOCKS +BLOCKSIZE +BODY +BOOLEAN +BOTH +BOUND +BRANCH +BREADTH +BROADCAST +BSON +BUFFER +BUFFER_CACHE +BUFFER_POOL +BUILD +BULK +BY +BYPASS_RECURSIVE_CHECK +BYPASS_UJVC +BYTE +BYTES +BYTEORDERMARK +CACHE +CACHE_CB +CACHE_INSTANCES +CACHE_TEMP_TABLE +CACHING +CALCULATED +CALLBACK +CALL +CANCEL +CANONICAL +CAPACITY +CAPTION +CARDINALITY +CASCADE +CASE +CAST +CASESENSITIVE +CATEGORY +CDBDEFAULT +CEIL +CELL_FLASH_CACHE +CERTIFICATE +CFILE +CHAINED +CHANGE +CHANGETRACKING +CHANGE_DUPKEY_ERROR_INDEX +CHARACTER +CHARACTERS +CHARACTERSET +CHAR +CHAR_CS +CHARTOROWID +CHECK_ACL_REWRITE +CHECK +CHECKPOINT +CHILD +CHOOSE +CHR +CHUNK +CLASS +CLASSIFICATION +CLASSIFIER +CLAUSE +CLEAN +CLEANUP +CLEAR +C_LETTER +CLIENT +CLOB +CLONE +CLOSE_CACHED_OPEN_CURSORS +CLOSE +CLUSTER_BY_ROWID +CLUSTER +CLUSTER_DETAILS +CLUSTER_DISTANCE +CLUSTER_ID +CLUSTERING +CLUSTERING_FACTOR +CLUSTER_PROBABILITY +CLUSTER_SET +COALESCE +COALESCE_SQ +COARSE +CO_AUTH_IND +COLD +COLLECT +COLLECTION +COLUMNAR +COLUMN_AUTH_INDICATOR +COLUMN +COLUMNS +COLUMN_STATS +COLUMN_VALUE +COMMENT +COMMIT +COMMITTED +COMMON +COMMON_DATA +COMPACT +COMPATIBLE +COMPATIBILITY +COMPILE +COMPLETE +COMPLIANCE +COMPONENT +COMPONENTS +COMPOSE +COMPOSITE +COMPOSITE_LIMIT +COMPOUND +COMPRESS +COMPRESSION +COMPUTE +CONCAT +CON_DBID_TO_ID +CONDITIONAL +CONDITION +CONFIRM +CONFORMING +CON_GUID_TO_ID +CON_ID +CON_NAME_TO_ID +CONNECT_BY_CB_WHR_ONLY +CONNECT_BY_COMBINE_SW +CONNECT_BY_COST_BASED +CONNECT_BY_ELIM_DUPS +CONNECT_BY_FILTERING +CONNECT_BY_ISCYCLE +CONNECT_BY_ISLEAF +CONNECT_BY_ROOT +CONNECT +CONNECT_TIME +CONSIDER +CONSISTENT +CONSTANT +CONST +CONSTRAINT +CONSTRAINTS +CONSTRUCTOR +CONTAINER +CONTAINERS +CONTAINERS_DEFAULT +CONTAINER_DATA +CONTAINER_MAP +CONTENT +CONTENTS +CONTEXT +CONTINUE +CONTROLFILE +CON_UID_TO_ID +CONVERT +CONVERSION +COOKIE +COPY +CORR_K +CORR_S +CORRUPTION +CORRUPT_XID_ALL +CORRUPT_XID +COS +COSH +COST +COST_XML_QUERY_REWRITE +COUNT +COUNTED +COVAR_POP +COVAR_SAMP +CPU_COSTING +CPU_PER_CALL +CPU_PER_SESSION +CRASH +CREATE +CREATE_FILE_DEST +CREATE_STORED_OUTLINES +CREATION +CREDENTIAL +CRITICAL +CROSS +CROSSEDITION +CSCONVERT +CSV +CUBE_AJ +CUBE +CUBE_GB +CUBE_SJ +CUME_DISTM +CURRENT +CURRENT_DATE +CURRENT_SCHEMA +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_USER +CURRENTV +CURSOR +CURSOR_SHARING_EXACT +CURSOR_SPECIFIC_SEGMENT +CUSTOMDATUM +CV +CYCLE +DANGLING +DATABASE +DATA +DATAFILE +DATAFILES +DATAGUARDCONFIG +DATAMOVEMENT +DATAOBJNO +DATAOBJ_TO_MAT_PARTITION +DATAOBJ_TO_PARTITION +DATAPUMP +DATA_SECURITY_REWRITE_LIMIT +DATE +DATE_CACHE +DATE_FORMAT +DATE_MODE +DAY +DAYS +DAY_TO_SECOND +DBA +DBA_RECYCLEBIN +DBLINK +DBMS_STATS +DB_ROLE_CHANGE +DBTIMEZONE +DB_UNIQUE_NAME +DB_VERSION +DDL +DEALLOCATE +DEBUG +DEBUGGER +DEC +DECIMAL +DECLARE +DECOMPOSE +DECORRELATE +DECR +DECREMENT +DECRYPT +DEDUPLICATE +DEFAULT +DEFAULTIF +DEFAULTS +DEFAULT_COLLATION +DEFAULT_CREDENTIAL +DEFERRABLE +DEFERRED +DEFINED +DEFINE +DEFINER +DEGREE +DELAY +DELEGATE +DELETE_ALL +DELETE +DELETEXML +DELIMITED +DEMAND +DENSE_RANKM +DEPENDENT +DEPRECATE +DEPTH +DEQUEUE +DEREF +DEREF_NO_REWRITE +DESC +DESCRIPTION +DESTROY +DETACHED +DETECTED +DETERMINES +DETERMINISTIC +DICTIONARY +DIMENSION +DIMENSIONS +DIRECTIO +DIRECT_LOAD +DIRECTORY +DIRECT_PATH +DISABLE_ALL +DISABLE +DISABLED +DISABLE_DIRECTORY_LINK_CHECK +DISABLE_PARALLEL_DML +DISABLE_PRESET +DISABLE_RPKE +DISALLOW +DISASSOCIATE +DISCARD +DISCARDFILE +DISCONNECT +DISK +DISKGROUP +DISKGROUP_PLUS +DISKS +DISMOUNT +DISTINCT +DISTINGUISHED +DISTRIBUTED +DISTRIBUTE +DML +DML_UPDATE +DNFS_DISABLE +DNFS_ENABLE +DNFS_READBUFFERS +DOCFIDELITY +DOCUMENT +DOLLAR_ELSE +DOLLAR_ELSIF +DOLLAR_END +DOLLAR_ERROR +DOLLAR_IF +DOLLAR_THEN +DOMAIN_INDEX_FILTER +DOMAIN_INDEX_NO_SORT +DOMAIN_INDEX_SORT +DOUBLE +DOWNGRADE +DRIVING_SITE +DROP_COLUMN +DROP +DROP_GROUP +DSINTERVAL_UNCONSTRAINED +DST_UPGRADE_INSERT_CONV +DUMP +DUMPSET +DUPLICATE +DV +DYNAMIC +DYNAMIC_SAMPLING +DYNAMIC_SAMPLING_EST_CDN +E_LETTER +EACH +EDITIONABLE +EDITION +EDITIONING +EDITIONS +ELEMENT +ELIM_GROUPBY +ELIMINATE_JOIN +ELIMINATE_OBY +ELIMINATE_OUTER_JOIN +ELSE +ELSIF +EM +EMBEDDED +EMPTY_BLOB +EMPTY_CLOB +EMPTY_ +ENABLE_ALL +ENABLE +ENABLED +ENABLE_PARALLEL_DML +ENABLE_PRESET +ENCLOSED +ENCODING +ENCRYPT +ENCRYPTION +ENCRYPTPASSWORDISNULL +END +END_OUTLINE_DATA +ENDIAN +ENFORCED +ENFORCE +ENQUEUE +ENTERPRISE +ENTITYESCAPING +ENTRY +EQUIPART +ERR +ERROR_ARGUMENT +ERROR +ERROR_ON_OVERLAP_TIME +ERRORS +ERROR_INDEX +ERROR_CODE +ESCAPE +ESCAPED +ESTIMATE +EVAL +EVALNAME +EVALUATE +EVALUATION +EVENTS +EVERY +EXCEPT +EXCEPTION +EXCEPTION_INIT +EXCEPTIONS +EXCHANGE +EXCLUDE +EXCLUDING +EXCLUSIVE +EXECUTE +EXEMPT +EXISTING +EXISTS +EXISTSNODE +EXIT +EXPAND_GSET_TO_UNION +EXPAND_TABLE +EXP +EXPIRE +EXPLAIN +EXPLOSION +EXPORT +EXPR_CORR_CHECK +EXPRESS +EXTENDS +EXTENT +EXTENTS +EXTERNAL +EXTERNALLY +EXTRACTCLOBXML +EXTRACT +EXTRACTVALUE +EXTRA +FACILITY +FACT +FACTOR +FACTORIZE_JOIN +FAILED +FAILED_LOGIN_ATTEMPTS +FAILGROUP +FAILOVER +FAILURE +FALSE +FAMILY +FAR +FAST +FASTSTART +FBTSCAN +FEATURE +FEATURE_DETAILS +FEATURE_ID +FEATURE_SET +FEATURE_VALUE +FETCH +FIELD +FIELDS +FILE +FILE_NAME_CONVERT +FILEGROUP +FILESTORE +FILESYSTEM_LIKE_LOGGING +FILTER +FINAL +FINE +FINISH +FIRST +FIRSTM +FIRST_ROWS +FIRST_VALUE +FIXED +FIXED_VIEW_DATA +FLAGGER +FLASHBACK +FLASH_CACHE +FLOAT +FLOB +FLEX +FLOOR +FLUSH +FOLDER +FOLLOWING +FOLLOWS +FORALL +FORCE +FORCE_XML_QUERY_REWRITE +FOREIGN +FOREVER +FOR +FORMAT +FORWARD +FRAGMENT_NUMBER +FREELIST +FREELISTS +FREEPOOLS +FRESH +FROM +FROM_TZ +FULL +FULL_OUTER_JOIN_TO_OUTER +FUNCTION +FUNCTIONS +FTP +G_LETTER +GATHER_OPTIMIZER_STATISTICS +GATHER_PLAN_STATISTICS +GBY_CONC_ROLLUP +GBY_PUSHDOWN +GENERATED +GET +GLOBAL +GLOBALLY +GLOBAL_NAME +GLOBAL_TOPIC_ENABLED +GOTO +GRANT +GROUP_BY +GROUP +GROUP_ID +GROUPING +GROUPING_ID +GROUPS +GUARANTEED +GUARANTEE +GUARD +HADOOP_TRAILERS +HALF_YEARS +HASH_AJ +HASH +HASHKEYS +HASH_SJ +HAVING +HEADER +HEAP +HELP +HEXTORAW +HEXTOREF +HIDDEN_KEYWORD +HIDE +HIER_ORDER +HIERARCHICAL +HIERARCHIES +HIERARCHY +HIGH +HINTSET_BEGIN +HINTSET_END +HOT +HOUR +HOURS +HTTP +HWM_BROKERED +HYBRID +H_LETTER +IDENTIFIED +IDENTIFIER +IDENTITY +IDGENERATORS +ID +IDLE_TIME +IF +IGNORE +IGNORE_CHARS_AFTER_EOR +IGNORE_OPTIM_EMBEDDED_HINTS +IGNORE_ROW_ON_DUPKEY_INDEX +IGNORE_WHERE_CLAUSE +ILM +IMMEDIATE +IMPACT +IMPORT +INACTIVE +INACTIVE_ACCOUNT_TIME +INCLUDE +INCLUDE_VERSION +INCLUDING +INCREMENTAL +INCREMENT +INCR +INDENT +INDEX_ASC +INDEX_COMBINE +INDEX_DESC +INDEXED +INDEXES +INDEX_FFS +INDEX_FILTER +INDEX +INDEXING +INDEX_JOIN +INDEX_ROWS +INDEX_RRS +INDEX_RS_ASC +INDEX_RS_DESC +INDEX_RS +INDEX_SCAN +INDEX_SKIP_SCAN +INDEX_SS_ASC +INDEX_SS_DESC +INDEX_SS +INDEX_STATS +INDEXTYPE +INDEXTYPES +INDICATOR +INDICES +INFINITE +INFORMATIONAL +INHERIT +IN +INITCAP +INITIAL +INITIALIZED +INITIALLY +INITRANS +INLINE +INLINE_XMLTYPE_NT +INMEMORY +IN_MEMORY_METADATA +INMEMORY_PRUNING +INNER +INOUT +INPLACE +INPUTFORMAT +INSERTCHILDXMLAFTER +INSERTCHILDXMLBEFORE +INSERTCHILDXML +INSERT +INSERTXMLAFTER +INSERTXMLBEFORE +INSTANCE +INSTANCES +INSTANTIABLE +INSTANTLY +INSTEAD +INSTR2 +INSTR4 +INSTRB +INSTRC +INSTR +INTEGER +INTERLEAVED +INTERMEDIATE +INTERNAL_CONVERT +INTERNAL_USE +INTERPRETED +INTERSECT +INTERVAL +INT +INTERNAL +INTO +INVALIDATE +INVALIDATION +INVISIBLE +IN_XQUERY +IO_OPTIONS +IS +IS_LEAF +ISOLATION +ISOLATION_LEVEL +ITEMS +ITERATE +ITERATION_NUMBER +JAVA +JOB +JOIN +JSON_ARRAYAGG +JSON_ARRAY +JSON_EQUAL +JSON_EXISTS2 +JSON_EXISTS +JSONGET +JSON +JSON_OBJECTAGG +JSON_OBJECT +JSONPARSE +JSON_QUERY +JSON_SERIALIZE +JSON_TABLE +JSON_TEXTCONTAINS2 +JSON_TEXTCONTAINS +JSON_TRANSFORM +JSON_VALUE +K_LETTER +KEEP_DUPLICATES +KEEP +KERBEROS +KEY +KEY_LENGTH +KEYSIZE +KEYS +KEYSTORE +KILL +LABEL +LANGUAGE +LAST_DAY +LAST +LAST_VALUE +LATERAL +LATEST +LAX +LAYER +LDAP_REGISTRATION_ENABLED +LDAP_REGISTRATION +LDAP_REG_SYNC_INTERVAL +LDRTRIM +LEAF +LEAD_CDB +LEAD_CDB_URI +LEADING +LEFT +LENGTH2 +LENGTH4 +LENGTHB +LENGTHC +LENGTH +LESS +LEVEL +LEVEL_NAME +LEVELS +LIBRARY +LIFECYCLE +LIFE +LIFETIME +LIKE2 +LIKE4 +LIKEC +LIKE_EXPAND +LIKE +LIMIT +LINEAR +LINES +LINK +LIST +LITTLE +LLS +LN +LNNVL +LOAD +LOB +LOBFILE +LOBNVL +LOBS +LOCAL_INDEXES +LOCAL +LOCALTIME +LOCALTIMESTAMP +LOCATION +LOCATOR +LOCKDOWN +LOCKED +LOCKING +LOCK +LOGFILE +LOGFILES +LOGGING +LOGICAL +LOGICAL_READS_PER_CALL +LOGICAL_READS_PER_SESSION +LOG +LOGMINING +LOGOFF +LOGON +LOG_READ_ONLY_VIOLATIONS +LONG +LOOP +LOST +LOWER +LOW +LPAD +LRTRIM +LTRIM +M_LETTER +MAIN +MAKE_REF +MANAGED +MANAGE +MANAGEMENT +MANAGER +MANDATORY +MANUAL +MAP +MAPPING +MASK +MASTER +MATCHED +MATCHES +MATCH +MATCH_NUMBER +MATCH_RECOGNIZE +MATERIALIZED +MATERIALIZE +MAXARCHLOGS +MAXDATAFILES +MAXEXTENTS +MAXIMIZE +MAXINSTANCES +MAXLOGFILES +MAXLOGHISTORY +MAXLOGMEMBERS +MAX_SHARED_TEMP_SIZE +MAXSIZE +MAXTRANS +MAXVALUE +MEASURE +MEASURES +MEDIUM +MEMBER +MEMBER_CAPTION +MEMBER_DESCRIPTION +MEMBER_NAME +MEMBER_UNIQUE_NAME +MEMCOMPRESS +MEMORY +MERGEACTIONS +MERGE_AJ +MERGE_CONST_ON +MERGE +MERGE_SJ +METADATA +METHOD +MIGRATE +MIGRATION +MINEXTENTS +MINIMIZE +MINIMUM +MINING +MINUS +MINUS_NULL +MINUTE +MINUTES +MINVALUE +MIRRORCOLD +MIRRORHOT +MIRROR +MISSING +MISMATCH +MLSLABEL +MODEL_COMPILE_SUBQUERY +MODEL_DONTVERIFY_UNIQUENESS +MODEL_DYNAMIC_SUBQUERY +MODEL_MIN_ANALYSIS +MODEL +MODEL_NB +MODEL_NO_ANALYSIS +MODEL_PBY +MODEL_PUSH_REF +MODEL_SV +MODE +MODIFICATION +MODIFY_COLUMN_TYPE +MODIFY +MOD +MODULE +MONITORING +MONITOR +MONTH +MONTHS_BETWEEN +MONTHS +MOUNT +MOUNTPATH +MOUNTPOINT +MOVEMENT +MOVE +MULTIDIMENSIONAL +MULTISET +MV_MERGE +NAMED +NAME +NAMESPACE +NAN_ +NANVL +NATIONAL +NATIVE_FULL_OUTER_JOIN +NATIVE +NATURAL +NATURALN +NAV +NCHAR_CS +NCHAR +NCHR +NCLOB +NEEDED +NEG +NESTED +NESTED_TABLE_FAST_INSERT +NESTED_TABLE_GET_REFS +NESTED_TABLE_ID +NESTED_TABLE_SET_REFS +NESTED_TABLE_SET_SETID +NETWORK +NEVER +NEW +NEWLINE_ +NEW_TIME +NEXT_DAY +NEXT +NL_AJ +NLJ_BATCHING +NLJ_INDEX_FILTER +NLJ_INDEX_SCAN +NLJ_PREFETCH +NLS_CALENDAR +NLS_CHARACTERSET +NLS_CHARSET_DECL_LEN +NLS_CHARSET_ID +NLS_CHARSET_NAME +NLS_COMP +NLS_CURRENCY +NLS_DATE_FORMAT +NLS_DATE_LANGUAGE +NLS_INITCAP +NLS_ISO_CURRENCY +NL_SJ +NLS_LANG +NLS_LANGUAGE +NLS_LENGTH_SEMANTICS +NLS_LOWER +NLS_NCHAR_CONV_EXCP +NLS_NUMERIC_CHARACTERS +NLS_SORT +NLSSORT +NLS_SPECIAL_CHARS +NLS_TERRITORY +NLS_UPPER +NO_ACCESS +NO_ADAPTIVE_PLAN +NO_ANSI_REARCH +NOAPPEND +NOARCHIVELOG +NOAUDIT +NOBADFILE +NO_AUTO_REOPTIMIZE +NO_BASETABLE_MULTIMV_REWRITE +NO_BATCH_TABLE_ACCESS_BY_ROWID +NO_BIND_AWARE +NO_BUFFER +NOCACHE +NOCHECK +NO_CARTESIAN +NO_CHECK_ACL_REWRITE +NO_CLUSTER_BY_ROWID +NO_CLUSTERING +NO_COALESCE_SQ +NO_COMMON_DATA +NOCOMPRESS +NO_CONNECT_BY_CB_WHR_ONLY +NO_CONNECT_BY_COMBINE_SW +NO_CONNECT_BY_COST_BASED +NO_CONNECT_BY_ELIM_DUPS +NO_CONNECT_BY_FILTERING +NOCOPY +NO_COST_XML_QUERY_REWRITE +NO_CPU_COSTING +NOCPU_COSTING +NOCYCLE +NO_DATA_SECURITY_REWRITE +NO_DECORRELATE +NODELAY +NODIRECTIO +NODISCARDFILE +NO_DOMAIN_INDEX_FILTER +NO_DST_UPGRADE_INSERT_CONV +NO_ELIM_GROUPBY +NO_ELIMINATE_JOIN +NO_ELIMINATE_OBY +NO_ELIMINATE_OUTER_JOIN +NOENTITYESCAPING +NO_EXPAND_GSET_TO_UNION +NO_EXPAND +NO_EXPAND_TABLE +NOEXTEND +NO_FACT +NO_FACTORIZE_JOIN +NO_FILTERING +NOFORCE +NO_FULL_OUTER_JOIN_TO_OUTER +NO_GATHER_OPTIMIZER_STATISTICS +NO_GBY_PUSHDOWN +NOGUARANTEE +NO_INDEX_FFS +NO_INDEX +NO_INDEX_SS +NO_INMEMORY +NO_INMEMORY_PRUNING +NOKEEP +NO_LOAD +NOLOCAL +NOLOG +NOLOGFILE +NOLOGGING +NOMAPPING +NOMAXVALUE +NO_MERGE +NOMINIMIZE +NOMINVALUE +NO_MODEL_PUSH_REF +NO_MONITORING +NOMONITORING +NO_MONITOR +NO_MULTIMV_REWRITE +NO_NATIVE_FULL_OUTER_JOIN +NONBLOCKING +NONEDITIONABLE +NONE +NONULLIF +NO_NLJ_BATCHING +NO_NLJ_PREFETCH +NO +NONSCHEMA +NO_OBJECT_LINK +NOORDER +NO_ORDER_ROLLUPS +NO_OUTER_JOIN_TO_ANTI +NO_OUTER_JOIN_TO_INNER +NOOVERRIDE +NO_PARALLEL_INDEX +NOPARALLEL_INDEX +NO_PARALLEL +NOPARALLEL +NO_PARTIAL_COMMIT +NO_PARTIAL_JOIN +NO_PARTIAL_ROLLUP_PUSHDOWN +NOPARTITION +NO_PLACE_DISTINCT +NO_PLACE_GROUP_BY +NO_PQ_CONCURRENT_UNION +NO_PQ_MAP +NOPROMPT +NO_PQ_REPLICATE +NO_PQ_SKEW +NO_PRUNE_GSETS +NO_PULL_PRED +NO_PUSH_PRED +NO_PUSH_SUBQ +NO_PX_FAULT_TOLERANCE +NO_PX_JOIN_FILTER +NO_QKN_BUFF +NO_QUERY_TRANSFORMATION +NO_REF_CASCADE +NORELOCATE +NORELY +NOREPAIR +NOREPLAY +NORESETLOGS +NO_RESULT_CACHE +NOREVERSE +NO_REWRITE +NOREWRITE +NORMAL +NO_ROOT_SW_FOR_LOCAL +NOROWDEPENDENCIES +NOSCALE +NOSCHEMACHECK +NOSEGMENT +NO_SEMIJOIN +NO_SEMI_TO_INNER +NO_SET_TO_JOIN +NOSHARD +NOSORT +NO_SQL_TRANSLATION +NO_SQL_TUNE +NO_STAR_TRANSFORMATION +NO_STATEMENT_QUEUING +NO_STATS_GSETS +NOSTRICT +NO_SUBQUERY_PRUNING +NO_SUBSTRB_PAD +NO_SWAP_JOIN_INPUTS +NOSWITCH +NO_TABLE_LOOKUP_BY_NL +NO_TEMP_TABLE +NOTHING +NOTIFICATION +NOTRIM +NOT +NO_TRANSFORM_DISTINCT_AGG +NO_UNNEST +NO_USE_CUBE +NO_USE_HASH_AGGREGATION +NO_USE_HASH_GBY_FOR_PUSHDOWN +NO_USE_HASH +NO_USE_INVISIBLE_INDEXES +NO_USE_MERGE +NO_USE_NL +NO_USE_VECTOR_AGGREGATION +NOVALIDATE +NO_VECTOR_TRANSFORM_DIMS +NO_VECTOR_TRANSFORM_FACT +NO_VECTOR_TRANSFORM +NOWAIT +NO_XDB_FASTPATH_INSERT +NO_XML_DML_REWRITE +NO_XMLINDEX_REWRITE_IN_SELECT +NO_XMLINDEX_REWRITE +NO_XML_QUERY_REWRITE +NO_ZONEMAP +NTH_VALUE +NULLIF +NULL_ +NULLS +NUMBER +NUMERIC +NUM_INDEX_KEYS +NUMTODSINTERVAL +NUMTOYMINTERVAL +NVARCHAR2 +NVL2 +OBJECT2XML +OBJECT +OBJ_ID +OBJNO +OBJNO_REUSE +OCCURENCES +OFFLINE +OFF +OFFSET +OF +OIDINDEX +OID +OLAP +OLD +OLD_PUSH_PRED +OLS +OLTP +OMIT +ONE +ONLINE +ONLINELOG +ONLY +ON +OPAQUE +OPAQUE_TRANSFORM +OPAQUE_XCANONICAL +OPCODE +OPEN +OPERATIONS +OPERATOR +OPT_ESTIMATE +OPTIMAL +OPTIMIZE +OPTIMIZER_FEATURES_ENABLE +OPTIMIZER_GOAL +OPTION +OPTIONALLY +OPT_PARAM +ORA_BRANCH +ORA_CHECK_ACL +ORA_CHECK_PRIVILEGE +ORA_CLUSTERING +ORADATA +ORC +ORACLE_DATE +ORACLE_NUMBER +ORADEBUG +ORA_DST_AFFECTED +ORA_DST_CONVERT +ORA_DST_ERROR +ORA_GET_ACLIDS +ORA_GET_PRIVILEGES +ORA_HASH +ORA_INVOKING_USERID +ORA_INVOKING_USER +ORA_INVOKING_XS_USER_GUID +ORA_INVOKING_XS_USER +ORA_RAWCOMPARE +ORA_RAWCONCAT +ORA_ROWSCN +ORA_ROWSCN_RAW +ORA_ROWVERSION +ORA_TABVERSION +ORA_WRITE_TIME +ORDERED +ORDERED_PREDICATES +ORDER +ORDINALITY +OR_EXPAND +ORGANIZATION +OR +OR_PREDICATES +OSERROR +OTHER +OUTER_JOIN_TO_ANTI +OUTER_JOIN_TO_INNER +OUTER +OUTLINE_LEAF +OUTLINE +OUTPUTFORMAT +OUT_OF_LINE +OUT +OVERFLOW_NOMOVE +OVERFLOW_ +OVERLAPS +OVER +OVERRIDE +OVERRIDING +OWNER +OWNERSHIP +OWN +P_LETTER +PACKAGE +PACKAGES +PARALLEL_ENABLE +PARALLEL_INDEX +PARALLEL +PARAMETERFILE +PARAMETERS +PARAM +PARENT +PARENT_LEVEL_NAME +PARENT_UNIQUE_NAME +PARITY +PARQUET +PARTIAL_JOIN +PARTIALLY +PARTIAL +PARTIAL_ROLLUP_PUSHDOWN +PARTITION_HASH +PARTITION_LIST +PARTITION +PARTITION_RANGE +PARTITIONS +PARTNUMINST +PASSING +PASSWORD_GRACE_TIME +PASSWORD_LIFE_TIME +PASSWORD_LOCK_TIME +PASSWORD +PASSWORD_REUSE_MAX +PASSWORD_REUSE_TIME +PASSWORD_ROLLOVER_TIME +PASSWORD_VERIFY_FUNCTION +PAST +PATCH +PATH +PATH_PREFIX +PATHS +PATTERN +PBL_HS_BEGIN +PBL_HS_END +PCTFREE +PCTINCREASE +PCTTHRESHOLD +PCTUSED +PCTVERSION +PENDING +PERCENT_FOUND +PERCENT_ISOPEN +PERCENT_NOTFOUND +PERCENT_KEYWORD +PERCENT_RANKM +PERCENT_ROWCOUNT +PERCENT_ROWTYPE +PERCENT_TYPE +PERCENT_BULK_EXCEPTIONS +PERCENT_BULK_ROWCOUNT +PERFORMANCE +PERIOD_KEYWORD +PERMANENT +PERMISSION +PERMUTE +PER +PFILE +PHYSICAL +PIKEY +PIPELINED +PIPE +PIV_GB +PIVOT +PIV_SSF +PLACE_DISTINCT +PLACE_GROUP_BY +PLAN +PLSCOPE_SETTINGS +PLS_INTEGER +PLSQL_CCFLAGS +PLSQL_CODE_TYPE +PLSQL_DEBUG +PLSQL_OPTIMIZE_LEVEL +PLSQL_WARNINGS +PLUGGABLE +PMEM +POINT +POLICY +POOL_16K +POOL_2K +POOL_32K +POOL_4K +POOL_8K +POSITION +POSITIVEN +POSITIVE +POST_TRANSACTION +POWERMULTISET_BY_CARDINALITY +POWERMULTISET +POWER +PQ_CONCURRENT_UNION +PQ_DISTRIBUTE +PQ_DISTRIBUTE_WINDOW +PQ_FILTER +PQ_MAP +PQ_NOMAP +PQ_REPLICATE +PQ_SKEW +PRAGMA +PREBUILT +PRECEDES +PRECEDING +PRECISION +PRECOMPUTE_SUBQUERY +PREDICATE_REORDERS +PRELOAD +PREPARE +PREPROCESSOR +PRESENTNNV +PRESENT +PRESENTV +PRESERVE_OID +PRESERVE +PRETTY +PREVIOUS +PREV +PRIMARY +PRINTBLOBTOCLOB +PRIORITY +PRIOR +PRIVATE +PRIVATE_SGA +PRIVILEGED +PRIVILEGE +PRIVILEGES +PROCEDURAL +PROCEDURE +PROCESS +PROFILE +PROGRAM +PROJECT +PROPAGATE +PROPERTY +PROTECTED +PROTECTION +PROTOCOL +PROXY +PRUNING +PUBLIC +PULL_PRED +PURGE +PUSH_PRED +PUSH_SUBQ +PX_FAULT_TOLERANCE +PX_GRANULE +PX_JOIN_FILTER +QB_NAME +QUARTERS +QUERY_BLOCK +QUERY +QUEUE_CURR +QUEUE +QUEUE_ROWP +QUIESCE +QUORUM +QUOTA +QUOTAGROUP +RAISE +RANDOM_LOCAL +RANDOM +RANGE +RANKM +RAPIDLY +RAW +RAWTOHEX +RAWTONHEX +RBA +RBO_OUTLINE +RCFILE +RDBA +READ +READS +READSIZE +REALM +REAL +REBALANCE +REBUILD +RECORD +RECORDS +RECORDS_PER_BLOCK +RECOVERABLE +RECOVER +RECOVERY +RECYCLEBIN +RECYCLE +REDACTION +REDEFINE +REDO +REDUCED +REDUNDANCY +REF_CASCADE_CURSOR +REFERENCED +REFERENCE +REFERENCES +REFERENCING +REF +REFRESH +REFTOHEX +REGEXP_COUNT +REGEXP_INSTR +REGEXP_LIKE +REGEXP_REPLACE +REGEXP_SUBSTR +REGISTER +REGR_AVGX +REGR_AVGY +REGR_COUNT +REGR_INTERCEPT +REGR_R2 +REGR_SLOPE +REGR_SXX +REGR_SXY +REGR_SYY +REGULAR +REJECT +REKEY +RELATIONAL +RELIES_ON +RELOCATE +RELY +REMAINDER +REMOTE +REMOTE_MAPPED +REMOVE +RENAME +REPAIR +REPEAT +REPLACE +REPLICATION +REQUIRED +RESETLOGS +RESET +RESIZE +RESOLVE +RESOLVER +RESOURCE +RESPECT +RESTART +RESTORE_AS_INTERVALS +RESTORE +RESTRICT_ALL_REF_CONS +RESTRICTED +RESTRICT_REFERENCES +RESTRICT +RESULT_CACHE +RESULT +RESUMABLE +RESUME +RETENTION +RETRY_ON_ROW_CHANGE +RETURNING +RETURN +REUSE +REVERSE +REVOKE +REWRITE_OR_ERROR +REWRITE +RIGHT +ROLE +ROLESET +ROLES +ROLLBACK +ROLLING +ROLLUP +ROWDEPENDENCIES +ROWID_MAPPING_TABLE +ROWID +ROWIDTOCHAR +ROWIDTONCHAR +ROW_LENGTH +ROWNUM +ROW +ROWS +RPAD +RTRIM +RULE +RULES +RUNNING +SALT +SAMPLE +SAVE_AS_INTERVALS +SAVEPOINT +SAVE +SB4 +SCALE_ROWS +SCALE +SCAN_INSTANCES +SCAN +SCHEDULER +SCHEMACHECK +SCHEMA +SCN_ASCENDING +SCN +SCOPE +SCRUB +SD_ALL +SD_INHIBIT +SDO_GEOM_MBR +SDO_GEOMETRY +SD_SHOW +SEARCH +SECOND +SECONDS +SECRET +SECUREFILE_DBA +SECUREFILE +SECURITY +SEED +SEG_BLOCK +SEG_FILE +SEGMENT +SELECTIVITY +SELECT +SELF +SEMIJOIN_DRIVER +SEMIJOIN +SEMI_TO_INNER +SEQUENCED +SEQUENCE +SEQUENCEFILE +SEQUENTIAL +SEQ +SERDE +SERDEPROPERTIES +SERIALIZABLE +SERIALLY_REUSABLE +SERIAL +SERVERERROR +SERVICE_NAME_CONVERT +SERVICE +SERVICES +SESSION_CACHED_CURSORS +SESSION +SESSIONS_PER_USER +SESSIONTIMEZONE +SESSIONTZNAME +SET +SETS +SETTINGS +SET_TO_JOIN +SEVERE +SHARD +SHARDSPACE +SHARED_POOL +SHARED +SHARE +SHARING +SHELFLIFE +SHOW +SHRINK +SHUTDOWN +SIBLINGS +SID +SITE +SIGNAL_COMPONENT +SIGNAL_FUNCTION +SIGN +SIGNTYPE +SIMPLE_INTEGER +SIMPLE +SINGLE +SINGLETASK +SINH +SIN +SIZE +SIZES +SKIP_EXT_OPTIMIZER +SKIP_ +SKIP_UNQ_UNUSABLE_IDX +SKIP_UNUSABLE_INDEXES +SMALLFILE +SMALLINT +SNAPSHOT +SOME +SORT +SOUNDEX +SOURCE_FILE_DIRECTORY +SOURCE_FILE_NAME_CONVERT +SOURCE +SPACE_KEYWORD +SPECIFICATION +SPFILE +SPLIT +SPREADSHEET +SQLDATA +SQLERROR +SQLLDR +SQL +FILE_EXT +SQL_MACRO +SQL_TRACE +SQL_TRANSLATION_PROFILE +SQRT +STALE +STANDALONE +STANDARD +STANDARD_HASH +STANDBY_MAX_DATA_DELAY +STANDBYS +STANDBY +STAR +STAR_TRANSFORMATION +START +STARTOF +STARTUP +STATEMENT_ID +STATEMENT_QUEUING +STATEMENTS +STATEMENT +STATE +STATIC +STATISTICS +STATS_BINOMIAL_TEST +STATS_CROSSTAB +STATS_F_TEST +STATS_KS_TEST +STATS_MODE +STATS_MW_TEST +STATS_ONE_WAY_ANOVA +STATS_T_TEST_INDEP +STATS_T_TEST_INDEPU +STATS_T_TEST_ONE +STATS_T_TEST_PAIRED +STATS_WSR_TEST +STDDEV_POP +STDDEV_SAMP +STOP +STORAGE +STORE +STREAMS +STREAM +STRICT +STRING +STRIPE_COLUMNS +STRIPE_WIDTH +STRIP +STRUCTURE +SUBMULTISET +SUBPARTITION_REL +SUBPARTITIONS +SUBPARTITION +SUBQUERIES +SUBQUERY_PRUNING +SUBSCRIBE +SUBSET +SUBSTITUTABLE +SUBSTR2 +SUBSTR4 +SUBSTRB +SUBSTRC +SUBTYPE +SUCCESSFUL +SUCCESS +SUMMARY +SUPPLEMENTAL +SUSPEND +SWAP_JOIN_INPUTS +SWITCHOVER +SWITCH +SYNCHRONOUS +SYNC +SYNONYM +SYS +SYSASM +SYS_AUDIT +SYSAUX +SYSBACKUP +SYS_CHECKACL +SYS_CHECK_PRIVILEGE +SYS_CONNECT_BY_PATH +SYS_CONTEXT +SYSDATE +SYSDBA +SYS_DBURIGEN +SYSDG +SYS_DL_CURSOR +SYS_DM_RXFORM_CHR +SYS_DM_RXFORM_NUM +SYS_DOM_COMPARE +SYS_DST_PRIM2SEC +SYS_DST_SEC2PRIM +SYS_ET_BFILE_TO_RAW +SYS_ET_BLOB_TO_IMAGE +SYS_ET_IMAGE_TO_BLOB +SYS_ET_RAW_TO_BFILE +SYS_EXTPDTXT +SYS_EXTRACT_UTC +SYS_FBT_INSDEL +SYS_FILTER_ACLS +SYS_FNMATCHES +SYS_FNREPLACE +SYS_GET_ACLIDS +SYS_GET_COL_ACLIDS +SYS_GET_PRIVILEGES +SYS_GETTOKENID +SYS_GETXTIVAL +SYS_GUID +SYSGUID +SYSKM +SYS_MAKE_XMLNODEID +SYS_MAKEXML +SYS_MKXMLATTR +SYS_MKXTI +SYSOBJ +SYS_OP_ADT2BIN +SYS_OP_ADTCONS +SYS_OP_ALSCRVAL +SYS_OP_ATG +SYS_OP_BIN2ADT +SYS_OP_BITVEC +SYS_OP_BL2R +SYS_OP_BLOOM_FILTER_LIST +SYS_OP_BLOOM_FILTER +SYS_OP_C2C +SYS_OP_CAST +SYS_OP_CEG +SYS_OP_CL2C +SYS_OP_COMBINED_HASH +SYS_OP_COMP +SYS_OP_CONVERT +SYS_OP_COUNTCHG +SYS_OP_CSCONV +SYS_OP_CSCONVTEST +SYS_OP_CSR +SYS_OP_CSX_PATCH +SYS_OP_CYCLED_SEQ +SYS_OP_DECOMP +SYS_OP_DESCEND +SYS_OP_DISTINCT +SYS_OP_DRA +SYS_OP_DUMP +SYS_OP_DV_CHECK +SYS_OP_ENFORCE_NOT_NULL +SYSOPER +SYS_OP_EXTRACT +SYS_OP_GROUPING +SYS_OP_GUID +SYS_OP_HASH +SYS_OP_IIX +SYS_OP_ITR +SYS_OP_KEY_VECTOR_CREATE +SYS_OP_KEY_VECTOR_FILTER_LIST +SYS_OP_KEY_VECTOR_FILTER +SYS_OP_KEY_VECTOR_SUCCEEDED +SYS_OP_KEY_VECTOR_USE +SYS_OP_LBID +SYS_OP_LOBLOC2BLOB +SYS_OP_LOBLOC2CLOB +SYS_OP_LOBLOC2ID +SYS_OP_LOBLOC2NCLOB +SYS_OP_LOBLOC2TYP +SYS_OP_LSVI +SYS_OP_LVL +SYS_OP_MAKEOID +SYS_OP_MAP_NONNULL +SYS_OP_MSR +SYS_OP_NICOMBINE +SYS_OP_NIEXTRACT +SYS_OP_NII +SYS_OP_NIX +SYS_OP_NOEXPAND +SYS_OP_NTCIMG +SYS_OP_NUMTORAW +SYS_OP_OIDVALUE +SYS_OP_OPNSIZE +SYS_OP_PAR_1 +SYS_OP_PARGID_1 +SYS_OP_PARGID +SYS_OP_PAR +SYS_OP_PART_ID +SYS_OP_PIVOT +SYS_OP_R2O +SYS_OP_RAWTONUM +SYS_OP_RDTM +SYS_OP_REF +SYS_OP_RMTD +SYS_OP_ROWIDTOOBJ +SYS_OP_RPB +SYS_OPTLOBPRBSC +SYS_OP_TOSETID +SYS_OP_TPR +SYS_OP_TRTB +SYS_OPTXICMP +SYS_OPTXQCASTASNQ +SYS_OP_UNDESCEND +SYS_OP_VECAND +SYS_OP_VECBIT +SYS_OP_VECOR +SYS_OP_VECXOR +SYS_OP_VERSION +SYS_OP_VREF +SYS_OP_VVD +SYS_OP_XMLCONS_FOR_CSX +SYS_OP_XPTHATG +SYS_OP_XPTHIDX +SYS_OP_XPTHOP +SYS_OP_XTXT2SQLT +SYS_OP_ZONE_ID +SYS_ORDERKEY_DEPTH +SYS_ORDERKEY_MAXCHILD +SYS_ORDERKEY_PARENT +SYS_PARALLEL_TXN +SYS_PATHID_IS_ATTR +SYS_PATHID_IS_NMSPC +SYS_PATHID_LASTNAME +SYS_PATHID_LASTNMSPC +SYS_PATH_REVERSE +SYS_PXQEXTRACT +SYS_RAW_TO_XSID +SYS_RID_ORDER +SYS_ROW_DELTA +SYS_SC_2_XMLT +SYS_SYNRCIREDO +SYSTEM_DEFINED +SYSTEM +SYSTIMESTAMP +SYS_TYPEID +SYS_UMAKEXML +SYS_XMLANALYZE +SYS_XMLCONTAINS +SYS_XMLCONV +SYS_XMLEXNSURI +SYS_XMLGEN +SYS_XMLI_LOC_ISNODE +SYS_XMLI_LOC_ISTEXT +SYS_XMLINSTR +SYS_XMLLOCATOR_GETSVAL +SYS_XMLNODEID_GETCID +SYS_XMLNODEID_GETLOCATOR +SYS_XMLNODEID_GETOKEY +SYS_XMLNODEID_GETPATHID +SYS_XMLNODEID_GETPTRID +SYS_XMLNODEID_GETRID +SYS_XMLNODEID_GETSVAL +SYS_XMLNODEID_GETTID +SYS_XMLNODEID +SYS_XMLT_2_SC +SYS_XMLTRANSLATE +SYS_XMLTYPE2SQL +SYS_XQ_ASQLCNV +SYS_XQ_ATOMCNVCHK +SYS_XQBASEURI +SYS_XQCASTABLEERRH +SYS_XQCODEP2STR +SYS_XQCODEPEQ +SYS_XQCON2SEQ +SYS_XQCONCAT +SYS_XQDELETE +SYS_XQDFLTCOLATION +SYS_XQDOC +SYS_XQDOCURI +SYS_XQDURDIV +SYS_XQED4URI +SYS_XQENDSWITH +SYS_XQERRH +SYS_XQERR +SYS_XQESHTMLURI +SYS_XQEXLOBVAL +SYS_XQEXSTWRP +SYS_XQEXTRACT +SYS_XQEXTRREF +SYS_XQEXVAL +SYS_XQFB2STR +SYS_XQFNBOOL +SYS_XQFNCMP +SYS_XQFNDATIM +SYS_XQFNLNAME +SYS_XQFNNM +SYS_XQFNNSURI +SYS_XQFNPREDTRUTH +SYS_XQFNQNM +SYS_XQFNROOT +SYS_XQFORMATNUM +SYS_XQFTCONTAIN +SYS_XQFUNCR +SYS_XQGETCONTENT +SYS_XQINDXOF +SYS_XQINSERT +SYS_XQINSPFX +SYS_XQIRI2URI +SYS_XQLANG +SYS_XQLLNMFRMQNM +SYS_XQMKNODEREF +SYS_XQNILLED +SYS_XQNODENAME +SYS_XQNORMSPACE +SYS_XQNORMUCODE +SYS_XQ_NRNG +SYS_XQNSP4PFX +SYS_XQNSPFRMQNM +SYS_XQPFXFRMQNM +SYS_XQ_PKSQL2XML +SYS_XQPOLYABS +SYS_XQPOLYADD +SYS_XQPOLYCEL +SYS_XQPOLYCSTBL +SYS_XQPOLYCST +SYS_XQPOLYDIV +SYS_XQPOLYFLR +SYS_XQPOLYMOD +SYS_XQPOLYMUL +SYS_XQPOLYRND +SYS_XQPOLYSQRT +SYS_XQPOLYSUB +SYS_XQPOLYUMUS +SYS_XQPOLYUPLS +SYS_XQPOLYVEQ +SYS_XQPOLYVGE +SYS_XQPOLYVGT +SYS_XQPOLYVLE +SYS_XQPOLYVLT +SYS_XQPOLYVNE +SYS_XQREF2VAL +SYS_XQRENAME +SYS_XQREPLACE +SYS_XQRESVURI +SYS_XQRNDHALF2EVN +SYS_XQRSLVQNM +SYS_XQRYENVPGET +SYS_XQRYVARGET +SYS_XQRYWRP +SYS_XQSEQ2CON4XC +SYS_XQSEQ2CON +SYS_XQSEQDEEPEQ +SYS_XQSEQINSB +SYS_XQSEQRM +SYS_XQSEQRVS +SYS_XQSEQSUB +SYS_XQSEQTYPMATCH +SYS_XQSTARTSWITH +SYS_XQSTATBURI +SYS_XQSTR2CODEP +SYS_XQSTRJOIN +SYS_XQSUBSTRAFT +SYS_XQSUBSTRBEF +SYS_XQTOKENIZE +SYS_XQTREATAS +SYS_XQ_UPKXML2SQL +SYS_XQXFORM +SYS_XSID_TO_RAW +SYS_ZMAP_FILTER +SYS_ZMAP_REFRESH +T_LETTER +TABLE_LOOKUP_BY_NL +TABLESPACE_NO +TABLESPACE +TABLES +TABLE_STATS +TABLE +TABNO +TAG +TANH +TAN +TBLORIDXPARTNUM +TEMPFILE +TEMPLATE +TEMPLATE_TABLE +TEMPORARY +TEMP_TABLE +TERMINATED +TEST +TEXT +TEXTFILE +THAN +THEN +THE +THESE +THREAD +THROUGH +TIER +TIES +TIMEOUT +TIMESTAMP_LTZ_UNCONSTRAINED +TIMESTAMP +TIMESTAMP_TZ_UNCONSTRAINED +TIMESTAMP_UNCONSTRAINED +TIMES +TIME +TIMEZONE +TIMEZONE_ABBR +TIMEZONE_HOUR +TIMEZONE_MINUTE +TIMEZONE_OFFSET +TIMEZONE_REGION +TIME_ZONE +TIMING +TINYINT +TIV_GB +TIV_SSF +TO_ACLID +TO_BINARY_DOUBLE +TO_BINARY_FLOAT +TO_BLOB +TO_CLOB +TO_DSINTERVAL +TO_LOB +TO_MULTI_BYTE +TO_NCHAR +TO_NCLOB +TO_NUMBER +TOPLEVEL +TO_SINGLE_BYTE +TO_TIMESTAMP +TO_TIMESTAMP_TZ +TO_TIME +TO_TIME_TZ +TO +TO_YMINTERVAL +TRACE +TRACING +TRACKING +TRAILING +TRANSACTION +TRANSFORM +TRANSFORMS +TRANSFORM_DISTINCT_AGG +TRANSITIONAL +TRANSITION +TRANSLATE +TRANSLATION +TREAT +TRIGGERS +TRIGGER +TRUE +TRUNCATE +TRUNC +TRUSTED +TRUST +TUNING +TX +TYPES +TYPE +TZ_OFFSET +UB2 +UBA +UCS2 +UDF +UID +UNARCHIVED +UNBOUNDED +UNBOUND +UNCONDITIONAL +UNDER +UNDO +UNDROP +UNIFORM +UNION +UNIONTYPE +UNIQUE +UNISTR +UNLIMITED +UNLOAD +UNLOCK +UNMATCHED +UNNEST_INNERJ_DISTINCT_VIEW +UNNEST_NOSEMIJ_NODISTINCTVIEW +UNNEST_SEMIJ_VIEW +UNNEST +UNPACKED +UNPIVOT +UNPLUG +UNPROTECTED +UNQUIESCE +UNRECOVERABLE +UNRESTRICTED +UNSIGNED +UNSUBSCRIBE +UNTIL +UNUSABLE +UNUSED +UPDATABLE +UPDATED +UPDATE +UPDATEXML +UPD_INDEXES +UPD_JOININDEX +UPGRADE +UPPER +UPSERT +UROWID +USABLE +USAGE +USE_ANTI +USE_CONCAT +USE_CUBE +USE_HASH_AGGREGATION +USE_HASH_GBY_FOR_PUSHDOWN +USE_HASH +USE_HIDDEN_PARTITIONS +USE_INVISIBLE_INDEXES +USE_MERGE_CARTESIAN +USE_MERGE +USE_NL +USE_NL_WITH_INDEX +USE_PRIVATE_OUTLINES +USER_DATA +USER_DEFINED +USERENV +USERGROUP +USER_RECYCLEBIN +USERS +USER_TABLESPACES +USER +USE_SEMI +USE_STORED_OUTLINES +USE_TTT_FOR_GSETS +USE +USE_VECTOR_AGGREGATION +USE_WEAK_NAME_RESL +USING_NO_EXPAND +USING_NLS_COMP +USING +UTF16BE +UTF16LE +UTF32 +UTF8 +V1 +V2 +VALIDATE +VALIDATE_CONVERSION +VALIDATION +VALID_TIME_END +VALUES +VALUE +VARCHAR2 +VARCHAR +VARCHARC +VARIABLE +VARRAW +VARRAWC +VAR_POP +VARRAYS +VARRAY +VAR_SAMP +VARYING +VECTOR_READ_TRACE +VECTOR_READ +VECTOR_TRANSFORM_DIMS +VECTOR_TRANSFORM_FACT +VECTOR_TRANSFORM +VERIFIER +VERIFY +VERSIONING +VERSIONS_ENDSCN +VERSIONS_ENDTIME +VERSIONS_OPERATION +VERSIONS_STARTSCN +VERSIONS_STARTTIME +VERSIONS +VERSIONS_XID +VERSION +VIEW +VIOLATION +VIRTUAL +VISIBILITY +VISIBLE +VOLUME +VSIZE +WAIT +WALLET +WARNING +WEEKS +WEEK +WELLFORMED +WHENEVER +WHEN +WHERE +WHILE +WHITESPACE +WIDTH_BUCKET +WITHIN +WITHOUT +WITH_PLSQL +WITH +WORK +WORKERID +WRAPPED +WRAPPER +WRITE +XDB_FASTPATH_INSERT +XDB +X_DYN_PRUNE +XID +XML2OBJECT +XMLAGG +XMLATTRIBUTES +XMLCAST +XMLCDATA +XMLCOLATTVAL +XMLCOMMENT +XMLCONCAT +XMLDIFF +XML_DML_RWT_STMT +XMLELEMENT +XMLEXISTS2 +XMLEXISTS +XMLFOREST +XMLINDEX +XMLINDEX_REWRITE_IN_SELECT +XMLINDEX_REWRITE +XMLINDEX_SEL_IDX_TBL +XMLISNODE +XMLISVALID +XMLNAMESPACES +XMLPARSE +XMLPATCH +XMLPI +XMLQUERYVAL +XMLQUERY +XMLROOT +XMLSCHEMA +XMLSERIALIZE +XMLTABLE +XMLTAG +XMLTRANSFORMBLOB +XMLTRANSFORM +XMLTYPE +XML +XPATHTABLE +XS_SYS_CONTEXT +XS +XTRANSPORT +YEARS +YEAR +YEAR_TO_MONTH +YES +YMINTERVAL_UNCONSTRAINED +ZONEMAP +ZONE +ZONED +PREDICTION +PREDICTION_BOUNDS +PREDICTION_COST +PREDICTION_DETAILS +PREDICTION_PROBABILITY +PREDICTION_SET +BLOCKCHAIN +COLLATE +COLLATION +DEFINITION +DUPLICATED +EXTENDED +HASHING +IDLE +IMMUTABLE +ORACLE_DATAPUMP +ORACLE_HDFS +ORACLE_HIVE +ORACLE_LOADER +SHA2_512_Q +SHARDED +V1_Q +ISOLATE +ROOT +UNITE +ALGORITHM +CUME_DIST +DENSE_RANK +LISTAGG +PERCENT_RANK +PERCENTILE_CONT +PERCENTILE_DISC +RANK +AVG +CORR +COVAR_ +DECODE +LAG +LAG_DIFF +LAG_DIFF_PERCENT +LEAD +MAX +MEDIAN +MEMOPTIMIZE +MIN +NTILE +NVL +RATIO_TO_REPORT +REGR_ +ROUND +ROW_NUMBER +SUBSTR +TO_CHAR +TRIM +SUM +STDDEV +VAR_ +VARIANCE +LEAST +GREATEST +TO_DATE +CHARSETID +CHARSETFORM +DURATION +EXTEND +MAXLEN +PERSISTABLE +POLYMORPHIC +STRUCT +TDO +WM_CONCAT +NATIONAL_CHAR_STRING_LIT +BIT_STRING_LIT +HEX_STRING_LIT +DOUBLE_PERIOD +PERIOD +UNSIGNED_INTEGER +APPROXIMATE_NUM_LIT +CHAR_STRING +DELIMITED_ID +PERCENT +AMPERSAND +LEFT_PAREN +RIGHT_PAREN +DOUBLE_ASTERISK +ASTERISK +PLUS_SIGN +MINUS_SIGN +COMMA +SOLIDUS +AT_SIGN +ASSIGN_OP +HASH_OP +LEFT_CURLY_PAREN +RIGHT_CURLY_PAREN +SQ +BINDVAR +NOT_EQUAL_OP +CARRET_OPERATOR_PART +TILDE_OPERATOR_PART +EXCLAMATION_OPERATOR_PART +GREATER_THAN_OP +LESS_THAN_OP +COLON +SEMICOLON +BAR +EQUALS_OP +LEFT_BRACKET +RIGHT_BRACKET +INTRODUCER +SINGLE_LINE_COMMENT +MULTI_LINE_COMMENT +REMARK_COMMENT +PROMPT_MESSAGE +START_CMD +REGULAR_ID +INQUIRY_DIRECTIVE +SPACES + +rule names: +ABORT +ABS +ABSENT +ACCESS +ACCESSED +ACCESSIBLE +ACCOUNT +ACL +ACOS +ACROSS +ACTION +ACTIONS +ACTIVATE +ACTIVE +ACTIVE_COMPONENT +ACTIVE_DATA +ACTIVE_FUNCTION +ACTIVE_TAG +ACTIVITY +ADAPTIVE_PLAN +ADD +ADD_COLUMN +ADD_GROUP +ADD_MONTHS +ADJ_DATE +ADMIN +ADMINISTER +ADMINISTRATOR +ADVANCED +ADVISE +ADVISOR +AFD_DISKSTRING +AFTER +AGENT +AGGREGATE +A_LETTER +ALIAS +ALL +ALLOCATE +ALLOW +ALL_ROWS +ALTER +ALTERNATE +ALWAYS +ANALYTIC +ANALYZE +ANCESTOR +ANCILLARY +AND +AND_EQUAL +ANNOTATIONS +ANOMALY +ANSI_REARCH +ANTIJOIN +ANY +ANYSCHEMA +APPEND +APPENDCHILDXML +APPEND_VALUES +APPLICATION +APPLY +APPROX_COUNT_DISTINCT +ARCHIVAL +ARCHIVE +ARCHIVED +ARCHIVELOG +ARE +ARRAY +AS +ASC +ASCII +ASCIISTR +ASIN +ASIS +ASSEMBLY +ASSIGN +ASSOCIATE +ASYNC +ASYNCHRONOUS +ATAN2 +ATAN +AT +ATTRIBUTE +ATTRIBUTES +AUDIT +AUTHENTICATED +AUTHENTICATION +AUTHID +AUTHORIZATION +AUTOALLOCATE +AUTO +AUTOBACKUP +AUTOEXTEND +AUTO_LOGIN +AUTOMATIC +AUTONOMOUS_TRANSACTION +AUTO_REOPTIMIZE +AVAILABILITY +AVRO +BACKGROUND +BACKINGFILE +BACKUP +BACKUPS +BACKUPSET +BADFILE +BASIC +BASICFILE +BATCH +BATCHSIZE +BATCH_TABLE_ACCESS_BY_ROWID +BECOME +BEFORE +BEGIN +BEGINNING +BEGIN_OUTLINE_DATA +BEHALF +BEQUEATH +BETWEEN +BFILE +BFILENAME +BIG +BIGFILE +BIGINT +BINARY +BINARY_DOUBLE +BINARY_DOUBLE_INFINITY +BINARY_DOUBLE_NAN +BINARY_FLOAT +BINARY_FLOAT_INFINITY +BINARY_FLOAT_NAN +BINARY_INTEGER +BIND_AWARE +BINDING +BIN_TO_NUM +BITAND +BITMAP_AND +BITMAP +BITMAPS +BITMAP_TREE +BITS +BLANKS +BLOB +BLOCK +BLOCK_RANGE +BLOCKS +BLOCKSIZE +BODY +BOOLEAN +BOTH +BOUND +BRANCH +BREADTH +BROADCAST +BSON +BUFFER +BUFFER_CACHE +BUFFER_POOL +BUILD +BULK +BY +BYPASS_RECURSIVE_CHECK +BYPASS_UJVC +BYTE +BYTES +BYTEORDERMARK +CACHE +CACHE_CB +CACHE_INSTANCES +CACHE_TEMP_TABLE +CACHING +CALCULATED +CALLBACK +CALL +CANCEL +CANONICAL +CAPACITY +CAPTION +CARDINALITY +CASCADE +CASE +CAST +CASESENSITIVE +CATEGORY +CDBDEFAULT +CEIL +CELL_FLASH_CACHE +CERTIFICATE +CFILE +CHAINED +CHANGE +CHANGETRACKING +CHANGE_DUPKEY_ERROR_INDEX +CHARACTER +CHARACTERS +CHARACTERSET +CHAR +CHAR_CS +CHARTOROWID +CHECK_ACL_REWRITE +CHECK +CHECKPOINT +CHILD +CHOOSE +CHR +CHUNK +CLASS +CLASSIFICATION +CLASSIFIER +CLAUSE +CLEAN +CLEANUP +CLEAR +C_LETTER +CLIENT +CLOB +CLONE +CLOSE_CACHED_OPEN_CURSORS +CLOSE +CLUSTER_BY_ROWID +CLUSTER +CLUSTER_DETAILS +CLUSTER_DISTANCE +CLUSTER_ID +CLUSTERING +CLUSTERING_FACTOR +CLUSTER_PROBABILITY +CLUSTER_SET +COALESCE +COALESCE_SQ +COARSE +CO_AUTH_IND +COLD +COLLECT +COLLECTION +COLUMNAR +COLUMN_AUTH_INDICATOR +COLUMN +COLUMNS +COLUMN_STATS +COLUMN_VALUE +COMMENT +COMMIT +COMMITTED +COMMON +COMMON_DATA +COMPACT +COMPATIBLE +COMPATIBILITY +COMPILE +COMPLETE +COMPLIANCE +COMPONENT +COMPONENTS +COMPOSE +COMPOSITE +COMPOSITE_LIMIT +COMPOUND +COMPRESS +COMPRESSION +COMPUTE +CONCAT +CON_DBID_TO_ID +CONDITIONAL +CONDITION +CONFIRM +CONFORMING +CON_GUID_TO_ID +CON_ID +CON_NAME_TO_ID +CONNECT_BY_CB_WHR_ONLY +CONNECT_BY_COMBINE_SW +CONNECT_BY_COST_BASED +CONNECT_BY_ELIM_DUPS +CONNECT_BY_FILTERING +CONNECT_BY_ISCYCLE +CONNECT_BY_ISLEAF +CONNECT_BY_ROOT +CONNECT +CONNECT_TIME +CONSIDER +CONSISTENT +CONSTANT +CONST +CONSTRAINT +CONSTRAINTS +CONSTRUCTOR +CONTAINER +CONTAINERS +CONTAINERS_DEFAULT +CONTAINER_DATA +CONTAINER_MAP +CONTENT +CONTENTS +CONTEXT +CONTINUE +CONTROLFILE +CON_UID_TO_ID +CONVERT +CONVERSION +COOKIE +COPY +CORR_K +CORR_S +CORRUPTION +CORRUPT_XID_ALL +CORRUPT_XID +COS +COSH +COST +COST_XML_QUERY_REWRITE +COUNT +COUNTED +COVAR_POP +COVAR_SAMP +CPU_COSTING +CPU_PER_CALL +CPU_PER_SESSION +CRASH +CREATE +CREATE_FILE_DEST +CREATE_STORED_OUTLINES +CREATION +CREDENTIAL +CRITICAL +CROSS +CROSSEDITION +CSCONVERT +CSV +CUBE_AJ +CUBE +CUBE_GB +CUBE_SJ +CUME_DISTM +CURRENT +CURRENT_DATE +CURRENT_SCHEMA +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_USER +CURRENTV +CURSOR +CURSOR_SHARING_EXACT +CURSOR_SPECIFIC_SEGMENT +CUSTOMDATUM +CV +CYCLE +DANGLING +DATABASE +DATA +DATAFILE +DATAFILES +DATAGUARDCONFIG +DATAMOVEMENT +DATAOBJNO +DATAOBJ_TO_MAT_PARTITION +DATAOBJ_TO_PARTITION +DATAPUMP +DATA_SECURITY_REWRITE_LIMIT +DATE +DATE_CACHE +DATE_FORMAT +DATE_MODE +DAY +DAYS +DAY_TO_SECOND +DBA +DBA_RECYCLEBIN +DBLINK +DBMS_STATS +DB_ROLE_CHANGE +DBTIMEZONE +DB_UNIQUE_NAME +DB_VERSION +DDL +DEALLOCATE +DEBUG +DEBUGGER +DEC +DECIMAL +DECLARE +DECOMPOSE +DECORRELATE +DECR +DECREMENT +DECRYPT +DEDUPLICATE +DEFAULT +DEFAULTIF +DEFAULTS +DEFAULT_COLLATION +DEFAULT_CREDENTIAL +DEFERRABLE +DEFERRED +DEFINED +DEFINE +DEFINER +DEGREE +DELAY +DELEGATE +DELETE_ALL +DELETE +DELETEXML +DELIMITED +DEMAND +DENSE_RANKM +DEPENDENT +DEPRECATE +DEPTH +DEQUEUE +DEREF +DEREF_NO_REWRITE +DESC +DESCRIPTION +DESTROY +DETACHED +DETECTED +DETERMINES +DETERMINISTIC +DICTIONARY +DIMENSION +DIMENSIONS +DIRECTIO +DIRECT_LOAD +DIRECTORY +DIRECT_PATH +DISABLE_ALL +DISABLE +DISABLED +DISABLE_DIRECTORY_LINK_CHECK +DISABLE_PARALLEL_DML +DISABLE_PRESET +DISABLE_RPKE +DISALLOW +DISASSOCIATE +DISCARD +DISCARDFILE +DISCONNECT +DISK +DISKGROUP +DISKGROUP_PLUS +DISKS +DISMOUNT +DISTINCT +DISTINGUISHED +DISTRIBUTED +DISTRIBUTE +DML +DML_UPDATE +DNFS_DISABLE +DNFS_ENABLE +DNFS_READBUFFERS +DOCFIDELITY +DOCUMENT +DOLLAR_ELSE +DOLLAR_ELSIF +DOLLAR_END +DOLLAR_ERROR +DOLLAR_IF +DOLLAR_THEN +DOMAIN_INDEX_FILTER +DOMAIN_INDEX_NO_SORT +DOMAIN_INDEX_SORT +DOUBLE +DOWNGRADE +DRIVING_SITE +DROP_COLUMN +DROP +DROP_GROUP +DSINTERVAL_UNCONSTRAINED +DST_UPGRADE_INSERT_CONV +DUMP +DUMPSET +DUPLICATE +DV +DYNAMIC +DYNAMIC_SAMPLING +DYNAMIC_SAMPLING_EST_CDN +E_LETTER +EACH +EDITIONABLE +EDITION +EDITIONING +EDITIONS +ELEMENT +ELIM_GROUPBY +ELIMINATE_JOIN +ELIMINATE_OBY +ELIMINATE_OUTER_JOIN +ELSE +ELSIF +EM +EMBEDDED +EMPTY_BLOB +EMPTY_CLOB +EMPTY_ +ENABLE_ALL +ENABLE +ENABLED +ENABLE_PARALLEL_DML +ENABLE_PRESET +ENCLOSED +ENCODING +ENCRYPT +ENCRYPTION +ENCRYPTPASSWORDISNULL +END +END_OUTLINE_DATA +ENDIAN +ENFORCED +ENFORCE +ENQUEUE +ENTERPRISE +ENTITYESCAPING +ENTRY +EQUIPART +ERR +ERROR_ARGUMENT +ERROR +ERROR_ON_OVERLAP_TIME +ERRORS +ERROR_INDEX +ERROR_CODE +ESCAPE +ESCAPED +ESTIMATE +EVAL +EVALNAME +EVALUATE +EVALUATION +EVENTS +EVERY +EXCEPT +EXCEPTION +EXCEPTION_INIT +EXCEPTIONS +EXCHANGE +EXCLUDE +EXCLUDING +EXCLUSIVE +EXECUTE +EXEMPT +EXISTING +EXISTS +EXISTSNODE +EXIT +EXPAND_GSET_TO_UNION +EXPAND_TABLE +EXP +EXPIRE +EXPLAIN +EXPLOSION +EXPORT +EXPR_CORR_CHECK +EXPRESS +EXTENDS +EXTENT +EXTENTS +EXTERNAL +EXTERNALLY +EXTRACTCLOBXML +EXTRACT +EXTRACTVALUE +EXTRA +FACILITY +FACT +FACTOR +FACTORIZE_JOIN +FAILED +FAILED_LOGIN_ATTEMPTS +FAILGROUP +FAILOVER +FAILURE +FALSE +FAMILY +FAR +FAST +FASTSTART +FBTSCAN +FEATURE +FEATURE_DETAILS +FEATURE_ID +FEATURE_SET +FEATURE_VALUE +FETCH +FIELD +FIELDS +FILE +FILE_NAME_CONVERT +FILEGROUP +FILESTORE +FILESYSTEM_LIKE_LOGGING +FILTER +FINAL +FINE +FINISH +FIRST +FIRSTM +FIRST_ROWS +FIRST_VALUE +FIXED +FIXED_VIEW_DATA +FLAGGER +FLASHBACK +FLASH_CACHE +FLOAT +FLOB +FLEX +FLOOR +FLUSH +FOLDER +FOLLOWING +FOLLOWS +FORALL +FORCE +FORCE_XML_QUERY_REWRITE +FOREIGN +FOREVER +FOR +FORMAT +FORWARD +FRAGMENT_NUMBER +FREELIST +FREELISTS +FREEPOOLS +FRESH +FROM +FROM_TZ +FULL +FULL_OUTER_JOIN_TO_OUTER +FUNCTION +FUNCTIONS +FTP +G_LETTER +GATHER_OPTIMIZER_STATISTICS +GATHER_PLAN_STATISTICS +GBY_CONC_ROLLUP +GBY_PUSHDOWN +GENERATED +GET +GLOBAL +GLOBALLY +GLOBAL_NAME +GLOBAL_TOPIC_ENABLED +GOTO +GRANT +GROUP_BY +GROUP +GROUP_ID +GROUPING +GROUPING_ID +GROUPS +GUARANTEED +GUARANTEE +GUARD +HADOOP_TRAILERS +HALF_YEARS +HASH_AJ +HASH +HASHKEYS +HASH_SJ +HAVING +HEADER +HEAP +HELP +HEXTORAW +HEXTOREF +HIDDEN_KEYWORD +HIDE +HIER_ORDER +HIERARCHICAL +HIERARCHIES +HIERARCHY +HIGH +HINTSET_BEGIN +HINTSET_END +HOT +HOUR +HOURS +HTTP +HWM_BROKERED +HYBRID +H_LETTER +IDENTIFIED +IDENTIFIER +IDENTITY +IDGENERATORS +ID +IDLE_TIME +IF +IGNORE +IGNORE_CHARS_AFTER_EOR +IGNORE_OPTIM_EMBEDDED_HINTS +IGNORE_ROW_ON_DUPKEY_INDEX +IGNORE_WHERE_CLAUSE +ILM +IMMEDIATE +IMPACT +IMPORT +INACTIVE +INACTIVE_ACCOUNT_TIME +INCLUDE +INCLUDE_VERSION +INCLUDING +INCREMENTAL +INCREMENT +INCR +INDENT +INDEX_ASC +INDEX_COMBINE +INDEX_DESC +INDEXED +INDEXES +INDEX_FFS +INDEX_FILTER +INDEX +INDEXING +INDEX_JOIN +INDEX_ROWS +INDEX_RRS +INDEX_RS_ASC +INDEX_RS_DESC +INDEX_RS +INDEX_SCAN +INDEX_SKIP_SCAN +INDEX_SS_ASC +INDEX_SS_DESC +INDEX_SS +INDEX_STATS +INDEXTYPE +INDEXTYPES +INDICATOR +INDICES +INFINITE +INFORMATIONAL +INHERIT +IN +INITCAP +INITIAL +INITIALIZED +INITIALLY +INITRANS +INLINE +INLINE_XMLTYPE_NT +INMEMORY +IN_MEMORY_METADATA +INMEMORY_PRUNING +INNER +INOUT +INPLACE +INPUTFORMAT +INSERTCHILDXMLAFTER +INSERTCHILDXMLBEFORE +INSERTCHILDXML +INSERT +INSERTXMLAFTER +INSERTXMLBEFORE +INSTANCE +INSTANCES +INSTANTIABLE +INSTANTLY +INSTEAD +INSTR2 +INSTR4 +INSTRB +INSTRC +INSTR +INTEGER +INTERLEAVED +INTERMEDIATE +INTERNAL_CONVERT +INTERNAL_USE +INTERPRETED +INTERSECT +INTERVAL +INT +INTERNAL +INTO +INVALIDATE +INVALIDATION +INVISIBLE +IN_XQUERY +IO_OPTIONS +IS +IS_LEAF +ISOLATION +ISOLATION_LEVEL +ITEMS +ITERATE +ITERATION_NUMBER +JAVA +JOB +JOIN +JSON_ARRAYAGG +JSON_ARRAY +JSON_EQUAL +JSON_EXISTS2 +JSON_EXISTS +JSONGET +JSON +JSON_OBJECTAGG +JSON_OBJECT +JSONPARSE +JSON_QUERY +JSON_SERIALIZE +JSON_TABLE +JSON_TEXTCONTAINS2 +JSON_TEXTCONTAINS +JSON_TRANSFORM +JSON_VALUE +K_LETTER +KEEP_DUPLICATES +KEEP +KERBEROS +KEY +KEY_LENGTH +KEYSIZE +KEYS +KEYSTORE +KILL +LABEL +LANGUAGE +LAST_DAY +LAST +LAST_VALUE +LATERAL +LATEST +LAX +LAYER +LDAP_REGISTRATION_ENABLED +LDAP_REGISTRATION +LDAP_REG_SYNC_INTERVAL +LDRTRIM +LEAF +LEAD_CDB +LEAD_CDB_URI +LEADING +LEFT +LENGTH2 +LENGTH4 +LENGTHB +LENGTHC +LENGTH +LESS +LEVEL +LEVEL_NAME +LEVELS +LIBRARY +LIFECYCLE +LIFE +LIFETIME +LIKE2 +LIKE4 +LIKEC +LIKE_EXPAND +LIKE +LIMIT +LINEAR +LINES +LINK +LIST +LITTLE +LLS +LN +LNNVL +LOAD +LOB +LOBFILE +LOBNVL +LOBS +LOCAL_INDEXES +LOCAL +LOCALTIME +LOCALTIMESTAMP +LOCATION +LOCATOR +LOCKDOWN +LOCKED +LOCKING +LOCK +LOGFILE +LOGFILES +LOGGING +LOGICAL +LOGICAL_READS_PER_CALL +LOGICAL_READS_PER_SESSION +LOG +LOGMINING +LOGOFF +LOGON +LOG_READ_ONLY_VIOLATIONS +LONG +LOOP +LOST +LOWER +LOW +LPAD +LRTRIM +LTRIM +M_LETTER +MAIN +MAKE_REF +MANAGED +MANAGE +MANAGEMENT +MANAGER +MANDATORY +MANUAL +MAP +MAPPING +MASK +MASTER +MATCHED +MATCHES +MATCH +MATCH_NUMBER +MATCH_RECOGNIZE +MATERIALIZED +MATERIALIZE +MAXARCHLOGS +MAXDATAFILES +MAXEXTENTS +MAXIMIZE +MAXINSTANCES +MAXLOGFILES +MAXLOGHISTORY +MAXLOGMEMBERS +MAX_SHARED_TEMP_SIZE +MAXSIZE +MAXTRANS +MAXVALUE +MEASURE +MEASURES +MEDIUM +MEMBER +MEMBER_CAPTION +MEMBER_DESCRIPTION +MEMBER_NAME +MEMBER_UNIQUE_NAME +MEMCOMPRESS +MEMORY +MERGEACTIONS +MERGE_AJ +MERGE_CONST_ON +MERGE +MERGE_SJ +METADATA +METHOD +MIGRATE +MIGRATION +MINEXTENTS +MINIMIZE +MINIMUM +MINING +MINUS +MINUS_NULL +MINUTE +MINUTES +MINVALUE +MIRRORCOLD +MIRRORHOT +MIRROR +MISSING +MISMATCH +MLSLABEL +MODEL_COMPILE_SUBQUERY +MODEL_DONTVERIFY_UNIQUENESS +MODEL_DYNAMIC_SUBQUERY +MODEL_MIN_ANALYSIS +MODEL +MODEL_NB +MODEL_NO_ANALYSIS +MODEL_PBY +MODEL_PUSH_REF +MODEL_SV +MODE +MODIFICATION +MODIFY_COLUMN_TYPE +MODIFY +MOD +MODULE +MONITORING +MONITOR +MONTH +MONTHS_BETWEEN +MONTHS +MOUNT +MOUNTPATH +MOUNTPOINT +MOVEMENT +MOVE +MULTIDIMENSIONAL +MULTISET +MV_MERGE +NAMED +NAME +NAMESPACE +NAN_ +NANVL +NATIONAL +NATIVE_FULL_OUTER_JOIN +NATIVE +NATURAL +NATURALN +NAV +NCHAR_CS +NCHAR +NCHR +NCLOB +NEEDED +NEG +NESTED +NESTED_TABLE_FAST_INSERT +NESTED_TABLE_GET_REFS +NESTED_TABLE_ID +NESTED_TABLE_SET_REFS +NESTED_TABLE_SET_SETID +NETWORK +NEVER +NEW +NEWLINE_ +NEW_TIME +NEXT_DAY +NEXT +NL_AJ +NLJ_BATCHING +NLJ_INDEX_FILTER +NLJ_INDEX_SCAN +NLJ_PREFETCH +NLS_CALENDAR +NLS_CHARACTERSET +NLS_CHARSET_DECL_LEN +NLS_CHARSET_ID +NLS_CHARSET_NAME +NLS_COMP +NLS_CURRENCY +NLS_DATE_FORMAT +NLS_DATE_LANGUAGE +NLS_INITCAP +NLS_ISO_CURRENCY +NL_SJ +NLS_LANG +NLS_LANGUAGE +NLS_LENGTH_SEMANTICS +NLS_LOWER +NLS_NCHAR_CONV_EXCP +NLS_NUMERIC_CHARACTERS +NLS_SORT +NLSSORT +NLS_SPECIAL_CHARS +NLS_TERRITORY +NLS_UPPER +NO_ACCESS +NO_ADAPTIVE_PLAN +NO_ANSI_REARCH +NOAPPEND +NOARCHIVELOG +NOAUDIT +NOBADFILE +NO_AUTO_REOPTIMIZE +NO_BASETABLE_MULTIMV_REWRITE +NO_BATCH_TABLE_ACCESS_BY_ROWID +NO_BIND_AWARE +NO_BUFFER +NOCACHE +NOCHECK +NO_CARTESIAN +NO_CHECK_ACL_REWRITE +NO_CLUSTER_BY_ROWID +NO_CLUSTERING +NO_COALESCE_SQ +NO_COMMON_DATA +NOCOMPRESS +NO_CONNECT_BY_CB_WHR_ONLY +NO_CONNECT_BY_COMBINE_SW +NO_CONNECT_BY_COST_BASED +NO_CONNECT_BY_ELIM_DUPS +NO_CONNECT_BY_FILTERING +NOCOPY +NO_COST_XML_QUERY_REWRITE +NO_CPU_COSTING +NOCPU_COSTING +NOCYCLE +NO_DATA_SECURITY_REWRITE +NO_DECORRELATE +NODELAY +NODIRECTIO +NODISCARDFILE +NO_DOMAIN_INDEX_FILTER +NO_DST_UPGRADE_INSERT_CONV +NO_ELIM_GROUPBY +NO_ELIMINATE_JOIN +NO_ELIMINATE_OBY +NO_ELIMINATE_OUTER_JOIN +NOENTITYESCAPING +NO_EXPAND_GSET_TO_UNION +NO_EXPAND +NO_EXPAND_TABLE +NOEXTEND +NO_FACT +NO_FACTORIZE_JOIN +NO_FILTERING +NOFORCE +NO_FULL_OUTER_JOIN_TO_OUTER +NO_GATHER_OPTIMIZER_STATISTICS +NO_GBY_PUSHDOWN +NOGUARANTEE +NO_INDEX_FFS +NO_INDEX +NO_INDEX_SS +NO_INMEMORY +NO_INMEMORY_PRUNING +NOKEEP +NO_LOAD +NOLOCAL +NOLOG +NOLOGFILE +NOLOGGING +NOMAPPING +NOMAXVALUE +NO_MERGE +NOMINIMIZE +NOMINVALUE +NO_MODEL_PUSH_REF +NO_MONITORING +NOMONITORING +NO_MONITOR +NO_MULTIMV_REWRITE +NO_NATIVE_FULL_OUTER_JOIN +NONBLOCKING +NONEDITIONABLE +NONE +NONULLIF +NO_NLJ_BATCHING +NO_NLJ_PREFETCH +NO +NONSCHEMA +NO_OBJECT_LINK +NOORDER +NO_ORDER_ROLLUPS +NO_OUTER_JOIN_TO_ANTI +NO_OUTER_JOIN_TO_INNER +NOOVERRIDE +NO_PARALLEL_INDEX +NOPARALLEL_INDEX +NO_PARALLEL +NOPARALLEL +NO_PARTIAL_COMMIT +NO_PARTIAL_JOIN +NO_PARTIAL_ROLLUP_PUSHDOWN +NOPARTITION +NO_PLACE_DISTINCT +NO_PLACE_GROUP_BY +NO_PQ_CONCURRENT_UNION +NO_PQ_MAP +NOPROMPT +NO_PQ_REPLICATE +NO_PQ_SKEW +NO_PRUNE_GSETS +NO_PULL_PRED +NO_PUSH_PRED +NO_PUSH_SUBQ +NO_PX_FAULT_TOLERANCE +NO_PX_JOIN_FILTER +NO_QKN_BUFF +NO_QUERY_TRANSFORMATION +NO_REF_CASCADE +NORELOCATE +NORELY +NOREPAIR +NOREPLAY +NORESETLOGS +NO_RESULT_CACHE +NOREVERSE +NO_REWRITE +NOREWRITE +NORMAL +NO_ROOT_SW_FOR_LOCAL +NOROWDEPENDENCIES +NOSCALE +NOSCHEMACHECK +NOSEGMENT +NO_SEMIJOIN +NO_SEMI_TO_INNER +NO_SET_TO_JOIN +NOSHARD +NOSORT +NO_SQL_TRANSLATION +NO_SQL_TUNE +NO_STAR_TRANSFORMATION +NO_STATEMENT_QUEUING +NO_STATS_GSETS +NOSTRICT +NO_SUBQUERY_PRUNING +NO_SUBSTRB_PAD +NO_SWAP_JOIN_INPUTS +NOSWITCH +NO_TABLE_LOOKUP_BY_NL +NO_TEMP_TABLE +NOTHING +NOTIFICATION +NOTRIM +NOT +NO_TRANSFORM_DISTINCT_AGG +NO_UNNEST +NO_USE_CUBE +NO_USE_HASH_AGGREGATION +NO_USE_HASH_GBY_FOR_PUSHDOWN +NO_USE_HASH +NO_USE_INVISIBLE_INDEXES +NO_USE_MERGE +NO_USE_NL +NO_USE_VECTOR_AGGREGATION +NOVALIDATE +NO_VECTOR_TRANSFORM_DIMS +NO_VECTOR_TRANSFORM_FACT +NO_VECTOR_TRANSFORM +NOWAIT +NO_XDB_FASTPATH_INSERT +NO_XML_DML_REWRITE +NO_XMLINDEX_REWRITE_IN_SELECT +NO_XMLINDEX_REWRITE +NO_XML_QUERY_REWRITE +NO_ZONEMAP +NTH_VALUE +NULLIF +NULL_ +NULLS +NUMBER +NUMERIC +NUM_INDEX_KEYS +NUMTODSINTERVAL +NUMTOYMINTERVAL +NVARCHAR2 +NVL2 +OBJECT2XML +OBJECT +OBJ_ID +OBJNO +OBJNO_REUSE +OCCURENCES +OFFLINE +OFF +OFFSET +OF +OIDINDEX +OID +OLAP +OLD +OLD_PUSH_PRED +OLS +OLTP +OMIT +ONE +ONLINE +ONLINELOG +ONLY +ON +OPAQUE +OPAQUE_TRANSFORM +OPAQUE_XCANONICAL +OPCODE +OPEN +OPERATIONS +OPERATOR +OPT_ESTIMATE +OPTIMAL +OPTIMIZE +OPTIMIZER_FEATURES_ENABLE +OPTIMIZER_GOAL +OPTION +OPTIONALLY +OPT_PARAM +ORA_BRANCH +ORA_CHECK_ACL +ORA_CHECK_PRIVILEGE +ORA_CLUSTERING +ORADATA +ORC +ORACLE_DATE +ORACLE_NUMBER +ORADEBUG +ORA_DST_AFFECTED +ORA_DST_CONVERT +ORA_DST_ERROR +ORA_GET_ACLIDS +ORA_GET_PRIVILEGES +ORA_HASH +ORA_INVOKING_USERID +ORA_INVOKING_USER +ORA_INVOKING_XS_USER_GUID +ORA_INVOKING_XS_USER +ORA_RAWCOMPARE +ORA_RAWCONCAT +ORA_ROWSCN +ORA_ROWSCN_RAW +ORA_ROWVERSION +ORA_TABVERSION +ORA_WRITE_TIME +ORDERED +ORDERED_PREDICATES +ORDER +ORDINALITY +OR_EXPAND +ORGANIZATION +OR +OR_PREDICATES +OSERROR +OTHER +OUTER_JOIN_TO_ANTI +OUTER_JOIN_TO_INNER +OUTER +OUTLINE_LEAF +OUTLINE +OUTPUTFORMAT +OUT_OF_LINE +OUT +OVERFLOW_NOMOVE +OVERFLOW_ +OVERLAPS +OVER +OVERRIDE +OVERRIDING +OWNER +OWNERSHIP +OWN +P_LETTER +PACKAGE +PACKAGES +PARALLEL_ENABLE +PARALLEL_INDEX +PARALLEL +PARAMETERFILE +PARAMETERS +PARAM +PARENT +PARENT_LEVEL_NAME +PARENT_UNIQUE_NAME +PARITY +PARQUET +PARTIAL_JOIN +PARTIALLY +PARTIAL +PARTIAL_ROLLUP_PUSHDOWN +PARTITION_HASH +PARTITION_LIST +PARTITION +PARTITION_RANGE +PARTITIONS +PARTNUMINST +PASSING +PASSWORD_GRACE_TIME +PASSWORD_LIFE_TIME +PASSWORD_LOCK_TIME +PASSWORD +PASSWORD_REUSE_MAX +PASSWORD_REUSE_TIME +PASSWORD_ROLLOVER_TIME +PASSWORD_VERIFY_FUNCTION +PAST +PATCH +PATH +PATH_PREFIX +PATHS +PATTERN +PBL_HS_BEGIN +PBL_HS_END +PCTFREE +PCTINCREASE +PCTTHRESHOLD +PCTUSED +PCTVERSION +PENDING +PERCENT_FOUND +PERCENT_ISOPEN +PERCENT_NOTFOUND +PERCENT_KEYWORD +PERCENT_RANKM +PERCENT_ROWCOUNT +PERCENT_ROWTYPE +PERCENT_TYPE +PERCENT_BULK_EXCEPTIONS +PERCENT_BULK_ROWCOUNT +PERFORMANCE +PERIOD_KEYWORD +PERMANENT +PERMISSION +PERMUTE +PER +PFILE +PHYSICAL +PIKEY +PIPELINED +PIPE +PIV_GB +PIVOT +PIV_SSF +PLACE_DISTINCT +PLACE_GROUP_BY +PLAN +PLSCOPE_SETTINGS +PLS_INTEGER +PLSQL_CCFLAGS +PLSQL_CODE_TYPE +PLSQL_DEBUG +PLSQL_OPTIMIZE_LEVEL +PLSQL_WARNINGS +PLUGGABLE +PMEM +POINT +POLICY +POOL_16K +POOL_2K +POOL_32K +POOL_4K +POOL_8K +POSITION +POSITIVEN +POSITIVE +POST_TRANSACTION +POWERMULTISET_BY_CARDINALITY +POWERMULTISET +POWER +PQ_CONCURRENT_UNION +PQ_DISTRIBUTE +PQ_DISTRIBUTE_WINDOW +PQ_FILTER +PQ_MAP +PQ_NOMAP +PQ_REPLICATE +PQ_SKEW +PRAGMA +PREBUILT +PRECEDES +PRECEDING +PRECISION +PRECOMPUTE_SUBQUERY +PREDICATE_REORDERS +PRELOAD +PREPARE +PREPROCESSOR +PRESENTNNV +PRESENT +PRESENTV +PRESERVE_OID +PRESERVE +PRETTY +PREVIOUS +PREV +PRIMARY +PRINTBLOBTOCLOB +PRIORITY +PRIOR +PRIVATE +PRIVATE_SGA +PRIVILEGED +PRIVILEGE +PRIVILEGES +PROCEDURAL +PROCEDURE +PROCESS +PROFILE +PROGRAM +PROJECT +PROPAGATE +PROPERTY +PROTECTED +PROTECTION +PROTOCOL +PROXY +PRUNING +PUBLIC +PULL_PRED +PURGE +PUSH_PRED +PUSH_SUBQ +PX_FAULT_TOLERANCE +PX_GRANULE +PX_JOIN_FILTER +QB_NAME +QUARTERS +QUERY_BLOCK +QUERY +QUEUE_CURR +QUEUE +QUEUE_ROWP +QUIESCE +QUORUM +QUOTA +QUOTAGROUP +RAISE +RANDOM_LOCAL +RANDOM +RANGE +RANKM +RAPIDLY +RAW +RAWTOHEX +RAWTONHEX +RBA +RBO_OUTLINE +RCFILE +RDBA +READ +READS +READSIZE +REALM +REAL +REBALANCE +REBUILD +RECORD +RECORDS +RECORDS_PER_BLOCK +RECOVERABLE +RECOVER +RECOVERY +RECYCLEBIN +RECYCLE +REDACTION +REDEFINE +REDO +REDUCED +REDUNDANCY +REF_CASCADE_CURSOR +REFERENCED +REFERENCE +REFERENCES +REFERENCING +REF +REFRESH +REFTOHEX +REGEXP_COUNT +REGEXP_INSTR +REGEXP_LIKE +REGEXP_REPLACE +REGEXP_SUBSTR +REGISTER +REGR_AVGX +REGR_AVGY +REGR_COUNT +REGR_INTERCEPT +REGR_R2 +REGR_SLOPE +REGR_SXX +REGR_SXY +REGR_SYY +REGULAR +REJECT +REKEY +RELATIONAL +RELIES_ON +RELOCATE +RELY +REMAINDER +REMOTE +REMOTE_MAPPED +REMOVE +RENAME +REPAIR +REPEAT +REPLACE +REPLICATION +REQUIRED +RESETLOGS +RESET +RESIZE +RESOLVE +RESOLVER +RESOURCE +RESPECT +RESTART +RESTORE_AS_INTERVALS +RESTORE +RESTRICT_ALL_REF_CONS +RESTRICTED +RESTRICT_REFERENCES +RESTRICT +RESULT_CACHE +RESULT +RESUMABLE +RESUME +RETENTION +RETRY_ON_ROW_CHANGE +RETURNING +RETURN +REUSE +REVERSE +REVOKE +REWRITE_OR_ERROR +REWRITE +RIGHT +ROLE +ROLESET +ROLES +ROLLBACK +ROLLING +ROLLUP +ROWDEPENDENCIES +ROWID_MAPPING_TABLE +ROWID +ROWIDTOCHAR +ROWIDTONCHAR +ROW_LENGTH +ROWNUM +ROW +ROWS +RPAD +RTRIM +RULE +RULES +RUNNING +SALT +SAMPLE +SAVE_AS_INTERVALS +SAVEPOINT +SAVE +SB4 +SCALE_ROWS +SCALE +SCAN_INSTANCES +SCAN +SCHEDULER +SCHEMACHECK +SCHEMA +SCN_ASCENDING +SCN +SCOPE +SCRUB +SD_ALL +SD_INHIBIT +SDO_GEOM_MBR +SDO_GEOMETRY +SD_SHOW +SEARCH +SECOND +SECONDS +SECRET +SECUREFILE_DBA +SECUREFILE +SECURITY +SEED +SEG_BLOCK +SEG_FILE +SEGMENT +SELECTIVITY +SELECT +SELF +SEMIJOIN_DRIVER +SEMIJOIN +SEMI_TO_INNER +SEQUENCED +SEQUENCE +SEQUENCEFILE +SEQUENTIAL +SEQ +SERDE +SERDEPROPERTIES +SERIALIZABLE +SERIALLY_REUSABLE +SERIAL +SERVERERROR +SERVICE_NAME_CONVERT +SERVICE +SERVICES +SESSION_CACHED_CURSORS +SESSION +SESSIONS_PER_USER +SESSIONTIMEZONE +SESSIONTZNAME +SET +SETS +SETTINGS +SET_TO_JOIN +SEVERE +SHARD +SHARDSPACE +SHARED_POOL +SHARED +SHARE +SHARING +SHELFLIFE +SHOW +SHRINK +SHUTDOWN +SIBLINGS +SID +SITE +SIGNAL_COMPONENT +SIGNAL_FUNCTION +SIGN +SIGNTYPE +SIMPLE_INTEGER +SIMPLE +SINGLE +SINGLETASK +SINH +SIN +SIZE +SIZES +SKIP_EXT_OPTIMIZER +SKIP_ +SKIP_UNQ_UNUSABLE_IDX +SKIP_UNUSABLE_INDEXES +SMALLFILE +SMALLINT +SNAPSHOT +SOME +SORT +SOUNDEX +SOURCE_FILE_DIRECTORY +SOURCE_FILE_NAME_CONVERT +SOURCE +SPACE_KEYWORD +SPECIFICATION +SPFILE +SPLIT +SPREADSHEET +SQLDATA +SQLERROR +SQLLDR +SQL +FILE_EXT +SQL_MACRO +SQL_TRACE +SQL_TRANSLATION_PROFILE +SQRT +STALE +STANDALONE +STANDARD +STANDARD_HASH +STANDBY_MAX_DATA_DELAY +STANDBYS +STANDBY +STAR +STAR_TRANSFORMATION +START +STARTOF +STARTUP +STATEMENT_ID +STATEMENT_QUEUING +STATEMENTS +STATEMENT +STATE +STATIC +STATISTICS +STATS_BINOMIAL_TEST +STATS_CROSSTAB +STATS_F_TEST +STATS_KS_TEST +STATS_MODE +STATS_MW_TEST +STATS_ONE_WAY_ANOVA +STATS_T_TEST_INDEP +STATS_T_TEST_INDEPU +STATS_T_TEST_ONE +STATS_T_TEST_PAIRED +STATS_WSR_TEST +STDDEV_POP +STDDEV_SAMP +STOP +STORAGE +STORE +STREAMS +STREAM +STRICT +STRING +STRIPE_COLUMNS +STRIPE_WIDTH +STRIP +STRUCTURE +SUBMULTISET +SUBPARTITION_REL +SUBPARTITIONS +SUBPARTITION +SUBQUERIES +SUBQUERY_PRUNING +SUBSCRIBE +SUBSET +SUBSTITUTABLE +SUBSTR2 +SUBSTR4 +SUBSTRB +SUBSTRC +SUBTYPE +SUCCESSFUL +SUCCESS +SUMMARY +SUPPLEMENTAL +SUSPEND +SWAP_JOIN_INPUTS +SWITCHOVER +SWITCH +SYNCHRONOUS +SYNC +SYNONYM +SYS +SYSASM +SYS_AUDIT +SYSAUX +SYSBACKUP +SYS_CHECKACL +SYS_CHECK_PRIVILEGE +SYS_CONNECT_BY_PATH +SYS_CONTEXT +SYSDATE +SYSDBA +SYS_DBURIGEN +SYSDG +SYS_DL_CURSOR +SYS_DM_RXFORM_CHR +SYS_DM_RXFORM_NUM +SYS_DOM_COMPARE +SYS_DST_PRIM2SEC +SYS_DST_SEC2PRIM +SYS_ET_BFILE_TO_RAW +SYS_ET_BLOB_TO_IMAGE +SYS_ET_IMAGE_TO_BLOB +SYS_ET_RAW_TO_BFILE +SYS_EXTPDTXT +SYS_EXTRACT_UTC +SYS_FBT_INSDEL +SYS_FILTER_ACLS +SYS_FNMATCHES +SYS_FNREPLACE +SYS_GET_ACLIDS +SYS_GET_COL_ACLIDS +SYS_GET_PRIVILEGES +SYS_GETTOKENID +SYS_GETXTIVAL +SYS_GUID +SYSGUID +SYSKM +SYS_MAKE_XMLNODEID +SYS_MAKEXML +SYS_MKXMLATTR +SYS_MKXTI +SYSOBJ +SYS_OP_ADT2BIN +SYS_OP_ADTCONS +SYS_OP_ALSCRVAL +SYS_OP_ATG +SYS_OP_BIN2ADT +SYS_OP_BITVEC +SYS_OP_BL2R +SYS_OP_BLOOM_FILTER_LIST +SYS_OP_BLOOM_FILTER +SYS_OP_C2C +SYS_OP_CAST +SYS_OP_CEG +SYS_OP_CL2C +SYS_OP_COMBINED_HASH +SYS_OP_COMP +SYS_OP_CONVERT +SYS_OP_COUNTCHG +SYS_OP_CSCONV +SYS_OP_CSCONVTEST +SYS_OP_CSR +SYS_OP_CSX_PATCH +SYS_OP_CYCLED_SEQ +SYS_OP_DECOMP +SYS_OP_DESCEND +SYS_OP_DISTINCT +SYS_OP_DRA +SYS_OP_DUMP +SYS_OP_DV_CHECK +SYS_OP_ENFORCE_NOT_NULL +SYSOPER +SYS_OP_EXTRACT +SYS_OP_GROUPING +SYS_OP_GUID +SYS_OP_HASH +SYS_OP_IIX +SYS_OP_ITR +SYS_OP_KEY_VECTOR_CREATE +SYS_OP_KEY_VECTOR_FILTER_LIST +SYS_OP_KEY_VECTOR_FILTER +SYS_OP_KEY_VECTOR_SUCCEEDED +SYS_OP_KEY_VECTOR_USE +SYS_OP_LBID +SYS_OP_LOBLOC2BLOB +SYS_OP_LOBLOC2CLOB +SYS_OP_LOBLOC2ID +SYS_OP_LOBLOC2NCLOB +SYS_OP_LOBLOC2TYP +SYS_OP_LSVI +SYS_OP_LVL +SYS_OP_MAKEOID +SYS_OP_MAP_NONNULL +SYS_OP_MSR +SYS_OP_NICOMBINE +SYS_OP_NIEXTRACT +SYS_OP_NII +SYS_OP_NIX +SYS_OP_NOEXPAND +SYS_OP_NTCIMG +SYS_OP_NUMTORAW +SYS_OP_OIDVALUE +SYS_OP_OPNSIZE +SYS_OP_PAR_1 +SYS_OP_PARGID_1 +SYS_OP_PARGID +SYS_OP_PAR +SYS_OP_PART_ID +SYS_OP_PIVOT +SYS_OP_R2O +SYS_OP_RAWTONUM +SYS_OP_RDTM +SYS_OP_REF +SYS_OP_RMTD +SYS_OP_ROWIDTOOBJ +SYS_OP_RPB +SYS_OPTLOBPRBSC +SYS_OP_TOSETID +SYS_OP_TPR +SYS_OP_TRTB +SYS_OPTXICMP +SYS_OPTXQCASTASNQ +SYS_OP_UNDESCEND +SYS_OP_VECAND +SYS_OP_VECBIT +SYS_OP_VECOR +SYS_OP_VECXOR +SYS_OP_VERSION +SYS_OP_VREF +SYS_OP_VVD +SYS_OP_XMLCONS_FOR_CSX +SYS_OP_XPTHATG +SYS_OP_XPTHIDX +SYS_OP_XPTHOP +SYS_OP_XTXT2SQLT +SYS_OP_ZONE_ID +SYS_ORDERKEY_DEPTH +SYS_ORDERKEY_MAXCHILD +SYS_ORDERKEY_PARENT +SYS_PARALLEL_TXN +SYS_PATHID_IS_ATTR +SYS_PATHID_IS_NMSPC +SYS_PATHID_LASTNAME +SYS_PATHID_LASTNMSPC +SYS_PATH_REVERSE +SYS_PXQEXTRACT +SYS_RAW_TO_XSID +SYS_RID_ORDER +SYS_ROW_DELTA +SYS_SC_2_XMLT +SYS_SYNRCIREDO +SYSTEM_DEFINED +SYSTEM +SYSTIMESTAMP +SYS_TYPEID +SYS_UMAKEXML +SYS_XMLANALYZE +SYS_XMLCONTAINS +SYS_XMLCONV +SYS_XMLEXNSURI +SYS_XMLGEN +SYS_XMLI_LOC_ISNODE +SYS_XMLI_LOC_ISTEXT +SYS_XMLINSTR +SYS_XMLLOCATOR_GETSVAL +SYS_XMLNODEID_GETCID +SYS_XMLNODEID_GETLOCATOR +SYS_XMLNODEID_GETOKEY +SYS_XMLNODEID_GETPATHID +SYS_XMLNODEID_GETPTRID +SYS_XMLNODEID_GETRID +SYS_XMLNODEID_GETSVAL +SYS_XMLNODEID_GETTID +SYS_XMLNODEID +SYS_XMLT_2_SC +SYS_XMLTRANSLATE +SYS_XMLTYPE2SQL +SYS_XQ_ASQLCNV +SYS_XQ_ATOMCNVCHK +SYS_XQBASEURI +SYS_XQCASTABLEERRH +SYS_XQCODEP2STR +SYS_XQCODEPEQ +SYS_XQCON2SEQ +SYS_XQCONCAT +SYS_XQDELETE +SYS_XQDFLTCOLATION +SYS_XQDOC +SYS_XQDOCURI +SYS_XQDURDIV +SYS_XQED4URI +SYS_XQENDSWITH +SYS_XQERRH +SYS_XQERR +SYS_XQESHTMLURI +SYS_XQEXLOBVAL +SYS_XQEXSTWRP +SYS_XQEXTRACT +SYS_XQEXTRREF +SYS_XQEXVAL +SYS_XQFB2STR +SYS_XQFNBOOL +SYS_XQFNCMP +SYS_XQFNDATIM +SYS_XQFNLNAME +SYS_XQFNNM +SYS_XQFNNSURI +SYS_XQFNPREDTRUTH +SYS_XQFNQNM +SYS_XQFNROOT +SYS_XQFORMATNUM +SYS_XQFTCONTAIN +SYS_XQFUNCR +SYS_XQGETCONTENT +SYS_XQINDXOF +SYS_XQINSERT +SYS_XQINSPFX +SYS_XQIRI2URI +SYS_XQLANG +SYS_XQLLNMFRMQNM +SYS_XQMKNODEREF +SYS_XQNILLED +SYS_XQNODENAME +SYS_XQNORMSPACE +SYS_XQNORMUCODE +SYS_XQ_NRNG +SYS_XQNSP4PFX +SYS_XQNSPFRMQNM +SYS_XQPFXFRMQNM +SYS_XQ_PKSQL2XML +SYS_XQPOLYABS +SYS_XQPOLYADD +SYS_XQPOLYCEL +SYS_XQPOLYCSTBL +SYS_XQPOLYCST +SYS_XQPOLYDIV +SYS_XQPOLYFLR +SYS_XQPOLYMOD +SYS_XQPOLYMUL +SYS_XQPOLYRND +SYS_XQPOLYSQRT +SYS_XQPOLYSUB +SYS_XQPOLYUMUS +SYS_XQPOLYUPLS +SYS_XQPOLYVEQ +SYS_XQPOLYVGE +SYS_XQPOLYVGT +SYS_XQPOLYVLE +SYS_XQPOLYVLT +SYS_XQPOLYVNE +SYS_XQREF2VAL +SYS_XQRENAME +SYS_XQREPLACE +SYS_XQRESVURI +SYS_XQRNDHALF2EVN +SYS_XQRSLVQNM +SYS_XQRYENVPGET +SYS_XQRYVARGET +SYS_XQRYWRP +SYS_XQSEQ2CON4XC +SYS_XQSEQ2CON +SYS_XQSEQDEEPEQ +SYS_XQSEQINSB +SYS_XQSEQRM +SYS_XQSEQRVS +SYS_XQSEQSUB +SYS_XQSEQTYPMATCH +SYS_XQSTARTSWITH +SYS_XQSTATBURI +SYS_XQSTR2CODEP +SYS_XQSTRJOIN +SYS_XQSUBSTRAFT +SYS_XQSUBSTRBEF +SYS_XQTOKENIZE +SYS_XQTREATAS +SYS_XQ_UPKXML2SQL +SYS_XQXFORM +SYS_XSID_TO_RAW +SYS_ZMAP_FILTER +SYS_ZMAP_REFRESH +T_LETTER +TABLE_LOOKUP_BY_NL +TABLESPACE_NO +TABLESPACE +TABLES +TABLE_STATS +TABLE +TABNO +TAG +TANH +TAN +TBLORIDXPARTNUM +TEMPFILE +TEMPLATE +TEMPLATE_TABLE +TEMPORARY +TEMP_TABLE +TERMINATED +TEST +TEXT +TEXTFILE +THAN +THEN +THE +THESE +THREAD +THROUGH +TIER +TIES +TIMEOUT +TIMESTAMP_LTZ_UNCONSTRAINED +TIMESTAMP +TIMESTAMP_TZ_UNCONSTRAINED +TIMESTAMP_UNCONSTRAINED +TIMES +TIME +TIMEZONE +TIMEZONE_ABBR +TIMEZONE_HOUR +TIMEZONE_MINUTE +TIMEZONE_OFFSET +TIMEZONE_REGION +TIME_ZONE +TIMING +TINYINT +TIV_GB +TIV_SSF +TO_ACLID +TO_BINARY_DOUBLE +TO_BINARY_FLOAT +TO_BLOB +TO_CLOB +TO_DSINTERVAL +TO_LOB +TO_MULTI_BYTE +TO_NCHAR +TO_NCLOB +TO_NUMBER +TOPLEVEL +TO_SINGLE_BYTE +TO_TIMESTAMP +TO_TIMESTAMP_TZ +TO_TIME +TO_TIME_TZ +TO +TO_YMINTERVAL +TRACE +TRACING +TRACKING +TRAILING +TRANSACTION +TRANSFORM +TRANSFORMS +TRANSFORM_DISTINCT_AGG +TRANSITIONAL +TRANSITION +TRANSLATE +TRANSLATION +TREAT +TRIGGERS +TRIGGER +TRUE +TRUNCATE +TRUNC +TRUSTED +TRUST +TUNING +TX +TYPES +TYPE +TZ_OFFSET +UB2 +UBA +UCS2 +UDF +UID +UNARCHIVED +UNBOUNDED +UNBOUND +UNCONDITIONAL +UNDER +UNDO +UNDROP +UNIFORM +UNION +UNIONTYPE +UNIQUE +UNISTR +UNLIMITED +UNLOAD +UNLOCK +UNMATCHED +UNNEST_INNERJ_DISTINCT_VIEW +UNNEST_NOSEMIJ_NODISTINCTVIEW +UNNEST_SEMIJ_VIEW +UNNEST +UNPACKED +UNPIVOT +UNPLUG +UNPROTECTED +UNQUIESCE +UNRECOVERABLE +UNRESTRICTED +UNSIGNED +UNSUBSCRIBE +UNTIL +UNUSABLE +UNUSED +UPDATABLE +UPDATED +UPDATE +UPDATEXML +UPD_INDEXES +UPD_JOININDEX +UPGRADE +UPPER +UPSERT +UROWID +USABLE +USAGE +USE_ANTI +USE_CONCAT +USE_CUBE +USE_HASH_AGGREGATION +USE_HASH_GBY_FOR_PUSHDOWN +USE_HASH +USE_HIDDEN_PARTITIONS +USE_INVISIBLE_INDEXES +USE_MERGE_CARTESIAN +USE_MERGE +USE_NL +USE_NL_WITH_INDEX +USE_PRIVATE_OUTLINES +USER_DATA +USER_DEFINED +USERENV +USERGROUP +USER_RECYCLEBIN +USERS +USER_TABLESPACES +USER +USE_SEMI +USE_STORED_OUTLINES +USE_TTT_FOR_GSETS +USE +USE_VECTOR_AGGREGATION +USE_WEAK_NAME_RESL +USING_NO_EXPAND +USING_NLS_COMP +USING +UTF16BE +UTF16LE +UTF32 +UTF8 +V1 +V2 +VALIDATE +VALIDATE_CONVERSION +VALIDATION +VALID_TIME_END +VALUES +VALUE +VARCHAR2 +VARCHAR +VARCHARC +VARIABLE +VARRAW +VARRAWC +VAR_POP +VARRAYS +VARRAY +VAR_SAMP +VARYING +VECTOR_READ_TRACE +VECTOR_READ +VECTOR_TRANSFORM_DIMS +VECTOR_TRANSFORM_FACT +VECTOR_TRANSFORM +VERIFIER +VERIFY +VERSIONING +VERSIONS_ENDSCN +VERSIONS_ENDTIME +VERSIONS_OPERATION +VERSIONS_STARTSCN +VERSIONS_STARTTIME +VERSIONS +VERSIONS_XID +VERSION +VIEW +VIOLATION +VIRTUAL +VISIBILITY +VISIBLE +VOLUME +VSIZE +WAIT +WALLET +WARNING +WEEKS +WEEK +WELLFORMED +WHENEVER +WHEN +WHERE +WHILE +WHITESPACE +WIDTH_BUCKET +WITHIN +WITHOUT +WITH_PLSQL +WITH +WORK +WORKERID +WRAPPED +WRAPPER +WRITE +XDB_FASTPATH_INSERT +XDB +X_DYN_PRUNE +XID +XML2OBJECT +XMLAGG +XMLATTRIBUTES +XMLCAST +XMLCDATA +XMLCOLATTVAL +XMLCOMMENT +XMLCONCAT +XMLDIFF +XML_DML_RWT_STMT +XMLELEMENT +XMLEXISTS2 +XMLEXISTS +XMLFOREST +XMLINDEX +XMLINDEX_REWRITE_IN_SELECT +XMLINDEX_REWRITE +XMLINDEX_SEL_IDX_TBL +XMLISNODE +XMLISVALID +XMLNAMESPACES +XMLPARSE +XMLPATCH +XMLPI +XMLQUERYVAL +XMLQUERY +XMLROOT +XMLSCHEMA +XMLSERIALIZE +XMLTABLE +XMLTAG +XMLTRANSFORMBLOB +XMLTRANSFORM +XMLTYPE +XML +XPATHTABLE +XS_SYS_CONTEXT +XS +XTRANSPORT +YEARS +YEAR +YEAR_TO_MONTH +YES +YMINTERVAL_UNCONSTRAINED +ZONEMAP +ZONE +ZONED +PREDICTION +PREDICTION_BOUNDS +PREDICTION_COST +PREDICTION_DETAILS +PREDICTION_PROBABILITY +PREDICTION_SET +BLOCKCHAIN +COLLATE +COLLATION +DEFINITION +DUPLICATED +EXTENDED +HASHING +IDLE +IMMUTABLE +ORACLE_DATAPUMP +ORACLE_HDFS +ORACLE_HIVE +ORACLE_LOADER +SHA2_512_Q +SHARDED +V1_Q +ISOLATE +ROOT +UNITE +ALGORITHM +CUME_DIST +DENSE_RANK +LISTAGG +PERCENT_RANK +PERCENTILE_CONT +PERCENTILE_DISC +RANK +AVG +CORR +COVAR_ +DECODE +LAG +LAG_DIFF +LAG_DIFF_PERCENT +LEAD +MAX +MEDIAN +MEMOPTIMIZE +MIN +NTILE +NVL +RATIO_TO_REPORT +REGR_ +ROUND +ROW_NUMBER +SUBSTR +TO_CHAR +TRIM +SUM +STDDEV +VAR_ +VARIANCE +LEAST +GREATEST +TO_DATE +CHARSETID +CHARSETFORM +DURATION +EXTEND +MAXLEN +PERSISTABLE +POLYMORPHIC +STRUCT +TDO +WM_CONCAT +NATIONAL_CHAR_STRING_LIT +BIT_STRING_LIT +HEX_STRING_LIT +DOUBLE_PERIOD +PERIOD +UNSIGNED_INTEGER +APPROXIMATE_NUM_LIT +CHAR_STRING +CHAR_STRING_PERL +QS_ANGLE +QS_BRACE +QS_BRACK +QS_PAREN +QS_EXCLAM +QS_SHARP +QS_QUOTE +QS_DQUOTE +QS_TILDA +QS_SOLIDUS +QS_RSOLIDUS +DELIMITED_ID +PERCENT +AMPERSAND +LEFT_PAREN +RIGHT_PAREN +DOUBLE_ASTERISK +ASTERISK +PLUS_SIGN +MINUS_SIGN +COMMA +SOLIDUS +AT_SIGN +ASSIGN_OP +HASH_OP +LEFT_CURLY_PAREN +RIGHT_CURLY_PAREN +SQ +BINDVAR +NOT_EQUAL_OP +CARRET_OPERATOR_PART +TILDE_OPERATOR_PART +EXCLAMATION_OPERATOR_PART +GREATER_THAN_OP +LESS_THAN_OP +COLON +SEMICOLON +BAR +EQUALS_OP +LEFT_BRACKET +RIGHT_BRACKET +INTRODUCER +SINGLE_LINE_COMMENT +MULTI_LINE_COMMENT +REMARK_COMMENT +PROMPT_MESSAGE +START_CMD +REGULAR_ID +INQUIRY_DIRECTIVE +SPACES +NEWLINE_EOF +QUESTION_MARK +SIMPLE_LETTER +FLOAT_FRAGMENT +NEWLINE +SPACE + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 2480, 32416, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 2, 440, 7, 440, 2, 441, 7, 441, 2, 442, 7, 442, 2, 443, 7, 443, 2, 444, 7, 444, 2, 445, 7, 445, 2, 446, 7, 446, 2, 447, 7, 447, 2, 448, 7, 448, 2, 449, 7, 449, 2, 450, 7, 450, 2, 451, 7, 451, 2, 452, 7, 452, 2, 453, 7, 453, 2, 454, 7, 454, 2, 455, 7, 455, 2, 456, 7, 456, 2, 457, 7, 457, 2, 458, 7, 458, 2, 459, 7, 459, 2, 460, 7, 460, 2, 461, 7, 461, 2, 462, 7, 462, 2, 463, 7, 463, 2, 464, 7, 464, 2, 465, 7, 465, 2, 466, 7, 466, 2, 467, 7, 467, 2, 468, 7, 468, 2, 469, 7, 469, 2, 470, 7, 470, 2, 471, 7, 471, 2, 472, 7, 472, 2, 473, 7, 473, 2, 474, 7, 474, 2, 475, 7, 475, 2, 476, 7, 476, 2, 477, 7, 477, 2, 478, 7, 478, 2, 479, 7, 479, 2, 480, 7, 480, 2, 481, 7, 481, 2, 482, 7, 482, 2, 483, 7, 483, 2, 484, 7, 484, 2, 485, 7, 485, 2, 486, 7, 486, 2, 487, 7, 487, 2, 488, 7, 488, 2, 489, 7, 489, 2, 490, 7, 490, 2, 491, 7, 491, 2, 492, 7, 492, 2, 493, 7, 493, 2, 494, 7, 494, 2, 495, 7, 495, 2, 496, 7, 496, 2, 497, 7, 497, 2, 498, 7, 498, 2, 499, 7, 499, 2, 500, 7, 500, 2, 501, 7, 501, 2, 502, 7, 502, 2, 503, 7, 503, 2, 504, 7, 504, 2, 505, 7, 505, 2, 506, 7, 506, 2, 507, 7, 507, 2, 508, 7, 508, 2, 509, 7, 509, 2, 510, 7, 510, 2, 511, 7, 511, 2, 512, 7, 512, 2, 513, 7, 513, 2, 514, 7, 514, 2, 515, 7, 515, 2, 516, 7, 516, 2, 517, 7, 517, 2, 518, 7, 518, 2, 519, 7, 519, 2, 520, 7, 520, 2, 521, 7, 521, 2, 522, 7, 522, 2, 523, 7, 523, 2, 524, 7, 524, 2, 525, 7, 525, 2, 526, 7, 526, 2, 527, 7, 527, 2, 528, 7, 528, 2, 529, 7, 529, 2, 530, 7, 530, 2, 531, 7, 531, 2, 532, 7, 532, 2, 533, 7, 533, 2, 534, 7, 534, 2, 535, 7, 535, 2, 536, 7, 536, 2, 537, 7, 537, 2, 538, 7, 538, 2, 539, 7, 539, 2, 540, 7, 540, 2, 541, 7, 541, 2, 542, 7, 542, 2, 543, 7, 543, 2, 544, 7, 544, 2, 545, 7, 545, 2, 546, 7, 546, 2, 547, 7, 547, 2, 548, 7, 548, 2, 549, 7, 549, 2, 550, 7, 550, 2, 551, 7, 551, 2, 552, 7, 552, 2, 553, 7, 553, 2, 554, 7, 554, 2, 555, 7, 555, 2, 556, 7, 556, 2, 557, 7, 557, 2, 558, 7, 558, 2, 559, 7, 559, 2, 560, 7, 560, 2, 561, 7, 561, 2, 562, 7, 562, 2, 563, 7, 563, 2, 564, 7, 564, 2, 565, 7, 565, 2, 566, 7, 566, 2, 567, 7, 567, 2, 568, 7, 568, 2, 569, 7, 569, 2, 570, 7, 570, 2, 571, 7, 571, 2, 572, 7, 572, 2, 573, 7, 573, 2, 574, 7, 574, 2, 575, 7, 575, 2, 576, 7, 576, 2, 577, 7, 577, 2, 578, 7, 578, 2, 579, 7, 579, 2, 580, 7, 580, 2, 581, 7, 581, 2, 582, 7, 582, 2, 583, 7, 583, 2, 584, 7, 584, 2, 585, 7, 585, 2, 586, 7, 586, 2, 587, 7, 587, 2, 588, 7, 588, 2, 589, 7, 589, 2, 590, 7, 590, 2, 591, 7, 591, 2, 592, 7, 592, 2, 593, 7, 593, 2, 594, 7, 594, 2, 595, 7, 595, 2, 596, 7, 596, 2, 597, 7, 597, 2, 598, 7, 598, 2, 599, 7, 599, 2, 600, 7, 600, 2, 601, 7, 601, 2, 602, 7, 602, 2, 603, 7, 603, 2, 604, 7, 604, 2, 605, 7, 605, 2, 606, 7, 606, 2, 607, 7, 607, 2, 608, 7, 608, 2, 609, 7, 609, 2, 610, 7, 610, 2, 611, 7, 611, 2, 612, 7, 612, 2, 613, 7, 613, 2, 614, 7, 614, 2, 615, 7, 615, 2, 616, 7, 616, 2, 617, 7, 617, 2, 618, 7, 618, 2, 619, 7, 619, 2, 620, 7, 620, 2, 621, 7, 621, 2, 622, 7, 622, 2, 623, 7, 623, 2, 624, 7, 624, 2, 625, 7, 625, 2, 626, 7, 626, 2, 627, 7, 627, 2, 628, 7, 628, 2, 629, 7, 629, 2, 630, 7, 630, 2, 631, 7, 631, 2, 632, 7, 632, 2, 633, 7, 633, 2, 634, 7, 634, 2, 635, 7, 635, 2, 636, 7, 636, 2, 637, 7, 637, 2, 638, 7, 638, 2, 639, 7, 639, 2, 640, 7, 640, 2, 641, 7, 641, 2, 642, 7, 642, 2, 643, 7, 643, 2, 644, 7, 644, 2, 645, 7, 645, 2, 646, 7, 646, 2, 647, 7, 647, 2, 648, 7, 648, 2, 649, 7, 649, 2, 650, 7, 650, 2, 651, 7, 651, 2, 652, 7, 652, 2, 653, 7, 653, 2, 654, 7, 654, 2, 655, 7, 655, 2, 656, 7, 656, 2, 657, 7, 657, 2, 658, 7, 658, 2, 659, 7, 659, 2, 660, 7, 660, 2, 661, 7, 661, 2, 662, 7, 662, 2, 663, 7, 663, 2, 664, 7, 664, 2, 665, 7, 665, 2, 666, 7, 666, 2, 667, 7, 667, 2, 668, 7, 668, 2, 669, 7, 669, 2, 670, 7, 670, 2, 671, 7, 671, 2, 672, 7, 672, 2, 673, 7, 673, 2, 674, 7, 674, 2, 675, 7, 675, 2, 676, 7, 676, 2, 677, 7, 677, 2, 678, 7, 678, 2, 679, 7, 679, 2, 680, 7, 680, 2, 681, 7, 681, 2, 682, 7, 682, 2, 683, 7, 683, 2, 684, 7, 684, 2, 685, 7, 685, 2, 686, 7, 686, 2, 687, 7, 687, 2, 688, 7, 688, 2, 689, 7, 689, 2, 690, 7, 690, 2, 691, 7, 691, 2, 692, 7, 692, 2, 693, 7, 693, 2, 694, 7, 694, 2, 695, 7, 695, 2, 696, 7, 696, 2, 697, 7, 697, 2, 698, 7, 698, 2, 699, 7, 699, 2, 700, 7, 700, 2, 701, 7, 701, 2, 702, 7, 702, 2, 703, 7, 703, 2, 704, 7, 704, 2, 705, 7, 705, 2, 706, 7, 706, 2, 707, 7, 707, 2, 708, 7, 708, 2, 709, 7, 709, 2, 710, 7, 710, 2, 711, 7, 711, 2, 712, 7, 712, 2, 713, 7, 713, 2, 714, 7, 714, 2, 715, 7, 715, 2, 716, 7, 716, 2, 717, 7, 717, 2, 718, 7, 718, 2, 719, 7, 719, 2, 720, 7, 720, 2, 721, 7, 721, 2, 722, 7, 722, 2, 723, 7, 723, 2, 724, 7, 724, 2, 725, 7, 725, 2, 726, 7, 726, 2, 727, 7, 727, 2, 728, 7, 728, 2, 729, 7, 729, 2, 730, 7, 730, 2, 731, 7, 731, 2, 732, 7, 732, 2, 733, 7, 733, 2, 734, 7, 734, 2, 735, 7, 735, 2, 736, 7, 736, 2, 737, 7, 737, 2, 738, 7, 738, 2, 739, 7, 739, 2, 740, 7, 740, 2, 741, 7, 741, 2, 742, 7, 742, 2, 743, 7, 743, 2, 744, 7, 744, 2, 745, 7, 745, 2, 746, 7, 746, 2, 747, 7, 747, 2, 748, 7, 748, 2, 749, 7, 749, 2, 750, 7, 750, 2, 751, 7, 751, 2, 752, 7, 752, 2, 753, 7, 753, 2, 754, 7, 754, 2, 755, 7, 755, 2, 756, 7, 756, 2, 757, 7, 757, 2, 758, 7, 758, 2, 759, 7, 759, 2, 760, 7, 760, 2, 761, 7, 761, 2, 762, 7, 762, 2, 763, 7, 763, 2, 764, 7, 764, 2, 765, 7, 765, 2, 766, 7, 766, 2, 767, 7, 767, 2, 768, 7, 768, 2, 769, 7, 769, 2, 770, 7, 770, 2, 771, 7, 771, 2, 772, 7, 772, 2, 773, 7, 773, 2, 774, 7, 774, 2, 775, 7, 775, 2, 776, 7, 776, 2, 777, 7, 777, 2, 778, 7, 778, 2, 779, 7, 779, 2, 780, 7, 780, 2, 781, 7, 781, 2, 782, 7, 782, 2, 783, 7, 783, 2, 784, 7, 784, 2, 785, 7, 785, 2, 786, 7, 786, 2, 787, 7, 787, 2, 788, 7, 788, 2, 789, 7, 789, 2, 790, 7, 790, 2, 791, 7, 791, 2, 792, 7, 792, 2, 793, 7, 793, 2, 794, 7, 794, 2, 795, 7, 795, 2, 796, 7, 796, 2, 797, 7, 797, 2, 798, 7, 798, 2, 799, 7, 799, 2, 800, 7, 800, 2, 801, 7, 801, 2, 802, 7, 802, 2, 803, 7, 803, 2, 804, 7, 804, 2, 805, 7, 805, 2, 806, 7, 806, 2, 807, 7, 807, 2, 808, 7, 808, 2, 809, 7, 809, 2, 810, 7, 810, 2, 811, 7, 811, 2, 812, 7, 812, 2, 813, 7, 813, 2, 814, 7, 814, 2, 815, 7, 815, 2, 816, 7, 816, 2, 817, 7, 817, 2, 818, 7, 818, 2, 819, 7, 819, 2, 820, 7, 820, 2, 821, 7, 821, 2, 822, 7, 822, 2, 823, 7, 823, 2, 824, 7, 824, 2, 825, 7, 825, 2, 826, 7, 826, 2, 827, 7, 827, 2, 828, 7, 828, 2, 829, 7, 829, 2, 830, 7, 830, 2, 831, 7, 831, 2, 832, 7, 832, 2, 833, 7, 833, 2, 834, 7, 834, 2, 835, 7, 835, 2, 836, 7, 836, 2, 837, 7, 837, 2, 838, 7, 838, 2, 839, 7, 839, 2, 840, 7, 840, 2, 841, 7, 841, 2, 842, 7, 842, 2, 843, 7, 843, 2, 844, 7, 844, 2, 845, 7, 845, 2, 846, 7, 846, 2, 847, 7, 847, 2, 848, 7, 848, 2, 849, 7, 849, 2, 850, 7, 850, 2, 851, 7, 851, 2, 852, 7, 852, 2, 853, 7, 853, 2, 854, 7, 854, 2, 855, 7, 855, 2, 856, 7, 856, 2, 857, 7, 857, 2, 858, 7, 858, 2, 859, 7, 859, 2, 860, 7, 860, 2, 861, 7, 861, 2, 862, 7, 862, 2, 863, 7, 863, 2, 864, 7, 864, 2, 865, 7, 865, 2, 866, 7, 866, 2, 867, 7, 867, 2, 868, 7, 868, 2, 869, 7, 869, 2, 870, 7, 870, 2, 871, 7, 871, 2, 872, 7, 872, 2, 873, 7, 873, 2, 874, 7, 874, 2, 875, 7, 875, 2, 876, 7, 876, 2, 877, 7, 877, 2, 878, 7, 878, 2, 879, 7, 879, 2, 880, 7, 880, 2, 881, 7, 881, 2, 882, 7, 882, 2, 883, 7, 883, 2, 884, 7, 884, 2, 885, 7, 885, 2, 886, 7, 886, 2, 887, 7, 887, 2, 888, 7, 888, 2, 889, 7, 889, 2, 890, 7, 890, 2, 891, 7, 891, 2, 892, 7, 892, 2, 893, 7, 893, 2, 894, 7, 894, 2, 895, 7, 895, 2, 896, 7, 896, 2, 897, 7, 897, 2, 898, 7, 898, 2, 899, 7, 899, 2, 900, 7, 900, 2, 901, 7, 901, 2, 902, 7, 902, 2, 903, 7, 903, 2, 904, 7, 904, 2, 905, 7, 905, 2, 906, 7, 906, 2, 907, 7, 907, 2, 908, 7, 908, 2, 909, 7, 909, 2, 910, 7, 910, 2, 911, 7, 911, 2, 912, 7, 912, 2, 913, 7, 913, 2, 914, 7, 914, 2, 915, 7, 915, 2, 916, 7, 916, 2, 917, 7, 917, 2, 918, 7, 918, 2, 919, 7, 919, 2, 920, 7, 920, 2, 921, 7, 921, 2, 922, 7, 922, 2, 923, 7, 923, 2, 924, 7, 924, 2, 925, 7, 925, 2, 926, 7, 926, 2, 927, 7, 927, 2, 928, 7, 928, 2, 929, 7, 929, 2, 930, 7, 930, 2, 931, 7, 931, 2, 932, 7, 932, 2, 933, 7, 933, 2, 934, 7, 934, 2, 935, 7, 935, 2, 936, 7, 936, 2, 937, 7, 937, 2, 938, 7, 938, 2, 939, 7, 939, 2, 940, 7, 940, 2, 941, 7, 941, 2, 942, 7, 942, 2, 943, 7, 943, 2, 944, 7, 944, 2, 945, 7, 945, 2, 946, 7, 946, 2, 947, 7, 947, 2, 948, 7, 948, 2, 949, 7, 949, 2, 950, 7, 950, 2, 951, 7, 951, 2, 952, 7, 952, 2, 953, 7, 953, 2, 954, 7, 954, 2, 955, 7, 955, 2, 956, 7, 956, 2, 957, 7, 957, 2, 958, 7, 958, 2, 959, 7, 959, 2, 960, 7, 960, 2, 961, 7, 961, 2, 962, 7, 962, 2, 963, 7, 963, 2, 964, 7, 964, 2, 965, 7, 965, 2, 966, 7, 966, 2, 967, 7, 967, 2, 968, 7, 968, 2, 969, 7, 969, 2, 970, 7, 970, 2, 971, 7, 971, 2, 972, 7, 972, 2, 973, 7, 973, 2, 974, 7, 974, 2, 975, 7, 975, 2, 976, 7, 976, 2, 977, 7, 977, 2, 978, 7, 978, 2, 979, 7, 979, 2, 980, 7, 980, 2, 981, 7, 981, 2, 982, 7, 982, 2, 983, 7, 983, 2, 984, 7, 984, 2, 985, 7, 985, 2, 986, 7, 986, 2, 987, 7, 987, 2, 988, 7, 988, 2, 989, 7, 989, 2, 990, 7, 990, 2, 991, 7, 991, 2, 992, 7, 992, 2, 993, 7, 993, 2, 994, 7, 994, 2, 995, 7, 995, 2, 996, 7, 996, 2, 997, 7, 997, 2, 998, 7, 998, 2, 999, 7, 999, 2, 1000, 7, 1000, 2, 1001, 7, 1001, 2, 1002, 7, 1002, 2, 1003, 7, 1003, 2, 1004, 7, 1004, 2, 1005, 7, 1005, 2, 1006, 7, 1006, 2, 1007, 7, 1007, 2, 1008, 7, 1008, 2, 1009, 7, 1009, 2, 1010, 7, 1010, 2, 1011, 7, 1011, 2, 1012, 7, 1012, 2, 1013, 7, 1013, 2, 1014, 7, 1014, 2, 1015, 7, 1015, 2, 1016, 7, 1016, 2, 1017, 7, 1017, 2, 1018, 7, 1018, 2, 1019, 7, 1019, 2, 1020, 7, 1020, 2, 1021, 7, 1021, 2, 1022, 7, 1022, 2, 1023, 7, 1023, 2, 1024, 7, 1024, 2, 1025, 7, 1025, 2, 1026, 7, 1026, 2, 1027, 7, 1027, 2, 1028, 7, 1028, 2, 1029, 7, 1029, 2, 1030, 7, 1030, 2, 1031, 7, 1031, 2, 1032, 7, 1032, 2, 1033, 7, 1033, 2, 1034, 7, 1034, 2, 1035, 7, 1035, 2, 1036, 7, 1036, 2, 1037, 7, 1037, 2, 1038, 7, 1038, 2, 1039, 7, 1039, 2, 1040, 7, 1040, 2, 1041, 7, 1041, 2, 1042, 7, 1042, 2, 1043, 7, 1043, 2, 1044, 7, 1044, 2, 1045, 7, 1045, 2, 1046, 7, 1046, 2, 1047, 7, 1047, 2, 1048, 7, 1048, 2, 1049, 7, 1049, 2, 1050, 7, 1050, 2, 1051, 7, 1051, 2, 1052, 7, 1052, 2, 1053, 7, 1053, 2, 1054, 7, 1054, 2, 1055, 7, 1055, 2, 1056, 7, 1056, 2, 1057, 7, 1057, 2, 1058, 7, 1058, 2, 1059, 7, 1059, 2, 1060, 7, 1060, 2, 1061, 7, 1061, 2, 1062, 7, 1062, 2, 1063, 7, 1063, 2, 1064, 7, 1064, 2, 1065, 7, 1065, 2, 1066, 7, 1066, 2, 1067, 7, 1067, 2, 1068, 7, 1068, 2, 1069, 7, 1069, 2, 1070, 7, 1070, 2, 1071, 7, 1071, 2, 1072, 7, 1072, 2, 1073, 7, 1073, 2, 1074, 7, 1074, 2, 1075, 7, 1075, 2, 1076, 7, 1076, 2, 1077, 7, 1077, 2, 1078, 7, 1078, 2, 1079, 7, 1079, 2, 1080, 7, 1080, 2, 1081, 7, 1081, 2, 1082, 7, 1082, 2, 1083, 7, 1083, 2, 1084, 7, 1084, 2, 1085, 7, 1085, 2, 1086, 7, 1086, 2, 1087, 7, 1087, 2, 1088, 7, 1088, 2, 1089, 7, 1089, 2, 1090, 7, 1090, 2, 1091, 7, 1091, 2, 1092, 7, 1092, 2, 1093, 7, 1093, 2, 1094, 7, 1094, 2, 1095, 7, 1095, 2, 1096, 7, 1096, 2, 1097, 7, 1097, 2, 1098, 7, 1098, 2, 1099, 7, 1099, 2, 1100, 7, 1100, 2, 1101, 7, 1101, 2, 1102, 7, 1102, 2, 1103, 7, 1103, 2, 1104, 7, 1104, 2, 1105, 7, 1105, 2, 1106, 7, 1106, 2, 1107, 7, 1107, 2, 1108, 7, 1108, 2, 1109, 7, 1109, 2, 1110, 7, 1110, 2, 1111, 7, 1111, 2, 1112, 7, 1112, 2, 1113, 7, 1113, 2, 1114, 7, 1114, 2, 1115, 7, 1115, 2, 1116, 7, 1116, 2, 1117, 7, 1117, 2, 1118, 7, 1118, 2, 1119, 7, 1119, 2, 1120, 7, 1120, 2, 1121, 7, 1121, 2, 1122, 7, 1122, 2, 1123, 7, 1123, 2, 1124, 7, 1124, 2, 1125, 7, 1125, 2, 1126, 7, 1126, 2, 1127, 7, 1127, 2, 1128, 7, 1128, 2, 1129, 7, 1129, 2, 1130, 7, 1130, 2, 1131, 7, 1131, 2, 1132, 7, 1132, 2, 1133, 7, 1133, 2, 1134, 7, 1134, 2, 1135, 7, 1135, 2, 1136, 7, 1136, 2, 1137, 7, 1137, 2, 1138, 7, 1138, 2, 1139, 7, 1139, 2, 1140, 7, 1140, 2, 1141, 7, 1141, 2, 1142, 7, 1142, 2, 1143, 7, 1143, 2, 1144, 7, 1144, 2, 1145, 7, 1145, 2, 1146, 7, 1146, 2, 1147, 7, 1147, 2, 1148, 7, 1148, 2, 1149, 7, 1149, 2, 1150, 7, 1150, 2, 1151, 7, 1151, 2, 1152, 7, 1152, 2, 1153, 7, 1153, 2, 1154, 7, 1154, 2, 1155, 7, 1155, 2, 1156, 7, 1156, 2, 1157, 7, 1157, 2, 1158, 7, 1158, 2, 1159, 7, 1159, 2, 1160, 7, 1160, 2, 1161, 7, 1161, 2, 1162, 7, 1162, 2, 1163, 7, 1163, 2, 1164, 7, 1164, 2, 1165, 7, 1165, 2, 1166, 7, 1166, 2, 1167, 7, 1167, 2, 1168, 7, 1168, 2, 1169, 7, 1169, 2, 1170, 7, 1170, 2, 1171, 7, 1171, 2, 1172, 7, 1172, 2, 1173, 7, 1173, 2, 1174, 7, 1174, 2, 1175, 7, 1175, 2, 1176, 7, 1176, 2, 1177, 7, 1177, 2, 1178, 7, 1178, 2, 1179, 7, 1179, 2, 1180, 7, 1180, 2, 1181, 7, 1181, 2, 1182, 7, 1182, 2, 1183, 7, 1183, 2, 1184, 7, 1184, 2, 1185, 7, 1185, 2, 1186, 7, 1186, 2, 1187, 7, 1187, 2, 1188, 7, 1188, 2, 1189, 7, 1189, 2, 1190, 7, 1190, 2, 1191, 7, 1191, 2, 1192, 7, 1192, 2, 1193, 7, 1193, 2, 1194, 7, 1194, 2, 1195, 7, 1195, 2, 1196, 7, 1196, 2, 1197, 7, 1197, 2, 1198, 7, 1198, 2, 1199, 7, 1199, 2, 1200, 7, 1200, 2, 1201, 7, 1201, 2, 1202, 7, 1202, 2, 1203, 7, 1203, 2, 1204, 7, 1204, 2, 1205, 7, 1205, 2, 1206, 7, 1206, 2, 1207, 7, 1207, 2, 1208, 7, 1208, 2, 1209, 7, 1209, 2, 1210, 7, 1210, 2, 1211, 7, 1211, 2, 1212, 7, 1212, 2, 1213, 7, 1213, 2, 1214, 7, 1214, 2, 1215, 7, 1215, 2, 1216, 7, 1216, 2, 1217, 7, 1217, 2, 1218, 7, 1218, 2, 1219, 7, 1219, 2, 1220, 7, 1220, 2, 1221, 7, 1221, 2, 1222, 7, 1222, 2, 1223, 7, 1223, 2, 1224, 7, 1224, 2, 1225, 7, 1225, 2, 1226, 7, 1226, 2, 1227, 7, 1227, 2, 1228, 7, 1228, 2, 1229, 7, 1229, 2, 1230, 7, 1230, 2, 1231, 7, 1231, 2, 1232, 7, 1232, 2, 1233, 7, 1233, 2, 1234, 7, 1234, 2, 1235, 7, 1235, 2, 1236, 7, 1236, 2, 1237, 7, 1237, 2, 1238, 7, 1238, 2, 1239, 7, 1239, 2, 1240, 7, 1240, 2, 1241, 7, 1241, 2, 1242, 7, 1242, 2, 1243, 7, 1243, 2, 1244, 7, 1244, 2, 1245, 7, 1245, 2, 1246, 7, 1246, 2, 1247, 7, 1247, 2, 1248, 7, 1248, 2, 1249, 7, 1249, 2, 1250, 7, 1250, 2, 1251, 7, 1251, 2, 1252, 7, 1252, 2, 1253, 7, 1253, 2, 1254, 7, 1254, 2, 1255, 7, 1255, 2, 1256, 7, 1256, 2, 1257, 7, 1257, 2, 1258, 7, 1258, 2, 1259, 7, 1259, 2, 1260, 7, 1260, 2, 1261, 7, 1261, 2, 1262, 7, 1262, 2, 1263, 7, 1263, 2, 1264, 7, 1264, 2, 1265, 7, 1265, 2, 1266, 7, 1266, 2, 1267, 7, 1267, 2, 1268, 7, 1268, 2, 1269, 7, 1269, 2, 1270, 7, 1270, 2, 1271, 7, 1271, 2, 1272, 7, 1272, 2, 1273, 7, 1273, 2, 1274, 7, 1274, 2, 1275, 7, 1275, 2, 1276, 7, 1276, 2, 1277, 7, 1277, 2, 1278, 7, 1278, 2, 1279, 7, 1279, 2, 1280, 7, 1280, 2, 1281, 7, 1281, 2, 1282, 7, 1282, 2, 1283, 7, 1283, 2, 1284, 7, 1284, 2, 1285, 7, 1285, 2, 1286, 7, 1286, 2, 1287, 7, 1287, 2, 1288, 7, 1288, 2, 1289, 7, 1289, 2, 1290, 7, 1290, 2, 1291, 7, 1291, 2, 1292, 7, 1292, 2, 1293, 7, 1293, 2, 1294, 7, 1294, 2, 1295, 7, 1295, 2, 1296, 7, 1296, 2, 1297, 7, 1297, 2, 1298, 7, 1298, 2, 1299, 7, 1299, 2, 1300, 7, 1300, 2, 1301, 7, 1301, 2, 1302, 7, 1302, 2, 1303, 7, 1303, 2, 1304, 7, 1304, 2, 1305, 7, 1305, 2, 1306, 7, 1306, 2, 1307, 7, 1307, 2, 1308, 7, 1308, 2, 1309, 7, 1309, 2, 1310, 7, 1310, 2, 1311, 7, 1311, 2, 1312, 7, 1312, 2, 1313, 7, 1313, 2, 1314, 7, 1314, 2, 1315, 7, 1315, 2, 1316, 7, 1316, 2, 1317, 7, 1317, 2, 1318, 7, 1318, 2, 1319, 7, 1319, 2, 1320, 7, 1320, 2, 1321, 7, 1321, 2, 1322, 7, 1322, 2, 1323, 7, 1323, 2, 1324, 7, 1324, 2, 1325, 7, 1325, 2, 1326, 7, 1326, 2, 1327, 7, 1327, 2, 1328, 7, 1328, 2, 1329, 7, 1329, 2, 1330, 7, 1330, 2, 1331, 7, 1331, 2, 1332, 7, 1332, 2, 1333, 7, 1333, 2, 1334, 7, 1334, 2, 1335, 7, 1335, 2, 1336, 7, 1336, 2, 1337, 7, 1337, 2, 1338, 7, 1338, 2, 1339, 7, 1339, 2, 1340, 7, 1340, 2, 1341, 7, 1341, 2, 1342, 7, 1342, 2, 1343, 7, 1343, 2, 1344, 7, 1344, 2, 1345, 7, 1345, 2, 1346, 7, 1346, 2, 1347, 7, 1347, 2, 1348, 7, 1348, 2, 1349, 7, 1349, 2, 1350, 7, 1350, 2, 1351, 7, 1351, 2, 1352, 7, 1352, 2, 1353, 7, 1353, 2, 1354, 7, 1354, 2, 1355, 7, 1355, 2, 1356, 7, 1356, 2, 1357, 7, 1357, 2, 1358, 7, 1358, 2, 1359, 7, 1359, 2, 1360, 7, 1360, 2, 1361, 7, 1361, 2, 1362, 7, 1362, 2, 1363, 7, 1363, 2, 1364, 7, 1364, 2, 1365, 7, 1365, 2, 1366, 7, 1366, 2, 1367, 7, 1367, 2, 1368, 7, 1368, 2, 1369, 7, 1369, 2, 1370, 7, 1370, 2, 1371, 7, 1371, 2, 1372, 7, 1372, 2, 1373, 7, 1373, 2, 1374, 7, 1374, 2, 1375, 7, 1375, 2, 1376, 7, 1376, 2, 1377, 7, 1377, 2, 1378, 7, 1378, 2, 1379, 7, 1379, 2, 1380, 7, 1380, 2, 1381, 7, 1381, 2, 1382, 7, 1382, 2, 1383, 7, 1383, 2, 1384, 7, 1384, 2, 1385, 7, 1385, 2, 1386, 7, 1386, 2, 1387, 7, 1387, 2, 1388, 7, 1388, 2, 1389, 7, 1389, 2, 1390, 7, 1390, 2, 1391, 7, 1391, 2, 1392, 7, 1392, 2, 1393, 7, 1393, 2, 1394, 7, 1394, 2, 1395, 7, 1395, 2, 1396, 7, 1396, 2, 1397, 7, 1397, 2, 1398, 7, 1398, 2, 1399, 7, 1399, 2, 1400, 7, 1400, 2, 1401, 7, 1401, 2, 1402, 7, 1402, 2, 1403, 7, 1403, 2, 1404, 7, 1404, 2, 1405, 7, 1405, 2, 1406, 7, 1406, 2, 1407, 7, 1407, 2, 1408, 7, 1408, 2, 1409, 7, 1409, 2, 1410, 7, 1410, 2, 1411, 7, 1411, 2, 1412, 7, 1412, 2, 1413, 7, 1413, 2, 1414, 7, 1414, 2, 1415, 7, 1415, 2, 1416, 7, 1416, 2, 1417, 7, 1417, 2, 1418, 7, 1418, 2, 1419, 7, 1419, 2, 1420, 7, 1420, 2, 1421, 7, 1421, 2, 1422, 7, 1422, 2, 1423, 7, 1423, 2, 1424, 7, 1424, 2, 1425, 7, 1425, 2, 1426, 7, 1426, 2, 1427, 7, 1427, 2, 1428, 7, 1428, 2, 1429, 7, 1429, 2, 1430, 7, 1430, 2, 1431, 7, 1431, 2, 1432, 7, 1432, 2, 1433, 7, 1433, 2, 1434, 7, 1434, 2, 1435, 7, 1435, 2, 1436, 7, 1436, 2, 1437, 7, 1437, 2, 1438, 7, 1438, 2, 1439, 7, 1439, 2, 1440, 7, 1440, 2, 1441, 7, 1441, 2, 1442, 7, 1442, 2, 1443, 7, 1443, 2, 1444, 7, 1444, 2, 1445, 7, 1445, 2, 1446, 7, 1446, 2, 1447, 7, 1447, 2, 1448, 7, 1448, 2, 1449, 7, 1449, 2, 1450, 7, 1450, 2, 1451, 7, 1451, 2, 1452, 7, 1452, 2, 1453, 7, 1453, 2, 1454, 7, 1454, 2, 1455, 7, 1455, 2, 1456, 7, 1456, 2, 1457, 7, 1457, 2, 1458, 7, 1458, 2, 1459, 7, 1459, 2, 1460, 7, 1460, 2, 1461, 7, 1461, 2, 1462, 7, 1462, 2, 1463, 7, 1463, 2, 1464, 7, 1464, 2, 1465, 7, 1465, 2, 1466, 7, 1466, 2, 1467, 7, 1467, 2, 1468, 7, 1468, 2, 1469, 7, 1469, 2, 1470, 7, 1470, 2, 1471, 7, 1471, 2, 1472, 7, 1472, 2, 1473, 7, 1473, 2, 1474, 7, 1474, 2, 1475, 7, 1475, 2, 1476, 7, 1476, 2, 1477, 7, 1477, 2, 1478, 7, 1478, 2, 1479, 7, 1479, 2, 1480, 7, 1480, 2, 1481, 7, 1481, 2, 1482, 7, 1482, 2, 1483, 7, 1483, 2, 1484, 7, 1484, 2, 1485, 7, 1485, 2, 1486, 7, 1486, 2, 1487, 7, 1487, 2, 1488, 7, 1488, 2, 1489, 7, 1489, 2, 1490, 7, 1490, 2, 1491, 7, 1491, 2, 1492, 7, 1492, 2, 1493, 7, 1493, 2, 1494, 7, 1494, 2, 1495, 7, 1495, 2, 1496, 7, 1496, 2, 1497, 7, 1497, 2, 1498, 7, 1498, 2, 1499, 7, 1499, 2, 1500, 7, 1500, 2, 1501, 7, 1501, 2, 1502, 7, 1502, 2, 1503, 7, 1503, 2, 1504, 7, 1504, 2, 1505, 7, 1505, 2, 1506, 7, 1506, 2, 1507, 7, 1507, 2, 1508, 7, 1508, 2, 1509, 7, 1509, 2, 1510, 7, 1510, 2, 1511, 7, 1511, 2, 1512, 7, 1512, 2, 1513, 7, 1513, 2, 1514, 7, 1514, 2, 1515, 7, 1515, 2, 1516, 7, 1516, 2, 1517, 7, 1517, 2, 1518, 7, 1518, 2, 1519, 7, 1519, 2, 1520, 7, 1520, 2, 1521, 7, 1521, 2, 1522, 7, 1522, 2, 1523, 7, 1523, 2, 1524, 7, 1524, 2, 1525, 7, 1525, 2, 1526, 7, 1526, 2, 1527, 7, 1527, 2, 1528, 7, 1528, 2, 1529, 7, 1529, 2, 1530, 7, 1530, 2, 1531, 7, 1531, 2, 1532, 7, 1532, 2, 1533, 7, 1533, 2, 1534, 7, 1534, 2, 1535, 7, 1535, 2, 1536, 7, 1536, 2, 1537, 7, 1537, 2, 1538, 7, 1538, 2, 1539, 7, 1539, 2, 1540, 7, 1540, 2, 1541, 7, 1541, 2, 1542, 7, 1542, 2, 1543, 7, 1543, 2, 1544, 7, 1544, 2, 1545, 7, 1545, 2, 1546, 7, 1546, 2, 1547, 7, 1547, 2, 1548, 7, 1548, 2, 1549, 7, 1549, 2, 1550, 7, 1550, 2, 1551, 7, 1551, 2, 1552, 7, 1552, 2, 1553, 7, 1553, 2, 1554, 7, 1554, 2, 1555, 7, 1555, 2, 1556, 7, 1556, 2, 1557, 7, 1557, 2, 1558, 7, 1558, 2, 1559, 7, 1559, 2, 1560, 7, 1560, 2, 1561, 7, 1561, 2, 1562, 7, 1562, 2, 1563, 7, 1563, 2, 1564, 7, 1564, 2, 1565, 7, 1565, 2, 1566, 7, 1566, 2, 1567, 7, 1567, 2, 1568, 7, 1568, 2, 1569, 7, 1569, 2, 1570, 7, 1570, 2, 1571, 7, 1571, 2, 1572, 7, 1572, 2, 1573, 7, 1573, 2, 1574, 7, 1574, 2, 1575, 7, 1575, 2, 1576, 7, 1576, 2, 1577, 7, 1577, 2, 1578, 7, 1578, 2, 1579, 7, 1579, 2, 1580, 7, 1580, 2, 1581, 7, 1581, 2, 1582, 7, 1582, 2, 1583, 7, 1583, 2, 1584, 7, 1584, 2, 1585, 7, 1585, 2, 1586, 7, 1586, 2, 1587, 7, 1587, 2, 1588, 7, 1588, 2, 1589, 7, 1589, 2, 1590, 7, 1590, 2, 1591, 7, 1591, 2, 1592, 7, 1592, 2, 1593, 7, 1593, 2, 1594, 7, 1594, 2, 1595, 7, 1595, 2, 1596, 7, 1596, 2, 1597, 7, 1597, 2, 1598, 7, 1598, 2, 1599, 7, 1599, 2, 1600, 7, 1600, 2, 1601, 7, 1601, 2, 1602, 7, 1602, 2, 1603, 7, 1603, 2, 1604, 7, 1604, 2, 1605, 7, 1605, 2, 1606, 7, 1606, 2, 1607, 7, 1607, 2, 1608, 7, 1608, 2, 1609, 7, 1609, 2, 1610, 7, 1610, 2, 1611, 7, 1611, 2, 1612, 7, 1612, 2, 1613, 7, 1613, 2, 1614, 7, 1614, 2, 1615, 7, 1615, 2, 1616, 7, 1616, 2, 1617, 7, 1617, 2, 1618, 7, 1618, 2, 1619, 7, 1619, 2, 1620, 7, 1620, 2, 1621, 7, 1621, 2, 1622, 7, 1622, 2, 1623, 7, 1623, 2, 1624, 7, 1624, 2, 1625, 7, 1625, 2, 1626, 7, 1626, 2, 1627, 7, 1627, 2, 1628, 7, 1628, 2, 1629, 7, 1629, 2, 1630, 7, 1630, 2, 1631, 7, 1631, 2, 1632, 7, 1632, 2, 1633, 7, 1633, 2, 1634, 7, 1634, 2, 1635, 7, 1635, 2, 1636, 7, 1636, 2, 1637, 7, 1637, 2, 1638, 7, 1638, 2, 1639, 7, 1639, 2, 1640, 7, 1640, 2, 1641, 7, 1641, 2, 1642, 7, 1642, 2, 1643, 7, 1643, 2, 1644, 7, 1644, 2, 1645, 7, 1645, 2, 1646, 7, 1646, 2, 1647, 7, 1647, 2, 1648, 7, 1648, 2, 1649, 7, 1649, 2, 1650, 7, 1650, 2, 1651, 7, 1651, 2, 1652, 7, 1652, 2, 1653, 7, 1653, 2, 1654, 7, 1654, 2, 1655, 7, 1655, 2, 1656, 7, 1656, 2, 1657, 7, 1657, 2, 1658, 7, 1658, 2, 1659, 7, 1659, 2, 1660, 7, 1660, 2, 1661, 7, 1661, 2, 1662, 7, 1662, 2, 1663, 7, 1663, 2, 1664, 7, 1664, 2, 1665, 7, 1665, 2, 1666, 7, 1666, 2, 1667, 7, 1667, 2, 1668, 7, 1668, 2, 1669, 7, 1669, 2, 1670, 7, 1670, 2, 1671, 7, 1671, 2, 1672, 7, 1672, 2, 1673, 7, 1673, 2, 1674, 7, 1674, 2, 1675, 7, 1675, 2, 1676, 7, 1676, 2, 1677, 7, 1677, 2, 1678, 7, 1678, 2, 1679, 7, 1679, 2, 1680, 7, 1680, 2, 1681, 7, 1681, 2, 1682, 7, 1682, 2, 1683, 7, 1683, 2, 1684, 7, 1684, 2, 1685, 7, 1685, 2, 1686, 7, 1686, 2, 1687, 7, 1687, 2, 1688, 7, 1688, 2, 1689, 7, 1689, 2, 1690, 7, 1690, 2, 1691, 7, 1691, 2, 1692, 7, 1692, 2, 1693, 7, 1693, 2, 1694, 7, 1694, 2, 1695, 7, 1695, 2, 1696, 7, 1696, 2, 1697, 7, 1697, 2, 1698, 7, 1698, 2, 1699, 7, 1699, 2, 1700, 7, 1700, 2, 1701, 7, 1701, 2, 1702, 7, 1702, 2, 1703, 7, 1703, 2, 1704, 7, 1704, 2, 1705, 7, 1705, 2, 1706, 7, 1706, 2, 1707, 7, 1707, 2, 1708, 7, 1708, 2, 1709, 7, 1709, 2, 1710, 7, 1710, 2, 1711, 7, 1711, 2, 1712, 7, 1712, 2, 1713, 7, 1713, 2, 1714, 7, 1714, 2, 1715, 7, 1715, 2, 1716, 7, 1716, 2, 1717, 7, 1717, 2, 1718, 7, 1718, 2, 1719, 7, 1719, 2, 1720, 7, 1720, 2, 1721, 7, 1721, 2, 1722, 7, 1722, 2, 1723, 7, 1723, 2, 1724, 7, 1724, 2, 1725, 7, 1725, 2, 1726, 7, 1726, 2, 1727, 7, 1727, 2, 1728, 7, 1728, 2, 1729, 7, 1729, 2, 1730, 7, 1730, 2, 1731, 7, 1731, 2, 1732, 7, 1732, 2, 1733, 7, 1733, 2, 1734, 7, 1734, 2, 1735, 7, 1735, 2, 1736, 7, 1736, 2, 1737, 7, 1737, 2, 1738, 7, 1738, 2, 1739, 7, 1739, 2, 1740, 7, 1740, 2, 1741, 7, 1741, 2, 1742, 7, 1742, 2, 1743, 7, 1743, 2, 1744, 7, 1744, 2, 1745, 7, 1745, 2, 1746, 7, 1746, 2, 1747, 7, 1747, 2, 1748, 7, 1748, 2, 1749, 7, 1749, 2, 1750, 7, 1750, 2, 1751, 7, 1751, 2, 1752, 7, 1752, 2, 1753, 7, 1753, 2, 1754, 7, 1754, 2, 1755, 7, 1755, 2, 1756, 7, 1756, 2, 1757, 7, 1757, 2, 1758, 7, 1758, 2, 1759, 7, 1759, 2, 1760, 7, 1760, 2, 1761, 7, 1761, 2, 1762, 7, 1762, 2, 1763, 7, 1763, 2, 1764, 7, 1764, 2, 1765, 7, 1765, 2, 1766, 7, 1766, 2, 1767, 7, 1767, 2, 1768, 7, 1768, 2, 1769, 7, 1769, 2, 1770, 7, 1770, 2, 1771, 7, 1771, 2, 1772, 7, 1772, 2, 1773, 7, 1773, 2, 1774, 7, 1774, 2, 1775, 7, 1775, 2, 1776, 7, 1776, 2, 1777, 7, 1777, 2, 1778, 7, 1778, 2, 1779, 7, 1779, 2, 1780, 7, 1780, 2, 1781, 7, 1781, 2, 1782, 7, 1782, 2, 1783, 7, 1783, 2, 1784, 7, 1784, 2, 1785, 7, 1785, 2, 1786, 7, 1786, 2, 1787, 7, 1787, 2, 1788, 7, 1788, 2, 1789, 7, 1789, 2, 1790, 7, 1790, 2, 1791, 7, 1791, 2, 1792, 7, 1792, 2, 1793, 7, 1793, 2, 1794, 7, 1794, 2, 1795, 7, 1795, 2, 1796, 7, 1796, 2, 1797, 7, 1797, 2, 1798, 7, 1798, 2, 1799, 7, 1799, 2, 1800, 7, 1800, 2, 1801, 7, 1801, 2, 1802, 7, 1802, 2, 1803, 7, 1803, 2, 1804, 7, 1804, 2, 1805, 7, 1805, 2, 1806, 7, 1806, 2, 1807, 7, 1807, 2, 1808, 7, 1808, 2, 1809, 7, 1809, 2, 1810, 7, 1810, 2, 1811, 7, 1811, 2, 1812, 7, 1812, 2, 1813, 7, 1813, 2, 1814, 7, 1814, 2, 1815, 7, 1815, 2, 1816, 7, 1816, 2, 1817, 7, 1817, 2, 1818, 7, 1818, 2, 1819, 7, 1819, 2, 1820, 7, 1820, 2, 1821, 7, 1821, 2, 1822, 7, 1822, 2, 1823, 7, 1823, 2, 1824, 7, 1824, 2, 1825, 7, 1825, 2, 1826, 7, 1826, 2, 1827, 7, 1827, 2, 1828, 7, 1828, 2, 1829, 7, 1829, 2, 1830, 7, 1830, 2, 1831, 7, 1831, 2, 1832, 7, 1832, 2, 1833, 7, 1833, 2, 1834, 7, 1834, 2, 1835, 7, 1835, 2, 1836, 7, 1836, 2, 1837, 7, 1837, 2, 1838, 7, 1838, 2, 1839, 7, 1839, 2, 1840, 7, 1840, 2, 1841, 7, 1841, 2, 1842, 7, 1842, 2, 1843, 7, 1843, 2, 1844, 7, 1844, 2, 1845, 7, 1845, 2, 1846, 7, 1846, 2, 1847, 7, 1847, 2, 1848, 7, 1848, 2, 1849, 7, 1849, 2, 1850, 7, 1850, 2, 1851, 7, 1851, 2, 1852, 7, 1852, 2, 1853, 7, 1853, 2, 1854, 7, 1854, 2, 1855, 7, 1855, 2, 1856, 7, 1856, 2, 1857, 7, 1857, 2, 1858, 7, 1858, 2, 1859, 7, 1859, 2, 1860, 7, 1860, 2, 1861, 7, 1861, 2, 1862, 7, 1862, 2, 1863, 7, 1863, 2, 1864, 7, 1864, 2, 1865, 7, 1865, 2, 1866, 7, 1866, 2, 1867, 7, 1867, 2, 1868, 7, 1868, 2, 1869, 7, 1869, 2, 1870, 7, 1870, 2, 1871, 7, 1871, 2, 1872, 7, 1872, 2, 1873, 7, 1873, 2, 1874, 7, 1874, 2, 1875, 7, 1875, 2, 1876, 7, 1876, 2, 1877, 7, 1877, 2, 1878, 7, 1878, 2, 1879, 7, 1879, 2, 1880, 7, 1880, 2, 1881, 7, 1881, 2, 1882, 7, 1882, 2, 1883, 7, 1883, 2, 1884, 7, 1884, 2, 1885, 7, 1885, 2, 1886, 7, 1886, 2, 1887, 7, 1887, 2, 1888, 7, 1888, 2, 1889, 7, 1889, 2, 1890, 7, 1890, 2, 1891, 7, 1891, 2, 1892, 7, 1892, 2, 1893, 7, 1893, 2, 1894, 7, 1894, 2, 1895, 7, 1895, 2, 1896, 7, 1896, 2, 1897, 7, 1897, 2, 1898, 7, 1898, 2, 1899, 7, 1899, 2, 1900, 7, 1900, 2, 1901, 7, 1901, 2, 1902, 7, 1902, 2, 1903, 7, 1903, 2, 1904, 7, 1904, 2, 1905, 7, 1905, 2, 1906, 7, 1906, 2, 1907, 7, 1907, 2, 1908, 7, 1908, 2, 1909, 7, 1909, 2, 1910, 7, 1910, 2, 1911, 7, 1911, 2, 1912, 7, 1912, 2, 1913, 7, 1913, 2, 1914, 7, 1914, 2, 1915, 7, 1915, 2, 1916, 7, 1916, 2, 1917, 7, 1917, 2, 1918, 7, 1918, 2, 1919, 7, 1919, 2, 1920, 7, 1920, 2, 1921, 7, 1921, 2, 1922, 7, 1922, 2, 1923, 7, 1923, 2, 1924, 7, 1924, 2, 1925, 7, 1925, 2, 1926, 7, 1926, 2, 1927, 7, 1927, 2, 1928, 7, 1928, 2, 1929, 7, 1929, 2, 1930, 7, 1930, 2, 1931, 7, 1931, 2, 1932, 7, 1932, 2, 1933, 7, 1933, 2, 1934, 7, 1934, 2, 1935, 7, 1935, 2, 1936, 7, 1936, 2, 1937, 7, 1937, 2, 1938, 7, 1938, 2, 1939, 7, 1939, 2, 1940, 7, 1940, 2, 1941, 7, 1941, 2, 1942, 7, 1942, 2, 1943, 7, 1943, 2, 1944, 7, 1944, 2, 1945, 7, 1945, 2, 1946, 7, 1946, 2, 1947, 7, 1947, 2, 1948, 7, 1948, 2, 1949, 7, 1949, 2, 1950, 7, 1950, 2, 1951, 7, 1951, 2, 1952, 7, 1952, 2, 1953, 7, 1953, 2, 1954, 7, 1954, 2, 1955, 7, 1955, 2, 1956, 7, 1956, 2, 1957, 7, 1957, 2, 1958, 7, 1958, 2, 1959, 7, 1959, 2, 1960, 7, 1960, 2, 1961, 7, 1961, 2, 1962, 7, 1962, 2, 1963, 7, 1963, 2, 1964, 7, 1964, 2, 1965, 7, 1965, 2, 1966, 7, 1966, 2, 1967, 7, 1967, 2, 1968, 7, 1968, 2, 1969, 7, 1969, 2, 1970, 7, 1970, 2, 1971, 7, 1971, 2, 1972, 7, 1972, 2, 1973, 7, 1973, 2, 1974, 7, 1974, 2, 1975, 7, 1975, 2, 1976, 7, 1976, 2, 1977, 7, 1977, 2, 1978, 7, 1978, 2, 1979, 7, 1979, 2, 1980, 7, 1980, 2, 1981, 7, 1981, 2, 1982, 7, 1982, 2, 1983, 7, 1983, 2, 1984, 7, 1984, 2, 1985, 7, 1985, 2, 1986, 7, 1986, 2, 1987, 7, 1987, 2, 1988, 7, 1988, 2, 1989, 7, 1989, 2, 1990, 7, 1990, 2, 1991, 7, 1991, 2, 1992, 7, 1992, 2, 1993, 7, 1993, 2, 1994, 7, 1994, 2, 1995, 7, 1995, 2, 1996, 7, 1996, 2, 1997, 7, 1997, 2, 1998, 7, 1998, 2, 1999, 7, 1999, 2, 2000, 7, 2000, 2, 2001, 7, 2001, 2, 2002, 7, 2002, 2, 2003, 7, 2003, 2, 2004, 7, 2004, 2, 2005, 7, 2005, 2, 2006, 7, 2006, 2, 2007, 7, 2007, 2, 2008, 7, 2008, 2, 2009, 7, 2009, 2, 2010, 7, 2010, 2, 2011, 7, 2011, 2, 2012, 7, 2012, 2, 2013, 7, 2013, 2, 2014, 7, 2014, 2, 2015, 7, 2015, 2, 2016, 7, 2016, 2, 2017, 7, 2017, 2, 2018, 7, 2018, 2, 2019, 7, 2019, 2, 2020, 7, 2020, 2, 2021, 7, 2021, 2, 2022, 7, 2022, 2, 2023, 7, 2023, 2, 2024, 7, 2024, 2, 2025, 7, 2025, 2, 2026, 7, 2026, 2, 2027, 7, 2027, 2, 2028, 7, 2028, 2, 2029, 7, 2029, 2, 2030, 7, 2030, 2, 2031, 7, 2031, 2, 2032, 7, 2032, 2, 2033, 7, 2033, 2, 2034, 7, 2034, 2, 2035, 7, 2035, 2, 2036, 7, 2036, 2, 2037, 7, 2037, 2, 2038, 7, 2038, 2, 2039, 7, 2039, 2, 2040, 7, 2040, 2, 2041, 7, 2041, 2, 2042, 7, 2042, 2, 2043, 7, 2043, 2, 2044, 7, 2044, 2, 2045, 7, 2045, 2, 2046, 7, 2046, 2, 2047, 7, 2047, 2, 2048, 7, 2048, 2, 2049, 7, 2049, 2, 2050, 7, 2050, 2, 2051, 7, 2051, 2, 2052, 7, 2052, 2, 2053, 7, 2053, 2, 2054, 7, 2054, 2, 2055, 7, 2055, 2, 2056, 7, 2056, 2, 2057, 7, 2057, 2, 2058, 7, 2058, 2, 2059, 7, 2059, 2, 2060, 7, 2060, 2, 2061, 7, 2061, 2, 2062, 7, 2062, 2, 2063, 7, 2063, 2, 2064, 7, 2064, 2, 2065, 7, 2065, 2, 2066, 7, 2066, 2, 2067, 7, 2067, 2, 2068, 7, 2068, 2, 2069, 7, 2069, 2, 2070, 7, 2070, 2, 2071, 7, 2071, 2, 2072, 7, 2072, 2, 2073, 7, 2073, 2, 2074, 7, 2074, 2, 2075, 7, 2075, 2, 2076, 7, 2076, 2, 2077, 7, 2077, 2, 2078, 7, 2078, 2, 2079, 7, 2079, 2, 2080, 7, 2080, 2, 2081, 7, 2081, 2, 2082, 7, 2082, 2, 2083, 7, 2083, 2, 2084, 7, 2084, 2, 2085, 7, 2085, 2, 2086, 7, 2086, 2, 2087, 7, 2087, 2, 2088, 7, 2088, 2, 2089, 7, 2089, 2, 2090, 7, 2090, 2, 2091, 7, 2091, 2, 2092, 7, 2092, 2, 2093, 7, 2093, 2, 2094, 7, 2094, 2, 2095, 7, 2095, 2, 2096, 7, 2096, 2, 2097, 7, 2097, 2, 2098, 7, 2098, 2, 2099, 7, 2099, 2, 2100, 7, 2100, 2, 2101, 7, 2101, 2, 2102, 7, 2102, 2, 2103, 7, 2103, 2, 2104, 7, 2104, 2, 2105, 7, 2105, 2, 2106, 7, 2106, 2, 2107, 7, 2107, 2, 2108, 7, 2108, 2, 2109, 7, 2109, 2, 2110, 7, 2110, 2, 2111, 7, 2111, 2, 2112, 7, 2112, 2, 2113, 7, 2113, 2, 2114, 7, 2114, 2, 2115, 7, 2115, 2, 2116, 7, 2116, 2, 2117, 7, 2117, 2, 2118, 7, 2118, 2, 2119, 7, 2119, 2, 2120, 7, 2120, 2, 2121, 7, 2121, 2, 2122, 7, 2122, 2, 2123, 7, 2123, 2, 2124, 7, 2124, 2, 2125, 7, 2125, 2, 2126, 7, 2126, 2, 2127, 7, 2127, 2, 2128, 7, 2128, 2, 2129, 7, 2129, 2, 2130, 7, 2130, 2, 2131, 7, 2131, 2, 2132, 7, 2132, 2, 2133, 7, 2133, 2, 2134, 7, 2134, 2, 2135, 7, 2135, 2, 2136, 7, 2136, 2, 2137, 7, 2137, 2, 2138, 7, 2138, 2, 2139, 7, 2139, 2, 2140, 7, 2140, 2, 2141, 7, 2141, 2, 2142, 7, 2142, 2, 2143, 7, 2143, 2, 2144, 7, 2144, 2, 2145, 7, 2145, 2, 2146, 7, 2146, 2, 2147, 7, 2147, 2, 2148, 7, 2148, 2, 2149, 7, 2149, 2, 2150, 7, 2150, 2, 2151, 7, 2151, 2, 2152, 7, 2152, 2, 2153, 7, 2153, 2, 2154, 7, 2154, 2, 2155, 7, 2155, 2, 2156, 7, 2156, 2, 2157, 7, 2157, 2, 2158, 7, 2158, 2, 2159, 7, 2159, 2, 2160, 7, 2160, 2, 2161, 7, 2161, 2, 2162, 7, 2162, 2, 2163, 7, 2163, 2, 2164, 7, 2164, 2, 2165, 7, 2165, 2, 2166, 7, 2166, 2, 2167, 7, 2167, 2, 2168, 7, 2168, 2, 2169, 7, 2169, 2, 2170, 7, 2170, 2, 2171, 7, 2171, 2, 2172, 7, 2172, 2, 2173, 7, 2173, 2, 2174, 7, 2174, 2, 2175, 7, 2175, 2, 2176, 7, 2176, 2, 2177, 7, 2177, 2, 2178, 7, 2178, 2, 2179, 7, 2179, 2, 2180, 7, 2180, 2, 2181, 7, 2181, 2, 2182, 7, 2182, 2, 2183, 7, 2183, 2, 2184, 7, 2184, 2, 2185, 7, 2185, 2, 2186, 7, 2186, 2, 2187, 7, 2187, 2, 2188, 7, 2188, 2, 2189, 7, 2189, 2, 2190, 7, 2190, 2, 2191, 7, 2191, 2, 2192, 7, 2192, 2, 2193, 7, 2193, 2, 2194, 7, 2194, 2, 2195, 7, 2195, 2, 2196, 7, 2196, 2, 2197, 7, 2197, 2, 2198, 7, 2198, 2, 2199, 7, 2199, 2, 2200, 7, 2200, 2, 2201, 7, 2201, 2, 2202, 7, 2202, 2, 2203, 7, 2203, 2, 2204, 7, 2204, 2, 2205, 7, 2205, 2, 2206, 7, 2206, 2, 2207, 7, 2207, 2, 2208, 7, 2208, 2, 2209, 7, 2209, 2, 2210, 7, 2210, 2, 2211, 7, 2211, 2, 2212, 7, 2212, 2, 2213, 7, 2213, 2, 2214, 7, 2214, 2, 2215, 7, 2215, 2, 2216, 7, 2216, 2, 2217, 7, 2217, 2, 2218, 7, 2218, 2, 2219, 7, 2219, 2, 2220, 7, 2220, 2, 2221, 7, 2221, 2, 2222, 7, 2222, 2, 2223, 7, 2223, 2, 2224, 7, 2224, 2, 2225, 7, 2225, 2, 2226, 7, 2226, 2, 2227, 7, 2227, 2, 2228, 7, 2228, 2, 2229, 7, 2229, 2, 2230, 7, 2230, 2, 2231, 7, 2231, 2, 2232, 7, 2232, 2, 2233, 7, 2233, 2, 2234, 7, 2234, 2, 2235, 7, 2235, 2, 2236, 7, 2236, 2, 2237, 7, 2237, 2, 2238, 7, 2238, 2, 2239, 7, 2239, 2, 2240, 7, 2240, 2, 2241, 7, 2241, 2, 2242, 7, 2242, 2, 2243, 7, 2243, 2, 2244, 7, 2244, 2, 2245, 7, 2245, 2, 2246, 7, 2246, 2, 2247, 7, 2247, 2, 2248, 7, 2248, 2, 2249, 7, 2249, 2, 2250, 7, 2250, 2, 2251, 7, 2251, 2, 2252, 7, 2252, 2, 2253, 7, 2253, 2, 2254, 7, 2254, 2, 2255, 7, 2255, 2, 2256, 7, 2256, 2, 2257, 7, 2257, 2, 2258, 7, 2258, 2, 2259, 7, 2259, 2, 2260, 7, 2260, 2, 2261, 7, 2261, 2, 2262, 7, 2262, 2, 2263, 7, 2263, 2, 2264, 7, 2264, 2, 2265, 7, 2265, 2, 2266, 7, 2266, 2, 2267, 7, 2267, 2, 2268, 7, 2268, 2, 2269, 7, 2269, 2, 2270, 7, 2270, 2, 2271, 7, 2271, 2, 2272, 7, 2272, 2, 2273, 7, 2273, 2, 2274, 7, 2274, 2, 2275, 7, 2275, 2, 2276, 7, 2276, 2, 2277, 7, 2277, 2, 2278, 7, 2278, 2, 2279, 7, 2279, 2, 2280, 7, 2280, 2, 2281, 7, 2281, 2, 2282, 7, 2282, 2, 2283, 7, 2283, 2, 2284, 7, 2284, 2, 2285, 7, 2285, 2, 2286, 7, 2286, 2, 2287, 7, 2287, 2, 2288, 7, 2288, 2, 2289, 7, 2289, 2, 2290, 7, 2290, 2, 2291, 7, 2291, 2, 2292, 7, 2292, 2, 2293, 7, 2293, 2, 2294, 7, 2294, 2, 2295, 7, 2295, 2, 2296, 7, 2296, 2, 2297, 7, 2297, 2, 2298, 7, 2298, 2, 2299, 7, 2299, 2, 2300, 7, 2300, 2, 2301, 7, 2301, 2, 2302, 7, 2302, 2, 2303, 7, 2303, 2, 2304, 7, 2304, 2, 2305, 7, 2305, 2, 2306, 7, 2306, 2, 2307, 7, 2307, 2, 2308, 7, 2308, 2, 2309, 7, 2309, 2, 2310, 7, 2310, 2, 2311, 7, 2311, 2, 2312, 7, 2312, 2, 2313, 7, 2313, 2, 2314, 7, 2314, 2, 2315, 7, 2315, 2, 2316, 7, 2316, 2, 2317, 7, 2317, 2, 2318, 7, 2318, 2, 2319, 7, 2319, 2, 2320, 7, 2320, 2, 2321, 7, 2321, 2, 2322, 7, 2322, 2, 2323, 7, 2323, 2, 2324, 7, 2324, 2, 2325, 7, 2325, 2, 2326, 7, 2326, 2, 2327, 7, 2327, 2, 2328, 7, 2328, 2, 2329, 7, 2329, 2, 2330, 7, 2330, 2, 2331, 7, 2331, 2, 2332, 7, 2332, 2, 2333, 7, 2333, 2, 2334, 7, 2334, 2, 2335, 7, 2335, 2, 2336, 7, 2336, 2, 2337, 7, 2337, 2, 2338, 7, 2338, 2, 2339, 7, 2339, 2, 2340, 7, 2340, 2, 2341, 7, 2341, 2, 2342, 7, 2342, 2, 2343, 7, 2343, 2, 2344, 7, 2344, 2, 2345, 7, 2345, 2, 2346, 7, 2346, 2, 2347, 7, 2347, 2, 2348, 7, 2348, 2, 2349, 7, 2349, 2, 2350, 7, 2350, 2, 2351, 7, 2351, 2, 2352, 7, 2352, 2, 2353, 7, 2353, 2, 2354, 7, 2354, 2, 2355, 7, 2355, 2, 2356, 7, 2356, 2, 2357, 7, 2357, 2, 2358, 7, 2358, 2, 2359, 7, 2359, 2, 2360, 7, 2360, 2, 2361, 7, 2361, 2, 2362, 7, 2362, 2, 2363, 7, 2363, 2, 2364, 7, 2364, 2, 2365, 7, 2365, 2, 2366, 7, 2366, 2, 2367, 7, 2367, 2, 2368, 7, 2368, 2, 2369, 7, 2369, 2, 2370, 7, 2370, 2, 2371, 7, 2371, 2, 2372, 7, 2372, 2, 2373, 7, 2373, 2, 2374, 7, 2374, 2, 2375, 7, 2375, 2, 2376, 7, 2376, 2, 2377, 7, 2377, 2, 2378, 7, 2378, 2, 2379, 7, 2379, 2, 2380, 7, 2380, 2, 2381, 7, 2381, 2, 2382, 7, 2382, 2, 2383, 7, 2383, 2, 2384, 7, 2384, 2, 2385, 7, 2385, 2, 2386, 7, 2386, 2, 2387, 7, 2387, 2, 2388, 7, 2388, 2, 2389, 7, 2389, 2, 2390, 7, 2390, 2, 2391, 7, 2391, 2, 2392, 7, 2392, 2, 2393, 7, 2393, 2, 2394, 7, 2394, 2, 2395, 7, 2395, 2, 2396, 7, 2396, 2, 2397, 7, 2397, 2, 2398, 7, 2398, 2, 2399, 7, 2399, 2, 2400, 7, 2400, 2, 2401, 7, 2401, 2, 2402, 7, 2402, 2, 2403, 7, 2403, 2, 2404, 7, 2404, 2, 2405, 7, 2405, 2, 2406, 7, 2406, 2, 2407, 7, 2407, 2, 2408, 7, 2408, 2, 2409, 7, 2409, 2, 2410, 7, 2410, 2, 2411, 7, 2411, 2, 2412, 7, 2412, 2, 2413, 7, 2413, 2, 2414, 7, 2414, 2, 2415, 7, 2415, 2, 2416, 7, 2416, 2, 2417, 7, 2417, 2, 2418, 7, 2418, 2, 2419, 7, 2419, 2, 2420, 7, 2420, 2, 2421, 7, 2421, 2, 2422, 7, 2422, 2, 2423, 7, 2423, 2, 2424, 7, 2424, 2, 2425, 7, 2425, 2, 2426, 7, 2426, 2, 2427, 7, 2427, 2, 2428, 7, 2428, 2, 2429, 7, 2429, 2, 2430, 7, 2430, 2, 2431, 7, 2431, 2, 2432, 7, 2432, 2, 2433, 7, 2433, 2, 2434, 7, 2434, 2, 2435, 7, 2435, 2, 2436, 7, 2436, 2, 2437, 7, 2437, 2, 2438, 7, 2438, 2, 2439, 7, 2439, 2, 2440, 7, 2440, 2, 2441, 7, 2441, 2, 2442, 7, 2442, 2, 2443, 7, 2443, 2, 2444, 7, 2444, 2, 2445, 7, 2445, 2, 2446, 7, 2446, 2, 2447, 7, 2447, 2, 2448, 7, 2448, 2, 2449, 7, 2449, 2, 2450, 7, 2450, 2, 2451, 7, 2451, 2, 2452, 7, 2452, 2, 2453, 7, 2453, 2, 2454, 7, 2454, 2, 2455, 7, 2455, 2, 2456, 7, 2456, 2, 2457, 7, 2457, 2, 2458, 7, 2458, 2, 2459, 7, 2459, 2, 2460, 7, 2460, 2, 2461, 7, 2461, 2, 2462, 7, 2462, 2, 2463, 7, 2463, 2, 2464, 7, 2464, 2, 2465, 7, 2465, 2, 2466, 7, 2466, 2, 2467, 7, 2467, 2, 2468, 7, 2468, 2, 2469, 7, 2469, 2, 2470, 7, 2470, 2, 2471, 7, 2471, 2, 2472, 7, 2472, 2, 2473, 7, 2473, 2, 2474, 7, 2474, 2, 2475, 7, 2475, 2, 2476, 7, 2476, 2, 2477, 7, 2477, 2, 2478, 7, 2478, 2, 2479, 7, 2479, 2, 2480, 7, 2480, 2, 2481, 7, 2481, 2, 2482, 7, 2482, 2, 2483, 7, 2483, 2, 2484, 7, 2484, 2, 2485, 7, 2485, 2, 2486, 7, 2486, 2, 2487, 7, 2487, 2, 2488, 7, 2488, 2, 2489, 7, 2489, 2, 2490, 7, 2490, 2, 2491, 7, 2491, 2, 2492, 7, 2492, 2, 2493, 7, 2493, 2, 2494, 7, 2494, 2, 2495, 7, 2495, 2, 2496, 7, 2496, 2, 2497, 7, 2497, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 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, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 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, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 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, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 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, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 323, 1, 323, 1, 323, 1, 323, 1, 323, 1, 323, 1, 323, 1, 323, 1, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 327, 1, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 362, 1, 362, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 365, 1, 365, 1, 365, 1, 365, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 373, 1, 373, 1, 373, 1, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 377, 1, 377, 1, 377, 1, 377, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 1, 426, 1, 426, 1, 426, 1, 426, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 434, 1, 434, 1, 434, 1, 434, 1, 434, 1, 434, 1, 434, 1, 434, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 446, 1, 446, 1, 446, 1, 446, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 457, 1, 457, 1, 457, 1, 457, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 473, 1, 473, 1, 473, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 477, 1, 477, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 490, 1, 490, 1, 490, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 505, 1, 505, 1, 505, 1, 505, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 515, 1, 515, 1, 515, 1, 515, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 522, 1, 522, 1, 522, 1, 522, 1, 522, 1, 522, 1, 522, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 541, 1, 541, 1, 541, 1, 541, 1, 541, 1, 541, 1, 541, 1, 541, 1, 541, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 547, 1, 547, 1, 547, 1, 547, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 549, 1, 549, 1, 549, 1, 549, 1, 549, 1, 549, 1, 549, 1, 549, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 560, 1, 560, 1, 560, 1, 560, 1, 560, 1, 560, 1, 560, 1, 560, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 574, 1, 574, 1, 574, 1, 574, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 592, 1, 592, 1, 592, 1, 592, 1, 592, 1, 592, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 605, 1, 605, 1, 605, 1, 605, 1, 605, 1, 606, 1, 606, 1, 606, 1, 606, 1, 606, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 608, 1, 608, 1, 608, 1, 608, 1, 608, 1, 608, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 613, 1, 613, 1, 613, 1, 613, 1, 613, 1, 613, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 617, 1, 617, 1, 617, 1, 617, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 631, 1, 631, 1, 631, 1, 631, 1, 632, 1, 632, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 638, 1, 638, 1, 638, 1, 638, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 675, 1, 675, 1, 675, 1, 675, 1, 676, 1, 676, 1, 676, 1, 676, 1, 676, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 681, 1, 681, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 686, 1, 686, 1, 686, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 688, 1, 688, 1, 688, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 694, 1, 694, 1, 694, 1, 694, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 735, 1, 735, 1, 735, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 753, 1, 753, 1, 753, 1, 753, 1, 753, 1, 753, 1, 753, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 774, 1, 774, 1, 774, 1, 774, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 782, 1, 782, 1, 782, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 789, 1, 789, 1, 789, 1, 789, 1, 789, 1, 790, 1, 790, 1, 790, 1, 790, 1, 791, 1, 791, 1, 791, 1, 791, 1, 791, 1, 792, 1, 792, 1, 792, 1, 792, 1, 792, 1, 792, 1, 792, 1, 792, 1, 792, 1, 792, 1, 792, 1, 792, 1, 792, 1, 792, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 795, 1, 795, 1, 795, 1, 795, 1, 795, 1, 795, 1, 795, 1, 795, 1, 795, 1, 795, 1, 795, 1, 795, 1, 795, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 797, 1, 797, 1, 797, 1, 797, 1, 797, 1, 797, 1, 797, 1, 797, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 800, 1, 800, 1, 800, 1, 800, 1, 800, 1, 800, 1, 800, 1, 800, 1, 800, 1, 800, 1, 800, 1, 800, 1, 801, 1, 801, 1, 801, 1, 801, 1, 801, 1, 801, 1, 801, 1, 801, 1, 801, 1, 801, 1, 802, 1, 802, 1, 802, 1, 802, 1, 802, 1, 802, 1, 802, 1, 802, 1, 802, 1, 802, 1, 802, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 804, 1, 804, 1, 804, 1, 804, 1, 804, 1, 804, 1, 804, 1, 804, 1, 804, 1, 804, 1, 804, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 808, 1, 808, 1, 808, 1, 808, 1, 808, 1, 808, 1, 808, 1, 808, 1, 808, 1, 808, 1, 808, 1, 809, 1, 809, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 811, 1, 811, 1, 811, 1, 811, 1, 811, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 813, 1, 813, 1, 813, 1, 813, 1, 814, 1, 814, 1, 814, 1, 814, 1, 814, 1, 814, 1, 814, 1, 814, 1, 814, 1, 814, 1, 814, 1, 815, 1, 815, 1, 815, 1, 815, 1, 815, 1, 815, 1, 815, 1, 815, 1, 816, 1, 816, 1, 816, 1, 816, 1, 816, 1, 817, 1, 817, 1, 817, 1, 817, 1, 817, 1, 817, 1, 817, 1, 817, 1, 817, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 820, 1, 820, 1, 820, 1, 820, 1, 820, 1, 820, 1, 820, 1, 820, 1, 820, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 822, 1, 822, 1, 822, 1, 822, 1, 822, 1, 823, 1, 823, 1, 823, 1, 823, 1, 823, 1, 823, 1, 823, 1, 823, 1, 823, 1, 823, 1, 823, 1, 824, 1, 824, 1, 824, 1, 824, 1, 824, 1, 824, 1, 824, 1, 824, 1, 825, 1, 825, 1, 825, 1, 825, 1, 825, 1, 825, 1, 825, 1, 826, 1, 826, 1, 826, 1, 826, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 831, 1, 831, 1, 831, 1, 831, 1, 831, 1, 831, 1, 831, 1, 831, 1, 832, 1, 832, 1, 832, 1, 832, 1, 832, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 842, 1, 842, 1, 842, 1, 842, 1, 842, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 851, 1, 851, 1, 851, 1, 851, 1, 851, 1, 851, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 858, 1, 858, 1, 858, 1, 858, 1, 858, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 861, 1, 861, 1, 861, 1, 861, 1, 862, 1, 862, 1, 862, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 865, 1, 865, 1, 865, 1, 865, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 868, 1, 868, 1, 868, 1, 868, 1, 868, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 877, 1, 877, 1, 877, 1, 877, 1, 877, 1, 877, 1, 877, 1, 877, 1, 878, 1, 878, 1, 878, 1, 878, 1, 878, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 881, 1, 881, 1, 881, 1, 881, 1, 881, 1, 881, 1, 881, 1, 881, 1, 882, 1, 882, 1, 882, 1, 882, 1, 882, 1, 882, 1, 882, 1, 882, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 885, 1, 885, 1, 885, 1, 885, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 887, 1, 887, 1, 887, 1, 887, 1, 887, 1, 887, 1, 887, 1, 888, 1, 888, 1, 888, 1, 888, 1, 888, 1, 888, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 890, 1, 890, 1, 890, 1, 890, 1, 890, 1, 891, 1, 891, 1, 891, 1, 891, 1, 891, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 893, 1, 893, 1, 893, 1, 893, 1, 893, 1, 893, 1, 894, 1, 894, 1, 894, 1, 894, 1, 895, 1, 895, 1, 895, 1, 895, 1, 895, 1, 896, 1, 896, 1, 896, 1, 896, 1, 896, 1, 896, 1, 896, 1, 897, 1, 897, 1, 897, 1, 897, 1, 897, 1, 897, 1, 898, 1, 898, 1, 899, 1, 899, 1, 899, 1, 899, 1, 899, 1, 900, 1, 900, 1, 900, 1, 900, 1, 900, 1, 900, 1, 900, 1, 900, 1, 900, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 902, 1, 902, 1, 902, 1, 902, 1, 902, 1, 902, 1, 902, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 904, 1, 904, 1, 904, 1, 904, 1, 904, 1, 904, 1, 904, 1, 904, 1, 905, 1, 905, 1, 905, 1, 905, 1, 905, 1, 905, 1, 905, 1, 905, 1, 905, 1, 905, 1, 906, 1, 906, 1, 906, 1, 906, 1, 906, 1, 906, 1, 906, 1, 907, 1, 907, 1, 907, 1, 907, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 909, 1, 909, 1, 909, 1, 909, 1, 909, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 911, 1, 911, 1, 911, 1, 911, 1, 911, 1, 911, 1, 911, 1, 911, 1, 912, 1, 912, 1, 912, 1, 912, 1, 912, 1, 912, 1, 912, 1, 912, 1, 913, 1, 913, 1, 913, 1, 913, 1, 913, 1, 913, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 916, 1, 916, 1, 916, 1, 916, 1, 916, 1, 916, 1, 916, 1, 916, 1, 916, 1, 916, 1, 916, 1, 916, 1, 916, 1, 917, 1, 917, 1, 917, 1, 917, 1, 917, 1, 917, 1, 917, 1, 917, 1, 917, 1, 917, 1, 917, 1, 917, 1, 918, 1, 918, 1, 918, 1, 918, 1, 918, 1, 918, 1, 918, 1, 918, 1, 918, 1, 918, 1, 918, 1, 918, 1, 919, 1, 919, 1, 919, 1, 919, 1, 919, 1, 919, 1, 919, 1, 919, 1, 919, 1, 919, 1, 919, 1, 919, 1, 919, 1, 920, 1, 920, 1, 920, 1, 920, 1, 920, 1, 920, 1, 920, 1, 920, 1, 920, 1, 920, 1, 920, 1, 921, 1, 921, 1, 921, 1, 921, 1, 921, 1, 921, 1, 921, 1, 921, 1, 921, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 923, 1, 923, 1, 923, 1, 923, 1, 923, 1, 923, 1, 923, 1, 923, 1, 923, 1, 923, 1, 923, 1, 923, 1, 924, 1, 924, 1, 924, 1, 924, 1, 924, 1, 924, 1, 924, 1, 924, 1, 924, 1, 924, 1, 924, 1, 924, 1, 924, 1, 924, 1, 925, 1, 925, 1, 925, 1, 925, 1, 925, 1, 925, 1, 925, 1, 925, 1, 925, 1, 925, 1, 925, 1, 925, 1, 925, 1, 925, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 926, 1, 927, 1, 927, 1, 927, 1, 927, 1, 927, 1, 927, 1, 927, 1, 927, 1, 928, 1, 928, 1, 928, 1, 928, 1, 928, 1, 928, 1, 928, 1, 928, 1, 928, 1, 929, 1, 929, 1, 929, 1, 929, 1, 929, 1, 929, 1, 929, 1, 929, 1, 929, 1, 930, 1, 930, 1, 930, 1, 930, 1, 930, 1, 930, 1, 930, 1, 930, 1, 931, 1, 931, 1, 931, 1, 931, 1, 931, 1, 931, 1, 931, 1, 931, 1, 931, 1, 932, 1, 932, 1, 932, 1, 932, 1, 932, 1, 932, 1, 932, 1, 933, 1, 933, 1, 933, 1, 933, 1, 933, 1, 933, 1, 933, 1, 934, 1, 934, 1, 934, 1, 934, 1, 934, 1, 934, 1, 934, 1, 934, 1, 934, 1, 934, 1, 934, 1, 934, 1, 934, 1, 934, 1, 934, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 938, 1, 938, 1, 938, 1, 938, 1, 938, 1, 938, 1, 938, 1, 938, 1, 938, 1, 938, 1, 938, 1, 938, 1, 939, 1, 939, 1, 939, 1, 939, 1, 939, 1, 939, 1, 939, 1, 940, 1, 940, 1, 940, 1, 940, 1, 940, 1, 940, 1, 940, 1, 940, 1, 940, 1, 940, 1, 940, 1, 940, 1, 940, 1, 940, 1, 941, 1, 941, 1, 941, 1, 941, 1, 941, 1, 941, 1, 941, 1, 941, 1, 941, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 1, 943, 1, 943, 1, 943, 1, 943, 1, 943, 1, 943, 1, 944, 1, 944, 1, 944, 1, 944, 1, 944, 1, 944, 1, 944, 1, 944, 1, 944, 1, 945, 1, 945, 1, 945, 1, 945, 1, 945, 1, 945, 1, 945, 1, 945, 1, 945, 1, 946, 1, 946, 1, 946, 1, 946, 1, 946, 1, 946, 1, 946, 1, 947, 1, 947, 1, 947, 1, 947, 1, 947, 1, 947, 1, 947, 1, 947, 1, 948, 1, 948, 1, 948, 1, 948, 1, 948, 1, 948, 1, 948, 1, 948, 1, 948, 1, 948, 1, 949, 1, 949, 1, 949, 1, 949, 1, 949, 1, 949, 1, 949, 1, 949, 1, 949, 1, 949, 1, 949, 1, 950, 1, 950, 1, 950, 1, 950, 1, 950, 1, 950, 1, 950, 1, 950, 1, 950, 1, 951, 1, 951, 1, 951, 1, 951, 1, 951, 1, 951, 1, 951, 1, 951, 1, 952, 1, 952, 1, 952, 1, 952, 1, 952, 1, 952, 1, 952, 1, 953, 1, 953, 1, 953, 1, 953, 1, 953, 1, 953, 1, 954, 1, 954, 1, 954, 1, 954, 1, 954, 1, 954, 1, 954, 1, 954, 1, 954, 1, 954, 1, 954, 1, 955, 1, 955, 1, 955, 1, 955, 1, 955, 1, 955, 1, 955, 1, 956, 1, 956, 1, 956, 1, 956, 1, 956, 1, 956, 1, 956, 1, 956, 1, 957, 1, 957, 1, 957, 1, 957, 1, 957, 1, 957, 1, 957, 1, 957, 1, 957, 1, 958, 1, 958, 1, 958, 1, 958, 1, 958, 1, 958, 1, 958, 1, 958, 1, 958, 1, 958, 1, 958, 1, 959, 1, 959, 1, 959, 1, 959, 1, 959, 1, 959, 1, 959, 1, 959, 1, 959, 1, 959, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 961, 1, 961, 1, 961, 1, 961, 1, 961, 1, 961, 1, 961, 1, 961, 1, 962, 1, 962, 1, 962, 1, 962, 1, 962, 1, 962, 1, 962, 1, 962, 1, 962, 1, 963, 1, 963, 1, 963, 1, 963, 1, 963, 1, 963, 1, 963, 1, 963, 1, 963, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 965, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 966, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 967, 1, 968, 1, 968, 1, 968, 1, 968, 1, 968, 1, 968, 1, 969, 1, 969, 1, 969, 1, 969, 1, 969, 1, 969, 1, 969, 1, 969, 1, 969, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 970, 1, 971, 1, 971, 1, 971, 1, 971, 1, 971, 1, 971, 1, 971, 1, 971, 1, 971, 1, 971, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 973, 1, 973, 1, 973, 1, 973, 1, 973, 1, 973, 1, 973, 1, 973, 1, 973, 1, 974, 1, 974, 1, 974, 1, 974, 1, 974, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 977, 1, 977, 1, 977, 1, 977, 1, 977, 1, 977, 1, 977, 1, 978, 1, 978, 1, 978, 1, 978, 1, 979, 1, 979, 1, 979, 1, 979, 1, 979, 1, 979, 1, 979, 1, 980, 1, 980, 1, 980, 1, 980, 1, 980, 1, 980, 1, 980, 1, 980, 1, 980, 1, 980, 1, 980, 1, 981, 1, 981, 1, 981, 1, 981, 1, 981, 1, 981, 1, 981, 1, 981, 1, 982, 1, 982, 1, 982, 1, 982, 1, 982, 1, 982, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 984, 1, 984, 1, 984, 1, 984, 1, 984, 1, 984, 1, 984, 1, 985, 1, 985, 1, 985, 1, 985, 1, 985, 1, 985, 1, 986, 1, 986, 1, 986, 1, 986, 1, 986, 1, 986, 1, 986, 1, 986, 1, 986, 1, 986, 1, 987, 1, 987, 1, 987, 1, 987, 1, 987, 1, 987, 1, 987, 1, 987, 1, 987, 1, 987, 1, 987, 1, 988, 1, 988, 1, 988, 1, 988, 1, 988, 1, 988, 1, 988, 1, 988, 1, 988, 1, 989, 1, 989, 1, 989, 1, 989, 1, 989, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 990, 1, 991, 1, 991, 1, 991, 1, 991, 1, 991, 1, 991, 1, 991, 1, 991, 1, 991, 1, 992, 1, 992, 1, 992, 1, 992, 1, 992, 1, 992, 1, 992, 1, 992, 1, 992, 1, 993, 1, 993, 1, 993, 1, 993, 1, 993, 1, 993, 1, 994, 1, 994, 1, 994, 1, 994, 1, 994, 1, 995, 1, 995, 1, 995, 1, 995, 1, 995, 1, 995, 1, 995, 1, 995, 1, 995, 1, 995, 1, 996, 1, 996, 1, 996, 1, 996, 1, 997, 1, 997, 1, 997, 1, 997, 1, 997, 1, 997, 1, 998, 1, 998, 1, 998, 1, 998, 1, 998, 1, 998, 1, 998, 1, 998, 1, 998, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 1, 1000, 1, 1000, 1, 1000, 1, 1000, 1, 1000, 1, 1000, 1, 1000, 1, 1001, 1, 1001, 1, 1001, 1, 1001, 1, 1001, 1, 1001, 1, 1001, 1, 1001, 1, 1002, 1, 1002, 1, 1002, 1, 1002, 1, 1002, 1, 1002, 1, 1002, 1, 1002, 1, 1002, 1, 1003, 1, 1003, 1, 1003, 1, 1003, 1, 1004, 1, 1004, 1, 1004, 1, 1004, 1, 1004, 1, 1004, 1, 1004, 1, 1004, 1, 1004, 1, 1005, 1, 1005, 1, 1005, 1, 1005, 1, 1005, 1, 1005, 1, 1006, 1, 1006, 1, 1006, 1, 1006, 1, 1006, 1, 1007, 1, 1007, 1, 1007, 1, 1007, 1, 1007, 1, 1007, 1, 1008, 1, 1008, 1, 1008, 1, 1008, 1, 1008, 1, 1008, 1, 1008, 1, 1009, 1, 1009, 1, 1009, 1, 1009, 1, 1010, 1, 1010, 1, 1010, 1, 1010, 1, 1010, 1, 1010, 1, 1010, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1011, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1016, 1, 1016, 1, 1016, 1, 1016, 1, 1016, 1, 1016, 1, 1016, 1, 1016, 1, 1017, 1, 1017, 1, 1017, 1, 1017, 1, 1017, 1, 1017, 1, 1018, 1, 1018, 1, 1018, 1, 1018, 1, 1019, 1, 1019, 1, 1019, 1, 1019, 1, 1019, 1, 1019, 1, 1019, 1, 1019, 1, 1020, 1, 1020, 1, 1020, 1, 1020, 1, 1020, 1, 1020, 1, 1020, 1, 1020, 1, 1020, 1, 1021, 1, 1021, 1, 1021, 1, 1021, 1, 1021, 1, 1021, 1, 1021, 1, 1021, 1, 1021, 1, 1022, 1, 1022, 1, 1022, 1, 1022, 1, 1022, 1, 1023, 1, 1023, 1, 1023, 1, 1023, 1, 1023, 1, 1023, 1, 1024, 1, 1024, 1, 1024, 1, 1024, 1, 1024, 1, 1024, 1, 1024, 1, 1024, 1, 1024, 1, 1024, 1, 1024, 1, 1024, 1, 1024, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1025, 1, 1026, 1, 1026, 1, 1026, 1, 1026, 1, 1026, 1, 1026, 1, 1026, 1, 1026, 1, 1026, 1, 1026, 1, 1026, 1, 1026, 1, 1026, 1, 1026, 1, 1026, 1, 1027, 1, 1027, 1, 1027, 1, 1027, 1, 1027, 1, 1027, 1, 1027, 1, 1027, 1, 1027, 1, 1027, 1, 1027, 1, 1027, 1, 1027, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1033, 1, 1033, 1, 1033, 1, 1033, 1, 1033, 1, 1033, 1, 1033, 1, 1033, 1, 1033, 1, 1034, 1, 1034, 1, 1034, 1, 1034, 1, 1034, 1, 1034, 1, 1034, 1, 1034, 1, 1034, 1, 1034, 1, 1034, 1, 1034, 1, 1034, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1038, 1, 1039, 1, 1039, 1, 1039, 1, 1039, 1, 1039, 1, 1039, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1041, 1, 1041, 1, 1041, 1, 1041, 1, 1041, 1, 1041, 1, 1041, 1, 1041, 1, 1041, 1, 1041, 1, 1041, 1, 1041, 1, 1041, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1043, 1, 1043, 1, 1043, 1, 1043, 1, 1043, 1, 1043, 1, 1043, 1, 1043, 1, 1043, 1, 1043, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1046, 1, 1046, 1, 1046, 1, 1046, 1, 1046, 1, 1046, 1, 1046, 1, 1046, 1, 1046, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 1, 1050, 1, 1050, 1, 1050, 1, 1050, 1, 1050, 1, 1050, 1, 1050, 1, 1050, 1, 1050, 1, 1050, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 1, 1056, 1, 1056, 1, 1056, 1, 1056, 1, 1056, 1, 1056, 1, 1056, 1, 1056, 1, 1057, 1, 1057, 1, 1057, 1, 1057, 1, 1057, 1, 1057, 1, 1057, 1, 1057, 1, 1057, 1, 1057, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1058, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1060, 1, 1061, 1, 1061, 1, 1061, 1, 1061, 1, 1061, 1, 1061, 1, 1061, 1, 1061, 1, 1061, 1, 1061, 1, 1061, 1, 1061, 1, 1061, 1, 1061, 1, 1062, 1, 1062, 1, 1062, 1, 1062, 1, 1062, 1, 1062, 1, 1062, 1, 1062, 1, 1062, 1, 1062, 1, 1063, 1, 1063, 1, 1063, 1, 1063, 1, 1063, 1, 1063, 1, 1063, 1, 1063, 1, 1064, 1, 1064, 1, 1064, 1, 1064, 1, 1064, 1, 1064, 1, 1064, 1, 1064, 1, 1065, 1, 1065, 1, 1065, 1, 1065, 1, 1065, 1, 1065, 1, 1065, 1, 1065, 1, 1065, 1, 1065, 1, 1065, 1, 1065, 1, 1065, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1071, 1, 1071, 1, 1071, 1, 1071, 1, 1071, 1, 1071, 1, 1071, 1, 1071, 1, 1071, 1, 1071, 1, 1071, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1080, 1, 1080, 1, 1080, 1, 1080, 1, 1080, 1, 1080, 1, 1080, 1, 1080, 1, 1080, 1, 1080, 1, 1080, 1, 1080, 1, 1080, 1, 1080, 1, 1081, 1, 1081, 1, 1081, 1, 1081, 1, 1081, 1, 1081, 1, 1081, 1, 1081, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1082, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1084, 1, 1084, 1, 1084, 1, 1084, 1, 1084, 1, 1084, 1, 1084, 1, 1084, 1, 1085, 1, 1085, 1, 1085, 1, 1085, 1, 1085, 1, 1085, 1, 1085, 1, 1085, 1, 1085, 1, 1085, 1, 1085, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1089, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1093, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1094, 1, 1095, 1, 1095, 1, 1095, 1, 1095, 1, 1095, 1, 1095, 1, 1095, 1, 1095, 1, 1095, 1, 1095, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1097, 1, 1097, 1, 1097, 1, 1097, 1, 1097, 1, 1097, 1, 1097, 1, 1097, 1, 1097, 1, 1098, 1, 1098, 1, 1098, 1, 1098, 1, 1098, 1, 1098, 1, 1098, 1, 1098, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1100, 1, 1100, 1, 1100, 1, 1100, 1, 1100, 1, 1100, 1, 1100, 1, 1100, 1, 1100, 1, 1100, 1, 1100, 1, 1100, 1, 1100, 1, 1101, 1, 1101, 1, 1101, 1, 1101, 1, 1101, 1, 1101, 1, 1101, 1, 1101, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1105, 1, 1105, 1, 1105, 1, 1105, 1, 1105, 1, 1105, 1, 1105, 1, 1105, 1, 1105, 1, 1105, 1, 1105, 1, 1105, 1, 1106, 1, 1106, 1, 1106, 1, 1106, 1, 1106, 1, 1106, 1, 1106, 1, 1106, 1, 1106, 1, 1106, 1, 1106, 1, 1106, 1, 1106, 1, 1107, 1, 1107, 1, 1107, 1, 1107, 1, 1107, 1, 1107, 1, 1107, 1, 1107, 1, 1107, 1, 1108, 1, 1108, 1, 1108, 1, 1108, 1, 1108, 1, 1108, 1, 1108, 1, 1108, 1, 1108, 1, 1108, 1, 1108, 1, 1108, 1, 1109, 1, 1109, 1, 1109, 1, 1109, 1, 1109, 1, 1109, 1, 1109, 1, 1109, 1, 1109, 1, 1109, 1, 1109, 1, 1109, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1110, 1, 1111, 1, 1111, 1, 1111, 1, 1111, 1, 1111, 1, 1111, 1, 1111, 1, 1112, 1, 1112, 1, 1112, 1, 1112, 1, 1112, 1, 1112, 1, 1112, 1, 1112, 1, 1113, 1, 1113, 1, 1113, 1, 1113, 1, 1113, 1, 1113, 1, 1113, 1, 1113, 1, 1114, 1, 1114, 1, 1114, 1, 1114, 1, 1114, 1, 1114, 1, 1115, 1, 1115, 1, 1115, 1, 1115, 1, 1115, 1, 1115, 1, 1115, 1, 1115, 1, 1115, 1, 1115, 1, 1116, 1, 1116, 1, 1116, 1, 1116, 1, 1116, 1, 1116, 1, 1116, 1, 1116, 1, 1116, 1, 1116, 1, 1117, 1, 1117, 1, 1117, 1, 1117, 1, 1117, 1, 1117, 1, 1117, 1, 1117, 1, 1117, 1, 1117, 1, 1118, 1, 1118, 1, 1118, 1, 1118, 1, 1118, 1, 1118, 1, 1118, 1, 1118, 1, 1118, 1, 1118, 1, 1118, 1, 1119, 1, 1119, 1, 1119, 1, 1119, 1, 1119, 1, 1119, 1, 1119, 1, 1119, 1, 1119, 1, 1120, 1, 1120, 1, 1120, 1, 1120, 1, 1120, 1, 1120, 1, 1120, 1, 1120, 1, 1120, 1, 1120, 1, 1120, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 1, 1125, 1, 1125, 1, 1125, 1, 1125, 1, 1125, 1, 1125, 1, 1125, 1, 1125, 1, 1125, 1, 1125, 1, 1125, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1126, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1127, 1, 1128, 1, 1128, 1, 1128, 1, 1128, 1, 1128, 1, 1128, 1, 1128, 1, 1128, 1, 1128, 1, 1128, 1, 1128, 1, 1128, 1, 1129, 1, 1129, 1, 1129, 1, 1129, 1, 1129, 1, 1129, 1, 1129, 1, 1129, 1, 1129, 1, 1129, 1, 1129, 1, 1129, 1, 1129, 1, 1129, 1, 1129, 1, 1130, 1, 1130, 1, 1130, 1, 1130, 1, 1130, 1, 1131, 1, 1131, 1, 1131, 1, 1131, 1, 1131, 1, 1131, 1, 1131, 1, 1131, 1, 1131, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1132, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1133, 1, 1134, 1, 1134, 1, 1134, 1, 1135, 1, 1135, 1, 1135, 1, 1135, 1, 1135, 1, 1135, 1, 1135, 1, 1135, 1, 1135, 1, 1135, 1, 1136, 1, 1136, 1, 1136, 1, 1136, 1, 1136, 1, 1136, 1, 1136, 1, 1136, 1, 1136, 1, 1136, 1, 1136, 1, 1136, 1, 1136, 1, 1136, 1, 1136, 1, 1137, 1, 1137, 1, 1137, 1, 1137, 1, 1137, 1, 1137, 1, 1137, 1, 1137, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1138, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1139, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1140, 1, 1141, 1, 1141, 1, 1141, 1, 1141, 1, 1141, 1, 1141, 1, 1141, 1, 1141, 1, 1141, 1, 1141, 1, 1141, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1142, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1143, 1, 1144, 1, 1144, 1, 1144, 1, 1144, 1, 1144, 1, 1144, 1, 1144, 1, 1144, 1, 1144, 1, 1144, 1, 1144, 1, 1144, 1, 1145, 1, 1145, 1, 1145, 1, 1145, 1, 1145, 1, 1145, 1, 1145, 1, 1145, 1, 1145, 1, 1145, 1, 1145, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1146, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1147, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1148, 1, 1149, 1, 1149, 1, 1149, 1, 1149, 1, 1149, 1, 1149, 1, 1149, 1, 1149, 1, 1149, 1, 1149, 1, 1149, 1, 1149, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1150, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1151, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1152, 1, 1153, 1, 1153, 1, 1153, 1, 1153, 1, 1153, 1, 1153, 1, 1153, 1, 1153, 1, 1153, 1, 1153, 1, 1154, 1, 1154, 1, 1154, 1, 1154, 1, 1154, 1, 1154, 1, 1154, 1, 1154, 1, 1154, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1155, 1, 1156, 1, 1156, 1, 1156, 1, 1156, 1, 1156, 1, 1156, 1, 1156, 1, 1156, 1, 1156, 1, 1156, 1, 1156, 1, 1157, 1, 1157, 1, 1157, 1, 1157, 1, 1157, 1, 1157, 1, 1157, 1, 1157, 1, 1157, 1, 1157, 1, 1157, 1, 1157, 1, 1157, 1, 1157, 1, 1157, 1, 1158, 1, 1158, 1, 1158, 1, 1158, 1, 1158, 1, 1158, 1, 1158, 1, 1158, 1, 1158, 1, 1158, 1, 1158, 1, 1158, 1, 1158, 1, 1159, 1, 1159, 1, 1159, 1, 1159, 1, 1159, 1, 1159, 1, 1159, 1, 1159, 1, 1159, 1, 1159, 1, 1159, 1, 1159, 1, 1159, 1, 1160, 1, 1160, 1, 1160, 1, 1160, 1, 1160, 1, 1160, 1, 1160, 1, 1160, 1, 1160, 1, 1160, 1, 1160, 1, 1160, 1, 1160, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1161, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1162, 1, 1163, 1, 1163, 1, 1163, 1, 1163, 1, 1163, 1, 1163, 1, 1163, 1, 1163, 1, 1163, 1, 1163, 1, 1163, 1, 1163, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1164, 1, 1165, 1, 1165, 1, 1165, 1, 1165, 1, 1165, 1, 1165, 1, 1165, 1, 1165, 1, 1165, 1, 1165, 1, 1165, 1, 1165, 1, 1165, 1, 1165, 1, 1165, 1, 1166, 1, 1166, 1, 1166, 1, 1166, 1, 1166, 1, 1166, 1, 1166, 1, 1166, 1, 1166, 1, 1166, 1, 1166, 1, 1167, 1, 1167, 1, 1167, 1, 1167, 1, 1167, 1, 1167, 1, 1167, 1, 1168, 1, 1168, 1, 1168, 1, 1168, 1, 1168, 1, 1168, 1, 1168, 1, 1168, 1, 1168, 1, 1169, 1, 1169, 1, 1169, 1, 1169, 1, 1169, 1, 1169, 1, 1169, 1, 1169, 1, 1169, 1, 1170, 1, 1170, 1, 1170, 1, 1170, 1, 1170, 1, 1170, 1, 1170, 1, 1170, 1, 1170, 1, 1170, 1, 1170, 1, 1170, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1171, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1173, 1, 1173, 1, 1173, 1, 1173, 1, 1173, 1, 1173, 1, 1173, 1, 1173, 1, 1173, 1, 1173, 1, 1173, 1, 1174, 1, 1174, 1, 1174, 1, 1174, 1, 1174, 1, 1174, 1, 1174, 1, 1174, 1, 1174, 1, 1174, 1, 1175, 1, 1175, 1, 1175, 1, 1175, 1, 1175, 1, 1175, 1, 1175, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1177, 1, 1178, 1, 1178, 1, 1178, 1, 1178, 1, 1178, 1, 1178, 1, 1178, 1, 1178, 1, 1179, 1, 1179, 1, 1179, 1, 1179, 1, 1179, 1, 1179, 1, 1179, 1, 1179, 1, 1179, 1, 1179, 1, 1179, 1, 1179, 1, 1179, 1, 1179, 1, 1180, 1, 1180, 1, 1180, 1, 1180, 1, 1180, 1, 1180, 1, 1180, 1, 1180, 1, 1180, 1, 1180, 1, 1181, 1, 1181, 1, 1181, 1, 1181, 1, 1181, 1, 1181, 1, 1181, 1, 1181, 1, 1181, 1, 1181, 1, 1181, 1, 1181, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1183, 1, 1183, 1, 1183, 1, 1183, 1, 1183, 1, 1183, 1, 1183, 1, 1183, 1, 1183, 1, 1183, 1, 1183, 1, 1183, 1, 1183, 1, 1183, 1, 1183, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1185, 1, 1185, 1, 1185, 1, 1185, 1, 1185, 1, 1185, 1, 1185, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1187, 1, 1187, 1, 1187, 1, 1187, 1, 1187, 1, 1187, 1, 1187, 1, 1187, 1, 1187, 1, 1187, 1, 1187, 1, 1187, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1188, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1192, 1, 1193, 1, 1193, 1, 1193, 1, 1193, 1, 1193, 1, 1193, 1, 1193, 1, 1193, 1, 1193, 1, 1193, 1, 1193, 1, 1193, 1, 1193, 1, 1193, 1, 1193, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1194, 1, 1195, 1, 1195, 1, 1195, 1, 1195, 1, 1195, 1, 1195, 1, 1195, 1, 1195, 1, 1195, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1196, 1, 1197, 1, 1197, 1, 1197, 1, 1197, 1, 1197, 1, 1197, 1, 1197, 1, 1197, 1, 1197, 1, 1197, 1, 1197, 1, 1197, 1, 1197, 1, 1197, 1, 1198, 1, 1198, 1, 1198, 1, 1198, 1, 1198, 1, 1198, 1, 1198, 1, 1198, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1200, 1, 1200, 1, 1200, 1, 1200, 1, 1200, 1, 1200, 1, 1200, 1, 1201, 1, 1201, 1, 1201, 1, 1201, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1202, 1, 1203, 1, 1203, 1, 1203, 1, 1203, 1, 1203, 1, 1203, 1, 1203, 1, 1203, 1, 1203, 1, 1203, 1, 1204, 1, 1204, 1, 1204, 1, 1204, 1, 1204, 1, 1204, 1, 1204, 1, 1204, 1, 1204, 1, 1204, 1, 1204, 1, 1204, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1205, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1206, 1, 1207, 1, 1207, 1, 1207, 1, 1207, 1, 1207, 1, 1207, 1, 1207, 1, 1207, 1, 1207, 1, 1207, 1, 1207, 1, 1207, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1208, 1, 1209, 1, 1209, 1, 1209, 1, 1209, 1, 1209, 1, 1209, 1, 1209, 1, 1209, 1, 1209, 1, 1209, 1, 1209, 1, 1209, 1, 1209, 1, 1210, 1, 1210, 1, 1210, 1, 1210, 1, 1210, 1, 1210, 1, 1210, 1, 1210, 1, 1210, 1, 1210, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1211, 1, 1212, 1, 1212, 1, 1212, 1, 1212, 1, 1212, 1, 1212, 1, 1212, 1, 1212, 1, 1212, 1, 1212, 1, 1212, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1213, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1214, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1215, 1, 1216, 1, 1216, 1, 1216, 1, 1216, 1, 1216, 1, 1216, 1, 1216, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1217, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1218, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1219, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1220, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1221, 1, 1222, 1, 1222, 1, 1222, 1, 1222, 1, 1222, 1, 1222, 1, 1222, 1, 1222, 1, 1222, 1, 1222, 1, 1222, 1, 1223, 1, 1223, 1, 1223, 1, 1223, 1, 1223, 1, 1223, 1, 1223, 1, 1223, 1, 1223, 1, 1223, 1, 1224, 1, 1224, 1, 1224, 1, 1224, 1, 1224, 1, 1224, 1, 1224, 1, 1225, 1, 1225, 1, 1225, 1, 1225, 1, 1225, 1, 1226, 1, 1226, 1, 1226, 1, 1226, 1, 1226, 1, 1226, 1, 1227, 1, 1227, 1, 1227, 1, 1227, 1, 1227, 1, 1227, 1, 1227, 1, 1228, 1, 1228, 1, 1228, 1, 1228, 1, 1228, 1, 1228, 1, 1228, 1, 1228, 1, 1229, 1, 1229, 1, 1229, 1, 1229, 1, 1229, 1, 1229, 1, 1229, 1, 1229, 1, 1229, 1, 1229, 1, 1229, 1, 1229, 1, 1229, 1, 1229, 1, 1229, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1230, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1231, 1, 1232, 1, 1232, 1, 1232, 1, 1232, 1, 1232, 1, 1232, 1, 1232, 1, 1232, 1, 1232, 1, 1232, 1, 1233, 1, 1233, 1, 1233, 1, 1233, 1, 1233, 1, 1234, 1, 1234, 1, 1234, 1, 1234, 1, 1234, 1, 1234, 1, 1234, 1, 1234, 1, 1234, 1, 1234, 1, 1234, 1, 1235, 1, 1235, 1, 1235, 1, 1235, 1, 1235, 1, 1235, 1, 1235, 1, 1236, 1, 1236, 1, 1236, 1, 1236, 1, 1236, 1, 1236, 1, 1236, 1, 1237, 1, 1237, 1, 1237, 1, 1237, 1, 1237, 1, 1237, 1, 1238, 1, 1238, 1, 1238, 1, 1238, 1, 1238, 1, 1238, 1, 1238, 1, 1238, 1, 1238, 1, 1238, 1, 1238, 1, 1238, 1, 1239, 1, 1239, 1, 1239, 1, 1239, 1, 1239, 1, 1239, 1, 1239, 1, 1239, 1, 1239, 1, 1239, 1, 1239, 1, 1240, 1, 1240, 1, 1240, 1, 1240, 1, 1240, 1, 1240, 1, 1240, 1, 1240, 1, 1241, 1, 1241, 1, 1241, 1, 1241, 1, 1242, 1, 1242, 1, 1242, 1, 1242, 1, 1242, 1, 1242, 1, 1242, 1, 1243, 1, 1243, 1, 1243, 1, 1244, 1, 1244, 1, 1244, 1, 1244, 1, 1244, 1, 1244, 1, 1244, 1, 1244, 1, 1244, 1, 1245, 1, 1245, 1, 1245, 1, 1245, 1, 1246, 1, 1246, 1, 1246, 1, 1246, 1, 1246, 1, 1247, 1, 1247, 1, 1247, 1, 1247, 1, 1248, 1, 1248, 1, 1248, 1, 1248, 1, 1248, 1, 1248, 1, 1248, 1, 1248, 1, 1248, 1, 1248, 1, 1248, 1, 1248, 1, 1248, 1, 1248, 1, 1249, 1, 1249, 1, 1249, 1, 1249, 1, 1250, 1, 1250, 1, 1250, 1, 1250, 1, 1250, 1, 1251, 1, 1251, 1, 1251, 1, 1251, 1, 1251, 1, 1252, 1, 1252, 1, 1252, 1, 1252, 1, 1253, 1, 1253, 1, 1253, 1, 1253, 1, 1253, 1, 1253, 1, 1253, 1, 1254, 1, 1254, 1, 1254, 1, 1254, 1, 1254, 1, 1254, 1, 1254, 1, 1254, 1, 1254, 1, 1254, 1, 1255, 1, 1255, 1, 1255, 1, 1255, 1, 1255, 1, 1256, 1, 1256, 1, 1256, 1, 1257, 1, 1257, 1, 1257, 1, 1257, 1, 1257, 1, 1257, 1, 1257, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1258, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1259, 1, 1260, 1, 1260, 1, 1260, 1, 1260, 1, 1260, 1, 1260, 1, 1260, 1, 1261, 1, 1261, 1, 1261, 1, 1261, 1, 1261, 1, 1262, 1, 1262, 1, 1262, 1, 1262, 1, 1262, 1, 1262, 1, 1262, 1, 1262, 1, 1262, 1, 1262, 1, 1262, 1, 1263, 1, 1263, 1, 1263, 1, 1263, 1, 1263, 1, 1263, 1, 1263, 1, 1263, 1, 1263, 1, 1264, 1, 1264, 1, 1264, 1, 1264, 1, 1264, 1, 1264, 1, 1264, 1, 1264, 1, 1264, 1, 1264, 1, 1264, 1, 1264, 1, 1264, 1, 1265, 1, 1265, 1, 1265, 1, 1265, 1, 1265, 1, 1265, 1, 1265, 1, 1265, 1, 1266, 1, 1266, 1, 1266, 1, 1266, 1, 1266, 1, 1266, 1, 1266, 1, 1266, 1, 1266, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1267, 1, 1268, 1, 1268, 1, 1268, 1, 1268, 1, 1268, 1, 1268, 1, 1268, 1, 1268, 1, 1268, 1, 1268, 1, 1268, 1, 1268, 1, 1268, 1, 1268, 1, 1268, 1, 1269, 1, 1269, 1, 1269, 1, 1269, 1, 1269, 1, 1269, 1, 1269, 1, 1270, 1, 1270, 1, 1270, 1, 1270, 1, 1270, 1, 1270, 1, 1270, 1, 1270, 1, 1270, 1, 1270, 1, 1270, 1, 1271, 1, 1271, 1, 1271, 1, 1271, 1, 1271, 1, 1271, 1, 1271, 1, 1271, 1, 1271, 1, 1271, 1, 1272, 1, 1272, 1, 1272, 1, 1272, 1, 1272, 1, 1272, 1, 1272, 1, 1272, 1, 1272, 1, 1272, 1, 1272, 1, 1273, 1, 1273, 1, 1273, 1, 1273, 1, 1273, 1, 1273, 1, 1273, 1, 1273, 1, 1273, 1, 1273, 1, 1273, 1, 1273, 1, 1273, 1, 1273, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1274, 1, 1275, 1, 1275, 1, 1275, 1, 1275, 1, 1275, 1, 1275, 1, 1275, 1, 1275, 1, 1275, 1, 1275, 1, 1275, 1, 1275, 1, 1275, 1, 1275, 1, 1275, 1, 1276, 1, 1276, 1, 1276, 1, 1276, 1, 1276, 1, 1276, 1, 1276, 1, 1276, 1, 1277, 1, 1277, 1, 1277, 1, 1277, 1, 1278, 1, 1278, 1, 1278, 1, 1278, 1, 1278, 1, 1278, 1, 1278, 1, 1278, 1, 1278, 1, 1278, 1, 1278, 1, 1278, 1, 1279, 1, 1279, 1, 1279, 1, 1279, 1, 1279, 1, 1279, 1, 1279, 1, 1279, 1, 1279, 1, 1279, 1, 1279, 1, 1279, 1, 1279, 1, 1279, 1, 1280, 1, 1280, 1, 1280, 1, 1280, 1, 1280, 1, 1280, 1, 1280, 1, 1280, 1, 1280, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1281, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1282, 1, 1283, 1, 1283, 1, 1283, 1, 1283, 1, 1283, 1, 1283, 1, 1283, 1, 1283, 1, 1283, 1, 1283, 1, 1283, 1, 1283, 1, 1283, 1, 1283, 1, 1284, 1, 1284, 1, 1284, 1, 1284, 1, 1284, 1, 1284, 1, 1284, 1, 1284, 1, 1284, 1, 1284, 1, 1284, 1, 1284, 1, 1284, 1, 1284, 1, 1284, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1285, 1, 1286, 1, 1286, 1, 1286, 1, 1286, 1, 1286, 1, 1286, 1, 1286, 1, 1286, 1, 1286, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1287, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1288, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1289, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1290, 1, 1291, 1, 1291, 1, 1291, 1, 1291, 1, 1291, 1, 1291, 1, 1291, 1, 1291, 1, 1291, 1, 1291, 1, 1291, 1, 1291, 1, 1291, 1, 1291, 1, 1291, 1, 1292, 1, 1292, 1, 1292, 1, 1292, 1, 1292, 1, 1292, 1, 1292, 1, 1292, 1, 1292, 1, 1292, 1, 1292, 1, 1292, 1, 1292, 1, 1292, 1, 1293, 1, 1293, 1, 1293, 1, 1293, 1, 1293, 1, 1293, 1, 1293, 1, 1293, 1, 1293, 1, 1293, 1, 1293, 1, 1294, 1, 1294, 1, 1294, 1, 1294, 1, 1294, 1, 1294, 1, 1294, 1, 1294, 1, 1294, 1, 1294, 1, 1294, 1, 1294, 1, 1294, 1, 1294, 1, 1294, 1, 1295, 1, 1295, 1, 1295, 1, 1295, 1, 1295, 1, 1295, 1, 1295, 1, 1295, 1, 1295, 1, 1295, 1, 1295, 1, 1295, 1, 1295, 1, 1295, 1, 1295, 1, 1296, 1, 1296, 1, 1296, 1, 1296, 1, 1296, 1, 1296, 1, 1296, 1, 1296, 1, 1296, 1, 1296, 1, 1296, 1, 1296, 1, 1296, 1, 1296, 1, 1296, 1, 1297, 1, 1297, 1, 1297, 1, 1297, 1, 1297, 1, 1297, 1, 1297, 1, 1297, 1, 1297, 1, 1297, 1, 1297, 1, 1297, 1, 1297, 1, 1297, 1, 1297, 1, 1298, 1, 1298, 1, 1298, 1, 1298, 1, 1298, 1, 1298, 1, 1298, 1, 1298, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1299, 1, 1300, 1, 1300, 1, 1300, 1, 1300, 1, 1300, 1, 1300, 1, 1301, 1, 1301, 1, 1301, 1, 1301, 1, 1301, 1, 1301, 1, 1301, 1, 1301, 1, 1301, 1, 1301, 1, 1301, 1, 1302, 1, 1302, 1, 1302, 1, 1302, 1, 1302, 1, 1302, 1, 1302, 1, 1302, 1, 1302, 1, 1302, 1, 1303, 1, 1303, 1, 1303, 1, 1303, 1, 1303, 1, 1303, 1, 1303, 1, 1303, 1, 1303, 1, 1303, 1, 1303, 1, 1303, 1, 1303, 1, 1304, 1, 1304, 1, 1304, 1, 1305, 1, 1305, 1, 1305, 1, 1305, 1, 1305, 1, 1305, 1, 1305, 1, 1305, 1, 1305, 1, 1305, 1, 1305, 1, 1305, 1, 1305, 1, 1305, 1, 1306, 1, 1306, 1, 1306, 1, 1306, 1, 1306, 1, 1306, 1, 1306, 1, 1306, 1, 1307, 1, 1307, 1, 1307, 1, 1307, 1, 1307, 1, 1307, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1308, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1309, 1, 1310, 1, 1310, 1, 1310, 1, 1310, 1, 1310, 1, 1310, 1, 1311, 1, 1311, 1, 1311, 1, 1311, 1, 1311, 1, 1311, 1, 1311, 1, 1311, 1, 1311, 1, 1311, 1, 1311, 1, 1311, 1, 1311, 1, 1312, 1, 1312, 1, 1312, 1, 1312, 1, 1312, 1, 1312, 1, 1312, 1, 1312, 1, 1313, 1, 1313, 1, 1313, 1, 1313, 1, 1313, 1, 1313, 1, 1313, 1, 1313, 1, 1313, 1, 1313, 1, 1313, 1, 1313, 1, 1313, 1, 1314, 1, 1314, 1, 1314, 1, 1314, 1, 1314, 1, 1314, 1, 1314, 1, 1314, 1, 1314, 1, 1314, 1, 1314, 1, 1314, 1, 1315, 1, 1315, 1, 1315, 1, 1315, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1316, 1, 1317, 1, 1317, 1, 1317, 1, 1317, 1, 1317, 1, 1317, 1, 1317, 1, 1317, 1, 1317, 1, 1318, 1, 1318, 1, 1318, 1, 1318, 1, 1318, 1, 1318, 1, 1318, 1, 1318, 1, 1318, 1, 1319, 1, 1319, 1, 1319, 1, 1319, 1, 1319, 1, 1320, 1, 1320, 1, 1320, 1, 1320, 1, 1320, 1, 1320, 1, 1320, 1, 1320, 1, 1320, 1, 1321, 1, 1321, 1, 1321, 1, 1321, 1, 1321, 1, 1321, 1, 1321, 1, 1321, 1, 1321, 1, 1321, 1, 1321, 1, 1322, 1, 1322, 1, 1322, 1, 1322, 1, 1322, 1, 1322, 1, 1323, 1, 1323, 1, 1323, 1, 1323, 1, 1323, 1, 1323, 1, 1323, 1, 1323, 1, 1323, 1, 1323, 1, 1324, 1, 1324, 1, 1324, 1, 1324, 1, 1325, 1, 1325, 1, 1326, 1, 1326, 1, 1326, 1, 1326, 1, 1326, 1, 1326, 1, 1326, 1, 1326, 1, 1327, 1, 1327, 1, 1327, 1, 1327, 1, 1327, 1, 1327, 1, 1327, 1, 1327, 1, 1327, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1328, 1, 1329, 1, 1329, 1, 1329, 1, 1329, 1, 1329, 1, 1329, 1, 1329, 1, 1329, 1, 1329, 1, 1329, 1, 1329, 1, 1329, 1, 1329, 1, 1329, 1, 1329, 1, 1330, 1, 1330, 1, 1330, 1, 1330, 1, 1330, 1, 1330, 1, 1330, 1, 1330, 1, 1330, 1, 1331, 1, 1331, 1, 1331, 1, 1331, 1, 1331, 1, 1331, 1, 1331, 1, 1331, 1, 1331, 1, 1331, 1, 1331, 1, 1331, 1, 1331, 1, 1331, 1, 1332, 1, 1332, 1, 1332, 1, 1332, 1, 1332, 1, 1332, 1, 1332, 1, 1332, 1, 1332, 1, 1332, 1, 1332, 1, 1333, 1, 1333, 1, 1333, 1, 1333, 1, 1333, 1, 1333, 1, 1334, 1, 1334, 1, 1334, 1, 1334, 1, 1334, 1, 1334, 1, 1334, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1335, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1336, 1, 1337, 1, 1337, 1, 1337, 1, 1337, 1, 1337, 1, 1337, 1, 1337, 1, 1338, 1, 1338, 1, 1338, 1, 1338, 1, 1338, 1, 1338, 1, 1338, 1, 1338, 1, 1339, 1, 1339, 1, 1339, 1, 1339, 1, 1339, 1, 1339, 1, 1339, 1, 1339, 1, 1339, 1, 1339, 1, 1339, 1, 1339, 1, 1339, 1, 1340, 1, 1340, 1, 1340, 1, 1340, 1, 1340, 1, 1340, 1, 1340, 1, 1340, 1, 1340, 1, 1340, 1, 1341, 1, 1341, 1, 1341, 1, 1341, 1, 1341, 1, 1341, 1, 1341, 1, 1341, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1342, 1, 1343, 1, 1343, 1, 1343, 1, 1343, 1, 1343, 1, 1343, 1, 1343, 1, 1343, 1, 1343, 1, 1343, 1, 1343, 1, 1343, 1, 1343, 1, 1343, 1, 1343, 1, 1344, 1, 1344, 1, 1344, 1, 1344, 1, 1344, 1, 1344, 1, 1344, 1, 1344, 1, 1344, 1, 1344, 1, 1344, 1, 1344, 1, 1344, 1, 1344, 1, 1344, 1, 1345, 1, 1345, 1, 1345, 1, 1345, 1, 1345, 1, 1345, 1, 1345, 1, 1345, 1, 1345, 1, 1345, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1346, 1, 1347, 1, 1347, 1, 1347, 1, 1347, 1, 1347, 1, 1347, 1, 1347, 1, 1347, 1, 1347, 1, 1347, 1, 1347, 1, 1348, 1, 1348, 1, 1348, 1, 1348, 1, 1348, 1, 1348, 1, 1348, 1, 1348, 1, 1348, 1, 1348, 1, 1348, 1, 1348, 1, 1348, 1, 1348, 1, 1349, 1, 1349, 1, 1349, 1, 1349, 1, 1349, 1, 1349, 1, 1349, 1, 1349, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1350, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1351, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1352, 1, 1353, 1, 1353, 1, 1353, 1, 1353, 1, 1353, 1, 1353, 1, 1353, 1, 1353, 1, 1353, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1354, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1355, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1356, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1357, 1, 1358, 1, 1358, 1, 1358, 1, 1358, 1, 1358, 1, 1359, 1, 1359, 1, 1359, 1, 1359, 1, 1359, 1, 1359, 1, 1360, 1, 1360, 1, 1360, 1, 1360, 1, 1360, 1, 1361, 1, 1361, 1, 1361, 1, 1361, 1, 1361, 1, 1361, 1, 1361, 1, 1361, 1, 1361, 1, 1361, 1, 1361, 1, 1361, 1, 1362, 1, 1362, 1, 1362, 1, 1362, 1, 1362, 1, 1362, 1, 1363, 1, 1363, 1, 1363, 1, 1363, 1, 1363, 1, 1363, 1, 1363, 1, 1363, 1, 1364, 1, 1364, 1, 1364, 1, 1364, 1, 1364, 1, 1364, 1, 1364, 1, 1364, 1, 1364, 1, 1364, 1, 1364, 1, 1364, 1, 1364, 1, 1365, 1, 1365, 1, 1365, 1, 1365, 1, 1365, 1, 1365, 1, 1365, 1, 1365, 1, 1365, 1, 1365, 1, 1365, 1, 1366, 1, 1366, 1, 1366, 1, 1366, 1, 1366, 1, 1366, 1, 1366, 1, 1366, 1, 1367, 1, 1367, 1, 1367, 1, 1367, 1, 1367, 1, 1367, 1, 1367, 1, 1367, 1, 1367, 1, 1367, 1, 1367, 1, 1367, 1, 1368, 1, 1368, 1, 1368, 1, 1368, 1, 1368, 1, 1368, 1, 1368, 1, 1368, 1, 1368, 1, 1368, 1, 1368, 1, 1368, 1, 1368, 1, 1369, 1, 1369, 1, 1369, 1, 1369, 1, 1369, 1, 1369, 1, 1369, 1, 1369, 1, 1370, 1, 1370, 1, 1370, 1, 1370, 1, 1370, 1, 1370, 1, 1370, 1, 1370, 1, 1370, 1, 1370, 1, 1370, 1, 1371, 1, 1371, 1, 1371, 1, 1371, 1, 1371, 1, 1371, 1, 1371, 1, 1371, 1, 1372, 1, 1372, 5, 1372, 19890, 8, 1372, 10, 1372, 12, 1372, 19893, 9, 1372, 1, 1372, 1, 1372, 1, 1372, 1, 1372, 1, 1372, 1, 1372, 1, 1373, 1, 1373, 5, 1373, 19903, 8, 1373, 10, 1373, 12, 1373, 19906, 9, 1373, 1, 1373, 1, 1373, 1, 1373, 1, 1373, 1, 1373, 1, 1373, 1, 1373, 1, 1374, 1, 1374, 5, 1374, 19917, 8, 1374, 10, 1374, 12, 1374, 19920, 9, 1374, 1, 1374, 1, 1374, 1, 1374, 1, 1374, 1, 1374, 1, 1374, 1, 1374, 1, 1374, 1, 1374, 1, 1375, 1, 1375, 1, 1375, 1, 1375, 1, 1375, 1, 1375, 1, 1375, 1, 1375, 1, 1376, 1, 1376, 1, 1376, 1, 1376, 1, 1376, 1, 1376, 1, 1376, 1, 1376, 1, 1376, 1, 1376, 1, 1376, 1, 1376, 1, 1376, 1, 1376, 1, 1377, 1, 1377, 5, 1377, 19955, 8, 1377, 10, 1377, 12, 1377, 19958, 9, 1377, 1, 1377, 1, 1377, 1, 1377, 1, 1377, 1, 1377, 1, 1377, 1, 1377, 1, 1377, 1, 1377, 1, 1378, 1, 1378, 5, 1378, 19971, 8, 1378, 10, 1378, 12, 1378, 19974, 9, 1378, 1, 1378, 1, 1378, 1, 1378, 1, 1378, 1, 1378, 1, 1378, 1, 1378, 1, 1378, 1, 1379, 1, 1379, 5, 1379, 19986, 8, 1379, 10, 1379, 12, 1379, 19989, 9, 1379, 1, 1379, 1, 1379, 1, 1379, 1, 1379, 1, 1379, 1, 1380, 1, 1380, 5, 1380, 19998, 8, 1380, 10, 1380, 12, 1380, 20001, 9, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1380, 1, 1381, 1, 1381, 5, 1381, 20021, 8, 1381, 10, 1381, 12, 1381, 20024, 9, 1381, 1, 1381, 1, 1381, 1, 1381, 1, 1381, 1, 1381, 1, 1381, 1, 1381, 1, 1381, 1, 1381, 1, 1381, 1, 1381, 1, 1381, 1, 1381, 1, 1381, 1, 1382, 1, 1382, 1, 1382, 1, 1382, 1, 1382, 1, 1382, 1, 1382, 1, 1382, 1, 1382, 1, 1382, 1, 1382, 1, 1382, 1, 1383, 1, 1383, 1, 1383, 1, 1383, 1, 1383, 1, 1383, 1, 1383, 1, 1384, 1, 1384, 1, 1384, 1, 1384, 1, 1384, 1, 1384, 1, 1384, 1, 1384, 1, 1384, 1, 1384, 1, 1385, 1, 1385, 1, 1385, 1, 1385, 1, 1385, 1, 1385, 1, 1385, 1, 1385, 1, 1385, 1, 1385, 1, 1385, 1, 1386, 1, 1386, 1, 1386, 1, 1386, 1, 1386, 1, 1386, 1, 1386, 1, 1386, 1, 1387, 1, 1387, 1, 1387, 1, 1387, 1, 1388, 1, 1388, 1, 1388, 1, 1388, 1, 1388, 1, 1388, 1, 1389, 1, 1389, 1, 1389, 1, 1389, 1, 1389, 1, 1389, 1, 1389, 1, 1389, 1, 1389, 1, 1390, 1, 1390, 1, 1390, 1, 1390, 1, 1390, 1, 1390, 1, 1391, 1, 1391, 1, 1391, 1, 1391, 1, 1391, 1, 1391, 1, 1391, 1, 1391, 1, 1391, 1, 1391, 1, 1392, 1, 1392, 1, 1392, 1, 1392, 1, 1392, 1, 1393, 1, 1393, 1, 1393, 1, 1393, 1, 1393, 1, 1393, 1, 1393, 1, 1394, 1, 1394, 1, 1394, 1, 1394, 1, 1394, 1, 1394, 1, 1395, 1, 1395, 1, 1395, 1, 1395, 1, 1395, 1, 1395, 1, 1395, 1, 1395, 1, 1396, 1, 1396, 1, 1396, 1, 1396, 1, 1396, 1, 1396, 1, 1396, 1, 1396, 1, 1396, 1, 1396, 1, 1396, 1, 1396, 1, 1396, 1, 1396, 1, 1396, 1, 1397, 1, 1397, 1, 1397, 1, 1397, 1, 1397, 1, 1397, 1, 1397, 1, 1397, 1, 1397, 1, 1397, 1, 1397, 1, 1397, 1, 1397, 1, 1397, 1, 1397, 1, 1398, 1, 1398, 1, 1398, 1, 1398, 1, 1398, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1399, 1, 1400, 1, 1400, 1, 1400, 1, 1400, 1, 1400, 1, 1400, 1, 1400, 1, 1400, 1, 1400, 1, 1400, 1, 1400, 1, 1400, 1, 1401, 1, 1401, 1, 1401, 1, 1401, 1, 1401, 1, 1401, 1, 1401, 1, 1401, 1, 1401, 1, 1401, 1, 1401, 1, 1401, 1, 1401, 1, 1401, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1402, 1, 1403, 1, 1403, 1, 1403, 1, 1403, 1, 1403, 1, 1403, 1, 1403, 1, 1403, 1, 1403, 1, 1403, 1, 1403, 1, 1403, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1404, 1, 1405, 1, 1405, 1, 1405, 1, 1405, 1, 1405, 1, 1405, 1, 1405, 1, 1405, 1, 1405, 1, 1405, 1, 1405, 1, 1405, 1, 1405, 1, 1405, 1, 1405, 1, 1406, 1, 1406, 1, 1406, 1, 1406, 1, 1406, 1, 1406, 1, 1406, 1, 1406, 1, 1406, 1, 1406, 1, 1407, 1, 1407, 1, 1407, 1, 1407, 1, 1407, 1, 1408, 1, 1408, 1, 1408, 1, 1408, 1, 1408, 1, 1408, 1, 1409, 1, 1409, 1, 1409, 1, 1409, 1, 1409, 1, 1409, 1, 1409, 1, 1410, 1, 1410, 1, 1410, 1, 1410, 1, 1410, 1, 1410, 1, 1410, 1, 1410, 1, 1410, 1, 1411, 1, 1411, 1, 1411, 1, 1411, 1, 1411, 1, 1411, 1, 1411, 1, 1411, 1, 1412, 1, 1412, 1, 1412, 1, 1412, 1, 1412, 1, 1412, 1, 1412, 1, 1412, 1, 1412, 1, 1413, 1, 1413, 1, 1413, 1, 1413, 1, 1413, 1, 1413, 1, 1413, 1, 1413, 1, 1414, 1, 1414, 1, 1414, 1, 1414, 1, 1414, 1, 1414, 1, 1414, 1, 1414, 1, 1415, 1, 1415, 1, 1415, 1, 1415, 1, 1415, 1, 1415, 1, 1415, 1, 1415, 1, 1415, 1, 1416, 1, 1416, 1, 1416, 1, 1416, 1, 1416, 1, 1416, 1, 1416, 1, 1416, 1, 1416, 1, 1416, 1, 1417, 1, 1417, 1, 1417, 1, 1417, 1, 1417, 1, 1417, 1, 1417, 1, 1417, 1, 1417, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1418, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1419, 1, 1420, 1, 1420, 1, 1420, 1, 1420, 1, 1420, 1, 1420, 1, 1420, 1, 1420, 1, 1420, 1, 1420, 1, 1420, 1, 1420, 1, 1420, 1, 1420, 1, 1421, 1, 1421, 1, 1421, 1, 1421, 1, 1421, 1, 1421, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1422, 1, 1423, 1, 1423, 1, 1423, 1, 1423, 1, 1423, 1, 1423, 1, 1423, 1, 1423, 1, 1423, 1, 1423, 1, 1423, 1, 1423, 1, 1423, 1, 1423, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1424, 1, 1425, 1, 1425, 1, 1425, 1, 1425, 1, 1425, 1, 1425, 1, 1425, 1, 1425, 1, 1425, 1, 1425, 1, 1426, 1, 1426, 1, 1426, 1, 1426, 1, 1426, 1, 1426, 1, 1426, 1, 1427, 1, 1427, 1, 1427, 1, 1427, 1, 1427, 1, 1427, 1, 1427, 1, 1427, 1, 1427, 1, 1428, 1, 1428, 1, 1428, 1, 1428, 1, 1428, 1, 1428, 1, 1428, 1, 1428, 1, 1428, 1, 1428, 1, 1428, 1, 1428, 1, 1428, 1, 1429, 1, 1429, 1, 1429, 1, 1429, 1, 1429, 1, 1429, 1, 1429, 1, 1429, 1, 1430, 1, 1430, 1, 1430, 1, 1430, 1, 1430, 1, 1430, 1, 1430, 1, 1431, 1, 1431, 1, 1431, 1, 1431, 1, 1431, 1, 1431, 1, 1431, 1, 1431, 1, 1431, 1, 1432, 1, 1432, 1, 1432, 1, 1432, 1, 1432, 1, 1432, 1, 1432, 1, 1432, 1, 1432, 1, 1433, 1, 1433, 1, 1433, 1, 1433, 1, 1433, 1, 1433, 1, 1433, 1, 1433, 1, 1433, 1, 1433, 1, 1434, 1, 1434, 1, 1434, 1, 1434, 1, 1434, 1, 1434, 1, 1434, 1, 1434, 1, 1434, 1, 1434, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1435, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1436, 1, 1437, 1, 1437, 1, 1437, 1, 1437, 1, 1437, 1, 1437, 1, 1437, 1, 1437, 1, 1438, 1, 1438, 1, 1438, 1, 1438, 1, 1438, 1, 1438, 1, 1438, 1, 1438, 1, 1439, 1, 1439, 1, 1439, 1, 1439, 1, 1439, 1, 1439, 1, 1439, 1, 1439, 1, 1439, 1, 1439, 1, 1439, 1, 1439, 1, 1439, 1, 1440, 1, 1440, 1, 1440, 1, 1440, 1, 1440, 1, 1440, 1, 1440, 1, 1440, 1, 1440, 1, 1440, 1, 1440, 1, 1441, 1, 1441, 1, 1441, 1, 1441, 1, 1441, 1, 1441, 1, 1441, 1, 1441, 1, 1442, 1, 1442, 1, 1442, 1, 1442, 1, 1442, 1, 1442, 1, 1442, 1, 1442, 1, 1442, 1, 1443, 1, 1443, 1, 1443, 1, 1443, 1, 1443, 1, 1443, 1, 1443, 1, 1443, 1, 1443, 1, 1443, 1, 1443, 1, 1443, 1, 1443, 1, 1444, 1, 1444, 1, 1444, 1, 1444, 1, 1444, 1, 1444, 1, 1444, 1, 1444, 1, 1444, 1, 1445, 1, 1445, 1, 1445, 1, 1445, 1, 1445, 1, 1445, 1, 1445, 1, 1446, 1, 1446, 1, 1446, 1, 1446, 1, 1446, 1, 1446, 1, 1446, 1, 1446, 1, 1446, 1, 1447, 1, 1447, 1, 1447, 1, 1447, 1, 1447, 1, 1448, 1, 1448, 1, 1448, 1, 1448, 1, 1448, 1, 1448, 1, 1448, 1, 1448, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1449, 1, 1450, 1, 1450, 1, 1450, 1, 1450, 1, 1450, 1, 1450, 1, 1450, 1, 1450, 1, 1450, 1, 1451, 1, 1451, 1, 1451, 1, 1451, 1, 1451, 1, 1451, 1, 1452, 1, 1452, 1, 1452, 1, 1452, 1, 1452, 1, 1452, 1, 1452, 1, 1452, 1, 1453, 1, 1453, 1, 1453, 1, 1453, 1, 1453, 1, 1453, 1, 1453, 1, 1453, 1, 1453, 1, 1453, 1, 1453, 1, 1453, 1, 1454, 1, 1454, 1, 1454, 1, 1454, 1, 1454, 1, 1454, 1, 1454, 1, 1454, 1, 1454, 1, 1454, 1, 1454, 1, 1455, 1, 1455, 1, 1455, 1, 1455, 1, 1455, 1, 1455, 1, 1455, 1, 1455, 1, 1455, 1, 1455, 1, 1456, 1, 1456, 1, 1456, 1, 1456, 1, 1456, 1, 1456, 1, 1456, 1, 1456, 1, 1456, 1, 1456, 1, 1456, 1, 1457, 1, 1457, 1, 1457, 1, 1457, 1, 1457, 1, 1457, 1, 1457, 1, 1457, 1, 1457, 1, 1457, 1, 1457, 1, 1458, 1, 1458, 1, 1458, 1, 1458, 1, 1458, 1, 1458, 1, 1458, 1, 1458, 1, 1458, 1, 1458, 1, 1459, 1, 1459, 1, 1459, 1, 1459, 1, 1459, 1, 1459, 1, 1459, 1, 1459, 1, 1460, 1, 1460, 1, 1460, 1, 1460, 1, 1460, 1, 1460, 1, 1460, 1, 1460, 1, 1461, 1, 1461, 1, 1461, 1, 1461, 1, 1461, 1, 1461, 1, 1461, 1, 1461, 1, 1462, 1, 1462, 1, 1462, 1, 1462, 1, 1462, 1, 1462, 1, 1462, 1, 1462, 1, 1463, 1, 1463, 1, 1463, 1, 1463, 1, 1463, 1, 1463, 1, 1463, 1, 1463, 1, 1463, 1, 1463, 1, 1464, 1, 1464, 1, 1464, 1, 1464, 1, 1464, 1, 1464, 1, 1464, 1, 1464, 1, 1464, 1, 1465, 1, 1465, 1, 1465, 1, 1465, 1, 1465, 1, 1465, 1, 1465, 1, 1465, 1, 1465, 1, 1465, 1, 1466, 1, 1466, 1, 1466, 1, 1466, 1, 1466, 1, 1466, 1, 1466, 1, 1466, 1, 1466, 1, 1466, 1, 1466, 1, 1467, 1, 1467, 1, 1467, 1, 1467, 1, 1467, 1, 1467, 1, 1467, 1, 1467, 1, 1467, 1, 1468, 1, 1468, 1, 1468, 1, 1468, 1, 1468, 1, 1468, 1, 1469, 1, 1469, 1, 1469, 1, 1469, 1, 1469, 1, 1469, 1, 1469, 1, 1469, 1, 1470, 1, 1470, 1, 1470, 1, 1470, 1, 1470, 1, 1470, 1, 1470, 1, 1471, 1, 1471, 1, 1471, 1, 1471, 1, 1471, 1, 1471, 1, 1471, 1, 1471, 1, 1471, 1, 1471, 1, 1472, 1, 1472, 1, 1472, 1, 1472, 1, 1472, 1, 1472, 1, 1473, 1, 1473, 1, 1473, 1, 1473, 1, 1473, 1, 1473, 1, 1473, 1, 1473, 1, 1473, 1, 1473, 1, 1474, 1, 1474, 1, 1474, 1, 1474, 1, 1474, 1, 1474, 1, 1474, 1, 1474, 1, 1474, 1, 1474, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1475, 1, 1476, 1, 1476, 1, 1476, 1, 1476, 1, 1476, 1, 1476, 1, 1476, 1, 1476, 1, 1476, 1, 1476, 1, 1476, 1, 1477, 1, 1477, 1, 1477, 1, 1477, 1, 1477, 1, 1477, 1, 1477, 1, 1477, 1, 1477, 1, 1477, 1, 1477, 1, 1477, 1, 1477, 1, 1477, 1, 1477, 1, 1478, 1, 1478, 1, 1478, 1, 1478, 1, 1478, 1, 1478, 1, 1478, 1, 1478, 1, 1479, 1, 1479, 1, 1479, 1, 1479, 1, 1479, 1, 1479, 1, 1479, 1, 1479, 1, 1479, 1, 1480, 1, 1480, 1, 1480, 1, 1480, 1, 1480, 1, 1480, 1, 1480, 1, 1480, 1, 1480, 1, 1480, 1, 1480, 1, 1480, 1, 1481, 1, 1481, 1, 1481, 1, 1481, 1, 1481, 1, 1481, 1, 1482, 1, 1482, 1, 1482, 1, 1482, 1, 1482, 1, 1482, 1, 1482, 1, 1482, 1, 1482, 1, 1482, 1, 1482, 1, 1483, 1, 1483, 1, 1483, 1, 1483, 1, 1483, 1, 1483, 1, 1484, 1, 1484, 1, 1484, 1, 1484, 1, 1484, 1, 1484, 1, 1484, 1, 1484, 1, 1484, 1, 1484, 1, 1484, 1, 1485, 1, 1485, 1, 1485, 1, 1485, 1, 1485, 1, 1485, 1, 1485, 1, 1485, 1, 1486, 1, 1486, 1, 1486, 1, 1486, 1, 1486, 1, 1486, 1, 1486, 1, 1487, 1, 1487, 1, 1487, 1, 1487, 1, 1487, 1, 1487, 1, 1488, 1, 1488, 1, 1488, 1, 1488, 1, 1488, 1, 1488, 1, 1488, 1, 1488, 1, 1488, 1, 1488, 1, 1488, 1, 1489, 1, 1489, 1, 1489, 1, 1489, 1, 1489, 1, 1489, 1, 1490, 1, 1490, 1, 1490, 1, 1490, 1, 1490, 1, 1490, 1, 1490, 1, 1490, 1, 1490, 1, 1490, 1, 1490, 1, 1490, 1, 1490, 1, 1491, 1, 1491, 1, 1491, 1, 1491, 1, 1491, 1, 1491, 1, 1491, 1, 1492, 1, 1492, 1, 1492, 1, 1492, 1, 1492, 1, 1492, 1, 1493, 1, 1493, 1, 1493, 1, 1493, 1, 1493, 1, 1493, 1, 1494, 1, 1494, 1, 1494, 1, 1494, 1, 1494, 1, 1494, 1, 1494, 1, 1494, 1, 1495, 1, 1495, 1, 1495, 1, 1495, 1, 1496, 1, 1496, 1, 1496, 1, 1496, 1, 1496, 1, 1496, 1, 1496, 1, 1496, 1, 1496, 1, 1497, 1, 1497, 1, 1497, 1, 1497, 1, 1497, 1, 1497, 1, 1497, 1, 1497, 1, 1497, 1, 1497, 1, 1498, 1, 1498, 1, 1498, 1, 1498, 1, 1499, 1, 1499, 1, 1499, 1, 1499, 1, 1499, 1, 1499, 1, 1499, 1, 1499, 1, 1499, 1, 1499, 1, 1499, 1, 1499, 1, 1500, 1, 1500, 1, 1500, 1, 1500, 1, 1500, 1, 1500, 1, 1500, 1, 1501, 1, 1501, 1, 1501, 1, 1501, 1, 1501, 1, 1502, 1, 1502, 1, 1502, 1, 1502, 1, 1502, 1, 1503, 1, 1503, 1, 1503, 1, 1503, 1, 1503, 1, 1503, 1, 1504, 1, 1504, 1, 1504, 1, 1504, 1, 1504, 1, 1504, 1, 1504, 1, 1504, 1, 1504, 1, 1505, 1, 1505, 1, 1505, 1, 1505, 1, 1505, 1, 1505, 1, 1506, 1, 1506, 1, 1506, 1, 1506, 1, 1506, 1, 1507, 1, 1507, 1, 1507, 1, 1507, 1, 1507, 1, 1507, 1, 1507, 1, 1507, 1, 1507, 1, 1507, 1, 1508, 1, 1508, 1, 1508, 1, 1508, 1, 1508, 1, 1508, 1, 1508, 1, 1508, 1, 1509, 1, 1509, 1, 1509, 1, 1509, 1, 1509, 1, 1509, 1, 1509, 1, 1510, 1, 1510, 1, 1510, 1, 1510, 1, 1510, 1, 1510, 1, 1510, 1, 1510, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1511, 1, 1512, 1, 1512, 1, 1512, 1, 1512, 1, 1512, 1, 1512, 1, 1512, 1, 1512, 1, 1512, 1, 1512, 1, 1512, 1, 1512, 1, 1513, 1, 1513, 1, 1513, 1, 1513, 1, 1513, 1, 1513, 1, 1513, 1, 1513, 1, 1514, 1, 1514, 1, 1514, 1, 1514, 1, 1514, 1, 1514, 1, 1514, 1, 1514, 1, 1514, 1, 1515, 1, 1515, 1, 1515, 1, 1515, 1, 1515, 1, 1515, 1, 1515, 1, 1515, 1, 1515, 1, 1515, 1, 1515, 1, 1516, 1, 1516, 1, 1516, 1, 1516, 1, 1516, 1, 1516, 1, 1516, 1, 1516, 1, 1517, 1, 1517, 1, 1517, 1, 1517, 1, 1517, 1, 1517, 1, 1517, 1, 1517, 1, 1517, 1, 1517, 1, 1518, 1, 1518, 1, 1518, 1, 1518, 1, 1518, 1, 1518, 1, 1518, 1, 1518, 1, 1518, 1, 1519, 1, 1519, 1, 1519, 1, 1519, 1, 1519, 1, 1520, 1, 1520, 1, 1520, 1, 1520, 1, 1520, 1, 1520, 1, 1520, 1, 1520, 1, 1521, 1, 1521, 1, 1521, 1, 1521, 1, 1521, 1, 1521, 1, 1521, 1, 1521, 1, 1521, 1, 1521, 1, 1521, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1522, 1, 1523, 1, 1523, 1, 1523, 1, 1523, 1, 1523, 1, 1523, 1, 1523, 1, 1523, 1, 1523, 1, 1523, 1, 1523, 1, 1524, 1, 1524, 1, 1524, 1, 1524, 1, 1524, 1, 1524, 1, 1524, 1, 1524, 1, 1524, 1, 1524, 1, 1525, 1, 1525, 1, 1525, 1, 1525, 1, 1525, 1, 1525, 1, 1525, 1, 1525, 1, 1525, 1, 1525, 1, 1525, 1, 1526, 1, 1526, 1, 1526, 1, 1526, 1, 1526, 1, 1526, 1, 1526, 1, 1526, 1, 1526, 1, 1526, 1, 1526, 1, 1526, 1, 1527, 1, 1527, 1, 1527, 1, 1527, 1, 1528, 1, 1528, 1, 1528, 1, 1528, 1, 1528, 1, 1528, 1, 1528, 1, 1528, 1, 1529, 1, 1529, 1, 1529, 1, 1529, 1, 1529, 1, 1529, 1, 1529, 1, 1529, 1, 1529, 1, 1530, 1, 1530, 1, 1530, 1, 1530, 1, 1530, 1, 1530, 1, 1530, 1, 1530, 1, 1530, 1, 1530, 1, 1530, 1, 1530, 1, 1530, 1, 1531, 1, 1531, 1, 1531, 1, 1531, 1, 1531, 1, 1531, 1, 1531, 1, 1531, 1, 1531, 1, 1531, 1, 1531, 1, 1531, 1, 1531, 1, 1532, 1, 1532, 1, 1532, 1, 1532, 1, 1532, 1, 1532, 1, 1532, 1, 1532, 1, 1532, 1, 1532, 1, 1532, 1, 1532, 1, 1533, 1, 1533, 1, 1533, 1, 1533, 1, 1533, 1, 1533, 1, 1533, 1, 1533, 1, 1533, 1, 1533, 1, 1533, 1, 1533, 1, 1533, 1, 1533, 1, 1533, 1, 1534, 1, 1534, 1, 1534, 1, 1534, 1, 1534, 1, 1534, 1, 1534, 1, 1534, 1, 1534, 1, 1534, 1, 1534, 1, 1534, 1, 1534, 1, 1534, 1, 1535, 1, 1535, 1, 1535, 1, 1535, 1, 1535, 1, 1535, 1, 1535, 1, 1535, 1, 1535, 1, 1536, 1, 1536, 1, 1536, 1, 1536, 1, 1536, 1, 1536, 1, 1536, 1, 1536, 1, 1536, 1, 1536, 1, 1537, 1, 1537, 1, 1537, 1, 1537, 1, 1537, 1, 1537, 1, 1537, 1, 1537, 1, 1537, 1, 1537, 1, 1538, 1, 1538, 1, 1538, 1, 1538, 1, 1538, 1, 1538, 1, 1538, 1, 1538, 1, 1538, 1, 1538, 1, 1538, 1, 1539, 1, 1539, 1, 1539, 1, 1539, 1, 1539, 1, 1539, 1, 1539, 1, 1539, 1, 1539, 1, 1539, 1, 1539, 1, 1539, 1, 1539, 1, 1539, 1, 1539, 1, 1540, 1, 1540, 1, 1540, 1, 1540, 1, 1540, 1, 1540, 1, 1540, 1, 1540, 1, 1541, 1, 1541, 1, 1541, 1, 1541, 1, 1541, 1, 1541, 1, 1541, 1, 1541, 1, 1541, 1, 1541, 1, 1541, 1, 1542, 1, 1542, 1, 1542, 1, 1542, 1, 1542, 1, 1542, 1, 1542, 1, 1542, 1, 1542, 1, 1543, 1, 1543, 1, 1543, 1, 1543, 1, 1543, 1, 1543, 1, 1543, 1, 1543, 1, 1543, 1, 1544, 1, 1544, 1, 1544, 1, 1544, 1, 1544, 1, 1544, 1, 1544, 1, 1544, 1, 1544, 1, 1545, 1, 1545, 1, 1545, 1, 1545, 1, 1545, 1, 1545, 1, 1545, 1, 1545, 1, 1546, 1, 1546, 1, 1546, 1, 1546, 1, 1546, 1, 1546, 1, 1546, 1, 1547, 1, 1547, 1, 1547, 1, 1547, 1, 1547, 1, 1547, 1, 1548, 1, 1548, 1, 1548, 1, 1548, 1, 1548, 1, 1548, 1, 1548, 1, 1548, 1, 1548, 1, 1548, 1, 1548, 1, 1549, 1, 1549, 1, 1549, 1, 1549, 1, 1549, 1, 1549, 1, 1549, 1, 1549, 1, 1549, 1, 1549, 1, 1550, 1, 1550, 1, 1550, 1, 1550, 1, 1550, 1, 1550, 1, 1550, 1, 1550, 1, 1550, 1, 1551, 1, 1551, 1, 1551, 1, 1551, 1, 1551, 1, 1552, 1, 1552, 1, 1552, 1, 1552, 1, 1552, 1, 1552, 1, 1552, 1, 1552, 1, 1552, 1, 1552, 1, 1553, 1, 1553, 1, 1553, 1, 1553, 1, 1553, 1, 1553, 1, 1553, 1, 1554, 1, 1554, 1, 1554, 1, 1554, 1, 1554, 1, 1554, 1, 1554, 1, 1554, 1, 1554, 1, 1554, 1, 1554, 1, 1554, 1, 1554, 1, 1554, 1, 1555, 1, 1555, 1, 1555, 1, 1555, 1, 1555, 1, 1555, 1, 1555, 1, 1556, 1, 1556, 1, 1556, 1, 1556, 1, 1556, 1, 1556, 1, 1556, 1, 1557, 1, 1557, 1, 1557, 1, 1557, 1, 1557, 1, 1557, 1, 1557, 1, 1558, 1, 1558, 1, 1558, 1, 1558, 1, 1558, 1, 1558, 1, 1558, 1, 1559, 1, 1559, 1, 1559, 1, 1559, 1, 1559, 1, 1559, 1, 1559, 1, 1559, 1, 1560, 1, 1560, 1, 1560, 1, 1560, 1, 1560, 1, 1560, 1, 1560, 1, 1560, 1, 1560, 1, 1560, 1, 1560, 1, 1560, 1, 1561, 1, 1561, 1, 1561, 1, 1561, 1, 1561, 1, 1561, 1, 1561, 1, 1561, 1, 1561, 1, 1562, 1, 1562, 1, 1562, 1, 1562, 1, 1562, 1, 1562, 1, 1562, 1, 1562, 1, 1562, 1, 1562, 1, 1563, 1, 1563, 1, 1563, 1, 1563, 1, 1563, 1, 1563, 1, 1564, 1, 1564, 1, 1564, 1, 1564, 1, 1564, 1, 1564, 1, 1564, 1, 1565, 1, 1565, 1, 1565, 1, 1565, 1, 1565, 1, 1565, 1, 1565, 1, 1565, 1, 1566, 1, 1566, 1, 1566, 1, 1566, 1, 1566, 1, 1566, 1, 1566, 1, 1566, 1, 1566, 1, 1567, 1, 1567, 1, 1567, 1, 1567, 1, 1567, 1, 1567, 1, 1567, 1, 1567, 1, 1567, 1, 1568, 1, 1568, 1, 1568, 1, 1568, 1, 1568, 1, 1568, 1, 1568, 1, 1568, 1, 1569, 1, 1569, 1, 1569, 1, 1569, 1, 1569, 1, 1569, 1, 1569, 1, 1569, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1570, 1, 1571, 1, 1571, 1, 1571, 1, 1571, 1, 1571, 1, 1571, 1, 1571, 1, 1571, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1572, 1, 1573, 1, 1573, 1, 1573, 1, 1573, 1, 1573, 1, 1573, 1, 1573, 1, 1573, 1, 1573, 1, 1573, 1, 1573, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1574, 1, 1575, 1, 1575, 1, 1575, 1, 1575, 1, 1575, 1, 1575, 1, 1575, 1, 1575, 1, 1575, 1, 1576, 1, 1576, 1, 1576, 1, 1576, 1, 1576, 1, 1576, 1, 1576, 1, 1576, 1, 1576, 1, 1576, 1, 1576, 1, 1576, 1, 1576, 1, 1577, 1, 1577, 1, 1577, 1, 1577, 1, 1577, 1, 1577, 1, 1577, 1, 1578, 1, 1578, 1, 1578, 1, 1578, 1, 1578, 1, 1578, 1, 1578, 1, 1578, 1, 1578, 1, 1578, 1, 1579, 1, 1579, 1, 1579, 1, 1579, 1, 1579, 1, 1579, 1, 1579, 1, 1580, 1, 1580, 1, 1580, 1, 1580, 1, 1580, 1, 1580, 1, 1580, 1, 1580, 1, 1580, 1, 1580, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1581, 1, 1582, 1, 1582, 1, 1582, 1, 1582, 1, 1582, 1, 1582, 1, 1582, 1, 1582, 1, 1582, 1, 1582, 1, 1583, 1, 1583, 1, 1583, 1, 1583, 1, 1583, 1, 1583, 1, 1583, 1, 1584, 1, 1584, 1, 1584, 1, 1584, 1, 1584, 1, 1584, 1, 1585, 1, 1585, 1, 1585, 1, 1585, 1, 1585, 1, 1585, 1, 1585, 1, 1585, 1, 1586, 1, 1586, 1, 1586, 1, 1586, 1, 1586, 1, 1586, 1, 1586, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1587, 1, 1588, 1, 1588, 1, 1588, 1, 1588, 1, 1588, 1, 1588, 1, 1588, 1, 1588, 1, 1589, 1, 1589, 1, 1589, 1, 1589, 1, 1589, 1, 1589, 1, 1590, 1, 1590, 1, 1590, 1, 1590, 1, 1590, 1, 1591, 1, 1591, 1, 1591, 1, 1591, 1, 1591, 1, 1591, 1, 1591, 1, 1591, 1, 1592, 1, 1592, 1, 1592, 1, 1592, 1, 1592, 1, 1592, 1, 1593, 1, 1593, 1, 1593, 1, 1593, 1, 1593, 1, 1593, 1, 1593, 1, 1593, 1, 1593, 1, 1594, 1, 1594, 1, 1594, 1, 1594, 1, 1594, 1, 1594, 1, 1594, 1, 1594, 1, 1595, 1, 1595, 1, 1595, 1, 1595, 1, 1595, 1, 1595, 1, 1595, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1596, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1597, 1, 1598, 1, 1598, 1, 1598, 1, 1598, 1, 1598, 1, 1598, 1, 1599, 1, 1599, 1, 1599, 1, 1599, 1, 1599, 1, 1599, 1, 1599, 1, 1599, 1, 1599, 1, 1599, 1, 1599, 1, 1599, 1, 1600, 1, 1600, 1, 1600, 1, 1600, 1, 1600, 1, 1600, 1, 1600, 1, 1600, 1, 1600, 1, 1600, 1, 1600, 1, 1600, 1, 1600, 1, 1601, 1, 1601, 1, 1601, 1, 1601, 1, 1601, 1, 1601, 1, 1601, 1, 1601, 1, 1601, 1, 1601, 1, 1601, 1, 1602, 1, 1602, 1, 1602, 1, 1602, 1, 1602, 1, 1602, 1, 1602, 1, 1603, 1, 1603, 1, 1603, 1, 1603, 1, 1604, 1, 1604, 1, 1604, 1, 1604, 1, 1604, 1, 1605, 1, 1605, 1, 1605, 1, 1605, 1, 1605, 1, 1606, 1, 1606, 1, 1606, 1, 1606, 1, 1606, 1, 1606, 1, 1607, 1, 1607, 1, 1607, 1, 1607, 1, 1607, 1, 1608, 1, 1608, 1, 1608, 1, 1608, 1, 1608, 1, 1608, 1, 1609, 1, 1609, 1, 1609, 1, 1609, 1, 1609, 1, 1609, 1, 1609, 1, 1609, 1, 1610, 1, 1610, 1, 1610, 1, 1610, 1, 1610, 1, 1611, 1, 1611, 1, 1611, 1, 1611, 1, 1611, 1, 1611, 1, 1611, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1612, 1, 1613, 1, 1613, 1, 1613, 1, 1613, 1, 1613, 1, 1613, 1, 1613, 1, 1613, 1, 1613, 1, 1613, 1, 1614, 1, 1614, 1, 1614, 1, 1614, 1, 1614, 1, 1615, 1, 1615, 1, 1615, 1, 1615, 1, 1616, 1, 1616, 1, 1616, 1, 1616, 1, 1616, 1, 1616, 1, 1616, 1, 1616, 1, 1616, 1, 1616, 1, 1616, 1, 1617, 1, 1617, 1, 1617, 1, 1617, 1, 1617, 1, 1617, 1, 1618, 1, 1618, 1, 1618, 1, 1618, 1, 1618, 1, 1618, 1, 1618, 1, 1618, 1, 1618, 1, 1618, 1, 1618, 1, 1618, 1, 1618, 1, 1618, 1, 1618, 1, 1619, 1, 1619, 1, 1619, 1, 1619, 1, 1619, 1, 1620, 1, 1620, 1, 1620, 1, 1620, 1, 1620, 1, 1620, 1, 1620, 1, 1620, 1, 1620, 1, 1620, 1, 1621, 1, 1621, 1, 1621, 1, 1621, 1, 1621, 1, 1621, 1, 1621, 1, 1621, 1, 1621, 1, 1621, 1, 1621, 1, 1621, 1, 1622, 1, 1622, 1, 1622, 1, 1622, 1, 1622, 1, 1622, 1, 1622, 1, 1623, 1, 1623, 1, 1623, 1, 1623, 1, 1623, 1, 1623, 1, 1623, 1, 1623, 1, 1623, 1, 1623, 1, 1623, 1, 1623, 1, 1623, 1, 1623, 1, 1624, 1, 1624, 1, 1624, 1, 1624, 1, 1625, 1, 1625, 1, 1625, 1, 1625, 1, 1625, 1, 1625, 1, 1626, 1, 1626, 1, 1626, 1, 1626, 1, 1626, 1, 1626, 1, 1627, 1, 1627, 1, 1627, 1, 1627, 1, 1627, 1, 1627, 1, 1627, 1, 1628, 1, 1628, 1, 1628, 1, 1628, 1, 1628, 1, 1628, 1, 1628, 1, 1628, 1, 1628, 1, 1628, 1, 1628, 1, 1629, 1, 1629, 1, 1629, 1, 1629, 1, 1629, 1, 1629, 1, 1629, 1, 1629, 1, 1629, 1, 1629, 1, 1629, 1, 1629, 1, 1629, 1, 1630, 1, 1630, 1, 1630, 1, 1630, 1, 1630, 1, 1630, 1, 1630, 1, 1630, 1, 1630, 1, 1630, 1, 1630, 1, 1630, 1, 1630, 1, 1631, 1, 1631, 1, 1631, 1, 1631, 1, 1631, 1, 1631, 1, 1631, 1, 1631, 1, 1632, 1, 1632, 1, 1632, 1, 1632, 1, 1632, 1, 1632, 1, 1632, 1, 1633, 1, 1633, 1, 1633, 1, 1633, 1, 1633, 1, 1633, 1, 1633, 1, 1634, 1, 1634, 1, 1634, 1, 1634, 1, 1634, 1, 1634, 1, 1634, 1, 1634, 1, 1635, 1, 1635, 1, 1635, 1, 1635, 1, 1635, 1, 1635, 1, 1635, 1, 1636, 1, 1636, 1, 1636, 1, 1636, 1, 1636, 1, 1636, 1, 1636, 1, 1636, 1, 1636, 1, 1636, 1, 1636, 1, 1636, 1, 1636, 1, 1636, 1, 1636, 1, 1637, 1, 1637, 1, 1637, 1, 1637, 1, 1637, 1, 1637, 1, 1637, 1, 1637, 1, 1637, 1, 1637, 1, 1637, 1, 1638, 1, 1638, 1, 1638, 1, 1638, 1, 1638, 1, 1638, 1, 1638, 1, 1638, 1, 1638, 1, 1639, 1, 1639, 1, 1639, 1, 1639, 1, 1639, 1, 1640, 1, 1640, 1, 1640, 1, 1640, 1, 1640, 1, 1640, 1, 1640, 1, 1640, 1, 1640, 1, 1640, 1, 1641, 1, 1641, 1, 1641, 1, 1641, 1, 1641, 1, 1641, 1, 1641, 1, 1641, 1, 1641, 1, 1642, 1, 1642, 1, 1642, 1, 1642, 1, 1642, 1, 1642, 1, 1642, 1, 1642, 1, 1643, 1, 1643, 1, 1643, 1, 1643, 1, 1643, 1, 1643, 1, 1643, 1, 1643, 1, 1643, 1, 1643, 1, 1643, 1, 1643, 1, 1644, 1, 1644, 1, 1644, 1, 1644, 1, 1644, 1, 1644, 1, 1644, 1, 1645, 1, 1645, 1, 1645, 1, 1645, 1, 1645, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1646, 1, 1647, 1, 1647, 1, 1647, 1, 1647, 1, 1647, 1, 1647, 1, 1647, 1, 1647, 1, 1647, 1, 1648, 1, 1648, 1, 1648, 1, 1648, 1, 1648, 1, 1648, 1, 1648, 1, 1648, 1, 1648, 1, 1648, 1, 1648, 1, 1648, 1, 1648, 1, 1648, 1, 1649, 1, 1649, 1, 1649, 1, 1649, 1, 1649, 1, 1649, 1, 1649, 1, 1649, 1, 1649, 1, 1649, 1, 1650, 1, 1650, 1, 1650, 1, 1650, 1, 1650, 1, 1650, 1, 1650, 1, 1650, 1, 1650, 1, 1651, 1, 1651, 1, 1651, 1, 1651, 1, 1651, 1, 1651, 1, 1651, 1, 1651, 1, 1651, 1, 1651, 1, 1651, 1, 1651, 1, 1651, 1, 1652, 1, 1652, 1, 1652, 1, 1652, 1, 1652, 1, 1652, 1, 1652, 1, 1652, 1, 1652, 1, 1652, 1, 1652, 1, 1653, 1, 1653, 1, 1653, 1, 1653, 1, 1654, 1, 1654, 1, 1654, 1, 1654, 1, 1654, 1, 1654, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1655, 1, 1656, 1, 1656, 1, 1656, 1, 1656, 1, 1656, 1, 1656, 1, 1656, 1, 1656, 1, 1656, 1, 1656, 1, 1656, 1, 1656, 1, 1656, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1657, 1, 1658, 1, 1658, 1, 1658, 1, 1658, 1, 1658, 1, 1658, 1, 1658, 1, 1659, 1, 1659, 1, 1659, 1, 1659, 1, 1659, 1, 1659, 1, 1659, 1, 1659, 1, 1659, 1, 1659, 1, 1659, 1, 1659, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1660, 1, 1661, 1, 1661, 1, 1661, 1, 1661, 1, 1661, 1, 1661, 1, 1661, 1, 1661, 1, 1662, 1, 1662, 1, 1662, 1, 1662, 1, 1662, 1, 1662, 1, 1662, 1, 1662, 1, 1662, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1663, 1, 1664, 1, 1664, 1, 1664, 1, 1664, 1, 1664, 1, 1664, 1, 1664, 1, 1664, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1665, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1666, 1, 1667, 1, 1667, 1, 1667, 1, 1667, 1, 1667, 1, 1667, 1, 1667, 1, 1667, 1, 1667, 1, 1667, 1, 1667, 1, 1667, 1, 1667, 1, 1667, 1, 1668, 1, 1668, 1, 1668, 1, 1668, 1, 1669, 1, 1669, 1, 1669, 1, 1669, 1, 1669, 1, 1670, 1, 1670, 1, 1670, 1, 1670, 1, 1670, 1, 1670, 1, 1670, 1, 1670, 1, 1670, 1, 1671, 1, 1671, 1, 1671, 1, 1671, 1, 1671, 1, 1671, 1, 1671, 1, 1671, 1, 1671, 1, 1671, 1, 1671, 1, 1671, 1, 1672, 1, 1672, 1, 1672, 1, 1672, 1, 1672, 1, 1672, 1, 1672, 1, 1673, 1, 1673, 1, 1673, 1, 1673, 1, 1673, 1, 1673, 1, 1674, 1, 1674, 1, 1674, 1, 1674, 1, 1674, 1, 1674, 1, 1674, 1, 1674, 1, 1674, 1, 1674, 1, 1674, 1, 1675, 1, 1675, 1, 1675, 1, 1675, 1, 1675, 1, 1675, 1, 1675, 1, 1675, 1, 1675, 1, 1675, 1, 1675, 1, 1675, 1, 1676, 1, 1676, 1, 1676, 1, 1676, 1, 1676, 1, 1676, 1, 1676, 1, 1677, 1, 1677, 1, 1677, 1, 1677, 1, 1677, 1, 1677, 1, 1678, 1, 1678, 1, 1678, 1, 1678, 1, 1678, 1, 1678, 1, 1678, 1, 1678, 1, 1679, 1, 1679, 1, 1679, 1, 1679, 1, 1679, 1, 1679, 1, 1679, 1, 1679, 1, 1679, 1, 1679, 1, 1680, 1, 1680, 1, 1680, 1, 1680, 1, 1680, 1, 1681, 1, 1681, 1, 1681, 1, 1681, 1, 1681, 1, 1681, 1, 1681, 1, 1682, 1, 1682, 1, 1682, 1, 1682, 1, 1682, 1, 1682, 1, 1682, 1, 1682, 1, 1682, 1, 1683, 1, 1683, 1, 1683, 1, 1683, 1, 1683, 1, 1683, 1, 1683, 1, 1683, 1, 1683, 1, 1684, 1, 1684, 1, 1684, 1, 1684, 1, 1685, 1, 1685, 1, 1685, 1, 1685, 1, 1685, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1686, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1687, 1, 1688, 1, 1688, 1, 1688, 1, 1688, 1, 1688, 1, 1689, 1, 1689, 1, 1689, 1, 1689, 1, 1689, 1, 1689, 1, 1689, 1, 1689, 1, 1689, 1, 1690, 1, 1690, 1, 1690, 1, 1690, 1, 1690, 1, 1690, 1, 1690, 1, 1690, 1, 1690, 1, 1690, 1, 1690, 1, 1690, 1, 1690, 1, 1690, 1, 1690, 1, 1691, 1, 1691, 1, 1691, 1, 1691, 1, 1691, 1, 1691, 1, 1691, 1, 1692, 1, 1692, 1, 1692, 1, 1692, 1, 1692, 1, 1692, 1, 1692, 1, 1693, 1, 1693, 1, 1693, 1, 1693, 1, 1693, 1, 1693, 1, 1693, 1, 1693, 1, 1693, 1, 1693, 1, 1693, 1, 1694, 1, 1694, 1, 1694, 1, 1694, 1, 1694, 1, 1695, 1, 1695, 1, 1695, 1, 1695, 1, 1696, 1, 1696, 1, 1696, 1, 1696, 1, 1696, 1, 1697, 1, 1697, 1, 1697, 1, 1697, 1, 1697, 1, 1697, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1698, 1, 1699, 1, 1699, 1, 1699, 1, 1699, 1, 1699, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1700, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1701, 1, 1702, 1, 1702, 1, 1702, 1, 1702, 1, 1702, 1, 1702, 1, 1702, 1, 1702, 1, 1702, 1, 1702, 1, 1703, 1, 1703, 1, 1703, 1, 1703, 1, 1703, 1, 1703, 1, 1703, 1, 1703, 1, 1703, 1, 1704, 1, 1704, 1, 1704, 1, 1704, 1, 1704, 1, 1704, 1, 1704, 1, 1704, 1, 1704, 1, 1705, 1, 1705, 1, 1705, 1, 1705, 1, 1705, 1, 1706, 1, 1706, 1, 1706, 1, 1706, 1, 1706, 1, 1707, 1, 1707, 1, 1707, 1, 1707, 1, 1707, 1, 1707, 1, 1707, 1, 1707, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1708, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1709, 1, 1710, 1, 1710, 1, 1710, 1, 1710, 1, 1710, 1, 1710, 1, 1710, 1, 1711, 1, 1711, 1, 1711, 1, 1711, 1, 1711, 1, 1711, 1, 1712, 1, 1712, 1, 1712, 1, 1712, 1, 1712, 1, 1712, 1, 1712, 1, 1712, 1, 1712, 1, 1712, 1, 1712, 1, 1712, 1, 1712, 1, 1712, 1, 1713, 1, 1713, 1, 1713, 1, 1713, 1, 1713, 1, 1713, 1, 1713, 1, 1714, 1, 1714, 1, 1714, 1, 1714, 1, 1714, 1, 1714, 1, 1715, 1, 1715, 1, 1715, 1, 1715, 1, 1715, 1, 1715, 1, 1715, 1, 1715, 1, 1715, 1, 1715, 1, 1715, 1, 1715, 1, 1716, 1, 1716, 1, 1716, 1, 1716, 1, 1716, 1, 1716, 1, 1716, 1, 1716, 1, 1717, 1, 1717, 1, 1717, 1, 1717, 1, 1717, 1, 1717, 1, 1717, 1, 1717, 1, 1717, 1, 1718, 1, 1718, 1, 1718, 1, 1718, 1, 1718, 1, 1718, 1, 1718, 1, 1719, 1, 1719, 1, 1719, 1, 1719, 1, 1720, 1, 1720, 1, 1720, 1, 1720, 1, 1720, 1, 1720, 3, 1720, 23338, 8, 1720, 1, 1721, 1, 1721, 1, 1721, 1, 1721, 1, 1721, 1, 1721, 1, 1721, 1, 1721, 1, 1721, 1, 1721, 1, 1722, 1, 1722, 1, 1722, 1, 1722, 1, 1722, 1, 1722, 1, 1722, 1, 1722, 1, 1722, 1, 1722, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1723, 1, 1724, 1, 1724, 1, 1724, 1, 1724, 1, 1724, 1, 1725, 1, 1725, 1, 1725, 1, 1725, 1, 1725, 1, 1725, 1, 1726, 1, 1726, 1, 1726, 1, 1726, 1, 1726, 1, 1726, 1, 1726, 1, 1726, 1, 1726, 1, 1726, 1, 1726, 1, 1727, 1, 1727, 1, 1727, 1, 1727, 1, 1727, 1, 1727, 1, 1727, 1, 1727, 1, 1727, 1, 1728, 1, 1728, 1, 1728, 1, 1728, 1, 1728, 1, 1728, 1, 1728, 1, 1728, 1, 1728, 1, 1728, 1, 1728, 1, 1728, 1, 1728, 1, 1728, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1729, 1, 1730, 1, 1730, 1, 1730, 1, 1730, 1, 1730, 1, 1730, 1, 1730, 1, 1730, 1, 1730, 1, 1731, 1, 1731, 1, 1731, 1, 1731, 1, 1731, 1, 1731, 1, 1731, 1, 1731, 1, 1732, 1, 1732, 1, 1732, 1, 1732, 1, 1732, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1733, 1, 1734, 1, 1734, 1, 1734, 1, 1734, 1, 1734, 1, 1734, 1, 1735, 1, 1735, 1, 1735, 1, 1735, 1, 1735, 1, 1735, 1, 1735, 1, 1735, 1, 1736, 1, 1736, 1, 1736, 1, 1736, 1, 1736, 1, 1736, 1, 1736, 1, 1736, 1, 1737, 1, 1737, 1, 1737, 1, 1737, 1, 1737, 1, 1737, 1, 1737, 1, 1737, 1, 1737, 1, 1737, 1, 1737, 1, 1737, 1, 1737, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1738, 1, 1739, 1, 1739, 1, 1739, 1, 1739, 1, 1739, 1, 1739, 1, 1739, 1, 1739, 1, 1739, 1, 1739, 1, 1739, 1, 1740, 1, 1740, 1, 1740, 1, 1740, 1, 1740, 1, 1740, 1, 1740, 1, 1740, 1, 1740, 1, 1740, 1, 1741, 1, 1741, 1, 1741, 1, 1741, 1, 1741, 1, 1741, 1, 1742, 1, 1742, 1, 1742, 1, 1742, 1, 1742, 1, 1742, 1, 1742, 1, 1743, 1, 1743, 1, 1743, 1, 1743, 1, 1743, 1, 1743, 1, 1743, 1, 1743, 1, 1743, 1, 1743, 1, 1743, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1744, 1, 1745, 1, 1745, 1, 1745, 1, 1745, 1, 1745, 1, 1745, 1, 1745, 1, 1745, 1, 1745, 1, 1745, 1, 1745, 1, 1745, 1, 1745, 1, 1745, 1, 1745, 1, 1746, 1, 1746, 1, 1746, 1, 1746, 1, 1746, 1, 1746, 1, 1746, 1, 1746, 1, 1746, 1, 1746, 1, 1746, 1, 1746, 1, 1746, 1, 1747, 1, 1747, 1, 1747, 1, 1747, 1, 1747, 1, 1747, 1, 1747, 1, 1747, 1, 1747, 1, 1747, 1, 1747, 1, 1747, 1, 1747, 1, 1747, 1, 1748, 1, 1748, 1, 1748, 1, 1748, 1, 1748, 1, 1748, 1, 1748, 1, 1748, 1, 1748, 1, 1748, 1, 1748, 1, 1749, 1, 1749, 1, 1749, 1, 1749, 1, 1749, 1, 1749, 1, 1749, 1, 1749, 1, 1749, 1, 1749, 1, 1749, 1, 1749, 1, 1749, 1, 1749, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1750, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1751, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1752, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1753, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1754, 1, 1755, 1, 1755, 1, 1755, 1, 1755, 1, 1755, 1, 1755, 1, 1755, 1, 1755, 1, 1755, 1, 1755, 1, 1755, 1, 1755, 1, 1755, 1, 1755, 1, 1755, 1, 1756, 1, 1756, 1, 1756, 1, 1756, 1, 1756, 1, 1756, 1, 1756, 1, 1756, 1, 1756, 1, 1756, 1, 1756, 1, 1757, 1, 1757, 1, 1757, 1, 1757, 1, 1757, 1, 1757, 1, 1757, 1, 1757, 1, 1757, 1, 1757, 1, 1757, 1, 1757, 1, 1758, 1, 1758, 1, 1758, 1, 1758, 1, 1758, 1, 1759, 1, 1759, 1, 1759, 1, 1759, 1, 1759, 1, 1759, 1, 1759, 1, 1759, 1, 1760, 1, 1760, 1, 1760, 1, 1760, 1, 1760, 1, 1760, 1, 1761, 1, 1761, 1, 1761, 1, 1761, 1, 1761, 1, 1761, 1, 1761, 1, 1761, 1, 1762, 1, 1762, 1, 1762, 1, 1762, 1, 1762, 1, 1762, 1, 1762, 1, 1763, 1, 1763, 1, 1763, 1, 1763, 1, 1763, 1, 1763, 1, 1763, 1, 1764, 1, 1764, 1, 1764, 1, 1764, 1, 1764, 1, 1764, 1, 1764, 1, 1765, 1, 1765, 1, 1765, 1, 1765, 1, 1765, 1, 1765, 1, 1765, 1, 1765, 1, 1765, 1, 1765, 1, 1765, 1, 1765, 1, 1765, 1, 1765, 1, 1765, 1, 1766, 1, 1766, 1, 1766, 1, 1766, 1, 1766, 1, 1766, 1, 1766, 1, 1766, 1, 1766, 1, 1766, 1, 1766, 1, 1766, 1, 1766, 1, 1767, 1, 1767, 1, 1767, 1, 1767, 1, 1767, 1, 1767, 1, 1768, 1, 1768, 1, 1768, 1, 1768, 1, 1768, 1, 1768, 1, 1768, 1, 1768, 1, 1768, 1, 1768, 1, 1769, 1, 1769, 1, 1769, 1, 1769, 1, 1769, 1, 1769, 1, 1769, 1, 1769, 1, 1769, 1, 1769, 1, 1769, 1, 1769, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1770, 1, 1771, 1, 1771, 1, 1771, 1, 1771, 1, 1771, 1, 1771, 1, 1771, 1, 1771, 1, 1771, 1, 1771, 1, 1771, 1, 1771, 1, 1771, 1, 1771, 1, 1772, 1, 1772, 1, 1772, 1, 1772, 1, 1772, 1, 1772, 1, 1772, 1, 1772, 1, 1772, 1, 1772, 1, 1772, 1, 1772, 1, 1772, 1, 1773, 1, 1773, 1, 1773, 1, 1773, 1, 1773, 1, 1773, 1, 1773, 1, 1773, 1, 1773, 1, 1773, 1, 1773, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1774, 1, 1775, 1, 1775, 1, 1775, 1, 1775, 1, 1775, 1, 1775, 1, 1775, 1, 1775, 1, 1775, 1, 1775, 1, 1776, 1, 1776, 1, 1776, 1, 1776, 1, 1776, 1, 1776, 1, 1776, 1, 1777, 1, 1777, 1, 1777, 1, 1777, 1, 1777, 1, 1777, 1, 1777, 1, 1777, 1, 1777, 1, 1777, 1, 1777, 1, 1777, 1, 1777, 1, 1777, 1, 1778, 1, 1778, 1, 1778, 1, 1778, 1, 1778, 1, 1778, 1, 1778, 1, 1778, 1, 1779, 1, 1779, 1, 1779, 1, 1779, 1, 1779, 1, 1779, 1, 1779, 1, 1779, 1, 1780, 1, 1780, 1, 1780, 1, 1780, 1, 1780, 1, 1780, 1, 1780, 1, 1780, 1, 1781, 1, 1781, 1, 1781, 1, 1781, 1, 1781, 1, 1781, 1, 1781, 1, 1781, 1, 1782, 1, 1782, 1, 1782, 1, 1782, 1, 1782, 1, 1782, 1, 1782, 1, 1782, 1, 1783, 1, 1783, 1, 1783, 1, 1783, 1, 1783, 1, 1783, 1, 1783, 1, 1783, 1, 1783, 1, 1783, 1, 1783, 1, 1784, 1, 1784, 1, 1784, 1, 1784, 1, 1784, 1, 1784, 1, 1784, 1, 1784, 1, 1785, 1, 1785, 1, 1785, 1, 1785, 1, 1785, 1, 1785, 1, 1785, 1, 1785, 1, 1786, 1, 1786, 1, 1786, 1, 1786, 1, 1786, 1, 1786, 1, 1786, 1, 1786, 1, 1786, 1, 1786, 1, 1786, 1, 1786, 1, 1786, 1, 1787, 1, 1787, 1, 1787, 1, 1787, 1, 1787, 1, 1787, 1, 1787, 1, 1787, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1788, 1, 1789, 1, 1789, 1, 1789, 1, 1789, 1, 1789, 1, 1789, 1, 1789, 1, 1789, 1, 1789, 1, 1789, 1, 1789, 1, 1790, 1, 1790, 1, 1790, 1, 1790, 1, 1790, 1, 1790, 1, 1790, 1, 1791, 1, 1791, 1, 1791, 1, 1791, 1, 1791, 1, 1791, 1, 1791, 1, 1791, 1, 1791, 1, 1791, 1, 1791, 1, 1791, 1, 1792, 1, 1792, 1, 1792, 1, 1792, 1, 1792, 1, 1793, 1, 1793, 1, 1793, 1, 1793, 1, 1793, 1, 1793, 1, 1793, 1, 1793, 1, 1794, 1, 1794, 1, 1794, 1, 1794, 1, 1795, 1, 1795, 1, 1795, 1, 1795, 1, 1795, 1, 1795, 1, 1795, 1, 1796, 1, 1796, 1, 1796, 1, 1796, 1, 1796, 1, 1796, 1, 1796, 1, 1796, 1, 1796, 1, 1796, 1, 1797, 1, 1797, 1, 1797, 1, 1797, 1, 1797, 1, 1797, 1, 1797, 1, 1798, 1, 1798, 1, 1798, 1, 1798, 1, 1798, 1, 1798, 1, 1798, 1, 1798, 1, 1798, 1, 1798, 1, 1799, 1, 1799, 1, 1799, 1, 1799, 1, 1799, 1, 1799, 1, 1799, 1, 1799, 1, 1799, 1, 1799, 1, 1799, 1, 1799, 1, 1799, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1800, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1801, 1, 1802, 1, 1802, 1, 1802, 1, 1802, 1, 1802, 1, 1802, 1, 1802, 1, 1802, 1, 1802, 1, 1802, 1, 1802, 1, 1802, 1, 1803, 1, 1803, 1, 1803, 1, 1803, 1, 1803, 1, 1803, 1, 1803, 1, 1803, 1, 1804, 1, 1804, 1, 1804, 1, 1804, 1, 1804, 1, 1804, 1, 1804, 1, 1805, 1, 1805, 1, 1805, 1, 1805, 1, 1805, 1, 1805, 1, 1805, 1, 1805, 1, 1805, 1, 1805, 1, 1805, 1, 1805, 1, 1805, 1, 1806, 1, 1806, 1, 1806, 1, 1806, 1, 1806, 1, 1806, 1, 1807, 1, 1807, 1, 1807, 1, 1807, 1, 1807, 1, 1807, 1, 1807, 1, 1807, 1, 1807, 1, 1807, 1, 1807, 1, 1807, 1, 1807, 1, 1807, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1808, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1809, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1810, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1811, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1812, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1813, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1814, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1815, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1816, 1, 1817, 1, 1817, 1, 1817, 1, 1817, 1, 1817, 1, 1817, 1, 1817, 1, 1817, 1, 1817, 1, 1817, 1, 1817, 1, 1817, 1, 1817, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1818, 1, 1819, 1, 1819, 1, 1819, 1, 1819, 1, 1819, 1, 1819, 1, 1819, 1, 1819, 1, 1819, 1, 1819, 1, 1819, 1, 1819, 1, 1819, 1, 1819, 1, 1819, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1820, 1, 1821, 1, 1821, 1, 1821, 1, 1821, 1, 1821, 1, 1821, 1, 1821, 1, 1821, 1, 1821, 1, 1821, 1, 1821, 1, 1821, 1, 1821, 1, 1821, 1, 1822, 1, 1822, 1, 1822, 1, 1822, 1, 1822, 1, 1822, 1, 1822, 1, 1822, 1, 1822, 1, 1822, 1, 1822, 1, 1822, 1, 1822, 1, 1822, 1, 1823, 1, 1823, 1, 1823, 1, 1823, 1, 1823, 1, 1823, 1, 1823, 1, 1823, 1, 1823, 1, 1823, 1, 1823, 1, 1823, 1, 1823, 1, 1823, 1, 1823, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1824, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1825, 1, 1826, 1, 1826, 1, 1826, 1, 1826, 1, 1826, 1, 1826, 1, 1826, 1, 1826, 1, 1826, 1, 1826, 1, 1826, 1, 1826, 1, 1826, 1, 1826, 1, 1826, 1, 1827, 1, 1827, 1, 1827, 1, 1827, 1, 1827, 1, 1827, 1, 1827, 1, 1827, 1, 1827, 1, 1827, 1, 1827, 1, 1827, 1, 1827, 1, 1827, 1, 1828, 1, 1828, 1, 1828, 1, 1828, 1, 1828, 1, 1828, 1, 1828, 1, 1828, 1, 1828, 1, 1829, 1, 1829, 1, 1829, 1, 1829, 1, 1829, 1, 1829, 1, 1829, 1, 1829, 1, 1830, 1, 1830, 1, 1830, 1, 1830, 1, 1830, 1, 1830, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1831, 1, 1832, 1, 1832, 1, 1832, 1, 1832, 1, 1832, 1, 1832, 1, 1832, 1, 1832, 1, 1832, 1, 1832, 1, 1832, 1, 1832, 1, 1833, 1, 1833, 1, 1833, 1, 1833, 1, 1833, 1, 1833, 1, 1833, 1, 1833, 1, 1833, 1, 1833, 1, 1833, 1, 1833, 1, 1833, 1, 1833, 1, 1834, 1, 1834, 1, 1834, 1, 1834, 1, 1834, 1, 1834, 1, 1834, 1, 1834, 1, 1834, 1, 1834, 1, 1835, 1, 1835, 1, 1835, 1, 1835, 1, 1835, 1, 1835, 1, 1835, 1, 1836, 1, 1836, 1, 1836, 1, 1836, 1, 1836, 1, 1836, 1, 1836, 1, 1836, 1, 1836, 1, 1836, 1, 1836, 1, 1836, 1, 1836, 1, 1836, 1, 1836, 1, 1837, 1, 1837, 1, 1837, 1, 1837, 1, 1837, 1, 1837, 1, 1837, 1, 1837, 1, 1837, 1, 1837, 1, 1837, 1, 1837, 1, 1837, 1, 1837, 1, 1837, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1838, 1, 1839, 1, 1839, 1, 1839, 1, 1839, 1, 1839, 1, 1839, 1, 1839, 1, 1839, 1, 1839, 1, 1839, 1, 1839, 1, 1840, 1, 1840, 1, 1840, 1, 1840, 1, 1840, 1, 1840, 1, 1840, 1, 1840, 1, 1840, 1, 1840, 1, 1840, 1, 1840, 1, 1840, 1, 1840, 1, 1840, 1, 1841, 1, 1841, 1, 1841, 1, 1841, 1, 1841, 1, 1841, 1, 1841, 1, 1841, 1, 1841, 1, 1841, 1, 1841, 1, 1841, 1, 1841, 1, 1841, 1, 1842, 1, 1842, 1, 1842, 1, 1842, 1, 1842, 1, 1842, 1, 1842, 1, 1842, 1, 1842, 1, 1842, 1, 1842, 1, 1842, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1843, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1844, 1, 1845, 1, 1845, 1, 1845, 1, 1845, 1, 1845, 1, 1845, 1, 1845, 1, 1845, 1, 1845, 1, 1845, 1, 1845, 1, 1846, 1, 1846, 1, 1846, 1, 1846, 1, 1846, 1, 1846, 1, 1846, 1, 1846, 1, 1846, 1, 1846, 1, 1846, 1, 1846, 1, 1847, 1, 1847, 1, 1847, 1, 1847, 1, 1847, 1, 1847, 1, 1847, 1, 1847, 1, 1847, 1, 1847, 1, 1847, 1, 1848, 1, 1848, 1, 1848, 1, 1848, 1, 1848, 1, 1848, 1, 1848, 1, 1848, 1, 1848, 1, 1848, 1, 1848, 1, 1848, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1849, 1, 1850, 1, 1850, 1, 1850, 1, 1850, 1, 1850, 1, 1850, 1, 1850, 1, 1850, 1, 1850, 1, 1850, 1, 1850, 1, 1850, 1, 1851, 1, 1851, 1, 1851, 1, 1851, 1, 1851, 1, 1851, 1, 1851, 1, 1851, 1, 1851, 1, 1851, 1, 1851, 1, 1851, 1, 1851, 1, 1851, 1, 1851, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1852, 1, 1853, 1, 1853, 1, 1853, 1, 1853, 1, 1853, 1, 1853, 1, 1853, 1, 1853, 1, 1853, 1, 1853, 1, 1853, 1, 1853, 1, 1853, 1, 1853, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1854, 1, 1855, 1, 1855, 1, 1855, 1, 1855, 1, 1855, 1, 1855, 1, 1855, 1, 1855, 1, 1855, 1, 1855, 1, 1855, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1856, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1857, 1, 1858, 1, 1858, 1, 1858, 1, 1858, 1, 1858, 1, 1858, 1, 1858, 1, 1858, 1, 1858, 1, 1858, 1, 1858, 1, 1858, 1, 1858, 1, 1858, 1, 1859, 1, 1859, 1, 1859, 1, 1859, 1, 1859, 1, 1859, 1, 1859, 1, 1859, 1, 1859, 1, 1859, 1, 1859, 1, 1859, 1, 1859, 1, 1859, 1, 1859, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1860, 1, 1861, 1, 1861, 1, 1861, 1, 1861, 1, 1861, 1, 1861, 1, 1861, 1, 1861, 1, 1861, 1, 1861, 1, 1861, 1, 1862, 1, 1862, 1, 1862, 1, 1862, 1, 1862, 1, 1862, 1, 1862, 1, 1862, 1, 1862, 1, 1862, 1, 1862, 1, 1862, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1863, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1864, 1, 1865, 1, 1865, 1, 1865, 1, 1865, 1, 1865, 1, 1865, 1, 1865, 1, 1865, 1, 1866, 1, 1866, 1, 1866, 1, 1866, 1, 1866, 1, 1866, 1, 1866, 1, 1866, 1, 1866, 1, 1866, 1, 1866, 1, 1866, 1, 1866, 1, 1866, 1, 1866, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1867, 1, 1868, 1, 1868, 1, 1868, 1, 1868, 1, 1868, 1, 1868, 1, 1868, 1, 1868, 1, 1868, 1, 1868, 1, 1868, 1, 1868, 1, 1869, 1, 1869, 1, 1869, 1, 1869, 1, 1869, 1, 1869, 1, 1869, 1, 1869, 1, 1869, 1, 1869, 1, 1869, 1, 1869, 1, 1870, 1, 1870, 1, 1870, 1, 1870, 1, 1870, 1, 1870, 1, 1870, 1, 1870, 1, 1870, 1, 1870, 1, 1870, 1, 1871, 1, 1871, 1, 1871, 1, 1871, 1, 1871, 1, 1871, 1, 1871, 1, 1871, 1, 1871, 1, 1871, 1, 1871, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1872, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1873, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1874, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1875, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1876, 1, 1877, 1, 1877, 1, 1877, 1, 1877, 1, 1877, 1, 1877, 1, 1877, 1, 1877, 1, 1877, 1, 1877, 1, 1877, 1, 1877, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1878, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1879, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1880, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1881, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1882, 1, 1883, 1, 1883, 1, 1883, 1, 1883, 1, 1883, 1, 1883, 1, 1883, 1, 1883, 1, 1883, 1, 1883, 1, 1883, 1, 1883, 1, 1884, 1, 1884, 1, 1884, 1, 1884, 1, 1884, 1, 1884, 1, 1884, 1, 1884, 1, 1884, 1, 1884, 1, 1884, 1, 1885, 1, 1885, 1, 1885, 1, 1885, 1, 1885, 1, 1885, 1, 1885, 1, 1885, 1, 1885, 1, 1885, 1, 1885, 1, 1885, 1, 1885, 1, 1885, 1, 1885, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1886, 1, 1887, 1, 1887, 1, 1887, 1, 1887, 1, 1887, 1, 1887, 1, 1887, 1, 1887, 1, 1887, 1, 1887, 1, 1887, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1888, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1889, 1, 1890, 1, 1890, 1, 1890, 1, 1890, 1, 1890, 1, 1890, 1, 1890, 1, 1890, 1, 1890, 1, 1890, 1, 1890, 1, 1891, 1, 1891, 1, 1891, 1, 1891, 1, 1891, 1, 1891, 1, 1891, 1, 1891, 1, 1891, 1, 1891, 1, 1891, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1892, 1, 1893, 1, 1893, 1, 1893, 1, 1893, 1, 1893, 1, 1893, 1, 1893, 1, 1893, 1, 1893, 1, 1893, 1, 1893, 1, 1893, 1, 1893, 1, 1893, 1, 1893, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1894, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1895, 1, 1896, 1, 1896, 1, 1896, 1, 1896, 1, 1896, 1, 1896, 1, 1896, 1, 1896, 1, 1896, 1, 1896, 1, 1896, 1, 1896, 1, 1896, 1, 1896, 1, 1896, 1, 1897, 1, 1897, 1, 1897, 1, 1897, 1, 1897, 1, 1897, 1, 1897, 1, 1897, 1, 1897, 1, 1897, 1, 1897, 1, 1897, 1, 1897, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1898, 1, 1899, 1, 1899, 1, 1899, 1, 1899, 1, 1899, 1, 1899, 1, 1899, 1, 1899, 1, 1899, 1, 1899, 1, 1899, 1, 1899, 1, 1899, 1, 1899, 1, 1900, 1, 1900, 1, 1900, 1, 1900, 1, 1900, 1, 1900, 1, 1900, 1, 1900, 1, 1900, 1, 1900, 1, 1900, 1, 1901, 1, 1901, 1, 1901, 1, 1901, 1, 1901, 1, 1901, 1, 1901, 1, 1901, 1, 1901, 1, 1901, 1, 1901, 1, 1901, 1, 1901, 1, 1901, 1, 1901, 1, 1902, 1, 1902, 1, 1902, 1, 1902, 1, 1902, 1, 1902, 1, 1902, 1, 1902, 1, 1902, 1, 1902, 1, 1902, 1, 1902, 1, 1902, 1, 1903, 1, 1903, 1, 1903, 1, 1903, 1, 1903, 1, 1903, 1, 1903, 1, 1903, 1, 1903, 1, 1903, 1, 1903, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1904, 1, 1905, 1, 1905, 1, 1905, 1, 1905, 1, 1905, 1, 1905, 1, 1905, 1, 1905, 1, 1905, 1, 1905, 1, 1905, 1, 1905, 1, 1906, 1, 1906, 1, 1906, 1, 1906, 1, 1906, 1, 1906, 1, 1906, 1, 1906, 1, 1906, 1, 1906, 1, 1906, 1, 1907, 1, 1907, 1, 1907, 1, 1907, 1, 1907, 1, 1907, 1, 1907, 1, 1907, 1, 1907, 1, 1907, 1, 1907, 1, 1907, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1908, 1, 1909, 1, 1909, 1, 1909, 1, 1909, 1, 1909, 1, 1909, 1, 1909, 1, 1909, 1, 1909, 1, 1909, 1, 1909, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1910, 1, 1911, 1, 1911, 1, 1911, 1, 1911, 1, 1911, 1, 1911, 1, 1911, 1, 1911, 1, 1911, 1, 1911, 1, 1911, 1, 1911, 1, 1911, 1, 1911, 1, 1911, 1, 1912, 1, 1912, 1, 1912, 1, 1912, 1, 1912, 1, 1912, 1, 1912, 1, 1912, 1, 1912, 1, 1912, 1, 1912, 1, 1913, 1, 1913, 1, 1913, 1, 1913, 1, 1913, 1, 1913, 1, 1913, 1, 1913, 1, 1913, 1, 1913, 1, 1913, 1, 1913, 1, 1914, 1, 1914, 1, 1914, 1, 1914, 1, 1914, 1, 1914, 1, 1914, 1, 1914, 1, 1914, 1, 1914, 1, 1914, 1, 1914, 1, 1914, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1915, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1916, 1, 1917, 1, 1917, 1, 1917, 1, 1917, 1, 1917, 1, 1917, 1, 1917, 1, 1917, 1, 1917, 1, 1917, 1, 1917, 1, 1917, 1, 1917, 1, 1917, 1, 1918, 1, 1918, 1, 1918, 1, 1918, 1, 1918, 1, 1918, 1, 1918, 1, 1918, 1, 1918, 1, 1918, 1, 1918, 1, 1918, 1, 1918, 1, 1918, 1, 1919, 1, 1919, 1, 1919, 1, 1919, 1, 1919, 1, 1919, 1, 1919, 1, 1919, 1, 1919, 1, 1919, 1, 1919, 1, 1919, 1, 1919, 1, 1920, 1, 1920, 1, 1920, 1, 1920, 1, 1920, 1, 1920, 1, 1920, 1, 1920, 1, 1920, 1, 1920, 1, 1920, 1, 1920, 1, 1920, 1, 1920, 1, 1921, 1, 1921, 1, 1921, 1, 1921, 1, 1921, 1, 1921, 1, 1921, 1, 1921, 1, 1921, 1, 1921, 1, 1921, 1, 1921, 1, 1921, 1, 1921, 1, 1921, 1, 1922, 1, 1922, 1, 1922, 1, 1922, 1, 1922, 1, 1922, 1, 1922, 1, 1922, 1, 1922, 1, 1922, 1, 1922, 1, 1922, 1, 1923, 1, 1923, 1, 1923, 1, 1923, 1, 1923, 1, 1923, 1, 1923, 1, 1923, 1, 1923, 1, 1923, 1, 1923, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1924, 1, 1925, 1, 1925, 1, 1925, 1, 1925, 1, 1925, 1, 1925, 1, 1925, 1, 1925, 1, 1925, 1, 1925, 1, 1925, 1, 1925, 1, 1925, 1, 1925, 1, 1925, 1, 1926, 1, 1926, 1, 1926, 1, 1926, 1, 1926, 1, 1926, 1, 1926, 1, 1926, 1, 1926, 1, 1926, 1, 1926, 1, 1926, 1, 1926, 1, 1926, 1, 1926, 1, 1927, 1, 1927, 1, 1927, 1, 1927, 1, 1927, 1, 1927, 1, 1927, 1, 1927, 1, 1927, 1, 1927, 1, 1927, 1, 1927, 1, 1927, 1, 1927, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1928, 1, 1929, 1, 1929, 1, 1929, 1, 1929, 1, 1929, 1, 1929, 1, 1929, 1, 1929, 1, 1929, 1, 1929, 1, 1929, 1, 1929, 1, 1929, 1, 1929, 1, 1929, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1930, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1931, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1932, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1933, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1934, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1935, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1936, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1937, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1938, 1, 1939, 1, 1939, 1, 1939, 1, 1939, 1, 1939, 1, 1939, 1, 1939, 1, 1939, 1, 1939, 1, 1939, 1, 1939, 1, 1939, 1, 1939, 1, 1939, 1, 1939, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1940, 1, 1941, 1, 1941, 1, 1941, 1, 1941, 1, 1941, 1, 1941, 1, 1941, 1, 1941, 1, 1941, 1, 1941, 1, 1941, 1, 1941, 1, 1941, 1, 1941, 1, 1942, 1, 1942, 1, 1942, 1, 1942, 1, 1942, 1, 1942, 1, 1942, 1, 1942, 1, 1942, 1, 1942, 1, 1942, 1, 1942, 1, 1942, 1, 1942, 1, 1943, 1, 1943, 1, 1943, 1, 1943, 1, 1943, 1, 1943, 1, 1943, 1, 1943, 1, 1943, 1, 1943, 1, 1943, 1, 1943, 1, 1943, 1, 1943, 1, 1944, 1, 1944, 1, 1944, 1, 1944, 1, 1944, 1, 1944, 1, 1944, 1, 1944, 1, 1944, 1, 1944, 1, 1944, 1, 1944, 1, 1944, 1, 1944, 1, 1944, 1, 1945, 1, 1945, 1, 1945, 1, 1945, 1, 1945, 1, 1945, 1, 1945, 1, 1945, 1, 1945, 1, 1945, 1, 1945, 1, 1945, 1, 1945, 1, 1945, 1, 1945, 1, 1946, 1, 1946, 1, 1946, 1, 1946, 1, 1946, 1, 1946, 1, 1946, 1, 1947, 1, 1947, 1, 1947, 1, 1947, 1, 1947, 1, 1947, 1, 1947, 1, 1947, 1, 1947, 1, 1947, 1, 1947, 1, 1947, 1, 1947, 1, 1948, 1, 1948, 1, 1948, 1, 1948, 1, 1948, 1, 1948, 1, 1948, 1, 1948, 1, 1948, 1, 1948, 1, 1948, 1, 1949, 1, 1949, 1, 1949, 1, 1949, 1, 1949, 1, 1949, 1, 1949, 1, 1949, 1, 1949, 1, 1949, 1, 1949, 1, 1949, 1, 1949, 1, 1950, 1, 1950, 1, 1950, 1, 1950, 1, 1950, 1, 1950, 1, 1950, 1, 1950, 1, 1950, 1, 1950, 1, 1950, 1, 1950, 1, 1950, 1, 1950, 1, 1950, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1951, 1, 1952, 1, 1952, 1, 1952, 1, 1952, 1, 1952, 1, 1952, 1, 1952, 1, 1952, 1, 1952, 1, 1952, 1, 1952, 1, 1952, 1, 1953, 1, 1953, 1, 1953, 1, 1953, 1, 1953, 1, 1953, 1, 1953, 1, 1953, 1, 1953, 1, 1953, 1, 1953, 1, 1953, 1, 1953, 1, 1953, 1, 1953, 1, 1954, 1, 1954, 1, 1954, 1, 1954, 1, 1954, 1, 1954, 1, 1954, 1, 1954, 1, 1954, 1, 1954, 1, 1954, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1955, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1956, 1, 1957, 1, 1957, 1, 1957, 1, 1957, 1, 1957, 1, 1957, 1, 1957, 1, 1957, 1, 1957, 1, 1957, 1, 1957, 1, 1957, 1, 1957, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1958, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1959, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1960, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1961, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1962, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1963, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1964, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1965, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1966, 1, 1967, 1, 1967, 1, 1967, 1, 1967, 1, 1967, 1, 1967, 1, 1967, 1, 1967, 1, 1967, 1, 1967, 1, 1967, 1, 1967, 1, 1967, 1, 1967, 1, 1968, 1, 1968, 1, 1968, 1, 1968, 1, 1968, 1, 1968, 1, 1968, 1, 1968, 1, 1968, 1, 1968, 1, 1968, 1, 1968, 1, 1968, 1, 1968, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1969, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1970, 1, 1971, 1, 1971, 1, 1971, 1, 1971, 1, 1971, 1, 1971, 1, 1971, 1, 1971, 1, 1971, 1, 1971, 1, 1971, 1, 1971, 1, 1971, 1, 1971, 1, 1971, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1972, 1, 1973, 1, 1973, 1, 1973, 1, 1973, 1, 1973, 1, 1973, 1, 1973, 1, 1973, 1, 1973, 1, 1973, 1, 1973, 1, 1973, 1, 1973, 1, 1973, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1974, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1975, 1, 1976, 1, 1976, 1, 1976, 1, 1976, 1, 1976, 1, 1976, 1, 1976, 1, 1976, 1, 1976, 1, 1976, 1, 1976, 1, 1976, 1, 1976, 1, 1976, 1, 1977, 1, 1977, 1, 1977, 1, 1977, 1, 1977, 1, 1977, 1, 1977, 1, 1977, 1, 1977, 1, 1977, 1, 1977, 1, 1977, 1, 1977, 1, 1977, 1, 1978, 1, 1978, 1, 1978, 1, 1978, 1, 1978, 1, 1978, 1, 1978, 1, 1978, 1, 1978, 1, 1978, 1, 1978, 1, 1978, 1, 1978, 1, 1979, 1, 1979, 1, 1979, 1, 1979, 1, 1979, 1, 1979, 1, 1979, 1, 1979, 1, 1979, 1, 1979, 1, 1979, 1, 1979, 1, 1979, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1980, 1, 1981, 1, 1981, 1, 1981, 1, 1981, 1, 1981, 1, 1981, 1, 1981, 1, 1981, 1, 1981, 1, 1981, 1, 1982, 1, 1982, 1, 1982, 1, 1982, 1, 1982, 1, 1982, 1, 1982, 1, 1982, 1, 1982, 1, 1982, 1, 1982, 1, 1982, 1, 1982, 1, 1983, 1, 1983, 1, 1983, 1, 1983, 1, 1983, 1, 1983, 1, 1983, 1, 1983, 1, 1983, 1, 1983, 1, 1983, 1, 1983, 1, 1983, 1, 1984, 1, 1984, 1, 1984, 1, 1984, 1, 1984, 1, 1984, 1, 1984, 1, 1984, 1, 1984, 1, 1984, 1, 1984, 1, 1984, 1, 1984, 1, 1985, 1, 1985, 1, 1985, 1, 1985, 1, 1985, 1, 1985, 1, 1985, 1, 1985, 1, 1985, 1, 1985, 1, 1985, 1, 1985, 1, 1985, 1, 1985, 1, 1985, 1, 1986, 1, 1986, 1, 1986, 1, 1986, 1, 1986, 1, 1986, 1, 1986, 1, 1986, 1, 1986, 1, 1986, 1, 1986, 1, 1987, 1, 1987, 1, 1987, 1, 1987, 1, 1987, 1, 1987, 1, 1987, 1, 1987, 1, 1987, 1, 1987, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1988, 1, 1989, 1, 1989, 1, 1989, 1, 1989, 1, 1989, 1, 1989, 1, 1989, 1, 1989, 1, 1989, 1, 1989, 1, 1989, 1, 1989, 1, 1989, 1, 1989, 1, 1989, 1, 1990, 1, 1990, 1, 1990, 1, 1990, 1, 1990, 1, 1990, 1, 1990, 1, 1990, 1, 1990, 1, 1990, 1, 1990, 1, 1990, 1, 1990, 1, 1990, 1, 1991, 1, 1991, 1, 1991, 1, 1991, 1, 1991, 1, 1991, 1, 1991, 1, 1991, 1, 1991, 1, 1991, 1, 1991, 1, 1991, 1, 1991, 1, 1991, 1, 1992, 1, 1992, 1, 1992, 1, 1992, 1, 1992, 1, 1992, 1, 1992, 1, 1992, 1, 1992, 1, 1992, 1, 1992, 1, 1992, 1, 1992, 1, 1992, 1, 1993, 1, 1993, 1, 1993, 1, 1993, 1, 1993, 1, 1993, 1, 1993, 1, 1993, 1, 1993, 1, 1993, 1, 1993, 1, 1993, 1, 1994, 1, 1994, 1, 1994, 1, 1994, 1, 1994, 1, 1994, 1, 1994, 1, 1994, 1, 1994, 1, 1994, 1, 1994, 1, 1994, 1, 1994, 1, 1995, 1, 1995, 1, 1995, 1, 1995, 1, 1995, 1, 1995, 1, 1995, 1, 1995, 1, 1995, 1, 1995, 1, 1995, 1, 1995, 1, 1995, 1, 1996, 1, 1996, 1, 1996, 1, 1996, 1, 1996, 1, 1996, 1, 1996, 1, 1996, 1, 1996, 1, 1996, 1, 1996, 1, 1996, 1, 1997, 1, 1997, 1, 1997, 1, 1997, 1, 1997, 1, 1997, 1, 1997, 1, 1997, 1, 1997, 1, 1997, 1, 1997, 1, 1997, 1, 1997, 1, 1997, 1, 1998, 1, 1998, 1, 1998, 1, 1998, 1, 1998, 1, 1998, 1, 1998, 1, 1998, 1, 1998, 1, 1998, 1, 1998, 1, 1998, 1, 1998, 1, 1998, 1, 1999, 1, 1999, 1, 1999, 1, 1999, 1, 1999, 1, 1999, 1, 1999, 1, 1999, 1, 1999, 1, 1999, 1, 1999, 1, 2000, 1, 2000, 1, 2000, 1, 2000, 1, 2000, 1, 2000, 1, 2000, 1, 2000, 1, 2000, 1, 2000, 1, 2000, 1, 2000, 1, 2000, 1, 2000, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2001, 1, 2002, 1, 2002, 1, 2002, 1, 2002, 1, 2002, 1, 2002, 1, 2002, 1, 2002, 1, 2002, 1, 2002, 1, 2002, 1, 2002, 1, 2003, 1, 2003, 1, 2003, 1, 2003, 1, 2003, 1, 2003, 1, 2003, 1, 2003, 1, 2003, 1, 2003, 1, 2003, 1, 2003, 1, 2003, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2004, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2005, 1, 2006, 1, 2006, 1, 2006, 1, 2006, 1, 2006, 1, 2006, 1, 2006, 1, 2006, 1, 2006, 1, 2006, 1, 2006, 1, 2006, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2007, 1, 2008, 1, 2008, 1, 2008, 1, 2008, 1, 2008, 1, 2008, 1, 2008, 1, 2008, 1, 2008, 1, 2008, 1, 2008, 1, 2008, 1, 2008, 1, 2009, 1, 2009, 1, 2009, 1, 2009, 1, 2009, 1, 2009, 1, 2009, 1, 2009, 1, 2009, 1, 2009, 1, 2009, 1, 2009, 1, 2009, 1, 2010, 1, 2010, 1, 2010, 1, 2010, 1, 2010, 1, 2010, 1, 2010, 1, 2010, 1, 2010, 1, 2010, 1, 2010, 1, 2010, 1, 2010, 1, 2011, 1, 2011, 1, 2011, 1, 2011, 1, 2011, 1, 2011, 1, 2011, 1, 2011, 1, 2011, 1, 2011, 1, 2011, 1, 2011, 1, 2011, 1, 2011, 1, 2012, 1, 2012, 1, 2012, 1, 2012, 1, 2012, 1, 2012, 1, 2012, 1, 2012, 1, 2012, 1, 2012, 1, 2012, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2013, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2014, 1, 2015, 1, 2015, 1, 2015, 1, 2015, 1, 2015, 1, 2015, 1, 2015, 1, 2015, 1, 2015, 1, 2015, 1, 2015, 1, 2015, 1, 2015, 1, 2016, 1, 2016, 1, 2016, 1, 2016, 1, 2016, 1, 2016, 1, 2016, 1, 2016, 1, 2016, 1, 2016, 1, 2016, 1, 2016, 1, 2016, 1, 2016, 1, 2016, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2017, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2018, 1, 2019, 1, 2019, 1, 2019, 1, 2019, 1, 2019, 1, 2019, 1, 2019, 1, 2019, 1, 2019, 1, 2019, 1, 2019, 1, 2019, 1, 2020, 1, 2020, 1, 2020, 1, 2020, 1, 2020, 1, 2020, 1, 2020, 1, 2020, 1, 2020, 1, 2020, 1, 2020, 1, 2020, 1, 2020, 1, 2020, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2021, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2022, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2023, 1, 2024, 1, 2024, 1, 2024, 1, 2024, 1, 2024, 1, 2024, 1, 2024, 1, 2024, 1, 2024, 1, 2024, 1, 2024, 1, 2024, 1, 2024, 1, 2024, 1, 2025, 1, 2025, 1, 2025, 1, 2025, 1, 2025, 1, 2025, 1, 2025, 1, 2025, 1, 2025, 1, 2025, 1, 2025, 1, 2025, 1, 2025, 1, 2025, 1, 2026, 1, 2026, 1, 2026, 1, 2026, 1, 2026, 1, 2026, 1, 2026, 1, 2026, 1, 2026, 1, 2026, 1, 2026, 1, 2026, 1, 2026, 1, 2026, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2027, 1, 2028, 1, 2028, 1, 2028, 1, 2028, 1, 2028, 1, 2028, 1, 2028, 1, 2028, 1, 2028, 1, 2028, 1, 2028, 1, 2028, 1, 2028, 1, 2028, 1, 2029, 1, 2029, 1, 2029, 1, 2029, 1, 2029, 1, 2029, 1, 2029, 1, 2029, 1, 2029, 1, 2029, 1, 2029, 1, 2029, 1, 2029, 1, 2029, 1, 2030, 1, 2030, 1, 2030, 1, 2030, 1, 2030, 1, 2030, 1, 2030, 1, 2030, 1, 2030, 1, 2030, 1, 2030, 1, 2030, 1, 2030, 1, 2030, 1, 2031, 1, 2031, 1, 2031, 1, 2031, 1, 2031, 1, 2031, 1, 2031, 1, 2031, 1, 2031, 1, 2031, 1, 2031, 1, 2031, 1, 2031, 1, 2031, 1, 2032, 1, 2032, 1, 2032, 1, 2032, 1, 2032, 1, 2032, 1, 2032, 1, 2032, 1, 2032, 1, 2032, 1, 2032, 1, 2032, 1, 2032, 1, 2032, 1, 2033, 1, 2033, 1, 2033, 1, 2033, 1, 2033, 1, 2033, 1, 2033, 1, 2033, 1, 2033, 1, 2033, 1, 2033, 1, 2033, 1, 2033, 1, 2033, 1, 2034, 1, 2034, 1, 2034, 1, 2034, 1, 2034, 1, 2034, 1, 2034, 1, 2034, 1, 2034, 1, 2034, 1, 2034, 1, 2034, 1, 2034, 1, 2034, 1, 2034, 1, 2035, 1, 2035, 1, 2035, 1, 2035, 1, 2035, 1, 2035, 1, 2035, 1, 2035, 1, 2035, 1, 2035, 1, 2035, 1, 2035, 1, 2035, 1, 2035, 1, 2036, 1, 2036, 1, 2036, 1, 2036, 1, 2036, 1, 2036, 1, 2036, 1, 2036, 1, 2036, 1, 2036, 1, 2036, 1, 2036, 1, 2036, 1, 2036, 1, 2036, 1, 2037, 1, 2037, 1, 2037, 1, 2037, 1, 2037, 1, 2037, 1, 2037, 1, 2037, 1, 2037, 1, 2037, 1, 2037, 1, 2037, 1, 2037, 1, 2037, 1, 2037, 1, 2038, 1, 2038, 1, 2038, 1, 2038, 1, 2038, 1, 2038, 1, 2038, 1, 2038, 1, 2038, 1, 2038, 1, 2038, 1, 2038, 1, 2038, 1, 2038, 1, 2039, 1, 2039, 1, 2039, 1, 2039, 1, 2039, 1, 2039, 1, 2039, 1, 2039, 1, 2039, 1, 2039, 1, 2039, 1, 2039, 1, 2039, 1, 2039, 1, 2040, 1, 2040, 1, 2040, 1, 2040, 1, 2040, 1, 2040, 1, 2040, 1, 2040, 1, 2040, 1, 2040, 1, 2040, 1, 2040, 1, 2040, 1, 2040, 1, 2041, 1, 2041, 1, 2041, 1, 2041, 1, 2041, 1, 2041, 1, 2041, 1, 2041, 1, 2041, 1, 2041, 1, 2041, 1, 2041, 1, 2041, 1, 2041, 1, 2042, 1, 2042, 1, 2042, 1, 2042, 1, 2042, 1, 2042, 1, 2042, 1, 2042, 1, 2042, 1, 2042, 1, 2042, 1, 2042, 1, 2042, 1, 2042, 1, 2043, 1, 2043, 1, 2043, 1, 2043, 1, 2043, 1, 2043, 1, 2043, 1, 2043, 1, 2043, 1, 2043, 1, 2043, 1, 2043, 1, 2043, 1, 2043, 1, 2044, 1, 2044, 1, 2044, 1, 2044, 1, 2044, 1, 2044, 1, 2044, 1, 2044, 1, 2044, 1, 2044, 1, 2044, 1, 2044, 1, 2044, 1, 2044, 1, 2045, 1, 2045, 1, 2045, 1, 2045, 1, 2045, 1, 2045, 1, 2045, 1, 2045, 1, 2045, 1, 2045, 1, 2045, 1, 2045, 1, 2045, 1, 2046, 1, 2046, 1, 2046, 1, 2046, 1, 2046, 1, 2046, 1, 2046, 1, 2046, 1, 2046, 1, 2046, 1, 2046, 1, 2046, 1, 2046, 1, 2046, 1, 2047, 1, 2047, 1, 2047, 1, 2047, 1, 2047, 1, 2047, 1, 2047, 1, 2047, 1, 2047, 1, 2047, 1, 2047, 1, 2047, 1, 2047, 1, 2047, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2048, 1, 2049, 1, 2049, 1, 2049, 1, 2049, 1, 2049, 1, 2049, 1, 2049, 1, 2049, 1, 2049, 1, 2049, 1, 2049, 1, 2049, 1, 2049, 1, 2049, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2050, 1, 2051, 1, 2051, 1, 2051, 1, 2051, 1, 2051, 1, 2051, 1, 2051, 1, 2051, 1, 2051, 1, 2051, 1, 2051, 1, 2051, 1, 2051, 1, 2051, 1, 2051, 1, 2052, 1, 2052, 1, 2052, 1, 2052, 1, 2052, 1, 2052, 1, 2052, 1, 2052, 1, 2052, 1, 2052, 1, 2052, 1, 2052, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2053, 1, 2054, 1, 2054, 1, 2054, 1, 2054, 1, 2054, 1, 2054, 1, 2054, 1, 2054, 1, 2054, 1, 2054, 1, 2054, 1, 2054, 1, 2054, 1, 2054, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2055, 1, 2056, 1, 2056, 1, 2056, 1, 2056, 1, 2056, 1, 2056, 1, 2056, 1, 2056, 1, 2056, 1, 2056, 1, 2056, 1, 2056, 1, 2056, 1, 2056, 1, 2057, 1, 2057, 1, 2057, 1, 2057, 1, 2057, 1, 2057, 1, 2057, 1, 2057, 1, 2057, 1, 2057, 1, 2057, 1, 2057, 1, 2058, 1, 2058, 1, 2058, 1, 2058, 1, 2058, 1, 2058, 1, 2058, 1, 2058, 1, 2058, 1, 2058, 1, 2058, 1, 2058, 1, 2058, 1, 2059, 1, 2059, 1, 2059, 1, 2059, 1, 2059, 1, 2059, 1, 2059, 1, 2059, 1, 2059, 1, 2059, 1, 2059, 1, 2059, 1, 2059, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2060, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2061, 1, 2062, 1, 2062, 1, 2062, 1, 2062, 1, 2062, 1, 2062, 1, 2062, 1, 2062, 1, 2062, 1, 2062, 1, 2062, 1, 2062, 1, 2062, 1, 2062, 1, 2062, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2063, 1, 2064, 1, 2064, 1, 2064, 1, 2064, 1, 2064, 1, 2064, 1, 2064, 1, 2064, 1, 2064, 1, 2064, 1, 2064, 1, 2064, 1, 2064, 1, 2064, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2065, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2066, 1, 2067, 1, 2067, 1, 2067, 1, 2067, 1, 2067, 1, 2067, 1, 2067, 1, 2067, 1, 2067, 1, 2067, 1, 2067, 1, 2067, 1, 2067, 1, 2067, 1, 2067, 1, 2068, 1, 2068, 1, 2068, 1, 2068, 1, 2068, 1, 2068, 1, 2068, 1, 2068, 1, 2068, 1, 2068, 1, 2068, 1, 2068, 1, 2068, 1, 2068, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2069, 1, 2070, 1, 2070, 1, 2070, 1, 2070, 1, 2070, 1, 2070, 1, 2070, 1, 2070, 1, 2070, 1, 2070, 1, 2070, 1, 2070, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2071, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2072, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2073, 1, 2074, 1, 2074, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2075, 1, 2076, 1, 2076, 1, 2076, 1, 2076, 1, 2076, 1, 2076, 1, 2076, 1, 2076, 1, 2076, 1, 2076, 1, 2076, 1, 2076, 1, 2076, 1, 2076, 1, 2077, 1, 2077, 1, 2077, 1, 2077, 1, 2077, 1, 2077, 1, 2077, 1, 2077, 1, 2077, 1, 2077, 1, 2077, 1, 2078, 1, 2078, 1, 2078, 1, 2078, 1, 2078, 1, 2078, 1, 2078, 1, 2079, 1, 2079, 1, 2079, 1, 2079, 1, 2079, 1, 2079, 1, 2079, 1, 2079, 1, 2079, 1, 2079, 1, 2079, 1, 2079, 1, 2080, 1, 2080, 1, 2080, 1, 2080, 1, 2080, 1, 2080, 1, 2081, 1, 2081, 1, 2081, 1, 2081, 1, 2081, 1, 2081, 1, 2082, 1, 2082, 1, 2082, 1, 2082, 1, 2083, 1, 2083, 1, 2083, 1, 2083, 1, 2083, 1, 2084, 1, 2084, 1, 2084, 1, 2084, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2085, 1, 2086, 1, 2086, 1, 2086, 1, 2086, 1, 2086, 1, 2086, 1, 2086, 1, 2086, 1, 2086, 1, 2087, 1, 2087, 1, 2087, 1, 2087, 1, 2087, 1, 2087, 1, 2087, 1, 2087, 1, 2087, 1, 2088, 1, 2088, 1, 2088, 1, 2088, 1, 2088, 1, 2088, 1, 2088, 1, 2088, 1, 2088, 1, 2088, 1, 2088, 1, 2088, 1, 2088, 1, 2088, 1, 2088, 1, 2089, 1, 2089, 1, 2089, 1, 2089, 1, 2089, 1, 2089, 1, 2089, 1, 2089, 1, 2089, 1, 2089, 1, 2090, 1, 2090, 1, 2090, 1, 2090, 1, 2090, 1, 2090, 1, 2090, 1, 2090, 1, 2090, 1, 2090, 1, 2090, 1, 2091, 1, 2091, 1, 2091, 1, 2091, 1, 2091, 1, 2091, 1, 2091, 1, 2091, 1, 2091, 1, 2091, 1, 2091, 1, 2092, 1, 2092, 1, 2092, 1, 2092, 1, 2092, 1, 2093, 1, 2093, 1, 2093, 1, 2093, 1, 2093, 1, 2094, 1, 2094, 1, 2094, 1, 2094, 1, 2094, 1, 2094, 1, 2094, 1, 2094, 1, 2094, 1, 2095, 1, 2095, 1, 2095, 1, 2095, 1, 2095, 1, 2096, 1, 2096, 1, 2096, 1, 2096, 1, 2096, 1, 2097, 1, 2097, 1, 2097, 1, 2097, 1, 2098, 1, 2098, 1, 2098, 1, 2098, 1, 2098, 1, 2098, 1, 2099, 1, 2099, 1, 2099, 1, 2099, 1, 2099, 1, 2099, 1, 2099, 1, 2100, 1, 2100, 1, 2100, 1, 2100, 1, 2100, 1, 2100, 1, 2100, 1, 2100, 1, 2101, 1, 2101, 1, 2101, 1, 2101, 1, 2101, 1, 2102, 1, 2102, 1, 2102, 1, 2102, 1, 2102, 1, 2103, 1, 2103, 1, 2103, 1, 2103, 1, 2103, 1, 2103, 1, 2103, 1, 2103, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2104, 1, 2105, 1, 2105, 1, 2105, 1, 2105, 1, 2105, 1, 2105, 1, 2105, 1, 2105, 1, 2105, 1, 2105, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2106, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2107, 1, 2108, 1, 2108, 1, 2108, 1, 2108, 1, 2108, 1, 2108, 1, 2109, 1, 2109, 1, 2109, 1, 2109, 1, 2109, 1, 2110, 1, 2110, 1, 2110, 1, 2110, 1, 2110, 1, 2110, 1, 2110, 1, 2110, 1, 2110, 1, 2111, 1, 2111, 1, 2111, 1, 2111, 1, 2111, 1, 2111, 1, 2111, 1, 2111, 1, 2111, 1, 2111, 1, 2111, 1, 2111, 1, 2111, 1, 2111, 1, 2112, 1, 2112, 1, 2112, 1, 2112, 1, 2112, 1, 2112, 1, 2112, 1, 2112, 1, 2112, 1, 2112, 1, 2112, 1, 2112, 1, 2112, 1, 2112, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2113, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2114, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2115, 1, 2116, 1, 2116, 1, 2116, 1, 2116, 1, 2116, 1, 2116, 1, 2116, 1, 2116, 1, 2116, 1, 2116, 1, 2117, 1, 2117, 1, 2117, 1, 2117, 1, 2117, 1, 2117, 1, 2117, 1, 2118, 1, 2118, 1, 2118, 1, 2118, 1, 2118, 1, 2118, 1, 2118, 1, 2118, 1, 2119, 1, 2119, 1, 2119, 1, 2119, 1, 2119, 1, 2119, 1, 2119, 1, 2120, 1, 2120, 1, 2120, 1, 2120, 1, 2120, 1, 2120, 1, 2120, 1, 2120, 1, 2121, 1, 2121, 1, 2121, 1, 2121, 1, 2121, 1, 2121, 1, 2121, 1, 2121, 1, 2121, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2122, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2123, 1, 2124, 1, 2124, 1, 2124, 1, 2124, 1, 2124, 1, 2124, 1, 2124, 1, 2124, 1, 2125, 1, 2125, 1, 2125, 1, 2125, 1, 2125, 1, 2125, 1, 2125, 1, 2125, 1, 2126, 1, 2126, 1, 2126, 1, 2126, 1, 2126, 1, 2126, 1, 2126, 1, 2126, 1, 2126, 1, 2126, 1, 2126, 1, 2126, 1, 2126, 1, 2126, 1, 2127, 1, 2127, 1, 2127, 1, 2127, 1, 2127, 1, 2127, 1, 2127, 1, 2128, 1, 2128, 1, 2128, 1, 2128, 1, 2128, 1, 2128, 1, 2128, 1, 2128, 1, 2128, 1, 2128, 1, 2128, 1, 2128, 1, 2128, 1, 2128, 1, 2129, 1, 2129, 1, 2129, 1, 2129, 1, 2129, 1, 2129, 1, 2129, 1, 2129, 1, 2129, 1, 2130, 1, 2130, 1, 2130, 1, 2130, 1, 2130, 1, 2130, 1, 2130, 1, 2130, 1, 2130, 1, 2131, 1, 2131, 1, 2131, 1, 2131, 1, 2131, 1, 2131, 1, 2131, 1, 2131, 1, 2131, 1, 2131, 1, 2132, 1, 2132, 1, 2132, 1, 2132, 1, 2132, 1, 2132, 1, 2132, 1, 2132, 1, 2132, 1, 2133, 1, 2133, 1, 2133, 1, 2133, 1, 2133, 1, 2133, 1, 2133, 1, 2133, 1, 2133, 1, 2133, 1, 2133, 1, 2133, 1, 2133, 1, 2133, 1, 2133, 1, 2134, 1, 2134, 1, 2134, 1, 2134, 1, 2134, 1, 2134, 1, 2134, 1, 2134, 1, 2134, 1, 2134, 1, 2134, 1, 2134, 1, 2134, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2135, 1, 2136, 1, 2136, 1, 2136, 1, 2136, 1, 2136, 1, 2136, 1, 2136, 1, 2136, 1, 2137, 1, 2137, 1, 2137, 1, 2137, 1, 2137, 1, 2137, 1, 2137, 1, 2137, 1, 2137, 1, 2137, 1, 2137, 1, 2138, 1, 2138, 1, 2138, 1, 2139, 1, 2139, 1, 2139, 1, 2139, 1, 2139, 1, 2139, 1, 2139, 1, 2139, 1, 2139, 1, 2139, 1, 2139, 1, 2139, 1, 2139, 1, 2139, 1, 2140, 1, 2140, 1, 2140, 1, 2140, 1, 2140, 1, 2140, 1, 2141, 1, 2141, 1, 2141, 1, 2141, 1, 2141, 1, 2141, 1, 2141, 1, 2141, 1, 2142, 1, 2142, 1, 2142, 1, 2142, 1, 2142, 1, 2142, 1, 2142, 1, 2142, 1, 2142, 1, 2143, 1, 2143, 1, 2143, 1, 2143, 1, 2143, 1, 2143, 1, 2143, 1, 2143, 1, 2143, 1, 2144, 1, 2144, 1, 2144, 1, 2144, 1, 2144, 1, 2144, 1, 2144, 1, 2144, 1, 2144, 1, 2144, 1, 2144, 1, 2144, 1, 2145, 1, 2145, 1, 2145, 1, 2145, 1, 2145, 1, 2145, 1, 2145, 1, 2145, 1, 2145, 1, 2145, 1, 2146, 1, 2146, 1, 2146, 1, 2146, 1, 2146, 1, 2146, 1, 2146, 1, 2146, 1, 2146, 1, 2146, 1, 2146, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2147, 1, 2148, 1, 2148, 1, 2148, 1, 2148, 1, 2148, 1, 2148, 1, 2148, 1, 2148, 1, 2148, 1, 2148, 1, 2148, 1, 2148, 1, 2148, 1, 2149, 1, 2149, 1, 2149, 1, 2149, 1, 2149, 1, 2149, 1, 2149, 1, 2149, 1, 2149, 1, 2149, 1, 2149, 1, 2150, 1, 2150, 1, 2150, 1, 2150, 1, 2150, 1, 2150, 1, 2150, 1, 2150, 1, 2150, 1, 2150, 1, 2151, 1, 2151, 1, 2151, 1, 2151, 1, 2151, 1, 2151, 1, 2151, 1, 2151, 1, 2151, 1, 2151, 1, 2151, 1, 2151, 1, 2152, 1, 2152, 1, 2152, 1, 2152, 1, 2152, 1, 2152, 1, 2153, 1, 2153, 1, 2153, 1, 2153, 1, 2153, 1, 2153, 1, 2153, 1, 2153, 1, 2153, 1, 2154, 1, 2154, 1, 2154, 1, 2154, 1, 2154, 1, 2154, 1, 2154, 1, 2154, 1, 2155, 1, 2155, 1, 2155, 1, 2155, 1, 2155, 1, 2156, 1, 2156, 1, 2156, 1, 2156, 1, 2156, 1, 2156, 1, 2156, 1, 2156, 1, 2156, 1, 2157, 1, 2157, 1, 2157, 1, 2157, 1, 2157, 1, 2157, 1, 2158, 1, 2158, 1, 2158, 1, 2158, 1, 2158, 1, 2158, 1, 2158, 1, 2158, 1, 2159, 1, 2159, 1, 2159, 1, 2159, 1, 2159, 1, 2159, 1, 2160, 1, 2160, 1, 2160, 1, 2160, 1, 2160, 1, 2160, 1, 2160, 1, 2161, 1, 2161, 1, 2161, 1, 2162, 1, 2162, 1, 2162, 1, 2162, 1, 2162, 1, 2162, 1, 2163, 1, 2163, 1, 2163, 1, 2163, 1, 2163, 1, 2164, 1, 2164, 1, 2164, 1, 2164, 1, 2164, 1, 2164, 1, 2164, 1, 2164, 1, 2164, 1, 2164, 1, 2165, 1, 2165, 1, 2165, 1, 2165, 1, 2166, 1, 2166, 1, 2166, 1, 2166, 1, 2167, 1, 2167, 1, 2167, 1, 2167, 1, 2167, 1, 2168, 1, 2168, 1, 2168, 1, 2168, 1, 2169, 1, 2169, 1, 2169, 1, 2169, 1, 2170, 1, 2170, 1, 2170, 1, 2170, 1, 2170, 1, 2170, 1, 2170, 1, 2170, 1, 2170, 1, 2170, 1, 2170, 1, 2171, 1, 2171, 1, 2171, 1, 2171, 1, 2171, 1, 2171, 1, 2171, 1, 2171, 1, 2171, 1, 2171, 1, 2172, 1, 2172, 1, 2172, 1, 2172, 1, 2172, 1, 2172, 1, 2172, 1, 2172, 1, 2173, 1, 2173, 1, 2173, 1, 2173, 1, 2173, 1, 2173, 1, 2173, 1, 2173, 1, 2173, 1, 2173, 1, 2173, 1, 2173, 1, 2173, 1, 2173, 1, 2174, 1, 2174, 1, 2174, 1, 2174, 1, 2174, 1, 2174, 1, 2175, 1, 2175, 1, 2175, 1, 2175, 1, 2175, 1, 2176, 1, 2176, 1, 2176, 1, 2176, 1, 2176, 1, 2176, 1, 2176, 1, 2177, 1, 2177, 1, 2177, 1, 2177, 1, 2177, 1, 2177, 1, 2177, 1, 2177, 1, 2178, 1, 2178, 1, 2178, 1, 2178, 1, 2178, 1, 2178, 1, 2179, 1, 2179, 1, 2179, 1, 2179, 1, 2179, 1, 2179, 1, 2179, 1, 2179, 1, 2179, 1, 2179, 1, 2180, 1, 2180, 1, 2180, 1, 2180, 1, 2180, 1, 2180, 1, 2180, 1, 2181, 1, 2181, 1, 2181, 1, 2181, 1, 2181, 1, 2181, 1, 2181, 1, 2182, 1, 2182, 1, 2182, 1, 2182, 1, 2182, 1, 2182, 1, 2182, 1, 2182, 1, 2182, 1, 2182, 1, 2183, 1, 2183, 1, 2183, 1, 2183, 1, 2183, 1, 2183, 1, 2183, 1, 2184, 1, 2184, 1, 2184, 1, 2184, 1, 2184, 1, 2184, 1, 2184, 1, 2185, 1, 2185, 1, 2185, 1, 2185, 1, 2185, 1, 2185, 1, 2185, 1, 2185, 1, 2185, 1, 2185, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2186, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2187, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2188, 1, 2189, 1, 2189, 1, 2189, 1, 2189, 1, 2189, 1, 2189, 1, 2189, 1, 2190, 1, 2190, 1, 2190, 1, 2190, 1, 2190, 1, 2190, 1, 2190, 1, 2190, 1, 2190, 1, 2191, 1, 2191, 1, 2191, 1, 2191, 1, 2191, 1, 2191, 1, 2191, 1, 2191, 1, 2192, 1, 2192, 1, 2192, 1, 2192, 1, 2192, 1, 2192, 1, 2192, 1, 2193, 1, 2193, 1, 2193, 1, 2193, 1, 2193, 1, 2193, 1, 2193, 1, 2193, 1, 2193, 1, 2193, 1, 2193, 1, 2193, 1, 2194, 1, 2194, 1, 2194, 1, 2194, 1, 2194, 1, 2194, 1, 2194, 1, 2194, 1, 2194, 1, 2194, 1, 2195, 1, 2195, 1, 2195, 1, 2195, 1, 2195, 1, 2195, 1, 2195, 1, 2195, 1, 2195, 1, 2195, 1, 2195, 1, 2195, 1, 2195, 1, 2195, 1, 2196, 1, 2196, 1, 2196, 1, 2196, 1, 2196, 1, 2196, 1, 2196, 1, 2196, 1, 2196, 1, 2196, 1, 2196, 1, 2196, 1, 2196, 1, 2197, 1, 2197, 1, 2197, 1, 2197, 1, 2197, 1, 2197, 1, 2197, 1, 2197, 1, 2197, 1, 2198, 1, 2198, 1, 2198, 1, 2198, 1, 2198, 1, 2198, 1, 2198, 1, 2198, 1, 2198, 1, 2198, 1, 2198, 1, 2198, 1, 2199, 1, 2199, 1, 2199, 1, 2199, 1, 2199, 1, 2199, 1, 2200, 1, 2200, 1, 2200, 1, 2200, 1, 2200, 1, 2200, 1, 2200, 1, 2200, 1, 2200, 1, 2201, 1, 2201, 1, 2201, 1, 2201, 1, 2201, 1, 2201, 1, 2201, 1, 2202, 1, 2202, 1, 2202, 1, 2202, 1, 2202, 1, 2202, 1, 2202, 1, 2202, 1, 2202, 1, 2202, 1, 2203, 1, 2203, 1, 2203, 1, 2203, 1, 2203, 1, 2203, 1, 2203, 1, 2203, 1, 2204, 1, 2204, 1, 2204, 1, 2204, 1, 2204, 1, 2204, 1, 2204, 1, 2205, 1, 2205, 1, 2205, 1, 2205, 1, 2205, 1, 2205, 1, 2205, 1, 2205, 1, 2205, 1, 2205, 1, 2206, 1, 2206, 1, 2206, 1, 2206, 1, 2206, 1, 2206, 1, 2206, 1, 2206, 1, 2206, 1, 2206, 1, 2206, 1, 2206, 1, 2207, 1, 2207, 1, 2207, 1, 2207, 1, 2207, 1, 2207, 1, 2207, 1, 2207, 1, 2207, 1, 2207, 1, 2207, 1, 2207, 1, 2207, 1, 2207, 1, 2208, 1, 2208, 1, 2208, 1, 2208, 1, 2208, 1, 2208, 1, 2208, 1, 2208, 1, 2209, 1, 2209, 1, 2209, 1, 2209, 1, 2209, 1, 2209, 1, 2210, 1, 2210, 1, 2210, 1, 2210, 1, 2210, 1, 2210, 1, 2210, 1, 2211, 1, 2211, 1, 2211, 1, 2211, 1, 2211, 1, 2211, 1, 2211, 1, 2212, 1, 2212, 1, 2212, 1, 2212, 1, 2212, 1, 2212, 1, 2212, 1, 2213, 1, 2213, 1, 2213, 1, 2213, 1, 2213, 1, 2213, 1, 2214, 1, 2214, 1, 2214, 1, 2214, 1, 2214, 1, 2214, 1, 2214, 1, 2214, 1, 2214, 1, 2215, 1, 2215, 1, 2215, 1, 2215, 1, 2215, 1, 2215, 1, 2215, 1, 2215, 1, 2215, 1, 2215, 1, 2215, 1, 2216, 1, 2216, 1, 2216, 1, 2216, 1, 2216, 1, 2216, 1, 2216, 1, 2216, 1, 2216, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2217, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2218, 1, 2219, 1, 2219, 1, 2219, 1, 2219, 1, 2219, 1, 2219, 1, 2219, 1, 2219, 1, 2219, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2220, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2221, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2222, 1, 2223, 1, 2223, 1, 2223, 1, 2223, 1, 2223, 1, 2223, 1, 2223, 1, 2223, 1, 2223, 1, 2223, 1, 2224, 1, 2224, 1, 2224, 1, 2224, 1, 2224, 1, 2224, 1, 2224, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2225, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2226, 1, 2227, 1, 2227, 1, 2227, 1, 2227, 1, 2227, 1, 2227, 1, 2227, 1, 2227, 1, 2227, 1, 2227, 1, 2228, 1, 2228, 1, 2228, 1, 2228, 1, 2228, 1, 2228, 1, 2228, 1, 2228, 1, 2228, 1, 2228, 1, 2228, 1, 2228, 1, 2228, 1, 2229, 1, 2229, 1, 2229, 1, 2229, 1, 2229, 1, 2229, 1, 2229, 1, 2229, 1, 2230, 1, 2230, 1, 2230, 1, 2230, 1, 2230, 1, 2230, 1, 2230, 1, 2230, 1, 2230, 1, 2230, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2231, 1, 2232, 1, 2232, 1, 2232, 1, 2232, 1, 2232, 1, 2232, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2233, 1, 2234, 1, 2234, 1, 2234, 1, 2234, 1, 2234, 1, 2235, 1, 2235, 1, 2235, 1, 2235, 1, 2235, 1, 2235, 1, 2235, 1, 2235, 1, 2235, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2236, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2237, 1, 2238, 1, 2238, 1, 2238, 1, 2238, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2239, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2240, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2241, 1, 2242, 1, 2242, 1, 2242, 1, 2242, 1, 2242, 1, 2242, 1, 2242, 1, 2242, 1, 2242, 1, 2242, 1, 2242, 1, 2242, 1, 2242, 1, 2242, 1, 2242, 1, 2243, 1, 2243, 1, 2243, 1, 2243, 1, 2243, 1, 2243, 1, 2244, 1, 2244, 1, 2244, 1, 2244, 1, 2244, 1, 2244, 1, 2244, 1, 2244, 1, 2245, 1, 2245, 1, 2245, 1, 2245, 1, 2245, 1, 2245, 1, 2245, 1, 2245, 1, 2246, 1, 2246, 1, 2246, 1, 2246, 1, 2246, 1, 2246, 1, 2247, 1, 2247, 1, 2247, 1, 2247, 1, 2247, 1, 2248, 1, 2248, 1, 2248, 1, 2249, 1, 2249, 1, 2249, 1, 2250, 1, 2250, 1, 2250, 1, 2250, 1, 2250, 1, 2250, 1, 2250, 1, 2250, 1, 2250, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2251, 1, 2252, 1, 2252, 1, 2252, 1, 2252, 1, 2252, 1, 2252, 1, 2252, 1, 2252, 1, 2252, 1, 2252, 1, 2252, 1, 2253, 1, 2253, 1, 2253, 1, 2253, 1, 2253, 1, 2253, 1, 2253, 1, 2253, 1, 2253, 1, 2253, 1, 2253, 1, 2253, 1, 2253, 1, 2253, 1, 2253, 1, 2254, 1, 2254, 1, 2254, 1, 2254, 1, 2254, 1, 2254, 1, 2254, 1, 2255, 1, 2255, 1, 2255, 1, 2255, 1, 2255, 1, 2255, 1, 2256, 1, 2256, 1, 2256, 1, 2256, 1, 2256, 1, 2256, 1, 2256, 1, 2256, 1, 2256, 1, 2257, 1, 2257, 1, 2257, 1, 2257, 1, 2257, 1, 2257, 1, 2257, 1, 2257, 1, 2258, 1, 2258, 1, 2258, 1, 2258, 1, 2258, 1, 2258, 1, 2258, 1, 2258, 1, 2258, 1, 2259, 1, 2259, 1, 2259, 1, 2259, 1, 2259, 1, 2259, 1, 2259, 1, 2259, 1, 2259, 1, 2260, 1, 2260, 1, 2260, 1, 2260, 1, 2260, 1, 2260, 1, 2260, 1, 2261, 1, 2261, 1, 2261, 1, 2261, 1, 2261, 1, 2261, 1, 2261, 1, 2261, 1, 2262, 1, 2262, 1, 2262, 1, 2262, 1, 2262, 1, 2262, 1, 2262, 1, 2262, 1, 2263, 1, 2263, 1, 2263, 1, 2263, 1, 2263, 1, 2263, 1, 2263, 1, 2263, 1, 2264, 1, 2264, 1, 2264, 1, 2264, 1, 2264, 1, 2264, 1, 2264, 1, 2265, 1, 2265, 1, 2265, 1, 2265, 1, 2265, 1, 2265, 1, 2265, 1, 2265, 1, 2265, 1, 2266, 1, 2266, 1, 2266, 1, 2266, 1, 2266, 1, 2266, 1, 2266, 1, 2266, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2267, 1, 2268, 1, 2268, 1, 2268, 1, 2268, 1, 2268, 1, 2268, 1, 2268, 1, 2268, 1, 2268, 1, 2268, 1, 2268, 1, 2268, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2269, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2270, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2271, 1, 2272, 1, 2272, 1, 2272, 1, 2272, 1, 2272, 1, 2272, 1, 2272, 1, 2272, 1, 2272, 1, 2273, 1, 2273, 1, 2273, 1, 2273, 1, 2273, 1, 2273, 1, 2273, 1, 2274, 1, 2274, 1, 2274, 1, 2274, 1, 2274, 1, 2274, 1, 2274, 1, 2274, 1, 2274, 1, 2274, 1, 2274, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2275, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2276, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2277, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2278, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2279, 1, 2280, 1, 2280, 1, 2280, 1, 2280, 1, 2280, 1, 2280, 1, 2280, 1, 2280, 1, 2280, 1, 2281, 1, 2281, 1, 2281, 1, 2281, 1, 2281, 1, 2281, 1, 2281, 1, 2281, 1, 2281, 1, 2281, 1, 2281, 1, 2281, 1, 2281, 1, 2282, 1, 2282, 1, 2282, 1, 2282, 1, 2282, 1, 2282, 1, 2282, 1, 2282, 1, 2283, 1, 2283, 1, 2283, 1, 2283, 1, 2283, 1, 2284, 1, 2284, 1, 2284, 1, 2284, 1, 2284, 1, 2284, 1, 2284, 1, 2284, 1, 2284, 1, 2284, 1, 2285, 1, 2285, 1, 2285, 1, 2285, 1, 2285, 1, 2285, 1, 2285, 1, 2285, 1, 2286, 1, 2286, 1, 2286, 1, 2286, 1, 2286, 1, 2286, 1, 2286, 1, 2286, 1, 2286, 1, 2286, 1, 2286, 1, 2287, 1, 2287, 1, 2287, 1, 2287, 1, 2287, 1, 2287, 1, 2287, 1, 2287, 1, 2288, 1, 2288, 1, 2288, 1, 2288, 1, 2288, 1, 2288, 1, 2288, 1, 2289, 1, 2289, 1, 2289, 1, 2289, 1, 2289, 1, 2289, 1, 2290, 1, 2290, 1, 2290, 1, 2290, 1, 2290, 1, 2291, 1, 2291, 1, 2291, 1, 2291, 1, 2291, 1, 2291, 1, 2291, 1, 2292, 1, 2292, 1, 2292, 1, 2292, 1, 2292, 1, 2292, 1, 2292, 1, 2292, 1, 2293, 1, 2293, 1, 2293, 1, 2293, 1, 2293, 1, 2293, 1, 2294, 1, 2294, 1, 2294, 1, 2294, 1, 2294, 1, 2295, 1, 2295, 1, 2295, 1, 2295, 1, 2295, 1, 2295, 1, 2295, 1, 2295, 1, 2295, 1, 2295, 1, 2295, 1, 2296, 1, 2296, 1, 2296, 1, 2296, 1, 2296, 1, 2296, 1, 2296, 1, 2296, 1, 2296, 1, 2297, 1, 2297, 1, 2297, 1, 2297, 1, 2297, 1, 2298, 1, 2298, 1, 2298, 1, 2298, 1, 2298, 1, 2298, 1, 2299, 1, 2299, 1, 2299, 1, 2299, 1, 2299, 1, 2299, 1, 2300, 1, 2300, 1, 2300, 1, 2300, 1, 2300, 1, 2300, 1, 2300, 1, 2300, 1, 2300, 1, 2300, 1, 2300, 1, 2301, 1, 2301, 1, 2301, 1, 2301, 1, 2301, 1, 2301, 1, 2301, 1, 2301, 1, 2301, 1, 2301, 1, 2301, 1, 2301, 1, 2301, 1, 2302, 1, 2302, 1, 2302, 1, 2302, 1, 2302, 1, 2302, 1, 2302, 1, 2303, 1, 2303, 1, 2303, 1, 2303, 1, 2303, 1, 2303, 1, 2303, 1, 2303, 1, 2304, 1, 2304, 1, 2304, 1, 2304, 1, 2304, 1, 2304, 1, 2304, 1, 2304, 1, 2304, 1, 2304, 1, 2304, 1, 2305, 1, 2305, 1, 2305, 1, 2305, 1, 2305, 1, 2306, 1, 2306, 1, 2306, 1, 2306, 1, 2306, 1, 2307, 1, 2307, 1, 2307, 1, 2307, 1, 2307, 1, 2307, 1, 2307, 1, 2307, 1, 2307, 1, 2308, 1, 2308, 1, 2308, 1, 2308, 1, 2308, 1, 2308, 1, 2308, 1, 2308, 1, 2309, 1, 2309, 1, 2309, 1, 2309, 1, 2309, 1, 2309, 1, 2309, 1, 2309, 1, 2310, 1, 2310, 1, 2310, 1, 2310, 1, 2310, 1, 2310, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2311, 1, 2312, 1, 2312, 1, 2312, 1, 2312, 1, 2313, 1, 2313, 1, 2313, 1, 2313, 1, 2313, 1, 2313, 1, 2313, 1, 2313, 1, 2313, 1, 2313, 1, 2313, 1, 2313, 1, 2314, 1, 2314, 1, 2314, 1, 2314, 1, 2315, 1, 2315, 1, 2315, 1, 2315, 1, 2315, 1, 2315, 1, 2315, 1, 2315, 1, 2315, 1, 2315, 1, 2315, 1, 2316, 1, 2316, 1, 2316, 1, 2316, 1, 2316, 1, 2316, 1, 2316, 1, 2317, 1, 2317, 1, 2317, 1, 2317, 1, 2317, 1, 2317, 1, 2317, 1, 2317, 1, 2317, 1, 2317, 1, 2317, 1, 2317, 1, 2317, 1, 2317, 1, 2318, 1, 2318, 1, 2318, 1, 2318, 1, 2318, 1, 2318, 1, 2318, 1, 2318, 1, 2319, 1, 2319, 1, 2319, 1, 2319, 1, 2319, 1, 2319, 1, 2319, 1, 2319, 1, 2319, 1, 2320, 1, 2320, 1, 2320, 1, 2320, 1, 2320, 1, 2320, 1, 2320, 1, 2320, 1, 2320, 1, 2320, 1, 2320, 1, 2320, 1, 2320, 1, 2321, 1, 2321, 1, 2321, 1, 2321, 1, 2321, 1, 2321, 1, 2321, 1, 2321, 1, 2321, 1, 2321, 1, 2321, 1, 2322, 1, 2322, 1, 2322, 1, 2322, 1, 2322, 1, 2322, 1, 2322, 1, 2322, 1, 2322, 1, 2322, 1, 2323, 1, 2323, 1, 2323, 1, 2323, 1, 2323, 1, 2323, 1, 2323, 1, 2323, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2324, 1, 2325, 1, 2325, 1, 2325, 1, 2325, 1, 2325, 1, 2325, 1, 2325, 1, 2325, 1, 2325, 1, 2325, 1, 2325, 1, 2326, 1, 2326, 1, 2326, 1, 2326, 1, 2326, 1, 2326, 1, 2326, 1, 2326, 1, 2326, 1, 2326, 1, 2326, 1, 2327, 1, 2327, 1, 2327, 1, 2327, 1, 2327, 1, 2327, 1, 2327, 1, 2327, 1, 2327, 1, 2327, 1, 2328, 1, 2328, 1, 2328, 1, 2328, 1, 2328, 1, 2328, 1, 2328, 1, 2328, 1, 2328, 1, 2328, 1, 2329, 1, 2329, 1, 2329, 1, 2329, 1, 2329, 1, 2329, 1, 2329, 1, 2329, 1, 2329, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2330, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2331, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2332, 1, 2333, 1, 2333, 1, 2333, 1, 2333, 1, 2333, 1, 2333, 1, 2333, 1, 2333, 1, 2333, 1, 2333, 1, 2334, 1, 2334, 1, 2334, 1, 2334, 1, 2334, 1, 2334, 1, 2334, 1, 2334, 1, 2334, 1, 2334, 1, 2334, 1, 2335, 1, 2335, 1, 2335, 1, 2335, 1, 2335, 1, 2335, 1, 2335, 1, 2335, 1, 2335, 1, 2335, 1, 2335, 1, 2335, 1, 2335, 1, 2335, 1, 2336, 1, 2336, 1, 2336, 1, 2336, 1, 2336, 1, 2336, 1, 2336, 1, 2336, 1, 2336, 1, 2337, 1, 2337, 1, 2337, 1, 2337, 1, 2337, 1, 2337, 1, 2337, 1, 2337, 1, 2337, 1, 2338, 1, 2338, 1, 2338, 1, 2338, 1, 2338, 1, 2338, 1, 2339, 1, 2339, 1, 2339, 1, 2339, 1, 2339, 1, 2339, 1, 2339, 1, 2339, 1, 2339, 1, 2339, 1, 2339, 1, 2339, 1, 2340, 1, 2340, 1, 2340, 1, 2340, 1, 2340, 1, 2340, 1, 2340, 1, 2340, 1, 2340, 1, 2341, 1, 2341, 1, 2341, 1, 2341, 1, 2341, 1, 2341, 1, 2341, 1, 2341, 1, 2342, 1, 2342, 1, 2342, 1, 2342, 1, 2342, 1, 2342, 1, 2342, 1, 2342, 1, 2342, 1, 2342, 1, 2343, 1, 2343, 1, 2343, 1, 2343, 1, 2343, 1, 2343, 1, 2343, 1, 2343, 1, 2343, 1, 2343, 1, 2343, 1, 2343, 1, 2343, 1, 2344, 1, 2344, 1, 2344, 1, 2344, 1, 2344, 1, 2344, 1, 2344, 1, 2344, 1, 2344, 1, 2345, 1, 2345, 1, 2345, 1, 2345, 1, 2345, 1, 2345, 1, 2345, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2346, 1, 2347, 1, 2347, 1, 2347, 1, 2347, 1, 2347, 1, 2347, 1, 2347, 1, 2347, 1, 2347, 1, 2347, 1, 2347, 1, 2347, 1, 2347, 1, 2348, 1, 2348, 1, 2348, 1, 2348, 1, 2348, 1, 2348, 1, 2348, 1, 2348, 1, 2349, 1, 2349, 1, 2349, 1, 2349, 1, 2350, 1, 2350, 1, 2350, 1, 2350, 1, 2350, 1, 2350, 1, 2350, 1, 2350, 1, 2350, 1, 2350, 1, 2350, 1, 2351, 1, 2351, 1, 2351, 1, 2351, 1, 2351, 1, 2351, 1, 2351, 1, 2351, 1, 2351, 1, 2351, 1, 2351, 1, 2351, 1, 2351, 1, 2351, 1, 2351, 1, 2352, 1, 2352, 1, 2352, 1, 2353, 1, 2353, 1, 2353, 1, 2353, 1, 2353, 1, 2353, 1, 2353, 1, 2353, 1, 2353, 1, 2353, 1, 2353, 1, 2354, 1, 2354, 1, 2354, 1, 2354, 1, 2354, 1, 2354, 1, 2355, 1, 2355, 1, 2355, 1, 2355, 1, 2355, 1, 2356, 1, 2356, 1, 2356, 1, 2356, 1, 2356, 1, 2356, 1, 2356, 1, 2356, 1, 2356, 1, 2356, 1, 2356, 1, 2356, 1, 2356, 1, 2356, 1, 2357, 1, 2357, 1, 2357, 1, 2357, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2358, 1, 2359, 1, 2359, 1, 2359, 1, 2359, 1, 2359, 1, 2359, 1, 2359, 1, 2359, 1, 2360, 1, 2360, 1, 2360, 1, 2360, 1, 2360, 1, 2361, 1, 2361, 1, 2361, 1, 2361, 1, 2361, 1, 2361, 1, 2362, 1, 2362, 1, 2362, 1, 2362, 1, 2362, 1, 2362, 1, 2362, 1, 2362, 1, 2362, 1, 2362, 1, 2362, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2363, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2364, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2365, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2366, 1, 2367, 1, 2367, 1, 2367, 1, 2367, 1, 2367, 1, 2367, 1, 2367, 1, 2367, 1, 2367, 1, 2367, 1, 2367, 1, 2367, 1, 2367, 1, 2367, 1, 2367, 1, 2368, 1, 2368, 1, 2368, 1, 2368, 1, 2368, 1, 2368, 1, 2368, 1, 2368, 1, 2368, 1, 2368, 1, 2368, 1, 2369, 1, 2369, 1, 2369, 1, 2369, 1, 2369, 1, 2369, 1, 2369, 1, 2369, 1, 2370, 1, 2370, 1, 2370, 1, 2370, 1, 2370, 1, 2370, 1, 2370, 1, 2370, 1, 2370, 1, 2370, 1, 2371, 1, 2371, 1, 2371, 1, 2371, 1, 2371, 1, 2371, 1, 2371, 1, 2371, 1, 2371, 1, 2371, 1, 2371, 1, 2372, 1, 2372, 1, 2372, 1, 2372, 1, 2372, 1, 2372, 1, 2372, 1, 2372, 1, 2372, 1, 2372, 1, 2372, 1, 2373, 1, 2373, 1, 2373, 1, 2373, 1, 2373, 1, 2373, 1, 2373, 1, 2373, 1, 2373, 1, 2374, 1, 2374, 1, 2374, 1, 2374, 1, 2374, 1, 2374, 1, 2374, 1, 2374, 1, 2375, 1, 2375, 1, 2375, 1, 2375, 1, 2375, 1, 2376, 1, 2376, 1, 2376, 1, 2376, 1, 2376, 1, 2376, 1, 2376, 1, 2376, 1, 2376, 1, 2376, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2377, 1, 2378, 1, 2378, 1, 2378, 1, 2378, 1, 2378, 1, 2378, 1, 2378, 1, 2378, 1, 2378, 1, 2378, 1, 2378, 1, 2378, 1, 2379, 1, 2379, 1, 2379, 1, 2379, 1, 2379, 1, 2379, 1, 2379, 1, 2379, 1, 2379, 1, 2379, 1, 2379, 1, 2379, 1, 2380, 1, 2380, 1, 2380, 1, 2380, 1, 2380, 1, 2380, 1, 2380, 1, 2380, 1, 2380, 1, 2380, 1, 2380, 1, 2380, 1, 2380, 1, 2380, 1, 2381, 1, 2381, 1, 2381, 1, 2381, 1, 2381, 1, 2381, 1, 2381, 1, 2381, 1, 2381, 1, 2381, 1, 2381, 1, 2382, 1, 2382, 1, 2382, 1, 2382, 1, 2382, 1, 2382, 1, 2382, 1, 2382, 1, 2383, 1, 2383, 1, 2383, 1, 2383, 1, 2383, 1, 2384, 1, 2384, 1, 2384, 1, 2384, 1, 2384, 1, 2384, 1, 2384, 1, 2384, 1, 2385, 1, 2385, 1, 2385, 1, 2385, 1, 2385, 1, 2386, 1, 2386, 1, 2386, 1, 2386, 1, 2386, 1, 2386, 1, 2387, 1, 2387, 1, 2387, 1, 2387, 1, 2387, 1, 2387, 1, 2387, 1, 2387, 1, 2387, 1, 2387, 1, 2388, 1, 2388, 1, 2388, 1, 2388, 1, 2388, 1, 2388, 1, 2388, 1, 2388, 1, 2388, 1, 2388, 1, 2389, 1, 2389, 1, 2389, 1, 2389, 1, 2389, 1, 2389, 1, 2389, 1, 2389, 1, 2389, 1, 2389, 1, 2389, 1, 2390, 1, 2390, 1, 2390, 1, 2390, 1, 2390, 1, 2390, 1, 2390, 1, 2390, 1, 2391, 1, 2391, 1, 2391, 1, 2391, 1, 2391, 1, 2391, 1, 2391, 1, 2391, 1, 2391, 1, 2391, 1, 2391, 1, 2391, 1, 2391, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2392, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2393, 1, 2394, 1, 2394, 1, 2394, 1, 2394, 1, 2394, 1, 2395, 1, 2395, 1, 2395, 1, 2395, 1, 2396, 1, 2396, 1, 2396, 1, 2396, 1, 2396, 1, 2397, 1, 2397, 1, 2397, 1, 2397, 1, 2397, 1, 2397, 1, 2397, 1, 2398, 1, 2398, 1, 2398, 1, 2398, 1, 2398, 1, 2398, 1, 2398, 1, 2399, 1, 2399, 1, 2399, 1, 2399, 1, 2400, 1, 2400, 1, 2400, 1, 2400, 1, 2400, 1, 2400, 1, 2400, 1, 2400, 1, 2400, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2401, 1, 2402, 1, 2402, 1, 2402, 1, 2402, 1, 2402, 1, 2403, 1, 2403, 1, 2403, 1, 2403, 1, 2404, 1, 2404, 1, 2404, 1, 2404, 1, 2404, 1, 2404, 1, 2404, 1, 2405, 1, 2405, 1, 2405, 1, 2405, 1, 2405, 1, 2405, 1, 2405, 1, 2405, 1, 2405, 1, 2405, 1, 2405, 1, 2405, 1, 2406, 1, 2406, 1, 2406, 1, 2406, 1, 2407, 1, 2407, 1, 2407, 1, 2407, 1, 2407, 1, 2407, 1, 2408, 1, 2408, 1, 2408, 1, 2408, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2409, 1, 2410, 1, 2410, 1, 2410, 1, 2410, 1, 2410, 1, 2410, 1, 2411, 1, 2411, 1, 2411, 1, 2411, 1, 2411, 1, 2411, 1, 2412, 1, 2412, 1, 2412, 1, 2412, 1, 2412, 1, 2412, 1, 2412, 1, 2412, 1, 2412, 1, 2412, 1, 2412, 1, 2413, 1, 2413, 1, 2413, 1, 2413, 1, 2413, 1, 2413, 1, 2413, 1, 2414, 1, 2414, 1, 2414, 1, 2414, 1, 2414, 1, 2414, 1, 2414, 1, 2414, 1, 2415, 1, 2415, 1, 2415, 1, 2415, 1, 2415, 1, 2416, 1, 2416, 1, 2416, 1, 2416, 1, 2417, 1, 2417, 1, 2417, 1, 2417, 1, 2417, 1, 2417, 1, 2417, 1, 2418, 1, 2418, 1, 2418, 1, 2418, 1, 2418, 1, 2419, 1, 2419, 1, 2419, 1, 2419, 1, 2419, 1, 2419, 1, 2419, 1, 2419, 1, 2419, 1, 2420, 1, 2420, 1, 2420, 1, 2420, 1, 2420, 1, 2420, 1, 2421, 1, 2421, 1, 2421, 1, 2421, 1, 2421, 1, 2421, 1, 2421, 1, 2421, 1, 2421, 1, 2422, 1, 2422, 1, 2422, 1, 2422, 1, 2422, 1, 2422, 1, 2422, 1, 2422, 1, 2423, 1, 2423, 1, 2423, 1, 2423, 1, 2423, 1, 2423, 1, 2423, 1, 2423, 1, 2423, 1, 2423, 1, 2424, 1, 2424, 1, 2424, 1, 2424, 1, 2424, 1, 2424, 1, 2424, 1, 2424, 1, 2424, 1, 2424, 1, 2424, 1, 2424, 1, 2425, 1, 2425, 1, 2425, 1, 2425, 1, 2425, 1, 2425, 1, 2425, 1, 2425, 1, 2425, 1, 2426, 1, 2426, 1, 2426, 1, 2426, 1, 2426, 1, 2426, 1, 2426, 1, 2427, 1, 2427, 1, 2427, 1, 2427, 1, 2427, 1, 2427, 1, 2427, 1, 2428, 1, 2428, 1, 2428, 1, 2428, 1, 2428, 1, 2428, 1, 2428, 1, 2428, 1, 2428, 1, 2428, 1, 2428, 1, 2428, 1, 2429, 1, 2429, 1, 2429, 1, 2429, 1, 2429, 1, 2429, 1, 2429, 1, 2429, 1, 2429, 1, 2429, 1, 2429, 1, 2429, 1, 2430, 1, 2430, 1, 2430, 1, 2430, 1, 2430, 1, 2430, 1, 2430, 1, 2431, 1, 2431, 1, 2431, 1, 2431, 1, 2432, 1, 2432, 1, 2432, 1, 2432, 1, 2432, 1, 2432, 1, 2432, 1, 2432, 1, 2432, 1, 2432, 1, 2433, 1, 2433, 1, 2433, 1, 2433, 1, 2433, 1, 2433, 5, 2433, 32000, 8, 2433, 10, 2433, 12, 2433, 32003, 9, 2433, 1, 2433, 1, 2433, 1, 2434, 1, 2434, 1, 2434, 5, 2434, 32010, 8, 2434, 10, 2434, 12, 2434, 32013, 9, 2434, 1, 2434, 4, 2434, 32016, 8, 2434, 11, 2434, 12, 2434, 32017, 1, 2435, 1, 2435, 1, 2435, 3, 2435, 32023, 8, 2435, 1, 2435, 1, 2435, 5, 2435, 32027, 8, 2435, 10, 2435, 12, 2435, 32030, 9, 2435, 1, 2435, 4, 2435, 32033, 8, 2435, 11, 2435, 12, 2435, 32034, 1, 2436, 1, 2436, 1, 2436, 1, 2437, 1, 2437, 1, 2438, 4, 2438, 32043, 8, 2438, 11, 2438, 12, 2438, 32044, 1, 2439, 1, 2439, 1, 2439, 3, 2439, 32050, 8, 2439, 1, 2439, 1, 2439, 4, 2439, 32054, 8, 2439, 11, 2439, 12, 2439, 32055, 3, 2439, 32058, 8, 2439, 3, 2439, 32060, 8, 2439, 1, 2439, 3, 2439, 32063, 8, 2439, 1, 2440, 1, 2440, 1, 2440, 1, 2440, 1, 2440, 5, 2440, 32070, 8, 2440, 10, 2440, 12, 2440, 32073, 9, 2440, 1, 2440, 1, 2440, 1, 2441, 1, 2441, 1, 2441, 1, 2441, 1, 2441, 1, 2441, 1, 2441, 1, 2441, 1, 2441, 1, 2441, 1, 2441, 1, 2441, 1, 2441, 3, 2441, 32090, 8, 2441, 1, 2441, 1, 2441, 1, 2441, 1, 2441, 1, 2442, 1, 2442, 5, 2442, 32098, 8, 2442, 10, 2442, 12, 2442, 32101, 9, 2442, 1, 2442, 1, 2442, 1, 2443, 1, 2443, 5, 2443, 32107, 8, 2443, 10, 2443, 12, 2443, 32110, 9, 2443, 1, 2443, 1, 2443, 1, 2444, 1, 2444, 5, 2444, 32116, 8, 2444, 10, 2444, 12, 2444, 32119, 9, 2444, 1, 2444, 1, 2444, 1, 2445, 1, 2445, 5, 2445, 32125, 8, 2445, 10, 2445, 12, 2445, 32128, 9, 2445, 1, 2445, 1, 2445, 1, 2446, 1, 2446, 5, 2446, 32134, 8, 2446, 10, 2446, 12, 2446, 32137, 9, 2446, 1, 2446, 1, 2446, 1, 2447, 1, 2447, 5, 2447, 32143, 8, 2447, 10, 2447, 12, 2447, 32146, 9, 2447, 1, 2447, 1, 2447, 1, 2448, 1, 2448, 5, 2448, 32152, 8, 2448, 10, 2448, 12, 2448, 32155, 9, 2448, 1, 2448, 1, 2448, 1, 2449, 1, 2449, 5, 2449, 32161, 8, 2449, 10, 2449, 12, 2449, 32164, 9, 2449, 1, 2449, 1, 2449, 1, 2450, 1, 2450, 5, 2450, 32170, 8, 2450, 10, 2450, 12, 2450, 32173, 9, 2450, 1, 2450, 1, 2450, 1, 2451, 1, 2451, 5, 2451, 32179, 8, 2451, 10, 2451, 12, 2451, 32182, 9, 2451, 1, 2451, 1, 2451, 1, 2452, 1, 2452, 5, 2452, 32188, 8, 2452, 10, 2452, 12, 2452, 32191, 9, 2452, 1, 2452, 1, 2452, 1, 2453, 1, 2453, 1, 2453, 1, 2453, 4, 2453, 32199, 8, 2453, 11, 2453, 12, 2453, 32200, 1, 2453, 1, 2453, 1, 2454, 1, 2454, 1, 2455, 1, 2455, 1, 2456, 1, 2456, 1, 2457, 1, 2457, 1, 2458, 1, 2458, 1, 2458, 1, 2459, 1, 2459, 1, 2460, 1, 2460, 1, 2461, 1, 2461, 1, 2462, 1, 2462, 1, 2463, 1, 2463, 1, 2464, 1, 2464, 1, 2465, 1, 2465, 1, 2465, 1, 2466, 1, 2466, 1, 2467, 1, 2467, 1, 2468, 1, 2468, 1, 2469, 1, 2469, 1, 2470, 1, 2470, 1, 2470, 1, 2470, 5, 2470, 32243, 8, 2470, 10, 2470, 12, 2470, 32246, 9, 2470, 1, 2470, 1, 2470, 1, 2470, 1, 2470, 1, 2470, 3, 2470, 32253, 8, 2470, 1, 2471, 1, 2471, 1, 2471, 1, 2471, 1, 2471, 1, 2471, 1, 2471, 1, 2471, 3, 2471, 32263, 8, 2471, 1, 2472, 1, 2472, 1, 2473, 1, 2473, 1, 2474, 1, 2474, 1, 2475, 1, 2475, 1, 2476, 1, 2476, 1, 2477, 1, 2477, 1, 2478, 1, 2478, 1, 2479, 1, 2479, 1, 2480, 1, 2480, 1, 2481, 1, 2481, 1, 2482, 1, 2482, 1, 2483, 1, 2483, 1, 2484, 1, 2484, 1, 2484, 1, 2484, 5, 2484, 32293, 8, 2484, 10, 2484, 12, 2484, 32296, 9, 2484, 1, 2484, 1, 2484, 1, 2484, 1, 2484, 1, 2485, 1, 2485, 1, 2485, 1, 2485, 5, 2485, 32306, 8, 2485, 10, 2485, 12, 2485, 32309, 9, 2485, 1, 2485, 1, 2485, 1, 2485, 1, 2485, 1, 2485, 1, 2486, 1, 2486, 1, 2486, 1, 2486, 1, 2486, 1, 2486, 1, 2486, 1, 2486, 3, 2486, 32324, 8, 2486, 1, 2486, 1, 2486, 5, 2486, 32328, 8, 2486, 10, 2486, 12, 2486, 32331, 9, 2486, 3, 2486, 32333, 8, 2486, 1, 2486, 1, 2486, 1, 2486, 1, 2486, 1, 2487, 1, 2487, 1, 2487, 1, 2487, 1, 2487, 1, 2487, 1, 2487, 1, 2487, 3, 2487, 32347, 8, 2487, 1, 2487, 1, 2487, 5, 2487, 32351, 8, 2487, 10, 2487, 12, 2487, 32354, 9, 2487, 3, 2487, 32356, 8, 2487, 1, 2487, 1, 2487, 1, 2488, 1, 2488, 3, 2488, 32362, 8, 2488, 1, 2489, 1, 2489, 1, 2489, 5, 2489, 32367, 8, 2489, 10, 2489, 12, 2489, 32370, 9, 2489, 1, 2490, 1, 2490, 1, 2490, 1, 2490, 1, 2490, 4, 2490, 32377, 8, 2490, 11, 2490, 12, 2490, 32378, 1, 2491, 4, 2491, 32382, 8, 2491, 11, 2491, 12, 2491, 32383, 1, 2491, 1, 2491, 1, 2492, 1, 2492, 3, 2492, 32390, 8, 2492, 1, 2493, 1, 2493, 1, 2494, 1, 2494, 1, 2495, 5, 2495, 32397, 8, 2495, 10, 2495, 12, 2495, 32400, 9, 2495, 1, 2495, 3, 2495, 32403, 8, 2495, 1, 2495, 4, 2495, 32406, 8, 2495, 11, 2495, 12, 2495, 32407, 1, 2496, 3, 2496, 32411, 8, 2496, 1, 2496, 1, 2496, 1, 2497, 1, 2497, 12, 32099, 32108, 32117, 32126, 32135, 32144, 32153, 32162, 32171, 32180, 32189, 32307, 0, 2498, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 163, 82, 165, 83, 167, 84, 169, 85, 171, 86, 173, 87, 175, 88, 177, 89, 179, 90, 181, 91, 183, 92, 185, 93, 187, 94, 189, 95, 191, 96, 193, 97, 195, 98, 197, 99, 199, 100, 201, 101, 203, 102, 205, 103, 207, 104, 209, 105, 211, 106, 213, 107, 215, 108, 217, 109, 219, 110, 221, 111, 223, 112, 225, 113, 227, 114, 229, 115, 231, 116, 233, 117, 235, 118, 237, 119, 239, 120, 241, 121, 243, 122, 245, 123, 247, 124, 249, 125, 251, 126, 253, 127, 255, 128, 257, 129, 259, 130, 261, 131, 263, 132, 265, 133, 267, 134, 269, 135, 271, 136, 273, 137, 275, 138, 277, 139, 279, 140, 281, 141, 283, 142, 285, 143, 287, 144, 289, 145, 291, 146, 293, 147, 295, 148, 297, 149, 299, 150, 301, 151, 303, 152, 305, 153, 307, 154, 309, 155, 311, 156, 313, 157, 315, 158, 317, 159, 319, 160, 321, 161, 323, 162, 325, 163, 327, 164, 329, 165, 331, 166, 333, 167, 335, 168, 337, 169, 339, 170, 341, 171, 343, 172, 345, 173, 347, 174, 349, 175, 351, 176, 353, 177, 355, 178, 357, 179, 359, 180, 361, 181, 363, 182, 365, 183, 367, 184, 369, 185, 371, 186, 373, 187, 375, 188, 377, 189, 379, 190, 381, 191, 383, 192, 385, 193, 387, 194, 389, 195, 391, 196, 393, 197, 395, 198, 397, 199, 399, 200, 401, 201, 403, 202, 405, 203, 407, 204, 409, 205, 411, 206, 413, 207, 415, 208, 417, 209, 419, 210, 421, 211, 423, 212, 425, 213, 427, 214, 429, 215, 431, 216, 433, 217, 435, 218, 437, 219, 439, 220, 441, 221, 443, 222, 445, 223, 447, 224, 449, 225, 451, 226, 453, 227, 455, 228, 457, 229, 459, 230, 461, 231, 463, 232, 465, 233, 467, 234, 469, 235, 471, 236, 473, 237, 475, 238, 477, 239, 479, 240, 481, 241, 483, 242, 485, 243, 487, 244, 489, 245, 491, 246, 493, 247, 495, 248, 497, 249, 499, 250, 501, 251, 503, 252, 505, 253, 507, 254, 509, 255, 511, 256, 513, 257, 515, 258, 517, 259, 519, 260, 521, 261, 523, 262, 525, 263, 527, 264, 529, 265, 531, 266, 533, 267, 535, 268, 537, 269, 539, 270, 541, 271, 543, 272, 545, 273, 547, 274, 549, 275, 551, 276, 553, 277, 555, 278, 557, 279, 559, 280, 561, 281, 563, 282, 565, 283, 567, 284, 569, 285, 571, 286, 573, 287, 575, 288, 577, 289, 579, 290, 581, 291, 583, 292, 585, 293, 587, 294, 589, 295, 591, 296, 593, 297, 595, 298, 597, 299, 599, 300, 601, 301, 603, 302, 605, 303, 607, 304, 609, 305, 611, 306, 613, 307, 615, 308, 617, 309, 619, 310, 621, 311, 623, 312, 625, 313, 627, 314, 629, 315, 631, 316, 633, 317, 635, 318, 637, 319, 639, 320, 641, 321, 643, 322, 645, 323, 647, 324, 649, 325, 651, 326, 653, 327, 655, 328, 657, 329, 659, 330, 661, 331, 663, 332, 665, 333, 667, 334, 669, 335, 671, 336, 673, 337, 675, 338, 677, 339, 679, 340, 681, 341, 683, 342, 685, 343, 687, 344, 689, 345, 691, 346, 693, 347, 695, 348, 697, 349, 699, 350, 701, 351, 703, 352, 705, 353, 707, 354, 709, 355, 711, 356, 713, 357, 715, 358, 717, 359, 719, 360, 721, 361, 723, 362, 725, 363, 727, 364, 729, 365, 731, 366, 733, 367, 735, 368, 737, 369, 739, 370, 741, 371, 743, 372, 745, 373, 747, 374, 749, 375, 751, 376, 753, 377, 755, 378, 757, 379, 759, 380, 761, 381, 763, 382, 765, 383, 767, 384, 769, 385, 771, 386, 773, 387, 775, 388, 777, 389, 779, 390, 781, 391, 783, 392, 785, 393, 787, 394, 789, 395, 791, 396, 793, 397, 795, 398, 797, 399, 799, 400, 801, 401, 803, 402, 805, 403, 807, 404, 809, 405, 811, 406, 813, 407, 815, 408, 817, 409, 819, 410, 821, 411, 823, 412, 825, 413, 827, 414, 829, 415, 831, 416, 833, 417, 835, 418, 837, 419, 839, 420, 841, 421, 843, 422, 845, 423, 847, 424, 849, 425, 851, 426, 853, 427, 855, 428, 857, 429, 859, 430, 861, 431, 863, 432, 865, 433, 867, 434, 869, 435, 871, 436, 873, 437, 875, 438, 877, 439, 879, 440, 881, 441, 883, 442, 885, 443, 887, 444, 889, 445, 891, 446, 893, 447, 895, 448, 897, 449, 899, 450, 901, 451, 903, 452, 905, 453, 907, 454, 909, 455, 911, 456, 913, 457, 915, 458, 917, 459, 919, 460, 921, 461, 923, 462, 925, 463, 927, 464, 929, 465, 931, 466, 933, 467, 935, 468, 937, 469, 939, 470, 941, 471, 943, 472, 945, 473, 947, 474, 949, 475, 951, 476, 953, 477, 955, 478, 957, 479, 959, 480, 961, 481, 963, 482, 965, 483, 967, 484, 969, 485, 971, 486, 973, 487, 975, 488, 977, 489, 979, 490, 981, 491, 983, 492, 985, 493, 987, 494, 989, 495, 991, 496, 993, 497, 995, 498, 997, 499, 999, 500, 1001, 501, 1003, 502, 1005, 503, 1007, 504, 1009, 505, 1011, 506, 1013, 507, 1015, 508, 1017, 509, 1019, 510, 1021, 511, 1023, 512, 1025, 513, 1027, 514, 1029, 515, 1031, 516, 1033, 517, 1035, 518, 1037, 519, 1039, 520, 1041, 521, 1043, 522, 1045, 523, 1047, 524, 1049, 525, 1051, 526, 1053, 527, 1055, 528, 1057, 529, 1059, 530, 1061, 531, 1063, 532, 1065, 533, 1067, 534, 1069, 535, 1071, 536, 1073, 537, 1075, 538, 1077, 539, 1079, 540, 1081, 541, 1083, 542, 1085, 543, 1087, 544, 1089, 545, 1091, 546, 1093, 547, 1095, 548, 1097, 549, 1099, 550, 1101, 551, 1103, 552, 1105, 553, 1107, 554, 1109, 555, 1111, 556, 1113, 557, 1115, 558, 1117, 559, 1119, 560, 1121, 561, 1123, 562, 1125, 563, 1127, 564, 1129, 565, 1131, 566, 1133, 567, 1135, 568, 1137, 569, 1139, 570, 1141, 571, 1143, 572, 1145, 573, 1147, 574, 1149, 575, 1151, 576, 1153, 577, 1155, 578, 1157, 579, 1159, 580, 1161, 581, 1163, 582, 1165, 583, 1167, 584, 1169, 585, 1171, 586, 1173, 587, 1175, 588, 1177, 589, 1179, 590, 1181, 591, 1183, 592, 1185, 593, 1187, 594, 1189, 595, 1191, 596, 1193, 597, 1195, 598, 1197, 599, 1199, 600, 1201, 601, 1203, 602, 1205, 603, 1207, 604, 1209, 605, 1211, 606, 1213, 607, 1215, 608, 1217, 609, 1219, 610, 1221, 611, 1223, 612, 1225, 613, 1227, 614, 1229, 615, 1231, 616, 1233, 617, 1235, 618, 1237, 619, 1239, 620, 1241, 621, 1243, 622, 1245, 623, 1247, 624, 1249, 625, 1251, 626, 1253, 627, 1255, 628, 1257, 629, 1259, 630, 1261, 631, 1263, 632, 1265, 633, 1267, 634, 1269, 635, 1271, 636, 1273, 637, 1275, 638, 1277, 639, 1279, 640, 1281, 641, 1283, 642, 1285, 643, 1287, 644, 1289, 645, 1291, 646, 1293, 647, 1295, 648, 1297, 649, 1299, 650, 1301, 651, 1303, 652, 1305, 653, 1307, 654, 1309, 655, 1311, 656, 1313, 657, 1315, 658, 1317, 659, 1319, 660, 1321, 661, 1323, 662, 1325, 663, 1327, 664, 1329, 665, 1331, 666, 1333, 667, 1335, 668, 1337, 669, 1339, 670, 1341, 671, 1343, 672, 1345, 673, 1347, 674, 1349, 675, 1351, 676, 1353, 677, 1355, 678, 1357, 679, 1359, 680, 1361, 681, 1363, 682, 1365, 683, 1367, 684, 1369, 685, 1371, 686, 1373, 687, 1375, 688, 1377, 689, 1379, 690, 1381, 691, 1383, 692, 1385, 693, 1387, 694, 1389, 695, 1391, 696, 1393, 697, 1395, 698, 1397, 699, 1399, 700, 1401, 701, 1403, 702, 1405, 703, 1407, 704, 1409, 705, 1411, 706, 1413, 707, 1415, 708, 1417, 709, 1419, 710, 1421, 711, 1423, 712, 1425, 713, 1427, 714, 1429, 715, 1431, 716, 1433, 717, 1435, 718, 1437, 719, 1439, 720, 1441, 721, 1443, 722, 1445, 723, 1447, 724, 1449, 725, 1451, 726, 1453, 727, 1455, 728, 1457, 729, 1459, 730, 1461, 731, 1463, 732, 1465, 733, 1467, 734, 1469, 735, 1471, 736, 1473, 737, 1475, 738, 1477, 739, 1479, 740, 1481, 741, 1483, 742, 1485, 743, 1487, 744, 1489, 745, 1491, 746, 1493, 747, 1495, 748, 1497, 749, 1499, 750, 1501, 751, 1503, 752, 1505, 753, 1507, 754, 1509, 755, 1511, 756, 1513, 757, 1515, 758, 1517, 759, 1519, 760, 1521, 761, 1523, 762, 1525, 763, 1527, 764, 1529, 765, 1531, 766, 1533, 767, 1535, 768, 1537, 769, 1539, 770, 1541, 771, 1543, 772, 1545, 773, 1547, 774, 1549, 775, 1551, 776, 1553, 777, 1555, 778, 1557, 779, 1559, 780, 1561, 781, 1563, 782, 1565, 783, 1567, 784, 1569, 785, 1571, 786, 1573, 787, 1575, 788, 1577, 789, 1579, 790, 1581, 791, 1583, 792, 1585, 793, 1587, 794, 1589, 795, 1591, 796, 1593, 797, 1595, 798, 1597, 799, 1599, 800, 1601, 801, 1603, 802, 1605, 803, 1607, 804, 1609, 805, 1611, 806, 1613, 807, 1615, 808, 1617, 809, 1619, 810, 1621, 811, 1623, 812, 1625, 813, 1627, 814, 1629, 815, 1631, 816, 1633, 817, 1635, 818, 1637, 819, 1639, 820, 1641, 821, 1643, 822, 1645, 823, 1647, 824, 1649, 825, 1651, 826, 1653, 827, 1655, 828, 1657, 829, 1659, 830, 1661, 831, 1663, 832, 1665, 833, 1667, 834, 1669, 835, 1671, 836, 1673, 837, 1675, 838, 1677, 839, 1679, 840, 1681, 841, 1683, 842, 1685, 843, 1687, 844, 1689, 845, 1691, 846, 1693, 847, 1695, 848, 1697, 849, 1699, 850, 1701, 851, 1703, 852, 1705, 853, 1707, 854, 1709, 855, 1711, 856, 1713, 857, 1715, 858, 1717, 859, 1719, 860, 1721, 861, 1723, 862, 1725, 863, 1727, 864, 1729, 865, 1731, 866, 1733, 867, 1735, 868, 1737, 869, 1739, 870, 1741, 871, 1743, 872, 1745, 873, 1747, 874, 1749, 875, 1751, 876, 1753, 877, 1755, 878, 1757, 879, 1759, 880, 1761, 881, 1763, 882, 1765, 883, 1767, 884, 1769, 885, 1771, 886, 1773, 887, 1775, 888, 1777, 889, 1779, 890, 1781, 891, 1783, 892, 1785, 893, 1787, 894, 1789, 895, 1791, 896, 1793, 897, 1795, 898, 1797, 899, 1799, 900, 1801, 901, 1803, 902, 1805, 903, 1807, 904, 1809, 905, 1811, 906, 1813, 907, 1815, 908, 1817, 909, 1819, 910, 1821, 911, 1823, 912, 1825, 913, 1827, 914, 1829, 915, 1831, 916, 1833, 917, 1835, 918, 1837, 919, 1839, 920, 1841, 921, 1843, 922, 1845, 923, 1847, 924, 1849, 925, 1851, 926, 1853, 927, 1855, 928, 1857, 929, 1859, 930, 1861, 931, 1863, 932, 1865, 933, 1867, 934, 1869, 935, 1871, 936, 1873, 937, 1875, 938, 1877, 939, 1879, 940, 1881, 941, 1883, 942, 1885, 943, 1887, 944, 1889, 945, 1891, 946, 1893, 947, 1895, 948, 1897, 949, 1899, 950, 1901, 951, 1903, 952, 1905, 953, 1907, 954, 1909, 955, 1911, 956, 1913, 957, 1915, 958, 1917, 959, 1919, 960, 1921, 961, 1923, 962, 1925, 963, 1927, 964, 1929, 965, 1931, 966, 1933, 967, 1935, 968, 1937, 969, 1939, 970, 1941, 971, 1943, 972, 1945, 973, 1947, 974, 1949, 975, 1951, 976, 1953, 977, 1955, 978, 1957, 979, 1959, 980, 1961, 981, 1963, 982, 1965, 983, 1967, 984, 1969, 985, 1971, 986, 1973, 987, 1975, 988, 1977, 989, 1979, 990, 1981, 991, 1983, 992, 1985, 993, 1987, 994, 1989, 995, 1991, 996, 1993, 997, 1995, 998, 1997, 999, 1999, 1000, 2001, 1001, 2003, 1002, 2005, 1003, 2007, 1004, 2009, 1005, 2011, 1006, 2013, 1007, 2015, 1008, 2017, 1009, 2019, 1010, 2021, 1011, 2023, 1012, 2025, 1013, 2027, 1014, 2029, 1015, 2031, 1016, 2033, 1017, 2035, 1018, 2037, 1019, 2039, 1020, 2041, 1021, 2043, 1022, 2045, 1023, 2047, 1024, 2049, 1025, 2051, 1026, 2053, 1027, 2055, 1028, 2057, 1029, 2059, 1030, 2061, 1031, 2063, 1032, 2065, 1033, 2067, 1034, 2069, 1035, 2071, 1036, 2073, 1037, 2075, 1038, 2077, 1039, 2079, 1040, 2081, 1041, 2083, 1042, 2085, 1043, 2087, 1044, 2089, 1045, 2091, 1046, 2093, 1047, 2095, 1048, 2097, 1049, 2099, 1050, 2101, 1051, 2103, 1052, 2105, 1053, 2107, 1054, 2109, 1055, 2111, 1056, 2113, 1057, 2115, 1058, 2117, 1059, 2119, 1060, 2121, 1061, 2123, 1062, 2125, 1063, 2127, 1064, 2129, 1065, 2131, 1066, 2133, 1067, 2135, 1068, 2137, 1069, 2139, 1070, 2141, 1071, 2143, 1072, 2145, 1073, 2147, 1074, 2149, 1075, 2151, 1076, 2153, 1077, 2155, 1078, 2157, 1079, 2159, 1080, 2161, 1081, 2163, 1082, 2165, 1083, 2167, 1084, 2169, 1085, 2171, 1086, 2173, 1087, 2175, 1088, 2177, 1089, 2179, 1090, 2181, 1091, 2183, 1092, 2185, 1093, 2187, 1094, 2189, 1095, 2191, 1096, 2193, 1097, 2195, 1098, 2197, 1099, 2199, 1100, 2201, 1101, 2203, 1102, 2205, 1103, 2207, 1104, 2209, 1105, 2211, 1106, 2213, 1107, 2215, 1108, 2217, 1109, 2219, 1110, 2221, 1111, 2223, 1112, 2225, 1113, 2227, 1114, 2229, 1115, 2231, 1116, 2233, 1117, 2235, 1118, 2237, 1119, 2239, 1120, 2241, 1121, 2243, 1122, 2245, 1123, 2247, 1124, 2249, 1125, 2251, 1126, 2253, 1127, 2255, 1128, 2257, 1129, 2259, 1130, 2261, 1131, 2263, 1132, 2265, 1133, 2267, 1134, 2269, 1135, 2271, 1136, 2273, 1137, 2275, 1138, 2277, 1139, 2279, 1140, 2281, 1141, 2283, 1142, 2285, 1143, 2287, 1144, 2289, 1145, 2291, 1146, 2293, 1147, 2295, 1148, 2297, 1149, 2299, 1150, 2301, 1151, 2303, 1152, 2305, 1153, 2307, 1154, 2309, 1155, 2311, 1156, 2313, 1157, 2315, 1158, 2317, 1159, 2319, 1160, 2321, 1161, 2323, 1162, 2325, 1163, 2327, 1164, 2329, 1165, 2331, 1166, 2333, 1167, 2335, 1168, 2337, 1169, 2339, 1170, 2341, 1171, 2343, 1172, 2345, 1173, 2347, 1174, 2349, 1175, 2351, 1176, 2353, 1177, 2355, 1178, 2357, 1179, 2359, 1180, 2361, 1181, 2363, 1182, 2365, 1183, 2367, 1184, 2369, 1185, 2371, 1186, 2373, 1187, 2375, 1188, 2377, 1189, 2379, 1190, 2381, 1191, 2383, 1192, 2385, 1193, 2387, 1194, 2389, 1195, 2391, 1196, 2393, 1197, 2395, 1198, 2397, 1199, 2399, 1200, 2401, 1201, 2403, 1202, 2405, 1203, 2407, 1204, 2409, 1205, 2411, 1206, 2413, 1207, 2415, 1208, 2417, 1209, 2419, 1210, 2421, 1211, 2423, 1212, 2425, 1213, 2427, 1214, 2429, 1215, 2431, 1216, 2433, 1217, 2435, 1218, 2437, 1219, 2439, 1220, 2441, 1221, 2443, 1222, 2445, 1223, 2447, 1224, 2449, 1225, 2451, 1226, 2453, 1227, 2455, 1228, 2457, 1229, 2459, 1230, 2461, 1231, 2463, 1232, 2465, 1233, 2467, 1234, 2469, 1235, 2471, 1236, 2473, 1237, 2475, 1238, 2477, 1239, 2479, 1240, 2481, 1241, 2483, 1242, 2485, 1243, 2487, 1244, 2489, 1245, 2491, 1246, 2493, 1247, 2495, 1248, 2497, 1249, 2499, 1250, 2501, 1251, 2503, 1252, 2505, 1253, 2507, 1254, 2509, 1255, 2511, 1256, 2513, 1257, 2515, 1258, 2517, 1259, 2519, 1260, 2521, 1261, 2523, 1262, 2525, 1263, 2527, 1264, 2529, 1265, 2531, 1266, 2533, 1267, 2535, 1268, 2537, 1269, 2539, 1270, 2541, 1271, 2543, 1272, 2545, 1273, 2547, 1274, 2549, 1275, 2551, 1276, 2553, 1277, 2555, 1278, 2557, 1279, 2559, 1280, 2561, 1281, 2563, 1282, 2565, 1283, 2567, 1284, 2569, 1285, 2571, 1286, 2573, 1287, 2575, 1288, 2577, 1289, 2579, 1290, 2581, 1291, 2583, 1292, 2585, 1293, 2587, 1294, 2589, 1295, 2591, 1296, 2593, 1297, 2595, 1298, 2597, 1299, 2599, 1300, 2601, 1301, 2603, 1302, 2605, 1303, 2607, 1304, 2609, 1305, 2611, 1306, 2613, 1307, 2615, 1308, 2617, 1309, 2619, 1310, 2621, 1311, 2623, 1312, 2625, 1313, 2627, 1314, 2629, 1315, 2631, 1316, 2633, 1317, 2635, 1318, 2637, 1319, 2639, 1320, 2641, 1321, 2643, 1322, 2645, 1323, 2647, 1324, 2649, 1325, 2651, 1326, 2653, 1327, 2655, 1328, 2657, 1329, 2659, 1330, 2661, 1331, 2663, 1332, 2665, 1333, 2667, 1334, 2669, 1335, 2671, 1336, 2673, 1337, 2675, 1338, 2677, 1339, 2679, 1340, 2681, 1341, 2683, 1342, 2685, 1343, 2687, 1344, 2689, 1345, 2691, 1346, 2693, 1347, 2695, 1348, 2697, 1349, 2699, 1350, 2701, 1351, 2703, 1352, 2705, 1353, 2707, 1354, 2709, 1355, 2711, 1356, 2713, 1357, 2715, 1358, 2717, 1359, 2719, 1360, 2721, 1361, 2723, 1362, 2725, 1363, 2727, 1364, 2729, 1365, 2731, 1366, 2733, 1367, 2735, 1368, 2737, 1369, 2739, 1370, 2741, 1371, 2743, 1372, 2745, 1373, 2747, 1374, 2749, 1375, 2751, 1376, 2753, 1377, 2755, 1378, 2757, 1379, 2759, 1380, 2761, 1381, 2763, 1382, 2765, 1383, 2767, 1384, 2769, 1385, 2771, 1386, 2773, 1387, 2775, 1388, 2777, 1389, 2779, 1390, 2781, 1391, 2783, 1392, 2785, 1393, 2787, 1394, 2789, 1395, 2791, 1396, 2793, 1397, 2795, 1398, 2797, 1399, 2799, 1400, 2801, 1401, 2803, 1402, 2805, 1403, 2807, 1404, 2809, 1405, 2811, 1406, 2813, 1407, 2815, 1408, 2817, 1409, 2819, 1410, 2821, 1411, 2823, 1412, 2825, 1413, 2827, 1414, 2829, 1415, 2831, 1416, 2833, 1417, 2835, 1418, 2837, 1419, 2839, 1420, 2841, 1421, 2843, 1422, 2845, 1423, 2847, 1424, 2849, 1425, 2851, 1426, 2853, 1427, 2855, 1428, 2857, 1429, 2859, 1430, 2861, 1431, 2863, 1432, 2865, 1433, 2867, 1434, 2869, 1435, 2871, 1436, 2873, 1437, 2875, 1438, 2877, 1439, 2879, 1440, 2881, 1441, 2883, 1442, 2885, 1443, 2887, 1444, 2889, 1445, 2891, 1446, 2893, 1447, 2895, 1448, 2897, 1449, 2899, 1450, 2901, 1451, 2903, 1452, 2905, 1453, 2907, 1454, 2909, 1455, 2911, 1456, 2913, 1457, 2915, 1458, 2917, 1459, 2919, 1460, 2921, 1461, 2923, 1462, 2925, 1463, 2927, 1464, 2929, 1465, 2931, 1466, 2933, 1467, 2935, 1468, 2937, 1469, 2939, 1470, 2941, 1471, 2943, 1472, 2945, 1473, 2947, 1474, 2949, 1475, 2951, 1476, 2953, 1477, 2955, 1478, 2957, 1479, 2959, 1480, 2961, 1481, 2963, 1482, 2965, 1483, 2967, 1484, 2969, 1485, 2971, 1486, 2973, 1487, 2975, 1488, 2977, 1489, 2979, 1490, 2981, 1491, 2983, 1492, 2985, 1493, 2987, 1494, 2989, 1495, 2991, 1496, 2993, 1497, 2995, 1498, 2997, 1499, 2999, 1500, 3001, 1501, 3003, 1502, 3005, 1503, 3007, 1504, 3009, 1505, 3011, 1506, 3013, 1507, 3015, 1508, 3017, 1509, 3019, 1510, 3021, 1511, 3023, 1512, 3025, 1513, 3027, 1514, 3029, 1515, 3031, 1516, 3033, 1517, 3035, 1518, 3037, 1519, 3039, 1520, 3041, 1521, 3043, 1522, 3045, 1523, 3047, 1524, 3049, 1525, 3051, 1526, 3053, 1527, 3055, 1528, 3057, 1529, 3059, 1530, 3061, 1531, 3063, 1532, 3065, 1533, 3067, 1534, 3069, 1535, 3071, 1536, 3073, 1537, 3075, 1538, 3077, 1539, 3079, 1540, 3081, 1541, 3083, 1542, 3085, 1543, 3087, 1544, 3089, 1545, 3091, 1546, 3093, 1547, 3095, 1548, 3097, 1549, 3099, 1550, 3101, 1551, 3103, 1552, 3105, 1553, 3107, 1554, 3109, 1555, 3111, 1556, 3113, 1557, 3115, 1558, 3117, 1559, 3119, 1560, 3121, 1561, 3123, 1562, 3125, 1563, 3127, 1564, 3129, 1565, 3131, 1566, 3133, 1567, 3135, 1568, 3137, 1569, 3139, 1570, 3141, 1571, 3143, 1572, 3145, 1573, 3147, 1574, 3149, 1575, 3151, 1576, 3153, 1577, 3155, 1578, 3157, 1579, 3159, 1580, 3161, 1581, 3163, 1582, 3165, 1583, 3167, 1584, 3169, 1585, 3171, 1586, 3173, 1587, 3175, 1588, 3177, 1589, 3179, 1590, 3181, 1591, 3183, 1592, 3185, 1593, 3187, 1594, 3189, 1595, 3191, 1596, 3193, 1597, 3195, 1598, 3197, 1599, 3199, 1600, 3201, 1601, 3203, 1602, 3205, 1603, 3207, 1604, 3209, 1605, 3211, 1606, 3213, 1607, 3215, 1608, 3217, 1609, 3219, 1610, 3221, 1611, 3223, 1612, 3225, 1613, 3227, 1614, 3229, 1615, 3231, 1616, 3233, 1617, 3235, 1618, 3237, 1619, 3239, 1620, 3241, 1621, 3243, 1622, 3245, 1623, 3247, 1624, 3249, 1625, 3251, 1626, 3253, 1627, 3255, 1628, 3257, 1629, 3259, 1630, 3261, 1631, 3263, 1632, 3265, 1633, 3267, 1634, 3269, 1635, 3271, 1636, 3273, 1637, 3275, 1638, 3277, 1639, 3279, 1640, 3281, 1641, 3283, 1642, 3285, 1643, 3287, 1644, 3289, 1645, 3291, 1646, 3293, 1647, 3295, 1648, 3297, 1649, 3299, 1650, 3301, 1651, 3303, 1652, 3305, 1653, 3307, 1654, 3309, 1655, 3311, 1656, 3313, 1657, 3315, 1658, 3317, 1659, 3319, 1660, 3321, 1661, 3323, 1662, 3325, 1663, 3327, 1664, 3329, 1665, 3331, 1666, 3333, 1667, 3335, 1668, 3337, 1669, 3339, 1670, 3341, 1671, 3343, 1672, 3345, 1673, 3347, 1674, 3349, 1675, 3351, 1676, 3353, 1677, 3355, 1678, 3357, 1679, 3359, 1680, 3361, 1681, 3363, 1682, 3365, 1683, 3367, 1684, 3369, 1685, 3371, 1686, 3373, 1687, 3375, 1688, 3377, 1689, 3379, 1690, 3381, 1691, 3383, 1692, 3385, 1693, 3387, 1694, 3389, 1695, 3391, 1696, 3393, 1697, 3395, 1698, 3397, 1699, 3399, 1700, 3401, 1701, 3403, 1702, 3405, 1703, 3407, 1704, 3409, 1705, 3411, 1706, 3413, 1707, 3415, 1708, 3417, 1709, 3419, 1710, 3421, 1711, 3423, 1712, 3425, 1713, 3427, 1714, 3429, 1715, 3431, 1716, 3433, 1717, 3435, 1718, 3437, 1719, 3439, 1720, 3441, 1721, 3443, 1722, 3445, 1723, 3447, 1724, 3449, 1725, 3451, 1726, 3453, 1727, 3455, 1728, 3457, 1729, 3459, 1730, 3461, 1731, 3463, 1732, 3465, 1733, 3467, 1734, 3469, 1735, 3471, 1736, 3473, 1737, 3475, 1738, 3477, 1739, 3479, 1740, 3481, 1741, 3483, 1742, 3485, 1743, 3487, 1744, 3489, 1745, 3491, 1746, 3493, 1747, 3495, 1748, 3497, 1749, 3499, 1750, 3501, 1751, 3503, 1752, 3505, 1753, 3507, 1754, 3509, 1755, 3511, 1756, 3513, 1757, 3515, 1758, 3517, 1759, 3519, 1760, 3521, 1761, 3523, 1762, 3525, 1763, 3527, 1764, 3529, 1765, 3531, 1766, 3533, 1767, 3535, 1768, 3537, 1769, 3539, 1770, 3541, 1771, 3543, 1772, 3545, 1773, 3547, 1774, 3549, 1775, 3551, 1776, 3553, 1777, 3555, 1778, 3557, 1779, 3559, 1780, 3561, 1781, 3563, 1782, 3565, 1783, 3567, 1784, 3569, 1785, 3571, 1786, 3573, 1787, 3575, 1788, 3577, 1789, 3579, 1790, 3581, 1791, 3583, 1792, 3585, 1793, 3587, 1794, 3589, 1795, 3591, 1796, 3593, 1797, 3595, 1798, 3597, 1799, 3599, 1800, 3601, 1801, 3603, 1802, 3605, 1803, 3607, 1804, 3609, 1805, 3611, 1806, 3613, 1807, 3615, 1808, 3617, 1809, 3619, 1810, 3621, 1811, 3623, 1812, 3625, 1813, 3627, 1814, 3629, 1815, 3631, 1816, 3633, 1817, 3635, 1818, 3637, 1819, 3639, 1820, 3641, 1821, 3643, 1822, 3645, 1823, 3647, 1824, 3649, 1825, 3651, 1826, 3653, 1827, 3655, 1828, 3657, 1829, 3659, 1830, 3661, 1831, 3663, 1832, 3665, 1833, 3667, 1834, 3669, 1835, 3671, 1836, 3673, 1837, 3675, 1838, 3677, 1839, 3679, 1840, 3681, 1841, 3683, 1842, 3685, 1843, 3687, 1844, 3689, 1845, 3691, 1846, 3693, 1847, 3695, 1848, 3697, 1849, 3699, 1850, 3701, 1851, 3703, 1852, 3705, 1853, 3707, 1854, 3709, 1855, 3711, 1856, 3713, 1857, 3715, 1858, 3717, 1859, 3719, 1860, 3721, 1861, 3723, 1862, 3725, 1863, 3727, 1864, 3729, 1865, 3731, 1866, 3733, 1867, 3735, 1868, 3737, 1869, 3739, 1870, 3741, 1871, 3743, 1872, 3745, 1873, 3747, 1874, 3749, 1875, 3751, 1876, 3753, 1877, 3755, 1878, 3757, 1879, 3759, 1880, 3761, 1881, 3763, 1882, 3765, 1883, 3767, 1884, 3769, 1885, 3771, 1886, 3773, 1887, 3775, 1888, 3777, 1889, 3779, 1890, 3781, 1891, 3783, 1892, 3785, 1893, 3787, 1894, 3789, 1895, 3791, 1896, 3793, 1897, 3795, 1898, 3797, 1899, 3799, 1900, 3801, 1901, 3803, 1902, 3805, 1903, 3807, 1904, 3809, 1905, 3811, 1906, 3813, 1907, 3815, 1908, 3817, 1909, 3819, 1910, 3821, 1911, 3823, 1912, 3825, 1913, 3827, 1914, 3829, 1915, 3831, 1916, 3833, 1917, 3835, 1918, 3837, 1919, 3839, 1920, 3841, 1921, 3843, 1922, 3845, 1923, 3847, 1924, 3849, 1925, 3851, 1926, 3853, 1927, 3855, 1928, 3857, 1929, 3859, 1930, 3861, 1931, 3863, 1932, 3865, 1933, 3867, 1934, 3869, 1935, 3871, 1936, 3873, 1937, 3875, 1938, 3877, 1939, 3879, 1940, 3881, 1941, 3883, 1942, 3885, 1943, 3887, 1944, 3889, 1945, 3891, 1946, 3893, 1947, 3895, 1948, 3897, 1949, 3899, 1950, 3901, 1951, 3903, 1952, 3905, 1953, 3907, 1954, 3909, 1955, 3911, 1956, 3913, 1957, 3915, 1958, 3917, 1959, 3919, 1960, 3921, 1961, 3923, 1962, 3925, 1963, 3927, 1964, 3929, 1965, 3931, 1966, 3933, 1967, 3935, 1968, 3937, 1969, 3939, 1970, 3941, 1971, 3943, 1972, 3945, 1973, 3947, 1974, 3949, 1975, 3951, 1976, 3953, 1977, 3955, 1978, 3957, 1979, 3959, 1980, 3961, 1981, 3963, 1982, 3965, 1983, 3967, 1984, 3969, 1985, 3971, 1986, 3973, 1987, 3975, 1988, 3977, 1989, 3979, 1990, 3981, 1991, 3983, 1992, 3985, 1993, 3987, 1994, 3989, 1995, 3991, 1996, 3993, 1997, 3995, 1998, 3997, 1999, 3999, 2000, 4001, 2001, 4003, 2002, 4005, 2003, 4007, 2004, 4009, 2005, 4011, 2006, 4013, 2007, 4015, 2008, 4017, 2009, 4019, 2010, 4021, 2011, 4023, 2012, 4025, 2013, 4027, 2014, 4029, 2015, 4031, 2016, 4033, 2017, 4035, 2018, 4037, 2019, 4039, 2020, 4041, 2021, 4043, 2022, 4045, 2023, 4047, 2024, 4049, 2025, 4051, 2026, 4053, 2027, 4055, 2028, 4057, 2029, 4059, 2030, 4061, 2031, 4063, 2032, 4065, 2033, 4067, 2034, 4069, 2035, 4071, 2036, 4073, 2037, 4075, 2038, 4077, 2039, 4079, 2040, 4081, 2041, 4083, 2042, 4085, 2043, 4087, 2044, 4089, 2045, 4091, 2046, 4093, 2047, 4095, 2048, 4097, 2049, 4099, 2050, 4101, 2051, 4103, 2052, 4105, 2053, 4107, 2054, 4109, 2055, 4111, 2056, 4113, 2057, 4115, 2058, 4117, 2059, 4119, 2060, 4121, 2061, 4123, 2062, 4125, 2063, 4127, 2064, 4129, 2065, 4131, 2066, 4133, 2067, 4135, 2068, 4137, 2069, 4139, 2070, 4141, 2071, 4143, 2072, 4145, 2073, 4147, 2074, 4149, 2075, 4151, 2076, 4153, 2077, 4155, 2078, 4157, 2079, 4159, 2080, 4161, 2081, 4163, 2082, 4165, 2083, 4167, 2084, 4169, 2085, 4171, 2086, 4173, 2087, 4175, 2088, 4177, 2089, 4179, 2090, 4181, 2091, 4183, 2092, 4185, 2093, 4187, 2094, 4189, 2095, 4191, 2096, 4193, 2097, 4195, 2098, 4197, 2099, 4199, 2100, 4201, 2101, 4203, 2102, 4205, 2103, 4207, 2104, 4209, 2105, 4211, 2106, 4213, 2107, 4215, 2108, 4217, 2109, 4219, 2110, 4221, 2111, 4223, 2112, 4225, 2113, 4227, 2114, 4229, 2115, 4231, 2116, 4233, 2117, 4235, 2118, 4237, 2119, 4239, 2120, 4241, 2121, 4243, 2122, 4245, 2123, 4247, 2124, 4249, 2125, 4251, 2126, 4253, 2127, 4255, 2128, 4257, 2129, 4259, 2130, 4261, 2131, 4263, 2132, 4265, 2133, 4267, 2134, 4269, 2135, 4271, 2136, 4273, 2137, 4275, 2138, 4277, 2139, 4279, 2140, 4281, 2141, 4283, 2142, 4285, 2143, 4287, 2144, 4289, 2145, 4291, 2146, 4293, 2147, 4295, 2148, 4297, 2149, 4299, 2150, 4301, 2151, 4303, 2152, 4305, 2153, 4307, 2154, 4309, 2155, 4311, 2156, 4313, 2157, 4315, 2158, 4317, 2159, 4319, 2160, 4321, 2161, 4323, 2162, 4325, 2163, 4327, 2164, 4329, 2165, 4331, 2166, 4333, 2167, 4335, 2168, 4337, 2169, 4339, 2170, 4341, 2171, 4343, 2172, 4345, 2173, 4347, 2174, 4349, 2175, 4351, 2176, 4353, 2177, 4355, 2178, 4357, 2179, 4359, 2180, 4361, 2181, 4363, 2182, 4365, 2183, 4367, 2184, 4369, 2185, 4371, 2186, 4373, 2187, 4375, 2188, 4377, 2189, 4379, 2190, 4381, 2191, 4383, 2192, 4385, 2193, 4387, 2194, 4389, 2195, 4391, 2196, 4393, 2197, 4395, 2198, 4397, 2199, 4399, 2200, 4401, 2201, 4403, 2202, 4405, 2203, 4407, 2204, 4409, 2205, 4411, 2206, 4413, 2207, 4415, 2208, 4417, 2209, 4419, 2210, 4421, 2211, 4423, 2212, 4425, 2213, 4427, 2214, 4429, 2215, 4431, 2216, 4433, 2217, 4435, 2218, 4437, 2219, 4439, 2220, 4441, 2221, 4443, 2222, 4445, 2223, 4447, 2224, 4449, 2225, 4451, 2226, 4453, 2227, 4455, 2228, 4457, 2229, 4459, 2230, 4461, 2231, 4463, 2232, 4465, 2233, 4467, 2234, 4469, 2235, 4471, 2236, 4473, 2237, 4475, 2238, 4477, 2239, 4479, 2240, 4481, 2241, 4483, 2242, 4485, 2243, 4487, 2244, 4489, 2245, 4491, 2246, 4493, 2247, 4495, 2248, 4497, 2249, 4499, 2250, 4501, 2251, 4503, 2252, 4505, 2253, 4507, 2254, 4509, 2255, 4511, 2256, 4513, 2257, 4515, 2258, 4517, 2259, 4519, 2260, 4521, 2261, 4523, 2262, 4525, 2263, 4527, 2264, 4529, 2265, 4531, 2266, 4533, 2267, 4535, 2268, 4537, 2269, 4539, 2270, 4541, 2271, 4543, 2272, 4545, 2273, 4547, 2274, 4549, 2275, 4551, 2276, 4553, 2277, 4555, 2278, 4557, 2279, 4559, 2280, 4561, 2281, 4563, 2282, 4565, 2283, 4567, 2284, 4569, 2285, 4571, 2286, 4573, 2287, 4575, 2288, 4577, 2289, 4579, 2290, 4581, 2291, 4583, 2292, 4585, 2293, 4587, 2294, 4589, 2295, 4591, 2296, 4593, 2297, 4595, 2298, 4597, 2299, 4599, 2300, 4601, 2301, 4603, 2302, 4605, 2303, 4607, 2304, 4609, 2305, 4611, 2306, 4613, 2307, 4615, 2308, 4617, 2309, 4619, 2310, 4621, 2311, 4623, 2312, 4625, 2313, 4627, 2314, 4629, 2315, 4631, 2316, 4633, 2317, 4635, 2318, 4637, 2319, 4639, 2320, 4641, 2321, 4643, 2322, 4645, 2323, 4647, 2324, 4649, 2325, 4651, 2326, 4653, 2327, 4655, 2328, 4657, 2329, 4659, 2330, 4661, 2331, 4663, 2332, 4665, 2333, 4667, 2334, 4669, 2335, 4671, 2336, 4673, 2337, 4675, 2338, 4677, 2339, 4679, 2340, 4681, 2341, 4683, 2342, 4685, 2343, 4687, 2344, 4689, 2345, 4691, 2346, 4693, 2347, 4695, 2348, 4697, 2349, 4699, 2350, 4701, 2351, 4703, 2352, 4705, 2353, 4707, 2354, 4709, 2355, 4711, 2356, 4713, 2357, 4715, 2358, 4717, 2359, 4719, 2360, 4721, 2361, 4723, 2362, 4725, 2363, 4727, 2364, 4729, 2365, 4731, 2366, 4733, 2367, 4735, 2368, 4737, 2369, 4739, 2370, 4741, 2371, 4743, 2372, 4745, 2373, 4747, 2374, 4749, 2375, 4751, 2376, 4753, 2377, 4755, 2378, 4757, 2379, 4759, 2380, 4761, 2381, 4763, 2382, 4765, 2383, 4767, 2384, 4769, 2385, 4771, 2386, 4773, 2387, 4775, 2388, 4777, 2389, 4779, 2390, 4781, 2391, 4783, 2392, 4785, 2393, 4787, 2394, 4789, 2395, 4791, 2396, 4793, 2397, 4795, 2398, 4797, 2399, 4799, 2400, 4801, 2401, 4803, 2402, 4805, 2403, 4807, 2404, 4809, 2405, 4811, 2406, 4813, 2407, 4815, 2408, 4817, 2409, 4819, 2410, 4821, 2411, 4823, 2412, 4825, 2413, 4827, 2414, 4829, 2415, 4831, 2416, 4833, 2417, 4835, 2418, 4837, 2419, 4839, 2420, 4841, 2421, 4843, 2422, 4845, 2423, 4847, 2424, 4849, 2425, 4851, 2426, 4853, 2427, 4855, 2428, 4857, 2429, 4859, 2430, 4861, 2431, 4863, 2432, 4865, 2433, 4867, 2434, 4869, 2435, 4871, 2436, 4873, 2437, 4875, 2438, 4877, 2439, 4879, 2440, 4881, 2441, 4883, 0, 4885, 0, 4887, 0, 4889, 0, 4891, 0, 4893, 0, 4895, 0, 4897, 0, 4899, 0, 4901, 0, 4903, 0, 4905, 0, 4907, 2442, 4909, 2443, 4911, 2444, 4913, 2445, 4915, 2446, 4917, 2447, 4919, 2448, 4921, 2449, 4923, 2450, 4925, 2451, 4927, 2452, 4929, 2453, 4931, 2454, 4933, 2455, 4935, 2456, 4937, 2457, 4939, 2458, 4941, 2459, 4943, 2460, 4945, 2461, 4947, 2462, 4949, 2463, 4951, 2464, 4953, 2465, 4955, 2466, 4957, 2467, 4959, 2468, 4961, 2469, 4963, 2470, 4965, 2471, 4967, 2472, 4969, 2473, 4971, 2474, 4973, 2475, 4975, 2476, 4977, 2477, 4979, 2478, 4981, 2479, 4983, 2480, 4985, 0, 4987, 0, 4989, 0, 4991, 0, 4993, 0, 4995, 0, 1, 0, 39, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 79, 79, 111, 111, 2, 0, 82, 82, 114, 114, 2, 0, 84, 84, 116, 116, 2, 0, 83, 83, 115, 115, 2, 0, 69, 69, 101, 101, 2, 0, 78, 78, 110, 110, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 73, 73, 105, 105, 2, 0, 76, 76, 108, 108, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 77, 77, 109, 109, 2, 0, 80, 80, 112, 112, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 89, 89, 121, 121, 2, 0, 72, 72, 104, 104, 2, 0, 74, 74, 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 87, 87, 119, 119, 2, 0, 90, 90, 122, 122, 2, 0, 81, 81, 113, 113, 2, 0, 88, 88, 120, 120, 3, 0, 10, 10, 13, 13, 39, 39, 1, 0, 48, 49, 3, 0, 48, 57, 65, 70, 97, 102, 1, 0, 48, 57, 2, 0, 43, 43, 45, 45, 4, 0, 68, 68, 70, 70, 100, 100, 102, 102, 2, 0, 0, 0, 34, 34, 2, 0, 48, 57, 95, 95, 2, 0, 10, 10, 13, 13, 3, 0, 35, 36, 48, 57, 95, 95, 3, 0, 9, 10, 13, 13, 32, 32, 659, 0, 65, 90, 97, 122, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 895, 895, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1488, 1514, 1519, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2144, 2154, 2160, 2183, 2185, 2190, 2208, 2249, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2432, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2556, 2556, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2809, 2809, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3133, 3160, 3162, 3165, 3165, 3168, 3169, 3200, 3200, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3293, 3294, 3296, 3297, 3313, 3314, 3332, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3412, 3414, 3423, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5873, 5880, 5888, 5905, 5919, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6264, 6272, 6276, 6279, 6312, 6314, 6314, 6320, 6389, 6400, 6430, 6480, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6988, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7401, 7404, 7406, 7411, 7413, 7414, 7418, 7418, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8579, 8580, 11264, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12294, 12337, 12341, 12347, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12735, 12784, 12799, 13312, 19903, 19968, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42653, 42656, 42725, 42775, 42783, 42786, 42888, 42891, 42954, 42960, 42961, 42963, 42963, 42965, 42969, 42994, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43261, 43262, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43488, 43492, 43494, 43503, 43514, 43518, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43646, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43881, 43888, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 66176, 66204, 66208, 66256, 66304, 66335, 66349, 66368, 66370, 66377, 66384, 66421, 66432, 66461, 66464, 66499, 66504, 66511, 66560, 66717, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66928, 66938, 66940, 66954, 66956, 66962, 66964, 66965, 66967, 66977, 66979, 66993, 66995, 67001, 67003, 67004, 67072, 67382, 67392, 67413, 67424, 67431, 67456, 67461, 67463, 67504, 67506, 67514, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68096, 68112, 68115, 68117, 68119, 68121, 68149, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68324, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68899, 69248, 69289, 69296, 69297, 69376, 69404, 69415, 69415, 69424, 69445, 69488, 69505, 69552, 69572, 69600, 69622, 69635, 69687, 69745, 69746, 69749, 69749, 69763, 69807, 69840, 69864, 69891, 69926, 69956, 69956, 69959, 69959, 69968, 70002, 70006, 70006, 70019, 70066, 70081, 70084, 70106, 70106, 70108, 70108, 70144, 70161, 70163, 70187, 70207, 70208, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70366, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70461, 70461, 70480, 70480, 70493, 70497, 70656, 70708, 70727, 70730, 70751, 70753, 70784, 70831, 70852, 70853, 70855, 70855, 71040, 71086, 71128, 71131, 71168, 71215, 71236, 71236, 71296, 71338, 71352, 71352, 71424, 71450, 71488, 71494, 71680, 71723, 71840, 71903, 71935, 71942, 71945, 71945, 71948, 71955, 71957, 71958, 71960, 71983, 71999, 71999, 72001, 72001, 72096, 72103, 72106, 72144, 72161, 72161, 72163, 72163, 72192, 72192, 72203, 72242, 72250, 72250, 72272, 72272, 72284, 72329, 72349, 72349, 72368, 72440, 72704, 72712, 72714, 72750, 72768, 72768, 72818, 72847, 72960, 72966, 72968, 72969, 72971, 73008, 73030, 73030, 73056, 73061, 73063, 73064, 73066, 73097, 73112, 73112, 73440, 73458, 73474, 73474, 73476, 73488, 73490, 73523, 73648, 73648, 73728, 74649, 74880, 75075, 77712, 77808, 77824, 78895, 78913, 78918, 82944, 83526, 92160, 92728, 92736, 92766, 92784, 92862, 92880, 92909, 92928, 92975, 92992, 92995, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94032, 94032, 94099, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101589, 101632, 101640, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 122624, 122654, 122661, 122666, 122928, 122989, 123136, 123180, 123191, 123197, 123214, 123214, 123536, 123565, 123584, 123627, 124112, 124139, 124896, 124902, 124904, 124907, 124909, 124910, 124912, 124926, 124928, 125124, 125184, 125251, 125259, 125259, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173791, 173824, 177977, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 196608, 201546, 201552, 205743, 2, 0, 9, 9, 32, 32, 32474, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 0, 461, 1, 0, 0, 0, 0, 463, 1, 0, 0, 0, 0, 465, 1, 0, 0, 0, 0, 467, 1, 0, 0, 0, 0, 469, 1, 0, 0, 0, 0, 471, 1, 0, 0, 0, 0, 473, 1, 0, 0, 0, 0, 475, 1, 0, 0, 0, 0, 477, 1, 0, 0, 0, 0, 479, 1, 0, 0, 0, 0, 481, 1, 0, 0, 0, 0, 483, 1, 0, 0, 0, 0, 485, 1, 0, 0, 0, 0, 487, 1, 0, 0, 0, 0, 489, 1, 0, 0, 0, 0, 491, 1, 0, 0, 0, 0, 493, 1, 0, 0, 0, 0, 495, 1, 0, 0, 0, 0, 497, 1, 0, 0, 0, 0, 499, 1, 0, 0, 0, 0, 501, 1, 0, 0, 0, 0, 503, 1, 0, 0, 0, 0, 505, 1, 0, 0, 0, 0, 507, 1, 0, 0, 0, 0, 509, 1, 0, 0, 0, 0, 511, 1, 0, 0, 0, 0, 513, 1, 0, 0, 0, 0, 515, 1, 0, 0, 0, 0, 517, 1, 0, 0, 0, 0, 519, 1, 0, 0, 0, 0, 521, 1, 0, 0, 0, 0, 523, 1, 0, 0, 0, 0, 525, 1, 0, 0, 0, 0, 527, 1, 0, 0, 0, 0, 529, 1, 0, 0, 0, 0, 531, 1, 0, 0, 0, 0, 533, 1, 0, 0, 0, 0, 535, 1, 0, 0, 0, 0, 537, 1, 0, 0, 0, 0, 539, 1, 0, 0, 0, 0, 541, 1, 0, 0, 0, 0, 543, 1, 0, 0, 0, 0, 545, 1, 0, 0, 0, 0, 547, 1, 0, 0, 0, 0, 549, 1, 0, 0, 0, 0, 551, 1, 0, 0, 0, 0, 553, 1, 0, 0, 0, 0, 555, 1, 0, 0, 0, 0, 557, 1, 0, 0, 0, 0, 559, 1, 0, 0, 0, 0, 561, 1, 0, 0, 0, 0, 563, 1, 0, 0, 0, 0, 565, 1, 0, 0, 0, 0, 567, 1, 0, 0, 0, 0, 569, 1, 0, 0, 0, 0, 571, 1, 0, 0, 0, 0, 573, 1, 0, 0, 0, 0, 575, 1, 0, 0, 0, 0, 577, 1, 0, 0, 0, 0, 579, 1, 0, 0, 0, 0, 581, 1, 0, 0, 0, 0, 583, 1, 0, 0, 0, 0, 585, 1, 0, 0, 0, 0, 587, 1, 0, 0, 0, 0, 589, 1, 0, 0, 0, 0, 591, 1, 0, 0, 0, 0, 593, 1, 0, 0, 0, 0, 595, 1, 0, 0, 0, 0, 597, 1, 0, 0, 0, 0, 599, 1, 0, 0, 0, 0, 601, 1, 0, 0, 0, 0, 603, 1, 0, 0, 0, 0, 605, 1, 0, 0, 0, 0, 607, 1, 0, 0, 0, 0, 609, 1, 0, 0, 0, 0, 611, 1, 0, 0, 0, 0, 613, 1, 0, 0, 0, 0, 615, 1, 0, 0, 0, 0, 617, 1, 0, 0, 0, 0, 619, 1, 0, 0, 0, 0, 621, 1, 0, 0, 0, 0, 623, 1, 0, 0, 0, 0, 625, 1, 0, 0, 0, 0, 627, 1, 0, 0, 0, 0, 629, 1, 0, 0, 0, 0, 631, 1, 0, 0, 0, 0, 633, 1, 0, 0, 0, 0, 635, 1, 0, 0, 0, 0, 637, 1, 0, 0, 0, 0, 639, 1, 0, 0, 0, 0, 641, 1, 0, 0, 0, 0, 643, 1, 0, 0, 0, 0, 645, 1, 0, 0, 0, 0, 647, 1, 0, 0, 0, 0, 649, 1, 0, 0, 0, 0, 651, 1, 0, 0, 0, 0, 653, 1, 0, 0, 0, 0, 655, 1, 0, 0, 0, 0, 657, 1, 0, 0, 0, 0, 659, 1, 0, 0, 0, 0, 661, 1, 0, 0, 0, 0, 663, 1, 0, 0, 0, 0, 665, 1, 0, 0, 0, 0, 667, 1, 0, 0, 0, 0, 669, 1, 0, 0, 0, 0, 671, 1, 0, 0, 0, 0, 673, 1, 0, 0, 0, 0, 675, 1, 0, 0, 0, 0, 677, 1, 0, 0, 0, 0, 679, 1, 0, 0, 0, 0, 681, 1, 0, 0, 0, 0, 683, 1, 0, 0, 0, 0, 685, 1, 0, 0, 0, 0, 687, 1, 0, 0, 0, 0, 689, 1, 0, 0, 0, 0, 691, 1, 0, 0, 0, 0, 693, 1, 0, 0, 0, 0, 695, 1, 0, 0, 0, 0, 697, 1, 0, 0, 0, 0, 699, 1, 0, 0, 0, 0, 701, 1, 0, 0, 0, 0, 703, 1, 0, 0, 0, 0, 705, 1, 0, 0, 0, 0, 707, 1, 0, 0, 0, 0, 709, 1, 0, 0, 0, 0, 711, 1, 0, 0, 0, 0, 713, 1, 0, 0, 0, 0, 715, 1, 0, 0, 0, 0, 717, 1, 0, 0, 0, 0, 719, 1, 0, 0, 0, 0, 721, 1, 0, 0, 0, 0, 723, 1, 0, 0, 0, 0, 725, 1, 0, 0, 0, 0, 727, 1, 0, 0, 0, 0, 729, 1, 0, 0, 0, 0, 731, 1, 0, 0, 0, 0, 733, 1, 0, 0, 0, 0, 735, 1, 0, 0, 0, 0, 737, 1, 0, 0, 0, 0, 739, 1, 0, 0, 0, 0, 741, 1, 0, 0, 0, 0, 743, 1, 0, 0, 0, 0, 745, 1, 0, 0, 0, 0, 747, 1, 0, 0, 0, 0, 749, 1, 0, 0, 0, 0, 751, 1, 0, 0, 0, 0, 753, 1, 0, 0, 0, 0, 755, 1, 0, 0, 0, 0, 757, 1, 0, 0, 0, 0, 759, 1, 0, 0, 0, 0, 761, 1, 0, 0, 0, 0, 763, 1, 0, 0, 0, 0, 765, 1, 0, 0, 0, 0, 767, 1, 0, 0, 0, 0, 769, 1, 0, 0, 0, 0, 771, 1, 0, 0, 0, 0, 773, 1, 0, 0, 0, 0, 775, 1, 0, 0, 0, 0, 777, 1, 0, 0, 0, 0, 779, 1, 0, 0, 0, 0, 781, 1, 0, 0, 0, 0, 783, 1, 0, 0, 0, 0, 785, 1, 0, 0, 0, 0, 787, 1, 0, 0, 0, 0, 789, 1, 0, 0, 0, 0, 791, 1, 0, 0, 0, 0, 793, 1, 0, 0, 0, 0, 795, 1, 0, 0, 0, 0, 797, 1, 0, 0, 0, 0, 799, 1, 0, 0, 0, 0, 801, 1, 0, 0, 0, 0, 803, 1, 0, 0, 0, 0, 805, 1, 0, 0, 0, 0, 807, 1, 0, 0, 0, 0, 809, 1, 0, 0, 0, 0, 811, 1, 0, 0, 0, 0, 813, 1, 0, 0, 0, 0, 815, 1, 0, 0, 0, 0, 817, 1, 0, 0, 0, 0, 819, 1, 0, 0, 0, 0, 821, 1, 0, 0, 0, 0, 823, 1, 0, 0, 0, 0, 825, 1, 0, 0, 0, 0, 827, 1, 0, 0, 0, 0, 829, 1, 0, 0, 0, 0, 831, 1, 0, 0, 0, 0, 833, 1, 0, 0, 0, 0, 835, 1, 0, 0, 0, 0, 837, 1, 0, 0, 0, 0, 839, 1, 0, 0, 0, 0, 841, 1, 0, 0, 0, 0, 843, 1, 0, 0, 0, 0, 845, 1, 0, 0, 0, 0, 847, 1, 0, 0, 0, 0, 849, 1, 0, 0, 0, 0, 851, 1, 0, 0, 0, 0, 853, 1, 0, 0, 0, 0, 855, 1, 0, 0, 0, 0, 857, 1, 0, 0, 0, 0, 859, 1, 0, 0, 0, 0, 861, 1, 0, 0, 0, 0, 863, 1, 0, 0, 0, 0, 865, 1, 0, 0, 0, 0, 867, 1, 0, 0, 0, 0, 869, 1, 0, 0, 0, 0, 871, 1, 0, 0, 0, 0, 873, 1, 0, 0, 0, 0, 875, 1, 0, 0, 0, 0, 877, 1, 0, 0, 0, 0, 879, 1, 0, 0, 0, 0, 881, 1, 0, 0, 0, 0, 883, 1, 0, 0, 0, 0, 885, 1, 0, 0, 0, 0, 887, 1, 0, 0, 0, 0, 889, 1, 0, 0, 0, 0, 891, 1, 0, 0, 0, 0, 893, 1, 0, 0, 0, 0, 895, 1, 0, 0, 0, 0, 897, 1, 0, 0, 0, 0, 899, 1, 0, 0, 0, 0, 901, 1, 0, 0, 0, 0, 903, 1, 0, 0, 0, 0, 905, 1, 0, 0, 0, 0, 907, 1, 0, 0, 0, 0, 909, 1, 0, 0, 0, 0, 911, 1, 0, 0, 0, 0, 913, 1, 0, 0, 0, 0, 915, 1, 0, 0, 0, 0, 917, 1, 0, 0, 0, 0, 919, 1, 0, 0, 0, 0, 921, 1, 0, 0, 0, 0, 923, 1, 0, 0, 0, 0, 925, 1, 0, 0, 0, 0, 927, 1, 0, 0, 0, 0, 929, 1, 0, 0, 0, 0, 931, 1, 0, 0, 0, 0, 933, 1, 0, 0, 0, 0, 935, 1, 0, 0, 0, 0, 937, 1, 0, 0, 0, 0, 939, 1, 0, 0, 0, 0, 941, 1, 0, 0, 0, 0, 943, 1, 0, 0, 0, 0, 945, 1, 0, 0, 0, 0, 947, 1, 0, 0, 0, 0, 949, 1, 0, 0, 0, 0, 951, 1, 0, 0, 0, 0, 953, 1, 0, 0, 0, 0, 955, 1, 0, 0, 0, 0, 957, 1, 0, 0, 0, 0, 959, 1, 0, 0, 0, 0, 961, 1, 0, 0, 0, 0, 963, 1, 0, 0, 0, 0, 965, 1, 0, 0, 0, 0, 967, 1, 0, 0, 0, 0, 969, 1, 0, 0, 0, 0, 971, 1, 0, 0, 0, 0, 973, 1, 0, 0, 0, 0, 975, 1, 0, 0, 0, 0, 977, 1, 0, 0, 0, 0, 979, 1, 0, 0, 0, 0, 981, 1, 0, 0, 0, 0, 983, 1, 0, 0, 0, 0, 985, 1, 0, 0, 0, 0, 987, 1, 0, 0, 0, 0, 989, 1, 0, 0, 0, 0, 991, 1, 0, 0, 0, 0, 993, 1, 0, 0, 0, 0, 995, 1, 0, 0, 0, 0, 997, 1, 0, 0, 0, 0, 999, 1, 0, 0, 0, 0, 1001, 1, 0, 0, 0, 0, 1003, 1, 0, 0, 0, 0, 1005, 1, 0, 0, 0, 0, 1007, 1, 0, 0, 0, 0, 1009, 1, 0, 0, 0, 0, 1011, 1, 0, 0, 0, 0, 1013, 1, 0, 0, 0, 0, 1015, 1, 0, 0, 0, 0, 1017, 1, 0, 0, 0, 0, 1019, 1, 0, 0, 0, 0, 1021, 1, 0, 0, 0, 0, 1023, 1, 0, 0, 0, 0, 1025, 1, 0, 0, 0, 0, 1027, 1, 0, 0, 0, 0, 1029, 1, 0, 0, 0, 0, 1031, 1, 0, 0, 0, 0, 1033, 1, 0, 0, 0, 0, 1035, 1, 0, 0, 0, 0, 1037, 1, 0, 0, 0, 0, 1039, 1, 0, 0, 0, 0, 1041, 1, 0, 0, 0, 0, 1043, 1, 0, 0, 0, 0, 1045, 1, 0, 0, 0, 0, 1047, 1, 0, 0, 0, 0, 1049, 1, 0, 0, 0, 0, 1051, 1, 0, 0, 0, 0, 1053, 1, 0, 0, 0, 0, 1055, 1, 0, 0, 0, 0, 1057, 1, 0, 0, 0, 0, 1059, 1, 0, 0, 0, 0, 1061, 1, 0, 0, 0, 0, 1063, 1, 0, 0, 0, 0, 1065, 1, 0, 0, 0, 0, 1067, 1, 0, 0, 0, 0, 1069, 1, 0, 0, 0, 0, 1071, 1, 0, 0, 0, 0, 1073, 1, 0, 0, 0, 0, 1075, 1, 0, 0, 0, 0, 1077, 1, 0, 0, 0, 0, 1079, 1, 0, 0, 0, 0, 1081, 1, 0, 0, 0, 0, 1083, 1, 0, 0, 0, 0, 1085, 1, 0, 0, 0, 0, 1087, 1, 0, 0, 0, 0, 1089, 1, 0, 0, 0, 0, 1091, 1, 0, 0, 0, 0, 1093, 1, 0, 0, 0, 0, 1095, 1, 0, 0, 0, 0, 1097, 1, 0, 0, 0, 0, 1099, 1, 0, 0, 0, 0, 1101, 1, 0, 0, 0, 0, 1103, 1, 0, 0, 0, 0, 1105, 1, 0, 0, 0, 0, 1107, 1, 0, 0, 0, 0, 1109, 1, 0, 0, 0, 0, 1111, 1, 0, 0, 0, 0, 1113, 1, 0, 0, 0, 0, 1115, 1, 0, 0, 0, 0, 1117, 1, 0, 0, 0, 0, 1119, 1, 0, 0, 0, 0, 1121, 1, 0, 0, 0, 0, 1123, 1, 0, 0, 0, 0, 1125, 1, 0, 0, 0, 0, 1127, 1, 0, 0, 0, 0, 1129, 1, 0, 0, 0, 0, 1131, 1, 0, 0, 0, 0, 1133, 1, 0, 0, 0, 0, 1135, 1, 0, 0, 0, 0, 1137, 1, 0, 0, 0, 0, 1139, 1, 0, 0, 0, 0, 1141, 1, 0, 0, 0, 0, 1143, 1, 0, 0, 0, 0, 1145, 1, 0, 0, 0, 0, 1147, 1, 0, 0, 0, 0, 1149, 1, 0, 0, 0, 0, 1151, 1, 0, 0, 0, 0, 1153, 1, 0, 0, 0, 0, 1155, 1, 0, 0, 0, 0, 1157, 1, 0, 0, 0, 0, 1159, 1, 0, 0, 0, 0, 1161, 1, 0, 0, 0, 0, 1163, 1, 0, 0, 0, 0, 1165, 1, 0, 0, 0, 0, 1167, 1, 0, 0, 0, 0, 1169, 1, 0, 0, 0, 0, 1171, 1, 0, 0, 0, 0, 1173, 1, 0, 0, 0, 0, 1175, 1, 0, 0, 0, 0, 1177, 1, 0, 0, 0, 0, 1179, 1, 0, 0, 0, 0, 1181, 1, 0, 0, 0, 0, 1183, 1, 0, 0, 0, 0, 1185, 1, 0, 0, 0, 0, 1187, 1, 0, 0, 0, 0, 1189, 1, 0, 0, 0, 0, 1191, 1, 0, 0, 0, 0, 1193, 1, 0, 0, 0, 0, 1195, 1, 0, 0, 0, 0, 1197, 1, 0, 0, 0, 0, 1199, 1, 0, 0, 0, 0, 1201, 1, 0, 0, 0, 0, 1203, 1, 0, 0, 0, 0, 1205, 1, 0, 0, 0, 0, 1207, 1, 0, 0, 0, 0, 1209, 1, 0, 0, 0, 0, 1211, 1, 0, 0, 0, 0, 1213, 1, 0, 0, 0, 0, 1215, 1, 0, 0, 0, 0, 1217, 1, 0, 0, 0, 0, 1219, 1, 0, 0, 0, 0, 1221, 1, 0, 0, 0, 0, 1223, 1, 0, 0, 0, 0, 1225, 1, 0, 0, 0, 0, 1227, 1, 0, 0, 0, 0, 1229, 1, 0, 0, 0, 0, 1231, 1, 0, 0, 0, 0, 1233, 1, 0, 0, 0, 0, 1235, 1, 0, 0, 0, 0, 1237, 1, 0, 0, 0, 0, 1239, 1, 0, 0, 0, 0, 1241, 1, 0, 0, 0, 0, 1243, 1, 0, 0, 0, 0, 1245, 1, 0, 0, 0, 0, 1247, 1, 0, 0, 0, 0, 1249, 1, 0, 0, 0, 0, 1251, 1, 0, 0, 0, 0, 1253, 1, 0, 0, 0, 0, 1255, 1, 0, 0, 0, 0, 1257, 1, 0, 0, 0, 0, 1259, 1, 0, 0, 0, 0, 1261, 1, 0, 0, 0, 0, 1263, 1, 0, 0, 0, 0, 1265, 1, 0, 0, 0, 0, 1267, 1, 0, 0, 0, 0, 1269, 1, 0, 0, 0, 0, 1271, 1, 0, 0, 0, 0, 1273, 1, 0, 0, 0, 0, 1275, 1, 0, 0, 0, 0, 1277, 1, 0, 0, 0, 0, 1279, 1, 0, 0, 0, 0, 1281, 1, 0, 0, 0, 0, 1283, 1, 0, 0, 0, 0, 1285, 1, 0, 0, 0, 0, 1287, 1, 0, 0, 0, 0, 1289, 1, 0, 0, 0, 0, 1291, 1, 0, 0, 0, 0, 1293, 1, 0, 0, 0, 0, 1295, 1, 0, 0, 0, 0, 1297, 1, 0, 0, 0, 0, 1299, 1, 0, 0, 0, 0, 1301, 1, 0, 0, 0, 0, 1303, 1, 0, 0, 0, 0, 1305, 1, 0, 0, 0, 0, 1307, 1, 0, 0, 0, 0, 1309, 1, 0, 0, 0, 0, 1311, 1, 0, 0, 0, 0, 1313, 1, 0, 0, 0, 0, 1315, 1, 0, 0, 0, 0, 1317, 1, 0, 0, 0, 0, 1319, 1, 0, 0, 0, 0, 1321, 1, 0, 0, 0, 0, 1323, 1, 0, 0, 0, 0, 1325, 1, 0, 0, 0, 0, 1327, 1, 0, 0, 0, 0, 1329, 1, 0, 0, 0, 0, 1331, 1, 0, 0, 0, 0, 1333, 1, 0, 0, 0, 0, 1335, 1, 0, 0, 0, 0, 1337, 1, 0, 0, 0, 0, 1339, 1, 0, 0, 0, 0, 1341, 1, 0, 0, 0, 0, 1343, 1, 0, 0, 0, 0, 1345, 1, 0, 0, 0, 0, 1347, 1, 0, 0, 0, 0, 1349, 1, 0, 0, 0, 0, 1351, 1, 0, 0, 0, 0, 1353, 1, 0, 0, 0, 0, 1355, 1, 0, 0, 0, 0, 1357, 1, 0, 0, 0, 0, 1359, 1, 0, 0, 0, 0, 1361, 1, 0, 0, 0, 0, 1363, 1, 0, 0, 0, 0, 1365, 1, 0, 0, 0, 0, 1367, 1, 0, 0, 0, 0, 1369, 1, 0, 0, 0, 0, 1371, 1, 0, 0, 0, 0, 1373, 1, 0, 0, 0, 0, 1375, 1, 0, 0, 0, 0, 1377, 1, 0, 0, 0, 0, 1379, 1, 0, 0, 0, 0, 1381, 1, 0, 0, 0, 0, 1383, 1, 0, 0, 0, 0, 1385, 1, 0, 0, 0, 0, 1387, 1, 0, 0, 0, 0, 1389, 1, 0, 0, 0, 0, 1391, 1, 0, 0, 0, 0, 1393, 1, 0, 0, 0, 0, 1395, 1, 0, 0, 0, 0, 1397, 1, 0, 0, 0, 0, 1399, 1, 0, 0, 0, 0, 1401, 1, 0, 0, 0, 0, 1403, 1, 0, 0, 0, 0, 1405, 1, 0, 0, 0, 0, 1407, 1, 0, 0, 0, 0, 1409, 1, 0, 0, 0, 0, 1411, 1, 0, 0, 0, 0, 1413, 1, 0, 0, 0, 0, 1415, 1, 0, 0, 0, 0, 1417, 1, 0, 0, 0, 0, 1419, 1, 0, 0, 0, 0, 1421, 1, 0, 0, 0, 0, 1423, 1, 0, 0, 0, 0, 1425, 1, 0, 0, 0, 0, 1427, 1, 0, 0, 0, 0, 1429, 1, 0, 0, 0, 0, 1431, 1, 0, 0, 0, 0, 1433, 1, 0, 0, 0, 0, 1435, 1, 0, 0, 0, 0, 1437, 1, 0, 0, 0, 0, 1439, 1, 0, 0, 0, 0, 1441, 1, 0, 0, 0, 0, 1443, 1, 0, 0, 0, 0, 1445, 1, 0, 0, 0, 0, 1447, 1, 0, 0, 0, 0, 1449, 1, 0, 0, 0, 0, 1451, 1, 0, 0, 0, 0, 1453, 1, 0, 0, 0, 0, 1455, 1, 0, 0, 0, 0, 1457, 1, 0, 0, 0, 0, 1459, 1, 0, 0, 0, 0, 1461, 1, 0, 0, 0, 0, 1463, 1, 0, 0, 0, 0, 1465, 1, 0, 0, 0, 0, 1467, 1, 0, 0, 0, 0, 1469, 1, 0, 0, 0, 0, 1471, 1, 0, 0, 0, 0, 1473, 1, 0, 0, 0, 0, 1475, 1, 0, 0, 0, 0, 1477, 1, 0, 0, 0, 0, 1479, 1, 0, 0, 0, 0, 1481, 1, 0, 0, 0, 0, 1483, 1, 0, 0, 0, 0, 1485, 1, 0, 0, 0, 0, 1487, 1, 0, 0, 0, 0, 1489, 1, 0, 0, 0, 0, 1491, 1, 0, 0, 0, 0, 1493, 1, 0, 0, 0, 0, 1495, 1, 0, 0, 0, 0, 1497, 1, 0, 0, 0, 0, 1499, 1, 0, 0, 0, 0, 1501, 1, 0, 0, 0, 0, 1503, 1, 0, 0, 0, 0, 1505, 1, 0, 0, 0, 0, 1507, 1, 0, 0, 0, 0, 1509, 1, 0, 0, 0, 0, 1511, 1, 0, 0, 0, 0, 1513, 1, 0, 0, 0, 0, 1515, 1, 0, 0, 0, 0, 1517, 1, 0, 0, 0, 0, 1519, 1, 0, 0, 0, 0, 1521, 1, 0, 0, 0, 0, 1523, 1, 0, 0, 0, 0, 1525, 1, 0, 0, 0, 0, 1527, 1, 0, 0, 0, 0, 1529, 1, 0, 0, 0, 0, 1531, 1, 0, 0, 0, 0, 1533, 1, 0, 0, 0, 0, 1535, 1, 0, 0, 0, 0, 1537, 1, 0, 0, 0, 0, 1539, 1, 0, 0, 0, 0, 1541, 1, 0, 0, 0, 0, 1543, 1, 0, 0, 0, 0, 1545, 1, 0, 0, 0, 0, 1547, 1, 0, 0, 0, 0, 1549, 1, 0, 0, 0, 0, 1551, 1, 0, 0, 0, 0, 1553, 1, 0, 0, 0, 0, 1555, 1, 0, 0, 0, 0, 1557, 1, 0, 0, 0, 0, 1559, 1, 0, 0, 0, 0, 1561, 1, 0, 0, 0, 0, 1563, 1, 0, 0, 0, 0, 1565, 1, 0, 0, 0, 0, 1567, 1, 0, 0, 0, 0, 1569, 1, 0, 0, 0, 0, 1571, 1, 0, 0, 0, 0, 1573, 1, 0, 0, 0, 0, 1575, 1, 0, 0, 0, 0, 1577, 1, 0, 0, 0, 0, 1579, 1, 0, 0, 0, 0, 1581, 1, 0, 0, 0, 0, 1583, 1, 0, 0, 0, 0, 1585, 1, 0, 0, 0, 0, 1587, 1, 0, 0, 0, 0, 1589, 1, 0, 0, 0, 0, 1591, 1, 0, 0, 0, 0, 1593, 1, 0, 0, 0, 0, 1595, 1, 0, 0, 0, 0, 1597, 1, 0, 0, 0, 0, 1599, 1, 0, 0, 0, 0, 1601, 1, 0, 0, 0, 0, 1603, 1, 0, 0, 0, 0, 1605, 1, 0, 0, 0, 0, 1607, 1, 0, 0, 0, 0, 1609, 1, 0, 0, 0, 0, 1611, 1, 0, 0, 0, 0, 1613, 1, 0, 0, 0, 0, 1615, 1, 0, 0, 0, 0, 1617, 1, 0, 0, 0, 0, 1619, 1, 0, 0, 0, 0, 1621, 1, 0, 0, 0, 0, 1623, 1, 0, 0, 0, 0, 1625, 1, 0, 0, 0, 0, 1627, 1, 0, 0, 0, 0, 1629, 1, 0, 0, 0, 0, 1631, 1, 0, 0, 0, 0, 1633, 1, 0, 0, 0, 0, 1635, 1, 0, 0, 0, 0, 1637, 1, 0, 0, 0, 0, 1639, 1, 0, 0, 0, 0, 1641, 1, 0, 0, 0, 0, 1643, 1, 0, 0, 0, 0, 1645, 1, 0, 0, 0, 0, 1647, 1, 0, 0, 0, 0, 1649, 1, 0, 0, 0, 0, 1651, 1, 0, 0, 0, 0, 1653, 1, 0, 0, 0, 0, 1655, 1, 0, 0, 0, 0, 1657, 1, 0, 0, 0, 0, 1659, 1, 0, 0, 0, 0, 1661, 1, 0, 0, 0, 0, 1663, 1, 0, 0, 0, 0, 1665, 1, 0, 0, 0, 0, 1667, 1, 0, 0, 0, 0, 1669, 1, 0, 0, 0, 0, 1671, 1, 0, 0, 0, 0, 1673, 1, 0, 0, 0, 0, 1675, 1, 0, 0, 0, 0, 1677, 1, 0, 0, 0, 0, 1679, 1, 0, 0, 0, 0, 1681, 1, 0, 0, 0, 0, 1683, 1, 0, 0, 0, 0, 1685, 1, 0, 0, 0, 0, 1687, 1, 0, 0, 0, 0, 1689, 1, 0, 0, 0, 0, 1691, 1, 0, 0, 0, 0, 1693, 1, 0, 0, 0, 0, 1695, 1, 0, 0, 0, 0, 1697, 1, 0, 0, 0, 0, 1699, 1, 0, 0, 0, 0, 1701, 1, 0, 0, 0, 0, 1703, 1, 0, 0, 0, 0, 1705, 1, 0, 0, 0, 0, 1707, 1, 0, 0, 0, 0, 1709, 1, 0, 0, 0, 0, 1711, 1, 0, 0, 0, 0, 1713, 1, 0, 0, 0, 0, 1715, 1, 0, 0, 0, 0, 1717, 1, 0, 0, 0, 0, 1719, 1, 0, 0, 0, 0, 1721, 1, 0, 0, 0, 0, 1723, 1, 0, 0, 0, 0, 1725, 1, 0, 0, 0, 0, 1727, 1, 0, 0, 0, 0, 1729, 1, 0, 0, 0, 0, 1731, 1, 0, 0, 0, 0, 1733, 1, 0, 0, 0, 0, 1735, 1, 0, 0, 0, 0, 1737, 1, 0, 0, 0, 0, 1739, 1, 0, 0, 0, 0, 1741, 1, 0, 0, 0, 0, 1743, 1, 0, 0, 0, 0, 1745, 1, 0, 0, 0, 0, 1747, 1, 0, 0, 0, 0, 1749, 1, 0, 0, 0, 0, 1751, 1, 0, 0, 0, 0, 1753, 1, 0, 0, 0, 0, 1755, 1, 0, 0, 0, 0, 1757, 1, 0, 0, 0, 0, 1759, 1, 0, 0, 0, 0, 1761, 1, 0, 0, 0, 0, 1763, 1, 0, 0, 0, 0, 1765, 1, 0, 0, 0, 0, 1767, 1, 0, 0, 0, 0, 1769, 1, 0, 0, 0, 0, 1771, 1, 0, 0, 0, 0, 1773, 1, 0, 0, 0, 0, 1775, 1, 0, 0, 0, 0, 1777, 1, 0, 0, 0, 0, 1779, 1, 0, 0, 0, 0, 1781, 1, 0, 0, 0, 0, 1783, 1, 0, 0, 0, 0, 1785, 1, 0, 0, 0, 0, 1787, 1, 0, 0, 0, 0, 1789, 1, 0, 0, 0, 0, 1791, 1, 0, 0, 0, 0, 1793, 1, 0, 0, 0, 0, 1795, 1, 0, 0, 0, 0, 1797, 1, 0, 0, 0, 0, 1799, 1, 0, 0, 0, 0, 1801, 1, 0, 0, 0, 0, 1803, 1, 0, 0, 0, 0, 1805, 1, 0, 0, 0, 0, 1807, 1, 0, 0, 0, 0, 1809, 1, 0, 0, 0, 0, 1811, 1, 0, 0, 0, 0, 1813, 1, 0, 0, 0, 0, 1815, 1, 0, 0, 0, 0, 1817, 1, 0, 0, 0, 0, 1819, 1, 0, 0, 0, 0, 1821, 1, 0, 0, 0, 0, 1823, 1, 0, 0, 0, 0, 1825, 1, 0, 0, 0, 0, 1827, 1, 0, 0, 0, 0, 1829, 1, 0, 0, 0, 0, 1831, 1, 0, 0, 0, 0, 1833, 1, 0, 0, 0, 0, 1835, 1, 0, 0, 0, 0, 1837, 1, 0, 0, 0, 0, 1839, 1, 0, 0, 0, 0, 1841, 1, 0, 0, 0, 0, 1843, 1, 0, 0, 0, 0, 1845, 1, 0, 0, 0, 0, 1847, 1, 0, 0, 0, 0, 1849, 1, 0, 0, 0, 0, 1851, 1, 0, 0, 0, 0, 1853, 1, 0, 0, 0, 0, 1855, 1, 0, 0, 0, 0, 1857, 1, 0, 0, 0, 0, 1859, 1, 0, 0, 0, 0, 1861, 1, 0, 0, 0, 0, 1863, 1, 0, 0, 0, 0, 1865, 1, 0, 0, 0, 0, 1867, 1, 0, 0, 0, 0, 1869, 1, 0, 0, 0, 0, 1871, 1, 0, 0, 0, 0, 1873, 1, 0, 0, 0, 0, 1875, 1, 0, 0, 0, 0, 1877, 1, 0, 0, 0, 0, 1879, 1, 0, 0, 0, 0, 1881, 1, 0, 0, 0, 0, 1883, 1, 0, 0, 0, 0, 1885, 1, 0, 0, 0, 0, 1887, 1, 0, 0, 0, 0, 1889, 1, 0, 0, 0, 0, 1891, 1, 0, 0, 0, 0, 1893, 1, 0, 0, 0, 0, 1895, 1, 0, 0, 0, 0, 1897, 1, 0, 0, 0, 0, 1899, 1, 0, 0, 0, 0, 1901, 1, 0, 0, 0, 0, 1903, 1, 0, 0, 0, 0, 1905, 1, 0, 0, 0, 0, 1907, 1, 0, 0, 0, 0, 1909, 1, 0, 0, 0, 0, 1911, 1, 0, 0, 0, 0, 1913, 1, 0, 0, 0, 0, 1915, 1, 0, 0, 0, 0, 1917, 1, 0, 0, 0, 0, 1919, 1, 0, 0, 0, 0, 1921, 1, 0, 0, 0, 0, 1923, 1, 0, 0, 0, 0, 1925, 1, 0, 0, 0, 0, 1927, 1, 0, 0, 0, 0, 1929, 1, 0, 0, 0, 0, 1931, 1, 0, 0, 0, 0, 1933, 1, 0, 0, 0, 0, 1935, 1, 0, 0, 0, 0, 1937, 1, 0, 0, 0, 0, 1939, 1, 0, 0, 0, 0, 1941, 1, 0, 0, 0, 0, 1943, 1, 0, 0, 0, 0, 1945, 1, 0, 0, 0, 0, 1947, 1, 0, 0, 0, 0, 1949, 1, 0, 0, 0, 0, 1951, 1, 0, 0, 0, 0, 1953, 1, 0, 0, 0, 0, 1955, 1, 0, 0, 0, 0, 1957, 1, 0, 0, 0, 0, 1959, 1, 0, 0, 0, 0, 1961, 1, 0, 0, 0, 0, 1963, 1, 0, 0, 0, 0, 1965, 1, 0, 0, 0, 0, 1967, 1, 0, 0, 0, 0, 1969, 1, 0, 0, 0, 0, 1971, 1, 0, 0, 0, 0, 1973, 1, 0, 0, 0, 0, 1975, 1, 0, 0, 0, 0, 1977, 1, 0, 0, 0, 0, 1979, 1, 0, 0, 0, 0, 1981, 1, 0, 0, 0, 0, 1983, 1, 0, 0, 0, 0, 1985, 1, 0, 0, 0, 0, 1987, 1, 0, 0, 0, 0, 1989, 1, 0, 0, 0, 0, 1991, 1, 0, 0, 0, 0, 1993, 1, 0, 0, 0, 0, 1995, 1, 0, 0, 0, 0, 1997, 1, 0, 0, 0, 0, 1999, 1, 0, 0, 0, 0, 2001, 1, 0, 0, 0, 0, 2003, 1, 0, 0, 0, 0, 2005, 1, 0, 0, 0, 0, 2007, 1, 0, 0, 0, 0, 2009, 1, 0, 0, 0, 0, 2011, 1, 0, 0, 0, 0, 2013, 1, 0, 0, 0, 0, 2015, 1, 0, 0, 0, 0, 2017, 1, 0, 0, 0, 0, 2019, 1, 0, 0, 0, 0, 2021, 1, 0, 0, 0, 0, 2023, 1, 0, 0, 0, 0, 2025, 1, 0, 0, 0, 0, 2027, 1, 0, 0, 0, 0, 2029, 1, 0, 0, 0, 0, 2031, 1, 0, 0, 0, 0, 2033, 1, 0, 0, 0, 0, 2035, 1, 0, 0, 0, 0, 2037, 1, 0, 0, 0, 0, 2039, 1, 0, 0, 0, 0, 2041, 1, 0, 0, 0, 0, 2043, 1, 0, 0, 0, 0, 2045, 1, 0, 0, 0, 0, 2047, 1, 0, 0, 0, 0, 2049, 1, 0, 0, 0, 0, 2051, 1, 0, 0, 0, 0, 2053, 1, 0, 0, 0, 0, 2055, 1, 0, 0, 0, 0, 2057, 1, 0, 0, 0, 0, 2059, 1, 0, 0, 0, 0, 2061, 1, 0, 0, 0, 0, 2063, 1, 0, 0, 0, 0, 2065, 1, 0, 0, 0, 0, 2067, 1, 0, 0, 0, 0, 2069, 1, 0, 0, 0, 0, 2071, 1, 0, 0, 0, 0, 2073, 1, 0, 0, 0, 0, 2075, 1, 0, 0, 0, 0, 2077, 1, 0, 0, 0, 0, 2079, 1, 0, 0, 0, 0, 2081, 1, 0, 0, 0, 0, 2083, 1, 0, 0, 0, 0, 2085, 1, 0, 0, 0, 0, 2087, 1, 0, 0, 0, 0, 2089, 1, 0, 0, 0, 0, 2091, 1, 0, 0, 0, 0, 2093, 1, 0, 0, 0, 0, 2095, 1, 0, 0, 0, 0, 2097, 1, 0, 0, 0, 0, 2099, 1, 0, 0, 0, 0, 2101, 1, 0, 0, 0, 0, 2103, 1, 0, 0, 0, 0, 2105, 1, 0, 0, 0, 0, 2107, 1, 0, 0, 0, 0, 2109, 1, 0, 0, 0, 0, 2111, 1, 0, 0, 0, 0, 2113, 1, 0, 0, 0, 0, 2115, 1, 0, 0, 0, 0, 2117, 1, 0, 0, 0, 0, 2119, 1, 0, 0, 0, 0, 2121, 1, 0, 0, 0, 0, 2123, 1, 0, 0, 0, 0, 2125, 1, 0, 0, 0, 0, 2127, 1, 0, 0, 0, 0, 2129, 1, 0, 0, 0, 0, 2131, 1, 0, 0, 0, 0, 2133, 1, 0, 0, 0, 0, 2135, 1, 0, 0, 0, 0, 2137, 1, 0, 0, 0, 0, 2139, 1, 0, 0, 0, 0, 2141, 1, 0, 0, 0, 0, 2143, 1, 0, 0, 0, 0, 2145, 1, 0, 0, 0, 0, 2147, 1, 0, 0, 0, 0, 2149, 1, 0, 0, 0, 0, 2151, 1, 0, 0, 0, 0, 2153, 1, 0, 0, 0, 0, 2155, 1, 0, 0, 0, 0, 2157, 1, 0, 0, 0, 0, 2159, 1, 0, 0, 0, 0, 2161, 1, 0, 0, 0, 0, 2163, 1, 0, 0, 0, 0, 2165, 1, 0, 0, 0, 0, 2167, 1, 0, 0, 0, 0, 2169, 1, 0, 0, 0, 0, 2171, 1, 0, 0, 0, 0, 2173, 1, 0, 0, 0, 0, 2175, 1, 0, 0, 0, 0, 2177, 1, 0, 0, 0, 0, 2179, 1, 0, 0, 0, 0, 2181, 1, 0, 0, 0, 0, 2183, 1, 0, 0, 0, 0, 2185, 1, 0, 0, 0, 0, 2187, 1, 0, 0, 0, 0, 2189, 1, 0, 0, 0, 0, 2191, 1, 0, 0, 0, 0, 2193, 1, 0, 0, 0, 0, 2195, 1, 0, 0, 0, 0, 2197, 1, 0, 0, 0, 0, 2199, 1, 0, 0, 0, 0, 2201, 1, 0, 0, 0, 0, 2203, 1, 0, 0, 0, 0, 2205, 1, 0, 0, 0, 0, 2207, 1, 0, 0, 0, 0, 2209, 1, 0, 0, 0, 0, 2211, 1, 0, 0, 0, 0, 2213, 1, 0, 0, 0, 0, 2215, 1, 0, 0, 0, 0, 2217, 1, 0, 0, 0, 0, 2219, 1, 0, 0, 0, 0, 2221, 1, 0, 0, 0, 0, 2223, 1, 0, 0, 0, 0, 2225, 1, 0, 0, 0, 0, 2227, 1, 0, 0, 0, 0, 2229, 1, 0, 0, 0, 0, 2231, 1, 0, 0, 0, 0, 2233, 1, 0, 0, 0, 0, 2235, 1, 0, 0, 0, 0, 2237, 1, 0, 0, 0, 0, 2239, 1, 0, 0, 0, 0, 2241, 1, 0, 0, 0, 0, 2243, 1, 0, 0, 0, 0, 2245, 1, 0, 0, 0, 0, 2247, 1, 0, 0, 0, 0, 2249, 1, 0, 0, 0, 0, 2251, 1, 0, 0, 0, 0, 2253, 1, 0, 0, 0, 0, 2255, 1, 0, 0, 0, 0, 2257, 1, 0, 0, 0, 0, 2259, 1, 0, 0, 0, 0, 2261, 1, 0, 0, 0, 0, 2263, 1, 0, 0, 0, 0, 2265, 1, 0, 0, 0, 0, 2267, 1, 0, 0, 0, 0, 2269, 1, 0, 0, 0, 0, 2271, 1, 0, 0, 0, 0, 2273, 1, 0, 0, 0, 0, 2275, 1, 0, 0, 0, 0, 2277, 1, 0, 0, 0, 0, 2279, 1, 0, 0, 0, 0, 2281, 1, 0, 0, 0, 0, 2283, 1, 0, 0, 0, 0, 2285, 1, 0, 0, 0, 0, 2287, 1, 0, 0, 0, 0, 2289, 1, 0, 0, 0, 0, 2291, 1, 0, 0, 0, 0, 2293, 1, 0, 0, 0, 0, 2295, 1, 0, 0, 0, 0, 2297, 1, 0, 0, 0, 0, 2299, 1, 0, 0, 0, 0, 2301, 1, 0, 0, 0, 0, 2303, 1, 0, 0, 0, 0, 2305, 1, 0, 0, 0, 0, 2307, 1, 0, 0, 0, 0, 2309, 1, 0, 0, 0, 0, 2311, 1, 0, 0, 0, 0, 2313, 1, 0, 0, 0, 0, 2315, 1, 0, 0, 0, 0, 2317, 1, 0, 0, 0, 0, 2319, 1, 0, 0, 0, 0, 2321, 1, 0, 0, 0, 0, 2323, 1, 0, 0, 0, 0, 2325, 1, 0, 0, 0, 0, 2327, 1, 0, 0, 0, 0, 2329, 1, 0, 0, 0, 0, 2331, 1, 0, 0, 0, 0, 2333, 1, 0, 0, 0, 0, 2335, 1, 0, 0, 0, 0, 2337, 1, 0, 0, 0, 0, 2339, 1, 0, 0, 0, 0, 2341, 1, 0, 0, 0, 0, 2343, 1, 0, 0, 0, 0, 2345, 1, 0, 0, 0, 0, 2347, 1, 0, 0, 0, 0, 2349, 1, 0, 0, 0, 0, 2351, 1, 0, 0, 0, 0, 2353, 1, 0, 0, 0, 0, 2355, 1, 0, 0, 0, 0, 2357, 1, 0, 0, 0, 0, 2359, 1, 0, 0, 0, 0, 2361, 1, 0, 0, 0, 0, 2363, 1, 0, 0, 0, 0, 2365, 1, 0, 0, 0, 0, 2367, 1, 0, 0, 0, 0, 2369, 1, 0, 0, 0, 0, 2371, 1, 0, 0, 0, 0, 2373, 1, 0, 0, 0, 0, 2375, 1, 0, 0, 0, 0, 2377, 1, 0, 0, 0, 0, 2379, 1, 0, 0, 0, 0, 2381, 1, 0, 0, 0, 0, 2383, 1, 0, 0, 0, 0, 2385, 1, 0, 0, 0, 0, 2387, 1, 0, 0, 0, 0, 2389, 1, 0, 0, 0, 0, 2391, 1, 0, 0, 0, 0, 2393, 1, 0, 0, 0, 0, 2395, 1, 0, 0, 0, 0, 2397, 1, 0, 0, 0, 0, 2399, 1, 0, 0, 0, 0, 2401, 1, 0, 0, 0, 0, 2403, 1, 0, 0, 0, 0, 2405, 1, 0, 0, 0, 0, 2407, 1, 0, 0, 0, 0, 2409, 1, 0, 0, 0, 0, 2411, 1, 0, 0, 0, 0, 2413, 1, 0, 0, 0, 0, 2415, 1, 0, 0, 0, 0, 2417, 1, 0, 0, 0, 0, 2419, 1, 0, 0, 0, 0, 2421, 1, 0, 0, 0, 0, 2423, 1, 0, 0, 0, 0, 2425, 1, 0, 0, 0, 0, 2427, 1, 0, 0, 0, 0, 2429, 1, 0, 0, 0, 0, 2431, 1, 0, 0, 0, 0, 2433, 1, 0, 0, 0, 0, 2435, 1, 0, 0, 0, 0, 2437, 1, 0, 0, 0, 0, 2439, 1, 0, 0, 0, 0, 2441, 1, 0, 0, 0, 0, 2443, 1, 0, 0, 0, 0, 2445, 1, 0, 0, 0, 0, 2447, 1, 0, 0, 0, 0, 2449, 1, 0, 0, 0, 0, 2451, 1, 0, 0, 0, 0, 2453, 1, 0, 0, 0, 0, 2455, 1, 0, 0, 0, 0, 2457, 1, 0, 0, 0, 0, 2459, 1, 0, 0, 0, 0, 2461, 1, 0, 0, 0, 0, 2463, 1, 0, 0, 0, 0, 2465, 1, 0, 0, 0, 0, 2467, 1, 0, 0, 0, 0, 2469, 1, 0, 0, 0, 0, 2471, 1, 0, 0, 0, 0, 2473, 1, 0, 0, 0, 0, 2475, 1, 0, 0, 0, 0, 2477, 1, 0, 0, 0, 0, 2479, 1, 0, 0, 0, 0, 2481, 1, 0, 0, 0, 0, 2483, 1, 0, 0, 0, 0, 2485, 1, 0, 0, 0, 0, 2487, 1, 0, 0, 0, 0, 2489, 1, 0, 0, 0, 0, 2491, 1, 0, 0, 0, 0, 2493, 1, 0, 0, 0, 0, 2495, 1, 0, 0, 0, 0, 2497, 1, 0, 0, 0, 0, 2499, 1, 0, 0, 0, 0, 2501, 1, 0, 0, 0, 0, 2503, 1, 0, 0, 0, 0, 2505, 1, 0, 0, 0, 0, 2507, 1, 0, 0, 0, 0, 2509, 1, 0, 0, 0, 0, 2511, 1, 0, 0, 0, 0, 2513, 1, 0, 0, 0, 0, 2515, 1, 0, 0, 0, 0, 2517, 1, 0, 0, 0, 0, 2519, 1, 0, 0, 0, 0, 2521, 1, 0, 0, 0, 0, 2523, 1, 0, 0, 0, 0, 2525, 1, 0, 0, 0, 0, 2527, 1, 0, 0, 0, 0, 2529, 1, 0, 0, 0, 0, 2531, 1, 0, 0, 0, 0, 2533, 1, 0, 0, 0, 0, 2535, 1, 0, 0, 0, 0, 2537, 1, 0, 0, 0, 0, 2539, 1, 0, 0, 0, 0, 2541, 1, 0, 0, 0, 0, 2543, 1, 0, 0, 0, 0, 2545, 1, 0, 0, 0, 0, 2547, 1, 0, 0, 0, 0, 2549, 1, 0, 0, 0, 0, 2551, 1, 0, 0, 0, 0, 2553, 1, 0, 0, 0, 0, 2555, 1, 0, 0, 0, 0, 2557, 1, 0, 0, 0, 0, 2559, 1, 0, 0, 0, 0, 2561, 1, 0, 0, 0, 0, 2563, 1, 0, 0, 0, 0, 2565, 1, 0, 0, 0, 0, 2567, 1, 0, 0, 0, 0, 2569, 1, 0, 0, 0, 0, 2571, 1, 0, 0, 0, 0, 2573, 1, 0, 0, 0, 0, 2575, 1, 0, 0, 0, 0, 2577, 1, 0, 0, 0, 0, 2579, 1, 0, 0, 0, 0, 2581, 1, 0, 0, 0, 0, 2583, 1, 0, 0, 0, 0, 2585, 1, 0, 0, 0, 0, 2587, 1, 0, 0, 0, 0, 2589, 1, 0, 0, 0, 0, 2591, 1, 0, 0, 0, 0, 2593, 1, 0, 0, 0, 0, 2595, 1, 0, 0, 0, 0, 2597, 1, 0, 0, 0, 0, 2599, 1, 0, 0, 0, 0, 2601, 1, 0, 0, 0, 0, 2603, 1, 0, 0, 0, 0, 2605, 1, 0, 0, 0, 0, 2607, 1, 0, 0, 0, 0, 2609, 1, 0, 0, 0, 0, 2611, 1, 0, 0, 0, 0, 2613, 1, 0, 0, 0, 0, 2615, 1, 0, 0, 0, 0, 2617, 1, 0, 0, 0, 0, 2619, 1, 0, 0, 0, 0, 2621, 1, 0, 0, 0, 0, 2623, 1, 0, 0, 0, 0, 2625, 1, 0, 0, 0, 0, 2627, 1, 0, 0, 0, 0, 2629, 1, 0, 0, 0, 0, 2631, 1, 0, 0, 0, 0, 2633, 1, 0, 0, 0, 0, 2635, 1, 0, 0, 0, 0, 2637, 1, 0, 0, 0, 0, 2639, 1, 0, 0, 0, 0, 2641, 1, 0, 0, 0, 0, 2643, 1, 0, 0, 0, 0, 2645, 1, 0, 0, 0, 0, 2647, 1, 0, 0, 0, 0, 2649, 1, 0, 0, 0, 0, 2651, 1, 0, 0, 0, 0, 2653, 1, 0, 0, 0, 0, 2655, 1, 0, 0, 0, 0, 2657, 1, 0, 0, 0, 0, 2659, 1, 0, 0, 0, 0, 2661, 1, 0, 0, 0, 0, 2663, 1, 0, 0, 0, 0, 2665, 1, 0, 0, 0, 0, 2667, 1, 0, 0, 0, 0, 2669, 1, 0, 0, 0, 0, 2671, 1, 0, 0, 0, 0, 2673, 1, 0, 0, 0, 0, 2675, 1, 0, 0, 0, 0, 2677, 1, 0, 0, 0, 0, 2679, 1, 0, 0, 0, 0, 2681, 1, 0, 0, 0, 0, 2683, 1, 0, 0, 0, 0, 2685, 1, 0, 0, 0, 0, 2687, 1, 0, 0, 0, 0, 2689, 1, 0, 0, 0, 0, 2691, 1, 0, 0, 0, 0, 2693, 1, 0, 0, 0, 0, 2695, 1, 0, 0, 0, 0, 2697, 1, 0, 0, 0, 0, 2699, 1, 0, 0, 0, 0, 2701, 1, 0, 0, 0, 0, 2703, 1, 0, 0, 0, 0, 2705, 1, 0, 0, 0, 0, 2707, 1, 0, 0, 0, 0, 2709, 1, 0, 0, 0, 0, 2711, 1, 0, 0, 0, 0, 2713, 1, 0, 0, 0, 0, 2715, 1, 0, 0, 0, 0, 2717, 1, 0, 0, 0, 0, 2719, 1, 0, 0, 0, 0, 2721, 1, 0, 0, 0, 0, 2723, 1, 0, 0, 0, 0, 2725, 1, 0, 0, 0, 0, 2727, 1, 0, 0, 0, 0, 2729, 1, 0, 0, 0, 0, 2731, 1, 0, 0, 0, 0, 2733, 1, 0, 0, 0, 0, 2735, 1, 0, 0, 0, 0, 2737, 1, 0, 0, 0, 0, 2739, 1, 0, 0, 0, 0, 2741, 1, 0, 0, 0, 0, 2743, 1, 0, 0, 0, 0, 2745, 1, 0, 0, 0, 0, 2747, 1, 0, 0, 0, 0, 2749, 1, 0, 0, 0, 0, 2751, 1, 0, 0, 0, 0, 2753, 1, 0, 0, 0, 0, 2755, 1, 0, 0, 0, 0, 2757, 1, 0, 0, 0, 0, 2759, 1, 0, 0, 0, 0, 2761, 1, 0, 0, 0, 0, 2763, 1, 0, 0, 0, 0, 2765, 1, 0, 0, 0, 0, 2767, 1, 0, 0, 0, 0, 2769, 1, 0, 0, 0, 0, 2771, 1, 0, 0, 0, 0, 2773, 1, 0, 0, 0, 0, 2775, 1, 0, 0, 0, 0, 2777, 1, 0, 0, 0, 0, 2779, 1, 0, 0, 0, 0, 2781, 1, 0, 0, 0, 0, 2783, 1, 0, 0, 0, 0, 2785, 1, 0, 0, 0, 0, 2787, 1, 0, 0, 0, 0, 2789, 1, 0, 0, 0, 0, 2791, 1, 0, 0, 0, 0, 2793, 1, 0, 0, 0, 0, 2795, 1, 0, 0, 0, 0, 2797, 1, 0, 0, 0, 0, 2799, 1, 0, 0, 0, 0, 2801, 1, 0, 0, 0, 0, 2803, 1, 0, 0, 0, 0, 2805, 1, 0, 0, 0, 0, 2807, 1, 0, 0, 0, 0, 2809, 1, 0, 0, 0, 0, 2811, 1, 0, 0, 0, 0, 2813, 1, 0, 0, 0, 0, 2815, 1, 0, 0, 0, 0, 2817, 1, 0, 0, 0, 0, 2819, 1, 0, 0, 0, 0, 2821, 1, 0, 0, 0, 0, 2823, 1, 0, 0, 0, 0, 2825, 1, 0, 0, 0, 0, 2827, 1, 0, 0, 0, 0, 2829, 1, 0, 0, 0, 0, 2831, 1, 0, 0, 0, 0, 2833, 1, 0, 0, 0, 0, 2835, 1, 0, 0, 0, 0, 2837, 1, 0, 0, 0, 0, 2839, 1, 0, 0, 0, 0, 2841, 1, 0, 0, 0, 0, 2843, 1, 0, 0, 0, 0, 2845, 1, 0, 0, 0, 0, 2847, 1, 0, 0, 0, 0, 2849, 1, 0, 0, 0, 0, 2851, 1, 0, 0, 0, 0, 2853, 1, 0, 0, 0, 0, 2855, 1, 0, 0, 0, 0, 2857, 1, 0, 0, 0, 0, 2859, 1, 0, 0, 0, 0, 2861, 1, 0, 0, 0, 0, 2863, 1, 0, 0, 0, 0, 2865, 1, 0, 0, 0, 0, 2867, 1, 0, 0, 0, 0, 2869, 1, 0, 0, 0, 0, 2871, 1, 0, 0, 0, 0, 2873, 1, 0, 0, 0, 0, 2875, 1, 0, 0, 0, 0, 2877, 1, 0, 0, 0, 0, 2879, 1, 0, 0, 0, 0, 2881, 1, 0, 0, 0, 0, 2883, 1, 0, 0, 0, 0, 2885, 1, 0, 0, 0, 0, 2887, 1, 0, 0, 0, 0, 2889, 1, 0, 0, 0, 0, 2891, 1, 0, 0, 0, 0, 2893, 1, 0, 0, 0, 0, 2895, 1, 0, 0, 0, 0, 2897, 1, 0, 0, 0, 0, 2899, 1, 0, 0, 0, 0, 2901, 1, 0, 0, 0, 0, 2903, 1, 0, 0, 0, 0, 2905, 1, 0, 0, 0, 0, 2907, 1, 0, 0, 0, 0, 2909, 1, 0, 0, 0, 0, 2911, 1, 0, 0, 0, 0, 2913, 1, 0, 0, 0, 0, 2915, 1, 0, 0, 0, 0, 2917, 1, 0, 0, 0, 0, 2919, 1, 0, 0, 0, 0, 2921, 1, 0, 0, 0, 0, 2923, 1, 0, 0, 0, 0, 2925, 1, 0, 0, 0, 0, 2927, 1, 0, 0, 0, 0, 2929, 1, 0, 0, 0, 0, 2931, 1, 0, 0, 0, 0, 2933, 1, 0, 0, 0, 0, 2935, 1, 0, 0, 0, 0, 2937, 1, 0, 0, 0, 0, 2939, 1, 0, 0, 0, 0, 2941, 1, 0, 0, 0, 0, 2943, 1, 0, 0, 0, 0, 2945, 1, 0, 0, 0, 0, 2947, 1, 0, 0, 0, 0, 2949, 1, 0, 0, 0, 0, 2951, 1, 0, 0, 0, 0, 2953, 1, 0, 0, 0, 0, 2955, 1, 0, 0, 0, 0, 2957, 1, 0, 0, 0, 0, 2959, 1, 0, 0, 0, 0, 2961, 1, 0, 0, 0, 0, 2963, 1, 0, 0, 0, 0, 2965, 1, 0, 0, 0, 0, 2967, 1, 0, 0, 0, 0, 2969, 1, 0, 0, 0, 0, 2971, 1, 0, 0, 0, 0, 2973, 1, 0, 0, 0, 0, 2975, 1, 0, 0, 0, 0, 2977, 1, 0, 0, 0, 0, 2979, 1, 0, 0, 0, 0, 2981, 1, 0, 0, 0, 0, 2983, 1, 0, 0, 0, 0, 2985, 1, 0, 0, 0, 0, 2987, 1, 0, 0, 0, 0, 2989, 1, 0, 0, 0, 0, 2991, 1, 0, 0, 0, 0, 2993, 1, 0, 0, 0, 0, 2995, 1, 0, 0, 0, 0, 2997, 1, 0, 0, 0, 0, 2999, 1, 0, 0, 0, 0, 3001, 1, 0, 0, 0, 0, 3003, 1, 0, 0, 0, 0, 3005, 1, 0, 0, 0, 0, 3007, 1, 0, 0, 0, 0, 3009, 1, 0, 0, 0, 0, 3011, 1, 0, 0, 0, 0, 3013, 1, 0, 0, 0, 0, 3015, 1, 0, 0, 0, 0, 3017, 1, 0, 0, 0, 0, 3019, 1, 0, 0, 0, 0, 3021, 1, 0, 0, 0, 0, 3023, 1, 0, 0, 0, 0, 3025, 1, 0, 0, 0, 0, 3027, 1, 0, 0, 0, 0, 3029, 1, 0, 0, 0, 0, 3031, 1, 0, 0, 0, 0, 3033, 1, 0, 0, 0, 0, 3035, 1, 0, 0, 0, 0, 3037, 1, 0, 0, 0, 0, 3039, 1, 0, 0, 0, 0, 3041, 1, 0, 0, 0, 0, 3043, 1, 0, 0, 0, 0, 3045, 1, 0, 0, 0, 0, 3047, 1, 0, 0, 0, 0, 3049, 1, 0, 0, 0, 0, 3051, 1, 0, 0, 0, 0, 3053, 1, 0, 0, 0, 0, 3055, 1, 0, 0, 0, 0, 3057, 1, 0, 0, 0, 0, 3059, 1, 0, 0, 0, 0, 3061, 1, 0, 0, 0, 0, 3063, 1, 0, 0, 0, 0, 3065, 1, 0, 0, 0, 0, 3067, 1, 0, 0, 0, 0, 3069, 1, 0, 0, 0, 0, 3071, 1, 0, 0, 0, 0, 3073, 1, 0, 0, 0, 0, 3075, 1, 0, 0, 0, 0, 3077, 1, 0, 0, 0, 0, 3079, 1, 0, 0, 0, 0, 3081, 1, 0, 0, 0, 0, 3083, 1, 0, 0, 0, 0, 3085, 1, 0, 0, 0, 0, 3087, 1, 0, 0, 0, 0, 3089, 1, 0, 0, 0, 0, 3091, 1, 0, 0, 0, 0, 3093, 1, 0, 0, 0, 0, 3095, 1, 0, 0, 0, 0, 3097, 1, 0, 0, 0, 0, 3099, 1, 0, 0, 0, 0, 3101, 1, 0, 0, 0, 0, 3103, 1, 0, 0, 0, 0, 3105, 1, 0, 0, 0, 0, 3107, 1, 0, 0, 0, 0, 3109, 1, 0, 0, 0, 0, 3111, 1, 0, 0, 0, 0, 3113, 1, 0, 0, 0, 0, 3115, 1, 0, 0, 0, 0, 3117, 1, 0, 0, 0, 0, 3119, 1, 0, 0, 0, 0, 3121, 1, 0, 0, 0, 0, 3123, 1, 0, 0, 0, 0, 3125, 1, 0, 0, 0, 0, 3127, 1, 0, 0, 0, 0, 3129, 1, 0, 0, 0, 0, 3131, 1, 0, 0, 0, 0, 3133, 1, 0, 0, 0, 0, 3135, 1, 0, 0, 0, 0, 3137, 1, 0, 0, 0, 0, 3139, 1, 0, 0, 0, 0, 3141, 1, 0, 0, 0, 0, 3143, 1, 0, 0, 0, 0, 3145, 1, 0, 0, 0, 0, 3147, 1, 0, 0, 0, 0, 3149, 1, 0, 0, 0, 0, 3151, 1, 0, 0, 0, 0, 3153, 1, 0, 0, 0, 0, 3155, 1, 0, 0, 0, 0, 3157, 1, 0, 0, 0, 0, 3159, 1, 0, 0, 0, 0, 3161, 1, 0, 0, 0, 0, 3163, 1, 0, 0, 0, 0, 3165, 1, 0, 0, 0, 0, 3167, 1, 0, 0, 0, 0, 3169, 1, 0, 0, 0, 0, 3171, 1, 0, 0, 0, 0, 3173, 1, 0, 0, 0, 0, 3175, 1, 0, 0, 0, 0, 3177, 1, 0, 0, 0, 0, 3179, 1, 0, 0, 0, 0, 3181, 1, 0, 0, 0, 0, 3183, 1, 0, 0, 0, 0, 3185, 1, 0, 0, 0, 0, 3187, 1, 0, 0, 0, 0, 3189, 1, 0, 0, 0, 0, 3191, 1, 0, 0, 0, 0, 3193, 1, 0, 0, 0, 0, 3195, 1, 0, 0, 0, 0, 3197, 1, 0, 0, 0, 0, 3199, 1, 0, 0, 0, 0, 3201, 1, 0, 0, 0, 0, 3203, 1, 0, 0, 0, 0, 3205, 1, 0, 0, 0, 0, 3207, 1, 0, 0, 0, 0, 3209, 1, 0, 0, 0, 0, 3211, 1, 0, 0, 0, 0, 3213, 1, 0, 0, 0, 0, 3215, 1, 0, 0, 0, 0, 3217, 1, 0, 0, 0, 0, 3219, 1, 0, 0, 0, 0, 3221, 1, 0, 0, 0, 0, 3223, 1, 0, 0, 0, 0, 3225, 1, 0, 0, 0, 0, 3227, 1, 0, 0, 0, 0, 3229, 1, 0, 0, 0, 0, 3231, 1, 0, 0, 0, 0, 3233, 1, 0, 0, 0, 0, 3235, 1, 0, 0, 0, 0, 3237, 1, 0, 0, 0, 0, 3239, 1, 0, 0, 0, 0, 3241, 1, 0, 0, 0, 0, 3243, 1, 0, 0, 0, 0, 3245, 1, 0, 0, 0, 0, 3247, 1, 0, 0, 0, 0, 3249, 1, 0, 0, 0, 0, 3251, 1, 0, 0, 0, 0, 3253, 1, 0, 0, 0, 0, 3255, 1, 0, 0, 0, 0, 3257, 1, 0, 0, 0, 0, 3259, 1, 0, 0, 0, 0, 3261, 1, 0, 0, 0, 0, 3263, 1, 0, 0, 0, 0, 3265, 1, 0, 0, 0, 0, 3267, 1, 0, 0, 0, 0, 3269, 1, 0, 0, 0, 0, 3271, 1, 0, 0, 0, 0, 3273, 1, 0, 0, 0, 0, 3275, 1, 0, 0, 0, 0, 3277, 1, 0, 0, 0, 0, 3279, 1, 0, 0, 0, 0, 3281, 1, 0, 0, 0, 0, 3283, 1, 0, 0, 0, 0, 3285, 1, 0, 0, 0, 0, 3287, 1, 0, 0, 0, 0, 3289, 1, 0, 0, 0, 0, 3291, 1, 0, 0, 0, 0, 3293, 1, 0, 0, 0, 0, 3295, 1, 0, 0, 0, 0, 3297, 1, 0, 0, 0, 0, 3299, 1, 0, 0, 0, 0, 3301, 1, 0, 0, 0, 0, 3303, 1, 0, 0, 0, 0, 3305, 1, 0, 0, 0, 0, 3307, 1, 0, 0, 0, 0, 3309, 1, 0, 0, 0, 0, 3311, 1, 0, 0, 0, 0, 3313, 1, 0, 0, 0, 0, 3315, 1, 0, 0, 0, 0, 3317, 1, 0, 0, 0, 0, 3319, 1, 0, 0, 0, 0, 3321, 1, 0, 0, 0, 0, 3323, 1, 0, 0, 0, 0, 3325, 1, 0, 0, 0, 0, 3327, 1, 0, 0, 0, 0, 3329, 1, 0, 0, 0, 0, 3331, 1, 0, 0, 0, 0, 3333, 1, 0, 0, 0, 0, 3335, 1, 0, 0, 0, 0, 3337, 1, 0, 0, 0, 0, 3339, 1, 0, 0, 0, 0, 3341, 1, 0, 0, 0, 0, 3343, 1, 0, 0, 0, 0, 3345, 1, 0, 0, 0, 0, 3347, 1, 0, 0, 0, 0, 3349, 1, 0, 0, 0, 0, 3351, 1, 0, 0, 0, 0, 3353, 1, 0, 0, 0, 0, 3355, 1, 0, 0, 0, 0, 3357, 1, 0, 0, 0, 0, 3359, 1, 0, 0, 0, 0, 3361, 1, 0, 0, 0, 0, 3363, 1, 0, 0, 0, 0, 3365, 1, 0, 0, 0, 0, 3367, 1, 0, 0, 0, 0, 3369, 1, 0, 0, 0, 0, 3371, 1, 0, 0, 0, 0, 3373, 1, 0, 0, 0, 0, 3375, 1, 0, 0, 0, 0, 3377, 1, 0, 0, 0, 0, 3379, 1, 0, 0, 0, 0, 3381, 1, 0, 0, 0, 0, 3383, 1, 0, 0, 0, 0, 3385, 1, 0, 0, 0, 0, 3387, 1, 0, 0, 0, 0, 3389, 1, 0, 0, 0, 0, 3391, 1, 0, 0, 0, 0, 3393, 1, 0, 0, 0, 0, 3395, 1, 0, 0, 0, 0, 3397, 1, 0, 0, 0, 0, 3399, 1, 0, 0, 0, 0, 3401, 1, 0, 0, 0, 0, 3403, 1, 0, 0, 0, 0, 3405, 1, 0, 0, 0, 0, 3407, 1, 0, 0, 0, 0, 3409, 1, 0, 0, 0, 0, 3411, 1, 0, 0, 0, 0, 3413, 1, 0, 0, 0, 0, 3415, 1, 0, 0, 0, 0, 3417, 1, 0, 0, 0, 0, 3419, 1, 0, 0, 0, 0, 3421, 1, 0, 0, 0, 0, 3423, 1, 0, 0, 0, 0, 3425, 1, 0, 0, 0, 0, 3427, 1, 0, 0, 0, 0, 3429, 1, 0, 0, 0, 0, 3431, 1, 0, 0, 0, 0, 3433, 1, 0, 0, 0, 0, 3435, 1, 0, 0, 0, 0, 3437, 1, 0, 0, 0, 0, 3439, 1, 0, 0, 0, 0, 3441, 1, 0, 0, 0, 0, 3443, 1, 0, 0, 0, 0, 3445, 1, 0, 0, 0, 0, 3447, 1, 0, 0, 0, 0, 3449, 1, 0, 0, 0, 0, 3451, 1, 0, 0, 0, 0, 3453, 1, 0, 0, 0, 0, 3455, 1, 0, 0, 0, 0, 3457, 1, 0, 0, 0, 0, 3459, 1, 0, 0, 0, 0, 3461, 1, 0, 0, 0, 0, 3463, 1, 0, 0, 0, 0, 3465, 1, 0, 0, 0, 0, 3467, 1, 0, 0, 0, 0, 3469, 1, 0, 0, 0, 0, 3471, 1, 0, 0, 0, 0, 3473, 1, 0, 0, 0, 0, 3475, 1, 0, 0, 0, 0, 3477, 1, 0, 0, 0, 0, 3479, 1, 0, 0, 0, 0, 3481, 1, 0, 0, 0, 0, 3483, 1, 0, 0, 0, 0, 3485, 1, 0, 0, 0, 0, 3487, 1, 0, 0, 0, 0, 3489, 1, 0, 0, 0, 0, 3491, 1, 0, 0, 0, 0, 3493, 1, 0, 0, 0, 0, 3495, 1, 0, 0, 0, 0, 3497, 1, 0, 0, 0, 0, 3499, 1, 0, 0, 0, 0, 3501, 1, 0, 0, 0, 0, 3503, 1, 0, 0, 0, 0, 3505, 1, 0, 0, 0, 0, 3507, 1, 0, 0, 0, 0, 3509, 1, 0, 0, 0, 0, 3511, 1, 0, 0, 0, 0, 3513, 1, 0, 0, 0, 0, 3515, 1, 0, 0, 0, 0, 3517, 1, 0, 0, 0, 0, 3519, 1, 0, 0, 0, 0, 3521, 1, 0, 0, 0, 0, 3523, 1, 0, 0, 0, 0, 3525, 1, 0, 0, 0, 0, 3527, 1, 0, 0, 0, 0, 3529, 1, 0, 0, 0, 0, 3531, 1, 0, 0, 0, 0, 3533, 1, 0, 0, 0, 0, 3535, 1, 0, 0, 0, 0, 3537, 1, 0, 0, 0, 0, 3539, 1, 0, 0, 0, 0, 3541, 1, 0, 0, 0, 0, 3543, 1, 0, 0, 0, 0, 3545, 1, 0, 0, 0, 0, 3547, 1, 0, 0, 0, 0, 3549, 1, 0, 0, 0, 0, 3551, 1, 0, 0, 0, 0, 3553, 1, 0, 0, 0, 0, 3555, 1, 0, 0, 0, 0, 3557, 1, 0, 0, 0, 0, 3559, 1, 0, 0, 0, 0, 3561, 1, 0, 0, 0, 0, 3563, 1, 0, 0, 0, 0, 3565, 1, 0, 0, 0, 0, 3567, 1, 0, 0, 0, 0, 3569, 1, 0, 0, 0, 0, 3571, 1, 0, 0, 0, 0, 3573, 1, 0, 0, 0, 0, 3575, 1, 0, 0, 0, 0, 3577, 1, 0, 0, 0, 0, 3579, 1, 0, 0, 0, 0, 3581, 1, 0, 0, 0, 0, 3583, 1, 0, 0, 0, 0, 3585, 1, 0, 0, 0, 0, 3587, 1, 0, 0, 0, 0, 3589, 1, 0, 0, 0, 0, 3591, 1, 0, 0, 0, 0, 3593, 1, 0, 0, 0, 0, 3595, 1, 0, 0, 0, 0, 3597, 1, 0, 0, 0, 0, 3599, 1, 0, 0, 0, 0, 3601, 1, 0, 0, 0, 0, 3603, 1, 0, 0, 0, 0, 3605, 1, 0, 0, 0, 0, 3607, 1, 0, 0, 0, 0, 3609, 1, 0, 0, 0, 0, 3611, 1, 0, 0, 0, 0, 3613, 1, 0, 0, 0, 0, 3615, 1, 0, 0, 0, 0, 3617, 1, 0, 0, 0, 0, 3619, 1, 0, 0, 0, 0, 3621, 1, 0, 0, 0, 0, 3623, 1, 0, 0, 0, 0, 3625, 1, 0, 0, 0, 0, 3627, 1, 0, 0, 0, 0, 3629, 1, 0, 0, 0, 0, 3631, 1, 0, 0, 0, 0, 3633, 1, 0, 0, 0, 0, 3635, 1, 0, 0, 0, 0, 3637, 1, 0, 0, 0, 0, 3639, 1, 0, 0, 0, 0, 3641, 1, 0, 0, 0, 0, 3643, 1, 0, 0, 0, 0, 3645, 1, 0, 0, 0, 0, 3647, 1, 0, 0, 0, 0, 3649, 1, 0, 0, 0, 0, 3651, 1, 0, 0, 0, 0, 3653, 1, 0, 0, 0, 0, 3655, 1, 0, 0, 0, 0, 3657, 1, 0, 0, 0, 0, 3659, 1, 0, 0, 0, 0, 3661, 1, 0, 0, 0, 0, 3663, 1, 0, 0, 0, 0, 3665, 1, 0, 0, 0, 0, 3667, 1, 0, 0, 0, 0, 3669, 1, 0, 0, 0, 0, 3671, 1, 0, 0, 0, 0, 3673, 1, 0, 0, 0, 0, 3675, 1, 0, 0, 0, 0, 3677, 1, 0, 0, 0, 0, 3679, 1, 0, 0, 0, 0, 3681, 1, 0, 0, 0, 0, 3683, 1, 0, 0, 0, 0, 3685, 1, 0, 0, 0, 0, 3687, 1, 0, 0, 0, 0, 3689, 1, 0, 0, 0, 0, 3691, 1, 0, 0, 0, 0, 3693, 1, 0, 0, 0, 0, 3695, 1, 0, 0, 0, 0, 3697, 1, 0, 0, 0, 0, 3699, 1, 0, 0, 0, 0, 3701, 1, 0, 0, 0, 0, 3703, 1, 0, 0, 0, 0, 3705, 1, 0, 0, 0, 0, 3707, 1, 0, 0, 0, 0, 3709, 1, 0, 0, 0, 0, 3711, 1, 0, 0, 0, 0, 3713, 1, 0, 0, 0, 0, 3715, 1, 0, 0, 0, 0, 3717, 1, 0, 0, 0, 0, 3719, 1, 0, 0, 0, 0, 3721, 1, 0, 0, 0, 0, 3723, 1, 0, 0, 0, 0, 3725, 1, 0, 0, 0, 0, 3727, 1, 0, 0, 0, 0, 3729, 1, 0, 0, 0, 0, 3731, 1, 0, 0, 0, 0, 3733, 1, 0, 0, 0, 0, 3735, 1, 0, 0, 0, 0, 3737, 1, 0, 0, 0, 0, 3739, 1, 0, 0, 0, 0, 3741, 1, 0, 0, 0, 0, 3743, 1, 0, 0, 0, 0, 3745, 1, 0, 0, 0, 0, 3747, 1, 0, 0, 0, 0, 3749, 1, 0, 0, 0, 0, 3751, 1, 0, 0, 0, 0, 3753, 1, 0, 0, 0, 0, 3755, 1, 0, 0, 0, 0, 3757, 1, 0, 0, 0, 0, 3759, 1, 0, 0, 0, 0, 3761, 1, 0, 0, 0, 0, 3763, 1, 0, 0, 0, 0, 3765, 1, 0, 0, 0, 0, 3767, 1, 0, 0, 0, 0, 3769, 1, 0, 0, 0, 0, 3771, 1, 0, 0, 0, 0, 3773, 1, 0, 0, 0, 0, 3775, 1, 0, 0, 0, 0, 3777, 1, 0, 0, 0, 0, 3779, 1, 0, 0, 0, 0, 3781, 1, 0, 0, 0, 0, 3783, 1, 0, 0, 0, 0, 3785, 1, 0, 0, 0, 0, 3787, 1, 0, 0, 0, 0, 3789, 1, 0, 0, 0, 0, 3791, 1, 0, 0, 0, 0, 3793, 1, 0, 0, 0, 0, 3795, 1, 0, 0, 0, 0, 3797, 1, 0, 0, 0, 0, 3799, 1, 0, 0, 0, 0, 3801, 1, 0, 0, 0, 0, 3803, 1, 0, 0, 0, 0, 3805, 1, 0, 0, 0, 0, 3807, 1, 0, 0, 0, 0, 3809, 1, 0, 0, 0, 0, 3811, 1, 0, 0, 0, 0, 3813, 1, 0, 0, 0, 0, 3815, 1, 0, 0, 0, 0, 3817, 1, 0, 0, 0, 0, 3819, 1, 0, 0, 0, 0, 3821, 1, 0, 0, 0, 0, 3823, 1, 0, 0, 0, 0, 3825, 1, 0, 0, 0, 0, 3827, 1, 0, 0, 0, 0, 3829, 1, 0, 0, 0, 0, 3831, 1, 0, 0, 0, 0, 3833, 1, 0, 0, 0, 0, 3835, 1, 0, 0, 0, 0, 3837, 1, 0, 0, 0, 0, 3839, 1, 0, 0, 0, 0, 3841, 1, 0, 0, 0, 0, 3843, 1, 0, 0, 0, 0, 3845, 1, 0, 0, 0, 0, 3847, 1, 0, 0, 0, 0, 3849, 1, 0, 0, 0, 0, 3851, 1, 0, 0, 0, 0, 3853, 1, 0, 0, 0, 0, 3855, 1, 0, 0, 0, 0, 3857, 1, 0, 0, 0, 0, 3859, 1, 0, 0, 0, 0, 3861, 1, 0, 0, 0, 0, 3863, 1, 0, 0, 0, 0, 3865, 1, 0, 0, 0, 0, 3867, 1, 0, 0, 0, 0, 3869, 1, 0, 0, 0, 0, 3871, 1, 0, 0, 0, 0, 3873, 1, 0, 0, 0, 0, 3875, 1, 0, 0, 0, 0, 3877, 1, 0, 0, 0, 0, 3879, 1, 0, 0, 0, 0, 3881, 1, 0, 0, 0, 0, 3883, 1, 0, 0, 0, 0, 3885, 1, 0, 0, 0, 0, 3887, 1, 0, 0, 0, 0, 3889, 1, 0, 0, 0, 0, 3891, 1, 0, 0, 0, 0, 3893, 1, 0, 0, 0, 0, 3895, 1, 0, 0, 0, 0, 3897, 1, 0, 0, 0, 0, 3899, 1, 0, 0, 0, 0, 3901, 1, 0, 0, 0, 0, 3903, 1, 0, 0, 0, 0, 3905, 1, 0, 0, 0, 0, 3907, 1, 0, 0, 0, 0, 3909, 1, 0, 0, 0, 0, 3911, 1, 0, 0, 0, 0, 3913, 1, 0, 0, 0, 0, 3915, 1, 0, 0, 0, 0, 3917, 1, 0, 0, 0, 0, 3919, 1, 0, 0, 0, 0, 3921, 1, 0, 0, 0, 0, 3923, 1, 0, 0, 0, 0, 3925, 1, 0, 0, 0, 0, 3927, 1, 0, 0, 0, 0, 3929, 1, 0, 0, 0, 0, 3931, 1, 0, 0, 0, 0, 3933, 1, 0, 0, 0, 0, 3935, 1, 0, 0, 0, 0, 3937, 1, 0, 0, 0, 0, 3939, 1, 0, 0, 0, 0, 3941, 1, 0, 0, 0, 0, 3943, 1, 0, 0, 0, 0, 3945, 1, 0, 0, 0, 0, 3947, 1, 0, 0, 0, 0, 3949, 1, 0, 0, 0, 0, 3951, 1, 0, 0, 0, 0, 3953, 1, 0, 0, 0, 0, 3955, 1, 0, 0, 0, 0, 3957, 1, 0, 0, 0, 0, 3959, 1, 0, 0, 0, 0, 3961, 1, 0, 0, 0, 0, 3963, 1, 0, 0, 0, 0, 3965, 1, 0, 0, 0, 0, 3967, 1, 0, 0, 0, 0, 3969, 1, 0, 0, 0, 0, 3971, 1, 0, 0, 0, 0, 3973, 1, 0, 0, 0, 0, 3975, 1, 0, 0, 0, 0, 3977, 1, 0, 0, 0, 0, 3979, 1, 0, 0, 0, 0, 3981, 1, 0, 0, 0, 0, 3983, 1, 0, 0, 0, 0, 3985, 1, 0, 0, 0, 0, 3987, 1, 0, 0, 0, 0, 3989, 1, 0, 0, 0, 0, 3991, 1, 0, 0, 0, 0, 3993, 1, 0, 0, 0, 0, 3995, 1, 0, 0, 0, 0, 3997, 1, 0, 0, 0, 0, 3999, 1, 0, 0, 0, 0, 4001, 1, 0, 0, 0, 0, 4003, 1, 0, 0, 0, 0, 4005, 1, 0, 0, 0, 0, 4007, 1, 0, 0, 0, 0, 4009, 1, 0, 0, 0, 0, 4011, 1, 0, 0, 0, 0, 4013, 1, 0, 0, 0, 0, 4015, 1, 0, 0, 0, 0, 4017, 1, 0, 0, 0, 0, 4019, 1, 0, 0, 0, 0, 4021, 1, 0, 0, 0, 0, 4023, 1, 0, 0, 0, 0, 4025, 1, 0, 0, 0, 0, 4027, 1, 0, 0, 0, 0, 4029, 1, 0, 0, 0, 0, 4031, 1, 0, 0, 0, 0, 4033, 1, 0, 0, 0, 0, 4035, 1, 0, 0, 0, 0, 4037, 1, 0, 0, 0, 0, 4039, 1, 0, 0, 0, 0, 4041, 1, 0, 0, 0, 0, 4043, 1, 0, 0, 0, 0, 4045, 1, 0, 0, 0, 0, 4047, 1, 0, 0, 0, 0, 4049, 1, 0, 0, 0, 0, 4051, 1, 0, 0, 0, 0, 4053, 1, 0, 0, 0, 0, 4055, 1, 0, 0, 0, 0, 4057, 1, 0, 0, 0, 0, 4059, 1, 0, 0, 0, 0, 4061, 1, 0, 0, 0, 0, 4063, 1, 0, 0, 0, 0, 4065, 1, 0, 0, 0, 0, 4067, 1, 0, 0, 0, 0, 4069, 1, 0, 0, 0, 0, 4071, 1, 0, 0, 0, 0, 4073, 1, 0, 0, 0, 0, 4075, 1, 0, 0, 0, 0, 4077, 1, 0, 0, 0, 0, 4079, 1, 0, 0, 0, 0, 4081, 1, 0, 0, 0, 0, 4083, 1, 0, 0, 0, 0, 4085, 1, 0, 0, 0, 0, 4087, 1, 0, 0, 0, 0, 4089, 1, 0, 0, 0, 0, 4091, 1, 0, 0, 0, 0, 4093, 1, 0, 0, 0, 0, 4095, 1, 0, 0, 0, 0, 4097, 1, 0, 0, 0, 0, 4099, 1, 0, 0, 0, 0, 4101, 1, 0, 0, 0, 0, 4103, 1, 0, 0, 0, 0, 4105, 1, 0, 0, 0, 0, 4107, 1, 0, 0, 0, 0, 4109, 1, 0, 0, 0, 0, 4111, 1, 0, 0, 0, 0, 4113, 1, 0, 0, 0, 0, 4115, 1, 0, 0, 0, 0, 4117, 1, 0, 0, 0, 0, 4119, 1, 0, 0, 0, 0, 4121, 1, 0, 0, 0, 0, 4123, 1, 0, 0, 0, 0, 4125, 1, 0, 0, 0, 0, 4127, 1, 0, 0, 0, 0, 4129, 1, 0, 0, 0, 0, 4131, 1, 0, 0, 0, 0, 4133, 1, 0, 0, 0, 0, 4135, 1, 0, 0, 0, 0, 4137, 1, 0, 0, 0, 0, 4139, 1, 0, 0, 0, 0, 4141, 1, 0, 0, 0, 0, 4143, 1, 0, 0, 0, 0, 4145, 1, 0, 0, 0, 0, 4147, 1, 0, 0, 0, 0, 4149, 1, 0, 0, 0, 0, 4151, 1, 0, 0, 0, 0, 4153, 1, 0, 0, 0, 0, 4155, 1, 0, 0, 0, 0, 4157, 1, 0, 0, 0, 0, 4159, 1, 0, 0, 0, 0, 4161, 1, 0, 0, 0, 0, 4163, 1, 0, 0, 0, 0, 4165, 1, 0, 0, 0, 0, 4167, 1, 0, 0, 0, 0, 4169, 1, 0, 0, 0, 0, 4171, 1, 0, 0, 0, 0, 4173, 1, 0, 0, 0, 0, 4175, 1, 0, 0, 0, 0, 4177, 1, 0, 0, 0, 0, 4179, 1, 0, 0, 0, 0, 4181, 1, 0, 0, 0, 0, 4183, 1, 0, 0, 0, 0, 4185, 1, 0, 0, 0, 0, 4187, 1, 0, 0, 0, 0, 4189, 1, 0, 0, 0, 0, 4191, 1, 0, 0, 0, 0, 4193, 1, 0, 0, 0, 0, 4195, 1, 0, 0, 0, 0, 4197, 1, 0, 0, 0, 0, 4199, 1, 0, 0, 0, 0, 4201, 1, 0, 0, 0, 0, 4203, 1, 0, 0, 0, 0, 4205, 1, 0, 0, 0, 0, 4207, 1, 0, 0, 0, 0, 4209, 1, 0, 0, 0, 0, 4211, 1, 0, 0, 0, 0, 4213, 1, 0, 0, 0, 0, 4215, 1, 0, 0, 0, 0, 4217, 1, 0, 0, 0, 0, 4219, 1, 0, 0, 0, 0, 4221, 1, 0, 0, 0, 0, 4223, 1, 0, 0, 0, 0, 4225, 1, 0, 0, 0, 0, 4227, 1, 0, 0, 0, 0, 4229, 1, 0, 0, 0, 0, 4231, 1, 0, 0, 0, 0, 4233, 1, 0, 0, 0, 0, 4235, 1, 0, 0, 0, 0, 4237, 1, 0, 0, 0, 0, 4239, 1, 0, 0, 0, 0, 4241, 1, 0, 0, 0, 0, 4243, 1, 0, 0, 0, 0, 4245, 1, 0, 0, 0, 0, 4247, 1, 0, 0, 0, 0, 4249, 1, 0, 0, 0, 0, 4251, 1, 0, 0, 0, 0, 4253, 1, 0, 0, 0, 0, 4255, 1, 0, 0, 0, 0, 4257, 1, 0, 0, 0, 0, 4259, 1, 0, 0, 0, 0, 4261, 1, 0, 0, 0, 0, 4263, 1, 0, 0, 0, 0, 4265, 1, 0, 0, 0, 0, 4267, 1, 0, 0, 0, 0, 4269, 1, 0, 0, 0, 0, 4271, 1, 0, 0, 0, 0, 4273, 1, 0, 0, 0, 0, 4275, 1, 0, 0, 0, 0, 4277, 1, 0, 0, 0, 0, 4279, 1, 0, 0, 0, 0, 4281, 1, 0, 0, 0, 0, 4283, 1, 0, 0, 0, 0, 4285, 1, 0, 0, 0, 0, 4287, 1, 0, 0, 0, 0, 4289, 1, 0, 0, 0, 0, 4291, 1, 0, 0, 0, 0, 4293, 1, 0, 0, 0, 0, 4295, 1, 0, 0, 0, 0, 4297, 1, 0, 0, 0, 0, 4299, 1, 0, 0, 0, 0, 4301, 1, 0, 0, 0, 0, 4303, 1, 0, 0, 0, 0, 4305, 1, 0, 0, 0, 0, 4307, 1, 0, 0, 0, 0, 4309, 1, 0, 0, 0, 0, 4311, 1, 0, 0, 0, 0, 4313, 1, 0, 0, 0, 0, 4315, 1, 0, 0, 0, 0, 4317, 1, 0, 0, 0, 0, 4319, 1, 0, 0, 0, 0, 4321, 1, 0, 0, 0, 0, 4323, 1, 0, 0, 0, 0, 4325, 1, 0, 0, 0, 0, 4327, 1, 0, 0, 0, 0, 4329, 1, 0, 0, 0, 0, 4331, 1, 0, 0, 0, 0, 4333, 1, 0, 0, 0, 0, 4335, 1, 0, 0, 0, 0, 4337, 1, 0, 0, 0, 0, 4339, 1, 0, 0, 0, 0, 4341, 1, 0, 0, 0, 0, 4343, 1, 0, 0, 0, 0, 4345, 1, 0, 0, 0, 0, 4347, 1, 0, 0, 0, 0, 4349, 1, 0, 0, 0, 0, 4351, 1, 0, 0, 0, 0, 4353, 1, 0, 0, 0, 0, 4355, 1, 0, 0, 0, 0, 4357, 1, 0, 0, 0, 0, 4359, 1, 0, 0, 0, 0, 4361, 1, 0, 0, 0, 0, 4363, 1, 0, 0, 0, 0, 4365, 1, 0, 0, 0, 0, 4367, 1, 0, 0, 0, 0, 4369, 1, 0, 0, 0, 0, 4371, 1, 0, 0, 0, 0, 4373, 1, 0, 0, 0, 0, 4375, 1, 0, 0, 0, 0, 4377, 1, 0, 0, 0, 0, 4379, 1, 0, 0, 0, 0, 4381, 1, 0, 0, 0, 0, 4383, 1, 0, 0, 0, 0, 4385, 1, 0, 0, 0, 0, 4387, 1, 0, 0, 0, 0, 4389, 1, 0, 0, 0, 0, 4391, 1, 0, 0, 0, 0, 4393, 1, 0, 0, 0, 0, 4395, 1, 0, 0, 0, 0, 4397, 1, 0, 0, 0, 0, 4399, 1, 0, 0, 0, 0, 4401, 1, 0, 0, 0, 0, 4403, 1, 0, 0, 0, 0, 4405, 1, 0, 0, 0, 0, 4407, 1, 0, 0, 0, 0, 4409, 1, 0, 0, 0, 0, 4411, 1, 0, 0, 0, 0, 4413, 1, 0, 0, 0, 0, 4415, 1, 0, 0, 0, 0, 4417, 1, 0, 0, 0, 0, 4419, 1, 0, 0, 0, 0, 4421, 1, 0, 0, 0, 0, 4423, 1, 0, 0, 0, 0, 4425, 1, 0, 0, 0, 0, 4427, 1, 0, 0, 0, 0, 4429, 1, 0, 0, 0, 0, 4431, 1, 0, 0, 0, 0, 4433, 1, 0, 0, 0, 0, 4435, 1, 0, 0, 0, 0, 4437, 1, 0, 0, 0, 0, 4439, 1, 0, 0, 0, 0, 4441, 1, 0, 0, 0, 0, 4443, 1, 0, 0, 0, 0, 4445, 1, 0, 0, 0, 0, 4447, 1, 0, 0, 0, 0, 4449, 1, 0, 0, 0, 0, 4451, 1, 0, 0, 0, 0, 4453, 1, 0, 0, 0, 0, 4455, 1, 0, 0, 0, 0, 4457, 1, 0, 0, 0, 0, 4459, 1, 0, 0, 0, 0, 4461, 1, 0, 0, 0, 0, 4463, 1, 0, 0, 0, 0, 4465, 1, 0, 0, 0, 0, 4467, 1, 0, 0, 0, 0, 4469, 1, 0, 0, 0, 0, 4471, 1, 0, 0, 0, 0, 4473, 1, 0, 0, 0, 0, 4475, 1, 0, 0, 0, 0, 4477, 1, 0, 0, 0, 0, 4479, 1, 0, 0, 0, 0, 4481, 1, 0, 0, 0, 0, 4483, 1, 0, 0, 0, 0, 4485, 1, 0, 0, 0, 0, 4487, 1, 0, 0, 0, 0, 4489, 1, 0, 0, 0, 0, 4491, 1, 0, 0, 0, 0, 4493, 1, 0, 0, 0, 0, 4495, 1, 0, 0, 0, 0, 4497, 1, 0, 0, 0, 0, 4499, 1, 0, 0, 0, 0, 4501, 1, 0, 0, 0, 0, 4503, 1, 0, 0, 0, 0, 4505, 1, 0, 0, 0, 0, 4507, 1, 0, 0, 0, 0, 4509, 1, 0, 0, 0, 0, 4511, 1, 0, 0, 0, 0, 4513, 1, 0, 0, 0, 0, 4515, 1, 0, 0, 0, 0, 4517, 1, 0, 0, 0, 0, 4519, 1, 0, 0, 0, 0, 4521, 1, 0, 0, 0, 0, 4523, 1, 0, 0, 0, 0, 4525, 1, 0, 0, 0, 0, 4527, 1, 0, 0, 0, 0, 4529, 1, 0, 0, 0, 0, 4531, 1, 0, 0, 0, 0, 4533, 1, 0, 0, 0, 0, 4535, 1, 0, 0, 0, 0, 4537, 1, 0, 0, 0, 0, 4539, 1, 0, 0, 0, 0, 4541, 1, 0, 0, 0, 0, 4543, 1, 0, 0, 0, 0, 4545, 1, 0, 0, 0, 0, 4547, 1, 0, 0, 0, 0, 4549, 1, 0, 0, 0, 0, 4551, 1, 0, 0, 0, 0, 4553, 1, 0, 0, 0, 0, 4555, 1, 0, 0, 0, 0, 4557, 1, 0, 0, 0, 0, 4559, 1, 0, 0, 0, 0, 4561, 1, 0, 0, 0, 0, 4563, 1, 0, 0, 0, 0, 4565, 1, 0, 0, 0, 0, 4567, 1, 0, 0, 0, 0, 4569, 1, 0, 0, 0, 0, 4571, 1, 0, 0, 0, 0, 4573, 1, 0, 0, 0, 0, 4575, 1, 0, 0, 0, 0, 4577, 1, 0, 0, 0, 0, 4579, 1, 0, 0, 0, 0, 4581, 1, 0, 0, 0, 0, 4583, 1, 0, 0, 0, 0, 4585, 1, 0, 0, 0, 0, 4587, 1, 0, 0, 0, 0, 4589, 1, 0, 0, 0, 0, 4591, 1, 0, 0, 0, 0, 4593, 1, 0, 0, 0, 0, 4595, 1, 0, 0, 0, 0, 4597, 1, 0, 0, 0, 0, 4599, 1, 0, 0, 0, 0, 4601, 1, 0, 0, 0, 0, 4603, 1, 0, 0, 0, 0, 4605, 1, 0, 0, 0, 0, 4607, 1, 0, 0, 0, 0, 4609, 1, 0, 0, 0, 0, 4611, 1, 0, 0, 0, 0, 4613, 1, 0, 0, 0, 0, 4615, 1, 0, 0, 0, 0, 4617, 1, 0, 0, 0, 0, 4619, 1, 0, 0, 0, 0, 4621, 1, 0, 0, 0, 0, 4623, 1, 0, 0, 0, 0, 4625, 1, 0, 0, 0, 0, 4627, 1, 0, 0, 0, 0, 4629, 1, 0, 0, 0, 0, 4631, 1, 0, 0, 0, 0, 4633, 1, 0, 0, 0, 0, 4635, 1, 0, 0, 0, 0, 4637, 1, 0, 0, 0, 0, 4639, 1, 0, 0, 0, 0, 4641, 1, 0, 0, 0, 0, 4643, 1, 0, 0, 0, 0, 4645, 1, 0, 0, 0, 0, 4647, 1, 0, 0, 0, 0, 4649, 1, 0, 0, 0, 0, 4651, 1, 0, 0, 0, 0, 4653, 1, 0, 0, 0, 0, 4655, 1, 0, 0, 0, 0, 4657, 1, 0, 0, 0, 0, 4659, 1, 0, 0, 0, 0, 4661, 1, 0, 0, 0, 0, 4663, 1, 0, 0, 0, 0, 4665, 1, 0, 0, 0, 0, 4667, 1, 0, 0, 0, 0, 4669, 1, 0, 0, 0, 0, 4671, 1, 0, 0, 0, 0, 4673, 1, 0, 0, 0, 0, 4675, 1, 0, 0, 0, 0, 4677, 1, 0, 0, 0, 0, 4679, 1, 0, 0, 0, 0, 4681, 1, 0, 0, 0, 0, 4683, 1, 0, 0, 0, 0, 4685, 1, 0, 0, 0, 0, 4687, 1, 0, 0, 0, 0, 4689, 1, 0, 0, 0, 0, 4691, 1, 0, 0, 0, 0, 4693, 1, 0, 0, 0, 0, 4695, 1, 0, 0, 0, 0, 4697, 1, 0, 0, 0, 0, 4699, 1, 0, 0, 0, 0, 4701, 1, 0, 0, 0, 0, 4703, 1, 0, 0, 0, 0, 4705, 1, 0, 0, 0, 0, 4707, 1, 0, 0, 0, 0, 4709, 1, 0, 0, 0, 0, 4711, 1, 0, 0, 0, 0, 4713, 1, 0, 0, 0, 0, 4715, 1, 0, 0, 0, 0, 4717, 1, 0, 0, 0, 0, 4719, 1, 0, 0, 0, 0, 4721, 1, 0, 0, 0, 0, 4723, 1, 0, 0, 0, 0, 4725, 1, 0, 0, 0, 0, 4727, 1, 0, 0, 0, 0, 4729, 1, 0, 0, 0, 0, 4731, 1, 0, 0, 0, 0, 4733, 1, 0, 0, 0, 0, 4735, 1, 0, 0, 0, 0, 4737, 1, 0, 0, 0, 0, 4739, 1, 0, 0, 0, 0, 4741, 1, 0, 0, 0, 0, 4743, 1, 0, 0, 0, 0, 4745, 1, 0, 0, 0, 0, 4747, 1, 0, 0, 0, 0, 4749, 1, 0, 0, 0, 0, 4751, 1, 0, 0, 0, 0, 4753, 1, 0, 0, 0, 0, 4755, 1, 0, 0, 0, 0, 4757, 1, 0, 0, 0, 0, 4759, 1, 0, 0, 0, 0, 4761, 1, 0, 0, 0, 0, 4763, 1, 0, 0, 0, 0, 4765, 1, 0, 0, 0, 0, 4767, 1, 0, 0, 0, 0, 4769, 1, 0, 0, 0, 0, 4771, 1, 0, 0, 0, 0, 4773, 1, 0, 0, 0, 0, 4775, 1, 0, 0, 0, 0, 4777, 1, 0, 0, 0, 0, 4779, 1, 0, 0, 0, 0, 4781, 1, 0, 0, 0, 0, 4783, 1, 0, 0, 0, 0, 4785, 1, 0, 0, 0, 0, 4787, 1, 0, 0, 0, 0, 4789, 1, 0, 0, 0, 0, 4791, 1, 0, 0, 0, 0, 4793, 1, 0, 0, 0, 0, 4795, 1, 0, 0, 0, 0, 4797, 1, 0, 0, 0, 0, 4799, 1, 0, 0, 0, 0, 4801, 1, 0, 0, 0, 0, 4803, 1, 0, 0, 0, 0, 4805, 1, 0, 0, 0, 0, 4807, 1, 0, 0, 0, 0, 4809, 1, 0, 0, 0, 0, 4811, 1, 0, 0, 0, 0, 4813, 1, 0, 0, 0, 0, 4815, 1, 0, 0, 0, 0, 4817, 1, 0, 0, 0, 0, 4819, 1, 0, 0, 0, 0, 4821, 1, 0, 0, 0, 0, 4823, 1, 0, 0, 0, 0, 4825, 1, 0, 0, 0, 0, 4827, 1, 0, 0, 0, 0, 4829, 1, 0, 0, 0, 0, 4831, 1, 0, 0, 0, 0, 4833, 1, 0, 0, 0, 0, 4835, 1, 0, 0, 0, 0, 4837, 1, 0, 0, 0, 0, 4839, 1, 0, 0, 0, 0, 4841, 1, 0, 0, 0, 0, 4843, 1, 0, 0, 0, 0, 4845, 1, 0, 0, 0, 0, 4847, 1, 0, 0, 0, 0, 4849, 1, 0, 0, 0, 0, 4851, 1, 0, 0, 0, 0, 4853, 1, 0, 0, 0, 0, 4855, 1, 0, 0, 0, 0, 4857, 1, 0, 0, 0, 0, 4859, 1, 0, 0, 0, 0, 4861, 1, 0, 0, 0, 0, 4863, 1, 0, 0, 0, 0, 4865, 1, 0, 0, 0, 0, 4867, 1, 0, 0, 0, 0, 4869, 1, 0, 0, 0, 0, 4871, 1, 0, 0, 0, 0, 4873, 1, 0, 0, 0, 0, 4875, 1, 0, 0, 0, 0, 4877, 1, 0, 0, 0, 0, 4879, 1, 0, 0, 0, 0, 4881, 1, 0, 0, 0, 0, 4883, 1, 0, 0, 0, 0, 4907, 1, 0, 0, 0, 0, 4909, 1, 0, 0, 0, 0, 4911, 1, 0, 0, 0, 0, 4913, 1, 0, 0, 0, 0, 4915, 1, 0, 0, 0, 0, 4917, 1, 0, 0, 0, 0, 4919, 1, 0, 0, 0, 0, 4921, 1, 0, 0, 0, 0, 4923, 1, 0, 0, 0, 0, 4925, 1, 0, 0, 0, 0, 4927, 1, 0, 0, 0, 0, 4929, 1, 0, 0, 0, 0, 4931, 1, 0, 0, 0, 0, 4933, 1, 0, 0, 0, 0, 4935, 1, 0, 0, 0, 0, 4937, 1, 0, 0, 0, 0, 4939, 1, 0, 0, 0, 0, 4941, 1, 0, 0, 0, 0, 4943, 1, 0, 0, 0, 0, 4945, 1, 0, 0, 0, 0, 4947, 1, 0, 0, 0, 0, 4949, 1, 0, 0, 0, 0, 4951, 1, 0, 0, 0, 0, 4953, 1, 0, 0, 0, 0, 4955, 1, 0, 0, 0, 0, 4957, 1, 0, 0, 0, 0, 4959, 1, 0, 0, 0, 0, 4961, 1, 0, 0, 0, 0, 4963, 1, 0, 0, 0, 0, 4965, 1, 0, 0, 0, 0, 4967, 1, 0, 0, 0, 0, 4969, 1, 0, 0, 0, 0, 4971, 1, 0, 0, 0, 0, 4973, 1, 0, 0, 0, 0, 4975, 1, 0, 0, 0, 0, 4977, 1, 0, 0, 0, 0, 4979, 1, 0, 0, 0, 0, 4981, 1, 0, 0, 0, 0, 4983, 1, 0, 0, 0, 1, 4997, 1, 0, 0, 0, 3, 5003, 1, 0, 0, 0, 5, 5007, 1, 0, 0, 0, 7, 5014, 1, 0, 0, 0, 9, 5021, 1, 0, 0, 0, 11, 5030, 1, 0, 0, 0, 13, 5041, 1, 0, 0, 0, 15, 5049, 1, 0, 0, 0, 17, 5053, 1, 0, 0, 0, 19, 5058, 1, 0, 0, 0, 21, 5065, 1, 0, 0, 0, 23, 5072, 1, 0, 0, 0, 25, 5080, 1, 0, 0, 0, 27, 5089, 1, 0, 0, 0, 29, 5096, 1, 0, 0, 0, 31, 5113, 1, 0, 0, 0, 33, 5125, 1, 0, 0, 0, 35, 5141, 1, 0, 0, 0, 37, 5152, 1, 0, 0, 0, 39, 5161, 1, 0, 0, 0, 41, 5175, 1, 0, 0, 0, 43, 5179, 1, 0, 0, 0, 45, 5190, 1, 0, 0, 0, 47, 5200, 1, 0, 0, 0, 49, 5211, 1, 0, 0, 0, 51, 5220, 1, 0, 0, 0, 53, 5226, 1, 0, 0, 0, 55, 5237, 1, 0, 0, 0, 57, 5251, 1, 0, 0, 0, 59, 5260, 1, 0, 0, 0, 61, 5267, 1, 0, 0, 0, 63, 5275, 1, 0, 0, 0, 65, 5290, 1, 0, 0, 0, 67, 5296, 1, 0, 0, 0, 69, 5302, 1, 0, 0, 0, 71, 5312, 1, 0, 0, 0, 73, 5314, 1, 0, 0, 0, 75, 5320, 1, 0, 0, 0, 77, 5324, 1, 0, 0, 0, 79, 5333, 1, 0, 0, 0, 81, 5339, 1, 0, 0, 0, 83, 5348, 1, 0, 0, 0, 85, 5354, 1, 0, 0, 0, 87, 5364, 1, 0, 0, 0, 89, 5371, 1, 0, 0, 0, 91, 5380, 1, 0, 0, 0, 93, 5388, 1, 0, 0, 0, 95, 5397, 1, 0, 0, 0, 97, 5407, 1, 0, 0, 0, 99, 5411, 1, 0, 0, 0, 101, 5421, 1, 0, 0, 0, 103, 5433, 1, 0, 0, 0, 105, 5441, 1, 0, 0, 0, 107, 5453, 1, 0, 0, 0, 109, 5462, 1, 0, 0, 0, 111, 5466, 1, 0, 0, 0, 113, 5476, 1, 0, 0, 0, 115, 5483, 1, 0, 0, 0, 117, 5498, 1, 0, 0, 0, 119, 5512, 1, 0, 0, 0, 121, 5524, 1, 0, 0, 0, 123, 5530, 1, 0, 0, 0, 125, 5552, 1, 0, 0, 0, 127, 5561, 1, 0, 0, 0, 129, 5569, 1, 0, 0, 0, 131, 5578, 1, 0, 0, 0, 133, 5589, 1, 0, 0, 0, 135, 5593, 1, 0, 0, 0, 137, 5599, 1, 0, 0, 0, 139, 5602, 1, 0, 0, 0, 141, 5606, 1, 0, 0, 0, 143, 5612, 1, 0, 0, 0, 145, 5621, 1, 0, 0, 0, 147, 5626, 1, 0, 0, 0, 149, 5631, 1, 0, 0, 0, 151, 5640, 1, 0, 0, 0, 153, 5647, 1, 0, 0, 0, 155, 5657, 1, 0, 0, 0, 157, 5663, 1, 0, 0, 0, 159, 5676, 1, 0, 0, 0, 161, 5682, 1, 0, 0, 0, 163, 5687, 1, 0, 0, 0, 165, 5690, 1, 0, 0, 0, 167, 5700, 1, 0, 0, 0, 169, 5711, 1, 0, 0, 0, 171, 5717, 1, 0, 0, 0, 173, 5731, 1, 0, 0, 0, 175, 5746, 1, 0, 0, 0, 177, 5753, 1, 0, 0, 0, 179, 5767, 1, 0, 0, 0, 181, 5780, 1, 0, 0, 0, 183, 5785, 1, 0, 0, 0, 185, 5796, 1, 0, 0, 0, 187, 5807, 1, 0, 0, 0, 189, 5818, 1, 0, 0, 0, 191, 5828, 1, 0, 0, 0, 193, 5851, 1, 0, 0, 0, 195, 5867, 1, 0, 0, 0, 197, 5880, 1, 0, 0, 0, 199, 5885, 1, 0, 0, 0, 201, 5896, 1, 0, 0, 0, 203, 5908, 1, 0, 0, 0, 205, 5915, 1, 0, 0, 0, 207, 5923, 1, 0, 0, 0, 209, 5933, 1, 0, 0, 0, 211, 5941, 1, 0, 0, 0, 213, 5947, 1, 0, 0, 0, 215, 5957, 1, 0, 0, 0, 217, 5963, 1, 0, 0, 0, 219, 5973, 1, 0, 0, 0, 221, 6001, 1, 0, 0, 0, 223, 6008, 1, 0, 0, 0, 225, 6015, 1, 0, 0, 0, 227, 6021, 1, 0, 0, 0, 229, 6031, 1, 0, 0, 0, 231, 6050, 1, 0, 0, 0, 233, 6057, 1, 0, 0, 0, 235, 6066, 1, 0, 0, 0, 237, 6074, 1, 0, 0, 0, 239, 6080, 1, 0, 0, 0, 241, 6090, 1, 0, 0, 0, 243, 6094, 1, 0, 0, 0, 245, 6102, 1, 0, 0, 0, 247, 6109, 1, 0, 0, 0, 249, 6116, 1, 0, 0, 0, 251, 6130, 1, 0, 0, 0, 253, 6153, 1, 0, 0, 0, 255, 6171, 1, 0, 0, 0, 257, 6184, 1, 0, 0, 0, 259, 6206, 1, 0, 0, 0, 261, 6223, 1, 0, 0, 0, 263, 6238, 1, 0, 0, 0, 265, 6249, 1, 0, 0, 0, 267, 6257, 1, 0, 0, 0, 269, 6268, 1, 0, 0, 0, 271, 6275, 1, 0, 0, 0, 273, 6286, 1, 0, 0, 0, 275, 6293, 1, 0, 0, 0, 277, 6301, 1, 0, 0, 0, 279, 6313, 1, 0, 0, 0, 281, 6318, 1, 0, 0, 0, 283, 6325, 1, 0, 0, 0, 285, 6330, 1, 0, 0, 0, 287, 6336, 1, 0, 0, 0, 289, 6348, 1, 0, 0, 0, 291, 6355, 1, 0, 0, 0, 293, 6365, 1, 0, 0, 0, 295, 6370, 1, 0, 0, 0, 297, 6378, 1, 0, 0, 0, 299, 6383, 1, 0, 0, 0, 301, 6389, 1, 0, 0, 0, 303, 6396, 1, 0, 0, 0, 305, 6404, 1, 0, 0, 0, 307, 6414, 1, 0, 0, 0, 309, 6419, 1, 0, 0, 0, 311, 6426, 1, 0, 0, 0, 313, 6439, 1, 0, 0, 0, 315, 6451, 1, 0, 0, 0, 317, 6457, 1, 0, 0, 0, 319, 6462, 1, 0, 0, 0, 321, 6465, 1, 0, 0, 0, 323, 6488, 1, 0, 0, 0, 325, 6500, 1, 0, 0, 0, 327, 6505, 1, 0, 0, 0, 329, 6511, 1, 0, 0, 0, 331, 6525, 1, 0, 0, 0, 333, 6531, 1, 0, 0, 0, 335, 6540, 1, 0, 0, 0, 337, 6556, 1, 0, 0, 0, 339, 6573, 1, 0, 0, 0, 341, 6581, 1, 0, 0, 0, 343, 6592, 1, 0, 0, 0, 345, 6601, 1, 0, 0, 0, 347, 6606, 1, 0, 0, 0, 349, 6613, 1, 0, 0, 0, 351, 6623, 1, 0, 0, 0, 353, 6632, 1, 0, 0, 0, 355, 6640, 1, 0, 0, 0, 357, 6652, 1, 0, 0, 0, 359, 6660, 1, 0, 0, 0, 361, 6665, 1, 0, 0, 0, 363, 6670, 1, 0, 0, 0, 365, 6685, 1, 0, 0, 0, 367, 6694, 1, 0, 0, 0, 369, 6706, 1, 0, 0, 0, 371, 6711, 1, 0, 0, 0, 373, 6728, 1, 0, 0, 0, 375, 6740, 1, 0, 0, 0, 377, 6746, 1, 0, 0, 0, 379, 6754, 1, 0, 0, 0, 381, 6761, 1, 0, 0, 0, 383, 6776, 1, 0, 0, 0, 385, 6802, 1, 0, 0, 0, 387, 6812, 1, 0, 0, 0, 389, 6823, 1, 0, 0, 0, 391, 6836, 1, 0, 0, 0, 393, 6841, 1, 0, 0, 0, 395, 6849, 1, 0, 0, 0, 397, 6861, 1, 0, 0, 0, 399, 6879, 1, 0, 0, 0, 401, 6885, 1, 0, 0, 0, 403, 6896, 1, 0, 0, 0, 405, 6902, 1, 0, 0, 0, 407, 6909, 1, 0, 0, 0, 409, 6913, 1, 0, 0, 0, 411, 6919, 1, 0, 0, 0, 413, 6925, 1, 0, 0, 0, 415, 6940, 1, 0, 0, 0, 417, 6951, 1, 0, 0, 0, 419, 6958, 1, 0, 0, 0, 421, 6964, 1, 0, 0, 0, 423, 6972, 1, 0, 0, 0, 425, 6978, 1, 0, 0, 0, 427, 6980, 1, 0, 0, 0, 429, 6987, 1, 0, 0, 0, 431, 6992, 1, 0, 0, 0, 433, 6998, 1, 0, 0, 0, 435, 7024, 1, 0, 0, 0, 437, 7030, 1, 0, 0, 0, 439, 7047, 1, 0, 0, 0, 441, 7055, 1, 0, 0, 0, 443, 7071, 1, 0, 0, 0, 445, 7088, 1, 0, 0, 0, 447, 7099, 1, 0, 0, 0, 449, 7110, 1, 0, 0, 0, 451, 7128, 1, 0, 0, 0, 453, 7148, 1, 0, 0, 0, 455, 7160, 1, 0, 0, 0, 457, 7169, 1, 0, 0, 0, 459, 7181, 1, 0, 0, 0, 461, 7188, 1, 0, 0, 0, 463, 7200, 1, 0, 0, 0, 465, 7205, 1, 0, 0, 0, 467, 7213, 1, 0, 0, 0, 469, 7224, 1, 0, 0, 0, 471, 7233, 1, 0, 0, 0, 473, 7255, 1, 0, 0, 0, 475, 7262, 1, 0, 0, 0, 477, 7270, 1, 0, 0, 0, 479, 7283, 1, 0, 0, 0, 481, 7296, 1, 0, 0, 0, 483, 7304, 1, 0, 0, 0, 485, 7311, 1, 0, 0, 0, 487, 7321, 1, 0, 0, 0, 489, 7328, 1, 0, 0, 0, 491, 7340, 1, 0, 0, 0, 493, 7348, 1, 0, 0, 0, 495, 7359, 1, 0, 0, 0, 497, 7373, 1, 0, 0, 0, 499, 7381, 1, 0, 0, 0, 501, 7390, 1, 0, 0, 0, 503, 7401, 1, 0, 0, 0, 505, 7411, 1, 0, 0, 0, 507, 7422, 1, 0, 0, 0, 509, 7430, 1, 0, 0, 0, 511, 7440, 1, 0, 0, 0, 513, 7456, 1, 0, 0, 0, 515, 7465, 1, 0, 0, 0, 517, 7474, 1, 0, 0, 0, 519, 7486, 1, 0, 0, 0, 521, 7494, 1, 0, 0, 0, 523, 7501, 1, 0, 0, 0, 525, 7516, 1, 0, 0, 0, 527, 7528, 1, 0, 0, 0, 529, 7538, 1, 0, 0, 0, 531, 7546, 1, 0, 0, 0, 533, 7557, 1, 0, 0, 0, 535, 7572, 1, 0, 0, 0, 537, 7579, 1, 0, 0, 0, 539, 7594, 1, 0, 0, 0, 541, 7617, 1, 0, 0, 0, 543, 7639, 1, 0, 0, 0, 545, 7661, 1, 0, 0, 0, 547, 7682, 1, 0, 0, 0, 549, 7703, 1, 0, 0, 0, 551, 7722, 1, 0, 0, 0, 553, 7740, 1, 0, 0, 0, 555, 7756, 1, 0, 0, 0, 557, 7764, 1, 0, 0, 0, 559, 7777, 1, 0, 0, 0, 561, 7786, 1, 0, 0, 0, 563, 7797, 1, 0, 0, 0, 565, 7806, 1, 0, 0, 0, 567, 7812, 1, 0, 0, 0, 569, 7823, 1, 0, 0, 0, 571, 7835, 1, 0, 0, 0, 573, 7847, 1, 0, 0, 0, 575, 7857, 1, 0, 0, 0, 577, 7868, 1, 0, 0, 0, 579, 7887, 1, 0, 0, 0, 581, 7902, 1, 0, 0, 0, 583, 7916, 1, 0, 0, 0, 585, 7924, 1, 0, 0, 0, 587, 7933, 1, 0, 0, 0, 589, 7941, 1, 0, 0, 0, 591, 7950, 1, 0, 0, 0, 593, 7962, 1, 0, 0, 0, 595, 7976, 1, 0, 0, 0, 597, 7984, 1, 0, 0, 0, 599, 7995, 1, 0, 0, 0, 601, 8002, 1, 0, 0, 0, 603, 8007, 1, 0, 0, 0, 605, 8014, 1, 0, 0, 0, 607, 8021, 1, 0, 0, 0, 609, 8032, 1, 0, 0, 0, 611, 8048, 1, 0, 0, 0, 613, 8060, 1, 0, 0, 0, 615, 8064, 1, 0, 0, 0, 617, 8069, 1, 0, 0, 0, 619, 8074, 1, 0, 0, 0, 621, 8097, 1, 0, 0, 0, 623, 8103, 1, 0, 0, 0, 625, 8111, 1, 0, 0, 0, 627, 8121, 1, 0, 0, 0, 629, 8132, 1, 0, 0, 0, 631, 8144, 1, 0, 0, 0, 633, 8157, 1, 0, 0, 0, 635, 8173, 1, 0, 0, 0, 637, 8179, 1, 0, 0, 0, 639, 8186, 1, 0, 0, 0, 641, 8203, 1, 0, 0, 0, 643, 8226, 1, 0, 0, 0, 645, 8235, 1, 0, 0, 0, 647, 8246, 1, 0, 0, 0, 649, 8255, 1, 0, 0, 0, 651, 8261, 1, 0, 0, 0, 653, 8274, 1, 0, 0, 0, 655, 8284, 1, 0, 0, 0, 657, 8288, 1, 0, 0, 0, 659, 8296, 1, 0, 0, 0, 661, 8301, 1, 0, 0, 0, 663, 8309, 1, 0, 0, 0, 665, 8317, 1, 0, 0, 0, 667, 8328, 1, 0, 0, 0, 669, 8336, 1, 0, 0, 0, 671, 8349, 1, 0, 0, 0, 673, 8364, 1, 0, 0, 0, 675, 8377, 1, 0, 0, 0, 677, 8395, 1, 0, 0, 0, 679, 8408, 1, 0, 0, 0, 681, 8417, 1, 0, 0, 0, 683, 8424, 1, 0, 0, 0, 685, 8445, 1, 0, 0, 0, 687, 8469, 1, 0, 0, 0, 689, 8481, 1, 0, 0, 0, 691, 8484, 1, 0, 0, 0, 693, 8490, 1, 0, 0, 0, 695, 8499, 1, 0, 0, 0, 697, 8508, 1, 0, 0, 0, 699, 8513, 1, 0, 0, 0, 701, 8522, 1, 0, 0, 0, 703, 8532, 1, 0, 0, 0, 705, 8548, 1, 0, 0, 0, 707, 8561, 1, 0, 0, 0, 709, 8571, 1, 0, 0, 0, 711, 8596, 1, 0, 0, 0, 713, 8617, 1, 0, 0, 0, 715, 8626, 1, 0, 0, 0, 717, 8654, 1, 0, 0, 0, 719, 8659, 1, 0, 0, 0, 721, 8670, 1, 0, 0, 0, 723, 8682, 1, 0, 0, 0, 725, 8692, 1, 0, 0, 0, 727, 8696, 1, 0, 0, 0, 729, 8701, 1, 0, 0, 0, 731, 8715, 1, 0, 0, 0, 733, 8719, 1, 0, 0, 0, 735, 8734, 1, 0, 0, 0, 737, 8741, 1, 0, 0, 0, 739, 8752, 1, 0, 0, 0, 741, 8767, 1, 0, 0, 0, 743, 8778, 1, 0, 0, 0, 745, 8793, 1, 0, 0, 0, 747, 8804, 1, 0, 0, 0, 749, 8808, 1, 0, 0, 0, 751, 8819, 1, 0, 0, 0, 753, 8825, 1, 0, 0, 0, 755, 8834, 1, 0, 0, 0, 757, 8838, 1, 0, 0, 0, 759, 8846, 1, 0, 0, 0, 761, 8854, 1, 0, 0, 0, 763, 8864, 1, 0, 0, 0, 765, 8876, 1, 0, 0, 0, 767, 8881, 1, 0, 0, 0, 769, 8891, 1, 0, 0, 0, 771, 8899, 1, 0, 0, 0, 773, 8911, 1, 0, 0, 0, 775, 8919, 1, 0, 0, 0, 777, 8929, 1, 0, 0, 0, 779, 8938, 1, 0, 0, 0, 781, 8956, 1, 0, 0, 0, 783, 8975, 1, 0, 0, 0, 785, 8986, 1, 0, 0, 0, 787, 8995, 1, 0, 0, 0, 789, 9003, 1, 0, 0, 0, 791, 9010, 1, 0, 0, 0, 793, 9018, 1, 0, 0, 0, 795, 9025, 1, 0, 0, 0, 797, 9031, 1, 0, 0, 0, 799, 9040, 1, 0, 0, 0, 801, 9051, 1, 0, 0, 0, 803, 9058, 1, 0, 0, 0, 805, 9068, 1, 0, 0, 0, 807, 9078, 1, 0, 0, 0, 809, 9085, 1, 0, 0, 0, 811, 9097, 1, 0, 0, 0, 813, 9107, 1, 0, 0, 0, 815, 9117, 1, 0, 0, 0, 817, 9123, 1, 0, 0, 0, 819, 9131, 1, 0, 0, 0, 821, 9137, 1, 0, 0, 0, 823, 9154, 1, 0, 0, 0, 825, 9159, 1, 0, 0, 0, 827, 9171, 1, 0, 0, 0, 829, 9179, 1, 0, 0, 0, 831, 9188, 1, 0, 0, 0, 833, 9197, 1, 0, 0, 0, 835, 9208, 1, 0, 0, 0, 837, 9222, 1, 0, 0, 0, 839, 9233, 1, 0, 0, 0, 841, 9243, 1, 0, 0, 0, 843, 9254, 1, 0, 0, 0, 845, 9263, 1, 0, 0, 0, 847, 9275, 1, 0, 0, 0, 849, 9285, 1, 0, 0, 0, 851, 9297, 1, 0, 0, 0, 853, 9309, 1, 0, 0, 0, 855, 9317, 1, 0, 0, 0, 857, 9326, 1, 0, 0, 0, 859, 9355, 1, 0, 0, 0, 861, 9376, 1, 0, 0, 0, 863, 9391, 1, 0, 0, 0, 865, 9404, 1, 0, 0, 0, 867, 9413, 1, 0, 0, 0, 869, 9426, 1, 0, 0, 0, 871, 9434, 1, 0, 0, 0, 873, 9446, 1, 0, 0, 0, 875, 9457, 1, 0, 0, 0, 877, 9462, 1, 0, 0, 0, 879, 9472, 1, 0, 0, 0, 881, 9485, 1, 0, 0, 0, 883, 9491, 1, 0, 0, 0, 885, 9500, 1, 0, 0, 0, 887, 9509, 1, 0, 0, 0, 889, 9523, 1, 0, 0, 0, 891, 9535, 1, 0, 0, 0, 893, 9546, 1, 0, 0, 0, 895, 9550, 1, 0, 0, 0, 897, 9561, 1, 0, 0, 0, 899, 9574, 1, 0, 0, 0, 901, 9586, 1, 0, 0, 0, 903, 9603, 1, 0, 0, 0, 905, 9615, 1, 0, 0, 0, 907, 9624, 1, 0, 0, 0, 909, 9630, 1, 0, 0, 0, 911, 9637, 1, 0, 0, 0, 913, 9642, 1, 0, 0, 0, 915, 9649, 1, 0, 0, 0, 917, 9653, 1, 0, 0, 0, 919, 9659, 1, 0, 0, 0, 921, 9679, 1, 0, 0, 0, 923, 9700, 1, 0, 0, 0, 925, 9718, 1, 0, 0, 0, 927, 9725, 1, 0, 0, 0, 929, 9735, 1, 0, 0, 0, 931, 9748, 1, 0, 0, 0, 933, 9760, 1, 0, 0, 0, 935, 9765, 1, 0, 0, 0, 937, 9776, 1, 0, 0, 0, 939, 9801, 1, 0, 0, 0, 941, 9825, 1, 0, 0, 0, 943, 9830, 1, 0, 0, 0, 945, 9838, 1, 0, 0, 0, 947, 9848, 1, 0, 0, 0, 949, 9851, 1, 0, 0, 0, 951, 9859, 1, 0, 0, 0, 953, 9876, 1, 0, 0, 0, 955, 9901, 1, 0, 0, 0, 957, 9903, 1, 0, 0, 0, 959, 9908, 1, 0, 0, 0, 961, 9920, 1, 0, 0, 0, 963, 9928, 1, 0, 0, 0, 965, 9939, 1, 0, 0, 0, 967, 9948, 1, 0, 0, 0, 969, 9956, 1, 0, 0, 0, 971, 9969, 1, 0, 0, 0, 973, 9984, 1, 0, 0, 0, 975, 9998, 1, 0, 0, 0, 977, 10019, 1, 0, 0, 0, 979, 10024, 1, 0, 0, 0, 981, 10030, 1, 0, 0, 0, 983, 10033, 1, 0, 0, 0, 985, 10042, 1, 0, 0, 0, 987, 10053, 1, 0, 0, 0, 989, 10064, 1, 0, 0, 0, 991, 10070, 1, 0, 0, 0, 993, 10081, 1, 0, 0, 0, 995, 10088, 1, 0, 0, 0, 997, 10096, 1, 0, 0, 0, 999, 10116, 1, 0, 0, 0, 1001, 10130, 1, 0, 0, 0, 1003, 10139, 1, 0, 0, 0, 1005, 10148, 1, 0, 0, 0, 1007, 10156, 1, 0, 0, 0, 1009, 10167, 1, 0, 0, 0, 1011, 10189, 1, 0, 0, 0, 1013, 10193, 1, 0, 0, 0, 1015, 10210, 1, 0, 0, 0, 1017, 10217, 1, 0, 0, 0, 1019, 10226, 1, 0, 0, 0, 1021, 10234, 1, 0, 0, 0, 1023, 10242, 1, 0, 0, 0, 1025, 10253, 1, 0, 0, 0, 1027, 10268, 1, 0, 0, 0, 1029, 10274, 1, 0, 0, 0, 1031, 10283, 1, 0, 0, 0, 1033, 10287, 1, 0, 0, 0, 1035, 10302, 1, 0, 0, 0, 1037, 10308, 1, 0, 0, 0, 1039, 10330, 1, 0, 0, 0, 1041, 10337, 1, 0, 0, 0, 1043, 10349, 1, 0, 0, 0, 1045, 10360, 1, 0, 0, 0, 1047, 10367, 1, 0, 0, 0, 1049, 10375, 1, 0, 0, 0, 1051, 10384, 1, 0, 0, 0, 1053, 10389, 1, 0, 0, 0, 1055, 10398, 1, 0, 0, 0, 1057, 10407, 1, 0, 0, 0, 1059, 10418, 1, 0, 0, 0, 1061, 10425, 1, 0, 0, 0, 1063, 10431, 1, 0, 0, 0, 1065, 10438, 1, 0, 0, 0, 1067, 10448, 1, 0, 0, 0, 1069, 10463, 1, 0, 0, 0, 1071, 10474, 1, 0, 0, 0, 1073, 10483, 1, 0, 0, 0, 1075, 10491, 1, 0, 0, 0, 1077, 10501, 1, 0, 0, 0, 1079, 10511, 1, 0, 0, 0, 1081, 10519, 1, 0, 0, 0, 1083, 10526, 1, 0, 0, 0, 1085, 10535, 1, 0, 0, 0, 1087, 10542, 1, 0, 0, 0, 1089, 10553, 1, 0, 0, 0, 1091, 10558, 1, 0, 0, 0, 1093, 10579, 1, 0, 0, 0, 1095, 10592, 1, 0, 0, 0, 1097, 10596, 1, 0, 0, 0, 1099, 10603, 1, 0, 0, 0, 1101, 10611, 1, 0, 0, 0, 1103, 10621, 1, 0, 0, 0, 1105, 10628, 1, 0, 0, 0, 1107, 10644, 1, 0, 0, 0, 1109, 10652, 1, 0, 0, 0, 1111, 10660, 1, 0, 0, 0, 1113, 10667, 1, 0, 0, 0, 1115, 10675, 1, 0, 0, 0, 1117, 10684, 1, 0, 0, 0, 1119, 10695, 1, 0, 0, 0, 1121, 10710, 1, 0, 0, 0, 1123, 10718, 1, 0, 0, 0, 1125, 10731, 1, 0, 0, 0, 1127, 10737, 1, 0, 0, 0, 1129, 10746, 1, 0, 0, 0, 1131, 10751, 1, 0, 0, 0, 1133, 10758, 1, 0, 0, 0, 1135, 10773, 1, 0, 0, 0, 1137, 10780, 1, 0, 0, 0, 1139, 10802, 1, 0, 0, 0, 1141, 10812, 1, 0, 0, 0, 1143, 10821, 1, 0, 0, 0, 1145, 10829, 1, 0, 0, 0, 1147, 10835, 1, 0, 0, 0, 1149, 10842, 1, 0, 0, 0, 1151, 10846, 1, 0, 0, 0, 1153, 10851, 1, 0, 0, 0, 1155, 10861, 1, 0, 0, 0, 1157, 10869, 1, 0, 0, 0, 1159, 10877, 1, 0, 0, 0, 1161, 10893, 1, 0, 0, 0, 1163, 10904, 1, 0, 0, 0, 1165, 10916, 1, 0, 0, 0, 1167, 10930, 1, 0, 0, 0, 1169, 10936, 1, 0, 0, 0, 1171, 10942, 1, 0, 0, 0, 1173, 10949, 1, 0, 0, 0, 1175, 10954, 1, 0, 0, 0, 1177, 10972, 1, 0, 0, 0, 1179, 10982, 1, 0, 0, 0, 1181, 10992, 1, 0, 0, 0, 1183, 11016, 1, 0, 0, 0, 1185, 11023, 1, 0, 0, 0, 1187, 11029, 1, 0, 0, 0, 1189, 11034, 1, 0, 0, 0, 1191, 11041, 1, 0, 0, 0, 1193, 11047, 1, 0, 0, 0, 1195, 11054, 1, 0, 0, 0, 1197, 11065, 1, 0, 0, 0, 1199, 11077, 1, 0, 0, 0, 1201, 11083, 1, 0, 0, 0, 1203, 11099, 1, 0, 0, 0, 1205, 11107, 1, 0, 0, 0, 1207, 11117, 1, 0, 0, 0, 1209, 11129, 1, 0, 0, 0, 1211, 11135, 1, 0, 0, 0, 1213, 11140, 1, 0, 0, 0, 1215, 11145, 1, 0, 0, 0, 1217, 11151, 1, 0, 0, 0, 1219, 11157, 1, 0, 0, 0, 1221, 11164, 1, 0, 0, 0, 1223, 11174, 1, 0, 0, 0, 1225, 11182, 1, 0, 0, 0, 1227, 11189, 1, 0, 0, 0, 1229, 11195, 1, 0, 0, 0, 1231, 11219, 1, 0, 0, 0, 1233, 11227, 1, 0, 0, 0, 1235, 11235, 1, 0, 0, 0, 1237, 11239, 1, 0, 0, 0, 1239, 11246, 1, 0, 0, 0, 1241, 11254, 1, 0, 0, 0, 1243, 11270, 1, 0, 0, 0, 1245, 11279, 1, 0, 0, 0, 1247, 11289, 1, 0, 0, 0, 1249, 11299, 1, 0, 0, 0, 1251, 11305, 1, 0, 0, 0, 1253, 11310, 1, 0, 0, 0, 1255, 11318, 1, 0, 0, 0, 1257, 11323, 1, 0, 0, 0, 1259, 11348, 1, 0, 0, 0, 1261, 11357, 1, 0, 0, 0, 1263, 11367, 1, 0, 0, 0, 1265, 11371, 1, 0, 0, 0, 1267, 11373, 1, 0, 0, 0, 1269, 11401, 1, 0, 0, 0, 1271, 11424, 1, 0, 0, 0, 1273, 11440, 1, 0, 0, 0, 1275, 11453, 1, 0, 0, 0, 1277, 11463, 1, 0, 0, 0, 1279, 11467, 1, 0, 0, 0, 1281, 11474, 1, 0, 0, 0, 1283, 11483, 1, 0, 0, 0, 1285, 11495, 1, 0, 0, 0, 1287, 11516, 1, 0, 0, 0, 1289, 11521, 1, 0, 0, 0, 1291, 11527, 1, 0, 0, 0, 1293, 11536, 1, 0, 0, 0, 1295, 11542, 1, 0, 0, 0, 1297, 11551, 1, 0, 0, 0, 1299, 11560, 1, 0, 0, 0, 1301, 11572, 1, 0, 0, 0, 1303, 11579, 1, 0, 0, 0, 1305, 11590, 1, 0, 0, 0, 1307, 11600, 1, 0, 0, 0, 1309, 11606, 1, 0, 0, 0, 1311, 11622, 1, 0, 0, 0, 1313, 11633, 1, 0, 0, 0, 1315, 11641, 1, 0, 0, 0, 1317, 11646, 1, 0, 0, 0, 1319, 11655, 1, 0, 0, 0, 1321, 11663, 1, 0, 0, 0, 1323, 11670, 1, 0, 0, 0, 1325, 11677, 1, 0, 0, 0, 1327, 11682, 1, 0, 0, 0, 1329, 11687, 1, 0, 0, 0, 1331, 11696, 1, 0, 0, 0, 1333, 11705, 1, 0, 0, 0, 1335, 11712, 1, 0, 0, 0, 1337, 11717, 1, 0, 0, 0, 1339, 11728, 1, 0, 0, 0, 1341, 11741, 1, 0, 0, 0, 1343, 11753, 1, 0, 0, 0, 1345, 11763, 1, 0, 0, 0, 1347, 11768, 1, 0, 0, 0, 1349, 11782, 1, 0, 0, 0, 1351, 11794, 1, 0, 0, 0, 1353, 11798, 1, 0, 0, 0, 1355, 11803, 1, 0, 0, 0, 1357, 11809, 1, 0, 0, 0, 1359, 11814, 1, 0, 0, 0, 1361, 11827, 1, 0, 0, 0, 1363, 11834, 1, 0, 0, 0, 1365, 11836, 1, 0, 0, 0, 1367, 11847, 1, 0, 0, 0, 1369, 11858, 1, 0, 0, 0, 1371, 11867, 1, 0, 0, 0, 1373, 11880, 1, 0, 0, 0, 1375, 11883, 1, 0, 0, 0, 1377, 11893, 1, 0, 0, 0, 1379, 11896, 1, 0, 0, 0, 1381, 11903, 1, 0, 0, 0, 1383, 11926, 1, 0, 0, 0, 1385, 11954, 1, 0, 0, 0, 1387, 11981, 1, 0, 0, 0, 1389, 12001, 1, 0, 0, 0, 1391, 12005, 1, 0, 0, 0, 1393, 12015, 1, 0, 0, 0, 1395, 12022, 1, 0, 0, 0, 1397, 12029, 1, 0, 0, 0, 1399, 12038, 1, 0, 0, 0, 1401, 12060, 1, 0, 0, 0, 1403, 12068, 1, 0, 0, 0, 1405, 12084, 1, 0, 0, 0, 1407, 12094, 1, 0, 0, 0, 1409, 12106, 1, 0, 0, 0, 1411, 12116, 1, 0, 0, 0, 1413, 12121, 1, 0, 0, 0, 1415, 12128, 1, 0, 0, 0, 1417, 12138, 1, 0, 0, 0, 1419, 12152, 1, 0, 0, 0, 1421, 12163, 1, 0, 0, 0, 1423, 12171, 1, 0, 0, 0, 1425, 12179, 1, 0, 0, 0, 1427, 12189, 1, 0, 0, 0, 1429, 12202, 1, 0, 0, 0, 1431, 12208, 1, 0, 0, 0, 1433, 12217, 1, 0, 0, 0, 1435, 12228, 1, 0, 0, 0, 1437, 12239, 1, 0, 0, 0, 1439, 12249, 1, 0, 0, 0, 1441, 12262, 1, 0, 0, 0, 1443, 12276, 1, 0, 0, 0, 1445, 12285, 1, 0, 0, 0, 1447, 12296, 1, 0, 0, 0, 1449, 12312, 1, 0, 0, 0, 1451, 12325, 1, 0, 0, 0, 1453, 12339, 1, 0, 0, 0, 1455, 12348, 1, 0, 0, 0, 1457, 12360, 1, 0, 0, 0, 1459, 12370, 1, 0, 0, 0, 1461, 12381, 1, 0, 0, 0, 1463, 12391, 1, 0, 0, 0, 1465, 12399, 1, 0, 0, 0, 1467, 12408, 1, 0, 0, 0, 1469, 12422, 1, 0, 0, 0, 1471, 12430, 1, 0, 0, 0, 1473, 12433, 1, 0, 0, 0, 1475, 12441, 1, 0, 0, 0, 1477, 12449, 1, 0, 0, 0, 1479, 12461, 1, 0, 0, 0, 1481, 12471, 1, 0, 0, 0, 1483, 12480, 1, 0, 0, 0, 1485, 12487, 1, 0, 0, 0, 1487, 12505, 1, 0, 0, 0, 1489, 12514, 1, 0, 0, 0, 1491, 12533, 1, 0, 0, 0, 1493, 12550, 1, 0, 0, 0, 1495, 12556, 1, 0, 0, 0, 1497, 12562, 1, 0, 0, 0, 1499, 12570, 1, 0, 0, 0, 1501, 12582, 1, 0, 0, 0, 1503, 12602, 1, 0, 0, 0, 1505, 12623, 1, 0, 0, 0, 1507, 12638, 1, 0, 0, 0, 1509, 12645, 1, 0, 0, 0, 1511, 12660, 1, 0, 0, 0, 1513, 12676, 1, 0, 0, 0, 1515, 12685, 1, 0, 0, 0, 1517, 12695, 1, 0, 0, 0, 1519, 12708, 1, 0, 0, 0, 1521, 12718, 1, 0, 0, 0, 1523, 12726, 1, 0, 0, 0, 1525, 12733, 1, 0, 0, 0, 1527, 12740, 1, 0, 0, 0, 1529, 12747, 1, 0, 0, 0, 1531, 12754, 1, 0, 0, 0, 1533, 12760, 1, 0, 0, 0, 1535, 12768, 1, 0, 0, 0, 1537, 12780, 1, 0, 0, 0, 1539, 12793, 1, 0, 0, 0, 1541, 12810, 1, 0, 0, 0, 1543, 12823, 1, 0, 0, 0, 1545, 12835, 1, 0, 0, 0, 1547, 12845, 1, 0, 0, 0, 1549, 12854, 1, 0, 0, 0, 1551, 12858, 1, 0, 0, 0, 1553, 12867, 1, 0, 0, 0, 1555, 12872, 1, 0, 0, 0, 1557, 12883, 1, 0, 0, 0, 1559, 12896, 1, 0, 0, 0, 1561, 12906, 1, 0, 0, 0, 1563, 12916, 1, 0, 0, 0, 1565, 12927, 1, 0, 0, 0, 1567, 12930, 1, 0, 0, 0, 1569, 12938, 1, 0, 0, 0, 1571, 12948, 1, 0, 0, 0, 1573, 12964, 1, 0, 0, 0, 1575, 12970, 1, 0, 0, 0, 1577, 12978, 1, 0, 0, 0, 1579, 12995, 1, 0, 0, 0, 1581, 13000, 1, 0, 0, 0, 1583, 13004, 1, 0, 0, 0, 1585, 13009, 1, 0, 0, 0, 1587, 13023, 1, 0, 0, 0, 1589, 13034, 1, 0, 0, 0, 1591, 13045, 1, 0, 0, 0, 1593, 13058, 1, 0, 0, 0, 1595, 13070, 1, 0, 0, 0, 1597, 13078, 1, 0, 0, 0, 1599, 13083, 1, 0, 0, 0, 1601, 13098, 1, 0, 0, 0, 1603, 13110, 1, 0, 0, 0, 1605, 13120, 1, 0, 0, 0, 1607, 13131, 1, 0, 0, 0, 1609, 13146, 1, 0, 0, 0, 1611, 13157, 1, 0, 0, 0, 1613, 13176, 1, 0, 0, 0, 1615, 13194, 1, 0, 0, 0, 1617, 13209, 1, 0, 0, 0, 1619, 13220, 1, 0, 0, 0, 1621, 13222, 1, 0, 0, 0, 1623, 13238, 1, 0, 0, 0, 1625, 13243, 1, 0, 0, 0, 1627, 13252, 1, 0, 0, 0, 1629, 13256, 1, 0, 0, 0, 1631, 13267, 1, 0, 0, 0, 1633, 13275, 1, 0, 0, 0, 1635, 13280, 1, 0, 0, 0, 1637, 13289, 1, 0, 0, 0, 1639, 13294, 1, 0, 0, 0, 1641, 13300, 1, 0, 0, 0, 1643, 13309, 1, 0, 0, 0, 1645, 13318, 1, 0, 0, 0, 1647, 13323, 1, 0, 0, 0, 1649, 13334, 1, 0, 0, 0, 1651, 13342, 1, 0, 0, 0, 1653, 13349, 1, 0, 0, 0, 1655, 13353, 1, 0, 0, 0, 1657, 13359, 1, 0, 0, 0, 1659, 13385, 1, 0, 0, 0, 1661, 13403, 1, 0, 0, 0, 1663, 13426, 1, 0, 0, 0, 1665, 13434, 1, 0, 0, 0, 1667, 13439, 1, 0, 0, 0, 1669, 13448, 1, 0, 0, 0, 1671, 13461, 1, 0, 0, 0, 1673, 13469, 1, 0, 0, 0, 1675, 13474, 1, 0, 0, 0, 1677, 13482, 1, 0, 0, 0, 1679, 13490, 1, 0, 0, 0, 1681, 13498, 1, 0, 0, 0, 1683, 13506, 1, 0, 0, 0, 1685, 13513, 1, 0, 0, 0, 1687, 13518, 1, 0, 0, 0, 1689, 13524, 1, 0, 0, 0, 1691, 13535, 1, 0, 0, 0, 1693, 13542, 1, 0, 0, 0, 1695, 13550, 1, 0, 0, 0, 1697, 13560, 1, 0, 0, 0, 1699, 13565, 1, 0, 0, 0, 1701, 13574, 1, 0, 0, 0, 1703, 13580, 1, 0, 0, 0, 1705, 13586, 1, 0, 0, 0, 1707, 13592, 1, 0, 0, 0, 1709, 13604, 1, 0, 0, 0, 1711, 13609, 1, 0, 0, 0, 1713, 13615, 1, 0, 0, 0, 1715, 13622, 1, 0, 0, 0, 1717, 13628, 1, 0, 0, 0, 1719, 13633, 1, 0, 0, 0, 1721, 13638, 1, 0, 0, 0, 1723, 13645, 1, 0, 0, 0, 1725, 13649, 1, 0, 0, 0, 1727, 13652, 1, 0, 0, 0, 1729, 13658, 1, 0, 0, 0, 1731, 13663, 1, 0, 0, 0, 1733, 13667, 1, 0, 0, 0, 1735, 13675, 1, 0, 0, 0, 1737, 13682, 1, 0, 0, 0, 1739, 13687, 1, 0, 0, 0, 1741, 13701, 1, 0, 0, 0, 1743, 13707, 1, 0, 0, 0, 1745, 13717, 1, 0, 0, 0, 1747, 13732, 1, 0, 0, 0, 1749, 13741, 1, 0, 0, 0, 1751, 13749, 1, 0, 0, 0, 1753, 13758, 1, 0, 0, 0, 1755, 13765, 1, 0, 0, 0, 1757, 13773, 1, 0, 0, 0, 1759, 13778, 1, 0, 0, 0, 1761, 13786, 1, 0, 0, 0, 1763, 13795, 1, 0, 0, 0, 1765, 13803, 1, 0, 0, 0, 1767, 13811, 1, 0, 0, 0, 1769, 13834, 1, 0, 0, 0, 1771, 13860, 1, 0, 0, 0, 1773, 13864, 1, 0, 0, 0, 1775, 13874, 1, 0, 0, 0, 1777, 13881, 1, 0, 0, 0, 1779, 13887, 1, 0, 0, 0, 1781, 13912, 1, 0, 0, 0, 1783, 13917, 1, 0, 0, 0, 1785, 13922, 1, 0, 0, 0, 1787, 13927, 1, 0, 0, 0, 1789, 13933, 1, 0, 0, 0, 1791, 13937, 1, 0, 0, 0, 1793, 13942, 1, 0, 0, 0, 1795, 13949, 1, 0, 0, 0, 1797, 13955, 1, 0, 0, 0, 1799, 13957, 1, 0, 0, 0, 1801, 13962, 1, 0, 0, 0, 1803, 13971, 1, 0, 0, 0, 1805, 13979, 1, 0, 0, 0, 1807, 13986, 1, 0, 0, 0, 1809, 13997, 1, 0, 0, 0, 1811, 14005, 1, 0, 0, 0, 1813, 14015, 1, 0, 0, 0, 1815, 14022, 1, 0, 0, 0, 1817, 14026, 1, 0, 0, 0, 1819, 14034, 1, 0, 0, 0, 1821, 14039, 1, 0, 0, 0, 1823, 14046, 1, 0, 0, 0, 1825, 14054, 1, 0, 0, 0, 1827, 14062, 1, 0, 0, 0, 1829, 14068, 1, 0, 0, 0, 1831, 14081, 1, 0, 0, 0, 1833, 14097, 1, 0, 0, 0, 1835, 14110, 1, 0, 0, 0, 1837, 14122, 1, 0, 0, 0, 1839, 14134, 1, 0, 0, 0, 1841, 14147, 1, 0, 0, 0, 1843, 14158, 1, 0, 0, 0, 1845, 14167, 1, 0, 0, 0, 1847, 14180, 1, 0, 0, 0, 1849, 14192, 1, 0, 0, 0, 1851, 14206, 1, 0, 0, 0, 1853, 14220, 1, 0, 0, 0, 1855, 14241, 1, 0, 0, 0, 1857, 14249, 1, 0, 0, 0, 1859, 14258, 1, 0, 0, 0, 1861, 14267, 1, 0, 0, 0, 1863, 14275, 1, 0, 0, 0, 1865, 14284, 1, 0, 0, 0, 1867, 14291, 1, 0, 0, 0, 1869, 14298, 1, 0, 0, 0, 1871, 14313, 1, 0, 0, 0, 1873, 14332, 1, 0, 0, 0, 1875, 14344, 1, 0, 0, 0, 1877, 14363, 1, 0, 0, 0, 1879, 14375, 1, 0, 0, 0, 1881, 14382, 1, 0, 0, 0, 1883, 14396, 1, 0, 0, 0, 1885, 14405, 1, 0, 0, 0, 1887, 14420, 1, 0, 0, 0, 1889, 14426, 1, 0, 0, 0, 1891, 14435, 1, 0, 0, 0, 1893, 14444, 1, 0, 0, 0, 1895, 14451, 1, 0, 0, 0, 1897, 14459, 1, 0, 0, 0, 1899, 14469, 1, 0, 0, 0, 1901, 14480, 1, 0, 0, 0, 1903, 14489, 1, 0, 0, 0, 1905, 14497, 1, 0, 0, 0, 1907, 14504, 1, 0, 0, 0, 1909, 14510, 1, 0, 0, 0, 1911, 14521, 1, 0, 0, 0, 1913, 14528, 1, 0, 0, 0, 1915, 14536, 1, 0, 0, 0, 1917, 14545, 1, 0, 0, 0, 1919, 14556, 1, 0, 0, 0, 1921, 14566, 1, 0, 0, 0, 1923, 14573, 1, 0, 0, 0, 1925, 14581, 1, 0, 0, 0, 1927, 14590, 1, 0, 0, 0, 1929, 14599, 1, 0, 0, 0, 1931, 14622, 1, 0, 0, 0, 1933, 14650, 1, 0, 0, 0, 1935, 14673, 1, 0, 0, 0, 1937, 14692, 1, 0, 0, 0, 1939, 14698, 1, 0, 0, 0, 1941, 14707, 1, 0, 0, 0, 1943, 14725, 1, 0, 0, 0, 1945, 14735, 1, 0, 0, 0, 1947, 14750, 1, 0, 0, 0, 1949, 14759, 1, 0, 0, 0, 1951, 14764, 1, 0, 0, 0, 1953, 14777, 1, 0, 0, 0, 1955, 14796, 1, 0, 0, 0, 1957, 14803, 1, 0, 0, 0, 1959, 14807, 1, 0, 0, 0, 1961, 14814, 1, 0, 0, 0, 1963, 14825, 1, 0, 0, 0, 1965, 14833, 1, 0, 0, 0, 1967, 14839, 1, 0, 0, 0, 1969, 14854, 1, 0, 0, 0, 1971, 14861, 1, 0, 0, 0, 1973, 14867, 1, 0, 0, 0, 1975, 14877, 1, 0, 0, 0, 1977, 14888, 1, 0, 0, 0, 1979, 14897, 1, 0, 0, 0, 1981, 14902, 1, 0, 0, 0, 1983, 14919, 1, 0, 0, 0, 1985, 14928, 1, 0, 0, 0, 1987, 14937, 1, 0, 0, 0, 1989, 14943, 1, 0, 0, 0, 1991, 14948, 1, 0, 0, 0, 1993, 14958, 1, 0, 0, 0, 1995, 14962, 1, 0, 0, 0, 1997, 14968, 1, 0, 0, 0, 1999, 14977, 1, 0, 0, 0, 2001, 15000, 1, 0, 0, 0, 2003, 15007, 1, 0, 0, 0, 2005, 15015, 1, 0, 0, 0, 2007, 15024, 1, 0, 0, 0, 2009, 15028, 1, 0, 0, 0, 2011, 15037, 1, 0, 0, 0, 2013, 15043, 1, 0, 0, 0, 2015, 15048, 1, 0, 0, 0, 2017, 15054, 1, 0, 0, 0, 2019, 15061, 1, 0, 0, 0, 2021, 15065, 1, 0, 0, 0, 2023, 15072, 1, 0, 0, 0, 2025, 15097, 1, 0, 0, 0, 2027, 15119, 1, 0, 0, 0, 2029, 15135, 1, 0, 0, 0, 2031, 15157, 1, 0, 0, 0, 2033, 15180, 1, 0, 0, 0, 2035, 15188, 1, 0, 0, 0, 2037, 15194, 1, 0, 0, 0, 2039, 15198, 1, 0, 0, 0, 2041, 15206, 1, 0, 0, 0, 2043, 15215, 1, 0, 0, 0, 2045, 15224, 1, 0, 0, 0, 2047, 15229, 1, 0, 0, 0, 2049, 15235, 1, 0, 0, 0, 2051, 15248, 1, 0, 0, 0, 2053, 15265, 1, 0, 0, 0, 2055, 15280, 1, 0, 0, 0, 2057, 15293, 1, 0, 0, 0, 2059, 15306, 1, 0, 0, 0, 2061, 15323, 1, 0, 0, 0, 2063, 15344, 1, 0, 0, 0, 2065, 15359, 1, 0, 0, 0, 2067, 15376, 1, 0, 0, 0, 2069, 15385, 1, 0, 0, 0, 2071, 15398, 1, 0, 0, 0, 2073, 15414, 1, 0, 0, 0, 2075, 15432, 1, 0, 0, 0, 2077, 15444, 1, 0, 0, 0, 2079, 15461, 1, 0, 0, 0, 2081, 15467, 1, 0, 0, 0, 2083, 15476, 1, 0, 0, 0, 2085, 15489, 1, 0, 0, 0, 2087, 15510, 1, 0, 0, 0, 2089, 15520, 1, 0, 0, 0, 2091, 15540, 1, 0, 0, 0, 2093, 15563, 1, 0, 0, 0, 2095, 15572, 1, 0, 0, 0, 2097, 15580, 1, 0, 0, 0, 2099, 15598, 1, 0, 0, 0, 2101, 15612, 1, 0, 0, 0, 2103, 15622, 1, 0, 0, 0, 2105, 15632, 1, 0, 0, 0, 2107, 15649, 1, 0, 0, 0, 2109, 15664, 1, 0, 0, 0, 2111, 15673, 1, 0, 0, 0, 2113, 15686, 1, 0, 0, 0, 2115, 15694, 1, 0, 0, 0, 2117, 15704, 1, 0, 0, 0, 2119, 15723, 1, 0, 0, 0, 2121, 15752, 1, 0, 0, 0, 2123, 15783, 1, 0, 0, 0, 2125, 15797, 1, 0, 0, 0, 2127, 15807, 1, 0, 0, 0, 2129, 15815, 1, 0, 0, 0, 2131, 15823, 1, 0, 0, 0, 2133, 15836, 1, 0, 0, 0, 2135, 15857, 1, 0, 0, 0, 2137, 15877, 1, 0, 0, 0, 2139, 15891, 1, 0, 0, 0, 2141, 15906, 1, 0, 0, 0, 2143, 15921, 1, 0, 0, 0, 2145, 15932, 1, 0, 0, 0, 2147, 15958, 1, 0, 0, 0, 2149, 15983, 1, 0, 0, 0, 2151, 16008, 1, 0, 0, 0, 2153, 16032, 1, 0, 0, 0, 2155, 16056, 1, 0, 0, 0, 2157, 16063, 1, 0, 0, 0, 2159, 16089, 1, 0, 0, 0, 2161, 16104, 1, 0, 0, 0, 2163, 16118, 1, 0, 0, 0, 2165, 16126, 1, 0, 0, 0, 2167, 16151, 1, 0, 0, 0, 2169, 16166, 1, 0, 0, 0, 2171, 16174, 1, 0, 0, 0, 2173, 16185, 1, 0, 0, 0, 2175, 16199, 1, 0, 0, 0, 2177, 16222, 1, 0, 0, 0, 2179, 16249, 1, 0, 0, 0, 2181, 16265, 1, 0, 0, 0, 2183, 16283, 1, 0, 0, 0, 2185, 16300, 1, 0, 0, 0, 2187, 16324, 1, 0, 0, 0, 2189, 16341, 1, 0, 0, 0, 2191, 16365, 1, 0, 0, 0, 2193, 16375, 1, 0, 0, 0, 2195, 16391, 1, 0, 0, 0, 2197, 16400, 1, 0, 0, 0, 2199, 16408, 1, 0, 0, 0, 2201, 16426, 1, 0, 0, 0, 2203, 16439, 1, 0, 0, 0, 2205, 16447, 1, 0, 0, 0, 2207, 16475, 1, 0, 0, 0, 2209, 16506, 1, 0, 0, 0, 2211, 16522, 1, 0, 0, 0, 2213, 16534, 1, 0, 0, 0, 2215, 16547, 1, 0, 0, 0, 2217, 16556, 1, 0, 0, 0, 2219, 16568, 1, 0, 0, 0, 2221, 16580, 1, 0, 0, 0, 2223, 16600, 1, 0, 0, 0, 2225, 16607, 1, 0, 0, 0, 2227, 16615, 1, 0, 0, 0, 2229, 16623, 1, 0, 0, 0, 2231, 16629, 1, 0, 0, 0, 2233, 16639, 1, 0, 0, 0, 2235, 16649, 1, 0, 0, 0, 2237, 16659, 1, 0, 0, 0, 2239, 16670, 1, 0, 0, 0, 2241, 16679, 1, 0, 0, 0, 2243, 16690, 1, 0, 0, 0, 2245, 16701, 1, 0, 0, 0, 2247, 16719, 1, 0, 0, 0, 2249, 16733, 1, 0, 0, 0, 2251, 16746, 1, 0, 0, 0, 2253, 16757, 1, 0, 0, 0, 2255, 16776, 1, 0, 0, 0, 2257, 16802, 1, 0, 0, 0, 2259, 16814, 1, 0, 0, 0, 2261, 16829, 1, 0, 0, 0, 2263, 16834, 1, 0, 0, 0, 2265, 16843, 1, 0, 0, 0, 2267, 16859, 1, 0, 0, 0, 2269, 16875, 1, 0, 0, 0, 2271, 16878, 1, 0, 0, 0, 2273, 16888, 1, 0, 0, 0, 2275, 16903, 1, 0, 0, 0, 2277, 16911, 1, 0, 0, 0, 2279, 16928, 1, 0, 0, 0, 2281, 16950, 1, 0, 0, 0, 2283, 16973, 1, 0, 0, 0, 2285, 16984, 1, 0, 0, 0, 2287, 17002, 1, 0, 0, 0, 2289, 17019, 1, 0, 0, 0, 2291, 17031, 1, 0, 0, 0, 2293, 17042, 1, 0, 0, 0, 2295, 17060, 1, 0, 0, 0, 2297, 17076, 1, 0, 0, 0, 2299, 17103, 1, 0, 0, 0, 2301, 17115, 1, 0, 0, 0, 2303, 17133, 1, 0, 0, 0, 2305, 17151, 1, 0, 0, 0, 2307, 17174, 1, 0, 0, 0, 2309, 17184, 1, 0, 0, 0, 2311, 17193, 1, 0, 0, 0, 2313, 17209, 1, 0, 0, 0, 2315, 17220, 1, 0, 0, 0, 2317, 17235, 1, 0, 0, 0, 2319, 17248, 1, 0, 0, 0, 2321, 17261, 1, 0, 0, 0, 2323, 17274, 1, 0, 0, 0, 2325, 17296, 1, 0, 0, 0, 2327, 17314, 1, 0, 0, 0, 2329, 17326, 1, 0, 0, 0, 2331, 17350, 1, 0, 0, 0, 2333, 17365, 1, 0, 0, 0, 2335, 17376, 1, 0, 0, 0, 2337, 17383, 1, 0, 0, 0, 2339, 17392, 1, 0, 0, 0, 2341, 17401, 1, 0, 0, 0, 2343, 17413, 1, 0, 0, 0, 2345, 17429, 1, 0, 0, 0, 2347, 17439, 1, 0, 0, 0, 2349, 17450, 1, 0, 0, 0, 2351, 17460, 1, 0, 0, 0, 2353, 17467, 1, 0, 0, 0, 2355, 17488, 1, 0, 0, 0, 2357, 17506, 1, 0, 0, 0, 2359, 17514, 1, 0, 0, 0, 2361, 17528, 1, 0, 0, 0, 2363, 17538, 1, 0, 0, 0, 2365, 17550, 1, 0, 0, 0, 2367, 17567, 1, 0, 0, 0, 2369, 17582, 1, 0, 0, 0, 2371, 17590, 1, 0, 0, 0, 2373, 17597, 1, 0, 0, 0, 2375, 17616, 1, 0, 0, 0, 2377, 17628, 1, 0, 0, 0, 2379, 17651, 1, 0, 0, 0, 2381, 17672, 1, 0, 0, 0, 2383, 17687, 1, 0, 0, 0, 2385, 17696, 1, 0, 0, 0, 2387, 17716, 1, 0, 0, 0, 2389, 17731, 1, 0, 0, 0, 2391, 17751, 1, 0, 0, 0, 2393, 17760, 1, 0, 0, 0, 2395, 17782, 1, 0, 0, 0, 2397, 17796, 1, 0, 0, 0, 2399, 17804, 1, 0, 0, 0, 2401, 17817, 1, 0, 0, 0, 2403, 17824, 1, 0, 0, 0, 2405, 17828, 1, 0, 0, 0, 2407, 17854, 1, 0, 0, 0, 2409, 17864, 1, 0, 0, 0, 2411, 17876, 1, 0, 0, 0, 2413, 17900, 1, 0, 0, 0, 2415, 17929, 1, 0, 0, 0, 2417, 17941, 1, 0, 0, 0, 2419, 17966, 1, 0, 0, 0, 2421, 17979, 1, 0, 0, 0, 2423, 17989, 1, 0, 0, 0, 2425, 18015, 1, 0, 0, 0, 2427, 18026, 1, 0, 0, 0, 2429, 18051, 1, 0, 0, 0, 2431, 18076, 1, 0, 0, 0, 2433, 18096, 1, 0, 0, 0, 2435, 18103, 1, 0, 0, 0, 2437, 18126, 1, 0, 0, 0, 2439, 18145, 1, 0, 0, 0, 2441, 18175, 1, 0, 0, 0, 2443, 18195, 1, 0, 0, 0, 2445, 18216, 1, 0, 0, 0, 2447, 18227, 1, 0, 0, 0, 2449, 18237, 1, 0, 0, 0, 2451, 18244, 1, 0, 0, 0, 2453, 18249, 1, 0, 0, 0, 2455, 18255, 1, 0, 0, 0, 2457, 18262, 1, 0, 0, 0, 2459, 18270, 1, 0, 0, 0, 2461, 18285, 1, 0, 0, 0, 2463, 18301, 1, 0, 0, 0, 2465, 18317, 1, 0, 0, 0, 2467, 18327, 1, 0, 0, 0, 2469, 18332, 1, 0, 0, 0, 2471, 18343, 1, 0, 0, 0, 2473, 18350, 1, 0, 0, 0, 2475, 18357, 1, 0, 0, 0, 2477, 18363, 1, 0, 0, 0, 2479, 18375, 1, 0, 0, 0, 2481, 18386, 1, 0, 0, 0, 2483, 18394, 1, 0, 0, 0, 2485, 18398, 1, 0, 0, 0, 2487, 18405, 1, 0, 0, 0, 2489, 18408, 1, 0, 0, 0, 2491, 18417, 1, 0, 0, 0, 2493, 18421, 1, 0, 0, 0, 2495, 18426, 1, 0, 0, 0, 2497, 18430, 1, 0, 0, 0, 2499, 18444, 1, 0, 0, 0, 2501, 18448, 1, 0, 0, 0, 2503, 18453, 1, 0, 0, 0, 2505, 18458, 1, 0, 0, 0, 2507, 18462, 1, 0, 0, 0, 2509, 18469, 1, 0, 0, 0, 2511, 18479, 1, 0, 0, 0, 2513, 18484, 1, 0, 0, 0, 2515, 18487, 1, 0, 0, 0, 2517, 18494, 1, 0, 0, 0, 2519, 18511, 1, 0, 0, 0, 2521, 18529, 1, 0, 0, 0, 2523, 18536, 1, 0, 0, 0, 2525, 18541, 1, 0, 0, 0, 2527, 18552, 1, 0, 0, 0, 2529, 18561, 1, 0, 0, 0, 2531, 18574, 1, 0, 0, 0, 2533, 18582, 1, 0, 0, 0, 2535, 18591, 1, 0, 0, 0, 2537, 18617, 1, 0, 0, 0, 2539, 18632, 1, 0, 0, 0, 2541, 18639, 1, 0, 0, 0, 2543, 18650, 1, 0, 0, 0, 2545, 18660, 1, 0, 0, 0, 2547, 18671, 1, 0, 0, 0, 2549, 18685, 1, 0, 0, 0, 2551, 18705, 1, 0, 0, 0, 2553, 18720, 1, 0, 0, 0, 2555, 18728, 1, 0, 0, 0, 2557, 18732, 1, 0, 0, 0, 2559, 18744, 1, 0, 0, 0, 2561, 18758, 1, 0, 0, 0, 2563, 18767, 1, 0, 0, 0, 2565, 18784, 1, 0, 0, 0, 2567, 18800, 1, 0, 0, 0, 2569, 18814, 1, 0, 0, 0, 2571, 18829, 1, 0, 0, 0, 2573, 18848, 1, 0, 0, 0, 2575, 18857, 1, 0, 0, 0, 2577, 18877, 1, 0, 0, 0, 2579, 18895, 1, 0, 0, 0, 2581, 18921, 1, 0, 0, 0, 2583, 18942, 1, 0, 0, 0, 2585, 18957, 1, 0, 0, 0, 2587, 18971, 1, 0, 0, 0, 2589, 18982, 1, 0, 0, 0, 2591, 18997, 1, 0, 0, 0, 2593, 19012, 1, 0, 0, 0, 2595, 19027, 1, 0, 0, 0, 2597, 19042, 1, 0, 0, 0, 2599, 19050, 1, 0, 0, 0, 2601, 19069, 1, 0, 0, 0, 2603, 19075, 1, 0, 0, 0, 2605, 19086, 1, 0, 0, 0, 2607, 19096, 1, 0, 0, 0, 2609, 19109, 1, 0, 0, 0, 2611, 19112, 1, 0, 0, 0, 2613, 19126, 1, 0, 0, 0, 2615, 19134, 1, 0, 0, 0, 2617, 19140, 1, 0, 0, 0, 2619, 19159, 1, 0, 0, 0, 2621, 19179, 1, 0, 0, 0, 2623, 19185, 1, 0, 0, 0, 2625, 19198, 1, 0, 0, 0, 2627, 19206, 1, 0, 0, 0, 2629, 19219, 1, 0, 0, 0, 2631, 19231, 1, 0, 0, 0, 2633, 19235, 1, 0, 0, 0, 2635, 19251, 1, 0, 0, 0, 2637, 19260, 1, 0, 0, 0, 2639, 19269, 1, 0, 0, 0, 2641, 19274, 1, 0, 0, 0, 2643, 19283, 1, 0, 0, 0, 2645, 19294, 1, 0, 0, 0, 2647, 19300, 1, 0, 0, 0, 2649, 19310, 1, 0, 0, 0, 2651, 19314, 1, 0, 0, 0, 2653, 19316, 1, 0, 0, 0, 2655, 19324, 1, 0, 0, 0, 2657, 19333, 1, 0, 0, 0, 2659, 19349, 1, 0, 0, 0, 2661, 19364, 1, 0, 0, 0, 2663, 19373, 1, 0, 0, 0, 2665, 19387, 1, 0, 0, 0, 2667, 19398, 1, 0, 0, 0, 2669, 19404, 1, 0, 0, 0, 2671, 19411, 1, 0, 0, 0, 2673, 19429, 1, 0, 0, 0, 2675, 19448, 1, 0, 0, 0, 2677, 19455, 1, 0, 0, 0, 2679, 19463, 1, 0, 0, 0, 2681, 19476, 1, 0, 0, 0, 2683, 19486, 1, 0, 0, 0, 2685, 19494, 1, 0, 0, 0, 2687, 19518, 1, 0, 0, 0, 2689, 19533, 1, 0, 0, 0, 2691, 19548, 1, 0, 0, 0, 2693, 19558, 1, 0, 0, 0, 2695, 19574, 1, 0, 0, 0, 2697, 19585, 1, 0, 0, 0, 2699, 19599, 1, 0, 0, 0, 2701, 19607, 1, 0, 0, 0, 2703, 19627, 1, 0, 0, 0, 2705, 19646, 1, 0, 0, 0, 2707, 19665, 1, 0, 0, 0, 2709, 19674, 1, 0, 0, 0, 2711, 19693, 1, 0, 0, 0, 2713, 19713, 1, 0, 0, 0, 2715, 19736, 1, 0, 0, 0, 2717, 19761, 1, 0, 0, 0, 2719, 19766, 1, 0, 0, 0, 2721, 19772, 1, 0, 0, 0, 2723, 19777, 1, 0, 0, 0, 2725, 19789, 1, 0, 0, 0, 2727, 19795, 1, 0, 0, 0, 2729, 19803, 1, 0, 0, 0, 2731, 19816, 1, 0, 0, 0, 2733, 19827, 1, 0, 0, 0, 2735, 19835, 1, 0, 0, 0, 2737, 19847, 1, 0, 0, 0, 2739, 19860, 1, 0, 0, 0, 2741, 19868, 1, 0, 0, 0, 2743, 19879, 1, 0, 0, 0, 2745, 19887, 1, 0, 0, 0, 2747, 19900, 1, 0, 0, 0, 2749, 19914, 1, 0, 0, 0, 2751, 19930, 1, 0, 0, 0, 2753, 19938, 1, 0, 0, 0, 2755, 19952, 1, 0, 0, 0, 2757, 19968, 1, 0, 0, 0, 2759, 19983, 1, 0, 0, 0, 2761, 19995, 1, 0, 0, 0, 2763, 20018, 1, 0, 0, 0, 2765, 20039, 1, 0, 0, 0, 2767, 20051, 1, 0, 0, 0, 2769, 20058, 1, 0, 0, 0, 2771, 20068, 1, 0, 0, 0, 2773, 20079, 1, 0, 0, 0, 2775, 20087, 1, 0, 0, 0, 2777, 20091, 1, 0, 0, 0, 2779, 20097, 1, 0, 0, 0, 2781, 20106, 1, 0, 0, 0, 2783, 20112, 1, 0, 0, 0, 2785, 20122, 1, 0, 0, 0, 2787, 20127, 1, 0, 0, 0, 2789, 20134, 1, 0, 0, 0, 2791, 20140, 1, 0, 0, 0, 2793, 20148, 1, 0, 0, 0, 2795, 20163, 1, 0, 0, 0, 2797, 20178, 1, 0, 0, 0, 2799, 20183, 1, 0, 0, 0, 2801, 20200, 1, 0, 0, 0, 2803, 20212, 1, 0, 0, 0, 2805, 20226, 1, 0, 0, 0, 2807, 20242, 1, 0, 0, 0, 2809, 20254, 1, 0, 0, 0, 2811, 20275, 1, 0, 0, 0, 2813, 20290, 1, 0, 0, 0, 2815, 20300, 1, 0, 0, 0, 2817, 20305, 1, 0, 0, 0, 2819, 20311, 1, 0, 0, 0, 2821, 20318, 1, 0, 0, 0, 2823, 20327, 1, 0, 0, 0, 2825, 20335, 1, 0, 0, 0, 2827, 20344, 1, 0, 0, 0, 2829, 20352, 1, 0, 0, 0, 2831, 20360, 1, 0, 0, 0, 2833, 20369, 1, 0, 0, 0, 2835, 20379, 1, 0, 0, 0, 2837, 20388, 1, 0, 0, 0, 2839, 20405, 1, 0, 0, 0, 2841, 20434, 1, 0, 0, 0, 2843, 20448, 1, 0, 0, 0, 2845, 20454, 1, 0, 0, 0, 2847, 20474, 1, 0, 0, 0, 2849, 20488, 1, 0, 0, 0, 2851, 20509, 1, 0, 0, 0, 2853, 20519, 1, 0, 0, 0, 2855, 20526, 1, 0, 0, 0, 2857, 20535, 1, 0, 0, 0, 2859, 20548, 1, 0, 0, 0, 2861, 20556, 1, 0, 0, 0, 2863, 20563, 1, 0, 0, 0, 2865, 20572, 1, 0, 0, 0, 2867, 20581, 1, 0, 0, 0, 2869, 20591, 1, 0, 0, 0, 2871, 20601, 1, 0, 0, 0, 2873, 20621, 1, 0, 0, 0, 2875, 20640, 1, 0, 0, 0, 2877, 20648, 1, 0, 0, 0, 2879, 20656, 1, 0, 0, 0, 2881, 20669, 1, 0, 0, 0, 2883, 20680, 1, 0, 0, 0, 2885, 20688, 1, 0, 0, 0, 2887, 20697, 1, 0, 0, 0, 2889, 20710, 1, 0, 0, 0, 2891, 20719, 1, 0, 0, 0, 2893, 20726, 1, 0, 0, 0, 2895, 20735, 1, 0, 0, 0, 2897, 20740, 1, 0, 0, 0, 2899, 20748, 1, 0, 0, 0, 2901, 20764, 1, 0, 0, 0, 2903, 20773, 1, 0, 0, 0, 2905, 20779, 1, 0, 0, 0, 2907, 20787, 1, 0, 0, 0, 2909, 20799, 1, 0, 0, 0, 2911, 20810, 1, 0, 0, 0, 2913, 20820, 1, 0, 0, 0, 2915, 20831, 1, 0, 0, 0, 2917, 20842, 1, 0, 0, 0, 2919, 20852, 1, 0, 0, 0, 2921, 20860, 1, 0, 0, 0, 2923, 20868, 1, 0, 0, 0, 2925, 20876, 1, 0, 0, 0, 2927, 20884, 1, 0, 0, 0, 2929, 20894, 1, 0, 0, 0, 2931, 20903, 1, 0, 0, 0, 2933, 20913, 1, 0, 0, 0, 2935, 20924, 1, 0, 0, 0, 2937, 20933, 1, 0, 0, 0, 2939, 20939, 1, 0, 0, 0, 2941, 20947, 1, 0, 0, 0, 2943, 20954, 1, 0, 0, 0, 2945, 20964, 1, 0, 0, 0, 2947, 20970, 1, 0, 0, 0, 2949, 20980, 1, 0, 0, 0, 2951, 20990, 1, 0, 0, 0, 2953, 21009, 1, 0, 0, 0, 2955, 21020, 1, 0, 0, 0, 2957, 21035, 1, 0, 0, 0, 2959, 21043, 1, 0, 0, 0, 2961, 21052, 1, 0, 0, 0, 2963, 21064, 1, 0, 0, 0, 2965, 21070, 1, 0, 0, 0, 2967, 21081, 1, 0, 0, 0, 2969, 21087, 1, 0, 0, 0, 2971, 21098, 1, 0, 0, 0, 2973, 21106, 1, 0, 0, 0, 2975, 21113, 1, 0, 0, 0, 2977, 21119, 1, 0, 0, 0, 2979, 21130, 1, 0, 0, 0, 2981, 21136, 1, 0, 0, 0, 2983, 21149, 1, 0, 0, 0, 2985, 21156, 1, 0, 0, 0, 2987, 21162, 1, 0, 0, 0, 2989, 21168, 1, 0, 0, 0, 2991, 21176, 1, 0, 0, 0, 2993, 21180, 1, 0, 0, 0, 2995, 21189, 1, 0, 0, 0, 2997, 21199, 1, 0, 0, 0, 2999, 21203, 1, 0, 0, 0, 3001, 21215, 1, 0, 0, 0, 3003, 21222, 1, 0, 0, 0, 3005, 21227, 1, 0, 0, 0, 3007, 21232, 1, 0, 0, 0, 3009, 21238, 1, 0, 0, 0, 3011, 21247, 1, 0, 0, 0, 3013, 21253, 1, 0, 0, 0, 3015, 21258, 1, 0, 0, 0, 3017, 21268, 1, 0, 0, 0, 3019, 21276, 1, 0, 0, 0, 3021, 21283, 1, 0, 0, 0, 3023, 21291, 1, 0, 0, 0, 3025, 21309, 1, 0, 0, 0, 3027, 21321, 1, 0, 0, 0, 3029, 21329, 1, 0, 0, 0, 3031, 21338, 1, 0, 0, 0, 3033, 21349, 1, 0, 0, 0, 3035, 21357, 1, 0, 0, 0, 3037, 21367, 1, 0, 0, 0, 3039, 21376, 1, 0, 0, 0, 3041, 21381, 1, 0, 0, 0, 3043, 21389, 1, 0, 0, 0, 3045, 21400, 1, 0, 0, 0, 3047, 21419, 1, 0, 0, 0, 3049, 21430, 1, 0, 0, 0, 3051, 21440, 1, 0, 0, 0, 3053, 21451, 1, 0, 0, 0, 3055, 21463, 1, 0, 0, 0, 3057, 21467, 1, 0, 0, 0, 3059, 21475, 1, 0, 0, 0, 3061, 21484, 1, 0, 0, 0, 3063, 21497, 1, 0, 0, 0, 3065, 21510, 1, 0, 0, 0, 3067, 21522, 1, 0, 0, 0, 3069, 21537, 1, 0, 0, 0, 3071, 21551, 1, 0, 0, 0, 3073, 21560, 1, 0, 0, 0, 3075, 21570, 1, 0, 0, 0, 3077, 21580, 1, 0, 0, 0, 3079, 21591, 1, 0, 0, 0, 3081, 21606, 1, 0, 0, 0, 3083, 21614, 1, 0, 0, 0, 3085, 21625, 1, 0, 0, 0, 3087, 21634, 1, 0, 0, 0, 3089, 21643, 1, 0, 0, 0, 3091, 21652, 1, 0, 0, 0, 3093, 21660, 1, 0, 0, 0, 3095, 21667, 1, 0, 0, 0, 3097, 21673, 1, 0, 0, 0, 3099, 21684, 1, 0, 0, 0, 3101, 21694, 1, 0, 0, 0, 3103, 21703, 1, 0, 0, 0, 3105, 21708, 1, 0, 0, 0, 3107, 21718, 1, 0, 0, 0, 3109, 21725, 1, 0, 0, 0, 3111, 21739, 1, 0, 0, 0, 3113, 21746, 1, 0, 0, 0, 3115, 21753, 1, 0, 0, 0, 3117, 21760, 1, 0, 0, 0, 3119, 21767, 1, 0, 0, 0, 3121, 21775, 1, 0, 0, 0, 3123, 21787, 1, 0, 0, 0, 3125, 21796, 1, 0, 0, 0, 3127, 21806, 1, 0, 0, 0, 3129, 21812, 1, 0, 0, 0, 3131, 21819, 1, 0, 0, 0, 3133, 21827, 1, 0, 0, 0, 3135, 21836, 1, 0, 0, 0, 3137, 21845, 1, 0, 0, 0, 3139, 21853, 1, 0, 0, 0, 3141, 21861, 1, 0, 0, 0, 3143, 21882, 1, 0, 0, 0, 3145, 21890, 1, 0, 0, 0, 3147, 21912, 1, 0, 0, 0, 3149, 21923, 1, 0, 0, 0, 3151, 21943, 1, 0, 0, 0, 3153, 21952, 1, 0, 0, 0, 3155, 21965, 1, 0, 0, 0, 3157, 21972, 1, 0, 0, 0, 3159, 21982, 1, 0, 0, 0, 3161, 21989, 1, 0, 0, 0, 3163, 21999, 1, 0, 0, 0, 3165, 22019, 1, 0, 0, 0, 3167, 22029, 1, 0, 0, 0, 3169, 22036, 1, 0, 0, 0, 3171, 22042, 1, 0, 0, 0, 3173, 22050, 1, 0, 0, 0, 3175, 22057, 1, 0, 0, 0, 3177, 22074, 1, 0, 0, 0, 3179, 22082, 1, 0, 0, 0, 3181, 22088, 1, 0, 0, 0, 3183, 22093, 1, 0, 0, 0, 3185, 22101, 1, 0, 0, 0, 3187, 22107, 1, 0, 0, 0, 3189, 22116, 1, 0, 0, 0, 3191, 22124, 1, 0, 0, 0, 3193, 22131, 1, 0, 0, 0, 3195, 22147, 1, 0, 0, 0, 3197, 22167, 1, 0, 0, 0, 3199, 22173, 1, 0, 0, 0, 3201, 22185, 1, 0, 0, 0, 3203, 22198, 1, 0, 0, 0, 3205, 22209, 1, 0, 0, 0, 3207, 22216, 1, 0, 0, 0, 3209, 22220, 1, 0, 0, 0, 3211, 22225, 1, 0, 0, 0, 3213, 22230, 1, 0, 0, 0, 3215, 22236, 1, 0, 0, 0, 3217, 22241, 1, 0, 0, 0, 3219, 22247, 1, 0, 0, 0, 3221, 22255, 1, 0, 0, 0, 3223, 22260, 1, 0, 0, 0, 3225, 22267, 1, 0, 0, 0, 3227, 22285, 1, 0, 0, 0, 3229, 22295, 1, 0, 0, 0, 3231, 22300, 1, 0, 0, 0, 3233, 22304, 1, 0, 0, 0, 3235, 22315, 1, 0, 0, 0, 3237, 22321, 1, 0, 0, 0, 3239, 22336, 1, 0, 0, 0, 3241, 22341, 1, 0, 0, 0, 3243, 22351, 1, 0, 0, 0, 3245, 22363, 1, 0, 0, 0, 3247, 22370, 1, 0, 0, 0, 3249, 22384, 1, 0, 0, 0, 3251, 22388, 1, 0, 0, 0, 3253, 22394, 1, 0, 0, 0, 3255, 22400, 1, 0, 0, 0, 3257, 22407, 1, 0, 0, 0, 3259, 22418, 1, 0, 0, 0, 3261, 22431, 1, 0, 0, 0, 3263, 22444, 1, 0, 0, 0, 3265, 22452, 1, 0, 0, 0, 3267, 22459, 1, 0, 0, 0, 3269, 22466, 1, 0, 0, 0, 3271, 22474, 1, 0, 0, 0, 3273, 22481, 1, 0, 0, 0, 3275, 22496, 1, 0, 0, 0, 3277, 22507, 1, 0, 0, 0, 3279, 22516, 1, 0, 0, 0, 3281, 22521, 1, 0, 0, 0, 3283, 22531, 1, 0, 0, 0, 3285, 22540, 1, 0, 0, 0, 3287, 22548, 1, 0, 0, 0, 3289, 22560, 1, 0, 0, 0, 3291, 22567, 1, 0, 0, 0, 3293, 22572, 1, 0, 0, 0, 3295, 22588, 1, 0, 0, 0, 3297, 22597, 1, 0, 0, 0, 3299, 22611, 1, 0, 0, 0, 3301, 22621, 1, 0, 0, 0, 3303, 22630, 1, 0, 0, 0, 3305, 22643, 1, 0, 0, 0, 3307, 22654, 1, 0, 0, 0, 3309, 22658, 1, 0, 0, 0, 3311, 22664, 1, 0, 0, 0, 3313, 22680, 1, 0, 0, 0, 3315, 22693, 1, 0, 0, 0, 3317, 22711, 1, 0, 0, 0, 3319, 22718, 1, 0, 0, 0, 3321, 22730, 1, 0, 0, 0, 3323, 22751, 1, 0, 0, 0, 3325, 22759, 1, 0, 0, 0, 3327, 22768, 1, 0, 0, 0, 3329, 22791, 1, 0, 0, 0, 3331, 22799, 1, 0, 0, 0, 3333, 22817, 1, 0, 0, 0, 3335, 22833, 1, 0, 0, 0, 3337, 22847, 1, 0, 0, 0, 3339, 22851, 1, 0, 0, 0, 3341, 22856, 1, 0, 0, 0, 3343, 22865, 1, 0, 0, 0, 3345, 22877, 1, 0, 0, 0, 3347, 22884, 1, 0, 0, 0, 3349, 22890, 1, 0, 0, 0, 3351, 22901, 1, 0, 0, 0, 3353, 22913, 1, 0, 0, 0, 3355, 22920, 1, 0, 0, 0, 3357, 22926, 1, 0, 0, 0, 3359, 22934, 1, 0, 0, 0, 3361, 22944, 1, 0, 0, 0, 3363, 22949, 1, 0, 0, 0, 3365, 22956, 1, 0, 0, 0, 3367, 22965, 1, 0, 0, 0, 3369, 22974, 1, 0, 0, 0, 3371, 22978, 1, 0, 0, 0, 3373, 22983, 1, 0, 0, 0, 3375, 23000, 1, 0, 0, 0, 3377, 23016, 1, 0, 0, 0, 3379, 23021, 1, 0, 0, 0, 3381, 23030, 1, 0, 0, 0, 3383, 23045, 1, 0, 0, 0, 3385, 23052, 1, 0, 0, 0, 3387, 23059, 1, 0, 0, 0, 3389, 23070, 1, 0, 0, 0, 3391, 23075, 1, 0, 0, 0, 3393, 23079, 1, 0, 0, 0, 3395, 23084, 1, 0, 0, 0, 3397, 23090, 1, 0, 0, 0, 3399, 23109, 1, 0, 0, 0, 3401, 23114, 1, 0, 0, 0, 3403, 23136, 1, 0, 0, 0, 3405, 23158, 1, 0, 0, 0, 3407, 23168, 1, 0, 0, 0, 3409, 23177, 1, 0, 0, 0, 3411, 23186, 1, 0, 0, 0, 3413, 23191, 1, 0, 0, 0, 3415, 23196, 1, 0, 0, 0, 3417, 23204, 1, 0, 0, 0, 3419, 23226, 1, 0, 0, 0, 3421, 23251, 1, 0, 0, 0, 3423, 23258, 1, 0, 0, 0, 3425, 23264, 1, 0, 0, 0, 3427, 23278, 1, 0, 0, 0, 3429, 23285, 1, 0, 0, 0, 3431, 23291, 1, 0, 0, 0, 3433, 23303, 1, 0, 0, 0, 3435, 23311, 1, 0, 0, 0, 3437, 23320, 1, 0, 0, 0, 3439, 23327, 1, 0, 0, 0, 3441, 23337, 1, 0, 0, 0, 3443, 23339, 1, 0, 0, 0, 3445, 23349, 1, 0, 0, 0, 3447, 23359, 1, 0, 0, 0, 3449, 23383, 1, 0, 0, 0, 3451, 23388, 1, 0, 0, 0, 3453, 23394, 1, 0, 0, 0, 3455, 23405, 1, 0, 0, 0, 3457, 23414, 1, 0, 0, 0, 3459, 23428, 1, 0, 0, 0, 3461, 23451, 1, 0, 0, 0, 3463, 23460, 1, 0, 0, 0, 3465, 23468, 1, 0, 0, 0, 3467, 23473, 1, 0, 0, 0, 3469, 23493, 1, 0, 0, 0, 3471, 23499, 1, 0, 0, 0, 3473, 23507, 1, 0, 0, 0, 3475, 23515, 1, 0, 0, 0, 3477, 23528, 1, 0, 0, 0, 3479, 23546, 1, 0, 0, 0, 3481, 23557, 1, 0, 0, 0, 3483, 23567, 1, 0, 0, 0, 3485, 23573, 1, 0, 0, 0, 3487, 23580, 1, 0, 0, 0, 3489, 23591, 1, 0, 0, 0, 3491, 23611, 1, 0, 0, 0, 3493, 23626, 1, 0, 0, 0, 3495, 23639, 1, 0, 0, 0, 3497, 23653, 1, 0, 0, 0, 3499, 23664, 1, 0, 0, 0, 3501, 23678, 1, 0, 0, 0, 3503, 23698, 1, 0, 0, 0, 3505, 23717, 1, 0, 0, 0, 3507, 23737, 1, 0, 0, 0, 3509, 23754, 1, 0, 0, 0, 3511, 23774, 1, 0, 0, 0, 3513, 23789, 1, 0, 0, 0, 3515, 23800, 1, 0, 0, 0, 3517, 23812, 1, 0, 0, 0, 3519, 23817, 1, 0, 0, 0, 3521, 23825, 1, 0, 0, 0, 3523, 23831, 1, 0, 0, 0, 3525, 23839, 1, 0, 0, 0, 3527, 23846, 1, 0, 0, 0, 3529, 23853, 1, 0, 0, 0, 3531, 23860, 1, 0, 0, 0, 3533, 23875, 1, 0, 0, 0, 3535, 23888, 1, 0, 0, 0, 3537, 23894, 1, 0, 0, 0, 3539, 23904, 1, 0, 0, 0, 3541, 23916, 1, 0, 0, 0, 3543, 23933, 1, 0, 0, 0, 3545, 23947, 1, 0, 0, 0, 3547, 23960, 1, 0, 0, 0, 3549, 23971, 1, 0, 0, 0, 3551, 23988, 1, 0, 0, 0, 3553, 23998, 1, 0, 0, 0, 3555, 24005, 1, 0, 0, 0, 3557, 24019, 1, 0, 0, 0, 3559, 24027, 1, 0, 0, 0, 3561, 24035, 1, 0, 0, 0, 3563, 24043, 1, 0, 0, 0, 3565, 24051, 1, 0, 0, 0, 3567, 24059, 1, 0, 0, 0, 3569, 24070, 1, 0, 0, 0, 3571, 24078, 1, 0, 0, 0, 3573, 24086, 1, 0, 0, 0, 3575, 24099, 1, 0, 0, 0, 3577, 24107, 1, 0, 0, 0, 3579, 24124, 1, 0, 0, 0, 3581, 24135, 1, 0, 0, 0, 3583, 24142, 1, 0, 0, 0, 3585, 24154, 1, 0, 0, 0, 3587, 24159, 1, 0, 0, 0, 3589, 24167, 1, 0, 0, 0, 3591, 24171, 1, 0, 0, 0, 3593, 24178, 1, 0, 0, 0, 3595, 24188, 1, 0, 0, 0, 3597, 24195, 1, 0, 0, 0, 3599, 24205, 1, 0, 0, 0, 3601, 24218, 1, 0, 0, 0, 3603, 24238, 1, 0, 0, 0, 3605, 24258, 1, 0, 0, 0, 3607, 24270, 1, 0, 0, 0, 3609, 24278, 1, 0, 0, 0, 3611, 24285, 1, 0, 0, 0, 3613, 24298, 1, 0, 0, 0, 3615, 24304, 1, 0, 0, 0, 3617, 24318, 1, 0, 0, 0, 3619, 24336, 1, 0, 0, 0, 3621, 24354, 1, 0, 0, 0, 3623, 24370, 1, 0, 0, 0, 3625, 24387, 1, 0, 0, 0, 3627, 24404, 1, 0, 0, 0, 3629, 24424, 1, 0, 0, 0, 3631, 24445, 1, 0, 0, 0, 3633, 24466, 1, 0, 0, 0, 3635, 24486, 1, 0, 0, 0, 3637, 24499, 1, 0, 0, 0, 3639, 24515, 1, 0, 0, 0, 3641, 24530, 1, 0, 0, 0, 3643, 24546, 1, 0, 0, 0, 3645, 24560, 1, 0, 0, 0, 3647, 24574, 1, 0, 0, 0, 3649, 24589, 1, 0, 0, 0, 3651, 24608, 1, 0, 0, 0, 3653, 24627, 1, 0, 0, 0, 3655, 24642, 1, 0, 0, 0, 3657, 24656, 1, 0, 0, 0, 3659, 24665, 1, 0, 0, 0, 3661, 24673, 1, 0, 0, 0, 3663, 24679, 1, 0, 0, 0, 3665, 24698, 1, 0, 0, 0, 3667, 24710, 1, 0, 0, 0, 3669, 24724, 1, 0, 0, 0, 3671, 24734, 1, 0, 0, 0, 3673, 24741, 1, 0, 0, 0, 3675, 24756, 1, 0, 0, 0, 3677, 24771, 1, 0, 0, 0, 3679, 24787, 1, 0, 0, 0, 3681, 24798, 1, 0, 0, 0, 3683, 24813, 1, 0, 0, 0, 3685, 24827, 1, 0, 0, 0, 3687, 24839, 1, 0, 0, 0, 3689, 24864, 1, 0, 0, 0, 3691, 24884, 1, 0, 0, 0, 3693, 24895, 1, 0, 0, 0, 3695, 24907, 1, 0, 0, 0, 3697, 24918, 1, 0, 0, 0, 3699, 24930, 1, 0, 0, 0, 3701, 24951, 1, 0, 0, 0, 3703, 24963, 1, 0, 0, 0, 3705, 24978, 1, 0, 0, 0, 3707, 24994, 1, 0, 0, 0, 3709, 25008, 1, 0, 0, 0, 3711, 25026, 1, 0, 0, 0, 3713, 25037, 1, 0, 0, 0, 3715, 25054, 1, 0, 0, 0, 3717, 25072, 1, 0, 0, 0, 3719, 25086, 1, 0, 0, 0, 3721, 25101, 1, 0, 0, 0, 3723, 25117, 1, 0, 0, 0, 3725, 25128, 1, 0, 0, 0, 3727, 25140, 1, 0, 0, 0, 3729, 25156, 1, 0, 0, 0, 3731, 25181, 1, 0, 0, 0, 3733, 25189, 1, 0, 0, 0, 3735, 25204, 1, 0, 0, 0, 3737, 25220, 1, 0, 0, 0, 3739, 25232, 1, 0, 0, 0, 3741, 25244, 1, 0, 0, 0, 3743, 25255, 1, 0, 0, 0, 3745, 25266, 1, 0, 0, 0, 3747, 25291, 1, 0, 0, 0, 3749, 25321, 1, 0, 0, 0, 3751, 25346, 1, 0, 0, 0, 3753, 25374, 1, 0, 0, 0, 3755, 25396, 1, 0, 0, 0, 3757, 25408, 1, 0, 0, 0, 3759, 25427, 1, 0, 0, 0, 3761, 25446, 1, 0, 0, 0, 3763, 25463, 1, 0, 0, 0, 3765, 25483, 1, 0, 0, 0, 3767, 25501, 1, 0, 0, 0, 3769, 25513, 1, 0, 0, 0, 3771, 25524, 1, 0, 0, 0, 3773, 25539, 1, 0, 0, 0, 3775, 25558, 1, 0, 0, 0, 3777, 25569, 1, 0, 0, 0, 3779, 25586, 1, 0, 0, 0, 3781, 25603, 1, 0, 0, 0, 3783, 25614, 1, 0, 0, 0, 3785, 25625, 1, 0, 0, 0, 3787, 25641, 1, 0, 0, 0, 3789, 25656, 1, 0, 0, 0, 3791, 25672, 1, 0, 0, 0, 3793, 25688, 1, 0, 0, 0, 3795, 25703, 1, 0, 0, 0, 3797, 25716, 1, 0, 0, 0, 3799, 25732, 1, 0, 0, 0, 3801, 25746, 1, 0, 0, 0, 3803, 25757, 1, 0, 0, 0, 3805, 25772, 1, 0, 0, 0, 3807, 25785, 1, 0, 0, 0, 3809, 25796, 1, 0, 0, 0, 3811, 25812, 1, 0, 0, 0, 3813, 25824, 1, 0, 0, 0, 3815, 25835, 1, 0, 0, 0, 3817, 25847, 1, 0, 0, 0, 3819, 25865, 1, 0, 0, 0, 3821, 25876, 1, 0, 0, 0, 3823, 25892, 1, 0, 0, 0, 3825, 25907, 1, 0, 0, 0, 3827, 25918, 1, 0, 0, 0, 3829, 25930, 1, 0, 0, 0, 3831, 25943, 1, 0, 0, 0, 3833, 25961, 1, 0, 0, 0, 3835, 25978, 1, 0, 0, 0, 3837, 25992, 1, 0, 0, 0, 3839, 26006, 1, 0, 0, 0, 3841, 26019, 1, 0, 0, 0, 3843, 26033, 1, 0, 0, 0, 3845, 26048, 1, 0, 0, 0, 3847, 26060, 1, 0, 0, 0, 3849, 26071, 1, 0, 0, 0, 3851, 26094, 1, 0, 0, 0, 3853, 26109, 1, 0, 0, 0, 3855, 26124, 1, 0, 0, 0, 3857, 26138, 1, 0, 0, 0, 3859, 26155, 1, 0, 0, 0, 3861, 26170, 1, 0, 0, 0, 3863, 26189, 1, 0, 0, 0, 3865, 26211, 1, 0, 0, 0, 3867, 26231, 1, 0, 0, 0, 3869, 26248, 1, 0, 0, 0, 3871, 26267, 1, 0, 0, 0, 3873, 26287, 1, 0, 0, 0, 3875, 26307, 1, 0, 0, 0, 3877, 26328, 1, 0, 0, 0, 3879, 26345, 1, 0, 0, 0, 3881, 26360, 1, 0, 0, 0, 3883, 26376, 1, 0, 0, 0, 3885, 26390, 1, 0, 0, 0, 3887, 26404, 1, 0, 0, 0, 3889, 26418, 1, 0, 0, 0, 3891, 26433, 1, 0, 0, 0, 3893, 26448, 1, 0, 0, 0, 3895, 26455, 1, 0, 0, 0, 3897, 26468, 1, 0, 0, 0, 3899, 26479, 1, 0, 0, 0, 3901, 26492, 1, 0, 0, 0, 3903, 26507, 1, 0, 0, 0, 3905, 26523, 1, 0, 0, 0, 3907, 26535, 1, 0, 0, 0, 3909, 26550, 1, 0, 0, 0, 3911, 26561, 1, 0, 0, 0, 3913, 26581, 1, 0, 0, 0, 3915, 26601, 1, 0, 0, 0, 3917, 26614, 1, 0, 0, 0, 3919, 26637, 1, 0, 0, 0, 3921, 26658, 1, 0, 0, 0, 3923, 26683, 1, 0, 0, 0, 3925, 26705, 1, 0, 0, 0, 3927, 26729, 1, 0, 0, 0, 3929, 26752, 1, 0, 0, 0, 3931, 26773, 1, 0, 0, 0, 3933, 26795, 1, 0, 0, 0, 3935, 26816, 1, 0, 0, 0, 3937, 26830, 1, 0, 0, 0, 3939, 26844, 1, 0, 0, 0, 3941, 26861, 1, 0, 0, 0, 3943, 26877, 1, 0, 0, 0, 3945, 26892, 1, 0, 0, 0, 3947, 26910, 1, 0, 0, 0, 3949, 26924, 1, 0, 0, 0, 3951, 26943, 1, 0, 0, 0, 3953, 26959, 1, 0, 0, 0, 3955, 26973, 1, 0, 0, 0, 3957, 26987, 1, 0, 0, 0, 3959, 27000, 1, 0, 0, 0, 3961, 27013, 1, 0, 0, 0, 3963, 27032, 1, 0, 0, 0, 3965, 27042, 1, 0, 0, 0, 3967, 27055, 1, 0, 0, 0, 3969, 27068, 1, 0, 0, 0, 3971, 27081, 1, 0, 0, 0, 3973, 27096, 1, 0, 0, 0, 3975, 27107, 1, 0, 0, 0, 3977, 27117, 1, 0, 0, 0, 3979, 27133, 1, 0, 0, 0, 3981, 27148, 1, 0, 0, 0, 3983, 27162, 1, 0, 0, 0, 3985, 27176, 1, 0, 0, 0, 3987, 27190, 1, 0, 0, 0, 3989, 27202, 1, 0, 0, 0, 3991, 27215, 1, 0, 0, 0, 3993, 27228, 1, 0, 0, 0, 3995, 27240, 1, 0, 0, 0, 3997, 27254, 1, 0, 0, 0, 3999, 27268, 1, 0, 0, 0, 4001, 27279, 1, 0, 0, 0, 4003, 27293, 1, 0, 0, 0, 4005, 27311, 1, 0, 0, 0, 4007, 27323, 1, 0, 0, 0, 4009, 27336, 1, 0, 0, 0, 4011, 27352, 1, 0, 0, 0, 4013, 27368, 1, 0, 0, 0, 4015, 27380, 1, 0, 0, 0, 4017, 27397, 1, 0, 0, 0, 4019, 27410, 1, 0, 0, 0, 4021, 27423, 1, 0, 0, 0, 4023, 27436, 1, 0, 0, 0, 4025, 27450, 1, 0, 0, 0, 4027, 27461, 1, 0, 0, 0, 4029, 27478, 1, 0, 0, 0, 4031, 27494, 1, 0, 0, 0, 4033, 27507, 1, 0, 0, 0, 4035, 27522, 1, 0, 0, 0, 4037, 27538, 1, 0, 0, 0, 4039, 27554, 1, 0, 0, 0, 4041, 27566, 1, 0, 0, 0, 4043, 27580, 1, 0, 0, 0, 4045, 27596, 1, 0, 0, 0, 4047, 27612, 1, 0, 0, 0, 4049, 27629, 1, 0, 0, 0, 4051, 27643, 1, 0, 0, 0, 4053, 27657, 1, 0, 0, 0, 4055, 27671, 1, 0, 0, 0, 4057, 27687, 1, 0, 0, 0, 4059, 27701, 1, 0, 0, 0, 4061, 27715, 1, 0, 0, 0, 4063, 27729, 1, 0, 0, 0, 4065, 27743, 1, 0, 0, 0, 4067, 27757, 1, 0, 0, 0, 4069, 27771, 1, 0, 0, 0, 4071, 27786, 1, 0, 0, 0, 4073, 27800, 1, 0, 0, 0, 4075, 27815, 1, 0, 0, 0, 4077, 27830, 1, 0, 0, 0, 4079, 27844, 1, 0, 0, 0, 4081, 27858, 1, 0, 0, 0, 4083, 27872, 1, 0, 0, 0, 4085, 27886, 1, 0, 0, 0, 4087, 27900, 1, 0, 0, 0, 4089, 27914, 1, 0, 0, 0, 4091, 27928, 1, 0, 0, 0, 4093, 27941, 1, 0, 0, 0, 4095, 27955, 1, 0, 0, 0, 4097, 27969, 1, 0, 0, 0, 4099, 27987, 1, 0, 0, 0, 4101, 28001, 1, 0, 0, 0, 4103, 28017, 1, 0, 0, 0, 4105, 28032, 1, 0, 0, 0, 4107, 28044, 1, 0, 0, 0, 4109, 28061, 1, 0, 0, 0, 4111, 28075, 1, 0, 0, 0, 4113, 28091, 1, 0, 0, 0, 4115, 28105, 1, 0, 0, 0, 4117, 28117, 1, 0, 0, 0, 4119, 28130, 1, 0, 0, 0, 4121, 28143, 1, 0, 0, 0, 4123, 28161, 1, 0, 0, 0, 4125, 28178, 1, 0, 0, 0, 4127, 28193, 1, 0, 0, 0, 4129, 28209, 1, 0, 0, 0, 4131, 28223, 1, 0, 0, 0, 4133, 28239, 1, 0, 0, 0, 4135, 28255, 1, 0, 0, 0, 4137, 28270, 1, 0, 0, 0, 4139, 28284, 1, 0, 0, 0, 4141, 28302, 1, 0, 0, 0, 4143, 28314, 1, 0, 0, 0, 4145, 28330, 1, 0, 0, 0, 4147, 28346, 1, 0, 0, 0, 4149, 28363, 1, 0, 0, 0, 4151, 28365, 1, 0, 0, 0, 4153, 28384, 1, 0, 0, 0, 4155, 28398, 1, 0, 0, 0, 4157, 28409, 1, 0, 0, 0, 4159, 28416, 1, 0, 0, 0, 4161, 28428, 1, 0, 0, 0, 4163, 28434, 1, 0, 0, 0, 4165, 28440, 1, 0, 0, 0, 4167, 28444, 1, 0, 0, 0, 4169, 28449, 1, 0, 0, 0, 4171, 28453, 1, 0, 0, 0, 4173, 28473, 1, 0, 0, 0, 4175, 28482, 1, 0, 0, 0, 4177, 28491, 1, 0, 0, 0, 4179, 28506, 1, 0, 0, 0, 4181, 28516, 1, 0, 0, 0, 4183, 28527, 1, 0, 0, 0, 4185, 28538, 1, 0, 0, 0, 4187, 28543, 1, 0, 0, 0, 4189, 28548, 1, 0, 0, 0, 4191, 28557, 1, 0, 0, 0, 4193, 28562, 1, 0, 0, 0, 4195, 28567, 1, 0, 0, 0, 4197, 28571, 1, 0, 0, 0, 4199, 28577, 1, 0, 0, 0, 4201, 28584, 1, 0, 0, 0, 4203, 28592, 1, 0, 0, 0, 4205, 28597, 1, 0, 0, 0, 4207, 28602, 1, 0, 0, 0, 4209, 28610, 1, 0, 0, 0, 4211, 28638, 1, 0, 0, 0, 4213, 28648, 1, 0, 0, 0, 4215, 28675, 1, 0, 0, 0, 4217, 28699, 1, 0, 0, 0, 4219, 28705, 1, 0, 0, 0, 4221, 28710, 1, 0, 0, 0, 4223, 28719, 1, 0, 0, 0, 4225, 28733, 1, 0, 0, 0, 4227, 28747, 1, 0, 0, 0, 4229, 28763, 1, 0, 0, 0, 4231, 28779, 1, 0, 0, 0, 4233, 28795, 1, 0, 0, 0, 4235, 28805, 1, 0, 0, 0, 4237, 28812, 1, 0, 0, 0, 4239, 28820, 1, 0, 0, 0, 4241, 28827, 1, 0, 0, 0, 4243, 28835, 1, 0, 0, 0, 4245, 28844, 1, 0, 0, 0, 4247, 28861, 1, 0, 0, 0, 4249, 28877, 1, 0, 0, 0, 4251, 28885, 1, 0, 0, 0, 4253, 28893, 1, 0, 0, 0, 4255, 28907, 1, 0, 0, 0, 4257, 28914, 1, 0, 0, 0, 4259, 28928, 1, 0, 0, 0, 4261, 28937, 1, 0, 0, 0, 4263, 28946, 1, 0, 0, 0, 4265, 28956, 1, 0, 0, 0, 4267, 28965, 1, 0, 0, 0, 4269, 28980, 1, 0, 0, 0, 4271, 28993, 1, 0, 0, 0, 4273, 29009, 1, 0, 0, 0, 4275, 29017, 1, 0, 0, 0, 4277, 29028, 1, 0, 0, 0, 4279, 29031, 1, 0, 0, 0, 4281, 29045, 1, 0, 0, 0, 4283, 29051, 1, 0, 0, 0, 4285, 29059, 1, 0, 0, 0, 4287, 29068, 1, 0, 0, 0, 4289, 29077, 1, 0, 0, 0, 4291, 29089, 1, 0, 0, 0, 4293, 29099, 1, 0, 0, 0, 4295, 29110, 1, 0, 0, 0, 4297, 29133, 1, 0, 0, 0, 4299, 29146, 1, 0, 0, 0, 4301, 29157, 1, 0, 0, 0, 4303, 29167, 1, 0, 0, 0, 4305, 29179, 1, 0, 0, 0, 4307, 29185, 1, 0, 0, 0, 4309, 29194, 1, 0, 0, 0, 4311, 29202, 1, 0, 0, 0, 4313, 29207, 1, 0, 0, 0, 4315, 29216, 1, 0, 0, 0, 4317, 29222, 1, 0, 0, 0, 4319, 29230, 1, 0, 0, 0, 4321, 29236, 1, 0, 0, 0, 4323, 29243, 1, 0, 0, 0, 4325, 29246, 1, 0, 0, 0, 4327, 29252, 1, 0, 0, 0, 4329, 29257, 1, 0, 0, 0, 4331, 29267, 1, 0, 0, 0, 4333, 29271, 1, 0, 0, 0, 4335, 29275, 1, 0, 0, 0, 4337, 29280, 1, 0, 0, 0, 4339, 29284, 1, 0, 0, 0, 4341, 29288, 1, 0, 0, 0, 4343, 29299, 1, 0, 0, 0, 4345, 29309, 1, 0, 0, 0, 4347, 29317, 1, 0, 0, 0, 4349, 29331, 1, 0, 0, 0, 4351, 29337, 1, 0, 0, 0, 4353, 29342, 1, 0, 0, 0, 4355, 29349, 1, 0, 0, 0, 4357, 29357, 1, 0, 0, 0, 4359, 29363, 1, 0, 0, 0, 4361, 29373, 1, 0, 0, 0, 4363, 29380, 1, 0, 0, 0, 4365, 29387, 1, 0, 0, 0, 4367, 29397, 1, 0, 0, 0, 4369, 29404, 1, 0, 0, 0, 4371, 29411, 1, 0, 0, 0, 4373, 29421, 1, 0, 0, 0, 4375, 29449, 1, 0, 0, 0, 4377, 29479, 1, 0, 0, 0, 4379, 29497, 1, 0, 0, 0, 4381, 29504, 1, 0, 0, 0, 4383, 29513, 1, 0, 0, 0, 4385, 29521, 1, 0, 0, 0, 4387, 29528, 1, 0, 0, 0, 4389, 29540, 1, 0, 0, 0, 4391, 29550, 1, 0, 0, 0, 4393, 29564, 1, 0, 0, 0, 4395, 29577, 1, 0, 0, 0, 4397, 29586, 1, 0, 0, 0, 4399, 29598, 1, 0, 0, 0, 4401, 29604, 1, 0, 0, 0, 4403, 29613, 1, 0, 0, 0, 4405, 29620, 1, 0, 0, 0, 4407, 29630, 1, 0, 0, 0, 4409, 29638, 1, 0, 0, 0, 4411, 29645, 1, 0, 0, 0, 4413, 29655, 1, 0, 0, 0, 4415, 29667, 1, 0, 0, 0, 4417, 29681, 1, 0, 0, 0, 4419, 29689, 1, 0, 0, 0, 4421, 29695, 1, 0, 0, 0, 4423, 29702, 1, 0, 0, 0, 4425, 29709, 1, 0, 0, 0, 4427, 29716, 1, 0, 0, 0, 4429, 29722, 1, 0, 0, 0, 4431, 29731, 1, 0, 0, 0, 4433, 29742, 1, 0, 0, 0, 4435, 29751, 1, 0, 0, 0, 4437, 29772, 1, 0, 0, 0, 4439, 29798, 1, 0, 0, 0, 4441, 29807, 1, 0, 0, 0, 4443, 29829, 1, 0, 0, 0, 4445, 29851, 1, 0, 0, 0, 4447, 29871, 1, 0, 0, 0, 4449, 29881, 1, 0, 0, 0, 4451, 29888, 1, 0, 0, 0, 4453, 29906, 1, 0, 0, 0, 4455, 29927, 1, 0, 0, 0, 4457, 29937, 1, 0, 0, 0, 4459, 29950, 1, 0, 0, 0, 4461, 29958, 1, 0, 0, 0, 4463, 29968, 1, 0, 0, 0, 4465, 29984, 1, 0, 0, 0, 4467, 29990, 1, 0, 0, 0, 4469, 30007, 1, 0, 0, 0, 4471, 30012, 1, 0, 0, 0, 4473, 30021, 1, 0, 0, 0, 4475, 30041, 1, 0, 0, 0, 4477, 30059, 1, 0, 0, 0, 4479, 30063, 1, 0, 0, 0, 4481, 30086, 1, 0, 0, 0, 4483, 30105, 1, 0, 0, 0, 4485, 30121, 1, 0, 0, 0, 4487, 30136, 1, 0, 0, 0, 4489, 30142, 1, 0, 0, 0, 4491, 30150, 1, 0, 0, 0, 4493, 30158, 1, 0, 0, 0, 4495, 30164, 1, 0, 0, 0, 4497, 30169, 1, 0, 0, 0, 4499, 30172, 1, 0, 0, 0, 4501, 30175, 1, 0, 0, 0, 4503, 30184, 1, 0, 0, 0, 4505, 30204, 1, 0, 0, 0, 4507, 30215, 1, 0, 0, 0, 4509, 30230, 1, 0, 0, 0, 4511, 30237, 1, 0, 0, 0, 4513, 30243, 1, 0, 0, 0, 4515, 30252, 1, 0, 0, 0, 4517, 30260, 1, 0, 0, 0, 4519, 30269, 1, 0, 0, 0, 4521, 30278, 1, 0, 0, 0, 4523, 30285, 1, 0, 0, 0, 4525, 30293, 1, 0, 0, 0, 4527, 30301, 1, 0, 0, 0, 4529, 30309, 1, 0, 0, 0, 4531, 30316, 1, 0, 0, 0, 4533, 30325, 1, 0, 0, 0, 4535, 30333, 1, 0, 0, 0, 4537, 30351, 1, 0, 0, 0, 4539, 30363, 1, 0, 0, 0, 4541, 30385, 1, 0, 0, 0, 4543, 30407, 1, 0, 0, 0, 4545, 30424, 1, 0, 0, 0, 4547, 30433, 1, 0, 0, 0, 4549, 30440, 1, 0, 0, 0, 4551, 30451, 1, 0, 0, 0, 4553, 30467, 1, 0, 0, 0, 4555, 30484, 1, 0, 0, 0, 4557, 30503, 1, 0, 0, 0, 4559, 30521, 1, 0, 0, 0, 4561, 30540, 1, 0, 0, 0, 4563, 30549, 1, 0, 0, 0, 4565, 30562, 1, 0, 0, 0, 4567, 30570, 1, 0, 0, 0, 4569, 30575, 1, 0, 0, 0, 4571, 30585, 1, 0, 0, 0, 4573, 30593, 1, 0, 0, 0, 4575, 30604, 1, 0, 0, 0, 4577, 30612, 1, 0, 0, 0, 4579, 30619, 1, 0, 0, 0, 4581, 30625, 1, 0, 0, 0, 4583, 30630, 1, 0, 0, 0, 4585, 30637, 1, 0, 0, 0, 4587, 30645, 1, 0, 0, 0, 4589, 30651, 1, 0, 0, 0, 4591, 30656, 1, 0, 0, 0, 4593, 30667, 1, 0, 0, 0, 4595, 30676, 1, 0, 0, 0, 4597, 30681, 1, 0, 0, 0, 4599, 30687, 1, 0, 0, 0, 4601, 30693, 1, 0, 0, 0, 4603, 30704, 1, 0, 0, 0, 4605, 30717, 1, 0, 0, 0, 4607, 30724, 1, 0, 0, 0, 4609, 30732, 1, 0, 0, 0, 4611, 30743, 1, 0, 0, 0, 4613, 30748, 1, 0, 0, 0, 4615, 30753, 1, 0, 0, 0, 4617, 30762, 1, 0, 0, 0, 4619, 30770, 1, 0, 0, 0, 4621, 30778, 1, 0, 0, 0, 4623, 30784, 1, 0, 0, 0, 4625, 30804, 1, 0, 0, 0, 4627, 30808, 1, 0, 0, 0, 4629, 30820, 1, 0, 0, 0, 4631, 30824, 1, 0, 0, 0, 4633, 30835, 1, 0, 0, 0, 4635, 30842, 1, 0, 0, 0, 4637, 30856, 1, 0, 0, 0, 4639, 30864, 1, 0, 0, 0, 4641, 30873, 1, 0, 0, 0, 4643, 30886, 1, 0, 0, 0, 4645, 30897, 1, 0, 0, 0, 4647, 30907, 1, 0, 0, 0, 4649, 30915, 1, 0, 0, 0, 4651, 30932, 1, 0, 0, 0, 4653, 30943, 1, 0, 0, 0, 4655, 30954, 1, 0, 0, 0, 4657, 30964, 1, 0, 0, 0, 4659, 30974, 1, 0, 0, 0, 4661, 30983, 1, 0, 0, 0, 4663, 31010, 1, 0, 0, 0, 4665, 31027, 1, 0, 0, 0, 4667, 31048, 1, 0, 0, 0, 4669, 31058, 1, 0, 0, 0, 4671, 31069, 1, 0, 0, 0, 4673, 31083, 1, 0, 0, 0, 4675, 31092, 1, 0, 0, 0, 4677, 31101, 1, 0, 0, 0, 4679, 31107, 1, 0, 0, 0, 4681, 31119, 1, 0, 0, 0, 4683, 31128, 1, 0, 0, 0, 4685, 31136, 1, 0, 0, 0, 4687, 31146, 1, 0, 0, 0, 4689, 31159, 1, 0, 0, 0, 4691, 31168, 1, 0, 0, 0, 4693, 31175, 1, 0, 0, 0, 4695, 31192, 1, 0, 0, 0, 4697, 31205, 1, 0, 0, 0, 4699, 31213, 1, 0, 0, 0, 4701, 31217, 1, 0, 0, 0, 4703, 31228, 1, 0, 0, 0, 4705, 31243, 1, 0, 0, 0, 4707, 31246, 1, 0, 0, 0, 4709, 31257, 1, 0, 0, 0, 4711, 31263, 1, 0, 0, 0, 4713, 31268, 1, 0, 0, 0, 4715, 31282, 1, 0, 0, 0, 4717, 31286, 1, 0, 0, 0, 4719, 31311, 1, 0, 0, 0, 4721, 31319, 1, 0, 0, 0, 4723, 31324, 1, 0, 0, 0, 4725, 31330, 1, 0, 0, 0, 4727, 31341, 1, 0, 0, 0, 4729, 31359, 1, 0, 0, 0, 4731, 31375, 1, 0, 0, 0, 4733, 31394, 1, 0, 0, 0, 4735, 31417, 1, 0, 0, 0, 4737, 31432, 1, 0, 0, 0, 4739, 31443, 1, 0, 0, 0, 4741, 31451, 1, 0, 0, 0, 4743, 31461, 1, 0, 0, 0, 4745, 31472, 1, 0, 0, 0, 4747, 31483, 1, 0, 0, 0, 4749, 31492, 1, 0, 0, 0, 4751, 31500, 1, 0, 0, 0, 4753, 31505, 1, 0, 0, 0, 4755, 31515, 1, 0, 0, 0, 4757, 31531, 1, 0, 0, 0, 4759, 31543, 1, 0, 0, 0, 4761, 31555, 1, 0, 0, 0, 4763, 31569, 1, 0, 0, 0, 4765, 31580, 1, 0, 0, 0, 4767, 31588, 1, 0, 0, 0, 4769, 31593, 1, 0, 0, 0, 4771, 31601, 1, 0, 0, 0, 4773, 31606, 1, 0, 0, 0, 4775, 31612, 1, 0, 0, 0, 4777, 31622, 1, 0, 0, 0, 4779, 31632, 1, 0, 0, 0, 4781, 31643, 1, 0, 0, 0, 4783, 31651, 1, 0, 0, 0, 4785, 31664, 1, 0, 0, 0, 4787, 31680, 1, 0, 0, 0, 4789, 31696, 1, 0, 0, 0, 4791, 31701, 1, 0, 0, 0, 4793, 31705, 1, 0, 0, 0, 4795, 31710, 1, 0, 0, 0, 4797, 31717, 1, 0, 0, 0, 4799, 31724, 1, 0, 0, 0, 4801, 31728, 1, 0, 0, 0, 4803, 31737, 1, 0, 0, 0, 4805, 31754, 1, 0, 0, 0, 4807, 31759, 1, 0, 0, 0, 4809, 31763, 1, 0, 0, 0, 4811, 31770, 1, 0, 0, 0, 4813, 31782, 1, 0, 0, 0, 4815, 31786, 1, 0, 0, 0, 4817, 31792, 1, 0, 0, 0, 4819, 31796, 1, 0, 0, 0, 4821, 31812, 1, 0, 0, 0, 4823, 31818, 1, 0, 0, 0, 4825, 31824, 1, 0, 0, 0, 4827, 31835, 1, 0, 0, 0, 4829, 31842, 1, 0, 0, 0, 4831, 31850, 1, 0, 0, 0, 4833, 31855, 1, 0, 0, 0, 4835, 31859, 1, 0, 0, 0, 4837, 31866, 1, 0, 0, 0, 4839, 31871, 1, 0, 0, 0, 4841, 31880, 1, 0, 0, 0, 4843, 31886, 1, 0, 0, 0, 4845, 31895, 1, 0, 0, 0, 4847, 31903, 1, 0, 0, 0, 4849, 31913, 1, 0, 0, 0, 4851, 31925, 1, 0, 0, 0, 4853, 31934, 1, 0, 0, 0, 4855, 31941, 1, 0, 0, 0, 4857, 31948, 1, 0, 0, 0, 4859, 31960, 1, 0, 0, 0, 4861, 31972, 1, 0, 0, 0, 4863, 31979, 1, 0, 0, 0, 4865, 31983, 1, 0, 0, 0, 4867, 31993, 1, 0, 0, 0, 4869, 32006, 1, 0, 0, 0, 4871, 32022, 1, 0, 0, 0, 4873, 32036, 1, 0, 0, 0, 4875, 32039, 1, 0, 0, 0, 4877, 32042, 1, 0, 0, 0, 4879, 32046, 1, 0, 0, 0, 4881, 32064, 1, 0, 0, 0, 4883, 32076, 1, 0, 0, 0, 4885, 32095, 1, 0, 0, 0, 4887, 32104, 1, 0, 0, 0, 4889, 32113, 1, 0, 0, 0, 4891, 32122, 1, 0, 0, 0, 4893, 32131, 1, 0, 0, 0, 4895, 32140, 1, 0, 0, 0, 4897, 32149, 1, 0, 0, 0, 4899, 32158, 1, 0, 0, 0, 4901, 32167, 1, 0, 0, 0, 4903, 32176, 1, 0, 0, 0, 4905, 32185, 1, 0, 0, 0, 4907, 32194, 1, 0, 0, 0, 4909, 32204, 1, 0, 0, 0, 4911, 32206, 1, 0, 0, 0, 4913, 32208, 1, 0, 0, 0, 4915, 32210, 1, 0, 0, 0, 4917, 32212, 1, 0, 0, 0, 4919, 32215, 1, 0, 0, 0, 4921, 32217, 1, 0, 0, 0, 4923, 32219, 1, 0, 0, 0, 4925, 32221, 1, 0, 0, 0, 4927, 32223, 1, 0, 0, 0, 4929, 32225, 1, 0, 0, 0, 4931, 32227, 1, 0, 0, 0, 4933, 32230, 1, 0, 0, 0, 4935, 32232, 1, 0, 0, 0, 4937, 32234, 1, 0, 0, 0, 4939, 32236, 1, 0, 0, 0, 4941, 32252, 1, 0, 0, 0, 4943, 32262, 1, 0, 0, 0, 4945, 32264, 1, 0, 0, 0, 4947, 32266, 1, 0, 0, 0, 4949, 32268, 1, 0, 0, 0, 4951, 32270, 1, 0, 0, 0, 4953, 32272, 1, 0, 0, 0, 4955, 32274, 1, 0, 0, 0, 4957, 32276, 1, 0, 0, 0, 4959, 32278, 1, 0, 0, 0, 4961, 32280, 1, 0, 0, 0, 4963, 32282, 1, 0, 0, 0, 4965, 32284, 1, 0, 0, 0, 4967, 32286, 1, 0, 0, 0, 4969, 32288, 1, 0, 0, 0, 4971, 32301, 1, 0, 0, 0, 4973, 32315, 1, 0, 0, 0, 4975, 32338, 1, 0, 0, 0, 4977, 32359, 1, 0, 0, 0, 4979, 32363, 1, 0, 0, 0, 4981, 32371, 1, 0, 0, 0, 4983, 32381, 1, 0, 0, 0, 4985, 32389, 1, 0, 0, 0, 4987, 32391, 1, 0, 0, 0, 4989, 32393, 1, 0, 0, 0, 4991, 32398, 1, 0, 0, 0, 4993, 32410, 1, 0, 0, 0, 4995, 32414, 1, 0, 0, 0, 4997, 4998, 7, 0, 0, 0, 4998, 4999, 7, 1, 0, 0, 4999, 5000, 7, 2, 0, 0, 5000, 5001, 7, 3, 0, 0, 5001, 5002, 7, 4, 0, 0, 5002, 2, 1, 0, 0, 0, 5003, 5004, 7, 0, 0, 0, 5004, 5005, 7, 1, 0, 0, 5005, 5006, 7, 5, 0, 0, 5006, 4, 1, 0, 0, 0, 5007, 5008, 7, 0, 0, 0, 5008, 5009, 7, 1, 0, 0, 5009, 5010, 7, 5, 0, 0, 5010, 5011, 7, 6, 0, 0, 5011, 5012, 7, 7, 0, 0, 5012, 5013, 7, 4, 0, 0, 5013, 6, 1, 0, 0, 0, 5014, 5015, 7, 0, 0, 0, 5015, 5016, 7, 8, 0, 0, 5016, 5017, 7, 8, 0, 0, 5017, 5018, 7, 6, 0, 0, 5018, 5019, 7, 5, 0, 0, 5019, 5020, 7, 5, 0, 0, 5020, 8, 1, 0, 0, 0, 5021, 5022, 7, 0, 0, 0, 5022, 5023, 7, 8, 0, 0, 5023, 5024, 7, 8, 0, 0, 5024, 5025, 7, 6, 0, 0, 5025, 5026, 7, 5, 0, 0, 5026, 5027, 7, 5, 0, 0, 5027, 5028, 7, 6, 0, 0, 5028, 5029, 7, 9, 0, 0, 5029, 10, 1, 0, 0, 0, 5030, 5031, 7, 0, 0, 0, 5031, 5032, 7, 8, 0, 0, 5032, 5033, 7, 8, 0, 0, 5033, 5034, 7, 6, 0, 0, 5034, 5035, 7, 5, 0, 0, 5035, 5036, 7, 5, 0, 0, 5036, 5037, 7, 10, 0, 0, 5037, 5038, 7, 1, 0, 0, 5038, 5039, 7, 11, 0, 0, 5039, 5040, 7, 6, 0, 0, 5040, 12, 1, 0, 0, 0, 5041, 5042, 7, 0, 0, 0, 5042, 5043, 7, 8, 0, 0, 5043, 5044, 7, 8, 0, 0, 5044, 5045, 7, 2, 0, 0, 5045, 5046, 7, 12, 0, 0, 5046, 5047, 7, 7, 0, 0, 5047, 5048, 7, 4, 0, 0, 5048, 14, 1, 0, 0, 0, 5049, 5050, 7, 0, 0, 0, 5050, 5051, 7, 8, 0, 0, 5051, 5052, 7, 11, 0, 0, 5052, 16, 1, 0, 0, 0, 5053, 5054, 7, 0, 0, 0, 5054, 5055, 7, 8, 0, 0, 5055, 5056, 7, 2, 0, 0, 5056, 5057, 7, 5, 0, 0, 5057, 18, 1, 0, 0, 0, 5058, 5059, 7, 0, 0, 0, 5059, 5060, 7, 8, 0, 0, 5060, 5061, 7, 3, 0, 0, 5061, 5062, 7, 2, 0, 0, 5062, 5063, 7, 5, 0, 0, 5063, 5064, 7, 5, 0, 0, 5064, 20, 1, 0, 0, 0, 5065, 5066, 7, 0, 0, 0, 5066, 5067, 7, 8, 0, 0, 5067, 5068, 7, 4, 0, 0, 5068, 5069, 7, 10, 0, 0, 5069, 5070, 7, 2, 0, 0, 5070, 5071, 7, 7, 0, 0, 5071, 22, 1, 0, 0, 0, 5072, 5073, 7, 0, 0, 0, 5073, 5074, 7, 8, 0, 0, 5074, 5075, 7, 4, 0, 0, 5075, 5076, 7, 10, 0, 0, 5076, 5077, 7, 2, 0, 0, 5077, 5078, 7, 7, 0, 0, 5078, 5079, 7, 5, 0, 0, 5079, 24, 1, 0, 0, 0, 5080, 5081, 7, 0, 0, 0, 5081, 5082, 7, 8, 0, 0, 5082, 5083, 7, 4, 0, 0, 5083, 5084, 7, 10, 0, 0, 5084, 5085, 7, 13, 0, 0, 5085, 5086, 7, 0, 0, 0, 5086, 5087, 7, 4, 0, 0, 5087, 5088, 7, 6, 0, 0, 5088, 26, 1, 0, 0, 0, 5089, 5090, 7, 0, 0, 0, 5090, 5091, 7, 8, 0, 0, 5091, 5092, 7, 4, 0, 0, 5092, 5093, 7, 10, 0, 0, 5093, 5094, 7, 13, 0, 0, 5094, 5095, 7, 6, 0, 0, 5095, 28, 1, 0, 0, 0, 5096, 5097, 7, 0, 0, 0, 5097, 5098, 7, 8, 0, 0, 5098, 5099, 7, 4, 0, 0, 5099, 5100, 7, 10, 0, 0, 5100, 5101, 7, 13, 0, 0, 5101, 5102, 7, 6, 0, 0, 5102, 5103, 5, 95, 0, 0, 5103, 5104, 7, 8, 0, 0, 5104, 5105, 7, 2, 0, 0, 5105, 5106, 7, 14, 0, 0, 5106, 5107, 7, 15, 0, 0, 5107, 5108, 7, 2, 0, 0, 5108, 5109, 7, 7, 0, 0, 5109, 5110, 7, 6, 0, 0, 5110, 5111, 7, 7, 0, 0, 5111, 5112, 7, 4, 0, 0, 5112, 30, 1, 0, 0, 0, 5113, 5114, 7, 0, 0, 0, 5114, 5115, 7, 8, 0, 0, 5115, 5116, 7, 4, 0, 0, 5116, 5117, 7, 10, 0, 0, 5117, 5118, 7, 13, 0, 0, 5118, 5119, 7, 6, 0, 0, 5119, 5120, 5, 95, 0, 0, 5120, 5121, 7, 9, 0, 0, 5121, 5122, 7, 0, 0, 0, 5122, 5123, 7, 4, 0, 0, 5123, 5124, 7, 0, 0, 0, 5124, 32, 1, 0, 0, 0, 5125, 5126, 7, 0, 0, 0, 5126, 5127, 7, 8, 0, 0, 5127, 5128, 7, 4, 0, 0, 5128, 5129, 7, 10, 0, 0, 5129, 5130, 7, 13, 0, 0, 5130, 5131, 7, 6, 0, 0, 5131, 5132, 5, 95, 0, 0, 5132, 5133, 7, 16, 0, 0, 5133, 5134, 7, 12, 0, 0, 5134, 5135, 7, 7, 0, 0, 5135, 5136, 7, 8, 0, 0, 5136, 5137, 7, 4, 0, 0, 5137, 5138, 7, 10, 0, 0, 5138, 5139, 7, 2, 0, 0, 5139, 5140, 7, 7, 0, 0, 5140, 34, 1, 0, 0, 0, 5141, 5142, 7, 0, 0, 0, 5142, 5143, 7, 8, 0, 0, 5143, 5144, 7, 4, 0, 0, 5144, 5145, 7, 10, 0, 0, 5145, 5146, 7, 13, 0, 0, 5146, 5147, 7, 6, 0, 0, 5147, 5148, 5, 95, 0, 0, 5148, 5149, 7, 4, 0, 0, 5149, 5150, 7, 0, 0, 0, 5150, 5151, 7, 17, 0, 0, 5151, 36, 1, 0, 0, 0, 5152, 5153, 7, 0, 0, 0, 5153, 5154, 7, 8, 0, 0, 5154, 5155, 7, 4, 0, 0, 5155, 5156, 7, 10, 0, 0, 5156, 5157, 7, 13, 0, 0, 5157, 5158, 7, 10, 0, 0, 5158, 5159, 7, 4, 0, 0, 5159, 5160, 7, 18, 0, 0, 5160, 38, 1, 0, 0, 0, 5161, 5162, 7, 0, 0, 0, 5162, 5163, 7, 9, 0, 0, 5163, 5164, 7, 0, 0, 0, 5164, 5165, 7, 15, 0, 0, 5165, 5166, 7, 4, 0, 0, 5166, 5167, 7, 10, 0, 0, 5167, 5168, 7, 13, 0, 0, 5168, 5169, 7, 6, 0, 0, 5169, 5170, 5, 95, 0, 0, 5170, 5171, 7, 15, 0, 0, 5171, 5172, 7, 11, 0, 0, 5172, 5173, 7, 0, 0, 0, 5173, 5174, 7, 7, 0, 0, 5174, 40, 1, 0, 0, 0, 5175, 5176, 7, 0, 0, 0, 5176, 5177, 7, 9, 0, 0, 5177, 5178, 7, 9, 0, 0, 5178, 42, 1, 0, 0, 0, 5179, 5180, 7, 0, 0, 0, 5180, 5181, 7, 9, 0, 0, 5181, 5182, 7, 9, 0, 0, 5182, 5183, 5, 95, 0, 0, 5183, 5184, 7, 8, 0, 0, 5184, 5185, 7, 2, 0, 0, 5185, 5186, 7, 11, 0, 0, 5186, 5187, 7, 12, 0, 0, 5187, 5188, 7, 14, 0, 0, 5188, 5189, 7, 7, 0, 0, 5189, 44, 1, 0, 0, 0, 5190, 5191, 7, 0, 0, 0, 5191, 5192, 7, 9, 0, 0, 5192, 5193, 7, 9, 0, 0, 5193, 5194, 5, 95, 0, 0, 5194, 5195, 7, 17, 0, 0, 5195, 5196, 7, 3, 0, 0, 5196, 5197, 7, 2, 0, 0, 5197, 5198, 7, 12, 0, 0, 5198, 5199, 7, 15, 0, 0, 5199, 46, 1, 0, 0, 0, 5200, 5201, 7, 0, 0, 0, 5201, 5202, 7, 9, 0, 0, 5202, 5203, 7, 9, 0, 0, 5203, 5204, 5, 95, 0, 0, 5204, 5205, 7, 14, 0, 0, 5205, 5206, 7, 2, 0, 0, 5206, 5207, 7, 7, 0, 0, 5207, 5208, 7, 4, 0, 0, 5208, 5209, 7, 19, 0, 0, 5209, 5210, 7, 5, 0, 0, 5210, 48, 1, 0, 0, 0, 5211, 5212, 7, 0, 0, 0, 5212, 5213, 7, 9, 0, 0, 5213, 5214, 7, 20, 0, 0, 5214, 5215, 5, 95, 0, 0, 5215, 5216, 7, 9, 0, 0, 5216, 5217, 7, 0, 0, 0, 5217, 5218, 7, 4, 0, 0, 5218, 5219, 7, 6, 0, 0, 5219, 50, 1, 0, 0, 0, 5220, 5221, 7, 0, 0, 0, 5221, 5222, 7, 9, 0, 0, 5222, 5223, 7, 14, 0, 0, 5223, 5224, 7, 10, 0, 0, 5224, 5225, 7, 7, 0, 0, 5225, 52, 1, 0, 0, 0, 5226, 5227, 7, 0, 0, 0, 5227, 5228, 7, 9, 0, 0, 5228, 5229, 7, 14, 0, 0, 5229, 5230, 7, 10, 0, 0, 5230, 5231, 7, 7, 0, 0, 5231, 5232, 7, 10, 0, 0, 5232, 5233, 7, 5, 0, 0, 5233, 5234, 7, 4, 0, 0, 5234, 5235, 7, 6, 0, 0, 5235, 5236, 7, 3, 0, 0, 5236, 54, 1, 0, 0, 0, 5237, 5238, 7, 0, 0, 0, 5238, 5239, 7, 9, 0, 0, 5239, 5240, 7, 14, 0, 0, 5240, 5241, 7, 10, 0, 0, 5241, 5242, 7, 7, 0, 0, 5242, 5243, 7, 10, 0, 0, 5243, 5244, 7, 5, 0, 0, 5244, 5245, 7, 4, 0, 0, 5245, 5246, 7, 3, 0, 0, 5246, 5247, 7, 0, 0, 0, 5247, 5248, 7, 4, 0, 0, 5248, 5249, 7, 2, 0, 0, 5249, 5250, 7, 3, 0, 0, 5250, 56, 1, 0, 0, 0, 5251, 5252, 7, 0, 0, 0, 5252, 5253, 7, 9, 0, 0, 5253, 5254, 7, 13, 0, 0, 5254, 5255, 7, 0, 0, 0, 5255, 5256, 7, 7, 0, 0, 5256, 5257, 7, 8, 0, 0, 5257, 5258, 7, 6, 0, 0, 5258, 5259, 7, 9, 0, 0, 5259, 58, 1, 0, 0, 0, 5260, 5261, 7, 0, 0, 0, 5261, 5262, 7, 9, 0, 0, 5262, 5263, 7, 13, 0, 0, 5263, 5264, 7, 10, 0, 0, 5264, 5265, 7, 5, 0, 0, 5265, 5266, 7, 6, 0, 0, 5266, 60, 1, 0, 0, 0, 5267, 5268, 7, 0, 0, 0, 5268, 5269, 7, 9, 0, 0, 5269, 5270, 7, 13, 0, 0, 5270, 5271, 7, 10, 0, 0, 5271, 5272, 7, 5, 0, 0, 5272, 5273, 7, 2, 0, 0, 5273, 5274, 7, 3, 0, 0, 5274, 62, 1, 0, 0, 0, 5275, 5276, 7, 0, 0, 0, 5276, 5277, 7, 16, 0, 0, 5277, 5278, 7, 9, 0, 0, 5278, 5279, 5, 95, 0, 0, 5279, 5280, 7, 9, 0, 0, 5280, 5281, 7, 10, 0, 0, 5281, 5282, 7, 5, 0, 0, 5282, 5283, 7, 21, 0, 0, 5283, 5284, 7, 5, 0, 0, 5284, 5285, 7, 4, 0, 0, 5285, 5286, 7, 3, 0, 0, 5286, 5287, 7, 10, 0, 0, 5287, 5288, 7, 7, 0, 0, 5288, 5289, 7, 17, 0, 0, 5289, 64, 1, 0, 0, 0, 5290, 5291, 7, 0, 0, 0, 5291, 5292, 7, 16, 0, 0, 5292, 5293, 7, 4, 0, 0, 5293, 5294, 7, 6, 0, 0, 5294, 5295, 7, 3, 0, 0, 5295, 66, 1, 0, 0, 0, 5296, 5297, 7, 0, 0, 0, 5297, 5298, 7, 17, 0, 0, 5298, 5299, 7, 6, 0, 0, 5299, 5300, 7, 7, 0, 0, 5300, 5301, 7, 4, 0, 0, 5301, 68, 1, 0, 0, 0, 5302, 5303, 7, 0, 0, 0, 5303, 5304, 7, 17, 0, 0, 5304, 5305, 7, 17, 0, 0, 5305, 5306, 7, 3, 0, 0, 5306, 5307, 7, 6, 0, 0, 5307, 5308, 7, 17, 0, 0, 5308, 5309, 7, 0, 0, 0, 5309, 5310, 7, 4, 0, 0, 5310, 5311, 7, 6, 0, 0, 5311, 70, 1, 0, 0, 0, 5312, 5313, 7, 0, 0, 0, 5313, 72, 1, 0, 0, 0, 5314, 5315, 7, 0, 0, 0, 5315, 5316, 7, 11, 0, 0, 5316, 5317, 7, 10, 0, 0, 5317, 5318, 7, 0, 0, 0, 5318, 5319, 7, 5, 0, 0, 5319, 74, 1, 0, 0, 0, 5320, 5321, 7, 0, 0, 0, 5321, 5322, 7, 11, 0, 0, 5322, 5323, 7, 11, 0, 0, 5323, 76, 1, 0, 0, 0, 5324, 5325, 7, 0, 0, 0, 5325, 5326, 7, 11, 0, 0, 5326, 5327, 7, 11, 0, 0, 5327, 5328, 7, 2, 0, 0, 5328, 5329, 7, 8, 0, 0, 5329, 5330, 7, 0, 0, 0, 5330, 5331, 7, 4, 0, 0, 5331, 5332, 7, 6, 0, 0, 5332, 78, 1, 0, 0, 0, 5333, 5334, 7, 0, 0, 0, 5334, 5335, 7, 11, 0, 0, 5335, 5336, 7, 11, 0, 0, 5336, 5337, 7, 2, 0, 0, 5337, 5338, 7, 22, 0, 0, 5338, 80, 1, 0, 0, 0, 5339, 5340, 7, 0, 0, 0, 5340, 5341, 7, 11, 0, 0, 5341, 5342, 7, 11, 0, 0, 5342, 5343, 5, 95, 0, 0, 5343, 5344, 7, 3, 0, 0, 5344, 5345, 7, 2, 0, 0, 5345, 5346, 7, 22, 0, 0, 5346, 5347, 7, 5, 0, 0, 5347, 82, 1, 0, 0, 0, 5348, 5349, 7, 0, 0, 0, 5349, 5350, 7, 11, 0, 0, 5350, 5351, 7, 4, 0, 0, 5351, 5352, 7, 6, 0, 0, 5352, 5353, 7, 3, 0, 0, 5353, 84, 1, 0, 0, 0, 5354, 5355, 7, 0, 0, 0, 5355, 5356, 7, 11, 0, 0, 5356, 5357, 7, 4, 0, 0, 5357, 5358, 7, 6, 0, 0, 5358, 5359, 7, 3, 0, 0, 5359, 5360, 7, 7, 0, 0, 5360, 5361, 7, 0, 0, 0, 5361, 5362, 7, 4, 0, 0, 5362, 5363, 7, 6, 0, 0, 5363, 86, 1, 0, 0, 0, 5364, 5365, 7, 0, 0, 0, 5365, 5366, 7, 11, 0, 0, 5366, 5367, 7, 22, 0, 0, 5367, 5368, 7, 0, 0, 0, 5368, 5369, 7, 18, 0, 0, 5369, 5370, 7, 5, 0, 0, 5370, 88, 1, 0, 0, 0, 5371, 5372, 7, 0, 0, 0, 5372, 5373, 7, 7, 0, 0, 5373, 5374, 7, 0, 0, 0, 5374, 5375, 7, 11, 0, 0, 5375, 5376, 7, 18, 0, 0, 5376, 5377, 7, 4, 0, 0, 5377, 5378, 7, 10, 0, 0, 5378, 5379, 7, 8, 0, 0, 5379, 90, 1, 0, 0, 0, 5380, 5381, 7, 0, 0, 0, 5381, 5382, 7, 7, 0, 0, 5382, 5383, 7, 0, 0, 0, 5383, 5384, 7, 11, 0, 0, 5384, 5385, 7, 18, 0, 0, 5385, 5386, 7, 23, 0, 0, 5386, 5387, 7, 6, 0, 0, 5387, 92, 1, 0, 0, 0, 5388, 5389, 7, 0, 0, 0, 5389, 5390, 7, 7, 0, 0, 5390, 5391, 7, 8, 0, 0, 5391, 5392, 7, 6, 0, 0, 5392, 5393, 7, 5, 0, 0, 5393, 5394, 7, 4, 0, 0, 5394, 5395, 7, 2, 0, 0, 5395, 5396, 7, 3, 0, 0, 5396, 94, 1, 0, 0, 0, 5397, 5398, 7, 0, 0, 0, 5398, 5399, 7, 7, 0, 0, 5399, 5400, 7, 8, 0, 0, 5400, 5401, 7, 10, 0, 0, 5401, 5402, 7, 11, 0, 0, 5402, 5403, 7, 11, 0, 0, 5403, 5404, 7, 0, 0, 0, 5404, 5405, 7, 3, 0, 0, 5405, 5406, 7, 18, 0, 0, 5406, 96, 1, 0, 0, 0, 5407, 5408, 7, 0, 0, 0, 5408, 5409, 7, 7, 0, 0, 5409, 5410, 7, 9, 0, 0, 5410, 98, 1, 0, 0, 0, 5411, 5412, 7, 0, 0, 0, 5412, 5413, 7, 7, 0, 0, 5413, 5414, 7, 9, 0, 0, 5414, 5415, 5, 95, 0, 0, 5415, 5416, 7, 6, 0, 0, 5416, 5417, 7, 24, 0, 0, 5417, 5418, 7, 12, 0, 0, 5418, 5419, 7, 0, 0, 0, 5419, 5420, 7, 11, 0, 0, 5420, 100, 1, 0, 0, 0, 5421, 5422, 7, 0, 0, 0, 5422, 5423, 7, 7, 0, 0, 5423, 5424, 7, 7, 0, 0, 5424, 5425, 7, 2, 0, 0, 5425, 5426, 7, 4, 0, 0, 5426, 5427, 7, 0, 0, 0, 5427, 5428, 7, 4, 0, 0, 5428, 5429, 7, 10, 0, 0, 5429, 5430, 7, 2, 0, 0, 5430, 5431, 7, 7, 0, 0, 5431, 5432, 7, 5, 0, 0, 5432, 102, 1, 0, 0, 0, 5433, 5434, 7, 0, 0, 0, 5434, 5435, 7, 7, 0, 0, 5435, 5436, 7, 2, 0, 0, 5436, 5437, 7, 14, 0, 0, 5437, 5438, 7, 0, 0, 0, 5438, 5439, 7, 11, 0, 0, 5439, 5440, 7, 18, 0, 0, 5440, 104, 1, 0, 0, 0, 5441, 5442, 7, 0, 0, 0, 5442, 5443, 7, 7, 0, 0, 5443, 5444, 7, 5, 0, 0, 5444, 5445, 7, 10, 0, 0, 5445, 5446, 5, 95, 0, 0, 5446, 5447, 7, 3, 0, 0, 5447, 5448, 7, 6, 0, 0, 5448, 5449, 7, 0, 0, 0, 5449, 5450, 7, 3, 0, 0, 5450, 5451, 7, 8, 0, 0, 5451, 5452, 7, 19, 0, 0, 5452, 106, 1, 0, 0, 0, 5453, 5454, 7, 0, 0, 0, 5454, 5455, 7, 7, 0, 0, 5455, 5456, 7, 4, 0, 0, 5456, 5457, 7, 10, 0, 0, 5457, 5458, 7, 20, 0, 0, 5458, 5459, 7, 2, 0, 0, 5459, 5460, 7, 10, 0, 0, 5460, 5461, 7, 7, 0, 0, 5461, 108, 1, 0, 0, 0, 5462, 5463, 7, 0, 0, 0, 5463, 5464, 7, 7, 0, 0, 5464, 5465, 7, 18, 0, 0, 5465, 110, 1, 0, 0, 0, 5466, 5467, 7, 0, 0, 0, 5467, 5468, 7, 7, 0, 0, 5468, 5469, 7, 18, 0, 0, 5469, 5470, 7, 5, 0, 0, 5470, 5471, 7, 8, 0, 0, 5471, 5472, 7, 19, 0, 0, 5472, 5473, 7, 6, 0, 0, 5473, 5474, 7, 14, 0, 0, 5474, 5475, 7, 0, 0, 0, 5475, 112, 1, 0, 0, 0, 5476, 5477, 7, 0, 0, 0, 5477, 5478, 7, 15, 0, 0, 5478, 5479, 7, 15, 0, 0, 5479, 5480, 7, 6, 0, 0, 5480, 5481, 7, 7, 0, 0, 5481, 5482, 7, 9, 0, 0, 5482, 114, 1, 0, 0, 0, 5483, 5484, 7, 0, 0, 0, 5484, 5485, 7, 15, 0, 0, 5485, 5486, 7, 15, 0, 0, 5486, 5487, 7, 6, 0, 0, 5487, 5488, 7, 7, 0, 0, 5488, 5489, 7, 9, 0, 0, 5489, 5490, 7, 8, 0, 0, 5490, 5491, 7, 19, 0, 0, 5491, 5492, 7, 10, 0, 0, 5492, 5493, 7, 11, 0, 0, 5493, 5494, 7, 9, 0, 0, 5494, 5495, 7, 25, 0, 0, 5495, 5496, 7, 14, 0, 0, 5496, 5497, 7, 11, 0, 0, 5497, 116, 1, 0, 0, 0, 5498, 5499, 7, 0, 0, 0, 5499, 5500, 7, 15, 0, 0, 5500, 5501, 7, 15, 0, 0, 5501, 5502, 7, 6, 0, 0, 5502, 5503, 7, 7, 0, 0, 5503, 5504, 7, 9, 0, 0, 5504, 5505, 5, 95, 0, 0, 5505, 5506, 7, 13, 0, 0, 5506, 5507, 7, 0, 0, 0, 5507, 5508, 7, 11, 0, 0, 5508, 5509, 7, 12, 0, 0, 5509, 5510, 7, 6, 0, 0, 5510, 5511, 7, 5, 0, 0, 5511, 118, 1, 0, 0, 0, 5512, 5513, 7, 0, 0, 0, 5513, 5514, 7, 15, 0, 0, 5514, 5515, 7, 15, 0, 0, 5515, 5516, 7, 11, 0, 0, 5516, 5517, 7, 10, 0, 0, 5517, 5518, 7, 8, 0, 0, 5518, 5519, 7, 0, 0, 0, 5519, 5520, 7, 4, 0, 0, 5520, 5521, 7, 10, 0, 0, 5521, 5522, 7, 2, 0, 0, 5522, 5523, 7, 7, 0, 0, 5523, 120, 1, 0, 0, 0, 5524, 5525, 7, 0, 0, 0, 5525, 5526, 7, 15, 0, 0, 5526, 5527, 7, 15, 0, 0, 5527, 5528, 7, 11, 0, 0, 5528, 5529, 7, 18, 0, 0, 5529, 122, 1, 0, 0, 0, 5530, 5531, 7, 0, 0, 0, 5531, 5532, 7, 15, 0, 0, 5532, 5533, 7, 15, 0, 0, 5533, 5534, 7, 3, 0, 0, 5534, 5535, 7, 2, 0, 0, 5535, 5536, 7, 25, 0, 0, 5536, 5537, 5, 95, 0, 0, 5537, 5538, 7, 8, 0, 0, 5538, 5539, 7, 2, 0, 0, 5539, 5540, 7, 12, 0, 0, 5540, 5541, 7, 7, 0, 0, 5541, 5542, 7, 4, 0, 0, 5542, 5543, 5, 95, 0, 0, 5543, 5544, 7, 9, 0, 0, 5544, 5545, 7, 10, 0, 0, 5545, 5546, 7, 5, 0, 0, 5546, 5547, 7, 4, 0, 0, 5547, 5548, 7, 10, 0, 0, 5548, 5549, 7, 7, 0, 0, 5549, 5550, 7, 8, 0, 0, 5550, 5551, 7, 4, 0, 0, 5551, 124, 1, 0, 0, 0, 5552, 5553, 7, 0, 0, 0, 5553, 5554, 7, 3, 0, 0, 5554, 5555, 7, 8, 0, 0, 5555, 5556, 7, 19, 0, 0, 5556, 5557, 7, 10, 0, 0, 5557, 5558, 7, 13, 0, 0, 5558, 5559, 7, 0, 0, 0, 5559, 5560, 7, 11, 0, 0, 5560, 126, 1, 0, 0, 0, 5561, 5562, 7, 0, 0, 0, 5562, 5563, 7, 3, 0, 0, 5563, 5564, 7, 8, 0, 0, 5564, 5565, 7, 19, 0, 0, 5565, 5566, 7, 10, 0, 0, 5566, 5567, 7, 13, 0, 0, 5567, 5568, 7, 6, 0, 0, 5568, 128, 1, 0, 0, 0, 5569, 5570, 7, 0, 0, 0, 5570, 5571, 7, 3, 0, 0, 5571, 5572, 7, 8, 0, 0, 5572, 5573, 7, 19, 0, 0, 5573, 5574, 7, 10, 0, 0, 5574, 5575, 7, 13, 0, 0, 5575, 5576, 7, 6, 0, 0, 5576, 5577, 7, 9, 0, 0, 5577, 130, 1, 0, 0, 0, 5578, 5579, 7, 0, 0, 0, 5579, 5580, 7, 3, 0, 0, 5580, 5581, 7, 8, 0, 0, 5581, 5582, 7, 19, 0, 0, 5582, 5583, 7, 10, 0, 0, 5583, 5584, 7, 13, 0, 0, 5584, 5585, 7, 6, 0, 0, 5585, 5586, 7, 11, 0, 0, 5586, 5587, 7, 2, 0, 0, 5587, 5588, 7, 17, 0, 0, 5588, 132, 1, 0, 0, 0, 5589, 5590, 7, 0, 0, 0, 5590, 5591, 7, 3, 0, 0, 5591, 5592, 7, 6, 0, 0, 5592, 134, 1, 0, 0, 0, 5593, 5594, 7, 0, 0, 0, 5594, 5595, 7, 3, 0, 0, 5595, 5596, 7, 3, 0, 0, 5596, 5597, 7, 0, 0, 0, 5597, 5598, 7, 18, 0, 0, 5598, 136, 1, 0, 0, 0, 5599, 5600, 7, 0, 0, 0, 5600, 5601, 7, 5, 0, 0, 5601, 138, 1, 0, 0, 0, 5602, 5603, 7, 0, 0, 0, 5603, 5604, 7, 5, 0, 0, 5604, 5605, 7, 8, 0, 0, 5605, 140, 1, 0, 0, 0, 5606, 5607, 7, 0, 0, 0, 5607, 5608, 7, 5, 0, 0, 5608, 5609, 7, 8, 0, 0, 5609, 5610, 7, 10, 0, 0, 5610, 5611, 7, 10, 0, 0, 5611, 142, 1, 0, 0, 0, 5612, 5613, 7, 0, 0, 0, 5613, 5614, 7, 5, 0, 0, 5614, 5615, 7, 8, 0, 0, 5615, 5616, 7, 10, 0, 0, 5616, 5617, 7, 10, 0, 0, 5617, 5618, 7, 5, 0, 0, 5618, 5619, 7, 4, 0, 0, 5619, 5620, 7, 3, 0, 0, 5620, 144, 1, 0, 0, 0, 5621, 5622, 7, 0, 0, 0, 5622, 5623, 7, 5, 0, 0, 5623, 5624, 7, 10, 0, 0, 5624, 5625, 7, 7, 0, 0, 5625, 146, 1, 0, 0, 0, 5626, 5627, 7, 0, 0, 0, 5627, 5628, 7, 5, 0, 0, 5628, 5629, 7, 10, 0, 0, 5629, 5630, 7, 5, 0, 0, 5630, 148, 1, 0, 0, 0, 5631, 5632, 7, 0, 0, 0, 5632, 5633, 7, 5, 0, 0, 5633, 5634, 7, 5, 0, 0, 5634, 5635, 7, 6, 0, 0, 5635, 5636, 7, 14, 0, 0, 5636, 5637, 7, 1, 0, 0, 5637, 5638, 7, 11, 0, 0, 5638, 5639, 7, 18, 0, 0, 5639, 150, 1, 0, 0, 0, 5640, 5641, 7, 0, 0, 0, 5641, 5642, 7, 5, 0, 0, 5642, 5643, 7, 5, 0, 0, 5643, 5644, 7, 10, 0, 0, 5644, 5645, 7, 17, 0, 0, 5645, 5646, 7, 7, 0, 0, 5646, 152, 1, 0, 0, 0, 5647, 5648, 7, 0, 0, 0, 5648, 5649, 7, 5, 0, 0, 5649, 5650, 7, 5, 0, 0, 5650, 5651, 7, 2, 0, 0, 5651, 5652, 7, 8, 0, 0, 5652, 5653, 7, 10, 0, 0, 5653, 5654, 7, 0, 0, 0, 5654, 5655, 7, 4, 0, 0, 5655, 5656, 7, 6, 0, 0, 5656, 154, 1, 0, 0, 0, 5657, 5658, 7, 0, 0, 0, 5658, 5659, 7, 5, 0, 0, 5659, 5660, 7, 18, 0, 0, 5660, 5661, 7, 7, 0, 0, 5661, 5662, 7, 8, 0, 0, 5662, 156, 1, 0, 0, 0, 5663, 5664, 7, 0, 0, 0, 5664, 5665, 7, 5, 0, 0, 5665, 5666, 7, 18, 0, 0, 5666, 5667, 7, 7, 0, 0, 5667, 5668, 7, 8, 0, 0, 5668, 5669, 7, 19, 0, 0, 5669, 5670, 7, 3, 0, 0, 5670, 5671, 7, 2, 0, 0, 5671, 5672, 7, 7, 0, 0, 5672, 5673, 7, 2, 0, 0, 5673, 5674, 7, 12, 0, 0, 5674, 5675, 7, 5, 0, 0, 5675, 158, 1, 0, 0, 0, 5676, 5677, 7, 0, 0, 0, 5677, 5678, 7, 4, 0, 0, 5678, 5679, 7, 0, 0, 0, 5679, 5680, 7, 7, 0, 0, 5680, 5681, 5, 50, 0, 0, 5681, 160, 1, 0, 0, 0, 5682, 5683, 7, 0, 0, 0, 5683, 5684, 7, 4, 0, 0, 5684, 5685, 7, 0, 0, 0, 5685, 5686, 7, 7, 0, 0, 5686, 162, 1, 0, 0, 0, 5687, 5688, 7, 0, 0, 0, 5688, 5689, 7, 4, 0, 0, 5689, 164, 1, 0, 0, 0, 5690, 5691, 7, 0, 0, 0, 5691, 5692, 7, 4, 0, 0, 5692, 5693, 7, 4, 0, 0, 5693, 5694, 7, 3, 0, 0, 5694, 5695, 7, 10, 0, 0, 5695, 5696, 7, 1, 0, 0, 5696, 5697, 7, 12, 0, 0, 5697, 5698, 7, 4, 0, 0, 5698, 5699, 7, 6, 0, 0, 5699, 166, 1, 0, 0, 0, 5700, 5701, 7, 0, 0, 0, 5701, 5702, 7, 4, 0, 0, 5702, 5703, 7, 4, 0, 0, 5703, 5704, 7, 3, 0, 0, 5704, 5705, 7, 10, 0, 0, 5705, 5706, 7, 1, 0, 0, 5706, 5707, 7, 12, 0, 0, 5707, 5708, 7, 4, 0, 0, 5708, 5709, 7, 6, 0, 0, 5709, 5710, 7, 5, 0, 0, 5710, 168, 1, 0, 0, 0, 5711, 5712, 7, 0, 0, 0, 5712, 5713, 7, 12, 0, 0, 5713, 5714, 7, 9, 0, 0, 5714, 5715, 7, 10, 0, 0, 5715, 5716, 7, 4, 0, 0, 5716, 170, 1, 0, 0, 0, 5717, 5718, 7, 0, 0, 0, 5718, 5719, 7, 12, 0, 0, 5719, 5720, 7, 4, 0, 0, 5720, 5721, 7, 19, 0, 0, 5721, 5722, 7, 6, 0, 0, 5722, 5723, 7, 7, 0, 0, 5723, 5724, 7, 4, 0, 0, 5724, 5725, 7, 10, 0, 0, 5725, 5726, 7, 8, 0, 0, 5726, 5727, 7, 0, 0, 0, 5727, 5728, 7, 4, 0, 0, 5728, 5729, 7, 6, 0, 0, 5729, 5730, 7, 9, 0, 0, 5730, 172, 1, 0, 0, 0, 5731, 5732, 7, 0, 0, 0, 5732, 5733, 7, 12, 0, 0, 5733, 5734, 7, 4, 0, 0, 5734, 5735, 7, 19, 0, 0, 5735, 5736, 7, 6, 0, 0, 5736, 5737, 7, 7, 0, 0, 5737, 5738, 7, 4, 0, 0, 5738, 5739, 7, 10, 0, 0, 5739, 5740, 7, 8, 0, 0, 5740, 5741, 7, 0, 0, 0, 5741, 5742, 7, 4, 0, 0, 5742, 5743, 7, 10, 0, 0, 5743, 5744, 7, 2, 0, 0, 5744, 5745, 7, 7, 0, 0, 5745, 174, 1, 0, 0, 0, 5746, 5747, 7, 0, 0, 0, 5747, 5748, 7, 12, 0, 0, 5748, 5749, 7, 4, 0, 0, 5749, 5750, 7, 19, 0, 0, 5750, 5751, 7, 10, 0, 0, 5751, 5752, 7, 9, 0, 0, 5752, 176, 1, 0, 0, 0, 5753, 5754, 7, 0, 0, 0, 5754, 5755, 7, 12, 0, 0, 5755, 5756, 7, 4, 0, 0, 5756, 5757, 7, 19, 0, 0, 5757, 5758, 7, 2, 0, 0, 5758, 5759, 7, 3, 0, 0, 5759, 5760, 7, 10, 0, 0, 5760, 5761, 7, 23, 0, 0, 5761, 5762, 7, 0, 0, 0, 5762, 5763, 7, 4, 0, 0, 5763, 5764, 7, 10, 0, 0, 5764, 5765, 7, 2, 0, 0, 5765, 5766, 7, 7, 0, 0, 5766, 178, 1, 0, 0, 0, 5767, 5768, 7, 0, 0, 0, 5768, 5769, 7, 12, 0, 0, 5769, 5770, 7, 4, 0, 0, 5770, 5771, 7, 2, 0, 0, 5771, 5772, 7, 0, 0, 0, 5772, 5773, 7, 11, 0, 0, 5773, 5774, 7, 11, 0, 0, 5774, 5775, 7, 2, 0, 0, 5775, 5776, 7, 8, 0, 0, 5776, 5777, 7, 0, 0, 0, 5777, 5778, 7, 4, 0, 0, 5778, 5779, 7, 6, 0, 0, 5779, 180, 1, 0, 0, 0, 5780, 5781, 7, 0, 0, 0, 5781, 5782, 7, 12, 0, 0, 5782, 5783, 7, 4, 0, 0, 5783, 5784, 7, 2, 0, 0, 5784, 182, 1, 0, 0, 0, 5785, 5786, 7, 0, 0, 0, 5786, 5787, 7, 12, 0, 0, 5787, 5788, 7, 4, 0, 0, 5788, 5789, 7, 2, 0, 0, 5789, 5790, 7, 1, 0, 0, 5790, 5791, 7, 0, 0, 0, 5791, 5792, 7, 8, 0, 0, 5792, 5793, 7, 21, 0, 0, 5793, 5794, 7, 12, 0, 0, 5794, 5795, 7, 15, 0, 0, 5795, 184, 1, 0, 0, 0, 5796, 5797, 7, 0, 0, 0, 5797, 5798, 7, 12, 0, 0, 5798, 5799, 7, 4, 0, 0, 5799, 5800, 7, 2, 0, 0, 5800, 5801, 7, 6, 0, 0, 5801, 5802, 7, 25, 0, 0, 5802, 5803, 7, 4, 0, 0, 5803, 5804, 7, 6, 0, 0, 5804, 5805, 7, 7, 0, 0, 5805, 5806, 7, 9, 0, 0, 5806, 186, 1, 0, 0, 0, 5807, 5808, 7, 0, 0, 0, 5808, 5809, 7, 12, 0, 0, 5809, 5810, 7, 4, 0, 0, 5810, 5811, 7, 2, 0, 0, 5811, 5812, 5, 95, 0, 0, 5812, 5813, 7, 11, 0, 0, 5813, 5814, 7, 2, 0, 0, 5814, 5815, 7, 17, 0, 0, 5815, 5816, 7, 10, 0, 0, 5816, 5817, 7, 7, 0, 0, 5817, 188, 1, 0, 0, 0, 5818, 5819, 7, 0, 0, 0, 5819, 5820, 7, 12, 0, 0, 5820, 5821, 7, 4, 0, 0, 5821, 5822, 7, 2, 0, 0, 5822, 5823, 7, 14, 0, 0, 5823, 5824, 7, 0, 0, 0, 5824, 5825, 7, 4, 0, 0, 5825, 5826, 7, 10, 0, 0, 5826, 5827, 7, 8, 0, 0, 5827, 190, 1, 0, 0, 0, 5828, 5829, 7, 0, 0, 0, 5829, 5830, 7, 12, 0, 0, 5830, 5831, 7, 4, 0, 0, 5831, 5832, 7, 2, 0, 0, 5832, 5833, 7, 7, 0, 0, 5833, 5834, 7, 2, 0, 0, 5834, 5835, 7, 14, 0, 0, 5835, 5836, 7, 2, 0, 0, 5836, 5837, 7, 12, 0, 0, 5837, 5838, 7, 5, 0, 0, 5838, 5839, 5, 95, 0, 0, 5839, 5840, 7, 4, 0, 0, 5840, 5841, 7, 3, 0, 0, 5841, 5842, 7, 0, 0, 0, 5842, 5843, 7, 7, 0, 0, 5843, 5844, 7, 5, 0, 0, 5844, 5845, 7, 0, 0, 0, 5845, 5846, 7, 8, 0, 0, 5846, 5847, 7, 4, 0, 0, 5847, 5848, 7, 10, 0, 0, 5848, 5849, 7, 2, 0, 0, 5849, 5850, 7, 7, 0, 0, 5850, 192, 1, 0, 0, 0, 5851, 5852, 7, 0, 0, 0, 5852, 5853, 7, 12, 0, 0, 5853, 5854, 7, 4, 0, 0, 5854, 5855, 7, 2, 0, 0, 5855, 5856, 5, 95, 0, 0, 5856, 5857, 7, 3, 0, 0, 5857, 5858, 7, 6, 0, 0, 5858, 5859, 7, 2, 0, 0, 5859, 5860, 7, 15, 0, 0, 5860, 5861, 7, 4, 0, 0, 5861, 5862, 7, 10, 0, 0, 5862, 5863, 7, 14, 0, 0, 5863, 5864, 7, 10, 0, 0, 5864, 5865, 7, 23, 0, 0, 5865, 5866, 7, 6, 0, 0, 5866, 194, 1, 0, 0, 0, 5867, 5868, 7, 0, 0, 0, 5868, 5869, 7, 13, 0, 0, 5869, 5870, 7, 0, 0, 0, 5870, 5871, 7, 10, 0, 0, 5871, 5872, 7, 11, 0, 0, 5872, 5873, 7, 0, 0, 0, 5873, 5874, 7, 1, 0, 0, 5874, 5875, 7, 10, 0, 0, 5875, 5876, 7, 11, 0, 0, 5876, 5877, 7, 10, 0, 0, 5877, 5878, 7, 4, 0, 0, 5878, 5879, 7, 18, 0, 0, 5879, 196, 1, 0, 0, 0, 5880, 5881, 7, 0, 0, 0, 5881, 5882, 7, 13, 0, 0, 5882, 5883, 7, 3, 0, 0, 5883, 5884, 7, 2, 0, 0, 5884, 198, 1, 0, 0, 0, 5885, 5886, 7, 1, 0, 0, 5886, 5887, 7, 0, 0, 0, 5887, 5888, 7, 8, 0, 0, 5888, 5889, 7, 21, 0, 0, 5889, 5890, 7, 17, 0, 0, 5890, 5891, 7, 3, 0, 0, 5891, 5892, 7, 2, 0, 0, 5892, 5893, 7, 12, 0, 0, 5893, 5894, 7, 7, 0, 0, 5894, 5895, 7, 9, 0, 0, 5895, 200, 1, 0, 0, 0, 5896, 5897, 7, 1, 0, 0, 5897, 5898, 7, 0, 0, 0, 5898, 5899, 7, 8, 0, 0, 5899, 5900, 7, 21, 0, 0, 5900, 5901, 7, 10, 0, 0, 5901, 5902, 7, 7, 0, 0, 5902, 5903, 7, 17, 0, 0, 5903, 5904, 7, 16, 0, 0, 5904, 5905, 7, 10, 0, 0, 5905, 5906, 7, 11, 0, 0, 5906, 5907, 7, 6, 0, 0, 5907, 202, 1, 0, 0, 0, 5908, 5909, 7, 1, 0, 0, 5909, 5910, 7, 0, 0, 0, 5910, 5911, 7, 8, 0, 0, 5911, 5912, 7, 21, 0, 0, 5912, 5913, 7, 12, 0, 0, 5913, 5914, 7, 15, 0, 0, 5914, 204, 1, 0, 0, 0, 5915, 5916, 7, 1, 0, 0, 5916, 5917, 7, 0, 0, 0, 5917, 5918, 7, 8, 0, 0, 5918, 5919, 7, 21, 0, 0, 5919, 5920, 7, 12, 0, 0, 5920, 5921, 7, 15, 0, 0, 5921, 5922, 7, 5, 0, 0, 5922, 206, 1, 0, 0, 0, 5923, 5924, 7, 1, 0, 0, 5924, 5925, 7, 0, 0, 0, 5925, 5926, 7, 8, 0, 0, 5926, 5927, 7, 21, 0, 0, 5927, 5928, 7, 12, 0, 0, 5928, 5929, 7, 15, 0, 0, 5929, 5930, 7, 5, 0, 0, 5930, 5931, 7, 6, 0, 0, 5931, 5932, 7, 4, 0, 0, 5932, 208, 1, 0, 0, 0, 5933, 5934, 7, 1, 0, 0, 5934, 5935, 7, 0, 0, 0, 5935, 5936, 7, 9, 0, 0, 5936, 5937, 7, 16, 0, 0, 5937, 5938, 7, 10, 0, 0, 5938, 5939, 7, 11, 0, 0, 5939, 5940, 7, 6, 0, 0, 5940, 210, 1, 0, 0, 0, 5941, 5942, 7, 1, 0, 0, 5942, 5943, 7, 0, 0, 0, 5943, 5944, 7, 5, 0, 0, 5944, 5945, 7, 10, 0, 0, 5945, 5946, 7, 8, 0, 0, 5946, 212, 1, 0, 0, 0, 5947, 5948, 7, 1, 0, 0, 5948, 5949, 7, 0, 0, 0, 5949, 5950, 7, 5, 0, 0, 5950, 5951, 7, 10, 0, 0, 5951, 5952, 7, 8, 0, 0, 5952, 5953, 7, 16, 0, 0, 5953, 5954, 7, 10, 0, 0, 5954, 5955, 7, 11, 0, 0, 5955, 5956, 7, 6, 0, 0, 5956, 214, 1, 0, 0, 0, 5957, 5958, 7, 1, 0, 0, 5958, 5959, 7, 0, 0, 0, 5959, 5960, 7, 4, 0, 0, 5960, 5961, 7, 8, 0, 0, 5961, 5962, 7, 19, 0, 0, 5962, 216, 1, 0, 0, 0, 5963, 5964, 7, 1, 0, 0, 5964, 5965, 7, 0, 0, 0, 5965, 5966, 7, 4, 0, 0, 5966, 5967, 7, 8, 0, 0, 5967, 5968, 7, 19, 0, 0, 5968, 5969, 7, 5, 0, 0, 5969, 5970, 7, 10, 0, 0, 5970, 5971, 7, 23, 0, 0, 5971, 5972, 7, 6, 0, 0, 5972, 218, 1, 0, 0, 0, 5973, 5974, 7, 1, 0, 0, 5974, 5975, 7, 0, 0, 0, 5975, 5976, 7, 4, 0, 0, 5976, 5977, 7, 8, 0, 0, 5977, 5978, 7, 19, 0, 0, 5978, 5979, 5, 95, 0, 0, 5979, 5980, 7, 4, 0, 0, 5980, 5981, 7, 0, 0, 0, 5981, 5982, 7, 1, 0, 0, 5982, 5983, 7, 11, 0, 0, 5983, 5984, 7, 6, 0, 0, 5984, 5985, 5, 95, 0, 0, 5985, 5986, 7, 0, 0, 0, 5986, 5987, 7, 8, 0, 0, 5987, 5988, 7, 8, 0, 0, 5988, 5989, 7, 6, 0, 0, 5989, 5990, 7, 5, 0, 0, 5990, 5991, 7, 5, 0, 0, 5991, 5992, 5, 95, 0, 0, 5992, 5993, 7, 1, 0, 0, 5993, 5994, 7, 18, 0, 0, 5994, 5995, 5, 95, 0, 0, 5995, 5996, 7, 3, 0, 0, 5996, 5997, 7, 2, 0, 0, 5997, 5998, 7, 22, 0, 0, 5998, 5999, 7, 10, 0, 0, 5999, 6000, 7, 9, 0, 0, 6000, 220, 1, 0, 0, 0, 6001, 6002, 7, 1, 0, 0, 6002, 6003, 7, 6, 0, 0, 6003, 6004, 7, 8, 0, 0, 6004, 6005, 7, 2, 0, 0, 6005, 6006, 7, 14, 0, 0, 6006, 6007, 7, 6, 0, 0, 6007, 222, 1, 0, 0, 0, 6008, 6009, 7, 1, 0, 0, 6009, 6010, 7, 6, 0, 0, 6010, 6011, 7, 16, 0, 0, 6011, 6012, 7, 2, 0, 0, 6012, 6013, 7, 3, 0, 0, 6013, 6014, 7, 6, 0, 0, 6014, 224, 1, 0, 0, 0, 6015, 6016, 7, 1, 0, 0, 6016, 6017, 7, 6, 0, 0, 6017, 6018, 7, 17, 0, 0, 6018, 6019, 7, 10, 0, 0, 6019, 6020, 7, 7, 0, 0, 6020, 226, 1, 0, 0, 0, 6021, 6022, 7, 1, 0, 0, 6022, 6023, 7, 6, 0, 0, 6023, 6024, 7, 17, 0, 0, 6024, 6025, 7, 10, 0, 0, 6025, 6026, 7, 7, 0, 0, 6026, 6027, 7, 7, 0, 0, 6027, 6028, 7, 10, 0, 0, 6028, 6029, 7, 7, 0, 0, 6029, 6030, 7, 17, 0, 0, 6030, 228, 1, 0, 0, 0, 6031, 6032, 7, 1, 0, 0, 6032, 6033, 7, 6, 0, 0, 6033, 6034, 7, 17, 0, 0, 6034, 6035, 7, 10, 0, 0, 6035, 6036, 7, 7, 0, 0, 6036, 6037, 5, 95, 0, 0, 6037, 6038, 7, 2, 0, 0, 6038, 6039, 7, 12, 0, 0, 6039, 6040, 7, 4, 0, 0, 6040, 6041, 7, 11, 0, 0, 6041, 6042, 7, 10, 0, 0, 6042, 6043, 7, 7, 0, 0, 6043, 6044, 7, 6, 0, 0, 6044, 6045, 5, 95, 0, 0, 6045, 6046, 7, 9, 0, 0, 6046, 6047, 7, 0, 0, 0, 6047, 6048, 7, 4, 0, 0, 6048, 6049, 7, 0, 0, 0, 6049, 230, 1, 0, 0, 0, 6050, 6051, 7, 1, 0, 0, 6051, 6052, 7, 6, 0, 0, 6052, 6053, 7, 19, 0, 0, 6053, 6054, 7, 0, 0, 0, 6054, 6055, 7, 11, 0, 0, 6055, 6056, 7, 16, 0, 0, 6056, 232, 1, 0, 0, 0, 6057, 6058, 7, 1, 0, 0, 6058, 6059, 7, 6, 0, 0, 6059, 6060, 7, 24, 0, 0, 6060, 6061, 7, 12, 0, 0, 6061, 6062, 7, 6, 0, 0, 6062, 6063, 7, 0, 0, 0, 6063, 6064, 7, 4, 0, 0, 6064, 6065, 7, 19, 0, 0, 6065, 234, 1, 0, 0, 0, 6066, 6067, 7, 1, 0, 0, 6067, 6068, 7, 6, 0, 0, 6068, 6069, 7, 4, 0, 0, 6069, 6070, 7, 22, 0, 0, 6070, 6071, 7, 6, 0, 0, 6071, 6072, 7, 6, 0, 0, 6072, 6073, 7, 7, 0, 0, 6073, 236, 1, 0, 0, 0, 6074, 6075, 7, 1, 0, 0, 6075, 6076, 7, 16, 0, 0, 6076, 6077, 7, 10, 0, 0, 6077, 6078, 7, 11, 0, 0, 6078, 6079, 7, 6, 0, 0, 6079, 238, 1, 0, 0, 0, 6080, 6081, 7, 1, 0, 0, 6081, 6082, 7, 16, 0, 0, 6082, 6083, 7, 10, 0, 0, 6083, 6084, 7, 11, 0, 0, 6084, 6085, 7, 6, 0, 0, 6085, 6086, 7, 7, 0, 0, 6086, 6087, 7, 0, 0, 0, 6087, 6088, 7, 14, 0, 0, 6088, 6089, 7, 6, 0, 0, 6089, 240, 1, 0, 0, 0, 6090, 6091, 7, 1, 0, 0, 6091, 6092, 7, 10, 0, 0, 6092, 6093, 7, 17, 0, 0, 6093, 242, 1, 0, 0, 0, 6094, 6095, 7, 1, 0, 0, 6095, 6096, 7, 10, 0, 0, 6096, 6097, 7, 17, 0, 0, 6097, 6098, 7, 16, 0, 0, 6098, 6099, 7, 10, 0, 0, 6099, 6100, 7, 11, 0, 0, 6100, 6101, 7, 6, 0, 0, 6101, 244, 1, 0, 0, 0, 6102, 6103, 7, 1, 0, 0, 6103, 6104, 7, 10, 0, 0, 6104, 6105, 7, 17, 0, 0, 6105, 6106, 7, 10, 0, 0, 6106, 6107, 7, 7, 0, 0, 6107, 6108, 7, 4, 0, 0, 6108, 246, 1, 0, 0, 0, 6109, 6110, 7, 1, 0, 0, 6110, 6111, 7, 10, 0, 0, 6111, 6112, 7, 7, 0, 0, 6112, 6113, 7, 0, 0, 0, 6113, 6114, 7, 3, 0, 0, 6114, 6115, 7, 18, 0, 0, 6115, 248, 1, 0, 0, 0, 6116, 6117, 7, 1, 0, 0, 6117, 6118, 7, 10, 0, 0, 6118, 6119, 7, 7, 0, 0, 6119, 6120, 7, 0, 0, 0, 6120, 6121, 7, 3, 0, 0, 6121, 6122, 7, 18, 0, 0, 6122, 6123, 5, 95, 0, 0, 6123, 6124, 7, 9, 0, 0, 6124, 6125, 7, 2, 0, 0, 6125, 6126, 7, 12, 0, 0, 6126, 6127, 7, 1, 0, 0, 6127, 6128, 7, 11, 0, 0, 6128, 6129, 7, 6, 0, 0, 6129, 250, 1, 0, 0, 0, 6130, 6131, 7, 1, 0, 0, 6131, 6132, 7, 10, 0, 0, 6132, 6133, 7, 7, 0, 0, 6133, 6134, 7, 0, 0, 0, 6134, 6135, 7, 3, 0, 0, 6135, 6136, 7, 18, 0, 0, 6136, 6137, 5, 95, 0, 0, 6137, 6138, 7, 9, 0, 0, 6138, 6139, 7, 2, 0, 0, 6139, 6140, 7, 12, 0, 0, 6140, 6141, 7, 1, 0, 0, 6141, 6142, 7, 11, 0, 0, 6142, 6143, 7, 6, 0, 0, 6143, 6144, 5, 95, 0, 0, 6144, 6145, 7, 10, 0, 0, 6145, 6146, 7, 7, 0, 0, 6146, 6147, 7, 16, 0, 0, 6147, 6148, 7, 10, 0, 0, 6148, 6149, 7, 7, 0, 0, 6149, 6150, 7, 10, 0, 0, 6150, 6151, 7, 4, 0, 0, 6151, 6152, 7, 18, 0, 0, 6152, 252, 1, 0, 0, 0, 6153, 6154, 7, 1, 0, 0, 6154, 6155, 7, 10, 0, 0, 6155, 6156, 7, 7, 0, 0, 6156, 6157, 7, 0, 0, 0, 6157, 6158, 7, 3, 0, 0, 6158, 6159, 7, 18, 0, 0, 6159, 6160, 5, 95, 0, 0, 6160, 6161, 7, 9, 0, 0, 6161, 6162, 7, 2, 0, 0, 6162, 6163, 7, 12, 0, 0, 6163, 6164, 7, 1, 0, 0, 6164, 6165, 7, 11, 0, 0, 6165, 6166, 7, 6, 0, 0, 6166, 6167, 5, 95, 0, 0, 6167, 6168, 7, 7, 0, 0, 6168, 6169, 7, 0, 0, 0, 6169, 6170, 7, 7, 0, 0, 6170, 254, 1, 0, 0, 0, 6171, 6172, 7, 1, 0, 0, 6172, 6173, 7, 10, 0, 0, 6173, 6174, 7, 7, 0, 0, 6174, 6175, 7, 0, 0, 0, 6175, 6176, 7, 3, 0, 0, 6176, 6177, 7, 18, 0, 0, 6177, 6178, 5, 95, 0, 0, 6178, 6179, 7, 16, 0, 0, 6179, 6180, 7, 11, 0, 0, 6180, 6181, 7, 2, 0, 0, 6181, 6182, 7, 0, 0, 0, 6182, 6183, 7, 4, 0, 0, 6183, 256, 1, 0, 0, 0, 6184, 6185, 7, 1, 0, 0, 6185, 6186, 7, 10, 0, 0, 6186, 6187, 7, 7, 0, 0, 6187, 6188, 7, 0, 0, 0, 6188, 6189, 7, 3, 0, 0, 6189, 6190, 7, 18, 0, 0, 6190, 6191, 5, 95, 0, 0, 6191, 6192, 7, 16, 0, 0, 6192, 6193, 7, 11, 0, 0, 6193, 6194, 7, 2, 0, 0, 6194, 6195, 7, 0, 0, 0, 6195, 6196, 7, 4, 0, 0, 6196, 6197, 5, 95, 0, 0, 6197, 6198, 7, 10, 0, 0, 6198, 6199, 7, 7, 0, 0, 6199, 6200, 7, 16, 0, 0, 6200, 6201, 7, 10, 0, 0, 6201, 6202, 7, 7, 0, 0, 6202, 6203, 7, 10, 0, 0, 6203, 6204, 7, 4, 0, 0, 6204, 6205, 7, 18, 0, 0, 6205, 258, 1, 0, 0, 0, 6206, 6207, 7, 1, 0, 0, 6207, 6208, 7, 10, 0, 0, 6208, 6209, 7, 7, 0, 0, 6209, 6210, 7, 0, 0, 0, 6210, 6211, 7, 3, 0, 0, 6211, 6212, 7, 18, 0, 0, 6212, 6213, 5, 95, 0, 0, 6213, 6214, 7, 16, 0, 0, 6214, 6215, 7, 11, 0, 0, 6215, 6216, 7, 2, 0, 0, 6216, 6217, 7, 0, 0, 0, 6217, 6218, 7, 4, 0, 0, 6218, 6219, 5, 95, 0, 0, 6219, 6220, 7, 7, 0, 0, 6220, 6221, 7, 0, 0, 0, 6221, 6222, 7, 7, 0, 0, 6222, 260, 1, 0, 0, 0, 6223, 6224, 7, 1, 0, 0, 6224, 6225, 7, 10, 0, 0, 6225, 6226, 7, 7, 0, 0, 6226, 6227, 7, 0, 0, 0, 6227, 6228, 7, 3, 0, 0, 6228, 6229, 7, 18, 0, 0, 6229, 6230, 5, 95, 0, 0, 6230, 6231, 7, 10, 0, 0, 6231, 6232, 7, 7, 0, 0, 6232, 6233, 7, 4, 0, 0, 6233, 6234, 7, 6, 0, 0, 6234, 6235, 7, 17, 0, 0, 6235, 6236, 7, 6, 0, 0, 6236, 6237, 7, 3, 0, 0, 6237, 262, 1, 0, 0, 0, 6238, 6239, 7, 1, 0, 0, 6239, 6240, 7, 10, 0, 0, 6240, 6241, 7, 7, 0, 0, 6241, 6242, 7, 9, 0, 0, 6242, 6243, 5, 95, 0, 0, 6243, 6244, 7, 0, 0, 0, 6244, 6245, 7, 22, 0, 0, 6245, 6246, 7, 0, 0, 0, 6246, 6247, 7, 3, 0, 0, 6247, 6248, 7, 6, 0, 0, 6248, 264, 1, 0, 0, 0, 6249, 6250, 7, 1, 0, 0, 6250, 6251, 7, 10, 0, 0, 6251, 6252, 7, 7, 0, 0, 6252, 6253, 7, 9, 0, 0, 6253, 6254, 7, 10, 0, 0, 6254, 6255, 7, 7, 0, 0, 6255, 6256, 7, 17, 0, 0, 6256, 266, 1, 0, 0, 0, 6257, 6258, 7, 1, 0, 0, 6258, 6259, 7, 10, 0, 0, 6259, 6260, 7, 7, 0, 0, 6260, 6261, 5, 95, 0, 0, 6261, 6262, 7, 4, 0, 0, 6262, 6263, 7, 2, 0, 0, 6263, 6264, 5, 95, 0, 0, 6264, 6265, 7, 7, 0, 0, 6265, 6266, 7, 12, 0, 0, 6266, 6267, 7, 14, 0, 0, 6267, 268, 1, 0, 0, 0, 6268, 6269, 7, 1, 0, 0, 6269, 6270, 7, 10, 0, 0, 6270, 6271, 7, 4, 0, 0, 6271, 6272, 7, 0, 0, 0, 6272, 6273, 7, 7, 0, 0, 6273, 6274, 7, 9, 0, 0, 6274, 270, 1, 0, 0, 0, 6275, 6276, 7, 1, 0, 0, 6276, 6277, 7, 10, 0, 0, 6277, 6278, 7, 4, 0, 0, 6278, 6279, 7, 14, 0, 0, 6279, 6280, 7, 0, 0, 0, 6280, 6281, 7, 15, 0, 0, 6281, 6282, 5, 95, 0, 0, 6282, 6283, 7, 0, 0, 0, 6283, 6284, 7, 7, 0, 0, 6284, 6285, 7, 9, 0, 0, 6285, 272, 1, 0, 0, 0, 6286, 6287, 7, 1, 0, 0, 6287, 6288, 7, 10, 0, 0, 6288, 6289, 7, 4, 0, 0, 6289, 6290, 7, 14, 0, 0, 6290, 6291, 7, 0, 0, 0, 6291, 6292, 7, 15, 0, 0, 6292, 274, 1, 0, 0, 0, 6293, 6294, 7, 1, 0, 0, 6294, 6295, 7, 10, 0, 0, 6295, 6296, 7, 4, 0, 0, 6296, 6297, 7, 14, 0, 0, 6297, 6298, 7, 0, 0, 0, 6298, 6299, 7, 15, 0, 0, 6299, 6300, 7, 5, 0, 0, 6300, 276, 1, 0, 0, 0, 6301, 6302, 7, 1, 0, 0, 6302, 6303, 7, 10, 0, 0, 6303, 6304, 7, 4, 0, 0, 6304, 6305, 7, 14, 0, 0, 6305, 6306, 7, 0, 0, 0, 6306, 6307, 7, 15, 0, 0, 6307, 6308, 5, 95, 0, 0, 6308, 6309, 7, 4, 0, 0, 6309, 6310, 7, 3, 0, 0, 6310, 6311, 7, 6, 0, 0, 6311, 6312, 7, 6, 0, 0, 6312, 278, 1, 0, 0, 0, 6313, 6314, 7, 1, 0, 0, 6314, 6315, 7, 10, 0, 0, 6315, 6316, 7, 4, 0, 0, 6316, 6317, 7, 5, 0, 0, 6317, 280, 1, 0, 0, 0, 6318, 6319, 7, 1, 0, 0, 6319, 6320, 7, 11, 0, 0, 6320, 6321, 7, 0, 0, 0, 6321, 6322, 7, 7, 0, 0, 6322, 6323, 7, 21, 0, 0, 6323, 6324, 7, 5, 0, 0, 6324, 282, 1, 0, 0, 0, 6325, 6326, 7, 1, 0, 0, 6326, 6327, 7, 11, 0, 0, 6327, 6328, 7, 2, 0, 0, 6328, 6329, 7, 1, 0, 0, 6329, 284, 1, 0, 0, 0, 6330, 6331, 7, 1, 0, 0, 6331, 6332, 7, 11, 0, 0, 6332, 6333, 7, 2, 0, 0, 6333, 6334, 7, 8, 0, 0, 6334, 6335, 7, 21, 0, 0, 6335, 286, 1, 0, 0, 0, 6336, 6337, 7, 1, 0, 0, 6337, 6338, 7, 11, 0, 0, 6338, 6339, 7, 2, 0, 0, 6339, 6340, 7, 8, 0, 0, 6340, 6341, 7, 21, 0, 0, 6341, 6342, 5, 95, 0, 0, 6342, 6343, 7, 3, 0, 0, 6343, 6344, 7, 0, 0, 0, 6344, 6345, 7, 7, 0, 0, 6345, 6346, 7, 17, 0, 0, 6346, 6347, 7, 6, 0, 0, 6347, 288, 1, 0, 0, 0, 6348, 6349, 7, 1, 0, 0, 6349, 6350, 7, 11, 0, 0, 6350, 6351, 7, 2, 0, 0, 6351, 6352, 7, 8, 0, 0, 6352, 6353, 7, 21, 0, 0, 6353, 6354, 7, 5, 0, 0, 6354, 290, 1, 0, 0, 0, 6355, 6356, 7, 1, 0, 0, 6356, 6357, 7, 11, 0, 0, 6357, 6358, 7, 2, 0, 0, 6358, 6359, 7, 8, 0, 0, 6359, 6360, 7, 21, 0, 0, 6360, 6361, 7, 5, 0, 0, 6361, 6362, 7, 10, 0, 0, 6362, 6363, 7, 23, 0, 0, 6363, 6364, 7, 6, 0, 0, 6364, 292, 1, 0, 0, 0, 6365, 6366, 7, 1, 0, 0, 6366, 6367, 7, 2, 0, 0, 6367, 6368, 7, 9, 0, 0, 6368, 6369, 7, 18, 0, 0, 6369, 294, 1, 0, 0, 0, 6370, 6371, 7, 1, 0, 0, 6371, 6372, 7, 2, 0, 0, 6372, 6373, 7, 2, 0, 0, 6373, 6374, 7, 11, 0, 0, 6374, 6375, 7, 6, 0, 0, 6375, 6376, 7, 0, 0, 0, 6376, 6377, 7, 7, 0, 0, 6377, 296, 1, 0, 0, 0, 6378, 6379, 7, 1, 0, 0, 6379, 6380, 7, 2, 0, 0, 6380, 6381, 7, 4, 0, 0, 6381, 6382, 7, 19, 0, 0, 6382, 298, 1, 0, 0, 0, 6383, 6384, 7, 1, 0, 0, 6384, 6385, 7, 2, 0, 0, 6385, 6386, 7, 12, 0, 0, 6386, 6387, 7, 7, 0, 0, 6387, 6388, 7, 9, 0, 0, 6388, 300, 1, 0, 0, 0, 6389, 6390, 7, 1, 0, 0, 6390, 6391, 7, 3, 0, 0, 6391, 6392, 7, 0, 0, 0, 6392, 6393, 7, 7, 0, 0, 6393, 6394, 7, 8, 0, 0, 6394, 6395, 7, 19, 0, 0, 6395, 302, 1, 0, 0, 0, 6396, 6397, 7, 1, 0, 0, 6397, 6398, 7, 3, 0, 0, 6398, 6399, 7, 6, 0, 0, 6399, 6400, 7, 0, 0, 0, 6400, 6401, 7, 9, 0, 0, 6401, 6402, 7, 4, 0, 0, 6402, 6403, 7, 19, 0, 0, 6403, 304, 1, 0, 0, 0, 6404, 6405, 7, 1, 0, 0, 6405, 6406, 7, 3, 0, 0, 6406, 6407, 7, 2, 0, 0, 6407, 6408, 7, 0, 0, 0, 6408, 6409, 7, 9, 0, 0, 6409, 6410, 7, 8, 0, 0, 6410, 6411, 7, 0, 0, 0, 6411, 6412, 7, 5, 0, 0, 6412, 6413, 7, 4, 0, 0, 6413, 306, 1, 0, 0, 0, 6414, 6415, 7, 1, 0, 0, 6415, 6416, 7, 5, 0, 0, 6416, 6417, 7, 2, 0, 0, 6417, 6418, 7, 7, 0, 0, 6418, 308, 1, 0, 0, 0, 6419, 6420, 7, 1, 0, 0, 6420, 6421, 7, 12, 0, 0, 6421, 6422, 7, 16, 0, 0, 6422, 6423, 7, 16, 0, 0, 6423, 6424, 7, 6, 0, 0, 6424, 6425, 7, 3, 0, 0, 6425, 310, 1, 0, 0, 0, 6426, 6427, 7, 1, 0, 0, 6427, 6428, 7, 12, 0, 0, 6428, 6429, 7, 16, 0, 0, 6429, 6430, 7, 16, 0, 0, 6430, 6431, 7, 6, 0, 0, 6431, 6432, 7, 3, 0, 0, 6432, 6433, 5, 95, 0, 0, 6433, 6434, 7, 8, 0, 0, 6434, 6435, 7, 0, 0, 0, 6435, 6436, 7, 8, 0, 0, 6436, 6437, 7, 19, 0, 0, 6437, 6438, 7, 6, 0, 0, 6438, 312, 1, 0, 0, 0, 6439, 6440, 7, 1, 0, 0, 6440, 6441, 7, 12, 0, 0, 6441, 6442, 7, 16, 0, 0, 6442, 6443, 7, 16, 0, 0, 6443, 6444, 7, 6, 0, 0, 6444, 6445, 7, 3, 0, 0, 6445, 6446, 5, 95, 0, 0, 6446, 6447, 7, 15, 0, 0, 6447, 6448, 7, 2, 0, 0, 6448, 6449, 7, 2, 0, 0, 6449, 6450, 7, 11, 0, 0, 6450, 314, 1, 0, 0, 0, 6451, 6452, 7, 1, 0, 0, 6452, 6453, 7, 12, 0, 0, 6453, 6454, 7, 10, 0, 0, 6454, 6455, 7, 11, 0, 0, 6455, 6456, 7, 9, 0, 0, 6456, 316, 1, 0, 0, 0, 6457, 6458, 7, 1, 0, 0, 6458, 6459, 7, 12, 0, 0, 6459, 6460, 7, 11, 0, 0, 6460, 6461, 7, 21, 0, 0, 6461, 318, 1, 0, 0, 0, 6462, 6463, 7, 1, 0, 0, 6463, 6464, 7, 18, 0, 0, 6464, 320, 1, 0, 0, 0, 6465, 6466, 7, 1, 0, 0, 6466, 6467, 7, 18, 0, 0, 6467, 6468, 7, 15, 0, 0, 6468, 6469, 7, 0, 0, 0, 6469, 6470, 7, 5, 0, 0, 6470, 6471, 7, 5, 0, 0, 6471, 6472, 5, 95, 0, 0, 6472, 6473, 7, 3, 0, 0, 6473, 6474, 7, 6, 0, 0, 6474, 6475, 7, 8, 0, 0, 6475, 6476, 7, 12, 0, 0, 6476, 6477, 7, 3, 0, 0, 6477, 6478, 7, 5, 0, 0, 6478, 6479, 7, 10, 0, 0, 6479, 6480, 7, 13, 0, 0, 6480, 6481, 7, 6, 0, 0, 6481, 6482, 5, 95, 0, 0, 6482, 6483, 7, 8, 0, 0, 6483, 6484, 7, 19, 0, 0, 6484, 6485, 7, 6, 0, 0, 6485, 6486, 7, 8, 0, 0, 6486, 6487, 7, 21, 0, 0, 6487, 322, 1, 0, 0, 0, 6488, 6489, 7, 1, 0, 0, 6489, 6490, 7, 18, 0, 0, 6490, 6491, 7, 15, 0, 0, 6491, 6492, 7, 0, 0, 0, 6492, 6493, 7, 5, 0, 0, 6493, 6494, 7, 5, 0, 0, 6494, 6495, 5, 95, 0, 0, 6495, 6496, 7, 12, 0, 0, 6496, 6497, 7, 20, 0, 0, 6497, 6498, 7, 13, 0, 0, 6498, 6499, 7, 8, 0, 0, 6499, 324, 1, 0, 0, 0, 6500, 6501, 7, 1, 0, 0, 6501, 6502, 7, 18, 0, 0, 6502, 6503, 7, 4, 0, 0, 6503, 6504, 7, 6, 0, 0, 6504, 326, 1, 0, 0, 0, 6505, 6506, 7, 1, 0, 0, 6506, 6507, 7, 18, 0, 0, 6507, 6508, 7, 4, 0, 0, 6508, 6509, 7, 6, 0, 0, 6509, 6510, 7, 5, 0, 0, 6510, 328, 1, 0, 0, 0, 6511, 6512, 7, 1, 0, 0, 6512, 6513, 7, 18, 0, 0, 6513, 6514, 7, 4, 0, 0, 6514, 6515, 7, 6, 0, 0, 6515, 6516, 7, 2, 0, 0, 6516, 6517, 7, 3, 0, 0, 6517, 6518, 7, 9, 0, 0, 6518, 6519, 7, 6, 0, 0, 6519, 6520, 7, 3, 0, 0, 6520, 6521, 7, 14, 0, 0, 6521, 6522, 7, 0, 0, 0, 6522, 6523, 7, 3, 0, 0, 6523, 6524, 7, 21, 0, 0, 6524, 330, 1, 0, 0, 0, 6525, 6526, 7, 8, 0, 0, 6526, 6527, 7, 0, 0, 0, 6527, 6528, 7, 8, 0, 0, 6528, 6529, 7, 19, 0, 0, 6529, 6530, 7, 6, 0, 0, 6530, 332, 1, 0, 0, 0, 6531, 6532, 7, 8, 0, 0, 6532, 6533, 7, 0, 0, 0, 6533, 6534, 7, 8, 0, 0, 6534, 6535, 7, 19, 0, 0, 6535, 6536, 7, 6, 0, 0, 6536, 6537, 5, 95, 0, 0, 6537, 6538, 7, 8, 0, 0, 6538, 6539, 7, 1, 0, 0, 6539, 334, 1, 0, 0, 0, 6540, 6541, 7, 8, 0, 0, 6541, 6542, 7, 0, 0, 0, 6542, 6543, 7, 8, 0, 0, 6543, 6544, 7, 19, 0, 0, 6544, 6545, 7, 6, 0, 0, 6545, 6546, 5, 95, 0, 0, 6546, 6547, 7, 10, 0, 0, 6547, 6548, 7, 7, 0, 0, 6548, 6549, 7, 5, 0, 0, 6549, 6550, 7, 4, 0, 0, 6550, 6551, 7, 0, 0, 0, 6551, 6552, 7, 7, 0, 0, 6552, 6553, 7, 8, 0, 0, 6553, 6554, 7, 6, 0, 0, 6554, 6555, 7, 5, 0, 0, 6555, 336, 1, 0, 0, 0, 6556, 6557, 7, 8, 0, 0, 6557, 6558, 7, 0, 0, 0, 6558, 6559, 7, 8, 0, 0, 6559, 6560, 7, 19, 0, 0, 6560, 6561, 7, 6, 0, 0, 6561, 6562, 5, 95, 0, 0, 6562, 6563, 7, 4, 0, 0, 6563, 6564, 7, 6, 0, 0, 6564, 6565, 7, 14, 0, 0, 6565, 6566, 7, 15, 0, 0, 6566, 6567, 5, 95, 0, 0, 6567, 6568, 7, 4, 0, 0, 6568, 6569, 7, 0, 0, 0, 6569, 6570, 7, 1, 0, 0, 6570, 6571, 7, 11, 0, 0, 6571, 6572, 7, 6, 0, 0, 6572, 338, 1, 0, 0, 0, 6573, 6574, 7, 8, 0, 0, 6574, 6575, 7, 0, 0, 0, 6575, 6576, 7, 8, 0, 0, 6576, 6577, 7, 19, 0, 0, 6577, 6578, 7, 10, 0, 0, 6578, 6579, 7, 7, 0, 0, 6579, 6580, 7, 17, 0, 0, 6580, 340, 1, 0, 0, 0, 6581, 6582, 7, 8, 0, 0, 6582, 6583, 7, 0, 0, 0, 6583, 6584, 7, 11, 0, 0, 6584, 6585, 7, 8, 0, 0, 6585, 6586, 7, 12, 0, 0, 6586, 6587, 7, 11, 0, 0, 6587, 6588, 7, 0, 0, 0, 6588, 6589, 7, 4, 0, 0, 6589, 6590, 7, 6, 0, 0, 6590, 6591, 7, 9, 0, 0, 6591, 342, 1, 0, 0, 0, 6592, 6593, 7, 8, 0, 0, 6593, 6594, 7, 0, 0, 0, 6594, 6595, 7, 11, 0, 0, 6595, 6596, 7, 11, 0, 0, 6596, 6597, 7, 1, 0, 0, 6597, 6598, 7, 0, 0, 0, 6598, 6599, 7, 8, 0, 0, 6599, 6600, 7, 21, 0, 0, 6600, 344, 1, 0, 0, 0, 6601, 6602, 7, 8, 0, 0, 6602, 6603, 7, 0, 0, 0, 6603, 6604, 7, 11, 0, 0, 6604, 6605, 7, 11, 0, 0, 6605, 346, 1, 0, 0, 0, 6606, 6607, 7, 8, 0, 0, 6607, 6608, 7, 0, 0, 0, 6608, 6609, 7, 7, 0, 0, 6609, 6610, 7, 8, 0, 0, 6610, 6611, 7, 6, 0, 0, 6611, 6612, 7, 11, 0, 0, 6612, 348, 1, 0, 0, 0, 6613, 6614, 7, 8, 0, 0, 6614, 6615, 7, 0, 0, 0, 6615, 6616, 7, 7, 0, 0, 6616, 6617, 7, 2, 0, 0, 6617, 6618, 7, 7, 0, 0, 6618, 6619, 7, 10, 0, 0, 6619, 6620, 7, 8, 0, 0, 6620, 6621, 7, 0, 0, 0, 6621, 6622, 7, 11, 0, 0, 6622, 350, 1, 0, 0, 0, 6623, 6624, 7, 8, 0, 0, 6624, 6625, 7, 0, 0, 0, 6625, 6626, 7, 15, 0, 0, 6626, 6627, 7, 0, 0, 0, 6627, 6628, 7, 8, 0, 0, 6628, 6629, 7, 10, 0, 0, 6629, 6630, 7, 4, 0, 0, 6630, 6631, 7, 18, 0, 0, 6631, 352, 1, 0, 0, 0, 6632, 6633, 7, 8, 0, 0, 6633, 6634, 7, 0, 0, 0, 6634, 6635, 7, 15, 0, 0, 6635, 6636, 7, 4, 0, 0, 6636, 6637, 7, 10, 0, 0, 6637, 6638, 7, 2, 0, 0, 6638, 6639, 7, 7, 0, 0, 6639, 354, 1, 0, 0, 0, 6640, 6641, 7, 8, 0, 0, 6641, 6642, 7, 0, 0, 0, 6642, 6643, 7, 3, 0, 0, 6643, 6644, 7, 9, 0, 0, 6644, 6645, 7, 10, 0, 0, 6645, 6646, 7, 7, 0, 0, 6646, 6647, 7, 0, 0, 0, 6647, 6648, 7, 11, 0, 0, 6648, 6649, 7, 10, 0, 0, 6649, 6650, 7, 4, 0, 0, 6650, 6651, 7, 18, 0, 0, 6651, 356, 1, 0, 0, 0, 6652, 6653, 7, 8, 0, 0, 6653, 6654, 7, 0, 0, 0, 6654, 6655, 7, 5, 0, 0, 6655, 6656, 7, 8, 0, 0, 6656, 6657, 7, 0, 0, 0, 6657, 6658, 7, 9, 0, 0, 6658, 6659, 7, 6, 0, 0, 6659, 358, 1, 0, 0, 0, 6660, 6661, 7, 8, 0, 0, 6661, 6662, 7, 0, 0, 0, 6662, 6663, 7, 5, 0, 0, 6663, 6664, 7, 6, 0, 0, 6664, 360, 1, 0, 0, 0, 6665, 6666, 7, 8, 0, 0, 6666, 6667, 7, 0, 0, 0, 6667, 6668, 7, 5, 0, 0, 6668, 6669, 7, 4, 0, 0, 6669, 362, 1, 0, 0, 0, 6670, 6671, 7, 8, 0, 0, 6671, 6672, 7, 0, 0, 0, 6672, 6673, 7, 5, 0, 0, 6673, 6674, 7, 6, 0, 0, 6674, 6675, 5, 45, 0, 0, 6675, 6676, 7, 5, 0, 0, 6676, 6677, 7, 6, 0, 0, 6677, 6678, 7, 7, 0, 0, 6678, 6679, 7, 5, 0, 0, 6679, 6680, 7, 10, 0, 0, 6680, 6681, 7, 4, 0, 0, 6681, 6682, 7, 10, 0, 0, 6682, 6683, 7, 13, 0, 0, 6683, 6684, 7, 6, 0, 0, 6684, 364, 1, 0, 0, 0, 6685, 6686, 7, 8, 0, 0, 6686, 6687, 7, 0, 0, 0, 6687, 6688, 7, 4, 0, 0, 6688, 6689, 7, 6, 0, 0, 6689, 6690, 7, 17, 0, 0, 6690, 6691, 7, 2, 0, 0, 6691, 6692, 7, 3, 0, 0, 6692, 6693, 7, 18, 0, 0, 6693, 366, 1, 0, 0, 0, 6694, 6695, 7, 8, 0, 0, 6695, 6696, 7, 9, 0, 0, 6696, 6697, 7, 1, 0, 0, 6697, 6698, 5, 36, 0, 0, 6698, 6699, 7, 9, 0, 0, 6699, 6700, 7, 6, 0, 0, 6700, 6701, 7, 16, 0, 0, 6701, 6702, 7, 0, 0, 0, 6702, 6703, 7, 12, 0, 0, 6703, 6704, 7, 11, 0, 0, 6704, 6705, 7, 4, 0, 0, 6705, 368, 1, 0, 0, 0, 6706, 6707, 7, 8, 0, 0, 6707, 6708, 7, 6, 0, 0, 6708, 6709, 7, 10, 0, 0, 6709, 6710, 7, 11, 0, 0, 6710, 370, 1, 0, 0, 0, 6711, 6712, 7, 8, 0, 0, 6712, 6713, 7, 6, 0, 0, 6713, 6714, 7, 11, 0, 0, 6714, 6715, 7, 11, 0, 0, 6715, 6716, 5, 95, 0, 0, 6716, 6717, 7, 16, 0, 0, 6717, 6718, 7, 11, 0, 0, 6718, 6719, 7, 0, 0, 0, 6719, 6720, 7, 5, 0, 0, 6720, 6721, 7, 19, 0, 0, 6721, 6722, 5, 95, 0, 0, 6722, 6723, 7, 8, 0, 0, 6723, 6724, 7, 0, 0, 0, 6724, 6725, 7, 8, 0, 0, 6725, 6726, 7, 19, 0, 0, 6726, 6727, 7, 6, 0, 0, 6727, 372, 1, 0, 0, 0, 6728, 6729, 7, 8, 0, 0, 6729, 6730, 7, 6, 0, 0, 6730, 6731, 7, 3, 0, 0, 6731, 6732, 7, 4, 0, 0, 6732, 6733, 7, 10, 0, 0, 6733, 6734, 7, 16, 0, 0, 6734, 6735, 7, 10, 0, 0, 6735, 6736, 7, 8, 0, 0, 6736, 6737, 7, 0, 0, 0, 6737, 6738, 7, 4, 0, 0, 6738, 6739, 7, 6, 0, 0, 6739, 374, 1, 0, 0, 0, 6740, 6741, 7, 8, 0, 0, 6741, 6742, 7, 16, 0, 0, 6742, 6743, 7, 10, 0, 0, 6743, 6744, 7, 11, 0, 0, 6744, 6745, 7, 6, 0, 0, 6745, 376, 1, 0, 0, 0, 6746, 6747, 7, 8, 0, 0, 6747, 6748, 7, 19, 0, 0, 6748, 6749, 7, 0, 0, 0, 6749, 6750, 7, 10, 0, 0, 6750, 6751, 7, 7, 0, 0, 6751, 6752, 7, 6, 0, 0, 6752, 6753, 7, 9, 0, 0, 6753, 378, 1, 0, 0, 0, 6754, 6755, 7, 8, 0, 0, 6755, 6756, 7, 19, 0, 0, 6756, 6757, 7, 0, 0, 0, 6757, 6758, 7, 7, 0, 0, 6758, 6759, 7, 17, 0, 0, 6759, 6760, 7, 6, 0, 0, 6760, 380, 1, 0, 0, 0, 6761, 6762, 7, 8, 0, 0, 6762, 6763, 7, 19, 0, 0, 6763, 6764, 7, 0, 0, 0, 6764, 6765, 7, 7, 0, 0, 6765, 6766, 7, 17, 0, 0, 6766, 6767, 7, 6, 0, 0, 6767, 6768, 7, 4, 0, 0, 6768, 6769, 7, 3, 0, 0, 6769, 6770, 7, 0, 0, 0, 6770, 6771, 7, 8, 0, 0, 6771, 6772, 7, 21, 0, 0, 6772, 6773, 7, 10, 0, 0, 6773, 6774, 7, 7, 0, 0, 6774, 6775, 7, 17, 0, 0, 6775, 382, 1, 0, 0, 0, 6776, 6777, 7, 8, 0, 0, 6777, 6778, 7, 19, 0, 0, 6778, 6779, 7, 0, 0, 0, 6779, 6780, 7, 7, 0, 0, 6780, 6781, 7, 17, 0, 0, 6781, 6782, 7, 6, 0, 0, 6782, 6783, 5, 95, 0, 0, 6783, 6784, 7, 9, 0, 0, 6784, 6785, 7, 12, 0, 0, 6785, 6786, 7, 15, 0, 0, 6786, 6787, 7, 21, 0, 0, 6787, 6788, 7, 6, 0, 0, 6788, 6789, 7, 18, 0, 0, 6789, 6790, 5, 95, 0, 0, 6790, 6791, 7, 6, 0, 0, 6791, 6792, 7, 3, 0, 0, 6792, 6793, 7, 3, 0, 0, 6793, 6794, 7, 2, 0, 0, 6794, 6795, 7, 3, 0, 0, 6795, 6796, 5, 95, 0, 0, 6796, 6797, 7, 10, 0, 0, 6797, 6798, 7, 7, 0, 0, 6798, 6799, 7, 9, 0, 0, 6799, 6800, 7, 6, 0, 0, 6800, 6801, 7, 25, 0, 0, 6801, 384, 1, 0, 0, 0, 6802, 6803, 7, 8, 0, 0, 6803, 6804, 7, 19, 0, 0, 6804, 6805, 7, 0, 0, 0, 6805, 6806, 7, 3, 0, 0, 6806, 6807, 7, 0, 0, 0, 6807, 6808, 7, 8, 0, 0, 6808, 6809, 7, 4, 0, 0, 6809, 6810, 7, 6, 0, 0, 6810, 6811, 7, 3, 0, 0, 6811, 386, 1, 0, 0, 0, 6812, 6813, 7, 8, 0, 0, 6813, 6814, 7, 19, 0, 0, 6814, 6815, 7, 0, 0, 0, 6815, 6816, 7, 3, 0, 0, 6816, 6817, 7, 0, 0, 0, 6817, 6818, 7, 8, 0, 0, 6818, 6819, 7, 4, 0, 0, 6819, 6820, 7, 6, 0, 0, 6820, 6821, 7, 3, 0, 0, 6821, 6822, 7, 5, 0, 0, 6822, 388, 1, 0, 0, 0, 6823, 6824, 7, 8, 0, 0, 6824, 6825, 7, 19, 0, 0, 6825, 6826, 7, 0, 0, 0, 6826, 6827, 7, 3, 0, 0, 6827, 6828, 7, 0, 0, 0, 6828, 6829, 7, 8, 0, 0, 6829, 6830, 7, 4, 0, 0, 6830, 6831, 7, 6, 0, 0, 6831, 6832, 7, 3, 0, 0, 6832, 6833, 7, 5, 0, 0, 6833, 6834, 7, 6, 0, 0, 6834, 6835, 7, 4, 0, 0, 6835, 390, 1, 0, 0, 0, 6836, 6837, 7, 8, 0, 0, 6837, 6838, 7, 19, 0, 0, 6838, 6839, 7, 0, 0, 0, 6839, 6840, 7, 3, 0, 0, 6840, 392, 1, 0, 0, 0, 6841, 6842, 7, 8, 0, 0, 6842, 6843, 7, 19, 0, 0, 6843, 6844, 7, 0, 0, 0, 6844, 6845, 7, 3, 0, 0, 6845, 6846, 5, 95, 0, 0, 6846, 6847, 7, 8, 0, 0, 6847, 6848, 7, 5, 0, 0, 6848, 394, 1, 0, 0, 0, 6849, 6850, 7, 8, 0, 0, 6850, 6851, 7, 19, 0, 0, 6851, 6852, 7, 0, 0, 0, 6852, 6853, 7, 3, 0, 0, 6853, 6854, 7, 4, 0, 0, 6854, 6855, 7, 2, 0, 0, 6855, 6856, 7, 3, 0, 0, 6856, 6857, 7, 2, 0, 0, 6857, 6858, 7, 22, 0, 0, 6858, 6859, 7, 10, 0, 0, 6859, 6860, 7, 9, 0, 0, 6860, 396, 1, 0, 0, 0, 6861, 6862, 7, 8, 0, 0, 6862, 6863, 7, 19, 0, 0, 6863, 6864, 7, 6, 0, 0, 6864, 6865, 7, 8, 0, 0, 6865, 6866, 7, 21, 0, 0, 6866, 6867, 5, 95, 0, 0, 6867, 6868, 7, 0, 0, 0, 6868, 6869, 7, 8, 0, 0, 6869, 6870, 7, 11, 0, 0, 6870, 6871, 5, 95, 0, 0, 6871, 6872, 7, 3, 0, 0, 6872, 6873, 7, 6, 0, 0, 6873, 6874, 7, 22, 0, 0, 6874, 6875, 7, 3, 0, 0, 6875, 6876, 7, 10, 0, 0, 6876, 6877, 7, 4, 0, 0, 6877, 6878, 7, 6, 0, 0, 6878, 398, 1, 0, 0, 0, 6879, 6880, 7, 8, 0, 0, 6880, 6881, 7, 19, 0, 0, 6881, 6882, 7, 6, 0, 0, 6882, 6883, 7, 8, 0, 0, 6883, 6884, 7, 21, 0, 0, 6884, 400, 1, 0, 0, 0, 6885, 6886, 7, 8, 0, 0, 6886, 6887, 7, 19, 0, 0, 6887, 6888, 7, 6, 0, 0, 6888, 6889, 7, 8, 0, 0, 6889, 6890, 7, 21, 0, 0, 6890, 6891, 7, 15, 0, 0, 6891, 6892, 7, 2, 0, 0, 6892, 6893, 7, 10, 0, 0, 6893, 6894, 7, 7, 0, 0, 6894, 6895, 7, 4, 0, 0, 6895, 402, 1, 0, 0, 0, 6896, 6897, 7, 8, 0, 0, 6897, 6898, 7, 19, 0, 0, 6898, 6899, 7, 10, 0, 0, 6899, 6900, 7, 11, 0, 0, 6900, 6901, 7, 9, 0, 0, 6901, 404, 1, 0, 0, 0, 6902, 6903, 7, 8, 0, 0, 6903, 6904, 7, 19, 0, 0, 6904, 6905, 7, 2, 0, 0, 6905, 6906, 7, 2, 0, 0, 6906, 6907, 7, 5, 0, 0, 6907, 6908, 7, 6, 0, 0, 6908, 406, 1, 0, 0, 0, 6909, 6910, 7, 8, 0, 0, 6910, 6911, 7, 19, 0, 0, 6911, 6912, 7, 3, 0, 0, 6912, 408, 1, 0, 0, 0, 6913, 6914, 7, 8, 0, 0, 6914, 6915, 7, 19, 0, 0, 6915, 6916, 7, 12, 0, 0, 6916, 6917, 7, 7, 0, 0, 6917, 6918, 7, 21, 0, 0, 6918, 410, 1, 0, 0, 0, 6919, 6920, 7, 8, 0, 0, 6920, 6921, 7, 11, 0, 0, 6921, 6922, 7, 0, 0, 0, 6922, 6923, 7, 5, 0, 0, 6923, 6924, 7, 5, 0, 0, 6924, 412, 1, 0, 0, 0, 6925, 6926, 7, 8, 0, 0, 6926, 6927, 7, 11, 0, 0, 6927, 6928, 7, 0, 0, 0, 6928, 6929, 7, 5, 0, 0, 6929, 6930, 7, 5, 0, 0, 6930, 6931, 7, 10, 0, 0, 6931, 6932, 7, 16, 0, 0, 6932, 6933, 7, 10, 0, 0, 6933, 6934, 7, 8, 0, 0, 6934, 6935, 7, 0, 0, 0, 6935, 6936, 7, 4, 0, 0, 6936, 6937, 7, 10, 0, 0, 6937, 6938, 7, 2, 0, 0, 6938, 6939, 7, 7, 0, 0, 6939, 414, 1, 0, 0, 0, 6940, 6941, 7, 8, 0, 0, 6941, 6942, 7, 11, 0, 0, 6942, 6943, 7, 0, 0, 0, 6943, 6944, 7, 5, 0, 0, 6944, 6945, 7, 5, 0, 0, 6945, 6946, 7, 10, 0, 0, 6946, 6947, 7, 16, 0, 0, 6947, 6948, 7, 10, 0, 0, 6948, 6949, 7, 6, 0, 0, 6949, 6950, 7, 3, 0, 0, 6950, 416, 1, 0, 0, 0, 6951, 6952, 7, 8, 0, 0, 6952, 6953, 7, 11, 0, 0, 6953, 6954, 7, 0, 0, 0, 6954, 6955, 7, 12, 0, 0, 6955, 6956, 7, 5, 0, 0, 6956, 6957, 7, 6, 0, 0, 6957, 418, 1, 0, 0, 0, 6958, 6959, 7, 8, 0, 0, 6959, 6960, 7, 11, 0, 0, 6960, 6961, 7, 6, 0, 0, 6961, 6962, 7, 0, 0, 0, 6962, 6963, 7, 7, 0, 0, 6963, 420, 1, 0, 0, 0, 6964, 6965, 7, 8, 0, 0, 6965, 6966, 7, 11, 0, 0, 6966, 6967, 7, 6, 0, 0, 6967, 6968, 7, 0, 0, 0, 6968, 6969, 7, 7, 0, 0, 6969, 6970, 7, 12, 0, 0, 6970, 6971, 7, 15, 0, 0, 6971, 422, 1, 0, 0, 0, 6972, 6973, 7, 8, 0, 0, 6973, 6974, 7, 11, 0, 0, 6974, 6975, 7, 6, 0, 0, 6975, 6976, 7, 0, 0, 0, 6976, 6977, 7, 3, 0, 0, 6977, 424, 1, 0, 0, 0, 6978, 6979, 7, 8, 0, 0, 6979, 426, 1, 0, 0, 0, 6980, 6981, 7, 8, 0, 0, 6981, 6982, 7, 11, 0, 0, 6982, 6983, 7, 10, 0, 0, 6983, 6984, 7, 6, 0, 0, 6984, 6985, 7, 7, 0, 0, 6985, 6986, 7, 4, 0, 0, 6986, 428, 1, 0, 0, 0, 6987, 6988, 7, 8, 0, 0, 6988, 6989, 7, 11, 0, 0, 6989, 6990, 7, 2, 0, 0, 6990, 6991, 7, 1, 0, 0, 6991, 430, 1, 0, 0, 0, 6992, 6993, 7, 8, 0, 0, 6993, 6994, 7, 11, 0, 0, 6994, 6995, 7, 2, 0, 0, 6995, 6996, 7, 7, 0, 0, 6996, 6997, 7, 6, 0, 0, 6997, 432, 1, 0, 0, 0, 6998, 6999, 7, 8, 0, 0, 6999, 7000, 7, 11, 0, 0, 7000, 7001, 7, 2, 0, 0, 7001, 7002, 7, 5, 0, 0, 7002, 7003, 7, 6, 0, 0, 7003, 7004, 5, 95, 0, 0, 7004, 7005, 7, 8, 0, 0, 7005, 7006, 7, 0, 0, 0, 7006, 7007, 7, 8, 0, 0, 7007, 7008, 7, 19, 0, 0, 7008, 7009, 7, 6, 0, 0, 7009, 7010, 7, 9, 0, 0, 7010, 7011, 5, 95, 0, 0, 7011, 7012, 7, 2, 0, 0, 7012, 7013, 7, 15, 0, 0, 7013, 7014, 7, 6, 0, 0, 7014, 7015, 7, 7, 0, 0, 7015, 7016, 5, 95, 0, 0, 7016, 7017, 7, 8, 0, 0, 7017, 7018, 7, 12, 0, 0, 7018, 7019, 7, 3, 0, 0, 7019, 7020, 7, 5, 0, 0, 7020, 7021, 7, 2, 0, 0, 7021, 7022, 7, 3, 0, 0, 7022, 7023, 7, 5, 0, 0, 7023, 434, 1, 0, 0, 0, 7024, 7025, 7, 8, 0, 0, 7025, 7026, 7, 11, 0, 0, 7026, 7027, 7, 2, 0, 0, 7027, 7028, 7, 5, 0, 0, 7028, 7029, 7, 6, 0, 0, 7029, 436, 1, 0, 0, 0, 7030, 7031, 7, 8, 0, 0, 7031, 7032, 7, 11, 0, 0, 7032, 7033, 7, 12, 0, 0, 7033, 7034, 7, 5, 0, 0, 7034, 7035, 7, 4, 0, 0, 7035, 7036, 7, 6, 0, 0, 7036, 7037, 7, 3, 0, 0, 7037, 7038, 5, 95, 0, 0, 7038, 7039, 7, 1, 0, 0, 7039, 7040, 7, 18, 0, 0, 7040, 7041, 5, 95, 0, 0, 7041, 7042, 7, 3, 0, 0, 7042, 7043, 7, 2, 0, 0, 7043, 7044, 7, 22, 0, 0, 7044, 7045, 7, 10, 0, 0, 7045, 7046, 7, 9, 0, 0, 7046, 438, 1, 0, 0, 0, 7047, 7048, 7, 8, 0, 0, 7048, 7049, 7, 11, 0, 0, 7049, 7050, 7, 12, 0, 0, 7050, 7051, 7, 5, 0, 0, 7051, 7052, 7, 4, 0, 0, 7052, 7053, 7, 6, 0, 0, 7053, 7054, 7, 3, 0, 0, 7054, 440, 1, 0, 0, 0, 7055, 7056, 7, 8, 0, 0, 7056, 7057, 7, 11, 0, 0, 7057, 7058, 7, 12, 0, 0, 7058, 7059, 7, 5, 0, 0, 7059, 7060, 7, 4, 0, 0, 7060, 7061, 7, 6, 0, 0, 7061, 7062, 7, 3, 0, 0, 7062, 7063, 5, 95, 0, 0, 7063, 7064, 7, 9, 0, 0, 7064, 7065, 7, 6, 0, 0, 7065, 7066, 7, 4, 0, 0, 7066, 7067, 7, 0, 0, 0, 7067, 7068, 7, 10, 0, 0, 7068, 7069, 7, 11, 0, 0, 7069, 7070, 7, 5, 0, 0, 7070, 442, 1, 0, 0, 0, 7071, 7072, 7, 8, 0, 0, 7072, 7073, 7, 11, 0, 0, 7073, 7074, 7, 12, 0, 0, 7074, 7075, 7, 5, 0, 0, 7075, 7076, 7, 4, 0, 0, 7076, 7077, 7, 6, 0, 0, 7077, 7078, 7, 3, 0, 0, 7078, 7079, 5, 95, 0, 0, 7079, 7080, 7, 9, 0, 0, 7080, 7081, 7, 10, 0, 0, 7081, 7082, 7, 5, 0, 0, 7082, 7083, 7, 4, 0, 0, 7083, 7084, 7, 0, 0, 0, 7084, 7085, 7, 7, 0, 0, 7085, 7086, 7, 8, 0, 0, 7086, 7087, 7, 6, 0, 0, 7087, 444, 1, 0, 0, 0, 7088, 7089, 7, 8, 0, 0, 7089, 7090, 7, 11, 0, 0, 7090, 7091, 7, 12, 0, 0, 7091, 7092, 7, 5, 0, 0, 7092, 7093, 7, 4, 0, 0, 7093, 7094, 7, 6, 0, 0, 7094, 7095, 7, 3, 0, 0, 7095, 7096, 5, 95, 0, 0, 7096, 7097, 7, 10, 0, 0, 7097, 7098, 7, 9, 0, 0, 7098, 446, 1, 0, 0, 0, 7099, 7100, 7, 8, 0, 0, 7100, 7101, 7, 11, 0, 0, 7101, 7102, 7, 12, 0, 0, 7102, 7103, 7, 5, 0, 0, 7103, 7104, 7, 4, 0, 0, 7104, 7105, 7, 6, 0, 0, 7105, 7106, 7, 3, 0, 0, 7106, 7107, 7, 10, 0, 0, 7107, 7108, 7, 7, 0, 0, 7108, 7109, 7, 17, 0, 0, 7109, 448, 1, 0, 0, 0, 7110, 7111, 7, 8, 0, 0, 7111, 7112, 7, 11, 0, 0, 7112, 7113, 7, 12, 0, 0, 7113, 7114, 7, 5, 0, 0, 7114, 7115, 7, 4, 0, 0, 7115, 7116, 7, 6, 0, 0, 7116, 7117, 7, 3, 0, 0, 7117, 7118, 7, 10, 0, 0, 7118, 7119, 7, 7, 0, 0, 7119, 7120, 7, 17, 0, 0, 7120, 7121, 5, 95, 0, 0, 7121, 7122, 7, 16, 0, 0, 7122, 7123, 7, 0, 0, 0, 7123, 7124, 7, 8, 0, 0, 7124, 7125, 7, 4, 0, 0, 7125, 7126, 7, 2, 0, 0, 7126, 7127, 7, 3, 0, 0, 7127, 450, 1, 0, 0, 0, 7128, 7129, 7, 8, 0, 0, 7129, 7130, 7, 11, 0, 0, 7130, 7131, 7, 12, 0, 0, 7131, 7132, 7, 5, 0, 0, 7132, 7133, 7, 4, 0, 0, 7133, 7134, 7, 6, 0, 0, 7134, 7135, 7, 3, 0, 0, 7135, 7136, 5, 95, 0, 0, 7136, 7137, 7, 15, 0, 0, 7137, 7138, 7, 3, 0, 0, 7138, 7139, 7, 2, 0, 0, 7139, 7140, 7, 1, 0, 0, 7140, 7141, 7, 0, 0, 0, 7141, 7142, 7, 1, 0, 0, 7142, 7143, 7, 10, 0, 0, 7143, 7144, 7, 11, 0, 0, 7144, 7145, 7, 10, 0, 0, 7145, 7146, 7, 4, 0, 0, 7146, 7147, 7, 18, 0, 0, 7147, 452, 1, 0, 0, 0, 7148, 7149, 7, 8, 0, 0, 7149, 7150, 7, 11, 0, 0, 7150, 7151, 7, 12, 0, 0, 7151, 7152, 7, 5, 0, 0, 7152, 7153, 7, 4, 0, 0, 7153, 7154, 7, 6, 0, 0, 7154, 7155, 7, 3, 0, 0, 7155, 7156, 5, 95, 0, 0, 7156, 7157, 7, 5, 0, 0, 7157, 7158, 7, 6, 0, 0, 7158, 7159, 7, 4, 0, 0, 7159, 454, 1, 0, 0, 0, 7160, 7161, 7, 8, 0, 0, 7161, 7162, 7, 2, 0, 0, 7162, 7163, 7, 0, 0, 0, 7163, 7164, 7, 11, 0, 0, 7164, 7165, 7, 6, 0, 0, 7165, 7166, 7, 5, 0, 0, 7166, 7167, 7, 8, 0, 0, 7167, 7168, 7, 6, 0, 0, 7168, 456, 1, 0, 0, 0, 7169, 7170, 7, 8, 0, 0, 7170, 7171, 7, 2, 0, 0, 7171, 7172, 7, 0, 0, 0, 7172, 7173, 7, 11, 0, 0, 7173, 7174, 7, 6, 0, 0, 7174, 7175, 7, 5, 0, 0, 7175, 7176, 7, 8, 0, 0, 7176, 7177, 7, 6, 0, 0, 7177, 7178, 5, 95, 0, 0, 7178, 7179, 7, 5, 0, 0, 7179, 7180, 7, 24, 0, 0, 7180, 458, 1, 0, 0, 0, 7181, 7182, 7, 8, 0, 0, 7182, 7183, 7, 2, 0, 0, 7183, 7184, 7, 0, 0, 0, 7184, 7185, 7, 3, 0, 0, 7185, 7186, 7, 5, 0, 0, 7186, 7187, 7, 6, 0, 0, 7187, 460, 1, 0, 0, 0, 7188, 7189, 7, 8, 0, 0, 7189, 7190, 7, 2, 0, 0, 7190, 7191, 5, 95, 0, 0, 7191, 7192, 7, 0, 0, 0, 7192, 7193, 7, 12, 0, 0, 7193, 7194, 7, 4, 0, 0, 7194, 7195, 7, 19, 0, 0, 7195, 7196, 5, 95, 0, 0, 7196, 7197, 7, 10, 0, 0, 7197, 7198, 7, 7, 0, 0, 7198, 7199, 7, 9, 0, 0, 7199, 462, 1, 0, 0, 0, 7200, 7201, 7, 8, 0, 0, 7201, 7202, 7, 2, 0, 0, 7202, 7203, 7, 11, 0, 0, 7203, 7204, 7, 9, 0, 0, 7204, 464, 1, 0, 0, 0, 7205, 7206, 7, 8, 0, 0, 7206, 7207, 7, 2, 0, 0, 7207, 7208, 7, 11, 0, 0, 7208, 7209, 7, 11, 0, 0, 7209, 7210, 7, 6, 0, 0, 7210, 7211, 7, 8, 0, 0, 7211, 7212, 7, 4, 0, 0, 7212, 466, 1, 0, 0, 0, 7213, 7214, 7, 8, 0, 0, 7214, 7215, 7, 2, 0, 0, 7215, 7216, 7, 11, 0, 0, 7216, 7217, 7, 11, 0, 0, 7217, 7218, 7, 6, 0, 0, 7218, 7219, 7, 8, 0, 0, 7219, 7220, 7, 4, 0, 0, 7220, 7221, 7, 10, 0, 0, 7221, 7222, 7, 2, 0, 0, 7222, 7223, 7, 7, 0, 0, 7223, 468, 1, 0, 0, 0, 7224, 7225, 7, 8, 0, 0, 7225, 7226, 7, 2, 0, 0, 7226, 7227, 7, 11, 0, 0, 7227, 7228, 7, 12, 0, 0, 7228, 7229, 7, 14, 0, 0, 7229, 7230, 7, 7, 0, 0, 7230, 7231, 7, 0, 0, 0, 7231, 7232, 7, 3, 0, 0, 7232, 470, 1, 0, 0, 0, 7233, 7234, 7, 8, 0, 0, 7234, 7235, 7, 2, 0, 0, 7235, 7236, 7, 11, 0, 0, 7236, 7237, 7, 12, 0, 0, 7237, 7238, 7, 14, 0, 0, 7238, 7239, 7, 7, 0, 0, 7239, 7240, 5, 95, 0, 0, 7240, 7241, 7, 0, 0, 0, 7241, 7242, 7, 12, 0, 0, 7242, 7243, 7, 4, 0, 0, 7243, 7244, 7, 19, 0, 0, 7244, 7245, 5, 95, 0, 0, 7245, 7246, 7, 10, 0, 0, 7246, 7247, 7, 7, 0, 0, 7247, 7248, 7, 9, 0, 0, 7248, 7249, 7, 10, 0, 0, 7249, 7250, 7, 8, 0, 0, 7250, 7251, 7, 0, 0, 0, 7251, 7252, 7, 4, 0, 0, 7252, 7253, 7, 2, 0, 0, 7253, 7254, 7, 3, 0, 0, 7254, 472, 1, 0, 0, 0, 7255, 7256, 7, 8, 0, 0, 7256, 7257, 7, 2, 0, 0, 7257, 7258, 7, 11, 0, 0, 7258, 7259, 7, 12, 0, 0, 7259, 7260, 7, 14, 0, 0, 7260, 7261, 7, 7, 0, 0, 7261, 474, 1, 0, 0, 0, 7262, 7263, 7, 8, 0, 0, 7263, 7264, 7, 2, 0, 0, 7264, 7265, 7, 11, 0, 0, 7265, 7266, 7, 12, 0, 0, 7266, 7267, 7, 14, 0, 0, 7267, 7268, 7, 7, 0, 0, 7268, 7269, 7, 5, 0, 0, 7269, 476, 1, 0, 0, 0, 7270, 7271, 7, 8, 0, 0, 7271, 7272, 7, 2, 0, 0, 7272, 7273, 7, 11, 0, 0, 7273, 7274, 7, 12, 0, 0, 7274, 7275, 7, 14, 0, 0, 7275, 7276, 7, 7, 0, 0, 7276, 7277, 5, 95, 0, 0, 7277, 7278, 7, 5, 0, 0, 7278, 7279, 7, 4, 0, 0, 7279, 7280, 7, 0, 0, 0, 7280, 7281, 7, 4, 0, 0, 7281, 7282, 7, 5, 0, 0, 7282, 478, 1, 0, 0, 0, 7283, 7284, 7, 8, 0, 0, 7284, 7285, 7, 2, 0, 0, 7285, 7286, 7, 11, 0, 0, 7286, 7287, 7, 12, 0, 0, 7287, 7288, 7, 14, 0, 0, 7288, 7289, 7, 7, 0, 0, 7289, 7290, 5, 95, 0, 0, 7290, 7291, 7, 13, 0, 0, 7291, 7292, 7, 0, 0, 0, 7292, 7293, 7, 11, 0, 0, 7293, 7294, 7, 12, 0, 0, 7294, 7295, 7, 6, 0, 0, 7295, 480, 1, 0, 0, 0, 7296, 7297, 7, 8, 0, 0, 7297, 7298, 7, 2, 0, 0, 7298, 7299, 7, 14, 0, 0, 7299, 7300, 7, 14, 0, 0, 7300, 7301, 7, 6, 0, 0, 7301, 7302, 7, 7, 0, 0, 7302, 7303, 7, 4, 0, 0, 7303, 482, 1, 0, 0, 0, 7304, 7305, 7, 8, 0, 0, 7305, 7306, 7, 2, 0, 0, 7306, 7307, 7, 14, 0, 0, 7307, 7308, 7, 14, 0, 0, 7308, 7309, 7, 10, 0, 0, 7309, 7310, 7, 4, 0, 0, 7310, 484, 1, 0, 0, 0, 7311, 7312, 7, 8, 0, 0, 7312, 7313, 7, 2, 0, 0, 7313, 7314, 7, 14, 0, 0, 7314, 7315, 7, 14, 0, 0, 7315, 7316, 7, 10, 0, 0, 7316, 7317, 7, 4, 0, 0, 7317, 7318, 7, 4, 0, 0, 7318, 7319, 7, 6, 0, 0, 7319, 7320, 7, 9, 0, 0, 7320, 486, 1, 0, 0, 0, 7321, 7322, 7, 8, 0, 0, 7322, 7323, 7, 2, 0, 0, 7323, 7324, 7, 14, 0, 0, 7324, 7325, 7, 14, 0, 0, 7325, 7326, 7, 2, 0, 0, 7326, 7327, 7, 7, 0, 0, 7327, 488, 1, 0, 0, 0, 7328, 7329, 7, 8, 0, 0, 7329, 7330, 7, 2, 0, 0, 7330, 7331, 7, 14, 0, 0, 7331, 7332, 7, 14, 0, 0, 7332, 7333, 7, 2, 0, 0, 7333, 7334, 7, 7, 0, 0, 7334, 7335, 5, 95, 0, 0, 7335, 7336, 7, 9, 0, 0, 7336, 7337, 7, 0, 0, 0, 7337, 7338, 7, 4, 0, 0, 7338, 7339, 7, 0, 0, 0, 7339, 490, 1, 0, 0, 0, 7340, 7341, 7, 8, 0, 0, 7341, 7342, 7, 2, 0, 0, 7342, 7343, 7, 14, 0, 0, 7343, 7344, 7, 15, 0, 0, 7344, 7345, 7, 0, 0, 0, 7345, 7346, 7, 8, 0, 0, 7346, 7347, 7, 4, 0, 0, 7347, 492, 1, 0, 0, 0, 7348, 7349, 7, 8, 0, 0, 7349, 7350, 7, 2, 0, 0, 7350, 7351, 7, 14, 0, 0, 7351, 7352, 7, 15, 0, 0, 7352, 7353, 7, 0, 0, 0, 7353, 7354, 7, 4, 0, 0, 7354, 7355, 7, 10, 0, 0, 7355, 7356, 7, 1, 0, 0, 7356, 7357, 7, 11, 0, 0, 7357, 7358, 7, 6, 0, 0, 7358, 494, 1, 0, 0, 0, 7359, 7360, 7, 8, 0, 0, 7360, 7361, 7, 2, 0, 0, 7361, 7362, 7, 14, 0, 0, 7362, 7363, 7, 15, 0, 0, 7363, 7364, 7, 0, 0, 0, 7364, 7365, 7, 4, 0, 0, 7365, 7366, 7, 10, 0, 0, 7366, 7367, 7, 1, 0, 0, 7367, 7368, 7, 10, 0, 0, 7368, 7369, 7, 11, 0, 0, 7369, 7370, 7, 10, 0, 0, 7370, 7371, 7, 4, 0, 0, 7371, 7372, 7, 18, 0, 0, 7372, 496, 1, 0, 0, 0, 7373, 7374, 7, 8, 0, 0, 7374, 7375, 7, 2, 0, 0, 7375, 7376, 7, 14, 0, 0, 7376, 7377, 7, 15, 0, 0, 7377, 7378, 7, 10, 0, 0, 7378, 7379, 7, 11, 0, 0, 7379, 7380, 7, 6, 0, 0, 7380, 498, 1, 0, 0, 0, 7381, 7382, 7, 8, 0, 0, 7382, 7383, 7, 2, 0, 0, 7383, 7384, 7, 14, 0, 0, 7384, 7385, 7, 15, 0, 0, 7385, 7386, 7, 11, 0, 0, 7386, 7387, 7, 6, 0, 0, 7387, 7388, 7, 4, 0, 0, 7388, 7389, 7, 6, 0, 0, 7389, 500, 1, 0, 0, 0, 7390, 7391, 7, 8, 0, 0, 7391, 7392, 7, 2, 0, 0, 7392, 7393, 7, 14, 0, 0, 7393, 7394, 7, 15, 0, 0, 7394, 7395, 7, 11, 0, 0, 7395, 7396, 7, 10, 0, 0, 7396, 7397, 7, 0, 0, 0, 7397, 7398, 7, 7, 0, 0, 7398, 7399, 7, 8, 0, 0, 7399, 7400, 7, 6, 0, 0, 7400, 502, 1, 0, 0, 0, 7401, 7402, 7, 8, 0, 0, 7402, 7403, 7, 2, 0, 0, 7403, 7404, 7, 14, 0, 0, 7404, 7405, 7, 15, 0, 0, 7405, 7406, 7, 2, 0, 0, 7406, 7407, 7, 7, 0, 0, 7407, 7408, 7, 6, 0, 0, 7408, 7409, 7, 7, 0, 0, 7409, 7410, 7, 4, 0, 0, 7410, 504, 1, 0, 0, 0, 7411, 7412, 7, 8, 0, 0, 7412, 7413, 7, 2, 0, 0, 7413, 7414, 7, 14, 0, 0, 7414, 7415, 7, 15, 0, 0, 7415, 7416, 7, 2, 0, 0, 7416, 7417, 7, 7, 0, 0, 7417, 7418, 7, 6, 0, 0, 7418, 7419, 7, 7, 0, 0, 7419, 7420, 7, 4, 0, 0, 7420, 7421, 7, 5, 0, 0, 7421, 506, 1, 0, 0, 0, 7422, 7423, 7, 8, 0, 0, 7423, 7424, 7, 2, 0, 0, 7424, 7425, 7, 14, 0, 0, 7425, 7426, 7, 15, 0, 0, 7426, 7427, 7, 2, 0, 0, 7427, 7428, 7, 5, 0, 0, 7428, 7429, 7, 6, 0, 0, 7429, 508, 1, 0, 0, 0, 7430, 7431, 7, 8, 0, 0, 7431, 7432, 7, 2, 0, 0, 7432, 7433, 7, 14, 0, 0, 7433, 7434, 7, 15, 0, 0, 7434, 7435, 7, 2, 0, 0, 7435, 7436, 7, 5, 0, 0, 7436, 7437, 7, 10, 0, 0, 7437, 7438, 7, 4, 0, 0, 7438, 7439, 7, 6, 0, 0, 7439, 510, 1, 0, 0, 0, 7440, 7441, 7, 8, 0, 0, 7441, 7442, 7, 2, 0, 0, 7442, 7443, 7, 14, 0, 0, 7443, 7444, 7, 15, 0, 0, 7444, 7445, 7, 2, 0, 0, 7445, 7446, 7, 5, 0, 0, 7446, 7447, 7, 10, 0, 0, 7447, 7448, 7, 4, 0, 0, 7448, 7449, 7, 6, 0, 0, 7449, 7450, 5, 95, 0, 0, 7450, 7451, 7, 11, 0, 0, 7451, 7452, 7, 10, 0, 0, 7452, 7453, 7, 14, 0, 0, 7453, 7454, 7, 10, 0, 0, 7454, 7455, 7, 4, 0, 0, 7455, 512, 1, 0, 0, 0, 7456, 7457, 7, 8, 0, 0, 7457, 7458, 7, 2, 0, 0, 7458, 7459, 7, 14, 0, 0, 7459, 7460, 7, 15, 0, 0, 7460, 7461, 7, 2, 0, 0, 7461, 7462, 7, 12, 0, 0, 7462, 7463, 7, 7, 0, 0, 7463, 7464, 7, 9, 0, 0, 7464, 514, 1, 0, 0, 0, 7465, 7466, 7, 8, 0, 0, 7466, 7467, 7, 2, 0, 0, 7467, 7468, 7, 14, 0, 0, 7468, 7469, 7, 15, 0, 0, 7469, 7470, 7, 3, 0, 0, 7470, 7471, 7, 6, 0, 0, 7471, 7472, 7, 5, 0, 0, 7472, 7473, 7, 5, 0, 0, 7473, 516, 1, 0, 0, 0, 7474, 7475, 7, 8, 0, 0, 7475, 7476, 7, 2, 0, 0, 7476, 7477, 7, 14, 0, 0, 7477, 7478, 7, 15, 0, 0, 7478, 7479, 7, 3, 0, 0, 7479, 7480, 7, 6, 0, 0, 7480, 7481, 7, 5, 0, 0, 7481, 7482, 7, 5, 0, 0, 7482, 7483, 7, 10, 0, 0, 7483, 7484, 7, 2, 0, 0, 7484, 7485, 7, 7, 0, 0, 7485, 518, 1, 0, 0, 0, 7486, 7487, 7, 8, 0, 0, 7487, 7488, 7, 2, 0, 0, 7488, 7489, 7, 14, 0, 0, 7489, 7490, 7, 15, 0, 0, 7490, 7491, 7, 12, 0, 0, 7491, 7492, 7, 4, 0, 0, 7492, 7493, 7, 6, 0, 0, 7493, 520, 1, 0, 0, 0, 7494, 7495, 7, 8, 0, 0, 7495, 7496, 7, 2, 0, 0, 7496, 7497, 7, 7, 0, 0, 7497, 7498, 7, 8, 0, 0, 7498, 7499, 7, 0, 0, 0, 7499, 7500, 7, 4, 0, 0, 7500, 522, 1, 0, 0, 0, 7501, 7502, 7, 8, 0, 0, 7502, 7503, 7, 2, 0, 0, 7503, 7504, 7, 7, 0, 0, 7504, 7505, 5, 95, 0, 0, 7505, 7506, 7, 9, 0, 0, 7506, 7507, 7, 1, 0, 0, 7507, 7508, 7, 10, 0, 0, 7508, 7509, 7, 9, 0, 0, 7509, 7510, 5, 95, 0, 0, 7510, 7511, 7, 4, 0, 0, 7511, 7512, 7, 2, 0, 0, 7512, 7513, 5, 95, 0, 0, 7513, 7514, 7, 10, 0, 0, 7514, 7515, 7, 9, 0, 0, 7515, 524, 1, 0, 0, 0, 7516, 7517, 7, 8, 0, 0, 7517, 7518, 7, 2, 0, 0, 7518, 7519, 7, 7, 0, 0, 7519, 7520, 7, 9, 0, 0, 7520, 7521, 7, 10, 0, 0, 7521, 7522, 7, 4, 0, 0, 7522, 7523, 7, 10, 0, 0, 7523, 7524, 7, 2, 0, 0, 7524, 7525, 7, 7, 0, 0, 7525, 7526, 7, 0, 0, 0, 7526, 7527, 7, 11, 0, 0, 7527, 526, 1, 0, 0, 0, 7528, 7529, 7, 8, 0, 0, 7529, 7530, 7, 2, 0, 0, 7530, 7531, 7, 7, 0, 0, 7531, 7532, 7, 9, 0, 0, 7532, 7533, 7, 10, 0, 0, 7533, 7534, 7, 4, 0, 0, 7534, 7535, 7, 10, 0, 0, 7535, 7536, 7, 2, 0, 0, 7536, 7537, 7, 7, 0, 0, 7537, 528, 1, 0, 0, 0, 7538, 7539, 7, 8, 0, 0, 7539, 7540, 7, 2, 0, 0, 7540, 7541, 7, 7, 0, 0, 7541, 7542, 7, 16, 0, 0, 7542, 7543, 7, 10, 0, 0, 7543, 7544, 7, 3, 0, 0, 7544, 7545, 7, 14, 0, 0, 7545, 530, 1, 0, 0, 0, 7546, 7547, 7, 8, 0, 0, 7547, 7548, 7, 2, 0, 0, 7548, 7549, 7, 7, 0, 0, 7549, 7550, 7, 16, 0, 0, 7550, 7551, 7, 2, 0, 0, 7551, 7552, 7, 3, 0, 0, 7552, 7553, 7, 14, 0, 0, 7553, 7554, 7, 10, 0, 0, 7554, 7555, 7, 7, 0, 0, 7555, 7556, 7, 17, 0, 0, 7556, 532, 1, 0, 0, 0, 7557, 7558, 7, 8, 0, 0, 7558, 7559, 7, 2, 0, 0, 7559, 7560, 7, 7, 0, 0, 7560, 7561, 5, 95, 0, 0, 7561, 7562, 7, 17, 0, 0, 7562, 7563, 7, 12, 0, 0, 7563, 7564, 7, 10, 0, 0, 7564, 7565, 7, 9, 0, 0, 7565, 7566, 5, 95, 0, 0, 7566, 7567, 7, 4, 0, 0, 7567, 7568, 7, 2, 0, 0, 7568, 7569, 5, 95, 0, 0, 7569, 7570, 7, 10, 0, 0, 7570, 7571, 7, 9, 0, 0, 7571, 534, 1, 0, 0, 0, 7572, 7573, 7, 8, 0, 0, 7573, 7574, 7, 2, 0, 0, 7574, 7575, 7, 7, 0, 0, 7575, 7576, 5, 95, 0, 0, 7576, 7577, 7, 10, 0, 0, 7577, 7578, 7, 9, 0, 0, 7578, 536, 1, 0, 0, 0, 7579, 7580, 7, 8, 0, 0, 7580, 7581, 7, 2, 0, 0, 7581, 7582, 7, 7, 0, 0, 7582, 7583, 5, 95, 0, 0, 7583, 7584, 7, 7, 0, 0, 7584, 7585, 7, 0, 0, 0, 7585, 7586, 7, 14, 0, 0, 7586, 7587, 7, 6, 0, 0, 7587, 7588, 5, 95, 0, 0, 7588, 7589, 7, 4, 0, 0, 7589, 7590, 7, 2, 0, 0, 7590, 7591, 5, 95, 0, 0, 7591, 7592, 7, 10, 0, 0, 7592, 7593, 7, 9, 0, 0, 7593, 538, 1, 0, 0, 0, 7594, 7595, 7, 8, 0, 0, 7595, 7596, 7, 2, 0, 0, 7596, 7597, 7, 7, 0, 0, 7597, 7598, 7, 7, 0, 0, 7598, 7599, 7, 6, 0, 0, 7599, 7600, 7, 8, 0, 0, 7600, 7601, 7, 4, 0, 0, 7601, 7602, 5, 95, 0, 0, 7602, 7603, 7, 1, 0, 0, 7603, 7604, 7, 18, 0, 0, 7604, 7605, 5, 95, 0, 0, 7605, 7606, 7, 8, 0, 0, 7606, 7607, 7, 1, 0, 0, 7607, 7608, 5, 95, 0, 0, 7608, 7609, 7, 22, 0, 0, 7609, 7610, 7, 19, 0, 0, 7610, 7611, 7, 3, 0, 0, 7611, 7612, 5, 95, 0, 0, 7612, 7613, 7, 2, 0, 0, 7613, 7614, 7, 7, 0, 0, 7614, 7615, 7, 11, 0, 0, 7615, 7616, 7, 18, 0, 0, 7616, 540, 1, 0, 0, 0, 7617, 7618, 7, 8, 0, 0, 7618, 7619, 7, 2, 0, 0, 7619, 7620, 7, 7, 0, 0, 7620, 7621, 7, 7, 0, 0, 7621, 7622, 7, 6, 0, 0, 7622, 7623, 7, 8, 0, 0, 7623, 7624, 7, 4, 0, 0, 7624, 7625, 5, 95, 0, 0, 7625, 7626, 7, 1, 0, 0, 7626, 7627, 7, 18, 0, 0, 7627, 7628, 5, 95, 0, 0, 7628, 7629, 7, 8, 0, 0, 7629, 7630, 7, 2, 0, 0, 7630, 7631, 7, 14, 0, 0, 7631, 7632, 7, 1, 0, 0, 7632, 7633, 7, 10, 0, 0, 7633, 7634, 7, 7, 0, 0, 7634, 7635, 7, 6, 0, 0, 7635, 7636, 5, 95, 0, 0, 7636, 7637, 7, 5, 0, 0, 7637, 7638, 7, 22, 0, 0, 7638, 542, 1, 0, 0, 0, 7639, 7640, 7, 8, 0, 0, 7640, 7641, 7, 2, 0, 0, 7641, 7642, 7, 7, 0, 0, 7642, 7643, 7, 7, 0, 0, 7643, 7644, 7, 6, 0, 0, 7644, 7645, 7, 8, 0, 0, 7645, 7646, 7, 4, 0, 0, 7646, 7647, 5, 95, 0, 0, 7647, 7648, 7, 1, 0, 0, 7648, 7649, 7, 18, 0, 0, 7649, 7650, 5, 95, 0, 0, 7650, 7651, 7, 8, 0, 0, 7651, 7652, 7, 2, 0, 0, 7652, 7653, 7, 5, 0, 0, 7653, 7654, 7, 4, 0, 0, 7654, 7655, 5, 95, 0, 0, 7655, 7656, 7, 1, 0, 0, 7656, 7657, 7, 0, 0, 0, 7657, 7658, 7, 5, 0, 0, 7658, 7659, 7, 6, 0, 0, 7659, 7660, 7, 9, 0, 0, 7660, 544, 1, 0, 0, 0, 7661, 7662, 7, 8, 0, 0, 7662, 7663, 7, 2, 0, 0, 7663, 7664, 7, 7, 0, 0, 7664, 7665, 7, 7, 0, 0, 7665, 7666, 7, 6, 0, 0, 7666, 7667, 7, 8, 0, 0, 7667, 7668, 7, 4, 0, 0, 7668, 7669, 5, 95, 0, 0, 7669, 7670, 7, 1, 0, 0, 7670, 7671, 7, 18, 0, 0, 7671, 7672, 5, 95, 0, 0, 7672, 7673, 7, 6, 0, 0, 7673, 7674, 7, 11, 0, 0, 7674, 7675, 7, 10, 0, 0, 7675, 7676, 7, 14, 0, 0, 7676, 7677, 5, 95, 0, 0, 7677, 7678, 7, 9, 0, 0, 7678, 7679, 7, 12, 0, 0, 7679, 7680, 7, 15, 0, 0, 7680, 7681, 7, 5, 0, 0, 7681, 546, 1, 0, 0, 0, 7682, 7683, 7, 8, 0, 0, 7683, 7684, 7, 2, 0, 0, 7684, 7685, 7, 7, 0, 0, 7685, 7686, 7, 7, 0, 0, 7686, 7687, 7, 6, 0, 0, 7687, 7688, 7, 8, 0, 0, 7688, 7689, 7, 4, 0, 0, 7689, 7690, 5, 95, 0, 0, 7690, 7691, 7, 1, 0, 0, 7691, 7692, 7, 18, 0, 0, 7692, 7693, 5, 95, 0, 0, 7693, 7694, 7, 16, 0, 0, 7694, 7695, 7, 10, 0, 0, 7695, 7696, 7, 11, 0, 0, 7696, 7697, 7, 4, 0, 0, 7697, 7698, 7, 6, 0, 0, 7698, 7699, 7, 3, 0, 0, 7699, 7700, 7, 10, 0, 0, 7700, 7701, 7, 7, 0, 0, 7701, 7702, 7, 17, 0, 0, 7702, 548, 1, 0, 0, 0, 7703, 7704, 7, 8, 0, 0, 7704, 7705, 7, 2, 0, 0, 7705, 7706, 7, 7, 0, 0, 7706, 7707, 7, 7, 0, 0, 7707, 7708, 7, 6, 0, 0, 7708, 7709, 7, 8, 0, 0, 7709, 7710, 7, 4, 0, 0, 7710, 7711, 5, 95, 0, 0, 7711, 7712, 7, 1, 0, 0, 7712, 7713, 7, 18, 0, 0, 7713, 7714, 5, 95, 0, 0, 7714, 7715, 7, 10, 0, 0, 7715, 7716, 7, 5, 0, 0, 7716, 7717, 7, 8, 0, 0, 7717, 7718, 7, 18, 0, 0, 7718, 7719, 7, 8, 0, 0, 7719, 7720, 7, 11, 0, 0, 7720, 7721, 7, 6, 0, 0, 7721, 550, 1, 0, 0, 0, 7722, 7723, 7, 8, 0, 0, 7723, 7724, 7, 2, 0, 0, 7724, 7725, 7, 7, 0, 0, 7725, 7726, 7, 7, 0, 0, 7726, 7727, 7, 6, 0, 0, 7727, 7728, 7, 8, 0, 0, 7728, 7729, 7, 4, 0, 0, 7729, 7730, 5, 95, 0, 0, 7730, 7731, 7, 1, 0, 0, 7731, 7732, 7, 18, 0, 0, 7732, 7733, 5, 95, 0, 0, 7733, 7734, 7, 10, 0, 0, 7734, 7735, 7, 5, 0, 0, 7735, 7736, 7, 11, 0, 0, 7736, 7737, 7, 6, 0, 0, 7737, 7738, 7, 0, 0, 0, 7738, 7739, 7, 16, 0, 0, 7739, 552, 1, 0, 0, 0, 7740, 7741, 7, 8, 0, 0, 7741, 7742, 7, 2, 0, 0, 7742, 7743, 7, 7, 0, 0, 7743, 7744, 7, 7, 0, 0, 7744, 7745, 7, 6, 0, 0, 7745, 7746, 7, 8, 0, 0, 7746, 7747, 7, 4, 0, 0, 7747, 7748, 5, 95, 0, 0, 7748, 7749, 7, 1, 0, 0, 7749, 7750, 7, 18, 0, 0, 7750, 7751, 5, 95, 0, 0, 7751, 7752, 7, 3, 0, 0, 7752, 7753, 7, 2, 0, 0, 7753, 7754, 7, 2, 0, 0, 7754, 7755, 7, 4, 0, 0, 7755, 554, 1, 0, 0, 0, 7756, 7757, 7, 8, 0, 0, 7757, 7758, 7, 2, 0, 0, 7758, 7759, 7, 7, 0, 0, 7759, 7760, 7, 7, 0, 0, 7760, 7761, 7, 6, 0, 0, 7761, 7762, 7, 8, 0, 0, 7762, 7763, 7, 4, 0, 0, 7763, 556, 1, 0, 0, 0, 7764, 7765, 7, 8, 0, 0, 7765, 7766, 7, 2, 0, 0, 7766, 7767, 7, 7, 0, 0, 7767, 7768, 7, 7, 0, 0, 7768, 7769, 7, 6, 0, 0, 7769, 7770, 7, 8, 0, 0, 7770, 7771, 7, 4, 0, 0, 7771, 7772, 5, 95, 0, 0, 7772, 7773, 7, 4, 0, 0, 7773, 7774, 7, 10, 0, 0, 7774, 7775, 7, 14, 0, 0, 7775, 7776, 7, 6, 0, 0, 7776, 558, 1, 0, 0, 0, 7777, 7778, 7, 8, 0, 0, 7778, 7779, 7, 2, 0, 0, 7779, 7780, 7, 7, 0, 0, 7780, 7781, 7, 5, 0, 0, 7781, 7782, 7, 10, 0, 0, 7782, 7783, 7, 9, 0, 0, 7783, 7784, 7, 6, 0, 0, 7784, 7785, 7, 3, 0, 0, 7785, 560, 1, 0, 0, 0, 7786, 7787, 7, 8, 0, 0, 7787, 7788, 7, 2, 0, 0, 7788, 7789, 7, 7, 0, 0, 7789, 7790, 7, 5, 0, 0, 7790, 7791, 7, 10, 0, 0, 7791, 7792, 7, 5, 0, 0, 7792, 7793, 7, 4, 0, 0, 7793, 7794, 7, 6, 0, 0, 7794, 7795, 7, 7, 0, 0, 7795, 7796, 7, 4, 0, 0, 7796, 562, 1, 0, 0, 0, 7797, 7798, 7, 8, 0, 0, 7798, 7799, 7, 2, 0, 0, 7799, 7800, 7, 7, 0, 0, 7800, 7801, 7, 5, 0, 0, 7801, 7802, 7, 4, 0, 0, 7802, 7803, 7, 0, 0, 0, 7803, 7804, 7, 7, 0, 0, 7804, 7805, 7, 4, 0, 0, 7805, 564, 1, 0, 0, 0, 7806, 7807, 7, 8, 0, 0, 7807, 7808, 7, 2, 0, 0, 7808, 7809, 7, 7, 0, 0, 7809, 7810, 7, 5, 0, 0, 7810, 7811, 7, 4, 0, 0, 7811, 566, 1, 0, 0, 0, 7812, 7813, 7, 8, 0, 0, 7813, 7814, 7, 2, 0, 0, 7814, 7815, 7, 7, 0, 0, 7815, 7816, 7, 5, 0, 0, 7816, 7817, 7, 4, 0, 0, 7817, 7818, 7, 3, 0, 0, 7818, 7819, 7, 0, 0, 0, 7819, 7820, 7, 10, 0, 0, 7820, 7821, 7, 7, 0, 0, 7821, 7822, 7, 4, 0, 0, 7822, 568, 1, 0, 0, 0, 7823, 7824, 7, 8, 0, 0, 7824, 7825, 7, 2, 0, 0, 7825, 7826, 7, 7, 0, 0, 7826, 7827, 7, 5, 0, 0, 7827, 7828, 7, 4, 0, 0, 7828, 7829, 7, 3, 0, 0, 7829, 7830, 7, 0, 0, 0, 7830, 7831, 7, 10, 0, 0, 7831, 7832, 7, 7, 0, 0, 7832, 7833, 7, 4, 0, 0, 7833, 7834, 7, 5, 0, 0, 7834, 570, 1, 0, 0, 0, 7835, 7836, 7, 8, 0, 0, 7836, 7837, 7, 2, 0, 0, 7837, 7838, 7, 7, 0, 0, 7838, 7839, 7, 5, 0, 0, 7839, 7840, 7, 4, 0, 0, 7840, 7841, 7, 3, 0, 0, 7841, 7842, 7, 12, 0, 0, 7842, 7843, 7, 8, 0, 0, 7843, 7844, 7, 4, 0, 0, 7844, 7845, 7, 2, 0, 0, 7845, 7846, 7, 3, 0, 0, 7846, 572, 1, 0, 0, 0, 7847, 7848, 7, 8, 0, 0, 7848, 7849, 7, 2, 0, 0, 7849, 7850, 7, 7, 0, 0, 7850, 7851, 7, 4, 0, 0, 7851, 7852, 7, 0, 0, 0, 7852, 7853, 7, 10, 0, 0, 7853, 7854, 7, 7, 0, 0, 7854, 7855, 7, 6, 0, 0, 7855, 7856, 7, 3, 0, 0, 7856, 574, 1, 0, 0, 0, 7857, 7858, 7, 8, 0, 0, 7858, 7859, 7, 2, 0, 0, 7859, 7860, 7, 7, 0, 0, 7860, 7861, 7, 4, 0, 0, 7861, 7862, 7, 0, 0, 0, 7862, 7863, 7, 10, 0, 0, 7863, 7864, 7, 7, 0, 0, 7864, 7865, 7, 6, 0, 0, 7865, 7866, 7, 3, 0, 0, 7866, 7867, 7, 5, 0, 0, 7867, 576, 1, 0, 0, 0, 7868, 7869, 7, 8, 0, 0, 7869, 7870, 7, 2, 0, 0, 7870, 7871, 7, 7, 0, 0, 7871, 7872, 7, 4, 0, 0, 7872, 7873, 7, 0, 0, 0, 7873, 7874, 7, 10, 0, 0, 7874, 7875, 7, 7, 0, 0, 7875, 7876, 7, 6, 0, 0, 7876, 7877, 7, 3, 0, 0, 7877, 7878, 7, 5, 0, 0, 7878, 7879, 5, 95, 0, 0, 7879, 7880, 7, 9, 0, 0, 7880, 7881, 7, 6, 0, 0, 7881, 7882, 7, 16, 0, 0, 7882, 7883, 7, 0, 0, 0, 7883, 7884, 7, 12, 0, 0, 7884, 7885, 7, 11, 0, 0, 7885, 7886, 7, 4, 0, 0, 7886, 578, 1, 0, 0, 0, 7887, 7888, 7, 8, 0, 0, 7888, 7889, 7, 2, 0, 0, 7889, 7890, 7, 7, 0, 0, 7890, 7891, 7, 4, 0, 0, 7891, 7892, 7, 0, 0, 0, 7892, 7893, 7, 10, 0, 0, 7893, 7894, 7, 7, 0, 0, 7894, 7895, 7, 6, 0, 0, 7895, 7896, 7, 3, 0, 0, 7896, 7897, 5, 95, 0, 0, 7897, 7898, 7, 9, 0, 0, 7898, 7899, 7, 0, 0, 0, 7899, 7900, 7, 4, 0, 0, 7900, 7901, 7, 0, 0, 0, 7901, 580, 1, 0, 0, 0, 7902, 7903, 7, 8, 0, 0, 7903, 7904, 7, 2, 0, 0, 7904, 7905, 7, 7, 0, 0, 7905, 7906, 7, 4, 0, 0, 7906, 7907, 7, 0, 0, 0, 7907, 7908, 7, 10, 0, 0, 7908, 7909, 7, 7, 0, 0, 7909, 7910, 7, 6, 0, 0, 7910, 7911, 7, 3, 0, 0, 7911, 7912, 5, 95, 0, 0, 7912, 7913, 7, 14, 0, 0, 7913, 7914, 7, 0, 0, 0, 7914, 7915, 7, 15, 0, 0, 7915, 582, 1, 0, 0, 0, 7916, 7917, 7, 8, 0, 0, 7917, 7918, 7, 2, 0, 0, 7918, 7919, 7, 7, 0, 0, 7919, 7920, 7, 4, 0, 0, 7920, 7921, 7, 6, 0, 0, 7921, 7922, 7, 7, 0, 0, 7922, 7923, 7, 4, 0, 0, 7923, 584, 1, 0, 0, 0, 7924, 7925, 7, 8, 0, 0, 7925, 7926, 7, 2, 0, 0, 7926, 7927, 7, 7, 0, 0, 7927, 7928, 7, 4, 0, 0, 7928, 7929, 7, 6, 0, 0, 7929, 7930, 7, 7, 0, 0, 7930, 7931, 7, 4, 0, 0, 7931, 7932, 7, 5, 0, 0, 7932, 586, 1, 0, 0, 0, 7933, 7934, 7, 8, 0, 0, 7934, 7935, 7, 2, 0, 0, 7935, 7936, 7, 7, 0, 0, 7936, 7937, 7, 4, 0, 0, 7937, 7938, 7, 6, 0, 0, 7938, 7939, 7, 25, 0, 0, 7939, 7940, 7, 4, 0, 0, 7940, 588, 1, 0, 0, 0, 7941, 7942, 7, 8, 0, 0, 7942, 7943, 7, 2, 0, 0, 7943, 7944, 7, 7, 0, 0, 7944, 7945, 7, 4, 0, 0, 7945, 7946, 7, 10, 0, 0, 7946, 7947, 7, 7, 0, 0, 7947, 7948, 7, 12, 0, 0, 7948, 7949, 7, 6, 0, 0, 7949, 590, 1, 0, 0, 0, 7950, 7951, 7, 8, 0, 0, 7951, 7952, 7, 2, 0, 0, 7952, 7953, 7, 7, 0, 0, 7953, 7954, 7, 4, 0, 0, 7954, 7955, 7, 3, 0, 0, 7955, 7956, 7, 2, 0, 0, 7956, 7957, 7, 11, 0, 0, 7957, 7958, 7, 16, 0, 0, 7958, 7959, 7, 10, 0, 0, 7959, 7960, 7, 11, 0, 0, 7960, 7961, 7, 6, 0, 0, 7961, 592, 1, 0, 0, 0, 7962, 7963, 7, 8, 0, 0, 7963, 7964, 7, 2, 0, 0, 7964, 7965, 7, 7, 0, 0, 7965, 7966, 5, 95, 0, 0, 7966, 7967, 7, 12, 0, 0, 7967, 7968, 7, 10, 0, 0, 7968, 7969, 7, 9, 0, 0, 7969, 7970, 5, 95, 0, 0, 7970, 7971, 7, 4, 0, 0, 7971, 7972, 7, 2, 0, 0, 7972, 7973, 5, 95, 0, 0, 7973, 7974, 7, 10, 0, 0, 7974, 7975, 7, 9, 0, 0, 7975, 594, 1, 0, 0, 0, 7976, 7977, 7, 8, 0, 0, 7977, 7978, 7, 2, 0, 0, 7978, 7979, 7, 7, 0, 0, 7979, 7980, 7, 13, 0, 0, 7980, 7981, 7, 6, 0, 0, 7981, 7982, 7, 3, 0, 0, 7982, 7983, 7, 4, 0, 0, 7983, 596, 1, 0, 0, 0, 7984, 7985, 7, 8, 0, 0, 7985, 7986, 7, 2, 0, 0, 7986, 7987, 7, 7, 0, 0, 7987, 7988, 7, 13, 0, 0, 7988, 7989, 7, 6, 0, 0, 7989, 7990, 7, 3, 0, 0, 7990, 7991, 7, 5, 0, 0, 7991, 7992, 7, 10, 0, 0, 7992, 7993, 7, 2, 0, 0, 7993, 7994, 7, 7, 0, 0, 7994, 598, 1, 0, 0, 0, 7995, 7996, 7, 8, 0, 0, 7996, 7997, 7, 2, 0, 0, 7997, 7998, 7, 2, 0, 0, 7998, 7999, 7, 21, 0, 0, 7999, 8000, 7, 10, 0, 0, 8000, 8001, 7, 6, 0, 0, 8001, 600, 1, 0, 0, 0, 8002, 8003, 7, 8, 0, 0, 8003, 8004, 7, 2, 0, 0, 8004, 8005, 7, 15, 0, 0, 8005, 8006, 7, 18, 0, 0, 8006, 602, 1, 0, 0, 0, 8007, 8008, 7, 8, 0, 0, 8008, 8009, 7, 2, 0, 0, 8009, 8010, 7, 3, 0, 0, 8010, 8011, 7, 3, 0, 0, 8011, 8012, 5, 95, 0, 0, 8012, 8013, 7, 21, 0, 0, 8013, 604, 1, 0, 0, 0, 8014, 8015, 7, 8, 0, 0, 8015, 8016, 7, 2, 0, 0, 8016, 8017, 7, 3, 0, 0, 8017, 8018, 7, 3, 0, 0, 8018, 8019, 5, 95, 0, 0, 8019, 8020, 7, 5, 0, 0, 8020, 606, 1, 0, 0, 0, 8021, 8022, 7, 8, 0, 0, 8022, 8023, 7, 2, 0, 0, 8023, 8024, 7, 3, 0, 0, 8024, 8025, 7, 3, 0, 0, 8025, 8026, 7, 12, 0, 0, 8026, 8027, 7, 15, 0, 0, 8027, 8028, 7, 4, 0, 0, 8028, 8029, 7, 10, 0, 0, 8029, 8030, 7, 2, 0, 0, 8030, 8031, 7, 7, 0, 0, 8031, 608, 1, 0, 0, 0, 8032, 8033, 7, 8, 0, 0, 8033, 8034, 7, 2, 0, 0, 8034, 8035, 7, 3, 0, 0, 8035, 8036, 7, 3, 0, 0, 8036, 8037, 7, 12, 0, 0, 8037, 8038, 7, 15, 0, 0, 8038, 8039, 7, 4, 0, 0, 8039, 8040, 5, 95, 0, 0, 8040, 8041, 7, 25, 0, 0, 8041, 8042, 7, 10, 0, 0, 8042, 8043, 7, 9, 0, 0, 8043, 8044, 5, 95, 0, 0, 8044, 8045, 7, 0, 0, 0, 8045, 8046, 7, 11, 0, 0, 8046, 8047, 7, 11, 0, 0, 8047, 610, 1, 0, 0, 0, 8048, 8049, 7, 8, 0, 0, 8049, 8050, 7, 2, 0, 0, 8050, 8051, 7, 3, 0, 0, 8051, 8052, 7, 3, 0, 0, 8052, 8053, 7, 12, 0, 0, 8053, 8054, 7, 15, 0, 0, 8054, 8055, 7, 4, 0, 0, 8055, 8056, 5, 95, 0, 0, 8056, 8057, 7, 25, 0, 0, 8057, 8058, 7, 10, 0, 0, 8058, 8059, 7, 9, 0, 0, 8059, 612, 1, 0, 0, 0, 8060, 8061, 7, 8, 0, 0, 8061, 8062, 7, 2, 0, 0, 8062, 8063, 7, 5, 0, 0, 8063, 614, 1, 0, 0, 0, 8064, 8065, 7, 8, 0, 0, 8065, 8066, 7, 2, 0, 0, 8066, 8067, 7, 5, 0, 0, 8067, 8068, 7, 19, 0, 0, 8068, 616, 1, 0, 0, 0, 8069, 8070, 7, 8, 0, 0, 8070, 8071, 7, 2, 0, 0, 8071, 8072, 7, 5, 0, 0, 8072, 8073, 7, 4, 0, 0, 8073, 618, 1, 0, 0, 0, 8074, 8075, 7, 8, 0, 0, 8075, 8076, 7, 2, 0, 0, 8076, 8077, 7, 5, 0, 0, 8077, 8078, 7, 4, 0, 0, 8078, 8079, 5, 95, 0, 0, 8079, 8080, 7, 25, 0, 0, 8080, 8081, 7, 14, 0, 0, 8081, 8082, 7, 11, 0, 0, 8082, 8083, 5, 95, 0, 0, 8083, 8084, 7, 24, 0, 0, 8084, 8085, 7, 12, 0, 0, 8085, 8086, 7, 6, 0, 0, 8086, 8087, 7, 3, 0, 0, 8087, 8088, 7, 18, 0, 0, 8088, 8089, 5, 95, 0, 0, 8089, 8090, 7, 3, 0, 0, 8090, 8091, 7, 6, 0, 0, 8091, 8092, 7, 22, 0, 0, 8092, 8093, 7, 3, 0, 0, 8093, 8094, 7, 10, 0, 0, 8094, 8095, 7, 4, 0, 0, 8095, 8096, 7, 6, 0, 0, 8096, 620, 1, 0, 0, 0, 8097, 8098, 7, 8, 0, 0, 8098, 8099, 7, 2, 0, 0, 8099, 8100, 7, 12, 0, 0, 8100, 8101, 7, 7, 0, 0, 8101, 8102, 7, 4, 0, 0, 8102, 622, 1, 0, 0, 0, 8103, 8104, 7, 8, 0, 0, 8104, 8105, 7, 2, 0, 0, 8105, 8106, 7, 12, 0, 0, 8106, 8107, 7, 7, 0, 0, 8107, 8108, 7, 4, 0, 0, 8108, 8109, 7, 6, 0, 0, 8109, 8110, 7, 9, 0, 0, 8110, 624, 1, 0, 0, 0, 8111, 8112, 7, 8, 0, 0, 8112, 8113, 7, 2, 0, 0, 8113, 8114, 7, 13, 0, 0, 8114, 8115, 7, 0, 0, 0, 8115, 8116, 7, 3, 0, 0, 8116, 8117, 5, 95, 0, 0, 8117, 8118, 7, 15, 0, 0, 8118, 8119, 7, 2, 0, 0, 8119, 8120, 7, 15, 0, 0, 8120, 626, 1, 0, 0, 0, 8121, 8122, 7, 8, 0, 0, 8122, 8123, 7, 2, 0, 0, 8123, 8124, 7, 13, 0, 0, 8124, 8125, 7, 0, 0, 0, 8125, 8126, 7, 3, 0, 0, 8126, 8127, 5, 95, 0, 0, 8127, 8128, 7, 5, 0, 0, 8128, 8129, 7, 0, 0, 0, 8129, 8130, 7, 14, 0, 0, 8130, 8131, 7, 15, 0, 0, 8131, 628, 1, 0, 0, 0, 8132, 8133, 7, 8, 0, 0, 8133, 8134, 7, 15, 0, 0, 8134, 8135, 7, 12, 0, 0, 8135, 8136, 5, 95, 0, 0, 8136, 8137, 7, 8, 0, 0, 8137, 8138, 7, 2, 0, 0, 8138, 8139, 7, 5, 0, 0, 8139, 8140, 7, 4, 0, 0, 8140, 8141, 7, 10, 0, 0, 8141, 8142, 7, 7, 0, 0, 8142, 8143, 7, 17, 0, 0, 8143, 630, 1, 0, 0, 0, 8144, 8145, 7, 8, 0, 0, 8145, 8146, 7, 15, 0, 0, 8146, 8147, 7, 12, 0, 0, 8147, 8148, 5, 95, 0, 0, 8148, 8149, 7, 15, 0, 0, 8149, 8150, 7, 6, 0, 0, 8150, 8151, 7, 3, 0, 0, 8151, 8152, 5, 95, 0, 0, 8152, 8153, 7, 8, 0, 0, 8153, 8154, 7, 0, 0, 0, 8154, 8155, 7, 11, 0, 0, 8155, 8156, 7, 11, 0, 0, 8156, 632, 1, 0, 0, 0, 8157, 8158, 7, 8, 0, 0, 8158, 8159, 7, 15, 0, 0, 8159, 8160, 7, 12, 0, 0, 8160, 8161, 5, 95, 0, 0, 8161, 8162, 7, 15, 0, 0, 8162, 8163, 7, 6, 0, 0, 8163, 8164, 7, 3, 0, 0, 8164, 8165, 5, 95, 0, 0, 8165, 8166, 7, 5, 0, 0, 8166, 8167, 7, 6, 0, 0, 8167, 8168, 7, 5, 0, 0, 8168, 8169, 7, 5, 0, 0, 8169, 8170, 7, 10, 0, 0, 8170, 8171, 7, 2, 0, 0, 8171, 8172, 7, 7, 0, 0, 8172, 634, 1, 0, 0, 0, 8173, 8174, 7, 8, 0, 0, 8174, 8175, 7, 3, 0, 0, 8175, 8176, 7, 0, 0, 0, 8176, 8177, 7, 5, 0, 0, 8177, 8178, 7, 19, 0, 0, 8178, 636, 1, 0, 0, 0, 8179, 8180, 7, 8, 0, 0, 8180, 8181, 7, 3, 0, 0, 8181, 8182, 7, 6, 0, 0, 8182, 8183, 7, 0, 0, 0, 8183, 8184, 7, 4, 0, 0, 8184, 8185, 7, 6, 0, 0, 8185, 638, 1, 0, 0, 0, 8186, 8187, 7, 8, 0, 0, 8187, 8188, 7, 3, 0, 0, 8188, 8189, 7, 6, 0, 0, 8189, 8190, 7, 0, 0, 0, 8190, 8191, 7, 4, 0, 0, 8191, 8192, 7, 6, 0, 0, 8192, 8193, 5, 95, 0, 0, 8193, 8194, 7, 16, 0, 0, 8194, 8195, 7, 10, 0, 0, 8195, 8196, 7, 11, 0, 0, 8196, 8197, 7, 6, 0, 0, 8197, 8198, 5, 95, 0, 0, 8198, 8199, 7, 9, 0, 0, 8199, 8200, 7, 6, 0, 0, 8200, 8201, 7, 5, 0, 0, 8201, 8202, 7, 4, 0, 0, 8202, 640, 1, 0, 0, 0, 8203, 8204, 7, 8, 0, 0, 8204, 8205, 7, 3, 0, 0, 8205, 8206, 7, 6, 0, 0, 8206, 8207, 7, 0, 0, 0, 8207, 8208, 7, 4, 0, 0, 8208, 8209, 7, 6, 0, 0, 8209, 8210, 5, 95, 0, 0, 8210, 8211, 7, 5, 0, 0, 8211, 8212, 7, 4, 0, 0, 8212, 8213, 7, 2, 0, 0, 8213, 8214, 7, 3, 0, 0, 8214, 8215, 7, 6, 0, 0, 8215, 8216, 7, 9, 0, 0, 8216, 8217, 5, 95, 0, 0, 8217, 8218, 7, 2, 0, 0, 8218, 8219, 7, 12, 0, 0, 8219, 8220, 7, 4, 0, 0, 8220, 8221, 7, 11, 0, 0, 8221, 8222, 7, 10, 0, 0, 8222, 8223, 7, 7, 0, 0, 8223, 8224, 7, 6, 0, 0, 8224, 8225, 7, 5, 0, 0, 8225, 642, 1, 0, 0, 0, 8226, 8227, 7, 8, 0, 0, 8227, 8228, 7, 3, 0, 0, 8228, 8229, 7, 6, 0, 0, 8229, 8230, 7, 0, 0, 0, 8230, 8231, 7, 4, 0, 0, 8231, 8232, 7, 10, 0, 0, 8232, 8233, 7, 2, 0, 0, 8233, 8234, 7, 7, 0, 0, 8234, 644, 1, 0, 0, 0, 8235, 8236, 7, 8, 0, 0, 8236, 8237, 7, 3, 0, 0, 8237, 8238, 7, 6, 0, 0, 8238, 8239, 7, 9, 0, 0, 8239, 8240, 7, 6, 0, 0, 8240, 8241, 7, 7, 0, 0, 8241, 8242, 7, 4, 0, 0, 8242, 8243, 7, 10, 0, 0, 8243, 8244, 7, 0, 0, 0, 8244, 8245, 7, 11, 0, 0, 8245, 646, 1, 0, 0, 0, 8246, 8247, 7, 8, 0, 0, 8247, 8248, 7, 3, 0, 0, 8248, 8249, 7, 10, 0, 0, 8249, 8250, 7, 4, 0, 0, 8250, 8251, 7, 10, 0, 0, 8251, 8252, 7, 8, 0, 0, 8252, 8253, 7, 0, 0, 0, 8253, 8254, 7, 11, 0, 0, 8254, 648, 1, 0, 0, 0, 8255, 8256, 7, 8, 0, 0, 8256, 8257, 7, 3, 0, 0, 8257, 8258, 7, 2, 0, 0, 8258, 8259, 7, 5, 0, 0, 8259, 8260, 7, 5, 0, 0, 8260, 650, 1, 0, 0, 0, 8261, 8262, 7, 8, 0, 0, 8262, 8263, 7, 3, 0, 0, 8263, 8264, 7, 2, 0, 0, 8264, 8265, 7, 5, 0, 0, 8265, 8266, 7, 5, 0, 0, 8266, 8267, 7, 6, 0, 0, 8267, 8268, 7, 9, 0, 0, 8268, 8269, 7, 10, 0, 0, 8269, 8270, 7, 4, 0, 0, 8270, 8271, 7, 10, 0, 0, 8271, 8272, 7, 2, 0, 0, 8272, 8273, 7, 7, 0, 0, 8273, 652, 1, 0, 0, 0, 8274, 8275, 7, 8, 0, 0, 8275, 8276, 7, 5, 0, 0, 8276, 8277, 7, 8, 0, 0, 8277, 8278, 7, 2, 0, 0, 8278, 8279, 7, 7, 0, 0, 8279, 8280, 7, 13, 0, 0, 8280, 8281, 7, 6, 0, 0, 8281, 8282, 7, 3, 0, 0, 8282, 8283, 7, 4, 0, 0, 8283, 654, 1, 0, 0, 0, 8284, 8285, 7, 8, 0, 0, 8285, 8286, 7, 5, 0, 0, 8286, 8287, 7, 13, 0, 0, 8287, 656, 1, 0, 0, 0, 8288, 8289, 7, 8, 0, 0, 8289, 8290, 7, 12, 0, 0, 8290, 8291, 7, 1, 0, 0, 8291, 8292, 7, 6, 0, 0, 8292, 8293, 5, 95, 0, 0, 8293, 8294, 7, 0, 0, 0, 8294, 8295, 7, 20, 0, 0, 8295, 658, 1, 0, 0, 0, 8296, 8297, 7, 8, 0, 0, 8297, 8298, 7, 12, 0, 0, 8298, 8299, 7, 1, 0, 0, 8299, 8300, 7, 6, 0, 0, 8300, 660, 1, 0, 0, 0, 8301, 8302, 7, 8, 0, 0, 8302, 8303, 7, 12, 0, 0, 8303, 8304, 7, 1, 0, 0, 8304, 8305, 7, 6, 0, 0, 8305, 8306, 5, 95, 0, 0, 8306, 8307, 7, 17, 0, 0, 8307, 8308, 7, 1, 0, 0, 8308, 662, 1, 0, 0, 0, 8309, 8310, 7, 8, 0, 0, 8310, 8311, 7, 12, 0, 0, 8311, 8312, 7, 1, 0, 0, 8312, 8313, 7, 6, 0, 0, 8313, 8314, 5, 95, 0, 0, 8314, 8315, 7, 5, 0, 0, 8315, 8316, 7, 20, 0, 0, 8316, 664, 1, 0, 0, 0, 8317, 8318, 7, 8, 0, 0, 8318, 8319, 7, 12, 0, 0, 8319, 8320, 7, 14, 0, 0, 8320, 8321, 7, 6, 0, 0, 8321, 8322, 5, 95, 0, 0, 8322, 8323, 7, 9, 0, 0, 8323, 8324, 7, 10, 0, 0, 8324, 8325, 7, 5, 0, 0, 8325, 8326, 7, 4, 0, 0, 8326, 8327, 7, 14, 0, 0, 8327, 666, 1, 0, 0, 0, 8328, 8329, 7, 8, 0, 0, 8329, 8330, 7, 12, 0, 0, 8330, 8331, 7, 3, 0, 0, 8331, 8332, 7, 3, 0, 0, 8332, 8333, 7, 6, 0, 0, 8333, 8334, 7, 7, 0, 0, 8334, 8335, 7, 4, 0, 0, 8335, 668, 1, 0, 0, 0, 8336, 8337, 7, 8, 0, 0, 8337, 8338, 7, 12, 0, 0, 8338, 8339, 7, 3, 0, 0, 8339, 8340, 7, 3, 0, 0, 8340, 8341, 7, 6, 0, 0, 8341, 8342, 7, 7, 0, 0, 8342, 8343, 7, 4, 0, 0, 8343, 8344, 5, 95, 0, 0, 8344, 8345, 7, 9, 0, 0, 8345, 8346, 7, 0, 0, 0, 8346, 8347, 7, 4, 0, 0, 8347, 8348, 7, 6, 0, 0, 8348, 670, 1, 0, 0, 0, 8349, 8350, 7, 8, 0, 0, 8350, 8351, 7, 12, 0, 0, 8351, 8352, 7, 3, 0, 0, 8352, 8353, 7, 3, 0, 0, 8353, 8354, 7, 6, 0, 0, 8354, 8355, 7, 7, 0, 0, 8355, 8356, 7, 4, 0, 0, 8356, 8357, 5, 95, 0, 0, 8357, 8358, 7, 5, 0, 0, 8358, 8359, 7, 8, 0, 0, 8359, 8360, 7, 19, 0, 0, 8360, 8361, 7, 6, 0, 0, 8361, 8362, 7, 14, 0, 0, 8362, 8363, 7, 0, 0, 0, 8363, 672, 1, 0, 0, 0, 8364, 8365, 7, 8, 0, 0, 8365, 8366, 7, 12, 0, 0, 8366, 8367, 7, 3, 0, 0, 8367, 8368, 7, 3, 0, 0, 8368, 8369, 7, 6, 0, 0, 8369, 8370, 7, 7, 0, 0, 8370, 8371, 7, 4, 0, 0, 8371, 8372, 5, 95, 0, 0, 8372, 8373, 7, 4, 0, 0, 8373, 8374, 7, 10, 0, 0, 8374, 8375, 7, 14, 0, 0, 8375, 8376, 7, 6, 0, 0, 8376, 674, 1, 0, 0, 0, 8377, 8378, 7, 8, 0, 0, 8378, 8379, 7, 12, 0, 0, 8379, 8380, 7, 3, 0, 0, 8380, 8381, 7, 3, 0, 0, 8381, 8382, 7, 6, 0, 0, 8382, 8383, 7, 7, 0, 0, 8383, 8384, 7, 4, 0, 0, 8384, 8385, 5, 95, 0, 0, 8385, 8386, 7, 4, 0, 0, 8386, 8387, 7, 10, 0, 0, 8387, 8388, 7, 14, 0, 0, 8388, 8389, 7, 6, 0, 0, 8389, 8390, 7, 5, 0, 0, 8390, 8391, 7, 4, 0, 0, 8391, 8392, 7, 0, 0, 0, 8392, 8393, 7, 14, 0, 0, 8393, 8394, 7, 15, 0, 0, 8394, 676, 1, 0, 0, 0, 8395, 8396, 7, 8, 0, 0, 8396, 8397, 7, 12, 0, 0, 8397, 8398, 7, 3, 0, 0, 8398, 8399, 7, 3, 0, 0, 8399, 8400, 7, 6, 0, 0, 8400, 8401, 7, 7, 0, 0, 8401, 8402, 7, 4, 0, 0, 8402, 8403, 5, 95, 0, 0, 8403, 8404, 7, 12, 0, 0, 8404, 8405, 7, 5, 0, 0, 8405, 8406, 7, 6, 0, 0, 8406, 8407, 7, 3, 0, 0, 8407, 678, 1, 0, 0, 0, 8408, 8409, 7, 8, 0, 0, 8409, 8410, 7, 12, 0, 0, 8410, 8411, 7, 3, 0, 0, 8411, 8412, 7, 3, 0, 0, 8412, 8413, 7, 6, 0, 0, 8413, 8414, 7, 7, 0, 0, 8414, 8415, 7, 4, 0, 0, 8415, 8416, 7, 13, 0, 0, 8416, 680, 1, 0, 0, 0, 8417, 8418, 7, 8, 0, 0, 8418, 8419, 7, 12, 0, 0, 8419, 8420, 7, 3, 0, 0, 8420, 8421, 7, 5, 0, 0, 8421, 8422, 7, 2, 0, 0, 8422, 8423, 7, 3, 0, 0, 8423, 682, 1, 0, 0, 0, 8424, 8425, 7, 8, 0, 0, 8425, 8426, 7, 12, 0, 0, 8426, 8427, 7, 3, 0, 0, 8427, 8428, 7, 5, 0, 0, 8428, 8429, 7, 2, 0, 0, 8429, 8430, 7, 3, 0, 0, 8430, 8431, 5, 95, 0, 0, 8431, 8432, 7, 5, 0, 0, 8432, 8433, 7, 19, 0, 0, 8433, 8434, 7, 0, 0, 0, 8434, 8435, 7, 3, 0, 0, 8435, 8436, 7, 10, 0, 0, 8436, 8437, 7, 7, 0, 0, 8437, 8438, 7, 17, 0, 0, 8438, 8439, 5, 95, 0, 0, 8439, 8440, 7, 6, 0, 0, 8440, 8441, 7, 25, 0, 0, 8441, 8442, 7, 0, 0, 0, 8442, 8443, 7, 8, 0, 0, 8443, 8444, 7, 4, 0, 0, 8444, 684, 1, 0, 0, 0, 8445, 8446, 7, 8, 0, 0, 8446, 8447, 7, 12, 0, 0, 8447, 8448, 7, 3, 0, 0, 8448, 8449, 7, 5, 0, 0, 8449, 8450, 7, 2, 0, 0, 8450, 8451, 7, 3, 0, 0, 8451, 8452, 5, 95, 0, 0, 8452, 8453, 7, 5, 0, 0, 8453, 8454, 7, 15, 0, 0, 8454, 8455, 7, 6, 0, 0, 8455, 8456, 7, 8, 0, 0, 8456, 8457, 7, 10, 0, 0, 8457, 8458, 7, 16, 0, 0, 8458, 8459, 7, 10, 0, 0, 8459, 8460, 7, 8, 0, 0, 8460, 8461, 5, 95, 0, 0, 8461, 8462, 7, 5, 0, 0, 8462, 8463, 7, 6, 0, 0, 8463, 8464, 7, 17, 0, 0, 8464, 8465, 7, 14, 0, 0, 8465, 8466, 7, 6, 0, 0, 8466, 8467, 7, 7, 0, 0, 8467, 8468, 7, 4, 0, 0, 8468, 686, 1, 0, 0, 0, 8469, 8470, 7, 8, 0, 0, 8470, 8471, 7, 12, 0, 0, 8471, 8472, 7, 5, 0, 0, 8472, 8473, 7, 4, 0, 0, 8473, 8474, 7, 2, 0, 0, 8474, 8475, 7, 14, 0, 0, 8475, 8476, 7, 9, 0, 0, 8476, 8477, 7, 0, 0, 0, 8477, 8478, 7, 4, 0, 0, 8478, 8479, 7, 12, 0, 0, 8479, 8480, 7, 14, 0, 0, 8480, 688, 1, 0, 0, 0, 8481, 8482, 7, 8, 0, 0, 8482, 8483, 7, 13, 0, 0, 8483, 690, 1, 0, 0, 0, 8484, 8485, 7, 8, 0, 0, 8485, 8486, 7, 18, 0, 0, 8486, 8487, 7, 8, 0, 0, 8487, 8488, 7, 11, 0, 0, 8488, 8489, 7, 6, 0, 0, 8489, 692, 1, 0, 0, 0, 8490, 8491, 7, 9, 0, 0, 8491, 8492, 7, 0, 0, 0, 8492, 8493, 7, 7, 0, 0, 8493, 8494, 7, 17, 0, 0, 8494, 8495, 7, 11, 0, 0, 8495, 8496, 7, 10, 0, 0, 8496, 8497, 7, 7, 0, 0, 8497, 8498, 7, 17, 0, 0, 8498, 694, 1, 0, 0, 0, 8499, 8500, 7, 9, 0, 0, 8500, 8501, 7, 0, 0, 0, 8501, 8502, 7, 4, 0, 0, 8502, 8503, 7, 0, 0, 0, 8503, 8504, 7, 1, 0, 0, 8504, 8505, 7, 0, 0, 0, 8505, 8506, 7, 5, 0, 0, 8506, 8507, 7, 6, 0, 0, 8507, 696, 1, 0, 0, 0, 8508, 8509, 7, 9, 0, 0, 8509, 8510, 7, 0, 0, 0, 8510, 8511, 7, 4, 0, 0, 8511, 8512, 7, 0, 0, 0, 8512, 698, 1, 0, 0, 0, 8513, 8514, 7, 9, 0, 0, 8514, 8515, 7, 0, 0, 0, 8515, 8516, 7, 4, 0, 0, 8516, 8517, 7, 0, 0, 0, 8517, 8518, 7, 16, 0, 0, 8518, 8519, 7, 10, 0, 0, 8519, 8520, 7, 11, 0, 0, 8520, 8521, 7, 6, 0, 0, 8521, 700, 1, 0, 0, 0, 8522, 8523, 7, 9, 0, 0, 8523, 8524, 7, 0, 0, 0, 8524, 8525, 7, 4, 0, 0, 8525, 8526, 7, 0, 0, 0, 8526, 8527, 7, 16, 0, 0, 8527, 8528, 7, 10, 0, 0, 8528, 8529, 7, 11, 0, 0, 8529, 8530, 7, 6, 0, 0, 8530, 8531, 7, 5, 0, 0, 8531, 702, 1, 0, 0, 0, 8532, 8533, 7, 9, 0, 0, 8533, 8534, 7, 0, 0, 0, 8534, 8535, 7, 4, 0, 0, 8535, 8536, 7, 0, 0, 0, 8536, 8537, 7, 17, 0, 0, 8537, 8538, 7, 12, 0, 0, 8538, 8539, 7, 0, 0, 0, 8539, 8540, 7, 3, 0, 0, 8540, 8541, 7, 9, 0, 0, 8541, 8542, 7, 8, 0, 0, 8542, 8543, 7, 2, 0, 0, 8543, 8544, 7, 7, 0, 0, 8544, 8545, 7, 16, 0, 0, 8545, 8546, 7, 10, 0, 0, 8546, 8547, 7, 17, 0, 0, 8547, 704, 1, 0, 0, 0, 8548, 8549, 7, 9, 0, 0, 8549, 8550, 7, 0, 0, 0, 8550, 8551, 7, 4, 0, 0, 8551, 8552, 7, 0, 0, 0, 8552, 8553, 7, 14, 0, 0, 8553, 8554, 7, 2, 0, 0, 8554, 8555, 7, 13, 0, 0, 8555, 8556, 7, 6, 0, 0, 8556, 8557, 7, 14, 0, 0, 8557, 8558, 7, 6, 0, 0, 8558, 8559, 7, 7, 0, 0, 8559, 8560, 7, 4, 0, 0, 8560, 706, 1, 0, 0, 0, 8561, 8562, 7, 9, 0, 0, 8562, 8563, 7, 0, 0, 0, 8563, 8564, 7, 4, 0, 0, 8564, 8565, 7, 0, 0, 0, 8565, 8566, 7, 2, 0, 0, 8566, 8567, 7, 1, 0, 0, 8567, 8568, 7, 20, 0, 0, 8568, 8569, 7, 7, 0, 0, 8569, 8570, 7, 2, 0, 0, 8570, 708, 1, 0, 0, 0, 8571, 8572, 7, 9, 0, 0, 8572, 8573, 7, 0, 0, 0, 8573, 8574, 7, 4, 0, 0, 8574, 8575, 7, 0, 0, 0, 8575, 8576, 7, 2, 0, 0, 8576, 8577, 7, 1, 0, 0, 8577, 8578, 7, 20, 0, 0, 8578, 8579, 5, 95, 0, 0, 8579, 8580, 7, 4, 0, 0, 8580, 8581, 7, 2, 0, 0, 8581, 8582, 5, 95, 0, 0, 8582, 8583, 7, 14, 0, 0, 8583, 8584, 7, 0, 0, 0, 8584, 8585, 7, 4, 0, 0, 8585, 8586, 5, 95, 0, 0, 8586, 8587, 7, 15, 0, 0, 8587, 8588, 7, 0, 0, 0, 8588, 8589, 7, 3, 0, 0, 8589, 8590, 7, 4, 0, 0, 8590, 8591, 7, 10, 0, 0, 8591, 8592, 7, 4, 0, 0, 8592, 8593, 7, 10, 0, 0, 8593, 8594, 7, 2, 0, 0, 8594, 8595, 7, 7, 0, 0, 8595, 710, 1, 0, 0, 0, 8596, 8597, 7, 9, 0, 0, 8597, 8598, 7, 0, 0, 0, 8598, 8599, 7, 4, 0, 0, 8599, 8600, 7, 0, 0, 0, 8600, 8601, 7, 2, 0, 0, 8601, 8602, 7, 1, 0, 0, 8602, 8603, 7, 20, 0, 0, 8603, 8604, 5, 95, 0, 0, 8604, 8605, 7, 4, 0, 0, 8605, 8606, 7, 2, 0, 0, 8606, 8607, 5, 95, 0, 0, 8607, 8608, 7, 15, 0, 0, 8608, 8609, 7, 0, 0, 0, 8609, 8610, 7, 3, 0, 0, 8610, 8611, 7, 4, 0, 0, 8611, 8612, 7, 10, 0, 0, 8612, 8613, 7, 4, 0, 0, 8613, 8614, 7, 10, 0, 0, 8614, 8615, 7, 2, 0, 0, 8615, 8616, 7, 7, 0, 0, 8616, 712, 1, 0, 0, 0, 8617, 8618, 7, 9, 0, 0, 8618, 8619, 7, 0, 0, 0, 8619, 8620, 7, 4, 0, 0, 8620, 8621, 7, 0, 0, 0, 8621, 8622, 7, 15, 0, 0, 8622, 8623, 7, 12, 0, 0, 8623, 8624, 7, 14, 0, 0, 8624, 8625, 7, 15, 0, 0, 8625, 714, 1, 0, 0, 0, 8626, 8627, 7, 9, 0, 0, 8627, 8628, 7, 0, 0, 0, 8628, 8629, 7, 4, 0, 0, 8629, 8630, 7, 0, 0, 0, 8630, 8631, 5, 95, 0, 0, 8631, 8632, 7, 5, 0, 0, 8632, 8633, 7, 6, 0, 0, 8633, 8634, 7, 8, 0, 0, 8634, 8635, 7, 12, 0, 0, 8635, 8636, 7, 3, 0, 0, 8636, 8637, 7, 10, 0, 0, 8637, 8638, 7, 4, 0, 0, 8638, 8639, 7, 18, 0, 0, 8639, 8640, 5, 95, 0, 0, 8640, 8641, 7, 3, 0, 0, 8641, 8642, 7, 6, 0, 0, 8642, 8643, 7, 22, 0, 0, 8643, 8644, 7, 3, 0, 0, 8644, 8645, 7, 10, 0, 0, 8645, 8646, 7, 4, 0, 0, 8646, 8647, 7, 6, 0, 0, 8647, 8648, 5, 95, 0, 0, 8648, 8649, 7, 11, 0, 0, 8649, 8650, 7, 10, 0, 0, 8650, 8651, 7, 14, 0, 0, 8651, 8652, 7, 10, 0, 0, 8652, 8653, 7, 4, 0, 0, 8653, 716, 1, 0, 0, 0, 8654, 8655, 7, 9, 0, 0, 8655, 8656, 7, 0, 0, 0, 8656, 8657, 7, 4, 0, 0, 8657, 8658, 7, 6, 0, 0, 8658, 718, 1, 0, 0, 0, 8659, 8660, 7, 9, 0, 0, 8660, 8661, 7, 0, 0, 0, 8661, 8662, 7, 4, 0, 0, 8662, 8663, 7, 6, 0, 0, 8663, 8664, 5, 95, 0, 0, 8664, 8665, 7, 8, 0, 0, 8665, 8666, 7, 0, 0, 0, 8666, 8667, 7, 8, 0, 0, 8667, 8668, 7, 19, 0, 0, 8668, 8669, 7, 6, 0, 0, 8669, 720, 1, 0, 0, 0, 8670, 8671, 7, 9, 0, 0, 8671, 8672, 7, 0, 0, 0, 8672, 8673, 7, 4, 0, 0, 8673, 8674, 7, 6, 0, 0, 8674, 8675, 5, 95, 0, 0, 8675, 8676, 7, 16, 0, 0, 8676, 8677, 7, 2, 0, 0, 8677, 8678, 7, 3, 0, 0, 8678, 8679, 7, 14, 0, 0, 8679, 8680, 7, 0, 0, 0, 8680, 8681, 7, 4, 0, 0, 8681, 722, 1, 0, 0, 0, 8682, 8683, 7, 9, 0, 0, 8683, 8684, 7, 0, 0, 0, 8684, 8685, 7, 4, 0, 0, 8685, 8686, 7, 6, 0, 0, 8686, 8687, 5, 95, 0, 0, 8687, 8688, 7, 14, 0, 0, 8688, 8689, 7, 2, 0, 0, 8689, 8690, 7, 9, 0, 0, 8690, 8691, 7, 6, 0, 0, 8691, 724, 1, 0, 0, 0, 8692, 8693, 7, 9, 0, 0, 8693, 8694, 7, 0, 0, 0, 8694, 8695, 7, 18, 0, 0, 8695, 726, 1, 0, 0, 0, 8696, 8697, 7, 9, 0, 0, 8697, 8698, 7, 0, 0, 0, 8698, 8699, 7, 18, 0, 0, 8699, 8700, 7, 5, 0, 0, 8700, 728, 1, 0, 0, 0, 8701, 8702, 7, 9, 0, 0, 8702, 8703, 7, 0, 0, 0, 8703, 8704, 7, 18, 0, 0, 8704, 8705, 5, 95, 0, 0, 8705, 8706, 7, 4, 0, 0, 8706, 8707, 7, 2, 0, 0, 8707, 8708, 5, 95, 0, 0, 8708, 8709, 7, 5, 0, 0, 8709, 8710, 7, 6, 0, 0, 8710, 8711, 7, 8, 0, 0, 8711, 8712, 7, 2, 0, 0, 8712, 8713, 7, 7, 0, 0, 8713, 8714, 7, 9, 0, 0, 8714, 730, 1, 0, 0, 0, 8715, 8716, 7, 9, 0, 0, 8716, 8717, 7, 1, 0, 0, 8717, 8718, 7, 0, 0, 0, 8718, 732, 1, 0, 0, 0, 8719, 8720, 7, 9, 0, 0, 8720, 8721, 7, 1, 0, 0, 8721, 8722, 7, 0, 0, 0, 8722, 8723, 5, 95, 0, 0, 8723, 8724, 7, 3, 0, 0, 8724, 8725, 7, 6, 0, 0, 8725, 8726, 7, 8, 0, 0, 8726, 8727, 7, 18, 0, 0, 8727, 8728, 7, 8, 0, 0, 8728, 8729, 7, 11, 0, 0, 8729, 8730, 7, 6, 0, 0, 8730, 8731, 7, 1, 0, 0, 8731, 8732, 7, 10, 0, 0, 8732, 8733, 7, 7, 0, 0, 8733, 734, 1, 0, 0, 0, 8734, 8735, 7, 9, 0, 0, 8735, 8736, 7, 1, 0, 0, 8736, 8737, 7, 11, 0, 0, 8737, 8738, 7, 10, 0, 0, 8738, 8739, 7, 7, 0, 0, 8739, 8740, 7, 21, 0, 0, 8740, 736, 1, 0, 0, 0, 8741, 8742, 7, 9, 0, 0, 8742, 8743, 7, 1, 0, 0, 8743, 8744, 7, 14, 0, 0, 8744, 8745, 7, 5, 0, 0, 8745, 8746, 5, 95, 0, 0, 8746, 8747, 7, 5, 0, 0, 8747, 8748, 7, 4, 0, 0, 8748, 8749, 7, 0, 0, 0, 8749, 8750, 7, 4, 0, 0, 8750, 8751, 7, 5, 0, 0, 8751, 738, 1, 0, 0, 0, 8752, 8753, 7, 9, 0, 0, 8753, 8754, 7, 1, 0, 0, 8754, 8755, 5, 95, 0, 0, 8755, 8756, 7, 3, 0, 0, 8756, 8757, 7, 2, 0, 0, 8757, 8758, 7, 11, 0, 0, 8758, 8759, 7, 6, 0, 0, 8759, 8760, 5, 95, 0, 0, 8760, 8761, 7, 8, 0, 0, 8761, 8762, 7, 19, 0, 0, 8762, 8763, 7, 0, 0, 0, 8763, 8764, 7, 7, 0, 0, 8764, 8765, 7, 17, 0, 0, 8765, 8766, 7, 6, 0, 0, 8766, 740, 1, 0, 0, 0, 8767, 8768, 7, 9, 0, 0, 8768, 8769, 7, 1, 0, 0, 8769, 8770, 7, 4, 0, 0, 8770, 8771, 7, 10, 0, 0, 8771, 8772, 7, 14, 0, 0, 8772, 8773, 7, 6, 0, 0, 8773, 8774, 7, 23, 0, 0, 8774, 8775, 7, 2, 0, 0, 8775, 8776, 7, 7, 0, 0, 8776, 8777, 7, 6, 0, 0, 8777, 742, 1, 0, 0, 0, 8778, 8779, 7, 9, 0, 0, 8779, 8780, 7, 1, 0, 0, 8780, 8781, 5, 95, 0, 0, 8781, 8782, 7, 12, 0, 0, 8782, 8783, 7, 7, 0, 0, 8783, 8784, 7, 10, 0, 0, 8784, 8785, 7, 24, 0, 0, 8785, 8786, 7, 12, 0, 0, 8786, 8787, 7, 6, 0, 0, 8787, 8788, 5, 95, 0, 0, 8788, 8789, 7, 7, 0, 0, 8789, 8790, 7, 0, 0, 0, 8790, 8791, 7, 14, 0, 0, 8791, 8792, 7, 6, 0, 0, 8792, 744, 1, 0, 0, 0, 8793, 8794, 7, 9, 0, 0, 8794, 8795, 7, 1, 0, 0, 8795, 8796, 5, 95, 0, 0, 8796, 8797, 7, 13, 0, 0, 8797, 8798, 7, 6, 0, 0, 8798, 8799, 7, 3, 0, 0, 8799, 8800, 7, 5, 0, 0, 8800, 8801, 7, 10, 0, 0, 8801, 8802, 7, 2, 0, 0, 8802, 8803, 7, 7, 0, 0, 8803, 746, 1, 0, 0, 0, 8804, 8805, 7, 9, 0, 0, 8805, 8806, 7, 9, 0, 0, 8806, 8807, 7, 11, 0, 0, 8807, 748, 1, 0, 0, 0, 8808, 8809, 7, 9, 0, 0, 8809, 8810, 7, 6, 0, 0, 8810, 8811, 7, 0, 0, 0, 8811, 8812, 7, 11, 0, 0, 8812, 8813, 7, 11, 0, 0, 8813, 8814, 7, 2, 0, 0, 8814, 8815, 7, 8, 0, 0, 8815, 8816, 7, 0, 0, 0, 8816, 8817, 7, 4, 0, 0, 8817, 8818, 7, 6, 0, 0, 8818, 750, 1, 0, 0, 0, 8819, 8820, 7, 9, 0, 0, 8820, 8821, 7, 6, 0, 0, 8821, 8822, 7, 1, 0, 0, 8822, 8823, 7, 12, 0, 0, 8823, 8824, 7, 17, 0, 0, 8824, 752, 1, 0, 0, 0, 8825, 8826, 7, 9, 0, 0, 8826, 8827, 7, 6, 0, 0, 8827, 8828, 7, 1, 0, 0, 8828, 8829, 7, 12, 0, 0, 8829, 8830, 7, 17, 0, 0, 8830, 8831, 7, 17, 0, 0, 8831, 8832, 7, 6, 0, 0, 8832, 8833, 7, 3, 0, 0, 8833, 754, 1, 0, 0, 0, 8834, 8835, 7, 9, 0, 0, 8835, 8836, 7, 6, 0, 0, 8836, 8837, 7, 8, 0, 0, 8837, 756, 1, 0, 0, 0, 8838, 8839, 7, 9, 0, 0, 8839, 8840, 7, 6, 0, 0, 8840, 8841, 7, 8, 0, 0, 8841, 8842, 7, 10, 0, 0, 8842, 8843, 7, 14, 0, 0, 8843, 8844, 7, 0, 0, 0, 8844, 8845, 7, 11, 0, 0, 8845, 758, 1, 0, 0, 0, 8846, 8847, 7, 9, 0, 0, 8847, 8848, 7, 6, 0, 0, 8848, 8849, 7, 8, 0, 0, 8849, 8850, 7, 11, 0, 0, 8850, 8851, 7, 0, 0, 0, 8851, 8852, 7, 3, 0, 0, 8852, 8853, 7, 6, 0, 0, 8853, 760, 1, 0, 0, 0, 8854, 8855, 7, 9, 0, 0, 8855, 8856, 7, 6, 0, 0, 8856, 8857, 7, 8, 0, 0, 8857, 8858, 7, 2, 0, 0, 8858, 8859, 7, 14, 0, 0, 8859, 8860, 7, 15, 0, 0, 8860, 8861, 7, 2, 0, 0, 8861, 8862, 7, 5, 0, 0, 8862, 8863, 7, 6, 0, 0, 8863, 762, 1, 0, 0, 0, 8864, 8865, 7, 9, 0, 0, 8865, 8866, 7, 6, 0, 0, 8866, 8867, 7, 8, 0, 0, 8867, 8868, 7, 2, 0, 0, 8868, 8869, 7, 3, 0, 0, 8869, 8870, 7, 3, 0, 0, 8870, 8871, 7, 6, 0, 0, 8871, 8872, 7, 11, 0, 0, 8872, 8873, 7, 0, 0, 0, 8873, 8874, 7, 4, 0, 0, 8874, 8875, 7, 6, 0, 0, 8875, 764, 1, 0, 0, 0, 8876, 8877, 7, 9, 0, 0, 8877, 8878, 7, 6, 0, 0, 8878, 8879, 7, 8, 0, 0, 8879, 8880, 7, 3, 0, 0, 8880, 766, 1, 0, 0, 0, 8881, 8882, 7, 9, 0, 0, 8882, 8883, 7, 6, 0, 0, 8883, 8884, 7, 8, 0, 0, 8884, 8885, 7, 3, 0, 0, 8885, 8886, 7, 6, 0, 0, 8886, 8887, 7, 14, 0, 0, 8887, 8888, 7, 6, 0, 0, 8888, 8889, 7, 7, 0, 0, 8889, 8890, 7, 4, 0, 0, 8890, 768, 1, 0, 0, 0, 8891, 8892, 7, 9, 0, 0, 8892, 8893, 7, 6, 0, 0, 8893, 8894, 7, 8, 0, 0, 8894, 8895, 7, 3, 0, 0, 8895, 8896, 7, 18, 0, 0, 8896, 8897, 7, 15, 0, 0, 8897, 8898, 7, 4, 0, 0, 8898, 770, 1, 0, 0, 0, 8899, 8900, 7, 9, 0, 0, 8900, 8901, 7, 6, 0, 0, 8901, 8902, 7, 9, 0, 0, 8902, 8903, 7, 12, 0, 0, 8903, 8904, 7, 15, 0, 0, 8904, 8905, 7, 11, 0, 0, 8905, 8906, 7, 10, 0, 0, 8906, 8907, 7, 8, 0, 0, 8907, 8908, 7, 0, 0, 0, 8908, 8909, 7, 4, 0, 0, 8909, 8910, 7, 6, 0, 0, 8910, 772, 1, 0, 0, 0, 8911, 8912, 7, 9, 0, 0, 8912, 8913, 7, 6, 0, 0, 8913, 8914, 7, 16, 0, 0, 8914, 8915, 7, 0, 0, 0, 8915, 8916, 7, 12, 0, 0, 8916, 8917, 7, 11, 0, 0, 8917, 8918, 7, 4, 0, 0, 8918, 774, 1, 0, 0, 0, 8919, 8920, 7, 9, 0, 0, 8920, 8921, 7, 6, 0, 0, 8921, 8922, 7, 16, 0, 0, 8922, 8923, 7, 0, 0, 0, 8923, 8924, 7, 12, 0, 0, 8924, 8925, 7, 11, 0, 0, 8925, 8926, 7, 4, 0, 0, 8926, 8927, 7, 10, 0, 0, 8927, 8928, 7, 16, 0, 0, 8928, 776, 1, 0, 0, 0, 8929, 8930, 7, 9, 0, 0, 8930, 8931, 7, 6, 0, 0, 8931, 8932, 7, 16, 0, 0, 8932, 8933, 7, 0, 0, 0, 8933, 8934, 7, 12, 0, 0, 8934, 8935, 7, 11, 0, 0, 8935, 8936, 7, 4, 0, 0, 8936, 8937, 7, 5, 0, 0, 8937, 778, 1, 0, 0, 0, 8938, 8939, 7, 9, 0, 0, 8939, 8940, 7, 6, 0, 0, 8940, 8941, 7, 16, 0, 0, 8941, 8942, 7, 0, 0, 0, 8942, 8943, 7, 12, 0, 0, 8943, 8944, 7, 11, 0, 0, 8944, 8945, 7, 4, 0, 0, 8945, 8946, 5, 95, 0, 0, 8946, 8947, 7, 8, 0, 0, 8947, 8948, 7, 2, 0, 0, 8948, 8949, 7, 11, 0, 0, 8949, 8950, 7, 11, 0, 0, 8950, 8951, 7, 0, 0, 0, 8951, 8952, 7, 4, 0, 0, 8952, 8953, 7, 10, 0, 0, 8953, 8954, 7, 2, 0, 0, 8954, 8955, 7, 7, 0, 0, 8955, 780, 1, 0, 0, 0, 8956, 8957, 7, 9, 0, 0, 8957, 8958, 7, 6, 0, 0, 8958, 8959, 7, 16, 0, 0, 8959, 8960, 7, 0, 0, 0, 8960, 8961, 7, 12, 0, 0, 8961, 8962, 7, 11, 0, 0, 8962, 8963, 7, 4, 0, 0, 8963, 8964, 5, 95, 0, 0, 8964, 8965, 7, 8, 0, 0, 8965, 8966, 7, 3, 0, 0, 8966, 8967, 7, 6, 0, 0, 8967, 8968, 7, 9, 0, 0, 8968, 8969, 7, 6, 0, 0, 8969, 8970, 7, 7, 0, 0, 8970, 8971, 7, 4, 0, 0, 8971, 8972, 7, 10, 0, 0, 8972, 8973, 7, 0, 0, 0, 8973, 8974, 7, 11, 0, 0, 8974, 782, 1, 0, 0, 0, 8975, 8976, 7, 9, 0, 0, 8976, 8977, 7, 6, 0, 0, 8977, 8978, 7, 16, 0, 0, 8978, 8979, 7, 6, 0, 0, 8979, 8980, 7, 3, 0, 0, 8980, 8981, 7, 3, 0, 0, 8981, 8982, 7, 0, 0, 0, 8982, 8983, 7, 1, 0, 0, 8983, 8984, 7, 11, 0, 0, 8984, 8985, 7, 6, 0, 0, 8985, 784, 1, 0, 0, 0, 8986, 8987, 7, 9, 0, 0, 8987, 8988, 7, 6, 0, 0, 8988, 8989, 7, 16, 0, 0, 8989, 8990, 7, 6, 0, 0, 8990, 8991, 7, 3, 0, 0, 8991, 8992, 7, 3, 0, 0, 8992, 8993, 7, 6, 0, 0, 8993, 8994, 7, 9, 0, 0, 8994, 786, 1, 0, 0, 0, 8995, 8996, 7, 9, 0, 0, 8996, 8997, 7, 6, 0, 0, 8997, 8998, 7, 16, 0, 0, 8998, 8999, 7, 10, 0, 0, 8999, 9000, 7, 7, 0, 0, 9000, 9001, 7, 6, 0, 0, 9001, 9002, 7, 9, 0, 0, 9002, 788, 1, 0, 0, 0, 9003, 9004, 7, 9, 0, 0, 9004, 9005, 7, 6, 0, 0, 9005, 9006, 7, 16, 0, 0, 9006, 9007, 7, 10, 0, 0, 9007, 9008, 7, 7, 0, 0, 9008, 9009, 7, 6, 0, 0, 9009, 790, 1, 0, 0, 0, 9010, 9011, 7, 9, 0, 0, 9011, 9012, 7, 6, 0, 0, 9012, 9013, 7, 16, 0, 0, 9013, 9014, 7, 10, 0, 0, 9014, 9015, 7, 7, 0, 0, 9015, 9016, 7, 6, 0, 0, 9016, 9017, 7, 3, 0, 0, 9017, 792, 1, 0, 0, 0, 9018, 9019, 7, 9, 0, 0, 9019, 9020, 7, 6, 0, 0, 9020, 9021, 7, 17, 0, 0, 9021, 9022, 7, 3, 0, 0, 9022, 9023, 7, 6, 0, 0, 9023, 9024, 7, 6, 0, 0, 9024, 794, 1, 0, 0, 0, 9025, 9026, 7, 9, 0, 0, 9026, 9027, 7, 6, 0, 0, 9027, 9028, 7, 11, 0, 0, 9028, 9029, 7, 0, 0, 0, 9029, 9030, 7, 18, 0, 0, 9030, 796, 1, 0, 0, 0, 9031, 9032, 7, 9, 0, 0, 9032, 9033, 7, 6, 0, 0, 9033, 9034, 7, 11, 0, 0, 9034, 9035, 7, 6, 0, 0, 9035, 9036, 7, 17, 0, 0, 9036, 9037, 7, 0, 0, 0, 9037, 9038, 7, 4, 0, 0, 9038, 9039, 7, 6, 0, 0, 9039, 798, 1, 0, 0, 0, 9040, 9041, 7, 9, 0, 0, 9041, 9042, 7, 6, 0, 0, 9042, 9043, 7, 11, 0, 0, 9043, 9044, 7, 6, 0, 0, 9044, 9045, 7, 4, 0, 0, 9045, 9046, 7, 6, 0, 0, 9046, 9047, 5, 95, 0, 0, 9047, 9048, 7, 0, 0, 0, 9048, 9049, 7, 11, 0, 0, 9049, 9050, 7, 11, 0, 0, 9050, 800, 1, 0, 0, 0, 9051, 9052, 7, 9, 0, 0, 9052, 9053, 7, 6, 0, 0, 9053, 9054, 7, 11, 0, 0, 9054, 9055, 7, 6, 0, 0, 9055, 9056, 7, 4, 0, 0, 9056, 9057, 7, 6, 0, 0, 9057, 802, 1, 0, 0, 0, 9058, 9059, 7, 9, 0, 0, 9059, 9060, 7, 6, 0, 0, 9060, 9061, 7, 11, 0, 0, 9061, 9062, 7, 6, 0, 0, 9062, 9063, 7, 4, 0, 0, 9063, 9064, 7, 6, 0, 0, 9064, 9065, 7, 25, 0, 0, 9065, 9066, 7, 14, 0, 0, 9066, 9067, 7, 11, 0, 0, 9067, 804, 1, 0, 0, 0, 9068, 9069, 7, 9, 0, 0, 9069, 9070, 7, 6, 0, 0, 9070, 9071, 7, 11, 0, 0, 9071, 9072, 7, 10, 0, 0, 9072, 9073, 7, 14, 0, 0, 9073, 9074, 7, 10, 0, 0, 9074, 9075, 7, 4, 0, 0, 9075, 9076, 7, 6, 0, 0, 9076, 9077, 7, 9, 0, 0, 9077, 806, 1, 0, 0, 0, 9078, 9079, 7, 9, 0, 0, 9079, 9080, 7, 6, 0, 0, 9080, 9081, 7, 14, 0, 0, 9081, 9082, 7, 0, 0, 0, 9082, 9083, 7, 7, 0, 0, 9083, 9084, 7, 9, 0, 0, 9084, 808, 1, 0, 0, 0, 9085, 9086, 7, 9, 0, 0, 9086, 9087, 7, 6, 0, 0, 9087, 9088, 7, 7, 0, 0, 9088, 9089, 7, 5, 0, 0, 9089, 9090, 7, 6, 0, 0, 9090, 9091, 5, 95, 0, 0, 9091, 9092, 7, 3, 0, 0, 9092, 9093, 7, 0, 0, 0, 9093, 9094, 7, 7, 0, 0, 9094, 9095, 7, 21, 0, 0, 9095, 9096, 7, 14, 0, 0, 9096, 810, 1, 0, 0, 0, 9097, 9098, 7, 9, 0, 0, 9098, 9099, 7, 6, 0, 0, 9099, 9100, 7, 15, 0, 0, 9100, 9101, 7, 6, 0, 0, 9101, 9102, 7, 7, 0, 0, 9102, 9103, 7, 9, 0, 0, 9103, 9104, 7, 6, 0, 0, 9104, 9105, 7, 7, 0, 0, 9105, 9106, 7, 4, 0, 0, 9106, 812, 1, 0, 0, 0, 9107, 9108, 7, 9, 0, 0, 9108, 9109, 7, 6, 0, 0, 9109, 9110, 7, 15, 0, 0, 9110, 9111, 7, 3, 0, 0, 9111, 9112, 7, 6, 0, 0, 9112, 9113, 7, 8, 0, 0, 9113, 9114, 7, 0, 0, 0, 9114, 9115, 7, 4, 0, 0, 9115, 9116, 7, 6, 0, 0, 9116, 814, 1, 0, 0, 0, 9117, 9118, 7, 9, 0, 0, 9118, 9119, 7, 6, 0, 0, 9119, 9120, 7, 15, 0, 0, 9120, 9121, 7, 4, 0, 0, 9121, 9122, 7, 19, 0, 0, 9122, 816, 1, 0, 0, 0, 9123, 9124, 7, 9, 0, 0, 9124, 9125, 7, 6, 0, 0, 9125, 9126, 7, 24, 0, 0, 9126, 9127, 7, 12, 0, 0, 9127, 9128, 7, 6, 0, 0, 9128, 9129, 7, 12, 0, 0, 9129, 9130, 7, 6, 0, 0, 9130, 818, 1, 0, 0, 0, 9131, 9132, 7, 9, 0, 0, 9132, 9133, 7, 6, 0, 0, 9133, 9134, 7, 3, 0, 0, 9134, 9135, 7, 6, 0, 0, 9135, 9136, 7, 16, 0, 0, 9136, 820, 1, 0, 0, 0, 9137, 9138, 7, 9, 0, 0, 9138, 9139, 7, 6, 0, 0, 9139, 9140, 7, 3, 0, 0, 9140, 9141, 7, 6, 0, 0, 9141, 9142, 7, 16, 0, 0, 9142, 9143, 5, 95, 0, 0, 9143, 9144, 7, 7, 0, 0, 9144, 9145, 7, 2, 0, 0, 9145, 9146, 5, 95, 0, 0, 9146, 9147, 7, 3, 0, 0, 9147, 9148, 7, 6, 0, 0, 9148, 9149, 7, 22, 0, 0, 9149, 9150, 7, 3, 0, 0, 9150, 9151, 7, 10, 0, 0, 9151, 9152, 7, 4, 0, 0, 9152, 9153, 7, 6, 0, 0, 9153, 822, 1, 0, 0, 0, 9154, 9155, 7, 9, 0, 0, 9155, 9156, 7, 6, 0, 0, 9156, 9157, 7, 5, 0, 0, 9157, 9158, 7, 8, 0, 0, 9158, 824, 1, 0, 0, 0, 9159, 9160, 7, 9, 0, 0, 9160, 9161, 7, 6, 0, 0, 9161, 9162, 7, 5, 0, 0, 9162, 9163, 7, 8, 0, 0, 9163, 9164, 7, 3, 0, 0, 9164, 9165, 7, 10, 0, 0, 9165, 9166, 7, 15, 0, 0, 9166, 9167, 7, 4, 0, 0, 9167, 9168, 7, 10, 0, 0, 9168, 9169, 7, 2, 0, 0, 9169, 9170, 7, 7, 0, 0, 9170, 826, 1, 0, 0, 0, 9171, 9172, 7, 9, 0, 0, 9172, 9173, 7, 6, 0, 0, 9173, 9174, 7, 5, 0, 0, 9174, 9175, 7, 4, 0, 0, 9175, 9176, 7, 3, 0, 0, 9176, 9177, 7, 2, 0, 0, 9177, 9178, 7, 18, 0, 0, 9178, 828, 1, 0, 0, 0, 9179, 9180, 7, 9, 0, 0, 9180, 9181, 7, 6, 0, 0, 9181, 9182, 7, 4, 0, 0, 9182, 9183, 7, 0, 0, 0, 9183, 9184, 7, 8, 0, 0, 9184, 9185, 7, 19, 0, 0, 9185, 9186, 7, 6, 0, 0, 9186, 9187, 7, 9, 0, 0, 9187, 830, 1, 0, 0, 0, 9188, 9189, 7, 9, 0, 0, 9189, 9190, 7, 6, 0, 0, 9190, 9191, 7, 4, 0, 0, 9191, 9192, 7, 6, 0, 0, 9192, 9193, 7, 8, 0, 0, 9193, 9194, 7, 4, 0, 0, 9194, 9195, 7, 6, 0, 0, 9195, 9196, 7, 9, 0, 0, 9196, 832, 1, 0, 0, 0, 9197, 9198, 7, 9, 0, 0, 9198, 9199, 7, 6, 0, 0, 9199, 9200, 7, 4, 0, 0, 9200, 9201, 7, 6, 0, 0, 9201, 9202, 7, 3, 0, 0, 9202, 9203, 7, 14, 0, 0, 9203, 9204, 7, 10, 0, 0, 9204, 9205, 7, 7, 0, 0, 9205, 9206, 7, 6, 0, 0, 9206, 9207, 7, 5, 0, 0, 9207, 834, 1, 0, 0, 0, 9208, 9209, 7, 9, 0, 0, 9209, 9210, 7, 6, 0, 0, 9210, 9211, 7, 4, 0, 0, 9211, 9212, 7, 6, 0, 0, 9212, 9213, 7, 3, 0, 0, 9213, 9214, 7, 14, 0, 0, 9214, 9215, 7, 10, 0, 0, 9215, 9216, 7, 7, 0, 0, 9216, 9217, 7, 10, 0, 0, 9217, 9218, 7, 5, 0, 0, 9218, 9219, 7, 4, 0, 0, 9219, 9220, 7, 10, 0, 0, 9220, 9221, 7, 8, 0, 0, 9221, 836, 1, 0, 0, 0, 9222, 9223, 7, 9, 0, 0, 9223, 9224, 7, 10, 0, 0, 9224, 9225, 7, 8, 0, 0, 9225, 9226, 7, 4, 0, 0, 9226, 9227, 7, 10, 0, 0, 9227, 9228, 7, 2, 0, 0, 9228, 9229, 7, 7, 0, 0, 9229, 9230, 7, 0, 0, 0, 9230, 9231, 7, 3, 0, 0, 9231, 9232, 7, 18, 0, 0, 9232, 838, 1, 0, 0, 0, 9233, 9234, 7, 9, 0, 0, 9234, 9235, 7, 10, 0, 0, 9235, 9236, 7, 14, 0, 0, 9236, 9237, 7, 6, 0, 0, 9237, 9238, 7, 7, 0, 0, 9238, 9239, 7, 5, 0, 0, 9239, 9240, 7, 10, 0, 0, 9240, 9241, 7, 2, 0, 0, 9241, 9242, 7, 7, 0, 0, 9242, 840, 1, 0, 0, 0, 9243, 9244, 7, 9, 0, 0, 9244, 9245, 7, 10, 0, 0, 9245, 9246, 7, 14, 0, 0, 9246, 9247, 7, 6, 0, 0, 9247, 9248, 7, 7, 0, 0, 9248, 9249, 7, 5, 0, 0, 9249, 9250, 7, 10, 0, 0, 9250, 9251, 7, 2, 0, 0, 9251, 9252, 7, 7, 0, 0, 9252, 9253, 7, 5, 0, 0, 9253, 842, 1, 0, 0, 0, 9254, 9255, 7, 9, 0, 0, 9255, 9256, 7, 10, 0, 0, 9256, 9257, 7, 3, 0, 0, 9257, 9258, 7, 6, 0, 0, 9258, 9259, 7, 8, 0, 0, 9259, 9260, 7, 4, 0, 0, 9260, 9261, 7, 10, 0, 0, 9261, 9262, 7, 2, 0, 0, 9262, 844, 1, 0, 0, 0, 9263, 9264, 7, 9, 0, 0, 9264, 9265, 7, 10, 0, 0, 9265, 9266, 7, 3, 0, 0, 9266, 9267, 7, 6, 0, 0, 9267, 9268, 7, 8, 0, 0, 9268, 9269, 7, 4, 0, 0, 9269, 9270, 5, 95, 0, 0, 9270, 9271, 7, 11, 0, 0, 9271, 9272, 7, 2, 0, 0, 9272, 9273, 7, 0, 0, 0, 9273, 9274, 7, 9, 0, 0, 9274, 846, 1, 0, 0, 0, 9275, 9276, 7, 9, 0, 0, 9276, 9277, 7, 10, 0, 0, 9277, 9278, 7, 3, 0, 0, 9278, 9279, 7, 6, 0, 0, 9279, 9280, 7, 8, 0, 0, 9280, 9281, 7, 4, 0, 0, 9281, 9282, 7, 2, 0, 0, 9282, 9283, 7, 3, 0, 0, 9283, 9284, 7, 18, 0, 0, 9284, 848, 1, 0, 0, 0, 9285, 9286, 7, 9, 0, 0, 9286, 9287, 7, 10, 0, 0, 9287, 9288, 7, 3, 0, 0, 9288, 9289, 7, 6, 0, 0, 9289, 9290, 7, 8, 0, 0, 9290, 9291, 7, 4, 0, 0, 9291, 9292, 5, 95, 0, 0, 9292, 9293, 7, 15, 0, 0, 9293, 9294, 7, 0, 0, 0, 9294, 9295, 7, 4, 0, 0, 9295, 9296, 7, 19, 0, 0, 9296, 850, 1, 0, 0, 0, 9297, 9298, 7, 9, 0, 0, 9298, 9299, 7, 10, 0, 0, 9299, 9300, 7, 5, 0, 0, 9300, 9301, 7, 0, 0, 0, 9301, 9302, 7, 1, 0, 0, 9302, 9303, 7, 11, 0, 0, 9303, 9304, 7, 6, 0, 0, 9304, 9305, 5, 95, 0, 0, 9305, 9306, 7, 0, 0, 0, 9306, 9307, 7, 11, 0, 0, 9307, 9308, 7, 11, 0, 0, 9308, 852, 1, 0, 0, 0, 9309, 9310, 7, 9, 0, 0, 9310, 9311, 7, 10, 0, 0, 9311, 9312, 7, 5, 0, 0, 9312, 9313, 7, 0, 0, 0, 9313, 9314, 7, 1, 0, 0, 9314, 9315, 7, 11, 0, 0, 9315, 9316, 7, 6, 0, 0, 9316, 854, 1, 0, 0, 0, 9317, 9318, 7, 9, 0, 0, 9318, 9319, 7, 10, 0, 0, 9319, 9320, 7, 5, 0, 0, 9320, 9321, 7, 0, 0, 0, 9321, 9322, 7, 1, 0, 0, 9322, 9323, 7, 11, 0, 0, 9323, 9324, 7, 6, 0, 0, 9324, 9325, 7, 9, 0, 0, 9325, 856, 1, 0, 0, 0, 9326, 9327, 7, 9, 0, 0, 9327, 9328, 7, 10, 0, 0, 9328, 9329, 7, 5, 0, 0, 9329, 9330, 7, 0, 0, 0, 9330, 9331, 7, 1, 0, 0, 9331, 9332, 7, 11, 0, 0, 9332, 9333, 7, 6, 0, 0, 9333, 9334, 5, 95, 0, 0, 9334, 9335, 7, 9, 0, 0, 9335, 9336, 7, 10, 0, 0, 9336, 9337, 7, 3, 0, 0, 9337, 9338, 7, 6, 0, 0, 9338, 9339, 7, 8, 0, 0, 9339, 9340, 7, 4, 0, 0, 9340, 9341, 7, 2, 0, 0, 9341, 9342, 7, 3, 0, 0, 9342, 9343, 7, 18, 0, 0, 9343, 9344, 5, 95, 0, 0, 9344, 9345, 7, 11, 0, 0, 9345, 9346, 7, 10, 0, 0, 9346, 9347, 7, 7, 0, 0, 9347, 9348, 7, 21, 0, 0, 9348, 9349, 5, 95, 0, 0, 9349, 9350, 7, 8, 0, 0, 9350, 9351, 7, 19, 0, 0, 9351, 9352, 7, 6, 0, 0, 9352, 9353, 7, 8, 0, 0, 9353, 9354, 7, 21, 0, 0, 9354, 858, 1, 0, 0, 0, 9355, 9356, 7, 9, 0, 0, 9356, 9357, 7, 10, 0, 0, 9357, 9358, 7, 5, 0, 0, 9358, 9359, 7, 0, 0, 0, 9359, 9360, 7, 1, 0, 0, 9360, 9361, 7, 11, 0, 0, 9361, 9362, 7, 6, 0, 0, 9362, 9363, 5, 95, 0, 0, 9363, 9364, 7, 15, 0, 0, 9364, 9365, 7, 0, 0, 0, 9365, 9366, 7, 3, 0, 0, 9366, 9367, 7, 0, 0, 0, 9367, 9368, 7, 11, 0, 0, 9368, 9369, 7, 11, 0, 0, 9369, 9370, 7, 6, 0, 0, 9370, 9371, 7, 11, 0, 0, 9371, 9372, 5, 95, 0, 0, 9372, 9373, 7, 9, 0, 0, 9373, 9374, 7, 14, 0, 0, 9374, 9375, 7, 11, 0, 0, 9375, 860, 1, 0, 0, 0, 9376, 9377, 7, 9, 0, 0, 9377, 9378, 7, 10, 0, 0, 9378, 9379, 7, 5, 0, 0, 9379, 9380, 7, 0, 0, 0, 9380, 9381, 7, 1, 0, 0, 9381, 9382, 7, 11, 0, 0, 9382, 9383, 7, 6, 0, 0, 9383, 9384, 5, 95, 0, 0, 9384, 9385, 7, 15, 0, 0, 9385, 9386, 7, 3, 0, 0, 9386, 9387, 7, 6, 0, 0, 9387, 9388, 7, 5, 0, 0, 9388, 9389, 7, 6, 0, 0, 9389, 9390, 7, 4, 0, 0, 9390, 862, 1, 0, 0, 0, 9391, 9392, 7, 9, 0, 0, 9392, 9393, 7, 10, 0, 0, 9393, 9394, 7, 5, 0, 0, 9394, 9395, 7, 0, 0, 0, 9395, 9396, 7, 1, 0, 0, 9396, 9397, 7, 11, 0, 0, 9397, 9398, 7, 6, 0, 0, 9398, 9399, 5, 95, 0, 0, 9399, 9400, 7, 3, 0, 0, 9400, 9401, 7, 15, 0, 0, 9401, 9402, 7, 21, 0, 0, 9402, 9403, 7, 6, 0, 0, 9403, 864, 1, 0, 0, 0, 9404, 9405, 7, 9, 0, 0, 9405, 9406, 7, 10, 0, 0, 9406, 9407, 7, 5, 0, 0, 9407, 9408, 7, 0, 0, 0, 9408, 9409, 7, 11, 0, 0, 9409, 9410, 7, 11, 0, 0, 9410, 9411, 7, 2, 0, 0, 9411, 9412, 7, 22, 0, 0, 9412, 866, 1, 0, 0, 0, 9413, 9414, 7, 9, 0, 0, 9414, 9415, 7, 10, 0, 0, 9415, 9416, 7, 5, 0, 0, 9416, 9417, 7, 0, 0, 0, 9417, 9418, 7, 5, 0, 0, 9418, 9419, 7, 5, 0, 0, 9419, 9420, 7, 2, 0, 0, 9420, 9421, 7, 8, 0, 0, 9421, 9422, 7, 10, 0, 0, 9422, 9423, 7, 0, 0, 0, 9423, 9424, 7, 4, 0, 0, 9424, 9425, 7, 6, 0, 0, 9425, 868, 1, 0, 0, 0, 9426, 9427, 7, 9, 0, 0, 9427, 9428, 7, 10, 0, 0, 9428, 9429, 7, 5, 0, 0, 9429, 9430, 7, 8, 0, 0, 9430, 9431, 7, 0, 0, 0, 9431, 9432, 7, 3, 0, 0, 9432, 9433, 7, 9, 0, 0, 9433, 870, 1, 0, 0, 0, 9434, 9435, 7, 9, 0, 0, 9435, 9436, 7, 10, 0, 0, 9436, 9437, 7, 5, 0, 0, 9437, 9438, 7, 8, 0, 0, 9438, 9439, 7, 0, 0, 0, 9439, 9440, 7, 3, 0, 0, 9440, 9441, 7, 9, 0, 0, 9441, 9442, 7, 16, 0, 0, 9442, 9443, 7, 10, 0, 0, 9443, 9444, 7, 11, 0, 0, 9444, 9445, 7, 6, 0, 0, 9445, 872, 1, 0, 0, 0, 9446, 9447, 7, 9, 0, 0, 9447, 9448, 7, 10, 0, 0, 9448, 9449, 7, 5, 0, 0, 9449, 9450, 7, 8, 0, 0, 9450, 9451, 7, 2, 0, 0, 9451, 9452, 7, 7, 0, 0, 9452, 9453, 7, 7, 0, 0, 9453, 9454, 7, 6, 0, 0, 9454, 9455, 7, 8, 0, 0, 9455, 9456, 7, 4, 0, 0, 9456, 874, 1, 0, 0, 0, 9457, 9458, 7, 9, 0, 0, 9458, 9459, 7, 10, 0, 0, 9459, 9460, 7, 5, 0, 0, 9460, 9461, 7, 21, 0, 0, 9461, 876, 1, 0, 0, 0, 9462, 9463, 7, 9, 0, 0, 9463, 9464, 7, 10, 0, 0, 9464, 9465, 7, 5, 0, 0, 9465, 9466, 7, 21, 0, 0, 9466, 9467, 7, 17, 0, 0, 9467, 9468, 7, 3, 0, 0, 9468, 9469, 7, 2, 0, 0, 9469, 9470, 7, 12, 0, 0, 9470, 9471, 7, 15, 0, 0, 9471, 878, 1, 0, 0, 0, 9472, 9473, 5, 39, 0, 0, 9473, 9474, 5, 43, 0, 0, 9474, 9475, 5, 32, 0, 0, 9475, 9476, 7, 9, 0, 0, 9476, 9477, 7, 10, 0, 0, 9477, 9478, 7, 5, 0, 0, 9478, 9479, 7, 21, 0, 0, 9479, 9480, 7, 17, 0, 0, 9480, 9481, 7, 3, 0, 0, 9481, 9482, 7, 2, 0, 0, 9482, 9483, 7, 12, 0, 0, 9483, 9484, 7, 15, 0, 0, 9484, 880, 1, 0, 0, 0, 9485, 9486, 7, 9, 0, 0, 9486, 9487, 7, 10, 0, 0, 9487, 9488, 7, 5, 0, 0, 9488, 9489, 7, 21, 0, 0, 9489, 9490, 7, 5, 0, 0, 9490, 882, 1, 0, 0, 0, 9491, 9492, 7, 9, 0, 0, 9492, 9493, 7, 10, 0, 0, 9493, 9494, 7, 5, 0, 0, 9494, 9495, 7, 14, 0, 0, 9495, 9496, 7, 2, 0, 0, 9496, 9497, 7, 12, 0, 0, 9497, 9498, 7, 7, 0, 0, 9498, 9499, 7, 4, 0, 0, 9499, 884, 1, 0, 0, 0, 9500, 9501, 7, 9, 0, 0, 9501, 9502, 7, 10, 0, 0, 9502, 9503, 7, 5, 0, 0, 9503, 9504, 7, 4, 0, 0, 9504, 9505, 7, 10, 0, 0, 9505, 9506, 7, 7, 0, 0, 9506, 9507, 7, 8, 0, 0, 9507, 9508, 7, 4, 0, 0, 9508, 886, 1, 0, 0, 0, 9509, 9510, 7, 9, 0, 0, 9510, 9511, 7, 10, 0, 0, 9511, 9512, 7, 5, 0, 0, 9512, 9513, 7, 4, 0, 0, 9513, 9514, 7, 10, 0, 0, 9514, 9515, 7, 7, 0, 0, 9515, 9516, 7, 17, 0, 0, 9516, 9517, 7, 12, 0, 0, 9517, 9518, 7, 10, 0, 0, 9518, 9519, 7, 5, 0, 0, 9519, 9520, 7, 19, 0, 0, 9520, 9521, 7, 6, 0, 0, 9521, 9522, 7, 9, 0, 0, 9522, 888, 1, 0, 0, 0, 9523, 9524, 7, 9, 0, 0, 9524, 9525, 7, 10, 0, 0, 9525, 9526, 7, 5, 0, 0, 9526, 9527, 7, 4, 0, 0, 9527, 9528, 7, 3, 0, 0, 9528, 9529, 7, 10, 0, 0, 9529, 9530, 7, 1, 0, 0, 9530, 9531, 7, 12, 0, 0, 9531, 9532, 7, 4, 0, 0, 9532, 9533, 7, 6, 0, 0, 9533, 9534, 7, 9, 0, 0, 9534, 890, 1, 0, 0, 0, 9535, 9536, 7, 9, 0, 0, 9536, 9537, 7, 10, 0, 0, 9537, 9538, 7, 5, 0, 0, 9538, 9539, 7, 4, 0, 0, 9539, 9540, 7, 3, 0, 0, 9540, 9541, 7, 10, 0, 0, 9541, 9542, 7, 1, 0, 0, 9542, 9543, 7, 12, 0, 0, 9543, 9544, 7, 4, 0, 0, 9544, 9545, 7, 6, 0, 0, 9545, 892, 1, 0, 0, 0, 9546, 9547, 7, 9, 0, 0, 9547, 9548, 7, 14, 0, 0, 9548, 9549, 7, 11, 0, 0, 9549, 894, 1, 0, 0, 0, 9550, 9551, 7, 9, 0, 0, 9551, 9552, 7, 14, 0, 0, 9552, 9553, 7, 11, 0, 0, 9553, 9554, 5, 95, 0, 0, 9554, 9555, 7, 12, 0, 0, 9555, 9556, 7, 15, 0, 0, 9556, 9557, 7, 9, 0, 0, 9557, 9558, 7, 0, 0, 0, 9558, 9559, 7, 4, 0, 0, 9559, 9560, 7, 6, 0, 0, 9560, 896, 1, 0, 0, 0, 9561, 9562, 7, 9, 0, 0, 9562, 9563, 7, 7, 0, 0, 9563, 9564, 7, 16, 0, 0, 9564, 9565, 7, 5, 0, 0, 9565, 9566, 5, 95, 0, 0, 9566, 9567, 7, 9, 0, 0, 9567, 9568, 7, 10, 0, 0, 9568, 9569, 7, 5, 0, 0, 9569, 9570, 7, 0, 0, 0, 9570, 9571, 7, 1, 0, 0, 9571, 9572, 7, 11, 0, 0, 9572, 9573, 7, 6, 0, 0, 9573, 898, 1, 0, 0, 0, 9574, 9575, 7, 9, 0, 0, 9575, 9576, 7, 7, 0, 0, 9576, 9577, 7, 16, 0, 0, 9577, 9578, 7, 5, 0, 0, 9578, 9579, 5, 95, 0, 0, 9579, 9580, 7, 6, 0, 0, 9580, 9581, 7, 7, 0, 0, 9581, 9582, 7, 0, 0, 0, 9582, 9583, 7, 1, 0, 0, 9583, 9584, 7, 11, 0, 0, 9584, 9585, 7, 6, 0, 0, 9585, 900, 1, 0, 0, 0, 9586, 9587, 7, 9, 0, 0, 9587, 9588, 7, 7, 0, 0, 9588, 9589, 7, 16, 0, 0, 9589, 9590, 7, 5, 0, 0, 9590, 9591, 5, 95, 0, 0, 9591, 9592, 7, 3, 0, 0, 9592, 9593, 7, 6, 0, 0, 9593, 9594, 7, 0, 0, 0, 9594, 9595, 7, 9, 0, 0, 9595, 9596, 7, 1, 0, 0, 9596, 9597, 7, 12, 0, 0, 9597, 9598, 7, 16, 0, 0, 9598, 9599, 7, 16, 0, 0, 9599, 9600, 7, 6, 0, 0, 9600, 9601, 7, 3, 0, 0, 9601, 9602, 7, 5, 0, 0, 9602, 902, 1, 0, 0, 0, 9603, 9604, 7, 9, 0, 0, 9604, 9605, 7, 2, 0, 0, 9605, 9606, 7, 8, 0, 0, 9606, 9607, 7, 16, 0, 0, 9607, 9608, 7, 10, 0, 0, 9608, 9609, 7, 9, 0, 0, 9609, 9610, 7, 6, 0, 0, 9610, 9611, 7, 11, 0, 0, 9611, 9612, 7, 10, 0, 0, 9612, 9613, 7, 4, 0, 0, 9613, 9614, 7, 18, 0, 0, 9614, 904, 1, 0, 0, 0, 9615, 9616, 7, 9, 0, 0, 9616, 9617, 7, 2, 0, 0, 9617, 9618, 7, 8, 0, 0, 9618, 9619, 7, 12, 0, 0, 9619, 9620, 7, 14, 0, 0, 9620, 9621, 7, 6, 0, 0, 9621, 9622, 7, 7, 0, 0, 9622, 9623, 7, 4, 0, 0, 9623, 906, 1, 0, 0, 0, 9624, 9625, 5, 36, 0, 0, 9625, 9626, 7, 6, 0, 0, 9626, 9627, 7, 11, 0, 0, 9627, 9628, 7, 5, 0, 0, 9628, 9629, 7, 6, 0, 0, 9629, 908, 1, 0, 0, 0, 9630, 9631, 5, 36, 0, 0, 9631, 9632, 7, 6, 0, 0, 9632, 9633, 7, 11, 0, 0, 9633, 9634, 7, 5, 0, 0, 9634, 9635, 7, 10, 0, 0, 9635, 9636, 7, 16, 0, 0, 9636, 910, 1, 0, 0, 0, 9637, 9638, 5, 36, 0, 0, 9638, 9639, 7, 6, 0, 0, 9639, 9640, 7, 7, 0, 0, 9640, 9641, 7, 9, 0, 0, 9641, 912, 1, 0, 0, 0, 9642, 9643, 5, 36, 0, 0, 9643, 9644, 7, 6, 0, 0, 9644, 9645, 7, 3, 0, 0, 9645, 9646, 7, 3, 0, 0, 9646, 9647, 7, 2, 0, 0, 9647, 9648, 7, 3, 0, 0, 9648, 914, 1, 0, 0, 0, 9649, 9650, 5, 36, 0, 0, 9650, 9651, 7, 10, 0, 0, 9651, 9652, 7, 16, 0, 0, 9652, 916, 1, 0, 0, 0, 9653, 9654, 5, 36, 0, 0, 9654, 9655, 7, 4, 0, 0, 9655, 9656, 7, 19, 0, 0, 9656, 9657, 7, 6, 0, 0, 9657, 9658, 7, 7, 0, 0, 9658, 918, 1, 0, 0, 0, 9659, 9660, 7, 9, 0, 0, 9660, 9661, 7, 2, 0, 0, 9661, 9662, 7, 14, 0, 0, 9662, 9663, 7, 0, 0, 0, 9663, 9664, 7, 10, 0, 0, 9664, 9665, 7, 7, 0, 0, 9665, 9666, 5, 95, 0, 0, 9666, 9667, 7, 10, 0, 0, 9667, 9668, 7, 7, 0, 0, 9668, 9669, 7, 9, 0, 0, 9669, 9670, 7, 6, 0, 0, 9670, 9671, 7, 25, 0, 0, 9671, 9672, 5, 95, 0, 0, 9672, 9673, 7, 16, 0, 0, 9673, 9674, 7, 10, 0, 0, 9674, 9675, 7, 11, 0, 0, 9675, 9676, 7, 4, 0, 0, 9676, 9677, 7, 6, 0, 0, 9677, 9678, 7, 3, 0, 0, 9678, 920, 1, 0, 0, 0, 9679, 9680, 7, 9, 0, 0, 9680, 9681, 7, 2, 0, 0, 9681, 9682, 7, 14, 0, 0, 9682, 9683, 7, 0, 0, 0, 9683, 9684, 7, 10, 0, 0, 9684, 9685, 7, 7, 0, 0, 9685, 9686, 5, 95, 0, 0, 9686, 9687, 7, 10, 0, 0, 9687, 9688, 7, 7, 0, 0, 9688, 9689, 7, 9, 0, 0, 9689, 9690, 7, 6, 0, 0, 9690, 9691, 7, 25, 0, 0, 9691, 9692, 5, 95, 0, 0, 9692, 9693, 7, 7, 0, 0, 9693, 9694, 7, 2, 0, 0, 9694, 9695, 5, 95, 0, 0, 9695, 9696, 7, 5, 0, 0, 9696, 9697, 7, 2, 0, 0, 9697, 9698, 7, 3, 0, 0, 9698, 9699, 7, 4, 0, 0, 9699, 922, 1, 0, 0, 0, 9700, 9701, 7, 9, 0, 0, 9701, 9702, 7, 2, 0, 0, 9702, 9703, 7, 14, 0, 0, 9703, 9704, 7, 0, 0, 0, 9704, 9705, 7, 10, 0, 0, 9705, 9706, 7, 7, 0, 0, 9706, 9707, 5, 95, 0, 0, 9707, 9708, 7, 10, 0, 0, 9708, 9709, 7, 7, 0, 0, 9709, 9710, 7, 9, 0, 0, 9710, 9711, 7, 6, 0, 0, 9711, 9712, 7, 25, 0, 0, 9712, 9713, 5, 95, 0, 0, 9713, 9714, 7, 5, 0, 0, 9714, 9715, 7, 2, 0, 0, 9715, 9716, 7, 3, 0, 0, 9716, 9717, 7, 4, 0, 0, 9717, 924, 1, 0, 0, 0, 9718, 9719, 7, 9, 0, 0, 9719, 9720, 7, 2, 0, 0, 9720, 9721, 7, 12, 0, 0, 9721, 9722, 7, 1, 0, 0, 9722, 9723, 7, 11, 0, 0, 9723, 9724, 7, 6, 0, 0, 9724, 926, 1, 0, 0, 0, 9725, 9726, 7, 9, 0, 0, 9726, 9727, 7, 2, 0, 0, 9727, 9728, 7, 22, 0, 0, 9728, 9729, 7, 7, 0, 0, 9729, 9730, 7, 17, 0, 0, 9730, 9731, 7, 3, 0, 0, 9731, 9732, 7, 0, 0, 0, 9732, 9733, 7, 9, 0, 0, 9733, 9734, 7, 6, 0, 0, 9734, 928, 1, 0, 0, 0, 9735, 9736, 7, 9, 0, 0, 9736, 9737, 7, 3, 0, 0, 9737, 9738, 7, 10, 0, 0, 9738, 9739, 7, 13, 0, 0, 9739, 9740, 7, 10, 0, 0, 9740, 9741, 7, 7, 0, 0, 9741, 9742, 7, 17, 0, 0, 9742, 9743, 5, 95, 0, 0, 9743, 9744, 7, 5, 0, 0, 9744, 9745, 7, 10, 0, 0, 9745, 9746, 7, 4, 0, 0, 9746, 9747, 7, 6, 0, 0, 9747, 930, 1, 0, 0, 0, 9748, 9749, 7, 9, 0, 0, 9749, 9750, 7, 3, 0, 0, 9750, 9751, 7, 2, 0, 0, 9751, 9752, 7, 15, 0, 0, 9752, 9753, 5, 95, 0, 0, 9753, 9754, 7, 8, 0, 0, 9754, 9755, 7, 2, 0, 0, 9755, 9756, 7, 11, 0, 0, 9756, 9757, 7, 12, 0, 0, 9757, 9758, 7, 14, 0, 0, 9758, 9759, 7, 7, 0, 0, 9759, 932, 1, 0, 0, 0, 9760, 9761, 7, 9, 0, 0, 9761, 9762, 7, 3, 0, 0, 9762, 9763, 7, 2, 0, 0, 9763, 9764, 7, 15, 0, 0, 9764, 934, 1, 0, 0, 0, 9765, 9766, 7, 9, 0, 0, 9766, 9767, 7, 3, 0, 0, 9767, 9768, 7, 2, 0, 0, 9768, 9769, 7, 15, 0, 0, 9769, 9770, 5, 95, 0, 0, 9770, 9771, 7, 17, 0, 0, 9771, 9772, 7, 3, 0, 0, 9772, 9773, 7, 2, 0, 0, 9773, 9774, 7, 12, 0, 0, 9774, 9775, 7, 15, 0, 0, 9775, 936, 1, 0, 0, 0, 9776, 9777, 7, 9, 0, 0, 9777, 9778, 7, 5, 0, 0, 9778, 9779, 7, 10, 0, 0, 9779, 9780, 7, 7, 0, 0, 9780, 9781, 7, 4, 0, 0, 9781, 9782, 7, 6, 0, 0, 9782, 9783, 7, 3, 0, 0, 9783, 9784, 7, 13, 0, 0, 9784, 9785, 7, 0, 0, 0, 9785, 9786, 7, 11, 0, 0, 9786, 9787, 5, 95, 0, 0, 9787, 9788, 7, 12, 0, 0, 9788, 9789, 7, 7, 0, 0, 9789, 9790, 7, 8, 0, 0, 9790, 9791, 7, 2, 0, 0, 9791, 9792, 7, 7, 0, 0, 9792, 9793, 7, 5, 0, 0, 9793, 9794, 7, 4, 0, 0, 9794, 9795, 7, 3, 0, 0, 9795, 9796, 7, 0, 0, 0, 9796, 9797, 7, 10, 0, 0, 9797, 9798, 7, 7, 0, 0, 9798, 9799, 7, 6, 0, 0, 9799, 9800, 7, 9, 0, 0, 9800, 938, 1, 0, 0, 0, 9801, 9802, 7, 9, 0, 0, 9802, 9803, 7, 5, 0, 0, 9803, 9804, 7, 4, 0, 0, 9804, 9805, 5, 95, 0, 0, 9805, 9806, 7, 12, 0, 0, 9806, 9807, 7, 15, 0, 0, 9807, 9808, 7, 17, 0, 0, 9808, 9809, 7, 3, 0, 0, 9809, 9810, 7, 0, 0, 0, 9810, 9811, 7, 9, 0, 0, 9811, 9812, 7, 6, 0, 0, 9812, 9813, 5, 95, 0, 0, 9813, 9814, 7, 10, 0, 0, 9814, 9815, 7, 7, 0, 0, 9815, 9816, 7, 5, 0, 0, 9816, 9817, 7, 6, 0, 0, 9817, 9818, 7, 3, 0, 0, 9818, 9819, 7, 4, 0, 0, 9819, 9820, 5, 95, 0, 0, 9820, 9821, 7, 8, 0, 0, 9821, 9822, 7, 2, 0, 0, 9822, 9823, 7, 7, 0, 0, 9823, 9824, 7, 13, 0, 0, 9824, 940, 1, 0, 0, 0, 9825, 9826, 7, 9, 0, 0, 9826, 9827, 7, 12, 0, 0, 9827, 9828, 7, 14, 0, 0, 9828, 9829, 7, 15, 0, 0, 9829, 942, 1, 0, 0, 0, 9830, 9831, 7, 9, 0, 0, 9831, 9832, 7, 12, 0, 0, 9832, 9833, 7, 14, 0, 0, 9833, 9834, 7, 15, 0, 0, 9834, 9835, 7, 5, 0, 0, 9835, 9836, 7, 6, 0, 0, 9836, 9837, 7, 4, 0, 0, 9837, 944, 1, 0, 0, 0, 9838, 9839, 7, 9, 0, 0, 9839, 9840, 7, 12, 0, 0, 9840, 9841, 7, 15, 0, 0, 9841, 9842, 7, 11, 0, 0, 9842, 9843, 7, 10, 0, 0, 9843, 9844, 7, 8, 0, 0, 9844, 9845, 7, 0, 0, 0, 9845, 9846, 7, 4, 0, 0, 9846, 9847, 7, 6, 0, 0, 9847, 946, 1, 0, 0, 0, 9848, 9849, 7, 9, 0, 0, 9849, 9850, 7, 13, 0, 0, 9850, 948, 1, 0, 0, 0, 9851, 9852, 7, 9, 0, 0, 9852, 9853, 7, 18, 0, 0, 9853, 9854, 7, 7, 0, 0, 9854, 9855, 7, 0, 0, 0, 9855, 9856, 7, 14, 0, 0, 9856, 9857, 7, 10, 0, 0, 9857, 9858, 7, 8, 0, 0, 9858, 950, 1, 0, 0, 0, 9859, 9860, 7, 9, 0, 0, 9860, 9861, 7, 18, 0, 0, 9861, 9862, 7, 7, 0, 0, 9862, 9863, 7, 0, 0, 0, 9863, 9864, 7, 14, 0, 0, 9864, 9865, 7, 10, 0, 0, 9865, 9866, 7, 8, 0, 0, 9866, 9867, 5, 95, 0, 0, 9867, 9868, 7, 5, 0, 0, 9868, 9869, 7, 0, 0, 0, 9869, 9870, 7, 14, 0, 0, 9870, 9871, 7, 15, 0, 0, 9871, 9872, 7, 11, 0, 0, 9872, 9873, 7, 10, 0, 0, 9873, 9874, 7, 7, 0, 0, 9874, 9875, 7, 17, 0, 0, 9875, 952, 1, 0, 0, 0, 9876, 9877, 7, 9, 0, 0, 9877, 9878, 7, 18, 0, 0, 9878, 9879, 7, 7, 0, 0, 9879, 9880, 7, 0, 0, 0, 9880, 9881, 7, 14, 0, 0, 9881, 9882, 7, 10, 0, 0, 9882, 9883, 7, 8, 0, 0, 9883, 9884, 5, 95, 0, 0, 9884, 9885, 7, 5, 0, 0, 9885, 9886, 7, 0, 0, 0, 9886, 9887, 7, 14, 0, 0, 9887, 9888, 7, 15, 0, 0, 9888, 9889, 7, 11, 0, 0, 9889, 9890, 7, 10, 0, 0, 9890, 9891, 7, 7, 0, 0, 9891, 9892, 7, 17, 0, 0, 9892, 9893, 5, 95, 0, 0, 9893, 9894, 7, 6, 0, 0, 9894, 9895, 7, 5, 0, 0, 9895, 9896, 7, 4, 0, 0, 9896, 9897, 5, 95, 0, 0, 9897, 9898, 7, 8, 0, 0, 9898, 9899, 7, 9, 0, 0, 9899, 9900, 7, 7, 0, 0, 9900, 954, 1, 0, 0, 0, 9901, 9902, 7, 6, 0, 0, 9902, 956, 1, 0, 0, 0, 9903, 9904, 7, 6, 0, 0, 9904, 9905, 7, 0, 0, 0, 9905, 9906, 7, 8, 0, 0, 9906, 9907, 7, 19, 0, 0, 9907, 958, 1, 0, 0, 0, 9908, 9909, 7, 6, 0, 0, 9909, 9910, 7, 9, 0, 0, 9910, 9911, 7, 10, 0, 0, 9911, 9912, 7, 4, 0, 0, 9912, 9913, 7, 10, 0, 0, 9913, 9914, 7, 2, 0, 0, 9914, 9915, 7, 7, 0, 0, 9915, 9916, 7, 0, 0, 0, 9916, 9917, 7, 1, 0, 0, 9917, 9918, 7, 11, 0, 0, 9918, 9919, 7, 6, 0, 0, 9919, 960, 1, 0, 0, 0, 9920, 9921, 7, 6, 0, 0, 9921, 9922, 7, 9, 0, 0, 9922, 9923, 7, 10, 0, 0, 9923, 9924, 7, 4, 0, 0, 9924, 9925, 7, 10, 0, 0, 9925, 9926, 7, 2, 0, 0, 9926, 9927, 7, 7, 0, 0, 9927, 962, 1, 0, 0, 0, 9928, 9929, 7, 6, 0, 0, 9929, 9930, 7, 9, 0, 0, 9930, 9931, 7, 10, 0, 0, 9931, 9932, 7, 4, 0, 0, 9932, 9933, 7, 10, 0, 0, 9933, 9934, 7, 2, 0, 0, 9934, 9935, 7, 7, 0, 0, 9935, 9936, 7, 10, 0, 0, 9936, 9937, 7, 7, 0, 0, 9937, 9938, 7, 17, 0, 0, 9938, 964, 1, 0, 0, 0, 9939, 9940, 7, 6, 0, 0, 9940, 9941, 7, 9, 0, 0, 9941, 9942, 7, 10, 0, 0, 9942, 9943, 7, 4, 0, 0, 9943, 9944, 7, 10, 0, 0, 9944, 9945, 7, 2, 0, 0, 9945, 9946, 7, 7, 0, 0, 9946, 9947, 7, 5, 0, 0, 9947, 966, 1, 0, 0, 0, 9948, 9949, 7, 6, 0, 0, 9949, 9950, 7, 11, 0, 0, 9950, 9951, 7, 6, 0, 0, 9951, 9952, 7, 14, 0, 0, 9952, 9953, 7, 6, 0, 0, 9953, 9954, 7, 7, 0, 0, 9954, 9955, 7, 4, 0, 0, 9955, 968, 1, 0, 0, 0, 9956, 9957, 7, 6, 0, 0, 9957, 9958, 7, 11, 0, 0, 9958, 9959, 7, 10, 0, 0, 9959, 9960, 7, 14, 0, 0, 9960, 9961, 5, 95, 0, 0, 9961, 9962, 7, 17, 0, 0, 9962, 9963, 7, 3, 0, 0, 9963, 9964, 7, 2, 0, 0, 9964, 9965, 7, 12, 0, 0, 9965, 9966, 7, 15, 0, 0, 9966, 9967, 7, 1, 0, 0, 9967, 9968, 7, 18, 0, 0, 9968, 970, 1, 0, 0, 0, 9969, 9970, 7, 6, 0, 0, 9970, 9971, 7, 11, 0, 0, 9971, 9972, 7, 10, 0, 0, 9972, 9973, 7, 14, 0, 0, 9973, 9974, 7, 10, 0, 0, 9974, 9975, 7, 7, 0, 0, 9975, 9976, 7, 0, 0, 0, 9976, 9977, 7, 4, 0, 0, 9977, 9978, 7, 6, 0, 0, 9978, 9979, 5, 95, 0, 0, 9979, 9980, 7, 20, 0, 0, 9980, 9981, 7, 2, 0, 0, 9981, 9982, 7, 10, 0, 0, 9982, 9983, 7, 7, 0, 0, 9983, 972, 1, 0, 0, 0, 9984, 9985, 7, 6, 0, 0, 9985, 9986, 7, 11, 0, 0, 9986, 9987, 7, 10, 0, 0, 9987, 9988, 7, 14, 0, 0, 9988, 9989, 7, 10, 0, 0, 9989, 9990, 7, 7, 0, 0, 9990, 9991, 7, 0, 0, 0, 9991, 9992, 7, 4, 0, 0, 9992, 9993, 7, 6, 0, 0, 9993, 9994, 5, 95, 0, 0, 9994, 9995, 7, 2, 0, 0, 9995, 9996, 7, 1, 0, 0, 9996, 9997, 7, 18, 0, 0, 9997, 974, 1, 0, 0, 0, 9998, 9999, 7, 6, 0, 0, 9999, 10000, 7, 11, 0, 0, 10000, 10001, 7, 10, 0, 0, 10001, 10002, 7, 14, 0, 0, 10002, 10003, 7, 10, 0, 0, 10003, 10004, 7, 7, 0, 0, 10004, 10005, 7, 0, 0, 0, 10005, 10006, 7, 4, 0, 0, 10006, 10007, 7, 6, 0, 0, 10007, 10008, 5, 95, 0, 0, 10008, 10009, 7, 2, 0, 0, 10009, 10010, 7, 12, 0, 0, 10010, 10011, 7, 4, 0, 0, 10011, 10012, 7, 6, 0, 0, 10012, 10013, 7, 3, 0, 0, 10013, 10014, 5, 95, 0, 0, 10014, 10015, 7, 20, 0, 0, 10015, 10016, 7, 2, 0, 0, 10016, 10017, 7, 10, 0, 0, 10017, 10018, 7, 7, 0, 0, 10018, 976, 1, 0, 0, 0, 10019, 10020, 7, 6, 0, 0, 10020, 10021, 7, 11, 0, 0, 10021, 10022, 7, 5, 0, 0, 10022, 10023, 7, 6, 0, 0, 10023, 978, 1, 0, 0, 0, 10024, 10025, 7, 6, 0, 0, 10025, 10026, 7, 11, 0, 0, 10026, 10027, 7, 5, 0, 0, 10027, 10028, 7, 10, 0, 0, 10028, 10029, 7, 16, 0, 0, 10029, 980, 1, 0, 0, 0, 10030, 10031, 7, 6, 0, 0, 10031, 10032, 7, 14, 0, 0, 10032, 982, 1, 0, 0, 0, 10033, 10034, 7, 6, 0, 0, 10034, 10035, 7, 14, 0, 0, 10035, 10036, 7, 1, 0, 0, 10036, 10037, 7, 6, 0, 0, 10037, 10038, 7, 9, 0, 0, 10038, 10039, 7, 9, 0, 0, 10039, 10040, 7, 6, 0, 0, 10040, 10041, 7, 9, 0, 0, 10041, 984, 1, 0, 0, 0, 10042, 10043, 7, 6, 0, 0, 10043, 10044, 7, 14, 0, 0, 10044, 10045, 7, 15, 0, 0, 10045, 10046, 7, 4, 0, 0, 10046, 10047, 7, 18, 0, 0, 10047, 10048, 5, 95, 0, 0, 10048, 10049, 7, 1, 0, 0, 10049, 10050, 7, 11, 0, 0, 10050, 10051, 7, 2, 0, 0, 10051, 10052, 7, 1, 0, 0, 10052, 986, 1, 0, 0, 0, 10053, 10054, 7, 6, 0, 0, 10054, 10055, 7, 14, 0, 0, 10055, 10056, 7, 15, 0, 0, 10056, 10057, 7, 4, 0, 0, 10057, 10058, 7, 18, 0, 0, 10058, 10059, 5, 95, 0, 0, 10059, 10060, 7, 8, 0, 0, 10060, 10061, 7, 11, 0, 0, 10061, 10062, 7, 2, 0, 0, 10062, 10063, 7, 1, 0, 0, 10063, 988, 1, 0, 0, 0, 10064, 10065, 7, 6, 0, 0, 10065, 10066, 7, 14, 0, 0, 10066, 10067, 7, 15, 0, 0, 10067, 10068, 7, 4, 0, 0, 10068, 10069, 7, 18, 0, 0, 10069, 990, 1, 0, 0, 0, 10070, 10071, 7, 6, 0, 0, 10071, 10072, 7, 7, 0, 0, 10072, 10073, 7, 0, 0, 0, 10073, 10074, 7, 1, 0, 0, 10074, 10075, 7, 11, 0, 0, 10075, 10076, 7, 6, 0, 0, 10076, 10077, 5, 95, 0, 0, 10077, 10078, 7, 0, 0, 0, 10078, 10079, 7, 11, 0, 0, 10079, 10080, 7, 11, 0, 0, 10080, 992, 1, 0, 0, 0, 10081, 10082, 7, 6, 0, 0, 10082, 10083, 7, 7, 0, 0, 10083, 10084, 7, 0, 0, 0, 10084, 10085, 7, 1, 0, 0, 10085, 10086, 7, 11, 0, 0, 10086, 10087, 7, 6, 0, 0, 10087, 994, 1, 0, 0, 0, 10088, 10089, 7, 6, 0, 0, 10089, 10090, 7, 7, 0, 0, 10090, 10091, 7, 0, 0, 0, 10091, 10092, 7, 1, 0, 0, 10092, 10093, 7, 11, 0, 0, 10093, 10094, 7, 6, 0, 0, 10094, 10095, 7, 9, 0, 0, 10095, 996, 1, 0, 0, 0, 10096, 10097, 7, 6, 0, 0, 10097, 10098, 7, 7, 0, 0, 10098, 10099, 7, 0, 0, 0, 10099, 10100, 7, 1, 0, 0, 10100, 10101, 7, 11, 0, 0, 10101, 10102, 7, 6, 0, 0, 10102, 10103, 5, 95, 0, 0, 10103, 10104, 7, 15, 0, 0, 10104, 10105, 7, 0, 0, 0, 10105, 10106, 7, 3, 0, 0, 10106, 10107, 7, 0, 0, 0, 10107, 10108, 7, 11, 0, 0, 10108, 10109, 7, 11, 0, 0, 10109, 10110, 7, 6, 0, 0, 10110, 10111, 7, 11, 0, 0, 10111, 10112, 5, 95, 0, 0, 10112, 10113, 7, 9, 0, 0, 10113, 10114, 7, 14, 0, 0, 10114, 10115, 7, 11, 0, 0, 10115, 998, 1, 0, 0, 0, 10116, 10117, 7, 6, 0, 0, 10117, 10118, 7, 7, 0, 0, 10118, 10119, 7, 0, 0, 0, 10119, 10120, 7, 1, 0, 0, 10120, 10121, 7, 11, 0, 0, 10121, 10122, 7, 6, 0, 0, 10122, 10123, 5, 95, 0, 0, 10123, 10124, 7, 15, 0, 0, 10124, 10125, 7, 3, 0, 0, 10125, 10126, 7, 6, 0, 0, 10126, 10127, 7, 5, 0, 0, 10127, 10128, 7, 6, 0, 0, 10128, 10129, 7, 4, 0, 0, 10129, 1000, 1, 0, 0, 0, 10130, 10131, 7, 6, 0, 0, 10131, 10132, 7, 7, 0, 0, 10132, 10133, 7, 8, 0, 0, 10133, 10134, 7, 11, 0, 0, 10134, 10135, 7, 2, 0, 0, 10135, 10136, 7, 5, 0, 0, 10136, 10137, 7, 6, 0, 0, 10137, 10138, 7, 9, 0, 0, 10138, 1002, 1, 0, 0, 0, 10139, 10140, 7, 6, 0, 0, 10140, 10141, 7, 7, 0, 0, 10141, 10142, 7, 8, 0, 0, 10142, 10143, 7, 2, 0, 0, 10143, 10144, 7, 9, 0, 0, 10144, 10145, 7, 10, 0, 0, 10145, 10146, 7, 7, 0, 0, 10146, 10147, 7, 17, 0, 0, 10147, 1004, 1, 0, 0, 0, 10148, 10149, 7, 6, 0, 0, 10149, 10150, 7, 7, 0, 0, 10150, 10151, 7, 8, 0, 0, 10151, 10152, 7, 3, 0, 0, 10152, 10153, 7, 18, 0, 0, 10153, 10154, 7, 15, 0, 0, 10154, 10155, 7, 4, 0, 0, 10155, 1006, 1, 0, 0, 0, 10156, 10157, 7, 6, 0, 0, 10157, 10158, 7, 7, 0, 0, 10158, 10159, 7, 8, 0, 0, 10159, 10160, 7, 3, 0, 0, 10160, 10161, 7, 18, 0, 0, 10161, 10162, 7, 15, 0, 0, 10162, 10163, 7, 4, 0, 0, 10163, 10164, 7, 10, 0, 0, 10164, 10165, 7, 2, 0, 0, 10165, 10166, 7, 7, 0, 0, 10166, 1008, 1, 0, 0, 0, 10167, 10168, 7, 6, 0, 0, 10168, 10169, 7, 7, 0, 0, 10169, 10170, 7, 8, 0, 0, 10170, 10171, 7, 3, 0, 0, 10171, 10172, 7, 18, 0, 0, 10172, 10173, 7, 15, 0, 0, 10173, 10174, 7, 4, 0, 0, 10174, 10175, 7, 15, 0, 0, 10175, 10176, 7, 0, 0, 0, 10176, 10177, 7, 5, 0, 0, 10177, 10178, 7, 5, 0, 0, 10178, 10179, 7, 22, 0, 0, 10179, 10180, 7, 2, 0, 0, 10180, 10181, 7, 3, 0, 0, 10181, 10182, 7, 9, 0, 0, 10182, 10183, 7, 10, 0, 0, 10183, 10184, 7, 5, 0, 0, 10184, 10185, 7, 7, 0, 0, 10185, 10186, 7, 12, 0, 0, 10186, 10187, 7, 11, 0, 0, 10187, 10188, 7, 11, 0, 0, 10188, 1010, 1, 0, 0, 0, 10189, 10190, 7, 6, 0, 0, 10190, 10191, 7, 7, 0, 0, 10191, 10192, 7, 9, 0, 0, 10192, 1012, 1, 0, 0, 0, 10193, 10194, 7, 6, 0, 0, 10194, 10195, 7, 7, 0, 0, 10195, 10196, 7, 9, 0, 0, 10196, 10197, 5, 95, 0, 0, 10197, 10198, 7, 2, 0, 0, 10198, 10199, 7, 12, 0, 0, 10199, 10200, 7, 4, 0, 0, 10200, 10201, 7, 11, 0, 0, 10201, 10202, 7, 10, 0, 0, 10202, 10203, 7, 7, 0, 0, 10203, 10204, 7, 6, 0, 0, 10204, 10205, 5, 95, 0, 0, 10205, 10206, 7, 9, 0, 0, 10206, 10207, 7, 0, 0, 0, 10207, 10208, 7, 4, 0, 0, 10208, 10209, 7, 0, 0, 0, 10209, 1014, 1, 0, 0, 0, 10210, 10211, 7, 6, 0, 0, 10211, 10212, 7, 7, 0, 0, 10212, 10213, 7, 9, 0, 0, 10213, 10214, 7, 10, 0, 0, 10214, 10215, 7, 0, 0, 0, 10215, 10216, 7, 7, 0, 0, 10216, 1016, 1, 0, 0, 0, 10217, 10218, 7, 6, 0, 0, 10218, 10219, 7, 7, 0, 0, 10219, 10220, 7, 16, 0, 0, 10220, 10221, 7, 2, 0, 0, 10221, 10222, 7, 3, 0, 0, 10222, 10223, 7, 8, 0, 0, 10223, 10224, 7, 6, 0, 0, 10224, 10225, 7, 9, 0, 0, 10225, 1018, 1, 0, 0, 0, 10226, 10227, 7, 6, 0, 0, 10227, 10228, 7, 7, 0, 0, 10228, 10229, 7, 16, 0, 0, 10229, 10230, 7, 2, 0, 0, 10230, 10231, 7, 3, 0, 0, 10231, 10232, 7, 8, 0, 0, 10232, 10233, 7, 6, 0, 0, 10233, 1020, 1, 0, 0, 0, 10234, 10235, 7, 6, 0, 0, 10235, 10236, 7, 7, 0, 0, 10236, 10237, 7, 24, 0, 0, 10237, 10238, 7, 12, 0, 0, 10238, 10239, 7, 6, 0, 0, 10239, 10240, 7, 12, 0, 0, 10240, 10241, 7, 6, 0, 0, 10241, 1022, 1, 0, 0, 0, 10242, 10243, 7, 6, 0, 0, 10243, 10244, 7, 7, 0, 0, 10244, 10245, 7, 4, 0, 0, 10245, 10246, 7, 6, 0, 0, 10246, 10247, 7, 3, 0, 0, 10247, 10248, 7, 15, 0, 0, 10248, 10249, 7, 3, 0, 0, 10249, 10250, 7, 10, 0, 0, 10250, 10251, 7, 5, 0, 0, 10251, 10252, 7, 6, 0, 0, 10252, 1024, 1, 0, 0, 0, 10253, 10254, 7, 6, 0, 0, 10254, 10255, 7, 7, 0, 0, 10255, 10256, 7, 4, 0, 0, 10256, 10257, 7, 10, 0, 0, 10257, 10258, 7, 4, 0, 0, 10258, 10259, 7, 18, 0, 0, 10259, 10260, 7, 6, 0, 0, 10260, 10261, 7, 5, 0, 0, 10261, 10262, 7, 8, 0, 0, 10262, 10263, 7, 0, 0, 0, 10263, 10264, 7, 15, 0, 0, 10264, 10265, 7, 10, 0, 0, 10265, 10266, 7, 7, 0, 0, 10266, 10267, 7, 17, 0, 0, 10267, 1026, 1, 0, 0, 0, 10268, 10269, 7, 6, 0, 0, 10269, 10270, 7, 7, 0, 0, 10270, 10271, 7, 4, 0, 0, 10271, 10272, 7, 3, 0, 0, 10272, 10273, 7, 18, 0, 0, 10273, 1028, 1, 0, 0, 0, 10274, 10275, 7, 6, 0, 0, 10275, 10276, 7, 24, 0, 0, 10276, 10277, 7, 12, 0, 0, 10277, 10278, 7, 10, 0, 0, 10278, 10279, 7, 15, 0, 0, 10279, 10280, 7, 0, 0, 0, 10280, 10281, 7, 3, 0, 0, 10281, 10282, 7, 4, 0, 0, 10282, 1030, 1, 0, 0, 0, 10283, 10284, 7, 6, 0, 0, 10284, 10285, 7, 3, 0, 0, 10285, 10286, 7, 3, 0, 0, 10286, 1032, 1, 0, 0, 0, 10287, 10288, 7, 6, 0, 0, 10288, 10289, 7, 3, 0, 0, 10289, 10290, 7, 3, 0, 0, 10290, 10291, 7, 2, 0, 0, 10291, 10292, 7, 3, 0, 0, 10292, 10293, 5, 95, 0, 0, 10293, 10294, 7, 0, 0, 0, 10294, 10295, 7, 3, 0, 0, 10295, 10296, 7, 17, 0, 0, 10296, 10297, 7, 12, 0, 0, 10297, 10298, 7, 14, 0, 0, 10298, 10299, 7, 6, 0, 0, 10299, 10300, 7, 7, 0, 0, 10300, 10301, 7, 4, 0, 0, 10301, 1034, 1, 0, 0, 0, 10302, 10303, 7, 6, 0, 0, 10303, 10304, 7, 3, 0, 0, 10304, 10305, 7, 3, 0, 0, 10305, 10306, 7, 2, 0, 0, 10306, 10307, 7, 3, 0, 0, 10307, 1036, 1, 0, 0, 0, 10308, 10309, 7, 6, 0, 0, 10309, 10310, 7, 3, 0, 0, 10310, 10311, 7, 3, 0, 0, 10311, 10312, 7, 2, 0, 0, 10312, 10313, 7, 3, 0, 0, 10313, 10314, 5, 95, 0, 0, 10314, 10315, 7, 2, 0, 0, 10315, 10316, 7, 7, 0, 0, 10316, 10317, 5, 95, 0, 0, 10317, 10318, 7, 2, 0, 0, 10318, 10319, 7, 13, 0, 0, 10319, 10320, 7, 6, 0, 0, 10320, 10321, 7, 3, 0, 0, 10321, 10322, 7, 11, 0, 0, 10322, 10323, 7, 0, 0, 0, 10323, 10324, 7, 15, 0, 0, 10324, 10325, 5, 95, 0, 0, 10325, 10326, 7, 4, 0, 0, 10326, 10327, 7, 10, 0, 0, 10327, 10328, 7, 14, 0, 0, 10328, 10329, 7, 6, 0, 0, 10329, 1038, 1, 0, 0, 0, 10330, 10331, 7, 6, 0, 0, 10331, 10332, 7, 3, 0, 0, 10332, 10333, 7, 3, 0, 0, 10333, 10334, 7, 2, 0, 0, 10334, 10335, 7, 3, 0, 0, 10335, 10336, 7, 5, 0, 0, 10336, 1040, 1, 0, 0, 0, 10337, 10338, 7, 6, 0, 0, 10338, 10339, 7, 3, 0, 0, 10339, 10340, 7, 3, 0, 0, 10340, 10341, 7, 2, 0, 0, 10341, 10342, 7, 3, 0, 0, 10342, 10343, 5, 95, 0, 0, 10343, 10344, 7, 10, 0, 0, 10344, 10345, 7, 7, 0, 0, 10345, 10346, 7, 9, 0, 0, 10346, 10347, 7, 6, 0, 0, 10347, 10348, 7, 25, 0, 0, 10348, 1042, 1, 0, 0, 0, 10349, 10350, 7, 6, 0, 0, 10350, 10351, 7, 3, 0, 0, 10351, 10352, 7, 3, 0, 0, 10352, 10353, 7, 2, 0, 0, 10353, 10354, 7, 3, 0, 0, 10354, 10355, 5, 95, 0, 0, 10355, 10356, 7, 8, 0, 0, 10356, 10357, 7, 2, 0, 0, 10357, 10358, 7, 9, 0, 0, 10358, 10359, 7, 6, 0, 0, 10359, 1044, 1, 0, 0, 0, 10360, 10361, 7, 6, 0, 0, 10361, 10362, 7, 5, 0, 0, 10362, 10363, 7, 8, 0, 0, 10363, 10364, 7, 0, 0, 0, 10364, 10365, 7, 15, 0, 0, 10365, 10366, 7, 6, 0, 0, 10366, 1046, 1, 0, 0, 0, 10367, 10368, 7, 6, 0, 0, 10368, 10369, 7, 5, 0, 0, 10369, 10370, 7, 8, 0, 0, 10370, 10371, 7, 0, 0, 0, 10371, 10372, 7, 15, 0, 0, 10372, 10373, 7, 6, 0, 0, 10373, 10374, 7, 9, 0, 0, 10374, 1048, 1, 0, 0, 0, 10375, 10376, 7, 6, 0, 0, 10376, 10377, 7, 5, 0, 0, 10377, 10378, 7, 4, 0, 0, 10378, 10379, 7, 10, 0, 0, 10379, 10380, 7, 14, 0, 0, 10380, 10381, 7, 0, 0, 0, 10381, 10382, 7, 4, 0, 0, 10382, 10383, 7, 6, 0, 0, 10383, 1050, 1, 0, 0, 0, 10384, 10385, 7, 6, 0, 0, 10385, 10386, 7, 13, 0, 0, 10386, 10387, 7, 0, 0, 0, 10387, 10388, 7, 11, 0, 0, 10388, 1052, 1, 0, 0, 0, 10389, 10390, 7, 6, 0, 0, 10390, 10391, 7, 13, 0, 0, 10391, 10392, 7, 0, 0, 0, 10392, 10393, 7, 11, 0, 0, 10393, 10394, 7, 7, 0, 0, 10394, 10395, 7, 0, 0, 0, 10395, 10396, 7, 14, 0, 0, 10396, 10397, 7, 6, 0, 0, 10397, 1054, 1, 0, 0, 0, 10398, 10399, 7, 6, 0, 0, 10399, 10400, 7, 13, 0, 0, 10400, 10401, 7, 0, 0, 0, 10401, 10402, 7, 11, 0, 0, 10402, 10403, 7, 12, 0, 0, 10403, 10404, 7, 0, 0, 0, 10404, 10405, 7, 4, 0, 0, 10405, 10406, 7, 6, 0, 0, 10406, 1056, 1, 0, 0, 0, 10407, 10408, 7, 6, 0, 0, 10408, 10409, 7, 13, 0, 0, 10409, 10410, 7, 0, 0, 0, 10410, 10411, 7, 11, 0, 0, 10411, 10412, 7, 12, 0, 0, 10412, 10413, 7, 0, 0, 0, 10413, 10414, 7, 4, 0, 0, 10414, 10415, 7, 10, 0, 0, 10415, 10416, 7, 2, 0, 0, 10416, 10417, 7, 7, 0, 0, 10417, 1058, 1, 0, 0, 0, 10418, 10419, 7, 6, 0, 0, 10419, 10420, 7, 13, 0, 0, 10420, 10421, 7, 6, 0, 0, 10421, 10422, 7, 7, 0, 0, 10422, 10423, 7, 4, 0, 0, 10423, 10424, 7, 5, 0, 0, 10424, 1060, 1, 0, 0, 0, 10425, 10426, 7, 6, 0, 0, 10426, 10427, 7, 13, 0, 0, 10427, 10428, 7, 6, 0, 0, 10428, 10429, 7, 3, 0, 0, 10429, 10430, 7, 18, 0, 0, 10430, 1062, 1, 0, 0, 0, 10431, 10432, 7, 6, 0, 0, 10432, 10433, 7, 25, 0, 0, 10433, 10434, 7, 8, 0, 0, 10434, 10435, 7, 6, 0, 0, 10435, 10436, 7, 15, 0, 0, 10436, 10437, 7, 4, 0, 0, 10437, 1064, 1, 0, 0, 0, 10438, 10439, 7, 6, 0, 0, 10439, 10440, 7, 25, 0, 0, 10440, 10441, 7, 8, 0, 0, 10441, 10442, 7, 6, 0, 0, 10442, 10443, 7, 15, 0, 0, 10443, 10444, 7, 4, 0, 0, 10444, 10445, 7, 10, 0, 0, 10445, 10446, 7, 2, 0, 0, 10446, 10447, 7, 7, 0, 0, 10447, 1066, 1, 0, 0, 0, 10448, 10449, 7, 6, 0, 0, 10449, 10450, 7, 25, 0, 0, 10450, 10451, 7, 8, 0, 0, 10451, 10452, 7, 6, 0, 0, 10452, 10453, 7, 15, 0, 0, 10453, 10454, 7, 4, 0, 0, 10454, 10455, 7, 10, 0, 0, 10455, 10456, 7, 2, 0, 0, 10456, 10457, 7, 7, 0, 0, 10457, 10458, 5, 95, 0, 0, 10458, 10459, 7, 10, 0, 0, 10459, 10460, 7, 7, 0, 0, 10460, 10461, 7, 10, 0, 0, 10461, 10462, 7, 4, 0, 0, 10462, 1068, 1, 0, 0, 0, 10463, 10464, 7, 6, 0, 0, 10464, 10465, 7, 25, 0, 0, 10465, 10466, 7, 8, 0, 0, 10466, 10467, 7, 6, 0, 0, 10467, 10468, 7, 15, 0, 0, 10468, 10469, 7, 4, 0, 0, 10469, 10470, 7, 10, 0, 0, 10470, 10471, 7, 2, 0, 0, 10471, 10472, 7, 7, 0, 0, 10472, 10473, 7, 5, 0, 0, 10473, 1070, 1, 0, 0, 0, 10474, 10475, 7, 6, 0, 0, 10475, 10476, 7, 25, 0, 0, 10476, 10477, 7, 8, 0, 0, 10477, 10478, 7, 19, 0, 0, 10478, 10479, 7, 0, 0, 0, 10479, 10480, 7, 7, 0, 0, 10480, 10481, 7, 17, 0, 0, 10481, 10482, 7, 6, 0, 0, 10482, 1072, 1, 0, 0, 0, 10483, 10484, 7, 6, 0, 0, 10484, 10485, 7, 25, 0, 0, 10485, 10486, 7, 8, 0, 0, 10486, 10487, 7, 11, 0, 0, 10487, 10488, 7, 12, 0, 0, 10488, 10489, 7, 9, 0, 0, 10489, 10490, 7, 6, 0, 0, 10490, 1074, 1, 0, 0, 0, 10491, 10492, 7, 6, 0, 0, 10492, 10493, 7, 25, 0, 0, 10493, 10494, 7, 8, 0, 0, 10494, 10495, 7, 11, 0, 0, 10495, 10496, 7, 12, 0, 0, 10496, 10497, 7, 9, 0, 0, 10497, 10498, 7, 10, 0, 0, 10498, 10499, 7, 7, 0, 0, 10499, 10500, 7, 17, 0, 0, 10500, 1076, 1, 0, 0, 0, 10501, 10502, 7, 6, 0, 0, 10502, 10503, 7, 25, 0, 0, 10503, 10504, 7, 8, 0, 0, 10504, 10505, 7, 11, 0, 0, 10505, 10506, 7, 12, 0, 0, 10506, 10507, 7, 5, 0, 0, 10507, 10508, 7, 10, 0, 0, 10508, 10509, 7, 13, 0, 0, 10509, 10510, 7, 6, 0, 0, 10510, 1078, 1, 0, 0, 0, 10511, 10512, 7, 6, 0, 0, 10512, 10513, 7, 25, 0, 0, 10513, 10514, 7, 6, 0, 0, 10514, 10515, 7, 8, 0, 0, 10515, 10516, 7, 12, 0, 0, 10516, 10517, 7, 4, 0, 0, 10517, 10518, 7, 6, 0, 0, 10518, 1080, 1, 0, 0, 0, 10519, 10520, 7, 6, 0, 0, 10520, 10521, 7, 25, 0, 0, 10521, 10522, 7, 6, 0, 0, 10522, 10523, 7, 14, 0, 0, 10523, 10524, 7, 15, 0, 0, 10524, 10525, 7, 4, 0, 0, 10525, 1082, 1, 0, 0, 0, 10526, 10527, 7, 6, 0, 0, 10527, 10528, 7, 25, 0, 0, 10528, 10529, 7, 10, 0, 0, 10529, 10530, 7, 5, 0, 0, 10530, 10531, 7, 4, 0, 0, 10531, 10532, 7, 10, 0, 0, 10532, 10533, 7, 7, 0, 0, 10533, 10534, 7, 17, 0, 0, 10534, 1084, 1, 0, 0, 0, 10535, 10536, 7, 6, 0, 0, 10536, 10537, 7, 25, 0, 0, 10537, 10538, 7, 10, 0, 0, 10538, 10539, 7, 5, 0, 0, 10539, 10540, 7, 4, 0, 0, 10540, 10541, 7, 5, 0, 0, 10541, 1086, 1, 0, 0, 0, 10542, 10543, 7, 6, 0, 0, 10543, 10544, 7, 25, 0, 0, 10544, 10545, 7, 10, 0, 0, 10545, 10546, 7, 5, 0, 0, 10546, 10547, 7, 4, 0, 0, 10547, 10548, 7, 5, 0, 0, 10548, 10549, 7, 7, 0, 0, 10549, 10550, 7, 2, 0, 0, 10550, 10551, 7, 9, 0, 0, 10551, 10552, 7, 6, 0, 0, 10552, 1088, 1, 0, 0, 0, 10553, 10554, 7, 6, 0, 0, 10554, 10555, 7, 25, 0, 0, 10555, 10556, 7, 10, 0, 0, 10556, 10557, 7, 4, 0, 0, 10557, 1090, 1, 0, 0, 0, 10558, 10559, 7, 6, 0, 0, 10559, 10560, 7, 25, 0, 0, 10560, 10561, 7, 15, 0, 0, 10561, 10562, 7, 0, 0, 0, 10562, 10563, 7, 7, 0, 0, 10563, 10564, 7, 9, 0, 0, 10564, 10565, 5, 95, 0, 0, 10565, 10566, 7, 17, 0, 0, 10566, 10567, 7, 5, 0, 0, 10567, 10568, 7, 6, 0, 0, 10568, 10569, 7, 4, 0, 0, 10569, 10570, 5, 95, 0, 0, 10570, 10571, 7, 4, 0, 0, 10571, 10572, 7, 2, 0, 0, 10572, 10573, 5, 95, 0, 0, 10573, 10574, 7, 12, 0, 0, 10574, 10575, 7, 7, 0, 0, 10575, 10576, 7, 10, 0, 0, 10576, 10577, 7, 2, 0, 0, 10577, 10578, 7, 7, 0, 0, 10578, 1092, 1, 0, 0, 0, 10579, 10580, 7, 6, 0, 0, 10580, 10581, 7, 25, 0, 0, 10581, 10582, 7, 15, 0, 0, 10582, 10583, 7, 0, 0, 0, 10583, 10584, 7, 7, 0, 0, 10584, 10585, 7, 9, 0, 0, 10585, 10586, 5, 95, 0, 0, 10586, 10587, 7, 4, 0, 0, 10587, 10588, 7, 0, 0, 0, 10588, 10589, 7, 1, 0, 0, 10589, 10590, 7, 11, 0, 0, 10590, 10591, 7, 6, 0, 0, 10591, 1094, 1, 0, 0, 0, 10592, 10593, 7, 6, 0, 0, 10593, 10594, 7, 25, 0, 0, 10594, 10595, 7, 15, 0, 0, 10595, 1096, 1, 0, 0, 0, 10596, 10597, 7, 6, 0, 0, 10597, 10598, 7, 25, 0, 0, 10598, 10599, 7, 15, 0, 0, 10599, 10600, 7, 10, 0, 0, 10600, 10601, 7, 3, 0, 0, 10601, 10602, 7, 6, 0, 0, 10602, 1098, 1, 0, 0, 0, 10603, 10604, 7, 6, 0, 0, 10604, 10605, 7, 25, 0, 0, 10605, 10606, 7, 15, 0, 0, 10606, 10607, 7, 11, 0, 0, 10607, 10608, 7, 0, 0, 0, 10608, 10609, 7, 10, 0, 0, 10609, 10610, 7, 7, 0, 0, 10610, 1100, 1, 0, 0, 0, 10611, 10612, 7, 6, 0, 0, 10612, 10613, 7, 25, 0, 0, 10613, 10614, 7, 15, 0, 0, 10614, 10615, 7, 11, 0, 0, 10615, 10616, 7, 2, 0, 0, 10616, 10617, 7, 5, 0, 0, 10617, 10618, 7, 10, 0, 0, 10618, 10619, 7, 2, 0, 0, 10619, 10620, 7, 7, 0, 0, 10620, 1102, 1, 0, 0, 0, 10621, 10622, 7, 6, 0, 0, 10622, 10623, 7, 25, 0, 0, 10623, 10624, 7, 15, 0, 0, 10624, 10625, 7, 2, 0, 0, 10625, 10626, 7, 3, 0, 0, 10626, 10627, 7, 4, 0, 0, 10627, 1104, 1, 0, 0, 0, 10628, 10629, 7, 6, 0, 0, 10629, 10630, 7, 25, 0, 0, 10630, 10631, 7, 15, 0, 0, 10631, 10632, 7, 3, 0, 0, 10632, 10633, 5, 95, 0, 0, 10633, 10634, 7, 8, 0, 0, 10634, 10635, 7, 2, 0, 0, 10635, 10636, 7, 3, 0, 0, 10636, 10637, 7, 3, 0, 0, 10637, 10638, 5, 95, 0, 0, 10638, 10639, 7, 8, 0, 0, 10639, 10640, 7, 19, 0, 0, 10640, 10641, 7, 6, 0, 0, 10641, 10642, 7, 8, 0, 0, 10642, 10643, 7, 21, 0, 0, 10643, 1106, 1, 0, 0, 0, 10644, 10645, 7, 6, 0, 0, 10645, 10646, 7, 25, 0, 0, 10646, 10647, 7, 15, 0, 0, 10647, 10648, 7, 3, 0, 0, 10648, 10649, 7, 6, 0, 0, 10649, 10650, 7, 5, 0, 0, 10650, 10651, 7, 5, 0, 0, 10651, 1108, 1, 0, 0, 0, 10652, 10653, 7, 6, 0, 0, 10653, 10654, 7, 25, 0, 0, 10654, 10655, 7, 4, 0, 0, 10655, 10656, 7, 6, 0, 0, 10656, 10657, 7, 7, 0, 0, 10657, 10658, 7, 9, 0, 0, 10658, 10659, 7, 5, 0, 0, 10659, 1110, 1, 0, 0, 0, 10660, 10661, 7, 6, 0, 0, 10661, 10662, 7, 25, 0, 0, 10662, 10663, 7, 4, 0, 0, 10663, 10664, 7, 6, 0, 0, 10664, 10665, 7, 7, 0, 0, 10665, 10666, 7, 4, 0, 0, 10666, 1112, 1, 0, 0, 0, 10667, 10668, 7, 6, 0, 0, 10668, 10669, 7, 25, 0, 0, 10669, 10670, 7, 4, 0, 0, 10670, 10671, 7, 6, 0, 0, 10671, 10672, 7, 7, 0, 0, 10672, 10673, 7, 4, 0, 0, 10673, 10674, 7, 5, 0, 0, 10674, 1114, 1, 0, 0, 0, 10675, 10676, 7, 6, 0, 0, 10676, 10677, 7, 25, 0, 0, 10677, 10678, 7, 4, 0, 0, 10678, 10679, 7, 6, 0, 0, 10679, 10680, 7, 3, 0, 0, 10680, 10681, 7, 7, 0, 0, 10681, 10682, 7, 0, 0, 0, 10682, 10683, 7, 11, 0, 0, 10683, 1116, 1, 0, 0, 0, 10684, 10685, 7, 6, 0, 0, 10685, 10686, 7, 25, 0, 0, 10686, 10687, 7, 4, 0, 0, 10687, 10688, 7, 6, 0, 0, 10688, 10689, 7, 3, 0, 0, 10689, 10690, 7, 7, 0, 0, 10690, 10691, 7, 0, 0, 0, 10691, 10692, 7, 11, 0, 0, 10692, 10693, 7, 11, 0, 0, 10693, 10694, 7, 18, 0, 0, 10694, 1118, 1, 0, 0, 0, 10695, 10696, 7, 6, 0, 0, 10696, 10697, 7, 25, 0, 0, 10697, 10698, 7, 4, 0, 0, 10698, 10699, 7, 3, 0, 0, 10699, 10700, 7, 0, 0, 0, 10700, 10701, 7, 8, 0, 0, 10701, 10702, 7, 4, 0, 0, 10702, 10703, 7, 8, 0, 0, 10703, 10704, 7, 11, 0, 0, 10704, 10705, 7, 2, 0, 0, 10705, 10706, 7, 1, 0, 0, 10706, 10707, 7, 25, 0, 0, 10707, 10708, 7, 14, 0, 0, 10708, 10709, 7, 11, 0, 0, 10709, 1120, 1, 0, 0, 0, 10710, 10711, 7, 6, 0, 0, 10711, 10712, 7, 25, 0, 0, 10712, 10713, 7, 4, 0, 0, 10713, 10714, 7, 3, 0, 0, 10714, 10715, 7, 0, 0, 0, 10715, 10716, 7, 8, 0, 0, 10716, 10717, 7, 4, 0, 0, 10717, 1122, 1, 0, 0, 0, 10718, 10719, 7, 6, 0, 0, 10719, 10720, 7, 25, 0, 0, 10720, 10721, 7, 4, 0, 0, 10721, 10722, 7, 3, 0, 0, 10722, 10723, 7, 0, 0, 0, 10723, 10724, 7, 8, 0, 0, 10724, 10725, 7, 4, 0, 0, 10725, 10726, 7, 13, 0, 0, 10726, 10727, 7, 0, 0, 0, 10727, 10728, 7, 11, 0, 0, 10728, 10729, 7, 12, 0, 0, 10729, 10730, 7, 6, 0, 0, 10730, 1124, 1, 0, 0, 0, 10731, 10732, 7, 6, 0, 0, 10732, 10733, 7, 25, 0, 0, 10733, 10734, 7, 4, 0, 0, 10734, 10735, 7, 3, 0, 0, 10735, 10736, 7, 0, 0, 0, 10736, 1126, 1, 0, 0, 0, 10737, 10738, 7, 16, 0, 0, 10738, 10739, 7, 0, 0, 0, 10739, 10740, 7, 8, 0, 0, 10740, 10741, 7, 10, 0, 0, 10741, 10742, 7, 11, 0, 0, 10742, 10743, 7, 10, 0, 0, 10743, 10744, 7, 4, 0, 0, 10744, 10745, 7, 18, 0, 0, 10745, 1128, 1, 0, 0, 0, 10746, 10747, 7, 16, 0, 0, 10747, 10748, 7, 0, 0, 0, 10748, 10749, 7, 8, 0, 0, 10749, 10750, 7, 4, 0, 0, 10750, 1130, 1, 0, 0, 0, 10751, 10752, 7, 16, 0, 0, 10752, 10753, 7, 0, 0, 0, 10753, 10754, 7, 8, 0, 0, 10754, 10755, 7, 4, 0, 0, 10755, 10756, 7, 2, 0, 0, 10756, 10757, 7, 3, 0, 0, 10757, 1132, 1, 0, 0, 0, 10758, 10759, 7, 16, 0, 0, 10759, 10760, 7, 0, 0, 0, 10760, 10761, 7, 8, 0, 0, 10761, 10762, 7, 4, 0, 0, 10762, 10763, 7, 2, 0, 0, 10763, 10764, 7, 3, 0, 0, 10764, 10765, 7, 10, 0, 0, 10765, 10766, 7, 23, 0, 0, 10766, 10767, 7, 6, 0, 0, 10767, 10768, 5, 95, 0, 0, 10768, 10769, 7, 20, 0, 0, 10769, 10770, 7, 2, 0, 0, 10770, 10771, 7, 10, 0, 0, 10771, 10772, 7, 7, 0, 0, 10772, 1134, 1, 0, 0, 0, 10773, 10774, 7, 16, 0, 0, 10774, 10775, 7, 0, 0, 0, 10775, 10776, 7, 10, 0, 0, 10776, 10777, 7, 11, 0, 0, 10777, 10778, 7, 6, 0, 0, 10778, 10779, 7, 9, 0, 0, 10779, 1136, 1, 0, 0, 0, 10780, 10781, 7, 16, 0, 0, 10781, 10782, 7, 0, 0, 0, 10782, 10783, 7, 10, 0, 0, 10783, 10784, 7, 11, 0, 0, 10784, 10785, 7, 6, 0, 0, 10785, 10786, 7, 9, 0, 0, 10786, 10787, 5, 95, 0, 0, 10787, 10788, 7, 11, 0, 0, 10788, 10789, 7, 2, 0, 0, 10789, 10790, 7, 17, 0, 0, 10790, 10791, 7, 10, 0, 0, 10791, 10792, 7, 7, 0, 0, 10792, 10793, 5, 95, 0, 0, 10793, 10794, 7, 0, 0, 0, 10794, 10795, 7, 4, 0, 0, 10795, 10796, 7, 4, 0, 0, 10796, 10797, 7, 6, 0, 0, 10797, 10798, 7, 14, 0, 0, 10798, 10799, 7, 15, 0, 0, 10799, 10800, 7, 4, 0, 0, 10800, 10801, 7, 5, 0, 0, 10801, 1138, 1, 0, 0, 0, 10802, 10803, 7, 16, 0, 0, 10803, 10804, 7, 0, 0, 0, 10804, 10805, 7, 10, 0, 0, 10805, 10806, 7, 11, 0, 0, 10806, 10807, 7, 17, 0, 0, 10807, 10808, 7, 3, 0, 0, 10808, 10809, 7, 2, 0, 0, 10809, 10810, 7, 12, 0, 0, 10810, 10811, 7, 15, 0, 0, 10811, 1140, 1, 0, 0, 0, 10812, 10813, 7, 16, 0, 0, 10813, 10814, 7, 0, 0, 0, 10814, 10815, 7, 10, 0, 0, 10815, 10816, 7, 11, 0, 0, 10816, 10817, 7, 2, 0, 0, 10817, 10818, 7, 13, 0, 0, 10818, 10819, 7, 6, 0, 0, 10819, 10820, 7, 3, 0, 0, 10820, 1142, 1, 0, 0, 0, 10821, 10822, 7, 16, 0, 0, 10822, 10823, 7, 0, 0, 0, 10823, 10824, 7, 10, 0, 0, 10824, 10825, 7, 11, 0, 0, 10825, 10826, 7, 12, 0, 0, 10826, 10827, 7, 3, 0, 0, 10827, 10828, 7, 6, 0, 0, 10828, 1144, 1, 0, 0, 0, 10829, 10830, 7, 16, 0, 0, 10830, 10831, 7, 0, 0, 0, 10831, 10832, 7, 11, 0, 0, 10832, 10833, 7, 5, 0, 0, 10833, 10834, 7, 6, 0, 0, 10834, 1146, 1, 0, 0, 0, 10835, 10836, 7, 16, 0, 0, 10836, 10837, 7, 0, 0, 0, 10837, 10838, 7, 14, 0, 0, 10838, 10839, 7, 10, 0, 0, 10839, 10840, 7, 11, 0, 0, 10840, 10841, 7, 18, 0, 0, 10841, 1148, 1, 0, 0, 0, 10842, 10843, 7, 16, 0, 0, 10843, 10844, 7, 0, 0, 0, 10844, 10845, 7, 3, 0, 0, 10845, 1150, 1, 0, 0, 0, 10846, 10847, 7, 16, 0, 0, 10847, 10848, 7, 0, 0, 0, 10848, 10849, 7, 5, 0, 0, 10849, 10850, 7, 4, 0, 0, 10850, 1152, 1, 0, 0, 0, 10851, 10852, 7, 16, 0, 0, 10852, 10853, 7, 0, 0, 0, 10853, 10854, 7, 5, 0, 0, 10854, 10855, 7, 4, 0, 0, 10855, 10856, 7, 5, 0, 0, 10856, 10857, 7, 4, 0, 0, 10857, 10858, 7, 0, 0, 0, 10858, 10859, 7, 3, 0, 0, 10859, 10860, 7, 4, 0, 0, 10860, 1154, 1, 0, 0, 0, 10861, 10862, 7, 16, 0, 0, 10862, 10863, 7, 1, 0, 0, 10863, 10864, 7, 4, 0, 0, 10864, 10865, 7, 5, 0, 0, 10865, 10866, 7, 8, 0, 0, 10866, 10867, 7, 0, 0, 0, 10867, 10868, 7, 7, 0, 0, 10868, 1156, 1, 0, 0, 0, 10869, 10870, 7, 16, 0, 0, 10870, 10871, 7, 6, 0, 0, 10871, 10872, 7, 0, 0, 0, 10872, 10873, 7, 4, 0, 0, 10873, 10874, 7, 12, 0, 0, 10874, 10875, 7, 3, 0, 0, 10875, 10876, 7, 6, 0, 0, 10876, 1158, 1, 0, 0, 0, 10877, 10878, 7, 16, 0, 0, 10878, 10879, 7, 6, 0, 0, 10879, 10880, 7, 0, 0, 0, 10880, 10881, 7, 4, 0, 0, 10881, 10882, 7, 12, 0, 0, 10882, 10883, 7, 3, 0, 0, 10883, 10884, 7, 6, 0, 0, 10884, 10885, 5, 95, 0, 0, 10885, 10886, 7, 9, 0, 0, 10886, 10887, 7, 6, 0, 0, 10887, 10888, 7, 4, 0, 0, 10888, 10889, 7, 0, 0, 0, 10889, 10890, 7, 10, 0, 0, 10890, 10891, 7, 11, 0, 0, 10891, 10892, 7, 5, 0, 0, 10892, 1160, 1, 0, 0, 0, 10893, 10894, 7, 16, 0, 0, 10894, 10895, 7, 6, 0, 0, 10895, 10896, 7, 0, 0, 0, 10896, 10897, 7, 4, 0, 0, 10897, 10898, 7, 12, 0, 0, 10898, 10899, 7, 3, 0, 0, 10899, 10900, 7, 6, 0, 0, 10900, 10901, 5, 95, 0, 0, 10901, 10902, 7, 10, 0, 0, 10902, 10903, 7, 9, 0, 0, 10903, 1162, 1, 0, 0, 0, 10904, 10905, 7, 16, 0, 0, 10905, 10906, 7, 6, 0, 0, 10906, 10907, 7, 0, 0, 0, 10907, 10908, 7, 4, 0, 0, 10908, 10909, 7, 12, 0, 0, 10909, 10910, 7, 3, 0, 0, 10910, 10911, 7, 6, 0, 0, 10911, 10912, 5, 95, 0, 0, 10912, 10913, 7, 5, 0, 0, 10913, 10914, 7, 6, 0, 0, 10914, 10915, 7, 4, 0, 0, 10915, 1164, 1, 0, 0, 0, 10916, 10917, 7, 16, 0, 0, 10917, 10918, 7, 6, 0, 0, 10918, 10919, 7, 0, 0, 0, 10919, 10920, 7, 4, 0, 0, 10920, 10921, 7, 12, 0, 0, 10921, 10922, 7, 3, 0, 0, 10922, 10923, 7, 6, 0, 0, 10923, 10924, 5, 95, 0, 0, 10924, 10925, 7, 13, 0, 0, 10925, 10926, 7, 0, 0, 0, 10926, 10927, 7, 11, 0, 0, 10927, 10928, 7, 12, 0, 0, 10928, 10929, 7, 6, 0, 0, 10929, 1166, 1, 0, 0, 0, 10930, 10931, 7, 16, 0, 0, 10931, 10932, 7, 6, 0, 0, 10932, 10933, 7, 4, 0, 0, 10933, 10934, 7, 8, 0, 0, 10934, 10935, 7, 19, 0, 0, 10935, 1168, 1, 0, 0, 0, 10936, 10937, 7, 16, 0, 0, 10937, 10938, 7, 10, 0, 0, 10938, 10939, 7, 6, 0, 0, 10939, 10940, 7, 11, 0, 0, 10940, 10941, 7, 9, 0, 0, 10941, 1170, 1, 0, 0, 0, 10942, 10943, 7, 16, 0, 0, 10943, 10944, 7, 10, 0, 0, 10944, 10945, 7, 6, 0, 0, 10945, 10946, 7, 11, 0, 0, 10946, 10947, 7, 9, 0, 0, 10947, 10948, 7, 5, 0, 0, 10948, 1172, 1, 0, 0, 0, 10949, 10950, 7, 16, 0, 0, 10950, 10951, 7, 10, 0, 0, 10951, 10952, 7, 11, 0, 0, 10952, 10953, 7, 6, 0, 0, 10953, 1174, 1, 0, 0, 0, 10954, 10955, 7, 16, 0, 0, 10955, 10956, 7, 10, 0, 0, 10956, 10957, 7, 11, 0, 0, 10957, 10958, 7, 6, 0, 0, 10958, 10959, 5, 95, 0, 0, 10959, 10960, 7, 7, 0, 0, 10960, 10961, 7, 0, 0, 0, 10961, 10962, 7, 14, 0, 0, 10962, 10963, 7, 6, 0, 0, 10963, 10964, 5, 95, 0, 0, 10964, 10965, 7, 8, 0, 0, 10965, 10966, 7, 2, 0, 0, 10966, 10967, 7, 7, 0, 0, 10967, 10968, 7, 13, 0, 0, 10968, 10969, 7, 6, 0, 0, 10969, 10970, 7, 3, 0, 0, 10970, 10971, 7, 4, 0, 0, 10971, 1176, 1, 0, 0, 0, 10972, 10973, 7, 16, 0, 0, 10973, 10974, 7, 10, 0, 0, 10974, 10975, 7, 11, 0, 0, 10975, 10976, 7, 6, 0, 0, 10976, 10977, 7, 17, 0, 0, 10977, 10978, 7, 3, 0, 0, 10978, 10979, 7, 2, 0, 0, 10979, 10980, 7, 12, 0, 0, 10980, 10981, 7, 15, 0, 0, 10981, 1178, 1, 0, 0, 0, 10982, 10983, 7, 16, 0, 0, 10983, 10984, 7, 10, 0, 0, 10984, 10985, 7, 11, 0, 0, 10985, 10986, 7, 6, 0, 0, 10986, 10987, 7, 5, 0, 0, 10987, 10988, 7, 4, 0, 0, 10988, 10989, 7, 2, 0, 0, 10989, 10990, 7, 3, 0, 0, 10990, 10991, 7, 6, 0, 0, 10991, 1180, 1, 0, 0, 0, 10992, 10993, 7, 16, 0, 0, 10993, 10994, 7, 10, 0, 0, 10994, 10995, 7, 11, 0, 0, 10995, 10996, 7, 6, 0, 0, 10996, 10997, 7, 5, 0, 0, 10997, 10998, 7, 18, 0, 0, 10998, 10999, 7, 5, 0, 0, 10999, 11000, 7, 4, 0, 0, 11000, 11001, 7, 6, 0, 0, 11001, 11002, 7, 14, 0, 0, 11002, 11003, 5, 95, 0, 0, 11003, 11004, 7, 11, 0, 0, 11004, 11005, 7, 10, 0, 0, 11005, 11006, 7, 21, 0, 0, 11006, 11007, 7, 6, 0, 0, 11007, 11008, 5, 95, 0, 0, 11008, 11009, 7, 11, 0, 0, 11009, 11010, 7, 2, 0, 0, 11010, 11011, 7, 17, 0, 0, 11011, 11012, 7, 17, 0, 0, 11012, 11013, 7, 10, 0, 0, 11013, 11014, 7, 7, 0, 0, 11014, 11015, 7, 17, 0, 0, 11015, 1182, 1, 0, 0, 0, 11016, 11017, 7, 16, 0, 0, 11017, 11018, 7, 10, 0, 0, 11018, 11019, 7, 11, 0, 0, 11019, 11020, 7, 4, 0, 0, 11020, 11021, 7, 6, 0, 0, 11021, 11022, 7, 3, 0, 0, 11022, 1184, 1, 0, 0, 0, 11023, 11024, 7, 16, 0, 0, 11024, 11025, 7, 10, 0, 0, 11025, 11026, 7, 7, 0, 0, 11026, 11027, 7, 0, 0, 0, 11027, 11028, 7, 11, 0, 0, 11028, 1186, 1, 0, 0, 0, 11029, 11030, 7, 16, 0, 0, 11030, 11031, 7, 10, 0, 0, 11031, 11032, 7, 7, 0, 0, 11032, 11033, 7, 6, 0, 0, 11033, 1188, 1, 0, 0, 0, 11034, 11035, 7, 16, 0, 0, 11035, 11036, 7, 10, 0, 0, 11036, 11037, 7, 7, 0, 0, 11037, 11038, 7, 10, 0, 0, 11038, 11039, 7, 5, 0, 0, 11039, 11040, 7, 19, 0, 0, 11040, 1190, 1, 0, 0, 0, 11041, 11042, 7, 16, 0, 0, 11042, 11043, 7, 10, 0, 0, 11043, 11044, 7, 3, 0, 0, 11044, 11045, 7, 5, 0, 0, 11045, 11046, 7, 4, 0, 0, 11046, 1192, 1, 0, 0, 0, 11047, 11048, 7, 16, 0, 0, 11048, 11049, 7, 10, 0, 0, 11049, 11050, 7, 3, 0, 0, 11050, 11051, 7, 5, 0, 0, 11051, 11052, 7, 4, 0, 0, 11052, 11053, 7, 14, 0, 0, 11053, 1194, 1, 0, 0, 0, 11054, 11055, 7, 16, 0, 0, 11055, 11056, 7, 10, 0, 0, 11056, 11057, 7, 3, 0, 0, 11057, 11058, 7, 5, 0, 0, 11058, 11059, 7, 4, 0, 0, 11059, 11060, 5, 95, 0, 0, 11060, 11061, 7, 3, 0, 0, 11061, 11062, 7, 2, 0, 0, 11062, 11063, 7, 22, 0, 0, 11063, 11064, 7, 5, 0, 0, 11064, 1196, 1, 0, 0, 0, 11065, 11066, 7, 16, 0, 0, 11066, 11067, 7, 10, 0, 0, 11067, 11068, 7, 3, 0, 0, 11068, 11069, 7, 5, 0, 0, 11069, 11070, 7, 4, 0, 0, 11070, 11071, 5, 95, 0, 0, 11071, 11072, 7, 13, 0, 0, 11072, 11073, 7, 0, 0, 0, 11073, 11074, 7, 11, 0, 0, 11074, 11075, 7, 12, 0, 0, 11075, 11076, 7, 6, 0, 0, 11076, 1198, 1, 0, 0, 0, 11077, 11078, 7, 16, 0, 0, 11078, 11079, 7, 10, 0, 0, 11079, 11080, 7, 25, 0, 0, 11080, 11081, 7, 6, 0, 0, 11081, 11082, 7, 9, 0, 0, 11082, 1200, 1, 0, 0, 0, 11083, 11084, 7, 16, 0, 0, 11084, 11085, 7, 10, 0, 0, 11085, 11086, 7, 25, 0, 0, 11086, 11087, 7, 6, 0, 0, 11087, 11088, 7, 9, 0, 0, 11088, 11089, 5, 95, 0, 0, 11089, 11090, 7, 13, 0, 0, 11090, 11091, 7, 10, 0, 0, 11091, 11092, 7, 6, 0, 0, 11092, 11093, 7, 22, 0, 0, 11093, 11094, 5, 95, 0, 0, 11094, 11095, 7, 9, 0, 0, 11095, 11096, 7, 0, 0, 0, 11096, 11097, 7, 4, 0, 0, 11097, 11098, 7, 0, 0, 0, 11098, 1202, 1, 0, 0, 0, 11099, 11100, 7, 16, 0, 0, 11100, 11101, 7, 11, 0, 0, 11101, 11102, 7, 0, 0, 0, 11102, 11103, 7, 17, 0, 0, 11103, 11104, 7, 17, 0, 0, 11104, 11105, 7, 6, 0, 0, 11105, 11106, 7, 3, 0, 0, 11106, 1204, 1, 0, 0, 0, 11107, 11108, 7, 16, 0, 0, 11108, 11109, 7, 11, 0, 0, 11109, 11110, 7, 0, 0, 0, 11110, 11111, 7, 5, 0, 0, 11111, 11112, 7, 19, 0, 0, 11112, 11113, 7, 1, 0, 0, 11113, 11114, 7, 0, 0, 0, 11114, 11115, 7, 8, 0, 0, 11115, 11116, 7, 21, 0, 0, 11116, 1206, 1, 0, 0, 0, 11117, 11118, 7, 16, 0, 0, 11118, 11119, 7, 11, 0, 0, 11119, 11120, 7, 0, 0, 0, 11120, 11121, 7, 5, 0, 0, 11121, 11122, 7, 19, 0, 0, 11122, 11123, 5, 95, 0, 0, 11123, 11124, 7, 8, 0, 0, 11124, 11125, 7, 0, 0, 0, 11125, 11126, 7, 8, 0, 0, 11126, 11127, 7, 19, 0, 0, 11127, 11128, 7, 6, 0, 0, 11128, 1208, 1, 0, 0, 0, 11129, 11130, 7, 16, 0, 0, 11130, 11131, 7, 11, 0, 0, 11131, 11132, 7, 2, 0, 0, 11132, 11133, 7, 0, 0, 0, 11133, 11134, 7, 4, 0, 0, 11134, 1210, 1, 0, 0, 0, 11135, 11136, 7, 16, 0, 0, 11136, 11137, 7, 11, 0, 0, 11137, 11138, 7, 2, 0, 0, 11138, 11139, 7, 1, 0, 0, 11139, 1212, 1, 0, 0, 0, 11140, 11141, 7, 16, 0, 0, 11141, 11142, 7, 11, 0, 0, 11142, 11143, 7, 6, 0, 0, 11143, 11144, 7, 25, 0, 0, 11144, 1214, 1, 0, 0, 0, 11145, 11146, 7, 16, 0, 0, 11146, 11147, 7, 11, 0, 0, 11147, 11148, 7, 2, 0, 0, 11148, 11149, 7, 2, 0, 0, 11149, 11150, 7, 3, 0, 0, 11150, 1216, 1, 0, 0, 0, 11151, 11152, 7, 16, 0, 0, 11152, 11153, 7, 11, 0, 0, 11153, 11154, 7, 12, 0, 0, 11154, 11155, 7, 5, 0, 0, 11155, 11156, 7, 19, 0, 0, 11156, 1218, 1, 0, 0, 0, 11157, 11158, 7, 16, 0, 0, 11158, 11159, 7, 2, 0, 0, 11159, 11160, 7, 11, 0, 0, 11160, 11161, 7, 9, 0, 0, 11161, 11162, 7, 6, 0, 0, 11162, 11163, 7, 3, 0, 0, 11163, 1220, 1, 0, 0, 0, 11164, 11165, 7, 16, 0, 0, 11165, 11166, 7, 2, 0, 0, 11166, 11167, 7, 11, 0, 0, 11167, 11168, 7, 11, 0, 0, 11168, 11169, 7, 2, 0, 0, 11169, 11170, 7, 22, 0, 0, 11170, 11171, 7, 10, 0, 0, 11171, 11172, 7, 7, 0, 0, 11172, 11173, 7, 17, 0, 0, 11173, 1222, 1, 0, 0, 0, 11174, 11175, 7, 16, 0, 0, 11175, 11176, 7, 2, 0, 0, 11176, 11177, 7, 11, 0, 0, 11177, 11178, 7, 11, 0, 0, 11178, 11179, 7, 2, 0, 0, 11179, 11180, 7, 22, 0, 0, 11180, 11181, 7, 5, 0, 0, 11181, 1224, 1, 0, 0, 0, 11182, 11183, 7, 16, 0, 0, 11183, 11184, 7, 2, 0, 0, 11184, 11185, 7, 3, 0, 0, 11185, 11186, 7, 0, 0, 0, 11186, 11187, 7, 11, 0, 0, 11187, 11188, 7, 11, 0, 0, 11188, 1226, 1, 0, 0, 0, 11189, 11190, 7, 16, 0, 0, 11190, 11191, 7, 2, 0, 0, 11191, 11192, 7, 3, 0, 0, 11192, 11193, 7, 8, 0, 0, 11193, 11194, 7, 6, 0, 0, 11194, 1228, 1, 0, 0, 0, 11195, 11196, 7, 16, 0, 0, 11196, 11197, 7, 2, 0, 0, 11197, 11198, 7, 3, 0, 0, 11198, 11199, 7, 8, 0, 0, 11199, 11200, 7, 6, 0, 0, 11200, 11201, 5, 95, 0, 0, 11201, 11202, 7, 25, 0, 0, 11202, 11203, 7, 14, 0, 0, 11203, 11204, 7, 11, 0, 0, 11204, 11205, 5, 95, 0, 0, 11205, 11206, 7, 24, 0, 0, 11206, 11207, 7, 12, 0, 0, 11207, 11208, 7, 6, 0, 0, 11208, 11209, 7, 3, 0, 0, 11209, 11210, 7, 18, 0, 0, 11210, 11211, 5, 95, 0, 0, 11211, 11212, 7, 3, 0, 0, 11212, 11213, 7, 6, 0, 0, 11213, 11214, 7, 22, 0, 0, 11214, 11215, 7, 3, 0, 0, 11215, 11216, 7, 10, 0, 0, 11216, 11217, 7, 4, 0, 0, 11217, 11218, 7, 6, 0, 0, 11218, 1230, 1, 0, 0, 0, 11219, 11220, 7, 16, 0, 0, 11220, 11221, 7, 2, 0, 0, 11221, 11222, 7, 3, 0, 0, 11222, 11223, 7, 6, 0, 0, 11223, 11224, 7, 10, 0, 0, 11224, 11225, 7, 17, 0, 0, 11225, 11226, 7, 7, 0, 0, 11226, 1232, 1, 0, 0, 0, 11227, 11228, 7, 16, 0, 0, 11228, 11229, 7, 2, 0, 0, 11229, 11230, 7, 3, 0, 0, 11230, 11231, 7, 6, 0, 0, 11231, 11232, 7, 13, 0, 0, 11232, 11233, 7, 6, 0, 0, 11233, 11234, 7, 3, 0, 0, 11234, 1234, 1, 0, 0, 0, 11235, 11236, 7, 16, 0, 0, 11236, 11237, 7, 2, 0, 0, 11237, 11238, 7, 3, 0, 0, 11238, 1236, 1, 0, 0, 0, 11239, 11240, 7, 16, 0, 0, 11240, 11241, 7, 2, 0, 0, 11241, 11242, 7, 3, 0, 0, 11242, 11243, 7, 14, 0, 0, 11243, 11244, 7, 0, 0, 0, 11244, 11245, 7, 4, 0, 0, 11245, 1238, 1, 0, 0, 0, 11246, 11247, 7, 16, 0, 0, 11247, 11248, 7, 2, 0, 0, 11248, 11249, 7, 3, 0, 0, 11249, 11250, 7, 22, 0, 0, 11250, 11251, 7, 0, 0, 0, 11251, 11252, 7, 3, 0, 0, 11252, 11253, 7, 9, 0, 0, 11253, 1240, 1, 0, 0, 0, 11254, 11255, 7, 16, 0, 0, 11255, 11256, 7, 3, 0, 0, 11256, 11257, 7, 0, 0, 0, 11257, 11258, 7, 17, 0, 0, 11258, 11259, 7, 14, 0, 0, 11259, 11260, 7, 6, 0, 0, 11260, 11261, 7, 7, 0, 0, 11261, 11262, 7, 4, 0, 0, 11262, 11263, 5, 95, 0, 0, 11263, 11264, 7, 7, 0, 0, 11264, 11265, 7, 12, 0, 0, 11265, 11266, 7, 14, 0, 0, 11266, 11267, 7, 1, 0, 0, 11267, 11268, 7, 6, 0, 0, 11268, 11269, 7, 3, 0, 0, 11269, 1242, 1, 0, 0, 0, 11270, 11271, 7, 16, 0, 0, 11271, 11272, 7, 3, 0, 0, 11272, 11273, 7, 6, 0, 0, 11273, 11274, 7, 6, 0, 0, 11274, 11275, 7, 11, 0, 0, 11275, 11276, 7, 10, 0, 0, 11276, 11277, 7, 5, 0, 0, 11277, 11278, 7, 4, 0, 0, 11278, 1244, 1, 0, 0, 0, 11279, 11280, 7, 16, 0, 0, 11280, 11281, 7, 3, 0, 0, 11281, 11282, 7, 6, 0, 0, 11282, 11283, 7, 6, 0, 0, 11283, 11284, 7, 11, 0, 0, 11284, 11285, 7, 10, 0, 0, 11285, 11286, 7, 5, 0, 0, 11286, 11287, 7, 4, 0, 0, 11287, 11288, 7, 5, 0, 0, 11288, 1246, 1, 0, 0, 0, 11289, 11290, 7, 16, 0, 0, 11290, 11291, 7, 3, 0, 0, 11291, 11292, 7, 6, 0, 0, 11292, 11293, 7, 6, 0, 0, 11293, 11294, 7, 15, 0, 0, 11294, 11295, 7, 2, 0, 0, 11295, 11296, 7, 2, 0, 0, 11296, 11297, 7, 11, 0, 0, 11297, 11298, 7, 5, 0, 0, 11298, 1248, 1, 0, 0, 0, 11299, 11300, 7, 16, 0, 0, 11300, 11301, 7, 3, 0, 0, 11301, 11302, 7, 6, 0, 0, 11302, 11303, 7, 5, 0, 0, 11303, 11304, 7, 19, 0, 0, 11304, 1250, 1, 0, 0, 0, 11305, 11306, 7, 16, 0, 0, 11306, 11307, 7, 3, 0, 0, 11307, 11308, 7, 2, 0, 0, 11308, 11309, 7, 14, 0, 0, 11309, 1252, 1, 0, 0, 0, 11310, 11311, 7, 16, 0, 0, 11311, 11312, 7, 3, 0, 0, 11312, 11313, 7, 2, 0, 0, 11313, 11314, 7, 14, 0, 0, 11314, 11315, 5, 95, 0, 0, 11315, 11316, 7, 4, 0, 0, 11316, 11317, 7, 23, 0, 0, 11317, 1254, 1, 0, 0, 0, 11318, 11319, 7, 16, 0, 0, 11319, 11320, 7, 12, 0, 0, 11320, 11321, 7, 11, 0, 0, 11321, 11322, 7, 11, 0, 0, 11322, 1256, 1, 0, 0, 0, 11323, 11324, 7, 16, 0, 0, 11324, 11325, 7, 12, 0, 0, 11325, 11326, 7, 11, 0, 0, 11326, 11327, 7, 11, 0, 0, 11327, 11328, 5, 95, 0, 0, 11328, 11329, 7, 2, 0, 0, 11329, 11330, 7, 12, 0, 0, 11330, 11331, 7, 4, 0, 0, 11331, 11332, 7, 6, 0, 0, 11332, 11333, 7, 3, 0, 0, 11333, 11334, 5, 95, 0, 0, 11334, 11335, 7, 20, 0, 0, 11335, 11336, 7, 2, 0, 0, 11336, 11337, 7, 10, 0, 0, 11337, 11338, 7, 7, 0, 0, 11338, 11339, 5, 95, 0, 0, 11339, 11340, 7, 4, 0, 0, 11340, 11341, 7, 2, 0, 0, 11341, 11342, 5, 95, 0, 0, 11342, 11343, 7, 2, 0, 0, 11343, 11344, 7, 12, 0, 0, 11344, 11345, 7, 4, 0, 0, 11345, 11346, 7, 6, 0, 0, 11346, 11347, 7, 3, 0, 0, 11347, 1258, 1, 0, 0, 0, 11348, 11349, 7, 16, 0, 0, 11349, 11350, 7, 12, 0, 0, 11350, 11351, 7, 7, 0, 0, 11351, 11352, 7, 8, 0, 0, 11352, 11353, 7, 4, 0, 0, 11353, 11354, 7, 10, 0, 0, 11354, 11355, 7, 2, 0, 0, 11355, 11356, 7, 7, 0, 0, 11356, 1260, 1, 0, 0, 0, 11357, 11358, 7, 16, 0, 0, 11358, 11359, 7, 12, 0, 0, 11359, 11360, 7, 7, 0, 0, 11360, 11361, 7, 8, 0, 0, 11361, 11362, 7, 4, 0, 0, 11362, 11363, 7, 10, 0, 0, 11363, 11364, 7, 2, 0, 0, 11364, 11365, 7, 7, 0, 0, 11365, 11366, 7, 5, 0, 0, 11366, 1262, 1, 0, 0, 0, 11367, 11368, 7, 16, 0, 0, 11368, 11369, 7, 4, 0, 0, 11369, 11370, 7, 15, 0, 0, 11370, 1264, 1, 0, 0, 0, 11371, 11372, 7, 17, 0, 0, 11372, 1266, 1, 0, 0, 0, 11373, 11374, 7, 17, 0, 0, 11374, 11375, 7, 0, 0, 0, 11375, 11376, 7, 4, 0, 0, 11376, 11377, 7, 19, 0, 0, 11377, 11378, 7, 6, 0, 0, 11378, 11379, 7, 3, 0, 0, 11379, 11380, 5, 95, 0, 0, 11380, 11381, 7, 2, 0, 0, 11381, 11382, 7, 15, 0, 0, 11382, 11383, 7, 4, 0, 0, 11383, 11384, 7, 10, 0, 0, 11384, 11385, 7, 14, 0, 0, 11385, 11386, 7, 10, 0, 0, 11386, 11387, 7, 23, 0, 0, 11387, 11388, 7, 6, 0, 0, 11388, 11389, 7, 3, 0, 0, 11389, 11390, 5, 95, 0, 0, 11390, 11391, 7, 5, 0, 0, 11391, 11392, 7, 4, 0, 0, 11392, 11393, 7, 0, 0, 0, 11393, 11394, 7, 4, 0, 0, 11394, 11395, 7, 10, 0, 0, 11395, 11396, 7, 5, 0, 0, 11396, 11397, 7, 4, 0, 0, 11397, 11398, 7, 10, 0, 0, 11398, 11399, 7, 8, 0, 0, 11399, 11400, 7, 5, 0, 0, 11400, 1268, 1, 0, 0, 0, 11401, 11402, 7, 17, 0, 0, 11402, 11403, 7, 0, 0, 0, 11403, 11404, 7, 4, 0, 0, 11404, 11405, 7, 19, 0, 0, 11405, 11406, 7, 6, 0, 0, 11406, 11407, 7, 3, 0, 0, 11407, 11408, 5, 95, 0, 0, 11408, 11409, 7, 15, 0, 0, 11409, 11410, 7, 11, 0, 0, 11410, 11411, 7, 0, 0, 0, 11411, 11412, 7, 7, 0, 0, 11412, 11413, 5, 95, 0, 0, 11413, 11414, 7, 5, 0, 0, 11414, 11415, 7, 4, 0, 0, 11415, 11416, 7, 0, 0, 0, 11416, 11417, 7, 4, 0, 0, 11417, 11418, 7, 10, 0, 0, 11418, 11419, 7, 5, 0, 0, 11419, 11420, 7, 4, 0, 0, 11420, 11421, 7, 10, 0, 0, 11421, 11422, 7, 8, 0, 0, 11422, 11423, 7, 5, 0, 0, 11423, 1270, 1, 0, 0, 0, 11424, 11425, 7, 17, 0, 0, 11425, 11426, 7, 1, 0, 0, 11426, 11427, 7, 18, 0, 0, 11427, 11428, 5, 95, 0, 0, 11428, 11429, 7, 8, 0, 0, 11429, 11430, 7, 2, 0, 0, 11430, 11431, 7, 7, 0, 0, 11431, 11432, 7, 8, 0, 0, 11432, 11433, 5, 95, 0, 0, 11433, 11434, 7, 3, 0, 0, 11434, 11435, 7, 2, 0, 0, 11435, 11436, 7, 11, 0, 0, 11436, 11437, 7, 11, 0, 0, 11437, 11438, 7, 12, 0, 0, 11438, 11439, 7, 15, 0, 0, 11439, 1272, 1, 0, 0, 0, 11440, 11441, 7, 17, 0, 0, 11441, 11442, 7, 1, 0, 0, 11442, 11443, 7, 18, 0, 0, 11443, 11444, 5, 95, 0, 0, 11444, 11445, 7, 15, 0, 0, 11445, 11446, 7, 12, 0, 0, 11446, 11447, 7, 5, 0, 0, 11447, 11448, 7, 19, 0, 0, 11448, 11449, 7, 9, 0, 0, 11449, 11450, 7, 2, 0, 0, 11450, 11451, 7, 22, 0, 0, 11451, 11452, 7, 7, 0, 0, 11452, 1274, 1, 0, 0, 0, 11453, 11454, 7, 17, 0, 0, 11454, 11455, 7, 6, 0, 0, 11455, 11456, 7, 7, 0, 0, 11456, 11457, 7, 6, 0, 0, 11457, 11458, 7, 3, 0, 0, 11458, 11459, 7, 0, 0, 0, 11459, 11460, 7, 4, 0, 0, 11460, 11461, 7, 6, 0, 0, 11461, 11462, 7, 9, 0, 0, 11462, 1276, 1, 0, 0, 0, 11463, 11464, 7, 17, 0, 0, 11464, 11465, 7, 6, 0, 0, 11465, 11466, 7, 4, 0, 0, 11466, 1278, 1, 0, 0, 0, 11467, 11468, 7, 17, 0, 0, 11468, 11469, 7, 11, 0, 0, 11469, 11470, 7, 2, 0, 0, 11470, 11471, 7, 1, 0, 0, 11471, 11472, 7, 0, 0, 0, 11472, 11473, 7, 11, 0, 0, 11473, 1280, 1, 0, 0, 0, 11474, 11475, 7, 17, 0, 0, 11475, 11476, 7, 11, 0, 0, 11476, 11477, 7, 2, 0, 0, 11477, 11478, 7, 1, 0, 0, 11478, 11479, 7, 0, 0, 0, 11479, 11480, 7, 11, 0, 0, 11480, 11481, 7, 11, 0, 0, 11481, 11482, 7, 18, 0, 0, 11482, 1282, 1, 0, 0, 0, 11483, 11484, 7, 17, 0, 0, 11484, 11485, 7, 11, 0, 0, 11485, 11486, 7, 2, 0, 0, 11486, 11487, 7, 1, 0, 0, 11487, 11488, 7, 0, 0, 0, 11488, 11489, 7, 11, 0, 0, 11489, 11490, 5, 95, 0, 0, 11490, 11491, 7, 7, 0, 0, 11491, 11492, 7, 0, 0, 0, 11492, 11493, 7, 14, 0, 0, 11493, 11494, 7, 6, 0, 0, 11494, 1284, 1, 0, 0, 0, 11495, 11496, 7, 17, 0, 0, 11496, 11497, 7, 11, 0, 0, 11497, 11498, 7, 2, 0, 0, 11498, 11499, 7, 1, 0, 0, 11499, 11500, 7, 0, 0, 0, 11500, 11501, 7, 11, 0, 0, 11501, 11502, 5, 95, 0, 0, 11502, 11503, 7, 4, 0, 0, 11503, 11504, 7, 2, 0, 0, 11504, 11505, 7, 15, 0, 0, 11505, 11506, 7, 10, 0, 0, 11506, 11507, 7, 8, 0, 0, 11507, 11508, 5, 95, 0, 0, 11508, 11509, 7, 6, 0, 0, 11509, 11510, 7, 7, 0, 0, 11510, 11511, 7, 0, 0, 0, 11511, 11512, 7, 1, 0, 0, 11512, 11513, 7, 11, 0, 0, 11513, 11514, 7, 6, 0, 0, 11514, 11515, 7, 9, 0, 0, 11515, 1286, 1, 0, 0, 0, 11516, 11517, 7, 17, 0, 0, 11517, 11518, 7, 2, 0, 0, 11518, 11519, 7, 4, 0, 0, 11519, 11520, 7, 2, 0, 0, 11520, 1288, 1, 0, 0, 0, 11521, 11522, 7, 17, 0, 0, 11522, 11523, 7, 3, 0, 0, 11523, 11524, 7, 0, 0, 0, 11524, 11525, 7, 7, 0, 0, 11525, 11526, 7, 4, 0, 0, 11526, 1290, 1, 0, 0, 0, 11527, 11528, 7, 17, 0, 0, 11528, 11529, 7, 3, 0, 0, 11529, 11530, 7, 2, 0, 0, 11530, 11531, 7, 12, 0, 0, 11531, 11532, 7, 15, 0, 0, 11532, 11533, 5, 95, 0, 0, 11533, 11534, 7, 1, 0, 0, 11534, 11535, 7, 18, 0, 0, 11535, 1292, 1, 0, 0, 0, 11536, 11537, 7, 17, 0, 0, 11537, 11538, 7, 3, 0, 0, 11538, 11539, 7, 2, 0, 0, 11539, 11540, 7, 12, 0, 0, 11540, 11541, 7, 15, 0, 0, 11541, 1294, 1, 0, 0, 0, 11542, 11543, 7, 17, 0, 0, 11543, 11544, 7, 3, 0, 0, 11544, 11545, 7, 2, 0, 0, 11545, 11546, 7, 12, 0, 0, 11546, 11547, 7, 15, 0, 0, 11547, 11548, 5, 95, 0, 0, 11548, 11549, 7, 10, 0, 0, 11549, 11550, 7, 9, 0, 0, 11550, 1296, 1, 0, 0, 0, 11551, 11552, 7, 17, 0, 0, 11552, 11553, 7, 3, 0, 0, 11553, 11554, 7, 2, 0, 0, 11554, 11555, 7, 12, 0, 0, 11555, 11556, 7, 15, 0, 0, 11556, 11557, 7, 10, 0, 0, 11557, 11558, 7, 7, 0, 0, 11558, 11559, 7, 17, 0, 0, 11559, 1298, 1, 0, 0, 0, 11560, 11561, 7, 17, 0, 0, 11561, 11562, 7, 3, 0, 0, 11562, 11563, 7, 2, 0, 0, 11563, 11564, 7, 12, 0, 0, 11564, 11565, 7, 15, 0, 0, 11565, 11566, 7, 10, 0, 0, 11566, 11567, 7, 7, 0, 0, 11567, 11568, 7, 17, 0, 0, 11568, 11569, 5, 95, 0, 0, 11569, 11570, 7, 10, 0, 0, 11570, 11571, 7, 9, 0, 0, 11571, 1300, 1, 0, 0, 0, 11572, 11573, 7, 17, 0, 0, 11573, 11574, 7, 3, 0, 0, 11574, 11575, 7, 2, 0, 0, 11575, 11576, 7, 12, 0, 0, 11576, 11577, 7, 15, 0, 0, 11577, 11578, 7, 5, 0, 0, 11578, 1302, 1, 0, 0, 0, 11579, 11580, 7, 17, 0, 0, 11580, 11581, 7, 12, 0, 0, 11581, 11582, 7, 0, 0, 0, 11582, 11583, 7, 3, 0, 0, 11583, 11584, 7, 0, 0, 0, 11584, 11585, 7, 7, 0, 0, 11585, 11586, 7, 4, 0, 0, 11586, 11587, 7, 6, 0, 0, 11587, 11588, 7, 6, 0, 0, 11588, 11589, 7, 9, 0, 0, 11589, 1304, 1, 0, 0, 0, 11590, 11591, 7, 17, 0, 0, 11591, 11592, 7, 12, 0, 0, 11592, 11593, 7, 0, 0, 0, 11593, 11594, 7, 3, 0, 0, 11594, 11595, 7, 0, 0, 0, 11595, 11596, 7, 7, 0, 0, 11596, 11597, 7, 4, 0, 0, 11597, 11598, 7, 6, 0, 0, 11598, 11599, 7, 6, 0, 0, 11599, 1306, 1, 0, 0, 0, 11600, 11601, 7, 17, 0, 0, 11601, 11602, 7, 12, 0, 0, 11602, 11603, 7, 0, 0, 0, 11603, 11604, 7, 3, 0, 0, 11604, 11605, 7, 9, 0, 0, 11605, 1308, 1, 0, 0, 0, 11606, 11607, 7, 19, 0, 0, 11607, 11608, 7, 0, 0, 0, 11608, 11609, 7, 9, 0, 0, 11609, 11610, 7, 2, 0, 0, 11610, 11611, 7, 2, 0, 0, 11611, 11612, 7, 15, 0, 0, 11612, 11613, 5, 95, 0, 0, 11613, 11614, 7, 4, 0, 0, 11614, 11615, 7, 3, 0, 0, 11615, 11616, 7, 0, 0, 0, 11616, 11617, 7, 10, 0, 0, 11617, 11618, 7, 11, 0, 0, 11618, 11619, 7, 6, 0, 0, 11619, 11620, 7, 3, 0, 0, 11620, 11621, 7, 5, 0, 0, 11621, 1310, 1, 0, 0, 0, 11622, 11623, 7, 19, 0, 0, 11623, 11624, 7, 0, 0, 0, 11624, 11625, 7, 11, 0, 0, 11625, 11626, 7, 16, 0, 0, 11626, 11627, 5, 95, 0, 0, 11627, 11628, 7, 18, 0, 0, 11628, 11629, 7, 6, 0, 0, 11629, 11630, 7, 0, 0, 0, 11630, 11631, 7, 3, 0, 0, 11631, 11632, 7, 5, 0, 0, 11632, 1312, 1, 0, 0, 0, 11633, 11634, 7, 19, 0, 0, 11634, 11635, 7, 0, 0, 0, 11635, 11636, 7, 5, 0, 0, 11636, 11637, 7, 19, 0, 0, 11637, 11638, 5, 95, 0, 0, 11638, 11639, 7, 0, 0, 0, 11639, 11640, 7, 20, 0, 0, 11640, 1314, 1, 0, 0, 0, 11641, 11642, 7, 19, 0, 0, 11642, 11643, 7, 0, 0, 0, 11643, 11644, 7, 5, 0, 0, 11644, 11645, 7, 19, 0, 0, 11645, 1316, 1, 0, 0, 0, 11646, 11647, 7, 19, 0, 0, 11647, 11648, 7, 0, 0, 0, 11648, 11649, 7, 5, 0, 0, 11649, 11650, 7, 19, 0, 0, 11650, 11651, 7, 21, 0, 0, 11651, 11652, 7, 6, 0, 0, 11652, 11653, 7, 18, 0, 0, 11653, 11654, 7, 5, 0, 0, 11654, 1318, 1, 0, 0, 0, 11655, 11656, 7, 19, 0, 0, 11656, 11657, 7, 0, 0, 0, 11657, 11658, 7, 5, 0, 0, 11658, 11659, 7, 19, 0, 0, 11659, 11660, 5, 95, 0, 0, 11660, 11661, 7, 5, 0, 0, 11661, 11662, 7, 20, 0, 0, 11662, 1320, 1, 0, 0, 0, 11663, 11664, 7, 19, 0, 0, 11664, 11665, 7, 0, 0, 0, 11665, 11666, 7, 13, 0, 0, 11666, 11667, 7, 10, 0, 0, 11667, 11668, 7, 7, 0, 0, 11668, 11669, 7, 17, 0, 0, 11669, 1322, 1, 0, 0, 0, 11670, 11671, 7, 19, 0, 0, 11671, 11672, 7, 6, 0, 0, 11672, 11673, 7, 0, 0, 0, 11673, 11674, 7, 9, 0, 0, 11674, 11675, 7, 6, 0, 0, 11675, 11676, 7, 3, 0, 0, 11676, 1324, 1, 0, 0, 0, 11677, 11678, 7, 19, 0, 0, 11678, 11679, 7, 6, 0, 0, 11679, 11680, 7, 0, 0, 0, 11680, 11681, 7, 15, 0, 0, 11681, 1326, 1, 0, 0, 0, 11682, 11683, 7, 19, 0, 0, 11683, 11684, 7, 6, 0, 0, 11684, 11685, 7, 11, 0, 0, 11685, 11686, 7, 15, 0, 0, 11686, 1328, 1, 0, 0, 0, 11687, 11688, 7, 19, 0, 0, 11688, 11689, 7, 6, 0, 0, 11689, 11690, 7, 25, 0, 0, 11690, 11691, 7, 4, 0, 0, 11691, 11692, 7, 2, 0, 0, 11692, 11693, 7, 3, 0, 0, 11693, 11694, 7, 0, 0, 0, 11694, 11695, 7, 22, 0, 0, 11695, 1330, 1, 0, 0, 0, 11696, 11697, 7, 19, 0, 0, 11697, 11698, 7, 6, 0, 0, 11698, 11699, 7, 25, 0, 0, 11699, 11700, 7, 4, 0, 0, 11700, 11701, 7, 2, 0, 0, 11701, 11702, 7, 3, 0, 0, 11702, 11703, 7, 6, 0, 0, 11703, 11704, 7, 16, 0, 0, 11704, 1332, 1, 0, 0, 0, 11705, 11706, 7, 19, 0, 0, 11706, 11707, 7, 10, 0, 0, 11707, 11708, 7, 9, 0, 0, 11708, 11709, 7, 9, 0, 0, 11709, 11710, 7, 6, 0, 0, 11710, 11711, 7, 7, 0, 0, 11711, 1334, 1, 0, 0, 0, 11712, 11713, 7, 19, 0, 0, 11713, 11714, 7, 10, 0, 0, 11714, 11715, 7, 9, 0, 0, 11715, 11716, 7, 6, 0, 0, 11716, 1336, 1, 0, 0, 0, 11717, 11718, 7, 19, 0, 0, 11718, 11719, 7, 10, 0, 0, 11719, 11720, 7, 6, 0, 0, 11720, 11721, 7, 3, 0, 0, 11721, 11722, 5, 95, 0, 0, 11722, 11723, 7, 2, 0, 0, 11723, 11724, 7, 3, 0, 0, 11724, 11725, 7, 9, 0, 0, 11725, 11726, 7, 6, 0, 0, 11726, 11727, 7, 3, 0, 0, 11727, 1338, 1, 0, 0, 0, 11728, 11729, 7, 19, 0, 0, 11729, 11730, 7, 10, 0, 0, 11730, 11731, 7, 6, 0, 0, 11731, 11732, 7, 3, 0, 0, 11732, 11733, 7, 0, 0, 0, 11733, 11734, 7, 3, 0, 0, 11734, 11735, 7, 8, 0, 0, 11735, 11736, 7, 19, 0, 0, 11736, 11737, 7, 10, 0, 0, 11737, 11738, 7, 8, 0, 0, 11738, 11739, 7, 0, 0, 0, 11739, 11740, 7, 11, 0, 0, 11740, 1340, 1, 0, 0, 0, 11741, 11742, 7, 19, 0, 0, 11742, 11743, 7, 10, 0, 0, 11743, 11744, 7, 6, 0, 0, 11744, 11745, 7, 3, 0, 0, 11745, 11746, 7, 0, 0, 0, 11746, 11747, 7, 3, 0, 0, 11747, 11748, 7, 8, 0, 0, 11748, 11749, 7, 19, 0, 0, 11749, 11750, 7, 10, 0, 0, 11750, 11751, 7, 6, 0, 0, 11751, 11752, 7, 5, 0, 0, 11752, 1342, 1, 0, 0, 0, 11753, 11754, 7, 19, 0, 0, 11754, 11755, 7, 10, 0, 0, 11755, 11756, 7, 6, 0, 0, 11756, 11757, 7, 3, 0, 0, 11757, 11758, 7, 0, 0, 0, 11758, 11759, 7, 3, 0, 0, 11759, 11760, 7, 8, 0, 0, 11760, 11761, 7, 19, 0, 0, 11761, 11762, 7, 18, 0, 0, 11762, 1344, 1, 0, 0, 0, 11763, 11764, 7, 19, 0, 0, 11764, 11765, 7, 10, 0, 0, 11765, 11766, 7, 17, 0, 0, 11766, 11767, 7, 19, 0, 0, 11767, 1346, 1, 0, 0, 0, 11768, 11769, 7, 19, 0, 0, 11769, 11770, 7, 10, 0, 0, 11770, 11771, 7, 7, 0, 0, 11771, 11772, 7, 4, 0, 0, 11772, 11773, 7, 5, 0, 0, 11773, 11774, 7, 6, 0, 0, 11774, 11775, 7, 4, 0, 0, 11775, 11776, 5, 95, 0, 0, 11776, 11777, 7, 1, 0, 0, 11777, 11778, 7, 6, 0, 0, 11778, 11779, 7, 17, 0, 0, 11779, 11780, 7, 10, 0, 0, 11780, 11781, 7, 7, 0, 0, 11781, 1348, 1, 0, 0, 0, 11782, 11783, 7, 19, 0, 0, 11783, 11784, 7, 10, 0, 0, 11784, 11785, 7, 7, 0, 0, 11785, 11786, 7, 4, 0, 0, 11786, 11787, 7, 5, 0, 0, 11787, 11788, 7, 6, 0, 0, 11788, 11789, 7, 4, 0, 0, 11789, 11790, 5, 95, 0, 0, 11790, 11791, 7, 6, 0, 0, 11791, 11792, 7, 7, 0, 0, 11792, 11793, 7, 9, 0, 0, 11793, 1350, 1, 0, 0, 0, 11794, 11795, 7, 19, 0, 0, 11795, 11796, 7, 2, 0, 0, 11796, 11797, 7, 4, 0, 0, 11797, 1352, 1, 0, 0, 0, 11798, 11799, 7, 19, 0, 0, 11799, 11800, 7, 2, 0, 0, 11800, 11801, 7, 12, 0, 0, 11801, 11802, 7, 3, 0, 0, 11802, 1354, 1, 0, 0, 0, 11803, 11804, 7, 19, 0, 0, 11804, 11805, 7, 2, 0, 0, 11805, 11806, 7, 12, 0, 0, 11806, 11807, 7, 3, 0, 0, 11807, 11808, 7, 5, 0, 0, 11808, 1356, 1, 0, 0, 0, 11809, 11810, 7, 19, 0, 0, 11810, 11811, 7, 4, 0, 0, 11811, 11812, 7, 4, 0, 0, 11812, 11813, 7, 15, 0, 0, 11813, 1358, 1, 0, 0, 0, 11814, 11815, 7, 19, 0, 0, 11815, 11816, 7, 22, 0, 0, 11816, 11817, 7, 14, 0, 0, 11817, 11818, 5, 95, 0, 0, 11818, 11819, 7, 1, 0, 0, 11819, 11820, 7, 3, 0, 0, 11820, 11821, 7, 2, 0, 0, 11821, 11822, 7, 21, 0, 0, 11822, 11823, 7, 6, 0, 0, 11823, 11824, 7, 3, 0, 0, 11824, 11825, 7, 6, 0, 0, 11825, 11826, 7, 9, 0, 0, 11826, 1360, 1, 0, 0, 0, 11827, 11828, 7, 19, 0, 0, 11828, 11829, 7, 18, 0, 0, 11829, 11830, 7, 1, 0, 0, 11830, 11831, 7, 3, 0, 0, 11831, 11832, 7, 10, 0, 0, 11832, 11833, 7, 9, 0, 0, 11833, 1362, 1, 0, 0, 0, 11834, 11835, 7, 19, 0, 0, 11835, 1364, 1, 0, 0, 0, 11836, 11837, 7, 10, 0, 0, 11837, 11838, 7, 9, 0, 0, 11838, 11839, 7, 6, 0, 0, 11839, 11840, 7, 7, 0, 0, 11840, 11841, 7, 4, 0, 0, 11841, 11842, 7, 10, 0, 0, 11842, 11843, 7, 16, 0, 0, 11843, 11844, 7, 10, 0, 0, 11844, 11845, 7, 6, 0, 0, 11845, 11846, 7, 9, 0, 0, 11846, 1366, 1, 0, 0, 0, 11847, 11848, 7, 10, 0, 0, 11848, 11849, 7, 9, 0, 0, 11849, 11850, 7, 6, 0, 0, 11850, 11851, 7, 7, 0, 0, 11851, 11852, 7, 4, 0, 0, 11852, 11853, 7, 10, 0, 0, 11853, 11854, 7, 16, 0, 0, 11854, 11855, 7, 10, 0, 0, 11855, 11856, 7, 6, 0, 0, 11856, 11857, 7, 3, 0, 0, 11857, 1368, 1, 0, 0, 0, 11858, 11859, 7, 10, 0, 0, 11859, 11860, 7, 9, 0, 0, 11860, 11861, 7, 6, 0, 0, 11861, 11862, 7, 7, 0, 0, 11862, 11863, 7, 4, 0, 0, 11863, 11864, 7, 10, 0, 0, 11864, 11865, 7, 4, 0, 0, 11865, 11866, 7, 18, 0, 0, 11866, 1370, 1, 0, 0, 0, 11867, 11868, 7, 10, 0, 0, 11868, 11869, 7, 9, 0, 0, 11869, 11870, 7, 17, 0, 0, 11870, 11871, 7, 6, 0, 0, 11871, 11872, 7, 7, 0, 0, 11872, 11873, 7, 6, 0, 0, 11873, 11874, 7, 3, 0, 0, 11874, 11875, 7, 0, 0, 0, 11875, 11876, 7, 4, 0, 0, 11876, 11877, 7, 2, 0, 0, 11877, 11878, 7, 3, 0, 0, 11878, 11879, 7, 5, 0, 0, 11879, 1372, 1, 0, 0, 0, 11880, 11881, 7, 10, 0, 0, 11881, 11882, 7, 9, 0, 0, 11882, 1374, 1, 0, 0, 0, 11883, 11884, 7, 10, 0, 0, 11884, 11885, 7, 9, 0, 0, 11885, 11886, 7, 11, 0, 0, 11886, 11887, 7, 6, 0, 0, 11887, 11888, 5, 95, 0, 0, 11888, 11889, 7, 4, 0, 0, 11889, 11890, 7, 10, 0, 0, 11890, 11891, 7, 14, 0, 0, 11891, 11892, 7, 6, 0, 0, 11892, 1376, 1, 0, 0, 0, 11893, 11894, 7, 10, 0, 0, 11894, 11895, 7, 16, 0, 0, 11895, 1378, 1, 0, 0, 0, 11896, 11897, 7, 10, 0, 0, 11897, 11898, 7, 17, 0, 0, 11898, 11899, 7, 7, 0, 0, 11899, 11900, 7, 2, 0, 0, 11900, 11901, 7, 3, 0, 0, 11901, 11902, 7, 6, 0, 0, 11902, 1380, 1, 0, 0, 0, 11903, 11904, 7, 10, 0, 0, 11904, 11905, 7, 17, 0, 0, 11905, 11906, 7, 7, 0, 0, 11906, 11907, 7, 2, 0, 0, 11907, 11908, 7, 3, 0, 0, 11908, 11909, 7, 6, 0, 0, 11909, 11910, 5, 95, 0, 0, 11910, 11911, 7, 8, 0, 0, 11911, 11912, 7, 19, 0, 0, 11912, 11913, 7, 0, 0, 0, 11913, 11914, 7, 3, 0, 0, 11914, 11915, 7, 5, 0, 0, 11915, 11916, 5, 95, 0, 0, 11916, 11917, 7, 0, 0, 0, 11917, 11918, 7, 16, 0, 0, 11918, 11919, 7, 4, 0, 0, 11919, 11920, 7, 6, 0, 0, 11920, 11921, 7, 3, 0, 0, 11921, 11922, 5, 95, 0, 0, 11922, 11923, 7, 6, 0, 0, 11923, 11924, 7, 2, 0, 0, 11924, 11925, 7, 3, 0, 0, 11925, 1382, 1, 0, 0, 0, 11926, 11927, 7, 10, 0, 0, 11927, 11928, 7, 17, 0, 0, 11928, 11929, 7, 7, 0, 0, 11929, 11930, 7, 2, 0, 0, 11930, 11931, 7, 3, 0, 0, 11931, 11932, 7, 6, 0, 0, 11932, 11933, 5, 95, 0, 0, 11933, 11934, 7, 2, 0, 0, 11934, 11935, 7, 15, 0, 0, 11935, 11936, 7, 4, 0, 0, 11936, 11937, 7, 10, 0, 0, 11937, 11938, 7, 14, 0, 0, 11938, 11939, 5, 95, 0, 0, 11939, 11940, 7, 6, 0, 0, 11940, 11941, 7, 14, 0, 0, 11941, 11942, 7, 1, 0, 0, 11942, 11943, 7, 6, 0, 0, 11943, 11944, 7, 9, 0, 0, 11944, 11945, 7, 9, 0, 0, 11945, 11946, 7, 6, 0, 0, 11946, 11947, 7, 9, 0, 0, 11947, 11948, 5, 95, 0, 0, 11948, 11949, 7, 19, 0, 0, 11949, 11950, 7, 10, 0, 0, 11950, 11951, 7, 7, 0, 0, 11951, 11952, 7, 4, 0, 0, 11952, 11953, 7, 5, 0, 0, 11953, 1384, 1, 0, 0, 0, 11954, 11955, 7, 10, 0, 0, 11955, 11956, 7, 17, 0, 0, 11956, 11957, 7, 7, 0, 0, 11957, 11958, 7, 2, 0, 0, 11958, 11959, 7, 3, 0, 0, 11959, 11960, 7, 6, 0, 0, 11960, 11961, 5, 95, 0, 0, 11961, 11962, 7, 3, 0, 0, 11962, 11963, 7, 2, 0, 0, 11963, 11964, 7, 22, 0, 0, 11964, 11965, 5, 95, 0, 0, 11965, 11966, 7, 2, 0, 0, 11966, 11967, 7, 7, 0, 0, 11967, 11968, 5, 95, 0, 0, 11968, 11969, 7, 9, 0, 0, 11969, 11970, 7, 12, 0, 0, 11970, 11971, 7, 15, 0, 0, 11971, 11972, 7, 21, 0, 0, 11972, 11973, 7, 6, 0, 0, 11973, 11974, 7, 18, 0, 0, 11974, 11975, 5, 95, 0, 0, 11975, 11976, 7, 10, 0, 0, 11976, 11977, 7, 7, 0, 0, 11977, 11978, 7, 9, 0, 0, 11978, 11979, 7, 6, 0, 0, 11979, 11980, 7, 25, 0, 0, 11980, 1386, 1, 0, 0, 0, 11981, 11982, 7, 10, 0, 0, 11982, 11983, 7, 17, 0, 0, 11983, 11984, 7, 7, 0, 0, 11984, 11985, 7, 2, 0, 0, 11985, 11986, 7, 3, 0, 0, 11986, 11987, 7, 6, 0, 0, 11987, 11988, 5, 95, 0, 0, 11988, 11989, 7, 22, 0, 0, 11989, 11990, 7, 19, 0, 0, 11990, 11991, 7, 6, 0, 0, 11991, 11992, 7, 3, 0, 0, 11992, 11993, 7, 6, 0, 0, 11993, 11994, 5, 95, 0, 0, 11994, 11995, 7, 8, 0, 0, 11995, 11996, 7, 11, 0, 0, 11996, 11997, 7, 0, 0, 0, 11997, 11998, 7, 12, 0, 0, 11998, 11999, 7, 5, 0, 0, 11999, 12000, 7, 6, 0, 0, 12000, 1388, 1, 0, 0, 0, 12001, 12002, 7, 10, 0, 0, 12002, 12003, 7, 11, 0, 0, 12003, 12004, 7, 14, 0, 0, 12004, 1390, 1, 0, 0, 0, 12005, 12006, 7, 10, 0, 0, 12006, 12007, 7, 14, 0, 0, 12007, 12008, 7, 14, 0, 0, 12008, 12009, 7, 6, 0, 0, 12009, 12010, 7, 9, 0, 0, 12010, 12011, 7, 10, 0, 0, 12011, 12012, 7, 0, 0, 0, 12012, 12013, 7, 4, 0, 0, 12013, 12014, 7, 6, 0, 0, 12014, 1392, 1, 0, 0, 0, 12015, 12016, 7, 10, 0, 0, 12016, 12017, 7, 14, 0, 0, 12017, 12018, 7, 15, 0, 0, 12018, 12019, 7, 0, 0, 0, 12019, 12020, 7, 8, 0, 0, 12020, 12021, 7, 4, 0, 0, 12021, 1394, 1, 0, 0, 0, 12022, 12023, 7, 10, 0, 0, 12023, 12024, 7, 14, 0, 0, 12024, 12025, 7, 15, 0, 0, 12025, 12026, 7, 2, 0, 0, 12026, 12027, 7, 3, 0, 0, 12027, 12028, 7, 4, 0, 0, 12028, 1396, 1, 0, 0, 0, 12029, 12030, 7, 10, 0, 0, 12030, 12031, 7, 7, 0, 0, 12031, 12032, 7, 0, 0, 0, 12032, 12033, 7, 8, 0, 0, 12033, 12034, 7, 4, 0, 0, 12034, 12035, 7, 10, 0, 0, 12035, 12036, 7, 13, 0, 0, 12036, 12037, 7, 6, 0, 0, 12037, 1398, 1, 0, 0, 0, 12038, 12039, 7, 10, 0, 0, 12039, 12040, 7, 7, 0, 0, 12040, 12041, 7, 0, 0, 0, 12041, 12042, 7, 8, 0, 0, 12042, 12043, 7, 4, 0, 0, 12043, 12044, 7, 10, 0, 0, 12044, 12045, 7, 13, 0, 0, 12045, 12046, 7, 6, 0, 0, 12046, 12047, 5, 95, 0, 0, 12047, 12048, 7, 0, 0, 0, 12048, 12049, 7, 8, 0, 0, 12049, 12050, 7, 8, 0, 0, 12050, 12051, 7, 2, 0, 0, 12051, 12052, 7, 12, 0, 0, 12052, 12053, 7, 7, 0, 0, 12053, 12054, 7, 4, 0, 0, 12054, 12055, 5, 95, 0, 0, 12055, 12056, 7, 4, 0, 0, 12056, 12057, 7, 10, 0, 0, 12057, 12058, 7, 14, 0, 0, 12058, 12059, 7, 6, 0, 0, 12059, 1400, 1, 0, 0, 0, 12060, 12061, 7, 10, 0, 0, 12061, 12062, 7, 7, 0, 0, 12062, 12063, 7, 8, 0, 0, 12063, 12064, 7, 11, 0, 0, 12064, 12065, 7, 12, 0, 0, 12065, 12066, 7, 9, 0, 0, 12066, 12067, 7, 6, 0, 0, 12067, 1402, 1, 0, 0, 0, 12068, 12069, 7, 10, 0, 0, 12069, 12070, 7, 7, 0, 0, 12070, 12071, 7, 8, 0, 0, 12071, 12072, 7, 11, 0, 0, 12072, 12073, 7, 12, 0, 0, 12073, 12074, 7, 9, 0, 0, 12074, 12075, 7, 6, 0, 0, 12075, 12076, 5, 95, 0, 0, 12076, 12077, 7, 13, 0, 0, 12077, 12078, 7, 6, 0, 0, 12078, 12079, 7, 3, 0, 0, 12079, 12080, 7, 5, 0, 0, 12080, 12081, 7, 10, 0, 0, 12081, 12082, 7, 2, 0, 0, 12082, 12083, 7, 7, 0, 0, 12083, 1404, 1, 0, 0, 0, 12084, 12085, 7, 10, 0, 0, 12085, 12086, 7, 7, 0, 0, 12086, 12087, 7, 8, 0, 0, 12087, 12088, 7, 11, 0, 0, 12088, 12089, 7, 12, 0, 0, 12089, 12090, 7, 9, 0, 0, 12090, 12091, 7, 10, 0, 0, 12091, 12092, 7, 7, 0, 0, 12092, 12093, 7, 17, 0, 0, 12093, 1406, 1, 0, 0, 0, 12094, 12095, 7, 10, 0, 0, 12095, 12096, 7, 7, 0, 0, 12096, 12097, 7, 8, 0, 0, 12097, 12098, 7, 3, 0, 0, 12098, 12099, 7, 6, 0, 0, 12099, 12100, 7, 14, 0, 0, 12100, 12101, 7, 6, 0, 0, 12101, 12102, 7, 7, 0, 0, 12102, 12103, 7, 4, 0, 0, 12103, 12104, 7, 0, 0, 0, 12104, 12105, 7, 11, 0, 0, 12105, 1408, 1, 0, 0, 0, 12106, 12107, 7, 10, 0, 0, 12107, 12108, 7, 7, 0, 0, 12108, 12109, 7, 8, 0, 0, 12109, 12110, 7, 3, 0, 0, 12110, 12111, 7, 6, 0, 0, 12111, 12112, 7, 14, 0, 0, 12112, 12113, 7, 6, 0, 0, 12113, 12114, 7, 7, 0, 0, 12114, 12115, 7, 4, 0, 0, 12115, 1410, 1, 0, 0, 0, 12116, 12117, 7, 10, 0, 0, 12117, 12118, 7, 7, 0, 0, 12118, 12119, 7, 8, 0, 0, 12119, 12120, 7, 3, 0, 0, 12120, 1412, 1, 0, 0, 0, 12121, 12122, 7, 10, 0, 0, 12122, 12123, 7, 7, 0, 0, 12123, 12124, 7, 9, 0, 0, 12124, 12125, 7, 6, 0, 0, 12125, 12126, 7, 7, 0, 0, 12126, 12127, 7, 4, 0, 0, 12127, 1414, 1, 0, 0, 0, 12128, 12129, 7, 10, 0, 0, 12129, 12130, 7, 7, 0, 0, 12130, 12131, 7, 9, 0, 0, 12131, 12132, 7, 6, 0, 0, 12132, 12133, 7, 25, 0, 0, 12133, 12134, 5, 95, 0, 0, 12134, 12135, 7, 0, 0, 0, 12135, 12136, 7, 5, 0, 0, 12136, 12137, 7, 8, 0, 0, 12137, 1416, 1, 0, 0, 0, 12138, 12139, 7, 10, 0, 0, 12139, 12140, 7, 7, 0, 0, 12140, 12141, 7, 9, 0, 0, 12141, 12142, 7, 6, 0, 0, 12142, 12143, 7, 25, 0, 0, 12143, 12144, 5, 95, 0, 0, 12144, 12145, 7, 8, 0, 0, 12145, 12146, 7, 2, 0, 0, 12146, 12147, 7, 14, 0, 0, 12147, 12148, 7, 1, 0, 0, 12148, 12149, 7, 10, 0, 0, 12149, 12150, 7, 7, 0, 0, 12150, 12151, 7, 6, 0, 0, 12151, 1418, 1, 0, 0, 0, 12152, 12153, 7, 10, 0, 0, 12153, 12154, 7, 7, 0, 0, 12154, 12155, 7, 9, 0, 0, 12155, 12156, 7, 6, 0, 0, 12156, 12157, 7, 25, 0, 0, 12157, 12158, 5, 95, 0, 0, 12158, 12159, 7, 9, 0, 0, 12159, 12160, 7, 6, 0, 0, 12160, 12161, 7, 5, 0, 0, 12161, 12162, 7, 8, 0, 0, 12162, 1420, 1, 0, 0, 0, 12163, 12164, 7, 10, 0, 0, 12164, 12165, 7, 7, 0, 0, 12165, 12166, 7, 9, 0, 0, 12166, 12167, 7, 6, 0, 0, 12167, 12168, 7, 25, 0, 0, 12168, 12169, 7, 6, 0, 0, 12169, 12170, 7, 9, 0, 0, 12170, 1422, 1, 0, 0, 0, 12171, 12172, 7, 10, 0, 0, 12172, 12173, 7, 7, 0, 0, 12173, 12174, 7, 9, 0, 0, 12174, 12175, 7, 6, 0, 0, 12175, 12176, 7, 25, 0, 0, 12176, 12177, 7, 6, 0, 0, 12177, 12178, 7, 5, 0, 0, 12178, 1424, 1, 0, 0, 0, 12179, 12180, 7, 10, 0, 0, 12180, 12181, 7, 7, 0, 0, 12181, 12182, 7, 9, 0, 0, 12182, 12183, 7, 6, 0, 0, 12183, 12184, 7, 25, 0, 0, 12184, 12185, 5, 95, 0, 0, 12185, 12186, 7, 16, 0, 0, 12186, 12187, 7, 16, 0, 0, 12187, 12188, 7, 5, 0, 0, 12188, 1426, 1, 0, 0, 0, 12189, 12190, 7, 10, 0, 0, 12190, 12191, 7, 7, 0, 0, 12191, 12192, 7, 9, 0, 0, 12192, 12193, 7, 6, 0, 0, 12193, 12194, 7, 25, 0, 0, 12194, 12195, 5, 95, 0, 0, 12195, 12196, 7, 16, 0, 0, 12196, 12197, 7, 10, 0, 0, 12197, 12198, 7, 11, 0, 0, 12198, 12199, 7, 4, 0, 0, 12199, 12200, 7, 6, 0, 0, 12200, 12201, 7, 3, 0, 0, 12201, 1428, 1, 0, 0, 0, 12202, 12203, 7, 10, 0, 0, 12203, 12204, 7, 7, 0, 0, 12204, 12205, 7, 9, 0, 0, 12205, 12206, 7, 6, 0, 0, 12206, 12207, 7, 25, 0, 0, 12207, 1430, 1, 0, 0, 0, 12208, 12209, 7, 10, 0, 0, 12209, 12210, 7, 7, 0, 0, 12210, 12211, 7, 9, 0, 0, 12211, 12212, 7, 6, 0, 0, 12212, 12213, 7, 25, 0, 0, 12213, 12214, 7, 10, 0, 0, 12214, 12215, 7, 7, 0, 0, 12215, 12216, 7, 17, 0, 0, 12216, 1432, 1, 0, 0, 0, 12217, 12218, 7, 10, 0, 0, 12218, 12219, 7, 7, 0, 0, 12219, 12220, 7, 9, 0, 0, 12220, 12221, 7, 6, 0, 0, 12221, 12222, 7, 25, 0, 0, 12222, 12223, 5, 95, 0, 0, 12223, 12224, 7, 20, 0, 0, 12224, 12225, 7, 2, 0, 0, 12225, 12226, 7, 10, 0, 0, 12226, 12227, 7, 7, 0, 0, 12227, 1434, 1, 0, 0, 0, 12228, 12229, 7, 10, 0, 0, 12229, 12230, 7, 7, 0, 0, 12230, 12231, 7, 9, 0, 0, 12231, 12232, 7, 6, 0, 0, 12232, 12233, 7, 25, 0, 0, 12233, 12234, 5, 95, 0, 0, 12234, 12235, 7, 3, 0, 0, 12235, 12236, 7, 2, 0, 0, 12236, 12237, 7, 22, 0, 0, 12237, 12238, 7, 5, 0, 0, 12238, 1436, 1, 0, 0, 0, 12239, 12240, 7, 10, 0, 0, 12240, 12241, 7, 7, 0, 0, 12241, 12242, 7, 9, 0, 0, 12242, 12243, 7, 6, 0, 0, 12243, 12244, 7, 25, 0, 0, 12244, 12245, 5, 95, 0, 0, 12245, 12246, 7, 3, 0, 0, 12246, 12247, 7, 3, 0, 0, 12247, 12248, 7, 5, 0, 0, 12248, 1438, 1, 0, 0, 0, 12249, 12250, 7, 10, 0, 0, 12250, 12251, 7, 7, 0, 0, 12251, 12252, 7, 9, 0, 0, 12252, 12253, 7, 6, 0, 0, 12253, 12254, 7, 25, 0, 0, 12254, 12255, 5, 95, 0, 0, 12255, 12256, 7, 3, 0, 0, 12256, 12257, 7, 5, 0, 0, 12257, 12258, 5, 95, 0, 0, 12258, 12259, 7, 0, 0, 0, 12259, 12260, 7, 5, 0, 0, 12260, 12261, 7, 8, 0, 0, 12261, 1440, 1, 0, 0, 0, 12262, 12263, 7, 10, 0, 0, 12263, 12264, 7, 7, 0, 0, 12264, 12265, 7, 9, 0, 0, 12265, 12266, 7, 6, 0, 0, 12266, 12267, 7, 25, 0, 0, 12267, 12268, 5, 95, 0, 0, 12268, 12269, 7, 3, 0, 0, 12269, 12270, 7, 5, 0, 0, 12270, 12271, 5, 95, 0, 0, 12271, 12272, 7, 9, 0, 0, 12272, 12273, 7, 6, 0, 0, 12273, 12274, 7, 5, 0, 0, 12274, 12275, 7, 8, 0, 0, 12275, 1442, 1, 0, 0, 0, 12276, 12277, 7, 10, 0, 0, 12277, 12278, 7, 7, 0, 0, 12278, 12279, 7, 9, 0, 0, 12279, 12280, 7, 6, 0, 0, 12280, 12281, 7, 25, 0, 0, 12281, 12282, 5, 95, 0, 0, 12282, 12283, 7, 3, 0, 0, 12283, 12284, 7, 5, 0, 0, 12284, 1444, 1, 0, 0, 0, 12285, 12286, 7, 10, 0, 0, 12286, 12287, 7, 7, 0, 0, 12287, 12288, 7, 9, 0, 0, 12288, 12289, 7, 6, 0, 0, 12289, 12290, 7, 25, 0, 0, 12290, 12291, 5, 95, 0, 0, 12291, 12292, 7, 5, 0, 0, 12292, 12293, 7, 8, 0, 0, 12293, 12294, 7, 0, 0, 0, 12294, 12295, 7, 7, 0, 0, 12295, 1446, 1, 0, 0, 0, 12296, 12297, 7, 10, 0, 0, 12297, 12298, 7, 7, 0, 0, 12298, 12299, 7, 9, 0, 0, 12299, 12300, 7, 6, 0, 0, 12300, 12301, 7, 25, 0, 0, 12301, 12302, 5, 95, 0, 0, 12302, 12303, 7, 5, 0, 0, 12303, 12304, 7, 21, 0, 0, 12304, 12305, 7, 10, 0, 0, 12305, 12306, 7, 15, 0, 0, 12306, 12307, 5, 95, 0, 0, 12307, 12308, 7, 5, 0, 0, 12308, 12309, 7, 8, 0, 0, 12309, 12310, 7, 0, 0, 0, 12310, 12311, 7, 7, 0, 0, 12311, 1448, 1, 0, 0, 0, 12312, 12313, 7, 10, 0, 0, 12313, 12314, 7, 7, 0, 0, 12314, 12315, 7, 9, 0, 0, 12315, 12316, 7, 6, 0, 0, 12316, 12317, 7, 25, 0, 0, 12317, 12318, 5, 95, 0, 0, 12318, 12319, 7, 5, 0, 0, 12319, 12320, 7, 5, 0, 0, 12320, 12321, 5, 95, 0, 0, 12321, 12322, 7, 0, 0, 0, 12322, 12323, 7, 5, 0, 0, 12323, 12324, 7, 8, 0, 0, 12324, 1450, 1, 0, 0, 0, 12325, 12326, 7, 10, 0, 0, 12326, 12327, 7, 7, 0, 0, 12327, 12328, 7, 9, 0, 0, 12328, 12329, 7, 6, 0, 0, 12329, 12330, 7, 25, 0, 0, 12330, 12331, 5, 95, 0, 0, 12331, 12332, 7, 5, 0, 0, 12332, 12333, 7, 5, 0, 0, 12333, 12334, 5, 95, 0, 0, 12334, 12335, 7, 9, 0, 0, 12335, 12336, 7, 6, 0, 0, 12336, 12337, 7, 5, 0, 0, 12337, 12338, 7, 8, 0, 0, 12338, 1452, 1, 0, 0, 0, 12339, 12340, 7, 10, 0, 0, 12340, 12341, 7, 7, 0, 0, 12341, 12342, 7, 9, 0, 0, 12342, 12343, 7, 6, 0, 0, 12343, 12344, 7, 25, 0, 0, 12344, 12345, 5, 95, 0, 0, 12345, 12346, 7, 5, 0, 0, 12346, 12347, 7, 5, 0, 0, 12347, 1454, 1, 0, 0, 0, 12348, 12349, 7, 10, 0, 0, 12349, 12350, 7, 7, 0, 0, 12350, 12351, 7, 9, 0, 0, 12351, 12352, 7, 6, 0, 0, 12352, 12353, 7, 25, 0, 0, 12353, 12354, 5, 95, 0, 0, 12354, 12355, 7, 5, 0, 0, 12355, 12356, 7, 4, 0, 0, 12356, 12357, 7, 0, 0, 0, 12357, 12358, 7, 4, 0, 0, 12358, 12359, 7, 5, 0, 0, 12359, 1456, 1, 0, 0, 0, 12360, 12361, 7, 10, 0, 0, 12361, 12362, 7, 7, 0, 0, 12362, 12363, 7, 9, 0, 0, 12363, 12364, 7, 6, 0, 0, 12364, 12365, 7, 25, 0, 0, 12365, 12366, 7, 4, 0, 0, 12366, 12367, 7, 18, 0, 0, 12367, 12368, 7, 15, 0, 0, 12368, 12369, 7, 6, 0, 0, 12369, 1458, 1, 0, 0, 0, 12370, 12371, 7, 10, 0, 0, 12371, 12372, 7, 7, 0, 0, 12372, 12373, 7, 9, 0, 0, 12373, 12374, 7, 6, 0, 0, 12374, 12375, 7, 25, 0, 0, 12375, 12376, 7, 4, 0, 0, 12376, 12377, 7, 18, 0, 0, 12377, 12378, 7, 15, 0, 0, 12378, 12379, 7, 6, 0, 0, 12379, 12380, 7, 5, 0, 0, 12380, 1460, 1, 0, 0, 0, 12381, 12382, 7, 10, 0, 0, 12382, 12383, 7, 7, 0, 0, 12383, 12384, 7, 9, 0, 0, 12384, 12385, 7, 10, 0, 0, 12385, 12386, 7, 8, 0, 0, 12386, 12387, 7, 0, 0, 0, 12387, 12388, 7, 4, 0, 0, 12388, 12389, 7, 2, 0, 0, 12389, 12390, 7, 3, 0, 0, 12390, 1462, 1, 0, 0, 0, 12391, 12392, 7, 10, 0, 0, 12392, 12393, 7, 7, 0, 0, 12393, 12394, 7, 9, 0, 0, 12394, 12395, 7, 10, 0, 0, 12395, 12396, 7, 8, 0, 0, 12396, 12397, 7, 6, 0, 0, 12397, 12398, 7, 5, 0, 0, 12398, 1464, 1, 0, 0, 0, 12399, 12400, 7, 10, 0, 0, 12400, 12401, 7, 7, 0, 0, 12401, 12402, 7, 16, 0, 0, 12402, 12403, 7, 10, 0, 0, 12403, 12404, 7, 7, 0, 0, 12404, 12405, 7, 10, 0, 0, 12405, 12406, 7, 4, 0, 0, 12406, 12407, 7, 6, 0, 0, 12407, 1466, 1, 0, 0, 0, 12408, 12409, 7, 10, 0, 0, 12409, 12410, 7, 7, 0, 0, 12410, 12411, 7, 16, 0, 0, 12411, 12412, 7, 2, 0, 0, 12412, 12413, 7, 3, 0, 0, 12413, 12414, 7, 14, 0, 0, 12414, 12415, 7, 0, 0, 0, 12415, 12416, 7, 4, 0, 0, 12416, 12417, 7, 10, 0, 0, 12417, 12418, 7, 2, 0, 0, 12418, 12419, 7, 7, 0, 0, 12419, 12420, 7, 0, 0, 0, 12420, 12421, 7, 11, 0, 0, 12421, 1468, 1, 0, 0, 0, 12422, 12423, 7, 10, 0, 0, 12423, 12424, 7, 7, 0, 0, 12424, 12425, 7, 19, 0, 0, 12425, 12426, 7, 6, 0, 0, 12426, 12427, 7, 3, 0, 0, 12427, 12428, 7, 10, 0, 0, 12428, 12429, 7, 4, 0, 0, 12429, 1470, 1, 0, 0, 0, 12430, 12431, 7, 10, 0, 0, 12431, 12432, 7, 7, 0, 0, 12432, 1472, 1, 0, 0, 0, 12433, 12434, 7, 10, 0, 0, 12434, 12435, 7, 7, 0, 0, 12435, 12436, 7, 10, 0, 0, 12436, 12437, 7, 4, 0, 0, 12437, 12438, 7, 8, 0, 0, 12438, 12439, 7, 0, 0, 0, 12439, 12440, 7, 15, 0, 0, 12440, 1474, 1, 0, 0, 0, 12441, 12442, 7, 10, 0, 0, 12442, 12443, 7, 7, 0, 0, 12443, 12444, 7, 10, 0, 0, 12444, 12445, 7, 4, 0, 0, 12445, 12446, 7, 10, 0, 0, 12446, 12447, 7, 0, 0, 0, 12447, 12448, 7, 11, 0, 0, 12448, 1476, 1, 0, 0, 0, 12449, 12450, 7, 10, 0, 0, 12450, 12451, 7, 7, 0, 0, 12451, 12452, 7, 10, 0, 0, 12452, 12453, 7, 4, 0, 0, 12453, 12454, 7, 10, 0, 0, 12454, 12455, 7, 0, 0, 0, 12455, 12456, 7, 11, 0, 0, 12456, 12457, 7, 10, 0, 0, 12457, 12458, 7, 23, 0, 0, 12458, 12459, 7, 6, 0, 0, 12459, 12460, 7, 9, 0, 0, 12460, 1478, 1, 0, 0, 0, 12461, 12462, 7, 10, 0, 0, 12462, 12463, 7, 7, 0, 0, 12463, 12464, 7, 10, 0, 0, 12464, 12465, 7, 4, 0, 0, 12465, 12466, 7, 10, 0, 0, 12466, 12467, 7, 0, 0, 0, 12467, 12468, 7, 11, 0, 0, 12468, 12469, 7, 11, 0, 0, 12469, 12470, 7, 18, 0, 0, 12470, 1480, 1, 0, 0, 0, 12471, 12472, 7, 10, 0, 0, 12472, 12473, 7, 7, 0, 0, 12473, 12474, 7, 10, 0, 0, 12474, 12475, 7, 4, 0, 0, 12475, 12476, 7, 3, 0, 0, 12476, 12477, 7, 0, 0, 0, 12477, 12478, 7, 7, 0, 0, 12478, 12479, 7, 5, 0, 0, 12479, 1482, 1, 0, 0, 0, 12480, 12481, 7, 10, 0, 0, 12481, 12482, 7, 7, 0, 0, 12482, 12483, 7, 11, 0, 0, 12483, 12484, 7, 10, 0, 0, 12484, 12485, 7, 7, 0, 0, 12485, 12486, 7, 6, 0, 0, 12486, 1484, 1, 0, 0, 0, 12487, 12488, 7, 10, 0, 0, 12488, 12489, 7, 7, 0, 0, 12489, 12490, 7, 11, 0, 0, 12490, 12491, 7, 10, 0, 0, 12491, 12492, 7, 7, 0, 0, 12492, 12493, 7, 6, 0, 0, 12493, 12494, 5, 95, 0, 0, 12494, 12495, 7, 25, 0, 0, 12495, 12496, 7, 14, 0, 0, 12496, 12497, 7, 11, 0, 0, 12497, 12498, 7, 4, 0, 0, 12498, 12499, 7, 18, 0, 0, 12499, 12500, 7, 15, 0, 0, 12500, 12501, 7, 6, 0, 0, 12501, 12502, 5, 95, 0, 0, 12502, 12503, 7, 7, 0, 0, 12503, 12504, 7, 4, 0, 0, 12504, 1486, 1, 0, 0, 0, 12505, 12506, 7, 10, 0, 0, 12506, 12507, 7, 7, 0, 0, 12507, 12508, 7, 14, 0, 0, 12508, 12509, 7, 6, 0, 0, 12509, 12510, 7, 14, 0, 0, 12510, 12511, 7, 2, 0, 0, 12511, 12512, 7, 3, 0, 0, 12512, 12513, 7, 18, 0, 0, 12513, 1488, 1, 0, 0, 0, 12514, 12515, 7, 10, 0, 0, 12515, 12516, 7, 7, 0, 0, 12516, 12517, 5, 95, 0, 0, 12517, 12518, 7, 14, 0, 0, 12518, 12519, 7, 6, 0, 0, 12519, 12520, 7, 14, 0, 0, 12520, 12521, 7, 2, 0, 0, 12521, 12522, 7, 3, 0, 0, 12522, 12523, 7, 18, 0, 0, 12523, 12524, 5, 95, 0, 0, 12524, 12525, 7, 14, 0, 0, 12525, 12526, 7, 6, 0, 0, 12526, 12527, 7, 4, 0, 0, 12527, 12528, 7, 0, 0, 0, 12528, 12529, 7, 9, 0, 0, 12529, 12530, 7, 0, 0, 0, 12530, 12531, 7, 4, 0, 0, 12531, 12532, 7, 0, 0, 0, 12532, 1490, 1, 0, 0, 0, 12533, 12534, 7, 10, 0, 0, 12534, 12535, 7, 7, 0, 0, 12535, 12536, 7, 14, 0, 0, 12536, 12537, 7, 6, 0, 0, 12537, 12538, 7, 14, 0, 0, 12538, 12539, 7, 2, 0, 0, 12539, 12540, 7, 3, 0, 0, 12540, 12541, 7, 18, 0, 0, 12541, 12542, 5, 95, 0, 0, 12542, 12543, 7, 15, 0, 0, 12543, 12544, 7, 3, 0, 0, 12544, 12545, 7, 12, 0, 0, 12545, 12546, 7, 7, 0, 0, 12546, 12547, 7, 10, 0, 0, 12547, 12548, 7, 7, 0, 0, 12548, 12549, 7, 17, 0, 0, 12549, 1492, 1, 0, 0, 0, 12550, 12551, 7, 10, 0, 0, 12551, 12552, 7, 7, 0, 0, 12552, 12553, 7, 7, 0, 0, 12553, 12554, 7, 6, 0, 0, 12554, 12555, 7, 3, 0, 0, 12555, 1494, 1, 0, 0, 0, 12556, 12557, 7, 10, 0, 0, 12557, 12558, 7, 7, 0, 0, 12558, 12559, 7, 2, 0, 0, 12559, 12560, 7, 12, 0, 0, 12560, 12561, 7, 4, 0, 0, 12561, 1496, 1, 0, 0, 0, 12562, 12563, 7, 10, 0, 0, 12563, 12564, 7, 7, 0, 0, 12564, 12565, 7, 15, 0, 0, 12565, 12566, 7, 11, 0, 0, 12566, 12567, 7, 0, 0, 0, 12567, 12568, 7, 8, 0, 0, 12568, 12569, 7, 6, 0, 0, 12569, 1498, 1, 0, 0, 0, 12570, 12571, 7, 10, 0, 0, 12571, 12572, 7, 7, 0, 0, 12572, 12573, 7, 15, 0, 0, 12573, 12574, 7, 12, 0, 0, 12574, 12575, 7, 4, 0, 0, 12575, 12576, 7, 16, 0, 0, 12576, 12577, 7, 2, 0, 0, 12577, 12578, 7, 3, 0, 0, 12578, 12579, 7, 14, 0, 0, 12579, 12580, 7, 0, 0, 0, 12580, 12581, 7, 4, 0, 0, 12581, 1500, 1, 0, 0, 0, 12582, 12583, 7, 10, 0, 0, 12583, 12584, 7, 7, 0, 0, 12584, 12585, 7, 5, 0, 0, 12585, 12586, 7, 6, 0, 0, 12586, 12587, 7, 3, 0, 0, 12587, 12588, 7, 4, 0, 0, 12588, 12589, 7, 8, 0, 0, 12589, 12590, 7, 19, 0, 0, 12590, 12591, 7, 10, 0, 0, 12591, 12592, 7, 11, 0, 0, 12592, 12593, 7, 9, 0, 0, 12593, 12594, 7, 25, 0, 0, 12594, 12595, 7, 14, 0, 0, 12595, 12596, 7, 11, 0, 0, 12596, 12597, 7, 0, 0, 0, 12597, 12598, 7, 16, 0, 0, 12598, 12599, 7, 4, 0, 0, 12599, 12600, 7, 6, 0, 0, 12600, 12601, 7, 3, 0, 0, 12601, 1502, 1, 0, 0, 0, 12602, 12603, 7, 10, 0, 0, 12603, 12604, 7, 7, 0, 0, 12604, 12605, 7, 5, 0, 0, 12605, 12606, 7, 6, 0, 0, 12606, 12607, 7, 3, 0, 0, 12607, 12608, 7, 4, 0, 0, 12608, 12609, 7, 8, 0, 0, 12609, 12610, 7, 19, 0, 0, 12610, 12611, 7, 10, 0, 0, 12611, 12612, 7, 11, 0, 0, 12612, 12613, 7, 9, 0, 0, 12613, 12614, 7, 25, 0, 0, 12614, 12615, 7, 14, 0, 0, 12615, 12616, 7, 11, 0, 0, 12616, 12617, 7, 1, 0, 0, 12617, 12618, 7, 6, 0, 0, 12618, 12619, 7, 16, 0, 0, 12619, 12620, 7, 2, 0, 0, 12620, 12621, 7, 3, 0, 0, 12621, 12622, 7, 6, 0, 0, 12622, 1504, 1, 0, 0, 0, 12623, 12624, 7, 10, 0, 0, 12624, 12625, 7, 7, 0, 0, 12625, 12626, 7, 5, 0, 0, 12626, 12627, 7, 6, 0, 0, 12627, 12628, 7, 3, 0, 0, 12628, 12629, 7, 4, 0, 0, 12629, 12630, 7, 8, 0, 0, 12630, 12631, 7, 19, 0, 0, 12631, 12632, 7, 10, 0, 0, 12632, 12633, 7, 11, 0, 0, 12633, 12634, 7, 9, 0, 0, 12634, 12635, 7, 25, 0, 0, 12635, 12636, 7, 14, 0, 0, 12636, 12637, 7, 11, 0, 0, 12637, 1506, 1, 0, 0, 0, 12638, 12639, 7, 10, 0, 0, 12639, 12640, 7, 7, 0, 0, 12640, 12641, 7, 5, 0, 0, 12641, 12642, 7, 6, 0, 0, 12642, 12643, 7, 3, 0, 0, 12643, 12644, 7, 4, 0, 0, 12644, 1508, 1, 0, 0, 0, 12645, 12646, 7, 10, 0, 0, 12646, 12647, 7, 7, 0, 0, 12647, 12648, 7, 5, 0, 0, 12648, 12649, 7, 6, 0, 0, 12649, 12650, 7, 3, 0, 0, 12650, 12651, 7, 4, 0, 0, 12651, 12652, 7, 25, 0, 0, 12652, 12653, 7, 14, 0, 0, 12653, 12654, 7, 11, 0, 0, 12654, 12655, 7, 0, 0, 0, 12655, 12656, 7, 16, 0, 0, 12656, 12657, 7, 4, 0, 0, 12657, 12658, 7, 6, 0, 0, 12658, 12659, 7, 3, 0, 0, 12659, 1510, 1, 0, 0, 0, 12660, 12661, 7, 10, 0, 0, 12661, 12662, 7, 7, 0, 0, 12662, 12663, 7, 5, 0, 0, 12663, 12664, 7, 6, 0, 0, 12664, 12665, 7, 3, 0, 0, 12665, 12666, 7, 4, 0, 0, 12666, 12667, 7, 25, 0, 0, 12667, 12668, 7, 14, 0, 0, 12668, 12669, 7, 11, 0, 0, 12669, 12670, 7, 1, 0, 0, 12670, 12671, 7, 6, 0, 0, 12671, 12672, 7, 16, 0, 0, 12672, 12673, 7, 2, 0, 0, 12673, 12674, 7, 3, 0, 0, 12674, 12675, 7, 6, 0, 0, 12675, 1512, 1, 0, 0, 0, 12676, 12677, 7, 10, 0, 0, 12677, 12678, 7, 7, 0, 0, 12678, 12679, 7, 5, 0, 0, 12679, 12680, 7, 4, 0, 0, 12680, 12681, 7, 0, 0, 0, 12681, 12682, 7, 7, 0, 0, 12682, 12683, 7, 8, 0, 0, 12683, 12684, 7, 6, 0, 0, 12684, 1514, 1, 0, 0, 0, 12685, 12686, 7, 10, 0, 0, 12686, 12687, 7, 7, 0, 0, 12687, 12688, 7, 5, 0, 0, 12688, 12689, 7, 4, 0, 0, 12689, 12690, 7, 0, 0, 0, 12690, 12691, 7, 7, 0, 0, 12691, 12692, 7, 8, 0, 0, 12692, 12693, 7, 6, 0, 0, 12693, 12694, 7, 5, 0, 0, 12694, 1516, 1, 0, 0, 0, 12695, 12696, 7, 10, 0, 0, 12696, 12697, 7, 7, 0, 0, 12697, 12698, 7, 5, 0, 0, 12698, 12699, 7, 4, 0, 0, 12699, 12700, 7, 0, 0, 0, 12700, 12701, 7, 7, 0, 0, 12701, 12702, 7, 4, 0, 0, 12702, 12703, 7, 10, 0, 0, 12703, 12704, 7, 0, 0, 0, 12704, 12705, 7, 1, 0, 0, 12705, 12706, 7, 11, 0, 0, 12706, 12707, 7, 6, 0, 0, 12707, 1518, 1, 0, 0, 0, 12708, 12709, 7, 10, 0, 0, 12709, 12710, 7, 7, 0, 0, 12710, 12711, 7, 5, 0, 0, 12711, 12712, 7, 4, 0, 0, 12712, 12713, 7, 0, 0, 0, 12713, 12714, 7, 7, 0, 0, 12714, 12715, 7, 4, 0, 0, 12715, 12716, 7, 11, 0, 0, 12716, 12717, 7, 18, 0, 0, 12717, 1520, 1, 0, 0, 0, 12718, 12719, 7, 10, 0, 0, 12719, 12720, 7, 7, 0, 0, 12720, 12721, 7, 5, 0, 0, 12721, 12722, 7, 4, 0, 0, 12722, 12723, 7, 6, 0, 0, 12723, 12724, 7, 0, 0, 0, 12724, 12725, 7, 9, 0, 0, 12725, 1522, 1, 0, 0, 0, 12726, 12727, 7, 10, 0, 0, 12727, 12728, 7, 7, 0, 0, 12728, 12729, 7, 5, 0, 0, 12729, 12730, 7, 4, 0, 0, 12730, 12731, 7, 3, 0, 0, 12731, 12732, 5, 50, 0, 0, 12732, 1524, 1, 0, 0, 0, 12733, 12734, 7, 10, 0, 0, 12734, 12735, 7, 7, 0, 0, 12735, 12736, 7, 5, 0, 0, 12736, 12737, 7, 4, 0, 0, 12737, 12738, 7, 3, 0, 0, 12738, 12739, 5, 52, 0, 0, 12739, 1526, 1, 0, 0, 0, 12740, 12741, 7, 10, 0, 0, 12741, 12742, 7, 7, 0, 0, 12742, 12743, 7, 5, 0, 0, 12743, 12744, 7, 4, 0, 0, 12744, 12745, 7, 3, 0, 0, 12745, 12746, 7, 1, 0, 0, 12746, 1528, 1, 0, 0, 0, 12747, 12748, 7, 10, 0, 0, 12748, 12749, 7, 7, 0, 0, 12749, 12750, 7, 5, 0, 0, 12750, 12751, 7, 4, 0, 0, 12751, 12752, 7, 3, 0, 0, 12752, 12753, 7, 8, 0, 0, 12753, 1530, 1, 0, 0, 0, 12754, 12755, 7, 10, 0, 0, 12755, 12756, 7, 7, 0, 0, 12756, 12757, 7, 5, 0, 0, 12757, 12758, 7, 4, 0, 0, 12758, 12759, 7, 3, 0, 0, 12759, 1532, 1, 0, 0, 0, 12760, 12761, 7, 10, 0, 0, 12761, 12762, 7, 7, 0, 0, 12762, 12763, 7, 4, 0, 0, 12763, 12764, 7, 6, 0, 0, 12764, 12765, 7, 17, 0, 0, 12765, 12766, 7, 6, 0, 0, 12766, 12767, 7, 3, 0, 0, 12767, 1534, 1, 0, 0, 0, 12768, 12769, 7, 10, 0, 0, 12769, 12770, 7, 7, 0, 0, 12770, 12771, 7, 4, 0, 0, 12771, 12772, 7, 6, 0, 0, 12772, 12773, 7, 3, 0, 0, 12773, 12774, 7, 11, 0, 0, 12774, 12775, 7, 6, 0, 0, 12775, 12776, 7, 0, 0, 0, 12776, 12777, 7, 13, 0, 0, 12777, 12778, 7, 6, 0, 0, 12778, 12779, 7, 9, 0, 0, 12779, 1536, 1, 0, 0, 0, 12780, 12781, 7, 10, 0, 0, 12781, 12782, 7, 7, 0, 0, 12782, 12783, 7, 4, 0, 0, 12783, 12784, 7, 6, 0, 0, 12784, 12785, 7, 3, 0, 0, 12785, 12786, 7, 14, 0, 0, 12786, 12787, 7, 6, 0, 0, 12787, 12788, 7, 9, 0, 0, 12788, 12789, 7, 10, 0, 0, 12789, 12790, 7, 0, 0, 0, 12790, 12791, 7, 4, 0, 0, 12791, 12792, 7, 6, 0, 0, 12792, 1538, 1, 0, 0, 0, 12793, 12794, 7, 10, 0, 0, 12794, 12795, 7, 7, 0, 0, 12795, 12796, 7, 4, 0, 0, 12796, 12797, 7, 6, 0, 0, 12797, 12798, 7, 3, 0, 0, 12798, 12799, 7, 7, 0, 0, 12799, 12800, 7, 0, 0, 0, 12800, 12801, 7, 11, 0, 0, 12801, 12802, 5, 95, 0, 0, 12802, 12803, 7, 8, 0, 0, 12803, 12804, 7, 2, 0, 0, 12804, 12805, 7, 7, 0, 0, 12805, 12806, 7, 13, 0, 0, 12806, 12807, 7, 6, 0, 0, 12807, 12808, 7, 3, 0, 0, 12808, 12809, 7, 4, 0, 0, 12809, 1540, 1, 0, 0, 0, 12810, 12811, 7, 10, 0, 0, 12811, 12812, 7, 7, 0, 0, 12812, 12813, 7, 4, 0, 0, 12813, 12814, 7, 6, 0, 0, 12814, 12815, 7, 3, 0, 0, 12815, 12816, 7, 7, 0, 0, 12816, 12817, 7, 0, 0, 0, 12817, 12818, 7, 11, 0, 0, 12818, 12819, 5, 95, 0, 0, 12819, 12820, 7, 12, 0, 0, 12820, 12821, 7, 5, 0, 0, 12821, 12822, 7, 6, 0, 0, 12822, 1542, 1, 0, 0, 0, 12823, 12824, 7, 10, 0, 0, 12824, 12825, 7, 7, 0, 0, 12825, 12826, 7, 4, 0, 0, 12826, 12827, 7, 6, 0, 0, 12827, 12828, 7, 3, 0, 0, 12828, 12829, 7, 15, 0, 0, 12829, 12830, 7, 3, 0, 0, 12830, 12831, 7, 6, 0, 0, 12831, 12832, 7, 4, 0, 0, 12832, 12833, 7, 6, 0, 0, 12833, 12834, 7, 9, 0, 0, 12834, 1544, 1, 0, 0, 0, 12835, 12836, 7, 10, 0, 0, 12836, 12837, 7, 7, 0, 0, 12837, 12838, 7, 4, 0, 0, 12838, 12839, 7, 6, 0, 0, 12839, 12840, 7, 3, 0, 0, 12840, 12841, 7, 5, 0, 0, 12841, 12842, 7, 6, 0, 0, 12842, 12843, 7, 8, 0, 0, 12843, 12844, 7, 4, 0, 0, 12844, 1546, 1, 0, 0, 0, 12845, 12846, 7, 10, 0, 0, 12846, 12847, 7, 7, 0, 0, 12847, 12848, 7, 4, 0, 0, 12848, 12849, 7, 6, 0, 0, 12849, 12850, 7, 3, 0, 0, 12850, 12851, 7, 13, 0, 0, 12851, 12852, 7, 0, 0, 0, 12852, 12853, 7, 11, 0, 0, 12853, 1548, 1, 0, 0, 0, 12854, 12855, 7, 10, 0, 0, 12855, 12856, 7, 7, 0, 0, 12856, 12857, 7, 4, 0, 0, 12857, 1550, 1, 0, 0, 0, 12858, 12859, 7, 10, 0, 0, 12859, 12860, 7, 7, 0, 0, 12860, 12861, 7, 4, 0, 0, 12861, 12862, 7, 6, 0, 0, 12862, 12863, 7, 3, 0, 0, 12863, 12864, 7, 7, 0, 0, 12864, 12865, 7, 0, 0, 0, 12865, 12866, 7, 11, 0, 0, 12866, 1552, 1, 0, 0, 0, 12867, 12868, 7, 10, 0, 0, 12868, 12869, 7, 7, 0, 0, 12869, 12870, 7, 4, 0, 0, 12870, 12871, 7, 2, 0, 0, 12871, 1554, 1, 0, 0, 0, 12872, 12873, 7, 10, 0, 0, 12873, 12874, 7, 7, 0, 0, 12874, 12875, 7, 13, 0, 0, 12875, 12876, 7, 0, 0, 0, 12876, 12877, 7, 11, 0, 0, 12877, 12878, 7, 10, 0, 0, 12878, 12879, 7, 9, 0, 0, 12879, 12880, 7, 0, 0, 0, 12880, 12881, 7, 4, 0, 0, 12881, 12882, 7, 6, 0, 0, 12882, 1556, 1, 0, 0, 0, 12883, 12884, 7, 10, 0, 0, 12884, 12885, 7, 7, 0, 0, 12885, 12886, 7, 13, 0, 0, 12886, 12887, 7, 0, 0, 0, 12887, 12888, 7, 11, 0, 0, 12888, 12889, 7, 10, 0, 0, 12889, 12890, 7, 9, 0, 0, 12890, 12891, 7, 0, 0, 0, 12891, 12892, 7, 4, 0, 0, 12892, 12893, 7, 10, 0, 0, 12893, 12894, 7, 2, 0, 0, 12894, 12895, 7, 7, 0, 0, 12895, 1558, 1, 0, 0, 0, 12896, 12897, 7, 10, 0, 0, 12897, 12898, 7, 7, 0, 0, 12898, 12899, 7, 13, 0, 0, 12899, 12900, 7, 10, 0, 0, 12900, 12901, 7, 5, 0, 0, 12901, 12902, 7, 10, 0, 0, 12902, 12903, 7, 1, 0, 0, 12903, 12904, 7, 11, 0, 0, 12904, 12905, 7, 6, 0, 0, 12905, 1560, 1, 0, 0, 0, 12906, 12907, 7, 10, 0, 0, 12907, 12908, 7, 7, 0, 0, 12908, 12909, 5, 95, 0, 0, 12909, 12910, 7, 25, 0, 0, 12910, 12911, 7, 24, 0, 0, 12911, 12912, 7, 12, 0, 0, 12912, 12913, 7, 6, 0, 0, 12913, 12914, 7, 3, 0, 0, 12914, 12915, 7, 18, 0, 0, 12915, 1562, 1, 0, 0, 0, 12916, 12917, 7, 10, 0, 0, 12917, 12918, 7, 2, 0, 0, 12918, 12919, 5, 95, 0, 0, 12919, 12920, 7, 2, 0, 0, 12920, 12921, 7, 15, 0, 0, 12921, 12922, 7, 4, 0, 0, 12922, 12923, 7, 10, 0, 0, 12923, 12924, 7, 2, 0, 0, 12924, 12925, 7, 7, 0, 0, 12925, 12926, 7, 5, 0, 0, 12926, 1564, 1, 0, 0, 0, 12927, 12928, 7, 10, 0, 0, 12928, 12929, 7, 5, 0, 0, 12929, 1566, 1, 0, 0, 0, 12930, 12931, 7, 10, 0, 0, 12931, 12932, 7, 5, 0, 0, 12932, 12933, 5, 95, 0, 0, 12933, 12934, 7, 11, 0, 0, 12934, 12935, 7, 6, 0, 0, 12935, 12936, 7, 0, 0, 0, 12936, 12937, 7, 16, 0, 0, 12937, 1568, 1, 0, 0, 0, 12938, 12939, 7, 10, 0, 0, 12939, 12940, 7, 5, 0, 0, 12940, 12941, 7, 2, 0, 0, 12941, 12942, 7, 11, 0, 0, 12942, 12943, 7, 0, 0, 0, 12943, 12944, 7, 4, 0, 0, 12944, 12945, 7, 10, 0, 0, 12945, 12946, 7, 2, 0, 0, 12946, 12947, 7, 7, 0, 0, 12947, 1570, 1, 0, 0, 0, 12948, 12949, 7, 10, 0, 0, 12949, 12950, 7, 5, 0, 0, 12950, 12951, 7, 2, 0, 0, 12951, 12952, 7, 11, 0, 0, 12952, 12953, 7, 0, 0, 0, 12953, 12954, 7, 4, 0, 0, 12954, 12955, 7, 10, 0, 0, 12955, 12956, 7, 2, 0, 0, 12956, 12957, 7, 7, 0, 0, 12957, 12958, 5, 95, 0, 0, 12958, 12959, 7, 11, 0, 0, 12959, 12960, 7, 6, 0, 0, 12960, 12961, 7, 13, 0, 0, 12961, 12962, 7, 6, 0, 0, 12962, 12963, 7, 11, 0, 0, 12963, 1572, 1, 0, 0, 0, 12964, 12965, 7, 10, 0, 0, 12965, 12966, 7, 4, 0, 0, 12966, 12967, 7, 6, 0, 0, 12967, 12968, 7, 14, 0, 0, 12968, 12969, 7, 5, 0, 0, 12969, 1574, 1, 0, 0, 0, 12970, 12971, 7, 10, 0, 0, 12971, 12972, 7, 4, 0, 0, 12972, 12973, 7, 6, 0, 0, 12973, 12974, 7, 3, 0, 0, 12974, 12975, 7, 0, 0, 0, 12975, 12976, 7, 4, 0, 0, 12976, 12977, 7, 6, 0, 0, 12977, 1576, 1, 0, 0, 0, 12978, 12979, 7, 10, 0, 0, 12979, 12980, 7, 4, 0, 0, 12980, 12981, 7, 6, 0, 0, 12981, 12982, 7, 3, 0, 0, 12982, 12983, 7, 0, 0, 0, 12983, 12984, 7, 4, 0, 0, 12984, 12985, 7, 10, 0, 0, 12985, 12986, 7, 2, 0, 0, 12986, 12987, 7, 7, 0, 0, 12987, 12988, 5, 95, 0, 0, 12988, 12989, 7, 7, 0, 0, 12989, 12990, 7, 12, 0, 0, 12990, 12991, 7, 14, 0, 0, 12991, 12992, 7, 1, 0, 0, 12992, 12993, 7, 6, 0, 0, 12993, 12994, 7, 3, 0, 0, 12994, 1578, 1, 0, 0, 0, 12995, 12996, 7, 20, 0, 0, 12996, 12997, 7, 0, 0, 0, 12997, 12998, 7, 13, 0, 0, 12998, 12999, 7, 0, 0, 0, 12999, 1580, 1, 0, 0, 0, 13000, 13001, 7, 20, 0, 0, 13001, 13002, 7, 2, 0, 0, 13002, 13003, 7, 1, 0, 0, 13003, 1582, 1, 0, 0, 0, 13004, 13005, 7, 20, 0, 0, 13005, 13006, 7, 2, 0, 0, 13006, 13007, 7, 10, 0, 0, 13007, 13008, 7, 7, 0, 0, 13008, 1584, 1, 0, 0, 0, 13009, 13010, 7, 20, 0, 0, 13010, 13011, 7, 5, 0, 0, 13011, 13012, 7, 2, 0, 0, 13012, 13013, 7, 7, 0, 0, 13013, 13014, 5, 95, 0, 0, 13014, 13015, 7, 0, 0, 0, 13015, 13016, 7, 3, 0, 0, 13016, 13017, 7, 3, 0, 0, 13017, 13018, 7, 0, 0, 0, 13018, 13019, 7, 18, 0, 0, 13019, 13020, 7, 0, 0, 0, 13020, 13021, 7, 17, 0, 0, 13021, 13022, 7, 17, 0, 0, 13022, 1586, 1, 0, 0, 0, 13023, 13024, 7, 20, 0, 0, 13024, 13025, 7, 5, 0, 0, 13025, 13026, 7, 2, 0, 0, 13026, 13027, 7, 7, 0, 0, 13027, 13028, 5, 95, 0, 0, 13028, 13029, 7, 0, 0, 0, 13029, 13030, 7, 3, 0, 0, 13030, 13031, 7, 3, 0, 0, 13031, 13032, 7, 0, 0, 0, 13032, 13033, 7, 18, 0, 0, 13033, 1588, 1, 0, 0, 0, 13034, 13035, 7, 20, 0, 0, 13035, 13036, 7, 5, 0, 0, 13036, 13037, 7, 2, 0, 0, 13037, 13038, 7, 7, 0, 0, 13038, 13039, 5, 95, 0, 0, 13039, 13040, 7, 6, 0, 0, 13040, 13041, 7, 24, 0, 0, 13041, 13042, 7, 12, 0, 0, 13042, 13043, 7, 0, 0, 0, 13043, 13044, 7, 11, 0, 0, 13044, 1590, 1, 0, 0, 0, 13045, 13046, 7, 20, 0, 0, 13046, 13047, 7, 5, 0, 0, 13047, 13048, 7, 2, 0, 0, 13048, 13049, 7, 7, 0, 0, 13049, 13050, 5, 95, 0, 0, 13050, 13051, 7, 6, 0, 0, 13051, 13052, 7, 25, 0, 0, 13052, 13053, 7, 10, 0, 0, 13053, 13054, 7, 5, 0, 0, 13054, 13055, 7, 4, 0, 0, 13055, 13056, 7, 5, 0, 0, 13056, 13057, 5, 50, 0, 0, 13057, 1592, 1, 0, 0, 0, 13058, 13059, 7, 20, 0, 0, 13059, 13060, 7, 5, 0, 0, 13060, 13061, 7, 2, 0, 0, 13061, 13062, 7, 7, 0, 0, 13062, 13063, 5, 95, 0, 0, 13063, 13064, 7, 6, 0, 0, 13064, 13065, 7, 25, 0, 0, 13065, 13066, 7, 10, 0, 0, 13066, 13067, 7, 5, 0, 0, 13067, 13068, 7, 4, 0, 0, 13068, 13069, 7, 5, 0, 0, 13069, 1594, 1, 0, 0, 0, 13070, 13071, 7, 20, 0, 0, 13071, 13072, 7, 5, 0, 0, 13072, 13073, 7, 2, 0, 0, 13073, 13074, 7, 7, 0, 0, 13074, 13075, 7, 17, 0, 0, 13075, 13076, 7, 6, 0, 0, 13076, 13077, 7, 4, 0, 0, 13077, 1596, 1, 0, 0, 0, 13078, 13079, 7, 20, 0, 0, 13079, 13080, 7, 5, 0, 0, 13080, 13081, 7, 2, 0, 0, 13081, 13082, 7, 7, 0, 0, 13082, 1598, 1, 0, 0, 0, 13083, 13084, 7, 20, 0, 0, 13084, 13085, 7, 5, 0, 0, 13085, 13086, 7, 2, 0, 0, 13086, 13087, 7, 7, 0, 0, 13087, 13088, 5, 95, 0, 0, 13088, 13089, 7, 2, 0, 0, 13089, 13090, 7, 1, 0, 0, 13090, 13091, 7, 20, 0, 0, 13091, 13092, 7, 6, 0, 0, 13092, 13093, 7, 8, 0, 0, 13093, 13094, 7, 4, 0, 0, 13094, 13095, 7, 0, 0, 0, 13095, 13096, 7, 17, 0, 0, 13096, 13097, 7, 17, 0, 0, 13097, 1600, 1, 0, 0, 0, 13098, 13099, 7, 20, 0, 0, 13099, 13100, 7, 5, 0, 0, 13100, 13101, 7, 2, 0, 0, 13101, 13102, 7, 7, 0, 0, 13102, 13103, 5, 95, 0, 0, 13103, 13104, 7, 2, 0, 0, 13104, 13105, 7, 1, 0, 0, 13105, 13106, 7, 20, 0, 0, 13106, 13107, 7, 6, 0, 0, 13107, 13108, 7, 8, 0, 0, 13108, 13109, 7, 4, 0, 0, 13109, 1602, 1, 0, 0, 0, 13110, 13111, 7, 20, 0, 0, 13111, 13112, 7, 5, 0, 0, 13112, 13113, 7, 2, 0, 0, 13113, 13114, 7, 7, 0, 0, 13114, 13115, 7, 15, 0, 0, 13115, 13116, 7, 0, 0, 0, 13116, 13117, 7, 3, 0, 0, 13117, 13118, 7, 5, 0, 0, 13118, 13119, 7, 6, 0, 0, 13119, 1604, 1, 0, 0, 0, 13120, 13121, 7, 20, 0, 0, 13121, 13122, 7, 5, 0, 0, 13122, 13123, 7, 2, 0, 0, 13123, 13124, 7, 7, 0, 0, 13124, 13125, 5, 95, 0, 0, 13125, 13126, 7, 24, 0, 0, 13126, 13127, 7, 12, 0, 0, 13127, 13128, 7, 6, 0, 0, 13128, 13129, 7, 3, 0, 0, 13129, 13130, 7, 18, 0, 0, 13130, 1606, 1, 0, 0, 0, 13131, 13132, 7, 20, 0, 0, 13132, 13133, 7, 5, 0, 0, 13133, 13134, 7, 2, 0, 0, 13134, 13135, 7, 7, 0, 0, 13135, 13136, 5, 95, 0, 0, 13136, 13137, 7, 5, 0, 0, 13137, 13138, 7, 6, 0, 0, 13138, 13139, 7, 3, 0, 0, 13139, 13140, 7, 10, 0, 0, 13140, 13141, 7, 0, 0, 0, 13141, 13142, 7, 11, 0, 0, 13142, 13143, 7, 10, 0, 0, 13143, 13144, 7, 23, 0, 0, 13144, 13145, 7, 6, 0, 0, 13145, 1608, 1, 0, 0, 0, 13146, 13147, 7, 20, 0, 0, 13147, 13148, 7, 5, 0, 0, 13148, 13149, 7, 2, 0, 0, 13149, 13150, 7, 7, 0, 0, 13150, 13151, 5, 95, 0, 0, 13151, 13152, 7, 4, 0, 0, 13152, 13153, 7, 0, 0, 0, 13153, 13154, 7, 1, 0, 0, 13154, 13155, 7, 11, 0, 0, 13155, 13156, 7, 6, 0, 0, 13156, 1610, 1, 0, 0, 0, 13157, 13158, 7, 20, 0, 0, 13158, 13159, 7, 5, 0, 0, 13159, 13160, 7, 2, 0, 0, 13160, 13161, 7, 7, 0, 0, 13161, 13162, 5, 95, 0, 0, 13162, 13163, 7, 4, 0, 0, 13163, 13164, 7, 6, 0, 0, 13164, 13165, 7, 25, 0, 0, 13165, 13166, 7, 4, 0, 0, 13166, 13167, 7, 8, 0, 0, 13167, 13168, 7, 2, 0, 0, 13168, 13169, 7, 7, 0, 0, 13169, 13170, 7, 4, 0, 0, 13170, 13171, 7, 0, 0, 0, 13171, 13172, 7, 10, 0, 0, 13172, 13173, 7, 7, 0, 0, 13173, 13174, 7, 5, 0, 0, 13174, 13175, 5, 50, 0, 0, 13175, 1612, 1, 0, 0, 0, 13176, 13177, 7, 20, 0, 0, 13177, 13178, 7, 5, 0, 0, 13178, 13179, 7, 2, 0, 0, 13179, 13180, 7, 7, 0, 0, 13180, 13181, 5, 95, 0, 0, 13181, 13182, 7, 4, 0, 0, 13182, 13183, 7, 6, 0, 0, 13183, 13184, 7, 25, 0, 0, 13184, 13185, 7, 4, 0, 0, 13185, 13186, 7, 8, 0, 0, 13186, 13187, 7, 2, 0, 0, 13187, 13188, 7, 7, 0, 0, 13188, 13189, 7, 4, 0, 0, 13189, 13190, 7, 0, 0, 0, 13190, 13191, 7, 10, 0, 0, 13191, 13192, 7, 7, 0, 0, 13192, 13193, 7, 5, 0, 0, 13193, 1614, 1, 0, 0, 0, 13194, 13195, 7, 20, 0, 0, 13195, 13196, 7, 5, 0, 0, 13196, 13197, 7, 2, 0, 0, 13197, 13198, 7, 7, 0, 0, 13198, 13199, 5, 95, 0, 0, 13199, 13200, 7, 4, 0, 0, 13200, 13201, 7, 3, 0, 0, 13201, 13202, 7, 0, 0, 0, 13202, 13203, 7, 7, 0, 0, 13203, 13204, 7, 5, 0, 0, 13204, 13205, 7, 16, 0, 0, 13205, 13206, 7, 2, 0, 0, 13206, 13207, 7, 3, 0, 0, 13207, 13208, 7, 14, 0, 0, 13208, 1616, 1, 0, 0, 0, 13209, 13210, 7, 20, 0, 0, 13210, 13211, 7, 5, 0, 0, 13211, 13212, 7, 2, 0, 0, 13212, 13213, 7, 7, 0, 0, 13213, 13214, 5, 95, 0, 0, 13214, 13215, 7, 13, 0, 0, 13215, 13216, 7, 0, 0, 0, 13216, 13217, 7, 11, 0, 0, 13217, 13218, 7, 12, 0, 0, 13218, 13219, 7, 6, 0, 0, 13219, 1618, 1, 0, 0, 0, 13220, 13221, 7, 21, 0, 0, 13221, 1620, 1, 0, 0, 0, 13222, 13223, 7, 21, 0, 0, 13223, 13224, 7, 6, 0, 0, 13224, 13225, 7, 6, 0, 0, 13225, 13226, 7, 15, 0, 0, 13226, 13227, 5, 95, 0, 0, 13227, 13228, 7, 9, 0, 0, 13228, 13229, 7, 12, 0, 0, 13229, 13230, 7, 15, 0, 0, 13230, 13231, 7, 11, 0, 0, 13231, 13232, 7, 10, 0, 0, 13232, 13233, 7, 8, 0, 0, 13233, 13234, 7, 0, 0, 0, 13234, 13235, 7, 4, 0, 0, 13235, 13236, 7, 6, 0, 0, 13236, 13237, 7, 5, 0, 0, 13237, 1622, 1, 0, 0, 0, 13238, 13239, 7, 21, 0, 0, 13239, 13240, 7, 6, 0, 0, 13240, 13241, 7, 6, 0, 0, 13241, 13242, 7, 15, 0, 0, 13242, 1624, 1, 0, 0, 0, 13243, 13244, 7, 21, 0, 0, 13244, 13245, 7, 6, 0, 0, 13245, 13246, 7, 3, 0, 0, 13246, 13247, 7, 1, 0, 0, 13247, 13248, 7, 6, 0, 0, 13248, 13249, 7, 3, 0, 0, 13249, 13250, 7, 2, 0, 0, 13250, 13251, 7, 5, 0, 0, 13251, 1626, 1, 0, 0, 0, 13252, 13253, 7, 21, 0, 0, 13253, 13254, 7, 6, 0, 0, 13254, 13255, 7, 18, 0, 0, 13255, 1628, 1, 0, 0, 0, 13256, 13257, 7, 21, 0, 0, 13257, 13258, 7, 6, 0, 0, 13258, 13259, 7, 18, 0, 0, 13259, 13260, 5, 95, 0, 0, 13260, 13261, 7, 11, 0, 0, 13261, 13262, 7, 6, 0, 0, 13262, 13263, 7, 7, 0, 0, 13263, 13264, 7, 17, 0, 0, 13264, 13265, 7, 4, 0, 0, 13265, 13266, 7, 19, 0, 0, 13266, 1630, 1, 0, 0, 0, 13267, 13268, 7, 21, 0, 0, 13268, 13269, 7, 6, 0, 0, 13269, 13270, 7, 18, 0, 0, 13270, 13271, 7, 5, 0, 0, 13271, 13272, 7, 10, 0, 0, 13272, 13273, 7, 23, 0, 0, 13273, 13274, 7, 6, 0, 0, 13274, 1632, 1, 0, 0, 0, 13275, 13276, 7, 21, 0, 0, 13276, 13277, 7, 6, 0, 0, 13277, 13278, 7, 18, 0, 0, 13278, 13279, 7, 5, 0, 0, 13279, 1634, 1, 0, 0, 0, 13280, 13281, 7, 21, 0, 0, 13281, 13282, 7, 6, 0, 0, 13282, 13283, 7, 18, 0, 0, 13283, 13284, 7, 5, 0, 0, 13284, 13285, 7, 4, 0, 0, 13285, 13286, 7, 2, 0, 0, 13286, 13287, 7, 3, 0, 0, 13287, 13288, 7, 6, 0, 0, 13288, 1636, 1, 0, 0, 0, 13289, 13290, 7, 21, 0, 0, 13290, 13291, 7, 10, 0, 0, 13291, 13292, 7, 11, 0, 0, 13292, 13293, 7, 11, 0, 0, 13293, 1638, 1, 0, 0, 0, 13294, 13295, 7, 11, 0, 0, 13295, 13296, 7, 0, 0, 0, 13296, 13297, 7, 1, 0, 0, 13297, 13298, 7, 6, 0, 0, 13298, 13299, 7, 11, 0, 0, 13299, 1640, 1, 0, 0, 0, 13300, 13301, 7, 11, 0, 0, 13301, 13302, 7, 0, 0, 0, 13302, 13303, 7, 7, 0, 0, 13303, 13304, 7, 17, 0, 0, 13304, 13305, 7, 12, 0, 0, 13305, 13306, 7, 0, 0, 0, 13306, 13307, 7, 17, 0, 0, 13307, 13308, 7, 6, 0, 0, 13308, 1642, 1, 0, 0, 0, 13309, 13310, 7, 11, 0, 0, 13310, 13311, 7, 0, 0, 0, 13311, 13312, 7, 5, 0, 0, 13312, 13313, 7, 4, 0, 0, 13313, 13314, 5, 95, 0, 0, 13314, 13315, 7, 9, 0, 0, 13315, 13316, 7, 0, 0, 0, 13316, 13317, 7, 18, 0, 0, 13317, 1644, 1, 0, 0, 0, 13318, 13319, 7, 11, 0, 0, 13319, 13320, 7, 0, 0, 0, 13320, 13321, 7, 5, 0, 0, 13321, 13322, 7, 4, 0, 0, 13322, 1646, 1, 0, 0, 0, 13323, 13324, 7, 11, 0, 0, 13324, 13325, 7, 0, 0, 0, 13325, 13326, 7, 5, 0, 0, 13326, 13327, 7, 4, 0, 0, 13327, 13328, 5, 95, 0, 0, 13328, 13329, 7, 13, 0, 0, 13329, 13330, 7, 0, 0, 0, 13330, 13331, 7, 11, 0, 0, 13331, 13332, 7, 12, 0, 0, 13332, 13333, 7, 6, 0, 0, 13333, 1648, 1, 0, 0, 0, 13334, 13335, 7, 11, 0, 0, 13335, 13336, 7, 0, 0, 0, 13336, 13337, 7, 4, 0, 0, 13337, 13338, 7, 6, 0, 0, 13338, 13339, 7, 3, 0, 0, 13339, 13340, 7, 0, 0, 0, 13340, 13341, 7, 11, 0, 0, 13341, 1650, 1, 0, 0, 0, 13342, 13343, 7, 11, 0, 0, 13343, 13344, 7, 0, 0, 0, 13344, 13345, 7, 4, 0, 0, 13345, 13346, 7, 6, 0, 0, 13346, 13347, 7, 5, 0, 0, 13347, 13348, 7, 4, 0, 0, 13348, 1652, 1, 0, 0, 0, 13349, 13350, 7, 11, 0, 0, 13350, 13351, 7, 0, 0, 0, 13351, 13352, 7, 25, 0, 0, 13352, 1654, 1, 0, 0, 0, 13353, 13354, 7, 11, 0, 0, 13354, 13355, 7, 0, 0, 0, 13355, 13356, 7, 18, 0, 0, 13356, 13357, 7, 6, 0, 0, 13357, 13358, 7, 3, 0, 0, 13358, 1656, 1, 0, 0, 0, 13359, 13360, 7, 11, 0, 0, 13360, 13361, 7, 9, 0, 0, 13361, 13362, 7, 0, 0, 0, 13362, 13363, 7, 15, 0, 0, 13363, 13364, 5, 95, 0, 0, 13364, 13365, 7, 3, 0, 0, 13365, 13366, 7, 6, 0, 0, 13366, 13367, 7, 17, 0, 0, 13367, 13368, 7, 10, 0, 0, 13368, 13369, 7, 5, 0, 0, 13369, 13370, 7, 4, 0, 0, 13370, 13371, 7, 3, 0, 0, 13371, 13372, 7, 0, 0, 0, 13372, 13373, 7, 4, 0, 0, 13373, 13374, 7, 10, 0, 0, 13374, 13375, 7, 2, 0, 0, 13375, 13376, 7, 7, 0, 0, 13376, 13377, 5, 95, 0, 0, 13377, 13378, 7, 6, 0, 0, 13378, 13379, 7, 7, 0, 0, 13379, 13380, 7, 0, 0, 0, 13380, 13381, 7, 1, 0, 0, 13381, 13382, 7, 11, 0, 0, 13382, 13383, 7, 6, 0, 0, 13383, 13384, 7, 9, 0, 0, 13384, 1658, 1, 0, 0, 0, 13385, 13386, 7, 11, 0, 0, 13386, 13387, 7, 9, 0, 0, 13387, 13388, 7, 0, 0, 0, 13388, 13389, 7, 15, 0, 0, 13389, 13390, 5, 95, 0, 0, 13390, 13391, 7, 3, 0, 0, 13391, 13392, 7, 6, 0, 0, 13392, 13393, 7, 17, 0, 0, 13393, 13394, 7, 10, 0, 0, 13394, 13395, 7, 5, 0, 0, 13395, 13396, 7, 4, 0, 0, 13396, 13397, 7, 3, 0, 0, 13397, 13398, 7, 0, 0, 0, 13398, 13399, 7, 4, 0, 0, 13399, 13400, 7, 10, 0, 0, 13400, 13401, 7, 2, 0, 0, 13401, 13402, 7, 7, 0, 0, 13402, 1660, 1, 0, 0, 0, 13403, 13404, 7, 11, 0, 0, 13404, 13405, 7, 9, 0, 0, 13405, 13406, 7, 0, 0, 0, 13406, 13407, 7, 15, 0, 0, 13407, 13408, 5, 95, 0, 0, 13408, 13409, 7, 3, 0, 0, 13409, 13410, 7, 6, 0, 0, 13410, 13411, 7, 17, 0, 0, 13411, 13412, 5, 95, 0, 0, 13412, 13413, 7, 5, 0, 0, 13413, 13414, 7, 18, 0, 0, 13414, 13415, 7, 7, 0, 0, 13415, 13416, 7, 8, 0, 0, 13416, 13417, 5, 95, 0, 0, 13417, 13418, 7, 10, 0, 0, 13418, 13419, 7, 7, 0, 0, 13419, 13420, 7, 4, 0, 0, 13420, 13421, 7, 6, 0, 0, 13421, 13422, 7, 3, 0, 0, 13422, 13423, 7, 13, 0, 0, 13423, 13424, 7, 0, 0, 0, 13424, 13425, 7, 11, 0, 0, 13425, 1662, 1, 0, 0, 0, 13426, 13427, 7, 11, 0, 0, 13427, 13428, 7, 9, 0, 0, 13428, 13429, 7, 3, 0, 0, 13429, 13430, 7, 4, 0, 0, 13430, 13431, 7, 3, 0, 0, 13431, 13432, 7, 10, 0, 0, 13432, 13433, 7, 14, 0, 0, 13433, 1664, 1, 0, 0, 0, 13434, 13435, 7, 11, 0, 0, 13435, 13436, 7, 6, 0, 0, 13436, 13437, 7, 0, 0, 0, 13437, 13438, 7, 16, 0, 0, 13438, 1666, 1, 0, 0, 0, 13439, 13440, 7, 11, 0, 0, 13440, 13441, 7, 6, 0, 0, 13441, 13442, 7, 0, 0, 0, 13442, 13443, 7, 9, 0, 0, 13443, 13444, 5, 95, 0, 0, 13444, 13445, 7, 8, 0, 0, 13445, 13446, 7, 9, 0, 0, 13446, 13447, 7, 1, 0, 0, 13447, 1668, 1, 0, 0, 0, 13448, 13449, 7, 11, 0, 0, 13449, 13450, 7, 6, 0, 0, 13450, 13451, 7, 0, 0, 0, 13451, 13452, 7, 9, 0, 0, 13452, 13453, 5, 95, 0, 0, 13453, 13454, 7, 8, 0, 0, 13454, 13455, 7, 9, 0, 0, 13455, 13456, 7, 1, 0, 0, 13456, 13457, 5, 95, 0, 0, 13457, 13458, 7, 12, 0, 0, 13458, 13459, 7, 3, 0, 0, 13459, 13460, 7, 10, 0, 0, 13460, 1670, 1, 0, 0, 0, 13461, 13462, 7, 11, 0, 0, 13462, 13463, 7, 6, 0, 0, 13463, 13464, 7, 0, 0, 0, 13464, 13465, 7, 9, 0, 0, 13465, 13466, 7, 10, 0, 0, 13466, 13467, 7, 7, 0, 0, 13467, 13468, 7, 17, 0, 0, 13468, 1672, 1, 0, 0, 0, 13469, 13470, 7, 11, 0, 0, 13470, 13471, 7, 6, 0, 0, 13471, 13472, 7, 16, 0, 0, 13472, 13473, 7, 4, 0, 0, 13473, 1674, 1, 0, 0, 0, 13474, 13475, 7, 11, 0, 0, 13475, 13476, 7, 6, 0, 0, 13476, 13477, 7, 7, 0, 0, 13477, 13478, 7, 17, 0, 0, 13478, 13479, 7, 4, 0, 0, 13479, 13480, 7, 19, 0, 0, 13480, 13481, 5, 50, 0, 0, 13481, 1676, 1, 0, 0, 0, 13482, 13483, 7, 11, 0, 0, 13483, 13484, 7, 6, 0, 0, 13484, 13485, 7, 7, 0, 0, 13485, 13486, 7, 17, 0, 0, 13486, 13487, 7, 4, 0, 0, 13487, 13488, 7, 19, 0, 0, 13488, 13489, 5, 52, 0, 0, 13489, 1678, 1, 0, 0, 0, 13490, 13491, 7, 11, 0, 0, 13491, 13492, 7, 6, 0, 0, 13492, 13493, 7, 7, 0, 0, 13493, 13494, 7, 17, 0, 0, 13494, 13495, 7, 4, 0, 0, 13495, 13496, 7, 19, 0, 0, 13496, 13497, 7, 1, 0, 0, 13497, 1680, 1, 0, 0, 0, 13498, 13499, 7, 11, 0, 0, 13499, 13500, 7, 6, 0, 0, 13500, 13501, 7, 7, 0, 0, 13501, 13502, 7, 17, 0, 0, 13502, 13503, 7, 4, 0, 0, 13503, 13504, 7, 19, 0, 0, 13504, 13505, 7, 8, 0, 0, 13505, 1682, 1, 0, 0, 0, 13506, 13507, 7, 11, 0, 0, 13507, 13508, 7, 6, 0, 0, 13508, 13509, 7, 7, 0, 0, 13509, 13510, 7, 17, 0, 0, 13510, 13511, 7, 4, 0, 0, 13511, 13512, 7, 19, 0, 0, 13512, 1684, 1, 0, 0, 0, 13513, 13514, 7, 11, 0, 0, 13514, 13515, 7, 6, 0, 0, 13515, 13516, 7, 5, 0, 0, 13516, 13517, 7, 5, 0, 0, 13517, 1686, 1, 0, 0, 0, 13518, 13519, 7, 11, 0, 0, 13519, 13520, 7, 6, 0, 0, 13520, 13521, 7, 13, 0, 0, 13521, 13522, 7, 6, 0, 0, 13522, 13523, 7, 11, 0, 0, 13523, 1688, 1, 0, 0, 0, 13524, 13525, 7, 11, 0, 0, 13525, 13526, 7, 6, 0, 0, 13526, 13527, 7, 13, 0, 0, 13527, 13528, 7, 6, 0, 0, 13528, 13529, 7, 11, 0, 0, 13529, 13530, 5, 95, 0, 0, 13530, 13531, 7, 7, 0, 0, 13531, 13532, 7, 0, 0, 0, 13532, 13533, 7, 14, 0, 0, 13533, 13534, 7, 6, 0, 0, 13534, 1690, 1, 0, 0, 0, 13535, 13536, 7, 11, 0, 0, 13536, 13537, 7, 6, 0, 0, 13537, 13538, 7, 13, 0, 0, 13538, 13539, 7, 6, 0, 0, 13539, 13540, 7, 11, 0, 0, 13540, 13541, 7, 5, 0, 0, 13541, 1692, 1, 0, 0, 0, 13542, 13543, 7, 11, 0, 0, 13543, 13544, 7, 10, 0, 0, 13544, 13545, 7, 1, 0, 0, 13545, 13546, 7, 3, 0, 0, 13546, 13547, 7, 0, 0, 0, 13547, 13548, 7, 3, 0, 0, 13548, 13549, 7, 18, 0, 0, 13549, 1694, 1, 0, 0, 0, 13550, 13551, 7, 11, 0, 0, 13551, 13552, 7, 10, 0, 0, 13552, 13553, 7, 16, 0, 0, 13553, 13554, 7, 6, 0, 0, 13554, 13555, 7, 8, 0, 0, 13555, 13556, 7, 18, 0, 0, 13556, 13557, 7, 8, 0, 0, 13557, 13558, 7, 11, 0, 0, 13558, 13559, 7, 6, 0, 0, 13559, 1696, 1, 0, 0, 0, 13560, 13561, 7, 11, 0, 0, 13561, 13562, 7, 10, 0, 0, 13562, 13563, 7, 16, 0, 0, 13563, 13564, 7, 6, 0, 0, 13564, 1698, 1, 0, 0, 0, 13565, 13566, 7, 11, 0, 0, 13566, 13567, 7, 10, 0, 0, 13567, 13568, 7, 16, 0, 0, 13568, 13569, 7, 6, 0, 0, 13569, 13570, 7, 4, 0, 0, 13570, 13571, 7, 10, 0, 0, 13571, 13572, 7, 14, 0, 0, 13572, 13573, 7, 6, 0, 0, 13573, 1700, 1, 0, 0, 0, 13574, 13575, 7, 11, 0, 0, 13575, 13576, 7, 10, 0, 0, 13576, 13577, 7, 21, 0, 0, 13577, 13578, 7, 6, 0, 0, 13578, 13579, 5, 50, 0, 0, 13579, 1702, 1, 0, 0, 0, 13580, 13581, 7, 11, 0, 0, 13581, 13582, 7, 10, 0, 0, 13582, 13583, 7, 21, 0, 0, 13583, 13584, 7, 6, 0, 0, 13584, 13585, 5, 52, 0, 0, 13585, 1704, 1, 0, 0, 0, 13586, 13587, 7, 11, 0, 0, 13587, 13588, 7, 10, 0, 0, 13588, 13589, 7, 21, 0, 0, 13589, 13590, 7, 6, 0, 0, 13590, 13591, 7, 8, 0, 0, 13591, 1706, 1, 0, 0, 0, 13592, 13593, 7, 11, 0, 0, 13593, 13594, 7, 10, 0, 0, 13594, 13595, 7, 21, 0, 0, 13595, 13596, 7, 6, 0, 0, 13596, 13597, 5, 95, 0, 0, 13597, 13598, 7, 6, 0, 0, 13598, 13599, 7, 25, 0, 0, 13599, 13600, 7, 15, 0, 0, 13600, 13601, 7, 0, 0, 0, 13601, 13602, 7, 7, 0, 0, 13602, 13603, 7, 9, 0, 0, 13603, 1708, 1, 0, 0, 0, 13604, 13605, 7, 11, 0, 0, 13605, 13606, 7, 10, 0, 0, 13606, 13607, 7, 21, 0, 0, 13607, 13608, 7, 6, 0, 0, 13608, 1710, 1, 0, 0, 0, 13609, 13610, 7, 11, 0, 0, 13610, 13611, 7, 10, 0, 0, 13611, 13612, 7, 14, 0, 0, 13612, 13613, 7, 10, 0, 0, 13613, 13614, 7, 4, 0, 0, 13614, 1712, 1, 0, 0, 0, 13615, 13616, 7, 11, 0, 0, 13616, 13617, 7, 10, 0, 0, 13617, 13618, 7, 7, 0, 0, 13618, 13619, 7, 6, 0, 0, 13619, 13620, 7, 0, 0, 0, 13620, 13621, 7, 3, 0, 0, 13621, 1714, 1, 0, 0, 0, 13622, 13623, 7, 11, 0, 0, 13623, 13624, 7, 10, 0, 0, 13624, 13625, 7, 7, 0, 0, 13625, 13626, 7, 6, 0, 0, 13626, 13627, 7, 5, 0, 0, 13627, 1716, 1, 0, 0, 0, 13628, 13629, 7, 11, 0, 0, 13629, 13630, 7, 10, 0, 0, 13630, 13631, 7, 7, 0, 0, 13631, 13632, 7, 21, 0, 0, 13632, 1718, 1, 0, 0, 0, 13633, 13634, 7, 11, 0, 0, 13634, 13635, 7, 10, 0, 0, 13635, 13636, 7, 5, 0, 0, 13636, 13637, 7, 4, 0, 0, 13637, 1720, 1, 0, 0, 0, 13638, 13639, 7, 11, 0, 0, 13639, 13640, 7, 10, 0, 0, 13640, 13641, 7, 4, 0, 0, 13641, 13642, 7, 4, 0, 0, 13642, 13643, 7, 11, 0, 0, 13643, 13644, 7, 6, 0, 0, 13644, 1722, 1, 0, 0, 0, 13645, 13646, 7, 11, 0, 0, 13646, 13647, 7, 11, 0, 0, 13647, 13648, 7, 5, 0, 0, 13648, 1724, 1, 0, 0, 0, 13649, 13650, 7, 11, 0, 0, 13650, 13651, 7, 7, 0, 0, 13651, 1726, 1, 0, 0, 0, 13652, 13653, 7, 11, 0, 0, 13653, 13654, 7, 7, 0, 0, 13654, 13655, 7, 7, 0, 0, 13655, 13656, 7, 13, 0, 0, 13656, 13657, 7, 11, 0, 0, 13657, 1728, 1, 0, 0, 0, 13658, 13659, 7, 11, 0, 0, 13659, 13660, 7, 2, 0, 0, 13660, 13661, 7, 0, 0, 0, 13661, 13662, 7, 9, 0, 0, 13662, 1730, 1, 0, 0, 0, 13663, 13664, 7, 11, 0, 0, 13664, 13665, 7, 2, 0, 0, 13665, 13666, 7, 1, 0, 0, 13666, 1732, 1, 0, 0, 0, 13667, 13668, 7, 11, 0, 0, 13668, 13669, 7, 2, 0, 0, 13669, 13670, 7, 1, 0, 0, 13670, 13671, 7, 16, 0, 0, 13671, 13672, 7, 10, 0, 0, 13672, 13673, 7, 11, 0, 0, 13673, 13674, 7, 6, 0, 0, 13674, 1734, 1, 0, 0, 0, 13675, 13676, 7, 11, 0, 0, 13676, 13677, 7, 2, 0, 0, 13677, 13678, 7, 1, 0, 0, 13678, 13679, 7, 7, 0, 0, 13679, 13680, 7, 13, 0, 0, 13680, 13681, 7, 11, 0, 0, 13681, 1736, 1, 0, 0, 0, 13682, 13683, 7, 11, 0, 0, 13683, 13684, 7, 2, 0, 0, 13684, 13685, 7, 1, 0, 0, 13685, 13686, 7, 5, 0, 0, 13686, 1738, 1, 0, 0, 0, 13687, 13688, 7, 11, 0, 0, 13688, 13689, 7, 2, 0, 0, 13689, 13690, 7, 8, 0, 0, 13690, 13691, 7, 0, 0, 0, 13691, 13692, 7, 11, 0, 0, 13692, 13693, 5, 95, 0, 0, 13693, 13694, 7, 10, 0, 0, 13694, 13695, 7, 7, 0, 0, 13695, 13696, 7, 9, 0, 0, 13696, 13697, 7, 6, 0, 0, 13697, 13698, 7, 25, 0, 0, 13698, 13699, 7, 6, 0, 0, 13699, 13700, 7, 5, 0, 0, 13700, 1740, 1, 0, 0, 0, 13701, 13702, 7, 11, 0, 0, 13702, 13703, 7, 2, 0, 0, 13703, 13704, 7, 8, 0, 0, 13704, 13705, 7, 0, 0, 0, 13705, 13706, 7, 11, 0, 0, 13706, 1742, 1, 0, 0, 0, 13707, 13708, 7, 11, 0, 0, 13708, 13709, 7, 2, 0, 0, 13709, 13710, 7, 8, 0, 0, 13710, 13711, 7, 0, 0, 0, 13711, 13712, 7, 11, 0, 0, 13712, 13713, 7, 4, 0, 0, 13713, 13714, 7, 10, 0, 0, 13714, 13715, 7, 14, 0, 0, 13715, 13716, 7, 6, 0, 0, 13716, 1744, 1, 0, 0, 0, 13717, 13718, 7, 11, 0, 0, 13718, 13719, 7, 2, 0, 0, 13719, 13720, 7, 8, 0, 0, 13720, 13721, 7, 0, 0, 0, 13721, 13722, 7, 11, 0, 0, 13722, 13723, 7, 4, 0, 0, 13723, 13724, 7, 10, 0, 0, 13724, 13725, 7, 14, 0, 0, 13725, 13726, 7, 6, 0, 0, 13726, 13727, 7, 5, 0, 0, 13727, 13728, 7, 4, 0, 0, 13728, 13729, 7, 0, 0, 0, 13729, 13730, 7, 14, 0, 0, 13730, 13731, 7, 15, 0, 0, 13731, 1746, 1, 0, 0, 0, 13732, 13733, 7, 11, 0, 0, 13733, 13734, 7, 2, 0, 0, 13734, 13735, 7, 8, 0, 0, 13735, 13736, 7, 0, 0, 0, 13736, 13737, 7, 4, 0, 0, 13737, 13738, 7, 10, 0, 0, 13738, 13739, 7, 2, 0, 0, 13739, 13740, 7, 7, 0, 0, 13740, 1748, 1, 0, 0, 0, 13741, 13742, 7, 11, 0, 0, 13742, 13743, 7, 2, 0, 0, 13743, 13744, 7, 8, 0, 0, 13744, 13745, 7, 0, 0, 0, 13745, 13746, 7, 4, 0, 0, 13746, 13747, 7, 2, 0, 0, 13747, 13748, 7, 3, 0, 0, 13748, 1750, 1, 0, 0, 0, 13749, 13750, 7, 11, 0, 0, 13750, 13751, 7, 2, 0, 0, 13751, 13752, 7, 8, 0, 0, 13752, 13753, 7, 21, 0, 0, 13753, 13754, 7, 9, 0, 0, 13754, 13755, 7, 2, 0, 0, 13755, 13756, 7, 22, 0, 0, 13756, 13757, 7, 7, 0, 0, 13757, 1752, 1, 0, 0, 0, 13758, 13759, 7, 11, 0, 0, 13759, 13760, 7, 2, 0, 0, 13760, 13761, 7, 8, 0, 0, 13761, 13762, 7, 21, 0, 0, 13762, 13763, 7, 6, 0, 0, 13763, 13764, 7, 9, 0, 0, 13764, 1754, 1, 0, 0, 0, 13765, 13766, 7, 11, 0, 0, 13766, 13767, 7, 2, 0, 0, 13767, 13768, 7, 8, 0, 0, 13768, 13769, 7, 21, 0, 0, 13769, 13770, 7, 10, 0, 0, 13770, 13771, 7, 7, 0, 0, 13771, 13772, 7, 17, 0, 0, 13772, 1756, 1, 0, 0, 0, 13773, 13774, 7, 11, 0, 0, 13774, 13775, 7, 2, 0, 0, 13775, 13776, 7, 8, 0, 0, 13776, 13777, 7, 21, 0, 0, 13777, 1758, 1, 0, 0, 0, 13778, 13779, 7, 11, 0, 0, 13779, 13780, 7, 2, 0, 0, 13780, 13781, 7, 17, 0, 0, 13781, 13782, 7, 16, 0, 0, 13782, 13783, 7, 10, 0, 0, 13783, 13784, 7, 11, 0, 0, 13784, 13785, 7, 6, 0, 0, 13785, 1760, 1, 0, 0, 0, 13786, 13787, 7, 11, 0, 0, 13787, 13788, 7, 2, 0, 0, 13788, 13789, 7, 17, 0, 0, 13789, 13790, 7, 16, 0, 0, 13790, 13791, 7, 10, 0, 0, 13791, 13792, 7, 11, 0, 0, 13792, 13793, 7, 6, 0, 0, 13793, 13794, 7, 5, 0, 0, 13794, 1762, 1, 0, 0, 0, 13795, 13796, 7, 11, 0, 0, 13796, 13797, 7, 2, 0, 0, 13797, 13798, 7, 17, 0, 0, 13798, 13799, 7, 17, 0, 0, 13799, 13800, 7, 10, 0, 0, 13800, 13801, 7, 7, 0, 0, 13801, 13802, 7, 17, 0, 0, 13802, 1764, 1, 0, 0, 0, 13803, 13804, 7, 11, 0, 0, 13804, 13805, 7, 2, 0, 0, 13805, 13806, 7, 17, 0, 0, 13806, 13807, 7, 10, 0, 0, 13807, 13808, 7, 8, 0, 0, 13808, 13809, 7, 0, 0, 0, 13809, 13810, 7, 11, 0, 0, 13810, 1766, 1, 0, 0, 0, 13811, 13812, 7, 11, 0, 0, 13812, 13813, 7, 2, 0, 0, 13813, 13814, 7, 17, 0, 0, 13814, 13815, 7, 10, 0, 0, 13815, 13816, 7, 8, 0, 0, 13816, 13817, 7, 0, 0, 0, 13817, 13818, 7, 11, 0, 0, 13818, 13819, 5, 95, 0, 0, 13819, 13820, 7, 3, 0, 0, 13820, 13821, 7, 6, 0, 0, 13821, 13822, 7, 0, 0, 0, 13822, 13823, 7, 9, 0, 0, 13823, 13824, 7, 5, 0, 0, 13824, 13825, 5, 95, 0, 0, 13825, 13826, 7, 15, 0, 0, 13826, 13827, 7, 6, 0, 0, 13827, 13828, 7, 3, 0, 0, 13828, 13829, 5, 95, 0, 0, 13829, 13830, 7, 8, 0, 0, 13830, 13831, 7, 0, 0, 0, 13831, 13832, 7, 11, 0, 0, 13832, 13833, 7, 11, 0, 0, 13833, 1768, 1, 0, 0, 0, 13834, 13835, 7, 11, 0, 0, 13835, 13836, 7, 2, 0, 0, 13836, 13837, 7, 17, 0, 0, 13837, 13838, 7, 10, 0, 0, 13838, 13839, 7, 8, 0, 0, 13839, 13840, 7, 0, 0, 0, 13840, 13841, 7, 11, 0, 0, 13841, 13842, 5, 95, 0, 0, 13842, 13843, 7, 3, 0, 0, 13843, 13844, 7, 6, 0, 0, 13844, 13845, 7, 0, 0, 0, 13845, 13846, 7, 9, 0, 0, 13846, 13847, 7, 5, 0, 0, 13847, 13848, 5, 95, 0, 0, 13848, 13849, 7, 15, 0, 0, 13849, 13850, 7, 6, 0, 0, 13850, 13851, 7, 3, 0, 0, 13851, 13852, 5, 95, 0, 0, 13852, 13853, 7, 5, 0, 0, 13853, 13854, 7, 6, 0, 0, 13854, 13855, 7, 5, 0, 0, 13855, 13856, 7, 5, 0, 0, 13856, 13857, 7, 10, 0, 0, 13857, 13858, 7, 2, 0, 0, 13858, 13859, 7, 7, 0, 0, 13859, 1770, 1, 0, 0, 0, 13860, 13861, 7, 11, 0, 0, 13861, 13862, 7, 2, 0, 0, 13862, 13863, 7, 17, 0, 0, 13863, 1772, 1, 0, 0, 0, 13864, 13865, 7, 11, 0, 0, 13865, 13866, 7, 2, 0, 0, 13866, 13867, 7, 17, 0, 0, 13867, 13868, 7, 14, 0, 0, 13868, 13869, 7, 10, 0, 0, 13869, 13870, 7, 7, 0, 0, 13870, 13871, 7, 10, 0, 0, 13871, 13872, 7, 7, 0, 0, 13872, 13873, 7, 17, 0, 0, 13873, 1774, 1, 0, 0, 0, 13874, 13875, 7, 11, 0, 0, 13875, 13876, 7, 2, 0, 0, 13876, 13877, 7, 17, 0, 0, 13877, 13878, 7, 2, 0, 0, 13878, 13879, 7, 16, 0, 0, 13879, 13880, 7, 16, 0, 0, 13880, 1776, 1, 0, 0, 0, 13881, 13882, 7, 11, 0, 0, 13882, 13883, 7, 2, 0, 0, 13883, 13884, 7, 17, 0, 0, 13884, 13885, 7, 2, 0, 0, 13885, 13886, 7, 7, 0, 0, 13886, 1778, 1, 0, 0, 0, 13887, 13888, 7, 11, 0, 0, 13888, 13889, 7, 2, 0, 0, 13889, 13890, 7, 17, 0, 0, 13890, 13891, 5, 95, 0, 0, 13891, 13892, 7, 3, 0, 0, 13892, 13893, 7, 6, 0, 0, 13893, 13894, 7, 0, 0, 0, 13894, 13895, 7, 9, 0, 0, 13895, 13896, 5, 95, 0, 0, 13896, 13897, 7, 2, 0, 0, 13897, 13898, 7, 7, 0, 0, 13898, 13899, 7, 11, 0, 0, 13899, 13900, 7, 18, 0, 0, 13900, 13901, 5, 95, 0, 0, 13901, 13902, 7, 13, 0, 0, 13902, 13903, 7, 10, 0, 0, 13903, 13904, 7, 2, 0, 0, 13904, 13905, 7, 11, 0, 0, 13905, 13906, 7, 0, 0, 0, 13906, 13907, 7, 4, 0, 0, 13907, 13908, 7, 10, 0, 0, 13908, 13909, 7, 2, 0, 0, 13909, 13910, 7, 7, 0, 0, 13910, 13911, 7, 5, 0, 0, 13911, 1780, 1, 0, 0, 0, 13912, 13913, 7, 11, 0, 0, 13913, 13914, 7, 2, 0, 0, 13914, 13915, 7, 7, 0, 0, 13915, 13916, 7, 17, 0, 0, 13916, 1782, 1, 0, 0, 0, 13917, 13918, 7, 11, 0, 0, 13918, 13919, 7, 2, 0, 0, 13919, 13920, 7, 2, 0, 0, 13920, 13921, 7, 15, 0, 0, 13921, 1784, 1, 0, 0, 0, 13922, 13923, 7, 11, 0, 0, 13923, 13924, 7, 2, 0, 0, 13924, 13925, 7, 5, 0, 0, 13925, 13926, 7, 4, 0, 0, 13926, 1786, 1, 0, 0, 0, 13927, 13928, 7, 11, 0, 0, 13928, 13929, 7, 2, 0, 0, 13929, 13930, 7, 22, 0, 0, 13930, 13931, 7, 6, 0, 0, 13931, 13932, 7, 3, 0, 0, 13932, 1788, 1, 0, 0, 0, 13933, 13934, 7, 11, 0, 0, 13934, 13935, 7, 2, 0, 0, 13935, 13936, 7, 22, 0, 0, 13936, 1790, 1, 0, 0, 0, 13937, 13938, 7, 11, 0, 0, 13938, 13939, 7, 15, 0, 0, 13939, 13940, 7, 0, 0, 0, 13940, 13941, 7, 9, 0, 0, 13941, 1792, 1, 0, 0, 0, 13942, 13943, 7, 11, 0, 0, 13943, 13944, 7, 3, 0, 0, 13944, 13945, 7, 4, 0, 0, 13945, 13946, 7, 3, 0, 0, 13946, 13947, 7, 10, 0, 0, 13947, 13948, 7, 14, 0, 0, 13948, 1794, 1, 0, 0, 0, 13949, 13950, 7, 11, 0, 0, 13950, 13951, 7, 4, 0, 0, 13951, 13952, 7, 3, 0, 0, 13952, 13953, 7, 10, 0, 0, 13953, 13954, 7, 14, 0, 0, 13954, 1796, 1, 0, 0, 0, 13955, 13956, 7, 14, 0, 0, 13956, 1798, 1, 0, 0, 0, 13957, 13958, 7, 14, 0, 0, 13958, 13959, 7, 0, 0, 0, 13959, 13960, 7, 10, 0, 0, 13960, 13961, 7, 7, 0, 0, 13961, 1800, 1, 0, 0, 0, 13962, 13963, 7, 14, 0, 0, 13963, 13964, 7, 0, 0, 0, 13964, 13965, 7, 21, 0, 0, 13965, 13966, 7, 6, 0, 0, 13966, 13967, 5, 95, 0, 0, 13967, 13968, 7, 3, 0, 0, 13968, 13969, 7, 6, 0, 0, 13969, 13970, 7, 16, 0, 0, 13970, 1802, 1, 0, 0, 0, 13971, 13972, 7, 14, 0, 0, 13972, 13973, 7, 0, 0, 0, 13973, 13974, 7, 7, 0, 0, 13974, 13975, 7, 0, 0, 0, 13975, 13976, 7, 17, 0, 0, 13976, 13977, 7, 6, 0, 0, 13977, 13978, 7, 9, 0, 0, 13978, 1804, 1, 0, 0, 0, 13979, 13980, 7, 14, 0, 0, 13980, 13981, 7, 0, 0, 0, 13981, 13982, 7, 7, 0, 0, 13982, 13983, 7, 0, 0, 0, 13983, 13984, 7, 17, 0, 0, 13984, 13985, 7, 6, 0, 0, 13985, 1806, 1, 0, 0, 0, 13986, 13987, 7, 14, 0, 0, 13987, 13988, 7, 0, 0, 0, 13988, 13989, 7, 7, 0, 0, 13989, 13990, 7, 0, 0, 0, 13990, 13991, 7, 17, 0, 0, 13991, 13992, 7, 6, 0, 0, 13992, 13993, 7, 14, 0, 0, 13993, 13994, 7, 6, 0, 0, 13994, 13995, 7, 7, 0, 0, 13995, 13996, 7, 4, 0, 0, 13996, 1808, 1, 0, 0, 0, 13997, 13998, 7, 14, 0, 0, 13998, 13999, 7, 0, 0, 0, 13999, 14000, 7, 7, 0, 0, 14000, 14001, 7, 0, 0, 0, 14001, 14002, 7, 17, 0, 0, 14002, 14003, 7, 6, 0, 0, 14003, 14004, 7, 3, 0, 0, 14004, 1810, 1, 0, 0, 0, 14005, 14006, 7, 14, 0, 0, 14006, 14007, 7, 0, 0, 0, 14007, 14008, 7, 7, 0, 0, 14008, 14009, 7, 9, 0, 0, 14009, 14010, 7, 0, 0, 0, 14010, 14011, 7, 4, 0, 0, 14011, 14012, 7, 2, 0, 0, 14012, 14013, 7, 3, 0, 0, 14013, 14014, 7, 18, 0, 0, 14014, 1812, 1, 0, 0, 0, 14015, 14016, 7, 14, 0, 0, 14016, 14017, 7, 0, 0, 0, 14017, 14018, 7, 7, 0, 0, 14018, 14019, 7, 12, 0, 0, 14019, 14020, 7, 0, 0, 0, 14020, 14021, 7, 11, 0, 0, 14021, 1814, 1, 0, 0, 0, 14022, 14023, 7, 14, 0, 0, 14023, 14024, 7, 0, 0, 0, 14024, 14025, 7, 15, 0, 0, 14025, 1816, 1, 0, 0, 0, 14026, 14027, 7, 14, 0, 0, 14027, 14028, 7, 0, 0, 0, 14028, 14029, 7, 15, 0, 0, 14029, 14030, 7, 15, 0, 0, 14030, 14031, 7, 10, 0, 0, 14031, 14032, 7, 7, 0, 0, 14032, 14033, 7, 17, 0, 0, 14033, 1818, 1, 0, 0, 0, 14034, 14035, 7, 14, 0, 0, 14035, 14036, 7, 0, 0, 0, 14036, 14037, 7, 5, 0, 0, 14037, 14038, 7, 21, 0, 0, 14038, 1820, 1, 0, 0, 0, 14039, 14040, 7, 14, 0, 0, 14040, 14041, 7, 0, 0, 0, 14041, 14042, 7, 5, 0, 0, 14042, 14043, 7, 4, 0, 0, 14043, 14044, 7, 6, 0, 0, 14044, 14045, 7, 3, 0, 0, 14045, 1822, 1, 0, 0, 0, 14046, 14047, 7, 14, 0, 0, 14047, 14048, 7, 0, 0, 0, 14048, 14049, 7, 4, 0, 0, 14049, 14050, 7, 8, 0, 0, 14050, 14051, 7, 19, 0, 0, 14051, 14052, 7, 6, 0, 0, 14052, 14053, 7, 9, 0, 0, 14053, 1824, 1, 0, 0, 0, 14054, 14055, 7, 14, 0, 0, 14055, 14056, 7, 0, 0, 0, 14056, 14057, 7, 4, 0, 0, 14057, 14058, 7, 8, 0, 0, 14058, 14059, 7, 19, 0, 0, 14059, 14060, 7, 6, 0, 0, 14060, 14061, 7, 5, 0, 0, 14061, 1826, 1, 0, 0, 0, 14062, 14063, 7, 14, 0, 0, 14063, 14064, 7, 0, 0, 0, 14064, 14065, 7, 4, 0, 0, 14065, 14066, 7, 8, 0, 0, 14066, 14067, 7, 19, 0, 0, 14067, 1828, 1, 0, 0, 0, 14068, 14069, 7, 14, 0, 0, 14069, 14070, 7, 0, 0, 0, 14070, 14071, 7, 4, 0, 0, 14071, 14072, 7, 8, 0, 0, 14072, 14073, 7, 19, 0, 0, 14073, 14074, 5, 95, 0, 0, 14074, 14075, 7, 7, 0, 0, 14075, 14076, 7, 12, 0, 0, 14076, 14077, 7, 14, 0, 0, 14077, 14078, 7, 1, 0, 0, 14078, 14079, 7, 6, 0, 0, 14079, 14080, 7, 3, 0, 0, 14080, 1830, 1, 0, 0, 0, 14081, 14082, 7, 14, 0, 0, 14082, 14083, 7, 0, 0, 0, 14083, 14084, 7, 4, 0, 0, 14084, 14085, 7, 8, 0, 0, 14085, 14086, 7, 19, 0, 0, 14086, 14087, 5, 95, 0, 0, 14087, 14088, 7, 3, 0, 0, 14088, 14089, 7, 6, 0, 0, 14089, 14090, 7, 8, 0, 0, 14090, 14091, 7, 2, 0, 0, 14091, 14092, 7, 17, 0, 0, 14092, 14093, 7, 7, 0, 0, 14093, 14094, 7, 10, 0, 0, 14094, 14095, 7, 23, 0, 0, 14095, 14096, 7, 6, 0, 0, 14096, 1832, 1, 0, 0, 0, 14097, 14098, 7, 14, 0, 0, 14098, 14099, 7, 0, 0, 0, 14099, 14100, 7, 4, 0, 0, 14100, 14101, 7, 6, 0, 0, 14101, 14102, 7, 3, 0, 0, 14102, 14103, 7, 10, 0, 0, 14103, 14104, 7, 0, 0, 0, 14104, 14105, 7, 11, 0, 0, 14105, 14106, 7, 10, 0, 0, 14106, 14107, 7, 23, 0, 0, 14107, 14108, 7, 6, 0, 0, 14108, 14109, 7, 9, 0, 0, 14109, 1834, 1, 0, 0, 0, 14110, 14111, 7, 14, 0, 0, 14111, 14112, 7, 0, 0, 0, 14112, 14113, 7, 4, 0, 0, 14113, 14114, 7, 6, 0, 0, 14114, 14115, 7, 3, 0, 0, 14115, 14116, 7, 10, 0, 0, 14116, 14117, 7, 0, 0, 0, 14117, 14118, 7, 11, 0, 0, 14118, 14119, 7, 10, 0, 0, 14119, 14120, 7, 23, 0, 0, 14120, 14121, 7, 6, 0, 0, 14121, 1836, 1, 0, 0, 0, 14122, 14123, 7, 14, 0, 0, 14123, 14124, 7, 0, 0, 0, 14124, 14125, 7, 25, 0, 0, 14125, 14126, 7, 0, 0, 0, 14126, 14127, 7, 3, 0, 0, 14127, 14128, 7, 8, 0, 0, 14128, 14129, 7, 19, 0, 0, 14129, 14130, 7, 11, 0, 0, 14130, 14131, 7, 2, 0, 0, 14131, 14132, 7, 17, 0, 0, 14132, 14133, 7, 5, 0, 0, 14133, 1838, 1, 0, 0, 0, 14134, 14135, 7, 14, 0, 0, 14135, 14136, 7, 0, 0, 0, 14136, 14137, 7, 25, 0, 0, 14137, 14138, 7, 9, 0, 0, 14138, 14139, 7, 0, 0, 0, 14139, 14140, 7, 4, 0, 0, 14140, 14141, 7, 0, 0, 0, 14141, 14142, 7, 16, 0, 0, 14142, 14143, 7, 10, 0, 0, 14143, 14144, 7, 11, 0, 0, 14144, 14145, 7, 6, 0, 0, 14145, 14146, 7, 5, 0, 0, 14146, 1840, 1, 0, 0, 0, 14147, 14148, 7, 14, 0, 0, 14148, 14149, 7, 0, 0, 0, 14149, 14150, 7, 25, 0, 0, 14150, 14151, 7, 6, 0, 0, 14151, 14152, 7, 25, 0, 0, 14152, 14153, 7, 4, 0, 0, 14153, 14154, 7, 6, 0, 0, 14154, 14155, 7, 7, 0, 0, 14155, 14156, 7, 4, 0, 0, 14156, 14157, 7, 5, 0, 0, 14157, 1842, 1, 0, 0, 0, 14158, 14159, 7, 14, 0, 0, 14159, 14160, 7, 0, 0, 0, 14160, 14161, 7, 25, 0, 0, 14161, 14162, 7, 10, 0, 0, 14162, 14163, 7, 14, 0, 0, 14163, 14164, 7, 10, 0, 0, 14164, 14165, 7, 23, 0, 0, 14165, 14166, 7, 6, 0, 0, 14166, 1844, 1, 0, 0, 0, 14167, 14168, 7, 14, 0, 0, 14168, 14169, 7, 0, 0, 0, 14169, 14170, 7, 25, 0, 0, 14170, 14171, 7, 10, 0, 0, 14171, 14172, 7, 7, 0, 0, 14172, 14173, 7, 5, 0, 0, 14173, 14174, 7, 4, 0, 0, 14174, 14175, 7, 0, 0, 0, 14175, 14176, 7, 7, 0, 0, 14176, 14177, 7, 8, 0, 0, 14177, 14178, 7, 6, 0, 0, 14178, 14179, 7, 5, 0, 0, 14179, 1846, 1, 0, 0, 0, 14180, 14181, 7, 14, 0, 0, 14181, 14182, 7, 0, 0, 0, 14182, 14183, 7, 25, 0, 0, 14183, 14184, 7, 11, 0, 0, 14184, 14185, 7, 2, 0, 0, 14185, 14186, 7, 17, 0, 0, 14186, 14187, 7, 16, 0, 0, 14187, 14188, 7, 10, 0, 0, 14188, 14189, 7, 11, 0, 0, 14189, 14190, 7, 6, 0, 0, 14190, 14191, 7, 5, 0, 0, 14191, 1848, 1, 0, 0, 0, 14192, 14193, 7, 14, 0, 0, 14193, 14194, 7, 0, 0, 0, 14194, 14195, 7, 25, 0, 0, 14195, 14196, 7, 11, 0, 0, 14196, 14197, 7, 2, 0, 0, 14197, 14198, 7, 17, 0, 0, 14198, 14199, 7, 19, 0, 0, 14199, 14200, 7, 10, 0, 0, 14200, 14201, 7, 5, 0, 0, 14201, 14202, 7, 4, 0, 0, 14202, 14203, 7, 2, 0, 0, 14203, 14204, 7, 3, 0, 0, 14204, 14205, 7, 18, 0, 0, 14205, 1850, 1, 0, 0, 0, 14206, 14207, 7, 14, 0, 0, 14207, 14208, 7, 0, 0, 0, 14208, 14209, 7, 25, 0, 0, 14209, 14210, 7, 11, 0, 0, 14210, 14211, 7, 2, 0, 0, 14211, 14212, 7, 17, 0, 0, 14212, 14213, 7, 14, 0, 0, 14213, 14214, 7, 6, 0, 0, 14214, 14215, 7, 14, 0, 0, 14215, 14216, 7, 1, 0, 0, 14216, 14217, 7, 6, 0, 0, 14217, 14218, 7, 3, 0, 0, 14218, 14219, 7, 5, 0, 0, 14219, 1852, 1, 0, 0, 0, 14220, 14221, 7, 14, 0, 0, 14221, 14222, 7, 0, 0, 0, 14222, 14223, 7, 25, 0, 0, 14223, 14224, 5, 95, 0, 0, 14224, 14225, 7, 5, 0, 0, 14225, 14226, 7, 19, 0, 0, 14226, 14227, 7, 0, 0, 0, 14227, 14228, 7, 3, 0, 0, 14228, 14229, 7, 6, 0, 0, 14229, 14230, 7, 9, 0, 0, 14230, 14231, 5, 95, 0, 0, 14231, 14232, 7, 4, 0, 0, 14232, 14233, 7, 6, 0, 0, 14233, 14234, 7, 14, 0, 0, 14234, 14235, 7, 15, 0, 0, 14235, 14236, 5, 95, 0, 0, 14236, 14237, 7, 5, 0, 0, 14237, 14238, 7, 10, 0, 0, 14238, 14239, 7, 23, 0, 0, 14239, 14240, 7, 6, 0, 0, 14240, 1854, 1, 0, 0, 0, 14241, 14242, 7, 14, 0, 0, 14242, 14243, 7, 0, 0, 0, 14243, 14244, 7, 25, 0, 0, 14244, 14245, 7, 5, 0, 0, 14245, 14246, 7, 10, 0, 0, 14246, 14247, 7, 23, 0, 0, 14247, 14248, 7, 6, 0, 0, 14248, 1856, 1, 0, 0, 0, 14249, 14250, 7, 14, 0, 0, 14250, 14251, 7, 0, 0, 0, 14251, 14252, 7, 25, 0, 0, 14252, 14253, 7, 4, 0, 0, 14253, 14254, 7, 3, 0, 0, 14254, 14255, 7, 0, 0, 0, 14255, 14256, 7, 7, 0, 0, 14256, 14257, 7, 5, 0, 0, 14257, 1858, 1, 0, 0, 0, 14258, 14259, 7, 14, 0, 0, 14259, 14260, 7, 0, 0, 0, 14260, 14261, 7, 25, 0, 0, 14261, 14262, 7, 13, 0, 0, 14262, 14263, 7, 0, 0, 0, 14263, 14264, 7, 11, 0, 0, 14264, 14265, 7, 12, 0, 0, 14265, 14266, 7, 6, 0, 0, 14266, 1860, 1, 0, 0, 0, 14267, 14268, 7, 14, 0, 0, 14268, 14269, 7, 6, 0, 0, 14269, 14270, 7, 0, 0, 0, 14270, 14271, 7, 5, 0, 0, 14271, 14272, 7, 12, 0, 0, 14272, 14273, 7, 3, 0, 0, 14273, 14274, 7, 6, 0, 0, 14274, 1862, 1, 0, 0, 0, 14275, 14276, 7, 14, 0, 0, 14276, 14277, 7, 6, 0, 0, 14277, 14278, 7, 0, 0, 0, 14278, 14279, 7, 5, 0, 0, 14279, 14280, 7, 12, 0, 0, 14280, 14281, 7, 3, 0, 0, 14281, 14282, 7, 6, 0, 0, 14282, 14283, 7, 5, 0, 0, 14283, 1864, 1, 0, 0, 0, 14284, 14285, 7, 14, 0, 0, 14285, 14286, 7, 6, 0, 0, 14286, 14287, 7, 9, 0, 0, 14287, 14288, 7, 10, 0, 0, 14288, 14289, 7, 12, 0, 0, 14289, 14290, 7, 14, 0, 0, 14290, 1866, 1, 0, 0, 0, 14291, 14292, 7, 14, 0, 0, 14292, 14293, 7, 6, 0, 0, 14293, 14294, 7, 14, 0, 0, 14294, 14295, 7, 1, 0, 0, 14295, 14296, 7, 6, 0, 0, 14296, 14297, 7, 3, 0, 0, 14297, 1868, 1, 0, 0, 0, 14298, 14299, 7, 14, 0, 0, 14299, 14300, 7, 6, 0, 0, 14300, 14301, 7, 14, 0, 0, 14301, 14302, 7, 1, 0, 0, 14302, 14303, 7, 6, 0, 0, 14303, 14304, 7, 3, 0, 0, 14304, 14305, 5, 95, 0, 0, 14305, 14306, 7, 8, 0, 0, 14306, 14307, 7, 0, 0, 0, 14307, 14308, 7, 15, 0, 0, 14308, 14309, 7, 4, 0, 0, 14309, 14310, 7, 10, 0, 0, 14310, 14311, 7, 2, 0, 0, 14311, 14312, 7, 7, 0, 0, 14312, 1870, 1, 0, 0, 0, 14313, 14314, 7, 14, 0, 0, 14314, 14315, 7, 6, 0, 0, 14315, 14316, 7, 14, 0, 0, 14316, 14317, 7, 1, 0, 0, 14317, 14318, 7, 6, 0, 0, 14318, 14319, 7, 3, 0, 0, 14319, 14320, 5, 95, 0, 0, 14320, 14321, 7, 9, 0, 0, 14321, 14322, 7, 6, 0, 0, 14322, 14323, 7, 5, 0, 0, 14323, 14324, 7, 8, 0, 0, 14324, 14325, 7, 3, 0, 0, 14325, 14326, 7, 10, 0, 0, 14326, 14327, 7, 15, 0, 0, 14327, 14328, 7, 4, 0, 0, 14328, 14329, 7, 10, 0, 0, 14329, 14330, 7, 2, 0, 0, 14330, 14331, 7, 7, 0, 0, 14331, 1872, 1, 0, 0, 0, 14332, 14333, 7, 14, 0, 0, 14333, 14334, 7, 6, 0, 0, 14334, 14335, 7, 14, 0, 0, 14335, 14336, 7, 1, 0, 0, 14336, 14337, 7, 6, 0, 0, 14337, 14338, 7, 3, 0, 0, 14338, 14339, 5, 95, 0, 0, 14339, 14340, 7, 7, 0, 0, 14340, 14341, 7, 0, 0, 0, 14341, 14342, 7, 14, 0, 0, 14342, 14343, 7, 6, 0, 0, 14343, 1874, 1, 0, 0, 0, 14344, 14345, 7, 14, 0, 0, 14345, 14346, 7, 6, 0, 0, 14346, 14347, 7, 14, 0, 0, 14347, 14348, 7, 1, 0, 0, 14348, 14349, 7, 6, 0, 0, 14349, 14350, 7, 3, 0, 0, 14350, 14351, 5, 95, 0, 0, 14351, 14352, 7, 12, 0, 0, 14352, 14353, 7, 7, 0, 0, 14353, 14354, 7, 10, 0, 0, 14354, 14355, 7, 24, 0, 0, 14355, 14356, 7, 12, 0, 0, 14356, 14357, 7, 6, 0, 0, 14357, 14358, 5, 95, 0, 0, 14358, 14359, 7, 7, 0, 0, 14359, 14360, 7, 0, 0, 0, 14360, 14361, 7, 14, 0, 0, 14361, 14362, 7, 6, 0, 0, 14362, 1876, 1, 0, 0, 0, 14363, 14364, 7, 14, 0, 0, 14364, 14365, 7, 6, 0, 0, 14365, 14366, 7, 14, 0, 0, 14366, 14367, 7, 8, 0, 0, 14367, 14368, 7, 2, 0, 0, 14368, 14369, 7, 14, 0, 0, 14369, 14370, 7, 15, 0, 0, 14370, 14371, 7, 3, 0, 0, 14371, 14372, 7, 6, 0, 0, 14372, 14373, 7, 5, 0, 0, 14373, 14374, 7, 5, 0, 0, 14374, 1878, 1, 0, 0, 0, 14375, 14376, 7, 14, 0, 0, 14376, 14377, 7, 6, 0, 0, 14377, 14378, 7, 14, 0, 0, 14378, 14379, 7, 2, 0, 0, 14379, 14380, 7, 3, 0, 0, 14380, 14381, 7, 18, 0, 0, 14381, 1880, 1, 0, 0, 0, 14382, 14383, 7, 14, 0, 0, 14383, 14384, 7, 6, 0, 0, 14384, 14385, 7, 3, 0, 0, 14385, 14386, 7, 17, 0, 0, 14386, 14387, 7, 6, 0, 0, 14387, 14388, 5, 36, 0, 0, 14388, 14389, 7, 0, 0, 0, 14389, 14390, 7, 8, 0, 0, 14390, 14391, 7, 4, 0, 0, 14391, 14392, 7, 10, 0, 0, 14392, 14393, 7, 2, 0, 0, 14393, 14394, 7, 7, 0, 0, 14394, 14395, 7, 5, 0, 0, 14395, 1882, 1, 0, 0, 0, 14396, 14397, 7, 14, 0, 0, 14397, 14398, 7, 6, 0, 0, 14398, 14399, 7, 3, 0, 0, 14399, 14400, 7, 17, 0, 0, 14400, 14401, 7, 6, 0, 0, 14401, 14402, 5, 95, 0, 0, 14402, 14403, 7, 0, 0, 0, 14403, 14404, 7, 20, 0, 0, 14404, 1884, 1, 0, 0, 0, 14405, 14406, 7, 14, 0, 0, 14406, 14407, 7, 6, 0, 0, 14407, 14408, 7, 3, 0, 0, 14408, 14409, 7, 17, 0, 0, 14409, 14410, 7, 6, 0, 0, 14410, 14411, 5, 95, 0, 0, 14411, 14412, 7, 8, 0, 0, 14412, 14413, 7, 2, 0, 0, 14413, 14414, 7, 7, 0, 0, 14414, 14415, 7, 5, 0, 0, 14415, 14416, 7, 4, 0, 0, 14416, 14417, 5, 95, 0, 0, 14417, 14418, 7, 2, 0, 0, 14418, 14419, 7, 7, 0, 0, 14419, 1886, 1, 0, 0, 0, 14420, 14421, 7, 14, 0, 0, 14421, 14422, 7, 6, 0, 0, 14422, 14423, 7, 3, 0, 0, 14423, 14424, 7, 17, 0, 0, 14424, 14425, 7, 6, 0, 0, 14425, 1888, 1, 0, 0, 0, 14426, 14427, 7, 14, 0, 0, 14427, 14428, 7, 6, 0, 0, 14428, 14429, 7, 3, 0, 0, 14429, 14430, 7, 17, 0, 0, 14430, 14431, 7, 6, 0, 0, 14431, 14432, 5, 95, 0, 0, 14432, 14433, 7, 5, 0, 0, 14433, 14434, 7, 20, 0, 0, 14434, 1890, 1, 0, 0, 0, 14435, 14436, 7, 14, 0, 0, 14436, 14437, 7, 6, 0, 0, 14437, 14438, 7, 4, 0, 0, 14438, 14439, 7, 0, 0, 0, 14439, 14440, 7, 9, 0, 0, 14440, 14441, 7, 0, 0, 0, 14441, 14442, 7, 4, 0, 0, 14442, 14443, 7, 0, 0, 0, 14443, 1892, 1, 0, 0, 0, 14444, 14445, 7, 14, 0, 0, 14445, 14446, 7, 6, 0, 0, 14446, 14447, 7, 4, 0, 0, 14447, 14448, 7, 19, 0, 0, 14448, 14449, 7, 2, 0, 0, 14449, 14450, 7, 9, 0, 0, 14450, 1894, 1, 0, 0, 0, 14451, 14452, 7, 14, 0, 0, 14452, 14453, 7, 10, 0, 0, 14453, 14454, 7, 17, 0, 0, 14454, 14455, 7, 3, 0, 0, 14455, 14456, 7, 0, 0, 0, 14456, 14457, 7, 4, 0, 0, 14457, 14458, 7, 6, 0, 0, 14458, 1896, 1, 0, 0, 0, 14459, 14460, 7, 14, 0, 0, 14460, 14461, 7, 10, 0, 0, 14461, 14462, 7, 17, 0, 0, 14462, 14463, 7, 3, 0, 0, 14463, 14464, 7, 0, 0, 0, 14464, 14465, 7, 4, 0, 0, 14465, 14466, 7, 10, 0, 0, 14466, 14467, 7, 2, 0, 0, 14467, 14468, 7, 7, 0, 0, 14468, 1898, 1, 0, 0, 0, 14469, 14470, 7, 14, 0, 0, 14470, 14471, 7, 10, 0, 0, 14471, 14472, 7, 7, 0, 0, 14472, 14473, 7, 6, 0, 0, 14473, 14474, 7, 25, 0, 0, 14474, 14475, 7, 4, 0, 0, 14475, 14476, 7, 6, 0, 0, 14476, 14477, 7, 7, 0, 0, 14477, 14478, 7, 4, 0, 0, 14478, 14479, 7, 5, 0, 0, 14479, 1900, 1, 0, 0, 0, 14480, 14481, 7, 14, 0, 0, 14481, 14482, 7, 10, 0, 0, 14482, 14483, 7, 7, 0, 0, 14483, 14484, 7, 10, 0, 0, 14484, 14485, 7, 14, 0, 0, 14485, 14486, 7, 10, 0, 0, 14486, 14487, 7, 23, 0, 0, 14487, 14488, 7, 6, 0, 0, 14488, 1902, 1, 0, 0, 0, 14489, 14490, 7, 14, 0, 0, 14490, 14491, 7, 10, 0, 0, 14491, 14492, 7, 7, 0, 0, 14492, 14493, 7, 10, 0, 0, 14493, 14494, 7, 14, 0, 0, 14494, 14495, 7, 12, 0, 0, 14495, 14496, 7, 14, 0, 0, 14496, 1904, 1, 0, 0, 0, 14497, 14498, 7, 14, 0, 0, 14498, 14499, 7, 10, 0, 0, 14499, 14500, 7, 7, 0, 0, 14500, 14501, 7, 10, 0, 0, 14501, 14502, 7, 7, 0, 0, 14502, 14503, 7, 17, 0, 0, 14503, 1906, 1, 0, 0, 0, 14504, 14505, 7, 14, 0, 0, 14505, 14506, 7, 10, 0, 0, 14506, 14507, 7, 7, 0, 0, 14507, 14508, 7, 12, 0, 0, 14508, 14509, 7, 5, 0, 0, 14509, 1908, 1, 0, 0, 0, 14510, 14511, 7, 14, 0, 0, 14511, 14512, 7, 10, 0, 0, 14512, 14513, 7, 7, 0, 0, 14513, 14514, 7, 12, 0, 0, 14514, 14515, 7, 5, 0, 0, 14515, 14516, 5, 95, 0, 0, 14516, 14517, 7, 7, 0, 0, 14517, 14518, 7, 12, 0, 0, 14518, 14519, 7, 11, 0, 0, 14519, 14520, 7, 11, 0, 0, 14520, 1910, 1, 0, 0, 0, 14521, 14522, 7, 14, 0, 0, 14522, 14523, 7, 10, 0, 0, 14523, 14524, 7, 7, 0, 0, 14524, 14525, 7, 12, 0, 0, 14525, 14526, 7, 4, 0, 0, 14526, 14527, 7, 6, 0, 0, 14527, 1912, 1, 0, 0, 0, 14528, 14529, 7, 14, 0, 0, 14529, 14530, 7, 10, 0, 0, 14530, 14531, 7, 7, 0, 0, 14531, 14532, 7, 12, 0, 0, 14532, 14533, 7, 4, 0, 0, 14533, 14534, 7, 6, 0, 0, 14534, 14535, 7, 5, 0, 0, 14535, 1914, 1, 0, 0, 0, 14536, 14537, 7, 14, 0, 0, 14537, 14538, 7, 10, 0, 0, 14538, 14539, 7, 7, 0, 0, 14539, 14540, 7, 13, 0, 0, 14540, 14541, 7, 0, 0, 0, 14541, 14542, 7, 11, 0, 0, 14542, 14543, 7, 12, 0, 0, 14543, 14544, 7, 6, 0, 0, 14544, 1916, 1, 0, 0, 0, 14545, 14546, 7, 14, 0, 0, 14546, 14547, 7, 10, 0, 0, 14547, 14548, 7, 3, 0, 0, 14548, 14549, 7, 3, 0, 0, 14549, 14550, 7, 2, 0, 0, 14550, 14551, 7, 3, 0, 0, 14551, 14552, 7, 8, 0, 0, 14552, 14553, 7, 2, 0, 0, 14553, 14554, 7, 11, 0, 0, 14554, 14555, 7, 9, 0, 0, 14555, 1918, 1, 0, 0, 0, 14556, 14557, 7, 14, 0, 0, 14557, 14558, 7, 10, 0, 0, 14558, 14559, 7, 3, 0, 0, 14559, 14560, 7, 3, 0, 0, 14560, 14561, 7, 2, 0, 0, 14561, 14562, 7, 3, 0, 0, 14562, 14563, 7, 19, 0, 0, 14563, 14564, 7, 2, 0, 0, 14564, 14565, 7, 4, 0, 0, 14565, 1920, 1, 0, 0, 0, 14566, 14567, 7, 14, 0, 0, 14567, 14568, 7, 10, 0, 0, 14568, 14569, 7, 3, 0, 0, 14569, 14570, 7, 3, 0, 0, 14570, 14571, 7, 2, 0, 0, 14571, 14572, 7, 3, 0, 0, 14572, 1922, 1, 0, 0, 0, 14573, 14574, 7, 14, 0, 0, 14574, 14575, 7, 10, 0, 0, 14575, 14576, 7, 5, 0, 0, 14576, 14577, 7, 5, 0, 0, 14577, 14578, 7, 10, 0, 0, 14578, 14579, 7, 7, 0, 0, 14579, 14580, 7, 17, 0, 0, 14580, 1924, 1, 0, 0, 0, 14581, 14582, 7, 14, 0, 0, 14582, 14583, 7, 10, 0, 0, 14583, 14584, 7, 5, 0, 0, 14584, 14585, 7, 14, 0, 0, 14585, 14586, 7, 0, 0, 0, 14586, 14587, 7, 4, 0, 0, 14587, 14588, 7, 8, 0, 0, 14588, 14589, 7, 19, 0, 0, 14589, 1926, 1, 0, 0, 0, 14590, 14591, 7, 14, 0, 0, 14591, 14592, 7, 11, 0, 0, 14592, 14593, 7, 5, 0, 0, 14593, 14594, 7, 11, 0, 0, 14594, 14595, 7, 0, 0, 0, 14595, 14596, 7, 1, 0, 0, 14596, 14597, 7, 6, 0, 0, 14597, 14598, 7, 11, 0, 0, 14598, 1928, 1, 0, 0, 0, 14599, 14600, 7, 14, 0, 0, 14600, 14601, 7, 2, 0, 0, 14601, 14602, 7, 9, 0, 0, 14602, 14603, 7, 6, 0, 0, 14603, 14604, 7, 11, 0, 0, 14604, 14605, 5, 95, 0, 0, 14605, 14606, 7, 8, 0, 0, 14606, 14607, 7, 2, 0, 0, 14607, 14608, 7, 14, 0, 0, 14608, 14609, 7, 15, 0, 0, 14609, 14610, 7, 10, 0, 0, 14610, 14611, 7, 11, 0, 0, 14611, 14612, 7, 6, 0, 0, 14612, 14613, 5, 95, 0, 0, 14613, 14614, 7, 5, 0, 0, 14614, 14615, 7, 12, 0, 0, 14615, 14616, 7, 1, 0, 0, 14616, 14617, 7, 24, 0, 0, 14617, 14618, 7, 12, 0, 0, 14618, 14619, 7, 6, 0, 0, 14619, 14620, 7, 3, 0, 0, 14620, 14621, 7, 18, 0, 0, 14621, 1930, 1, 0, 0, 0, 14622, 14623, 7, 14, 0, 0, 14623, 14624, 7, 2, 0, 0, 14624, 14625, 7, 9, 0, 0, 14625, 14626, 7, 6, 0, 0, 14626, 14627, 7, 11, 0, 0, 14627, 14628, 5, 95, 0, 0, 14628, 14629, 7, 9, 0, 0, 14629, 14630, 7, 2, 0, 0, 14630, 14631, 7, 7, 0, 0, 14631, 14632, 7, 4, 0, 0, 14632, 14633, 7, 13, 0, 0, 14633, 14634, 7, 6, 0, 0, 14634, 14635, 7, 3, 0, 0, 14635, 14636, 7, 10, 0, 0, 14636, 14637, 7, 16, 0, 0, 14637, 14638, 7, 18, 0, 0, 14638, 14639, 5, 95, 0, 0, 14639, 14640, 7, 12, 0, 0, 14640, 14641, 7, 7, 0, 0, 14641, 14642, 7, 10, 0, 0, 14642, 14643, 7, 24, 0, 0, 14643, 14644, 7, 12, 0, 0, 14644, 14645, 7, 6, 0, 0, 14645, 14646, 7, 7, 0, 0, 14646, 14647, 7, 6, 0, 0, 14647, 14648, 7, 5, 0, 0, 14648, 14649, 7, 5, 0, 0, 14649, 1932, 1, 0, 0, 0, 14650, 14651, 7, 14, 0, 0, 14651, 14652, 7, 2, 0, 0, 14652, 14653, 7, 9, 0, 0, 14653, 14654, 7, 6, 0, 0, 14654, 14655, 7, 11, 0, 0, 14655, 14656, 5, 95, 0, 0, 14656, 14657, 7, 9, 0, 0, 14657, 14658, 7, 18, 0, 0, 14658, 14659, 7, 7, 0, 0, 14659, 14660, 7, 0, 0, 0, 14660, 14661, 7, 14, 0, 0, 14661, 14662, 7, 10, 0, 0, 14662, 14663, 7, 8, 0, 0, 14663, 14664, 5, 95, 0, 0, 14664, 14665, 7, 5, 0, 0, 14665, 14666, 7, 12, 0, 0, 14666, 14667, 7, 1, 0, 0, 14667, 14668, 7, 24, 0, 0, 14668, 14669, 7, 12, 0, 0, 14669, 14670, 7, 6, 0, 0, 14670, 14671, 7, 3, 0, 0, 14671, 14672, 7, 18, 0, 0, 14672, 1934, 1, 0, 0, 0, 14673, 14674, 7, 14, 0, 0, 14674, 14675, 7, 2, 0, 0, 14675, 14676, 7, 9, 0, 0, 14676, 14677, 7, 6, 0, 0, 14677, 14678, 7, 11, 0, 0, 14678, 14679, 5, 95, 0, 0, 14679, 14680, 7, 14, 0, 0, 14680, 14681, 7, 10, 0, 0, 14681, 14682, 7, 7, 0, 0, 14682, 14683, 5, 95, 0, 0, 14683, 14684, 7, 0, 0, 0, 14684, 14685, 7, 7, 0, 0, 14685, 14686, 7, 0, 0, 0, 14686, 14687, 7, 11, 0, 0, 14687, 14688, 7, 18, 0, 0, 14688, 14689, 7, 5, 0, 0, 14689, 14690, 7, 10, 0, 0, 14690, 14691, 7, 5, 0, 0, 14691, 1936, 1, 0, 0, 0, 14692, 14693, 7, 14, 0, 0, 14693, 14694, 7, 2, 0, 0, 14694, 14695, 7, 9, 0, 0, 14695, 14696, 7, 6, 0, 0, 14696, 14697, 7, 11, 0, 0, 14697, 1938, 1, 0, 0, 0, 14698, 14699, 7, 14, 0, 0, 14699, 14700, 7, 2, 0, 0, 14700, 14701, 7, 9, 0, 0, 14701, 14702, 7, 6, 0, 0, 14702, 14703, 7, 11, 0, 0, 14703, 14704, 5, 95, 0, 0, 14704, 14705, 7, 7, 0, 0, 14705, 14706, 7, 1, 0, 0, 14706, 1940, 1, 0, 0, 0, 14707, 14708, 7, 14, 0, 0, 14708, 14709, 7, 2, 0, 0, 14709, 14710, 7, 9, 0, 0, 14710, 14711, 7, 6, 0, 0, 14711, 14712, 7, 11, 0, 0, 14712, 14713, 5, 95, 0, 0, 14713, 14714, 7, 7, 0, 0, 14714, 14715, 7, 2, 0, 0, 14715, 14716, 5, 95, 0, 0, 14716, 14717, 7, 0, 0, 0, 14717, 14718, 7, 7, 0, 0, 14718, 14719, 7, 0, 0, 0, 14719, 14720, 7, 11, 0, 0, 14720, 14721, 7, 18, 0, 0, 14721, 14722, 7, 5, 0, 0, 14722, 14723, 7, 10, 0, 0, 14723, 14724, 7, 5, 0, 0, 14724, 1942, 1, 0, 0, 0, 14725, 14726, 7, 14, 0, 0, 14726, 14727, 7, 2, 0, 0, 14727, 14728, 7, 9, 0, 0, 14728, 14729, 7, 6, 0, 0, 14729, 14730, 7, 11, 0, 0, 14730, 14731, 5, 95, 0, 0, 14731, 14732, 7, 15, 0, 0, 14732, 14733, 7, 1, 0, 0, 14733, 14734, 7, 18, 0, 0, 14734, 1944, 1, 0, 0, 0, 14735, 14736, 7, 14, 0, 0, 14736, 14737, 7, 2, 0, 0, 14737, 14738, 7, 9, 0, 0, 14738, 14739, 7, 6, 0, 0, 14739, 14740, 7, 11, 0, 0, 14740, 14741, 5, 95, 0, 0, 14741, 14742, 7, 15, 0, 0, 14742, 14743, 7, 12, 0, 0, 14743, 14744, 7, 5, 0, 0, 14744, 14745, 7, 19, 0, 0, 14745, 14746, 5, 95, 0, 0, 14746, 14747, 7, 3, 0, 0, 14747, 14748, 7, 6, 0, 0, 14748, 14749, 7, 16, 0, 0, 14749, 1946, 1, 0, 0, 0, 14750, 14751, 7, 14, 0, 0, 14751, 14752, 7, 2, 0, 0, 14752, 14753, 7, 9, 0, 0, 14753, 14754, 7, 6, 0, 0, 14754, 14755, 7, 11, 0, 0, 14755, 14756, 5, 95, 0, 0, 14756, 14757, 7, 5, 0, 0, 14757, 14758, 7, 13, 0, 0, 14758, 1948, 1, 0, 0, 0, 14759, 14760, 7, 14, 0, 0, 14760, 14761, 7, 2, 0, 0, 14761, 14762, 7, 9, 0, 0, 14762, 14763, 7, 6, 0, 0, 14763, 1950, 1, 0, 0, 0, 14764, 14765, 7, 14, 0, 0, 14765, 14766, 7, 2, 0, 0, 14766, 14767, 7, 9, 0, 0, 14767, 14768, 7, 10, 0, 0, 14768, 14769, 7, 16, 0, 0, 14769, 14770, 7, 10, 0, 0, 14770, 14771, 7, 8, 0, 0, 14771, 14772, 7, 0, 0, 0, 14772, 14773, 7, 4, 0, 0, 14773, 14774, 7, 10, 0, 0, 14774, 14775, 7, 2, 0, 0, 14775, 14776, 7, 7, 0, 0, 14776, 1952, 1, 0, 0, 0, 14777, 14778, 7, 14, 0, 0, 14778, 14779, 7, 2, 0, 0, 14779, 14780, 7, 9, 0, 0, 14780, 14781, 7, 10, 0, 0, 14781, 14782, 7, 16, 0, 0, 14782, 14783, 7, 18, 0, 0, 14783, 14784, 5, 95, 0, 0, 14784, 14785, 7, 8, 0, 0, 14785, 14786, 7, 2, 0, 0, 14786, 14787, 7, 11, 0, 0, 14787, 14788, 7, 12, 0, 0, 14788, 14789, 7, 14, 0, 0, 14789, 14790, 7, 7, 0, 0, 14790, 14791, 5, 95, 0, 0, 14791, 14792, 7, 4, 0, 0, 14792, 14793, 7, 18, 0, 0, 14793, 14794, 7, 15, 0, 0, 14794, 14795, 7, 6, 0, 0, 14795, 1954, 1, 0, 0, 0, 14796, 14797, 7, 14, 0, 0, 14797, 14798, 7, 2, 0, 0, 14798, 14799, 7, 9, 0, 0, 14799, 14800, 7, 10, 0, 0, 14800, 14801, 7, 16, 0, 0, 14801, 14802, 7, 18, 0, 0, 14802, 1956, 1, 0, 0, 0, 14803, 14804, 7, 14, 0, 0, 14804, 14805, 7, 2, 0, 0, 14805, 14806, 7, 9, 0, 0, 14806, 1958, 1, 0, 0, 0, 14807, 14808, 7, 14, 0, 0, 14808, 14809, 7, 2, 0, 0, 14809, 14810, 7, 9, 0, 0, 14810, 14811, 7, 12, 0, 0, 14811, 14812, 7, 11, 0, 0, 14812, 14813, 7, 6, 0, 0, 14813, 1960, 1, 0, 0, 0, 14814, 14815, 7, 14, 0, 0, 14815, 14816, 7, 2, 0, 0, 14816, 14817, 7, 7, 0, 0, 14817, 14818, 7, 10, 0, 0, 14818, 14819, 7, 4, 0, 0, 14819, 14820, 7, 2, 0, 0, 14820, 14821, 7, 3, 0, 0, 14821, 14822, 7, 10, 0, 0, 14822, 14823, 7, 7, 0, 0, 14823, 14824, 7, 17, 0, 0, 14824, 1962, 1, 0, 0, 0, 14825, 14826, 7, 14, 0, 0, 14826, 14827, 7, 2, 0, 0, 14827, 14828, 7, 7, 0, 0, 14828, 14829, 7, 10, 0, 0, 14829, 14830, 7, 4, 0, 0, 14830, 14831, 7, 2, 0, 0, 14831, 14832, 7, 3, 0, 0, 14832, 1964, 1, 0, 0, 0, 14833, 14834, 7, 14, 0, 0, 14834, 14835, 7, 2, 0, 0, 14835, 14836, 7, 7, 0, 0, 14836, 14837, 7, 4, 0, 0, 14837, 14838, 7, 19, 0, 0, 14838, 1966, 1, 0, 0, 0, 14839, 14840, 7, 14, 0, 0, 14840, 14841, 7, 2, 0, 0, 14841, 14842, 7, 7, 0, 0, 14842, 14843, 7, 4, 0, 0, 14843, 14844, 7, 19, 0, 0, 14844, 14845, 7, 5, 0, 0, 14845, 14846, 5, 95, 0, 0, 14846, 14847, 7, 1, 0, 0, 14847, 14848, 7, 6, 0, 0, 14848, 14849, 7, 4, 0, 0, 14849, 14850, 7, 22, 0, 0, 14850, 14851, 7, 6, 0, 0, 14851, 14852, 7, 6, 0, 0, 14852, 14853, 7, 7, 0, 0, 14853, 1968, 1, 0, 0, 0, 14854, 14855, 7, 14, 0, 0, 14855, 14856, 7, 2, 0, 0, 14856, 14857, 7, 7, 0, 0, 14857, 14858, 7, 4, 0, 0, 14858, 14859, 7, 19, 0, 0, 14859, 14860, 7, 5, 0, 0, 14860, 1970, 1, 0, 0, 0, 14861, 14862, 7, 14, 0, 0, 14862, 14863, 7, 2, 0, 0, 14863, 14864, 7, 12, 0, 0, 14864, 14865, 7, 7, 0, 0, 14865, 14866, 7, 4, 0, 0, 14866, 1972, 1, 0, 0, 0, 14867, 14868, 7, 14, 0, 0, 14868, 14869, 7, 2, 0, 0, 14869, 14870, 7, 12, 0, 0, 14870, 14871, 7, 7, 0, 0, 14871, 14872, 7, 4, 0, 0, 14872, 14873, 7, 15, 0, 0, 14873, 14874, 7, 0, 0, 0, 14874, 14875, 7, 4, 0, 0, 14875, 14876, 7, 19, 0, 0, 14876, 1974, 1, 0, 0, 0, 14877, 14878, 7, 14, 0, 0, 14878, 14879, 7, 2, 0, 0, 14879, 14880, 7, 12, 0, 0, 14880, 14881, 7, 7, 0, 0, 14881, 14882, 7, 4, 0, 0, 14882, 14883, 7, 15, 0, 0, 14883, 14884, 7, 2, 0, 0, 14884, 14885, 7, 10, 0, 0, 14885, 14886, 7, 7, 0, 0, 14886, 14887, 7, 4, 0, 0, 14887, 1976, 1, 0, 0, 0, 14888, 14889, 7, 14, 0, 0, 14889, 14890, 7, 2, 0, 0, 14890, 14891, 7, 13, 0, 0, 14891, 14892, 7, 6, 0, 0, 14892, 14893, 7, 14, 0, 0, 14893, 14894, 7, 6, 0, 0, 14894, 14895, 7, 7, 0, 0, 14895, 14896, 7, 4, 0, 0, 14896, 1978, 1, 0, 0, 0, 14897, 14898, 7, 14, 0, 0, 14898, 14899, 7, 2, 0, 0, 14899, 14900, 7, 13, 0, 0, 14900, 14901, 7, 6, 0, 0, 14901, 1980, 1, 0, 0, 0, 14902, 14903, 7, 14, 0, 0, 14903, 14904, 7, 12, 0, 0, 14904, 14905, 7, 11, 0, 0, 14905, 14906, 7, 4, 0, 0, 14906, 14907, 7, 10, 0, 0, 14907, 14908, 7, 9, 0, 0, 14908, 14909, 7, 10, 0, 0, 14909, 14910, 7, 14, 0, 0, 14910, 14911, 7, 6, 0, 0, 14911, 14912, 7, 7, 0, 0, 14912, 14913, 7, 5, 0, 0, 14913, 14914, 7, 10, 0, 0, 14914, 14915, 7, 2, 0, 0, 14915, 14916, 7, 7, 0, 0, 14916, 14917, 7, 0, 0, 0, 14917, 14918, 7, 11, 0, 0, 14918, 1982, 1, 0, 0, 0, 14919, 14920, 7, 14, 0, 0, 14920, 14921, 7, 12, 0, 0, 14921, 14922, 7, 11, 0, 0, 14922, 14923, 7, 4, 0, 0, 14923, 14924, 7, 10, 0, 0, 14924, 14925, 7, 5, 0, 0, 14925, 14926, 7, 6, 0, 0, 14926, 14927, 7, 4, 0, 0, 14927, 1984, 1, 0, 0, 0, 14928, 14929, 7, 14, 0, 0, 14929, 14930, 7, 13, 0, 0, 14930, 14931, 5, 95, 0, 0, 14931, 14932, 7, 14, 0, 0, 14932, 14933, 7, 6, 0, 0, 14933, 14934, 7, 3, 0, 0, 14934, 14935, 7, 17, 0, 0, 14935, 14936, 7, 6, 0, 0, 14936, 1986, 1, 0, 0, 0, 14937, 14938, 7, 7, 0, 0, 14938, 14939, 7, 0, 0, 0, 14939, 14940, 7, 14, 0, 0, 14940, 14941, 7, 6, 0, 0, 14941, 14942, 7, 9, 0, 0, 14942, 1988, 1, 0, 0, 0, 14943, 14944, 7, 7, 0, 0, 14944, 14945, 7, 0, 0, 0, 14945, 14946, 7, 14, 0, 0, 14946, 14947, 7, 6, 0, 0, 14947, 1990, 1, 0, 0, 0, 14948, 14949, 7, 7, 0, 0, 14949, 14950, 7, 0, 0, 0, 14950, 14951, 7, 14, 0, 0, 14951, 14952, 7, 6, 0, 0, 14952, 14953, 7, 5, 0, 0, 14953, 14954, 7, 15, 0, 0, 14954, 14955, 7, 0, 0, 0, 14955, 14956, 7, 8, 0, 0, 14956, 14957, 7, 6, 0, 0, 14957, 1992, 1, 0, 0, 0, 14958, 14959, 7, 7, 0, 0, 14959, 14960, 7, 0, 0, 0, 14960, 14961, 7, 7, 0, 0, 14961, 1994, 1, 0, 0, 0, 14962, 14963, 7, 7, 0, 0, 14963, 14964, 7, 0, 0, 0, 14964, 14965, 7, 7, 0, 0, 14965, 14966, 7, 13, 0, 0, 14966, 14967, 7, 11, 0, 0, 14967, 1996, 1, 0, 0, 0, 14968, 14969, 7, 7, 0, 0, 14969, 14970, 7, 0, 0, 0, 14970, 14971, 7, 4, 0, 0, 14971, 14972, 7, 10, 0, 0, 14972, 14973, 7, 2, 0, 0, 14973, 14974, 7, 7, 0, 0, 14974, 14975, 7, 0, 0, 0, 14975, 14976, 7, 11, 0, 0, 14976, 1998, 1, 0, 0, 0, 14977, 14978, 7, 7, 0, 0, 14978, 14979, 7, 0, 0, 0, 14979, 14980, 7, 4, 0, 0, 14980, 14981, 7, 10, 0, 0, 14981, 14982, 7, 13, 0, 0, 14982, 14983, 7, 6, 0, 0, 14983, 14984, 5, 95, 0, 0, 14984, 14985, 7, 16, 0, 0, 14985, 14986, 7, 12, 0, 0, 14986, 14987, 7, 11, 0, 0, 14987, 14988, 7, 11, 0, 0, 14988, 14989, 5, 95, 0, 0, 14989, 14990, 7, 2, 0, 0, 14990, 14991, 7, 12, 0, 0, 14991, 14992, 7, 4, 0, 0, 14992, 14993, 7, 6, 0, 0, 14993, 14994, 7, 3, 0, 0, 14994, 14995, 5, 95, 0, 0, 14995, 14996, 7, 20, 0, 0, 14996, 14997, 7, 2, 0, 0, 14997, 14998, 7, 10, 0, 0, 14998, 14999, 7, 7, 0, 0, 14999, 2000, 1, 0, 0, 0, 15000, 15001, 7, 7, 0, 0, 15001, 15002, 7, 0, 0, 0, 15002, 15003, 7, 4, 0, 0, 15003, 15004, 7, 10, 0, 0, 15004, 15005, 7, 13, 0, 0, 15005, 15006, 7, 6, 0, 0, 15006, 2002, 1, 0, 0, 0, 15007, 15008, 7, 7, 0, 0, 15008, 15009, 7, 0, 0, 0, 15009, 15010, 7, 4, 0, 0, 15010, 15011, 7, 12, 0, 0, 15011, 15012, 7, 3, 0, 0, 15012, 15013, 7, 0, 0, 0, 15013, 15014, 7, 11, 0, 0, 15014, 2004, 1, 0, 0, 0, 15015, 15016, 7, 7, 0, 0, 15016, 15017, 7, 0, 0, 0, 15017, 15018, 7, 4, 0, 0, 15018, 15019, 7, 12, 0, 0, 15019, 15020, 7, 3, 0, 0, 15020, 15021, 7, 0, 0, 0, 15021, 15022, 7, 11, 0, 0, 15022, 15023, 7, 7, 0, 0, 15023, 2006, 1, 0, 0, 0, 15024, 15025, 7, 7, 0, 0, 15025, 15026, 7, 0, 0, 0, 15026, 15027, 7, 13, 0, 0, 15027, 2008, 1, 0, 0, 0, 15028, 15029, 7, 7, 0, 0, 15029, 15030, 7, 8, 0, 0, 15030, 15031, 7, 19, 0, 0, 15031, 15032, 7, 0, 0, 0, 15032, 15033, 7, 3, 0, 0, 15033, 15034, 5, 95, 0, 0, 15034, 15035, 7, 8, 0, 0, 15035, 15036, 7, 5, 0, 0, 15036, 2010, 1, 0, 0, 0, 15037, 15038, 7, 7, 0, 0, 15038, 15039, 7, 8, 0, 0, 15039, 15040, 7, 19, 0, 0, 15040, 15041, 7, 0, 0, 0, 15041, 15042, 7, 3, 0, 0, 15042, 2012, 1, 0, 0, 0, 15043, 15044, 7, 7, 0, 0, 15044, 15045, 7, 8, 0, 0, 15045, 15046, 7, 19, 0, 0, 15046, 15047, 7, 3, 0, 0, 15047, 2014, 1, 0, 0, 0, 15048, 15049, 7, 7, 0, 0, 15049, 15050, 7, 8, 0, 0, 15050, 15051, 7, 11, 0, 0, 15051, 15052, 7, 2, 0, 0, 15052, 15053, 7, 1, 0, 0, 15053, 2016, 1, 0, 0, 0, 15054, 15055, 7, 7, 0, 0, 15055, 15056, 7, 6, 0, 0, 15056, 15057, 7, 6, 0, 0, 15057, 15058, 7, 9, 0, 0, 15058, 15059, 7, 6, 0, 0, 15059, 15060, 7, 9, 0, 0, 15060, 2018, 1, 0, 0, 0, 15061, 15062, 7, 7, 0, 0, 15062, 15063, 7, 6, 0, 0, 15063, 15064, 7, 17, 0, 0, 15064, 2020, 1, 0, 0, 0, 15065, 15066, 7, 7, 0, 0, 15066, 15067, 7, 6, 0, 0, 15067, 15068, 7, 5, 0, 0, 15068, 15069, 7, 4, 0, 0, 15069, 15070, 7, 6, 0, 0, 15070, 15071, 7, 9, 0, 0, 15071, 2022, 1, 0, 0, 0, 15072, 15073, 7, 7, 0, 0, 15073, 15074, 7, 6, 0, 0, 15074, 15075, 7, 5, 0, 0, 15075, 15076, 7, 4, 0, 0, 15076, 15077, 7, 6, 0, 0, 15077, 15078, 7, 9, 0, 0, 15078, 15079, 5, 95, 0, 0, 15079, 15080, 7, 4, 0, 0, 15080, 15081, 7, 0, 0, 0, 15081, 15082, 7, 1, 0, 0, 15082, 15083, 7, 11, 0, 0, 15083, 15084, 7, 6, 0, 0, 15084, 15085, 5, 95, 0, 0, 15085, 15086, 7, 16, 0, 0, 15086, 15087, 7, 0, 0, 0, 15087, 15088, 7, 5, 0, 0, 15088, 15089, 7, 4, 0, 0, 15089, 15090, 5, 95, 0, 0, 15090, 15091, 7, 10, 0, 0, 15091, 15092, 7, 7, 0, 0, 15092, 15093, 7, 5, 0, 0, 15093, 15094, 7, 6, 0, 0, 15094, 15095, 7, 3, 0, 0, 15095, 15096, 7, 4, 0, 0, 15096, 2024, 1, 0, 0, 0, 15097, 15098, 7, 7, 0, 0, 15098, 15099, 7, 6, 0, 0, 15099, 15100, 7, 5, 0, 0, 15100, 15101, 7, 4, 0, 0, 15101, 15102, 7, 6, 0, 0, 15102, 15103, 7, 9, 0, 0, 15103, 15104, 5, 95, 0, 0, 15104, 15105, 7, 4, 0, 0, 15105, 15106, 7, 0, 0, 0, 15106, 15107, 7, 1, 0, 0, 15107, 15108, 7, 11, 0, 0, 15108, 15109, 7, 6, 0, 0, 15109, 15110, 5, 95, 0, 0, 15110, 15111, 7, 17, 0, 0, 15111, 15112, 7, 6, 0, 0, 15112, 15113, 7, 4, 0, 0, 15113, 15114, 5, 95, 0, 0, 15114, 15115, 7, 3, 0, 0, 15115, 15116, 7, 6, 0, 0, 15116, 15117, 7, 16, 0, 0, 15117, 15118, 7, 5, 0, 0, 15118, 2026, 1, 0, 0, 0, 15119, 15120, 7, 7, 0, 0, 15120, 15121, 7, 6, 0, 0, 15121, 15122, 7, 5, 0, 0, 15122, 15123, 7, 4, 0, 0, 15123, 15124, 7, 6, 0, 0, 15124, 15125, 7, 9, 0, 0, 15125, 15126, 5, 95, 0, 0, 15126, 15127, 7, 4, 0, 0, 15127, 15128, 7, 0, 0, 0, 15128, 15129, 7, 1, 0, 0, 15129, 15130, 7, 11, 0, 0, 15130, 15131, 7, 6, 0, 0, 15131, 15132, 5, 95, 0, 0, 15132, 15133, 7, 10, 0, 0, 15133, 15134, 7, 9, 0, 0, 15134, 2028, 1, 0, 0, 0, 15135, 15136, 7, 7, 0, 0, 15136, 15137, 7, 6, 0, 0, 15137, 15138, 7, 5, 0, 0, 15138, 15139, 7, 4, 0, 0, 15139, 15140, 7, 6, 0, 0, 15140, 15141, 7, 9, 0, 0, 15141, 15142, 5, 95, 0, 0, 15142, 15143, 7, 4, 0, 0, 15143, 15144, 7, 0, 0, 0, 15144, 15145, 7, 1, 0, 0, 15145, 15146, 7, 11, 0, 0, 15146, 15147, 7, 6, 0, 0, 15147, 15148, 5, 95, 0, 0, 15148, 15149, 7, 5, 0, 0, 15149, 15150, 7, 6, 0, 0, 15150, 15151, 7, 4, 0, 0, 15151, 15152, 5, 95, 0, 0, 15152, 15153, 7, 3, 0, 0, 15153, 15154, 7, 6, 0, 0, 15154, 15155, 7, 16, 0, 0, 15155, 15156, 7, 5, 0, 0, 15156, 2030, 1, 0, 0, 0, 15157, 15158, 7, 7, 0, 0, 15158, 15159, 7, 6, 0, 0, 15159, 15160, 7, 5, 0, 0, 15160, 15161, 7, 4, 0, 0, 15161, 15162, 7, 6, 0, 0, 15162, 15163, 7, 9, 0, 0, 15163, 15164, 5, 95, 0, 0, 15164, 15165, 7, 4, 0, 0, 15165, 15166, 7, 0, 0, 0, 15166, 15167, 7, 1, 0, 0, 15167, 15168, 7, 11, 0, 0, 15168, 15169, 7, 6, 0, 0, 15169, 15170, 5, 95, 0, 0, 15170, 15171, 7, 5, 0, 0, 15171, 15172, 7, 6, 0, 0, 15172, 15173, 7, 4, 0, 0, 15173, 15174, 5, 95, 0, 0, 15174, 15175, 7, 5, 0, 0, 15175, 15176, 7, 6, 0, 0, 15176, 15177, 7, 4, 0, 0, 15177, 15178, 7, 10, 0, 0, 15178, 15179, 7, 9, 0, 0, 15179, 2032, 1, 0, 0, 0, 15180, 15181, 7, 7, 0, 0, 15181, 15182, 7, 6, 0, 0, 15182, 15183, 7, 4, 0, 0, 15183, 15184, 7, 22, 0, 0, 15184, 15185, 7, 2, 0, 0, 15185, 15186, 7, 3, 0, 0, 15186, 15187, 7, 21, 0, 0, 15187, 2034, 1, 0, 0, 0, 15188, 15189, 7, 7, 0, 0, 15189, 15190, 7, 6, 0, 0, 15190, 15191, 7, 13, 0, 0, 15191, 15192, 7, 6, 0, 0, 15192, 15193, 7, 3, 0, 0, 15193, 2036, 1, 0, 0, 0, 15194, 15195, 7, 7, 0, 0, 15195, 15196, 7, 6, 0, 0, 15196, 15197, 7, 22, 0, 0, 15197, 2038, 1, 0, 0, 0, 15198, 15199, 7, 7, 0, 0, 15199, 15200, 7, 6, 0, 0, 15200, 15201, 7, 22, 0, 0, 15201, 15202, 7, 11, 0, 0, 15202, 15203, 7, 10, 0, 0, 15203, 15204, 7, 7, 0, 0, 15204, 15205, 7, 6, 0, 0, 15205, 2040, 1, 0, 0, 0, 15206, 15207, 7, 7, 0, 0, 15207, 15208, 7, 6, 0, 0, 15208, 15209, 7, 22, 0, 0, 15209, 15210, 5, 95, 0, 0, 15210, 15211, 7, 4, 0, 0, 15211, 15212, 7, 10, 0, 0, 15212, 15213, 7, 14, 0, 0, 15213, 15214, 7, 6, 0, 0, 15214, 2042, 1, 0, 0, 0, 15215, 15216, 7, 7, 0, 0, 15216, 15217, 7, 6, 0, 0, 15217, 15218, 7, 25, 0, 0, 15218, 15219, 7, 4, 0, 0, 15219, 15220, 5, 95, 0, 0, 15220, 15221, 7, 9, 0, 0, 15221, 15222, 7, 0, 0, 0, 15222, 15223, 7, 18, 0, 0, 15223, 2044, 1, 0, 0, 0, 15224, 15225, 7, 7, 0, 0, 15225, 15226, 7, 6, 0, 0, 15226, 15227, 7, 25, 0, 0, 15227, 15228, 7, 4, 0, 0, 15228, 2046, 1, 0, 0, 0, 15229, 15230, 7, 7, 0, 0, 15230, 15231, 7, 11, 0, 0, 15231, 15232, 5, 95, 0, 0, 15232, 15233, 7, 0, 0, 0, 15233, 15234, 7, 20, 0, 0, 15234, 2048, 1, 0, 0, 0, 15235, 15236, 7, 7, 0, 0, 15236, 15237, 7, 11, 0, 0, 15237, 15238, 7, 20, 0, 0, 15238, 15239, 5, 95, 0, 0, 15239, 15240, 7, 1, 0, 0, 15240, 15241, 7, 0, 0, 0, 15241, 15242, 7, 4, 0, 0, 15242, 15243, 7, 8, 0, 0, 15243, 15244, 7, 19, 0, 0, 15244, 15245, 7, 10, 0, 0, 15245, 15246, 7, 7, 0, 0, 15246, 15247, 7, 17, 0, 0, 15247, 2050, 1, 0, 0, 0, 15248, 15249, 7, 7, 0, 0, 15249, 15250, 7, 11, 0, 0, 15250, 15251, 7, 20, 0, 0, 15251, 15252, 5, 95, 0, 0, 15252, 15253, 7, 10, 0, 0, 15253, 15254, 7, 7, 0, 0, 15254, 15255, 7, 9, 0, 0, 15255, 15256, 7, 6, 0, 0, 15256, 15257, 7, 25, 0, 0, 15257, 15258, 5, 95, 0, 0, 15258, 15259, 7, 16, 0, 0, 15259, 15260, 7, 10, 0, 0, 15260, 15261, 7, 11, 0, 0, 15261, 15262, 7, 4, 0, 0, 15262, 15263, 7, 6, 0, 0, 15263, 15264, 7, 3, 0, 0, 15264, 2052, 1, 0, 0, 0, 15265, 15266, 7, 7, 0, 0, 15266, 15267, 7, 11, 0, 0, 15267, 15268, 7, 20, 0, 0, 15268, 15269, 5, 95, 0, 0, 15269, 15270, 7, 10, 0, 0, 15270, 15271, 7, 7, 0, 0, 15271, 15272, 7, 9, 0, 0, 15272, 15273, 7, 6, 0, 0, 15273, 15274, 7, 25, 0, 0, 15274, 15275, 5, 95, 0, 0, 15275, 15276, 7, 5, 0, 0, 15276, 15277, 7, 8, 0, 0, 15277, 15278, 7, 0, 0, 0, 15278, 15279, 7, 7, 0, 0, 15279, 2054, 1, 0, 0, 0, 15280, 15281, 7, 7, 0, 0, 15281, 15282, 7, 11, 0, 0, 15282, 15283, 7, 20, 0, 0, 15283, 15284, 5, 95, 0, 0, 15284, 15285, 7, 15, 0, 0, 15285, 15286, 7, 3, 0, 0, 15286, 15287, 7, 6, 0, 0, 15287, 15288, 7, 16, 0, 0, 15288, 15289, 7, 6, 0, 0, 15289, 15290, 7, 4, 0, 0, 15290, 15291, 7, 8, 0, 0, 15291, 15292, 7, 19, 0, 0, 15292, 2056, 1, 0, 0, 0, 15293, 15294, 7, 7, 0, 0, 15294, 15295, 7, 11, 0, 0, 15295, 15296, 7, 5, 0, 0, 15296, 15297, 5, 95, 0, 0, 15297, 15298, 7, 8, 0, 0, 15298, 15299, 7, 0, 0, 0, 15299, 15300, 7, 11, 0, 0, 15300, 15301, 7, 6, 0, 0, 15301, 15302, 7, 7, 0, 0, 15302, 15303, 7, 9, 0, 0, 15303, 15304, 7, 0, 0, 0, 15304, 15305, 7, 3, 0, 0, 15305, 2058, 1, 0, 0, 0, 15306, 15307, 7, 7, 0, 0, 15307, 15308, 7, 11, 0, 0, 15308, 15309, 7, 5, 0, 0, 15309, 15310, 5, 95, 0, 0, 15310, 15311, 7, 8, 0, 0, 15311, 15312, 7, 19, 0, 0, 15312, 15313, 7, 0, 0, 0, 15313, 15314, 7, 3, 0, 0, 15314, 15315, 7, 0, 0, 0, 15315, 15316, 7, 8, 0, 0, 15316, 15317, 7, 4, 0, 0, 15317, 15318, 7, 6, 0, 0, 15318, 15319, 7, 3, 0, 0, 15319, 15320, 7, 5, 0, 0, 15320, 15321, 7, 6, 0, 0, 15321, 15322, 7, 4, 0, 0, 15322, 2060, 1, 0, 0, 0, 15323, 15324, 7, 7, 0, 0, 15324, 15325, 7, 11, 0, 0, 15325, 15326, 7, 5, 0, 0, 15326, 15327, 5, 95, 0, 0, 15327, 15328, 7, 8, 0, 0, 15328, 15329, 7, 19, 0, 0, 15329, 15330, 7, 0, 0, 0, 15330, 15331, 7, 3, 0, 0, 15331, 15332, 7, 5, 0, 0, 15332, 15333, 7, 6, 0, 0, 15333, 15334, 7, 4, 0, 0, 15334, 15335, 5, 95, 0, 0, 15335, 15336, 7, 9, 0, 0, 15336, 15337, 7, 6, 0, 0, 15337, 15338, 7, 8, 0, 0, 15338, 15339, 7, 11, 0, 0, 15339, 15340, 5, 95, 0, 0, 15340, 15341, 7, 11, 0, 0, 15341, 15342, 7, 6, 0, 0, 15342, 15343, 7, 7, 0, 0, 15343, 2062, 1, 0, 0, 0, 15344, 15345, 7, 7, 0, 0, 15345, 15346, 7, 11, 0, 0, 15346, 15347, 7, 5, 0, 0, 15347, 15348, 5, 95, 0, 0, 15348, 15349, 7, 8, 0, 0, 15349, 15350, 7, 19, 0, 0, 15350, 15351, 7, 0, 0, 0, 15351, 15352, 7, 3, 0, 0, 15352, 15353, 7, 5, 0, 0, 15353, 15354, 7, 6, 0, 0, 15354, 15355, 7, 4, 0, 0, 15355, 15356, 5, 95, 0, 0, 15356, 15357, 7, 10, 0, 0, 15357, 15358, 7, 9, 0, 0, 15358, 2064, 1, 0, 0, 0, 15359, 15360, 7, 7, 0, 0, 15360, 15361, 7, 11, 0, 0, 15361, 15362, 7, 5, 0, 0, 15362, 15363, 5, 95, 0, 0, 15363, 15364, 7, 8, 0, 0, 15364, 15365, 7, 19, 0, 0, 15365, 15366, 7, 0, 0, 0, 15366, 15367, 7, 3, 0, 0, 15367, 15368, 7, 5, 0, 0, 15368, 15369, 7, 6, 0, 0, 15369, 15370, 7, 4, 0, 0, 15370, 15371, 5, 95, 0, 0, 15371, 15372, 7, 7, 0, 0, 15372, 15373, 7, 0, 0, 0, 15373, 15374, 7, 14, 0, 0, 15374, 15375, 7, 6, 0, 0, 15375, 2066, 1, 0, 0, 0, 15376, 15377, 7, 7, 0, 0, 15377, 15378, 7, 11, 0, 0, 15378, 15379, 7, 5, 0, 0, 15379, 15380, 5, 95, 0, 0, 15380, 15381, 7, 8, 0, 0, 15381, 15382, 7, 2, 0, 0, 15382, 15383, 7, 14, 0, 0, 15383, 15384, 7, 15, 0, 0, 15384, 2068, 1, 0, 0, 0, 15385, 15386, 7, 7, 0, 0, 15386, 15387, 7, 11, 0, 0, 15387, 15388, 7, 5, 0, 0, 15388, 15389, 5, 95, 0, 0, 15389, 15390, 7, 8, 0, 0, 15390, 15391, 7, 12, 0, 0, 15391, 15392, 7, 3, 0, 0, 15392, 15393, 7, 3, 0, 0, 15393, 15394, 7, 6, 0, 0, 15394, 15395, 7, 7, 0, 0, 15395, 15396, 7, 8, 0, 0, 15396, 15397, 7, 18, 0, 0, 15397, 2070, 1, 0, 0, 0, 15398, 15399, 7, 7, 0, 0, 15399, 15400, 7, 11, 0, 0, 15400, 15401, 7, 5, 0, 0, 15401, 15402, 5, 95, 0, 0, 15402, 15403, 7, 9, 0, 0, 15403, 15404, 7, 0, 0, 0, 15404, 15405, 7, 4, 0, 0, 15405, 15406, 7, 6, 0, 0, 15406, 15407, 5, 95, 0, 0, 15407, 15408, 7, 16, 0, 0, 15408, 15409, 7, 2, 0, 0, 15409, 15410, 7, 3, 0, 0, 15410, 15411, 7, 14, 0, 0, 15411, 15412, 7, 0, 0, 0, 15412, 15413, 7, 4, 0, 0, 15413, 2072, 1, 0, 0, 0, 15414, 15415, 7, 7, 0, 0, 15415, 15416, 7, 11, 0, 0, 15416, 15417, 7, 5, 0, 0, 15417, 15418, 5, 95, 0, 0, 15418, 15419, 7, 9, 0, 0, 15419, 15420, 7, 0, 0, 0, 15420, 15421, 7, 4, 0, 0, 15421, 15422, 7, 6, 0, 0, 15422, 15423, 5, 95, 0, 0, 15423, 15424, 7, 11, 0, 0, 15424, 15425, 7, 0, 0, 0, 15425, 15426, 7, 7, 0, 0, 15426, 15427, 7, 17, 0, 0, 15427, 15428, 7, 12, 0, 0, 15428, 15429, 7, 0, 0, 0, 15429, 15430, 7, 17, 0, 0, 15430, 15431, 7, 6, 0, 0, 15431, 2074, 1, 0, 0, 0, 15432, 15433, 7, 7, 0, 0, 15433, 15434, 7, 11, 0, 0, 15434, 15435, 7, 5, 0, 0, 15435, 15436, 5, 95, 0, 0, 15436, 15437, 7, 10, 0, 0, 15437, 15438, 7, 7, 0, 0, 15438, 15439, 7, 10, 0, 0, 15439, 15440, 7, 4, 0, 0, 15440, 15441, 7, 8, 0, 0, 15441, 15442, 7, 0, 0, 0, 15442, 15443, 7, 15, 0, 0, 15443, 2076, 1, 0, 0, 0, 15444, 15445, 7, 7, 0, 0, 15445, 15446, 7, 11, 0, 0, 15446, 15447, 7, 5, 0, 0, 15447, 15448, 5, 95, 0, 0, 15448, 15449, 7, 10, 0, 0, 15449, 15450, 7, 5, 0, 0, 15450, 15451, 7, 2, 0, 0, 15451, 15452, 5, 95, 0, 0, 15452, 15453, 7, 8, 0, 0, 15453, 15454, 7, 12, 0, 0, 15454, 15455, 7, 3, 0, 0, 15455, 15456, 7, 3, 0, 0, 15456, 15457, 7, 6, 0, 0, 15457, 15458, 7, 7, 0, 0, 15458, 15459, 7, 8, 0, 0, 15459, 15460, 7, 18, 0, 0, 15460, 2078, 1, 0, 0, 0, 15461, 15462, 7, 7, 0, 0, 15462, 15463, 7, 11, 0, 0, 15463, 15464, 5, 95, 0, 0, 15464, 15465, 7, 5, 0, 0, 15465, 15466, 7, 20, 0, 0, 15466, 2080, 1, 0, 0, 0, 15467, 15468, 7, 7, 0, 0, 15468, 15469, 7, 11, 0, 0, 15469, 15470, 7, 5, 0, 0, 15470, 15471, 5, 95, 0, 0, 15471, 15472, 7, 11, 0, 0, 15472, 15473, 7, 0, 0, 0, 15473, 15474, 7, 7, 0, 0, 15474, 15475, 7, 17, 0, 0, 15475, 2082, 1, 0, 0, 0, 15476, 15477, 7, 7, 0, 0, 15477, 15478, 7, 11, 0, 0, 15478, 15479, 7, 5, 0, 0, 15479, 15480, 5, 95, 0, 0, 15480, 15481, 7, 11, 0, 0, 15481, 15482, 7, 0, 0, 0, 15482, 15483, 7, 7, 0, 0, 15483, 15484, 7, 17, 0, 0, 15484, 15485, 7, 12, 0, 0, 15485, 15486, 7, 0, 0, 0, 15486, 15487, 7, 17, 0, 0, 15487, 15488, 7, 6, 0, 0, 15488, 2084, 1, 0, 0, 0, 15489, 15490, 7, 7, 0, 0, 15490, 15491, 7, 11, 0, 0, 15491, 15492, 7, 5, 0, 0, 15492, 15493, 5, 95, 0, 0, 15493, 15494, 7, 11, 0, 0, 15494, 15495, 7, 6, 0, 0, 15495, 15496, 7, 7, 0, 0, 15496, 15497, 7, 17, 0, 0, 15497, 15498, 7, 4, 0, 0, 15498, 15499, 7, 19, 0, 0, 15499, 15500, 5, 95, 0, 0, 15500, 15501, 7, 5, 0, 0, 15501, 15502, 7, 6, 0, 0, 15502, 15503, 7, 14, 0, 0, 15503, 15504, 7, 0, 0, 0, 15504, 15505, 7, 7, 0, 0, 15505, 15506, 7, 4, 0, 0, 15506, 15507, 7, 10, 0, 0, 15507, 15508, 7, 8, 0, 0, 15508, 15509, 7, 5, 0, 0, 15509, 2086, 1, 0, 0, 0, 15510, 15511, 7, 7, 0, 0, 15511, 15512, 7, 11, 0, 0, 15512, 15513, 7, 5, 0, 0, 15513, 15514, 5, 95, 0, 0, 15514, 15515, 7, 11, 0, 0, 15515, 15516, 7, 2, 0, 0, 15516, 15517, 7, 22, 0, 0, 15517, 15518, 7, 6, 0, 0, 15518, 15519, 7, 3, 0, 0, 15519, 2088, 1, 0, 0, 0, 15520, 15521, 7, 7, 0, 0, 15521, 15522, 7, 11, 0, 0, 15522, 15523, 7, 5, 0, 0, 15523, 15524, 5, 95, 0, 0, 15524, 15525, 7, 7, 0, 0, 15525, 15526, 7, 8, 0, 0, 15526, 15527, 7, 19, 0, 0, 15527, 15528, 7, 0, 0, 0, 15528, 15529, 7, 3, 0, 0, 15529, 15530, 5, 95, 0, 0, 15530, 15531, 7, 8, 0, 0, 15531, 15532, 7, 2, 0, 0, 15532, 15533, 7, 7, 0, 0, 15533, 15534, 7, 13, 0, 0, 15534, 15535, 5, 95, 0, 0, 15535, 15536, 7, 6, 0, 0, 15536, 15537, 7, 25, 0, 0, 15537, 15538, 7, 8, 0, 0, 15538, 15539, 7, 15, 0, 0, 15539, 2090, 1, 0, 0, 0, 15540, 15541, 7, 7, 0, 0, 15541, 15542, 7, 11, 0, 0, 15542, 15543, 7, 5, 0, 0, 15543, 15544, 5, 95, 0, 0, 15544, 15545, 7, 7, 0, 0, 15545, 15546, 7, 12, 0, 0, 15546, 15547, 7, 14, 0, 0, 15547, 15548, 7, 6, 0, 0, 15548, 15549, 7, 3, 0, 0, 15549, 15550, 7, 10, 0, 0, 15550, 15551, 7, 8, 0, 0, 15551, 15552, 5, 95, 0, 0, 15552, 15553, 7, 8, 0, 0, 15553, 15554, 7, 19, 0, 0, 15554, 15555, 7, 0, 0, 0, 15555, 15556, 7, 3, 0, 0, 15556, 15557, 7, 0, 0, 0, 15557, 15558, 7, 8, 0, 0, 15558, 15559, 7, 4, 0, 0, 15559, 15560, 7, 6, 0, 0, 15560, 15561, 7, 3, 0, 0, 15561, 15562, 7, 5, 0, 0, 15562, 2092, 1, 0, 0, 0, 15563, 15564, 7, 7, 0, 0, 15564, 15565, 7, 11, 0, 0, 15565, 15566, 7, 5, 0, 0, 15566, 15567, 5, 95, 0, 0, 15567, 15568, 7, 5, 0, 0, 15568, 15569, 7, 2, 0, 0, 15569, 15570, 7, 3, 0, 0, 15570, 15571, 7, 4, 0, 0, 15571, 2094, 1, 0, 0, 0, 15572, 15573, 7, 7, 0, 0, 15573, 15574, 7, 11, 0, 0, 15574, 15575, 7, 5, 0, 0, 15575, 15576, 7, 5, 0, 0, 15576, 15577, 7, 2, 0, 0, 15577, 15578, 7, 3, 0, 0, 15578, 15579, 7, 4, 0, 0, 15579, 2096, 1, 0, 0, 0, 15580, 15581, 7, 7, 0, 0, 15581, 15582, 7, 11, 0, 0, 15582, 15583, 7, 5, 0, 0, 15583, 15584, 5, 95, 0, 0, 15584, 15585, 7, 5, 0, 0, 15585, 15586, 7, 15, 0, 0, 15586, 15587, 7, 6, 0, 0, 15587, 15588, 7, 8, 0, 0, 15588, 15589, 7, 10, 0, 0, 15589, 15590, 7, 0, 0, 0, 15590, 15591, 7, 11, 0, 0, 15591, 15592, 5, 95, 0, 0, 15592, 15593, 7, 8, 0, 0, 15593, 15594, 7, 19, 0, 0, 15594, 15595, 7, 0, 0, 0, 15595, 15596, 7, 3, 0, 0, 15596, 15597, 7, 5, 0, 0, 15597, 2098, 1, 0, 0, 0, 15598, 15599, 7, 7, 0, 0, 15599, 15600, 7, 11, 0, 0, 15600, 15601, 7, 5, 0, 0, 15601, 15602, 5, 95, 0, 0, 15602, 15603, 7, 4, 0, 0, 15603, 15604, 7, 6, 0, 0, 15604, 15605, 7, 3, 0, 0, 15605, 15606, 7, 3, 0, 0, 15606, 15607, 7, 10, 0, 0, 15607, 15608, 7, 4, 0, 0, 15608, 15609, 7, 2, 0, 0, 15609, 15610, 7, 3, 0, 0, 15610, 15611, 7, 18, 0, 0, 15611, 2100, 1, 0, 0, 0, 15612, 15613, 7, 7, 0, 0, 15613, 15614, 7, 11, 0, 0, 15614, 15615, 7, 5, 0, 0, 15615, 15616, 5, 95, 0, 0, 15616, 15617, 7, 12, 0, 0, 15617, 15618, 7, 15, 0, 0, 15618, 15619, 7, 15, 0, 0, 15619, 15620, 7, 6, 0, 0, 15620, 15621, 7, 3, 0, 0, 15621, 2102, 1, 0, 0, 0, 15622, 15623, 7, 7, 0, 0, 15623, 15624, 7, 2, 0, 0, 15624, 15625, 5, 95, 0, 0, 15625, 15626, 7, 0, 0, 0, 15626, 15627, 7, 8, 0, 0, 15627, 15628, 7, 8, 0, 0, 15628, 15629, 7, 6, 0, 0, 15629, 15630, 7, 5, 0, 0, 15630, 15631, 7, 5, 0, 0, 15631, 2104, 1, 0, 0, 0, 15632, 15633, 7, 7, 0, 0, 15633, 15634, 7, 2, 0, 0, 15634, 15635, 5, 95, 0, 0, 15635, 15636, 7, 0, 0, 0, 15636, 15637, 7, 9, 0, 0, 15637, 15638, 7, 0, 0, 0, 15638, 15639, 7, 15, 0, 0, 15639, 15640, 7, 4, 0, 0, 15640, 15641, 7, 10, 0, 0, 15641, 15642, 7, 13, 0, 0, 15642, 15643, 7, 6, 0, 0, 15643, 15644, 5, 95, 0, 0, 15644, 15645, 7, 15, 0, 0, 15645, 15646, 7, 11, 0, 0, 15646, 15647, 7, 0, 0, 0, 15647, 15648, 7, 7, 0, 0, 15648, 2106, 1, 0, 0, 0, 15649, 15650, 7, 7, 0, 0, 15650, 15651, 7, 2, 0, 0, 15651, 15652, 5, 95, 0, 0, 15652, 15653, 7, 0, 0, 0, 15653, 15654, 7, 7, 0, 0, 15654, 15655, 7, 5, 0, 0, 15655, 15656, 7, 10, 0, 0, 15656, 15657, 5, 95, 0, 0, 15657, 15658, 7, 3, 0, 0, 15658, 15659, 7, 6, 0, 0, 15659, 15660, 7, 0, 0, 0, 15660, 15661, 7, 3, 0, 0, 15661, 15662, 7, 8, 0, 0, 15662, 15663, 7, 19, 0, 0, 15663, 2108, 1, 0, 0, 0, 15664, 15665, 7, 7, 0, 0, 15665, 15666, 7, 2, 0, 0, 15666, 15667, 7, 0, 0, 0, 15667, 15668, 7, 15, 0, 0, 15668, 15669, 7, 15, 0, 0, 15669, 15670, 7, 6, 0, 0, 15670, 15671, 7, 7, 0, 0, 15671, 15672, 7, 9, 0, 0, 15672, 2110, 1, 0, 0, 0, 15673, 15674, 7, 7, 0, 0, 15674, 15675, 7, 2, 0, 0, 15675, 15676, 7, 0, 0, 0, 15676, 15677, 7, 3, 0, 0, 15677, 15678, 7, 8, 0, 0, 15678, 15679, 7, 19, 0, 0, 15679, 15680, 7, 10, 0, 0, 15680, 15681, 7, 13, 0, 0, 15681, 15682, 7, 6, 0, 0, 15682, 15683, 7, 11, 0, 0, 15683, 15684, 7, 2, 0, 0, 15684, 15685, 7, 17, 0, 0, 15685, 2112, 1, 0, 0, 0, 15686, 15687, 7, 7, 0, 0, 15687, 15688, 7, 2, 0, 0, 15688, 15689, 7, 0, 0, 0, 15689, 15690, 7, 12, 0, 0, 15690, 15691, 7, 9, 0, 0, 15691, 15692, 7, 10, 0, 0, 15692, 15693, 7, 4, 0, 0, 15693, 2114, 1, 0, 0, 0, 15694, 15695, 7, 7, 0, 0, 15695, 15696, 7, 2, 0, 0, 15696, 15697, 7, 1, 0, 0, 15697, 15698, 7, 0, 0, 0, 15698, 15699, 7, 9, 0, 0, 15699, 15700, 7, 16, 0, 0, 15700, 15701, 7, 10, 0, 0, 15701, 15702, 7, 11, 0, 0, 15702, 15703, 7, 6, 0, 0, 15703, 2116, 1, 0, 0, 0, 15704, 15705, 7, 7, 0, 0, 15705, 15706, 7, 2, 0, 0, 15706, 15707, 5, 95, 0, 0, 15707, 15708, 7, 0, 0, 0, 15708, 15709, 7, 12, 0, 0, 15709, 15710, 7, 4, 0, 0, 15710, 15711, 7, 2, 0, 0, 15711, 15712, 5, 95, 0, 0, 15712, 15713, 7, 3, 0, 0, 15713, 15714, 7, 6, 0, 0, 15714, 15715, 7, 2, 0, 0, 15715, 15716, 7, 15, 0, 0, 15716, 15717, 7, 4, 0, 0, 15717, 15718, 7, 10, 0, 0, 15718, 15719, 7, 14, 0, 0, 15719, 15720, 7, 10, 0, 0, 15720, 15721, 7, 23, 0, 0, 15721, 15722, 7, 6, 0, 0, 15722, 2118, 1, 0, 0, 0, 15723, 15724, 7, 7, 0, 0, 15724, 15725, 7, 2, 0, 0, 15725, 15726, 5, 95, 0, 0, 15726, 15727, 7, 1, 0, 0, 15727, 15728, 7, 0, 0, 0, 15728, 15729, 7, 5, 0, 0, 15729, 15730, 7, 6, 0, 0, 15730, 15731, 7, 4, 0, 0, 15731, 15732, 7, 0, 0, 0, 15732, 15733, 7, 1, 0, 0, 15733, 15734, 7, 11, 0, 0, 15734, 15735, 7, 6, 0, 0, 15735, 15736, 5, 95, 0, 0, 15736, 15737, 7, 14, 0, 0, 15737, 15738, 7, 12, 0, 0, 15738, 15739, 7, 11, 0, 0, 15739, 15740, 7, 4, 0, 0, 15740, 15741, 7, 10, 0, 0, 15741, 15742, 7, 14, 0, 0, 15742, 15743, 7, 13, 0, 0, 15743, 15744, 5, 95, 0, 0, 15744, 15745, 7, 3, 0, 0, 15745, 15746, 7, 6, 0, 0, 15746, 15747, 7, 22, 0, 0, 15747, 15748, 7, 3, 0, 0, 15748, 15749, 7, 10, 0, 0, 15749, 15750, 7, 4, 0, 0, 15750, 15751, 7, 6, 0, 0, 15751, 2120, 1, 0, 0, 0, 15752, 15753, 7, 7, 0, 0, 15753, 15754, 7, 2, 0, 0, 15754, 15755, 5, 95, 0, 0, 15755, 15756, 7, 1, 0, 0, 15756, 15757, 7, 0, 0, 0, 15757, 15758, 7, 4, 0, 0, 15758, 15759, 7, 8, 0, 0, 15759, 15760, 7, 19, 0, 0, 15760, 15761, 5, 95, 0, 0, 15761, 15762, 7, 4, 0, 0, 15762, 15763, 7, 0, 0, 0, 15763, 15764, 7, 1, 0, 0, 15764, 15765, 7, 11, 0, 0, 15765, 15766, 7, 6, 0, 0, 15766, 15767, 5, 95, 0, 0, 15767, 15768, 7, 0, 0, 0, 15768, 15769, 7, 8, 0, 0, 15769, 15770, 7, 8, 0, 0, 15770, 15771, 7, 6, 0, 0, 15771, 15772, 7, 5, 0, 0, 15772, 15773, 7, 5, 0, 0, 15773, 15774, 5, 95, 0, 0, 15774, 15775, 7, 1, 0, 0, 15775, 15776, 7, 18, 0, 0, 15776, 15777, 5, 95, 0, 0, 15777, 15778, 7, 3, 0, 0, 15778, 15779, 7, 2, 0, 0, 15779, 15780, 7, 22, 0, 0, 15780, 15781, 7, 10, 0, 0, 15781, 15782, 7, 9, 0, 0, 15782, 2122, 1, 0, 0, 0, 15783, 15784, 7, 7, 0, 0, 15784, 15785, 7, 2, 0, 0, 15785, 15786, 5, 95, 0, 0, 15786, 15787, 7, 1, 0, 0, 15787, 15788, 7, 10, 0, 0, 15788, 15789, 7, 7, 0, 0, 15789, 15790, 7, 9, 0, 0, 15790, 15791, 5, 95, 0, 0, 15791, 15792, 7, 0, 0, 0, 15792, 15793, 7, 22, 0, 0, 15793, 15794, 7, 0, 0, 0, 15794, 15795, 7, 3, 0, 0, 15795, 15796, 7, 6, 0, 0, 15796, 2124, 1, 0, 0, 0, 15797, 15798, 7, 7, 0, 0, 15798, 15799, 7, 2, 0, 0, 15799, 15800, 5, 95, 0, 0, 15800, 15801, 7, 1, 0, 0, 15801, 15802, 7, 12, 0, 0, 15802, 15803, 7, 16, 0, 0, 15803, 15804, 7, 16, 0, 0, 15804, 15805, 7, 6, 0, 0, 15805, 15806, 7, 3, 0, 0, 15806, 2126, 1, 0, 0, 0, 15807, 15808, 7, 7, 0, 0, 15808, 15809, 7, 2, 0, 0, 15809, 15810, 7, 8, 0, 0, 15810, 15811, 7, 0, 0, 0, 15811, 15812, 7, 8, 0, 0, 15812, 15813, 7, 19, 0, 0, 15813, 15814, 7, 6, 0, 0, 15814, 2128, 1, 0, 0, 0, 15815, 15816, 7, 7, 0, 0, 15816, 15817, 7, 2, 0, 0, 15817, 15818, 7, 8, 0, 0, 15818, 15819, 7, 19, 0, 0, 15819, 15820, 7, 6, 0, 0, 15820, 15821, 7, 8, 0, 0, 15821, 15822, 7, 21, 0, 0, 15822, 2130, 1, 0, 0, 0, 15823, 15824, 7, 7, 0, 0, 15824, 15825, 7, 2, 0, 0, 15825, 15826, 5, 95, 0, 0, 15826, 15827, 7, 8, 0, 0, 15827, 15828, 7, 0, 0, 0, 15828, 15829, 7, 3, 0, 0, 15829, 15830, 7, 4, 0, 0, 15830, 15831, 7, 6, 0, 0, 15831, 15832, 7, 5, 0, 0, 15832, 15833, 7, 10, 0, 0, 15833, 15834, 7, 0, 0, 0, 15834, 15835, 7, 7, 0, 0, 15835, 2132, 1, 0, 0, 0, 15836, 15837, 7, 7, 0, 0, 15837, 15838, 7, 2, 0, 0, 15838, 15839, 5, 95, 0, 0, 15839, 15840, 7, 8, 0, 0, 15840, 15841, 7, 19, 0, 0, 15841, 15842, 7, 6, 0, 0, 15842, 15843, 7, 8, 0, 0, 15843, 15844, 7, 21, 0, 0, 15844, 15845, 5, 95, 0, 0, 15845, 15846, 7, 0, 0, 0, 15846, 15847, 7, 8, 0, 0, 15847, 15848, 7, 11, 0, 0, 15848, 15849, 5, 95, 0, 0, 15849, 15850, 7, 3, 0, 0, 15850, 15851, 7, 6, 0, 0, 15851, 15852, 7, 22, 0, 0, 15852, 15853, 7, 3, 0, 0, 15853, 15854, 7, 10, 0, 0, 15854, 15855, 7, 4, 0, 0, 15855, 15856, 7, 6, 0, 0, 15856, 2134, 1, 0, 0, 0, 15857, 15858, 7, 7, 0, 0, 15858, 15859, 7, 2, 0, 0, 15859, 15860, 5, 95, 0, 0, 15860, 15861, 7, 8, 0, 0, 15861, 15862, 7, 11, 0, 0, 15862, 15863, 7, 12, 0, 0, 15863, 15864, 7, 5, 0, 0, 15864, 15865, 7, 4, 0, 0, 15865, 15866, 7, 6, 0, 0, 15866, 15867, 7, 3, 0, 0, 15867, 15868, 5, 95, 0, 0, 15868, 15869, 7, 1, 0, 0, 15869, 15870, 7, 18, 0, 0, 15870, 15871, 5, 95, 0, 0, 15871, 15872, 7, 3, 0, 0, 15872, 15873, 7, 2, 0, 0, 15873, 15874, 7, 22, 0, 0, 15874, 15875, 7, 10, 0, 0, 15875, 15876, 7, 9, 0, 0, 15876, 2136, 1, 0, 0, 0, 15877, 15878, 7, 7, 0, 0, 15878, 15879, 7, 2, 0, 0, 15879, 15880, 5, 95, 0, 0, 15880, 15881, 7, 8, 0, 0, 15881, 15882, 7, 11, 0, 0, 15882, 15883, 7, 12, 0, 0, 15883, 15884, 7, 5, 0, 0, 15884, 15885, 7, 4, 0, 0, 15885, 15886, 7, 6, 0, 0, 15886, 15887, 7, 3, 0, 0, 15887, 15888, 7, 10, 0, 0, 15888, 15889, 7, 7, 0, 0, 15889, 15890, 7, 17, 0, 0, 15890, 2138, 1, 0, 0, 0, 15891, 15892, 7, 7, 0, 0, 15892, 15893, 7, 2, 0, 0, 15893, 15894, 5, 95, 0, 0, 15894, 15895, 7, 8, 0, 0, 15895, 15896, 7, 2, 0, 0, 15896, 15897, 7, 0, 0, 0, 15897, 15898, 7, 11, 0, 0, 15898, 15899, 7, 6, 0, 0, 15899, 15900, 7, 5, 0, 0, 15900, 15901, 7, 8, 0, 0, 15901, 15902, 7, 6, 0, 0, 15902, 15903, 5, 95, 0, 0, 15903, 15904, 7, 5, 0, 0, 15904, 15905, 7, 24, 0, 0, 15905, 2140, 1, 0, 0, 0, 15906, 15907, 7, 7, 0, 0, 15907, 15908, 7, 2, 0, 0, 15908, 15909, 5, 95, 0, 0, 15909, 15910, 7, 8, 0, 0, 15910, 15911, 7, 2, 0, 0, 15911, 15912, 7, 14, 0, 0, 15912, 15913, 7, 14, 0, 0, 15913, 15914, 7, 2, 0, 0, 15914, 15915, 7, 7, 0, 0, 15915, 15916, 5, 95, 0, 0, 15916, 15917, 7, 9, 0, 0, 15917, 15918, 7, 0, 0, 0, 15918, 15919, 7, 4, 0, 0, 15919, 15920, 7, 0, 0, 0, 15920, 2142, 1, 0, 0, 0, 15921, 15922, 7, 7, 0, 0, 15922, 15923, 7, 2, 0, 0, 15923, 15924, 7, 8, 0, 0, 15924, 15925, 7, 2, 0, 0, 15925, 15926, 7, 14, 0, 0, 15926, 15927, 7, 15, 0, 0, 15927, 15928, 7, 3, 0, 0, 15928, 15929, 7, 6, 0, 0, 15929, 15930, 7, 5, 0, 0, 15930, 15931, 7, 5, 0, 0, 15931, 2144, 1, 0, 0, 0, 15932, 15933, 7, 7, 0, 0, 15933, 15934, 7, 2, 0, 0, 15934, 15935, 5, 95, 0, 0, 15935, 15936, 7, 8, 0, 0, 15936, 15937, 7, 2, 0, 0, 15937, 15938, 7, 7, 0, 0, 15938, 15939, 7, 7, 0, 0, 15939, 15940, 7, 6, 0, 0, 15940, 15941, 7, 8, 0, 0, 15941, 15942, 7, 4, 0, 0, 15942, 15943, 5, 95, 0, 0, 15943, 15944, 7, 1, 0, 0, 15944, 15945, 7, 18, 0, 0, 15945, 15946, 5, 95, 0, 0, 15946, 15947, 7, 8, 0, 0, 15947, 15948, 7, 1, 0, 0, 15948, 15949, 5, 95, 0, 0, 15949, 15950, 7, 22, 0, 0, 15950, 15951, 7, 19, 0, 0, 15951, 15952, 7, 3, 0, 0, 15952, 15953, 5, 95, 0, 0, 15953, 15954, 7, 2, 0, 0, 15954, 15955, 7, 7, 0, 0, 15955, 15956, 7, 11, 0, 0, 15956, 15957, 7, 18, 0, 0, 15957, 2146, 1, 0, 0, 0, 15958, 15959, 7, 7, 0, 0, 15959, 15960, 7, 2, 0, 0, 15960, 15961, 5, 95, 0, 0, 15961, 15962, 7, 8, 0, 0, 15962, 15963, 7, 2, 0, 0, 15963, 15964, 7, 7, 0, 0, 15964, 15965, 7, 7, 0, 0, 15965, 15966, 7, 6, 0, 0, 15966, 15967, 7, 8, 0, 0, 15967, 15968, 7, 4, 0, 0, 15968, 15969, 5, 95, 0, 0, 15969, 15970, 7, 1, 0, 0, 15970, 15971, 7, 18, 0, 0, 15971, 15972, 5, 95, 0, 0, 15972, 15973, 7, 8, 0, 0, 15973, 15974, 7, 2, 0, 0, 15974, 15975, 7, 14, 0, 0, 15975, 15976, 7, 1, 0, 0, 15976, 15977, 7, 10, 0, 0, 15977, 15978, 7, 7, 0, 0, 15978, 15979, 7, 6, 0, 0, 15979, 15980, 5, 95, 0, 0, 15980, 15981, 7, 5, 0, 0, 15981, 15982, 7, 22, 0, 0, 15982, 2148, 1, 0, 0, 0, 15983, 15984, 7, 7, 0, 0, 15984, 15985, 7, 2, 0, 0, 15985, 15986, 5, 95, 0, 0, 15986, 15987, 7, 8, 0, 0, 15987, 15988, 7, 2, 0, 0, 15988, 15989, 7, 7, 0, 0, 15989, 15990, 7, 7, 0, 0, 15990, 15991, 7, 6, 0, 0, 15991, 15992, 7, 8, 0, 0, 15992, 15993, 7, 4, 0, 0, 15993, 15994, 5, 95, 0, 0, 15994, 15995, 7, 1, 0, 0, 15995, 15996, 7, 18, 0, 0, 15996, 15997, 5, 95, 0, 0, 15997, 15998, 7, 8, 0, 0, 15998, 15999, 7, 2, 0, 0, 15999, 16000, 7, 5, 0, 0, 16000, 16001, 7, 4, 0, 0, 16001, 16002, 5, 95, 0, 0, 16002, 16003, 7, 1, 0, 0, 16003, 16004, 7, 0, 0, 0, 16004, 16005, 7, 5, 0, 0, 16005, 16006, 7, 6, 0, 0, 16006, 16007, 7, 9, 0, 0, 16007, 2150, 1, 0, 0, 0, 16008, 16009, 7, 7, 0, 0, 16009, 16010, 7, 2, 0, 0, 16010, 16011, 5, 95, 0, 0, 16011, 16012, 7, 8, 0, 0, 16012, 16013, 7, 2, 0, 0, 16013, 16014, 7, 7, 0, 0, 16014, 16015, 7, 7, 0, 0, 16015, 16016, 7, 6, 0, 0, 16016, 16017, 7, 8, 0, 0, 16017, 16018, 7, 4, 0, 0, 16018, 16019, 5, 95, 0, 0, 16019, 16020, 7, 1, 0, 0, 16020, 16021, 7, 18, 0, 0, 16021, 16022, 5, 95, 0, 0, 16022, 16023, 7, 6, 0, 0, 16023, 16024, 7, 11, 0, 0, 16024, 16025, 7, 10, 0, 0, 16025, 16026, 7, 14, 0, 0, 16026, 16027, 5, 95, 0, 0, 16027, 16028, 7, 9, 0, 0, 16028, 16029, 7, 12, 0, 0, 16029, 16030, 7, 15, 0, 0, 16030, 16031, 7, 5, 0, 0, 16031, 2152, 1, 0, 0, 0, 16032, 16033, 7, 7, 0, 0, 16033, 16034, 7, 2, 0, 0, 16034, 16035, 5, 95, 0, 0, 16035, 16036, 7, 8, 0, 0, 16036, 16037, 7, 2, 0, 0, 16037, 16038, 7, 7, 0, 0, 16038, 16039, 7, 7, 0, 0, 16039, 16040, 7, 6, 0, 0, 16040, 16041, 7, 8, 0, 0, 16041, 16042, 7, 4, 0, 0, 16042, 16043, 5, 95, 0, 0, 16043, 16044, 7, 1, 0, 0, 16044, 16045, 7, 18, 0, 0, 16045, 16046, 5, 95, 0, 0, 16046, 16047, 7, 16, 0, 0, 16047, 16048, 7, 10, 0, 0, 16048, 16049, 7, 11, 0, 0, 16049, 16050, 7, 4, 0, 0, 16050, 16051, 7, 6, 0, 0, 16051, 16052, 7, 3, 0, 0, 16052, 16053, 7, 10, 0, 0, 16053, 16054, 7, 7, 0, 0, 16054, 16055, 7, 17, 0, 0, 16055, 2154, 1, 0, 0, 0, 16056, 16057, 7, 7, 0, 0, 16057, 16058, 7, 2, 0, 0, 16058, 16059, 7, 8, 0, 0, 16059, 16060, 7, 2, 0, 0, 16060, 16061, 7, 15, 0, 0, 16061, 16062, 7, 18, 0, 0, 16062, 2156, 1, 0, 0, 0, 16063, 16064, 7, 7, 0, 0, 16064, 16065, 7, 2, 0, 0, 16065, 16066, 5, 95, 0, 0, 16066, 16067, 7, 8, 0, 0, 16067, 16068, 7, 2, 0, 0, 16068, 16069, 7, 5, 0, 0, 16069, 16070, 7, 4, 0, 0, 16070, 16071, 5, 95, 0, 0, 16071, 16072, 7, 25, 0, 0, 16072, 16073, 7, 14, 0, 0, 16073, 16074, 7, 11, 0, 0, 16074, 16075, 5, 95, 0, 0, 16075, 16076, 7, 24, 0, 0, 16076, 16077, 7, 12, 0, 0, 16077, 16078, 7, 6, 0, 0, 16078, 16079, 7, 3, 0, 0, 16079, 16080, 7, 18, 0, 0, 16080, 16081, 5, 95, 0, 0, 16081, 16082, 7, 3, 0, 0, 16082, 16083, 7, 6, 0, 0, 16083, 16084, 7, 22, 0, 0, 16084, 16085, 7, 3, 0, 0, 16085, 16086, 7, 10, 0, 0, 16086, 16087, 7, 4, 0, 0, 16087, 16088, 7, 6, 0, 0, 16088, 2158, 1, 0, 0, 0, 16089, 16090, 7, 7, 0, 0, 16090, 16091, 7, 2, 0, 0, 16091, 16092, 5, 95, 0, 0, 16092, 16093, 7, 8, 0, 0, 16093, 16094, 7, 15, 0, 0, 16094, 16095, 7, 12, 0, 0, 16095, 16096, 5, 95, 0, 0, 16096, 16097, 7, 8, 0, 0, 16097, 16098, 7, 2, 0, 0, 16098, 16099, 7, 5, 0, 0, 16099, 16100, 7, 4, 0, 0, 16100, 16101, 7, 10, 0, 0, 16101, 16102, 7, 7, 0, 0, 16102, 16103, 7, 17, 0, 0, 16103, 2160, 1, 0, 0, 0, 16104, 16105, 7, 7, 0, 0, 16105, 16106, 7, 2, 0, 0, 16106, 16107, 7, 8, 0, 0, 16107, 16108, 7, 15, 0, 0, 16108, 16109, 7, 12, 0, 0, 16109, 16110, 5, 95, 0, 0, 16110, 16111, 7, 8, 0, 0, 16111, 16112, 7, 2, 0, 0, 16112, 16113, 7, 5, 0, 0, 16113, 16114, 7, 4, 0, 0, 16114, 16115, 7, 10, 0, 0, 16115, 16116, 7, 7, 0, 0, 16116, 16117, 7, 17, 0, 0, 16117, 2162, 1, 0, 0, 0, 16118, 16119, 7, 7, 0, 0, 16119, 16120, 7, 2, 0, 0, 16120, 16121, 7, 8, 0, 0, 16121, 16122, 7, 18, 0, 0, 16122, 16123, 7, 8, 0, 0, 16123, 16124, 7, 11, 0, 0, 16124, 16125, 7, 6, 0, 0, 16125, 2164, 1, 0, 0, 0, 16126, 16127, 7, 7, 0, 0, 16127, 16128, 7, 2, 0, 0, 16128, 16129, 5, 95, 0, 0, 16129, 16130, 7, 9, 0, 0, 16130, 16131, 7, 0, 0, 0, 16131, 16132, 7, 4, 0, 0, 16132, 16133, 7, 0, 0, 0, 16133, 16134, 5, 95, 0, 0, 16134, 16135, 7, 5, 0, 0, 16135, 16136, 7, 6, 0, 0, 16136, 16137, 7, 8, 0, 0, 16137, 16138, 7, 12, 0, 0, 16138, 16139, 7, 3, 0, 0, 16139, 16140, 7, 10, 0, 0, 16140, 16141, 7, 4, 0, 0, 16141, 16142, 7, 18, 0, 0, 16142, 16143, 5, 95, 0, 0, 16143, 16144, 7, 3, 0, 0, 16144, 16145, 7, 6, 0, 0, 16145, 16146, 7, 22, 0, 0, 16146, 16147, 7, 3, 0, 0, 16147, 16148, 7, 10, 0, 0, 16148, 16149, 7, 4, 0, 0, 16149, 16150, 7, 6, 0, 0, 16150, 2166, 1, 0, 0, 0, 16151, 16152, 7, 7, 0, 0, 16152, 16153, 7, 2, 0, 0, 16153, 16154, 5, 95, 0, 0, 16154, 16155, 7, 9, 0, 0, 16155, 16156, 7, 6, 0, 0, 16156, 16157, 7, 8, 0, 0, 16157, 16158, 7, 2, 0, 0, 16158, 16159, 7, 3, 0, 0, 16159, 16160, 7, 3, 0, 0, 16160, 16161, 7, 6, 0, 0, 16161, 16162, 7, 11, 0, 0, 16162, 16163, 7, 0, 0, 0, 16163, 16164, 7, 4, 0, 0, 16164, 16165, 7, 6, 0, 0, 16165, 2168, 1, 0, 0, 0, 16166, 16167, 7, 7, 0, 0, 16167, 16168, 7, 2, 0, 0, 16168, 16169, 7, 9, 0, 0, 16169, 16170, 7, 6, 0, 0, 16170, 16171, 7, 11, 0, 0, 16171, 16172, 7, 0, 0, 0, 16172, 16173, 7, 18, 0, 0, 16173, 2170, 1, 0, 0, 0, 16174, 16175, 7, 7, 0, 0, 16175, 16176, 7, 2, 0, 0, 16176, 16177, 7, 9, 0, 0, 16177, 16178, 7, 10, 0, 0, 16178, 16179, 7, 3, 0, 0, 16179, 16180, 7, 6, 0, 0, 16180, 16181, 7, 8, 0, 0, 16181, 16182, 7, 4, 0, 0, 16182, 16183, 7, 10, 0, 0, 16183, 16184, 7, 2, 0, 0, 16184, 2172, 1, 0, 0, 0, 16185, 16186, 7, 7, 0, 0, 16186, 16187, 7, 2, 0, 0, 16187, 16188, 7, 9, 0, 0, 16188, 16189, 7, 10, 0, 0, 16189, 16190, 7, 5, 0, 0, 16190, 16191, 7, 8, 0, 0, 16191, 16192, 7, 0, 0, 0, 16192, 16193, 7, 3, 0, 0, 16193, 16194, 7, 9, 0, 0, 16194, 16195, 7, 16, 0, 0, 16195, 16196, 7, 10, 0, 0, 16196, 16197, 7, 11, 0, 0, 16197, 16198, 7, 6, 0, 0, 16198, 2174, 1, 0, 0, 0, 16199, 16200, 7, 7, 0, 0, 16200, 16201, 7, 2, 0, 0, 16201, 16202, 5, 95, 0, 0, 16202, 16203, 7, 9, 0, 0, 16203, 16204, 7, 2, 0, 0, 16204, 16205, 7, 14, 0, 0, 16205, 16206, 7, 0, 0, 0, 16206, 16207, 7, 10, 0, 0, 16207, 16208, 7, 7, 0, 0, 16208, 16209, 5, 95, 0, 0, 16209, 16210, 7, 10, 0, 0, 16210, 16211, 7, 7, 0, 0, 16211, 16212, 7, 9, 0, 0, 16212, 16213, 7, 6, 0, 0, 16213, 16214, 7, 25, 0, 0, 16214, 16215, 5, 95, 0, 0, 16215, 16216, 7, 16, 0, 0, 16216, 16217, 7, 10, 0, 0, 16217, 16218, 7, 11, 0, 0, 16218, 16219, 7, 4, 0, 0, 16219, 16220, 7, 6, 0, 0, 16220, 16221, 7, 3, 0, 0, 16221, 2176, 1, 0, 0, 0, 16222, 16223, 7, 7, 0, 0, 16223, 16224, 7, 2, 0, 0, 16224, 16225, 5, 95, 0, 0, 16225, 16226, 7, 9, 0, 0, 16226, 16227, 7, 5, 0, 0, 16227, 16228, 7, 4, 0, 0, 16228, 16229, 5, 95, 0, 0, 16229, 16230, 7, 12, 0, 0, 16230, 16231, 7, 15, 0, 0, 16231, 16232, 7, 17, 0, 0, 16232, 16233, 7, 3, 0, 0, 16233, 16234, 7, 0, 0, 0, 16234, 16235, 7, 9, 0, 0, 16235, 16236, 7, 6, 0, 0, 16236, 16237, 5, 95, 0, 0, 16237, 16238, 7, 10, 0, 0, 16238, 16239, 7, 7, 0, 0, 16239, 16240, 7, 5, 0, 0, 16240, 16241, 7, 6, 0, 0, 16241, 16242, 7, 3, 0, 0, 16242, 16243, 7, 4, 0, 0, 16243, 16244, 5, 95, 0, 0, 16244, 16245, 7, 8, 0, 0, 16245, 16246, 7, 2, 0, 0, 16246, 16247, 7, 7, 0, 0, 16247, 16248, 7, 13, 0, 0, 16248, 2178, 1, 0, 0, 0, 16249, 16250, 7, 7, 0, 0, 16250, 16251, 7, 2, 0, 0, 16251, 16252, 5, 95, 0, 0, 16252, 16253, 7, 6, 0, 0, 16253, 16254, 7, 11, 0, 0, 16254, 16255, 7, 10, 0, 0, 16255, 16256, 7, 14, 0, 0, 16256, 16257, 5, 95, 0, 0, 16257, 16258, 7, 17, 0, 0, 16258, 16259, 7, 3, 0, 0, 16259, 16260, 7, 2, 0, 0, 16260, 16261, 7, 12, 0, 0, 16261, 16262, 7, 15, 0, 0, 16262, 16263, 7, 1, 0, 0, 16263, 16264, 7, 18, 0, 0, 16264, 2180, 1, 0, 0, 0, 16265, 16266, 7, 7, 0, 0, 16266, 16267, 7, 2, 0, 0, 16267, 16268, 5, 95, 0, 0, 16268, 16269, 7, 6, 0, 0, 16269, 16270, 7, 11, 0, 0, 16270, 16271, 7, 10, 0, 0, 16271, 16272, 7, 14, 0, 0, 16272, 16273, 7, 10, 0, 0, 16273, 16274, 7, 7, 0, 0, 16274, 16275, 7, 0, 0, 0, 16275, 16276, 7, 4, 0, 0, 16276, 16277, 7, 6, 0, 0, 16277, 16278, 5, 95, 0, 0, 16278, 16279, 7, 20, 0, 0, 16279, 16280, 7, 2, 0, 0, 16280, 16281, 7, 10, 0, 0, 16281, 16282, 7, 7, 0, 0, 16282, 2182, 1, 0, 0, 0, 16283, 16284, 7, 7, 0, 0, 16284, 16285, 7, 2, 0, 0, 16285, 16286, 5, 95, 0, 0, 16286, 16287, 7, 6, 0, 0, 16287, 16288, 7, 11, 0, 0, 16288, 16289, 7, 10, 0, 0, 16289, 16290, 7, 14, 0, 0, 16290, 16291, 7, 10, 0, 0, 16291, 16292, 7, 7, 0, 0, 16292, 16293, 7, 0, 0, 0, 16293, 16294, 7, 4, 0, 0, 16294, 16295, 7, 6, 0, 0, 16295, 16296, 5, 95, 0, 0, 16296, 16297, 7, 2, 0, 0, 16297, 16298, 7, 1, 0, 0, 16298, 16299, 7, 18, 0, 0, 16299, 2184, 1, 0, 0, 0, 16300, 16301, 7, 7, 0, 0, 16301, 16302, 7, 2, 0, 0, 16302, 16303, 5, 95, 0, 0, 16303, 16304, 7, 6, 0, 0, 16304, 16305, 7, 11, 0, 0, 16305, 16306, 7, 10, 0, 0, 16306, 16307, 7, 14, 0, 0, 16307, 16308, 7, 10, 0, 0, 16308, 16309, 7, 7, 0, 0, 16309, 16310, 7, 0, 0, 0, 16310, 16311, 7, 4, 0, 0, 16311, 16312, 7, 6, 0, 0, 16312, 16313, 5, 95, 0, 0, 16313, 16314, 7, 2, 0, 0, 16314, 16315, 7, 12, 0, 0, 16315, 16316, 7, 4, 0, 0, 16316, 16317, 7, 6, 0, 0, 16317, 16318, 7, 3, 0, 0, 16318, 16319, 5, 95, 0, 0, 16319, 16320, 7, 20, 0, 0, 16320, 16321, 7, 2, 0, 0, 16321, 16322, 7, 10, 0, 0, 16322, 16323, 7, 7, 0, 0, 16323, 2186, 1, 0, 0, 0, 16324, 16325, 7, 7, 0, 0, 16325, 16326, 7, 2, 0, 0, 16326, 16327, 7, 6, 0, 0, 16327, 16328, 7, 7, 0, 0, 16328, 16329, 7, 4, 0, 0, 16329, 16330, 7, 10, 0, 0, 16330, 16331, 7, 4, 0, 0, 16331, 16332, 7, 18, 0, 0, 16332, 16333, 7, 6, 0, 0, 16333, 16334, 7, 5, 0, 0, 16334, 16335, 7, 8, 0, 0, 16335, 16336, 7, 0, 0, 0, 16336, 16337, 7, 15, 0, 0, 16337, 16338, 7, 10, 0, 0, 16338, 16339, 7, 7, 0, 0, 16339, 16340, 7, 17, 0, 0, 16340, 2188, 1, 0, 0, 0, 16341, 16342, 7, 7, 0, 0, 16342, 16343, 7, 2, 0, 0, 16343, 16344, 5, 95, 0, 0, 16344, 16345, 7, 6, 0, 0, 16345, 16346, 7, 25, 0, 0, 16346, 16347, 7, 15, 0, 0, 16347, 16348, 7, 0, 0, 0, 16348, 16349, 7, 7, 0, 0, 16349, 16350, 7, 9, 0, 0, 16350, 16351, 5, 95, 0, 0, 16351, 16352, 7, 17, 0, 0, 16352, 16353, 7, 5, 0, 0, 16353, 16354, 7, 6, 0, 0, 16354, 16355, 7, 4, 0, 0, 16355, 16356, 5, 95, 0, 0, 16356, 16357, 7, 4, 0, 0, 16357, 16358, 7, 2, 0, 0, 16358, 16359, 5, 95, 0, 0, 16359, 16360, 7, 12, 0, 0, 16360, 16361, 7, 7, 0, 0, 16361, 16362, 7, 10, 0, 0, 16362, 16363, 7, 2, 0, 0, 16363, 16364, 7, 7, 0, 0, 16364, 2190, 1, 0, 0, 0, 16365, 16366, 7, 7, 0, 0, 16366, 16367, 7, 2, 0, 0, 16367, 16368, 5, 95, 0, 0, 16368, 16369, 7, 6, 0, 0, 16369, 16370, 7, 25, 0, 0, 16370, 16371, 7, 15, 0, 0, 16371, 16372, 7, 0, 0, 0, 16372, 16373, 7, 7, 0, 0, 16373, 16374, 7, 9, 0, 0, 16374, 2192, 1, 0, 0, 0, 16375, 16376, 7, 7, 0, 0, 16376, 16377, 7, 2, 0, 0, 16377, 16378, 5, 95, 0, 0, 16378, 16379, 7, 6, 0, 0, 16379, 16380, 7, 25, 0, 0, 16380, 16381, 7, 15, 0, 0, 16381, 16382, 7, 0, 0, 0, 16382, 16383, 7, 7, 0, 0, 16383, 16384, 7, 9, 0, 0, 16384, 16385, 5, 95, 0, 0, 16385, 16386, 7, 4, 0, 0, 16386, 16387, 7, 0, 0, 0, 16387, 16388, 7, 1, 0, 0, 16388, 16389, 7, 11, 0, 0, 16389, 16390, 7, 6, 0, 0, 16390, 2194, 1, 0, 0, 0, 16391, 16392, 7, 7, 0, 0, 16392, 16393, 7, 2, 0, 0, 16393, 16394, 7, 6, 0, 0, 16394, 16395, 7, 25, 0, 0, 16395, 16396, 7, 4, 0, 0, 16396, 16397, 7, 6, 0, 0, 16397, 16398, 7, 7, 0, 0, 16398, 16399, 7, 9, 0, 0, 16399, 2196, 1, 0, 0, 0, 16400, 16401, 7, 7, 0, 0, 16401, 16402, 7, 2, 0, 0, 16402, 16403, 5, 95, 0, 0, 16403, 16404, 7, 16, 0, 0, 16404, 16405, 7, 0, 0, 0, 16405, 16406, 7, 8, 0, 0, 16406, 16407, 7, 4, 0, 0, 16407, 2198, 1, 0, 0, 0, 16408, 16409, 7, 7, 0, 0, 16409, 16410, 7, 2, 0, 0, 16410, 16411, 5, 95, 0, 0, 16411, 16412, 7, 16, 0, 0, 16412, 16413, 7, 0, 0, 0, 16413, 16414, 7, 8, 0, 0, 16414, 16415, 7, 4, 0, 0, 16415, 16416, 7, 2, 0, 0, 16416, 16417, 7, 3, 0, 0, 16417, 16418, 7, 10, 0, 0, 16418, 16419, 7, 23, 0, 0, 16419, 16420, 7, 6, 0, 0, 16420, 16421, 5, 95, 0, 0, 16421, 16422, 7, 20, 0, 0, 16422, 16423, 7, 2, 0, 0, 16423, 16424, 7, 10, 0, 0, 16424, 16425, 7, 7, 0, 0, 16425, 2200, 1, 0, 0, 0, 16426, 16427, 7, 7, 0, 0, 16427, 16428, 7, 2, 0, 0, 16428, 16429, 5, 95, 0, 0, 16429, 16430, 7, 16, 0, 0, 16430, 16431, 7, 10, 0, 0, 16431, 16432, 7, 11, 0, 0, 16432, 16433, 7, 4, 0, 0, 16433, 16434, 7, 6, 0, 0, 16434, 16435, 7, 3, 0, 0, 16435, 16436, 7, 10, 0, 0, 16436, 16437, 7, 7, 0, 0, 16437, 16438, 7, 17, 0, 0, 16438, 2202, 1, 0, 0, 0, 16439, 16440, 7, 7, 0, 0, 16440, 16441, 7, 2, 0, 0, 16441, 16442, 7, 16, 0, 0, 16442, 16443, 7, 2, 0, 0, 16443, 16444, 7, 3, 0, 0, 16444, 16445, 7, 8, 0, 0, 16445, 16446, 7, 6, 0, 0, 16446, 2204, 1, 0, 0, 0, 16447, 16448, 7, 7, 0, 0, 16448, 16449, 7, 2, 0, 0, 16449, 16450, 5, 95, 0, 0, 16450, 16451, 7, 16, 0, 0, 16451, 16452, 7, 12, 0, 0, 16452, 16453, 7, 11, 0, 0, 16453, 16454, 7, 11, 0, 0, 16454, 16455, 5, 95, 0, 0, 16455, 16456, 7, 2, 0, 0, 16456, 16457, 7, 12, 0, 0, 16457, 16458, 7, 4, 0, 0, 16458, 16459, 7, 6, 0, 0, 16459, 16460, 7, 3, 0, 0, 16460, 16461, 5, 95, 0, 0, 16461, 16462, 7, 20, 0, 0, 16462, 16463, 7, 2, 0, 0, 16463, 16464, 7, 10, 0, 0, 16464, 16465, 7, 7, 0, 0, 16465, 16466, 5, 95, 0, 0, 16466, 16467, 7, 4, 0, 0, 16467, 16468, 7, 2, 0, 0, 16468, 16469, 5, 95, 0, 0, 16469, 16470, 7, 2, 0, 0, 16470, 16471, 7, 12, 0, 0, 16471, 16472, 7, 4, 0, 0, 16472, 16473, 7, 6, 0, 0, 16473, 16474, 7, 3, 0, 0, 16474, 2206, 1, 0, 0, 0, 16475, 16476, 7, 7, 0, 0, 16476, 16477, 7, 2, 0, 0, 16477, 16478, 5, 95, 0, 0, 16478, 16479, 7, 17, 0, 0, 16479, 16480, 7, 0, 0, 0, 16480, 16481, 7, 4, 0, 0, 16481, 16482, 7, 19, 0, 0, 16482, 16483, 7, 6, 0, 0, 16483, 16484, 7, 3, 0, 0, 16484, 16485, 5, 95, 0, 0, 16485, 16486, 7, 2, 0, 0, 16486, 16487, 7, 15, 0, 0, 16487, 16488, 7, 4, 0, 0, 16488, 16489, 7, 10, 0, 0, 16489, 16490, 7, 14, 0, 0, 16490, 16491, 7, 10, 0, 0, 16491, 16492, 7, 23, 0, 0, 16492, 16493, 7, 6, 0, 0, 16493, 16494, 7, 3, 0, 0, 16494, 16495, 5, 95, 0, 0, 16495, 16496, 7, 5, 0, 0, 16496, 16497, 7, 4, 0, 0, 16497, 16498, 7, 0, 0, 0, 16498, 16499, 7, 4, 0, 0, 16499, 16500, 7, 10, 0, 0, 16500, 16501, 7, 5, 0, 0, 16501, 16502, 7, 4, 0, 0, 16502, 16503, 7, 10, 0, 0, 16503, 16504, 7, 8, 0, 0, 16504, 16505, 7, 5, 0, 0, 16505, 2208, 1, 0, 0, 0, 16506, 16507, 7, 7, 0, 0, 16507, 16508, 7, 2, 0, 0, 16508, 16509, 5, 95, 0, 0, 16509, 16510, 7, 17, 0, 0, 16510, 16511, 7, 1, 0, 0, 16511, 16512, 7, 18, 0, 0, 16512, 16513, 5, 95, 0, 0, 16513, 16514, 7, 15, 0, 0, 16514, 16515, 7, 12, 0, 0, 16515, 16516, 7, 5, 0, 0, 16516, 16517, 7, 19, 0, 0, 16517, 16518, 7, 9, 0, 0, 16518, 16519, 7, 2, 0, 0, 16519, 16520, 7, 22, 0, 0, 16520, 16521, 7, 7, 0, 0, 16521, 2210, 1, 0, 0, 0, 16522, 16523, 7, 7, 0, 0, 16523, 16524, 7, 2, 0, 0, 16524, 16525, 7, 17, 0, 0, 16525, 16526, 7, 12, 0, 0, 16526, 16527, 7, 0, 0, 0, 16527, 16528, 7, 3, 0, 0, 16528, 16529, 7, 0, 0, 0, 16529, 16530, 7, 7, 0, 0, 16530, 16531, 7, 4, 0, 0, 16531, 16532, 7, 6, 0, 0, 16532, 16533, 7, 6, 0, 0, 16533, 2212, 1, 0, 0, 0, 16534, 16535, 7, 7, 0, 0, 16535, 16536, 7, 2, 0, 0, 16536, 16537, 5, 95, 0, 0, 16537, 16538, 7, 10, 0, 0, 16538, 16539, 7, 7, 0, 0, 16539, 16540, 7, 9, 0, 0, 16540, 16541, 7, 6, 0, 0, 16541, 16542, 7, 25, 0, 0, 16542, 16543, 5, 95, 0, 0, 16543, 16544, 7, 16, 0, 0, 16544, 16545, 7, 16, 0, 0, 16545, 16546, 7, 5, 0, 0, 16546, 2214, 1, 0, 0, 0, 16547, 16548, 7, 7, 0, 0, 16548, 16549, 7, 2, 0, 0, 16549, 16550, 5, 95, 0, 0, 16550, 16551, 7, 10, 0, 0, 16551, 16552, 7, 7, 0, 0, 16552, 16553, 7, 9, 0, 0, 16553, 16554, 7, 6, 0, 0, 16554, 16555, 7, 25, 0, 0, 16555, 2216, 1, 0, 0, 0, 16556, 16557, 7, 7, 0, 0, 16557, 16558, 7, 2, 0, 0, 16558, 16559, 5, 95, 0, 0, 16559, 16560, 7, 10, 0, 0, 16560, 16561, 7, 7, 0, 0, 16561, 16562, 7, 9, 0, 0, 16562, 16563, 7, 6, 0, 0, 16563, 16564, 7, 25, 0, 0, 16564, 16565, 5, 95, 0, 0, 16565, 16566, 7, 5, 0, 0, 16566, 16567, 7, 5, 0, 0, 16567, 2218, 1, 0, 0, 0, 16568, 16569, 7, 7, 0, 0, 16569, 16570, 7, 2, 0, 0, 16570, 16571, 5, 95, 0, 0, 16571, 16572, 7, 10, 0, 0, 16572, 16573, 7, 7, 0, 0, 16573, 16574, 7, 14, 0, 0, 16574, 16575, 7, 6, 0, 0, 16575, 16576, 7, 14, 0, 0, 16576, 16577, 7, 2, 0, 0, 16577, 16578, 7, 3, 0, 0, 16578, 16579, 7, 18, 0, 0, 16579, 2220, 1, 0, 0, 0, 16580, 16581, 7, 7, 0, 0, 16581, 16582, 7, 2, 0, 0, 16582, 16583, 5, 95, 0, 0, 16583, 16584, 7, 10, 0, 0, 16584, 16585, 7, 7, 0, 0, 16585, 16586, 7, 14, 0, 0, 16586, 16587, 7, 6, 0, 0, 16587, 16588, 7, 14, 0, 0, 16588, 16589, 7, 2, 0, 0, 16589, 16590, 7, 3, 0, 0, 16590, 16591, 7, 18, 0, 0, 16591, 16592, 5, 95, 0, 0, 16592, 16593, 7, 15, 0, 0, 16593, 16594, 7, 3, 0, 0, 16594, 16595, 7, 12, 0, 0, 16595, 16596, 7, 7, 0, 0, 16596, 16597, 7, 10, 0, 0, 16597, 16598, 7, 7, 0, 0, 16598, 16599, 7, 17, 0, 0, 16599, 2222, 1, 0, 0, 0, 16600, 16601, 7, 7, 0, 0, 16601, 16602, 7, 2, 0, 0, 16602, 16603, 7, 21, 0, 0, 16603, 16604, 7, 6, 0, 0, 16604, 16605, 7, 6, 0, 0, 16605, 16606, 7, 15, 0, 0, 16606, 2224, 1, 0, 0, 0, 16607, 16608, 7, 7, 0, 0, 16608, 16609, 7, 2, 0, 0, 16609, 16610, 5, 95, 0, 0, 16610, 16611, 7, 11, 0, 0, 16611, 16612, 7, 2, 0, 0, 16612, 16613, 7, 0, 0, 0, 16613, 16614, 7, 9, 0, 0, 16614, 2226, 1, 0, 0, 0, 16615, 16616, 7, 7, 0, 0, 16616, 16617, 7, 2, 0, 0, 16617, 16618, 7, 11, 0, 0, 16618, 16619, 7, 2, 0, 0, 16619, 16620, 7, 8, 0, 0, 16620, 16621, 7, 0, 0, 0, 16621, 16622, 7, 11, 0, 0, 16622, 2228, 1, 0, 0, 0, 16623, 16624, 7, 7, 0, 0, 16624, 16625, 7, 2, 0, 0, 16625, 16626, 7, 11, 0, 0, 16626, 16627, 7, 2, 0, 0, 16627, 16628, 7, 17, 0, 0, 16628, 2230, 1, 0, 0, 0, 16629, 16630, 7, 7, 0, 0, 16630, 16631, 7, 2, 0, 0, 16631, 16632, 7, 11, 0, 0, 16632, 16633, 7, 2, 0, 0, 16633, 16634, 7, 17, 0, 0, 16634, 16635, 7, 16, 0, 0, 16635, 16636, 7, 10, 0, 0, 16636, 16637, 7, 11, 0, 0, 16637, 16638, 7, 6, 0, 0, 16638, 2232, 1, 0, 0, 0, 16639, 16640, 7, 7, 0, 0, 16640, 16641, 7, 2, 0, 0, 16641, 16642, 7, 11, 0, 0, 16642, 16643, 7, 2, 0, 0, 16643, 16644, 7, 17, 0, 0, 16644, 16645, 7, 17, 0, 0, 16645, 16646, 7, 10, 0, 0, 16646, 16647, 7, 7, 0, 0, 16647, 16648, 7, 17, 0, 0, 16648, 2234, 1, 0, 0, 0, 16649, 16650, 7, 7, 0, 0, 16650, 16651, 7, 2, 0, 0, 16651, 16652, 7, 14, 0, 0, 16652, 16653, 7, 0, 0, 0, 16653, 16654, 7, 15, 0, 0, 16654, 16655, 7, 15, 0, 0, 16655, 16656, 7, 10, 0, 0, 16656, 16657, 7, 7, 0, 0, 16657, 16658, 7, 17, 0, 0, 16658, 2236, 1, 0, 0, 0, 16659, 16660, 7, 7, 0, 0, 16660, 16661, 7, 2, 0, 0, 16661, 16662, 7, 14, 0, 0, 16662, 16663, 7, 0, 0, 0, 16663, 16664, 7, 25, 0, 0, 16664, 16665, 7, 13, 0, 0, 16665, 16666, 7, 0, 0, 0, 16666, 16667, 7, 11, 0, 0, 16667, 16668, 7, 12, 0, 0, 16668, 16669, 7, 6, 0, 0, 16669, 2238, 1, 0, 0, 0, 16670, 16671, 7, 7, 0, 0, 16671, 16672, 7, 2, 0, 0, 16672, 16673, 5, 95, 0, 0, 16673, 16674, 7, 14, 0, 0, 16674, 16675, 7, 6, 0, 0, 16675, 16676, 7, 3, 0, 0, 16676, 16677, 7, 17, 0, 0, 16677, 16678, 7, 6, 0, 0, 16678, 2240, 1, 0, 0, 0, 16679, 16680, 7, 7, 0, 0, 16680, 16681, 7, 2, 0, 0, 16681, 16682, 7, 14, 0, 0, 16682, 16683, 7, 10, 0, 0, 16683, 16684, 7, 7, 0, 0, 16684, 16685, 7, 10, 0, 0, 16685, 16686, 7, 14, 0, 0, 16686, 16687, 7, 10, 0, 0, 16687, 16688, 7, 23, 0, 0, 16688, 16689, 7, 6, 0, 0, 16689, 2242, 1, 0, 0, 0, 16690, 16691, 7, 7, 0, 0, 16691, 16692, 7, 2, 0, 0, 16692, 16693, 7, 14, 0, 0, 16693, 16694, 7, 10, 0, 0, 16694, 16695, 7, 7, 0, 0, 16695, 16696, 7, 13, 0, 0, 16696, 16697, 7, 0, 0, 0, 16697, 16698, 7, 11, 0, 0, 16698, 16699, 7, 12, 0, 0, 16699, 16700, 7, 6, 0, 0, 16700, 2244, 1, 0, 0, 0, 16701, 16702, 7, 7, 0, 0, 16702, 16703, 7, 2, 0, 0, 16703, 16704, 5, 95, 0, 0, 16704, 16705, 7, 14, 0, 0, 16705, 16706, 7, 2, 0, 0, 16706, 16707, 7, 9, 0, 0, 16707, 16708, 7, 6, 0, 0, 16708, 16709, 7, 11, 0, 0, 16709, 16710, 5, 95, 0, 0, 16710, 16711, 7, 15, 0, 0, 16711, 16712, 7, 12, 0, 0, 16712, 16713, 7, 5, 0, 0, 16713, 16714, 7, 19, 0, 0, 16714, 16715, 5, 95, 0, 0, 16715, 16716, 7, 3, 0, 0, 16716, 16717, 7, 6, 0, 0, 16717, 16718, 7, 16, 0, 0, 16718, 2246, 1, 0, 0, 0, 16719, 16720, 7, 7, 0, 0, 16720, 16721, 7, 2, 0, 0, 16721, 16722, 5, 95, 0, 0, 16722, 16723, 7, 14, 0, 0, 16723, 16724, 7, 2, 0, 0, 16724, 16725, 7, 7, 0, 0, 16725, 16726, 7, 10, 0, 0, 16726, 16727, 7, 4, 0, 0, 16727, 16728, 7, 2, 0, 0, 16728, 16729, 7, 3, 0, 0, 16729, 16730, 7, 10, 0, 0, 16730, 16731, 7, 7, 0, 0, 16731, 16732, 7, 17, 0, 0, 16732, 2248, 1, 0, 0, 0, 16733, 16734, 7, 7, 0, 0, 16734, 16735, 7, 2, 0, 0, 16735, 16736, 7, 14, 0, 0, 16736, 16737, 7, 2, 0, 0, 16737, 16738, 7, 7, 0, 0, 16738, 16739, 7, 10, 0, 0, 16739, 16740, 7, 4, 0, 0, 16740, 16741, 7, 2, 0, 0, 16741, 16742, 7, 3, 0, 0, 16742, 16743, 7, 10, 0, 0, 16743, 16744, 7, 7, 0, 0, 16744, 16745, 7, 17, 0, 0, 16745, 2250, 1, 0, 0, 0, 16746, 16747, 7, 7, 0, 0, 16747, 16748, 7, 2, 0, 0, 16748, 16749, 5, 95, 0, 0, 16749, 16750, 7, 14, 0, 0, 16750, 16751, 7, 2, 0, 0, 16751, 16752, 7, 7, 0, 0, 16752, 16753, 7, 10, 0, 0, 16753, 16754, 7, 4, 0, 0, 16754, 16755, 7, 2, 0, 0, 16755, 16756, 7, 3, 0, 0, 16756, 2252, 1, 0, 0, 0, 16757, 16758, 7, 7, 0, 0, 16758, 16759, 7, 2, 0, 0, 16759, 16760, 5, 95, 0, 0, 16760, 16761, 7, 14, 0, 0, 16761, 16762, 7, 12, 0, 0, 16762, 16763, 7, 11, 0, 0, 16763, 16764, 7, 4, 0, 0, 16764, 16765, 7, 10, 0, 0, 16765, 16766, 7, 14, 0, 0, 16766, 16767, 7, 13, 0, 0, 16767, 16768, 5, 95, 0, 0, 16768, 16769, 7, 3, 0, 0, 16769, 16770, 7, 6, 0, 0, 16770, 16771, 7, 22, 0, 0, 16771, 16772, 7, 3, 0, 0, 16772, 16773, 7, 10, 0, 0, 16773, 16774, 7, 4, 0, 0, 16774, 16775, 7, 6, 0, 0, 16775, 2254, 1, 0, 0, 0, 16776, 16777, 7, 7, 0, 0, 16777, 16778, 7, 2, 0, 0, 16778, 16779, 5, 95, 0, 0, 16779, 16780, 7, 7, 0, 0, 16780, 16781, 7, 0, 0, 0, 16781, 16782, 7, 4, 0, 0, 16782, 16783, 7, 10, 0, 0, 16783, 16784, 7, 13, 0, 0, 16784, 16785, 7, 6, 0, 0, 16785, 16786, 5, 95, 0, 0, 16786, 16787, 7, 16, 0, 0, 16787, 16788, 7, 12, 0, 0, 16788, 16789, 7, 11, 0, 0, 16789, 16790, 7, 11, 0, 0, 16790, 16791, 5, 95, 0, 0, 16791, 16792, 7, 2, 0, 0, 16792, 16793, 7, 12, 0, 0, 16793, 16794, 7, 4, 0, 0, 16794, 16795, 7, 6, 0, 0, 16795, 16796, 7, 3, 0, 0, 16796, 16797, 5, 95, 0, 0, 16797, 16798, 7, 20, 0, 0, 16798, 16799, 7, 2, 0, 0, 16799, 16800, 7, 10, 0, 0, 16800, 16801, 7, 7, 0, 0, 16801, 2256, 1, 0, 0, 0, 16802, 16803, 7, 7, 0, 0, 16803, 16804, 7, 2, 0, 0, 16804, 16805, 7, 7, 0, 0, 16805, 16806, 7, 1, 0, 0, 16806, 16807, 7, 11, 0, 0, 16807, 16808, 7, 2, 0, 0, 16808, 16809, 7, 8, 0, 0, 16809, 16810, 7, 21, 0, 0, 16810, 16811, 7, 10, 0, 0, 16811, 16812, 7, 7, 0, 0, 16812, 16813, 7, 17, 0, 0, 16813, 2258, 1, 0, 0, 0, 16814, 16815, 7, 7, 0, 0, 16815, 16816, 7, 2, 0, 0, 16816, 16817, 7, 7, 0, 0, 16817, 16818, 7, 6, 0, 0, 16818, 16819, 7, 9, 0, 0, 16819, 16820, 7, 10, 0, 0, 16820, 16821, 7, 4, 0, 0, 16821, 16822, 7, 10, 0, 0, 16822, 16823, 7, 2, 0, 0, 16823, 16824, 7, 7, 0, 0, 16824, 16825, 7, 0, 0, 0, 16825, 16826, 7, 1, 0, 0, 16826, 16827, 7, 11, 0, 0, 16827, 16828, 7, 6, 0, 0, 16828, 2260, 1, 0, 0, 0, 16829, 16830, 7, 7, 0, 0, 16830, 16831, 7, 2, 0, 0, 16831, 16832, 7, 7, 0, 0, 16832, 16833, 7, 6, 0, 0, 16833, 2262, 1, 0, 0, 0, 16834, 16835, 7, 7, 0, 0, 16835, 16836, 7, 2, 0, 0, 16836, 16837, 7, 7, 0, 0, 16837, 16838, 7, 12, 0, 0, 16838, 16839, 7, 11, 0, 0, 16839, 16840, 7, 11, 0, 0, 16840, 16841, 7, 10, 0, 0, 16841, 16842, 7, 16, 0, 0, 16842, 2264, 1, 0, 0, 0, 16843, 16844, 7, 7, 0, 0, 16844, 16845, 7, 2, 0, 0, 16845, 16846, 5, 95, 0, 0, 16846, 16847, 7, 7, 0, 0, 16847, 16848, 7, 11, 0, 0, 16848, 16849, 7, 20, 0, 0, 16849, 16850, 5, 95, 0, 0, 16850, 16851, 7, 1, 0, 0, 16851, 16852, 7, 0, 0, 0, 16852, 16853, 7, 4, 0, 0, 16853, 16854, 7, 8, 0, 0, 16854, 16855, 7, 19, 0, 0, 16855, 16856, 7, 10, 0, 0, 16856, 16857, 7, 7, 0, 0, 16857, 16858, 7, 17, 0, 0, 16858, 2266, 1, 0, 0, 0, 16859, 16860, 7, 7, 0, 0, 16860, 16861, 7, 2, 0, 0, 16861, 16862, 5, 95, 0, 0, 16862, 16863, 7, 7, 0, 0, 16863, 16864, 7, 11, 0, 0, 16864, 16865, 7, 20, 0, 0, 16865, 16866, 5, 95, 0, 0, 16866, 16867, 7, 15, 0, 0, 16867, 16868, 7, 3, 0, 0, 16868, 16869, 7, 6, 0, 0, 16869, 16870, 7, 16, 0, 0, 16870, 16871, 7, 6, 0, 0, 16871, 16872, 7, 4, 0, 0, 16872, 16873, 7, 8, 0, 0, 16873, 16874, 7, 19, 0, 0, 16874, 2268, 1, 0, 0, 0, 16875, 16876, 7, 7, 0, 0, 16876, 16877, 7, 2, 0, 0, 16877, 2270, 1, 0, 0, 0, 16878, 16879, 7, 7, 0, 0, 16879, 16880, 7, 2, 0, 0, 16880, 16881, 7, 7, 0, 0, 16881, 16882, 7, 5, 0, 0, 16882, 16883, 7, 8, 0, 0, 16883, 16884, 7, 19, 0, 0, 16884, 16885, 7, 6, 0, 0, 16885, 16886, 7, 14, 0, 0, 16886, 16887, 7, 0, 0, 0, 16887, 2272, 1, 0, 0, 0, 16888, 16889, 7, 7, 0, 0, 16889, 16890, 7, 2, 0, 0, 16890, 16891, 5, 95, 0, 0, 16891, 16892, 7, 2, 0, 0, 16892, 16893, 7, 1, 0, 0, 16893, 16894, 7, 20, 0, 0, 16894, 16895, 7, 6, 0, 0, 16895, 16896, 7, 8, 0, 0, 16896, 16897, 7, 4, 0, 0, 16897, 16898, 5, 95, 0, 0, 16898, 16899, 7, 11, 0, 0, 16899, 16900, 7, 10, 0, 0, 16900, 16901, 7, 7, 0, 0, 16901, 16902, 7, 21, 0, 0, 16902, 2274, 1, 0, 0, 0, 16903, 16904, 7, 7, 0, 0, 16904, 16905, 7, 2, 0, 0, 16905, 16906, 7, 2, 0, 0, 16906, 16907, 7, 3, 0, 0, 16907, 16908, 7, 9, 0, 0, 16908, 16909, 7, 6, 0, 0, 16909, 16910, 7, 3, 0, 0, 16910, 2276, 1, 0, 0, 0, 16911, 16912, 7, 7, 0, 0, 16912, 16913, 7, 2, 0, 0, 16913, 16914, 5, 95, 0, 0, 16914, 16915, 7, 2, 0, 0, 16915, 16916, 7, 3, 0, 0, 16916, 16917, 7, 9, 0, 0, 16917, 16918, 7, 6, 0, 0, 16918, 16919, 7, 3, 0, 0, 16919, 16920, 5, 95, 0, 0, 16920, 16921, 7, 3, 0, 0, 16921, 16922, 7, 2, 0, 0, 16922, 16923, 7, 11, 0, 0, 16923, 16924, 7, 11, 0, 0, 16924, 16925, 7, 12, 0, 0, 16925, 16926, 7, 15, 0, 0, 16926, 16927, 7, 5, 0, 0, 16927, 2278, 1, 0, 0, 0, 16928, 16929, 7, 7, 0, 0, 16929, 16930, 7, 2, 0, 0, 16930, 16931, 5, 95, 0, 0, 16931, 16932, 7, 2, 0, 0, 16932, 16933, 7, 12, 0, 0, 16933, 16934, 7, 4, 0, 0, 16934, 16935, 7, 6, 0, 0, 16935, 16936, 7, 3, 0, 0, 16936, 16937, 5, 95, 0, 0, 16937, 16938, 7, 20, 0, 0, 16938, 16939, 7, 2, 0, 0, 16939, 16940, 7, 10, 0, 0, 16940, 16941, 7, 7, 0, 0, 16941, 16942, 5, 95, 0, 0, 16942, 16943, 7, 4, 0, 0, 16943, 16944, 7, 2, 0, 0, 16944, 16945, 5, 95, 0, 0, 16945, 16946, 7, 0, 0, 0, 16946, 16947, 7, 7, 0, 0, 16947, 16948, 7, 4, 0, 0, 16948, 16949, 7, 10, 0, 0, 16949, 2280, 1, 0, 0, 0, 16950, 16951, 7, 7, 0, 0, 16951, 16952, 7, 2, 0, 0, 16952, 16953, 5, 95, 0, 0, 16953, 16954, 7, 2, 0, 0, 16954, 16955, 7, 12, 0, 0, 16955, 16956, 7, 4, 0, 0, 16956, 16957, 7, 6, 0, 0, 16957, 16958, 7, 3, 0, 0, 16958, 16959, 5, 95, 0, 0, 16959, 16960, 7, 20, 0, 0, 16960, 16961, 7, 2, 0, 0, 16961, 16962, 7, 10, 0, 0, 16962, 16963, 7, 7, 0, 0, 16963, 16964, 5, 95, 0, 0, 16964, 16965, 7, 4, 0, 0, 16965, 16966, 7, 2, 0, 0, 16966, 16967, 5, 95, 0, 0, 16967, 16968, 7, 10, 0, 0, 16968, 16969, 7, 7, 0, 0, 16969, 16970, 7, 7, 0, 0, 16970, 16971, 7, 6, 0, 0, 16971, 16972, 7, 3, 0, 0, 16972, 2282, 1, 0, 0, 0, 16973, 16974, 7, 7, 0, 0, 16974, 16975, 7, 2, 0, 0, 16975, 16976, 7, 2, 0, 0, 16976, 16977, 7, 13, 0, 0, 16977, 16978, 7, 6, 0, 0, 16978, 16979, 7, 3, 0, 0, 16979, 16980, 7, 3, 0, 0, 16980, 16981, 7, 10, 0, 0, 16981, 16982, 7, 9, 0, 0, 16982, 16983, 7, 6, 0, 0, 16983, 2284, 1, 0, 0, 0, 16984, 16985, 7, 7, 0, 0, 16985, 16986, 7, 2, 0, 0, 16986, 16987, 5, 95, 0, 0, 16987, 16988, 7, 15, 0, 0, 16988, 16989, 7, 0, 0, 0, 16989, 16990, 7, 3, 0, 0, 16990, 16991, 7, 0, 0, 0, 16991, 16992, 7, 11, 0, 0, 16992, 16993, 7, 11, 0, 0, 16993, 16994, 7, 6, 0, 0, 16994, 16995, 7, 11, 0, 0, 16995, 16996, 5, 95, 0, 0, 16996, 16997, 7, 10, 0, 0, 16997, 16998, 7, 7, 0, 0, 16998, 16999, 7, 9, 0, 0, 16999, 17000, 7, 6, 0, 0, 17000, 17001, 7, 25, 0, 0, 17001, 2286, 1, 0, 0, 0, 17002, 17003, 7, 7, 0, 0, 17003, 17004, 7, 2, 0, 0, 17004, 17005, 7, 15, 0, 0, 17005, 17006, 7, 0, 0, 0, 17006, 17007, 7, 3, 0, 0, 17007, 17008, 7, 0, 0, 0, 17008, 17009, 7, 11, 0, 0, 17009, 17010, 7, 11, 0, 0, 17010, 17011, 7, 6, 0, 0, 17011, 17012, 7, 11, 0, 0, 17012, 17013, 5, 95, 0, 0, 17013, 17014, 7, 10, 0, 0, 17014, 17015, 7, 7, 0, 0, 17015, 17016, 7, 9, 0, 0, 17016, 17017, 7, 6, 0, 0, 17017, 17018, 7, 25, 0, 0, 17018, 2288, 1, 0, 0, 0, 17019, 17020, 7, 7, 0, 0, 17020, 17021, 7, 2, 0, 0, 17021, 17022, 5, 95, 0, 0, 17022, 17023, 7, 15, 0, 0, 17023, 17024, 7, 0, 0, 0, 17024, 17025, 7, 3, 0, 0, 17025, 17026, 7, 0, 0, 0, 17026, 17027, 7, 11, 0, 0, 17027, 17028, 7, 11, 0, 0, 17028, 17029, 7, 6, 0, 0, 17029, 17030, 7, 11, 0, 0, 17030, 2290, 1, 0, 0, 0, 17031, 17032, 7, 7, 0, 0, 17032, 17033, 7, 2, 0, 0, 17033, 17034, 7, 15, 0, 0, 17034, 17035, 7, 0, 0, 0, 17035, 17036, 7, 3, 0, 0, 17036, 17037, 7, 0, 0, 0, 17037, 17038, 7, 11, 0, 0, 17038, 17039, 7, 11, 0, 0, 17039, 17040, 7, 6, 0, 0, 17040, 17041, 7, 11, 0, 0, 17041, 2292, 1, 0, 0, 0, 17042, 17043, 7, 7, 0, 0, 17043, 17044, 7, 2, 0, 0, 17044, 17045, 5, 95, 0, 0, 17045, 17046, 7, 15, 0, 0, 17046, 17047, 7, 0, 0, 0, 17047, 17048, 7, 3, 0, 0, 17048, 17049, 7, 4, 0, 0, 17049, 17050, 7, 10, 0, 0, 17050, 17051, 7, 0, 0, 0, 17051, 17052, 7, 11, 0, 0, 17052, 17053, 5, 95, 0, 0, 17053, 17054, 7, 8, 0, 0, 17054, 17055, 7, 2, 0, 0, 17055, 17056, 7, 14, 0, 0, 17056, 17057, 7, 14, 0, 0, 17057, 17058, 7, 10, 0, 0, 17058, 17059, 7, 4, 0, 0, 17059, 2294, 1, 0, 0, 0, 17060, 17061, 7, 7, 0, 0, 17061, 17062, 7, 2, 0, 0, 17062, 17063, 5, 95, 0, 0, 17063, 17064, 7, 15, 0, 0, 17064, 17065, 7, 0, 0, 0, 17065, 17066, 7, 3, 0, 0, 17066, 17067, 7, 4, 0, 0, 17067, 17068, 7, 10, 0, 0, 17068, 17069, 7, 0, 0, 0, 17069, 17070, 7, 11, 0, 0, 17070, 17071, 5, 95, 0, 0, 17071, 17072, 7, 20, 0, 0, 17072, 17073, 7, 2, 0, 0, 17073, 17074, 7, 10, 0, 0, 17074, 17075, 7, 7, 0, 0, 17075, 2296, 1, 0, 0, 0, 17076, 17077, 7, 7, 0, 0, 17077, 17078, 7, 2, 0, 0, 17078, 17079, 5, 95, 0, 0, 17079, 17080, 7, 15, 0, 0, 17080, 17081, 7, 0, 0, 0, 17081, 17082, 7, 3, 0, 0, 17082, 17083, 7, 4, 0, 0, 17083, 17084, 7, 10, 0, 0, 17084, 17085, 7, 0, 0, 0, 17085, 17086, 7, 11, 0, 0, 17086, 17087, 5, 95, 0, 0, 17087, 17088, 7, 3, 0, 0, 17088, 17089, 7, 2, 0, 0, 17089, 17090, 7, 11, 0, 0, 17090, 17091, 7, 11, 0, 0, 17091, 17092, 7, 12, 0, 0, 17092, 17093, 7, 15, 0, 0, 17093, 17094, 5, 95, 0, 0, 17094, 17095, 7, 15, 0, 0, 17095, 17096, 7, 12, 0, 0, 17096, 17097, 7, 5, 0, 0, 17097, 17098, 7, 19, 0, 0, 17098, 17099, 7, 9, 0, 0, 17099, 17100, 7, 2, 0, 0, 17100, 17101, 7, 22, 0, 0, 17101, 17102, 7, 7, 0, 0, 17102, 2298, 1, 0, 0, 0, 17103, 17104, 7, 7, 0, 0, 17104, 17105, 7, 2, 0, 0, 17105, 17106, 7, 15, 0, 0, 17106, 17107, 7, 0, 0, 0, 17107, 17108, 7, 3, 0, 0, 17108, 17109, 7, 4, 0, 0, 17109, 17110, 7, 10, 0, 0, 17110, 17111, 7, 4, 0, 0, 17111, 17112, 7, 10, 0, 0, 17112, 17113, 7, 2, 0, 0, 17113, 17114, 7, 7, 0, 0, 17114, 2300, 1, 0, 0, 0, 17115, 17116, 7, 7, 0, 0, 17116, 17117, 7, 2, 0, 0, 17117, 17118, 5, 95, 0, 0, 17118, 17119, 7, 15, 0, 0, 17119, 17120, 7, 11, 0, 0, 17120, 17121, 7, 0, 0, 0, 17121, 17122, 7, 8, 0, 0, 17122, 17123, 7, 6, 0, 0, 17123, 17124, 5, 95, 0, 0, 17124, 17125, 7, 9, 0, 0, 17125, 17126, 7, 10, 0, 0, 17126, 17127, 7, 5, 0, 0, 17127, 17128, 7, 4, 0, 0, 17128, 17129, 7, 10, 0, 0, 17129, 17130, 7, 7, 0, 0, 17130, 17131, 7, 8, 0, 0, 17131, 17132, 7, 4, 0, 0, 17132, 2302, 1, 0, 0, 0, 17133, 17134, 7, 7, 0, 0, 17134, 17135, 7, 2, 0, 0, 17135, 17136, 5, 95, 0, 0, 17136, 17137, 7, 15, 0, 0, 17137, 17138, 7, 11, 0, 0, 17138, 17139, 7, 0, 0, 0, 17139, 17140, 7, 8, 0, 0, 17140, 17141, 7, 6, 0, 0, 17141, 17142, 5, 95, 0, 0, 17142, 17143, 7, 17, 0, 0, 17143, 17144, 7, 3, 0, 0, 17144, 17145, 7, 2, 0, 0, 17145, 17146, 7, 12, 0, 0, 17146, 17147, 7, 15, 0, 0, 17147, 17148, 5, 95, 0, 0, 17148, 17149, 7, 1, 0, 0, 17149, 17150, 7, 18, 0, 0, 17150, 2304, 1, 0, 0, 0, 17151, 17152, 7, 7, 0, 0, 17152, 17153, 7, 2, 0, 0, 17153, 17154, 5, 95, 0, 0, 17154, 17155, 7, 15, 0, 0, 17155, 17156, 7, 24, 0, 0, 17156, 17157, 5, 95, 0, 0, 17157, 17158, 7, 8, 0, 0, 17158, 17159, 7, 2, 0, 0, 17159, 17160, 7, 7, 0, 0, 17160, 17161, 7, 8, 0, 0, 17161, 17162, 7, 12, 0, 0, 17162, 17163, 7, 3, 0, 0, 17163, 17164, 7, 3, 0, 0, 17164, 17165, 7, 6, 0, 0, 17165, 17166, 7, 7, 0, 0, 17166, 17167, 7, 4, 0, 0, 17167, 17168, 5, 95, 0, 0, 17168, 17169, 7, 12, 0, 0, 17169, 17170, 7, 7, 0, 0, 17170, 17171, 7, 10, 0, 0, 17171, 17172, 7, 2, 0, 0, 17172, 17173, 7, 7, 0, 0, 17173, 2306, 1, 0, 0, 0, 17174, 17175, 7, 7, 0, 0, 17175, 17176, 7, 2, 0, 0, 17176, 17177, 5, 95, 0, 0, 17177, 17178, 7, 15, 0, 0, 17178, 17179, 7, 24, 0, 0, 17179, 17180, 5, 95, 0, 0, 17180, 17181, 7, 14, 0, 0, 17181, 17182, 7, 0, 0, 0, 17182, 17183, 7, 15, 0, 0, 17183, 2308, 1, 0, 0, 0, 17184, 17185, 7, 7, 0, 0, 17185, 17186, 7, 2, 0, 0, 17186, 17187, 7, 15, 0, 0, 17187, 17188, 7, 3, 0, 0, 17188, 17189, 7, 2, 0, 0, 17189, 17190, 7, 14, 0, 0, 17190, 17191, 7, 15, 0, 0, 17191, 17192, 7, 4, 0, 0, 17192, 2310, 1, 0, 0, 0, 17193, 17194, 7, 7, 0, 0, 17194, 17195, 7, 2, 0, 0, 17195, 17196, 5, 95, 0, 0, 17196, 17197, 7, 15, 0, 0, 17197, 17198, 7, 24, 0, 0, 17198, 17199, 5, 95, 0, 0, 17199, 17200, 7, 3, 0, 0, 17200, 17201, 7, 6, 0, 0, 17201, 17202, 7, 15, 0, 0, 17202, 17203, 7, 11, 0, 0, 17203, 17204, 7, 10, 0, 0, 17204, 17205, 7, 8, 0, 0, 17205, 17206, 7, 0, 0, 0, 17206, 17207, 7, 4, 0, 0, 17207, 17208, 7, 6, 0, 0, 17208, 2312, 1, 0, 0, 0, 17209, 17210, 7, 7, 0, 0, 17210, 17211, 7, 2, 0, 0, 17211, 17212, 5, 95, 0, 0, 17212, 17213, 7, 15, 0, 0, 17213, 17214, 7, 24, 0, 0, 17214, 17215, 5, 95, 0, 0, 17215, 17216, 7, 5, 0, 0, 17216, 17217, 7, 21, 0, 0, 17217, 17218, 7, 6, 0, 0, 17218, 17219, 7, 22, 0, 0, 17219, 2314, 1, 0, 0, 0, 17220, 17221, 7, 7, 0, 0, 17221, 17222, 7, 2, 0, 0, 17222, 17223, 5, 95, 0, 0, 17223, 17224, 7, 15, 0, 0, 17224, 17225, 7, 3, 0, 0, 17225, 17226, 7, 12, 0, 0, 17226, 17227, 7, 7, 0, 0, 17227, 17228, 7, 6, 0, 0, 17228, 17229, 5, 95, 0, 0, 17229, 17230, 7, 17, 0, 0, 17230, 17231, 7, 5, 0, 0, 17231, 17232, 7, 6, 0, 0, 17232, 17233, 7, 4, 0, 0, 17233, 17234, 7, 5, 0, 0, 17234, 2316, 1, 0, 0, 0, 17235, 17236, 7, 7, 0, 0, 17236, 17237, 7, 2, 0, 0, 17237, 17238, 5, 95, 0, 0, 17238, 17239, 7, 15, 0, 0, 17239, 17240, 7, 12, 0, 0, 17240, 17241, 7, 11, 0, 0, 17241, 17242, 7, 11, 0, 0, 17242, 17243, 5, 95, 0, 0, 17243, 17244, 7, 15, 0, 0, 17244, 17245, 7, 3, 0, 0, 17245, 17246, 7, 6, 0, 0, 17246, 17247, 7, 9, 0, 0, 17247, 2318, 1, 0, 0, 0, 17248, 17249, 7, 7, 0, 0, 17249, 17250, 7, 2, 0, 0, 17250, 17251, 5, 95, 0, 0, 17251, 17252, 7, 15, 0, 0, 17252, 17253, 7, 12, 0, 0, 17253, 17254, 7, 5, 0, 0, 17254, 17255, 7, 19, 0, 0, 17255, 17256, 5, 95, 0, 0, 17256, 17257, 7, 15, 0, 0, 17257, 17258, 7, 3, 0, 0, 17258, 17259, 7, 6, 0, 0, 17259, 17260, 7, 9, 0, 0, 17260, 2320, 1, 0, 0, 0, 17261, 17262, 7, 7, 0, 0, 17262, 17263, 7, 2, 0, 0, 17263, 17264, 5, 95, 0, 0, 17264, 17265, 7, 15, 0, 0, 17265, 17266, 7, 12, 0, 0, 17266, 17267, 7, 5, 0, 0, 17267, 17268, 7, 19, 0, 0, 17268, 17269, 5, 95, 0, 0, 17269, 17270, 7, 5, 0, 0, 17270, 17271, 7, 12, 0, 0, 17271, 17272, 7, 1, 0, 0, 17272, 17273, 7, 24, 0, 0, 17273, 2322, 1, 0, 0, 0, 17274, 17275, 7, 7, 0, 0, 17275, 17276, 7, 2, 0, 0, 17276, 17277, 5, 95, 0, 0, 17277, 17278, 7, 15, 0, 0, 17278, 17279, 7, 25, 0, 0, 17279, 17280, 5, 95, 0, 0, 17280, 17281, 7, 16, 0, 0, 17281, 17282, 7, 0, 0, 0, 17282, 17283, 7, 12, 0, 0, 17283, 17284, 7, 11, 0, 0, 17284, 17285, 7, 4, 0, 0, 17285, 17286, 5, 95, 0, 0, 17286, 17287, 7, 4, 0, 0, 17287, 17288, 7, 2, 0, 0, 17288, 17289, 7, 11, 0, 0, 17289, 17290, 7, 6, 0, 0, 17290, 17291, 7, 3, 0, 0, 17291, 17292, 7, 0, 0, 0, 17292, 17293, 7, 7, 0, 0, 17293, 17294, 7, 8, 0, 0, 17294, 17295, 7, 6, 0, 0, 17295, 2324, 1, 0, 0, 0, 17296, 17297, 7, 7, 0, 0, 17297, 17298, 7, 2, 0, 0, 17298, 17299, 5, 95, 0, 0, 17299, 17300, 7, 15, 0, 0, 17300, 17301, 7, 25, 0, 0, 17301, 17302, 5, 95, 0, 0, 17302, 17303, 7, 20, 0, 0, 17303, 17304, 7, 2, 0, 0, 17304, 17305, 7, 10, 0, 0, 17305, 17306, 7, 7, 0, 0, 17306, 17307, 5, 95, 0, 0, 17307, 17308, 7, 16, 0, 0, 17308, 17309, 7, 10, 0, 0, 17309, 17310, 7, 11, 0, 0, 17310, 17311, 7, 4, 0, 0, 17311, 17312, 7, 6, 0, 0, 17312, 17313, 7, 3, 0, 0, 17313, 2326, 1, 0, 0, 0, 17314, 17315, 7, 7, 0, 0, 17315, 17316, 7, 2, 0, 0, 17316, 17317, 5, 95, 0, 0, 17317, 17318, 7, 24, 0, 0, 17318, 17319, 7, 21, 0, 0, 17319, 17320, 7, 7, 0, 0, 17320, 17321, 5, 95, 0, 0, 17321, 17322, 7, 1, 0, 0, 17322, 17323, 7, 12, 0, 0, 17323, 17324, 7, 16, 0, 0, 17324, 17325, 7, 16, 0, 0, 17325, 2328, 1, 0, 0, 0, 17326, 17327, 7, 7, 0, 0, 17327, 17328, 7, 2, 0, 0, 17328, 17329, 5, 95, 0, 0, 17329, 17330, 7, 24, 0, 0, 17330, 17331, 7, 12, 0, 0, 17331, 17332, 7, 6, 0, 0, 17332, 17333, 7, 3, 0, 0, 17333, 17334, 7, 18, 0, 0, 17334, 17335, 5, 95, 0, 0, 17335, 17336, 7, 4, 0, 0, 17336, 17337, 7, 3, 0, 0, 17337, 17338, 7, 0, 0, 0, 17338, 17339, 7, 7, 0, 0, 17339, 17340, 7, 5, 0, 0, 17340, 17341, 7, 16, 0, 0, 17341, 17342, 7, 2, 0, 0, 17342, 17343, 7, 3, 0, 0, 17343, 17344, 7, 14, 0, 0, 17344, 17345, 7, 0, 0, 0, 17345, 17346, 7, 4, 0, 0, 17346, 17347, 7, 10, 0, 0, 17347, 17348, 7, 2, 0, 0, 17348, 17349, 7, 7, 0, 0, 17349, 2330, 1, 0, 0, 0, 17350, 17351, 7, 7, 0, 0, 17351, 17352, 7, 2, 0, 0, 17352, 17353, 5, 95, 0, 0, 17353, 17354, 7, 3, 0, 0, 17354, 17355, 7, 6, 0, 0, 17355, 17356, 7, 16, 0, 0, 17356, 17357, 5, 95, 0, 0, 17357, 17358, 7, 8, 0, 0, 17358, 17359, 7, 0, 0, 0, 17359, 17360, 7, 5, 0, 0, 17360, 17361, 7, 8, 0, 0, 17361, 17362, 7, 0, 0, 0, 17362, 17363, 7, 9, 0, 0, 17363, 17364, 7, 6, 0, 0, 17364, 2332, 1, 0, 0, 0, 17365, 17366, 7, 7, 0, 0, 17366, 17367, 7, 2, 0, 0, 17367, 17368, 7, 3, 0, 0, 17368, 17369, 7, 6, 0, 0, 17369, 17370, 7, 11, 0, 0, 17370, 17371, 7, 2, 0, 0, 17371, 17372, 7, 8, 0, 0, 17372, 17373, 7, 0, 0, 0, 17373, 17374, 7, 4, 0, 0, 17374, 17375, 7, 6, 0, 0, 17375, 2334, 1, 0, 0, 0, 17376, 17377, 7, 7, 0, 0, 17377, 17378, 7, 2, 0, 0, 17378, 17379, 7, 3, 0, 0, 17379, 17380, 7, 6, 0, 0, 17380, 17381, 7, 11, 0, 0, 17381, 17382, 7, 18, 0, 0, 17382, 2336, 1, 0, 0, 0, 17383, 17384, 7, 7, 0, 0, 17384, 17385, 7, 2, 0, 0, 17385, 17386, 7, 3, 0, 0, 17386, 17387, 7, 6, 0, 0, 17387, 17388, 7, 15, 0, 0, 17388, 17389, 7, 0, 0, 0, 17389, 17390, 7, 10, 0, 0, 17390, 17391, 7, 3, 0, 0, 17391, 2338, 1, 0, 0, 0, 17392, 17393, 7, 7, 0, 0, 17393, 17394, 7, 2, 0, 0, 17394, 17395, 7, 3, 0, 0, 17395, 17396, 7, 6, 0, 0, 17396, 17397, 7, 15, 0, 0, 17397, 17398, 7, 11, 0, 0, 17398, 17399, 7, 0, 0, 0, 17399, 17400, 7, 18, 0, 0, 17400, 2340, 1, 0, 0, 0, 17401, 17402, 7, 7, 0, 0, 17402, 17403, 7, 2, 0, 0, 17403, 17404, 7, 3, 0, 0, 17404, 17405, 7, 6, 0, 0, 17405, 17406, 7, 5, 0, 0, 17406, 17407, 7, 6, 0, 0, 17407, 17408, 7, 4, 0, 0, 17408, 17409, 7, 11, 0, 0, 17409, 17410, 7, 2, 0, 0, 17410, 17411, 7, 17, 0, 0, 17411, 17412, 7, 5, 0, 0, 17412, 2342, 1, 0, 0, 0, 17413, 17414, 7, 7, 0, 0, 17414, 17415, 7, 2, 0, 0, 17415, 17416, 5, 95, 0, 0, 17416, 17417, 7, 3, 0, 0, 17417, 17418, 7, 6, 0, 0, 17418, 17419, 7, 5, 0, 0, 17419, 17420, 7, 12, 0, 0, 17420, 17421, 7, 11, 0, 0, 17421, 17422, 7, 4, 0, 0, 17422, 17423, 5, 95, 0, 0, 17423, 17424, 7, 8, 0, 0, 17424, 17425, 7, 0, 0, 0, 17425, 17426, 7, 8, 0, 0, 17426, 17427, 7, 19, 0, 0, 17427, 17428, 7, 6, 0, 0, 17428, 2344, 1, 0, 0, 0, 17429, 17430, 7, 7, 0, 0, 17430, 17431, 7, 2, 0, 0, 17431, 17432, 7, 3, 0, 0, 17432, 17433, 7, 6, 0, 0, 17433, 17434, 7, 13, 0, 0, 17434, 17435, 7, 6, 0, 0, 17435, 17436, 7, 3, 0, 0, 17436, 17437, 7, 5, 0, 0, 17437, 17438, 7, 6, 0, 0, 17438, 2346, 1, 0, 0, 0, 17439, 17440, 7, 7, 0, 0, 17440, 17441, 7, 2, 0, 0, 17441, 17442, 5, 95, 0, 0, 17442, 17443, 7, 3, 0, 0, 17443, 17444, 7, 6, 0, 0, 17444, 17445, 7, 22, 0, 0, 17445, 17446, 7, 3, 0, 0, 17446, 17447, 7, 10, 0, 0, 17447, 17448, 7, 4, 0, 0, 17448, 17449, 7, 6, 0, 0, 17449, 2348, 1, 0, 0, 0, 17450, 17451, 7, 7, 0, 0, 17451, 17452, 7, 2, 0, 0, 17452, 17453, 7, 3, 0, 0, 17453, 17454, 7, 6, 0, 0, 17454, 17455, 7, 22, 0, 0, 17455, 17456, 7, 3, 0, 0, 17456, 17457, 7, 10, 0, 0, 17457, 17458, 7, 4, 0, 0, 17458, 17459, 7, 6, 0, 0, 17459, 2350, 1, 0, 0, 0, 17460, 17461, 7, 7, 0, 0, 17461, 17462, 7, 2, 0, 0, 17462, 17463, 7, 3, 0, 0, 17463, 17464, 7, 14, 0, 0, 17464, 17465, 7, 0, 0, 0, 17465, 17466, 7, 11, 0, 0, 17466, 2352, 1, 0, 0, 0, 17467, 17468, 7, 7, 0, 0, 17468, 17469, 7, 2, 0, 0, 17469, 17470, 5, 95, 0, 0, 17470, 17471, 7, 3, 0, 0, 17471, 17472, 7, 2, 0, 0, 17472, 17473, 7, 2, 0, 0, 17473, 17474, 7, 4, 0, 0, 17474, 17475, 5, 95, 0, 0, 17475, 17476, 7, 5, 0, 0, 17476, 17477, 7, 22, 0, 0, 17477, 17478, 5, 95, 0, 0, 17478, 17479, 7, 16, 0, 0, 17479, 17480, 7, 2, 0, 0, 17480, 17481, 7, 3, 0, 0, 17481, 17482, 5, 95, 0, 0, 17482, 17483, 7, 11, 0, 0, 17483, 17484, 7, 2, 0, 0, 17484, 17485, 7, 8, 0, 0, 17485, 17486, 7, 0, 0, 0, 17486, 17487, 7, 11, 0, 0, 17487, 2354, 1, 0, 0, 0, 17488, 17489, 7, 7, 0, 0, 17489, 17490, 7, 2, 0, 0, 17490, 17491, 7, 3, 0, 0, 17491, 17492, 7, 2, 0, 0, 17492, 17493, 7, 22, 0, 0, 17493, 17494, 7, 9, 0, 0, 17494, 17495, 7, 6, 0, 0, 17495, 17496, 7, 15, 0, 0, 17496, 17497, 7, 6, 0, 0, 17497, 17498, 7, 7, 0, 0, 17498, 17499, 7, 9, 0, 0, 17499, 17500, 7, 6, 0, 0, 17500, 17501, 7, 7, 0, 0, 17501, 17502, 7, 8, 0, 0, 17502, 17503, 7, 10, 0, 0, 17503, 17504, 7, 6, 0, 0, 17504, 17505, 7, 5, 0, 0, 17505, 2356, 1, 0, 0, 0, 17506, 17507, 7, 7, 0, 0, 17507, 17508, 7, 2, 0, 0, 17508, 17509, 7, 5, 0, 0, 17509, 17510, 7, 8, 0, 0, 17510, 17511, 7, 0, 0, 0, 17511, 17512, 7, 11, 0, 0, 17512, 17513, 7, 6, 0, 0, 17513, 2358, 1, 0, 0, 0, 17514, 17515, 7, 7, 0, 0, 17515, 17516, 7, 2, 0, 0, 17516, 17517, 7, 5, 0, 0, 17517, 17518, 7, 8, 0, 0, 17518, 17519, 7, 19, 0, 0, 17519, 17520, 7, 6, 0, 0, 17520, 17521, 7, 14, 0, 0, 17521, 17522, 7, 0, 0, 0, 17522, 17523, 7, 8, 0, 0, 17523, 17524, 7, 19, 0, 0, 17524, 17525, 7, 6, 0, 0, 17525, 17526, 7, 8, 0, 0, 17526, 17527, 7, 21, 0, 0, 17527, 2360, 1, 0, 0, 0, 17528, 17529, 7, 7, 0, 0, 17529, 17530, 7, 2, 0, 0, 17530, 17531, 7, 5, 0, 0, 17531, 17532, 7, 6, 0, 0, 17532, 17533, 7, 17, 0, 0, 17533, 17534, 7, 14, 0, 0, 17534, 17535, 7, 6, 0, 0, 17535, 17536, 7, 7, 0, 0, 17536, 17537, 7, 4, 0, 0, 17537, 2362, 1, 0, 0, 0, 17538, 17539, 7, 7, 0, 0, 17539, 17540, 7, 2, 0, 0, 17540, 17541, 5, 95, 0, 0, 17541, 17542, 7, 5, 0, 0, 17542, 17543, 7, 6, 0, 0, 17543, 17544, 7, 14, 0, 0, 17544, 17545, 7, 10, 0, 0, 17545, 17546, 7, 20, 0, 0, 17546, 17547, 7, 2, 0, 0, 17547, 17548, 7, 10, 0, 0, 17548, 17549, 7, 7, 0, 0, 17549, 2364, 1, 0, 0, 0, 17550, 17551, 7, 7, 0, 0, 17551, 17552, 7, 2, 0, 0, 17552, 17553, 5, 95, 0, 0, 17553, 17554, 7, 5, 0, 0, 17554, 17555, 7, 6, 0, 0, 17555, 17556, 7, 14, 0, 0, 17556, 17557, 7, 10, 0, 0, 17557, 17558, 5, 95, 0, 0, 17558, 17559, 7, 4, 0, 0, 17559, 17560, 7, 2, 0, 0, 17560, 17561, 5, 95, 0, 0, 17561, 17562, 7, 10, 0, 0, 17562, 17563, 7, 7, 0, 0, 17563, 17564, 7, 7, 0, 0, 17564, 17565, 7, 6, 0, 0, 17565, 17566, 7, 3, 0, 0, 17566, 2366, 1, 0, 0, 0, 17567, 17568, 7, 7, 0, 0, 17568, 17569, 7, 2, 0, 0, 17569, 17570, 5, 95, 0, 0, 17570, 17571, 7, 5, 0, 0, 17571, 17572, 7, 6, 0, 0, 17572, 17573, 7, 4, 0, 0, 17573, 17574, 5, 95, 0, 0, 17574, 17575, 7, 4, 0, 0, 17575, 17576, 7, 2, 0, 0, 17576, 17577, 5, 95, 0, 0, 17577, 17578, 7, 20, 0, 0, 17578, 17579, 7, 2, 0, 0, 17579, 17580, 7, 10, 0, 0, 17580, 17581, 7, 7, 0, 0, 17581, 2368, 1, 0, 0, 0, 17582, 17583, 7, 7, 0, 0, 17583, 17584, 7, 2, 0, 0, 17584, 17585, 7, 5, 0, 0, 17585, 17586, 7, 19, 0, 0, 17586, 17587, 7, 0, 0, 0, 17587, 17588, 7, 3, 0, 0, 17588, 17589, 7, 9, 0, 0, 17589, 2370, 1, 0, 0, 0, 17590, 17591, 7, 7, 0, 0, 17591, 17592, 7, 2, 0, 0, 17592, 17593, 7, 5, 0, 0, 17593, 17594, 7, 2, 0, 0, 17594, 17595, 7, 3, 0, 0, 17595, 17596, 7, 4, 0, 0, 17596, 2372, 1, 0, 0, 0, 17597, 17598, 7, 7, 0, 0, 17598, 17599, 7, 2, 0, 0, 17599, 17600, 5, 95, 0, 0, 17600, 17601, 7, 5, 0, 0, 17601, 17602, 7, 24, 0, 0, 17602, 17603, 7, 11, 0, 0, 17603, 17604, 5, 95, 0, 0, 17604, 17605, 7, 4, 0, 0, 17605, 17606, 7, 3, 0, 0, 17606, 17607, 7, 0, 0, 0, 17607, 17608, 7, 7, 0, 0, 17608, 17609, 7, 5, 0, 0, 17609, 17610, 7, 11, 0, 0, 17610, 17611, 7, 0, 0, 0, 17611, 17612, 7, 4, 0, 0, 17612, 17613, 7, 10, 0, 0, 17613, 17614, 7, 2, 0, 0, 17614, 17615, 7, 7, 0, 0, 17615, 2374, 1, 0, 0, 0, 17616, 17617, 7, 7, 0, 0, 17617, 17618, 7, 2, 0, 0, 17618, 17619, 5, 95, 0, 0, 17619, 17620, 7, 5, 0, 0, 17620, 17621, 7, 24, 0, 0, 17621, 17622, 7, 11, 0, 0, 17622, 17623, 5, 95, 0, 0, 17623, 17624, 7, 4, 0, 0, 17624, 17625, 7, 12, 0, 0, 17625, 17626, 7, 7, 0, 0, 17626, 17627, 7, 6, 0, 0, 17627, 2376, 1, 0, 0, 0, 17628, 17629, 7, 7, 0, 0, 17629, 17630, 7, 2, 0, 0, 17630, 17631, 5, 95, 0, 0, 17631, 17632, 7, 5, 0, 0, 17632, 17633, 7, 4, 0, 0, 17633, 17634, 7, 0, 0, 0, 17634, 17635, 7, 3, 0, 0, 17635, 17636, 5, 95, 0, 0, 17636, 17637, 7, 4, 0, 0, 17637, 17638, 7, 3, 0, 0, 17638, 17639, 7, 0, 0, 0, 17639, 17640, 7, 7, 0, 0, 17640, 17641, 7, 5, 0, 0, 17641, 17642, 7, 16, 0, 0, 17642, 17643, 7, 2, 0, 0, 17643, 17644, 7, 3, 0, 0, 17644, 17645, 7, 14, 0, 0, 17645, 17646, 7, 0, 0, 0, 17646, 17647, 7, 4, 0, 0, 17647, 17648, 7, 10, 0, 0, 17648, 17649, 7, 2, 0, 0, 17649, 17650, 7, 7, 0, 0, 17650, 2378, 1, 0, 0, 0, 17651, 17652, 7, 7, 0, 0, 17652, 17653, 7, 2, 0, 0, 17653, 17654, 5, 95, 0, 0, 17654, 17655, 7, 5, 0, 0, 17655, 17656, 7, 4, 0, 0, 17656, 17657, 7, 0, 0, 0, 17657, 17658, 7, 4, 0, 0, 17658, 17659, 7, 6, 0, 0, 17659, 17660, 7, 14, 0, 0, 17660, 17661, 7, 6, 0, 0, 17661, 17662, 7, 7, 0, 0, 17662, 17663, 7, 4, 0, 0, 17663, 17664, 5, 95, 0, 0, 17664, 17665, 7, 24, 0, 0, 17665, 17666, 7, 12, 0, 0, 17666, 17667, 7, 6, 0, 0, 17667, 17668, 7, 12, 0, 0, 17668, 17669, 7, 10, 0, 0, 17669, 17670, 7, 7, 0, 0, 17670, 17671, 7, 17, 0, 0, 17671, 2380, 1, 0, 0, 0, 17672, 17673, 7, 7, 0, 0, 17673, 17674, 7, 2, 0, 0, 17674, 17675, 5, 95, 0, 0, 17675, 17676, 7, 5, 0, 0, 17676, 17677, 7, 4, 0, 0, 17677, 17678, 7, 0, 0, 0, 17678, 17679, 7, 4, 0, 0, 17679, 17680, 7, 5, 0, 0, 17680, 17681, 5, 95, 0, 0, 17681, 17682, 7, 17, 0, 0, 17682, 17683, 7, 5, 0, 0, 17683, 17684, 7, 6, 0, 0, 17684, 17685, 7, 4, 0, 0, 17685, 17686, 7, 5, 0, 0, 17686, 2382, 1, 0, 0, 0, 17687, 17688, 7, 7, 0, 0, 17688, 17689, 7, 2, 0, 0, 17689, 17690, 7, 5, 0, 0, 17690, 17691, 7, 4, 0, 0, 17691, 17692, 7, 3, 0, 0, 17692, 17693, 7, 10, 0, 0, 17693, 17694, 7, 8, 0, 0, 17694, 17695, 7, 4, 0, 0, 17695, 2384, 1, 0, 0, 0, 17696, 17697, 7, 7, 0, 0, 17697, 17698, 7, 2, 0, 0, 17698, 17699, 5, 95, 0, 0, 17699, 17700, 7, 5, 0, 0, 17700, 17701, 7, 12, 0, 0, 17701, 17702, 7, 1, 0, 0, 17702, 17703, 7, 24, 0, 0, 17703, 17704, 7, 12, 0, 0, 17704, 17705, 7, 6, 0, 0, 17705, 17706, 7, 3, 0, 0, 17706, 17707, 7, 18, 0, 0, 17707, 17708, 5, 95, 0, 0, 17708, 17709, 7, 15, 0, 0, 17709, 17710, 7, 3, 0, 0, 17710, 17711, 7, 12, 0, 0, 17711, 17712, 7, 7, 0, 0, 17712, 17713, 7, 10, 0, 0, 17713, 17714, 7, 7, 0, 0, 17714, 17715, 7, 17, 0, 0, 17715, 2386, 1, 0, 0, 0, 17716, 17717, 7, 7, 0, 0, 17717, 17718, 7, 2, 0, 0, 17718, 17719, 5, 95, 0, 0, 17719, 17720, 7, 5, 0, 0, 17720, 17721, 7, 12, 0, 0, 17721, 17722, 7, 1, 0, 0, 17722, 17723, 7, 5, 0, 0, 17723, 17724, 7, 4, 0, 0, 17724, 17725, 7, 3, 0, 0, 17725, 17726, 7, 1, 0, 0, 17726, 17727, 5, 95, 0, 0, 17727, 17728, 7, 15, 0, 0, 17728, 17729, 7, 0, 0, 0, 17729, 17730, 7, 9, 0, 0, 17730, 2388, 1, 0, 0, 0, 17731, 17732, 7, 7, 0, 0, 17732, 17733, 7, 2, 0, 0, 17733, 17734, 5, 95, 0, 0, 17734, 17735, 7, 5, 0, 0, 17735, 17736, 7, 22, 0, 0, 17736, 17737, 7, 0, 0, 0, 17737, 17738, 7, 15, 0, 0, 17738, 17739, 5, 95, 0, 0, 17739, 17740, 7, 20, 0, 0, 17740, 17741, 7, 2, 0, 0, 17741, 17742, 7, 10, 0, 0, 17742, 17743, 7, 7, 0, 0, 17743, 17744, 5, 95, 0, 0, 17744, 17745, 7, 10, 0, 0, 17745, 17746, 7, 7, 0, 0, 17746, 17747, 7, 15, 0, 0, 17747, 17748, 7, 12, 0, 0, 17748, 17749, 7, 4, 0, 0, 17749, 17750, 7, 5, 0, 0, 17750, 2390, 1, 0, 0, 0, 17751, 17752, 7, 7, 0, 0, 17752, 17753, 7, 2, 0, 0, 17753, 17754, 7, 5, 0, 0, 17754, 17755, 7, 22, 0, 0, 17755, 17756, 7, 10, 0, 0, 17756, 17757, 7, 4, 0, 0, 17757, 17758, 7, 8, 0, 0, 17758, 17759, 7, 19, 0, 0, 17759, 2392, 1, 0, 0, 0, 17760, 17761, 7, 7, 0, 0, 17761, 17762, 7, 2, 0, 0, 17762, 17763, 5, 95, 0, 0, 17763, 17764, 7, 4, 0, 0, 17764, 17765, 7, 0, 0, 0, 17765, 17766, 7, 1, 0, 0, 17766, 17767, 7, 11, 0, 0, 17767, 17768, 7, 6, 0, 0, 17768, 17769, 5, 95, 0, 0, 17769, 17770, 7, 11, 0, 0, 17770, 17771, 7, 2, 0, 0, 17771, 17772, 7, 2, 0, 0, 17772, 17773, 7, 21, 0, 0, 17773, 17774, 7, 12, 0, 0, 17774, 17775, 7, 15, 0, 0, 17775, 17776, 5, 95, 0, 0, 17776, 17777, 7, 1, 0, 0, 17777, 17778, 7, 18, 0, 0, 17778, 17779, 5, 95, 0, 0, 17779, 17780, 7, 7, 0, 0, 17780, 17781, 7, 11, 0, 0, 17781, 2394, 1, 0, 0, 0, 17782, 17783, 7, 7, 0, 0, 17783, 17784, 7, 2, 0, 0, 17784, 17785, 5, 95, 0, 0, 17785, 17786, 7, 4, 0, 0, 17786, 17787, 7, 6, 0, 0, 17787, 17788, 7, 14, 0, 0, 17788, 17789, 7, 15, 0, 0, 17789, 17790, 5, 95, 0, 0, 17790, 17791, 7, 4, 0, 0, 17791, 17792, 7, 0, 0, 0, 17792, 17793, 7, 1, 0, 0, 17793, 17794, 7, 11, 0, 0, 17794, 17795, 7, 6, 0, 0, 17795, 2396, 1, 0, 0, 0, 17796, 17797, 7, 7, 0, 0, 17797, 17798, 7, 2, 0, 0, 17798, 17799, 7, 4, 0, 0, 17799, 17800, 7, 19, 0, 0, 17800, 17801, 7, 10, 0, 0, 17801, 17802, 7, 7, 0, 0, 17802, 17803, 7, 17, 0, 0, 17803, 2398, 1, 0, 0, 0, 17804, 17805, 7, 7, 0, 0, 17805, 17806, 7, 2, 0, 0, 17806, 17807, 7, 4, 0, 0, 17807, 17808, 7, 10, 0, 0, 17808, 17809, 7, 16, 0, 0, 17809, 17810, 7, 10, 0, 0, 17810, 17811, 7, 8, 0, 0, 17811, 17812, 7, 0, 0, 0, 17812, 17813, 7, 4, 0, 0, 17813, 17814, 7, 10, 0, 0, 17814, 17815, 7, 2, 0, 0, 17815, 17816, 7, 7, 0, 0, 17816, 2400, 1, 0, 0, 0, 17817, 17818, 7, 7, 0, 0, 17818, 17819, 7, 2, 0, 0, 17819, 17820, 7, 4, 0, 0, 17820, 17821, 7, 3, 0, 0, 17821, 17822, 7, 10, 0, 0, 17822, 17823, 7, 14, 0, 0, 17823, 2402, 1, 0, 0, 0, 17824, 17825, 7, 7, 0, 0, 17825, 17826, 7, 2, 0, 0, 17826, 17827, 7, 4, 0, 0, 17827, 2404, 1, 0, 0, 0, 17828, 17829, 7, 7, 0, 0, 17829, 17830, 7, 2, 0, 0, 17830, 17831, 5, 95, 0, 0, 17831, 17832, 7, 4, 0, 0, 17832, 17833, 7, 3, 0, 0, 17833, 17834, 7, 0, 0, 0, 17834, 17835, 7, 7, 0, 0, 17835, 17836, 7, 5, 0, 0, 17836, 17837, 7, 16, 0, 0, 17837, 17838, 7, 2, 0, 0, 17838, 17839, 7, 3, 0, 0, 17839, 17840, 7, 14, 0, 0, 17840, 17841, 5, 95, 0, 0, 17841, 17842, 7, 9, 0, 0, 17842, 17843, 7, 10, 0, 0, 17843, 17844, 7, 5, 0, 0, 17844, 17845, 7, 4, 0, 0, 17845, 17846, 7, 10, 0, 0, 17846, 17847, 7, 7, 0, 0, 17847, 17848, 7, 8, 0, 0, 17848, 17849, 7, 4, 0, 0, 17849, 17850, 5, 95, 0, 0, 17850, 17851, 7, 0, 0, 0, 17851, 17852, 7, 17, 0, 0, 17852, 17853, 7, 17, 0, 0, 17853, 2406, 1, 0, 0, 0, 17854, 17855, 7, 7, 0, 0, 17855, 17856, 7, 2, 0, 0, 17856, 17857, 5, 95, 0, 0, 17857, 17858, 7, 12, 0, 0, 17858, 17859, 7, 7, 0, 0, 17859, 17860, 7, 7, 0, 0, 17860, 17861, 7, 6, 0, 0, 17861, 17862, 7, 5, 0, 0, 17862, 17863, 7, 4, 0, 0, 17863, 2408, 1, 0, 0, 0, 17864, 17865, 7, 7, 0, 0, 17865, 17866, 7, 2, 0, 0, 17866, 17867, 5, 95, 0, 0, 17867, 17868, 7, 12, 0, 0, 17868, 17869, 7, 5, 0, 0, 17869, 17870, 7, 6, 0, 0, 17870, 17871, 5, 95, 0, 0, 17871, 17872, 7, 8, 0, 0, 17872, 17873, 7, 12, 0, 0, 17873, 17874, 7, 1, 0, 0, 17874, 17875, 7, 6, 0, 0, 17875, 2410, 1, 0, 0, 0, 17876, 17877, 7, 7, 0, 0, 17877, 17878, 7, 2, 0, 0, 17878, 17879, 5, 95, 0, 0, 17879, 17880, 7, 12, 0, 0, 17880, 17881, 7, 5, 0, 0, 17881, 17882, 7, 6, 0, 0, 17882, 17883, 5, 95, 0, 0, 17883, 17884, 7, 19, 0, 0, 17884, 17885, 7, 0, 0, 0, 17885, 17886, 7, 5, 0, 0, 17886, 17887, 7, 19, 0, 0, 17887, 17888, 5, 95, 0, 0, 17888, 17889, 7, 0, 0, 0, 17889, 17890, 7, 17, 0, 0, 17890, 17891, 7, 17, 0, 0, 17891, 17892, 7, 3, 0, 0, 17892, 17893, 7, 6, 0, 0, 17893, 17894, 7, 17, 0, 0, 17894, 17895, 7, 0, 0, 0, 17895, 17896, 7, 4, 0, 0, 17896, 17897, 7, 10, 0, 0, 17897, 17898, 7, 2, 0, 0, 17898, 17899, 7, 7, 0, 0, 17899, 2412, 1, 0, 0, 0, 17900, 17901, 7, 7, 0, 0, 17901, 17902, 7, 2, 0, 0, 17902, 17903, 5, 95, 0, 0, 17903, 17904, 7, 12, 0, 0, 17904, 17905, 7, 5, 0, 0, 17905, 17906, 7, 6, 0, 0, 17906, 17907, 5, 95, 0, 0, 17907, 17908, 7, 19, 0, 0, 17908, 17909, 7, 0, 0, 0, 17909, 17910, 7, 5, 0, 0, 17910, 17911, 7, 19, 0, 0, 17911, 17912, 5, 95, 0, 0, 17912, 17913, 7, 17, 0, 0, 17913, 17914, 7, 1, 0, 0, 17914, 17915, 7, 18, 0, 0, 17915, 17916, 5, 95, 0, 0, 17916, 17917, 7, 16, 0, 0, 17917, 17918, 7, 2, 0, 0, 17918, 17919, 7, 3, 0, 0, 17919, 17920, 5, 95, 0, 0, 17920, 17921, 7, 15, 0, 0, 17921, 17922, 7, 12, 0, 0, 17922, 17923, 7, 5, 0, 0, 17923, 17924, 7, 19, 0, 0, 17924, 17925, 7, 9, 0, 0, 17925, 17926, 7, 2, 0, 0, 17926, 17927, 7, 22, 0, 0, 17927, 17928, 7, 7, 0, 0, 17928, 2414, 1, 0, 0, 0, 17929, 17930, 7, 7, 0, 0, 17930, 17931, 7, 2, 0, 0, 17931, 17932, 5, 95, 0, 0, 17932, 17933, 7, 12, 0, 0, 17933, 17934, 7, 5, 0, 0, 17934, 17935, 7, 6, 0, 0, 17935, 17936, 5, 95, 0, 0, 17936, 17937, 7, 19, 0, 0, 17937, 17938, 7, 0, 0, 0, 17938, 17939, 7, 5, 0, 0, 17939, 17940, 7, 19, 0, 0, 17940, 2416, 1, 0, 0, 0, 17941, 17942, 7, 7, 0, 0, 17942, 17943, 7, 2, 0, 0, 17943, 17944, 5, 95, 0, 0, 17944, 17945, 7, 12, 0, 0, 17945, 17946, 7, 5, 0, 0, 17946, 17947, 7, 6, 0, 0, 17947, 17948, 5, 95, 0, 0, 17948, 17949, 7, 10, 0, 0, 17949, 17950, 7, 7, 0, 0, 17950, 17951, 7, 13, 0, 0, 17951, 17952, 7, 10, 0, 0, 17952, 17953, 7, 5, 0, 0, 17953, 17954, 7, 10, 0, 0, 17954, 17955, 7, 1, 0, 0, 17955, 17956, 7, 11, 0, 0, 17956, 17957, 7, 6, 0, 0, 17957, 17958, 5, 95, 0, 0, 17958, 17959, 7, 10, 0, 0, 17959, 17960, 7, 7, 0, 0, 17960, 17961, 7, 9, 0, 0, 17961, 17962, 7, 6, 0, 0, 17962, 17963, 7, 25, 0, 0, 17963, 17964, 7, 6, 0, 0, 17964, 17965, 7, 5, 0, 0, 17965, 2418, 1, 0, 0, 0, 17966, 17967, 7, 7, 0, 0, 17967, 17968, 7, 2, 0, 0, 17968, 17969, 5, 95, 0, 0, 17969, 17970, 7, 12, 0, 0, 17970, 17971, 7, 5, 0, 0, 17971, 17972, 7, 6, 0, 0, 17972, 17973, 5, 95, 0, 0, 17973, 17974, 7, 14, 0, 0, 17974, 17975, 7, 6, 0, 0, 17975, 17976, 7, 3, 0, 0, 17976, 17977, 7, 17, 0, 0, 17977, 17978, 7, 6, 0, 0, 17978, 2420, 1, 0, 0, 0, 17979, 17980, 7, 7, 0, 0, 17980, 17981, 7, 2, 0, 0, 17981, 17982, 5, 95, 0, 0, 17982, 17983, 7, 12, 0, 0, 17983, 17984, 7, 5, 0, 0, 17984, 17985, 7, 6, 0, 0, 17985, 17986, 5, 95, 0, 0, 17986, 17987, 7, 7, 0, 0, 17987, 17988, 7, 11, 0, 0, 17988, 2422, 1, 0, 0, 0, 17989, 17990, 7, 7, 0, 0, 17990, 17991, 7, 2, 0, 0, 17991, 17992, 5, 95, 0, 0, 17992, 17993, 7, 12, 0, 0, 17993, 17994, 7, 5, 0, 0, 17994, 17995, 7, 6, 0, 0, 17995, 17996, 5, 95, 0, 0, 17996, 17997, 7, 13, 0, 0, 17997, 17998, 7, 6, 0, 0, 17998, 17999, 7, 8, 0, 0, 17999, 18000, 7, 4, 0, 0, 18000, 18001, 7, 2, 0, 0, 18001, 18002, 7, 3, 0, 0, 18002, 18003, 5, 95, 0, 0, 18003, 18004, 7, 0, 0, 0, 18004, 18005, 7, 17, 0, 0, 18005, 18006, 7, 17, 0, 0, 18006, 18007, 7, 3, 0, 0, 18007, 18008, 7, 6, 0, 0, 18008, 18009, 7, 17, 0, 0, 18009, 18010, 7, 0, 0, 0, 18010, 18011, 7, 4, 0, 0, 18011, 18012, 7, 10, 0, 0, 18012, 18013, 7, 2, 0, 0, 18013, 18014, 7, 7, 0, 0, 18014, 2424, 1, 0, 0, 0, 18015, 18016, 7, 7, 0, 0, 18016, 18017, 7, 2, 0, 0, 18017, 18018, 7, 13, 0, 0, 18018, 18019, 7, 0, 0, 0, 18019, 18020, 7, 11, 0, 0, 18020, 18021, 7, 10, 0, 0, 18021, 18022, 7, 9, 0, 0, 18022, 18023, 7, 0, 0, 0, 18023, 18024, 7, 4, 0, 0, 18024, 18025, 7, 6, 0, 0, 18025, 2426, 1, 0, 0, 0, 18026, 18027, 7, 7, 0, 0, 18027, 18028, 7, 2, 0, 0, 18028, 18029, 5, 95, 0, 0, 18029, 18030, 7, 13, 0, 0, 18030, 18031, 7, 6, 0, 0, 18031, 18032, 7, 8, 0, 0, 18032, 18033, 7, 4, 0, 0, 18033, 18034, 7, 2, 0, 0, 18034, 18035, 7, 3, 0, 0, 18035, 18036, 5, 95, 0, 0, 18036, 18037, 7, 4, 0, 0, 18037, 18038, 7, 3, 0, 0, 18038, 18039, 7, 0, 0, 0, 18039, 18040, 7, 7, 0, 0, 18040, 18041, 7, 5, 0, 0, 18041, 18042, 7, 16, 0, 0, 18042, 18043, 7, 2, 0, 0, 18043, 18044, 7, 3, 0, 0, 18044, 18045, 7, 14, 0, 0, 18045, 18046, 5, 95, 0, 0, 18046, 18047, 7, 9, 0, 0, 18047, 18048, 7, 10, 0, 0, 18048, 18049, 7, 14, 0, 0, 18049, 18050, 7, 5, 0, 0, 18050, 2428, 1, 0, 0, 0, 18051, 18052, 7, 7, 0, 0, 18052, 18053, 7, 2, 0, 0, 18053, 18054, 5, 95, 0, 0, 18054, 18055, 7, 13, 0, 0, 18055, 18056, 7, 6, 0, 0, 18056, 18057, 7, 8, 0, 0, 18057, 18058, 7, 4, 0, 0, 18058, 18059, 7, 2, 0, 0, 18059, 18060, 7, 3, 0, 0, 18060, 18061, 5, 95, 0, 0, 18061, 18062, 7, 4, 0, 0, 18062, 18063, 7, 3, 0, 0, 18063, 18064, 7, 0, 0, 0, 18064, 18065, 7, 7, 0, 0, 18065, 18066, 7, 5, 0, 0, 18066, 18067, 7, 16, 0, 0, 18067, 18068, 7, 2, 0, 0, 18068, 18069, 7, 3, 0, 0, 18069, 18070, 7, 14, 0, 0, 18070, 18071, 5, 95, 0, 0, 18071, 18072, 7, 16, 0, 0, 18072, 18073, 7, 0, 0, 0, 18073, 18074, 7, 8, 0, 0, 18074, 18075, 7, 4, 0, 0, 18075, 2430, 1, 0, 0, 0, 18076, 18077, 7, 7, 0, 0, 18077, 18078, 7, 2, 0, 0, 18078, 18079, 5, 95, 0, 0, 18079, 18080, 7, 13, 0, 0, 18080, 18081, 7, 6, 0, 0, 18081, 18082, 7, 8, 0, 0, 18082, 18083, 7, 4, 0, 0, 18083, 18084, 7, 2, 0, 0, 18084, 18085, 7, 3, 0, 0, 18085, 18086, 5, 95, 0, 0, 18086, 18087, 7, 4, 0, 0, 18087, 18088, 7, 3, 0, 0, 18088, 18089, 7, 0, 0, 0, 18089, 18090, 7, 7, 0, 0, 18090, 18091, 7, 5, 0, 0, 18091, 18092, 7, 16, 0, 0, 18092, 18093, 7, 2, 0, 0, 18093, 18094, 7, 3, 0, 0, 18094, 18095, 7, 14, 0, 0, 18095, 2432, 1, 0, 0, 0, 18096, 18097, 7, 7, 0, 0, 18097, 18098, 7, 2, 0, 0, 18098, 18099, 7, 22, 0, 0, 18099, 18100, 7, 0, 0, 0, 18100, 18101, 7, 10, 0, 0, 18101, 18102, 7, 4, 0, 0, 18102, 2434, 1, 0, 0, 0, 18103, 18104, 7, 7, 0, 0, 18104, 18105, 7, 2, 0, 0, 18105, 18106, 5, 95, 0, 0, 18106, 18107, 7, 25, 0, 0, 18107, 18108, 7, 9, 0, 0, 18108, 18109, 7, 1, 0, 0, 18109, 18110, 5, 95, 0, 0, 18110, 18111, 7, 16, 0, 0, 18111, 18112, 7, 0, 0, 0, 18112, 18113, 7, 5, 0, 0, 18113, 18114, 7, 4, 0, 0, 18114, 18115, 7, 15, 0, 0, 18115, 18116, 7, 0, 0, 0, 18116, 18117, 7, 4, 0, 0, 18117, 18118, 7, 19, 0, 0, 18118, 18119, 5, 95, 0, 0, 18119, 18120, 7, 10, 0, 0, 18120, 18121, 7, 7, 0, 0, 18121, 18122, 7, 5, 0, 0, 18122, 18123, 7, 6, 0, 0, 18123, 18124, 7, 3, 0, 0, 18124, 18125, 7, 4, 0, 0, 18125, 2436, 1, 0, 0, 0, 18126, 18127, 7, 7, 0, 0, 18127, 18128, 7, 2, 0, 0, 18128, 18129, 5, 95, 0, 0, 18129, 18130, 7, 25, 0, 0, 18130, 18131, 7, 14, 0, 0, 18131, 18132, 7, 11, 0, 0, 18132, 18133, 5, 95, 0, 0, 18133, 18134, 7, 9, 0, 0, 18134, 18135, 7, 14, 0, 0, 18135, 18136, 7, 11, 0, 0, 18136, 18137, 5, 95, 0, 0, 18137, 18138, 7, 3, 0, 0, 18138, 18139, 7, 6, 0, 0, 18139, 18140, 7, 22, 0, 0, 18140, 18141, 7, 3, 0, 0, 18141, 18142, 7, 10, 0, 0, 18142, 18143, 7, 4, 0, 0, 18143, 18144, 7, 6, 0, 0, 18144, 2438, 1, 0, 0, 0, 18145, 18146, 7, 7, 0, 0, 18146, 18147, 7, 2, 0, 0, 18147, 18148, 5, 95, 0, 0, 18148, 18149, 7, 25, 0, 0, 18149, 18150, 7, 14, 0, 0, 18150, 18151, 7, 11, 0, 0, 18151, 18152, 7, 10, 0, 0, 18152, 18153, 7, 7, 0, 0, 18153, 18154, 7, 9, 0, 0, 18154, 18155, 7, 6, 0, 0, 18155, 18156, 7, 25, 0, 0, 18156, 18157, 5, 95, 0, 0, 18157, 18158, 7, 3, 0, 0, 18158, 18159, 7, 6, 0, 0, 18159, 18160, 7, 22, 0, 0, 18160, 18161, 7, 3, 0, 0, 18161, 18162, 7, 10, 0, 0, 18162, 18163, 7, 4, 0, 0, 18163, 18164, 7, 6, 0, 0, 18164, 18165, 5, 95, 0, 0, 18165, 18166, 7, 10, 0, 0, 18166, 18167, 7, 7, 0, 0, 18167, 18168, 5, 95, 0, 0, 18168, 18169, 7, 5, 0, 0, 18169, 18170, 7, 6, 0, 0, 18170, 18171, 7, 11, 0, 0, 18171, 18172, 7, 6, 0, 0, 18172, 18173, 7, 8, 0, 0, 18173, 18174, 7, 4, 0, 0, 18174, 2440, 1, 0, 0, 0, 18175, 18176, 7, 7, 0, 0, 18176, 18177, 7, 2, 0, 0, 18177, 18178, 5, 95, 0, 0, 18178, 18179, 7, 25, 0, 0, 18179, 18180, 7, 14, 0, 0, 18180, 18181, 7, 11, 0, 0, 18181, 18182, 7, 10, 0, 0, 18182, 18183, 7, 7, 0, 0, 18183, 18184, 7, 9, 0, 0, 18184, 18185, 7, 6, 0, 0, 18185, 18186, 7, 25, 0, 0, 18186, 18187, 5, 95, 0, 0, 18187, 18188, 7, 3, 0, 0, 18188, 18189, 7, 6, 0, 0, 18189, 18190, 7, 22, 0, 0, 18190, 18191, 7, 3, 0, 0, 18191, 18192, 7, 10, 0, 0, 18192, 18193, 7, 4, 0, 0, 18193, 18194, 7, 6, 0, 0, 18194, 2442, 1, 0, 0, 0, 18195, 18196, 7, 7, 0, 0, 18196, 18197, 7, 2, 0, 0, 18197, 18198, 5, 95, 0, 0, 18198, 18199, 7, 25, 0, 0, 18199, 18200, 7, 14, 0, 0, 18200, 18201, 7, 11, 0, 0, 18201, 18202, 5, 95, 0, 0, 18202, 18203, 7, 24, 0, 0, 18203, 18204, 7, 12, 0, 0, 18204, 18205, 7, 6, 0, 0, 18205, 18206, 7, 3, 0, 0, 18206, 18207, 7, 18, 0, 0, 18207, 18208, 5, 95, 0, 0, 18208, 18209, 7, 3, 0, 0, 18209, 18210, 7, 6, 0, 0, 18210, 18211, 7, 22, 0, 0, 18211, 18212, 7, 3, 0, 0, 18212, 18213, 7, 10, 0, 0, 18213, 18214, 7, 4, 0, 0, 18214, 18215, 7, 6, 0, 0, 18215, 2444, 1, 0, 0, 0, 18216, 18217, 7, 7, 0, 0, 18217, 18218, 7, 2, 0, 0, 18218, 18219, 5, 95, 0, 0, 18219, 18220, 7, 23, 0, 0, 18220, 18221, 7, 2, 0, 0, 18221, 18222, 7, 7, 0, 0, 18222, 18223, 7, 6, 0, 0, 18223, 18224, 7, 14, 0, 0, 18224, 18225, 7, 0, 0, 0, 18225, 18226, 7, 15, 0, 0, 18226, 2446, 1, 0, 0, 0, 18227, 18228, 7, 7, 0, 0, 18228, 18229, 7, 4, 0, 0, 18229, 18230, 7, 19, 0, 0, 18230, 18231, 5, 95, 0, 0, 18231, 18232, 7, 13, 0, 0, 18232, 18233, 7, 0, 0, 0, 18233, 18234, 7, 11, 0, 0, 18234, 18235, 7, 12, 0, 0, 18235, 18236, 7, 6, 0, 0, 18236, 2448, 1, 0, 0, 0, 18237, 18238, 7, 7, 0, 0, 18238, 18239, 7, 12, 0, 0, 18239, 18240, 7, 11, 0, 0, 18240, 18241, 7, 11, 0, 0, 18241, 18242, 7, 10, 0, 0, 18242, 18243, 7, 16, 0, 0, 18243, 2450, 1, 0, 0, 0, 18244, 18245, 7, 7, 0, 0, 18245, 18246, 7, 12, 0, 0, 18246, 18247, 7, 11, 0, 0, 18247, 18248, 7, 11, 0, 0, 18248, 2452, 1, 0, 0, 0, 18249, 18250, 7, 7, 0, 0, 18250, 18251, 7, 12, 0, 0, 18251, 18252, 7, 11, 0, 0, 18252, 18253, 7, 11, 0, 0, 18253, 18254, 7, 5, 0, 0, 18254, 2454, 1, 0, 0, 0, 18255, 18256, 7, 7, 0, 0, 18256, 18257, 7, 12, 0, 0, 18257, 18258, 7, 14, 0, 0, 18258, 18259, 7, 1, 0, 0, 18259, 18260, 7, 6, 0, 0, 18260, 18261, 7, 3, 0, 0, 18261, 2456, 1, 0, 0, 0, 18262, 18263, 7, 7, 0, 0, 18263, 18264, 7, 12, 0, 0, 18264, 18265, 7, 14, 0, 0, 18265, 18266, 7, 6, 0, 0, 18266, 18267, 7, 3, 0, 0, 18267, 18268, 7, 10, 0, 0, 18268, 18269, 7, 8, 0, 0, 18269, 2458, 1, 0, 0, 0, 18270, 18271, 7, 7, 0, 0, 18271, 18272, 7, 12, 0, 0, 18272, 18273, 7, 14, 0, 0, 18273, 18274, 5, 95, 0, 0, 18274, 18275, 7, 10, 0, 0, 18275, 18276, 7, 7, 0, 0, 18276, 18277, 7, 9, 0, 0, 18277, 18278, 7, 6, 0, 0, 18278, 18279, 7, 25, 0, 0, 18279, 18280, 5, 95, 0, 0, 18280, 18281, 7, 21, 0, 0, 18281, 18282, 7, 6, 0, 0, 18282, 18283, 7, 18, 0, 0, 18283, 18284, 7, 5, 0, 0, 18284, 2460, 1, 0, 0, 0, 18285, 18286, 7, 7, 0, 0, 18286, 18287, 7, 12, 0, 0, 18287, 18288, 7, 14, 0, 0, 18288, 18289, 7, 4, 0, 0, 18289, 18290, 7, 2, 0, 0, 18290, 18291, 7, 9, 0, 0, 18291, 18292, 7, 5, 0, 0, 18292, 18293, 7, 10, 0, 0, 18293, 18294, 7, 7, 0, 0, 18294, 18295, 7, 4, 0, 0, 18295, 18296, 7, 6, 0, 0, 18296, 18297, 7, 3, 0, 0, 18297, 18298, 7, 13, 0, 0, 18298, 18299, 7, 0, 0, 0, 18299, 18300, 7, 11, 0, 0, 18300, 2462, 1, 0, 0, 0, 18301, 18302, 7, 7, 0, 0, 18302, 18303, 7, 12, 0, 0, 18303, 18304, 7, 14, 0, 0, 18304, 18305, 7, 4, 0, 0, 18305, 18306, 7, 2, 0, 0, 18306, 18307, 7, 18, 0, 0, 18307, 18308, 7, 14, 0, 0, 18308, 18309, 7, 10, 0, 0, 18309, 18310, 7, 7, 0, 0, 18310, 18311, 7, 4, 0, 0, 18311, 18312, 7, 6, 0, 0, 18312, 18313, 7, 3, 0, 0, 18313, 18314, 7, 13, 0, 0, 18314, 18315, 7, 0, 0, 0, 18315, 18316, 7, 11, 0, 0, 18316, 2464, 1, 0, 0, 0, 18317, 18318, 7, 7, 0, 0, 18318, 18319, 7, 13, 0, 0, 18319, 18320, 7, 0, 0, 0, 18320, 18321, 7, 3, 0, 0, 18321, 18322, 7, 8, 0, 0, 18322, 18323, 7, 19, 0, 0, 18323, 18324, 7, 0, 0, 0, 18324, 18325, 7, 3, 0, 0, 18325, 18326, 5, 50, 0, 0, 18326, 2466, 1, 0, 0, 0, 18327, 18328, 7, 7, 0, 0, 18328, 18329, 7, 13, 0, 0, 18329, 18330, 7, 11, 0, 0, 18330, 18331, 5, 50, 0, 0, 18331, 2468, 1, 0, 0, 0, 18332, 18333, 7, 2, 0, 0, 18333, 18334, 7, 1, 0, 0, 18334, 18335, 7, 20, 0, 0, 18335, 18336, 7, 6, 0, 0, 18336, 18337, 7, 8, 0, 0, 18337, 18338, 7, 4, 0, 0, 18338, 18339, 5, 50, 0, 0, 18339, 18340, 7, 25, 0, 0, 18340, 18341, 7, 14, 0, 0, 18341, 18342, 7, 11, 0, 0, 18342, 2470, 1, 0, 0, 0, 18343, 18344, 7, 2, 0, 0, 18344, 18345, 7, 1, 0, 0, 18345, 18346, 7, 20, 0, 0, 18346, 18347, 7, 6, 0, 0, 18347, 18348, 7, 8, 0, 0, 18348, 18349, 7, 4, 0, 0, 18349, 2472, 1, 0, 0, 0, 18350, 18351, 7, 2, 0, 0, 18351, 18352, 7, 1, 0, 0, 18352, 18353, 7, 20, 0, 0, 18353, 18354, 5, 95, 0, 0, 18354, 18355, 7, 10, 0, 0, 18355, 18356, 7, 9, 0, 0, 18356, 2474, 1, 0, 0, 0, 18357, 18358, 7, 2, 0, 0, 18358, 18359, 7, 1, 0, 0, 18359, 18360, 7, 20, 0, 0, 18360, 18361, 7, 7, 0, 0, 18361, 18362, 7, 2, 0, 0, 18362, 2476, 1, 0, 0, 0, 18363, 18364, 7, 2, 0, 0, 18364, 18365, 7, 1, 0, 0, 18365, 18366, 7, 20, 0, 0, 18366, 18367, 7, 7, 0, 0, 18367, 18368, 7, 2, 0, 0, 18368, 18369, 5, 95, 0, 0, 18369, 18370, 7, 3, 0, 0, 18370, 18371, 7, 6, 0, 0, 18371, 18372, 7, 12, 0, 0, 18372, 18373, 7, 5, 0, 0, 18373, 18374, 7, 6, 0, 0, 18374, 2478, 1, 0, 0, 0, 18375, 18376, 7, 2, 0, 0, 18376, 18377, 7, 8, 0, 0, 18377, 18378, 7, 8, 0, 0, 18378, 18379, 7, 12, 0, 0, 18379, 18380, 7, 3, 0, 0, 18380, 18381, 7, 6, 0, 0, 18381, 18382, 7, 7, 0, 0, 18382, 18383, 7, 8, 0, 0, 18383, 18384, 7, 6, 0, 0, 18384, 18385, 7, 5, 0, 0, 18385, 2480, 1, 0, 0, 0, 18386, 18387, 7, 2, 0, 0, 18387, 18388, 7, 16, 0, 0, 18388, 18389, 7, 16, 0, 0, 18389, 18390, 7, 11, 0, 0, 18390, 18391, 7, 10, 0, 0, 18391, 18392, 7, 7, 0, 0, 18392, 18393, 7, 6, 0, 0, 18393, 2482, 1, 0, 0, 0, 18394, 18395, 7, 2, 0, 0, 18395, 18396, 7, 16, 0, 0, 18396, 18397, 7, 16, 0, 0, 18397, 2484, 1, 0, 0, 0, 18398, 18399, 7, 2, 0, 0, 18399, 18400, 7, 16, 0, 0, 18400, 18401, 7, 16, 0, 0, 18401, 18402, 7, 5, 0, 0, 18402, 18403, 7, 6, 0, 0, 18403, 18404, 7, 4, 0, 0, 18404, 2486, 1, 0, 0, 0, 18405, 18406, 7, 2, 0, 0, 18406, 18407, 7, 16, 0, 0, 18407, 2488, 1, 0, 0, 0, 18408, 18409, 7, 2, 0, 0, 18409, 18410, 7, 10, 0, 0, 18410, 18411, 7, 9, 0, 0, 18411, 18412, 7, 10, 0, 0, 18412, 18413, 7, 7, 0, 0, 18413, 18414, 7, 9, 0, 0, 18414, 18415, 7, 6, 0, 0, 18415, 18416, 7, 25, 0, 0, 18416, 2490, 1, 0, 0, 0, 18417, 18418, 7, 2, 0, 0, 18418, 18419, 7, 10, 0, 0, 18419, 18420, 7, 9, 0, 0, 18420, 2492, 1, 0, 0, 0, 18421, 18422, 7, 2, 0, 0, 18422, 18423, 7, 11, 0, 0, 18423, 18424, 7, 0, 0, 0, 18424, 18425, 7, 15, 0, 0, 18425, 2494, 1, 0, 0, 0, 18426, 18427, 7, 2, 0, 0, 18427, 18428, 7, 11, 0, 0, 18428, 18429, 7, 9, 0, 0, 18429, 2496, 1, 0, 0, 0, 18430, 18431, 7, 2, 0, 0, 18431, 18432, 7, 11, 0, 0, 18432, 18433, 7, 9, 0, 0, 18433, 18434, 5, 95, 0, 0, 18434, 18435, 7, 15, 0, 0, 18435, 18436, 7, 12, 0, 0, 18436, 18437, 7, 5, 0, 0, 18437, 18438, 7, 19, 0, 0, 18438, 18439, 5, 95, 0, 0, 18439, 18440, 7, 15, 0, 0, 18440, 18441, 7, 3, 0, 0, 18441, 18442, 7, 6, 0, 0, 18442, 18443, 7, 9, 0, 0, 18443, 2498, 1, 0, 0, 0, 18444, 18445, 7, 2, 0, 0, 18445, 18446, 7, 11, 0, 0, 18446, 18447, 7, 5, 0, 0, 18447, 2500, 1, 0, 0, 0, 18448, 18449, 7, 2, 0, 0, 18449, 18450, 7, 11, 0, 0, 18450, 18451, 7, 4, 0, 0, 18451, 18452, 7, 15, 0, 0, 18452, 2502, 1, 0, 0, 0, 18453, 18454, 7, 2, 0, 0, 18454, 18455, 7, 14, 0, 0, 18455, 18456, 7, 10, 0, 0, 18456, 18457, 7, 4, 0, 0, 18457, 2504, 1, 0, 0, 0, 18458, 18459, 7, 2, 0, 0, 18459, 18460, 7, 7, 0, 0, 18460, 18461, 7, 6, 0, 0, 18461, 2506, 1, 0, 0, 0, 18462, 18463, 7, 2, 0, 0, 18463, 18464, 7, 7, 0, 0, 18464, 18465, 7, 11, 0, 0, 18465, 18466, 7, 10, 0, 0, 18466, 18467, 7, 7, 0, 0, 18467, 18468, 7, 6, 0, 0, 18468, 2508, 1, 0, 0, 0, 18469, 18470, 7, 2, 0, 0, 18470, 18471, 7, 7, 0, 0, 18471, 18472, 7, 11, 0, 0, 18472, 18473, 7, 10, 0, 0, 18473, 18474, 7, 7, 0, 0, 18474, 18475, 7, 6, 0, 0, 18475, 18476, 7, 11, 0, 0, 18476, 18477, 7, 2, 0, 0, 18477, 18478, 7, 17, 0, 0, 18478, 2510, 1, 0, 0, 0, 18479, 18480, 7, 2, 0, 0, 18480, 18481, 7, 7, 0, 0, 18481, 18482, 7, 11, 0, 0, 18482, 18483, 7, 18, 0, 0, 18483, 2512, 1, 0, 0, 0, 18484, 18485, 7, 2, 0, 0, 18485, 18486, 7, 7, 0, 0, 18486, 2514, 1, 0, 0, 0, 18487, 18488, 7, 2, 0, 0, 18488, 18489, 7, 15, 0, 0, 18489, 18490, 7, 0, 0, 0, 18490, 18491, 7, 24, 0, 0, 18491, 18492, 7, 12, 0, 0, 18492, 18493, 7, 6, 0, 0, 18493, 2516, 1, 0, 0, 0, 18494, 18495, 7, 2, 0, 0, 18495, 18496, 7, 15, 0, 0, 18496, 18497, 7, 0, 0, 0, 18497, 18498, 7, 24, 0, 0, 18498, 18499, 7, 12, 0, 0, 18499, 18500, 7, 6, 0, 0, 18500, 18501, 5, 95, 0, 0, 18501, 18502, 7, 4, 0, 0, 18502, 18503, 7, 3, 0, 0, 18503, 18504, 7, 0, 0, 0, 18504, 18505, 7, 7, 0, 0, 18505, 18506, 7, 5, 0, 0, 18506, 18507, 7, 16, 0, 0, 18507, 18508, 7, 2, 0, 0, 18508, 18509, 7, 3, 0, 0, 18509, 18510, 7, 14, 0, 0, 18510, 2518, 1, 0, 0, 0, 18511, 18512, 7, 2, 0, 0, 18512, 18513, 7, 15, 0, 0, 18513, 18514, 7, 0, 0, 0, 18514, 18515, 7, 24, 0, 0, 18515, 18516, 7, 12, 0, 0, 18516, 18517, 7, 6, 0, 0, 18517, 18518, 5, 95, 0, 0, 18518, 18519, 7, 25, 0, 0, 18519, 18520, 7, 8, 0, 0, 18520, 18521, 7, 0, 0, 0, 18521, 18522, 7, 7, 0, 0, 18522, 18523, 7, 2, 0, 0, 18523, 18524, 7, 7, 0, 0, 18524, 18525, 7, 10, 0, 0, 18525, 18526, 7, 8, 0, 0, 18526, 18527, 7, 0, 0, 0, 18527, 18528, 7, 11, 0, 0, 18528, 2520, 1, 0, 0, 0, 18529, 18530, 7, 2, 0, 0, 18530, 18531, 7, 15, 0, 0, 18531, 18532, 7, 8, 0, 0, 18532, 18533, 7, 2, 0, 0, 18533, 18534, 7, 9, 0, 0, 18534, 18535, 7, 6, 0, 0, 18535, 2522, 1, 0, 0, 0, 18536, 18537, 7, 2, 0, 0, 18537, 18538, 7, 15, 0, 0, 18538, 18539, 7, 6, 0, 0, 18539, 18540, 7, 7, 0, 0, 18540, 2524, 1, 0, 0, 0, 18541, 18542, 7, 2, 0, 0, 18542, 18543, 7, 15, 0, 0, 18543, 18544, 7, 6, 0, 0, 18544, 18545, 7, 3, 0, 0, 18545, 18546, 7, 0, 0, 0, 18546, 18547, 7, 4, 0, 0, 18547, 18548, 7, 10, 0, 0, 18548, 18549, 7, 2, 0, 0, 18549, 18550, 7, 7, 0, 0, 18550, 18551, 7, 5, 0, 0, 18551, 2526, 1, 0, 0, 0, 18552, 18553, 7, 2, 0, 0, 18553, 18554, 7, 15, 0, 0, 18554, 18555, 7, 6, 0, 0, 18555, 18556, 7, 3, 0, 0, 18556, 18557, 7, 0, 0, 0, 18557, 18558, 7, 4, 0, 0, 18558, 18559, 7, 2, 0, 0, 18559, 18560, 7, 3, 0, 0, 18560, 2528, 1, 0, 0, 0, 18561, 18562, 7, 2, 0, 0, 18562, 18563, 7, 15, 0, 0, 18563, 18564, 7, 4, 0, 0, 18564, 18565, 5, 95, 0, 0, 18565, 18566, 7, 6, 0, 0, 18566, 18567, 7, 5, 0, 0, 18567, 18568, 7, 4, 0, 0, 18568, 18569, 7, 10, 0, 0, 18569, 18570, 7, 14, 0, 0, 18570, 18571, 7, 0, 0, 0, 18571, 18572, 7, 4, 0, 0, 18572, 18573, 7, 6, 0, 0, 18573, 2530, 1, 0, 0, 0, 18574, 18575, 7, 2, 0, 0, 18575, 18576, 7, 15, 0, 0, 18576, 18577, 7, 4, 0, 0, 18577, 18578, 7, 10, 0, 0, 18578, 18579, 7, 14, 0, 0, 18579, 18580, 7, 0, 0, 0, 18580, 18581, 7, 11, 0, 0, 18581, 2532, 1, 0, 0, 0, 18582, 18583, 7, 2, 0, 0, 18583, 18584, 7, 15, 0, 0, 18584, 18585, 7, 4, 0, 0, 18585, 18586, 7, 10, 0, 0, 18586, 18587, 7, 14, 0, 0, 18587, 18588, 7, 10, 0, 0, 18588, 18589, 7, 23, 0, 0, 18589, 18590, 7, 6, 0, 0, 18590, 2534, 1, 0, 0, 0, 18591, 18592, 7, 2, 0, 0, 18592, 18593, 7, 15, 0, 0, 18593, 18594, 7, 4, 0, 0, 18594, 18595, 7, 10, 0, 0, 18595, 18596, 7, 14, 0, 0, 18596, 18597, 7, 10, 0, 0, 18597, 18598, 7, 23, 0, 0, 18598, 18599, 7, 6, 0, 0, 18599, 18600, 7, 3, 0, 0, 18600, 18601, 5, 95, 0, 0, 18601, 18602, 7, 16, 0, 0, 18602, 18603, 7, 6, 0, 0, 18603, 18604, 7, 0, 0, 0, 18604, 18605, 7, 4, 0, 0, 18605, 18606, 7, 12, 0, 0, 18606, 18607, 7, 3, 0, 0, 18607, 18608, 7, 6, 0, 0, 18608, 18609, 7, 5, 0, 0, 18609, 18610, 5, 95, 0, 0, 18610, 18611, 7, 6, 0, 0, 18611, 18612, 7, 7, 0, 0, 18612, 18613, 7, 0, 0, 0, 18613, 18614, 7, 1, 0, 0, 18614, 18615, 7, 11, 0, 0, 18615, 18616, 7, 6, 0, 0, 18616, 2536, 1, 0, 0, 0, 18617, 18618, 7, 2, 0, 0, 18618, 18619, 7, 15, 0, 0, 18619, 18620, 7, 4, 0, 0, 18620, 18621, 7, 10, 0, 0, 18621, 18622, 7, 14, 0, 0, 18622, 18623, 7, 10, 0, 0, 18623, 18624, 7, 23, 0, 0, 18624, 18625, 7, 6, 0, 0, 18625, 18626, 7, 3, 0, 0, 18626, 18627, 5, 95, 0, 0, 18627, 18628, 7, 17, 0, 0, 18628, 18629, 7, 2, 0, 0, 18629, 18630, 7, 0, 0, 0, 18630, 18631, 7, 11, 0, 0, 18631, 2538, 1, 0, 0, 0, 18632, 18633, 7, 2, 0, 0, 18633, 18634, 7, 15, 0, 0, 18634, 18635, 7, 4, 0, 0, 18635, 18636, 7, 10, 0, 0, 18636, 18637, 7, 2, 0, 0, 18637, 18638, 7, 7, 0, 0, 18638, 2540, 1, 0, 0, 0, 18639, 18640, 7, 2, 0, 0, 18640, 18641, 7, 15, 0, 0, 18641, 18642, 7, 4, 0, 0, 18642, 18643, 7, 10, 0, 0, 18643, 18644, 7, 2, 0, 0, 18644, 18645, 7, 7, 0, 0, 18645, 18646, 7, 0, 0, 0, 18646, 18647, 7, 11, 0, 0, 18647, 18648, 7, 11, 0, 0, 18648, 18649, 7, 18, 0, 0, 18649, 2542, 1, 0, 0, 0, 18650, 18651, 7, 2, 0, 0, 18651, 18652, 7, 15, 0, 0, 18652, 18653, 7, 4, 0, 0, 18653, 18654, 5, 95, 0, 0, 18654, 18655, 7, 15, 0, 0, 18655, 18656, 7, 0, 0, 0, 18656, 18657, 7, 3, 0, 0, 18657, 18658, 7, 0, 0, 0, 18658, 18659, 7, 14, 0, 0, 18659, 2544, 1, 0, 0, 0, 18660, 18661, 7, 2, 0, 0, 18661, 18662, 7, 3, 0, 0, 18662, 18663, 7, 0, 0, 0, 18663, 18664, 5, 95, 0, 0, 18664, 18665, 7, 1, 0, 0, 18665, 18666, 7, 3, 0, 0, 18666, 18667, 7, 0, 0, 0, 18667, 18668, 7, 7, 0, 0, 18668, 18669, 7, 8, 0, 0, 18669, 18670, 7, 19, 0, 0, 18670, 2546, 1, 0, 0, 0, 18671, 18672, 7, 2, 0, 0, 18672, 18673, 7, 3, 0, 0, 18673, 18674, 7, 0, 0, 0, 18674, 18675, 5, 95, 0, 0, 18675, 18676, 7, 8, 0, 0, 18676, 18677, 7, 19, 0, 0, 18677, 18678, 7, 6, 0, 0, 18678, 18679, 7, 8, 0, 0, 18679, 18680, 7, 21, 0, 0, 18680, 18681, 5, 95, 0, 0, 18681, 18682, 7, 0, 0, 0, 18682, 18683, 7, 8, 0, 0, 18683, 18684, 7, 11, 0, 0, 18684, 2548, 1, 0, 0, 0, 18685, 18686, 7, 2, 0, 0, 18686, 18687, 7, 3, 0, 0, 18687, 18688, 7, 0, 0, 0, 18688, 18689, 5, 95, 0, 0, 18689, 18690, 7, 8, 0, 0, 18690, 18691, 7, 19, 0, 0, 18691, 18692, 7, 6, 0, 0, 18692, 18693, 7, 8, 0, 0, 18693, 18694, 7, 21, 0, 0, 18694, 18695, 5, 95, 0, 0, 18695, 18696, 7, 15, 0, 0, 18696, 18697, 7, 3, 0, 0, 18697, 18698, 7, 10, 0, 0, 18698, 18699, 7, 13, 0, 0, 18699, 18700, 7, 10, 0, 0, 18700, 18701, 7, 11, 0, 0, 18701, 18702, 7, 6, 0, 0, 18702, 18703, 7, 17, 0, 0, 18703, 18704, 7, 6, 0, 0, 18704, 2550, 1, 0, 0, 0, 18705, 18706, 7, 2, 0, 0, 18706, 18707, 7, 3, 0, 0, 18707, 18708, 7, 0, 0, 0, 18708, 18709, 5, 95, 0, 0, 18709, 18710, 7, 8, 0, 0, 18710, 18711, 7, 11, 0, 0, 18711, 18712, 7, 12, 0, 0, 18712, 18713, 7, 5, 0, 0, 18713, 18714, 7, 4, 0, 0, 18714, 18715, 7, 6, 0, 0, 18715, 18716, 7, 3, 0, 0, 18716, 18717, 7, 10, 0, 0, 18717, 18718, 7, 7, 0, 0, 18718, 18719, 7, 17, 0, 0, 18719, 2552, 1, 0, 0, 0, 18720, 18721, 7, 2, 0, 0, 18721, 18722, 7, 3, 0, 0, 18722, 18723, 7, 0, 0, 0, 18723, 18724, 7, 9, 0, 0, 18724, 18725, 7, 0, 0, 0, 18725, 18726, 7, 4, 0, 0, 18726, 18727, 7, 0, 0, 0, 18727, 2554, 1, 0, 0, 0, 18728, 18729, 7, 2, 0, 0, 18729, 18730, 7, 3, 0, 0, 18730, 18731, 7, 8, 0, 0, 18731, 2556, 1, 0, 0, 0, 18732, 18733, 7, 2, 0, 0, 18733, 18734, 7, 3, 0, 0, 18734, 18735, 7, 0, 0, 0, 18735, 18736, 7, 8, 0, 0, 18736, 18737, 7, 11, 0, 0, 18737, 18738, 7, 6, 0, 0, 18738, 18739, 5, 95, 0, 0, 18739, 18740, 7, 9, 0, 0, 18740, 18741, 7, 0, 0, 0, 18741, 18742, 7, 4, 0, 0, 18742, 18743, 7, 6, 0, 0, 18743, 2558, 1, 0, 0, 0, 18744, 18745, 7, 2, 0, 0, 18745, 18746, 7, 3, 0, 0, 18746, 18747, 7, 0, 0, 0, 18747, 18748, 7, 8, 0, 0, 18748, 18749, 7, 11, 0, 0, 18749, 18750, 7, 6, 0, 0, 18750, 18751, 5, 95, 0, 0, 18751, 18752, 7, 7, 0, 0, 18752, 18753, 7, 12, 0, 0, 18753, 18754, 7, 14, 0, 0, 18754, 18755, 7, 1, 0, 0, 18755, 18756, 7, 6, 0, 0, 18756, 18757, 7, 3, 0, 0, 18757, 2560, 1, 0, 0, 0, 18758, 18759, 7, 2, 0, 0, 18759, 18760, 7, 3, 0, 0, 18760, 18761, 7, 0, 0, 0, 18761, 18762, 7, 9, 0, 0, 18762, 18763, 7, 6, 0, 0, 18763, 18764, 7, 1, 0, 0, 18764, 18765, 7, 12, 0, 0, 18765, 18766, 7, 17, 0, 0, 18766, 2562, 1, 0, 0, 0, 18767, 18768, 7, 2, 0, 0, 18768, 18769, 7, 3, 0, 0, 18769, 18770, 7, 0, 0, 0, 18770, 18771, 5, 95, 0, 0, 18771, 18772, 7, 9, 0, 0, 18772, 18773, 7, 5, 0, 0, 18773, 18774, 7, 4, 0, 0, 18774, 18775, 5, 95, 0, 0, 18775, 18776, 7, 0, 0, 0, 18776, 18777, 7, 16, 0, 0, 18777, 18778, 7, 16, 0, 0, 18778, 18779, 7, 6, 0, 0, 18779, 18780, 7, 8, 0, 0, 18780, 18781, 7, 4, 0, 0, 18781, 18782, 7, 6, 0, 0, 18782, 18783, 7, 9, 0, 0, 18783, 2564, 1, 0, 0, 0, 18784, 18785, 7, 2, 0, 0, 18785, 18786, 7, 3, 0, 0, 18786, 18787, 7, 0, 0, 0, 18787, 18788, 5, 95, 0, 0, 18788, 18789, 7, 9, 0, 0, 18789, 18790, 7, 5, 0, 0, 18790, 18791, 7, 4, 0, 0, 18791, 18792, 5, 95, 0, 0, 18792, 18793, 7, 8, 0, 0, 18793, 18794, 7, 2, 0, 0, 18794, 18795, 7, 7, 0, 0, 18795, 18796, 7, 13, 0, 0, 18796, 18797, 7, 6, 0, 0, 18797, 18798, 7, 3, 0, 0, 18798, 18799, 7, 4, 0, 0, 18799, 2566, 1, 0, 0, 0, 18800, 18801, 7, 2, 0, 0, 18801, 18802, 7, 3, 0, 0, 18802, 18803, 7, 0, 0, 0, 18803, 18804, 5, 95, 0, 0, 18804, 18805, 7, 9, 0, 0, 18805, 18806, 7, 5, 0, 0, 18806, 18807, 7, 4, 0, 0, 18807, 18808, 5, 95, 0, 0, 18808, 18809, 7, 6, 0, 0, 18809, 18810, 7, 3, 0, 0, 18810, 18811, 7, 3, 0, 0, 18811, 18812, 7, 2, 0, 0, 18812, 18813, 7, 3, 0, 0, 18813, 2568, 1, 0, 0, 0, 18814, 18815, 7, 2, 0, 0, 18815, 18816, 7, 3, 0, 0, 18816, 18817, 7, 0, 0, 0, 18817, 18818, 5, 95, 0, 0, 18818, 18819, 7, 17, 0, 0, 18819, 18820, 7, 6, 0, 0, 18820, 18821, 7, 4, 0, 0, 18821, 18822, 5, 95, 0, 0, 18822, 18823, 7, 0, 0, 0, 18823, 18824, 7, 8, 0, 0, 18824, 18825, 7, 11, 0, 0, 18825, 18826, 7, 10, 0, 0, 18826, 18827, 7, 9, 0, 0, 18827, 18828, 7, 5, 0, 0, 18828, 2570, 1, 0, 0, 0, 18829, 18830, 7, 2, 0, 0, 18830, 18831, 7, 3, 0, 0, 18831, 18832, 7, 0, 0, 0, 18832, 18833, 5, 95, 0, 0, 18833, 18834, 7, 17, 0, 0, 18834, 18835, 7, 6, 0, 0, 18835, 18836, 7, 4, 0, 0, 18836, 18837, 5, 95, 0, 0, 18837, 18838, 7, 15, 0, 0, 18838, 18839, 7, 3, 0, 0, 18839, 18840, 7, 10, 0, 0, 18840, 18841, 7, 13, 0, 0, 18841, 18842, 7, 10, 0, 0, 18842, 18843, 7, 11, 0, 0, 18843, 18844, 7, 6, 0, 0, 18844, 18845, 7, 17, 0, 0, 18845, 18846, 7, 6, 0, 0, 18846, 18847, 7, 5, 0, 0, 18847, 2572, 1, 0, 0, 0, 18848, 18849, 7, 2, 0, 0, 18849, 18850, 7, 3, 0, 0, 18850, 18851, 7, 0, 0, 0, 18851, 18852, 5, 95, 0, 0, 18852, 18853, 7, 19, 0, 0, 18853, 18854, 7, 0, 0, 0, 18854, 18855, 7, 5, 0, 0, 18855, 18856, 7, 19, 0, 0, 18856, 2574, 1, 0, 0, 0, 18857, 18858, 7, 2, 0, 0, 18858, 18859, 7, 3, 0, 0, 18859, 18860, 7, 0, 0, 0, 18860, 18861, 5, 95, 0, 0, 18861, 18862, 7, 10, 0, 0, 18862, 18863, 7, 7, 0, 0, 18863, 18864, 7, 13, 0, 0, 18864, 18865, 7, 2, 0, 0, 18865, 18866, 7, 21, 0, 0, 18866, 18867, 7, 10, 0, 0, 18867, 18868, 7, 7, 0, 0, 18868, 18869, 7, 17, 0, 0, 18869, 18870, 5, 95, 0, 0, 18870, 18871, 7, 12, 0, 0, 18871, 18872, 7, 5, 0, 0, 18872, 18873, 7, 6, 0, 0, 18873, 18874, 7, 3, 0, 0, 18874, 18875, 7, 10, 0, 0, 18875, 18876, 7, 9, 0, 0, 18876, 2576, 1, 0, 0, 0, 18877, 18878, 7, 2, 0, 0, 18878, 18879, 7, 3, 0, 0, 18879, 18880, 7, 0, 0, 0, 18880, 18881, 5, 95, 0, 0, 18881, 18882, 7, 10, 0, 0, 18882, 18883, 7, 7, 0, 0, 18883, 18884, 7, 13, 0, 0, 18884, 18885, 7, 2, 0, 0, 18885, 18886, 7, 21, 0, 0, 18886, 18887, 7, 10, 0, 0, 18887, 18888, 7, 7, 0, 0, 18888, 18889, 7, 17, 0, 0, 18889, 18890, 5, 95, 0, 0, 18890, 18891, 7, 12, 0, 0, 18891, 18892, 7, 5, 0, 0, 18892, 18893, 7, 6, 0, 0, 18893, 18894, 7, 3, 0, 0, 18894, 2578, 1, 0, 0, 0, 18895, 18896, 7, 2, 0, 0, 18896, 18897, 7, 3, 0, 0, 18897, 18898, 7, 0, 0, 0, 18898, 18899, 5, 95, 0, 0, 18899, 18900, 7, 10, 0, 0, 18900, 18901, 7, 7, 0, 0, 18901, 18902, 7, 13, 0, 0, 18902, 18903, 7, 2, 0, 0, 18903, 18904, 7, 21, 0, 0, 18904, 18905, 7, 10, 0, 0, 18905, 18906, 7, 7, 0, 0, 18906, 18907, 7, 17, 0, 0, 18907, 18908, 5, 95, 0, 0, 18908, 18909, 7, 25, 0, 0, 18909, 18910, 7, 5, 0, 0, 18910, 18911, 5, 95, 0, 0, 18911, 18912, 7, 12, 0, 0, 18912, 18913, 7, 5, 0, 0, 18913, 18914, 7, 6, 0, 0, 18914, 18915, 7, 3, 0, 0, 18915, 18916, 5, 95, 0, 0, 18916, 18917, 7, 17, 0, 0, 18917, 18918, 7, 12, 0, 0, 18918, 18919, 7, 10, 0, 0, 18919, 18920, 7, 9, 0, 0, 18920, 2580, 1, 0, 0, 0, 18921, 18922, 7, 2, 0, 0, 18922, 18923, 7, 3, 0, 0, 18923, 18924, 7, 0, 0, 0, 18924, 18925, 5, 95, 0, 0, 18925, 18926, 7, 10, 0, 0, 18926, 18927, 7, 7, 0, 0, 18927, 18928, 7, 13, 0, 0, 18928, 18929, 7, 2, 0, 0, 18929, 18930, 7, 21, 0, 0, 18930, 18931, 7, 10, 0, 0, 18931, 18932, 7, 7, 0, 0, 18932, 18933, 7, 17, 0, 0, 18933, 18934, 5, 95, 0, 0, 18934, 18935, 7, 25, 0, 0, 18935, 18936, 7, 5, 0, 0, 18936, 18937, 5, 95, 0, 0, 18937, 18938, 7, 12, 0, 0, 18938, 18939, 7, 5, 0, 0, 18939, 18940, 7, 6, 0, 0, 18940, 18941, 7, 3, 0, 0, 18941, 2582, 1, 0, 0, 0, 18942, 18943, 7, 2, 0, 0, 18943, 18944, 7, 3, 0, 0, 18944, 18945, 7, 0, 0, 0, 18945, 18946, 5, 95, 0, 0, 18946, 18947, 7, 3, 0, 0, 18947, 18948, 7, 0, 0, 0, 18948, 18949, 7, 22, 0, 0, 18949, 18950, 7, 8, 0, 0, 18950, 18951, 7, 2, 0, 0, 18951, 18952, 7, 14, 0, 0, 18952, 18953, 7, 15, 0, 0, 18953, 18954, 7, 0, 0, 0, 18954, 18955, 7, 3, 0, 0, 18955, 18956, 7, 6, 0, 0, 18956, 2584, 1, 0, 0, 0, 18957, 18958, 7, 2, 0, 0, 18958, 18959, 7, 3, 0, 0, 18959, 18960, 7, 0, 0, 0, 18960, 18961, 5, 95, 0, 0, 18961, 18962, 7, 3, 0, 0, 18962, 18963, 7, 0, 0, 0, 18963, 18964, 7, 22, 0, 0, 18964, 18965, 7, 8, 0, 0, 18965, 18966, 7, 2, 0, 0, 18966, 18967, 7, 7, 0, 0, 18967, 18968, 7, 8, 0, 0, 18968, 18969, 7, 0, 0, 0, 18969, 18970, 7, 4, 0, 0, 18970, 2586, 1, 0, 0, 0, 18971, 18972, 7, 2, 0, 0, 18972, 18973, 7, 3, 0, 0, 18973, 18974, 7, 0, 0, 0, 18974, 18975, 5, 95, 0, 0, 18975, 18976, 7, 3, 0, 0, 18976, 18977, 7, 2, 0, 0, 18977, 18978, 7, 22, 0, 0, 18978, 18979, 7, 5, 0, 0, 18979, 18980, 7, 8, 0, 0, 18980, 18981, 7, 7, 0, 0, 18981, 2588, 1, 0, 0, 0, 18982, 18983, 7, 2, 0, 0, 18983, 18984, 7, 3, 0, 0, 18984, 18985, 7, 0, 0, 0, 18985, 18986, 5, 95, 0, 0, 18986, 18987, 7, 3, 0, 0, 18987, 18988, 7, 2, 0, 0, 18988, 18989, 7, 22, 0, 0, 18989, 18990, 7, 5, 0, 0, 18990, 18991, 7, 8, 0, 0, 18991, 18992, 7, 7, 0, 0, 18992, 18993, 5, 95, 0, 0, 18993, 18994, 7, 3, 0, 0, 18994, 18995, 7, 0, 0, 0, 18995, 18996, 7, 22, 0, 0, 18996, 2590, 1, 0, 0, 0, 18997, 18998, 7, 2, 0, 0, 18998, 18999, 7, 3, 0, 0, 18999, 19000, 7, 0, 0, 0, 19000, 19001, 5, 95, 0, 0, 19001, 19002, 7, 3, 0, 0, 19002, 19003, 7, 2, 0, 0, 19003, 19004, 7, 22, 0, 0, 19004, 19005, 7, 13, 0, 0, 19005, 19006, 7, 6, 0, 0, 19006, 19007, 7, 3, 0, 0, 19007, 19008, 7, 5, 0, 0, 19008, 19009, 7, 10, 0, 0, 19009, 19010, 7, 2, 0, 0, 19010, 19011, 7, 7, 0, 0, 19011, 2592, 1, 0, 0, 0, 19012, 19013, 7, 2, 0, 0, 19013, 19014, 7, 3, 0, 0, 19014, 19015, 7, 0, 0, 0, 19015, 19016, 5, 95, 0, 0, 19016, 19017, 7, 4, 0, 0, 19017, 19018, 7, 0, 0, 0, 19018, 19019, 7, 1, 0, 0, 19019, 19020, 7, 13, 0, 0, 19020, 19021, 7, 6, 0, 0, 19021, 19022, 7, 3, 0, 0, 19022, 19023, 7, 5, 0, 0, 19023, 19024, 7, 10, 0, 0, 19024, 19025, 7, 2, 0, 0, 19025, 19026, 7, 7, 0, 0, 19026, 2594, 1, 0, 0, 0, 19027, 19028, 7, 2, 0, 0, 19028, 19029, 7, 3, 0, 0, 19029, 19030, 7, 0, 0, 0, 19030, 19031, 5, 95, 0, 0, 19031, 19032, 7, 22, 0, 0, 19032, 19033, 7, 3, 0, 0, 19033, 19034, 7, 10, 0, 0, 19034, 19035, 7, 4, 0, 0, 19035, 19036, 7, 6, 0, 0, 19036, 19037, 5, 95, 0, 0, 19037, 19038, 7, 4, 0, 0, 19038, 19039, 7, 10, 0, 0, 19039, 19040, 7, 14, 0, 0, 19040, 19041, 7, 6, 0, 0, 19041, 2596, 1, 0, 0, 0, 19042, 19043, 7, 2, 0, 0, 19043, 19044, 7, 3, 0, 0, 19044, 19045, 7, 9, 0, 0, 19045, 19046, 7, 6, 0, 0, 19046, 19047, 7, 3, 0, 0, 19047, 19048, 7, 6, 0, 0, 19048, 19049, 7, 9, 0, 0, 19049, 2598, 1, 0, 0, 0, 19050, 19051, 7, 2, 0, 0, 19051, 19052, 7, 3, 0, 0, 19052, 19053, 7, 9, 0, 0, 19053, 19054, 7, 6, 0, 0, 19054, 19055, 7, 3, 0, 0, 19055, 19056, 7, 6, 0, 0, 19056, 19057, 7, 9, 0, 0, 19057, 19058, 5, 95, 0, 0, 19058, 19059, 7, 15, 0, 0, 19059, 19060, 7, 3, 0, 0, 19060, 19061, 7, 6, 0, 0, 19061, 19062, 7, 9, 0, 0, 19062, 19063, 7, 10, 0, 0, 19063, 19064, 7, 8, 0, 0, 19064, 19065, 7, 0, 0, 0, 19065, 19066, 7, 4, 0, 0, 19066, 19067, 7, 6, 0, 0, 19067, 19068, 7, 5, 0, 0, 19068, 2600, 1, 0, 0, 0, 19069, 19070, 7, 2, 0, 0, 19070, 19071, 7, 3, 0, 0, 19071, 19072, 7, 9, 0, 0, 19072, 19073, 7, 6, 0, 0, 19073, 19074, 7, 3, 0, 0, 19074, 2602, 1, 0, 0, 0, 19075, 19076, 7, 2, 0, 0, 19076, 19077, 7, 3, 0, 0, 19077, 19078, 7, 9, 0, 0, 19078, 19079, 7, 10, 0, 0, 19079, 19080, 7, 7, 0, 0, 19080, 19081, 7, 0, 0, 0, 19081, 19082, 7, 11, 0, 0, 19082, 19083, 7, 10, 0, 0, 19083, 19084, 7, 4, 0, 0, 19084, 19085, 7, 18, 0, 0, 19085, 2604, 1, 0, 0, 0, 19086, 19087, 7, 2, 0, 0, 19087, 19088, 7, 3, 0, 0, 19088, 19089, 5, 95, 0, 0, 19089, 19090, 7, 6, 0, 0, 19090, 19091, 7, 25, 0, 0, 19091, 19092, 7, 15, 0, 0, 19092, 19093, 7, 0, 0, 0, 19093, 19094, 7, 7, 0, 0, 19094, 19095, 7, 9, 0, 0, 19095, 2606, 1, 0, 0, 0, 19096, 19097, 7, 2, 0, 0, 19097, 19098, 7, 3, 0, 0, 19098, 19099, 7, 17, 0, 0, 19099, 19100, 7, 0, 0, 0, 19100, 19101, 7, 7, 0, 0, 19101, 19102, 7, 10, 0, 0, 19102, 19103, 7, 23, 0, 0, 19103, 19104, 7, 0, 0, 0, 19104, 19105, 7, 4, 0, 0, 19105, 19106, 7, 10, 0, 0, 19106, 19107, 7, 2, 0, 0, 19107, 19108, 7, 7, 0, 0, 19108, 2608, 1, 0, 0, 0, 19109, 19110, 7, 2, 0, 0, 19110, 19111, 7, 3, 0, 0, 19111, 2610, 1, 0, 0, 0, 19112, 19113, 7, 2, 0, 0, 19113, 19114, 7, 3, 0, 0, 19114, 19115, 5, 95, 0, 0, 19115, 19116, 7, 15, 0, 0, 19116, 19117, 7, 3, 0, 0, 19117, 19118, 7, 6, 0, 0, 19118, 19119, 7, 9, 0, 0, 19119, 19120, 7, 10, 0, 0, 19120, 19121, 7, 8, 0, 0, 19121, 19122, 7, 0, 0, 0, 19122, 19123, 7, 4, 0, 0, 19123, 19124, 7, 6, 0, 0, 19124, 19125, 7, 5, 0, 0, 19125, 2612, 1, 0, 0, 0, 19126, 19127, 7, 2, 0, 0, 19127, 19128, 7, 5, 0, 0, 19128, 19129, 7, 6, 0, 0, 19129, 19130, 7, 3, 0, 0, 19130, 19131, 7, 3, 0, 0, 19131, 19132, 7, 2, 0, 0, 19132, 19133, 7, 3, 0, 0, 19133, 2614, 1, 0, 0, 0, 19134, 19135, 7, 2, 0, 0, 19135, 19136, 7, 4, 0, 0, 19136, 19137, 7, 19, 0, 0, 19137, 19138, 7, 6, 0, 0, 19138, 19139, 7, 3, 0, 0, 19139, 2616, 1, 0, 0, 0, 19140, 19141, 7, 2, 0, 0, 19141, 19142, 7, 12, 0, 0, 19142, 19143, 7, 4, 0, 0, 19143, 19144, 7, 6, 0, 0, 19144, 19145, 7, 3, 0, 0, 19145, 19146, 5, 95, 0, 0, 19146, 19147, 7, 20, 0, 0, 19147, 19148, 7, 2, 0, 0, 19148, 19149, 7, 10, 0, 0, 19149, 19150, 7, 7, 0, 0, 19150, 19151, 5, 95, 0, 0, 19151, 19152, 7, 4, 0, 0, 19152, 19153, 7, 2, 0, 0, 19153, 19154, 5, 95, 0, 0, 19154, 19155, 7, 0, 0, 0, 19155, 19156, 7, 7, 0, 0, 19156, 19157, 7, 4, 0, 0, 19157, 19158, 7, 10, 0, 0, 19158, 2618, 1, 0, 0, 0, 19159, 19160, 7, 2, 0, 0, 19160, 19161, 7, 12, 0, 0, 19161, 19162, 7, 4, 0, 0, 19162, 19163, 7, 6, 0, 0, 19163, 19164, 7, 3, 0, 0, 19164, 19165, 5, 95, 0, 0, 19165, 19166, 7, 20, 0, 0, 19166, 19167, 7, 2, 0, 0, 19167, 19168, 7, 10, 0, 0, 19168, 19169, 7, 7, 0, 0, 19169, 19170, 5, 95, 0, 0, 19170, 19171, 7, 4, 0, 0, 19171, 19172, 7, 2, 0, 0, 19172, 19173, 5, 95, 0, 0, 19173, 19174, 7, 10, 0, 0, 19174, 19175, 7, 7, 0, 0, 19175, 19176, 7, 7, 0, 0, 19176, 19177, 7, 6, 0, 0, 19177, 19178, 7, 3, 0, 0, 19178, 2620, 1, 0, 0, 0, 19179, 19180, 7, 2, 0, 0, 19180, 19181, 7, 12, 0, 0, 19181, 19182, 7, 4, 0, 0, 19182, 19183, 7, 6, 0, 0, 19183, 19184, 7, 3, 0, 0, 19184, 2622, 1, 0, 0, 0, 19185, 19186, 7, 2, 0, 0, 19186, 19187, 7, 12, 0, 0, 19187, 19188, 7, 4, 0, 0, 19188, 19189, 7, 11, 0, 0, 19189, 19190, 7, 10, 0, 0, 19190, 19191, 7, 7, 0, 0, 19191, 19192, 7, 6, 0, 0, 19192, 19193, 5, 95, 0, 0, 19193, 19194, 7, 11, 0, 0, 19194, 19195, 7, 6, 0, 0, 19195, 19196, 7, 0, 0, 0, 19196, 19197, 7, 16, 0, 0, 19197, 2624, 1, 0, 0, 0, 19198, 19199, 7, 2, 0, 0, 19199, 19200, 7, 12, 0, 0, 19200, 19201, 7, 4, 0, 0, 19201, 19202, 7, 11, 0, 0, 19202, 19203, 7, 10, 0, 0, 19203, 19204, 7, 7, 0, 0, 19204, 19205, 7, 6, 0, 0, 19205, 2626, 1, 0, 0, 0, 19206, 19207, 7, 2, 0, 0, 19207, 19208, 7, 12, 0, 0, 19208, 19209, 7, 4, 0, 0, 19209, 19210, 7, 15, 0, 0, 19210, 19211, 7, 12, 0, 0, 19211, 19212, 7, 4, 0, 0, 19212, 19213, 7, 16, 0, 0, 19213, 19214, 7, 2, 0, 0, 19214, 19215, 7, 3, 0, 0, 19215, 19216, 7, 14, 0, 0, 19216, 19217, 7, 0, 0, 0, 19217, 19218, 7, 4, 0, 0, 19218, 2628, 1, 0, 0, 0, 19219, 19220, 7, 2, 0, 0, 19220, 19221, 7, 12, 0, 0, 19221, 19222, 7, 4, 0, 0, 19222, 19223, 5, 95, 0, 0, 19223, 19224, 7, 2, 0, 0, 19224, 19225, 7, 16, 0, 0, 19225, 19226, 5, 95, 0, 0, 19226, 19227, 7, 11, 0, 0, 19227, 19228, 7, 10, 0, 0, 19228, 19229, 7, 7, 0, 0, 19229, 19230, 7, 6, 0, 0, 19230, 2630, 1, 0, 0, 0, 19231, 19232, 7, 2, 0, 0, 19232, 19233, 7, 12, 0, 0, 19233, 19234, 7, 4, 0, 0, 19234, 2632, 1, 0, 0, 0, 19235, 19236, 7, 2, 0, 0, 19236, 19237, 7, 13, 0, 0, 19237, 19238, 7, 6, 0, 0, 19238, 19239, 7, 3, 0, 0, 19239, 19240, 7, 16, 0, 0, 19240, 19241, 7, 11, 0, 0, 19241, 19242, 7, 2, 0, 0, 19242, 19243, 7, 22, 0, 0, 19243, 19244, 5, 95, 0, 0, 19244, 19245, 7, 7, 0, 0, 19245, 19246, 7, 2, 0, 0, 19246, 19247, 7, 14, 0, 0, 19247, 19248, 7, 2, 0, 0, 19248, 19249, 7, 13, 0, 0, 19249, 19250, 7, 6, 0, 0, 19250, 2634, 1, 0, 0, 0, 19251, 19252, 7, 2, 0, 0, 19252, 19253, 7, 13, 0, 0, 19253, 19254, 7, 6, 0, 0, 19254, 19255, 7, 3, 0, 0, 19255, 19256, 7, 16, 0, 0, 19256, 19257, 7, 11, 0, 0, 19257, 19258, 7, 2, 0, 0, 19258, 19259, 7, 22, 0, 0, 19259, 2636, 1, 0, 0, 0, 19260, 19261, 7, 2, 0, 0, 19261, 19262, 7, 13, 0, 0, 19262, 19263, 7, 6, 0, 0, 19263, 19264, 7, 3, 0, 0, 19264, 19265, 7, 11, 0, 0, 19265, 19266, 7, 0, 0, 0, 19266, 19267, 7, 15, 0, 0, 19267, 19268, 7, 5, 0, 0, 19268, 2638, 1, 0, 0, 0, 19269, 19270, 7, 2, 0, 0, 19270, 19271, 7, 13, 0, 0, 19271, 19272, 7, 6, 0, 0, 19272, 19273, 7, 3, 0, 0, 19273, 2640, 1, 0, 0, 0, 19274, 19275, 7, 2, 0, 0, 19275, 19276, 7, 13, 0, 0, 19276, 19277, 7, 6, 0, 0, 19277, 19278, 7, 3, 0, 0, 19278, 19279, 7, 3, 0, 0, 19279, 19280, 7, 10, 0, 0, 19280, 19281, 7, 9, 0, 0, 19281, 19282, 7, 6, 0, 0, 19282, 2642, 1, 0, 0, 0, 19283, 19284, 7, 2, 0, 0, 19284, 19285, 7, 13, 0, 0, 19285, 19286, 7, 6, 0, 0, 19286, 19287, 7, 3, 0, 0, 19287, 19288, 7, 3, 0, 0, 19288, 19289, 7, 10, 0, 0, 19289, 19290, 7, 9, 0, 0, 19290, 19291, 7, 10, 0, 0, 19291, 19292, 7, 7, 0, 0, 19292, 19293, 7, 17, 0, 0, 19293, 2644, 1, 0, 0, 0, 19294, 19295, 7, 2, 0, 0, 19295, 19296, 7, 22, 0, 0, 19296, 19297, 7, 7, 0, 0, 19297, 19298, 7, 6, 0, 0, 19298, 19299, 7, 3, 0, 0, 19299, 2646, 1, 0, 0, 0, 19300, 19301, 7, 2, 0, 0, 19301, 19302, 7, 22, 0, 0, 19302, 19303, 7, 7, 0, 0, 19303, 19304, 7, 6, 0, 0, 19304, 19305, 7, 3, 0, 0, 19305, 19306, 7, 5, 0, 0, 19306, 19307, 7, 19, 0, 0, 19307, 19308, 7, 10, 0, 0, 19308, 19309, 7, 15, 0, 0, 19309, 2648, 1, 0, 0, 0, 19310, 19311, 7, 2, 0, 0, 19311, 19312, 7, 22, 0, 0, 19312, 19313, 7, 7, 0, 0, 19313, 2650, 1, 0, 0, 0, 19314, 19315, 7, 15, 0, 0, 19315, 2652, 1, 0, 0, 0, 19316, 19317, 7, 15, 0, 0, 19317, 19318, 7, 0, 0, 0, 19318, 19319, 7, 8, 0, 0, 19319, 19320, 7, 21, 0, 0, 19320, 19321, 7, 0, 0, 0, 19321, 19322, 7, 17, 0, 0, 19322, 19323, 7, 6, 0, 0, 19323, 2654, 1, 0, 0, 0, 19324, 19325, 7, 15, 0, 0, 19325, 19326, 7, 0, 0, 0, 19326, 19327, 7, 8, 0, 0, 19327, 19328, 7, 21, 0, 0, 19328, 19329, 7, 0, 0, 0, 19329, 19330, 7, 17, 0, 0, 19330, 19331, 7, 6, 0, 0, 19331, 19332, 7, 5, 0, 0, 19332, 2656, 1, 0, 0, 0, 19333, 19334, 7, 15, 0, 0, 19334, 19335, 7, 0, 0, 0, 19335, 19336, 7, 3, 0, 0, 19336, 19337, 7, 0, 0, 0, 19337, 19338, 7, 11, 0, 0, 19338, 19339, 7, 11, 0, 0, 19339, 19340, 7, 6, 0, 0, 19340, 19341, 7, 11, 0, 0, 19341, 19342, 5, 95, 0, 0, 19342, 19343, 7, 6, 0, 0, 19343, 19344, 7, 7, 0, 0, 19344, 19345, 7, 0, 0, 0, 19345, 19346, 7, 1, 0, 0, 19346, 19347, 7, 11, 0, 0, 19347, 19348, 7, 6, 0, 0, 19348, 2658, 1, 0, 0, 0, 19349, 19350, 7, 15, 0, 0, 19350, 19351, 7, 0, 0, 0, 19351, 19352, 7, 3, 0, 0, 19352, 19353, 7, 0, 0, 0, 19353, 19354, 7, 11, 0, 0, 19354, 19355, 7, 11, 0, 0, 19355, 19356, 7, 6, 0, 0, 19356, 19357, 7, 11, 0, 0, 19357, 19358, 5, 95, 0, 0, 19358, 19359, 7, 10, 0, 0, 19359, 19360, 7, 7, 0, 0, 19360, 19361, 7, 9, 0, 0, 19361, 19362, 7, 6, 0, 0, 19362, 19363, 7, 25, 0, 0, 19363, 2660, 1, 0, 0, 0, 19364, 19365, 7, 15, 0, 0, 19365, 19366, 7, 0, 0, 0, 19366, 19367, 7, 3, 0, 0, 19367, 19368, 7, 0, 0, 0, 19368, 19369, 7, 11, 0, 0, 19369, 19370, 7, 11, 0, 0, 19370, 19371, 7, 6, 0, 0, 19371, 19372, 7, 11, 0, 0, 19372, 2662, 1, 0, 0, 0, 19373, 19374, 7, 15, 0, 0, 19374, 19375, 7, 0, 0, 0, 19375, 19376, 7, 3, 0, 0, 19376, 19377, 7, 0, 0, 0, 19377, 19378, 7, 14, 0, 0, 19378, 19379, 7, 6, 0, 0, 19379, 19380, 7, 4, 0, 0, 19380, 19381, 7, 6, 0, 0, 19381, 19382, 7, 3, 0, 0, 19382, 19383, 7, 16, 0, 0, 19383, 19384, 7, 10, 0, 0, 19384, 19385, 7, 11, 0, 0, 19385, 19386, 7, 6, 0, 0, 19386, 2664, 1, 0, 0, 0, 19387, 19388, 7, 15, 0, 0, 19388, 19389, 7, 0, 0, 0, 19389, 19390, 7, 3, 0, 0, 19390, 19391, 7, 0, 0, 0, 19391, 19392, 7, 14, 0, 0, 19392, 19393, 7, 6, 0, 0, 19393, 19394, 7, 4, 0, 0, 19394, 19395, 7, 6, 0, 0, 19395, 19396, 7, 3, 0, 0, 19396, 19397, 7, 5, 0, 0, 19397, 2666, 1, 0, 0, 0, 19398, 19399, 7, 15, 0, 0, 19399, 19400, 7, 0, 0, 0, 19400, 19401, 7, 3, 0, 0, 19401, 19402, 7, 0, 0, 0, 19402, 19403, 7, 14, 0, 0, 19403, 2668, 1, 0, 0, 0, 19404, 19405, 7, 15, 0, 0, 19405, 19406, 7, 0, 0, 0, 19406, 19407, 7, 3, 0, 0, 19407, 19408, 7, 6, 0, 0, 19408, 19409, 7, 7, 0, 0, 19409, 19410, 7, 4, 0, 0, 19410, 2670, 1, 0, 0, 0, 19411, 19412, 7, 15, 0, 0, 19412, 19413, 7, 0, 0, 0, 19413, 19414, 7, 3, 0, 0, 19414, 19415, 7, 6, 0, 0, 19415, 19416, 7, 7, 0, 0, 19416, 19417, 7, 4, 0, 0, 19417, 19418, 5, 95, 0, 0, 19418, 19419, 7, 11, 0, 0, 19419, 19420, 7, 6, 0, 0, 19420, 19421, 7, 13, 0, 0, 19421, 19422, 7, 6, 0, 0, 19422, 19423, 7, 11, 0, 0, 19423, 19424, 5, 95, 0, 0, 19424, 19425, 7, 7, 0, 0, 19425, 19426, 7, 0, 0, 0, 19426, 19427, 7, 14, 0, 0, 19427, 19428, 7, 6, 0, 0, 19428, 2672, 1, 0, 0, 0, 19429, 19430, 7, 15, 0, 0, 19430, 19431, 7, 0, 0, 0, 19431, 19432, 7, 3, 0, 0, 19432, 19433, 7, 6, 0, 0, 19433, 19434, 7, 7, 0, 0, 19434, 19435, 7, 4, 0, 0, 19435, 19436, 5, 95, 0, 0, 19436, 19437, 7, 12, 0, 0, 19437, 19438, 7, 7, 0, 0, 19438, 19439, 7, 10, 0, 0, 19439, 19440, 7, 24, 0, 0, 19440, 19441, 7, 12, 0, 0, 19441, 19442, 7, 6, 0, 0, 19442, 19443, 5, 95, 0, 0, 19443, 19444, 7, 7, 0, 0, 19444, 19445, 7, 0, 0, 0, 19445, 19446, 7, 14, 0, 0, 19446, 19447, 7, 6, 0, 0, 19447, 2674, 1, 0, 0, 0, 19448, 19449, 7, 15, 0, 0, 19449, 19450, 7, 0, 0, 0, 19450, 19451, 7, 3, 0, 0, 19451, 19452, 7, 10, 0, 0, 19452, 19453, 7, 4, 0, 0, 19453, 19454, 7, 18, 0, 0, 19454, 2676, 1, 0, 0, 0, 19455, 19456, 7, 15, 0, 0, 19456, 19457, 7, 0, 0, 0, 19457, 19458, 7, 3, 0, 0, 19458, 19459, 7, 24, 0, 0, 19459, 19460, 7, 12, 0, 0, 19460, 19461, 7, 6, 0, 0, 19461, 19462, 7, 4, 0, 0, 19462, 2678, 1, 0, 0, 0, 19463, 19464, 7, 15, 0, 0, 19464, 19465, 7, 0, 0, 0, 19465, 19466, 7, 3, 0, 0, 19466, 19467, 7, 4, 0, 0, 19467, 19468, 7, 10, 0, 0, 19468, 19469, 7, 0, 0, 0, 19469, 19470, 7, 11, 0, 0, 19470, 19471, 5, 95, 0, 0, 19471, 19472, 7, 20, 0, 0, 19472, 19473, 7, 2, 0, 0, 19473, 19474, 7, 10, 0, 0, 19474, 19475, 7, 7, 0, 0, 19475, 2680, 1, 0, 0, 0, 19476, 19477, 7, 15, 0, 0, 19477, 19478, 7, 0, 0, 0, 19478, 19479, 7, 3, 0, 0, 19479, 19480, 7, 4, 0, 0, 19480, 19481, 7, 10, 0, 0, 19481, 19482, 7, 0, 0, 0, 19482, 19483, 7, 11, 0, 0, 19483, 19484, 7, 11, 0, 0, 19484, 19485, 7, 18, 0, 0, 19485, 2682, 1, 0, 0, 0, 19486, 19487, 7, 15, 0, 0, 19487, 19488, 7, 0, 0, 0, 19488, 19489, 7, 3, 0, 0, 19489, 19490, 7, 4, 0, 0, 19490, 19491, 7, 10, 0, 0, 19491, 19492, 7, 0, 0, 0, 19492, 19493, 7, 11, 0, 0, 19493, 2684, 1, 0, 0, 0, 19494, 19495, 7, 15, 0, 0, 19495, 19496, 7, 0, 0, 0, 19496, 19497, 7, 3, 0, 0, 19497, 19498, 7, 4, 0, 0, 19498, 19499, 7, 10, 0, 0, 19499, 19500, 7, 0, 0, 0, 19500, 19501, 7, 11, 0, 0, 19501, 19502, 5, 95, 0, 0, 19502, 19503, 7, 3, 0, 0, 19503, 19504, 7, 2, 0, 0, 19504, 19505, 7, 11, 0, 0, 19505, 19506, 7, 11, 0, 0, 19506, 19507, 7, 12, 0, 0, 19507, 19508, 7, 15, 0, 0, 19508, 19509, 5, 95, 0, 0, 19509, 19510, 7, 15, 0, 0, 19510, 19511, 7, 12, 0, 0, 19511, 19512, 7, 5, 0, 0, 19512, 19513, 7, 19, 0, 0, 19513, 19514, 7, 9, 0, 0, 19514, 19515, 7, 2, 0, 0, 19515, 19516, 7, 22, 0, 0, 19516, 19517, 7, 7, 0, 0, 19517, 2686, 1, 0, 0, 0, 19518, 19519, 7, 15, 0, 0, 19519, 19520, 7, 0, 0, 0, 19520, 19521, 7, 3, 0, 0, 19521, 19522, 7, 4, 0, 0, 19522, 19523, 7, 10, 0, 0, 19523, 19524, 7, 4, 0, 0, 19524, 19525, 7, 10, 0, 0, 19525, 19526, 7, 2, 0, 0, 19526, 19527, 7, 7, 0, 0, 19527, 19528, 5, 95, 0, 0, 19528, 19529, 7, 19, 0, 0, 19529, 19530, 7, 0, 0, 0, 19530, 19531, 7, 5, 0, 0, 19531, 19532, 7, 19, 0, 0, 19532, 2688, 1, 0, 0, 0, 19533, 19534, 7, 15, 0, 0, 19534, 19535, 7, 0, 0, 0, 19535, 19536, 7, 3, 0, 0, 19536, 19537, 7, 4, 0, 0, 19537, 19538, 7, 10, 0, 0, 19538, 19539, 7, 4, 0, 0, 19539, 19540, 7, 10, 0, 0, 19540, 19541, 7, 2, 0, 0, 19541, 19542, 7, 7, 0, 0, 19542, 19543, 5, 95, 0, 0, 19543, 19544, 7, 11, 0, 0, 19544, 19545, 7, 10, 0, 0, 19545, 19546, 7, 5, 0, 0, 19546, 19547, 7, 4, 0, 0, 19547, 2690, 1, 0, 0, 0, 19548, 19549, 7, 15, 0, 0, 19549, 19550, 7, 0, 0, 0, 19550, 19551, 7, 3, 0, 0, 19551, 19552, 7, 4, 0, 0, 19552, 19553, 7, 10, 0, 0, 19553, 19554, 7, 4, 0, 0, 19554, 19555, 7, 10, 0, 0, 19555, 19556, 7, 2, 0, 0, 19556, 19557, 7, 7, 0, 0, 19557, 2692, 1, 0, 0, 0, 19558, 19559, 7, 15, 0, 0, 19559, 19560, 7, 0, 0, 0, 19560, 19561, 7, 3, 0, 0, 19561, 19562, 7, 4, 0, 0, 19562, 19563, 7, 10, 0, 0, 19563, 19564, 7, 4, 0, 0, 19564, 19565, 7, 10, 0, 0, 19565, 19566, 7, 2, 0, 0, 19566, 19567, 7, 7, 0, 0, 19567, 19568, 5, 95, 0, 0, 19568, 19569, 7, 3, 0, 0, 19569, 19570, 7, 0, 0, 0, 19570, 19571, 7, 7, 0, 0, 19571, 19572, 7, 17, 0, 0, 19572, 19573, 7, 6, 0, 0, 19573, 2694, 1, 0, 0, 0, 19574, 19575, 7, 15, 0, 0, 19575, 19576, 7, 0, 0, 0, 19576, 19577, 7, 3, 0, 0, 19577, 19578, 7, 4, 0, 0, 19578, 19579, 7, 10, 0, 0, 19579, 19580, 7, 4, 0, 0, 19580, 19581, 7, 10, 0, 0, 19581, 19582, 7, 2, 0, 0, 19582, 19583, 7, 7, 0, 0, 19583, 19584, 7, 5, 0, 0, 19584, 2696, 1, 0, 0, 0, 19585, 19586, 7, 15, 0, 0, 19586, 19587, 7, 0, 0, 0, 19587, 19588, 7, 3, 0, 0, 19588, 19589, 7, 4, 0, 0, 19589, 19590, 5, 36, 0, 0, 19590, 19591, 7, 7, 0, 0, 19591, 19592, 7, 12, 0, 0, 19592, 19593, 7, 14, 0, 0, 19593, 19594, 5, 36, 0, 0, 19594, 19595, 7, 10, 0, 0, 19595, 19596, 7, 7, 0, 0, 19596, 19597, 7, 5, 0, 0, 19597, 19598, 7, 4, 0, 0, 19598, 2698, 1, 0, 0, 0, 19599, 19600, 7, 15, 0, 0, 19600, 19601, 7, 0, 0, 0, 19601, 19602, 7, 5, 0, 0, 19602, 19603, 7, 5, 0, 0, 19603, 19604, 7, 10, 0, 0, 19604, 19605, 7, 7, 0, 0, 19605, 19606, 7, 17, 0, 0, 19606, 2700, 1, 0, 0, 0, 19607, 19608, 7, 15, 0, 0, 19608, 19609, 7, 0, 0, 0, 19609, 19610, 7, 5, 0, 0, 19610, 19611, 7, 5, 0, 0, 19611, 19612, 7, 22, 0, 0, 19612, 19613, 7, 2, 0, 0, 19613, 19614, 7, 3, 0, 0, 19614, 19615, 7, 9, 0, 0, 19615, 19616, 5, 95, 0, 0, 19616, 19617, 7, 17, 0, 0, 19617, 19618, 7, 3, 0, 0, 19618, 19619, 7, 0, 0, 0, 19619, 19620, 7, 8, 0, 0, 19620, 19621, 7, 6, 0, 0, 19621, 19622, 5, 95, 0, 0, 19622, 19623, 7, 4, 0, 0, 19623, 19624, 7, 10, 0, 0, 19624, 19625, 7, 14, 0, 0, 19625, 19626, 7, 6, 0, 0, 19626, 2702, 1, 0, 0, 0, 19627, 19628, 7, 15, 0, 0, 19628, 19629, 7, 0, 0, 0, 19629, 19630, 7, 5, 0, 0, 19630, 19631, 7, 5, 0, 0, 19631, 19632, 7, 22, 0, 0, 19632, 19633, 7, 2, 0, 0, 19633, 19634, 7, 3, 0, 0, 19634, 19635, 7, 9, 0, 0, 19635, 19636, 5, 95, 0, 0, 19636, 19637, 7, 11, 0, 0, 19637, 19638, 7, 10, 0, 0, 19638, 19639, 7, 16, 0, 0, 19639, 19640, 7, 6, 0, 0, 19640, 19641, 5, 95, 0, 0, 19641, 19642, 7, 4, 0, 0, 19642, 19643, 7, 10, 0, 0, 19643, 19644, 7, 14, 0, 0, 19644, 19645, 7, 6, 0, 0, 19645, 2704, 1, 0, 0, 0, 19646, 19647, 7, 15, 0, 0, 19647, 19648, 7, 0, 0, 0, 19648, 19649, 7, 5, 0, 0, 19649, 19650, 7, 5, 0, 0, 19650, 19651, 7, 22, 0, 0, 19651, 19652, 7, 2, 0, 0, 19652, 19653, 7, 3, 0, 0, 19653, 19654, 7, 9, 0, 0, 19654, 19655, 5, 95, 0, 0, 19655, 19656, 7, 11, 0, 0, 19656, 19657, 7, 2, 0, 0, 19657, 19658, 7, 8, 0, 0, 19658, 19659, 7, 21, 0, 0, 19659, 19660, 5, 95, 0, 0, 19660, 19661, 7, 4, 0, 0, 19661, 19662, 7, 10, 0, 0, 19662, 19663, 7, 14, 0, 0, 19663, 19664, 7, 6, 0, 0, 19664, 2706, 1, 0, 0, 0, 19665, 19666, 7, 15, 0, 0, 19666, 19667, 7, 0, 0, 0, 19667, 19668, 7, 5, 0, 0, 19668, 19669, 7, 5, 0, 0, 19669, 19670, 7, 22, 0, 0, 19670, 19671, 7, 2, 0, 0, 19671, 19672, 7, 3, 0, 0, 19672, 19673, 7, 9, 0, 0, 19673, 2708, 1, 0, 0, 0, 19674, 19675, 7, 15, 0, 0, 19675, 19676, 7, 0, 0, 0, 19676, 19677, 7, 5, 0, 0, 19677, 19678, 7, 5, 0, 0, 19678, 19679, 7, 22, 0, 0, 19679, 19680, 7, 2, 0, 0, 19680, 19681, 7, 3, 0, 0, 19681, 19682, 7, 9, 0, 0, 19682, 19683, 5, 95, 0, 0, 19683, 19684, 7, 3, 0, 0, 19684, 19685, 7, 6, 0, 0, 19685, 19686, 7, 12, 0, 0, 19686, 19687, 7, 5, 0, 0, 19687, 19688, 7, 6, 0, 0, 19688, 19689, 5, 95, 0, 0, 19689, 19690, 7, 14, 0, 0, 19690, 19691, 7, 0, 0, 0, 19691, 19692, 7, 25, 0, 0, 19692, 2710, 1, 0, 0, 0, 19693, 19694, 7, 15, 0, 0, 19694, 19695, 7, 0, 0, 0, 19695, 19696, 7, 5, 0, 0, 19696, 19697, 7, 5, 0, 0, 19697, 19698, 7, 22, 0, 0, 19698, 19699, 7, 2, 0, 0, 19699, 19700, 7, 3, 0, 0, 19700, 19701, 7, 9, 0, 0, 19701, 19702, 5, 95, 0, 0, 19702, 19703, 7, 3, 0, 0, 19703, 19704, 7, 6, 0, 0, 19704, 19705, 7, 12, 0, 0, 19705, 19706, 7, 5, 0, 0, 19706, 19707, 7, 6, 0, 0, 19707, 19708, 5, 95, 0, 0, 19708, 19709, 7, 4, 0, 0, 19709, 19710, 7, 10, 0, 0, 19710, 19711, 7, 14, 0, 0, 19711, 19712, 7, 6, 0, 0, 19712, 2712, 1, 0, 0, 0, 19713, 19714, 7, 15, 0, 0, 19714, 19715, 7, 0, 0, 0, 19715, 19716, 7, 5, 0, 0, 19716, 19717, 7, 5, 0, 0, 19717, 19718, 7, 22, 0, 0, 19718, 19719, 7, 2, 0, 0, 19719, 19720, 7, 3, 0, 0, 19720, 19721, 7, 9, 0, 0, 19721, 19722, 5, 95, 0, 0, 19722, 19723, 7, 3, 0, 0, 19723, 19724, 7, 2, 0, 0, 19724, 19725, 7, 11, 0, 0, 19725, 19726, 7, 11, 0, 0, 19726, 19727, 7, 2, 0, 0, 19727, 19728, 7, 13, 0, 0, 19728, 19729, 7, 6, 0, 0, 19729, 19730, 7, 3, 0, 0, 19730, 19731, 5, 95, 0, 0, 19731, 19732, 7, 4, 0, 0, 19732, 19733, 7, 10, 0, 0, 19733, 19734, 7, 14, 0, 0, 19734, 19735, 7, 6, 0, 0, 19735, 2714, 1, 0, 0, 0, 19736, 19737, 7, 15, 0, 0, 19737, 19738, 7, 0, 0, 0, 19738, 19739, 7, 5, 0, 0, 19739, 19740, 7, 5, 0, 0, 19740, 19741, 7, 22, 0, 0, 19741, 19742, 7, 2, 0, 0, 19742, 19743, 7, 3, 0, 0, 19743, 19744, 7, 9, 0, 0, 19744, 19745, 5, 95, 0, 0, 19745, 19746, 7, 13, 0, 0, 19746, 19747, 7, 6, 0, 0, 19747, 19748, 7, 3, 0, 0, 19748, 19749, 7, 10, 0, 0, 19749, 19750, 7, 16, 0, 0, 19750, 19751, 7, 18, 0, 0, 19751, 19752, 5, 95, 0, 0, 19752, 19753, 7, 16, 0, 0, 19753, 19754, 7, 12, 0, 0, 19754, 19755, 7, 7, 0, 0, 19755, 19756, 7, 8, 0, 0, 19756, 19757, 7, 4, 0, 0, 19757, 19758, 7, 10, 0, 0, 19758, 19759, 7, 2, 0, 0, 19759, 19760, 7, 7, 0, 0, 19760, 2716, 1, 0, 0, 0, 19761, 19762, 7, 15, 0, 0, 19762, 19763, 7, 0, 0, 0, 19763, 19764, 7, 5, 0, 0, 19764, 19765, 7, 4, 0, 0, 19765, 2718, 1, 0, 0, 0, 19766, 19767, 7, 15, 0, 0, 19767, 19768, 7, 0, 0, 0, 19768, 19769, 7, 4, 0, 0, 19769, 19770, 7, 8, 0, 0, 19770, 19771, 7, 19, 0, 0, 19771, 2720, 1, 0, 0, 0, 19772, 19773, 7, 15, 0, 0, 19773, 19774, 7, 0, 0, 0, 19774, 19775, 7, 4, 0, 0, 19775, 19776, 7, 19, 0, 0, 19776, 2722, 1, 0, 0, 0, 19777, 19778, 7, 15, 0, 0, 19778, 19779, 7, 0, 0, 0, 19779, 19780, 7, 4, 0, 0, 19780, 19781, 7, 19, 0, 0, 19781, 19782, 5, 95, 0, 0, 19782, 19783, 7, 15, 0, 0, 19783, 19784, 7, 3, 0, 0, 19784, 19785, 7, 6, 0, 0, 19785, 19786, 7, 16, 0, 0, 19786, 19787, 7, 10, 0, 0, 19787, 19788, 7, 25, 0, 0, 19788, 2724, 1, 0, 0, 0, 19789, 19790, 7, 15, 0, 0, 19790, 19791, 7, 0, 0, 0, 19791, 19792, 7, 4, 0, 0, 19792, 19793, 7, 19, 0, 0, 19793, 19794, 7, 5, 0, 0, 19794, 2726, 1, 0, 0, 0, 19795, 19796, 7, 15, 0, 0, 19796, 19797, 7, 0, 0, 0, 19797, 19798, 7, 4, 0, 0, 19798, 19799, 7, 4, 0, 0, 19799, 19800, 7, 6, 0, 0, 19800, 19801, 7, 3, 0, 0, 19801, 19802, 7, 7, 0, 0, 19802, 2728, 1, 0, 0, 0, 19803, 19804, 7, 15, 0, 0, 19804, 19805, 7, 1, 0, 0, 19805, 19806, 7, 11, 0, 0, 19806, 19807, 5, 95, 0, 0, 19807, 19808, 7, 19, 0, 0, 19808, 19809, 7, 5, 0, 0, 19809, 19810, 5, 95, 0, 0, 19810, 19811, 7, 1, 0, 0, 19811, 19812, 7, 6, 0, 0, 19812, 19813, 7, 17, 0, 0, 19813, 19814, 7, 10, 0, 0, 19814, 19815, 7, 7, 0, 0, 19815, 2730, 1, 0, 0, 0, 19816, 19817, 7, 15, 0, 0, 19817, 19818, 7, 1, 0, 0, 19818, 19819, 7, 11, 0, 0, 19819, 19820, 5, 95, 0, 0, 19820, 19821, 7, 19, 0, 0, 19821, 19822, 7, 5, 0, 0, 19822, 19823, 5, 95, 0, 0, 19823, 19824, 7, 6, 0, 0, 19824, 19825, 7, 7, 0, 0, 19825, 19826, 7, 9, 0, 0, 19826, 2732, 1, 0, 0, 0, 19827, 19828, 7, 15, 0, 0, 19828, 19829, 7, 8, 0, 0, 19829, 19830, 7, 4, 0, 0, 19830, 19831, 7, 16, 0, 0, 19831, 19832, 7, 3, 0, 0, 19832, 19833, 7, 6, 0, 0, 19833, 19834, 7, 6, 0, 0, 19834, 2734, 1, 0, 0, 0, 19835, 19836, 7, 15, 0, 0, 19836, 19837, 7, 8, 0, 0, 19837, 19838, 7, 4, 0, 0, 19838, 19839, 7, 10, 0, 0, 19839, 19840, 7, 7, 0, 0, 19840, 19841, 7, 8, 0, 0, 19841, 19842, 7, 3, 0, 0, 19842, 19843, 7, 6, 0, 0, 19843, 19844, 7, 0, 0, 0, 19844, 19845, 7, 5, 0, 0, 19845, 19846, 7, 6, 0, 0, 19846, 2736, 1, 0, 0, 0, 19847, 19848, 7, 15, 0, 0, 19848, 19849, 7, 8, 0, 0, 19849, 19850, 7, 4, 0, 0, 19850, 19851, 7, 4, 0, 0, 19851, 19852, 7, 19, 0, 0, 19852, 19853, 7, 3, 0, 0, 19853, 19854, 7, 6, 0, 0, 19854, 19855, 7, 5, 0, 0, 19855, 19856, 7, 19, 0, 0, 19856, 19857, 7, 2, 0, 0, 19857, 19858, 7, 11, 0, 0, 19858, 19859, 7, 9, 0, 0, 19859, 2738, 1, 0, 0, 0, 19860, 19861, 7, 15, 0, 0, 19861, 19862, 7, 8, 0, 0, 19862, 19863, 7, 4, 0, 0, 19863, 19864, 7, 12, 0, 0, 19864, 19865, 7, 5, 0, 0, 19865, 19866, 7, 6, 0, 0, 19866, 19867, 7, 9, 0, 0, 19867, 2740, 1, 0, 0, 0, 19868, 19869, 7, 15, 0, 0, 19869, 19870, 7, 8, 0, 0, 19870, 19871, 7, 4, 0, 0, 19871, 19872, 7, 13, 0, 0, 19872, 19873, 7, 6, 0, 0, 19873, 19874, 7, 3, 0, 0, 19874, 19875, 7, 5, 0, 0, 19875, 19876, 7, 10, 0, 0, 19876, 19877, 7, 2, 0, 0, 19877, 19878, 7, 7, 0, 0, 19878, 2742, 1, 0, 0, 0, 19879, 19880, 7, 15, 0, 0, 19880, 19881, 7, 6, 0, 0, 19881, 19882, 7, 7, 0, 0, 19882, 19883, 7, 9, 0, 0, 19883, 19884, 7, 10, 0, 0, 19884, 19885, 7, 7, 0, 0, 19885, 19886, 7, 17, 0, 0, 19886, 2744, 1, 0, 0, 0, 19887, 19891, 5, 37, 0, 0, 19888, 19890, 3, 4995, 2497, 0, 19889, 19888, 1, 0, 0, 0, 19890, 19893, 1, 0, 0, 0, 19891, 19889, 1, 0, 0, 0, 19891, 19892, 1, 0, 0, 0, 19892, 19894, 1, 0, 0, 0, 19893, 19891, 1, 0, 0, 0, 19894, 19895, 7, 16, 0, 0, 19895, 19896, 7, 2, 0, 0, 19896, 19897, 7, 12, 0, 0, 19897, 19898, 7, 7, 0, 0, 19898, 19899, 7, 9, 0, 0, 19899, 2746, 1, 0, 0, 0, 19900, 19904, 5, 37, 0, 0, 19901, 19903, 3, 4995, 2497, 0, 19902, 19901, 1, 0, 0, 0, 19903, 19906, 1, 0, 0, 0, 19904, 19902, 1, 0, 0, 0, 19904, 19905, 1, 0, 0, 0, 19905, 19907, 1, 0, 0, 0, 19906, 19904, 1, 0, 0, 0, 19907, 19908, 7, 10, 0, 0, 19908, 19909, 7, 5, 0, 0, 19909, 19910, 7, 2, 0, 0, 19910, 19911, 7, 15, 0, 0, 19911, 19912, 7, 6, 0, 0, 19912, 19913, 7, 7, 0, 0, 19913, 2748, 1, 0, 0, 0, 19914, 19918, 5, 37, 0, 0, 19915, 19917, 3, 4995, 2497, 0, 19916, 19915, 1, 0, 0, 0, 19917, 19920, 1, 0, 0, 0, 19918, 19916, 1, 0, 0, 0, 19918, 19919, 1, 0, 0, 0, 19919, 19921, 1, 0, 0, 0, 19920, 19918, 1, 0, 0, 0, 19921, 19922, 7, 7, 0, 0, 19922, 19923, 7, 2, 0, 0, 19923, 19924, 7, 4, 0, 0, 19924, 19925, 7, 16, 0, 0, 19925, 19926, 7, 2, 0, 0, 19926, 19927, 7, 12, 0, 0, 19927, 19928, 7, 7, 0, 0, 19928, 19929, 7, 9, 0, 0, 19929, 2750, 1, 0, 0, 0, 19930, 19931, 7, 15, 0, 0, 19931, 19932, 7, 6, 0, 0, 19932, 19933, 7, 3, 0, 0, 19933, 19934, 7, 8, 0, 0, 19934, 19935, 7, 6, 0, 0, 19935, 19936, 7, 7, 0, 0, 19936, 19937, 7, 4, 0, 0, 19937, 2752, 1, 0, 0, 0, 19938, 19939, 7, 15, 0, 0, 19939, 19940, 7, 6, 0, 0, 19940, 19941, 7, 3, 0, 0, 19941, 19942, 7, 8, 0, 0, 19942, 19943, 7, 6, 0, 0, 19943, 19944, 7, 7, 0, 0, 19944, 19945, 7, 4, 0, 0, 19945, 19946, 5, 95, 0, 0, 19946, 19947, 7, 3, 0, 0, 19947, 19948, 7, 0, 0, 0, 19948, 19949, 7, 7, 0, 0, 19949, 19950, 7, 21, 0, 0, 19950, 19951, 7, 14, 0, 0, 19951, 2754, 1, 0, 0, 0, 19952, 19956, 5, 37, 0, 0, 19953, 19955, 3, 4995, 2497, 0, 19954, 19953, 1, 0, 0, 0, 19955, 19958, 1, 0, 0, 0, 19956, 19954, 1, 0, 0, 0, 19956, 19957, 1, 0, 0, 0, 19957, 19959, 1, 0, 0, 0, 19958, 19956, 1, 0, 0, 0, 19959, 19960, 7, 3, 0, 0, 19960, 19961, 7, 2, 0, 0, 19961, 19962, 7, 22, 0, 0, 19962, 19963, 7, 8, 0, 0, 19963, 19964, 7, 2, 0, 0, 19964, 19965, 7, 12, 0, 0, 19965, 19966, 7, 7, 0, 0, 19966, 19967, 7, 4, 0, 0, 19967, 2756, 1, 0, 0, 0, 19968, 19972, 5, 37, 0, 0, 19969, 19971, 3, 4995, 2497, 0, 19970, 19969, 1, 0, 0, 0, 19971, 19974, 1, 0, 0, 0, 19972, 19970, 1, 0, 0, 0, 19972, 19973, 1, 0, 0, 0, 19973, 19975, 1, 0, 0, 0, 19974, 19972, 1, 0, 0, 0, 19975, 19976, 7, 3, 0, 0, 19976, 19977, 7, 2, 0, 0, 19977, 19978, 7, 22, 0, 0, 19978, 19979, 7, 4, 0, 0, 19979, 19980, 7, 18, 0, 0, 19980, 19981, 7, 15, 0, 0, 19981, 19982, 7, 6, 0, 0, 19982, 2758, 1, 0, 0, 0, 19983, 19987, 5, 37, 0, 0, 19984, 19986, 3, 4995, 2497, 0, 19985, 19984, 1, 0, 0, 0, 19986, 19989, 1, 0, 0, 0, 19987, 19985, 1, 0, 0, 0, 19987, 19988, 1, 0, 0, 0, 19988, 19990, 1, 0, 0, 0, 19989, 19987, 1, 0, 0, 0, 19990, 19991, 7, 4, 0, 0, 19991, 19992, 7, 18, 0, 0, 19992, 19993, 7, 15, 0, 0, 19993, 19994, 7, 6, 0, 0, 19994, 2760, 1, 0, 0, 0, 19995, 19999, 5, 37, 0, 0, 19996, 19998, 3, 4995, 2497, 0, 19997, 19996, 1, 0, 0, 0, 19998, 20001, 1, 0, 0, 0, 19999, 19997, 1, 0, 0, 0, 19999, 20000, 1, 0, 0, 0, 20000, 20002, 1, 0, 0, 0, 20001, 19999, 1, 0, 0, 0, 20002, 20003, 7, 1, 0, 0, 20003, 20004, 7, 12, 0, 0, 20004, 20005, 7, 11, 0, 0, 20005, 20006, 7, 21, 0, 0, 20006, 20007, 5, 95, 0, 0, 20007, 20008, 7, 6, 0, 0, 20008, 20009, 7, 25, 0, 0, 20009, 20010, 7, 8, 0, 0, 20010, 20011, 7, 6, 0, 0, 20011, 20012, 7, 15, 0, 0, 20012, 20013, 7, 4, 0, 0, 20013, 20014, 7, 10, 0, 0, 20014, 20015, 7, 2, 0, 0, 20015, 20016, 7, 7, 0, 0, 20016, 20017, 7, 5, 0, 0, 20017, 2762, 1, 0, 0, 0, 20018, 20022, 5, 37, 0, 0, 20019, 20021, 3, 4995, 2497, 0, 20020, 20019, 1, 0, 0, 0, 20021, 20024, 1, 0, 0, 0, 20022, 20020, 1, 0, 0, 0, 20022, 20023, 1, 0, 0, 0, 20023, 20025, 1, 0, 0, 0, 20024, 20022, 1, 0, 0, 0, 20025, 20026, 7, 1, 0, 0, 20026, 20027, 7, 12, 0, 0, 20027, 20028, 7, 11, 0, 0, 20028, 20029, 7, 21, 0, 0, 20029, 20030, 5, 95, 0, 0, 20030, 20031, 7, 3, 0, 0, 20031, 20032, 7, 2, 0, 0, 20032, 20033, 7, 22, 0, 0, 20033, 20034, 7, 8, 0, 0, 20034, 20035, 7, 2, 0, 0, 20035, 20036, 7, 12, 0, 0, 20036, 20037, 7, 7, 0, 0, 20037, 20038, 7, 4, 0, 0, 20038, 2764, 1, 0, 0, 0, 20039, 20040, 7, 15, 0, 0, 20040, 20041, 7, 6, 0, 0, 20041, 20042, 7, 3, 0, 0, 20042, 20043, 7, 16, 0, 0, 20043, 20044, 7, 2, 0, 0, 20044, 20045, 7, 3, 0, 0, 20045, 20046, 7, 14, 0, 0, 20046, 20047, 7, 0, 0, 0, 20047, 20048, 7, 7, 0, 0, 20048, 20049, 7, 8, 0, 0, 20049, 20050, 7, 6, 0, 0, 20050, 2766, 1, 0, 0, 0, 20051, 20052, 7, 15, 0, 0, 20052, 20053, 7, 6, 0, 0, 20053, 20054, 7, 3, 0, 0, 20054, 20055, 7, 10, 0, 0, 20055, 20056, 7, 2, 0, 0, 20056, 20057, 7, 9, 0, 0, 20057, 2768, 1, 0, 0, 0, 20058, 20059, 7, 15, 0, 0, 20059, 20060, 7, 6, 0, 0, 20060, 20061, 7, 3, 0, 0, 20061, 20062, 7, 14, 0, 0, 20062, 20063, 7, 0, 0, 0, 20063, 20064, 7, 7, 0, 0, 20064, 20065, 7, 6, 0, 0, 20065, 20066, 7, 7, 0, 0, 20066, 20067, 7, 4, 0, 0, 20067, 2770, 1, 0, 0, 0, 20068, 20069, 7, 15, 0, 0, 20069, 20070, 7, 6, 0, 0, 20070, 20071, 7, 3, 0, 0, 20071, 20072, 7, 14, 0, 0, 20072, 20073, 7, 10, 0, 0, 20073, 20074, 7, 5, 0, 0, 20074, 20075, 7, 5, 0, 0, 20075, 20076, 7, 10, 0, 0, 20076, 20077, 7, 2, 0, 0, 20077, 20078, 7, 7, 0, 0, 20078, 2772, 1, 0, 0, 0, 20079, 20080, 7, 15, 0, 0, 20080, 20081, 7, 6, 0, 0, 20081, 20082, 7, 3, 0, 0, 20082, 20083, 7, 14, 0, 0, 20083, 20084, 7, 12, 0, 0, 20084, 20085, 7, 4, 0, 0, 20085, 20086, 7, 6, 0, 0, 20086, 2774, 1, 0, 0, 0, 20087, 20088, 7, 15, 0, 0, 20088, 20089, 7, 6, 0, 0, 20089, 20090, 7, 3, 0, 0, 20090, 2776, 1, 0, 0, 0, 20091, 20092, 7, 15, 0, 0, 20092, 20093, 7, 16, 0, 0, 20093, 20094, 7, 10, 0, 0, 20094, 20095, 7, 11, 0, 0, 20095, 20096, 7, 6, 0, 0, 20096, 2778, 1, 0, 0, 0, 20097, 20098, 7, 15, 0, 0, 20098, 20099, 7, 19, 0, 0, 20099, 20100, 7, 18, 0, 0, 20100, 20101, 7, 5, 0, 0, 20101, 20102, 7, 10, 0, 0, 20102, 20103, 7, 8, 0, 0, 20103, 20104, 7, 0, 0, 0, 20104, 20105, 7, 11, 0, 0, 20105, 2780, 1, 0, 0, 0, 20106, 20107, 7, 15, 0, 0, 20107, 20108, 7, 10, 0, 0, 20108, 20109, 7, 21, 0, 0, 20109, 20110, 7, 6, 0, 0, 20110, 20111, 7, 18, 0, 0, 20111, 2782, 1, 0, 0, 0, 20112, 20113, 7, 15, 0, 0, 20113, 20114, 7, 10, 0, 0, 20114, 20115, 7, 15, 0, 0, 20115, 20116, 7, 6, 0, 0, 20116, 20117, 7, 11, 0, 0, 20117, 20118, 7, 10, 0, 0, 20118, 20119, 7, 7, 0, 0, 20119, 20120, 7, 6, 0, 0, 20120, 20121, 7, 9, 0, 0, 20121, 2784, 1, 0, 0, 0, 20122, 20123, 7, 15, 0, 0, 20123, 20124, 7, 10, 0, 0, 20124, 20125, 7, 15, 0, 0, 20125, 20126, 7, 6, 0, 0, 20126, 2786, 1, 0, 0, 0, 20127, 20128, 7, 15, 0, 0, 20128, 20129, 7, 10, 0, 0, 20129, 20130, 7, 13, 0, 0, 20130, 20131, 5, 95, 0, 0, 20131, 20132, 7, 17, 0, 0, 20132, 20133, 7, 1, 0, 0, 20133, 2788, 1, 0, 0, 0, 20134, 20135, 7, 15, 0, 0, 20135, 20136, 7, 10, 0, 0, 20136, 20137, 7, 13, 0, 0, 20137, 20138, 7, 2, 0, 0, 20138, 20139, 7, 4, 0, 0, 20139, 2790, 1, 0, 0, 0, 20140, 20141, 7, 15, 0, 0, 20141, 20142, 7, 10, 0, 0, 20142, 20143, 7, 13, 0, 0, 20143, 20144, 5, 95, 0, 0, 20144, 20145, 7, 5, 0, 0, 20145, 20146, 7, 5, 0, 0, 20146, 20147, 7, 16, 0, 0, 20147, 2792, 1, 0, 0, 0, 20148, 20149, 7, 15, 0, 0, 20149, 20150, 7, 11, 0, 0, 20150, 20151, 7, 0, 0, 0, 20151, 20152, 7, 8, 0, 0, 20152, 20153, 7, 6, 0, 0, 20153, 20154, 5, 95, 0, 0, 20154, 20155, 7, 9, 0, 0, 20155, 20156, 7, 10, 0, 0, 20156, 20157, 7, 5, 0, 0, 20157, 20158, 7, 4, 0, 0, 20158, 20159, 7, 10, 0, 0, 20159, 20160, 7, 7, 0, 0, 20160, 20161, 7, 8, 0, 0, 20161, 20162, 7, 4, 0, 0, 20162, 2794, 1, 0, 0, 0, 20163, 20164, 7, 15, 0, 0, 20164, 20165, 7, 11, 0, 0, 20165, 20166, 7, 0, 0, 0, 20166, 20167, 7, 8, 0, 0, 20167, 20168, 7, 6, 0, 0, 20168, 20169, 5, 95, 0, 0, 20169, 20170, 7, 17, 0, 0, 20170, 20171, 7, 3, 0, 0, 20171, 20172, 7, 2, 0, 0, 20172, 20173, 7, 12, 0, 0, 20173, 20174, 7, 15, 0, 0, 20174, 20175, 5, 95, 0, 0, 20175, 20176, 7, 1, 0, 0, 20176, 20177, 7, 18, 0, 0, 20177, 2796, 1, 0, 0, 0, 20178, 20179, 7, 15, 0, 0, 20179, 20180, 7, 11, 0, 0, 20180, 20181, 7, 0, 0, 0, 20181, 20182, 7, 7, 0, 0, 20182, 2798, 1, 0, 0, 0, 20183, 20184, 7, 15, 0, 0, 20184, 20185, 7, 11, 0, 0, 20185, 20186, 7, 5, 0, 0, 20186, 20187, 7, 8, 0, 0, 20187, 20188, 7, 2, 0, 0, 20188, 20189, 7, 15, 0, 0, 20189, 20190, 7, 6, 0, 0, 20190, 20191, 5, 95, 0, 0, 20191, 20192, 7, 5, 0, 0, 20192, 20193, 7, 6, 0, 0, 20193, 20194, 7, 4, 0, 0, 20194, 20195, 7, 4, 0, 0, 20195, 20196, 7, 10, 0, 0, 20196, 20197, 7, 7, 0, 0, 20197, 20198, 7, 17, 0, 0, 20198, 20199, 7, 5, 0, 0, 20199, 2800, 1, 0, 0, 0, 20200, 20201, 7, 15, 0, 0, 20201, 20202, 7, 11, 0, 0, 20202, 20203, 7, 5, 0, 0, 20203, 20204, 5, 95, 0, 0, 20204, 20205, 7, 10, 0, 0, 20205, 20206, 7, 7, 0, 0, 20206, 20207, 7, 4, 0, 0, 20207, 20208, 7, 6, 0, 0, 20208, 20209, 7, 17, 0, 0, 20209, 20210, 7, 6, 0, 0, 20210, 20211, 7, 3, 0, 0, 20211, 2802, 1, 0, 0, 0, 20212, 20213, 7, 15, 0, 0, 20213, 20214, 7, 11, 0, 0, 20214, 20215, 7, 5, 0, 0, 20215, 20216, 7, 24, 0, 0, 20216, 20217, 7, 11, 0, 0, 20217, 20218, 5, 95, 0, 0, 20218, 20219, 7, 8, 0, 0, 20219, 20220, 7, 8, 0, 0, 20220, 20221, 7, 16, 0, 0, 20221, 20222, 7, 11, 0, 0, 20222, 20223, 7, 0, 0, 0, 20223, 20224, 7, 17, 0, 0, 20224, 20225, 7, 5, 0, 0, 20225, 2804, 1, 0, 0, 0, 20226, 20227, 7, 15, 0, 0, 20227, 20228, 7, 11, 0, 0, 20228, 20229, 7, 5, 0, 0, 20229, 20230, 7, 24, 0, 0, 20230, 20231, 7, 11, 0, 0, 20231, 20232, 5, 95, 0, 0, 20232, 20233, 7, 8, 0, 0, 20233, 20234, 7, 2, 0, 0, 20234, 20235, 7, 9, 0, 0, 20235, 20236, 7, 6, 0, 0, 20236, 20237, 5, 95, 0, 0, 20237, 20238, 7, 4, 0, 0, 20238, 20239, 7, 18, 0, 0, 20239, 20240, 7, 15, 0, 0, 20240, 20241, 7, 6, 0, 0, 20241, 2806, 1, 0, 0, 0, 20242, 20243, 7, 15, 0, 0, 20243, 20244, 7, 11, 0, 0, 20244, 20245, 7, 5, 0, 0, 20245, 20246, 7, 24, 0, 0, 20246, 20247, 7, 11, 0, 0, 20247, 20248, 5, 95, 0, 0, 20248, 20249, 7, 9, 0, 0, 20249, 20250, 7, 6, 0, 0, 20250, 20251, 7, 1, 0, 0, 20251, 20252, 7, 12, 0, 0, 20252, 20253, 7, 17, 0, 0, 20253, 2808, 1, 0, 0, 0, 20254, 20255, 7, 15, 0, 0, 20255, 20256, 7, 11, 0, 0, 20256, 20257, 7, 5, 0, 0, 20257, 20258, 7, 24, 0, 0, 20258, 20259, 7, 11, 0, 0, 20259, 20260, 5, 95, 0, 0, 20260, 20261, 7, 2, 0, 0, 20261, 20262, 7, 15, 0, 0, 20262, 20263, 7, 4, 0, 0, 20263, 20264, 7, 10, 0, 0, 20264, 20265, 7, 14, 0, 0, 20265, 20266, 7, 10, 0, 0, 20266, 20267, 7, 23, 0, 0, 20267, 20268, 7, 6, 0, 0, 20268, 20269, 5, 95, 0, 0, 20269, 20270, 7, 11, 0, 0, 20270, 20271, 7, 6, 0, 0, 20271, 20272, 7, 13, 0, 0, 20272, 20273, 7, 6, 0, 0, 20273, 20274, 7, 11, 0, 0, 20274, 2810, 1, 0, 0, 0, 20275, 20276, 7, 15, 0, 0, 20276, 20277, 7, 11, 0, 0, 20277, 20278, 7, 5, 0, 0, 20278, 20279, 7, 24, 0, 0, 20279, 20280, 7, 11, 0, 0, 20280, 20281, 5, 95, 0, 0, 20281, 20282, 7, 22, 0, 0, 20282, 20283, 7, 0, 0, 0, 20283, 20284, 7, 3, 0, 0, 20284, 20285, 7, 7, 0, 0, 20285, 20286, 7, 10, 0, 0, 20286, 20287, 7, 7, 0, 0, 20287, 20288, 7, 17, 0, 0, 20288, 20289, 7, 5, 0, 0, 20289, 2812, 1, 0, 0, 0, 20290, 20291, 7, 15, 0, 0, 20291, 20292, 7, 11, 0, 0, 20292, 20293, 7, 12, 0, 0, 20293, 20294, 7, 17, 0, 0, 20294, 20295, 7, 17, 0, 0, 20295, 20296, 7, 0, 0, 0, 20296, 20297, 7, 1, 0, 0, 20297, 20298, 7, 11, 0, 0, 20298, 20299, 7, 6, 0, 0, 20299, 2814, 1, 0, 0, 0, 20300, 20301, 7, 15, 0, 0, 20301, 20302, 7, 14, 0, 0, 20302, 20303, 7, 6, 0, 0, 20303, 20304, 7, 14, 0, 0, 20304, 2816, 1, 0, 0, 0, 20305, 20306, 7, 15, 0, 0, 20306, 20307, 7, 2, 0, 0, 20307, 20308, 7, 10, 0, 0, 20308, 20309, 7, 7, 0, 0, 20309, 20310, 7, 4, 0, 0, 20310, 2818, 1, 0, 0, 0, 20311, 20312, 7, 15, 0, 0, 20312, 20313, 7, 2, 0, 0, 20313, 20314, 7, 11, 0, 0, 20314, 20315, 7, 10, 0, 0, 20315, 20316, 7, 8, 0, 0, 20316, 20317, 7, 18, 0, 0, 20317, 2820, 1, 0, 0, 0, 20318, 20319, 7, 15, 0, 0, 20319, 20320, 7, 2, 0, 0, 20320, 20321, 7, 2, 0, 0, 20321, 20322, 7, 11, 0, 0, 20322, 20323, 5, 95, 0, 0, 20323, 20324, 5, 49, 0, 0, 20324, 20325, 5, 54, 0, 0, 20325, 20326, 7, 21, 0, 0, 20326, 2822, 1, 0, 0, 0, 20327, 20328, 7, 15, 0, 0, 20328, 20329, 7, 2, 0, 0, 20329, 20330, 7, 2, 0, 0, 20330, 20331, 7, 11, 0, 0, 20331, 20332, 5, 95, 0, 0, 20332, 20333, 5, 50, 0, 0, 20333, 20334, 7, 21, 0, 0, 20334, 2824, 1, 0, 0, 0, 20335, 20336, 7, 15, 0, 0, 20336, 20337, 7, 2, 0, 0, 20337, 20338, 7, 2, 0, 0, 20338, 20339, 7, 11, 0, 0, 20339, 20340, 5, 95, 0, 0, 20340, 20341, 5, 51, 0, 0, 20341, 20342, 5, 50, 0, 0, 20342, 20343, 7, 21, 0, 0, 20343, 2826, 1, 0, 0, 0, 20344, 20345, 7, 15, 0, 0, 20345, 20346, 7, 2, 0, 0, 20346, 20347, 7, 2, 0, 0, 20347, 20348, 7, 11, 0, 0, 20348, 20349, 5, 95, 0, 0, 20349, 20350, 5, 52, 0, 0, 20350, 20351, 7, 21, 0, 0, 20351, 2828, 1, 0, 0, 0, 20352, 20353, 7, 15, 0, 0, 20353, 20354, 7, 2, 0, 0, 20354, 20355, 7, 2, 0, 0, 20355, 20356, 7, 11, 0, 0, 20356, 20357, 5, 95, 0, 0, 20357, 20358, 5, 56, 0, 0, 20358, 20359, 7, 21, 0, 0, 20359, 2830, 1, 0, 0, 0, 20360, 20361, 7, 15, 0, 0, 20361, 20362, 7, 2, 0, 0, 20362, 20363, 7, 5, 0, 0, 20363, 20364, 7, 10, 0, 0, 20364, 20365, 7, 4, 0, 0, 20365, 20366, 7, 10, 0, 0, 20366, 20367, 7, 2, 0, 0, 20367, 20368, 7, 7, 0, 0, 20368, 2832, 1, 0, 0, 0, 20369, 20370, 7, 15, 0, 0, 20370, 20371, 7, 2, 0, 0, 20371, 20372, 7, 5, 0, 0, 20372, 20373, 7, 10, 0, 0, 20373, 20374, 7, 4, 0, 0, 20374, 20375, 7, 10, 0, 0, 20375, 20376, 7, 13, 0, 0, 20376, 20377, 7, 6, 0, 0, 20377, 20378, 7, 7, 0, 0, 20378, 2834, 1, 0, 0, 0, 20379, 20380, 7, 15, 0, 0, 20380, 20381, 7, 2, 0, 0, 20381, 20382, 7, 5, 0, 0, 20382, 20383, 7, 10, 0, 0, 20383, 20384, 7, 4, 0, 0, 20384, 20385, 7, 10, 0, 0, 20385, 20386, 7, 13, 0, 0, 20386, 20387, 7, 6, 0, 0, 20387, 2836, 1, 0, 0, 0, 20388, 20389, 7, 15, 0, 0, 20389, 20390, 7, 2, 0, 0, 20390, 20391, 7, 5, 0, 0, 20391, 20392, 7, 4, 0, 0, 20392, 20393, 5, 95, 0, 0, 20393, 20394, 7, 4, 0, 0, 20394, 20395, 7, 3, 0, 0, 20395, 20396, 7, 0, 0, 0, 20396, 20397, 7, 7, 0, 0, 20397, 20398, 7, 5, 0, 0, 20398, 20399, 7, 0, 0, 0, 20399, 20400, 7, 8, 0, 0, 20400, 20401, 7, 4, 0, 0, 20401, 20402, 7, 10, 0, 0, 20402, 20403, 7, 2, 0, 0, 20403, 20404, 7, 7, 0, 0, 20404, 2838, 1, 0, 0, 0, 20405, 20406, 7, 15, 0, 0, 20406, 20407, 7, 2, 0, 0, 20407, 20408, 7, 22, 0, 0, 20408, 20409, 7, 6, 0, 0, 20409, 20410, 7, 3, 0, 0, 20410, 20411, 7, 14, 0, 0, 20411, 20412, 7, 12, 0, 0, 20412, 20413, 7, 11, 0, 0, 20413, 20414, 7, 4, 0, 0, 20414, 20415, 7, 10, 0, 0, 20415, 20416, 7, 5, 0, 0, 20416, 20417, 7, 6, 0, 0, 20417, 20418, 7, 4, 0, 0, 20418, 20419, 5, 95, 0, 0, 20419, 20420, 7, 1, 0, 0, 20420, 20421, 7, 18, 0, 0, 20421, 20422, 5, 95, 0, 0, 20422, 20423, 7, 8, 0, 0, 20423, 20424, 7, 0, 0, 0, 20424, 20425, 7, 3, 0, 0, 20425, 20426, 7, 9, 0, 0, 20426, 20427, 7, 10, 0, 0, 20427, 20428, 7, 7, 0, 0, 20428, 20429, 7, 0, 0, 0, 20429, 20430, 7, 11, 0, 0, 20430, 20431, 7, 10, 0, 0, 20431, 20432, 7, 4, 0, 0, 20432, 20433, 7, 18, 0, 0, 20433, 2840, 1, 0, 0, 0, 20434, 20435, 7, 15, 0, 0, 20435, 20436, 7, 2, 0, 0, 20436, 20437, 7, 22, 0, 0, 20437, 20438, 7, 6, 0, 0, 20438, 20439, 7, 3, 0, 0, 20439, 20440, 7, 14, 0, 0, 20440, 20441, 7, 12, 0, 0, 20441, 20442, 7, 11, 0, 0, 20442, 20443, 7, 4, 0, 0, 20443, 20444, 7, 10, 0, 0, 20444, 20445, 7, 5, 0, 0, 20445, 20446, 7, 6, 0, 0, 20446, 20447, 7, 4, 0, 0, 20447, 2842, 1, 0, 0, 0, 20448, 20449, 7, 15, 0, 0, 20449, 20450, 7, 2, 0, 0, 20450, 20451, 7, 22, 0, 0, 20451, 20452, 7, 6, 0, 0, 20452, 20453, 7, 3, 0, 0, 20453, 2844, 1, 0, 0, 0, 20454, 20455, 7, 15, 0, 0, 20455, 20456, 7, 24, 0, 0, 20456, 20457, 5, 95, 0, 0, 20457, 20458, 7, 8, 0, 0, 20458, 20459, 7, 2, 0, 0, 20459, 20460, 7, 7, 0, 0, 20460, 20461, 7, 8, 0, 0, 20461, 20462, 7, 12, 0, 0, 20462, 20463, 7, 3, 0, 0, 20463, 20464, 7, 3, 0, 0, 20464, 20465, 7, 6, 0, 0, 20465, 20466, 7, 7, 0, 0, 20466, 20467, 7, 4, 0, 0, 20467, 20468, 5, 95, 0, 0, 20468, 20469, 7, 12, 0, 0, 20469, 20470, 7, 7, 0, 0, 20470, 20471, 7, 10, 0, 0, 20471, 20472, 7, 2, 0, 0, 20472, 20473, 7, 7, 0, 0, 20473, 2846, 1, 0, 0, 0, 20474, 20475, 7, 15, 0, 0, 20475, 20476, 7, 24, 0, 0, 20476, 20477, 5, 95, 0, 0, 20477, 20478, 7, 9, 0, 0, 20478, 20479, 7, 10, 0, 0, 20479, 20480, 7, 5, 0, 0, 20480, 20481, 7, 4, 0, 0, 20481, 20482, 7, 3, 0, 0, 20482, 20483, 7, 10, 0, 0, 20483, 20484, 7, 1, 0, 0, 20484, 20485, 7, 12, 0, 0, 20485, 20486, 7, 4, 0, 0, 20486, 20487, 7, 6, 0, 0, 20487, 2848, 1, 0, 0, 0, 20488, 20489, 7, 15, 0, 0, 20489, 20490, 7, 24, 0, 0, 20490, 20491, 5, 95, 0, 0, 20491, 20492, 7, 9, 0, 0, 20492, 20493, 7, 10, 0, 0, 20493, 20494, 7, 5, 0, 0, 20494, 20495, 7, 4, 0, 0, 20495, 20496, 7, 3, 0, 0, 20496, 20497, 7, 10, 0, 0, 20497, 20498, 7, 1, 0, 0, 20498, 20499, 7, 12, 0, 0, 20499, 20500, 7, 4, 0, 0, 20500, 20501, 7, 6, 0, 0, 20501, 20502, 5, 95, 0, 0, 20502, 20503, 7, 22, 0, 0, 20503, 20504, 7, 10, 0, 0, 20504, 20505, 7, 7, 0, 0, 20505, 20506, 7, 9, 0, 0, 20506, 20507, 7, 2, 0, 0, 20507, 20508, 7, 22, 0, 0, 20508, 2850, 1, 0, 0, 0, 20509, 20510, 7, 15, 0, 0, 20510, 20511, 7, 24, 0, 0, 20511, 20512, 5, 95, 0, 0, 20512, 20513, 7, 16, 0, 0, 20513, 20514, 7, 10, 0, 0, 20514, 20515, 7, 11, 0, 0, 20515, 20516, 7, 4, 0, 0, 20516, 20517, 7, 6, 0, 0, 20517, 20518, 7, 3, 0, 0, 20518, 2852, 1, 0, 0, 0, 20519, 20520, 7, 15, 0, 0, 20520, 20521, 7, 24, 0, 0, 20521, 20522, 5, 95, 0, 0, 20522, 20523, 7, 14, 0, 0, 20523, 20524, 7, 0, 0, 0, 20524, 20525, 7, 15, 0, 0, 20525, 2854, 1, 0, 0, 0, 20526, 20527, 7, 15, 0, 0, 20527, 20528, 7, 24, 0, 0, 20528, 20529, 5, 95, 0, 0, 20529, 20530, 7, 7, 0, 0, 20530, 20531, 7, 2, 0, 0, 20531, 20532, 7, 14, 0, 0, 20532, 20533, 7, 0, 0, 0, 20533, 20534, 7, 15, 0, 0, 20534, 2856, 1, 0, 0, 0, 20535, 20536, 7, 15, 0, 0, 20536, 20537, 7, 24, 0, 0, 20537, 20538, 5, 95, 0, 0, 20538, 20539, 7, 3, 0, 0, 20539, 20540, 7, 6, 0, 0, 20540, 20541, 7, 15, 0, 0, 20541, 20542, 7, 11, 0, 0, 20542, 20543, 7, 10, 0, 0, 20543, 20544, 7, 8, 0, 0, 20544, 20545, 7, 0, 0, 0, 20545, 20546, 7, 4, 0, 0, 20546, 20547, 7, 6, 0, 0, 20547, 2858, 1, 0, 0, 0, 20548, 20549, 7, 15, 0, 0, 20549, 20550, 7, 24, 0, 0, 20550, 20551, 5, 95, 0, 0, 20551, 20552, 7, 5, 0, 0, 20552, 20553, 7, 21, 0, 0, 20553, 20554, 7, 6, 0, 0, 20554, 20555, 7, 22, 0, 0, 20555, 2860, 1, 0, 0, 0, 20556, 20557, 7, 15, 0, 0, 20557, 20558, 7, 3, 0, 0, 20558, 20559, 7, 0, 0, 0, 20559, 20560, 7, 17, 0, 0, 20560, 20561, 7, 14, 0, 0, 20561, 20562, 7, 0, 0, 0, 20562, 2862, 1, 0, 0, 0, 20563, 20564, 7, 15, 0, 0, 20564, 20565, 7, 3, 0, 0, 20565, 20566, 7, 6, 0, 0, 20566, 20567, 7, 1, 0, 0, 20567, 20568, 7, 12, 0, 0, 20568, 20569, 7, 10, 0, 0, 20569, 20570, 7, 11, 0, 0, 20570, 20571, 7, 4, 0, 0, 20571, 2864, 1, 0, 0, 0, 20572, 20573, 7, 15, 0, 0, 20573, 20574, 7, 3, 0, 0, 20574, 20575, 7, 6, 0, 0, 20575, 20576, 7, 8, 0, 0, 20576, 20577, 7, 6, 0, 0, 20577, 20578, 7, 9, 0, 0, 20578, 20579, 7, 6, 0, 0, 20579, 20580, 7, 5, 0, 0, 20580, 2866, 1, 0, 0, 0, 20581, 20582, 7, 15, 0, 0, 20582, 20583, 7, 3, 0, 0, 20583, 20584, 7, 6, 0, 0, 20584, 20585, 7, 8, 0, 0, 20585, 20586, 7, 6, 0, 0, 20586, 20587, 7, 9, 0, 0, 20587, 20588, 7, 10, 0, 0, 20588, 20589, 7, 7, 0, 0, 20589, 20590, 7, 17, 0, 0, 20590, 2868, 1, 0, 0, 0, 20591, 20592, 7, 15, 0, 0, 20592, 20593, 7, 3, 0, 0, 20593, 20594, 7, 6, 0, 0, 20594, 20595, 7, 8, 0, 0, 20595, 20596, 7, 10, 0, 0, 20596, 20597, 7, 5, 0, 0, 20597, 20598, 7, 10, 0, 0, 20598, 20599, 7, 2, 0, 0, 20599, 20600, 7, 7, 0, 0, 20600, 2870, 1, 0, 0, 0, 20601, 20602, 7, 15, 0, 0, 20602, 20603, 7, 3, 0, 0, 20603, 20604, 7, 6, 0, 0, 20604, 20605, 7, 8, 0, 0, 20605, 20606, 7, 2, 0, 0, 20606, 20607, 7, 14, 0, 0, 20607, 20608, 7, 15, 0, 0, 20608, 20609, 7, 12, 0, 0, 20609, 20610, 7, 4, 0, 0, 20610, 20611, 7, 6, 0, 0, 20611, 20612, 5, 95, 0, 0, 20612, 20613, 7, 5, 0, 0, 20613, 20614, 7, 12, 0, 0, 20614, 20615, 7, 1, 0, 0, 20615, 20616, 7, 24, 0, 0, 20616, 20617, 7, 12, 0, 0, 20617, 20618, 7, 6, 0, 0, 20618, 20619, 7, 3, 0, 0, 20619, 20620, 7, 18, 0, 0, 20620, 2872, 1, 0, 0, 0, 20621, 20622, 7, 15, 0, 0, 20622, 20623, 7, 3, 0, 0, 20623, 20624, 7, 6, 0, 0, 20624, 20625, 7, 9, 0, 0, 20625, 20626, 7, 10, 0, 0, 20626, 20627, 7, 8, 0, 0, 20627, 20628, 7, 0, 0, 0, 20628, 20629, 7, 4, 0, 0, 20629, 20630, 7, 6, 0, 0, 20630, 20631, 5, 95, 0, 0, 20631, 20632, 7, 3, 0, 0, 20632, 20633, 7, 6, 0, 0, 20633, 20634, 7, 2, 0, 0, 20634, 20635, 7, 3, 0, 0, 20635, 20636, 7, 9, 0, 0, 20636, 20637, 7, 6, 0, 0, 20637, 20638, 7, 3, 0, 0, 20638, 20639, 7, 5, 0, 0, 20639, 2874, 1, 0, 0, 0, 20640, 20641, 7, 15, 0, 0, 20641, 20642, 7, 3, 0, 0, 20642, 20643, 7, 6, 0, 0, 20643, 20644, 7, 11, 0, 0, 20644, 20645, 7, 2, 0, 0, 20645, 20646, 7, 0, 0, 0, 20646, 20647, 7, 9, 0, 0, 20647, 2876, 1, 0, 0, 0, 20648, 20649, 7, 15, 0, 0, 20649, 20650, 7, 3, 0, 0, 20650, 20651, 7, 6, 0, 0, 20651, 20652, 7, 15, 0, 0, 20652, 20653, 7, 0, 0, 0, 20653, 20654, 7, 3, 0, 0, 20654, 20655, 7, 6, 0, 0, 20655, 2878, 1, 0, 0, 0, 20656, 20657, 7, 15, 0, 0, 20657, 20658, 7, 3, 0, 0, 20658, 20659, 7, 6, 0, 0, 20659, 20660, 7, 15, 0, 0, 20660, 20661, 7, 3, 0, 0, 20661, 20662, 7, 2, 0, 0, 20662, 20663, 7, 8, 0, 0, 20663, 20664, 7, 6, 0, 0, 20664, 20665, 7, 5, 0, 0, 20665, 20666, 7, 5, 0, 0, 20666, 20667, 7, 2, 0, 0, 20667, 20668, 7, 3, 0, 0, 20668, 2880, 1, 0, 0, 0, 20669, 20670, 7, 15, 0, 0, 20670, 20671, 7, 3, 0, 0, 20671, 20672, 7, 6, 0, 0, 20672, 20673, 7, 5, 0, 0, 20673, 20674, 7, 6, 0, 0, 20674, 20675, 7, 7, 0, 0, 20675, 20676, 7, 4, 0, 0, 20676, 20677, 7, 7, 0, 0, 20677, 20678, 7, 7, 0, 0, 20678, 20679, 7, 13, 0, 0, 20679, 2882, 1, 0, 0, 0, 20680, 20681, 7, 15, 0, 0, 20681, 20682, 7, 3, 0, 0, 20682, 20683, 7, 6, 0, 0, 20683, 20684, 7, 5, 0, 0, 20684, 20685, 7, 6, 0, 0, 20685, 20686, 7, 7, 0, 0, 20686, 20687, 7, 4, 0, 0, 20687, 2884, 1, 0, 0, 0, 20688, 20689, 7, 15, 0, 0, 20689, 20690, 7, 3, 0, 0, 20690, 20691, 7, 6, 0, 0, 20691, 20692, 7, 5, 0, 0, 20692, 20693, 7, 6, 0, 0, 20693, 20694, 7, 7, 0, 0, 20694, 20695, 7, 4, 0, 0, 20695, 20696, 7, 13, 0, 0, 20696, 2886, 1, 0, 0, 0, 20697, 20698, 7, 15, 0, 0, 20698, 20699, 7, 3, 0, 0, 20699, 20700, 7, 6, 0, 0, 20700, 20701, 7, 5, 0, 0, 20701, 20702, 7, 6, 0, 0, 20702, 20703, 7, 3, 0, 0, 20703, 20704, 7, 13, 0, 0, 20704, 20705, 7, 6, 0, 0, 20705, 20706, 5, 95, 0, 0, 20706, 20707, 7, 2, 0, 0, 20707, 20708, 7, 10, 0, 0, 20708, 20709, 7, 9, 0, 0, 20709, 2888, 1, 0, 0, 0, 20710, 20711, 7, 15, 0, 0, 20711, 20712, 7, 3, 0, 0, 20712, 20713, 7, 6, 0, 0, 20713, 20714, 7, 5, 0, 0, 20714, 20715, 7, 6, 0, 0, 20715, 20716, 7, 3, 0, 0, 20716, 20717, 7, 13, 0, 0, 20717, 20718, 7, 6, 0, 0, 20718, 2890, 1, 0, 0, 0, 20719, 20720, 7, 15, 0, 0, 20720, 20721, 7, 3, 0, 0, 20721, 20722, 7, 6, 0, 0, 20722, 20723, 7, 4, 0, 0, 20723, 20724, 7, 4, 0, 0, 20724, 20725, 7, 18, 0, 0, 20725, 2892, 1, 0, 0, 0, 20726, 20727, 7, 15, 0, 0, 20727, 20728, 7, 3, 0, 0, 20728, 20729, 7, 6, 0, 0, 20729, 20730, 7, 13, 0, 0, 20730, 20731, 7, 10, 0, 0, 20731, 20732, 7, 2, 0, 0, 20732, 20733, 7, 12, 0, 0, 20733, 20734, 7, 5, 0, 0, 20734, 2894, 1, 0, 0, 0, 20735, 20736, 7, 15, 0, 0, 20736, 20737, 7, 3, 0, 0, 20737, 20738, 7, 6, 0, 0, 20738, 20739, 7, 13, 0, 0, 20739, 2896, 1, 0, 0, 0, 20740, 20741, 7, 15, 0, 0, 20741, 20742, 7, 3, 0, 0, 20742, 20743, 7, 10, 0, 0, 20743, 20744, 7, 14, 0, 0, 20744, 20745, 7, 0, 0, 0, 20745, 20746, 7, 3, 0, 0, 20746, 20747, 7, 18, 0, 0, 20747, 2898, 1, 0, 0, 0, 20748, 20749, 7, 15, 0, 0, 20749, 20750, 7, 3, 0, 0, 20750, 20751, 7, 10, 0, 0, 20751, 20752, 7, 7, 0, 0, 20752, 20753, 7, 4, 0, 0, 20753, 20754, 7, 1, 0, 0, 20754, 20755, 7, 11, 0, 0, 20755, 20756, 7, 2, 0, 0, 20756, 20757, 7, 1, 0, 0, 20757, 20758, 7, 4, 0, 0, 20758, 20759, 7, 2, 0, 0, 20759, 20760, 7, 8, 0, 0, 20760, 20761, 7, 11, 0, 0, 20761, 20762, 7, 2, 0, 0, 20762, 20763, 7, 1, 0, 0, 20763, 2900, 1, 0, 0, 0, 20764, 20765, 7, 15, 0, 0, 20765, 20766, 7, 3, 0, 0, 20766, 20767, 7, 10, 0, 0, 20767, 20768, 7, 2, 0, 0, 20768, 20769, 7, 3, 0, 0, 20769, 20770, 7, 10, 0, 0, 20770, 20771, 7, 4, 0, 0, 20771, 20772, 7, 18, 0, 0, 20772, 2902, 1, 0, 0, 0, 20773, 20774, 7, 15, 0, 0, 20774, 20775, 7, 3, 0, 0, 20775, 20776, 7, 10, 0, 0, 20776, 20777, 7, 2, 0, 0, 20777, 20778, 7, 3, 0, 0, 20778, 2904, 1, 0, 0, 0, 20779, 20780, 7, 15, 0, 0, 20780, 20781, 7, 3, 0, 0, 20781, 20782, 7, 10, 0, 0, 20782, 20783, 7, 13, 0, 0, 20783, 20784, 7, 0, 0, 0, 20784, 20785, 7, 4, 0, 0, 20785, 20786, 7, 6, 0, 0, 20786, 2906, 1, 0, 0, 0, 20787, 20788, 7, 15, 0, 0, 20788, 20789, 7, 3, 0, 0, 20789, 20790, 7, 10, 0, 0, 20790, 20791, 7, 13, 0, 0, 20791, 20792, 7, 0, 0, 0, 20792, 20793, 7, 4, 0, 0, 20793, 20794, 7, 6, 0, 0, 20794, 20795, 5, 95, 0, 0, 20795, 20796, 7, 5, 0, 0, 20796, 20797, 7, 17, 0, 0, 20797, 20798, 7, 0, 0, 0, 20798, 2908, 1, 0, 0, 0, 20799, 20800, 7, 15, 0, 0, 20800, 20801, 7, 3, 0, 0, 20801, 20802, 7, 10, 0, 0, 20802, 20803, 7, 13, 0, 0, 20803, 20804, 7, 10, 0, 0, 20804, 20805, 7, 11, 0, 0, 20805, 20806, 7, 6, 0, 0, 20806, 20807, 7, 17, 0, 0, 20807, 20808, 7, 6, 0, 0, 20808, 20809, 7, 9, 0, 0, 20809, 2910, 1, 0, 0, 0, 20810, 20811, 7, 15, 0, 0, 20811, 20812, 7, 3, 0, 0, 20812, 20813, 7, 10, 0, 0, 20813, 20814, 7, 13, 0, 0, 20814, 20815, 7, 10, 0, 0, 20815, 20816, 7, 11, 0, 0, 20816, 20817, 7, 6, 0, 0, 20817, 20818, 7, 17, 0, 0, 20818, 20819, 7, 6, 0, 0, 20819, 2912, 1, 0, 0, 0, 20820, 20821, 7, 15, 0, 0, 20821, 20822, 7, 3, 0, 0, 20822, 20823, 7, 10, 0, 0, 20823, 20824, 7, 13, 0, 0, 20824, 20825, 7, 10, 0, 0, 20825, 20826, 7, 11, 0, 0, 20826, 20827, 7, 6, 0, 0, 20827, 20828, 7, 17, 0, 0, 20828, 20829, 7, 6, 0, 0, 20829, 20830, 7, 5, 0, 0, 20830, 2914, 1, 0, 0, 0, 20831, 20832, 7, 15, 0, 0, 20832, 20833, 7, 3, 0, 0, 20833, 20834, 7, 2, 0, 0, 20834, 20835, 7, 8, 0, 0, 20835, 20836, 7, 6, 0, 0, 20836, 20837, 7, 9, 0, 0, 20837, 20838, 7, 12, 0, 0, 20838, 20839, 7, 3, 0, 0, 20839, 20840, 7, 0, 0, 0, 20840, 20841, 7, 11, 0, 0, 20841, 2916, 1, 0, 0, 0, 20842, 20843, 7, 15, 0, 0, 20843, 20844, 7, 3, 0, 0, 20844, 20845, 7, 2, 0, 0, 20845, 20846, 7, 8, 0, 0, 20846, 20847, 7, 6, 0, 0, 20847, 20848, 7, 9, 0, 0, 20848, 20849, 7, 12, 0, 0, 20849, 20850, 7, 3, 0, 0, 20850, 20851, 7, 6, 0, 0, 20851, 2918, 1, 0, 0, 0, 20852, 20853, 7, 15, 0, 0, 20853, 20854, 7, 3, 0, 0, 20854, 20855, 7, 2, 0, 0, 20855, 20856, 7, 8, 0, 0, 20856, 20857, 7, 6, 0, 0, 20857, 20858, 7, 5, 0, 0, 20858, 20859, 7, 5, 0, 0, 20859, 2920, 1, 0, 0, 0, 20860, 20861, 7, 15, 0, 0, 20861, 20862, 7, 3, 0, 0, 20862, 20863, 7, 2, 0, 0, 20863, 20864, 7, 16, 0, 0, 20864, 20865, 7, 10, 0, 0, 20865, 20866, 7, 11, 0, 0, 20866, 20867, 7, 6, 0, 0, 20867, 2922, 1, 0, 0, 0, 20868, 20869, 7, 15, 0, 0, 20869, 20870, 7, 3, 0, 0, 20870, 20871, 7, 2, 0, 0, 20871, 20872, 7, 17, 0, 0, 20872, 20873, 7, 3, 0, 0, 20873, 20874, 7, 0, 0, 0, 20874, 20875, 7, 14, 0, 0, 20875, 2924, 1, 0, 0, 0, 20876, 20877, 7, 15, 0, 0, 20877, 20878, 7, 3, 0, 0, 20878, 20879, 7, 2, 0, 0, 20879, 20880, 7, 20, 0, 0, 20880, 20881, 7, 6, 0, 0, 20881, 20882, 7, 8, 0, 0, 20882, 20883, 7, 4, 0, 0, 20883, 2926, 1, 0, 0, 0, 20884, 20885, 7, 15, 0, 0, 20885, 20886, 7, 3, 0, 0, 20886, 20887, 7, 2, 0, 0, 20887, 20888, 7, 15, 0, 0, 20888, 20889, 7, 0, 0, 0, 20889, 20890, 7, 17, 0, 0, 20890, 20891, 7, 0, 0, 0, 20891, 20892, 7, 4, 0, 0, 20892, 20893, 7, 6, 0, 0, 20893, 2928, 1, 0, 0, 0, 20894, 20895, 7, 15, 0, 0, 20895, 20896, 7, 3, 0, 0, 20896, 20897, 7, 2, 0, 0, 20897, 20898, 7, 15, 0, 0, 20898, 20899, 7, 6, 0, 0, 20899, 20900, 7, 3, 0, 0, 20900, 20901, 7, 4, 0, 0, 20901, 20902, 7, 18, 0, 0, 20902, 2930, 1, 0, 0, 0, 20903, 20904, 7, 15, 0, 0, 20904, 20905, 7, 3, 0, 0, 20905, 20906, 7, 2, 0, 0, 20906, 20907, 7, 4, 0, 0, 20907, 20908, 7, 6, 0, 0, 20908, 20909, 7, 8, 0, 0, 20909, 20910, 7, 4, 0, 0, 20910, 20911, 7, 6, 0, 0, 20911, 20912, 7, 9, 0, 0, 20912, 2932, 1, 0, 0, 0, 20913, 20914, 7, 15, 0, 0, 20914, 20915, 7, 3, 0, 0, 20915, 20916, 7, 2, 0, 0, 20916, 20917, 7, 4, 0, 0, 20917, 20918, 7, 6, 0, 0, 20918, 20919, 7, 8, 0, 0, 20919, 20920, 7, 4, 0, 0, 20920, 20921, 7, 10, 0, 0, 20921, 20922, 7, 2, 0, 0, 20922, 20923, 7, 7, 0, 0, 20923, 2934, 1, 0, 0, 0, 20924, 20925, 7, 15, 0, 0, 20925, 20926, 7, 3, 0, 0, 20926, 20927, 7, 2, 0, 0, 20927, 20928, 7, 4, 0, 0, 20928, 20929, 7, 2, 0, 0, 20929, 20930, 7, 8, 0, 0, 20930, 20931, 7, 2, 0, 0, 20931, 20932, 7, 11, 0, 0, 20932, 2936, 1, 0, 0, 0, 20933, 20934, 7, 15, 0, 0, 20934, 20935, 7, 3, 0, 0, 20935, 20936, 7, 2, 0, 0, 20936, 20937, 7, 25, 0, 0, 20937, 20938, 7, 18, 0, 0, 20938, 2938, 1, 0, 0, 0, 20939, 20940, 7, 15, 0, 0, 20940, 20941, 7, 3, 0, 0, 20941, 20942, 7, 12, 0, 0, 20942, 20943, 7, 7, 0, 0, 20943, 20944, 7, 10, 0, 0, 20944, 20945, 7, 7, 0, 0, 20945, 20946, 7, 17, 0, 0, 20946, 2940, 1, 0, 0, 0, 20947, 20948, 7, 15, 0, 0, 20948, 20949, 7, 12, 0, 0, 20949, 20950, 7, 1, 0, 0, 20950, 20951, 7, 11, 0, 0, 20951, 20952, 7, 10, 0, 0, 20952, 20953, 7, 8, 0, 0, 20953, 2942, 1, 0, 0, 0, 20954, 20955, 7, 15, 0, 0, 20955, 20956, 7, 12, 0, 0, 20956, 20957, 7, 11, 0, 0, 20957, 20958, 7, 11, 0, 0, 20958, 20959, 5, 95, 0, 0, 20959, 20960, 7, 15, 0, 0, 20960, 20961, 7, 3, 0, 0, 20961, 20962, 7, 6, 0, 0, 20962, 20963, 7, 9, 0, 0, 20963, 2944, 1, 0, 0, 0, 20964, 20965, 7, 15, 0, 0, 20965, 20966, 7, 12, 0, 0, 20966, 20967, 7, 3, 0, 0, 20967, 20968, 7, 17, 0, 0, 20968, 20969, 7, 6, 0, 0, 20969, 2946, 1, 0, 0, 0, 20970, 20971, 7, 15, 0, 0, 20971, 20972, 7, 12, 0, 0, 20972, 20973, 7, 5, 0, 0, 20973, 20974, 7, 19, 0, 0, 20974, 20975, 5, 95, 0, 0, 20975, 20976, 7, 15, 0, 0, 20976, 20977, 7, 3, 0, 0, 20977, 20978, 7, 6, 0, 0, 20978, 20979, 7, 9, 0, 0, 20979, 2948, 1, 0, 0, 0, 20980, 20981, 7, 15, 0, 0, 20981, 20982, 7, 12, 0, 0, 20982, 20983, 7, 5, 0, 0, 20983, 20984, 7, 19, 0, 0, 20984, 20985, 5, 95, 0, 0, 20985, 20986, 7, 5, 0, 0, 20986, 20987, 7, 12, 0, 0, 20987, 20988, 7, 1, 0, 0, 20988, 20989, 7, 24, 0, 0, 20989, 2950, 1, 0, 0, 0, 20990, 20991, 7, 15, 0, 0, 20991, 20992, 7, 25, 0, 0, 20992, 20993, 5, 95, 0, 0, 20993, 20994, 7, 16, 0, 0, 20994, 20995, 7, 0, 0, 0, 20995, 20996, 7, 12, 0, 0, 20996, 20997, 7, 11, 0, 0, 20997, 20998, 7, 4, 0, 0, 20998, 20999, 5, 95, 0, 0, 20999, 21000, 7, 4, 0, 0, 21000, 21001, 7, 2, 0, 0, 21001, 21002, 7, 11, 0, 0, 21002, 21003, 7, 6, 0, 0, 21003, 21004, 7, 3, 0, 0, 21004, 21005, 7, 0, 0, 0, 21005, 21006, 7, 7, 0, 0, 21006, 21007, 7, 8, 0, 0, 21007, 21008, 7, 6, 0, 0, 21008, 2952, 1, 0, 0, 0, 21009, 21010, 7, 15, 0, 0, 21010, 21011, 7, 25, 0, 0, 21011, 21012, 5, 95, 0, 0, 21012, 21013, 7, 17, 0, 0, 21013, 21014, 7, 3, 0, 0, 21014, 21015, 7, 0, 0, 0, 21015, 21016, 7, 7, 0, 0, 21016, 21017, 7, 12, 0, 0, 21017, 21018, 7, 11, 0, 0, 21018, 21019, 7, 6, 0, 0, 21019, 2954, 1, 0, 0, 0, 21020, 21021, 7, 15, 0, 0, 21021, 21022, 7, 25, 0, 0, 21022, 21023, 5, 95, 0, 0, 21023, 21024, 7, 20, 0, 0, 21024, 21025, 7, 2, 0, 0, 21025, 21026, 7, 10, 0, 0, 21026, 21027, 7, 7, 0, 0, 21027, 21028, 5, 95, 0, 0, 21028, 21029, 7, 16, 0, 0, 21029, 21030, 7, 10, 0, 0, 21030, 21031, 7, 11, 0, 0, 21031, 21032, 7, 4, 0, 0, 21032, 21033, 7, 6, 0, 0, 21033, 21034, 7, 3, 0, 0, 21034, 2956, 1, 0, 0, 0, 21035, 21036, 7, 24, 0, 0, 21036, 21037, 7, 1, 0, 0, 21037, 21038, 5, 95, 0, 0, 21038, 21039, 7, 7, 0, 0, 21039, 21040, 7, 0, 0, 0, 21040, 21041, 7, 14, 0, 0, 21041, 21042, 7, 6, 0, 0, 21042, 2958, 1, 0, 0, 0, 21043, 21044, 7, 24, 0, 0, 21044, 21045, 7, 12, 0, 0, 21045, 21046, 7, 0, 0, 0, 21046, 21047, 7, 3, 0, 0, 21047, 21048, 7, 4, 0, 0, 21048, 21049, 7, 6, 0, 0, 21049, 21050, 7, 3, 0, 0, 21050, 21051, 7, 5, 0, 0, 21051, 2960, 1, 0, 0, 0, 21052, 21053, 7, 24, 0, 0, 21053, 21054, 7, 12, 0, 0, 21054, 21055, 7, 6, 0, 0, 21055, 21056, 7, 3, 0, 0, 21056, 21057, 7, 18, 0, 0, 21057, 21058, 5, 95, 0, 0, 21058, 21059, 7, 1, 0, 0, 21059, 21060, 7, 11, 0, 0, 21060, 21061, 7, 2, 0, 0, 21061, 21062, 7, 8, 0, 0, 21062, 21063, 7, 21, 0, 0, 21063, 2962, 1, 0, 0, 0, 21064, 21065, 7, 24, 0, 0, 21065, 21066, 7, 12, 0, 0, 21066, 21067, 7, 6, 0, 0, 21067, 21068, 7, 3, 0, 0, 21068, 21069, 7, 18, 0, 0, 21069, 2964, 1, 0, 0, 0, 21070, 21071, 7, 24, 0, 0, 21071, 21072, 7, 12, 0, 0, 21072, 21073, 7, 6, 0, 0, 21073, 21074, 7, 12, 0, 0, 21074, 21075, 7, 6, 0, 0, 21075, 21076, 5, 95, 0, 0, 21076, 21077, 7, 8, 0, 0, 21077, 21078, 7, 12, 0, 0, 21078, 21079, 7, 3, 0, 0, 21079, 21080, 7, 3, 0, 0, 21080, 2966, 1, 0, 0, 0, 21081, 21082, 7, 24, 0, 0, 21082, 21083, 7, 12, 0, 0, 21083, 21084, 7, 6, 0, 0, 21084, 21085, 7, 12, 0, 0, 21085, 21086, 7, 6, 0, 0, 21086, 2968, 1, 0, 0, 0, 21087, 21088, 7, 24, 0, 0, 21088, 21089, 7, 12, 0, 0, 21089, 21090, 7, 6, 0, 0, 21090, 21091, 7, 12, 0, 0, 21091, 21092, 7, 6, 0, 0, 21092, 21093, 5, 95, 0, 0, 21093, 21094, 7, 3, 0, 0, 21094, 21095, 7, 2, 0, 0, 21095, 21096, 7, 22, 0, 0, 21096, 21097, 7, 15, 0, 0, 21097, 2970, 1, 0, 0, 0, 21098, 21099, 7, 24, 0, 0, 21099, 21100, 7, 12, 0, 0, 21100, 21101, 7, 10, 0, 0, 21101, 21102, 7, 6, 0, 0, 21102, 21103, 7, 5, 0, 0, 21103, 21104, 7, 8, 0, 0, 21104, 21105, 7, 6, 0, 0, 21105, 2972, 1, 0, 0, 0, 21106, 21107, 7, 24, 0, 0, 21107, 21108, 7, 12, 0, 0, 21108, 21109, 7, 2, 0, 0, 21109, 21110, 7, 3, 0, 0, 21110, 21111, 7, 12, 0, 0, 21111, 21112, 7, 14, 0, 0, 21112, 2974, 1, 0, 0, 0, 21113, 21114, 7, 24, 0, 0, 21114, 21115, 7, 12, 0, 0, 21115, 21116, 7, 2, 0, 0, 21116, 21117, 7, 4, 0, 0, 21117, 21118, 7, 0, 0, 0, 21118, 2976, 1, 0, 0, 0, 21119, 21120, 7, 24, 0, 0, 21120, 21121, 7, 12, 0, 0, 21121, 21122, 7, 2, 0, 0, 21122, 21123, 7, 4, 0, 0, 21123, 21124, 7, 0, 0, 0, 21124, 21125, 7, 17, 0, 0, 21125, 21126, 7, 3, 0, 0, 21126, 21127, 7, 2, 0, 0, 21127, 21128, 7, 12, 0, 0, 21128, 21129, 7, 15, 0, 0, 21129, 2978, 1, 0, 0, 0, 21130, 21131, 7, 3, 0, 0, 21131, 21132, 7, 0, 0, 0, 21132, 21133, 7, 10, 0, 0, 21133, 21134, 7, 5, 0, 0, 21134, 21135, 7, 6, 0, 0, 21135, 2980, 1, 0, 0, 0, 21136, 21137, 7, 3, 0, 0, 21137, 21138, 7, 0, 0, 0, 21138, 21139, 7, 7, 0, 0, 21139, 21140, 7, 9, 0, 0, 21140, 21141, 7, 2, 0, 0, 21141, 21142, 7, 14, 0, 0, 21142, 21143, 5, 95, 0, 0, 21143, 21144, 7, 11, 0, 0, 21144, 21145, 7, 2, 0, 0, 21145, 21146, 7, 8, 0, 0, 21146, 21147, 7, 0, 0, 0, 21147, 21148, 7, 11, 0, 0, 21148, 2982, 1, 0, 0, 0, 21149, 21150, 7, 3, 0, 0, 21150, 21151, 7, 0, 0, 0, 21151, 21152, 7, 7, 0, 0, 21152, 21153, 7, 9, 0, 0, 21153, 21154, 7, 2, 0, 0, 21154, 21155, 7, 14, 0, 0, 21155, 2984, 1, 0, 0, 0, 21156, 21157, 7, 3, 0, 0, 21157, 21158, 7, 0, 0, 0, 21158, 21159, 7, 7, 0, 0, 21159, 21160, 7, 17, 0, 0, 21160, 21161, 7, 6, 0, 0, 21161, 2986, 1, 0, 0, 0, 21162, 21163, 7, 3, 0, 0, 21163, 21164, 7, 0, 0, 0, 21164, 21165, 7, 7, 0, 0, 21165, 21166, 7, 21, 0, 0, 21166, 21167, 7, 14, 0, 0, 21167, 2988, 1, 0, 0, 0, 21168, 21169, 7, 3, 0, 0, 21169, 21170, 7, 0, 0, 0, 21170, 21171, 7, 15, 0, 0, 21171, 21172, 7, 10, 0, 0, 21172, 21173, 7, 9, 0, 0, 21173, 21174, 7, 11, 0, 0, 21174, 21175, 7, 18, 0, 0, 21175, 2990, 1, 0, 0, 0, 21176, 21177, 7, 3, 0, 0, 21177, 21178, 7, 0, 0, 0, 21178, 21179, 7, 22, 0, 0, 21179, 2992, 1, 0, 0, 0, 21180, 21181, 7, 3, 0, 0, 21181, 21182, 7, 0, 0, 0, 21182, 21183, 7, 22, 0, 0, 21183, 21184, 7, 4, 0, 0, 21184, 21185, 7, 2, 0, 0, 21185, 21186, 7, 19, 0, 0, 21186, 21187, 7, 6, 0, 0, 21187, 21188, 7, 25, 0, 0, 21188, 2994, 1, 0, 0, 0, 21189, 21190, 7, 3, 0, 0, 21190, 21191, 7, 0, 0, 0, 21191, 21192, 7, 22, 0, 0, 21192, 21193, 7, 4, 0, 0, 21193, 21194, 7, 2, 0, 0, 21194, 21195, 7, 7, 0, 0, 21195, 21196, 7, 19, 0, 0, 21196, 21197, 7, 6, 0, 0, 21197, 21198, 7, 25, 0, 0, 21198, 2996, 1, 0, 0, 0, 21199, 21200, 7, 3, 0, 0, 21200, 21201, 7, 1, 0, 0, 21201, 21202, 7, 0, 0, 0, 21202, 2998, 1, 0, 0, 0, 21203, 21204, 7, 3, 0, 0, 21204, 21205, 7, 1, 0, 0, 21205, 21206, 7, 2, 0, 0, 21206, 21207, 5, 95, 0, 0, 21207, 21208, 7, 2, 0, 0, 21208, 21209, 7, 12, 0, 0, 21209, 21210, 7, 4, 0, 0, 21210, 21211, 7, 11, 0, 0, 21211, 21212, 7, 10, 0, 0, 21212, 21213, 7, 7, 0, 0, 21213, 21214, 7, 6, 0, 0, 21214, 3000, 1, 0, 0, 0, 21215, 21216, 7, 3, 0, 0, 21216, 21217, 7, 8, 0, 0, 21217, 21218, 7, 16, 0, 0, 21218, 21219, 7, 10, 0, 0, 21219, 21220, 7, 11, 0, 0, 21220, 21221, 7, 6, 0, 0, 21221, 3002, 1, 0, 0, 0, 21222, 21223, 7, 3, 0, 0, 21223, 21224, 7, 9, 0, 0, 21224, 21225, 7, 1, 0, 0, 21225, 21226, 7, 0, 0, 0, 21226, 3004, 1, 0, 0, 0, 21227, 21228, 7, 3, 0, 0, 21228, 21229, 7, 6, 0, 0, 21229, 21230, 7, 0, 0, 0, 21230, 21231, 7, 9, 0, 0, 21231, 3006, 1, 0, 0, 0, 21232, 21233, 7, 3, 0, 0, 21233, 21234, 7, 6, 0, 0, 21234, 21235, 7, 0, 0, 0, 21235, 21236, 7, 9, 0, 0, 21236, 21237, 7, 5, 0, 0, 21237, 3008, 1, 0, 0, 0, 21238, 21239, 7, 3, 0, 0, 21239, 21240, 7, 6, 0, 0, 21240, 21241, 7, 0, 0, 0, 21241, 21242, 7, 9, 0, 0, 21242, 21243, 7, 5, 0, 0, 21243, 21244, 7, 10, 0, 0, 21244, 21245, 7, 23, 0, 0, 21245, 21246, 7, 6, 0, 0, 21246, 3010, 1, 0, 0, 0, 21247, 21248, 7, 3, 0, 0, 21248, 21249, 7, 6, 0, 0, 21249, 21250, 7, 0, 0, 0, 21250, 21251, 7, 11, 0, 0, 21251, 21252, 7, 14, 0, 0, 21252, 3012, 1, 0, 0, 0, 21253, 21254, 7, 3, 0, 0, 21254, 21255, 7, 6, 0, 0, 21255, 21256, 7, 0, 0, 0, 21256, 21257, 7, 11, 0, 0, 21257, 3014, 1, 0, 0, 0, 21258, 21259, 7, 3, 0, 0, 21259, 21260, 7, 6, 0, 0, 21260, 21261, 7, 1, 0, 0, 21261, 21262, 7, 0, 0, 0, 21262, 21263, 7, 11, 0, 0, 21263, 21264, 7, 0, 0, 0, 21264, 21265, 7, 7, 0, 0, 21265, 21266, 7, 8, 0, 0, 21266, 21267, 7, 6, 0, 0, 21267, 3016, 1, 0, 0, 0, 21268, 21269, 7, 3, 0, 0, 21269, 21270, 7, 6, 0, 0, 21270, 21271, 7, 1, 0, 0, 21271, 21272, 7, 12, 0, 0, 21272, 21273, 7, 10, 0, 0, 21273, 21274, 7, 11, 0, 0, 21274, 21275, 7, 9, 0, 0, 21275, 3018, 1, 0, 0, 0, 21276, 21277, 7, 3, 0, 0, 21277, 21278, 7, 6, 0, 0, 21278, 21279, 7, 8, 0, 0, 21279, 21280, 7, 2, 0, 0, 21280, 21281, 7, 3, 0, 0, 21281, 21282, 7, 9, 0, 0, 21282, 3020, 1, 0, 0, 0, 21283, 21284, 7, 3, 0, 0, 21284, 21285, 7, 6, 0, 0, 21285, 21286, 7, 8, 0, 0, 21286, 21287, 7, 2, 0, 0, 21287, 21288, 7, 3, 0, 0, 21288, 21289, 7, 9, 0, 0, 21289, 21290, 7, 5, 0, 0, 21290, 3022, 1, 0, 0, 0, 21291, 21292, 7, 3, 0, 0, 21292, 21293, 7, 6, 0, 0, 21293, 21294, 7, 8, 0, 0, 21294, 21295, 7, 2, 0, 0, 21295, 21296, 7, 3, 0, 0, 21296, 21297, 7, 9, 0, 0, 21297, 21298, 7, 5, 0, 0, 21298, 21299, 5, 95, 0, 0, 21299, 21300, 7, 15, 0, 0, 21300, 21301, 7, 6, 0, 0, 21301, 21302, 7, 3, 0, 0, 21302, 21303, 5, 95, 0, 0, 21303, 21304, 7, 1, 0, 0, 21304, 21305, 7, 11, 0, 0, 21305, 21306, 7, 2, 0, 0, 21306, 21307, 7, 8, 0, 0, 21307, 21308, 7, 21, 0, 0, 21308, 3024, 1, 0, 0, 0, 21309, 21310, 7, 3, 0, 0, 21310, 21311, 7, 6, 0, 0, 21311, 21312, 7, 8, 0, 0, 21312, 21313, 7, 2, 0, 0, 21313, 21314, 7, 13, 0, 0, 21314, 21315, 7, 6, 0, 0, 21315, 21316, 7, 3, 0, 0, 21316, 21317, 7, 0, 0, 0, 21317, 21318, 7, 1, 0, 0, 21318, 21319, 7, 11, 0, 0, 21319, 21320, 7, 6, 0, 0, 21320, 3026, 1, 0, 0, 0, 21321, 21322, 7, 3, 0, 0, 21322, 21323, 7, 6, 0, 0, 21323, 21324, 7, 8, 0, 0, 21324, 21325, 7, 2, 0, 0, 21325, 21326, 7, 13, 0, 0, 21326, 21327, 7, 6, 0, 0, 21327, 21328, 7, 3, 0, 0, 21328, 3028, 1, 0, 0, 0, 21329, 21330, 7, 3, 0, 0, 21330, 21331, 7, 6, 0, 0, 21331, 21332, 7, 8, 0, 0, 21332, 21333, 7, 2, 0, 0, 21333, 21334, 7, 13, 0, 0, 21334, 21335, 7, 6, 0, 0, 21335, 21336, 7, 3, 0, 0, 21336, 21337, 7, 18, 0, 0, 21337, 3030, 1, 0, 0, 0, 21338, 21339, 7, 3, 0, 0, 21339, 21340, 7, 6, 0, 0, 21340, 21341, 7, 8, 0, 0, 21341, 21342, 7, 18, 0, 0, 21342, 21343, 7, 8, 0, 0, 21343, 21344, 7, 11, 0, 0, 21344, 21345, 7, 6, 0, 0, 21345, 21346, 7, 1, 0, 0, 21346, 21347, 7, 10, 0, 0, 21347, 21348, 7, 7, 0, 0, 21348, 3032, 1, 0, 0, 0, 21349, 21350, 7, 3, 0, 0, 21350, 21351, 7, 6, 0, 0, 21351, 21352, 7, 8, 0, 0, 21352, 21353, 7, 18, 0, 0, 21353, 21354, 7, 8, 0, 0, 21354, 21355, 7, 11, 0, 0, 21355, 21356, 7, 6, 0, 0, 21356, 3034, 1, 0, 0, 0, 21357, 21358, 7, 3, 0, 0, 21358, 21359, 7, 6, 0, 0, 21359, 21360, 7, 9, 0, 0, 21360, 21361, 7, 0, 0, 0, 21361, 21362, 7, 8, 0, 0, 21362, 21363, 7, 4, 0, 0, 21363, 21364, 7, 10, 0, 0, 21364, 21365, 7, 2, 0, 0, 21365, 21366, 7, 7, 0, 0, 21366, 3036, 1, 0, 0, 0, 21367, 21368, 7, 3, 0, 0, 21368, 21369, 7, 6, 0, 0, 21369, 21370, 7, 9, 0, 0, 21370, 21371, 7, 6, 0, 0, 21371, 21372, 7, 16, 0, 0, 21372, 21373, 7, 10, 0, 0, 21373, 21374, 7, 7, 0, 0, 21374, 21375, 7, 6, 0, 0, 21375, 3038, 1, 0, 0, 0, 21376, 21377, 7, 3, 0, 0, 21377, 21378, 7, 6, 0, 0, 21378, 21379, 7, 9, 0, 0, 21379, 21380, 7, 2, 0, 0, 21380, 3040, 1, 0, 0, 0, 21381, 21382, 7, 3, 0, 0, 21382, 21383, 7, 6, 0, 0, 21383, 21384, 7, 9, 0, 0, 21384, 21385, 7, 12, 0, 0, 21385, 21386, 7, 8, 0, 0, 21386, 21387, 7, 6, 0, 0, 21387, 21388, 7, 9, 0, 0, 21388, 3042, 1, 0, 0, 0, 21389, 21390, 7, 3, 0, 0, 21390, 21391, 7, 6, 0, 0, 21391, 21392, 7, 9, 0, 0, 21392, 21393, 7, 12, 0, 0, 21393, 21394, 7, 7, 0, 0, 21394, 21395, 7, 9, 0, 0, 21395, 21396, 7, 0, 0, 0, 21396, 21397, 7, 7, 0, 0, 21397, 21398, 7, 8, 0, 0, 21398, 21399, 7, 18, 0, 0, 21399, 3044, 1, 0, 0, 0, 21400, 21401, 7, 3, 0, 0, 21401, 21402, 7, 6, 0, 0, 21402, 21403, 7, 16, 0, 0, 21403, 21404, 5, 95, 0, 0, 21404, 21405, 7, 8, 0, 0, 21405, 21406, 7, 0, 0, 0, 21406, 21407, 7, 5, 0, 0, 21407, 21408, 7, 8, 0, 0, 21408, 21409, 7, 0, 0, 0, 21409, 21410, 7, 9, 0, 0, 21410, 21411, 7, 6, 0, 0, 21411, 21412, 5, 95, 0, 0, 21412, 21413, 7, 8, 0, 0, 21413, 21414, 7, 12, 0, 0, 21414, 21415, 7, 3, 0, 0, 21415, 21416, 7, 5, 0, 0, 21416, 21417, 7, 2, 0, 0, 21417, 21418, 7, 3, 0, 0, 21418, 3046, 1, 0, 0, 0, 21419, 21420, 7, 3, 0, 0, 21420, 21421, 7, 6, 0, 0, 21421, 21422, 7, 16, 0, 0, 21422, 21423, 7, 6, 0, 0, 21423, 21424, 7, 3, 0, 0, 21424, 21425, 7, 6, 0, 0, 21425, 21426, 7, 7, 0, 0, 21426, 21427, 7, 8, 0, 0, 21427, 21428, 7, 6, 0, 0, 21428, 21429, 7, 9, 0, 0, 21429, 3048, 1, 0, 0, 0, 21430, 21431, 7, 3, 0, 0, 21431, 21432, 7, 6, 0, 0, 21432, 21433, 7, 16, 0, 0, 21433, 21434, 7, 6, 0, 0, 21434, 21435, 7, 3, 0, 0, 21435, 21436, 7, 6, 0, 0, 21436, 21437, 7, 7, 0, 0, 21437, 21438, 7, 8, 0, 0, 21438, 21439, 7, 6, 0, 0, 21439, 3050, 1, 0, 0, 0, 21440, 21441, 7, 3, 0, 0, 21441, 21442, 7, 6, 0, 0, 21442, 21443, 7, 16, 0, 0, 21443, 21444, 7, 6, 0, 0, 21444, 21445, 7, 3, 0, 0, 21445, 21446, 7, 6, 0, 0, 21446, 21447, 7, 7, 0, 0, 21447, 21448, 7, 8, 0, 0, 21448, 21449, 7, 6, 0, 0, 21449, 21450, 7, 5, 0, 0, 21450, 3052, 1, 0, 0, 0, 21451, 21452, 7, 3, 0, 0, 21452, 21453, 7, 6, 0, 0, 21453, 21454, 7, 16, 0, 0, 21454, 21455, 7, 6, 0, 0, 21455, 21456, 7, 3, 0, 0, 21456, 21457, 7, 6, 0, 0, 21457, 21458, 7, 7, 0, 0, 21458, 21459, 7, 8, 0, 0, 21459, 21460, 7, 10, 0, 0, 21460, 21461, 7, 7, 0, 0, 21461, 21462, 7, 17, 0, 0, 21462, 3054, 1, 0, 0, 0, 21463, 21464, 7, 3, 0, 0, 21464, 21465, 7, 6, 0, 0, 21465, 21466, 7, 16, 0, 0, 21466, 3056, 1, 0, 0, 0, 21467, 21468, 7, 3, 0, 0, 21468, 21469, 7, 6, 0, 0, 21469, 21470, 7, 16, 0, 0, 21470, 21471, 7, 3, 0, 0, 21471, 21472, 7, 6, 0, 0, 21472, 21473, 7, 5, 0, 0, 21473, 21474, 7, 19, 0, 0, 21474, 3058, 1, 0, 0, 0, 21475, 21476, 7, 3, 0, 0, 21476, 21477, 7, 6, 0, 0, 21477, 21478, 7, 16, 0, 0, 21478, 21479, 7, 4, 0, 0, 21479, 21480, 7, 2, 0, 0, 21480, 21481, 7, 19, 0, 0, 21481, 21482, 7, 6, 0, 0, 21482, 21483, 7, 25, 0, 0, 21483, 3060, 1, 0, 0, 0, 21484, 21485, 7, 3, 0, 0, 21485, 21486, 7, 6, 0, 0, 21486, 21487, 7, 17, 0, 0, 21487, 21488, 7, 6, 0, 0, 21488, 21489, 7, 25, 0, 0, 21489, 21490, 7, 15, 0, 0, 21490, 21491, 5, 95, 0, 0, 21491, 21492, 7, 8, 0, 0, 21492, 21493, 7, 2, 0, 0, 21493, 21494, 7, 12, 0, 0, 21494, 21495, 7, 7, 0, 0, 21495, 21496, 7, 4, 0, 0, 21496, 3062, 1, 0, 0, 0, 21497, 21498, 7, 3, 0, 0, 21498, 21499, 7, 6, 0, 0, 21499, 21500, 7, 17, 0, 0, 21500, 21501, 7, 6, 0, 0, 21501, 21502, 7, 25, 0, 0, 21502, 21503, 7, 15, 0, 0, 21503, 21504, 5, 95, 0, 0, 21504, 21505, 7, 10, 0, 0, 21505, 21506, 7, 7, 0, 0, 21506, 21507, 7, 5, 0, 0, 21507, 21508, 7, 4, 0, 0, 21508, 21509, 7, 3, 0, 0, 21509, 3064, 1, 0, 0, 0, 21510, 21511, 7, 3, 0, 0, 21511, 21512, 7, 6, 0, 0, 21512, 21513, 7, 17, 0, 0, 21513, 21514, 7, 6, 0, 0, 21514, 21515, 7, 25, 0, 0, 21515, 21516, 7, 15, 0, 0, 21516, 21517, 5, 95, 0, 0, 21517, 21518, 7, 11, 0, 0, 21518, 21519, 7, 10, 0, 0, 21519, 21520, 7, 21, 0, 0, 21520, 21521, 7, 6, 0, 0, 21521, 3066, 1, 0, 0, 0, 21522, 21523, 7, 3, 0, 0, 21523, 21524, 7, 6, 0, 0, 21524, 21525, 7, 17, 0, 0, 21525, 21526, 7, 6, 0, 0, 21526, 21527, 7, 25, 0, 0, 21527, 21528, 7, 15, 0, 0, 21528, 21529, 5, 95, 0, 0, 21529, 21530, 7, 3, 0, 0, 21530, 21531, 7, 6, 0, 0, 21531, 21532, 7, 15, 0, 0, 21532, 21533, 7, 11, 0, 0, 21533, 21534, 7, 0, 0, 0, 21534, 21535, 7, 8, 0, 0, 21535, 21536, 7, 6, 0, 0, 21536, 3068, 1, 0, 0, 0, 21537, 21538, 7, 3, 0, 0, 21538, 21539, 7, 6, 0, 0, 21539, 21540, 7, 17, 0, 0, 21540, 21541, 7, 6, 0, 0, 21541, 21542, 7, 25, 0, 0, 21542, 21543, 7, 15, 0, 0, 21543, 21544, 5, 95, 0, 0, 21544, 21545, 7, 5, 0, 0, 21545, 21546, 7, 12, 0, 0, 21546, 21547, 7, 1, 0, 0, 21547, 21548, 7, 5, 0, 0, 21548, 21549, 7, 4, 0, 0, 21549, 21550, 7, 3, 0, 0, 21550, 3070, 1, 0, 0, 0, 21551, 21552, 7, 3, 0, 0, 21552, 21553, 7, 6, 0, 0, 21553, 21554, 7, 17, 0, 0, 21554, 21555, 7, 10, 0, 0, 21555, 21556, 7, 5, 0, 0, 21556, 21557, 7, 4, 0, 0, 21557, 21558, 7, 6, 0, 0, 21558, 21559, 7, 3, 0, 0, 21559, 3072, 1, 0, 0, 0, 21560, 21561, 7, 3, 0, 0, 21561, 21562, 7, 6, 0, 0, 21562, 21563, 7, 17, 0, 0, 21563, 21564, 7, 3, 0, 0, 21564, 21565, 5, 95, 0, 0, 21565, 21566, 7, 0, 0, 0, 21566, 21567, 7, 13, 0, 0, 21567, 21568, 7, 17, 0, 0, 21568, 21569, 7, 25, 0, 0, 21569, 3074, 1, 0, 0, 0, 21570, 21571, 7, 3, 0, 0, 21571, 21572, 7, 6, 0, 0, 21572, 21573, 7, 17, 0, 0, 21573, 21574, 7, 3, 0, 0, 21574, 21575, 5, 95, 0, 0, 21575, 21576, 7, 0, 0, 0, 21576, 21577, 7, 13, 0, 0, 21577, 21578, 7, 17, 0, 0, 21578, 21579, 7, 18, 0, 0, 21579, 3076, 1, 0, 0, 0, 21580, 21581, 7, 3, 0, 0, 21581, 21582, 7, 6, 0, 0, 21582, 21583, 7, 17, 0, 0, 21583, 21584, 7, 3, 0, 0, 21584, 21585, 5, 95, 0, 0, 21585, 21586, 7, 8, 0, 0, 21586, 21587, 7, 2, 0, 0, 21587, 21588, 7, 12, 0, 0, 21588, 21589, 7, 7, 0, 0, 21589, 21590, 7, 4, 0, 0, 21590, 3078, 1, 0, 0, 0, 21591, 21592, 7, 3, 0, 0, 21592, 21593, 7, 6, 0, 0, 21593, 21594, 7, 17, 0, 0, 21594, 21595, 7, 3, 0, 0, 21595, 21596, 5, 95, 0, 0, 21596, 21597, 7, 10, 0, 0, 21597, 21598, 7, 7, 0, 0, 21598, 21599, 7, 4, 0, 0, 21599, 21600, 7, 6, 0, 0, 21600, 21601, 7, 3, 0, 0, 21601, 21602, 7, 8, 0, 0, 21602, 21603, 7, 6, 0, 0, 21603, 21604, 7, 15, 0, 0, 21604, 21605, 7, 4, 0, 0, 21605, 3080, 1, 0, 0, 0, 21606, 21607, 7, 3, 0, 0, 21607, 21608, 7, 6, 0, 0, 21608, 21609, 7, 17, 0, 0, 21609, 21610, 7, 3, 0, 0, 21610, 21611, 5, 95, 0, 0, 21611, 21612, 7, 3, 0, 0, 21612, 21613, 5, 50, 0, 0, 21613, 3082, 1, 0, 0, 0, 21614, 21615, 7, 3, 0, 0, 21615, 21616, 7, 6, 0, 0, 21616, 21617, 7, 17, 0, 0, 21617, 21618, 7, 3, 0, 0, 21618, 21619, 5, 95, 0, 0, 21619, 21620, 7, 5, 0, 0, 21620, 21621, 7, 11, 0, 0, 21621, 21622, 7, 2, 0, 0, 21622, 21623, 7, 15, 0, 0, 21623, 21624, 7, 6, 0, 0, 21624, 3084, 1, 0, 0, 0, 21625, 21626, 7, 3, 0, 0, 21626, 21627, 7, 6, 0, 0, 21627, 21628, 7, 17, 0, 0, 21628, 21629, 7, 3, 0, 0, 21629, 21630, 5, 95, 0, 0, 21630, 21631, 7, 5, 0, 0, 21631, 21632, 7, 25, 0, 0, 21632, 21633, 7, 25, 0, 0, 21633, 3086, 1, 0, 0, 0, 21634, 21635, 7, 3, 0, 0, 21635, 21636, 7, 6, 0, 0, 21636, 21637, 7, 17, 0, 0, 21637, 21638, 7, 3, 0, 0, 21638, 21639, 5, 95, 0, 0, 21639, 21640, 7, 5, 0, 0, 21640, 21641, 7, 25, 0, 0, 21641, 21642, 7, 18, 0, 0, 21642, 3088, 1, 0, 0, 0, 21643, 21644, 7, 3, 0, 0, 21644, 21645, 7, 6, 0, 0, 21645, 21646, 7, 17, 0, 0, 21646, 21647, 7, 3, 0, 0, 21647, 21648, 5, 95, 0, 0, 21648, 21649, 7, 5, 0, 0, 21649, 21650, 7, 18, 0, 0, 21650, 21651, 7, 18, 0, 0, 21651, 3090, 1, 0, 0, 0, 21652, 21653, 7, 3, 0, 0, 21653, 21654, 7, 6, 0, 0, 21654, 21655, 7, 17, 0, 0, 21655, 21656, 7, 12, 0, 0, 21656, 21657, 7, 11, 0, 0, 21657, 21658, 7, 0, 0, 0, 21658, 21659, 7, 3, 0, 0, 21659, 3092, 1, 0, 0, 0, 21660, 21661, 7, 3, 0, 0, 21661, 21662, 7, 6, 0, 0, 21662, 21663, 7, 20, 0, 0, 21663, 21664, 7, 6, 0, 0, 21664, 21665, 7, 8, 0, 0, 21665, 21666, 7, 4, 0, 0, 21666, 3094, 1, 0, 0, 0, 21667, 21668, 7, 3, 0, 0, 21668, 21669, 7, 6, 0, 0, 21669, 21670, 7, 21, 0, 0, 21670, 21671, 7, 6, 0, 0, 21671, 21672, 7, 18, 0, 0, 21672, 3096, 1, 0, 0, 0, 21673, 21674, 7, 3, 0, 0, 21674, 21675, 7, 6, 0, 0, 21675, 21676, 7, 11, 0, 0, 21676, 21677, 7, 0, 0, 0, 21677, 21678, 7, 4, 0, 0, 21678, 21679, 7, 10, 0, 0, 21679, 21680, 7, 2, 0, 0, 21680, 21681, 7, 7, 0, 0, 21681, 21682, 7, 0, 0, 0, 21682, 21683, 7, 11, 0, 0, 21683, 3098, 1, 0, 0, 0, 21684, 21685, 7, 3, 0, 0, 21685, 21686, 7, 6, 0, 0, 21686, 21687, 7, 11, 0, 0, 21687, 21688, 7, 10, 0, 0, 21688, 21689, 7, 6, 0, 0, 21689, 21690, 7, 5, 0, 0, 21690, 21691, 5, 95, 0, 0, 21691, 21692, 7, 2, 0, 0, 21692, 21693, 7, 7, 0, 0, 21693, 3100, 1, 0, 0, 0, 21694, 21695, 7, 3, 0, 0, 21695, 21696, 7, 6, 0, 0, 21696, 21697, 7, 11, 0, 0, 21697, 21698, 7, 2, 0, 0, 21698, 21699, 7, 8, 0, 0, 21699, 21700, 7, 0, 0, 0, 21700, 21701, 7, 4, 0, 0, 21701, 21702, 7, 6, 0, 0, 21702, 3102, 1, 0, 0, 0, 21703, 21704, 7, 3, 0, 0, 21704, 21705, 7, 6, 0, 0, 21705, 21706, 7, 11, 0, 0, 21706, 21707, 7, 18, 0, 0, 21707, 3104, 1, 0, 0, 0, 21708, 21709, 7, 3, 0, 0, 21709, 21710, 7, 6, 0, 0, 21710, 21711, 7, 14, 0, 0, 21711, 21712, 7, 0, 0, 0, 21712, 21713, 7, 10, 0, 0, 21713, 21714, 7, 7, 0, 0, 21714, 21715, 7, 9, 0, 0, 21715, 21716, 7, 6, 0, 0, 21716, 21717, 7, 3, 0, 0, 21717, 3106, 1, 0, 0, 0, 21718, 21719, 7, 3, 0, 0, 21719, 21720, 7, 6, 0, 0, 21720, 21721, 7, 14, 0, 0, 21721, 21722, 7, 2, 0, 0, 21722, 21723, 7, 4, 0, 0, 21723, 21724, 7, 6, 0, 0, 21724, 3108, 1, 0, 0, 0, 21725, 21726, 7, 3, 0, 0, 21726, 21727, 7, 6, 0, 0, 21727, 21728, 7, 14, 0, 0, 21728, 21729, 7, 2, 0, 0, 21729, 21730, 7, 4, 0, 0, 21730, 21731, 7, 6, 0, 0, 21731, 21732, 5, 95, 0, 0, 21732, 21733, 7, 14, 0, 0, 21733, 21734, 7, 0, 0, 0, 21734, 21735, 7, 15, 0, 0, 21735, 21736, 7, 15, 0, 0, 21736, 21737, 7, 6, 0, 0, 21737, 21738, 7, 9, 0, 0, 21738, 3110, 1, 0, 0, 0, 21739, 21740, 7, 3, 0, 0, 21740, 21741, 7, 6, 0, 0, 21741, 21742, 7, 14, 0, 0, 21742, 21743, 7, 2, 0, 0, 21743, 21744, 7, 13, 0, 0, 21744, 21745, 7, 6, 0, 0, 21745, 3112, 1, 0, 0, 0, 21746, 21747, 7, 3, 0, 0, 21747, 21748, 7, 6, 0, 0, 21748, 21749, 7, 7, 0, 0, 21749, 21750, 7, 0, 0, 0, 21750, 21751, 7, 14, 0, 0, 21751, 21752, 7, 6, 0, 0, 21752, 3114, 1, 0, 0, 0, 21753, 21754, 7, 3, 0, 0, 21754, 21755, 7, 6, 0, 0, 21755, 21756, 7, 15, 0, 0, 21756, 21757, 7, 0, 0, 0, 21757, 21758, 7, 10, 0, 0, 21758, 21759, 7, 3, 0, 0, 21759, 3116, 1, 0, 0, 0, 21760, 21761, 7, 3, 0, 0, 21761, 21762, 7, 6, 0, 0, 21762, 21763, 7, 15, 0, 0, 21763, 21764, 7, 6, 0, 0, 21764, 21765, 7, 0, 0, 0, 21765, 21766, 7, 4, 0, 0, 21766, 3118, 1, 0, 0, 0, 21767, 21768, 7, 3, 0, 0, 21768, 21769, 7, 6, 0, 0, 21769, 21770, 7, 15, 0, 0, 21770, 21771, 7, 11, 0, 0, 21771, 21772, 7, 0, 0, 0, 21772, 21773, 7, 8, 0, 0, 21773, 21774, 7, 6, 0, 0, 21774, 3120, 1, 0, 0, 0, 21775, 21776, 7, 3, 0, 0, 21776, 21777, 7, 6, 0, 0, 21777, 21778, 7, 15, 0, 0, 21778, 21779, 7, 11, 0, 0, 21779, 21780, 7, 10, 0, 0, 21780, 21781, 7, 8, 0, 0, 21781, 21782, 7, 0, 0, 0, 21782, 21783, 7, 4, 0, 0, 21783, 21784, 7, 10, 0, 0, 21784, 21785, 7, 2, 0, 0, 21785, 21786, 7, 7, 0, 0, 21786, 3122, 1, 0, 0, 0, 21787, 21788, 7, 3, 0, 0, 21788, 21789, 7, 6, 0, 0, 21789, 21790, 7, 24, 0, 0, 21790, 21791, 7, 12, 0, 0, 21791, 21792, 7, 10, 0, 0, 21792, 21793, 7, 3, 0, 0, 21793, 21794, 7, 6, 0, 0, 21794, 21795, 7, 9, 0, 0, 21795, 3124, 1, 0, 0, 0, 21796, 21797, 7, 3, 0, 0, 21797, 21798, 7, 6, 0, 0, 21798, 21799, 7, 5, 0, 0, 21799, 21800, 7, 6, 0, 0, 21800, 21801, 7, 4, 0, 0, 21801, 21802, 7, 11, 0, 0, 21802, 21803, 7, 2, 0, 0, 21803, 21804, 7, 17, 0, 0, 21804, 21805, 7, 5, 0, 0, 21805, 3126, 1, 0, 0, 0, 21806, 21807, 7, 3, 0, 0, 21807, 21808, 7, 6, 0, 0, 21808, 21809, 7, 5, 0, 0, 21809, 21810, 7, 6, 0, 0, 21810, 21811, 7, 4, 0, 0, 21811, 3128, 1, 0, 0, 0, 21812, 21813, 7, 3, 0, 0, 21813, 21814, 7, 6, 0, 0, 21814, 21815, 7, 5, 0, 0, 21815, 21816, 7, 10, 0, 0, 21816, 21817, 7, 23, 0, 0, 21817, 21818, 7, 6, 0, 0, 21818, 3130, 1, 0, 0, 0, 21819, 21820, 7, 3, 0, 0, 21820, 21821, 7, 6, 0, 0, 21821, 21822, 7, 5, 0, 0, 21822, 21823, 7, 2, 0, 0, 21823, 21824, 7, 11, 0, 0, 21824, 21825, 7, 13, 0, 0, 21825, 21826, 7, 6, 0, 0, 21826, 3132, 1, 0, 0, 0, 21827, 21828, 7, 3, 0, 0, 21828, 21829, 7, 6, 0, 0, 21829, 21830, 7, 5, 0, 0, 21830, 21831, 7, 2, 0, 0, 21831, 21832, 7, 11, 0, 0, 21832, 21833, 7, 13, 0, 0, 21833, 21834, 7, 6, 0, 0, 21834, 21835, 7, 3, 0, 0, 21835, 3134, 1, 0, 0, 0, 21836, 21837, 7, 3, 0, 0, 21837, 21838, 7, 6, 0, 0, 21838, 21839, 7, 5, 0, 0, 21839, 21840, 7, 2, 0, 0, 21840, 21841, 7, 12, 0, 0, 21841, 21842, 7, 3, 0, 0, 21842, 21843, 7, 8, 0, 0, 21843, 21844, 7, 6, 0, 0, 21844, 3136, 1, 0, 0, 0, 21845, 21846, 7, 3, 0, 0, 21846, 21847, 7, 6, 0, 0, 21847, 21848, 7, 5, 0, 0, 21848, 21849, 7, 15, 0, 0, 21849, 21850, 7, 6, 0, 0, 21850, 21851, 7, 8, 0, 0, 21851, 21852, 7, 4, 0, 0, 21852, 3138, 1, 0, 0, 0, 21853, 21854, 7, 3, 0, 0, 21854, 21855, 7, 6, 0, 0, 21855, 21856, 7, 5, 0, 0, 21856, 21857, 7, 4, 0, 0, 21857, 21858, 7, 0, 0, 0, 21858, 21859, 7, 3, 0, 0, 21859, 21860, 7, 4, 0, 0, 21860, 3140, 1, 0, 0, 0, 21861, 21862, 7, 3, 0, 0, 21862, 21863, 7, 6, 0, 0, 21863, 21864, 7, 5, 0, 0, 21864, 21865, 7, 4, 0, 0, 21865, 21866, 7, 2, 0, 0, 21866, 21867, 7, 3, 0, 0, 21867, 21868, 7, 6, 0, 0, 21868, 21869, 5, 95, 0, 0, 21869, 21870, 7, 0, 0, 0, 21870, 21871, 7, 5, 0, 0, 21871, 21872, 5, 95, 0, 0, 21872, 21873, 7, 10, 0, 0, 21873, 21874, 7, 7, 0, 0, 21874, 21875, 7, 4, 0, 0, 21875, 21876, 7, 6, 0, 0, 21876, 21877, 7, 3, 0, 0, 21877, 21878, 7, 13, 0, 0, 21878, 21879, 7, 0, 0, 0, 21879, 21880, 7, 11, 0, 0, 21880, 21881, 7, 5, 0, 0, 21881, 3142, 1, 0, 0, 0, 21882, 21883, 7, 3, 0, 0, 21883, 21884, 7, 6, 0, 0, 21884, 21885, 7, 5, 0, 0, 21885, 21886, 7, 4, 0, 0, 21886, 21887, 7, 2, 0, 0, 21887, 21888, 7, 3, 0, 0, 21888, 21889, 7, 6, 0, 0, 21889, 3144, 1, 0, 0, 0, 21890, 21891, 7, 3, 0, 0, 21891, 21892, 7, 6, 0, 0, 21892, 21893, 7, 5, 0, 0, 21893, 21894, 7, 4, 0, 0, 21894, 21895, 7, 3, 0, 0, 21895, 21896, 7, 10, 0, 0, 21896, 21897, 7, 8, 0, 0, 21897, 21898, 7, 4, 0, 0, 21898, 21899, 5, 95, 0, 0, 21899, 21900, 7, 0, 0, 0, 21900, 21901, 7, 11, 0, 0, 21901, 21902, 7, 11, 0, 0, 21902, 21903, 5, 95, 0, 0, 21903, 21904, 7, 3, 0, 0, 21904, 21905, 7, 6, 0, 0, 21905, 21906, 7, 16, 0, 0, 21906, 21907, 5, 95, 0, 0, 21907, 21908, 7, 8, 0, 0, 21908, 21909, 7, 2, 0, 0, 21909, 21910, 7, 7, 0, 0, 21910, 21911, 7, 5, 0, 0, 21911, 3146, 1, 0, 0, 0, 21912, 21913, 7, 3, 0, 0, 21913, 21914, 7, 6, 0, 0, 21914, 21915, 7, 5, 0, 0, 21915, 21916, 7, 4, 0, 0, 21916, 21917, 7, 3, 0, 0, 21917, 21918, 7, 10, 0, 0, 21918, 21919, 7, 8, 0, 0, 21919, 21920, 7, 4, 0, 0, 21920, 21921, 7, 6, 0, 0, 21921, 21922, 7, 9, 0, 0, 21922, 3148, 1, 0, 0, 0, 21923, 21924, 7, 3, 0, 0, 21924, 21925, 7, 6, 0, 0, 21925, 21926, 7, 5, 0, 0, 21926, 21927, 7, 4, 0, 0, 21927, 21928, 7, 3, 0, 0, 21928, 21929, 7, 10, 0, 0, 21929, 21930, 7, 8, 0, 0, 21930, 21931, 7, 4, 0, 0, 21931, 21932, 5, 95, 0, 0, 21932, 21933, 7, 3, 0, 0, 21933, 21934, 7, 6, 0, 0, 21934, 21935, 7, 16, 0, 0, 21935, 21936, 7, 6, 0, 0, 21936, 21937, 7, 3, 0, 0, 21937, 21938, 7, 6, 0, 0, 21938, 21939, 7, 7, 0, 0, 21939, 21940, 7, 8, 0, 0, 21940, 21941, 7, 6, 0, 0, 21941, 21942, 7, 5, 0, 0, 21942, 3150, 1, 0, 0, 0, 21943, 21944, 7, 3, 0, 0, 21944, 21945, 7, 6, 0, 0, 21945, 21946, 7, 5, 0, 0, 21946, 21947, 7, 4, 0, 0, 21947, 21948, 7, 3, 0, 0, 21948, 21949, 7, 10, 0, 0, 21949, 21950, 7, 8, 0, 0, 21950, 21951, 7, 4, 0, 0, 21951, 3152, 1, 0, 0, 0, 21952, 21953, 7, 3, 0, 0, 21953, 21954, 7, 6, 0, 0, 21954, 21955, 7, 5, 0, 0, 21955, 21956, 7, 12, 0, 0, 21956, 21957, 7, 11, 0, 0, 21957, 21958, 7, 4, 0, 0, 21958, 21959, 5, 95, 0, 0, 21959, 21960, 7, 8, 0, 0, 21960, 21961, 7, 0, 0, 0, 21961, 21962, 7, 8, 0, 0, 21962, 21963, 7, 19, 0, 0, 21963, 21964, 7, 6, 0, 0, 21964, 3154, 1, 0, 0, 0, 21965, 21966, 7, 3, 0, 0, 21966, 21967, 7, 6, 0, 0, 21967, 21968, 7, 5, 0, 0, 21968, 21969, 7, 12, 0, 0, 21969, 21970, 7, 11, 0, 0, 21970, 21971, 7, 4, 0, 0, 21971, 3156, 1, 0, 0, 0, 21972, 21973, 7, 3, 0, 0, 21973, 21974, 7, 6, 0, 0, 21974, 21975, 7, 5, 0, 0, 21975, 21976, 7, 12, 0, 0, 21976, 21977, 7, 14, 0, 0, 21977, 21978, 7, 0, 0, 0, 21978, 21979, 7, 1, 0, 0, 21979, 21980, 7, 11, 0, 0, 21980, 21981, 7, 6, 0, 0, 21981, 3158, 1, 0, 0, 0, 21982, 21983, 7, 3, 0, 0, 21983, 21984, 7, 6, 0, 0, 21984, 21985, 7, 5, 0, 0, 21985, 21986, 7, 12, 0, 0, 21986, 21987, 7, 14, 0, 0, 21987, 21988, 7, 6, 0, 0, 21988, 3160, 1, 0, 0, 0, 21989, 21990, 7, 3, 0, 0, 21990, 21991, 7, 6, 0, 0, 21991, 21992, 7, 4, 0, 0, 21992, 21993, 7, 6, 0, 0, 21993, 21994, 7, 7, 0, 0, 21994, 21995, 7, 4, 0, 0, 21995, 21996, 7, 10, 0, 0, 21996, 21997, 7, 2, 0, 0, 21997, 21998, 7, 7, 0, 0, 21998, 3162, 1, 0, 0, 0, 21999, 22000, 7, 3, 0, 0, 22000, 22001, 7, 6, 0, 0, 22001, 22002, 7, 4, 0, 0, 22002, 22003, 7, 3, 0, 0, 22003, 22004, 7, 18, 0, 0, 22004, 22005, 5, 95, 0, 0, 22005, 22006, 7, 2, 0, 0, 22006, 22007, 7, 7, 0, 0, 22007, 22008, 5, 95, 0, 0, 22008, 22009, 7, 3, 0, 0, 22009, 22010, 7, 2, 0, 0, 22010, 22011, 7, 22, 0, 0, 22011, 22012, 5, 95, 0, 0, 22012, 22013, 7, 8, 0, 0, 22013, 22014, 7, 19, 0, 0, 22014, 22015, 7, 0, 0, 0, 22015, 22016, 7, 7, 0, 0, 22016, 22017, 7, 17, 0, 0, 22017, 22018, 7, 6, 0, 0, 22018, 3164, 1, 0, 0, 0, 22019, 22020, 7, 3, 0, 0, 22020, 22021, 7, 6, 0, 0, 22021, 22022, 7, 4, 0, 0, 22022, 22023, 7, 12, 0, 0, 22023, 22024, 7, 3, 0, 0, 22024, 22025, 7, 7, 0, 0, 22025, 22026, 7, 10, 0, 0, 22026, 22027, 7, 7, 0, 0, 22027, 22028, 7, 17, 0, 0, 22028, 3166, 1, 0, 0, 0, 22029, 22030, 7, 3, 0, 0, 22030, 22031, 7, 6, 0, 0, 22031, 22032, 7, 4, 0, 0, 22032, 22033, 7, 12, 0, 0, 22033, 22034, 7, 3, 0, 0, 22034, 22035, 7, 7, 0, 0, 22035, 3168, 1, 0, 0, 0, 22036, 22037, 7, 3, 0, 0, 22037, 22038, 7, 6, 0, 0, 22038, 22039, 7, 12, 0, 0, 22039, 22040, 7, 5, 0, 0, 22040, 22041, 7, 6, 0, 0, 22041, 3170, 1, 0, 0, 0, 22042, 22043, 7, 3, 0, 0, 22043, 22044, 7, 6, 0, 0, 22044, 22045, 7, 13, 0, 0, 22045, 22046, 7, 6, 0, 0, 22046, 22047, 7, 3, 0, 0, 22047, 22048, 7, 5, 0, 0, 22048, 22049, 7, 6, 0, 0, 22049, 3172, 1, 0, 0, 0, 22050, 22051, 7, 3, 0, 0, 22051, 22052, 7, 6, 0, 0, 22052, 22053, 7, 13, 0, 0, 22053, 22054, 7, 2, 0, 0, 22054, 22055, 7, 21, 0, 0, 22055, 22056, 7, 6, 0, 0, 22056, 3174, 1, 0, 0, 0, 22057, 22058, 7, 3, 0, 0, 22058, 22059, 7, 6, 0, 0, 22059, 22060, 7, 22, 0, 0, 22060, 22061, 7, 3, 0, 0, 22061, 22062, 7, 10, 0, 0, 22062, 22063, 7, 4, 0, 0, 22063, 22064, 7, 6, 0, 0, 22064, 22065, 5, 95, 0, 0, 22065, 22066, 7, 2, 0, 0, 22066, 22067, 7, 3, 0, 0, 22067, 22068, 5, 95, 0, 0, 22068, 22069, 7, 6, 0, 0, 22069, 22070, 7, 3, 0, 0, 22070, 22071, 7, 3, 0, 0, 22071, 22072, 7, 2, 0, 0, 22072, 22073, 7, 3, 0, 0, 22073, 3176, 1, 0, 0, 0, 22074, 22075, 7, 3, 0, 0, 22075, 22076, 7, 6, 0, 0, 22076, 22077, 7, 22, 0, 0, 22077, 22078, 7, 3, 0, 0, 22078, 22079, 7, 10, 0, 0, 22079, 22080, 7, 4, 0, 0, 22080, 22081, 7, 6, 0, 0, 22081, 3178, 1, 0, 0, 0, 22082, 22083, 7, 3, 0, 0, 22083, 22084, 7, 10, 0, 0, 22084, 22085, 7, 17, 0, 0, 22085, 22086, 7, 19, 0, 0, 22086, 22087, 7, 4, 0, 0, 22087, 3180, 1, 0, 0, 0, 22088, 22089, 7, 3, 0, 0, 22089, 22090, 7, 2, 0, 0, 22090, 22091, 7, 11, 0, 0, 22091, 22092, 7, 6, 0, 0, 22092, 3182, 1, 0, 0, 0, 22093, 22094, 7, 3, 0, 0, 22094, 22095, 7, 2, 0, 0, 22095, 22096, 7, 11, 0, 0, 22096, 22097, 7, 6, 0, 0, 22097, 22098, 7, 5, 0, 0, 22098, 22099, 7, 6, 0, 0, 22099, 22100, 7, 4, 0, 0, 22100, 3184, 1, 0, 0, 0, 22101, 22102, 7, 3, 0, 0, 22102, 22103, 7, 2, 0, 0, 22103, 22104, 7, 11, 0, 0, 22104, 22105, 7, 6, 0, 0, 22105, 22106, 7, 5, 0, 0, 22106, 3186, 1, 0, 0, 0, 22107, 22108, 7, 3, 0, 0, 22108, 22109, 7, 2, 0, 0, 22109, 22110, 7, 11, 0, 0, 22110, 22111, 7, 11, 0, 0, 22111, 22112, 7, 1, 0, 0, 22112, 22113, 7, 0, 0, 0, 22113, 22114, 7, 8, 0, 0, 22114, 22115, 7, 21, 0, 0, 22115, 3188, 1, 0, 0, 0, 22116, 22117, 7, 3, 0, 0, 22117, 22118, 7, 2, 0, 0, 22118, 22119, 7, 11, 0, 0, 22119, 22120, 7, 11, 0, 0, 22120, 22121, 7, 10, 0, 0, 22121, 22122, 7, 7, 0, 0, 22122, 22123, 7, 17, 0, 0, 22123, 3190, 1, 0, 0, 0, 22124, 22125, 7, 3, 0, 0, 22125, 22126, 7, 2, 0, 0, 22126, 22127, 7, 11, 0, 0, 22127, 22128, 7, 11, 0, 0, 22128, 22129, 7, 12, 0, 0, 22129, 22130, 7, 15, 0, 0, 22130, 3192, 1, 0, 0, 0, 22131, 22132, 7, 3, 0, 0, 22132, 22133, 7, 2, 0, 0, 22133, 22134, 7, 22, 0, 0, 22134, 22135, 7, 9, 0, 0, 22135, 22136, 7, 6, 0, 0, 22136, 22137, 7, 15, 0, 0, 22137, 22138, 7, 6, 0, 0, 22138, 22139, 7, 7, 0, 0, 22139, 22140, 7, 9, 0, 0, 22140, 22141, 7, 6, 0, 0, 22141, 22142, 7, 7, 0, 0, 22142, 22143, 7, 8, 0, 0, 22143, 22144, 7, 10, 0, 0, 22144, 22145, 7, 6, 0, 0, 22145, 22146, 7, 5, 0, 0, 22146, 3194, 1, 0, 0, 0, 22147, 22148, 7, 3, 0, 0, 22148, 22149, 7, 2, 0, 0, 22149, 22150, 7, 22, 0, 0, 22150, 22151, 7, 10, 0, 0, 22151, 22152, 7, 9, 0, 0, 22152, 22153, 5, 95, 0, 0, 22153, 22154, 7, 14, 0, 0, 22154, 22155, 7, 0, 0, 0, 22155, 22156, 7, 15, 0, 0, 22156, 22157, 7, 15, 0, 0, 22157, 22158, 7, 10, 0, 0, 22158, 22159, 7, 7, 0, 0, 22159, 22160, 7, 17, 0, 0, 22160, 22161, 5, 95, 0, 0, 22161, 22162, 7, 4, 0, 0, 22162, 22163, 7, 0, 0, 0, 22163, 22164, 7, 1, 0, 0, 22164, 22165, 7, 11, 0, 0, 22165, 22166, 7, 6, 0, 0, 22166, 3196, 1, 0, 0, 0, 22167, 22168, 7, 3, 0, 0, 22168, 22169, 7, 2, 0, 0, 22169, 22170, 7, 22, 0, 0, 22170, 22171, 7, 10, 0, 0, 22171, 22172, 7, 9, 0, 0, 22172, 3198, 1, 0, 0, 0, 22173, 22174, 7, 3, 0, 0, 22174, 22175, 7, 2, 0, 0, 22175, 22176, 7, 22, 0, 0, 22176, 22177, 7, 10, 0, 0, 22177, 22178, 7, 9, 0, 0, 22178, 22179, 7, 4, 0, 0, 22179, 22180, 7, 2, 0, 0, 22180, 22181, 7, 8, 0, 0, 22181, 22182, 7, 19, 0, 0, 22182, 22183, 7, 0, 0, 0, 22183, 22184, 7, 3, 0, 0, 22184, 3200, 1, 0, 0, 0, 22185, 22186, 7, 3, 0, 0, 22186, 22187, 7, 2, 0, 0, 22187, 22188, 7, 22, 0, 0, 22188, 22189, 7, 10, 0, 0, 22189, 22190, 7, 9, 0, 0, 22190, 22191, 7, 4, 0, 0, 22191, 22192, 7, 2, 0, 0, 22192, 22193, 7, 7, 0, 0, 22193, 22194, 7, 8, 0, 0, 22194, 22195, 7, 19, 0, 0, 22195, 22196, 7, 0, 0, 0, 22196, 22197, 7, 3, 0, 0, 22197, 3202, 1, 0, 0, 0, 22198, 22199, 7, 3, 0, 0, 22199, 22200, 7, 2, 0, 0, 22200, 22201, 7, 22, 0, 0, 22201, 22202, 5, 95, 0, 0, 22202, 22203, 7, 11, 0, 0, 22203, 22204, 7, 6, 0, 0, 22204, 22205, 7, 7, 0, 0, 22205, 22206, 7, 17, 0, 0, 22206, 22207, 7, 4, 0, 0, 22207, 22208, 7, 19, 0, 0, 22208, 3204, 1, 0, 0, 0, 22209, 22210, 7, 3, 0, 0, 22210, 22211, 7, 2, 0, 0, 22211, 22212, 7, 22, 0, 0, 22212, 22213, 7, 7, 0, 0, 22213, 22214, 7, 12, 0, 0, 22214, 22215, 7, 14, 0, 0, 22215, 3206, 1, 0, 0, 0, 22216, 22217, 7, 3, 0, 0, 22217, 22218, 7, 2, 0, 0, 22218, 22219, 7, 22, 0, 0, 22219, 3208, 1, 0, 0, 0, 22220, 22221, 7, 3, 0, 0, 22221, 22222, 7, 2, 0, 0, 22222, 22223, 7, 22, 0, 0, 22223, 22224, 7, 5, 0, 0, 22224, 3210, 1, 0, 0, 0, 22225, 22226, 7, 3, 0, 0, 22226, 22227, 7, 15, 0, 0, 22227, 22228, 7, 0, 0, 0, 22228, 22229, 7, 9, 0, 0, 22229, 3212, 1, 0, 0, 0, 22230, 22231, 7, 3, 0, 0, 22231, 22232, 7, 4, 0, 0, 22232, 22233, 7, 3, 0, 0, 22233, 22234, 7, 10, 0, 0, 22234, 22235, 7, 14, 0, 0, 22235, 3214, 1, 0, 0, 0, 22236, 22237, 7, 3, 0, 0, 22237, 22238, 7, 12, 0, 0, 22238, 22239, 7, 11, 0, 0, 22239, 22240, 7, 6, 0, 0, 22240, 3216, 1, 0, 0, 0, 22241, 22242, 7, 3, 0, 0, 22242, 22243, 7, 12, 0, 0, 22243, 22244, 7, 11, 0, 0, 22244, 22245, 7, 6, 0, 0, 22245, 22246, 7, 5, 0, 0, 22246, 3218, 1, 0, 0, 0, 22247, 22248, 7, 3, 0, 0, 22248, 22249, 7, 12, 0, 0, 22249, 22250, 7, 7, 0, 0, 22250, 22251, 7, 7, 0, 0, 22251, 22252, 7, 10, 0, 0, 22252, 22253, 7, 7, 0, 0, 22253, 22254, 7, 17, 0, 0, 22254, 3220, 1, 0, 0, 0, 22255, 22256, 7, 5, 0, 0, 22256, 22257, 7, 0, 0, 0, 22257, 22258, 7, 11, 0, 0, 22258, 22259, 7, 4, 0, 0, 22259, 3222, 1, 0, 0, 0, 22260, 22261, 7, 5, 0, 0, 22261, 22262, 7, 0, 0, 0, 22262, 22263, 7, 14, 0, 0, 22263, 22264, 7, 15, 0, 0, 22264, 22265, 7, 11, 0, 0, 22265, 22266, 7, 6, 0, 0, 22266, 3224, 1, 0, 0, 0, 22267, 22268, 7, 5, 0, 0, 22268, 22269, 7, 0, 0, 0, 22269, 22270, 7, 13, 0, 0, 22270, 22271, 7, 6, 0, 0, 22271, 22272, 5, 95, 0, 0, 22272, 22273, 7, 0, 0, 0, 22273, 22274, 7, 5, 0, 0, 22274, 22275, 5, 95, 0, 0, 22275, 22276, 7, 10, 0, 0, 22276, 22277, 7, 7, 0, 0, 22277, 22278, 7, 4, 0, 0, 22278, 22279, 7, 6, 0, 0, 22279, 22280, 7, 3, 0, 0, 22280, 22281, 7, 13, 0, 0, 22281, 22282, 7, 0, 0, 0, 22282, 22283, 7, 11, 0, 0, 22283, 22284, 7, 5, 0, 0, 22284, 3226, 1, 0, 0, 0, 22285, 22286, 7, 5, 0, 0, 22286, 22287, 7, 0, 0, 0, 22287, 22288, 7, 13, 0, 0, 22288, 22289, 7, 6, 0, 0, 22289, 22290, 7, 15, 0, 0, 22290, 22291, 7, 2, 0, 0, 22291, 22292, 7, 10, 0, 0, 22292, 22293, 7, 7, 0, 0, 22293, 22294, 7, 4, 0, 0, 22294, 3228, 1, 0, 0, 0, 22295, 22296, 7, 5, 0, 0, 22296, 22297, 7, 0, 0, 0, 22297, 22298, 7, 13, 0, 0, 22298, 22299, 7, 6, 0, 0, 22299, 3230, 1, 0, 0, 0, 22300, 22301, 7, 5, 0, 0, 22301, 22302, 7, 1, 0, 0, 22302, 22303, 5, 52, 0, 0, 22303, 3232, 1, 0, 0, 0, 22304, 22305, 7, 5, 0, 0, 22305, 22306, 7, 8, 0, 0, 22306, 22307, 7, 0, 0, 0, 22307, 22308, 7, 11, 0, 0, 22308, 22309, 7, 6, 0, 0, 22309, 22310, 5, 95, 0, 0, 22310, 22311, 7, 3, 0, 0, 22311, 22312, 7, 2, 0, 0, 22312, 22313, 7, 22, 0, 0, 22313, 22314, 7, 5, 0, 0, 22314, 3234, 1, 0, 0, 0, 22315, 22316, 7, 5, 0, 0, 22316, 22317, 7, 8, 0, 0, 22317, 22318, 7, 0, 0, 0, 22318, 22319, 7, 11, 0, 0, 22319, 22320, 7, 6, 0, 0, 22320, 3236, 1, 0, 0, 0, 22321, 22322, 7, 5, 0, 0, 22322, 22323, 7, 8, 0, 0, 22323, 22324, 7, 0, 0, 0, 22324, 22325, 7, 7, 0, 0, 22325, 22326, 5, 95, 0, 0, 22326, 22327, 7, 10, 0, 0, 22327, 22328, 7, 7, 0, 0, 22328, 22329, 7, 5, 0, 0, 22329, 22330, 7, 4, 0, 0, 22330, 22331, 7, 0, 0, 0, 22331, 22332, 7, 7, 0, 0, 22332, 22333, 7, 8, 0, 0, 22333, 22334, 7, 6, 0, 0, 22334, 22335, 7, 5, 0, 0, 22335, 3238, 1, 0, 0, 0, 22336, 22337, 7, 5, 0, 0, 22337, 22338, 7, 8, 0, 0, 22338, 22339, 7, 0, 0, 0, 22339, 22340, 7, 7, 0, 0, 22340, 3240, 1, 0, 0, 0, 22341, 22342, 7, 5, 0, 0, 22342, 22343, 7, 8, 0, 0, 22343, 22344, 7, 19, 0, 0, 22344, 22345, 7, 6, 0, 0, 22345, 22346, 7, 9, 0, 0, 22346, 22347, 7, 12, 0, 0, 22347, 22348, 7, 11, 0, 0, 22348, 22349, 7, 6, 0, 0, 22349, 22350, 7, 3, 0, 0, 22350, 3242, 1, 0, 0, 0, 22351, 22352, 7, 5, 0, 0, 22352, 22353, 7, 8, 0, 0, 22353, 22354, 7, 19, 0, 0, 22354, 22355, 7, 6, 0, 0, 22355, 22356, 7, 14, 0, 0, 22356, 22357, 7, 0, 0, 0, 22357, 22358, 7, 8, 0, 0, 22358, 22359, 7, 19, 0, 0, 22359, 22360, 7, 6, 0, 0, 22360, 22361, 7, 8, 0, 0, 22361, 22362, 7, 21, 0, 0, 22362, 3244, 1, 0, 0, 0, 22363, 22364, 7, 5, 0, 0, 22364, 22365, 7, 8, 0, 0, 22365, 22366, 7, 19, 0, 0, 22366, 22367, 7, 6, 0, 0, 22367, 22368, 7, 14, 0, 0, 22368, 22369, 7, 0, 0, 0, 22369, 3246, 1, 0, 0, 0, 22370, 22371, 7, 5, 0, 0, 22371, 22372, 7, 8, 0, 0, 22372, 22373, 7, 7, 0, 0, 22373, 22374, 5, 95, 0, 0, 22374, 22375, 7, 0, 0, 0, 22375, 22376, 7, 5, 0, 0, 22376, 22377, 7, 8, 0, 0, 22377, 22378, 7, 6, 0, 0, 22378, 22379, 7, 7, 0, 0, 22379, 22380, 7, 9, 0, 0, 22380, 22381, 7, 10, 0, 0, 22381, 22382, 7, 7, 0, 0, 22382, 22383, 7, 17, 0, 0, 22383, 3248, 1, 0, 0, 0, 22384, 22385, 7, 5, 0, 0, 22385, 22386, 7, 8, 0, 0, 22386, 22387, 7, 7, 0, 0, 22387, 3250, 1, 0, 0, 0, 22388, 22389, 7, 5, 0, 0, 22389, 22390, 7, 8, 0, 0, 22390, 22391, 7, 2, 0, 0, 22391, 22392, 7, 15, 0, 0, 22392, 22393, 7, 6, 0, 0, 22393, 3252, 1, 0, 0, 0, 22394, 22395, 7, 5, 0, 0, 22395, 22396, 7, 8, 0, 0, 22396, 22397, 7, 3, 0, 0, 22397, 22398, 7, 12, 0, 0, 22398, 22399, 7, 1, 0, 0, 22399, 3254, 1, 0, 0, 0, 22400, 22401, 7, 5, 0, 0, 22401, 22402, 7, 9, 0, 0, 22402, 22403, 5, 95, 0, 0, 22403, 22404, 7, 0, 0, 0, 22404, 22405, 7, 11, 0, 0, 22405, 22406, 7, 11, 0, 0, 22406, 3256, 1, 0, 0, 0, 22407, 22408, 7, 5, 0, 0, 22408, 22409, 7, 9, 0, 0, 22409, 22410, 5, 95, 0, 0, 22410, 22411, 7, 10, 0, 0, 22411, 22412, 7, 7, 0, 0, 22412, 22413, 7, 19, 0, 0, 22413, 22414, 7, 10, 0, 0, 22414, 22415, 7, 1, 0, 0, 22415, 22416, 7, 10, 0, 0, 22416, 22417, 7, 4, 0, 0, 22417, 3258, 1, 0, 0, 0, 22418, 22419, 7, 5, 0, 0, 22419, 22420, 7, 9, 0, 0, 22420, 22421, 7, 2, 0, 0, 22421, 22422, 5, 95, 0, 0, 22422, 22423, 7, 17, 0, 0, 22423, 22424, 7, 6, 0, 0, 22424, 22425, 7, 2, 0, 0, 22425, 22426, 7, 14, 0, 0, 22426, 22427, 5, 95, 0, 0, 22427, 22428, 7, 14, 0, 0, 22428, 22429, 7, 1, 0, 0, 22429, 22430, 7, 3, 0, 0, 22430, 3260, 1, 0, 0, 0, 22431, 22432, 7, 5, 0, 0, 22432, 22433, 7, 9, 0, 0, 22433, 22434, 7, 2, 0, 0, 22434, 22435, 5, 95, 0, 0, 22435, 22436, 7, 17, 0, 0, 22436, 22437, 7, 6, 0, 0, 22437, 22438, 7, 2, 0, 0, 22438, 22439, 7, 14, 0, 0, 22439, 22440, 7, 6, 0, 0, 22440, 22441, 7, 4, 0, 0, 22441, 22442, 7, 3, 0, 0, 22442, 22443, 7, 18, 0, 0, 22443, 3262, 1, 0, 0, 0, 22444, 22445, 7, 5, 0, 0, 22445, 22446, 7, 9, 0, 0, 22446, 22447, 5, 95, 0, 0, 22447, 22448, 7, 5, 0, 0, 22448, 22449, 7, 19, 0, 0, 22449, 22450, 7, 2, 0, 0, 22450, 22451, 7, 22, 0, 0, 22451, 3264, 1, 0, 0, 0, 22452, 22453, 7, 5, 0, 0, 22453, 22454, 7, 6, 0, 0, 22454, 22455, 7, 0, 0, 0, 22455, 22456, 7, 3, 0, 0, 22456, 22457, 7, 8, 0, 0, 22457, 22458, 7, 19, 0, 0, 22458, 3266, 1, 0, 0, 0, 22459, 22460, 7, 5, 0, 0, 22460, 22461, 7, 6, 0, 0, 22461, 22462, 7, 8, 0, 0, 22462, 22463, 7, 2, 0, 0, 22463, 22464, 7, 7, 0, 0, 22464, 22465, 7, 9, 0, 0, 22465, 3268, 1, 0, 0, 0, 22466, 22467, 7, 5, 0, 0, 22467, 22468, 7, 6, 0, 0, 22468, 22469, 7, 8, 0, 0, 22469, 22470, 7, 2, 0, 0, 22470, 22471, 7, 7, 0, 0, 22471, 22472, 7, 9, 0, 0, 22472, 22473, 7, 5, 0, 0, 22473, 3270, 1, 0, 0, 0, 22474, 22475, 7, 5, 0, 0, 22475, 22476, 7, 6, 0, 0, 22476, 22477, 7, 8, 0, 0, 22477, 22478, 7, 3, 0, 0, 22478, 22479, 7, 6, 0, 0, 22479, 22480, 7, 4, 0, 0, 22480, 3272, 1, 0, 0, 0, 22481, 22482, 7, 5, 0, 0, 22482, 22483, 7, 6, 0, 0, 22483, 22484, 7, 8, 0, 0, 22484, 22485, 7, 12, 0, 0, 22485, 22486, 7, 3, 0, 0, 22486, 22487, 7, 6, 0, 0, 22487, 22488, 7, 16, 0, 0, 22488, 22489, 7, 10, 0, 0, 22489, 22490, 7, 11, 0, 0, 22490, 22491, 7, 6, 0, 0, 22491, 22492, 5, 95, 0, 0, 22492, 22493, 7, 9, 0, 0, 22493, 22494, 7, 1, 0, 0, 22494, 22495, 7, 0, 0, 0, 22495, 3274, 1, 0, 0, 0, 22496, 22497, 7, 5, 0, 0, 22497, 22498, 7, 6, 0, 0, 22498, 22499, 7, 8, 0, 0, 22499, 22500, 7, 12, 0, 0, 22500, 22501, 7, 3, 0, 0, 22501, 22502, 7, 6, 0, 0, 22502, 22503, 7, 16, 0, 0, 22503, 22504, 7, 10, 0, 0, 22504, 22505, 7, 11, 0, 0, 22505, 22506, 7, 6, 0, 0, 22506, 3276, 1, 0, 0, 0, 22507, 22508, 7, 5, 0, 0, 22508, 22509, 7, 6, 0, 0, 22509, 22510, 7, 8, 0, 0, 22510, 22511, 7, 12, 0, 0, 22511, 22512, 7, 3, 0, 0, 22512, 22513, 7, 10, 0, 0, 22513, 22514, 7, 4, 0, 0, 22514, 22515, 7, 18, 0, 0, 22515, 3278, 1, 0, 0, 0, 22516, 22517, 7, 5, 0, 0, 22517, 22518, 7, 6, 0, 0, 22518, 22519, 7, 6, 0, 0, 22519, 22520, 7, 9, 0, 0, 22520, 3280, 1, 0, 0, 0, 22521, 22522, 7, 5, 0, 0, 22522, 22523, 7, 6, 0, 0, 22523, 22524, 7, 17, 0, 0, 22524, 22525, 5, 95, 0, 0, 22525, 22526, 7, 1, 0, 0, 22526, 22527, 7, 11, 0, 0, 22527, 22528, 7, 2, 0, 0, 22528, 22529, 7, 8, 0, 0, 22529, 22530, 7, 21, 0, 0, 22530, 3282, 1, 0, 0, 0, 22531, 22532, 7, 5, 0, 0, 22532, 22533, 7, 6, 0, 0, 22533, 22534, 7, 17, 0, 0, 22534, 22535, 5, 95, 0, 0, 22535, 22536, 7, 16, 0, 0, 22536, 22537, 7, 10, 0, 0, 22537, 22538, 7, 11, 0, 0, 22538, 22539, 7, 6, 0, 0, 22539, 3284, 1, 0, 0, 0, 22540, 22541, 7, 5, 0, 0, 22541, 22542, 7, 6, 0, 0, 22542, 22543, 7, 17, 0, 0, 22543, 22544, 7, 14, 0, 0, 22544, 22545, 7, 6, 0, 0, 22545, 22546, 7, 7, 0, 0, 22546, 22547, 7, 4, 0, 0, 22547, 3286, 1, 0, 0, 0, 22548, 22549, 7, 5, 0, 0, 22549, 22550, 7, 6, 0, 0, 22550, 22551, 7, 11, 0, 0, 22551, 22552, 7, 6, 0, 0, 22552, 22553, 7, 8, 0, 0, 22553, 22554, 7, 4, 0, 0, 22554, 22555, 7, 10, 0, 0, 22555, 22556, 7, 13, 0, 0, 22556, 22557, 7, 10, 0, 0, 22557, 22558, 7, 4, 0, 0, 22558, 22559, 7, 18, 0, 0, 22559, 3288, 1, 0, 0, 0, 22560, 22561, 7, 5, 0, 0, 22561, 22562, 7, 6, 0, 0, 22562, 22563, 7, 11, 0, 0, 22563, 22564, 7, 6, 0, 0, 22564, 22565, 7, 8, 0, 0, 22565, 22566, 7, 4, 0, 0, 22566, 3290, 1, 0, 0, 0, 22567, 22568, 7, 5, 0, 0, 22568, 22569, 7, 6, 0, 0, 22569, 22570, 7, 11, 0, 0, 22570, 22571, 7, 16, 0, 0, 22571, 3292, 1, 0, 0, 0, 22572, 22573, 7, 5, 0, 0, 22573, 22574, 7, 6, 0, 0, 22574, 22575, 7, 14, 0, 0, 22575, 22576, 7, 10, 0, 0, 22576, 22577, 7, 20, 0, 0, 22577, 22578, 7, 2, 0, 0, 22578, 22579, 7, 10, 0, 0, 22579, 22580, 7, 7, 0, 0, 22580, 22581, 5, 95, 0, 0, 22581, 22582, 7, 9, 0, 0, 22582, 22583, 7, 3, 0, 0, 22583, 22584, 7, 10, 0, 0, 22584, 22585, 7, 13, 0, 0, 22585, 22586, 7, 6, 0, 0, 22586, 22587, 7, 3, 0, 0, 22587, 3294, 1, 0, 0, 0, 22588, 22589, 7, 5, 0, 0, 22589, 22590, 7, 6, 0, 0, 22590, 22591, 7, 14, 0, 0, 22591, 22592, 7, 10, 0, 0, 22592, 22593, 7, 20, 0, 0, 22593, 22594, 7, 2, 0, 0, 22594, 22595, 7, 10, 0, 0, 22595, 22596, 7, 7, 0, 0, 22596, 3296, 1, 0, 0, 0, 22597, 22598, 7, 5, 0, 0, 22598, 22599, 7, 6, 0, 0, 22599, 22600, 7, 14, 0, 0, 22600, 22601, 7, 10, 0, 0, 22601, 22602, 5, 95, 0, 0, 22602, 22603, 7, 4, 0, 0, 22603, 22604, 7, 2, 0, 0, 22604, 22605, 5, 95, 0, 0, 22605, 22606, 7, 10, 0, 0, 22606, 22607, 7, 7, 0, 0, 22607, 22608, 7, 7, 0, 0, 22608, 22609, 7, 6, 0, 0, 22609, 22610, 7, 3, 0, 0, 22610, 3298, 1, 0, 0, 0, 22611, 22612, 7, 5, 0, 0, 22612, 22613, 7, 6, 0, 0, 22613, 22614, 7, 24, 0, 0, 22614, 22615, 7, 12, 0, 0, 22615, 22616, 7, 6, 0, 0, 22616, 22617, 7, 7, 0, 0, 22617, 22618, 7, 8, 0, 0, 22618, 22619, 7, 6, 0, 0, 22619, 22620, 7, 9, 0, 0, 22620, 3300, 1, 0, 0, 0, 22621, 22622, 7, 5, 0, 0, 22622, 22623, 7, 6, 0, 0, 22623, 22624, 7, 24, 0, 0, 22624, 22625, 7, 12, 0, 0, 22625, 22626, 7, 6, 0, 0, 22626, 22627, 7, 7, 0, 0, 22627, 22628, 7, 8, 0, 0, 22628, 22629, 7, 6, 0, 0, 22629, 3302, 1, 0, 0, 0, 22630, 22631, 7, 5, 0, 0, 22631, 22632, 7, 6, 0, 0, 22632, 22633, 7, 24, 0, 0, 22633, 22634, 7, 12, 0, 0, 22634, 22635, 7, 6, 0, 0, 22635, 22636, 7, 7, 0, 0, 22636, 22637, 7, 8, 0, 0, 22637, 22638, 7, 6, 0, 0, 22638, 22639, 7, 16, 0, 0, 22639, 22640, 7, 10, 0, 0, 22640, 22641, 7, 11, 0, 0, 22641, 22642, 7, 6, 0, 0, 22642, 3304, 1, 0, 0, 0, 22643, 22644, 7, 5, 0, 0, 22644, 22645, 7, 6, 0, 0, 22645, 22646, 7, 24, 0, 0, 22646, 22647, 7, 12, 0, 0, 22647, 22648, 7, 6, 0, 0, 22648, 22649, 7, 7, 0, 0, 22649, 22650, 7, 4, 0, 0, 22650, 22651, 7, 10, 0, 0, 22651, 22652, 7, 0, 0, 0, 22652, 22653, 7, 11, 0, 0, 22653, 3306, 1, 0, 0, 0, 22654, 22655, 7, 5, 0, 0, 22655, 22656, 7, 6, 0, 0, 22656, 22657, 7, 24, 0, 0, 22657, 3308, 1, 0, 0, 0, 22658, 22659, 7, 5, 0, 0, 22659, 22660, 7, 6, 0, 0, 22660, 22661, 7, 3, 0, 0, 22661, 22662, 7, 9, 0, 0, 22662, 22663, 7, 6, 0, 0, 22663, 3310, 1, 0, 0, 0, 22664, 22665, 7, 5, 0, 0, 22665, 22666, 7, 6, 0, 0, 22666, 22667, 7, 3, 0, 0, 22667, 22668, 7, 9, 0, 0, 22668, 22669, 7, 6, 0, 0, 22669, 22670, 7, 15, 0, 0, 22670, 22671, 7, 3, 0, 0, 22671, 22672, 7, 2, 0, 0, 22672, 22673, 7, 15, 0, 0, 22673, 22674, 7, 6, 0, 0, 22674, 22675, 7, 3, 0, 0, 22675, 22676, 7, 4, 0, 0, 22676, 22677, 7, 10, 0, 0, 22677, 22678, 7, 6, 0, 0, 22678, 22679, 7, 5, 0, 0, 22679, 3312, 1, 0, 0, 0, 22680, 22681, 7, 5, 0, 0, 22681, 22682, 7, 6, 0, 0, 22682, 22683, 7, 3, 0, 0, 22683, 22684, 7, 10, 0, 0, 22684, 22685, 7, 0, 0, 0, 22685, 22686, 7, 11, 0, 0, 22686, 22687, 7, 10, 0, 0, 22687, 22688, 7, 23, 0, 0, 22688, 22689, 7, 0, 0, 0, 22689, 22690, 7, 1, 0, 0, 22690, 22691, 7, 11, 0, 0, 22691, 22692, 7, 6, 0, 0, 22692, 3314, 1, 0, 0, 0, 22693, 22694, 7, 5, 0, 0, 22694, 22695, 7, 6, 0, 0, 22695, 22696, 7, 3, 0, 0, 22696, 22697, 7, 10, 0, 0, 22697, 22698, 7, 0, 0, 0, 22698, 22699, 7, 11, 0, 0, 22699, 22700, 7, 11, 0, 0, 22700, 22701, 7, 18, 0, 0, 22701, 22702, 5, 95, 0, 0, 22702, 22703, 7, 3, 0, 0, 22703, 22704, 7, 6, 0, 0, 22704, 22705, 7, 12, 0, 0, 22705, 22706, 7, 5, 0, 0, 22706, 22707, 7, 0, 0, 0, 22707, 22708, 7, 1, 0, 0, 22708, 22709, 7, 11, 0, 0, 22709, 22710, 7, 6, 0, 0, 22710, 3316, 1, 0, 0, 0, 22711, 22712, 7, 5, 0, 0, 22712, 22713, 7, 6, 0, 0, 22713, 22714, 7, 3, 0, 0, 22714, 22715, 7, 10, 0, 0, 22715, 22716, 7, 0, 0, 0, 22716, 22717, 7, 11, 0, 0, 22717, 3318, 1, 0, 0, 0, 22718, 22719, 7, 5, 0, 0, 22719, 22720, 7, 6, 0, 0, 22720, 22721, 7, 3, 0, 0, 22721, 22722, 7, 13, 0, 0, 22722, 22723, 7, 6, 0, 0, 22723, 22724, 7, 3, 0, 0, 22724, 22725, 7, 6, 0, 0, 22725, 22726, 7, 3, 0, 0, 22726, 22727, 7, 3, 0, 0, 22727, 22728, 7, 2, 0, 0, 22728, 22729, 7, 3, 0, 0, 22729, 3320, 1, 0, 0, 0, 22730, 22731, 7, 5, 0, 0, 22731, 22732, 7, 6, 0, 0, 22732, 22733, 7, 3, 0, 0, 22733, 22734, 7, 13, 0, 0, 22734, 22735, 7, 10, 0, 0, 22735, 22736, 7, 8, 0, 0, 22736, 22737, 7, 6, 0, 0, 22737, 22738, 5, 95, 0, 0, 22738, 22739, 7, 7, 0, 0, 22739, 22740, 7, 0, 0, 0, 22740, 22741, 7, 14, 0, 0, 22741, 22742, 7, 6, 0, 0, 22742, 22743, 5, 95, 0, 0, 22743, 22744, 7, 8, 0, 0, 22744, 22745, 7, 2, 0, 0, 22745, 22746, 7, 7, 0, 0, 22746, 22747, 7, 13, 0, 0, 22747, 22748, 7, 6, 0, 0, 22748, 22749, 7, 3, 0, 0, 22749, 22750, 7, 4, 0, 0, 22750, 3322, 1, 0, 0, 0, 22751, 22752, 7, 5, 0, 0, 22752, 22753, 7, 6, 0, 0, 22753, 22754, 7, 3, 0, 0, 22754, 22755, 7, 13, 0, 0, 22755, 22756, 7, 10, 0, 0, 22756, 22757, 7, 8, 0, 0, 22757, 22758, 7, 6, 0, 0, 22758, 3324, 1, 0, 0, 0, 22759, 22760, 7, 5, 0, 0, 22760, 22761, 7, 6, 0, 0, 22761, 22762, 7, 3, 0, 0, 22762, 22763, 7, 13, 0, 0, 22763, 22764, 7, 10, 0, 0, 22764, 22765, 7, 8, 0, 0, 22765, 22766, 7, 6, 0, 0, 22766, 22767, 7, 5, 0, 0, 22767, 3326, 1, 0, 0, 0, 22768, 22769, 7, 5, 0, 0, 22769, 22770, 7, 6, 0, 0, 22770, 22771, 7, 5, 0, 0, 22771, 22772, 7, 5, 0, 0, 22772, 22773, 7, 10, 0, 0, 22773, 22774, 7, 2, 0, 0, 22774, 22775, 7, 7, 0, 0, 22775, 22776, 5, 95, 0, 0, 22776, 22777, 7, 8, 0, 0, 22777, 22778, 7, 0, 0, 0, 22778, 22779, 7, 8, 0, 0, 22779, 22780, 7, 19, 0, 0, 22780, 22781, 7, 6, 0, 0, 22781, 22782, 7, 9, 0, 0, 22782, 22783, 5, 95, 0, 0, 22783, 22784, 7, 8, 0, 0, 22784, 22785, 7, 12, 0, 0, 22785, 22786, 7, 3, 0, 0, 22786, 22787, 7, 5, 0, 0, 22787, 22788, 7, 2, 0, 0, 22788, 22789, 7, 3, 0, 0, 22789, 22790, 7, 5, 0, 0, 22790, 3328, 1, 0, 0, 0, 22791, 22792, 7, 5, 0, 0, 22792, 22793, 7, 6, 0, 0, 22793, 22794, 7, 5, 0, 0, 22794, 22795, 7, 5, 0, 0, 22795, 22796, 7, 10, 0, 0, 22796, 22797, 7, 2, 0, 0, 22797, 22798, 7, 7, 0, 0, 22798, 3330, 1, 0, 0, 0, 22799, 22800, 7, 5, 0, 0, 22800, 22801, 7, 6, 0, 0, 22801, 22802, 7, 5, 0, 0, 22802, 22803, 7, 5, 0, 0, 22803, 22804, 7, 10, 0, 0, 22804, 22805, 7, 2, 0, 0, 22805, 22806, 7, 7, 0, 0, 22806, 22807, 7, 5, 0, 0, 22807, 22808, 5, 95, 0, 0, 22808, 22809, 7, 15, 0, 0, 22809, 22810, 7, 6, 0, 0, 22810, 22811, 7, 3, 0, 0, 22811, 22812, 5, 95, 0, 0, 22812, 22813, 7, 12, 0, 0, 22813, 22814, 7, 5, 0, 0, 22814, 22815, 7, 6, 0, 0, 22815, 22816, 7, 3, 0, 0, 22816, 3332, 1, 0, 0, 0, 22817, 22818, 7, 5, 0, 0, 22818, 22819, 7, 6, 0, 0, 22819, 22820, 7, 5, 0, 0, 22820, 22821, 7, 5, 0, 0, 22821, 22822, 7, 10, 0, 0, 22822, 22823, 7, 2, 0, 0, 22823, 22824, 7, 7, 0, 0, 22824, 22825, 7, 4, 0, 0, 22825, 22826, 7, 10, 0, 0, 22826, 22827, 7, 14, 0, 0, 22827, 22828, 7, 6, 0, 0, 22828, 22829, 7, 23, 0, 0, 22829, 22830, 7, 2, 0, 0, 22830, 22831, 7, 7, 0, 0, 22831, 22832, 7, 6, 0, 0, 22832, 3334, 1, 0, 0, 0, 22833, 22834, 7, 5, 0, 0, 22834, 22835, 7, 6, 0, 0, 22835, 22836, 7, 5, 0, 0, 22836, 22837, 7, 5, 0, 0, 22837, 22838, 7, 10, 0, 0, 22838, 22839, 7, 2, 0, 0, 22839, 22840, 7, 7, 0, 0, 22840, 22841, 7, 4, 0, 0, 22841, 22842, 7, 23, 0, 0, 22842, 22843, 7, 7, 0, 0, 22843, 22844, 7, 0, 0, 0, 22844, 22845, 7, 14, 0, 0, 22845, 22846, 7, 6, 0, 0, 22846, 3336, 1, 0, 0, 0, 22847, 22848, 7, 5, 0, 0, 22848, 22849, 7, 6, 0, 0, 22849, 22850, 7, 4, 0, 0, 22850, 3338, 1, 0, 0, 0, 22851, 22852, 7, 5, 0, 0, 22852, 22853, 7, 6, 0, 0, 22853, 22854, 7, 4, 0, 0, 22854, 22855, 7, 5, 0, 0, 22855, 3340, 1, 0, 0, 0, 22856, 22857, 7, 5, 0, 0, 22857, 22858, 7, 6, 0, 0, 22858, 22859, 7, 4, 0, 0, 22859, 22860, 7, 4, 0, 0, 22860, 22861, 7, 10, 0, 0, 22861, 22862, 7, 7, 0, 0, 22862, 22863, 7, 17, 0, 0, 22863, 22864, 7, 5, 0, 0, 22864, 3342, 1, 0, 0, 0, 22865, 22866, 7, 5, 0, 0, 22866, 22867, 7, 6, 0, 0, 22867, 22868, 7, 4, 0, 0, 22868, 22869, 5, 95, 0, 0, 22869, 22870, 7, 4, 0, 0, 22870, 22871, 7, 2, 0, 0, 22871, 22872, 5, 95, 0, 0, 22872, 22873, 7, 20, 0, 0, 22873, 22874, 7, 2, 0, 0, 22874, 22875, 7, 10, 0, 0, 22875, 22876, 7, 7, 0, 0, 22876, 3344, 1, 0, 0, 0, 22877, 22878, 7, 5, 0, 0, 22878, 22879, 7, 6, 0, 0, 22879, 22880, 7, 13, 0, 0, 22880, 22881, 7, 6, 0, 0, 22881, 22882, 7, 3, 0, 0, 22882, 22883, 7, 6, 0, 0, 22883, 3346, 1, 0, 0, 0, 22884, 22885, 7, 5, 0, 0, 22885, 22886, 7, 19, 0, 0, 22886, 22887, 7, 0, 0, 0, 22887, 22888, 7, 3, 0, 0, 22888, 22889, 7, 9, 0, 0, 22889, 3348, 1, 0, 0, 0, 22890, 22891, 7, 5, 0, 0, 22891, 22892, 7, 19, 0, 0, 22892, 22893, 7, 0, 0, 0, 22893, 22894, 7, 3, 0, 0, 22894, 22895, 7, 9, 0, 0, 22895, 22896, 7, 5, 0, 0, 22896, 22897, 7, 15, 0, 0, 22897, 22898, 7, 0, 0, 0, 22898, 22899, 7, 8, 0, 0, 22899, 22900, 7, 6, 0, 0, 22900, 3350, 1, 0, 0, 0, 22901, 22902, 7, 5, 0, 0, 22902, 22903, 7, 19, 0, 0, 22903, 22904, 7, 0, 0, 0, 22904, 22905, 7, 3, 0, 0, 22905, 22906, 7, 6, 0, 0, 22906, 22907, 7, 9, 0, 0, 22907, 22908, 5, 95, 0, 0, 22908, 22909, 7, 15, 0, 0, 22909, 22910, 7, 2, 0, 0, 22910, 22911, 7, 2, 0, 0, 22911, 22912, 7, 11, 0, 0, 22912, 3352, 1, 0, 0, 0, 22913, 22914, 7, 5, 0, 0, 22914, 22915, 7, 19, 0, 0, 22915, 22916, 7, 0, 0, 0, 22916, 22917, 7, 3, 0, 0, 22917, 22918, 7, 6, 0, 0, 22918, 22919, 7, 9, 0, 0, 22919, 3354, 1, 0, 0, 0, 22920, 22921, 7, 5, 0, 0, 22921, 22922, 7, 19, 0, 0, 22922, 22923, 7, 0, 0, 0, 22923, 22924, 7, 3, 0, 0, 22924, 22925, 7, 6, 0, 0, 22925, 3356, 1, 0, 0, 0, 22926, 22927, 7, 5, 0, 0, 22927, 22928, 7, 19, 0, 0, 22928, 22929, 7, 0, 0, 0, 22929, 22930, 7, 3, 0, 0, 22930, 22931, 7, 10, 0, 0, 22931, 22932, 7, 7, 0, 0, 22932, 22933, 7, 17, 0, 0, 22933, 3358, 1, 0, 0, 0, 22934, 22935, 7, 5, 0, 0, 22935, 22936, 7, 19, 0, 0, 22936, 22937, 7, 6, 0, 0, 22937, 22938, 7, 11, 0, 0, 22938, 22939, 7, 16, 0, 0, 22939, 22940, 7, 11, 0, 0, 22940, 22941, 7, 10, 0, 0, 22941, 22942, 7, 16, 0, 0, 22942, 22943, 7, 6, 0, 0, 22943, 3360, 1, 0, 0, 0, 22944, 22945, 7, 5, 0, 0, 22945, 22946, 7, 19, 0, 0, 22946, 22947, 7, 2, 0, 0, 22947, 22948, 7, 22, 0, 0, 22948, 3362, 1, 0, 0, 0, 22949, 22950, 7, 5, 0, 0, 22950, 22951, 7, 19, 0, 0, 22951, 22952, 7, 3, 0, 0, 22952, 22953, 7, 10, 0, 0, 22953, 22954, 7, 7, 0, 0, 22954, 22955, 7, 21, 0, 0, 22955, 3364, 1, 0, 0, 0, 22956, 22957, 7, 5, 0, 0, 22957, 22958, 7, 19, 0, 0, 22958, 22959, 7, 12, 0, 0, 22959, 22960, 7, 4, 0, 0, 22960, 22961, 7, 9, 0, 0, 22961, 22962, 7, 2, 0, 0, 22962, 22963, 7, 22, 0, 0, 22963, 22964, 7, 7, 0, 0, 22964, 3366, 1, 0, 0, 0, 22965, 22966, 7, 5, 0, 0, 22966, 22967, 7, 10, 0, 0, 22967, 22968, 7, 1, 0, 0, 22968, 22969, 7, 11, 0, 0, 22969, 22970, 7, 10, 0, 0, 22970, 22971, 7, 7, 0, 0, 22971, 22972, 7, 17, 0, 0, 22972, 22973, 7, 5, 0, 0, 22973, 3368, 1, 0, 0, 0, 22974, 22975, 7, 5, 0, 0, 22975, 22976, 7, 10, 0, 0, 22976, 22977, 7, 9, 0, 0, 22977, 3370, 1, 0, 0, 0, 22978, 22979, 7, 5, 0, 0, 22979, 22980, 7, 10, 0, 0, 22980, 22981, 7, 4, 0, 0, 22981, 22982, 7, 6, 0, 0, 22982, 3372, 1, 0, 0, 0, 22983, 22984, 7, 5, 0, 0, 22984, 22985, 7, 10, 0, 0, 22985, 22986, 7, 17, 0, 0, 22986, 22987, 7, 7, 0, 0, 22987, 22988, 7, 0, 0, 0, 22988, 22989, 7, 11, 0, 0, 22989, 22990, 5, 95, 0, 0, 22990, 22991, 7, 8, 0, 0, 22991, 22992, 7, 2, 0, 0, 22992, 22993, 7, 14, 0, 0, 22993, 22994, 7, 15, 0, 0, 22994, 22995, 7, 2, 0, 0, 22995, 22996, 7, 7, 0, 0, 22996, 22997, 7, 6, 0, 0, 22997, 22998, 7, 7, 0, 0, 22998, 22999, 7, 4, 0, 0, 22999, 3374, 1, 0, 0, 0, 23000, 23001, 7, 5, 0, 0, 23001, 23002, 7, 10, 0, 0, 23002, 23003, 7, 17, 0, 0, 23003, 23004, 7, 7, 0, 0, 23004, 23005, 7, 0, 0, 0, 23005, 23006, 7, 11, 0, 0, 23006, 23007, 5, 95, 0, 0, 23007, 23008, 7, 16, 0, 0, 23008, 23009, 7, 12, 0, 0, 23009, 23010, 7, 7, 0, 0, 23010, 23011, 7, 8, 0, 0, 23011, 23012, 7, 4, 0, 0, 23012, 23013, 7, 10, 0, 0, 23013, 23014, 7, 2, 0, 0, 23014, 23015, 7, 7, 0, 0, 23015, 3376, 1, 0, 0, 0, 23016, 23017, 7, 5, 0, 0, 23017, 23018, 7, 10, 0, 0, 23018, 23019, 7, 17, 0, 0, 23019, 23020, 7, 7, 0, 0, 23020, 3378, 1, 0, 0, 0, 23021, 23022, 7, 5, 0, 0, 23022, 23023, 7, 10, 0, 0, 23023, 23024, 7, 17, 0, 0, 23024, 23025, 7, 7, 0, 0, 23025, 23026, 7, 4, 0, 0, 23026, 23027, 7, 18, 0, 0, 23027, 23028, 7, 15, 0, 0, 23028, 23029, 7, 6, 0, 0, 23029, 3380, 1, 0, 0, 0, 23030, 23031, 7, 5, 0, 0, 23031, 23032, 7, 10, 0, 0, 23032, 23033, 7, 14, 0, 0, 23033, 23034, 7, 15, 0, 0, 23034, 23035, 7, 11, 0, 0, 23035, 23036, 7, 6, 0, 0, 23036, 23037, 5, 95, 0, 0, 23037, 23038, 7, 10, 0, 0, 23038, 23039, 7, 7, 0, 0, 23039, 23040, 7, 4, 0, 0, 23040, 23041, 7, 6, 0, 0, 23041, 23042, 7, 17, 0, 0, 23042, 23043, 7, 6, 0, 0, 23043, 23044, 7, 3, 0, 0, 23044, 3382, 1, 0, 0, 0, 23045, 23046, 7, 5, 0, 0, 23046, 23047, 7, 10, 0, 0, 23047, 23048, 7, 14, 0, 0, 23048, 23049, 7, 15, 0, 0, 23049, 23050, 7, 11, 0, 0, 23050, 23051, 7, 6, 0, 0, 23051, 3384, 1, 0, 0, 0, 23052, 23053, 7, 5, 0, 0, 23053, 23054, 7, 10, 0, 0, 23054, 23055, 7, 7, 0, 0, 23055, 23056, 7, 17, 0, 0, 23056, 23057, 7, 11, 0, 0, 23057, 23058, 7, 6, 0, 0, 23058, 3386, 1, 0, 0, 0, 23059, 23060, 7, 5, 0, 0, 23060, 23061, 7, 10, 0, 0, 23061, 23062, 7, 7, 0, 0, 23062, 23063, 7, 17, 0, 0, 23063, 23064, 7, 11, 0, 0, 23064, 23065, 7, 6, 0, 0, 23065, 23066, 7, 4, 0, 0, 23066, 23067, 7, 0, 0, 0, 23067, 23068, 7, 5, 0, 0, 23068, 23069, 7, 21, 0, 0, 23069, 3388, 1, 0, 0, 0, 23070, 23071, 7, 5, 0, 0, 23071, 23072, 7, 10, 0, 0, 23072, 23073, 7, 7, 0, 0, 23073, 23074, 7, 19, 0, 0, 23074, 3390, 1, 0, 0, 0, 23075, 23076, 7, 5, 0, 0, 23076, 23077, 7, 10, 0, 0, 23077, 23078, 7, 7, 0, 0, 23078, 3392, 1, 0, 0, 0, 23079, 23080, 7, 5, 0, 0, 23080, 23081, 7, 10, 0, 0, 23081, 23082, 7, 23, 0, 0, 23082, 23083, 7, 6, 0, 0, 23083, 3394, 1, 0, 0, 0, 23084, 23085, 7, 5, 0, 0, 23085, 23086, 7, 10, 0, 0, 23086, 23087, 7, 23, 0, 0, 23087, 23088, 7, 6, 0, 0, 23088, 23089, 7, 5, 0, 0, 23089, 3396, 1, 0, 0, 0, 23090, 23091, 7, 5, 0, 0, 23091, 23092, 7, 21, 0, 0, 23092, 23093, 7, 10, 0, 0, 23093, 23094, 7, 15, 0, 0, 23094, 23095, 5, 95, 0, 0, 23095, 23096, 7, 6, 0, 0, 23096, 23097, 7, 25, 0, 0, 23097, 23098, 7, 4, 0, 0, 23098, 23099, 5, 95, 0, 0, 23099, 23100, 7, 2, 0, 0, 23100, 23101, 7, 15, 0, 0, 23101, 23102, 7, 4, 0, 0, 23102, 23103, 7, 10, 0, 0, 23103, 23104, 7, 14, 0, 0, 23104, 23105, 7, 10, 0, 0, 23105, 23106, 7, 23, 0, 0, 23106, 23107, 7, 6, 0, 0, 23107, 23108, 7, 3, 0, 0, 23108, 3398, 1, 0, 0, 0, 23109, 23110, 7, 5, 0, 0, 23110, 23111, 7, 21, 0, 0, 23111, 23112, 7, 10, 0, 0, 23112, 23113, 7, 15, 0, 0, 23113, 3400, 1, 0, 0, 0, 23114, 23115, 7, 5, 0, 0, 23115, 23116, 7, 21, 0, 0, 23116, 23117, 7, 10, 0, 0, 23117, 23118, 7, 15, 0, 0, 23118, 23119, 5, 95, 0, 0, 23119, 23120, 7, 12, 0, 0, 23120, 23121, 7, 7, 0, 0, 23121, 23122, 7, 24, 0, 0, 23122, 23123, 5, 95, 0, 0, 23123, 23124, 7, 12, 0, 0, 23124, 23125, 7, 7, 0, 0, 23125, 23126, 7, 12, 0, 0, 23126, 23127, 7, 5, 0, 0, 23127, 23128, 7, 0, 0, 0, 23128, 23129, 7, 1, 0, 0, 23129, 23130, 7, 11, 0, 0, 23130, 23131, 7, 6, 0, 0, 23131, 23132, 5, 95, 0, 0, 23132, 23133, 7, 10, 0, 0, 23133, 23134, 7, 9, 0, 0, 23134, 23135, 7, 25, 0, 0, 23135, 3402, 1, 0, 0, 0, 23136, 23137, 7, 5, 0, 0, 23137, 23138, 7, 21, 0, 0, 23138, 23139, 7, 10, 0, 0, 23139, 23140, 7, 15, 0, 0, 23140, 23141, 5, 95, 0, 0, 23141, 23142, 7, 12, 0, 0, 23142, 23143, 7, 7, 0, 0, 23143, 23144, 7, 12, 0, 0, 23144, 23145, 7, 5, 0, 0, 23145, 23146, 7, 0, 0, 0, 23146, 23147, 7, 1, 0, 0, 23147, 23148, 7, 11, 0, 0, 23148, 23149, 7, 6, 0, 0, 23149, 23150, 5, 95, 0, 0, 23150, 23151, 7, 10, 0, 0, 23151, 23152, 7, 7, 0, 0, 23152, 23153, 7, 9, 0, 0, 23153, 23154, 7, 6, 0, 0, 23154, 23155, 7, 25, 0, 0, 23155, 23156, 7, 6, 0, 0, 23156, 23157, 7, 5, 0, 0, 23157, 3404, 1, 0, 0, 0, 23158, 23159, 7, 5, 0, 0, 23159, 23160, 7, 14, 0, 0, 23160, 23161, 7, 0, 0, 0, 23161, 23162, 7, 11, 0, 0, 23162, 23163, 7, 11, 0, 0, 23163, 23164, 7, 16, 0, 0, 23164, 23165, 7, 10, 0, 0, 23165, 23166, 7, 11, 0, 0, 23166, 23167, 7, 6, 0, 0, 23167, 3406, 1, 0, 0, 0, 23168, 23169, 7, 5, 0, 0, 23169, 23170, 7, 14, 0, 0, 23170, 23171, 7, 0, 0, 0, 23171, 23172, 7, 11, 0, 0, 23172, 23173, 7, 11, 0, 0, 23173, 23174, 7, 10, 0, 0, 23174, 23175, 7, 7, 0, 0, 23175, 23176, 7, 4, 0, 0, 23176, 3408, 1, 0, 0, 0, 23177, 23178, 7, 5, 0, 0, 23178, 23179, 7, 7, 0, 0, 23179, 23180, 7, 0, 0, 0, 23180, 23181, 7, 15, 0, 0, 23181, 23182, 7, 5, 0, 0, 23182, 23183, 7, 19, 0, 0, 23183, 23184, 7, 2, 0, 0, 23184, 23185, 7, 4, 0, 0, 23185, 3410, 1, 0, 0, 0, 23186, 23187, 7, 5, 0, 0, 23187, 23188, 7, 2, 0, 0, 23188, 23189, 7, 14, 0, 0, 23189, 23190, 7, 6, 0, 0, 23190, 3412, 1, 0, 0, 0, 23191, 23192, 7, 5, 0, 0, 23192, 23193, 7, 2, 0, 0, 23193, 23194, 7, 3, 0, 0, 23194, 23195, 7, 4, 0, 0, 23195, 3414, 1, 0, 0, 0, 23196, 23197, 7, 5, 0, 0, 23197, 23198, 7, 2, 0, 0, 23198, 23199, 7, 12, 0, 0, 23199, 23200, 7, 7, 0, 0, 23200, 23201, 7, 9, 0, 0, 23201, 23202, 7, 6, 0, 0, 23202, 23203, 7, 25, 0, 0, 23203, 3416, 1, 0, 0, 0, 23204, 23205, 7, 5, 0, 0, 23205, 23206, 7, 2, 0, 0, 23206, 23207, 7, 12, 0, 0, 23207, 23208, 7, 3, 0, 0, 23208, 23209, 7, 8, 0, 0, 23209, 23210, 7, 6, 0, 0, 23210, 23211, 5, 95, 0, 0, 23211, 23212, 7, 16, 0, 0, 23212, 23213, 7, 10, 0, 0, 23213, 23214, 7, 11, 0, 0, 23214, 23215, 7, 6, 0, 0, 23215, 23216, 5, 95, 0, 0, 23216, 23217, 7, 9, 0, 0, 23217, 23218, 7, 10, 0, 0, 23218, 23219, 7, 3, 0, 0, 23219, 23220, 7, 6, 0, 0, 23220, 23221, 7, 8, 0, 0, 23221, 23222, 7, 4, 0, 0, 23222, 23223, 7, 2, 0, 0, 23223, 23224, 7, 3, 0, 0, 23224, 23225, 7, 18, 0, 0, 23225, 3418, 1, 0, 0, 0, 23226, 23227, 7, 5, 0, 0, 23227, 23228, 7, 2, 0, 0, 23228, 23229, 7, 12, 0, 0, 23229, 23230, 7, 3, 0, 0, 23230, 23231, 7, 8, 0, 0, 23231, 23232, 7, 6, 0, 0, 23232, 23233, 5, 95, 0, 0, 23233, 23234, 7, 16, 0, 0, 23234, 23235, 7, 10, 0, 0, 23235, 23236, 7, 11, 0, 0, 23236, 23237, 7, 6, 0, 0, 23237, 23238, 5, 95, 0, 0, 23238, 23239, 7, 7, 0, 0, 23239, 23240, 7, 0, 0, 0, 23240, 23241, 7, 14, 0, 0, 23241, 23242, 7, 6, 0, 0, 23242, 23243, 5, 95, 0, 0, 23243, 23244, 7, 8, 0, 0, 23244, 23245, 7, 2, 0, 0, 23245, 23246, 7, 7, 0, 0, 23246, 23247, 7, 13, 0, 0, 23247, 23248, 7, 6, 0, 0, 23248, 23249, 7, 3, 0, 0, 23249, 23250, 7, 4, 0, 0, 23250, 3420, 1, 0, 0, 0, 23251, 23252, 7, 5, 0, 0, 23252, 23253, 7, 2, 0, 0, 23253, 23254, 7, 12, 0, 0, 23254, 23255, 7, 3, 0, 0, 23255, 23256, 7, 8, 0, 0, 23256, 23257, 7, 6, 0, 0, 23257, 3422, 1, 0, 0, 0, 23258, 23259, 7, 5, 0, 0, 23259, 23260, 7, 15, 0, 0, 23260, 23261, 7, 0, 0, 0, 23261, 23262, 7, 8, 0, 0, 23262, 23263, 7, 6, 0, 0, 23263, 3424, 1, 0, 0, 0, 23264, 23265, 7, 5, 0, 0, 23265, 23266, 7, 15, 0, 0, 23266, 23267, 7, 6, 0, 0, 23267, 23268, 7, 8, 0, 0, 23268, 23269, 7, 10, 0, 0, 23269, 23270, 7, 16, 0, 0, 23270, 23271, 7, 10, 0, 0, 23271, 23272, 7, 8, 0, 0, 23272, 23273, 7, 0, 0, 0, 23273, 23274, 7, 4, 0, 0, 23274, 23275, 7, 10, 0, 0, 23275, 23276, 7, 2, 0, 0, 23276, 23277, 7, 7, 0, 0, 23277, 3426, 1, 0, 0, 0, 23278, 23279, 7, 5, 0, 0, 23279, 23280, 7, 15, 0, 0, 23280, 23281, 7, 16, 0, 0, 23281, 23282, 7, 10, 0, 0, 23282, 23283, 7, 11, 0, 0, 23283, 23284, 7, 6, 0, 0, 23284, 3428, 1, 0, 0, 0, 23285, 23286, 7, 5, 0, 0, 23286, 23287, 7, 15, 0, 0, 23287, 23288, 7, 11, 0, 0, 23288, 23289, 7, 10, 0, 0, 23289, 23290, 7, 4, 0, 0, 23290, 3430, 1, 0, 0, 0, 23291, 23292, 7, 5, 0, 0, 23292, 23293, 7, 15, 0, 0, 23293, 23294, 7, 3, 0, 0, 23294, 23295, 7, 6, 0, 0, 23295, 23296, 7, 0, 0, 0, 23296, 23297, 7, 9, 0, 0, 23297, 23298, 7, 5, 0, 0, 23298, 23299, 7, 19, 0, 0, 23299, 23300, 7, 6, 0, 0, 23300, 23301, 7, 6, 0, 0, 23301, 23302, 7, 4, 0, 0, 23302, 3432, 1, 0, 0, 0, 23303, 23304, 7, 5, 0, 0, 23304, 23305, 7, 24, 0, 0, 23305, 23306, 7, 11, 0, 0, 23306, 23307, 7, 9, 0, 0, 23307, 23308, 7, 0, 0, 0, 23308, 23309, 7, 4, 0, 0, 23309, 23310, 7, 0, 0, 0, 23310, 3434, 1, 0, 0, 0, 23311, 23312, 7, 5, 0, 0, 23312, 23313, 7, 24, 0, 0, 23313, 23314, 7, 11, 0, 0, 23314, 23315, 7, 6, 0, 0, 23315, 23316, 7, 3, 0, 0, 23316, 23317, 7, 3, 0, 0, 23317, 23318, 7, 2, 0, 0, 23318, 23319, 7, 3, 0, 0, 23319, 3436, 1, 0, 0, 0, 23320, 23321, 7, 5, 0, 0, 23321, 23322, 7, 24, 0, 0, 23322, 23323, 7, 11, 0, 0, 23323, 23324, 7, 11, 0, 0, 23324, 23325, 7, 9, 0, 0, 23325, 23326, 7, 3, 0, 0, 23326, 3438, 1, 0, 0, 0, 23327, 23328, 7, 5, 0, 0, 23328, 23329, 7, 24, 0, 0, 23329, 23330, 7, 11, 0, 0, 23330, 3440, 1, 0, 0, 0, 23331, 23332, 7, 15, 0, 0, 23332, 23333, 7, 21, 0, 0, 23333, 23338, 7, 1, 0, 0, 23334, 23335, 7, 15, 0, 0, 23335, 23336, 7, 21, 0, 0, 23336, 23338, 7, 5, 0, 0, 23337, 23331, 1, 0, 0, 0, 23337, 23334, 1, 0, 0, 0, 23338, 3442, 1, 0, 0, 0, 23339, 23340, 7, 5, 0, 0, 23340, 23341, 7, 24, 0, 0, 23341, 23342, 7, 11, 0, 0, 23342, 23343, 5, 95, 0, 0, 23343, 23344, 7, 14, 0, 0, 23344, 23345, 7, 0, 0, 0, 23345, 23346, 7, 8, 0, 0, 23346, 23347, 7, 3, 0, 0, 23347, 23348, 7, 2, 0, 0, 23348, 3444, 1, 0, 0, 0, 23349, 23350, 7, 5, 0, 0, 23350, 23351, 7, 24, 0, 0, 23351, 23352, 7, 11, 0, 0, 23352, 23353, 5, 95, 0, 0, 23353, 23354, 7, 4, 0, 0, 23354, 23355, 7, 3, 0, 0, 23355, 23356, 7, 0, 0, 0, 23356, 23357, 7, 8, 0, 0, 23357, 23358, 7, 6, 0, 0, 23358, 3446, 1, 0, 0, 0, 23359, 23360, 7, 5, 0, 0, 23360, 23361, 7, 24, 0, 0, 23361, 23362, 7, 11, 0, 0, 23362, 23363, 5, 95, 0, 0, 23363, 23364, 7, 4, 0, 0, 23364, 23365, 7, 3, 0, 0, 23365, 23366, 7, 0, 0, 0, 23366, 23367, 7, 7, 0, 0, 23367, 23368, 7, 5, 0, 0, 23368, 23369, 7, 11, 0, 0, 23369, 23370, 7, 0, 0, 0, 23370, 23371, 7, 4, 0, 0, 23371, 23372, 7, 10, 0, 0, 23372, 23373, 7, 2, 0, 0, 23373, 23374, 7, 7, 0, 0, 23374, 23375, 5, 95, 0, 0, 23375, 23376, 7, 15, 0, 0, 23376, 23377, 7, 3, 0, 0, 23377, 23378, 7, 2, 0, 0, 23378, 23379, 7, 16, 0, 0, 23379, 23380, 7, 10, 0, 0, 23380, 23381, 7, 11, 0, 0, 23381, 23382, 7, 6, 0, 0, 23382, 3448, 1, 0, 0, 0, 23383, 23384, 7, 5, 0, 0, 23384, 23385, 7, 24, 0, 0, 23385, 23386, 7, 3, 0, 0, 23386, 23387, 7, 4, 0, 0, 23387, 3450, 1, 0, 0, 0, 23388, 23389, 7, 5, 0, 0, 23389, 23390, 7, 4, 0, 0, 23390, 23391, 7, 0, 0, 0, 23391, 23392, 7, 11, 0, 0, 23392, 23393, 7, 6, 0, 0, 23393, 3452, 1, 0, 0, 0, 23394, 23395, 7, 5, 0, 0, 23395, 23396, 7, 4, 0, 0, 23396, 23397, 7, 0, 0, 0, 23397, 23398, 7, 7, 0, 0, 23398, 23399, 7, 9, 0, 0, 23399, 23400, 7, 0, 0, 0, 23400, 23401, 7, 11, 0, 0, 23401, 23402, 7, 2, 0, 0, 23402, 23403, 7, 7, 0, 0, 23403, 23404, 7, 6, 0, 0, 23404, 3454, 1, 0, 0, 0, 23405, 23406, 7, 5, 0, 0, 23406, 23407, 7, 4, 0, 0, 23407, 23408, 7, 0, 0, 0, 23408, 23409, 7, 7, 0, 0, 23409, 23410, 7, 9, 0, 0, 23410, 23411, 7, 0, 0, 0, 23411, 23412, 7, 3, 0, 0, 23412, 23413, 7, 9, 0, 0, 23413, 3456, 1, 0, 0, 0, 23414, 23415, 7, 5, 0, 0, 23415, 23416, 7, 4, 0, 0, 23416, 23417, 7, 0, 0, 0, 23417, 23418, 7, 7, 0, 0, 23418, 23419, 7, 9, 0, 0, 23419, 23420, 7, 0, 0, 0, 23420, 23421, 7, 3, 0, 0, 23421, 23422, 7, 9, 0, 0, 23422, 23423, 5, 95, 0, 0, 23423, 23424, 7, 19, 0, 0, 23424, 23425, 7, 0, 0, 0, 23425, 23426, 7, 5, 0, 0, 23426, 23427, 7, 19, 0, 0, 23427, 3458, 1, 0, 0, 0, 23428, 23429, 7, 5, 0, 0, 23429, 23430, 7, 4, 0, 0, 23430, 23431, 7, 0, 0, 0, 23431, 23432, 7, 7, 0, 0, 23432, 23433, 7, 9, 0, 0, 23433, 23434, 7, 1, 0, 0, 23434, 23435, 7, 18, 0, 0, 23435, 23436, 5, 95, 0, 0, 23436, 23437, 7, 14, 0, 0, 23437, 23438, 7, 0, 0, 0, 23438, 23439, 7, 25, 0, 0, 23439, 23440, 5, 95, 0, 0, 23440, 23441, 7, 9, 0, 0, 23441, 23442, 7, 0, 0, 0, 23442, 23443, 7, 4, 0, 0, 23443, 23444, 7, 0, 0, 0, 23444, 23445, 5, 95, 0, 0, 23445, 23446, 7, 9, 0, 0, 23446, 23447, 7, 6, 0, 0, 23447, 23448, 7, 11, 0, 0, 23448, 23449, 7, 0, 0, 0, 23449, 23450, 7, 18, 0, 0, 23450, 3460, 1, 0, 0, 0, 23451, 23452, 7, 5, 0, 0, 23452, 23453, 7, 4, 0, 0, 23453, 23454, 7, 0, 0, 0, 23454, 23455, 7, 7, 0, 0, 23455, 23456, 7, 9, 0, 0, 23456, 23457, 7, 1, 0, 0, 23457, 23458, 7, 18, 0, 0, 23458, 23459, 7, 5, 0, 0, 23459, 3462, 1, 0, 0, 0, 23460, 23461, 7, 5, 0, 0, 23461, 23462, 7, 4, 0, 0, 23462, 23463, 7, 0, 0, 0, 23463, 23464, 7, 7, 0, 0, 23464, 23465, 7, 9, 0, 0, 23465, 23466, 7, 1, 0, 0, 23466, 23467, 7, 18, 0, 0, 23467, 3464, 1, 0, 0, 0, 23468, 23469, 7, 5, 0, 0, 23469, 23470, 7, 4, 0, 0, 23470, 23471, 7, 0, 0, 0, 23471, 23472, 7, 3, 0, 0, 23472, 3466, 1, 0, 0, 0, 23473, 23474, 7, 5, 0, 0, 23474, 23475, 7, 4, 0, 0, 23475, 23476, 7, 0, 0, 0, 23476, 23477, 7, 3, 0, 0, 23477, 23478, 5, 95, 0, 0, 23478, 23479, 7, 4, 0, 0, 23479, 23480, 7, 3, 0, 0, 23480, 23481, 7, 0, 0, 0, 23481, 23482, 7, 7, 0, 0, 23482, 23483, 7, 5, 0, 0, 23483, 23484, 7, 16, 0, 0, 23484, 23485, 7, 2, 0, 0, 23485, 23486, 7, 3, 0, 0, 23486, 23487, 7, 14, 0, 0, 23487, 23488, 7, 0, 0, 0, 23488, 23489, 7, 4, 0, 0, 23489, 23490, 7, 10, 0, 0, 23490, 23491, 7, 2, 0, 0, 23491, 23492, 7, 7, 0, 0, 23492, 3468, 1, 0, 0, 0, 23493, 23494, 7, 5, 0, 0, 23494, 23495, 7, 4, 0, 0, 23495, 23496, 7, 0, 0, 0, 23496, 23497, 7, 3, 0, 0, 23497, 23498, 7, 4, 0, 0, 23498, 3470, 1, 0, 0, 0, 23499, 23500, 7, 5, 0, 0, 23500, 23501, 7, 4, 0, 0, 23501, 23502, 7, 0, 0, 0, 23502, 23503, 7, 3, 0, 0, 23503, 23504, 7, 4, 0, 0, 23504, 23505, 7, 2, 0, 0, 23505, 23506, 7, 16, 0, 0, 23506, 3472, 1, 0, 0, 0, 23507, 23508, 7, 5, 0, 0, 23508, 23509, 7, 4, 0, 0, 23509, 23510, 7, 0, 0, 0, 23510, 23511, 7, 3, 0, 0, 23511, 23512, 7, 4, 0, 0, 23512, 23513, 7, 12, 0, 0, 23513, 23514, 7, 15, 0, 0, 23514, 3474, 1, 0, 0, 0, 23515, 23516, 7, 5, 0, 0, 23516, 23517, 7, 4, 0, 0, 23517, 23518, 7, 0, 0, 0, 23518, 23519, 7, 4, 0, 0, 23519, 23520, 7, 6, 0, 0, 23520, 23521, 7, 14, 0, 0, 23521, 23522, 7, 6, 0, 0, 23522, 23523, 7, 7, 0, 0, 23523, 23524, 7, 4, 0, 0, 23524, 23525, 5, 95, 0, 0, 23525, 23526, 7, 10, 0, 0, 23526, 23527, 7, 9, 0, 0, 23527, 3476, 1, 0, 0, 0, 23528, 23529, 7, 5, 0, 0, 23529, 23530, 7, 4, 0, 0, 23530, 23531, 7, 0, 0, 0, 23531, 23532, 7, 4, 0, 0, 23532, 23533, 7, 6, 0, 0, 23533, 23534, 7, 14, 0, 0, 23534, 23535, 7, 6, 0, 0, 23535, 23536, 7, 7, 0, 0, 23536, 23537, 7, 4, 0, 0, 23537, 23538, 5, 95, 0, 0, 23538, 23539, 7, 24, 0, 0, 23539, 23540, 7, 12, 0, 0, 23540, 23541, 7, 6, 0, 0, 23541, 23542, 7, 12, 0, 0, 23542, 23543, 7, 10, 0, 0, 23543, 23544, 7, 7, 0, 0, 23544, 23545, 7, 17, 0, 0, 23545, 3478, 1, 0, 0, 0, 23546, 23547, 7, 5, 0, 0, 23547, 23548, 7, 4, 0, 0, 23548, 23549, 7, 0, 0, 0, 23549, 23550, 7, 4, 0, 0, 23550, 23551, 7, 6, 0, 0, 23551, 23552, 7, 14, 0, 0, 23552, 23553, 7, 6, 0, 0, 23553, 23554, 7, 7, 0, 0, 23554, 23555, 7, 4, 0, 0, 23555, 23556, 7, 5, 0, 0, 23556, 3480, 1, 0, 0, 0, 23557, 23558, 7, 5, 0, 0, 23558, 23559, 7, 4, 0, 0, 23559, 23560, 7, 0, 0, 0, 23560, 23561, 7, 4, 0, 0, 23561, 23562, 7, 6, 0, 0, 23562, 23563, 7, 14, 0, 0, 23563, 23564, 7, 6, 0, 0, 23564, 23565, 7, 7, 0, 0, 23565, 23566, 7, 4, 0, 0, 23566, 3482, 1, 0, 0, 0, 23567, 23568, 7, 5, 0, 0, 23568, 23569, 7, 4, 0, 0, 23569, 23570, 7, 0, 0, 0, 23570, 23571, 7, 4, 0, 0, 23571, 23572, 7, 6, 0, 0, 23572, 3484, 1, 0, 0, 0, 23573, 23574, 7, 5, 0, 0, 23574, 23575, 7, 4, 0, 0, 23575, 23576, 7, 0, 0, 0, 23576, 23577, 7, 4, 0, 0, 23577, 23578, 7, 10, 0, 0, 23578, 23579, 7, 8, 0, 0, 23579, 3486, 1, 0, 0, 0, 23580, 23581, 7, 5, 0, 0, 23581, 23582, 7, 4, 0, 0, 23582, 23583, 7, 0, 0, 0, 23583, 23584, 7, 4, 0, 0, 23584, 23585, 7, 10, 0, 0, 23585, 23586, 7, 5, 0, 0, 23586, 23587, 7, 4, 0, 0, 23587, 23588, 7, 10, 0, 0, 23588, 23589, 7, 8, 0, 0, 23589, 23590, 7, 5, 0, 0, 23590, 3488, 1, 0, 0, 0, 23591, 23592, 7, 5, 0, 0, 23592, 23593, 7, 4, 0, 0, 23593, 23594, 7, 0, 0, 0, 23594, 23595, 7, 4, 0, 0, 23595, 23596, 7, 5, 0, 0, 23596, 23597, 5, 95, 0, 0, 23597, 23598, 7, 1, 0, 0, 23598, 23599, 7, 10, 0, 0, 23599, 23600, 7, 7, 0, 0, 23600, 23601, 7, 2, 0, 0, 23601, 23602, 7, 14, 0, 0, 23602, 23603, 7, 10, 0, 0, 23603, 23604, 7, 0, 0, 0, 23604, 23605, 7, 11, 0, 0, 23605, 23606, 5, 95, 0, 0, 23606, 23607, 7, 4, 0, 0, 23607, 23608, 7, 6, 0, 0, 23608, 23609, 7, 5, 0, 0, 23609, 23610, 7, 4, 0, 0, 23610, 3490, 1, 0, 0, 0, 23611, 23612, 7, 5, 0, 0, 23612, 23613, 7, 4, 0, 0, 23613, 23614, 7, 0, 0, 0, 23614, 23615, 7, 4, 0, 0, 23615, 23616, 7, 5, 0, 0, 23616, 23617, 5, 95, 0, 0, 23617, 23618, 7, 8, 0, 0, 23618, 23619, 7, 3, 0, 0, 23619, 23620, 7, 2, 0, 0, 23620, 23621, 7, 5, 0, 0, 23621, 23622, 7, 5, 0, 0, 23622, 23623, 7, 4, 0, 0, 23623, 23624, 7, 0, 0, 0, 23624, 23625, 7, 1, 0, 0, 23625, 3492, 1, 0, 0, 0, 23626, 23627, 7, 5, 0, 0, 23627, 23628, 7, 4, 0, 0, 23628, 23629, 7, 0, 0, 0, 23629, 23630, 7, 4, 0, 0, 23630, 23631, 7, 5, 0, 0, 23631, 23632, 5, 95, 0, 0, 23632, 23633, 7, 16, 0, 0, 23633, 23634, 5, 95, 0, 0, 23634, 23635, 7, 4, 0, 0, 23635, 23636, 7, 6, 0, 0, 23636, 23637, 7, 5, 0, 0, 23637, 23638, 7, 4, 0, 0, 23638, 3494, 1, 0, 0, 0, 23639, 23640, 7, 5, 0, 0, 23640, 23641, 7, 4, 0, 0, 23641, 23642, 7, 0, 0, 0, 23642, 23643, 7, 4, 0, 0, 23643, 23644, 7, 5, 0, 0, 23644, 23645, 5, 95, 0, 0, 23645, 23646, 7, 21, 0, 0, 23646, 23647, 7, 5, 0, 0, 23647, 23648, 5, 95, 0, 0, 23648, 23649, 7, 4, 0, 0, 23649, 23650, 7, 6, 0, 0, 23650, 23651, 7, 5, 0, 0, 23651, 23652, 7, 4, 0, 0, 23652, 3496, 1, 0, 0, 0, 23653, 23654, 7, 5, 0, 0, 23654, 23655, 7, 4, 0, 0, 23655, 23656, 7, 0, 0, 0, 23656, 23657, 7, 4, 0, 0, 23657, 23658, 7, 5, 0, 0, 23658, 23659, 5, 95, 0, 0, 23659, 23660, 7, 14, 0, 0, 23660, 23661, 7, 2, 0, 0, 23661, 23662, 7, 9, 0, 0, 23662, 23663, 7, 6, 0, 0, 23663, 3498, 1, 0, 0, 0, 23664, 23665, 7, 5, 0, 0, 23665, 23666, 7, 4, 0, 0, 23666, 23667, 7, 0, 0, 0, 23667, 23668, 7, 4, 0, 0, 23668, 23669, 7, 5, 0, 0, 23669, 23670, 5, 95, 0, 0, 23670, 23671, 7, 14, 0, 0, 23671, 23672, 7, 22, 0, 0, 23672, 23673, 5, 95, 0, 0, 23673, 23674, 7, 4, 0, 0, 23674, 23675, 7, 6, 0, 0, 23675, 23676, 7, 5, 0, 0, 23676, 23677, 7, 4, 0, 0, 23677, 3500, 1, 0, 0, 0, 23678, 23679, 7, 5, 0, 0, 23679, 23680, 7, 4, 0, 0, 23680, 23681, 7, 0, 0, 0, 23681, 23682, 7, 4, 0, 0, 23682, 23683, 7, 5, 0, 0, 23683, 23684, 5, 95, 0, 0, 23684, 23685, 7, 2, 0, 0, 23685, 23686, 7, 7, 0, 0, 23686, 23687, 7, 6, 0, 0, 23687, 23688, 5, 95, 0, 0, 23688, 23689, 7, 22, 0, 0, 23689, 23690, 7, 0, 0, 0, 23690, 23691, 7, 18, 0, 0, 23691, 23692, 5, 95, 0, 0, 23692, 23693, 7, 0, 0, 0, 23693, 23694, 7, 7, 0, 0, 23694, 23695, 7, 2, 0, 0, 23695, 23696, 7, 13, 0, 0, 23696, 23697, 7, 0, 0, 0, 23697, 3502, 1, 0, 0, 0, 23698, 23699, 7, 5, 0, 0, 23699, 23700, 7, 4, 0, 0, 23700, 23701, 7, 0, 0, 0, 23701, 23702, 7, 4, 0, 0, 23702, 23703, 7, 5, 0, 0, 23703, 23704, 5, 95, 0, 0, 23704, 23705, 7, 4, 0, 0, 23705, 23706, 5, 95, 0, 0, 23706, 23707, 7, 4, 0, 0, 23707, 23708, 7, 6, 0, 0, 23708, 23709, 7, 5, 0, 0, 23709, 23710, 7, 4, 0, 0, 23710, 23711, 5, 95, 0, 0, 23711, 23712, 7, 10, 0, 0, 23712, 23713, 7, 7, 0, 0, 23713, 23714, 7, 9, 0, 0, 23714, 23715, 7, 6, 0, 0, 23715, 23716, 7, 15, 0, 0, 23716, 3504, 1, 0, 0, 0, 23717, 23718, 7, 5, 0, 0, 23718, 23719, 7, 4, 0, 0, 23719, 23720, 7, 0, 0, 0, 23720, 23721, 7, 4, 0, 0, 23721, 23722, 7, 5, 0, 0, 23722, 23723, 5, 95, 0, 0, 23723, 23724, 7, 4, 0, 0, 23724, 23725, 5, 95, 0, 0, 23725, 23726, 7, 4, 0, 0, 23726, 23727, 7, 6, 0, 0, 23727, 23728, 7, 5, 0, 0, 23728, 23729, 7, 4, 0, 0, 23729, 23730, 5, 95, 0, 0, 23730, 23731, 7, 10, 0, 0, 23731, 23732, 7, 7, 0, 0, 23732, 23733, 7, 9, 0, 0, 23733, 23734, 7, 6, 0, 0, 23734, 23735, 7, 15, 0, 0, 23735, 23736, 7, 12, 0, 0, 23736, 3506, 1, 0, 0, 0, 23737, 23738, 7, 5, 0, 0, 23738, 23739, 7, 4, 0, 0, 23739, 23740, 7, 0, 0, 0, 23740, 23741, 7, 4, 0, 0, 23741, 23742, 7, 5, 0, 0, 23742, 23743, 5, 95, 0, 0, 23743, 23744, 7, 4, 0, 0, 23744, 23745, 5, 95, 0, 0, 23745, 23746, 7, 4, 0, 0, 23746, 23747, 7, 6, 0, 0, 23747, 23748, 7, 5, 0, 0, 23748, 23749, 7, 4, 0, 0, 23749, 23750, 5, 95, 0, 0, 23750, 23751, 7, 2, 0, 0, 23751, 23752, 7, 7, 0, 0, 23752, 23753, 7, 6, 0, 0, 23753, 3508, 1, 0, 0, 0, 23754, 23755, 7, 5, 0, 0, 23755, 23756, 7, 4, 0, 0, 23756, 23757, 7, 0, 0, 0, 23757, 23758, 7, 4, 0, 0, 23758, 23759, 7, 5, 0, 0, 23759, 23760, 5, 95, 0, 0, 23760, 23761, 7, 4, 0, 0, 23761, 23762, 5, 95, 0, 0, 23762, 23763, 7, 4, 0, 0, 23763, 23764, 7, 6, 0, 0, 23764, 23765, 7, 5, 0, 0, 23765, 23766, 7, 4, 0, 0, 23766, 23767, 5, 95, 0, 0, 23767, 23768, 7, 15, 0, 0, 23768, 23769, 7, 0, 0, 0, 23769, 23770, 7, 10, 0, 0, 23770, 23771, 7, 3, 0, 0, 23771, 23772, 7, 6, 0, 0, 23772, 23773, 7, 9, 0, 0, 23773, 3510, 1, 0, 0, 0, 23774, 23775, 7, 5, 0, 0, 23775, 23776, 7, 4, 0, 0, 23776, 23777, 7, 0, 0, 0, 23777, 23778, 7, 4, 0, 0, 23778, 23779, 7, 5, 0, 0, 23779, 23780, 5, 95, 0, 0, 23780, 23781, 7, 22, 0, 0, 23781, 23782, 7, 5, 0, 0, 23782, 23783, 7, 3, 0, 0, 23783, 23784, 5, 95, 0, 0, 23784, 23785, 7, 4, 0, 0, 23785, 23786, 7, 6, 0, 0, 23786, 23787, 7, 5, 0, 0, 23787, 23788, 7, 4, 0, 0, 23788, 3512, 1, 0, 0, 0, 23789, 23790, 7, 5, 0, 0, 23790, 23791, 7, 4, 0, 0, 23791, 23792, 7, 9, 0, 0, 23792, 23793, 7, 9, 0, 0, 23793, 23794, 7, 6, 0, 0, 23794, 23795, 7, 13, 0, 0, 23795, 23796, 5, 95, 0, 0, 23796, 23797, 7, 15, 0, 0, 23797, 23798, 7, 2, 0, 0, 23798, 23799, 7, 15, 0, 0, 23799, 3514, 1, 0, 0, 0, 23800, 23801, 7, 5, 0, 0, 23801, 23802, 7, 4, 0, 0, 23802, 23803, 7, 9, 0, 0, 23803, 23804, 7, 9, 0, 0, 23804, 23805, 7, 6, 0, 0, 23805, 23806, 7, 13, 0, 0, 23806, 23807, 5, 95, 0, 0, 23807, 23808, 7, 5, 0, 0, 23808, 23809, 7, 0, 0, 0, 23809, 23810, 7, 14, 0, 0, 23810, 23811, 7, 15, 0, 0, 23811, 3516, 1, 0, 0, 0, 23812, 23813, 7, 5, 0, 0, 23813, 23814, 7, 4, 0, 0, 23814, 23815, 7, 2, 0, 0, 23815, 23816, 7, 15, 0, 0, 23816, 3518, 1, 0, 0, 0, 23817, 23818, 7, 5, 0, 0, 23818, 23819, 7, 4, 0, 0, 23819, 23820, 7, 2, 0, 0, 23820, 23821, 7, 3, 0, 0, 23821, 23822, 7, 0, 0, 0, 23822, 23823, 7, 17, 0, 0, 23823, 23824, 7, 6, 0, 0, 23824, 3520, 1, 0, 0, 0, 23825, 23826, 7, 5, 0, 0, 23826, 23827, 7, 4, 0, 0, 23827, 23828, 7, 2, 0, 0, 23828, 23829, 7, 3, 0, 0, 23829, 23830, 7, 6, 0, 0, 23830, 3522, 1, 0, 0, 0, 23831, 23832, 7, 5, 0, 0, 23832, 23833, 7, 4, 0, 0, 23833, 23834, 7, 3, 0, 0, 23834, 23835, 7, 6, 0, 0, 23835, 23836, 7, 0, 0, 0, 23836, 23837, 7, 14, 0, 0, 23837, 23838, 7, 5, 0, 0, 23838, 3524, 1, 0, 0, 0, 23839, 23840, 7, 5, 0, 0, 23840, 23841, 7, 4, 0, 0, 23841, 23842, 7, 3, 0, 0, 23842, 23843, 7, 6, 0, 0, 23843, 23844, 7, 0, 0, 0, 23844, 23845, 7, 14, 0, 0, 23845, 3526, 1, 0, 0, 0, 23846, 23847, 7, 5, 0, 0, 23847, 23848, 7, 4, 0, 0, 23848, 23849, 7, 3, 0, 0, 23849, 23850, 7, 10, 0, 0, 23850, 23851, 7, 8, 0, 0, 23851, 23852, 7, 4, 0, 0, 23852, 3528, 1, 0, 0, 0, 23853, 23854, 7, 5, 0, 0, 23854, 23855, 7, 4, 0, 0, 23855, 23856, 7, 3, 0, 0, 23856, 23857, 7, 10, 0, 0, 23857, 23858, 7, 7, 0, 0, 23858, 23859, 7, 17, 0, 0, 23859, 3530, 1, 0, 0, 0, 23860, 23861, 7, 5, 0, 0, 23861, 23862, 7, 4, 0, 0, 23862, 23863, 7, 3, 0, 0, 23863, 23864, 7, 10, 0, 0, 23864, 23865, 7, 15, 0, 0, 23865, 23866, 7, 6, 0, 0, 23866, 23867, 5, 95, 0, 0, 23867, 23868, 7, 8, 0, 0, 23868, 23869, 7, 2, 0, 0, 23869, 23870, 7, 11, 0, 0, 23870, 23871, 7, 12, 0, 0, 23871, 23872, 7, 14, 0, 0, 23872, 23873, 7, 7, 0, 0, 23873, 23874, 7, 5, 0, 0, 23874, 3532, 1, 0, 0, 0, 23875, 23876, 7, 5, 0, 0, 23876, 23877, 7, 4, 0, 0, 23877, 23878, 7, 3, 0, 0, 23878, 23879, 7, 10, 0, 0, 23879, 23880, 7, 15, 0, 0, 23880, 23881, 7, 6, 0, 0, 23881, 23882, 5, 95, 0, 0, 23882, 23883, 7, 22, 0, 0, 23883, 23884, 7, 10, 0, 0, 23884, 23885, 7, 9, 0, 0, 23885, 23886, 7, 4, 0, 0, 23886, 23887, 7, 19, 0, 0, 23887, 3534, 1, 0, 0, 0, 23888, 23889, 7, 5, 0, 0, 23889, 23890, 7, 4, 0, 0, 23890, 23891, 7, 3, 0, 0, 23891, 23892, 7, 10, 0, 0, 23892, 23893, 7, 15, 0, 0, 23893, 3536, 1, 0, 0, 0, 23894, 23895, 7, 5, 0, 0, 23895, 23896, 7, 4, 0, 0, 23896, 23897, 7, 3, 0, 0, 23897, 23898, 7, 12, 0, 0, 23898, 23899, 7, 8, 0, 0, 23899, 23900, 7, 4, 0, 0, 23900, 23901, 7, 12, 0, 0, 23901, 23902, 7, 3, 0, 0, 23902, 23903, 7, 6, 0, 0, 23903, 3538, 1, 0, 0, 0, 23904, 23905, 7, 5, 0, 0, 23905, 23906, 7, 12, 0, 0, 23906, 23907, 7, 1, 0, 0, 23907, 23908, 7, 14, 0, 0, 23908, 23909, 7, 12, 0, 0, 23909, 23910, 7, 11, 0, 0, 23910, 23911, 7, 4, 0, 0, 23911, 23912, 7, 10, 0, 0, 23912, 23913, 7, 5, 0, 0, 23913, 23914, 7, 6, 0, 0, 23914, 23915, 7, 4, 0, 0, 23915, 3540, 1, 0, 0, 0, 23916, 23917, 7, 5, 0, 0, 23917, 23918, 7, 12, 0, 0, 23918, 23919, 7, 1, 0, 0, 23919, 23920, 7, 15, 0, 0, 23920, 23921, 7, 0, 0, 0, 23921, 23922, 7, 3, 0, 0, 23922, 23923, 7, 4, 0, 0, 23923, 23924, 7, 10, 0, 0, 23924, 23925, 7, 4, 0, 0, 23925, 23926, 7, 10, 0, 0, 23926, 23927, 7, 2, 0, 0, 23927, 23928, 7, 7, 0, 0, 23928, 23929, 5, 95, 0, 0, 23929, 23930, 7, 3, 0, 0, 23930, 23931, 7, 6, 0, 0, 23931, 23932, 7, 11, 0, 0, 23932, 3542, 1, 0, 0, 0, 23933, 23934, 7, 5, 0, 0, 23934, 23935, 7, 12, 0, 0, 23935, 23936, 7, 1, 0, 0, 23936, 23937, 7, 15, 0, 0, 23937, 23938, 7, 0, 0, 0, 23938, 23939, 7, 3, 0, 0, 23939, 23940, 7, 4, 0, 0, 23940, 23941, 7, 10, 0, 0, 23941, 23942, 7, 4, 0, 0, 23942, 23943, 7, 10, 0, 0, 23943, 23944, 7, 2, 0, 0, 23944, 23945, 7, 7, 0, 0, 23945, 23946, 7, 5, 0, 0, 23946, 3544, 1, 0, 0, 0, 23947, 23948, 7, 5, 0, 0, 23948, 23949, 7, 12, 0, 0, 23949, 23950, 7, 1, 0, 0, 23950, 23951, 7, 15, 0, 0, 23951, 23952, 7, 0, 0, 0, 23952, 23953, 7, 3, 0, 0, 23953, 23954, 7, 4, 0, 0, 23954, 23955, 7, 10, 0, 0, 23955, 23956, 7, 4, 0, 0, 23956, 23957, 7, 10, 0, 0, 23957, 23958, 7, 2, 0, 0, 23958, 23959, 7, 7, 0, 0, 23959, 3546, 1, 0, 0, 0, 23960, 23961, 7, 5, 0, 0, 23961, 23962, 7, 12, 0, 0, 23962, 23963, 7, 1, 0, 0, 23963, 23964, 7, 24, 0, 0, 23964, 23965, 7, 12, 0, 0, 23965, 23966, 7, 6, 0, 0, 23966, 23967, 7, 3, 0, 0, 23967, 23968, 7, 10, 0, 0, 23968, 23969, 7, 6, 0, 0, 23969, 23970, 7, 5, 0, 0, 23970, 3548, 1, 0, 0, 0, 23971, 23972, 7, 5, 0, 0, 23972, 23973, 7, 12, 0, 0, 23973, 23974, 7, 1, 0, 0, 23974, 23975, 7, 24, 0, 0, 23975, 23976, 7, 12, 0, 0, 23976, 23977, 7, 6, 0, 0, 23977, 23978, 7, 3, 0, 0, 23978, 23979, 7, 18, 0, 0, 23979, 23980, 5, 95, 0, 0, 23980, 23981, 7, 15, 0, 0, 23981, 23982, 7, 3, 0, 0, 23982, 23983, 7, 12, 0, 0, 23983, 23984, 7, 7, 0, 0, 23984, 23985, 7, 10, 0, 0, 23985, 23986, 7, 7, 0, 0, 23986, 23987, 7, 17, 0, 0, 23987, 3550, 1, 0, 0, 0, 23988, 23989, 7, 5, 0, 0, 23989, 23990, 7, 12, 0, 0, 23990, 23991, 7, 1, 0, 0, 23991, 23992, 7, 5, 0, 0, 23992, 23993, 7, 8, 0, 0, 23993, 23994, 7, 3, 0, 0, 23994, 23995, 7, 10, 0, 0, 23995, 23996, 7, 1, 0, 0, 23996, 23997, 7, 6, 0, 0, 23997, 3552, 1, 0, 0, 0, 23998, 23999, 7, 5, 0, 0, 23999, 24000, 7, 12, 0, 0, 24000, 24001, 7, 1, 0, 0, 24001, 24002, 7, 5, 0, 0, 24002, 24003, 7, 6, 0, 0, 24003, 24004, 7, 4, 0, 0, 24004, 3554, 1, 0, 0, 0, 24005, 24006, 7, 5, 0, 0, 24006, 24007, 7, 12, 0, 0, 24007, 24008, 7, 1, 0, 0, 24008, 24009, 7, 5, 0, 0, 24009, 24010, 7, 4, 0, 0, 24010, 24011, 7, 10, 0, 0, 24011, 24012, 7, 4, 0, 0, 24012, 24013, 7, 12, 0, 0, 24013, 24014, 7, 4, 0, 0, 24014, 24015, 7, 0, 0, 0, 24015, 24016, 7, 1, 0, 0, 24016, 24017, 7, 11, 0, 0, 24017, 24018, 7, 6, 0, 0, 24018, 3556, 1, 0, 0, 0, 24019, 24020, 7, 5, 0, 0, 24020, 24021, 7, 12, 0, 0, 24021, 24022, 7, 1, 0, 0, 24022, 24023, 7, 5, 0, 0, 24023, 24024, 7, 4, 0, 0, 24024, 24025, 7, 3, 0, 0, 24025, 24026, 5, 50, 0, 0, 24026, 3558, 1, 0, 0, 0, 24027, 24028, 7, 5, 0, 0, 24028, 24029, 7, 12, 0, 0, 24029, 24030, 7, 1, 0, 0, 24030, 24031, 7, 5, 0, 0, 24031, 24032, 7, 4, 0, 0, 24032, 24033, 7, 3, 0, 0, 24033, 24034, 5, 52, 0, 0, 24034, 3560, 1, 0, 0, 0, 24035, 24036, 7, 5, 0, 0, 24036, 24037, 7, 12, 0, 0, 24037, 24038, 7, 1, 0, 0, 24038, 24039, 7, 5, 0, 0, 24039, 24040, 7, 4, 0, 0, 24040, 24041, 7, 3, 0, 0, 24041, 24042, 7, 1, 0, 0, 24042, 3562, 1, 0, 0, 0, 24043, 24044, 7, 5, 0, 0, 24044, 24045, 7, 12, 0, 0, 24045, 24046, 7, 1, 0, 0, 24046, 24047, 7, 5, 0, 0, 24047, 24048, 7, 4, 0, 0, 24048, 24049, 7, 3, 0, 0, 24049, 24050, 7, 8, 0, 0, 24050, 3564, 1, 0, 0, 0, 24051, 24052, 7, 5, 0, 0, 24052, 24053, 7, 12, 0, 0, 24053, 24054, 7, 1, 0, 0, 24054, 24055, 7, 4, 0, 0, 24055, 24056, 7, 18, 0, 0, 24056, 24057, 7, 15, 0, 0, 24057, 24058, 7, 6, 0, 0, 24058, 3566, 1, 0, 0, 0, 24059, 24060, 7, 5, 0, 0, 24060, 24061, 7, 12, 0, 0, 24061, 24062, 7, 8, 0, 0, 24062, 24063, 7, 8, 0, 0, 24063, 24064, 7, 6, 0, 0, 24064, 24065, 7, 5, 0, 0, 24065, 24066, 7, 5, 0, 0, 24066, 24067, 7, 16, 0, 0, 24067, 24068, 7, 12, 0, 0, 24068, 24069, 7, 11, 0, 0, 24069, 3568, 1, 0, 0, 0, 24070, 24071, 7, 5, 0, 0, 24071, 24072, 7, 12, 0, 0, 24072, 24073, 7, 8, 0, 0, 24073, 24074, 7, 8, 0, 0, 24074, 24075, 7, 6, 0, 0, 24075, 24076, 7, 5, 0, 0, 24076, 24077, 7, 5, 0, 0, 24077, 3570, 1, 0, 0, 0, 24078, 24079, 7, 5, 0, 0, 24079, 24080, 7, 12, 0, 0, 24080, 24081, 7, 14, 0, 0, 24081, 24082, 7, 14, 0, 0, 24082, 24083, 7, 0, 0, 0, 24083, 24084, 7, 3, 0, 0, 24084, 24085, 7, 18, 0, 0, 24085, 3572, 1, 0, 0, 0, 24086, 24087, 7, 5, 0, 0, 24087, 24088, 7, 12, 0, 0, 24088, 24089, 7, 15, 0, 0, 24089, 24090, 7, 15, 0, 0, 24090, 24091, 7, 11, 0, 0, 24091, 24092, 7, 6, 0, 0, 24092, 24093, 7, 14, 0, 0, 24093, 24094, 7, 6, 0, 0, 24094, 24095, 7, 7, 0, 0, 24095, 24096, 7, 4, 0, 0, 24096, 24097, 7, 0, 0, 0, 24097, 24098, 7, 11, 0, 0, 24098, 3574, 1, 0, 0, 0, 24099, 24100, 7, 5, 0, 0, 24100, 24101, 7, 12, 0, 0, 24101, 24102, 7, 5, 0, 0, 24102, 24103, 7, 15, 0, 0, 24103, 24104, 7, 6, 0, 0, 24104, 24105, 7, 7, 0, 0, 24105, 24106, 7, 9, 0, 0, 24106, 3576, 1, 0, 0, 0, 24107, 24108, 7, 5, 0, 0, 24108, 24109, 7, 22, 0, 0, 24109, 24110, 7, 0, 0, 0, 24110, 24111, 7, 15, 0, 0, 24111, 24112, 5, 95, 0, 0, 24112, 24113, 7, 20, 0, 0, 24113, 24114, 7, 2, 0, 0, 24114, 24115, 7, 10, 0, 0, 24115, 24116, 7, 7, 0, 0, 24116, 24117, 5, 95, 0, 0, 24117, 24118, 7, 10, 0, 0, 24118, 24119, 7, 7, 0, 0, 24119, 24120, 7, 15, 0, 0, 24120, 24121, 7, 12, 0, 0, 24121, 24122, 7, 4, 0, 0, 24122, 24123, 7, 5, 0, 0, 24123, 3578, 1, 0, 0, 0, 24124, 24125, 7, 5, 0, 0, 24125, 24126, 7, 22, 0, 0, 24126, 24127, 7, 10, 0, 0, 24127, 24128, 7, 4, 0, 0, 24128, 24129, 7, 8, 0, 0, 24129, 24130, 7, 19, 0, 0, 24130, 24131, 7, 2, 0, 0, 24131, 24132, 7, 13, 0, 0, 24132, 24133, 7, 6, 0, 0, 24133, 24134, 7, 3, 0, 0, 24134, 3580, 1, 0, 0, 0, 24135, 24136, 7, 5, 0, 0, 24136, 24137, 7, 22, 0, 0, 24137, 24138, 7, 10, 0, 0, 24138, 24139, 7, 4, 0, 0, 24139, 24140, 7, 8, 0, 0, 24140, 24141, 7, 19, 0, 0, 24141, 3582, 1, 0, 0, 0, 24142, 24143, 7, 5, 0, 0, 24143, 24144, 7, 18, 0, 0, 24144, 24145, 7, 7, 0, 0, 24145, 24146, 7, 8, 0, 0, 24146, 24147, 7, 19, 0, 0, 24147, 24148, 7, 3, 0, 0, 24148, 24149, 7, 2, 0, 0, 24149, 24150, 7, 7, 0, 0, 24150, 24151, 7, 2, 0, 0, 24151, 24152, 7, 12, 0, 0, 24152, 24153, 7, 5, 0, 0, 24153, 3584, 1, 0, 0, 0, 24154, 24155, 7, 5, 0, 0, 24155, 24156, 7, 18, 0, 0, 24156, 24157, 7, 7, 0, 0, 24157, 24158, 7, 8, 0, 0, 24158, 3586, 1, 0, 0, 0, 24159, 24160, 7, 5, 0, 0, 24160, 24161, 7, 18, 0, 0, 24161, 24162, 7, 7, 0, 0, 24162, 24163, 7, 2, 0, 0, 24163, 24164, 7, 7, 0, 0, 24164, 24165, 7, 18, 0, 0, 24165, 24166, 7, 14, 0, 0, 24166, 3588, 1, 0, 0, 0, 24167, 24168, 7, 5, 0, 0, 24168, 24169, 7, 18, 0, 0, 24169, 24170, 7, 5, 0, 0, 24170, 3590, 1, 0, 0, 0, 24171, 24172, 7, 5, 0, 0, 24172, 24173, 7, 18, 0, 0, 24173, 24174, 7, 5, 0, 0, 24174, 24175, 7, 0, 0, 0, 24175, 24176, 7, 5, 0, 0, 24176, 24177, 7, 14, 0, 0, 24177, 3592, 1, 0, 0, 0, 24178, 24179, 7, 5, 0, 0, 24179, 24180, 7, 18, 0, 0, 24180, 24181, 7, 5, 0, 0, 24181, 24182, 5, 95, 0, 0, 24182, 24183, 7, 0, 0, 0, 24183, 24184, 7, 12, 0, 0, 24184, 24185, 7, 9, 0, 0, 24185, 24186, 7, 10, 0, 0, 24186, 24187, 7, 4, 0, 0, 24187, 3594, 1, 0, 0, 0, 24188, 24189, 7, 5, 0, 0, 24189, 24190, 7, 18, 0, 0, 24190, 24191, 7, 5, 0, 0, 24191, 24192, 7, 0, 0, 0, 24192, 24193, 7, 12, 0, 0, 24193, 24194, 7, 25, 0, 0, 24194, 3596, 1, 0, 0, 0, 24195, 24196, 7, 5, 0, 0, 24196, 24197, 7, 18, 0, 0, 24197, 24198, 7, 5, 0, 0, 24198, 24199, 7, 1, 0, 0, 24199, 24200, 7, 0, 0, 0, 24200, 24201, 7, 8, 0, 0, 24201, 24202, 7, 21, 0, 0, 24202, 24203, 7, 12, 0, 0, 24203, 24204, 7, 15, 0, 0, 24204, 3598, 1, 0, 0, 0, 24205, 24206, 7, 5, 0, 0, 24206, 24207, 7, 18, 0, 0, 24207, 24208, 7, 5, 0, 0, 24208, 24209, 5, 95, 0, 0, 24209, 24210, 7, 8, 0, 0, 24210, 24211, 7, 19, 0, 0, 24211, 24212, 7, 6, 0, 0, 24212, 24213, 7, 8, 0, 0, 24213, 24214, 7, 21, 0, 0, 24214, 24215, 7, 0, 0, 0, 24215, 24216, 7, 8, 0, 0, 24216, 24217, 7, 11, 0, 0, 24217, 3600, 1, 0, 0, 0, 24218, 24219, 7, 5, 0, 0, 24219, 24220, 7, 18, 0, 0, 24220, 24221, 7, 5, 0, 0, 24221, 24222, 5, 95, 0, 0, 24222, 24223, 7, 8, 0, 0, 24223, 24224, 7, 19, 0, 0, 24224, 24225, 7, 6, 0, 0, 24225, 24226, 7, 8, 0, 0, 24226, 24227, 7, 21, 0, 0, 24227, 24228, 5, 95, 0, 0, 24228, 24229, 7, 15, 0, 0, 24229, 24230, 7, 3, 0, 0, 24230, 24231, 7, 10, 0, 0, 24231, 24232, 7, 13, 0, 0, 24232, 24233, 7, 10, 0, 0, 24233, 24234, 7, 11, 0, 0, 24234, 24235, 7, 6, 0, 0, 24235, 24236, 7, 17, 0, 0, 24236, 24237, 7, 6, 0, 0, 24237, 3602, 1, 0, 0, 0, 24238, 24239, 7, 5, 0, 0, 24239, 24240, 7, 18, 0, 0, 24240, 24241, 7, 5, 0, 0, 24241, 24242, 5, 95, 0, 0, 24242, 24243, 7, 8, 0, 0, 24243, 24244, 7, 2, 0, 0, 24244, 24245, 7, 7, 0, 0, 24245, 24246, 7, 7, 0, 0, 24246, 24247, 7, 6, 0, 0, 24247, 24248, 7, 8, 0, 0, 24248, 24249, 7, 4, 0, 0, 24249, 24250, 5, 95, 0, 0, 24250, 24251, 7, 1, 0, 0, 24251, 24252, 7, 18, 0, 0, 24252, 24253, 5, 95, 0, 0, 24253, 24254, 7, 15, 0, 0, 24254, 24255, 7, 0, 0, 0, 24255, 24256, 7, 4, 0, 0, 24256, 24257, 7, 19, 0, 0, 24257, 3604, 1, 0, 0, 0, 24258, 24259, 7, 5, 0, 0, 24259, 24260, 7, 18, 0, 0, 24260, 24261, 7, 5, 0, 0, 24261, 24262, 5, 95, 0, 0, 24262, 24263, 7, 8, 0, 0, 24263, 24264, 7, 2, 0, 0, 24264, 24265, 7, 7, 0, 0, 24265, 24266, 7, 4, 0, 0, 24266, 24267, 7, 6, 0, 0, 24267, 24268, 7, 25, 0, 0, 24268, 24269, 7, 4, 0, 0, 24269, 3606, 1, 0, 0, 0, 24270, 24271, 7, 5, 0, 0, 24271, 24272, 7, 18, 0, 0, 24272, 24273, 7, 5, 0, 0, 24273, 24274, 7, 9, 0, 0, 24274, 24275, 7, 0, 0, 0, 24275, 24276, 7, 4, 0, 0, 24276, 24277, 7, 6, 0, 0, 24277, 3608, 1, 0, 0, 0, 24278, 24279, 7, 5, 0, 0, 24279, 24280, 7, 18, 0, 0, 24280, 24281, 7, 5, 0, 0, 24281, 24282, 7, 9, 0, 0, 24282, 24283, 7, 1, 0, 0, 24283, 24284, 7, 0, 0, 0, 24284, 3610, 1, 0, 0, 0, 24285, 24286, 7, 5, 0, 0, 24286, 24287, 7, 18, 0, 0, 24287, 24288, 7, 5, 0, 0, 24288, 24289, 5, 95, 0, 0, 24289, 24290, 7, 9, 0, 0, 24290, 24291, 7, 1, 0, 0, 24291, 24292, 7, 12, 0, 0, 24292, 24293, 7, 3, 0, 0, 24293, 24294, 7, 10, 0, 0, 24294, 24295, 7, 17, 0, 0, 24295, 24296, 7, 6, 0, 0, 24296, 24297, 7, 7, 0, 0, 24297, 3612, 1, 0, 0, 0, 24298, 24299, 7, 5, 0, 0, 24299, 24300, 7, 18, 0, 0, 24300, 24301, 7, 5, 0, 0, 24301, 24302, 7, 9, 0, 0, 24302, 24303, 7, 17, 0, 0, 24303, 3614, 1, 0, 0, 0, 24304, 24305, 7, 5, 0, 0, 24305, 24306, 7, 18, 0, 0, 24306, 24307, 7, 5, 0, 0, 24307, 24308, 5, 95, 0, 0, 24308, 24309, 7, 9, 0, 0, 24309, 24310, 7, 11, 0, 0, 24310, 24311, 5, 95, 0, 0, 24311, 24312, 7, 8, 0, 0, 24312, 24313, 7, 12, 0, 0, 24313, 24314, 7, 3, 0, 0, 24314, 24315, 7, 5, 0, 0, 24315, 24316, 7, 2, 0, 0, 24316, 24317, 7, 3, 0, 0, 24317, 3616, 1, 0, 0, 0, 24318, 24319, 7, 5, 0, 0, 24319, 24320, 7, 18, 0, 0, 24320, 24321, 7, 5, 0, 0, 24321, 24322, 5, 95, 0, 0, 24322, 24323, 7, 9, 0, 0, 24323, 24324, 7, 14, 0, 0, 24324, 24325, 5, 95, 0, 0, 24325, 24326, 7, 3, 0, 0, 24326, 24327, 7, 25, 0, 0, 24327, 24328, 7, 16, 0, 0, 24328, 24329, 7, 2, 0, 0, 24329, 24330, 7, 3, 0, 0, 24330, 24331, 7, 14, 0, 0, 24331, 24332, 5, 95, 0, 0, 24332, 24333, 7, 8, 0, 0, 24333, 24334, 7, 19, 0, 0, 24334, 24335, 7, 3, 0, 0, 24335, 3618, 1, 0, 0, 0, 24336, 24337, 7, 5, 0, 0, 24337, 24338, 7, 18, 0, 0, 24338, 24339, 7, 5, 0, 0, 24339, 24340, 5, 95, 0, 0, 24340, 24341, 7, 9, 0, 0, 24341, 24342, 7, 14, 0, 0, 24342, 24343, 5, 95, 0, 0, 24343, 24344, 7, 3, 0, 0, 24344, 24345, 7, 25, 0, 0, 24345, 24346, 7, 16, 0, 0, 24346, 24347, 7, 2, 0, 0, 24347, 24348, 7, 3, 0, 0, 24348, 24349, 7, 14, 0, 0, 24349, 24350, 5, 95, 0, 0, 24350, 24351, 7, 7, 0, 0, 24351, 24352, 7, 12, 0, 0, 24352, 24353, 7, 14, 0, 0, 24353, 3620, 1, 0, 0, 0, 24354, 24355, 7, 5, 0, 0, 24355, 24356, 7, 18, 0, 0, 24356, 24357, 7, 5, 0, 0, 24357, 24358, 5, 95, 0, 0, 24358, 24359, 7, 9, 0, 0, 24359, 24360, 7, 2, 0, 0, 24360, 24361, 7, 14, 0, 0, 24361, 24362, 5, 95, 0, 0, 24362, 24363, 7, 8, 0, 0, 24363, 24364, 7, 2, 0, 0, 24364, 24365, 7, 14, 0, 0, 24365, 24366, 7, 15, 0, 0, 24366, 24367, 7, 0, 0, 0, 24367, 24368, 7, 3, 0, 0, 24368, 24369, 7, 6, 0, 0, 24369, 3622, 1, 0, 0, 0, 24370, 24371, 7, 5, 0, 0, 24371, 24372, 7, 18, 0, 0, 24372, 24373, 7, 5, 0, 0, 24373, 24374, 5, 95, 0, 0, 24374, 24375, 7, 9, 0, 0, 24375, 24376, 7, 5, 0, 0, 24376, 24377, 7, 4, 0, 0, 24377, 24378, 5, 95, 0, 0, 24378, 24379, 7, 15, 0, 0, 24379, 24380, 7, 3, 0, 0, 24380, 24381, 7, 10, 0, 0, 24381, 24382, 7, 14, 0, 0, 24382, 24383, 5, 50, 0, 0, 24383, 24384, 7, 5, 0, 0, 24384, 24385, 7, 6, 0, 0, 24385, 24386, 7, 8, 0, 0, 24386, 3624, 1, 0, 0, 0, 24387, 24388, 7, 5, 0, 0, 24388, 24389, 7, 18, 0, 0, 24389, 24390, 7, 5, 0, 0, 24390, 24391, 5, 95, 0, 0, 24391, 24392, 7, 9, 0, 0, 24392, 24393, 7, 5, 0, 0, 24393, 24394, 7, 4, 0, 0, 24394, 24395, 5, 95, 0, 0, 24395, 24396, 7, 5, 0, 0, 24396, 24397, 7, 6, 0, 0, 24397, 24398, 7, 8, 0, 0, 24398, 24399, 5, 50, 0, 0, 24399, 24400, 7, 15, 0, 0, 24400, 24401, 7, 3, 0, 0, 24401, 24402, 7, 10, 0, 0, 24402, 24403, 7, 14, 0, 0, 24403, 3626, 1, 0, 0, 0, 24404, 24405, 7, 5, 0, 0, 24405, 24406, 7, 18, 0, 0, 24406, 24407, 7, 5, 0, 0, 24407, 24408, 5, 95, 0, 0, 24408, 24409, 7, 6, 0, 0, 24409, 24410, 7, 4, 0, 0, 24410, 24411, 5, 95, 0, 0, 24411, 24412, 7, 1, 0, 0, 24412, 24413, 7, 16, 0, 0, 24413, 24414, 7, 10, 0, 0, 24414, 24415, 7, 11, 0, 0, 24415, 24416, 7, 6, 0, 0, 24416, 24417, 5, 95, 0, 0, 24417, 24418, 7, 4, 0, 0, 24418, 24419, 7, 2, 0, 0, 24419, 24420, 5, 95, 0, 0, 24420, 24421, 7, 3, 0, 0, 24421, 24422, 7, 0, 0, 0, 24422, 24423, 7, 22, 0, 0, 24423, 3628, 1, 0, 0, 0, 24424, 24425, 7, 5, 0, 0, 24425, 24426, 7, 18, 0, 0, 24426, 24427, 7, 5, 0, 0, 24427, 24428, 5, 95, 0, 0, 24428, 24429, 7, 6, 0, 0, 24429, 24430, 7, 4, 0, 0, 24430, 24431, 5, 95, 0, 0, 24431, 24432, 7, 1, 0, 0, 24432, 24433, 7, 11, 0, 0, 24433, 24434, 7, 2, 0, 0, 24434, 24435, 7, 1, 0, 0, 24435, 24436, 5, 95, 0, 0, 24436, 24437, 7, 4, 0, 0, 24437, 24438, 7, 2, 0, 0, 24438, 24439, 5, 95, 0, 0, 24439, 24440, 7, 10, 0, 0, 24440, 24441, 7, 14, 0, 0, 24441, 24442, 7, 0, 0, 0, 24442, 24443, 7, 17, 0, 0, 24443, 24444, 7, 6, 0, 0, 24444, 3630, 1, 0, 0, 0, 24445, 24446, 7, 5, 0, 0, 24446, 24447, 7, 18, 0, 0, 24447, 24448, 7, 5, 0, 0, 24448, 24449, 5, 95, 0, 0, 24449, 24450, 7, 6, 0, 0, 24450, 24451, 7, 4, 0, 0, 24451, 24452, 5, 95, 0, 0, 24452, 24453, 7, 10, 0, 0, 24453, 24454, 7, 14, 0, 0, 24454, 24455, 7, 0, 0, 0, 24455, 24456, 7, 17, 0, 0, 24456, 24457, 7, 6, 0, 0, 24457, 24458, 5, 95, 0, 0, 24458, 24459, 7, 4, 0, 0, 24459, 24460, 7, 2, 0, 0, 24460, 24461, 5, 95, 0, 0, 24461, 24462, 7, 1, 0, 0, 24462, 24463, 7, 11, 0, 0, 24463, 24464, 7, 2, 0, 0, 24464, 24465, 7, 1, 0, 0, 24465, 3632, 1, 0, 0, 0, 24466, 24467, 7, 5, 0, 0, 24467, 24468, 7, 18, 0, 0, 24468, 24469, 7, 5, 0, 0, 24469, 24470, 5, 95, 0, 0, 24470, 24471, 7, 6, 0, 0, 24471, 24472, 7, 4, 0, 0, 24472, 24473, 5, 95, 0, 0, 24473, 24474, 7, 3, 0, 0, 24474, 24475, 7, 0, 0, 0, 24475, 24476, 7, 22, 0, 0, 24476, 24477, 5, 95, 0, 0, 24477, 24478, 7, 4, 0, 0, 24478, 24479, 7, 2, 0, 0, 24479, 24480, 5, 95, 0, 0, 24480, 24481, 7, 1, 0, 0, 24481, 24482, 7, 16, 0, 0, 24482, 24483, 7, 10, 0, 0, 24483, 24484, 7, 11, 0, 0, 24484, 24485, 7, 6, 0, 0, 24485, 3634, 1, 0, 0, 0, 24486, 24487, 7, 5, 0, 0, 24487, 24488, 7, 18, 0, 0, 24488, 24489, 7, 5, 0, 0, 24489, 24490, 5, 95, 0, 0, 24490, 24491, 7, 6, 0, 0, 24491, 24492, 7, 25, 0, 0, 24492, 24493, 7, 4, 0, 0, 24493, 24494, 7, 15, 0, 0, 24494, 24495, 7, 9, 0, 0, 24495, 24496, 7, 4, 0, 0, 24496, 24497, 7, 25, 0, 0, 24497, 24498, 7, 4, 0, 0, 24498, 3636, 1, 0, 0, 0, 24499, 24500, 7, 5, 0, 0, 24500, 24501, 7, 18, 0, 0, 24501, 24502, 7, 5, 0, 0, 24502, 24503, 5, 95, 0, 0, 24503, 24504, 7, 6, 0, 0, 24504, 24505, 7, 25, 0, 0, 24505, 24506, 7, 4, 0, 0, 24506, 24507, 7, 3, 0, 0, 24507, 24508, 7, 0, 0, 0, 24508, 24509, 7, 8, 0, 0, 24509, 24510, 7, 4, 0, 0, 24510, 24511, 5, 95, 0, 0, 24511, 24512, 7, 12, 0, 0, 24512, 24513, 7, 4, 0, 0, 24513, 24514, 7, 8, 0, 0, 24514, 3638, 1, 0, 0, 0, 24515, 24516, 7, 5, 0, 0, 24516, 24517, 7, 18, 0, 0, 24517, 24518, 7, 5, 0, 0, 24518, 24519, 5, 95, 0, 0, 24519, 24520, 7, 16, 0, 0, 24520, 24521, 7, 1, 0, 0, 24521, 24522, 7, 4, 0, 0, 24522, 24523, 5, 95, 0, 0, 24523, 24524, 7, 10, 0, 0, 24524, 24525, 7, 7, 0, 0, 24525, 24526, 7, 5, 0, 0, 24526, 24527, 7, 9, 0, 0, 24527, 24528, 7, 6, 0, 0, 24528, 24529, 7, 11, 0, 0, 24529, 3640, 1, 0, 0, 0, 24530, 24531, 7, 5, 0, 0, 24531, 24532, 7, 18, 0, 0, 24532, 24533, 7, 5, 0, 0, 24533, 24534, 5, 95, 0, 0, 24534, 24535, 7, 16, 0, 0, 24535, 24536, 7, 10, 0, 0, 24536, 24537, 7, 11, 0, 0, 24537, 24538, 7, 4, 0, 0, 24538, 24539, 7, 6, 0, 0, 24539, 24540, 7, 3, 0, 0, 24540, 24541, 5, 95, 0, 0, 24541, 24542, 7, 0, 0, 0, 24542, 24543, 7, 8, 0, 0, 24543, 24544, 7, 11, 0, 0, 24544, 24545, 7, 5, 0, 0, 24545, 3642, 1, 0, 0, 0, 24546, 24547, 7, 5, 0, 0, 24547, 24548, 7, 18, 0, 0, 24548, 24549, 7, 5, 0, 0, 24549, 24550, 5, 95, 0, 0, 24550, 24551, 7, 16, 0, 0, 24551, 24552, 7, 7, 0, 0, 24552, 24553, 7, 14, 0, 0, 24553, 24554, 7, 0, 0, 0, 24554, 24555, 7, 4, 0, 0, 24555, 24556, 7, 8, 0, 0, 24556, 24557, 7, 19, 0, 0, 24557, 24558, 7, 6, 0, 0, 24558, 24559, 7, 5, 0, 0, 24559, 3644, 1, 0, 0, 0, 24560, 24561, 7, 5, 0, 0, 24561, 24562, 7, 18, 0, 0, 24562, 24563, 7, 5, 0, 0, 24563, 24564, 5, 95, 0, 0, 24564, 24565, 7, 16, 0, 0, 24565, 24566, 7, 7, 0, 0, 24566, 24567, 7, 3, 0, 0, 24567, 24568, 7, 6, 0, 0, 24568, 24569, 7, 15, 0, 0, 24569, 24570, 7, 11, 0, 0, 24570, 24571, 7, 0, 0, 0, 24571, 24572, 7, 8, 0, 0, 24572, 24573, 7, 6, 0, 0, 24573, 3646, 1, 0, 0, 0, 24574, 24575, 7, 5, 0, 0, 24575, 24576, 7, 18, 0, 0, 24576, 24577, 7, 5, 0, 0, 24577, 24578, 5, 95, 0, 0, 24578, 24579, 7, 17, 0, 0, 24579, 24580, 7, 6, 0, 0, 24580, 24581, 7, 4, 0, 0, 24581, 24582, 5, 95, 0, 0, 24582, 24583, 7, 0, 0, 0, 24583, 24584, 7, 8, 0, 0, 24584, 24585, 7, 11, 0, 0, 24585, 24586, 7, 10, 0, 0, 24586, 24587, 7, 9, 0, 0, 24587, 24588, 7, 5, 0, 0, 24588, 3648, 1, 0, 0, 0, 24589, 24590, 7, 5, 0, 0, 24590, 24591, 7, 18, 0, 0, 24591, 24592, 7, 5, 0, 0, 24592, 24593, 5, 95, 0, 0, 24593, 24594, 7, 17, 0, 0, 24594, 24595, 7, 6, 0, 0, 24595, 24596, 7, 4, 0, 0, 24596, 24597, 5, 95, 0, 0, 24597, 24598, 7, 8, 0, 0, 24598, 24599, 7, 2, 0, 0, 24599, 24600, 7, 11, 0, 0, 24600, 24601, 5, 95, 0, 0, 24601, 24602, 7, 0, 0, 0, 24602, 24603, 7, 8, 0, 0, 24603, 24604, 7, 11, 0, 0, 24604, 24605, 7, 10, 0, 0, 24605, 24606, 7, 9, 0, 0, 24606, 24607, 7, 5, 0, 0, 24607, 3650, 1, 0, 0, 0, 24608, 24609, 7, 5, 0, 0, 24609, 24610, 7, 18, 0, 0, 24610, 24611, 7, 5, 0, 0, 24611, 24612, 5, 95, 0, 0, 24612, 24613, 7, 17, 0, 0, 24613, 24614, 7, 6, 0, 0, 24614, 24615, 7, 4, 0, 0, 24615, 24616, 5, 95, 0, 0, 24616, 24617, 7, 15, 0, 0, 24617, 24618, 7, 3, 0, 0, 24618, 24619, 7, 10, 0, 0, 24619, 24620, 7, 13, 0, 0, 24620, 24621, 7, 10, 0, 0, 24621, 24622, 7, 11, 0, 0, 24622, 24623, 7, 6, 0, 0, 24623, 24624, 7, 17, 0, 0, 24624, 24625, 7, 6, 0, 0, 24625, 24626, 7, 5, 0, 0, 24626, 3652, 1, 0, 0, 0, 24627, 24628, 7, 5, 0, 0, 24628, 24629, 7, 18, 0, 0, 24629, 24630, 7, 5, 0, 0, 24630, 24631, 5, 95, 0, 0, 24631, 24632, 7, 17, 0, 0, 24632, 24633, 7, 6, 0, 0, 24633, 24634, 7, 4, 0, 0, 24634, 24635, 7, 4, 0, 0, 24635, 24636, 7, 2, 0, 0, 24636, 24637, 7, 21, 0, 0, 24637, 24638, 7, 6, 0, 0, 24638, 24639, 7, 7, 0, 0, 24639, 24640, 7, 10, 0, 0, 24640, 24641, 7, 9, 0, 0, 24641, 3654, 1, 0, 0, 0, 24642, 24643, 7, 5, 0, 0, 24643, 24644, 7, 18, 0, 0, 24644, 24645, 7, 5, 0, 0, 24645, 24646, 5, 95, 0, 0, 24646, 24647, 7, 17, 0, 0, 24647, 24648, 7, 6, 0, 0, 24648, 24649, 7, 4, 0, 0, 24649, 24650, 7, 25, 0, 0, 24650, 24651, 7, 4, 0, 0, 24651, 24652, 7, 10, 0, 0, 24652, 24653, 7, 13, 0, 0, 24653, 24654, 7, 0, 0, 0, 24654, 24655, 7, 11, 0, 0, 24655, 3656, 1, 0, 0, 0, 24656, 24657, 7, 5, 0, 0, 24657, 24658, 7, 18, 0, 0, 24658, 24659, 7, 5, 0, 0, 24659, 24660, 5, 95, 0, 0, 24660, 24661, 7, 17, 0, 0, 24661, 24662, 7, 12, 0, 0, 24662, 24663, 7, 10, 0, 0, 24663, 24664, 7, 9, 0, 0, 24664, 3658, 1, 0, 0, 0, 24665, 24666, 7, 5, 0, 0, 24666, 24667, 7, 18, 0, 0, 24667, 24668, 7, 5, 0, 0, 24668, 24669, 7, 17, 0, 0, 24669, 24670, 7, 12, 0, 0, 24670, 24671, 7, 10, 0, 0, 24671, 24672, 7, 9, 0, 0, 24672, 3660, 1, 0, 0, 0, 24673, 24674, 7, 5, 0, 0, 24674, 24675, 7, 18, 0, 0, 24675, 24676, 7, 5, 0, 0, 24676, 24677, 7, 21, 0, 0, 24677, 24678, 7, 14, 0, 0, 24678, 3662, 1, 0, 0, 0, 24679, 24680, 7, 5, 0, 0, 24680, 24681, 7, 18, 0, 0, 24681, 24682, 7, 5, 0, 0, 24682, 24683, 5, 95, 0, 0, 24683, 24684, 7, 14, 0, 0, 24684, 24685, 7, 0, 0, 0, 24685, 24686, 7, 21, 0, 0, 24686, 24687, 7, 6, 0, 0, 24687, 24688, 5, 95, 0, 0, 24688, 24689, 7, 25, 0, 0, 24689, 24690, 7, 14, 0, 0, 24690, 24691, 7, 11, 0, 0, 24691, 24692, 7, 7, 0, 0, 24692, 24693, 7, 2, 0, 0, 24693, 24694, 7, 9, 0, 0, 24694, 24695, 7, 6, 0, 0, 24695, 24696, 7, 10, 0, 0, 24696, 24697, 7, 9, 0, 0, 24697, 3664, 1, 0, 0, 0, 24698, 24699, 7, 5, 0, 0, 24699, 24700, 7, 18, 0, 0, 24700, 24701, 7, 5, 0, 0, 24701, 24702, 5, 95, 0, 0, 24702, 24703, 7, 14, 0, 0, 24703, 24704, 7, 0, 0, 0, 24704, 24705, 7, 21, 0, 0, 24705, 24706, 7, 6, 0, 0, 24706, 24707, 7, 25, 0, 0, 24707, 24708, 7, 14, 0, 0, 24708, 24709, 7, 11, 0, 0, 24709, 3666, 1, 0, 0, 0, 24710, 24711, 7, 5, 0, 0, 24711, 24712, 7, 18, 0, 0, 24712, 24713, 7, 5, 0, 0, 24713, 24714, 5, 95, 0, 0, 24714, 24715, 7, 14, 0, 0, 24715, 24716, 7, 21, 0, 0, 24716, 24717, 7, 25, 0, 0, 24717, 24718, 7, 14, 0, 0, 24718, 24719, 7, 11, 0, 0, 24719, 24720, 7, 0, 0, 0, 24720, 24721, 7, 4, 0, 0, 24721, 24722, 7, 4, 0, 0, 24722, 24723, 7, 3, 0, 0, 24723, 3668, 1, 0, 0, 0, 24724, 24725, 7, 5, 0, 0, 24725, 24726, 7, 18, 0, 0, 24726, 24727, 7, 5, 0, 0, 24727, 24728, 5, 95, 0, 0, 24728, 24729, 7, 14, 0, 0, 24729, 24730, 7, 21, 0, 0, 24730, 24731, 7, 25, 0, 0, 24731, 24732, 7, 4, 0, 0, 24732, 24733, 7, 10, 0, 0, 24733, 3670, 1, 0, 0, 0, 24734, 24735, 7, 5, 0, 0, 24735, 24736, 7, 18, 0, 0, 24736, 24737, 7, 5, 0, 0, 24737, 24738, 7, 2, 0, 0, 24738, 24739, 7, 1, 0, 0, 24739, 24740, 7, 20, 0, 0, 24740, 3672, 1, 0, 0, 0, 24741, 24742, 7, 5, 0, 0, 24742, 24743, 7, 18, 0, 0, 24743, 24744, 7, 5, 0, 0, 24744, 24745, 5, 95, 0, 0, 24745, 24746, 7, 2, 0, 0, 24746, 24747, 7, 15, 0, 0, 24747, 24748, 5, 95, 0, 0, 24748, 24749, 7, 0, 0, 0, 24749, 24750, 7, 9, 0, 0, 24750, 24751, 7, 4, 0, 0, 24751, 24752, 5, 50, 0, 0, 24752, 24753, 7, 1, 0, 0, 24753, 24754, 7, 10, 0, 0, 24754, 24755, 7, 7, 0, 0, 24755, 3674, 1, 0, 0, 0, 24756, 24757, 7, 5, 0, 0, 24757, 24758, 7, 18, 0, 0, 24758, 24759, 7, 5, 0, 0, 24759, 24760, 5, 95, 0, 0, 24760, 24761, 7, 2, 0, 0, 24761, 24762, 7, 15, 0, 0, 24762, 24763, 5, 95, 0, 0, 24763, 24764, 7, 0, 0, 0, 24764, 24765, 7, 9, 0, 0, 24765, 24766, 7, 4, 0, 0, 24766, 24767, 7, 8, 0, 0, 24767, 24768, 7, 2, 0, 0, 24768, 24769, 7, 7, 0, 0, 24769, 24770, 7, 5, 0, 0, 24770, 3676, 1, 0, 0, 0, 24771, 24772, 7, 5, 0, 0, 24772, 24773, 7, 18, 0, 0, 24773, 24774, 7, 5, 0, 0, 24774, 24775, 5, 95, 0, 0, 24775, 24776, 7, 2, 0, 0, 24776, 24777, 7, 15, 0, 0, 24777, 24778, 5, 95, 0, 0, 24778, 24779, 7, 0, 0, 0, 24779, 24780, 7, 11, 0, 0, 24780, 24781, 7, 5, 0, 0, 24781, 24782, 7, 8, 0, 0, 24782, 24783, 7, 3, 0, 0, 24783, 24784, 7, 13, 0, 0, 24784, 24785, 7, 0, 0, 0, 24785, 24786, 7, 11, 0, 0, 24786, 3678, 1, 0, 0, 0, 24787, 24788, 7, 5, 0, 0, 24788, 24789, 7, 18, 0, 0, 24789, 24790, 7, 5, 0, 0, 24790, 24791, 5, 95, 0, 0, 24791, 24792, 7, 2, 0, 0, 24792, 24793, 7, 15, 0, 0, 24793, 24794, 5, 95, 0, 0, 24794, 24795, 7, 0, 0, 0, 24795, 24796, 7, 4, 0, 0, 24796, 24797, 7, 17, 0, 0, 24797, 3680, 1, 0, 0, 0, 24798, 24799, 7, 5, 0, 0, 24799, 24800, 7, 18, 0, 0, 24800, 24801, 7, 5, 0, 0, 24801, 24802, 5, 95, 0, 0, 24802, 24803, 7, 2, 0, 0, 24803, 24804, 7, 15, 0, 0, 24804, 24805, 5, 95, 0, 0, 24805, 24806, 7, 1, 0, 0, 24806, 24807, 7, 10, 0, 0, 24807, 24808, 7, 7, 0, 0, 24808, 24809, 5, 50, 0, 0, 24809, 24810, 7, 0, 0, 0, 24810, 24811, 7, 9, 0, 0, 24811, 24812, 7, 4, 0, 0, 24812, 3682, 1, 0, 0, 0, 24813, 24814, 7, 5, 0, 0, 24814, 24815, 7, 18, 0, 0, 24815, 24816, 7, 5, 0, 0, 24816, 24817, 5, 95, 0, 0, 24817, 24818, 7, 2, 0, 0, 24818, 24819, 7, 15, 0, 0, 24819, 24820, 5, 95, 0, 0, 24820, 24821, 7, 1, 0, 0, 24821, 24822, 7, 10, 0, 0, 24822, 24823, 7, 4, 0, 0, 24823, 24824, 7, 13, 0, 0, 24824, 24825, 7, 6, 0, 0, 24825, 24826, 7, 8, 0, 0, 24826, 3684, 1, 0, 0, 0, 24827, 24828, 7, 5, 0, 0, 24828, 24829, 7, 18, 0, 0, 24829, 24830, 7, 5, 0, 0, 24830, 24831, 5, 95, 0, 0, 24831, 24832, 7, 2, 0, 0, 24832, 24833, 7, 15, 0, 0, 24833, 24834, 5, 95, 0, 0, 24834, 24835, 7, 1, 0, 0, 24835, 24836, 7, 11, 0, 0, 24836, 24837, 5, 50, 0, 0, 24837, 24838, 7, 3, 0, 0, 24838, 3686, 1, 0, 0, 0, 24839, 24840, 7, 5, 0, 0, 24840, 24841, 7, 18, 0, 0, 24841, 24842, 7, 5, 0, 0, 24842, 24843, 5, 95, 0, 0, 24843, 24844, 7, 2, 0, 0, 24844, 24845, 7, 15, 0, 0, 24845, 24846, 5, 95, 0, 0, 24846, 24847, 7, 1, 0, 0, 24847, 24848, 7, 11, 0, 0, 24848, 24849, 7, 2, 0, 0, 24849, 24850, 7, 2, 0, 0, 24850, 24851, 7, 14, 0, 0, 24851, 24852, 5, 95, 0, 0, 24852, 24853, 7, 16, 0, 0, 24853, 24854, 7, 10, 0, 0, 24854, 24855, 7, 11, 0, 0, 24855, 24856, 7, 4, 0, 0, 24856, 24857, 7, 6, 0, 0, 24857, 24858, 7, 3, 0, 0, 24858, 24859, 5, 95, 0, 0, 24859, 24860, 7, 11, 0, 0, 24860, 24861, 7, 10, 0, 0, 24861, 24862, 7, 5, 0, 0, 24862, 24863, 7, 4, 0, 0, 24863, 3688, 1, 0, 0, 0, 24864, 24865, 7, 5, 0, 0, 24865, 24866, 7, 18, 0, 0, 24866, 24867, 7, 5, 0, 0, 24867, 24868, 5, 95, 0, 0, 24868, 24869, 7, 2, 0, 0, 24869, 24870, 7, 15, 0, 0, 24870, 24871, 5, 95, 0, 0, 24871, 24872, 7, 1, 0, 0, 24872, 24873, 7, 11, 0, 0, 24873, 24874, 7, 2, 0, 0, 24874, 24875, 7, 2, 0, 0, 24875, 24876, 7, 14, 0, 0, 24876, 24877, 5, 95, 0, 0, 24877, 24878, 7, 16, 0, 0, 24878, 24879, 7, 10, 0, 0, 24879, 24880, 7, 11, 0, 0, 24880, 24881, 7, 4, 0, 0, 24881, 24882, 7, 6, 0, 0, 24882, 24883, 7, 3, 0, 0, 24883, 3690, 1, 0, 0, 0, 24884, 24885, 7, 5, 0, 0, 24885, 24886, 7, 18, 0, 0, 24886, 24887, 7, 5, 0, 0, 24887, 24888, 5, 95, 0, 0, 24888, 24889, 7, 2, 0, 0, 24889, 24890, 7, 15, 0, 0, 24890, 24891, 5, 95, 0, 0, 24891, 24892, 7, 8, 0, 0, 24892, 24893, 5, 50, 0, 0, 24893, 24894, 7, 8, 0, 0, 24894, 3692, 1, 0, 0, 0, 24895, 24896, 7, 5, 0, 0, 24896, 24897, 7, 18, 0, 0, 24897, 24898, 7, 5, 0, 0, 24898, 24899, 5, 95, 0, 0, 24899, 24900, 7, 2, 0, 0, 24900, 24901, 7, 15, 0, 0, 24901, 24902, 5, 95, 0, 0, 24902, 24903, 7, 8, 0, 0, 24903, 24904, 7, 0, 0, 0, 24904, 24905, 7, 5, 0, 0, 24905, 24906, 7, 4, 0, 0, 24906, 3694, 1, 0, 0, 0, 24907, 24908, 7, 5, 0, 0, 24908, 24909, 7, 18, 0, 0, 24909, 24910, 7, 5, 0, 0, 24910, 24911, 5, 95, 0, 0, 24911, 24912, 7, 2, 0, 0, 24912, 24913, 7, 15, 0, 0, 24913, 24914, 5, 95, 0, 0, 24914, 24915, 7, 8, 0, 0, 24915, 24916, 7, 6, 0, 0, 24916, 24917, 7, 17, 0, 0, 24917, 3696, 1, 0, 0, 0, 24918, 24919, 7, 5, 0, 0, 24919, 24920, 7, 18, 0, 0, 24920, 24921, 7, 5, 0, 0, 24921, 24922, 5, 95, 0, 0, 24922, 24923, 7, 2, 0, 0, 24923, 24924, 7, 15, 0, 0, 24924, 24925, 5, 95, 0, 0, 24925, 24926, 7, 8, 0, 0, 24926, 24927, 7, 11, 0, 0, 24927, 24928, 5, 50, 0, 0, 24928, 24929, 7, 8, 0, 0, 24929, 3698, 1, 0, 0, 0, 24930, 24931, 7, 5, 0, 0, 24931, 24932, 7, 18, 0, 0, 24932, 24933, 7, 5, 0, 0, 24933, 24934, 5, 95, 0, 0, 24934, 24935, 7, 2, 0, 0, 24935, 24936, 7, 15, 0, 0, 24936, 24937, 5, 95, 0, 0, 24937, 24938, 7, 8, 0, 0, 24938, 24939, 7, 2, 0, 0, 24939, 24940, 7, 14, 0, 0, 24940, 24941, 7, 1, 0, 0, 24941, 24942, 7, 10, 0, 0, 24942, 24943, 7, 7, 0, 0, 24943, 24944, 7, 6, 0, 0, 24944, 24945, 7, 9, 0, 0, 24945, 24946, 5, 95, 0, 0, 24946, 24947, 7, 19, 0, 0, 24947, 24948, 7, 0, 0, 0, 24948, 24949, 7, 5, 0, 0, 24949, 24950, 7, 19, 0, 0, 24950, 3700, 1, 0, 0, 0, 24951, 24952, 7, 5, 0, 0, 24952, 24953, 7, 18, 0, 0, 24953, 24954, 7, 5, 0, 0, 24954, 24955, 5, 95, 0, 0, 24955, 24956, 7, 2, 0, 0, 24956, 24957, 7, 15, 0, 0, 24957, 24958, 5, 95, 0, 0, 24958, 24959, 7, 8, 0, 0, 24959, 24960, 7, 2, 0, 0, 24960, 24961, 7, 14, 0, 0, 24961, 24962, 7, 15, 0, 0, 24962, 3702, 1, 0, 0, 0, 24963, 24964, 7, 5, 0, 0, 24964, 24965, 7, 18, 0, 0, 24965, 24966, 7, 5, 0, 0, 24966, 24967, 5, 95, 0, 0, 24967, 24968, 7, 2, 0, 0, 24968, 24969, 7, 15, 0, 0, 24969, 24970, 5, 95, 0, 0, 24970, 24971, 7, 8, 0, 0, 24971, 24972, 7, 2, 0, 0, 24972, 24973, 7, 7, 0, 0, 24973, 24974, 7, 13, 0, 0, 24974, 24975, 7, 6, 0, 0, 24975, 24976, 7, 3, 0, 0, 24976, 24977, 7, 4, 0, 0, 24977, 3704, 1, 0, 0, 0, 24978, 24979, 7, 5, 0, 0, 24979, 24980, 7, 18, 0, 0, 24980, 24981, 7, 5, 0, 0, 24981, 24982, 5, 95, 0, 0, 24982, 24983, 7, 2, 0, 0, 24983, 24984, 7, 15, 0, 0, 24984, 24985, 5, 95, 0, 0, 24985, 24986, 7, 8, 0, 0, 24986, 24987, 7, 2, 0, 0, 24987, 24988, 7, 12, 0, 0, 24988, 24989, 7, 7, 0, 0, 24989, 24990, 7, 4, 0, 0, 24990, 24991, 7, 8, 0, 0, 24991, 24992, 7, 19, 0, 0, 24992, 24993, 7, 17, 0, 0, 24993, 3706, 1, 0, 0, 0, 24994, 24995, 7, 5, 0, 0, 24995, 24996, 7, 18, 0, 0, 24996, 24997, 7, 5, 0, 0, 24997, 24998, 5, 95, 0, 0, 24998, 24999, 7, 2, 0, 0, 24999, 25000, 7, 15, 0, 0, 25000, 25001, 5, 95, 0, 0, 25001, 25002, 7, 8, 0, 0, 25002, 25003, 7, 5, 0, 0, 25003, 25004, 7, 8, 0, 0, 25004, 25005, 7, 2, 0, 0, 25005, 25006, 7, 7, 0, 0, 25006, 25007, 7, 13, 0, 0, 25007, 3708, 1, 0, 0, 0, 25008, 25009, 7, 5, 0, 0, 25009, 25010, 7, 18, 0, 0, 25010, 25011, 7, 5, 0, 0, 25011, 25012, 5, 95, 0, 0, 25012, 25013, 7, 2, 0, 0, 25013, 25014, 7, 15, 0, 0, 25014, 25015, 5, 95, 0, 0, 25015, 25016, 7, 8, 0, 0, 25016, 25017, 7, 5, 0, 0, 25017, 25018, 7, 8, 0, 0, 25018, 25019, 7, 2, 0, 0, 25019, 25020, 7, 7, 0, 0, 25020, 25021, 7, 13, 0, 0, 25021, 25022, 7, 4, 0, 0, 25022, 25023, 7, 6, 0, 0, 25023, 25024, 7, 5, 0, 0, 25024, 25025, 7, 4, 0, 0, 25025, 3710, 1, 0, 0, 0, 25026, 25027, 7, 5, 0, 0, 25027, 25028, 7, 18, 0, 0, 25028, 25029, 7, 5, 0, 0, 25029, 25030, 5, 95, 0, 0, 25030, 25031, 7, 2, 0, 0, 25031, 25032, 7, 15, 0, 0, 25032, 25033, 5, 95, 0, 0, 25033, 25034, 7, 8, 0, 0, 25034, 25035, 7, 5, 0, 0, 25035, 25036, 7, 3, 0, 0, 25036, 3712, 1, 0, 0, 0, 25037, 25038, 7, 5, 0, 0, 25038, 25039, 7, 18, 0, 0, 25039, 25040, 7, 5, 0, 0, 25040, 25041, 5, 95, 0, 0, 25041, 25042, 7, 2, 0, 0, 25042, 25043, 7, 15, 0, 0, 25043, 25044, 5, 95, 0, 0, 25044, 25045, 7, 8, 0, 0, 25045, 25046, 7, 5, 0, 0, 25046, 25047, 7, 25, 0, 0, 25047, 25048, 5, 95, 0, 0, 25048, 25049, 7, 15, 0, 0, 25049, 25050, 7, 0, 0, 0, 25050, 25051, 7, 4, 0, 0, 25051, 25052, 7, 8, 0, 0, 25052, 25053, 7, 19, 0, 0, 25053, 3714, 1, 0, 0, 0, 25054, 25055, 7, 5, 0, 0, 25055, 25056, 7, 18, 0, 0, 25056, 25057, 7, 5, 0, 0, 25057, 25058, 5, 95, 0, 0, 25058, 25059, 7, 2, 0, 0, 25059, 25060, 7, 15, 0, 0, 25060, 25061, 5, 95, 0, 0, 25061, 25062, 7, 8, 0, 0, 25062, 25063, 7, 18, 0, 0, 25063, 25064, 7, 8, 0, 0, 25064, 25065, 7, 11, 0, 0, 25065, 25066, 7, 6, 0, 0, 25066, 25067, 7, 9, 0, 0, 25067, 25068, 5, 95, 0, 0, 25068, 25069, 7, 5, 0, 0, 25069, 25070, 7, 6, 0, 0, 25070, 25071, 7, 24, 0, 0, 25071, 3716, 1, 0, 0, 0, 25072, 25073, 7, 5, 0, 0, 25073, 25074, 7, 18, 0, 0, 25074, 25075, 7, 5, 0, 0, 25075, 25076, 5, 95, 0, 0, 25076, 25077, 7, 2, 0, 0, 25077, 25078, 7, 15, 0, 0, 25078, 25079, 5, 95, 0, 0, 25079, 25080, 7, 9, 0, 0, 25080, 25081, 7, 6, 0, 0, 25081, 25082, 7, 8, 0, 0, 25082, 25083, 7, 2, 0, 0, 25083, 25084, 7, 14, 0, 0, 25084, 25085, 7, 15, 0, 0, 25085, 3718, 1, 0, 0, 0, 25086, 25087, 7, 5, 0, 0, 25087, 25088, 7, 18, 0, 0, 25088, 25089, 7, 5, 0, 0, 25089, 25090, 5, 95, 0, 0, 25090, 25091, 7, 2, 0, 0, 25091, 25092, 7, 15, 0, 0, 25092, 25093, 5, 95, 0, 0, 25093, 25094, 7, 9, 0, 0, 25094, 25095, 7, 6, 0, 0, 25095, 25096, 7, 5, 0, 0, 25096, 25097, 7, 8, 0, 0, 25097, 25098, 7, 6, 0, 0, 25098, 25099, 7, 7, 0, 0, 25099, 25100, 7, 9, 0, 0, 25100, 3720, 1, 0, 0, 0, 25101, 25102, 7, 5, 0, 0, 25102, 25103, 7, 18, 0, 0, 25103, 25104, 7, 5, 0, 0, 25104, 25105, 5, 95, 0, 0, 25105, 25106, 7, 2, 0, 0, 25106, 25107, 7, 15, 0, 0, 25107, 25108, 5, 95, 0, 0, 25108, 25109, 7, 9, 0, 0, 25109, 25110, 7, 10, 0, 0, 25110, 25111, 7, 5, 0, 0, 25111, 25112, 7, 4, 0, 0, 25112, 25113, 7, 10, 0, 0, 25113, 25114, 7, 7, 0, 0, 25114, 25115, 7, 8, 0, 0, 25115, 25116, 7, 4, 0, 0, 25116, 3722, 1, 0, 0, 0, 25117, 25118, 7, 5, 0, 0, 25118, 25119, 7, 18, 0, 0, 25119, 25120, 7, 5, 0, 0, 25120, 25121, 5, 95, 0, 0, 25121, 25122, 7, 2, 0, 0, 25122, 25123, 7, 15, 0, 0, 25123, 25124, 5, 95, 0, 0, 25124, 25125, 7, 9, 0, 0, 25125, 25126, 7, 3, 0, 0, 25126, 25127, 7, 0, 0, 0, 25127, 3724, 1, 0, 0, 0, 25128, 25129, 7, 5, 0, 0, 25129, 25130, 7, 18, 0, 0, 25130, 25131, 7, 5, 0, 0, 25131, 25132, 5, 95, 0, 0, 25132, 25133, 7, 2, 0, 0, 25133, 25134, 7, 15, 0, 0, 25134, 25135, 5, 95, 0, 0, 25135, 25136, 7, 9, 0, 0, 25136, 25137, 7, 12, 0, 0, 25137, 25138, 7, 14, 0, 0, 25138, 25139, 7, 15, 0, 0, 25139, 3726, 1, 0, 0, 0, 25140, 25141, 7, 5, 0, 0, 25141, 25142, 7, 18, 0, 0, 25142, 25143, 7, 5, 0, 0, 25143, 25144, 5, 95, 0, 0, 25144, 25145, 7, 2, 0, 0, 25145, 25146, 7, 15, 0, 0, 25146, 25147, 5, 95, 0, 0, 25147, 25148, 7, 9, 0, 0, 25148, 25149, 7, 13, 0, 0, 25149, 25150, 5, 95, 0, 0, 25150, 25151, 7, 8, 0, 0, 25151, 25152, 7, 19, 0, 0, 25152, 25153, 7, 6, 0, 0, 25153, 25154, 7, 8, 0, 0, 25154, 25155, 7, 21, 0, 0, 25155, 3728, 1, 0, 0, 0, 25156, 25157, 7, 5, 0, 0, 25157, 25158, 7, 18, 0, 0, 25158, 25159, 7, 5, 0, 0, 25159, 25160, 5, 95, 0, 0, 25160, 25161, 7, 2, 0, 0, 25161, 25162, 7, 15, 0, 0, 25162, 25163, 5, 95, 0, 0, 25163, 25164, 7, 6, 0, 0, 25164, 25165, 7, 7, 0, 0, 25165, 25166, 7, 16, 0, 0, 25166, 25167, 7, 2, 0, 0, 25167, 25168, 7, 3, 0, 0, 25168, 25169, 7, 8, 0, 0, 25169, 25170, 7, 6, 0, 0, 25170, 25171, 5, 95, 0, 0, 25171, 25172, 7, 7, 0, 0, 25172, 25173, 7, 2, 0, 0, 25173, 25174, 7, 4, 0, 0, 25174, 25175, 5, 95, 0, 0, 25175, 25176, 7, 7, 0, 0, 25176, 25177, 7, 12, 0, 0, 25177, 25178, 7, 11, 0, 0, 25178, 25179, 7, 11, 0, 0, 25179, 25180, 5, 36, 0, 0, 25180, 3730, 1, 0, 0, 0, 25181, 25182, 7, 5, 0, 0, 25182, 25183, 7, 18, 0, 0, 25183, 25184, 7, 5, 0, 0, 25184, 25185, 7, 2, 0, 0, 25185, 25186, 7, 15, 0, 0, 25186, 25187, 7, 6, 0, 0, 25187, 25188, 7, 3, 0, 0, 25188, 3732, 1, 0, 0, 0, 25189, 25190, 7, 5, 0, 0, 25190, 25191, 7, 18, 0, 0, 25191, 25192, 7, 5, 0, 0, 25192, 25193, 5, 95, 0, 0, 25193, 25194, 7, 2, 0, 0, 25194, 25195, 7, 15, 0, 0, 25195, 25196, 5, 95, 0, 0, 25196, 25197, 7, 6, 0, 0, 25197, 25198, 7, 25, 0, 0, 25198, 25199, 7, 4, 0, 0, 25199, 25200, 7, 3, 0, 0, 25200, 25201, 7, 0, 0, 0, 25201, 25202, 7, 8, 0, 0, 25202, 25203, 7, 4, 0, 0, 25203, 3734, 1, 0, 0, 0, 25204, 25205, 7, 5, 0, 0, 25205, 25206, 7, 18, 0, 0, 25206, 25207, 7, 5, 0, 0, 25207, 25208, 5, 95, 0, 0, 25208, 25209, 7, 2, 0, 0, 25209, 25210, 7, 15, 0, 0, 25210, 25211, 5, 95, 0, 0, 25211, 25212, 7, 17, 0, 0, 25212, 25213, 7, 3, 0, 0, 25213, 25214, 7, 2, 0, 0, 25214, 25215, 7, 12, 0, 0, 25215, 25216, 7, 15, 0, 0, 25216, 25217, 7, 10, 0, 0, 25217, 25218, 7, 7, 0, 0, 25218, 25219, 7, 17, 0, 0, 25219, 3736, 1, 0, 0, 0, 25220, 25221, 7, 5, 0, 0, 25221, 25222, 7, 18, 0, 0, 25222, 25223, 7, 5, 0, 0, 25223, 25224, 5, 95, 0, 0, 25224, 25225, 7, 2, 0, 0, 25225, 25226, 7, 15, 0, 0, 25226, 25227, 5, 95, 0, 0, 25227, 25228, 7, 17, 0, 0, 25228, 25229, 7, 12, 0, 0, 25229, 25230, 7, 10, 0, 0, 25230, 25231, 7, 9, 0, 0, 25231, 3738, 1, 0, 0, 0, 25232, 25233, 7, 5, 0, 0, 25233, 25234, 7, 18, 0, 0, 25234, 25235, 7, 5, 0, 0, 25235, 25236, 5, 95, 0, 0, 25236, 25237, 7, 2, 0, 0, 25237, 25238, 7, 15, 0, 0, 25238, 25239, 5, 95, 0, 0, 25239, 25240, 7, 19, 0, 0, 25240, 25241, 7, 0, 0, 0, 25241, 25242, 7, 5, 0, 0, 25242, 25243, 7, 19, 0, 0, 25243, 3740, 1, 0, 0, 0, 25244, 25245, 7, 5, 0, 0, 25245, 25246, 7, 18, 0, 0, 25246, 25247, 7, 5, 0, 0, 25247, 25248, 5, 95, 0, 0, 25248, 25249, 7, 2, 0, 0, 25249, 25250, 7, 15, 0, 0, 25250, 25251, 5, 95, 0, 0, 25251, 25252, 7, 10, 0, 0, 25252, 25253, 7, 10, 0, 0, 25253, 25254, 7, 25, 0, 0, 25254, 3742, 1, 0, 0, 0, 25255, 25256, 7, 5, 0, 0, 25256, 25257, 7, 18, 0, 0, 25257, 25258, 7, 5, 0, 0, 25258, 25259, 5, 95, 0, 0, 25259, 25260, 7, 2, 0, 0, 25260, 25261, 7, 15, 0, 0, 25261, 25262, 5, 95, 0, 0, 25262, 25263, 7, 10, 0, 0, 25263, 25264, 7, 4, 0, 0, 25264, 25265, 7, 3, 0, 0, 25265, 3744, 1, 0, 0, 0, 25266, 25267, 7, 5, 0, 0, 25267, 25268, 7, 18, 0, 0, 25268, 25269, 7, 5, 0, 0, 25269, 25270, 5, 95, 0, 0, 25270, 25271, 7, 2, 0, 0, 25271, 25272, 7, 15, 0, 0, 25272, 25273, 5, 95, 0, 0, 25273, 25274, 7, 21, 0, 0, 25274, 25275, 7, 6, 0, 0, 25275, 25276, 7, 18, 0, 0, 25276, 25277, 5, 95, 0, 0, 25277, 25278, 7, 13, 0, 0, 25278, 25279, 7, 6, 0, 0, 25279, 25280, 7, 8, 0, 0, 25280, 25281, 7, 4, 0, 0, 25281, 25282, 7, 2, 0, 0, 25282, 25283, 7, 3, 0, 0, 25283, 25284, 5, 95, 0, 0, 25284, 25285, 7, 8, 0, 0, 25285, 25286, 7, 3, 0, 0, 25286, 25287, 7, 6, 0, 0, 25287, 25288, 7, 0, 0, 0, 25288, 25289, 7, 4, 0, 0, 25289, 25290, 7, 6, 0, 0, 25290, 3746, 1, 0, 0, 0, 25291, 25292, 7, 5, 0, 0, 25292, 25293, 7, 18, 0, 0, 25293, 25294, 7, 5, 0, 0, 25294, 25295, 5, 95, 0, 0, 25295, 25296, 7, 2, 0, 0, 25296, 25297, 7, 15, 0, 0, 25297, 25298, 5, 95, 0, 0, 25298, 25299, 7, 21, 0, 0, 25299, 25300, 7, 6, 0, 0, 25300, 25301, 7, 18, 0, 0, 25301, 25302, 5, 95, 0, 0, 25302, 25303, 7, 13, 0, 0, 25303, 25304, 7, 6, 0, 0, 25304, 25305, 7, 8, 0, 0, 25305, 25306, 7, 4, 0, 0, 25306, 25307, 7, 2, 0, 0, 25307, 25308, 7, 3, 0, 0, 25308, 25309, 5, 95, 0, 0, 25309, 25310, 7, 16, 0, 0, 25310, 25311, 7, 10, 0, 0, 25311, 25312, 7, 11, 0, 0, 25312, 25313, 7, 4, 0, 0, 25313, 25314, 7, 6, 0, 0, 25314, 25315, 7, 3, 0, 0, 25315, 25316, 5, 95, 0, 0, 25316, 25317, 7, 11, 0, 0, 25317, 25318, 7, 10, 0, 0, 25318, 25319, 7, 5, 0, 0, 25319, 25320, 7, 4, 0, 0, 25320, 3748, 1, 0, 0, 0, 25321, 25322, 7, 5, 0, 0, 25322, 25323, 7, 18, 0, 0, 25323, 25324, 7, 5, 0, 0, 25324, 25325, 5, 95, 0, 0, 25325, 25326, 7, 2, 0, 0, 25326, 25327, 7, 15, 0, 0, 25327, 25328, 5, 95, 0, 0, 25328, 25329, 7, 21, 0, 0, 25329, 25330, 7, 6, 0, 0, 25330, 25331, 7, 18, 0, 0, 25331, 25332, 5, 95, 0, 0, 25332, 25333, 7, 13, 0, 0, 25333, 25334, 7, 6, 0, 0, 25334, 25335, 7, 8, 0, 0, 25335, 25336, 7, 4, 0, 0, 25336, 25337, 7, 2, 0, 0, 25337, 25338, 7, 3, 0, 0, 25338, 25339, 5, 95, 0, 0, 25339, 25340, 7, 16, 0, 0, 25340, 25341, 7, 10, 0, 0, 25341, 25342, 7, 11, 0, 0, 25342, 25343, 7, 4, 0, 0, 25343, 25344, 7, 6, 0, 0, 25344, 25345, 7, 3, 0, 0, 25345, 3750, 1, 0, 0, 0, 25346, 25347, 7, 5, 0, 0, 25347, 25348, 7, 18, 0, 0, 25348, 25349, 7, 5, 0, 0, 25349, 25350, 5, 95, 0, 0, 25350, 25351, 7, 2, 0, 0, 25351, 25352, 7, 15, 0, 0, 25352, 25353, 5, 95, 0, 0, 25353, 25354, 7, 21, 0, 0, 25354, 25355, 7, 6, 0, 0, 25355, 25356, 7, 18, 0, 0, 25356, 25357, 5, 95, 0, 0, 25357, 25358, 7, 13, 0, 0, 25358, 25359, 7, 6, 0, 0, 25359, 25360, 7, 8, 0, 0, 25360, 25361, 7, 4, 0, 0, 25361, 25362, 7, 2, 0, 0, 25362, 25363, 7, 3, 0, 0, 25363, 25364, 5, 95, 0, 0, 25364, 25365, 7, 5, 0, 0, 25365, 25366, 7, 12, 0, 0, 25366, 25367, 7, 8, 0, 0, 25367, 25368, 7, 8, 0, 0, 25368, 25369, 7, 6, 0, 0, 25369, 25370, 7, 6, 0, 0, 25370, 25371, 7, 9, 0, 0, 25371, 25372, 7, 6, 0, 0, 25372, 25373, 7, 9, 0, 0, 25373, 3752, 1, 0, 0, 0, 25374, 25375, 7, 5, 0, 0, 25375, 25376, 7, 18, 0, 0, 25376, 25377, 7, 5, 0, 0, 25377, 25378, 5, 95, 0, 0, 25378, 25379, 7, 2, 0, 0, 25379, 25380, 7, 15, 0, 0, 25380, 25381, 5, 95, 0, 0, 25381, 25382, 7, 21, 0, 0, 25382, 25383, 7, 6, 0, 0, 25383, 25384, 7, 18, 0, 0, 25384, 25385, 5, 95, 0, 0, 25385, 25386, 7, 13, 0, 0, 25386, 25387, 7, 6, 0, 0, 25387, 25388, 7, 8, 0, 0, 25388, 25389, 7, 4, 0, 0, 25389, 25390, 7, 2, 0, 0, 25390, 25391, 7, 3, 0, 0, 25391, 25392, 5, 95, 0, 0, 25392, 25393, 7, 12, 0, 0, 25393, 25394, 7, 5, 0, 0, 25394, 25395, 7, 6, 0, 0, 25395, 3754, 1, 0, 0, 0, 25396, 25397, 7, 5, 0, 0, 25397, 25398, 7, 18, 0, 0, 25398, 25399, 7, 5, 0, 0, 25399, 25400, 5, 95, 0, 0, 25400, 25401, 7, 2, 0, 0, 25401, 25402, 7, 15, 0, 0, 25402, 25403, 5, 95, 0, 0, 25403, 25404, 7, 11, 0, 0, 25404, 25405, 7, 1, 0, 0, 25405, 25406, 7, 10, 0, 0, 25406, 25407, 7, 9, 0, 0, 25407, 3756, 1, 0, 0, 0, 25408, 25409, 7, 5, 0, 0, 25409, 25410, 7, 18, 0, 0, 25410, 25411, 7, 5, 0, 0, 25411, 25412, 5, 95, 0, 0, 25412, 25413, 7, 2, 0, 0, 25413, 25414, 7, 15, 0, 0, 25414, 25415, 5, 95, 0, 0, 25415, 25416, 7, 11, 0, 0, 25416, 25417, 7, 2, 0, 0, 25417, 25418, 7, 1, 0, 0, 25418, 25419, 7, 11, 0, 0, 25419, 25420, 7, 2, 0, 0, 25420, 25421, 7, 8, 0, 0, 25421, 25422, 5, 50, 0, 0, 25422, 25423, 7, 1, 0, 0, 25423, 25424, 7, 11, 0, 0, 25424, 25425, 7, 2, 0, 0, 25425, 25426, 7, 1, 0, 0, 25426, 3758, 1, 0, 0, 0, 25427, 25428, 7, 5, 0, 0, 25428, 25429, 7, 18, 0, 0, 25429, 25430, 7, 5, 0, 0, 25430, 25431, 5, 95, 0, 0, 25431, 25432, 7, 2, 0, 0, 25432, 25433, 7, 15, 0, 0, 25433, 25434, 5, 95, 0, 0, 25434, 25435, 7, 11, 0, 0, 25435, 25436, 7, 2, 0, 0, 25436, 25437, 7, 1, 0, 0, 25437, 25438, 7, 11, 0, 0, 25438, 25439, 7, 2, 0, 0, 25439, 25440, 7, 8, 0, 0, 25440, 25441, 5, 50, 0, 0, 25441, 25442, 7, 8, 0, 0, 25442, 25443, 7, 11, 0, 0, 25443, 25444, 7, 2, 0, 0, 25444, 25445, 7, 1, 0, 0, 25445, 3760, 1, 0, 0, 0, 25446, 25447, 7, 5, 0, 0, 25447, 25448, 7, 18, 0, 0, 25448, 25449, 7, 5, 0, 0, 25449, 25450, 5, 95, 0, 0, 25450, 25451, 7, 2, 0, 0, 25451, 25452, 7, 15, 0, 0, 25452, 25453, 5, 95, 0, 0, 25453, 25454, 7, 11, 0, 0, 25454, 25455, 7, 2, 0, 0, 25455, 25456, 7, 1, 0, 0, 25456, 25457, 7, 11, 0, 0, 25457, 25458, 7, 2, 0, 0, 25458, 25459, 7, 8, 0, 0, 25459, 25460, 5, 50, 0, 0, 25460, 25461, 7, 10, 0, 0, 25461, 25462, 7, 9, 0, 0, 25462, 3762, 1, 0, 0, 0, 25463, 25464, 7, 5, 0, 0, 25464, 25465, 7, 18, 0, 0, 25465, 25466, 7, 5, 0, 0, 25466, 25467, 5, 95, 0, 0, 25467, 25468, 7, 2, 0, 0, 25468, 25469, 7, 15, 0, 0, 25469, 25470, 5, 95, 0, 0, 25470, 25471, 7, 11, 0, 0, 25471, 25472, 7, 2, 0, 0, 25472, 25473, 7, 1, 0, 0, 25473, 25474, 7, 11, 0, 0, 25474, 25475, 7, 2, 0, 0, 25475, 25476, 7, 8, 0, 0, 25476, 25477, 5, 50, 0, 0, 25477, 25478, 7, 7, 0, 0, 25478, 25479, 7, 8, 0, 0, 25479, 25480, 7, 11, 0, 0, 25480, 25481, 7, 2, 0, 0, 25481, 25482, 7, 1, 0, 0, 25482, 3764, 1, 0, 0, 0, 25483, 25484, 7, 5, 0, 0, 25484, 25485, 7, 18, 0, 0, 25485, 25486, 7, 5, 0, 0, 25486, 25487, 5, 95, 0, 0, 25487, 25488, 7, 2, 0, 0, 25488, 25489, 7, 15, 0, 0, 25489, 25490, 5, 95, 0, 0, 25490, 25491, 7, 11, 0, 0, 25491, 25492, 7, 2, 0, 0, 25492, 25493, 7, 1, 0, 0, 25493, 25494, 7, 11, 0, 0, 25494, 25495, 7, 2, 0, 0, 25495, 25496, 7, 8, 0, 0, 25496, 25497, 5, 50, 0, 0, 25497, 25498, 7, 4, 0, 0, 25498, 25499, 7, 18, 0, 0, 25499, 25500, 7, 15, 0, 0, 25500, 3766, 1, 0, 0, 0, 25501, 25502, 7, 5, 0, 0, 25502, 25503, 7, 18, 0, 0, 25503, 25504, 7, 5, 0, 0, 25504, 25505, 5, 95, 0, 0, 25505, 25506, 7, 2, 0, 0, 25506, 25507, 7, 15, 0, 0, 25507, 25508, 5, 95, 0, 0, 25508, 25509, 7, 11, 0, 0, 25509, 25510, 7, 5, 0, 0, 25510, 25511, 7, 13, 0, 0, 25511, 25512, 7, 10, 0, 0, 25512, 3768, 1, 0, 0, 0, 25513, 25514, 7, 5, 0, 0, 25514, 25515, 7, 18, 0, 0, 25515, 25516, 7, 5, 0, 0, 25516, 25517, 5, 95, 0, 0, 25517, 25518, 7, 2, 0, 0, 25518, 25519, 7, 15, 0, 0, 25519, 25520, 5, 95, 0, 0, 25520, 25521, 7, 11, 0, 0, 25521, 25522, 7, 13, 0, 0, 25522, 25523, 7, 11, 0, 0, 25523, 3770, 1, 0, 0, 0, 25524, 25525, 7, 5, 0, 0, 25525, 25526, 7, 18, 0, 0, 25526, 25527, 7, 5, 0, 0, 25527, 25528, 5, 95, 0, 0, 25528, 25529, 7, 2, 0, 0, 25529, 25530, 7, 15, 0, 0, 25530, 25531, 5, 95, 0, 0, 25531, 25532, 7, 14, 0, 0, 25532, 25533, 7, 0, 0, 0, 25533, 25534, 7, 21, 0, 0, 25534, 25535, 7, 6, 0, 0, 25535, 25536, 7, 2, 0, 0, 25536, 25537, 7, 10, 0, 0, 25537, 25538, 7, 9, 0, 0, 25538, 3772, 1, 0, 0, 0, 25539, 25540, 7, 5, 0, 0, 25540, 25541, 7, 18, 0, 0, 25541, 25542, 7, 5, 0, 0, 25542, 25543, 5, 95, 0, 0, 25543, 25544, 7, 2, 0, 0, 25544, 25545, 7, 15, 0, 0, 25545, 25546, 5, 95, 0, 0, 25546, 25547, 7, 14, 0, 0, 25547, 25548, 7, 0, 0, 0, 25548, 25549, 7, 15, 0, 0, 25549, 25550, 5, 95, 0, 0, 25550, 25551, 7, 7, 0, 0, 25551, 25552, 7, 2, 0, 0, 25552, 25553, 7, 7, 0, 0, 25553, 25554, 7, 7, 0, 0, 25554, 25555, 7, 12, 0, 0, 25555, 25556, 7, 11, 0, 0, 25556, 25557, 7, 11, 0, 0, 25557, 3774, 1, 0, 0, 0, 25558, 25559, 7, 5, 0, 0, 25559, 25560, 7, 18, 0, 0, 25560, 25561, 7, 5, 0, 0, 25561, 25562, 5, 95, 0, 0, 25562, 25563, 7, 2, 0, 0, 25563, 25564, 7, 15, 0, 0, 25564, 25565, 5, 95, 0, 0, 25565, 25566, 7, 14, 0, 0, 25566, 25567, 7, 5, 0, 0, 25567, 25568, 7, 3, 0, 0, 25568, 3776, 1, 0, 0, 0, 25569, 25570, 7, 5, 0, 0, 25570, 25571, 7, 18, 0, 0, 25571, 25572, 7, 5, 0, 0, 25572, 25573, 5, 95, 0, 0, 25573, 25574, 7, 2, 0, 0, 25574, 25575, 7, 15, 0, 0, 25575, 25576, 5, 95, 0, 0, 25576, 25577, 7, 7, 0, 0, 25577, 25578, 7, 10, 0, 0, 25578, 25579, 7, 8, 0, 0, 25579, 25580, 7, 2, 0, 0, 25580, 25581, 7, 14, 0, 0, 25581, 25582, 7, 1, 0, 0, 25582, 25583, 7, 10, 0, 0, 25583, 25584, 7, 7, 0, 0, 25584, 25585, 7, 6, 0, 0, 25585, 3778, 1, 0, 0, 0, 25586, 25587, 7, 5, 0, 0, 25587, 25588, 7, 18, 0, 0, 25588, 25589, 7, 5, 0, 0, 25589, 25590, 5, 95, 0, 0, 25590, 25591, 7, 2, 0, 0, 25591, 25592, 7, 15, 0, 0, 25592, 25593, 5, 95, 0, 0, 25593, 25594, 7, 7, 0, 0, 25594, 25595, 7, 10, 0, 0, 25595, 25596, 7, 6, 0, 0, 25596, 25597, 7, 25, 0, 0, 25597, 25598, 7, 4, 0, 0, 25598, 25599, 7, 3, 0, 0, 25599, 25600, 7, 0, 0, 0, 25600, 25601, 7, 8, 0, 0, 25601, 25602, 7, 4, 0, 0, 25602, 3780, 1, 0, 0, 0, 25603, 25604, 7, 5, 0, 0, 25604, 25605, 7, 18, 0, 0, 25605, 25606, 7, 5, 0, 0, 25606, 25607, 5, 95, 0, 0, 25607, 25608, 7, 2, 0, 0, 25608, 25609, 7, 15, 0, 0, 25609, 25610, 5, 95, 0, 0, 25610, 25611, 7, 7, 0, 0, 25611, 25612, 7, 10, 0, 0, 25612, 25613, 7, 10, 0, 0, 25613, 3782, 1, 0, 0, 0, 25614, 25615, 7, 5, 0, 0, 25615, 25616, 7, 18, 0, 0, 25616, 25617, 7, 5, 0, 0, 25617, 25618, 5, 95, 0, 0, 25618, 25619, 7, 2, 0, 0, 25619, 25620, 7, 15, 0, 0, 25620, 25621, 5, 95, 0, 0, 25621, 25622, 7, 7, 0, 0, 25622, 25623, 7, 10, 0, 0, 25623, 25624, 7, 25, 0, 0, 25624, 3784, 1, 0, 0, 0, 25625, 25626, 7, 5, 0, 0, 25626, 25627, 7, 18, 0, 0, 25627, 25628, 7, 5, 0, 0, 25628, 25629, 5, 95, 0, 0, 25629, 25630, 7, 2, 0, 0, 25630, 25631, 7, 15, 0, 0, 25631, 25632, 5, 95, 0, 0, 25632, 25633, 7, 7, 0, 0, 25633, 25634, 7, 2, 0, 0, 25634, 25635, 7, 6, 0, 0, 25635, 25636, 7, 25, 0, 0, 25636, 25637, 7, 15, 0, 0, 25637, 25638, 7, 0, 0, 0, 25638, 25639, 7, 7, 0, 0, 25639, 25640, 7, 9, 0, 0, 25640, 3786, 1, 0, 0, 0, 25641, 25642, 7, 5, 0, 0, 25642, 25643, 7, 18, 0, 0, 25643, 25644, 7, 5, 0, 0, 25644, 25645, 5, 95, 0, 0, 25645, 25646, 7, 2, 0, 0, 25646, 25647, 7, 15, 0, 0, 25647, 25648, 5, 95, 0, 0, 25648, 25649, 7, 7, 0, 0, 25649, 25650, 7, 4, 0, 0, 25650, 25651, 7, 8, 0, 0, 25651, 25652, 7, 10, 0, 0, 25652, 25653, 7, 14, 0, 0, 25653, 25654, 7, 17, 0, 0, 25654, 25655, 5, 36, 0, 0, 25655, 3788, 1, 0, 0, 0, 25656, 25657, 7, 5, 0, 0, 25657, 25658, 7, 18, 0, 0, 25658, 25659, 7, 5, 0, 0, 25659, 25660, 5, 95, 0, 0, 25660, 25661, 7, 2, 0, 0, 25661, 25662, 7, 15, 0, 0, 25662, 25663, 5, 95, 0, 0, 25663, 25664, 7, 7, 0, 0, 25664, 25665, 7, 12, 0, 0, 25665, 25666, 7, 14, 0, 0, 25666, 25667, 7, 4, 0, 0, 25667, 25668, 7, 2, 0, 0, 25668, 25669, 7, 3, 0, 0, 25669, 25670, 7, 0, 0, 0, 25670, 25671, 7, 22, 0, 0, 25671, 3790, 1, 0, 0, 0, 25672, 25673, 7, 5, 0, 0, 25673, 25674, 7, 18, 0, 0, 25674, 25675, 7, 5, 0, 0, 25675, 25676, 5, 95, 0, 0, 25676, 25677, 7, 2, 0, 0, 25677, 25678, 7, 15, 0, 0, 25678, 25679, 5, 95, 0, 0, 25679, 25680, 7, 2, 0, 0, 25680, 25681, 7, 10, 0, 0, 25681, 25682, 7, 9, 0, 0, 25682, 25683, 7, 13, 0, 0, 25683, 25684, 7, 0, 0, 0, 25684, 25685, 7, 11, 0, 0, 25685, 25686, 7, 12, 0, 0, 25686, 25687, 7, 6, 0, 0, 25687, 3792, 1, 0, 0, 0, 25688, 25689, 7, 5, 0, 0, 25689, 25690, 7, 18, 0, 0, 25690, 25691, 7, 5, 0, 0, 25691, 25692, 5, 95, 0, 0, 25692, 25693, 7, 2, 0, 0, 25693, 25694, 7, 15, 0, 0, 25694, 25695, 5, 95, 0, 0, 25695, 25696, 7, 2, 0, 0, 25696, 25697, 7, 15, 0, 0, 25697, 25698, 7, 7, 0, 0, 25698, 25699, 7, 5, 0, 0, 25699, 25700, 7, 10, 0, 0, 25700, 25701, 7, 23, 0, 0, 25701, 25702, 7, 6, 0, 0, 25702, 3794, 1, 0, 0, 0, 25703, 25704, 7, 5, 0, 0, 25704, 25705, 7, 18, 0, 0, 25705, 25706, 7, 5, 0, 0, 25706, 25707, 5, 95, 0, 0, 25707, 25708, 7, 2, 0, 0, 25708, 25709, 7, 15, 0, 0, 25709, 25710, 5, 95, 0, 0, 25710, 25711, 7, 15, 0, 0, 25711, 25712, 7, 0, 0, 0, 25712, 25713, 7, 3, 0, 0, 25713, 25714, 5, 95, 0, 0, 25714, 25715, 5, 49, 0, 0, 25715, 3796, 1, 0, 0, 0, 25716, 25717, 7, 5, 0, 0, 25717, 25718, 7, 18, 0, 0, 25718, 25719, 7, 5, 0, 0, 25719, 25720, 5, 95, 0, 0, 25720, 25721, 7, 2, 0, 0, 25721, 25722, 7, 15, 0, 0, 25722, 25723, 5, 95, 0, 0, 25723, 25724, 7, 15, 0, 0, 25724, 25725, 7, 0, 0, 0, 25725, 25726, 7, 3, 0, 0, 25726, 25727, 7, 17, 0, 0, 25727, 25728, 7, 10, 0, 0, 25728, 25729, 7, 9, 0, 0, 25729, 25730, 5, 95, 0, 0, 25730, 25731, 5, 49, 0, 0, 25731, 3798, 1, 0, 0, 0, 25732, 25733, 7, 5, 0, 0, 25733, 25734, 7, 18, 0, 0, 25734, 25735, 7, 5, 0, 0, 25735, 25736, 5, 95, 0, 0, 25736, 25737, 7, 2, 0, 0, 25737, 25738, 7, 15, 0, 0, 25738, 25739, 5, 95, 0, 0, 25739, 25740, 7, 15, 0, 0, 25740, 25741, 7, 0, 0, 0, 25741, 25742, 7, 3, 0, 0, 25742, 25743, 7, 17, 0, 0, 25743, 25744, 7, 10, 0, 0, 25744, 25745, 7, 9, 0, 0, 25745, 3800, 1, 0, 0, 0, 25746, 25747, 7, 5, 0, 0, 25747, 25748, 7, 18, 0, 0, 25748, 25749, 7, 5, 0, 0, 25749, 25750, 5, 95, 0, 0, 25750, 25751, 7, 2, 0, 0, 25751, 25752, 7, 15, 0, 0, 25752, 25753, 5, 95, 0, 0, 25753, 25754, 7, 15, 0, 0, 25754, 25755, 7, 0, 0, 0, 25755, 25756, 7, 3, 0, 0, 25756, 3802, 1, 0, 0, 0, 25757, 25758, 7, 5, 0, 0, 25758, 25759, 7, 18, 0, 0, 25759, 25760, 7, 5, 0, 0, 25760, 25761, 5, 95, 0, 0, 25761, 25762, 7, 2, 0, 0, 25762, 25763, 7, 15, 0, 0, 25763, 25764, 5, 95, 0, 0, 25764, 25765, 7, 15, 0, 0, 25765, 25766, 7, 0, 0, 0, 25766, 25767, 7, 3, 0, 0, 25767, 25768, 7, 4, 0, 0, 25768, 25769, 5, 95, 0, 0, 25769, 25770, 7, 10, 0, 0, 25770, 25771, 7, 9, 0, 0, 25771, 3804, 1, 0, 0, 0, 25772, 25773, 7, 5, 0, 0, 25773, 25774, 7, 18, 0, 0, 25774, 25775, 7, 5, 0, 0, 25775, 25776, 5, 95, 0, 0, 25776, 25777, 7, 2, 0, 0, 25777, 25778, 7, 15, 0, 0, 25778, 25779, 5, 95, 0, 0, 25779, 25780, 7, 15, 0, 0, 25780, 25781, 7, 10, 0, 0, 25781, 25782, 7, 13, 0, 0, 25782, 25783, 7, 2, 0, 0, 25783, 25784, 7, 4, 0, 0, 25784, 3806, 1, 0, 0, 0, 25785, 25786, 7, 5, 0, 0, 25786, 25787, 7, 18, 0, 0, 25787, 25788, 7, 5, 0, 0, 25788, 25789, 5, 95, 0, 0, 25789, 25790, 7, 2, 0, 0, 25790, 25791, 7, 15, 0, 0, 25791, 25792, 5, 95, 0, 0, 25792, 25793, 7, 3, 0, 0, 25793, 25794, 5, 50, 0, 0, 25794, 25795, 7, 2, 0, 0, 25795, 3808, 1, 0, 0, 0, 25796, 25797, 7, 5, 0, 0, 25797, 25798, 7, 18, 0, 0, 25798, 25799, 7, 5, 0, 0, 25799, 25800, 5, 95, 0, 0, 25800, 25801, 7, 2, 0, 0, 25801, 25802, 7, 15, 0, 0, 25802, 25803, 5, 95, 0, 0, 25803, 25804, 7, 3, 0, 0, 25804, 25805, 7, 0, 0, 0, 25805, 25806, 7, 22, 0, 0, 25806, 25807, 7, 4, 0, 0, 25807, 25808, 7, 2, 0, 0, 25808, 25809, 7, 7, 0, 0, 25809, 25810, 7, 12, 0, 0, 25810, 25811, 7, 14, 0, 0, 25811, 3810, 1, 0, 0, 0, 25812, 25813, 7, 5, 0, 0, 25813, 25814, 7, 18, 0, 0, 25814, 25815, 7, 5, 0, 0, 25815, 25816, 5, 95, 0, 0, 25816, 25817, 7, 2, 0, 0, 25817, 25818, 7, 15, 0, 0, 25818, 25819, 5, 95, 0, 0, 25819, 25820, 7, 3, 0, 0, 25820, 25821, 7, 9, 0, 0, 25821, 25822, 7, 4, 0, 0, 25822, 25823, 7, 14, 0, 0, 25823, 3812, 1, 0, 0, 0, 25824, 25825, 7, 5, 0, 0, 25825, 25826, 7, 18, 0, 0, 25826, 25827, 7, 5, 0, 0, 25827, 25828, 5, 95, 0, 0, 25828, 25829, 7, 2, 0, 0, 25829, 25830, 7, 15, 0, 0, 25830, 25831, 5, 95, 0, 0, 25831, 25832, 7, 3, 0, 0, 25832, 25833, 7, 6, 0, 0, 25833, 25834, 7, 16, 0, 0, 25834, 3814, 1, 0, 0, 0, 25835, 25836, 7, 5, 0, 0, 25836, 25837, 7, 18, 0, 0, 25837, 25838, 7, 5, 0, 0, 25838, 25839, 5, 95, 0, 0, 25839, 25840, 7, 2, 0, 0, 25840, 25841, 7, 15, 0, 0, 25841, 25842, 5, 95, 0, 0, 25842, 25843, 7, 3, 0, 0, 25843, 25844, 7, 14, 0, 0, 25844, 25845, 7, 4, 0, 0, 25845, 25846, 7, 9, 0, 0, 25846, 3816, 1, 0, 0, 0, 25847, 25848, 7, 5, 0, 0, 25848, 25849, 7, 18, 0, 0, 25849, 25850, 7, 5, 0, 0, 25850, 25851, 5, 95, 0, 0, 25851, 25852, 7, 2, 0, 0, 25852, 25853, 7, 15, 0, 0, 25853, 25854, 5, 95, 0, 0, 25854, 25855, 7, 3, 0, 0, 25855, 25856, 7, 2, 0, 0, 25856, 25857, 7, 22, 0, 0, 25857, 25858, 7, 10, 0, 0, 25858, 25859, 7, 9, 0, 0, 25859, 25860, 7, 4, 0, 0, 25860, 25861, 7, 2, 0, 0, 25861, 25862, 7, 2, 0, 0, 25862, 25863, 7, 1, 0, 0, 25863, 25864, 7, 20, 0, 0, 25864, 3818, 1, 0, 0, 0, 25865, 25866, 7, 5, 0, 0, 25866, 25867, 7, 18, 0, 0, 25867, 25868, 7, 5, 0, 0, 25868, 25869, 5, 95, 0, 0, 25869, 25870, 7, 2, 0, 0, 25870, 25871, 7, 15, 0, 0, 25871, 25872, 5, 95, 0, 0, 25872, 25873, 7, 3, 0, 0, 25873, 25874, 7, 15, 0, 0, 25874, 25875, 7, 1, 0, 0, 25875, 3820, 1, 0, 0, 0, 25876, 25877, 7, 5, 0, 0, 25877, 25878, 7, 18, 0, 0, 25878, 25879, 7, 5, 0, 0, 25879, 25880, 5, 95, 0, 0, 25880, 25881, 7, 2, 0, 0, 25881, 25882, 7, 15, 0, 0, 25882, 25883, 7, 4, 0, 0, 25883, 25884, 7, 11, 0, 0, 25884, 25885, 7, 2, 0, 0, 25885, 25886, 7, 1, 0, 0, 25886, 25887, 7, 15, 0, 0, 25887, 25888, 7, 3, 0, 0, 25888, 25889, 7, 1, 0, 0, 25889, 25890, 7, 5, 0, 0, 25890, 25891, 7, 8, 0, 0, 25891, 3822, 1, 0, 0, 0, 25892, 25893, 7, 5, 0, 0, 25893, 25894, 7, 18, 0, 0, 25894, 25895, 7, 5, 0, 0, 25895, 25896, 5, 95, 0, 0, 25896, 25897, 7, 2, 0, 0, 25897, 25898, 7, 15, 0, 0, 25898, 25899, 5, 95, 0, 0, 25899, 25900, 7, 4, 0, 0, 25900, 25901, 7, 2, 0, 0, 25901, 25902, 7, 5, 0, 0, 25902, 25903, 7, 6, 0, 0, 25903, 25904, 7, 4, 0, 0, 25904, 25905, 7, 10, 0, 0, 25905, 25906, 7, 9, 0, 0, 25906, 3824, 1, 0, 0, 0, 25907, 25908, 7, 5, 0, 0, 25908, 25909, 7, 18, 0, 0, 25909, 25910, 7, 5, 0, 0, 25910, 25911, 5, 95, 0, 0, 25911, 25912, 7, 2, 0, 0, 25912, 25913, 7, 15, 0, 0, 25913, 25914, 5, 95, 0, 0, 25914, 25915, 7, 4, 0, 0, 25915, 25916, 7, 15, 0, 0, 25916, 25917, 7, 3, 0, 0, 25917, 3826, 1, 0, 0, 0, 25918, 25919, 7, 5, 0, 0, 25919, 25920, 7, 18, 0, 0, 25920, 25921, 7, 5, 0, 0, 25921, 25922, 5, 95, 0, 0, 25922, 25923, 7, 2, 0, 0, 25923, 25924, 7, 15, 0, 0, 25924, 25925, 5, 95, 0, 0, 25925, 25926, 7, 4, 0, 0, 25926, 25927, 7, 3, 0, 0, 25927, 25928, 7, 4, 0, 0, 25928, 25929, 7, 1, 0, 0, 25929, 3828, 1, 0, 0, 0, 25930, 25931, 7, 5, 0, 0, 25931, 25932, 7, 18, 0, 0, 25932, 25933, 7, 5, 0, 0, 25933, 25934, 5, 95, 0, 0, 25934, 25935, 7, 2, 0, 0, 25935, 25936, 7, 15, 0, 0, 25936, 25937, 7, 4, 0, 0, 25937, 25938, 7, 25, 0, 0, 25938, 25939, 7, 10, 0, 0, 25939, 25940, 7, 8, 0, 0, 25940, 25941, 7, 14, 0, 0, 25941, 25942, 7, 15, 0, 0, 25942, 3830, 1, 0, 0, 0, 25943, 25944, 7, 5, 0, 0, 25944, 25945, 7, 18, 0, 0, 25945, 25946, 7, 5, 0, 0, 25946, 25947, 5, 95, 0, 0, 25947, 25948, 7, 2, 0, 0, 25948, 25949, 7, 15, 0, 0, 25949, 25950, 7, 4, 0, 0, 25950, 25951, 7, 25, 0, 0, 25951, 25952, 7, 24, 0, 0, 25952, 25953, 7, 8, 0, 0, 25953, 25954, 7, 0, 0, 0, 25954, 25955, 7, 5, 0, 0, 25955, 25956, 7, 4, 0, 0, 25956, 25957, 7, 0, 0, 0, 25957, 25958, 7, 5, 0, 0, 25958, 25959, 7, 7, 0, 0, 25959, 25960, 7, 24, 0, 0, 25960, 3832, 1, 0, 0, 0, 25961, 25962, 7, 5, 0, 0, 25962, 25963, 7, 18, 0, 0, 25963, 25964, 7, 5, 0, 0, 25964, 25965, 5, 95, 0, 0, 25965, 25966, 7, 2, 0, 0, 25966, 25967, 7, 15, 0, 0, 25967, 25968, 5, 95, 0, 0, 25968, 25969, 7, 12, 0, 0, 25969, 25970, 7, 7, 0, 0, 25970, 25971, 7, 9, 0, 0, 25971, 25972, 7, 6, 0, 0, 25972, 25973, 7, 5, 0, 0, 25973, 25974, 7, 8, 0, 0, 25974, 25975, 7, 6, 0, 0, 25975, 25976, 7, 7, 0, 0, 25976, 25977, 7, 9, 0, 0, 25977, 3834, 1, 0, 0, 0, 25978, 25979, 7, 5, 0, 0, 25979, 25980, 7, 18, 0, 0, 25980, 25981, 7, 5, 0, 0, 25981, 25982, 5, 95, 0, 0, 25982, 25983, 7, 2, 0, 0, 25983, 25984, 7, 15, 0, 0, 25984, 25985, 5, 95, 0, 0, 25985, 25986, 7, 13, 0, 0, 25986, 25987, 7, 6, 0, 0, 25987, 25988, 7, 8, 0, 0, 25988, 25989, 7, 0, 0, 0, 25989, 25990, 7, 7, 0, 0, 25990, 25991, 7, 9, 0, 0, 25991, 3836, 1, 0, 0, 0, 25992, 25993, 7, 5, 0, 0, 25993, 25994, 7, 18, 0, 0, 25994, 25995, 7, 5, 0, 0, 25995, 25996, 5, 95, 0, 0, 25996, 25997, 7, 2, 0, 0, 25997, 25998, 7, 15, 0, 0, 25998, 25999, 5, 95, 0, 0, 25999, 26000, 7, 13, 0, 0, 26000, 26001, 7, 6, 0, 0, 26001, 26002, 7, 8, 0, 0, 26002, 26003, 7, 1, 0, 0, 26003, 26004, 7, 10, 0, 0, 26004, 26005, 7, 4, 0, 0, 26005, 3838, 1, 0, 0, 0, 26006, 26007, 7, 5, 0, 0, 26007, 26008, 7, 18, 0, 0, 26008, 26009, 7, 5, 0, 0, 26009, 26010, 5, 95, 0, 0, 26010, 26011, 7, 2, 0, 0, 26011, 26012, 7, 15, 0, 0, 26012, 26013, 5, 95, 0, 0, 26013, 26014, 7, 13, 0, 0, 26014, 26015, 7, 6, 0, 0, 26015, 26016, 7, 8, 0, 0, 26016, 26017, 7, 2, 0, 0, 26017, 26018, 7, 3, 0, 0, 26018, 3840, 1, 0, 0, 0, 26019, 26020, 7, 5, 0, 0, 26020, 26021, 7, 18, 0, 0, 26021, 26022, 7, 5, 0, 0, 26022, 26023, 5, 95, 0, 0, 26023, 26024, 7, 2, 0, 0, 26024, 26025, 7, 15, 0, 0, 26025, 26026, 5, 95, 0, 0, 26026, 26027, 7, 13, 0, 0, 26027, 26028, 7, 6, 0, 0, 26028, 26029, 7, 8, 0, 0, 26029, 26030, 7, 25, 0, 0, 26030, 26031, 7, 2, 0, 0, 26031, 26032, 7, 3, 0, 0, 26032, 3842, 1, 0, 0, 0, 26033, 26034, 7, 5, 0, 0, 26034, 26035, 7, 18, 0, 0, 26035, 26036, 7, 5, 0, 0, 26036, 26037, 5, 95, 0, 0, 26037, 26038, 7, 2, 0, 0, 26038, 26039, 7, 15, 0, 0, 26039, 26040, 5, 95, 0, 0, 26040, 26041, 7, 13, 0, 0, 26041, 26042, 7, 6, 0, 0, 26042, 26043, 7, 3, 0, 0, 26043, 26044, 7, 5, 0, 0, 26044, 26045, 7, 10, 0, 0, 26045, 26046, 7, 2, 0, 0, 26046, 26047, 7, 7, 0, 0, 26047, 3844, 1, 0, 0, 0, 26048, 26049, 7, 5, 0, 0, 26049, 26050, 7, 18, 0, 0, 26050, 26051, 7, 5, 0, 0, 26051, 26052, 5, 95, 0, 0, 26052, 26053, 7, 2, 0, 0, 26053, 26054, 7, 15, 0, 0, 26054, 26055, 5, 95, 0, 0, 26055, 26056, 7, 13, 0, 0, 26056, 26057, 7, 3, 0, 0, 26057, 26058, 7, 6, 0, 0, 26058, 26059, 7, 16, 0, 0, 26059, 3846, 1, 0, 0, 0, 26060, 26061, 7, 5, 0, 0, 26061, 26062, 7, 18, 0, 0, 26062, 26063, 7, 5, 0, 0, 26063, 26064, 5, 95, 0, 0, 26064, 26065, 7, 2, 0, 0, 26065, 26066, 7, 15, 0, 0, 26066, 26067, 5, 95, 0, 0, 26067, 26068, 7, 13, 0, 0, 26068, 26069, 7, 13, 0, 0, 26069, 26070, 7, 9, 0, 0, 26070, 3848, 1, 0, 0, 0, 26071, 26072, 7, 5, 0, 0, 26072, 26073, 7, 18, 0, 0, 26073, 26074, 7, 5, 0, 0, 26074, 26075, 5, 95, 0, 0, 26075, 26076, 7, 2, 0, 0, 26076, 26077, 7, 15, 0, 0, 26077, 26078, 5, 95, 0, 0, 26078, 26079, 7, 25, 0, 0, 26079, 26080, 7, 14, 0, 0, 26080, 26081, 7, 11, 0, 0, 26081, 26082, 7, 8, 0, 0, 26082, 26083, 7, 2, 0, 0, 26083, 26084, 7, 7, 0, 0, 26084, 26085, 7, 5, 0, 0, 26085, 26086, 5, 95, 0, 0, 26086, 26087, 7, 16, 0, 0, 26087, 26088, 7, 2, 0, 0, 26088, 26089, 7, 3, 0, 0, 26089, 26090, 5, 95, 0, 0, 26090, 26091, 7, 8, 0, 0, 26091, 26092, 7, 5, 0, 0, 26092, 26093, 7, 25, 0, 0, 26093, 3850, 1, 0, 0, 0, 26094, 26095, 7, 5, 0, 0, 26095, 26096, 7, 18, 0, 0, 26096, 26097, 7, 5, 0, 0, 26097, 26098, 5, 95, 0, 0, 26098, 26099, 7, 2, 0, 0, 26099, 26100, 7, 15, 0, 0, 26100, 26101, 5, 95, 0, 0, 26101, 26102, 7, 25, 0, 0, 26102, 26103, 7, 15, 0, 0, 26103, 26104, 7, 4, 0, 0, 26104, 26105, 7, 19, 0, 0, 26105, 26106, 7, 0, 0, 0, 26106, 26107, 7, 4, 0, 0, 26107, 26108, 7, 17, 0, 0, 26108, 3852, 1, 0, 0, 0, 26109, 26110, 7, 5, 0, 0, 26110, 26111, 7, 18, 0, 0, 26111, 26112, 7, 5, 0, 0, 26112, 26113, 5, 95, 0, 0, 26113, 26114, 7, 2, 0, 0, 26114, 26115, 7, 15, 0, 0, 26115, 26116, 5, 95, 0, 0, 26116, 26117, 7, 25, 0, 0, 26117, 26118, 7, 15, 0, 0, 26118, 26119, 7, 4, 0, 0, 26119, 26120, 7, 19, 0, 0, 26120, 26121, 7, 10, 0, 0, 26121, 26122, 7, 9, 0, 0, 26122, 26123, 7, 25, 0, 0, 26123, 3854, 1, 0, 0, 0, 26124, 26125, 7, 5, 0, 0, 26125, 26126, 7, 18, 0, 0, 26126, 26127, 7, 5, 0, 0, 26127, 26128, 5, 95, 0, 0, 26128, 26129, 7, 2, 0, 0, 26129, 26130, 7, 15, 0, 0, 26130, 26131, 5, 95, 0, 0, 26131, 26132, 7, 25, 0, 0, 26132, 26133, 7, 15, 0, 0, 26133, 26134, 7, 4, 0, 0, 26134, 26135, 7, 19, 0, 0, 26135, 26136, 7, 2, 0, 0, 26136, 26137, 7, 15, 0, 0, 26137, 3856, 1, 0, 0, 0, 26138, 26139, 7, 5, 0, 0, 26139, 26140, 7, 18, 0, 0, 26140, 26141, 7, 5, 0, 0, 26141, 26142, 5, 95, 0, 0, 26142, 26143, 7, 2, 0, 0, 26143, 26144, 7, 15, 0, 0, 26144, 26145, 5, 95, 0, 0, 26145, 26146, 7, 25, 0, 0, 26146, 26147, 7, 4, 0, 0, 26147, 26148, 7, 25, 0, 0, 26148, 26149, 7, 4, 0, 0, 26149, 26150, 5, 50, 0, 0, 26150, 26151, 7, 5, 0, 0, 26151, 26152, 7, 24, 0, 0, 26152, 26153, 7, 11, 0, 0, 26153, 26154, 7, 4, 0, 0, 26154, 3858, 1, 0, 0, 0, 26155, 26156, 7, 5, 0, 0, 26156, 26157, 7, 18, 0, 0, 26157, 26158, 7, 5, 0, 0, 26158, 26159, 5, 95, 0, 0, 26159, 26160, 7, 2, 0, 0, 26160, 26161, 7, 15, 0, 0, 26161, 26162, 5, 95, 0, 0, 26162, 26163, 7, 23, 0, 0, 26163, 26164, 7, 2, 0, 0, 26164, 26165, 7, 7, 0, 0, 26165, 26166, 7, 6, 0, 0, 26166, 26167, 5, 95, 0, 0, 26167, 26168, 7, 10, 0, 0, 26168, 26169, 7, 9, 0, 0, 26169, 3860, 1, 0, 0, 0, 26170, 26171, 7, 5, 0, 0, 26171, 26172, 7, 18, 0, 0, 26172, 26173, 7, 5, 0, 0, 26173, 26174, 5, 95, 0, 0, 26174, 26175, 7, 2, 0, 0, 26175, 26176, 7, 3, 0, 0, 26176, 26177, 7, 9, 0, 0, 26177, 26178, 7, 6, 0, 0, 26178, 26179, 7, 3, 0, 0, 26179, 26180, 7, 21, 0, 0, 26180, 26181, 7, 6, 0, 0, 26181, 26182, 7, 18, 0, 0, 26182, 26183, 5, 95, 0, 0, 26183, 26184, 7, 9, 0, 0, 26184, 26185, 7, 6, 0, 0, 26185, 26186, 7, 15, 0, 0, 26186, 26187, 7, 4, 0, 0, 26187, 26188, 7, 19, 0, 0, 26188, 3862, 1, 0, 0, 0, 26189, 26190, 7, 5, 0, 0, 26190, 26191, 7, 18, 0, 0, 26191, 26192, 7, 5, 0, 0, 26192, 26193, 5, 95, 0, 0, 26193, 26194, 7, 2, 0, 0, 26194, 26195, 7, 3, 0, 0, 26195, 26196, 7, 9, 0, 0, 26196, 26197, 7, 6, 0, 0, 26197, 26198, 7, 3, 0, 0, 26198, 26199, 7, 21, 0, 0, 26199, 26200, 7, 6, 0, 0, 26200, 26201, 7, 18, 0, 0, 26201, 26202, 5, 95, 0, 0, 26202, 26203, 7, 14, 0, 0, 26203, 26204, 7, 0, 0, 0, 26204, 26205, 7, 25, 0, 0, 26205, 26206, 7, 8, 0, 0, 26206, 26207, 7, 19, 0, 0, 26207, 26208, 7, 10, 0, 0, 26208, 26209, 7, 11, 0, 0, 26209, 26210, 7, 9, 0, 0, 26210, 3864, 1, 0, 0, 0, 26211, 26212, 7, 5, 0, 0, 26212, 26213, 7, 18, 0, 0, 26213, 26214, 7, 5, 0, 0, 26214, 26215, 5, 95, 0, 0, 26215, 26216, 7, 2, 0, 0, 26216, 26217, 7, 3, 0, 0, 26217, 26218, 7, 9, 0, 0, 26218, 26219, 7, 6, 0, 0, 26219, 26220, 7, 3, 0, 0, 26220, 26221, 7, 21, 0, 0, 26221, 26222, 7, 6, 0, 0, 26222, 26223, 7, 18, 0, 0, 26223, 26224, 5, 95, 0, 0, 26224, 26225, 7, 15, 0, 0, 26225, 26226, 7, 0, 0, 0, 26226, 26227, 7, 3, 0, 0, 26227, 26228, 7, 6, 0, 0, 26228, 26229, 7, 7, 0, 0, 26229, 26230, 7, 4, 0, 0, 26230, 3866, 1, 0, 0, 0, 26231, 26232, 7, 5, 0, 0, 26232, 26233, 7, 18, 0, 0, 26233, 26234, 7, 5, 0, 0, 26234, 26235, 5, 95, 0, 0, 26235, 26236, 7, 15, 0, 0, 26236, 26237, 7, 0, 0, 0, 26237, 26238, 7, 3, 0, 0, 26238, 26239, 7, 0, 0, 0, 26239, 26240, 7, 11, 0, 0, 26240, 26241, 7, 11, 0, 0, 26241, 26242, 7, 6, 0, 0, 26242, 26243, 7, 11, 0, 0, 26243, 26244, 5, 95, 0, 0, 26244, 26245, 7, 4, 0, 0, 26245, 26246, 7, 25, 0, 0, 26246, 26247, 7, 7, 0, 0, 26247, 3868, 1, 0, 0, 0, 26248, 26249, 7, 5, 0, 0, 26249, 26250, 7, 18, 0, 0, 26250, 26251, 7, 5, 0, 0, 26251, 26252, 5, 95, 0, 0, 26252, 26253, 7, 15, 0, 0, 26253, 26254, 7, 0, 0, 0, 26254, 26255, 7, 4, 0, 0, 26255, 26256, 7, 19, 0, 0, 26256, 26257, 7, 10, 0, 0, 26257, 26258, 7, 9, 0, 0, 26258, 26259, 5, 95, 0, 0, 26259, 26260, 7, 10, 0, 0, 26260, 26261, 7, 5, 0, 0, 26261, 26262, 5, 95, 0, 0, 26262, 26263, 7, 0, 0, 0, 26263, 26264, 7, 4, 0, 0, 26264, 26265, 7, 4, 0, 0, 26265, 26266, 7, 3, 0, 0, 26266, 3870, 1, 0, 0, 0, 26267, 26268, 7, 5, 0, 0, 26268, 26269, 7, 18, 0, 0, 26269, 26270, 7, 5, 0, 0, 26270, 26271, 5, 95, 0, 0, 26271, 26272, 7, 15, 0, 0, 26272, 26273, 7, 0, 0, 0, 26273, 26274, 7, 4, 0, 0, 26274, 26275, 7, 19, 0, 0, 26275, 26276, 7, 10, 0, 0, 26276, 26277, 7, 9, 0, 0, 26277, 26278, 5, 95, 0, 0, 26278, 26279, 7, 10, 0, 0, 26279, 26280, 7, 5, 0, 0, 26280, 26281, 5, 95, 0, 0, 26281, 26282, 7, 7, 0, 0, 26282, 26283, 7, 14, 0, 0, 26283, 26284, 7, 5, 0, 0, 26284, 26285, 7, 15, 0, 0, 26285, 26286, 7, 8, 0, 0, 26286, 3872, 1, 0, 0, 0, 26287, 26288, 7, 5, 0, 0, 26288, 26289, 7, 18, 0, 0, 26289, 26290, 7, 5, 0, 0, 26290, 26291, 5, 95, 0, 0, 26291, 26292, 7, 15, 0, 0, 26292, 26293, 7, 0, 0, 0, 26293, 26294, 7, 4, 0, 0, 26294, 26295, 7, 19, 0, 0, 26295, 26296, 7, 10, 0, 0, 26296, 26297, 7, 9, 0, 0, 26297, 26298, 5, 95, 0, 0, 26298, 26299, 7, 11, 0, 0, 26299, 26300, 7, 0, 0, 0, 26300, 26301, 7, 5, 0, 0, 26301, 26302, 7, 4, 0, 0, 26302, 26303, 7, 7, 0, 0, 26303, 26304, 7, 0, 0, 0, 26304, 26305, 7, 14, 0, 0, 26305, 26306, 7, 6, 0, 0, 26306, 3874, 1, 0, 0, 0, 26307, 26308, 7, 5, 0, 0, 26308, 26309, 7, 18, 0, 0, 26309, 26310, 7, 5, 0, 0, 26310, 26311, 5, 95, 0, 0, 26311, 26312, 7, 15, 0, 0, 26312, 26313, 7, 0, 0, 0, 26313, 26314, 7, 4, 0, 0, 26314, 26315, 7, 19, 0, 0, 26315, 26316, 7, 10, 0, 0, 26316, 26317, 7, 9, 0, 0, 26317, 26318, 5, 95, 0, 0, 26318, 26319, 7, 11, 0, 0, 26319, 26320, 7, 0, 0, 0, 26320, 26321, 7, 5, 0, 0, 26321, 26322, 7, 4, 0, 0, 26322, 26323, 7, 7, 0, 0, 26323, 26324, 7, 14, 0, 0, 26324, 26325, 7, 5, 0, 0, 26325, 26326, 7, 15, 0, 0, 26326, 26327, 7, 8, 0, 0, 26327, 3876, 1, 0, 0, 0, 26328, 26329, 7, 5, 0, 0, 26329, 26330, 7, 18, 0, 0, 26330, 26331, 7, 5, 0, 0, 26331, 26332, 5, 95, 0, 0, 26332, 26333, 7, 15, 0, 0, 26333, 26334, 7, 0, 0, 0, 26334, 26335, 7, 4, 0, 0, 26335, 26336, 7, 19, 0, 0, 26336, 26337, 5, 95, 0, 0, 26337, 26338, 7, 3, 0, 0, 26338, 26339, 7, 6, 0, 0, 26339, 26340, 7, 13, 0, 0, 26340, 26341, 7, 6, 0, 0, 26341, 26342, 7, 3, 0, 0, 26342, 26343, 7, 5, 0, 0, 26343, 26344, 7, 6, 0, 0, 26344, 3878, 1, 0, 0, 0, 26345, 26346, 7, 5, 0, 0, 26346, 26347, 7, 18, 0, 0, 26347, 26348, 7, 5, 0, 0, 26348, 26349, 5, 95, 0, 0, 26349, 26350, 7, 15, 0, 0, 26350, 26351, 7, 25, 0, 0, 26351, 26352, 7, 24, 0, 0, 26352, 26353, 7, 6, 0, 0, 26353, 26354, 7, 25, 0, 0, 26354, 26355, 7, 4, 0, 0, 26355, 26356, 7, 3, 0, 0, 26356, 26357, 7, 0, 0, 0, 26357, 26358, 7, 8, 0, 0, 26358, 26359, 7, 4, 0, 0, 26359, 3880, 1, 0, 0, 0, 26360, 26361, 7, 5, 0, 0, 26361, 26362, 7, 18, 0, 0, 26362, 26363, 7, 5, 0, 0, 26363, 26364, 5, 95, 0, 0, 26364, 26365, 7, 3, 0, 0, 26365, 26366, 7, 0, 0, 0, 26366, 26367, 7, 22, 0, 0, 26367, 26368, 5, 95, 0, 0, 26368, 26369, 7, 4, 0, 0, 26369, 26370, 7, 2, 0, 0, 26370, 26371, 5, 95, 0, 0, 26371, 26372, 7, 25, 0, 0, 26372, 26373, 7, 5, 0, 0, 26373, 26374, 7, 10, 0, 0, 26374, 26375, 7, 9, 0, 0, 26375, 3882, 1, 0, 0, 0, 26376, 26377, 7, 5, 0, 0, 26377, 26378, 7, 18, 0, 0, 26378, 26379, 7, 5, 0, 0, 26379, 26380, 5, 95, 0, 0, 26380, 26381, 7, 3, 0, 0, 26381, 26382, 7, 10, 0, 0, 26382, 26383, 7, 9, 0, 0, 26383, 26384, 5, 95, 0, 0, 26384, 26385, 7, 2, 0, 0, 26385, 26386, 7, 3, 0, 0, 26386, 26387, 7, 9, 0, 0, 26387, 26388, 7, 6, 0, 0, 26388, 26389, 7, 3, 0, 0, 26389, 3884, 1, 0, 0, 0, 26390, 26391, 7, 5, 0, 0, 26391, 26392, 7, 18, 0, 0, 26392, 26393, 7, 5, 0, 0, 26393, 26394, 5, 95, 0, 0, 26394, 26395, 7, 3, 0, 0, 26395, 26396, 7, 2, 0, 0, 26396, 26397, 7, 22, 0, 0, 26397, 26398, 5, 95, 0, 0, 26398, 26399, 7, 9, 0, 0, 26399, 26400, 7, 6, 0, 0, 26400, 26401, 7, 11, 0, 0, 26401, 26402, 7, 4, 0, 0, 26402, 26403, 7, 0, 0, 0, 26403, 3886, 1, 0, 0, 0, 26404, 26405, 7, 5, 0, 0, 26405, 26406, 7, 18, 0, 0, 26406, 26407, 7, 5, 0, 0, 26407, 26408, 5, 95, 0, 0, 26408, 26409, 7, 5, 0, 0, 26409, 26410, 7, 8, 0, 0, 26410, 26411, 5, 95, 0, 0, 26411, 26412, 5, 50, 0, 0, 26412, 26413, 5, 95, 0, 0, 26413, 26414, 7, 25, 0, 0, 26414, 26415, 7, 14, 0, 0, 26415, 26416, 7, 11, 0, 0, 26416, 26417, 7, 4, 0, 0, 26417, 3888, 1, 0, 0, 0, 26418, 26419, 7, 5, 0, 0, 26419, 26420, 7, 18, 0, 0, 26420, 26421, 7, 5, 0, 0, 26421, 26422, 5, 95, 0, 0, 26422, 26423, 7, 5, 0, 0, 26423, 26424, 7, 18, 0, 0, 26424, 26425, 7, 7, 0, 0, 26425, 26426, 7, 3, 0, 0, 26426, 26427, 7, 8, 0, 0, 26427, 26428, 7, 10, 0, 0, 26428, 26429, 7, 3, 0, 0, 26429, 26430, 7, 6, 0, 0, 26430, 26431, 7, 9, 0, 0, 26431, 26432, 7, 2, 0, 0, 26432, 3890, 1, 0, 0, 0, 26433, 26434, 7, 5, 0, 0, 26434, 26435, 7, 18, 0, 0, 26435, 26436, 7, 5, 0, 0, 26436, 26437, 7, 4, 0, 0, 26437, 26438, 7, 6, 0, 0, 26438, 26439, 7, 14, 0, 0, 26439, 26440, 5, 95, 0, 0, 26440, 26441, 7, 9, 0, 0, 26441, 26442, 7, 6, 0, 0, 26442, 26443, 7, 16, 0, 0, 26443, 26444, 7, 10, 0, 0, 26444, 26445, 7, 7, 0, 0, 26445, 26446, 7, 6, 0, 0, 26446, 26447, 7, 9, 0, 0, 26447, 3892, 1, 0, 0, 0, 26448, 26449, 7, 5, 0, 0, 26449, 26450, 7, 18, 0, 0, 26450, 26451, 7, 5, 0, 0, 26451, 26452, 7, 4, 0, 0, 26452, 26453, 7, 6, 0, 0, 26453, 26454, 7, 14, 0, 0, 26454, 3894, 1, 0, 0, 0, 26455, 26456, 7, 5, 0, 0, 26456, 26457, 7, 18, 0, 0, 26457, 26458, 7, 5, 0, 0, 26458, 26459, 7, 4, 0, 0, 26459, 26460, 7, 10, 0, 0, 26460, 26461, 7, 14, 0, 0, 26461, 26462, 7, 6, 0, 0, 26462, 26463, 7, 5, 0, 0, 26463, 26464, 7, 4, 0, 0, 26464, 26465, 7, 0, 0, 0, 26465, 26466, 7, 14, 0, 0, 26466, 26467, 7, 15, 0, 0, 26467, 3896, 1, 0, 0, 0, 26468, 26469, 7, 5, 0, 0, 26469, 26470, 7, 18, 0, 0, 26470, 26471, 7, 5, 0, 0, 26471, 26472, 5, 95, 0, 0, 26472, 26473, 7, 4, 0, 0, 26473, 26474, 7, 18, 0, 0, 26474, 26475, 7, 15, 0, 0, 26475, 26476, 7, 6, 0, 0, 26476, 26477, 7, 10, 0, 0, 26477, 26478, 7, 9, 0, 0, 26478, 3898, 1, 0, 0, 0, 26479, 26480, 7, 5, 0, 0, 26480, 26481, 7, 18, 0, 0, 26481, 26482, 7, 5, 0, 0, 26482, 26483, 5, 95, 0, 0, 26483, 26484, 7, 12, 0, 0, 26484, 26485, 7, 14, 0, 0, 26485, 26486, 7, 0, 0, 0, 26486, 26487, 7, 21, 0, 0, 26487, 26488, 7, 6, 0, 0, 26488, 26489, 7, 25, 0, 0, 26489, 26490, 7, 14, 0, 0, 26490, 26491, 7, 11, 0, 0, 26491, 3900, 1, 0, 0, 0, 26492, 26493, 7, 5, 0, 0, 26493, 26494, 7, 18, 0, 0, 26494, 26495, 7, 5, 0, 0, 26495, 26496, 5, 95, 0, 0, 26496, 26497, 7, 25, 0, 0, 26497, 26498, 7, 14, 0, 0, 26498, 26499, 7, 11, 0, 0, 26499, 26500, 7, 0, 0, 0, 26500, 26501, 7, 7, 0, 0, 26501, 26502, 7, 0, 0, 0, 26502, 26503, 7, 11, 0, 0, 26503, 26504, 7, 18, 0, 0, 26504, 26505, 7, 23, 0, 0, 26505, 26506, 7, 6, 0, 0, 26506, 3902, 1, 0, 0, 0, 26507, 26508, 7, 5, 0, 0, 26508, 26509, 7, 18, 0, 0, 26509, 26510, 7, 5, 0, 0, 26510, 26511, 5, 95, 0, 0, 26511, 26512, 7, 25, 0, 0, 26512, 26513, 7, 14, 0, 0, 26513, 26514, 7, 11, 0, 0, 26514, 26515, 7, 8, 0, 0, 26515, 26516, 7, 2, 0, 0, 26516, 26517, 7, 7, 0, 0, 26517, 26518, 7, 4, 0, 0, 26518, 26519, 7, 0, 0, 0, 26519, 26520, 7, 10, 0, 0, 26520, 26521, 7, 7, 0, 0, 26521, 26522, 7, 5, 0, 0, 26522, 3904, 1, 0, 0, 0, 26523, 26524, 7, 5, 0, 0, 26524, 26525, 7, 18, 0, 0, 26525, 26526, 7, 5, 0, 0, 26526, 26527, 5, 95, 0, 0, 26527, 26528, 7, 25, 0, 0, 26528, 26529, 7, 14, 0, 0, 26529, 26530, 7, 11, 0, 0, 26530, 26531, 7, 8, 0, 0, 26531, 26532, 7, 2, 0, 0, 26532, 26533, 7, 7, 0, 0, 26533, 26534, 7, 13, 0, 0, 26534, 3906, 1, 0, 0, 0, 26535, 26536, 7, 5, 0, 0, 26536, 26537, 7, 18, 0, 0, 26537, 26538, 7, 5, 0, 0, 26538, 26539, 5, 95, 0, 0, 26539, 26540, 7, 25, 0, 0, 26540, 26541, 7, 14, 0, 0, 26541, 26542, 7, 11, 0, 0, 26542, 26543, 7, 6, 0, 0, 26543, 26544, 7, 25, 0, 0, 26544, 26545, 7, 7, 0, 0, 26545, 26546, 7, 5, 0, 0, 26546, 26547, 7, 12, 0, 0, 26547, 26548, 7, 3, 0, 0, 26548, 26549, 7, 10, 0, 0, 26549, 3908, 1, 0, 0, 0, 26550, 26551, 7, 5, 0, 0, 26551, 26552, 7, 18, 0, 0, 26552, 26553, 7, 5, 0, 0, 26553, 26554, 5, 95, 0, 0, 26554, 26555, 7, 25, 0, 0, 26555, 26556, 7, 14, 0, 0, 26556, 26557, 7, 11, 0, 0, 26557, 26558, 7, 17, 0, 0, 26558, 26559, 7, 6, 0, 0, 26559, 26560, 7, 7, 0, 0, 26560, 3910, 1, 0, 0, 0, 26561, 26562, 7, 5, 0, 0, 26562, 26563, 7, 18, 0, 0, 26563, 26564, 7, 5, 0, 0, 26564, 26565, 5, 95, 0, 0, 26565, 26566, 7, 25, 0, 0, 26566, 26567, 7, 14, 0, 0, 26567, 26568, 7, 11, 0, 0, 26568, 26569, 7, 10, 0, 0, 26569, 26570, 5, 95, 0, 0, 26570, 26571, 7, 11, 0, 0, 26571, 26572, 7, 2, 0, 0, 26572, 26573, 7, 8, 0, 0, 26573, 26574, 5, 95, 0, 0, 26574, 26575, 7, 10, 0, 0, 26575, 26576, 7, 5, 0, 0, 26576, 26577, 7, 7, 0, 0, 26577, 26578, 7, 2, 0, 0, 26578, 26579, 7, 9, 0, 0, 26579, 26580, 7, 6, 0, 0, 26580, 3912, 1, 0, 0, 0, 26581, 26582, 7, 5, 0, 0, 26582, 26583, 7, 18, 0, 0, 26583, 26584, 7, 5, 0, 0, 26584, 26585, 5, 95, 0, 0, 26585, 26586, 7, 25, 0, 0, 26586, 26587, 7, 14, 0, 0, 26587, 26588, 7, 11, 0, 0, 26588, 26589, 7, 10, 0, 0, 26589, 26590, 5, 95, 0, 0, 26590, 26591, 7, 11, 0, 0, 26591, 26592, 7, 2, 0, 0, 26592, 26593, 7, 8, 0, 0, 26593, 26594, 5, 95, 0, 0, 26594, 26595, 7, 10, 0, 0, 26595, 26596, 7, 5, 0, 0, 26596, 26597, 7, 4, 0, 0, 26597, 26598, 7, 6, 0, 0, 26598, 26599, 7, 25, 0, 0, 26599, 26600, 7, 4, 0, 0, 26600, 3914, 1, 0, 0, 0, 26601, 26602, 7, 5, 0, 0, 26602, 26603, 7, 18, 0, 0, 26603, 26604, 7, 5, 0, 0, 26604, 26605, 5, 95, 0, 0, 26605, 26606, 7, 25, 0, 0, 26606, 26607, 7, 14, 0, 0, 26607, 26608, 7, 11, 0, 0, 26608, 26609, 7, 10, 0, 0, 26609, 26610, 7, 7, 0, 0, 26610, 26611, 7, 5, 0, 0, 26611, 26612, 7, 4, 0, 0, 26612, 26613, 7, 3, 0, 0, 26613, 3916, 1, 0, 0, 0, 26614, 26615, 7, 5, 0, 0, 26615, 26616, 7, 18, 0, 0, 26616, 26617, 7, 5, 0, 0, 26617, 26618, 5, 95, 0, 0, 26618, 26619, 7, 25, 0, 0, 26619, 26620, 7, 14, 0, 0, 26620, 26621, 7, 11, 0, 0, 26621, 26622, 7, 11, 0, 0, 26622, 26623, 7, 2, 0, 0, 26623, 26624, 7, 8, 0, 0, 26624, 26625, 7, 0, 0, 0, 26625, 26626, 7, 4, 0, 0, 26626, 26627, 7, 2, 0, 0, 26627, 26628, 7, 3, 0, 0, 26628, 26629, 5, 95, 0, 0, 26629, 26630, 7, 17, 0, 0, 26630, 26631, 7, 6, 0, 0, 26631, 26632, 7, 4, 0, 0, 26632, 26633, 7, 5, 0, 0, 26633, 26634, 7, 13, 0, 0, 26634, 26635, 7, 0, 0, 0, 26635, 26636, 7, 11, 0, 0, 26636, 3918, 1, 0, 0, 0, 26637, 26638, 7, 5, 0, 0, 26638, 26639, 7, 18, 0, 0, 26639, 26640, 7, 5, 0, 0, 26640, 26641, 5, 95, 0, 0, 26641, 26642, 7, 25, 0, 0, 26642, 26643, 7, 14, 0, 0, 26643, 26644, 7, 11, 0, 0, 26644, 26645, 7, 7, 0, 0, 26645, 26646, 7, 2, 0, 0, 26646, 26647, 7, 9, 0, 0, 26647, 26648, 7, 6, 0, 0, 26648, 26649, 7, 10, 0, 0, 26649, 26650, 7, 9, 0, 0, 26650, 26651, 5, 95, 0, 0, 26651, 26652, 7, 17, 0, 0, 26652, 26653, 7, 6, 0, 0, 26653, 26654, 7, 4, 0, 0, 26654, 26655, 7, 8, 0, 0, 26655, 26656, 7, 10, 0, 0, 26656, 26657, 7, 9, 0, 0, 26657, 3920, 1, 0, 0, 0, 26658, 26659, 7, 5, 0, 0, 26659, 26660, 7, 18, 0, 0, 26660, 26661, 7, 5, 0, 0, 26661, 26662, 5, 95, 0, 0, 26662, 26663, 7, 25, 0, 0, 26663, 26664, 7, 14, 0, 0, 26664, 26665, 7, 11, 0, 0, 26665, 26666, 7, 7, 0, 0, 26666, 26667, 7, 2, 0, 0, 26667, 26668, 7, 9, 0, 0, 26668, 26669, 7, 6, 0, 0, 26669, 26670, 7, 10, 0, 0, 26670, 26671, 7, 9, 0, 0, 26671, 26672, 5, 95, 0, 0, 26672, 26673, 7, 17, 0, 0, 26673, 26674, 7, 6, 0, 0, 26674, 26675, 7, 4, 0, 0, 26675, 26676, 7, 11, 0, 0, 26676, 26677, 7, 2, 0, 0, 26677, 26678, 7, 8, 0, 0, 26678, 26679, 7, 0, 0, 0, 26679, 26680, 7, 4, 0, 0, 26680, 26681, 7, 2, 0, 0, 26681, 26682, 7, 3, 0, 0, 26682, 3922, 1, 0, 0, 0, 26683, 26684, 7, 5, 0, 0, 26684, 26685, 7, 18, 0, 0, 26685, 26686, 7, 5, 0, 0, 26686, 26687, 5, 95, 0, 0, 26687, 26688, 7, 25, 0, 0, 26688, 26689, 7, 14, 0, 0, 26689, 26690, 7, 11, 0, 0, 26690, 26691, 7, 7, 0, 0, 26691, 26692, 7, 2, 0, 0, 26692, 26693, 7, 9, 0, 0, 26693, 26694, 7, 6, 0, 0, 26694, 26695, 7, 10, 0, 0, 26695, 26696, 7, 9, 0, 0, 26696, 26697, 5, 95, 0, 0, 26697, 26698, 7, 17, 0, 0, 26698, 26699, 7, 6, 0, 0, 26699, 26700, 7, 4, 0, 0, 26700, 26701, 7, 2, 0, 0, 26701, 26702, 7, 21, 0, 0, 26702, 26703, 7, 6, 0, 0, 26703, 26704, 7, 18, 0, 0, 26704, 3924, 1, 0, 0, 0, 26705, 26706, 7, 5, 0, 0, 26706, 26707, 7, 18, 0, 0, 26707, 26708, 7, 5, 0, 0, 26708, 26709, 5, 95, 0, 0, 26709, 26710, 7, 25, 0, 0, 26710, 26711, 7, 14, 0, 0, 26711, 26712, 7, 11, 0, 0, 26712, 26713, 7, 7, 0, 0, 26713, 26714, 7, 2, 0, 0, 26714, 26715, 7, 9, 0, 0, 26715, 26716, 7, 6, 0, 0, 26716, 26717, 7, 10, 0, 0, 26717, 26718, 7, 9, 0, 0, 26718, 26719, 5, 95, 0, 0, 26719, 26720, 7, 17, 0, 0, 26720, 26721, 7, 6, 0, 0, 26721, 26722, 7, 4, 0, 0, 26722, 26723, 7, 15, 0, 0, 26723, 26724, 7, 0, 0, 0, 26724, 26725, 7, 4, 0, 0, 26725, 26726, 7, 19, 0, 0, 26726, 26727, 7, 10, 0, 0, 26727, 26728, 7, 9, 0, 0, 26728, 3926, 1, 0, 0, 0, 26729, 26730, 7, 5, 0, 0, 26730, 26731, 7, 18, 0, 0, 26731, 26732, 7, 5, 0, 0, 26732, 26733, 5, 95, 0, 0, 26733, 26734, 7, 25, 0, 0, 26734, 26735, 7, 14, 0, 0, 26735, 26736, 7, 11, 0, 0, 26736, 26737, 7, 7, 0, 0, 26737, 26738, 7, 2, 0, 0, 26738, 26739, 7, 9, 0, 0, 26739, 26740, 7, 6, 0, 0, 26740, 26741, 7, 10, 0, 0, 26741, 26742, 7, 9, 0, 0, 26742, 26743, 5, 95, 0, 0, 26743, 26744, 7, 17, 0, 0, 26744, 26745, 7, 6, 0, 0, 26745, 26746, 7, 4, 0, 0, 26746, 26747, 7, 15, 0, 0, 26747, 26748, 7, 4, 0, 0, 26748, 26749, 7, 3, 0, 0, 26749, 26750, 7, 10, 0, 0, 26750, 26751, 7, 9, 0, 0, 26751, 3928, 1, 0, 0, 0, 26752, 26753, 7, 5, 0, 0, 26753, 26754, 7, 18, 0, 0, 26754, 26755, 7, 5, 0, 0, 26755, 26756, 5, 95, 0, 0, 26756, 26757, 7, 25, 0, 0, 26757, 26758, 7, 14, 0, 0, 26758, 26759, 7, 11, 0, 0, 26759, 26760, 7, 7, 0, 0, 26760, 26761, 7, 2, 0, 0, 26761, 26762, 7, 9, 0, 0, 26762, 26763, 7, 6, 0, 0, 26763, 26764, 7, 10, 0, 0, 26764, 26765, 7, 9, 0, 0, 26765, 26766, 5, 95, 0, 0, 26766, 26767, 7, 17, 0, 0, 26767, 26768, 7, 6, 0, 0, 26768, 26769, 7, 4, 0, 0, 26769, 26770, 7, 3, 0, 0, 26770, 26771, 7, 10, 0, 0, 26771, 26772, 7, 9, 0, 0, 26772, 3930, 1, 0, 0, 0, 26773, 26774, 7, 5, 0, 0, 26774, 26775, 7, 18, 0, 0, 26775, 26776, 7, 5, 0, 0, 26776, 26777, 5, 95, 0, 0, 26777, 26778, 7, 25, 0, 0, 26778, 26779, 7, 14, 0, 0, 26779, 26780, 7, 11, 0, 0, 26780, 26781, 7, 7, 0, 0, 26781, 26782, 7, 2, 0, 0, 26782, 26783, 7, 9, 0, 0, 26783, 26784, 7, 6, 0, 0, 26784, 26785, 7, 10, 0, 0, 26785, 26786, 7, 9, 0, 0, 26786, 26787, 5, 95, 0, 0, 26787, 26788, 7, 17, 0, 0, 26788, 26789, 7, 6, 0, 0, 26789, 26790, 7, 4, 0, 0, 26790, 26791, 7, 5, 0, 0, 26791, 26792, 7, 13, 0, 0, 26792, 26793, 7, 0, 0, 0, 26793, 26794, 7, 11, 0, 0, 26794, 3932, 1, 0, 0, 0, 26795, 26796, 7, 5, 0, 0, 26796, 26797, 7, 18, 0, 0, 26797, 26798, 7, 5, 0, 0, 26798, 26799, 5, 95, 0, 0, 26799, 26800, 7, 25, 0, 0, 26800, 26801, 7, 14, 0, 0, 26801, 26802, 7, 11, 0, 0, 26802, 26803, 7, 7, 0, 0, 26803, 26804, 7, 2, 0, 0, 26804, 26805, 7, 9, 0, 0, 26805, 26806, 7, 6, 0, 0, 26806, 26807, 7, 10, 0, 0, 26807, 26808, 7, 9, 0, 0, 26808, 26809, 5, 95, 0, 0, 26809, 26810, 7, 17, 0, 0, 26810, 26811, 7, 6, 0, 0, 26811, 26812, 7, 4, 0, 0, 26812, 26813, 7, 4, 0, 0, 26813, 26814, 7, 10, 0, 0, 26814, 26815, 7, 9, 0, 0, 26815, 3934, 1, 0, 0, 0, 26816, 26817, 7, 5, 0, 0, 26817, 26818, 7, 18, 0, 0, 26818, 26819, 7, 5, 0, 0, 26819, 26820, 5, 95, 0, 0, 26820, 26821, 7, 25, 0, 0, 26821, 26822, 7, 14, 0, 0, 26822, 26823, 7, 11, 0, 0, 26823, 26824, 7, 7, 0, 0, 26824, 26825, 7, 2, 0, 0, 26825, 26826, 7, 9, 0, 0, 26826, 26827, 7, 6, 0, 0, 26827, 26828, 7, 10, 0, 0, 26828, 26829, 7, 9, 0, 0, 26829, 3936, 1, 0, 0, 0, 26830, 26831, 7, 5, 0, 0, 26831, 26832, 7, 18, 0, 0, 26832, 26833, 7, 5, 0, 0, 26833, 26834, 5, 95, 0, 0, 26834, 26835, 7, 25, 0, 0, 26835, 26836, 7, 14, 0, 0, 26836, 26837, 7, 11, 0, 0, 26837, 26838, 7, 4, 0, 0, 26838, 26839, 5, 95, 0, 0, 26839, 26840, 5, 50, 0, 0, 26840, 26841, 5, 95, 0, 0, 26841, 26842, 7, 5, 0, 0, 26842, 26843, 7, 8, 0, 0, 26843, 3938, 1, 0, 0, 0, 26844, 26845, 7, 5, 0, 0, 26845, 26846, 7, 18, 0, 0, 26846, 26847, 7, 5, 0, 0, 26847, 26848, 5, 95, 0, 0, 26848, 26849, 7, 25, 0, 0, 26849, 26850, 7, 14, 0, 0, 26850, 26851, 7, 11, 0, 0, 26851, 26852, 7, 4, 0, 0, 26852, 26853, 7, 3, 0, 0, 26853, 26854, 7, 0, 0, 0, 26854, 26855, 7, 7, 0, 0, 26855, 26856, 7, 5, 0, 0, 26856, 26857, 7, 11, 0, 0, 26857, 26858, 7, 0, 0, 0, 26858, 26859, 7, 4, 0, 0, 26859, 26860, 7, 6, 0, 0, 26860, 3940, 1, 0, 0, 0, 26861, 26862, 7, 5, 0, 0, 26862, 26863, 7, 18, 0, 0, 26863, 26864, 7, 5, 0, 0, 26864, 26865, 5, 95, 0, 0, 26865, 26866, 7, 25, 0, 0, 26866, 26867, 7, 14, 0, 0, 26867, 26868, 7, 11, 0, 0, 26868, 26869, 7, 4, 0, 0, 26869, 26870, 7, 18, 0, 0, 26870, 26871, 7, 15, 0, 0, 26871, 26872, 7, 6, 0, 0, 26872, 26873, 5, 50, 0, 0, 26873, 26874, 7, 5, 0, 0, 26874, 26875, 7, 24, 0, 0, 26875, 26876, 7, 11, 0, 0, 26876, 3942, 1, 0, 0, 0, 26877, 26878, 7, 5, 0, 0, 26878, 26879, 7, 18, 0, 0, 26879, 26880, 7, 5, 0, 0, 26880, 26881, 5, 95, 0, 0, 26881, 26882, 7, 25, 0, 0, 26882, 26883, 7, 24, 0, 0, 26883, 26884, 5, 95, 0, 0, 26884, 26885, 7, 0, 0, 0, 26885, 26886, 7, 5, 0, 0, 26886, 26887, 7, 24, 0, 0, 26887, 26888, 7, 11, 0, 0, 26888, 26889, 7, 8, 0, 0, 26889, 26890, 7, 7, 0, 0, 26890, 26891, 7, 13, 0, 0, 26891, 3944, 1, 0, 0, 0, 26892, 26893, 7, 5, 0, 0, 26893, 26894, 7, 18, 0, 0, 26894, 26895, 7, 5, 0, 0, 26895, 26896, 5, 95, 0, 0, 26896, 26897, 7, 25, 0, 0, 26897, 26898, 7, 24, 0, 0, 26898, 26899, 5, 95, 0, 0, 26899, 26900, 7, 0, 0, 0, 26900, 26901, 7, 4, 0, 0, 26901, 26902, 7, 2, 0, 0, 26902, 26903, 7, 14, 0, 0, 26903, 26904, 7, 8, 0, 0, 26904, 26905, 7, 7, 0, 0, 26905, 26906, 7, 13, 0, 0, 26906, 26907, 7, 8, 0, 0, 26907, 26908, 7, 19, 0, 0, 26908, 26909, 7, 21, 0, 0, 26909, 3946, 1, 0, 0, 0, 26910, 26911, 7, 5, 0, 0, 26911, 26912, 7, 18, 0, 0, 26912, 26913, 7, 5, 0, 0, 26913, 26914, 5, 95, 0, 0, 26914, 26915, 7, 25, 0, 0, 26915, 26916, 7, 24, 0, 0, 26916, 26917, 7, 1, 0, 0, 26917, 26918, 7, 0, 0, 0, 26918, 26919, 7, 5, 0, 0, 26919, 26920, 7, 6, 0, 0, 26920, 26921, 7, 12, 0, 0, 26921, 26922, 7, 3, 0, 0, 26922, 26923, 7, 10, 0, 0, 26923, 3948, 1, 0, 0, 0, 26924, 26925, 7, 5, 0, 0, 26925, 26926, 7, 18, 0, 0, 26926, 26927, 7, 5, 0, 0, 26927, 26928, 5, 95, 0, 0, 26928, 26929, 7, 25, 0, 0, 26929, 26930, 7, 24, 0, 0, 26930, 26931, 7, 8, 0, 0, 26931, 26932, 7, 0, 0, 0, 26932, 26933, 7, 5, 0, 0, 26933, 26934, 7, 4, 0, 0, 26934, 26935, 7, 0, 0, 0, 26935, 26936, 7, 1, 0, 0, 26936, 26937, 7, 11, 0, 0, 26937, 26938, 7, 6, 0, 0, 26938, 26939, 7, 6, 0, 0, 26939, 26940, 7, 3, 0, 0, 26940, 26941, 7, 3, 0, 0, 26941, 26942, 7, 19, 0, 0, 26942, 3950, 1, 0, 0, 0, 26943, 26944, 7, 5, 0, 0, 26944, 26945, 7, 18, 0, 0, 26945, 26946, 7, 5, 0, 0, 26946, 26947, 5, 95, 0, 0, 26947, 26948, 7, 25, 0, 0, 26948, 26949, 7, 24, 0, 0, 26949, 26950, 7, 8, 0, 0, 26950, 26951, 7, 2, 0, 0, 26951, 26952, 7, 9, 0, 0, 26952, 26953, 7, 6, 0, 0, 26953, 26954, 7, 15, 0, 0, 26954, 26955, 5, 50, 0, 0, 26955, 26956, 7, 5, 0, 0, 26956, 26957, 7, 4, 0, 0, 26957, 26958, 7, 3, 0, 0, 26958, 3952, 1, 0, 0, 0, 26959, 26960, 7, 5, 0, 0, 26960, 26961, 7, 18, 0, 0, 26961, 26962, 7, 5, 0, 0, 26962, 26963, 5, 95, 0, 0, 26963, 26964, 7, 25, 0, 0, 26964, 26965, 7, 24, 0, 0, 26965, 26966, 7, 8, 0, 0, 26966, 26967, 7, 2, 0, 0, 26967, 26968, 7, 9, 0, 0, 26968, 26969, 7, 6, 0, 0, 26969, 26970, 7, 15, 0, 0, 26970, 26971, 7, 6, 0, 0, 26971, 26972, 7, 24, 0, 0, 26972, 3954, 1, 0, 0, 0, 26973, 26974, 7, 5, 0, 0, 26974, 26975, 7, 18, 0, 0, 26975, 26976, 7, 5, 0, 0, 26976, 26977, 5, 95, 0, 0, 26977, 26978, 7, 25, 0, 0, 26978, 26979, 7, 24, 0, 0, 26979, 26980, 7, 8, 0, 0, 26980, 26981, 7, 2, 0, 0, 26981, 26982, 7, 7, 0, 0, 26982, 26983, 5, 50, 0, 0, 26983, 26984, 7, 5, 0, 0, 26984, 26985, 7, 6, 0, 0, 26985, 26986, 7, 24, 0, 0, 26986, 3956, 1, 0, 0, 0, 26987, 26988, 7, 5, 0, 0, 26988, 26989, 7, 18, 0, 0, 26989, 26990, 7, 5, 0, 0, 26990, 26991, 5, 95, 0, 0, 26991, 26992, 7, 25, 0, 0, 26992, 26993, 7, 24, 0, 0, 26993, 26994, 7, 8, 0, 0, 26994, 26995, 7, 2, 0, 0, 26995, 26996, 7, 7, 0, 0, 26996, 26997, 7, 8, 0, 0, 26997, 26998, 7, 0, 0, 0, 26998, 26999, 7, 4, 0, 0, 26999, 3958, 1, 0, 0, 0, 27000, 27001, 7, 5, 0, 0, 27001, 27002, 7, 18, 0, 0, 27002, 27003, 7, 5, 0, 0, 27003, 27004, 5, 95, 0, 0, 27004, 27005, 7, 25, 0, 0, 27005, 27006, 7, 24, 0, 0, 27006, 27007, 7, 9, 0, 0, 27007, 27008, 7, 6, 0, 0, 27008, 27009, 7, 11, 0, 0, 27009, 27010, 7, 6, 0, 0, 27010, 27011, 7, 4, 0, 0, 27011, 27012, 7, 6, 0, 0, 27012, 3960, 1, 0, 0, 0, 27013, 27014, 7, 5, 0, 0, 27014, 27015, 7, 18, 0, 0, 27015, 27016, 7, 5, 0, 0, 27016, 27017, 5, 95, 0, 0, 27017, 27018, 7, 25, 0, 0, 27018, 27019, 7, 24, 0, 0, 27019, 27020, 7, 9, 0, 0, 27020, 27021, 7, 16, 0, 0, 27021, 27022, 7, 11, 0, 0, 27022, 27023, 7, 4, 0, 0, 27023, 27024, 7, 8, 0, 0, 27024, 27025, 7, 2, 0, 0, 27025, 27026, 7, 11, 0, 0, 27026, 27027, 7, 0, 0, 0, 27027, 27028, 7, 4, 0, 0, 27028, 27029, 7, 10, 0, 0, 27029, 27030, 7, 2, 0, 0, 27030, 27031, 7, 7, 0, 0, 27031, 3962, 1, 0, 0, 0, 27032, 27033, 7, 5, 0, 0, 27033, 27034, 7, 18, 0, 0, 27034, 27035, 7, 5, 0, 0, 27035, 27036, 5, 95, 0, 0, 27036, 27037, 7, 25, 0, 0, 27037, 27038, 7, 24, 0, 0, 27038, 27039, 7, 9, 0, 0, 27039, 27040, 7, 2, 0, 0, 27040, 27041, 7, 8, 0, 0, 27041, 3964, 1, 0, 0, 0, 27042, 27043, 7, 5, 0, 0, 27043, 27044, 7, 18, 0, 0, 27044, 27045, 7, 5, 0, 0, 27045, 27046, 5, 95, 0, 0, 27046, 27047, 7, 25, 0, 0, 27047, 27048, 7, 24, 0, 0, 27048, 27049, 7, 9, 0, 0, 27049, 27050, 7, 2, 0, 0, 27050, 27051, 7, 8, 0, 0, 27051, 27052, 7, 12, 0, 0, 27052, 27053, 7, 3, 0, 0, 27053, 27054, 7, 10, 0, 0, 27054, 3966, 1, 0, 0, 0, 27055, 27056, 7, 5, 0, 0, 27056, 27057, 7, 18, 0, 0, 27057, 27058, 7, 5, 0, 0, 27058, 27059, 5, 95, 0, 0, 27059, 27060, 7, 25, 0, 0, 27060, 27061, 7, 24, 0, 0, 27061, 27062, 7, 9, 0, 0, 27062, 27063, 7, 12, 0, 0, 27063, 27064, 7, 3, 0, 0, 27064, 27065, 7, 9, 0, 0, 27065, 27066, 7, 10, 0, 0, 27066, 27067, 7, 13, 0, 0, 27067, 3968, 1, 0, 0, 0, 27068, 27069, 7, 5, 0, 0, 27069, 27070, 7, 18, 0, 0, 27070, 27071, 7, 5, 0, 0, 27071, 27072, 5, 95, 0, 0, 27072, 27073, 7, 25, 0, 0, 27073, 27074, 7, 24, 0, 0, 27074, 27075, 7, 6, 0, 0, 27075, 27076, 7, 9, 0, 0, 27076, 27077, 5, 52, 0, 0, 27077, 27078, 7, 12, 0, 0, 27078, 27079, 7, 3, 0, 0, 27079, 27080, 7, 10, 0, 0, 27080, 3970, 1, 0, 0, 0, 27081, 27082, 7, 5, 0, 0, 27082, 27083, 7, 18, 0, 0, 27083, 27084, 7, 5, 0, 0, 27084, 27085, 5, 95, 0, 0, 27085, 27086, 7, 25, 0, 0, 27086, 27087, 7, 24, 0, 0, 27087, 27088, 7, 6, 0, 0, 27088, 27089, 7, 7, 0, 0, 27089, 27090, 7, 9, 0, 0, 27090, 27091, 7, 5, 0, 0, 27091, 27092, 7, 22, 0, 0, 27092, 27093, 7, 10, 0, 0, 27093, 27094, 7, 4, 0, 0, 27094, 27095, 7, 19, 0, 0, 27095, 3972, 1, 0, 0, 0, 27096, 27097, 7, 5, 0, 0, 27097, 27098, 7, 18, 0, 0, 27098, 27099, 7, 5, 0, 0, 27099, 27100, 5, 95, 0, 0, 27100, 27101, 7, 25, 0, 0, 27101, 27102, 7, 24, 0, 0, 27102, 27103, 7, 6, 0, 0, 27103, 27104, 7, 3, 0, 0, 27104, 27105, 7, 3, 0, 0, 27105, 27106, 7, 19, 0, 0, 27106, 3974, 1, 0, 0, 0, 27107, 27108, 7, 5, 0, 0, 27108, 27109, 7, 18, 0, 0, 27109, 27110, 7, 5, 0, 0, 27110, 27111, 5, 95, 0, 0, 27111, 27112, 7, 25, 0, 0, 27112, 27113, 7, 24, 0, 0, 27113, 27114, 7, 6, 0, 0, 27114, 27115, 7, 3, 0, 0, 27115, 27116, 7, 3, 0, 0, 27116, 3976, 1, 0, 0, 0, 27117, 27118, 7, 5, 0, 0, 27118, 27119, 7, 18, 0, 0, 27119, 27120, 7, 5, 0, 0, 27120, 27121, 5, 95, 0, 0, 27121, 27122, 7, 25, 0, 0, 27122, 27123, 7, 24, 0, 0, 27123, 27124, 7, 6, 0, 0, 27124, 27125, 7, 5, 0, 0, 27125, 27126, 7, 19, 0, 0, 27126, 27127, 7, 4, 0, 0, 27127, 27128, 7, 14, 0, 0, 27128, 27129, 7, 11, 0, 0, 27129, 27130, 7, 12, 0, 0, 27130, 27131, 7, 3, 0, 0, 27131, 27132, 7, 10, 0, 0, 27132, 3978, 1, 0, 0, 0, 27133, 27134, 7, 5, 0, 0, 27134, 27135, 7, 18, 0, 0, 27135, 27136, 7, 5, 0, 0, 27136, 27137, 5, 95, 0, 0, 27137, 27138, 7, 25, 0, 0, 27138, 27139, 7, 24, 0, 0, 27139, 27140, 7, 6, 0, 0, 27140, 27141, 7, 25, 0, 0, 27141, 27142, 7, 11, 0, 0, 27142, 27143, 7, 2, 0, 0, 27143, 27144, 7, 1, 0, 0, 27144, 27145, 7, 13, 0, 0, 27145, 27146, 7, 0, 0, 0, 27146, 27147, 7, 11, 0, 0, 27147, 3980, 1, 0, 0, 0, 27148, 27149, 7, 5, 0, 0, 27149, 27150, 7, 18, 0, 0, 27150, 27151, 7, 5, 0, 0, 27151, 27152, 5, 95, 0, 0, 27152, 27153, 7, 25, 0, 0, 27153, 27154, 7, 24, 0, 0, 27154, 27155, 7, 6, 0, 0, 27155, 27156, 7, 25, 0, 0, 27156, 27157, 7, 5, 0, 0, 27157, 27158, 7, 4, 0, 0, 27158, 27159, 7, 22, 0, 0, 27159, 27160, 7, 3, 0, 0, 27160, 27161, 7, 15, 0, 0, 27161, 3982, 1, 0, 0, 0, 27162, 27163, 7, 5, 0, 0, 27163, 27164, 7, 18, 0, 0, 27164, 27165, 7, 5, 0, 0, 27165, 27166, 5, 95, 0, 0, 27166, 27167, 7, 25, 0, 0, 27167, 27168, 7, 24, 0, 0, 27168, 27169, 7, 6, 0, 0, 27169, 27170, 7, 25, 0, 0, 27170, 27171, 7, 4, 0, 0, 27171, 27172, 7, 3, 0, 0, 27172, 27173, 7, 0, 0, 0, 27173, 27174, 7, 8, 0, 0, 27174, 27175, 7, 4, 0, 0, 27175, 3984, 1, 0, 0, 0, 27176, 27177, 7, 5, 0, 0, 27177, 27178, 7, 18, 0, 0, 27178, 27179, 7, 5, 0, 0, 27179, 27180, 5, 95, 0, 0, 27180, 27181, 7, 25, 0, 0, 27181, 27182, 7, 24, 0, 0, 27182, 27183, 7, 6, 0, 0, 27183, 27184, 7, 25, 0, 0, 27184, 27185, 7, 4, 0, 0, 27185, 27186, 7, 3, 0, 0, 27186, 27187, 7, 3, 0, 0, 27187, 27188, 7, 6, 0, 0, 27188, 27189, 7, 16, 0, 0, 27189, 3986, 1, 0, 0, 0, 27190, 27191, 7, 5, 0, 0, 27191, 27192, 7, 18, 0, 0, 27192, 27193, 7, 5, 0, 0, 27193, 27194, 5, 95, 0, 0, 27194, 27195, 7, 25, 0, 0, 27195, 27196, 7, 24, 0, 0, 27196, 27197, 7, 6, 0, 0, 27197, 27198, 7, 25, 0, 0, 27198, 27199, 7, 13, 0, 0, 27199, 27200, 7, 0, 0, 0, 27200, 27201, 7, 11, 0, 0, 27201, 3988, 1, 0, 0, 0, 27202, 27203, 7, 5, 0, 0, 27203, 27204, 7, 18, 0, 0, 27204, 27205, 7, 5, 0, 0, 27205, 27206, 5, 95, 0, 0, 27206, 27207, 7, 25, 0, 0, 27207, 27208, 7, 24, 0, 0, 27208, 27209, 7, 16, 0, 0, 27209, 27210, 7, 1, 0, 0, 27210, 27211, 5, 50, 0, 0, 27211, 27212, 7, 5, 0, 0, 27212, 27213, 7, 4, 0, 0, 27213, 27214, 7, 3, 0, 0, 27214, 3990, 1, 0, 0, 0, 27215, 27216, 7, 5, 0, 0, 27216, 27217, 7, 18, 0, 0, 27217, 27218, 7, 5, 0, 0, 27218, 27219, 5, 95, 0, 0, 27219, 27220, 7, 25, 0, 0, 27220, 27221, 7, 24, 0, 0, 27221, 27222, 7, 16, 0, 0, 27222, 27223, 7, 7, 0, 0, 27223, 27224, 7, 1, 0, 0, 27224, 27225, 7, 2, 0, 0, 27225, 27226, 7, 2, 0, 0, 27226, 27227, 7, 11, 0, 0, 27227, 3992, 1, 0, 0, 0, 27228, 27229, 7, 5, 0, 0, 27229, 27230, 7, 18, 0, 0, 27230, 27231, 7, 5, 0, 0, 27231, 27232, 5, 95, 0, 0, 27232, 27233, 7, 25, 0, 0, 27233, 27234, 7, 24, 0, 0, 27234, 27235, 7, 16, 0, 0, 27235, 27236, 7, 7, 0, 0, 27236, 27237, 7, 8, 0, 0, 27237, 27238, 7, 14, 0, 0, 27238, 27239, 7, 15, 0, 0, 27239, 3994, 1, 0, 0, 0, 27240, 27241, 7, 5, 0, 0, 27241, 27242, 7, 18, 0, 0, 27242, 27243, 7, 5, 0, 0, 27243, 27244, 5, 95, 0, 0, 27244, 27245, 7, 25, 0, 0, 27245, 27246, 7, 24, 0, 0, 27246, 27247, 7, 16, 0, 0, 27247, 27248, 7, 7, 0, 0, 27248, 27249, 7, 9, 0, 0, 27249, 27250, 7, 0, 0, 0, 27250, 27251, 7, 4, 0, 0, 27251, 27252, 7, 10, 0, 0, 27252, 27253, 7, 14, 0, 0, 27253, 3996, 1, 0, 0, 0, 27254, 27255, 7, 5, 0, 0, 27255, 27256, 7, 18, 0, 0, 27256, 27257, 7, 5, 0, 0, 27257, 27258, 5, 95, 0, 0, 27258, 27259, 7, 25, 0, 0, 27259, 27260, 7, 24, 0, 0, 27260, 27261, 7, 16, 0, 0, 27261, 27262, 7, 7, 0, 0, 27262, 27263, 7, 11, 0, 0, 27263, 27264, 7, 7, 0, 0, 27264, 27265, 7, 0, 0, 0, 27265, 27266, 7, 14, 0, 0, 27266, 27267, 7, 6, 0, 0, 27267, 3998, 1, 0, 0, 0, 27268, 27269, 7, 5, 0, 0, 27269, 27270, 7, 18, 0, 0, 27270, 27271, 7, 5, 0, 0, 27271, 27272, 5, 95, 0, 0, 27272, 27273, 7, 25, 0, 0, 27273, 27274, 7, 24, 0, 0, 27274, 27275, 7, 16, 0, 0, 27275, 27276, 7, 7, 0, 0, 27276, 27277, 7, 7, 0, 0, 27277, 27278, 7, 14, 0, 0, 27278, 4000, 1, 0, 0, 0, 27279, 27280, 7, 5, 0, 0, 27280, 27281, 7, 18, 0, 0, 27281, 27282, 7, 5, 0, 0, 27282, 27283, 5, 95, 0, 0, 27283, 27284, 7, 25, 0, 0, 27284, 27285, 7, 24, 0, 0, 27285, 27286, 7, 16, 0, 0, 27286, 27287, 7, 7, 0, 0, 27287, 27288, 7, 7, 0, 0, 27288, 27289, 7, 5, 0, 0, 27289, 27290, 7, 12, 0, 0, 27290, 27291, 7, 3, 0, 0, 27291, 27292, 7, 10, 0, 0, 27292, 4002, 1, 0, 0, 0, 27293, 27294, 7, 5, 0, 0, 27294, 27295, 7, 18, 0, 0, 27295, 27296, 7, 5, 0, 0, 27296, 27297, 5, 95, 0, 0, 27297, 27298, 7, 25, 0, 0, 27298, 27299, 7, 24, 0, 0, 27299, 27300, 7, 16, 0, 0, 27300, 27301, 7, 7, 0, 0, 27301, 27302, 7, 15, 0, 0, 27302, 27303, 7, 3, 0, 0, 27303, 27304, 7, 6, 0, 0, 27304, 27305, 7, 9, 0, 0, 27305, 27306, 7, 4, 0, 0, 27306, 27307, 7, 3, 0, 0, 27307, 27308, 7, 12, 0, 0, 27308, 27309, 7, 4, 0, 0, 27309, 27310, 7, 19, 0, 0, 27310, 4004, 1, 0, 0, 0, 27311, 27312, 7, 5, 0, 0, 27312, 27313, 7, 18, 0, 0, 27313, 27314, 7, 5, 0, 0, 27314, 27315, 5, 95, 0, 0, 27315, 27316, 7, 25, 0, 0, 27316, 27317, 7, 24, 0, 0, 27317, 27318, 7, 16, 0, 0, 27318, 27319, 7, 7, 0, 0, 27319, 27320, 7, 24, 0, 0, 27320, 27321, 7, 7, 0, 0, 27321, 27322, 7, 14, 0, 0, 27322, 4006, 1, 0, 0, 0, 27323, 27324, 7, 5, 0, 0, 27324, 27325, 7, 18, 0, 0, 27325, 27326, 7, 5, 0, 0, 27326, 27327, 5, 95, 0, 0, 27327, 27328, 7, 25, 0, 0, 27328, 27329, 7, 24, 0, 0, 27329, 27330, 7, 16, 0, 0, 27330, 27331, 7, 7, 0, 0, 27331, 27332, 7, 3, 0, 0, 27332, 27333, 7, 2, 0, 0, 27333, 27334, 7, 2, 0, 0, 27334, 27335, 7, 4, 0, 0, 27335, 4008, 1, 0, 0, 0, 27336, 27337, 7, 5, 0, 0, 27337, 27338, 7, 18, 0, 0, 27338, 27339, 7, 5, 0, 0, 27339, 27340, 5, 95, 0, 0, 27340, 27341, 7, 25, 0, 0, 27341, 27342, 7, 24, 0, 0, 27342, 27343, 7, 16, 0, 0, 27343, 27344, 7, 2, 0, 0, 27344, 27345, 7, 3, 0, 0, 27345, 27346, 7, 14, 0, 0, 27346, 27347, 7, 0, 0, 0, 27347, 27348, 7, 4, 0, 0, 27348, 27349, 7, 7, 0, 0, 27349, 27350, 7, 12, 0, 0, 27350, 27351, 7, 14, 0, 0, 27351, 4010, 1, 0, 0, 0, 27352, 27353, 7, 5, 0, 0, 27353, 27354, 7, 18, 0, 0, 27354, 27355, 7, 5, 0, 0, 27355, 27356, 5, 95, 0, 0, 27356, 27357, 7, 25, 0, 0, 27357, 27358, 7, 24, 0, 0, 27358, 27359, 7, 16, 0, 0, 27359, 27360, 7, 4, 0, 0, 27360, 27361, 7, 8, 0, 0, 27361, 27362, 7, 2, 0, 0, 27362, 27363, 7, 7, 0, 0, 27363, 27364, 7, 4, 0, 0, 27364, 27365, 7, 0, 0, 0, 27365, 27366, 7, 10, 0, 0, 27366, 27367, 7, 7, 0, 0, 27367, 4012, 1, 0, 0, 0, 27368, 27369, 7, 5, 0, 0, 27369, 27370, 7, 18, 0, 0, 27370, 27371, 7, 5, 0, 0, 27371, 27372, 5, 95, 0, 0, 27372, 27373, 7, 25, 0, 0, 27373, 27374, 7, 24, 0, 0, 27374, 27375, 7, 16, 0, 0, 27375, 27376, 7, 12, 0, 0, 27376, 27377, 7, 7, 0, 0, 27377, 27378, 7, 8, 0, 0, 27378, 27379, 7, 3, 0, 0, 27379, 4014, 1, 0, 0, 0, 27380, 27381, 7, 5, 0, 0, 27381, 27382, 7, 18, 0, 0, 27382, 27383, 7, 5, 0, 0, 27383, 27384, 5, 95, 0, 0, 27384, 27385, 7, 25, 0, 0, 27385, 27386, 7, 24, 0, 0, 27386, 27387, 7, 17, 0, 0, 27387, 27388, 7, 6, 0, 0, 27388, 27389, 7, 4, 0, 0, 27389, 27390, 7, 8, 0, 0, 27390, 27391, 7, 2, 0, 0, 27391, 27392, 7, 7, 0, 0, 27392, 27393, 7, 4, 0, 0, 27393, 27394, 7, 6, 0, 0, 27394, 27395, 7, 7, 0, 0, 27395, 27396, 7, 4, 0, 0, 27396, 4016, 1, 0, 0, 0, 27397, 27398, 7, 5, 0, 0, 27398, 27399, 7, 18, 0, 0, 27399, 27400, 7, 5, 0, 0, 27400, 27401, 5, 95, 0, 0, 27401, 27402, 7, 25, 0, 0, 27402, 27403, 7, 24, 0, 0, 27403, 27404, 7, 10, 0, 0, 27404, 27405, 7, 7, 0, 0, 27405, 27406, 7, 9, 0, 0, 27406, 27407, 7, 25, 0, 0, 27407, 27408, 7, 2, 0, 0, 27408, 27409, 7, 16, 0, 0, 27409, 4018, 1, 0, 0, 0, 27410, 27411, 7, 5, 0, 0, 27411, 27412, 7, 18, 0, 0, 27412, 27413, 7, 5, 0, 0, 27413, 27414, 5, 95, 0, 0, 27414, 27415, 7, 25, 0, 0, 27415, 27416, 7, 24, 0, 0, 27416, 27417, 7, 10, 0, 0, 27417, 27418, 7, 7, 0, 0, 27418, 27419, 7, 5, 0, 0, 27419, 27420, 7, 6, 0, 0, 27420, 27421, 7, 3, 0, 0, 27421, 27422, 7, 4, 0, 0, 27422, 4020, 1, 0, 0, 0, 27423, 27424, 7, 5, 0, 0, 27424, 27425, 7, 18, 0, 0, 27425, 27426, 7, 5, 0, 0, 27426, 27427, 5, 95, 0, 0, 27427, 27428, 7, 25, 0, 0, 27428, 27429, 7, 24, 0, 0, 27429, 27430, 7, 10, 0, 0, 27430, 27431, 7, 7, 0, 0, 27431, 27432, 7, 5, 0, 0, 27432, 27433, 7, 15, 0, 0, 27433, 27434, 7, 16, 0, 0, 27434, 27435, 7, 25, 0, 0, 27435, 4022, 1, 0, 0, 0, 27436, 27437, 7, 5, 0, 0, 27437, 27438, 7, 18, 0, 0, 27438, 27439, 7, 5, 0, 0, 27439, 27440, 5, 95, 0, 0, 27440, 27441, 7, 25, 0, 0, 27441, 27442, 7, 24, 0, 0, 27442, 27443, 7, 10, 0, 0, 27443, 27444, 7, 3, 0, 0, 27444, 27445, 7, 10, 0, 0, 27445, 27446, 5, 50, 0, 0, 27446, 27447, 7, 12, 0, 0, 27447, 27448, 7, 3, 0, 0, 27448, 27449, 7, 10, 0, 0, 27449, 4024, 1, 0, 0, 0, 27450, 27451, 7, 5, 0, 0, 27451, 27452, 7, 18, 0, 0, 27452, 27453, 7, 5, 0, 0, 27453, 27454, 5, 95, 0, 0, 27454, 27455, 7, 25, 0, 0, 27455, 27456, 7, 24, 0, 0, 27456, 27457, 7, 11, 0, 0, 27457, 27458, 7, 0, 0, 0, 27458, 27459, 7, 7, 0, 0, 27459, 27460, 7, 17, 0, 0, 27460, 4026, 1, 0, 0, 0, 27461, 27462, 7, 5, 0, 0, 27462, 27463, 7, 18, 0, 0, 27463, 27464, 7, 5, 0, 0, 27464, 27465, 5, 95, 0, 0, 27465, 27466, 7, 25, 0, 0, 27466, 27467, 7, 24, 0, 0, 27467, 27468, 7, 11, 0, 0, 27468, 27469, 7, 11, 0, 0, 27469, 27470, 7, 7, 0, 0, 27470, 27471, 7, 14, 0, 0, 27471, 27472, 7, 16, 0, 0, 27472, 27473, 7, 3, 0, 0, 27473, 27474, 7, 14, 0, 0, 27474, 27475, 7, 24, 0, 0, 27475, 27476, 7, 7, 0, 0, 27476, 27477, 7, 14, 0, 0, 27477, 4028, 1, 0, 0, 0, 27478, 27479, 7, 5, 0, 0, 27479, 27480, 7, 18, 0, 0, 27480, 27481, 7, 5, 0, 0, 27481, 27482, 5, 95, 0, 0, 27482, 27483, 7, 25, 0, 0, 27483, 27484, 7, 24, 0, 0, 27484, 27485, 7, 14, 0, 0, 27485, 27486, 7, 21, 0, 0, 27486, 27487, 7, 7, 0, 0, 27487, 27488, 7, 2, 0, 0, 27488, 27489, 7, 9, 0, 0, 27489, 27490, 7, 6, 0, 0, 27490, 27491, 7, 3, 0, 0, 27491, 27492, 7, 6, 0, 0, 27492, 27493, 7, 16, 0, 0, 27493, 4030, 1, 0, 0, 0, 27494, 27495, 7, 5, 0, 0, 27495, 27496, 7, 18, 0, 0, 27496, 27497, 7, 5, 0, 0, 27497, 27498, 5, 95, 0, 0, 27498, 27499, 7, 25, 0, 0, 27499, 27500, 7, 24, 0, 0, 27500, 27501, 7, 7, 0, 0, 27501, 27502, 7, 10, 0, 0, 27502, 27503, 7, 11, 0, 0, 27503, 27504, 7, 11, 0, 0, 27504, 27505, 7, 6, 0, 0, 27505, 27506, 7, 9, 0, 0, 27506, 4032, 1, 0, 0, 0, 27507, 27508, 7, 5, 0, 0, 27508, 27509, 7, 18, 0, 0, 27509, 27510, 7, 5, 0, 0, 27510, 27511, 5, 95, 0, 0, 27511, 27512, 7, 25, 0, 0, 27512, 27513, 7, 24, 0, 0, 27513, 27514, 7, 7, 0, 0, 27514, 27515, 7, 2, 0, 0, 27515, 27516, 7, 9, 0, 0, 27516, 27517, 7, 6, 0, 0, 27517, 27518, 7, 7, 0, 0, 27518, 27519, 7, 0, 0, 0, 27519, 27520, 7, 14, 0, 0, 27520, 27521, 7, 6, 0, 0, 27521, 4034, 1, 0, 0, 0, 27522, 27523, 7, 5, 0, 0, 27523, 27524, 7, 18, 0, 0, 27524, 27525, 7, 5, 0, 0, 27525, 27526, 5, 95, 0, 0, 27526, 27527, 7, 25, 0, 0, 27527, 27528, 7, 24, 0, 0, 27528, 27529, 7, 7, 0, 0, 27529, 27530, 7, 2, 0, 0, 27530, 27531, 7, 3, 0, 0, 27531, 27532, 7, 14, 0, 0, 27532, 27533, 7, 5, 0, 0, 27533, 27534, 7, 15, 0, 0, 27534, 27535, 7, 0, 0, 0, 27535, 27536, 7, 8, 0, 0, 27536, 27537, 7, 6, 0, 0, 27537, 4036, 1, 0, 0, 0, 27538, 27539, 7, 5, 0, 0, 27539, 27540, 7, 18, 0, 0, 27540, 27541, 7, 5, 0, 0, 27541, 27542, 5, 95, 0, 0, 27542, 27543, 7, 25, 0, 0, 27543, 27544, 7, 24, 0, 0, 27544, 27545, 7, 7, 0, 0, 27545, 27546, 7, 2, 0, 0, 27546, 27547, 7, 3, 0, 0, 27547, 27548, 7, 14, 0, 0, 27548, 27549, 7, 12, 0, 0, 27549, 27550, 7, 8, 0, 0, 27550, 27551, 7, 2, 0, 0, 27551, 27552, 7, 9, 0, 0, 27552, 27553, 7, 6, 0, 0, 27553, 4038, 1, 0, 0, 0, 27554, 27555, 7, 5, 0, 0, 27555, 27556, 7, 18, 0, 0, 27556, 27557, 7, 5, 0, 0, 27557, 27558, 5, 95, 0, 0, 27558, 27559, 7, 25, 0, 0, 27559, 27560, 7, 24, 0, 0, 27560, 27561, 5, 95, 0, 0, 27561, 27562, 7, 7, 0, 0, 27562, 27563, 7, 3, 0, 0, 27563, 27564, 7, 7, 0, 0, 27564, 27565, 7, 17, 0, 0, 27565, 4040, 1, 0, 0, 0, 27566, 27567, 7, 5, 0, 0, 27567, 27568, 7, 18, 0, 0, 27568, 27569, 7, 5, 0, 0, 27569, 27570, 5, 95, 0, 0, 27570, 27571, 7, 25, 0, 0, 27571, 27572, 7, 24, 0, 0, 27572, 27573, 7, 7, 0, 0, 27573, 27574, 7, 5, 0, 0, 27574, 27575, 7, 15, 0, 0, 27575, 27576, 5, 52, 0, 0, 27576, 27577, 7, 15, 0, 0, 27577, 27578, 7, 16, 0, 0, 27578, 27579, 7, 25, 0, 0, 27579, 4042, 1, 0, 0, 0, 27580, 27581, 7, 5, 0, 0, 27581, 27582, 7, 18, 0, 0, 27582, 27583, 7, 5, 0, 0, 27583, 27584, 5, 95, 0, 0, 27584, 27585, 7, 25, 0, 0, 27585, 27586, 7, 24, 0, 0, 27586, 27587, 7, 7, 0, 0, 27587, 27588, 7, 5, 0, 0, 27588, 27589, 7, 15, 0, 0, 27589, 27590, 7, 16, 0, 0, 27590, 27591, 7, 3, 0, 0, 27591, 27592, 7, 14, 0, 0, 27592, 27593, 7, 24, 0, 0, 27593, 27594, 7, 7, 0, 0, 27594, 27595, 7, 14, 0, 0, 27595, 4044, 1, 0, 0, 0, 27596, 27597, 7, 5, 0, 0, 27597, 27598, 7, 18, 0, 0, 27598, 27599, 7, 5, 0, 0, 27599, 27600, 5, 95, 0, 0, 27600, 27601, 7, 25, 0, 0, 27601, 27602, 7, 24, 0, 0, 27602, 27603, 7, 15, 0, 0, 27603, 27604, 7, 16, 0, 0, 27604, 27605, 7, 25, 0, 0, 27605, 27606, 7, 16, 0, 0, 27606, 27607, 7, 3, 0, 0, 27607, 27608, 7, 14, 0, 0, 27608, 27609, 7, 24, 0, 0, 27609, 27610, 7, 7, 0, 0, 27610, 27611, 7, 14, 0, 0, 27611, 4046, 1, 0, 0, 0, 27612, 27613, 7, 5, 0, 0, 27613, 27614, 7, 18, 0, 0, 27614, 27615, 7, 5, 0, 0, 27615, 27616, 5, 95, 0, 0, 27616, 27617, 7, 25, 0, 0, 27617, 27618, 7, 24, 0, 0, 27618, 27619, 5, 95, 0, 0, 27619, 27620, 7, 15, 0, 0, 27620, 27621, 7, 21, 0, 0, 27621, 27622, 7, 5, 0, 0, 27622, 27623, 7, 24, 0, 0, 27623, 27624, 7, 11, 0, 0, 27624, 27625, 5, 50, 0, 0, 27625, 27626, 7, 25, 0, 0, 27626, 27627, 7, 14, 0, 0, 27627, 27628, 7, 11, 0, 0, 27628, 4048, 1, 0, 0, 0, 27629, 27630, 7, 5, 0, 0, 27630, 27631, 7, 18, 0, 0, 27631, 27632, 7, 5, 0, 0, 27632, 27633, 5, 95, 0, 0, 27633, 27634, 7, 25, 0, 0, 27634, 27635, 7, 24, 0, 0, 27635, 27636, 7, 15, 0, 0, 27636, 27637, 7, 2, 0, 0, 27637, 27638, 7, 11, 0, 0, 27638, 27639, 7, 18, 0, 0, 27639, 27640, 7, 0, 0, 0, 27640, 27641, 7, 1, 0, 0, 27641, 27642, 7, 5, 0, 0, 27642, 4050, 1, 0, 0, 0, 27643, 27644, 7, 5, 0, 0, 27644, 27645, 7, 18, 0, 0, 27645, 27646, 7, 5, 0, 0, 27646, 27647, 5, 95, 0, 0, 27647, 27648, 7, 25, 0, 0, 27648, 27649, 7, 24, 0, 0, 27649, 27650, 7, 15, 0, 0, 27650, 27651, 7, 2, 0, 0, 27651, 27652, 7, 11, 0, 0, 27652, 27653, 7, 18, 0, 0, 27653, 27654, 7, 0, 0, 0, 27654, 27655, 7, 9, 0, 0, 27655, 27656, 7, 9, 0, 0, 27656, 4052, 1, 0, 0, 0, 27657, 27658, 7, 5, 0, 0, 27658, 27659, 7, 18, 0, 0, 27659, 27660, 7, 5, 0, 0, 27660, 27661, 5, 95, 0, 0, 27661, 27662, 7, 25, 0, 0, 27662, 27663, 7, 24, 0, 0, 27663, 27664, 7, 15, 0, 0, 27664, 27665, 7, 2, 0, 0, 27665, 27666, 7, 11, 0, 0, 27666, 27667, 7, 18, 0, 0, 27667, 27668, 7, 8, 0, 0, 27668, 27669, 7, 6, 0, 0, 27669, 27670, 7, 11, 0, 0, 27670, 4054, 1, 0, 0, 0, 27671, 27672, 7, 5, 0, 0, 27672, 27673, 7, 18, 0, 0, 27673, 27674, 7, 5, 0, 0, 27674, 27675, 5, 95, 0, 0, 27675, 27676, 7, 25, 0, 0, 27676, 27677, 7, 24, 0, 0, 27677, 27678, 7, 15, 0, 0, 27678, 27679, 7, 2, 0, 0, 27679, 27680, 7, 11, 0, 0, 27680, 27681, 7, 18, 0, 0, 27681, 27682, 7, 8, 0, 0, 27682, 27683, 7, 5, 0, 0, 27683, 27684, 7, 4, 0, 0, 27684, 27685, 7, 1, 0, 0, 27685, 27686, 7, 11, 0, 0, 27686, 4056, 1, 0, 0, 0, 27687, 27688, 7, 5, 0, 0, 27688, 27689, 7, 18, 0, 0, 27689, 27690, 7, 5, 0, 0, 27690, 27691, 5, 95, 0, 0, 27691, 27692, 7, 25, 0, 0, 27692, 27693, 7, 24, 0, 0, 27693, 27694, 7, 15, 0, 0, 27694, 27695, 7, 2, 0, 0, 27695, 27696, 7, 11, 0, 0, 27696, 27697, 7, 18, 0, 0, 27697, 27698, 7, 8, 0, 0, 27698, 27699, 7, 5, 0, 0, 27699, 27700, 7, 4, 0, 0, 27700, 4058, 1, 0, 0, 0, 27701, 27702, 7, 5, 0, 0, 27702, 27703, 7, 18, 0, 0, 27703, 27704, 7, 5, 0, 0, 27704, 27705, 5, 95, 0, 0, 27705, 27706, 7, 25, 0, 0, 27706, 27707, 7, 24, 0, 0, 27707, 27708, 7, 15, 0, 0, 27708, 27709, 7, 2, 0, 0, 27709, 27710, 7, 11, 0, 0, 27710, 27711, 7, 18, 0, 0, 27711, 27712, 7, 9, 0, 0, 27712, 27713, 7, 10, 0, 0, 27713, 27714, 7, 13, 0, 0, 27714, 4060, 1, 0, 0, 0, 27715, 27716, 7, 5, 0, 0, 27716, 27717, 7, 18, 0, 0, 27717, 27718, 7, 5, 0, 0, 27718, 27719, 5, 95, 0, 0, 27719, 27720, 7, 25, 0, 0, 27720, 27721, 7, 24, 0, 0, 27721, 27722, 7, 15, 0, 0, 27722, 27723, 7, 2, 0, 0, 27723, 27724, 7, 11, 0, 0, 27724, 27725, 7, 18, 0, 0, 27725, 27726, 7, 16, 0, 0, 27726, 27727, 7, 11, 0, 0, 27727, 27728, 7, 3, 0, 0, 27728, 4062, 1, 0, 0, 0, 27729, 27730, 7, 5, 0, 0, 27730, 27731, 7, 18, 0, 0, 27731, 27732, 7, 5, 0, 0, 27732, 27733, 5, 95, 0, 0, 27733, 27734, 7, 25, 0, 0, 27734, 27735, 7, 24, 0, 0, 27735, 27736, 7, 15, 0, 0, 27736, 27737, 7, 2, 0, 0, 27737, 27738, 7, 11, 0, 0, 27738, 27739, 7, 18, 0, 0, 27739, 27740, 7, 14, 0, 0, 27740, 27741, 7, 2, 0, 0, 27741, 27742, 7, 9, 0, 0, 27742, 4064, 1, 0, 0, 0, 27743, 27744, 7, 5, 0, 0, 27744, 27745, 7, 18, 0, 0, 27745, 27746, 7, 5, 0, 0, 27746, 27747, 5, 95, 0, 0, 27747, 27748, 7, 25, 0, 0, 27748, 27749, 7, 24, 0, 0, 27749, 27750, 7, 15, 0, 0, 27750, 27751, 7, 2, 0, 0, 27751, 27752, 7, 11, 0, 0, 27752, 27753, 7, 18, 0, 0, 27753, 27754, 7, 14, 0, 0, 27754, 27755, 7, 12, 0, 0, 27755, 27756, 7, 11, 0, 0, 27756, 4066, 1, 0, 0, 0, 27757, 27758, 7, 5, 0, 0, 27758, 27759, 7, 18, 0, 0, 27759, 27760, 7, 5, 0, 0, 27760, 27761, 5, 95, 0, 0, 27761, 27762, 7, 25, 0, 0, 27762, 27763, 7, 24, 0, 0, 27763, 27764, 7, 15, 0, 0, 27764, 27765, 7, 2, 0, 0, 27765, 27766, 7, 11, 0, 0, 27766, 27767, 7, 18, 0, 0, 27767, 27768, 7, 3, 0, 0, 27768, 27769, 7, 7, 0, 0, 27769, 27770, 7, 9, 0, 0, 27770, 4068, 1, 0, 0, 0, 27771, 27772, 7, 5, 0, 0, 27772, 27773, 7, 18, 0, 0, 27773, 27774, 7, 5, 0, 0, 27774, 27775, 5, 95, 0, 0, 27775, 27776, 7, 25, 0, 0, 27776, 27777, 7, 24, 0, 0, 27777, 27778, 7, 15, 0, 0, 27778, 27779, 7, 2, 0, 0, 27779, 27780, 7, 11, 0, 0, 27780, 27781, 7, 18, 0, 0, 27781, 27782, 7, 5, 0, 0, 27782, 27783, 7, 24, 0, 0, 27783, 27784, 7, 3, 0, 0, 27784, 27785, 7, 4, 0, 0, 27785, 4070, 1, 0, 0, 0, 27786, 27787, 7, 5, 0, 0, 27787, 27788, 7, 18, 0, 0, 27788, 27789, 7, 5, 0, 0, 27789, 27790, 5, 95, 0, 0, 27790, 27791, 7, 25, 0, 0, 27791, 27792, 7, 24, 0, 0, 27792, 27793, 7, 15, 0, 0, 27793, 27794, 7, 2, 0, 0, 27794, 27795, 7, 11, 0, 0, 27795, 27796, 7, 18, 0, 0, 27796, 27797, 7, 5, 0, 0, 27797, 27798, 7, 12, 0, 0, 27798, 27799, 7, 1, 0, 0, 27799, 4072, 1, 0, 0, 0, 27800, 27801, 7, 5, 0, 0, 27801, 27802, 7, 18, 0, 0, 27802, 27803, 7, 5, 0, 0, 27803, 27804, 5, 95, 0, 0, 27804, 27805, 7, 25, 0, 0, 27805, 27806, 7, 24, 0, 0, 27806, 27807, 7, 15, 0, 0, 27807, 27808, 7, 2, 0, 0, 27808, 27809, 7, 11, 0, 0, 27809, 27810, 7, 18, 0, 0, 27810, 27811, 7, 12, 0, 0, 27811, 27812, 7, 14, 0, 0, 27812, 27813, 7, 12, 0, 0, 27813, 27814, 7, 5, 0, 0, 27814, 4074, 1, 0, 0, 0, 27815, 27816, 7, 5, 0, 0, 27816, 27817, 7, 18, 0, 0, 27817, 27818, 7, 5, 0, 0, 27818, 27819, 5, 95, 0, 0, 27819, 27820, 7, 25, 0, 0, 27820, 27821, 7, 24, 0, 0, 27821, 27822, 7, 15, 0, 0, 27822, 27823, 7, 2, 0, 0, 27823, 27824, 7, 11, 0, 0, 27824, 27825, 7, 18, 0, 0, 27825, 27826, 7, 12, 0, 0, 27826, 27827, 7, 15, 0, 0, 27827, 27828, 7, 11, 0, 0, 27828, 27829, 7, 5, 0, 0, 27829, 4076, 1, 0, 0, 0, 27830, 27831, 7, 5, 0, 0, 27831, 27832, 7, 18, 0, 0, 27832, 27833, 7, 5, 0, 0, 27833, 27834, 5, 95, 0, 0, 27834, 27835, 7, 25, 0, 0, 27835, 27836, 7, 24, 0, 0, 27836, 27837, 7, 15, 0, 0, 27837, 27838, 7, 2, 0, 0, 27838, 27839, 7, 11, 0, 0, 27839, 27840, 7, 18, 0, 0, 27840, 27841, 7, 13, 0, 0, 27841, 27842, 7, 6, 0, 0, 27842, 27843, 7, 24, 0, 0, 27843, 4078, 1, 0, 0, 0, 27844, 27845, 7, 5, 0, 0, 27845, 27846, 7, 18, 0, 0, 27846, 27847, 7, 5, 0, 0, 27847, 27848, 5, 95, 0, 0, 27848, 27849, 7, 25, 0, 0, 27849, 27850, 7, 24, 0, 0, 27850, 27851, 7, 15, 0, 0, 27851, 27852, 7, 2, 0, 0, 27852, 27853, 7, 11, 0, 0, 27853, 27854, 7, 18, 0, 0, 27854, 27855, 7, 13, 0, 0, 27855, 27856, 7, 17, 0, 0, 27856, 27857, 7, 6, 0, 0, 27857, 4080, 1, 0, 0, 0, 27858, 27859, 7, 5, 0, 0, 27859, 27860, 7, 18, 0, 0, 27860, 27861, 7, 5, 0, 0, 27861, 27862, 5, 95, 0, 0, 27862, 27863, 7, 25, 0, 0, 27863, 27864, 7, 24, 0, 0, 27864, 27865, 7, 15, 0, 0, 27865, 27866, 7, 2, 0, 0, 27866, 27867, 7, 11, 0, 0, 27867, 27868, 7, 18, 0, 0, 27868, 27869, 7, 13, 0, 0, 27869, 27870, 7, 17, 0, 0, 27870, 27871, 7, 4, 0, 0, 27871, 4082, 1, 0, 0, 0, 27872, 27873, 7, 5, 0, 0, 27873, 27874, 7, 18, 0, 0, 27874, 27875, 7, 5, 0, 0, 27875, 27876, 5, 95, 0, 0, 27876, 27877, 7, 25, 0, 0, 27877, 27878, 7, 24, 0, 0, 27878, 27879, 7, 15, 0, 0, 27879, 27880, 7, 2, 0, 0, 27880, 27881, 7, 11, 0, 0, 27881, 27882, 7, 18, 0, 0, 27882, 27883, 7, 13, 0, 0, 27883, 27884, 7, 11, 0, 0, 27884, 27885, 7, 6, 0, 0, 27885, 4084, 1, 0, 0, 0, 27886, 27887, 7, 5, 0, 0, 27887, 27888, 7, 18, 0, 0, 27888, 27889, 7, 5, 0, 0, 27889, 27890, 5, 95, 0, 0, 27890, 27891, 7, 25, 0, 0, 27891, 27892, 7, 24, 0, 0, 27892, 27893, 7, 15, 0, 0, 27893, 27894, 7, 2, 0, 0, 27894, 27895, 7, 11, 0, 0, 27895, 27896, 7, 18, 0, 0, 27896, 27897, 7, 13, 0, 0, 27897, 27898, 7, 11, 0, 0, 27898, 27899, 7, 4, 0, 0, 27899, 4086, 1, 0, 0, 0, 27900, 27901, 7, 5, 0, 0, 27901, 27902, 7, 18, 0, 0, 27902, 27903, 7, 5, 0, 0, 27903, 27904, 5, 95, 0, 0, 27904, 27905, 7, 25, 0, 0, 27905, 27906, 7, 24, 0, 0, 27906, 27907, 7, 15, 0, 0, 27907, 27908, 7, 2, 0, 0, 27908, 27909, 7, 11, 0, 0, 27909, 27910, 7, 18, 0, 0, 27910, 27911, 7, 13, 0, 0, 27911, 27912, 7, 7, 0, 0, 27912, 27913, 7, 6, 0, 0, 27913, 4088, 1, 0, 0, 0, 27914, 27915, 7, 5, 0, 0, 27915, 27916, 7, 18, 0, 0, 27916, 27917, 7, 5, 0, 0, 27917, 27918, 5, 95, 0, 0, 27918, 27919, 7, 25, 0, 0, 27919, 27920, 7, 24, 0, 0, 27920, 27921, 7, 3, 0, 0, 27921, 27922, 7, 6, 0, 0, 27922, 27923, 7, 16, 0, 0, 27923, 27924, 5, 50, 0, 0, 27924, 27925, 7, 13, 0, 0, 27925, 27926, 7, 0, 0, 0, 27926, 27927, 7, 11, 0, 0, 27927, 4090, 1, 0, 0, 0, 27928, 27929, 7, 5, 0, 0, 27929, 27930, 7, 18, 0, 0, 27930, 27931, 7, 5, 0, 0, 27931, 27932, 5, 95, 0, 0, 27932, 27933, 7, 25, 0, 0, 27933, 27934, 7, 24, 0, 0, 27934, 27935, 7, 3, 0, 0, 27935, 27936, 7, 6, 0, 0, 27936, 27937, 7, 7, 0, 0, 27937, 27938, 7, 0, 0, 0, 27938, 27939, 7, 14, 0, 0, 27939, 27940, 7, 6, 0, 0, 27940, 4092, 1, 0, 0, 0, 27941, 27942, 7, 5, 0, 0, 27942, 27943, 7, 18, 0, 0, 27943, 27944, 7, 5, 0, 0, 27944, 27945, 5, 95, 0, 0, 27945, 27946, 7, 25, 0, 0, 27946, 27947, 7, 24, 0, 0, 27947, 27948, 7, 3, 0, 0, 27948, 27949, 7, 6, 0, 0, 27949, 27950, 7, 15, 0, 0, 27950, 27951, 7, 11, 0, 0, 27951, 27952, 7, 0, 0, 0, 27952, 27953, 7, 8, 0, 0, 27953, 27954, 7, 6, 0, 0, 27954, 4094, 1, 0, 0, 0, 27955, 27956, 7, 5, 0, 0, 27956, 27957, 7, 18, 0, 0, 27957, 27958, 7, 5, 0, 0, 27958, 27959, 5, 95, 0, 0, 27959, 27960, 7, 25, 0, 0, 27960, 27961, 7, 24, 0, 0, 27961, 27962, 7, 3, 0, 0, 27962, 27963, 7, 6, 0, 0, 27963, 27964, 7, 5, 0, 0, 27964, 27965, 7, 13, 0, 0, 27965, 27966, 7, 12, 0, 0, 27966, 27967, 7, 3, 0, 0, 27967, 27968, 7, 10, 0, 0, 27968, 4096, 1, 0, 0, 0, 27969, 27970, 7, 5, 0, 0, 27970, 27971, 7, 18, 0, 0, 27971, 27972, 7, 5, 0, 0, 27972, 27973, 5, 95, 0, 0, 27973, 27974, 7, 25, 0, 0, 27974, 27975, 7, 24, 0, 0, 27975, 27976, 7, 3, 0, 0, 27976, 27977, 7, 7, 0, 0, 27977, 27978, 7, 9, 0, 0, 27978, 27979, 7, 19, 0, 0, 27979, 27980, 7, 0, 0, 0, 27980, 27981, 7, 11, 0, 0, 27981, 27982, 7, 16, 0, 0, 27982, 27983, 5, 50, 0, 0, 27983, 27984, 7, 6, 0, 0, 27984, 27985, 7, 13, 0, 0, 27985, 27986, 7, 7, 0, 0, 27986, 4098, 1, 0, 0, 0, 27987, 27988, 7, 5, 0, 0, 27988, 27989, 7, 18, 0, 0, 27989, 27990, 7, 5, 0, 0, 27990, 27991, 5, 95, 0, 0, 27991, 27992, 7, 25, 0, 0, 27992, 27993, 7, 24, 0, 0, 27993, 27994, 7, 3, 0, 0, 27994, 27995, 7, 5, 0, 0, 27995, 27996, 7, 11, 0, 0, 27996, 27997, 7, 13, 0, 0, 27997, 27998, 7, 24, 0, 0, 27998, 27999, 7, 7, 0, 0, 27999, 28000, 7, 14, 0, 0, 28000, 4100, 1, 0, 0, 0, 28001, 28002, 7, 5, 0, 0, 28002, 28003, 7, 18, 0, 0, 28003, 28004, 7, 5, 0, 0, 28004, 28005, 5, 95, 0, 0, 28005, 28006, 7, 25, 0, 0, 28006, 28007, 7, 24, 0, 0, 28007, 28008, 7, 3, 0, 0, 28008, 28009, 7, 18, 0, 0, 28009, 28010, 7, 6, 0, 0, 28010, 28011, 7, 7, 0, 0, 28011, 28012, 7, 13, 0, 0, 28012, 28013, 7, 15, 0, 0, 28013, 28014, 7, 17, 0, 0, 28014, 28015, 7, 6, 0, 0, 28015, 28016, 7, 4, 0, 0, 28016, 4102, 1, 0, 0, 0, 28017, 28018, 7, 5, 0, 0, 28018, 28019, 7, 18, 0, 0, 28019, 28020, 7, 5, 0, 0, 28020, 28021, 5, 95, 0, 0, 28021, 28022, 7, 25, 0, 0, 28022, 28023, 7, 24, 0, 0, 28023, 28024, 7, 3, 0, 0, 28024, 28025, 7, 18, 0, 0, 28025, 28026, 7, 13, 0, 0, 28026, 28027, 7, 0, 0, 0, 28027, 28028, 7, 3, 0, 0, 28028, 28029, 7, 17, 0, 0, 28029, 28030, 7, 6, 0, 0, 28030, 28031, 7, 4, 0, 0, 28031, 4104, 1, 0, 0, 0, 28032, 28033, 7, 5, 0, 0, 28033, 28034, 7, 18, 0, 0, 28034, 28035, 7, 5, 0, 0, 28035, 28036, 5, 95, 0, 0, 28036, 28037, 7, 25, 0, 0, 28037, 28038, 7, 24, 0, 0, 28038, 28039, 7, 3, 0, 0, 28039, 28040, 7, 18, 0, 0, 28040, 28041, 7, 22, 0, 0, 28041, 28042, 7, 3, 0, 0, 28042, 28043, 7, 15, 0, 0, 28043, 4106, 1, 0, 0, 0, 28044, 28045, 7, 5, 0, 0, 28045, 28046, 7, 18, 0, 0, 28046, 28047, 7, 5, 0, 0, 28047, 28048, 5, 95, 0, 0, 28048, 28049, 7, 25, 0, 0, 28049, 28050, 7, 24, 0, 0, 28050, 28051, 7, 5, 0, 0, 28051, 28052, 7, 6, 0, 0, 28052, 28053, 7, 24, 0, 0, 28053, 28054, 5, 50, 0, 0, 28054, 28055, 7, 8, 0, 0, 28055, 28056, 7, 2, 0, 0, 28056, 28057, 7, 7, 0, 0, 28057, 28058, 5, 52, 0, 0, 28058, 28059, 7, 25, 0, 0, 28059, 28060, 7, 8, 0, 0, 28060, 4108, 1, 0, 0, 0, 28061, 28062, 7, 5, 0, 0, 28062, 28063, 7, 18, 0, 0, 28063, 28064, 7, 5, 0, 0, 28064, 28065, 5, 95, 0, 0, 28065, 28066, 7, 25, 0, 0, 28066, 28067, 7, 24, 0, 0, 28067, 28068, 7, 5, 0, 0, 28068, 28069, 7, 6, 0, 0, 28069, 28070, 7, 24, 0, 0, 28070, 28071, 5, 50, 0, 0, 28071, 28072, 7, 8, 0, 0, 28072, 28073, 7, 2, 0, 0, 28073, 28074, 7, 7, 0, 0, 28074, 4110, 1, 0, 0, 0, 28075, 28076, 7, 5, 0, 0, 28076, 28077, 7, 18, 0, 0, 28077, 28078, 7, 5, 0, 0, 28078, 28079, 5, 95, 0, 0, 28079, 28080, 7, 25, 0, 0, 28080, 28081, 7, 24, 0, 0, 28081, 28082, 7, 5, 0, 0, 28082, 28083, 7, 6, 0, 0, 28083, 28084, 7, 24, 0, 0, 28084, 28085, 7, 9, 0, 0, 28085, 28086, 7, 6, 0, 0, 28086, 28087, 7, 6, 0, 0, 28087, 28088, 7, 15, 0, 0, 28088, 28089, 7, 6, 0, 0, 28089, 28090, 7, 24, 0, 0, 28090, 4112, 1, 0, 0, 0, 28091, 28092, 7, 5, 0, 0, 28092, 28093, 7, 18, 0, 0, 28093, 28094, 7, 5, 0, 0, 28094, 28095, 5, 95, 0, 0, 28095, 28096, 7, 25, 0, 0, 28096, 28097, 7, 24, 0, 0, 28097, 28098, 7, 5, 0, 0, 28098, 28099, 7, 6, 0, 0, 28099, 28100, 7, 24, 0, 0, 28100, 28101, 7, 10, 0, 0, 28101, 28102, 7, 7, 0, 0, 28102, 28103, 7, 5, 0, 0, 28103, 28104, 7, 1, 0, 0, 28104, 4114, 1, 0, 0, 0, 28105, 28106, 7, 5, 0, 0, 28106, 28107, 7, 18, 0, 0, 28107, 28108, 7, 5, 0, 0, 28108, 28109, 5, 95, 0, 0, 28109, 28110, 7, 25, 0, 0, 28110, 28111, 7, 24, 0, 0, 28111, 28112, 7, 5, 0, 0, 28112, 28113, 7, 6, 0, 0, 28113, 28114, 7, 24, 0, 0, 28114, 28115, 7, 3, 0, 0, 28115, 28116, 7, 14, 0, 0, 28116, 4116, 1, 0, 0, 0, 28117, 28118, 7, 5, 0, 0, 28118, 28119, 7, 18, 0, 0, 28119, 28120, 7, 5, 0, 0, 28120, 28121, 5, 95, 0, 0, 28121, 28122, 7, 25, 0, 0, 28122, 28123, 7, 24, 0, 0, 28123, 28124, 7, 5, 0, 0, 28124, 28125, 7, 6, 0, 0, 28125, 28126, 7, 24, 0, 0, 28126, 28127, 7, 3, 0, 0, 28127, 28128, 7, 13, 0, 0, 28128, 28129, 7, 5, 0, 0, 28129, 4118, 1, 0, 0, 0, 28130, 28131, 7, 5, 0, 0, 28131, 28132, 7, 18, 0, 0, 28132, 28133, 7, 5, 0, 0, 28133, 28134, 5, 95, 0, 0, 28134, 28135, 7, 25, 0, 0, 28135, 28136, 7, 24, 0, 0, 28136, 28137, 7, 5, 0, 0, 28137, 28138, 7, 6, 0, 0, 28138, 28139, 7, 24, 0, 0, 28139, 28140, 7, 5, 0, 0, 28140, 28141, 7, 12, 0, 0, 28141, 28142, 7, 1, 0, 0, 28142, 4120, 1, 0, 0, 0, 28143, 28144, 7, 5, 0, 0, 28144, 28145, 7, 18, 0, 0, 28145, 28146, 7, 5, 0, 0, 28146, 28147, 5, 95, 0, 0, 28147, 28148, 7, 25, 0, 0, 28148, 28149, 7, 24, 0, 0, 28149, 28150, 7, 5, 0, 0, 28150, 28151, 7, 6, 0, 0, 28151, 28152, 7, 24, 0, 0, 28152, 28153, 7, 4, 0, 0, 28153, 28154, 7, 18, 0, 0, 28154, 28155, 7, 15, 0, 0, 28155, 28156, 7, 14, 0, 0, 28156, 28157, 7, 0, 0, 0, 28157, 28158, 7, 4, 0, 0, 28158, 28159, 7, 8, 0, 0, 28159, 28160, 7, 19, 0, 0, 28160, 4122, 1, 0, 0, 0, 28161, 28162, 7, 5, 0, 0, 28162, 28163, 7, 18, 0, 0, 28163, 28164, 7, 5, 0, 0, 28164, 28165, 5, 95, 0, 0, 28165, 28166, 7, 25, 0, 0, 28166, 28167, 7, 24, 0, 0, 28167, 28168, 7, 5, 0, 0, 28168, 28169, 7, 4, 0, 0, 28169, 28170, 7, 0, 0, 0, 28170, 28171, 7, 3, 0, 0, 28171, 28172, 7, 4, 0, 0, 28172, 28173, 7, 5, 0, 0, 28173, 28174, 7, 22, 0, 0, 28174, 28175, 7, 10, 0, 0, 28175, 28176, 7, 4, 0, 0, 28176, 28177, 7, 19, 0, 0, 28177, 4124, 1, 0, 0, 0, 28178, 28179, 7, 5, 0, 0, 28179, 28180, 7, 18, 0, 0, 28180, 28181, 7, 5, 0, 0, 28181, 28182, 5, 95, 0, 0, 28182, 28183, 7, 25, 0, 0, 28183, 28184, 7, 24, 0, 0, 28184, 28185, 7, 5, 0, 0, 28185, 28186, 7, 4, 0, 0, 28186, 28187, 7, 0, 0, 0, 28187, 28188, 7, 4, 0, 0, 28188, 28189, 7, 1, 0, 0, 28189, 28190, 7, 12, 0, 0, 28190, 28191, 7, 3, 0, 0, 28191, 28192, 7, 10, 0, 0, 28192, 4126, 1, 0, 0, 0, 28193, 28194, 7, 5, 0, 0, 28194, 28195, 7, 18, 0, 0, 28195, 28196, 7, 5, 0, 0, 28196, 28197, 5, 95, 0, 0, 28197, 28198, 7, 25, 0, 0, 28198, 28199, 7, 24, 0, 0, 28199, 28200, 7, 5, 0, 0, 28200, 28201, 7, 4, 0, 0, 28201, 28202, 7, 3, 0, 0, 28202, 28203, 5, 50, 0, 0, 28203, 28204, 7, 8, 0, 0, 28204, 28205, 7, 2, 0, 0, 28205, 28206, 7, 9, 0, 0, 28206, 28207, 7, 6, 0, 0, 28207, 28208, 7, 15, 0, 0, 28208, 4128, 1, 0, 0, 0, 28209, 28210, 7, 5, 0, 0, 28210, 28211, 7, 18, 0, 0, 28211, 28212, 7, 5, 0, 0, 28212, 28213, 5, 95, 0, 0, 28213, 28214, 7, 25, 0, 0, 28214, 28215, 7, 24, 0, 0, 28215, 28216, 7, 5, 0, 0, 28216, 28217, 7, 4, 0, 0, 28217, 28218, 7, 3, 0, 0, 28218, 28219, 7, 20, 0, 0, 28219, 28220, 7, 2, 0, 0, 28220, 28221, 7, 10, 0, 0, 28221, 28222, 7, 7, 0, 0, 28222, 4130, 1, 0, 0, 0, 28223, 28224, 7, 5, 0, 0, 28224, 28225, 7, 18, 0, 0, 28225, 28226, 7, 5, 0, 0, 28226, 28227, 5, 95, 0, 0, 28227, 28228, 7, 25, 0, 0, 28228, 28229, 7, 24, 0, 0, 28229, 28230, 7, 5, 0, 0, 28230, 28231, 7, 12, 0, 0, 28231, 28232, 7, 1, 0, 0, 28232, 28233, 7, 5, 0, 0, 28233, 28234, 7, 4, 0, 0, 28234, 28235, 7, 3, 0, 0, 28235, 28236, 7, 0, 0, 0, 28236, 28237, 7, 16, 0, 0, 28237, 28238, 7, 4, 0, 0, 28238, 4132, 1, 0, 0, 0, 28239, 28240, 7, 5, 0, 0, 28240, 28241, 7, 18, 0, 0, 28241, 28242, 7, 5, 0, 0, 28242, 28243, 5, 95, 0, 0, 28243, 28244, 7, 25, 0, 0, 28244, 28245, 7, 24, 0, 0, 28245, 28246, 7, 5, 0, 0, 28246, 28247, 7, 12, 0, 0, 28247, 28248, 7, 1, 0, 0, 28248, 28249, 7, 5, 0, 0, 28249, 28250, 7, 4, 0, 0, 28250, 28251, 7, 3, 0, 0, 28251, 28252, 7, 1, 0, 0, 28252, 28253, 7, 6, 0, 0, 28253, 28254, 7, 16, 0, 0, 28254, 4134, 1, 0, 0, 0, 28255, 28256, 7, 5, 0, 0, 28256, 28257, 7, 18, 0, 0, 28257, 28258, 7, 5, 0, 0, 28258, 28259, 5, 95, 0, 0, 28259, 28260, 7, 25, 0, 0, 28260, 28261, 7, 24, 0, 0, 28261, 28262, 7, 4, 0, 0, 28262, 28263, 7, 2, 0, 0, 28263, 28264, 7, 21, 0, 0, 28264, 28265, 7, 6, 0, 0, 28265, 28266, 7, 7, 0, 0, 28266, 28267, 7, 10, 0, 0, 28267, 28268, 7, 23, 0, 0, 28268, 28269, 7, 6, 0, 0, 28269, 4136, 1, 0, 0, 0, 28270, 28271, 7, 5, 0, 0, 28271, 28272, 7, 18, 0, 0, 28272, 28273, 7, 5, 0, 0, 28273, 28274, 5, 95, 0, 0, 28274, 28275, 7, 25, 0, 0, 28275, 28276, 7, 24, 0, 0, 28276, 28277, 7, 4, 0, 0, 28277, 28278, 7, 3, 0, 0, 28278, 28279, 7, 6, 0, 0, 28279, 28280, 7, 0, 0, 0, 28280, 28281, 7, 4, 0, 0, 28281, 28282, 7, 0, 0, 0, 28282, 28283, 7, 5, 0, 0, 28283, 4138, 1, 0, 0, 0, 28284, 28285, 7, 5, 0, 0, 28285, 28286, 7, 18, 0, 0, 28286, 28287, 7, 5, 0, 0, 28287, 28288, 5, 95, 0, 0, 28288, 28289, 7, 25, 0, 0, 28289, 28290, 7, 24, 0, 0, 28290, 28291, 5, 95, 0, 0, 28291, 28292, 7, 12, 0, 0, 28292, 28293, 7, 15, 0, 0, 28293, 28294, 7, 21, 0, 0, 28294, 28295, 7, 25, 0, 0, 28295, 28296, 7, 14, 0, 0, 28296, 28297, 7, 11, 0, 0, 28297, 28298, 5, 50, 0, 0, 28298, 28299, 7, 5, 0, 0, 28299, 28300, 7, 24, 0, 0, 28300, 28301, 7, 11, 0, 0, 28301, 4140, 1, 0, 0, 0, 28302, 28303, 7, 5, 0, 0, 28303, 28304, 7, 18, 0, 0, 28304, 28305, 7, 5, 0, 0, 28305, 28306, 5, 95, 0, 0, 28306, 28307, 7, 25, 0, 0, 28307, 28308, 7, 24, 0, 0, 28308, 28309, 7, 25, 0, 0, 28309, 28310, 7, 16, 0, 0, 28310, 28311, 7, 2, 0, 0, 28311, 28312, 7, 3, 0, 0, 28312, 28313, 7, 14, 0, 0, 28313, 4142, 1, 0, 0, 0, 28314, 28315, 7, 5, 0, 0, 28315, 28316, 7, 18, 0, 0, 28316, 28317, 7, 5, 0, 0, 28317, 28318, 5, 95, 0, 0, 28318, 28319, 7, 25, 0, 0, 28319, 28320, 7, 5, 0, 0, 28320, 28321, 7, 10, 0, 0, 28321, 28322, 7, 9, 0, 0, 28322, 28323, 5, 95, 0, 0, 28323, 28324, 7, 4, 0, 0, 28324, 28325, 7, 2, 0, 0, 28325, 28326, 5, 95, 0, 0, 28326, 28327, 7, 3, 0, 0, 28327, 28328, 7, 0, 0, 0, 28328, 28329, 7, 22, 0, 0, 28329, 4144, 1, 0, 0, 0, 28330, 28331, 7, 5, 0, 0, 28331, 28332, 7, 18, 0, 0, 28332, 28333, 7, 5, 0, 0, 28333, 28334, 5, 95, 0, 0, 28334, 28335, 7, 23, 0, 0, 28335, 28336, 7, 14, 0, 0, 28336, 28337, 7, 0, 0, 0, 28337, 28338, 7, 15, 0, 0, 28338, 28339, 5, 95, 0, 0, 28339, 28340, 7, 16, 0, 0, 28340, 28341, 7, 10, 0, 0, 28341, 28342, 7, 11, 0, 0, 28342, 28343, 7, 4, 0, 0, 28343, 28344, 7, 6, 0, 0, 28344, 28345, 7, 3, 0, 0, 28345, 4146, 1, 0, 0, 0, 28346, 28347, 7, 5, 0, 0, 28347, 28348, 7, 18, 0, 0, 28348, 28349, 7, 5, 0, 0, 28349, 28350, 5, 95, 0, 0, 28350, 28351, 7, 23, 0, 0, 28351, 28352, 7, 14, 0, 0, 28352, 28353, 7, 0, 0, 0, 28353, 28354, 7, 15, 0, 0, 28354, 28355, 5, 95, 0, 0, 28355, 28356, 7, 3, 0, 0, 28356, 28357, 7, 6, 0, 0, 28357, 28358, 7, 16, 0, 0, 28358, 28359, 7, 3, 0, 0, 28359, 28360, 7, 6, 0, 0, 28360, 28361, 7, 5, 0, 0, 28361, 28362, 7, 19, 0, 0, 28362, 4148, 1, 0, 0, 0, 28363, 28364, 7, 4, 0, 0, 28364, 4150, 1, 0, 0, 0, 28365, 28366, 7, 4, 0, 0, 28366, 28367, 7, 0, 0, 0, 28367, 28368, 7, 1, 0, 0, 28368, 28369, 7, 11, 0, 0, 28369, 28370, 7, 6, 0, 0, 28370, 28371, 5, 95, 0, 0, 28371, 28372, 7, 11, 0, 0, 28372, 28373, 7, 2, 0, 0, 28373, 28374, 7, 2, 0, 0, 28374, 28375, 7, 21, 0, 0, 28375, 28376, 7, 12, 0, 0, 28376, 28377, 7, 15, 0, 0, 28377, 28378, 5, 95, 0, 0, 28378, 28379, 7, 1, 0, 0, 28379, 28380, 7, 18, 0, 0, 28380, 28381, 5, 95, 0, 0, 28381, 28382, 7, 7, 0, 0, 28382, 28383, 7, 11, 0, 0, 28383, 4152, 1, 0, 0, 0, 28384, 28385, 7, 4, 0, 0, 28385, 28386, 7, 0, 0, 0, 28386, 28387, 7, 1, 0, 0, 28387, 28388, 7, 11, 0, 0, 28388, 28389, 7, 6, 0, 0, 28389, 28390, 7, 5, 0, 0, 28390, 28391, 7, 15, 0, 0, 28391, 28392, 7, 0, 0, 0, 28392, 28393, 7, 8, 0, 0, 28393, 28394, 7, 6, 0, 0, 28394, 28395, 5, 95, 0, 0, 28395, 28396, 7, 7, 0, 0, 28396, 28397, 7, 2, 0, 0, 28397, 4154, 1, 0, 0, 0, 28398, 28399, 7, 4, 0, 0, 28399, 28400, 7, 0, 0, 0, 28400, 28401, 7, 1, 0, 0, 28401, 28402, 7, 11, 0, 0, 28402, 28403, 7, 6, 0, 0, 28403, 28404, 7, 5, 0, 0, 28404, 28405, 7, 15, 0, 0, 28405, 28406, 7, 0, 0, 0, 28406, 28407, 7, 8, 0, 0, 28407, 28408, 7, 6, 0, 0, 28408, 4156, 1, 0, 0, 0, 28409, 28410, 7, 4, 0, 0, 28410, 28411, 7, 0, 0, 0, 28411, 28412, 7, 1, 0, 0, 28412, 28413, 7, 11, 0, 0, 28413, 28414, 7, 6, 0, 0, 28414, 28415, 7, 5, 0, 0, 28415, 4158, 1, 0, 0, 0, 28416, 28417, 7, 4, 0, 0, 28417, 28418, 7, 0, 0, 0, 28418, 28419, 7, 1, 0, 0, 28419, 28420, 7, 11, 0, 0, 28420, 28421, 7, 6, 0, 0, 28421, 28422, 5, 95, 0, 0, 28422, 28423, 7, 5, 0, 0, 28423, 28424, 7, 4, 0, 0, 28424, 28425, 7, 0, 0, 0, 28425, 28426, 7, 4, 0, 0, 28426, 28427, 7, 5, 0, 0, 28427, 4160, 1, 0, 0, 0, 28428, 28429, 7, 4, 0, 0, 28429, 28430, 7, 0, 0, 0, 28430, 28431, 7, 1, 0, 0, 28431, 28432, 7, 11, 0, 0, 28432, 28433, 7, 6, 0, 0, 28433, 4162, 1, 0, 0, 0, 28434, 28435, 7, 4, 0, 0, 28435, 28436, 7, 0, 0, 0, 28436, 28437, 7, 1, 0, 0, 28437, 28438, 7, 7, 0, 0, 28438, 28439, 7, 2, 0, 0, 28439, 4164, 1, 0, 0, 0, 28440, 28441, 7, 4, 0, 0, 28441, 28442, 7, 0, 0, 0, 28442, 28443, 7, 17, 0, 0, 28443, 4166, 1, 0, 0, 0, 28444, 28445, 7, 4, 0, 0, 28445, 28446, 7, 0, 0, 0, 28446, 28447, 7, 7, 0, 0, 28447, 28448, 7, 19, 0, 0, 28448, 4168, 1, 0, 0, 0, 28449, 28450, 7, 4, 0, 0, 28450, 28451, 7, 0, 0, 0, 28451, 28452, 7, 7, 0, 0, 28452, 4170, 1, 0, 0, 0, 28453, 28454, 7, 4, 0, 0, 28454, 28455, 7, 1, 0, 0, 28455, 28456, 7, 11, 0, 0, 28456, 28457, 5, 36, 0, 0, 28457, 28458, 7, 2, 0, 0, 28458, 28459, 7, 3, 0, 0, 28459, 28460, 5, 36, 0, 0, 28460, 28461, 7, 10, 0, 0, 28461, 28462, 7, 9, 0, 0, 28462, 28463, 7, 25, 0, 0, 28463, 28464, 5, 36, 0, 0, 28464, 28465, 7, 15, 0, 0, 28465, 28466, 7, 0, 0, 0, 28466, 28467, 7, 3, 0, 0, 28467, 28468, 7, 4, 0, 0, 28468, 28469, 5, 36, 0, 0, 28469, 28470, 7, 7, 0, 0, 28470, 28471, 7, 12, 0, 0, 28471, 28472, 7, 14, 0, 0, 28472, 4172, 1, 0, 0, 0, 28473, 28474, 7, 4, 0, 0, 28474, 28475, 7, 6, 0, 0, 28475, 28476, 7, 14, 0, 0, 28476, 28477, 7, 15, 0, 0, 28477, 28478, 7, 16, 0, 0, 28478, 28479, 7, 10, 0, 0, 28479, 28480, 7, 11, 0, 0, 28480, 28481, 7, 6, 0, 0, 28481, 4174, 1, 0, 0, 0, 28482, 28483, 7, 4, 0, 0, 28483, 28484, 7, 6, 0, 0, 28484, 28485, 7, 14, 0, 0, 28485, 28486, 7, 15, 0, 0, 28486, 28487, 7, 11, 0, 0, 28487, 28488, 7, 0, 0, 0, 28488, 28489, 7, 4, 0, 0, 28489, 28490, 7, 6, 0, 0, 28490, 4176, 1, 0, 0, 0, 28491, 28492, 7, 4, 0, 0, 28492, 28493, 7, 6, 0, 0, 28493, 28494, 7, 14, 0, 0, 28494, 28495, 7, 15, 0, 0, 28495, 28496, 7, 11, 0, 0, 28496, 28497, 7, 0, 0, 0, 28497, 28498, 7, 4, 0, 0, 28498, 28499, 7, 6, 0, 0, 28499, 28500, 5, 95, 0, 0, 28500, 28501, 7, 4, 0, 0, 28501, 28502, 7, 0, 0, 0, 28502, 28503, 7, 1, 0, 0, 28503, 28504, 7, 11, 0, 0, 28504, 28505, 7, 6, 0, 0, 28505, 4178, 1, 0, 0, 0, 28506, 28507, 7, 4, 0, 0, 28507, 28508, 7, 6, 0, 0, 28508, 28509, 7, 14, 0, 0, 28509, 28510, 7, 15, 0, 0, 28510, 28511, 7, 2, 0, 0, 28511, 28512, 7, 3, 0, 0, 28512, 28513, 7, 0, 0, 0, 28513, 28514, 7, 3, 0, 0, 28514, 28515, 7, 18, 0, 0, 28515, 4180, 1, 0, 0, 0, 28516, 28517, 7, 4, 0, 0, 28517, 28518, 7, 6, 0, 0, 28518, 28519, 7, 14, 0, 0, 28519, 28520, 7, 15, 0, 0, 28520, 28521, 5, 95, 0, 0, 28521, 28522, 7, 4, 0, 0, 28522, 28523, 7, 0, 0, 0, 28523, 28524, 7, 1, 0, 0, 28524, 28525, 7, 11, 0, 0, 28525, 28526, 7, 6, 0, 0, 28526, 4182, 1, 0, 0, 0, 28527, 28528, 7, 4, 0, 0, 28528, 28529, 7, 6, 0, 0, 28529, 28530, 7, 3, 0, 0, 28530, 28531, 7, 14, 0, 0, 28531, 28532, 7, 10, 0, 0, 28532, 28533, 7, 7, 0, 0, 28533, 28534, 7, 0, 0, 0, 28534, 28535, 7, 4, 0, 0, 28535, 28536, 7, 6, 0, 0, 28536, 28537, 7, 9, 0, 0, 28537, 4184, 1, 0, 0, 0, 28538, 28539, 7, 4, 0, 0, 28539, 28540, 7, 6, 0, 0, 28540, 28541, 7, 5, 0, 0, 28541, 28542, 7, 4, 0, 0, 28542, 4186, 1, 0, 0, 0, 28543, 28544, 7, 4, 0, 0, 28544, 28545, 7, 6, 0, 0, 28545, 28546, 7, 25, 0, 0, 28546, 28547, 7, 4, 0, 0, 28547, 4188, 1, 0, 0, 0, 28548, 28549, 7, 4, 0, 0, 28549, 28550, 7, 6, 0, 0, 28550, 28551, 7, 25, 0, 0, 28551, 28552, 7, 4, 0, 0, 28552, 28553, 7, 16, 0, 0, 28553, 28554, 7, 10, 0, 0, 28554, 28555, 7, 11, 0, 0, 28555, 28556, 7, 6, 0, 0, 28556, 4190, 1, 0, 0, 0, 28557, 28558, 7, 4, 0, 0, 28558, 28559, 7, 19, 0, 0, 28559, 28560, 7, 0, 0, 0, 28560, 28561, 7, 7, 0, 0, 28561, 4192, 1, 0, 0, 0, 28562, 28563, 7, 4, 0, 0, 28563, 28564, 7, 19, 0, 0, 28564, 28565, 7, 6, 0, 0, 28565, 28566, 7, 7, 0, 0, 28566, 4194, 1, 0, 0, 0, 28567, 28568, 7, 4, 0, 0, 28568, 28569, 7, 19, 0, 0, 28569, 28570, 7, 6, 0, 0, 28570, 4196, 1, 0, 0, 0, 28571, 28572, 7, 4, 0, 0, 28572, 28573, 7, 19, 0, 0, 28573, 28574, 7, 6, 0, 0, 28574, 28575, 7, 5, 0, 0, 28575, 28576, 7, 6, 0, 0, 28576, 4198, 1, 0, 0, 0, 28577, 28578, 7, 4, 0, 0, 28578, 28579, 7, 19, 0, 0, 28579, 28580, 7, 3, 0, 0, 28580, 28581, 7, 6, 0, 0, 28581, 28582, 7, 0, 0, 0, 28582, 28583, 7, 9, 0, 0, 28583, 4200, 1, 0, 0, 0, 28584, 28585, 7, 4, 0, 0, 28585, 28586, 7, 19, 0, 0, 28586, 28587, 7, 3, 0, 0, 28587, 28588, 7, 2, 0, 0, 28588, 28589, 7, 12, 0, 0, 28589, 28590, 7, 17, 0, 0, 28590, 28591, 7, 19, 0, 0, 28591, 4202, 1, 0, 0, 0, 28592, 28593, 7, 4, 0, 0, 28593, 28594, 7, 10, 0, 0, 28594, 28595, 7, 6, 0, 0, 28595, 28596, 7, 3, 0, 0, 28596, 4204, 1, 0, 0, 0, 28597, 28598, 7, 4, 0, 0, 28598, 28599, 7, 10, 0, 0, 28599, 28600, 7, 6, 0, 0, 28600, 28601, 7, 5, 0, 0, 28601, 4206, 1, 0, 0, 0, 28602, 28603, 7, 4, 0, 0, 28603, 28604, 7, 10, 0, 0, 28604, 28605, 7, 14, 0, 0, 28605, 28606, 7, 6, 0, 0, 28606, 28607, 7, 2, 0, 0, 28607, 28608, 7, 12, 0, 0, 28608, 28609, 7, 4, 0, 0, 28609, 4208, 1, 0, 0, 0, 28610, 28611, 7, 4, 0, 0, 28611, 28612, 7, 10, 0, 0, 28612, 28613, 7, 14, 0, 0, 28613, 28614, 7, 6, 0, 0, 28614, 28615, 7, 5, 0, 0, 28615, 28616, 7, 4, 0, 0, 28616, 28617, 7, 0, 0, 0, 28617, 28618, 7, 14, 0, 0, 28618, 28619, 7, 15, 0, 0, 28619, 28620, 5, 95, 0, 0, 28620, 28621, 7, 11, 0, 0, 28621, 28622, 7, 4, 0, 0, 28622, 28623, 7, 23, 0, 0, 28623, 28624, 5, 95, 0, 0, 28624, 28625, 7, 12, 0, 0, 28625, 28626, 7, 7, 0, 0, 28626, 28627, 7, 8, 0, 0, 28627, 28628, 7, 2, 0, 0, 28628, 28629, 7, 7, 0, 0, 28629, 28630, 7, 5, 0, 0, 28630, 28631, 7, 4, 0, 0, 28631, 28632, 7, 3, 0, 0, 28632, 28633, 7, 0, 0, 0, 28633, 28634, 7, 10, 0, 0, 28634, 28635, 7, 7, 0, 0, 28635, 28636, 7, 6, 0, 0, 28636, 28637, 7, 9, 0, 0, 28637, 4210, 1, 0, 0, 0, 28638, 28639, 7, 4, 0, 0, 28639, 28640, 7, 10, 0, 0, 28640, 28641, 7, 14, 0, 0, 28641, 28642, 7, 6, 0, 0, 28642, 28643, 7, 5, 0, 0, 28643, 28644, 7, 4, 0, 0, 28644, 28645, 7, 0, 0, 0, 28645, 28646, 7, 14, 0, 0, 28646, 28647, 7, 15, 0, 0, 28647, 4212, 1, 0, 0, 0, 28648, 28649, 7, 4, 0, 0, 28649, 28650, 7, 10, 0, 0, 28650, 28651, 7, 14, 0, 0, 28651, 28652, 7, 6, 0, 0, 28652, 28653, 7, 5, 0, 0, 28653, 28654, 7, 4, 0, 0, 28654, 28655, 7, 0, 0, 0, 28655, 28656, 7, 14, 0, 0, 28656, 28657, 7, 15, 0, 0, 28657, 28658, 5, 95, 0, 0, 28658, 28659, 7, 4, 0, 0, 28659, 28660, 7, 23, 0, 0, 28660, 28661, 5, 95, 0, 0, 28661, 28662, 7, 12, 0, 0, 28662, 28663, 7, 7, 0, 0, 28663, 28664, 7, 8, 0, 0, 28664, 28665, 7, 2, 0, 0, 28665, 28666, 7, 7, 0, 0, 28666, 28667, 7, 5, 0, 0, 28667, 28668, 7, 4, 0, 0, 28668, 28669, 7, 3, 0, 0, 28669, 28670, 7, 0, 0, 0, 28670, 28671, 7, 10, 0, 0, 28671, 28672, 7, 7, 0, 0, 28672, 28673, 7, 6, 0, 0, 28673, 28674, 7, 9, 0, 0, 28674, 4214, 1, 0, 0, 0, 28675, 28676, 7, 4, 0, 0, 28676, 28677, 7, 10, 0, 0, 28677, 28678, 7, 14, 0, 0, 28678, 28679, 7, 6, 0, 0, 28679, 28680, 7, 5, 0, 0, 28680, 28681, 7, 4, 0, 0, 28681, 28682, 7, 0, 0, 0, 28682, 28683, 7, 14, 0, 0, 28683, 28684, 7, 15, 0, 0, 28684, 28685, 5, 95, 0, 0, 28685, 28686, 7, 12, 0, 0, 28686, 28687, 7, 7, 0, 0, 28687, 28688, 7, 8, 0, 0, 28688, 28689, 7, 2, 0, 0, 28689, 28690, 7, 7, 0, 0, 28690, 28691, 7, 5, 0, 0, 28691, 28692, 7, 4, 0, 0, 28692, 28693, 7, 3, 0, 0, 28693, 28694, 7, 0, 0, 0, 28694, 28695, 7, 10, 0, 0, 28695, 28696, 7, 7, 0, 0, 28696, 28697, 7, 6, 0, 0, 28697, 28698, 7, 9, 0, 0, 28698, 4216, 1, 0, 0, 0, 28699, 28700, 7, 4, 0, 0, 28700, 28701, 7, 10, 0, 0, 28701, 28702, 7, 14, 0, 0, 28702, 28703, 7, 6, 0, 0, 28703, 28704, 7, 5, 0, 0, 28704, 4218, 1, 0, 0, 0, 28705, 28706, 7, 4, 0, 0, 28706, 28707, 7, 10, 0, 0, 28707, 28708, 7, 14, 0, 0, 28708, 28709, 7, 6, 0, 0, 28709, 4220, 1, 0, 0, 0, 28710, 28711, 7, 4, 0, 0, 28711, 28712, 7, 10, 0, 0, 28712, 28713, 7, 14, 0, 0, 28713, 28714, 7, 6, 0, 0, 28714, 28715, 7, 23, 0, 0, 28715, 28716, 7, 2, 0, 0, 28716, 28717, 7, 7, 0, 0, 28717, 28718, 7, 6, 0, 0, 28718, 4222, 1, 0, 0, 0, 28719, 28720, 7, 4, 0, 0, 28720, 28721, 7, 10, 0, 0, 28721, 28722, 7, 14, 0, 0, 28722, 28723, 7, 6, 0, 0, 28723, 28724, 7, 23, 0, 0, 28724, 28725, 7, 2, 0, 0, 28725, 28726, 7, 7, 0, 0, 28726, 28727, 7, 6, 0, 0, 28727, 28728, 5, 95, 0, 0, 28728, 28729, 7, 0, 0, 0, 28729, 28730, 7, 1, 0, 0, 28730, 28731, 7, 1, 0, 0, 28731, 28732, 7, 3, 0, 0, 28732, 4224, 1, 0, 0, 0, 28733, 28734, 7, 4, 0, 0, 28734, 28735, 7, 10, 0, 0, 28735, 28736, 7, 14, 0, 0, 28736, 28737, 7, 6, 0, 0, 28737, 28738, 7, 23, 0, 0, 28738, 28739, 7, 2, 0, 0, 28739, 28740, 7, 7, 0, 0, 28740, 28741, 7, 6, 0, 0, 28741, 28742, 5, 95, 0, 0, 28742, 28743, 7, 19, 0, 0, 28743, 28744, 7, 2, 0, 0, 28744, 28745, 7, 12, 0, 0, 28745, 28746, 7, 3, 0, 0, 28746, 4226, 1, 0, 0, 0, 28747, 28748, 7, 4, 0, 0, 28748, 28749, 7, 10, 0, 0, 28749, 28750, 7, 14, 0, 0, 28750, 28751, 7, 6, 0, 0, 28751, 28752, 7, 23, 0, 0, 28752, 28753, 7, 2, 0, 0, 28753, 28754, 7, 7, 0, 0, 28754, 28755, 7, 6, 0, 0, 28755, 28756, 5, 95, 0, 0, 28756, 28757, 7, 14, 0, 0, 28757, 28758, 7, 10, 0, 0, 28758, 28759, 7, 7, 0, 0, 28759, 28760, 7, 12, 0, 0, 28760, 28761, 7, 4, 0, 0, 28761, 28762, 7, 6, 0, 0, 28762, 4228, 1, 0, 0, 0, 28763, 28764, 7, 4, 0, 0, 28764, 28765, 7, 10, 0, 0, 28765, 28766, 7, 14, 0, 0, 28766, 28767, 7, 6, 0, 0, 28767, 28768, 7, 23, 0, 0, 28768, 28769, 7, 2, 0, 0, 28769, 28770, 7, 7, 0, 0, 28770, 28771, 7, 6, 0, 0, 28771, 28772, 5, 95, 0, 0, 28772, 28773, 7, 2, 0, 0, 28773, 28774, 7, 16, 0, 0, 28774, 28775, 7, 16, 0, 0, 28775, 28776, 7, 5, 0, 0, 28776, 28777, 7, 6, 0, 0, 28777, 28778, 7, 4, 0, 0, 28778, 4230, 1, 0, 0, 0, 28779, 28780, 7, 4, 0, 0, 28780, 28781, 7, 10, 0, 0, 28781, 28782, 7, 14, 0, 0, 28782, 28783, 7, 6, 0, 0, 28783, 28784, 7, 23, 0, 0, 28784, 28785, 7, 2, 0, 0, 28785, 28786, 7, 7, 0, 0, 28786, 28787, 7, 6, 0, 0, 28787, 28788, 5, 95, 0, 0, 28788, 28789, 7, 3, 0, 0, 28789, 28790, 7, 6, 0, 0, 28790, 28791, 7, 17, 0, 0, 28791, 28792, 7, 10, 0, 0, 28792, 28793, 7, 2, 0, 0, 28793, 28794, 7, 7, 0, 0, 28794, 4232, 1, 0, 0, 0, 28795, 28796, 7, 4, 0, 0, 28796, 28797, 7, 10, 0, 0, 28797, 28798, 7, 14, 0, 0, 28798, 28799, 7, 6, 0, 0, 28799, 28800, 5, 95, 0, 0, 28800, 28801, 7, 23, 0, 0, 28801, 28802, 7, 2, 0, 0, 28802, 28803, 7, 7, 0, 0, 28803, 28804, 7, 6, 0, 0, 28804, 4234, 1, 0, 0, 0, 28805, 28806, 7, 4, 0, 0, 28806, 28807, 7, 10, 0, 0, 28807, 28808, 7, 14, 0, 0, 28808, 28809, 7, 10, 0, 0, 28809, 28810, 7, 7, 0, 0, 28810, 28811, 7, 17, 0, 0, 28811, 4236, 1, 0, 0, 0, 28812, 28813, 7, 4, 0, 0, 28813, 28814, 7, 10, 0, 0, 28814, 28815, 7, 7, 0, 0, 28815, 28816, 7, 18, 0, 0, 28816, 28817, 7, 10, 0, 0, 28817, 28818, 7, 7, 0, 0, 28818, 28819, 7, 4, 0, 0, 28819, 4238, 1, 0, 0, 0, 28820, 28821, 7, 4, 0, 0, 28821, 28822, 7, 10, 0, 0, 28822, 28823, 7, 13, 0, 0, 28823, 28824, 5, 95, 0, 0, 28824, 28825, 7, 17, 0, 0, 28825, 28826, 7, 1, 0, 0, 28826, 4240, 1, 0, 0, 0, 28827, 28828, 7, 4, 0, 0, 28828, 28829, 7, 10, 0, 0, 28829, 28830, 7, 13, 0, 0, 28830, 28831, 5, 95, 0, 0, 28831, 28832, 7, 5, 0, 0, 28832, 28833, 7, 5, 0, 0, 28833, 28834, 7, 16, 0, 0, 28834, 4242, 1, 0, 0, 0, 28835, 28836, 7, 4, 0, 0, 28836, 28837, 7, 2, 0, 0, 28837, 28838, 5, 95, 0, 0, 28838, 28839, 7, 0, 0, 0, 28839, 28840, 7, 8, 0, 0, 28840, 28841, 7, 11, 0, 0, 28841, 28842, 7, 10, 0, 0, 28842, 28843, 7, 9, 0, 0, 28843, 4244, 1, 0, 0, 0, 28844, 28845, 7, 4, 0, 0, 28845, 28846, 7, 2, 0, 0, 28846, 28847, 5, 95, 0, 0, 28847, 28848, 7, 1, 0, 0, 28848, 28849, 7, 10, 0, 0, 28849, 28850, 7, 7, 0, 0, 28850, 28851, 7, 0, 0, 0, 28851, 28852, 7, 3, 0, 0, 28852, 28853, 7, 18, 0, 0, 28853, 28854, 5, 95, 0, 0, 28854, 28855, 7, 9, 0, 0, 28855, 28856, 7, 2, 0, 0, 28856, 28857, 7, 12, 0, 0, 28857, 28858, 7, 1, 0, 0, 28858, 28859, 7, 11, 0, 0, 28859, 28860, 7, 6, 0, 0, 28860, 4246, 1, 0, 0, 0, 28861, 28862, 7, 4, 0, 0, 28862, 28863, 7, 2, 0, 0, 28863, 28864, 5, 95, 0, 0, 28864, 28865, 7, 1, 0, 0, 28865, 28866, 7, 10, 0, 0, 28866, 28867, 7, 7, 0, 0, 28867, 28868, 7, 0, 0, 0, 28868, 28869, 7, 3, 0, 0, 28869, 28870, 7, 18, 0, 0, 28870, 28871, 5, 95, 0, 0, 28871, 28872, 7, 16, 0, 0, 28872, 28873, 7, 11, 0, 0, 28873, 28874, 7, 2, 0, 0, 28874, 28875, 7, 0, 0, 0, 28875, 28876, 7, 4, 0, 0, 28876, 4248, 1, 0, 0, 0, 28877, 28878, 7, 4, 0, 0, 28878, 28879, 7, 2, 0, 0, 28879, 28880, 5, 95, 0, 0, 28880, 28881, 7, 1, 0, 0, 28881, 28882, 7, 11, 0, 0, 28882, 28883, 7, 2, 0, 0, 28883, 28884, 7, 1, 0, 0, 28884, 4250, 1, 0, 0, 0, 28885, 28886, 7, 4, 0, 0, 28886, 28887, 7, 2, 0, 0, 28887, 28888, 5, 95, 0, 0, 28888, 28889, 7, 8, 0, 0, 28889, 28890, 7, 11, 0, 0, 28890, 28891, 7, 2, 0, 0, 28891, 28892, 7, 1, 0, 0, 28892, 4252, 1, 0, 0, 0, 28893, 28894, 7, 4, 0, 0, 28894, 28895, 7, 2, 0, 0, 28895, 28896, 5, 95, 0, 0, 28896, 28897, 7, 9, 0, 0, 28897, 28898, 7, 5, 0, 0, 28898, 28899, 7, 10, 0, 0, 28899, 28900, 7, 7, 0, 0, 28900, 28901, 7, 4, 0, 0, 28901, 28902, 7, 6, 0, 0, 28902, 28903, 7, 3, 0, 0, 28903, 28904, 7, 13, 0, 0, 28904, 28905, 7, 0, 0, 0, 28905, 28906, 7, 11, 0, 0, 28906, 4254, 1, 0, 0, 0, 28907, 28908, 7, 4, 0, 0, 28908, 28909, 7, 2, 0, 0, 28909, 28910, 5, 95, 0, 0, 28910, 28911, 7, 11, 0, 0, 28911, 28912, 7, 2, 0, 0, 28912, 28913, 7, 1, 0, 0, 28913, 4256, 1, 0, 0, 0, 28914, 28915, 7, 4, 0, 0, 28915, 28916, 7, 2, 0, 0, 28916, 28917, 5, 95, 0, 0, 28917, 28918, 7, 14, 0, 0, 28918, 28919, 7, 12, 0, 0, 28919, 28920, 7, 11, 0, 0, 28920, 28921, 7, 4, 0, 0, 28921, 28922, 7, 10, 0, 0, 28922, 28923, 5, 95, 0, 0, 28923, 28924, 7, 1, 0, 0, 28924, 28925, 7, 18, 0, 0, 28925, 28926, 7, 4, 0, 0, 28926, 28927, 7, 6, 0, 0, 28927, 4258, 1, 0, 0, 0, 28928, 28929, 7, 4, 0, 0, 28929, 28930, 7, 2, 0, 0, 28930, 28931, 5, 95, 0, 0, 28931, 28932, 7, 7, 0, 0, 28932, 28933, 7, 8, 0, 0, 28933, 28934, 7, 19, 0, 0, 28934, 28935, 7, 0, 0, 0, 28935, 28936, 7, 3, 0, 0, 28936, 4260, 1, 0, 0, 0, 28937, 28938, 7, 4, 0, 0, 28938, 28939, 7, 2, 0, 0, 28939, 28940, 5, 95, 0, 0, 28940, 28941, 7, 7, 0, 0, 28941, 28942, 7, 8, 0, 0, 28942, 28943, 7, 11, 0, 0, 28943, 28944, 7, 2, 0, 0, 28944, 28945, 7, 1, 0, 0, 28945, 4262, 1, 0, 0, 0, 28946, 28947, 7, 4, 0, 0, 28947, 28948, 7, 2, 0, 0, 28948, 28949, 5, 95, 0, 0, 28949, 28950, 7, 7, 0, 0, 28950, 28951, 7, 12, 0, 0, 28951, 28952, 7, 14, 0, 0, 28952, 28953, 7, 1, 0, 0, 28953, 28954, 7, 6, 0, 0, 28954, 28955, 7, 3, 0, 0, 28955, 4264, 1, 0, 0, 0, 28956, 28957, 7, 4, 0, 0, 28957, 28958, 7, 2, 0, 0, 28958, 28959, 7, 15, 0, 0, 28959, 28960, 7, 11, 0, 0, 28960, 28961, 7, 6, 0, 0, 28961, 28962, 7, 13, 0, 0, 28962, 28963, 7, 6, 0, 0, 28963, 28964, 7, 11, 0, 0, 28964, 4266, 1, 0, 0, 0, 28965, 28966, 7, 4, 0, 0, 28966, 28967, 7, 2, 0, 0, 28967, 28968, 5, 95, 0, 0, 28968, 28969, 7, 5, 0, 0, 28969, 28970, 7, 10, 0, 0, 28970, 28971, 7, 7, 0, 0, 28971, 28972, 7, 17, 0, 0, 28972, 28973, 7, 11, 0, 0, 28973, 28974, 7, 6, 0, 0, 28974, 28975, 5, 95, 0, 0, 28975, 28976, 7, 1, 0, 0, 28976, 28977, 7, 18, 0, 0, 28977, 28978, 7, 4, 0, 0, 28978, 28979, 7, 6, 0, 0, 28979, 4268, 1, 0, 0, 0, 28980, 28981, 7, 4, 0, 0, 28981, 28982, 7, 2, 0, 0, 28982, 28983, 5, 95, 0, 0, 28983, 28984, 7, 4, 0, 0, 28984, 28985, 7, 10, 0, 0, 28985, 28986, 7, 14, 0, 0, 28986, 28987, 7, 6, 0, 0, 28987, 28988, 7, 5, 0, 0, 28988, 28989, 7, 4, 0, 0, 28989, 28990, 7, 0, 0, 0, 28990, 28991, 7, 14, 0, 0, 28991, 28992, 7, 15, 0, 0, 28992, 4270, 1, 0, 0, 0, 28993, 28994, 7, 4, 0, 0, 28994, 28995, 7, 2, 0, 0, 28995, 28996, 5, 95, 0, 0, 28996, 28997, 7, 4, 0, 0, 28997, 28998, 7, 10, 0, 0, 28998, 28999, 7, 14, 0, 0, 28999, 29000, 7, 6, 0, 0, 29000, 29001, 7, 5, 0, 0, 29001, 29002, 7, 4, 0, 0, 29002, 29003, 7, 0, 0, 0, 29003, 29004, 7, 14, 0, 0, 29004, 29005, 7, 15, 0, 0, 29005, 29006, 5, 95, 0, 0, 29006, 29007, 7, 4, 0, 0, 29007, 29008, 7, 23, 0, 0, 29008, 4272, 1, 0, 0, 0, 29009, 29010, 7, 4, 0, 0, 29010, 29011, 7, 2, 0, 0, 29011, 29012, 5, 95, 0, 0, 29012, 29013, 7, 4, 0, 0, 29013, 29014, 7, 10, 0, 0, 29014, 29015, 7, 14, 0, 0, 29015, 29016, 7, 6, 0, 0, 29016, 4274, 1, 0, 0, 0, 29017, 29018, 7, 4, 0, 0, 29018, 29019, 7, 2, 0, 0, 29019, 29020, 5, 95, 0, 0, 29020, 29021, 7, 4, 0, 0, 29021, 29022, 7, 10, 0, 0, 29022, 29023, 7, 14, 0, 0, 29023, 29024, 7, 6, 0, 0, 29024, 29025, 5, 95, 0, 0, 29025, 29026, 7, 4, 0, 0, 29026, 29027, 7, 23, 0, 0, 29027, 4276, 1, 0, 0, 0, 29028, 29029, 7, 4, 0, 0, 29029, 29030, 7, 2, 0, 0, 29030, 4278, 1, 0, 0, 0, 29031, 29032, 7, 4, 0, 0, 29032, 29033, 7, 2, 0, 0, 29033, 29034, 5, 95, 0, 0, 29034, 29035, 7, 18, 0, 0, 29035, 29036, 7, 14, 0, 0, 29036, 29037, 7, 10, 0, 0, 29037, 29038, 7, 7, 0, 0, 29038, 29039, 7, 4, 0, 0, 29039, 29040, 7, 6, 0, 0, 29040, 29041, 7, 3, 0, 0, 29041, 29042, 7, 13, 0, 0, 29042, 29043, 7, 0, 0, 0, 29043, 29044, 7, 11, 0, 0, 29044, 4280, 1, 0, 0, 0, 29045, 29046, 7, 4, 0, 0, 29046, 29047, 7, 3, 0, 0, 29047, 29048, 7, 0, 0, 0, 29048, 29049, 7, 8, 0, 0, 29049, 29050, 7, 6, 0, 0, 29050, 4282, 1, 0, 0, 0, 29051, 29052, 7, 4, 0, 0, 29052, 29053, 7, 3, 0, 0, 29053, 29054, 7, 0, 0, 0, 29054, 29055, 7, 8, 0, 0, 29055, 29056, 7, 10, 0, 0, 29056, 29057, 7, 7, 0, 0, 29057, 29058, 7, 17, 0, 0, 29058, 4284, 1, 0, 0, 0, 29059, 29060, 7, 4, 0, 0, 29060, 29061, 7, 3, 0, 0, 29061, 29062, 7, 0, 0, 0, 29062, 29063, 7, 8, 0, 0, 29063, 29064, 7, 21, 0, 0, 29064, 29065, 7, 10, 0, 0, 29065, 29066, 7, 7, 0, 0, 29066, 29067, 7, 17, 0, 0, 29067, 4286, 1, 0, 0, 0, 29068, 29069, 7, 4, 0, 0, 29069, 29070, 7, 3, 0, 0, 29070, 29071, 7, 0, 0, 0, 29071, 29072, 7, 10, 0, 0, 29072, 29073, 7, 11, 0, 0, 29073, 29074, 7, 10, 0, 0, 29074, 29075, 7, 7, 0, 0, 29075, 29076, 7, 17, 0, 0, 29076, 4288, 1, 0, 0, 0, 29077, 29078, 7, 4, 0, 0, 29078, 29079, 7, 3, 0, 0, 29079, 29080, 7, 0, 0, 0, 29080, 29081, 7, 7, 0, 0, 29081, 29082, 7, 5, 0, 0, 29082, 29083, 7, 0, 0, 0, 29083, 29084, 7, 8, 0, 0, 29084, 29085, 7, 4, 0, 0, 29085, 29086, 7, 10, 0, 0, 29086, 29087, 7, 2, 0, 0, 29087, 29088, 7, 7, 0, 0, 29088, 4290, 1, 0, 0, 0, 29089, 29090, 7, 4, 0, 0, 29090, 29091, 7, 3, 0, 0, 29091, 29092, 7, 0, 0, 0, 29092, 29093, 7, 7, 0, 0, 29093, 29094, 7, 5, 0, 0, 29094, 29095, 7, 16, 0, 0, 29095, 29096, 7, 2, 0, 0, 29096, 29097, 7, 3, 0, 0, 29097, 29098, 7, 14, 0, 0, 29098, 4292, 1, 0, 0, 0, 29099, 29100, 7, 4, 0, 0, 29100, 29101, 7, 3, 0, 0, 29101, 29102, 7, 0, 0, 0, 29102, 29103, 7, 7, 0, 0, 29103, 29104, 7, 5, 0, 0, 29104, 29105, 7, 16, 0, 0, 29105, 29106, 7, 2, 0, 0, 29106, 29107, 7, 3, 0, 0, 29107, 29108, 7, 14, 0, 0, 29108, 29109, 7, 5, 0, 0, 29109, 4294, 1, 0, 0, 0, 29110, 29111, 7, 4, 0, 0, 29111, 29112, 7, 3, 0, 0, 29112, 29113, 7, 0, 0, 0, 29113, 29114, 7, 7, 0, 0, 29114, 29115, 7, 5, 0, 0, 29115, 29116, 7, 16, 0, 0, 29116, 29117, 7, 2, 0, 0, 29117, 29118, 7, 3, 0, 0, 29118, 29119, 7, 14, 0, 0, 29119, 29120, 5, 95, 0, 0, 29120, 29121, 7, 9, 0, 0, 29121, 29122, 7, 10, 0, 0, 29122, 29123, 7, 5, 0, 0, 29123, 29124, 7, 4, 0, 0, 29124, 29125, 7, 10, 0, 0, 29125, 29126, 7, 7, 0, 0, 29126, 29127, 7, 8, 0, 0, 29127, 29128, 7, 4, 0, 0, 29128, 29129, 5, 95, 0, 0, 29129, 29130, 7, 0, 0, 0, 29130, 29131, 7, 17, 0, 0, 29131, 29132, 7, 17, 0, 0, 29132, 4296, 1, 0, 0, 0, 29133, 29134, 7, 4, 0, 0, 29134, 29135, 7, 3, 0, 0, 29135, 29136, 7, 0, 0, 0, 29136, 29137, 7, 7, 0, 0, 29137, 29138, 7, 5, 0, 0, 29138, 29139, 7, 10, 0, 0, 29139, 29140, 7, 4, 0, 0, 29140, 29141, 7, 10, 0, 0, 29141, 29142, 7, 2, 0, 0, 29142, 29143, 7, 7, 0, 0, 29143, 29144, 7, 0, 0, 0, 29144, 29145, 7, 11, 0, 0, 29145, 4298, 1, 0, 0, 0, 29146, 29147, 7, 4, 0, 0, 29147, 29148, 7, 3, 0, 0, 29148, 29149, 7, 0, 0, 0, 29149, 29150, 7, 7, 0, 0, 29150, 29151, 7, 5, 0, 0, 29151, 29152, 7, 10, 0, 0, 29152, 29153, 7, 4, 0, 0, 29153, 29154, 7, 10, 0, 0, 29154, 29155, 7, 2, 0, 0, 29155, 29156, 7, 7, 0, 0, 29156, 4300, 1, 0, 0, 0, 29157, 29158, 7, 4, 0, 0, 29158, 29159, 7, 3, 0, 0, 29159, 29160, 7, 0, 0, 0, 29160, 29161, 7, 7, 0, 0, 29161, 29162, 7, 5, 0, 0, 29162, 29163, 7, 11, 0, 0, 29163, 29164, 7, 0, 0, 0, 29164, 29165, 7, 4, 0, 0, 29165, 29166, 7, 6, 0, 0, 29166, 4302, 1, 0, 0, 0, 29167, 29168, 7, 4, 0, 0, 29168, 29169, 7, 3, 0, 0, 29169, 29170, 7, 0, 0, 0, 29170, 29171, 7, 7, 0, 0, 29171, 29172, 7, 5, 0, 0, 29172, 29173, 7, 11, 0, 0, 29173, 29174, 7, 0, 0, 0, 29174, 29175, 7, 4, 0, 0, 29175, 29176, 7, 10, 0, 0, 29176, 29177, 7, 2, 0, 0, 29177, 29178, 7, 7, 0, 0, 29178, 4304, 1, 0, 0, 0, 29179, 29180, 7, 4, 0, 0, 29180, 29181, 7, 3, 0, 0, 29181, 29182, 7, 6, 0, 0, 29182, 29183, 7, 0, 0, 0, 29183, 29184, 7, 4, 0, 0, 29184, 4306, 1, 0, 0, 0, 29185, 29186, 7, 4, 0, 0, 29186, 29187, 7, 3, 0, 0, 29187, 29188, 7, 10, 0, 0, 29188, 29189, 7, 17, 0, 0, 29189, 29190, 7, 17, 0, 0, 29190, 29191, 7, 6, 0, 0, 29191, 29192, 7, 3, 0, 0, 29192, 29193, 7, 5, 0, 0, 29193, 4308, 1, 0, 0, 0, 29194, 29195, 7, 4, 0, 0, 29195, 29196, 7, 3, 0, 0, 29196, 29197, 7, 10, 0, 0, 29197, 29198, 7, 17, 0, 0, 29198, 29199, 7, 17, 0, 0, 29199, 29200, 7, 6, 0, 0, 29200, 29201, 7, 3, 0, 0, 29201, 4310, 1, 0, 0, 0, 29202, 29203, 7, 4, 0, 0, 29203, 29204, 7, 3, 0, 0, 29204, 29205, 7, 12, 0, 0, 29205, 29206, 7, 6, 0, 0, 29206, 4312, 1, 0, 0, 0, 29207, 29208, 7, 4, 0, 0, 29208, 29209, 7, 3, 0, 0, 29209, 29210, 7, 12, 0, 0, 29210, 29211, 7, 7, 0, 0, 29211, 29212, 7, 8, 0, 0, 29212, 29213, 7, 0, 0, 0, 29213, 29214, 7, 4, 0, 0, 29214, 29215, 7, 6, 0, 0, 29215, 4314, 1, 0, 0, 0, 29216, 29217, 7, 4, 0, 0, 29217, 29218, 7, 3, 0, 0, 29218, 29219, 7, 12, 0, 0, 29219, 29220, 7, 7, 0, 0, 29220, 29221, 7, 8, 0, 0, 29221, 4316, 1, 0, 0, 0, 29222, 29223, 7, 4, 0, 0, 29223, 29224, 7, 3, 0, 0, 29224, 29225, 7, 12, 0, 0, 29225, 29226, 7, 5, 0, 0, 29226, 29227, 7, 4, 0, 0, 29227, 29228, 7, 6, 0, 0, 29228, 29229, 7, 9, 0, 0, 29229, 4318, 1, 0, 0, 0, 29230, 29231, 7, 4, 0, 0, 29231, 29232, 7, 3, 0, 0, 29232, 29233, 7, 12, 0, 0, 29233, 29234, 7, 5, 0, 0, 29234, 29235, 7, 4, 0, 0, 29235, 4320, 1, 0, 0, 0, 29236, 29237, 7, 4, 0, 0, 29237, 29238, 7, 12, 0, 0, 29238, 29239, 7, 7, 0, 0, 29239, 29240, 7, 10, 0, 0, 29240, 29241, 7, 7, 0, 0, 29241, 29242, 7, 17, 0, 0, 29242, 4322, 1, 0, 0, 0, 29243, 29244, 7, 4, 0, 0, 29244, 29245, 7, 25, 0, 0, 29245, 4324, 1, 0, 0, 0, 29246, 29247, 7, 4, 0, 0, 29247, 29248, 7, 18, 0, 0, 29248, 29249, 7, 15, 0, 0, 29249, 29250, 7, 6, 0, 0, 29250, 29251, 7, 5, 0, 0, 29251, 4326, 1, 0, 0, 0, 29252, 29253, 7, 4, 0, 0, 29253, 29254, 7, 18, 0, 0, 29254, 29255, 7, 15, 0, 0, 29255, 29256, 7, 6, 0, 0, 29256, 4328, 1, 0, 0, 0, 29257, 29258, 7, 4, 0, 0, 29258, 29259, 7, 23, 0, 0, 29259, 29260, 5, 95, 0, 0, 29260, 29261, 7, 2, 0, 0, 29261, 29262, 7, 16, 0, 0, 29262, 29263, 7, 16, 0, 0, 29263, 29264, 7, 5, 0, 0, 29264, 29265, 7, 6, 0, 0, 29265, 29266, 7, 4, 0, 0, 29266, 4330, 1, 0, 0, 0, 29267, 29268, 7, 12, 0, 0, 29268, 29269, 7, 1, 0, 0, 29269, 29270, 5, 50, 0, 0, 29270, 4332, 1, 0, 0, 0, 29271, 29272, 7, 12, 0, 0, 29272, 29273, 7, 1, 0, 0, 29273, 29274, 7, 0, 0, 0, 29274, 4334, 1, 0, 0, 0, 29275, 29276, 7, 12, 0, 0, 29276, 29277, 7, 8, 0, 0, 29277, 29278, 7, 5, 0, 0, 29278, 29279, 5, 50, 0, 0, 29279, 4336, 1, 0, 0, 0, 29280, 29281, 7, 12, 0, 0, 29281, 29282, 7, 9, 0, 0, 29282, 29283, 7, 16, 0, 0, 29283, 4338, 1, 0, 0, 0, 29284, 29285, 7, 12, 0, 0, 29285, 29286, 7, 10, 0, 0, 29286, 29287, 7, 9, 0, 0, 29287, 4340, 1, 0, 0, 0, 29288, 29289, 7, 12, 0, 0, 29289, 29290, 7, 7, 0, 0, 29290, 29291, 7, 0, 0, 0, 29291, 29292, 7, 3, 0, 0, 29292, 29293, 7, 8, 0, 0, 29293, 29294, 7, 19, 0, 0, 29294, 29295, 7, 10, 0, 0, 29295, 29296, 7, 13, 0, 0, 29296, 29297, 7, 6, 0, 0, 29297, 29298, 7, 9, 0, 0, 29298, 4342, 1, 0, 0, 0, 29299, 29300, 7, 12, 0, 0, 29300, 29301, 7, 7, 0, 0, 29301, 29302, 7, 1, 0, 0, 29302, 29303, 7, 2, 0, 0, 29303, 29304, 7, 12, 0, 0, 29304, 29305, 7, 7, 0, 0, 29305, 29306, 7, 9, 0, 0, 29306, 29307, 7, 6, 0, 0, 29307, 29308, 7, 9, 0, 0, 29308, 4344, 1, 0, 0, 0, 29309, 29310, 7, 12, 0, 0, 29310, 29311, 7, 7, 0, 0, 29311, 29312, 7, 1, 0, 0, 29312, 29313, 7, 2, 0, 0, 29313, 29314, 7, 12, 0, 0, 29314, 29315, 7, 7, 0, 0, 29315, 29316, 7, 9, 0, 0, 29316, 4346, 1, 0, 0, 0, 29317, 29318, 7, 12, 0, 0, 29318, 29319, 7, 7, 0, 0, 29319, 29320, 7, 8, 0, 0, 29320, 29321, 7, 2, 0, 0, 29321, 29322, 7, 7, 0, 0, 29322, 29323, 7, 9, 0, 0, 29323, 29324, 7, 10, 0, 0, 29324, 29325, 7, 4, 0, 0, 29325, 29326, 7, 10, 0, 0, 29326, 29327, 7, 2, 0, 0, 29327, 29328, 7, 7, 0, 0, 29328, 29329, 7, 0, 0, 0, 29329, 29330, 7, 11, 0, 0, 29330, 4348, 1, 0, 0, 0, 29331, 29332, 7, 12, 0, 0, 29332, 29333, 7, 7, 0, 0, 29333, 29334, 7, 9, 0, 0, 29334, 29335, 7, 6, 0, 0, 29335, 29336, 7, 3, 0, 0, 29336, 4350, 1, 0, 0, 0, 29337, 29338, 7, 12, 0, 0, 29338, 29339, 7, 7, 0, 0, 29339, 29340, 7, 9, 0, 0, 29340, 29341, 7, 2, 0, 0, 29341, 4352, 1, 0, 0, 0, 29342, 29343, 7, 12, 0, 0, 29343, 29344, 7, 7, 0, 0, 29344, 29345, 7, 9, 0, 0, 29345, 29346, 7, 3, 0, 0, 29346, 29347, 7, 2, 0, 0, 29347, 29348, 7, 15, 0, 0, 29348, 4354, 1, 0, 0, 0, 29349, 29350, 7, 12, 0, 0, 29350, 29351, 7, 7, 0, 0, 29351, 29352, 7, 10, 0, 0, 29352, 29353, 7, 16, 0, 0, 29353, 29354, 7, 2, 0, 0, 29354, 29355, 7, 3, 0, 0, 29355, 29356, 7, 14, 0, 0, 29356, 4356, 1, 0, 0, 0, 29357, 29358, 7, 12, 0, 0, 29358, 29359, 7, 7, 0, 0, 29359, 29360, 7, 10, 0, 0, 29360, 29361, 7, 2, 0, 0, 29361, 29362, 7, 7, 0, 0, 29362, 4358, 1, 0, 0, 0, 29363, 29364, 7, 12, 0, 0, 29364, 29365, 7, 7, 0, 0, 29365, 29366, 7, 10, 0, 0, 29366, 29367, 7, 2, 0, 0, 29367, 29368, 7, 7, 0, 0, 29368, 29369, 7, 4, 0, 0, 29369, 29370, 7, 18, 0, 0, 29370, 29371, 7, 15, 0, 0, 29371, 29372, 7, 6, 0, 0, 29372, 4360, 1, 0, 0, 0, 29373, 29374, 7, 12, 0, 0, 29374, 29375, 7, 7, 0, 0, 29375, 29376, 7, 10, 0, 0, 29376, 29377, 7, 24, 0, 0, 29377, 29378, 7, 12, 0, 0, 29378, 29379, 7, 6, 0, 0, 29379, 4362, 1, 0, 0, 0, 29380, 29381, 7, 12, 0, 0, 29381, 29382, 7, 7, 0, 0, 29382, 29383, 7, 10, 0, 0, 29383, 29384, 7, 5, 0, 0, 29384, 29385, 7, 4, 0, 0, 29385, 29386, 7, 3, 0, 0, 29386, 4364, 1, 0, 0, 0, 29387, 29388, 7, 12, 0, 0, 29388, 29389, 7, 7, 0, 0, 29389, 29390, 7, 11, 0, 0, 29390, 29391, 7, 10, 0, 0, 29391, 29392, 7, 14, 0, 0, 29392, 29393, 7, 10, 0, 0, 29393, 29394, 7, 4, 0, 0, 29394, 29395, 7, 6, 0, 0, 29395, 29396, 7, 9, 0, 0, 29396, 4366, 1, 0, 0, 0, 29397, 29398, 7, 12, 0, 0, 29398, 29399, 7, 7, 0, 0, 29399, 29400, 7, 11, 0, 0, 29400, 29401, 7, 2, 0, 0, 29401, 29402, 7, 0, 0, 0, 29402, 29403, 7, 9, 0, 0, 29403, 4368, 1, 0, 0, 0, 29404, 29405, 7, 12, 0, 0, 29405, 29406, 7, 7, 0, 0, 29406, 29407, 7, 11, 0, 0, 29407, 29408, 7, 2, 0, 0, 29408, 29409, 7, 8, 0, 0, 29409, 29410, 7, 21, 0, 0, 29410, 4370, 1, 0, 0, 0, 29411, 29412, 7, 12, 0, 0, 29412, 29413, 7, 7, 0, 0, 29413, 29414, 7, 14, 0, 0, 29414, 29415, 7, 0, 0, 0, 29415, 29416, 7, 4, 0, 0, 29416, 29417, 7, 8, 0, 0, 29417, 29418, 7, 19, 0, 0, 29418, 29419, 7, 6, 0, 0, 29419, 29420, 7, 9, 0, 0, 29420, 4372, 1, 0, 0, 0, 29421, 29422, 7, 12, 0, 0, 29422, 29423, 7, 7, 0, 0, 29423, 29424, 7, 7, 0, 0, 29424, 29425, 7, 6, 0, 0, 29425, 29426, 7, 5, 0, 0, 29426, 29427, 7, 4, 0, 0, 29427, 29428, 5, 95, 0, 0, 29428, 29429, 7, 10, 0, 0, 29429, 29430, 7, 7, 0, 0, 29430, 29431, 7, 7, 0, 0, 29431, 29432, 7, 6, 0, 0, 29432, 29433, 7, 3, 0, 0, 29433, 29434, 7, 20, 0, 0, 29434, 29435, 5, 95, 0, 0, 29435, 29436, 7, 9, 0, 0, 29436, 29437, 7, 10, 0, 0, 29437, 29438, 7, 5, 0, 0, 29438, 29439, 7, 4, 0, 0, 29439, 29440, 7, 10, 0, 0, 29440, 29441, 7, 7, 0, 0, 29441, 29442, 7, 8, 0, 0, 29442, 29443, 7, 4, 0, 0, 29443, 29444, 5, 95, 0, 0, 29444, 29445, 7, 13, 0, 0, 29445, 29446, 7, 10, 0, 0, 29446, 29447, 7, 6, 0, 0, 29447, 29448, 7, 22, 0, 0, 29448, 4374, 1, 0, 0, 0, 29449, 29450, 7, 12, 0, 0, 29450, 29451, 7, 7, 0, 0, 29451, 29452, 7, 7, 0, 0, 29452, 29453, 7, 6, 0, 0, 29453, 29454, 7, 5, 0, 0, 29454, 29455, 7, 4, 0, 0, 29455, 29456, 5, 95, 0, 0, 29456, 29457, 7, 7, 0, 0, 29457, 29458, 7, 2, 0, 0, 29458, 29459, 7, 5, 0, 0, 29459, 29460, 7, 6, 0, 0, 29460, 29461, 7, 14, 0, 0, 29461, 29462, 7, 10, 0, 0, 29462, 29463, 7, 20, 0, 0, 29463, 29464, 5, 95, 0, 0, 29464, 29465, 7, 7, 0, 0, 29465, 29466, 7, 2, 0, 0, 29466, 29467, 7, 9, 0, 0, 29467, 29468, 7, 10, 0, 0, 29468, 29469, 7, 5, 0, 0, 29469, 29470, 7, 4, 0, 0, 29470, 29471, 7, 10, 0, 0, 29471, 29472, 7, 7, 0, 0, 29472, 29473, 7, 8, 0, 0, 29473, 29474, 7, 4, 0, 0, 29474, 29475, 7, 13, 0, 0, 29475, 29476, 7, 10, 0, 0, 29476, 29477, 7, 6, 0, 0, 29477, 29478, 7, 22, 0, 0, 29478, 4376, 1, 0, 0, 0, 29479, 29480, 7, 12, 0, 0, 29480, 29481, 7, 7, 0, 0, 29481, 29482, 7, 7, 0, 0, 29482, 29483, 7, 6, 0, 0, 29483, 29484, 7, 5, 0, 0, 29484, 29485, 7, 4, 0, 0, 29485, 29486, 5, 95, 0, 0, 29486, 29487, 7, 5, 0, 0, 29487, 29488, 7, 6, 0, 0, 29488, 29489, 7, 14, 0, 0, 29489, 29490, 7, 10, 0, 0, 29490, 29491, 7, 20, 0, 0, 29491, 29492, 5, 95, 0, 0, 29492, 29493, 7, 13, 0, 0, 29493, 29494, 7, 10, 0, 0, 29494, 29495, 7, 6, 0, 0, 29495, 29496, 7, 22, 0, 0, 29496, 4378, 1, 0, 0, 0, 29497, 29498, 7, 12, 0, 0, 29498, 29499, 7, 7, 0, 0, 29499, 29500, 7, 7, 0, 0, 29500, 29501, 7, 6, 0, 0, 29501, 29502, 7, 5, 0, 0, 29502, 29503, 7, 4, 0, 0, 29503, 4380, 1, 0, 0, 0, 29504, 29505, 7, 12, 0, 0, 29505, 29506, 7, 7, 0, 0, 29506, 29507, 7, 15, 0, 0, 29507, 29508, 7, 0, 0, 0, 29508, 29509, 7, 8, 0, 0, 29509, 29510, 7, 21, 0, 0, 29510, 29511, 7, 6, 0, 0, 29511, 29512, 7, 9, 0, 0, 29512, 4382, 1, 0, 0, 0, 29513, 29514, 7, 12, 0, 0, 29514, 29515, 7, 7, 0, 0, 29515, 29516, 7, 15, 0, 0, 29516, 29517, 7, 10, 0, 0, 29517, 29518, 7, 13, 0, 0, 29518, 29519, 7, 2, 0, 0, 29519, 29520, 7, 4, 0, 0, 29520, 4384, 1, 0, 0, 0, 29521, 29522, 7, 12, 0, 0, 29522, 29523, 7, 7, 0, 0, 29523, 29524, 7, 15, 0, 0, 29524, 29525, 7, 11, 0, 0, 29525, 29526, 7, 12, 0, 0, 29526, 29527, 7, 17, 0, 0, 29527, 4386, 1, 0, 0, 0, 29528, 29529, 7, 12, 0, 0, 29529, 29530, 7, 7, 0, 0, 29530, 29531, 7, 15, 0, 0, 29531, 29532, 7, 3, 0, 0, 29532, 29533, 7, 2, 0, 0, 29533, 29534, 7, 4, 0, 0, 29534, 29535, 7, 6, 0, 0, 29535, 29536, 7, 8, 0, 0, 29536, 29537, 7, 4, 0, 0, 29537, 29538, 7, 6, 0, 0, 29538, 29539, 7, 9, 0, 0, 29539, 4388, 1, 0, 0, 0, 29540, 29541, 7, 12, 0, 0, 29541, 29542, 7, 7, 0, 0, 29542, 29543, 7, 24, 0, 0, 29543, 29544, 7, 12, 0, 0, 29544, 29545, 7, 10, 0, 0, 29545, 29546, 7, 6, 0, 0, 29546, 29547, 7, 5, 0, 0, 29547, 29548, 7, 8, 0, 0, 29548, 29549, 7, 6, 0, 0, 29549, 4390, 1, 0, 0, 0, 29550, 29551, 7, 12, 0, 0, 29551, 29552, 7, 7, 0, 0, 29552, 29553, 7, 3, 0, 0, 29553, 29554, 7, 6, 0, 0, 29554, 29555, 7, 8, 0, 0, 29555, 29556, 7, 2, 0, 0, 29556, 29557, 7, 13, 0, 0, 29557, 29558, 7, 6, 0, 0, 29558, 29559, 7, 3, 0, 0, 29559, 29560, 7, 0, 0, 0, 29560, 29561, 7, 1, 0, 0, 29561, 29562, 7, 11, 0, 0, 29562, 29563, 7, 6, 0, 0, 29563, 4392, 1, 0, 0, 0, 29564, 29565, 7, 12, 0, 0, 29565, 29566, 7, 7, 0, 0, 29566, 29567, 7, 3, 0, 0, 29567, 29568, 7, 6, 0, 0, 29568, 29569, 7, 5, 0, 0, 29569, 29570, 7, 4, 0, 0, 29570, 29571, 7, 3, 0, 0, 29571, 29572, 7, 10, 0, 0, 29572, 29573, 7, 8, 0, 0, 29573, 29574, 7, 4, 0, 0, 29574, 29575, 7, 6, 0, 0, 29575, 29576, 7, 9, 0, 0, 29576, 4394, 1, 0, 0, 0, 29577, 29578, 7, 12, 0, 0, 29578, 29579, 7, 7, 0, 0, 29579, 29580, 7, 5, 0, 0, 29580, 29581, 7, 10, 0, 0, 29581, 29582, 7, 17, 0, 0, 29582, 29583, 7, 7, 0, 0, 29583, 29584, 7, 6, 0, 0, 29584, 29585, 7, 9, 0, 0, 29585, 4396, 1, 0, 0, 0, 29586, 29587, 7, 12, 0, 0, 29587, 29588, 7, 7, 0, 0, 29588, 29589, 7, 5, 0, 0, 29589, 29590, 7, 12, 0, 0, 29590, 29591, 7, 1, 0, 0, 29591, 29592, 7, 5, 0, 0, 29592, 29593, 7, 8, 0, 0, 29593, 29594, 7, 3, 0, 0, 29594, 29595, 7, 10, 0, 0, 29595, 29596, 7, 1, 0, 0, 29596, 29597, 7, 6, 0, 0, 29597, 4398, 1, 0, 0, 0, 29598, 29599, 7, 12, 0, 0, 29599, 29600, 7, 7, 0, 0, 29600, 29601, 7, 4, 0, 0, 29601, 29602, 7, 10, 0, 0, 29602, 29603, 7, 11, 0, 0, 29603, 4400, 1, 0, 0, 0, 29604, 29605, 7, 12, 0, 0, 29605, 29606, 7, 7, 0, 0, 29606, 29607, 7, 12, 0, 0, 29607, 29608, 7, 5, 0, 0, 29608, 29609, 7, 0, 0, 0, 29609, 29610, 7, 1, 0, 0, 29610, 29611, 7, 11, 0, 0, 29611, 29612, 7, 6, 0, 0, 29612, 4402, 1, 0, 0, 0, 29613, 29614, 7, 12, 0, 0, 29614, 29615, 7, 7, 0, 0, 29615, 29616, 7, 12, 0, 0, 29616, 29617, 7, 5, 0, 0, 29617, 29618, 7, 6, 0, 0, 29618, 29619, 7, 9, 0, 0, 29619, 4404, 1, 0, 0, 0, 29620, 29621, 7, 12, 0, 0, 29621, 29622, 7, 15, 0, 0, 29622, 29623, 7, 9, 0, 0, 29623, 29624, 7, 0, 0, 0, 29624, 29625, 7, 4, 0, 0, 29625, 29626, 7, 0, 0, 0, 29626, 29627, 7, 1, 0, 0, 29627, 29628, 7, 11, 0, 0, 29628, 29629, 7, 6, 0, 0, 29629, 4406, 1, 0, 0, 0, 29630, 29631, 7, 12, 0, 0, 29631, 29632, 7, 15, 0, 0, 29632, 29633, 7, 9, 0, 0, 29633, 29634, 7, 0, 0, 0, 29634, 29635, 7, 4, 0, 0, 29635, 29636, 7, 6, 0, 0, 29636, 29637, 7, 9, 0, 0, 29637, 4408, 1, 0, 0, 0, 29638, 29639, 7, 12, 0, 0, 29639, 29640, 7, 15, 0, 0, 29640, 29641, 7, 9, 0, 0, 29641, 29642, 7, 0, 0, 0, 29642, 29643, 7, 4, 0, 0, 29643, 29644, 7, 6, 0, 0, 29644, 4410, 1, 0, 0, 0, 29645, 29646, 7, 12, 0, 0, 29646, 29647, 7, 15, 0, 0, 29647, 29648, 7, 9, 0, 0, 29648, 29649, 7, 0, 0, 0, 29649, 29650, 7, 4, 0, 0, 29650, 29651, 7, 6, 0, 0, 29651, 29652, 7, 25, 0, 0, 29652, 29653, 7, 14, 0, 0, 29653, 29654, 7, 11, 0, 0, 29654, 4412, 1, 0, 0, 0, 29655, 29656, 7, 12, 0, 0, 29656, 29657, 7, 15, 0, 0, 29657, 29658, 7, 9, 0, 0, 29658, 29659, 5, 95, 0, 0, 29659, 29660, 7, 10, 0, 0, 29660, 29661, 7, 7, 0, 0, 29661, 29662, 7, 9, 0, 0, 29662, 29663, 7, 6, 0, 0, 29663, 29664, 7, 25, 0, 0, 29664, 29665, 7, 6, 0, 0, 29665, 29666, 7, 5, 0, 0, 29666, 4414, 1, 0, 0, 0, 29667, 29668, 7, 12, 0, 0, 29668, 29669, 7, 15, 0, 0, 29669, 29670, 7, 9, 0, 0, 29670, 29671, 5, 95, 0, 0, 29671, 29672, 7, 20, 0, 0, 29672, 29673, 7, 2, 0, 0, 29673, 29674, 7, 10, 0, 0, 29674, 29675, 7, 7, 0, 0, 29675, 29676, 7, 10, 0, 0, 29676, 29677, 7, 7, 0, 0, 29677, 29678, 7, 9, 0, 0, 29678, 29679, 7, 6, 0, 0, 29679, 29680, 7, 25, 0, 0, 29680, 4416, 1, 0, 0, 0, 29681, 29682, 7, 12, 0, 0, 29682, 29683, 7, 15, 0, 0, 29683, 29684, 7, 17, 0, 0, 29684, 29685, 7, 3, 0, 0, 29685, 29686, 7, 0, 0, 0, 29686, 29687, 7, 9, 0, 0, 29687, 29688, 7, 6, 0, 0, 29688, 4418, 1, 0, 0, 0, 29689, 29690, 7, 12, 0, 0, 29690, 29691, 7, 15, 0, 0, 29691, 29692, 7, 15, 0, 0, 29692, 29693, 7, 6, 0, 0, 29693, 29694, 7, 3, 0, 0, 29694, 4420, 1, 0, 0, 0, 29695, 29696, 7, 12, 0, 0, 29696, 29697, 7, 15, 0, 0, 29697, 29698, 7, 5, 0, 0, 29698, 29699, 7, 6, 0, 0, 29699, 29700, 7, 3, 0, 0, 29700, 29701, 7, 4, 0, 0, 29701, 4422, 1, 0, 0, 0, 29702, 29703, 7, 12, 0, 0, 29703, 29704, 7, 3, 0, 0, 29704, 29705, 7, 2, 0, 0, 29705, 29706, 7, 22, 0, 0, 29706, 29707, 7, 10, 0, 0, 29707, 29708, 7, 9, 0, 0, 29708, 4424, 1, 0, 0, 0, 29709, 29710, 7, 12, 0, 0, 29710, 29711, 7, 5, 0, 0, 29711, 29712, 7, 0, 0, 0, 29712, 29713, 7, 1, 0, 0, 29713, 29714, 7, 11, 0, 0, 29714, 29715, 7, 6, 0, 0, 29715, 4426, 1, 0, 0, 0, 29716, 29717, 7, 12, 0, 0, 29717, 29718, 7, 5, 0, 0, 29718, 29719, 7, 0, 0, 0, 29719, 29720, 7, 17, 0, 0, 29720, 29721, 7, 6, 0, 0, 29721, 4428, 1, 0, 0, 0, 29722, 29723, 7, 12, 0, 0, 29723, 29724, 7, 5, 0, 0, 29724, 29725, 7, 6, 0, 0, 29725, 29726, 5, 95, 0, 0, 29726, 29727, 7, 0, 0, 0, 29727, 29728, 7, 7, 0, 0, 29728, 29729, 7, 4, 0, 0, 29729, 29730, 7, 10, 0, 0, 29730, 4430, 1, 0, 0, 0, 29731, 29732, 7, 12, 0, 0, 29732, 29733, 7, 5, 0, 0, 29733, 29734, 7, 6, 0, 0, 29734, 29735, 5, 95, 0, 0, 29735, 29736, 7, 8, 0, 0, 29736, 29737, 7, 2, 0, 0, 29737, 29738, 7, 7, 0, 0, 29738, 29739, 7, 8, 0, 0, 29739, 29740, 7, 0, 0, 0, 29740, 29741, 7, 4, 0, 0, 29741, 4432, 1, 0, 0, 0, 29742, 29743, 7, 12, 0, 0, 29743, 29744, 7, 5, 0, 0, 29744, 29745, 7, 6, 0, 0, 29745, 29746, 5, 95, 0, 0, 29746, 29747, 7, 8, 0, 0, 29747, 29748, 7, 12, 0, 0, 29748, 29749, 7, 1, 0, 0, 29749, 29750, 7, 6, 0, 0, 29750, 4434, 1, 0, 0, 0, 29751, 29752, 7, 12, 0, 0, 29752, 29753, 7, 5, 0, 0, 29753, 29754, 7, 6, 0, 0, 29754, 29755, 5, 95, 0, 0, 29755, 29756, 7, 19, 0, 0, 29756, 29757, 7, 0, 0, 0, 29757, 29758, 7, 5, 0, 0, 29758, 29759, 7, 19, 0, 0, 29759, 29760, 5, 95, 0, 0, 29760, 29761, 7, 0, 0, 0, 29761, 29762, 7, 17, 0, 0, 29762, 29763, 7, 17, 0, 0, 29763, 29764, 7, 3, 0, 0, 29764, 29765, 7, 6, 0, 0, 29765, 29766, 7, 17, 0, 0, 29766, 29767, 7, 0, 0, 0, 29767, 29768, 7, 4, 0, 0, 29768, 29769, 7, 10, 0, 0, 29769, 29770, 7, 2, 0, 0, 29770, 29771, 7, 7, 0, 0, 29771, 4436, 1, 0, 0, 0, 29772, 29773, 7, 12, 0, 0, 29773, 29774, 7, 5, 0, 0, 29774, 29775, 7, 6, 0, 0, 29775, 29776, 5, 95, 0, 0, 29776, 29777, 7, 19, 0, 0, 29777, 29778, 7, 0, 0, 0, 29778, 29779, 7, 5, 0, 0, 29779, 29780, 7, 19, 0, 0, 29780, 29781, 5, 95, 0, 0, 29781, 29782, 7, 17, 0, 0, 29782, 29783, 7, 1, 0, 0, 29783, 29784, 7, 18, 0, 0, 29784, 29785, 5, 95, 0, 0, 29785, 29786, 7, 16, 0, 0, 29786, 29787, 7, 2, 0, 0, 29787, 29788, 7, 3, 0, 0, 29788, 29789, 5, 95, 0, 0, 29789, 29790, 7, 15, 0, 0, 29790, 29791, 7, 12, 0, 0, 29791, 29792, 7, 5, 0, 0, 29792, 29793, 7, 19, 0, 0, 29793, 29794, 7, 9, 0, 0, 29794, 29795, 7, 2, 0, 0, 29795, 29796, 7, 22, 0, 0, 29796, 29797, 7, 7, 0, 0, 29797, 4438, 1, 0, 0, 0, 29798, 29799, 7, 12, 0, 0, 29799, 29800, 7, 5, 0, 0, 29800, 29801, 7, 6, 0, 0, 29801, 29802, 5, 95, 0, 0, 29802, 29803, 7, 19, 0, 0, 29803, 29804, 7, 0, 0, 0, 29804, 29805, 7, 5, 0, 0, 29805, 29806, 7, 19, 0, 0, 29806, 4440, 1, 0, 0, 0, 29807, 29808, 7, 12, 0, 0, 29808, 29809, 7, 5, 0, 0, 29809, 29810, 7, 6, 0, 0, 29810, 29811, 5, 95, 0, 0, 29811, 29812, 7, 19, 0, 0, 29812, 29813, 7, 10, 0, 0, 29813, 29814, 7, 9, 0, 0, 29814, 29815, 7, 9, 0, 0, 29815, 29816, 7, 6, 0, 0, 29816, 29817, 7, 7, 0, 0, 29817, 29818, 5, 95, 0, 0, 29818, 29819, 7, 15, 0, 0, 29819, 29820, 7, 0, 0, 0, 29820, 29821, 7, 3, 0, 0, 29821, 29822, 7, 4, 0, 0, 29822, 29823, 7, 10, 0, 0, 29823, 29824, 7, 4, 0, 0, 29824, 29825, 7, 10, 0, 0, 29825, 29826, 7, 2, 0, 0, 29826, 29827, 7, 7, 0, 0, 29827, 29828, 7, 5, 0, 0, 29828, 4442, 1, 0, 0, 0, 29829, 29830, 7, 12, 0, 0, 29830, 29831, 7, 5, 0, 0, 29831, 29832, 7, 6, 0, 0, 29832, 29833, 5, 95, 0, 0, 29833, 29834, 7, 10, 0, 0, 29834, 29835, 7, 7, 0, 0, 29835, 29836, 7, 13, 0, 0, 29836, 29837, 7, 10, 0, 0, 29837, 29838, 7, 5, 0, 0, 29838, 29839, 7, 10, 0, 0, 29839, 29840, 7, 1, 0, 0, 29840, 29841, 7, 11, 0, 0, 29841, 29842, 7, 6, 0, 0, 29842, 29843, 5, 95, 0, 0, 29843, 29844, 7, 10, 0, 0, 29844, 29845, 7, 7, 0, 0, 29845, 29846, 7, 9, 0, 0, 29846, 29847, 7, 6, 0, 0, 29847, 29848, 7, 25, 0, 0, 29848, 29849, 7, 6, 0, 0, 29849, 29850, 7, 5, 0, 0, 29850, 4444, 1, 0, 0, 0, 29851, 29852, 7, 12, 0, 0, 29852, 29853, 7, 5, 0, 0, 29853, 29854, 7, 6, 0, 0, 29854, 29855, 5, 95, 0, 0, 29855, 29856, 7, 14, 0, 0, 29856, 29857, 7, 6, 0, 0, 29857, 29858, 7, 3, 0, 0, 29858, 29859, 7, 17, 0, 0, 29859, 29860, 7, 6, 0, 0, 29860, 29861, 5, 95, 0, 0, 29861, 29862, 7, 8, 0, 0, 29862, 29863, 7, 0, 0, 0, 29863, 29864, 7, 3, 0, 0, 29864, 29865, 7, 4, 0, 0, 29865, 29866, 7, 6, 0, 0, 29866, 29867, 7, 5, 0, 0, 29867, 29868, 7, 10, 0, 0, 29868, 29869, 7, 0, 0, 0, 29869, 29870, 7, 7, 0, 0, 29870, 4446, 1, 0, 0, 0, 29871, 29872, 7, 12, 0, 0, 29872, 29873, 7, 5, 0, 0, 29873, 29874, 7, 6, 0, 0, 29874, 29875, 5, 95, 0, 0, 29875, 29876, 7, 14, 0, 0, 29876, 29877, 7, 6, 0, 0, 29877, 29878, 7, 3, 0, 0, 29878, 29879, 7, 17, 0, 0, 29879, 29880, 7, 6, 0, 0, 29880, 4448, 1, 0, 0, 0, 29881, 29882, 7, 12, 0, 0, 29882, 29883, 7, 5, 0, 0, 29883, 29884, 7, 6, 0, 0, 29884, 29885, 5, 95, 0, 0, 29885, 29886, 7, 7, 0, 0, 29886, 29887, 7, 11, 0, 0, 29887, 4450, 1, 0, 0, 0, 29888, 29889, 7, 12, 0, 0, 29889, 29890, 7, 5, 0, 0, 29890, 29891, 7, 6, 0, 0, 29891, 29892, 5, 95, 0, 0, 29892, 29893, 7, 7, 0, 0, 29893, 29894, 7, 11, 0, 0, 29894, 29895, 5, 95, 0, 0, 29895, 29896, 7, 22, 0, 0, 29896, 29897, 7, 10, 0, 0, 29897, 29898, 7, 4, 0, 0, 29898, 29899, 7, 19, 0, 0, 29899, 29900, 5, 95, 0, 0, 29900, 29901, 7, 10, 0, 0, 29901, 29902, 7, 7, 0, 0, 29902, 29903, 7, 9, 0, 0, 29903, 29904, 7, 6, 0, 0, 29904, 29905, 7, 25, 0, 0, 29905, 4452, 1, 0, 0, 0, 29906, 29907, 7, 12, 0, 0, 29907, 29908, 7, 5, 0, 0, 29908, 29909, 7, 6, 0, 0, 29909, 29910, 5, 95, 0, 0, 29910, 29911, 7, 15, 0, 0, 29911, 29912, 7, 3, 0, 0, 29912, 29913, 7, 10, 0, 0, 29913, 29914, 7, 13, 0, 0, 29914, 29915, 7, 0, 0, 0, 29915, 29916, 7, 4, 0, 0, 29916, 29917, 7, 6, 0, 0, 29917, 29918, 5, 95, 0, 0, 29918, 29919, 7, 2, 0, 0, 29919, 29920, 7, 12, 0, 0, 29920, 29921, 7, 4, 0, 0, 29921, 29922, 7, 11, 0, 0, 29922, 29923, 7, 10, 0, 0, 29923, 29924, 7, 7, 0, 0, 29924, 29925, 7, 6, 0, 0, 29925, 29926, 7, 5, 0, 0, 29926, 4454, 1, 0, 0, 0, 29927, 29928, 7, 12, 0, 0, 29928, 29929, 7, 5, 0, 0, 29929, 29930, 7, 6, 0, 0, 29930, 29931, 7, 3, 0, 0, 29931, 29932, 5, 95, 0, 0, 29932, 29933, 7, 9, 0, 0, 29933, 29934, 7, 0, 0, 0, 29934, 29935, 7, 4, 0, 0, 29935, 29936, 7, 0, 0, 0, 29936, 4456, 1, 0, 0, 0, 29937, 29938, 7, 12, 0, 0, 29938, 29939, 7, 5, 0, 0, 29939, 29940, 7, 6, 0, 0, 29940, 29941, 7, 3, 0, 0, 29941, 29942, 5, 95, 0, 0, 29942, 29943, 7, 9, 0, 0, 29943, 29944, 7, 6, 0, 0, 29944, 29945, 7, 16, 0, 0, 29945, 29946, 7, 10, 0, 0, 29946, 29947, 7, 7, 0, 0, 29947, 29948, 7, 6, 0, 0, 29948, 29949, 7, 9, 0, 0, 29949, 4458, 1, 0, 0, 0, 29950, 29951, 7, 12, 0, 0, 29951, 29952, 7, 5, 0, 0, 29952, 29953, 7, 6, 0, 0, 29953, 29954, 7, 3, 0, 0, 29954, 29955, 7, 6, 0, 0, 29955, 29956, 7, 7, 0, 0, 29956, 29957, 7, 13, 0, 0, 29957, 4460, 1, 0, 0, 0, 29958, 29959, 7, 12, 0, 0, 29959, 29960, 7, 5, 0, 0, 29960, 29961, 7, 6, 0, 0, 29961, 29962, 7, 3, 0, 0, 29962, 29963, 7, 17, 0, 0, 29963, 29964, 7, 3, 0, 0, 29964, 29965, 7, 2, 0, 0, 29965, 29966, 7, 12, 0, 0, 29966, 29967, 7, 15, 0, 0, 29967, 4462, 1, 0, 0, 0, 29968, 29969, 7, 12, 0, 0, 29969, 29970, 7, 5, 0, 0, 29970, 29971, 7, 6, 0, 0, 29971, 29972, 7, 3, 0, 0, 29972, 29973, 5, 95, 0, 0, 29973, 29974, 7, 3, 0, 0, 29974, 29975, 7, 6, 0, 0, 29975, 29976, 7, 8, 0, 0, 29976, 29977, 7, 18, 0, 0, 29977, 29978, 7, 8, 0, 0, 29978, 29979, 7, 11, 0, 0, 29979, 29980, 7, 6, 0, 0, 29980, 29981, 7, 1, 0, 0, 29981, 29982, 7, 10, 0, 0, 29982, 29983, 7, 7, 0, 0, 29983, 4464, 1, 0, 0, 0, 29984, 29985, 7, 12, 0, 0, 29985, 29986, 7, 5, 0, 0, 29986, 29987, 7, 6, 0, 0, 29987, 29988, 7, 3, 0, 0, 29988, 29989, 7, 5, 0, 0, 29989, 4466, 1, 0, 0, 0, 29990, 29991, 7, 12, 0, 0, 29991, 29992, 7, 5, 0, 0, 29992, 29993, 7, 6, 0, 0, 29993, 29994, 7, 3, 0, 0, 29994, 29995, 5, 95, 0, 0, 29995, 29996, 7, 4, 0, 0, 29996, 29997, 7, 0, 0, 0, 29997, 29998, 7, 1, 0, 0, 29998, 29999, 7, 11, 0, 0, 29999, 30000, 7, 6, 0, 0, 30000, 30001, 7, 5, 0, 0, 30001, 30002, 7, 15, 0, 0, 30002, 30003, 7, 0, 0, 0, 30003, 30004, 7, 8, 0, 0, 30004, 30005, 7, 6, 0, 0, 30005, 30006, 7, 5, 0, 0, 30006, 4468, 1, 0, 0, 0, 30007, 30008, 7, 12, 0, 0, 30008, 30009, 7, 5, 0, 0, 30009, 30010, 7, 6, 0, 0, 30010, 30011, 7, 3, 0, 0, 30011, 4470, 1, 0, 0, 0, 30012, 30013, 7, 12, 0, 0, 30013, 30014, 7, 5, 0, 0, 30014, 30015, 7, 6, 0, 0, 30015, 30016, 5, 95, 0, 0, 30016, 30017, 7, 5, 0, 0, 30017, 30018, 7, 6, 0, 0, 30018, 30019, 7, 14, 0, 0, 30019, 30020, 7, 10, 0, 0, 30020, 4472, 1, 0, 0, 0, 30021, 30022, 7, 12, 0, 0, 30022, 30023, 7, 5, 0, 0, 30023, 30024, 7, 6, 0, 0, 30024, 30025, 5, 95, 0, 0, 30025, 30026, 7, 5, 0, 0, 30026, 30027, 7, 4, 0, 0, 30027, 30028, 7, 2, 0, 0, 30028, 30029, 7, 3, 0, 0, 30029, 30030, 7, 6, 0, 0, 30030, 30031, 7, 9, 0, 0, 30031, 30032, 5, 95, 0, 0, 30032, 30033, 7, 2, 0, 0, 30033, 30034, 7, 12, 0, 0, 30034, 30035, 7, 4, 0, 0, 30035, 30036, 7, 11, 0, 0, 30036, 30037, 7, 10, 0, 0, 30037, 30038, 7, 7, 0, 0, 30038, 30039, 7, 6, 0, 0, 30039, 30040, 7, 5, 0, 0, 30040, 4474, 1, 0, 0, 0, 30041, 30042, 7, 12, 0, 0, 30042, 30043, 7, 5, 0, 0, 30043, 30044, 7, 6, 0, 0, 30044, 30045, 5, 95, 0, 0, 30045, 30046, 7, 4, 0, 0, 30046, 30047, 7, 4, 0, 0, 30047, 30048, 7, 4, 0, 0, 30048, 30049, 5, 95, 0, 0, 30049, 30050, 7, 16, 0, 0, 30050, 30051, 7, 2, 0, 0, 30051, 30052, 7, 3, 0, 0, 30052, 30053, 5, 95, 0, 0, 30053, 30054, 7, 17, 0, 0, 30054, 30055, 7, 5, 0, 0, 30055, 30056, 7, 6, 0, 0, 30056, 30057, 7, 4, 0, 0, 30057, 30058, 7, 5, 0, 0, 30058, 4476, 1, 0, 0, 0, 30059, 30060, 7, 12, 0, 0, 30060, 30061, 7, 5, 0, 0, 30061, 30062, 7, 6, 0, 0, 30062, 4478, 1, 0, 0, 0, 30063, 30064, 7, 12, 0, 0, 30064, 30065, 7, 5, 0, 0, 30065, 30066, 7, 6, 0, 0, 30066, 30067, 5, 95, 0, 0, 30067, 30068, 7, 13, 0, 0, 30068, 30069, 7, 6, 0, 0, 30069, 30070, 7, 8, 0, 0, 30070, 30071, 7, 4, 0, 0, 30071, 30072, 7, 2, 0, 0, 30072, 30073, 7, 3, 0, 0, 30073, 30074, 5, 95, 0, 0, 30074, 30075, 7, 0, 0, 0, 30075, 30076, 7, 17, 0, 0, 30076, 30077, 7, 17, 0, 0, 30077, 30078, 7, 3, 0, 0, 30078, 30079, 7, 6, 0, 0, 30079, 30080, 7, 17, 0, 0, 30080, 30081, 7, 0, 0, 0, 30081, 30082, 7, 4, 0, 0, 30082, 30083, 7, 10, 0, 0, 30083, 30084, 7, 2, 0, 0, 30084, 30085, 7, 7, 0, 0, 30085, 4480, 1, 0, 0, 0, 30086, 30087, 7, 12, 0, 0, 30087, 30088, 7, 5, 0, 0, 30088, 30089, 7, 6, 0, 0, 30089, 30090, 5, 95, 0, 0, 30090, 30091, 7, 22, 0, 0, 30091, 30092, 7, 6, 0, 0, 30092, 30093, 7, 0, 0, 0, 30093, 30094, 7, 21, 0, 0, 30094, 30095, 5, 95, 0, 0, 30095, 30096, 7, 7, 0, 0, 30096, 30097, 7, 0, 0, 0, 30097, 30098, 7, 14, 0, 0, 30098, 30099, 7, 6, 0, 0, 30099, 30100, 5, 95, 0, 0, 30100, 30101, 7, 3, 0, 0, 30101, 30102, 7, 6, 0, 0, 30102, 30103, 7, 5, 0, 0, 30103, 30104, 7, 11, 0, 0, 30104, 4482, 1, 0, 0, 0, 30105, 30106, 7, 12, 0, 0, 30106, 30107, 7, 5, 0, 0, 30107, 30108, 7, 10, 0, 0, 30108, 30109, 7, 7, 0, 0, 30109, 30110, 7, 17, 0, 0, 30110, 30111, 5, 95, 0, 0, 30111, 30112, 7, 7, 0, 0, 30112, 30113, 7, 2, 0, 0, 30113, 30114, 5, 95, 0, 0, 30114, 30115, 7, 6, 0, 0, 30115, 30116, 7, 25, 0, 0, 30116, 30117, 7, 15, 0, 0, 30117, 30118, 7, 0, 0, 0, 30118, 30119, 7, 7, 0, 0, 30119, 30120, 7, 9, 0, 0, 30120, 4484, 1, 0, 0, 0, 30121, 30122, 7, 12, 0, 0, 30122, 30123, 7, 5, 0, 0, 30123, 30124, 7, 10, 0, 0, 30124, 30125, 7, 7, 0, 0, 30125, 30126, 7, 17, 0, 0, 30126, 30127, 5, 95, 0, 0, 30127, 30128, 7, 7, 0, 0, 30128, 30129, 7, 11, 0, 0, 30129, 30130, 7, 5, 0, 0, 30130, 30131, 5, 95, 0, 0, 30131, 30132, 7, 8, 0, 0, 30132, 30133, 7, 2, 0, 0, 30133, 30134, 7, 14, 0, 0, 30134, 30135, 7, 15, 0, 0, 30135, 4486, 1, 0, 0, 0, 30136, 30137, 7, 12, 0, 0, 30137, 30138, 7, 5, 0, 0, 30138, 30139, 7, 10, 0, 0, 30139, 30140, 7, 7, 0, 0, 30140, 30141, 7, 17, 0, 0, 30141, 4488, 1, 0, 0, 0, 30142, 30143, 7, 12, 0, 0, 30143, 30144, 7, 4, 0, 0, 30144, 30145, 7, 16, 0, 0, 30145, 30146, 5, 49, 0, 0, 30146, 30147, 5, 54, 0, 0, 30147, 30148, 7, 1, 0, 0, 30148, 30149, 7, 6, 0, 0, 30149, 4490, 1, 0, 0, 0, 30150, 30151, 7, 12, 0, 0, 30151, 30152, 7, 4, 0, 0, 30152, 30153, 7, 16, 0, 0, 30153, 30154, 5, 49, 0, 0, 30154, 30155, 5, 54, 0, 0, 30155, 30156, 7, 11, 0, 0, 30156, 30157, 7, 6, 0, 0, 30157, 4492, 1, 0, 0, 0, 30158, 30159, 7, 12, 0, 0, 30159, 30160, 7, 4, 0, 0, 30160, 30161, 7, 16, 0, 0, 30161, 30162, 5, 51, 0, 0, 30162, 30163, 5, 50, 0, 0, 30163, 4494, 1, 0, 0, 0, 30164, 30165, 7, 12, 0, 0, 30165, 30166, 7, 4, 0, 0, 30166, 30167, 7, 16, 0, 0, 30167, 30168, 5, 56, 0, 0, 30168, 4496, 1, 0, 0, 0, 30169, 30170, 7, 13, 0, 0, 30170, 30171, 5, 49, 0, 0, 30171, 4498, 1, 0, 0, 0, 30172, 30173, 7, 13, 0, 0, 30173, 30174, 5, 50, 0, 0, 30174, 4500, 1, 0, 0, 0, 30175, 30176, 7, 13, 0, 0, 30176, 30177, 7, 0, 0, 0, 30177, 30178, 7, 11, 0, 0, 30178, 30179, 7, 10, 0, 0, 30179, 30180, 7, 9, 0, 0, 30180, 30181, 7, 0, 0, 0, 30181, 30182, 7, 4, 0, 0, 30182, 30183, 7, 6, 0, 0, 30183, 4502, 1, 0, 0, 0, 30184, 30185, 7, 13, 0, 0, 30185, 30186, 7, 0, 0, 0, 30186, 30187, 7, 11, 0, 0, 30187, 30188, 7, 10, 0, 0, 30188, 30189, 7, 9, 0, 0, 30189, 30190, 7, 0, 0, 0, 30190, 30191, 7, 4, 0, 0, 30191, 30192, 7, 6, 0, 0, 30192, 30193, 5, 95, 0, 0, 30193, 30194, 7, 8, 0, 0, 30194, 30195, 7, 2, 0, 0, 30195, 30196, 7, 7, 0, 0, 30196, 30197, 7, 13, 0, 0, 30197, 30198, 7, 6, 0, 0, 30198, 30199, 7, 3, 0, 0, 30199, 30200, 7, 5, 0, 0, 30200, 30201, 7, 10, 0, 0, 30201, 30202, 7, 2, 0, 0, 30202, 30203, 7, 7, 0, 0, 30203, 4504, 1, 0, 0, 0, 30204, 30205, 7, 13, 0, 0, 30205, 30206, 7, 0, 0, 0, 30206, 30207, 7, 11, 0, 0, 30207, 30208, 7, 10, 0, 0, 30208, 30209, 7, 9, 0, 0, 30209, 30210, 7, 0, 0, 0, 30210, 30211, 7, 4, 0, 0, 30211, 30212, 7, 10, 0, 0, 30212, 30213, 7, 2, 0, 0, 30213, 30214, 7, 7, 0, 0, 30214, 4506, 1, 0, 0, 0, 30215, 30216, 7, 13, 0, 0, 30216, 30217, 7, 0, 0, 0, 30217, 30218, 7, 11, 0, 0, 30218, 30219, 7, 10, 0, 0, 30219, 30220, 7, 9, 0, 0, 30220, 30221, 5, 95, 0, 0, 30221, 30222, 7, 4, 0, 0, 30222, 30223, 7, 10, 0, 0, 30223, 30224, 7, 14, 0, 0, 30224, 30225, 7, 6, 0, 0, 30225, 30226, 5, 95, 0, 0, 30226, 30227, 7, 6, 0, 0, 30227, 30228, 7, 7, 0, 0, 30228, 30229, 7, 9, 0, 0, 30229, 4508, 1, 0, 0, 0, 30230, 30231, 7, 13, 0, 0, 30231, 30232, 7, 0, 0, 0, 30232, 30233, 7, 11, 0, 0, 30233, 30234, 7, 12, 0, 0, 30234, 30235, 7, 6, 0, 0, 30235, 30236, 7, 5, 0, 0, 30236, 4510, 1, 0, 0, 0, 30237, 30238, 7, 13, 0, 0, 30238, 30239, 7, 0, 0, 0, 30239, 30240, 7, 11, 0, 0, 30240, 30241, 7, 12, 0, 0, 30241, 30242, 7, 6, 0, 0, 30242, 4512, 1, 0, 0, 0, 30243, 30244, 7, 13, 0, 0, 30244, 30245, 7, 0, 0, 0, 30245, 30246, 7, 3, 0, 0, 30246, 30247, 7, 8, 0, 0, 30247, 30248, 7, 19, 0, 0, 30248, 30249, 7, 0, 0, 0, 30249, 30250, 7, 3, 0, 0, 30250, 30251, 5, 50, 0, 0, 30251, 4514, 1, 0, 0, 0, 30252, 30253, 7, 13, 0, 0, 30253, 30254, 7, 0, 0, 0, 30254, 30255, 7, 3, 0, 0, 30255, 30256, 7, 8, 0, 0, 30256, 30257, 7, 19, 0, 0, 30257, 30258, 7, 0, 0, 0, 30258, 30259, 7, 3, 0, 0, 30259, 4516, 1, 0, 0, 0, 30260, 30261, 7, 13, 0, 0, 30261, 30262, 7, 0, 0, 0, 30262, 30263, 7, 3, 0, 0, 30263, 30264, 7, 8, 0, 0, 30264, 30265, 7, 19, 0, 0, 30265, 30266, 7, 0, 0, 0, 30266, 30267, 7, 3, 0, 0, 30267, 30268, 7, 8, 0, 0, 30268, 4518, 1, 0, 0, 0, 30269, 30270, 7, 13, 0, 0, 30270, 30271, 7, 0, 0, 0, 30271, 30272, 7, 3, 0, 0, 30272, 30273, 7, 10, 0, 0, 30273, 30274, 7, 0, 0, 0, 30274, 30275, 7, 1, 0, 0, 30275, 30276, 7, 11, 0, 0, 30276, 30277, 7, 6, 0, 0, 30277, 4520, 1, 0, 0, 0, 30278, 30279, 7, 13, 0, 0, 30279, 30280, 7, 0, 0, 0, 30280, 30281, 7, 3, 0, 0, 30281, 30282, 7, 3, 0, 0, 30282, 30283, 7, 0, 0, 0, 30283, 30284, 7, 22, 0, 0, 30284, 4522, 1, 0, 0, 0, 30285, 30286, 7, 13, 0, 0, 30286, 30287, 7, 0, 0, 0, 30287, 30288, 7, 3, 0, 0, 30288, 30289, 7, 3, 0, 0, 30289, 30290, 7, 0, 0, 0, 30290, 30291, 7, 22, 0, 0, 30291, 30292, 7, 8, 0, 0, 30292, 4524, 1, 0, 0, 0, 30293, 30294, 7, 13, 0, 0, 30294, 30295, 7, 0, 0, 0, 30295, 30296, 7, 3, 0, 0, 30296, 30297, 5, 95, 0, 0, 30297, 30298, 7, 15, 0, 0, 30298, 30299, 7, 2, 0, 0, 30299, 30300, 7, 15, 0, 0, 30300, 4526, 1, 0, 0, 0, 30301, 30302, 7, 13, 0, 0, 30302, 30303, 7, 0, 0, 0, 30303, 30304, 7, 3, 0, 0, 30304, 30305, 7, 3, 0, 0, 30305, 30306, 7, 0, 0, 0, 30306, 30307, 7, 18, 0, 0, 30307, 30308, 7, 5, 0, 0, 30308, 4528, 1, 0, 0, 0, 30309, 30310, 7, 13, 0, 0, 30310, 30311, 7, 0, 0, 0, 30311, 30312, 7, 3, 0, 0, 30312, 30313, 7, 3, 0, 0, 30313, 30314, 7, 0, 0, 0, 30314, 30315, 7, 18, 0, 0, 30315, 4530, 1, 0, 0, 0, 30316, 30317, 7, 13, 0, 0, 30317, 30318, 7, 0, 0, 0, 30318, 30319, 7, 3, 0, 0, 30319, 30320, 5, 95, 0, 0, 30320, 30321, 7, 5, 0, 0, 30321, 30322, 7, 0, 0, 0, 30322, 30323, 7, 14, 0, 0, 30323, 30324, 7, 15, 0, 0, 30324, 4532, 1, 0, 0, 0, 30325, 30326, 7, 13, 0, 0, 30326, 30327, 7, 0, 0, 0, 30327, 30328, 7, 3, 0, 0, 30328, 30329, 7, 18, 0, 0, 30329, 30330, 7, 10, 0, 0, 30330, 30331, 7, 7, 0, 0, 30331, 30332, 7, 17, 0, 0, 30332, 4534, 1, 0, 0, 0, 30333, 30334, 7, 13, 0, 0, 30334, 30335, 7, 6, 0, 0, 30335, 30336, 7, 8, 0, 0, 30336, 30337, 7, 4, 0, 0, 30337, 30338, 7, 2, 0, 0, 30338, 30339, 7, 3, 0, 0, 30339, 30340, 5, 95, 0, 0, 30340, 30341, 7, 3, 0, 0, 30341, 30342, 7, 6, 0, 0, 30342, 30343, 7, 0, 0, 0, 30343, 30344, 7, 9, 0, 0, 30344, 30345, 5, 95, 0, 0, 30345, 30346, 7, 4, 0, 0, 30346, 30347, 7, 3, 0, 0, 30347, 30348, 7, 0, 0, 0, 30348, 30349, 7, 8, 0, 0, 30349, 30350, 7, 6, 0, 0, 30350, 4536, 1, 0, 0, 0, 30351, 30352, 7, 13, 0, 0, 30352, 30353, 7, 6, 0, 0, 30353, 30354, 7, 8, 0, 0, 30354, 30355, 7, 4, 0, 0, 30355, 30356, 7, 2, 0, 0, 30356, 30357, 7, 3, 0, 0, 30357, 30358, 5, 95, 0, 0, 30358, 30359, 7, 3, 0, 0, 30359, 30360, 7, 6, 0, 0, 30360, 30361, 7, 0, 0, 0, 30361, 30362, 7, 9, 0, 0, 30362, 4538, 1, 0, 0, 0, 30363, 30364, 7, 13, 0, 0, 30364, 30365, 7, 6, 0, 0, 30365, 30366, 7, 8, 0, 0, 30366, 30367, 7, 4, 0, 0, 30367, 30368, 7, 2, 0, 0, 30368, 30369, 7, 3, 0, 0, 30369, 30370, 5, 95, 0, 0, 30370, 30371, 7, 4, 0, 0, 30371, 30372, 7, 3, 0, 0, 30372, 30373, 7, 0, 0, 0, 30373, 30374, 7, 7, 0, 0, 30374, 30375, 7, 5, 0, 0, 30375, 30376, 7, 16, 0, 0, 30376, 30377, 7, 2, 0, 0, 30377, 30378, 7, 3, 0, 0, 30378, 30379, 7, 14, 0, 0, 30379, 30380, 5, 95, 0, 0, 30380, 30381, 7, 9, 0, 0, 30381, 30382, 7, 10, 0, 0, 30382, 30383, 7, 14, 0, 0, 30383, 30384, 7, 5, 0, 0, 30384, 4540, 1, 0, 0, 0, 30385, 30386, 7, 13, 0, 0, 30386, 30387, 7, 6, 0, 0, 30387, 30388, 7, 8, 0, 0, 30388, 30389, 7, 4, 0, 0, 30389, 30390, 7, 2, 0, 0, 30390, 30391, 7, 3, 0, 0, 30391, 30392, 5, 95, 0, 0, 30392, 30393, 7, 4, 0, 0, 30393, 30394, 7, 3, 0, 0, 30394, 30395, 7, 0, 0, 0, 30395, 30396, 7, 7, 0, 0, 30396, 30397, 7, 5, 0, 0, 30397, 30398, 7, 16, 0, 0, 30398, 30399, 7, 2, 0, 0, 30399, 30400, 7, 3, 0, 0, 30400, 30401, 7, 14, 0, 0, 30401, 30402, 5, 95, 0, 0, 30402, 30403, 7, 16, 0, 0, 30403, 30404, 7, 0, 0, 0, 30404, 30405, 7, 8, 0, 0, 30405, 30406, 7, 4, 0, 0, 30406, 4542, 1, 0, 0, 0, 30407, 30408, 7, 13, 0, 0, 30408, 30409, 7, 6, 0, 0, 30409, 30410, 7, 8, 0, 0, 30410, 30411, 7, 4, 0, 0, 30411, 30412, 7, 2, 0, 0, 30412, 30413, 7, 3, 0, 0, 30413, 30414, 5, 95, 0, 0, 30414, 30415, 7, 4, 0, 0, 30415, 30416, 7, 3, 0, 0, 30416, 30417, 7, 0, 0, 0, 30417, 30418, 7, 7, 0, 0, 30418, 30419, 7, 5, 0, 0, 30419, 30420, 7, 16, 0, 0, 30420, 30421, 7, 2, 0, 0, 30421, 30422, 7, 3, 0, 0, 30422, 30423, 7, 14, 0, 0, 30423, 4544, 1, 0, 0, 0, 30424, 30425, 7, 13, 0, 0, 30425, 30426, 7, 6, 0, 0, 30426, 30427, 7, 3, 0, 0, 30427, 30428, 7, 10, 0, 0, 30428, 30429, 7, 16, 0, 0, 30429, 30430, 7, 10, 0, 0, 30430, 30431, 7, 6, 0, 0, 30431, 30432, 7, 3, 0, 0, 30432, 4546, 1, 0, 0, 0, 30433, 30434, 7, 13, 0, 0, 30434, 30435, 7, 6, 0, 0, 30435, 30436, 7, 3, 0, 0, 30436, 30437, 7, 10, 0, 0, 30437, 30438, 7, 16, 0, 0, 30438, 30439, 7, 18, 0, 0, 30439, 4548, 1, 0, 0, 0, 30440, 30441, 7, 13, 0, 0, 30441, 30442, 7, 6, 0, 0, 30442, 30443, 7, 3, 0, 0, 30443, 30444, 7, 5, 0, 0, 30444, 30445, 7, 10, 0, 0, 30445, 30446, 7, 2, 0, 0, 30446, 30447, 7, 7, 0, 0, 30447, 30448, 7, 10, 0, 0, 30448, 30449, 7, 7, 0, 0, 30449, 30450, 7, 17, 0, 0, 30450, 4550, 1, 0, 0, 0, 30451, 30452, 7, 13, 0, 0, 30452, 30453, 7, 6, 0, 0, 30453, 30454, 7, 3, 0, 0, 30454, 30455, 7, 5, 0, 0, 30455, 30456, 7, 10, 0, 0, 30456, 30457, 7, 2, 0, 0, 30457, 30458, 7, 7, 0, 0, 30458, 30459, 7, 5, 0, 0, 30459, 30460, 5, 95, 0, 0, 30460, 30461, 7, 6, 0, 0, 30461, 30462, 7, 7, 0, 0, 30462, 30463, 7, 9, 0, 0, 30463, 30464, 7, 5, 0, 0, 30464, 30465, 7, 8, 0, 0, 30465, 30466, 7, 7, 0, 0, 30466, 4552, 1, 0, 0, 0, 30467, 30468, 7, 13, 0, 0, 30468, 30469, 7, 6, 0, 0, 30469, 30470, 7, 3, 0, 0, 30470, 30471, 7, 5, 0, 0, 30471, 30472, 7, 10, 0, 0, 30472, 30473, 7, 2, 0, 0, 30473, 30474, 7, 7, 0, 0, 30474, 30475, 7, 5, 0, 0, 30475, 30476, 5, 95, 0, 0, 30476, 30477, 7, 6, 0, 0, 30477, 30478, 7, 7, 0, 0, 30478, 30479, 7, 9, 0, 0, 30479, 30480, 7, 4, 0, 0, 30480, 30481, 7, 10, 0, 0, 30481, 30482, 7, 14, 0, 0, 30482, 30483, 7, 6, 0, 0, 30483, 4554, 1, 0, 0, 0, 30484, 30485, 7, 13, 0, 0, 30485, 30486, 7, 6, 0, 0, 30486, 30487, 7, 3, 0, 0, 30487, 30488, 7, 5, 0, 0, 30488, 30489, 7, 10, 0, 0, 30489, 30490, 7, 2, 0, 0, 30490, 30491, 7, 7, 0, 0, 30491, 30492, 7, 5, 0, 0, 30492, 30493, 5, 95, 0, 0, 30493, 30494, 7, 2, 0, 0, 30494, 30495, 7, 15, 0, 0, 30495, 30496, 7, 6, 0, 0, 30496, 30497, 7, 3, 0, 0, 30497, 30498, 7, 0, 0, 0, 30498, 30499, 7, 4, 0, 0, 30499, 30500, 7, 10, 0, 0, 30500, 30501, 7, 2, 0, 0, 30501, 30502, 7, 7, 0, 0, 30502, 4556, 1, 0, 0, 0, 30503, 30504, 7, 13, 0, 0, 30504, 30505, 7, 6, 0, 0, 30505, 30506, 7, 3, 0, 0, 30506, 30507, 7, 5, 0, 0, 30507, 30508, 7, 10, 0, 0, 30508, 30509, 7, 2, 0, 0, 30509, 30510, 7, 7, 0, 0, 30510, 30511, 7, 5, 0, 0, 30511, 30512, 5, 95, 0, 0, 30512, 30513, 7, 5, 0, 0, 30513, 30514, 7, 4, 0, 0, 30514, 30515, 7, 0, 0, 0, 30515, 30516, 7, 3, 0, 0, 30516, 30517, 7, 4, 0, 0, 30517, 30518, 7, 5, 0, 0, 30518, 30519, 7, 8, 0, 0, 30519, 30520, 7, 7, 0, 0, 30520, 4558, 1, 0, 0, 0, 30521, 30522, 7, 13, 0, 0, 30522, 30523, 7, 6, 0, 0, 30523, 30524, 7, 3, 0, 0, 30524, 30525, 7, 5, 0, 0, 30525, 30526, 7, 10, 0, 0, 30526, 30527, 7, 2, 0, 0, 30527, 30528, 7, 7, 0, 0, 30528, 30529, 7, 5, 0, 0, 30529, 30530, 5, 95, 0, 0, 30530, 30531, 7, 5, 0, 0, 30531, 30532, 7, 4, 0, 0, 30532, 30533, 7, 0, 0, 0, 30533, 30534, 7, 3, 0, 0, 30534, 30535, 7, 4, 0, 0, 30535, 30536, 7, 4, 0, 0, 30536, 30537, 7, 10, 0, 0, 30537, 30538, 7, 14, 0, 0, 30538, 30539, 7, 6, 0, 0, 30539, 4560, 1, 0, 0, 0, 30540, 30541, 7, 13, 0, 0, 30541, 30542, 7, 6, 0, 0, 30542, 30543, 7, 3, 0, 0, 30543, 30544, 7, 5, 0, 0, 30544, 30545, 7, 10, 0, 0, 30545, 30546, 7, 2, 0, 0, 30546, 30547, 7, 7, 0, 0, 30547, 30548, 7, 5, 0, 0, 30548, 4562, 1, 0, 0, 0, 30549, 30550, 7, 13, 0, 0, 30550, 30551, 7, 6, 0, 0, 30551, 30552, 7, 3, 0, 0, 30552, 30553, 7, 5, 0, 0, 30553, 30554, 7, 10, 0, 0, 30554, 30555, 7, 2, 0, 0, 30555, 30556, 7, 7, 0, 0, 30556, 30557, 7, 5, 0, 0, 30557, 30558, 5, 95, 0, 0, 30558, 30559, 7, 25, 0, 0, 30559, 30560, 7, 10, 0, 0, 30560, 30561, 7, 9, 0, 0, 30561, 4564, 1, 0, 0, 0, 30562, 30563, 7, 13, 0, 0, 30563, 30564, 7, 6, 0, 0, 30564, 30565, 7, 3, 0, 0, 30565, 30566, 7, 5, 0, 0, 30566, 30567, 7, 10, 0, 0, 30567, 30568, 7, 2, 0, 0, 30568, 30569, 7, 7, 0, 0, 30569, 4566, 1, 0, 0, 0, 30570, 30571, 7, 13, 0, 0, 30571, 30572, 7, 10, 0, 0, 30572, 30573, 7, 6, 0, 0, 30573, 30574, 7, 22, 0, 0, 30574, 4568, 1, 0, 0, 0, 30575, 30576, 7, 13, 0, 0, 30576, 30577, 7, 10, 0, 0, 30577, 30578, 7, 2, 0, 0, 30578, 30579, 7, 11, 0, 0, 30579, 30580, 7, 0, 0, 0, 30580, 30581, 7, 4, 0, 0, 30581, 30582, 7, 10, 0, 0, 30582, 30583, 7, 2, 0, 0, 30583, 30584, 7, 7, 0, 0, 30584, 4570, 1, 0, 0, 0, 30585, 30586, 7, 13, 0, 0, 30586, 30587, 7, 10, 0, 0, 30587, 30588, 7, 3, 0, 0, 30588, 30589, 7, 4, 0, 0, 30589, 30590, 7, 12, 0, 0, 30590, 30591, 7, 0, 0, 0, 30591, 30592, 7, 11, 0, 0, 30592, 4572, 1, 0, 0, 0, 30593, 30594, 7, 13, 0, 0, 30594, 30595, 7, 10, 0, 0, 30595, 30596, 7, 5, 0, 0, 30596, 30597, 7, 10, 0, 0, 30597, 30598, 7, 1, 0, 0, 30598, 30599, 7, 10, 0, 0, 30599, 30600, 7, 11, 0, 0, 30600, 30601, 7, 10, 0, 0, 30601, 30602, 7, 4, 0, 0, 30602, 30603, 7, 18, 0, 0, 30603, 4574, 1, 0, 0, 0, 30604, 30605, 7, 13, 0, 0, 30605, 30606, 7, 10, 0, 0, 30606, 30607, 7, 5, 0, 0, 30607, 30608, 7, 10, 0, 0, 30608, 30609, 7, 1, 0, 0, 30609, 30610, 7, 11, 0, 0, 30610, 30611, 7, 6, 0, 0, 30611, 4576, 1, 0, 0, 0, 30612, 30613, 7, 13, 0, 0, 30613, 30614, 7, 2, 0, 0, 30614, 30615, 7, 11, 0, 0, 30615, 30616, 7, 12, 0, 0, 30616, 30617, 7, 14, 0, 0, 30617, 30618, 7, 6, 0, 0, 30618, 4578, 1, 0, 0, 0, 30619, 30620, 7, 13, 0, 0, 30620, 30621, 7, 5, 0, 0, 30621, 30622, 7, 10, 0, 0, 30622, 30623, 7, 23, 0, 0, 30623, 30624, 7, 6, 0, 0, 30624, 4580, 1, 0, 0, 0, 30625, 30626, 7, 22, 0, 0, 30626, 30627, 7, 0, 0, 0, 30627, 30628, 7, 10, 0, 0, 30628, 30629, 7, 4, 0, 0, 30629, 4582, 1, 0, 0, 0, 30630, 30631, 7, 22, 0, 0, 30631, 30632, 7, 0, 0, 0, 30632, 30633, 7, 11, 0, 0, 30633, 30634, 7, 11, 0, 0, 30634, 30635, 7, 6, 0, 0, 30635, 30636, 7, 4, 0, 0, 30636, 4584, 1, 0, 0, 0, 30637, 30638, 7, 22, 0, 0, 30638, 30639, 7, 0, 0, 0, 30639, 30640, 7, 3, 0, 0, 30640, 30641, 7, 7, 0, 0, 30641, 30642, 7, 10, 0, 0, 30642, 30643, 7, 7, 0, 0, 30643, 30644, 7, 17, 0, 0, 30644, 4586, 1, 0, 0, 0, 30645, 30646, 7, 22, 0, 0, 30646, 30647, 7, 6, 0, 0, 30647, 30648, 7, 6, 0, 0, 30648, 30649, 7, 21, 0, 0, 30649, 30650, 7, 5, 0, 0, 30650, 4588, 1, 0, 0, 0, 30651, 30652, 7, 22, 0, 0, 30652, 30653, 7, 6, 0, 0, 30653, 30654, 7, 6, 0, 0, 30654, 30655, 7, 21, 0, 0, 30655, 4590, 1, 0, 0, 0, 30656, 30657, 7, 22, 0, 0, 30657, 30658, 7, 6, 0, 0, 30658, 30659, 7, 11, 0, 0, 30659, 30660, 7, 11, 0, 0, 30660, 30661, 7, 16, 0, 0, 30661, 30662, 7, 2, 0, 0, 30662, 30663, 7, 3, 0, 0, 30663, 30664, 7, 14, 0, 0, 30664, 30665, 7, 6, 0, 0, 30665, 30666, 7, 9, 0, 0, 30666, 4592, 1, 0, 0, 0, 30667, 30668, 7, 22, 0, 0, 30668, 30669, 7, 19, 0, 0, 30669, 30670, 7, 6, 0, 0, 30670, 30671, 7, 7, 0, 0, 30671, 30672, 7, 6, 0, 0, 30672, 30673, 7, 13, 0, 0, 30673, 30674, 7, 6, 0, 0, 30674, 30675, 7, 3, 0, 0, 30675, 4594, 1, 0, 0, 0, 30676, 30677, 7, 22, 0, 0, 30677, 30678, 7, 19, 0, 0, 30678, 30679, 7, 6, 0, 0, 30679, 30680, 7, 7, 0, 0, 30680, 4596, 1, 0, 0, 0, 30681, 30682, 7, 22, 0, 0, 30682, 30683, 7, 19, 0, 0, 30683, 30684, 7, 6, 0, 0, 30684, 30685, 7, 3, 0, 0, 30685, 30686, 7, 6, 0, 0, 30686, 4598, 1, 0, 0, 0, 30687, 30688, 7, 22, 0, 0, 30688, 30689, 7, 19, 0, 0, 30689, 30690, 7, 10, 0, 0, 30690, 30691, 7, 11, 0, 0, 30691, 30692, 7, 6, 0, 0, 30692, 4600, 1, 0, 0, 0, 30693, 30694, 7, 22, 0, 0, 30694, 30695, 7, 19, 0, 0, 30695, 30696, 7, 10, 0, 0, 30696, 30697, 7, 4, 0, 0, 30697, 30698, 7, 6, 0, 0, 30698, 30699, 7, 5, 0, 0, 30699, 30700, 7, 15, 0, 0, 30700, 30701, 7, 0, 0, 0, 30701, 30702, 7, 8, 0, 0, 30702, 30703, 7, 6, 0, 0, 30703, 4602, 1, 0, 0, 0, 30704, 30705, 7, 22, 0, 0, 30705, 30706, 7, 10, 0, 0, 30706, 30707, 7, 9, 0, 0, 30707, 30708, 7, 4, 0, 0, 30708, 30709, 7, 19, 0, 0, 30709, 30710, 5, 95, 0, 0, 30710, 30711, 7, 1, 0, 0, 30711, 30712, 7, 12, 0, 0, 30712, 30713, 7, 8, 0, 0, 30713, 30714, 7, 21, 0, 0, 30714, 30715, 7, 6, 0, 0, 30715, 30716, 7, 4, 0, 0, 30716, 4604, 1, 0, 0, 0, 30717, 30718, 7, 22, 0, 0, 30718, 30719, 7, 10, 0, 0, 30719, 30720, 7, 4, 0, 0, 30720, 30721, 7, 19, 0, 0, 30721, 30722, 7, 10, 0, 0, 30722, 30723, 7, 7, 0, 0, 30723, 4606, 1, 0, 0, 0, 30724, 30725, 7, 22, 0, 0, 30725, 30726, 7, 10, 0, 0, 30726, 30727, 7, 4, 0, 0, 30727, 30728, 7, 19, 0, 0, 30728, 30729, 7, 2, 0, 0, 30729, 30730, 7, 12, 0, 0, 30730, 30731, 7, 4, 0, 0, 30731, 4608, 1, 0, 0, 0, 30732, 30733, 7, 22, 0, 0, 30733, 30734, 7, 10, 0, 0, 30734, 30735, 7, 4, 0, 0, 30735, 30736, 7, 19, 0, 0, 30736, 30737, 5, 95, 0, 0, 30737, 30738, 7, 15, 0, 0, 30738, 30739, 7, 11, 0, 0, 30739, 30740, 7, 5, 0, 0, 30740, 30741, 7, 24, 0, 0, 30741, 30742, 7, 11, 0, 0, 30742, 4610, 1, 0, 0, 0, 30743, 30744, 7, 22, 0, 0, 30744, 30745, 7, 10, 0, 0, 30745, 30746, 7, 4, 0, 0, 30746, 30747, 7, 19, 0, 0, 30747, 4612, 1, 0, 0, 0, 30748, 30749, 7, 22, 0, 0, 30749, 30750, 7, 2, 0, 0, 30750, 30751, 7, 3, 0, 0, 30751, 30752, 7, 21, 0, 0, 30752, 4614, 1, 0, 0, 0, 30753, 30754, 7, 22, 0, 0, 30754, 30755, 7, 2, 0, 0, 30755, 30756, 7, 3, 0, 0, 30756, 30757, 7, 21, 0, 0, 30757, 30758, 7, 6, 0, 0, 30758, 30759, 7, 3, 0, 0, 30759, 30760, 7, 10, 0, 0, 30760, 30761, 7, 9, 0, 0, 30761, 4616, 1, 0, 0, 0, 30762, 30763, 7, 22, 0, 0, 30763, 30764, 7, 3, 0, 0, 30764, 30765, 7, 0, 0, 0, 30765, 30766, 7, 15, 0, 0, 30766, 30767, 7, 15, 0, 0, 30767, 30768, 7, 6, 0, 0, 30768, 30769, 7, 9, 0, 0, 30769, 4618, 1, 0, 0, 0, 30770, 30771, 7, 22, 0, 0, 30771, 30772, 7, 3, 0, 0, 30772, 30773, 7, 0, 0, 0, 30773, 30774, 7, 15, 0, 0, 30774, 30775, 7, 15, 0, 0, 30775, 30776, 7, 6, 0, 0, 30776, 30777, 7, 3, 0, 0, 30777, 4620, 1, 0, 0, 0, 30778, 30779, 7, 22, 0, 0, 30779, 30780, 7, 3, 0, 0, 30780, 30781, 7, 10, 0, 0, 30781, 30782, 7, 4, 0, 0, 30782, 30783, 7, 6, 0, 0, 30783, 4622, 1, 0, 0, 0, 30784, 30785, 7, 25, 0, 0, 30785, 30786, 7, 9, 0, 0, 30786, 30787, 7, 1, 0, 0, 30787, 30788, 5, 95, 0, 0, 30788, 30789, 7, 16, 0, 0, 30789, 30790, 7, 0, 0, 0, 30790, 30791, 7, 5, 0, 0, 30791, 30792, 7, 4, 0, 0, 30792, 30793, 7, 15, 0, 0, 30793, 30794, 7, 0, 0, 0, 30794, 30795, 7, 4, 0, 0, 30795, 30796, 7, 19, 0, 0, 30796, 30797, 5, 95, 0, 0, 30797, 30798, 7, 10, 0, 0, 30798, 30799, 7, 7, 0, 0, 30799, 30800, 7, 5, 0, 0, 30800, 30801, 7, 6, 0, 0, 30801, 30802, 7, 3, 0, 0, 30802, 30803, 7, 4, 0, 0, 30803, 4624, 1, 0, 0, 0, 30804, 30805, 7, 25, 0, 0, 30805, 30806, 7, 9, 0, 0, 30806, 30807, 7, 1, 0, 0, 30807, 4626, 1, 0, 0, 0, 30808, 30809, 7, 25, 0, 0, 30809, 30810, 5, 95, 0, 0, 30810, 30811, 7, 9, 0, 0, 30811, 30812, 7, 18, 0, 0, 30812, 30813, 7, 7, 0, 0, 30813, 30814, 5, 95, 0, 0, 30814, 30815, 7, 15, 0, 0, 30815, 30816, 7, 3, 0, 0, 30816, 30817, 7, 12, 0, 0, 30817, 30818, 7, 7, 0, 0, 30818, 30819, 7, 6, 0, 0, 30819, 4628, 1, 0, 0, 0, 30820, 30821, 7, 25, 0, 0, 30821, 30822, 7, 10, 0, 0, 30822, 30823, 7, 9, 0, 0, 30823, 4630, 1, 0, 0, 0, 30824, 30825, 7, 25, 0, 0, 30825, 30826, 7, 14, 0, 0, 30826, 30827, 7, 11, 0, 0, 30827, 30828, 5, 50, 0, 0, 30828, 30829, 7, 2, 0, 0, 30829, 30830, 7, 1, 0, 0, 30830, 30831, 7, 20, 0, 0, 30831, 30832, 7, 6, 0, 0, 30832, 30833, 7, 8, 0, 0, 30833, 30834, 7, 4, 0, 0, 30834, 4632, 1, 0, 0, 0, 30835, 30836, 7, 25, 0, 0, 30836, 30837, 7, 14, 0, 0, 30837, 30838, 7, 11, 0, 0, 30838, 30839, 7, 0, 0, 0, 30839, 30840, 7, 17, 0, 0, 30840, 30841, 7, 17, 0, 0, 30841, 4634, 1, 0, 0, 0, 30842, 30843, 7, 25, 0, 0, 30843, 30844, 7, 14, 0, 0, 30844, 30845, 7, 11, 0, 0, 30845, 30846, 7, 0, 0, 0, 30846, 30847, 7, 4, 0, 0, 30847, 30848, 7, 4, 0, 0, 30848, 30849, 7, 3, 0, 0, 30849, 30850, 7, 10, 0, 0, 30850, 30851, 7, 1, 0, 0, 30851, 30852, 7, 12, 0, 0, 30852, 30853, 7, 4, 0, 0, 30853, 30854, 7, 6, 0, 0, 30854, 30855, 7, 5, 0, 0, 30855, 4636, 1, 0, 0, 0, 30856, 30857, 7, 25, 0, 0, 30857, 30858, 7, 14, 0, 0, 30858, 30859, 7, 11, 0, 0, 30859, 30860, 7, 8, 0, 0, 30860, 30861, 7, 0, 0, 0, 30861, 30862, 7, 5, 0, 0, 30862, 30863, 7, 4, 0, 0, 30863, 4638, 1, 0, 0, 0, 30864, 30865, 7, 25, 0, 0, 30865, 30866, 7, 14, 0, 0, 30866, 30867, 7, 11, 0, 0, 30867, 30868, 7, 8, 0, 0, 30868, 30869, 7, 9, 0, 0, 30869, 30870, 7, 0, 0, 0, 30870, 30871, 7, 4, 0, 0, 30871, 30872, 7, 0, 0, 0, 30872, 4640, 1, 0, 0, 0, 30873, 30874, 7, 25, 0, 0, 30874, 30875, 7, 14, 0, 0, 30875, 30876, 7, 11, 0, 0, 30876, 30877, 7, 8, 0, 0, 30877, 30878, 7, 2, 0, 0, 30878, 30879, 7, 11, 0, 0, 30879, 30880, 7, 0, 0, 0, 30880, 30881, 7, 4, 0, 0, 30881, 30882, 7, 4, 0, 0, 30882, 30883, 7, 13, 0, 0, 30883, 30884, 7, 0, 0, 0, 30884, 30885, 7, 11, 0, 0, 30885, 4642, 1, 0, 0, 0, 30886, 30887, 7, 25, 0, 0, 30887, 30888, 7, 14, 0, 0, 30888, 30889, 7, 11, 0, 0, 30889, 30890, 7, 8, 0, 0, 30890, 30891, 7, 2, 0, 0, 30891, 30892, 7, 14, 0, 0, 30892, 30893, 7, 14, 0, 0, 30893, 30894, 7, 6, 0, 0, 30894, 30895, 7, 7, 0, 0, 30895, 30896, 7, 4, 0, 0, 30896, 4644, 1, 0, 0, 0, 30897, 30898, 7, 25, 0, 0, 30898, 30899, 7, 14, 0, 0, 30899, 30900, 7, 11, 0, 0, 30900, 30901, 7, 8, 0, 0, 30901, 30902, 7, 2, 0, 0, 30902, 30903, 7, 7, 0, 0, 30903, 30904, 7, 8, 0, 0, 30904, 30905, 7, 0, 0, 0, 30905, 30906, 7, 4, 0, 0, 30906, 4646, 1, 0, 0, 0, 30907, 30908, 7, 25, 0, 0, 30908, 30909, 7, 14, 0, 0, 30909, 30910, 7, 11, 0, 0, 30910, 30911, 7, 9, 0, 0, 30911, 30912, 7, 10, 0, 0, 30912, 30913, 7, 16, 0, 0, 30913, 30914, 7, 16, 0, 0, 30914, 4648, 1, 0, 0, 0, 30915, 30916, 7, 25, 0, 0, 30916, 30917, 7, 14, 0, 0, 30917, 30918, 7, 11, 0, 0, 30918, 30919, 5, 95, 0, 0, 30919, 30920, 7, 9, 0, 0, 30920, 30921, 7, 14, 0, 0, 30921, 30922, 7, 11, 0, 0, 30922, 30923, 5, 95, 0, 0, 30923, 30924, 7, 3, 0, 0, 30924, 30925, 7, 22, 0, 0, 30925, 30926, 7, 4, 0, 0, 30926, 30927, 5, 95, 0, 0, 30927, 30928, 7, 5, 0, 0, 30928, 30929, 7, 4, 0, 0, 30929, 30930, 7, 14, 0, 0, 30930, 30931, 7, 4, 0, 0, 30931, 4650, 1, 0, 0, 0, 30932, 30933, 7, 25, 0, 0, 30933, 30934, 7, 14, 0, 0, 30934, 30935, 7, 11, 0, 0, 30935, 30936, 7, 6, 0, 0, 30936, 30937, 7, 11, 0, 0, 30937, 30938, 7, 6, 0, 0, 30938, 30939, 7, 14, 0, 0, 30939, 30940, 7, 6, 0, 0, 30940, 30941, 7, 7, 0, 0, 30941, 30942, 7, 4, 0, 0, 30942, 4652, 1, 0, 0, 0, 30943, 30944, 7, 25, 0, 0, 30944, 30945, 7, 14, 0, 0, 30945, 30946, 7, 11, 0, 0, 30946, 30947, 7, 6, 0, 0, 30947, 30948, 7, 25, 0, 0, 30948, 30949, 7, 10, 0, 0, 30949, 30950, 7, 5, 0, 0, 30950, 30951, 7, 4, 0, 0, 30951, 30952, 7, 5, 0, 0, 30952, 30953, 5, 50, 0, 0, 30953, 4654, 1, 0, 0, 0, 30954, 30955, 7, 25, 0, 0, 30955, 30956, 7, 14, 0, 0, 30956, 30957, 7, 11, 0, 0, 30957, 30958, 7, 6, 0, 0, 30958, 30959, 7, 25, 0, 0, 30959, 30960, 7, 10, 0, 0, 30960, 30961, 7, 5, 0, 0, 30961, 30962, 7, 4, 0, 0, 30962, 30963, 7, 5, 0, 0, 30963, 4656, 1, 0, 0, 0, 30964, 30965, 7, 25, 0, 0, 30965, 30966, 7, 14, 0, 0, 30966, 30967, 7, 11, 0, 0, 30967, 30968, 7, 16, 0, 0, 30968, 30969, 7, 2, 0, 0, 30969, 30970, 7, 3, 0, 0, 30970, 30971, 7, 6, 0, 0, 30971, 30972, 7, 5, 0, 0, 30972, 30973, 7, 4, 0, 0, 30973, 4658, 1, 0, 0, 0, 30974, 30975, 7, 25, 0, 0, 30975, 30976, 7, 14, 0, 0, 30976, 30977, 7, 11, 0, 0, 30977, 30978, 7, 10, 0, 0, 30978, 30979, 7, 7, 0, 0, 30979, 30980, 7, 9, 0, 0, 30980, 30981, 7, 6, 0, 0, 30981, 30982, 7, 25, 0, 0, 30982, 4660, 1, 0, 0, 0, 30983, 30984, 7, 25, 0, 0, 30984, 30985, 7, 14, 0, 0, 30985, 30986, 7, 11, 0, 0, 30986, 30987, 7, 10, 0, 0, 30987, 30988, 7, 7, 0, 0, 30988, 30989, 7, 9, 0, 0, 30989, 30990, 7, 6, 0, 0, 30990, 30991, 7, 25, 0, 0, 30991, 30992, 5, 95, 0, 0, 30992, 30993, 7, 3, 0, 0, 30993, 30994, 7, 6, 0, 0, 30994, 30995, 7, 22, 0, 0, 30995, 30996, 7, 3, 0, 0, 30996, 30997, 7, 10, 0, 0, 30997, 30998, 7, 4, 0, 0, 30998, 30999, 7, 6, 0, 0, 30999, 31000, 5, 95, 0, 0, 31000, 31001, 7, 10, 0, 0, 31001, 31002, 7, 7, 0, 0, 31002, 31003, 5, 95, 0, 0, 31003, 31004, 7, 5, 0, 0, 31004, 31005, 7, 6, 0, 0, 31005, 31006, 7, 11, 0, 0, 31006, 31007, 7, 6, 0, 0, 31007, 31008, 7, 8, 0, 0, 31008, 31009, 7, 4, 0, 0, 31009, 4662, 1, 0, 0, 0, 31010, 31011, 7, 25, 0, 0, 31011, 31012, 7, 14, 0, 0, 31012, 31013, 7, 11, 0, 0, 31013, 31014, 7, 10, 0, 0, 31014, 31015, 7, 7, 0, 0, 31015, 31016, 7, 9, 0, 0, 31016, 31017, 7, 6, 0, 0, 31017, 31018, 7, 25, 0, 0, 31018, 31019, 5, 95, 0, 0, 31019, 31020, 7, 3, 0, 0, 31020, 31021, 7, 6, 0, 0, 31021, 31022, 7, 22, 0, 0, 31022, 31023, 7, 3, 0, 0, 31023, 31024, 7, 10, 0, 0, 31024, 31025, 7, 4, 0, 0, 31025, 31026, 7, 6, 0, 0, 31026, 4664, 1, 0, 0, 0, 31027, 31028, 7, 25, 0, 0, 31028, 31029, 7, 14, 0, 0, 31029, 31030, 7, 11, 0, 0, 31030, 31031, 7, 10, 0, 0, 31031, 31032, 7, 7, 0, 0, 31032, 31033, 7, 9, 0, 0, 31033, 31034, 7, 6, 0, 0, 31034, 31035, 7, 25, 0, 0, 31035, 31036, 5, 95, 0, 0, 31036, 31037, 7, 5, 0, 0, 31037, 31038, 7, 6, 0, 0, 31038, 31039, 7, 11, 0, 0, 31039, 31040, 5, 95, 0, 0, 31040, 31041, 7, 10, 0, 0, 31041, 31042, 7, 9, 0, 0, 31042, 31043, 7, 25, 0, 0, 31043, 31044, 5, 95, 0, 0, 31044, 31045, 7, 4, 0, 0, 31045, 31046, 7, 1, 0, 0, 31046, 31047, 7, 11, 0, 0, 31047, 4666, 1, 0, 0, 0, 31048, 31049, 7, 25, 0, 0, 31049, 31050, 7, 14, 0, 0, 31050, 31051, 7, 11, 0, 0, 31051, 31052, 7, 10, 0, 0, 31052, 31053, 7, 5, 0, 0, 31053, 31054, 7, 7, 0, 0, 31054, 31055, 7, 2, 0, 0, 31055, 31056, 7, 9, 0, 0, 31056, 31057, 7, 6, 0, 0, 31057, 4668, 1, 0, 0, 0, 31058, 31059, 7, 25, 0, 0, 31059, 31060, 7, 14, 0, 0, 31060, 31061, 7, 11, 0, 0, 31061, 31062, 7, 10, 0, 0, 31062, 31063, 7, 5, 0, 0, 31063, 31064, 7, 13, 0, 0, 31064, 31065, 7, 0, 0, 0, 31065, 31066, 7, 11, 0, 0, 31066, 31067, 7, 10, 0, 0, 31067, 31068, 7, 9, 0, 0, 31068, 4670, 1, 0, 0, 0, 31069, 31070, 7, 25, 0, 0, 31070, 31071, 7, 14, 0, 0, 31071, 31072, 7, 11, 0, 0, 31072, 31073, 7, 7, 0, 0, 31073, 31074, 7, 0, 0, 0, 31074, 31075, 7, 14, 0, 0, 31075, 31076, 7, 6, 0, 0, 31076, 31077, 7, 5, 0, 0, 31077, 31078, 7, 15, 0, 0, 31078, 31079, 7, 0, 0, 0, 31079, 31080, 7, 8, 0, 0, 31080, 31081, 7, 6, 0, 0, 31081, 31082, 7, 5, 0, 0, 31082, 4672, 1, 0, 0, 0, 31083, 31084, 7, 25, 0, 0, 31084, 31085, 7, 14, 0, 0, 31085, 31086, 7, 11, 0, 0, 31086, 31087, 7, 15, 0, 0, 31087, 31088, 7, 0, 0, 0, 31088, 31089, 7, 3, 0, 0, 31089, 31090, 7, 5, 0, 0, 31090, 31091, 7, 6, 0, 0, 31091, 4674, 1, 0, 0, 0, 31092, 31093, 7, 25, 0, 0, 31093, 31094, 7, 14, 0, 0, 31094, 31095, 7, 11, 0, 0, 31095, 31096, 7, 15, 0, 0, 31096, 31097, 7, 0, 0, 0, 31097, 31098, 7, 4, 0, 0, 31098, 31099, 7, 8, 0, 0, 31099, 31100, 7, 19, 0, 0, 31100, 4676, 1, 0, 0, 0, 31101, 31102, 7, 25, 0, 0, 31102, 31103, 7, 14, 0, 0, 31103, 31104, 7, 11, 0, 0, 31104, 31105, 7, 15, 0, 0, 31105, 31106, 7, 10, 0, 0, 31106, 4678, 1, 0, 0, 0, 31107, 31108, 7, 25, 0, 0, 31108, 31109, 7, 14, 0, 0, 31109, 31110, 7, 11, 0, 0, 31110, 31111, 7, 24, 0, 0, 31111, 31112, 7, 12, 0, 0, 31112, 31113, 7, 6, 0, 0, 31113, 31114, 7, 3, 0, 0, 31114, 31115, 7, 18, 0, 0, 31115, 31116, 7, 13, 0, 0, 31116, 31117, 7, 0, 0, 0, 31117, 31118, 7, 11, 0, 0, 31118, 4680, 1, 0, 0, 0, 31119, 31120, 7, 25, 0, 0, 31120, 31121, 7, 14, 0, 0, 31121, 31122, 7, 11, 0, 0, 31122, 31123, 7, 24, 0, 0, 31123, 31124, 7, 12, 0, 0, 31124, 31125, 7, 6, 0, 0, 31125, 31126, 7, 3, 0, 0, 31126, 31127, 7, 18, 0, 0, 31127, 4682, 1, 0, 0, 0, 31128, 31129, 7, 25, 0, 0, 31129, 31130, 7, 14, 0, 0, 31130, 31131, 7, 11, 0, 0, 31131, 31132, 7, 3, 0, 0, 31132, 31133, 7, 2, 0, 0, 31133, 31134, 7, 2, 0, 0, 31134, 31135, 7, 4, 0, 0, 31135, 4684, 1, 0, 0, 0, 31136, 31137, 7, 25, 0, 0, 31137, 31138, 7, 14, 0, 0, 31138, 31139, 7, 11, 0, 0, 31139, 31140, 7, 5, 0, 0, 31140, 31141, 7, 8, 0, 0, 31141, 31142, 7, 19, 0, 0, 31142, 31143, 7, 6, 0, 0, 31143, 31144, 7, 14, 0, 0, 31144, 31145, 7, 0, 0, 0, 31145, 4686, 1, 0, 0, 0, 31146, 31147, 7, 25, 0, 0, 31147, 31148, 7, 14, 0, 0, 31148, 31149, 7, 11, 0, 0, 31149, 31150, 7, 5, 0, 0, 31150, 31151, 7, 6, 0, 0, 31151, 31152, 7, 3, 0, 0, 31152, 31153, 7, 10, 0, 0, 31153, 31154, 7, 0, 0, 0, 31154, 31155, 7, 11, 0, 0, 31155, 31156, 7, 10, 0, 0, 31156, 31157, 7, 23, 0, 0, 31157, 31158, 7, 6, 0, 0, 31158, 4688, 1, 0, 0, 0, 31159, 31160, 7, 25, 0, 0, 31160, 31161, 7, 14, 0, 0, 31161, 31162, 7, 11, 0, 0, 31162, 31163, 7, 4, 0, 0, 31163, 31164, 7, 0, 0, 0, 31164, 31165, 7, 1, 0, 0, 31165, 31166, 7, 11, 0, 0, 31166, 31167, 7, 6, 0, 0, 31167, 4690, 1, 0, 0, 0, 31168, 31169, 7, 25, 0, 0, 31169, 31170, 7, 14, 0, 0, 31170, 31171, 7, 11, 0, 0, 31171, 31172, 7, 4, 0, 0, 31172, 31173, 7, 0, 0, 0, 31173, 31174, 7, 17, 0, 0, 31174, 4692, 1, 0, 0, 0, 31175, 31176, 7, 25, 0, 0, 31176, 31177, 7, 14, 0, 0, 31177, 31178, 7, 11, 0, 0, 31178, 31179, 7, 4, 0, 0, 31179, 31180, 7, 3, 0, 0, 31180, 31181, 7, 0, 0, 0, 31181, 31182, 7, 7, 0, 0, 31182, 31183, 7, 5, 0, 0, 31183, 31184, 7, 16, 0, 0, 31184, 31185, 7, 2, 0, 0, 31185, 31186, 7, 3, 0, 0, 31186, 31187, 7, 14, 0, 0, 31187, 31188, 7, 1, 0, 0, 31188, 31189, 7, 11, 0, 0, 31189, 31190, 7, 2, 0, 0, 31190, 31191, 7, 1, 0, 0, 31191, 4694, 1, 0, 0, 0, 31192, 31193, 7, 25, 0, 0, 31193, 31194, 7, 14, 0, 0, 31194, 31195, 7, 11, 0, 0, 31195, 31196, 7, 4, 0, 0, 31196, 31197, 7, 3, 0, 0, 31197, 31198, 7, 0, 0, 0, 31198, 31199, 7, 7, 0, 0, 31199, 31200, 7, 5, 0, 0, 31200, 31201, 7, 16, 0, 0, 31201, 31202, 7, 2, 0, 0, 31202, 31203, 7, 3, 0, 0, 31203, 31204, 7, 14, 0, 0, 31204, 4696, 1, 0, 0, 0, 31205, 31206, 7, 25, 0, 0, 31206, 31207, 7, 14, 0, 0, 31207, 31208, 7, 11, 0, 0, 31208, 31209, 7, 4, 0, 0, 31209, 31210, 7, 18, 0, 0, 31210, 31211, 7, 15, 0, 0, 31211, 31212, 7, 6, 0, 0, 31212, 4698, 1, 0, 0, 0, 31213, 31214, 7, 25, 0, 0, 31214, 31215, 7, 14, 0, 0, 31215, 31216, 7, 11, 0, 0, 31216, 4700, 1, 0, 0, 0, 31217, 31218, 7, 25, 0, 0, 31218, 31219, 7, 15, 0, 0, 31219, 31220, 7, 0, 0, 0, 31220, 31221, 7, 4, 0, 0, 31221, 31222, 7, 19, 0, 0, 31222, 31223, 7, 4, 0, 0, 31223, 31224, 7, 0, 0, 0, 31224, 31225, 7, 1, 0, 0, 31225, 31226, 7, 11, 0, 0, 31226, 31227, 7, 6, 0, 0, 31227, 4702, 1, 0, 0, 0, 31228, 31229, 7, 25, 0, 0, 31229, 31230, 7, 5, 0, 0, 31230, 31231, 5, 95, 0, 0, 31231, 31232, 7, 5, 0, 0, 31232, 31233, 7, 18, 0, 0, 31233, 31234, 7, 5, 0, 0, 31234, 31235, 5, 95, 0, 0, 31235, 31236, 7, 8, 0, 0, 31236, 31237, 7, 2, 0, 0, 31237, 31238, 7, 7, 0, 0, 31238, 31239, 7, 4, 0, 0, 31239, 31240, 7, 6, 0, 0, 31240, 31241, 7, 25, 0, 0, 31241, 31242, 7, 4, 0, 0, 31242, 4704, 1, 0, 0, 0, 31243, 31244, 7, 25, 0, 0, 31244, 31245, 7, 5, 0, 0, 31245, 4706, 1, 0, 0, 0, 31246, 31247, 7, 25, 0, 0, 31247, 31248, 7, 4, 0, 0, 31248, 31249, 7, 3, 0, 0, 31249, 31250, 7, 0, 0, 0, 31250, 31251, 7, 7, 0, 0, 31251, 31252, 7, 5, 0, 0, 31252, 31253, 7, 15, 0, 0, 31253, 31254, 7, 2, 0, 0, 31254, 31255, 7, 3, 0, 0, 31255, 31256, 7, 4, 0, 0, 31256, 4708, 1, 0, 0, 0, 31257, 31258, 7, 18, 0, 0, 31258, 31259, 7, 6, 0, 0, 31259, 31260, 7, 0, 0, 0, 31260, 31261, 7, 3, 0, 0, 31261, 31262, 7, 5, 0, 0, 31262, 4710, 1, 0, 0, 0, 31263, 31264, 7, 18, 0, 0, 31264, 31265, 7, 6, 0, 0, 31265, 31266, 7, 0, 0, 0, 31266, 31267, 7, 3, 0, 0, 31267, 4712, 1, 0, 0, 0, 31268, 31269, 7, 18, 0, 0, 31269, 31270, 7, 6, 0, 0, 31270, 31271, 7, 0, 0, 0, 31271, 31272, 7, 3, 0, 0, 31272, 31273, 5, 95, 0, 0, 31273, 31274, 7, 4, 0, 0, 31274, 31275, 7, 2, 0, 0, 31275, 31276, 5, 95, 0, 0, 31276, 31277, 7, 14, 0, 0, 31277, 31278, 7, 2, 0, 0, 31278, 31279, 7, 7, 0, 0, 31279, 31280, 7, 4, 0, 0, 31280, 31281, 7, 19, 0, 0, 31281, 4714, 1, 0, 0, 0, 31282, 31283, 7, 18, 0, 0, 31283, 31284, 7, 6, 0, 0, 31284, 31285, 7, 5, 0, 0, 31285, 4716, 1, 0, 0, 0, 31286, 31287, 7, 18, 0, 0, 31287, 31288, 7, 14, 0, 0, 31288, 31289, 7, 10, 0, 0, 31289, 31290, 7, 7, 0, 0, 31290, 31291, 7, 4, 0, 0, 31291, 31292, 7, 6, 0, 0, 31292, 31293, 7, 3, 0, 0, 31293, 31294, 7, 13, 0, 0, 31294, 31295, 7, 0, 0, 0, 31295, 31296, 7, 11, 0, 0, 31296, 31297, 5, 95, 0, 0, 31297, 31298, 7, 12, 0, 0, 31298, 31299, 7, 7, 0, 0, 31299, 31300, 7, 8, 0, 0, 31300, 31301, 7, 2, 0, 0, 31301, 31302, 7, 7, 0, 0, 31302, 31303, 7, 5, 0, 0, 31303, 31304, 7, 4, 0, 0, 31304, 31305, 7, 3, 0, 0, 31305, 31306, 7, 0, 0, 0, 31306, 31307, 7, 10, 0, 0, 31307, 31308, 7, 7, 0, 0, 31308, 31309, 7, 6, 0, 0, 31309, 31310, 7, 9, 0, 0, 31310, 4718, 1, 0, 0, 0, 31311, 31312, 7, 23, 0, 0, 31312, 31313, 7, 2, 0, 0, 31313, 31314, 7, 7, 0, 0, 31314, 31315, 7, 6, 0, 0, 31315, 31316, 7, 14, 0, 0, 31316, 31317, 7, 0, 0, 0, 31317, 31318, 7, 15, 0, 0, 31318, 4720, 1, 0, 0, 0, 31319, 31320, 7, 23, 0, 0, 31320, 31321, 7, 2, 0, 0, 31321, 31322, 7, 7, 0, 0, 31322, 31323, 7, 6, 0, 0, 31323, 4722, 1, 0, 0, 0, 31324, 31325, 7, 23, 0, 0, 31325, 31326, 7, 2, 0, 0, 31326, 31327, 7, 7, 0, 0, 31327, 31328, 7, 6, 0, 0, 31328, 31329, 7, 9, 0, 0, 31329, 4724, 1, 0, 0, 0, 31330, 31331, 7, 15, 0, 0, 31331, 31332, 7, 3, 0, 0, 31332, 31333, 7, 6, 0, 0, 31333, 31334, 7, 9, 0, 0, 31334, 31335, 7, 10, 0, 0, 31335, 31336, 7, 8, 0, 0, 31336, 31337, 7, 4, 0, 0, 31337, 31338, 7, 10, 0, 0, 31338, 31339, 7, 2, 0, 0, 31339, 31340, 7, 7, 0, 0, 31340, 4726, 1, 0, 0, 0, 31341, 31342, 7, 15, 0, 0, 31342, 31343, 7, 3, 0, 0, 31343, 31344, 7, 6, 0, 0, 31344, 31345, 7, 9, 0, 0, 31345, 31346, 7, 10, 0, 0, 31346, 31347, 7, 8, 0, 0, 31347, 31348, 7, 4, 0, 0, 31348, 31349, 7, 10, 0, 0, 31349, 31350, 7, 2, 0, 0, 31350, 31351, 7, 7, 0, 0, 31351, 31352, 5, 95, 0, 0, 31352, 31353, 7, 1, 0, 0, 31353, 31354, 7, 2, 0, 0, 31354, 31355, 7, 12, 0, 0, 31355, 31356, 7, 7, 0, 0, 31356, 31357, 7, 9, 0, 0, 31357, 31358, 7, 5, 0, 0, 31358, 4728, 1, 0, 0, 0, 31359, 31360, 7, 15, 0, 0, 31360, 31361, 7, 3, 0, 0, 31361, 31362, 7, 6, 0, 0, 31362, 31363, 7, 9, 0, 0, 31363, 31364, 7, 10, 0, 0, 31364, 31365, 7, 8, 0, 0, 31365, 31366, 7, 4, 0, 0, 31366, 31367, 7, 10, 0, 0, 31367, 31368, 7, 2, 0, 0, 31368, 31369, 7, 7, 0, 0, 31369, 31370, 5, 95, 0, 0, 31370, 31371, 7, 8, 0, 0, 31371, 31372, 7, 2, 0, 0, 31372, 31373, 7, 5, 0, 0, 31373, 31374, 7, 4, 0, 0, 31374, 4730, 1, 0, 0, 0, 31375, 31376, 7, 15, 0, 0, 31376, 31377, 7, 3, 0, 0, 31377, 31378, 7, 6, 0, 0, 31378, 31379, 7, 9, 0, 0, 31379, 31380, 7, 10, 0, 0, 31380, 31381, 7, 8, 0, 0, 31381, 31382, 7, 4, 0, 0, 31382, 31383, 7, 10, 0, 0, 31383, 31384, 7, 2, 0, 0, 31384, 31385, 7, 7, 0, 0, 31385, 31386, 5, 95, 0, 0, 31386, 31387, 7, 9, 0, 0, 31387, 31388, 7, 6, 0, 0, 31388, 31389, 7, 4, 0, 0, 31389, 31390, 7, 0, 0, 0, 31390, 31391, 7, 10, 0, 0, 31391, 31392, 7, 11, 0, 0, 31392, 31393, 7, 5, 0, 0, 31393, 4732, 1, 0, 0, 0, 31394, 31395, 7, 15, 0, 0, 31395, 31396, 7, 3, 0, 0, 31396, 31397, 7, 6, 0, 0, 31397, 31398, 7, 9, 0, 0, 31398, 31399, 7, 10, 0, 0, 31399, 31400, 7, 8, 0, 0, 31400, 31401, 7, 4, 0, 0, 31401, 31402, 7, 10, 0, 0, 31402, 31403, 7, 2, 0, 0, 31403, 31404, 7, 7, 0, 0, 31404, 31405, 5, 95, 0, 0, 31405, 31406, 7, 15, 0, 0, 31406, 31407, 7, 3, 0, 0, 31407, 31408, 7, 2, 0, 0, 31408, 31409, 7, 1, 0, 0, 31409, 31410, 7, 0, 0, 0, 31410, 31411, 7, 1, 0, 0, 31411, 31412, 7, 10, 0, 0, 31412, 31413, 7, 11, 0, 0, 31413, 31414, 7, 10, 0, 0, 31414, 31415, 7, 4, 0, 0, 31415, 31416, 7, 18, 0, 0, 31416, 4734, 1, 0, 0, 0, 31417, 31418, 7, 15, 0, 0, 31418, 31419, 7, 3, 0, 0, 31419, 31420, 7, 6, 0, 0, 31420, 31421, 7, 9, 0, 0, 31421, 31422, 7, 10, 0, 0, 31422, 31423, 7, 8, 0, 0, 31423, 31424, 7, 4, 0, 0, 31424, 31425, 7, 10, 0, 0, 31425, 31426, 7, 2, 0, 0, 31426, 31427, 7, 7, 0, 0, 31427, 31428, 5, 95, 0, 0, 31428, 31429, 7, 5, 0, 0, 31429, 31430, 7, 6, 0, 0, 31430, 31431, 7, 4, 0, 0, 31431, 4736, 1, 0, 0, 0, 31432, 31433, 7, 1, 0, 0, 31433, 31434, 7, 11, 0, 0, 31434, 31435, 7, 2, 0, 0, 31435, 31436, 7, 8, 0, 0, 31436, 31437, 7, 21, 0, 0, 31437, 31438, 7, 8, 0, 0, 31438, 31439, 7, 19, 0, 0, 31439, 31440, 7, 0, 0, 0, 31440, 31441, 7, 10, 0, 0, 31441, 31442, 7, 7, 0, 0, 31442, 4738, 1, 0, 0, 0, 31443, 31444, 7, 8, 0, 0, 31444, 31445, 7, 2, 0, 0, 31445, 31446, 7, 11, 0, 0, 31446, 31447, 7, 11, 0, 0, 31447, 31448, 7, 0, 0, 0, 31448, 31449, 7, 4, 0, 0, 31449, 31450, 7, 6, 0, 0, 31450, 4740, 1, 0, 0, 0, 31451, 31452, 7, 8, 0, 0, 31452, 31453, 7, 2, 0, 0, 31453, 31454, 7, 11, 0, 0, 31454, 31455, 7, 11, 0, 0, 31455, 31456, 7, 0, 0, 0, 31456, 31457, 7, 4, 0, 0, 31457, 31458, 7, 10, 0, 0, 31458, 31459, 7, 2, 0, 0, 31459, 31460, 7, 7, 0, 0, 31460, 4742, 1, 0, 0, 0, 31461, 31462, 7, 9, 0, 0, 31462, 31463, 7, 6, 0, 0, 31463, 31464, 7, 16, 0, 0, 31464, 31465, 7, 10, 0, 0, 31465, 31466, 7, 7, 0, 0, 31466, 31467, 7, 10, 0, 0, 31467, 31468, 7, 4, 0, 0, 31468, 31469, 7, 10, 0, 0, 31469, 31470, 7, 2, 0, 0, 31470, 31471, 7, 7, 0, 0, 31471, 4744, 1, 0, 0, 0, 31472, 31473, 7, 9, 0, 0, 31473, 31474, 7, 12, 0, 0, 31474, 31475, 7, 15, 0, 0, 31475, 31476, 7, 11, 0, 0, 31476, 31477, 7, 10, 0, 0, 31477, 31478, 7, 8, 0, 0, 31478, 31479, 7, 0, 0, 0, 31479, 31480, 7, 4, 0, 0, 31480, 31481, 7, 6, 0, 0, 31481, 31482, 7, 9, 0, 0, 31482, 4746, 1, 0, 0, 0, 31483, 31484, 7, 6, 0, 0, 31484, 31485, 7, 25, 0, 0, 31485, 31486, 7, 4, 0, 0, 31486, 31487, 7, 6, 0, 0, 31487, 31488, 7, 7, 0, 0, 31488, 31489, 7, 9, 0, 0, 31489, 31490, 7, 6, 0, 0, 31490, 31491, 7, 9, 0, 0, 31491, 4748, 1, 0, 0, 0, 31492, 31493, 7, 19, 0, 0, 31493, 31494, 7, 0, 0, 0, 31494, 31495, 7, 5, 0, 0, 31495, 31496, 7, 19, 0, 0, 31496, 31497, 7, 10, 0, 0, 31497, 31498, 7, 7, 0, 0, 31498, 31499, 7, 17, 0, 0, 31499, 4750, 1, 0, 0, 0, 31500, 31501, 7, 10, 0, 0, 31501, 31502, 7, 9, 0, 0, 31502, 31503, 7, 11, 0, 0, 31503, 31504, 7, 6, 0, 0, 31504, 4752, 1, 0, 0, 0, 31505, 31506, 7, 10, 0, 0, 31506, 31507, 7, 14, 0, 0, 31507, 31508, 7, 14, 0, 0, 31508, 31509, 7, 12, 0, 0, 31509, 31510, 7, 4, 0, 0, 31510, 31511, 7, 0, 0, 0, 31511, 31512, 7, 1, 0, 0, 31512, 31513, 7, 11, 0, 0, 31513, 31514, 7, 6, 0, 0, 31514, 4754, 1, 0, 0, 0, 31515, 31516, 7, 2, 0, 0, 31516, 31517, 7, 3, 0, 0, 31517, 31518, 7, 0, 0, 0, 31518, 31519, 7, 8, 0, 0, 31519, 31520, 7, 11, 0, 0, 31520, 31521, 7, 6, 0, 0, 31521, 31522, 5, 95, 0, 0, 31522, 31523, 7, 9, 0, 0, 31523, 31524, 7, 0, 0, 0, 31524, 31525, 7, 4, 0, 0, 31525, 31526, 7, 0, 0, 0, 31526, 31527, 7, 15, 0, 0, 31527, 31528, 7, 12, 0, 0, 31528, 31529, 7, 14, 0, 0, 31529, 31530, 7, 15, 0, 0, 31530, 4756, 1, 0, 0, 0, 31531, 31532, 7, 2, 0, 0, 31532, 31533, 7, 3, 0, 0, 31533, 31534, 7, 0, 0, 0, 31534, 31535, 7, 8, 0, 0, 31535, 31536, 7, 11, 0, 0, 31536, 31537, 7, 6, 0, 0, 31537, 31538, 5, 95, 0, 0, 31538, 31539, 7, 19, 0, 0, 31539, 31540, 7, 9, 0, 0, 31540, 31541, 7, 16, 0, 0, 31541, 31542, 7, 5, 0, 0, 31542, 4758, 1, 0, 0, 0, 31543, 31544, 7, 2, 0, 0, 31544, 31545, 7, 3, 0, 0, 31545, 31546, 7, 0, 0, 0, 31546, 31547, 7, 8, 0, 0, 31547, 31548, 7, 11, 0, 0, 31548, 31549, 7, 6, 0, 0, 31549, 31550, 5, 95, 0, 0, 31550, 31551, 7, 19, 0, 0, 31551, 31552, 7, 10, 0, 0, 31552, 31553, 7, 13, 0, 0, 31553, 31554, 7, 6, 0, 0, 31554, 4760, 1, 0, 0, 0, 31555, 31556, 7, 2, 0, 0, 31556, 31557, 7, 3, 0, 0, 31557, 31558, 7, 0, 0, 0, 31558, 31559, 7, 8, 0, 0, 31559, 31560, 7, 11, 0, 0, 31560, 31561, 7, 6, 0, 0, 31561, 31562, 5, 95, 0, 0, 31562, 31563, 7, 11, 0, 0, 31563, 31564, 7, 2, 0, 0, 31564, 31565, 7, 0, 0, 0, 31565, 31566, 7, 9, 0, 0, 31566, 31567, 7, 6, 0, 0, 31567, 31568, 7, 3, 0, 0, 31568, 4762, 1, 0, 0, 0, 31569, 31570, 5, 34, 0, 0, 31570, 31571, 7, 5, 0, 0, 31571, 31572, 7, 19, 0, 0, 31572, 31573, 7, 0, 0, 0, 31573, 31574, 5, 50, 0, 0, 31574, 31575, 5, 95, 0, 0, 31575, 31576, 5, 53, 0, 0, 31576, 31577, 5, 49, 0, 0, 31577, 31578, 5, 50, 0, 0, 31578, 31579, 5, 34, 0, 0, 31579, 4764, 1, 0, 0, 0, 31580, 31581, 7, 5, 0, 0, 31581, 31582, 7, 19, 0, 0, 31582, 31583, 7, 0, 0, 0, 31583, 31584, 7, 3, 0, 0, 31584, 31585, 7, 9, 0, 0, 31585, 31586, 7, 6, 0, 0, 31586, 31587, 7, 9, 0, 0, 31587, 4766, 1, 0, 0, 0, 31588, 31589, 5, 34, 0, 0, 31589, 31590, 7, 13, 0, 0, 31590, 31591, 5, 49, 0, 0, 31591, 31592, 5, 34, 0, 0, 31592, 4768, 1, 0, 0, 0, 31593, 31594, 7, 10, 0, 0, 31594, 31595, 7, 5, 0, 0, 31595, 31596, 7, 2, 0, 0, 31596, 31597, 7, 11, 0, 0, 31597, 31598, 7, 0, 0, 0, 31598, 31599, 7, 4, 0, 0, 31599, 31600, 7, 6, 0, 0, 31600, 4770, 1, 0, 0, 0, 31601, 31602, 7, 3, 0, 0, 31602, 31603, 7, 2, 0, 0, 31603, 31604, 7, 2, 0, 0, 31604, 31605, 7, 4, 0, 0, 31605, 4772, 1, 0, 0, 0, 31606, 31607, 7, 12, 0, 0, 31607, 31608, 7, 7, 0, 0, 31608, 31609, 7, 10, 0, 0, 31609, 31610, 7, 4, 0, 0, 31610, 31611, 7, 6, 0, 0, 31611, 4774, 1, 0, 0, 0, 31612, 31613, 7, 0, 0, 0, 31613, 31614, 7, 11, 0, 0, 31614, 31615, 7, 17, 0, 0, 31615, 31616, 7, 2, 0, 0, 31616, 31617, 7, 3, 0, 0, 31617, 31618, 7, 10, 0, 0, 31618, 31619, 7, 4, 0, 0, 31619, 31620, 7, 19, 0, 0, 31620, 31621, 7, 14, 0, 0, 31621, 4776, 1, 0, 0, 0, 31622, 31623, 7, 8, 0, 0, 31623, 31624, 7, 12, 0, 0, 31624, 31625, 7, 14, 0, 0, 31625, 31626, 7, 6, 0, 0, 31626, 31627, 5, 95, 0, 0, 31627, 31628, 7, 9, 0, 0, 31628, 31629, 7, 10, 0, 0, 31629, 31630, 7, 5, 0, 0, 31630, 31631, 7, 4, 0, 0, 31631, 4778, 1, 0, 0, 0, 31632, 31633, 7, 9, 0, 0, 31633, 31634, 7, 6, 0, 0, 31634, 31635, 7, 7, 0, 0, 31635, 31636, 7, 5, 0, 0, 31636, 31637, 7, 6, 0, 0, 31637, 31638, 5, 95, 0, 0, 31638, 31639, 7, 3, 0, 0, 31639, 31640, 7, 0, 0, 0, 31640, 31641, 7, 7, 0, 0, 31641, 31642, 7, 21, 0, 0, 31642, 4780, 1, 0, 0, 0, 31643, 31644, 7, 11, 0, 0, 31644, 31645, 7, 10, 0, 0, 31645, 31646, 7, 5, 0, 0, 31646, 31647, 7, 4, 0, 0, 31647, 31648, 7, 0, 0, 0, 31648, 31649, 7, 17, 0, 0, 31649, 31650, 7, 17, 0, 0, 31650, 4782, 1, 0, 0, 0, 31651, 31652, 7, 15, 0, 0, 31652, 31653, 7, 6, 0, 0, 31653, 31654, 7, 3, 0, 0, 31654, 31655, 7, 8, 0, 0, 31655, 31656, 7, 6, 0, 0, 31656, 31657, 7, 7, 0, 0, 31657, 31658, 7, 4, 0, 0, 31658, 31659, 5, 95, 0, 0, 31659, 31660, 7, 3, 0, 0, 31660, 31661, 7, 0, 0, 0, 31661, 31662, 7, 7, 0, 0, 31662, 31663, 7, 21, 0, 0, 31663, 4784, 1, 0, 0, 0, 31664, 31665, 7, 15, 0, 0, 31665, 31666, 7, 6, 0, 0, 31666, 31667, 7, 3, 0, 0, 31667, 31668, 7, 8, 0, 0, 31668, 31669, 7, 6, 0, 0, 31669, 31670, 7, 7, 0, 0, 31670, 31671, 7, 4, 0, 0, 31671, 31672, 7, 10, 0, 0, 31672, 31673, 7, 11, 0, 0, 31673, 31674, 7, 6, 0, 0, 31674, 31675, 5, 95, 0, 0, 31675, 31676, 7, 8, 0, 0, 31676, 31677, 7, 2, 0, 0, 31677, 31678, 7, 7, 0, 0, 31678, 31679, 7, 4, 0, 0, 31679, 4786, 1, 0, 0, 0, 31680, 31681, 7, 15, 0, 0, 31681, 31682, 7, 6, 0, 0, 31682, 31683, 7, 3, 0, 0, 31683, 31684, 7, 8, 0, 0, 31684, 31685, 7, 6, 0, 0, 31685, 31686, 7, 7, 0, 0, 31686, 31687, 7, 4, 0, 0, 31687, 31688, 7, 10, 0, 0, 31688, 31689, 7, 11, 0, 0, 31689, 31690, 7, 6, 0, 0, 31690, 31691, 5, 95, 0, 0, 31691, 31692, 7, 9, 0, 0, 31692, 31693, 7, 10, 0, 0, 31693, 31694, 7, 5, 0, 0, 31694, 31695, 7, 8, 0, 0, 31695, 4788, 1, 0, 0, 0, 31696, 31697, 7, 3, 0, 0, 31697, 31698, 7, 0, 0, 0, 31698, 31699, 7, 7, 0, 0, 31699, 31700, 7, 21, 0, 0, 31700, 4790, 1, 0, 0, 0, 31701, 31702, 7, 0, 0, 0, 31702, 31703, 7, 13, 0, 0, 31703, 31704, 7, 17, 0, 0, 31704, 4792, 1, 0, 0, 0, 31705, 31706, 7, 8, 0, 0, 31706, 31707, 7, 2, 0, 0, 31707, 31708, 7, 3, 0, 0, 31708, 31709, 7, 3, 0, 0, 31709, 4794, 1, 0, 0, 0, 31710, 31711, 7, 8, 0, 0, 31711, 31712, 7, 2, 0, 0, 31712, 31713, 7, 13, 0, 0, 31713, 31714, 7, 0, 0, 0, 31714, 31715, 7, 3, 0, 0, 31715, 31716, 5, 95, 0, 0, 31716, 4796, 1, 0, 0, 0, 31717, 31718, 7, 9, 0, 0, 31718, 31719, 7, 6, 0, 0, 31719, 31720, 7, 8, 0, 0, 31720, 31721, 7, 2, 0, 0, 31721, 31722, 7, 9, 0, 0, 31722, 31723, 7, 6, 0, 0, 31723, 4798, 1, 0, 0, 0, 31724, 31725, 7, 11, 0, 0, 31725, 31726, 7, 0, 0, 0, 31726, 31727, 7, 17, 0, 0, 31727, 4800, 1, 0, 0, 0, 31728, 31729, 7, 11, 0, 0, 31729, 31730, 7, 0, 0, 0, 31730, 31731, 7, 17, 0, 0, 31731, 31732, 5, 95, 0, 0, 31732, 31733, 7, 9, 0, 0, 31733, 31734, 7, 10, 0, 0, 31734, 31735, 7, 16, 0, 0, 31735, 31736, 7, 16, 0, 0, 31736, 4802, 1, 0, 0, 0, 31737, 31738, 7, 11, 0, 0, 31738, 31739, 7, 0, 0, 0, 31739, 31740, 7, 17, 0, 0, 31740, 31741, 5, 95, 0, 0, 31741, 31742, 7, 9, 0, 0, 31742, 31743, 7, 10, 0, 0, 31743, 31744, 7, 16, 0, 0, 31744, 31745, 7, 16, 0, 0, 31745, 31746, 5, 95, 0, 0, 31746, 31747, 7, 15, 0, 0, 31747, 31748, 7, 6, 0, 0, 31748, 31749, 7, 3, 0, 0, 31749, 31750, 7, 8, 0, 0, 31750, 31751, 7, 6, 0, 0, 31751, 31752, 7, 7, 0, 0, 31752, 31753, 7, 4, 0, 0, 31753, 4804, 1, 0, 0, 0, 31754, 31755, 7, 11, 0, 0, 31755, 31756, 7, 6, 0, 0, 31756, 31757, 7, 0, 0, 0, 31757, 31758, 7, 9, 0, 0, 31758, 4806, 1, 0, 0, 0, 31759, 31760, 7, 14, 0, 0, 31760, 31761, 7, 0, 0, 0, 31761, 31762, 7, 25, 0, 0, 31762, 4808, 1, 0, 0, 0, 31763, 31764, 7, 14, 0, 0, 31764, 31765, 7, 6, 0, 0, 31765, 31766, 7, 9, 0, 0, 31766, 31767, 7, 10, 0, 0, 31767, 31768, 7, 0, 0, 0, 31768, 31769, 7, 7, 0, 0, 31769, 4810, 1, 0, 0, 0, 31770, 31771, 7, 14, 0, 0, 31771, 31772, 7, 6, 0, 0, 31772, 31773, 7, 14, 0, 0, 31773, 31774, 7, 2, 0, 0, 31774, 31775, 7, 15, 0, 0, 31775, 31776, 7, 4, 0, 0, 31776, 31777, 7, 10, 0, 0, 31777, 31778, 7, 14, 0, 0, 31778, 31779, 7, 10, 0, 0, 31779, 31780, 7, 23, 0, 0, 31780, 31781, 7, 6, 0, 0, 31781, 4812, 1, 0, 0, 0, 31782, 31783, 7, 14, 0, 0, 31783, 31784, 7, 10, 0, 0, 31784, 31785, 7, 7, 0, 0, 31785, 4814, 1, 0, 0, 0, 31786, 31787, 7, 7, 0, 0, 31787, 31788, 7, 4, 0, 0, 31788, 31789, 7, 10, 0, 0, 31789, 31790, 7, 11, 0, 0, 31790, 31791, 7, 6, 0, 0, 31791, 4816, 1, 0, 0, 0, 31792, 31793, 7, 7, 0, 0, 31793, 31794, 7, 13, 0, 0, 31794, 31795, 7, 11, 0, 0, 31795, 4818, 1, 0, 0, 0, 31796, 31797, 7, 3, 0, 0, 31797, 31798, 7, 0, 0, 0, 31798, 31799, 7, 4, 0, 0, 31799, 31800, 7, 10, 0, 0, 31800, 31801, 7, 2, 0, 0, 31801, 31802, 5, 95, 0, 0, 31802, 31803, 7, 4, 0, 0, 31803, 31804, 7, 2, 0, 0, 31804, 31805, 5, 95, 0, 0, 31805, 31806, 7, 3, 0, 0, 31806, 31807, 7, 6, 0, 0, 31807, 31808, 7, 15, 0, 0, 31808, 31809, 7, 2, 0, 0, 31809, 31810, 7, 3, 0, 0, 31810, 31811, 7, 4, 0, 0, 31811, 4820, 1, 0, 0, 0, 31812, 31813, 7, 3, 0, 0, 31813, 31814, 7, 6, 0, 0, 31814, 31815, 7, 17, 0, 0, 31815, 31816, 7, 3, 0, 0, 31816, 31817, 5, 95, 0, 0, 31817, 4822, 1, 0, 0, 0, 31818, 31819, 7, 3, 0, 0, 31819, 31820, 7, 2, 0, 0, 31820, 31821, 7, 12, 0, 0, 31821, 31822, 7, 7, 0, 0, 31822, 31823, 7, 9, 0, 0, 31823, 4824, 1, 0, 0, 0, 31824, 31825, 7, 3, 0, 0, 31825, 31826, 7, 2, 0, 0, 31826, 31827, 7, 22, 0, 0, 31827, 31828, 5, 95, 0, 0, 31828, 31829, 7, 7, 0, 0, 31829, 31830, 7, 12, 0, 0, 31830, 31831, 7, 14, 0, 0, 31831, 31832, 7, 1, 0, 0, 31832, 31833, 7, 6, 0, 0, 31833, 31834, 7, 3, 0, 0, 31834, 4826, 1, 0, 0, 0, 31835, 31836, 7, 5, 0, 0, 31836, 31837, 7, 12, 0, 0, 31837, 31838, 7, 1, 0, 0, 31838, 31839, 7, 5, 0, 0, 31839, 31840, 7, 4, 0, 0, 31840, 31841, 7, 3, 0, 0, 31841, 4828, 1, 0, 0, 0, 31842, 31843, 7, 4, 0, 0, 31843, 31844, 7, 2, 0, 0, 31844, 31845, 5, 95, 0, 0, 31845, 31846, 7, 8, 0, 0, 31846, 31847, 7, 19, 0, 0, 31847, 31848, 7, 0, 0, 0, 31848, 31849, 7, 3, 0, 0, 31849, 4830, 1, 0, 0, 0, 31850, 31851, 7, 4, 0, 0, 31851, 31852, 7, 3, 0, 0, 31852, 31853, 7, 10, 0, 0, 31853, 31854, 7, 14, 0, 0, 31854, 4832, 1, 0, 0, 0, 31855, 31856, 7, 5, 0, 0, 31856, 31857, 7, 12, 0, 0, 31857, 31858, 7, 14, 0, 0, 31858, 4834, 1, 0, 0, 0, 31859, 31860, 7, 5, 0, 0, 31860, 31861, 7, 4, 0, 0, 31861, 31862, 7, 9, 0, 0, 31862, 31863, 7, 9, 0, 0, 31863, 31864, 7, 6, 0, 0, 31864, 31865, 7, 13, 0, 0, 31865, 4836, 1, 0, 0, 0, 31866, 31867, 7, 13, 0, 0, 31867, 31868, 7, 0, 0, 0, 31868, 31869, 7, 3, 0, 0, 31869, 31870, 5, 95, 0, 0, 31870, 4838, 1, 0, 0, 0, 31871, 31872, 7, 13, 0, 0, 31872, 31873, 7, 0, 0, 0, 31873, 31874, 7, 3, 0, 0, 31874, 31875, 7, 10, 0, 0, 31875, 31876, 7, 0, 0, 0, 31876, 31877, 7, 7, 0, 0, 31877, 31878, 7, 8, 0, 0, 31878, 31879, 7, 6, 0, 0, 31879, 4840, 1, 0, 0, 0, 31880, 31881, 7, 11, 0, 0, 31881, 31882, 7, 6, 0, 0, 31882, 31883, 7, 0, 0, 0, 31883, 31884, 7, 5, 0, 0, 31884, 31885, 7, 4, 0, 0, 31885, 4842, 1, 0, 0, 0, 31886, 31887, 7, 17, 0, 0, 31887, 31888, 7, 3, 0, 0, 31888, 31889, 7, 6, 0, 0, 31889, 31890, 7, 0, 0, 0, 31890, 31891, 7, 4, 0, 0, 31891, 31892, 7, 6, 0, 0, 31892, 31893, 7, 5, 0, 0, 31893, 31894, 7, 4, 0, 0, 31894, 4844, 1, 0, 0, 0, 31895, 31896, 7, 4, 0, 0, 31896, 31897, 7, 2, 0, 0, 31897, 31898, 5, 95, 0, 0, 31898, 31899, 7, 9, 0, 0, 31899, 31900, 7, 0, 0, 0, 31900, 31901, 7, 4, 0, 0, 31901, 31902, 7, 6, 0, 0, 31902, 4846, 1, 0, 0, 0, 31903, 31904, 7, 8, 0, 0, 31904, 31905, 7, 19, 0, 0, 31905, 31906, 7, 0, 0, 0, 31906, 31907, 7, 3, 0, 0, 31907, 31908, 7, 5, 0, 0, 31908, 31909, 7, 6, 0, 0, 31909, 31910, 7, 4, 0, 0, 31910, 31911, 7, 10, 0, 0, 31911, 31912, 7, 9, 0, 0, 31912, 4848, 1, 0, 0, 0, 31913, 31914, 7, 8, 0, 0, 31914, 31915, 7, 19, 0, 0, 31915, 31916, 7, 0, 0, 0, 31916, 31917, 7, 3, 0, 0, 31917, 31918, 7, 5, 0, 0, 31918, 31919, 7, 6, 0, 0, 31919, 31920, 7, 4, 0, 0, 31920, 31921, 7, 16, 0, 0, 31921, 31922, 7, 2, 0, 0, 31922, 31923, 7, 3, 0, 0, 31923, 31924, 7, 14, 0, 0, 31924, 4850, 1, 0, 0, 0, 31925, 31926, 7, 9, 0, 0, 31926, 31927, 7, 12, 0, 0, 31927, 31928, 7, 3, 0, 0, 31928, 31929, 7, 0, 0, 0, 31929, 31930, 7, 4, 0, 0, 31930, 31931, 7, 10, 0, 0, 31931, 31932, 7, 2, 0, 0, 31932, 31933, 7, 7, 0, 0, 31933, 4852, 1, 0, 0, 0, 31934, 31935, 7, 6, 0, 0, 31935, 31936, 7, 25, 0, 0, 31936, 31937, 7, 4, 0, 0, 31937, 31938, 7, 6, 0, 0, 31938, 31939, 7, 7, 0, 0, 31939, 31940, 7, 9, 0, 0, 31940, 4854, 1, 0, 0, 0, 31941, 31942, 7, 14, 0, 0, 31942, 31943, 7, 0, 0, 0, 31943, 31944, 7, 25, 0, 0, 31944, 31945, 7, 11, 0, 0, 31945, 31946, 7, 6, 0, 0, 31946, 31947, 7, 7, 0, 0, 31947, 4856, 1, 0, 0, 0, 31948, 31949, 7, 15, 0, 0, 31949, 31950, 7, 6, 0, 0, 31950, 31951, 7, 3, 0, 0, 31951, 31952, 7, 5, 0, 0, 31952, 31953, 7, 10, 0, 0, 31953, 31954, 7, 5, 0, 0, 31954, 31955, 7, 4, 0, 0, 31955, 31956, 7, 0, 0, 0, 31956, 31957, 7, 1, 0, 0, 31957, 31958, 7, 11, 0, 0, 31958, 31959, 7, 6, 0, 0, 31959, 4858, 1, 0, 0, 0, 31960, 31961, 7, 15, 0, 0, 31961, 31962, 7, 2, 0, 0, 31962, 31963, 7, 11, 0, 0, 31963, 31964, 7, 18, 0, 0, 31964, 31965, 7, 14, 0, 0, 31965, 31966, 7, 2, 0, 0, 31966, 31967, 7, 3, 0, 0, 31967, 31968, 7, 15, 0, 0, 31968, 31969, 7, 19, 0, 0, 31969, 31970, 7, 10, 0, 0, 31970, 31971, 7, 8, 0, 0, 31971, 4860, 1, 0, 0, 0, 31972, 31973, 7, 5, 0, 0, 31973, 31974, 7, 4, 0, 0, 31974, 31975, 7, 3, 0, 0, 31975, 31976, 7, 12, 0, 0, 31976, 31977, 7, 8, 0, 0, 31977, 31978, 7, 4, 0, 0, 31978, 4862, 1, 0, 0, 0, 31979, 31980, 7, 4, 0, 0, 31980, 31981, 7, 9, 0, 0, 31981, 31982, 7, 2, 0, 0, 31982, 4864, 1, 0, 0, 0, 31983, 31984, 7, 22, 0, 0, 31984, 31985, 7, 14, 0, 0, 31985, 31986, 5, 95, 0, 0, 31986, 31987, 7, 8, 0, 0, 31987, 31988, 7, 2, 0, 0, 31988, 31989, 7, 7, 0, 0, 31989, 31990, 7, 8, 0, 0, 31990, 31991, 7, 0, 0, 0, 31991, 31992, 7, 4, 0, 0, 31992, 4866, 1, 0, 0, 0, 31993, 31994, 7, 7, 0, 0, 31994, 32001, 5, 39, 0, 0, 31995, 32000, 8, 26, 0, 0, 31996, 31997, 5, 39, 0, 0, 31997, 32000, 5, 39, 0, 0, 31998, 32000, 3, 4993, 2496, 0, 31999, 31995, 1, 0, 0, 0, 31999, 31996, 1, 0, 0, 0, 31999, 31998, 1, 0, 0, 0, 32000, 32003, 1, 0, 0, 0, 32001, 31999, 1, 0, 0, 0, 32001, 32002, 1, 0, 0, 0, 32002, 32004, 1, 0, 0, 0, 32003, 32001, 1, 0, 0, 0, 32004, 32005, 5, 39, 0, 0, 32005, 4868, 1, 0, 0, 0, 32006, 32015, 7, 1, 0, 0, 32007, 32011, 5, 39, 0, 0, 32008, 32010, 7, 27, 0, 0, 32009, 32008, 1, 0, 0, 0, 32010, 32013, 1, 0, 0, 0, 32011, 32009, 1, 0, 0, 0, 32011, 32012, 1, 0, 0, 0, 32012, 32014, 1, 0, 0, 0, 32013, 32011, 1, 0, 0, 0, 32014, 32016, 5, 39, 0, 0, 32015, 32007, 1, 0, 0, 0, 32016, 32017, 1, 0, 0, 0, 32017, 32015, 1, 0, 0, 0, 32017, 32018, 1, 0, 0, 0, 32018, 4870, 1, 0, 0, 0, 32019, 32023, 7, 25, 0, 0, 32020, 32021, 5, 48, 0, 0, 32021, 32023, 7, 25, 0, 0, 32022, 32019, 1, 0, 0, 0, 32022, 32020, 1, 0, 0, 0, 32023, 32032, 1, 0, 0, 0, 32024, 32028, 5, 39, 0, 0, 32025, 32027, 7, 28, 0, 0, 32026, 32025, 1, 0, 0, 0, 32027, 32030, 1, 0, 0, 0, 32028, 32026, 1, 0, 0, 0, 32028, 32029, 1, 0, 0, 0, 32029, 32031, 1, 0, 0, 0, 32030, 32028, 1, 0, 0, 0, 32031, 32033, 5, 39, 0, 0, 32032, 32024, 1, 0, 0, 0, 32033, 32034, 1, 0, 0, 0, 32034, 32032, 1, 0, 0, 0, 32034, 32035, 1, 0, 0, 0, 32035, 4872, 1, 0, 0, 0, 32036, 32037, 5, 46, 0, 0, 32037, 32038, 5, 46, 0, 0, 32038, 4874, 1, 0, 0, 0, 32039, 32040, 5, 46, 0, 0, 32040, 4876, 1, 0, 0, 0, 32041, 32043, 7, 29, 0, 0, 32042, 32041, 1, 0, 0, 0, 32043, 32044, 1, 0, 0, 0, 32044, 32042, 1, 0, 0, 0, 32044, 32045, 1, 0, 0, 0, 32045, 4878, 1, 0, 0, 0, 32046, 32059, 3, 4991, 2495, 0, 32047, 32049, 7, 6, 0, 0, 32048, 32050, 7, 30, 0, 0, 32049, 32048, 1, 0, 0, 0, 32049, 32050, 1, 0, 0, 0, 32050, 32057, 1, 0, 0, 0, 32051, 32058, 3, 4991, 2495, 0, 32052, 32054, 7, 29, 0, 0, 32053, 32052, 1, 0, 0, 0, 32054, 32055, 1, 0, 0, 0, 32055, 32053, 1, 0, 0, 0, 32055, 32056, 1, 0, 0, 0, 32056, 32058, 1, 0, 0, 0, 32057, 32051, 1, 0, 0, 0, 32057, 32053, 1, 0, 0, 0, 32058, 32060, 1, 0, 0, 0, 32059, 32047, 1, 0, 0, 0, 32059, 32060, 1, 0, 0, 0, 32060, 32062, 1, 0, 0, 0, 32061, 32063, 7, 31, 0, 0, 32062, 32061, 1, 0, 0, 0, 32062, 32063, 1, 0, 0, 0, 32063, 4880, 1, 0, 0, 0, 32064, 32071, 5, 39, 0, 0, 32065, 32070, 8, 26, 0, 0, 32066, 32067, 5, 39, 0, 0, 32067, 32070, 5, 39, 0, 0, 32068, 32070, 3, 4993, 2496, 0, 32069, 32065, 1, 0, 0, 0, 32069, 32066, 1, 0, 0, 0, 32069, 32068, 1, 0, 0, 0, 32070, 32073, 1, 0, 0, 0, 32071, 32069, 1, 0, 0, 0, 32071, 32072, 1, 0, 0, 0, 32072, 32074, 1, 0, 0, 0, 32073, 32071, 1, 0, 0, 0, 32074, 32075, 5, 39, 0, 0, 32075, 4882, 1, 0, 0, 0, 32076, 32077, 7, 24, 0, 0, 32077, 32089, 5, 39, 0, 0, 32078, 32090, 3, 4885, 2442, 0, 32079, 32090, 3, 4887, 2443, 0, 32080, 32090, 3, 4889, 2444, 0, 32081, 32090, 3, 4891, 2445, 0, 32082, 32090, 3, 4893, 2446, 0, 32083, 32090, 3, 4895, 2447, 0, 32084, 32090, 3, 4897, 2448, 0, 32085, 32090, 3, 4899, 2449, 0, 32086, 32090, 3, 4901, 2450, 0, 32087, 32090, 3, 4903, 2451, 0, 32088, 32090, 3, 4905, 2452, 0, 32089, 32078, 1, 0, 0, 0, 32089, 32079, 1, 0, 0, 0, 32089, 32080, 1, 0, 0, 0, 32089, 32081, 1, 0, 0, 0, 32089, 32082, 1, 0, 0, 0, 32089, 32083, 1, 0, 0, 0, 32089, 32084, 1, 0, 0, 0, 32089, 32085, 1, 0, 0, 0, 32089, 32086, 1, 0, 0, 0, 32089, 32087, 1, 0, 0, 0, 32089, 32088, 1, 0, 0, 0, 32090, 32091, 1, 0, 0, 0, 32091, 32092, 5, 39, 0, 0, 32092, 32093, 1, 0, 0, 0, 32093, 32094, 6, 2441, 0, 0, 32094, 4884, 1, 0, 0, 0, 32095, 32099, 5, 60, 0, 0, 32096, 32098, 9, 0, 0, 0, 32097, 32096, 1, 0, 0, 0, 32098, 32101, 1, 0, 0, 0, 32099, 32100, 1, 0, 0, 0, 32099, 32097, 1, 0, 0, 0, 32100, 32102, 1, 0, 0, 0, 32101, 32099, 1, 0, 0, 0, 32102, 32103, 5, 62, 0, 0, 32103, 4886, 1, 0, 0, 0, 32104, 32108, 5, 123, 0, 0, 32105, 32107, 9, 0, 0, 0, 32106, 32105, 1, 0, 0, 0, 32107, 32110, 1, 0, 0, 0, 32108, 32109, 1, 0, 0, 0, 32108, 32106, 1, 0, 0, 0, 32109, 32111, 1, 0, 0, 0, 32110, 32108, 1, 0, 0, 0, 32111, 32112, 5, 125, 0, 0, 32112, 4888, 1, 0, 0, 0, 32113, 32117, 5, 91, 0, 0, 32114, 32116, 9, 0, 0, 0, 32115, 32114, 1, 0, 0, 0, 32116, 32119, 1, 0, 0, 0, 32117, 32118, 1, 0, 0, 0, 32117, 32115, 1, 0, 0, 0, 32118, 32120, 1, 0, 0, 0, 32119, 32117, 1, 0, 0, 0, 32120, 32121, 5, 93, 0, 0, 32121, 4890, 1, 0, 0, 0, 32122, 32126, 5, 40, 0, 0, 32123, 32125, 9, 0, 0, 0, 32124, 32123, 1, 0, 0, 0, 32125, 32128, 1, 0, 0, 0, 32126, 32127, 1, 0, 0, 0, 32126, 32124, 1, 0, 0, 0, 32127, 32129, 1, 0, 0, 0, 32128, 32126, 1, 0, 0, 0, 32129, 32130, 5, 41, 0, 0, 32130, 4892, 1, 0, 0, 0, 32131, 32135, 5, 33, 0, 0, 32132, 32134, 9, 0, 0, 0, 32133, 32132, 1, 0, 0, 0, 32134, 32137, 1, 0, 0, 0, 32135, 32136, 1, 0, 0, 0, 32135, 32133, 1, 0, 0, 0, 32136, 32138, 1, 0, 0, 0, 32137, 32135, 1, 0, 0, 0, 32138, 32139, 5, 33, 0, 0, 32139, 4894, 1, 0, 0, 0, 32140, 32144, 5, 35, 0, 0, 32141, 32143, 9, 0, 0, 0, 32142, 32141, 1, 0, 0, 0, 32143, 32146, 1, 0, 0, 0, 32144, 32145, 1, 0, 0, 0, 32144, 32142, 1, 0, 0, 0, 32145, 32147, 1, 0, 0, 0, 32146, 32144, 1, 0, 0, 0, 32147, 32148, 5, 35, 0, 0, 32148, 4896, 1, 0, 0, 0, 32149, 32153, 5, 39, 0, 0, 32150, 32152, 9, 0, 0, 0, 32151, 32150, 1, 0, 0, 0, 32152, 32155, 1, 0, 0, 0, 32153, 32154, 1, 0, 0, 0, 32153, 32151, 1, 0, 0, 0, 32154, 32156, 1, 0, 0, 0, 32155, 32153, 1, 0, 0, 0, 32156, 32157, 5, 39, 0, 0, 32157, 4898, 1, 0, 0, 0, 32158, 32162, 5, 34, 0, 0, 32159, 32161, 9, 0, 0, 0, 32160, 32159, 1, 0, 0, 0, 32161, 32164, 1, 0, 0, 0, 32162, 32163, 1, 0, 0, 0, 32162, 32160, 1, 0, 0, 0, 32163, 32165, 1, 0, 0, 0, 32164, 32162, 1, 0, 0, 0, 32165, 32166, 5, 34, 0, 0, 32166, 4900, 1, 0, 0, 0, 32167, 32171, 5, 126, 0, 0, 32168, 32170, 9, 0, 0, 0, 32169, 32168, 1, 0, 0, 0, 32170, 32173, 1, 0, 0, 0, 32171, 32172, 1, 0, 0, 0, 32171, 32169, 1, 0, 0, 0, 32172, 32174, 1, 0, 0, 0, 32173, 32171, 1, 0, 0, 0, 32174, 32175, 5, 126, 0, 0, 32175, 4902, 1, 0, 0, 0, 32176, 32180, 5, 47, 0, 0, 32177, 32179, 9, 0, 0, 0, 32178, 32177, 1, 0, 0, 0, 32179, 32182, 1, 0, 0, 0, 32180, 32181, 1, 0, 0, 0, 32180, 32178, 1, 0, 0, 0, 32181, 32183, 1, 0, 0, 0, 32182, 32180, 1, 0, 0, 0, 32183, 32184, 5, 47, 0, 0, 32184, 4904, 1, 0, 0, 0, 32185, 32189, 5, 92, 0, 0, 32186, 32188, 9, 0, 0, 0, 32187, 32186, 1, 0, 0, 0, 32188, 32191, 1, 0, 0, 0, 32189, 32190, 1, 0, 0, 0, 32189, 32187, 1, 0, 0, 0, 32190, 32192, 1, 0, 0, 0, 32191, 32189, 1, 0, 0, 0, 32192, 32193, 5, 92, 0, 0, 32193, 4906, 1, 0, 0, 0, 32194, 32198, 5, 34, 0, 0, 32195, 32199, 8, 32, 0, 0, 32196, 32197, 5, 34, 0, 0, 32197, 32199, 5, 34, 0, 0, 32198, 32195, 1, 0, 0, 0, 32198, 32196, 1, 0, 0, 0, 32199, 32200, 1, 0, 0, 0, 32200, 32198, 1, 0, 0, 0, 32200, 32201, 1, 0, 0, 0, 32201, 32202, 1, 0, 0, 0, 32202, 32203, 5, 34, 0, 0, 32203, 4908, 1, 0, 0, 0, 32204, 32205, 5, 37, 0, 0, 32205, 4910, 1, 0, 0, 0, 32206, 32207, 5, 38, 0, 0, 32207, 4912, 1, 0, 0, 0, 32208, 32209, 5, 40, 0, 0, 32209, 4914, 1, 0, 0, 0, 32210, 32211, 5, 41, 0, 0, 32211, 4916, 1, 0, 0, 0, 32212, 32213, 5, 42, 0, 0, 32213, 32214, 5, 42, 0, 0, 32214, 4918, 1, 0, 0, 0, 32215, 32216, 5, 42, 0, 0, 32216, 4920, 1, 0, 0, 0, 32217, 32218, 5, 43, 0, 0, 32218, 4922, 1, 0, 0, 0, 32219, 32220, 5, 45, 0, 0, 32220, 4924, 1, 0, 0, 0, 32221, 32222, 5, 44, 0, 0, 32222, 4926, 1, 0, 0, 0, 32223, 32224, 5, 47, 0, 0, 32224, 4928, 1, 0, 0, 0, 32225, 32226, 5, 64, 0, 0, 32226, 4930, 1, 0, 0, 0, 32227, 32228, 5, 58, 0, 0, 32228, 32229, 5, 61, 0, 0, 32229, 4932, 1, 0, 0, 0, 32230, 32231, 5, 35, 0, 0, 32231, 4934, 1, 0, 0, 0, 32232, 32233, 5, 123, 0, 0, 32233, 4936, 1, 0, 0, 0, 32234, 32235, 5, 125, 0, 0, 32235, 4938, 1, 0, 0, 0, 32236, 32237, 5, 39, 0, 0, 32237, 4940, 1, 0, 0, 0, 32238, 32239, 5, 58, 0, 0, 32239, 32244, 3, 4989, 2494, 0, 32240, 32243, 3, 4989, 2494, 0, 32241, 32243, 7, 33, 0, 0, 32242, 32240, 1, 0, 0, 0, 32242, 32241, 1, 0, 0, 0, 32243, 32246, 1, 0, 0, 0, 32244, 32242, 1, 0, 0, 0, 32244, 32245, 1, 0, 0, 0, 32245, 32253, 1, 0, 0, 0, 32246, 32244, 1, 0, 0, 0, 32247, 32248, 5, 58, 0, 0, 32248, 32253, 3, 4907, 2453, 0, 32249, 32250, 5, 58, 0, 0, 32250, 32253, 3, 4877, 2438, 0, 32251, 32253, 3, 4987, 2493, 0, 32252, 32238, 1, 0, 0, 0, 32252, 32247, 1, 0, 0, 0, 32252, 32249, 1, 0, 0, 0, 32252, 32251, 1, 0, 0, 0, 32253, 4942, 1, 0, 0, 0, 32254, 32255, 5, 33, 0, 0, 32255, 32263, 5, 61, 0, 0, 32256, 32257, 5, 60, 0, 0, 32257, 32263, 5, 62, 0, 0, 32258, 32259, 5, 94, 0, 0, 32259, 32263, 5, 61, 0, 0, 32260, 32261, 5, 126, 0, 0, 32261, 32263, 5, 61, 0, 0, 32262, 32254, 1, 0, 0, 0, 32262, 32256, 1, 0, 0, 0, 32262, 32258, 1, 0, 0, 0, 32262, 32260, 1, 0, 0, 0, 32263, 4944, 1, 0, 0, 0, 32264, 32265, 5, 94, 0, 0, 32265, 4946, 1, 0, 0, 0, 32266, 32267, 5, 126, 0, 0, 32267, 4948, 1, 0, 0, 0, 32268, 32269, 5, 33, 0, 0, 32269, 4950, 1, 0, 0, 0, 32270, 32271, 5, 62, 0, 0, 32271, 4952, 1, 0, 0, 0, 32272, 32273, 5, 60, 0, 0, 32273, 4954, 1, 0, 0, 0, 32274, 32275, 5, 58, 0, 0, 32275, 4956, 1, 0, 0, 0, 32276, 32277, 5, 59, 0, 0, 32277, 4958, 1, 0, 0, 0, 32278, 32279, 5, 124, 0, 0, 32279, 4960, 1, 0, 0, 0, 32280, 32281, 5, 61, 0, 0, 32281, 4962, 1, 0, 0, 0, 32282, 32283, 5, 91, 0, 0, 32283, 4964, 1, 0, 0, 0, 32284, 32285, 5, 93, 0, 0, 32285, 4966, 1, 0, 0, 0, 32286, 32287, 5, 95, 0, 0, 32287, 4968, 1, 0, 0, 0, 32288, 32289, 5, 45, 0, 0, 32289, 32290, 5, 45, 0, 0, 32290, 32294, 1, 0, 0, 0, 32291, 32293, 8, 34, 0, 0, 32292, 32291, 1, 0, 0, 0, 32293, 32296, 1, 0, 0, 0, 32294, 32292, 1, 0, 0, 0, 32294, 32295, 1, 0, 0, 0, 32295, 32297, 1, 0, 0, 0, 32296, 32294, 1, 0, 0, 0, 32297, 32298, 3, 4985, 2492, 0, 32298, 32299, 1, 0, 0, 0, 32299, 32300, 6, 2484, 1, 0, 32300, 4970, 1, 0, 0, 0, 32301, 32302, 5, 47, 0, 0, 32302, 32303, 5, 42, 0, 0, 32303, 32307, 1, 0, 0, 0, 32304, 32306, 9, 0, 0, 0, 32305, 32304, 1, 0, 0, 0, 32306, 32309, 1, 0, 0, 0, 32307, 32308, 1, 0, 0, 0, 32307, 32305, 1, 0, 0, 0, 32308, 32310, 1, 0, 0, 0, 32309, 32307, 1, 0, 0, 0, 32310, 32311, 5, 42, 0, 0, 32311, 32312, 5, 47, 0, 0, 32312, 32313, 1, 0, 0, 0, 32313, 32314, 6, 2485, 1, 0, 32314, 4972, 1, 0, 0, 0, 32315, 32316, 7, 3, 0, 0, 32316, 32317, 7, 6, 0, 0, 32317, 32318, 7, 14, 0, 0, 32318, 32319, 1, 0, 0, 0, 32319, 32323, 4, 2486, 0, 0, 32320, 32321, 7, 0, 0, 0, 32321, 32322, 7, 3, 0, 0, 32322, 32324, 7, 21, 0, 0, 32323, 32320, 1, 0, 0, 0, 32323, 32324, 1, 0, 0, 0, 32324, 32332, 1, 0, 0, 0, 32325, 32329, 5, 32, 0, 0, 32326, 32328, 8, 34, 0, 0, 32327, 32326, 1, 0, 0, 0, 32328, 32331, 1, 0, 0, 0, 32329, 32327, 1, 0, 0, 0, 32329, 32330, 1, 0, 0, 0, 32330, 32333, 1, 0, 0, 0, 32331, 32329, 1, 0, 0, 0, 32332, 32325, 1, 0, 0, 0, 32332, 32333, 1, 0, 0, 0, 32333, 32334, 1, 0, 0, 0, 32334, 32335, 3, 4985, 2492, 0, 32335, 32336, 1, 0, 0, 0, 32336, 32337, 6, 2486, 1, 0, 32337, 4974, 1, 0, 0, 0, 32338, 32339, 7, 15, 0, 0, 32339, 32340, 7, 3, 0, 0, 32340, 32341, 7, 2, 0, 0, 32341, 32342, 1, 0, 0, 0, 32342, 32346, 4, 2487, 1, 0, 32343, 32344, 7, 14, 0, 0, 32344, 32345, 7, 15, 0, 0, 32345, 32347, 7, 4, 0, 0, 32346, 32343, 1, 0, 0, 0, 32346, 32347, 1, 0, 0, 0, 32347, 32355, 1, 0, 0, 0, 32348, 32352, 5, 32, 0, 0, 32349, 32351, 8, 34, 0, 0, 32350, 32349, 1, 0, 0, 0, 32351, 32354, 1, 0, 0, 0, 32352, 32350, 1, 0, 0, 0, 32352, 32353, 1, 0, 0, 0, 32353, 32356, 1, 0, 0, 0, 32354, 32352, 1, 0, 0, 0, 32355, 32348, 1, 0, 0, 0, 32355, 32356, 1, 0, 0, 0, 32356, 32357, 1, 0, 0, 0, 32357, 32358, 3, 4985, 2492, 0, 32358, 4976, 1, 0, 0, 0, 32359, 32361, 5, 64, 0, 0, 32360, 32362, 5, 64, 0, 0, 32361, 32360, 1, 0, 0, 0, 32361, 32362, 1, 0, 0, 0, 32362, 4978, 1, 0, 0, 0, 32363, 32368, 3, 4989, 2494, 0, 32364, 32367, 3, 4989, 2494, 0, 32365, 32367, 7, 35, 0, 0, 32366, 32364, 1, 0, 0, 0, 32366, 32365, 1, 0, 0, 0, 32367, 32370, 1, 0, 0, 0, 32368, 32366, 1, 0, 0, 0, 32368, 32369, 1, 0, 0, 0, 32369, 4980, 1, 0, 0, 0, 32370, 32368, 1, 0, 0, 0, 32371, 32372, 5, 36, 0, 0, 32372, 32373, 5, 36, 0, 0, 32373, 32376, 1, 0, 0, 0, 32374, 32377, 3, 4989, 2494, 0, 32375, 32377, 5, 95, 0, 0, 32376, 32374, 1, 0, 0, 0, 32376, 32375, 1, 0, 0, 0, 32377, 32378, 1, 0, 0, 0, 32378, 32376, 1, 0, 0, 0, 32378, 32379, 1, 0, 0, 0, 32379, 4982, 1, 0, 0, 0, 32380, 32382, 7, 36, 0, 0, 32381, 32380, 1, 0, 0, 0, 32382, 32383, 1, 0, 0, 0, 32383, 32381, 1, 0, 0, 0, 32383, 32384, 1, 0, 0, 0, 32384, 32385, 1, 0, 0, 0, 32385, 32386, 6, 2491, 1, 0, 32386, 4984, 1, 0, 0, 0, 32387, 32390, 3, 4993, 2496, 0, 32388, 32390, 5, 0, 0, 1, 32389, 32387, 1, 0, 0, 0, 32389, 32388, 1, 0, 0, 0, 32390, 4986, 1, 0, 0, 0, 32391, 32392, 5, 63, 0, 0, 32392, 4988, 1, 0, 0, 0, 32393, 32394, 7, 37, 0, 0, 32394, 4990, 1, 0, 0, 0, 32395, 32397, 3, 4877, 2438, 0, 32396, 32395, 1, 0, 0, 0, 32397, 32400, 1, 0, 0, 0, 32398, 32396, 1, 0, 0, 0, 32398, 32399, 1, 0, 0, 0, 32399, 32402, 1, 0, 0, 0, 32400, 32398, 1, 0, 0, 0, 32401, 32403, 5, 46, 0, 0, 32402, 32401, 1, 0, 0, 0, 32402, 32403, 1, 0, 0, 0, 32403, 32405, 1, 0, 0, 0, 32404, 32406, 3, 4877, 2438, 0, 32405, 32404, 1, 0, 0, 0, 32406, 32407, 1, 0, 0, 0, 32407, 32405, 1, 0, 0, 0, 32407, 32408, 1, 0, 0, 0, 32408, 4992, 1, 0, 0, 0, 32409, 32411, 5, 13, 0, 0, 32410, 32409, 1, 0, 0, 0, 32410, 32411, 1, 0, 0, 0, 32411, 32412, 1, 0, 0, 0, 32412, 32413, 5, 10, 0, 0, 32413, 4994, 1, 0, 0, 0, 32414, 32415, 7, 38, 0, 0, 32415, 4996, 1, 0, 0, 0, 62, 0, 19891, 19904, 19918, 19956, 19972, 19987, 19999, 20022, 23337, 31999, 32001, 32011, 32017, 32022, 32028, 32034, 32044, 32049, 32055, 32057, 32059, 32062, 32069, 32071, 32089, 32099, 32108, 32117, 32126, 32135, 32144, 32153, 32162, 32171, 32180, 32189, 32198, 32200, 32242, 32244, 32252, 32262, 32294, 32307, 32323, 32329, 32332, 32346, 32352, 32355, 32361, 32366, 32368, 32376, 32378, 32383, 32389, 32398, 32402, 32407, 32410, 2, 7, 2441, 0, 0, 1, 0] \ No newline at end of file diff --git a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.js b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.js new file mode 100644 index 000000000..54b4fecac --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.js @@ -0,0 +1,16413 @@ +// Generated from OracleSqlLexer.g4 by ANTLR 4.13.2 +// jshint ignore: start +import antlr4 from 'antlr4'; + + +import OracleSqlLexerBase from './OracleSqlLexerBase.js'; + +const serializedATN = [4,0,2480,32416,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7, +3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2, +12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19, +7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7, +26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33, +2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2, +41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48, +7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7, +55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62, +2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2, +70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77, +7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7, +84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91, +2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2, +99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105, +7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111, +7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117, +7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123, +7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129, +7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135, +7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141, +7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147, +7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153, +7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159, +7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165, +7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171, +7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177, +7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183, +7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189, +7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195, +7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201, +7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207, +7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213, +7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219, +7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225, +7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231, +7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237, +7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243, +7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249, +7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255, +7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261, +7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267, +7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273, +7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279, +7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285, +7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291, +7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297, +7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303, +7,303,2,304,7,304,2,305,7,305,2,306,7,306,2,307,7,307,2,308,7,308,2,309, +7,309,2,310,7,310,2,311,7,311,2,312,7,312,2,313,7,313,2,314,7,314,2,315, +7,315,2,316,7,316,2,317,7,317,2,318,7,318,2,319,7,319,2,320,7,320,2,321, +7,321,2,322,7,322,2,323,7,323,2,324,7,324,2,325,7,325,2,326,7,326,2,327, +7,327,2,328,7,328,2,329,7,329,2,330,7,330,2,331,7,331,2,332,7,332,2,333, +7,333,2,334,7,334,2,335,7,335,2,336,7,336,2,337,7,337,2,338,7,338,2,339, +7,339,2,340,7,340,2,341,7,341,2,342,7,342,2,343,7,343,2,344,7,344,2,345, +7,345,2,346,7,346,2,347,7,347,2,348,7,348,2,349,7,349,2,350,7,350,2,351, +7,351,2,352,7,352,2,353,7,353,2,354,7,354,2,355,7,355,2,356,7,356,2,357, +7,357,2,358,7,358,2,359,7,359,2,360,7,360,2,361,7,361,2,362,7,362,2,363, +7,363,2,364,7,364,2,365,7,365,2,366,7,366,2,367,7,367,2,368,7,368,2,369, +7,369,2,370,7,370,2,371,7,371,2,372,7,372,2,373,7,373,2,374,7,374,2,375, +7,375,2,376,7,376,2,377,7,377,2,378,7,378,2,379,7,379,2,380,7,380,2,381, +7,381,2,382,7,382,2,383,7,383,2,384,7,384,2,385,7,385,2,386,7,386,2,387, +7,387,2,388,7,388,2,389,7,389,2,390,7,390,2,391,7,391,2,392,7,392,2,393, +7,393,2,394,7,394,2,395,7,395,2,396,7,396,2,397,7,397,2,398,7,398,2,399, +7,399,2,400,7,400,2,401,7,401,2,402,7,402,2,403,7,403,2,404,7,404,2,405, +7,405,2,406,7,406,2,407,7,407,2,408,7,408,2,409,7,409,2,410,7,410,2,411, +7,411,2,412,7,412,2,413,7,413,2,414,7,414,2,415,7,415,2,416,7,416,2,417, +7,417,2,418,7,418,2,419,7,419,2,420,7,420,2,421,7,421,2,422,7,422,2,423, +7,423,2,424,7,424,2,425,7,425,2,426,7,426,2,427,7,427,2,428,7,428,2,429, +7,429,2,430,7,430,2,431,7,431,2,432,7,432,2,433,7,433,2,434,7,434,2,435, +7,435,2,436,7,436,2,437,7,437,2,438,7,438,2,439,7,439,2,440,7,440,2,441, +7,441,2,442,7,442,2,443,7,443,2,444,7,444,2,445,7,445,2,446,7,446,2,447, +7,447,2,448,7,448,2,449,7,449,2,450,7,450,2,451,7,451,2,452,7,452,2,453, +7,453,2,454,7,454,2,455,7,455,2,456,7,456,2,457,7,457,2,458,7,458,2,459, +7,459,2,460,7,460,2,461,7,461,2,462,7,462,2,463,7,463,2,464,7,464,2,465, +7,465,2,466,7,466,2,467,7,467,2,468,7,468,2,469,7,469,2,470,7,470,2,471, +7,471,2,472,7,472,2,473,7,473,2,474,7,474,2,475,7,475,2,476,7,476,2,477, +7,477,2,478,7,478,2,479,7,479,2,480,7,480,2,481,7,481,2,482,7,482,2,483, +7,483,2,484,7,484,2,485,7,485,2,486,7,486,2,487,7,487,2,488,7,488,2,489, +7,489,2,490,7,490,2,491,7,491,2,492,7,492,2,493,7,493,2,494,7,494,2,495, +7,495,2,496,7,496,2,497,7,497,2,498,7,498,2,499,7,499,2,500,7,500,2,501, +7,501,2,502,7,502,2,503,7,503,2,504,7,504,2,505,7,505,2,506,7,506,2,507, +7,507,2,508,7,508,2,509,7,509,2,510,7,510,2,511,7,511,2,512,7,512,2,513, +7,513,2,514,7,514,2,515,7,515,2,516,7,516,2,517,7,517,2,518,7,518,2,519, +7,519,2,520,7,520,2,521,7,521,2,522,7,522,2,523,7,523,2,524,7,524,2,525, +7,525,2,526,7,526,2,527,7,527,2,528,7,528,2,529,7,529,2,530,7,530,2,531, +7,531,2,532,7,532,2,533,7,533,2,534,7,534,2,535,7,535,2,536,7,536,2,537, +7,537,2,538,7,538,2,539,7,539,2,540,7,540,2,541,7,541,2,542,7,542,2,543, +7,543,2,544,7,544,2,545,7,545,2,546,7,546,2,547,7,547,2,548,7,548,2,549, +7,549,2,550,7,550,2,551,7,551,2,552,7,552,2,553,7,553,2,554,7,554,2,555, +7,555,2,556,7,556,2,557,7,557,2,558,7,558,2,559,7,559,2,560,7,560,2,561, +7,561,2,562,7,562,2,563,7,563,2,564,7,564,2,565,7,565,2,566,7,566,2,567, +7,567,2,568,7,568,2,569,7,569,2,570,7,570,2,571,7,571,2,572,7,572,2,573, +7,573,2,574,7,574,2,575,7,575,2,576,7,576,2,577,7,577,2,578,7,578,2,579, +7,579,2,580,7,580,2,581,7,581,2,582,7,582,2,583,7,583,2,584,7,584,2,585, +7,585,2,586,7,586,2,587,7,587,2,588,7,588,2,589,7,589,2,590,7,590,2,591, +7,591,2,592,7,592,2,593,7,593,2,594,7,594,2,595,7,595,2,596,7,596,2,597, +7,597,2,598,7,598,2,599,7,599,2,600,7,600,2,601,7,601,2,602,7,602,2,603, +7,603,2,604,7,604,2,605,7,605,2,606,7,606,2,607,7,607,2,608,7,608,2,609, +7,609,2,610,7,610,2,611,7,611,2,612,7,612,2,613,7,613,2,614,7,614,2,615, +7,615,2,616,7,616,2,617,7,617,2,618,7,618,2,619,7,619,2,620,7,620,2,621, +7,621,2,622,7,622,2,623,7,623,2,624,7,624,2,625,7,625,2,626,7,626,2,627, +7,627,2,628,7,628,2,629,7,629,2,630,7,630,2,631,7,631,2,632,7,632,2,633, +7,633,2,634,7,634,2,635,7,635,2,636,7,636,2,637,7,637,2,638,7,638,2,639, +7,639,2,640,7,640,2,641,7,641,2,642,7,642,2,643,7,643,2,644,7,644,2,645, +7,645,2,646,7,646,2,647,7,647,2,648,7,648,2,649,7,649,2,650,7,650,2,651, +7,651,2,652,7,652,2,653,7,653,2,654,7,654,2,655,7,655,2,656,7,656,2,657, +7,657,2,658,7,658,2,659,7,659,2,660,7,660,2,661,7,661,2,662,7,662,2,663, +7,663,2,664,7,664,2,665,7,665,2,666,7,666,2,667,7,667,2,668,7,668,2,669, +7,669,2,670,7,670,2,671,7,671,2,672,7,672,2,673,7,673,2,674,7,674,2,675, +7,675,2,676,7,676,2,677,7,677,2,678,7,678,2,679,7,679,2,680,7,680,2,681, +7,681,2,682,7,682,2,683,7,683,2,684,7,684,2,685,7,685,2,686,7,686,2,687, +7,687,2,688,7,688,2,689,7,689,2,690,7,690,2,691,7,691,2,692,7,692,2,693, +7,693,2,694,7,694,2,695,7,695,2,696,7,696,2,697,7,697,2,698,7,698,2,699, +7,699,2,700,7,700,2,701,7,701,2,702,7,702,2,703,7,703,2,704,7,704,2,705, +7,705,2,706,7,706,2,707,7,707,2,708,7,708,2,709,7,709,2,710,7,710,2,711, +7,711,2,712,7,712,2,713,7,713,2,714,7,714,2,715,7,715,2,716,7,716,2,717, +7,717,2,718,7,718,2,719,7,719,2,720,7,720,2,721,7,721,2,722,7,722,2,723, +7,723,2,724,7,724,2,725,7,725,2,726,7,726,2,727,7,727,2,728,7,728,2,729, +7,729,2,730,7,730,2,731,7,731,2,732,7,732,2,733,7,733,2,734,7,734,2,735, +7,735,2,736,7,736,2,737,7,737,2,738,7,738,2,739,7,739,2,740,7,740,2,741, +7,741,2,742,7,742,2,743,7,743,2,744,7,744,2,745,7,745,2,746,7,746,2,747, +7,747,2,748,7,748,2,749,7,749,2,750,7,750,2,751,7,751,2,752,7,752,2,753, +7,753,2,754,7,754,2,755,7,755,2,756,7,756,2,757,7,757,2,758,7,758,2,759, +7,759,2,760,7,760,2,761,7,761,2,762,7,762,2,763,7,763,2,764,7,764,2,765, +7,765,2,766,7,766,2,767,7,767,2,768,7,768,2,769,7,769,2,770,7,770,2,771, +7,771,2,772,7,772,2,773,7,773,2,774,7,774,2,775,7,775,2,776,7,776,2,777, +7,777,2,778,7,778,2,779,7,779,2,780,7,780,2,781,7,781,2,782,7,782,2,783, +7,783,2,784,7,784,2,785,7,785,2,786,7,786,2,787,7,787,2,788,7,788,2,789, +7,789,2,790,7,790,2,791,7,791,2,792,7,792,2,793,7,793,2,794,7,794,2,795, +7,795,2,796,7,796,2,797,7,797,2,798,7,798,2,799,7,799,2,800,7,800,2,801, +7,801,2,802,7,802,2,803,7,803,2,804,7,804,2,805,7,805,2,806,7,806,2,807, +7,807,2,808,7,808,2,809,7,809,2,810,7,810,2,811,7,811,2,812,7,812,2,813, +7,813,2,814,7,814,2,815,7,815,2,816,7,816,2,817,7,817,2,818,7,818,2,819, +7,819,2,820,7,820,2,821,7,821,2,822,7,822,2,823,7,823,2,824,7,824,2,825, +7,825,2,826,7,826,2,827,7,827,2,828,7,828,2,829,7,829,2,830,7,830,2,831, +7,831,2,832,7,832,2,833,7,833,2,834,7,834,2,835,7,835,2,836,7,836,2,837, +7,837,2,838,7,838,2,839,7,839,2,840,7,840,2,841,7,841,2,842,7,842,2,843, +7,843,2,844,7,844,2,845,7,845,2,846,7,846,2,847,7,847,2,848,7,848,2,849, +7,849,2,850,7,850,2,851,7,851,2,852,7,852,2,853,7,853,2,854,7,854,2,855, +7,855,2,856,7,856,2,857,7,857,2,858,7,858,2,859,7,859,2,860,7,860,2,861, +7,861,2,862,7,862,2,863,7,863,2,864,7,864,2,865,7,865,2,866,7,866,2,867, +7,867,2,868,7,868,2,869,7,869,2,870,7,870,2,871,7,871,2,872,7,872,2,873, +7,873,2,874,7,874,2,875,7,875,2,876,7,876,2,877,7,877,2,878,7,878,2,879, +7,879,2,880,7,880,2,881,7,881,2,882,7,882,2,883,7,883,2,884,7,884,2,885, +7,885,2,886,7,886,2,887,7,887,2,888,7,888,2,889,7,889,2,890,7,890,2,891, +7,891,2,892,7,892,2,893,7,893,2,894,7,894,2,895,7,895,2,896,7,896,2,897, +7,897,2,898,7,898,2,899,7,899,2,900,7,900,2,901,7,901,2,902,7,902,2,903, +7,903,2,904,7,904,2,905,7,905,2,906,7,906,2,907,7,907,2,908,7,908,2,909, +7,909,2,910,7,910,2,911,7,911,2,912,7,912,2,913,7,913,2,914,7,914,2,915, +7,915,2,916,7,916,2,917,7,917,2,918,7,918,2,919,7,919,2,920,7,920,2,921, +7,921,2,922,7,922,2,923,7,923,2,924,7,924,2,925,7,925,2,926,7,926,2,927, +7,927,2,928,7,928,2,929,7,929,2,930,7,930,2,931,7,931,2,932,7,932,2,933, +7,933,2,934,7,934,2,935,7,935,2,936,7,936,2,937,7,937,2,938,7,938,2,939, +7,939,2,940,7,940,2,941,7,941,2,942,7,942,2,943,7,943,2,944,7,944,2,945, +7,945,2,946,7,946,2,947,7,947,2,948,7,948,2,949,7,949,2,950,7,950,2,951, +7,951,2,952,7,952,2,953,7,953,2,954,7,954,2,955,7,955,2,956,7,956,2,957, +7,957,2,958,7,958,2,959,7,959,2,960,7,960,2,961,7,961,2,962,7,962,2,963, +7,963,2,964,7,964,2,965,7,965,2,966,7,966,2,967,7,967,2,968,7,968,2,969, +7,969,2,970,7,970,2,971,7,971,2,972,7,972,2,973,7,973,2,974,7,974,2,975, +7,975,2,976,7,976,2,977,7,977,2,978,7,978,2,979,7,979,2,980,7,980,2,981, +7,981,2,982,7,982,2,983,7,983,2,984,7,984,2,985,7,985,2,986,7,986,2,987, +7,987,2,988,7,988,2,989,7,989,2,990,7,990,2,991,7,991,2,992,7,992,2,993, +7,993,2,994,7,994,2,995,7,995,2,996,7,996,2,997,7,997,2,998,7,998,2,999, +7,999,2,1000,7,1000,2,1001,7,1001,2,1002,7,1002,2,1003,7,1003,2,1004,7,1004, +2,1005,7,1005,2,1006,7,1006,2,1007,7,1007,2,1008,7,1008,2,1009,7,1009,2, +1010,7,1010,2,1011,7,1011,2,1012,7,1012,2,1013,7,1013,2,1014,7,1014,2,1015, +7,1015,2,1016,7,1016,2,1017,7,1017,2,1018,7,1018,2,1019,7,1019,2,1020,7, +1020,2,1021,7,1021,2,1022,7,1022,2,1023,7,1023,2,1024,7,1024,2,1025,7,1025, +2,1026,7,1026,2,1027,7,1027,2,1028,7,1028,2,1029,7,1029,2,1030,7,1030,2, +1031,7,1031,2,1032,7,1032,2,1033,7,1033,2,1034,7,1034,2,1035,7,1035,2,1036, +7,1036,2,1037,7,1037,2,1038,7,1038,2,1039,7,1039,2,1040,7,1040,2,1041,7, +1041,2,1042,7,1042,2,1043,7,1043,2,1044,7,1044,2,1045,7,1045,2,1046,7,1046, +2,1047,7,1047,2,1048,7,1048,2,1049,7,1049,2,1050,7,1050,2,1051,7,1051,2, +1052,7,1052,2,1053,7,1053,2,1054,7,1054,2,1055,7,1055,2,1056,7,1056,2,1057, +7,1057,2,1058,7,1058,2,1059,7,1059,2,1060,7,1060,2,1061,7,1061,2,1062,7, +1062,2,1063,7,1063,2,1064,7,1064,2,1065,7,1065,2,1066,7,1066,2,1067,7,1067, +2,1068,7,1068,2,1069,7,1069,2,1070,7,1070,2,1071,7,1071,2,1072,7,1072,2, +1073,7,1073,2,1074,7,1074,2,1075,7,1075,2,1076,7,1076,2,1077,7,1077,2,1078, +7,1078,2,1079,7,1079,2,1080,7,1080,2,1081,7,1081,2,1082,7,1082,2,1083,7, +1083,2,1084,7,1084,2,1085,7,1085,2,1086,7,1086,2,1087,7,1087,2,1088,7,1088, +2,1089,7,1089,2,1090,7,1090,2,1091,7,1091,2,1092,7,1092,2,1093,7,1093,2, +1094,7,1094,2,1095,7,1095,2,1096,7,1096,2,1097,7,1097,2,1098,7,1098,2,1099, +7,1099,2,1100,7,1100,2,1101,7,1101,2,1102,7,1102,2,1103,7,1103,2,1104,7, +1104,2,1105,7,1105,2,1106,7,1106,2,1107,7,1107,2,1108,7,1108,2,1109,7,1109, +2,1110,7,1110,2,1111,7,1111,2,1112,7,1112,2,1113,7,1113,2,1114,7,1114,2, +1115,7,1115,2,1116,7,1116,2,1117,7,1117,2,1118,7,1118,2,1119,7,1119,2,1120, +7,1120,2,1121,7,1121,2,1122,7,1122,2,1123,7,1123,2,1124,7,1124,2,1125,7, +1125,2,1126,7,1126,2,1127,7,1127,2,1128,7,1128,2,1129,7,1129,2,1130,7,1130, +2,1131,7,1131,2,1132,7,1132,2,1133,7,1133,2,1134,7,1134,2,1135,7,1135,2, +1136,7,1136,2,1137,7,1137,2,1138,7,1138,2,1139,7,1139,2,1140,7,1140,2,1141, +7,1141,2,1142,7,1142,2,1143,7,1143,2,1144,7,1144,2,1145,7,1145,2,1146,7, +1146,2,1147,7,1147,2,1148,7,1148,2,1149,7,1149,2,1150,7,1150,2,1151,7,1151, +2,1152,7,1152,2,1153,7,1153,2,1154,7,1154,2,1155,7,1155,2,1156,7,1156,2, +1157,7,1157,2,1158,7,1158,2,1159,7,1159,2,1160,7,1160,2,1161,7,1161,2,1162, +7,1162,2,1163,7,1163,2,1164,7,1164,2,1165,7,1165,2,1166,7,1166,2,1167,7, +1167,2,1168,7,1168,2,1169,7,1169,2,1170,7,1170,2,1171,7,1171,2,1172,7,1172, +2,1173,7,1173,2,1174,7,1174,2,1175,7,1175,2,1176,7,1176,2,1177,7,1177,2, +1178,7,1178,2,1179,7,1179,2,1180,7,1180,2,1181,7,1181,2,1182,7,1182,2,1183, +7,1183,2,1184,7,1184,2,1185,7,1185,2,1186,7,1186,2,1187,7,1187,2,1188,7, +1188,2,1189,7,1189,2,1190,7,1190,2,1191,7,1191,2,1192,7,1192,2,1193,7,1193, +2,1194,7,1194,2,1195,7,1195,2,1196,7,1196,2,1197,7,1197,2,1198,7,1198,2, +1199,7,1199,2,1200,7,1200,2,1201,7,1201,2,1202,7,1202,2,1203,7,1203,2,1204, +7,1204,2,1205,7,1205,2,1206,7,1206,2,1207,7,1207,2,1208,7,1208,2,1209,7, +1209,2,1210,7,1210,2,1211,7,1211,2,1212,7,1212,2,1213,7,1213,2,1214,7,1214, +2,1215,7,1215,2,1216,7,1216,2,1217,7,1217,2,1218,7,1218,2,1219,7,1219,2, +1220,7,1220,2,1221,7,1221,2,1222,7,1222,2,1223,7,1223,2,1224,7,1224,2,1225, +7,1225,2,1226,7,1226,2,1227,7,1227,2,1228,7,1228,2,1229,7,1229,2,1230,7, +1230,2,1231,7,1231,2,1232,7,1232,2,1233,7,1233,2,1234,7,1234,2,1235,7,1235, +2,1236,7,1236,2,1237,7,1237,2,1238,7,1238,2,1239,7,1239,2,1240,7,1240,2, +1241,7,1241,2,1242,7,1242,2,1243,7,1243,2,1244,7,1244,2,1245,7,1245,2,1246, +7,1246,2,1247,7,1247,2,1248,7,1248,2,1249,7,1249,2,1250,7,1250,2,1251,7, +1251,2,1252,7,1252,2,1253,7,1253,2,1254,7,1254,2,1255,7,1255,2,1256,7,1256, +2,1257,7,1257,2,1258,7,1258,2,1259,7,1259,2,1260,7,1260,2,1261,7,1261,2, +1262,7,1262,2,1263,7,1263,2,1264,7,1264,2,1265,7,1265,2,1266,7,1266,2,1267, +7,1267,2,1268,7,1268,2,1269,7,1269,2,1270,7,1270,2,1271,7,1271,2,1272,7, +1272,2,1273,7,1273,2,1274,7,1274,2,1275,7,1275,2,1276,7,1276,2,1277,7,1277, +2,1278,7,1278,2,1279,7,1279,2,1280,7,1280,2,1281,7,1281,2,1282,7,1282,2, +1283,7,1283,2,1284,7,1284,2,1285,7,1285,2,1286,7,1286,2,1287,7,1287,2,1288, +7,1288,2,1289,7,1289,2,1290,7,1290,2,1291,7,1291,2,1292,7,1292,2,1293,7, +1293,2,1294,7,1294,2,1295,7,1295,2,1296,7,1296,2,1297,7,1297,2,1298,7,1298, +2,1299,7,1299,2,1300,7,1300,2,1301,7,1301,2,1302,7,1302,2,1303,7,1303,2, +1304,7,1304,2,1305,7,1305,2,1306,7,1306,2,1307,7,1307,2,1308,7,1308,2,1309, +7,1309,2,1310,7,1310,2,1311,7,1311,2,1312,7,1312,2,1313,7,1313,2,1314,7, +1314,2,1315,7,1315,2,1316,7,1316,2,1317,7,1317,2,1318,7,1318,2,1319,7,1319, +2,1320,7,1320,2,1321,7,1321,2,1322,7,1322,2,1323,7,1323,2,1324,7,1324,2, +1325,7,1325,2,1326,7,1326,2,1327,7,1327,2,1328,7,1328,2,1329,7,1329,2,1330, +7,1330,2,1331,7,1331,2,1332,7,1332,2,1333,7,1333,2,1334,7,1334,2,1335,7, +1335,2,1336,7,1336,2,1337,7,1337,2,1338,7,1338,2,1339,7,1339,2,1340,7,1340, +2,1341,7,1341,2,1342,7,1342,2,1343,7,1343,2,1344,7,1344,2,1345,7,1345,2, +1346,7,1346,2,1347,7,1347,2,1348,7,1348,2,1349,7,1349,2,1350,7,1350,2,1351, +7,1351,2,1352,7,1352,2,1353,7,1353,2,1354,7,1354,2,1355,7,1355,2,1356,7, +1356,2,1357,7,1357,2,1358,7,1358,2,1359,7,1359,2,1360,7,1360,2,1361,7,1361, +2,1362,7,1362,2,1363,7,1363,2,1364,7,1364,2,1365,7,1365,2,1366,7,1366,2, +1367,7,1367,2,1368,7,1368,2,1369,7,1369,2,1370,7,1370,2,1371,7,1371,2,1372, +7,1372,2,1373,7,1373,2,1374,7,1374,2,1375,7,1375,2,1376,7,1376,2,1377,7, +1377,2,1378,7,1378,2,1379,7,1379,2,1380,7,1380,2,1381,7,1381,2,1382,7,1382, +2,1383,7,1383,2,1384,7,1384,2,1385,7,1385,2,1386,7,1386,2,1387,7,1387,2, +1388,7,1388,2,1389,7,1389,2,1390,7,1390,2,1391,7,1391,2,1392,7,1392,2,1393, +7,1393,2,1394,7,1394,2,1395,7,1395,2,1396,7,1396,2,1397,7,1397,2,1398,7, +1398,2,1399,7,1399,2,1400,7,1400,2,1401,7,1401,2,1402,7,1402,2,1403,7,1403, +2,1404,7,1404,2,1405,7,1405,2,1406,7,1406,2,1407,7,1407,2,1408,7,1408,2, +1409,7,1409,2,1410,7,1410,2,1411,7,1411,2,1412,7,1412,2,1413,7,1413,2,1414, +7,1414,2,1415,7,1415,2,1416,7,1416,2,1417,7,1417,2,1418,7,1418,2,1419,7, +1419,2,1420,7,1420,2,1421,7,1421,2,1422,7,1422,2,1423,7,1423,2,1424,7,1424, +2,1425,7,1425,2,1426,7,1426,2,1427,7,1427,2,1428,7,1428,2,1429,7,1429,2, +1430,7,1430,2,1431,7,1431,2,1432,7,1432,2,1433,7,1433,2,1434,7,1434,2,1435, +7,1435,2,1436,7,1436,2,1437,7,1437,2,1438,7,1438,2,1439,7,1439,2,1440,7, +1440,2,1441,7,1441,2,1442,7,1442,2,1443,7,1443,2,1444,7,1444,2,1445,7,1445, +2,1446,7,1446,2,1447,7,1447,2,1448,7,1448,2,1449,7,1449,2,1450,7,1450,2, +1451,7,1451,2,1452,7,1452,2,1453,7,1453,2,1454,7,1454,2,1455,7,1455,2,1456, +7,1456,2,1457,7,1457,2,1458,7,1458,2,1459,7,1459,2,1460,7,1460,2,1461,7, +1461,2,1462,7,1462,2,1463,7,1463,2,1464,7,1464,2,1465,7,1465,2,1466,7,1466, +2,1467,7,1467,2,1468,7,1468,2,1469,7,1469,2,1470,7,1470,2,1471,7,1471,2, +1472,7,1472,2,1473,7,1473,2,1474,7,1474,2,1475,7,1475,2,1476,7,1476,2,1477, +7,1477,2,1478,7,1478,2,1479,7,1479,2,1480,7,1480,2,1481,7,1481,2,1482,7, +1482,2,1483,7,1483,2,1484,7,1484,2,1485,7,1485,2,1486,7,1486,2,1487,7,1487, +2,1488,7,1488,2,1489,7,1489,2,1490,7,1490,2,1491,7,1491,2,1492,7,1492,2, +1493,7,1493,2,1494,7,1494,2,1495,7,1495,2,1496,7,1496,2,1497,7,1497,2,1498, +7,1498,2,1499,7,1499,2,1500,7,1500,2,1501,7,1501,2,1502,7,1502,2,1503,7, +1503,2,1504,7,1504,2,1505,7,1505,2,1506,7,1506,2,1507,7,1507,2,1508,7,1508, +2,1509,7,1509,2,1510,7,1510,2,1511,7,1511,2,1512,7,1512,2,1513,7,1513,2, +1514,7,1514,2,1515,7,1515,2,1516,7,1516,2,1517,7,1517,2,1518,7,1518,2,1519, +7,1519,2,1520,7,1520,2,1521,7,1521,2,1522,7,1522,2,1523,7,1523,2,1524,7, +1524,2,1525,7,1525,2,1526,7,1526,2,1527,7,1527,2,1528,7,1528,2,1529,7,1529, +2,1530,7,1530,2,1531,7,1531,2,1532,7,1532,2,1533,7,1533,2,1534,7,1534,2, +1535,7,1535,2,1536,7,1536,2,1537,7,1537,2,1538,7,1538,2,1539,7,1539,2,1540, +7,1540,2,1541,7,1541,2,1542,7,1542,2,1543,7,1543,2,1544,7,1544,2,1545,7, +1545,2,1546,7,1546,2,1547,7,1547,2,1548,7,1548,2,1549,7,1549,2,1550,7,1550, +2,1551,7,1551,2,1552,7,1552,2,1553,7,1553,2,1554,7,1554,2,1555,7,1555,2, +1556,7,1556,2,1557,7,1557,2,1558,7,1558,2,1559,7,1559,2,1560,7,1560,2,1561, +7,1561,2,1562,7,1562,2,1563,7,1563,2,1564,7,1564,2,1565,7,1565,2,1566,7, +1566,2,1567,7,1567,2,1568,7,1568,2,1569,7,1569,2,1570,7,1570,2,1571,7,1571, +2,1572,7,1572,2,1573,7,1573,2,1574,7,1574,2,1575,7,1575,2,1576,7,1576,2, +1577,7,1577,2,1578,7,1578,2,1579,7,1579,2,1580,7,1580,2,1581,7,1581,2,1582, +7,1582,2,1583,7,1583,2,1584,7,1584,2,1585,7,1585,2,1586,7,1586,2,1587,7, +1587,2,1588,7,1588,2,1589,7,1589,2,1590,7,1590,2,1591,7,1591,2,1592,7,1592, +2,1593,7,1593,2,1594,7,1594,2,1595,7,1595,2,1596,7,1596,2,1597,7,1597,2, +1598,7,1598,2,1599,7,1599,2,1600,7,1600,2,1601,7,1601,2,1602,7,1602,2,1603, +7,1603,2,1604,7,1604,2,1605,7,1605,2,1606,7,1606,2,1607,7,1607,2,1608,7, +1608,2,1609,7,1609,2,1610,7,1610,2,1611,7,1611,2,1612,7,1612,2,1613,7,1613, +2,1614,7,1614,2,1615,7,1615,2,1616,7,1616,2,1617,7,1617,2,1618,7,1618,2, +1619,7,1619,2,1620,7,1620,2,1621,7,1621,2,1622,7,1622,2,1623,7,1623,2,1624, +7,1624,2,1625,7,1625,2,1626,7,1626,2,1627,7,1627,2,1628,7,1628,2,1629,7, +1629,2,1630,7,1630,2,1631,7,1631,2,1632,7,1632,2,1633,7,1633,2,1634,7,1634, +2,1635,7,1635,2,1636,7,1636,2,1637,7,1637,2,1638,7,1638,2,1639,7,1639,2, +1640,7,1640,2,1641,7,1641,2,1642,7,1642,2,1643,7,1643,2,1644,7,1644,2,1645, +7,1645,2,1646,7,1646,2,1647,7,1647,2,1648,7,1648,2,1649,7,1649,2,1650,7, +1650,2,1651,7,1651,2,1652,7,1652,2,1653,7,1653,2,1654,7,1654,2,1655,7,1655, +2,1656,7,1656,2,1657,7,1657,2,1658,7,1658,2,1659,7,1659,2,1660,7,1660,2, +1661,7,1661,2,1662,7,1662,2,1663,7,1663,2,1664,7,1664,2,1665,7,1665,2,1666, +7,1666,2,1667,7,1667,2,1668,7,1668,2,1669,7,1669,2,1670,7,1670,2,1671,7, +1671,2,1672,7,1672,2,1673,7,1673,2,1674,7,1674,2,1675,7,1675,2,1676,7,1676, +2,1677,7,1677,2,1678,7,1678,2,1679,7,1679,2,1680,7,1680,2,1681,7,1681,2, +1682,7,1682,2,1683,7,1683,2,1684,7,1684,2,1685,7,1685,2,1686,7,1686,2,1687, +7,1687,2,1688,7,1688,2,1689,7,1689,2,1690,7,1690,2,1691,7,1691,2,1692,7, +1692,2,1693,7,1693,2,1694,7,1694,2,1695,7,1695,2,1696,7,1696,2,1697,7,1697, +2,1698,7,1698,2,1699,7,1699,2,1700,7,1700,2,1701,7,1701,2,1702,7,1702,2, +1703,7,1703,2,1704,7,1704,2,1705,7,1705,2,1706,7,1706,2,1707,7,1707,2,1708, +7,1708,2,1709,7,1709,2,1710,7,1710,2,1711,7,1711,2,1712,7,1712,2,1713,7, +1713,2,1714,7,1714,2,1715,7,1715,2,1716,7,1716,2,1717,7,1717,2,1718,7,1718, +2,1719,7,1719,2,1720,7,1720,2,1721,7,1721,2,1722,7,1722,2,1723,7,1723,2, +1724,7,1724,2,1725,7,1725,2,1726,7,1726,2,1727,7,1727,2,1728,7,1728,2,1729, +7,1729,2,1730,7,1730,2,1731,7,1731,2,1732,7,1732,2,1733,7,1733,2,1734,7, +1734,2,1735,7,1735,2,1736,7,1736,2,1737,7,1737,2,1738,7,1738,2,1739,7,1739, +2,1740,7,1740,2,1741,7,1741,2,1742,7,1742,2,1743,7,1743,2,1744,7,1744,2, +1745,7,1745,2,1746,7,1746,2,1747,7,1747,2,1748,7,1748,2,1749,7,1749,2,1750, +7,1750,2,1751,7,1751,2,1752,7,1752,2,1753,7,1753,2,1754,7,1754,2,1755,7, +1755,2,1756,7,1756,2,1757,7,1757,2,1758,7,1758,2,1759,7,1759,2,1760,7,1760, +2,1761,7,1761,2,1762,7,1762,2,1763,7,1763,2,1764,7,1764,2,1765,7,1765,2, +1766,7,1766,2,1767,7,1767,2,1768,7,1768,2,1769,7,1769,2,1770,7,1770,2,1771, +7,1771,2,1772,7,1772,2,1773,7,1773,2,1774,7,1774,2,1775,7,1775,2,1776,7, +1776,2,1777,7,1777,2,1778,7,1778,2,1779,7,1779,2,1780,7,1780,2,1781,7,1781, +2,1782,7,1782,2,1783,7,1783,2,1784,7,1784,2,1785,7,1785,2,1786,7,1786,2, +1787,7,1787,2,1788,7,1788,2,1789,7,1789,2,1790,7,1790,2,1791,7,1791,2,1792, +7,1792,2,1793,7,1793,2,1794,7,1794,2,1795,7,1795,2,1796,7,1796,2,1797,7, +1797,2,1798,7,1798,2,1799,7,1799,2,1800,7,1800,2,1801,7,1801,2,1802,7,1802, +2,1803,7,1803,2,1804,7,1804,2,1805,7,1805,2,1806,7,1806,2,1807,7,1807,2, +1808,7,1808,2,1809,7,1809,2,1810,7,1810,2,1811,7,1811,2,1812,7,1812,2,1813, +7,1813,2,1814,7,1814,2,1815,7,1815,2,1816,7,1816,2,1817,7,1817,2,1818,7, +1818,2,1819,7,1819,2,1820,7,1820,2,1821,7,1821,2,1822,7,1822,2,1823,7,1823, +2,1824,7,1824,2,1825,7,1825,2,1826,7,1826,2,1827,7,1827,2,1828,7,1828,2, +1829,7,1829,2,1830,7,1830,2,1831,7,1831,2,1832,7,1832,2,1833,7,1833,2,1834, +7,1834,2,1835,7,1835,2,1836,7,1836,2,1837,7,1837,2,1838,7,1838,2,1839,7, +1839,2,1840,7,1840,2,1841,7,1841,2,1842,7,1842,2,1843,7,1843,2,1844,7,1844, +2,1845,7,1845,2,1846,7,1846,2,1847,7,1847,2,1848,7,1848,2,1849,7,1849,2, +1850,7,1850,2,1851,7,1851,2,1852,7,1852,2,1853,7,1853,2,1854,7,1854,2,1855, +7,1855,2,1856,7,1856,2,1857,7,1857,2,1858,7,1858,2,1859,7,1859,2,1860,7, +1860,2,1861,7,1861,2,1862,7,1862,2,1863,7,1863,2,1864,7,1864,2,1865,7,1865, +2,1866,7,1866,2,1867,7,1867,2,1868,7,1868,2,1869,7,1869,2,1870,7,1870,2, +1871,7,1871,2,1872,7,1872,2,1873,7,1873,2,1874,7,1874,2,1875,7,1875,2,1876, +7,1876,2,1877,7,1877,2,1878,7,1878,2,1879,7,1879,2,1880,7,1880,2,1881,7, +1881,2,1882,7,1882,2,1883,7,1883,2,1884,7,1884,2,1885,7,1885,2,1886,7,1886, +2,1887,7,1887,2,1888,7,1888,2,1889,7,1889,2,1890,7,1890,2,1891,7,1891,2, +1892,7,1892,2,1893,7,1893,2,1894,7,1894,2,1895,7,1895,2,1896,7,1896,2,1897, +7,1897,2,1898,7,1898,2,1899,7,1899,2,1900,7,1900,2,1901,7,1901,2,1902,7, +1902,2,1903,7,1903,2,1904,7,1904,2,1905,7,1905,2,1906,7,1906,2,1907,7,1907, +2,1908,7,1908,2,1909,7,1909,2,1910,7,1910,2,1911,7,1911,2,1912,7,1912,2, +1913,7,1913,2,1914,7,1914,2,1915,7,1915,2,1916,7,1916,2,1917,7,1917,2,1918, +7,1918,2,1919,7,1919,2,1920,7,1920,2,1921,7,1921,2,1922,7,1922,2,1923,7, +1923,2,1924,7,1924,2,1925,7,1925,2,1926,7,1926,2,1927,7,1927,2,1928,7,1928, +2,1929,7,1929,2,1930,7,1930,2,1931,7,1931,2,1932,7,1932,2,1933,7,1933,2, +1934,7,1934,2,1935,7,1935,2,1936,7,1936,2,1937,7,1937,2,1938,7,1938,2,1939, +7,1939,2,1940,7,1940,2,1941,7,1941,2,1942,7,1942,2,1943,7,1943,2,1944,7, +1944,2,1945,7,1945,2,1946,7,1946,2,1947,7,1947,2,1948,7,1948,2,1949,7,1949, +2,1950,7,1950,2,1951,7,1951,2,1952,7,1952,2,1953,7,1953,2,1954,7,1954,2, +1955,7,1955,2,1956,7,1956,2,1957,7,1957,2,1958,7,1958,2,1959,7,1959,2,1960, +7,1960,2,1961,7,1961,2,1962,7,1962,2,1963,7,1963,2,1964,7,1964,2,1965,7, +1965,2,1966,7,1966,2,1967,7,1967,2,1968,7,1968,2,1969,7,1969,2,1970,7,1970, +2,1971,7,1971,2,1972,7,1972,2,1973,7,1973,2,1974,7,1974,2,1975,7,1975,2, +1976,7,1976,2,1977,7,1977,2,1978,7,1978,2,1979,7,1979,2,1980,7,1980,2,1981, +7,1981,2,1982,7,1982,2,1983,7,1983,2,1984,7,1984,2,1985,7,1985,2,1986,7, +1986,2,1987,7,1987,2,1988,7,1988,2,1989,7,1989,2,1990,7,1990,2,1991,7,1991, +2,1992,7,1992,2,1993,7,1993,2,1994,7,1994,2,1995,7,1995,2,1996,7,1996,2, +1997,7,1997,2,1998,7,1998,2,1999,7,1999,2,2000,7,2000,2,2001,7,2001,2,2002, +7,2002,2,2003,7,2003,2,2004,7,2004,2,2005,7,2005,2,2006,7,2006,2,2007,7, +2007,2,2008,7,2008,2,2009,7,2009,2,2010,7,2010,2,2011,7,2011,2,2012,7,2012, +2,2013,7,2013,2,2014,7,2014,2,2015,7,2015,2,2016,7,2016,2,2017,7,2017,2, +2018,7,2018,2,2019,7,2019,2,2020,7,2020,2,2021,7,2021,2,2022,7,2022,2,2023, +7,2023,2,2024,7,2024,2,2025,7,2025,2,2026,7,2026,2,2027,7,2027,2,2028,7, +2028,2,2029,7,2029,2,2030,7,2030,2,2031,7,2031,2,2032,7,2032,2,2033,7,2033, +2,2034,7,2034,2,2035,7,2035,2,2036,7,2036,2,2037,7,2037,2,2038,7,2038,2, +2039,7,2039,2,2040,7,2040,2,2041,7,2041,2,2042,7,2042,2,2043,7,2043,2,2044, +7,2044,2,2045,7,2045,2,2046,7,2046,2,2047,7,2047,2,2048,7,2048,2,2049,7, +2049,2,2050,7,2050,2,2051,7,2051,2,2052,7,2052,2,2053,7,2053,2,2054,7,2054, +2,2055,7,2055,2,2056,7,2056,2,2057,7,2057,2,2058,7,2058,2,2059,7,2059,2, +2060,7,2060,2,2061,7,2061,2,2062,7,2062,2,2063,7,2063,2,2064,7,2064,2,2065, +7,2065,2,2066,7,2066,2,2067,7,2067,2,2068,7,2068,2,2069,7,2069,2,2070,7, +2070,2,2071,7,2071,2,2072,7,2072,2,2073,7,2073,2,2074,7,2074,2,2075,7,2075, +2,2076,7,2076,2,2077,7,2077,2,2078,7,2078,2,2079,7,2079,2,2080,7,2080,2, +2081,7,2081,2,2082,7,2082,2,2083,7,2083,2,2084,7,2084,2,2085,7,2085,2,2086, +7,2086,2,2087,7,2087,2,2088,7,2088,2,2089,7,2089,2,2090,7,2090,2,2091,7, +2091,2,2092,7,2092,2,2093,7,2093,2,2094,7,2094,2,2095,7,2095,2,2096,7,2096, +2,2097,7,2097,2,2098,7,2098,2,2099,7,2099,2,2100,7,2100,2,2101,7,2101,2, +2102,7,2102,2,2103,7,2103,2,2104,7,2104,2,2105,7,2105,2,2106,7,2106,2,2107, +7,2107,2,2108,7,2108,2,2109,7,2109,2,2110,7,2110,2,2111,7,2111,2,2112,7, +2112,2,2113,7,2113,2,2114,7,2114,2,2115,7,2115,2,2116,7,2116,2,2117,7,2117, +2,2118,7,2118,2,2119,7,2119,2,2120,7,2120,2,2121,7,2121,2,2122,7,2122,2, +2123,7,2123,2,2124,7,2124,2,2125,7,2125,2,2126,7,2126,2,2127,7,2127,2,2128, +7,2128,2,2129,7,2129,2,2130,7,2130,2,2131,7,2131,2,2132,7,2132,2,2133,7, +2133,2,2134,7,2134,2,2135,7,2135,2,2136,7,2136,2,2137,7,2137,2,2138,7,2138, +2,2139,7,2139,2,2140,7,2140,2,2141,7,2141,2,2142,7,2142,2,2143,7,2143,2, +2144,7,2144,2,2145,7,2145,2,2146,7,2146,2,2147,7,2147,2,2148,7,2148,2,2149, +7,2149,2,2150,7,2150,2,2151,7,2151,2,2152,7,2152,2,2153,7,2153,2,2154,7, +2154,2,2155,7,2155,2,2156,7,2156,2,2157,7,2157,2,2158,7,2158,2,2159,7,2159, +2,2160,7,2160,2,2161,7,2161,2,2162,7,2162,2,2163,7,2163,2,2164,7,2164,2, +2165,7,2165,2,2166,7,2166,2,2167,7,2167,2,2168,7,2168,2,2169,7,2169,2,2170, +7,2170,2,2171,7,2171,2,2172,7,2172,2,2173,7,2173,2,2174,7,2174,2,2175,7, +2175,2,2176,7,2176,2,2177,7,2177,2,2178,7,2178,2,2179,7,2179,2,2180,7,2180, +2,2181,7,2181,2,2182,7,2182,2,2183,7,2183,2,2184,7,2184,2,2185,7,2185,2, +2186,7,2186,2,2187,7,2187,2,2188,7,2188,2,2189,7,2189,2,2190,7,2190,2,2191, +7,2191,2,2192,7,2192,2,2193,7,2193,2,2194,7,2194,2,2195,7,2195,2,2196,7, +2196,2,2197,7,2197,2,2198,7,2198,2,2199,7,2199,2,2200,7,2200,2,2201,7,2201, +2,2202,7,2202,2,2203,7,2203,2,2204,7,2204,2,2205,7,2205,2,2206,7,2206,2, +2207,7,2207,2,2208,7,2208,2,2209,7,2209,2,2210,7,2210,2,2211,7,2211,2,2212, +7,2212,2,2213,7,2213,2,2214,7,2214,2,2215,7,2215,2,2216,7,2216,2,2217,7, +2217,2,2218,7,2218,2,2219,7,2219,2,2220,7,2220,2,2221,7,2221,2,2222,7,2222, +2,2223,7,2223,2,2224,7,2224,2,2225,7,2225,2,2226,7,2226,2,2227,7,2227,2, +2228,7,2228,2,2229,7,2229,2,2230,7,2230,2,2231,7,2231,2,2232,7,2232,2,2233, +7,2233,2,2234,7,2234,2,2235,7,2235,2,2236,7,2236,2,2237,7,2237,2,2238,7, +2238,2,2239,7,2239,2,2240,7,2240,2,2241,7,2241,2,2242,7,2242,2,2243,7,2243, +2,2244,7,2244,2,2245,7,2245,2,2246,7,2246,2,2247,7,2247,2,2248,7,2248,2, +2249,7,2249,2,2250,7,2250,2,2251,7,2251,2,2252,7,2252,2,2253,7,2253,2,2254, +7,2254,2,2255,7,2255,2,2256,7,2256,2,2257,7,2257,2,2258,7,2258,2,2259,7, +2259,2,2260,7,2260,2,2261,7,2261,2,2262,7,2262,2,2263,7,2263,2,2264,7,2264, +2,2265,7,2265,2,2266,7,2266,2,2267,7,2267,2,2268,7,2268,2,2269,7,2269,2, +2270,7,2270,2,2271,7,2271,2,2272,7,2272,2,2273,7,2273,2,2274,7,2274,2,2275, +7,2275,2,2276,7,2276,2,2277,7,2277,2,2278,7,2278,2,2279,7,2279,2,2280,7, +2280,2,2281,7,2281,2,2282,7,2282,2,2283,7,2283,2,2284,7,2284,2,2285,7,2285, +2,2286,7,2286,2,2287,7,2287,2,2288,7,2288,2,2289,7,2289,2,2290,7,2290,2, +2291,7,2291,2,2292,7,2292,2,2293,7,2293,2,2294,7,2294,2,2295,7,2295,2,2296, +7,2296,2,2297,7,2297,2,2298,7,2298,2,2299,7,2299,2,2300,7,2300,2,2301,7, +2301,2,2302,7,2302,2,2303,7,2303,2,2304,7,2304,2,2305,7,2305,2,2306,7,2306, +2,2307,7,2307,2,2308,7,2308,2,2309,7,2309,2,2310,7,2310,2,2311,7,2311,2, +2312,7,2312,2,2313,7,2313,2,2314,7,2314,2,2315,7,2315,2,2316,7,2316,2,2317, +7,2317,2,2318,7,2318,2,2319,7,2319,2,2320,7,2320,2,2321,7,2321,2,2322,7, +2322,2,2323,7,2323,2,2324,7,2324,2,2325,7,2325,2,2326,7,2326,2,2327,7,2327, +2,2328,7,2328,2,2329,7,2329,2,2330,7,2330,2,2331,7,2331,2,2332,7,2332,2, +2333,7,2333,2,2334,7,2334,2,2335,7,2335,2,2336,7,2336,2,2337,7,2337,2,2338, +7,2338,2,2339,7,2339,2,2340,7,2340,2,2341,7,2341,2,2342,7,2342,2,2343,7, +2343,2,2344,7,2344,2,2345,7,2345,2,2346,7,2346,2,2347,7,2347,2,2348,7,2348, +2,2349,7,2349,2,2350,7,2350,2,2351,7,2351,2,2352,7,2352,2,2353,7,2353,2, +2354,7,2354,2,2355,7,2355,2,2356,7,2356,2,2357,7,2357,2,2358,7,2358,2,2359, +7,2359,2,2360,7,2360,2,2361,7,2361,2,2362,7,2362,2,2363,7,2363,2,2364,7, +2364,2,2365,7,2365,2,2366,7,2366,2,2367,7,2367,2,2368,7,2368,2,2369,7,2369, +2,2370,7,2370,2,2371,7,2371,2,2372,7,2372,2,2373,7,2373,2,2374,7,2374,2, +2375,7,2375,2,2376,7,2376,2,2377,7,2377,2,2378,7,2378,2,2379,7,2379,2,2380, +7,2380,2,2381,7,2381,2,2382,7,2382,2,2383,7,2383,2,2384,7,2384,2,2385,7, +2385,2,2386,7,2386,2,2387,7,2387,2,2388,7,2388,2,2389,7,2389,2,2390,7,2390, +2,2391,7,2391,2,2392,7,2392,2,2393,7,2393,2,2394,7,2394,2,2395,7,2395,2, +2396,7,2396,2,2397,7,2397,2,2398,7,2398,2,2399,7,2399,2,2400,7,2400,2,2401, +7,2401,2,2402,7,2402,2,2403,7,2403,2,2404,7,2404,2,2405,7,2405,2,2406,7, +2406,2,2407,7,2407,2,2408,7,2408,2,2409,7,2409,2,2410,7,2410,2,2411,7,2411, +2,2412,7,2412,2,2413,7,2413,2,2414,7,2414,2,2415,7,2415,2,2416,7,2416,2, +2417,7,2417,2,2418,7,2418,2,2419,7,2419,2,2420,7,2420,2,2421,7,2421,2,2422, +7,2422,2,2423,7,2423,2,2424,7,2424,2,2425,7,2425,2,2426,7,2426,2,2427,7, +2427,2,2428,7,2428,2,2429,7,2429,2,2430,7,2430,2,2431,7,2431,2,2432,7,2432, +2,2433,7,2433,2,2434,7,2434,2,2435,7,2435,2,2436,7,2436,2,2437,7,2437,2, +2438,7,2438,2,2439,7,2439,2,2440,7,2440,2,2441,7,2441,2,2442,7,2442,2,2443, +7,2443,2,2444,7,2444,2,2445,7,2445,2,2446,7,2446,2,2447,7,2447,2,2448,7, +2448,2,2449,7,2449,2,2450,7,2450,2,2451,7,2451,2,2452,7,2452,2,2453,7,2453, +2,2454,7,2454,2,2455,7,2455,2,2456,7,2456,2,2457,7,2457,2,2458,7,2458,2, +2459,7,2459,2,2460,7,2460,2,2461,7,2461,2,2462,7,2462,2,2463,7,2463,2,2464, +7,2464,2,2465,7,2465,2,2466,7,2466,2,2467,7,2467,2,2468,7,2468,2,2469,7, +2469,2,2470,7,2470,2,2471,7,2471,2,2472,7,2472,2,2473,7,2473,2,2474,7,2474, +2,2475,7,2475,2,2476,7,2476,2,2477,7,2477,2,2478,7,2478,2,2479,7,2479,2, +2480,7,2480,2,2481,7,2481,2,2482,7,2482,2,2483,7,2483,2,2484,7,2484,2,2485, +7,2485,2,2486,7,2486,2,2487,7,2487,2,2488,7,2488,2,2489,7,2489,2,2490,7, +2490,2,2491,7,2491,2,2492,7,2492,2,2493,7,2493,2,2494,7,2494,2,2495,7,2495, +2,2496,7,2496,2,2497,7,2497,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4, +1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6, +1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,9,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,1,11,1,11,1,11,1,11,1,11, +1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1, +13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14, +1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1, +15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16, +1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1, +17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19, +1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1, +20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22, +1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1, +23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,25, +1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1, +26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27, +1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1, +29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31, +1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1, +32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34, +1,34,1,34,1,34,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1, +37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,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,1,40,1,40,1,41,1,41,1,41,1,41,1, +41,1,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43, +1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,45,1, +45,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46, +1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,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,1,49,1,49,1,49,1,50,1,50,1,50,1,50, +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,1, +51,1,51,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,53, +1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,55,1,55,1, +55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,56, +1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1, +57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58, +1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1, +60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61, +1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1, +62,1,62,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,64, +1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,1, +65,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,67, +1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,71,1, +71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,73,1,73, +1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1, +75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76, +1,77,1,77,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1, +78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,80, +1,80,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1, +83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84, +1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1, +85,1,85,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86, +1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,88,1, +88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89, +1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,91,1,91,1, +91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,92, +1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1, +93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95, +1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1, +95,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96, +1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1, +97,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99, +1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,100,1, +100,1,100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,101,1, +101,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,103,1,103,1,103,1, +103,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,104,1, +104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1, +106,1,106,1,106,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,107,1, +107,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,109,1, +109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1, +109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1, +109,1,109,1,109,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,111,1,111,1, +111,1,111,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,112,1,112,1,113,1, +113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,114,1,114,1,114,1, +114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1, +114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,116,1, +116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1, +117,1,117,1,117,1,117,1,118,1,118,1,118,1,118,1,118,1,118,1,119,1,119,1, +119,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1, +121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1, +122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1, +124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1, +125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1, +125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,126,1, +126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1, +126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1, +127,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,128,1, +128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, +128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1, +129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1, +130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1, +131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,132,1, +132,1,132,1,132,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,133,1, +133,1,133,1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,134,1, +134,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1, +136,1,136,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1, +137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1, +138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1, +140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,142,1,142,1,142,1,142,1, +142,1,142,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1, +143,1,143,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1, +145,1,145,1,145,1,145,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,1, +147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,1,148,1,148,1, +148,1,149,1,149,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1, +150,1,150,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,152,1,152,1, +152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,153,1,153,1, +153,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,1, +155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,156,1,156,1,156,1, +156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,157,1,157,1,157,1, +157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,160,1, +160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1, +160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1, +161,1,161,1,161,1,161,1,161,1,161,1,161,1,161,1,161,1,161,1,162,1,162,1, +162,1,162,1,162,1,163,1,163,1,163,1,163,1,163,1,163,1,164,1,164,1,164,1, +164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,165,1, +165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1, +166,1,166,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1, +167,1,167,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,168,1, +168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,169,1, +169,1,169,1,169,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170,1, +170,1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,1, +171,1,171,1,171,1,172,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1, +173,1,173,1,173,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1, +174,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,176,1,176,1, +176,1,176,1,176,1,176,1,176,1,176,1,177,1,177,1,177,1,177,1,177,1,177,1, +177,1,177,1,177,1,177,1,177,1,177,1,178,1,178,1,178,1,178,1,178,1,178,1, +178,1,178,1,179,1,179,1,179,1,179,1,179,1,180,1,180,1,180,1,180,1,180,1, +181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1, +181,1,181,1,181,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1, +183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1, +184,1,184,1,184,1,184,1,184,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1, +185,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,186,1,186,1, +186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,187,1,187,1, +187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1, +189,1,189,1,189,1,189,1,189,1,189,1,189,1,190,1,190,1,190,1,190,1,190,1, +190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,191,1,191,1, +191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1, +191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1, +192,1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,193,1,193,1, +193,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,194,1,194,1,194,1, +194,1,194,1,194,1,194,1,194,1,194,1,194,1,194,1,194,1,194,1,195,1,195,1, +195,1,195,1,195,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,197,1, +197,1,197,1,197,1,197,1,197,1,197,1,197,1,197,1,197,1,197,1,197,1,198,1, +198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1, +198,1,198,1,198,1,198,1,198,1,199,1,199,1,199,1,199,1,199,1,199,1,200,1, +200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,201,1,201,1, +201,1,201,1,201,1,201,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,203,1, +203,1,203,1,203,1,204,1,204,1,204,1,204,1,204,1,204,1,205,1,205,1,205,1, +205,1,205,1,205,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1, +206,1,206,1,206,1,206,1,206,1,206,1,207,1,207,1,207,1,207,1,207,1,207,1, +207,1,207,1,207,1,207,1,207,1,208,1,208,1,208,1,208,1,208,1,208,1,208,1, +209,1,209,1,209,1,209,1,209,1,209,1,210,1,210,1,210,1,210,1,210,1,210,1, +210,1,210,1,211,1,211,1,211,1,211,1,211,1,211,1,212,1,212,1,213,1,213,1, +213,1,213,1,213,1,213,1,213,1,214,1,214,1,214,1,214,1,214,1,215,1,215,1, +215,1,215,1,215,1,215,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1, +216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1, +216,1,216,1,216,1,216,1,216,1,216,1,217,1,217,1,217,1,217,1,217,1,217,1, +218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1, +218,1,218,1,218,1,218,1,218,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1, +219,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1, +220,1,220,1,220,1,220,1,220,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1, +221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,222,1,222,1, +222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,223,1,223,1,223,1, +223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,224,1,224,1,224,1,224,1, +224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, +224,1,224,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1, +225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,226,1,226,1, +226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,227,1,227,1, +227,1,227,1,227,1,227,1,227,1,227,1,227,1,228,1,228,1,228,1,228,1,228,1, +228,1,228,1,228,1,228,1,228,1,228,1,228,1,229,1,229,1,229,1,229,1,229,1, +229,1,229,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1, +230,1,230,1,231,1,231,1,231,1,231,1,231,1,232,1,232,1,232,1,232,1,232,1, +232,1,232,1,232,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1, +233,1,233,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,235,1, +235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1, +235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,236,1,236,1,236,1, +236,1,236,1,236,1,236,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1, +238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1, +238,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1, +239,1,239,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,241,1,241,1, +241,1,241,1,241,1,241,1,241,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1, +242,1,242,1,242,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,244,1,244,1, +244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,245,1,245,1, +245,1,245,1,245,1,245,1,245,1,245,1,246,1,246,1,246,1,246,1,246,1,246,1, +246,1,246,1,246,1,246,1,246,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1, +247,1,247,1,247,1,247,1,247,1,247,1,247,1,248,1,248,1,248,1,248,1,248,1, +248,1,248,1,248,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1, +250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,251,1, +251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,252,1,252,1,252,1, +252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,253,1,253,1,253,1,253,1, +253,1,253,1,253,1,253,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1, +254,1,254,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1, +255,1,255,1,255,1,255,1,255,1,255,1,256,1,256,1,256,1,256,1,256,1,256,1, +256,1,256,1,256,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1, +258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1, +259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,260,1,260,1,260,1,260,1, +260,1,260,1,260,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1, +261,1,261,1,261,1,261,1,261,1,261,1,262,1,262,1,262,1,262,1,262,1,262,1, +262,1,262,1,262,1,262,1,262,1,262,1,263,1,263,1,263,1,263,1,263,1,263,1, +263,1,263,1,263,1,263,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1, +265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,266,1, +266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1, +266,1,266,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,268,1,268,1,268,1, +268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1, +269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1, +269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,270,1, +270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1, +270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,271,1,271,1,271,1, +271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1, +271,1,271,1,271,1,271,1,271,1,271,1,271,1,272,1,272,1,272,1,272,1,272,1, +272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1, +272,1,272,1,272,1,272,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1, +273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1, +273,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1, +274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,275,1,275,1,275,1,275,1, +275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1, +275,1,275,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1, +276,1,276,1,276,1,276,1,276,1,276,1,277,1,277,1,277,1,277,1,277,1,277,1, +277,1,277,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1, +278,1,278,1,278,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1, +280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,281,1, +281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,282,1,282,1,282,1,282,1, +282,1,282,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1, +283,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1, +284,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1, +285,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,287,1, +287,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,288,1,288,1, +288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1, +288,1,288,1,288,1,288,1,288,1,289,1,289,1,289,1,289,1,289,1,289,1,289,1, +289,1,289,1,289,1,289,1,289,1,289,1,289,1,289,1,290,1,290,1,290,1,290,1, +290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,291,1,291,1, +291,1,291,1,291,1,291,1,291,1,291,1,292,1,292,1,292,1,292,1,292,1,292,1, +292,1,292,1,292,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,294,1, +294,1,294,1,294,1,294,1,294,1,294,1,294,1,294,1,295,1,295,1,295,1,295,1, +295,1,295,1,295,1,295,1,295,1,295,1,295,1,295,1,296,1,296,1,296,1,296,1, +296,1,296,1,296,1,296,1,296,1,296,1,296,1,296,1,296,1,296,1,297,1,297,1, +297,1,297,1,297,1,297,1,297,1,297,1,298,1,298,1,298,1,298,1,298,1,298,1, +298,1,298,1,298,1,298,1,298,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1, +300,1,300,1,300,1,300,1,300,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1, +302,1,302,1,302,1,302,1,302,1,302,1,302,1,303,1,303,1,303,1,303,1,303,1, +303,1,303,1,303,1,303,1,303,1,303,1,304,1,304,1,304,1,304,1,304,1,304,1, +304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,305,1,305,1, +305,1,305,1,305,1,305,1,305,1,305,1,305,1,305,1,305,1,305,1,306,1,306,1, +306,1,306,1,307,1,307,1,307,1,307,1,307,1,308,1,308,1,308,1,308,1,308,1, +309,1,309,1,309,1,309,1,309,1,309,1,309,1,309,1,309,1,309,1,309,1,309,1, +309,1,309,1,309,1,309,1,309,1,309,1,309,1,309,1,309,1,309,1,309,1,310,1, +310,1,310,1,310,1,310,1,310,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1, +311,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,313,1, +313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,314,1,314,1, +314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,315,1,315,1, +315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,316,1, +316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1, +316,1,316,1,316,1,317,1,317,1,317,1,317,1,317,1,317,1,318,1,318,1,318,1, +318,1,318,1,318,1,318,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1, +319,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,320,1,320,1,320,1, +320,1,320,1,320,1,320,1,320,1,320,1,320,1,320,1,320,1,320,1,320,1,320,1, +320,1,320,1,320,1,320,1,320,1,320,1,320,1,320,1,321,1,321,1,321,1,321,1, +321,1,321,1,321,1,321,1,321,1,322,1,322,1,322,1,322,1,322,1,322,1,322,1, +322,1,322,1,322,1,322,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1, +323,1,324,1,324,1,324,1,324,1,324,1,324,1,325,1,325,1,325,1,325,1,325,1, +325,1,325,1,325,1,325,1,325,1,325,1,325,1,325,1,326,1,326,1,326,1,326,1, +326,1,326,1,326,1,326,1,326,1,326,1,327,1,327,1,327,1,327,1,328,1,328,1, +328,1,328,1,328,1,328,1,328,1,328,1,329,1,329,1,329,1,329,1,329,1,330,1, +330,1,330,1,330,1,330,1,330,1,330,1,330,1,331,1,331,1,331,1,331,1,331,1, +331,1,331,1,331,1,332,1,332,1,332,1,332,1,332,1,332,1,332,1,332,1,332,1, +332,1,332,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,334,1,334,1, +334,1,334,1,334,1,334,1,334,1,334,1,334,1,334,1,334,1,334,1,334,1,335,1, +335,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1, +335,1,335,1,336,1,336,1,336,1,336,1,336,1,336,1,336,1,336,1,336,1,336,1, +336,1,336,1,336,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1, +337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,338,1,338,1,338,1, +338,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,339,1,339,1, +339,1,339,1,339,1,339,1,339,1,339,1,339,1,340,1,340,1,340,1,340,1,340,1, +340,1,340,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1, +341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,342,1, +342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1, +342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,343,1, +343,1,343,1,343,1,343,1,343,1,343,1,343,1,343,1,343,1,343,1,343,1,344,1, +344,1,344,1,345,1,345,1,345,1,345,1,345,1,345,1,346,1,346,1,346,1,346,1, +346,1,346,1,346,1,346,1,346,1,347,1,347,1,347,1,347,1,347,1,347,1,347,1, +347,1,347,1,348,1,348,1,348,1,348,1,348,1,349,1,349,1,349,1,349,1,349,1, +349,1,349,1,349,1,349,1,350,1,350,1,350,1,350,1,350,1,350,1,350,1,350,1, +350,1,350,1,351,1,351,1,351,1,351,1,351,1,351,1,351,1,351,1,351,1,351,1, +351,1,351,1,351,1,351,1,351,1,351,1,352,1,352,1,352,1,352,1,352,1,352,1, +352,1,352,1,352,1,352,1,352,1,352,1,352,1,353,1,353,1,353,1,353,1,353,1, +353,1,353,1,353,1,353,1,353,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1, +354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1, +354,1,354,1,354,1,354,1,354,1,354,1,355,1,355,1,355,1,355,1,355,1,355,1, +355,1,355,1,355,1,355,1,355,1,355,1,355,1,355,1,355,1,355,1,355,1,355,1, +355,1,355,1,355,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1, +357,1,357,1,357,1,357,1,357,1,357,1,357,1,357,1,357,1,357,1,357,1,357,1, +357,1,357,1,357,1,357,1,357,1,357,1,357,1,357,1,357,1,357,1,357,1,357,1, +357,1,357,1,357,1,357,1,358,1,358,1,358,1,358,1,358,1,359,1,359,1,359,1, +359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,360,1,360,1,360,1,360,1, +360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,361,1,361,1,361,1,361,1, +361,1,361,1,361,1,361,1,361,1,361,1,362,1,362,1,362,1,362,1,363,1,363,1, +363,1,363,1,363,1,364,1,364,1,364,1,364,1,364,1,364,1,364,1,364,1,364,1, +364,1,364,1,364,1,364,1,364,1,365,1,365,1,365,1,365,1,366,1,366,1,366,1, +366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1, +367,1,367,1,367,1,367,1,367,1,367,1,367,1,368,1,368,1,368,1,368,1,368,1, +368,1,368,1,368,1,368,1,368,1,368,1,369,1,369,1,369,1,369,1,369,1,369,1, +369,1,369,1,369,1,369,1,369,1,369,1,369,1,369,1,369,1,370,1,370,1,370,1, +370,1,370,1,370,1,370,1,370,1,370,1,370,1,370,1,371,1,371,1,371,1,371,1, +371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,372,1, +372,1,372,1,372,1,372,1,372,1,372,1,372,1,372,1,372,1,372,1,373,1,373,1, +373,1,373,1,374,1,374,1,374,1,374,1,374,1,374,1,374,1,374,1,374,1,374,1, +374,1,375,1,375,1,375,1,375,1,375,1,375,1,376,1,376,1,376,1,376,1,376,1, +376,1,376,1,376,1,376,1,377,1,377,1,377,1,377,1,378,1,378,1,378,1,378,1, +378,1,378,1,378,1,378,1,379,1,379,1,379,1,379,1,379,1,379,1,379,1,379,1, +380,1,380,1,380,1,380,1,380,1,380,1,380,1,380,1,380,1,380,1,381,1,381,1, +381,1,381,1,381,1,381,1,381,1,381,1,381,1,381,1,381,1,381,1,382,1,382,1, +382,1,382,1,382,1,383,1,383,1,383,1,383,1,383,1,383,1,383,1,383,1,383,1, +383,1,384,1,384,1,384,1,384,1,384,1,384,1,384,1,384,1,385,1,385,1,385,1, +385,1,385,1,385,1,385,1,385,1,385,1,385,1,385,1,385,1,386,1,386,1,386,1, +386,1,386,1,386,1,386,1,386,1,387,1,387,1,387,1,387,1,387,1,387,1,387,1, +387,1,387,1,387,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1, +389,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1, +389,1,389,1,389,1,389,1,389,1,389,1,390,1,390,1,390,1,390,1,390,1,390,1, +390,1,390,1,390,1,390,1,390,1,390,1,390,1,390,1,390,1,390,1,390,1,390,1, +390,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1, +392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,393,1,393,1,393,1, +393,1,393,1,393,1,393,1,393,1,394,1,394,1,394,1,394,1,394,1,394,1,394,1, +395,1,395,1,395,1,395,1,395,1,395,1,395,1,395,1,396,1,396,1,396,1,396,1, +396,1,396,1,396,1,397,1,397,1,397,1,397,1,397,1,397,1,398,1,398,1,398,1, +398,1,398,1,398,1,398,1,398,1,398,1,399,1,399,1,399,1,399,1,399,1,399,1, +399,1,399,1,399,1,399,1,399,1,400,1,400,1,400,1,400,1,400,1,400,1,400,1, +401,1,401,1,401,1,401,1,401,1,401,1,401,1,401,1,401,1,401,1,402,1,402,1, +402,1,402,1,402,1,402,1,402,1,402,1,402,1,402,1,403,1,403,1,403,1,403,1, +403,1,403,1,403,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1, +404,1,404,1,404,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1, +405,1,406,1,406,1,406,1,406,1,406,1,406,1,406,1,406,1,406,1,406,1,407,1, +407,1,407,1,407,1,407,1,407,1,408,1,408,1,408,1,408,1,408,1,408,1,408,1, +408,1,409,1,409,1,409,1,409,1,409,1,409,1,410,1,410,1,410,1,410,1,410,1, +410,1,410,1,410,1,410,1,410,1,410,1,410,1,410,1,410,1,410,1,410,1,410,1, +411,1,411,1,411,1,411,1,411,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1, +412,1,412,1,412,1,412,1,412,1,413,1,413,1,413,1,413,1,413,1,413,1,413,1, +413,1,414,1,414,1,414,1,414,1,414,1,414,1,414,1,414,1,414,1,415,1,415,1, +415,1,415,1,415,1,415,1,415,1,415,1,415,1,416,1,416,1,416,1,416,1,416,1, +416,1,416,1,416,1,416,1,416,1,416,1,417,1,417,1,417,1,417,1,417,1,417,1, +417,1,417,1,417,1,417,1,417,1,417,1,417,1,417,1,418,1,418,1,418,1,418,1, +418,1,418,1,418,1,418,1,418,1,418,1,418,1,419,1,419,1,419,1,419,1,419,1, +419,1,419,1,419,1,419,1,419,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1, +420,1,420,1,420,1,420,1,421,1,421,1,421,1,421,1,421,1,421,1,421,1,421,1, +421,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1, +422,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,424,1, +424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,425,1, +425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,426,1, +426,1,426,1,426,1,426,1,426,1,426,1,426,1,427,1,427,1,427,1,427,1,427,1, +427,1,427,1,427,1,427,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1, +428,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1, +428,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1,429,1,429,1,429,1, +429,1,429,1,429,1,429,1,429,1,429,1,429,1,429,1,429,1,429,1,429,1,429,1, +429,1,429,1,429,1,429,1,429,1,429,1,430,1,430,1,430,1,430,1,430,1,430,1, +430,1,430,1,430,1,430,1,430,1,430,1,430,1,430,1,430,1,431,1,431,1,431,1, +431,1,431,1,431,1,431,1,431,1,431,1,431,1,431,1,431,1,431,1,432,1,432,1, +432,1,432,1,432,1,432,1,432,1,432,1,432,1,433,1,433,1,433,1,433,1,433,1, +433,1,433,1,433,1,433,1,433,1,433,1,433,1,433,1,434,1,434,1,434,1,434,1, +434,1,434,1,434,1,434,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1, +435,1,435,1,435,1,435,1,436,1,436,1,436,1,436,1,436,1,436,1,436,1,436,1, +436,1,436,1,436,1,437,1,437,1,437,1,437,1,437,1,438,1,438,1,438,1,438,1, +438,1,438,1,438,1,438,1,438,1,438,1,439,1,439,1,439,1,439,1,439,1,439,1, +439,1,439,1,439,1,439,1,439,1,439,1,439,1,440,1,440,1,440,1,440,1,440,1, +440,1,441,1,441,1,441,1,441,1,441,1,441,1,441,1,441,1,441,1,442,1,442,1, +442,1,442,1,442,1,442,1,442,1,442,1,442,1,443,1,443,1,443,1,443,1,443,1, +443,1,443,1,443,1,443,1,443,1,443,1,443,1,443,1,443,1,444,1,444,1,444,1, +444,1,444,1,444,1,444,1,444,1,444,1,444,1,444,1,444,1,445,1,445,1,445,1, +445,1,445,1,445,1,445,1,445,1,445,1,445,1,445,1,446,1,446,1,446,1,446,1, +447,1,447,1,447,1,447,1,447,1,447,1,447,1,447,1,447,1,447,1,447,1,448,1, +448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1, +449,1,449,1,449,1,449,1,449,1,449,1,449,1,449,1,449,1,449,1,449,1,449,1, +450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1, +450,1,450,1,450,1,450,1,450,1,451,1,451,1,451,1,451,1,451,1,451,1,451,1, +451,1,451,1,451,1,451,1,451,1,452,1,452,1,452,1,452,1,452,1,452,1,452,1, +452,1,452,1,453,1,453,1,453,1,453,1,453,1,453,1,454,1,454,1,454,1,454,1, +454,1,454,1,454,1,455,1,455,1,455,1,455,1,455,1,456,1,456,1,456,1,456,1, +456,1,456,1,456,1,457,1,457,1,457,1,457,1,458,1,458,1,458,1,458,1,458,1, +458,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1, +459,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1,460,1,460,1,460,1, +460,1,460,1,460,1,460,1,460,1,460,1,460,1,460,1,460,1,460,1,460,1,460,1, +460,1,460,1,460,1,460,1,460,1,460,1,461,1,461,1,461,1,461,1,461,1,461,1, +461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1, +462,1,462,1,462,1,462,1,462,1,462,1,462,1,463,1,463,1,463,1,463,1,463,1, +463,1,463,1,463,1,463,1,463,1,464,1,464,1,464,1,464,1,464,1,464,1,464,1, +464,1,464,1,464,1,464,1,464,1,464,1,465,1,465,1,465,1,465,1,465,1,465,1, +465,1,465,1,465,1,465,1,465,1,465,1,466,1,466,1,466,1,466,1,466,1,467,1, +467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,468,1,468,1, +468,1,468,1,468,1,468,1,468,1,468,1,468,1,468,1,468,1,468,1,468,1,468,1, +468,1,468,1,468,1,468,1,468,1,468,1,468,1,468,1,468,1,468,1,468,1,469,1, +469,1,469,1,469,1,469,1,469,1,469,1,469,1,469,1,469,1,469,1,469,1,469,1, +469,1,469,1,469,1,469,1,469,1,469,1,469,1,469,1,469,1,469,1,469,1,470,1, +470,1,470,1,470,1,470,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1, +472,1,472,1,472,1,472,1,472,1,472,1,472,1,472,1,472,1,472,1,473,1,473,1, +473,1,474,1,474,1,474,1,474,1,474,1,474,1,474,1,474,1,475,1,475,1,475,1, +475,1,475,1,475,1,475,1,475,1,475,1,475,1,475,1,475,1,475,1,475,1,475,1, +475,1,475,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1, +476,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1, +476,1,476,1,476,1,477,1,477,1,478,1,478,1,478,1,478,1,478,1,479,1,479,1, +479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,480,1,480,1, +480,1,480,1,480,1,480,1,480,1,480,1,481,1,481,1,481,1,481,1,481,1,481,1, +481,1,481,1,481,1,481,1,481,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1, +482,1,482,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,484,1,484,1, +484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,485,1, +485,1,485,1,485,1,485,1,485,1,485,1,485,1,485,1,485,1,485,1,485,1,485,1, +485,1,485,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1, +486,1,486,1,486,1,486,1,487,1,487,1,487,1,487,1,487,1,487,1,487,1,487,1, +487,1,487,1,487,1,487,1,487,1,487,1,487,1,487,1,487,1,487,1,487,1,487,1, +487,1,488,1,488,1,488,1,488,1,488,1,489,1,489,1,489,1,489,1,489,1,489,1, +490,1,490,1,490,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1, +492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,493,1, +493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,494,1,494,1, +494,1,494,1,494,1,494,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1, +495,1,495,1,495,1,496,1,496,1,496,1,496,1,496,1,496,1,496,1,497,1,497,1, +497,1,497,1,497,1,497,1,497,1,497,1,498,1,498,1,498,1,498,1,498,1,498,1, +498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1, +498,1,498,1,499,1,499,1,499,1,499,1,499,1,499,1,499,1,499,1,499,1,499,1, +499,1,499,1,499,1,499,1,500,1,500,1,500,1,500,1,500,1,500,1,500,1,500,1, +500,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,502,1,502,1, +502,1,502,1,502,1,502,1,502,1,502,1,503,1,503,1,503,1,503,1,503,1,503,1, +503,1,503,1,503,1,503,1,503,1,504,1,504,1,504,1,504,1,504,1,504,1,504,1, +504,1,504,1,504,1,504,1,504,1,504,1,504,1,504,1,504,1,504,1,504,1,504,1, +504,1,504,1,504,1,505,1,505,1,505,1,505,1,506,1,506,1,506,1,506,1,506,1, +506,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1, +507,1,507,1,507,1,507,1,507,1,507,1,507,1,508,1,508,1,508,1,508,1,508,1, +508,1,508,1,508,1,508,1,509,1,509,1,509,1,509,1,509,1,509,1,509,1,509,1, +510,1,510,1,510,1,510,1,510,1,510,1,510,1,510,1,511,1,511,1,511,1,511,1, +511,1,511,1,511,1,511,1,511,1,511,1,511,1,512,1,512,1,512,1,512,1,512,1, +512,1,512,1,512,1,512,1,512,1,512,1,512,1,512,1,512,1,512,1,513,1,513,1, +513,1,513,1,513,1,513,1,514,1,514,1,514,1,514,1,514,1,514,1,514,1,514,1, +514,1,515,1,515,1,515,1,515,1,516,1,516,1,516,1,516,1,516,1,516,1,516,1, +516,1,516,1,516,1,516,1,516,1,516,1,516,1,516,1,517,1,517,1,517,1,517,1, +517,1,517,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1, +518,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1, +519,1,519,1,519,1,519,1,519,1,519,1,519,1,520,1,520,1,520,1,520,1,520,1, +520,1,520,1,520,1,520,1,520,1,520,1,520,1,521,1,521,1,521,1,521,1,521,1, +521,1,521,1,521,1,521,1,521,1,521,1,522,1,522,1,522,1,522,1,522,1,522,1, +522,1,523,1,523,1,523,1,523,1,523,1,523,1,523,1,523,1,524,1,524,1,524,1, +524,1,524,1,524,1,524,1,524,1,524,1,525,1,525,1,525,1,525,1,525,1,526,1, +526,1,526,1,526,1,526,1,526,1,526,1,526,1,526,1,527,1,527,1,527,1,527,1, +527,1,527,1,527,1,527,1,527,1,528,1,528,1,528,1,528,1,528,1,528,1,528,1, +528,1,528,1,528,1,528,1,529,1,529,1,529,1,529,1,529,1,529,1,529,1,530,1, +530,1,530,1,530,1,530,1,530,1,531,1,531,1,531,1,531,1,531,1,531,1,531,1, +532,1,532,1,532,1,532,1,532,1,532,1,532,1,532,1,532,1,532,1,533,1,533,1, +533,1,533,1,533,1,533,1,533,1,533,1,533,1,533,1,533,1,533,1,533,1,533,1, +533,1,534,1,534,1,534,1,534,1,534,1,534,1,534,1,534,1,534,1,534,1,534,1, +535,1,535,1,535,1,535,1,535,1,535,1,535,1,535,1,535,1,536,1,536,1,536,1, +536,1,536,1,536,1,536,1,536,1,537,1,537,1,537,1,537,1,537,1,537,1,537,1, +537,1,537,1,537,1,538,1,538,1,538,1,538,1,538,1,538,1,538,1,538,1,538,1, +538,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,540,1,540,1,540,1, +540,1,540,1,540,1,540,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1, +541,1,542,1,542,1,542,1,542,1,542,1,542,1,542,1,543,1,543,1,543,1,543,1, +543,1,543,1,543,1,543,1,543,1,543,1,543,1,544,1,544,1,544,1,544,1,544,1, +545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1, +545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,546,1,546,1,546,1, +546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,547,1,547,1, +547,1,547,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,549,1,549,1,549,1, +549,1,549,1,549,1,549,1,549,1,550,1,550,1,550,1,550,1,550,1,550,1,550,1, +550,1,550,1,550,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,552,1,552,1, +552,1,552,1,552,1,552,1,552,1,552,1,552,1,552,1,552,1,552,1,552,1,552,1, +552,1,552,1,553,1,553,1,553,1,553,1,553,1,553,1,553,1,553,1,554,1,554,1, +554,1,554,1,554,1,554,1,554,1,554,1,555,1,555,1,555,1,555,1,555,1,555,1, +555,1,556,1,556,1,556,1,556,1,556,1,556,1,556,1,556,1,557,1,557,1,557,1, +557,1,557,1,557,1,557,1,557,1,557,1,558,1,558,1,558,1,558,1,558,1,558,1, +558,1,558,1,558,1,558,1,558,1,559,1,559,1,559,1,559,1,559,1,559,1,559,1, +559,1,559,1,559,1,559,1,559,1,559,1,559,1,559,1,560,1,560,1,560,1,560,1, +560,1,560,1,560,1,560,1,561,1,561,1,561,1,561,1,561,1,561,1,561,1,561,1, +561,1,561,1,561,1,561,1,561,1,562,1,562,1,562,1,562,1,562,1,562,1,563,1, +563,1,563,1,563,1,563,1,563,1,563,1,563,1,563,1,564,1,564,1,564,1,564,1, +564,1,565,1,565,1,565,1,565,1,565,1,565,1,565,1,566,1,566,1,566,1,566,1, +566,1,566,1,566,1,566,1,566,1,566,1,566,1,566,1,566,1,566,1,566,1,567,1, +567,1,567,1,567,1,567,1,567,1,567,1,568,1,568,1,568,1,568,1,568,1,568,1, +568,1,568,1,568,1,568,1,568,1,568,1,568,1,568,1,568,1,568,1,568,1,568,1, +568,1,568,1,568,1,568,1,569,1,569,1,569,1,569,1,569,1,569,1,569,1,569,1, +569,1,569,1,570,1,570,1,570,1,570,1,570,1,570,1,570,1,570,1,570,1,571,1, +571,1,571,1,571,1,571,1,571,1,571,1,571,1,572,1,572,1,572,1,572,1,572,1, +572,1,573,1,573,1,573,1,573,1,573,1,573,1,573,1,574,1,574,1,574,1,574,1, +575,1,575,1,575,1,575,1,575,1,576,1,576,1,576,1,576,1,576,1,576,1,576,1, +576,1,576,1,576,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,578,1, +578,1,578,1,578,1,578,1,578,1,578,1,578,1,579,1,579,1,579,1,579,1,579,1, +579,1,579,1,579,1,579,1,579,1,579,1,579,1,579,1,579,1,579,1,579,1,580,1, +580,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,581,1,581,1, +581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,582,1,582,1, +582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1, +583,1,583,1,583,1,583,1,583,1,583,1,584,1,584,1,584,1,584,1,584,1,584,1, +585,1,585,1,585,1,585,1,585,1,585,1,585,1,586,1,586,1,586,1,586,1,586,1, +587,1,587,1,587,1,587,1,587,1,587,1,587,1,587,1,587,1,587,1,587,1,587,1, +587,1,587,1,587,1,587,1,587,1,587,1,588,1,588,1,588,1,588,1,588,1,588,1, +588,1,588,1,588,1,588,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1, +589,1,589,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1, +590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1, +590,1,590,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,592,1,592,1,592,1, +592,1,592,1,592,1,593,1,593,1,593,1,593,1,593,1,594,1,594,1,594,1,594,1, +594,1,594,1,594,1,595,1,595,1,595,1,595,1,595,1,595,1,596,1,596,1,596,1, +596,1,596,1,596,1,596,1,597,1,597,1,597,1,597,1,597,1,597,1,597,1,597,1, +597,1,597,1,597,1,598,1,598,1,598,1,598,1,598,1,598,1,598,1,598,1,598,1, +598,1,598,1,598,1,599,1,599,1,599,1,599,1,599,1,599,1,600,1,600,1,600,1, +600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1, +600,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,602,1,602,1,602,1, +602,1,602,1,602,1,602,1,602,1,602,1,602,1,603,1,603,1,603,1,603,1,603,1, +603,1,603,1,603,1,603,1,603,1,603,1,603,1,604,1,604,1,604,1,604,1,604,1, +604,1,605,1,605,1,605,1,605,1,605,1,606,1,606,1,606,1,606,1,606,1,607,1, +607,1,607,1,607,1,607,1,607,1,608,1,608,1,608,1,608,1,608,1,608,1,609,1, +609,1,609,1,609,1,609,1,609,1,609,1,610,1,610,1,610,1,610,1,610,1,610,1, +610,1,610,1,610,1,610,1,611,1,611,1,611,1,611,1,611,1,611,1,611,1,611,1, +612,1,612,1,612,1,612,1,612,1,612,1,612,1,613,1,613,1,613,1,613,1,613,1, +613,1,614,1,614,1,614,1,614,1,614,1,614,1,614,1,614,1,614,1,614,1,614,1, +614,1,614,1,614,1,614,1,614,1,614,1,614,1,614,1,614,1,614,1,614,1,614,1, +614,1,615,1,615,1,615,1,615,1,615,1,615,1,615,1,615,1,616,1,616,1,616,1, +616,1,616,1,616,1,616,1,616,1,617,1,617,1,617,1,617,1,618,1,618,1,618,1, +618,1,618,1,618,1,618,1,619,1,619,1,619,1,619,1,619,1,619,1,619,1,619,1, +620,1,620,1,620,1,620,1,620,1,620,1,620,1,620,1,620,1,620,1,620,1,620,1, +620,1,620,1,620,1,620,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1, +621,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,623,1, +623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,624,1,624,1,624,1, +624,1,624,1,624,1,625,1,625,1,625,1,625,1,625,1,626,1,626,1,626,1,626,1, +626,1,626,1,626,1,626,1,627,1,627,1,627,1,627,1,627,1,628,1,628,1,628,1, +628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1, +628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,629,1,629,1, +629,1,629,1,629,1,629,1,629,1,629,1,629,1,630,1,630,1,630,1,630,1,630,1, +630,1,630,1,630,1,630,1,630,1,631,1,631,1,631,1,631,1,632,1,632,1,633,1, +633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1, +633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1, +633,1,633,1,633,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1, +634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1, +634,1,634,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1, +635,1,635,1,635,1,635,1,635,1,635,1,636,1,636,1,636,1,636,1,636,1,636,1, +636,1,636,1,636,1,636,1,636,1,636,1,636,1,637,1,637,1,637,1,637,1,637,1, +637,1,637,1,637,1,637,1,637,1,638,1,638,1,638,1,638,1,639,1,639,1,639,1, +639,1,639,1,639,1,639,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1, +640,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1, +641,1,642,1,642,1,642,1,642,1,642,1,642,1,642,1,642,1,642,1,642,1,642,1, +642,1,642,1,642,1,642,1,642,1,642,1,642,1,642,1,642,1,642,1,643,1,643,1, +643,1,643,1,643,1,644,1,644,1,644,1,644,1,644,1,644,1,645,1,645,1,645,1, +645,1,645,1,645,1,645,1,645,1,645,1,646,1,646,1,646,1,646,1,646,1,646,1, +647,1,647,1,647,1,647,1,647,1,647,1,647,1,647,1,647,1,648,1,648,1,648,1, +648,1,648,1,648,1,648,1,648,1,648,1,649,1,649,1,649,1,649,1,649,1,649,1, +649,1,649,1,649,1,649,1,649,1,649,1,650,1,650,1,650,1,650,1,650,1,650,1, +650,1,651,1,651,1,651,1,651,1,651,1,651,1,651,1,651,1,651,1,651,1,651,1, +652,1,652,1,652,1,652,1,652,1,652,1,652,1,652,1,652,1,652,1,653,1,653,1, +653,1,653,1,653,1,653,1,654,1,654,1,654,1,654,1,654,1,654,1,654,1,654,1, +654,1,654,1,654,1,654,1,654,1,654,1,654,1,654,1,655,1,655,1,655,1,655,1, +655,1,655,1,655,1,655,1,655,1,655,1,655,1,656,1,656,1,656,1,656,1,656,1, +656,1,656,1,656,1,657,1,657,1,657,1,657,1,657,1,658,1,658,1,658,1,658,1, +658,1,658,1,658,1,658,1,658,1,659,1,659,1,659,1,659,1,659,1,659,1,659,1, +659,1,660,1,660,1,660,1,660,1,660,1,660,1,660,1,661,1,661,1,661,1,661,1, +661,1,661,1,661,1,662,1,662,1,662,1,662,1,662,1,663,1,663,1,663,1,663,1, +663,1,664,1,664,1,664,1,664,1,664,1,664,1,664,1,664,1,664,1,665,1,665,1, +665,1,665,1,665,1,665,1,665,1,665,1,665,1,666,1,666,1,666,1,666,1,666,1, +666,1,666,1,667,1,667,1,667,1,667,1,667,1,668,1,668,1,668,1,668,1,668,1, +668,1,668,1,668,1,668,1,668,1,668,1,669,1,669,1,669,1,669,1,669,1,669,1, +669,1,669,1,669,1,669,1,669,1,669,1,669,1,670,1,670,1,670,1,670,1,670,1, +670,1,670,1,670,1,670,1,670,1,670,1,670,1,671,1,671,1,671,1,671,1,671,1, +671,1,671,1,671,1,671,1,671,1,672,1,672,1,672,1,672,1,672,1,673,1,673,1, +673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1, +674,1,674,1,674,1,674,1,674,1,674,1,674,1,674,1,674,1,674,1,674,1,674,1, +675,1,675,1,675,1,675,1,676,1,676,1,676,1,676,1,676,1,677,1,677,1,677,1, +677,1,677,1,677,1,678,1,678,1,678,1,678,1,678,1,679,1,679,1,679,1,679,1, +679,1,679,1,679,1,679,1,679,1,679,1,679,1,679,1,679,1,680,1,680,1,680,1, +680,1,680,1,680,1,680,1,681,1,681,1,682,1,682,1,682,1,682,1,682,1,682,1, +682,1,682,1,682,1,682,1,682,1,683,1,683,1,683,1,683,1,683,1,683,1,683,1, +683,1,683,1,683,1,683,1,684,1,684,1,684,1,684,1,684,1,684,1,684,1,684,1, +684,1,685,1,685,1,685,1,685,1,685,1,685,1,685,1,685,1,685,1,685,1,685,1, +685,1,685,1,686,1,686,1,686,1,687,1,687,1,687,1,687,1,687,1,687,1,687,1, +687,1,687,1,687,1,688,1,688,1,688,1,689,1,689,1,689,1,689,1,689,1,689,1, +689,1,690,1,690,1,690,1,690,1,690,1,690,1,690,1,690,1,690,1,690,1,690,1, +690,1,690,1,690,1,690,1,690,1,690,1,690,1,690,1,690,1,690,1,690,1,690,1, +691,1,691,1,691,1,691,1,691,1,691,1,691,1,691,1,691,1,691,1,691,1,691,1, +691,1,691,1,691,1,691,1,691,1,691,1,691,1,691,1,691,1,691,1,691,1,691,1, +691,1,691,1,691,1,691,1,692,1,692,1,692,1,692,1,692,1,692,1,692,1,692,1, +692,1,692,1,692,1,692,1,692,1,692,1,692,1,692,1,692,1,692,1,692,1,692,1, +692,1,692,1,692,1,692,1,692,1,692,1,692,1,693,1,693,1,693,1,693,1,693,1, +693,1,693,1,693,1,693,1,693,1,693,1,693,1,693,1,693,1,693,1,693,1,693,1, +693,1,693,1,693,1,694,1,694,1,694,1,694,1,695,1,695,1,695,1,695,1,695,1, +695,1,695,1,695,1,695,1,695,1,696,1,696,1,696,1,696,1,696,1,696,1,696,1, +697,1,697,1,697,1,697,1,697,1,697,1,697,1,698,1,698,1,698,1,698,1,698,1, +698,1,698,1,698,1,698,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1, +699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1, +699,1,699,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,701,1,701,1, +701,1,701,1,701,1,701,1,701,1,701,1,701,1,701,1,701,1,701,1,701,1,701,1, +701,1,701,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1, +703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1, +704,1,704,1,704,1,704,1,704,1,704,1,704,1,704,1,704,1,704,1,705,1,705,1, +705,1,705,1,705,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,707,1,707,1, +707,1,707,1,707,1,707,1,707,1,707,1,707,1,707,1,708,1,708,1,708,1,708,1, +708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,709,1,709,1, +709,1,709,1,709,1,709,1,709,1,709,1,709,1,709,1,709,1,710,1,710,1,710,1, +710,1,710,1,710,1,710,1,710,1,711,1,711,1,711,1,711,1,711,1,711,1,711,1, +711,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,713,1, +713,1,713,1,713,1,713,1,713,1,713,1,713,1,713,1,713,1,713,1,713,1,713,1, +714,1,714,1,714,1,714,1,714,1,714,1,715,1,715,1,715,1,715,1,715,1,715,1, +715,1,715,1,715,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1, +716,1,716,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1, +717,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,719,1, +719,1,719,1,719,1,719,1,719,1,719,1,719,1,719,1,719,1,719,1,719,1,719,1, +720,1,720,1,720,1,720,1,720,1,720,1,720,1,720,1,720,1,720,1,720,1,720,1, +720,1,720,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,722,1, +722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,723,1,723,1, +723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1, +723,1,723,1,724,1,724,1,724,1,724,1,724,1,724,1,724,1,724,1,724,1,724,1, +724,1,724,1,724,1,725,1,725,1,725,1,725,1,725,1,725,1,725,1,725,1,725,1, +725,1,725,1,725,1,725,1,725,1,726,1,726,1,726,1,726,1,726,1,726,1,726,1, +726,1,726,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1, +727,1,727,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1, +729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,730,1, +730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,731,1,731,1,731,1, +731,1,731,1,731,1,731,1,731,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1, +732,1,732,1,733,1,733,1,733,1,733,1,733,1,733,1,733,1,733,1,733,1,733,1, +733,1,733,1,733,1,733,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1, +735,1,735,1,735,1,736,1,736,1,736,1,736,1,736,1,736,1,736,1,736,1,737,1, +737,1,737,1,737,1,737,1,737,1,737,1,737,1,738,1,738,1,738,1,738,1,738,1, +738,1,738,1,738,1,738,1,738,1,738,1,738,1,739,1,739,1,739,1,739,1,739,1, +739,1,739,1,739,1,739,1,739,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1, +740,1,740,1,741,1,741,1,741,1,741,1,741,1,741,1,741,1,742,1,742,1,742,1, +742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1, +742,1,742,1,742,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1, +744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1, +744,1,744,1,744,1,744,1,744,1,744,1,744,1,745,1,745,1,745,1,745,1,745,1, +745,1,745,1,745,1,745,1,745,1,745,1,745,1,745,1,745,1,745,1,745,1,745,1, +746,1,746,1,746,1,746,1,746,1,746,1,747,1,747,1,747,1,747,1,747,1,747,1, +748,1,748,1,748,1,748,1,748,1,748,1,748,1,748,1,749,1,749,1,749,1,749,1, +749,1,749,1,749,1,749,1,749,1,749,1,749,1,749,1,750,1,750,1,750,1,750,1, +750,1,750,1,750,1,750,1,750,1,750,1,750,1,750,1,750,1,750,1,750,1,750,1, +750,1,750,1,750,1,750,1,751,1,751,1,751,1,751,1,751,1,751,1,751,1,751,1, +751,1,751,1,751,1,751,1,751,1,751,1,751,1,751,1,751,1,751,1,751,1,751,1, +751,1,752,1,752,1,752,1,752,1,752,1,752,1,752,1,752,1,752,1,752,1,752,1, +752,1,752,1,752,1,752,1,753,1,753,1,753,1,753,1,753,1,753,1,753,1,754,1, +754,1,754,1,754,1,754,1,754,1,754,1,754,1,754,1,754,1,754,1,754,1,754,1, +754,1,754,1,755,1,755,1,755,1,755,1,755,1,755,1,755,1,755,1,755,1,755,1, +755,1,755,1,755,1,755,1,755,1,755,1,756,1,756,1,756,1,756,1,756,1,756,1, +756,1,756,1,756,1,757,1,757,1,757,1,757,1,757,1,757,1,757,1,757,1,757,1, +757,1,758,1,758,1,758,1,758,1,758,1,758,1,758,1,758,1,758,1,758,1,758,1, +758,1,758,1,759,1,759,1,759,1,759,1,759,1,759,1,759,1,759,1,759,1,759,1, +760,1,760,1,760,1,760,1,760,1,760,1,760,1,760,1,761,1,761,1,761,1,761,1, +761,1,761,1,761,1,762,1,762,1,762,1,762,1,762,1,762,1,762,1,763,1,763,1, +763,1,763,1,763,1,763,1,763,1,764,1,764,1,764,1,764,1,764,1,764,1,764,1, +765,1,765,1,765,1,765,1,765,1,765,1,766,1,766,1,766,1,766,1,766,1,766,1, +766,1,766,1,767,1,767,1,767,1,767,1,767,1,767,1,767,1,767,1,767,1,767,1, +767,1,767,1,768,1,768,1,768,1,768,1,768,1,768,1,768,1,768,1,768,1,768,1, +768,1,768,1,768,1,769,1,769,1,769,1,769,1,769,1,769,1,769,1,769,1,769,1, +769,1,769,1,769,1,769,1,769,1,769,1,769,1,769,1,770,1,770,1,770,1,770,1, +770,1,770,1,770,1,770,1,770,1,770,1,770,1,770,1,770,1,771,1,771,1,771,1, +771,1,771,1,771,1,771,1,771,1,771,1,771,1,771,1,771,1,772,1,772,1,772,1, +772,1,772,1,772,1,772,1,772,1,772,1,772,1,773,1,773,1,773,1,773,1,773,1, +773,1,773,1,773,1,773,1,774,1,774,1,774,1,774,1,775,1,775,1,775,1,775,1, +775,1,775,1,775,1,775,1,775,1,776,1,776,1,776,1,776,1,776,1,777,1,777,1, +777,1,777,1,777,1,777,1,777,1,777,1,777,1,777,1,777,1,778,1,778,1,778,1, +778,1,778,1,778,1,778,1,778,1,778,1,778,1,778,1,778,1,778,1,779,1,779,1, +779,1,779,1,779,1,779,1,779,1,779,1,779,1,779,1,780,1,780,1,780,1,780,1, +780,1,780,1,780,1,780,1,780,1,780,1,781,1,781,1,781,1,781,1,781,1,781,1, +781,1,781,1,781,1,781,1,781,1,782,1,782,1,782,1,783,1,783,1,783,1,783,1, +783,1,783,1,783,1,783,1,784,1,784,1,784,1,784,1,784,1,784,1,784,1,784,1, +784,1,784,1,785,1,785,1,785,1,785,1,785,1,785,1,785,1,785,1,785,1,785,1, +785,1,785,1,785,1,785,1,785,1,785,1,786,1,786,1,786,1,786,1,786,1,786,1, +787,1,787,1,787,1,787,1,787,1,787,1,787,1,787,1,788,1,788,1,788,1,788,1, +788,1,788,1,788,1,788,1,788,1,788,1,788,1,788,1,788,1,788,1,788,1,788,1, +788,1,789,1,789,1,789,1,789,1,789,1,790,1,790,1,790,1,790,1,791,1,791,1, +791,1,791,1,791,1,792,1,792,1,792,1,792,1,792,1,792,1,792,1,792,1,792,1, +792,1,792,1,792,1,792,1,792,1,793,1,793,1,793,1,793,1,793,1,793,1,793,1, +793,1,793,1,793,1,793,1,794,1,794,1,794,1,794,1,794,1,794,1,794,1,794,1, +794,1,794,1,794,1,795,1,795,1,795,1,795,1,795,1,795,1,795,1,795,1,795,1, +795,1,795,1,795,1,795,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1, +796,1,796,1,796,1,796,1,797,1,797,1,797,1,797,1,797,1,797,1,797,1,797,1, +798,1,798,1,798,1,798,1,798,1,799,1,799,1,799,1,799,1,799,1,799,1,799,1, +799,1,799,1,799,1,799,1,799,1,799,1,799,1,799,1,800,1,800,1,800,1,800,1, +800,1,800,1,800,1,800,1,800,1,800,1,800,1,800,1,801,1,801,1,801,1,801,1, +801,1,801,1,801,1,801,1,801,1,801,1,802,1,802,1,802,1,802,1,802,1,802,1, +802,1,802,1,802,1,802,1,802,1,803,1,803,1,803,1,803,1,803,1,803,1,803,1, +803,1,803,1,803,1,803,1,803,1,803,1,803,1,803,1,804,1,804,1,804,1,804,1, +804,1,804,1,804,1,804,1,804,1,804,1,804,1,805,1,805,1,805,1,805,1,805,1, +805,1,805,1,805,1,805,1,805,1,805,1,805,1,805,1,805,1,805,1,805,1,805,1, +805,1,805,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1, +806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,807,1,807,1,807,1,807,1, +807,1,807,1,807,1,807,1,807,1,807,1,807,1,807,1,807,1,807,1,807,1,808,1, +808,1,808,1,808,1,808,1,808,1,808,1,808,1,808,1,808,1,808,1,809,1,809,1, +810,1,810,1,810,1,810,1,810,1,810,1,810,1,810,1,810,1,810,1,810,1,810,1, +810,1,810,1,810,1,810,1,811,1,811,1,811,1,811,1,811,1,812,1,812,1,812,1, +812,1,812,1,812,1,812,1,812,1,812,1,813,1,813,1,813,1,813,1,814,1,814,1, +814,1,814,1,814,1,814,1,814,1,814,1,814,1,814,1,814,1,815,1,815,1,815,1, +815,1,815,1,815,1,815,1,815,1,816,1,816,1,816,1,816,1,816,1,817,1,817,1, +817,1,817,1,817,1,817,1,817,1,817,1,817,1,818,1,818,1,818,1,818,1,818,1, +819,1,819,1,819,1,819,1,819,1,819,1,820,1,820,1,820,1,820,1,820,1,820,1, +820,1,820,1,820,1,821,1,821,1,821,1,821,1,821,1,821,1,821,1,821,1,821,1, +822,1,822,1,822,1,822,1,822,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1, +823,1,823,1,823,1,823,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1, +825,1,825,1,825,1,825,1,825,1,825,1,825,1,826,1,826,1,826,1,826,1,827,1, +827,1,827,1,827,1,827,1,827,1,828,1,828,1,828,1,828,1,828,1,828,1,828,1, +828,1,828,1,828,1,828,1,828,1,828,1,828,1,828,1,828,1,828,1,828,1,828,1, +828,1,828,1,828,1,828,1,828,1,828,1,828,1,829,1,829,1,829,1,829,1,829,1, +829,1,829,1,829,1,829,1,829,1,829,1,829,1,829,1,829,1,829,1,829,1,829,1, +829,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1, +830,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1, +831,1,831,1,831,1,831,1,831,1,831,1,831,1,831,1,832,1,832,1,832,1,832,1, +832,1,833,1,833,1,833,1,833,1,833,1,833,1,833,1,833,1,833,1,834,1,834,1, +834,1,834,1,834,1,834,1,834,1,834,1,834,1,834,1,834,1,834,1,834,1,835,1, +835,1,835,1,835,1,835,1,835,1,835,1,835,1,836,1,836,1,836,1,836,1,836,1, +837,1,837,1,837,1,837,1,837,1,837,1,837,1,837,1,838,1,838,1,838,1,838,1, +838,1,838,1,838,1,838,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1, +840,1,840,1,840,1,840,1,840,1,840,1,840,1,840,1,841,1,841,1,841,1,841,1, +841,1,841,1,841,1,842,1,842,1,842,1,842,1,842,1,843,1,843,1,843,1,843,1, +843,1,843,1,844,1,844,1,844,1,844,1,844,1,844,1,844,1,844,1,844,1,844,1, +844,1,845,1,845,1,845,1,845,1,845,1,845,1,845,1,846,1,846,1,846,1,846,1, +846,1,846,1,846,1,846,1,847,1,847,1,847,1,847,1,847,1,847,1,847,1,847,1, +847,1,847,1,848,1,848,1,848,1,848,1,848,1,849,1,849,1,849,1,849,1,849,1, +849,1,849,1,849,1,849,1,850,1,850,1,850,1,850,1,850,1,850,1,851,1,851,1, +851,1,851,1,851,1,851,1,852,1,852,1,852,1,852,1,852,1,852,1,853,1,853,1, +853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,854,1,854,1, +854,1,854,1,854,1,855,1,855,1,855,1,855,1,855,1,855,1,856,1,856,1,856,1, +856,1,856,1,856,1,856,1,857,1,857,1,857,1,857,1,857,1,857,1,858,1,858,1, +858,1,858,1,858,1,859,1,859,1,859,1,859,1,859,1,860,1,860,1,860,1,860,1, +860,1,860,1,860,1,861,1,861,1,861,1,861,1,862,1,862,1,862,1,863,1,863,1, +863,1,863,1,863,1,863,1,864,1,864,1,864,1,864,1,864,1,865,1,865,1,865,1, +865,1,866,1,866,1,866,1,866,1,866,1,866,1,866,1,866,1,867,1,867,1,867,1, +867,1,867,1,867,1,867,1,868,1,868,1,868,1,868,1,868,1,869,1,869,1,869,1, +869,1,869,1,869,1,869,1,869,1,869,1,869,1,869,1,869,1,869,1,869,1,870,1, +870,1,870,1,870,1,870,1,870,1,871,1,871,1,871,1,871,1,871,1,871,1,871,1, +871,1,871,1,871,1,872,1,872,1,872,1,872,1,872,1,872,1,872,1,872,1,872,1, +872,1,872,1,872,1,872,1,872,1,872,1,873,1,873,1,873,1,873,1,873,1,873,1, +873,1,873,1,873,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,875,1, +875,1,875,1,875,1,875,1,875,1,875,1,875,1,875,1,876,1,876,1,876,1,876,1, +876,1,876,1,876,1,877,1,877,1,877,1,877,1,877,1,877,1,877,1,877,1,878,1, +878,1,878,1,878,1,878,1,879,1,879,1,879,1,879,1,879,1,879,1,879,1,879,1, +880,1,880,1,880,1,880,1,880,1,880,1,880,1,880,1,880,1,881,1,881,1,881,1, +881,1,881,1,881,1,881,1,881,1,882,1,882,1,882,1,882,1,882,1,882,1,882,1, +882,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1, +883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1, +884,1,884,1,884,1,884,1,884,1,884,1,884,1,884,1,884,1,884,1,884,1,884,1, +884,1,884,1,884,1,884,1,884,1,884,1,884,1,884,1,884,1,884,1,884,1,884,1, +884,1,884,1,885,1,885,1,885,1,885,1,886,1,886,1,886,1,886,1,886,1,886,1, +886,1,886,1,886,1,886,1,887,1,887,1,887,1,887,1,887,1,887,1,887,1,888,1, +888,1,888,1,888,1,888,1,888,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1, +889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1, +889,1,889,1,889,1,889,1,889,1,889,1,890,1,890,1,890,1,890,1,890,1,891,1, +891,1,891,1,891,1,891,1,892,1,892,1,892,1,892,1,892,1,893,1,893,1,893,1, +893,1,893,1,893,1,894,1,894,1,894,1,894,1,895,1,895,1,895,1,895,1,895,1, +896,1,896,1,896,1,896,1,896,1,896,1,896,1,897,1,897,1,897,1,897,1,897,1, +897,1,898,1,898,1,899,1,899,1,899,1,899,1,899,1,900,1,900,1,900,1,900,1, +900,1,900,1,900,1,900,1,900,1,901,1,901,1,901,1,901,1,901,1,901,1,901,1, +901,1,902,1,902,1,902,1,902,1,902,1,902,1,902,1,903,1,903,1,903,1,903,1, +903,1,903,1,903,1,903,1,903,1,903,1,903,1,904,1,904,1,904,1,904,1,904,1, +904,1,904,1,904,1,905,1,905,1,905,1,905,1,905,1,905,1,905,1,905,1,905,1, +905,1,906,1,906,1,906,1,906,1,906,1,906,1,906,1,907,1,907,1,907,1,907,1, +908,1,908,1,908,1,908,1,908,1,908,1,908,1,908,1,909,1,909,1,909,1,909,1, +909,1,910,1,910,1,910,1,910,1,910,1,910,1,910,1,911,1,911,1,911,1,911,1, +911,1,911,1,911,1,911,1,912,1,912,1,912,1,912,1,912,1,912,1,912,1,912,1, +913,1,913,1,913,1,913,1,913,1,913,1,914,1,914,1,914,1,914,1,914,1,914,1, +914,1,914,1,914,1,914,1,914,1,914,1,914,1,915,1,915,1,915,1,915,1,915,1, +915,1,915,1,915,1,915,1,915,1,915,1,915,1,915,1,915,1,915,1,915,1,916,1, +916,1,916,1,916,1,916,1,916,1,916,1,916,1,916,1,916,1,916,1,916,1,916,1, +917,1,917,1,917,1,917,1,917,1,917,1,917,1,917,1,917,1,917,1,917,1,917,1, +918,1,918,1,918,1,918,1,918,1,918,1,918,1,918,1,918,1,918,1,918,1,918,1, +919,1,919,1,919,1,919,1,919,1,919,1,919,1,919,1,919,1,919,1,919,1,919,1, +919,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1, +921,1,921,1,921,1,921,1,921,1,921,1,921,1,921,1,921,1,922,1,922,1,922,1, +922,1,922,1,922,1,922,1,922,1,922,1,922,1,922,1,922,1,922,1,923,1,923,1, +923,1,923,1,923,1,923,1,923,1,923,1,923,1,923,1,923,1,923,1,924,1,924,1, +924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1, +925,1,925,1,925,1,925,1,925,1,925,1,925,1,925,1,925,1,925,1,925,1,925,1, +925,1,925,1,926,1,926,1,926,1,926,1,926,1,926,1,926,1,926,1,926,1,926,1, +926,1,926,1,926,1,926,1,926,1,926,1,926,1,926,1,926,1,926,1,926,1,927,1, +927,1,927,1,927,1,927,1,927,1,927,1,927,1,928,1,928,1,928,1,928,1,928,1, +928,1,928,1,928,1,928,1,929,1,929,1,929,1,929,1,929,1,929,1,929,1,929,1, +929,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,931,1,931,1,931,1, +931,1,931,1,931,1,931,1,931,1,931,1,932,1,932,1,932,1,932,1,932,1,932,1, +932,1,933,1,933,1,933,1,933,1,933,1,933,1,933,1,934,1,934,1,934,1,934,1, +934,1,934,1,934,1,934,1,934,1,934,1,934,1,934,1,934,1,934,1,934,1,935,1, +935,1,935,1,935,1,935,1,935,1,935,1,935,1,935,1,935,1,935,1,935,1,935,1, +935,1,935,1,935,1,935,1,935,1,935,1,936,1,936,1,936,1,936,1,936,1,936,1, +936,1,936,1,936,1,936,1,936,1,936,1,937,1,937,1,937,1,937,1,937,1,937,1, +937,1,937,1,937,1,937,1,937,1,937,1,937,1,937,1,937,1,937,1,937,1,937,1, +937,1,938,1,938,1,938,1,938,1,938,1,938,1,938,1,938,1,938,1,938,1,938,1, +938,1,939,1,939,1,939,1,939,1,939,1,939,1,939,1,940,1,940,1,940,1,940,1, +940,1,940,1,940,1,940,1,940,1,940,1,940,1,940,1,940,1,940,1,941,1,941,1, +941,1,941,1,941,1,941,1,941,1,941,1,941,1,942,1,942,1,942,1,942,1,942,1, +942,1,942,1,942,1,942,1,942,1,942,1,942,1,942,1,942,1,942,1,943,1,943,1, +943,1,943,1,943,1,943,1,944,1,944,1,944,1,944,1,944,1,944,1,944,1,944,1, +944,1,945,1,945,1,945,1,945,1,945,1,945,1,945,1,945,1,945,1,946,1,946,1, +946,1,946,1,946,1,946,1,946,1,947,1,947,1,947,1,947,1,947,1,947,1,947,1, +947,1,948,1,948,1,948,1,948,1,948,1,948,1,948,1,948,1,948,1,948,1,949,1, +949,1,949,1,949,1,949,1,949,1,949,1,949,1,949,1,949,1,949,1,950,1,950,1, +950,1,950,1,950,1,950,1,950,1,950,1,950,1,951,1,951,1,951,1,951,1,951,1, +951,1,951,1,951,1,952,1,952,1,952,1,952,1,952,1,952,1,952,1,953,1,953,1, +953,1,953,1,953,1,953,1,954,1,954,1,954,1,954,1,954,1,954,1,954,1,954,1, +954,1,954,1,954,1,955,1,955,1,955,1,955,1,955,1,955,1,955,1,956,1,956,1, +956,1,956,1,956,1,956,1,956,1,956,1,957,1,957,1,957,1,957,1,957,1,957,1, +957,1,957,1,957,1,958,1,958,1,958,1,958,1,958,1,958,1,958,1,958,1,958,1, +958,1,958,1,959,1,959,1,959,1,959,1,959,1,959,1,959,1,959,1,959,1,959,1, +960,1,960,1,960,1,960,1,960,1,960,1,960,1,961,1,961,1,961,1,961,1,961,1, +961,1,961,1,961,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1, +963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,964,1,964,1,964,1, +964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1, +964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,965,1,965,1,965,1,965,1, +965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1, +965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1, +966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1, +966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,967,1, +967,1,967,1,967,1,967,1,967,1,967,1,967,1,967,1,967,1,967,1,967,1,967,1, +967,1,967,1,967,1,967,1,967,1,967,1,968,1,968,1,968,1,968,1,968,1,968,1, +969,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,970,1,970,1,970,1, +970,1,970,1,970,1,970,1,970,1,970,1,970,1,970,1,970,1,970,1,970,1,970,1, +970,1,970,1,970,1,971,1,971,1,971,1,971,1,971,1,971,1,971,1,971,1,971,1, +971,1,972,1,972,1,972,1,972,1,972,1,972,1,972,1,972,1,972,1,972,1,972,1, +972,1,972,1,972,1,972,1,973,1,973,1,973,1,973,1,973,1,973,1,973,1,973,1, +973,1,974,1,974,1,974,1,974,1,974,1,975,1,975,1,975,1,975,1,975,1,975,1, +975,1,975,1,975,1,975,1,975,1,975,1,975,1,976,1,976,1,976,1,976,1,976,1, +976,1,976,1,976,1,976,1,976,1,976,1,976,1,976,1,976,1,976,1,976,1,976,1, +976,1,976,1,977,1,977,1,977,1,977,1,977,1,977,1,977,1,978,1,978,1,978,1, +978,1,979,1,979,1,979,1,979,1,979,1,979,1,979,1,980,1,980,1,980,1,980,1, +980,1,980,1,980,1,980,1,980,1,980,1,980,1,981,1,981,1,981,1,981,1,981,1, +981,1,981,1,981,1,982,1,982,1,982,1,982,1,982,1,982,1,983,1,983,1,983,1, +983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1, +984,1,984,1,984,1,984,1,984,1,984,1,984,1,985,1,985,1,985,1,985,1,985,1, +985,1,986,1,986,1,986,1,986,1,986,1,986,1,986,1,986,1,986,1,986,1,987,1, +987,1,987,1,987,1,987,1,987,1,987,1,987,1,987,1,987,1,987,1,988,1,988,1, +988,1,988,1,988,1,988,1,988,1,988,1,988,1,989,1,989,1,989,1,989,1,989,1, +990,1,990,1,990,1,990,1,990,1,990,1,990,1,990,1,990,1,990,1,990,1,990,1, +990,1,990,1,990,1,990,1,990,1,991,1,991,1,991,1,991,1,991,1,991,1,991,1, +991,1,991,1,992,1,992,1,992,1,992,1,992,1,992,1,992,1,992,1,992,1,993,1, +993,1,993,1,993,1,993,1,993,1,994,1,994,1,994,1,994,1,994,1,995,1,995,1, +995,1,995,1,995,1,995,1,995,1,995,1,995,1,995,1,996,1,996,1,996,1,996,1, +997,1,997,1,997,1,997,1,997,1,997,1,998,1,998,1,998,1,998,1,998,1,998,1, +998,1,998,1,998,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1, +999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1, +999,1,999,1,1000,1,1000,1,1000,1,1000,1,1000,1,1000,1,1000,1,1001,1,1001, +1,1001,1,1001,1,1001,1,1001,1,1001,1,1001,1,1002,1,1002,1,1002,1,1002,1, +1002,1,1002,1,1002,1,1002,1,1002,1,1003,1,1003,1,1003,1,1003,1,1004,1,1004, +1,1004,1,1004,1,1004,1,1004,1,1004,1,1004,1,1004,1,1005,1,1005,1,1005,1, +1005,1,1005,1,1005,1,1006,1,1006,1,1006,1,1006,1,1006,1,1007,1,1007,1,1007, +1,1007,1,1007,1,1007,1,1008,1,1008,1,1008,1,1008,1,1008,1,1008,1,1008,1, +1009,1,1009,1,1009,1,1009,1,1010,1,1010,1,1010,1,1010,1,1010,1,1010,1,1010, +1,1011,1,1011,1,1011,1,1011,1,1011,1,1011,1,1011,1,1011,1,1011,1,1011,1, +1011,1,1011,1,1011,1,1011,1,1011,1,1011,1,1011,1,1011,1,1011,1,1011,1,1011, +1,1011,1,1011,1,1011,1,1011,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,1, +1012,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012, +1,1012,1,1012,1,1012,1,1012,1,1012,1,1013,1,1013,1,1013,1,1013,1,1013,1, +1013,1,1013,1,1013,1,1013,1,1013,1,1013,1,1013,1,1013,1,1013,1,1013,1,1013, +1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1, +1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014, +1,1014,1,1015,1,1015,1,1015,1,1015,1,1015,1,1015,1,1015,1,1015,1,1015,1, +1015,1,1015,1,1015,1,1015,1,1015,1,1015,1,1015,1,1015,1,1015,1,1015,1,1015, +1,1015,1,1015,1,1015,1,1016,1,1016,1,1016,1,1016,1,1016,1,1016,1,1016,1, +1016,1,1017,1,1017,1,1017,1,1017,1,1017,1,1017,1,1018,1,1018,1,1018,1,1018, +1,1019,1,1019,1,1019,1,1019,1,1019,1,1019,1,1019,1,1019,1,1020,1,1020,1, +1020,1,1020,1,1020,1,1020,1,1020,1,1020,1,1020,1,1021,1,1021,1,1021,1,1021, +1,1021,1,1021,1,1021,1,1021,1,1021,1,1022,1,1022,1,1022,1,1022,1,1022,1, +1023,1,1023,1,1023,1,1023,1,1023,1,1023,1,1024,1,1024,1,1024,1,1024,1,1024, +1,1024,1,1024,1,1024,1,1024,1,1024,1,1024,1,1024,1,1024,1,1025,1,1025,1, +1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025, +1,1025,1,1025,1,1025,1,1025,1,1026,1,1026,1,1026,1,1026,1,1026,1,1026,1, +1026,1,1026,1,1026,1,1026,1,1026,1,1026,1,1026,1,1026,1,1026,1,1027,1,1027, +1,1027,1,1027,1,1027,1,1027,1,1027,1,1027,1,1027,1,1027,1,1027,1,1027,1, +1027,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028, +1,1028,1,1028,1,1028,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1, +1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1030, +1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1, +1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1031, +1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1, +1031,1,1031,1,1031,1,1031,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032, +1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1, +1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1034,1,1034, +1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1, +1034,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035, +1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1036,1,1036,1,1036,1,1036,1, +1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036, +1,1036,1,1036,1,1036,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1, +1037,1,1037,1,1037,1,1037,1,1037,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038, +1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1, +1038,1,1039,1,1039,1,1039,1,1039,1,1039,1,1039,1,1040,1,1040,1,1040,1,1040, +1,1040,1,1040,1,1040,1,1040,1,1040,1,1041,1,1041,1,1041,1,1041,1,1041,1, +1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1042,1,1042,1,1042, +1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1, +1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1043,1,1043,1,1043, +1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1044,1,1044,1,1044,1, +1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044, +1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1045,1,1045,1,1045,1,1045,1, +1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045, +1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1046,1,1046,1, +1046,1,1046,1,1046,1,1046,1,1046,1,1046,1,1046,1,1047,1,1047,1,1047,1,1047, +1,1047,1,1047,1,1047,1,1047,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048,1, +1048,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048, +1,1048,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1, +1049,1,1049,1,1049,1,1049,1,1049,1,1050,1,1050,1,1050,1,1050,1,1050,1,1050, +1,1050,1,1050,1,1050,1,1050,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1, +1051,1,1051,1,1051,1,1051,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052, +1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1, +1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053, +1,1053,1,1053,1,1053,1,1053,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1, +1054,1,1054,1,1054,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055, +1,1055,1,1055,1,1055,1,1055,1,1055,1,1056,1,1056,1,1056,1,1056,1,1056,1, +1056,1,1056,1,1056,1,1057,1,1057,1,1057,1,1057,1,1057,1,1057,1,1057,1,1057, +1,1057,1,1057,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1, +1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058, +1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1, +1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059, +1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1060,1,1060,1, +1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060, +1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1, +1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1061,1,1061,1,1061, +1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1, +1061,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062, +1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1064,1,1064,1, +1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1065,1,1065,1,1065,1,1065,1,1065, +1,1065,1,1065,1,1065,1,1065,1,1065,1,1065,1,1065,1,1065,1,1066,1,1066,1, +1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066, +1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1067,1,1067,1, +1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067, +1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1068,1,1068,1,1068,1, +1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068, +1,1069,1,1069,1,1069,1,1069,1,1069,1,1069,1,1069,1,1069,1,1069,1,1069,1, +1069,1,1069,1,1069,1,1069,1,1069,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070, +1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1071,1, +1071,1,1071,1,1071,1,1071,1,1071,1,1071,1,1071,1,1071,1,1071,1,1071,1,1072, +1,1072,1,1072,1,1072,1,1072,1,1072,1,1072,1,1072,1,1072,1,1072,1,1072,1, +1072,1,1072,1,1072,1,1072,1,1072,1,1072,1,1072,1,1072,1,1072,1,1072,1,1072, +1,1072,1,1072,1,1072,1,1072,1,1073,1,1073,1,1073,1,1073,1,1073,1,1073,1, +1073,1,1073,1,1073,1,1073,1,1073,1,1073,1,1073,1,1073,1,1073,1,1073,1,1073, +1,1073,1,1073,1,1073,1,1073,1,1073,1,1073,1,1073,1,1073,1,1074,1,1074,1, +1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074, +1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1, +1074,1,1074,1,1075,1,1075,1,1075,1,1075,1,1075,1,1075,1,1075,1,1075,1,1075, +1,1075,1,1075,1,1075,1,1075,1,1075,1,1075,1,1075,1,1075,1,1075,1,1075,1, +1075,1,1075,1,1075,1,1075,1,1075,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076, +1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1, +1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1077,1,1077,1,1077, +1,1077,1,1077,1,1077,1,1077,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1, +1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078, +1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1079,1, +1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079, +1,1079,1,1079,1,1079,1,1080,1,1080,1,1080,1,1080,1,1080,1,1080,1,1080,1, +1080,1,1080,1,1080,1,1080,1,1080,1,1080,1,1080,1,1081,1,1081,1,1081,1,1081, +1,1081,1,1081,1,1081,1,1081,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1, +1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082, +1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1083,1,1083,1, +1083,1,1083,1,1083,1,1083,1,1083,1,1083,1,1083,1,1083,1,1083,1,1083,1,1083, +1,1083,1,1083,1,1084,1,1084,1,1084,1,1084,1,1084,1,1084,1,1084,1,1084,1, +1085,1,1085,1,1085,1,1085,1,1085,1,1085,1,1085,1,1085,1,1085,1,1085,1,1085, +1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1, +1086,1,1086,1,1086,1,1086,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087, +1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1, +1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1088,1,1088,1,1088,1,1088,1,1088, +1,1088,1,1088,1,1088,1,1088,1,1088,1,1088,1,1088,1,1088,1,1088,1,1088,1, +1088,1,1088,1,1088,1,1088,1,1088,1,1088,1,1088,1,1088,1,1088,1,1088,1,1088, +1,1088,1,1089,1,1089,1,1089,1,1089,1,1089,1,1089,1,1089,1,1089,1,1089,1, +1089,1,1089,1,1089,1,1089,1,1089,1,1089,1,1089,1,1090,1,1090,1,1090,1,1090, +1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1, +1090,1,1090,1,1090,1,1090,1,1091,1,1091,1,1091,1,1091,1,1091,1,1091,1,1091, +1,1091,1,1091,1,1091,1,1091,1,1091,1,1091,1,1091,1,1091,1,1091,1,1091,1, +1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092, +1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1, +1092,1,1092,1,1092,1,1093,1,1093,1,1093,1,1093,1,1093,1,1093,1,1093,1,1093, +1,1093,1,1093,1,1093,1,1093,1,1093,1,1093,1,1093,1,1093,1,1093,1,1094,1, +1094,1,1094,1,1094,1,1094,1,1094,1,1094,1,1094,1,1094,1,1094,1,1094,1,1094, +1,1094,1,1094,1,1094,1,1094,1,1094,1,1094,1,1094,1,1094,1,1094,1,1094,1, +1094,1,1094,1,1095,1,1095,1,1095,1,1095,1,1095,1,1095,1,1095,1,1095,1,1095, +1,1095,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1, +1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1097,1,1097,1,1097,1,1097, +1,1097,1,1097,1,1097,1,1097,1,1097,1,1098,1,1098,1,1098,1,1098,1,1098,1, +1098,1,1098,1,1098,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099, +1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1, +1100,1,1100,1,1100,1,1100,1,1100,1,1100,1,1100,1,1100,1,1100,1,1100,1,1100, +1,1100,1,1100,1,1101,1,1101,1,1101,1,1101,1,1101,1,1101,1,1101,1,1101,1, +1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102, +1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1, +1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1103,1,1103,1,1103,1,1103, +1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1, +1103,1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1,1103, +1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1,1104,1,1104,1,1104,1,1104,1, +1104,1,1104,1,1104,1,1104,1,1104,1,1104,1,1104,1,1104,1,1104,1,1104,1,1104, +1,1104,1,1105,1,1105,1,1105,1,1105,1,1105,1,1105,1,1105,1,1105,1,1105,1, +1105,1,1105,1,1105,1,1106,1,1106,1,1106,1,1106,1,1106,1,1106,1,1106,1,1106, +1,1106,1,1106,1,1106,1,1106,1,1106,1,1107,1,1107,1,1107,1,1107,1,1107,1, +1107,1,1107,1,1107,1,1107,1,1108,1,1108,1,1108,1,1108,1,1108,1,1108,1,1108, +1,1108,1,1108,1,1108,1,1108,1,1108,1,1109,1,1109,1,1109,1,1109,1,1109,1, +1109,1,1109,1,1109,1,1109,1,1109,1,1109,1,1109,1,1110,1,1110,1,1110,1,1110, +1,1110,1,1110,1,1110,1,1110,1,1110,1,1110,1,1110,1,1110,1,1110,1,1110,1, +1110,1,1110,1,1110,1,1110,1,1110,1,1110,1,1111,1,1111,1,1111,1,1111,1,1111, +1,1111,1,1111,1,1112,1,1112,1,1112,1,1112,1,1112,1,1112,1,1112,1,1112,1, +1113,1,1113,1,1113,1,1113,1,1113,1,1113,1,1113,1,1113,1,1114,1,1114,1,1114, +1,1114,1,1114,1,1114,1,1115,1,1115,1,1115,1,1115,1,1115,1,1115,1,1115,1, +1115,1,1115,1,1115,1,1116,1,1116,1,1116,1,1116,1,1116,1,1116,1,1116,1,1116, +1,1116,1,1116,1,1117,1,1117,1,1117,1,1117,1,1117,1,1117,1,1117,1,1117,1, +1117,1,1117,1,1118,1,1118,1,1118,1,1118,1,1118,1,1118,1,1118,1,1118,1,1118, +1,1118,1,1118,1,1119,1,1119,1,1119,1,1119,1,1119,1,1119,1,1119,1,1119,1, +1119,1,1120,1,1120,1,1120,1,1120,1,1120,1,1120,1,1120,1,1120,1,1120,1,1120, +1,1120,1,1121,1,1121,1,1121,1,1121,1,1121,1,1121,1,1121,1,1121,1,1121,1, +1121,1,1121,1,1122,1,1122,1,1122,1,1122,1,1122,1,1122,1,1122,1,1122,1,1122, +1,1122,1,1122,1,1122,1,1122,1,1122,1,1122,1,1122,1,1122,1,1122,1,1123,1, +1123,1,1123,1,1123,1,1123,1,1123,1,1123,1,1123,1,1123,1,1123,1,1123,1,1123, +1,1123,1,1123,1,1124,1,1124,1,1124,1,1124,1,1124,1,1124,1,1124,1,1124,1, +1124,1,1124,1,1124,1,1124,1,1124,1,1125,1,1125,1,1125,1,1125,1,1125,1,1125, +1,1125,1,1125,1,1125,1,1125,1,1125,1,1126,1,1126,1,1126,1,1126,1,1126,1, +1126,1,1126,1,1126,1,1126,1,1126,1,1126,1,1126,1,1126,1,1126,1,1126,1,1126, +1,1126,1,1126,1,1126,1,1127,1,1127,1,1127,1,1127,1,1127,1,1127,1,1127,1, +1127,1,1127,1,1127,1,1127,1,1127,1,1127,1,1127,1,1127,1,1127,1,1127,1,1127, +1,1127,1,1127,1,1127,1,1127,1,1127,1,1127,1,1127,1,1127,1,1128,1,1128,1, +1128,1,1128,1,1128,1,1128,1,1128,1,1128,1,1128,1,1128,1,1128,1,1128,1,1129, +1,1129,1,1129,1,1129,1,1129,1,1129,1,1129,1,1129,1,1129,1,1129,1,1129,1, +1129,1,1129,1,1129,1,1129,1,1130,1,1130,1,1130,1,1130,1,1130,1,1131,1,1131, +1,1131,1,1131,1,1131,1,1131,1,1131,1,1131,1,1131,1,1132,1,1132,1,1132,1, +1132,1,1132,1,1132,1,1132,1,1132,1,1132,1,1132,1,1132,1,1132,1,1132,1,1132, +1,1132,1,1132,1,1133,1,1133,1,1133,1,1133,1,1133,1,1133,1,1133,1,1133,1, +1133,1,1133,1,1133,1,1133,1,1133,1,1133,1,1133,1,1133,1,1134,1,1134,1,1134, +1,1135,1,1135,1,1135,1,1135,1,1135,1,1135,1,1135,1,1135,1,1135,1,1135,1, +1136,1,1136,1,1136,1,1136,1,1136,1,1136,1,1136,1,1136,1,1136,1,1136,1,1136, +1,1136,1,1136,1,1136,1,1136,1,1137,1,1137,1,1137,1,1137,1,1137,1,1137,1, +1137,1,1137,1,1138,1,1138,1,1138,1,1138,1,1138,1,1138,1,1138,1,1138,1,1138, +1,1138,1,1138,1,1138,1,1138,1,1138,1,1138,1,1138,1,1138,1,1139,1,1139,1, +1139,1,1139,1,1139,1,1139,1,1139,1,1139,1,1139,1,1139,1,1139,1,1139,1,1139, +1,1139,1,1139,1,1139,1,1139,1,1139,1,1139,1,1139,1,1139,1,1139,1,1140,1, +1140,1,1140,1,1140,1,1140,1,1140,1,1140,1,1140,1,1140,1,1140,1,1140,1,1140, +1,1140,1,1140,1,1140,1,1140,1,1140,1,1140,1,1140,1,1140,1,1140,1,1140,1, +1140,1,1141,1,1141,1,1141,1,1141,1,1141,1,1141,1,1141,1,1141,1,1141,1,1141, +1,1141,1,1142,1,1142,1,1142,1,1142,1,1142,1,1142,1,1142,1,1142,1,1142,1, +1142,1,1142,1,1142,1,1142,1,1142,1,1142,1,1142,1,1142,1,1142,1,1143,1,1143, +1,1143,1,1143,1,1143,1,1143,1,1143,1,1143,1,1143,1,1143,1,1143,1,1143,1, +1143,1,1143,1,1143,1,1143,1,1143,1,1144,1,1144,1,1144,1,1144,1,1144,1,1144, +1,1144,1,1144,1,1144,1,1144,1,1144,1,1144,1,1145,1,1145,1,1145,1,1145,1, +1145,1,1145,1,1145,1,1145,1,1145,1,1145,1,1145,1,1146,1,1146,1,1146,1,1146, +1,1146,1,1146,1,1146,1,1146,1,1146,1,1146,1,1146,1,1146,1,1146,1,1146,1, +1146,1,1146,1,1146,1,1146,1,1147,1,1147,1,1147,1,1147,1,1147,1,1147,1,1147, +1,1147,1,1147,1,1147,1,1147,1,1147,1,1147,1,1147,1,1147,1,1147,1,1148,1, +1148,1,1148,1,1148,1,1148,1,1148,1,1148,1,1148,1,1148,1,1148,1,1148,1,1148, +1,1148,1,1148,1,1148,1,1148,1,1148,1,1148,1,1148,1,1148,1,1148,1,1148,1, +1148,1,1148,1,1148,1,1148,1,1148,1,1149,1,1149,1,1149,1,1149,1,1149,1,1149, +1,1149,1,1149,1,1149,1,1149,1,1149,1,1149,1,1150,1,1150,1,1150,1,1150,1, +1150,1,1150,1,1150,1,1150,1,1150,1,1150,1,1150,1,1150,1,1150,1,1150,1,1150, +1,1150,1,1150,1,1150,1,1151,1,1151,1,1151,1,1151,1,1151,1,1151,1,1151,1, +1151,1,1151,1,1151,1,1151,1,1151,1,1151,1,1151,1,1151,1,1151,1,1151,1,1151, +1,1152,1,1152,1,1152,1,1152,1,1152,1,1152,1,1152,1,1152,1,1152,1,1152,1, +1152,1,1152,1,1152,1,1152,1,1152,1,1152,1,1152,1,1152,1,1152,1,1152,1,1152, +1,1152,1,1152,1,1153,1,1153,1,1153,1,1153,1,1153,1,1153,1,1153,1,1153,1, +1153,1,1153,1,1154,1,1154,1,1154,1,1154,1,1154,1,1154,1,1154,1,1154,1,1154, +1,1155,1,1155,1,1155,1,1155,1,1155,1,1155,1,1155,1,1155,1,1155,1,1155,1, +1155,1,1155,1,1155,1,1155,1,1155,1,1155,1,1156,1,1156,1,1156,1,1156,1,1156, +1,1156,1,1156,1,1156,1,1156,1,1156,1,1156,1,1157,1,1157,1,1157,1,1157,1, +1157,1,1157,1,1157,1,1157,1,1157,1,1157,1,1157,1,1157,1,1157,1,1157,1,1157, +1,1158,1,1158,1,1158,1,1158,1,1158,1,1158,1,1158,1,1158,1,1158,1,1158,1, +1158,1,1158,1,1158,1,1159,1,1159,1,1159,1,1159,1,1159,1,1159,1,1159,1,1159, +1,1159,1,1159,1,1159,1,1159,1,1159,1,1160,1,1160,1,1160,1,1160,1,1160,1, +1160,1,1160,1,1160,1,1160,1,1160,1,1160,1,1160,1,1160,1,1161,1,1161,1,1161, +1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1, +1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1162,1,1162, +1,1162,1,1162,1,1162,1,1162,1,1162,1,1162,1,1162,1,1162,1,1162,1,1162,1, +1162,1,1162,1,1162,1,1162,1,1162,1,1162,1,1163,1,1163,1,1163,1,1163,1,1163, +1,1163,1,1163,1,1163,1,1163,1,1163,1,1163,1,1163,1,1164,1,1164,1,1164,1, +1164,1,1164,1,1164,1,1164,1,1164,1,1164,1,1164,1,1164,1,1164,1,1164,1,1164, +1,1164,1,1164,1,1164,1,1164,1,1164,1,1164,1,1164,1,1164,1,1164,1,1164,1, +1165,1,1165,1,1165,1,1165,1,1165,1,1165,1,1165,1,1165,1,1165,1,1165,1,1165, +1,1165,1,1165,1,1165,1,1165,1,1166,1,1166,1,1166,1,1166,1,1166,1,1166,1, +1166,1,1166,1,1166,1,1166,1,1166,1,1167,1,1167,1,1167,1,1167,1,1167,1,1167, +1,1167,1,1168,1,1168,1,1168,1,1168,1,1168,1,1168,1,1168,1,1168,1,1168,1, +1169,1,1169,1,1169,1,1169,1,1169,1,1169,1,1169,1,1169,1,1169,1,1170,1,1170, +1,1170,1,1170,1,1170,1,1170,1,1170,1,1170,1,1170,1,1170,1,1170,1,1170,1, +1171,1,1171,1,1171,1,1171,1,1171,1,1171,1,1171,1,1171,1,1171,1,1171,1,1171, +1,1171,1,1171,1,1171,1,1171,1,1171,1,1172,1,1172,1,1172,1,1172,1,1172,1, +1172,1,1172,1,1172,1,1172,1,1172,1,1173,1,1173,1,1173,1,1173,1,1173,1,1173, +1,1173,1,1173,1,1173,1,1173,1,1173,1,1174,1,1174,1,1174,1,1174,1,1174,1, +1174,1,1174,1,1174,1,1174,1,1174,1,1175,1,1175,1,1175,1,1175,1,1175,1,1175, +1,1175,1,1176,1,1176,1,1176,1,1176,1,1176,1,1176,1,1176,1,1176,1,1176,1, +1176,1,1176,1,1176,1,1176,1,1176,1,1176,1,1176,1,1176,1,1176,1,1176,1,1176, +1,1176,1,1177,1,1177,1,1177,1,1177,1,1177,1,1177,1,1177,1,1177,1,1177,1, +1177,1,1177,1,1177,1,1177,1,1177,1,1177,1,1177,1,1177,1,1177,1,1178,1,1178, +1,1178,1,1178,1,1178,1,1178,1,1178,1,1178,1,1179,1,1179,1,1179,1,1179,1, +1179,1,1179,1,1179,1,1179,1,1179,1,1179,1,1179,1,1179,1,1179,1,1179,1,1180, +1,1180,1,1180,1,1180,1,1180,1,1180,1,1180,1,1180,1,1180,1,1180,1,1181,1, +1181,1,1181,1,1181,1,1181,1,1181,1,1181,1,1181,1,1181,1,1181,1,1181,1,1181, +1,1182,1,1182,1,1182,1,1182,1,1182,1,1182,1,1182,1,1182,1,1182,1,1182,1, +1182,1,1182,1,1182,1,1182,1,1182,1,1182,1,1182,1,1183,1,1183,1,1183,1,1183, +1,1183,1,1183,1,1183,1,1183,1,1183,1,1183,1,1183,1,1183,1,1183,1,1183,1, +1183,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1185,1,1185, +1,1185,1,1185,1,1185,1,1185,1,1185,1,1186,1,1186,1,1186,1,1186,1,1186,1, +1186,1,1186,1,1186,1,1186,1,1186,1,1186,1,1186,1,1186,1,1186,1,1186,1,1186, +1,1186,1,1186,1,1186,1,1187,1,1187,1,1187,1,1187,1,1187,1,1187,1,1187,1, +1187,1,1187,1,1187,1,1187,1,1187,1,1188,1,1188,1,1188,1,1188,1,1188,1,1188, +1,1188,1,1188,1,1188,1,1188,1,1188,1,1188,1,1188,1,1188,1,1188,1,1188,1, +1188,1,1188,1,1188,1,1188,1,1188,1,1188,1,1188,1,1189,1,1189,1,1189,1,1189, +1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1, +1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1190,1,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1, +1190,1,1191,1,1191,1,1191,1,1191,1,1191,1,1191,1,1191,1,1191,1,1191,1,1192, +1,1192,1,1192,1,1192,1,1192,1,1192,1,1192,1,1192,1,1192,1,1192,1,1192,1, +1192,1,1192,1,1192,1,1192,1,1192,1,1192,1,1192,1,1192,1,1192,1,1193,1,1193, +1,1193,1,1193,1,1193,1,1193,1,1193,1,1193,1,1193,1,1193,1,1193,1,1193,1, +1193,1,1193,1,1193,1,1194,1,1194,1,1194,1,1194,1,1194,1,1194,1,1194,1,1194, +1,1194,1,1194,1,1194,1,1194,1,1194,1,1194,1,1194,1,1194,1,1194,1,1194,1, +1194,1,1194,1,1195,1,1195,1,1195,1,1195,1,1195,1,1195,1,1195,1,1195,1,1195, +1,1196,1,1196,1,1196,1,1196,1,1196,1,1196,1,1196,1,1196,1,1196,1,1196,1, +1196,1,1196,1,1196,1,1196,1,1196,1,1196,1,1196,1,1196,1,1196,1,1196,1,1196, +1,1196,1,1197,1,1197,1,1197,1,1197,1,1197,1,1197,1,1197,1,1197,1,1197,1, +1197,1,1197,1,1197,1,1197,1,1197,1,1198,1,1198,1,1198,1,1198,1,1198,1,1198, +1,1198,1,1198,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1, +1199,1,1199,1,1199,1,1199,1,1199,1,1200,1,1200,1,1200,1,1200,1,1200,1,1200, +1,1200,1,1201,1,1201,1,1201,1,1201,1,1202,1,1202,1,1202,1,1202,1,1202,1, +1202,1,1202,1,1202,1,1202,1,1202,1,1202,1,1202,1,1202,1,1202,1,1202,1,1202, +1,1202,1,1202,1,1202,1,1202,1,1202,1,1202,1,1202,1,1202,1,1202,1,1202,1, +1203,1,1203,1,1203,1,1203,1,1203,1,1203,1,1203,1,1203,1,1203,1,1203,1,1204, +1,1204,1,1204,1,1204,1,1204,1,1204,1,1204,1,1204,1,1204,1,1204,1,1204,1, +1204,1,1205,1,1205,1,1205,1,1205,1,1205,1,1205,1,1205,1,1205,1,1205,1,1205, +1,1205,1,1205,1,1205,1,1205,1,1205,1,1205,1,1205,1,1205,1,1205,1,1205,1, +1205,1,1205,1,1205,1,1205,1,1206,1,1206,1,1206,1,1206,1,1206,1,1206,1,1206, +1,1206,1,1206,1,1206,1,1206,1,1206,1,1206,1,1206,1,1206,1,1206,1,1206,1, +1206,1,1206,1,1206,1,1206,1,1206,1,1206,1,1206,1,1206,1,1206,1,1206,1,1206, +1,1206,1,1207,1,1207,1,1207,1,1207,1,1207,1,1207,1,1207,1,1207,1,1207,1, +1207,1,1207,1,1207,1,1208,1,1208,1,1208,1,1208,1,1208,1,1208,1,1208,1,1208, +1,1208,1,1208,1,1208,1,1208,1,1208,1,1208,1,1208,1,1208,1,1208,1,1208,1, +1208,1,1208,1,1208,1,1208,1,1208,1,1208,1,1208,1,1209,1,1209,1,1209,1,1209, +1,1209,1,1209,1,1209,1,1209,1,1209,1,1209,1,1209,1,1209,1,1209,1,1210,1, +1210,1,1210,1,1210,1,1210,1,1210,1,1210,1,1210,1,1210,1,1210,1,1211,1,1211, +1,1211,1,1211,1,1211,1,1211,1,1211,1,1211,1,1211,1,1211,1,1211,1,1211,1, +1211,1,1211,1,1211,1,1211,1,1211,1,1211,1,1211,1,1211,1,1211,1,1211,1,1211, +1,1211,1,1211,1,1211,1,1212,1,1212,1,1212,1,1212,1,1212,1,1212,1,1212,1, +1212,1,1212,1,1212,1,1212,1,1213,1,1213,1,1213,1,1213,1,1213,1,1213,1,1213, +1,1213,1,1213,1,1213,1,1213,1,1213,1,1213,1,1213,1,1213,1,1213,1,1213,1, +1213,1,1213,1,1213,1,1213,1,1213,1,1213,1,1213,1,1213,1,1214,1,1214,1,1214, +1,1214,1,1214,1,1214,1,1214,1,1214,1,1214,1,1214,1,1214,1,1214,1,1214,1, +1214,1,1214,1,1214,1,1214,1,1214,1,1214,1,1214,1,1214,1,1214,1,1214,1,1214, +1,1214,1,1215,1,1215,1,1215,1,1215,1,1215,1,1215,1,1215,1,1215,1,1215,1, +1215,1,1215,1,1215,1,1215,1,1215,1,1215,1,1215,1,1215,1,1215,1,1215,1,1215, +1,1216,1,1216,1,1216,1,1216,1,1216,1,1216,1,1216,1,1217,1,1217,1,1217,1, +1217,1,1217,1,1217,1,1217,1,1217,1,1217,1,1217,1,1217,1,1217,1,1217,1,1217, +1,1217,1,1217,1,1217,1,1217,1,1217,1,1217,1,1217,1,1217,1,1217,1,1218,1, +1218,1,1218,1,1218,1,1218,1,1218,1,1218,1,1218,1,1218,1,1218,1,1218,1,1218, +1,1218,1,1218,1,1218,1,1218,1,1218,1,1218,1,1218,1,1219,1,1219,1,1219,1, +1219,1,1219,1,1219,1,1219,1,1219,1,1219,1,1219,1,1219,1,1219,1,1219,1,1219, +1,1219,1,1219,1,1219,1,1219,1,1219,1,1219,1,1219,1,1219,1,1219,1,1219,1, +1219,1,1219,1,1219,1,1219,1,1219,1,1219,1,1220,1,1220,1,1220,1,1220,1,1220, +1,1220,1,1220,1,1220,1,1220,1,1220,1,1220,1,1220,1,1220,1,1220,1,1220,1, +1220,1,1220,1,1220,1,1220,1,1220,1,1221,1,1221,1,1221,1,1221,1,1221,1,1221, +1,1221,1,1221,1,1221,1,1221,1,1221,1,1221,1,1221,1,1221,1,1221,1,1221,1, +1221,1,1221,1,1221,1,1221,1,1221,1,1222,1,1222,1,1222,1,1222,1,1222,1,1222, +1,1222,1,1222,1,1222,1,1222,1,1222,1,1223,1,1223,1,1223,1,1223,1,1223,1, +1223,1,1223,1,1223,1,1223,1,1223,1,1224,1,1224,1,1224,1,1224,1,1224,1,1224, +1,1224,1,1225,1,1225,1,1225,1,1225,1,1225,1,1226,1,1226,1,1226,1,1226,1, +1226,1,1226,1,1227,1,1227,1,1227,1,1227,1,1227,1,1227,1,1227,1,1228,1,1228, +1,1228,1,1228,1,1228,1,1228,1,1228,1,1228,1,1229,1,1229,1,1229,1,1229,1, +1229,1,1229,1,1229,1,1229,1,1229,1,1229,1,1229,1,1229,1,1229,1,1229,1,1229, +1,1230,1,1230,1,1230,1,1230,1,1230,1,1230,1,1230,1,1230,1,1230,1,1230,1, +1230,1,1230,1,1230,1,1230,1,1230,1,1230,1,1231,1,1231,1,1231,1,1231,1,1231, +1,1231,1,1231,1,1231,1,1231,1,1231,1,1231,1,1231,1,1231,1,1231,1,1231,1, +1231,1,1232,1,1232,1,1232,1,1232,1,1232,1,1232,1,1232,1,1232,1,1232,1,1232, +1,1233,1,1233,1,1233,1,1233,1,1233,1,1234,1,1234,1,1234,1,1234,1,1234,1, +1234,1,1234,1,1234,1,1234,1,1234,1,1234,1,1235,1,1235,1,1235,1,1235,1,1235, +1,1235,1,1235,1,1236,1,1236,1,1236,1,1236,1,1236,1,1236,1,1236,1,1237,1, +1237,1,1237,1,1237,1,1237,1,1237,1,1238,1,1238,1,1238,1,1238,1,1238,1,1238, +1,1238,1,1238,1,1238,1,1238,1,1238,1,1238,1,1239,1,1239,1,1239,1,1239,1, +1239,1,1239,1,1239,1,1239,1,1239,1,1239,1,1239,1,1240,1,1240,1,1240,1,1240, +1,1240,1,1240,1,1240,1,1240,1,1241,1,1241,1,1241,1,1241,1,1242,1,1242,1, +1242,1,1242,1,1242,1,1242,1,1242,1,1243,1,1243,1,1243,1,1244,1,1244,1,1244, +1,1244,1,1244,1,1244,1,1244,1,1244,1,1244,1,1245,1,1245,1,1245,1,1245,1, +1246,1,1246,1,1246,1,1246,1,1246,1,1247,1,1247,1,1247,1,1247,1,1248,1,1248, +1,1248,1,1248,1,1248,1,1248,1,1248,1,1248,1,1248,1,1248,1,1248,1,1248,1, +1248,1,1248,1,1249,1,1249,1,1249,1,1249,1,1250,1,1250,1,1250,1,1250,1,1250, +1,1251,1,1251,1,1251,1,1251,1,1251,1,1252,1,1252,1,1252,1,1252,1,1253,1, +1253,1,1253,1,1253,1,1253,1,1253,1,1253,1,1254,1,1254,1,1254,1,1254,1,1254, +1,1254,1,1254,1,1254,1,1254,1,1254,1,1255,1,1255,1,1255,1,1255,1,1255,1, +1256,1,1256,1,1256,1,1257,1,1257,1,1257,1,1257,1,1257,1,1257,1,1257,1,1258, +1,1258,1,1258,1,1258,1,1258,1,1258,1,1258,1,1258,1,1258,1,1258,1,1258,1, +1258,1,1258,1,1258,1,1258,1,1258,1,1258,1,1259,1,1259,1,1259,1,1259,1,1259, +1,1259,1,1259,1,1259,1,1259,1,1259,1,1259,1,1259,1,1259,1,1259,1,1259,1, +1259,1,1259,1,1259,1,1260,1,1260,1,1260,1,1260,1,1260,1,1260,1,1260,1,1261, +1,1261,1,1261,1,1261,1,1261,1,1262,1,1262,1,1262,1,1262,1,1262,1,1262,1, +1262,1,1262,1,1262,1,1262,1,1262,1,1263,1,1263,1,1263,1,1263,1,1263,1,1263, +1,1263,1,1263,1,1263,1,1264,1,1264,1,1264,1,1264,1,1264,1,1264,1,1264,1, +1264,1,1264,1,1264,1,1264,1,1264,1,1264,1,1265,1,1265,1,1265,1,1265,1,1265, +1,1265,1,1265,1,1265,1,1266,1,1266,1,1266,1,1266,1,1266,1,1266,1,1266,1, +1266,1,1266,1,1267,1,1267,1,1267,1,1267,1,1267,1,1267,1,1267,1,1267,1,1267, +1,1267,1,1267,1,1267,1,1267,1,1267,1,1267,1,1267,1,1267,1,1267,1,1267,1, +1267,1,1267,1,1267,1,1267,1,1267,1,1267,1,1267,1,1268,1,1268,1,1268,1,1268, +1,1268,1,1268,1,1268,1,1268,1,1268,1,1268,1,1268,1,1268,1,1268,1,1268,1, +1268,1,1269,1,1269,1,1269,1,1269,1,1269,1,1269,1,1269,1,1270,1,1270,1,1270, +1,1270,1,1270,1,1270,1,1270,1,1270,1,1270,1,1270,1,1270,1,1271,1,1271,1, +1271,1,1271,1,1271,1,1271,1,1271,1,1271,1,1271,1,1271,1,1272,1,1272,1,1272, +1,1272,1,1272,1,1272,1,1272,1,1272,1,1272,1,1272,1,1272,1,1273,1,1273,1, +1273,1,1273,1,1273,1,1273,1,1273,1,1273,1,1273,1,1273,1,1273,1,1273,1,1273, +1,1273,1,1274,1,1274,1,1274,1,1274,1,1274,1,1274,1,1274,1,1274,1,1274,1, +1274,1,1274,1,1274,1,1274,1,1274,1,1274,1,1274,1,1274,1,1274,1,1274,1,1274, +1,1275,1,1275,1,1275,1,1275,1,1275,1,1275,1,1275,1,1275,1,1275,1,1275,1, +1275,1,1275,1,1275,1,1275,1,1275,1,1276,1,1276,1,1276,1,1276,1,1276,1,1276, +1,1276,1,1276,1,1277,1,1277,1,1277,1,1277,1,1278,1,1278,1,1278,1,1278,1, +1278,1,1278,1,1278,1,1278,1,1278,1,1278,1,1278,1,1278,1,1279,1,1279,1,1279, +1,1279,1,1279,1,1279,1,1279,1,1279,1,1279,1,1279,1,1279,1,1279,1,1279,1, +1279,1,1280,1,1280,1,1280,1,1280,1,1280,1,1280,1,1280,1,1280,1,1280,1,1281, +1,1281,1,1281,1,1281,1,1281,1,1281,1,1281,1,1281,1,1281,1,1281,1,1281,1, +1281,1,1281,1,1281,1,1281,1,1281,1,1281,1,1282,1,1282,1,1282,1,1282,1,1282, +1,1282,1,1282,1,1282,1,1282,1,1282,1,1282,1,1282,1,1282,1,1282,1,1282,1, +1282,1,1283,1,1283,1,1283,1,1283,1,1283,1,1283,1,1283,1,1283,1,1283,1,1283, +1,1283,1,1283,1,1283,1,1283,1,1284,1,1284,1,1284,1,1284,1,1284,1,1284,1, +1284,1,1284,1,1284,1,1284,1,1284,1,1284,1,1284,1,1284,1,1284,1,1285,1,1285, +1,1285,1,1285,1,1285,1,1285,1,1285,1,1285,1,1285,1,1285,1,1285,1,1285,1, +1285,1,1285,1,1285,1,1285,1,1285,1,1285,1,1285,1,1286,1,1286,1,1286,1,1286, +1,1286,1,1286,1,1286,1,1286,1,1286,1,1287,1,1287,1,1287,1,1287,1,1287,1, +1287,1,1287,1,1287,1,1287,1,1287,1,1287,1,1287,1,1287,1,1287,1,1287,1,1287, +1,1287,1,1287,1,1287,1,1287,1,1288,1,1288,1,1288,1,1288,1,1288,1,1288,1, +1288,1,1288,1,1288,1,1288,1,1288,1,1288,1,1288,1,1288,1,1288,1,1288,1,1288, +1,1288,1,1289,1,1289,1,1289,1,1289,1,1289,1,1289,1,1289,1,1289,1,1289,1, +1289,1,1289,1,1289,1,1289,1,1289,1,1289,1,1289,1,1289,1,1289,1,1289,1,1289, +1,1289,1,1289,1,1289,1,1289,1,1289,1,1289,1,1290,1,1290,1,1290,1,1290,1, +1290,1,1290,1,1290,1,1290,1,1290,1,1290,1,1290,1,1290,1,1290,1,1290,1,1290, +1,1290,1,1290,1,1290,1,1290,1,1290,1,1290,1,1291,1,1291,1,1291,1,1291,1, +1291,1,1291,1,1291,1,1291,1,1291,1,1291,1,1291,1,1291,1,1291,1,1291,1,1291, +1,1292,1,1292,1,1292,1,1292,1,1292,1,1292,1,1292,1,1292,1,1292,1,1292,1, +1292,1,1292,1,1292,1,1292,1,1293,1,1293,1,1293,1,1293,1,1293,1,1293,1,1293, +1,1293,1,1293,1,1293,1,1293,1,1294,1,1294,1,1294,1,1294,1,1294,1,1294,1, +1294,1,1294,1,1294,1,1294,1,1294,1,1294,1,1294,1,1294,1,1294,1,1295,1,1295, +1,1295,1,1295,1,1295,1,1295,1,1295,1,1295,1,1295,1,1295,1,1295,1,1295,1, +1295,1,1295,1,1295,1,1296,1,1296,1,1296,1,1296,1,1296,1,1296,1,1296,1,1296, +1,1296,1,1296,1,1296,1,1296,1,1296,1,1296,1,1296,1,1297,1,1297,1,1297,1, +1297,1,1297,1,1297,1,1297,1,1297,1,1297,1,1297,1,1297,1,1297,1,1297,1,1297, +1,1297,1,1298,1,1298,1,1298,1,1298,1,1298,1,1298,1,1298,1,1298,1,1299,1, +1299,1,1299,1,1299,1,1299,1,1299,1,1299,1,1299,1,1299,1,1299,1,1299,1,1299, +1,1299,1,1299,1,1299,1,1299,1,1299,1,1299,1,1299,1,1300,1,1300,1,1300,1, +1300,1,1300,1,1300,1,1301,1,1301,1,1301,1,1301,1,1301,1,1301,1,1301,1,1301, +1,1301,1,1301,1,1301,1,1302,1,1302,1,1302,1,1302,1,1302,1,1302,1,1302,1, +1302,1,1302,1,1302,1,1303,1,1303,1,1303,1,1303,1,1303,1,1303,1,1303,1,1303, +1,1303,1,1303,1,1303,1,1303,1,1303,1,1304,1,1304,1,1304,1,1305,1,1305,1, +1305,1,1305,1,1305,1,1305,1,1305,1,1305,1,1305,1,1305,1,1305,1,1305,1,1305, +1,1305,1,1306,1,1306,1,1306,1,1306,1,1306,1,1306,1,1306,1,1306,1,1307,1, +1307,1,1307,1,1307,1,1307,1,1307,1,1308,1,1308,1,1308,1,1308,1,1308,1,1308, +1,1308,1,1308,1,1308,1,1308,1,1308,1,1308,1,1308,1,1308,1,1308,1,1308,1, +1308,1,1308,1,1308,1,1309,1,1309,1,1309,1,1309,1,1309,1,1309,1,1309,1,1309, +1,1309,1,1309,1,1309,1,1309,1,1309,1,1309,1,1309,1,1309,1,1309,1,1309,1, +1309,1,1309,1,1310,1,1310,1,1310,1,1310,1,1310,1,1310,1,1311,1,1311,1,1311, +1,1311,1,1311,1,1311,1,1311,1,1311,1,1311,1,1311,1,1311,1,1311,1,1311,1, +1312,1,1312,1,1312,1,1312,1,1312,1,1312,1,1312,1,1312,1,1313,1,1313,1,1313, +1,1313,1,1313,1,1313,1,1313,1,1313,1,1313,1,1313,1,1313,1,1313,1,1313,1, +1314,1,1314,1,1314,1,1314,1,1314,1,1314,1,1314,1,1314,1,1314,1,1314,1,1314, +1,1314,1,1315,1,1315,1,1315,1,1315,1,1316,1,1316,1,1316,1,1316,1,1316,1, +1316,1,1316,1,1316,1,1316,1,1316,1,1316,1,1316,1,1316,1,1316,1,1316,1,1316, +1,1317,1,1317,1,1317,1,1317,1,1317,1,1317,1,1317,1,1317,1,1317,1,1318,1, +1318,1,1318,1,1318,1,1318,1,1318,1,1318,1,1318,1,1318,1,1319,1,1319,1,1319, +1,1319,1,1319,1,1320,1,1320,1,1320,1,1320,1,1320,1,1320,1,1320,1,1320,1, +1320,1,1321,1,1321,1,1321,1,1321,1,1321,1,1321,1,1321,1,1321,1,1321,1,1321, +1,1321,1,1322,1,1322,1,1322,1,1322,1,1322,1,1322,1,1323,1,1323,1,1323,1, +1323,1,1323,1,1323,1,1323,1,1323,1,1323,1,1323,1,1324,1,1324,1,1324,1,1324, +1,1325,1,1325,1,1326,1,1326,1,1326,1,1326,1,1326,1,1326,1,1326,1,1326,1, +1327,1,1327,1,1327,1,1327,1,1327,1,1327,1,1327,1,1327,1,1327,1,1328,1,1328, +1,1328,1,1328,1,1328,1,1328,1,1328,1,1328,1,1328,1,1328,1,1328,1,1328,1, +1328,1,1328,1,1328,1,1328,1,1329,1,1329,1,1329,1,1329,1,1329,1,1329,1,1329, +1,1329,1,1329,1,1329,1,1329,1,1329,1,1329,1,1329,1,1329,1,1330,1,1330,1, +1330,1,1330,1,1330,1,1330,1,1330,1,1330,1,1330,1,1331,1,1331,1,1331,1,1331, +1,1331,1,1331,1,1331,1,1331,1,1331,1,1331,1,1331,1,1331,1,1331,1,1331,1, +1332,1,1332,1,1332,1,1332,1,1332,1,1332,1,1332,1,1332,1,1332,1,1332,1,1332, +1,1333,1,1333,1,1333,1,1333,1,1333,1,1333,1,1334,1,1334,1,1334,1,1334,1, +1334,1,1334,1,1334,1,1335,1,1335,1,1335,1,1335,1,1335,1,1335,1,1335,1,1335, +1,1335,1,1335,1,1335,1,1335,1,1335,1,1335,1,1335,1,1335,1,1335,1,1335,1, +1336,1,1336,1,1336,1,1336,1,1336,1,1336,1,1336,1,1336,1,1336,1,1336,1,1336, +1,1336,1,1336,1,1336,1,1336,1,1336,1,1336,1,1336,1,1336,1,1337,1,1337,1, +1337,1,1337,1,1337,1,1337,1,1337,1,1338,1,1338,1,1338,1,1338,1,1338,1,1338, +1,1338,1,1338,1,1339,1,1339,1,1339,1,1339,1,1339,1,1339,1,1339,1,1339,1, +1339,1,1339,1,1339,1,1339,1,1339,1,1340,1,1340,1,1340,1,1340,1,1340,1,1340, +1,1340,1,1340,1,1340,1,1340,1,1341,1,1341,1,1341,1,1341,1,1341,1,1341,1, +1341,1,1341,1,1342,1,1342,1,1342,1,1342,1,1342,1,1342,1,1342,1,1342,1,1342, +1,1342,1,1342,1,1342,1,1342,1,1342,1,1342,1,1342,1,1342,1,1342,1,1342,1, +1342,1,1342,1,1342,1,1342,1,1342,1,1343,1,1343,1,1343,1,1343,1,1343,1,1343, +1,1343,1,1343,1,1343,1,1343,1,1343,1,1343,1,1343,1,1343,1,1343,1,1344,1, +1344,1,1344,1,1344,1,1344,1,1344,1,1344,1,1344,1,1344,1,1344,1,1344,1,1344, +1,1344,1,1344,1,1344,1,1345,1,1345,1,1345,1,1345,1,1345,1,1345,1,1345,1, +1345,1,1345,1,1345,1,1346,1,1346,1,1346,1,1346,1,1346,1,1346,1,1346,1,1346, +1,1346,1,1346,1,1346,1,1346,1,1346,1,1346,1,1346,1,1346,1,1347,1,1347,1, +1347,1,1347,1,1347,1,1347,1,1347,1,1347,1,1347,1,1347,1,1347,1,1348,1,1348, +1,1348,1,1348,1,1348,1,1348,1,1348,1,1348,1,1348,1,1348,1,1348,1,1348,1, +1348,1,1348,1,1349,1,1349,1,1349,1,1349,1,1349,1,1349,1,1349,1,1349,1,1350, +1,1350,1,1350,1,1350,1,1350,1,1350,1,1350,1,1350,1,1350,1,1350,1,1350,1, +1350,1,1350,1,1350,1,1350,1,1350,1,1350,1,1350,1,1350,1,1350,1,1351,1,1351, +1,1351,1,1351,1,1351,1,1351,1,1351,1,1351,1,1351,1,1351,1,1351,1,1351,1, +1351,1,1351,1,1351,1,1351,1,1351,1,1351,1,1351,1,1352,1,1352,1,1352,1,1352, +1,1352,1,1352,1,1352,1,1352,1,1352,1,1352,1,1352,1,1352,1,1352,1,1352,1, +1352,1,1352,1,1352,1,1352,1,1352,1,1353,1,1353,1,1353,1,1353,1,1353,1,1353, +1,1353,1,1353,1,1353,1,1354,1,1354,1,1354,1,1354,1,1354,1,1354,1,1354,1, +1354,1,1354,1,1354,1,1354,1,1354,1,1354,1,1354,1,1354,1,1354,1,1354,1,1354, +1,1354,1,1355,1,1355,1,1355,1,1355,1,1355,1,1355,1,1355,1,1355,1,1355,1, +1355,1,1355,1,1355,1,1355,1,1355,1,1355,1,1355,1,1355,1,1355,1,1355,1,1355, +1,1356,1,1356,1,1356,1,1356,1,1356,1,1356,1,1356,1,1356,1,1356,1,1356,1, +1356,1,1356,1,1356,1,1356,1,1356,1,1356,1,1356,1,1356,1,1356,1,1356,1,1356, +1,1356,1,1356,1,1357,1,1357,1,1357,1,1357,1,1357,1,1357,1,1357,1,1357,1, +1357,1,1357,1,1357,1,1357,1,1357,1,1357,1,1357,1,1357,1,1357,1,1357,1,1357, +1,1357,1,1357,1,1357,1,1357,1,1357,1,1357,1,1358,1,1358,1,1358,1,1358,1, +1358,1,1359,1,1359,1,1359,1,1359,1,1359,1,1359,1,1360,1,1360,1,1360,1,1360, +1,1360,1,1361,1,1361,1,1361,1,1361,1,1361,1,1361,1,1361,1,1361,1,1361,1, +1361,1,1361,1,1361,1,1362,1,1362,1,1362,1,1362,1,1362,1,1362,1,1363,1,1363, +1,1363,1,1363,1,1363,1,1363,1,1363,1,1363,1,1364,1,1364,1,1364,1,1364,1, +1364,1,1364,1,1364,1,1364,1,1364,1,1364,1,1364,1,1364,1,1364,1,1365,1,1365, +1,1365,1,1365,1,1365,1,1365,1,1365,1,1365,1,1365,1,1365,1,1365,1,1366,1, +1366,1,1366,1,1366,1,1366,1,1366,1,1366,1,1366,1,1367,1,1367,1,1367,1,1367, +1,1367,1,1367,1,1367,1,1367,1,1367,1,1367,1,1367,1,1367,1,1368,1,1368,1, +1368,1,1368,1,1368,1,1368,1,1368,1,1368,1,1368,1,1368,1,1368,1,1368,1,1368, +1,1369,1,1369,1,1369,1,1369,1,1369,1,1369,1,1369,1,1369,1,1370,1,1370,1, +1370,1,1370,1,1370,1,1370,1,1370,1,1370,1,1370,1,1370,1,1370,1,1371,1,1371, +1,1371,1,1371,1,1371,1,1371,1,1371,1,1371,1,1372,1,1372,5,1372,19890,8,1372, +10,1372,12,1372,19893,9,1372,1,1372,1,1372,1,1372,1,1372,1,1372,1,1372,1, +1373,1,1373,5,1373,19903,8,1373,10,1373,12,1373,19906,9,1373,1,1373,1,1373, +1,1373,1,1373,1,1373,1,1373,1,1373,1,1374,1,1374,5,1374,19917,8,1374,10, +1374,12,1374,19920,9,1374,1,1374,1,1374,1,1374,1,1374,1,1374,1,1374,1,1374, +1,1374,1,1374,1,1375,1,1375,1,1375,1,1375,1,1375,1,1375,1,1375,1,1375,1, +1376,1,1376,1,1376,1,1376,1,1376,1,1376,1,1376,1,1376,1,1376,1,1376,1,1376, +1,1376,1,1376,1,1376,1,1377,1,1377,5,1377,19955,8,1377,10,1377,12,1377,19958, +9,1377,1,1377,1,1377,1,1377,1,1377,1,1377,1,1377,1,1377,1,1377,1,1377,1, +1378,1,1378,5,1378,19971,8,1378,10,1378,12,1378,19974,9,1378,1,1378,1,1378, +1,1378,1,1378,1,1378,1,1378,1,1378,1,1378,1,1379,1,1379,5,1379,19986,8,1379, +10,1379,12,1379,19989,9,1379,1,1379,1,1379,1,1379,1,1379,1,1379,1,1380,1, +1380,5,1380,19998,8,1380,10,1380,12,1380,20001,9,1380,1,1380,1,1380,1,1380, +1,1380,1,1380,1,1380,1,1380,1,1380,1,1380,1,1380,1,1380,1,1380,1,1380,1, +1380,1,1380,1,1380,1,1381,1,1381,5,1381,20021,8,1381,10,1381,12,1381,20024, +9,1381,1,1381,1,1381,1,1381,1,1381,1,1381,1,1381,1,1381,1,1381,1,1381,1, +1381,1,1381,1,1381,1,1381,1,1381,1,1382,1,1382,1,1382,1,1382,1,1382,1,1382, +1,1382,1,1382,1,1382,1,1382,1,1382,1,1382,1,1383,1,1383,1,1383,1,1383,1, +1383,1,1383,1,1383,1,1384,1,1384,1,1384,1,1384,1,1384,1,1384,1,1384,1,1384, +1,1384,1,1384,1,1385,1,1385,1,1385,1,1385,1,1385,1,1385,1,1385,1,1385,1, +1385,1,1385,1,1385,1,1386,1,1386,1,1386,1,1386,1,1386,1,1386,1,1386,1,1386, +1,1387,1,1387,1,1387,1,1387,1,1388,1,1388,1,1388,1,1388,1,1388,1,1388,1, +1389,1,1389,1,1389,1,1389,1,1389,1,1389,1,1389,1,1389,1,1389,1,1390,1,1390, +1,1390,1,1390,1,1390,1,1390,1,1391,1,1391,1,1391,1,1391,1,1391,1,1391,1, +1391,1,1391,1,1391,1,1391,1,1392,1,1392,1,1392,1,1392,1,1392,1,1393,1,1393, +1,1393,1,1393,1,1393,1,1393,1,1393,1,1394,1,1394,1,1394,1,1394,1,1394,1, +1394,1,1395,1,1395,1,1395,1,1395,1,1395,1,1395,1,1395,1,1395,1,1396,1,1396, +1,1396,1,1396,1,1396,1,1396,1,1396,1,1396,1,1396,1,1396,1,1396,1,1396,1, +1396,1,1396,1,1396,1,1397,1,1397,1,1397,1,1397,1,1397,1,1397,1,1397,1,1397, +1,1397,1,1397,1,1397,1,1397,1,1397,1,1397,1,1397,1,1398,1,1398,1,1398,1, +1398,1,1398,1,1399,1,1399,1,1399,1,1399,1,1399,1,1399,1,1399,1,1399,1,1399, +1,1399,1,1399,1,1399,1,1399,1,1399,1,1399,1,1399,1,1399,1,1400,1,1400,1, +1400,1,1400,1,1400,1,1400,1,1400,1,1400,1,1400,1,1400,1,1400,1,1400,1,1401, +1,1401,1,1401,1,1401,1,1401,1,1401,1,1401,1,1401,1,1401,1,1401,1,1401,1, +1401,1,1401,1,1401,1,1402,1,1402,1,1402,1,1402,1,1402,1,1402,1,1402,1,1402, +1,1402,1,1402,1,1402,1,1402,1,1402,1,1402,1,1402,1,1402,1,1403,1,1403,1, +1403,1,1403,1,1403,1,1403,1,1403,1,1403,1,1403,1,1403,1,1403,1,1403,1,1404, +1,1404,1,1404,1,1404,1,1404,1,1404,1,1404,1,1404,1,1404,1,1404,1,1404,1, +1404,1,1404,1,1404,1,1404,1,1404,1,1404,1,1404,1,1404,1,1404,1,1404,1,1405, +1,1405,1,1405,1,1405,1,1405,1,1405,1,1405,1,1405,1,1405,1,1405,1,1405,1, +1405,1,1405,1,1405,1,1405,1,1406,1,1406,1,1406,1,1406,1,1406,1,1406,1,1406, +1,1406,1,1406,1,1406,1,1407,1,1407,1,1407,1,1407,1,1407,1,1408,1,1408,1, +1408,1,1408,1,1408,1,1408,1,1409,1,1409,1,1409,1,1409,1,1409,1,1409,1,1409, +1,1410,1,1410,1,1410,1,1410,1,1410,1,1410,1,1410,1,1410,1,1410,1,1411,1, +1411,1,1411,1,1411,1,1411,1,1411,1,1411,1,1411,1,1412,1,1412,1,1412,1,1412, +1,1412,1,1412,1,1412,1,1412,1,1412,1,1413,1,1413,1,1413,1,1413,1,1413,1, +1413,1,1413,1,1413,1,1414,1,1414,1,1414,1,1414,1,1414,1,1414,1,1414,1,1414, +1,1415,1,1415,1,1415,1,1415,1,1415,1,1415,1,1415,1,1415,1,1415,1,1416,1, +1416,1,1416,1,1416,1,1416,1,1416,1,1416,1,1416,1,1416,1,1416,1,1417,1,1417, +1,1417,1,1417,1,1417,1,1417,1,1417,1,1417,1,1417,1,1418,1,1418,1,1418,1, +1418,1,1418,1,1418,1,1418,1,1418,1,1418,1,1418,1,1418,1,1418,1,1418,1,1418, +1,1418,1,1418,1,1418,1,1419,1,1419,1,1419,1,1419,1,1419,1,1419,1,1419,1, +1419,1,1419,1,1419,1,1419,1,1419,1,1419,1,1419,1,1419,1,1419,1,1419,1,1419, +1,1419,1,1419,1,1419,1,1419,1,1419,1,1419,1,1419,1,1419,1,1419,1,1419,1, +1419,1,1420,1,1420,1,1420,1,1420,1,1420,1,1420,1,1420,1,1420,1,1420,1,1420, +1,1420,1,1420,1,1420,1,1420,1,1421,1,1421,1,1421,1,1421,1,1421,1,1421,1, +1422,1,1422,1,1422,1,1422,1,1422,1,1422,1,1422,1,1422,1,1422,1,1422,1,1422, +1,1422,1,1422,1,1422,1,1422,1,1422,1,1422,1,1422,1,1422,1,1422,1,1423,1, +1423,1,1423,1,1423,1,1423,1,1423,1,1423,1,1423,1,1423,1,1423,1,1423,1,1423, +1,1423,1,1423,1,1424,1,1424,1,1424,1,1424,1,1424,1,1424,1,1424,1,1424,1, +1424,1,1424,1,1424,1,1424,1,1424,1,1424,1,1424,1,1424,1,1424,1,1424,1,1424, +1,1424,1,1424,1,1425,1,1425,1,1425,1,1425,1,1425,1,1425,1,1425,1,1425,1, +1425,1,1425,1,1426,1,1426,1,1426,1,1426,1,1426,1,1426,1,1426,1,1427,1,1427, +1,1427,1,1427,1,1427,1,1427,1,1427,1,1427,1,1427,1,1428,1,1428,1,1428,1, +1428,1,1428,1,1428,1,1428,1,1428,1,1428,1,1428,1,1428,1,1428,1,1428,1,1429, +1,1429,1,1429,1,1429,1,1429,1,1429,1,1429,1,1429,1,1430,1,1430,1,1430,1, +1430,1,1430,1,1430,1,1430,1,1431,1,1431,1,1431,1,1431,1,1431,1,1431,1,1431, +1,1431,1,1431,1,1432,1,1432,1,1432,1,1432,1,1432,1,1432,1,1432,1,1432,1, +1432,1,1433,1,1433,1,1433,1,1433,1,1433,1,1433,1,1433,1,1433,1,1433,1,1433, +1,1434,1,1434,1,1434,1,1434,1,1434,1,1434,1,1434,1,1434,1,1434,1,1434,1, +1435,1,1435,1,1435,1,1435,1,1435,1,1435,1,1435,1,1435,1,1435,1,1435,1,1435, +1,1435,1,1435,1,1435,1,1435,1,1435,1,1435,1,1435,1,1435,1,1435,1,1436,1, +1436,1,1436,1,1436,1,1436,1,1436,1,1436,1,1436,1,1436,1,1436,1,1436,1,1436, +1,1436,1,1436,1,1436,1,1436,1,1436,1,1436,1,1436,1,1437,1,1437,1,1437,1, +1437,1,1437,1,1437,1,1437,1,1437,1,1438,1,1438,1,1438,1,1438,1,1438,1,1438, +1,1438,1,1438,1,1439,1,1439,1,1439,1,1439,1,1439,1,1439,1,1439,1,1439,1, +1439,1,1439,1,1439,1,1439,1,1439,1,1440,1,1440,1,1440,1,1440,1,1440,1,1440, +1,1440,1,1440,1,1440,1,1440,1,1440,1,1441,1,1441,1,1441,1,1441,1,1441,1, +1441,1,1441,1,1441,1,1442,1,1442,1,1442,1,1442,1,1442,1,1442,1,1442,1,1442, +1,1442,1,1443,1,1443,1,1443,1,1443,1,1443,1,1443,1,1443,1,1443,1,1443,1, +1443,1,1443,1,1443,1,1443,1,1444,1,1444,1,1444,1,1444,1,1444,1,1444,1,1444, +1,1444,1,1444,1,1445,1,1445,1,1445,1,1445,1,1445,1,1445,1,1445,1,1446,1, +1446,1,1446,1,1446,1,1446,1,1446,1,1446,1,1446,1,1446,1,1447,1,1447,1,1447, +1,1447,1,1447,1,1448,1,1448,1,1448,1,1448,1,1448,1,1448,1,1448,1,1448,1, +1449,1,1449,1,1449,1,1449,1,1449,1,1449,1,1449,1,1449,1,1449,1,1449,1,1449, +1,1449,1,1449,1,1449,1,1449,1,1449,1,1450,1,1450,1,1450,1,1450,1,1450,1, +1450,1,1450,1,1450,1,1450,1,1451,1,1451,1,1451,1,1451,1,1451,1,1451,1,1452, +1,1452,1,1452,1,1452,1,1452,1,1452,1,1452,1,1452,1,1453,1,1453,1,1453,1, +1453,1,1453,1,1453,1,1453,1,1453,1,1453,1,1453,1,1453,1,1453,1,1454,1,1454, +1,1454,1,1454,1,1454,1,1454,1,1454,1,1454,1,1454,1,1454,1,1454,1,1455,1, +1455,1,1455,1,1455,1,1455,1,1455,1,1455,1,1455,1,1455,1,1455,1,1456,1,1456, +1,1456,1,1456,1,1456,1,1456,1,1456,1,1456,1,1456,1,1456,1,1456,1,1457,1, +1457,1,1457,1,1457,1,1457,1,1457,1,1457,1,1457,1,1457,1,1457,1,1457,1,1458, +1,1458,1,1458,1,1458,1,1458,1,1458,1,1458,1,1458,1,1458,1,1458,1,1459,1, +1459,1,1459,1,1459,1,1459,1,1459,1,1459,1,1459,1,1460,1,1460,1,1460,1,1460, +1,1460,1,1460,1,1460,1,1460,1,1461,1,1461,1,1461,1,1461,1,1461,1,1461,1, +1461,1,1461,1,1462,1,1462,1,1462,1,1462,1,1462,1,1462,1,1462,1,1462,1,1463, +1,1463,1,1463,1,1463,1,1463,1,1463,1,1463,1,1463,1,1463,1,1463,1,1464,1, +1464,1,1464,1,1464,1,1464,1,1464,1,1464,1,1464,1,1464,1,1465,1,1465,1,1465, +1,1465,1,1465,1,1465,1,1465,1,1465,1,1465,1,1465,1,1466,1,1466,1,1466,1, +1466,1,1466,1,1466,1,1466,1,1466,1,1466,1,1466,1,1466,1,1467,1,1467,1,1467, +1,1467,1,1467,1,1467,1,1467,1,1467,1,1467,1,1468,1,1468,1,1468,1,1468,1, +1468,1,1468,1,1469,1,1469,1,1469,1,1469,1,1469,1,1469,1,1469,1,1469,1,1470, +1,1470,1,1470,1,1470,1,1470,1,1470,1,1470,1,1471,1,1471,1,1471,1,1471,1, +1471,1,1471,1,1471,1,1471,1,1471,1,1471,1,1472,1,1472,1,1472,1,1472,1,1472, +1,1472,1,1473,1,1473,1,1473,1,1473,1,1473,1,1473,1,1473,1,1473,1,1473,1, +1473,1,1474,1,1474,1,1474,1,1474,1,1474,1,1474,1,1474,1,1474,1,1474,1,1474, +1,1475,1,1475,1,1475,1,1475,1,1475,1,1475,1,1475,1,1475,1,1475,1,1475,1, +1475,1,1475,1,1475,1,1475,1,1475,1,1475,1,1475,1,1475,1,1475,1,1476,1,1476, +1,1476,1,1476,1,1476,1,1476,1,1476,1,1476,1,1476,1,1476,1,1476,1,1477,1, +1477,1,1477,1,1477,1,1477,1,1477,1,1477,1,1477,1,1477,1,1477,1,1477,1,1477, +1,1477,1,1477,1,1477,1,1478,1,1478,1,1478,1,1478,1,1478,1,1478,1,1478,1, +1478,1,1479,1,1479,1,1479,1,1479,1,1479,1,1479,1,1479,1,1479,1,1479,1,1480, +1,1480,1,1480,1,1480,1,1480,1,1480,1,1480,1,1480,1,1480,1,1480,1,1480,1, +1480,1,1481,1,1481,1,1481,1,1481,1,1481,1,1481,1,1482,1,1482,1,1482,1,1482, +1,1482,1,1482,1,1482,1,1482,1,1482,1,1482,1,1482,1,1483,1,1483,1,1483,1, +1483,1,1483,1,1483,1,1484,1,1484,1,1484,1,1484,1,1484,1,1484,1,1484,1,1484, +1,1484,1,1484,1,1484,1,1485,1,1485,1,1485,1,1485,1,1485,1,1485,1,1485,1, +1485,1,1486,1,1486,1,1486,1,1486,1,1486,1,1486,1,1486,1,1487,1,1487,1,1487, +1,1487,1,1487,1,1487,1,1488,1,1488,1,1488,1,1488,1,1488,1,1488,1,1488,1, +1488,1,1488,1,1488,1,1488,1,1489,1,1489,1,1489,1,1489,1,1489,1,1489,1,1490, +1,1490,1,1490,1,1490,1,1490,1,1490,1,1490,1,1490,1,1490,1,1490,1,1490,1, +1490,1,1490,1,1491,1,1491,1,1491,1,1491,1,1491,1,1491,1,1491,1,1492,1,1492, +1,1492,1,1492,1,1492,1,1492,1,1493,1,1493,1,1493,1,1493,1,1493,1,1493,1, +1494,1,1494,1,1494,1,1494,1,1494,1,1494,1,1494,1,1494,1,1495,1,1495,1,1495, +1,1495,1,1496,1,1496,1,1496,1,1496,1,1496,1,1496,1,1496,1,1496,1,1496,1, +1497,1,1497,1,1497,1,1497,1,1497,1,1497,1,1497,1,1497,1,1497,1,1497,1,1498, +1,1498,1,1498,1,1498,1,1499,1,1499,1,1499,1,1499,1,1499,1,1499,1,1499,1, +1499,1,1499,1,1499,1,1499,1,1499,1,1500,1,1500,1,1500,1,1500,1,1500,1,1500, +1,1500,1,1501,1,1501,1,1501,1,1501,1,1501,1,1502,1,1502,1,1502,1,1502,1, +1502,1,1503,1,1503,1,1503,1,1503,1,1503,1,1503,1,1504,1,1504,1,1504,1,1504, +1,1504,1,1504,1,1504,1,1504,1,1504,1,1505,1,1505,1,1505,1,1505,1,1505,1, +1505,1,1506,1,1506,1,1506,1,1506,1,1506,1,1507,1,1507,1,1507,1,1507,1,1507, +1,1507,1,1507,1,1507,1,1507,1,1507,1,1508,1,1508,1,1508,1,1508,1,1508,1, +1508,1,1508,1,1508,1,1509,1,1509,1,1509,1,1509,1,1509,1,1509,1,1509,1,1510, +1,1510,1,1510,1,1510,1,1510,1,1510,1,1510,1,1510,1,1511,1,1511,1,1511,1, +1511,1,1511,1,1511,1,1511,1,1511,1,1511,1,1511,1,1511,1,1511,1,1511,1,1511, +1,1511,1,1511,1,1511,1,1511,1,1512,1,1512,1,1512,1,1512,1,1512,1,1512,1, +1512,1,1512,1,1512,1,1512,1,1512,1,1512,1,1513,1,1513,1,1513,1,1513,1,1513, +1,1513,1,1513,1,1513,1,1514,1,1514,1,1514,1,1514,1,1514,1,1514,1,1514,1, +1514,1,1514,1,1515,1,1515,1,1515,1,1515,1,1515,1,1515,1,1515,1,1515,1,1515, +1,1515,1,1515,1,1516,1,1516,1,1516,1,1516,1,1516,1,1516,1,1516,1,1516,1, +1517,1,1517,1,1517,1,1517,1,1517,1,1517,1,1517,1,1517,1,1517,1,1517,1,1518, +1,1518,1,1518,1,1518,1,1518,1,1518,1,1518,1,1518,1,1518,1,1519,1,1519,1, +1519,1,1519,1,1519,1,1520,1,1520,1,1520,1,1520,1,1520,1,1520,1,1520,1,1520, +1,1521,1,1521,1,1521,1,1521,1,1521,1,1521,1,1521,1,1521,1,1521,1,1521,1, +1521,1,1522,1,1522,1,1522,1,1522,1,1522,1,1522,1,1522,1,1522,1,1522,1,1522, +1,1522,1,1522,1,1522,1,1522,1,1522,1,1522,1,1522,1,1522,1,1522,1,1523,1, +1523,1,1523,1,1523,1,1523,1,1523,1,1523,1,1523,1,1523,1,1523,1,1523,1,1524, +1,1524,1,1524,1,1524,1,1524,1,1524,1,1524,1,1524,1,1524,1,1524,1,1525,1, +1525,1,1525,1,1525,1,1525,1,1525,1,1525,1,1525,1,1525,1,1525,1,1525,1,1526, +1,1526,1,1526,1,1526,1,1526,1,1526,1,1526,1,1526,1,1526,1,1526,1,1526,1, +1526,1,1527,1,1527,1,1527,1,1527,1,1528,1,1528,1,1528,1,1528,1,1528,1,1528, +1,1528,1,1528,1,1529,1,1529,1,1529,1,1529,1,1529,1,1529,1,1529,1,1529,1, +1529,1,1530,1,1530,1,1530,1,1530,1,1530,1,1530,1,1530,1,1530,1,1530,1,1530, +1,1530,1,1530,1,1530,1,1531,1,1531,1,1531,1,1531,1,1531,1,1531,1,1531,1, +1531,1,1531,1,1531,1,1531,1,1531,1,1531,1,1532,1,1532,1,1532,1,1532,1,1532, +1,1532,1,1532,1,1532,1,1532,1,1532,1,1532,1,1532,1,1533,1,1533,1,1533,1, +1533,1,1533,1,1533,1,1533,1,1533,1,1533,1,1533,1,1533,1,1533,1,1533,1,1533, +1,1533,1,1534,1,1534,1,1534,1,1534,1,1534,1,1534,1,1534,1,1534,1,1534,1, +1534,1,1534,1,1534,1,1534,1,1534,1,1535,1,1535,1,1535,1,1535,1,1535,1,1535, +1,1535,1,1535,1,1535,1,1536,1,1536,1,1536,1,1536,1,1536,1,1536,1,1536,1, +1536,1,1536,1,1536,1,1537,1,1537,1,1537,1,1537,1,1537,1,1537,1,1537,1,1537, +1,1537,1,1537,1,1538,1,1538,1,1538,1,1538,1,1538,1,1538,1,1538,1,1538,1, +1538,1,1538,1,1538,1,1539,1,1539,1,1539,1,1539,1,1539,1,1539,1,1539,1,1539, +1,1539,1,1539,1,1539,1,1539,1,1539,1,1539,1,1539,1,1540,1,1540,1,1540,1, +1540,1,1540,1,1540,1,1540,1,1540,1,1541,1,1541,1,1541,1,1541,1,1541,1,1541, +1,1541,1,1541,1,1541,1,1541,1,1541,1,1542,1,1542,1,1542,1,1542,1,1542,1, +1542,1,1542,1,1542,1,1542,1,1543,1,1543,1,1543,1,1543,1,1543,1,1543,1,1543, +1,1543,1,1543,1,1544,1,1544,1,1544,1,1544,1,1544,1,1544,1,1544,1,1544,1, +1544,1,1545,1,1545,1,1545,1,1545,1,1545,1,1545,1,1545,1,1545,1,1546,1,1546, +1,1546,1,1546,1,1546,1,1546,1,1546,1,1547,1,1547,1,1547,1,1547,1,1547,1, +1547,1,1548,1,1548,1,1548,1,1548,1,1548,1,1548,1,1548,1,1548,1,1548,1,1548, +1,1548,1,1549,1,1549,1,1549,1,1549,1,1549,1,1549,1,1549,1,1549,1,1549,1, +1549,1,1550,1,1550,1,1550,1,1550,1,1550,1,1550,1,1550,1,1550,1,1550,1,1551, +1,1551,1,1551,1,1551,1,1551,1,1552,1,1552,1,1552,1,1552,1,1552,1,1552,1, +1552,1,1552,1,1552,1,1552,1,1553,1,1553,1,1553,1,1553,1,1553,1,1553,1,1553, +1,1554,1,1554,1,1554,1,1554,1,1554,1,1554,1,1554,1,1554,1,1554,1,1554,1, +1554,1,1554,1,1554,1,1554,1,1555,1,1555,1,1555,1,1555,1,1555,1,1555,1,1555, +1,1556,1,1556,1,1556,1,1556,1,1556,1,1556,1,1556,1,1557,1,1557,1,1557,1, +1557,1,1557,1,1557,1,1557,1,1558,1,1558,1,1558,1,1558,1,1558,1,1558,1,1558, +1,1559,1,1559,1,1559,1,1559,1,1559,1,1559,1,1559,1,1559,1,1560,1,1560,1, +1560,1,1560,1,1560,1,1560,1,1560,1,1560,1,1560,1,1560,1,1560,1,1560,1,1561, +1,1561,1,1561,1,1561,1,1561,1,1561,1,1561,1,1561,1,1561,1,1562,1,1562,1, +1562,1,1562,1,1562,1,1562,1,1562,1,1562,1,1562,1,1562,1,1563,1,1563,1,1563, +1,1563,1,1563,1,1563,1,1564,1,1564,1,1564,1,1564,1,1564,1,1564,1,1564,1, +1565,1,1565,1,1565,1,1565,1,1565,1,1565,1,1565,1,1565,1,1566,1,1566,1,1566, +1,1566,1,1566,1,1566,1,1566,1,1566,1,1566,1,1567,1,1567,1,1567,1,1567,1, +1567,1,1567,1,1567,1,1567,1,1567,1,1568,1,1568,1,1568,1,1568,1,1568,1,1568, +1,1568,1,1568,1,1569,1,1569,1,1569,1,1569,1,1569,1,1569,1,1569,1,1569,1, +1570,1,1570,1,1570,1,1570,1,1570,1,1570,1,1570,1,1570,1,1570,1,1570,1,1570, +1,1570,1,1570,1,1570,1,1570,1,1570,1,1570,1,1570,1,1570,1,1570,1,1570,1, +1571,1,1571,1,1571,1,1571,1,1571,1,1571,1,1571,1,1571,1,1572,1,1572,1,1572, +1,1572,1,1572,1,1572,1,1572,1,1572,1,1572,1,1572,1,1572,1,1572,1,1572,1, +1572,1,1572,1,1572,1,1572,1,1572,1,1572,1,1572,1,1572,1,1572,1,1573,1,1573, +1,1573,1,1573,1,1573,1,1573,1,1573,1,1573,1,1573,1,1573,1,1573,1,1574,1, +1574,1,1574,1,1574,1,1574,1,1574,1,1574,1,1574,1,1574,1,1574,1,1574,1,1574, +1,1574,1,1574,1,1574,1,1574,1,1574,1,1574,1,1574,1,1574,1,1575,1,1575,1, +1575,1,1575,1,1575,1,1575,1,1575,1,1575,1,1575,1,1576,1,1576,1,1576,1,1576, +1,1576,1,1576,1,1576,1,1576,1,1576,1,1576,1,1576,1,1576,1,1576,1,1577,1, +1577,1,1577,1,1577,1,1577,1,1577,1,1577,1,1578,1,1578,1,1578,1,1578,1,1578, +1,1578,1,1578,1,1578,1,1578,1,1578,1,1579,1,1579,1,1579,1,1579,1,1579,1, +1579,1,1579,1,1580,1,1580,1,1580,1,1580,1,1580,1,1580,1,1580,1,1580,1,1580, +1,1580,1,1581,1,1581,1,1581,1,1581,1,1581,1,1581,1,1581,1,1581,1,1581,1, +1581,1,1581,1,1581,1,1581,1,1581,1,1581,1,1581,1,1581,1,1581,1,1581,1,1581, +1,1582,1,1582,1,1582,1,1582,1,1582,1,1582,1,1582,1,1582,1,1582,1,1582,1, +1583,1,1583,1,1583,1,1583,1,1583,1,1583,1,1583,1,1584,1,1584,1,1584,1,1584, +1,1584,1,1584,1,1585,1,1585,1,1585,1,1585,1,1585,1,1585,1,1585,1,1585,1, +1586,1,1586,1,1586,1,1586,1,1586,1,1586,1,1586,1,1587,1,1587,1,1587,1,1587, +1,1587,1,1587,1,1587,1,1587,1,1587,1,1587,1,1587,1,1587,1,1587,1,1587,1, +1587,1,1587,1,1587,1,1588,1,1588,1,1588,1,1588,1,1588,1,1588,1,1588,1,1588, +1,1589,1,1589,1,1589,1,1589,1,1589,1,1589,1,1590,1,1590,1,1590,1,1590,1, +1590,1,1591,1,1591,1,1591,1,1591,1,1591,1,1591,1,1591,1,1591,1,1592,1,1592, +1,1592,1,1592,1,1592,1,1592,1,1593,1,1593,1,1593,1,1593,1,1593,1,1593,1, +1593,1,1593,1,1593,1,1594,1,1594,1,1594,1,1594,1,1594,1,1594,1,1594,1,1594, +1,1595,1,1595,1,1595,1,1595,1,1595,1,1595,1,1595,1,1596,1,1596,1,1596,1, +1596,1,1596,1,1596,1,1596,1,1596,1,1596,1,1596,1,1596,1,1596,1,1596,1,1596, +1,1596,1,1596,1,1597,1,1597,1,1597,1,1597,1,1597,1,1597,1,1597,1,1597,1, +1597,1,1597,1,1597,1,1597,1,1597,1,1597,1,1597,1,1597,1,1597,1,1597,1,1597, +1,1597,1,1598,1,1598,1,1598,1,1598,1,1598,1,1598,1,1599,1,1599,1,1599,1, +1599,1,1599,1,1599,1,1599,1,1599,1,1599,1,1599,1,1599,1,1599,1,1600,1,1600, +1,1600,1,1600,1,1600,1,1600,1,1600,1,1600,1,1600,1,1600,1,1600,1,1600,1, +1600,1,1601,1,1601,1,1601,1,1601,1,1601,1,1601,1,1601,1,1601,1,1601,1,1601, +1,1601,1,1602,1,1602,1,1602,1,1602,1,1602,1,1602,1,1602,1,1603,1,1603,1, +1603,1,1603,1,1604,1,1604,1,1604,1,1604,1,1604,1,1605,1,1605,1,1605,1,1605, +1,1605,1,1606,1,1606,1,1606,1,1606,1,1606,1,1606,1,1607,1,1607,1,1607,1, +1607,1,1607,1,1608,1,1608,1,1608,1,1608,1,1608,1,1608,1,1609,1,1609,1,1609, +1,1609,1,1609,1,1609,1,1609,1,1609,1,1610,1,1610,1,1610,1,1610,1,1610,1, +1611,1,1611,1,1611,1,1611,1,1611,1,1611,1,1611,1,1612,1,1612,1,1612,1,1612, +1,1612,1,1612,1,1612,1,1612,1,1612,1,1612,1,1612,1,1612,1,1612,1,1612,1, +1612,1,1612,1,1612,1,1612,1,1613,1,1613,1,1613,1,1613,1,1613,1,1613,1,1613, +1,1613,1,1613,1,1613,1,1614,1,1614,1,1614,1,1614,1,1614,1,1615,1,1615,1, +1615,1,1615,1,1616,1,1616,1,1616,1,1616,1,1616,1,1616,1,1616,1,1616,1,1616, +1,1616,1,1616,1,1617,1,1617,1,1617,1,1617,1,1617,1,1617,1,1618,1,1618,1, +1618,1,1618,1,1618,1,1618,1,1618,1,1618,1,1618,1,1618,1,1618,1,1618,1,1618, +1,1618,1,1618,1,1619,1,1619,1,1619,1,1619,1,1619,1,1620,1,1620,1,1620,1, +1620,1,1620,1,1620,1,1620,1,1620,1,1620,1,1620,1,1621,1,1621,1,1621,1,1621, +1,1621,1,1621,1,1621,1,1621,1,1621,1,1621,1,1621,1,1621,1,1622,1,1622,1, +1622,1,1622,1,1622,1,1622,1,1622,1,1623,1,1623,1,1623,1,1623,1,1623,1,1623, +1,1623,1,1623,1,1623,1,1623,1,1623,1,1623,1,1623,1,1623,1,1624,1,1624,1, +1624,1,1624,1,1625,1,1625,1,1625,1,1625,1,1625,1,1625,1,1626,1,1626,1,1626, +1,1626,1,1626,1,1626,1,1627,1,1627,1,1627,1,1627,1,1627,1,1627,1,1627,1, +1628,1,1628,1,1628,1,1628,1,1628,1,1628,1,1628,1,1628,1,1628,1,1628,1,1628, +1,1629,1,1629,1,1629,1,1629,1,1629,1,1629,1,1629,1,1629,1,1629,1,1629,1, +1629,1,1629,1,1629,1,1630,1,1630,1,1630,1,1630,1,1630,1,1630,1,1630,1,1630, +1,1630,1,1630,1,1630,1,1630,1,1630,1,1631,1,1631,1,1631,1,1631,1,1631,1, +1631,1,1631,1,1631,1,1632,1,1632,1,1632,1,1632,1,1632,1,1632,1,1632,1,1633, +1,1633,1,1633,1,1633,1,1633,1,1633,1,1633,1,1634,1,1634,1,1634,1,1634,1, +1634,1,1634,1,1634,1,1634,1,1635,1,1635,1,1635,1,1635,1,1635,1,1635,1,1635, +1,1636,1,1636,1,1636,1,1636,1,1636,1,1636,1,1636,1,1636,1,1636,1,1636,1, +1636,1,1636,1,1636,1,1636,1,1636,1,1637,1,1637,1,1637,1,1637,1,1637,1,1637, +1,1637,1,1637,1,1637,1,1637,1,1637,1,1638,1,1638,1,1638,1,1638,1,1638,1, +1638,1,1638,1,1638,1,1638,1,1639,1,1639,1,1639,1,1639,1,1639,1,1640,1,1640, +1,1640,1,1640,1,1640,1,1640,1,1640,1,1640,1,1640,1,1640,1,1641,1,1641,1, +1641,1,1641,1,1641,1,1641,1,1641,1,1641,1,1641,1,1642,1,1642,1,1642,1,1642, +1,1642,1,1642,1,1642,1,1642,1,1643,1,1643,1,1643,1,1643,1,1643,1,1643,1, +1643,1,1643,1,1643,1,1643,1,1643,1,1643,1,1644,1,1644,1,1644,1,1644,1,1644, +1,1644,1,1644,1,1645,1,1645,1,1645,1,1645,1,1645,1,1646,1,1646,1,1646,1, +1646,1,1646,1,1646,1,1646,1,1646,1,1646,1,1646,1,1646,1,1646,1,1646,1,1646, +1,1646,1,1646,1,1647,1,1647,1,1647,1,1647,1,1647,1,1647,1,1647,1,1647,1, +1647,1,1648,1,1648,1,1648,1,1648,1,1648,1,1648,1,1648,1,1648,1,1648,1,1648, +1,1648,1,1648,1,1648,1,1648,1,1649,1,1649,1,1649,1,1649,1,1649,1,1649,1, +1649,1,1649,1,1649,1,1649,1,1650,1,1650,1,1650,1,1650,1,1650,1,1650,1,1650, +1,1650,1,1650,1,1651,1,1651,1,1651,1,1651,1,1651,1,1651,1,1651,1,1651,1, +1651,1,1651,1,1651,1,1651,1,1651,1,1652,1,1652,1,1652,1,1652,1,1652,1,1652, +1,1652,1,1652,1,1652,1,1652,1,1652,1,1653,1,1653,1,1653,1,1653,1,1654,1, +1654,1,1654,1,1654,1,1654,1,1654,1,1655,1,1655,1,1655,1,1655,1,1655,1,1655, +1,1655,1,1655,1,1655,1,1655,1,1655,1,1655,1,1655,1,1655,1,1655,1,1655,1, +1656,1,1656,1,1656,1,1656,1,1656,1,1656,1,1656,1,1656,1,1656,1,1656,1,1656, +1,1656,1,1656,1,1657,1,1657,1,1657,1,1657,1,1657,1,1657,1,1657,1,1657,1, +1657,1,1657,1,1657,1,1657,1,1657,1,1657,1,1657,1,1657,1,1657,1,1657,1,1658, +1,1658,1,1658,1,1658,1,1658,1,1658,1,1658,1,1659,1,1659,1,1659,1,1659,1, +1659,1,1659,1,1659,1,1659,1,1659,1,1659,1,1659,1,1659,1,1660,1,1660,1,1660, +1,1660,1,1660,1,1660,1,1660,1,1660,1,1660,1,1660,1,1660,1,1660,1,1660,1, +1660,1,1660,1,1660,1,1660,1,1660,1,1660,1,1660,1,1660,1,1661,1,1661,1,1661, +1,1661,1,1661,1,1661,1,1661,1,1661,1,1662,1,1662,1,1662,1,1662,1,1662,1, +1662,1,1662,1,1662,1,1662,1,1663,1,1663,1,1663,1,1663,1,1663,1,1663,1,1663, +1,1663,1,1663,1,1663,1,1663,1,1663,1,1663,1,1663,1,1663,1,1663,1,1663,1, +1663,1,1663,1,1663,1,1663,1,1663,1,1663,1,1664,1,1664,1,1664,1,1664,1,1664, +1,1664,1,1664,1,1664,1,1665,1,1665,1,1665,1,1665,1,1665,1,1665,1,1665,1, +1665,1,1665,1,1665,1,1665,1,1665,1,1665,1,1665,1,1665,1,1665,1,1665,1,1665, +1,1666,1,1666,1,1666,1,1666,1,1666,1,1666,1,1666,1,1666,1,1666,1,1666,1, +1666,1,1666,1,1666,1,1666,1,1666,1,1666,1,1667,1,1667,1,1667,1,1667,1,1667, +1,1667,1,1667,1,1667,1,1667,1,1667,1,1667,1,1667,1,1667,1,1667,1,1668,1, +1668,1,1668,1,1668,1,1669,1,1669,1,1669,1,1669,1,1669,1,1670,1,1670,1,1670, +1,1670,1,1670,1,1670,1,1670,1,1670,1,1670,1,1671,1,1671,1,1671,1,1671,1, +1671,1,1671,1,1671,1,1671,1,1671,1,1671,1,1671,1,1671,1,1672,1,1672,1,1672, +1,1672,1,1672,1,1672,1,1672,1,1673,1,1673,1,1673,1,1673,1,1673,1,1673,1, +1674,1,1674,1,1674,1,1674,1,1674,1,1674,1,1674,1,1674,1,1674,1,1674,1,1674, +1,1675,1,1675,1,1675,1,1675,1,1675,1,1675,1,1675,1,1675,1,1675,1,1675,1, +1675,1,1675,1,1676,1,1676,1,1676,1,1676,1,1676,1,1676,1,1676,1,1677,1,1677, +1,1677,1,1677,1,1677,1,1677,1,1678,1,1678,1,1678,1,1678,1,1678,1,1678,1, +1678,1,1678,1,1679,1,1679,1,1679,1,1679,1,1679,1,1679,1,1679,1,1679,1,1679, +1,1679,1,1680,1,1680,1,1680,1,1680,1,1680,1,1681,1,1681,1,1681,1,1681,1, +1681,1,1681,1,1681,1,1682,1,1682,1,1682,1,1682,1,1682,1,1682,1,1682,1,1682, +1,1682,1,1683,1,1683,1,1683,1,1683,1,1683,1,1683,1,1683,1,1683,1,1683,1, +1684,1,1684,1,1684,1,1684,1,1685,1,1685,1,1685,1,1685,1,1685,1,1686,1,1686, +1,1686,1,1686,1,1686,1,1686,1,1686,1,1686,1,1686,1,1686,1,1686,1,1686,1, +1686,1,1686,1,1686,1,1686,1,1686,1,1687,1,1687,1,1687,1,1687,1,1687,1,1687, +1,1687,1,1687,1,1687,1,1687,1,1687,1,1687,1,1687,1,1687,1,1687,1,1687,1, +1688,1,1688,1,1688,1,1688,1,1688,1,1689,1,1689,1,1689,1,1689,1,1689,1,1689, +1,1689,1,1689,1,1689,1,1690,1,1690,1,1690,1,1690,1,1690,1,1690,1,1690,1, +1690,1,1690,1,1690,1,1690,1,1690,1,1690,1,1690,1,1690,1,1691,1,1691,1,1691, +1,1691,1,1691,1,1691,1,1691,1,1692,1,1692,1,1692,1,1692,1,1692,1,1692,1, +1692,1,1693,1,1693,1,1693,1,1693,1,1693,1,1693,1,1693,1,1693,1,1693,1,1693, +1,1693,1,1694,1,1694,1,1694,1,1694,1,1694,1,1695,1,1695,1,1695,1,1695,1, +1696,1,1696,1,1696,1,1696,1,1696,1,1697,1,1697,1,1697,1,1697,1,1697,1,1697, +1,1698,1,1698,1,1698,1,1698,1,1698,1,1698,1,1698,1,1698,1,1698,1,1698,1, +1698,1,1698,1,1698,1,1698,1,1698,1,1698,1,1698,1,1698,1,1698,1,1699,1,1699, +1,1699,1,1699,1,1699,1,1700,1,1700,1,1700,1,1700,1,1700,1,1700,1,1700,1, +1700,1,1700,1,1700,1,1700,1,1700,1,1700,1,1700,1,1700,1,1700,1,1700,1,1700, +1,1700,1,1700,1,1700,1,1700,1,1701,1,1701,1,1701,1,1701,1,1701,1,1701,1, +1701,1,1701,1,1701,1,1701,1,1701,1,1701,1,1701,1,1701,1,1701,1,1701,1,1701, +1,1701,1,1701,1,1701,1,1701,1,1701,1,1702,1,1702,1,1702,1,1702,1,1702,1, +1702,1,1702,1,1702,1,1702,1,1702,1,1703,1,1703,1,1703,1,1703,1,1703,1,1703, +1,1703,1,1703,1,1703,1,1704,1,1704,1,1704,1,1704,1,1704,1,1704,1,1704,1, +1704,1,1704,1,1705,1,1705,1,1705,1,1705,1,1705,1,1706,1,1706,1,1706,1,1706, +1,1706,1,1707,1,1707,1,1707,1,1707,1,1707,1,1707,1,1707,1,1707,1,1708,1, +1708,1,1708,1,1708,1,1708,1,1708,1,1708,1,1708,1,1708,1,1708,1,1708,1,1708, +1,1708,1,1708,1,1708,1,1708,1,1708,1,1708,1,1708,1,1708,1,1708,1,1708,1, +1709,1,1709,1,1709,1,1709,1,1709,1,1709,1,1709,1,1709,1,1709,1,1709,1,1709, +1,1709,1,1709,1,1709,1,1709,1,1709,1,1709,1,1709,1,1709,1,1709,1,1709,1, +1709,1,1709,1,1709,1,1709,1,1710,1,1710,1,1710,1,1710,1,1710,1,1710,1,1710, +1,1711,1,1711,1,1711,1,1711,1,1711,1,1711,1,1712,1,1712,1,1712,1,1712,1, +1712,1,1712,1,1712,1,1712,1,1712,1,1712,1,1712,1,1712,1,1712,1,1712,1,1713, +1,1713,1,1713,1,1713,1,1713,1,1713,1,1713,1,1714,1,1714,1,1714,1,1714,1, +1714,1,1714,1,1715,1,1715,1,1715,1,1715,1,1715,1,1715,1,1715,1,1715,1,1715, +1,1715,1,1715,1,1715,1,1716,1,1716,1,1716,1,1716,1,1716,1,1716,1,1716,1, +1716,1,1717,1,1717,1,1717,1,1717,1,1717,1,1717,1,1717,1,1717,1,1717,1,1718, +1,1718,1,1718,1,1718,1,1718,1,1718,1,1718,1,1719,1,1719,1,1719,1,1719,1, +1720,1,1720,1,1720,1,1720,1,1720,1,1720,3,1720,23338,8,1720,1,1721,1,1721, +1,1721,1,1721,1,1721,1,1721,1,1721,1,1721,1,1721,1,1721,1,1722,1,1722,1, +1722,1,1722,1,1722,1,1722,1,1722,1,1722,1,1722,1,1722,1,1723,1,1723,1,1723, +1,1723,1,1723,1,1723,1,1723,1,1723,1,1723,1,1723,1,1723,1,1723,1,1723,1, +1723,1,1723,1,1723,1,1723,1,1723,1,1723,1,1723,1,1723,1,1723,1,1723,1,1723, +1,1724,1,1724,1,1724,1,1724,1,1724,1,1725,1,1725,1,1725,1,1725,1,1725,1, +1725,1,1726,1,1726,1,1726,1,1726,1,1726,1,1726,1,1726,1,1726,1,1726,1,1726, +1,1726,1,1727,1,1727,1,1727,1,1727,1,1727,1,1727,1,1727,1,1727,1,1727,1, +1728,1,1728,1,1728,1,1728,1,1728,1,1728,1,1728,1,1728,1,1728,1,1728,1,1728, +1,1728,1,1728,1,1728,1,1729,1,1729,1,1729,1,1729,1,1729,1,1729,1,1729,1, +1729,1,1729,1,1729,1,1729,1,1729,1,1729,1,1729,1,1729,1,1729,1,1729,1,1729, +1,1729,1,1729,1,1729,1,1729,1,1729,1,1730,1,1730,1,1730,1,1730,1,1730,1, +1730,1,1730,1,1730,1,1730,1,1731,1,1731,1,1731,1,1731,1,1731,1,1731,1,1731, +1,1731,1,1732,1,1732,1,1732,1,1732,1,1732,1,1733,1,1733,1,1733,1,1733,1, +1733,1,1733,1,1733,1,1733,1,1733,1,1733,1,1733,1,1733,1,1733,1,1733,1,1733, +1,1733,1,1733,1,1733,1,1733,1,1733,1,1734,1,1734,1,1734,1,1734,1,1734,1, +1734,1,1735,1,1735,1,1735,1,1735,1,1735,1,1735,1,1735,1,1735,1,1736,1,1736, +1,1736,1,1736,1,1736,1,1736,1,1736,1,1736,1,1737,1,1737,1,1737,1,1737,1, +1737,1,1737,1,1737,1,1737,1,1737,1,1737,1,1737,1,1737,1,1737,1,1738,1,1738, +1,1738,1,1738,1,1738,1,1738,1,1738,1,1738,1,1738,1,1738,1,1738,1,1738,1, +1738,1,1738,1,1738,1,1738,1,1738,1,1738,1,1739,1,1739,1,1739,1,1739,1,1739, +1,1739,1,1739,1,1739,1,1739,1,1739,1,1739,1,1740,1,1740,1,1740,1,1740,1, +1740,1,1740,1,1740,1,1740,1,1740,1,1740,1,1741,1,1741,1,1741,1,1741,1,1741, +1,1741,1,1742,1,1742,1,1742,1,1742,1,1742,1,1742,1,1742,1,1743,1,1743,1, +1743,1,1743,1,1743,1,1743,1,1743,1,1743,1,1743,1,1743,1,1743,1,1744,1,1744, +1,1744,1,1744,1,1744,1,1744,1,1744,1,1744,1,1744,1,1744,1,1744,1,1744,1, +1744,1,1744,1,1744,1,1744,1,1744,1,1744,1,1744,1,1744,1,1745,1,1745,1,1745, +1,1745,1,1745,1,1745,1,1745,1,1745,1,1745,1,1745,1,1745,1,1745,1,1745,1, +1745,1,1745,1,1746,1,1746,1,1746,1,1746,1,1746,1,1746,1,1746,1,1746,1,1746, +1,1746,1,1746,1,1746,1,1746,1,1747,1,1747,1,1747,1,1747,1,1747,1,1747,1, +1747,1,1747,1,1747,1,1747,1,1747,1,1747,1,1747,1,1747,1,1748,1,1748,1,1748, +1,1748,1,1748,1,1748,1,1748,1,1748,1,1748,1,1748,1,1748,1,1749,1,1749,1, +1749,1,1749,1,1749,1,1749,1,1749,1,1749,1,1749,1,1749,1,1749,1,1749,1,1749, +1,1749,1,1750,1,1750,1,1750,1,1750,1,1750,1,1750,1,1750,1,1750,1,1750,1, +1750,1,1750,1,1750,1,1750,1,1750,1,1750,1,1750,1,1750,1,1750,1,1750,1,1750, +1,1751,1,1751,1,1751,1,1751,1,1751,1,1751,1,1751,1,1751,1,1751,1,1751,1, +1751,1,1751,1,1751,1,1751,1,1751,1,1751,1,1751,1,1751,1,1751,1,1752,1,1752, +1,1752,1,1752,1,1752,1,1752,1,1752,1,1752,1,1752,1,1752,1,1752,1,1752,1, +1752,1,1752,1,1752,1,1752,1,1752,1,1752,1,1752,1,1752,1,1753,1,1753,1,1753, +1,1753,1,1753,1,1753,1,1753,1,1753,1,1753,1,1753,1,1753,1,1753,1,1753,1, +1753,1,1753,1,1753,1,1753,1,1754,1,1754,1,1754,1,1754,1,1754,1,1754,1,1754, +1,1754,1,1754,1,1754,1,1754,1,1754,1,1754,1,1754,1,1754,1,1754,1,1754,1, +1754,1,1754,1,1754,1,1755,1,1755,1,1755,1,1755,1,1755,1,1755,1,1755,1,1755, +1,1755,1,1755,1,1755,1,1755,1,1755,1,1755,1,1755,1,1756,1,1756,1,1756,1, +1756,1,1756,1,1756,1,1756,1,1756,1,1756,1,1756,1,1756,1,1757,1,1757,1,1757, +1,1757,1,1757,1,1757,1,1757,1,1757,1,1757,1,1757,1,1757,1,1757,1,1758,1, +1758,1,1758,1,1758,1,1758,1,1759,1,1759,1,1759,1,1759,1,1759,1,1759,1,1759, +1,1759,1,1760,1,1760,1,1760,1,1760,1,1760,1,1760,1,1761,1,1761,1,1761,1, +1761,1,1761,1,1761,1,1761,1,1761,1,1762,1,1762,1,1762,1,1762,1,1762,1,1762, +1,1762,1,1763,1,1763,1,1763,1,1763,1,1763,1,1763,1,1763,1,1764,1,1764,1, +1764,1,1764,1,1764,1,1764,1,1764,1,1765,1,1765,1,1765,1,1765,1,1765,1,1765, +1,1765,1,1765,1,1765,1,1765,1,1765,1,1765,1,1765,1,1765,1,1765,1,1766,1, +1766,1,1766,1,1766,1,1766,1,1766,1,1766,1,1766,1,1766,1,1766,1,1766,1,1766, +1,1766,1,1767,1,1767,1,1767,1,1767,1,1767,1,1767,1,1768,1,1768,1,1768,1, +1768,1,1768,1,1768,1,1768,1,1768,1,1768,1,1768,1,1769,1,1769,1,1769,1,1769, +1,1769,1,1769,1,1769,1,1769,1,1769,1,1769,1,1769,1,1769,1,1770,1,1770,1, +1770,1,1770,1,1770,1,1770,1,1770,1,1770,1,1770,1,1770,1,1770,1,1770,1,1770, +1,1770,1,1770,1,1770,1,1770,1,1771,1,1771,1,1771,1,1771,1,1771,1,1771,1, +1771,1,1771,1,1771,1,1771,1,1771,1,1771,1,1771,1,1771,1,1772,1,1772,1,1772, +1,1772,1,1772,1,1772,1,1772,1,1772,1,1772,1,1772,1,1772,1,1772,1,1772,1, +1773,1,1773,1,1773,1,1773,1,1773,1,1773,1,1773,1,1773,1,1773,1,1773,1,1773, +1,1774,1,1774,1,1774,1,1774,1,1774,1,1774,1,1774,1,1774,1,1774,1,1774,1, +1774,1,1774,1,1774,1,1774,1,1774,1,1774,1,1774,1,1775,1,1775,1,1775,1,1775, +1,1775,1,1775,1,1775,1,1775,1,1775,1,1775,1,1776,1,1776,1,1776,1,1776,1, +1776,1,1776,1,1776,1,1777,1,1777,1,1777,1,1777,1,1777,1,1777,1,1777,1,1777, +1,1777,1,1777,1,1777,1,1777,1,1777,1,1777,1,1778,1,1778,1,1778,1,1778,1, +1778,1,1778,1,1778,1,1778,1,1779,1,1779,1,1779,1,1779,1,1779,1,1779,1,1779, +1,1779,1,1780,1,1780,1,1780,1,1780,1,1780,1,1780,1,1780,1,1780,1,1781,1, +1781,1,1781,1,1781,1,1781,1,1781,1,1781,1,1781,1,1782,1,1782,1,1782,1,1782, +1,1782,1,1782,1,1782,1,1782,1,1783,1,1783,1,1783,1,1783,1,1783,1,1783,1, +1783,1,1783,1,1783,1,1783,1,1783,1,1784,1,1784,1,1784,1,1784,1,1784,1,1784, +1,1784,1,1784,1,1785,1,1785,1,1785,1,1785,1,1785,1,1785,1,1785,1,1785,1, +1786,1,1786,1,1786,1,1786,1,1786,1,1786,1,1786,1,1786,1,1786,1,1786,1,1786, +1,1786,1,1786,1,1787,1,1787,1,1787,1,1787,1,1787,1,1787,1,1787,1,1787,1, +1788,1,1788,1,1788,1,1788,1,1788,1,1788,1,1788,1,1788,1,1788,1,1788,1,1788, +1,1788,1,1788,1,1788,1,1788,1,1788,1,1788,1,1789,1,1789,1,1789,1,1789,1, +1789,1,1789,1,1789,1,1789,1,1789,1,1789,1,1789,1,1790,1,1790,1,1790,1,1790, +1,1790,1,1790,1,1790,1,1791,1,1791,1,1791,1,1791,1,1791,1,1791,1,1791,1, +1791,1,1791,1,1791,1,1791,1,1791,1,1792,1,1792,1,1792,1,1792,1,1792,1,1793, +1,1793,1,1793,1,1793,1,1793,1,1793,1,1793,1,1793,1,1794,1,1794,1,1794,1, +1794,1,1795,1,1795,1,1795,1,1795,1,1795,1,1795,1,1795,1,1796,1,1796,1,1796, +1,1796,1,1796,1,1796,1,1796,1,1796,1,1796,1,1796,1,1797,1,1797,1,1797,1, +1797,1,1797,1,1797,1,1797,1,1798,1,1798,1,1798,1,1798,1,1798,1,1798,1,1798, +1,1798,1,1798,1,1798,1,1799,1,1799,1,1799,1,1799,1,1799,1,1799,1,1799,1, +1799,1,1799,1,1799,1,1799,1,1799,1,1799,1,1800,1,1800,1,1800,1,1800,1,1800, +1,1800,1,1800,1,1800,1,1800,1,1800,1,1800,1,1800,1,1800,1,1800,1,1800,1, +1800,1,1800,1,1800,1,1800,1,1800,1,1801,1,1801,1,1801,1,1801,1,1801,1,1801, +1,1801,1,1801,1,1801,1,1801,1,1801,1,1801,1,1801,1,1801,1,1801,1,1801,1, +1801,1,1801,1,1801,1,1801,1,1802,1,1802,1,1802,1,1802,1,1802,1,1802,1,1802, +1,1802,1,1802,1,1802,1,1802,1,1802,1,1803,1,1803,1,1803,1,1803,1,1803,1, +1803,1,1803,1,1803,1,1804,1,1804,1,1804,1,1804,1,1804,1,1804,1,1804,1,1805, +1,1805,1,1805,1,1805,1,1805,1,1805,1,1805,1,1805,1,1805,1,1805,1,1805,1, +1805,1,1805,1,1806,1,1806,1,1806,1,1806,1,1806,1,1806,1,1807,1,1807,1,1807, +1,1807,1,1807,1,1807,1,1807,1,1807,1,1807,1,1807,1,1807,1,1807,1,1807,1, +1807,1,1808,1,1808,1,1808,1,1808,1,1808,1,1808,1,1808,1,1808,1,1808,1,1808, +1,1808,1,1808,1,1808,1,1808,1,1808,1,1808,1,1808,1,1808,1,1809,1,1809,1, +1809,1,1809,1,1809,1,1809,1,1809,1,1809,1,1809,1,1809,1,1809,1,1809,1,1809, +1,1809,1,1809,1,1809,1,1809,1,1809,1,1810,1,1810,1,1810,1,1810,1,1810,1, +1810,1,1810,1,1810,1,1810,1,1810,1,1810,1,1810,1,1810,1,1810,1,1810,1,1810, +1,1811,1,1811,1,1811,1,1811,1,1811,1,1811,1,1811,1,1811,1,1811,1,1811,1, +1811,1,1811,1,1811,1,1811,1,1811,1,1811,1,1811,1,1812,1,1812,1,1812,1,1812, +1,1812,1,1812,1,1812,1,1812,1,1812,1,1812,1,1812,1,1812,1,1812,1,1812,1, +1812,1,1812,1,1812,1,1813,1,1813,1,1813,1,1813,1,1813,1,1813,1,1813,1,1813, +1,1813,1,1813,1,1813,1,1813,1,1813,1,1813,1,1813,1,1813,1,1813,1,1813,1, +1813,1,1813,1,1814,1,1814,1,1814,1,1814,1,1814,1,1814,1,1814,1,1814,1,1814, +1,1814,1,1814,1,1814,1,1814,1,1814,1,1814,1,1814,1,1814,1,1814,1,1814,1, +1814,1,1814,1,1815,1,1815,1,1815,1,1815,1,1815,1,1815,1,1815,1,1815,1,1815, +1,1815,1,1815,1,1815,1,1815,1,1815,1,1815,1,1815,1,1815,1,1815,1,1815,1, +1815,1,1815,1,1816,1,1816,1,1816,1,1816,1,1816,1,1816,1,1816,1,1816,1,1816, +1,1816,1,1816,1,1816,1,1816,1,1816,1,1816,1,1816,1,1816,1,1816,1,1816,1, +1816,1,1817,1,1817,1,1817,1,1817,1,1817,1,1817,1,1817,1,1817,1,1817,1,1817, +1,1817,1,1817,1,1817,1,1818,1,1818,1,1818,1,1818,1,1818,1,1818,1,1818,1, +1818,1,1818,1,1818,1,1818,1,1818,1,1818,1,1818,1,1818,1,1818,1,1819,1,1819, +1,1819,1,1819,1,1819,1,1819,1,1819,1,1819,1,1819,1,1819,1,1819,1,1819,1, +1819,1,1819,1,1819,1,1820,1,1820,1,1820,1,1820,1,1820,1,1820,1,1820,1,1820, +1,1820,1,1820,1,1820,1,1820,1,1820,1,1820,1,1820,1,1820,1,1821,1,1821,1, +1821,1,1821,1,1821,1,1821,1,1821,1,1821,1,1821,1,1821,1,1821,1,1821,1,1821, +1,1821,1,1822,1,1822,1,1822,1,1822,1,1822,1,1822,1,1822,1,1822,1,1822,1, +1822,1,1822,1,1822,1,1822,1,1822,1,1823,1,1823,1,1823,1,1823,1,1823,1,1823, +1,1823,1,1823,1,1823,1,1823,1,1823,1,1823,1,1823,1,1823,1,1823,1,1824,1, +1824,1,1824,1,1824,1,1824,1,1824,1,1824,1,1824,1,1824,1,1824,1,1824,1,1824, +1,1824,1,1824,1,1824,1,1824,1,1824,1,1824,1,1824,1,1825,1,1825,1,1825,1, +1825,1,1825,1,1825,1,1825,1,1825,1,1825,1,1825,1,1825,1,1825,1,1825,1,1825, +1,1825,1,1825,1,1825,1,1825,1,1825,1,1826,1,1826,1,1826,1,1826,1,1826,1, +1826,1,1826,1,1826,1,1826,1,1826,1,1826,1,1826,1,1826,1,1826,1,1826,1,1827, +1,1827,1,1827,1,1827,1,1827,1,1827,1,1827,1,1827,1,1827,1,1827,1,1827,1, +1827,1,1827,1,1827,1,1828,1,1828,1,1828,1,1828,1,1828,1,1828,1,1828,1,1828, +1,1828,1,1829,1,1829,1,1829,1,1829,1,1829,1,1829,1,1829,1,1829,1,1830,1, +1830,1,1830,1,1830,1,1830,1,1830,1,1831,1,1831,1,1831,1,1831,1,1831,1,1831, +1,1831,1,1831,1,1831,1,1831,1,1831,1,1831,1,1831,1,1831,1,1831,1,1831,1, +1831,1,1831,1,1831,1,1832,1,1832,1,1832,1,1832,1,1832,1,1832,1,1832,1,1832, +1,1832,1,1832,1,1832,1,1832,1,1833,1,1833,1,1833,1,1833,1,1833,1,1833,1, +1833,1,1833,1,1833,1,1833,1,1833,1,1833,1,1833,1,1833,1,1834,1,1834,1,1834, +1,1834,1,1834,1,1834,1,1834,1,1834,1,1834,1,1834,1,1835,1,1835,1,1835,1, +1835,1,1835,1,1835,1,1835,1,1836,1,1836,1,1836,1,1836,1,1836,1,1836,1,1836, +1,1836,1,1836,1,1836,1,1836,1,1836,1,1836,1,1836,1,1836,1,1837,1,1837,1, +1837,1,1837,1,1837,1,1837,1,1837,1,1837,1,1837,1,1837,1,1837,1,1837,1,1837, +1,1837,1,1837,1,1838,1,1838,1,1838,1,1838,1,1838,1,1838,1,1838,1,1838,1, +1838,1,1838,1,1838,1,1838,1,1838,1,1838,1,1838,1,1838,1,1839,1,1839,1,1839, +1,1839,1,1839,1,1839,1,1839,1,1839,1,1839,1,1839,1,1839,1,1840,1,1840,1, +1840,1,1840,1,1840,1,1840,1,1840,1,1840,1,1840,1,1840,1,1840,1,1840,1,1840, +1,1840,1,1840,1,1841,1,1841,1,1841,1,1841,1,1841,1,1841,1,1841,1,1841,1, +1841,1,1841,1,1841,1,1841,1,1841,1,1841,1,1842,1,1842,1,1842,1,1842,1,1842, +1,1842,1,1842,1,1842,1,1842,1,1842,1,1842,1,1842,1,1843,1,1843,1,1843,1, +1843,1,1843,1,1843,1,1843,1,1843,1,1843,1,1843,1,1843,1,1843,1,1843,1,1843, +1,1843,1,1843,1,1843,1,1843,1,1843,1,1843,1,1843,1,1843,1,1843,1,1843,1, +1843,1,1844,1,1844,1,1844,1,1844,1,1844,1,1844,1,1844,1,1844,1,1844,1,1844, +1,1844,1,1844,1,1844,1,1844,1,1844,1,1844,1,1844,1,1844,1,1844,1,1844,1, +1845,1,1845,1,1845,1,1845,1,1845,1,1845,1,1845,1,1845,1,1845,1,1845,1,1845, +1,1846,1,1846,1,1846,1,1846,1,1846,1,1846,1,1846,1,1846,1,1846,1,1846,1, +1846,1,1846,1,1847,1,1847,1,1847,1,1847,1,1847,1,1847,1,1847,1,1847,1,1847, +1,1847,1,1847,1,1848,1,1848,1,1848,1,1848,1,1848,1,1848,1,1848,1,1848,1, +1848,1,1848,1,1848,1,1848,1,1849,1,1849,1,1849,1,1849,1,1849,1,1849,1,1849, +1,1849,1,1849,1,1849,1,1849,1,1849,1,1849,1,1849,1,1849,1,1849,1,1849,1, +1849,1,1849,1,1849,1,1849,1,1850,1,1850,1,1850,1,1850,1,1850,1,1850,1,1850, +1,1850,1,1850,1,1850,1,1850,1,1850,1,1851,1,1851,1,1851,1,1851,1,1851,1, +1851,1,1851,1,1851,1,1851,1,1851,1,1851,1,1851,1,1851,1,1851,1,1851,1,1852, +1,1852,1,1852,1,1852,1,1852,1,1852,1,1852,1,1852,1,1852,1,1852,1,1852,1, +1852,1,1852,1,1852,1,1852,1,1852,1,1853,1,1853,1,1853,1,1853,1,1853,1,1853, +1,1853,1,1853,1,1853,1,1853,1,1853,1,1853,1,1853,1,1853,1,1854,1,1854,1, +1854,1,1854,1,1854,1,1854,1,1854,1,1854,1,1854,1,1854,1,1854,1,1854,1,1854, +1,1854,1,1854,1,1854,1,1854,1,1854,1,1855,1,1855,1,1855,1,1855,1,1855,1, +1855,1,1855,1,1855,1,1855,1,1855,1,1855,1,1856,1,1856,1,1856,1,1856,1,1856, +1,1856,1,1856,1,1856,1,1856,1,1856,1,1856,1,1856,1,1856,1,1856,1,1856,1, +1856,1,1856,1,1857,1,1857,1,1857,1,1857,1,1857,1,1857,1,1857,1,1857,1,1857, +1,1857,1,1857,1,1857,1,1857,1,1857,1,1857,1,1857,1,1857,1,1857,1,1858,1, +1858,1,1858,1,1858,1,1858,1,1858,1,1858,1,1858,1,1858,1,1858,1,1858,1,1858, +1,1858,1,1858,1,1859,1,1859,1,1859,1,1859,1,1859,1,1859,1,1859,1,1859,1, +1859,1,1859,1,1859,1,1859,1,1859,1,1859,1,1859,1,1860,1,1860,1,1860,1,1860, +1,1860,1,1860,1,1860,1,1860,1,1860,1,1860,1,1860,1,1860,1,1860,1,1860,1, +1860,1,1860,1,1861,1,1861,1,1861,1,1861,1,1861,1,1861,1,1861,1,1861,1,1861, +1,1861,1,1861,1,1862,1,1862,1,1862,1,1862,1,1862,1,1862,1,1862,1,1862,1, +1862,1,1862,1,1862,1,1862,1,1863,1,1863,1,1863,1,1863,1,1863,1,1863,1,1863, +1,1863,1,1863,1,1863,1,1863,1,1863,1,1863,1,1863,1,1863,1,1863,1,1864,1, +1864,1,1864,1,1864,1,1864,1,1864,1,1864,1,1864,1,1864,1,1864,1,1864,1,1864, +1,1864,1,1864,1,1864,1,1864,1,1864,1,1864,1,1864,1,1864,1,1864,1,1864,1, +1864,1,1864,1,1864,1,1865,1,1865,1,1865,1,1865,1,1865,1,1865,1,1865,1,1865, +1,1866,1,1866,1,1866,1,1866,1,1866,1,1866,1,1866,1,1866,1,1866,1,1866,1, +1866,1,1866,1,1866,1,1866,1,1866,1,1867,1,1867,1,1867,1,1867,1,1867,1,1867, +1,1867,1,1867,1,1867,1,1867,1,1867,1,1867,1,1867,1,1867,1,1867,1,1867,1, +1868,1,1868,1,1868,1,1868,1,1868,1,1868,1,1868,1,1868,1,1868,1,1868,1,1868, +1,1868,1,1869,1,1869,1,1869,1,1869,1,1869,1,1869,1,1869,1,1869,1,1869,1, +1869,1,1869,1,1869,1,1870,1,1870,1,1870,1,1870,1,1870,1,1870,1,1870,1,1870, +1,1870,1,1870,1,1870,1,1871,1,1871,1,1871,1,1871,1,1871,1,1871,1,1871,1, +1871,1,1871,1,1871,1,1871,1,1872,1,1872,1,1872,1,1872,1,1872,1,1872,1,1872, +1,1872,1,1872,1,1872,1,1872,1,1872,1,1872,1,1872,1,1872,1,1872,1,1872,1, +1872,1,1872,1,1872,1,1872,1,1872,1,1872,1,1872,1,1872,1,1873,1,1873,1,1873, +1,1873,1,1873,1,1873,1,1873,1,1873,1,1873,1,1873,1,1873,1,1873,1,1873,1, +1873,1,1873,1,1873,1,1873,1,1873,1,1873,1,1873,1,1873,1,1873,1,1873,1,1873, +1,1873,1,1873,1,1873,1,1873,1,1873,1,1873,1,1874,1,1874,1,1874,1,1874,1, +1874,1,1874,1,1874,1,1874,1,1874,1,1874,1,1874,1,1874,1,1874,1,1874,1,1874, +1,1874,1,1874,1,1874,1,1874,1,1874,1,1874,1,1874,1,1874,1,1874,1,1874,1, +1875,1,1875,1,1875,1,1875,1,1875,1,1875,1,1875,1,1875,1,1875,1,1875,1,1875, +1,1875,1,1875,1,1875,1,1875,1,1875,1,1875,1,1875,1,1875,1,1875,1,1875,1, +1875,1,1875,1,1875,1,1875,1,1875,1,1875,1,1875,1,1876,1,1876,1,1876,1,1876, +1,1876,1,1876,1,1876,1,1876,1,1876,1,1876,1,1876,1,1876,1,1876,1,1876,1, +1876,1,1876,1,1876,1,1876,1,1876,1,1876,1,1876,1,1876,1,1877,1,1877,1,1877, +1,1877,1,1877,1,1877,1,1877,1,1877,1,1877,1,1877,1,1877,1,1877,1,1878,1, +1878,1,1878,1,1878,1,1878,1,1878,1,1878,1,1878,1,1878,1,1878,1,1878,1,1878, +1,1878,1,1878,1,1878,1,1878,1,1878,1,1878,1,1878,1,1879,1,1879,1,1879,1, +1879,1,1879,1,1879,1,1879,1,1879,1,1879,1,1879,1,1879,1,1879,1,1879,1,1879, +1,1879,1,1879,1,1879,1,1879,1,1879,1,1880,1,1880,1,1880,1,1880,1,1880,1, +1880,1,1880,1,1880,1,1880,1,1880,1,1880,1,1880,1,1880,1,1880,1,1880,1,1880, +1,1880,1,1881,1,1881,1,1881,1,1881,1,1881,1,1881,1,1881,1,1881,1,1881,1, +1881,1,1881,1,1881,1,1881,1,1881,1,1881,1,1881,1,1881,1,1881,1,1881,1,1881, +1,1882,1,1882,1,1882,1,1882,1,1882,1,1882,1,1882,1,1882,1,1882,1,1882,1, +1882,1,1882,1,1882,1,1882,1,1882,1,1882,1,1882,1,1882,1,1883,1,1883,1,1883, +1,1883,1,1883,1,1883,1,1883,1,1883,1,1883,1,1883,1,1883,1,1883,1,1884,1, +1884,1,1884,1,1884,1,1884,1,1884,1,1884,1,1884,1,1884,1,1884,1,1884,1,1885, +1,1885,1,1885,1,1885,1,1885,1,1885,1,1885,1,1885,1,1885,1,1885,1,1885,1, +1885,1,1885,1,1885,1,1885,1,1886,1,1886,1,1886,1,1886,1,1886,1,1886,1,1886, +1,1886,1,1886,1,1886,1,1886,1,1886,1,1886,1,1886,1,1886,1,1886,1,1886,1, +1886,1,1886,1,1887,1,1887,1,1887,1,1887,1,1887,1,1887,1,1887,1,1887,1,1887, +1,1887,1,1887,1,1888,1,1888,1,1888,1,1888,1,1888,1,1888,1,1888,1,1888,1, +1888,1,1888,1,1888,1,1888,1,1888,1,1888,1,1888,1,1888,1,1888,1,1889,1,1889, +1,1889,1,1889,1,1889,1,1889,1,1889,1,1889,1,1889,1,1889,1,1889,1,1889,1, +1889,1,1889,1,1889,1,1889,1,1889,1,1890,1,1890,1,1890,1,1890,1,1890,1,1890, +1,1890,1,1890,1,1890,1,1890,1,1890,1,1891,1,1891,1,1891,1,1891,1,1891,1, +1891,1,1891,1,1891,1,1891,1,1891,1,1891,1,1892,1,1892,1,1892,1,1892,1,1892, +1,1892,1,1892,1,1892,1,1892,1,1892,1,1892,1,1892,1,1892,1,1892,1,1892,1, +1892,1,1893,1,1893,1,1893,1,1893,1,1893,1,1893,1,1893,1,1893,1,1893,1,1893, +1,1893,1,1893,1,1893,1,1893,1,1893,1,1894,1,1894,1,1894,1,1894,1,1894,1, +1894,1,1894,1,1894,1,1894,1,1894,1,1894,1,1894,1,1894,1,1894,1,1894,1,1894, +1,1895,1,1895,1,1895,1,1895,1,1895,1,1895,1,1895,1,1895,1,1895,1,1895,1, +1895,1,1895,1,1895,1,1895,1,1895,1,1895,1,1896,1,1896,1,1896,1,1896,1,1896, +1,1896,1,1896,1,1896,1,1896,1,1896,1,1896,1,1896,1,1896,1,1896,1,1896,1, +1897,1,1897,1,1897,1,1897,1,1897,1,1897,1,1897,1,1897,1,1897,1,1897,1,1897, +1,1897,1,1897,1,1898,1,1898,1,1898,1,1898,1,1898,1,1898,1,1898,1,1898,1, +1898,1,1898,1,1898,1,1898,1,1898,1,1898,1,1898,1,1898,1,1899,1,1899,1,1899, +1,1899,1,1899,1,1899,1,1899,1,1899,1,1899,1,1899,1,1899,1,1899,1,1899,1, +1899,1,1900,1,1900,1,1900,1,1900,1,1900,1,1900,1,1900,1,1900,1,1900,1,1900, +1,1900,1,1901,1,1901,1,1901,1,1901,1,1901,1,1901,1,1901,1,1901,1,1901,1, +1901,1,1901,1,1901,1,1901,1,1901,1,1901,1,1902,1,1902,1,1902,1,1902,1,1902, +1,1902,1,1902,1,1902,1,1902,1,1902,1,1902,1,1902,1,1902,1,1903,1,1903,1, +1903,1,1903,1,1903,1,1903,1,1903,1,1903,1,1903,1,1903,1,1903,1,1904,1,1904, +1,1904,1,1904,1,1904,1,1904,1,1904,1,1904,1,1904,1,1904,1,1904,1,1904,1, +1904,1,1904,1,1904,1,1904,1,1905,1,1905,1,1905,1,1905,1,1905,1,1905,1,1905, +1,1905,1,1905,1,1905,1,1905,1,1905,1,1906,1,1906,1,1906,1,1906,1,1906,1, +1906,1,1906,1,1906,1,1906,1,1906,1,1906,1,1907,1,1907,1,1907,1,1907,1,1907, +1,1907,1,1907,1,1907,1,1907,1,1907,1,1907,1,1907,1,1908,1,1908,1,1908,1, +1908,1,1908,1,1908,1,1908,1,1908,1,1908,1,1908,1,1908,1,1908,1,1908,1,1908, +1,1908,1,1908,1,1908,1,1908,1,1909,1,1909,1,1909,1,1909,1,1909,1,1909,1, +1909,1,1909,1,1909,1,1909,1,1909,1,1910,1,1910,1,1910,1,1910,1,1910,1,1910, +1,1910,1,1910,1,1910,1,1910,1,1910,1,1910,1,1910,1,1910,1,1910,1,1910,1, +1911,1,1911,1,1911,1,1911,1,1911,1,1911,1,1911,1,1911,1,1911,1,1911,1,1911, +1,1911,1,1911,1,1911,1,1911,1,1912,1,1912,1,1912,1,1912,1,1912,1,1912,1, +1912,1,1912,1,1912,1,1912,1,1912,1,1913,1,1913,1,1913,1,1913,1,1913,1,1913, +1,1913,1,1913,1,1913,1,1913,1,1913,1,1913,1,1914,1,1914,1,1914,1,1914,1, +1914,1,1914,1,1914,1,1914,1,1914,1,1914,1,1914,1,1914,1,1914,1,1915,1,1915, +1,1915,1,1915,1,1915,1,1915,1,1915,1,1915,1,1915,1,1915,1,1915,1,1915,1, +1915,1,1915,1,1915,1,1915,1,1915,1,1915,1,1916,1,1916,1,1916,1,1916,1,1916, +1,1916,1,1916,1,1916,1,1916,1,1916,1,1916,1,1916,1,1916,1,1916,1,1916,1, +1916,1,1916,1,1917,1,1917,1,1917,1,1917,1,1917,1,1917,1,1917,1,1917,1,1917, +1,1917,1,1917,1,1917,1,1917,1,1917,1,1918,1,1918,1,1918,1,1918,1,1918,1, +1918,1,1918,1,1918,1,1918,1,1918,1,1918,1,1918,1,1918,1,1918,1,1919,1,1919, +1,1919,1,1919,1,1919,1,1919,1,1919,1,1919,1,1919,1,1919,1,1919,1,1919,1, +1919,1,1920,1,1920,1,1920,1,1920,1,1920,1,1920,1,1920,1,1920,1,1920,1,1920, +1,1920,1,1920,1,1920,1,1920,1,1921,1,1921,1,1921,1,1921,1,1921,1,1921,1, +1921,1,1921,1,1921,1,1921,1,1921,1,1921,1,1921,1,1921,1,1921,1,1922,1,1922, +1,1922,1,1922,1,1922,1,1922,1,1922,1,1922,1,1922,1,1922,1,1922,1,1922,1, +1923,1,1923,1,1923,1,1923,1,1923,1,1923,1,1923,1,1923,1,1923,1,1923,1,1923, +1,1924,1,1924,1,1924,1,1924,1,1924,1,1924,1,1924,1,1924,1,1924,1,1924,1, +1924,1,1924,1,1924,1,1924,1,1924,1,1924,1,1924,1,1924,1,1924,1,1924,1,1924, +1,1924,1,1924,1,1925,1,1925,1,1925,1,1925,1,1925,1,1925,1,1925,1,1925,1, +1925,1,1925,1,1925,1,1925,1,1925,1,1925,1,1925,1,1926,1,1926,1,1926,1,1926, +1,1926,1,1926,1,1926,1,1926,1,1926,1,1926,1,1926,1,1926,1,1926,1,1926,1, +1926,1,1927,1,1927,1,1927,1,1927,1,1927,1,1927,1,1927,1,1927,1,1927,1,1927, +1,1927,1,1927,1,1927,1,1927,1,1928,1,1928,1,1928,1,1928,1,1928,1,1928,1, +1928,1,1928,1,1928,1,1928,1,1928,1,1928,1,1928,1,1928,1,1928,1,1928,1,1928, +1,1929,1,1929,1,1929,1,1929,1,1929,1,1929,1,1929,1,1929,1,1929,1,1929,1, +1929,1,1929,1,1929,1,1929,1,1929,1,1930,1,1930,1,1930,1,1930,1,1930,1,1930, +1,1930,1,1930,1,1930,1,1930,1,1930,1,1930,1,1930,1,1930,1,1930,1,1930,1, +1930,1,1930,1,1930,1,1931,1,1931,1,1931,1,1931,1,1931,1,1931,1,1931,1,1931, +1,1931,1,1931,1,1931,1,1931,1,1931,1,1931,1,1931,1,1931,1,1931,1,1931,1, +1931,1,1931,1,1931,1,1931,1,1932,1,1932,1,1932,1,1932,1,1932,1,1932,1,1932, +1,1932,1,1932,1,1932,1,1932,1,1932,1,1932,1,1932,1,1932,1,1932,1,1932,1, +1932,1,1932,1,1932,1,1933,1,1933,1,1933,1,1933,1,1933,1,1933,1,1933,1,1933, +1,1933,1,1933,1,1933,1,1933,1,1933,1,1933,1,1933,1,1933,1,1933,1,1934,1, +1934,1,1934,1,1934,1,1934,1,1934,1,1934,1,1934,1,1934,1,1934,1,1934,1,1934, +1,1934,1,1934,1,1934,1,1934,1,1934,1,1934,1,1934,1,1935,1,1935,1,1935,1, +1935,1,1935,1,1935,1,1935,1,1935,1,1935,1,1935,1,1935,1,1935,1,1935,1,1935, +1,1935,1,1935,1,1935,1,1935,1,1935,1,1935,1,1936,1,1936,1,1936,1,1936,1, +1936,1,1936,1,1936,1,1936,1,1936,1,1936,1,1936,1,1936,1,1936,1,1936,1,1936, +1,1936,1,1936,1,1936,1,1936,1,1936,1,1937,1,1937,1,1937,1,1937,1,1937,1, +1937,1,1937,1,1937,1,1937,1,1937,1,1937,1,1937,1,1937,1,1937,1,1937,1,1937, +1,1937,1,1937,1,1937,1,1937,1,1937,1,1938,1,1938,1,1938,1,1938,1,1938,1, +1938,1,1938,1,1938,1,1938,1,1938,1,1938,1,1938,1,1938,1,1938,1,1938,1,1938, +1,1938,1,1939,1,1939,1,1939,1,1939,1,1939,1,1939,1,1939,1,1939,1,1939,1, +1939,1,1939,1,1939,1,1939,1,1939,1,1939,1,1940,1,1940,1,1940,1,1940,1,1940, +1,1940,1,1940,1,1940,1,1940,1,1940,1,1940,1,1940,1,1940,1,1940,1,1940,1, +1940,1,1941,1,1941,1,1941,1,1941,1,1941,1,1941,1,1941,1,1941,1,1941,1,1941, +1,1941,1,1941,1,1941,1,1941,1,1942,1,1942,1,1942,1,1942,1,1942,1,1942,1, +1942,1,1942,1,1942,1,1942,1,1942,1,1942,1,1942,1,1942,1,1943,1,1943,1,1943, +1,1943,1,1943,1,1943,1,1943,1,1943,1,1943,1,1943,1,1943,1,1943,1,1943,1, +1943,1,1944,1,1944,1,1944,1,1944,1,1944,1,1944,1,1944,1,1944,1,1944,1,1944, +1,1944,1,1944,1,1944,1,1944,1,1944,1,1945,1,1945,1,1945,1,1945,1,1945,1, +1945,1,1945,1,1945,1,1945,1,1945,1,1945,1,1945,1,1945,1,1945,1,1945,1,1946, +1,1946,1,1946,1,1946,1,1946,1,1946,1,1946,1,1947,1,1947,1,1947,1,1947,1, +1947,1,1947,1,1947,1,1947,1,1947,1,1947,1,1947,1,1947,1,1947,1,1948,1,1948, +1,1948,1,1948,1,1948,1,1948,1,1948,1,1948,1,1948,1,1948,1,1948,1,1949,1, +1949,1,1949,1,1949,1,1949,1,1949,1,1949,1,1949,1,1949,1,1949,1,1949,1,1949, +1,1949,1,1950,1,1950,1,1950,1,1950,1,1950,1,1950,1,1950,1,1950,1,1950,1, +1950,1,1950,1,1950,1,1950,1,1950,1,1950,1,1951,1,1951,1,1951,1,1951,1,1951, +1,1951,1,1951,1,1951,1,1951,1,1951,1,1951,1,1951,1,1951,1,1951,1,1951,1, +1951,1,1952,1,1952,1,1952,1,1952,1,1952,1,1952,1,1952,1,1952,1,1952,1,1952, +1,1952,1,1952,1,1953,1,1953,1,1953,1,1953,1,1953,1,1953,1,1953,1,1953,1, +1953,1,1953,1,1953,1,1953,1,1953,1,1953,1,1953,1,1954,1,1954,1,1954,1,1954, +1,1954,1,1954,1,1954,1,1954,1,1954,1,1954,1,1954,1,1955,1,1955,1,1955,1, +1955,1,1955,1,1955,1,1955,1,1955,1,1955,1,1955,1,1955,1,1955,1,1955,1,1955, +1,1955,1,1955,1,1955,1,1955,1,1955,1,1955,1,1956,1,1956,1,1956,1,1956,1, +1956,1,1956,1,1956,1,1956,1,1956,1,1956,1,1956,1,1956,1,1956,1,1956,1,1956, +1,1956,1,1956,1,1956,1,1956,1,1956,1,1957,1,1957,1,1957,1,1957,1,1957,1, +1957,1,1957,1,1957,1,1957,1,1957,1,1957,1,1957,1,1957,1,1958,1,1958,1,1958, +1,1958,1,1958,1,1958,1,1958,1,1958,1,1958,1,1958,1,1958,1,1958,1,1958,1, +1958,1,1958,1,1958,1,1958,1,1958,1,1958,1,1958,1,1958,1,1958,1,1958,1,1959, +1,1959,1,1959,1,1959,1,1959,1,1959,1,1959,1,1959,1,1959,1,1959,1,1959,1, +1959,1,1959,1,1959,1,1959,1,1959,1,1959,1,1959,1,1959,1,1959,1,1959,1,1960, +1,1960,1,1960,1,1960,1,1960,1,1960,1,1960,1,1960,1,1960,1,1960,1,1960,1, +1960,1,1960,1,1960,1,1960,1,1960,1,1960,1,1960,1,1960,1,1960,1,1960,1,1960, +1,1960,1,1960,1,1960,1,1961,1,1961,1,1961,1,1961,1,1961,1,1961,1,1961,1, +1961,1,1961,1,1961,1,1961,1,1961,1,1961,1,1961,1,1961,1,1961,1,1961,1,1961, +1,1961,1,1961,1,1961,1,1961,1,1962,1,1962,1,1962,1,1962,1,1962,1,1962,1, +1962,1,1962,1,1962,1,1962,1,1962,1,1962,1,1962,1,1962,1,1962,1,1962,1,1962, +1,1962,1,1962,1,1962,1,1962,1,1962,1,1962,1,1962,1,1963,1,1963,1,1963,1, +1963,1,1963,1,1963,1,1963,1,1963,1,1963,1,1963,1,1963,1,1963,1,1963,1,1963, +1,1963,1,1963,1,1963,1,1963,1,1963,1,1963,1,1963,1,1963,1,1963,1,1964,1, +1964,1,1964,1,1964,1,1964,1,1964,1,1964,1,1964,1,1964,1,1964,1,1964,1,1964, +1,1964,1,1964,1,1964,1,1964,1,1964,1,1964,1,1964,1,1964,1,1964,1,1965,1, +1965,1,1965,1,1965,1,1965,1,1965,1,1965,1,1965,1,1965,1,1965,1,1965,1,1965, +1,1965,1,1965,1,1965,1,1965,1,1965,1,1965,1,1965,1,1965,1,1965,1,1965,1, +1966,1,1966,1,1966,1,1966,1,1966,1,1966,1,1966,1,1966,1,1966,1,1966,1,1966, +1,1966,1,1966,1,1966,1,1966,1,1966,1,1966,1,1966,1,1966,1,1966,1,1966,1, +1967,1,1967,1,1967,1,1967,1,1967,1,1967,1,1967,1,1967,1,1967,1,1967,1,1967, +1,1967,1,1967,1,1967,1,1968,1,1968,1,1968,1,1968,1,1968,1,1968,1,1968,1, +1968,1,1968,1,1968,1,1968,1,1968,1,1968,1,1968,1,1969,1,1969,1,1969,1,1969, +1,1969,1,1969,1,1969,1,1969,1,1969,1,1969,1,1969,1,1969,1,1969,1,1969,1, +1969,1,1969,1,1969,1,1970,1,1970,1,1970,1,1970,1,1970,1,1970,1,1970,1,1970, +1,1970,1,1970,1,1970,1,1970,1,1970,1,1970,1,1970,1,1970,1,1971,1,1971,1, +1971,1,1971,1,1971,1,1971,1,1971,1,1971,1,1971,1,1971,1,1971,1,1971,1,1971, +1,1971,1,1971,1,1972,1,1972,1,1972,1,1972,1,1972,1,1972,1,1972,1,1972,1, +1972,1,1972,1,1972,1,1972,1,1972,1,1972,1,1972,1,1972,1,1972,1,1972,1,1973, +1,1973,1,1973,1,1973,1,1973,1,1973,1,1973,1,1973,1,1973,1,1973,1,1973,1, +1973,1,1973,1,1973,1,1974,1,1974,1,1974,1,1974,1,1974,1,1974,1,1974,1,1974, +1,1974,1,1974,1,1974,1,1974,1,1974,1,1974,1,1974,1,1974,1,1974,1,1974,1, +1974,1,1975,1,1975,1,1975,1,1975,1,1975,1,1975,1,1975,1,1975,1,1975,1,1975, +1,1975,1,1975,1,1975,1,1975,1,1975,1,1975,1,1976,1,1976,1,1976,1,1976,1, +1976,1,1976,1,1976,1,1976,1,1976,1,1976,1,1976,1,1976,1,1976,1,1976,1,1977, +1,1977,1,1977,1,1977,1,1977,1,1977,1,1977,1,1977,1,1977,1,1977,1,1977,1, +1977,1,1977,1,1977,1,1978,1,1978,1,1978,1,1978,1,1978,1,1978,1,1978,1,1978, +1,1978,1,1978,1,1978,1,1978,1,1978,1,1979,1,1979,1,1979,1,1979,1,1979,1, +1979,1,1979,1,1979,1,1979,1,1979,1,1979,1,1979,1,1979,1,1980,1,1980,1,1980, +1,1980,1,1980,1,1980,1,1980,1,1980,1,1980,1,1980,1,1980,1,1980,1,1980,1, +1980,1,1980,1,1980,1,1980,1,1980,1,1980,1,1981,1,1981,1,1981,1,1981,1,1981, +1,1981,1,1981,1,1981,1,1981,1,1981,1,1982,1,1982,1,1982,1,1982,1,1982,1, +1982,1,1982,1,1982,1,1982,1,1982,1,1982,1,1982,1,1982,1,1983,1,1983,1,1983, +1,1983,1,1983,1,1983,1,1983,1,1983,1,1983,1,1983,1,1983,1,1983,1,1983,1, +1984,1,1984,1,1984,1,1984,1,1984,1,1984,1,1984,1,1984,1,1984,1,1984,1,1984, +1,1984,1,1984,1,1985,1,1985,1,1985,1,1985,1,1985,1,1985,1,1985,1,1985,1, +1985,1,1985,1,1985,1,1985,1,1985,1,1985,1,1985,1,1986,1,1986,1,1986,1,1986, +1,1986,1,1986,1,1986,1,1986,1,1986,1,1986,1,1986,1,1987,1,1987,1,1987,1, +1987,1,1987,1,1987,1,1987,1,1987,1,1987,1,1987,1,1988,1,1988,1,1988,1,1988, +1,1988,1,1988,1,1988,1,1988,1,1988,1,1988,1,1988,1,1988,1,1988,1,1988,1, +1988,1,1988,1,1989,1,1989,1,1989,1,1989,1,1989,1,1989,1,1989,1,1989,1,1989, +1,1989,1,1989,1,1989,1,1989,1,1989,1,1989,1,1990,1,1990,1,1990,1,1990,1, +1990,1,1990,1,1990,1,1990,1,1990,1,1990,1,1990,1,1990,1,1990,1,1990,1,1991, +1,1991,1,1991,1,1991,1,1991,1,1991,1,1991,1,1991,1,1991,1,1991,1,1991,1, +1991,1,1991,1,1991,1,1992,1,1992,1,1992,1,1992,1,1992,1,1992,1,1992,1,1992, +1,1992,1,1992,1,1992,1,1992,1,1992,1,1992,1,1993,1,1993,1,1993,1,1993,1, +1993,1,1993,1,1993,1,1993,1,1993,1,1993,1,1993,1,1993,1,1994,1,1994,1,1994, +1,1994,1,1994,1,1994,1,1994,1,1994,1,1994,1,1994,1,1994,1,1994,1,1994,1, +1995,1,1995,1,1995,1,1995,1,1995,1,1995,1,1995,1,1995,1,1995,1,1995,1,1995, +1,1995,1,1995,1,1996,1,1996,1,1996,1,1996,1,1996,1,1996,1,1996,1,1996,1, +1996,1,1996,1,1996,1,1996,1,1997,1,1997,1,1997,1,1997,1,1997,1,1997,1,1997, +1,1997,1,1997,1,1997,1,1997,1,1997,1,1997,1,1997,1,1998,1,1998,1,1998,1, +1998,1,1998,1,1998,1,1998,1,1998,1,1998,1,1998,1,1998,1,1998,1,1998,1,1998, +1,1999,1,1999,1,1999,1,1999,1,1999,1,1999,1,1999,1,1999,1,1999,1,1999,1, +1999,1,2000,1,2000,1,2000,1,2000,1,2000,1,2000,1,2000,1,2000,1,2000,1,2000, +1,2000,1,2000,1,2000,1,2000,1,2001,1,2001,1,2001,1,2001,1,2001,1,2001,1, +2001,1,2001,1,2001,1,2001,1,2001,1,2001,1,2001,1,2001,1,2001,1,2001,1,2001, +1,2001,1,2002,1,2002,1,2002,1,2002,1,2002,1,2002,1,2002,1,2002,1,2002,1, +2002,1,2002,1,2002,1,2003,1,2003,1,2003,1,2003,1,2003,1,2003,1,2003,1,2003, +1,2003,1,2003,1,2003,1,2003,1,2003,1,2004,1,2004,1,2004,1,2004,1,2004,1, +2004,1,2004,1,2004,1,2004,1,2004,1,2004,1,2004,1,2004,1,2004,1,2004,1,2004, +1,2005,1,2005,1,2005,1,2005,1,2005,1,2005,1,2005,1,2005,1,2005,1,2005,1, +2005,1,2005,1,2005,1,2005,1,2005,1,2005,1,2006,1,2006,1,2006,1,2006,1,2006, +1,2006,1,2006,1,2006,1,2006,1,2006,1,2006,1,2006,1,2007,1,2007,1,2007,1, +2007,1,2007,1,2007,1,2007,1,2007,1,2007,1,2007,1,2007,1,2007,1,2007,1,2007, +1,2007,1,2007,1,2007,1,2008,1,2008,1,2008,1,2008,1,2008,1,2008,1,2008,1, +2008,1,2008,1,2008,1,2008,1,2008,1,2008,1,2009,1,2009,1,2009,1,2009,1,2009, +1,2009,1,2009,1,2009,1,2009,1,2009,1,2009,1,2009,1,2009,1,2010,1,2010,1, +2010,1,2010,1,2010,1,2010,1,2010,1,2010,1,2010,1,2010,1,2010,1,2010,1,2010, +1,2011,1,2011,1,2011,1,2011,1,2011,1,2011,1,2011,1,2011,1,2011,1,2011,1, +2011,1,2011,1,2011,1,2011,1,2012,1,2012,1,2012,1,2012,1,2012,1,2012,1,2012, +1,2012,1,2012,1,2012,1,2012,1,2013,1,2013,1,2013,1,2013,1,2013,1,2013,1, +2013,1,2013,1,2013,1,2013,1,2013,1,2013,1,2013,1,2013,1,2013,1,2013,1,2013, +1,2014,1,2014,1,2014,1,2014,1,2014,1,2014,1,2014,1,2014,1,2014,1,2014,1, +2014,1,2014,1,2014,1,2014,1,2014,1,2014,1,2015,1,2015,1,2015,1,2015,1,2015, +1,2015,1,2015,1,2015,1,2015,1,2015,1,2015,1,2015,1,2015,1,2016,1,2016,1, +2016,1,2016,1,2016,1,2016,1,2016,1,2016,1,2016,1,2016,1,2016,1,2016,1,2016, +1,2016,1,2016,1,2017,1,2017,1,2017,1,2017,1,2017,1,2017,1,2017,1,2017,1, +2017,1,2017,1,2017,1,2017,1,2017,1,2017,1,2017,1,2017,1,2018,1,2018,1,2018, +1,2018,1,2018,1,2018,1,2018,1,2018,1,2018,1,2018,1,2018,1,2018,1,2018,1, +2018,1,2018,1,2018,1,2019,1,2019,1,2019,1,2019,1,2019,1,2019,1,2019,1,2019, +1,2019,1,2019,1,2019,1,2019,1,2020,1,2020,1,2020,1,2020,1,2020,1,2020,1, +2020,1,2020,1,2020,1,2020,1,2020,1,2020,1,2020,1,2020,1,2021,1,2021,1,2021, +1,2021,1,2021,1,2021,1,2021,1,2021,1,2021,1,2021,1,2021,1,2021,1,2021,1, +2021,1,2021,1,2021,1,2022,1,2022,1,2022,1,2022,1,2022,1,2022,1,2022,1,2022, +1,2022,1,2022,1,2022,1,2022,1,2022,1,2022,1,2022,1,2022,1,2023,1,2023,1, +2023,1,2023,1,2023,1,2023,1,2023,1,2023,1,2023,1,2023,1,2023,1,2023,1,2023, +1,2023,1,2023,1,2023,1,2023,1,2024,1,2024,1,2024,1,2024,1,2024,1,2024,1, +2024,1,2024,1,2024,1,2024,1,2024,1,2024,1,2024,1,2024,1,2025,1,2025,1,2025, +1,2025,1,2025,1,2025,1,2025,1,2025,1,2025,1,2025,1,2025,1,2025,1,2025,1, +2025,1,2026,1,2026,1,2026,1,2026,1,2026,1,2026,1,2026,1,2026,1,2026,1,2026, +1,2026,1,2026,1,2026,1,2026,1,2027,1,2027,1,2027,1,2027,1,2027,1,2027,1, +2027,1,2027,1,2027,1,2027,1,2027,1,2027,1,2027,1,2027,1,2027,1,2027,1,2028, +1,2028,1,2028,1,2028,1,2028,1,2028,1,2028,1,2028,1,2028,1,2028,1,2028,1, +2028,1,2028,1,2028,1,2029,1,2029,1,2029,1,2029,1,2029,1,2029,1,2029,1,2029, +1,2029,1,2029,1,2029,1,2029,1,2029,1,2029,1,2030,1,2030,1,2030,1,2030,1, +2030,1,2030,1,2030,1,2030,1,2030,1,2030,1,2030,1,2030,1,2030,1,2030,1,2031, +1,2031,1,2031,1,2031,1,2031,1,2031,1,2031,1,2031,1,2031,1,2031,1,2031,1, +2031,1,2031,1,2031,1,2032,1,2032,1,2032,1,2032,1,2032,1,2032,1,2032,1,2032, +1,2032,1,2032,1,2032,1,2032,1,2032,1,2032,1,2033,1,2033,1,2033,1,2033,1, +2033,1,2033,1,2033,1,2033,1,2033,1,2033,1,2033,1,2033,1,2033,1,2033,1,2034, +1,2034,1,2034,1,2034,1,2034,1,2034,1,2034,1,2034,1,2034,1,2034,1,2034,1, +2034,1,2034,1,2034,1,2034,1,2035,1,2035,1,2035,1,2035,1,2035,1,2035,1,2035, +1,2035,1,2035,1,2035,1,2035,1,2035,1,2035,1,2035,1,2036,1,2036,1,2036,1, +2036,1,2036,1,2036,1,2036,1,2036,1,2036,1,2036,1,2036,1,2036,1,2036,1,2036, +1,2036,1,2037,1,2037,1,2037,1,2037,1,2037,1,2037,1,2037,1,2037,1,2037,1, +2037,1,2037,1,2037,1,2037,1,2037,1,2037,1,2038,1,2038,1,2038,1,2038,1,2038, +1,2038,1,2038,1,2038,1,2038,1,2038,1,2038,1,2038,1,2038,1,2038,1,2039,1, +2039,1,2039,1,2039,1,2039,1,2039,1,2039,1,2039,1,2039,1,2039,1,2039,1,2039, +1,2039,1,2039,1,2040,1,2040,1,2040,1,2040,1,2040,1,2040,1,2040,1,2040,1, +2040,1,2040,1,2040,1,2040,1,2040,1,2040,1,2041,1,2041,1,2041,1,2041,1,2041, +1,2041,1,2041,1,2041,1,2041,1,2041,1,2041,1,2041,1,2041,1,2041,1,2042,1, +2042,1,2042,1,2042,1,2042,1,2042,1,2042,1,2042,1,2042,1,2042,1,2042,1,2042, +1,2042,1,2042,1,2043,1,2043,1,2043,1,2043,1,2043,1,2043,1,2043,1,2043,1, +2043,1,2043,1,2043,1,2043,1,2043,1,2043,1,2044,1,2044,1,2044,1,2044,1,2044, +1,2044,1,2044,1,2044,1,2044,1,2044,1,2044,1,2044,1,2044,1,2044,1,2045,1, +2045,1,2045,1,2045,1,2045,1,2045,1,2045,1,2045,1,2045,1,2045,1,2045,1,2045, +1,2045,1,2046,1,2046,1,2046,1,2046,1,2046,1,2046,1,2046,1,2046,1,2046,1, +2046,1,2046,1,2046,1,2046,1,2046,1,2047,1,2047,1,2047,1,2047,1,2047,1,2047, +1,2047,1,2047,1,2047,1,2047,1,2047,1,2047,1,2047,1,2047,1,2048,1,2048,1, +2048,1,2048,1,2048,1,2048,1,2048,1,2048,1,2048,1,2048,1,2048,1,2048,1,2048, +1,2048,1,2048,1,2048,1,2048,1,2048,1,2049,1,2049,1,2049,1,2049,1,2049,1, +2049,1,2049,1,2049,1,2049,1,2049,1,2049,1,2049,1,2049,1,2049,1,2050,1,2050, +1,2050,1,2050,1,2050,1,2050,1,2050,1,2050,1,2050,1,2050,1,2050,1,2050,1, +2050,1,2050,1,2050,1,2050,1,2051,1,2051,1,2051,1,2051,1,2051,1,2051,1,2051, +1,2051,1,2051,1,2051,1,2051,1,2051,1,2051,1,2051,1,2051,1,2052,1,2052,1, +2052,1,2052,1,2052,1,2052,1,2052,1,2052,1,2052,1,2052,1,2052,1,2052,1,2053, +1,2053,1,2053,1,2053,1,2053,1,2053,1,2053,1,2053,1,2053,1,2053,1,2053,1, +2053,1,2053,1,2053,1,2053,1,2053,1,2053,1,2054,1,2054,1,2054,1,2054,1,2054, +1,2054,1,2054,1,2054,1,2054,1,2054,1,2054,1,2054,1,2054,1,2054,1,2055,1, +2055,1,2055,1,2055,1,2055,1,2055,1,2055,1,2055,1,2055,1,2055,1,2055,1,2055, +1,2055,1,2055,1,2055,1,2055,1,2056,1,2056,1,2056,1,2056,1,2056,1,2056,1, +2056,1,2056,1,2056,1,2056,1,2056,1,2056,1,2056,1,2056,1,2057,1,2057,1,2057, +1,2057,1,2057,1,2057,1,2057,1,2057,1,2057,1,2057,1,2057,1,2057,1,2058,1, +2058,1,2058,1,2058,1,2058,1,2058,1,2058,1,2058,1,2058,1,2058,1,2058,1,2058, +1,2058,1,2059,1,2059,1,2059,1,2059,1,2059,1,2059,1,2059,1,2059,1,2059,1, +2059,1,2059,1,2059,1,2059,1,2060,1,2060,1,2060,1,2060,1,2060,1,2060,1,2060, +1,2060,1,2060,1,2060,1,2060,1,2060,1,2060,1,2060,1,2060,1,2060,1,2060,1, +2060,1,2061,1,2061,1,2061,1,2061,1,2061,1,2061,1,2061,1,2061,1,2061,1,2061, +1,2061,1,2061,1,2061,1,2061,1,2061,1,2061,1,2061,1,2062,1,2062,1,2062,1, +2062,1,2062,1,2062,1,2062,1,2062,1,2062,1,2062,1,2062,1,2062,1,2062,1,2062, +1,2062,1,2063,1,2063,1,2063,1,2063,1,2063,1,2063,1,2063,1,2063,1,2063,1, +2063,1,2063,1,2063,1,2063,1,2063,1,2063,1,2063,1,2064,1,2064,1,2064,1,2064, +1,2064,1,2064,1,2064,1,2064,1,2064,1,2064,1,2064,1,2064,1,2064,1,2064,1, +2065,1,2065,1,2065,1,2065,1,2065,1,2065,1,2065,1,2065,1,2065,1,2065,1,2065, +1,2065,1,2065,1,2065,1,2065,1,2065,1,2066,1,2066,1,2066,1,2066,1,2066,1, +2066,1,2066,1,2066,1,2066,1,2066,1,2066,1,2066,1,2066,1,2066,1,2066,1,2066, +1,2067,1,2067,1,2067,1,2067,1,2067,1,2067,1,2067,1,2067,1,2067,1,2067,1, +2067,1,2067,1,2067,1,2067,1,2067,1,2068,1,2068,1,2068,1,2068,1,2068,1,2068, +1,2068,1,2068,1,2068,1,2068,1,2068,1,2068,1,2068,1,2068,1,2069,1,2069,1, +2069,1,2069,1,2069,1,2069,1,2069,1,2069,1,2069,1,2069,1,2069,1,2069,1,2069, +1,2069,1,2069,1,2069,1,2069,1,2069,1,2070,1,2070,1,2070,1,2070,1,2070,1, +2070,1,2070,1,2070,1,2070,1,2070,1,2070,1,2070,1,2071,1,2071,1,2071,1,2071, +1,2071,1,2071,1,2071,1,2071,1,2071,1,2071,1,2071,1,2071,1,2071,1,2071,1, +2071,1,2071,1,2072,1,2072,1,2072,1,2072,1,2072,1,2072,1,2072,1,2072,1,2072, +1,2072,1,2072,1,2072,1,2072,1,2072,1,2072,1,2072,1,2073,1,2073,1,2073,1, +2073,1,2073,1,2073,1,2073,1,2073,1,2073,1,2073,1,2073,1,2073,1,2073,1,2073, +1,2073,1,2073,1,2073,1,2074,1,2074,1,2075,1,2075,1,2075,1,2075,1,2075,1, +2075,1,2075,1,2075,1,2075,1,2075,1,2075,1,2075,1,2075,1,2075,1,2075,1,2075, +1,2075,1,2075,1,2075,1,2076,1,2076,1,2076,1,2076,1,2076,1,2076,1,2076,1, +2076,1,2076,1,2076,1,2076,1,2076,1,2076,1,2076,1,2077,1,2077,1,2077,1,2077, +1,2077,1,2077,1,2077,1,2077,1,2077,1,2077,1,2077,1,2078,1,2078,1,2078,1, +2078,1,2078,1,2078,1,2078,1,2079,1,2079,1,2079,1,2079,1,2079,1,2079,1,2079, +1,2079,1,2079,1,2079,1,2079,1,2079,1,2080,1,2080,1,2080,1,2080,1,2080,1, +2080,1,2081,1,2081,1,2081,1,2081,1,2081,1,2081,1,2082,1,2082,1,2082,1,2082, +1,2083,1,2083,1,2083,1,2083,1,2083,1,2084,1,2084,1,2084,1,2084,1,2085,1, +2085,1,2085,1,2085,1,2085,1,2085,1,2085,1,2085,1,2085,1,2085,1,2085,1,2085, +1,2085,1,2085,1,2085,1,2085,1,2085,1,2085,1,2085,1,2085,1,2086,1,2086,1, +2086,1,2086,1,2086,1,2086,1,2086,1,2086,1,2086,1,2087,1,2087,1,2087,1,2087, +1,2087,1,2087,1,2087,1,2087,1,2087,1,2088,1,2088,1,2088,1,2088,1,2088,1, +2088,1,2088,1,2088,1,2088,1,2088,1,2088,1,2088,1,2088,1,2088,1,2088,1,2089, +1,2089,1,2089,1,2089,1,2089,1,2089,1,2089,1,2089,1,2089,1,2089,1,2090,1, +2090,1,2090,1,2090,1,2090,1,2090,1,2090,1,2090,1,2090,1,2090,1,2090,1,2091, +1,2091,1,2091,1,2091,1,2091,1,2091,1,2091,1,2091,1,2091,1,2091,1,2091,1, +2092,1,2092,1,2092,1,2092,1,2092,1,2093,1,2093,1,2093,1,2093,1,2093,1,2094, +1,2094,1,2094,1,2094,1,2094,1,2094,1,2094,1,2094,1,2094,1,2095,1,2095,1, +2095,1,2095,1,2095,1,2096,1,2096,1,2096,1,2096,1,2096,1,2097,1,2097,1,2097, +1,2097,1,2098,1,2098,1,2098,1,2098,1,2098,1,2098,1,2099,1,2099,1,2099,1, +2099,1,2099,1,2099,1,2099,1,2100,1,2100,1,2100,1,2100,1,2100,1,2100,1,2100, +1,2100,1,2101,1,2101,1,2101,1,2101,1,2101,1,2102,1,2102,1,2102,1,2102,1, +2102,1,2103,1,2103,1,2103,1,2103,1,2103,1,2103,1,2103,1,2103,1,2104,1,2104, +1,2104,1,2104,1,2104,1,2104,1,2104,1,2104,1,2104,1,2104,1,2104,1,2104,1, +2104,1,2104,1,2104,1,2104,1,2104,1,2104,1,2104,1,2104,1,2104,1,2104,1,2104, +1,2104,1,2104,1,2104,1,2104,1,2104,1,2105,1,2105,1,2105,1,2105,1,2105,1, +2105,1,2105,1,2105,1,2105,1,2105,1,2106,1,2106,1,2106,1,2106,1,2106,1,2106, +1,2106,1,2106,1,2106,1,2106,1,2106,1,2106,1,2106,1,2106,1,2106,1,2106,1, +2106,1,2106,1,2106,1,2106,1,2106,1,2106,1,2106,1,2106,1,2106,1,2106,1,2106, +1,2107,1,2107,1,2107,1,2107,1,2107,1,2107,1,2107,1,2107,1,2107,1,2107,1, +2107,1,2107,1,2107,1,2107,1,2107,1,2107,1,2107,1,2107,1,2107,1,2107,1,2107, +1,2107,1,2107,1,2107,1,2108,1,2108,1,2108,1,2108,1,2108,1,2108,1,2109,1, +2109,1,2109,1,2109,1,2109,1,2110,1,2110,1,2110,1,2110,1,2110,1,2110,1,2110, +1,2110,1,2110,1,2111,1,2111,1,2111,1,2111,1,2111,1,2111,1,2111,1,2111,1, +2111,1,2111,1,2111,1,2111,1,2111,1,2111,1,2112,1,2112,1,2112,1,2112,1,2112, +1,2112,1,2112,1,2112,1,2112,1,2112,1,2112,1,2112,1,2112,1,2112,1,2113,1, +2113,1,2113,1,2113,1,2113,1,2113,1,2113,1,2113,1,2113,1,2113,1,2113,1,2113, +1,2113,1,2113,1,2113,1,2113,1,2114,1,2114,1,2114,1,2114,1,2114,1,2114,1, +2114,1,2114,1,2114,1,2114,1,2114,1,2114,1,2114,1,2114,1,2114,1,2114,1,2115, +1,2115,1,2115,1,2115,1,2115,1,2115,1,2115,1,2115,1,2115,1,2115,1,2115,1, +2115,1,2115,1,2115,1,2115,1,2115,1,2116,1,2116,1,2116,1,2116,1,2116,1,2116, +1,2116,1,2116,1,2116,1,2116,1,2117,1,2117,1,2117,1,2117,1,2117,1,2117,1, +2117,1,2118,1,2118,1,2118,1,2118,1,2118,1,2118,1,2118,1,2118,1,2119,1,2119, +1,2119,1,2119,1,2119,1,2119,1,2119,1,2120,1,2120,1,2120,1,2120,1,2120,1, +2120,1,2120,1,2120,1,2121,1,2121,1,2121,1,2121,1,2121,1,2121,1,2121,1,2121, +1,2121,1,2122,1,2122,1,2122,1,2122,1,2122,1,2122,1,2122,1,2122,1,2122,1, +2122,1,2122,1,2122,1,2122,1,2122,1,2122,1,2122,1,2122,1,2123,1,2123,1,2123, +1,2123,1,2123,1,2123,1,2123,1,2123,1,2123,1,2123,1,2123,1,2123,1,2123,1, +2123,1,2123,1,2123,1,2124,1,2124,1,2124,1,2124,1,2124,1,2124,1,2124,1,2124, +1,2125,1,2125,1,2125,1,2125,1,2125,1,2125,1,2125,1,2125,1,2126,1,2126,1, +2126,1,2126,1,2126,1,2126,1,2126,1,2126,1,2126,1,2126,1,2126,1,2126,1,2126, +1,2126,1,2127,1,2127,1,2127,1,2127,1,2127,1,2127,1,2127,1,2128,1,2128,1, +2128,1,2128,1,2128,1,2128,1,2128,1,2128,1,2128,1,2128,1,2128,1,2128,1,2128, +1,2128,1,2129,1,2129,1,2129,1,2129,1,2129,1,2129,1,2129,1,2129,1,2129,1, +2130,1,2130,1,2130,1,2130,1,2130,1,2130,1,2130,1,2130,1,2130,1,2131,1,2131, +1,2131,1,2131,1,2131,1,2131,1,2131,1,2131,1,2131,1,2131,1,2132,1,2132,1, +2132,1,2132,1,2132,1,2132,1,2132,1,2132,1,2132,1,2133,1,2133,1,2133,1,2133, +1,2133,1,2133,1,2133,1,2133,1,2133,1,2133,1,2133,1,2133,1,2133,1,2133,1, +2133,1,2134,1,2134,1,2134,1,2134,1,2134,1,2134,1,2134,1,2134,1,2134,1,2134, +1,2134,1,2134,1,2134,1,2135,1,2135,1,2135,1,2135,1,2135,1,2135,1,2135,1, +2135,1,2135,1,2135,1,2135,1,2135,1,2135,1,2135,1,2135,1,2135,1,2136,1,2136, +1,2136,1,2136,1,2136,1,2136,1,2136,1,2136,1,2137,1,2137,1,2137,1,2137,1, +2137,1,2137,1,2137,1,2137,1,2137,1,2137,1,2137,1,2138,1,2138,1,2138,1,2139, +1,2139,1,2139,1,2139,1,2139,1,2139,1,2139,1,2139,1,2139,1,2139,1,2139,1, +2139,1,2139,1,2139,1,2140,1,2140,1,2140,1,2140,1,2140,1,2140,1,2141,1,2141, +1,2141,1,2141,1,2141,1,2141,1,2141,1,2141,1,2142,1,2142,1,2142,1,2142,1, +2142,1,2142,1,2142,1,2142,1,2142,1,2143,1,2143,1,2143,1,2143,1,2143,1,2143, +1,2143,1,2143,1,2143,1,2144,1,2144,1,2144,1,2144,1,2144,1,2144,1,2144,1, +2144,1,2144,1,2144,1,2144,1,2144,1,2145,1,2145,1,2145,1,2145,1,2145,1,2145, +1,2145,1,2145,1,2145,1,2145,1,2146,1,2146,1,2146,1,2146,1,2146,1,2146,1, +2146,1,2146,1,2146,1,2146,1,2146,1,2147,1,2147,1,2147,1,2147,1,2147,1,2147, +1,2147,1,2147,1,2147,1,2147,1,2147,1,2147,1,2147,1,2147,1,2147,1,2147,1, +2147,1,2147,1,2147,1,2147,1,2147,1,2147,1,2147,1,2148,1,2148,1,2148,1,2148, +1,2148,1,2148,1,2148,1,2148,1,2148,1,2148,1,2148,1,2148,1,2148,1,2149,1, +2149,1,2149,1,2149,1,2149,1,2149,1,2149,1,2149,1,2149,1,2149,1,2149,1,2150, +1,2150,1,2150,1,2150,1,2150,1,2150,1,2150,1,2150,1,2150,1,2150,1,2151,1, +2151,1,2151,1,2151,1,2151,1,2151,1,2151,1,2151,1,2151,1,2151,1,2151,1,2151, +1,2152,1,2152,1,2152,1,2152,1,2152,1,2152,1,2153,1,2153,1,2153,1,2153,1, +2153,1,2153,1,2153,1,2153,1,2153,1,2154,1,2154,1,2154,1,2154,1,2154,1,2154, +1,2154,1,2154,1,2155,1,2155,1,2155,1,2155,1,2155,1,2156,1,2156,1,2156,1, +2156,1,2156,1,2156,1,2156,1,2156,1,2156,1,2157,1,2157,1,2157,1,2157,1,2157, +1,2157,1,2158,1,2158,1,2158,1,2158,1,2158,1,2158,1,2158,1,2158,1,2159,1, +2159,1,2159,1,2159,1,2159,1,2159,1,2160,1,2160,1,2160,1,2160,1,2160,1,2160, +1,2160,1,2161,1,2161,1,2161,1,2162,1,2162,1,2162,1,2162,1,2162,1,2162,1, +2163,1,2163,1,2163,1,2163,1,2163,1,2164,1,2164,1,2164,1,2164,1,2164,1,2164, +1,2164,1,2164,1,2164,1,2164,1,2165,1,2165,1,2165,1,2165,1,2166,1,2166,1, +2166,1,2166,1,2167,1,2167,1,2167,1,2167,1,2167,1,2168,1,2168,1,2168,1,2168, +1,2169,1,2169,1,2169,1,2169,1,2170,1,2170,1,2170,1,2170,1,2170,1,2170,1, +2170,1,2170,1,2170,1,2170,1,2170,1,2171,1,2171,1,2171,1,2171,1,2171,1,2171, +1,2171,1,2171,1,2171,1,2171,1,2172,1,2172,1,2172,1,2172,1,2172,1,2172,1, +2172,1,2172,1,2173,1,2173,1,2173,1,2173,1,2173,1,2173,1,2173,1,2173,1,2173, +1,2173,1,2173,1,2173,1,2173,1,2173,1,2174,1,2174,1,2174,1,2174,1,2174,1, +2174,1,2175,1,2175,1,2175,1,2175,1,2175,1,2176,1,2176,1,2176,1,2176,1,2176, +1,2176,1,2176,1,2177,1,2177,1,2177,1,2177,1,2177,1,2177,1,2177,1,2177,1, +2178,1,2178,1,2178,1,2178,1,2178,1,2178,1,2179,1,2179,1,2179,1,2179,1,2179, +1,2179,1,2179,1,2179,1,2179,1,2179,1,2180,1,2180,1,2180,1,2180,1,2180,1, +2180,1,2180,1,2181,1,2181,1,2181,1,2181,1,2181,1,2181,1,2181,1,2182,1,2182, +1,2182,1,2182,1,2182,1,2182,1,2182,1,2182,1,2182,1,2182,1,2183,1,2183,1, +2183,1,2183,1,2183,1,2183,1,2183,1,2184,1,2184,1,2184,1,2184,1,2184,1,2184, +1,2184,1,2185,1,2185,1,2185,1,2185,1,2185,1,2185,1,2185,1,2185,1,2185,1, +2185,1,2186,1,2186,1,2186,1,2186,1,2186,1,2186,1,2186,1,2186,1,2186,1,2186, +1,2186,1,2186,1,2186,1,2186,1,2186,1,2186,1,2186,1,2186,1,2186,1,2186,1, +2186,1,2186,1,2186,1,2186,1,2186,1,2186,1,2186,1,2186,1,2187,1,2187,1,2187, +1,2187,1,2187,1,2187,1,2187,1,2187,1,2187,1,2187,1,2187,1,2187,1,2187,1, +2187,1,2187,1,2187,1,2187,1,2187,1,2187,1,2187,1,2187,1,2187,1,2187,1,2187, +1,2187,1,2187,1,2187,1,2187,1,2187,1,2187,1,2188,1,2188,1,2188,1,2188,1, +2188,1,2188,1,2188,1,2188,1,2188,1,2188,1,2188,1,2188,1,2188,1,2188,1,2188, +1,2188,1,2188,1,2188,1,2189,1,2189,1,2189,1,2189,1,2189,1,2189,1,2189,1, +2190,1,2190,1,2190,1,2190,1,2190,1,2190,1,2190,1,2190,1,2190,1,2191,1,2191, +1,2191,1,2191,1,2191,1,2191,1,2191,1,2191,1,2192,1,2192,1,2192,1,2192,1, +2192,1,2192,1,2192,1,2193,1,2193,1,2193,1,2193,1,2193,1,2193,1,2193,1,2193, +1,2193,1,2193,1,2193,1,2193,1,2194,1,2194,1,2194,1,2194,1,2194,1,2194,1, +2194,1,2194,1,2194,1,2194,1,2195,1,2195,1,2195,1,2195,1,2195,1,2195,1,2195, +1,2195,1,2195,1,2195,1,2195,1,2195,1,2195,1,2195,1,2196,1,2196,1,2196,1, +2196,1,2196,1,2196,1,2196,1,2196,1,2196,1,2196,1,2196,1,2196,1,2196,1,2197, +1,2197,1,2197,1,2197,1,2197,1,2197,1,2197,1,2197,1,2197,1,2198,1,2198,1, +2198,1,2198,1,2198,1,2198,1,2198,1,2198,1,2198,1,2198,1,2198,1,2198,1,2199, +1,2199,1,2199,1,2199,1,2199,1,2199,1,2200,1,2200,1,2200,1,2200,1,2200,1, +2200,1,2200,1,2200,1,2200,1,2201,1,2201,1,2201,1,2201,1,2201,1,2201,1,2201, +1,2202,1,2202,1,2202,1,2202,1,2202,1,2202,1,2202,1,2202,1,2202,1,2202,1, +2203,1,2203,1,2203,1,2203,1,2203,1,2203,1,2203,1,2203,1,2204,1,2204,1,2204, +1,2204,1,2204,1,2204,1,2204,1,2205,1,2205,1,2205,1,2205,1,2205,1,2205,1, +2205,1,2205,1,2205,1,2205,1,2206,1,2206,1,2206,1,2206,1,2206,1,2206,1,2206, +1,2206,1,2206,1,2206,1,2206,1,2206,1,2207,1,2207,1,2207,1,2207,1,2207,1, +2207,1,2207,1,2207,1,2207,1,2207,1,2207,1,2207,1,2207,1,2207,1,2208,1,2208, +1,2208,1,2208,1,2208,1,2208,1,2208,1,2208,1,2209,1,2209,1,2209,1,2209,1, +2209,1,2209,1,2210,1,2210,1,2210,1,2210,1,2210,1,2210,1,2210,1,2211,1,2211, +1,2211,1,2211,1,2211,1,2211,1,2211,1,2212,1,2212,1,2212,1,2212,1,2212,1, +2212,1,2212,1,2213,1,2213,1,2213,1,2213,1,2213,1,2213,1,2214,1,2214,1,2214, +1,2214,1,2214,1,2214,1,2214,1,2214,1,2214,1,2215,1,2215,1,2215,1,2215,1, +2215,1,2215,1,2215,1,2215,1,2215,1,2215,1,2215,1,2216,1,2216,1,2216,1,2216, +1,2216,1,2216,1,2216,1,2216,1,2216,1,2217,1,2217,1,2217,1,2217,1,2217,1, +2217,1,2217,1,2217,1,2217,1,2217,1,2217,1,2217,1,2217,1,2217,1,2217,1,2217, +1,2217,1,2217,1,2217,1,2217,1,2217,1,2218,1,2218,1,2218,1,2218,1,2218,1, +2218,1,2218,1,2218,1,2218,1,2218,1,2218,1,2218,1,2218,1,2218,1,2218,1,2218, +1,2218,1,2218,1,2218,1,2218,1,2218,1,2218,1,2218,1,2218,1,2218,1,2218,1, +2219,1,2219,1,2219,1,2219,1,2219,1,2219,1,2219,1,2219,1,2219,1,2220,1,2220, +1,2220,1,2220,1,2220,1,2220,1,2220,1,2220,1,2220,1,2220,1,2220,1,2220,1, +2220,1,2220,1,2220,1,2220,1,2220,1,2220,1,2220,1,2220,1,2220,1,2220,1,2221, +1,2221,1,2221,1,2221,1,2221,1,2221,1,2221,1,2221,1,2221,1,2221,1,2221,1, +2221,1,2221,1,2221,1,2221,1,2221,1,2221,1,2221,1,2221,1,2221,1,2221,1,2221, +1,2222,1,2222,1,2222,1,2222,1,2222,1,2222,1,2222,1,2222,1,2222,1,2222,1, +2222,1,2222,1,2222,1,2222,1,2222,1,2222,1,2222,1,2222,1,2222,1,2222,1,2223, +1,2223,1,2223,1,2223,1,2223,1,2223,1,2223,1,2223,1,2223,1,2223,1,2224,1, +2224,1,2224,1,2224,1,2224,1,2224,1,2224,1,2225,1,2225,1,2225,1,2225,1,2225, +1,2225,1,2225,1,2225,1,2225,1,2225,1,2225,1,2225,1,2225,1,2225,1,2225,1, +2225,1,2225,1,2225,1,2226,1,2226,1,2226,1,2226,1,2226,1,2226,1,2226,1,2226, +1,2226,1,2226,1,2226,1,2226,1,2226,1,2226,1,2226,1,2226,1,2226,1,2226,1, +2226,1,2226,1,2226,1,2227,1,2227,1,2227,1,2227,1,2227,1,2227,1,2227,1,2227, +1,2227,1,2227,1,2228,1,2228,1,2228,1,2228,1,2228,1,2228,1,2228,1,2228,1, +2228,1,2228,1,2228,1,2228,1,2228,1,2229,1,2229,1,2229,1,2229,1,2229,1,2229, +1,2229,1,2229,1,2230,1,2230,1,2230,1,2230,1,2230,1,2230,1,2230,1,2230,1, +2230,1,2230,1,2231,1,2231,1,2231,1,2231,1,2231,1,2231,1,2231,1,2231,1,2231, +1,2231,1,2231,1,2231,1,2231,1,2231,1,2231,1,2231,1,2232,1,2232,1,2232,1, +2232,1,2232,1,2232,1,2233,1,2233,1,2233,1,2233,1,2233,1,2233,1,2233,1,2233, +1,2233,1,2233,1,2233,1,2233,1,2233,1,2233,1,2233,1,2233,1,2233,1,2234,1, +2234,1,2234,1,2234,1,2234,1,2235,1,2235,1,2235,1,2235,1,2235,1,2235,1,2235, +1,2235,1,2235,1,2236,1,2236,1,2236,1,2236,1,2236,1,2236,1,2236,1,2236,1, +2236,1,2236,1,2236,1,2236,1,2236,1,2236,1,2236,1,2236,1,2236,1,2236,1,2236, +1,2236,1,2237,1,2237,1,2237,1,2237,1,2237,1,2237,1,2237,1,2237,1,2237,1, +2237,1,2237,1,2237,1,2237,1,2237,1,2237,1,2237,1,2237,1,2237,1,2238,1,2238, +1,2238,1,2238,1,2239,1,2239,1,2239,1,2239,1,2239,1,2239,1,2239,1,2239,1, +2239,1,2239,1,2239,1,2239,1,2239,1,2239,1,2239,1,2239,1,2239,1,2239,1,2239, +1,2239,1,2239,1,2239,1,2239,1,2240,1,2240,1,2240,1,2240,1,2240,1,2240,1, +2240,1,2240,1,2240,1,2240,1,2240,1,2240,1,2240,1,2240,1,2240,1,2240,1,2240, +1,2240,1,2240,1,2241,1,2241,1,2241,1,2241,1,2241,1,2241,1,2241,1,2241,1, +2241,1,2241,1,2241,1,2241,1,2241,1,2241,1,2241,1,2241,1,2242,1,2242,1,2242, +1,2242,1,2242,1,2242,1,2242,1,2242,1,2242,1,2242,1,2242,1,2242,1,2242,1, +2242,1,2242,1,2243,1,2243,1,2243,1,2243,1,2243,1,2243,1,2244,1,2244,1,2244, +1,2244,1,2244,1,2244,1,2244,1,2244,1,2245,1,2245,1,2245,1,2245,1,2245,1, +2245,1,2245,1,2245,1,2246,1,2246,1,2246,1,2246,1,2246,1,2246,1,2247,1,2247, +1,2247,1,2247,1,2247,1,2248,1,2248,1,2248,1,2249,1,2249,1,2249,1,2250,1, +2250,1,2250,1,2250,1,2250,1,2250,1,2250,1,2250,1,2250,1,2251,1,2251,1,2251, +1,2251,1,2251,1,2251,1,2251,1,2251,1,2251,1,2251,1,2251,1,2251,1,2251,1, +2251,1,2251,1,2251,1,2251,1,2251,1,2251,1,2251,1,2252,1,2252,1,2252,1,2252, +1,2252,1,2252,1,2252,1,2252,1,2252,1,2252,1,2252,1,2253,1,2253,1,2253,1, +2253,1,2253,1,2253,1,2253,1,2253,1,2253,1,2253,1,2253,1,2253,1,2253,1,2253, +1,2253,1,2254,1,2254,1,2254,1,2254,1,2254,1,2254,1,2254,1,2255,1,2255,1, +2255,1,2255,1,2255,1,2255,1,2256,1,2256,1,2256,1,2256,1,2256,1,2256,1,2256, +1,2256,1,2256,1,2257,1,2257,1,2257,1,2257,1,2257,1,2257,1,2257,1,2257,1, +2258,1,2258,1,2258,1,2258,1,2258,1,2258,1,2258,1,2258,1,2258,1,2259,1,2259, +1,2259,1,2259,1,2259,1,2259,1,2259,1,2259,1,2259,1,2260,1,2260,1,2260,1, +2260,1,2260,1,2260,1,2260,1,2261,1,2261,1,2261,1,2261,1,2261,1,2261,1,2261, +1,2261,1,2262,1,2262,1,2262,1,2262,1,2262,1,2262,1,2262,1,2262,1,2263,1, +2263,1,2263,1,2263,1,2263,1,2263,1,2263,1,2263,1,2264,1,2264,1,2264,1,2264, +1,2264,1,2264,1,2264,1,2265,1,2265,1,2265,1,2265,1,2265,1,2265,1,2265,1, +2265,1,2265,1,2266,1,2266,1,2266,1,2266,1,2266,1,2266,1,2266,1,2266,1,2267, +1,2267,1,2267,1,2267,1,2267,1,2267,1,2267,1,2267,1,2267,1,2267,1,2267,1, +2267,1,2267,1,2267,1,2267,1,2267,1,2267,1,2267,1,2268,1,2268,1,2268,1,2268, +1,2268,1,2268,1,2268,1,2268,1,2268,1,2268,1,2268,1,2268,1,2269,1,2269,1, +2269,1,2269,1,2269,1,2269,1,2269,1,2269,1,2269,1,2269,1,2269,1,2269,1,2269, +1,2269,1,2269,1,2269,1,2269,1,2269,1,2269,1,2269,1,2269,1,2269,1,2270,1, +2270,1,2270,1,2270,1,2270,1,2270,1,2270,1,2270,1,2270,1,2270,1,2270,1,2270, +1,2270,1,2270,1,2270,1,2270,1,2270,1,2270,1,2270,1,2270,1,2270,1,2270,1, +2271,1,2271,1,2271,1,2271,1,2271,1,2271,1,2271,1,2271,1,2271,1,2271,1,2271, +1,2271,1,2271,1,2271,1,2271,1,2271,1,2271,1,2272,1,2272,1,2272,1,2272,1, +2272,1,2272,1,2272,1,2272,1,2272,1,2273,1,2273,1,2273,1,2273,1,2273,1,2273, +1,2273,1,2274,1,2274,1,2274,1,2274,1,2274,1,2274,1,2274,1,2274,1,2274,1, +2274,1,2274,1,2275,1,2275,1,2275,1,2275,1,2275,1,2275,1,2275,1,2275,1,2275, +1,2275,1,2275,1,2275,1,2275,1,2275,1,2275,1,2275,1,2276,1,2276,1,2276,1, +2276,1,2276,1,2276,1,2276,1,2276,1,2276,1,2276,1,2276,1,2276,1,2276,1,2276, +1,2276,1,2276,1,2276,1,2277,1,2277,1,2277,1,2277,1,2277,1,2277,1,2277,1, +2277,1,2277,1,2277,1,2277,1,2277,1,2277,1,2277,1,2277,1,2277,1,2277,1,2277, +1,2277,1,2278,1,2278,1,2278,1,2278,1,2278,1,2278,1,2278,1,2278,1,2278,1, +2278,1,2278,1,2278,1,2278,1,2278,1,2278,1,2278,1,2278,1,2278,1,2279,1,2279, +1,2279,1,2279,1,2279,1,2279,1,2279,1,2279,1,2279,1,2279,1,2279,1,2279,1, +2279,1,2279,1,2279,1,2279,1,2279,1,2279,1,2279,1,2280,1,2280,1,2280,1,2280, +1,2280,1,2280,1,2280,1,2280,1,2280,1,2281,1,2281,1,2281,1,2281,1,2281,1, +2281,1,2281,1,2281,1,2281,1,2281,1,2281,1,2281,1,2281,1,2282,1,2282,1,2282, +1,2282,1,2282,1,2282,1,2282,1,2282,1,2283,1,2283,1,2283,1,2283,1,2283,1, +2284,1,2284,1,2284,1,2284,1,2284,1,2284,1,2284,1,2284,1,2284,1,2284,1,2285, +1,2285,1,2285,1,2285,1,2285,1,2285,1,2285,1,2285,1,2286,1,2286,1,2286,1, +2286,1,2286,1,2286,1,2286,1,2286,1,2286,1,2286,1,2286,1,2287,1,2287,1,2287, +1,2287,1,2287,1,2287,1,2287,1,2287,1,2288,1,2288,1,2288,1,2288,1,2288,1, +2288,1,2288,1,2289,1,2289,1,2289,1,2289,1,2289,1,2289,1,2290,1,2290,1,2290, +1,2290,1,2290,1,2291,1,2291,1,2291,1,2291,1,2291,1,2291,1,2291,1,2292,1, +2292,1,2292,1,2292,1,2292,1,2292,1,2292,1,2292,1,2293,1,2293,1,2293,1,2293, +1,2293,1,2293,1,2294,1,2294,1,2294,1,2294,1,2294,1,2295,1,2295,1,2295,1, +2295,1,2295,1,2295,1,2295,1,2295,1,2295,1,2295,1,2295,1,2296,1,2296,1,2296, +1,2296,1,2296,1,2296,1,2296,1,2296,1,2296,1,2297,1,2297,1,2297,1,2297,1, +2297,1,2298,1,2298,1,2298,1,2298,1,2298,1,2298,1,2299,1,2299,1,2299,1,2299, +1,2299,1,2299,1,2300,1,2300,1,2300,1,2300,1,2300,1,2300,1,2300,1,2300,1, +2300,1,2300,1,2300,1,2301,1,2301,1,2301,1,2301,1,2301,1,2301,1,2301,1,2301, +1,2301,1,2301,1,2301,1,2301,1,2301,1,2302,1,2302,1,2302,1,2302,1,2302,1, +2302,1,2302,1,2303,1,2303,1,2303,1,2303,1,2303,1,2303,1,2303,1,2303,1,2304, +1,2304,1,2304,1,2304,1,2304,1,2304,1,2304,1,2304,1,2304,1,2304,1,2304,1, +2305,1,2305,1,2305,1,2305,1,2305,1,2306,1,2306,1,2306,1,2306,1,2306,1,2307, +1,2307,1,2307,1,2307,1,2307,1,2307,1,2307,1,2307,1,2307,1,2308,1,2308,1, +2308,1,2308,1,2308,1,2308,1,2308,1,2308,1,2309,1,2309,1,2309,1,2309,1,2309, +1,2309,1,2309,1,2309,1,2310,1,2310,1,2310,1,2310,1,2310,1,2310,1,2311,1, +2311,1,2311,1,2311,1,2311,1,2311,1,2311,1,2311,1,2311,1,2311,1,2311,1,2311, +1,2311,1,2311,1,2311,1,2311,1,2311,1,2311,1,2311,1,2311,1,2312,1,2312,1, +2312,1,2312,1,2313,1,2313,1,2313,1,2313,1,2313,1,2313,1,2313,1,2313,1,2313, +1,2313,1,2313,1,2313,1,2314,1,2314,1,2314,1,2314,1,2315,1,2315,1,2315,1, +2315,1,2315,1,2315,1,2315,1,2315,1,2315,1,2315,1,2315,1,2316,1,2316,1,2316, +1,2316,1,2316,1,2316,1,2316,1,2317,1,2317,1,2317,1,2317,1,2317,1,2317,1, +2317,1,2317,1,2317,1,2317,1,2317,1,2317,1,2317,1,2317,1,2318,1,2318,1,2318, +1,2318,1,2318,1,2318,1,2318,1,2318,1,2319,1,2319,1,2319,1,2319,1,2319,1, +2319,1,2319,1,2319,1,2319,1,2320,1,2320,1,2320,1,2320,1,2320,1,2320,1,2320, +1,2320,1,2320,1,2320,1,2320,1,2320,1,2320,1,2321,1,2321,1,2321,1,2321,1, +2321,1,2321,1,2321,1,2321,1,2321,1,2321,1,2321,1,2322,1,2322,1,2322,1,2322, +1,2322,1,2322,1,2322,1,2322,1,2322,1,2322,1,2323,1,2323,1,2323,1,2323,1, +2323,1,2323,1,2323,1,2323,1,2324,1,2324,1,2324,1,2324,1,2324,1,2324,1,2324, +1,2324,1,2324,1,2324,1,2324,1,2324,1,2324,1,2324,1,2324,1,2324,1,2324,1, +2325,1,2325,1,2325,1,2325,1,2325,1,2325,1,2325,1,2325,1,2325,1,2325,1,2325, +1,2326,1,2326,1,2326,1,2326,1,2326,1,2326,1,2326,1,2326,1,2326,1,2326,1, +2326,1,2327,1,2327,1,2327,1,2327,1,2327,1,2327,1,2327,1,2327,1,2327,1,2327, +1,2328,1,2328,1,2328,1,2328,1,2328,1,2328,1,2328,1,2328,1,2328,1,2328,1, +2329,1,2329,1,2329,1,2329,1,2329,1,2329,1,2329,1,2329,1,2329,1,2330,1,2330, +1,2330,1,2330,1,2330,1,2330,1,2330,1,2330,1,2330,1,2330,1,2330,1,2330,1, +2330,1,2330,1,2330,1,2330,1,2330,1,2330,1,2330,1,2330,1,2330,1,2330,1,2330, +1,2330,1,2330,1,2330,1,2330,1,2331,1,2331,1,2331,1,2331,1,2331,1,2331,1, +2331,1,2331,1,2331,1,2331,1,2331,1,2331,1,2331,1,2331,1,2331,1,2331,1,2331, +1,2332,1,2332,1,2332,1,2332,1,2332,1,2332,1,2332,1,2332,1,2332,1,2332,1, +2332,1,2332,1,2332,1,2332,1,2332,1,2332,1,2332,1,2332,1,2332,1,2332,1,2332, +1,2333,1,2333,1,2333,1,2333,1,2333,1,2333,1,2333,1,2333,1,2333,1,2333,1, +2334,1,2334,1,2334,1,2334,1,2334,1,2334,1,2334,1,2334,1,2334,1,2334,1,2334, +1,2335,1,2335,1,2335,1,2335,1,2335,1,2335,1,2335,1,2335,1,2335,1,2335,1, +2335,1,2335,1,2335,1,2335,1,2336,1,2336,1,2336,1,2336,1,2336,1,2336,1,2336, +1,2336,1,2336,1,2337,1,2337,1,2337,1,2337,1,2337,1,2337,1,2337,1,2337,1, +2337,1,2338,1,2338,1,2338,1,2338,1,2338,1,2338,1,2339,1,2339,1,2339,1,2339, +1,2339,1,2339,1,2339,1,2339,1,2339,1,2339,1,2339,1,2339,1,2340,1,2340,1, +2340,1,2340,1,2340,1,2340,1,2340,1,2340,1,2340,1,2341,1,2341,1,2341,1,2341, +1,2341,1,2341,1,2341,1,2341,1,2342,1,2342,1,2342,1,2342,1,2342,1,2342,1, +2342,1,2342,1,2342,1,2342,1,2343,1,2343,1,2343,1,2343,1,2343,1,2343,1,2343, +1,2343,1,2343,1,2343,1,2343,1,2343,1,2343,1,2344,1,2344,1,2344,1,2344,1, +2344,1,2344,1,2344,1,2344,1,2344,1,2345,1,2345,1,2345,1,2345,1,2345,1,2345, +1,2345,1,2346,1,2346,1,2346,1,2346,1,2346,1,2346,1,2346,1,2346,1,2346,1, +2346,1,2346,1,2346,1,2346,1,2346,1,2346,1,2346,1,2346,1,2347,1,2347,1,2347, +1,2347,1,2347,1,2347,1,2347,1,2347,1,2347,1,2347,1,2347,1,2347,1,2347,1, +2348,1,2348,1,2348,1,2348,1,2348,1,2348,1,2348,1,2348,1,2349,1,2349,1,2349, +1,2349,1,2350,1,2350,1,2350,1,2350,1,2350,1,2350,1,2350,1,2350,1,2350,1, +2350,1,2350,1,2351,1,2351,1,2351,1,2351,1,2351,1,2351,1,2351,1,2351,1,2351, +1,2351,1,2351,1,2351,1,2351,1,2351,1,2351,1,2352,1,2352,1,2352,1,2353,1, +2353,1,2353,1,2353,1,2353,1,2353,1,2353,1,2353,1,2353,1,2353,1,2353,1,2354, +1,2354,1,2354,1,2354,1,2354,1,2354,1,2355,1,2355,1,2355,1,2355,1,2355,1, +2356,1,2356,1,2356,1,2356,1,2356,1,2356,1,2356,1,2356,1,2356,1,2356,1,2356, +1,2356,1,2356,1,2356,1,2357,1,2357,1,2357,1,2357,1,2358,1,2358,1,2358,1, +2358,1,2358,1,2358,1,2358,1,2358,1,2358,1,2358,1,2358,1,2358,1,2358,1,2358, +1,2358,1,2358,1,2358,1,2358,1,2358,1,2358,1,2358,1,2358,1,2358,1,2358,1, +2358,1,2359,1,2359,1,2359,1,2359,1,2359,1,2359,1,2359,1,2359,1,2360,1,2360, +1,2360,1,2360,1,2360,1,2361,1,2361,1,2361,1,2361,1,2361,1,2361,1,2362,1, +2362,1,2362,1,2362,1,2362,1,2362,1,2362,1,2362,1,2362,1,2362,1,2362,1,2363, +1,2363,1,2363,1,2363,1,2363,1,2363,1,2363,1,2363,1,2363,1,2363,1,2363,1, +2363,1,2363,1,2363,1,2363,1,2363,1,2363,1,2363,1,2364,1,2364,1,2364,1,2364, +1,2364,1,2364,1,2364,1,2364,1,2364,1,2364,1,2364,1,2364,1,2364,1,2364,1, +2364,1,2364,1,2365,1,2365,1,2365,1,2365,1,2365,1,2365,1,2365,1,2365,1,2365, +1,2365,1,2365,1,2365,1,2365,1,2365,1,2365,1,2365,1,2365,1,2365,1,2365,1, +2366,1,2366,1,2366,1,2366,1,2366,1,2366,1,2366,1,2366,1,2366,1,2366,1,2366, +1,2366,1,2366,1,2366,1,2366,1,2366,1,2366,1,2366,1,2366,1,2366,1,2366,1, +2366,1,2366,1,2367,1,2367,1,2367,1,2367,1,2367,1,2367,1,2367,1,2367,1,2367, +1,2367,1,2367,1,2367,1,2367,1,2367,1,2367,1,2368,1,2368,1,2368,1,2368,1, +2368,1,2368,1,2368,1,2368,1,2368,1,2368,1,2368,1,2369,1,2369,1,2369,1,2369, +1,2369,1,2369,1,2369,1,2369,1,2370,1,2370,1,2370,1,2370,1,2370,1,2370,1, +2370,1,2370,1,2370,1,2370,1,2371,1,2371,1,2371,1,2371,1,2371,1,2371,1,2371, +1,2371,1,2371,1,2371,1,2371,1,2372,1,2372,1,2372,1,2372,1,2372,1,2372,1, +2372,1,2372,1,2372,1,2372,1,2372,1,2373,1,2373,1,2373,1,2373,1,2373,1,2373, +1,2373,1,2373,1,2373,1,2374,1,2374,1,2374,1,2374,1,2374,1,2374,1,2374,1, +2374,1,2375,1,2375,1,2375,1,2375,1,2375,1,2376,1,2376,1,2376,1,2376,1,2376, +1,2376,1,2376,1,2376,1,2376,1,2376,1,2377,1,2377,1,2377,1,2377,1,2377,1, +2377,1,2377,1,2377,1,2377,1,2377,1,2377,1,2377,1,2377,1,2377,1,2377,1,2377, +1,2378,1,2378,1,2378,1,2378,1,2378,1,2378,1,2378,1,2378,1,2378,1,2378,1, +2378,1,2378,1,2379,1,2379,1,2379,1,2379,1,2379,1,2379,1,2379,1,2379,1,2379, +1,2379,1,2379,1,2379,1,2380,1,2380,1,2380,1,2380,1,2380,1,2380,1,2380,1, +2380,1,2380,1,2380,1,2380,1,2380,1,2380,1,2380,1,2381,1,2381,1,2381,1,2381, +1,2381,1,2381,1,2381,1,2381,1,2381,1,2381,1,2381,1,2382,1,2382,1,2382,1, +2382,1,2382,1,2382,1,2382,1,2382,1,2383,1,2383,1,2383,1,2383,1,2383,1,2384, +1,2384,1,2384,1,2384,1,2384,1,2384,1,2384,1,2384,1,2385,1,2385,1,2385,1, +2385,1,2385,1,2386,1,2386,1,2386,1,2386,1,2386,1,2386,1,2387,1,2387,1,2387, +1,2387,1,2387,1,2387,1,2387,1,2387,1,2387,1,2387,1,2388,1,2388,1,2388,1, +2388,1,2388,1,2388,1,2388,1,2388,1,2388,1,2388,1,2389,1,2389,1,2389,1,2389, +1,2389,1,2389,1,2389,1,2389,1,2389,1,2389,1,2389,1,2390,1,2390,1,2390,1, +2390,1,2390,1,2390,1,2390,1,2390,1,2391,1,2391,1,2391,1,2391,1,2391,1,2391, +1,2391,1,2391,1,2391,1,2391,1,2391,1,2391,1,2391,1,2392,1,2392,1,2392,1, +2392,1,2392,1,2392,1,2392,1,2392,1,2392,1,2392,1,2392,1,2392,1,2392,1,2392, +1,2392,1,2392,1,2393,1,2393,1,2393,1,2393,1,2393,1,2393,1,2393,1,2393,1, +2393,1,2393,1,2393,1,2393,1,2393,1,2393,1,2393,1,2393,1,2394,1,2394,1,2394, +1,2394,1,2394,1,2395,1,2395,1,2395,1,2395,1,2396,1,2396,1,2396,1,2396,1, +2396,1,2397,1,2397,1,2397,1,2397,1,2397,1,2397,1,2397,1,2398,1,2398,1,2398, +1,2398,1,2398,1,2398,1,2398,1,2399,1,2399,1,2399,1,2399,1,2400,1,2400,1, +2400,1,2400,1,2400,1,2400,1,2400,1,2400,1,2400,1,2401,1,2401,1,2401,1,2401, +1,2401,1,2401,1,2401,1,2401,1,2401,1,2401,1,2401,1,2401,1,2401,1,2401,1, +2401,1,2401,1,2401,1,2402,1,2402,1,2402,1,2402,1,2402,1,2403,1,2403,1,2403, +1,2403,1,2404,1,2404,1,2404,1,2404,1,2404,1,2404,1,2404,1,2405,1,2405,1, +2405,1,2405,1,2405,1,2405,1,2405,1,2405,1,2405,1,2405,1,2405,1,2405,1,2406, +1,2406,1,2406,1,2406,1,2407,1,2407,1,2407,1,2407,1,2407,1,2407,1,2408,1, +2408,1,2408,1,2408,1,2409,1,2409,1,2409,1,2409,1,2409,1,2409,1,2409,1,2409, +1,2409,1,2409,1,2409,1,2409,1,2409,1,2409,1,2409,1,2409,1,2410,1,2410,1, +2410,1,2410,1,2410,1,2410,1,2411,1,2411,1,2411,1,2411,1,2411,1,2411,1,2412, +1,2412,1,2412,1,2412,1,2412,1,2412,1,2412,1,2412,1,2412,1,2412,1,2412,1, +2413,1,2413,1,2413,1,2413,1,2413,1,2413,1,2413,1,2414,1,2414,1,2414,1,2414, +1,2414,1,2414,1,2414,1,2414,1,2415,1,2415,1,2415,1,2415,1,2415,1,2416,1, +2416,1,2416,1,2416,1,2417,1,2417,1,2417,1,2417,1,2417,1,2417,1,2417,1,2418, +1,2418,1,2418,1,2418,1,2418,1,2419,1,2419,1,2419,1,2419,1,2419,1,2419,1, +2419,1,2419,1,2419,1,2420,1,2420,1,2420,1,2420,1,2420,1,2420,1,2421,1,2421, +1,2421,1,2421,1,2421,1,2421,1,2421,1,2421,1,2421,1,2422,1,2422,1,2422,1, +2422,1,2422,1,2422,1,2422,1,2422,1,2423,1,2423,1,2423,1,2423,1,2423,1,2423, +1,2423,1,2423,1,2423,1,2423,1,2424,1,2424,1,2424,1,2424,1,2424,1,2424,1, +2424,1,2424,1,2424,1,2424,1,2424,1,2424,1,2425,1,2425,1,2425,1,2425,1,2425, +1,2425,1,2425,1,2425,1,2425,1,2426,1,2426,1,2426,1,2426,1,2426,1,2426,1, +2426,1,2427,1,2427,1,2427,1,2427,1,2427,1,2427,1,2427,1,2428,1,2428,1,2428, +1,2428,1,2428,1,2428,1,2428,1,2428,1,2428,1,2428,1,2428,1,2428,1,2429,1, +2429,1,2429,1,2429,1,2429,1,2429,1,2429,1,2429,1,2429,1,2429,1,2429,1,2429, +1,2430,1,2430,1,2430,1,2430,1,2430,1,2430,1,2430,1,2431,1,2431,1,2431,1, +2431,1,2432,1,2432,1,2432,1,2432,1,2432,1,2432,1,2432,1,2432,1,2432,1,2432, +1,2433,1,2433,1,2433,1,2433,1,2433,1,2433,5,2433,32000,8,2433,10,2433,12, +2433,32003,9,2433,1,2433,1,2433,1,2434,1,2434,1,2434,5,2434,32010,8,2434, +10,2434,12,2434,32013,9,2434,1,2434,4,2434,32016,8,2434,11,2434,12,2434, +32017,1,2435,1,2435,1,2435,3,2435,32023,8,2435,1,2435,1,2435,5,2435,32027, +8,2435,10,2435,12,2435,32030,9,2435,1,2435,4,2435,32033,8,2435,11,2435,12, +2435,32034,1,2436,1,2436,1,2436,1,2437,1,2437,1,2438,4,2438,32043,8,2438, +11,2438,12,2438,32044,1,2439,1,2439,1,2439,3,2439,32050,8,2439,1,2439,1, +2439,4,2439,32054,8,2439,11,2439,12,2439,32055,3,2439,32058,8,2439,3,2439, +32060,8,2439,1,2439,3,2439,32063,8,2439,1,2440,1,2440,1,2440,1,2440,1,2440, +5,2440,32070,8,2440,10,2440,12,2440,32073,9,2440,1,2440,1,2440,1,2441,1, +2441,1,2441,1,2441,1,2441,1,2441,1,2441,1,2441,1,2441,1,2441,1,2441,1,2441, +1,2441,3,2441,32090,8,2441,1,2441,1,2441,1,2441,1,2441,1,2442,1,2442,5,2442, +32098,8,2442,10,2442,12,2442,32101,9,2442,1,2442,1,2442,1,2443,1,2443,5, +2443,32107,8,2443,10,2443,12,2443,32110,9,2443,1,2443,1,2443,1,2444,1,2444, +5,2444,32116,8,2444,10,2444,12,2444,32119,9,2444,1,2444,1,2444,1,2445,1, +2445,5,2445,32125,8,2445,10,2445,12,2445,32128,9,2445,1,2445,1,2445,1,2446, +1,2446,5,2446,32134,8,2446,10,2446,12,2446,32137,9,2446,1,2446,1,2446,1, +2447,1,2447,5,2447,32143,8,2447,10,2447,12,2447,32146,9,2447,1,2447,1,2447, +1,2448,1,2448,5,2448,32152,8,2448,10,2448,12,2448,32155,9,2448,1,2448,1, +2448,1,2449,1,2449,5,2449,32161,8,2449,10,2449,12,2449,32164,9,2449,1,2449, +1,2449,1,2450,1,2450,5,2450,32170,8,2450,10,2450,12,2450,32173,9,2450,1, +2450,1,2450,1,2451,1,2451,5,2451,32179,8,2451,10,2451,12,2451,32182,9,2451, +1,2451,1,2451,1,2452,1,2452,5,2452,32188,8,2452,10,2452,12,2452,32191,9, +2452,1,2452,1,2452,1,2453,1,2453,1,2453,1,2453,4,2453,32199,8,2453,11,2453, +12,2453,32200,1,2453,1,2453,1,2454,1,2454,1,2455,1,2455,1,2456,1,2456,1, +2457,1,2457,1,2458,1,2458,1,2458,1,2459,1,2459,1,2460,1,2460,1,2461,1,2461, +1,2462,1,2462,1,2463,1,2463,1,2464,1,2464,1,2465,1,2465,1,2465,1,2466,1, +2466,1,2467,1,2467,1,2468,1,2468,1,2469,1,2469,1,2470,1,2470,1,2470,1,2470, +5,2470,32243,8,2470,10,2470,12,2470,32246,9,2470,1,2470,1,2470,1,2470,1, +2470,1,2470,3,2470,32253,8,2470,1,2471,1,2471,1,2471,1,2471,1,2471,1,2471, +1,2471,1,2471,3,2471,32263,8,2471,1,2472,1,2472,1,2473,1,2473,1,2474,1,2474, +1,2475,1,2475,1,2476,1,2476,1,2477,1,2477,1,2478,1,2478,1,2479,1,2479,1, +2480,1,2480,1,2481,1,2481,1,2482,1,2482,1,2483,1,2483,1,2484,1,2484,1,2484, +1,2484,5,2484,32293,8,2484,10,2484,12,2484,32296,9,2484,1,2484,1,2484,1, +2484,1,2484,1,2485,1,2485,1,2485,1,2485,5,2485,32306,8,2485,10,2485,12,2485, +32309,9,2485,1,2485,1,2485,1,2485,1,2485,1,2485,1,2486,1,2486,1,2486,1,2486, +1,2486,1,2486,1,2486,1,2486,3,2486,32324,8,2486,1,2486,1,2486,5,2486,32328, +8,2486,10,2486,12,2486,32331,9,2486,3,2486,32333,8,2486,1,2486,1,2486,1, +2486,1,2486,1,2487,1,2487,1,2487,1,2487,1,2487,1,2487,1,2487,1,2487,3,2487, +32347,8,2487,1,2487,1,2487,5,2487,32351,8,2487,10,2487,12,2487,32354,9,2487, +3,2487,32356,8,2487,1,2487,1,2487,1,2488,1,2488,3,2488,32362,8,2488,1,2489, +1,2489,1,2489,5,2489,32367,8,2489,10,2489,12,2489,32370,9,2489,1,2490,1, +2490,1,2490,1,2490,1,2490,4,2490,32377,8,2490,11,2490,12,2490,32378,1,2491, +4,2491,32382,8,2491,11,2491,12,2491,32383,1,2491,1,2491,1,2492,1,2492,3, +2492,32390,8,2492,1,2493,1,2493,1,2494,1,2494,1,2495,5,2495,32397,8,2495, +10,2495,12,2495,32400,9,2495,1,2495,3,2495,32403,8,2495,1,2495,4,2495,32406, +8,2495,11,2495,12,2495,32407,1,2496,3,2496,32411,8,2496,1,2496,1,2496,1, +2497,1,2497,12,32099,32108,32117,32126,32135,32144,32153,32162,32171,32180, +32189,32307,0,2498,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23, +12,25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,47, +24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,69,35,71, +36,73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,44,89,45,91,46,93,47,95, +48,97,49,99,50,101,51,103,52,105,53,107,54,109,55,111,56,113,57,115,58,117, +59,119,60,121,61,123,62,125,63,127,64,129,65,131,66,133,67,135,68,137,69, +139,70,141,71,143,72,145,73,147,74,149,75,151,76,153,77,155,78,157,79,159, +80,161,81,163,82,165,83,167,84,169,85,171,86,173,87,175,88,177,89,179,90, +181,91,183,92,185,93,187,94,189,95,191,96,193,97,195,98,197,99,199,100,201, +101,203,102,205,103,207,104,209,105,211,106,213,107,215,108,217,109,219, +110,221,111,223,112,225,113,227,114,229,115,231,116,233,117,235,118,237, +119,239,120,241,121,243,122,245,123,247,124,249,125,251,126,253,127,255, +128,257,129,259,130,261,131,263,132,265,133,267,134,269,135,271,136,273, +137,275,138,277,139,279,140,281,141,283,142,285,143,287,144,289,145,291, +146,293,147,295,148,297,149,299,150,301,151,303,152,305,153,307,154,309, +155,311,156,313,157,315,158,317,159,319,160,321,161,323,162,325,163,327, +164,329,165,331,166,333,167,335,168,337,169,339,170,341,171,343,172,345, +173,347,174,349,175,351,176,353,177,355,178,357,179,359,180,361,181,363, +182,365,183,367,184,369,185,371,186,373,187,375,188,377,189,379,190,381, +191,383,192,385,193,387,194,389,195,391,196,393,197,395,198,397,199,399, +200,401,201,403,202,405,203,407,204,409,205,411,206,413,207,415,208,417, +209,419,210,421,211,423,212,425,213,427,214,429,215,431,216,433,217,435, +218,437,219,439,220,441,221,443,222,445,223,447,224,449,225,451,226,453, +227,455,228,457,229,459,230,461,231,463,232,465,233,467,234,469,235,471, +236,473,237,475,238,477,239,479,240,481,241,483,242,485,243,487,244,489, +245,491,246,493,247,495,248,497,249,499,250,501,251,503,252,505,253,507, +254,509,255,511,256,513,257,515,258,517,259,519,260,521,261,523,262,525, +263,527,264,529,265,531,266,533,267,535,268,537,269,539,270,541,271,543, +272,545,273,547,274,549,275,551,276,553,277,555,278,557,279,559,280,561, +281,563,282,565,283,567,284,569,285,571,286,573,287,575,288,577,289,579, +290,581,291,583,292,585,293,587,294,589,295,591,296,593,297,595,298,597, +299,599,300,601,301,603,302,605,303,607,304,609,305,611,306,613,307,615, +308,617,309,619,310,621,311,623,312,625,313,627,314,629,315,631,316,633, +317,635,318,637,319,639,320,641,321,643,322,645,323,647,324,649,325,651, +326,653,327,655,328,657,329,659,330,661,331,663,332,665,333,667,334,669, +335,671,336,673,337,675,338,677,339,679,340,681,341,683,342,685,343,687, +344,689,345,691,346,693,347,695,348,697,349,699,350,701,351,703,352,705, +353,707,354,709,355,711,356,713,357,715,358,717,359,719,360,721,361,723, +362,725,363,727,364,729,365,731,366,733,367,735,368,737,369,739,370,741, +371,743,372,745,373,747,374,749,375,751,376,753,377,755,378,757,379,759, +380,761,381,763,382,765,383,767,384,769,385,771,386,773,387,775,388,777, +389,779,390,781,391,783,392,785,393,787,394,789,395,791,396,793,397,795, +398,797,399,799,400,801,401,803,402,805,403,807,404,809,405,811,406,813, +407,815,408,817,409,819,410,821,411,823,412,825,413,827,414,829,415,831, +416,833,417,835,418,837,419,839,420,841,421,843,422,845,423,847,424,849, +425,851,426,853,427,855,428,857,429,859,430,861,431,863,432,865,433,867, +434,869,435,871,436,873,437,875,438,877,439,879,440,881,441,883,442,885, +443,887,444,889,445,891,446,893,447,895,448,897,449,899,450,901,451,903, +452,905,453,907,454,909,455,911,456,913,457,915,458,917,459,919,460,921, +461,923,462,925,463,927,464,929,465,931,466,933,467,935,468,937,469,939, +470,941,471,943,472,945,473,947,474,949,475,951,476,953,477,955,478,957, +479,959,480,961,481,963,482,965,483,967,484,969,485,971,486,973,487,975, +488,977,489,979,490,981,491,983,492,985,493,987,494,989,495,991,496,993, +497,995,498,997,499,999,500,1001,501,1003,502,1005,503,1007,504,1009,505, +1011,506,1013,507,1015,508,1017,509,1019,510,1021,511,1023,512,1025,513, +1027,514,1029,515,1031,516,1033,517,1035,518,1037,519,1039,520,1041,521, +1043,522,1045,523,1047,524,1049,525,1051,526,1053,527,1055,528,1057,529, +1059,530,1061,531,1063,532,1065,533,1067,534,1069,535,1071,536,1073,537, +1075,538,1077,539,1079,540,1081,541,1083,542,1085,543,1087,544,1089,545, +1091,546,1093,547,1095,548,1097,549,1099,550,1101,551,1103,552,1105,553, +1107,554,1109,555,1111,556,1113,557,1115,558,1117,559,1119,560,1121,561, +1123,562,1125,563,1127,564,1129,565,1131,566,1133,567,1135,568,1137,569, +1139,570,1141,571,1143,572,1145,573,1147,574,1149,575,1151,576,1153,577, +1155,578,1157,579,1159,580,1161,581,1163,582,1165,583,1167,584,1169,585, +1171,586,1173,587,1175,588,1177,589,1179,590,1181,591,1183,592,1185,593, +1187,594,1189,595,1191,596,1193,597,1195,598,1197,599,1199,600,1201,601, +1203,602,1205,603,1207,604,1209,605,1211,606,1213,607,1215,608,1217,609, +1219,610,1221,611,1223,612,1225,613,1227,614,1229,615,1231,616,1233,617, +1235,618,1237,619,1239,620,1241,621,1243,622,1245,623,1247,624,1249,625, +1251,626,1253,627,1255,628,1257,629,1259,630,1261,631,1263,632,1265,633, +1267,634,1269,635,1271,636,1273,637,1275,638,1277,639,1279,640,1281,641, +1283,642,1285,643,1287,644,1289,645,1291,646,1293,647,1295,648,1297,649, +1299,650,1301,651,1303,652,1305,653,1307,654,1309,655,1311,656,1313,657, +1315,658,1317,659,1319,660,1321,661,1323,662,1325,663,1327,664,1329,665, +1331,666,1333,667,1335,668,1337,669,1339,670,1341,671,1343,672,1345,673, +1347,674,1349,675,1351,676,1353,677,1355,678,1357,679,1359,680,1361,681, +1363,682,1365,683,1367,684,1369,685,1371,686,1373,687,1375,688,1377,689, +1379,690,1381,691,1383,692,1385,693,1387,694,1389,695,1391,696,1393,697, +1395,698,1397,699,1399,700,1401,701,1403,702,1405,703,1407,704,1409,705, +1411,706,1413,707,1415,708,1417,709,1419,710,1421,711,1423,712,1425,713, +1427,714,1429,715,1431,716,1433,717,1435,718,1437,719,1439,720,1441,721, +1443,722,1445,723,1447,724,1449,725,1451,726,1453,727,1455,728,1457,729, +1459,730,1461,731,1463,732,1465,733,1467,734,1469,735,1471,736,1473,737, +1475,738,1477,739,1479,740,1481,741,1483,742,1485,743,1487,744,1489,745, +1491,746,1493,747,1495,748,1497,749,1499,750,1501,751,1503,752,1505,753, +1507,754,1509,755,1511,756,1513,757,1515,758,1517,759,1519,760,1521,761, +1523,762,1525,763,1527,764,1529,765,1531,766,1533,767,1535,768,1537,769, +1539,770,1541,771,1543,772,1545,773,1547,774,1549,775,1551,776,1553,777, +1555,778,1557,779,1559,780,1561,781,1563,782,1565,783,1567,784,1569,785, +1571,786,1573,787,1575,788,1577,789,1579,790,1581,791,1583,792,1585,793, +1587,794,1589,795,1591,796,1593,797,1595,798,1597,799,1599,800,1601,801, +1603,802,1605,803,1607,804,1609,805,1611,806,1613,807,1615,808,1617,809, +1619,810,1621,811,1623,812,1625,813,1627,814,1629,815,1631,816,1633,817, +1635,818,1637,819,1639,820,1641,821,1643,822,1645,823,1647,824,1649,825, +1651,826,1653,827,1655,828,1657,829,1659,830,1661,831,1663,832,1665,833, +1667,834,1669,835,1671,836,1673,837,1675,838,1677,839,1679,840,1681,841, +1683,842,1685,843,1687,844,1689,845,1691,846,1693,847,1695,848,1697,849, +1699,850,1701,851,1703,852,1705,853,1707,854,1709,855,1711,856,1713,857, +1715,858,1717,859,1719,860,1721,861,1723,862,1725,863,1727,864,1729,865, +1731,866,1733,867,1735,868,1737,869,1739,870,1741,871,1743,872,1745,873, +1747,874,1749,875,1751,876,1753,877,1755,878,1757,879,1759,880,1761,881, +1763,882,1765,883,1767,884,1769,885,1771,886,1773,887,1775,888,1777,889, +1779,890,1781,891,1783,892,1785,893,1787,894,1789,895,1791,896,1793,897, +1795,898,1797,899,1799,900,1801,901,1803,902,1805,903,1807,904,1809,905, +1811,906,1813,907,1815,908,1817,909,1819,910,1821,911,1823,912,1825,913, +1827,914,1829,915,1831,916,1833,917,1835,918,1837,919,1839,920,1841,921, +1843,922,1845,923,1847,924,1849,925,1851,926,1853,927,1855,928,1857,929, +1859,930,1861,931,1863,932,1865,933,1867,934,1869,935,1871,936,1873,937, +1875,938,1877,939,1879,940,1881,941,1883,942,1885,943,1887,944,1889,945, +1891,946,1893,947,1895,948,1897,949,1899,950,1901,951,1903,952,1905,953, +1907,954,1909,955,1911,956,1913,957,1915,958,1917,959,1919,960,1921,961, +1923,962,1925,963,1927,964,1929,965,1931,966,1933,967,1935,968,1937,969, +1939,970,1941,971,1943,972,1945,973,1947,974,1949,975,1951,976,1953,977, +1955,978,1957,979,1959,980,1961,981,1963,982,1965,983,1967,984,1969,985, +1971,986,1973,987,1975,988,1977,989,1979,990,1981,991,1983,992,1985,993, +1987,994,1989,995,1991,996,1993,997,1995,998,1997,999,1999,1000,2001,1001, +2003,1002,2005,1003,2007,1004,2009,1005,2011,1006,2013,1007,2015,1008,2017, +1009,2019,1010,2021,1011,2023,1012,2025,1013,2027,1014,2029,1015,2031,1016, +2033,1017,2035,1018,2037,1019,2039,1020,2041,1021,2043,1022,2045,1023,2047, +1024,2049,1025,2051,1026,2053,1027,2055,1028,2057,1029,2059,1030,2061,1031, +2063,1032,2065,1033,2067,1034,2069,1035,2071,1036,2073,1037,2075,1038,2077, +1039,2079,1040,2081,1041,2083,1042,2085,1043,2087,1044,2089,1045,2091,1046, +2093,1047,2095,1048,2097,1049,2099,1050,2101,1051,2103,1052,2105,1053,2107, +1054,2109,1055,2111,1056,2113,1057,2115,1058,2117,1059,2119,1060,2121,1061, +2123,1062,2125,1063,2127,1064,2129,1065,2131,1066,2133,1067,2135,1068,2137, +1069,2139,1070,2141,1071,2143,1072,2145,1073,2147,1074,2149,1075,2151,1076, +2153,1077,2155,1078,2157,1079,2159,1080,2161,1081,2163,1082,2165,1083,2167, +1084,2169,1085,2171,1086,2173,1087,2175,1088,2177,1089,2179,1090,2181,1091, +2183,1092,2185,1093,2187,1094,2189,1095,2191,1096,2193,1097,2195,1098,2197, +1099,2199,1100,2201,1101,2203,1102,2205,1103,2207,1104,2209,1105,2211,1106, +2213,1107,2215,1108,2217,1109,2219,1110,2221,1111,2223,1112,2225,1113,2227, +1114,2229,1115,2231,1116,2233,1117,2235,1118,2237,1119,2239,1120,2241,1121, +2243,1122,2245,1123,2247,1124,2249,1125,2251,1126,2253,1127,2255,1128,2257, +1129,2259,1130,2261,1131,2263,1132,2265,1133,2267,1134,2269,1135,2271,1136, +2273,1137,2275,1138,2277,1139,2279,1140,2281,1141,2283,1142,2285,1143,2287, +1144,2289,1145,2291,1146,2293,1147,2295,1148,2297,1149,2299,1150,2301,1151, +2303,1152,2305,1153,2307,1154,2309,1155,2311,1156,2313,1157,2315,1158,2317, +1159,2319,1160,2321,1161,2323,1162,2325,1163,2327,1164,2329,1165,2331,1166, +2333,1167,2335,1168,2337,1169,2339,1170,2341,1171,2343,1172,2345,1173,2347, +1174,2349,1175,2351,1176,2353,1177,2355,1178,2357,1179,2359,1180,2361,1181, +2363,1182,2365,1183,2367,1184,2369,1185,2371,1186,2373,1187,2375,1188,2377, +1189,2379,1190,2381,1191,2383,1192,2385,1193,2387,1194,2389,1195,2391,1196, +2393,1197,2395,1198,2397,1199,2399,1200,2401,1201,2403,1202,2405,1203,2407, +1204,2409,1205,2411,1206,2413,1207,2415,1208,2417,1209,2419,1210,2421,1211, +2423,1212,2425,1213,2427,1214,2429,1215,2431,1216,2433,1217,2435,1218,2437, +1219,2439,1220,2441,1221,2443,1222,2445,1223,2447,1224,2449,1225,2451,1226, +2453,1227,2455,1228,2457,1229,2459,1230,2461,1231,2463,1232,2465,1233,2467, +1234,2469,1235,2471,1236,2473,1237,2475,1238,2477,1239,2479,1240,2481,1241, +2483,1242,2485,1243,2487,1244,2489,1245,2491,1246,2493,1247,2495,1248,2497, +1249,2499,1250,2501,1251,2503,1252,2505,1253,2507,1254,2509,1255,2511,1256, +2513,1257,2515,1258,2517,1259,2519,1260,2521,1261,2523,1262,2525,1263,2527, +1264,2529,1265,2531,1266,2533,1267,2535,1268,2537,1269,2539,1270,2541,1271, +2543,1272,2545,1273,2547,1274,2549,1275,2551,1276,2553,1277,2555,1278,2557, +1279,2559,1280,2561,1281,2563,1282,2565,1283,2567,1284,2569,1285,2571,1286, +2573,1287,2575,1288,2577,1289,2579,1290,2581,1291,2583,1292,2585,1293,2587, +1294,2589,1295,2591,1296,2593,1297,2595,1298,2597,1299,2599,1300,2601,1301, +2603,1302,2605,1303,2607,1304,2609,1305,2611,1306,2613,1307,2615,1308,2617, +1309,2619,1310,2621,1311,2623,1312,2625,1313,2627,1314,2629,1315,2631,1316, +2633,1317,2635,1318,2637,1319,2639,1320,2641,1321,2643,1322,2645,1323,2647, +1324,2649,1325,2651,1326,2653,1327,2655,1328,2657,1329,2659,1330,2661,1331, +2663,1332,2665,1333,2667,1334,2669,1335,2671,1336,2673,1337,2675,1338,2677, +1339,2679,1340,2681,1341,2683,1342,2685,1343,2687,1344,2689,1345,2691,1346, +2693,1347,2695,1348,2697,1349,2699,1350,2701,1351,2703,1352,2705,1353,2707, +1354,2709,1355,2711,1356,2713,1357,2715,1358,2717,1359,2719,1360,2721,1361, +2723,1362,2725,1363,2727,1364,2729,1365,2731,1366,2733,1367,2735,1368,2737, +1369,2739,1370,2741,1371,2743,1372,2745,1373,2747,1374,2749,1375,2751,1376, +2753,1377,2755,1378,2757,1379,2759,1380,2761,1381,2763,1382,2765,1383,2767, +1384,2769,1385,2771,1386,2773,1387,2775,1388,2777,1389,2779,1390,2781,1391, +2783,1392,2785,1393,2787,1394,2789,1395,2791,1396,2793,1397,2795,1398,2797, +1399,2799,1400,2801,1401,2803,1402,2805,1403,2807,1404,2809,1405,2811,1406, +2813,1407,2815,1408,2817,1409,2819,1410,2821,1411,2823,1412,2825,1413,2827, +1414,2829,1415,2831,1416,2833,1417,2835,1418,2837,1419,2839,1420,2841,1421, +2843,1422,2845,1423,2847,1424,2849,1425,2851,1426,2853,1427,2855,1428,2857, +1429,2859,1430,2861,1431,2863,1432,2865,1433,2867,1434,2869,1435,2871,1436, +2873,1437,2875,1438,2877,1439,2879,1440,2881,1441,2883,1442,2885,1443,2887, +1444,2889,1445,2891,1446,2893,1447,2895,1448,2897,1449,2899,1450,2901,1451, +2903,1452,2905,1453,2907,1454,2909,1455,2911,1456,2913,1457,2915,1458,2917, +1459,2919,1460,2921,1461,2923,1462,2925,1463,2927,1464,2929,1465,2931,1466, +2933,1467,2935,1468,2937,1469,2939,1470,2941,1471,2943,1472,2945,1473,2947, +1474,2949,1475,2951,1476,2953,1477,2955,1478,2957,1479,2959,1480,2961,1481, +2963,1482,2965,1483,2967,1484,2969,1485,2971,1486,2973,1487,2975,1488,2977, +1489,2979,1490,2981,1491,2983,1492,2985,1493,2987,1494,2989,1495,2991,1496, +2993,1497,2995,1498,2997,1499,2999,1500,3001,1501,3003,1502,3005,1503,3007, +1504,3009,1505,3011,1506,3013,1507,3015,1508,3017,1509,3019,1510,3021,1511, +3023,1512,3025,1513,3027,1514,3029,1515,3031,1516,3033,1517,3035,1518,3037, +1519,3039,1520,3041,1521,3043,1522,3045,1523,3047,1524,3049,1525,3051,1526, +3053,1527,3055,1528,3057,1529,3059,1530,3061,1531,3063,1532,3065,1533,3067, +1534,3069,1535,3071,1536,3073,1537,3075,1538,3077,1539,3079,1540,3081,1541, +3083,1542,3085,1543,3087,1544,3089,1545,3091,1546,3093,1547,3095,1548,3097, +1549,3099,1550,3101,1551,3103,1552,3105,1553,3107,1554,3109,1555,3111,1556, +3113,1557,3115,1558,3117,1559,3119,1560,3121,1561,3123,1562,3125,1563,3127, +1564,3129,1565,3131,1566,3133,1567,3135,1568,3137,1569,3139,1570,3141,1571, +3143,1572,3145,1573,3147,1574,3149,1575,3151,1576,3153,1577,3155,1578,3157, +1579,3159,1580,3161,1581,3163,1582,3165,1583,3167,1584,3169,1585,3171,1586, +3173,1587,3175,1588,3177,1589,3179,1590,3181,1591,3183,1592,3185,1593,3187, +1594,3189,1595,3191,1596,3193,1597,3195,1598,3197,1599,3199,1600,3201,1601, +3203,1602,3205,1603,3207,1604,3209,1605,3211,1606,3213,1607,3215,1608,3217, +1609,3219,1610,3221,1611,3223,1612,3225,1613,3227,1614,3229,1615,3231,1616, +3233,1617,3235,1618,3237,1619,3239,1620,3241,1621,3243,1622,3245,1623,3247, +1624,3249,1625,3251,1626,3253,1627,3255,1628,3257,1629,3259,1630,3261,1631, +3263,1632,3265,1633,3267,1634,3269,1635,3271,1636,3273,1637,3275,1638,3277, +1639,3279,1640,3281,1641,3283,1642,3285,1643,3287,1644,3289,1645,3291,1646, +3293,1647,3295,1648,3297,1649,3299,1650,3301,1651,3303,1652,3305,1653,3307, +1654,3309,1655,3311,1656,3313,1657,3315,1658,3317,1659,3319,1660,3321,1661, +3323,1662,3325,1663,3327,1664,3329,1665,3331,1666,3333,1667,3335,1668,3337, +1669,3339,1670,3341,1671,3343,1672,3345,1673,3347,1674,3349,1675,3351,1676, +3353,1677,3355,1678,3357,1679,3359,1680,3361,1681,3363,1682,3365,1683,3367, +1684,3369,1685,3371,1686,3373,1687,3375,1688,3377,1689,3379,1690,3381,1691, +3383,1692,3385,1693,3387,1694,3389,1695,3391,1696,3393,1697,3395,1698,3397, +1699,3399,1700,3401,1701,3403,1702,3405,1703,3407,1704,3409,1705,3411,1706, +3413,1707,3415,1708,3417,1709,3419,1710,3421,1711,3423,1712,3425,1713,3427, +1714,3429,1715,3431,1716,3433,1717,3435,1718,3437,1719,3439,1720,3441,1721, +3443,1722,3445,1723,3447,1724,3449,1725,3451,1726,3453,1727,3455,1728,3457, +1729,3459,1730,3461,1731,3463,1732,3465,1733,3467,1734,3469,1735,3471,1736, +3473,1737,3475,1738,3477,1739,3479,1740,3481,1741,3483,1742,3485,1743,3487, +1744,3489,1745,3491,1746,3493,1747,3495,1748,3497,1749,3499,1750,3501,1751, +3503,1752,3505,1753,3507,1754,3509,1755,3511,1756,3513,1757,3515,1758,3517, +1759,3519,1760,3521,1761,3523,1762,3525,1763,3527,1764,3529,1765,3531,1766, +3533,1767,3535,1768,3537,1769,3539,1770,3541,1771,3543,1772,3545,1773,3547, +1774,3549,1775,3551,1776,3553,1777,3555,1778,3557,1779,3559,1780,3561,1781, +3563,1782,3565,1783,3567,1784,3569,1785,3571,1786,3573,1787,3575,1788,3577, +1789,3579,1790,3581,1791,3583,1792,3585,1793,3587,1794,3589,1795,3591,1796, +3593,1797,3595,1798,3597,1799,3599,1800,3601,1801,3603,1802,3605,1803,3607, +1804,3609,1805,3611,1806,3613,1807,3615,1808,3617,1809,3619,1810,3621,1811, +3623,1812,3625,1813,3627,1814,3629,1815,3631,1816,3633,1817,3635,1818,3637, +1819,3639,1820,3641,1821,3643,1822,3645,1823,3647,1824,3649,1825,3651,1826, +3653,1827,3655,1828,3657,1829,3659,1830,3661,1831,3663,1832,3665,1833,3667, +1834,3669,1835,3671,1836,3673,1837,3675,1838,3677,1839,3679,1840,3681,1841, +3683,1842,3685,1843,3687,1844,3689,1845,3691,1846,3693,1847,3695,1848,3697, +1849,3699,1850,3701,1851,3703,1852,3705,1853,3707,1854,3709,1855,3711,1856, +3713,1857,3715,1858,3717,1859,3719,1860,3721,1861,3723,1862,3725,1863,3727, +1864,3729,1865,3731,1866,3733,1867,3735,1868,3737,1869,3739,1870,3741,1871, +3743,1872,3745,1873,3747,1874,3749,1875,3751,1876,3753,1877,3755,1878,3757, +1879,3759,1880,3761,1881,3763,1882,3765,1883,3767,1884,3769,1885,3771,1886, +3773,1887,3775,1888,3777,1889,3779,1890,3781,1891,3783,1892,3785,1893,3787, +1894,3789,1895,3791,1896,3793,1897,3795,1898,3797,1899,3799,1900,3801,1901, +3803,1902,3805,1903,3807,1904,3809,1905,3811,1906,3813,1907,3815,1908,3817, +1909,3819,1910,3821,1911,3823,1912,3825,1913,3827,1914,3829,1915,3831,1916, +3833,1917,3835,1918,3837,1919,3839,1920,3841,1921,3843,1922,3845,1923,3847, +1924,3849,1925,3851,1926,3853,1927,3855,1928,3857,1929,3859,1930,3861,1931, +3863,1932,3865,1933,3867,1934,3869,1935,3871,1936,3873,1937,3875,1938,3877, +1939,3879,1940,3881,1941,3883,1942,3885,1943,3887,1944,3889,1945,3891,1946, +3893,1947,3895,1948,3897,1949,3899,1950,3901,1951,3903,1952,3905,1953,3907, +1954,3909,1955,3911,1956,3913,1957,3915,1958,3917,1959,3919,1960,3921,1961, +3923,1962,3925,1963,3927,1964,3929,1965,3931,1966,3933,1967,3935,1968,3937, +1969,3939,1970,3941,1971,3943,1972,3945,1973,3947,1974,3949,1975,3951,1976, +3953,1977,3955,1978,3957,1979,3959,1980,3961,1981,3963,1982,3965,1983,3967, +1984,3969,1985,3971,1986,3973,1987,3975,1988,3977,1989,3979,1990,3981,1991, +3983,1992,3985,1993,3987,1994,3989,1995,3991,1996,3993,1997,3995,1998,3997, +1999,3999,2000,4001,2001,4003,2002,4005,2003,4007,2004,4009,2005,4011,2006, +4013,2007,4015,2008,4017,2009,4019,2010,4021,2011,4023,2012,4025,2013,4027, +2014,4029,2015,4031,2016,4033,2017,4035,2018,4037,2019,4039,2020,4041,2021, +4043,2022,4045,2023,4047,2024,4049,2025,4051,2026,4053,2027,4055,2028,4057, +2029,4059,2030,4061,2031,4063,2032,4065,2033,4067,2034,4069,2035,4071,2036, +4073,2037,4075,2038,4077,2039,4079,2040,4081,2041,4083,2042,4085,2043,4087, +2044,4089,2045,4091,2046,4093,2047,4095,2048,4097,2049,4099,2050,4101,2051, +4103,2052,4105,2053,4107,2054,4109,2055,4111,2056,4113,2057,4115,2058,4117, +2059,4119,2060,4121,2061,4123,2062,4125,2063,4127,2064,4129,2065,4131,2066, +4133,2067,4135,2068,4137,2069,4139,2070,4141,2071,4143,2072,4145,2073,4147, +2074,4149,2075,4151,2076,4153,2077,4155,2078,4157,2079,4159,2080,4161,2081, +4163,2082,4165,2083,4167,2084,4169,2085,4171,2086,4173,2087,4175,2088,4177, +2089,4179,2090,4181,2091,4183,2092,4185,2093,4187,2094,4189,2095,4191,2096, +4193,2097,4195,2098,4197,2099,4199,2100,4201,2101,4203,2102,4205,2103,4207, +2104,4209,2105,4211,2106,4213,2107,4215,2108,4217,2109,4219,2110,4221,2111, +4223,2112,4225,2113,4227,2114,4229,2115,4231,2116,4233,2117,4235,2118,4237, +2119,4239,2120,4241,2121,4243,2122,4245,2123,4247,2124,4249,2125,4251,2126, +4253,2127,4255,2128,4257,2129,4259,2130,4261,2131,4263,2132,4265,2133,4267, +2134,4269,2135,4271,2136,4273,2137,4275,2138,4277,2139,4279,2140,4281,2141, +4283,2142,4285,2143,4287,2144,4289,2145,4291,2146,4293,2147,4295,2148,4297, +2149,4299,2150,4301,2151,4303,2152,4305,2153,4307,2154,4309,2155,4311,2156, +4313,2157,4315,2158,4317,2159,4319,2160,4321,2161,4323,2162,4325,2163,4327, +2164,4329,2165,4331,2166,4333,2167,4335,2168,4337,2169,4339,2170,4341,2171, +4343,2172,4345,2173,4347,2174,4349,2175,4351,2176,4353,2177,4355,2178,4357, +2179,4359,2180,4361,2181,4363,2182,4365,2183,4367,2184,4369,2185,4371,2186, +4373,2187,4375,2188,4377,2189,4379,2190,4381,2191,4383,2192,4385,2193,4387, +2194,4389,2195,4391,2196,4393,2197,4395,2198,4397,2199,4399,2200,4401,2201, +4403,2202,4405,2203,4407,2204,4409,2205,4411,2206,4413,2207,4415,2208,4417, +2209,4419,2210,4421,2211,4423,2212,4425,2213,4427,2214,4429,2215,4431,2216, +4433,2217,4435,2218,4437,2219,4439,2220,4441,2221,4443,2222,4445,2223,4447, +2224,4449,2225,4451,2226,4453,2227,4455,2228,4457,2229,4459,2230,4461,2231, +4463,2232,4465,2233,4467,2234,4469,2235,4471,2236,4473,2237,4475,2238,4477, +2239,4479,2240,4481,2241,4483,2242,4485,2243,4487,2244,4489,2245,4491,2246, +4493,2247,4495,2248,4497,2249,4499,2250,4501,2251,4503,2252,4505,2253,4507, +2254,4509,2255,4511,2256,4513,2257,4515,2258,4517,2259,4519,2260,4521,2261, +4523,2262,4525,2263,4527,2264,4529,2265,4531,2266,4533,2267,4535,2268,4537, +2269,4539,2270,4541,2271,4543,2272,4545,2273,4547,2274,4549,2275,4551,2276, +4553,2277,4555,2278,4557,2279,4559,2280,4561,2281,4563,2282,4565,2283,4567, +2284,4569,2285,4571,2286,4573,2287,4575,2288,4577,2289,4579,2290,4581,2291, +4583,2292,4585,2293,4587,2294,4589,2295,4591,2296,4593,2297,4595,2298,4597, +2299,4599,2300,4601,2301,4603,2302,4605,2303,4607,2304,4609,2305,4611,2306, +4613,2307,4615,2308,4617,2309,4619,2310,4621,2311,4623,2312,4625,2313,4627, +2314,4629,2315,4631,2316,4633,2317,4635,2318,4637,2319,4639,2320,4641,2321, +4643,2322,4645,2323,4647,2324,4649,2325,4651,2326,4653,2327,4655,2328,4657, +2329,4659,2330,4661,2331,4663,2332,4665,2333,4667,2334,4669,2335,4671,2336, +4673,2337,4675,2338,4677,2339,4679,2340,4681,2341,4683,2342,4685,2343,4687, +2344,4689,2345,4691,2346,4693,2347,4695,2348,4697,2349,4699,2350,4701,2351, +4703,2352,4705,2353,4707,2354,4709,2355,4711,2356,4713,2357,4715,2358,4717, +2359,4719,2360,4721,2361,4723,2362,4725,2363,4727,2364,4729,2365,4731,2366, +4733,2367,4735,2368,4737,2369,4739,2370,4741,2371,4743,2372,4745,2373,4747, +2374,4749,2375,4751,2376,4753,2377,4755,2378,4757,2379,4759,2380,4761,2381, +4763,2382,4765,2383,4767,2384,4769,2385,4771,2386,4773,2387,4775,2388,4777, +2389,4779,2390,4781,2391,4783,2392,4785,2393,4787,2394,4789,2395,4791,2396, +4793,2397,4795,2398,4797,2399,4799,2400,4801,2401,4803,2402,4805,2403,4807, +2404,4809,2405,4811,2406,4813,2407,4815,2408,4817,2409,4819,2410,4821,2411, +4823,2412,4825,2413,4827,2414,4829,2415,4831,2416,4833,2417,4835,2418,4837, +2419,4839,2420,4841,2421,4843,2422,4845,2423,4847,2424,4849,2425,4851,2426, +4853,2427,4855,2428,4857,2429,4859,2430,4861,2431,4863,2432,4865,2433,4867, +2434,4869,2435,4871,2436,4873,2437,4875,2438,4877,2439,4879,2440,4881,2441, +4883,0,4885,0,4887,0,4889,0,4891,0,4893,0,4895,0,4897,0,4899,0,4901,0,4903, +0,4905,0,4907,2442,4909,2443,4911,2444,4913,2445,4915,2446,4917,2447,4919, +2448,4921,2449,4923,2450,4925,2451,4927,2452,4929,2453,4931,2454,4933,2455, +4935,2456,4937,2457,4939,2458,4941,2459,4943,2460,4945,2461,4947,2462,4949, +2463,4951,2464,4953,2465,4955,2466,4957,2467,4959,2468,4961,2469,4963,2470, +4965,2471,4967,2472,4969,2473,4971,2474,4973,2475,4975,2476,4977,2477,4979, +2478,4981,2479,4983,2480,4985,0,4987,0,4989,0,4991,0,4993,0,4995,0,1,0,39, +2,0,65,65,97,97,2,0,66,66,98,98,2,0,79,79,111,111,2,0,82,82,114,114,2,0, +84,84,116,116,2,0,83,83,115,115,2,0,69,69,101,101,2,0,78,78,110,110,2,0, +67,67,99,99,2,0,68,68,100,100,2,0,73,73,105,105,2,0,76,76,108,108,2,0,85, +85,117,117,2,0,86,86,118,118,2,0,77,77,109,109,2,0,80,80,112,112,2,0,70, +70,102,102,2,0,71,71,103,103,2,0,89,89,121,121,2,0,72,72,104,104,2,0,74, +74,106,106,2,0,75,75,107,107,2,0,87,87,119,119,2,0,90,90,122,122,2,0,81, +81,113,113,2,0,88,88,120,120,3,0,10,10,13,13,39,39,1,0,48,49,3,0,48,57,65, +70,97,102,1,0,48,57,2,0,43,43,45,45,4,0,68,68,70,70,100,100,102,102,2,0, +0,0,34,34,2,0,48,57,95,95,2,0,10,10,13,13,3,0,35,36,48,57,95,95,3,0,9,10, +13,13,32,32,659,0,65,90,97,122,170,170,181,181,186,186,192,214,216,246,248, +705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902, +902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369, +1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749, +1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969, +1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088, +2112,2136,2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365,2365,2384, +2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482, +2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565, +2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652, +2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741, +2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856, +2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947, +2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980, +2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133, +3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240, +3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342, +3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478, +3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713, +3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773, +3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096, +4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225, +4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688, +4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798, +4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024, +5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5873,5880,5888,5905, +5919,5937,5952,5969,5984,5996,5998,6000,6016,6067,6103,6103,6108,6108,6176, +6264,6272,6276,6279,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516, +6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043, +7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354, +7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960, +7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061, +8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160, +8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455, +8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495, +8505,8508,8511,8517,8521,8526,8526,8579,8580,11264,11492,11499,11502,11506, +11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648, +11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720, +11726,11728,11734,11736,11742,11823,11823,12293,12294,12337,12341,12347, +12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12591,12593, +12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240, +42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42725,42775, +42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994, +43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250, +43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396, +43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584, +43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701, +43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762, +43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824, +43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744, +64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298, +64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467, +64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313, +65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498, +65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616, +65629,65664,65786,66176,66204,66208,66256,66304,66335,66349,66368,66370, +66377,66384,66421,66432,66461,66464,66499,66504,66511,66560,66717,66736, +66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956, +66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072, +67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584, +67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680, +67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968, +68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192, +68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448, +68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69248, +69289,69296,69297,69376,69404,69415,69415,69424,69445,69488,69505,69552, +69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840, +69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019, +70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207, +70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320, +70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453, +70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751, +70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168, +71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680, +71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960, +71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163, +72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349, +72349,72368,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960, +72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066, +73097,73112,73112,73440,73458,73474,73474,73476,73488,73490,73523,73648, +73648,73728,74649,74880,75075,77712,77808,77824,78895,78913,78918,82944, +83526,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992, +92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099, +94111,94176,94177,94179,94179,94208,100343,100352,101589,101632,101640,110576, +110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930, +110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792, +113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970, +119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005, +120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126, +120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514, +120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686, +120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661, +122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565, +123584,123627,124112,124139,124896,124902,124904,124907,124909,124910,124912, +124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495, +126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521, +126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539, +126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555, +126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570, +126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603, +126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,177977, +177984,178205,178208,183969,183984,191456,194560,195101,196608,201546,201552, +205743,2,0,9,9,32,32,32474,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0, +0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1, +0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0, +31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0, +0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53, +1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0, +0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1, +0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0, +87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0, +0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0, +0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0, +119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129, +1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1, +0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0, +0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0, +0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0, +0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0, +181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191, +1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,0,0,0,201,1, +0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,1,0, +0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,0,0,0,221,1,0,0, +0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,0,0,0,0,231,1,0,0,0, +0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239,1,0,0,0,0,241,1,0,0,0,0, +243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249,1,0,0,0,0,251,1,0,0,0,0,253, +1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0,0,259,1,0,0,0,0,261,1,0,0,0,0,263,1, +0,0,0,0,265,1,0,0,0,0,267,1,0,0,0,0,269,1,0,0,0,0,271,1,0,0,0,0,273,1,0, +0,0,0,275,1,0,0,0,0,277,1,0,0,0,0,279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0, +0,0,285,1,0,0,0,0,287,1,0,0,0,0,289,1,0,0,0,0,291,1,0,0,0,0,293,1,0,0,0, +0,295,1,0,0,0,0,297,1,0,0,0,0,299,1,0,0,0,0,301,1,0,0,0,0,303,1,0,0,0,0, +305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,0,0,0,311,1,0,0,0,0,313,1,0,0,0,0,315, +1,0,0,0,0,317,1,0,0,0,0,319,1,0,0,0,0,321,1,0,0,0,0,323,1,0,0,0,0,325,1, +0,0,0,0,327,1,0,0,0,0,329,1,0,0,0,0,331,1,0,0,0,0,333,1,0,0,0,0,335,1,0, +0,0,0,337,1,0,0,0,0,339,1,0,0,0,0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0, +0,0,347,1,0,0,0,0,349,1,0,0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0, +0,357,1,0,0,0,0,359,1,0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0, +367,1,0,0,0,0,369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377, +1,0,0,0,0,379,1,0,0,0,0,381,1,0,0,0,0,383,1,0,0,0,0,385,1,0,0,0,0,387,1, +0,0,0,0,389,1,0,0,0,0,391,1,0,0,0,0,393,1,0,0,0,0,395,1,0,0,0,0,397,1,0, +0,0,0,399,1,0,0,0,0,401,1,0,0,0,0,403,1,0,0,0,0,405,1,0,0,0,0,407,1,0,0, +0,0,409,1,0,0,0,0,411,1,0,0,0,0,413,1,0,0,0,0,415,1,0,0,0,0,417,1,0,0,0, +0,419,1,0,0,0,0,421,1,0,0,0,0,423,1,0,0,0,0,425,1,0,0,0,0,427,1,0,0,0,0, +429,1,0,0,0,0,431,1,0,0,0,0,433,1,0,0,0,0,435,1,0,0,0,0,437,1,0,0,0,0,439, +1,0,0,0,0,441,1,0,0,0,0,443,1,0,0,0,0,445,1,0,0,0,0,447,1,0,0,0,0,449,1, +0,0,0,0,451,1,0,0,0,0,453,1,0,0,0,0,455,1,0,0,0,0,457,1,0,0,0,0,459,1,0, +0,0,0,461,1,0,0,0,0,463,1,0,0,0,0,465,1,0,0,0,0,467,1,0,0,0,0,469,1,0,0, +0,0,471,1,0,0,0,0,473,1,0,0,0,0,475,1,0,0,0,0,477,1,0,0,0,0,479,1,0,0,0, +0,481,1,0,0,0,0,483,1,0,0,0,0,485,1,0,0,0,0,487,1,0,0,0,0,489,1,0,0,0,0, +491,1,0,0,0,0,493,1,0,0,0,0,495,1,0,0,0,0,497,1,0,0,0,0,499,1,0,0,0,0,501, +1,0,0,0,0,503,1,0,0,0,0,505,1,0,0,0,0,507,1,0,0,0,0,509,1,0,0,0,0,511,1, +0,0,0,0,513,1,0,0,0,0,515,1,0,0,0,0,517,1,0,0,0,0,519,1,0,0,0,0,521,1,0, +0,0,0,523,1,0,0,0,0,525,1,0,0,0,0,527,1,0,0,0,0,529,1,0,0,0,0,531,1,0,0, +0,0,533,1,0,0,0,0,535,1,0,0,0,0,537,1,0,0,0,0,539,1,0,0,0,0,541,1,0,0,0, +0,543,1,0,0,0,0,545,1,0,0,0,0,547,1,0,0,0,0,549,1,0,0,0,0,551,1,0,0,0,0, +553,1,0,0,0,0,555,1,0,0,0,0,557,1,0,0,0,0,559,1,0,0,0,0,561,1,0,0,0,0,563, +1,0,0,0,0,565,1,0,0,0,0,567,1,0,0,0,0,569,1,0,0,0,0,571,1,0,0,0,0,573,1, +0,0,0,0,575,1,0,0,0,0,577,1,0,0,0,0,579,1,0,0,0,0,581,1,0,0,0,0,583,1,0, +0,0,0,585,1,0,0,0,0,587,1,0,0,0,0,589,1,0,0,0,0,591,1,0,0,0,0,593,1,0,0, +0,0,595,1,0,0,0,0,597,1,0,0,0,0,599,1,0,0,0,0,601,1,0,0,0,0,603,1,0,0,0, +0,605,1,0,0,0,0,607,1,0,0,0,0,609,1,0,0,0,0,611,1,0,0,0,0,613,1,0,0,0,0, +615,1,0,0,0,0,617,1,0,0,0,0,619,1,0,0,0,0,621,1,0,0,0,0,623,1,0,0,0,0,625, +1,0,0,0,0,627,1,0,0,0,0,629,1,0,0,0,0,631,1,0,0,0,0,633,1,0,0,0,0,635,1, +0,0,0,0,637,1,0,0,0,0,639,1,0,0,0,0,641,1,0,0,0,0,643,1,0,0,0,0,645,1,0, +0,0,0,647,1,0,0,0,0,649,1,0,0,0,0,651,1,0,0,0,0,653,1,0,0,0,0,655,1,0,0, +0,0,657,1,0,0,0,0,659,1,0,0,0,0,661,1,0,0,0,0,663,1,0,0,0,0,665,1,0,0,0, +0,667,1,0,0,0,0,669,1,0,0,0,0,671,1,0,0,0,0,673,1,0,0,0,0,675,1,0,0,0,0, +677,1,0,0,0,0,679,1,0,0,0,0,681,1,0,0,0,0,683,1,0,0,0,0,685,1,0,0,0,0,687, +1,0,0,0,0,689,1,0,0,0,0,691,1,0,0,0,0,693,1,0,0,0,0,695,1,0,0,0,0,697,1, +0,0,0,0,699,1,0,0,0,0,701,1,0,0,0,0,703,1,0,0,0,0,705,1,0,0,0,0,707,1,0, +0,0,0,709,1,0,0,0,0,711,1,0,0,0,0,713,1,0,0,0,0,715,1,0,0,0,0,717,1,0,0, +0,0,719,1,0,0,0,0,721,1,0,0,0,0,723,1,0,0,0,0,725,1,0,0,0,0,727,1,0,0,0, +0,729,1,0,0,0,0,731,1,0,0,0,0,733,1,0,0,0,0,735,1,0,0,0,0,737,1,0,0,0,0, +739,1,0,0,0,0,741,1,0,0,0,0,743,1,0,0,0,0,745,1,0,0,0,0,747,1,0,0,0,0,749, +1,0,0,0,0,751,1,0,0,0,0,753,1,0,0,0,0,755,1,0,0,0,0,757,1,0,0,0,0,759,1, +0,0,0,0,761,1,0,0,0,0,763,1,0,0,0,0,765,1,0,0,0,0,767,1,0,0,0,0,769,1,0, +0,0,0,771,1,0,0,0,0,773,1,0,0,0,0,775,1,0,0,0,0,777,1,0,0,0,0,779,1,0,0, +0,0,781,1,0,0,0,0,783,1,0,0,0,0,785,1,0,0,0,0,787,1,0,0,0,0,789,1,0,0,0, +0,791,1,0,0,0,0,793,1,0,0,0,0,795,1,0,0,0,0,797,1,0,0,0,0,799,1,0,0,0,0, +801,1,0,0,0,0,803,1,0,0,0,0,805,1,0,0,0,0,807,1,0,0,0,0,809,1,0,0,0,0,811, +1,0,0,0,0,813,1,0,0,0,0,815,1,0,0,0,0,817,1,0,0,0,0,819,1,0,0,0,0,821,1, +0,0,0,0,823,1,0,0,0,0,825,1,0,0,0,0,827,1,0,0,0,0,829,1,0,0,0,0,831,1,0, +0,0,0,833,1,0,0,0,0,835,1,0,0,0,0,837,1,0,0,0,0,839,1,0,0,0,0,841,1,0,0, +0,0,843,1,0,0,0,0,845,1,0,0,0,0,847,1,0,0,0,0,849,1,0,0,0,0,851,1,0,0,0, +0,853,1,0,0,0,0,855,1,0,0,0,0,857,1,0,0,0,0,859,1,0,0,0,0,861,1,0,0,0,0, +863,1,0,0,0,0,865,1,0,0,0,0,867,1,0,0,0,0,869,1,0,0,0,0,871,1,0,0,0,0,873, +1,0,0,0,0,875,1,0,0,0,0,877,1,0,0,0,0,879,1,0,0,0,0,881,1,0,0,0,0,883,1, +0,0,0,0,885,1,0,0,0,0,887,1,0,0,0,0,889,1,0,0,0,0,891,1,0,0,0,0,893,1,0, +0,0,0,895,1,0,0,0,0,897,1,0,0,0,0,899,1,0,0,0,0,901,1,0,0,0,0,903,1,0,0, +0,0,905,1,0,0,0,0,907,1,0,0,0,0,909,1,0,0,0,0,911,1,0,0,0,0,913,1,0,0,0, +0,915,1,0,0,0,0,917,1,0,0,0,0,919,1,0,0,0,0,921,1,0,0,0,0,923,1,0,0,0,0, +925,1,0,0,0,0,927,1,0,0,0,0,929,1,0,0,0,0,931,1,0,0,0,0,933,1,0,0,0,0,935, +1,0,0,0,0,937,1,0,0,0,0,939,1,0,0,0,0,941,1,0,0,0,0,943,1,0,0,0,0,945,1, +0,0,0,0,947,1,0,0,0,0,949,1,0,0,0,0,951,1,0,0,0,0,953,1,0,0,0,0,955,1,0, +0,0,0,957,1,0,0,0,0,959,1,0,0,0,0,961,1,0,0,0,0,963,1,0,0,0,0,965,1,0,0, +0,0,967,1,0,0,0,0,969,1,0,0,0,0,971,1,0,0,0,0,973,1,0,0,0,0,975,1,0,0,0, +0,977,1,0,0,0,0,979,1,0,0,0,0,981,1,0,0,0,0,983,1,0,0,0,0,985,1,0,0,0,0, +987,1,0,0,0,0,989,1,0,0,0,0,991,1,0,0,0,0,993,1,0,0,0,0,995,1,0,0,0,0,997, +1,0,0,0,0,999,1,0,0,0,0,1001,1,0,0,0,0,1003,1,0,0,0,0,1005,1,0,0,0,0,1007, +1,0,0,0,0,1009,1,0,0,0,0,1011,1,0,0,0,0,1013,1,0,0,0,0,1015,1,0,0,0,0,1017, +1,0,0,0,0,1019,1,0,0,0,0,1021,1,0,0,0,0,1023,1,0,0,0,0,1025,1,0,0,0,0,1027, +1,0,0,0,0,1029,1,0,0,0,0,1031,1,0,0,0,0,1033,1,0,0,0,0,1035,1,0,0,0,0,1037, +1,0,0,0,0,1039,1,0,0,0,0,1041,1,0,0,0,0,1043,1,0,0,0,0,1045,1,0,0,0,0,1047, +1,0,0,0,0,1049,1,0,0,0,0,1051,1,0,0,0,0,1053,1,0,0,0,0,1055,1,0,0,0,0,1057, +1,0,0,0,0,1059,1,0,0,0,0,1061,1,0,0,0,0,1063,1,0,0,0,0,1065,1,0,0,0,0,1067, +1,0,0,0,0,1069,1,0,0,0,0,1071,1,0,0,0,0,1073,1,0,0,0,0,1075,1,0,0,0,0,1077, +1,0,0,0,0,1079,1,0,0,0,0,1081,1,0,0,0,0,1083,1,0,0,0,0,1085,1,0,0,0,0,1087, +1,0,0,0,0,1089,1,0,0,0,0,1091,1,0,0,0,0,1093,1,0,0,0,0,1095,1,0,0,0,0,1097, +1,0,0,0,0,1099,1,0,0,0,0,1101,1,0,0,0,0,1103,1,0,0,0,0,1105,1,0,0,0,0,1107, +1,0,0,0,0,1109,1,0,0,0,0,1111,1,0,0,0,0,1113,1,0,0,0,0,1115,1,0,0,0,0,1117, +1,0,0,0,0,1119,1,0,0,0,0,1121,1,0,0,0,0,1123,1,0,0,0,0,1125,1,0,0,0,0,1127, +1,0,0,0,0,1129,1,0,0,0,0,1131,1,0,0,0,0,1133,1,0,0,0,0,1135,1,0,0,0,0,1137, +1,0,0,0,0,1139,1,0,0,0,0,1141,1,0,0,0,0,1143,1,0,0,0,0,1145,1,0,0,0,0,1147, +1,0,0,0,0,1149,1,0,0,0,0,1151,1,0,0,0,0,1153,1,0,0,0,0,1155,1,0,0,0,0,1157, +1,0,0,0,0,1159,1,0,0,0,0,1161,1,0,0,0,0,1163,1,0,0,0,0,1165,1,0,0,0,0,1167, +1,0,0,0,0,1169,1,0,0,0,0,1171,1,0,0,0,0,1173,1,0,0,0,0,1175,1,0,0,0,0,1177, +1,0,0,0,0,1179,1,0,0,0,0,1181,1,0,0,0,0,1183,1,0,0,0,0,1185,1,0,0,0,0,1187, +1,0,0,0,0,1189,1,0,0,0,0,1191,1,0,0,0,0,1193,1,0,0,0,0,1195,1,0,0,0,0,1197, +1,0,0,0,0,1199,1,0,0,0,0,1201,1,0,0,0,0,1203,1,0,0,0,0,1205,1,0,0,0,0,1207, +1,0,0,0,0,1209,1,0,0,0,0,1211,1,0,0,0,0,1213,1,0,0,0,0,1215,1,0,0,0,0,1217, +1,0,0,0,0,1219,1,0,0,0,0,1221,1,0,0,0,0,1223,1,0,0,0,0,1225,1,0,0,0,0,1227, +1,0,0,0,0,1229,1,0,0,0,0,1231,1,0,0,0,0,1233,1,0,0,0,0,1235,1,0,0,0,0,1237, +1,0,0,0,0,1239,1,0,0,0,0,1241,1,0,0,0,0,1243,1,0,0,0,0,1245,1,0,0,0,0,1247, +1,0,0,0,0,1249,1,0,0,0,0,1251,1,0,0,0,0,1253,1,0,0,0,0,1255,1,0,0,0,0,1257, +1,0,0,0,0,1259,1,0,0,0,0,1261,1,0,0,0,0,1263,1,0,0,0,0,1265,1,0,0,0,0,1267, +1,0,0,0,0,1269,1,0,0,0,0,1271,1,0,0,0,0,1273,1,0,0,0,0,1275,1,0,0,0,0,1277, +1,0,0,0,0,1279,1,0,0,0,0,1281,1,0,0,0,0,1283,1,0,0,0,0,1285,1,0,0,0,0,1287, +1,0,0,0,0,1289,1,0,0,0,0,1291,1,0,0,0,0,1293,1,0,0,0,0,1295,1,0,0,0,0,1297, +1,0,0,0,0,1299,1,0,0,0,0,1301,1,0,0,0,0,1303,1,0,0,0,0,1305,1,0,0,0,0,1307, +1,0,0,0,0,1309,1,0,0,0,0,1311,1,0,0,0,0,1313,1,0,0,0,0,1315,1,0,0,0,0,1317, +1,0,0,0,0,1319,1,0,0,0,0,1321,1,0,0,0,0,1323,1,0,0,0,0,1325,1,0,0,0,0,1327, +1,0,0,0,0,1329,1,0,0,0,0,1331,1,0,0,0,0,1333,1,0,0,0,0,1335,1,0,0,0,0,1337, +1,0,0,0,0,1339,1,0,0,0,0,1341,1,0,0,0,0,1343,1,0,0,0,0,1345,1,0,0,0,0,1347, +1,0,0,0,0,1349,1,0,0,0,0,1351,1,0,0,0,0,1353,1,0,0,0,0,1355,1,0,0,0,0,1357, +1,0,0,0,0,1359,1,0,0,0,0,1361,1,0,0,0,0,1363,1,0,0,0,0,1365,1,0,0,0,0,1367, +1,0,0,0,0,1369,1,0,0,0,0,1371,1,0,0,0,0,1373,1,0,0,0,0,1375,1,0,0,0,0,1377, +1,0,0,0,0,1379,1,0,0,0,0,1381,1,0,0,0,0,1383,1,0,0,0,0,1385,1,0,0,0,0,1387, +1,0,0,0,0,1389,1,0,0,0,0,1391,1,0,0,0,0,1393,1,0,0,0,0,1395,1,0,0,0,0,1397, +1,0,0,0,0,1399,1,0,0,0,0,1401,1,0,0,0,0,1403,1,0,0,0,0,1405,1,0,0,0,0,1407, +1,0,0,0,0,1409,1,0,0,0,0,1411,1,0,0,0,0,1413,1,0,0,0,0,1415,1,0,0,0,0,1417, +1,0,0,0,0,1419,1,0,0,0,0,1421,1,0,0,0,0,1423,1,0,0,0,0,1425,1,0,0,0,0,1427, +1,0,0,0,0,1429,1,0,0,0,0,1431,1,0,0,0,0,1433,1,0,0,0,0,1435,1,0,0,0,0,1437, +1,0,0,0,0,1439,1,0,0,0,0,1441,1,0,0,0,0,1443,1,0,0,0,0,1445,1,0,0,0,0,1447, +1,0,0,0,0,1449,1,0,0,0,0,1451,1,0,0,0,0,1453,1,0,0,0,0,1455,1,0,0,0,0,1457, +1,0,0,0,0,1459,1,0,0,0,0,1461,1,0,0,0,0,1463,1,0,0,0,0,1465,1,0,0,0,0,1467, +1,0,0,0,0,1469,1,0,0,0,0,1471,1,0,0,0,0,1473,1,0,0,0,0,1475,1,0,0,0,0,1477, +1,0,0,0,0,1479,1,0,0,0,0,1481,1,0,0,0,0,1483,1,0,0,0,0,1485,1,0,0,0,0,1487, +1,0,0,0,0,1489,1,0,0,0,0,1491,1,0,0,0,0,1493,1,0,0,0,0,1495,1,0,0,0,0,1497, +1,0,0,0,0,1499,1,0,0,0,0,1501,1,0,0,0,0,1503,1,0,0,0,0,1505,1,0,0,0,0,1507, +1,0,0,0,0,1509,1,0,0,0,0,1511,1,0,0,0,0,1513,1,0,0,0,0,1515,1,0,0,0,0,1517, +1,0,0,0,0,1519,1,0,0,0,0,1521,1,0,0,0,0,1523,1,0,0,0,0,1525,1,0,0,0,0,1527, +1,0,0,0,0,1529,1,0,0,0,0,1531,1,0,0,0,0,1533,1,0,0,0,0,1535,1,0,0,0,0,1537, +1,0,0,0,0,1539,1,0,0,0,0,1541,1,0,0,0,0,1543,1,0,0,0,0,1545,1,0,0,0,0,1547, +1,0,0,0,0,1549,1,0,0,0,0,1551,1,0,0,0,0,1553,1,0,0,0,0,1555,1,0,0,0,0,1557, +1,0,0,0,0,1559,1,0,0,0,0,1561,1,0,0,0,0,1563,1,0,0,0,0,1565,1,0,0,0,0,1567, +1,0,0,0,0,1569,1,0,0,0,0,1571,1,0,0,0,0,1573,1,0,0,0,0,1575,1,0,0,0,0,1577, +1,0,0,0,0,1579,1,0,0,0,0,1581,1,0,0,0,0,1583,1,0,0,0,0,1585,1,0,0,0,0,1587, +1,0,0,0,0,1589,1,0,0,0,0,1591,1,0,0,0,0,1593,1,0,0,0,0,1595,1,0,0,0,0,1597, +1,0,0,0,0,1599,1,0,0,0,0,1601,1,0,0,0,0,1603,1,0,0,0,0,1605,1,0,0,0,0,1607, +1,0,0,0,0,1609,1,0,0,0,0,1611,1,0,0,0,0,1613,1,0,0,0,0,1615,1,0,0,0,0,1617, +1,0,0,0,0,1619,1,0,0,0,0,1621,1,0,0,0,0,1623,1,0,0,0,0,1625,1,0,0,0,0,1627, +1,0,0,0,0,1629,1,0,0,0,0,1631,1,0,0,0,0,1633,1,0,0,0,0,1635,1,0,0,0,0,1637, +1,0,0,0,0,1639,1,0,0,0,0,1641,1,0,0,0,0,1643,1,0,0,0,0,1645,1,0,0,0,0,1647, +1,0,0,0,0,1649,1,0,0,0,0,1651,1,0,0,0,0,1653,1,0,0,0,0,1655,1,0,0,0,0,1657, +1,0,0,0,0,1659,1,0,0,0,0,1661,1,0,0,0,0,1663,1,0,0,0,0,1665,1,0,0,0,0,1667, +1,0,0,0,0,1669,1,0,0,0,0,1671,1,0,0,0,0,1673,1,0,0,0,0,1675,1,0,0,0,0,1677, +1,0,0,0,0,1679,1,0,0,0,0,1681,1,0,0,0,0,1683,1,0,0,0,0,1685,1,0,0,0,0,1687, +1,0,0,0,0,1689,1,0,0,0,0,1691,1,0,0,0,0,1693,1,0,0,0,0,1695,1,0,0,0,0,1697, +1,0,0,0,0,1699,1,0,0,0,0,1701,1,0,0,0,0,1703,1,0,0,0,0,1705,1,0,0,0,0,1707, +1,0,0,0,0,1709,1,0,0,0,0,1711,1,0,0,0,0,1713,1,0,0,0,0,1715,1,0,0,0,0,1717, +1,0,0,0,0,1719,1,0,0,0,0,1721,1,0,0,0,0,1723,1,0,0,0,0,1725,1,0,0,0,0,1727, +1,0,0,0,0,1729,1,0,0,0,0,1731,1,0,0,0,0,1733,1,0,0,0,0,1735,1,0,0,0,0,1737, +1,0,0,0,0,1739,1,0,0,0,0,1741,1,0,0,0,0,1743,1,0,0,0,0,1745,1,0,0,0,0,1747, +1,0,0,0,0,1749,1,0,0,0,0,1751,1,0,0,0,0,1753,1,0,0,0,0,1755,1,0,0,0,0,1757, +1,0,0,0,0,1759,1,0,0,0,0,1761,1,0,0,0,0,1763,1,0,0,0,0,1765,1,0,0,0,0,1767, +1,0,0,0,0,1769,1,0,0,0,0,1771,1,0,0,0,0,1773,1,0,0,0,0,1775,1,0,0,0,0,1777, +1,0,0,0,0,1779,1,0,0,0,0,1781,1,0,0,0,0,1783,1,0,0,0,0,1785,1,0,0,0,0,1787, +1,0,0,0,0,1789,1,0,0,0,0,1791,1,0,0,0,0,1793,1,0,0,0,0,1795,1,0,0,0,0,1797, +1,0,0,0,0,1799,1,0,0,0,0,1801,1,0,0,0,0,1803,1,0,0,0,0,1805,1,0,0,0,0,1807, +1,0,0,0,0,1809,1,0,0,0,0,1811,1,0,0,0,0,1813,1,0,0,0,0,1815,1,0,0,0,0,1817, +1,0,0,0,0,1819,1,0,0,0,0,1821,1,0,0,0,0,1823,1,0,0,0,0,1825,1,0,0,0,0,1827, +1,0,0,0,0,1829,1,0,0,0,0,1831,1,0,0,0,0,1833,1,0,0,0,0,1835,1,0,0,0,0,1837, +1,0,0,0,0,1839,1,0,0,0,0,1841,1,0,0,0,0,1843,1,0,0,0,0,1845,1,0,0,0,0,1847, +1,0,0,0,0,1849,1,0,0,0,0,1851,1,0,0,0,0,1853,1,0,0,0,0,1855,1,0,0,0,0,1857, +1,0,0,0,0,1859,1,0,0,0,0,1861,1,0,0,0,0,1863,1,0,0,0,0,1865,1,0,0,0,0,1867, +1,0,0,0,0,1869,1,0,0,0,0,1871,1,0,0,0,0,1873,1,0,0,0,0,1875,1,0,0,0,0,1877, +1,0,0,0,0,1879,1,0,0,0,0,1881,1,0,0,0,0,1883,1,0,0,0,0,1885,1,0,0,0,0,1887, +1,0,0,0,0,1889,1,0,0,0,0,1891,1,0,0,0,0,1893,1,0,0,0,0,1895,1,0,0,0,0,1897, +1,0,0,0,0,1899,1,0,0,0,0,1901,1,0,0,0,0,1903,1,0,0,0,0,1905,1,0,0,0,0,1907, +1,0,0,0,0,1909,1,0,0,0,0,1911,1,0,0,0,0,1913,1,0,0,0,0,1915,1,0,0,0,0,1917, +1,0,0,0,0,1919,1,0,0,0,0,1921,1,0,0,0,0,1923,1,0,0,0,0,1925,1,0,0,0,0,1927, +1,0,0,0,0,1929,1,0,0,0,0,1931,1,0,0,0,0,1933,1,0,0,0,0,1935,1,0,0,0,0,1937, +1,0,0,0,0,1939,1,0,0,0,0,1941,1,0,0,0,0,1943,1,0,0,0,0,1945,1,0,0,0,0,1947, +1,0,0,0,0,1949,1,0,0,0,0,1951,1,0,0,0,0,1953,1,0,0,0,0,1955,1,0,0,0,0,1957, +1,0,0,0,0,1959,1,0,0,0,0,1961,1,0,0,0,0,1963,1,0,0,0,0,1965,1,0,0,0,0,1967, +1,0,0,0,0,1969,1,0,0,0,0,1971,1,0,0,0,0,1973,1,0,0,0,0,1975,1,0,0,0,0,1977, +1,0,0,0,0,1979,1,0,0,0,0,1981,1,0,0,0,0,1983,1,0,0,0,0,1985,1,0,0,0,0,1987, +1,0,0,0,0,1989,1,0,0,0,0,1991,1,0,0,0,0,1993,1,0,0,0,0,1995,1,0,0,0,0,1997, +1,0,0,0,0,1999,1,0,0,0,0,2001,1,0,0,0,0,2003,1,0,0,0,0,2005,1,0,0,0,0,2007, +1,0,0,0,0,2009,1,0,0,0,0,2011,1,0,0,0,0,2013,1,0,0,0,0,2015,1,0,0,0,0,2017, +1,0,0,0,0,2019,1,0,0,0,0,2021,1,0,0,0,0,2023,1,0,0,0,0,2025,1,0,0,0,0,2027, +1,0,0,0,0,2029,1,0,0,0,0,2031,1,0,0,0,0,2033,1,0,0,0,0,2035,1,0,0,0,0,2037, +1,0,0,0,0,2039,1,0,0,0,0,2041,1,0,0,0,0,2043,1,0,0,0,0,2045,1,0,0,0,0,2047, +1,0,0,0,0,2049,1,0,0,0,0,2051,1,0,0,0,0,2053,1,0,0,0,0,2055,1,0,0,0,0,2057, +1,0,0,0,0,2059,1,0,0,0,0,2061,1,0,0,0,0,2063,1,0,0,0,0,2065,1,0,0,0,0,2067, +1,0,0,0,0,2069,1,0,0,0,0,2071,1,0,0,0,0,2073,1,0,0,0,0,2075,1,0,0,0,0,2077, +1,0,0,0,0,2079,1,0,0,0,0,2081,1,0,0,0,0,2083,1,0,0,0,0,2085,1,0,0,0,0,2087, +1,0,0,0,0,2089,1,0,0,0,0,2091,1,0,0,0,0,2093,1,0,0,0,0,2095,1,0,0,0,0,2097, +1,0,0,0,0,2099,1,0,0,0,0,2101,1,0,0,0,0,2103,1,0,0,0,0,2105,1,0,0,0,0,2107, +1,0,0,0,0,2109,1,0,0,0,0,2111,1,0,0,0,0,2113,1,0,0,0,0,2115,1,0,0,0,0,2117, +1,0,0,0,0,2119,1,0,0,0,0,2121,1,0,0,0,0,2123,1,0,0,0,0,2125,1,0,0,0,0,2127, +1,0,0,0,0,2129,1,0,0,0,0,2131,1,0,0,0,0,2133,1,0,0,0,0,2135,1,0,0,0,0,2137, +1,0,0,0,0,2139,1,0,0,0,0,2141,1,0,0,0,0,2143,1,0,0,0,0,2145,1,0,0,0,0,2147, +1,0,0,0,0,2149,1,0,0,0,0,2151,1,0,0,0,0,2153,1,0,0,0,0,2155,1,0,0,0,0,2157, +1,0,0,0,0,2159,1,0,0,0,0,2161,1,0,0,0,0,2163,1,0,0,0,0,2165,1,0,0,0,0,2167, +1,0,0,0,0,2169,1,0,0,0,0,2171,1,0,0,0,0,2173,1,0,0,0,0,2175,1,0,0,0,0,2177, +1,0,0,0,0,2179,1,0,0,0,0,2181,1,0,0,0,0,2183,1,0,0,0,0,2185,1,0,0,0,0,2187, +1,0,0,0,0,2189,1,0,0,0,0,2191,1,0,0,0,0,2193,1,0,0,0,0,2195,1,0,0,0,0,2197, +1,0,0,0,0,2199,1,0,0,0,0,2201,1,0,0,0,0,2203,1,0,0,0,0,2205,1,0,0,0,0,2207, +1,0,0,0,0,2209,1,0,0,0,0,2211,1,0,0,0,0,2213,1,0,0,0,0,2215,1,0,0,0,0,2217, +1,0,0,0,0,2219,1,0,0,0,0,2221,1,0,0,0,0,2223,1,0,0,0,0,2225,1,0,0,0,0,2227, +1,0,0,0,0,2229,1,0,0,0,0,2231,1,0,0,0,0,2233,1,0,0,0,0,2235,1,0,0,0,0,2237, +1,0,0,0,0,2239,1,0,0,0,0,2241,1,0,0,0,0,2243,1,0,0,0,0,2245,1,0,0,0,0,2247, +1,0,0,0,0,2249,1,0,0,0,0,2251,1,0,0,0,0,2253,1,0,0,0,0,2255,1,0,0,0,0,2257, +1,0,0,0,0,2259,1,0,0,0,0,2261,1,0,0,0,0,2263,1,0,0,0,0,2265,1,0,0,0,0,2267, +1,0,0,0,0,2269,1,0,0,0,0,2271,1,0,0,0,0,2273,1,0,0,0,0,2275,1,0,0,0,0,2277, +1,0,0,0,0,2279,1,0,0,0,0,2281,1,0,0,0,0,2283,1,0,0,0,0,2285,1,0,0,0,0,2287, +1,0,0,0,0,2289,1,0,0,0,0,2291,1,0,0,0,0,2293,1,0,0,0,0,2295,1,0,0,0,0,2297, +1,0,0,0,0,2299,1,0,0,0,0,2301,1,0,0,0,0,2303,1,0,0,0,0,2305,1,0,0,0,0,2307, +1,0,0,0,0,2309,1,0,0,0,0,2311,1,0,0,0,0,2313,1,0,0,0,0,2315,1,0,0,0,0,2317, +1,0,0,0,0,2319,1,0,0,0,0,2321,1,0,0,0,0,2323,1,0,0,0,0,2325,1,0,0,0,0,2327, +1,0,0,0,0,2329,1,0,0,0,0,2331,1,0,0,0,0,2333,1,0,0,0,0,2335,1,0,0,0,0,2337, +1,0,0,0,0,2339,1,0,0,0,0,2341,1,0,0,0,0,2343,1,0,0,0,0,2345,1,0,0,0,0,2347, +1,0,0,0,0,2349,1,0,0,0,0,2351,1,0,0,0,0,2353,1,0,0,0,0,2355,1,0,0,0,0,2357, +1,0,0,0,0,2359,1,0,0,0,0,2361,1,0,0,0,0,2363,1,0,0,0,0,2365,1,0,0,0,0,2367, +1,0,0,0,0,2369,1,0,0,0,0,2371,1,0,0,0,0,2373,1,0,0,0,0,2375,1,0,0,0,0,2377, +1,0,0,0,0,2379,1,0,0,0,0,2381,1,0,0,0,0,2383,1,0,0,0,0,2385,1,0,0,0,0,2387, +1,0,0,0,0,2389,1,0,0,0,0,2391,1,0,0,0,0,2393,1,0,0,0,0,2395,1,0,0,0,0,2397, +1,0,0,0,0,2399,1,0,0,0,0,2401,1,0,0,0,0,2403,1,0,0,0,0,2405,1,0,0,0,0,2407, +1,0,0,0,0,2409,1,0,0,0,0,2411,1,0,0,0,0,2413,1,0,0,0,0,2415,1,0,0,0,0,2417, +1,0,0,0,0,2419,1,0,0,0,0,2421,1,0,0,0,0,2423,1,0,0,0,0,2425,1,0,0,0,0,2427, +1,0,0,0,0,2429,1,0,0,0,0,2431,1,0,0,0,0,2433,1,0,0,0,0,2435,1,0,0,0,0,2437, +1,0,0,0,0,2439,1,0,0,0,0,2441,1,0,0,0,0,2443,1,0,0,0,0,2445,1,0,0,0,0,2447, +1,0,0,0,0,2449,1,0,0,0,0,2451,1,0,0,0,0,2453,1,0,0,0,0,2455,1,0,0,0,0,2457, +1,0,0,0,0,2459,1,0,0,0,0,2461,1,0,0,0,0,2463,1,0,0,0,0,2465,1,0,0,0,0,2467, +1,0,0,0,0,2469,1,0,0,0,0,2471,1,0,0,0,0,2473,1,0,0,0,0,2475,1,0,0,0,0,2477, +1,0,0,0,0,2479,1,0,0,0,0,2481,1,0,0,0,0,2483,1,0,0,0,0,2485,1,0,0,0,0,2487, +1,0,0,0,0,2489,1,0,0,0,0,2491,1,0,0,0,0,2493,1,0,0,0,0,2495,1,0,0,0,0,2497, +1,0,0,0,0,2499,1,0,0,0,0,2501,1,0,0,0,0,2503,1,0,0,0,0,2505,1,0,0,0,0,2507, +1,0,0,0,0,2509,1,0,0,0,0,2511,1,0,0,0,0,2513,1,0,0,0,0,2515,1,0,0,0,0,2517, +1,0,0,0,0,2519,1,0,0,0,0,2521,1,0,0,0,0,2523,1,0,0,0,0,2525,1,0,0,0,0,2527, +1,0,0,0,0,2529,1,0,0,0,0,2531,1,0,0,0,0,2533,1,0,0,0,0,2535,1,0,0,0,0,2537, +1,0,0,0,0,2539,1,0,0,0,0,2541,1,0,0,0,0,2543,1,0,0,0,0,2545,1,0,0,0,0,2547, +1,0,0,0,0,2549,1,0,0,0,0,2551,1,0,0,0,0,2553,1,0,0,0,0,2555,1,0,0,0,0,2557, +1,0,0,0,0,2559,1,0,0,0,0,2561,1,0,0,0,0,2563,1,0,0,0,0,2565,1,0,0,0,0,2567, +1,0,0,0,0,2569,1,0,0,0,0,2571,1,0,0,0,0,2573,1,0,0,0,0,2575,1,0,0,0,0,2577, +1,0,0,0,0,2579,1,0,0,0,0,2581,1,0,0,0,0,2583,1,0,0,0,0,2585,1,0,0,0,0,2587, +1,0,0,0,0,2589,1,0,0,0,0,2591,1,0,0,0,0,2593,1,0,0,0,0,2595,1,0,0,0,0,2597, +1,0,0,0,0,2599,1,0,0,0,0,2601,1,0,0,0,0,2603,1,0,0,0,0,2605,1,0,0,0,0,2607, +1,0,0,0,0,2609,1,0,0,0,0,2611,1,0,0,0,0,2613,1,0,0,0,0,2615,1,0,0,0,0,2617, +1,0,0,0,0,2619,1,0,0,0,0,2621,1,0,0,0,0,2623,1,0,0,0,0,2625,1,0,0,0,0,2627, +1,0,0,0,0,2629,1,0,0,0,0,2631,1,0,0,0,0,2633,1,0,0,0,0,2635,1,0,0,0,0,2637, +1,0,0,0,0,2639,1,0,0,0,0,2641,1,0,0,0,0,2643,1,0,0,0,0,2645,1,0,0,0,0,2647, +1,0,0,0,0,2649,1,0,0,0,0,2651,1,0,0,0,0,2653,1,0,0,0,0,2655,1,0,0,0,0,2657, +1,0,0,0,0,2659,1,0,0,0,0,2661,1,0,0,0,0,2663,1,0,0,0,0,2665,1,0,0,0,0,2667, +1,0,0,0,0,2669,1,0,0,0,0,2671,1,0,0,0,0,2673,1,0,0,0,0,2675,1,0,0,0,0,2677, +1,0,0,0,0,2679,1,0,0,0,0,2681,1,0,0,0,0,2683,1,0,0,0,0,2685,1,0,0,0,0,2687, +1,0,0,0,0,2689,1,0,0,0,0,2691,1,0,0,0,0,2693,1,0,0,0,0,2695,1,0,0,0,0,2697, +1,0,0,0,0,2699,1,0,0,0,0,2701,1,0,0,0,0,2703,1,0,0,0,0,2705,1,0,0,0,0,2707, +1,0,0,0,0,2709,1,0,0,0,0,2711,1,0,0,0,0,2713,1,0,0,0,0,2715,1,0,0,0,0,2717, +1,0,0,0,0,2719,1,0,0,0,0,2721,1,0,0,0,0,2723,1,0,0,0,0,2725,1,0,0,0,0,2727, +1,0,0,0,0,2729,1,0,0,0,0,2731,1,0,0,0,0,2733,1,0,0,0,0,2735,1,0,0,0,0,2737, +1,0,0,0,0,2739,1,0,0,0,0,2741,1,0,0,0,0,2743,1,0,0,0,0,2745,1,0,0,0,0,2747, +1,0,0,0,0,2749,1,0,0,0,0,2751,1,0,0,0,0,2753,1,0,0,0,0,2755,1,0,0,0,0,2757, +1,0,0,0,0,2759,1,0,0,0,0,2761,1,0,0,0,0,2763,1,0,0,0,0,2765,1,0,0,0,0,2767, +1,0,0,0,0,2769,1,0,0,0,0,2771,1,0,0,0,0,2773,1,0,0,0,0,2775,1,0,0,0,0,2777, +1,0,0,0,0,2779,1,0,0,0,0,2781,1,0,0,0,0,2783,1,0,0,0,0,2785,1,0,0,0,0,2787, +1,0,0,0,0,2789,1,0,0,0,0,2791,1,0,0,0,0,2793,1,0,0,0,0,2795,1,0,0,0,0,2797, +1,0,0,0,0,2799,1,0,0,0,0,2801,1,0,0,0,0,2803,1,0,0,0,0,2805,1,0,0,0,0,2807, +1,0,0,0,0,2809,1,0,0,0,0,2811,1,0,0,0,0,2813,1,0,0,0,0,2815,1,0,0,0,0,2817, +1,0,0,0,0,2819,1,0,0,0,0,2821,1,0,0,0,0,2823,1,0,0,0,0,2825,1,0,0,0,0,2827, +1,0,0,0,0,2829,1,0,0,0,0,2831,1,0,0,0,0,2833,1,0,0,0,0,2835,1,0,0,0,0,2837, +1,0,0,0,0,2839,1,0,0,0,0,2841,1,0,0,0,0,2843,1,0,0,0,0,2845,1,0,0,0,0,2847, +1,0,0,0,0,2849,1,0,0,0,0,2851,1,0,0,0,0,2853,1,0,0,0,0,2855,1,0,0,0,0,2857, +1,0,0,0,0,2859,1,0,0,0,0,2861,1,0,0,0,0,2863,1,0,0,0,0,2865,1,0,0,0,0,2867, +1,0,0,0,0,2869,1,0,0,0,0,2871,1,0,0,0,0,2873,1,0,0,0,0,2875,1,0,0,0,0,2877, +1,0,0,0,0,2879,1,0,0,0,0,2881,1,0,0,0,0,2883,1,0,0,0,0,2885,1,0,0,0,0,2887, +1,0,0,0,0,2889,1,0,0,0,0,2891,1,0,0,0,0,2893,1,0,0,0,0,2895,1,0,0,0,0,2897, +1,0,0,0,0,2899,1,0,0,0,0,2901,1,0,0,0,0,2903,1,0,0,0,0,2905,1,0,0,0,0,2907, +1,0,0,0,0,2909,1,0,0,0,0,2911,1,0,0,0,0,2913,1,0,0,0,0,2915,1,0,0,0,0,2917, +1,0,0,0,0,2919,1,0,0,0,0,2921,1,0,0,0,0,2923,1,0,0,0,0,2925,1,0,0,0,0,2927, +1,0,0,0,0,2929,1,0,0,0,0,2931,1,0,0,0,0,2933,1,0,0,0,0,2935,1,0,0,0,0,2937, +1,0,0,0,0,2939,1,0,0,0,0,2941,1,0,0,0,0,2943,1,0,0,0,0,2945,1,0,0,0,0,2947, +1,0,0,0,0,2949,1,0,0,0,0,2951,1,0,0,0,0,2953,1,0,0,0,0,2955,1,0,0,0,0,2957, +1,0,0,0,0,2959,1,0,0,0,0,2961,1,0,0,0,0,2963,1,0,0,0,0,2965,1,0,0,0,0,2967, +1,0,0,0,0,2969,1,0,0,0,0,2971,1,0,0,0,0,2973,1,0,0,0,0,2975,1,0,0,0,0,2977, +1,0,0,0,0,2979,1,0,0,0,0,2981,1,0,0,0,0,2983,1,0,0,0,0,2985,1,0,0,0,0,2987, +1,0,0,0,0,2989,1,0,0,0,0,2991,1,0,0,0,0,2993,1,0,0,0,0,2995,1,0,0,0,0,2997, +1,0,0,0,0,2999,1,0,0,0,0,3001,1,0,0,0,0,3003,1,0,0,0,0,3005,1,0,0,0,0,3007, +1,0,0,0,0,3009,1,0,0,0,0,3011,1,0,0,0,0,3013,1,0,0,0,0,3015,1,0,0,0,0,3017, +1,0,0,0,0,3019,1,0,0,0,0,3021,1,0,0,0,0,3023,1,0,0,0,0,3025,1,0,0,0,0,3027, +1,0,0,0,0,3029,1,0,0,0,0,3031,1,0,0,0,0,3033,1,0,0,0,0,3035,1,0,0,0,0,3037, +1,0,0,0,0,3039,1,0,0,0,0,3041,1,0,0,0,0,3043,1,0,0,0,0,3045,1,0,0,0,0,3047, +1,0,0,0,0,3049,1,0,0,0,0,3051,1,0,0,0,0,3053,1,0,0,0,0,3055,1,0,0,0,0,3057, +1,0,0,0,0,3059,1,0,0,0,0,3061,1,0,0,0,0,3063,1,0,0,0,0,3065,1,0,0,0,0,3067, +1,0,0,0,0,3069,1,0,0,0,0,3071,1,0,0,0,0,3073,1,0,0,0,0,3075,1,0,0,0,0,3077, +1,0,0,0,0,3079,1,0,0,0,0,3081,1,0,0,0,0,3083,1,0,0,0,0,3085,1,0,0,0,0,3087, +1,0,0,0,0,3089,1,0,0,0,0,3091,1,0,0,0,0,3093,1,0,0,0,0,3095,1,0,0,0,0,3097, +1,0,0,0,0,3099,1,0,0,0,0,3101,1,0,0,0,0,3103,1,0,0,0,0,3105,1,0,0,0,0,3107, +1,0,0,0,0,3109,1,0,0,0,0,3111,1,0,0,0,0,3113,1,0,0,0,0,3115,1,0,0,0,0,3117, +1,0,0,0,0,3119,1,0,0,0,0,3121,1,0,0,0,0,3123,1,0,0,0,0,3125,1,0,0,0,0,3127, +1,0,0,0,0,3129,1,0,0,0,0,3131,1,0,0,0,0,3133,1,0,0,0,0,3135,1,0,0,0,0,3137, +1,0,0,0,0,3139,1,0,0,0,0,3141,1,0,0,0,0,3143,1,0,0,0,0,3145,1,0,0,0,0,3147, +1,0,0,0,0,3149,1,0,0,0,0,3151,1,0,0,0,0,3153,1,0,0,0,0,3155,1,0,0,0,0,3157, +1,0,0,0,0,3159,1,0,0,0,0,3161,1,0,0,0,0,3163,1,0,0,0,0,3165,1,0,0,0,0,3167, +1,0,0,0,0,3169,1,0,0,0,0,3171,1,0,0,0,0,3173,1,0,0,0,0,3175,1,0,0,0,0,3177, +1,0,0,0,0,3179,1,0,0,0,0,3181,1,0,0,0,0,3183,1,0,0,0,0,3185,1,0,0,0,0,3187, +1,0,0,0,0,3189,1,0,0,0,0,3191,1,0,0,0,0,3193,1,0,0,0,0,3195,1,0,0,0,0,3197, +1,0,0,0,0,3199,1,0,0,0,0,3201,1,0,0,0,0,3203,1,0,0,0,0,3205,1,0,0,0,0,3207, +1,0,0,0,0,3209,1,0,0,0,0,3211,1,0,0,0,0,3213,1,0,0,0,0,3215,1,0,0,0,0,3217, +1,0,0,0,0,3219,1,0,0,0,0,3221,1,0,0,0,0,3223,1,0,0,0,0,3225,1,0,0,0,0,3227, +1,0,0,0,0,3229,1,0,0,0,0,3231,1,0,0,0,0,3233,1,0,0,0,0,3235,1,0,0,0,0,3237, +1,0,0,0,0,3239,1,0,0,0,0,3241,1,0,0,0,0,3243,1,0,0,0,0,3245,1,0,0,0,0,3247, +1,0,0,0,0,3249,1,0,0,0,0,3251,1,0,0,0,0,3253,1,0,0,0,0,3255,1,0,0,0,0,3257, +1,0,0,0,0,3259,1,0,0,0,0,3261,1,0,0,0,0,3263,1,0,0,0,0,3265,1,0,0,0,0,3267, +1,0,0,0,0,3269,1,0,0,0,0,3271,1,0,0,0,0,3273,1,0,0,0,0,3275,1,0,0,0,0,3277, +1,0,0,0,0,3279,1,0,0,0,0,3281,1,0,0,0,0,3283,1,0,0,0,0,3285,1,0,0,0,0,3287, +1,0,0,0,0,3289,1,0,0,0,0,3291,1,0,0,0,0,3293,1,0,0,0,0,3295,1,0,0,0,0,3297, +1,0,0,0,0,3299,1,0,0,0,0,3301,1,0,0,0,0,3303,1,0,0,0,0,3305,1,0,0,0,0,3307, +1,0,0,0,0,3309,1,0,0,0,0,3311,1,0,0,0,0,3313,1,0,0,0,0,3315,1,0,0,0,0,3317, +1,0,0,0,0,3319,1,0,0,0,0,3321,1,0,0,0,0,3323,1,0,0,0,0,3325,1,0,0,0,0,3327, +1,0,0,0,0,3329,1,0,0,0,0,3331,1,0,0,0,0,3333,1,0,0,0,0,3335,1,0,0,0,0,3337, +1,0,0,0,0,3339,1,0,0,0,0,3341,1,0,0,0,0,3343,1,0,0,0,0,3345,1,0,0,0,0,3347, +1,0,0,0,0,3349,1,0,0,0,0,3351,1,0,0,0,0,3353,1,0,0,0,0,3355,1,0,0,0,0,3357, +1,0,0,0,0,3359,1,0,0,0,0,3361,1,0,0,0,0,3363,1,0,0,0,0,3365,1,0,0,0,0,3367, +1,0,0,0,0,3369,1,0,0,0,0,3371,1,0,0,0,0,3373,1,0,0,0,0,3375,1,0,0,0,0,3377, +1,0,0,0,0,3379,1,0,0,0,0,3381,1,0,0,0,0,3383,1,0,0,0,0,3385,1,0,0,0,0,3387, +1,0,0,0,0,3389,1,0,0,0,0,3391,1,0,0,0,0,3393,1,0,0,0,0,3395,1,0,0,0,0,3397, +1,0,0,0,0,3399,1,0,0,0,0,3401,1,0,0,0,0,3403,1,0,0,0,0,3405,1,0,0,0,0,3407, +1,0,0,0,0,3409,1,0,0,0,0,3411,1,0,0,0,0,3413,1,0,0,0,0,3415,1,0,0,0,0,3417, +1,0,0,0,0,3419,1,0,0,0,0,3421,1,0,0,0,0,3423,1,0,0,0,0,3425,1,0,0,0,0,3427, +1,0,0,0,0,3429,1,0,0,0,0,3431,1,0,0,0,0,3433,1,0,0,0,0,3435,1,0,0,0,0,3437, +1,0,0,0,0,3439,1,0,0,0,0,3441,1,0,0,0,0,3443,1,0,0,0,0,3445,1,0,0,0,0,3447, +1,0,0,0,0,3449,1,0,0,0,0,3451,1,0,0,0,0,3453,1,0,0,0,0,3455,1,0,0,0,0,3457, +1,0,0,0,0,3459,1,0,0,0,0,3461,1,0,0,0,0,3463,1,0,0,0,0,3465,1,0,0,0,0,3467, +1,0,0,0,0,3469,1,0,0,0,0,3471,1,0,0,0,0,3473,1,0,0,0,0,3475,1,0,0,0,0,3477, +1,0,0,0,0,3479,1,0,0,0,0,3481,1,0,0,0,0,3483,1,0,0,0,0,3485,1,0,0,0,0,3487, +1,0,0,0,0,3489,1,0,0,0,0,3491,1,0,0,0,0,3493,1,0,0,0,0,3495,1,0,0,0,0,3497, +1,0,0,0,0,3499,1,0,0,0,0,3501,1,0,0,0,0,3503,1,0,0,0,0,3505,1,0,0,0,0,3507, +1,0,0,0,0,3509,1,0,0,0,0,3511,1,0,0,0,0,3513,1,0,0,0,0,3515,1,0,0,0,0,3517, +1,0,0,0,0,3519,1,0,0,0,0,3521,1,0,0,0,0,3523,1,0,0,0,0,3525,1,0,0,0,0,3527, +1,0,0,0,0,3529,1,0,0,0,0,3531,1,0,0,0,0,3533,1,0,0,0,0,3535,1,0,0,0,0,3537, +1,0,0,0,0,3539,1,0,0,0,0,3541,1,0,0,0,0,3543,1,0,0,0,0,3545,1,0,0,0,0,3547, +1,0,0,0,0,3549,1,0,0,0,0,3551,1,0,0,0,0,3553,1,0,0,0,0,3555,1,0,0,0,0,3557, +1,0,0,0,0,3559,1,0,0,0,0,3561,1,0,0,0,0,3563,1,0,0,0,0,3565,1,0,0,0,0,3567, +1,0,0,0,0,3569,1,0,0,0,0,3571,1,0,0,0,0,3573,1,0,0,0,0,3575,1,0,0,0,0,3577, +1,0,0,0,0,3579,1,0,0,0,0,3581,1,0,0,0,0,3583,1,0,0,0,0,3585,1,0,0,0,0,3587, +1,0,0,0,0,3589,1,0,0,0,0,3591,1,0,0,0,0,3593,1,0,0,0,0,3595,1,0,0,0,0,3597, +1,0,0,0,0,3599,1,0,0,0,0,3601,1,0,0,0,0,3603,1,0,0,0,0,3605,1,0,0,0,0,3607, +1,0,0,0,0,3609,1,0,0,0,0,3611,1,0,0,0,0,3613,1,0,0,0,0,3615,1,0,0,0,0,3617, +1,0,0,0,0,3619,1,0,0,0,0,3621,1,0,0,0,0,3623,1,0,0,0,0,3625,1,0,0,0,0,3627, +1,0,0,0,0,3629,1,0,0,0,0,3631,1,0,0,0,0,3633,1,0,0,0,0,3635,1,0,0,0,0,3637, +1,0,0,0,0,3639,1,0,0,0,0,3641,1,0,0,0,0,3643,1,0,0,0,0,3645,1,0,0,0,0,3647, +1,0,0,0,0,3649,1,0,0,0,0,3651,1,0,0,0,0,3653,1,0,0,0,0,3655,1,0,0,0,0,3657, +1,0,0,0,0,3659,1,0,0,0,0,3661,1,0,0,0,0,3663,1,0,0,0,0,3665,1,0,0,0,0,3667, +1,0,0,0,0,3669,1,0,0,0,0,3671,1,0,0,0,0,3673,1,0,0,0,0,3675,1,0,0,0,0,3677, +1,0,0,0,0,3679,1,0,0,0,0,3681,1,0,0,0,0,3683,1,0,0,0,0,3685,1,0,0,0,0,3687, +1,0,0,0,0,3689,1,0,0,0,0,3691,1,0,0,0,0,3693,1,0,0,0,0,3695,1,0,0,0,0,3697, +1,0,0,0,0,3699,1,0,0,0,0,3701,1,0,0,0,0,3703,1,0,0,0,0,3705,1,0,0,0,0,3707, +1,0,0,0,0,3709,1,0,0,0,0,3711,1,0,0,0,0,3713,1,0,0,0,0,3715,1,0,0,0,0,3717, +1,0,0,0,0,3719,1,0,0,0,0,3721,1,0,0,0,0,3723,1,0,0,0,0,3725,1,0,0,0,0,3727, +1,0,0,0,0,3729,1,0,0,0,0,3731,1,0,0,0,0,3733,1,0,0,0,0,3735,1,0,0,0,0,3737, +1,0,0,0,0,3739,1,0,0,0,0,3741,1,0,0,0,0,3743,1,0,0,0,0,3745,1,0,0,0,0,3747, +1,0,0,0,0,3749,1,0,0,0,0,3751,1,0,0,0,0,3753,1,0,0,0,0,3755,1,0,0,0,0,3757, +1,0,0,0,0,3759,1,0,0,0,0,3761,1,0,0,0,0,3763,1,0,0,0,0,3765,1,0,0,0,0,3767, +1,0,0,0,0,3769,1,0,0,0,0,3771,1,0,0,0,0,3773,1,0,0,0,0,3775,1,0,0,0,0,3777, +1,0,0,0,0,3779,1,0,0,0,0,3781,1,0,0,0,0,3783,1,0,0,0,0,3785,1,0,0,0,0,3787, +1,0,0,0,0,3789,1,0,0,0,0,3791,1,0,0,0,0,3793,1,0,0,0,0,3795,1,0,0,0,0,3797, +1,0,0,0,0,3799,1,0,0,0,0,3801,1,0,0,0,0,3803,1,0,0,0,0,3805,1,0,0,0,0,3807, +1,0,0,0,0,3809,1,0,0,0,0,3811,1,0,0,0,0,3813,1,0,0,0,0,3815,1,0,0,0,0,3817, +1,0,0,0,0,3819,1,0,0,0,0,3821,1,0,0,0,0,3823,1,0,0,0,0,3825,1,0,0,0,0,3827, +1,0,0,0,0,3829,1,0,0,0,0,3831,1,0,0,0,0,3833,1,0,0,0,0,3835,1,0,0,0,0,3837, +1,0,0,0,0,3839,1,0,0,0,0,3841,1,0,0,0,0,3843,1,0,0,0,0,3845,1,0,0,0,0,3847, +1,0,0,0,0,3849,1,0,0,0,0,3851,1,0,0,0,0,3853,1,0,0,0,0,3855,1,0,0,0,0,3857, +1,0,0,0,0,3859,1,0,0,0,0,3861,1,0,0,0,0,3863,1,0,0,0,0,3865,1,0,0,0,0,3867, +1,0,0,0,0,3869,1,0,0,0,0,3871,1,0,0,0,0,3873,1,0,0,0,0,3875,1,0,0,0,0,3877, +1,0,0,0,0,3879,1,0,0,0,0,3881,1,0,0,0,0,3883,1,0,0,0,0,3885,1,0,0,0,0,3887, +1,0,0,0,0,3889,1,0,0,0,0,3891,1,0,0,0,0,3893,1,0,0,0,0,3895,1,0,0,0,0,3897, +1,0,0,0,0,3899,1,0,0,0,0,3901,1,0,0,0,0,3903,1,0,0,0,0,3905,1,0,0,0,0,3907, +1,0,0,0,0,3909,1,0,0,0,0,3911,1,0,0,0,0,3913,1,0,0,0,0,3915,1,0,0,0,0,3917, +1,0,0,0,0,3919,1,0,0,0,0,3921,1,0,0,0,0,3923,1,0,0,0,0,3925,1,0,0,0,0,3927, +1,0,0,0,0,3929,1,0,0,0,0,3931,1,0,0,0,0,3933,1,0,0,0,0,3935,1,0,0,0,0,3937, +1,0,0,0,0,3939,1,0,0,0,0,3941,1,0,0,0,0,3943,1,0,0,0,0,3945,1,0,0,0,0,3947, +1,0,0,0,0,3949,1,0,0,0,0,3951,1,0,0,0,0,3953,1,0,0,0,0,3955,1,0,0,0,0,3957, +1,0,0,0,0,3959,1,0,0,0,0,3961,1,0,0,0,0,3963,1,0,0,0,0,3965,1,0,0,0,0,3967, +1,0,0,0,0,3969,1,0,0,0,0,3971,1,0,0,0,0,3973,1,0,0,0,0,3975,1,0,0,0,0,3977, +1,0,0,0,0,3979,1,0,0,0,0,3981,1,0,0,0,0,3983,1,0,0,0,0,3985,1,0,0,0,0,3987, +1,0,0,0,0,3989,1,0,0,0,0,3991,1,0,0,0,0,3993,1,0,0,0,0,3995,1,0,0,0,0,3997, +1,0,0,0,0,3999,1,0,0,0,0,4001,1,0,0,0,0,4003,1,0,0,0,0,4005,1,0,0,0,0,4007, +1,0,0,0,0,4009,1,0,0,0,0,4011,1,0,0,0,0,4013,1,0,0,0,0,4015,1,0,0,0,0,4017, +1,0,0,0,0,4019,1,0,0,0,0,4021,1,0,0,0,0,4023,1,0,0,0,0,4025,1,0,0,0,0,4027, +1,0,0,0,0,4029,1,0,0,0,0,4031,1,0,0,0,0,4033,1,0,0,0,0,4035,1,0,0,0,0,4037, +1,0,0,0,0,4039,1,0,0,0,0,4041,1,0,0,0,0,4043,1,0,0,0,0,4045,1,0,0,0,0,4047, +1,0,0,0,0,4049,1,0,0,0,0,4051,1,0,0,0,0,4053,1,0,0,0,0,4055,1,0,0,0,0,4057, +1,0,0,0,0,4059,1,0,0,0,0,4061,1,0,0,0,0,4063,1,0,0,0,0,4065,1,0,0,0,0,4067, +1,0,0,0,0,4069,1,0,0,0,0,4071,1,0,0,0,0,4073,1,0,0,0,0,4075,1,0,0,0,0,4077, +1,0,0,0,0,4079,1,0,0,0,0,4081,1,0,0,0,0,4083,1,0,0,0,0,4085,1,0,0,0,0,4087, +1,0,0,0,0,4089,1,0,0,0,0,4091,1,0,0,0,0,4093,1,0,0,0,0,4095,1,0,0,0,0,4097, +1,0,0,0,0,4099,1,0,0,0,0,4101,1,0,0,0,0,4103,1,0,0,0,0,4105,1,0,0,0,0,4107, +1,0,0,0,0,4109,1,0,0,0,0,4111,1,0,0,0,0,4113,1,0,0,0,0,4115,1,0,0,0,0,4117, +1,0,0,0,0,4119,1,0,0,0,0,4121,1,0,0,0,0,4123,1,0,0,0,0,4125,1,0,0,0,0,4127, +1,0,0,0,0,4129,1,0,0,0,0,4131,1,0,0,0,0,4133,1,0,0,0,0,4135,1,0,0,0,0,4137, +1,0,0,0,0,4139,1,0,0,0,0,4141,1,0,0,0,0,4143,1,0,0,0,0,4145,1,0,0,0,0,4147, +1,0,0,0,0,4149,1,0,0,0,0,4151,1,0,0,0,0,4153,1,0,0,0,0,4155,1,0,0,0,0,4157, +1,0,0,0,0,4159,1,0,0,0,0,4161,1,0,0,0,0,4163,1,0,0,0,0,4165,1,0,0,0,0,4167, +1,0,0,0,0,4169,1,0,0,0,0,4171,1,0,0,0,0,4173,1,0,0,0,0,4175,1,0,0,0,0,4177, +1,0,0,0,0,4179,1,0,0,0,0,4181,1,0,0,0,0,4183,1,0,0,0,0,4185,1,0,0,0,0,4187, +1,0,0,0,0,4189,1,0,0,0,0,4191,1,0,0,0,0,4193,1,0,0,0,0,4195,1,0,0,0,0,4197, +1,0,0,0,0,4199,1,0,0,0,0,4201,1,0,0,0,0,4203,1,0,0,0,0,4205,1,0,0,0,0,4207, +1,0,0,0,0,4209,1,0,0,0,0,4211,1,0,0,0,0,4213,1,0,0,0,0,4215,1,0,0,0,0,4217, +1,0,0,0,0,4219,1,0,0,0,0,4221,1,0,0,0,0,4223,1,0,0,0,0,4225,1,0,0,0,0,4227, +1,0,0,0,0,4229,1,0,0,0,0,4231,1,0,0,0,0,4233,1,0,0,0,0,4235,1,0,0,0,0,4237, +1,0,0,0,0,4239,1,0,0,0,0,4241,1,0,0,0,0,4243,1,0,0,0,0,4245,1,0,0,0,0,4247, +1,0,0,0,0,4249,1,0,0,0,0,4251,1,0,0,0,0,4253,1,0,0,0,0,4255,1,0,0,0,0,4257, +1,0,0,0,0,4259,1,0,0,0,0,4261,1,0,0,0,0,4263,1,0,0,0,0,4265,1,0,0,0,0,4267, +1,0,0,0,0,4269,1,0,0,0,0,4271,1,0,0,0,0,4273,1,0,0,0,0,4275,1,0,0,0,0,4277, +1,0,0,0,0,4279,1,0,0,0,0,4281,1,0,0,0,0,4283,1,0,0,0,0,4285,1,0,0,0,0,4287, +1,0,0,0,0,4289,1,0,0,0,0,4291,1,0,0,0,0,4293,1,0,0,0,0,4295,1,0,0,0,0,4297, +1,0,0,0,0,4299,1,0,0,0,0,4301,1,0,0,0,0,4303,1,0,0,0,0,4305,1,0,0,0,0,4307, +1,0,0,0,0,4309,1,0,0,0,0,4311,1,0,0,0,0,4313,1,0,0,0,0,4315,1,0,0,0,0,4317, +1,0,0,0,0,4319,1,0,0,0,0,4321,1,0,0,0,0,4323,1,0,0,0,0,4325,1,0,0,0,0,4327, +1,0,0,0,0,4329,1,0,0,0,0,4331,1,0,0,0,0,4333,1,0,0,0,0,4335,1,0,0,0,0,4337, +1,0,0,0,0,4339,1,0,0,0,0,4341,1,0,0,0,0,4343,1,0,0,0,0,4345,1,0,0,0,0,4347, +1,0,0,0,0,4349,1,0,0,0,0,4351,1,0,0,0,0,4353,1,0,0,0,0,4355,1,0,0,0,0,4357, +1,0,0,0,0,4359,1,0,0,0,0,4361,1,0,0,0,0,4363,1,0,0,0,0,4365,1,0,0,0,0,4367, +1,0,0,0,0,4369,1,0,0,0,0,4371,1,0,0,0,0,4373,1,0,0,0,0,4375,1,0,0,0,0,4377, +1,0,0,0,0,4379,1,0,0,0,0,4381,1,0,0,0,0,4383,1,0,0,0,0,4385,1,0,0,0,0,4387, +1,0,0,0,0,4389,1,0,0,0,0,4391,1,0,0,0,0,4393,1,0,0,0,0,4395,1,0,0,0,0,4397, +1,0,0,0,0,4399,1,0,0,0,0,4401,1,0,0,0,0,4403,1,0,0,0,0,4405,1,0,0,0,0,4407, +1,0,0,0,0,4409,1,0,0,0,0,4411,1,0,0,0,0,4413,1,0,0,0,0,4415,1,0,0,0,0,4417, +1,0,0,0,0,4419,1,0,0,0,0,4421,1,0,0,0,0,4423,1,0,0,0,0,4425,1,0,0,0,0,4427, +1,0,0,0,0,4429,1,0,0,0,0,4431,1,0,0,0,0,4433,1,0,0,0,0,4435,1,0,0,0,0,4437, +1,0,0,0,0,4439,1,0,0,0,0,4441,1,0,0,0,0,4443,1,0,0,0,0,4445,1,0,0,0,0,4447, +1,0,0,0,0,4449,1,0,0,0,0,4451,1,0,0,0,0,4453,1,0,0,0,0,4455,1,0,0,0,0,4457, +1,0,0,0,0,4459,1,0,0,0,0,4461,1,0,0,0,0,4463,1,0,0,0,0,4465,1,0,0,0,0,4467, +1,0,0,0,0,4469,1,0,0,0,0,4471,1,0,0,0,0,4473,1,0,0,0,0,4475,1,0,0,0,0,4477, +1,0,0,0,0,4479,1,0,0,0,0,4481,1,0,0,0,0,4483,1,0,0,0,0,4485,1,0,0,0,0,4487, +1,0,0,0,0,4489,1,0,0,0,0,4491,1,0,0,0,0,4493,1,0,0,0,0,4495,1,0,0,0,0,4497, +1,0,0,0,0,4499,1,0,0,0,0,4501,1,0,0,0,0,4503,1,0,0,0,0,4505,1,0,0,0,0,4507, +1,0,0,0,0,4509,1,0,0,0,0,4511,1,0,0,0,0,4513,1,0,0,0,0,4515,1,0,0,0,0,4517, +1,0,0,0,0,4519,1,0,0,0,0,4521,1,0,0,0,0,4523,1,0,0,0,0,4525,1,0,0,0,0,4527, +1,0,0,0,0,4529,1,0,0,0,0,4531,1,0,0,0,0,4533,1,0,0,0,0,4535,1,0,0,0,0,4537, +1,0,0,0,0,4539,1,0,0,0,0,4541,1,0,0,0,0,4543,1,0,0,0,0,4545,1,0,0,0,0,4547, +1,0,0,0,0,4549,1,0,0,0,0,4551,1,0,0,0,0,4553,1,0,0,0,0,4555,1,0,0,0,0,4557, +1,0,0,0,0,4559,1,0,0,0,0,4561,1,0,0,0,0,4563,1,0,0,0,0,4565,1,0,0,0,0,4567, +1,0,0,0,0,4569,1,0,0,0,0,4571,1,0,0,0,0,4573,1,0,0,0,0,4575,1,0,0,0,0,4577, +1,0,0,0,0,4579,1,0,0,0,0,4581,1,0,0,0,0,4583,1,0,0,0,0,4585,1,0,0,0,0,4587, +1,0,0,0,0,4589,1,0,0,0,0,4591,1,0,0,0,0,4593,1,0,0,0,0,4595,1,0,0,0,0,4597, +1,0,0,0,0,4599,1,0,0,0,0,4601,1,0,0,0,0,4603,1,0,0,0,0,4605,1,0,0,0,0,4607, +1,0,0,0,0,4609,1,0,0,0,0,4611,1,0,0,0,0,4613,1,0,0,0,0,4615,1,0,0,0,0,4617, +1,0,0,0,0,4619,1,0,0,0,0,4621,1,0,0,0,0,4623,1,0,0,0,0,4625,1,0,0,0,0,4627, +1,0,0,0,0,4629,1,0,0,0,0,4631,1,0,0,0,0,4633,1,0,0,0,0,4635,1,0,0,0,0,4637, +1,0,0,0,0,4639,1,0,0,0,0,4641,1,0,0,0,0,4643,1,0,0,0,0,4645,1,0,0,0,0,4647, +1,0,0,0,0,4649,1,0,0,0,0,4651,1,0,0,0,0,4653,1,0,0,0,0,4655,1,0,0,0,0,4657, +1,0,0,0,0,4659,1,0,0,0,0,4661,1,0,0,0,0,4663,1,0,0,0,0,4665,1,0,0,0,0,4667, +1,0,0,0,0,4669,1,0,0,0,0,4671,1,0,0,0,0,4673,1,0,0,0,0,4675,1,0,0,0,0,4677, +1,0,0,0,0,4679,1,0,0,0,0,4681,1,0,0,0,0,4683,1,0,0,0,0,4685,1,0,0,0,0,4687, +1,0,0,0,0,4689,1,0,0,0,0,4691,1,0,0,0,0,4693,1,0,0,0,0,4695,1,0,0,0,0,4697, +1,0,0,0,0,4699,1,0,0,0,0,4701,1,0,0,0,0,4703,1,0,0,0,0,4705,1,0,0,0,0,4707, +1,0,0,0,0,4709,1,0,0,0,0,4711,1,0,0,0,0,4713,1,0,0,0,0,4715,1,0,0,0,0,4717, +1,0,0,0,0,4719,1,0,0,0,0,4721,1,0,0,0,0,4723,1,0,0,0,0,4725,1,0,0,0,0,4727, +1,0,0,0,0,4729,1,0,0,0,0,4731,1,0,0,0,0,4733,1,0,0,0,0,4735,1,0,0,0,0,4737, +1,0,0,0,0,4739,1,0,0,0,0,4741,1,0,0,0,0,4743,1,0,0,0,0,4745,1,0,0,0,0,4747, +1,0,0,0,0,4749,1,0,0,0,0,4751,1,0,0,0,0,4753,1,0,0,0,0,4755,1,0,0,0,0,4757, +1,0,0,0,0,4759,1,0,0,0,0,4761,1,0,0,0,0,4763,1,0,0,0,0,4765,1,0,0,0,0,4767, +1,0,0,0,0,4769,1,0,0,0,0,4771,1,0,0,0,0,4773,1,0,0,0,0,4775,1,0,0,0,0,4777, +1,0,0,0,0,4779,1,0,0,0,0,4781,1,0,0,0,0,4783,1,0,0,0,0,4785,1,0,0,0,0,4787, +1,0,0,0,0,4789,1,0,0,0,0,4791,1,0,0,0,0,4793,1,0,0,0,0,4795,1,0,0,0,0,4797, +1,0,0,0,0,4799,1,0,0,0,0,4801,1,0,0,0,0,4803,1,0,0,0,0,4805,1,0,0,0,0,4807, +1,0,0,0,0,4809,1,0,0,0,0,4811,1,0,0,0,0,4813,1,0,0,0,0,4815,1,0,0,0,0,4817, +1,0,0,0,0,4819,1,0,0,0,0,4821,1,0,0,0,0,4823,1,0,0,0,0,4825,1,0,0,0,0,4827, +1,0,0,0,0,4829,1,0,0,0,0,4831,1,0,0,0,0,4833,1,0,0,0,0,4835,1,0,0,0,0,4837, +1,0,0,0,0,4839,1,0,0,0,0,4841,1,0,0,0,0,4843,1,0,0,0,0,4845,1,0,0,0,0,4847, +1,0,0,0,0,4849,1,0,0,0,0,4851,1,0,0,0,0,4853,1,0,0,0,0,4855,1,0,0,0,0,4857, +1,0,0,0,0,4859,1,0,0,0,0,4861,1,0,0,0,0,4863,1,0,0,0,0,4865,1,0,0,0,0,4867, +1,0,0,0,0,4869,1,0,0,0,0,4871,1,0,0,0,0,4873,1,0,0,0,0,4875,1,0,0,0,0,4877, +1,0,0,0,0,4879,1,0,0,0,0,4881,1,0,0,0,0,4883,1,0,0,0,0,4907,1,0,0,0,0,4909, +1,0,0,0,0,4911,1,0,0,0,0,4913,1,0,0,0,0,4915,1,0,0,0,0,4917,1,0,0,0,0,4919, +1,0,0,0,0,4921,1,0,0,0,0,4923,1,0,0,0,0,4925,1,0,0,0,0,4927,1,0,0,0,0,4929, +1,0,0,0,0,4931,1,0,0,0,0,4933,1,0,0,0,0,4935,1,0,0,0,0,4937,1,0,0,0,0,4939, +1,0,0,0,0,4941,1,0,0,0,0,4943,1,0,0,0,0,4945,1,0,0,0,0,4947,1,0,0,0,0,4949, +1,0,0,0,0,4951,1,0,0,0,0,4953,1,0,0,0,0,4955,1,0,0,0,0,4957,1,0,0,0,0,4959, +1,0,0,0,0,4961,1,0,0,0,0,4963,1,0,0,0,0,4965,1,0,0,0,0,4967,1,0,0,0,0,4969, +1,0,0,0,0,4971,1,0,0,0,0,4973,1,0,0,0,0,4975,1,0,0,0,0,4977,1,0,0,0,0,4979, +1,0,0,0,0,4981,1,0,0,0,0,4983,1,0,0,0,1,4997,1,0,0,0,3,5003,1,0,0,0,5,5007, +1,0,0,0,7,5014,1,0,0,0,9,5021,1,0,0,0,11,5030,1,0,0,0,13,5041,1,0,0,0,15, +5049,1,0,0,0,17,5053,1,0,0,0,19,5058,1,0,0,0,21,5065,1,0,0,0,23,5072,1,0, +0,0,25,5080,1,0,0,0,27,5089,1,0,0,0,29,5096,1,0,0,0,31,5113,1,0,0,0,33,5125, +1,0,0,0,35,5141,1,0,0,0,37,5152,1,0,0,0,39,5161,1,0,0,0,41,5175,1,0,0,0, +43,5179,1,0,0,0,45,5190,1,0,0,0,47,5200,1,0,0,0,49,5211,1,0,0,0,51,5220, +1,0,0,0,53,5226,1,0,0,0,55,5237,1,0,0,0,57,5251,1,0,0,0,59,5260,1,0,0,0, +61,5267,1,0,0,0,63,5275,1,0,0,0,65,5290,1,0,0,0,67,5296,1,0,0,0,69,5302, +1,0,0,0,71,5312,1,0,0,0,73,5314,1,0,0,0,75,5320,1,0,0,0,77,5324,1,0,0,0, +79,5333,1,0,0,0,81,5339,1,0,0,0,83,5348,1,0,0,0,85,5354,1,0,0,0,87,5364, +1,0,0,0,89,5371,1,0,0,0,91,5380,1,0,0,0,93,5388,1,0,0,0,95,5397,1,0,0,0, +97,5407,1,0,0,0,99,5411,1,0,0,0,101,5421,1,0,0,0,103,5433,1,0,0,0,105,5441, +1,0,0,0,107,5453,1,0,0,0,109,5462,1,0,0,0,111,5466,1,0,0,0,113,5476,1,0, +0,0,115,5483,1,0,0,0,117,5498,1,0,0,0,119,5512,1,0,0,0,121,5524,1,0,0,0, +123,5530,1,0,0,0,125,5552,1,0,0,0,127,5561,1,0,0,0,129,5569,1,0,0,0,131, +5578,1,0,0,0,133,5589,1,0,0,0,135,5593,1,0,0,0,137,5599,1,0,0,0,139,5602, +1,0,0,0,141,5606,1,0,0,0,143,5612,1,0,0,0,145,5621,1,0,0,0,147,5626,1,0, +0,0,149,5631,1,0,0,0,151,5640,1,0,0,0,153,5647,1,0,0,0,155,5657,1,0,0,0, +157,5663,1,0,0,0,159,5676,1,0,0,0,161,5682,1,0,0,0,163,5687,1,0,0,0,165, +5690,1,0,0,0,167,5700,1,0,0,0,169,5711,1,0,0,0,171,5717,1,0,0,0,173,5731, +1,0,0,0,175,5746,1,0,0,0,177,5753,1,0,0,0,179,5767,1,0,0,0,181,5780,1,0, +0,0,183,5785,1,0,0,0,185,5796,1,0,0,0,187,5807,1,0,0,0,189,5818,1,0,0,0, +191,5828,1,0,0,0,193,5851,1,0,0,0,195,5867,1,0,0,0,197,5880,1,0,0,0,199, +5885,1,0,0,0,201,5896,1,0,0,0,203,5908,1,0,0,0,205,5915,1,0,0,0,207,5923, +1,0,0,0,209,5933,1,0,0,0,211,5941,1,0,0,0,213,5947,1,0,0,0,215,5957,1,0, +0,0,217,5963,1,0,0,0,219,5973,1,0,0,0,221,6001,1,0,0,0,223,6008,1,0,0,0, +225,6015,1,0,0,0,227,6021,1,0,0,0,229,6031,1,0,0,0,231,6050,1,0,0,0,233, +6057,1,0,0,0,235,6066,1,0,0,0,237,6074,1,0,0,0,239,6080,1,0,0,0,241,6090, +1,0,0,0,243,6094,1,0,0,0,245,6102,1,0,0,0,247,6109,1,0,0,0,249,6116,1,0, +0,0,251,6130,1,0,0,0,253,6153,1,0,0,0,255,6171,1,0,0,0,257,6184,1,0,0,0, +259,6206,1,0,0,0,261,6223,1,0,0,0,263,6238,1,0,0,0,265,6249,1,0,0,0,267, +6257,1,0,0,0,269,6268,1,0,0,0,271,6275,1,0,0,0,273,6286,1,0,0,0,275,6293, +1,0,0,0,277,6301,1,0,0,0,279,6313,1,0,0,0,281,6318,1,0,0,0,283,6325,1,0, +0,0,285,6330,1,0,0,0,287,6336,1,0,0,0,289,6348,1,0,0,0,291,6355,1,0,0,0, +293,6365,1,0,0,0,295,6370,1,0,0,0,297,6378,1,0,0,0,299,6383,1,0,0,0,301, +6389,1,0,0,0,303,6396,1,0,0,0,305,6404,1,0,0,0,307,6414,1,0,0,0,309,6419, +1,0,0,0,311,6426,1,0,0,0,313,6439,1,0,0,0,315,6451,1,0,0,0,317,6457,1,0, +0,0,319,6462,1,0,0,0,321,6465,1,0,0,0,323,6488,1,0,0,0,325,6500,1,0,0,0, +327,6505,1,0,0,0,329,6511,1,0,0,0,331,6525,1,0,0,0,333,6531,1,0,0,0,335, +6540,1,0,0,0,337,6556,1,0,0,0,339,6573,1,0,0,0,341,6581,1,0,0,0,343,6592, +1,0,0,0,345,6601,1,0,0,0,347,6606,1,0,0,0,349,6613,1,0,0,0,351,6623,1,0, +0,0,353,6632,1,0,0,0,355,6640,1,0,0,0,357,6652,1,0,0,0,359,6660,1,0,0,0, +361,6665,1,0,0,0,363,6670,1,0,0,0,365,6685,1,0,0,0,367,6694,1,0,0,0,369, +6706,1,0,0,0,371,6711,1,0,0,0,373,6728,1,0,0,0,375,6740,1,0,0,0,377,6746, +1,0,0,0,379,6754,1,0,0,0,381,6761,1,0,0,0,383,6776,1,0,0,0,385,6802,1,0, +0,0,387,6812,1,0,0,0,389,6823,1,0,0,0,391,6836,1,0,0,0,393,6841,1,0,0,0, +395,6849,1,0,0,0,397,6861,1,0,0,0,399,6879,1,0,0,0,401,6885,1,0,0,0,403, +6896,1,0,0,0,405,6902,1,0,0,0,407,6909,1,0,0,0,409,6913,1,0,0,0,411,6919, +1,0,0,0,413,6925,1,0,0,0,415,6940,1,0,0,0,417,6951,1,0,0,0,419,6958,1,0, +0,0,421,6964,1,0,0,0,423,6972,1,0,0,0,425,6978,1,0,0,0,427,6980,1,0,0,0, +429,6987,1,0,0,0,431,6992,1,0,0,0,433,6998,1,0,0,0,435,7024,1,0,0,0,437, +7030,1,0,0,0,439,7047,1,0,0,0,441,7055,1,0,0,0,443,7071,1,0,0,0,445,7088, +1,0,0,0,447,7099,1,0,0,0,449,7110,1,0,0,0,451,7128,1,0,0,0,453,7148,1,0, +0,0,455,7160,1,0,0,0,457,7169,1,0,0,0,459,7181,1,0,0,0,461,7188,1,0,0,0, +463,7200,1,0,0,0,465,7205,1,0,0,0,467,7213,1,0,0,0,469,7224,1,0,0,0,471, +7233,1,0,0,0,473,7255,1,0,0,0,475,7262,1,0,0,0,477,7270,1,0,0,0,479,7283, +1,0,0,0,481,7296,1,0,0,0,483,7304,1,0,0,0,485,7311,1,0,0,0,487,7321,1,0, +0,0,489,7328,1,0,0,0,491,7340,1,0,0,0,493,7348,1,0,0,0,495,7359,1,0,0,0, +497,7373,1,0,0,0,499,7381,1,0,0,0,501,7390,1,0,0,0,503,7401,1,0,0,0,505, +7411,1,0,0,0,507,7422,1,0,0,0,509,7430,1,0,0,0,511,7440,1,0,0,0,513,7456, +1,0,0,0,515,7465,1,0,0,0,517,7474,1,0,0,0,519,7486,1,0,0,0,521,7494,1,0, +0,0,523,7501,1,0,0,0,525,7516,1,0,0,0,527,7528,1,0,0,0,529,7538,1,0,0,0, +531,7546,1,0,0,0,533,7557,1,0,0,0,535,7572,1,0,0,0,537,7579,1,0,0,0,539, +7594,1,0,0,0,541,7617,1,0,0,0,543,7639,1,0,0,0,545,7661,1,0,0,0,547,7682, +1,0,0,0,549,7703,1,0,0,0,551,7722,1,0,0,0,553,7740,1,0,0,0,555,7756,1,0, +0,0,557,7764,1,0,0,0,559,7777,1,0,0,0,561,7786,1,0,0,0,563,7797,1,0,0,0, +565,7806,1,0,0,0,567,7812,1,0,0,0,569,7823,1,0,0,0,571,7835,1,0,0,0,573, +7847,1,0,0,0,575,7857,1,0,0,0,577,7868,1,0,0,0,579,7887,1,0,0,0,581,7902, +1,0,0,0,583,7916,1,0,0,0,585,7924,1,0,0,0,587,7933,1,0,0,0,589,7941,1,0, +0,0,591,7950,1,0,0,0,593,7962,1,0,0,0,595,7976,1,0,0,0,597,7984,1,0,0,0, +599,7995,1,0,0,0,601,8002,1,0,0,0,603,8007,1,0,0,0,605,8014,1,0,0,0,607, +8021,1,0,0,0,609,8032,1,0,0,0,611,8048,1,0,0,0,613,8060,1,0,0,0,615,8064, +1,0,0,0,617,8069,1,0,0,0,619,8074,1,0,0,0,621,8097,1,0,0,0,623,8103,1,0, +0,0,625,8111,1,0,0,0,627,8121,1,0,0,0,629,8132,1,0,0,0,631,8144,1,0,0,0, +633,8157,1,0,0,0,635,8173,1,0,0,0,637,8179,1,0,0,0,639,8186,1,0,0,0,641, +8203,1,0,0,0,643,8226,1,0,0,0,645,8235,1,0,0,0,647,8246,1,0,0,0,649,8255, +1,0,0,0,651,8261,1,0,0,0,653,8274,1,0,0,0,655,8284,1,0,0,0,657,8288,1,0, +0,0,659,8296,1,0,0,0,661,8301,1,0,0,0,663,8309,1,0,0,0,665,8317,1,0,0,0, +667,8328,1,0,0,0,669,8336,1,0,0,0,671,8349,1,0,0,0,673,8364,1,0,0,0,675, +8377,1,0,0,0,677,8395,1,0,0,0,679,8408,1,0,0,0,681,8417,1,0,0,0,683,8424, +1,0,0,0,685,8445,1,0,0,0,687,8469,1,0,0,0,689,8481,1,0,0,0,691,8484,1,0, +0,0,693,8490,1,0,0,0,695,8499,1,0,0,0,697,8508,1,0,0,0,699,8513,1,0,0,0, +701,8522,1,0,0,0,703,8532,1,0,0,0,705,8548,1,0,0,0,707,8561,1,0,0,0,709, +8571,1,0,0,0,711,8596,1,0,0,0,713,8617,1,0,0,0,715,8626,1,0,0,0,717,8654, +1,0,0,0,719,8659,1,0,0,0,721,8670,1,0,0,0,723,8682,1,0,0,0,725,8692,1,0, +0,0,727,8696,1,0,0,0,729,8701,1,0,0,0,731,8715,1,0,0,0,733,8719,1,0,0,0, +735,8734,1,0,0,0,737,8741,1,0,0,0,739,8752,1,0,0,0,741,8767,1,0,0,0,743, +8778,1,0,0,0,745,8793,1,0,0,0,747,8804,1,0,0,0,749,8808,1,0,0,0,751,8819, +1,0,0,0,753,8825,1,0,0,0,755,8834,1,0,0,0,757,8838,1,0,0,0,759,8846,1,0, +0,0,761,8854,1,0,0,0,763,8864,1,0,0,0,765,8876,1,0,0,0,767,8881,1,0,0,0, +769,8891,1,0,0,0,771,8899,1,0,0,0,773,8911,1,0,0,0,775,8919,1,0,0,0,777, +8929,1,0,0,0,779,8938,1,0,0,0,781,8956,1,0,0,0,783,8975,1,0,0,0,785,8986, +1,0,0,0,787,8995,1,0,0,0,789,9003,1,0,0,0,791,9010,1,0,0,0,793,9018,1,0, +0,0,795,9025,1,0,0,0,797,9031,1,0,0,0,799,9040,1,0,0,0,801,9051,1,0,0,0, +803,9058,1,0,0,0,805,9068,1,0,0,0,807,9078,1,0,0,0,809,9085,1,0,0,0,811, +9097,1,0,0,0,813,9107,1,0,0,0,815,9117,1,0,0,0,817,9123,1,0,0,0,819,9131, +1,0,0,0,821,9137,1,0,0,0,823,9154,1,0,0,0,825,9159,1,0,0,0,827,9171,1,0, +0,0,829,9179,1,0,0,0,831,9188,1,0,0,0,833,9197,1,0,0,0,835,9208,1,0,0,0, +837,9222,1,0,0,0,839,9233,1,0,0,0,841,9243,1,0,0,0,843,9254,1,0,0,0,845, +9263,1,0,0,0,847,9275,1,0,0,0,849,9285,1,0,0,0,851,9297,1,0,0,0,853,9309, +1,0,0,0,855,9317,1,0,0,0,857,9326,1,0,0,0,859,9355,1,0,0,0,861,9376,1,0, +0,0,863,9391,1,0,0,0,865,9404,1,0,0,0,867,9413,1,0,0,0,869,9426,1,0,0,0, +871,9434,1,0,0,0,873,9446,1,0,0,0,875,9457,1,0,0,0,877,9462,1,0,0,0,879, +9472,1,0,0,0,881,9485,1,0,0,0,883,9491,1,0,0,0,885,9500,1,0,0,0,887,9509, +1,0,0,0,889,9523,1,0,0,0,891,9535,1,0,0,0,893,9546,1,0,0,0,895,9550,1,0, +0,0,897,9561,1,0,0,0,899,9574,1,0,0,0,901,9586,1,0,0,0,903,9603,1,0,0,0, +905,9615,1,0,0,0,907,9624,1,0,0,0,909,9630,1,0,0,0,911,9637,1,0,0,0,913, +9642,1,0,0,0,915,9649,1,0,0,0,917,9653,1,0,0,0,919,9659,1,0,0,0,921,9679, +1,0,0,0,923,9700,1,0,0,0,925,9718,1,0,0,0,927,9725,1,0,0,0,929,9735,1,0, +0,0,931,9748,1,0,0,0,933,9760,1,0,0,0,935,9765,1,0,0,0,937,9776,1,0,0,0, +939,9801,1,0,0,0,941,9825,1,0,0,0,943,9830,1,0,0,0,945,9838,1,0,0,0,947, +9848,1,0,0,0,949,9851,1,0,0,0,951,9859,1,0,0,0,953,9876,1,0,0,0,955,9901, +1,0,0,0,957,9903,1,0,0,0,959,9908,1,0,0,0,961,9920,1,0,0,0,963,9928,1,0, +0,0,965,9939,1,0,0,0,967,9948,1,0,0,0,969,9956,1,0,0,0,971,9969,1,0,0,0, +973,9984,1,0,0,0,975,9998,1,0,0,0,977,10019,1,0,0,0,979,10024,1,0,0,0,981, +10030,1,0,0,0,983,10033,1,0,0,0,985,10042,1,0,0,0,987,10053,1,0,0,0,989, +10064,1,0,0,0,991,10070,1,0,0,0,993,10081,1,0,0,0,995,10088,1,0,0,0,997, +10096,1,0,0,0,999,10116,1,0,0,0,1001,10130,1,0,0,0,1003,10139,1,0,0,0,1005, +10148,1,0,0,0,1007,10156,1,0,0,0,1009,10167,1,0,0,0,1011,10189,1,0,0,0,1013, +10193,1,0,0,0,1015,10210,1,0,0,0,1017,10217,1,0,0,0,1019,10226,1,0,0,0,1021, +10234,1,0,0,0,1023,10242,1,0,0,0,1025,10253,1,0,0,0,1027,10268,1,0,0,0,1029, +10274,1,0,0,0,1031,10283,1,0,0,0,1033,10287,1,0,0,0,1035,10302,1,0,0,0,1037, +10308,1,0,0,0,1039,10330,1,0,0,0,1041,10337,1,0,0,0,1043,10349,1,0,0,0,1045, +10360,1,0,0,0,1047,10367,1,0,0,0,1049,10375,1,0,0,0,1051,10384,1,0,0,0,1053, +10389,1,0,0,0,1055,10398,1,0,0,0,1057,10407,1,0,0,0,1059,10418,1,0,0,0,1061, +10425,1,0,0,0,1063,10431,1,0,0,0,1065,10438,1,0,0,0,1067,10448,1,0,0,0,1069, +10463,1,0,0,0,1071,10474,1,0,0,0,1073,10483,1,0,0,0,1075,10491,1,0,0,0,1077, +10501,1,0,0,0,1079,10511,1,0,0,0,1081,10519,1,0,0,0,1083,10526,1,0,0,0,1085, +10535,1,0,0,0,1087,10542,1,0,0,0,1089,10553,1,0,0,0,1091,10558,1,0,0,0,1093, +10579,1,0,0,0,1095,10592,1,0,0,0,1097,10596,1,0,0,0,1099,10603,1,0,0,0,1101, +10611,1,0,0,0,1103,10621,1,0,0,0,1105,10628,1,0,0,0,1107,10644,1,0,0,0,1109, +10652,1,0,0,0,1111,10660,1,0,0,0,1113,10667,1,0,0,0,1115,10675,1,0,0,0,1117, +10684,1,0,0,0,1119,10695,1,0,0,0,1121,10710,1,0,0,0,1123,10718,1,0,0,0,1125, +10731,1,0,0,0,1127,10737,1,0,0,0,1129,10746,1,0,0,0,1131,10751,1,0,0,0,1133, +10758,1,0,0,0,1135,10773,1,0,0,0,1137,10780,1,0,0,0,1139,10802,1,0,0,0,1141, +10812,1,0,0,0,1143,10821,1,0,0,0,1145,10829,1,0,0,0,1147,10835,1,0,0,0,1149, +10842,1,0,0,0,1151,10846,1,0,0,0,1153,10851,1,0,0,0,1155,10861,1,0,0,0,1157, +10869,1,0,0,0,1159,10877,1,0,0,0,1161,10893,1,0,0,0,1163,10904,1,0,0,0,1165, +10916,1,0,0,0,1167,10930,1,0,0,0,1169,10936,1,0,0,0,1171,10942,1,0,0,0,1173, +10949,1,0,0,0,1175,10954,1,0,0,0,1177,10972,1,0,0,0,1179,10982,1,0,0,0,1181, +10992,1,0,0,0,1183,11016,1,0,0,0,1185,11023,1,0,0,0,1187,11029,1,0,0,0,1189, +11034,1,0,0,0,1191,11041,1,0,0,0,1193,11047,1,0,0,0,1195,11054,1,0,0,0,1197, +11065,1,0,0,0,1199,11077,1,0,0,0,1201,11083,1,0,0,0,1203,11099,1,0,0,0,1205, +11107,1,0,0,0,1207,11117,1,0,0,0,1209,11129,1,0,0,0,1211,11135,1,0,0,0,1213, +11140,1,0,0,0,1215,11145,1,0,0,0,1217,11151,1,0,0,0,1219,11157,1,0,0,0,1221, +11164,1,0,0,0,1223,11174,1,0,0,0,1225,11182,1,0,0,0,1227,11189,1,0,0,0,1229, +11195,1,0,0,0,1231,11219,1,0,0,0,1233,11227,1,0,0,0,1235,11235,1,0,0,0,1237, +11239,1,0,0,0,1239,11246,1,0,0,0,1241,11254,1,0,0,0,1243,11270,1,0,0,0,1245, +11279,1,0,0,0,1247,11289,1,0,0,0,1249,11299,1,0,0,0,1251,11305,1,0,0,0,1253, +11310,1,0,0,0,1255,11318,1,0,0,0,1257,11323,1,0,0,0,1259,11348,1,0,0,0,1261, +11357,1,0,0,0,1263,11367,1,0,0,0,1265,11371,1,0,0,0,1267,11373,1,0,0,0,1269, +11401,1,0,0,0,1271,11424,1,0,0,0,1273,11440,1,0,0,0,1275,11453,1,0,0,0,1277, +11463,1,0,0,0,1279,11467,1,0,0,0,1281,11474,1,0,0,0,1283,11483,1,0,0,0,1285, +11495,1,0,0,0,1287,11516,1,0,0,0,1289,11521,1,0,0,0,1291,11527,1,0,0,0,1293, +11536,1,0,0,0,1295,11542,1,0,0,0,1297,11551,1,0,0,0,1299,11560,1,0,0,0,1301, +11572,1,0,0,0,1303,11579,1,0,0,0,1305,11590,1,0,0,0,1307,11600,1,0,0,0,1309, +11606,1,0,0,0,1311,11622,1,0,0,0,1313,11633,1,0,0,0,1315,11641,1,0,0,0,1317, +11646,1,0,0,0,1319,11655,1,0,0,0,1321,11663,1,0,0,0,1323,11670,1,0,0,0,1325, +11677,1,0,0,0,1327,11682,1,0,0,0,1329,11687,1,0,0,0,1331,11696,1,0,0,0,1333, +11705,1,0,0,0,1335,11712,1,0,0,0,1337,11717,1,0,0,0,1339,11728,1,0,0,0,1341, +11741,1,0,0,0,1343,11753,1,0,0,0,1345,11763,1,0,0,0,1347,11768,1,0,0,0,1349, +11782,1,0,0,0,1351,11794,1,0,0,0,1353,11798,1,0,0,0,1355,11803,1,0,0,0,1357, +11809,1,0,0,0,1359,11814,1,0,0,0,1361,11827,1,0,0,0,1363,11834,1,0,0,0,1365, +11836,1,0,0,0,1367,11847,1,0,0,0,1369,11858,1,0,0,0,1371,11867,1,0,0,0,1373, +11880,1,0,0,0,1375,11883,1,0,0,0,1377,11893,1,0,0,0,1379,11896,1,0,0,0,1381, +11903,1,0,0,0,1383,11926,1,0,0,0,1385,11954,1,0,0,0,1387,11981,1,0,0,0,1389, +12001,1,0,0,0,1391,12005,1,0,0,0,1393,12015,1,0,0,0,1395,12022,1,0,0,0,1397, +12029,1,0,0,0,1399,12038,1,0,0,0,1401,12060,1,0,0,0,1403,12068,1,0,0,0,1405, +12084,1,0,0,0,1407,12094,1,0,0,0,1409,12106,1,0,0,0,1411,12116,1,0,0,0,1413, +12121,1,0,0,0,1415,12128,1,0,0,0,1417,12138,1,0,0,0,1419,12152,1,0,0,0,1421, +12163,1,0,0,0,1423,12171,1,0,0,0,1425,12179,1,0,0,0,1427,12189,1,0,0,0,1429, +12202,1,0,0,0,1431,12208,1,0,0,0,1433,12217,1,0,0,0,1435,12228,1,0,0,0,1437, +12239,1,0,0,0,1439,12249,1,0,0,0,1441,12262,1,0,0,0,1443,12276,1,0,0,0,1445, +12285,1,0,0,0,1447,12296,1,0,0,0,1449,12312,1,0,0,0,1451,12325,1,0,0,0,1453, +12339,1,0,0,0,1455,12348,1,0,0,0,1457,12360,1,0,0,0,1459,12370,1,0,0,0,1461, +12381,1,0,0,0,1463,12391,1,0,0,0,1465,12399,1,0,0,0,1467,12408,1,0,0,0,1469, +12422,1,0,0,0,1471,12430,1,0,0,0,1473,12433,1,0,0,0,1475,12441,1,0,0,0,1477, +12449,1,0,0,0,1479,12461,1,0,0,0,1481,12471,1,0,0,0,1483,12480,1,0,0,0,1485, +12487,1,0,0,0,1487,12505,1,0,0,0,1489,12514,1,0,0,0,1491,12533,1,0,0,0,1493, +12550,1,0,0,0,1495,12556,1,0,0,0,1497,12562,1,0,0,0,1499,12570,1,0,0,0,1501, +12582,1,0,0,0,1503,12602,1,0,0,0,1505,12623,1,0,0,0,1507,12638,1,0,0,0,1509, +12645,1,0,0,0,1511,12660,1,0,0,0,1513,12676,1,0,0,0,1515,12685,1,0,0,0,1517, +12695,1,0,0,0,1519,12708,1,0,0,0,1521,12718,1,0,0,0,1523,12726,1,0,0,0,1525, +12733,1,0,0,0,1527,12740,1,0,0,0,1529,12747,1,0,0,0,1531,12754,1,0,0,0,1533, +12760,1,0,0,0,1535,12768,1,0,0,0,1537,12780,1,0,0,0,1539,12793,1,0,0,0,1541, +12810,1,0,0,0,1543,12823,1,0,0,0,1545,12835,1,0,0,0,1547,12845,1,0,0,0,1549, +12854,1,0,0,0,1551,12858,1,0,0,0,1553,12867,1,0,0,0,1555,12872,1,0,0,0,1557, +12883,1,0,0,0,1559,12896,1,0,0,0,1561,12906,1,0,0,0,1563,12916,1,0,0,0,1565, +12927,1,0,0,0,1567,12930,1,0,0,0,1569,12938,1,0,0,0,1571,12948,1,0,0,0,1573, +12964,1,0,0,0,1575,12970,1,0,0,0,1577,12978,1,0,0,0,1579,12995,1,0,0,0,1581, +13000,1,0,0,0,1583,13004,1,0,0,0,1585,13009,1,0,0,0,1587,13023,1,0,0,0,1589, +13034,1,0,0,0,1591,13045,1,0,0,0,1593,13058,1,0,0,0,1595,13070,1,0,0,0,1597, +13078,1,0,0,0,1599,13083,1,0,0,0,1601,13098,1,0,0,0,1603,13110,1,0,0,0,1605, +13120,1,0,0,0,1607,13131,1,0,0,0,1609,13146,1,0,0,0,1611,13157,1,0,0,0,1613, +13176,1,0,0,0,1615,13194,1,0,0,0,1617,13209,1,0,0,0,1619,13220,1,0,0,0,1621, +13222,1,0,0,0,1623,13238,1,0,0,0,1625,13243,1,0,0,0,1627,13252,1,0,0,0,1629, +13256,1,0,0,0,1631,13267,1,0,0,0,1633,13275,1,0,0,0,1635,13280,1,0,0,0,1637, +13289,1,0,0,0,1639,13294,1,0,0,0,1641,13300,1,0,0,0,1643,13309,1,0,0,0,1645, +13318,1,0,0,0,1647,13323,1,0,0,0,1649,13334,1,0,0,0,1651,13342,1,0,0,0,1653, +13349,1,0,0,0,1655,13353,1,0,0,0,1657,13359,1,0,0,0,1659,13385,1,0,0,0,1661, +13403,1,0,0,0,1663,13426,1,0,0,0,1665,13434,1,0,0,0,1667,13439,1,0,0,0,1669, +13448,1,0,0,0,1671,13461,1,0,0,0,1673,13469,1,0,0,0,1675,13474,1,0,0,0,1677, +13482,1,0,0,0,1679,13490,1,0,0,0,1681,13498,1,0,0,0,1683,13506,1,0,0,0,1685, +13513,1,0,0,0,1687,13518,1,0,0,0,1689,13524,1,0,0,0,1691,13535,1,0,0,0,1693, +13542,1,0,0,0,1695,13550,1,0,0,0,1697,13560,1,0,0,0,1699,13565,1,0,0,0,1701, +13574,1,0,0,0,1703,13580,1,0,0,0,1705,13586,1,0,0,0,1707,13592,1,0,0,0,1709, +13604,1,0,0,0,1711,13609,1,0,0,0,1713,13615,1,0,0,0,1715,13622,1,0,0,0,1717, +13628,1,0,0,0,1719,13633,1,0,0,0,1721,13638,1,0,0,0,1723,13645,1,0,0,0,1725, +13649,1,0,0,0,1727,13652,1,0,0,0,1729,13658,1,0,0,0,1731,13663,1,0,0,0,1733, +13667,1,0,0,0,1735,13675,1,0,0,0,1737,13682,1,0,0,0,1739,13687,1,0,0,0,1741, +13701,1,0,0,0,1743,13707,1,0,0,0,1745,13717,1,0,0,0,1747,13732,1,0,0,0,1749, +13741,1,0,0,0,1751,13749,1,0,0,0,1753,13758,1,0,0,0,1755,13765,1,0,0,0,1757, +13773,1,0,0,0,1759,13778,1,0,0,0,1761,13786,1,0,0,0,1763,13795,1,0,0,0,1765, +13803,1,0,0,0,1767,13811,1,0,0,0,1769,13834,1,0,0,0,1771,13860,1,0,0,0,1773, +13864,1,0,0,0,1775,13874,1,0,0,0,1777,13881,1,0,0,0,1779,13887,1,0,0,0,1781, +13912,1,0,0,0,1783,13917,1,0,0,0,1785,13922,1,0,0,0,1787,13927,1,0,0,0,1789, +13933,1,0,0,0,1791,13937,1,0,0,0,1793,13942,1,0,0,0,1795,13949,1,0,0,0,1797, +13955,1,0,0,0,1799,13957,1,0,0,0,1801,13962,1,0,0,0,1803,13971,1,0,0,0,1805, +13979,1,0,0,0,1807,13986,1,0,0,0,1809,13997,1,0,0,0,1811,14005,1,0,0,0,1813, +14015,1,0,0,0,1815,14022,1,0,0,0,1817,14026,1,0,0,0,1819,14034,1,0,0,0,1821, +14039,1,0,0,0,1823,14046,1,0,0,0,1825,14054,1,0,0,0,1827,14062,1,0,0,0,1829, +14068,1,0,0,0,1831,14081,1,0,0,0,1833,14097,1,0,0,0,1835,14110,1,0,0,0,1837, +14122,1,0,0,0,1839,14134,1,0,0,0,1841,14147,1,0,0,0,1843,14158,1,0,0,0,1845, +14167,1,0,0,0,1847,14180,1,0,0,0,1849,14192,1,0,0,0,1851,14206,1,0,0,0,1853, +14220,1,0,0,0,1855,14241,1,0,0,0,1857,14249,1,0,0,0,1859,14258,1,0,0,0,1861, +14267,1,0,0,0,1863,14275,1,0,0,0,1865,14284,1,0,0,0,1867,14291,1,0,0,0,1869, +14298,1,0,0,0,1871,14313,1,0,0,0,1873,14332,1,0,0,0,1875,14344,1,0,0,0,1877, +14363,1,0,0,0,1879,14375,1,0,0,0,1881,14382,1,0,0,0,1883,14396,1,0,0,0,1885, +14405,1,0,0,0,1887,14420,1,0,0,0,1889,14426,1,0,0,0,1891,14435,1,0,0,0,1893, +14444,1,0,0,0,1895,14451,1,0,0,0,1897,14459,1,0,0,0,1899,14469,1,0,0,0,1901, +14480,1,0,0,0,1903,14489,1,0,0,0,1905,14497,1,0,0,0,1907,14504,1,0,0,0,1909, +14510,1,0,0,0,1911,14521,1,0,0,0,1913,14528,1,0,0,0,1915,14536,1,0,0,0,1917, +14545,1,0,0,0,1919,14556,1,0,0,0,1921,14566,1,0,0,0,1923,14573,1,0,0,0,1925, +14581,1,0,0,0,1927,14590,1,0,0,0,1929,14599,1,0,0,0,1931,14622,1,0,0,0,1933, +14650,1,0,0,0,1935,14673,1,0,0,0,1937,14692,1,0,0,0,1939,14698,1,0,0,0,1941, +14707,1,0,0,0,1943,14725,1,0,0,0,1945,14735,1,0,0,0,1947,14750,1,0,0,0,1949, +14759,1,0,0,0,1951,14764,1,0,0,0,1953,14777,1,0,0,0,1955,14796,1,0,0,0,1957, +14803,1,0,0,0,1959,14807,1,0,0,0,1961,14814,1,0,0,0,1963,14825,1,0,0,0,1965, +14833,1,0,0,0,1967,14839,1,0,0,0,1969,14854,1,0,0,0,1971,14861,1,0,0,0,1973, +14867,1,0,0,0,1975,14877,1,0,0,0,1977,14888,1,0,0,0,1979,14897,1,0,0,0,1981, +14902,1,0,0,0,1983,14919,1,0,0,0,1985,14928,1,0,0,0,1987,14937,1,0,0,0,1989, +14943,1,0,0,0,1991,14948,1,0,0,0,1993,14958,1,0,0,0,1995,14962,1,0,0,0,1997, +14968,1,0,0,0,1999,14977,1,0,0,0,2001,15000,1,0,0,0,2003,15007,1,0,0,0,2005, +15015,1,0,0,0,2007,15024,1,0,0,0,2009,15028,1,0,0,0,2011,15037,1,0,0,0,2013, +15043,1,0,0,0,2015,15048,1,0,0,0,2017,15054,1,0,0,0,2019,15061,1,0,0,0,2021, +15065,1,0,0,0,2023,15072,1,0,0,0,2025,15097,1,0,0,0,2027,15119,1,0,0,0,2029, +15135,1,0,0,0,2031,15157,1,0,0,0,2033,15180,1,0,0,0,2035,15188,1,0,0,0,2037, +15194,1,0,0,0,2039,15198,1,0,0,0,2041,15206,1,0,0,0,2043,15215,1,0,0,0,2045, +15224,1,0,0,0,2047,15229,1,0,0,0,2049,15235,1,0,0,0,2051,15248,1,0,0,0,2053, +15265,1,0,0,0,2055,15280,1,0,0,0,2057,15293,1,0,0,0,2059,15306,1,0,0,0,2061, +15323,1,0,0,0,2063,15344,1,0,0,0,2065,15359,1,0,0,0,2067,15376,1,0,0,0,2069, +15385,1,0,0,0,2071,15398,1,0,0,0,2073,15414,1,0,0,0,2075,15432,1,0,0,0,2077, +15444,1,0,0,0,2079,15461,1,0,0,0,2081,15467,1,0,0,0,2083,15476,1,0,0,0,2085, +15489,1,0,0,0,2087,15510,1,0,0,0,2089,15520,1,0,0,0,2091,15540,1,0,0,0,2093, +15563,1,0,0,0,2095,15572,1,0,0,0,2097,15580,1,0,0,0,2099,15598,1,0,0,0,2101, +15612,1,0,0,0,2103,15622,1,0,0,0,2105,15632,1,0,0,0,2107,15649,1,0,0,0,2109, +15664,1,0,0,0,2111,15673,1,0,0,0,2113,15686,1,0,0,0,2115,15694,1,0,0,0,2117, +15704,1,0,0,0,2119,15723,1,0,0,0,2121,15752,1,0,0,0,2123,15783,1,0,0,0,2125, +15797,1,0,0,0,2127,15807,1,0,0,0,2129,15815,1,0,0,0,2131,15823,1,0,0,0,2133, +15836,1,0,0,0,2135,15857,1,0,0,0,2137,15877,1,0,0,0,2139,15891,1,0,0,0,2141, +15906,1,0,0,0,2143,15921,1,0,0,0,2145,15932,1,0,0,0,2147,15958,1,0,0,0,2149, +15983,1,0,0,0,2151,16008,1,0,0,0,2153,16032,1,0,0,0,2155,16056,1,0,0,0,2157, +16063,1,0,0,0,2159,16089,1,0,0,0,2161,16104,1,0,0,0,2163,16118,1,0,0,0,2165, +16126,1,0,0,0,2167,16151,1,0,0,0,2169,16166,1,0,0,0,2171,16174,1,0,0,0,2173, +16185,1,0,0,0,2175,16199,1,0,0,0,2177,16222,1,0,0,0,2179,16249,1,0,0,0,2181, +16265,1,0,0,0,2183,16283,1,0,0,0,2185,16300,1,0,0,0,2187,16324,1,0,0,0,2189, +16341,1,0,0,0,2191,16365,1,0,0,0,2193,16375,1,0,0,0,2195,16391,1,0,0,0,2197, +16400,1,0,0,0,2199,16408,1,0,0,0,2201,16426,1,0,0,0,2203,16439,1,0,0,0,2205, +16447,1,0,0,0,2207,16475,1,0,0,0,2209,16506,1,0,0,0,2211,16522,1,0,0,0,2213, +16534,1,0,0,0,2215,16547,1,0,0,0,2217,16556,1,0,0,0,2219,16568,1,0,0,0,2221, +16580,1,0,0,0,2223,16600,1,0,0,0,2225,16607,1,0,0,0,2227,16615,1,0,0,0,2229, +16623,1,0,0,0,2231,16629,1,0,0,0,2233,16639,1,0,0,0,2235,16649,1,0,0,0,2237, +16659,1,0,0,0,2239,16670,1,0,0,0,2241,16679,1,0,0,0,2243,16690,1,0,0,0,2245, +16701,1,0,0,0,2247,16719,1,0,0,0,2249,16733,1,0,0,0,2251,16746,1,0,0,0,2253, +16757,1,0,0,0,2255,16776,1,0,0,0,2257,16802,1,0,0,0,2259,16814,1,0,0,0,2261, +16829,1,0,0,0,2263,16834,1,0,0,0,2265,16843,1,0,0,0,2267,16859,1,0,0,0,2269, +16875,1,0,0,0,2271,16878,1,0,0,0,2273,16888,1,0,0,0,2275,16903,1,0,0,0,2277, +16911,1,0,0,0,2279,16928,1,0,0,0,2281,16950,1,0,0,0,2283,16973,1,0,0,0,2285, +16984,1,0,0,0,2287,17002,1,0,0,0,2289,17019,1,0,0,0,2291,17031,1,0,0,0,2293, +17042,1,0,0,0,2295,17060,1,0,0,0,2297,17076,1,0,0,0,2299,17103,1,0,0,0,2301, +17115,1,0,0,0,2303,17133,1,0,0,0,2305,17151,1,0,0,0,2307,17174,1,0,0,0,2309, +17184,1,0,0,0,2311,17193,1,0,0,0,2313,17209,1,0,0,0,2315,17220,1,0,0,0,2317, +17235,1,0,0,0,2319,17248,1,0,0,0,2321,17261,1,0,0,0,2323,17274,1,0,0,0,2325, +17296,1,0,0,0,2327,17314,1,0,0,0,2329,17326,1,0,0,0,2331,17350,1,0,0,0,2333, +17365,1,0,0,0,2335,17376,1,0,0,0,2337,17383,1,0,0,0,2339,17392,1,0,0,0,2341, +17401,1,0,0,0,2343,17413,1,0,0,0,2345,17429,1,0,0,0,2347,17439,1,0,0,0,2349, +17450,1,0,0,0,2351,17460,1,0,0,0,2353,17467,1,0,0,0,2355,17488,1,0,0,0,2357, +17506,1,0,0,0,2359,17514,1,0,0,0,2361,17528,1,0,0,0,2363,17538,1,0,0,0,2365, +17550,1,0,0,0,2367,17567,1,0,0,0,2369,17582,1,0,0,0,2371,17590,1,0,0,0,2373, +17597,1,0,0,0,2375,17616,1,0,0,0,2377,17628,1,0,0,0,2379,17651,1,0,0,0,2381, +17672,1,0,0,0,2383,17687,1,0,0,0,2385,17696,1,0,0,0,2387,17716,1,0,0,0,2389, +17731,1,0,0,0,2391,17751,1,0,0,0,2393,17760,1,0,0,0,2395,17782,1,0,0,0,2397, +17796,1,0,0,0,2399,17804,1,0,0,0,2401,17817,1,0,0,0,2403,17824,1,0,0,0,2405, +17828,1,0,0,0,2407,17854,1,0,0,0,2409,17864,1,0,0,0,2411,17876,1,0,0,0,2413, +17900,1,0,0,0,2415,17929,1,0,0,0,2417,17941,1,0,0,0,2419,17966,1,0,0,0,2421, +17979,1,0,0,0,2423,17989,1,0,0,0,2425,18015,1,0,0,0,2427,18026,1,0,0,0,2429, +18051,1,0,0,0,2431,18076,1,0,0,0,2433,18096,1,0,0,0,2435,18103,1,0,0,0,2437, +18126,1,0,0,0,2439,18145,1,0,0,0,2441,18175,1,0,0,0,2443,18195,1,0,0,0,2445, +18216,1,0,0,0,2447,18227,1,0,0,0,2449,18237,1,0,0,0,2451,18244,1,0,0,0,2453, +18249,1,0,0,0,2455,18255,1,0,0,0,2457,18262,1,0,0,0,2459,18270,1,0,0,0,2461, +18285,1,0,0,0,2463,18301,1,0,0,0,2465,18317,1,0,0,0,2467,18327,1,0,0,0,2469, +18332,1,0,0,0,2471,18343,1,0,0,0,2473,18350,1,0,0,0,2475,18357,1,0,0,0,2477, +18363,1,0,0,0,2479,18375,1,0,0,0,2481,18386,1,0,0,0,2483,18394,1,0,0,0,2485, +18398,1,0,0,0,2487,18405,1,0,0,0,2489,18408,1,0,0,0,2491,18417,1,0,0,0,2493, +18421,1,0,0,0,2495,18426,1,0,0,0,2497,18430,1,0,0,0,2499,18444,1,0,0,0,2501, +18448,1,0,0,0,2503,18453,1,0,0,0,2505,18458,1,0,0,0,2507,18462,1,0,0,0,2509, +18469,1,0,0,0,2511,18479,1,0,0,0,2513,18484,1,0,0,0,2515,18487,1,0,0,0,2517, +18494,1,0,0,0,2519,18511,1,0,0,0,2521,18529,1,0,0,0,2523,18536,1,0,0,0,2525, +18541,1,0,0,0,2527,18552,1,0,0,0,2529,18561,1,0,0,0,2531,18574,1,0,0,0,2533, +18582,1,0,0,0,2535,18591,1,0,0,0,2537,18617,1,0,0,0,2539,18632,1,0,0,0,2541, +18639,1,0,0,0,2543,18650,1,0,0,0,2545,18660,1,0,0,0,2547,18671,1,0,0,0,2549, +18685,1,0,0,0,2551,18705,1,0,0,0,2553,18720,1,0,0,0,2555,18728,1,0,0,0,2557, +18732,1,0,0,0,2559,18744,1,0,0,0,2561,18758,1,0,0,0,2563,18767,1,0,0,0,2565, +18784,1,0,0,0,2567,18800,1,0,0,0,2569,18814,1,0,0,0,2571,18829,1,0,0,0,2573, +18848,1,0,0,0,2575,18857,1,0,0,0,2577,18877,1,0,0,0,2579,18895,1,0,0,0,2581, +18921,1,0,0,0,2583,18942,1,0,0,0,2585,18957,1,0,0,0,2587,18971,1,0,0,0,2589, +18982,1,0,0,0,2591,18997,1,0,0,0,2593,19012,1,0,0,0,2595,19027,1,0,0,0,2597, +19042,1,0,0,0,2599,19050,1,0,0,0,2601,19069,1,0,0,0,2603,19075,1,0,0,0,2605, +19086,1,0,0,0,2607,19096,1,0,0,0,2609,19109,1,0,0,0,2611,19112,1,0,0,0,2613, +19126,1,0,0,0,2615,19134,1,0,0,0,2617,19140,1,0,0,0,2619,19159,1,0,0,0,2621, +19179,1,0,0,0,2623,19185,1,0,0,0,2625,19198,1,0,0,0,2627,19206,1,0,0,0,2629, +19219,1,0,0,0,2631,19231,1,0,0,0,2633,19235,1,0,0,0,2635,19251,1,0,0,0,2637, +19260,1,0,0,0,2639,19269,1,0,0,0,2641,19274,1,0,0,0,2643,19283,1,0,0,0,2645, +19294,1,0,0,0,2647,19300,1,0,0,0,2649,19310,1,0,0,0,2651,19314,1,0,0,0,2653, +19316,1,0,0,0,2655,19324,1,0,0,0,2657,19333,1,0,0,0,2659,19349,1,0,0,0,2661, +19364,1,0,0,0,2663,19373,1,0,0,0,2665,19387,1,0,0,0,2667,19398,1,0,0,0,2669, +19404,1,0,0,0,2671,19411,1,0,0,0,2673,19429,1,0,0,0,2675,19448,1,0,0,0,2677, +19455,1,0,0,0,2679,19463,1,0,0,0,2681,19476,1,0,0,0,2683,19486,1,0,0,0,2685, +19494,1,0,0,0,2687,19518,1,0,0,0,2689,19533,1,0,0,0,2691,19548,1,0,0,0,2693, +19558,1,0,0,0,2695,19574,1,0,0,0,2697,19585,1,0,0,0,2699,19599,1,0,0,0,2701, +19607,1,0,0,0,2703,19627,1,0,0,0,2705,19646,1,0,0,0,2707,19665,1,0,0,0,2709, +19674,1,0,0,0,2711,19693,1,0,0,0,2713,19713,1,0,0,0,2715,19736,1,0,0,0,2717, +19761,1,0,0,0,2719,19766,1,0,0,0,2721,19772,1,0,0,0,2723,19777,1,0,0,0,2725, +19789,1,0,0,0,2727,19795,1,0,0,0,2729,19803,1,0,0,0,2731,19816,1,0,0,0,2733, +19827,1,0,0,0,2735,19835,1,0,0,0,2737,19847,1,0,0,0,2739,19860,1,0,0,0,2741, +19868,1,0,0,0,2743,19879,1,0,0,0,2745,19887,1,0,0,0,2747,19900,1,0,0,0,2749, +19914,1,0,0,0,2751,19930,1,0,0,0,2753,19938,1,0,0,0,2755,19952,1,0,0,0,2757, +19968,1,0,0,0,2759,19983,1,0,0,0,2761,19995,1,0,0,0,2763,20018,1,0,0,0,2765, +20039,1,0,0,0,2767,20051,1,0,0,0,2769,20058,1,0,0,0,2771,20068,1,0,0,0,2773, +20079,1,0,0,0,2775,20087,1,0,0,0,2777,20091,1,0,0,0,2779,20097,1,0,0,0,2781, +20106,1,0,0,0,2783,20112,1,0,0,0,2785,20122,1,0,0,0,2787,20127,1,0,0,0,2789, +20134,1,0,0,0,2791,20140,1,0,0,0,2793,20148,1,0,0,0,2795,20163,1,0,0,0,2797, +20178,1,0,0,0,2799,20183,1,0,0,0,2801,20200,1,0,0,0,2803,20212,1,0,0,0,2805, +20226,1,0,0,0,2807,20242,1,0,0,0,2809,20254,1,0,0,0,2811,20275,1,0,0,0,2813, +20290,1,0,0,0,2815,20300,1,0,0,0,2817,20305,1,0,0,0,2819,20311,1,0,0,0,2821, +20318,1,0,0,0,2823,20327,1,0,0,0,2825,20335,1,0,0,0,2827,20344,1,0,0,0,2829, +20352,1,0,0,0,2831,20360,1,0,0,0,2833,20369,1,0,0,0,2835,20379,1,0,0,0,2837, +20388,1,0,0,0,2839,20405,1,0,0,0,2841,20434,1,0,0,0,2843,20448,1,0,0,0,2845, +20454,1,0,0,0,2847,20474,1,0,0,0,2849,20488,1,0,0,0,2851,20509,1,0,0,0,2853, +20519,1,0,0,0,2855,20526,1,0,0,0,2857,20535,1,0,0,0,2859,20548,1,0,0,0,2861, +20556,1,0,0,0,2863,20563,1,0,0,0,2865,20572,1,0,0,0,2867,20581,1,0,0,0,2869, +20591,1,0,0,0,2871,20601,1,0,0,0,2873,20621,1,0,0,0,2875,20640,1,0,0,0,2877, +20648,1,0,0,0,2879,20656,1,0,0,0,2881,20669,1,0,0,0,2883,20680,1,0,0,0,2885, +20688,1,0,0,0,2887,20697,1,0,0,0,2889,20710,1,0,0,0,2891,20719,1,0,0,0,2893, +20726,1,0,0,0,2895,20735,1,0,0,0,2897,20740,1,0,0,0,2899,20748,1,0,0,0,2901, +20764,1,0,0,0,2903,20773,1,0,0,0,2905,20779,1,0,0,0,2907,20787,1,0,0,0,2909, +20799,1,0,0,0,2911,20810,1,0,0,0,2913,20820,1,0,0,0,2915,20831,1,0,0,0,2917, +20842,1,0,0,0,2919,20852,1,0,0,0,2921,20860,1,0,0,0,2923,20868,1,0,0,0,2925, +20876,1,0,0,0,2927,20884,1,0,0,0,2929,20894,1,0,0,0,2931,20903,1,0,0,0,2933, +20913,1,0,0,0,2935,20924,1,0,0,0,2937,20933,1,0,0,0,2939,20939,1,0,0,0,2941, +20947,1,0,0,0,2943,20954,1,0,0,0,2945,20964,1,0,0,0,2947,20970,1,0,0,0,2949, +20980,1,0,0,0,2951,20990,1,0,0,0,2953,21009,1,0,0,0,2955,21020,1,0,0,0,2957, +21035,1,0,0,0,2959,21043,1,0,0,0,2961,21052,1,0,0,0,2963,21064,1,0,0,0,2965, +21070,1,0,0,0,2967,21081,1,0,0,0,2969,21087,1,0,0,0,2971,21098,1,0,0,0,2973, +21106,1,0,0,0,2975,21113,1,0,0,0,2977,21119,1,0,0,0,2979,21130,1,0,0,0,2981, +21136,1,0,0,0,2983,21149,1,0,0,0,2985,21156,1,0,0,0,2987,21162,1,0,0,0,2989, +21168,1,0,0,0,2991,21176,1,0,0,0,2993,21180,1,0,0,0,2995,21189,1,0,0,0,2997, +21199,1,0,0,0,2999,21203,1,0,0,0,3001,21215,1,0,0,0,3003,21222,1,0,0,0,3005, +21227,1,0,0,0,3007,21232,1,0,0,0,3009,21238,1,0,0,0,3011,21247,1,0,0,0,3013, +21253,1,0,0,0,3015,21258,1,0,0,0,3017,21268,1,0,0,0,3019,21276,1,0,0,0,3021, +21283,1,0,0,0,3023,21291,1,0,0,0,3025,21309,1,0,0,0,3027,21321,1,0,0,0,3029, +21329,1,0,0,0,3031,21338,1,0,0,0,3033,21349,1,0,0,0,3035,21357,1,0,0,0,3037, +21367,1,0,0,0,3039,21376,1,0,0,0,3041,21381,1,0,0,0,3043,21389,1,0,0,0,3045, +21400,1,0,0,0,3047,21419,1,0,0,0,3049,21430,1,0,0,0,3051,21440,1,0,0,0,3053, +21451,1,0,0,0,3055,21463,1,0,0,0,3057,21467,1,0,0,0,3059,21475,1,0,0,0,3061, +21484,1,0,0,0,3063,21497,1,0,0,0,3065,21510,1,0,0,0,3067,21522,1,0,0,0,3069, +21537,1,0,0,0,3071,21551,1,0,0,0,3073,21560,1,0,0,0,3075,21570,1,0,0,0,3077, +21580,1,0,0,0,3079,21591,1,0,0,0,3081,21606,1,0,0,0,3083,21614,1,0,0,0,3085, +21625,1,0,0,0,3087,21634,1,0,0,0,3089,21643,1,0,0,0,3091,21652,1,0,0,0,3093, +21660,1,0,0,0,3095,21667,1,0,0,0,3097,21673,1,0,0,0,3099,21684,1,0,0,0,3101, +21694,1,0,0,0,3103,21703,1,0,0,0,3105,21708,1,0,0,0,3107,21718,1,0,0,0,3109, +21725,1,0,0,0,3111,21739,1,0,0,0,3113,21746,1,0,0,0,3115,21753,1,0,0,0,3117, +21760,1,0,0,0,3119,21767,1,0,0,0,3121,21775,1,0,0,0,3123,21787,1,0,0,0,3125, +21796,1,0,0,0,3127,21806,1,0,0,0,3129,21812,1,0,0,0,3131,21819,1,0,0,0,3133, +21827,1,0,0,0,3135,21836,1,0,0,0,3137,21845,1,0,0,0,3139,21853,1,0,0,0,3141, +21861,1,0,0,0,3143,21882,1,0,0,0,3145,21890,1,0,0,0,3147,21912,1,0,0,0,3149, +21923,1,0,0,0,3151,21943,1,0,0,0,3153,21952,1,0,0,0,3155,21965,1,0,0,0,3157, +21972,1,0,0,0,3159,21982,1,0,0,0,3161,21989,1,0,0,0,3163,21999,1,0,0,0,3165, +22019,1,0,0,0,3167,22029,1,0,0,0,3169,22036,1,0,0,0,3171,22042,1,0,0,0,3173, +22050,1,0,0,0,3175,22057,1,0,0,0,3177,22074,1,0,0,0,3179,22082,1,0,0,0,3181, +22088,1,0,0,0,3183,22093,1,0,0,0,3185,22101,1,0,0,0,3187,22107,1,0,0,0,3189, +22116,1,0,0,0,3191,22124,1,0,0,0,3193,22131,1,0,0,0,3195,22147,1,0,0,0,3197, +22167,1,0,0,0,3199,22173,1,0,0,0,3201,22185,1,0,0,0,3203,22198,1,0,0,0,3205, +22209,1,0,0,0,3207,22216,1,0,0,0,3209,22220,1,0,0,0,3211,22225,1,0,0,0,3213, +22230,1,0,0,0,3215,22236,1,0,0,0,3217,22241,1,0,0,0,3219,22247,1,0,0,0,3221, +22255,1,0,0,0,3223,22260,1,0,0,0,3225,22267,1,0,0,0,3227,22285,1,0,0,0,3229, +22295,1,0,0,0,3231,22300,1,0,0,0,3233,22304,1,0,0,0,3235,22315,1,0,0,0,3237, +22321,1,0,0,0,3239,22336,1,0,0,0,3241,22341,1,0,0,0,3243,22351,1,0,0,0,3245, +22363,1,0,0,0,3247,22370,1,0,0,0,3249,22384,1,0,0,0,3251,22388,1,0,0,0,3253, +22394,1,0,0,0,3255,22400,1,0,0,0,3257,22407,1,0,0,0,3259,22418,1,0,0,0,3261, +22431,1,0,0,0,3263,22444,1,0,0,0,3265,22452,1,0,0,0,3267,22459,1,0,0,0,3269, +22466,1,0,0,0,3271,22474,1,0,0,0,3273,22481,1,0,0,0,3275,22496,1,0,0,0,3277, +22507,1,0,0,0,3279,22516,1,0,0,0,3281,22521,1,0,0,0,3283,22531,1,0,0,0,3285, +22540,1,0,0,0,3287,22548,1,0,0,0,3289,22560,1,0,0,0,3291,22567,1,0,0,0,3293, +22572,1,0,0,0,3295,22588,1,0,0,0,3297,22597,1,0,0,0,3299,22611,1,0,0,0,3301, +22621,1,0,0,0,3303,22630,1,0,0,0,3305,22643,1,0,0,0,3307,22654,1,0,0,0,3309, +22658,1,0,0,0,3311,22664,1,0,0,0,3313,22680,1,0,0,0,3315,22693,1,0,0,0,3317, +22711,1,0,0,0,3319,22718,1,0,0,0,3321,22730,1,0,0,0,3323,22751,1,0,0,0,3325, +22759,1,0,0,0,3327,22768,1,0,0,0,3329,22791,1,0,0,0,3331,22799,1,0,0,0,3333, +22817,1,0,0,0,3335,22833,1,0,0,0,3337,22847,1,0,0,0,3339,22851,1,0,0,0,3341, +22856,1,0,0,0,3343,22865,1,0,0,0,3345,22877,1,0,0,0,3347,22884,1,0,0,0,3349, +22890,1,0,0,0,3351,22901,1,0,0,0,3353,22913,1,0,0,0,3355,22920,1,0,0,0,3357, +22926,1,0,0,0,3359,22934,1,0,0,0,3361,22944,1,0,0,0,3363,22949,1,0,0,0,3365, +22956,1,0,0,0,3367,22965,1,0,0,0,3369,22974,1,0,0,0,3371,22978,1,0,0,0,3373, +22983,1,0,0,0,3375,23000,1,0,0,0,3377,23016,1,0,0,0,3379,23021,1,0,0,0,3381, +23030,1,0,0,0,3383,23045,1,0,0,0,3385,23052,1,0,0,0,3387,23059,1,0,0,0,3389, +23070,1,0,0,0,3391,23075,1,0,0,0,3393,23079,1,0,0,0,3395,23084,1,0,0,0,3397, +23090,1,0,0,0,3399,23109,1,0,0,0,3401,23114,1,0,0,0,3403,23136,1,0,0,0,3405, +23158,1,0,0,0,3407,23168,1,0,0,0,3409,23177,1,0,0,0,3411,23186,1,0,0,0,3413, +23191,1,0,0,0,3415,23196,1,0,0,0,3417,23204,1,0,0,0,3419,23226,1,0,0,0,3421, +23251,1,0,0,0,3423,23258,1,0,0,0,3425,23264,1,0,0,0,3427,23278,1,0,0,0,3429, +23285,1,0,0,0,3431,23291,1,0,0,0,3433,23303,1,0,0,0,3435,23311,1,0,0,0,3437, +23320,1,0,0,0,3439,23327,1,0,0,0,3441,23337,1,0,0,0,3443,23339,1,0,0,0,3445, +23349,1,0,0,0,3447,23359,1,0,0,0,3449,23383,1,0,0,0,3451,23388,1,0,0,0,3453, +23394,1,0,0,0,3455,23405,1,0,0,0,3457,23414,1,0,0,0,3459,23428,1,0,0,0,3461, +23451,1,0,0,0,3463,23460,1,0,0,0,3465,23468,1,0,0,0,3467,23473,1,0,0,0,3469, +23493,1,0,0,0,3471,23499,1,0,0,0,3473,23507,1,0,0,0,3475,23515,1,0,0,0,3477, +23528,1,0,0,0,3479,23546,1,0,0,0,3481,23557,1,0,0,0,3483,23567,1,0,0,0,3485, +23573,1,0,0,0,3487,23580,1,0,0,0,3489,23591,1,0,0,0,3491,23611,1,0,0,0,3493, +23626,1,0,0,0,3495,23639,1,0,0,0,3497,23653,1,0,0,0,3499,23664,1,0,0,0,3501, +23678,1,0,0,0,3503,23698,1,0,0,0,3505,23717,1,0,0,0,3507,23737,1,0,0,0,3509, +23754,1,0,0,0,3511,23774,1,0,0,0,3513,23789,1,0,0,0,3515,23800,1,0,0,0,3517, +23812,1,0,0,0,3519,23817,1,0,0,0,3521,23825,1,0,0,0,3523,23831,1,0,0,0,3525, +23839,1,0,0,0,3527,23846,1,0,0,0,3529,23853,1,0,0,0,3531,23860,1,0,0,0,3533, +23875,1,0,0,0,3535,23888,1,0,0,0,3537,23894,1,0,0,0,3539,23904,1,0,0,0,3541, +23916,1,0,0,0,3543,23933,1,0,0,0,3545,23947,1,0,0,0,3547,23960,1,0,0,0,3549, +23971,1,0,0,0,3551,23988,1,0,0,0,3553,23998,1,0,0,0,3555,24005,1,0,0,0,3557, +24019,1,0,0,0,3559,24027,1,0,0,0,3561,24035,1,0,0,0,3563,24043,1,0,0,0,3565, +24051,1,0,0,0,3567,24059,1,0,0,0,3569,24070,1,0,0,0,3571,24078,1,0,0,0,3573, +24086,1,0,0,0,3575,24099,1,0,0,0,3577,24107,1,0,0,0,3579,24124,1,0,0,0,3581, +24135,1,0,0,0,3583,24142,1,0,0,0,3585,24154,1,0,0,0,3587,24159,1,0,0,0,3589, +24167,1,0,0,0,3591,24171,1,0,0,0,3593,24178,1,0,0,0,3595,24188,1,0,0,0,3597, +24195,1,0,0,0,3599,24205,1,0,0,0,3601,24218,1,0,0,0,3603,24238,1,0,0,0,3605, +24258,1,0,0,0,3607,24270,1,0,0,0,3609,24278,1,0,0,0,3611,24285,1,0,0,0,3613, +24298,1,0,0,0,3615,24304,1,0,0,0,3617,24318,1,0,0,0,3619,24336,1,0,0,0,3621, +24354,1,0,0,0,3623,24370,1,0,0,0,3625,24387,1,0,0,0,3627,24404,1,0,0,0,3629, +24424,1,0,0,0,3631,24445,1,0,0,0,3633,24466,1,0,0,0,3635,24486,1,0,0,0,3637, +24499,1,0,0,0,3639,24515,1,0,0,0,3641,24530,1,0,0,0,3643,24546,1,0,0,0,3645, +24560,1,0,0,0,3647,24574,1,0,0,0,3649,24589,1,0,0,0,3651,24608,1,0,0,0,3653, +24627,1,0,0,0,3655,24642,1,0,0,0,3657,24656,1,0,0,0,3659,24665,1,0,0,0,3661, +24673,1,0,0,0,3663,24679,1,0,0,0,3665,24698,1,0,0,0,3667,24710,1,0,0,0,3669, +24724,1,0,0,0,3671,24734,1,0,0,0,3673,24741,1,0,0,0,3675,24756,1,0,0,0,3677, +24771,1,0,0,0,3679,24787,1,0,0,0,3681,24798,1,0,0,0,3683,24813,1,0,0,0,3685, +24827,1,0,0,0,3687,24839,1,0,0,0,3689,24864,1,0,0,0,3691,24884,1,0,0,0,3693, +24895,1,0,0,0,3695,24907,1,0,0,0,3697,24918,1,0,0,0,3699,24930,1,0,0,0,3701, +24951,1,0,0,0,3703,24963,1,0,0,0,3705,24978,1,0,0,0,3707,24994,1,0,0,0,3709, +25008,1,0,0,0,3711,25026,1,0,0,0,3713,25037,1,0,0,0,3715,25054,1,0,0,0,3717, +25072,1,0,0,0,3719,25086,1,0,0,0,3721,25101,1,0,0,0,3723,25117,1,0,0,0,3725, +25128,1,0,0,0,3727,25140,1,0,0,0,3729,25156,1,0,0,0,3731,25181,1,0,0,0,3733, +25189,1,0,0,0,3735,25204,1,0,0,0,3737,25220,1,0,0,0,3739,25232,1,0,0,0,3741, +25244,1,0,0,0,3743,25255,1,0,0,0,3745,25266,1,0,0,0,3747,25291,1,0,0,0,3749, +25321,1,0,0,0,3751,25346,1,0,0,0,3753,25374,1,0,0,0,3755,25396,1,0,0,0,3757, +25408,1,0,0,0,3759,25427,1,0,0,0,3761,25446,1,0,0,0,3763,25463,1,0,0,0,3765, +25483,1,0,0,0,3767,25501,1,0,0,0,3769,25513,1,0,0,0,3771,25524,1,0,0,0,3773, +25539,1,0,0,0,3775,25558,1,0,0,0,3777,25569,1,0,0,0,3779,25586,1,0,0,0,3781, +25603,1,0,0,0,3783,25614,1,0,0,0,3785,25625,1,0,0,0,3787,25641,1,0,0,0,3789, +25656,1,0,0,0,3791,25672,1,0,0,0,3793,25688,1,0,0,0,3795,25703,1,0,0,0,3797, +25716,1,0,0,0,3799,25732,1,0,0,0,3801,25746,1,0,0,0,3803,25757,1,0,0,0,3805, +25772,1,0,0,0,3807,25785,1,0,0,0,3809,25796,1,0,0,0,3811,25812,1,0,0,0,3813, +25824,1,0,0,0,3815,25835,1,0,0,0,3817,25847,1,0,0,0,3819,25865,1,0,0,0,3821, +25876,1,0,0,0,3823,25892,1,0,0,0,3825,25907,1,0,0,0,3827,25918,1,0,0,0,3829, +25930,1,0,0,0,3831,25943,1,0,0,0,3833,25961,1,0,0,0,3835,25978,1,0,0,0,3837, +25992,1,0,0,0,3839,26006,1,0,0,0,3841,26019,1,0,0,0,3843,26033,1,0,0,0,3845, +26048,1,0,0,0,3847,26060,1,0,0,0,3849,26071,1,0,0,0,3851,26094,1,0,0,0,3853, +26109,1,0,0,0,3855,26124,1,0,0,0,3857,26138,1,0,0,0,3859,26155,1,0,0,0,3861, +26170,1,0,0,0,3863,26189,1,0,0,0,3865,26211,1,0,0,0,3867,26231,1,0,0,0,3869, +26248,1,0,0,0,3871,26267,1,0,0,0,3873,26287,1,0,0,0,3875,26307,1,0,0,0,3877, +26328,1,0,0,0,3879,26345,1,0,0,0,3881,26360,1,0,0,0,3883,26376,1,0,0,0,3885, +26390,1,0,0,0,3887,26404,1,0,0,0,3889,26418,1,0,0,0,3891,26433,1,0,0,0,3893, +26448,1,0,0,0,3895,26455,1,0,0,0,3897,26468,1,0,0,0,3899,26479,1,0,0,0,3901, +26492,1,0,0,0,3903,26507,1,0,0,0,3905,26523,1,0,0,0,3907,26535,1,0,0,0,3909, +26550,1,0,0,0,3911,26561,1,0,0,0,3913,26581,1,0,0,0,3915,26601,1,0,0,0,3917, +26614,1,0,0,0,3919,26637,1,0,0,0,3921,26658,1,0,0,0,3923,26683,1,0,0,0,3925, +26705,1,0,0,0,3927,26729,1,0,0,0,3929,26752,1,0,0,0,3931,26773,1,0,0,0,3933, +26795,1,0,0,0,3935,26816,1,0,0,0,3937,26830,1,0,0,0,3939,26844,1,0,0,0,3941, +26861,1,0,0,0,3943,26877,1,0,0,0,3945,26892,1,0,0,0,3947,26910,1,0,0,0,3949, +26924,1,0,0,0,3951,26943,1,0,0,0,3953,26959,1,0,0,0,3955,26973,1,0,0,0,3957, +26987,1,0,0,0,3959,27000,1,0,0,0,3961,27013,1,0,0,0,3963,27032,1,0,0,0,3965, +27042,1,0,0,0,3967,27055,1,0,0,0,3969,27068,1,0,0,0,3971,27081,1,0,0,0,3973, +27096,1,0,0,0,3975,27107,1,0,0,0,3977,27117,1,0,0,0,3979,27133,1,0,0,0,3981, +27148,1,0,0,0,3983,27162,1,0,0,0,3985,27176,1,0,0,0,3987,27190,1,0,0,0,3989, +27202,1,0,0,0,3991,27215,1,0,0,0,3993,27228,1,0,0,0,3995,27240,1,0,0,0,3997, +27254,1,0,0,0,3999,27268,1,0,0,0,4001,27279,1,0,0,0,4003,27293,1,0,0,0,4005, +27311,1,0,0,0,4007,27323,1,0,0,0,4009,27336,1,0,0,0,4011,27352,1,0,0,0,4013, +27368,1,0,0,0,4015,27380,1,0,0,0,4017,27397,1,0,0,0,4019,27410,1,0,0,0,4021, +27423,1,0,0,0,4023,27436,1,0,0,0,4025,27450,1,0,0,0,4027,27461,1,0,0,0,4029, +27478,1,0,0,0,4031,27494,1,0,0,0,4033,27507,1,0,0,0,4035,27522,1,0,0,0,4037, +27538,1,0,0,0,4039,27554,1,0,0,0,4041,27566,1,0,0,0,4043,27580,1,0,0,0,4045, +27596,1,0,0,0,4047,27612,1,0,0,0,4049,27629,1,0,0,0,4051,27643,1,0,0,0,4053, +27657,1,0,0,0,4055,27671,1,0,0,0,4057,27687,1,0,0,0,4059,27701,1,0,0,0,4061, +27715,1,0,0,0,4063,27729,1,0,0,0,4065,27743,1,0,0,0,4067,27757,1,0,0,0,4069, +27771,1,0,0,0,4071,27786,1,0,0,0,4073,27800,1,0,0,0,4075,27815,1,0,0,0,4077, +27830,1,0,0,0,4079,27844,1,0,0,0,4081,27858,1,0,0,0,4083,27872,1,0,0,0,4085, +27886,1,0,0,0,4087,27900,1,0,0,0,4089,27914,1,0,0,0,4091,27928,1,0,0,0,4093, +27941,1,0,0,0,4095,27955,1,0,0,0,4097,27969,1,0,0,0,4099,27987,1,0,0,0,4101, +28001,1,0,0,0,4103,28017,1,0,0,0,4105,28032,1,0,0,0,4107,28044,1,0,0,0,4109, +28061,1,0,0,0,4111,28075,1,0,0,0,4113,28091,1,0,0,0,4115,28105,1,0,0,0,4117, +28117,1,0,0,0,4119,28130,1,0,0,0,4121,28143,1,0,0,0,4123,28161,1,0,0,0,4125, +28178,1,0,0,0,4127,28193,1,0,0,0,4129,28209,1,0,0,0,4131,28223,1,0,0,0,4133, +28239,1,0,0,0,4135,28255,1,0,0,0,4137,28270,1,0,0,0,4139,28284,1,0,0,0,4141, +28302,1,0,0,0,4143,28314,1,0,0,0,4145,28330,1,0,0,0,4147,28346,1,0,0,0,4149, +28363,1,0,0,0,4151,28365,1,0,0,0,4153,28384,1,0,0,0,4155,28398,1,0,0,0,4157, +28409,1,0,0,0,4159,28416,1,0,0,0,4161,28428,1,0,0,0,4163,28434,1,0,0,0,4165, +28440,1,0,0,0,4167,28444,1,0,0,0,4169,28449,1,0,0,0,4171,28453,1,0,0,0,4173, +28473,1,0,0,0,4175,28482,1,0,0,0,4177,28491,1,0,0,0,4179,28506,1,0,0,0,4181, +28516,1,0,0,0,4183,28527,1,0,0,0,4185,28538,1,0,0,0,4187,28543,1,0,0,0,4189, +28548,1,0,0,0,4191,28557,1,0,0,0,4193,28562,1,0,0,0,4195,28567,1,0,0,0,4197, +28571,1,0,0,0,4199,28577,1,0,0,0,4201,28584,1,0,0,0,4203,28592,1,0,0,0,4205, +28597,1,0,0,0,4207,28602,1,0,0,0,4209,28610,1,0,0,0,4211,28638,1,0,0,0,4213, +28648,1,0,0,0,4215,28675,1,0,0,0,4217,28699,1,0,0,0,4219,28705,1,0,0,0,4221, +28710,1,0,0,0,4223,28719,1,0,0,0,4225,28733,1,0,0,0,4227,28747,1,0,0,0,4229, +28763,1,0,0,0,4231,28779,1,0,0,0,4233,28795,1,0,0,0,4235,28805,1,0,0,0,4237, +28812,1,0,0,0,4239,28820,1,0,0,0,4241,28827,1,0,0,0,4243,28835,1,0,0,0,4245, +28844,1,0,0,0,4247,28861,1,0,0,0,4249,28877,1,0,0,0,4251,28885,1,0,0,0,4253, +28893,1,0,0,0,4255,28907,1,0,0,0,4257,28914,1,0,0,0,4259,28928,1,0,0,0,4261, +28937,1,0,0,0,4263,28946,1,0,0,0,4265,28956,1,0,0,0,4267,28965,1,0,0,0,4269, +28980,1,0,0,0,4271,28993,1,0,0,0,4273,29009,1,0,0,0,4275,29017,1,0,0,0,4277, +29028,1,0,0,0,4279,29031,1,0,0,0,4281,29045,1,0,0,0,4283,29051,1,0,0,0,4285, +29059,1,0,0,0,4287,29068,1,0,0,0,4289,29077,1,0,0,0,4291,29089,1,0,0,0,4293, +29099,1,0,0,0,4295,29110,1,0,0,0,4297,29133,1,0,0,0,4299,29146,1,0,0,0,4301, +29157,1,0,0,0,4303,29167,1,0,0,0,4305,29179,1,0,0,0,4307,29185,1,0,0,0,4309, +29194,1,0,0,0,4311,29202,1,0,0,0,4313,29207,1,0,0,0,4315,29216,1,0,0,0,4317, +29222,1,0,0,0,4319,29230,1,0,0,0,4321,29236,1,0,0,0,4323,29243,1,0,0,0,4325, +29246,1,0,0,0,4327,29252,1,0,0,0,4329,29257,1,0,0,0,4331,29267,1,0,0,0,4333, +29271,1,0,0,0,4335,29275,1,0,0,0,4337,29280,1,0,0,0,4339,29284,1,0,0,0,4341, +29288,1,0,0,0,4343,29299,1,0,0,0,4345,29309,1,0,0,0,4347,29317,1,0,0,0,4349, +29331,1,0,0,0,4351,29337,1,0,0,0,4353,29342,1,0,0,0,4355,29349,1,0,0,0,4357, +29357,1,0,0,0,4359,29363,1,0,0,0,4361,29373,1,0,0,0,4363,29380,1,0,0,0,4365, +29387,1,0,0,0,4367,29397,1,0,0,0,4369,29404,1,0,0,0,4371,29411,1,0,0,0,4373, +29421,1,0,0,0,4375,29449,1,0,0,0,4377,29479,1,0,0,0,4379,29497,1,0,0,0,4381, +29504,1,0,0,0,4383,29513,1,0,0,0,4385,29521,1,0,0,0,4387,29528,1,0,0,0,4389, +29540,1,0,0,0,4391,29550,1,0,0,0,4393,29564,1,0,0,0,4395,29577,1,0,0,0,4397, +29586,1,0,0,0,4399,29598,1,0,0,0,4401,29604,1,0,0,0,4403,29613,1,0,0,0,4405, +29620,1,0,0,0,4407,29630,1,0,0,0,4409,29638,1,0,0,0,4411,29645,1,0,0,0,4413, +29655,1,0,0,0,4415,29667,1,0,0,0,4417,29681,1,0,0,0,4419,29689,1,0,0,0,4421, +29695,1,0,0,0,4423,29702,1,0,0,0,4425,29709,1,0,0,0,4427,29716,1,0,0,0,4429, +29722,1,0,0,0,4431,29731,1,0,0,0,4433,29742,1,0,0,0,4435,29751,1,0,0,0,4437, +29772,1,0,0,0,4439,29798,1,0,0,0,4441,29807,1,0,0,0,4443,29829,1,0,0,0,4445, +29851,1,0,0,0,4447,29871,1,0,0,0,4449,29881,1,0,0,0,4451,29888,1,0,0,0,4453, +29906,1,0,0,0,4455,29927,1,0,0,0,4457,29937,1,0,0,0,4459,29950,1,0,0,0,4461, +29958,1,0,0,0,4463,29968,1,0,0,0,4465,29984,1,0,0,0,4467,29990,1,0,0,0,4469, +30007,1,0,0,0,4471,30012,1,0,0,0,4473,30021,1,0,0,0,4475,30041,1,0,0,0,4477, +30059,1,0,0,0,4479,30063,1,0,0,0,4481,30086,1,0,0,0,4483,30105,1,0,0,0,4485, +30121,1,0,0,0,4487,30136,1,0,0,0,4489,30142,1,0,0,0,4491,30150,1,0,0,0,4493, +30158,1,0,0,0,4495,30164,1,0,0,0,4497,30169,1,0,0,0,4499,30172,1,0,0,0,4501, +30175,1,0,0,0,4503,30184,1,0,0,0,4505,30204,1,0,0,0,4507,30215,1,0,0,0,4509, +30230,1,0,0,0,4511,30237,1,0,0,0,4513,30243,1,0,0,0,4515,30252,1,0,0,0,4517, +30260,1,0,0,0,4519,30269,1,0,0,0,4521,30278,1,0,0,0,4523,30285,1,0,0,0,4525, +30293,1,0,0,0,4527,30301,1,0,0,0,4529,30309,1,0,0,0,4531,30316,1,0,0,0,4533, +30325,1,0,0,0,4535,30333,1,0,0,0,4537,30351,1,0,0,0,4539,30363,1,0,0,0,4541, +30385,1,0,0,0,4543,30407,1,0,0,0,4545,30424,1,0,0,0,4547,30433,1,0,0,0,4549, +30440,1,0,0,0,4551,30451,1,0,0,0,4553,30467,1,0,0,0,4555,30484,1,0,0,0,4557, +30503,1,0,0,0,4559,30521,1,0,0,0,4561,30540,1,0,0,0,4563,30549,1,0,0,0,4565, +30562,1,0,0,0,4567,30570,1,0,0,0,4569,30575,1,0,0,0,4571,30585,1,0,0,0,4573, +30593,1,0,0,0,4575,30604,1,0,0,0,4577,30612,1,0,0,0,4579,30619,1,0,0,0,4581, +30625,1,0,0,0,4583,30630,1,0,0,0,4585,30637,1,0,0,0,4587,30645,1,0,0,0,4589, +30651,1,0,0,0,4591,30656,1,0,0,0,4593,30667,1,0,0,0,4595,30676,1,0,0,0,4597, +30681,1,0,0,0,4599,30687,1,0,0,0,4601,30693,1,0,0,0,4603,30704,1,0,0,0,4605, +30717,1,0,0,0,4607,30724,1,0,0,0,4609,30732,1,0,0,0,4611,30743,1,0,0,0,4613, +30748,1,0,0,0,4615,30753,1,0,0,0,4617,30762,1,0,0,0,4619,30770,1,0,0,0,4621, +30778,1,0,0,0,4623,30784,1,0,0,0,4625,30804,1,0,0,0,4627,30808,1,0,0,0,4629, +30820,1,0,0,0,4631,30824,1,0,0,0,4633,30835,1,0,0,0,4635,30842,1,0,0,0,4637, +30856,1,0,0,0,4639,30864,1,0,0,0,4641,30873,1,0,0,0,4643,30886,1,0,0,0,4645, +30897,1,0,0,0,4647,30907,1,0,0,0,4649,30915,1,0,0,0,4651,30932,1,0,0,0,4653, +30943,1,0,0,0,4655,30954,1,0,0,0,4657,30964,1,0,0,0,4659,30974,1,0,0,0,4661, +30983,1,0,0,0,4663,31010,1,0,0,0,4665,31027,1,0,0,0,4667,31048,1,0,0,0,4669, +31058,1,0,0,0,4671,31069,1,0,0,0,4673,31083,1,0,0,0,4675,31092,1,0,0,0,4677, +31101,1,0,0,0,4679,31107,1,0,0,0,4681,31119,1,0,0,0,4683,31128,1,0,0,0,4685, +31136,1,0,0,0,4687,31146,1,0,0,0,4689,31159,1,0,0,0,4691,31168,1,0,0,0,4693, +31175,1,0,0,0,4695,31192,1,0,0,0,4697,31205,1,0,0,0,4699,31213,1,0,0,0,4701, +31217,1,0,0,0,4703,31228,1,0,0,0,4705,31243,1,0,0,0,4707,31246,1,0,0,0,4709, +31257,1,0,0,0,4711,31263,1,0,0,0,4713,31268,1,0,0,0,4715,31282,1,0,0,0,4717, +31286,1,0,0,0,4719,31311,1,0,0,0,4721,31319,1,0,0,0,4723,31324,1,0,0,0,4725, +31330,1,0,0,0,4727,31341,1,0,0,0,4729,31359,1,0,0,0,4731,31375,1,0,0,0,4733, +31394,1,0,0,0,4735,31417,1,0,0,0,4737,31432,1,0,0,0,4739,31443,1,0,0,0,4741, +31451,1,0,0,0,4743,31461,1,0,0,0,4745,31472,1,0,0,0,4747,31483,1,0,0,0,4749, +31492,1,0,0,0,4751,31500,1,0,0,0,4753,31505,1,0,0,0,4755,31515,1,0,0,0,4757, +31531,1,0,0,0,4759,31543,1,0,0,0,4761,31555,1,0,0,0,4763,31569,1,0,0,0,4765, +31580,1,0,0,0,4767,31588,1,0,0,0,4769,31593,1,0,0,0,4771,31601,1,0,0,0,4773, +31606,1,0,0,0,4775,31612,1,0,0,0,4777,31622,1,0,0,0,4779,31632,1,0,0,0,4781, +31643,1,0,0,0,4783,31651,1,0,0,0,4785,31664,1,0,0,0,4787,31680,1,0,0,0,4789, +31696,1,0,0,0,4791,31701,1,0,0,0,4793,31705,1,0,0,0,4795,31710,1,0,0,0,4797, +31717,1,0,0,0,4799,31724,1,0,0,0,4801,31728,1,0,0,0,4803,31737,1,0,0,0,4805, +31754,1,0,0,0,4807,31759,1,0,0,0,4809,31763,1,0,0,0,4811,31770,1,0,0,0,4813, +31782,1,0,0,0,4815,31786,1,0,0,0,4817,31792,1,0,0,0,4819,31796,1,0,0,0,4821, +31812,1,0,0,0,4823,31818,1,0,0,0,4825,31824,1,0,0,0,4827,31835,1,0,0,0,4829, +31842,1,0,0,0,4831,31850,1,0,0,0,4833,31855,1,0,0,0,4835,31859,1,0,0,0,4837, +31866,1,0,0,0,4839,31871,1,0,0,0,4841,31880,1,0,0,0,4843,31886,1,0,0,0,4845, +31895,1,0,0,0,4847,31903,1,0,0,0,4849,31913,1,0,0,0,4851,31925,1,0,0,0,4853, +31934,1,0,0,0,4855,31941,1,0,0,0,4857,31948,1,0,0,0,4859,31960,1,0,0,0,4861, +31972,1,0,0,0,4863,31979,1,0,0,0,4865,31983,1,0,0,0,4867,31993,1,0,0,0,4869, +32006,1,0,0,0,4871,32022,1,0,0,0,4873,32036,1,0,0,0,4875,32039,1,0,0,0,4877, +32042,1,0,0,0,4879,32046,1,0,0,0,4881,32064,1,0,0,0,4883,32076,1,0,0,0,4885, +32095,1,0,0,0,4887,32104,1,0,0,0,4889,32113,1,0,0,0,4891,32122,1,0,0,0,4893, +32131,1,0,0,0,4895,32140,1,0,0,0,4897,32149,1,0,0,0,4899,32158,1,0,0,0,4901, +32167,1,0,0,0,4903,32176,1,0,0,0,4905,32185,1,0,0,0,4907,32194,1,0,0,0,4909, +32204,1,0,0,0,4911,32206,1,0,0,0,4913,32208,1,0,0,0,4915,32210,1,0,0,0,4917, +32212,1,0,0,0,4919,32215,1,0,0,0,4921,32217,1,0,0,0,4923,32219,1,0,0,0,4925, +32221,1,0,0,0,4927,32223,1,0,0,0,4929,32225,1,0,0,0,4931,32227,1,0,0,0,4933, +32230,1,0,0,0,4935,32232,1,0,0,0,4937,32234,1,0,0,0,4939,32236,1,0,0,0,4941, +32252,1,0,0,0,4943,32262,1,0,0,0,4945,32264,1,0,0,0,4947,32266,1,0,0,0,4949, +32268,1,0,0,0,4951,32270,1,0,0,0,4953,32272,1,0,0,0,4955,32274,1,0,0,0,4957, +32276,1,0,0,0,4959,32278,1,0,0,0,4961,32280,1,0,0,0,4963,32282,1,0,0,0,4965, +32284,1,0,0,0,4967,32286,1,0,0,0,4969,32288,1,0,0,0,4971,32301,1,0,0,0,4973, +32315,1,0,0,0,4975,32338,1,0,0,0,4977,32359,1,0,0,0,4979,32363,1,0,0,0,4981, +32371,1,0,0,0,4983,32381,1,0,0,0,4985,32389,1,0,0,0,4987,32391,1,0,0,0,4989, +32393,1,0,0,0,4991,32398,1,0,0,0,4993,32410,1,0,0,0,4995,32414,1,0,0,0,4997, +4998,7,0,0,0,4998,4999,7,1,0,0,4999,5000,7,2,0,0,5000,5001,7,3,0,0,5001, +5002,7,4,0,0,5002,2,1,0,0,0,5003,5004,7,0,0,0,5004,5005,7,1,0,0,5005,5006, +7,5,0,0,5006,4,1,0,0,0,5007,5008,7,0,0,0,5008,5009,7,1,0,0,5009,5010,7,5, +0,0,5010,5011,7,6,0,0,5011,5012,7,7,0,0,5012,5013,7,4,0,0,5013,6,1,0,0,0, +5014,5015,7,0,0,0,5015,5016,7,8,0,0,5016,5017,7,8,0,0,5017,5018,7,6,0,0, +5018,5019,7,5,0,0,5019,5020,7,5,0,0,5020,8,1,0,0,0,5021,5022,7,0,0,0,5022, +5023,7,8,0,0,5023,5024,7,8,0,0,5024,5025,7,6,0,0,5025,5026,7,5,0,0,5026, +5027,7,5,0,0,5027,5028,7,6,0,0,5028,5029,7,9,0,0,5029,10,1,0,0,0,5030,5031, +7,0,0,0,5031,5032,7,8,0,0,5032,5033,7,8,0,0,5033,5034,7,6,0,0,5034,5035, +7,5,0,0,5035,5036,7,5,0,0,5036,5037,7,10,0,0,5037,5038,7,1,0,0,5038,5039, +7,11,0,0,5039,5040,7,6,0,0,5040,12,1,0,0,0,5041,5042,7,0,0,0,5042,5043,7, +8,0,0,5043,5044,7,8,0,0,5044,5045,7,2,0,0,5045,5046,7,12,0,0,5046,5047,7, +7,0,0,5047,5048,7,4,0,0,5048,14,1,0,0,0,5049,5050,7,0,0,0,5050,5051,7,8, +0,0,5051,5052,7,11,0,0,5052,16,1,0,0,0,5053,5054,7,0,0,0,5054,5055,7,8,0, +0,5055,5056,7,2,0,0,5056,5057,7,5,0,0,5057,18,1,0,0,0,5058,5059,7,0,0,0, +5059,5060,7,8,0,0,5060,5061,7,3,0,0,5061,5062,7,2,0,0,5062,5063,7,5,0,0, +5063,5064,7,5,0,0,5064,20,1,0,0,0,5065,5066,7,0,0,0,5066,5067,7,8,0,0,5067, +5068,7,4,0,0,5068,5069,7,10,0,0,5069,5070,7,2,0,0,5070,5071,7,7,0,0,5071, +22,1,0,0,0,5072,5073,7,0,0,0,5073,5074,7,8,0,0,5074,5075,7,4,0,0,5075,5076, +7,10,0,0,5076,5077,7,2,0,0,5077,5078,7,7,0,0,5078,5079,7,5,0,0,5079,24,1, +0,0,0,5080,5081,7,0,0,0,5081,5082,7,8,0,0,5082,5083,7,4,0,0,5083,5084,7, +10,0,0,5084,5085,7,13,0,0,5085,5086,7,0,0,0,5086,5087,7,4,0,0,5087,5088, +7,6,0,0,5088,26,1,0,0,0,5089,5090,7,0,0,0,5090,5091,7,8,0,0,5091,5092,7, +4,0,0,5092,5093,7,10,0,0,5093,5094,7,13,0,0,5094,5095,7,6,0,0,5095,28,1, +0,0,0,5096,5097,7,0,0,0,5097,5098,7,8,0,0,5098,5099,7,4,0,0,5099,5100,7, +10,0,0,5100,5101,7,13,0,0,5101,5102,7,6,0,0,5102,5103,5,95,0,0,5103,5104, +7,8,0,0,5104,5105,7,2,0,0,5105,5106,7,14,0,0,5106,5107,7,15,0,0,5107,5108, +7,2,0,0,5108,5109,7,7,0,0,5109,5110,7,6,0,0,5110,5111,7,7,0,0,5111,5112, +7,4,0,0,5112,30,1,0,0,0,5113,5114,7,0,0,0,5114,5115,7,8,0,0,5115,5116,7, +4,0,0,5116,5117,7,10,0,0,5117,5118,7,13,0,0,5118,5119,7,6,0,0,5119,5120, +5,95,0,0,5120,5121,7,9,0,0,5121,5122,7,0,0,0,5122,5123,7,4,0,0,5123,5124, +7,0,0,0,5124,32,1,0,0,0,5125,5126,7,0,0,0,5126,5127,7,8,0,0,5127,5128,7, +4,0,0,5128,5129,7,10,0,0,5129,5130,7,13,0,0,5130,5131,7,6,0,0,5131,5132, +5,95,0,0,5132,5133,7,16,0,0,5133,5134,7,12,0,0,5134,5135,7,7,0,0,5135,5136, +7,8,0,0,5136,5137,7,4,0,0,5137,5138,7,10,0,0,5138,5139,7,2,0,0,5139,5140, +7,7,0,0,5140,34,1,0,0,0,5141,5142,7,0,0,0,5142,5143,7,8,0,0,5143,5144,7, +4,0,0,5144,5145,7,10,0,0,5145,5146,7,13,0,0,5146,5147,7,6,0,0,5147,5148, +5,95,0,0,5148,5149,7,4,0,0,5149,5150,7,0,0,0,5150,5151,7,17,0,0,5151,36, +1,0,0,0,5152,5153,7,0,0,0,5153,5154,7,8,0,0,5154,5155,7,4,0,0,5155,5156, +7,10,0,0,5156,5157,7,13,0,0,5157,5158,7,10,0,0,5158,5159,7,4,0,0,5159,5160, +7,18,0,0,5160,38,1,0,0,0,5161,5162,7,0,0,0,5162,5163,7,9,0,0,5163,5164,7, +0,0,0,5164,5165,7,15,0,0,5165,5166,7,4,0,0,5166,5167,7,10,0,0,5167,5168, +7,13,0,0,5168,5169,7,6,0,0,5169,5170,5,95,0,0,5170,5171,7,15,0,0,5171,5172, +7,11,0,0,5172,5173,7,0,0,0,5173,5174,7,7,0,0,5174,40,1,0,0,0,5175,5176,7, +0,0,0,5176,5177,7,9,0,0,5177,5178,7,9,0,0,5178,42,1,0,0,0,5179,5180,7,0, +0,0,5180,5181,7,9,0,0,5181,5182,7,9,0,0,5182,5183,5,95,0,0,5183,5184,7,8, +0,0,5184,5185,7,2,0,0,5185,5186,7,11,0,0,5186,5187,7,12,0,0,5187,5188,7, +14,0,0,5188,5189,7,7,0,0,5189,44,1,0,0,0,5190,5191,7,0,0,0,5191,5192,7,9, +0,0,5192,5193,7,9,0,0,5193,5194,5,95,0,0,5194,5195,7,17,0,0,5195,5196,7, +3,0,0,5196,5197,7,2,0,0,5197,5198,7,12,0,0,5198,5199,7,15,0,0,5199,46,1, +0,0,0,5200,5201,7,0,0,0,5201,5202,7,9,0,0,5202,5203,7,9,0,0,5203,5204,5, +95,0,0,5204,5205,7,14,0,0,5205,5206,7,2,0,0,5206,5207,7,7,0,0,5207,5208, +7,4,0,0,5208,5209,7,19,0,0,5209,5210,7,5,0,0,5210,48,1,0,0,0,5211,5212,7, +0,0,0,5212,5213,7,9,0,0,5213,5214,7,20,0,0,5214,5215,5,95,0,0,5215,5216, +7,9,0,0,5216,5217,7,0,0,0,5217,5218,7,4,0,0,5218,5219,7,6,0,0,5219,50,1, +0,0,0,5220,5221,7,0,0,0,5221,5222,7,9,0,0,5222,5223,7,14,0,0,5223,5224,7, +10,0,0,5224,5225,7,7,0,0,5225,52,1,0,0,0,5226,5227,7,0,0,0,5227,5228,7,9, +0,0,5228,5229,7,14,0,0,5229,5230,7,10,0,0,5230,5231,7,7,0,0,5231,5232,7, +10,0,0,5232,5233,7,5,0,0,5233,5234,7,4,0,0,5234,5235,7,6,0,0,5235,5236,7, +3,0,0,5236,54,1,0,0,0,5237,5238,7,0,0,0,5238,5239,7,9,0,0,5239,5240,7,14, +0,0,5240,5241,7,10,0,0,5241,5242,7,7,0,0,5242,5243,7,10,0,0,5243,5244,7, +5,0,0,5244,5245,7,4,0,0,5245,5246,7,3,0,0,5246,5247,7,0,0,0,5247,5248,7, +4,0,0,5248,5249,7,2,0,0,5249,5250,7,3,0,0,5250,56,1,0,0,0,5251,5252,7,0, +0,0,5252,5253,7,9,0,0,5253,5254,7,13,0,0,5254,5255,7,0,0,0,5255,5256,7,7, +0,0,5256,5257,7,8,0,0,5257,5258,7,6,0,0,5258,5259,7,9,0,0,5259,58,1,0,0, +0,5260,5261,7,0,0,0,5261,5262,7,9,0,0,5262,5263,7,13,0,0,5263,5264,7,10, +0,0,5264,5265,7,5,0,0,5265,5266,7,6,0,0,5266,60,1,0,0,0,5267,5268,7,0,0, +0,5268,5269,7,9,0,0,5269,5270,7,13,0,0,5270,5271,7,10,0,0,5271,5272,7,5, +0,0,5272,5273,7,2,0,0,5273,5274,7,3,0,0,5274,62,1,0,0,0,5275,5276,7,0,0, +0,5276,5277,7,16,0,0,5277,5278,7,9,0,0,5278,5279,5,95,0,0,5279,5280,7,9, +0,0,5280,5281,7,10,0,0,5281,5282,7,5,0,0,5282,5283,7,21,0,0,5283,5284,7, +5,0,0,5284,5285,7,4,0,0,5285,5286,7,3,0,0,5286,5287,7,10,0,0,5287,5288,7, +7,0,0,5288,5289,7,17,0,0,5289,64,1,0,0,0,5290,5291,7,0,0,0,5291,5292,7,16, +0,0,5292,5293,7,4,0,0,5293,5294,7,6,0,0,5294,5295,7,3,0,0,5295,66,1,0,0, +0,5296,5297,7,0,0,0,5297,5298,7,17,0,0,5298,5299,7,6,0,0,5299,5300,7,7,0, +0,5300,5301,7,4,0,0,5301,68,1,0,0,0,5302,5303,7,0,0,0,5303,5304,7,17,0,0, +5304,5305,7,17,0,0,5305,5306,7,3,0,0,5306,5307,7,6,0,0,5307,5308,7,17,0, +0,5308,5309,7,0,0,0,5309,5310,7,4,0,0,5310,5311,7,6,0,0,5311,70,1,0,0,0, +5312,5313,7,0,0,0,5313,72,1,0,0,0,5314,5315,7,0,0,0,5315,5316,7,11,0,0,5316, +5317,7,10,0,0,5317,5318,7,0,0,0,5318,5319,7,5,0,0,5319,74,1,0,0,0,5320,5321, +7,0,0,0,5321,5322,7,11,0,0,5322,5323,7,11,0,0,5323,76,1,0,0,0,5324,5325, +7,0,0,0,5325,5326,7,11,0,0,5326,5327,7,11,0,0,5327,5328,7,2,0,0,5328,5329, +7,8,0,0,5329,5330,7,0,0,0,5330,5331,7,4,0,0,5331,5332,7,6,0,0,5332,78,1, +0,0,0,5333,5334,7,0,0,0,5334,5335,7,11,0,0,5335,5336,7,11,0,0,5336,5337, +7,2,0,0,5337,5338,7,22,0,0,5338,80,1,0,0,0,5339,5340,7,0,0,0,5340,5341,7, +11,0,0,5341,5342,7,11,0,0,5342,5343,5,95,0,0,5343,5344,7,3,0,0,5344,5345, +7,2,0,0,5345,5346,7,22,0,0,5346,5347,7,5,0,0,5347,82,1,0,0,0,5348,5349,7, +0,0,0,5349,5350,7,11,0,0,5350,5351,7,4,0,0,5351,5352,7,6,0,0,5352,5353,7, +3,0,0,5353,84,1,0,0,0,5354,5355,7,0,0,0,5355,5356,7,11,0,0,5356,5357,7,4, +0,0,5357,5358,7,6,0,0,5358,5359,7,3,0,0,5359,5360,7,7,0,0,5360,5361,7,0, +0,0,5361,5362,7,4,0,0,5362,5363,7,6,0,0,5363,86,1,0,0,0,5364,5365,7,0,0, +0,5365,5366,7,11,0,0,5366,5367,7,22,0,0,5367,5368,7,0,0,0,5368,5369,7,18, +0,0,5369,5370,7,5,0,0,5370,88,1,0,0,0,5371,5372,7,0,0,0,5372,5373,7,7,0, +0,5373,5374,7,0,0,0,5374,5375,7,11,0,0,5375,5376,7,18,0,0,5376,5377,7,4, +0,0,5377,5378,7,10,0,0,5378,5379,7,8,0,0,5379,90,1,0,0,0,5380,5381,7,0,0, +0,5381,5382,7,7,0,0,5382,5383,7,0,0,0,5383,5384,7,11,0,0,5384,5385,7,18, +0,0,5385,5386,7,23,0,0,5386,5387,7,6,0,0,5387,92,1,0,0,0,5388,5389,7,0,0, +0,5389,5390,7,7,0,0,5390,5391,7,8,0,0,5391,5392,7,6,0,0,5392,5393,7,5,0, +0,5393,5394,7,4,0,0,5394,5395,7,2,0,0,5395,5396,7,3,0,0,5396,94,1,0,0,0, +5397,5398,7,0,0,0,5398,5399,7,7,0,0,5399,5400,7,8,0,0,5400,5401,7,10,0,0, +5401,5402,7,11,0,0,5402,5403,7,11,0,0,5403,5404,7,0,0,0,5404,5405,7,3,0, +0,5405,5406,7,18,0,0,5406,96,1,0,0,0,5407,5408,7,0,0,0,5408,5409,7,7,0,0, +5409,5410,7,9,0,0,5410,98,1,0,0,0,5411,5412,7,0,0,0,5412,5413,7,7,0,0,5413, +5414,7,9,0,0,5414,5415,5,95,0,0,5415,5416,7,6,0,0,5416,5417,7,24,0,0,5417, +5418,7,12,0,0,5418,5419,7,0,0,0,5419,5420,7,11,0,0,5420,100,1,0,0,0,5421, +5422,7,0,0,0,5422,5423,7,7,0,0,5423,5424,7,7,0,0,5424,5425,7,2,0,0,5425, +5426,7,4,0,0,5426,5427,7,0,0,0,5427,5428,7,4,0,0,5428,5429,7,10,0,0,5429, +5430,7,2,0,0,5430,5431,7,7,0,0,5431,5432,7,5,0,0,5432,102,1,0,0,0,5433,5434, +7,0,0,0,5434,5435,7,7,0,0,5435,5436,7,2,0,0,5436,5437,7,14,0,0,5437,5438, +7,0,0,0,5438,5439,7,11,0,0,5439,5440,7,18,0,0,5440,104,1,0,0,0,5441,5442, +7,0,0,0,5442,5443,7,7,0,0,5443,5444,7,5,0,0,5444,5445,7,10,0,0,5445,5446, +5,95,0,0,5446,5447,7,3,0,0,5447,5448,7,6,0,0,5448,5449,7,0,0,0,5449,5450, +7,3,0,0,5450,5451,7,8,0,0,5451,5452,7,19,0,0,5452,106,1,0,0,0,5453,5454, +7,0,0,0,5454,5455,7,7,0,0,5455,5456,7,4,0,0,5456,5457,7,10,0,0,5457,5458, +7,20,0,0,5458,5459,7,2,0,0,5459,5460,7,10,0,0,5460,5461,7,7,0,0,5461,108, +1,0,0,0,5462,5463,7,0,0,0,5463,5464,7,7,0,0,5464,5465,7,18,0,0,5465,110, +1,0,0,0,5466,5467,7,0,0,0,5467,5468,7,7,0,0,5468,5469,7,18,0,0,5469,5470, +7,5,0,0,5470,5471,7,8,0,0,5471,5472,7,19,0,0,5472,5473,7,6,0,0,5473,5474, +7,14,0,0,5474,5475,7,0,0,0,5475,112,1,0,0,0,5476,5477,7,0,0,0,5477,5478, +7,15,0,0,5478,5479,7,15,0,0,5479,5480,7,6,0,0,5480,5481,7,7,0,0,5481,5482, +7,9,0,0,5482,114,1,0,0,0,5483,5484,7,0,0,0,5484,5485,7,15,0,0,5485,5486, +7,15,0,0,5486,5487,7,6,0,0,5487,5488,7,7,0,0,5488,5489,7,9,0,0,5489,5490, +7,8,0,0,5490,5491,7,19,0,0,5491,5492,7,10,0,0,5492,5493,7,11,0,0,5493,5494, +7,9,0,0,5494,5495,7,25,0,0,5495,5496,7,14,0,0,5496,5497,7,11,0,0,5497,116, +1,0,0,0,5498,5499,7,0,0,0,5499,5500,7,15,0,0,5500,5501,7,15,0,0,5501,5502, +7,6,0,0,5502,5503,7,7,0,0,5503,5504,7,9,0,0,5504,5505,5,95,0,0,5505,5506, +7,13,0,0,5506,5507,7,0,0,0,5507,5508,7,11,0,0,5508,5509,7,12,0,0,5509,5510, +7,6,0,0,5510,5511,7,5,0,0,5511,118,1,0,0,0,5512,5513,7,0,0,0,5513,5514,7, +15,0,0,5514,5515,7,15,0,0,5515,5516,7,11,0,0,5516,5517,7,10,0,0,5517,5518, +7,8,0,0,5518,5519,7,0,0,0,5519,5520,7,4,0,0,5520,5521,7,10,0,0,5521,5522, +7,2,0,0,5522,5523,7,7,0,0,5523,120,1,0,0,0,5524,5525,7,0,0,0,5525,5526,7, +15,0,0,5526,5527,7,15,0,0,5527,5528,7,11,0,0,5528,5529,7,18,0,0,5529,122, +1,0,0,0,5530,5531,7,0,0,0,5531,5532,7,15,0,0,5532,5533,7,15,0,0,5533,5534, +7,3,0,0,5534,5535,7,2,0,0,5535,5536,7,25,0,0,5536,5537,5,95,0,0,5537,5538, +7,8,0,0,5538,5539,7,2,0,0,5539,5540,7,12,0,0,5540,5541,7,7,0,0,5541,5542, +7,4,0,0,5542,5543,5,95,0,0,5543,5544,7,9,0,0,5544,5545,7,10,0,0,5545,5546, +7,5,0,0,5546,5547,7,4,0,0,5547,5548,7,10,0,0,5548,5549,7,7,0,0,5549,5550, +7,8,0,0,5550,5551,7,4,0,0,5551,124,1,0,0,0,5552,5553,7,0,0,0,5553,5554,7, +3,0,0,5554,5555,7,8,0,0,5555,5556,7,19,0,0,5556,5557,7,10,0,0,5557,5558, +7,13,0,0,5558,5559,7,0,0,0,5559,5560,7,11,0,0,5560,126,1,0,0,0,5561,5562, +7,0,0,0,5562,5563,7,3,0,0,5563,5564,7,8,0,0,5564,5565,7,19,0,0,5565,5566, +7,10,0,0,5566,5567,7,13,0,0,5567,5568,7,6,0,0,5568,128,1,0,0,0,5569,5570, +7,0,0,0,5570,5571,7,3,0,0,5571,5572,7,8,0,0,5572,5573,7,19,0,0,5573,5574, +7,10,0,0,5574,5575,7,13,0,0,5575,5576,7,6,0,0,5576,5577,7,9,0,0,5577,130, +1,0,0,0,5578,5579,7,0,0,0,5579,5580,7,3,0,0,5580,5581,7,8,0,0,5581,5582, +7,19,0,0,5582,5583,7,10,0,0,5583,5584,7,13,0,0,5584,5585,7,6,0,0,5585,5586, +7,11,0,0,5586,5587,7,2,0,0,5587,5588,7,17,0,0,5588,132,1,0,0,0,5589,5590, +7,0,0,0,5590,5591,7,3,0,0,5591,5592,7,6,0,0,5592,134,1,0,0,0,5593,5594,7, +0,0,0,5594,5595,7,3,0,0,5595,5596,7,3,0,0,5596,5597,7,0,0,0,5597,5598,7, +18,0,0,5598,136,1,0,0,0,5599,5600,7,0,0,0,5600,5601,7,5,0,0,5601,138,1,0, +0,0,5602,5603,7,0,0,0,5603,5604,7,5,0,0,5604,5605,7,8,0,0,5605,140,1,0,0, +0,5606,5607,7,0,0,0,5607,5608,7,5,0,0,5608,5609,7,8,0,0,5609,5610,7,10,0, +0,5610,5611,7,10,0,0,5611,142,1,0,0,0,5612,5613,7,0,0,0,5613,5614,7,5,0, +0,5614,5615,7,8,0,0,5615,5616,7,10,0,0,5616,5617,7,10,0,0,5617,5618,7,5, +0,0,5618,5619,7,4,0,0,5619,5620,7,3,0,0,5620,144,1,0,0,0,5621,5622,7,0,0, +0,5622,5623,7,5,0,0,5623,5624,7,10,0,0,5624,5625,7,7,0,0,5625,146,1,0,0, +0,5626,5627,7,0,0,0,5627,5628,7,5,0,0,5628,5629,7,10,0,0,5629,5630,7,5,0, +0,5630,148,1,0,0,0,5631,5632,7,0,0,0,5632,5633,7,5,0,0,5633,5634,7,5,0,0, +5634,5635,7,6,0,0,5635,5636,7,14,0,0,5636,5637,7,1,0,0,5637,5638,7,11,0, +0,5638,5639,7,18,0,0,5639,150,1,0,0,0,5640,5641,7,0,0,0,5641,5642,7,5,0, +0,5642,5643,7,5,0,0,5643,5644,7,10,0,0,5644,5645,7,17,0,0,5645,5646,7,7, +0,0,5646,152,1,0,0,0,5647,5648,7,0,0,0,5648,5649,7,5,0,0,5649,5650,7,5,0, +0,5650,5651,7,2,0,0,5651,5652,7,8,0,0,5652,5653,7,10,0,0,5653,5654,7,0,0, +0,5654,5655,7,4,0,0,5655,5656,7,6,0,0,5656,154,1,0,0,0,5657,5658,7,0,0,0, +5658,5659,7,5,0,0,5659,5660,7,18,0,0,5660,5661,7,7,0,0,5661,5662,7,8,0,0, +5662,156,1,0,0,0,5663,5664,7,0,0,0,5664,5665,7,5,0,0,5665,5666,7,18,0,0, +5666,5667,7,7,0,0,5667,5668,7,8,0,0,5668,5669,7,19,0,0,5669,5670,7,3,0,0, +5670,5671,7,2,0,0,5671,5672,7,7,0,0,5672,5673,7,2,0,0,5673,5674,7,12,0,0, +5674,5675,7,5,0,0,5675,158,1,0,0,0,5676,5677,7,0,0,0,5677,5678,7,4,0,0,5678, +5679,7,0,0,0,5679,5680,7,7,0,0,5680,5681,5,50,0,0,5681,160,1,0,0,0,5682, +5683,7,0,0,0,5683,5684,7,4,0,0,5684,5685,7,0,0,0,5685,5686,7,7,0,0,5686, +162,1,0,0,0,5687,5688,7,0,0,0,5688,5689,7,4,0,0,5689,164,1,0,0,0,5690,5691, +7,0,0,0,5691,5692,7,4,0,0,5692,5693,7,4,0,0,5693,5694,7,3,0,0,5694,5695, +7,10,0,0,5695,5696,7,1,0,0,5696,5697,7,12,0,0,5697,5698,7,4,0,0,5698,5699, +7,6,0,0,5699,166,1,0,0,0,5700,5701,7,0,0,0,5701,5702,7,4,0,0,5702,5703,7, +4,0,0,5703,5704,7,3,0,0,5704,5705,7,10,0,0,5705,5706,7,1,0,0,5706,5707,7, +12,0,0,5707,5708,7,4,0,0,5708,5709,7,6,0,0,5709,5710,7,5,0,0,5710,168,1, +0,0,0,5711,5712,7,0,0,0,5712,5713,7,12,0,0,5713,5714,7,9,0,0,5714,5715,7, +10,0,0,5715,5716,7,4,0,0,5716,170,1,0,0,0,5717,5718,7,0,0,0,5718,5719,7, +12,0,0,5719,5720,7,4,0,0,5720,5721,7,19,0,0,5721,5722,7,6,0,0,5722,5723, +7,7,0,0,5723,5724,7,4,0,0,5724,5725,7,10,0,0,5725,5726,7,8,0,0,5726,5727, +7,0,0,0,5727,5728,7,4,0,0,5728,5729,7,6,0,0,5729,5730,7,9,0,0,5730,172,1, +0,0,0,5731,5732,7,0,0,0,5732,5733,7,12,0,0,5733,5734,7,4,0,0,5734,5735,7, +19,0,0,5735,5736,7,6,0,0,5736,5737,7,7,0,0,5737,5738,7,4,0,0,5738,5739,7, +10,0,0,5739,5740,7,8,0,0,5740,5741,7,0,0,0,5741,5742,7,4,0,0,5742,5743,7, +10,0,0,5743,5744,7,2,0,0,5744,5745,7,7,0,0,5745,174,1,0,0,0,5746,5747,7, +0,0,0,5747,5748,7,12,0,0,5748,5749,7,4,0,0,5749,5750,7,19,0,0,5750,5751, +7,10,0,0,5751,5752,7,9,0,0,5752,176,1,0,0,0,5753,5754,7,0,0,0,5754,5755, +7,12,0,0,5755,5756,7,4,0,0,5756,5757,7,19,0,0,5757,5758,7,2,0,0,5758,5759, +7,3,0,0,5759,5760,7,10,0,0,5760,5761,7,23,0,0,5761,5762,7,0,0,0,5762,5763, +7,4,0,0,5763,5764,7,10,0,0,5764,5765,7,2,0,0,5765,5766,7,7,0,0,5766,178, +1,0,0,0,5767,5768,7,0,0,0,5768,5769,7,12,0,0,5769,5770,7,4,0,0,5770,5771, +7,2,0,0,5771,5772,7,0,0,0,5772,5773,7,11,0,0,5773,5774,7,11,0,0,5774,5775, +7,2,0,0,5775,5776,7,8,0,0,5776,5777,7,0,0,0,5777,5778,7,4,0,0,5778,5779, +7,6,0,0,5779,180,1,0,0,0,5780,5781,7,0,0,0,5781,5782,7,12,0,0,5782,5783, +7,4,0,0,5783,5784,7,2,0,0,5784,182,1,0,0,0,5785,5786,7,0,0,0,5786,5787,7, +12,0,0,5787,5788,7,4,0,0,5788,5789,7,2,0,0,5789,5790,7,1,0,0,5790,5791,7, +0,0,0,5791,5792,7,8,0,0,5792,5793,7,21,0,0,5793,5794,7,12,0,0,5794,5795, +7,15,0,0,5795,184,1,0,0,0,5796,5797,7,0,0,0,5797,5798,7,12,0,0,5798,5799, +7,4,0,0,5799,5800,7,2,0,0,5800,5801,7,6,0,0,5801,5802,7,25,0,0,5802,5803, +7,4,0,0,5803,5804,7,6,0,0,5804,5805,7,7,0,0,5805,5806,7,9,0,0,5806,186,1, +0,0,0,5807,5808,7,0,0,0,5808,5809,7,12,0,0,5809,5810,7,4,0,0,5810,5811,7, +2,0,0,5811,5812,5,95,0,0,5812,5813,7,11,0,0,5813,5814,7,2,0,0,5814,5815, +7,17,0,0,5815,5816,7,10,0,0,5816,5817,7,7,0,0,5817,188,1,0,0,0,5818,5819, +7,0,0,0,5819,5820,7,12,0,0,5820,5821,7,4,0,0,5821,5822,7,2,0,0,5822,5823, +7,14,0,0,5823,5824,7,0,0,0,5824,5825,7,4,0,0,5825,5826,7,10,0,0,5826,5827, +7,8,0,0,5827,190,1,0,0,0,5828,5829,7,0,0,0,5829,5830,7,12,0,0,5830,5831, +7,4,0,0,5831,5832,7,2,0,0,5832,5833,7,7,0,0,5833,5834,7,2,0,0,5834,5835, +7,14,0,0,5835,5836,7,2,0,0,5836,5837,7,12,0,0,5837,5838,7,5,0,0,5838,5839, +5,95,0,0,5839,5840,7,4,0,0,5840,5841,7,3,0,0,5841,5842,7,0,0,0,5842,5843, +7,7,0,0,5843,5844,7,5,0,0,5844,5845,7,0,0,0,5845,5846,7,8,0,0,5846,5847, +7,4,0,0,5847,5848,7,10,0,0,5848,5849,7,2,0,0,5849,5850,7,7,0,0,5850,192, +1,0,0,0,5851,5852,7,0,0,0,5852,5853,7,12,0,0,5853,5854,7,4,0,0,5854,5855, +7,2,0,0,5855,5856,5,95,0,0,5856,5857,7,3,0,0,5857,5858,7,6,0,0,5858,5859, +7,2,0,0,5859,5860,7,15,0,0,5860,5861,7,4,0,0,5861,5862,7,10,0,0,5862,5863, +7,14,0,0,5863,5864,7,10,0,0,5864,5865,7,23,0,0,5865,5866,7,6,0,0,5866,194, +1,0,0,0,5867,5868,7,0,0,0,5868,5869,7,13,0,0,5869,5870,7,0,0,0,5870,5871, +7,10,0,0,5871,5872,7,11,0,0,5872,5873,7,0,0,0,5873,5874,7,1,0,0,5874,5875, +7,10,0,0,5875,5876,7,11,0,0,5876,5877,7,10,0,0,5877,5878,7,4,0,0,5878,5879, +7,18,0,0,5879,196,1,0,0,0,5880,5881,7,0,0,0,5881,5882,7,13,0,0,5882,5883, +7,3,0,0,5883,5884,7,2,0,0,5884,198,1,0,0,0,5885,5886,7,1,0,0,5886,5887,7, +0,0,0,5887,5888,7,8,0,0,5888,5889,7,21,0,0,5889,5890,7,17,0,0,5890,5891, +7,3,0,0,5891,5892,7,2,0,0,5892,5893,7,12,0,0,5893,5894,7,7,0,0,5894,5895, +7,9,0,0,5895,200,1,0,0,0,5896,5897,7,1,0,0,5897,5898,7,0,0,0,5898,5899,7, +8,0,0,5899,5900,7,21,0,0,5900,5901,7,10,0,0,5901,5902,7,7,0,0,5902,5903, +7,17,0,0,5903,5904,7,16,0,0,5904,5905,7,10,0,0,5905,5906,7,11,0,0,5906,5907, +7,6,0,0,5907,202,1,0,0,0,5908,5909,7,1,0,0,5909,5910,7,0,0,0,5910,5911,7, +8,0,0,5911,5912,7,21,0,0,5912,5913,7,12,0,0,5913,5914,7,15,0,0,5914,204, +1,0,0,0,5915,5916,7,1,0,0,5916,5917,7,0,0,0,5917,5918,7,8,0,0,5918,5919, +7,21,0,0,5919,5920,7,12,0,0,5920,5921,7,15,0,0,5921,5922,7,5,0,0,5922,206, +1,0,0,0,5923,5924,7,1,0,0,5924,5925,7,0,0,0,5925,5926,7,8,0,0,5926,5927, +7,21,0,0,5927,5928,7,12,0,0,5928,5929,7,15,0,0,5929,5930,7,5,0,0,5930,5931, +7,6,0,0,5931,5932,7,4,0,0,5932,208,1,0,0,0,5933,5934,7,1,0,0,5934,5935,7, +0,0,0,5935,5936,7,9,0,0,5936,5937,7,16,0,0,5937,5938,7,10,0,0,5938,5939, +7,11,0,0,5939,5940,7,6,0,0,5940,210,1,0,0,0,5941,5942,7,1,0,0,5942,5943, +7,0,0,0,5943,5944,7,5,0,0,5944,5945,7,10,0,0,5945,5946,7,8,0,0,5946,212, +1,0,0,0,5947,5948,7,1,0,0,5948,5949,7,0,0,0,5949,5950,7,5,0,0,5950,5951, +7,10,0,0,5951,5952,7,8,0,0,5952,5953,7,16,0,0,5953,5954,7,10,0,0,5954,5955, +7,11,0,0,5955,5956,7,6,0,0,5956,214,1,0,0,0,5957,5958,7,1,0,0,5958,5959, +7,0,0,0,5959,5960,7,4,0,0,5960,5961,7,8,0,0,5961,5962,7,19,0,0,5962,216, +1,0,0,0,5963,5964,7,1,0,0,5964,5965,7,0,0,0,5965,5966,7,4,0,0,5966,5967, +7,8,0,0,5967,5968,7,19,0,0,5968,5969,7,5,0,0,5969,5970,7,10,0,0,5970,5971, +7,23,0,0,5971,5972,7,6,0,0,5972,218,1,0,0,0,5973,5974,7,1,0,0,5974,5975, +7,0,0,0,5975,5976,7,4,0,0,5976,5977,7,8,0,0,5977,5978,7,19,0,0,5978,5979, +5,95,0,0,5979,5980,7,4,0,0,5980,5981,7,0,0,0,5981,5982,7,1,0,0,5982,5983, +7,11,0,0,5983,5984,7,6,0,0,5984,5985,5,95,0,0,5985,5986,7,0,0,0,5986,5987, +7,8,0,0,5987,5988,7,8,0,0,5988,5989,7,6,0,0,5989,5990,7,5,0,0,5990,5991, +7,5,0,0,5991,5992,5,95,0,0,5992,5993,7,1,0,0,5993,5994,7,18,0,0,5994,5995, +5,95,0,0,5995,5996,7,3,0,0,5996,5997,7,2,0,0,5997,5998,7,22,0,0,5998,5999, +7,10,0,0,5999,6000,7,9,0,0,6000,220,1,0,0,0,6001,6002,7,1,0,0,6002,6003, +7,6,0,0,6003,6004,7,8,0,0,6004,6005,7,2,0,0,6005,6006,7,14,0,0,6006,6007, +7,6,0,0,6007,222,1,0,0,0,6008,6009,7,1,0,0,6009,6010,7,6,0,0,6010,6011,7, +16,0,0,6011,6012,7,2,0,0,6012,6013,7,3,0,0,6013,6014,7,6,0,0,6014,224,1, +0,0,0,6015,6016,7,1,0,0,6016,6017,7,6,0,0,6017,6018,7,17,0,0,6018,6019,7, +10,0,0,6019,6020,7,7,0,0,6020,226,1,0,0,0,6021,6022,7,1,0,0,6022,6023,7, +6,0,0,6023,6024,7,17,0,0,6024,6025,7,10,0,0,6025,6026,7,7,0,0,6026,6027, +7,7,0,0,6027,6028,7,10,0,0,6028,6029,7,7,0,0,6029,6030,7,17,0,0,6030,228, +1,0,0,0,6031,6032,7,1,0,0,6032,6033,7,6,0,0,6033,6034,7,17,0,0,6034,6035, +7,10,0,0,6035,6036,7,7,0,0,6036,6037,5,95,0,0,6037,6038,7,2,0,0,6038,6039, +7,12,0,0,6039,6040,7,4,0,0,6040,6041,7,11,0,0,6041,6042,7,10,0,0,6042,6043, +7,7,0,0,6043,6044,7,6,0,0,6044,6045,5,95,0,0,6045,6046,7,9,0,0,6046,6047, +7,0,0,0,6047,6048,7,4,0,0,6048,6049,7,0,0,0,6049,230,1,0,0,0,6050,6051,7, +1,0,0,6051,6052,7,6,0,0,6052,6053,7,19,0,0,6053,6054,7,0,0,0,6054,6055,7, +11,0,0,6055,6056,7,16,0,0,6056,232,1,0,0,0,6057,6058,7,1,0,0,6058,6059,7, +6,0,0,6059,6060,7,24,0,0,6060,6061,7,12,0,0,6061,6062,7,6,0,0,6062,6063, +7,0,0,0,6063,6064,7,4,0,0,6064,6065,7,19,0,0,6065,234,1,0,0,0,6066,6067, +7,1,0,0,6067,6068,7,6,0,0,6068,6069,7,4,0,0,6069,6070,7,22,0,0,6070,6071, +7,6,0,0,6071,6072,7,6,0,0,6072,6073,7,7,0,0,6073,236,1,0,0,0,6074,6075,7, +1,0,0,6075,6076,7,16,0,0,6076,6077,7,10,0,0,6077,6078,7,11,0,0,6078,6079, +7,6,0,0,6079,238,1,0,0,0,6080,6081,7,1,0,0,6081,6082,7,16,0,0,6082,6083, +7,10,0,0,6083,6084,7,11,0,0,6084,6085,7,6,0,0,6085,6086,7,7,0,0,6086,6087, +7,0,0,0,6087,6088,7,14,0,0,6088,6089,7,6,0,0,6089,240,1,0,0,0,6090,6091, +7,1,0,0,6091,6092,7,10,0,0,6092,6093,7,17,0,0,6093,242,1,0,0,0,6094,6095, +7,1,0,0,6095,6096,7,10,0,0,6096,6097,7,17,0,0,6097,6098,7,16,0,0,6098,6099, +7,10,0,0,6099,6100,7,11,0,0,6100,6101,7,6,0,0,6101,244,1,0,0,0,6102,6103, +7,1,0,0,6103,6104,7,10,0,0,6104,6105,7,17,0,0,6105,6106,7,10,0,0,6106,6107, +7,7,0,0,6107,6108,7,4,0,0,6108,246,1,0,0,0,6109,6110,7,1,0,0,6110,6111,7, +10,0,0,6111,6112,7,7,0,0,6112,6113,7,0,0,0,6113,6114,7,3,0,0,6114,6115,7, +18,0,0,6115,248,1,0,0,0,6116,6117,7,1,0,0,6117,6118,7,10,0,0,6118,6119,7, +7,0,0,6119,6120,7,0,0,0,6120,6121,7,3,0,0,6121,6122,7,18,0,0,6122,6123,5, +95,0,0,6123,6124,7,9,0,0,6124,6125,7,2,0,0,6125,6126,7,12,0,0,6126,6127, +7,1,0,0,6127,6128,7,11,0,0,6128,6129,7,6,0,0,6129,250,1,0,0,0,6130,6131, +7,1,0,0,6131,6132,7,10,0,0,6132,6133,7,7,0,0,6133,6134,7,0,0,0,6134,6135, +7,3,0,0,6135,6136,7,18,0,0,6136,6137,5,95,0,0,6137,6138,7,9,0,0,6138,6139, +7,2,0,0,6139,6140,7,12,0,0,6140,6141,7,1,0,0,6141,6142,7,11,0,0,6142,6143, +7,6,0,0,6143,6144,5,95,0,0,6144,6145,7,10,0,0,6145,6146,7,7,0,0,6146,6147, +7,16,0,0,6147,6148,7,10,0,0,6148,6149,7,7,0,0,6149,6150,7,10,0,0,6150,6151, +7,4,0,0,6151,6152,7,18,0,0,6152,252,1,0,0,0,6153,6154,7,1,0,0,6154,6155, +7,10,0,0,6155,6156,7,7,0,0,6156,6157,7,0,0,0,6157,6158,7,3,0,0,6158,6159, +7,18,0,0,6159,6160,5,95,0,0,6160,6161,7,9,0,0,6161,6162,7,2,0,0,6162,6163, +7,12,0,0,6163,6164,7,1,0,0,6164,6165,7,11,0,0,6165,6166,7,6,0,0,6166,6167, +5,95,0,0,6167,6168,7,7,0,0,6168,6169,7,0,0,0,6169,6170,7,7,0,0,6170,254, +1,0,0,0,6171,6172,7,1,0,0,6172,6173,7,10,0,0,6173,6174,7,7,0,0,6174,6175, +7,0,0,0,6175,6176,7,3,0,0,6176,6177,7,18,0,0,6177,6178,5,95,0,0,6178,6179, +7,16,0,0,6179,6180,7,11,0,0,6180,6181,7,2,0,0,6181,6182,7,0,0,0,6182,6183, +7,4,0,0,6183,256,1,0,0,0,6184,6185,7,1,0,0,6185,6186,7,10,0,0,6186,6187, +7,7,0,0,6187,6188,7,0,0,0,6188,6189,7,3,0,0,6189,6190,7,18,0,0,6190,6191, +5,95,0,0,6191,6192,7,16,0,0,6192,6193,7,11,0,0,6193,6194,7,2,0,0,6194,6195, +7,0,0,0,6195,6196,7,4,0,0,6196,6197,5,95,0,0,6197,6198,7,10,0,0,6198,6199, +7,7,0,0,6199,6200,7,16,0,0,6200,6201,7,10,0,0,6201,6202,7,7,0,0,6202,6203, +7,10,0,0,6203,6204,7,4,0,0,6204,6205,7,18,0,0,6205,258,1,0,0,0,6206,6207, +7,1,0,0,6207,6208,7,10,0,0,6208,6209,7,7,0,0,6209,6210,7,0,0,0,6210,6211, +7,3,0,0,6211,6212,7,18,0,0,6212,6213,5,95,0,0,6213,6214,7,16,0,0,6214,6215, +7,11,0,0,6215,6216,7,2,0,0,6216,6217,7,0,0,0,6217,6218,7,4,0,0,6218,6219, +5,95,0,0,6219,6220,7,7,0,0,6220,6221,7,0,0,0,6221,6222,7,7,0,0,6222,260, +1,0,0,0,6223,6224,7,1,0,0,6224,6225,7,10,0,0,6225,6226,7,7,0,0,6226,6227, +7,0,0,0,6227,6228,7,3,0,0,6228,6229,7,18,0,0,6229,6230,5,95,0,0,6230,6231, +7,10,0,0,6231,6232,7,7,0,0,6232,6233,7,4,0,0,6233,6234,7,6,0,0,6234,6235, +7,17,0,0,6235,6236,7,6,0,0,6236,6237,7,3,0,0,6237,262,1,0,0,0,6238,6239, +7,1,0,0,6239,6240,7,10,0,0,6240,6241,7,7,0,0,6241,6242,7,9,0,0,6242,6243, +5,95,0,0,6243,6244,7,0,0,0,6244,6245,7,22,0,0,6245,6246,7,0,0,0,6246,6247, +7,3,0,0,6247,6248,7,6,0,0,6248,264,1,0,0,0,6249,6250,7,1,0,0,6250,6251,7, +10,0,0,6251,6252,7,7,0,0,6252,6253,7,9,0,0,6253,6254,7,10,0,0,6254,6255, +7,7,0,0,6255,6256,7,17,0,0,6256,266,1,0,0,0,6257,6258,7,1,0,0,6258,6259, +7,10,0,0,6259,6260,7,7,0,0,6260,6261,5,95,0,0,6261,6262,7,4,0,0,6262,6263, +7,2,0,0,6263,6264,5,95,0,0,6264,6265,7,7,0,0,6265,6266,7,12,0,0,6266,6267, +7,14,0,0,6267,268,1,0,0,0,6268,6269,7,1,0,0,6269,6270,7,10,0,0,6270,6271, +7,4,0,0,6271,6272,7,0,0,0,6272,6273,7,7,0,0,6273,6274,7,9,0,0,6274,270,1, +0,0,0,6275,6276,7,1,0,0,6276,6277,7,10,0,0,6277,6278,7,4,0,0,6278,6279,7, +14,0,0,6279,6280,7,0,0,0,6280,6281,7,15,0,0,6281,6282,5,95,0,0,6282,6283, +7,0,0,0,6283,6284,7,7,0,0,6284,6285,7,9,0,0,6285,272,1,0,0,0,6286,6287,7, +1,0,0,6287,6288,7,10,0,0,6288,6289,7,4,0,0,6289,6290,7,14,0,0,6290,6291, +7,0,0,0,6291,6292,7,15,0,0,6292,274,1,0,0,0,6293,6294,7,1,0,0,6294,6295, +7,10,0,0,6295,6296,7,4,0,0,6296,6297,7,14,0,0,6297,6298,7,0,0,0,6298,6299, +7,15,0,0,6299,6300,7,5,0,0,6300,276,1,0,0,0,6301,6302,7,1,0,0,6302,6303, +7,10,0,0,6303,6304,7,4,0,0,6304,6305,7,14,0,0,6305,6306,7,0,0,0,6306,6307, +7,15,0,0,6307,6308,5,95,0,0,6308,6309,7,4,0,0,6309,6310,7,3,0,0,6310,6311, +7,6,0,0,6311,6312,7,6,0,0,6312,278,1,0,0,0,6313,6314,7,1,0,0,6314,6315,7, +10,0,0,6315,6316,7,4,0,0,6316,6317,7,5,0,0,6317,280,1,0,0,0,6318,6319,7, +1,0,0,6319,6320,7,11,0,0,6320,6321,7,0,0,0,6321,6322,7,7,0,0,6322,6323,7, +21,0,0,6323,6324,7,5,0,0,6324,282,1,0,0,0,6325,6326,7,1,0,0,6326,6327,7, +11,0,0,6327,6328,7,2,0,0,6328,6329,7,1,0,0,6329,284,1,0,0,0,6330,6331,7, +1,0,0,6331,6332,7,11,0,0,6332,6333,7,2,0,0,6333,6334,7,8,0,0,6334,6335,7, +21,0,0,6335,286,1,0,0,0,6336,6337,7,1,0,0,6337,6338,7,11,0,0,6338,6339,7, +2,0,0,6339,6340,7,8,0,0,6340,6341,7,21,0,0,6341,6342,5,95,0,0,6342,6343, +7,3,0,0,6343,6344,7,0,0,0,6344,6345,7,7,0,0,6345,6346,7,17,0,0,6346,6347, +7,6,0,0,6347,288,1,0,0,0,6348,6349,7,1,0,0,6349,6350,7,11,0,0,6350,6351, +7,2,0,0,6351,6352,7,8,0,0,6352,6353,7,21,0,0,6353,6354,7,5,0,0,6354,290, +1,0,0,0,6355,6356,7,1,0,0,6356,6357,7,11,0,0,6357,6358,7,2,0,0,6358,6359, +7,8,0,0,6359,6360,7,21,0,0,6360,6361,7,5,0,0,6361,6362,7,10,0,0,6362,6363, +7,23,0,0,6363,6364,7,6,0,0,6364,292,1,0,0,0,6365,6366,7,1,0,0,6366,6367, +7,2,0,0,6367,6368,7,9,0,0,6368,6369,7,18,0,0,6369,294,1,0,0,0,6370,6371, +7,1,0,0,6371,6372,7,2,0,0,6372,6373,7,2,0,0,6373,6374,7,11,0,0,6374,6375, +7,6,0,0,6375,6376,7,0,0,0,6376,6377,7,7,0,0,6377,296,1,0,0,0,6378,6379,7, +1,0,0,6379,6380,7,2,0,0,6380,6381,7,4,0,0,6381,6382,7,19,0,0,6382,298,1, +0,0,0,6383,6384,7,1,0,0,6384,6385,7,2,0,0,6385,6386,7,12,0,0,6386,6387,7, +7,0,0,6387,6388,7,9,0,0,6388,300,1,0,0,0,6389,6390,7,1,0,0,6390,6391,7,3, +0,0,6391,6392,7,0,0,0,6392,6393,7,7,0,0,6393,6394,7,8,0,0,6394,6395,7,19, +0,0,6395,302,1,0,0,0,6396,6397,7,1,0,0,6397,6398,7,3,0,0,6398,6399,7,6,0, +0,6399,6400,7,0,0,0,6400,6401,7,9,0,0,6401,6402,7,4,0,0,6402,6403,7,19,0, +0,6403,304,1,0,0,0,6404,6405,7,1,0,0,6405,6406,7,3,0,0,6406,6407,7,2,0,0, +6407,6408,7,0,0,0,6408,6409,7,9,0,0,6409,6410,7,8,0,0,6410,6411,7,0,0,0, +6411,6412,7,5,0,0,6412,6413,7,4,0,0,6413,306,1,0,0,0,6414,6415,7,1,0,0,6415, +6416,7,5,0,0,6416,6417,7,2,0,0,6417,6418,7,7,0,0,6418,308,1,0,0,0,6419,6420, +7,1,0,0,6420,6421,7,12,0,0,6421,6422,7,16,0,0,6422,6423,7,16,0,0,6423,6424, +7,6,0,0,6424,6425,7,3,0,0,6425,310,1,0,0,0,6426,6427,7,1,0,0,6427,6428,7, +12,0,0,6428,6429,7,16,0,0,6429,6430,7,16,0,0,6430,6431,7,6,0,0,6431,6432, +7,3,0,0,6432,6433,5,95,0,0,6433,6434,7,8,0,0,6434,6435,7,0,0,0,6435,6436, +7,8,0,0,6436,6437,7,19,0,0,6437,6438,7,6,0,0,6438,312,1,0,0,0,6439,6440, +7,1,0,0,6440,6441,7,12,0,0,6441,6442,7,16,0,0,6442,6443,7,16,0,0,6443,6444, +7,6,0,0,6444,6445,7,3,0,0,6445,6446,5,95,0,0,6446,6447,7,15,0,0,6447,6448, +7,2,0,0,6448,6449,7,2,0,0,6449,6450,7,11,0,0,6450,314,1,0,0,0,6451,6452, +7,1,0,0,6452,6453,7,12,0,0,6453,6454,7,10,0,0,6454,6455,7,11,0,0,6455,6456, +7,9,0,0,6456,316,1,0,0,0,6457,6458,7,1,0,0,6458,6459,7,12,0,0,6459,6460, +7,11,0,0,6460,6461,7,21,0,0,6461,318,1,0,0,0,6462,6463,7,1,0,0,6463,6464, +7,18,0,0,6464,320,1,0,0,0,6465,6466,7,1,0,0,6466,6467,7,18,0,0,6467,6468, +7,15,0,0,6468,6469,7,0,0,0,6469,6470,7,5,0,0,6470,6471,7,5,0,0,6471,6472, +5,95,0,0,6472,6473,7,3,0,0,6473,6474,7,6,0,0,6474,6475,7,8,0,0,6475,6476, +7,12,0,0,6476,6477,7,3,0,0,6477,6478,7,5,0,0,6478,6479,7,10,0,0,6479,6480, +7,13,0,0,6480,6481,7,6,0,0,6481,6482,5,95,0,0,6482,6483,7,8,0,0,6483,6484, +7,19,0,0,6484,6485,7,6,0,0,6485,6486,7,8,0,0,6486,6487,7,21,0,0,6487,322, +1,0,0,0,6488,6489,7,1,0,0,6489,6490,7,18,0,0,6490,6491,7,15,0,0,6491,6492, +7,0,0,0,6492,6493,7,5,0,0,6493,6494,7,5,0,0,6494,6495,5,95,0,0,6495,6496, +7,12,0,0,6496,6497,7,20,0,0,6497,6498,7,13,0,0,6498,6499,7,8,0,0,6499,324, +1,0,0,0,6500,6501,7,1,0,0,6501,6502,7,18,0,0,6502,6503,7,4,0,0,6503,6504, +7,6,0,0,6504,326,1,0,0,0,6505,6506,7,1,0,0,6506,6507,7,18,0,0,6507,6508, +7,4,0,0,6508,6509,7,6,0,0,6509,6510,7,5,0,0,6510,328,1,0,0,0,6511,6512,7, +1,0,0,6512,6513,7,18,0,0,6513,6514,7,4,0,0,6514,6515,7,6,0,0,6515,6516,7, +2,0,0,6516,6517,7,3,0,0,6517,6518,7,9,0,0,6518,6519,7,6,0,0,6519,6520,7, +3,0,0,6520,6521,7,14,0,0,6521,6522,7,0,0,0,6522,6523,7,3,0,0,6523,6524,7, +21,0,0,6524,330,1,0,0,0,6525,6526,7,8,0,0,6526,6527,7,0,0,0,6527,6528,7, +8,0,0,6528,6529,7,19,0,0,6529,6530,7,6,0,0,6530,332,1,0,0,0,6531,6532,7, +8,0,0,6532,6533,7,0,0,0,6533,6534,7,8,0,0,6534,6535,7,19,0,0,6535,6536,7, +6,0,0,6536,6537,5,95,0,0,6537,6538,7,8,0,0,6538,6539,7,1,0,0,6539,334,1, +0,0,0,6540,6541,7,8,0,0,6541,6542,7,0,0,0,6542,6543,7,8,0,0,6543,6544,7, +19,0,0,6544,6545,7,6,0,0,6545,6546,5,95,0,0,6546,6547,7,10,0,0,6547,6548, +7,7,0,0,6548,6549,7,5,0,0,6549,6550,7,4,0,0,6550,6551,7,0,0,0,6551,6552, +7,7,0,0,6552,6553,7,8,0,0,6553,6554,7,6,0,0,6554,6555,7,5,0,0,6555,336,1, +0,0,0,6556,6557,7,8,0,0,6557,6558,7,0,0,0,6558,6559,7,8,0,0,6559,6560,7, +19,0,0,6560,6561,7,6,0,0,6561,6562,5,95,0,0,6562,6563,7,4,0,0,6563,6564, +7,6,0,0,6564,6565,7,14,0,0,6565,6566,7,15,0,0,6566,6567,5,95,0,0,6567,6568, +7,4,0,0,6568,6569,7,0,0,0,6569,6570,7,1,0,0,6570,6571,7,11,0,0,6571,6572, +7,6,0,0,6572,338,1,0,0,0,6573,6574,7,8,0,0,6574,6575,7,0,0,0,6575,6576,7, +8,0,0,6576,6577,7,19,0,0,6577,6578,7,10,0,0,6578,6579,7,7,0,0,6579,6580, +7,17,0,0,6580,340,1,0,0,0,6581,6582,7,8,0,0,6582,6583,7,0,0,0,6583,6584, +7,11,0,0,6584,6585,7,8,0,0,6585,6586,7,12,0,0,6586,6587,7,11,0,0,6587,6588, +7,0,0,0,6588,6589,7,4,0,0,6589,6590,7,6,0,0,6590,6591,7,9,0,0,6591,342,1, +0,0,0,6592,6593,7,8,0,0,6593,6594,7,0,0,0,6594,6595,7,11,0,0,6595,6596,7, +11,0,0,6596,6597,7,1,0,0,6597,6598,7,0,0,0,6598,6599,7,8,0,0,6599,6600,7, +21,0,0,6600,344,1,0,0,0,6601,6602,7,8,0,0,6602,6603,7,0,0,0,6603,6604,7, +11,0,0,6604,6605,7,11,0,0,6605,346,1,0,0,0,6606,6607,7,8,0,0,6607,6608,7, +0,0,0,6608,6609,7,7,0,0,6609,6610,7,8,0,0,6610,6611,7,6,0,0,6611,6612,7, +11,0,0,6612,348,1,0,0,0,6613,6614,7,8,0,0,6614,6615,7,0,0,0,6615,6616,7, +7,0,0,6616,6617,7,2,0,0,6617,6618,7,7,0,0,6618,6619,7,10,0,0,6619,6620,7, +8,0,0,6620,6621,7,0,0,0,6621,6622,7,11,0,0,6622,350,1,0,0,0,6623,6624,7, +8,0,0,6624,6625,7,0,0,0,6625,6626,7,15,0,0,6626,6627,7,0,0,0,6627,6628,7, +8,0,0,6628,6629,7,10,0,0,6629,6630,7,4,0,0,6630,6631,7,18,0,0,6631,352,1, +0,0,0,6632,6633,7,8,0,0,6633,6634,7,0,0,0,6634,6635,7,15,0,0,6635,6636,7, +4,0,0,6636,6637,7,10,0,0,6637,6638,7,2,0,0,6638,6639,7,7,0,0,6639,354,1, +0,0,0,6640,6641,7,8,0,0,6641,6642,7,0,0,0,6642,6643,7,3,0,0,6643,6644,7, +9,0,0,6644,6645,7,10,0,0,6645,6646,7,7,0,0,6646,6647,7,0,0,0,6647,6648,7, +11,0,0,6648,6649,7,10,0,0,6649,6650,7,4,0,0,6650,6651,7,18,0,0,6651,356, +1,0,0,0,6652,6653,7,8,0,0,6653,6654,7,0,0,0,6654,6655,7,5,0,0,6655,6656, +7,8,0,0,6656,6657,7,0,0,0,6657,6658,7,9,0,0,6658,6659,7,6,0,0,6659,358,1, +0,0,0,6660,6661,7,8,0,0,6661,6662,7,0,0,0,6662,6663,7,5,0,0,6663,6664,7, +6,0,0,6664,360,1,0,0,0,6665,6666,7,8,0,0,6666,6667,7,0,0,0,6667,6668,7,5, +0,0,6668,6669,7,4,0,0,6669,362,1,0,0,0,6670,6671,7,8,0,0,6671,6672,7,0,0, +0,6672,6673,7,5,0,0,6673,6674,7,6,0,0,6674,6675,5,45,0,0,6675,6676,7,5,0, +0,6676,6677,7,6,0,0,6677,6678,7,7,0,0,6678,6679,7,5,0,0,6679,6680,7,10,0, +0,6680,6681,7,4,0,0,6681,6682,7,10,0,0,6682,6683,7,13,0,0,6683,6684,7,6, +0,0,6684,364,1,0,0,0,6685,6686,7,8,0,0,6686,6687,7,0,0,0,6687,6688,7,4,0, +0,6688,6689,7,6,0,0,6689,6690,7,17,0,0,6690,6691,7,2,0,0,6691,6692,7,3,0, +0,6692,6693,7,18,0,0,6693,366,1,0,0,0,6694,6695,7,8,0,0,6695,6696,7,9,0, +0,6696,6697,7,1,0,0,6697,6698,5,36,0,0,6698,6699,7,9,0,0,6699,6700,7,6,0, +0,6700,6701,7,16,0,0,6701,6702,7,0,0,0,6702,6703,7,12,0,0,6703,6704,7,11, +0,0,6704,6705,7,4,0,0,6705,368,1,0,0,0,6706,6707,7,8,0,0,6707,6708,7,6,0, +0,6708,6709,7,10,0,0,6709,6710,7,11,0,0,6710,370,1,0,0,0,6711,6712,7,8,0, +0,6712,6713,7,6,0,0,6713,6714,7,11,0,0,6714,6715,7,11,0,0,6715,6716,5,95, +0,0,6716,6717,7,16,0,0,6717,6718,7,11,0,0,6718,6719,7,0,0,0,6719,6720,7, +5,0,0,6720,6721,7,19,0,0,6721,6722,5,95,0,0,6722,6723,7,8,0,0,6723,6724, +7,0,0,0,6724,6725,7,8,0,0,6725,6726,7,19,0,0,6726,6727,7,6,0,0,6727,372, +1,0,0,0,6728,6729,7,8,0,0,6729,6730,7,6,0,0,6730,6731,7,3,0,0,6731,6732, +7,4,0,0,6732,6733,7,10,0,0,6733,6734,7,16,0,0,6734,6735,7,10,0,0,6735,6736, +7,8,0,0,6736,6737,7,0,0,0,6737,6738,7,4,0,0,6738,6739,7,6,0,0,6739,374,1, +0,0,0,6740,6741,7,8,0,0,6741,6742,7,16,0,0,6742,6743,7,10,0,0,6743,6744, +7,11,0,0,6744,6745,7,6,0,0,6745,376,1,0,0,0,6746,6747,7,8,0,0,6747,6748, +7,19,0,0,6748,6749,7,0,0,0,6749,6750,7,10,0,0,6750,6751,7,7,0,0,6751,6752, +7,6,0,0,6752,6753,7,9,0,0,6753,378,1,0,0,0,6754,6755,7,8,0,0,6755,6756,7, +19,0,0,6756,6757,7,0,0,0,6757,6758,7,7,0,0,6758,6759,7,17,0,0,6759,6760, +7,6,0,0,6760,380,1,0,0,0,6761,6762,7,8,0,0,6762,6763,7,19,0,0,6763,6764, +7,0,0,0,6764,6765,7,7,0,0,6765,6766,7,17,0,0,6766,6767,7,6,0,0,6767,6768, +7,4,0,0,6768,6769,7,3,0,0,6769,6770,7,0,0,0,6770,6771,7,8,0,0,6771,6772, +7,21,0,0,6772,6773,7,10,0,0,6773,6774,7,7,0,0,6774,6775,7,17,0,0,6775,382, +1,0,0,0,6776,6777,7,8,0,0,6777,6778,7,19,0,0,6778,6779,7,0,0,0,6779,6780, +7,7,0,0,6780,6781,7,17,0,0,6781,6782,7,6,0,0,6782,6783,5,95,0,0,6783,6784, +7,9,0,0,6784,6785,7,12,0,0,6785,6786,7,15,0,0,6786,6787,7,21,0,0,6787,6788, +7,6,0,0,6788,6789,7,18,0,0,6789,6790,5,95,0,0,6790,6791,7,6,0,0,6791,6792, +7,3,0,0,6792,6793,7,3,0,0,6793,6794,7,2,0,0,6794,6795,7,3,0,0,6795,6796, +5,95,0,0,6796,6797,7,10,0,0,6797,6798,7,7,0,0,6798,6799,7,9,0,0,6799,6800, +7,6,0,0,6800,6801,7,25,0,0,6801,384,1,0,0,0,6802,6803,7,8,0,0,6803,6804, +7,19,0,0,6804,6805,7,0,0,0,6805,6806,7,3,0,0,6806,6807,7,0,0,0,6807,6808, +7,8,0,0,6808,6809,7,4,0,0,6809,6810,7,6,0,0,6810,6811,7,3,0,0,6811,386,1, +0,0,0,6812,6813,7,8,0,0,6813,6814,7,19,0,0,6814,6815,7,0,0,0,6815,6816,7, +3,0,0,6816,6817,7,0,0,0,6817,6818,7,8,0,0,6818,6819,7,4,0,0,6819,6820,7, +6,0,0,6820,6821,7,3,0,0,6821,6822,7,5,0,0,6822,388,1,0,0,0,6823,6824,7,8, +0,0,6824,6825,7,19,0,0,6825,6826,7,0,0,0,6826,6827,7,3,0,0,6827,6828,7,0, +0,0,6828,6829,7,8,0,0,6829,6830,7,4,0,0,6830,6831,7,6,0,0,6831,6832,7,3, +0,0,6832,6833,7,5,0,0,6833,6834,7,6,0,0,6834,6835,7,4,0,0,6835,390,1,0,0, +0,6836,6837,7,8,0,0,6837,6838,7,19,0,0,6838,6839,7,0,0,0,6839,6840,7,3,0, +0,6840,392,1,0,0,0,6841,6842,7,8,0,0,6842,6843,7,19,0,0,6843,6844,7,0,0, +0,6844,6845,7,3,0,0,6845,6846,5,95,0,0,6846,6847,7,8,0,0,6847,6848,7,5,0, +0,6848,394,1,0,0,0,6849,6850,7,8,0,0,6850,6851,7,19,0,0,6851,6852,7,0,0, +0,6852,6853,7,3,0,0,6853,6854,7,4,0,0,6854,6855,7,2,0,0,6855,6856,7,3,0, +0,6856,6857,7,2,0,0,6857,6858,7,22,0,0,6858,6859,7,10,0,0,6859,6860,7,9, +0,0,6860,396,1,0,0,0,6861,6862,7,8,0,0,6862,6863,7,19,0,0,6863,6864,7,6, +0,0,6864,6865,7,8,0,0,6865,6866,7,21,0,0,6866,6867,5,95,0,0,6867,6868,7, +0,0,0,6868,6869,7,8,0,0,6869,6870,7,11,0,0,6870,6871,5,95,0,0,6871,6872, +7,3,0,0,6872,6873,7,6,0,0,6873,6874,7,22,0,0,6874,6875,7,3,0,0,6875,6876, +7,10,0,0,6876,6877,7,4,0,0,6877,6878,7,6,0,0,6878,398,1,0,0,0,6879,6880, +7,8,0,0,6880,6881,7,19,0,0,6881,6882,7,6,0,0,6882,6883,7,8,0,0,6883,6884, +7,21,0,0,6884,400,1,0,0,0,6885,6886,7,8,0,0,6886,6887,7,19,0,0,6887,6888, +7,6,0,0,6888,6889,7,8,0,0,6889,6890,7,21,0,0,6890,6891,7,15,0,0,6891,6892, +7,2,0,0,6892,6893,7,10,0,0,6893,6894,7,7,0,0,6894,6895,7,4,0,0,6895,402, +1,0,0,0,6896,6897,7,8,0,0,6897,6898,7,19,0,0,6898,6899,7,10,0,0,6899,6900, +7,11,0,0,6900,6901,7,9,0,0,6901,404,1,0,0,0,6902,6903,7,8,0,0,6903,6904, +7,19,0,0,6904,6905,7,2,0,0,6905,6906,7,2,0,0,6906,6907,7,5,0,0,6907,6908, +7,6,0,0,6908,406,1,0,0,0,6909,6910,7,8,0,0,6910,6911,7,19,0,0,6911,6912, +7,3,0,0,6912,408,1,0,0,0,6913,6914,7,8,0,0,6914,6915,7,19,0,0,6915,6916, +7,12,0,0,6916,6917,7,7,0,0,6917,6918,7,21,0,0,6918,410,1,0,0,0,6919,6920, +7,8,0,0,6920,6921,7,11,0,0,6921,6922,7,0,0,0,6922,6923,7,5,0,0,6923,6924, +7,5,0,0,6924,412,1,0,0,0,6925,6926,7,8,0,0,6926,6927,7,11,0,0,6927,6928, +7,0,0,0,6928,6929,7,5,0,0,6929,6930,7,5,0,0,6930,6931,7,10,0,0,6931,6932, +7,16,0,0,6932,6933,7,10,0,0,6933,6934,7,8,0,0,6934,6935,7,0,0,0,6935,6936, +7,4,0,0,6936,6937,7,10,0,0,6937,6938,7,2,0,0,6938,6939,7,7,0,0,6939,414, +1,0,0,0,6940,6941,7,8,0,0,6941,6942,7,11,0,0,6942,6943,7,0,0,0,6943,6944, +7,5,0,0,6944,6945,7,5,0,0,6945,6946,7,10,0,0,6946,6947,7,16,0,0,6947,6948, +7,10,0,0,6948,6949,7,6,0,0,6949,6950,7,3,0,0,6950,416,1,0,0,0,6951,6952, +7,8,0,0,6952,6953,7,11,0,0,6953,6954,7,0,0,0,6954,6955,7,12,0,0,6955,6956, +7,5,0,0,6956,6957,7,6,0,0,6957,418,1,0,0,0,6958,6959,7,8,0,0,6959,6960,7, +11,0,0,6960,6961,7,6,0,0,6961,6962,7,0,0,0,6962,6963,7,7,0,0,6963,420,1, +0,0,0,6964,6965,7,8,0,0,6965,6966,7,11,0,0,6966,6967,7,6,0,0,6967,6968,7, +0,0,0,6968,6969,7,7,0,0,6969,6970,7,12,0,0,6970,6971,7,15,0,0,6971,422,1, +0,0,0,6972,6973,7,8,0,0,6973,6974,7,11,0,0,6974,6975,7,6,0,0,6975,6976,7, +0,0,0,6976,6977,7,3,0,0,6977,424,1,0,0,0,6978,6979,7,8,0,0,6979,426,1,0, +0,0,6980,6981,7,8,0,0,6981,6982,7,11,0,0,6982,6983,7,10,0,0,6983,6984,7, +6,0,0,6984,6985,7,7,0,0,6985,6986,7,4,0,0,6986,428,1,0,0,0,6987,6988,7,8, +0,0,6988,6989,7,11,0,0,6989,6990,7,2,0,0,6990,6991,7,1,0,0,6991,430,1,0, +0,0,6992,6993,7,8,0,0,6993,6994,7,11,0,0,6994,6995,7,2,0,0,6995,6996,7,7, +0,0,6996,6997,7,6,0,0,6997,432,1,0,0,0,6998,6999,7,8,0,0,6999,7000,7,11, +0,0,7000,7001,7,2,0,0,7001,7002,7,5,0,0,7002,7003,7,6,0,0,7003,7004,5,95, +0,0,7004,7005,7,8,0,0,7005,7006,7,0,0,0,7006,7007,7,8,0,0,7007,7008,7,19, +0,0,7008,7009,7,6,0,0,7009,7010,7,9,0,0,7010,7011,5,95,0,0,7011,7012,7,2, +0,0,7012,7013,7,15,0,0,7013,7014,7,6,0,0,7014,7015,7,7,0,0,7015,7016,5,95, +0,0,7016,7017,7,8,0,0,7017,7018,7,12,0,0,7018,7019,7,3,0,0,7019,7020,7,5, +0,0,7020,7021,7,2,0,0,7021,7022,7,3,0,0,7022,7023,7,5,0,0,7023,434,1,0,0, +0,7024,7025,7,8,0,0,7025,7026,7,11,0,0,7026,7027,7,2,0,0,7027,7028,7,5,0, +0,7028,7029,7,6,0,0,7029,436,1,0,0,0,7030,7031,7,8,0,0,7031,7032,7,11,0, +0,7032,7033,7,12,0,0,7033,7034,7,5,0,0,7034,7035,7,4,0,0,7035,7036,7,6,0, +0,7036,7037,7,3,0,0,7037,7038,5,95,0,0,7038,7039,7,1,0,0,7039,7040,7,18, +0,0,7040,7041,5,95,0,0,7041,7042,7,3,0,0,7042,7043,7,2,0,0,7043,7044,7,22, +0,0,7044,7045,7,10,0,0,7045,7046,7,9,0,0,7046,438,1,0,0,0,7047,7048,7,8, +0,0,7048,7049,7,11,0,0,7049,7050,7,12,0,0,7050,7051,7,5,0,0,7051,7052,7, +4,0,0,7052,7053,7,6,0,0,7053,7054,7,3,0,0,7054,440,1,0,0,0,7055,7056,7,8, +0,0,7056,7057,7,11,0,0,7057,7058,7,12,0,0,7058,7059,7,5,0,0,7059,7060,7, +4,0,0,7060,7061,7,6,0,0,7061,7062,7,3,0,0,7062,7063,5,95,0,0,7063,7064,7, +9,0,0,7064,7065,7,6,0,0,7065,7066,7,4,0,0,7066,7067,7,0,0,0,7067,7068,7, +10,0,0,7068,7069,7,11,0,0,7069,7070,7,5,0,0,7070,442,1,0,0,0,7071,7072,7, +8,0,0,7072,7073,7,11,0,0,7073,7074,7,12,0,0,7074,7075,7,5,0,0,7075,7076, +7,4,0,0,7076,7077,7,6,0,0,7077,7078,7,3,0,0,7078,7079,5,95,0,0,7079,7080, +7,9,0,0,7080,7081,7,10,0,0,7081,7082,7,5,0,0,7082,7083,7,4,0,0,7083,7084, +7,0,0,0,7084,7085,7,7,0,0,7085,7086,7,8,0,0,7086,7087,7,6,0,0,7087,444,1, +0,0,0,7088,7089,7,8,0,0,7089,7090,7,11,0,0,7090,7091,7,12,0,0,7091,7092, +7,5,0,0,7092,7093,7,4,0,0,7093,7094,7,6,0,0,7094,7095,7,3,0,0,7095,7096, +5,95,0,0,7096,7097,7,10,0,0,7097,7098,7,9,0,0,7098,446,1,0,0,0,7099,7100, +7,8,0,0,7100,7101,7,11,0,0,7101,7102,7,12,0,0,7102,7103,7,5,0,0,7103,7104, +7,4,0,0,7104,7105,7,6,0,0,7105,7106,7,3,0,0,7106,7107,7,10,0,0,7107,7108, +7,7,0,0,7108,7109,7,17,0,0,7109,448,1,0,0,0,7110,7111,7,8,0,0,7111,7112, +7,11,0,0,7112,7113,7,12,0,0,7113,7114,7,5,0,0,7114,7115,7,4,0,0,7115,7116, +7,6,0,0,7116,7117,7,3,0,0,7117,7118,7,10,0,0,7118,7119,7,7,0,0,7119,7120, +7,17,0,0,7120,7121,5,95,0,0,7121,7122,7,16,0,0,7122,7123,7,0,0,0,7123,7124, +7,8,0,0,7124,7125,7,4,0,0,7125,7126,7,2,0,0,7126,7127,7,3,0,0,7127,450,1, +0,0,0,7128,7129,7,8,0,0,7129,7130,7,11,0,0,7130,7131,7,12,0,0,7131,7132, +7,5,0,0,7132,7133,7,4,0,0,7133,7134,7,6,0,0,7134,7135,7,3,0,0,7135,7136, +5,95,0,0,7136,7137,7,15,0,0,7137,7138,7,3,0,0,7138,7139,7,2,0,0,7139,7140, +7,1,0,0,7140,7141,7,0,0,0,7141,7142,7,1,0,0,7142,7143,7,10,0,0,7143,7144, +7,11,0,0,7144,7145,7,10,0,0,7145,7146,7,4,0,0,7146,7147,7,18,0,0,7147,452, +1,0,0,0,7148,7149,7,8,0,0,7149,7150,7,11,0,0,7150,7151,7,12,0,0,7151,7152, +7,5,0,0,7152,7153,7,4,0,0,7153,7154,7,6,0,0,7154,7155,7,3,0,0,7155,7156, +5,95,0,0,7156,7157,7,5,0,0,7157,7158,7,6,0,0,7158,7159,7,4,0,0,7159,454, +1,0,0,0,7160,7161,7,8,0,0,7161,7162,7,2,0,0,7162,7163,7,0,0,0,7163,7164, +7,11,0,0,7164,7165,7,6,0,0,7165,7166,7,5,0,0,7166,7167,7,8,0,0,7167,7168, +7,6,0,0,7168,456,1,0,0,0,7169,7170,7,8,0,0,7170,7171,7,2,0,0,7171,7172,7, +0,0,0,7172,7173,7,11,0,0,7173,7174,7,6,0,0,7174,7175,7,5,0,0,7175,7176,7, +8,0,0,7176,7177,7,6,0,0,7177,7178,5,95,0,0,7178,7179,7,5,0,0,7179,7180,7, +24,0,0,7180,458,1,0,0,0,7181,7182,7,8,0,0,7182,7183,7,2,0,0,7183,7184,7, +0,0,0,7184,7185,7,3,0,0,7185,7186,7,5,0,0,7186,7187,7,6,0,0,7187,460,1,0, +0,0,7188,7189,7,8,0,0,7189,7190,7,2,0,0,7190,7191,5,95,0,0,7191,7192,7,0, +0,0,7192,7193,7,12,0,0,7193,7194,7,4,0,0,7194,7195,7,19,0,0,7195,7196,5, +95,0,0,7196,7197,7,10,0,0,7197,7198,7,7,0,0,7198,7199,7,9,0,0,7199,462,1, +0,0,0,7200,7201,7,8,0,0,7201,7202,7,2,0,0,7202,7203,7,11,0,0,7203,7204,7, +9,0,0,7204,464,1,0,0,0,7205,7206,7,8,0,0,7206,7207,7,2,0,0,7207,7208,7,11, +0,0,7208,7209,7,11,0,0,7209,7210,7,6,0,0,7210,7211,7,8,0,0,7211,7212,7,4, +0,0,7212,466,1,0,0,0,7213,7214,7,8,0,0,7214,7215,7,2,0,0,7215,7216,7,11, +0,0,7216,7217,7,11,0,0,7217,7218,7,6,0,0,7218,7219,7,8,0,0,7219,7220,7,4, +0,0,7220,7221,7,10,0,0,7221,7222,7,2,0,0,7222,7223,7,7,0,0,7223,468,1,0, +0,0,7224,7225,7,8,0,0,7225,7226,7,2,0,0,7226,7227,7,11,0,0,7227,7228,7,12, +0,0,7228,7229,7,14,0,0,7229,7230,7,7,0,0,7230,7231,7,0,0,0,7231,7232,7,3, +0,0,7232,470,1,0,0,0,7233,7234,7,8,0,0,7234,7235,7,2,0,0,7235,7236,7,11, +0,0,7236,7237,7,12,0,0,7237,7238,7,14,0,0,7238,7239,7,7,0,0,7239,7240,5, +95,0,0,7240,7241,7,0,0,0,7241,7242,7,12,0,0,7242,7243,7,4,0,0,7243,7244, +7,19,0,0,7244,7245,5,95,0,0,7245,7246,7,10,0,0,7246,7247,7,7,0,0,7247,7248, +7,9,0,0,7248,7249,7,10,0,0,7249,7250,7,8,0,0,7250,7251,7,0,0,0,7251,7252, +7,4,0,0,7252,7253,7,2,0,0,7253,7254,7,3,0,0,7254,472,1,0,0,0,7255,7256,7, +8,0,0,7256,7257,7,2,0,0,7257,7258,7,11,0,0,7258,7259,7,12,0,0,7259,7260, +7,14,0,0,7260,7261,7,7,0,0,7261,474,1,0,0,0,7262,7263,7,8,0,0,7263,7264, +7,2,0,0,7264,7265,7,11,0,0,7265,7266,7,12,0,0,7266,7267,7,14,0,0,7267,7268, +7,7,0,0,7268,7269,7,5,0,0,7269,476,1,0,0,0,7270,7271,7,8,0,0,7271,7272,7, +2,0,0,7272,7273,7,11,0,0,7273,7274,7,12,0,0,7274,7275,7,14,0,0,7275,7276, +7,7,0,0,7276,7277,5,95,0,0,7277,7278,7,5,0,0,7278,7279,7,4,0,0,7279,7280, +7,0,0,0,7280,7281,7,4,0,0,7281,7282,7,5,0,0,7282,478,1,0,0,0,7283,7284,7, +8,0,0,7284,7285,7,2,0,0,7285,7286,7,11,0,0,7286,7287,7,12,0,0,7287,7288, +7,14,0,0,7288,7289,7,7,0,0,7289,7290,5,95,0,0,7290,7291,7,13,0,0,7291,7292, +7,0,0,0,7292,7293,7,11,0,0,7293,7294,7,12,0,0,7294,7295,7,6,0,0,7295,480, +1,0,0,0,7296,7297,7,8,0,0,7297,7298,7,2,0,0,7298,7299,7,14,0,0,7299,7300, +7,14,0,0,7300,7301,7,6,0,0,7301,7302,7,7,0,0,7302,7303,7,4,0,0,7303,482, +1,0,0,0,7304,7305,7,8,0,0,7305,7306,7,2,0,0,7306,7307,7,14,0,0,7307,7308, +7,14,0,0,7308,7309,7,10,0,0,7309,7310,7,4,0,0,7310,484,1,0,0,0,7311,7312, +7,8,0,0,7312,7313,7,2,0,0,7313,7314,7,14,0,0,7314,7315,7,14,0,0,7315,7316, +7,10,0,0,7316,7317,7,4,0,0,7317,7318,7,4,0,0,7318,7319,7,6,0,0,7319,7320, +7,9,0,0,7320,486,1,0,0,0,7321,7322,7,8,0,0,7322,7323,7,2,0,0,7323,7324,7, +14,0,0,7324,7325,7,14,0,0,7325,7326,7,2,0,0,7326,7327,7,7,0,0,7327,488,1, +0,0,0,7328,7329,7,8,0,0,7329,7330,7,2,0,0,7330,7331,7,14,0,0,7331,7332,7, +14,0,0,7332,7333,7,2,0,0,7333,7334,7,7,0,0,7334,7335,5,95,0,0,7335,7336, +7,9,0,0,7336,7337,7,0,0,0,7337,7338,7,4,0,0,7338,7339,7,0,0,0,7339,490,1, +0,0,0,7340,7341,7,8,0,0,7341,7342,7,2,0,0,7342,7343,7,14,0,0,7343,7344,7, +15,0,0,7344,7345,7,0,0,0,7345,7346,7,8,0,0,7346,7347,7,4,0,0,7347,492,1, +0,0,0,7348,7349,7,8,0,0,7349,7350,7,2,0,0,7350,7351,7,14,0,0,7351,7352,7, +15,0,0,7352,7353,7,0,0,0,7353,7354,7,4,0,0,7354,7355,7,10,0,0,7355,7356, +7,1,0,0,7356,7357,7,11,0,0,7357,7358,7,6,0,0,7358,494,1,0,0,0,7359,7360, +7,8,0,0,7360,7361,7,2,0,0,7361,7362,7,14,0,0,7362,7363,7,15,0,0,7363,7364, +7,0,0,0,7364,7365,7,4,0,0,7365,7366,7,10,0,0,7366,7367,7,1,0,0,7367,7368, +7,10,0,0,7368,7369,7,11,0,0,7369,7370,7,10,0,0,7370,7371,7,4,0,0,7371,7372, +7,18,0,0,7372,496,1,0,0,0,7373,7374,7,8,0,0,7374,7375,7,2,0,0,7375,7376, +7,14,0,0,7376,7377,7,15,0,0,7377,7378,7,10,0,0,7378,7379,7,11,0,0,7379,7380, +7,6,0,0,7380,498,1,0,0,0,7381,7382,7,8,0,0,7382,7383,7,2,0,0,7383,7384,7, +14,0,0,7384,7385,7,15,0,0,7385,7386,7,11,0,0,7386,7387,7,6,0,0,7387,7388, +7,4,0,0,7388,7389,7,6,0,0,7389,500,1,0,0,0,7390,7391,7,8,0,0,7391,7392,7, +2,0,0,7392,7393,7,14,0,0,7393,7394,7,15,0,0,7394,7395,7,11,0,0,7395,7396, +7,10,0,0,7396,7397,7,0,0,0,7397,7398,7,7,0,0,7398,7399,7,8,0,0,7399,7400, +7,6,0,0,7400,502,1,0,0,0,7401,7402,7,8,0,0,7402,7403,7,2,0,0,7403,7404,7, +14,0,0,7404,7405,7,15,0,0,7405,7406,7,2,0,0,7406,7407,7,7,0,0,7407,7408, +7,6,0,0,7408,7409,7,7,0,0,7409,7410,7,4,0,0,7410,504,1,0,0,0,7411,7412,7, +8,0,0,7412,7413,7,2,0,0,7413,7414,7,14,0,0,7414,7415,7,15,0,0,7415,7416, +7,2,0,0,7416,7417,7,7,0,0,7417,7418,7,6,0,0,7418,7419,7,7,0,0,7419,7420, +7,4,0,0,7420,7421,7,5,0,0,7421,506,1,0,0,0,7422,7423,7,8,0,0,7423,7424,7, +2,0,0,7424,7425,7,14,0,0,7425,7426,7,15,0,0,7426,7427,7,2,0,0,7427,7428, +7,5,0,0,7428,7429,7,6,0,0,7429,508,1,0,0,0,7430,7431,7,8,0,0,7431,7432,7, +2,0,0,7432,7433,7,14,0,0,7433,7434,7,15,0,0,7434,7435,7,2,0,0,7435,7436, +7,5,0,0,7436,7437,7,10,0,0,7437,7438,7,4,0,0,7438,7439,7,6,0,0,7439,510, +1,0,0,0,7440,7441,7,8,0,0,7441,7442,7,2,0,0,7442,7443,7,14,0,0,7443,7444, +7,15,0,0,7444,7445,7,2,0,0,7445,7446,7,5,0,0,7446,7447,7,10,0,0,7447,7448, +7,4,0,0,7448,7449,7,6,0,0,7449,7450,5,95,0,0,7450,7451,7,11,0,0,7451,7452, +7,10,0,0,7452,7453,7,14,0,0,7453,7454,7,10,0,0,7454,7455,7,4,0,0,7455,512, +1,0,0,0,7456,7457,7,8,0,0,7457,7458,7,2,0,0,7458,7459,7,14,0,0,7459,7460, +7,15,0,0,7460,7461,7,2,0,0,7461,7462,7,12,0,0,7462,7463,7,7,0,0,7463,7464, +7,9,0,0,7464,514,1,0,0,0,7465,7466,7,8,0,0,7466,7467,7,2,0,0,7467,7468,7, +14,0,0,7468,7469,7,15,0,0,7469,7470,7,3,0,0,7470,7471,7,6,0,0,7471,7472, +7,5,0,0,7472,7473,7,5,0,0,7473,516,1,0,0,0,7474,7475,7,8,0,0,7475,7476,7, +2,0,0,7476,7477,7,14,0,0,7477,7478,7,15,0,0,7478,7479,7,3,0,0,7479,7480, +7,6,0,0,7480,7481,7,5,0,0,7481,7482,7,5,0,0,7482,7483,7,10,0,0,7483,7484, +7,2,0,0,7484,7485,7,7,0,0,7485,518,1,0,0,0,7486,7487,7,8,0,0,7487,7488,7, +2,0,0,7488,7489,7,14,0,0,7489,7490,7,15,0,0,7490,7491,7,12,0,0,7491,7492, +7,4,0,0,7492,7493,7,6,0,0,7493,520,1,0,0,0,7494,7495,7,8,0,0,7495,7496,7, +2,0,0,7496,7497,7,7,0,0,7497,7498,7,8,0,0,7498,7499,7,0,0,0,7499,7500,7, +4,0,0,7500,522,1,0,0,0,7501,7502,7,8,0,0,7502,7503,7,2,0,0,7503,7504,7,7, +0,0,7504,7505,5,95,0,0,7505,7506,7,9,0,0,7506,7507,7,1,0,0,7507,7508,7,10, +0,0,7508,7509,7,9,0,0,7509,7510,5,95,0,0,7510,7511,7,4,0,0,7511,7512,7,2, +0,0,7512,7513,5,95,0,0,7513,7514,7,10,0,0,7514,7515,7,9,0,0,7515,524,1,0, +0,0,7516,7517,7,8,0,0,7517,7518,7,2,0,0,7518,7519,7,7,0,0,7519,7520,7,9, +0,0,7520,7521,7,10,0,0,7521,7522,7,4,0,0,7522,7523,7,10,0,0,7523,7524,7, +2,0,0,7524,7525,7,7,0,0,7525,7526,7,0,0,0,7526,7527,7,11,0,0,7527,526,1, +0,0,0,7528,7529,7,8,0,0,7529,7530,7,2,0,0,7530,7531,7,7,0,0,7531,7532,7, +9,0,0,7532,7533,7,10,0,0,7533,7534,7,4,0,0,7534,7535,7,10,0,0,7535,7536, +7,2,0,0,7536,7537,7,7,0,0,7537,528,1,0,0,0,7538,7539,7,8,0,0,7539,7540,7, +2,0,0,7540,7541,7,7,0,0,7541,7542,7,16,0,0,7542,7543,7,10,0,0,7543,7544, +7,3,0,0,7544,7545,7,14,0,0,7545,530,1,0,0,0,7546,7547,7,8,0,0,7547,7548, +7,2,0,0,7548,7549,7,7,0,0,7549,7550,7,16,0,0,7550,7551,7,2,0,0,7551,7552, +7,3,0,0,7552,7553,7,14,0,0,7553,7554,7,10,0,0,7554,7555,7,7,0,0,7555,7556, +7,17,0,0,7556,532,1,0,0,0,7557,7558,7,8,0,0,7558,7559,7,2,0,0,7559,7560, +7,7,0,0,7560,7561,5,95,0,0,7561,7562,7,17,0,0,7562,7563,7,12,0,0,7563,7564, +7,10,0,0,7564,7565,7,9,0,0,7565,7566,5,95,0,0,7566,7567,7,4,0,0,7567,7568, +7,2,0,0,7568,7569,5,95,0,0,7569,7570,7,10,0,0,7570,7571,7,9,0,0,7571,534, +1,0,0,0,7572,7573,7,8,0,0,7573,7574,7,2,0,0,7574,7575,7,7,0,0,7575,7576, +5,95,0,0,7576,7577,7,10,0,0,7577,7578,7,9,0,0,7578,536,1,0,0,0,7579,7580, +7,8,0,0,7580,7581,7,2,0,0,7581,7582,7,7,0,0,7582,7583,5,95,0,0,7583,7584, +7,7,0,0,7584,7585,7,0,0,0,7585,7586,7,14,0,0,7586,7587,7,6,0,0,7587,7588, +5,95,0,0,7588,7589,7,4,0,0,7589,7590,7,2,0,0,7590,7591,5,95,0,0,7591,7592, +7,10,0,0,7592,7593,7,9,0,0,7593,538,1,0,0,0,7594,7595,7,8,0,0,7595,7596, +7,2,0,0,7596,7597,7,7,0,0,7597,7598,7,7,0,0,7598,7599,7,6,0,0,7599,7600, +7,8,0,0,7600,7601,7,4,0,0,7601,7602,5,95,0,0,7602,7603,7,1,0,0,7603,7604, +7,18,0,0,7604,7605,5,95,0,0,7605,7606,7,8,0,0,7606,7607,7,1,0,0,7607,7608, +5,95,0,0,7608,7609,7,22,0,0,7609,7610,7,19,0,0,7610,7611,7,3,0,0,7611,7612, +5,95,0,0,7612,7613,7,2,0,0,7613,7614,7,7,0,0,7614,7615,7,11,0,0,7615,7616, +7,18,0,0,7616,540,1,0,0,0,7617,7618,7,8,0,0,7618,7619,7,2,0,0,7619,7620, +7,7,0,0,7620,7621,7,7,0,0,7621,7622,7,6,0,0,7622,7623,7,8,0,0,7623,7624, +7,4,0,0,7624,7625,5,95,0,0,7625,7626,7,1,0,0,7626,7627,7,18,0,0,7627,7628, +5,95,0,0,7628,7629,7,8,0,0,7629,7630,7,2,0,0,7630,7631,7,14,0,0,7631,7632, +7,1,0,0,7632,7633,7,10,0,0,7633,7634,7,7,0,0,7634,7635,7,6,0,0,7635,7636, +5,95,0,0,7636,7637,7,5,0,0,7637,7638,7,22,0,0,7638,542,1,0,0,0,7639,7640, +7,8,0,0,7640,7641,7,2,0,0,7641,7642,7,7,0,0,7642,7643,7,7,0,0,7643,7644, +7,6,0,0,7644,7645,7,8,0,0,7645,7646,7,4,0,0,7646,7647,5,95,0,0,7647,7648, +7,1,0,0,7648,7649,7,18,0,0,7649,7650,5,95,0,0,7650,7651,7,8,0,0,7651,7652, +7,2,0,0,7652,7653,7,5,0,0,7653,7654,7,4,0,0,7654,7655,5,95,0,0,7655,7656, +7,1,0,0,7656,7657,7,0,0,0,7657,7658,7,5,0,0,7658,7659,7,6,0,0,7659,7660, +7,9,0,0,7660,544,1,0,0,0,7661,7662,7,8,0,0,7662,7663,7,2,0,0,7663,7664,7, +7,0,0,7664,7665,7,7,0,0,7665,7666,7,6,0,0,7666,7667,7,8,0,0,7667,7668,7, +4,0,0,7668,7669,5,95,0,0,7669,7670,7,1,0,0,7670,7671,7,18,0,0,7671,7672, +5,95,0,0,7672,7673,7,6,0,0,7673,7674,7,11,0,0,7674,7675,7,10,0,0,7675,7676, +7,14,0,0,7676,7677,5,95,0,0,7677,7678,7,9,0,0,7678,7679,7,12,0,0,7679,7680, +7,15,0,0,7680,7681,7,5,0,0,7681,546,1,0,0,0,7682,7683,7,8,0,0,7683,7684, +7,2,0,0,7684,7685,7,7,0,0,7685,7686,7,7,0,0,7686,7687,7,6,0,0,7687,7688, +7,8,0,0,7688,7689,7,4,0,0,7689,7690,5,95,0,0,7690,7691,7,1,0,0,7691,7692, +7,18,0,0,7692,7693,5,95,0,0,7693,7694,7,16,0,0,7694,7695,7,10,0,0,7695,7696, +7,11,0,0,7696,7697,7,4,0,0,7697,7698,7,6,0,0,7698,7699,7,3,0,0,7699,7700, +7,10,0,0,7700,7701,7,7,0,0,7701,7702,7,17,0,0,7702,548,1,0,0,0,7703,7704, +7,8,0,0,7704,7705,7,2,0,0,7705,7706,7,7,0,0,7706,7707,7,7,0,0,7707,7708, +7,6,0,0,7708,7709,7,8,0,0,7709,7710,7,4,0,0,7710,7711,5,95,0,0,7711,7712, +7,1,0,0,7712,7713,7,18,0,0,7713,7714,5,95,0,0,7714,7715,7,10,0,0,7715,7716, +7,5,0,0,7716,7717,7,8,0,0,7717,7718,7,18,0,0,7718,7719,7,8,0,0,7719,7720, +7,11,0,0,7720,7721,7,6,0,0,7721,550,1,0,0,0,7722,7723,7,8,0,0,7723,7724, +7,2,0,0,7724,7725,7,7,0,0,7725,7726,7,7,0,0,7726,7727,7,6,0,0,7727,7728, +7,8,0,0,7728,7729,7,4,0,0,7729,7730,5,95,0,0,7730,7731,7,1,0,0,7731,7732, +7,18,0,0,7732,7733,5,95,0,0,7733,7734,7,10,0,0,7734,7735,7,5,0,0,7735,7736, +7,11,0,0,7736,7737,7,6,0,0,7737,7738,7,0,0,0,7738,7739,7,16,0,0,7739,552, +1,0,0,0,7740,7741,7,8,0,0,7741,7742,7,2,0,0,7742,7743,7,7,0,0,7743,7744, +7,7,0,0,7744,7745,7,6,0,0,7745,7746,7,8,0,0,7746,7747,7,4,0,0,7747,7748, +5,95,0,0,7748,7749,7,1,0,0,7749,7750,7,18,0,0,7750,7751,5,95,0,0,7751,7752, +7,3,0,0,7752,7753,7,2,0,0,7753,7754,7,2,0,0,7754,7755,7,4,0,0,7755,554,1, +0,0,0,7756,7757,7,8,0,0,7757,7758,7,2,0,0,7758,7759,7,7,0,0,7759,7760,7, +7,0,0,7760,7761,7,6,0,0,7761,7762,7,8,0,0,7762,7763,7,4,0,0,7763,556,1,0, +0,0,7764,7765,7,8,0,0,7765,7766,7,2,0,0,7766,7767,7,7,0,0,7767,7768,7,7, +0,0,7768,7769,7,6,0,0,7769,7770,7,8,0,0,7770,7771,7,4,0,0,7771,7772,5,95, +0,0,7772,7773,7,4,0,0,7773,7774,7,10,0,0,7774,7775,7,14,0,0,7775,7776,7, +6,0,0,7776,558,1,0,0,0,7777,7778,7,8,0,0,7778,7779,7,2,0,0,7779,7780,7,7, +0,0,7780,7781,7,5,0,0,7781,7782,7,10,0,0,7782,7783,7,9,0,0,7783,7784,7,6, +0,0,7784,7785,7,3,0,0,7785,560,1,0,0,0,7786,7787,7,8,0,0,7787,7788,7,2,0, +0,7788,7789,7,7,0,0,7789,7790,7,5,0,0,7790,7791,7,10,0,0,7791,7792,7,5,0, +0,7792,7793,7,4,0,0,7793,7794,7,6,0,0,7794,7795,7,7,0,0,7795,7796,7,4,0, +0,7796,562,1,0,0,0,7797,7798,7,8,0,0,7798,7799,7,2,0,0,7799,7800,7,7,0,0, +7800,7801,7,5,0,0,7801,7802,7,4,0,0,7802,7803,7,0,0,0,7803,7804,7,7,0,0, +7804,7805,7,4,0,0,7805,564,1,0,0,0,7806,7807,7,8,0,0,7807,7808,7,2,0,0,7808, +7809,7,7,0,0,7809,7810,7,5,0,0,7810,7811,7,4,0,0,7811,566,1,0,0,0,7812,7813, +7,8,0,0,7813,7814,7,2,0,0,7814,7815,7,7,0,0,7815,7816,7,5,0,0,7816,7817, +7,4,0,0,7817,7818,7,3,0,0,7818,7819,7,0,0,0,7819,7820,7,10,0,0,7820,7821, +7,7,0,0,7821,7822,7,4,0,0,7822,568,1,0,0,0,7823,7824,7,8,0,0,7824,7825,7, +2,0,0,7825,7826,7,7,0,0,7826,7827,7,5,0,0,7827,7828,7,4,0,0,7828,7829,7, +3,0,0,7829,7830,7,0,0,0,7830,7831,7,10,0,0,7831,7832,7,7,0,0,7832,7833,7, +4,0,0,7833,7834,7,5,0,0,7834,570,1,0,0,0,7835,7836,7,8,0,0,7836,7837,7,2, +0,0,7837,7838,7,7,0,0,7838,7839,7,5,0,0,7839,7840,7,4,0,0,7840,7841,7,3, +0,0,7841,7842,7,12,0,0,7842,7843,7,8,0,0,7843,7844,7,4,0,0,7844,7845,7,2, +0,0,7845,7846,7,3,0,0,7846,572,1,0,0,0,7847,7848,7,8,0,0,7848,7849,7,2,0, +0,7849,7850,7,7,0,0,7850,7851,7,4,0,0,7851,7852,7,0,0,0,7852,7853,7,10,0, +0,7853,7854,7,7,0,0,7854,7855,7,6,0,0,7855,7856,7,3,0,0,7856,574,1,0,0,0, +7857,7858,7,8,0,0,7858,7859,7,2,0,0,7859,7860,7,7,0,0,7860,7861,7,4,0,0, +7861,7862,7,0,0,0,7862,7863,7,10,0,0,7863,7864,7,7,0,0,7864,7865,7,6,0,0, +7865,7866,7,3,0,0,7866,7867,7,5,0,0,7867,576,1,0,0,0,7868,7869,7,8,0,0,7869, +7870,7,2,0,0,7870,7871,7,7,0,0,7871,7872,7,4,0,0,7872,7873,7,0,0,0,7873, +7874,7,10,0,0,7874,7875,7,7,0,0,7875,7876,7,6,0,0,7876,7877,7,3,0,0,7877, +7878,7,5,0,0,7878,7879,5,95,0,0,7879,7880,7,9,0,0,7880,7881,7,6,0,0,7881, +7882,7,16,0,0,7882,7883,7,0,0,0,7883,7884,7,12,0,0,7884,7885,7,11,0,0,7885, +7886,7,4,0,0,7886,578,1,0,0,0,7887,7888,7,8,0,0,7888,7889,7,2,0,0,7889,7890, +7,7,0,0,7890,7891,7,4,0,0,7891,7892,7,0,0,0,7892,7893,7,10,0,0,7893,7894, +7,7,0,0,7894,7895,7,6,0,0,7895,7896,7,3,0,0,7896,7897,5,95,0,0,7897,7898, +7,9,0,0,7898,7899,7,0,0,0,7899,7900,7,4,0,0,7900,7901,7,0,0,0,7901,580,1, +0,0,0,7902,7903,7,8,0,0,7903,7904,7,2,0,0,7904,7905,7,7,0,0,7905,7906,7, +4,0,0,7906,7907,7,0,0,0,7907,7908,7,10,0,0,7908,7909,7,7,0,0,7909,7910,7, +6,0,0,7910,7911,7,3,0,0,7911,7912,5,95,0,0,7912,7913,7,14,0,0,7913,7914, +7,0,0,0,7914,7915,7,15,0,0,7915,582,1,0,0,0,7916,7917,7,8,0,0,7917,7918, +7,2,0,0,7918,7919,7,7,0,0,7919,7920,7,4,0,0,7920,7921,7,6,0,0,7921,7922, +7,7,0,0,7922,7923,7,4,0,0,7923,584,1,0,0,0,7924,7925,7,8,0,0,7925,7926,7, +2,0,0,7926,7927,7,7,0,0,7927,7928,7,4,0,0,7928,7929,7,6,0,0,7929,7930,7, +7,0,0,7930,7931,7,4,0,0,7931,7932,7,5,0,0,7932,586,1,0,0,0,7933,7934,7,8, +0,0,7934,7935,7,2,0,0,7935,7936,7,7,0,0,7936,7937,7,4,0,0,7937,7938,7,6, +0,0,7938,7939,7,25,0,0,7939,7940,7,4,0,0,7940,588,1,0,0,0,7941,7942,7,8, +0,0,7942,7943,7,2,0,0,7943,7944,7,7,0,0,7944,7945,7,4,0,0,7945,7946,7,10, +0,0,7946,7947,7,7,0,0,7947,7948,7,12,0,0,7948,7949,7,6,0,0,7949,590,1,0, +0,0,7950,7951,7,8,0,0,7951,7952,7,2,0,0,7952,7953,7,7,0,0,7953,7954,7,4, +0,0,7954,7955,7,3,0,0,7955,7956,7,2,0,0,7956,7957,7,11,0,0,7957,7958,7,16, +0,0,7958,7959,7,10,0,0,7959,7960,7,11,0,0,7960,7961,7,6,0,0,7961,592,1,0, +0,0,7962,7963,7,8,0,0,7963,7964,7,2,0,0,7964,7965,7,7,0,0,7965,7966,5,95, +0,0,7966,7967,7,12,0,0,7967,7968,7,10,0,0,7968,7969,7,9,0,0,7969,7970,5, +95,0,0,7970,7971,7,4,0,0,7971,7972,7,2,0,0,7972,7973,5,95,0,0,7973,7974, +7,10,0,0,7974,7975,7,9,0,0,7975,594,1,0,0,0,7976,7977,7,8,0,0,7977,7978, +7,2,0,0,7978,7979,7,7,0,0,7979,7980,7,13,0,0,7980,7981,7,6,0,0,7981,7982, +7,3,0,0,7982,7983,7,4,0,0,7983,596,1,0,0,0,7984,7985,7,8,0,0,7985,7986,7, +2,0,0,7986,7987,7,7,0,0,7987,7988,7,13,0,0,7988,7989,7,6,0,0,7989,7990,7, +3,0,0,7990,7991,7,5,0,0,7991,7992,7,10,0,0,7992,7993,7,2,0,0,7993,7994,7, +7,0,0,7994,598,1,0,0,0,7995,7996,7,8,0,0,7996,7997,7,2,0,0,7997,7998,7,2, +0,0,7998,7999,7,21,0,0,7999,8000,7,10,0,0,8000,8001,7,6,0,0,8001,600,1,0, +0,0,8002,8003,7,8,0,0,8003,8004,7,2,0,0,8004,8005,7,15,0,0,8005,8006,7,18, +0,0,8006,602,1,0,0,0,8007,8008,7,8,0,0,8008,8009,7,2,0,0,8009,8010,7,3,0, +0,8010,8011,7,3,0,0,8011,8012,5,95,0,0,8012,8013,7,21,0,0,8013,604,1,0,0, +0,8014,8015,7,8,0,0,8015,8016,7,2,0,0,8016,8017,7,3,0,0,8017,8018,7,3,0, +0,8018,8019,5,95,0,0,8019,8020,7,5,0,0,8020,606,1,0,0,0,8021,8022,7,8,0, +0,8022,8023,7,2,0,0,8023,8024,7,3,0,0,8024,8025,7,3,0,0,8025,8026,7,12,0, +0,8026,8027,7,15,0,0,8027,8028,7,4,0,0,8028,8029,7,10,0,0,8029,8030,7,2, +0,0,8030,8031,7,7,0,0,8031,608,1,0,0,0,8032,8033,7,8,0,0,8033,8034,7,2,0, +0,8034,8035,7,3,0,0,8035,8036,7,3,0,0,8036,8037,7,12,0,0,8037,8038,7,15, +0,0,8038,8039,7,4,0,0,8039,8040,5,95,0,0,8040,8041,7,25,0,0,8041,8042,7, +10,0,0,8042,8043,7,9,0,0,8043,8044,5,95,0,0,8044,8045,7,0,0,0,8045,8046, +7,11,0,0,8046,8047,7,11,0,0,8047,610,1,0,0,0,8048,8049,7,8,0,0,8049,8050, +7,2,0,0,8050,8051,7,3,0,0,8051,8052,7,3,0,0,8052,8053,7,12,0,0,8053,8054, +7,15,0,0,8054,8055,7,4,0,0,8055,8056,5,95,0,0,8056,8057,7,25,0,0,8057,8058, +7,10,0,0,8058,8059,7,9,0,0,8059,612,1,0,0,0,8060,8061,7,8,0,0,8061,8062, +7,2,0,0,8062,8063,7,5,0,0,8063,614,1,0,0,0,8064,8065,7,8,0,0,8065,8066,7, +2,0,0,8066,8067,7,5,0,0,8067,8068,7,19,0,0,8068,616,1,0,0,0,8069,8070,7, +8,0,0,8070,8071,7,2,0,0,8071,8072,7,5,0,0,8072,8073,7,4,0,0,8073,618,1,0, +0,0,8074,8075,7,8,0,0,8075,8076,7,2,0,0,8076,8077,7,5,0,0,8077,8078,7,4, +0,0,8078,8079,5,95,0,0,8079,8080,7,25,0,0,8080,8081,7,14,0,0,8081,8082,7, +11,0,0,8082,8083,5,95,0,0,8083,8084,7,24,0,0,8084,8085,7,12,0,0,8085,8086, +7,6,0,0,8086,8087,7,3,0,0,8087,8088,7,18,0,0,8088,8089,5,95,0,0,8089,8090, +7,3,0,0,8090,8091,7,6,0,0,8091,8092,7,22,0,0,8092,8093,7,3,0,0,8093,8094, +7,10,0,0,8094,8095,7,4,0,0,8095,8096,7,6,0,0,8096,620,1,0,0,0,8097,8098, +7,8,0,0,8098,8099,7,2,0,0,8099,8100,7,12,0,0,8100,8101,7,7,0,0,8101,8102, +7,4,0,0,8102,622,1,0,0,0,8103,8104,7,8,0,0,8104,8105,7,2,0,0,8105,8106,7, +12,0,0,8106,8107,7,7,0,0,8107,8108,7,4,0,0,8108,8109,7,6,0,0,8109,8110,7, +9,0,0,8110,624,1,0,0,0,8111,8112,7,8,0,0,8112,8113,7,2,0,0,8113,8114,7,13, +0,0,8114,8115,7,0,0,0,8115,8116,7,3,0,0,8116,8117,5,95,0,0,8117,8118,7,15, +0,0,8118,8119,7,2,0,0,8119,8120,7,15,0,0,8120,626,1,0,0,0,8121,8122,7,8, +0,0,8122,8123,7,2,0,0,8123,8124,7,13,0,0,8124,8125,7,0,0,0,8125,8126,7,3, +0,0,8126,8127,5,95,0,0,8127,8128,7,5,0,0,8128,8129,7,0,0,0,8129,8130,7,14, +0,0,8130,8131,7,15,0,0,8131,628,1,0,0,0,8132,8133,7,8,0,0,8133,8134,7,15, +0,0,8134,8135,7,12,0,0,8135,8136,5,95,0,0,8136,8137,7,8,0,0,8137,8138,7, +2,0,0,8138,8139,7,5,0,0,8139,8140,7,4,0,0,8140,8141,7,10,0,0,8141,8142,7, +7,0,0,8142,8143,7,17,0,0,8143,630,1,0,0,0,8144,8145,7,8,0,0,8145,8146,7, +15,0,0,8146,8147,7,12,0,0,8147,8148,5,95,0,0,8148,8149,7,15,0,0,8149,8150, +7,6,0,0,8150,8151,7,3,0,0,8151,8152,5,95,0,0,8152,8153,7,8,0,0,8153,8154, +7,0,0,0,8154,8155,7,11,0,0,8155,8156,7,11,0,0,8156,632,1,0,0,0,8157,8158, +7,8,0,0,8158,8159,7,15,0,0,8159,8160,7,12,0,0,8160,8161,5,95,0,0,8161,8162, +7,15,0,0,8162,8163,7,6,0,0,8163,8164,7,3,0,0,8164,8165,5,95,0,0,8165,8166, +7,5,0,0,8166,8167,7,6,0,0,8167,8168,7,5,0,0,8168,8169,7,5,0,0,8169,8170, +7,10,0,0,8170,8171,7,2,0,0,8171,8172,7,7,0,0,8172,634,1,0,0,0,8173,8174, +7,8,0,0,8174,8175,7,3,0,0,8175,8176,7,0,0,0,8176,8177,7,5,0,0,8177,8178, +7,19,0,0,8178,636,1,0,0,0,8179,8180,7,8,0,0,8180,8181,7,3,0,0,8181,8182, +7,6,0,0,8182,8183,7,0,0,0,8183,8184,7,4,0,0,8184,8185,7,6,0,0,8185,638,1, +0,0,0,8186,8187,7,8,0,0,8187,8188,7,3,0,0,8188,8189,7,6,0,0,8189,8190,7, +0,0,0,8190,8191,7,4,0,0,8191,8192,7,6,0,0,8192,8193,5,95,0,0,8193,8194,7, +16,0,0,8194,8195,7,10,0,0,8195,8196,7,11,0,0,8196,8197,7,6,0,0,8197,8198, +5,95,0,0,8198,8199,7,9,0,0,8199,8200,7,6,0,0,8200,8201,7,5,0,0,8201,8202, +7,4,0,0,8202,640,1,0,0,0,8203,8204,7,8,0,0,8204,8205,7,3,0,0,8205,8206,7, +6,0,0,8206,8207,7,0,0,0,8207,8208,7,4,0,0,8208,8209,7,6,0,0,8209,8210,5, +95,0,0,8210,8211,7,5,0,0,8211,8212,7,4,0,0,8212,8213,7,2,0,0,8213,8214,7, +3,0,0,8214,8215,7,6,0,0,8215,8216,7,9,0,0,8216,8217,5,95,0,0,8217,8218,7, +2,0,0,8218,8219,7,12,0,0,8219,8220,7,4,0,0,8220,8221,7,11,0,0,8221,8222, +7,10,0,0,8222,8223,7,7,0,0,8223,8224,7,6,0,0,8224,8225,7,5,0,0,8225,642, +1,0,0,0,8226,8227,7,8,0,0,8227,8228,7,3,0,0,8228,8229,7,6,0,0,8229,8230, +7,0,0,0,8230,8231,7,4,0,0,8231,8232,7,10,0,0,8232,8233,7,2,0,0,8233,8234, +7,7,0,0,8234,644,1,0,0,0,8235,8236,7,8,0,0,8236,8237,7,3,0,0,8237,8238,7, +6,0,0,8238,8239,7,9,0,0,8239,8240,7,6,0,0,8240,8241,7,7,0,0,8241,8242,7, +4,0,0,8242,8243,7,10,0,0,8243,8244,7,0,0,0,8244,8245,7,11,0,0,8245,646,1, +0,0,0,8246,8247,7,8,0,0,8247,8248,7,3,0,0,8248,8249,7,10,0,0,8249,8250,7, +4,0,0,8250,8251,7,10,0,0,8251,8252,7,8,0,0,8252,8253,7,0,0,0,8253,8254,7, +11,0,0,8254,648,1,0,0,0,8255,8256,7,8,0,0,8256,8257,7,3,0,0,8257,8258,7, +2,0,0,8258,8259,7,5,0,0,8259,8260,7,5,0,0,8260,650,1,0,0,0,8261,8262,7,8, +0,0,8262,8263,7,3,0,0,8263,8264,7,2,0,0,8264,8265,7,5,0,0,8265,8266,7,5, +0,0,8266,8267,7,6,0,0,8267,8268,7,9,0,0,8268,8269,7,10,0,0,8269,8270,7,4, +0,0,8270,8271,7,10,0,0,8271,8272,7,2,0,0,8272,8273,7,7,0,0,8273,652,1,0, +0,0,8274,8275,7,8,0,0,8275,8276,7,5,0,0,8276,8277,7,8,0,0,8277,8278,7,2, +0,0,8278,8279,7,7,0,0,8279,8280,7,13,0,0,8280,8281,7,6,0,0,8281,8282,7,3, +0,0,8282,8283,7,4,0,0,8283,654,1,0,0,0,8284,8285,7,8,0,0,8285,8286,7,5,0, +0,8286,8287,7,13,0,0,8287,656,1,0,0,0,8288,8289,7,8,0,0,8289,8290,7,12,0, +0,8290,8291,7,1,0,0,8291,8292,7,6,0,0,8292,8293,5,95,0,0,8293,8294,7,0,0, +0,8294,8295,7,20,0,0,8295,658,1,0,0,0,8296,8297,7,8,0,0,8297,8298,7,12,0, +0,8298,8299,7,1,0,0,8299,8300,7,6,0,0,8300,660,1,0,0,0,8301,8302,7,8,0,0, +8302,8303,7,12,0,0,8303,8304,7,1,0,0,8304,8305,7,6,0,0,8305,8306,5,95,0, +0,8306,8307,7,17,0,0,8307,8308,7,1,0,0,8308,662,1,0,0,0,8309,8310,7,8,0, +0,8310,8311,7,12,0,0,8311,8312,7,1,0,0,8312,8313,7,6,0,0,8313,8314,5,95, +0,0,8314,8315,7,5,0,0,8315,8316,7,20,0,0,8316,664,1,0,0,0,8317,8318,7,8, +0,0,8318,8319,7,12,0,0,8319,8320,7,14,0,0,8320,8321,7,6,0,0,8321,8322,5, +95,0,0,8322,8323,7,9,0,0,8323,8324,7,10,0,0,8324,8325,7,5,0,0,8325,8326, +7,4,0,0,8326,8327,7,14,0,0,8327,666,1,0,0,0,8328,8329,7,8,0,0,8329,8330, +7,12,0,0,8330,8331,7,3,0,0,8331,8332,7,3,0,0,8332,8333,7,6,0,0,8333,8334, +7,7,0,0,8334,8335,7,4,0,0,8335,668,1,0,0,0,8336,8337,7,8,0,0,8337,8338,7, +12,0,0,8338,8339,7,3,0,0,8339,8340,7,3,0,0,8340,8341,7,6,0,0,8341,8342,7, +7,0,0,8342,8343,7,4,0,0,8343,8344,5,95,0,0,8344,8345,7,9,0,0,8345,8346,7, +0,0,0,8346,8347,7,4,0,0,8347,8348,7,6,0,0,8348,670,1,0,0,0,8349,8350,7,8, +0,0,8350,8351,7,12,0,0,8351,8352,7,3,0,0,8352,8353,7,3,0,0,8353,8354,7,6, +0,0,8354,8355,7,7,0,0,8355,8356,7,4,0,0,8356,8357,5,95,0,0,8357,8358,7,5, +0,0,8358,8359,7,8,0,0,8359,8360,7,19,0,0,8360,8361,7,6,0,0,8361,8362,7,14, +0,0,8362,8363,7,0,0,0,8363,672,1,0,0,0,8364,8365,7,8,0,0,8365,8366,7,12, +0,0,8366,8367,7,3,0,0,8367,8368,7,3,0,0,8368,8369,7,6,0,0,8369,8370,7,7, +0,0,8370,8371,7,4,0,0,8371,8372,5,95,0,0,8372,8373,7,4,0,0,8373,8374,7,10, +0,0,8374,8375,7,14,0,0,8375,8376,7,6,0,0,8376,674,1,0,0,0,8377,8378,7,8, +0,0,8378,8379,7,12,0,0,8379,8380,7,3,0,0,8380,8381,7,3,0,0,8381,8382,7,6, +0,0,8382,8383,7,7,0,0,8383,8384,7,4,0,0,8384,8385,5,95,0,0,8385,8386,7,4, +0,0,8386,8387,7,10,0,0,8387,8388,7,14,0,0,8388,8389,7,6,0,0,8389,8390,7, +5,0,0,8390,8391,7,4,0,0,8391,8392,7,0,0,0,8392,8393,7,14,0,0,8393,8394,7, +15,0,0,8394,676,1,0,0,0,8395,8396,7,8,0,0,8396,8397,7,12,0,0,8397,8398,7, +3,0,0,8398,8399,7,3,0,0,8399,8400,7,6,0,0,8400,8401,7,7,0,0,8401,8402,7, +4,0,0,8402,8403,5,95,0,0,8403,8404,7,12,0,0,8404,8405,7,5,0,0,8405,8406, +7,6,0,0,8406,8407,7,3,0,0,8407,678,1,0,0,0,8408,8409,7,8,0,0,8409,8410,7, +12,0,0,8410,8411,7,3,0,0,8411,8412,7,3,0,0,8412,8413,7,6,0,0,8413,8414,7, +7,0,0,8414,8415,7,4,0,0,8415,8416,7,13,0,0,8416,680,1,0,0,0,8417,8418,7, +8,0,0,8418,8419,7,12,0,0,8419,8420,7,3,0,0,8420,8421,7,5,0,0,8421,8422,7, +2,0,0,8422,8423,7,3,0,0,8423,682,1,0,0,0,8424,8425,7,8,0,0,8425,8426,7,12, +0,0,8426,8427,7,3,0,0,8427,8428,7,5,0,0,8428,8429,7,2,0,0,8429,8430,7,3, +0,0,8430,8431,5,95,0,0,8431,8432,7,5,0,0,8432,8433,7,19,0,0,8433,8434,7, +0,0,0,8434,8435,7,3,0,0,8435,8436,7,10,0,0,8436,8437,7,7,0,0,8437,8438,7, +17,0,0,8438,8439,5,95,0,0,8439,8440,7,6,0,0,8440,8441,7,25,0,0,8441,8442, +7,0,0,0,8442,8443,7,8,0,0,8443,8444,7,4,0,0,8444,684,1,0,0,0,8445,8446,7, +8,0,0,8446,8447,7,12,0,0,8447,8448,7,3,0,0,8448,8449,7,5,0,0,8449,8450,7, +2,0,0,8450,8451,7,3,0,0,8451,8452,5,95,0,0,8452,8453,7,5,0,0,8453,8454,7, +15,0,0,8454,8455,7,6,0,0,8455,8456,7,8,0,0,8456,8457,7,10,0,0,8457,8458, +7,16,0,0,8458,8459,7,10,0,0,8459,8460,7,8,0,0,8460,8461,5,95,0,0,8461,8462, +7,5,0,0,8462,8463,7,6,0,0,8463,8464,7,17,0,0,8464,8465,7,14,0,0,8465,8466, +7,6,0,0,8466,8467,7,7,0,0,8467,8468,7,4,0,0,8468,686,1,0,0,0,8469,8470,7, +8,0,0,8470,8471,7,12,0,0,8471,8472,7,5,0,0,8472,8473,7,4,0,0,8473,8474,7, +2,0,0,8474,8475,7,14,0,0,8475,8476,7,9,0,0,8476,8477,7,0,0,0,8477,8478,7, +4,0,0,8478,8479,7,12,0,0,8479,8480,7,14,0,0,8480,688,1,0,0,0,8481,8482,7, +8,0,0,8482,8483,7,13,0,0,8483,690,1,0,0,0,8484,8485,7,8,0,0,8485,8486,7, +18,0,0,8486,8487,7,8,0,0,8487,8488,7,11,0,0,8488,8489,7,6,0,0,8489,692,1, +0,0,0,8490,8491,7,9,0,0,8491,8492,7,0,0,0,8492,8493,7,7,0,0,8493,8494,7, +17,0,0,8494,8495,7,11,0,0,8495,8496,7,10,0,0,8496,8497,7,7,0,0,8497,8498, +7,17,0,0,8498,694,1,0,0,0,8499,8500,7,9,0,0,8500,8501,7,0,0,0,8501,8502, +7,4,0,0,8502,8503,7,0,0,0,8503,8504,7,1,0,0,8504,8505,7,0,0,0,8505,8506, +7,5,0,0,8506,8507,7,6,0,0,8507,696,1,0,0,0,8508,8509,7,9,0,0,8509,8510,7, +0,0,0,8510,8511,7,4,0,0,8511,8512,7,0,0,0,8512,698,1,0,0,0,8513,8514,7,9, +0,0,8514,8515,7,0,0,0,8515,8516,7,4,0,0,8516,8517,7,0,0,0,8517,8518,7,16, +0,0,8518,8519,7,10,0,0,8519,8520,7,11,0,0,8520,8521,7,6,0,0,8521,700,1,0, +0,0,8522,8523,7,9,0,0,8523,8524,7,0,0,0,8524,8525,7,4,0,0,8525,8526,7,0, +0,0,8526,8527,7,16,0,0,8527,8528,7,10,0,0,8528,8529,7,11,0,0,8529,8530,7, +6,0,0,8530,8531,7,5,0,0,8531,702,1,0,0,0,8532,8533,7,9,0,0,8533,8534,7,0, +0,0,8534,8535,7,4,0,0,8535,8536,7,0,0,0,8536,8537,7,17,0,0,8537,8538,7,12, +0,0,8538,8539,7,0,0,0,8539,8540,7,3,0,0,8540,8541,7,9,0,0,8541,8542,7,8, +0,0,8542,8543,7,2,0,0,8543,8544,7,7,0,0,8544,8545,7,16,0,0,8545,8546,7,10, +0,0,8546,8547,7,17,0,0,8547,704,1,0,0,0,8548,8549,7,9,0,0,8549,8550,7,0, +0,0,8550,8551,7,4,0,0,8551,8552,7,0,0,0,8552,8553,7,14,0,0,8553,8554,7,2, +0,0,8554,8555,7,13,0,0,8555,8556,7,6,0,0,8556,8557,7,14,0,0,8557,8558,7, +6,0,0,8558,8559,7,7,0,0,8559,8560,7,4,0,0,8560,706,1,0,0,0,8561,8562,7,9, +0,0,8562,8563,7,0,0,0,8563,8564,7,4,0,0,8564,8565,7,0,0,0,8565,8566,7,2, +0,0,8566,8567,7,1,0,0,8567,8568,7,20,0,0,8568,8569,7,7,0,0,8569,8570,7,2, +0,0,8570,708,1,0,0,0,8571,8572,7,9,0,0,8572,8573,7,0,0,0,8573,8574,7,4,0, +0,8574,8575,7,0,0,0,8575,8576,7,2,0,0,8576,8577,7,1,0,0,8577,8578,7,20,0, +0,8578,8579,5,95,0,0,8579,8580,7,4,0,0,8580,8581,7,2,0,0,8581,8582,5,95, +0,0,8582,8583,7,14,0,0,8583,8584,7,0,0,0,8584,8585,7,4,0,0,8585,8586,5,95, +0,0,8586,8587,7,15,0,0,8587,8588,7,0,0,0,8588,8589,7,3,0,0,8589,8590,7,4, +0,0,8590,8591,7,10,0,0,8591,8592,7,4,0,0,8592,8593,7,10,0,0,8593,8594,7, +2,0,0,8594,8595,7,7,0,0,8595,710,1,0,0,0,8596,8597,7,9,0,0,8597,8598,7,0, +0,0,8598,8599,7,4,0,0,8599,8600,7,0,0,0,8600,8601,7,2,0,0,8601,8602,7,1, +0,0,8602,8603,7,20,0,0,8603,8604,5,95,0,0,8604,8605,7,4,0,0,8605,8606,7, +2,0,0,8606,8607,5,95,0,0,8607,8608,7,15,0,0,8608,8609,7,0,0,0,8609,8610, +7,3,0,0,8610,8611,7,4,0,0,8611,8612,7,10,0,0,8612,8613,7,4,0,0,8613,8614, +7,10,0,0,8614,8615,7,2,0,0,8615,8616,7,7,0,0,8616,712,1,0,0,0,8617,8618, +7,9,0,0,8618,8619,7,0,0,0,8619,8620,7,4,0,0,8620,8621,7,0,0,0,8621,8622, +7,15,0,0,8622,8623,7,12,0,0,8623,8624,7,14,0,0,8624,8625,7,15,0,0,8625,714, +1,0,0,0,8626,8627,7,9,0,0,8627,8628,7,0,0,0,8628,8629,7,4,0,0,8629,8630, +7,0,0,0,8630,8631,5,95,0,0,8631,8632,7,5,0,0,8632,8633,7,6,0,0,8633,8634, +7,8,0,0,8634,8635,7,12,0,0,8635,8636,7,3,0,0,8636,8637,7,10,0,0,8637,8638, +7,4,0,0,8638,8639,7,18,0,0,8639,8640,5,95,0,0,8640,8641,7,3,0,0,8641,8642, +7,6,0,0,8642,8643,7,22,0,0,8643,8644,7,3,0,0,8644,8645,7,10,0,0,8645,8646, +7,4,0,0,8646,8647,7,6,0,0,8647,8648,5,95,0,0,8648,8649,7,11,0,0,8649,8650, +7,10,0,0,8650,8651,7,14,0,0,8651,8652,7,10,0,0,8652,8653,7,4,0,0,8653,716, +1,0,0,0,8654,8655,7,9,0,0,8655,8656,7,0,0,0,8656,8657,7,4,0,0,8657,8658, +7,6,0,0,8658,718,1,0,0,0,8659,8660,7,9,0,0,8660,8661,7,0,0,0,8661,8662,7, +4,0,0,8662,8663,7,6,0,0,8663,8664,5,95,0,0,8664,8665,7,8,0,0,8665,8666,7, +0,0,0,8666,8667,7,8,0,0,8667,8668,7,19,0,0,8668,8669,7,6,0,0,8669,720,1, +0,0,0,8670,8671,7,9,0,0,8671,8672,7,0,0,0,8672,8673,7,4,0,0,8673,8674,7, +6,0,0,8674,8675,5,95,0,0,8675,8676,7,16,0,0,8676,8677,7,2,0,0,8677,8678, +7,3,0,0,8678,8679,7,14,0,0,8679,8680,7,0,0,0,8680,8681,7,4,0,0,8681,722, +1,0,0,0,8682,8683,7,9,0,0,8683,8684,7,0,0,0,8684,8685,7,4,0,0,8685,8686, +7,6,0,0,8686,8687,5,95,0,0,8687,8688,7,14,0,0,8688,8689,7,2,0,0,8689,8690, +7,9,0,0,8690,8691,7,6,0,0,8691,724,1,0,0,0,8692,8693,7,9,0,0,8693,8694,7, +0,0,0,8694,8695,7,18,0,0,8695,726,1,0,0,0,8696,8697,7,9,0,0,8697,8698,7, +0,0,0,8698,8699,7,18,0,0,8699,8700,7,5,0,0,8700,728,1,0,0,0,8701,8702,7, +9,0,0,8702,8703,7,0,0,0,8703,8704,7,18,0,0,8704,8705,5,95,0,0,8705,8706, +7,4,0,0,8706,8707,7,2,0,0,8707,8708,5,95,0,0,8708,8709,7,5,0,0,8709,8710, +7,6,0,0,8710,8711,7,8,0,0,8711,8712,7,2,0,0,8712,8713,7,7,0,0,8713,8714, +7,9,0,0,8714,730,1,0,0,0,8715,8716,7,9,0,0,8716,8717,7,1,0,0,8717,8718,7, +0,0,0,8718,732,1,0,0,0,8719,8720,7,9,0,0,8720,8721,7,1,0,0,8721,8722,7,0, +0,0,8722,8723,5,95,0,0,8723,8724,7,3,0,0,8724,8725,7,6,0,0,8725,8726,7,8, +0,0,8726,8727,7,18,0,0,8727,8728,7,8,0,0,8728,8729,7,11,0,0,8729,8730,7, +6,0,0,8730,8731,7,1,0,0,8731,8732,7,10,0,0,8732,8733,7,7,0,0,8733,734,1, +0,0,0,8734,8735,7,9,0,0,8735,8736,7,1,0,0,8736,8737,7,11,0,0,8737,8738,7, +10,0,0,8738,8739,7,7,0,0,8739,8740,7,21,0,0,8740,736,1,0,0,0,8741,8742,7, +9,0,0,8742,8743,7,1,0,0,8743,8744,7,14,0,0,8744,8745,7,5,0,0,8745,8746,5, +95,0,0,8746,8747,7,5,0,0,8747,8748,7,4,0,0,8748,8749,7,0,0,0,8749,8750,7, +4,0,0,8750,8751,7,5,0,0,8751,738,1,0,0,0,8752,8753,7,9,0,0,8753,8754,7,1, +0,0,8754,8755,5,95,0,0,8755,8756,7,3,0,0,8756,8757,7,2,0,0,8757,8758,7,11, +0,0,8758,8759,7,6,0,0,8759,8760,5,95,0,0,8760,8761,7,8,0,0,8761,8762,7,19, +0,0,8762,8763,7,0,0,0,8763,8764,7,7,0,0,8764,8765,7,17,0,0,8765,8766,7,6, +0,0,8766,740,1,0,0,0,8767,8768,7,9,0,0,8768,8769,7,1,0,0,8769,8770,7,4,0, +0,8770,8771,7,10,0,0,8771,8772,7,14,0,0,8772,8773,7,6,0,0,8773,8774,7,23, +0,0,8774,8775,7,2,0,0,8775,8776,7,7,0,0,8776,8777,7,6,0,0,8777,742,1,0,0, +0,8778,8779,7,9,0,0,8779,8780,7,1,0,0,8780,8781,5,95,0,0,8781,8782,7,12, +0,0,8782,8783,7,7,0,0,8783,8784,7,10,0,0,8784,8785,7,24,0,0,8785,8786,7, +12,0,0,8786,8787,7,6,0,0,8787,8788,5,95,0,0,8788,8789,7,7,0,0,8789,8790, +7,0,0,0,8790,8791,7,14,0,0,8791,8792,7,6,0,0,8792,744,1,0,0,0,8793,8794, +7,9,0,0,8794,8795,7,1,0,0,8795,8796,5,95,0,0,8796,8797,7,13,0,0,8797,8798, +7,6,0,0,8798,8799,7,3,0,0,8799,8800,7,5,0,0,8800,8801,7,10,0,0,8801,8802, +7,2,0,0,8802,8803,7,7,0,0,8803,746,1,0,0,0,8804,8805,7,9,0,0,8805,8806,7, +9,0,0,8806,8807,7,11,0,0,8807,748,1,0,0,0,8808,8809,7,9,0,0,8809,8810,7, +6,0,0,8810,8811,7,0,0,0,8811,8812,7,11,0,0,8812,8813,7,11,0,0,8813,8814, +7,2,0,0,8814,8815,7,8,0,0,8815,8816,7,0,0,0,8816,8817,7,4,0,0,8817,8818, +7,6,0,0,8818,750,1,0,0,0,8819,8820,7,9,0,0,8820,8821,7,6,0,0,8821,8822,7, +1,0,0,8822,8823,7,12,0,0,8823,8824,7,17,0,0,8824,752,1,0,0,0,8825,8826,7, +9,0,0,8826,8827,7,6,0,0,8827,8828,7,1,0,0,8828,8829,7,12,0,0,8829,8830,7, +17,0,0,8830,8831,7,17,0,0,8831,8832,7,6,0,0,8832,8833,7,3,0,0,8833,754,1, +0,0,0,8834,8835,7,9,0,0,8835,8836,7,6,0,0,8836,8837,7,8,0,0,8837,756,1,0, +0,0,8838,8839,7,9,0,0,8839,8840,7,6,0,0,8840,8841,7,8,0,0,8841,8842,7,10, +0,0,8842,8843,7,14,0,0,8843,8844,7,0,0,0,8844,8845,7,11,0,0,8845,758,1,0, +0,0,8846,8847,7,9,0,0,8847,8848,7,6,0,0,8848,8849,7,8,0,0,8849,8850,7,11, +0,0,8850,8851,7,0,0,0,8851,8852,7,3,0,0,8852,8853,7,6,0,0,8853,760,1,0,0, +0,8854,8855,7,9,0,0,8855,8856,7,6,0,0,8856,8857,7,8,0,0,8857,8858,7,2,0, +0,8858,8859,7,14,0,0,8859,8860,7,15,0,0,8860,8861,7,2,0,0,8861,8862,7,5, +0,0,8862,8863,7,6,0,0,8863,762,1,0,0,0,8864,8865,7,9,0,0,8865,8866,7,6,0, +0,8866,8867,7,8,0,0,8867,8868,7,2,0,0,8868,8869,7,3,0,0,8869,8870,7,3,0, +0,8870,8871,7,6,0,0,8871,8872,7,11,0,0,8872,8873,7,0,0,0,8873,8874,7,4,0, +0,8874,8875,7,6,0,0,8875,764,1,0,0,0,8876,8877,7,9,0,0,8877,8878,7,6,0,0, +8878,8879,7,8,0,0,8879,8880,7,3,0,0,8880,766,1,0,0,0,8881,8882,7,9,0,0,8882, +8883,7,6,0,0,8883,8884,7,8,0,0,8884,8885,7,3,0,0,8885,8886,7,6,0,0,8886, +8887,7,14,0,0,8887,8888,7,6,0,0,8888,8889,7,7,0,0,8889,8890,7,4,0,0,8890, +768,1,0,0,0,8891,8892,7,9,0,0,8892,8893,7,6,0,0,8893,8894,7,8,0,0,8894,8895, +7,3,0,0,8895,8896,7,18,0,0,8896,8897,7,15,0,0,8897,8898,7,4,0,0,8898,770, +1,0,0,0,8899,8900,7,9,0,0,8900,8901,7,6,0,0,8901,8902,7,9,0,0,8902,8903, +7,12,0,0,8903,8904,7,15,0,0,8904,8905,7,11,0,0,8905,8906,7,10,0,0,8906,8907, +7,8,0,0,8907,8908,7,0,0,0,8908,8909,7,4,0,0,8909,8910,7,6,0,0,8910,772,1, +0,0,0,8911,8912,7,9,0,0,8912,8913,7,6,0,0,8913,8914,7,16,0,0,8914,8915,7, +0,0,0,8915,8916,7,12,0,0,8916,8917,7,11,0,0,8917,8918,7,4,0,0,8918,774,1, +0,0,0,8919,8920,7,9,0,0,8920,8921,7,6,0,0,8921,8922,7,16,0,0,8922,8923,7, +0,0,0,8923,8924,7,12,0,0,8924,8925,7,11,0,0,8925,8926,7,4,0,0,8926,8927, +7,10,0,0,8927,8928,7,16,0,0,8928,776,1,0,0,0,8929,8930,7,9,0,0,8930,8931, +7,6,0,0,8931,8932,7,16,0,0,8932,8933,7,0,0,0,8933,8934,7,12,0,0,8934,8935, +7,11,0,0,8935,8936,7,4,0,0,8936,8937,7,5,0,0,8937,778,1,0,0,0,8938,8939, +7,9,0,0,8939,8940,7,6,0,0,8940,8941,7,16,0,0,8941,8942,7,0,0,0,8942,8943, +7,12,0,0,8943,8944,7,11,0,0,8944,8945,7,4,0,0,8945,8946,5,95,0,0,8946,8947, +7,8,0,0,8947,8948,7,2,0,0,8948,8949,7,11,0,0,8949,8950,7,11,0,0,8950,8951, +7,0,0,0,8951,8952,7,4,0,0,8952,8953,7,10,0,0,8953,8954,7,2,0,0,8954,8955, +7,7,0,0,8955,780,1,0,0,0,8956,8957,7,9,0,0,8957,8958,7,6,0,0,8958,8959,7, +16,0,0,8959,8960,7,0,0,0,8960,8961,7,12,0,0,8961,8962,7,11,0,0,8962,8963, +7,4,0,0,8963,8964,5,95,0,0,8964,8965,7,8,0,0,8965,8966,7,3,0,0,8966,8967, +7,6,0,0,8967,8968,7,9,0,0,8968,8969,7,6,0,0,8969,8970,7,7,0,0,8970,8971, +7,4,0,0,8971,8972,7,10,0,0,8972,8973,7,0,0,0,8973,8974,7,11,0,0,8974,782, +1,0,0,0,8975,8976,7,9,0,0,8976,8977,7,6,0,0,8977,8978,7,16,0,0,8978,8979, +7,6,0,0,8979,8980,7,3,0,0,8980,8981,7,3,0,0,8981,8982,7,0,0,0,8982,8983, +7,1,0,0,8983,8984,7,11,0,0,8984,8985,7,6,0,0,8985,784,1,0,0,0,8986,8987, +7,9,0,0,8987,8988,7,6,0,0,8988,8989,7,16,0,0,8989,8990,7,6,0,0,8990,8991, +7,3,0,0,8991,8992,7,3,0,0,8992,8993,7,6,0,0,8993,8994,7,9,0,0,8994,786,1, +0,0,0,8995,8996,7,9,0,0,8996,8997,7,6,0,0,8997,8998,7,16,0,0,8998,8999,7, +10,0,0,8999,9000,7,7,0,0,9000,9001,7,6,0,0,9001,9002,7,9,0,0,9002,788,1, +0,0,0,9003,9004,7,9,0,0,9004,9005,7,6,0,0,9005,9006,7,16,0,0,9006,9007,7, +10,0,0,9007,9008,7,7,0,0,9008,9009,7,6,0,0,9009,790,1,0,0,0,9010,9011,7, +9,0,0,9011,9012,7,6,0,0,9012,9013,7,16,0,0,9013,9014,7,10,0,0,9014,9015, +7,7,0,0,9015,9016,7,6,0,0,9016,9017,7,3,0,0,9017,792,1,0,0,0,9018,9019,7, +9,0,0,9019,9020,7,6,0,0,9020,9021,7,17,0,0,9021,9022,7,3,0,0,9022,9023,7, +6,0,0,9023,9024,7,6,0,0,9024,794,1,0,0,0,9025,9026,7,9,0,0,9026,9027,7,6, +0,0,9027,9028,7,11,0,0,9028,9029,7,0,0,0,9029,9030,7,18,0,0,9030,796,1,0, +0,0,9031,9032,7,9,0,0,9032,9033,7,6,0,0,9033,9034,7,11,0,0,9034,9035,7,6, +0,0,9035,9036,7,17,0,0,9036,9037,7,0,0,0,9037,9038,7,4,0,0,9038,9039,7,6, +0,0,9039,798,1,0,0,0,9040,9041,7,9,0,0,9041,9042,7,6,0,0,9042,9043,7,11, +0,0,9043,9044,7,6,0,0,9044,9045,7,4,0,0,9045,9046,7,6,0,0,9046,9047,5,95, +0,0,9047,9048,7,0,0,0,9048,9049,7,11,0,0,9049,9050,7,11,0,0,9050,800,1,0, +0,0,9051,9052,7,9,0,0,9052,9053,7,6,0,0,9053,9054,7,11,0,0,9054,9055,7,6, +0,0,9055,9056,7,4,0,0,9056,9057,7,6,0,0,9057,802,1,0,0,0,9058,9059,7,9,0, +0,9059,9060,7,6,0,0,9060,9061,7,11,0,0,9061,9062,7,6,0,0,9062,9063,7,4,0, +0,9063,9064,7,6,0,0,9064,9065,7,25,0,0,9065,9066,7,14,0,0,9066,9067,7,11, +0,0,9067,804,1,0,0,0,9068,9069,7,9,0,0,9069,9070,7,6,0,0,9070,9071,7,11, +0,0,9071,9072,7,10,0,0,9072,9073,7,14,0,0,9073,9074,7,10,0,0,9074,9075,7, +4,0,0,9075,9076,7,6,0,0,9076,9077,7,9,0,0,9077,806,1,0,0,0,9078,9079,7,9, +0,0,9079,9080,7,6,0,0,9080,9081,7,14,0,0,9081,9082,7,0,0,0,9082,9083,7,7, +0,0,9083,9084,7,9,0,0,9084,808,1,0,0,0,9085,9086,7,9,0,0,9086,9087,7,6,0, +0,9087,9088,7,7,0,0,9088,9089,7,5,0,0,9089,9090,7,6,0,0,9090,9091,5,95,0, +0,9091,9092,7,3,0,0,9092,9093,7,0,0,0,9093,9094,7,7,0,0,9094,9095,7,21,0, +0,9095,9096,7,14,0,0,9096,810,1,0,0,0,9097,9098,7,9,0,0,9098,9099,7,6,0, +0,9099,9100,7,15,0,0,9100,9101,7,6,0,0,9101,9102,7,7,0,0,9102,9103,7,9,0, +0,9103,9104,7,6,0,0,9104,9105,7,7,0,0,9105,9106,7,4,0,0,9106,812,1,0,0,0, +9107,9108,7,9,0,0,9108,9109,7,6,0,0,9109,9110,7,15,0,0,9110,9111,7,3,0,0, +9111,9112,7,6,0,0,9112,9113,7,8,0,0,9113,9114,7,0,0,0,9114,9115,7,4,0,0, +9115,9116,7,6,0,0,9116,814,1,0,0,0,9117,9118,7,9,0,0,9118,9119,7,6,0,0,9119, +9120,7,15,0,0,9120,9121,7,4,0,0,9121,9122,7,19,0,0,9122,816,1,0,0,0,9123, +9124,7,9,0,0,9124,9125,7,6,0,0,9125,9126,7,24,0,0,9126,9127,7,12,0,0,9127, +9128,7,6,0,0,9128,9129,7,12,0,0,9129,9130,7,6,0,0,9130,818,1,0,0,0,9131, +9132,7,9,0,0,9132,9133,7,6,0,0,9133,9134,7,3,0,0,9134,9135,7,6,0,0,9135, +9136,7,16,0,0,9136,820,1,0,0,0,9137,9138,7,9,0,0,9138,9139,7,6,0,0,9139, +9140,7,3,0,0,9140,9141,7,6,0,0,9141,9142,7,16,0,0,9142,9143,5,95,0,0,9143, +9144,7,7,0,0,9144,9145,7,2,0,0,9145,9146,5,95,0,0,9146,9147,7,3,0,0,9147, +9148,7,6,0,0,9148,9149,7,22,0,0,9149,9150,7,3,0,0,9150,9151,7,10,0,0,9151, +9152,7,4,0,0,9152,9153,7,6,0,0,9153,822,1,0,0,0,9154,9155,7,9,0,0,9155,9156, +7,6,0,0,9156,9157,7,5,0,0,9157,9158,7,8,0,0,9158,824,1,0,0,0,9159,9160,7, +9,0,0,9160,9161,7,6,0,0,9161,9162,7,5,0,0,9162,9163,7,8,0,0,9163,9164,7, +3,0,0,9164,9165,7,10,0,0,9165,9166,7,15,0,0,9166,9167,7,4,0,0,9167,9168, +7,10,0,0,9168,9169,7,2,0,0,9169,9170,7,7,0,0,9170,826,1,0,0,0,9171,9172, +7,9,0,0,9172,9173,7,6,0,0,9173,9174,7,5,0,0,9174,9175,7,4,0,0,9175,9176, +7,3,0,0,9176,9177,7,2,0,0,9177,9178,7,18,0,0,9178,828,1,0,0,0,9179,9180, +7,9,0,0,9180,9181,7,6,0,0,9181,9182,7,4,0,0,9182,9183,7,0,0,0,9183,9184, +7,8,0,0,9184,9185,7,19,0,0,9185,9186,7,6,0,0,9186,9187,7,9,0,0,9187,830, +1,0,0,0,9188,9189,7,9,0,0,9189,9190,7,6,0,0,9190,9191,7,4,0,0,9191,9192, +7,6,0,0,9192,9193,7,8,0,0,9193,9194,7,4,0,0,9194,9195,7,6,0,0,9195,9196, +7,9,0,0,9196,832,1,0,0,0,9197,9198,7,9,0,0,9198,9199,7,6,0,0,9199,9200,7, +4,0,0,9200,9201,7,6,0,0,9201,9202,7,3,0,0,9202,9203,7,14,0,0,9203,9204,7, +10,0,0,9204,9205,7,7,0,0,9205,9206,7,6,0,0,9206,9207,7,5,0,0,9207,834,1, +0,0,0,9208,9209,7,9,0,0,9209,9210,7,6,0,0,9210,9211,7,4,0,0,9211,9212,7, +6,0,0,9212,9213,7,3,0,0,9213,9214,7,14,0,0,9214,9215,7,10,0,0,9215,9216, +7,7,0,0,9216,9217,7,10,0,0,9217,9218,7,5,0,0,9218,9219,7,4,0,0,9219,9220, +7,10,0,0,9220,9221,7,8,0,0,9221,836,1,0,0,0,9222,9223,7,9,0,0,9223,9224, +7,10,0,0,9224,9225,7,8,0,0,9225,9226,7,4,0,0,9226,9227,7,10,0,0,9227,9228, +7,2,0,0,9228,9229,7,7,0,0,9229,9230,7,0,0,0,9230,9231,7,3,0,0,9231,9232, +7,18,0,0,9232,838,1,0,0,0,9233,9234,7,9,0,0,9234,9235,7,10,0,0,9235,9236, +7,14,0,0,9236,9237,7,6,0,0,9237,9238,7,7,0,0,9238,9239,7,5,0,0,9239,9240, +7,10,0,0,9240,9241,7,2,0,0,9241,9242,7,7,0,0,9242,840,1,0,0,0,9243,9244, +7,9,0,0,9244,9245,7,10,0,0,9245,9246,7,14,0,0,9246,9247,7,6,0,0,9247,9248, +7,7,0,0,9248,9249,7,5,0,0,9249,9250,7,10,0,0,9250,9251,7,2,0,0,9251,9252, +7,7,0,0,9252,9253,7,5,0,0,9253,842,1,0,0,0,9254,9255,7,9,0,0,9255,9256,7, +10,0,0,9256,9257,7,3,0,0,9257,9258,7,6,0,0,9258,9259,7,8,0,0,9259,9260,7, +4,0,0,9260,9261,7,10,0,0,9261,9262,7,2,0,0,9262,844,1,0,0,0,9263,9264,7, +9,0,0,9264,9265,7,10,0,0,9265,9266,7,3,0,0,9266,9267,7,6,0,0,9267,9268,7, +8,0,0,9268,9269,7,4,0,0,9269,9270,5,95,0,0,9270,9271,7,11,0,0,9271,9272, +7,2,0,0,9272,9273,7,0,0,0,9273,9274,7,9,0,0,9274,846,1,0,0,0,9275,9276,7, +9,0,0,9276,9277,7,10,0,0,9277,9278,7,3,0,0,9278,9279,7,6,0,0,9279,9280,7, +8,0,0,9280,9281,7,4,0,0,9281,9282,7,2,0,0,9282,9283,7,3,0,0,9283,9284,7, +18,0,0,9284,848,1,0,0,0,9285,9286,7,9,0,0,9286,9287,7,10,0,0,9287,9288,7, +3,0,0,9288,9289,7,6,0,0,9289,9290,7,8,0,0,9290,9291,7,4,0,0,9291,9292,5, +95,0,0,9292,9293,7,15,0,0,9293,9294,7,0,0,0,9294,9295,7,4,0,0,9295,9296, +7,19,0,0,9296,850,1,0,0,0,9297,9298,7,9,0,0,9298,9299,7,10,0,0,9299,9300, +7,5,0,0,9300,9301,7,0,0,0,9301,9302,7,1,0,0,9302,9303,7,11,0,0,9303,9304, +7,6,0,0,9304,9305,5,95,0,0,9305,9306,7,0,0,0,9306,9307,7,11,0,0,9307,9308, +7,11,0,0,9308,852,1,0,0,0,9309,9310,7,9,0,0,9310,9311,7,10,0,0,9311,9312, +7,5,0,0,9312,9313,7,0,0,0,9313,9314,7,1,0,0,9314,9315,7,11,0,0,9315,9316, +7,6,0,0,9316,854,1,0,0,0,9317,9318,7,9,0,0,9318,9319,7,10,0,0,9319,9320, +7,5,0,0,9320,9321,7,0,0,0,9321,9322,7,1,0,0,9322,9323,7,11,0,0,9323,9324, +7,6,0,0,9324,9325,7,9,0,0,9325,856,1,0,0,0,9326,9327,7,9,0,0,9327,9328,7, +10,0,0,9328,9329,7,5,0,0,9329,9330,7,0,0,0,9330,9331,7,1,0,0,9331,9332,7, +11,0,0,9332,9333,7,6,0,0,9333,9334,5,95,0,0,9334,9335,7,9,0,0,9335,9336, +7,10,0,0,9336,9337,7,3,0,0,9337,9338,7,6,0,0,9338,9339,7,8,0,0,9339,9340, +7,4,0,0,9340,9341,7,2,0,0,9341,9342,7,3,0,0,9342,9343,7,18,0,0,9343,9344, +5,95,0,0,9344,9345,7,11,0,0,9345,9346,7,10,0,0,9346,9347,7,7,0,0,9347,9348, +7,21,0,0,9348,9349,5,95,0,0,9349,9350,7,8,0,0,9350,9351,7,19,0,0,9351,9352, +7,6,0,0,9352,9353,7,8,0,0,9353,9354,7,21,0,0,9354,858,1,0,0,0,9355,9356, +7,9,0,0,9356,9357,7,10,0,0,9357,9358,7,5,0,0,9358,9359,7,0,0,0,9359,9360, +7,1,0,0,9360,9361,7,11,0,0,9361,9362,7,6,0,0,9362,9363,5,95,0,0,9363,9364, +7,15,0,0,9364,9365,7,0,0,0,9365,9366,7,3,0,0,9366,9367,7,0,0,0,9367,9368, +7,11,0,0,9368,9369,7,11,0,0,9369,9370,7,6,0,0,9370,9371,7,11,0,0,9371,9372, +5,95,0,0,9372,9373,7,9,0,0,9373,9374,7,14,0,0,9374,9375,7,11,0,0,9375,860, +1,0,0,0,9376,9377,7,9,0,0,9377,9378,7,10,0,0,9378,9379,7,5,0,0,9379,9380, +7,0,0,0,9380,9381,7,1,0,0,9381,9382,7,11,0,0,9382,9383,7,6,0,0,9383,9384, +5,95,0,0,9384,9385,7,15,0,0,9385,9386,7,3,0,0,9386,9387,7,6,0,0,9387,9388, +7,5,0,0,9388,9389,7,6,0,0,9389,9390,7,4,0,0,9390,862,1,0,0,0,9391,9392,7, +9,0,0,9392,9393,7,10,0,0,9393,9394,7,5,0,0,9394,9395,7,0,0,0,9395,9396,7, +1,0,0,9396,9397,7,11,0,0,9397,9398,7,6,0,0,9398,9399,5,95,0,0,9399,9400, +7,3,0,0,9400,9401,7,15,0,0,9401,9402,7,21,0,0,9402,9403,7,6,0,0,9403,864, +1,0,0,0,9404,9405,7,9,0,0,9405,9406,7,10,0,0,9406,9407,7,5,0,0,9407,9408, +7,0,0,0,9408,9409,7,11,0,0,9409,9410,7,11,0,0,9410,9411,7,2,0,0,9411,9412, +7,22,0,0,9412,866,1,0,0,0,9413,9414,7,9,0,0,9414,9415,7,10,0,0,9415,9416, +7,5,0,0,9416,9417,7,0,0,0,9417,9418,7,5,0,0,9418,9419,7,5,0,0,9419,9420, +7,2,0,0,9420,9421,7,8,0,0,9421,9422,7,10,0,0,9422,9423,7,0,0,0,9423,9424, +7,4,0,0,9424,9425,7,6,0,0,9425,868,1,0,0,0,9426,9427,7,9,0,0,9427,9428,7, +10,0,0,9428,9429,7,5,0,0,9429,9430,7,8,0,0,9430,9431,7,0,0,0,9431,9432,7, +3,0,0,9432,9433,7,9,0,0,9433,870,1,0,0,0,9434,9435,7,9,0,0,9435,9436,7,10, +0,0,9436,9437,7,5,0,0,9437,9438,7,8,0,0,9438,9439,7,0,0,0,9439,9440,7,3, +0,0,9440,9441,7,9,0,0,9441,9442,7,16,0,0,9442,9443,7,10,0,0,9443,9444,7, +11,0,0,9444,9445,7,6,0,0,9445,872,1,0,0,0,9446,9447,7,9,0,0,9447,9448,7, +10,0,0,9448,9449,7,5,0,0,9449,9450,7,8,0,0,9450,9451,7,2,0,0,9451,9452,7, +7,0,0,9452,9453,7,7,0,0,9453,9454,7,6,0,0,9454,9455,7,8,0,0,9455,9456,7, +4,0,0,9456,874,1,0,0,0,9457,9458,7,9,0,0,9458,9459,7,10,0,0,9459,9460,7, +5,0,0,9460,9461,7,21,0,0,9461,876,1,0,0,0,9462,9463,7,9,0,0,9463,9464,7, +10,0,0,9464,9465,7,5,0,0,9465,9466,7,21,0,0,9466,9467,7,17,0,0,9467,9468, +7,3,0,0,9468,9469,7,2,0,0,9469,9470,7,12,0,0,9470,9471,7,15,0,0,9471,878, +1,0,0,0,9472,9473,5,39,0,0,9473,9474,5,43,0,0,9474,9475,5,32,0,0,9475,9476, +7,9,0,0,9476,9477,7,10,0,0,9477,9478,7,5,0,0,9478,9479,7,21,0,0,9479,9480, +7,17,0,0,9480,9481,7,3,0,0,9481,9482,7,2,0,0,9482,9483,7,12,0,0,9483,9484, +7,15,0,0,9484,880,1,0,0,0,9485,9486,7,9,0,0,9486,9487,7,10,0,0,9487,9488, +7,5,0,0,9488,9489,7,21,0,0,9489,9490,7,5,0,0,9490,882,1,0,0,0,9491,9492, +7,9,0,0,9492,9493,7,10,0,0,9493,9494,7,5,0,0,9494,9495,7,14,0,0,9495,9496, +7,2,0,0,9496,9497,7,12,0,0,9497,9498,7,7,0,0,9498,9499,7,4,0,0,9499,884, +1,0,0,0,9500,9501,7,9,0,0,9501,9502,7,10,0,0,9502,9503,7,5,0,0,9503,9504, +7,4,0,0,9504,9505,7,10,0,0,9505,9506,7,7,0,0,9506,9507,7,8,0,0,9507,9508, +7,4,0,0,9508,886,1,0,0,0,9509,9510,7,9,0,0,9510,9511,7,10,0,0,9511,9512, +7,5,0,0,9512,9513,7,4,0,0,9513,9514,7,10,0,0,9514,9515,7,7,0,0,9515,9516, +7,17,0,0,9516,9517,7,12,0,0,9517,9518,7,10,0,0,9518,9519,7,5,0,0,9519,9520, +7,19,0,0,9520,9521,7,6,0,0,9521,9522,7,9,0,0,9522,888,1,0,0,0,9523,9524, +7,9,0,0,9524,9525,7,10,0,0,9525,9526,7,5,0,0,9526,9527,7,4,0,0,9527,9528, +7,3,0,0,9528,9529,7,10,0,0,9529,9530,7,1,0,0,9530,9531,7,12,0,0,9531,9532, +7,4,0,0,9532,9533,7,6,0,0,9533,9534,7,9,0,0,9534,890,1,0,0,0,9535,9536,7, +9,0,0,9536,9537,7,10,0,0,9537,9538,7,5,0,0,9538,9539,7,4,0,0,9539,9540,7, +3,0,0,9540,9541,7,10,0,0,9541,9542,7,1,0,0,9542,9543,7,12,0,0,9543,9544, +7,4,0,0,9544,9545,7,6,0,0,9545,892,1,0,0,0,9546,9547,7,9,0,0,9547,9548,7, +14,0,0,9548,9549,7,11,0,0,9549,894,1,0,0,0,9550,9551,7,9,0,0,9551,9552,7, +14,0,0,9552,9553,7,11,0,0,9553,9554,5,95,0,0,9554,9555,7,12,0,0,9555,9556, +7,15,0,0,9556,9557,7,9,0,0,9557,9558,7,0,0,0,9558,9559,7,4,0,0,9559,9560, +7,6,0,0,9560,896,1,0,0,0,9561,9562,7,9,0,0,9562,9563,7,7,0,0,9563,9564,7, +16,0,0,9564,9565,7,5,0,0,9565,9566,5,95,0,0,9566,9567,7,9,0,0,9567,9568, +7,10,0,0,9568,9569,7,5,0,0,9569,9570,7,0,0,0,9570,9571,7,1,0,0,9571,9572, +7,11,0,0,9572,9573,7,6,0,0,9573,898,1,0,0,0,9574,9575,7,9,0,0,9575,9576, +7,7,0,0,9576,9577,7,16,0,0,9577,9578,7,5,0,0,9578,9579,5,95,0,0,9579,9580, +7,6,0,0,9580,9581,7,7,0,0,9581,9582,7,0,0,0,9582,9583,7,1,0,0,9583,9584, +7,11,0,0,9584,9585,7,6,0,0,9585,900,1,0,0,0,9586,9587,7,9,0,0,9587,9588, +7,7,0,0,9588,9589,7,16,0,0,9589,9590,7,5,0,0,9590,9591,5,95,0,0,9591,9592, +7,3,0,0,9592,9593,7,6,0,0,9593,9594,7,0,0,0,9594,9595,7,9,0,0,9595,9596, +7,1,0,0,9596,9597,7,12,0,0,9597,9598,7,16,0,0,9598,9599,7,16,0,0,9599,9600, +7,6,0,0,9600,9601,7,3,0,0,9601,9602,7,5,0,0,9602,902,1,0,0,0,9603,9604,7, +9,0,0,9604,9605,7,2,0,0,9605,9606,7,8,0,0,9606,9607,7,16,0,0,9607,9608,7, +10,0,0,9608,9609,7,9,0,0,9609,9610,7,6,0,0,9610,9611,7,11,0,0,9611,9612, +7,10,0,0,9612,9613,7,4,0,0,9613,9614,7,18,0,0,9614,904,1,0,0,0,9615,9616, +7,9,0,0,9616,9617,7,2,0,0,9617,9618,7,8,0,0,9618,9619,7,12,0,0,9619,9620, +7,14,0,0,9620,9621,7,6,0,0,9621,9622,7,7,0,0,9622,9623,7,4,0,0,9623,906, +1,0,0,0,9624,9625,5,36,0,0,9625,9626,7,6,0,0,9626,9627,7,11,0,0,9627,9628, +7,5,0,0,9628,9629,7,6,0,0,9629,908,1,0,0,0,9630,9631,5,36,0,0,9631,9632, +7,6,0,0,9632,9633,7,11,0,0,9633,9634,7,5,0,0,9634,9635,7,10,0,0,9635,9636, +7,16,0,0,9636,910,1,0,0,0,9637,9638,5,36,0,0,9638,9639,7,6,0,0,9639,9640, +7,7,0,0,9640,9641,7,9,0,0,9641,912,1,0,0,0,9642,9643,5,36,0,0,9643,9644, +7,6,0,0,9644,9645,7,3,0,0,9645,9646,7,3,0,0,9646,9647,7,2,0,0,9647,9648, +7,3,0,0,9648,914,1,0,0,0,9649,9650,5,36,0,0,9650,9651,7,10,0,0,9651,9652, +7,16,0,0,9652,916,1,0,0,0,9653,9654,5,36,0,0,9654,9655,7,4,0,0,9655,9656, +7,19,0,0,9656,9657,7,6,0,0,9657,9658,7,7,0,0,9658,918,1,0,0,0,9659,9660, +7,9,0,0,9660,9661,7,2,0,0,9661,9662,7,14,0,0,9662,9663,7,0,0,0,9663,9664, +7,10,0,0,9664,9665,7,7,0,0,9665,9666,5,95,0,0,9666,9667,7,10,0,0,9667,9668, +7,7,0,0,9668,9669,7,9,0,0,9669,9670,7,6,0,0,9670,9671,7,25,0,0,9671,9672, +5,95,0,0,9672,9673,7,16,0,0,9673,9674,7,10,0,0,9674,9675,7,11,0,0,9675,9676, +7,4,0,0,9676,9677,7,6,0,0,9677,9678,7,3,0,0,9678,920,1,0,0,0,9679,9680,7, +9,0,0,9680,9681,7,2,0,0,9681,9682,7,14,0,0,9682,9683,7,0,0,0,9683,9684,7, +10,0,0,9684,9685,7,7,0,0,9685,9686,5,95,0,0,9686,9687,7,10,0,0,9687,9688, +7,7,0,0,9688,9689,7,9,0,0,9689,9690,7,6,0,0,9690,9691,7,25,0,0,9691,9692, +5,95,0,0,9692,9693,7,7,0,0,9693,9694,7,2,0,0,9694,9695,5,95,0,0,9695,9696, +7,5,0,0,9696,9697,7,2,0,0,9697,9698,7,3,0,0,9698,9699,7,4,0,0,9699,922,1, +0,0,0,9700,9701,7,9,0,0,9701,9702,7,2,0,0,9702,9703,7,14,0,0,9703,9704,7, +0,0,0,9704,9705,7,10,0,0,9705,9706,7,7,0,0,9706,9707,5,95,0,0,9707,9708, +7,10,0,0,9708,9709,7,7,0,0,9709,9710,7,9,0,0,9710,9711,7,6,0,0,9711,9712, +7,25,0,0,9712,9713,5,95,0,0,9713,9714,7,5,0,0,9714,9715,7,2,0,0,9715,9716, +7,3,0,0,9716,9717,7,4,0,0,9717,924,1,0,0,0,9718,9719,7,9,0,0,9719,9720,7, +2,0,0,9720,9721,7,12,0,0,9721,9722,7,1,0,0,9722,9723,7,11,0,0,9723,9724, +7,6,0,0,9724,926,1,0,0,0,9725,9726,7,9,0,0,9726,9727,7,2,0,0,9727,9728,7, +22,0,0,9728,9729,7,7,0,0,9729,9730,7,17,0,0,9730,9731,7,3,0,0,9731,9732, +7,0,0,0,9732,9733,7,9,0,0,9733,9734,7,6,0,0,9734,928,1,0,0,0,9735,9736,7, +9,0,0,9736,9737,7,3,0,0,9737,9738,7,10,0,0,9738,9739,7,13,0,0,9739,9740, +7,10,0,0,9740,9741,7,7,0,0,9741,9742,7,17,0,0,9742,9743,5,95,0,0,9743,9744, +7,5,0,0,9744,9745,7,10,0,0,9745,9746,7,4,0,0,9746,9747,7,6,0,0,9747,930, +1,0,0,0,9748,9749,7,9,0,0,9749,9750,7,3,0,0,9750,9751,7,2,0,0,9751,9752, +7,15,0,0,9752,9753,5,95,0,0,9753,9754,7,8,0,0,9754,9755,7,2,0,0,9755,9756, +7,11,0,0,9756,9757,7,12,0,0,9757,9758,7,14,0,0,9758,9759,7,7,0,0,9759,932, +1,0,0,0,9760,9761,7,9,0,0,9761,9762,7,3,0,0,9762,9763,7,2,0,0,9763,9764, +7,15,0,0,9764,934,1,0,0,0,9765,9766,7,9,0,0,9766,9767,7,3,0,0,9767,9768, +7,2,0,0,9768,9769,7,15,0,0,9769,9770,5,95,0,0,9770,9771,7,17,0,0,9771,9772, +7,3,0,0,9772,9773,7,2,0,0,9773,9774,7,12,0,0,9774,9775,7,15,0,0,9775,936, +1,0,0,0,9776,9777,7,9,0,0,9777,9778,7,5,0,0,9778,9779,7,10,0,0,9779,9780, +7,7,0,0,9780,9781,7,4,0,0,9781,9782,7,6,0,0,9782,9783,7,3,0,0,9783,9784, +7,13,0,0,9784,9785,7,0,0,0,9785,9786,7,11,0,0,9786,9787,5,95,0,0,9787,9788, +7,12,0,0,9788,9789,7,7,0,0,9789,9790,7,8,0,0,9790,9791,7,2,0,0,9791,9792, +7,7,0,0,9792,9793,7,5,0,0,9793,9794,7,4,0,0,9794,9795,7,3,0,0,9795,9796, +7,0,0,0,9796,9797,7,10,0,0,9797,9798,7,7,0,0,9798,9799,7,6,0,0,9799,9800, +7,9,0,0,9800,938,1,0,0,0,9801,9802,7,9,0,0,9802,9803,7,5,0,0,9803,9804,7, +4,0,0,9804,9805,5,95,0,0,9805,9806,7,12,0,0,9806,9807,7,15,0,0,9807,9808, +7,17,0,0,9808,9809,7,3,0,0,9809,9810,7,0,0,0,9810,9811,7,9,0,0,9811,9812, +7,6,0,0,9812,9813,5,95,0,0,9813,9814,7,10,0,0,9814,9815,7,7,0,0,9815,9816, +7,5,0,0,9816,9817,7,6,0,0,9817,9818,7,3,0,0,9818,9819,7,4,0,0,9819,9820, +5,95,0,0,9820,9821,7,8,0,0,9821,9822,7,2,0,0,9822,9823,7,7,0,0,9823,9824, +7,13,0,0,9824,940,1,0,0,0,9825,9826,7,9,0,0,9826,9827,7,12,0,0,9827,9828, +7,14,0,0,9828,9829,7,15,0,0,9829,942,1,0,0,0,9830,9831,7,9,0,0,9831,9832, +7,12,0,0,9832,9833,7,14,0,0,9833,9834,7,15,0,0,9834,9835,7,5,0,0,9835,9836, +7,6,0,0,9836,9837,7,4,0,0,9837,944,1,0,0,0,9838,9839,7,9,0,0,9839,9840,7, +12,0,0,9840,9841,7,15,0,0,9841,9842,7,11,0,0,9842,9843,7,10,0,0,9843,9844, +7,8,0,0,9844,9845,7,0,0,0,9845,9846,7,4,0,0,9846,9847,7,6,0,0,9847,946,1, +0,0,0,9848,9849,7,9,0,0,9849,9850,7,13,0,0,9850,948,1,0,0,0,9851,9852,7, +9,0,0,9852,9853,7,18,0,0,9853,9854,7,7,0,0,9854,9855,7,0,0,0,9855,9856,7, +14,0,0,9856,9857,7,10,0,0,9857,9858,7,8,0,0,9858,950,1,0,0,0,9859,9860,7, +9,0,0,9860,9861,7,18,0,0,9861,9862,7,7,0,0,9862,9863,7,0,0,0,9863,9864,7, +14,0,0,9864,9865,7,10,0,0,9865,9866,7,8,0,0,9866,9867,5,95,0,0,9867,9868, +7,5,0,0,9868,9869,7,0,0,0,9869,9870,7,14,0,0,9870,9871,7,15,0,0,9871,9872, +7,11,0,0,9872,9873,7,10,0,0,9873,9874,7,7,0,0,9874,9875,7,17,0,0,9875,952, +1,0,0,0,9876,9877,7,9,0,0,9877,9878,7,18,0,0,9878,9879,7,7,0,0,9879,9880, +7,0,0,0,9880,9881,7,14,0,0,9881,9882,7,10,0,0,9882,9883,7,8,0,0,9883,9884, +5,95,0,0,9884,9885,7,5,0,0,9885,9886,7,0,0,0,9886,9887,7,14,0,0,9887,9888, +7,15,0,0,9888,9889,7,11,0,0,9889,9890,7,10,0,0,9890,9891,7,7,0,0,9891,9892, +7,17,0,0,9892,9893,5,95,0,0,9893,9894,7,6,0,0,9894,9895,7,5,0,0,9895,9896, +7,4,0,0,9896,9897,5,95,0,0,9897,9898,7,8,0,0,9898,9899,7,9,0,0,9899,9900, +7,7,0,0,9900,954,1,0,0,0,9901,9902,7,6,0,0,9902,956,1,0,0,0,9903,9904,7, +6,0,0,9904,9905,7,0,0,0,9905,9906,7,8,0,0,9906,9907,7,19,0,0,9907,958,1, +0,0,0,9908,9909,7,6,0,0,9909,9910,7,9,0,0,9910,9911,7,10,0,0,9911,9912,7, +4,0,0,9912,9913,7,10,0,0,9913,9914,7,2,0,0,9914,9915,7,7,0,0,9915,9916,7, +0,0,0,9916,9917,7,1,0,0,9917,9918,7,11,0,0,9918,9919,7,6,0,0,9919,960,1, +0,0,0,9920,9921,7,6,0,0,9921,9922,7,9,0,0,9922,9923,7,10,0,0,9923,9924,7, +4,0,0,9924,9925,7,10,0,0,9925,9926,7,2,0,0,9926,9927,7,7,0,0,9927,962,1, +0,0,0,9928,9929,7,6,0,0,9929,9930,7,9,0,0,9930,9931,7,10,0,0,9931,9932,7, +4,0,0,9932,9933,7,10,0,0,9933,9934,7,2,0,0,9934,9935,7,7,0,0,9935,9936,7, +10,0,0,9936,9937,7,7,0,0,9937,9938,7,17,0,0,9938,964,1,0,0,0,9939,9940,7, +6,0,0,9940,9941,7,9,0,0,9941,9942,7,10,0,0,9942,9943,7,4,0,0,9943,9944,7, +10,0,0,9944,9945,7,2,0,0,9945,9946,7,7,0,0,9946,9947,7,5,0,0,9947,966,1, +0,0,0,9948,9949,7,6,0,0,9949,9950,7,11,0,0,9950,9951,7,6,0,0,9951,9952,7, +14,0,0,9952,9953,7,6,0,0,9953,9954,7,7,0,0,9954,9955,7,4,0,0,9955,968,1, +0,0,0,9956,9957,7,6,0,0,9957,9958,7,11,0,0,9958,9959,7,10,0,0,9959,9960, +7,14,0,0,9960,9961,5,95,0,0,9961,9962,7,17,0,0,9962,9963,7,3,0,0,9963,9964, +7,2,0,0,9964,9965,7,12,0,0,9965,9966,7,15,0,0,9966,9967,7,1,0,0,9967,9968, +7,18,0,0,9968,970,1,0,0,0,9969,9970,7,6,0,0,9970,9971,7,11,0,0,9971,9972, +7,10,0,0,9972,9973,7,14,0,0,9973,9974,7,10,0,0,9974,9975,7,7,0,0,9975,9976, +7,0,0,0,9976,9977,7,4,0,0,9977,9978,7,6,0,0,9978,9979,5,95,0,0,9979,9980, +7,20,0,0,9980,9981,7,2,0,0,9981,9982,7,10,0,0,9982,9983,7,7,0,0,9983,972, +1,0,0,0,9984,9985,7,6,0,0,9985,9986,7,11,0,0,9986,9987,7,10,0,0,9987,9988, +7,14,0,0,9988,9989,7,10,0,0,9989,9990,7,7,0,0,9990,9991,7,0,0,0,9991,9992, +7,4,0,0,9992,9993,7,6,0,0,9993,9994,5,95,0,0,9994,9995,7,2,0,0,9995,9996, +7,1,0,0,9996,9997,7,18,0,0,9997,974,1,0,0,0,9998,9999,7,6,0,0,9999,10000, +7,11,0,0,10000,10001,7,10,0,0,10001,10002,7,14,0,0,10002,10003,7,10,0,0, +10003,10004,7,7,0,0,10004,10005,7,0,0,0,10005,10006,7,4,0,0,10006,10007, +7,6,0,0,10007,10008,5,95,0,0,10008,10009,7,2,0,0,10009,10010,7,12,0,0,10010, +10011,7,4,0,0,10011,10012,7,6,0,0,10012,10013,7,3,0,0,10013,10014,5,95,0, +0,10014,10015,7,20,0,0,10015,10016,7,2,0,0,10016,10017,7,10,0,0,10017,10018, +7,7,0,0,10018,976,1,0,0,0,10019,10020,7,6,0,0,10020,10021,7,11,0,0,10021, +10022,7,5,0,0,10022,10023,7,6,0,0,10023,978,1,0,0,0,10024,10025,7,6,0,0, +10025,10026,7,11,0,0,10026,10027,7,5,0,0,10027,10028,7,10,0,0,10028,10029, +7,16,0,0,10029,980,1,0,0,0,10030,10031,7,6,0,0,10031,10032,7,14,0,0,10032, +982,1,0,0,0,10033,10034,7,6,0,0,10034,10035,7,14,0,0,10035,10036,7,1,0,0, +10036,10037,7,6,0,0,10037,10038,7,9,0,0,10038,10039,7,9,0,0,10039,10040, +7,6,0,0,10040,10041,7,9,0,0,10041,984,1,0,0,0,10042,10043,7,6,0,0,10043, +10044,7,14,0,0,10044,10045,7,15,0,0,10045,10046,7,4,0,0,10046,10047,7,18, +0,0,10047,10048,5,95,0,0,10048,10049,7,1,0,0,10049,10050,7,11,0,0,10050, +10051,7,2,0,0,10051,10052,7,1,0,0,10052,986,1,0,0,0,10053,10054,7,6,0,0, +10054,10055,7,14,0,0,10055,10056,7,15,0,0,10056,10057,7,4,0,0,10057,10058, +7,18,0,0,10058,10059,5,95,0,0,10059,10060,7,8,0,0,10060,10061,7,11,0,0,10061, +10062,7,2,0,0,10062,10063,7,1,0,0,10063,988,1,0,0,0,10064,10065,7,6,0,0, +10065,10066,7,14,0,0,10066,10067,7,15,0,0,10067,10068,7,4,0,0,10068,10069, +7,18,0,0,10069,990,1,0,0,0,10070,10071,7,6,0,0,10071,10072,7,7,0,0,10072, +10073,7,0,0,0,10073,10074,7,1,0,0,10074,10075,7,11,0,0,10075,10076,7,6,0, +0,10076,10077,5,95,0,0,10077,10078,7,0,0,0,10078,10079,7,11,0,0,10079,10080, +7,11,0,0,10080,992,1,0,0,0,10081,10082,7,6,0,0,10082,10083,7,7,0,0,10083, +10084,7,0,0,0,10084,10085,7,1,0,0,10085,10086,7,11,0,0,10086,10087,7,6,0, +0,10087,994,1,0,0,0,10088,10089,7,6,0,0,10089,10090,7,7,0,0,10090,10091, +7,0,0,0,10091,10092,7,1,0,0,10092,10093,7,11,0,0,10093,10094,7,6,0,0,10094, +10095,7,9,0,0,10095,996,1,0,0,0,10096,10097,7,6,0,0,10097,10098,7,7,0,0, +10098,10099,7,0,0,0,10099,10100,7,1,0,0,10100,10101,7,11,0,0,10101,10102, +7,6,0,0,10102,10103,5,95,0,0,10103,10104,7,15,0,0,10104,10105,7,0,0,0,10105, +10106,7,3,0,0,10106,10107,7,0,0,0,10107,10108,7,11,0,0,10108,10109,7,11, +0,0,10109,10110,7,6,0,0,10110,10111,7,11,0,0,10111,10112,5,95,0,0,10112, +10113,7,9,0,0,10113,10114,7,14,0,0,10114,10115,7,11,0,0,10115,998,1,0,0, +0,10116,10117,7,6,0,0,10117,10118,7,7,0,0,10118,10119,7,0,0,0,10119,10120, +7,1,0,0,10120,10121,7,11,0,0,10121,10122,7,6,0,0,10122,10123,5,95,0,0,10123, +10124,7,15,0,0,10124,10125,7,3,0,0,10125,10126,7,6,0,0,10126,10127,7,5,0, +0,10127,10128,7,6,0,0,10128,10129,7,4,0,0,10129,1000,1,0,0,0,10130,10131, +7,6,0,0,10131,10132,7,7,0,0,10132,10133,7,8,0,0,10133,10134,7,11,0,0,10134, +10135,7,2,0,0,10135,10136,7,5,0,0,10136,10137,7,6,0,0,10137,10138,7,9,0, +0,10138,1002,1,0,0,0,10139,10140,7,6,0,0,10140,10141,7,7,0,0,10141,10142, +7,8,0,0,10142,10143,7,2,0,0,10143,10144,7,9,0,0,10144,10145,7,10,0,0,10145, +10146,7,7,0,0,10146,10147,7,17,0,0,10147,1004,1,0,0,0,10148,10149,7,6,0, +0,10149,10150,7,7,0,0,10150,10151,7,8,0,0,10151,10152,7,3,0,0,10152,10153, +7,18,0,0,10153,10154,7,15,0,0,10154,10155,7,4,0,0,10155,1006,1,0,0,0,10156, +10157,7,6,0,0,10157,10158,7,7,0,0,10158,10159,7,8,0,0,10159,10160,7,3,0, +0,10160,10161,7,18,0,0,10161,10162,7,15,0,0,10162,10163,7,4,0,0,10163,10164, +7,10,0,0,10164,10165,7,2,0,0,10165,10166,7,7,0,0,10166,1008,1,0,0,0,10167, +10168,7,6,0,0,10168,10169,7,7,0,0,10169,10170,7,8,0,0,10170,10171,7,3,0, +0,10171,10172,7,18,0,0,10172,10173,7,15,0,0,10173,10174,7,4,0,0,10174,10175, +7,15,0,0,10175,10176,7,0,0,0,10176,10177,7,5,0,0,10177,10178,7,5,0,0,10178, +10179,7,22,0,0,10179,10180,7,2,0,0,10180,10181,7,3,0,0,10181,10182,7,9,0, +0,10182,10183,7,10,0,0,10183,10184,7,5,0,0,10184,10185,7,7,0,0,10185,10186, +7,12,0,0,10186,10187,7,11,0,0,10187,10188,7,11,0,0,10188,1010,1,0,0,0,10189, +10190,7,6,0,0,10190,10191,7,7,0,0,10191,10192,7,9,0,0,10192,1012,1,0,0,0, +10193,10194,7,6,0,0,10194,10195,7,7,0,0,10195,10196,7,9,0,0,10196,10197, +5,95,0,0,10197,10198,7,2,0,0,10198,10199,7,12,0,0,10199,10200,7,4,0,0,10200, +10201,7,11,0,0,10201,10202,7,10,0,0,10202,10203,7,7,0,0,10203,10204,7,6, +0,0,10204,10205,5,95,0,0,10205,10206,7,9,0,0,10206,10207,7,0,0,0,10207,10208, +7,4,0,0,10208,10209,7,0,0,0,10209,1014,1,0,0,0,10210,10211,7,6,0,0,10211, +10212,7,7,0,0,10212,10213,7,9,0,0,10213,10214,7,10,0,0,10214,10215,7,0,0, +0,10215,10216,7,7,0,0,10216,1016,1,0,0,0,10217,10218,7,6,0,0,10218,10219, +7,7,0,0,10219,10220,7,16,0,0,10220,10221,7,2,0,0,10221,10222,7,3,0,0,10222, +10223,7,8,0,0,10223,10224,7,6,0,0,10224,10225,7,9,0,0,10225,1018,1,0,0,0, +10226,10227,7,6,0,0,10227,10228,7,7,0,0,10228,10229,7,16,0,0,10229,10230, +7,2,0,0,10230,10231,7,3,0,0,10231,10232,7,8,0,0,10232,10233,7,6,0,0,10233, +1020,1,0,0,0,10234,10235,7,6,0,0,10235,10236,7,7,0,0,10236,10237,7,24,0, +0,10237,10238,7,12,0,0,10238,10239,7,6,0,0,10239,10240,7,12,0,0,10240,10241, +7,6,0,0,10241,1022,1,0,0,0,10242,10243,7,6,0,0,10243,10244,7,7,0,0,10244, +10245,7,4,0,0,10245,10246,7,6,0,0,10246,10247,7,3,0,0,10247,10248,7,15,0, +0,10248,10249,7,3,0,0,10249,10250,7,10,0,0,10250,10251,7,5,0,0,10251,10252, +7,6,0,0,10252,1024,1,0,0,0,10253,10254,7,6,0,0,10254,10255,7,7,0,0,10255, +10256,7,4,0,0,10256,10257,7,10,0,0,10257,10258,7,4,0,0,10258,10259,7,18, +0,0,10259,10260,7,6,0,0,10260,10261,7,5,0,0,10261,10262,7,8,0,0,10262,10263, +7,0,0,0,10263,10264,7,15,0,0,10264,10265,7,10,0,0,10265,10266,7,7,0,0,10266, +10267,7,17,0,0,10267,1026,1,0,0,0,10268,10269,7,6,0,0,10269,10270,7,7,0, +0,10270,10271,7,4,0,0,10271,10272,7,3,0,0,10272,10273,7,18,0,0,10273,1028, +1,0,0,0,10274,10275,7,6,0,0,10275,10276,7,24,0,0,10276,10277,7,12,0,0,10277, +10278,7,10,0,0,10278,10279,7,15,0,0,10279,10280,7,0,0,0,10280,10281,7,3, +0,0,10281,10282,7,4,0,0,10282,1030,1,0,0,0,10283,10284,7,6,0,0,10284,10285, +7,3,0,0,10285,10286,7,3,0,0,10286,1032,1,0,0,0,10287,10288,7,6,0,0,10288, +10289,7,3,0,0,10289,10290,7,3,0,0,10290,10291,7,2,0,0,10291,10292,7,3,0, +0,10292,10293,5,95,0,0,10293,10294,7,0,0,0,10294,10295,7,3,0,0,10295,10296, +7,17,0,0,10296,10297,7,12,0,0,10297,10298,7,14,0,0,10298,10299,7,6,0,0,10299, +10300,7,7,0,0,10300,10301,7,4,0,0,10301,1034,1,0,0,0,10302,10303,7,6,0,0, +10303,10304,7,3,0,0,10304,10305,7,3,0,0,10305,10306,7,2,0,0,10306,10307, +7,3,0,0,10307,1036,1,0,0,0,10308,10309,7,6,0,0,10309,10310,7,3,0,0,10310, +10311,7,3,0,0,10311,10312,7,2,0,0,10312,10313,7,3,0,0,10313,10314,5,95,0, +0,10314,10315,7,2,0,0,10315,10316,7,7,0,0,10316,10317,5,95,0,0,10317,10318, +7,2,0,0,10318,10319,7,13,0,0,10319,10320,7,6,0,0,10320,10321,7,3,0,0,10321, +10322,7,11,0,0,10322,10323,7,0,0,0,10323,10324,7,15,0,0,10324,10325,5,95, +0,0,10325,10326,7,4,0,0,10326,10327,7,10,0,0,10327,10328,7,14,0,0,10328, +10329,7,6,0,0,10329,1038,1,0,0,0,10330,10331,7,6,0,0,10331,10332,7,3,0,0, +10332,10333,7,3,0,0,10333,10334,7,2,0,0,10334,10335,7,3,0,0,10335,10336, +7,5,0,0,10336,1040,1,0,0,0,10337,10338,7,6,0,0,10338,10339,7,3,0,0,10339, +10340,7,3,0,0,10340,10341,7,2,0,0,10341,10342,7,3,0,0,10342,10343,5,95,0, +0,10343,10344,7,10,0,0,10344,10345,7,7,0,0,10345,10346,7,9,0,0,10346,10347, +7,6,0,0,10347,10348,7,25,0,0,10348,1042,1,0,0,0,10349,10350,7,6,0,0,10350, +10351,7,3,0,0,10351,10352,7,3,0,0,10352,10353,7,2,0,0,10353,10354,7,3,0, +0,10354,10355,5,95,0,0,10355,10356,7,8,0,0,10356,10357,7,2,0,0,10357,10358, +7,9,0,0,10358,10359,7,6,0,0,10359,1044,1,0,0,0,10360,10361,7,6,0,0,10361, +10362,7,5,0,0,10362,10363,7,8,0,0,10363,10364,7,0,0,0,10364,10365,7,15,0, +0,10365,10366,7,6,0,0,10366,1046,1,0,0,0,10367,10368,7,6,0,0,10368,10369, +7,5,0,0,10369,10370,7,8,0,0,10370,10371,7,0,0,0,10371,10372,7,15,0,0,10372, +10373,7,6,0,0,10373,10374,7,9,0,0,10374,1048,1,0,0,0,10375,10376,7,6,0,0, +10376,10377,7,5,0,0,10377,10378,7,4,0,0,10378,10379,7,10,0,0,10379,10380, +7,14,0,0,10380,10381,7,0,0,0,10381,10382,7,4,0,0,10382,10383,7,6,0,0,10383, +1050,1,0,0,0,10384,10385,7,6,0,0,10385,10386,7,13,0,0,10386,10387,7,0,0, +0,10387,10388,7,11,0,0,10388,1052,1,0,0,0,10389,10390,7,6,0,0,10390,10391, +7,13,0,0,10391,10392,7,0,0,0,10392,10393,7,11,0,0,10393,10394,7,7,0,0,10394, +10395,7,0,0,0,10395,10396,7,14,0,0,10396,10397,7,6,0,0,10397,1054,1,0,0, +0,10398,10399,7,6,0,0,10399,10400,7,13,0,0,10400,10401,7,0,0,0,10401,10402, +7,11,0,0,10402,10403,7,12,0,0,10403,10404,7,0,0,0,10404,10405,7,4,0,0,10405, +10406,7,6,0,0,10406,1056,1,0,0,0,10407,10408,7,6,0,0,10408,10409,7,13,0, +0,10409,10410,7,0,0,0,10410,10411,7,11,0,0,10411,10412,7,12,0,0,10412,10413, +7,0,0,0,10413,10414,7,4,0,0,10414,10415,7,10,0,0,10415,10416,7,2,0,0,10416, +10417,7,7,0,0,10417,1058,1,0,0,0,10418,10419,7,6,0,0,10419,10420,7,13,0, +0,10420,10421,7,6,0,0,10421,10422,7,7,0,0,10422,10423,7,4,0,0,10423,10424, +7,5,0,0,10424,1060,1,0,0,0,10425,10426,7,6,0,0,10426,10427,7,13,0,0,10427, +10428,7,6,0,0,10428,10429,7,3,0,0,10429,10430,7,18,0,0,10430,1062,1,0,0, +0,10431,10432,7,6,0,0,10432,10433,7,25,0,0,10433,10434,7,8,0,0,10434,10435, +7,6,0,0,10435,10436,7,15,0,0,10436,10437,7,4,0,0,10437,1064,1,0,0,0,10438, +10439,7,6,0,0,10439,10440,7,25,0,0,10440,10441,7,8,0,0,10441,10442,7,6,0, +0,10442,10443,7,15,0,0,10443,10444,7,4,0,0,10444,10445,7,10,0,0,10445,10446, +7,2,0,0,10446,10447,7,7,0,0,10447,1066,1,0,0,0,10448,10449,7,6,0,0,10449, +10450,7,25,0,0,10450,10451,7,8,0,0,10451,10452,7,6,0,0,10452,10453,7,15, +0,0,10453,10454,7,4,0,0,10454,10455,7,10,0,0,10455,10456,7,2,0,0,10456,10457, +7,7,0,0,10457,10458,5,95,0,0,10458,10459,7,10,0,0,10459,10460,7,7,0,0,10460, +10461,7,10,0,0,10461,10462,7,4,0,0,10462,1068,1,0,0,0,10463,10464,7,6,0, +0,10464,10465,7,25,0,0,10465,10466,7,8,0,0,10466,10467,7,6,0,0,10467,10468, +7,15,0,0,10468,10469,7,4,0,0,10469,10470,7,10,0,0,10470,10471,7,2,0,0,10471, +10472,7,7,0,0,10472,10473,7,5,0,0,10473,1070,1,0,0,0,10474,10475,7,6,0,0, +10475,10476,7,25,0,0,10476,10477,7,8,0,0,10477,10478,7,19,0,0,10478,10479, +7,0,0,0,10479,10480,7,7,0,0,10480,10481,7,17,0,0,10481,10482,7,6,0,0,10482, +1072,1,0,0,0,10483,10484,7,6,0,0,10484,10485,7,25,0,0,10485,10486,7,8,0, +0,10486,10487,7,11,0,0,10487,10488,7,12,0,0,10488,10489,7,9,0,0,10489,10490, +7,6,0,0,10490,1074,1,0,0,0,10491,10492,7,6,0,0,10492,10493,7,25,0,0,10493, +10494,7,8,0,0,10494,10495,7,11,0,0,10495,10496,7,12,0,0,10496,10497,7,9, +0,0,10497,10498,7,10,0,0,10498,10499,7,7,0,0,10499,10500,7,17,0,0,10500, +1076,1,0,0,0,10501,10502,7,6,0,0,10502,10503,7,25,0,0,10503,10504,7,8,0, +0,10504,10505,7,11,0,0,10505,10506,7,12,0,0,10506,10507,7,5,0,0,10507,10508, +7,10,0,0,10508,10509,7,13,0,0,10509,10510,7,6,0,0,10510,1078,1,0,0,0,10511, +10512,7,6,0,0,10512,10513,7,25,0,0,10513,10514,7,6,0,0,10514,10515,7,8,0, +0,10515,10516,7,12,0,0,10516,10517,7,4,0,0,10517,10518,7,6,0,0,10518,1080, +1,0,0,0,10519,10520,7,6,0,0,10520,10521,7,25,0,0,10521,10522,7,6,0,0,10522, +10523,7,14,0,0,10523,10524,7,15,0,0,10524,10525,7,4,0,0,10525,1082,1,0,0, +0,10526,10527,7,6,0,0,10527,10528,7,25,0,0,10528,10529,7,10,0,0,10529,10530, +7,5,0,0,10530,10531,7,4,0,0,10531,10532,7,10,0,0,10532,10533,7,7,0,0,10533, +10534,7,17,0,0,10534,1084,1,0,0,0,10535,10536,7,6,0,0,10536,10537,7,25,0, +0,10537,10538,7,10,0,0,10538,10539,7,5,0,0,10539,10540,7,4,0,0,10540,10541, +7,5,0,0,10541,1086,1,0,0,0,10542,10543,7,6,0,0,10543,10544,7,25,0,0,10544, +10545,7,10,0,0,10545,10546,7,5,0,0,10546,10547,7,4,0,0,10547,10548,7,5,0, +0,10548,10549,7,7,0,0,10549,10550,7,2,0,0,10550,10551,7,9,0,0,10551,10552, +7,6,0,0,10552,1088,1,0,0,0,10553,10554,7,6,0,0,10554,10555,7,25,0,0,10555, +10556,7,10,0,0,10556,10557,7,4,0,0,10557,1090,1,0,0,0,10558,10559,7,6,0, +0,10559,10560,7,25,0,0,10560,10561,7,15,0,0,10561,10562,7,0,0,0,10562,10563, +7,7,0,0,10563,10564,7,9,0,0,10564,10565,5,95,0,0,10565,10566,7,17,0,0,10566, +10567,7,5,0,0,10567,10568,7,6,0,0,10568,10569,7,4,0,0,10569,10570,5,95,0, +0,10570,10571,7,4,0,0,10571,10572,7,2,0,0,10572,10573,5,95,0,0,10573,10574, +7,12,0,0,10574,10575,7,7,0,0,10575,10576,7,10,0,0,10576,10577,7,2,0,0,10577, +10578,7,7,0,0,10578,1092,1,0,0,0,10579,10580,7,6,0,0,10580,10581,7,25,0, +0,10581,10582,7,15,0,0,10582,10583,7,0,0,0,10583,10584,7,7,0,0,10584,10585, +7,9,0,0,10585,10586,5,95,0,0,10586,10587,7,4,0,0,10587,10588,7,0,0,0,10588, +10589,7,1,0,0,10589,10590,7,11,0,0,10590,10591,7,6,0,0,10591,1094,1,0,0, +0,10592,10593,7,6,0,0,10593,10594,7,25,0,0,10594,10595,7,15,0,0,10595,1096, +1,0,0,0,10596,10597,7,6,0,0,10597,10598,7,25,0,0,10598,10599,7,15,0,0,10599, +10600,7,10,0,0,10600,10601,7,3,0,0,10601,10602,7,6,0,0,10602,1098,1,0,0, +0,10603,10604,7,6,0,0,10604,10605,7,25,0,0,10605,10606,7,15,0,0,10606,10607, +7,11,0,0,10607,10608,7,0,0,0,10608,10609,7,10,0,0,10609,10610,7,7,0,0,10610, +1100,1,0,0,0,10611,10612,7,6,0,0,10612,10613,7,25,0,0,10613,10614,7,15,0, +0,10614,10615,7,11,0,0,10615,10616,7,2,0,0,10616,10617,7,5,0,0,10617,10618, +7,10,0,0,10618,10619,7,2,0,0,10619,10620,7,7,0,0,10620,1102,1,0,0,0,10621, +10622,7,6,0,0,10622,10623,7,25,0,0,10623,10624,7,15,0,0,10624,10625,7,2, +0,0,10625,10626,7,3,0,0,10626,10627,7,4,0,0,10627,1104,1,0,0,0,10628,10629, +7,6,0,0,10629,10630,7,25,0,0,10630,10631,7,15,0,0,10631,10632,7,3,0,0,10632, +10633,5,95,0,0,10633,10634,7,8,0,0,10634,10635,7,2,0,0,10635,10636,7,3,0, +0,10636,10637,7,3,0,0,10637,10638,5,95,0,0,10638,10639,7,8,0,0,10639,10640, +7,19,0,0,10640,10641,7,6,0,0,10641,10642,7,8,0,0,10642,10643,7,21,0,0,10643, +1106,1,0,0,0,10644,10645,7,6,0,0,10645,10646,7,25,0,0,10646,10647,7,15,0, +0,10647,10648,7,3,0,0,10648,10649,7,6,0,0,10649,10650,7,5,0,0,10650,10651, +7,5,0,0,10651,1108,1,0,0,0,10652,10653,7,6,0,0,10653,10654,7,25,0,0,10654, +10655,7,4,0,0,10655,10656,7,6,0,0,10656,10657,7,7,0,0,10657,10658,7,9,0, +0,10658,10659,7,5,0,0,10659,1110,1,0,0,0,10660,10661,7,6,0,0,10661,10662, +7,25,0,0,10662,10663,7,4,0,0,10663,10664,7,6,0,0,10664,10665,7,7,0,0,10665, +10666,7,4,0,0,10666,1112,1,0,0,0,10667,10668,7,6,0,0,10668,10669,7,25,0, +0,10669,10670,7,4,0,0,10670,10671,7,6,0,0,10671,10672,7,7,0,0,10672,10673, +7,4,0,0,10673,10674,7,5,0,0,10674,1114,1,0,0,0,10675,10676,7,6,0,0,10676, +10677,7,25,0,0,10677,10678,7,4,0,0,10678,10679,7,6,0,0,10679,10680,7,3,0, +0,10680,10681,7,7,0,0,10681,10682,7,0,0,0,10682,10683,7,11,0,0,10683,1116, +1,0,0,0,10684,10685,7,6,0,0,10685,10686,7,25,0,0,10686,10687,7,4,0,0,10687, +10688,7,6,0,0,10688,10689,7,3,0,0,10689,10690,7,7,0,0,10690,10691,7,0,0, +0,10691,10692,7,11,0,0,10692,10693,7,11,0,0,10693,10694,7,18,0,0,10694,1118, +1,0,0,0,10695,10696,7,6,0,0,10696,10697,7,25,0,0,10697,10698,7,4,0,0,10698, +10699,7,3,0,0,10699,10700,7,0,0,0,10700,10701,7,8,0,0,10701,10702,7,4,0, +0,10702,10703,7,8,0,0,10703,10704,7,11,0,0,10704,10705,7,2,0,0,10705,10706, +7,1,0,0,10706,10707,7,25,0,0,10707,10708,7,14,0,0,10708,10709,7,11,0,0,10709, +1120,1,0,0,0,10710,10711,7,6,0,0,10711,10712,7,25,0,0,10712,10713,7,4,0, +0,10713,10714,7,3,0,0,10714,10715,7,0,0,0,10715,10716,7,8,0,0,10716,10717, +7,4,0,0,10717,1122,1,0,0,0,10718,10719,7,6,0,0,10719,10720,7,25,0,0,10720, +10721,7,4,0,0,10721,10722,7,3,0,0,10722,10723,7,0,0,0,10723,10724,7,8,0, +0,10724,10725,7,4,0,0,10725,10726,7,13,0,0,10726,10727,7,0,0,0,10727,10728, +7,11,0,0,10728,10729,7,12,0,0,10729,10730,7,6,0,0,10730,1124,1,0,0,0,10731, +10732,7,6,0,0,10732,10733,7,25,0,0,10733,10734,7,4,0,0,10734,10735,7,3,0, +0,10735,10736,7,0,0,0,10736,1126,1,0,0,0,10737,10738,7,16,0,0,10738,10739, +7,0,0,0,10739,10740,7,8,0,0,10740,10741,7,10,0,0,10741,10742,7,11,0,0,10742, +10743,7,10,0,0,10743,10744,7,4,0,0,10744,10745,7,18,0,0,10745,1128,1,0,0, +0,10746,10747,7,16,0,0,10747,10748,7,0,0,0,10748,10749,7,8,0,0,10749,10750, +7,4,0,0,10750,1130,1,0,0,0,10751,10752,7,16,0,0,10752,10753,7,0,0,0,10753, +10754,7,8,0,0,10754,10755,7,4,0,0,10755,10756,7,2,0,0,10756,10757,7,3,0, +0,10757,1132,1,0,0,0,10758,10759,7,16,0,0,10759,10760,7,0,0,0,10760,10761, +7,8,0,0,10761,10762,7,4,0,0,10762,10763,7,2,0,0,10763,10764,7,3,0,0,10764, +10765,7,10,0,0,10765,10766,7,23,0,0,10766,10767,7,6,0,0,10767,10768,5,95, +0,0,10768,10769,7,20,0,0,10769,10770,7,2,0,0,10770,10771,7,10,0,0,10771, +10772,7,7,0,0,10772,1134,1,0,0,0,10773,10774,7,16,0,0,10774,10775,7,0,0, +0,10775,10776,7,10,0,0,10776,10777,7,11,0,0,10777,10778,7,6,0,0,10778,10779, +7,9,0,0,10779,1136,1,0,0,0,10780,10781,7,16,0,0,10781,10782,7,0,0,0,10782, +10783,7,10,0,0,10783,10784,7,11,0,0,10784,10785,7,6,0,0,10785,10786,7,9, +0,0,10786,10787,5,95,0,0,10787,10788,7,11,0,0,10788,10789,7,2,0,0,10789, +10790,7,17,0,0,10790,10791,7,10,0,0,10791,10792,7,7,0,0,10792,10793,5,95, +0,0,10793,10794,7,0,0,0,10794,10795,7,4,0,0,10795,10796,7,4,0,0,10796,10797, +7,6,0,0,10797,10798,7,14,0,0,10798,10799,7,15,0,0,10799,10800,7,4,0,0,10800, +10801,7,5,0,0,10801,1138,1,0,0,0,10802,10803,7,16,0,0,10803,10804,7,0,0, +0,10804,10805,7,10,0,0,10805,10806,7,11,0,0,10806,10807,7,17,0,0,10807,10808, +7,3,0,0,10808,10809,7,2,0,0,10809,10810,7,12,0,0,10810,10811,7,15,0,0,10811, +1140,1,0,0,0,10812,10813,7,16,0,0,10813,10814,7,0,0,0,10814,10815,7,10,0, +0,10815,10816,7,11,0,0,10816,10817,7,2,0,0,10817,10818,7,13,0,0,10818,10819, +7,6,0,0,10819,10820,7,3,0,0,10820,1142,1,0,0,0,10821,10822,7,16,0,0,10822, +10823,7,0,0,0,10823,10824,7,10,0,0,10824,10825,7,11,0,0,10825,10826,7,12, +0,0,10826,10827,7,3,0,0,10827,10828,7,6,0,0,10828,1144,1,0,0,0,10829,10830, +7,16,0,0,10830,10831,7,0,0,0,10831,10832,7,11,0,0,10832,10833,7,5,0,0,10833, +10834,7,6,0,0,10834,1146,1,0,0,0,10835,10836,7,16,0,0,10836,10837,7,0,0, +0,10837,10838,7,14,0,0,10838,10839,7,10,0,0,10839,10840,7,11,0,0,10840,10841, +7,18,0,0,10841,1148,1,0,0,0,10842,10843,7,16,0,0,10843,10844,7,0,0,0,10844, +10845,7,3,0,0,10845,1150,1,0,0,0,10846,10847,7,16,0,0,10847,10848,7,0,0, +0,10848,10849,7,5,0,0,10849,10850,7,4,0,0,10850,1152,1,0,0,0,10851,10852, +7,16,0,0,10852,10853,7,0,0,0,10853,10854,7,5,0,0,10854,10855,7,4,0,0,10855, +10856,7,5,0,0,10856,10857,7,4,0,0,10857,10858,7,0,0,0,10858,10859,7,3,0, +0,10859,10860,7,4,0,0,10860,1154,1,0,0,0,10861,10862,7,16,0,0,10862,10863, +7,1,0,0,10863,10864,7,4,0,0,10864,10865,7,5,0,0,10865,10866,7,8,0,0,10866, +10867,7,0,0,0,10867,10868,7,7,0,0,10868,1156,1,0,0,0,10869,10870,7,16,0, +0,10870,10871,7,6,0,0,10871,10872,7,0,0,0,10872,10873,7,4,0,0,10873,10874, +7,12,0,0,10874,10875,7,3,0,0,10875,10876,7,6,0,0,10876,1158,1,0,0,0,10877, +10878,7,16,0,0,10878,10879,7,6,0,0,10879,10880,7,0,0,0,10880,10881,7,4,0, +0,10881,10882,7,12,0,0,10882,10883,7,3,0,0,10883,10884,7,6,0,0,10884,10885, +5,95,0,0,10885,10886,7,9,0,0,10886,10887,7,6,0,0,10887,10888,7,4,0,0,10888, +10889,7,0,0,0,10889,10890,7,10,0,0,10890,10891,7,11,0,0,10891,10892,7,5, +0,0,10892,1160,1,0,0,0,10893,10894,7,16,0,0,10894,10895,7,6,0,0,10895,10896, +7,0,0,0,10896,10897,7,4,0,0,10897,10898,7,12,0,0,10898,10899,7,3,0,0,10899, +10900,7,6,0,0,10900,10901,5,95,0,0,10901,10902,7,10,0,0,10902,10903,7,9, +0,0,10903,1162,1,0,0,0,10904,10905,7,16,0,0,10905,10906,7,6,0,0,10906,10907, +7,0,0,0,10907,10908,7,4,0,0,10908,10909,7,12,0,0,10909,10910,7,3,0,0,10910, +10911,7,6,0,0,10911,10912,5,95,0,0,10912,10913,7,5,0,0,10913,10914,7,6,0, +0,10914,10915,7,4,0,0,10915,1164,1,0,0,0,10916,10917,7,16,0,0,10917,10918, +7,6,0,0,10918,10919,7,0,0,0,10919,10920,7,4,0,0,10920,10921,7,12,0,0,10921, +10922,7,3,0,0,10922,10923,7,6,0,0,10923,10924,5,95,0,0,10924,10925,7,13, +0,0,10925,10926,7,0,0,0,10926,10927,7,11,0,0,10927,10928,7,12,0,0,10928, +10929,7,6,0,0,10929,1166,1,0,0,0,10930,10931,7,16,0,0,10931,10932,7,6,0, +0,10932,10933,7,4,0,0,10933,10934,7,8,0,0,10934,10935,7,19,0,0,10935,1168, +1,0,0,0,10936,10937,7,16,0,0,10937,10938,7,10,0,0,10938,10939,7,6,0,0,10939, +10940,7,11,0,0,10940,10941,7,9,0,0,10941,1170,1,0,0,0,10942,10943,7,16,0, +0,10943,10944,7,10,0,0,10944,10945,7,6,0,0,10945,10946,7,11,0,0,10946,10947, +7,9,0,0,10947,10948,7,5,0,0,10948,1172,1,0,0,0,10949,10950,7,16,0,0,10950, +10951,7,10,0,0,10951,10952,7,11,0,0,10952,10953,7,6,0,0,10953,1174,1,0,0, +0,10954,10955,7,16,0,0,10955,10956,7,10,0,0,10956,10957,7,11,0,0,10957,10958, +7,6,0,0,10958,10959,5,95,0,0,10959,10960,7,7,0,0,10960,10961,7,0,0,0,10961, +10962,7,14,0,0,10962,10963,7,6,0,0,10963,10964,5,95,0,0,10964,10965,7,8, +0,0,10965,10966,7,2,0,0,10966,10967,7,7,0,0,10967,10968,7,13,0,0,10968,10969, +7,6,0,0,10969,10970,7,3,0,0,10970,10971,7,4,0,0,10971,1176,1,0,0,0,10972, +10973,7,16,0,0,10973,10974,7,10,0,0,10974,10975,7,11,0,0,10975,10976,7,6, +0,0,10976,10977,7,17,0,0,10977,10978,7,3,0,0,10978,10979,7,2,0,0,10979,10980, +7,12,0,0,10980,10981,7,15,0,0,10981,1178,1,0,0,0,10982,10983,7,16,0,0,10983, +10984,7,10,0,0,10984,10985,7,11,0,0,10985,10986,7,6,0,0,10986,10987,7,5, +0,0,10987,10988,7,4,0,0,10988,10989,7,2,0,0,10989,10990,7,3,0,0,10990,10991, +7,6,0,0,10991,1180,1,0,0,0,10992,10993,7,16,0,0,10993,10994,7,10,0,0,10994, +10995,7,11,0,0,10995,10996,7,6,0,0,10996,10997,7,5,0,0,10997,10998,7,18, +0,0,10998,10999,7,5,0,0,10999,11000,7,4,0,0,11000,11001,7,6,0,0,11001,11002, +7,14,0,0,11002,11003,5,95,0,0,11003,11004,7,11,0,0,11004,11005,7,10,0,0, +11005,11006,7,21,0,0,11006,11007,7,6,0,0,11007,11008,5,95,0,0,11008,11009, +7,11,0,0,11009,11010,7,2,0,0,11010,11011,7,17,0,0,11011,11012,7,17,0,0,11012, +11013,7,10,0,0,11013,11014,7,7,0,0,11014,11015,7,17,0,0,11015,1182,1,0,0, +0,11016,11017,7,16,0,0,11017,11018,7,10,0,0,11018,11019,7,11,0,0,11019,11020, +7,4,0,0,11020,11021,7,6,0,0,11021,11022,7,3,0,0,11022,1184,1,0,0,0,11023, +11024,7,16,0,0,11024,11025,7,10,0,0,11025,11026,7,7,0,0,11026,11027,7,0, +0,0,11027,11028,7,11,0,0,11028,1186,1,0,0,0,11029,11030,7,16,0,0,11030,11031, +7,10,0,0,11031,11032,7,7,0,0,11032,11033,7,6,0,0,11033,1188,1,0,0,0,11034, +11035,7,16,0,0,11035,11036,7,10,0,0,11036,11037,7,7,0,0,11037,11038,7,10, +0,0,11038,11039,7,5,0,0,11039,11040,7,19,0,0,11040,1190,1,0,0,0,11041,11042, +7,16,0,0,11042,11043,7,10,0,0,11043,11044,7,3,0,0,11044,11045,7,5,0,0,11045, +11046,7,4,0,0,11046,1192,1,0,0,0,11047,11048,7,16,0,0,11048,11049,7,10,0, +0,11049,11050,7,3,0,0,11050,11051,7,5,0,0,11051,11052,7,4,0,0,11052,11053, +7,14,0,0,11053,1194,1,0,0,0,11054,11055,7,16,0,0,11055,11056,7,10,0,0,11056, +11057,7,3,0,0,11057,11058,7,5,0,0,11058,11059,7,4,0,0,11059,11060,5,95,0, +0,11060,11061,7,3,0,0,11061,11062,7,2,0,0,11062,11063,7,22,0,0,11063,11064, +7,5,0,0,11064,1196,1,0,0,0,11065,11066,7,16,0,0,11066,11067,7,10,0,0,11067, +11068,7,3,0,0,11068,11069,7,5,0,0,11069,11070,7,4,0,0,11070,11071,5,95,0, +0,11071,11072,7,13,0,0,11072,11073,7,0,0,0,11073,11074,7,11,0,0,11074,11075, +7,12,0,0,11075,11076,7,6,0,0,11076,1198,1,0,0,0,11077,11078,7,16,0,0,11078, +11079,7,10,0,0,11079,11080,7,25,0,0,11080,11081,7,6,0,0,11081,11082,7,9, +0,0,11082,1200,1,0,0,0,11083,11084,7,16,0,0,11084,11085,7,10,0,0,11085,11086, +7,25,0,0,11086,11087,7,6,0,0,11087,11088,7,9,0,0,11088,11089,5,95,0,0,11089, +11090,7,13,0,0,11090,11091,7,10,0,0,11091,11092,7,6,0,0,11092,11093,7,22, +0,0,11093,11094,5,95,0,0,11094,11095,7,9,0,0,11095,11096,7,0,0,0,11096,11097, +7,4,0,0,11097,11098,7,0,0,0,11098,1202,1,0,0,0,11099,11100,7,16,0,0,11100, +11101,7,11,0,0,11101,11102,7,0,0,0,11102,11103,7,17,0,0,11103,11104,7,17, +0,0,11104,11105,7,6,0,0,11105,11106,7,3,0,0,11106,1204,1,0,0,0,11107,11108, +7,16,0,0,11108,11109,7,11,0,0,11109,11110,7,0,0,0,11110,11111,7,5,0,0,11111, +11112,7,19,0,0,11112,11113,7,1,0,0,11113,11114,7,0,0,0,11114,11115,7,8,0, +0,11115,11116,7,21,0,0,11116,1206,1,0,0,0,11117,11118,7,16,0,0,11118,11119, +7,11,0,0,11119,11120,7,0,0,0,11120,11121,7,5,0,0,11121,11122,7,19,0,0,11122, +11123,5,95,0,0,11123,11124,7,8,0,0,11124,11125,7,0,0,0,11125,11126,7,8,0, +0,11126,11127,7,19,0,0,11127,11128,7,6,0,0,11128,1208,1,0,0,0,11129,11130, +7,16,0,0,11130,11131,7,11,0,0,11131,11132,7,2,0,0,11132,11133,7,0,0,0,11133, +11134,7,4,0,0,11134,1210,1,0,0,0,11135,11136,7,16,0,0,11136,11137,7,11,0, +0,11137,11138,7,2,0,0,11138,11139,7,1,0,0,11139,1212,1,0,0,0,11140,11141, +7,16,0,0,11141,11142,7,11,0,0,11142,11143,7,6,0,0,11143,11144,7,25,0,0,11144, +1214,1,0,0,0,11145,11146,7,16,0,0,11146,11147,7,11,0,0,11147,11148,7,2,0, +0,11148,11149,7,2,0,0,11149,11150,7,3,0,0,11150,1216,1,0,0,0,11151,11152, +7,16,0,0,11152,11153,7,11,0,0,11153,11154,7,12,0,0,11154,11155,7,5,0,0,11155, +11156,7,19,0,0,11156,1218,1,0,0,0,11157,11158,7,16,0,0,11158,11159,7,2,0, +0,11159,11160,7,11,0,0,11160,11161,7,9,0,0,11161,11162,7,6,0,0,11162,11163, +7,3,0,0,11163,1220,1,0,0,0,11164,11165,7,16,0,0,11165,11166,7,2,0,0,11166, +11167,7,11,0,0,11167,11168,7,11,0,0,11168,11169,7,2,0,0,11169,11170,7,22, +0,0,11170,11171,7,10,0,0,11171,11172,7,7,0,0,11172,11173,7,17,0,0,11173, +1222,1,0,0,0,11174,11175,7,16,0,0,11175,11176,7,2,0,0,11176,11177,7,11,0, +0,11177,11178,7,11,0,0,11178,11179,7,2,0,0,11179,11180,7,22,0,0,11180,11181, +7,5,0,0,11181,1224,1,0,0,0,11182,11183,7,16,0,0,11183,11184,7,2,0,0,11184, +11185,7,3,0,0,11185,11186,7,0,0,0,11186,11187,7,11,0,0,11187,11188,7,11, +0,0,11188,1226,1,0,0,0,11189,11190,7,16,0,0,11190,11191,7,2,0,0,11191,11192, +7,3,0,0,11192,11193,7,8,0,0,11193,11194,7,6,0,0,11194,1228,1,0,0,0,11195, +11196,7,16,0,0,11196,11197,7,2,0,0,11197,11198,7,3,0,0,11198,11199,7,8,0, +0,11199,11200,7,6,0,0,11200,11201,5,95,0,0,11201,11202,7,25,0,0,11202,11203, +7,14,0,0,11203,11204,7,11,0,0,11204,11205,5,95,0,0,11205,11206,7,24,0,0, +11206,11207,7,12,0,0,11207,11208,7,6,0,0,11208,11209,7,3,0,0,11209,11210, +7,18,0,0,11210,11211,5,95,0,0,11211,11212,7,3,0,0,11212,11213,7,6,0,0,11213, +11214,7,22,0,0,11214,11215,7,3,0,0,11215,11216,7,10,0,0,11216,11217,7,4, +0,0,11217,11218,7,6,0,0,11218,1230,1,0,0,0,11219,11220,7,16,0,0,11220,11221, +7,2,0,0,11221,11222,7,3,0,0,11222,11223,7,6,0,0,11223,11224,7,10,0,0,11224, +11225,7,17,0,0,11225,11226,7,7,0,0,11226,1232,1,0,0,0,11227,11228,7,16,0, +0,11228,11229,7,2,0,0,11229,11230,7,3,0,0,11230,11231,7,6,0,0,11231,11232, +7,13,0,0,11232,11233,7,6,0,0,11233,11234,7,3,0,0,11234,1234,1,0,0,0,11235, +11236,7,16,0,0,11236,11237,7,2,0,0,11237,11238,7,3,0,0,11238,1236,1,0,0, +0,11239,11240,7,16,0,0,11240,11241,7,2,0,0,11241,11242,7,3,0,0,11242,11243, +7,14,0,0,11243,11244,7,0,0,0,11244,11245,7,4,0,0,11245,1238,1,0,0,0,11246, +11247,7,16,0,0,11247,11248,7,2,0,0,11248,11249,7,3,0,0,11249,11250,7,22, +0,0,11250,11251,7,0,0,0,11251,11252,7,3,0,0,11252,11253,7,9,0,0,11253,1240, +1,0,0,0,11254,11255,7,16,0,0,11255,11256,7,3,0,0,11256,11257,7,0,0,0,11257, +11258,7,17,0,0,11258,11259,7,14,0,0,11259,11260,7,6,0,0,11260,11261,7,7, +0,0,11261,11262,7,4,0,0,11262,11263,5,95,0,0,11263,11264,7,7,0,0,11264,11265, +7,12,0,0,11265,11266,7,14,0,0,11266,11267,7,1,0,0,11267,11268,7,6,0,0,11268, +11269,7,3,0,0,11269,1242,1,0,0,0,11270,11271,7,16,0,0,11271,11272,7,3,0, +0,11272,11273,7,6,0,0,11273,11274,7,6,0,0,11274,11275,7,11,0,0,11275,11276, +7,10,0,0,11276,11277,7,5,0,0,11277,11278,7,4,0,0,11278,1244,1,0,0,0,11279, +11280,7,16,0,0,11280,11281,7,3,0,0,11281,11282,7,6,0,0,11282,11283,7,6,0, +0,11283,11284,7,11,0,0,11284,11285,7,10,0,0,11285,11286,7,5,0,0,11286,11287, +7,4,0,0,11287,11288,7,5,0,0,11288,1246,1,0,0,0,11289,11290,7,16,0,0,11290, +11291,7,3,0,0,11291,11292,7,6,0,0,11292,11293,7,6,0,0,11293,11294,7,15,0, +0,11294,11295,7,2,0,0,11295,11296,7,2,0,0,11296,11297,7,11,0,0,11297,11298, +7,5,0,0,11298,1248,1,0,0,0,11299,11300,7,16,0,0,11300,11301,7,3,0,0,11301, +11302,7,6,0,0,11302,11303,7,5,0,0,11303,11304,7,19,0,0,11304,1250,1,0,0, +0,11305,11306,7,16,0,0,11306,11307,7,3,0,0,11307,11308,7,2,0,0,11308,11309, +7,14,0,0,11309,1252,1,0,0,0,11310,11311,7,16,0,0,11311,11312,7,3,0,0,11312, +11313,7,2,0,0,11313,11314,7,14,0,0,11314,11315,5,95,0,0,11315,11316,7,4, +0,0,11316,11317,7,23,0,0,11317,1254,1,0,0,0,11318,11319,7,16,0,0,11319,11320, +7,12,0,0,11320,11321,7,11,0,0,11321,11322,7,11,0,0,11322,1256,1,0,0,0,11323, +11324,7,16,0,0,11324,11325,7,12,0,0,11325,11326,7,11,0,0,11326,11327,7,11, +0,0,11327,11328,5,95,0,0,11328,11329,7,2,0,0,11329,11330,7,12,0,0,11330, +11331,7,4,0,0,11331,11332,7,6,0,0,11332,11333,7,3,0,0,11333,11334,5,95,0, +0,11334,11335,7,20,0,0,11335,11336,7,2,0,0,11336,11337,7,10,0,0,11337,11338, +7,7,0,0,11338,11339,5,95,0,0,11339,11340,7,4,0,0,11340,11341,7,2,0,0,11341, +11342,5,95,0,0,11342,11343,7,2,0,0,11343,11344,7,12,0,0,11344,11345,7,4, +0,0,11345,11346,7,6,0,0,11346,11347,7,3,0,0,11347,1258,1,0,0,0,11348,11349, +7,16,0,0,11349,11350,7,12,0,0,11350,11351,7,7,0,0,11351,11352,7,8,0,0,11352, +11353,7,4,0,0,11353,11354,7,10,0,0,11354,11355,7,2,0,0,11355,11356,7,7,0, +0,11356,1260,1,0,0,0,11357,11358,7,16,0,0,11358,11359,7,12,0,0,11359,11360, +7,7,0,0,11360,11361,7,8,0,0,11361,11362,7,4,0,0,11362,11363,7,10,0,0,11363, +11364,7,2,0,0,11364,11365,7,7,0,0,11365,11366,7,5,0,0,11366,1262,1,0,0,0, +11367,11368,7,16,0,0,11368,11369,7,4,0,0,11369,11370,7,15,0,0,11370,1264, +1,0,0,0,11371,11372,7,17,0,0,11372,1266,1,0,0,0,11373,11374,7,17,0,0,11374, +11375,7,0,0,0,11375,11376,7,4,0,0,11376,11377,7,19,0,0,11377,11378,7,6,0, +0,11378,11379,7,3,0,0,11379,11380,5,95,0,0,11380,11381,7,2,0,0,11381,11382, +7,15,0,0,11382,11383,7,4,0,0,11383,11384,7,10,0,0,11384,11385,7,14,0,0,11385, +11386,7,10,0,0,11386,11387,7,23,0,0,11387,11388,7,6,0,0,11388,11389,7,3, +0,0,11389,11390,5,95,0,0,11390,11391,7,5,0,0,11391,11392,7,4,0,0,11392,11393, +7,0,0,0,11393,11394,7,4,0,0,11394,11395,7,10,0,0,11395,11396,7,5,0,0,11396, +11397,7,4,0,0,11397,11398,7,10,0,0,11398,11399,7,8,0,0,11399,11400,7,5,0, +0,11400,1268,1,0,0,0,11401,11402,7,17,0,0,11402,11403,7,0,0,0,11403,11404, +7,4,0,0,11404,11405,7,19,0,0,11405,11406,7,6,0,0,11406,11407,7,3,0,0,11407, +11408,5,95,0,0,11408,11409,7,15,0,0,11409,11410,7,11,0,0,11410,11411,7,0, +0,0,11411,11412,7,7,0,0,11412,11413,5,95,0,0,11413,11414,7,5,0,0,11414,11415, +7,4,0,0,11415,11416,7,0,0,0,11416,11417,7,4,0,0,11417,11418,7,10,0,0,11418, +11419,7,5,0,0,11419,11420,7,4,0,0,11420,11421,7,10,0,0,11421,11422,7,8,0, +0,11422,11423,7,5,0,0,11423,1270,1,0,0,0,11424,11425,7,17,0,0,11425,11426, +7,1,0,0,11426,11427,7,18,0,0,11427,11428,5,95,0,0,11428,11429,7,8,0,0,11429, +11430,7,2,0,0,11430,11431,7,7,0,0,11431,11432,7,8,0,0,11432,11433,5,95,0, +0,11433,11434,7,3,0,0,11434,11435,7,2,0,0,11435,11436,7,11,0,0,11436,11437, +7,11,0,0,11437,11438,7,12,0,0,11438,11439,7,15,0,0,11439,1272,1,0,0,0,11440, +11441,7,17,0,0,11441,11442,7,1,0,0,11442,11443,7,18,0,0,11443,11444,5,95, +0,0,11444,11445,7,15,0,0,11445,11446,7,12,0,0,11446,11447,7,5,0,0,11447, +11448,7,19,0,0,11448,11449,7,9,0,0,11449,11450,7,2,0,0,11450,11451,7,22, +0,0,11451,11452,7,7,0,0,11452,1274,1,0,0,0,11453,11454,7,17,0,0,11454,11455, +7,6,0,0,11455,11456,7,7,0,0,11456,11457,7,6,0,0,11457,11458,7,3,0,0,11458, +11459,7,0,0,0,11459,11460,7,4,0,0,11460,11461,7,6,0,0,11461,11462,7,9,0, +0,11462,1276,1,0,0,0,11463,11464,7,17,0,0,11464,11465,7,6,0,0,11465,11466, +7,4,0,0,11466,1278,1,0,0,0,11467,11468,7,17,0,0,11468,11469,7,11,0,0,11469, +11470,7,2,0,0,11470,11471,7,1,0,0,11471,11472,7,0,0,0,11472,11473,7,11,0, +0,11473,1280,1,0,0,0,11474,11475,7,17,0,0,11475,11476,7,11,0,0,11476,11477, +7,2,0,0,11477,11478,7,1,0,0,11478,11479,7,0,0,0,11479,11480,7,11,0,0,11480, +11481,7,11,0,0,11481,11482,7,18,0,0,11482,1282,1,0,0,0,11483,11484,7,17, +0,0,11484,11485,7,11,0,0,11485,11486,7,2,0,0,11486,11487,7,1,0,0,11487,11488, +7,0,0,0,11488,11489,7,11,0,0,11489,11490,5,95,0,0,11490,11491,7,7,0,0,11491, +11492,7,0,0,0,11492,11493,7,14,0,0,11493,11494,7,6,0,0,11494,1284,1,0,0, +0,11495,11496,7,17,0,0,11496,11497,7,11,0,0,11497,11498,7,2,0,0,11498,11499, +7,1,0,0,11499,11500,7,0,0,0,11500,11501,7,11,0,0,11501,11502,5,95,0,0,11502, +11503,7,4,0,0,11503,11504,7,2,0,0,11504,11505,7,15,0,0,11505,11506,7,10, +0,0,11506,11507,7,8,0,0,11507,11508,5,95,0,0,11508,11509,7,6,0,0,11509,11510, +7,7,0,0,11510,11511,7,0,0,0,11511,11512,7,1,0,0,11512,11513,7,11,0,0,11513, +11514,7,6,0,0,11514,11515,7,9,0,0,11515,1286,1,0,0,0,11516,11517,7,17,0, +0,11517,11518,7,2,0,0,11518,11519,7,4,0,0,11519,11520,7,2,0,0,11520,1288, +1,0,0,0,11521,11522,7,17,0,0,11522,11523,7,3,0,0,11523,11524,7,0,0,0,11524, +11525,7,7,0,0,11525,11526,7,4,0,0,11526,1290,1,0,0,0,11527,11528,7,17,0, +0,11528,11529,7,3,0,0,11529,11530,7,2,0,0,11530,11531,7,12,0,0,11531,11532, +7,15,0,0,11532,11533,5,95,0,0,11533,11534,7,1,0,0,11534,11535,7,18,0,0,11535, +1292,1,0,0,0,11536,11537,7,17,0,0,11537,11538,7,3,0,0,11538,11539,7,2,0, +0,11539,11540,7,12,0,0,11540,11541,7,15,0,0,11541,1294,1,0,0,0,11542,11543, +7,17,0,0,11543,11544,7,3,0,0,11544,11545,7,2,0,0,11545,11546,7,12,0,0,11546, +11547,7,15,0,0,11547,11548,5,95,0,0,11548,11549,7,10,0,0,11549,11550,7,9, +0,0,11550,1296,1,0,0,0,11551,11552,7,17,0,0,11552,11553,7,3,0,0,11553,11554, +7,2,0,0,11554,11555,7,12,0,0,11555,11556,7,15,0,0,11556,11557,7,10,0,0,11557, +11558,7,7,0,0,11558,11559,7,17,0,0,11559,1298,1,0,0,0,11560,11561,7,17,0, +0,11561,11562,7,3,0,0,11562,11563,7,2,0,0,11563,11564,7,12,0,0,11564,11565, +7,15,0,0,11565,11566,7,10,0,0,11566,11567,7,7,0,0,11567,11568,7,17,0,0,11568, +11569,5,95,0,0,11569,11570,7,10,0,0,11570,11571,7,9,0,0,11571,1300,1,0,0, +0,11572,11573,7,17,0,0,11573,11574,7,3,0,0,11574,11575,7,2,0,0,11575,11576, +7,12,0,0,11576,11577,7,15,0,0,11577,11578,7,5,0,0,11578,1302,1,0,0,0,11579, +11580,7,17,0,0,11580,11581,7,12,0,0,11581,11582,7,0,0,0,11582,11583,7,3, +0,0,11583,11584,7,0,0,0,11584,11585,7,7,0,0,11585,11586,7,4,0,0,11586,11587, +7,6,0,0,11587,11588,7,6,0,0,11588,11589,7,9,0,0,11589,1304,1,0,0,0,11590, +11591,7,17,0,0,11591,11592,7,12,0,0,11592,11593,7,0,0,0,11593,11594,7,3, +0,0,11594,11595,7,0,0,0,11595,11596,7,7,0,0,11596,11597,7,4,0,0,11597,11598, +7,6,0,0,11598,11599,7,6,0,0,11599,1306,1,0,0,0,11600,11601,7,17,0,0,11601, +11602,7,12,0,0,11602,11603,7,0,0,0,11603,11604,7,3,0,0,11604,11605,7,9,0, +0,11605,1308,1,0,0,0,11606,11607,7,19,0,0,11607,11608,7,0,0,0,11608,11609, +7,9,0,0,11609,11610,7,2,0,0,11610,11611,7,2,0,0,11611,11612,7,15,0,0,11612, +11613,5,95,0,0,11613,11614,7,4,0,0,11614,11615,7,3,0,0,11615,11616,7,0,0, +0,11616,11617,7,10,0,0,11617,11618,7,11,0,0,11618,11619,7,6,0,0,11619,11620, +7,3,0,0,11620,11621,7,5,0,0,11621,1310,1,0,0,0,11622,11623,7,19,0,0,11623, +11624,7,0,0,0,11624,11625,7,11,0,0,11625,11626,7,16,0,0,11626,11627,5,95, +0,0,11627,11628,7,18,0,0,11628,11629,7,6,0,0,11629,11630,7,0,0,0,11630,11631, +7,3,0,0,11631,11632,7,5,0,0,11632,1312,1,0,0,0,11633,11634,7,19,0,0,11634, +11635,7,0,0,0,11635,11636,7,5,0,0,11636,11637,7,19,0,0,11637,11638,5,95, +0,0,11638,11639,7,0,0,0,11639,11640,7,20,0,0,11640,1314,1,0,0,0,11641,11642, +7,19,0,0,11642,11643,7,0,0,0,11643,11644,7,5,0,0,11644,11645,7,19,0,0,11645, +1316,1,0,0,0,11646,11647,7,19,0,0,11647,11648,7,0,0,0,11648,11649,7,5,0, +0,11649,11650,7,19,0,0,11650,11651,7,21,0,0,11651,11652,7,6,0,0,11652,11653, +7,18,0,0,11653,11654,7,5,0,0,11654,1318,1,0,0,0,11655,11656,7,19,0,0,11656, +11657,7,0,0,0,11657,11658,7,5,0,0,11658,11659,7,19,0,0,11659,11660,5,95, +0,0,11660,11661,7,5,0,0,11661,11662,7,20,0,0,11662,1320,1,0,0,0,11663,11664, +7,19,0,0,11664,11665,7,0,0,0,11665,11666,7,13,0,0,11666,11667,7,10,0,0,11667, +11668,7,7,0,0,11668,11669,7,17,0,0,11669,1322,1,0,0,0,11670,11671,7,19,0, +0,11671,11672,7,6,0,0,11672,11673,7,0,0,0,11673,11674,7,9,0,0,11674,11675, +7,6,0,0,11675,11676,7,3,0,0,11676,1324,1,0,0,0,11677,11678,7,19,0,0,11678, +11679,7,6,0,0,11679,11680,7,0,0,0,11680,11681,7,15,0,0,11681,1326,1,0,0, +0,11682,11683,7,19,0,0,11683,11684,7,6,0,0,11684,11685,7,11,0,0,11685,11686, +7,15,0,0,11686,1328,1,0,0,0,11687,11688,7,19,0,0,11688,11689,7,6,0,0,11689, +11690,7,25,0,0,11690,11691,7,4,0,0,11691,11692,7,2,0,0,11692,11693,7,3,0, +0,11693,11694,7,0,0,0,11694,11695,7,22,0,0,11695,1330,1,0,0,0,11696,11697, +7,19,0,0,11697,11698,7,6,0,0,11698,11699,7,25,0,0,11699,11700,7,4,0,0,11700, +11701,7,2,0,0,11701,11702,7,3,0,0,11702,11703,7,6,0,0,11703,11704,7,16,0, +0,11704,1332,1,0,0,0,11705,11706,7,19,0,0,11706,11707,7,10,0,0,11707,11708, +7,9,0,0,11708,11709,7,9,0,0,11709,11710,7,6,0,0,11710,11711,7,7,0,0,11711, +1334,1,0,0,0,11712,11713,7,19,0,0,11713,11714,7,10,0,0,11714,11715,7,9,0, +0,11715,11716,7,6,0,0,11716,1336,1,0,0,0,11717,11718,7,19,0,0,11718,11719, +7,10,0,0,11719,11720,7,6,0,0,11720,11721,7,3,0,0,11721,11722,5,95,0,0,11722, +11723,7,2,0,0,11723,11724,7,3,0,0,11724,11725,7,9,0,0,11725,11726,7,6,0, +0,11726,11727,7,3,0,0,11727,1338,1,0,0,0,11728,11729,7,19,0,0,11729,11730, +7,10,0,0,11730,11731,7,6,0,0,11731,11732,7,3,0,0,11732,11733,7,0,0,0,11733, +11734,7,3,0,0,11734,11735,7,8,0,0,11735,11736,7,19,0,0,11736,11737,7,10, +0,0,11737,11738,7,8,0,0,11738,11739,7,0,0,0,11739,11740,7,11,0,0,11740,1340, +1,0,0,0,11741,11742,7,19,0,0,11742,11743,7,10,0,0,11743,11744,7,6,0,0,11744, +11745,7,3,0,0,11745,11746,7,0,0,0,11746,11747,7,3,0,0,11747,11748,7,8,0, +0,11748,11749,7,19,0,0,11749,11750,7,10,0,0,11750,11751,7,6,0,0,11751,11752, +7,5,0,0,11752,1342,1,0,0,0,11753,11754,7,19,0,0,11754,11755,7,10,0,0,11755, +11756,7,6,0,0,11756,11757,7,3,0,0,11757,11758,7,0,0,0,11758,11759,7,3,0, +0,11759,11760,7,8,0,0,11760,11761,7,19,0,0,11761,11762,7,18,0,0,11762,1344, +1,0,0,0,11763,11764,7,19,0,0,11764,11765,7,10,0,0,11765,11766,7,17,0,0,11766, +11767,7,19,0,0,11767,1346,1,0,0,0,11768,11769,7,19,0,0,11769,11770,7,10, +0,0,11770,11771,7,7,0,0,11771,11772,7,4,0,0,11772,11773,7,5,0,0,11773,11774, +7,6,0,0,11774,11775,7,4,0,0,11775,11776,5,95,0,0,11776,11777,7,1,0,0,11777, +11778,7,6,0,0,11778,11779,7,17,0,0,11779,11780,7,10,0,0,11780,11781,7,7, +0,0,11781,1348,1,0,0,0,11782,11783,7,19,0,0,11783,11784,7,10,0,0,11784,11785, +7,7,0,0,11785,11786,7,4,0,0,11786,11787,7,5,0,0,11787,11788,7,6,0,0,11788, +11789,7,4,0,0,11789,11790,5,95,0,0,11790,11791,7,6,0,0,11791,11792,7,7,0, +0,11792,11793,7,9,0,0,11793,1350,1,0,0,0,11794,11795,7,19,0,0,11795,11796, +7,2,0,0,11796,11797,7,4,0,0,11797,1352,1,0,0,0,11798,11799,7,19,0,0,11799, +11800,7,2,0,0,11800,11801,7,12,0,0,11801,11802,7,3,0,0,11802,1354,1,0,0, +0,11803,11804,7,19,0,0,11804,11805,7,2,0,0,11805,11806,7,12,0,0,11806,11807, +7,3,0,0,11807,11808,7,5,0,0,11808,1356,1,0,0,0,11809,11810,7,19,0,0,11810, +11811,7,4,0,0,11811,11812,7,4,0,0,11812,11813,7,15,0,0,11813,1358,1,0,0, +0,11814,11815,7,19,0,0,11815,11816,7,22,0,0,11816,11817,7,14,0,0,11817,11818, +5,95,0,0,11818,11819,7,1,0,0,11819,11820,7,3,0,0,11820,11821,7,2,0,0,11821, +11822,7,21,0,0,11822,11823,7,6,0,0,11823,11824,7,3,0,0,11824,11825,7,6,0, +0,11825,11826,7,9,0,0,11826,1360,1,0,0,0,11827,11828,7,19,0,0,11828,11829, +7,18,0,0,11829,11830,7,1,0,0,11830,11831,7,3,0,0,11831,11832,7,10,0,0,11832, +11833,7,9,0,0,11833,1362,1,0,0,0,11834,11835,7,19,0,0,11835,1364,1,0,0,0, +11836,11837,7,10,0,0,11837,11838,7,9,0,0,11838,11839,7,6,0,0,11839,11840, +7,7,0,0,11840,11841,7,4,0,0,11841,11842,7,10,0,0,11842,11843,7,16,0,0,11843, +11844,7,10,0,0,11844,11845,7,6,0,0,11845,11846,7,9,0,0,11846,1366,1,0,0, +0,11847,11848,7,10,0,0,11848,11849,7,9,0,0,11849,11850,7,6,0,0,11850,11851, +7,7,0,0,11851,11852,7,4,0,0,11852,11853,7,10,0,0,11853,11854,7,16,0,0,11854, +11855,7,10,0,0,11855,11856,7,6,0,0,11856,11857,7,3,0,0,11857,1368,1,0,0, +0,11858,11859,7,10,0,0,11859,11860,7,9,0,0,11860,11861,7,6,0,0,11861,11862, +7,7,0,0,11862,11863,7,4,0,0,11863,11864,7,10,0,0,11864,11865,7,4,0,0,11865, +11866,7,18,0,0,11866,1370,1,0,0,0,11867,11868,7,10,0,0,11868,11869,7,9,0, +0,11869,11870,7,17,0,0,11870,11871,7,6,0,0,11871,11872,7,7,0,0,11872,11873, +7,6,0,0,11873,11874,7,3,0,0,11874,11875,7,0,0,0,11875,11876,7,4,0,0,11876, +11877,7,2,0,0,11877,11878,7,3,0,0,11878,11879,7,5,0,0,11879,1372,1,0,0,0, +11880,11881,7,10,0,0,11881,11882,7,9,0,0,11882,1374,1,0,0,0,11883,11884, +7,10,0,0,11884,11885,7,9,0,0,11885,11886,7,11,0,0,11886,11887,7,6,0,0,11887, +11888,5,95,0,0,11888,11889,7,4,0,0,11889,11890,7,10,0,0,11890,11891,7,14, +0,0,11891,11892,7,6,0,0,11892,1376,1,0,0,0,11893,11894,7,10,0,0,11894,11895, +7,16,0,0,11895,1378,1,0,0,0,11896,11897,7,10,0,0,11897,11898,7,17,0,0,11898, +11899,7,7,0,0,11899,11900,7,2,0,0,11900,11901,7,3,0,0,11901,11902,7,6,0, +0,11902,1380,1,0,0,0,11903,11904,7,10,0,0,11904,11905,7,17,0,0,11905,11906, +7,7,0,0,11906,11907,7,2,0,0,11907,11908,7,3,0,0,11908,11909,7,6,0,0,11909, +11910,5,95,0,0,11910,11911,7,8,0,0,11911,11912,7,19,0,0,11912,11913,7,0, +0,0,11913,11914,7,3,0,0,11914,11915,7,5,0,0,11915,11916,5,95,0,0,11916,11917, +7,0,0,0,11917,11918,7,16,0,0,11918,11919,7,4,0,0,11919,11920,7,6,0,0,11920, +11921,7,3,0,0,11921,11922,5,95,0,0,11922,11923,7,6,0,0,11923,11924,7,2,0, +0,11924,11925,7,3,0,0,11925,1382,1,0,0,0,11926,11927,7,10,0,0,11927,11928, +7,17,0,0,11928,11929,7,7,0,0,11929,11930,7,2,0,0,11930,11931,7,3,0,0,11931, +11932,7,6,0,0,11932,11933,5,95,0,0,11933,11934,7,2,0,0,11934,11935,7,15, +0,0,11935,11936,7,4,0,0,11936,11937,7,10,0,0,11937,11938,7,14,0,0,11938, +11939,5,95,0,0,11939,11940,7,6,0,0,11940,11941,7,14,0,0,11941,11942,7,1, +0,0,11942,11943,7,6,0,0,11943,11944,7,9,0,0,11944,11945,7,9,0,0,11945,11946, +7,6,0,0,11946,11947,7,9,0,0,11947,11948,5,95,0,0,11948,11949,7,19,0,0,11949, +11950,7,10,0,0,11950,11951,7,7,0,0,11951,11952,7,4,0,0,11952,11953,7,5,0, +0,11953,1384,1,0,0,0,11954,11955,7,10,0,0,11955,11956,7,17,0,0,11956,11957, +7,7,0,0,11957,11958,7,2,0,0,11958,11959,7,3,0,0,11959,11960,7,6,0,0,11960, +11961,5,95,0,0,11961,11962,7,3,0,0,11962,11963,7,2,0,0,11963,11964,7,22, +0,0,11964,11965,5,95,0,0,11965,11966,7,2,0,0,11966,11967,7,7,0,0,11967,11968, +5,95,0,0,11968,11969,7,9,0,0,11969,11970,7,12,0,0,11970,11971,7,15,0,0,11971, +11972,7,21,0,0,11972,11973,7,6,0,0,11973,11974,7,18,0,0,11974,11975,5,95, +0,0,11975,11976,7,10,0,0,11976,11977,7,7,0,0,11977,11978,7,9,0,0,11978,11979, +7,6,0,0,11979,11980,7,25,0,0,11980,1386,1,0,0,0,11981,11982,7,10,0,0,11982, +11983,7,17,0,0,11983,11984,7,7,0,0,11984,11985,7,2,0,0,11985,11986,7,3,0, +0,11986,11987,7,6,0,0,11987,11988,5,95,0,0,11988,11989,7,22,0,0,11989,11990, +7,19,0,0,11990,11991,7,6,0,0,11991,11992,7,3,0,0,11992,11993,7,6,0,0,11993, +11994,5,95,0,0,11994,11995,7,8,0,0,11995,11996,7,11,0,0,11996,11997,7,0, +0,0,11997,11998,7,12,0,0,11998,11999,7,5,0,0,11999,12000,7,6,0,0,12000,1388, +1,0,0,0,12001,12002,7,10,0,0,12002,12003,7,11,0,0,12003,12004,7,14,0,0,12004, +1390,1,0,0,0,12005,12006,7,10,0,0,12006,12007,7,14,0,0,12007,12008,7,14, +0,0,12008,12009,7,6,0,0,12009,12010,7,9,0,0,12010,12011,7,10,0,0,12011,12012, +7,0,0,0,12012,12013,7,4,0,0,12013,12014,7,6,0,0,12014,1392,1,0,0,0,12015, +12016,7,10,0,0,12016,12017,7,14,0,0,12017,12018,7,15,0,0,12018,12019,7,0, +0,0,12019,12020,7,8,0,0,12020,12021,7,4,0,0,12021,1394,1,0,0,0,12022,12023, +7,10,0,0,12023,12024,7,14,0,0,12024,12025,7,15,0,0,12025,12026,7,2,0,0,12026, +12027,7,3,0,0,12027,12028,7,4,0,0,12028,1396,1,0,0,0,12029,12030,7,10,0, +0,12030,12031,7,7,0,0,12031,12032,7,0,0,0,12032,12033,7,8,0,0,12033,12034, +7,4,0,0,12034,12035,7,10,0,0,12035,12036,7,13,0,0,12036,12037,7,6,0,0,12037, +1398,1,0,0,0,12038,12039,7,10,0,0,12039,12040,7,7,0,0,12040,12041,7,0,0, +0,12041,12042,7,8,0,0,12042,12043,7,4,0,0,12043,12044,7,10,0,0,12044,12045, +7,13,0,0,12045,12046,7,6,0,0,12046,12047,5,95,0,0,12047,12048,7,0,0,0,12048, +12049,7,8,0,0,12049,12050,7,8,0,0,12050,12051,7,2,0,0,12051,12052,7,12,0, +0,12052,12053,7,7,0,0,12053,12054,7,4,0,0,12054,12055,5,95,0,0,12055,12056, +7,4,0,0,12056,12057,7,10,0,0,12057,12058,7,14,0,0,12058,12059,7,6,0,0,12059, +1400,1,0,0,0,12060,12061,7,10,0,0,12061,12062,7,7,0,0,12062,12063,7,8,0, +0,12063,12064,7,11,0,0,12064,12065,7,12,0,0,12065,12066,7,9,0,0,12066,12067, +7,6,0,0,12067,1402,1,0,0,0,12068,12069,7,10,0,0,12069,12070,7,7,0,0,12070, +12071,7,8,0,0,12071,12072,7,11,0,0,12072,12073,7,12,0,0,12073,12074,7,9, +0,0,12074,12075,7,6,0,0,12075,12076,5,95,0,0,12076,12077,7,13,0,0,12077, +12078,7,6,0,0,12078,12079,7,3,0,0,12079,12080,7,5,0,0,12080,12081,7,10,0, +0,12081,12082,7,2,0,0,12082,12083,7,7,0,0,12083,1404,1,0,0,0,12084,12085, +7,10,0,0,12085,12086,7,7,0,0,12086,12087,7,8,0,0,12087,12088,7,11,0,0,12088, +12089,7,12,0,0,12089,12090,7,9,0,0,12090,12091,7,10,0,0,12091,12092,7,7, +0,0,12092,12093,7,17,0,0,12093,1406,1,0,0,0,12094,12095,7,10,0,0,12095,12096, +7,7,0,0,12096,12097,7,8,0,0,12097,12098,7,3,0,0,12098,12099,7,6,0,0,12099, +12100,7,14,0,0,12100,12101,7,6,0,0,12101,12102,7,7,0,0,12102,12103,7,4,0, +0,12103,12104,7,0,0,0,12104,12105,7,11,0,0,12105,1408,1,0,0,0,12106,12107, +7,10,0,0,12107,12108,7,7,0,0,12108,12109,7,8,0,0,12109,12110,7,3,0,0,12110, +12111,7,6,0,0,12111,12112,7,14,0,0,12112,12113,7,6,0,0,12113,12114,7,7,0, +0,12114,12115,7,4,0,0,12115,1410,1,0,0,0,12116,12117,7,10,0,0,12117,12118, +7,7,0,0,12118,12119,7,8,0,0,12119,12120,7,3,0,0,12120,1412,1,0,0,0,12121, +12122,7,10,0,0,12122,12123,7,7,0,0,12123,12124,7,9,0,0,12124,12125,7,6,0, +0,12125,12126,7,7,0,0,12126,12127,7,4,0,0,12127,1414,1,0,0,0,12128,12129, +7,10,0,0,12129,12130,7,7,0,0,12130,12131,7,9,0,0,12131,12132,7,6,0,0,12132, +12133,7,25,0,0,12133,12134,5,95,0,0,12134,12135,7,0,0,0,12135,12136,7,5, +0,0,12136,12137,7,8,0,0,12137,1416,1,0,0,0,12138,12139,7,10,0,0,12139,12140, +7,7,0,0,12140,12141,7,9,0,0,12141,12142,7,6,0,0,12142,12143,7,25,0,0,12143, +12144,5,95,0,0,12144,12145,7,8,0,0,12145,12146,7,2,0,0,12146,12147,7,14, +0,0,12147,12148,7,1,0,0,12148,12149,7,10,0,0,12149,12150,7,7,0,0,12150,12151, +7,6,0,0,12151,1418,1,0,0,0,12152,12153,7,10,0,0,12153,12154,7,7,0,0,12154, +12155,7,9,0,0,12155,12156,7,6,0,0,12156,12157,7,25,0,0,12157,12158,5,95, +0,0,12158,12159,7,9,0,0,12159,12160,7,6,0,0,12160,12161,7,5,0,0,12161,12162, +7,8,0,0,12162,1420,1,0,0,0,12163,12164,7,10,0,0,12164,12165,7,7,0,0,12165, +12166,7,9,0,0,12166,12167,7,6,0,0,12167,12168,7,25,0,0,12168,12169,7,6,0, +0,12169,12170,7,9,0,0,12170,1422,1,0,0,0,12171,12172,7,10,0,0,12172,12173, +7,7,0,0,12173,12174,7,9,0,0,12174,12175,7,6,0,0,12175,12176,7,25,0,0,12176, +12177,7,6,0,0,12177,12178,7,5,0,0,12178,1424,1,0,0,0,12179,12180,7,10,0, +0,12180,12181,7,7,0,0,12181,12182,7,9,0,0,12182,12183,7,6,0,0,12183,12184, +7,25,0,0,12184,12185,5,95,0,0,12185,12186,7,16,0,0,12186,12187,7,16,0,0, +12187,12188,7,5,0,0,12188,1426,1,0,0,0,12189,12190,7,10,0,0,12190,12191, +7,7,0,0,12191,12192,7,9,0,0,12192,12193,7,6,0,0,12193,12194,7,25,0,0,12194, +12195,5,95,0,0,12195,12196,7,16,0,0,12196,12197,7,10,0,0,12197,12198,7,11, +0,0,12198,12199,7,4,0,0,12199,12200,7,6,0,0,12200,12201,7,3,0,0,12201,1428, +1,0,0,0,12202,12203,7,10,0,0,12203,12204,7,7,0,0,12204,12205,7,9,0,0,12205, +12206,7,6,0,0,12206,12207,7,25,0,0,12207,1430,1,0,0,0,12208,12209,7,10,0, +0,12209,12210,7,7,0,0,12210,12211,7,9,0,0,12211,12212,7,6,0,0,12212,12213, +7,25,0,0,12213,12214,7,10,0,0,12214,12215,7,7,0,0,12215,12216,7,17,0,0,12216, +1432,1,0,0,0,12217,12218,7,10,0,0,12218,12219,7,7,0,0,12219,12220,7,9,0, +0,12220,12221,7,6,0,0,12221,12222,7,25,0,0,12222,12223,5,95,0,0,12223,12224, +7,20,0,0,12224,12225,7,2,0,0,12225,12226,7,10,0,0,12226,12227,7,7,0,0,12227, +1434,1,0,0,0,12228,12229,7,10,0,0,12229,12230,7,7,0,0,12230,12231,7,9,0, +0,12231,12232,7,6,0,0,12232,12233,7,25,0,0,12233,12234,5,95,0,0,12234,12235, +7,3,0,0,12235,12236,7,2,0,0,12236,12237,7,22,0,0,12237,12238,7,5,0,0,12238, +1436,1,0,0,0,12239,12240,7,10,0,0,12240,12241,7,7,0,0,12241,12242,7,9,0, +0,12242,12243,7,6,0,0,12243,12244,7,25,0,0,12244,12245,5,95,0,0,12245,12246, +7,3,0,0,12246,12247,7,3,0,0,12247,12248,7,5,0,0,12248,1438,1,0,0,0,12249, +12250,7,10,0,0,12250,12251,7,7,0,0,12251,12252,7,9,0,0,12252,12253,7,6,0, +0,12253,12254,7,25,0,0,12254,12255,5,95,0,0,12255,12256,7,3,0,0,12256,12257, +7,5,0,0,12257,12258,5,95,0,0,12258,12259,7,0,0,0,12259,12260,7,5,0,0,12260, +12261,7,8,0,0,12261,1440,1,0,0,0,12262,12263,7,10,0,0,12263,12264,7,7,0, +0,12264,12265,7,9,0,0,12265,12266,7,6,0,0,12266,12267,7,25,0,0,12267,12268, +5,95,0,0,12268,12269,7,3,0,0,12269,12270,7,5,0,0,12270,12271,5,95,0,0,12271, +12272,7,9,0,0,12272,12273,7,6,0,0,12273,12274,7,5,0,0,12274,12275,7,8,0, +0,12275,1442,1,0,0,0,12276,12277,7,10,0,0,12277,12278,7,7,0,0,12278,12279, +7,9,0,0,12279,12280,7,6,0,0,12280,12281,7,25,0,0,12281,12282,5,95,0,0,12282, +12283,7,3,0,0,12283,12284,7,5,0,0,12284,1444,1,0,0,0,12285,12286,7,10,0, +0,12286,12287,7,7,0,0,12287,12288,7,9,0,0,12288,12289,7,6,0,0,12289,12290, +7,25,0,0,12290,12291,5,95,0,0,12291,12292,7,5,0,0,12292,12293,7,8,0,0,12293, +12294,7,0,0,0,12294,12295,7,7,0,0,12295,1446,1,0,0,0,12296,12297,7,10,0, +0,12297,12298,7,7,0,0,12298,12299,7,9,0,0,12299,12300,7,6,0,0,12300,12301, +7,25,0,0,12301,12302,5,95,0,0,12302,12303,7,5,0,0,12303,12304,7,21,0,0,12304, +12305,7,10,0,0,12305,12306,7,15,0,0,12306,12307,5,95,0,0,12307,12308,7,5, +0,0,12308,12309,7,8,0,0,12309,12310,7,0,0,0,12310,12311,7,7,0,0,12311,1448, +1,0,0,0,12312,12313,7,10,0,0,12313,12314,7,7,0,0,12314,12315,7,9,0,0,12315, +12316,7,6,0,0,12316,12317,7,25,0,0,12317,12318,5,95,0,0,12318,12319,7,5, +0,0,12319,12320,7,5,0,0,12320,12321,5,95,0,0,12321,12322,7,0,0,0,12322,12323, +7,5,0,0,12323,12324,7,8,0,0,12324,1450,1,0,0,0,12325,12326,7,10,0,0,12326, +12327,7,7,0,0,12327,12328,7,9,0,0,12328,12329,7,6,0,0,12329,12330,7,25,0, +0,12330,12331,5,95,0,0,12331,12332,7,5,0,0,12332,12333,7,5,0,0,12333,12334, +5,95,0,0,12334,12335,7,9,0,0,12335,12336,7,6,0,0,12336,12337,7,5,0,0,12337, +12338,7,8,0,0,12338,1452,1,0,0,0,12339,12340,7,10,0,0,12340,12341,7,7,0, +0,12341,12342,7,9,0,0,12342,12343,7,6,0,0,12343,12344,7,25,0,0,12344,12345, +5,95,0,0,12345,12346,7,5,0,0,12346,12347,7,5,0,0,12347,1454,1,0,0,0,12348, +12349,7,10,0,0,12349,12350,7,7,0,0,12350,12351,7,9,0,0,12351,12352,7,6,0, +0,12352,12353,7,25,0,0,12353,12354,5,95,0,0,12354,12355,7,5,0,0,12355,12356, +7,4,0,0,12356,12357,7,0,0,0,12357,12358,7,4,0,0,12358,12359,7,5,0,0,12359, +1456,1,0,0,0,12360,12361,7,10,0,0,12361,12362,7,7,0,0,12362,12363,7,9,0, +0,12363,12364,7,6,0,0,12364,12365,7,25,0,0,12365,12366,7,4,0,0,12366,12367, +7,18,0,0,12367,12368,7,15,0,0,12368,12369,7,6,0,0,12369,1458,1,0,0,0,12370, +12371,7,10,0,0,12371,12372,7,7,0,0,12372,12373,7,9,0,0,12373,12374,7,6,0, +0,12374,12375,7,25,0,0,12375,12376,7,4,0,0,12376,12377,7,18,0,0,12377,12378, +7,15,0,0,12378,12379,7,6,0,0,12379,12380,7,5,0,0,12380,1460,1,0,0,0,12381, +12382,7,10,0,0,12382,12383,7,7,0,0,12383,12384,7,9,0,0,12384,12385,7,10, +0,0,12385,12386,7,8,0,0,12386,12387,7,0,0,0,12387,12388,7,4,0,0,12388,12389, +7,2,0,0,12389,12390,7,3,0,0,12390,1462,1,0,0,0,12391,12392,7,10,0,0,12392, +12393,7,7,0,0,12393,12394,7,9,0,0,12394,12395,7,10,0,0,12395,12396,7,8,0, +0,12396,12397,7,6,0,0,12397,12398,7,5,0,0,12398,1464,1,0,0,0,12399,12400, +7,10,0,0,12400,12401,7,7,0,0,12401,12402,7,16,0,0,12402,12403,7,10,0,0,12403, +12404,7,7,0,0,12404,12405,7,10,0,0,12405,12406,7,4,0,0,12406,12407,7,6,0, +0,12407,1466,1,0,0,0,12408,12409,7,10,0,0,12409,12410,7,7,0,0,12410,12411, +7,16,0,0,12411,12412,7,2,0,0,12412,12413,7,3,0,0,12413,12414,7,14,0,0,12414, +12415,7,0,0,0,12415,12416,7,4,0,0,12416,12417,7,10,0,0,12417,12418,7,2,0, +0,12418,12419,7,7,0,0,12419,12420,7,0,0,0,12420,12421,7,11,0,0,12421,1468, +1,0,0,0,12422,12423,7,10,0,0,12423,12424,7,7,0,0,12424,12425,7,19,0,0,12425, +12426,7,6,0,0,12426,12427,7,3,0,0,12427,12428,7,10,0,0,12428,12429,7,4,0, +0,12429,1470,1,0,0,0,12430,12431,7,10,0,0,12431,12432,7,7,0,0,12432,1472, +1,0,0,0,12433,12434,7,10,0,0,12434,12435,7,7,0,0,12435,12436,7,10,0,0,12436, +12437,7,4,0,0,12437,12438,7,8,0,0,12438,12439,7,0,0,0,12439,12440,7,15,0, +0,12440,1474,1,0,0,0,12441,12442,7,10,0,0,12442,12443,7,7,0,0,12443,12444, +7,10,0,0,12444,12445,7,4,0,0,12445,12446,7,10,0,0,12446,12447,7,0,0,0,12447, +12448,7,11,0,0,12448,1476,1,0,0,0,12449,12450,7,10,0,0,12450,12451,7,7,0, +0,12451,12452,7,10,0,0,12452,12453,7,4,0,0,12453,12454,7,10,0,0,12454,12455, +7,0,0,0,12455,12456,7,11,0,0,12456,12457,7,10,0,0,12457,12458,7,23,0,0,12458, +12459,7,6,0,0,12459,12460,7,9,0,0,12460,1478,1,0,0,0,12461,12462,7,10,0, +0,12462,12463,7,7,0,0,12463,12464,7,10,0,0,12464,12465,7,4,0,0,12465,12466, +7,10,0,0,12466,12467,7,0,0,0,12467,12468,7,11,0,0,12468,12469,7,11,0,0,12469, +12470,7,18,0,0,12470,1480,1,0,0,0,12471,12472,7,10,0,0,12472,12473,7,7,0, +0,12473,12474,7,10,0,0,12474,12475,7,4,0,0,12475,12476,7,3,0,0,12476,12477, +7,0,0,0,12477,12478,7,7,0,0,12478,12479,7,5,0,0,12479,1482,1,0,0,0,12480, +12481,7,10,0,0,12481,12482,7,7,0,0,12482,12483,7,11,0,0,12483,12484,7,10, +0,0,12484,12485,7,7,0,0,12485,12486,7,6,0,0,12486,1484,1,0,0,0,12487,12488, +7,10,0,0,12488,12489,7,7,0,0,12489,12490,7,11,0,0,12490,12491,7,10,0,0,12491, +12492,7,7,0,0,12492,12493,7,6,0,0,12493,12494,5,95,0,0,12494,12495,7,25, +0,0,12495,12496,7,14,0,0,12496,12497,7,11,0,0,12497,12498,7,4,0,0,12498, +12499,7,18,0,0,12499,12500,7,15,0,0,12500,12501,7,6,0,0,12501,12502,5,95, +0,0,12502,12503,7,7,0,0,12503,12504,7,4,0,0,12504,1486,1,0,0,0,12505,12506, +7,10,0,0,12506,12507,7,7,0,0,12507,12508,7,14,0,0,12508,12509,7,6,0,0,12509, +12510,7,14,0,0,12510,12511,7,2,0,0,12511,12512,7,3,0,0,12512,12513,7,18, +0,0,12513,1488,1,0,0,0,12514,12515,7,10,0,0,12515,12516,7,7,0,0,12516,12517, +5,95,0,0,12517,12518,7,14,0,0,12518,12519,7,6,0,0,12519,12520,7,14,0,0,12520, +12521,7,2,0,0,12521,12522,7,3,0,0,12522,12523,7,18,0,0,12523,12524,5,95, +0,0,12524,12525,7,14,0,0,12525,12526,7,6,0,0,12526,12527,7,4,0,0,12527,12528, +7,0,0,0,12528,12529,7,9,0,0,12529,12530,7,0,0,0,12530,12531,7,4,0,0,12531, +12532,7,0,0,0,12532,1490,1,0,0,0,12533,12534,7,10,0,0,12534,12535,7,7,0, +0,12535,12536,7,14,0,0,12536,12537,7,6,0,0,12537,12538,7,14,0,0,12538,12539, +7,2,0,0,12539,12540,7,3,0,0,12540,12541,7,18,0,0,12541,12542,5,95,0,0,12542, +12543,7,15,0,0,12543,12544,7,3,0,0,12544,12545,7,12,0,0,12545,12546,7,7, +0,0,12546,12547,7,10,0,0,12547,12548,7,7,0,0,12548,12549,7,17,0,0,12549, +1492,1,0,0,0,12550,12551,7,10,0,0,12551,12552,7,7,0,0,12552,12553,7,7,0, +0,12553,12554,7,6,0,0,12554,12555,7,3,0,0,12555,1494,1,0,0,0,12556,12557, +7,10,0,0,12557,12558,7,7,0,0,12558,12559,7,2,0,0,12559,12560,7,12,0,0,12560, +12561,7,4,0,0,12561,1496,1,0,0,0,12562,12563,7,10,0,0,12563,12564,7,7,0, +0,12564,12565,7,15,0,0,12565,12566,7,11,0,0,12566,12567,7,0,0,0,12567,12568, +7,8,0,0,12568,12569,7,6,0,0,12569,1498,1,0,0,0,12570,12571,7,10,0,0,12571, +12572,7,7,0,0,12572,12573,7,15,0,0,12573,12574,7,12,0,0,12574,12575,7,4, +0,0,12575,12576,7,16,0,0,12576,12577,7,2,0,0,12577,12578,7,3,0,0,12578,12579, +7,14,0,0,12579,12580,7,0,0,0,12580,12581,7,4,0,0,12581,1500,1,0,0,0,12582, +12583,7,10,0,0,12583,12584,7,7,0,0,12584,12585,7,5,0,0,12585,12586,7,6,0, +0,12586,12587,7,3,0,0,12587,12588,7,4,0,0,12588,12589,7,8,0,0,12589,12590, +7,19,0,0,12590,12591,7,10,0,0,12591,12592,7,11,0,0,12592,12593,7,9,0,0,12593, +12594,7,25,0,0,12594,12595,7,14,0,0,12595,12596,7,11,0,0,12596,12597,7,0, +0,0,12597,12598,7,16,0,0,12598,12599,7,4,0,0,12599,12600,7,6,0,0,12600,12601, +7,3,0,0,12601,1502,1,0,0,0,12602,12603,7,10,0,0,12603,12604,7,7,0,0,12604, +12605,7,5,0,0,12605,12606,7,6,0,0,12606,12607,7,3,0,0,12607,12608,7,4,0, +0,12608,12609,7,8,0,0,12609,12610,7,19,0,0,12610,12611,7,10,0,0,12611,12612, +7,11,0,0,12612,12613,7,9,0,0,12613,12614,7,25,0,0,12614,12615,7,14,0,0,12615, +12616,7,11,0,0,12616,12617,7,1,0,0,12617,12618,7,6,0,0,12618,12619,7,16, +0,0,12619,12620,7,2,0,0,12620,12621,7,3,0,0,12621,12622,7,6,0,0,12622,1504, +1,0,0,0,12623,12624,7,10,0,0,12624,12625,7,7,0,0,12625,12626,7,5,0,0,12626, +12627,7,6,0,0,12627,12628,7,3,0,0,12628,12629,7,4,0,0,12629,12630,7,8,0, +0,12630,12631,7,19,0,0,12631,12632,7,10,0,0,12632,12633,7,11,0,0,12633,12634, +7,9,0,0,12634,12635,7,25,0,0,12635,12636,7,14,0,0,12636,12637,7,11,0,0,12637, +1506,1,0,0,0,12638,12639,7,10,0,0,12639,12640,7,7,0,0,12640,12641,7,5,0, +0,12641,12642,7,6,0,0,12642,12643,7,3,0,0,12643,12644,7,4,0,0,12644,1508, +1,0,0,0,12645,12646,7,10,0,0,12646,12647,7,7,0,0,12647,12648,7,5,0,0,12648, +12649,7,6,0,0,12649,12650,7,3,0,0,12650,12651,7,4,0,0,12651,12652,7,25,0, +0,12652,12653,7,14,0,0,12653,12654,7,11,0,0,12654,12655,7,0,0,0,12655,12656, +7,16,0,0,12656,12657,7,4,0,0,12657,12658,7,6,0,0,12658,12659,7,3,0,0,12659, +1510,1,0,0,0,12660,12661,7,10,0,0,12661,12662,7,7,0,0,12662,12663,7,5,0, +0,12663,12664,7,6,0,0,12664,12665,7,3,0,0,12665,12666,7,4,0,0,12666,12667, +7,25,0,0,12667,12668,7,14,0,0,12668,12669,7,11,0,0,12669,12670,7,1,0,0,12670, +12671,7,6,0,0,12671,12672,7,16,0,0,12672,12673,7,2,0,0,12673,12674,7,3,0, +0,12674,12675,7,6,0,0,12675,1512,1,0,0,0,12676,12677,7,10,0,0,12677,12678, +7,7,0,0,12678,12679,7,5,0,0,12679,12680,7,4,0,0,12680,12681,7,0,0,0,12681, +12682,7,7,0,0,12682,12683,7,8,0,0,12683,12684,7,6,0,0,12684,1514,1,0,0,0, +12685,12686,7,10,0,0,12686,12687,7,7,0,0,12687,12688,7,5,0,0,12688,12689, +7,4,0,0,12689,12690,7,0,0,0,12690,12691,7,7,0,0,12691,12692,7,8,0,0,12692, +12693,7,6,0,0,12693,12694,7,5,0,0,12694,1516,1,0,0,0,12695,12696,7,10,0, +0,12696,12697,7,7,0,0,12697,12698,7,5,0,0,12698,12699,7,4,0,0,12699,12700, +7,0,0,0,12700,12701,7,7,0,0,12701,12702,7,4,0,0,12702,12703,7,10,0,0,12703, +12704,7,0,0,0,12704,12705,7,1,0,0,12705,12706,7,11,0,0,12706,12707,7,6,0, +0,12707,1518,1,0,0,0,12708,12709,7,10,0,0,12709,12710,7,7,0,0,12710,12711, +7,5,0,0,12711,12712,7,4,0,0,12712,12713,7,0,0,0,12713,12714,7,7,0,0,12714, +12715,7,4,0,0,12715,12716,7,11,0,0,12716,12717,7,18,0,0,12717,1520,1,0,0, +0,12718,12719,7,10,0,0,12719,12720,7,7,0,0,12720,12721,7,5,0,0,12721,12722, +7,4,0,0,12722,12723,7,6,0,0,12723,12724,7,0,0,0,12724,12725,7,9,0,0,12725, +1522,1,0,0,0,12726,12727,7,10,0,0,12727,12728,7,7,0,0,12728,12729,7,5,0, +0,12729,12730,7,4,0,0,12730,12731,7,3,0,0,12731,12732,5,50,0,0,12732,1524, +1,0,0,0,12733,12734,7,10,0,0,12734,12735,7,7,0,0,12735,12736,7,5,0,0,12736, +12737,7,4,0,0,12737,12738,7,3,0,0,12738,12739,5,52,0,0,12739,1526,1,0,0, +0,12740,12741,7,10,0,0,12741,12742,7,7,0,0,12742,12743,7,5,0,0,12743,12744, +7,4,0,0,12744,12745,7,3,0,0,12745,12746,7,1,0,0,12746,1528,1,0,0,0,12747, +12748,7,10,0,0,12748,12749,7,7,0,0,12749,12750,7,5,0,0,12750,12751,7,4,0, +0,12751,12752,7,3,0,0,12752,12753,7,8,0,0,12753,1530,1,0,0,0,12754,12755, +7,10,0,0,12755,12756,7,7,0,0,12756,12757,7,5,0,0,12757,12758,7,4,0,0,12758, +12759,7,3,0,0,12759,1532,1,0,0,0,12760,12761,7,10,0,0,12761,12762,7,7,0, +0,12762,12763,7,4,0,0,12763,12764,7,6,0,0,12764,12765,7,17,0,0,12765,12766, +7,6,0,0,12766,12767,7,3,0,0,12767,1534,1,0,0,0,12768,12769,7,10,0,0,12769, +12770,7,7,0,0,12770,12771,7,4,0,0,12771,12772,7,6,0,0,12772,12773,7,3,0, +0,12773,12774,7,11,0,0,12774,12775,7,6,0,0,12775,12776,7,0,0,0,12776,12777, +7,13,0,0,12777,12778,7,6,0,0,12778,12779,7,9,0,0,12779,1536,1,0,0,0,12780, +12781,7,10,0,0,12781,12782,7,7,0,0,12782,12783,7,4,0,0,12783,12784,7,6,0, +0,12784,12785,7,3,0,0,12785,12786,7,14,0,0,12786,12787,7,6,0,0,12787,12788, +7,9,0,0,12788,12789,7,10,0,0,12789,12790,7,0,0,0,12790,12791,7,4,0,0,12791, +12792,7,6,0,0,12792,1538,1,0,0,0,12793,12794,7,10,0,0,12794,12795,7,7,0, +0,12795,12796,7,4,0,0,12796,12797,7,6,0,0,12797,12798,7,3,0,0,12798,12799, +7,7,0,0,12799,12800,7,0,0,0,12800,12801,7,11,0,0,12801,12802,5,95,0,0,12802, +12803,7,8,0,0,12803,12804,7,2,0,0,12804,12805,7,7,0,0,12805,12806,7,13,0, +0,12806,12807,7,6,0,0,12807,12808,7,3,0,0,12808,12809,7,4,0,0,12809,1540, +1,0,0,0,12810,12811,7,10,0,0,12811,12812,7,7,0,0,12812,12813,7,4,0,0,12813, +12814,7,6,0,0,12814,12815,7,3,0,0,12815,12816,7,7,0,0,12816,12817,7,0,0, +0,12817,12818,7,11,0,0,12818,12819,5,95,0,0,12819,12820,7,12,0,0,12820,12821, +7,5,0,0,12821,12822,7,6,0,0,12822,1542,1,0,0,0,12823,12824,7,10,0,0,12824, +12825,7,7,0,0,12825,12826,7,4,0,0,12826,12827,7,6,0,0,12827,12828,7,3,0, +0,12828,12829,7,15,0,0,12829,12830,7,3,0,0,12830,12831,7,6,0,0,12831,12832, +7,4,0,0,12832,12833,7,6,0,0,12833,12834,7,9,0,0,12834,1544,1,0,0,0,12835, +12836,7,10,0,0,12836,12837,7,7,0,0,12837,12838,7,4,0,0,12838,12839,7,6,0, +0,12839,12840,7,3,0,0,12840,12841,7,5,0,0,12841,12842,7,6,0,0,12842,12843, +7,8,0,0,12843,12844,7,4,0,0,12844,1546,1,0,0,0,12845,12846,7,10,0,0,12846, +12847,7,7,0,0,12847,12848,7,4,0,0,12848,12849,7,6,0,0,12849,12850,7,3,0, +0,12850,12851,7,13,0,0,12851,12852,7,0,0,0,12852,12853,7,11,0,0,12853,1548, +1,0,0,0,12854,12855,7,10,0,0,12855,12856,7,7,0,0,12856,12857,7,4,0,0,12857, +1550,1,0,0,0,12858,12859,7,10,0,0,12859,12860,7,7,0,0,12860,12861,7,4,0, +0,12861,12862,7,6,0,0,12862,12863,7,3,0,0,12863,12864,7,7,0,0,12864,12865, +7,0,0,0,12865,12866,7,11,0,0,12866,1552,1,0,0,0,12867,12868,7,10,0,0,12868, +12869,7,7,0,0,12869,12870,7,4,0,0,12870,12871,7,2,0,0,12871,1554,1,0,0,0, +12872,12873,7,10,0,0,12873,12874,7,7,0,0,12874,12875,7,13,0,0,12875,12876, +7,0,0,0,12876,12877,7,11,0,0,12877,12878,7,10,0,0,12878,12879,7,9,0,0,12879, +12880,7,0,0,0,12880,12881,7,4,0,0,12881,12882,7,6,0,0,12882,1556,1,0,0,0, +12883,12884,7,10,0,0,12884,12885,7,7,0,0,12885,12886,7,13,0,0,12886,12887, +7,0,0,0,12887,12888,7,11,0,0,12888,12889,7,10,0,0,12889,12890,7,9,0,0,12890, +12891,7,0,0,0,12891,12892,7,4,0,0,12892,12893,7,10,0,0,12893,12894,7,2,0, +0,12894,12895,7,7,0,0,12895,1558,1,0,0,0,12896,12897,7,10,0,0,12897,12898, +7,7,0,0,12898,12899,7,13,0,0,12899,12900,7,10,0,0,12900,12901,7,5,0,0,12901, +12902,7,10,0,0,12902,12903,7,1,0,0,12903,12904,7,11,0,0,12904,12905,7,6, +0,0,12905,1560,1,0,0,0,12906,12907,7,10,0,0,12907,12908,7,7,0,0,12908,12909, +5,95,0,0,12909,12910,7,25,0,0,12910,12911,7,24,0,0,12911,12912,7,12,0,0, +12912,12913,7,6,0,0,12913,12914,7,3,0,0,12914,12915,7,18,0,0,12915,1562, +1,0,0,0,12916,12917,7,10,0,0,12917,12918,7,2,0,0,12918,12919,5,95,0,0,12919, +12920,7,2,0,0,12920,12921,7,15,0,0,12921,12922,7,4,0,0,12922,12923,7,10, +0,0,12923,12924,7,2,0,0,12924,12925,7,7,0,0,12925,12926,7,5,0,0,12926,1564, +1,0,0,0,12927,12928,7,10,0,0,12928,12929,7,5,0,0,12929,1566,1,0,0,0,12930, +12931,7,10,0,0,12931,12932,7,5,0,0,12932,12933,5,95,0,0,12933,12934,7,11, +0,0,12934,12935,7,6,0,0,12935,12936,7,0,0,0,12936,12937,7,16,0,0,12937,1568, +1,0,0,0,12938,12939,7,10,0,0,12939,12940,7,5,0,0,12940,12941,7,2,0,0,12941, +12942,7,11,0,0,12942,12943,7,0,0,0,12943,12944,7,4,0,0,12944,12945,7,10, +0,0,12945,12946,7,2,0,0,12946,12947,7,7,0,0,12947,1570,1,0,0,0,12948,12949, +7,10,0,0,12949,12950,7,5,0,0,12950,12951,7,2,0,0,12951,12952,7,11,0,0,12952, +12953,7,0,0,0,12953,12954,7,4,0,0,12954,12955,7,10,0,0,12955,12956,7,2,0, +0,12956,12957,7,7,0,0,12957,12958,5,95,0,0,12958,12959,7,11,0,0,12959,12960, +7,6,0,0,12960,12961,7,13,0,0,12961,12962,7,6,0,0,12962,12963,7,11,0,0,12963, +1572,1,0,0,0,12964,12965,7,10,0,0,12965,12966,7,4,0,0,12966,12967,7,6,0, +0,12967,12968,7,14,0,0,12968,12969,7,5,0,0,12969,1574,1,0,0,0,12970,12971, +7,10,0,0,12971,12972,7,4,0,0,12972,12973,7,6,0,0,12973,12974,7,3,0,0,12974, +12975,7,0,0,0,12975,12976,7,4,0,0,12976,12977,7,6,0,0,12977,1576,1,0,0,0, +12978,12979,7,10,0,0,12979,12980,7,4,0,0,12980,12981,7,6,0,0,12981,12982, +7,3,0,0,12982,12983,7,0,0,0,12983,12984,7,4,0,0,12984,12985,7,10,0,0,12985, +12986,7,2,0,0,12986,12987,7,7,0,0,12987,12988,5,95,0,0,12988,12989,7,7,0, +0,12989,12990,7,12,0,0,12990,12991,7,14,0,0,12991,12992,7,1,0,0,12992,12993, +7,6,0,0,12993,12994,7,3,0,0,12994,1578,1,0,0,0,12995,12996,7,20,0,0,12996, +12997,7,0,0,0,12997,12998,7,13,0,0,12998,12999,7,0,0,0,12999,1580,1,0,0, +0,13000,13001,7,20,0,0,13001,13002,7,2,0,0,13002,13003,7,1,0,0,13003,1582, +1,0,0,0,13004,13005,7,20,0,0,13005,13006,7,2,0,0,13006,13007,7,10,0,0,13007, +13008,7,7,0,0,13008,1584,1,0,0,0,13009,13010,7,20,0,0,13010,13011,7,5,0, +0,13011,13012,7,2,0,0,13012,13013,7,7,0,0,13013,13014,5,95,0,0,13014,13015, +7,0,0,0,13015,13016,7,3,0,0,13016,13017,7,3,0,0,13017,13018,7,0,0,0,13018, +13019,7,18,0,0,13019,13020,7,0,0,0,13020,13021,7,17,0,0,13021,13022,7,17, +0,0,13022,1586,1,0,0,0,13023,13024,7,20,0,0,13024,13025,7,5,0,0,13025,13026, +7,2,0,0,13026,13027,7,7,0,0,13027,13028,5,95,0,0,13028,13029,7,0,0,0,13029, +13030,7,3,0,0,13030,13031,7,3,0,0,13031,13032,7,0,0,0,13032,13033,7,18,0, +0,13033,1588,1,0,0,0,13034,13035,7,20,0,0,13035,13036,7,5,0,0,13036,13037, +7,2,0,0,13037,13038,7,7,0,0,13038,13039,5,95,0,0,13039,13040,7,6,0,0,13040, +13041,7,24,0,0,13041,13042,7,12,0,0,13042,13043,7,0,0,0,13043,13044,7,11, +0,0,13044,1590,1,0,0,0,13045,13046,7,20,0,0,13046,13047,7,5,0,0,13047,13048, +7,2,0,0,13048,13049,7,7,0,0,13049,13050,5,95,0,0,13050,13051,7,6,0,0,13051, +13052,7,25,0,0,13052,13053,7,10,0,0,13053,13054,7,5,0,0,13054,13055,7,4, +0,0,13055,13056,7,5,0,0,13056,13057,5,50,0,0,13057,1592,1,0,0,0,13058,13059, +7,20,0,0,13059,13060,7,5,0,0,13060,13061,7,2,0,0,13061,13062,7,7,0,0,13062, +13063,5,95,0,0,13063,13064,7,6,0,0,13064,13065,7,25,0,0,13065,13066,7,10, +0,0,13066,13067,7,5,0,0,13067,13068,7,4,0,0,13068,13069,7,5,0,0,13069,1594, +1,0,0,0,13070,13071,7,20,0,0,13071,13072,7,5,0,0,13072,13073,7,2,0,0,13073, +13074,7,7,0,0,13074,13075,7,17,0,0,13075,13076,7,6,0,0,13076,13077,7,4,0, +0,13077,1596,1,0,0,0,13078,13079,7,20,0,0,13079,13080,7,5,0,0,13080,13081, +7,2,0,0,13081,13082,7,7,0,0,13082,1598,1,0,0,0,13083,13084,7,20,0,0,13084, +13085,7,5,0,0,13085,13086,7,2,0,0,13086,13087,7,7,0,0,13087,13088,5,95,0, +0,13088,13089,7,2,0,0,13089,13090,7,1,0,0,13090,13091,7,20,0,0,13091,13092, +7,6,0,0,13092,13093,7,8,0,0,13093,13094,7,4,0,0,13094,13095,7,0,0,0,13095, +13096,7,17,0,0,13096,13097,7,17,0,0,13097,1600,1,0,0,0,13098,13099,7,20, +0,0,13099,13100,7,5,0,0,13100,13101,7,2,0,0,13101,13102,7,7,0,0,13102,13103, +5,95,0,0,13103,13104,7,2,0,0,13104,13105,7,1,0,0,13105,13106,7,20,0,0,13106, +13107,7,6,0,0,13107,13108,7,8,0,0,13108,13109,7,4,0,0,13109,1602,1,0,0,0, +13110,13111,7,20,0,0,13111,13112,7,5,0,0,13112,13113,7,2,0,0,13113,13114, +7,7,0,0,13114,13115,7,15,0,0,13115,13116,7,0,0,0,13116,13117,7,3,0,0,13117, +13118,7,5,0,0,13118,13119,7,6,0,0,13119,1604,1,0,0,0,13120,13121,7,20,0, +0,13121,13122,7,5,0,0,13122,13123,7,2,0,0,13123,13124,7,7,0,0,13124,13125, +5,95,0,0,13125,13126,7,24,0,0,13126,13127,7,12,0,0,13127,13128,7,6,0,0,13128, +13129,7,3,0,0,13129,13130,7,18,0,0,13130,1606,1,0,0,0,13131,13132,7,20,0, +0,13132,13133,7,5,0,0,13133,13134,7,2,0,0,13134,13135,7,7,0,0,13135,13136, +5,95,0,0,13136,13137,7,5,0,0,13137,13138,7,6,0,0,13138,13139,7,3,0,0,13139, +13140,7,10,0,0,13140,13141,7,0,0,0,13141,13142,7,11,0,0,13142,13143,7,10, +0,0,13143,13144,7,23,0,0,13144,13145,7,6,0,0,13145,1608,1,0,0,0,13146,13147, +7,20,0,0,13147,13148,7,5,0,0,13148,13149,7,2,0,0,13149,13150,7,7,0,0,13150, +13151,5,95,0,0,13151,13152,7,4,0,0,13152,13153,7,0,0,0,13153,13154,7,1,0, +0,13154,13155,7,11,0,0,13155,13156,7,6,0,0,13156,1610,1,0,0,0,13157,13158, +7,20,0,0,13158,13159,7,5,0,0,13159,13160,7,2,0,0,13160,13161,7,7,0,0,13161, +13162,5,95,0,0,13162,13163,7,4,0,0,13163,13164,7,6,0,0,13164,13165,7,25, +0,0,13165,13166,7,4,0,0,13166,13167,7,8,0,0,13167,13168,7,2,0,0,13168,13169, +7,7,0,0,13169,13170,7,4,0,0,13170,13171,7,0,0,0,13171,13172,7,10,0,0,13172, +13173,7,7,0,0,13173,13174,7,5,0,0,13174,13175,5,50,0,0,13175,1612,1,0,0, +0,13176,13177,7,20,0,0,13177,13178,7,5,0,0,13178,13179,7,2,0,0,13179,13180, +7,7,0,0,13180,13181,5,95,0,0,13181,13182,7,4,0,0,13182,13183,7,6,0,0,13183, +13184,7,25,0,0,13184,13185,7,4,0,0,13185,13186,7,8,0,0,13186,13187,7,2,0, +0,13187,13188,7,7,0,0,13188,13189,7,4,0,0,13189,13190,7,0,0,0,13190,13191, +7,10,0,0,13191,13192,7,7,0,0,13192,13193,7,5,0,0,13193,1614,1,0,0,0,13194, +13195,7,20,0,0,13195,13196,7,5,0,0,13196,13197,7,2,0,0,13197,13198,7,7,0, +0,13198,13199,5,95,0,0,13199,13200,7,4,0,0,13200,13201,7,3,0,0,13201,13202, +7,0,0,0,13202,13203,7,7,0,0,13203,13204,7,5,0,0,13204,13205,7,16,0,0,13205, +13206,7,2,0,0,13206,13207,7,3,0,0,13207,13208,7,14,0,0,13208,1616,1,0,0, +0,13209,13210,7,20,0,0,13210,13211,7,5,0,0,13211,13212,7,2,0,0,13212,13213, +7,7,0,0,13213,13214,5,95,0,0,13214,13215,7,13,0,0,13215,13216,7,0,0,0,13216, +13217,7,11,0,0,13217,13218,7,12,0,0,13218,13219,7,6,0,0,13219,1618,1,0,0, +0,13220,13221,7,21,0,0,13221,1620,1,0,0,0,13222,13223,7,21,0,0,13223,13224, +7,6,0,0,13224,13225,7,6,0,0,13225,13226,7,15,0,0,13226,13227,5,95,0,0,13227, +13228,7,9,0,0,13228,13229,7,12,0,0,13229,13230,7,15,0,0,13230,13231,7,11, +0,0,13231,13232,7,10,0,0,13232,13233,7,8,0,0,13233,13234,7,0,0,0,13234,13235, +7,4,0,0,13235,13236,7,6,0,0,13236,13237,7,5,0,0,13237,1622,1,0,0,0,13238, +13239,7,21,0,0,13239,13240,7,6,0,0,13240,13241,7,6,0,0,13241,13242,7,15, +0,0,13242,1624,1,0,0,0,13243,13244,7,21,0,0,13244,13245,7,6,0,0,13245,13246, +7,3,0,0,13246,13247,7,1,0,0,13247,13248,7,6,0,0,13248,13249,7,3,0,0,13249, +13250,7,2,0,0,13250,13251,7,5,0,0,13251,1626,1,0,0,0,13252,13253,7,21,0, +0,13253,13254,7,6,0,0,13254,13255,7,18,0,0,13255,1628,1,0,0,0,13256,13257, +7,21,0,0,13257,13258,7,6,0,0,13258,13259,7,18,0,0,13259,13260,5,95,0,0,13260, +13261,7,11,0,0,13261,13262,7,6,0,0,13262,13263,7,7,0,0,13263,13264,7,17, +0,0,13264,13265,7,4,0,0,13265,13266,7,19,0,0,13266,1630,1,0,0,0,13267,13268, +7,21,0,0,13268,13269,7,6,0,0,13269,13270,7,18,0,0,13270,13271,7,5,0,0,13271, +13272,7,10,0,0,13272,13273,7,23,0,0,13273,13274,7,6,0,0,13274,1632,1,0,0, +0,13275,13276,7,21,0,0,13276,13277,7,6,0,0,13277,13278,7,18,0,0,13278,13279, +7,5,0,0,13279,1634,1,0,0,0,13280,13281,7,21,0,0,13281,13282,7,6,0,0,13282, +13283,7,18,0,0,13283,13284,7,5,0,0,13284,13285,7,4,0,0,13285,13286,7,2,0, +0,13286,13287,7,3,0,0,13287,13288,7,6,0,0,13288,1636,1,0,0,0,13289,13290, +7,21,0,0,13290,13291,7,10,0,0,13291,13292,7,11,0,0,13292,13293,7,11,0,0, +13293,1638,1,0,0,0,13294,13295,7,11,0,0,13295,13296,7,0,0,0,13296,13297, +7,1,0,0,13297,13298,7,6,0,0,13298,13299,7,11,0,0,13299,1640,1,0,0,0,13300, +13301,7,11,0,0,13301,13302,7,0,0,0,13302,13303,7,7,0,0,13303,13304,7,17, +0,0,13304,13305,7,12,0,0,13305,13306,7,0,0,0,13306,13307,7,17,0,0,13307, +13308,7,6,0,0,13308,1642,1,0,0,0,13309,13310,7,11,0,0,13310,13311,7,0,0, +0,13311,13312,7,5,0,0,13312,13313,7,4,0,0,13313,13314,5,95,0,0,13314,13315, +7,9,0,0,13315,13316,7,0,0,0,13316,13317,7,18,0,0,13317,1644,1,0,0,0,13318, +13319,7,11,0,0,13319,13320,7,0,0,0,13320,13321,7,5,0,0,13321,13322,7,4,0, +0,13322,1646,1,0,0,0,13323,13324,7,11,0,0,13324,13325,7,0,0,0,13325,13326, +7,5,0,0,13326,13327,7,4,0,0,13327,13328,5,95,0,0,13328,13329,7,13,0,0,13329, +13330,7,0,0,0,13330,13331,7,11,0,0,13331,13332,7,12,0,0,13332,13333,7,6, +0,0,13333,1648,1,0,0,0,13334,13335,7,11,0,0,13335,13336,7,0,0,0,13336,13337, +7,4,0,0,13337,13338,7,6,0,0,13338,13339,7,3,0,0,13339,13340,7,0,0,0,13340, +13341,7,11,0,0,13341,1650,1,0,0,0,13342,13343,7,11,0,0,13343,13344,7,0,0, +0,13344,13345,7,4,0,0,13345,13346,7,6,0,0,13346,13347,7,5,0,0,13347,13348, +7,4,0,0,13348,1652,1,0,0,0,13349,13350,7,11,0,0,13350,13351,7,0,0,0,13351, +13352,7,25,0,0,13352,1654,1,0,0,0,13353,13354,7,11,0,0,13354,13355,7,0,0, +0,13355,13356,7,18,0,0,13356,13357,7,6,0,0,13357,13358,7,3,0,0,13358,1656, +1,0,0,0,13359,13360,7,11,0,0,13360,13361,7,9,0,0,13361,13362,7,0,0,0,13362, +13363,7,15,0,0,13363,13364,5,95,0,0,13364,13365,7,3,0,0,13365,13366,7,6, +0,0,13366,13367,7,17,0,0,13367,13368,7,10,0,0,13368,13369,7,5,0,0,13369, +13370,7,4,0,0,13370,13371,7,3,0,0,13371,13372,7,0,0,0,13372,13373,7,4,0, +0,13373,13374,7,10,0,0,13374,13375,7,2,0,0,13375,13376,7,7,0,0,13376,13377, +5,95,0,0,13377,13378,7,6,0,0,13378,13379,7,7,0,0,13379,13380,7,0,0,0,13380, +13381,7,1,0,0,13381,13382,7,11,0,0,13382,13383,7,6,0,0,13383,13384,7,9,0, +0,13384,1658,1,0,0,0,13385,13386,7,11,0,0,13386,13387,7,9,0,0,13387,13388, +7,0,0,0,13388,13389,7,15,0,0,13389,13390,5,95,0,0,13390,13391,7,3,0,0,13391, +13392,7,6,0,0,13392,13393,7,17,0,0,13393,13394,7,10,0,0,13394,13395,7,5, +0,0,13395,13396,7,4,0,0,13396,13397,7,3,0,0,13397,13398,7,0,0,0,13398,13399, +7,4,0,0,13399,13400,7,10,0,0,13400,13401,7,2,0,0,13401,13402,7,7,0,0,13402, +1660,1,0,0,0,13403,13404,7,11,0,0,13404,13405,7,9,0,0,13405,13406,7,0,0, +0,13406,13407,7,15,0,0,13407,13408,5,95,0,0,13408,13409,7,3,0,0,13409,13410, +7,6,0,0,13410,13411,7,17,0,0,13411,13412,5,95,0,0,13412,13413,7,5,0,0,13413, +13414,7,18,0,0,13414,13415,7,7,0,0,13415,13416,7,8,0,0,13416,13417,5,95, +0,0,13417,13418,7,10,0,0,13418,13419,7,7,0,0,13419,13420,7,4,0,0,13420,13421, +7,6,0,0,13421,13422,7,3,0,0,13422,13423,7,13,0,0,13423,13424,7,0,0,0,13424, +13425,7,11,0,0,13425,1662,1,0,0,0,13426,13427,7,11,0,0,13427,13428,7,9,0, +0,13428,13429,7,3,0,0,13429,13430,7,4,0,0,13430,13431,7,3,0,0,13431,13432, +7,10,0,0,13432,13433,7,14,0,0,13433,1664,1,0,0,0,13434,13435,7,11,0,0,13435, +13436,7,6,0,0,13436,13437,7,0,0,0,13437,13438,7,16,0,0,13438,1666,1,0,0, +0,13439,13440,7,11,0,0,13440,13441,7,6,0,0,13441,13442,7,0,0,0,13442,13443, +7,9,0,0,13443,13444,5,95,0,0,13444,13445,7,8,0,0,13445,13446,7,9,0,0,13446, +13447,7,1,0,0,13447,1668,1,0,0,0,13448,13449,7,11,0,0,13449,13450,7,6,0, +0,13450,13451,7,0,0,0,13451,13452,7,9,0,0,13452,13453,5,95,0,0,13453,13454, +7,8,0,0,13454,13455,7,9,0,0,13455,13456,7,1,0,0,13456,13457,5,95,0,0,13457, +13458,7,12,0,0,13458,13459,7,3,0,0,13459,13460,7,10,0,0,13460,1670,1,0,0, +0,13461,13462,7,11,0,0,13462,13463,7,6,0,0,13463,13464,7,0,0,0,13464,13465, +7,9,0,0,13465,13466,7,10,0,0,13466,13467,7,7,0,0,13467,13468,7,17,0,0,13468, +1672,1,0,0,0,13469,13470,7,11,0,0,13470,13471,7,6,0,0,13471,13472,7,16,0, +0,13472,13473,7,4,0,0,13473,1674,1,0,0,0,13474,13475,7,11,0,0,13475,13476, +7,6,0,0,13476,13477,7,7,0,0,13477,13478,7,17,0,0,13478,13479,7,4,0,0,13479, +13480,7,19,0,0,13480,13481,5,50,0,0,13481,1676,1,0,0,0,13482,13483,7,11, +0,0,13483,13484,7,6,0,0,13484,13485,7,7,0,0,13485,13486,7,17,0,0,13486,13487, +7,4,0,0,13487,13488,7,19,0,0,13488,13489,5,52,0,0,13489,1678,1,0,0,0,13490, +13491,7,11,0,0,13491,13492,7,6,0,0,13492,13493,7,7,0,0,13493,13494,7,17, +0,0,13494,13495,7,4,0,0,13495,13496,7,19,0,0,13496,13497,7,1,0,0,13497,1680, +1,0,0,0,13498,13499,7,11,0,0,13499,13500,7,6,0,0,13500,13501,7,7,0,0,13501, +13502,7,17,0,0,13502,13503,7,4,0,0,13503,13504,7,19,0,0,13504,13505,7,8, +0,0,13505,1682,1,0,0,0,13506,13507,7,11,0,0,13507,13508,7,6,0,0,13508,13509, +7,7,0,0,13509,13510,7,17,0,0,13510,13511,7,4,0,0,13511,13512,7,19,0,0,13512, +1684,1,0,0,0,13513,13514,7,11,0,0,13514,13515,7,6,0,0,13515,13516,7,5,0, +0,13516,13517,7,5,0,0,13517,1686,1,0,0,0,13518,13519,7,11,0,0,13519,13520, +7,6,0,0,13520,13521,7,13,0,0,13521,13522,7,6,0,0,13522,13523,7,11,0,0,13523, +1688,1,0,0,0,13524,13525,7,11,0,0,13525,13526,7,6,0,0,13526,13527,7,13,0, +0,13527,13528,7,6,0,0,13528,13529,7,11,0,0,13529,13530,5,95,0,0,13530,13531, +7,7,0,0,13531,13532,7,0,0,0,13532,13533,7,14,0,0,13533,13534,7,6,0,0,13534, +1690,1,0,0,0,13535,13536,7,11,0,0,13536,13537,7,6,0,0,13537,13538,7,13,0, +0,13538,13539,7,6,0,0,13539,13540,7,11,0,0,13540,13541,7,5,0,0,13541,1692, +1,0,0,0,13542,13543,7,11,0,0,13543,13544,7,10,0,0,13544,13545,7,1,0,0,13545, +13546,7,3,0,0,13546,13547,7,0,0,0,13547,13548,7,3,0,0,13548,13549,7,18,0, +0,13549,1694,1,0,0,0,13550,13551,7,11,0,0,13551,13552,7,10,0,0,13552,13553, +7,16,0,0,13553,13554,7,6,0,0,13554,13555,7,8,0,0,13555,13556,7,18,0,0,13556, +13557,7,8,0,0,13557,13558,7,11,0,0,13558,13559,7,6,0,0,13559,1696,1,0,0, +0,13560,13561,7,11,0,0,13561,13562,7,10,0,0,13562,13563,7,16,0,0,13563,13564, +7,6,0,0,13564,1698,1,0,0,0,13565,13566,7,11,0,0,13566,13567,7,10,0,0,13567, +13568,7,16,0,0,13568,13569,7,6,0,0,13569,13570,7,4,0,0,13570,13571,7,10, +0,0,13571,13572,7,14,0,0,13572,13573,7,6,0,0,13573,1700,1,0,0,0,13574,13575, +7,11,0,0,13575,13576,7,10,0,0,13576,13577,7,21,0,0,13577,13578,7,6,0,0,13578, +13579,5,50,0,0,13579,1702,1,0,0,0,13580,13581,7,11,0,0,13581,13582,7,10, +0,0,13582,13583,7,21,0,0,13583,13584,7,6,0,0,13584,13585,5,52,0,0,13585, +1704,1,0,0,0,13586,13587,7,11,0,0,13587,13588,7,10,0,0,13588,13589,7,21, +0,0,13589,13590,7,6,0,0,13590,13591,7,8,0,0,13591,1706,1,0,0,0,13592,13593, +7,11,0,0,13593,13594,7,10,0,0,13594,13595,7,21,0,0,13595,13596,7,6,0,0,13596, +13597,5,95,0,0,13597,13598,7,6,0,0,13598,13599,7,25,0,0,13599,13600,7,15, +0,0,13600,13601,7,0,0,0,13601,13602,7,7,0,0,13602,13603,7,9,0,0,13603,1708, +1,0,0,0,13604,13605,7,11,0,0,13605,13606,7,10,0,0,13606,13607,7,21,0,0,13607, +13608,7,6,0,0,13608,1710,1,0,0,0,13609,13610,7,11,0,0,13610,13611,7,10,0, +0,13611,13612,7,14,0,0,13612,13613,7,10,0,0,13613,13614,7,4,0,0,13614,1712, +1,0,0,0,13615,13616,7,11,0,0,13616,13617,7,10,0,0,13617,13618,7,7,0,0,13618, +13619,7,6,0,0,13619,13620,7,0,0,0,13620,13621,7,3,0,0,13621,1714,1,0,0,0, +13622,13623,7,11,0,0,13623,13624,7,10,0,0,13624,13625,7,7,0,0,13625,13626, +7,6,0,0,13626,13627,7,5,0,0,13627,1716,1,0,0,0,13628,13629,7,11,0,0,13629, +13630,7,10,0,0,13630,13631,7,7,0,0,13631,13632,7,21,0,0,13632,1718,1,0,0, +0,13633,13634,7,11,0,0,13634,13635,7,10,0,0,13635,13636,7,5,0,0,13636,13637, +7,4,0,0,13637,1720,1,0,0,0,13638,13639,7,11,0,0,13639,13640,7,10,0,0,13640, +13641,7,4,0,0,13641,13642,7,4,0,0,13642,13643,7,11,0,0,13643,13644,7,6,0, +0,13644,1722,1,0,0,0,13645,13646,7,11,0,0,13646,13647,7,11,0,0,13647,13648, +7,5,0,0,13648,1724,1,0,0,0,13649,13650,7,11,0,0,13650,13651,7,7,0,0,13651, +1726,1,0,0,0,13652,13653,7,11,0,0,13653,13654,7,7,0,0,13654,13655,7,7,0, +0,13655,13656,7,13,0,0,13656,13657,7,11,0,0,13657,1728,1,0,0,0,13658,13659, +7,11,0,0,13659,13660,7,2,0,0,13660,13661,7,0,0,0,13661,13662,7,9,0,0,13662, +1730,1,0,0,0,13663,13664,7,11,0,0,13664,13665,7,2,0,0,13665,13666,7,1,0, +0,13666,1732,1,0,0,0,13667,13668,7,11,0,0,13668,13669,7,2,0,0,13669,13670, +7,1,0,0,13670,13671,7,16,0,0,13671,13672,7,10,0,0,13672,13673,7,11,0,0,13673, +13674,7,6,0,0,13674,1734,1,0,0,0,13675,13676,7,11,0,0,13676,13677,7,2,0, +0,13677,13678,7,1,0,0,13678,13679,7,7,0,0,13679,13680,7,13,0,0,13680,13681, +7,11,0,0,13681,1736,1,0,0,0,13682,13683,7,11,0,0,13683,13684,7,2,0,0,13684, +13685,7,1,0,0,13685,13686,7,5,0,0,13686,1738,1,0,0,0,13687,13688,7,11,0, +0,13688,13689,7,2,0,0,13689,13690,7,8,0,0,13690,13691,7,0,0,0,13691,13692, +7,11,0,0,13692,13693,5,95,0,0,13693,13694,7,10,0,0,13694,13695,7,7,0,0,13695, +13696,7,9,0,0,13696,13697,7,6,0,0,13697,13698,7,25,0,0,13698,13699,7,6,0, +0,13699,13700,7,5,0,0,13700,1740,1,0,0,0,13701,13702,7,11,0,0,13702,13703, +7,2,0,0,13703,13704,7,8,0,0,13704,13705,7,0,0,0,13705,13706,7,11,0,0,13706, +1742,1,0,0,0,13707,13708,7,11,0,0,13708,13709,7,2,0,0,13709,13710,7,8,0, +0,13710,13711,7,0,0,0,13711,13712,7,11,0,0,13712,13713,7,4,0,0,13713,13714, +7,10,0,0,13714,13715,7,14,0,0,13715,13716,7,6,0,0,13716,1744,1,0,0,0,13717, +13718,7,11,0,0,13718,13719,7,2,0,0,13719,13720,7,8,0,0,13720,13721,7,0,0, +0,13721,13722,7,11,0,0,13722,13723,7,4,0,0,13723,13724,7,10,0,0,13724,13725, +7,14,0,0,13725,13726,7,6,0,0,13726,13727,7,5,0,0,13727,13728,7,4,0,0,13728, +13729,7,0,0,0,13729,13730,7,14,0,0,13730,13731,7,15,0,0,13731,1746,1,0,0, +0,13732,13733,7,11,0,0,13733,13734,7,2,0,0,13734,13735,7,8,0,0,13735,13736, +7,0,0,0,13736,13737,7,4,0,0,13737,13738,7,10,0,0,13738,13739,7,2,0,0,13739, +13740,7,7,0,0,13740,1748,1,0,0,0,13741,13742,7,11,0,0,13742,13743,7,2,0, +0,13743,13744,7,8,0,0,13744,13745,7,0,0,0,13745,13746,7,4,0,0,13746,13747, +7,2,0,0,13747,13748,7,3,0,0,13748,1750,1,0,0,0,13749,13750,7,11,0,0,13750, +13751,7,2,0,0,13751,13752,7,8,0,0,13752,13753,7,21,0,0,13753,13754,7,9,0, +0,13754,13755,7,2,0,0,13755,13756,7,22,0,0,13756,13757,7,7,0,0,13757,1752, +1,0,0,0,13758,13759,7,11,0,0,13759,13760,7,2,0,0,13760,13761,7,8,0,0,13761, +13762,7,21,0,0,13762,13763,7,6,0,0,13763,13764,7,9,0,0,13764,1754,1,0,0, +0,13765,13766,7,11,0,0,13766,13767,7,2,0,0,13767,13768,7,8,0,0,13768,13769, +7,21,0,0,13769,13770,7,10,0,0,13770,13771,7,7,0,0,13771,13772,7,17,0,0,13772, +1756,1,0,0,0,13773,13774,7,11,0,0,13774,13775,7,2,0,0,13775,13776,7,8,0, +0,13776,13777,7,21,0,0,13777,1758,1,0,0,0,13778,13779,7,11,0,0,13779,13780, +7,2,0,0,13780,13781,7,17,0,0,13781,13782,7,16,0,0,13782,13783,7,10,0,0,13783, +13784,7,11,0,0,13784,13785,7,6,0,0,13785,1760,1,0,0,0,13786,13787,7,11,0, +0,13787,13788,7,2,0,0,13788,13789,7,17,0,0,13789,13790,7,16,0,0,13790,13791, +7,10,0,0,13791,13792,7,11,0,0,13792,13793,7,6,0,0,13793,13794,7,5,0,0,13794, +1762,1,0,0,0,13795,13796,7,11,0,0,13796,13797,7,2,0,0,13797,13798,7,17,0, +0,13798,13799,7,17,0,0,13799,13800,7,10,0,0,13800,13801,7,7,0,0,13801,13802, +7,17,0,0,13802,1764,1,0,0,0,13803,13804,7,11,0,0,13804,13805,7,2,0,0,13805, +13806,7,17,0,0,13806,13807,7,10,0,0,13807,13808,7,8,0,0,13808,13809,7,0, +0,0,13809,13810,7,11,0,0,13810,1766,1,0,0,0,13811,13812,7,11,0,0,13812,13813, +7,2,0,0,13813,13814,7,17,0,0,13814,13815,7,10,0,0,13815,13816,7,8,0,0,13816, +13817,7,0,0,0,13817,13818,7,11,0,0,13818,13819,5,95,0,0,13819,13820,7,3, +0,0,13820,13821,7,6,0,0,13821,13822,7,0,0,0,13822,13823,7,9,0,0,13823,13824, +7,5,0,0,13824,13825,5,95,0,0,13825,13826,7,15,0,0,13826,13827,7,6,0,0,13827, +13828,7,3,0,0,13828,13829,5,95,0,0,13829,13830,7,8,0,0,13830,13831,7,0,0, +0,13831,13832,7,11,0,0,13832,13833,7,11,0,0,13833,1768,1,0,0,0,13834,13835, +7,11,0,0,13835,13836,7,2,0,0,13836,13837,7,17,0,0,13837,13838,7,10,0,0,13838, +13839,7,8,0,0,13839,13840,7,0,0,0,13840,13841,7,11,0,0,13841,13842,5,95, +0,0,13842,13843,7,3,0,0,13843,13844,7,6,0,0,13844,13845,7,0,0,0,13845,13846, +7,9,0,0,13846,13847,7,5,0,0,13847,13848,5,95,0,0,13848,13849,7,15,0,0,13849, +13850,7,6,0,0,13850,13851,7,3,0,0,13851,13852,5,95,0,0,13852,13853,7,5,0, +0,13853,13854,7,6,0,0,13854,13855,7,5,0,0,13855,13856,7,5,0,0,13856,13857, +7,10,0,0,13857,13858,7,2,0,0,13858,13859,7,7,0,0,13859,1770,1,0,0,0,13860, +13861,7,11,0,0,13861,13862,7,2,0,0,13862,13863,7,17,0,0,13863,1772,1,0,0, +0,13864,13865,7,11,0,0,13865,13866,7,2,0,0,13866,13867,7,17,0,0,13867,13868, +7,14,0,0,13868,13869,7,10,0,0,13869,13870,7,7,0,0,13870,13871,7,10,0,0,13871, +13872,7,7,0,0,13872,13873,7,17,0,0,13873,1774,1,0,0,0,13874,13875,7,11,0, +0,13875,13876,7,2,0,0,13876,13877,7,17,0,0,13877,13878,7,2,0,0,13878,13879, +7,16,0,0,13879,13880,7,16,0,0,13880,1776,1,0,0,0,13881,13882,7,11,0,0,13882, +13883,7,2,0,0,13883,13884,7,17,0,0,13884,13885,7,2,0,0,13885,13886,7,7,0, +0,13886,1778,1,0,0,0,13887,13888,7,11,0,0,13888,13889,7,2,0,0,13889,13890, +7,17,0,0,13890,13891,5,95,0,0,13891,13892,7,3,0,0,13892,13893,7,6,0,0,13893, +13894,7,0,0,0,13894,13895,7,9,0,0,13895,13896,5,95,0,0,13896,13897,7,2,0, +0,13897,13898,7,7,0,0,13898,13899,7,11,0,0,13899,13900,7,18,0,0,13900,13901, +5,95,0,0,13901,13902,7,13,0,0,13902,13903,7,10,0,0,13903,13904,7,2,0,0,13904, +13905,7,11,0,0,13905,13906,7,0,0,0,13906,13907,7,4,0,0,13907,13908,7,10, +0,0,13908,13909,7,2,0,0,13909,13910,7,7,0,0,13910,13911,7,5,0,0,13911,1780, +1,0,0,0,13912,13913,7,11,0,0,13913,13914,7,2,0,0,13914,13915,7,7,0,0,13915, +13916,7,17,0,0,13916,1782,1,0,0,0,13917,13918,7,11,0,0,13918,13919,7,2,0, +0,13919,13920,7,2,0,0,13920,13921,7,15,0,0,13921,1784,1,0,0,0,13922,13923, +7,11,0,0,13923,13924,7,2,0,0,13924,13925,7,5,0,0,13925,13926,7,4,0,0,13926, +1786,1,0,0,0,13927,13928,7,11,0,0,13928,13929,7,2,0,0,13929,13930,7,22,0, +0,13930,13931,7,6,0,0,13931,13932,7,3,0,0,13932,1788,1,0,0,0,13933,13934, +7,11,0,0,13934,13935,7,2,0,0,13935,13936,7,22,0,0,13936,1790,1,0,0,0,13937, +13938,7,11,0,0,13938,13939,7,15,0,0,13939,13940,7,0,0,0,13940,13941,7,9, +0,0,13941,1792,1,0,0,0,13942,13943,7,11,0,0,13943,13944,7,3,0,0,13944,13945, +7,4,0,0,13945,13946,7,3,0,0,13946,13947,7,10,0,0,13947,13948,7,14,0,0,13948, +1794,1,0,0,0,13949,13950,7,11,0,0,13950,13951,7,4,0,0,13951,13952,7,3,0, +0,13952,13953,7,10,0,0,13953,13954,7,14,0,0,13954,1796,1,0,0,0,13955,13956, +7,14,0,0,13956,1798,1,0,0,0,13957,13958,7,14,0,0,13958,13959,7,0,0,0,13959, +13960,7,10,0,0,13960,13961,7,7,0,0,13961,1800,1,0,0,0,13962,13963,7,14,0, +0,13963,13964,7,0,0,0,13964,13965,7,21,0,0,13965,13966,7,6,0,0,13966,13967, +5,95,0,0,13967,13968,7,3,0,0,13968,13969,7,6,0,0,13969,13970,7,16,0,0,13970, +1802,1,0,0,0,13971,13972,7,14,0,0,13972,13973,7,0,0,0,13973,13974,7,7,0, +0,13974,13975,7,0,0,0,13975,13976,7,17,0,0,13976,13977,7,6,0,0,13977,13978, +7,9,0,0,13978,1804,1,0,0,0,13979,13980,7,14,0,0,13980,13981,7,0,0,0,13981, +13982,7,7,0,0,13982,13983,7,0,0,0,13983,13984,7,17,0,0,13984,13985,7,6,0, +0,13985,1806,1,0,0,0,13986,13987,7,14,0,0,13987,13988,7,0,0,0,13988,13989, +7,7,0,0,13989,13990,7,0,0,0,13990,13991,7,17,0,0,13991,13992,7,6,0,0,13992, +13993,7,14,0,0,13993,13994,7,6,0,0,13994,13995,7,7,0,0,13995,13996,7,4,0, +0,13996,1808,1,0,0,0,13997,13998,7,14,0,0,13998,13999,7,0,0,0,13999,14000, +7,7,0,0,14000,14001,7,0,0,0,14001,14002,7,17,0,0,14002,14003,7,6,0,0,14003, +14004,7,3,0,0,14004,1810,1,0,0,0,14005,14006,7,14,0,0,14006,14007,7,0,0, +0,14007,14008,7,7,0,0,14008,14009,7,9,0,0,14009,14010,7,0,0,0,14010,14011, +7,4,0,0,14011,14012,7,2,0,0,14012,14013,7,3,0,0,14013,14014,7,18,0,0,14014, +1812,1,0,0,0,14015,14016,7,14,0,0,14016,14017,7,0,0,0,14017,14018,7,7,0, +0,14018,14019,7,12,0,0,14019,14020,7,0,0,0,14020,14021,7,11,0,0,14021,1814, +1,0,0,0,14022,14023,7,14,0,0,14023,14024,7,0,0,0,14024,14025,7,15,0,0,14025, +1816,1,0,0,0,14026,14027,7,14,0,0,14027,14028,7,0,0,0,14028,14029,7,15,0, +0,14029,14030,7,15,0,0,14030,14031,7,10,0,0,14031,14032,7,7,0,0,14032,14033, +7,17,0,0,14033,1818,1,0,0,0,14034,14035,7,14,0,0,14035,14036,7,0,0,0,14036, +14037,7,5,0,0,14037,14038,7,21,0,0,14038,1820,1,0,0,0,14039,14040,7,14,0, +0,14040,14041,7,0,0,0,14041,14042,7,5,0,0,14042,14043,7,4,0,0,14043,14044, +7,6,0,0,14044,14045,7,3,0,0,14045,1822,1,0,0,0,14046,14047,7,14,0,0,14047, +14048,7,0,0,0,14048,14049,7,4,0,0,14049,14050,7,8,0,0,14050,14051,7,19,0, +0,14051,14052,7,6,0,0,14052,14053,7,9,0,0,14053,1824,1,0,0,0,14054,14055, +7,14,0,0,14055,14056,7,0,0,0,14056,14057,7,4,0,0,14057,14058,7,8,0,0,14058, +14059,7,19,0,0,14059,14060,7,6,0,0,14060,14061,7,5,0,0,14061,1826,1,0,0, +0,14062,14063,7,14,0,0,14063,14064,7,0,0,0,14064,14065,7,4,0,0,14065,14066, +7,8,0,0,14066,14067,7,19,0,0,14067,1828,1,0,0,0,14068,14069,7,14,0,0,14069, +14070,7,0,0,0,14070,14071,7,4,0,0,14071,14072,7,8,0,0,14072,14073,7,19,0, +0,14073,14074,5,95,0,0,14074,14075,7,7,0,0,14075,14076,7,12,0,0,14076,14077, +7,14,0,0,14077,14078,7,1,0,0,14078,14079,7,6,0,0,14079,14080,7,3,0,0,14080, +1830,1,0,0,0,14081,14082,7,14,0,0,14082,14083,7,0,0,0,14083,14084,7,4,0, +0,14084,14085,7,8,0,0,14085,14086,7,19,0,0,14086,14087,5,95,0,0,14087,14088, +7,3,0,0,14088,14089,7,6,0,0,14089,14090,7,8,0,0,14090,14091,7,2,0,0,14091, +14092,7,17,0,0,14092,14093,7,7,0,0,14093,14094,7,10,0,0,14094,14095,7,23, +0,0,14095,14096,7,6,0,0,14096,1832,1,0,0,0,14097,14098,7,14,0,0,14098,14099, +7,0,0,0,14099,14100,7,4,0,0,14100,14101,7,6,0,0,14101,14102,7,3,0,0,14102, +14103,7,10,0,0,14103,14104,7,0,0,0,14104,14105,7,11,0,0,14105,14106,7,10, +0,0,14106,14107,7,23,0,0,14107,14108,7,6,0,0,14108,14109,7,9,0,0,14109,1834, +1,0,0,0,14110,14111,7,14,0,0,14111,14112,7,0,0,0,14112,14113,7,4,0,0,14113, +14114,7,6,0,0,14114,14115,7,3,0,0,14115,14116,7,10,0,0,14116,14117,7,0,0, +0,14117,14118,7,11,0,0,14118,14119,7,10,0,0,14119,14120,7,23,0,0,14120,14121, +7,6,0,0,14121,1836,1,0,0,0,14122,14123,7,14,0,0,14123,14124,7,0,0,0,14124, +14125,7,25,0,0,14125,14126,7,0,0,0,14126,14127,7,3,0,0,14127,14128,7,8,0, +0,14128,14129,7,19,0,0,14129,14130,7,11,0,0,14130,14131,7,2,0,0,14131,14132, +7,17,0,0,14132,14133,7,5,0,0,14133,1838,1,0,0,0,14134,14135,7,14,0,0,14135, +14136,7,0,0,0,14136,14137,7,25,0,0,14137,14138,7,9,0,0,14138,14139,7,0,0, +0,14139,14140,7,4,0,0,14140,14141,7,0,0,0,14141,14142,7,16,0,0,14142,14143, +7,10,0,0,14143,14144,7,11,0,0,14144,14145,7,6,0,0,14145,14146,7,5,0,0,14146, +1840,1,0,0,0,14147,14148,7,14,0,0,14148,14149,7,0,0,0,14149,14150,7,25,0, +0,14150,14151,7,6,0,0,14151,14152,7,25,0,0,14152,14153,7,4,0,0,14153,14154, +7,6,0,0,14154,14155,7,7,0,0,14155,14156,7,4,0,0,14156,14157,7,5,0,0,14157, +1842,1,0,0,0,14158,14159,7,14,0,0,14159,14160,7,0,0,0,14160,14161,7,25,0, +0,14161,14162,7,10,0,0,14162,14163,7,14,0,0,14163,14164,7,10,0,0,14164,14165, +7,23,0,0,14165,14166,7,6,0,0,14166,1844,1,0,0,0,14167,14168,7,14,0,0,14168, +14169,7,0,0,0,14169,14170,7,25,0,0,14170,14171,7,10,0,0,14171,14172,7,7, +0,0,14172,14173,7,5,0,0,14173,14174,7,4,0,0,14174,14175,7,0,0,0,14175,14176, +7,7,0,0,14176,14177,7,8,0,0,14177,14178,7,6,0,0,14178,14179,7,5,0,0,14179, +1846,1,0,0,0,14180,14181,7,14,0,0,14181,14182,7,0,0,0,14182,14183,7,25,0, +0,14183,14184,7,11,0,0,14184,14185,7,2,0,0,14185,14186,7,17,0,0,14186,14187, +7,16,0,0,14187,14188,7,10,0,0,14188,14189,7,11,0,0,14189,14190,7,6,0,0,14190, +14191,7,5,0,0,14191,1848,1,0,0,0,14192,14193,7,14,0,0,14193,14194,7,0,0, +0,14194,14195,7,25,0,0,14195,14196,7,11,0,0,14196,14197,7,2,0,0,14197,14198, +7,17,0,0,14198,14199,7,19,0,0,14199,14200,7,10,0,0,14200,14201,7,5,0,0,14201, +14202,7,4,0,0,14202,14203,7,2,0,0,14203,14204,7,3,0,0,14204,14205,7,18,0, +0,14205,1850,1,0,0,0,14206,14207,7,14,0,0,14207,14208,7,0,0,0,14208,14209, +7,25,0,0,14209,14210,7,11,0,0,14210,14211,7,2,0,0,14211,14212,7,17,0,0,14212, +14213,7,14,0,0,14213,14214,7,6,0,0,14214,14215,7,14,0,0,14215,14216,7,1, +0,0,14216,14217,7,6,0,0,14217,14218,7,3,0,0,14218,14219,7,5,0,0,14219,1852, +1,0,0,0,14220,14221,7,14,0,0,14221,14222,7,0,0,0,14222,14223,7,25,0,0,14223, +14224,5,95,0,0,14224,14225,7,5,0,0,14225,14226,7,19,0,0,14226,14227,7,0, +0,0,14227,14228,7,3,0,0,14228,14229,7,6,0,0,14229,14230,7,9,0,0,14230,14231, +5,95,0,0,14231,14232,7,4,0,0,14232,14233,7,6,0,0,14233,14234,7,14,0,0,14234, +14235,7,15,0,0,14235,14236,5,95,0,0,14236,14237,7,5,0,0,14237,14238,7,10, +0,0,14238,14239,7,23,0,0,14239,14240,7,6,0,0,14240,1854,1,0,0,0,14241,14242, +7,14,0,0,14242,14243,7,0,0,0,14243,14244,7,25,0,0,14244,14245,7,5,0,0,14245, +14246,7,10,0,0,14246,14247,7,23,0,0,14247,14248,7,6,0,0,14248,1856,1,0,0, +0,14249,14250,7,14,0,0,14250,14251,7,0,0,0,14251,14252,7,25,0,0,14252,14253, +7,4,0,0,14253,14254,7,3,0,0,14254,14255,7,0,0,0,14255,14256,7,7,0,0,14256, +14257,7,5,0,0,14257,1858,1,0,0,0,14258,14259,7,14,0,0,14259,14260,7,0,0, +0,14260,14261,7,25,0,0,14261,14262,7,13,0,0,14262,14263,7,0,0,0,14263,14264, +7,11,0,0,14264,14265,7,12,0,0,14265,14266,7,6,0,0,14266,1860,1,0,0,0,14267, +14268,7,14,0,0,14268,14269,7,6,0,0,14269,14270,7,0,0,0,14270,14271,7,5,0, +0,14271,14272,7,12,0,0,14272,14273,7,3,0,0,14273,14274,7,6,0,0,14274,1862, +1,0,0,0,14275,14276,7,14,0,0,14276,14277,7,6,0,0,14277,14278,7,0,0,0,14278, +14279,7,5,0,0,14279,14280,7,12,0,0,14280,14281,7,3,0,0,14281,14282,7,6,0, +0,14282,14283,7,5,0,0,14283,1864,1,0,0,0,14284,14285,7,14,0,0,14285,14286, +7,6,0,0,14286,14287,7,9,0,0,14287,14288,7,10,0,0,14288,14289,7,12,0,0,14289, +14290,7,14,0,0,14290,1866,1,0,0,0,14291,14292,7,14,0,0,14292,14293,7,6,0, +0,14293,14294,7,14,0,0,14294,14295,7,1,0,0,14295,14296,7,6,0,0,14296,14297, +7,3,0,0,14297,1868,1,0,0,0,14298,14299,7,14,0,0,14299,14300,7,6,0,0,14300, +14301,7,14,0,0,14301,14302,7,1,0,0,14302,14303,7,6,0,0,14303,14304,7,3,0, +0,14304,14305,5,95,0,0,14305,14306,7,8,0,0,14306,14307,7,0,0,0,14307,14308, +7,15,0,0,14308,14309,7,4,0,0,14309,14310,7,10,0,0,14310,14311,7,2,0,0,14311, +14312,7,7,0,0,14312,1870,1,0,0,0,14313,14314,7,14,0,0,14314,14315,7,6,0, +0,14315,14316,7,14,0,0,14316,14317,7,1,0,0,14317,14318,7,6,0,0,14318,14319, +7,3,0,0,14319,14320,5,95,0,0,14320,14321,7,9,0,0,14321,14322,7,6,0,0,14322, +14323,7,5,0,0,14323,14324,7,8,0,0,14324,14325,7,3,0,0,14325,14326,7,10,0, +0,14326,14327,7,15,0,0,14327,14328,7,4,0,0,14328,14329,7,10,0,0,14329,14330, +7,2,0,0,14330,14331,7,7,0,0,14331,1872,1,0,0,0,14332,14333,7,14,0,0,14333, +14334,7,6,0,0,14334,14335,7,14,0,0,14335,14336,7,1,0,0,14336,14337,7,6,0, +0,14337,14338,7,3,0,0,14338,14339,5,95,0,0,14339,14340,7,7,0,0,14340,14341, +7,0,0,0,14341,14342,7,14,0,0,14342,14343,7,6,0,0,14343,1874,1,0,0,0,14344, +14345,7,14,0,0,14345,14346,7,6,0,0,14346,14347,7,14,0,0,14347,14348,7,1, +0,0,14348,14349,7,6,0,0,14349,14350,7,3,0,0,14350,14351,5,95,0,0,14351,14352, +7,12,0,0,14352,14353,7,7,0,0,14353,14354,7,10,0,0,14354,14355,7,24,0,0,14355, +14356,7,12,0,0,14356,14357,7,6,0,0,14357,14358,5,95,0,0,14358,14359,7,7, +0,0,14359,14360,7,0,0,0,14360,14361,7,14,0,0,14361,14362,7,6,0,0,14362,1876, +1,0,0,0,14363,14364,7,14,0,0,14364,14365,7,6,0,0,14365,14366,7,14,0,0,14366, +14367,7,8,0,0,14367,14368,7,2,0,0,14368,14369,7,14,0,0,14369,14370,7,15, +0,0,14370,14371,7,3,0,0,14371,14372,7,6,0,0,14372,14373,7,5,0,0,14373,14374, +7,5,0,0,14374,1878,1,0,0,0,14375,14376,7,14,0,0,14376,14377,7,6,0,0,14377, +14378,7,14,0,0,14378,14379,7,2,0,0,14379,14380,7,3,0,0,14380,14381,7,18, +0,0,14381,1880,1,0,0,0,14382,14383,7,14,0,0,14383,14384,7,6,0,0,14384,14385, +7,3,0,0,14385,14386,7,17,0,0,14386,14387,7,6,0,0,14387,14388,5,36,0,0,14388, +14389,7,0,0,0,14389,14390,7,8,0,0,14390,14391,7,4,0,0,14391,14392,7,10,0, +0,14392,14393,7,2,0,0,14393,14394,7,7,0,0,14394,14395,7,5,0,0,14395,1882, +1,0,0,0,14396,14397,7,14,0,0,14397,14398,7,6,0,0,14398,14399,7,3,0,0,14399, +14400,7,17,0,0,14400,14401,7,6,0,0,14401,14402,5,95,0,0,14402,14403,7,0, +0,0,14403,14404,7,20,0,0,14404,1884,1,0,0,0,14405,14406,7,14,0,0,14406,14407, +7,6,0,0,14407,14408,7,3,0,0,14408,14409,7,17,0,0,14409,14410,7,6,0,0,14410, +14411,5,95,0,0,14411,14412,7,8,0,0,14412,14413,7,2,0,0,14413,14414,7,7,0, +0,14414,14415,7,5,0,0,14415,14416,7,4,0,0,14416,14417,5,95,0,0,14417,14418, +7,2,0,0,14418,14419,7,7,0,0,14419,1886,1,0,0,0,14420,14421,7,14,0,0,14421, +14422,7,6,0,0,14422,14423,7,3,0,0,14423,14424,7,17,0,0,14424,14425,7,6,0, +0,14425,1888,1,0,0,0,14426,14427,7,14,0,0,14427,14428,7,6,0,0,14428,14429, +7,3,0,0,14429,14430,7,17,0,0,14430,14431,7,6,0,0,14431,14432,5,95,0,0,14432, +14433,7,5,0,0,14433,14434,7,20,0,0,14434,1890,1,0,0,0,14435,14436,7,14,0, +0,14436,14437,7,6,0,0,14437,14438,7,4,0,0,14438,14439,7,0,0,0,14439,14440, +7,9,0,0,14440,14441,7,0,0,0,14441,14442,7,4,0,0,14442,14443,7,0,0,0,14443, +1892,1,0,0,0,14444,14445,7,14,0,0,14445,14446,7,6,0,0,14446,14447,7,4,0, +0,14447,14448,7,19,0,0,14448,14449,7,2,0,0,14449,14450,7,9,0,0,14450,1894, +1,0,0,0,14451,14452,7,14,0,0,14452,14453,7,10,0,0,14453,14454,7,17,0,0,14454, +14455,7,3,0,0,14455,14456,7,0,0,0,14456,14457,7,4,0,0,14457,14458,7,6,0, +0,14458,1896,1,0,0,0,14459,14460,7,14,0,0,14460,14461,7,10,0,0,14461,14462, +7,17,0,0,14462,14463,7,3,0,0,14463,14464,7,0,0,0,14464,14465,7,4,0,0,14465, +14466,7,10,0,0,14466,14467,7,2,0,0,14467,14468,7,7,0,0,14468,1898,1,0,0, +0,14469,14470,7,14,0,0,14470,14471,7,10,0,0,14471,14472,7,7,0,0,14472,14473, +7,6,0,0,14473,14474,7,25,0,0,14474,14475,7,4,0,0,14475,14476,7,6,0,0,14476, +14477,7,7,0,0,14477,14478,7,4,0,0,14478,14479,7,5,0,0,14479,1900,1,0,0,0, +14480,14481,7,14,0,0,14481,14482,7,10,0,0,14482,14483,7,7,0,0,14483,14484, +7,10,0,0,14484,14485,7,14,0,0,14485,14486,7,10,0,0,14486,14487,7,23,0,0, +14487,14488,7,6,0,0,14488,1902,1,0,0,0,14489,14490,7,14,0,0,14490,14491, +7,10,0,0,14491,14492,7,7,0,0,14492,14493,7,10,0,0,14493,14494,7,14,0,0,14494, +14495,7,12,0,0,14495,14496,7,14,0,0,14496,1904,1,0,0,0,14497,14498,7,14, +0,0,14498,14499,7,10,0,0,14499,14500,7,7,0,0,14500,14501,7,10,0,0,14501, +14502,7,7,0,0,14502,14503,7,17,0,0,14503,1906,1,0,0,0,14504,14505,7,14,0, +0,14505,14506,7,10,0,0,14506,14507,7,7,0,0,14507,14508,7,12,0,0,14508,14509, +7,5,0,0,14509,1908,1,0,0,0,14510,14511,7,14,0,0,14511,14512,7,10,0,0,14512, +14513,7,7,0,0,14513,14514,7,12,0,0,14514,14515,7,5,0,0,14515,14516,5,95, +0,0,14516,14517,7,7,0,0,14517,14518,7,12,0,0,14518,14519,7,11,0,0,14519, +14520,7,11,0,0,14520,1910,1,0,0,0,14521,14522,7,14,0,0,14522,14523,7,10, +0,0,14523,14524,7,7,0,0,14524,14525,7,12,0,0,14525,14526,7,4,0,0,14526,14527, +7,6,0,0,14527,1912,1,0,0,0,14528,14529,7,14,0,0,14529,14530,7,10,0,0,14530, +14531,7,7,0,0,14531,14532,7,12,0,0,14532,14533,7,4,0,0,14533,14534,7,6,0, +0,14534,14535,7,5,0,0,14535,1914,1,0,0,0,14536,14537,7,14,0,0,14537,14538, +7,10,0,0,14538,14539,7,7,0,0,14539,14540,7,13,0,0,14540,14541,7,0,0,0,14541, +14542,7,11,0,0,14542,14543,7,12,0,0,14543,14544,7,6,0,0,14544,1916,1,0,0, +0,14545,14546,7,14,0,0,14546,14547,7,10,0,0,14547,14548,7,3,0,0,14548,14549, +7,3,0,0,14549,14550,7,2,0,0,14550,14551,7,3,0,0,14551,14552,7,8,0,0,14552, +14553,7,2,0,0,14553,14554,7,11,0,0,14554,14555,7,9,0,0,14555,1918,1,0,0, +0,14556,14557,7,14,0,0,14557,14558,7,10,0,0,14558,14559,7,3,0,0,14559,14560, +7,3,0,0,14560,14561,7,2,0,0,14561,14562,7,3,0,0,14562,14563,7,19,0,0,14563, +14564,7,2,0,0,14564,14565,7,4,0,0,14565,1920,1,0,0,0,14566,14567,7,14,0, +0,14567,14568,7,10,0,0,14568,14569,7,3,0,0,14569,14570,7,3,0,0,14570,14571, +7,2,0,0,14571,14572,7,3,0,0,14572,1922,1,0,0,0,14573,14574,7,14,0,0,14574, +14575,7,10,0,0,14575,14576,7,5,0,0,14576,14577,7,5,0,0,14577,14578,7,10, +0,0,14578,14579,7,7,0,0,14579,14580,7,17,0,0,14580,1924,1,0,0,0,14581,14582, +7,14,0,0,14582,14583,7,10,0,0,14583,14584,7,5,0,0,14584,14585,7,14,0,0,14585, +14586,7,0,0,0,14586,14587,7,4,0,0,14587,14588,7,8,0,0,14588,14589,7,19,0, +0,14589,1926,1,0,0,0,14590,14591,7,14,0,0,14591,14592,7,11,0,0,14592,14593, +7,5,0,0,14593,14594,7,11,0,0,14594,14595,7,0,0,0,14595,14596,7,1,0,0,14596, +14597,7,6,0,0,14597,14598,7,11,0,0,14598,1928,1,0,0,0,14599,14600,7,14,0, +0,14600,14601,7,2,0,0,14601,14602,7,9,0,0,14602,14603,7,6,0,0,14603,14604, +7,11,0,0,14604,14605,5,95,0,0,14605,14606,7,8,0,0,14606,14607,7,2,0,0,14607, +14608,7,14,0,0,14608,14609,7,15,0,0,14609,14610,7,10,0,0,14610,14611,7,11, +0,0,14611,14612,7,6,0,0,14612,14613,5,95,0,0,14613,14614,7,5,0,0,14614,14615, +7,12,0,0,14615,14616,7,1,0,0,14616,14617,7,24,0,0,14617,14618,7,12,0,0,14618, +14619,7,6,0,0,14619,14620,7,3,0,0,14620,14621,7,18,0,0,14621,1930,1,0,0, +0,14622,14623,7,14,0,0,14623,14624,7,2,0,0,14624,14625,7,9,0,0,14625,14626, +7,6,0,0,14626,14627,7,11,0,0,14627,14628,5,95,0,0,14628,14629,7,9,0,0,14629, +14630,7,2,0,0,14630,14631,7,7,0,0,14631,14632,7,4,0,0,14632,14633,7,13,0, +0,14633,14634,7,6,0,0,14634,14635,7,3,0,0,14635,14636,7,10,0,0,14636,14637, +7,16,0,0,14637,14638,7,18,0,0,14638,14639,5,95,0,0,14639,14640,7,12,0,0, +14640,14641,7,7,0,0,14641,14642,7,10,0,0,14642,14643,7,24,0,0,14643,14644, +7,12,0,0,14644,14645,7,6,0,0,14645,14646,7,7,0,0,14646,14647,7,6,0,0,14647, +14648,7,5,0,0,14648,14649,7,5,0,0,14649,1932,1,0,0,0,14650,14651,7,14,0, +0,14651,14652,7,2,0,0,14652,14653,7,9,0,0,14653,14654,7,6,0,0,14654,14655, +7,11,0,0,14655,14656,5,95,0,0,14656,14657,7,9,0,0,14657,14658,7,18,0,0,14658, +14659,7,7,0,0,14659,14660,7,0,0,0,14660,14661,7,14,0,0,14661,14662,7,10, +0,0,14662,14663,7,8,0,0,14663,14664,5,95,0,0,14664,14665,7,5,0,0,14665,14666, +7,12,0,0,14666,14667,7,1,0,0,14667,14668,7,24,0,0,14668,14669,7,12,0,0,14669, +14670,7,6,0,0,14670,14671,7,3,0,0,14671,14672,7,18,0,0,14672,1934,1,0,0, +0,14673,14674,7,14,0,0,14674,14675,7,2,0,0,14675,14676,7,9,0,0,14676,14677, +7,6,0,0,14677,14678,7,11,0,0,14678,14679,5,95,0,0,14679,14680,7,14,0,0,14680, +14681,7,10,0,0,14681,14682,7,7,0,0,14682,14683,5,95,0,0,14683,14684,7,0, +0,0,14684,14685,7,7,0,0,14685,14686,7,0,0,0,14686,14687,7,11,0,0,14687,14688, +7,18,0,0,14688,14689,7,5,0,0,14689,14690,7,10,0,0,14690,14691,7,5,0,0,14691, +1936,1,0,0,0,14692,14693,7,14,0,0,14693,14694,7,2,0,0,14694,14695,7,9,0, +0,14695,14696,7,6,0,0,14696,14697,7,11,0,0,14697,1938,1,0,0,0,14698,14699, +7,14,0,0,14699,14700,7,2,0,0,14700,14701,7,9,0,0,14701,14702,7,6,0,0,14702, +14703,7,11,0,0,14703,14704,5,95,0,0,14704,14705,7,7,0,0,14705,14706,7,1, +0,0,14706,1940,1,0,0,0,14707,14708,7,14,0,0,14708,14709,7,2,0,0,14709,14710, +7,9,0,0,14710,14711,7,6,0,0,14711,14712,7,11,0,0,14712,14713,5,95,0,0,14713, +14714,7,7,0,0,14714,14715,7,2,0,0,14715,14716,5,95,0,0,14716,14717,7,0,0, +0,14717,14718,7,7,0,0,14718,14719,7,0,0,0,14719,14720,7,11,0,0,14720,14721, +7,18,0,0,14721,14722,7,5,0,0,14722,14723,7,10,0,0,14723,14724,7,5,0,0,14724, +1942,1,0,0,0,14725,14726,7,14,0,0,14726,14727,7,2,0,0,14727,14728,7,9,0, +0,14728,14729,7,6,0,0,14729,14730,7,11,0,0,14730,14731,5,95,0,0,14731,14732, +7,15,0,0,14732,14733,7,1,0,0,14733,14734,7,18,0,0,14734,1944,1,0,0,0,14735, +14736,7,14,0,0,14736,14737,7,2,0,0,14737,14738,7,9,0,0,14738,14739,7,6,0, +0,14739,14740,7,11,0,0,14740,14741,5,95,0,0,14741,14742,7,15,0,0,14742,14743, +7,12,0,0,14743,14744,7,5,0,0,14744,14745,7,19,0,0,14745,14746,5,95,0,0,14746, +14747,7,3,0,0,14747,14748,7,6,0,0,14748,14749,7,16,0,0,14749,1946,1,0,0, +0,14750,14751,7,14,0,0,14751,14752,7,2,0,0,14752,14753,7,9,0,0,14753,14754, +7,6,0,0,14754,14755,7,11,0,0,14755,14756,5,95,0,0,14756,14757,7,5,0,0,14757, +14758,7,13,0,0,14758,1948,1,0,0,0,14759,14760,7,14,0,0,14760,14761,7,2,0, +0,14761,14762,7,9,0,0,14762,14763,7,6,0,0,14763,1950,1,0,0,0,14764,14765, +7,14,0,0,14765,14766,7,2,0,0,14766,14767,7,9,0,0,14767,14768,7,10,0,0,14768, +14769,7,16,0,0,14769,14770,7,10,0,0,14770,14771,7,8,0,0,14771,14772,7,0, +0,0,14772,14773,7,4,0,0,14773,14774,7,10,0,0,14774,14775,7,2,0,0,14775,14776, +7,7,0,0,14776,1952,1,0,0,0,14777,14778,7,14,0,0,14778,14779,7,2,0,0,14779, +14780,7,9,0,0,14780,14781,7,10,0,0,14781,14782,7,16,0,0,14782,14783,7,18, +0,0,14783,14784,5,95,0,0,14784,14785,7,8,0,0,14785,14786,7,2,0,0,14786,14787, +7,11,0,0,14787,14788,7,12,0,0,14788,14789,7,14,0,0,14789,14790,7,7,0,0,14790, +14791,5,95,0,0,14791,14792,7,4,0,0,14792,14793,7,18,0,0,14793,14794,7,15, +0,0,14794,14795,7,6,0,0,14795,1954,1,0,0,0,14796,14797,7,14,0,0,14797,14798, +7,2,0,0,14798,14799,7,9,0,0,14799,14800,7,10,0,0,14800,14801,7,16,0,0,14801, +14802,7,18,0,0,14802,1956,1,0,0,0,14803,14804,7,14,0,0,14804,14805,7,2,0, +0,14805,14806,7,9,0,0,14806,1958,1,0,0,0,14807,14808,7,14,0,0,14808,14809, +7,2,0,0,14809,14810,7,9,0,0,14810,14811,7,12,0,0,14811,14812,7,11,0,0,14812, +14813,7,6,0,0,14813,1960,1,0,0,0,14814,14815,7,14,0,0,14815,14816,7,2,0, +0,14816,14817,7,7,0,0,14817,14818,7,10,0,0,14818,14819,7,4,0,0,14819,14820, +7,2,0,0,14820,14821,7,3,0,0,14821,14822,7,10,0,0,14822,14823,7,7,0,0,14823, +14824,7,17,0,0,14824,1962,1,0,0,0,14825,14826,7,14,0,0,14826,14827,7,2,0, +0,14827,14828,7,7,0,0,14828,14829,7,10,0,0,14829,14830,7,4,0,0,14830,14831, +7,2,0,0,14831,14832,7,3,0,0,14832,1964,1,0,0,0,14833,14834,7,14,0,0,14834, +14835,7,2,0,0,14835,14836,7,7,0,0,14836,14837,7,4,0,0,14837,14838,7,19,0, +0,14838,1966,1,0,0,0,14839,14840,7,14,0,0,14840,14841,7,2,0,0,14841,14842, +7,7,0,0,14842,14843,7,4,0,0,14843,14844,7,19,0,0,14844,14845,7,5,0,0,14845, +14846,5,95,0,0,14846,14847,7,1,0,0,14847,14848,7,6,0,0,14848,14849,7,4,0, +0,14849,14850,7,22,0,0,14850,14851,7,6,0,0,14851,14852,7,6,0,0,14852,14853, +7,7,0,0,14853,1968,1,0,0,0,14854,14855,7,14,0,0,14855,14856,7,2,0,0,14856, +14857,7,7,0,0,14857,14858,7,4,0,0,14858,14859,7,19,0,0,14859,14860,7,5,0, +0,14860,1970,1,0,0,0,14861,14862,7,14,0,0,14862,14863,7,2,0,0,14863,14864, +7,12,0,0,14864,14865,7,7,0,0,14865,14866,7,4,0,0,14866,1972,1,0,0,0,14867, +14868,7,14,0,0,14868,14869,7,2,0,0,14869,14870,7,12,0,0,14870,14871,7,7, +0,0,14871,14872,7,4,0,0,14872,14873,7,15,0,0,14873,14874,7,0,0,0,14874,14875, +7,4,0,0,14875,14876,7,19,0,0,14876,1974,1,0,0,0,14877,14878,7,14,0,0,14878, +14879,7,2,0,0,14879,14880,7,12,0,0,14880,14881,7,7,0,0,14881,14882,7,4,0, +0,14882,14883,7,15,0,0,14883,14884,7,2,0,0,14884,14885,7,10,0,0,14885,14886, +7,7,0,0,14886,14887,7,4,0,0,14887,1976,1,0,0,0,14888,14889,7,14,0,0,14889, +14890,7,2,0,0,14890,14891,7,13,0,0,14891,14892,7,6,0,0,14892,14893,7,14, +0,0,14893,14894,7,6,0,0,14894,14895,7,7,0,0,14895,14896,7,4,0,0,14896,1978, +1,0,0,0,14897,14898,7,14,0,0,14898,14899,7,2,0,0,14899,14900,7,13,0,0,14900, +14901,7,6,0,0,14901,1980,1,0,0,0,14902,14903,7,14,0,0,14903,14904,7,12,0, +0,14904,14905,7,11,0,0,14905,14906,7,4,0,0,14906,14907,7,10,0,0,14907,14908, +7,9,0,0,14908,14909,7,10,0,0,14909,14910,7,14,0,0,14910,14911,7,6,0,0,14911, +14912,7,7,0,0,14912,14913,7,5,0,0,14913,14914,7,10,0,0,14914,14915,7,2,0, +0,14915,14916,7,7,0,0,14916,14917,7,0,0,0,14917,14918,7,11,0,0,14918,1982, +1,0,0,0,14919,14920,7,14,0,0,14920,14921,7,12,0,0,14921,14922,7,11,0,0,14922, +14923,7,4,0,0,14923,14924,7,10,0,0,14924,14925,7,5,0,0,14925,14926,7,6,0, +0,14926,14927,7,4,0,0,14927,1984,1,0,0,0,14928,14929,7,14,0,0,14929,14930, +7,13,0,0,14930,14931,5,95,0,0,14931,14932,7,14,0,0,14932,14933,7,6,0,0,14933, +14934,7,3,0,0,14934,14935,7,17,0,0,14935,14936,7,6,0,0,14936,1986,1,0,0, +0,14937,14938,7,7,0,0,14938,14939,7,0,0,0,14939,14940,7,14,0,0,14940,14941, +7,6,0,0,14941,14942,7,9,0,0,14942,1988,1,0,0,0,14943,14944,7,7,0,0,14944, +14945,7,0,0,0,14945,14946,7,14,0,0,14946,14947,7,6,0,0,14947,1990,1,0,0, +0,14948,14949,7,7,0,0,14949,14950,7,0,0,0,14950,14951,7,14,0,0,14951,14952, +7,6,0,0,14952,14953,7,5,0,0,14953,14954,7,15,0,0,14954,14955,7,0,0,0,14955, +14956,7,8,0,0,14956,14957,7,6,0,0,14957,1992,1,0,0,0,14958,14959,7,7,0,0, +14959,14960,7,0,0,0,14960,14961,7,7,0,0,14961,1994,1,0,0,0,14962,14963,7, +7,0,0,14963,14964,7,0,0,0,14964,14965,7,7,0,0,14965,14966,7,13,0,0,14966, +14967,7,11,0,0,14967,1996,1,0,0,0,14968,14969,7,7,0,0,14969,14970,7,0,0, +0,14970,14971,7,4,0,0,14971,14972,7,10,0,0,14972,14973,7,2,0,0,14973,14974, +7,7,0,0,14974,14975,7,0,0,0,14975,14976,7,11,0,0,14976,1998,1,0,0,0,14977, +14978,7,7,0,0,14978,14979,7,0,0,0,14979,14980,7,4,0,0,14980,14981,7,10,0, +0,14981,14982,7,13,0,0,14982,14983,7,6,0,0,14983,14984,5,95,0,0,14984,14985, +7,16,0,0,14985,14986,7,12,0,0,14986,14987,7,11,0,0,14987,14988,7,11,0,0, +14988,14989,5,95,0,0,14989,14990,7,2,0,0,14990,14991,7,12,0,0,14991,14992, +7,4,0,0,14992,14993,7,6,0,0,14993,14994,7,3,0,0,14994,14995,5,95,0,0,14995, +14996,7,20,0,0,14996,14997,7,2,0,0,14997,14998,7,10,0,0,14998,14999,7,7, +0,0,14999,2000,1,0,0,0,15000,15001,7,7,0,0,15001,15002,7,0,0,0,15002,15003, +7,4,0,0,15003,15004,7,10,0,0,15004,15005,7,13,0,0,15005,15006,7,6,0,0,15006, +2002,1,0,0,0,15007,15008,7,7,0,0,15008,15009,7,0,0,0,15009,15010,7,4,0,0, +15010,15011,7,12,0,0,15011,15012,7,3,0,0,15012,15013,7,0,0,0,15013,15014, +7,11,0,0,15014,2004,1,0,0,0,15015,15016,7,7,0,0,15016,15017,7,0,0,0,15017, +15018,7,4,0,0,15018,15019,7,12,0,0,15019,15020,7,3,0,0,15020,15021,7,0,0, +0,15021,15022,7,11,0,0,15022,15023,7,7,0,0,15023,2006,1,0,0,0,15024,15025, +7,7,0,0,15025,15026,7,0,0,0,15026,15027,7,13,0,0,15027,2008,1,0,0,0,15028, +15029,7,7,0,0,15029,15030,7,8,0,0,15030,15031,7,19,0,0,15031,15032,7,0,0, +0,15032,15033,7,3,0,0,15033,15034,5,95,0,0,15034,15035,7,8,0,0,15035,15036, +7,5,0,0,15036,2010,1,0,0,0,15037,15038,7,7,0,0,15038,15039,7,8,0,0,15039, +15040,7,19,0,0,15040,15041,7,0,0,0,15041,15042,7,3,0,0,15042,2012,1,0,0, +0,15043,15044,7,7,0,0,15044,15045,7,8,0,0,15045,15046,7,19,0,0,15046,15047, +7,3,0,0,15047,2014,1,0,0,0,15048,15049,7,7,0,0,15049,15050,7,8,0,0,15050, +15051,7,11,0,0,15051,15052,7,2,0,0,15052,15053,7,1,0,0,15053,2016,1,0,0, +0,15054,15055,7,7,0,0,15055,15056,7,6,0,0,15056,15057,7,6,0,0,15057,15058, +7,9,0,0,15058,15059,7,6,0,0,15059,15060,7,9,0,0,15060,2018,1,0,0,0,15061, +15062,7,7,0,0,15062,15063,7,6,0,0,15063,15064,7,17,0,0,15064,2020,1,0,0, +0,15065,15066,7,7,0,0,15066,15067,7,6,0,0,15067,15068,7,5,0,0,15068,15069, +7,4,0,0,15069,15070,7,6,0,0,15070,15071,7,9,0,0,15071,2022,1,0,0,0,15072, +15073,7,7,0,0,15073,15074,7,6,0,0,15074,15075,7,5,0,0,15075,15076,7,4,0, +0,15076,15077,7,6,0,0,15077,15078,7,9,0,0,15078,15079,5,95,0,0,15079,15080, +7,4,0,0,15080,15081,7,0,0,0,15081,15082,7,1,0,0,15082,15083,7,11,0,0,15083, +15084,7,6,0,0,15084,15085,5,95,0,0,15085,15086,7,16,0,0,15086,15087,7,0, +0,0,15087,15088,7,5,0,0,15088,15089,7,4,0,0,15089,15090,5,95,0,0,15090,15091, +7,10,0,0,15091,15092,7,7,0,0,15092,15093,7,5,0,0,15093,15094,7,6,0,0,15094, +15095,7,3,0,0,15095,15096,7,4,0,0,15096,2024,1,0,0,0,15097,15098,7,7,0,0, +15098,15099,7,6,0,0,15099,15100,7,5,0,0,15100,15101,7,4,0,0,15101,15102, +7,6,0,0,15102,15103,7,9,0,0,15103,15104,5,95,0,0,15104,15105,7,4,0,0,15105, +15106,7,0,0,0,15106,15107,7,1,0,0,15107,15108,7,11,0,0,15108,15109,7,6,0, +0,15109,15110,5,95,0,0,15110,15111,7,17,0,0,15111,15112,7,6,0,0,15112,15113, +7,4,0,0,15113,15114,5,95,0,0,15114,15115,7,3,0,0,15115,15116,7,6,0,0,15116, +15117,7,16,0,0,15117,15118,7,5,0,0,15118,2026,1,0,0,0,15119,15120,7,7,0, +0,15120,15121,7,6,0,0,15121,15122,7,5,0,0,15122,15123,7,4,0,0,15123,15124, +7,6,0,0,15124,15125,7,9,0,0,15125,15126,5,95,0,0,15126,15127,7,4,0,0,15127, +15128,7,0,0,0,15128,15129,7,1,0,0,15129,15130,7,11,0,0,15130,15131,7,6,0, +0,15131,15132,5,95,0,0,15132,15133,7,10,0,0,15133,15134,7,9,0,0,15134,2028, +1,0,0,0,15135,15136,7,7,0,0,15136,15137,7,6,0,0,15137,15138,7,5,0,0,15138, +15139,7,4,0,0,15139,15140,7,6,0,0,15140,15141,7,9,0,0,15141,15142,5,95,0, +0,15142,15143,7,4,0,0,15143,15144,7,0,0,0,15144,15145,7,1,0,0,15145,15146, +7,11,0,0,15146,15147,7,6,0,0,15147,15148,5,95,0,0,15148,15149,7,5,0,0,15149, +15150,7,6,0,0,15150,15151,7,4,0,0,15151,15152,5,95,0,0,15152,15153,7,3,0, +0,15153,15154,7,6,0,0,15154,15155,7,16,0,0,15155,15156,7,5,0,0,15156,2030, +1,0,0,0,15157,15158,7,7,0,0,15158,15159,7,6,0,0,15159,15160,7,5,0,0,15160, +15161,7,4,0,0,15161,15162,7,6,0,0,15162,15163,7,9,0,0,15163,15164,5,95,0, +0,15164,15165,7,4,0,0,15165,15166,7,0,0,0,15166,15167,7,1,0,0,15167,15168, +7,11,0,0,15168,15169,7,6,0,0,15169,15170,5,95,0,0,15170,15171,7,5,0,0,15171, +15172,7,6,0,0,15172,15173,7,4,0,0,15173,15174,5,95,0,0,15174,15175,7,5,0, +0,15175,15176,7,6,0,0,15176,15177,7,4,0,0,15177,15178,7,10,0,0,15178,15179, +7,9,0,0,15179,2032,1,0,0,0,15180,15181,7,7,0,0,15181,15182,7,6,0,0,15182, +15183,7,4,0,0,15183,15184,7,22,0,0,15184,15185,7,2,0,0,15185,15186,7,3,0, +0,15186,15187,7,21,0,0,15187,2034,1,0,0,0,15188,15189,7,7,0,0,15189,15190, +7,6,0,0,15190,15191,7,13,0,0,15191,15192,7,6,0,0,15192,15193,7,3,0,0,15193, +2036,1,0,0,0,15194,15195,7,7,0,0,15195,15196,7,6,0,0,15196,15197,7,22,0, +0,15197,2038,1,0,0,0,15198,15199,7,7,0,0,15199,15200,7,6,0,0,15200,15201, +7,22,0,0,15201,15202,7,11,0,0,15202,15203,7,10,0,0,15203,15204,7,7,0,0,15204, +15205,7,6,0,0,15205,2040,1,0,0,0,15206,15207,7,7,0,0,15207,15208,7,6,0,0, +15208,15209,7,22,0,0,15209,15210,5,95,0,0,15210,15211,7,4,0,0,15211,15212, +7,10,0,0,15212,15213,7,14,0,0,15213,15214,7,6,0,0,15214,2042,1,0,0,0,15215, +15216,7,7,0,0,15216,15217,7,6,0,0,15217,15218,7,25,0,0,15218,15219,7,4,0, +0,15219,15220,5,95,0,0,15220,15221,7,9,0,0,15221,15222,7,0,0,0,15222,15223, +7,18,0,0,15223,2044,1,0,0,0,15224,15225,7,7,0,0,15225,15226,7,6,0,0,15226, +15227,7,25,0,0,15227,15228,7,4,0,0,15228,2046,1,0,0,0,15229,15230,7,7,0, +0,15230,15231,7,11,0,0,15231,15232,5,95,0,0,15232,15233,7,0,0,0,15233,15234, +7,20,0,0,15234,2048,1,0,0,0,15235,15236,7,7,0,0,15236,15237,7,11,0,0,15237, +15238,7,20,0,0,15238,15239,5,95,0,0,15239,15240,7,1,0,0,15240,15241,7,0, +0,0,15241,15242,7,4,0,0,15242,15243,7,8,0,0,15243,15244,7,19,0,0,15244,15245, +7,10,0,0,15245,15246,7,7,0,0,15246,15247,7,17,0,0,15247,2050,1,0,0,0,15248, +15249,7,7,0,0,15249,15250,7,11,0,0,15250,15251,7,20,0,0,15251,15252,5,95, +0,0,15252,15253,7,10,0,0,15253,15254,7,7,0,0,15254,15255,7,9,0,0,15255,15256, +7,6,0,0,15256,15257,7,25,0,0,15257,15258,5,95,0,0,15258,15259,7,16,0,0,15259, +15260,7,10,0,0,15260,15261,7,11,0,0,15261,15262,7,4,0,0,15262,15263,7,6, +0,0,15263,15264,7,3,0,0,15264,2052,1,0,0,0,15265,15266,7,7,0,0,15266,15267, +7,11,0,0,15267,15268,7,20,0,0,15268,15269,5,95,0,0,15269,15270,7,10,0,0, +15270,15271,7,7,0,0,15271,15272,7,9,0,0,15272,15273,7,6,0,0,15273,15274, +7,25,0,0,15274,15275,5,95,0,0,15275,15276,7,5,0,0,15276,15277,7,8,0,0,15277, +15278,7,0,0,0,15278,15279,7,7,0,0,15279,2054,1,0,0,0,15280,15281,7,7,0,0, +15281,15282,7,11,0,0,15282,15283,7,20,0,0,15283,15284,5,95,0,0,15284,15285, +7,15,0,0,15285,15286,7,3,0,0,15286,15287,7,6,0,0,15287,15288,7,16,0,0,15288, +15289,7,6,0,0,15289,15290,7,4,0,0,15290,15291,7,8,0,0,15291,15292,7,19,0, +0,15292,2056,1,0,0,0,15293,15294,7,7,0,0,15294,15295,7,11,0,0,15295,15296, +7,5,0,0,15296,15297,5,95,0,0,15297,15298,7,8,0,0,15298,15299,7,0,0,0,15299, +15300,7,11,0,0,15300,15301,7,6,0,0,15301,15302,7,7,0,0,15302,15303,7,9,0, +0,15303,15304,7,0,0,0,15304,15305,7,3,0,0,15305,2058,1,0,0,0,15306,15307, +7,7,0,0,15307,15308,7,11,0,0,15308,15309,7,5,0,0,15309,15310,5,95,0,0,15310, +15311,7,8,0,0,15311,15312,7,19,0,0,15312,15313,7,0,0,0,15313,15314,7,3,0, +0,15314,15315,7,0,0,0,15315,15316,7,8,0,0,15316,15317,7,4,0,0,15317,15318, +7,6,0,0,15318,15319,7,3,0,0,15319,15320,7,5,0,0,15320,15321,7,6,0,0,15321, +15322,7,4,0,0,15322,2060,1,0,0,0,15323,15324,7,7,0,0,15324,15325,7,11,0, +0,15325,15326,7,5,0,0,15326,15327,5,95,0,0,15327,15328,7,8,0,0,15328,15329, +7,19,0,0,15329,15330,7,0,0,0,15330,15331,7,3,0,0,15331,15332,7,5,0,0,15332, +15333,7,6,0,0,15333,15334,7,4,0,0,15334,15335,5,95,0,0,15335,15336,7,9,0, +0,15336,15337,7,6,0,0,15337,15338,7,8,0,0,15338,15339,7,11,0,0,15339,15340, +5,95,0,0,15340,15341,7,11,0,0,15341,15342,7,6,0,0,15342,15343,7,7,0,0,15343, +2062,1,0,0,0,15344,15345,7,7,0,0,15345,15346,7,11,0,0,15346,15347,7,5,0, +0,15347,15348,5,95,0,0,15348,15349,7,8,0,0,15349,15350,7,19,0,0,15350,15351, +7,0,0,0,15351,15352,7,3,0,0,15352,15353,7,5,0,0,15353,15354,7,6,0,0,15354, +15355,7,4,0,0,15355,15356,5,95,0,0,15356,15357,7,10,0,0,15357,15358,7,9, +0,0,15358,2064,1,0,0,0,15359,15360,7,7,0,0,15360,15361,7,11,0,0,15361,15362, +7,5,0,0,15362,15363,5,95,0,0,15363,15364,7,8,0,0,15364,15365,7,19,0,0,15365, +15366,7,0,0,0,15366,15367,7,3,0,0,15367,15368,7,5,0,0,15368,15369,7,6,0, +0,15369,15370,7,4,0,0,15370,15371,5,95,0,0,15371,15372,7,7,0,0,15372,15373, +7,0,0,0,15373,15374,7,14,0,0,15374,15375,7,6,0,0,15375,2066,1,0,0,0,15376, +15377,7,7,0,0,15377,15378,7,11,0,0,15378,15379,7,5,0,0,15379,15380,5,95, +0,0,15380,15381,7,8,0,0,15381,15382,7,2,0,0,15382,15383,7,14,0,0,15383,15384, +7,15,0,0,15384,2068,1,0,0,0,15385,15386,7,7,0,0,15386,15387,7,11,0,0,15387, +15388,7,5,0,0,15388,15389,5,95,0,0,15389,15390,7,8,0,0,15390,15391,7,12, +0,0,15391,15392,7,3,0,0,15392,15393,7,3,0,0,15393,15394,7,6,0,0,15394,15395, +7,7,0,0,15395,15396,7,8,0,0,15396,15397,7,18,0,0,15397,2070,1,0,0,0,15398, +15399,7,7,0,0,15399,15400,7,11,0,0,15400,15401,7,5,0,0,15401,15402,5,95, +0,0,15402,15403,7,9,0,0,15403,15404,7,0,0,0,15404,15405,7,4,0,0,15405,15406, +7,6,0,0,15406,15407,5,95,0,0,15407,15408,7,16,0,0,15408,15409,7,2,0,0,15409, +15410,7,3,0,0,15410,15411,7,14,0,0,15411,15412,7,0,0,0,15412,15413,7,4,0, +0,15413,2072,1,0,0,0,15414,15415,7,7,0,0,15415,15416,7,11,0,0,15416,15417, +7,5,0,0,15417,15418,5,95,0,0,15418,15419,7,9,0,0,15419,15420,7,0,0,0,15420, +15421,7,4,0,0,15421,15422,7,6,0,0,15422,15423,5,95,0,0,15423,15424,7,11, +0,0,15424,15425,7,0,0,0,15425,15426,7,7,0,0,15426,15427,7,17,0,0,15427,15428, +7,12,0,0,15428,15429,7,0,0,0,15429,15430,7,17,0,0,15430,15431,7,6,0,0,15431, +2074,1,0,0,0,15432,15433,7,7,0,0,15433,15434,7,11,0,0,15434,15435,7,5,0, +0,15435,15436,5,95,0,0,15436,15437,7,10,0,0,15437,15438,7,7,0,0,15438,15439, +7,10,0,0,15439,15440,7,4,0,0,15440,15441,7,8,0,0,15441,15442,7,0,0,0,15442, +15443,7,15,0,0,15443,2076,1,0,0,0,15444,15445,7,7,0,0,15445,15446,7,11,0, +0,15446,15447,7,5,0,0,15447,15448,5,95,0,0,15448,15449,7,10,0,0,15449,15450, +7,5,0,0,15450,15451,7,2,0,0,15451,15452,5,95,0,0,15452,15453,7,8,0,0,15453, +15454,7,12,0,0,15454,15455,7,3,0,0,15455,15456,7,3,0,0,15456,15457,7,6,0, +0,15457,15458,7,7,0,0,15458,15459,7,8,0,0,15459,15460,7,18,0,0,15460,2078, +1,0,0,0,15461,15462,7,7,0,0,15462,15463,7,11,0,0,15463,15464,5,95,0,0,15464, +15465,7,5,0,0,15465,15466,7,20,0,0,15466,2080,1,0,0,0,15467,15468,7,7,0, +0,15468,15469,7,11,0,0,15469,15470,7,5,0,0,15470,15471,5,95,0,0,15471,15472, +7,11,0,0,15472,15473,7,0,0,0,15473,15474,7,7,0,0,15474,15475,7,17,0,0,15475, +2082,1,0,0,0,15476,15477,7,7,0,0,15477,15478,7,11,0,0,15478,15479,7,5,0, +0,15479,15480,5,95,0,0,15480,15481,7,11,0,0,15481,15482,7,0,0,0,15482,15483, +7,7,0,0,15483,15484,7,17,0,0,15484,15485,7,12,0,0,15485,15486,7,0,0,0,15486, +15487,7,17,0,0,15487,15488,7,6,0,0,15488,2084,1,0,0,0,15489,15490,7,7,0, +0,15490,15491,7,11,0,0,15491,15492,7,5,0,0,15492,15493,5,95,0,0,15493,15494, +7,11,0,0,15494,15495,7,6,0,0,15495,15496,7,7,0,0,15496,15497,7,17,0,0,15497, +15498,7,4,0,0,15498,15499,7,19,0,0,15499,15500,5,95,0,0,15500,15501,7,5, +0,0,15501,15502,7,6,0,0,15502,15503,7,14,0,0,15503,15504,7,0,0,0,15504,15505, +7,7,0,0,15505,15506,7,4,0,0,15506,15507,7,10,0,0,15507,15508,7,8,0,0,15508, +15509,7,5,0,0,15509,2086,1,0,0,0,15510,15511,7,7,0,0,15511,15512,7,11,0, +0,15512,15513,7,5,0,0,15513,15514,5,95,0,0,15514,15515,7,11,0,0,15515,15516, +7,2,0,0,15516,15517,7,22,0,0,15517,15518,7,6,0,0,15518,15519,7,3,0,0,15519, +2088,1,0,0,0,15520,15521,7,7,0,0,15521,15522,7,11,0,0,15522,15523,7,5,0, +0,15523,15524,5,95,0,0,15524,15525,7,7,0,0,15525,15526,7,8,0,0,15526,15527, +7,19,0,0,15527,15528,7,0,0,0,15528,15529,7,3,0,0,15529,15530,5,95,0,0,15530, +15531,7,8,0,0,15531,15532,7,2,0,0,15532,15533,7,7,0,0,15533,15534,7,13,0, +0,15534,15535,5,95,0,0,15535,15536,7,6,0,0,15536,15537,7,25,0,0,15537,15538, +7,8,0,0,15538,15539,7,15,0,0,15539,2090,1,0,0,0,15540,15541,7,7,0,0,15541, +15542,7,11,0,0,15542,15543,7,5,0,0,15543,15544,5,95,0,0,15544,15545,7,7, +0,0,15545,15546,7,12,0,0,15546,15547,7,14,0,0,15547,15548,7,6,0,0,15548, +15549,7,3,0,0,15549,15550,7,10,0,0,15550,15551,7,8,0,0,15551,15552,5,95, +0,0,15552,15553,7,8,0,0,15553,15554,7,19,0,0,15554,15555,7,0,0,0,15555,15556, +7,3,0,0,15556,15557,7,0,0,0,15557,15558,7,8,0,0,15558,15559,7,4,0,0,15559, +15560,7,6,0,0,15560,15561,7,3,0,0,15561,15562,7,5,0,0,15562,2092,1,0,0,0, +15563,15564,7,7,0,0,15564,15565,7,11,0,0,15565,15566,7,5,0,0,15566,15567, +5,95,0,0,15567,15568,7,5,0,0,15568,15569,7,2,0,0,15569,15570,7,3,0,0,15570, +15571,7,4,0,0,15571,2094,1,0,0,0,15572,15573,7,7,0,0,15573,15574,7,11,0, +0,15574,15575,7,5,0,0,15575,15576,7,5,0,0,15576,15577,7,2,0,0,15577,15578, +7,3,0,0,15578,15579,7,4,0,0,15579,2096,1,0,0,0,15580,15581,7,7,0,0,15581, +15582,7,11,0,0,15582,15583,7,5,0,0,15583,15584,5,95,0,0,15584,15585,7,5, +0,0,15585,15586,7,15,0,0,15586,15587,7,6,0,0,15587,15588,7,8,0,0,15588,15589, +7,10,0,0,15589,15590,7,0,0,0,15590,15591,7,11,0,0,15591,15592,5,95,0,0,15592, +15593,7,8,0,0,15593,15594,7,19,0,0,15594,15595,7,0,0,0,15595,15596,7,3,0, +0,15596,15597,7,5,0,0,15597,2098,1,0,0,0,15598,15599,7,7,0,0,15599,15600, +7,11,0,0,15600,15601,7,5,0,0,15601,15602,5,95,0,0,15602,15603,7,4,0,0,15603, +15604,7,6,0,0,15604,15605,7,3,0,0,15605,15606,7,3,0,0,15606,15607,7,10,0, +0,15607,15608,7,4,0,0,15608,15609,7,2,0,0,15609,15610,7,3,0,0,15610,15611, +7,18,0,0,15611,2100,1,0,0,0,15612,15613,7,7,0,0,15613,15614,7,11,0,0,15614, +15615,7,5,0,0,15615,15616,5,95,0,0,15616,15617,7,12,0,0,15617,15618,7,15, +0,0,15618,15619,7,15,0,0,15619,15620,7,6,0,0,15620,15621,7,3,0,0,15621,2102, +1,0,0,0,15622,15623,7,7,0,0,15623,15624,7,2,0,0,15624,15625,5,95,0,0,15625, +15626,7,0,0,0,15626,15627,7,8,0,0,15627,15628,7,8,0,0,15628,15629,7,6,0, +0,15629,15630,7,5,0,0,15630,15631,7,5,0,0,15631,2104,1,0,0,0,15632,15633, +7,7,0,0,15633,15634,7,2,0,0,15634,15635,5,95,0,0,15635,15636,7,0,0,0,15636, +15637,7,9,0,0,15637,15638,7,0,0,0,15638,15639,7,15,0,0,15639,15640,7,4,0, +0,15640,15641,7,10,0,0,15641,15642,7,13,0,0,15642,15643,7,6,0,0,15643,15644, +5,95,0,0,15644,15645,7,15,0,0,15645,15646,7,11,0,0,15646,15647,7,0,0,0,15647, +15648,7,7,0,0,15648,2106,1,0,0,0,15649,15650,7,7,0,0,15650,15651,7,2,0,0, +15651,15652,5,95,0,0,15652,15653,7,0,0,0,15653,15654,7,7,0,0,15654,15655, +7,5,0,0,15655,15656,7,10,0,0,15656,15657,5,95,0,0,15657,15658,7,3,0,0,15658, +15659,7,6,0,0,15659,15660,7,0,0,0,15660,15661,7,3,0,0,15661,15662,7,8,0, +0,15662,15663,7,19,0,0,15663,2108,1,0,0,0,15664,15665,7,7,0,0,15665,15666, +7,2,0,0,15666,15667,7,0,0,0,15667,15668,7,15,0,0,15668,15669,7,15,0,0,15669, +15670,7,6,0,0,15670,15671,7,7,0,0,15671,15672,7,9,0,0,15672,2110,1,0,0,0, +15673,15674,7,7,0,0,15674,15675,7,2,0,0,15675,15676,7,0,0,0,15676,15677, +7,3,0,0,15677,15678,7,8,0,0,15678,15679,7,19,0,0,15679,15680,7,10,0,0,15680, +15681,7,13,0,0,15681,15682,7,6,0,0,15682,15683,7,11,0,0,15683,15684,7,2, +0,0,15684,15685,7,17,0,0,15685,2112,1,0,0,0,15686,15687,7,7,0,0,15687,15688, +7,2,0,0,15688,15689,7,0,0,0,15689,15690,7,12,0,0,15690,15691,7,9,0,0,15691, +15692,7,10,0,0,15692,15693,7,4,0,0,15693,2114,1,0,0,0,15694,15695,7,7,0, +0,15695,15696,7,2,0,0,15696,15697,7,1,0,0,15697,15698,7,0,0,0,15698,15699, +7,9,0,0,15699,15700,7,16,0,0,15700,15701,7,10,0,0,15701,15702,7,11,0,0,15702, +15703,7,6,0,0,15703,2116,1,0,0,0,15704,15705,7,7,0,0,15705,15706,7,2,0,0, +15706,15707,5,95,0,0,15707,15708,7,0,0,0,15708,15709,7,12,0,0,15709,15710, +7,4,0,0,15710,15711,7,2,0,0,15711,15712,5,95,0,0,15712,15713,7,3,0,0,15713, +15714,7,6,0,0,15714,15715,7,2,0,0,15715,15716,7,15,0,0,15716,15717,7,4,0, +0,15717,15718,7,10,0,0,15718,15719,7,14,0,0,15719,15720,7,10,0,0,15720,15721, +7,23,0,0,15721,15722,7,6,0,0,15722,2118,1,0,0,0,15723,15724,7,7,0,0,15724, +15725,7,2,0,0,15725,15726,5,95,0,0,15726,15727,7,1,0,0,15727,15728,7,0,0, +0,15728,15729,7,5,0,0,15729,15730,7,6,0,0,15730,15731,7,4,0,0,15731,15732, +7,0,0,0,15732,15733,7,1,0,0,15733,15734,7,11,0,0,15734,15735,7,6,0,0,15735, +15736,5,95,0,0,15736,15737,7,14,0,0,15737,15738,7,12,0,0,15738,15739,7,11, +0,0,15739,15740,7,4,0,0,15740,15741,7,10,0,0,15741,15742,7,14,0,0,15742, +15743,7,13,0,0,15743,15744,5,95,0,0,15744,15745,7,3,0,0,15745,15746,7,6, +0,0,15746,15747,7,22,0,0,15747,15748,7,3,0,0,15748,15749,7,10,0,0,15749, +15750,7,4,0,0,15750,15751,7,6,0,0,15751,2120,1,0,0,0,15752,15753,7,7,0,0, +15753,15754,7,2,0,0,15754,15755,5,95,0,0,15755,15756,7,1,0,0,15756,15757, +7,0,0,0,15757,15758,7,4,0,0,15758,15759,7,8,0,0,15759,15760,7,19,0,0,15760, +15761,5,95,0,0,15761,15762,7,4,0,0,15762,15763,7,0,0,0,15763,15764,7,1,0, +0,15764,15765,7,11,0,0,15765,15766,7,6,0,0,15766,15767,5,95,0,0,15767,15768, +7,0,0,0,15768,15769,7,8,0,0,15769,15770,7,8,0,0,15770,15771,7,6,0,0,15771, +15772,7,5,0,0,15772,15773,7,5,0,0,15773,15774,5,95,0,0,15774,15775,7,1,0, +0,15775,15776,7,18,0,0,15776,15777,5,95,0,0,15777,15778,7,3,0,0,15778,15779, +7,2,0,0,15779,15780,7,22,0,0,15780,15781,7,10,0,0,15781,15782,7,9,0,0,15782, +2122,1,0,0,0,15783,15784,7,7,0,0,15784,15785,7,2,0,0,15785,15786,5,95,0, +0,15786,15787,7,1,0,0,15787,15788,7,10,0,0,15788,15789,7,7,0,0,15789,15790, +7,9,0,0,15790,15791,5,95,0,0,15791,15792,7,0,0,0,15792,15793,7,22,0,0,15793, +15794,7,0,0,0,15794,15795,7,3,0,0,15795,15796,7,6,0,0,15796,2124,1,0,0,0, +15797,15798,7,7,0,0,15798,15799,7,2,0,0,15799,15800,5,95,0,0,15800,15801, +7,1,0,0,15801,15802,7,12,0,0,15802,15803,7,16,0,0,15803,15804,7,16,0,0,15804, +15805,7,6,0,0,15805,15806,7,3,0,0,15806,2126,1,0,0,0,15807,15808,7,7,0,0, +15808,15809,7,2,0,0,15809,15810,7,8,0,0,15810,15811,7,0,0,0,15811,15812, +7,8,0,0,15812,15813,7,19,0,0,15813,15814,7,6,0,0,15814,2128,1,0,0,0,15815, +15816,7,7,0,0,15816,15817,7,2,0,0,15817,15818,7,8,0,0,15818,15819,7,19,0, +0,15819,15820,7,6,0,0,15820,15821,7,8,0,0,15821,15822,7,21,0,0,15822,2130, +1,0,0,0,15823,15824,7,7,0,0,15824,15825,7,2,0,0,15825,15826,5,95,0,0,15826, +15827,7,8,0,0,15827,15828,7,0,0,0,15828,15829,7,3,0,0,15829,15830,7,4,0, +0,15830,15831,7,6,0,0,15831,15832,7,5,0,0,15832,15833,7,10,0,0,15833,15834, +7,0,0,0,15834,15835,7,7,0,0,15835,2132,1,0,0,0,15836,15837,7,7,0,0,15837, +15838,7,2,0,0,15838,15839,5,95,0,0,15839,15840,7,8,0,0,15840,15841,7,19, +0,0,15841,15842,7,6,0,0,15842,15843,7,8,0,0,15843,15844,7,21,0,0,15844,15845, +5,95,0,0,15845,15846,7,0,0,0,15846,15847,7,8,0,0,15847,15848,7,11,0,0,15848, +15849,5,95,0,0,15849,15850,7,3,0,0,15850,15851,7,6,0,0,15851,15852,7,22, +0,0,15852,15853,7,3,0,0,15853,15854,7,10,0,0,15854,15855,7,4,0,0,15855,15856, +7,6,0,0,15856,2134,1,0,0,0,15857,15858,7,7,0,0,15858,15859,7,2,0,0,15859, +15860,5,95,0,0,15860,15861,7,8,0,0,15861,15862,7,11,0,0,15862,15863,7,12, +0,0,15863,15864,7,5,0,0,15864,15865,7,4,0,0,15865,15866,7,6,0,0,15866,15867, +7,3,0,0,15867,15868,5,95,0,0,15868,15869,7,1,0,0,15869,15870,7,18,0,0,15870, +15871,5,95,0,0,15871,15872,7,3,0,0,15872,15873,7,2,0,0,15873,15874,7,22, +0,0,15874,15875,7,10,0,0,15875,15876,7,9,0,0,15876,2136,1,0,0,0,15877,15878, +7,7,0,0,15878,15879,7,2,0,0,15879,15880,5,95,0,0,15880,15881,7,8,0,0,15881, +15882,7,11,0,0,15882,15883,7,12,0,0,15883,15884,7,5,0,0,15884,15885,7,4, +0,0,15885,15886,7,6,0,0,15886,15887,7,3,0,0,15887,15888,7,10,0,0,15888,15889, +7,7,0,0,15889,15890,7,17,0,0,15890,2138,1,0,0,0,15891,15892,7,7,0,0,15892, +15893,7,2,0,0,15893,15894,5,95,0,0,15894,15895,7,8,0,0,15895,15896,7,2,0, +0,15896,15897,7,0,0,0,15897,15898,7,11,0,0,15898,15899,7,6,0,0,15899,15900, +7,5,0,0,15900,15901,7,8,0,0,15901,15902,7,6,0,0,15902,15903,5,95,0,0,15903, +15904,7,5,0,0,15904,15905,7,24,0,0,15905,2140,1,0,0,0,15906,15907,7,7,0, +0,15907,15908,7,2,0,0,15908,15909,5,95,0,0,15909,15910,7,8,0,0,15910,15911, +7,2,0,0,15911,15912,7,14,0,0,15912,15913,7,14,0,0,15913,15914,7,2,0,0,15914, +15915,7,7,0,0,15915,15916,5,95,0,0,15916,15917,7,9,0,0,15917,15918,7,0,0, +0,15918,15919,7,4,0,0,15919,15920,7,0,0,0,15920,2142,1,0,0,0,15921,15922, +7,7,0,0,15922,15923,7,2,0,0,15923,15924,7,8,0,0,15924,15925,7,2,0,0,15925, +15926,7,14,0,0,15926,15927,7,15,0,0,15927,15928,7,3,0,0,15928,15929,7,6, +0,0,15929,15930,7,5,0,0,15930,15931,7,5,0,0,15931,2144,1,0,0,0,15932,15933, +7,7,0,0,15933,15934,7,2,0,0,15934,15935,5,95,0,0,15935,15936,7,8,0,0,15936, +15937,7,2,0,0,15937,15938,7,7,0,0,15938,15939,7,7,0,0,15939,15940,7,6,0, +0,15940,15941,7,8,0,0,15941,15942,7,4,0,0,15942,15943,5,95,0,0,15943,15944, +7,1,0,0,15944,15945,7,18,0,0,15945,15946,5,95,0,0,15946,15947,7,8,0,0,15947, +15948,7,1,0,0,15948,15949,5,95,0,0,15949,15950,7,22,0,0,15950,15951,7,19, +0,0,15951,15952,7,3,0,0,15952,15953,5,95,0,0,15953,15954,7,2,0,0,15954,15955, +7,7,0,0,15955,15956,7,11,0,0,15956,15957,7,18,0,0,15957,2146,1,0,0,0,15958, +15959,7,7,0,0,15959,15960,7,2,0,0,15960,15961,5,95,0,0,15961,15962,7,8,0, +0,15962,15963,7,2,0,0,15963,15964,7,7,0,0,15964,15965,7,7,0,0,15965,15966, +7,6,0,0,15966,15967,7,8,0,0,15967,15968,7,4,0,0,15968,15969,5,95,0,0,15969, +15970,7,1,0,0,15970,15971,7,18,0,0,15971,15972,5,95,0,0,15972,15973,7,8, +0,0,15973,15974,7,2,0,0,15974,15975,7,14,0,0,15975,15976,7,1,0,0,15976,15977, +7,10,0,0,15977,15978,7,7,0,0,15978,15979,7,6,0,0,15979,15980,5,95,0,0,15980, +15981,7,5,0,0,15981,15982,7,22,0,0,15982,2148,1,0,0,0,15983,15984,7,7,0, +0,15984,15985,7,2,0,0,15985,15986,5,95,0,0,15986,15987,7,8,0,0,15987,15988, +7,2,0,0,15988,15989,7,7,0,0,15989,15990,7,7,0,0,15990,15991,7,6,0,0,15991, +15992,7,8,0,0,15992,15993,7,4,0,0,15993,15994,5,95,0,0,15994,15995,7,1,0, +0,15995,15996,7,18,0,0,15996,15997,5,95,0,0,15997,15998,7,8,0,0,15998,15999, +7,2,0,0,15999,16000,7,5,0,0,16000,16001,7,4,0,0,16001,16002,5,95,0,0,16002, +16003,7,1,0,0,16003,16004,7,0,0,0,16004,16005,7,5,0,0,16005,16006,7,6,0, +0,16006,16007,7,9,0,0,16007,2150,1,0,0,0,16008,16009,7,7,0,0,16009,16010, +7,2,0,0,16010,16011,5,95,0,0,16011,16012,7,8,0,0,16012,16013,7,2,0,0,16013, +16014,7,7,0,0,16014,16015,7,7,0,0,16015,16016,7,6,0,0,16016,16017,7,8,0, +0,16017,16018,7,4,0,0,16018,16019,5,95,0,0,16019,16020,7,1,0,0,16020,16021, +7,18,0,0,16021,16022,5,95,0,0,16022,16023,7,6,0,0,16023,16024,7,11,0,0,16024, +16025,7,10,0,0,16025,16026,7,14,0,0,16026,16027,5,95,0,0,16027,16028,7,9, +0,0,16028,16029,7,12,0,0,16029,16030,7,15,0,0,16030,16031,7,5,0,0,16031, +2152,1,0,0,0,16032,16033,7,7,0,0,16033,16034,7,2,0,0,16034,16035,5,95,0, +0,16035,16036,7,8,0,0,16036,16037,7,2,0,0,16037,16038,7,7,0,0,16038,16039, +7,7,0,0,16039,16040,7,6,0,0,16040,16041,7,8,0,0,16041,16042,7,4,0,0,16042, +16043,5,95,0,0,16043,16044,7,1,0,0,16044,16045,7,18,0,0,16045,16046,5,95, +0,0,16046,16047,7,16,0,0,16047,16048,7,10,0,0,16048,16049,7,11,0,0,16049, +16050,7,4,0,0,16050,16051,7,6,0,0,16051,16052,7,3,0,0,16052,16053,7,10,0, +0,16053,16054,7,7,0,0,16054,16055,7,17,0,0,16055,2154,1,0,0,0,16056,16057, +7,7,0,0,16057,16058,7,2,0,0,16058,16059,7,8,0,0,16059,16060,7,2,0,0,16060, +16061,7,15,0,0,16061,16062,7,18,0,0,16062,2156,1,0,0,0,16063,16064,7,7,0, +0,16064,16065,7,2,0,0,16065,16066,5,95,0,0,16066,16067,7,8,0,0,16067,16068, +7,2,0,0,16068,16069,7,5,0,0,16069,16070,7,4,0,0,16070,16071,5,95,0,0,16071, +16072,7,25,0,0,16072,16073,7,14,0,0,16073,16074,7,11,0,0,16074,16075,5,95, +0,0,16075,16076,7,24,0,0,16076,16077,7,12,0,0,16077,16078,7,6,0,0,16078, +16079,7,3,0,0,16079,16080,7,18,0,0,16080,16081,5,95,0,0,16081,16082,7,3, +0,0,16082,16083,7,6,0,0,16083,16084,7,22,0,0,16084,16085,7,3,0,0,16085,16086, +7,10,0,0,16086,16087,7,4,0,0,16087,16088,7,6,0,0,16088,2158,1,0,0,0,16089, +16090,7,7,0,0,16090,16091,7,2,0,0,16091,16092,5,95,0,0,16092,16093,7,8,0, +0,16093,16094,7,15,0,0,16094,16095,7,12,0,0,16095,16096,5,95,0,0,16096,16097, +7,8,0,0,16097,16098,7,2,0,0,16098,16099,7,5,0,0,16099,16100,7,4,0,0,16100, +16101,7,10,0,0,16101,16102,7,7,0,0,16102,16103,7,17,0,0,16103,2160,1,0,0, +0,16104,16105,7,7,0,0,16105,16106,7,2,0,0,16106,16107,7,8,0,0,16107,16108, +7,15,0,0,16108,16109,7,12,0,0,16109,16110,5,95,0,0,16110,16111,7,8,0,0,16111, +16112,7,2,0,0,16112,16113,7,5,0,0,16113,16114,7,4,0,0,16114,16115,7,10,0, +0,16115,16116,7,7,0,0,16116,16117,7,17,0,0,16117,2162,1,0,0,0,16118,16119, +7,7,0,0,16119,16120,7,2,0,0,16120,16121,7,8,0,0,16121,16122,7,18,0,0,16122, +16123,7,8,0,0,16123,16124,7,11,0,0,16124,16125,7,6,0,0,16125,2164,1,0,0, +0,16126,16127,7,7,0,0,16127,16128,7,2,0,0,16128,16129,5,95,0,0,16129,16130, +7,9,0,0,16130,16131,7,0,0,0,16131,16132,7,4,0,0,16132,16133,7,0,0,0,16133, +16134,5,95,0,0,16134,16135,7,5,0,0,16135,16136,7,6,0,0,16136,16137,7,8,0, +0,16137,16138,7,12,0,0,16138,16139,7,3,0,0,16139,16140,7,10,0,0,16140,16141, +7,4,0,0,16141,16142,7,18,0,0,16142,16143,5,95,0,0,16143,16144,7,3,0,0,16144, +16145,7,6,0,0,16145,16146,7,22,0,0,16146,16147,7,3,0,0,16147,16148,7,10, +0,0,16148,16149,7,4,0,0,16149,16150,7,6,0,0,16150,2166,1,0,0,0,16151,16152, +7,7,0,0,16152,16153,7,2,0,0,16153,16154,5,95,0,0,16154,16155,7,9,0,0,16155, +16156,7,6,0,0,16156,16157,7,8,0,0,16157,16158,7,2,0,0,16158,16159,7,3,0, +0,16159,16160,7,3,0,0,16160,16161,7,6,0,0,16161,16162,7,11,0,0,16162,16163, +7,0,0,0,16163,16164,7,4,0,0,16164,16165,7,6,0,0,16165,2168,1,0,0,0,16166, +16167,7,7,0,0,16167,16168,7,2,0,0,16168,16169,7,9,0,0,16169,16170,7,6,0, +0,16170,16171,7,11,0,0,16171,16172,7,0,0,0,16172,16173,7,18,0,0,16173,2170, +1,0,0,0,16174,16175,7,7,0,0,16175,16176,7,2,0,0,16176,16177,7,9,0,0,16177, +16178,7,10,0,0,16178,16179,7,3,0,0,16179,16180,7,6,0,0,16180,16181,7,8,0, +0,16181,16182,7,4,0,0,16182,16183,7,10,0,0,16183,16184,7,2,0,0,16184,2172, +1,0,0,0,16185,16186,7,7,0,0,16186,16187,7,2,0,0,16187,16188,7,9,0,0,16188, +16189,7,10,0,0,16189,16190,7,5,0,0,16190,16191,7,8,0,0,16191,16192,7,0,0, +0,16192,16193,7,3,0,0,16193,16194,7,9,0,0,16194,16195,7,16,0,0,16195,16196, +7,10,0,0,16196,16197,7,11,0,0,16197,16198,7,6,0,0,16198,2174,1,0,0,0,16199, +16200,7,7,0,0,16200,16201,7,2,0,0,16201,16202,5,95,0,0,16202,16203,7,9,0, +0,16203,16204,7,2,0,0,16204,16205,7,14,0,0,16205,16206,7,0,0,0,16206,16207, +7,10,0,0,16207,16208,7,7,0,0,16208,16209,5,95,0,0,16209,16210,7,10,0,0,16210, +16211,7,7,0,0,16211,16212,7,9,0,0,16212,16213,7,6,0,0,16213,16214,7,25,0, +0,16214,16215,5,95,0,0,16215,16216,7,16,0,0,16216,16217,7,10,0,0,16217,16218, +7,11,0,0,16218,16219,7,4,0,0,16219,16220,7,6,0,0,16220,16221,7,3,0,0,16221, +2176,1,0,0,0,16222,16223,7,7,0,0,16223,16224,7,2,0,0,16224,16225,5,95,0, +0,16225,16226,7,9,0,0,16226,16227,7,5,0,0,16227,16228,7,4,0,0,16228,16229, +5,95,0,0,16229,16230,7,12,0,0,16230,16231,7,15,0,0,16231,16232,7,17,0,0, +16232,16233,7,3,0,0,16233,16234,7,0,0,0,16234,16235,7,9,0,0,16235,16236, +7,6,0,0,16236,16237,5,95,0,0,16237,16238,7,10,0,0,16238,16239,7,7,0,0,16239, +16240,7,5,0,0,16240,16241,7,6,0,0,16241,16242,7,3,0,0,16242,16243,7,4,0, +0,16243,16244,5,95,0,0,16244,16245,7,8,0,0,16245,16246,7,2,0,0,16246,16247, +7,7,0,0,16247,16248,7,13,0,0,16248,2178,1,0,0,0,16249,16250,7,7,0,0,16250, +16251,7,2,0,0,16251,16252,5,95,0,0,16252,16253,7,6,0,0,16253,16254,7,11, +0,0,16254,16255,7,10,0,0,16255,16256,7,14,0,0,16256,16257,5,95,0,0,16257, +16258,7,17,0,0,16258,16259,7,3,0,0,16259,16260,7,2,0,0,16260,16261,7,12, +0,0,16261,16262,7,15,0,0,16262,16263,7,1,0,0,16263,16264,7,18,0,0,16264, +2180,1,0,0,0,16265,16266,7,7,0,0,16266,16267,7,2,0,0,16267,16268,5,95,0, +0,16268,16269,7,6,0,0,16269,16270,7,11,0,0,16270,16271,7,10,0,0,16271,16272, +7,14,0,0,16272,16273,7,10,0,0,16273,16274,7,7,0,0,16274,16275,7,0,0,0,16275, +16276,7,4,0,0,16276,16277,7,6,0,0,16277,16278,5,95,0,0,16278,16279,7,20, +0,0,16279,16280,7,2,0,0,16280,16281,7,10,0,0,16281,16282,7,7,0,0,16282,2182, +1,0,0,0,16283,16284,7,7,0,0,16284,16285,7,2,0,0,16285,16286,5,95,0,0,16286, +16287,7,6,0,0,16287,16288,7,11,0,0,16288,16289,7,10,0,0,16289,16290,7,14, +0,0,16290,16291,7,10,0,0,16291,16292,7,7,0,0,16292,16293,7,0,0,0,16293,16294, +7,4,0,0,16294,16295,7,6,0,0,16295,16296,5,95,0,0,16296,16297,7,2,0,0,16297, +16298,7,1,0,0,16298,16299,7,18,0,0,16299,2184,1,0,0,0,16300,16301,7,7,0, +0,16301,16302,7,2,0,0,16302,16303,5,95,0,0,16303,16304,7,6,0,0,16304,16305, +7,11,0,0,16305,16306,7,10,0,0,16306,16307,7,14,0,0,16307,16308,7,10,0,0, +16308,16309,7,7,0,0,16309,16310,7,0,0,0,16310,16311,7,4,0,0,16311,16312, +7,6,0,0,16312,16313,5,95,0,0,16313,16314,7,2,0,0,16314,16315,7,12,0,0,16315, +16316,7,4,0,0,16316,16317,7,6,0,0,16317,16318,7,3,0,0,16318,16319,5,95,0, +0,16319,16320,7,20,0,0,16320,16321,7,2,0,0,16321,16322,7,10,0,0,16322,16323, +7,7,0,0,16323,2186,1,0,0,0,16324,16325,7,7,0,0,16325,16326,7,2,0,0,16326, +16327,7,6,0,0,16327,16328,7,7,0,0,16328,16329,7,4,0,0,16329,16330,7,10,0, +0,16330,16331,7,4,0,0,16331,16332,7,18,0,0,16332,16333,7,6,0,0,16333,16334, +7,5,0,0,16334,16335,7,8,0,0,16335,16336,7,0,0,0,16336,16337,7,15,0,0,16337, +16338,7,10,0,0,16338,16339,7,7,0,0,16339,16340,7,17,0,0,16340,2188,1,0,0, +0,16341,16342,7,7,0,0,16342,16343,7,2,0,0,16343,16344,5,95,0,0,16344,16345, +7,6,0,0,16345,16346,7,25,0,0,16346,16347,7,15,0,0,16347,16348,7,0,0,0,16348, +16349,7,7,0,0,16349,16350,7,9,0,0,16350,16351,5,95,0,0,16351,16352,7,17, +0,0,16352,16353,7,5,0,0,16353,16354,7,6,0,0,16354,16355,7,4,0,0,16355,16356, +5,95,0,0,16356,16357,7,4,0,0,16357,16358,7,2,0,0,16358,16359,5,95,0,0,16359, +16360,7,12,0,0,16360,16361,7,7,0,0,16361,16362,7,10,0,0,16362,16363,7,2, +0,0,16363,16364,7,7,0,0,16364,2190,1,0,0,0,16365,16366,7,7,0,0,16366,16367, +7,2,0,0,16367,16368,5,95,0,0,16368,16369,7,6,0,0,16369,16370,7,25,0,0,16370, +16371,7,15,0,0,16371,16372,7,0,0,0,16372,16373,7,7,0,0,16373,16374,7,9,0, +0,16374,2192,1,0,0,0,16375,16376,7,7,0,0,16376,16377,7,2,0,0,16377,16378, +5,95,0,0,16378,16379,7,6,0,0,16379,16380,7,25,0,0,16380,16381,7,15,0,0,16381, +16382,7,0,0,0,16382,16383,7,7,0,0,16383,16384,7,9,0,0,16384,16385,5,95,0, +0,16385,16386,7,4,0,0,16386,16387,7,0,0,0,16387,16388,7,1,0,0,16388,16389, +7,11,0,0,16389,16390,7,6,0,0,16390,2194,1,0,0,0,16391,16392,7,7,0,0,16392, +16393,7,2,0,0,16393,16394,7,6,0,0,16394,16395,7,25,0,0,16395,16396,7,4,0, +0,16396,16397,7,6,0,0,16397,16398,7,7,0,0,16398,16399,7,9,0,0,16399,2196, +1,0,0,0,16400,16401,7,7,0,0,16401,16402,7,2,0,0,16402,16403,5,95,0,0,16403, +16404,7,16,0,0,16404,16405,7,0,0,0,16405,16406,7,8,0,0,16406,16407,7,4,0, +0,16407,2198,1,0,0,0,16408,16409,7,7,0,0,16409,16410,7,2,0,0,16410,16411, +5,95,0,0,16411,16412,7,16,0,0,16412,16413,7,0,0,0,16413,16414,7,8,0,0,16414, +16415,7,4,0,0,16415,16416,7,2,0,0,16416,16417,7,3,0,0,16417,16418,7,10,0, +0,16418,16419,7,23,0,0,16419,16420,7,6,0,0,16420,16421,5,95,0,0,16421,16422, +7,20,0,0,16422,16423,7,2,0,0,16423,16424,7,10,0,0,16424,16425,7,7,0,0,16425, +2200,1,0,0,0,16426,16427,7,7,0,0,16427,16428,7,2,0,0,16428,16429,5,95,0, +0,16429,16430,7,16,0,0,16430,16431,7,10,0,0,16431,16432,7,11,0,0,16432,16433, +7,4,0,0,16433,16434,7,6,0,0,16434,16435,7,3,0,0,16435,16436,7,10,0,0,16436, +16437,7,7,0,0,16437,16438,7,17,0,0,16438,2202,1,0,0,0,16439,16440,7,7,0, +0,16440,16441,7,2,0,0,16441,16442,7,16,0,0,16442,16443,7,2,0,0,16443,16444, +7,3,0,0,16444,16445,7,8,0,0,16445,16446,7,6,0,0,16446,2204,1,0,0,0,16447, +16448,7,7,0,0,16448,16449,7,2,0,0,16449,16450,5,95,0,0,16450,16451,7,16, +0,0,16451,16452,7,12,0,0,16452,16453,7,11,0,0,16453,16454,7,11,0,0,16454, +16455,5,95,0,0,16455,16456,7,2,0,0,16456,16457,7,12,0,0,16457,16458,7,4, +0,0,16458,16459,7,6,0,0,16459,16460,7,3,0,0,16460,16461,5,95,0,0,16461,16462, +7,20,0,0,16462,16463,7,2,0,0,16463,16464,7,10,0,0,16464,16465,7,7,0,0,16465, +16466,5,95,0,0,16466,16467,7,4,0,0,16467,16468,7,2,0,0,16468,16469,5,95, +0,0,16469,16470,7,2,0,0,16470,16471,7,12,0,0,16471,16472,7,4,0,0,16472,16473, +7,6,0,0,16473,16474,7,3,0,0,16474,2206,1,0,0,0,16475,16476,7,7,0,0,16476, +16477,7,2,0,0,16477,16478,5,95,0,0,16478,16479,7,17,0,0,16479,16480,7,0, +0,0,16480,16481,7,4,0,0,16481,16482,7,19,0,0,16482,16483,7,6,0,0,16483,16484, +7,3,0,0,16484,16485,5,95,0,0,16485,16486,7,2,0,0,16486,16487,7,15,0,0,16487, +16488,7,4,0,0,16488,16489,7,10,0,0,16489,16490,7,14,0,0,16490,16491,7,10, +0,0,16491,16492,7,23,0,0,16492,16493,7,6,0,0,16493,16494,7,3,0,0,16494,16495, +5,95,0,0,16495,16496,7,5,0,0,16496,16497,7,4,0,0,16497,16498,7,0,0,0,16498, +16499,7,4,0,0,16499,16500,7,10,0,0,16500,16501,7,5,0,0,16501,16502,7,4,0, +0,16502,16503,7,10,0,0,16503,16504,7,8,0,0,16504,16505,7,5,0,0,16505,2208, +1,0,0,0,16506,16507,7,7,0,0,16507,16508,7,2,0,0,16508,16509,5,95,0,0,16509, +16510,7,17,0,0,16510,16511,7,1,0,0,16511,16512,7,18,0,0,16512,16513,5,95, +0,0,16513,16514,7,15,0,0,16514,16515,7,12,0,0,16515,16516,7,5,0,0,16516, +16517,7,19,0,0,16517,16518,7,9,0,0,16518,16519,7,2,0,0,16519,16520,7,22, +0,0,16520,16521,7,7,0,0,16521,2210,1,0,0,0,16522,16523,7,7,0,0,16523,16524, +7,2,0,0,16524,16525,7,17,0,0,16525,16526,7,12,0,0,16526,16527,7,0,0,0,16527, +16528,7,3,0,0,16528,16529,7,0,0,0,16529,16530,7,7,0,0,16530,16531,7,4,0, +0,16531,16532,7,6,0,0,16532,16533,7,6,0,0,16533,2212,1,0,0,0,16534,16535, +7,7,0,0,16535,16536,7,2,0,0,16536,16537,5,95,0,0,16537,16538,7,10,0,0,16538, +16539,7,7,0,0,16539,16540,7,9,0,0,16540,16541,7,6,0,0,16541,16542,7,25,0, +0,16542,16543,5,95,0,0,16543,16544,7,16,0,0,16544,16545,7,16,0,0,16545,16546, +7,5,0,0,16546,2214,1,0,0,0,16547,16548,7,7,0,0,16548,16549,7,2,0,0,16549, +16550,5,95,0,0,16550,16551,7,10,0,0,16551,16552,7,7,0,0,16552,16553,7,9, +0,0,16553,16554,7,6,0,0,16554,16555,7,25,0,0,16555,2216,1,0,0,0,16556,16557, +7,7,0,0,16557,16558,7,2,0,0,16558,16559,5,95,0,0,16559,16560,7,10,0,0,16560, +16561,7,7,0,0,16561,16562,7,9,0,0,16562,16563,7,6,0,0,16563,16564,7,25,0, +0,16564,16565,5,95,0,0,16565,16566,7,5,0,0,16566,16567,7,5,0,0,16567,2218, +1,0,0,0,16568,16569,7,7,0,0,16569,16570,7,2,0,0,16570,16571,5,95,0,0,16571, +16572,7,10,0,0,16572,16573,7,7,0,0,16573,16574,7,14,0,0,16574,16575,7,6, +0,0,16575,16576,7,14,0,0,16576,16577,7,2,0,0,16577,16578,7,3,0,0,16578,16579, +7,18,0,0,16579,2220,1,0,0,0,16580,16581,7,7,0,0,16581,16582,7,2,0,0,16582, +16583,5,95,0,0,16583,16584,7,10,0,0,16584,16585,7,7,0,0,16585,16586,7,14, +0,0,16586,16587,7,6,0,0,16587,16588,7,14,0,0,16588,16589,7,2,0,0,16589,16590, +7,3,0,0,16590,16591,7,18,0,0,16591,16592,5,95,0,0,16592,16593,7,15,0,0,16593, +16594,7,3,0,0,16594,16595,7,12,0,0,16595,16596,7,7,0,0,16596,16597,7,10, +0,0,16597,16598,7,7,0,0,16598,16599,7,17,0,0,16599,2222,1,0,0,0,16600,16601, +7,7,0,0,16601,16602,7,2,0,0,16602,16603,7,21,0,0,16603,16604,7,6,0,0,16604, +16605,7,6,0,0,16605,16606,7,15,0,0,16606,2224,1,0,0,0,16607,16608,7,7,0, +0,16608,16609,7,2,0,0,16609,16610,5,95,0,0,16610,16611,7,11,0,0,16611,16612, +7,2,0,0,16612,16613,7,0,0,0,16613,16614,7,9,0,0,16614,2226,1,0,0,0,16615, +16616,7,7,0,0,16616,16617,7,2,0,0,16617,16618,7,11,0,0,16618,16619,7,2,0, +0,16619,16620,7,8,0,0,16620,16621,7,0,0,0,16621,16622,7,11,0,0,16622,2228, +1,0,0,0,16623,16624,7,7,0,0,16624,16625,7,2,0,0,16625,16626,7,11,0,0,16626, +16627,7,2,0,0,16627,16628,7,17,0,0,16628,2230,1,0,0,0,16629,16630,7,7,0, +0,16630,16631,7,2,0,0,16631,16632,7,11,0,0,16632,16633,7,2,0,0,16633,16634, +7,17,0,0,16634,16635,7,16,0,0,16635,16636,7,10,0,0,16636,16637,7,11,0,0, +16637,16638,7,6,0,0,16638,2232,1,0,0,0,16639,16640,7,7,0,0,16640,16641,7, +2,0,0,16641,16642,7,11,0,0,16642,16643,7,2,0,0,16643,16644,7,17,0,0,16644, +16645,7,17,0,0,16645,16646,7,10,0,0,16646,16647,7,7,0,0,16647,16648,7,17, +0,0,16648,2234,1,0,0,0,16649,16650,7,7,0,0,16650,16651,7,2,0,0,16651,16652, +7,14,0,0,16652,16653,7,0,0,0,16653,16654,7,15,0,0,16654,16655,7,15,0,0,16655, +16656,7,10,0,0,16656,16657,7,7,0,0,16657,16658,7,17,0,0,16658,2236,1,0,0, +0,16659,16660,7,7,0,0,16660,16661,7,2,0,0,16661,16662,7,14,0,0,16662,16663, +7,0,0,0,16663,16664,7,25,0,0,16664,16665,7,13,0,0,16665,16666,7,0,0,0,16666, +16667,7,11,0,0,16667,16668,7,12,0,0,16668,16669,7,6,0,0,16669,2238,1,0,0, +0,16670,16671,7,7,0,0,16671,16672,7,2,0,0,16672,16673,5,95,0,0,16673,16674, +7,14,0,0,16674,16675,7,6,0,0,16675,16676,7,3,0,0,16676,16677,7,17,0,0,16677, +16678,7,6,0,0,16678,2240,1,0,0,0,16679,16680,7,7,0,0,16680,16681,7,2,0,0, +16681,16682,7,14,0,0,16682,16683,7,10,0,0,16683,16684,7,7,0,0,16684,16685, +7,10,0,0,16685,16686,7,14,0,0,16686,16687,7,10,0,0,16687,16688,7,23,0,0, +16688,16689,7,6,0,0,16689,2242,1,0,0,0,16690,16691,7,7,0,0,16691,16692,7, +2,0,0,16692,16693,7,14,0,0,16693,16694,7,10,0,0,16694,16695,7,7,0,0,16695, +16696,7,13,0,0,16696,16697,7,0,0,0,16697,16698,7,11,0,0,16698,16699,7,12, +0,0,16699,16700,7,6,0,0,16700,2244,1,0,0,0,16701,16702,7,7,0,0,16702,16703, +7,2,0,0,16703,16704,5,95,0,0,16704,16705,7,14,0,0,16705,16706,7,2,0,0,16706, +16707,7,9,0,0,16707,16708,7,6,0,0,16708,16709,7,11,0,0,16709,16710,5,95, +0,0,16710,16711,7,15,0,0,16711,16712,7,12,0,0,16712,16713,7,5,0,0,16713, +16714,7,19,0,0,16714,16715,5,95,0,0,16715,16716,7,3,0,0,16716,16717,7,6, +0,0,16717,16718,7,16,0,0,16718,2246,1,0,0,0,16719,16720,7,7,0,0,16720,16721, +7,2,0,0,16721,16722,5,95,0,0,16722,16723,7,14,0,0,16723,16724,7,2,0,0,16724, +16725,7,7,0,0,16725,16726,7,10,0,0,16726,16727,7,4,0,0,16727,16728,7,2,0, +0,16728,16729,7,3,0,0,16729,16730,7,10,0,0,16730,16731,7,7,0,0,16731,16732, +7,17,0,0,16732,2248,1,0,0,0,16733,16734,7,7,0,0,16734,16735,7,2,0,0,16735, +16736,7,14,0,0,16736,16737,7,2,0,0,16737,16738,7,7,0,0,16738,16739,7,10, +0,0,16739,16740,7,4,0,0,16740,16741,7,2,0,0,16741,16742,7,3,0,0,16742,16743, +7,10,0,0,16743,16744,7,7,0,0,16744,16745,7,17,0,0,16745,2250,1,0,0,0,16746, +16747,7,7,0,0,16747,16748,7,2,0,0,16748,16749,5,95,0,0,16749,16750,7,14, +0,0,16750,16751,7,2,0,0,16751,16752,7,7,0,0,16752,16753,7,10,0,0,16753,16754, +7,4,0,0,16754,16755,7,2,0,0,16755,16756,7,3,0,0,16756,2252,1,0,0,0,16757, +16758,7,7,0,0,16758,16759,7,2,0,0,16759,16760,5,95,0,0,16760,16761,7,14, +0,0,16761,16762,7,12,0,0,16762,16763,7,11,0,0,16763,16764,7,4,0,0,16764, +16765,7,10,0,0,16765,16766,7,14,0,0,16766,16767,7,13,0,0,16767,16768,5,95, +0,0,16768,16769,7,3,0,0,16769,16770,7,6,0,0,16770,16771,7,22,0,0,16771,16772, +7,3,0,0,16772,16773,7,10,0,0,16773,16774,7,4,0,0,16774,16775,7,6,0,0,16775, +2254,1,0,0,0,16776,16777,7,7,0,0,16777,16778,7,2,0,0,16778,16779,5,95,0, +0,16779,16780,7,7,0,0,16780,16781,7,0,0,0,16781,16782,7,4,0,0,16782,16783, +7,10,0,0,16783,16784,7,13,0,0,16784,16785,7,6,0,0,16785,16786,5,95,0,0,16786, +16787,7,16,0,0,16787,16788,7,12,0,0,16788,16789,7,11,0,0,16789,16790,7,11, +0,0,16790,16791,5,95,0,0,16791,16792,7,2,0,0,16792,16793,7,12,0,0,16793, +16794,7,4,0,0,16794,16795,7,6,0,0,16795,16796,7,3,0,0,16796,16797,5,95,0, +0,16797,16798,7,20,0,0,16798,16799,7,2,0,0,16799,16800,7,10,0,0,16800,16801, +7,7,0,0,16801,2256,1,0,0,0,16802,16803,7,7,0,0,16803,16804,7,2,0,0,16804, +16805,7,7,0,0,16805,16806,7,1,0,0,16806,16807,7,11,0,0,16807,16808,7,2,0, +0,16808,16809,7,8,0,0,16809,16810,7,21,0,0,16810,16811,7,10,0,0,16811,16812, +7,7,0,0,16812,16813,7,17,0,0,16813,2258,1,0,0,0,16814,16815,7,7,0,0,16815, +16816,7,2,0,0,16816,16817,7,7,0,0,16817,16818,7,6,0,0,16818,16819,7,9,0, +0,16819,16820,7,10,0,0,16820,16821,7,4,0,0,16821,16822,7,10,0,0,16822,16823, +7,2,0,0,16823,16824,7,7,0,0,16824,16825,7,0,0,0,16825,16826,7,1,0,0,16826, +16827,7,11,0,0,16827,16828,7,6,0,0,16828,2260,1,0,0,0,16829,16830,7,7,0, +0,16830,16831,7,2,0,0,16831,16832,7,7,0,0,16832,16833,7,6,0,0,16833,2262, +1,0,0,0,16834,16835,7,7,0,0,16835,16836,7,2,0,0,16836,16837,7,7,0,0,16837, +16838,7,12,0,0,16838,16839,7,11,0,0,16839,16840,7,11,0,0,16840,16841,7,10, +0,0,16841,16842,7,16,0,0,16842,2264,1,0,0,0,16843,16844,7,7,0,0,16844,16845, +7,2,0,0,16845,16846,5,95,0,0,16846,16847,7,7,0,0,16847,16848,7,11,0,0,16848, +16849,7,20,0,0,16849,16850,5,95,0,0,16850,16851,7,1,0,0,16851,16852,7,0, +0,0,16852,16853,7,4,0,0,16853,16854,7,8,0,0,16854,16855,7,19,0,0,16855,16856, +7,10,0,0,16856,16857,7,7,0,0,16857,16858,7,17,0,0,16858,2266,1,0,0,0,16859, +16860,7,7,0,0,16860,16861,7,2,0,0,16861,16862,5,95,0,0,16862,16863,7,7,0, +0,16863,16864,7,11,0,0,16864,16865,7,20,0,0,16865,16866,5,95,0,0,16866,16867, +7,15,0,0,16867,16868,7,3,0,0,16868,16869,7,6,0,0,16869,16870,7,16,0,0,16870, +16871,7,6,0,0,16871,16872,7,4,0,0,16872,16873,7,8,0,0,16873,16874,7,19,0, +0,16874,2268,1,0,0,0,16875,16876,7,7,0,0,16876,16877,7,2,0,0,16877,2270, +1,0,0,0,16878,16879,7,7,0,0,16879,16880,7,2,0,0,16880,16881,7,7,0,0,16881, +16882,7,5,0,0,16882,16883,7,8,0,0,16883,16884,7,19,0,0,16884,16885,7,6,0, +0,16885,16886,7,14,0,0,16886,16887,7,0,0,0,16887,2272,1,0,0,0,16888,16889, +7,7,0,0,16889,16890,7,2,0,0,16890,16891,5,95,0,0,16891,16892,7,2,0,0,16892, +16893,7,1,0,0,16893,16894,7,20,0,0,16894,16895,7,6,0,0,16895,16896,7,8,0, +0,16896,16897,7,4,0,0,16897,16898,5,95,0,0,16898,16899,7,11,0,0,16899,16900, +7,10,0,0,16900,16901,7,7,0,0,16901,16902,7,21,0,0,16902,2274,1,0,0,0,16903, +16904,7,7,0,0,16904,16905,7,2,0,0,16905,16906,7,2,0,0,16906,16907,7,3,0, +0,16907,16908,7,9,0,0,16908,16909,7,6,0,0,16909,16910,7,3,0,0,16910,2276, +1,0,0,0,16911,16912,7,7,0,0,16912,16913,7,2,0,0,16913,16914,5,95,0,0,16914, +16915,7,2,0,0,16915,16916,7,3,0,0,16916,16917,7,9,0,0,16917,16918,7,6,0, +0,16918,16919,7,3,0,0,16919,16920,5,95,0,0,16920,16921,7,3,0,0,16921,16922, +7,2,0,0,16922,16923,7,11,0,0,16923,16924,7,11,0,0,16924,16925,7,12,0,0,16925, +16926,7,15,0,0,16926,16927,7,5,0,0,16927,2278,1,0,0,0,16928,16929,7,7,0, +0,16929,16930,7,2,0,0,16930,16931,5,95,0,0,16931,16932,7,2,0,0,16932,16933, +7,12,0,0,16933,16934,7,4,0,0,16934,16935,7,6,0,0,16935,16936,7,3,0,0,16936, +16937,5,95,0,0,16937,16938,7,20,0,0,16938,16939,7,2,0,0,16939,16940,7,10, +0,0,16940,16941,7,7,0,0,16941,16942,5,95,0,0,16942,16943,7,4,0,0,16943,16944, +7,2,0,0,16944,16945,5,95,0,0,16945,16946,7,0,0,0,16946,16947,7,7,0,0,16947, +16948,7,4,0,0,16948,16949,7,10,0,0,16949,2280,1,0,0,0,16950,16951,7,7,0, +0,16951,16952,7,2,0,0,16952,16953,5,95,0,0,16953,16954,7,2,0,0,16954,16955, +7,12,0,0,16955,16956,7,4,0,0,16956,16957,7,6,0,0,16957,16958,7,3,0,0,16958, +16959,5,95,0,0,16959,16960,7,20,0,0,16960,16961,7,2,0,0,16961,16962,7,10, +0,0,16962,16963,7,7,0,0,16963,16964,5,95,0,0,16964,16965,7,4,0,0,16965,16966, +7,2,0,0,16966,16967,5,95,0,0,16967,16968,7,10,0,0,16968,16969,7,7,0,0,16969, +16970,7,7,0,0,16970,16971,7,6,0,0,16971,16972,7,3,0,0,16972,2282,1,0,0,0, +16973,16974,7,7,0,0,16974,16975,7,2,0,0,16975,16976,7,2,0,0,16976,16977, +7,13,0,0,16977,16978,7,6,0,0,16978,16979,7,3,0,0,16979,16980,7,3,0,0,16980, +16981,7,10,0,0,16981,16982,7,9,0,0,16982,16983,7,6,0,0,16983,2284,1,0,0, +0,16984,16985,7,7,0,0,16985,16986,7,2,0,0,16986,16987,5,95,0,0,16987,16988, +7,15,0,0,16988,16989,7,0,0,0,16989,16990,7,3,0,0,16990,16991,7,0,0,0,16991, +16992,7,11,0,0,16992,16993,7,11,0,0,16993,16994,7,6,0,0,16994,16995,7,11, +0,0,16995,16996,5,95,0,0,16996,16997,7,10,0,0,16997,16998,7,7,0,0,16998, +16999,7,9,0,0,16999,17000,7,6,0,0,17000,17001,7,25,0,0,17001,2286,1,0,0, +0,17002,17003,7,7,0,0,17003,17004,7,2,0,0,17004,17005,7,15,0,0,17005,17006, +7,0,0,0,17006,17007,7,3,0,0,17007,17008,7,0,0,0,17008,17009,7,11,0,0,17009, +17010,7,11,0,0,17010,17011,7,6,0,0,17011,17012,7,11,0,0,17012,17013,5,95, +0,0,17013,17014,7,10,0,0,17014,17015,7,7,0,0,17015,17016,7,9,0,0,17016,17017, +7,6,0,0,17017,17018,7,25,0,0,17018,2288,1,0,0,0,17019,17020,7,7,0,0,17020, +17021,7,2,0,0,17021,17022,5,95,0,0,17022,17023,7,15,0,0,17023,17024,7,0, +0,0,17024,17025,7,3,0,0,17025,17026,7,0,0,0,17026,17027,7,11,0,0,17027,17028, +7,11,0,0,17028,17029,7,6,0,0,17029,17030,7,11,0,0,17030,2290,1,0,0,0,17031, +17032,7,7,0,0,17032,17033,7,2,0,0,17033,17034,7,15,0,0,17034,17035,7,0,0, +0,17035,17036,7,3,0,0,17036,17037,7,0,0,0,17037,17038,7,11,0,0,17038,17039, +7,11,0,0,17039,17040,7,6,0,0,17040,17041,7,11,0,0,17041,2292,1,0,0,0,17042, +17043,7,7,0,0,17043,17044,7,2,0,0,17044,17045,5,95,0,0,17045,17046,7,15, +0,0,17046,17047,7,0,0,0,17047,17048,7,3,0,0,17048,17049,7,4,0,0,17049,17050, +7,10,0,0,17050,17051,7,0,0,0,17051,17052,7,11,0,0,17052,17053,5,95,0,0,17053, +17054,7,8,0,0,17054,17055,7,2,0,0,17055,17056,7,14,0,0,17056,17057,7,14, +0,0,17057,17058,7,10,0,0,17058,17059,7,4,0,0,17059,2294,1,0,0,0,17060,17061, +7,7,0,0,17061,17062,7,2,0,0,17062,17063,5,95,0,0,17063,17064,7,15,0,0,17064, +17065,7,0,0,0,17065,17066,7,3,0,0,17066,17067,7,4,0,0,17067,17068,7,10,0, +0,17068,17069,7,0,0,0,17069,17070,7,11,0,0,17070,17071,5,95,0,0,17071,17072, +7,20,0,0,17072,17073,7,2,0,0,17073,17074,7,10,0,0,17074,17075,7,7,0,0,17075, +2296,1,0,0,0,17076,17077,7,7,0,0,17077,17078,7,2,0,0,17078,17079,5,95,0, +0,17079,17080,7,15,0,0,17080,17081,7,0,0,0,17081,17082,7,3,0,0,17082,17083, +7,4,0,0,17083,17084,7,10,0,0,17084,17085,7,0,0,0,17085,17086,7,11,0,0,17086, +17087,5,95,0,0,17087,17088,7,3,0,0,17088,17089,7,2,0,0,17089,17090,7,11, +0,0,17090,17091,7,11,0,0,17091,17092,7,12,0,0,17092,17093,7,15,0,0,17093, +17094,5,95,0,0,17094,17095,7,15,0,0,17095,17096,7,12,0,0,17096,17097,7,5, +0,0,17097,17098,7,19,0,0,17098,17099,7,9,0,0,17099,17100,7,2,0,0,17100,17101, +7,22,0,0,17101,17102,7,7,0,0,17102,2298,1,0,0,0,17103,17104,7,7,0,0,17104, +17105,7,2,0,0,17105,17106,7,15,0,0,17106,17107,7,0,0,0,17107,17108,7,3,0, +0,17108,17109,7,4,0,0,17109,17110,7,10,0,0,17110,17111,7,4,0,0,17111,17112, +7,10,0,0,17112,17113,7,2,0,0,17113,17114,7,7,0,0,17114,2300,1,0,0,0,17115, +17116,7,7,0,0,17116,17117,7,2,0,0,17117,17118,5,95,0,0,17118,17119,7,15, +0,0,17119,17120,7,11,0,0,17120,17121,7,0,0,0,17121,17122,7,8,0,0,17122,17123, +7,6,0,0,17123,17124,5,95,0,0,17124,17125,7,9,0,0,17125,17126,7,10,0,0,17126, +17127,7,5,0,0,17127,17128,7,4,0,0,17128,17129,7,10,0,0,17129,17130,7,7,0, +0,17130,17131,7,8,0,0,17131,17132,7,4,0,0,17132,2302,1,0,0,0,17133,17134, +7,7,0,0,17134,17135,7,2,0,0,17135,17136,5,95,0,0,17136,17137,7,15,0,0,17137, +17138,7,11,0,0,17138,17139,7,0,0,0,17139,17140,7,8,0,0,17140,17141,7,6,0, +0,17141,17142,5,95,0,0,17142,17143,7,17,0,0,17143,17144,7,3,0,0,17144,17145, +7,2,0,0,17145,17146,7,12,0,0,17146,17147,7,15,0,0,17147,17148,5,95,0,0,17148, +17149,7,1,0,0,17149,17150,7,18,0,0,17150,2304,1,0,0,0,17151,17152,7,7,0, +0,17152,17153,7,2,0,0,17153,17154,5,95,0,0,17154,17155,7,15,0,0,17155,17156, +7,24,0,0,17156,17157,5,95,0,0,17157,17158,7,8,0,0,17158,17159,7,2,0,0,17159, +17160,7,7,0,0,17160,17161,7,8,0,0,17161,17162,7,12,0,0,17162,17163,7,3,0, +0,17163,17164,7,3,0,0,17164,17165,7,6,0,0,17165,17166,7,7,0,0,17166,17167, +7,4,0,0,17167,17168,5,95,0,0,17168,17169,7,12,0,0,17169,17170,7,7,0,0,17170, +17171,7,10,0,0,17171,17172,7,2,0,0,17172,17173,7,7,0,0,17173,2306,1,0,0, +0,17174,17175,7,7,0,0,17175,17176,7,2,0,0,17176,17177,5,95,0,0,17177,17178, +7,15,0,0,17178,17179,7,24,0,0,17179,17180,5,95,0,0,17180,17181,7,14,0,0, +17181,17182,7,0,0,0,17182,17183,7,15,0,0,17183,2308,1,0,0,0,17184,17185, +7,7,0,0,17185,17186,7,2,0,0,17186,17187,7,15,0,0,17187,17188,7,3,0,0,17188, +17189,7,2,0,0,17189,17190,7,14,0,0,17190,17191,7,15,0,0,17191,17192,7,4, +0,0,17192,2310,1,0,0,0,17193,17194,7,7,0,0,17194,17195,7,2,0,0,17195,17196, +5,95,0,0,17196,17197,7,15,0,0,17197,17198,7,24,0,0,17198,17199,5,95,0,0, +17199,17200,7,3,0,0,17200,17201,7,6,0,0,17201,17202,7,15,0,0,17202,17203, +7,11,0,0,17203,17204,7,10,0,0,17204,17205,7,8,0,0,17205,17206,7,0,0,0,17206, +17207,7,4,0,0,17207,17208,7,6,0,0,17208,2312,1,0,0,0,17209,17210,7,7,0,0, +17210,17211,7,2,0,0,17211,17212,5,95,0,0,17212,17213,7,15,0,0,17213,17214, +7,24,0,0,17214,17215,5,95,0,0,17215,17216,7,5,0,0,17216,17217,7,21,0,0,17217, +17218,7,6,0,0,17218,17219,7,22,0,0,17219,2314,1,0,0,0,17220,17221,7,7,0, +0,17221,17222,7,2,0,0,17222,17223,5,95,0,0,17223,17224,7,15,0,0,17224,17225, +7,3,0,0,17225,17226,7,12,0,0,17226,17227,7,7,0,0,17227,17228,7,6,0,0,17228, +17229,5,95,0,0,17229,17230,7,17,0,0,17230,17231,7,5,0,0,17231,17232,7,6, +0,0,17232,17233,7,4,0,0,17233,17234,7,5,0,0,17234,2316,1,0,0,0,17235,17236, +7,7,0,0,17236,17237,7,2,0,0,17237,17238,5,95,0,0,17238,17239,7,15,0,0,17239, +17240,7,12,0,0,17240,17241,7,11,0,0,17241,17242,7,11,0,0,17242,17243,5,95, +0,0,17243,17244,7,15,0,0,17244,17245,7,3,0,0,17245,17246,7,6,0,0,17246,17247, +7,9,0,0,17247,2318,1,0,0,0,17248,17249,7,7,0,0,17249,17250,7,2,0,0,17250, +17251,5,95,0,0,17251,17252,7,15,0,0,17252,17253,7,12,0,0,17253,17254,7,5, +0,0,17254,17255,7,19,0,0,17255,17256,5,95,0,0,17256,17257,7,15,0,0,17257, +17258,7,3,0,0,17258,17259,7,6,0,0,17259,17260,7,9,0,0,17260,2320,1,0,0,0, +17261,17262,7,7,0,0,17262,17263,7,2,0,0,17263,17264,5,95,0,0,17264,17265, +7,15,0,0,17265,17266,7,12,0,0,17266,17267,7,5,0,0,17267,17268,7,19,0,0,17268, +17269,5,95,0,0,17269,17270,7,5,0,0,17270,17271,7,12,0,0,17271,17272,7,1, +0,0,17272,17273,7,24,0,0,17273,2322,1,0,0,0,17274,17275,7,7,0,0,17275,17276, +7,2,0,0,17276,17277,5,95,0,0,17277,17278,7,15,0,0,17278,17279,7,25,0,0,17279, +17280,5,95,0,0,17280,17281,7,16,0,0,17281,17282,7,0,0,0,17282,17283,7,12, +0,0,17283,17284,7,11,0,0,17284,17285,7,4,0,0,17285,17286,5,95,0,0,17286, +17287,7,4,0,0,17287,17288,7,2,0,0,17288,17289,7,11,0,0,17289,17290,7,6,0, +0,17290,17291,7,3,0,0,17291,17292,7,0,0,0,17292,17293,7,7,0,0,17293,17294, +7,8,0,0,17294,17295,7,6,0,0,17295,2324,1,0,0,0,17296,17297,7,7,0,0,17297, +17298,7,2,0,0,17298,17299,5,95,0,0,17299,17300,7,15,0,0,17300,17301,7,25, +0,0,17301,17302,5,95,0,0,17302,17303,7,20,0,0,17303,17304,7,2,0,0,17304, +17305,7,10,0,0,17305,17306,7,7,0,0,17306,17307,5,95,0,0,17307,17308,7,16, +0,0,17308,17309,7,10,0,0,17309,17310,7,11,0,0,17310,17311,7,4,0,0,17311, +17312,7,6,0,0,17312,17313,7,3,0,0,17313,2326,1,0,0,0,17314,17315,7,7,0,0, +17315,17316,7,2,0,0,17316,17317,5,95,0,0,17317,17318,7,24,0,0,17318,17319, +7,21,0,0,17319,17320,7,7,0,0,17320,17321,5,95,0,0,17321,17322,7,1,0,0,17322, +17323,7,12,0,0,17323,17324,7,16,0,0,17324,17325,7,16,0,0,17325,2328,1,0, +0,0,17326,17327,7,7,0,0,17327,17328,7,2,0,0,17328,17329,5,95,0,0,17329,17330, +7,24,0,0,17330,17331,7,12,0,0,17331,17332,7,6,0,0,17332,17333,7,3,0,0,17333, +17334,7,18,0,0,17334,17335,5,95,0,0,17335,17336,7,4,0,0,17336,17337,7,3, +0,0,17337,17338,7,0,0,0,17338,17339,7,7,0,0,17339,17340,7,5,0,0,17340,17341, +7,16,0,0,17341,17342,7,2,0,0,17342,17343,7,3,0,0,17343,17344,7,14,0,0,17344, +17345,7,0,0,0,17345,17346,7,4,0,0,17346,17347,7,10,0,0,17347,17348,7,2,0, +0,17348,17349,7,7,0,0,17349,2330,1,0,0,0,17350,17351,7,7,0,0,17351,17352, +7,2,0,0,17352,17353,5,95,0,0,17353,17354,7,3,0,0,17354,17355,7,6,0,0,17355, +17356,7,16,0,0,17356,17357,5,95,0,0,17357,17358,7,8,0,0,17358,17359,7,0, +0,0,17359,17360,7,5,0,0,17360,17361,7,8,0,0,17361,17362,7,0,0,0,17362,17363, +7,9,0,0,17363,17364,7,6,0,0,17364,2332,1,0,0,0,17365,17366,7,7,0,0,17366, +17367,7,2,0,0,17367,17368,7,3,0,0,17368,17369,7,6,0,0,17369,17370,7,11,0, +0,17370,17371,7,2,0,0,17371,17372,7,8,0,0,17372,17373,7,0,0,0,17373,17374, +7,4,0,0,17374,17375,7,6,0,0,17375,2334,1,0,0,0,17376,17377,7,7,0,0,17377, +17378,7,2,0,0,17378,17379,7,3,0,0,17379,17380,7,6,0,0,17380,17381,7,11,0, +0,17381,17382,7,18,0,0,17382,2336,1,0,0,0,17383,17384,7,7,0,0,17384,17385, +7,2,0,0,17385,17386,7,3,0,0,17386,17387,7,6,0,0,17387,17388,7,15,0,0,17388, +17389,7,0,0,0,17389,17390,7,10,0,0,17390,17391,7,3,0,0,17391,2338,1,0,0, +0,17392,17393,7,7,0,0,17393,17394,7,2,0,0,17394,17395,7,3,0,0,17395,17396, +7,6,0,0,17396,17397,7,15,0,0,17397,17398,7,11,0,0,17398,17399,7,0,0,0,17399, +17400,7,18,0,0,17400,2340,1,0,0,0,17401,17402,7,7,0,0,17402,17403,7,2,0, +0,17403,17404,7,3,0,0,17404,17405,7,6,0,0,17405,17406,7,5,0,0,17406,17407, +7,6,0,0,17407,17408,7,4,0,0,17408,17409,7,11,0,0,17409,17410,7,2,0,0,17410, +17411,7,17,0,0,17411,17412,7,5,0,0,17412,2342,1,0,0,0,17413,17414,7,7,0, +0,17414,17415,7,2,0,0,17415,17416,5,95,0,0,17416,17417,7,3,0,0,17417,17418, +7,6,0,0,17418,17419,7,5,0,0,17419,17420,7,12,0,0,17420,17421,7,11,0,0,17421, +17422,7,4,0,0,17422,17423,5,95,0,0,17423,17424,7,8,0,0,17424,17425,7,0,0, +0,17425,17426,7,8,0,0,17426,17427,7,19,0,0,17427,17428,7,6,0,0,17428,2344, +1,0,0,0,17429,17430,7,7,0,0,17430,17431,7,2,0,0,17431,17432,7,3,0,0,17432, +17433,7,6,0,0,17433,17434,7,13,0,0,17434,17435,7,6,0,0,17435,17436,7,3,0, +0,17436,17437,7,5,0,0,17437,17438,7,6,0,0,17438,2346,1,0,0,0,17439,17440, +7,7,0,0,17440,17441,7,2,0,0,17441,17442,5,95,0,0,17442,17443,7,3,0,0,17443, +17444,7,6,0,0,17444,17445,7,22,0,0,17445,17446,7,3,0,0,17446,17447,7,10, +0,0,17447,17448,7,4,0,0,17448,17449,7,6,0,0,17449,2348,1,0,0,0,17450,17451, +7,7,0,0,17451,17452,7,2,0,0,17452,17453,7,3,0,0,17453,17454,7,6,0,0,17454, +17455,7,22,0,0,17455,17456,7,3,0,0,17456,17457,7,10,0,0,17457,17458,7,4, +0,0,17458,17459,7,6,0,0,17459,2350,1,0,0,0,17460,17461,7,7,0,0,17461,17462, +7,2,0,0,17462,17463,7,3,0,0,17463,17464,7,14,0,0,17464,17465,7,0,0,0,17465, +17466,7,11,0,0,17466,2352,1,0,0,0,17467,17468,7,7,0,0,17468,17469,7,2,0, +0,17469,17470,5,95,0,0,17470,17471,7,3,0,0,17471,17472,7,2,0,0,17472,17473, +7,2,0,0,17473,17474,7,4,0,0,17474,17475,5,95,0,0,17475,17476,7,5,0,0,17476, +17477,7,22,0,0,17477,17478,5,95,0,0,17478,17479,7,16,0,0,17479,17480,7,2, +0,0,17480,17481,7,3,0,0,17481,17482,5,95,0,0,17482,17483,7,11,0,0,17483, +17484,7,2,0,0,17484,17485,7,8,0,0,17485,17486,7,0,0,0,17486,17487,7,11,0, +0,17487,2354,1,0,0,0,17488,17489,7,7,0,0,17489,17490,7,2,0,0,17490,17491, +7,3,0,0,17491,17492,7,2,0,0,17492,17493,7,22,0,0,17493,17494,7,9,0,0,17494, +17495,7,6,0,0,17495,17496,7,15,0,0,17496,17497,7,6,0,0,17497,17498,7,7,0, +0,17498,17499,7,9,0,0,17499,17500,7,6,0,0,17500,17501,7,7,0,0,17501,17502, +7,8,0,0,17502,17503,7,10,0,0,17503,17504,7,6,0,0,17504,17505,7,5,0,0,17505, +2356,1,0,0,0,17506,17507,7,7,0,0,17507,17508,7,2,0,0,17508,17509,7,5,0,0, +17509,17510,7,8,0,0,17510,17511,7,0,0,0,17511,17512,7,11,0,0,17512,17513, +7,6,0,0,17513,2358,1,0,0,0,17514,17515,7,7,0,0,17515,17516,7,2,0,0,17516, +17517,7,5,0,0,17517,17518,7,8,0,0,17518,17519,7,19,0,0,17519,17520,7,6,0, +0,17520,17521,7,14,0,0,17521,17522,7,0,0,0,17522,17523,7,8,0,0,17523,17524, +7,19,0,0,17524,17525,7,6,0,0,17525,17526,7,8,0,0,17526,17527,7,21,0,0,17527, +2360,1,0,0,0,17528,17529,7,7,0,0,17529,17530,7,2,0,0,17530,17531,7,5,0,0, +17531,17532,7,6,0,0,17532,17533,7,17,0,0,17533,17534,7,14,0,0,17534,17535, +7,6,0,0,17535,17536,7,7,0,0,17536,17537,7,4,0,0,17537,2362,1,0,0,0,17538, +17539,7,7,0,0,17539,17540,7,2,0,0,17540,17541,5,95,0,0,17541,17542,7,5,0, +0,17542,17543,7,6,0,0,17543,17544,7,14,0,0,17544,17545,7,10,0,0,17545,17546, +7,20,0,0,17546,17547,7,2,0,0,17547,17548,7,10,0,0,17548,17549,7,7,0,0,17549, +2364,1,0,0,0,17550,17551,7,7,0,0,17551,17552,7,2,0,0,17552,17553,5,95,0, +0,17553,17554,7,5,0,0,17554,17555,7,6,0,0,17555,17556,7,14,0,0,17556,17557, +7,10,0,0,17557,17558,5,95,0,0,17558,17559,7,4,0,0,17559,17560,7,2,0,0,17560, +17561,5,95,0,0,17561,17562,7,10,0,0,17562,17563,7,7,0,0,17563,17564,7,7, +0,0,17564,17565,7,6,0,0,17565,17566,7,3,0,0,17566,2366,1,0,0,0,17567,17568, +7,7,0,0,17568,17569,7,2,0,0,17569,17570,5,95,0,0,17570,17571,7,5,0,0,17571, +17572,7,6,0,0,17572,17573,7,4,0,0,17573,17574,5,95,0,0,17574,17575,7,4,0, +0,17575,17576,7,2,0,0,17576,17577,5,95,0,0,17577,17578,7,20,0,0,17578,17579, +7,2,0,0,17579,17580,7,10,0,0,17580,17581,7,7,0,0,17581,2368,1,0,0,0,17582, +17583,7,7,0,0,17583,17584,7,2,0,0,17584,17585,7,5,0,0,17585,17586,7,19,0, +0,17586,17587,7,0,0,0,17587,17588,7,3,0,0,17588,17589,7,9,0,0,17589,2370, +1,0,0,0,17590,17591,7,7,0,0,17591,17592,7,2,0,0,17592,17593,7,5,0,0,17593, +17594,7,2,0,0,17594,17595,7,3,0,0,17595,17596,7,4,0,0,17596,2372,1,0,0,0, +17597,17598,7,7,0,0,17598,17599,7,2,0,0,17599,17600,5,95,0,0,17600,17601, +7,5,0,0,17601,17602,7,24,0,0,17602,17603,7,11,0,0,17603,17604,5,95,0,0,17604, +17605,7,4,0,0,17605,17606,7,3,0,0,17606,17607,7,0,0,0,17607,17608,7,7,0, +0,17608,17609,7,5,0,0,17609,17610,7,11,0,0,17610,17611,7,0,0,0,17611,17612, +7,4,0,0,17612,17613,7,10,0,0,17613,17614,7,2,0,0,17614,17615,7,7,0,0,17615, +2374,1,0,0,0,17616,17617,7,7,0,0,17617,17618,7,2,0,0,17618,17619,5,95,0, +0,17619,17620,7,5,0,0,17620,17621,7,24,0,0,17621,17622,7,11,0,0,17622,17623, +5,95,0,0,17623,17624,7,4,0,0,17624,17625,7,12,0,0,17625,17626,7,7,0,0,17626, +17627,7,6,0,0,17627,2376,1,0,0,0,17628,17629,7,7,0,0,17629,17630,7,2,0,0, +17630,17631,5,95,0,0,17631,17632,7,5,0,0,17632,17633,7,4,0,0,17633,17634, +7,0,0,0,17634,17635,7,3,0,0,17635,17636,5,95,0,0,17636,17637,7,4,0,0,17637, +17638,7,3,0,0,17638,17639,7,0,0,0,17639,17640,7,7,0,0,17640,17641,7,5,0, +0,17641,17642,7,16,0,0,17642,17643,7,2,0,0,17643,17644,7,3,0,0,17644,17645, +7,14,0,0,17645,17646,7,0,0,0,17646,17647,7,4,0,0,17647,17648,7,10,0,0,17648, +17649,7,2,0,0,17649,17650,7,7,0,0,17650,2378,1,0,0,0,17651,17652,7,7,0,0, +17652,17653,7,2,0,0,17653,17654,5,95,0,0,17654,17655,7,5,0,0,17655,17656, +7,4,0,0,17656,17657,7,0,0,0,17657,17658,7,4,0,0,17658,17659,7,6,0,0,17659, +17660,7,14,0,0,17660,17661,7,6,0,0,17661,17662,7,7,0,0,17662,17663,7,4,0, +0,17663,17664,5,95,0,0,17664,17665,7,24,0,0,17665,17666,7,12,0,0,17666,17667, +7,6,0,0,17667,17668,7,12,0,0,17668,17669,7,10,0,0,17669,17670,7,7,0,0,17670, +17671,7,17,0,0,17671,2380,1,0,0,0,17672,17673,7,7,0,0,17673,17674,7,2,0, +0,17674,17675,5,95,0,0,17675,17676,7,5,0,0,17676,17677,7,4,0,0,17677,17678, +7,0,0,0,17678,17679,7,4,0,0,17679,17680,7,5,0,0,17680,17681,5,95,0,0,17681, +17682,7,17,0,0,17682,17683,7,5,0,0,17683,17684,7,6,0,0,17684,17685,7,4,0, +0,17685,17686,7,5,0,0,17686,2382,1,0,0,0,17687,17688,7,7,0,0,17688,17689, +7,2,0,0,17689,17690,7,5,0,0,17690,17691,7,4,0,0,17691,17692,7,3,0,0,17692, +17693,7,10,0,0,17693,17694,7,8,0,0,17694,17695,7,4,0,0,17695,2384,1,0,0, +0,17696,17697,7,7,0,0,17697,17698,7,2,0,0,17698,17699,5,95,0,0,17699,17700, +7,5,0,0,17700,17701,7,12,0,0,17701,17702,7,1,0,0,17702,17703,7,24,0,0,17703, +17704,7,12,0,0,17704,17705,7,6,0,0,17705,17706,7,3,0,0,17706,17707,7,18, +0,0,17707,17708,5,95,0,0,17708,17709,7,15,0,0,17709,17710,7,3,0,0,17710, +17711,7,12,0,0,17711,17712,7,7,0,0,17712,17713,7,10,0,0,17713,17714,7,7, +0,0,17714,17715,7,17,0,0,17715,2386,1,0,0,0,17716,17717,7,7,0,0,17717,17718, +7,2,0,0,17718,17719,5,95,0,0,17719,17720,7,5,0,0,17720,17721,7,12,0,0,17721, +17722,7,1,0,0,17722,17723,7,5,0,0,17723,17724,7,4,0,0,17724,17725,7,3,0, +0,17725,17726,7,1,0,0,17726,17727,5,95,0,0,17727,17728,7,15,0,0,17728,17729, +7,0,0,0,17729,17730,7,9,0,0,17730,2388,1,0,0,0,17731,17732,7,7,0,0,17732, +17733,7,2,0,0,17733,17734,5,95,0,0,17734,17735,7,5,0,0,17735,17736,7,22, +0,0,17736,17737,7,0,0,0,17737,17738,7,15,0,0,17738,17739,5,95,0,0,17739, +17740,7,20,0,0,17740,17741,7,2,0,0,17741,17742,7,10,0,0,17742,17743,7,7, +0,0,17743,17744,5,95,0,0,17744,17745,7,10,0,0,17745,17746,7,7,0,0,17746, +17747,7,15,0,0,17747,17748,7,12,0,0,17748,17749,7,4,0,0,17749,17750,7,5, +0,0,17750,2390,1,0,0,0,17751,17752,7,7,0,0,17752,17753,7,2,0,0,17753,17754, +7,5,0,0,17754,17755,7,22,0,0,17755,17756,7,10,0,0,17756,17757,7,4,0,0,17757, +17758,7,8,0,0,17758,17759,7,19,0,0,17759,2392,1,0,0,0,17760,17761,7,7,0, +0,17761,17762,7,2,0,0,17762,17763,5,95,0,0,17763,17764,7,4,0,0,17764,17765, +7,0,0,0,17765,17766,7,1,0,0,17766,17767,7,11,0,0,17767,17768,7,6,0,0,17768, +17769,5,95,0,0,17769,17770,7,11,0,0,17770,17771,7,2,0,0,17771,17772,7,2, +0,0,17772,17773,7,21,0,0,17773,17774,7,12,0,0,17774,17775,7,15,0,0,17775, +17776,5,95,0,0,17776,17777,7,1,0,0,17777,17778,7,18,0,0,17778,17779,5,95, +0,0,17779,17780,7,7,0,0,17780,17781,7,11,0,0,17781,2394,1,0,0,0,17782,17783, +7,7,0,0,17783,17784,7,2,0,0,17784,17785,5,95,0,0,17785,17786,7,4,0,0,17786, +17787,7,6,0,0,17787,17788,7,14,0,0,17788,17789,7,15,0,0,17789,17790,5,95, +0,0,17790,17791,7,4,0,0,17791,17792,7,0,0,0,17792,17793,7,1,0,0,17793,17794, +7,11,0,0,17794,17795,7,6,0,0,17795,2396,1,0,0,0,17796,17797,7,7,0,0,17797, +17798,7,2,0,0,17798,17799,7,4,0,0,17799,17800,7,19,0,0,17800,17801,7,10, +0,0,17801,17802,7,7,0,0,17802,17803,7,17,0,0,17803,2398,1,0,0,0,17804,17805, +7,7,0,0,17805,17806,7,2,0,0,17806,17807,7,4,0,0,17807,17808,7,10,0,0,17808, +17809,7,16,0,0,17809,17810,7,10,0,0,17810,17811,7,8,0,0,17811,17812,7,0, +0,0,17812,17813,7,4,0,0,17813,17814,7,10,0,0,17814,17815,7,2,0,0,17815,17816, +7,7,0,0,17816,2400,1,0,0,0,17817,17818,7,7,0,0,17818,17819,7,2,0,0,17819, +17820,7,4,0,0,17820,17821,7,3,0,0,17821,17822,7,10,0,0,17822,17823,7,14, +0,0,17823,2402,1,0,0,0,17824,17825,7,7,0,0,17825,17826,7,2,0,0,17826,17827, +7,4,0,0,17827,2404,1,0,0,0,17828,17829,7,7,0,0,17829,17830,7,2,0,0,17830, +17831,5,95,0,0,17831,17832,7,4,0,0,17832,17833,7,3,0,0,17833,17834,7,0,0, +0,17834,17835,7,7,0,0,17835,17836,7,5,0,0,17836,17837,7,16,0,0,17837,17838, +7,2,0,0,17838,17839,7,3,0,0,17839,17840,7,14,0,0,17840,17841,5,95,0,0,17841, +17842,7,9,0,0,17842,17843,7,10,0,0,17843,17844,7,5,0,0,17844,17845,7,4,0, +0,17845,17846,7,10,0,0,17846,17847,7,7,0,0,17847,17848,7,8,0,0,17848,17849, +7,4,0,0,17849,17850,5,95,0,0,17850,17851,7,0,0,0,17851,17852,7,17,0,0,17852, +17853,7,17,0,0,17853,2406,1,0,0,0,17854,17855,7,7,0,0,17855,17856,7,2,0, +0,17856,17857,5,95,0,0,17857,17858,7,12,0,0,17858,17859,7,7,0,0,17859,17860, +7,7,0,0,17860,17861,7,6,0,0,17861,17862,7,5,0,0,17862,17863,7,4,0,0,17863, +2408,1,0,0,0,17864,17865,7,7,0,0,17865,17866,7,2,0,0,17866,17867,5,95,0, +0,17867,17868,7,12,0,0,17868,17869,7,5,0,0,17869,17870,7,6,0,0,17870,17871, +5,95,0,0,17871,17872,7,8,0,0,17872,17873,7,12,0,0,17873,17874,7,1,0,0,17874, +17875,7,6,0,0,17875,2410,1,0,0,0,17876,17877,7,7,0,0,17877,17878,7,2,0,0, +17878,17879,5,95,0,0,17879,17880,7,12,0,0,17880,17881,7,5,0,0,17881,17882, +7,6,0,0,17882,17883,5,95,0,0,17883,17884,7,19,0,0,17884,17885,7,0,0,0,17885, +17886,7,5,0,0,17886,17887,7,19,0,0,17887,17888,5,95,0,0,17888,17889,7,0, +0,0,17889,17890,7,17,0,0,17890,17891,7,17,0,0,17891,17892,7,3,0,0,17892, +17893,7,6,0,0,17893,17894,7,17,0,0,17894,17895,7,0,0,0,17895,17896,7,4,0, +0,17896,17897,7,10,0,0,17897,17898,7,2,0,0,17898,17899,7,7,0,0,17899,2412, +1,0,0,0,17900,17901,7,7,0,0,17901,17902,7,2,0,0,17902,17903,5,95,0,0,17903, +17904,7,12,0,0,17904,17905,7,5,0,0,17905,17906,7,6,0,0,17906,17907,5,95, +0,0,17907,17908,7,19,0,0,17908,17909,7,0,0,0,17909,17910,7,5,0,0,17910,17911, +7,19,0,0,17911,17912,5,95,0,0,17912,17913,7,17,0,0,17913,17914,7,1,0,0,17914, +17915,7,18,0,0,17915,17916,5,95,0,0,17916,17917,7,16,0,0,17917,17918,7,2, +0,0,17918,17919,7,3,0,0,17919,17920,5,95,0,0,17920,17921,7,15,0,0,17921, +17922,7,12,0,0,17922,17923,7,5,0,0,17923,17924,7,19,0,0,17924,17925,7,9, +0,0,17925,17926,7,2,0,0,17926,17927,7,22,0,0,17927,17928,7,7,0,0,17928,2414, +1,0,0,0,17929,17930,7,7,0,0,17930,17931,7,2,0,0,17931,17932,5,95,0,0,17932, +17933,7,12,0,0,17933,17934,7,5,0,0,17934,17935,7,6,0,0,17935,17936,5,95, +0,0,17936,17937,7,19,0,0,17937,17938,7,0,0,0,17938,17939,7,5,0,0,17939,17940, +7,19,0,0,17940,2416,1,0,0,0,17941,17942,7,7,0,0,17942,17943,7,2,0,0,17943, +17944,5,95,0,0,17944,17945,7,12,0,0,17945,17946,7,5,0,0,17946,17947,7,6, +0,0,17947,17948,5,95,0,0,17948,17949,7,10,0,0,17949,17950,7,7,0,0,17950, +17951,7,13,0,0,17951,17952,7,10,0,0,17952,17953,7,5,0,0,17953,17954,7,10, +0,0,17954,17955,7,1,0,0,17955,17956,7,11,0,0,17956,17957,7,6,0,0,17957,17958, +5,95,0,0,17958,17959,7,10,0,0,17959,17960,7,7,0,0,17960,17961,7,9,0,0,17961, +17962,7,6,0,0,17962,17963,7,25,0,0,17963,17964,7,6,0,0,17964,17965,7,5,0, +0,17965,2418,1,0,0,0,17966,17967,7,7,0,0,17967,17968,7,2,0,0,17968,17969, +5,95,0,0,17969,17970,7,12,0,0,17970,17971,7,5,0,0,17971,17972,7,6,0,0,17972, +17973,5,95,0,0,17973,17974,7,14,0,0,17974,17975,7,6,0,0,17975,17976,7,3, +0,0,17976,17977,7,17,0,0,17977,17978,7,6,0,0,17978,2420,1,0,0,0,17979,17980, +7,7,0,0,17980,17981,7,2,0,0,17981,17982,5,95,0,0,17982,17983,7,12,0,0,17983, +17984,7,5,0,0,17984,17985,7,6,0,0,17985,17986,5,95,0,0,17986,17987,7,7,0, +0,17987,17988,7,11,0,0,17988,2422,1,0,0,0,17989,17990,7,7,0,0,17990,17991, +7,2,0,0,17991,17992,5,95,0,0,17992,17993,7,12,0,0,17993,17994,7,5,0,0,17994, +17995,7,6,0,0,17995,17996,5,95,0,0,17996,17997,7,13,0,0,17997,17998,7,6, +0,0,17998,17999,7,8,0,0,17999,18000,7,4,0,0,18000,18001,7,2,0,0,18001,18002, +7,3,0,0,18002,18003,5,95,0,0,18003,18004,7,0,0,0,18004,18005,7,17,0,0,18005, +18006,7,17,0,0,18006,18007,7,3,0,0,18007,18008,7,6,0,0,18008,18009,7,17, +0,0,18009,18010,7,0,0,0,18010,18011,7,4,0,0,18011,18012,7,10,0,0,18012,18013, +7,2,0,0,18013,18014,7,7,0,0,18014,2424,1,0,0,0,18015,18016,7,7,0,0,18016, +18017,7,2,0,0,18017,18018,7,13,0,0,18018,18019,7,0,0,0,18019,18020,7,11, +0,0,18020,18021,7,10,0,0,18021,18022,7,9,0,0,18022,18023,7,0,0,0,18023,18024, +7,4,0,0,18024,18025,7,6,0,0,18025,2426,1,0,0,0,18026,18027,7,7,0,0,18027, +18028,7,2,0,0,18028,18029,5,95,0,0,18029,18030,7,13,0,0,18030,18031,7,6, +0,0,18031,18032,7,8,0,0,18032,18033,7,4,0,0,18033,18034,7,2,0,0,18034,18035, +7,3,0,0,18035,18036,5,95,0,0,18036,18037,7,4,0,0,18037,18038,7,3,0,0,18038, +18039,7,0,0,0,18039,18040,7,7,0,0,18040,18041,7,5,0,0,18041,18042,7,16,0, +0,18042,18043,7,2,0,0,18043,18044,7,3,0,0,18044,18045,7,14,0,0,18045,18046, +5,95,0,0,18046,18047,7,9,0,0,18047,18048,7,10,0,0,18048,18049,7,14,0,0,18049, +18050,7,5,0,0,18050,2428,1,0,0,0,18051,18052,7,7,0,0,18052,18053,7,2,0,0, +18053,18054,5,95,0,0,18054,18055,7,13,0,0,18055,18056,7,6,0,0,18056,18057, +7,8,0,0,18057,18058,7,4,0,0,18058,18059,7,2,0,0,18059,18060,7,3,0,0,18060, +18061,5,95,0,0,18061,18062,7,4,0,0,18062,18063,7,3,0,0,18063,18064,7,0,0, +0,18064,18065,7,7,0,0,18065,18066,7,5,0,0,18066,18067,7,16,0,0,18067,18068, +7,2,0,0,18068,18069,7,3,0,0,18069,18070,7,14,0,0,18070,18071,5,95,0,0,18071, +18072,7,16,0,0,18072,18073,7,0,0,0,18073,18074,7,8,0,0,18074,18075,7,4,0, +0,18075,2430,1,0,0,0,18076,18077,7,7,0,0,18077,18078,7,2,0,0,18078,18079, +5,95,0,0,18079,18080,7,13,0,0,18080,18081,7,6,0,0,18081,18082,7,8,0,0,18082, +18083,7,4,0,0,18083,18084,7,2,0,0,18084,18085,7,3,0,0,18085,18086,5,95,0, +0,18086,18087,7,4,0,0,18087,18088,7,3,0,0,18088,18089,7,0,0,0,18089,18090, +7,7,0,0,18090,18091,7,5,0,0,18091,18092,7,16,0,0,18092,18093,7,2,0,0,18093, +18094,7,3,0,0,18094,18095,7,14,0,0,18095,2432,1,0,0,0,18096,18097,7,7,0, +0,18097,18098,7,2,0,0,18098,18099,7,22,0,0,18099,18100,7,0,0,0,18100,18101, +7,10,0,0,18101,18102,7,4,0,0,18102,2434,1,0,0,0,18103,18104,7,7,0,0,18104, +18105,7,2,0,0,18105,18106,5,95,0,0,18106,18107,7,25,0,0,18107,18108,7,9, +0,0,18108,18109,7,1,0,0,18109,18110,5,95,0,0,18110,18111,7,16,0,0,18111, +18112,7,0,0,0,18112,18113,7,5,0,0,18113,18114,7,4,0,0,18114,18115,7,15,0, +0,18115,18116,7,0,0,0,18116,18117,7,4,0,0,18117,18118,7,19,0,0,18118,18119, +5,95,0,0,18119,18120,7,10,0,0,18120,18121,7,7,0,0,18121,18122,7,5,0,0,18122, +18123,7,6,0,0,18123,18124,7,3,0,0,18124,18125,7,4,0,0,18125,2436,1,0,0,0, +18126,18127,7,7,0,0,18127,18128,7,2,0,0,18128,18129,5,95,0,0,18129,18130, +7,25,0,0,18130,18131,7,14,0,0,18131,18132,7,11,0,0,18132,18133,5,95,0,0, +18133,18134,7,9,0,0,18134,18135,7,14,0,0,18135,18136,7,11,0,0,18136,18137, +5,95,0,0,18137,18138,7,3,0,0,18138,18139,7,6,0,0,18139,18140,7,22,0,0,18140, +18141,7,3,0,0,18141,18142,7,10,0,0,18142,18143,7,4,0,0,18143,18144,7,6,0, +0,18144,2438,1,0,0,0,18145,18146,7,7,0,0,18146,18147,7,2,0,0,18147,18148, +5,95,0,0,18148,18149,7,25,0,0,18149,18150,7,14,0,0,18150,18151,7,11,0,0, +18151,18152,7,10,0,0,18152,18153,7,7,0,0,18153,18154,7,9,0,0,18154,18155, +7,6,0,0,18155,18156,7,25,0,0,18156,18157,5,95,0,0,18157,18158,7,3,0,0,18158, +18159,7,6,0,0,18159,18160,7,22,0,0,18160,18161,7,3,0,0,18161,18162,7,10, +0,0,18162,18163,7,4,0,0,18163,18164,7,6,0,0,18164,18165,5,95,0,0,18165,18166, +7,10,0,0,18166,18167,7,7,0,0,18167,18168,5,95,0,0,18168,18169,7,5,0,0,18169, +18170,7,6,0,0,18170,18171,7,11,0,0,18171,18172,7,6,0,0,18172,18173,7,8,0, +0,18173,18174,7,4,0,0,18174,2440,1,0,0,0,18175,18176,7,7,0,0,18176,18177, +7,2,0,0,18177,18178,5,95,0,0,18178,18179,7,25,0,0,18179,18180,7,14,0,0,18180, +18181,7,11,0,0,18181,18182,7,10,0,0,18182,18183,7,7,0,0,18183,18184,7,9, +0,0,18184,18185,7,6,0,0,18185,18186,7,25,0,0,18186,18187,5,95,0,0,18187, +18188,7,3,0,0,18188,18189,7,6,0,0,18189,18190,7,22,0,0,18190,18191,7,3,0, +0,18191,18192,7,10,0,0,18192,18193,7,4,0,0,18193,18194,7,6,0,0,18194,2442, +1,0,0,0,18195,18196,7,7,0,0,18196,18197,7,2,0,0,18197,18198,5,95,0,0,18198, +18199,7,25,0,0,18199,18200,7,14,0,0,18200,18201,7,11,0,0,18201,18202,5,95, +0,0,18202,18203,7,24,0,0,18203,18204,7,12,0,0,18204,18205,7,6,0,0,18205, +18206,7,3,0,0,18206,18207,7,18,0,0,18207,18208,5,95,0,0,18208,18209,7,3, +0,0,18209,18210,7,6,0,0,18210,18211,7,22,0,0,18211,18212,7,3,0,0,18212,18213, +7,10,0,0,18213,18214,7,4,0,0,18214,18215,7,6,0,0,18215,2444,1,0,0,0,18216, +18217,7,7,0,0,18217,18218,7,2,0,0,18218,18219,5,95,0,0,18219,18220,7,23, +0,0,18220,18221,7,2,0,0,18221,18222,7,7,0,0,18222,18223,7,6,0,0,18223,18224, +7,14,0,0,18224,18225,7,0,0,0,18225,18226,7,15,0,0,18226,2446,1,0,0,0,18227, +18228,7,7,0,0,18228,18229,7,4,0,0,18229,18230,7,19,0,0,18230,18231,5,95, +0,0,18231,18232,7,13,0,0,18232,18233,7,0,0,0,18233,18234,7,11,0,0,18234, +18235,7,12,0,0,18235,18236,7,6,0,0,18236,2448,1,0,0,0,18237,18238,7,7,0, +0,18238,18239,7,12,0,0,18239,18240,7,11,0,0,18240,18241,7,11,0,0,18241,18242, +7,10,0,0,18242,18243,7,16,0,0,18243,2450,1,0,0,0,18244,18245,7,7,0,0,18245, +18246,7,12,0,0,18246,18247,7,11,0,0,18247,18248,7,11,0,0,18248,2452,1,0, +0,0,18249,18250,7,7,0,0,18250,18251,7,12,0,0,18251,18252,7,11,0,0,18252, +18253,7,11,0,0,18253,18254,7,5,0,0,18254,2454,1,0,0,0,18255,18256,7,7,0, +0,18256,18257,7,12,0,0,18257,18258,7,14,0,0,18258,18259,7,1,0,0,18259,18260, +7,6,0,0,18260,18261,7,3,0,0,18261,2456,1,0,0,0,18262,18263,7,7,0,0,18263, +18264,7,12,0,0,18264,18265,7,14,0,0,18265,18266,7,6,0,0,18266,18267,7,3, +0,0,18267,18268,7,10,0,0,18268,18269,7,8,0,0,18269,2458,1,0,0,0,18270,18271, +7,7,0,0,18271,18272,7,12,0,0,18272,18273,7,14,0,0,18273,18274,5,95,0,0,18274, +18275,7,10,0,0,18275,18276,7,7,0,0,18276,18277,7,9,0,0,18277,18278,7,6,0, +0,18278,18279,7,25,0,0,18279,18280,5,95,0,0,18280,18281,7,21,0,0,18281,18282, +7,6,0,0,18282,18283,7,18,0,0,18283,18284,7,5,0,0,18284,2460,1,0,0,0,18285, +18286,7,7,0,0,18286,18287,7,12,0,0,18287,18288,7,14,0,0,18288,18289,7,4, +0,0,18289,18290,7,2,0,0,18290,18291,7,9,0,0,18291,18292,7,5,0,0,18292,18293, +7,10,0,0,18293,18294,7,7,0,0,18294,18295,7,4,0,0,18295,18296,7,6,0,0,18296, +18297,7,3,0,0,18297,18298,7,13,0,0,18298,18299,7,0,0,0,18299,18300,7,11, +0,0,18300,2462,1,0,0,0,18301,18302,7,7,0,0,18302,18303,7,12,0,0,18303,18304, +7,14,0,0,18304,18305,7,4,0,0,18305,18306,7,2,0,0,18306,18307,7,18,0,0,18307, +18308,7,14,0,0,18308,18309,7,10,0,0,18309,18310,7,7,0,0,18310,18311,7,4, +0,0,18311,18312,7,6,0,0,18312,18313,7,3,0,0,18313,18314,7,13,0,0,18314,18315, +7,0,0,0,18315,18316,7,11,0,0,18316,2464,1,0,0,0,18317,18318,7,7,0,0,18318, +18319,7,13,0,0,18319,18320,7,0,0,0,18320,18321,7,3,0,0,18321,18322,7,8,0, +0,18322,18323,7,19,0,0,18323,18324,7,0,0,0,18324,18325,7,3,0,0,18325,18326, +5,50,0,0,18326,2466,1,0,0,0,18327,18328,7,7,0,0,18328,18329,7,13,0,0,18329, +18330,7,11,0,0,18330,18331,5,50,0,0,18331,2468,1,0,0,0,18332,18333,7,2,0, +0,18333,18334,7,1,0,0,18334,18335,7,20,0,0,18335,18336,7,6,0,0,18336,18337, +7,8,0,0,18337,18338,7,4,0,0,18338,18339,5,50,0,0,18339,18340,7,25,0,0,18340, +18341,7,14,0,0,18341,18342,7,11,0,0,18342,2470,1,0,0,0,18343,18344,7,2,0, +0,18344,18345,7,1,0,0,18345,18346,7,20,0,0,18346,18347,7,6,0,0,18347,18348, +7,8,0,0,18348,18349,7,4,0,0,18349,2472,1,0,0,0,18350,18351,7,2,0,0,18351, +18352,7,1,0,0,18352,18353,7,20,0,0,18353,18354,5,95,0,0,18354,18355,7,10, +0,0,18355,18356,7,9,0,0,18356,2474,1,0,0,0,18357,18358,7,2,0,0,18358,18359, +7,1,0,0,18359,18360,7,20,0,0,18360,18361,7,7,0,0,18361,18362,7,2,0,0,18362, +2476,1,0,0,0,18363,18364,7,2,0,0,18364,18365,7,1,0,0,18365,18366,7,20,0, +0,18366,18367,7,7,0,0,18367,18368,7,2,0,0,18368,18369,5,95,0,0,18369,18370, +7,3,0,0,18370,18371,7,6,0,0,18371,18372,7,12,0,0,18372,18373,7,5,0,0,18373, +18374,7,6,0,0,18374,2478,1,0,0,0,18375,18376,7,2,0,0,18376,18377,7,8,0,0, +18377,18378,7,8,0,0,18378,18379,7,12,0,0,18379,18380,7,3,0,0,18380,18381, +7,6,0,0,18381,18382,7,7,0,0,18382,18383,7,8,0,0,18383,18384,7,6,0,0,18384, +18385,7,5,0,0,18385,2480,1,0,0,0,18386,18387,7,2,0,0,18387,18388,7,16,0, +0,18388,18389,7,16,0,0,18389,18390,7,11,0,0,18390,18391,7,10,0,0,18391,18392, +7,7,0,0,18392,18393,7,6,0,0,18393,2482,1,0,0,0,18394,18395,7,2,0,0,18395, +18396,7,16,0,0,18396,18397,7,16,0,0,18397,2484,1,0,0,0,18398,18399,7,2,0, +0,18399,18400,7,16,0,0,18400,18401,7,16,0,0,18401,18402,7,5,0,0,18402,18403, +7,6,0,0,18403,18404,7,4,0,0,18404,2486,1,0,0,0,18405,18406,7,2,0,0,18406, +18407,7,16,0,0,18407,2488,1,0,0,0,18408,18409,7,2,0,0,18409,18410,7,10,0, +0,18410,18411,7,9,0,0,18411,18412,7,10,0,0,18412,18413,7,7,0,0,18413,18414, +7,9,0,0,18414,18415,7,6,0,0,18415,18416,7,25,0,0,18416,2490,1,0,0,0,18417, +18418,7,2,0,0,18418,18419,7,10,0,0,18419,18420,7,9,0,0,18420,2492,1,0,0, +0,18421,18422,7,2,0,0,18422,18423,7,11,0,0,18423,18424,7,0,0,0,18424,18425, +7,15,0,0,18425,2494,1,0,0,0,18426,18427,7,2,0,0,18427,18428,7,11,0,0,18428, +18429,7,9,0,0,18429,2496,1,0,0,0,18430,18431,7,2,0,0,18431,18432,7,11,0, +0,18432,18433,7,9,0,0,18433,18434,5,95,0,0,18434,18435,7,15,0,0,18435,18436, +7,12,0,0,18436,18437,7,5,0,0,18437,18438,7,19,0,0,18438,18439,5,95,0,0,18439, +18440,7,15,0,0,18440,18441,7,3,0,0,18441,18442,7,6,0,0,18442,18443,7,9,0, +0,18443,2498,1,0,0,0,18444,18445,7,2,0,0,18445,18446,7,11,0,0,18446,18447, +7,5,0,0,18447,2500,1,0,0,0,18448,18449,7,2,0,0,18449,18450,7,11,0,0,18450, +18451,7,4,0,0,18451,18452,7,15,0,0,18452,2502,1,0,0,0,18453,18454,7,2,0, +0,18454,18455,7,14,0,0,18455,18456,7,10,0,0,18456,18457,7,4,0,0,18457,2504, +1,0,0,0,18458,18459,7,2,0,0,18459,18460,7,7,0,0,18460,18461,7,6,0,0,18461, +2506,1,0,0,0,18462,18463,7,2,0,0,18463,18464,7,7,0,0,18464,18465,7,11,0, +0,18465,18466,7,10,0,0,18466,18467,7,7,0,0,18467,18468,7,6,0,0,18468,2508, +1,0,0,0,18469,18470,7,2,0,0,18470,18471,7,7,0,0,18471,18472,7,11,0,0,18472, +18473,7,10,0,0,18473,18474,7,7,0,0,18474,18475,7,6,0,0,18475,18476,7,11, +0,0,18476,18477,7,2,0,0,18477,18478,7,17,0,0,18478,2510,1,0,0,0,18479,18480, +7,2,0,0,18480,18481,7,7,0,0,18481,18482,7,11,0,0,18482,18483,7,18,0,0,18483, +2512,1,0,0,0,18484,18485,7,2,0,0,18485,18486,7,7,0,0,18486,2514,1,0,0,0, +18487,18488,7,2,0,0,18488,18489,7,15,0,0,18489,18490,7,0,0,0,18490,18491, +7,24,0,0,18491,18492,7,12,0,0,18492,18493,7,6,0,0,18493,2516,1,0,0,0,18494, +18495,7,2,0,0,18495,18496,7,15,0,0,18496,18497,7,0,0,0,18497,18498,7,24, +0,0,18498,18499,7,12,0,0,18499,18500,7,6,0,0,18500,18501,5,95,0,0,18501, +18502,7,4,0,0,18502,18503,7,3,0,0,18503,18504,7,0,0,0,18504,18505,7,7,0, +0,18505,18506,7,5,0,0,18506,18507,7,16,0,0,18507,18508,7,2,0,0,18508,18509, +7,3,0,0,18509,18510,7,14,0,0,18510,2518,1,0,0,0,18511,18512,7,2,0,0,18512, +18513,7,15,0,0,18513,18514,7,0,0,0,18514,18515,7,24,0,0,18515,18516,7,12, +0,0,18516,18517,7,6,0,0,18517,18518,5,95,0,0,18518,18519,7,25,0,0,18519, +18520,7,8,0,0,18520,18521,7,0,0,0,18521,18522,7,7,0,0,18522,18523,7,2,0, +0,18523,18524,7,7,0,0,18524,18525,7,10,0,0,18525,18526,7,8,0,0,18526,18527, +7,0,0,0,18527,18528,7,11,0,0,18528,2520,1,0,0,0,18529,18530,7,2,0,0,18530, +18531,7,15,0,0,18531,18532,7,8,0,0,18532,18533,7,2,0,0,18533,18534,7,9,0, +0,18534,18535,7,6,0,0,18535,2522,1,0,0,0,18536,18537,7,2,0,0,18537,18538, +7,15,0,0,18538,18539,7,6,0,0,18539,18540,7,7,0,0,18540,2524,1,0,0,0,18541, +18542,7,2,0,0,18542,18543,7,15,0,0,18543,18544,7,6,0,0,18544,18545,7,3,0, +0,18545,18546,7,0,0,0,18546,18547,7,4,0,0,18547,18548,7,10,0,0,18548,18549, +7,2,0,0,18549,18550,7,7,0,0,18550,18551,7,5,0,0,18551,2526,1,0,0,0,18552, +18553,7,2,0,0,18553,18554,7,15,0,0,18554,18555,7,6,0,0,18555,18556,7,3,0, +0,18556,18557,7,0,0,0,18557,18558,7,4,0,0,18558,18559,7,2,0,0,18559,18560, +7,3,0,0,18560,2528,1,0,0,0,18561,18562,7,2,0,0,18562,18563,7,15,0,0,18563, +18564,7,4,0,0,18564,18565,5,95,0,0,18565,18566,7,6,0,0,18566,18567,7,5,0, +0,18567,18568,7,4,0,0,18568,18569,7,10,0,0,18569,18570,7,14,0,0,18570,18571, +7,0,0,0,18571,18572,7,4,0,0,18572,18573,7,6,0,0,18573,2530,1,0,0,0,18574, +18575,7,2,0,0,18575,18576,7,15,0,0,18576,18577,7,4,0,0,18577,18578,7,10, +0,0,18578,18579,7,14,0,0,18579,18580,7,0,0,0,18580,18581,7,11,0,0,18581, +2532,1,0,0,0,18582,18583,7,2,0,0,18583,18584,7,15,0,0,18584,18585,7,4,0, +0,18585,18586,7,10,0,0,18586,18587,7,14,0,0,18587,18588,7,10,0,0,18588,18589, +7,23,0,0,18589,18590,7,6,0,0,18590,2534,1,0,0,0,18591,18592,7,2,0,0,18592, +18593,7,15,0,0,18593,18594,7,4,0,0,18594,18595,7,10,0,0,18595,18596,7,14, +0,0,18596,18597,7,10,0,0,18597,18598,7,23,0,0,18598,18599,7,6,0,0,18599, +18600,7,3,0,0,18600,18601,5,95,0,0,18601,18602,7,16,0,0,18602,18603,7,6, +0,0,18603,18604,7,0,0,0,18604,18605,7,4,0,0,18605,18606,7,12,0,0,18606,18607, +7,3,0,0,18607,18608,7,6,0,0,18608,18609,7,5,0,0,18609,18610,5,95,0,0,18610, +18611,7,6,0,0,18611,18612,7,7,0,0,18612,18613,7,0,0,0,18613,18614,7,1,0, +0,18614,18615,7,11,0,0,18615,18616,7,6,0,0,18616,2536,1,0,0,0,18617,18618, +7,2,0,0,18618,18619,7,15,0,0,18619,18620,7,4,0,0,18620,18621,7,10,0,0,18621, +18622,7,14,0,0,18622,18623,7,10,0,0,18623,18624,7,23,0,0,18624,18625,7,6, +0,0,18625,18626,7,3,0,0,18626,18627,5,95,0,0,18627,18628,7,17,0,0,18628, +18629,7,2,0,0,18629,18630,7,0,0,0,18630,18631,7,11,0,0,18631,2538,1,0,0, +0,18632,18633,7,2,0,0,18633,18634,7,15,0,0,18634,18635,7,4,0,0,18635,18636, +7,10,0,0,18636,18637,7,2,0,0,18637,18638,7,7,0,0,18638,2540,1,0,0,0,18639, +18640,7,2,0,0,18640,18641,7,15,0,0,18641,18642,7,4,0,0,18642,18643,7,10, +0,0,18643,18644,7,2,0,0,18644,18645,7,7,0,0,18645,18646,7,0,0,0,18646,18647, +7,11,0,0,18647,18648,7,11,0,0,18648,18649,7,18,0,0,18649,2542,1,0,0,0,18650, +18651,7,2,0,0,18651,18652,7,15,0,0,18652,18653,7,4,0,0,18653,18654,5,95, +0,0,18654,18655,7,15,0,0,18655,18656,7,0,0,0,18656,18657,7,3,0,0,18657,18658, +7,0,0,0,18658,18659,7,14,0,0,18659,2544,1,0,0,0,18660,18661,7,2,0,0,18661, +18662,7,3,0,0,18662,18663,7,0,0,0,18663,18664,5,95,0,0,18664,18665,7,1,0, +0,18665,18666,7,3,0,0,18666,18667,7,0,0,0,18667,18668,7,7,0,0,18668,18669, +7,8,0,0,18669,18670,7,19,0,0,18670,2546,1,0,0,0,18671,18672,7,2,0,0,18672, +18673,7,3,0,0,18673,18674,7,0,0,0,18674,18675,5,95,0,0,18675,18676,7,8,0, +0,18676,18677,7,19,0,0,18677,18678,7,6,0,0,18678,18679,7,8,0,0,18679,18680, +7,21,0,0,18680,18681,5,95,0,0,18681,18682,7,0,0,0,18682,18683,7,8,0,0,18683, +18684,7,11,0,0,18684,2548,1,0,0,0,18685,18686,7,2,0,0,18686,18687,7,3,0, +0,18687,18688,7,0,0,0,18688,18689,5,95,0,0,18689,18690,7,8,0,0,18690,18691, +7,19,0,0,18691,18692,7,6,0,0,18692,18693,7,8,0,0,18693,18694,7,21,0,0,18694, +18695,5,95,0,0,18695,18696,7,15,0,0,18696,18697,7,3,0,0,18697,18698,7,10, +0,0,18698,18699,7,13,0,0,18699,18700,7,10,0,0,18700,18701,7,11,0,0,18701, +18702,7,6,0,0,18702,18703,7,17,0,0,18703,18704,7,6,0,0,18704,2550,1,0,0, +0,18705,18706,7,2,0,0,18706,18707,7,3,0,0,18707,18708,7,0,0,0,18708,18709, +5,95,0,0,18709,18710,7,8,0,0,18710,18711,7,11,0,0,18711,18712,7,12,0,0,18712, +18713,7,5,0,0,18713,18714,7,4,0,0,18714,18715,7,6,0,0,18715,18716,7,3,0, +0,18716,18717,7,10,0,0,18717,18718,7,7,0,0,18718,18719,7,17,0,0,18719,2552, +1,0,0,0,18720,18721,7,2,0,0,18721,18722,7,3,0,0,18722,18723,7,0,0,0,18723, +18724,7,9,0,0,18724,18725,7,0,0,0,18725,18726,7,4,0,0,18726,18727,7,0,0, +0,18727,2554,1,0,0,0,18728,18729,7,2,0,0,18729,18730,7,3,0,0,18730,18731, +7,8,0,0,18731,2556,1,0,0,0,18732,18733,7,2,0,0,18733,18734,7,3,0,0,18734, +18735,7,0,0,0,18735,18736,7,8,0,0,18736,18737,7,11,0,0,18737,18738,7,6,0, +0,18738,18739,5,95,0,0,18739,18740,7,9,0,0,18740,18741,7,0,0,0,18741,18742, +7,4,0,0,18742,18743,7,6,0,0,18743,2558,1,0,0,0,18744,18745,7,2,0,0,18745, +18746,7,3,0,0,18746,18747,7,0,0,0,18747,18748,7,8,0,0,18748,18749,7,11,0, +0,18749,18750,7,6,0,0,18750,18751,5,95,0,0,18751,18752,7,7,0,0,18752,18753, +7,12,0,0,18753,18754,7,14,0,0,18754,18755,7,1,0,0,18755,18756,7,6,0,0,18756, +18757,7,3,0,0,18757,2560,1,0,0,0,18758,18759,7,2,0,0,18759,18760,7,3,0,0, +18760,18761,7,0,0,0,18761,18762,7,9,0,0,18762,18763,7,6,0,0,18763,18764, +7,1,0,0,18764,18765,7,12,0,0,18765,18766,7,17,0,0,18766,2562,1,0,0,0,18767, +18768,7,2,0,0,18768,18769,7,3,0,0,18769,18770,7,0,0,0,18770,18771,5,95,0, +0,18771,18772,7,9,0,0,18772,18773,7,5,0,0,18773,18774,7,4,0,0,18774,18775, +5,95,0,0,18775,18776,7,0,0,0,18776,18777,7,16,0,0,18777,18778,7,16,0,0,18778, +18779,7,6,0,0,18779,18780,7,8,0,0,18780,18781,7,4,0,0,18781,18782,7,6,0, +0,18782,18783,7,9,0,0,18783,2564,1,0,0,0,18784,18785,7,2,0,0,18785,18786, +7,3,0,0,18786,18787,7,0,0,0,18787,18788,5,95,0,0,18788,18789,7,9,0,0,18789, +18790,7,5,0,0,18790,18791,7,4,0,0,18791,18792,5,95,0,0,18792,18793,7,8,0, +0,18793,18794,7,2,0,0,18794,18795,7,7,0,0,18795,18796,7,13,0,0,18796,18797, +7,6,0,0,18797,18798,7,3,0,0,18798,18799,7,4,0,0,18799,2566,1,0,0,0,18800, +18801,7,2,0,0,18801,18802,7,3,0,0,18802,18803,7,0,0,0,18803,18804,5,95,0, +0,18804,18805,7,9,0,0,18805,18806,7,5,0,0,18806,18807,7,4,0,0,18807,18808, +5,95,0,0,18808,18809,7,6,0,0,18809,18810,7,3,0,0,18810,18811,7,3,0,0,18811, +18812,7,2,0,0,18812,18813,7,3,0,0,18813,2568,1,0,0,0,18814,18815,7,2,0,0, +18815,18816,7,3,0,0,18816,18817,7,0,0,0,18817,18818,5,95,0,0,18818,18819, +7,17,0,0,18819,18820,7,6,0,0,18820,18821,7,4,0,0,18821,18822,5,95,0,0,18822, +18823,7,0,0,0,18823,18824,7,8,0,0,18824,18825,7,11,0,0,18825,18826,7,10, +0,0,18826,18827,7,9,0,0,18827,18828,7,5,0,0,18828,2570,1,0,0,0,18829,18830, +7,2,0,0,18830,18831,7,3,0,0,18831,18832,7,0,0,0,18832,18833,5,95,0,0,18833, +18834,7,17,0,0,18834,18835,7,6,0,0,18835,18836,7,4,0,0,18836,18837,5,95, +0,0,18837,18838,7,15,0,0,18838,18839,7,3,0,0,18839,18840,7,10,0,0,18840, +18841,7,13,0,0,18841,18842,7,10,0,0,18842,18843,7,11,0,0,18843,18844,7,6, +0,0,18844,18845,7,17,0,0,18845,18846,7,6,0,0,18846,18847,7,5,0,0,18847,2572, +1,0,0,0,18848,18849,7,2,0,0,18849,18850,7,3,0,0,18850,18851,7,0,0,0,18851, +18852,5,95,0,0,18852,18853,7,19,0,0,18853,18854,7,0,0,0,18854,18855,7,5, +0,0,18855,18856,7,19,0,0,18856,2574,1,0,0,0,18857,18858,7,2,0,0,18858,18859, +7,3,0,0,18859,18860,7,0,0,0,18860,18861,5,95,0,0,18861,18862,7,10,0,0,18862, +18863,7,7,0,0,18863,18864,7,13,0,0,18864,18865,7,2,0,0,18865,18866,7,21, +0,0,18866,18867,7,10,0,0,18867,18868,7,7,0,0,18868,18869,7,17,0,0,18869, +18870,5,95,0,0,18870,18871,7,12,0,0,18871,18872,7,5,0,0,18872,18873,7,6, +0,0,18873,18874,7,3,0,0,18874,18875,7,10,0,0,18875,18876,7,9,0,0,18876,2576, +1,0,0,0,18877,18878,7,2,0,0,18878,18879,7,3,0,0,18879,18880,7,0,0,0,18880, +18881,5,95,0,0,18881,18882,7,10,0,0,18882,18883,7,7,0,0,18883,18884,7,13, +0,0,18884,18885,7,2,0,0,18885,18886,7,21,0,0,18886,18887,7,10,0,0,18887, +18888,7,7,0,0,18888,18889,7,17,0,0,18889,18890,5,95,0,0,18890,18891,7,12, +0,0,18891,18892,7,5,0,0,18892,18893,7,6,0,0,18893,18894,7,3,0,0,18894,2578, +1,0,0,0,18895,18896,7,2,0,0,18896,18897,7,3,0,0,18897,18898,7,0,0,0,18898, +18899,5,95,0,0,18899,18900,7,10,0,0,18900,18901,7,7,0,0,18901,18902,7,13, +0,0,18902,18903,7,2,0,0,18903,18904,7,21,0,0,18904,18905,7,10,0,0,18905, +18906,7,7,0,0,18906,18907,7,17,0,0,18907,18908,5,95,0,0,18908,18909,7,25, +0,0,18909,18910,7,5,0,0,18910,18911,5,95,0,0,18911,18912,7,12,0,0,18912, +18913,7,5,0,0,18913,18914,7,6,0,0,18914,18915,7,3,0,0,18915,18916,5,95,0, +0,18916,18917,7,17,0,0,18917,18918,7,12,0,0,18918,18919,7,10,0,0,18919,18920, +7,9,0,0,18920,2580,1,0,0,0,18921,18922,7,2,0,0,18922,18923,7,3,0,0,18923, +18924,7,0,0,0,18924,18925,5,95,0,0,18925,18926,7,10,0,0,18926,18927,7,7, +0,0,18927,18928,7,13,0,0,18928,18929,7,2,0,0,18929,18930,7,21,0,0,18930, +18931,7,10,0,0,18931,18932,7,7,0,0,18932,18933,7,17,0,0,18933,18934,5,95, +0,0,18934,18935,7,25,0,0,18935,18936,7,5,0,0,18936,18937,5,95,0,0,18937, +18938,7,12,0,0,18938,18939,7,5,0,0,18939,18940,7,6,0,0,18940,18941,7,3,0, +0,18941,2582,1,0,0,0,18942,18943,7,2,0,0,18943,18944,7,3,0,0,18944,18945, +7,0,0,0,18945,18946,5,95,0,0,18946,18947,7,3,0,0,18947,18948,7,0,0,0,18948, +18949,7,22,0,0,18949,18950,7,8,0,0,18950,18951,7,2,0,0,18951,18952,7,14, +0,0,18952,18953,7,15,0,0,18953,18954,7,0,0,0,18954,18955,7,3,0,0,18955,18956, +7,6,0,0,18956,2584,1,0,0,0,18957,18958,7,2,0,0,18958,18959,7,3,0,0,18959, +18960,7,0,0,0,18960,18961,5,95,0,0,18961,18962,7,3,0,0,18962,18963,7,0,0, +0,18963,18964,7,22,0,0,18964,18965,7,8,0,0,18965,18966,7,2,0,0,18966,18967, +7,7,0,0,18967,18968,7,8,0,0,18968,18969,7,0,0,0,18969,18970,7,4,0,0,18970, +2586,1,0,0,0,18971,18972,7,2,0,0,18972,18973,7,3,0,0,18973,18974,7,0,0,0, +18974,18975,5,95,0,0,18975,18976,7,3,0,0,18976,18977,7,2,0,0,18977,18978, +7,22,0,0,18978,18979,7,5,0,0,18979,18980,7,8,0,0,18980,18981,7,7,0,0,18981, +2588,1,0,0,0,18982,18983,7,2,0,0,18983,18984,7,3,0,0,18984,18985,7,0,0,0, +18985,18986,5,95,0,0,18986,18987,7,3,0,0,18987,18988,7,2,0,0,18988,18989, +7,22,0,0,18989,18990,7,5,0,0,18990,18991,7,8,0,0,18991,18992,7,7,0,0,18992, +18993,5,95,0,0,18993,18994,7,3,0,0,18994,18995,7,0,0,0,18995,18996,7,22, +0,0,18996,2590,1,0,0,0,18997,18998,7,2,0,0,18998,18999,7,3,0,0,18999,19000, +7,0,0,0,19000,19001,5,95,0,0,19001,19002,7,3,0,0,19002,19003,7,2,0,0,19003, +19004,7,22,0,0,19004,19005,7,13,0,0,19005,19006,7,6,0,0,19006,19007,7,3, +0,0,19007,19008,7,5,0,0,19008,19009,7,10,0,0,19009,19010,7,2,0,0,19010,19011, +7,7,0,0,19011,2592,1,0,0,0,19012,19013,7,2,0,0,19013,19014,7,3,0,0,19014, +19015,7,0,0,0,19015,19016,5,95,0,0,19016,19017,7,4,0,0,19017,19018,7,0,0, +0,19018,19019,7,1,0,0,19019,19020,7,13,0,0,19020,19021,7,6,0,0,19021,19022, +7,3,0,0,19022,19023,7,5,0,0,19023,19024,7,10,0,0,19024,19025,7,2,0,0,19025, +19026,7,7,0,0,19026,2594,1,0,0,0,19027,19028,7,2,0,0,19028,19029,7,3,0,0, +19029,19030,7,0,0,0,19030,19031,5,95,0,0,19031,19032,7,22,0,0,19032,19033, +7,3,0,0,19033,19034,7,10,0,0,19034,19035,7,4,0,0,19035,19036,7,6,0,0,19036, +19037,5,95,0,0,19037,19038,7,4,0,0,19038,19039,7,10,0,0,19039,19040,7,14, +0,0,19040,19041,7,6,0,0,19041,2596,1,0,0,0,19042,19043,7,2,0,0,19043,19044, +7,3,0,0,19044,19045,7,9,0,0,19045,19046,7,6,0,0,19046,19047,7,3,0,0,19047, +19048,7,6,0,0,19048,19049,7,9,0,0,19049,2598,1,0,0,0,19050,19051,7,2,0,0, +19051,19052,7,3,0,0,19052,19053,7,9,0,0,19053,19054,7,6,0,0,19054,19055, +7,3,0,0,19055,19056,7,6,0,0,19056,19057,7,9,0,0,19057,19058,5,95,0,0,19058, +19059,7,15,0,0,19059,19060,7,3,0,0,19060,19061,7,6,0,0,19061,19062,7,9,0, +0,19062,19063,7,10,0,0,19063,19064,7,8,0,0,19064,19065,7,0,0,0,19065,19066, +7,4,0,0,19066,19067,7,6,0,0,19067,19068,7,5,0,0,19068,2600,1,0,0,0,19069, +19070,7,2,0,0,19070,19071,7,3,0,0,19071,19072,7,9,0,0,19072,19073,7,6,0, +0,19073,19074,7,3,0,0,19074,2602,1,0,0,0,19075,19076,7,2,0,0,19076,19077, +7,3,0,0,19077,19078,7,9,0,0,19078,19079,7,10,0,0,19079,19080,7,7,0,0,19080, +19081,7,0,0,0,19081,19082,7,11,0,0,19082,19083,7,10,0,0,19083,19084,7,4, +0,0,19084,19085,7,18,0,0,19085,2604,1,0,0,0,19086,19087,7,2,0,0,19087,19088, +7,3,0,0,19088,19089,5,95,0,0,19089,19090,7,6,0,0,19090,19091,7,25,0,0,19091, +19092,7,15,0,0,19092,19093,7,0,0,0,19093,19094,7,7,0,0,19094,19095,7,9,0, +0,19095,2606,1,0,0,0,19096,19097,7,2,0,0,19097,19098,7,3,0,0,19098,19099, +7,17,0,0,19099,19100,7,0,0,0,19100,19101,7,7,0,0,19101,19102,7,10,0,0,19102, +19103,7,23,0,0,19103,19104,7,0,0,0,19104,19105,7,4,0,0,19105,19106,7,10, +0,0,19106,19107,7,2,0,0,19107,19108,7,7,0,0,19108,2608,1,0,0,0,19109,19110, +7,2,0,0,19110,19111,7,3,0,0,19111,2610,1,0,0,0,19112,19113,7,2,0,0,19113, +19114,7,3,0,0,19114,19115,5,95,0,0,19115,19116,7,15,0,0,19116,19117,7,3, +0,0,19117,19118,7,6,0,0,19118,19119,7,9,0,0,19119,19120,7,10,0,0,19120,19121, +7,8,0,0,19121,19122,7,0,0,0,19122,19123,7,4,0,0,19123,19124,7,6,0,0,19124, +19125,7,5,0,0,19125,2612,1,0,0,0,19126,19127,7,2,0,0,19127,19128,7,5,0,0, +19128,19129,7,6,0,0,19129,19130,7,3,0,0,19130,19131,7,3,0,0,19131,19132, +7,2,0,0,19132,19133,7,3,0,0,19133,2614,1,0,0,0,19134,19135,7,2,0,0,19135, +19136,7,4,0,0,19136,19137,7,19,0,0,19137,19138,7,6,0,0,19138,19139,7,3,0, +0,19139,2616,1,0,0,0,19140,19141,7,2,0,0,19141,19142,7,12,0,0,19142,19143, +7,4,0,0,19143,19144,7,6,0,0,19144,19145,7,3,0,0,19145,19146,5,95,0,0,19146, +19147,7,20,0,0,19147,19148,7,2,0,0,19148,19149,7,10,0,0,19149,19150,7,7, +0,0,19150,19151,5,95,0,0,19151,19152,7,4,0,0,19152,19153,7,2,0,0,19153,19154, +5,95,0,0,19154,19155,7,0,0,0,19155,19156,7,7,0,0,19156,19157,7,4,0,0,19157, +19158,7,10,0,0,19158,2618,1,0,0,0,19159,19160,7,2,0,0,19160,19161,7,12,0, +0,19161,19162,7,4,0,0,19162,19163,7,6,0,0,19163,19164,7,3,0,0,19164,19165, +5,95,0,0,19165,19166,7,20,0,0,19166,19167,7,2,0,0,19167,19168,7,10,0,0,19168, +19169,7,7,0,0,19169,19170,5,95,0,0,19170,19171,7,4,0,0,19171,19172,7,2,0, +0,19172,19173,5,95,0,0,19173,19174,7,10,0,0,19174,19175,7,7,0,0,19175,19176, +7,7,0,0,19176,19177,7,6,0,0,19177,19178,7,3,0,0,19178,2620,1,0,0,0,19179, +19180,7,2,0,0,19180,19181,7,12,0,0,19181,19182,7,4,0,0,19182,19183,7,6,0, +0,19183,19184,7,3,0,0,19184,2622,1,0,0,0,19185,19186,7,2,0,0,19186,19187, +7,12,0,0,19187,19188,7,4,0,0,19188,19189,7,11,0,0,19189,19190,7,10,0,0,19190, +19191,7,7,0,0,19191,19192,7,6,0,0,19192,19193,5,95,0,0,19193,19194,7,11, +0,0,19194,19195,7,6,0,0,19195,19196,7,0,0,0,19196,19197,7,16,0,0,19197,2624, +1,0,0,0,19198,19199,7,2,0,0,19199,19200,7,12,0,0,19200,19201,7,4,0,0,19201, +19202,7,11,0,0,19202,19203,7,10,0,0,19203,19204,7,7,0,0,19204,19205,7,6, +0,0,19205,2626,1,0,0,0,19206,19207,7,2,0,0,19207,19208,7,12,0,0,19208,19209, +7,4,0,0,19209,19210,7,15,0,0,19210,19211,7,12,0,0,19211,19212,7,4,0,0,19212, +19213,7,16,0,0,19213,19214,7,2,0,0,19214,19215,7,3,0,0,19215,19216,7,14, +0,0,19216,19217,7,0,0,0,19217,19218,7,4,0,0,19218,2628,1,0,0,0,19219,19220, +7,2,0,0,19220,19221,7,12,0,0,19221,19222,7,4,0,0,19222,19223,5,95,0,0,19223, +19224,7,2,0,0,19224,19225,7,16,0,0,19225,19226,5,95,0,0,19226,19227,7,11, +0,0,19227,19228,7,10,0,0,19228,19229,7,7,0,0,19229,19230,7,6,0,0,19230,2630, +1,0,0,0,19231,19232,7,2,0,0,19232,19233,7,12,0,0,19233,19234,7,4,0,0,19234, +2632,1,0,0,0,19235,19236,7,2,0,0,19236,19237,7,13,0,0,19237,19238,7,6,0, +0,19238,19239,7,3,0,0,19239,19240,7,16,0,0,19240,19241,7,11,0,0,19241,19242, +7,2,0,0,19242,19243,7,22,0,0,19243,19244,5,95,0,0,19244,19245,7,7,0,0,19245, +19246,7,2,0,0,19246,19247,7,14,0,0,19247,19248,7,2,0,0,19248,19249,7,13, +0,0,19249,19250,7,6,0,0,19250,2634,1,0,0,0,19251,19252,7,2,0,0,19252,19253, +7,13,0,0,19253,19254,7,6,0,0,19254,19255,7,3,0,0,19255,19256,7,16,0,0,19256, +19257,7,11,0,0,19257,19258,7,2,0,0,19258,19259,7,22,0,0,19259,2636,1,0,0, +0,19260,19261,7,2,0,0,19261,19262,7,13,0,0,19262,19263,7,6,0,0,19263,19264, +7,3,0,0,19264,19265,7,11,0,0,19265,19266,7,0,0,0,19266,19267,7,15,0,0,19267, +19268,7,5,0,0,19268,2638,1,0,0,0,19269,19270,7,2,0,0,19270,19271,7,13,0, +0,19271,19272,7,6,0,0,19272,19273,7,3,0,0,19273,2640,1,0,0,0,19274,19275, +7,2,0,0,19275,19276,7,13,0,0,19276,19277,7,6,0,0,19277,19278,7,3,0,0,19278, +19279,7,3,0,0,19279,19280,7,10,0,0,19280,19281,7,9,0,0,19281,19282,7,6,0, +0,19282,2642,1,0,0,0,19283,19284,7,2,0,0,19284,19285,7,13,0,0,19285,19286, +7,6,0,0,19286,19287,7,3,0,0,19287,19288,7,3,0,0,19288,19289,7,10,0,0,19289, +19290,7,9,0,0,19290,19291,7,10,0,0,19291,19292,7,7,0,0,19292,19293,7,17, +0,0,19293,2644,1,0,0,0,19294,19295,7,2,0,0,19295,19296,7,22,0,0,19296,19297, +7,7,0,0,19297,19298,7,6,0,0,19298,19299,7,3,0,0,19299,2646,1,0,0,0,19300, +19301,7,2,0,0,19301,19302,7,22,0,0,19302,19303,7,7,0,0,19303,19304,7,6,0, +0,19304,19305,7,3,0,0,19305,19306,7,5,0,0,19306,19307,7,19,0,0,19307,19308, +7,10,0,0,19308,19309,7,15,0,0,19309,2648,1,0,0,0,19310,19311,7,2,0,0,19311, +19312,7,22,0,0,19312,19313,7,7,0,0,19313,2650,1,0,0,0,19314,19315,7,15,0, +0,19315,2652,1,0,0,0,19316,19317,7,15,0,0,19317,19318,7,0,0,0,19318,19319, +7,8,0,0,19319,19320,7,21,0,0,19320,19321,7,0,0,0,19321,19322,7,17,0,0,19322, +19323,7,6,0,0,19323,2654,1,0,0,0,19324,19325,7,15,0,0,19325,19326,7,0,0, +0,19326,19327,7,8,0,0,19327,19328,7,21,0,0,19328,19329,7,0,0,0,19329,19330, +7,17,0,0,19330,19331,7,6,0,0,19331,19332,7,5,0,0,19332,2656,1,0,0,0,19333, +19334,7,15,0,0,19334,19335,7,0,0,0,19335,19336,7,3,0,0,19336,19337,7,0,0, +0,19337,19338,7,11,0,0,19338,19339,7,11,0,0,19339,19340,7,6,0,0,19340,19341, +7,11,0,0,19341,19342,5,95,0,0,19342,19343,7,6,0,0,19343,19344,7,7,0,0,19344, +19345,7,0,0,0,19345,19346,7,1,0,0,19346,19347,7,11,0,0,19347,19348,7,6,0, +0,19348,2658,1,0,0,0,19349,19350,7,15,0,0,19350,19351,7,0,0,0,19351,19352, +7,3,0,0,19352,19353,7,0,0,0,19353,19354,7,11,0,0,19354,19355,7,11,0,0,19355, +19356,7,6,0,0,19356,19357,7,11,0,0,19357,19358,5,95,0,0,19358,19359,7,10, +0,0,19359,19360,7,7,0,0,19360,19361,7,9,0,0,19361,19362,7,6,0,0,19362,19363, +7,25,0,0,19363,2660,1,0,0,0,19364,19365,7,15,0,0,19365,19366,7,0,0,0,19366, +19367,7,3,0,0,19367,19368,7,0,0,0,19368,19369,7,11,0,0,19369,19370,7,11, +0,0,19370,19371,7,6,0,0,19371,19372,7,11,0,0,19372,2662,1,0,0,0,19373,19374, +7,15,0,0,19374,19375,7,0,0,0,19375,19376,7,3,0,0,19376,19377,7,0,0,0,19377, +19378,7,14,0,0,19378,19379,7,6,0,0,19379,19380,7,4,0,0,19380,19381,7,6,0, +0,19381,19382,7,3,0,0,19382,19383,7,16,0,0,19383,19384,7,10,0,0,19384,19385, +7,11,0,0,19385,19386,7,6,0,0,19386,2664,1,0,0,0,19387,19388,7,15,0,0,19388, +19389,7,0,0,0,19389,19390,7,3,0,0,19390,19391,7,0,0,0,19391,19392,7,14,0, +0,19392,19393,7,6,0,0,19393,19394,7,4,0,0,19394,19395,7,6,0,0,19395,19396, +7,3,0,0,19396,19397,7,5,0,0,19397,2666,1,0,0,0,19398,19399,7,15,0,0,19399, +19400,7,0,0,0,19400,19401,7,3,0,0,19401,19402,7,0,0,0,19402,19403,7,14,0, +0,19403,2668,1,0,0,0,19404,19405,7,15,0,0,19405,19406,7,0,0,0,19406,19407, +7,3,0,0,19407,19408,7,6,0,0,19408,19409,7,7,0,0,19409,19410,7,4,0,0,19410, +2670,1,0,0,0,19411,19412,7,15,0,0,19412,19413,7,0,0,0,19413,19414,7,3,0, +0,19414,19415,7,6,0,0,19415,19416,7,7,0,0,19416,19417,7,4,0,0,19417,19418, +5,95,0,0,19418,19419,7,11,0,0,19419,19420,7,6,0,0,19420,19421,7,13,0,0,19421, +19422,7,6,0,0,19422,19423,7,11,0,0,19423,19424,5,95,0,0,19424,19425,7,7, +0,0,19425,19426,7,0,0,0,19426,19427,7,14,0,0,19427,19428,7,6,0,0,19428,2672, +1,0,0,0,19429,19430,7,15,0,0,19430,19431,7,0,0,0,19431,19432,7,3,0,0,19432, +19433,7,6,0,0,19433,19434,7,7,0,0,19434,19435,7,4,0,0,19435,19436,5,95,0, +0,19436,19437,7,12,0,0,19437,19438,7,7,0,0,19438,19439,7,10,0,0,19439,19440, +7,24,0,0,19440,19441,7,12,0,0,19441,19442,7,6,0,0,19442,19443,5,95,0,0,19443, +19444,7,7,0,0,19444,19445,7,0,0,0,19445,19446,7,14,0,0,19446,19447,7,6,0, +0,19447,2674,1,0,0,0,19448,19449,7,15,0,0,19449,19450,7,0,0,0,19450,19451, +7,3,0,0,19451,19452,7,10,0,0,19452,19453,7,4,0,0,19453,19454,7,18,0,0,19454, +2676,1,0,0,0,19455,19456,7,15,0,0,19456,19457,7,0,0,0,19457,19458,7,3,0, +0,19458,19459,7,24,0,0,19459,19460,7,12,0,0,19460,19461,7,6,0,0,19461,19462, +7,4,0,0,19462,2678,1,0,0,0,19463,19464,7,15,0,0,19464,19465,7,0,0,0,19465, +19466,7,3,0,0,19466,19467,7,4,0,0,19467,19468,7,10,0,0,19468,19469,7,0,0, +0,19469,19470,7,11,0,0,19470,19471,5,95,0,0,19471,19472,7,20,0,0,19472,19473, +7,2,0,0,19473,19474,7,10,0,0,19474,19475,7,7,0,0,19475,2680,1,0,0,0,19476, +19477,7,15,0,0,19477,19478,7,0,0,0,19478,19479,7,3,0,0,19479,19480,7,4,0, +0,19480,19481,7,10,0,0,19481,19482,7,0,0,0,19482,19483,7,11,0,0,19483,19484, +7,11,0,0,19484,19485,7,18,0,0,19485,2682,1,0,0,0,19486,19487,7,15,0,0,19487, +19488,7,0,0,0,19488,19489,7,3,0,0,19489,19490,7,4,0,0,19490,19491,7,10,0, +0,19491,19492,7,0,0,0,19492,19493,7,11,0,0,19493,2684,1,0,0,0,19494,19495, +7,15,0,0,19495,19496,7,0,0,0,19496,19497,7,3,0,0,19497,19498,7,4,0,0,19498, +19499,7,10,0,0,19499,19500,7,0,0,0,19500,19501,7,11,0,0,19501,19502,5,95, +0,0,19502,19503,7,3,0,0,19503,19504,7,2,0,0,19504,19505,7,11,0,0,19505,19506, +7,11,0,0,19506,19507,7,12,0,0,19507,19508,7,15,0,0,19508,19509,5,95,0,0, +19509,19510,7,15,0,0,19510,19511,7,12,0,0,19511,19512,7,5,0,0,19512,19513, +7,19,0,0,19513,19514,7,9,0,0,19514,19515,7,2,0,0,19515,19516,7,22,0,0,19516, +19517,7,7,0,0,19517,2686,1,0,0,0,19518,19519,7,15,0,0,19519,19520,7,0,0, +0,19520,19521,7,3,0,0,19521,19522,7,4,0,0,19522,19523,7,10,0,0,19523,19524, +7,4,0,0,19524,19525,7,10,0,0,19525,19526,7,2,0,0,19526,19527,7,7,0,0,19527, +19528,5,95,0,0,19528,19529,7,19,0,0,19529,19530,7,0,0,0,19530,19531,7,5, +0,0,19531,19532,7,19,0,0,19532,2688,1,0,0,0,19533,19534,7,15,0,0,19534,19535, +7,0,0,0,19535,19536,7,3,0,0,19536,19537,7,4,0,0,19537,19538,7,10,0,0,19538, +19539,7,4,0,0,19539,19540,7,10,0,0,19540,19541,7,2,0,0,19541,19542,7,7,0, +0,19542,19543,5,95,0,0,19543,19544,7,11,0,0,19544,19545,7,10,0,0,19545,19546, +7,5,0,0,19546,19547,7,4,0,0,19547,2690,1,0,0,0,19548,19549,7,15,0,0,19549, +19550,7,0,0,0,19550,19551,7,3,0,0,19551,19552,7,4,0,0,19552,19553,7,10,0, +0,19553,19554,7,4,0,0,19554,19555,7,10,0,0,19555,19556,7,2,0,0,19556,19557, +7,7,0,0,19557,2692,1,0,0,0,19558,19559,7,15,0,0,19559,19560,7,0,0,0,19560, +19561,7,3,0,0,19561,19562,7,4,0,0,19562,19563,7,10,0,0,19563,19564,7,4,0, +0,19564,19565,7,10,0,0,19565,19566,7,2,0,0,19566,19567,7,7,0,0,19567,19568, +5,95,0,0,19568,19569,7,3,0,0,19569,19570,7,0,0,0,19570,19571,7,7,0,0,19571, +19572,7,17,0,0,19572,19573,7,6,0,0,19573,2694,1,0,0,0,19574,19575,7,15,0, +0,19575,19576,7,0,0,0,19576,19577,7,3,0,0,19577,19578,7,4,0,0,19578,19579, +7,10,0,0,19579,19580,7,4,0,0,19580,19581,7,10,0,0,19581,19582,7,2,0,0,19582, +19583,7,7,0,0,19583,19584,7,5,0,0,19584,2696,1,0,0,0,19585,19586,7,15,0, +0,19586,19587,7,0,0,0,19587,19588,7,3,0,0,19588,19589,7,4,0,0,19589,19590, +5,36,0,0,19590,19591,7,7,0,0,19591,19592,7,12,0,0,19592,19593,7,14,0,0,19593, +19594,5,36,0,0,19594,19595,7,10,0,0,19595,19596,7,7,0,0,19596,19597,7,5, +0,0,19597,19598,7,4,0,0,19598,2698,1,0,0,0,19599,19600,7,15,0,0,19600,19601, +7,0,0,0,19601,19602,7,5,0,0,19602,19603,7,5,0,0,19603,19604,7,10,0,0,19604, +19605,7,7,0,0,19605,19606,7,17,0,0,19606,2700,1,0,0,0,19607,19608,7,15,0, +0,19608,19609,7,0,0,0,19609,19610,7,5,0,0,19610,19611,7,5,0,0,19611,19612, +7,22,0,0,19612,19613,7,2,0,0,19613,19614,7,3,0,0,19614,19615,7,9,0,0,19615, +19616,5,95,0,0,19616,19617,7,17,0,0,19617,19618,7,3,0,0,19618,19619,7,0, +0,0,19619,19620,7,8,0,0,19620,19621,7,6,0,0,19621,19622,5,95,0,0,19622,19623, +7,4,0,0,19623,19624,7,10,0,0,19624,19625,7,14,0,0,19625,19626,7,6,0,0,19626, +2702,1,0,0,0,19627,19628,7,15,0,0,19628,19629,7,0,0,0,19629,19630,7,5,0, +0,19630,19631,7,5,0,0,19631,19632,7,22,0,0,19632,19633,7,2,0,0,19633,19634, +7,3,0,0,19634,19635,7,9,0,0,19635,19636,5,95,0,0,19636,19637,7,11,0,0,19637, +19638,7,10,0,0,19638,19639,7,16,0,0,19639,19640,7,6,0,0,19640,19641,5,95, +0,0,19641,19642,7,4,0,0,19642,19643,7,10,0,0,19643,19644,7,14,0,0,19644, +19645,7,6,0,0,19645,2704,1,0,0,0,19646,19647,7,15,0,0,19647,19648,7,0,0, +0,19648,19649,7,5,0,0,19649,19650,7,5,0,0,19650,19651,7,22,0,0,19651,19652, +7,2,0,0,19652,19653,7,3,0,0,19653,19654,7,9,0,0,19654,19655,5,95,0,0,19655, +19656,7,11,0,0,19656,19657,7,2,0,0,19657,19658,7,8,0,0,19658,19659,7,21, +0,0,19659,19660,5,95,0,0,19660,19661,7,4,0,0,19661,19662,7,10,0,0,19662, +19663,7,14,0,0,19663,19664,7,6,0,0,19664,2706,1,0,0,0,19665,19666,7,15,0, +0,19666,19667,7,0,0,0,19667,19668,7,5,0,0,19668,19669,7,5,0,0,19669,19670, +7,22,0,0,19670,19671,7,2,0,0,19671,19672,7,3,0,0,19672,19673,7,9,0,0,19673, +2708,1,0,0,0,19674,19675,7,15,0,0,19675,19676,7,0,0,0,19676,19677,7,5,0, +0,19677,19678,7,5,0,0,19678,19679,7,22,0,0,19679,19680,7,2,0,0,19680,19681, +7,3,0,0,19681,19682,7,9,0,0,19682,19683,5,95,0,0,19683,19684,7,3,0,0,19684, +19685,7,6,0,0,19685,19686,7,12,0,0,19686,19687,7,5,0,0,19687,19688,7,6,0, +0,19688,19689,5,95,0,0,19689,19690,7,14,0,0,19690,19691,7,0,0,0,19691,19692, +7,25,0,0,19692,2710,1,0,0,0,19693,19694,7,15,0,0,19694,19695,7,0,0,0,19695, +19696,7,5,0,0,19696,19697,7,5,0,0,19697,19698,7,22,0,0,19698,19699,7,2,0, +0,19699,19700,7,3,0,0,19700,19701,7,9,0,0,19701,19702,5,95,0,0,19702,19703, +7,3,0,0,19703,19704,7,6,0,0,19704,19705,7,12,0,0,19705,19706,7,5,0,0,19706, +19707,7,6,0,0,19707,19708,5,95,0,0,19708,19709,7,4,0,0,19709,19710,7,10, +0,0,19710,19711,7,14,0,0,19711,19712,7,6,0,0,19712,2712,1,0,0,0,19713,19714, +7,15,0,0,19714,19715,7,0,0,0,19715,19716,7,5,0,0,19716,19717,7,5,0,0,19717, +19718,7,22,0,0,19718,19719,7,2,0,0,19719,19720,7,3,0,0,19720,19721,7,9,0, +0,19721,19722,5,95,0,0,19722,19723,7,3,0,0,19723,19724,7,2,0,0,19724,19725, +7,11,0,0,19725,19726,7,11,0,0,19726,19727,7,2,0,0,19727,19728,7,13,0,0,19728, +19729,7,6,0,0,19729,19730,7,3,0,0,19730,19731,5,95,0,0,19731,19732,7,4,0, +0,19732,19733,7,10,0,0,19733,19734,7,14,0,0,19734,19735,7,6,0,0,19735,2714, +1,0,0,0,19736,19737,7,15,0,0,19737,19738,7,0,0,0,19738,19739,7,5,0,0,19739, +19740,7,5,0,0,19740,19741,7,22,0,0,19741,19742,7,2,0,0,19742,19743,7,3,0, +0,19743,19744,7,9,0,0,19744,19745,5,95,0,0,19745,19746,7,13,0,0,19746,19747, +7,6,0,0,19747,19748,7,3,0,0,19748,19749,7,10,0,0,19749,19750,7,16,0,0,19750, +19751,7,18,0,0,19751,19752,5,95,0,0,19752,19753,7,16,0,0,19753,19754,7,12, +0,0,19754,19755,7,7,0,0,19755,19756,7,8,0,0,19756,19757,7,4,0,0,19757,19758, +7,10,0,0,19758,19759,7,2,0,0,19759,19760,7,7,0,0,19760,2716,1,0,0,0,19761, +19762,7,15,0,0,19762,19763,7,0,0,0,19763,19764,7,5,0,0,19764,19765,7,4,0, +0,19765,2718,1,0,0,0,19766,19767,7,15,0,0,19767,19768,7,0,0,0,19768,19769, +7,4,0,0,19769,19770,7,8,0,0,19770,19771,7,19,0,0,19771,2720,1,0,0,0,19772, +19773,7,15,0,0,19773,19774,7,0,0,0,19774,19775,7,4,0,0,19775,19776,7,19, +0,0,19776,2722,1,0,0,0,19777,19778,7,15,0,0,19778,19779,7,0,0,0,19779,19780, +7,4,0,0,19780,19781,7,19,0,0,19781,19782,5,95,0,0,19782,19783,7,15,0,0,19783, +19784,7,3,0,0,19784,19785,7,6,0,0,19785,19786,7,16,0,0,19786,19787,7,10, +0,0,19787,19788,7,25,0,0,19788,2724,1,0,0,0,19789,19790,7,15,0,0,19790,19791, +7,0,0,0,19791,19792,7,4,0,0,19792,19793,7,19,0,0,19793,19794,7,5,0,0,19794, +2726,1,0,0,0,19795,19796,7,15,0,0,19796,19797,7,0,0,0,19797,19798,7,4,0, +0,19798,19799,7,4,0,0,19799,19800,7,6,0,0,19800,19801,7,3,0,0,19801,19802, +7,7,0,0,19802,2728,1,0,0,0,19803,19804,7,15,0,0,19804,19805,7,1,0,0,19805, +19806,7,11,0,0,19806,19807,5,95,0,0,19807,19808,7,19,0,0,19808,19809,7,5, +0,0,19809,19810,5,95,0,0,19810,19811,7,1,0,0,19811,19812,7,6,0,0,19812,19813, +7,17,0,0,19813,19814,7,10,0,0,19814,19815,7,7,0,0,19815,2730,1,0,0,0,19816, +19817,7,15,0,0,19817,19818,7,1,0,0,19818,19819,7,11,0,0,19819,19820,5,95, +0,0,19820,19821,7,19,0,0,19821,19822,7,5,0,0,19822,19823,5,95,0,0,19823, +19824,7,6,0,0,19824,19825,7,7,0,0,19825,19826,7,9,0,0,19826,2732,1,0,0,0, +19827,19828,7,15,0,0,19828,19829,7,8,0,0,19829,19830,7,4,0,0,19830,19831, +7,16,0,0,19831,19832,7,3,0,0,19832,19833,7,6,0,0,19833,19834,7,6,0,0,19834, +2734,1,0,0,0,19835,19836,7,15,0,0,19836,19837,7,8,0,0,19837,19838,7,4,0, +0,19838,19839,7,10,0,0,19839,19840,7,7,0,0,19840,19841,7,8,0,0,19841,19842, +7,3,0,0,19842,19843,7,6,0,0,19843,19844,7,0,0,0,19844,19845,7,5,0,0,19845, +19846,7,6,0,0,19846,2736,1,0,0,0,19847,19848,7,15,0,0,19848,19849,7,8,0, +0,19849,19850,7,4,0,0,19850,19851,7,4,0,0,19851,19852,7,19,0,0,19852,19853, +7,3,0,0,19853,19854,7,6,0,0,19854,19855,7,5,0,0,19855,19856,7,19,0,0,19856, +19857,7,2,0,0,19857,19858,7,11,0,0,19858,19859,7,9,0,0,19859,2738,1,0,0, +0,19860,19861,7,15,0,0,19861,19862,7,8,0,0,19862,19863,7,4,0,0,19863,19864, +7,12,0,0,19864,19865,7,5,0,0,19865,19866,7,6,0,0,19866,19867,7,9,0,0,19867, +2740,1,0,0,0,19868,19869,7,15,0,0,19869,19870,7,8,0,0,19870,19871,7,4,0, +0,19871,19872,7,13,0,0,19872,19873,7,6,0,0,19873,19874,7,3,0,0,19874,19875, +7,5,0,0,19875,19876,7,10,0,0,19876,19877,7,2,0,0,19877,19878,7,7,0,0,19878, +2742,1,0,0,0,19879,19880,7,15,0,0,19880,19881,7,6,0,0,19881,19882,7,7,0, +0,19882,19883,7,9,0,0,19883,19884,7,10,0,0,19884,19885,7,7,0,0,19885,19886, +7,17,0,0,19886,2744,1,0,0,0,19887,19891,5,37,0,0,19888,19890,3,4995,2497, +0,19889,19888,1,0,0,0,19890,19893,1,0,0,0,19891,19889,1,0,0,0,19891,19892, +1,0,0,0,19892,19894,1,0,0,0,19893,19891,1,0,0,0,19894,19895,7,16,0,0,19895, +19896,7,2,0,0,19896,19897,7,12,0,0,19897,19898,7,7,0,0,19898,19899,7,9,0, +0,19899,2746,1,0,0,0,19900,19904,5,37,0,0,19901,19903,3,4995,2497,0,19902, +19901,1,0,0,0,19903,19906,1,0,0,0,19904,19902,1,0,0,0,19904,19905,1,0,0, +0,19905,19907,1,0,0,0,19906,19904,1,0,0,0,19907,19908,7,10,0,0,19908,19909, +7,5,0,0,19909,19910,7,2,0,0,19910,19911,7,15,0,0,19911,19912,7,6,0,0,19912, +19913,7,7,0,0,19913,2748,1,0,0,0,19914,19918,5,37,0,0,19915,19917,3,4995, +2497,0,19916,19915,1,0,0,0,19917,19920,1,0,0,0,19918,19916,1,0,0,0,19918, +19919,1,0,0,0,19919,19921,1,0,0,0,19920,19918,1,0,0,0,19921,19922,7,7,0, +0,19922,19923,7,2,0,0,19923,19924,7,4,0,0,19924,19925,7,16,0,0,19925,19926, +7,2,0,0,19926,19927,7,12,0,0,19927,19928,7,7,0,0,19928,19929,7,9,0,0,19929, +2750,1,0,0,0,19930,19931,7,15,0,0,19931,19932,7,6,0,0,19932,19933,7,3,0, +0,19933,19934,7,8,0,0,19934,19935,7,6,0,0,19935,19936,7,7,0,0,19936,19937, +7,4,0,0,19937,2752,1,0,0,0,19938,19939,7,15,0,0,19939,19940,7,6,0,0,19940, +19941,7,3,0,0,19941,19942,7,8,0,0,19942,19943,7,6,0,0,19943,19944,7,7,0, +0,19944,19945,7,4,0,0,19945,19946,5,95,0,0,19946,19947,7,3,0,0,19947,19948, +7,0,0,0,19948,19949,7,7,0,0,19949,19950,7,21,0,0,19950,19951,7,14,0,0,19951, +2754,1,0,0,0,19952,19956,5,37,0,0,19953,19955,3,4995,2497,0,19954,19953, +1,0,0,0,19955,19958,1,0,0,0,19956,19954,1,0,0,0,19956,19957,1,0,0,0,19957, +19959,1,0,0,0,19958,19956,1,0,0,0,19959,19960,7,3,0,0,19960,19961,7,2,0, +0,19961,19962,7,22,0,0,19962,19963,7,8,0,0,19963,19964,7,2,0,0,19964,19965, +7,12,0,0,19965,19966,7,7,0,0,19966,19967,7,4,0,0,19967,2756,1,0,0,0,19968, +19972,5,37,0,0,19969,19971,3,4995,2497,0,19970,19969,1,0,0,0,19971,19974, +1,0,0,0,19972,19970,1,0,0,0,19972,19973,1,0,0,0,19973,19975,1,0,0,0,19974, +19972,1,0,0,0,19975,19976,7,3,0,0,19976,19977,7,2,0,0,19977,19978,7,22,0, +0,19978,19979,7,4,0,0,19979,19980,7,18,0,0,19980,19981,7,15,0,0,19981,19982, +7,6,0,0,19982,2758,1,0,0,0,19983,19987,5,37,0,0,19984,19986,3,4995,2497, +0,19985,19984,1,0,0,0,19986,19989,1,0,0,0,19987,19985,1,0,0,0,19987,19988, +1,0,0,0,19988,19990,1,0,0,0,19989,19987,1,0,0,0,19990,19991,7,4,0,0,19991, +19992,7,18,0,0,19992,19993,7,15,0,0,19993,19994,7,6,0,0,19994,2760,1,0,0, +0,19995,19999,5,37,0,0,19996,19998,3,4995,2497,0,19997,19996,1,0,0,0,19998, +20001,1,0,0,0,19999,19997,1,0,0,0,19999,20000,1,0,0,0,20000,20002,1,0,0, +0,20001,19999,1,0,0,0,20002,20003,7,1,0,0,20003,20004,7,12,0,0,20004,20005, +7,11,0,0,20005,20006,7,21,0,0,20006,20007,5,95,0,0,20007,20008,7,6,0,0,20008, +20009,7,25,0,0,20009,20010,7,8,0,0,20010,20011,7,6,0,0,20011,20012,7,15, +0,0,20012,20013,7,4,0,0,20013,20014,7,10,0,0,20014,20015,7,2,0,0,20015,20016, +7,7,0,0,20016,20017,7,5,0,0,20017,2762,1,0,0,0,20018,20022,5,37,0,0,20019, +20021,3,4995,2497,0,20020,20019,1,0,0,0,20021,20024,1,0,0,0,20022,20020, +1,0,0,0,20022,20023,1,0,0,0,20023,20025,1,0,0,0,20024,20022,1,0,0,0,20025, +20026,7,1,0,0,20026,20027,7,12,0,0,20027,20028,7,11,0,0,20028,20029,7,21, +0,0,20029,20030,5,95,0,0,20030,20031,7,3,0,0,20031,20032,7,2,0,0,20032,20033, +7,22,0,0,20033,20034,7,8,0,0,20034,20035,7,2,0,0,20035,20036,7,12,0,0,20036, +20037,7,7,0,0,20037,20038,7,4,0,0,20038,2764,1,0,0,0,20039,20040,7,15,0, +0,20040,20041,7,6,0,0,20041,20042,7,3,0,0,20042,20043,7,16,0,0,20043,20044, +7,2,0,0,20044,20045,7,3,0,0,20045,20046,7,14,0,0,20046,20047,7,0,0,0,20047, +20048,7,7,0,0,20048,20049,7,8,0,0,20049,20050,7,6,0,0,20050,2766,1,0,0,0, +20051,20052,7,15,0,0,20052,20053,7,6,0,0,20053,20054,7,3,0,0,20054,20055, +7,10,0,0,20055,20056,7,2,0,0,20056,20057,7,9,0,0,20057,2768,1,0,0,0,20058, +20059,7,15,0,0,20059,20060,7,6,0,0,20060,20061,7,3,0,0,20061,20062,7,14, +0,0,20062,20063,7,0,0,0,20063,20064,7,7,0,0,20064,20065,7,6,0,0,20065,20066, +7,7,0,0,20066,20067,7,4,0,0,20067,2770,1,0,0,0,20068,20069,7,15,0,0,20069, +20070,7,6,0,0,20070,20071,7,3,0,0,20071,20072,7,14,0,0,20072,20073,7,10, +0,0,20073,20074,7,5,0,0,20074,20075,7,5,0,0,20075,20076,7,10,0,0,20076,20077, +7,2,0,0,20077,20078,7,7,0,0,20078,2772,1,0,0,0,20079,20080,7,15,0,0,20080, +20081,7,6,0,0,20081,20082,7,3,0,0,20082,20083,7,14,0,0,20083,20084,7,12, +0,0,20084,20085,7,4,0,0,20085,20086,7,6,0,0,20086,2774,1,0,0,0,20087,20088, +7,15,0,0,20088,20089,7,6,0,0,20089,20090,7,3,0,0,20090,2776,1,0,0,0,20091, +20092,7,15,0,0,20092,20093,7,16,0,0,20093,20094,7,10,0,0,20094,20095,7,11, +0,0,20095,20096,7,6,0,0,20096,2778,1,0,0,0,20097,20098,7,15,0,0,20098,20099, +7,19,0,0,20099,20100,7,18,0,0,20100,20101,7,5,0,0,20101,20102,7,10,0,0,20102, +20103,7,8,0,0,20103,20104,7,0,0,0,20104,20105,7,11,0,0,20105,2780,1,0,0, +0,20106,20107,7,15,0,0,20107,20108,7,10,0,0,20108,20109,7,21,0,0,20109,20110, +7,6,0,0,20110,20111,7,18,0,0,20111,2782,1,0,0,0,20112,20113,7,15,0,0,20113, +20114,7,10,0,0,20114,20115,7,15,0,0,20115,20116,7,6,0,0,20116,20117,7,11, +0,0,20117,20118,7,10,0,0,20118,20119,7,7,0,0,20119,20120,7,6,0,0,20120,20121, +7,9,0,0,20121,2784,1,0,0,0,20122,20123,7,15,0,0,20123,20124,7,10,0,0,20124, +20125,7,15,0,0,20125,20126,7,6,0,0,20126,2786,1,0,0,0,20127,20128,7,15,0, +0,20128,20129,7,10,0,0,20129,20130,7,13,0,0,20130,20131,5,95,0,0,20131,20132, +7,17,0,0,20132,20133,7,1,0,0,20133,2788,1,0,0,0,20134,20135,7,15,0,0,20135, +20136,7,10,0,0,20136,20137,7,13,0,0,20137,20138,7,2,0,0,20138,20139,7,4, +0,0,20139,2790,1,0,0,0,20140,20141,7,15,0,0,20141,20142,7,10,0,0,20142,20143, +7,13,0,0,20143,20144,5,95,0,0,20144,20145,7,5,0,0,20145,20146,7,5,0,0,20146, +20147,7,16,0,0,20147,2792,1,0,0,0,20148,20149,7,15,0,0,20149,20150,7,11, +0,0,20150,20151,7,0,0,0,20151,20152,7,8,0,0,20152,20153,7,6,0,0,20153,20154, +5,95,0,0,20154,20155,7,9,0,0,20155,20156,7,10,0,0,20156,20157,7,5,0,0,20157, +20158,7,4,0,0,20158,20159,7,10,0,0,20159,20160,7,7,0,0,20160,20161,7,8,0, +0,20161,20162,7,4,0,0,20162,2794,1,0,0,0,20163,20164,7,15,0,0,20164,20165, +7,11,0,0,20165,20166,7,0,0,0,20166,20167,7,8,0,0,20167,20168,7,6,0,0,20168, +20169,5,95,0,0,20169,20170,7,17,0,0,20170,20171,7,3,0,0,20171,20172,7,2, +0,0,20172,20173,7,12,0,0,20173,20174,7,15,0,0,20174,20175,5,95,0,0,20175, +20176,7,1,0,0,20176,20177,7,18,0,0,20177,2796,1,0,0,0,20178,20179,7,15,0, +0,20179,20180,7,11,0,0,20180,20181,7,0,0,0,20181,20182,7,7,0,0,20182,2798, +1,0,0,0,20183,20184,7,15,0,0,20184,20185,7,11,0,0,20185,20186,7,5,0,0,20186, +20187,7,8,0,0,20187,20188,7,2,0,0,20188,20189,7,15,0,0,20189,20190,7,6,0, +0,20190,20191,5,95,0,0,20191,20192,7,5,0,0,20192,20193,7,6,0,0,20193,20194, +7,4,0,0,20194,20195,7,4,0,0,20195,20196,7,10,0,0,20196,20197,7,7,0,0,20197, +20198,7,17,0,0,20198,20199,7,5,0,0,20199,2800,1,0,0,0,20200,20201,7,15,0, +0,20201,20202,7,11,0,0,20202,20203,7,5,0,0,20203,20204,5,95,0,0,20204,20205, +7,10,0,0,20205,20206,7,7,0,0,20206,20207,7,4,0,0,20207,20208,7,6,0,0,20208, +20209,7,17,0,0,20209,20210,7,6,0,0,20210,20211,7,3,0,0,20211,2802,1,0,0, +0,20212,20213,7,15,0,0,20213,20214,7,11,0,0,20214,20215,7,5,0,0,20215,20216, +7,24,0,0,20216,20217,7,11,0,0,20217,20218,5,95,0,0,20218,20219,7,8,0,0,20219, +20220,7,8,0,0,20220,20221,7,16,0,0,20221,20222,7,11,0,0,20222,20223,7,0, +0,0,20223,20224,7,17,0,0,20224,20225,7,5,0,0,20225,2804,1,0,0,0,20226,20227, +7,15,0,0,20227,20228,7,11,0,0,20228,20229,7,5,0,0,20229,20230,7,24,0,0,20230, +20231,7,11,0,0,20231,20232,5,95,0,0,20232,20233,7,8,0,0,20233,20234,7,2, +0,0,20234,20235,7,9,0,0,20235,20236,7,6,0,0,20236,20237,5,95,0,0,20237,20238, +7,4,0,0,20238,20239,7,18,0,0,20239,20240,7,15,0,0,20240,20241,7,6,0,0,20241, +2806,1,0,0,0,20242,20243,7,15,0,0,20243,20244,7,11,0,0,20244,20245,7,5,0, +0,20245,20246,7,24,0,0,20246,20247,7,11,0,0,20247,20248,5,95,0,0,20248,20249, +7,9,0,0,20249,20250,7,6,0,0,20250,20251,7,1,0,0,20251,20252,7,12,0,0,20252, +20253,7,17,0,0,20253,2808,1,0,0,0,20254,20255,7,15,0,0,20255,20256,7,11, +0,0,20256,20257,7,5,0,0,20257,20258,7,24,0,0,20258,20259,7,11,0,0,20259, +20260,5,95,0,0,20260,20261,7,2,0,0,20261,20262,7,15,0,0,20262,20263,7,4, +0,0,20263,20264,7,10,0,0,20264,20265,7,14,0,0,20265,20266,7,10,0,0,20266, +20267,7,23,0,0,20267,20268,7,6,0,0,20268,20269,5,95,0,0,20269,20270,7,11, +0,0,20270,20271,7,6,0,0,20271,20272,7,13,0,0,20272,20273,7,6,0,0,20273,20274, +7,11,0,0,20274,2810,1,0,0,0,20275,20276,7,15,0,0,20276,20277,7,11,0,0,20277, +20278,7,5,0,0,20278,20279,7,24,0,0,20279,20280,7,11,0,0,20280,20281,5,95, +0,0,20281,20282,7,22,0,0,20282,20283,7,0,0,0,20283,20284,7,3,0,0,20284,20285, +7,7,0,0,20285,20286,7,10,0,0,20286,20287,7,7,0,0,20287,20288,7,17,0,0,20288, +20289,7,5,0,0,20289,2812,1,0,0,0,20290,20291,7,15,0,0,20291,20292,7,11,0, +0,20292,20293,7,12,0,0,20293,20294,7,17,0,0,20294,20295,7,17,0,0,20295,20296, +7,0,0,0,20296,20297,7,1,0,0,20297,20298,7,11,0,0,20298,20299,7,6,0,0,20299, +2814,1,0,0,0,20300,20301,7,15,0,0,20301,20302,7,14,0,0,20302,20303,7,6,0, +0,20303,20304,7,14,0,0,20304,2816,1,0,0,0,20305,20306,7,15,0,0,20306,20307, +7,2,0,0,20307,20308,7,10,0,0,20308,20309,7,7,0,0,20309,20310,7,4,0,0,20310, +2818,1,0,0,0,20311,20312,7,15,0,0,20312,20313,7,2,0,0,20313,20314,7,11,0, +0,20314,20315,7,10,0,0,20315,20316,7,8,0,0,20316,20317,7,18,0,0,20317,2820, +1,0,0,0,20318,20319,7,15,0,0,20319,20320,7,2,0,0,20320,20321,7,2,0,0,20321, +20322,7,11,0,0,20322,20323,5,95,0,0,20323,20324,5,49,0,0,20324,20325,5,54, +0,0,20325,20326,7,21,0,0,20326,2822,1,0,0,0,20327,20328,7,15,0,0,20328,20329, +7,2,0,0,20329,20330,7,2,0,0,20330,20331,7,11,0,0,20331,20332,5,95,0,0,20332, +20333,5,50,0,0,20333,20334,7,21,0,0,20334,2824,1,0,0,0,20335,20336,7,15, +0,0,20336,20337,7,2,0,0,20337,20338,7,2,0,0,20338,20339,7,11,0,0,20339,20340, +5,95,0,0,20340,20341,5,51,0,0,20341,20342,5,50,0,0,20342,20343,7,21,0,0, +20343,2826,1,0,0,0,20344,20345,7,15,0,0,20345,20346,7,2,0,0,20346,20347, +7,2,0,0,20347,20348,7,11,0,0,20348,20349,5,95,0,0,20349,20350,5,52,0,0,20350, +20351,7,21,0,0,20351,2828,1,0,0,0,20352,20353,7,15,0,0,20353,20354,7,2,0, +0,20354,20355,7,2,0,0,20355,20356,7,11,0,0,20356,20357,5,95,0,0,20357,20358, +5,56,0,0,20358,20359,7,21,0,0,20359,2830,1,0,0,0,20360,20361,7,15,0,0,20361, +20362,7,2,0,0,20362,20363,7,5,0,0,20363,20364,7,10,0,0,20364,20365,7,4,0, +0,20365,20366,7,10,0,0,20366,20367,7,2,0,0,20367,20368,7,7,0,0,20368,2832, +1,0,0,0,20369,20370,7,15,0,0,20370,20371,7,2,0,0,20371,20372,7,5,0,0,20372, +20373,7,10,0,0,20373,20374,7,4,0,0,20374,20375,7,10,0,0,20375,20376,7,13, +0,0,20376,20377,7,6,0,0,20377,20378,7,7,0,0,20378,2834,1,0,0,0,20379,20380, +7,15,0,0,20380,20381,7,2,0,0,20381,20382,7,5,0,0,20382,20383,7,10,0,0,20383, +20384,7,4,0,0,20384,20385,7,10,0,0,20385,20386,7,13,0,0,20386,20387,7,6, +0,0,20387,2836,1,0,0,0,20388,20389,7,15,0,0,20389,20390,7,2,0,0,20390,20391, +7,5,0,0,20391,20392,7,4,0,0,20392,20393,5,95,0,0,20393,20394,7,4,0,0,20394, +20395,7,3,0,0,20395,20396,7,0,0,0,20396,20397,7,7,0,0,20397,20398,7,5,0, +0,20398,20399,7,0,0,0,20399,20400,7,8,0,0,20400,20401,7,4,0,0,20401,20402, +7,10,0,0,20402,20403,7,2,0,0,20403,20404,7,7,0,0,20404,2838,1,0,0,0,20405, +20406,7,15,0,0,20406,20407,7,2,0,0,20407,20408,7,22,0,0,20408,20409,7,6, +0,0,20409,20410,7,3,0,0,20410,20411,7,14,0,0,20411,20412,7,12,0,0,20412, +20413,7,11,0,0,20413,20414,7,4,0,0,20414,20415,7,10,0,0,20415,20416,7,5, +0,0,20416,20417,7,6,0,0,20417,20418,7,4,0,0,20418,20419,5,95,0,0,20419,20420, +7,1,0,0,20420,20421,7,18,0,0,20421,20422,5,95,0,0,20422,20423,7,8,0,0,20423, +20424,7,0,0,0,20424,20425,7,3,0,0,20425,20426,7,9,0,0,20426,20427,7,10,0, +0,20427,20428,7,7,0,0,20428,20429,7,0,0,0,20429,20430,7,11,0,0,20430,20431, +7,10,0,0,20431,20432,7,4,0,0,20432,20433,7,18,0,0,20433,2840,1,0,0,0,20434, +20435,7,15,0,0,20435,20436,7,2,0,0,20436,20437,7,22,0,0,20437,20438,7,6, +0,0,20438,20439,7,3,0,0,20439,20440,7,14,0,0,20440,20441,7,12,0,0,20441, +20442,7,11,0,0,20442,20443,7,4,0,0,20443,20444,7,10,0,0,20444,20445,7,5, +0,0,20445,20446,7,6,0,0,20446,20447,7,4,0,0,20447,2842,1,0,0,0,20448,20449, +7,15,0,0,20449,20450,7,2,0,0,20450,20451,7,22,0,0,20451,20452,7,6,0,0,20452, +20453,7,3,0,0,20453,2844,1,0,0,0,20454,20455,7,15,0,0,20455,20456,7,24,0, +0,20456,20457,5,95,0,0,20457,20458,7,8,0,0,20458,20459,7,2,0,0,20459,20460, +7,7,0,0,20460,20461,7,8,0,0,20461,20462,7,12,0,0,20462,20463,7,3,0,0,20463, +20464,7,3,0,0,20464,20465,7,6,0,0,20465,20466,7,7,0,0,20466,20467,7,4,0, +0,20467,20468,5,95,0,0,20468,20469,7,12,0,0,20469,20470,7,7,0,0,20470,20471, +7,10,0,0,20471,20472,7,2,0,0,20472,20473,7,7,0,0,20473,2846,1,0,0,0,20474, +20475,7,15,0,0,20475,20476,7,24,0,0,20476,20477,5,95,0,0,20477,20478,7,9, +0,0,20478,20479,7,10,0,0,20479,20480,7,5,0,0,20480,20481,7,4,0,0,20481,20482, +7,3,0,0,20482,20483,7,10,0,0,20483,20484,7,1,0,0,20484,20485,7,12,0,0,20485, +20486,7,4,0,0,20486,20487,7,6,0,0,20487,2848,1,0,0,0,20488,20489,7,15,0, +0,20489,20490,7,24,0,0,20490,20491,5,95,0,0,20491,20492,7,9,0,0,20492,20493, +7,10,0,0,20493,20494,7,5,0,0,20494,20495,7,4,0,0,20495,20496,7,3,0,0,20496, +20497,7,10,0,0,20497,20498,7,1,0,0,20498,20499,7,12,0,0,20499,20500,7,4, +0,0,20500,20501,7,6,0,0,20501,20502,5,95,0,0,20502,20503,7,22,0,0,20503, +20504,7,10,0,0,20504,20505,7,7,0,0,20505,20506,7,9,0,0,20506,20507,7,2,0, +0,20507,20508,7,22,0,0,20508,2850,1,0,0,0,20509,20510,7,15,0,0,20510,20511, +7,24,0,0,20511,20512,5,95,0,0,20512,20513,7,16,0,0,20513,20514,7,10,0,0, +20514,20515,7,11,0,0,20515,20516,7,4,0,0,20516,20517,7,6,0,0,20517,20518, +7,3,0,0,20518,2852,1,0,0,0,20519,20520,7,15,0,0,20520,20521,7,24,0,0,20521, +20522,5,95,0,0,20522,20523,7,14,0,0,20523,20524,7,0,0,0,20524,20525,7,15, +0,0,20525,2854,1,0,0,0,20526,20527,7,15,0,0,20527,20528,7,24,0,0,20528,20529, +5,95,0,0,20529,20530,7,7,0,0,20530,20531,7,2,0,0,20531,20532,7,14,0,0,20532, +20533,7,0,0,0,20533,20534,7,15,0,0,20534,2856,1,0,0,0,20535,20536,7,15,0, +0,20536,20537,7,24,0,0,20537,20538,5,95,0,0,20538,20539,7,3,0,0,20539,20540, +7,6,0,0,20540,20541,7,15,0,0,20541,20542,7,11,0,0,20542,20543,7,10,0,0,20543, +20544,7,8,0,0,20544,20545,7,0,0,0,20545,20546,7,4,0,0,20546,20547,7,6,0, +0,20547,2858,1,0,0,0,20548,20549,7,15,0,0,20549,20550,7,24,0,0,20550,20551, +5,95,0,0,20551,20552,7,5,0,0,20552,20553,7,21,0,0,20553,20554,7,6,0,0,20554, +20555,7,22,0,0,20555,2860,1,0,0,0,20556,20557,7,15,0,0,20557,20558,7,3,0, +0,20558,20559,7,0,0,0,20559,20560,7,17,0,0,20560,20561,7,14,0,0,20561,20562, +7,0,0,0,20562,2862,1,0,0,0,20563,20564,7,15,0,0,20564,20565,7,3,0,0,20565, +20566,7,6,0,0,20566,20567,7,1,0,0,20567,20568,7,12,0,0,20568,20569,7,10, +0,0,20569,20570,7,11,0,0,20570,20571,7,4,0,0,20571,2864,1,0,0,0,20572,20573, +7,15,0,0,20573,20574,7,3,0,0,20574,20575,7,6,0,0,20575,20576,7,8,0,0,20576, +20577,7,6,0,0,20577,20578,7,9,0,0,20578,20579,7,6,0,0,20579,20580,7,5,0, +0,20580,2866,1,0,0,0,20581,20582,7,15,0,0,20582,20583,7,3,0,0,20583,20584, +7,6,0,0,20584,20585,7,8,0,0,20585,20586,7,6,0,0,20586,20587,7,9,0,0,20587, +20588,7,10,0,0,20588,20589,7,7,0,0,20589,20590,7,17,0,0,20590,2868,1,0,0, +0,20591,20592,7,15,0,0,20592,20593,7,3,0,0,20593,20594,7,6,0,0,20594,20595, +7,8,0,0,20595,20596,7,10,0,0,20596,20597,7,5,0,0,20597,20598,7,10,0,0,20598, +20599,7,2,0,0,20599,20600,7,7,0,0,20600,2870,1,0,0,0,20601,20602,7,15,0, +0,20602,20603,7,3,0,0,20603,20604,7,6,0,0,20604,20605,7,8,0,0,20605,20606, +7,2,0,0,20606,20607,7,14,0,0,20607,20608,7,15,0,0,20608,20609,7,12,0,0,20609, +20610,7,4,0,0,20610,20611,7,6,0,0,20611,20612,5,95,0,0,20612,20613,7,5,0, +0,20613,20614,7,12,0,0,20614,20615,7,1,0,0,20615,20616,7,24,0,0,20616,20617, +7,12,0,0,20617,20618,7,6,0,0,20618,20619,7,3,0,0,20619,20620,7,18,0,0,20620, +2872,1,0,0,0,20621,20622,7,15,0,0,20622,20623,7,3,0,0,20623,20624,7,6,0, +0,20624,20625,7,9,0,0,20625,20626,7,10,0,0,20626,20627,7,8,0,0,20627,20628, +7,0,0,0,20628,20629,7,4,0,0,20629,20630,7,6,0,0,20630,20631,5,95,0,0,20631, +20632,7,3,0,0,20632,20633,7,6,0,0,20633,20634,7,2,0,0,20634,20635,7,3,0, +0,20635,20636,7,9,0,0,20636,20637,7,6,0,0,20637,20638,7,3,0,0,20638,20639, +7,5,0,0,20639,2874,1,0,0,0,20640,20641,7,15,0,0,20641,20642,7,3,0,0,20642, +20643,7,6,0,0,20643,20644,7,11,0,0,20644,20645,7,2,0,0,20645,20646,7,0,0, +0,20646,20647,7,9,0,0,20647,2876,1,0,0,0,20648,20649,7,15,0,0,20649,20650, +7,3,0,0,20650,20651,7,6,0,0,20651,20652,7,15,0,0,20652,20653,7,0,0,0,20653, +20654,7,3,0,0,20654,20655,7,6,0,0,20655,2878,1,0,0,0,20656,20657,7,15,0, +0,20657,20658,7,3,0,0,20658,20659,7,6,0,0,20659,20660,7,15,0,0,20660,20661, +7,3,0,0,20661,20662,7,2,0,0,20662,20663,7,8,0,0,20663,20664,7,6,0,0,20664, +20665,7,5,0,0,20665,20666,7,5,0,0,20666,20667,7,2,0,0,20667,20668,7,3,0, +0,20668,2880,1,0,0,0,20669,20670,7,15,0,0,20670,20671,7,3,0,0,20671,20672, +7,6,0,0,20672,20673,7,5,0,0,20673,20674,7,6,0,0,20674,20675,7,7,0,0,20675, +20676,7,4,0,0,20676,20677,7,7,0,0,20677,20678,7,7,0,0,20678,20679,7,13,0, +0,20679,2882,1,0,0,0,20680,20681,7,15,0,0,20681,20682,7,3,0,0,20682,20683, +7,6,0,0,20683,20684,7,5,0,0,20684,20685,7,6,0,0,20685,20686,7,7,0,0,20686, +20687,7,4,0,0,20687,2884,1,0,0,0,20688,20689,7,15,0,0,20689,20690,7,3,0, +0,20690,20691,7,6,0,0,20691,20692,7,5,0,0,20692,20693,7,6,0,0,20693,20694, +7,7,0,0,20694,20695,7,4,0,0,20695,20696,7,13,0,0,20696,2886,1,0,0,0,20697, +20698,7,15,0,0,20698,20699,7,3,0,0,20699,20700,7,6,0,0,20700,20701,7,5,0, +0,20701,20702,7,6,0,0,20702,20703,7,3,0,0,20703,20704,7,13,0,0,20704,20705, +7,6,0,0,20705,20706,5,95,0,0,20706,20707,7,2,0,0,20707,20708,7,10,0,0,20708, +20709,7,9,0,0,20709,2888,1,0,0,0,20710,20711,7,15,0,0,20711,20712,7,3,0, +0,20712,20713,7,6,0,0,20713,20714,7,5,0,0,20714,20715,7,6,0,0,20715,20716, +7,3,0,0,20716,20717,7,13,0,0,20717,20718,7,6,0,0,20718,2890,1,0,0,0,20719, +20720,7,15,0,0,20720,20721,7,3,0,0,20721,20722,7,6,0,0,20722,20723,7,4,0, +0,20723,20724,7,4,0,0,20724,20725,7,18,0,0,20725,2892,1,0,0,0,20726,20727, +7,15,0,0,20727,20728,7,3,0,0,20728,20729,7,6,0,0,20729,20730,7,13,0,0,20730, +20731,7,10,0,0,20731,20732,7,2,0,0,20732,20733,7,12,0,0,20733,20734,7,5, +0,0,20734,2894,1,0,0,0,20735,20736,7,15,0,0,20736,20737,7,3,0,0,20737,20738, +7,6,0,0,20738,20739,7,13,0,0,20739,2896,1,0,0,0,20740,20741,7,15,0,0,20741, +20742,7,3,0,0,20742,20743,7,10,0,0,20743,20744,7,14,0,0,20744,20745,7,0, +0,0,20745,20746,7,3,0,0,20746,20747,7,18,0,0,20747,2898,1,0,0,0,20748,20749, +7,15,0,0,20749,20750,7,3,0,0,20750,20751,7,10,0,0,20751,20752,7,7,0,0,20752, +20753,7,4,0,0,20753,20754,7,1,0,0,20754,20755,7,11,0,0,20755,20756,7,2,0, +0,20756,20757,7,1,0,0,20757,20758,7,4,0,0,20758,20759,7,2,0,0,20759,20760, +7,8,0,0,20760,20761,7,11,0,0,20761,20762,7,2,0,0,20762,20763,7,1,0,0,20763, +2900,1,0,0,0,20764,20765,7,15,0,0,20765,20766,7,3,0,0,20766,20767,7,10,0, +0,20767,20768,7,2,0,0,20768,20769,7,3,0,0,20769,20770,7,10,0,0,20770,20771, +7,4,0,0,20771,20772,7,18,0,0,20772,2902,1,0,0,0,20773,20774,7,15,0,0,20774, +20775,7,3,0,0,20775,20776,7,10,0,0,20776,20777,7,2,0,0,20777,20778,7,3,0, +0,20778,2904,1,0,0,0,20779,20780,7,15,0,0,20780,20781,7,3,0,0,20781,20782, +7,10,0,0,20782,20783,7,13,0,0,20783,20784,7,0,0,0,20784,20785,7,4,0,0,20785, +20786,7,6,0,0,20786,2906,1,0,0,0,20787,20788,7,15,0,0,20788,20789,7,3,0, +0,20789,20790,7,10,0,0,20790,20791,7,13,0,0,20791,20792,7,0,0,0,20792,20793, +7,4,0,0,20793,20794,7,6,0,0,20794,20795,5,95,0,0,20795,20796,7,5,0,0,20796, +20797,7,17,0,0,20797,20798,7,0,0,0,20798,2908,1,0,0,0,20799,20800,7,15,0, +0,20800,20801,7,3,0,0,20801,20802,7,10,0,0,20802,20803,7,13,0,0,20803,20804, +7,10,0,0,20804,20805,7,11,0,0,20805,20806,7,6,0,0,20806,20807,7,17,0,0,20807, +20808,7,6,0,0,20808,20809,7,9,0,0,20809,2910,1,0,0,0,20810,20811,7,15,0, +0,20811,20812,7,3,0,0,20812,20813,7,10,0,0,20813,20814,7,13,0,0,20814,20815, +7,10,0,0,20815,20816,7,11,0,0,20816,20817,7,6,0,0,20817,20818,7,17,0,0,20818, +20819,7,6,0,0,20819,2912,1,0,0,0,20820,20821,7,15,0,0,20821,20822,7,3,0, +0,20822,20823,7,10,0,0,20823,20824,7,13,0,0,20824,20825,7,10,0,0,20825,20826, +7,11,0,0,20826,20827,7,6,0,0,20827,20828,7,17,0,0,20828,20829,7,6,0,0,20829, +20830,7,5,0,0,20830,2914,1,0,0,0,20831,20832,7,15,0,0,20832,20833,7,3,0, +0,20833,20834,7,2,0,0,20834,20835,7,8,0,0,20835,20836,7,6,0,0,20836,20837, +7,9,0,0,20837,20838,7,12,0,0,20838,20839,7,3,0,0,20839,20840,7,0,0,0,20840, +20841,7,11,0,0,20841,2916,1,0,0,0,20842,20843,7,15,0,0,20843,20844,7,3,0, +0,20844,20845,7,2,0,0,20845,20846,7,8,0,0,20846,20847,7,6,0,0,20847,20848, +7,9,0,0,20848,20849,7,12,0,0,20849,20850,7,3,0,0,20850,20851,7,6,0,0,20851, +2918,1,0,0,0,20852,20853,7,15,0,0,20853,20854,7,3,0,0,20854,20855,7,2,0, +0,20855,20856,7,8,0,0,20856,20857,7,6,0,0,20857,20858,7,5,0,0,20858,20859, +7,5,0,0,20859,2920,1,0,0,0,20860,20861,7,15,0,0,20861,20862,7,3,0,0,20862, +20863,7,2,0,0,20863,20864,7,16,0,0,20864,20865,7,10,0,0,20865,20866,7,11, +0,0,20866,20867,7,6,0,0,20867,2922,1,0,0,0,20868,20869,7,15,0,0,20869,20870, +7,3,0,0,20870,20871,7,2,0,0,20871,20872,7,17,0,0,20872,20873,7,3,0,0,20873, +20874,7,0,0,0,20874,20875,7,14,0,0,20875,2924,1,0,0,0,20876,20877,7,15,0, +0,20877,20878,7,3,0,0,20878,20879,7,2,0,0,20879,20880,7,20,0,0,20880,20881, +7,6,0,0,20881,20882,7,8,0,0,20882,20883,7,4,0,0,20883,2926,1,0,0,0,20884, +20885,7,15,0,0,20885,20886,7,3,0,0,20886,20887,7,2,0,0,20887,20888,7,15, +0,0,20888,20889,7,0,0,0,20889,20890,7,17,0,0,20890,20891,7,0,0,0,20891,20892, +7,4,0,0,20892,20893,7,6,0,0,20893,2928,1,0,0,0,20894,20895,7,15,0,0,20895, +20896,7,3,0,0,20896,20897,7,2,0,0,20897,20898,7,15,0,0,20898,20899,7,6,0, +0,20899,20900,7,3,0,0,20900,20901,7,4,0,0,20901,20902,7,18,0,0,20902,2930, +1,0,0,0,20903,20904,7,15,0,0,20904,20905,7,3,0,0,20905,20906,7,2,0,0,20906, +20907,7,4,0,0,20907,20908,7,6,0,0,20908,20909,7,8,0,0,20909,20910,7,4,0, +0,20910,20911,7,6,0,0,20911,20912,7,9,0,0,20912,2932,1,0,0,0,20913,20914, +7,15,0,0,20914,20915,7,3,0,0,20915,20916,7,2,0,0,20916,20917,7,4,0,0,20917, +20918,7,6,0,0,20918,20919,7,8,0,0,20919,20920,7,4,0,0,20920,20921,7,10,0, +0,20921,20922,7,2,0,0,20922,20923,7,7,0,0,20923,2934,1,0,0,0,20924,20925, +7,15,0,0,20925,20926,7,3,0,0,20926,20927,7,2,0,0,20927,20928,7,4,0,0,20928, +20929,7,2,0,0,20929,20930,7,8,0,0,20930,20931,7,2,0,0,20931,20932,7,11,0, +0,20932,2936,1,0,0,0,20933,20934,7,15,0,0,20934,20935,7,3,0,0,20935,20936, +7,2,0,0,20936,20937,7,25,0,0,20937,20938,7,18,0,0,20938,2938,1,0,0,0,20939, +20940,7,15,0,0,20940,20941,7,3,0,0,20941,20942,7,12,0,0,20942,20943,7,7, +0,0,20943,20944,7,10,0,0,20944,20945,7,7,0,0,20945,20946,7,17,0,0,20946, +2940,1,0,0,0,20947,20948,7,15,0,0,20948,20949,7,12,0,0,20949,20950,7,1,0, +0,20950,20951,7,11,0,0,20951,20952,7,10,0,0,20952,20953,7,8,0,0,20953,2942, +1,0,0,0,20954,20955,7,15,0,0,20955,20956,7,12,0,0,20956,20957,7,11,0,0,20957, +20958,7,11,0,0,20958,20959,5,95,0,0,20959,20960,7,15,0,0,20960,20961,7,3, +0,0,20961,20962,7,6,0,0,20962,20963,7,9,0,0,20963,2944,1,0,0,0,20964,20965, +7,15,0,0,20965,20966,7,12,0,0,20966,20967,7,3,0,0,20967,20968,7,17,0,0,20968, +20969,7,6,0,0,20969,2946,1,0,0,0,20970,20971,7,15,0,0,20971,20972,7,12,0, +0,20972,20973,7,5,0,0,20973,20974,7,19,0,0,20974,20975,5,95,0,0,20975,20976, +7,15,0,0,20976,20977,7,3,0,0,20977,20978,7,6,0,0,20978,20979,7,9,0,0,20979, +2948,1,0,0,0,20980,20981,7,15,0,0,20981,20982,7,12,0,0,20982,20983,7,5,0, +0,20983,20984,7,19,0,0,20984,20985,5,95,0,0,20985,20986,7,5,0,0,20986,20987, +7,12,0,0,20987,20988,7,1,0,0,20988,20989,7,24,0,0,20989,2950,1,0,0,0,20990, +20991,7,15,0,0,20991,20992,7,25,0,0,20992,20993,5,95,0,0,20993,20994,7,16, +0,0,20994,20995,7,0,0,0,20995,20996,7,12,0,0,20996,20997,7,11,0,0,20997, +20998,7,4,0,0,20998,20999,5,95,0,0,20999,21000,7,4,0,0,21000,21001,7,2,0, +0,21001,21002,7,11,0,0,21002,21003,7,6,0,0,21003,21004,7,3,0,0,21004,21005, +7,0,0,0,21005,21006,7,7,0,0,21006,21007,7,8,0,0,21007,21008,7,6,0,0,21008, +2952,1,0,0,0,21009,21010,7,15,0,0,21010,21011,7,25,0,0,21011,21012,5,95, +0,0,21012,21013,7,17,0,0,21013,21014,7,3,0,0,21014,21015,7,0,0,0,21015,21016, +7,7,0,0,21016,21017,7,12,0,0,21017,21018,7,11,0,0,21018,21019,7,6,0,0,21019, +2954,1,0,0,0,21020,21021,7,15,0,0,21021,21022,7,25,0,0,21022,21023,5,95, +0,0,21023,21024,7,20,0,0,21024,21025,7,2,0,0,21025,21026,7,10,0,0,21026, +21027,7,7,0,0,21027,21028,5,95,0,0,21028,21029,7,16,0,0,21029,21030,7,10, +0,0,21030,21031,7,11,0,0,21031,21032,7,4,0,0,21032,21033,7,6,0,0,21033,21034, +7,3,0,0,21034,2956,1,0,0,0,21035,21036,7,24,0,0,21036,21037,7,1,0,0,21037, +21038,5,95,0,0,21038,21039,7,7,0,0,21039,21040,7,0,0,0,21040,21041,7,14, +0,0,21041,21042,7,6,0,0,21042,2958,1,0,0,0,21043,21044,7,24,0,0,21044,21045, +7,12,0,0,21045,21046,7,0,0,0,21046,21047,7,3,0,0,21047,21048,7,4,0,0,21048, +21049,7,6,0,0,21049,21050,7,3,0,0,21050,21051,7,5,0,0,21051,2960,1,0,0,0, +21052,21053,7,24,0,0,21053,21054,7,12,0,0,21054,21055,7,6,0,0,21055,21056, +7,3,0,0,21056,21057,7,18,0,0,21057,21058,5,95,0,0,21058,21059,7,1,0,0,21059, +21060,7,11,0,0,21060,21061,7,2,0,0,21061,21062,7,8,0,0,21062,21063,7,21, +0,0,21063,2962,1,0,0,0,21064,21065,7,24,0,0,21065,21066,7,12,0,0,21066,21067, +7,6,0,0,21067,21068,7,3,0,0,21068,21069,7,18,0,0,21069,2964,1,0,0,0,21070, +21071,7,24,0,0,21071,21072,7,12,0,0,21072,21073,7,6,0,0,21073,21074,7,12, +0,0,21074,21075,7,6,0,0,21075,21076,5,95,0,0,21076,21077,7,8,0,0,21077,21078, +7,12,0,0,21078,21079,7,3,0,0,21079,21080,7,3,0,0,21080,2966,1,0,0,0,21081, +21082,7,24,0,0,21082,21083,7,12,0,0,21083,21084,7,6,0,0,21084,21085,7,12, +0,0,21085,21086,7,6,0,0,21086,2968,1,0,0,0,21087,21088,7,24,0,0,21088,21089, +7,12,0,0,21089,21090,7,6,0,0,21090,21091,7,12,0,0,21091,21092,7,6,0,0,21092, +21093,5,95,0,0,21093,21094,7,3,0,0,21094,21095,7,2,0,0,21095,21096,7,22, +0,0,21096,21097,7,15,0,0,21097,2970,1,0,0,0,21098,21099,7,24,0,0,21099,21100, +7,12,0,0,21100,21101,7,10,0,0,21101,21102,7,6,0,0,21102,21103,7,5,0,0,21103, +21104,7,8,0,0,21104,21105,7,6,0,0,21105,2972,1,0,0,0,21106,21107,7,24,0, +0,21107,21108,7,12,0,0,21108,21109,7,2,0,0,21109,21110,7,3,0,0,21110,21111, +7,12,0,0,21111,21112,7,14,0,0,21112,2974,1,0,0,0,21113,21114,7,24,0,0,21114, +21115,7,12,0,0,21115,21116,7,2,0,0,21116,21117,7,4,0,0,21117,21118,7,0,0, +0,21118,2976,1,0,0,0,21119,21120,7,24,0,0,21120,21121,7,12,0,0,21121,21122, +7,2,0,0,21122,21123,7,4,0,0,21123,21124,7,0,0,0,21124,21125,7,17,0,0,21125, +21126,7,3,0,0,21126,21127,7,2,0,0,21127,21128,7,12,0,0,21128,21129,7,15, +0,0,21129,2978,1,0,0,0,21130,21131,7,3,0,0,21131,21132,7,0,0,0,21132,21133, +7,10,0,0,21133,21134,7,5,0,0,21134,21135,7,6,0,0,21135,2980,1,0,0,0,21136, +21137,7,3,0,0,21137,21138,7,0,0,0,21138,21139,7,7,0,0,21139,21140,7,9,0, +0,21140,21141,7,2,0,0,21141,21142,7,14,0,0,21142,21143,5,95,0,0,21143,21144, +7,11,0,0,21144,21145,7,2,0,0,21145,21146,7,8,0,0,21146,21147,7,0,0,0,21147, +21148,7,11,0,0,21148,2982,1,0,0,0,21149,21150,7,3,0,0,21150,21151,7,0,0, +0,21151,21152,7,7,0,0,21152,21153,7,9,0,0,21153,21154,7,2,0,0,21154,21155, +7,14,0,0,21155,2984,1,0,0,0,21156,21157,7,3,0,0,21157,21158,7,0,0,0,21158, +21159,7,7,0,0,21159,21160,7,17,0,0,21160,21161,7,6,0,0,21161,2986,1,0,0, +0,21162,21163,7,3,0,0,21163,21164,7,0,0,0,21164,21165,7,7,0,0,21165,21166, +7,21,0,0,21166,21167,7,14,0,0,21167,2988,1,0,0,0,21168,21169,7,3,0,0,21169, +21170,7,0,0,0,21170,21171,7,15,0,0,21171,21172,7,10,0,0,21172,21173,7,9, +0,0,21173,21174,7,11,0,0,21174,21175,7,18,0,0,21175,2990,1,0,0,0,21176,21177, +7,3,0,0,21177,21178,7,0,0,0,21178,21179,7,22,0,0,21179,2992,1,0,0,0,21180, +21181,7,3,0,0,21181,21182,7,0,0,0,21182,21183,7,22,0,0,21183,21184,7,4,0, +0,21184,21185,7,2,0,0,21185,21186,7,19,0,0,21186,21187,7,6,0,0,21187,21188, +7,25,0,0,21188,2994,1,0,0,0,21189,21190,7,3,0,0,21190,21191,7,0,0,0,21191, +21192,7,22,0,0,21192,21193,7,4,0,0,21193,21194,7,2,0,0,21194,21195,7,7,0, +0,21195,21196,7,19,0,0,21196,21197,7,6,0,0,21197,21198,7,25,0,0,21198,2996, +1,0,0,0,21199,21200,7,3,0,0,21200,21201,7,1,0,0,21201,21202,7,0,0,0,21202, +2998,1,0,0,0,21203,21204,7,3,0,0,21204,21205,7,1,0,0,21205,21206,7,2,0,0, +21206,21207,5,95,0,0,21207,21208,7,2,0,0,21208,21209,7,12,0,0,21209,21210, +7,4,0,0,21210,21211,7,11,0,0,21211,21212,7,10,0,0,21212,21213,7,7,0,0,21213, +21214,7,6,0,0,21214,3000,1,0,0,0,21215,21216,7,3,0,0,21216,21217,7,8,0,0, +21217,21218,7,16,0,0,21218,21219,7,10,0,0,21219,21220,7,11,0,0,21220,21221, +7,6,0,0,21221,3002,1,0,0,0,21222,21223,7,3,0,0,21223,21224,7,9,0,0,21224, +21225,7,1,0,0,21225,21226,7,0,0,0,21226,3004,1,0,0,0,21227,21228,7,3,0,0, +21228,21229,7,6,0,0,21229,21230,7,0,0,0,21230,21231,7,9,0,0,21231,3006,1, +0,0,0,21232,21233,7,3,0,0,21233,21234,7,6,0,0,21234,21235,7,0,0,0,21235, +21236,7,9,0,0,21236,21237,7,5,0,0,21237,3008,1,0,0,0,21238,21239,7,3,0,0, +21239,21240,7,6,0,0,21240,21241,7,0,0,0,21241,21242,7,9,0,0,21242,21243, +7,5,0,0,21243,21244,7,10,0,0,21244,21245,7,23,0,0,21245,21246,7,6,0,0,21246, +3010,1,0,0,0,21247,21248,7,3,0,0,21248,21249,7,6,0,0,21249,21250,7,0,0,0, +21250,21251,7,11,0,0,21251,21252,7,14,0,0,21252,3012,1,0,0,0,21253,21254, +7,3,0,0,21254,21255,7,6,0,0,21255,21256,7,0,0,0,21256,21257,7,11,0,0,21257, +3014,1,0,0,0,21258,21259,7,3,0,0,21259,21260,7,6,0,0,21260,21261,7,1,0,0, +21261,21262,7,0,0,0,21262,21263,7,11,0,0,21263,21264,7,0,0,0,21264,21265, +7,7,0,0,21265,21266,7,8,0,0,21266,21267,7,6,0,0,21267,3016,1,0,0,0,21268, +21269,7,3,0,0,21269,21270,7,6,0,0,21270,21271,7,1,0,0,21271,21272,7,12,0, +0,21272,21273,7,10,0,0,21273,21274,7,11,0,0,21274,21275,7,9,0,0,21275,3018, +1,0,0,0,21276,21277,7,3,0,0,21277,21278,7,6,0,0,21278,21279,7,8,0,0,21279, +21280,7,2,0,0,21280,21281,7,3,0,0,21281,21282,7,9,0,0,21282,3020,1,0,0,0, +21283,21284,7,3,0,0,21284,21285,7,6,0,0,21285,21286,7,8,0,0,21286,21287, +7,2,0,0,21287,21288,7,3,0,0,21288,21289,7,9,0,0,21289,21290,7,5,0,0,21290, +3022,1,0,0,0,21291,21292,7,3,0,0,21292,21293,7,6,0,0,21293,21294,7,8,0,0, +21294,21295,7,2,0,0,21295,21296,7,3,0,0,21296,21297,7,9,0,0,21297,21298, +7,5,0,0,21298,21299,5,95,0,0,21299,21300,7,15,0,0,21300,21301,7,6,0,0,21301, +21302,7,3,0,0,21302,21303,5,95,0,0,21303,21304,7,1,0,0,21304,21305,7,11, +0,0,21305,21306,7,2,0,0,21306,21307,7,8,0,0,21307,21308,7,21,0,0,21308,3024, +1,0,0,0,21309,21310,7,3,0,0,21310,21311,7,6,0,0,21311,21312,7,8,0,0,21312, +21313,7,2,0,0,21313,21314,7,13,0,0,21314,21315,7,6,0,0,21315,21316,7,3,0, +0,21316,21317,7,0,0,0,21317,21318,7,1,0,0,21318,21319,7,11,0,0,21319,21320, +7,6,0,0,21320,3026,1,0,0,0,21321,21322,7,3,0,0,21322,21323,7,6,0,0,21323, +21324,7,8,0,0,21324,21325,7,2,0,0,21325,21326,7,13,0,0,21326,21327,7,6,0, +0,21327,21328,7,3,0,0,21328,3028,1,0,0,0,21329,21330,7,3,0,0,21330,21331, +7,6,0,0,21331,21332,7,8,0,0,21332,21333,7,2,0,0,21333,21334,7,13,0,0,21334, +21335,7,6,0,0,21335,21336,7,3,0,0,21336,21337,7,18,0,0,21337,3030,1,0,0, +0,21338,21339,7,3,0,0,21339,21340,7,6,0,0,21340,21341,7,8,0,0,21341,21342, +7,18,0,0,21342,21343,7,8,0,0,21343,21344,7,11,0,0,21344,21345,7,6,0,0,21345, +21346,7,1,0,0,21346,21347,7,10,0,0,21347,21348,7,7,0,0,21348,3032,1,0,0, +0,21349,21350,7,3,0,0,21350,21351,7,6,0,0,21351,21352,7,8,0,0,21352,21353, +7,18,0,0,21353,21354,7,8,0,0,21354,21355,7,11,0,0,21355,21356,7,6,0,0,21356, +3034,1,0,0,0,21357,21358,7,3,0,0,21358,21359,7,6,0,0,21359,21360,7,9,0,0, +21360,21361,7,0,0,0,21361,21362,7,8,0,0,21362,21363,7,4,0,0,21363,21364, +7,10,0,0,21364,21365,7,2,0,0,21365,21366,7,7,0,0,21366,3036,1,0,0,0,21367, +21368,7,3,0,0,21368,21369,7,6,0,0,21369,21370,7,9,0,0,21370,21371,7,6,0, +0,21371,21372,7,16,0,0,21372,21373,7,10,0,0,21373,21374,7,7,0,0,21374,21375, +7,6,0,0,21375,3038,1,0,0,0,21376,21377,7,3,0,0,21377,21378,7,6,0,0,21378, +21379,7,9,0,0,21379,21380,7,2,0,0,21380,3040,1,0,0,0,21381,21382,7,3,0,0, +21382,21383,7,6,0,0,21383,21384,7,9,0,0,21384,21385,7,12,0,0,21385,21386, +7,8,0,0,21386,21387,7,6,0,0,21387,21388,7,9,0,0,21388,3042,1,0,0,0,21389, +21390,7,3,0,0,21390,21391,7,6,0,0,21391,21392,7,9,0,0,21392,21393,7,12,0, +0,21393,21394,7,7,0,0,21394,21395,7,9,0,0,21395,21396,7,0,0,0,21396,21397, +7,7,0,0,21397,21398,7,8,0,0,21398,21399,7,18,0,0,21399,3044,1,0,0,0,21400, +21401,7,3,0,0,21401,21402,7,6,0,0,21402,21403,7,16,0,0,21403,21404,5,95, +0,0,21404,21405,7,8,0,0,21405,21406,7,0,0,0,21406,21407,7,5,0,0,21407,21408, +7,8,0,0,21408,21409,7,0,0,0,21409,21410,7,9,0,0,21410,21411,7,6,0,0,21411, +21412,5,95,0,0,21412,21413,7,8,0,0,21413,21414,7,12,0,0,21414,21415,7,3, +0,0,21415,21416,7,5,0,0,21416,21417,7,2,0,0,21417,21418,7,3,0,0,21418,3046, +1,0,0,0,21419,21420,7,3,0,0,21420,21421,7,6,0,0,21421,21422,7,16,0,0,21422, +21423,7,6,0,0,21423,21424,7,3,0,0,21424,21425,7,6,0,0,21425,21426,7,7,0, +0,21426,21427,7,8,0,0,21427,21428,7,6,0,0,21428,21429,7,9,0,0,21429,3048, +1,0,0,0,21430,21431,7,3,0,0,21431,21432,7,6,0,0,21432,21433,7,16,0,0,21433, +21434,7,6,0,0,21434,21435,7,3,0,0,21435,21436,7,6,0,0,21436,21437,7,7,0, +0,21437,21438,7,8,0,0,21438,21439,7,6,0,0,21439,3050,1,0,0,0,21440,21441, +7,3,0,0,21441,21442,7,6,0,0,21442,21443,7,16,0,0,21443,21444,7,6,0,0,21444, +21445,7,3,0,0,21445,21446,7,6,0,0,21446,21447,7,7,0,0,21447,21448,7,8,0, +0,21448,21449,7,6,0,0,21449,21450,7,5,0,0,21450,3052,1,0,0,0,21451,21452, +7,3,0,0,21452,21453,7,6,0,0,21453,21454,7,16,0,0,21454,21455,7,6,0,0,21455, +21456,7,3,0,0,21456,21457,7,6,0,0,21457,21458,7,7,0,0,21458,21459,7,8,0, +0,21459,21460,7,10,0,0,21460,21461,7,7,0,0,21461,21462,7,17,0,0,21462,3054, +1,0,0,0,21463,21464,7,3,0,0,21464,21465,7,6,0,0,21465,21466,7,16,0,0,21466, +3056,1,0,0,0,21467,21468,7,3,0,0,21468,21469,7,6,0,0,21469,21470,7,16,0, +0,21470,21471,7,3,0,0,21471,21472,7,6,0,0,21472,21473,7,5,0,0,21473,21474, +7,19,0,0,21474,3058,1,0,0,0,21475,21476,7,3,0,0,21476,21477,7,6,0,0,21477, +21478,7,16,0,0,21478,21479,7,4,0,0,21479,21480,7,2,0,0,21480,21481,7,19, +0,0,21481,21482,7,6,0,0,21482,21483,7,25,0,0,21483,3060,1,0,0,0,21484,21485, +7,3,0,0,21485,21486,7,6,0,0,21486,21487,7,17,0,0,21487,21488,7,6,0,0,21488, +21489,7,25,0,0,21489,21490,7,15,0,0,21490,21491,5,95,0,0,21491,21492,7,8, +0,0,21492,21493,7,2,0,0,21493,21494,7,12,0,0,21494,21495,7,7,0,0,21495,21496, +7,4,0,0,21496,3062,1,0,0,0,21497,21498,7,3,0,0,21498,21499,7,6,0,0,21499, +21500,7,17,0,0,21500,21501,7,6,0,0,21501,21502,7,25,0,0,21502,21503,7,15, +0,0,21503,21504,5,95,0,0,21504,21505,7,10,0,0,21505,21506,7,7,0,0,21506, +21507,7,5,0,0,21507,21508,7,4,0,0,21508,21509,7,3,0,0,21509,3064,1,0,0,0, +21510,21511,7,3,0,0,21511,21512,7,6,0,0,21512,21513,7,17,0,0,21513,21514, +7,6,0,0,21514,21515,7,25,0,0,21515,21516,7,15,0,0,21516,21517,5,95,0,0,21517, +21518,7,11,0,0,21518,21519,7,10,0,0,21519,21520,7,21,0,0,21520,21521,7,6, +0,0,21521,3066,1,0,0,0,21522,21523,7,3,0,0,21523,21524,7,6,0,0,21524,21525, +7,17,0,0,21525,21526,7,6,0,0,21526,21527,7,25,0,0,21527,21528,7,15,0,0,21528, +21529,5,95,0,0,21529,21530,7,3,0,0,21530,21531,7,6,0,0,21531,21532,7,15, +0,0,21532,21533,7,11,0,0,21533,21534,7,0,0,0,21534,21535,7,8,0,0,21535,21536, +7,6,0,0,21536,3068,1,0,0,0,21537,21538,7,3,0,0,21538,21539,7,6,0,0,21539, +21540,7,17,0,0,21540,21541,7,6,0,0,21541,21542,7,25,0,0,21542,21543,7,15, +0,0,21543,21544,5,95,0,0,21544,21545,7,5,0,0,21545,21546,7,12,0,0,21546, +21547,7,1,0,0,21547,21548,7,5,0,0,21548,21549,7,4,0,0,21549,21550,7,3,0, +0,21550,3070,1,0,0,0,21551,21552,7,3,0,0,21552,21553,7,6,0,0,21553,21554, +7,17,0,0,21554,21555,7,10,0,0,21555,21556,7,5,0,0,21556,21557,7,4,0,0,21557, +21558,7,6,0,0,21558,21559,7,3,0,0,21559,3072,1,0,0,0,21560,21561,7,3,0,0, +21561,21562,7,6,0,0,21562,21563,7,17,0,0,21563,21564,7,3,0,0,21564,21565, +5,95,0,0,21565,21566,7,0,0,0,21566,21567,7,13,0,0,21567,21568,7,17,0,0,21568, +21569,7,25,0,0,21569,3074,1,0,0,0,21570,21571,7,3,0,0,21571,21572,7,6,0, +0,21572,21573,7,17,0,0,21573,21574,7,3,0,0,21574,21575,5,95,0,0,21575,21576, +7,0,0,0,21576,21577,7,13,0,0,21577,21578,7,17,0,0,21578,21579,7,18,0,0,21579, +3076,1,0,0,0,21580,21581,7,3,0,0,21581,21582,7,6,0,0,21582,21583,7,17,0, +0,21583,21584,7,3,0,0,21584,21585,5,95,0,0,21585,21586,7,8,0,0,21586,21587, +7,2,0,0,21587,21588,7,12,0,0,21588,21589,7,7,0,0,21589,21590,7,4,0,0,21590, +3078,1,0,0,0,21591,21592,7,3,0,0,21592,21593,7,6,0,0,21593,21594,7,17,0, +0,21594,21595,7,3,0,0,21595,21596,5,95,0,0,21596,21597,7,10,0,0,21597,21598, +7,7,0,0,21598,21599,7,4,0,0,21599,21600,7,6,0,0,21600,21601,7,3,0,0,21601, +21602,7,8,0,0,21602,21603,7,6,0,0,21603,21604,7,15,0,0,21604,21605,7,4,0, +0,21605,3080,1,0,0,0,21606,21607,7,3,0,0,21607,21608,7,6,0,0,21608,21609, +7,17,0,0,21609,21610,7,3,0,0,21610,21611,5,95,0,0,21611,21612,7,3,0,0,21612, +21613,5,50,0,0,21613,3082,1,0,0,0,21614,21615,7,3,0,0,21615,21616,7,6,0, +0,21616,21617,7,17,0,0,21617,21618,7,3,0,0,21618,21619,5,95,0,0,21619,21620, +7,5,0,0,21620,21621,7,11,0,0,21621,21622,7,2,0,0,21622,21623,7,15,0,0,21623, +21624,7,6,0,0,21624,3084,1,0,0,0,21625,21626,7,3,0,0,21626,21627,7,6,0,0, +21627,21628,7,17,0,0,21628,21629,7,3,0,0,21629,21630,5,95,0,0,21630,21631, +7,5,0,0,21631,21632,7,25,0,0,21632,21633,7,25,0,0,21633,3086,1,0,0,0,21634, +21635,7,3,0,0,21635,21636,7,6,0,0,21636,21637,7,17,0,0,21637,21638,7,3,0, +0,21638,21639,5,95,0,0,21639,21640,7,5,0,0,21640,21641,7,25,0,0,21641,21642, +7,18,0,0,21642,3088,1,0,0,0,21643,21644,7,3,0,0,21644,21645,7,6,0,0,21645, +21646,7,17,0,0,21646,21647,7,3,0,0,21647,21648,5,95,0,0,21648,21649,7,5, +0,0,21649,21650,7,18,0,0,21650,21651,7,18,0,0,21651,3090,1,0,0,0,21652,21653, +7,3,0,0,21653,21654,7,6,0,0,21654,21655,7,17,0,0,21655,21656,7,12,0,0,21656, +21657,7,11,0,0,21657,21658,7,0,0,0,21658,21659,7,3,0,0,21659,3092,1,0,0, +0,21660,21661,7,3,0,0,21661,21662,7,6,0,0,21662,21663,7,20,0,0,21663,21664, +7,6,0,0,21664,21665,7,8,0,0,21665,21666,7,4,0,0,21666,3094,1,0,0,0,21667, +21668,7,3,0,0,21668,21669,7,6,0,0,21669,21670,7,21,0,0,21670,21671,7,6,0, +0,21671,21672,7,18,0,0,21672,3096,1,0,0,0,21673,21674,7,3,0,0,21674,21675, +7,6,0,0,21675,21676,7,11,0,0,21676,21677,7,0,0,0,21677,21678,7,4,0,0,21678, +21679,7,10,0,0,21679,21680,7,2,0,0,21680,21681,7,7,0,0,21681,21682,7,0,0, +0,21682,21683,7,11,0,0,21683,3098,1,0,0,0,21684,21685,7,3,0,0,21685,21686, +7,6,0,0,21686,21687,7,11,0,0,21687,21688,7,10,0,0,21688,21689,7,6,0,0,21689, +21690,7,5,0,0,21690,21691,5,95,0,0,21691,21692,7,2,0,0,21692,21693,7,7,0, +0,21693,3100,1,0,0,0,21694,21695,7,3,0,0,21695,21696,7,6,0,0,21696,21697, +7,11,0,0,21697,21698,7,2,0,0,21698,21699,7,8,0,0,21699,21700,7,0,0,0,21700, +21701,7,4,0,0,21701,21702,7,6,0,0,21702,3102,1,0,0,0,21703,21704,7,3,0,0, +21704,21705,7,6,0,0,21705,21706,7,11,0,0,21706,21707,7,18,0,0,21707,3104, +1,0,0,0,21708,21709,7,3,0,0,21709,21710,7,6,0,0,21710,21711,7,14,0,0,21711, +21712,7,0,0,0,21712,21713,7,10,0,0,21713,21714,7,7,0,0,21714,21715,7,9,0, +0,21715,21716,7,6,0,0,21716,21717,7,3,0,0,21717,3106,1,0,0,0,21718,21719, +7,3,0,0,21719,21720,7,6,0,0,21720,21721,7,14,0,0,21721,21722,7,2,0,0,21722, +21723,7,4,0,0,21723,21724,7,6,0,0,21724,3108,1,0,0,0,21725,21726,7,3,0,0, +21726,21727,7,6,0,0,21727,21728,7,14,0,0,21728,21729,7,2,0,0,21729,21730, +7,4,0,0,21730,21731,7,6,0,0,21731,21732,5,95,0,0,21732,21733,7,14,0,0,21733, +21734,7,0,0,0,21734,21735,7,15,0,0,21735,21736,7,15,0,0,21736,21737,7,6, +0,0,21737,21738,7,9,0,0,21738,3110,1,0,0,0,21739,21740,7,3,0,0,21740,21741, +7,6,0,0,21741,21742,7,14,0,0,21742,21743,7,2,0,0,21743,21744,7,13,0,0,21744, +21745,7,6,0,0,21745,3112,1,0,0,0,21746,21747,7,3,0,0,21747,21748,7,6,0,0, +21748,21749,7,7,0,0,21749,21750,7,0,0,0,21750,21751,7,14,0,0,21751,21752, +7,6,0,0,21752,3114,1,0,0,0,21753,21754,7,3,0,0,21754,21755,7,6,0,0,21755, +21756,7,15,0,0,21756,21757,7,0,0,0,21757,21758,7,10,0,0,21758,21759,7,3, +0,0,21759,3116,1,0,0,0,21760,21761,7,3,0,0,21761,21762,7,6,0,0,21762,21763, +7,15,0,0,21763,21764,7,6,0,0,21764,21765,7,0,0,0,21765,21766,7,4,0,0,21766, +3118,1,0,0,0,21767,21768,7,3,0,0,21768,21769,7,6,0,0,21769,21770,7,15,0, +0,21770,21771,7,11,0,0,21771,21772,7,0,0,0,21772,21773,7,8,0,0,21773,21774, +7,6,0,0,21774,3120,1,0,0,0,21775,21776,7,3,0,0,21776,21777,7,6,0,0,21777, +21778,7,15,0,0,21778,21779,7,11,0,0,21779,21780,7,10,0,0,21780,21781,7,8, +0,0,21781,21782,7,0,0,0,21782,21783,7,4,0,0,21783,21784,7,10,0,0,21784,21785, +7,2,0,0,21785,21786,7,7,0,0,21786,3122,1,0,0,0,21787,21788,7,3,0,0,21788, +21789,7,6,0,0,21789,21790,7,24,0,0,21790,21791,7,12,0,0,21791,21792,7,10, +0,0,21792,21793,7,3,0,0,21793,21794,7,6,0,0,21794,21795,7,9,0,0,21795,3124, +1,0,0,0,21796,21797,7,3,0,0,21797,21798,7,6,0,0,21798,21799,7,5,0,0,21799, +21800,7,6,0,0,21800,21801,7,4,0,0,21801,21802,7,11,0,0,21802,21803,7,2,0, +0,21803,21804,7,17,0,0,21804,21805,7,5,0,0,21805,3126,1,0,0,0,21806,21807, +7,3,0,0,21807,21808,7,6,0,0,21808,21809,7,5,0,0,21809,21810,7,6,0,0,21810, +21811,7,4,0,0,21811,3128,1,0,0,0,21812,21813,7,3,0,0,21813,21814,7,6,0,0, +21814,21815,7,5,0,0,21815,21816,7,10,0,0,21816,21817,7,23,0,0,21817,21818, +7,6,0,0,21818,3130,1,0,0,0,21819,21820,7,3,0,0,21820,21821,7,6,0,0,21821, +21822,7,5,0,0,21822,21823,7,2,0,0,21823,21824,7,11,0,0,21824,21825,7,13, +0,0,21825,21826,7,6,0,0,21826,3132,1,0,0,0,21827,21828,7,3,0,0,21828,21829, +7,6,0,0,21829,21830,7,5,0,0,21830,21831,7,2,0,0,21831,21832,7,11,0,0,21832, +21833,7,13,0,0,21833,21834,7,6,0,0,21834,21835,7,3,0,0,21835,3134,1,0,0, +0,21836,21837,7,3,0,0,21837,21838,7,6,0,0,21838,21839,7,5,0,0,21839,21840, +7,2,0,0,21840,21841,7,12,0,0,21841,21842,7,3,0,0,21842,21843,7,8,0,0,21843, +21844,7,6,0,0,21844,3136,1,0,0,0,21845,21846,7,3,0,0,21846,21847,7,6,0,0, +21847,21848,7,5,0,0,21848,21849,7,15,0,0,21849,21850,7,6,0,0,21850,21851, +7,8,0,0,21851,21852,7,4,0,0,21852,3138,1,0,0,0,21853,21854,7,3,0,0,21854, +21855,7,6,0,0,21855,21856,7,5,0,0,21856,21857,7,4,0,0,21857,21858,7,0,0, +0,21858,21859,7,3,0,0,21859,21860,7,4,0,0,21860,3140,1,0,0,0,21861,21862, +7,3,0,0,21862,21863,7,6,0,0,21863,21864,7,5,0,0,21864,21865,7,4,0,0,21865, +21866,7,2,0,0,21866,21867,7,3,0,0,21867,21868,7,6,0,0,21868,21869,5,95,0, +0,21869,21870,7,0,0,0,21870,21871,7,5,0,0,21871,21872,5,95,0,0,21872,21873, +7,10,0,0,21873,21874,7,7,0,0,21874,21875,7,4,0,0,21875,21876,7,6,0,0,21876, +21877,7,3,0,0,21877,21878,7,13,0,0,21878,21879,7,0,0,0,21879,21880,7,11, +0,0,21880,21881,7,5,0,0,21881,3142,1,0,0,0,21882,21883,7,3,0,0,21883,21884, +7,6,0,0,21884,21885,7,5,0,0,21885,21886,7,4,0,0,21886,21887,7,2,0,0,21887, +21888,7,3,0,0,21888,21889,7,6,0,0,21889,3144,1,0,0,0,21890,21891,7,3,0,0, +21891,21892,7,6,0,0,21892,21893,7,5,0,0,21893,21894,7,4,0,0,21894,21895, +7,3,0,0,21895,21896,7,10,0,0,21896,21897,7,8,0,0,21897,21898,7,4,0,0,21898, +21899,5,95,0,0,21899,21900,7,0,0,0,21900,21901,7,11,0,0,21901,21902,7,11, +0,0,21902,21903,5,95,0,0,21903,21904,7,3,0,0,21904,21905,7,6,0,0,21905,21906, +7,16,0,0,21906,21907,5,95,0,0,21907,21908,7,8,0,0,21908,21909,7,2,0,0,21909, +21910,7,7,0,0,21910,21911,7,5,0,0,21911,3146,1,0,0,0,21912,21913,7,3,0,0, +21913,21914,7,6,0,0,21914,21915,7,5,0,0,21915,21916,7,4,0,0,21916,21917, +7,3,0,0,21917,21918,7,10,0,0,21918,21919,7,8,0,0,21919,21920,7,4,0,0,21920, +21921,7,6,0,0,21921,21922,7,9,0,0,21922,3148,1,0,0,0,21923,21924,7,3,0,0, +21924,21925,7,6,0,0,21925,21926,7,5,0,0,21926,21927,7,4,0,0,21927,21928, +7,3,0,0,21928,21929,7,10,0,0,21929,21930,7,8,0,0,21930,21931,7,4,0,0,21931, +21932,5,95,0,0,21932,21933,7,3,0,0,21933,21934,7,6,0,0,21934,21935,7,16, +0,0,21935,21936,7,6,0,0,21936,21937,7,3,0,0,21937,21938,7,6,0,0,21938,21939, +7,7,0,0,21939,21940,7,8,0,0,21940,21941,7,6,0,0,21941,21942,7,5,0,0,21942, +3150,1,0,0,0,21943,21944,7,3,0,0,21944,21945,7,6,0,0,21945,21946,7,5,0,0, +21946,21947,7,4,0,0,21947,21948,7,3,0,0,21948,21949,7,10,0,0,21949,21950, +7,8,0,0,21950,21951,7,4,0,0,21951,3152,1,0,0,0,21952,21953,7,3,0,0,21953, +21954,7,6,0,0,21954,21955,7,5,0,0,21955,21956,7,12,0,0,21956,21957,7,11, +0,0,21957,21958,7,4,0,0,21958,21959,5,95,0,0,21959,21960,7,8,0,0,21960,21961, +7,0,0,0,21961,21962,7,8,0,0,21962,21963,7,19,0,0,21963,21964,7,6,0,0,21964, +3154,1,0,0,0,21965,21966,7,3,0,0,21966,21967,7,6,0,0,21967,21968,7,5,0,0, +21968,21969,7,12,0,0,21969,21970,7,11,0,0,21970,21971,7,4,0,0,21971,3156, +1,0,0,0,21972,21973,7,3,0,0,21973,21974,7,6,0,0,21974,21975,7,5,0,0,21975, +21976,7,12,0,0,21976,21977,7,14,0,0,21977,21978,7,0,0,0,21978,21979,7,1, +0,0,21979,21980,7,11,0,0,21980,21981,7,6,0,0,21981,3158,1,0,0,0,21982,21983, +7,3,0,0,21983,21984,7,6,0,0,21984,21985,7,5,0,0,21985,21986,7,12,0,0,21986, +21987,7,14,0,0,21987,21988,7,6,0,0,21988,3160,1,0,0,0,21989,21990,7,3,0, +0,21990,21991,7,6,0,0,21991,21992,7,4,0,0,21992,21993,7,6,0,0,21993,21994, +7,7,0,0,21994,21995,7,4,0,0,21995,21996,7,10,0,0,21996,21997,7,2,0,0,21997, +21998,7,7,0,0,21998,3162,1,0,0,0,21999,22000,7,3,0,0,22000,22001,7,6,0,0, +22001,22002,7,4,0,0,22002,22003,7,3,0,0,22003,22004,7,18,0,0,22004,22005, +5,95,0,0,22005,22006,7,2,0,0,22006,22007,7,7,0,0,22007,22008,5,95,0,0,22008, +22009,7,3,0,0,22009,22010,7,2,0,0,22010,22011,7,22,0,0,22011,22012,5,95, +0,0,22012,22013,7,8,0,0,22013,22014,7,19,0,0,22014,22015,7,0,0,0,22015,22016, +7,7,0,0,22016,22017,7,17,0,0,22017,22018,7,6,0,0,22018,3164,1,0,0,0,22019, +22020,7,3,0,0,22020,22021,7,6,0,0,22021,22022,7,4,0,0,22022,22023,7,12,0, +0,22023,22024,7,3,0,0,22024,22025,7,7,0,0,22025,22026,7,10,0,0,22026,22027, +7,7,0,0,22027,22028,7,17,0,0,22028,3166,1,0,0,0,22029,22030,7,3,0,0,22030, +22031,7,6,0,0,22031,22032,7,4,0,0,22032,22033,7,12,0,0,22033,22034,7,3,0, +0,22034,22035,7,7,0,0,22035,3168,1,0,0,0,22036,22037,7,3,0,0,22037,22038, +7,6,0,0,22038,22039,7,12,0,0,22039,22040,7,5,0,0,22040,22041,7,6,0,0,22041, +3170,1,0,0,0,22042,22043,7,3,0,0,22043,22044,7,6,0,0,22044,22045,7,13,0, +0,22045,22046,7,6,0,0,22046,22047,7,3,0,0,22047,22048,7,5,0,0,22048,22049, +7,6,0,0,22049,3172,1,0,0,0,22050,22051,7,3,0,0,22051,22052,7,6,0,0,22052, +22053,7,13,0,0,22053,22054,7,2,0,0,22054,22055,7,21,0,0,22055,22056,7,6, +0,0,22056,3174,1,0,0,0,22057,22058,7,3,0,0,22058,22059,7,6,0,0,22059,22060, +7,22,0,0,22060,22061,7,3,0,0,22061,22062,7,10,0,0,22062,22063,7,4,0,0,22063, +22064,7,6,0,0,22064,22065,5,95,0,0,22065,22066,7,2,0,0,22066,22067,7,3,0, +0,22067,22068,5,95,0,0,22068,22069,7,6,0,0,22069,22070,7,3,0,0,22070,22071, +7,3,0,0,22071,22072,7,2,0,0,22072,22073,7,3,0,0,22073,3176,1,0,0,0,22074, +22075,7,3,0,0,22075,22076,7,6,0,0,22076,22077,7,22,0,0,22077,22078,7,3,0, +0,22078,22079,7,10,0,0,22079,22080,7,4,0,0,22080,22081,7,6,0,0,22081,3178, +1,0,0,0,22082,22083,7,3,0,0,22083,22084,7,10,0,0,22084,22085,7,17,0,0,22085, +22086,7,19,0,0,22086,22087,7,4,0,0,22087,3180,1,0,0,0,22088,22089,7,3,0, +0,22089,22090,7,2,0,0,22090,22091,7,11,0,0,22091,22092,7,6,0,0,22092,3182, +1,0,0,0,22093,22094,7,3,0,0,22094,22095,7,2,0,0,22095,22096,7,11,0,0,22096, +22097,7,6,0,0,22097,22098,7,5,0,0,22098,22099,7,6,0,0,22099,22100,7,4,0, +0,22100,3184,1,0,0,0,22101,22102,7,3,0,0,22102,22103,7,2,0,0,22103,22104, +7,11,0,0,22104,22105,7,6,0,0,22105,22106,7,5,0,0,22106,3186,1,0,0,0,22107, +22108,7,3,0,0,22108,22109,7,2,0,0,22109,22110,7,11,0,0,22110,22111,7,11, +0,0,22111,22112,7,1,0,0,22112,22113,7,0,0,0,22113,22114,7,8,0,0,22114,22115, +7,21,0,0,22115,3188,1,0,0,0,22116,22117,7,3,0,0,22117,22118,7,2,0,0,22118, +22119,7,11,0,0,22119,22120,7,11,0,0,22120,22121,7,10,0,0,22121,22122,7,7, +0,0,22122,22123,7,17,0,0,22123,3190,1,0,0,0,22124,22125,7,3,0,0,22125,22126, +7,2,0,0,22126,22127,7,11,0,0,22127,22128,7,11,0,0,22128,22129,7,12,0,0,22129, +22130,7,15,0,0,22130,3192,1,0,0,0,22131,22132,7,3,0,0,22132,22133,7,2,0, +0,22133,22134,7,22,0,0,22134,22135,7,9,0,0,22135,22136,7,6,0,0,22136,22137, +7,15,0,0,22137,22138,7,6,0,0,22138,22139,7,7,0,0,22139,22140,7,9,0,0,22140, +22141,7,6,0,0,22141,22142,7,7,0,0,22142,22143,7,8,0,0,22143,22144,7,10,0, +0,22144,22145,7,6,0,0,22145,22146,7,5,0,0,22146,3194,1,0,0,0,22147,22148, +7,3,0,0,22148,22149,7,2,0,0,22149,22150,7,22,0,0,22150,22151,7,10,0,0,22151, +22152,7,9,0,0,22152,22153,5,95,0,0,22153,22154,7,14,0,0,22154,22155,7,0, +0,0,22155,22156,7,15,0,0,22156,22157,7,15,0,0,22157,22158,7,10,0,0,22158, +22159,7,7,0,0,22159,22160,7,17,0,0,22160,22161,5,95,0,0,22161,22162,7,4, +0,0,22162,22163,7,0,0,0,22163,22164,7,1,0,0,22164,22165,7,11,0,0,22165,22166, +7,6,0,0,22166,3196,1,0,0,0,22167,22168,7,3,0,0,22168,22169,7,2,0,0,22169, +22170,7,22,0,0,22170,22171,7,10,0,0,22171,22172,7,9,0,0,22172,3198,1,0,0, +0,22173,22174,7,3,0,0,22174,22175,7,2,0,0,22175,22176,7,22,0,0,22176,22177, +7,10,0,0,22177,22178,7,9,0,0,22178,22179,7,4,0,0,22179,22180,7,2,0,0,22180, +22181,7,8,0,0,22181,22182,7,19,0,0,22182,22183,7,0,0,0,22183,22184,7,3,0, +0,22184,3200,1,0,0,0,22185,22186,7,3,0,0,22186,22187,7,2,0,0,22187,22188, +7,22,0,0,22188,22189,7,10,0,0,22189,22190,7,9,0,0,22190,22191,7,4,0,0,22191, +22192,7,2,0,0,22192,22193,7,7,0,0,22193,22194,7,8,0,0,22194,22195,7,19,0, +0,22195,22196,7,0,0,0,22196,22197,7,3,0,0,22197,3202,1,0,0,0,22198,22199, +7,3,0,0,22199,22200,7,2,0,0,22200,22201,7,22,0,0,22201,22202,5,95,0,0,22202, +22203,7,11,0,0,22203,22204,7,6,0,0,22204,22205,7,7,0,0,22205,22206,7,17, +0,0,22206,22207,7,4,0,0,22207,22208,7,19,0,0,22208,3204,1,0,0,0,22209,22210, +7,3,0,0,22210,22211,7,2,0,0,22211,22212,7,22,0,0,22212,22213,7,7,0,0,22213, +22214,7,12,0,0,22214,22215,7,14,0,0,22215,3206,1,0,0,0,22216,22217,7,3,0, +0,22217,22218,7,2,0,0,22218,22219,7,22,0,0,22219,3208,1,0,0,0,22220,22221, +7,3,0,0,22221,22222,7,2,0,0,22222,22223,7,22,0,0,22223,22224,7,5,0,0,22224, +3210,1,0,0,0,22225,22226,7,3,0,0,22226,22227,7,15,0,0,22227,22228,7,0,0, +0,22228,22229,7,9,0,0,22229,3212,1,0,0,0,22230,22231,7,3,0,0,22231,22232, +7,4,0,0,22232,22233,7,3,0,0,22233,22234,7,10,0,0,22234,22235,7,14,0,0,22235, +3214,1,0,0,0,22236,22237,7,3,0,0,22237,22238,7,12,0,0,22238,22239,7,11,0, +0,22239,22240,7,6,0,0,22240,3216,1,0,0,0,22241,22242,7,3,0,0,22242,22243, +7,12,0,0,22243,22244,7,11,0,0,22244,22245,7,6,0,0,22245,22246,7,5,0,0,22246, +3218,1,0,0,0,22247,22248,7,3,0,0,22248,22249,7,12,0,0,22249,22250,7,7,0, +0,22250,22251,7,7,0,0,22251,22252,7,10,0,0,22252,22253,7,7,0,0,22253,22254, +7,17,0,0,22254,3220,1,0,0,0,22255,22256,7,5,0,0,22256,22257,7,0,0,0,22257, +22258,7,11,0,0,22258,22259,7,4,0,0,22259,3222,1,0,0,0,22260,22261,7,5,0, +0,22261,22262,7,0,0,0,22262,22263,7,14,0,0,22263,22264,7,15,0,0,22264,22265, +7,11,0,0,22265,22266,7,6,0,0,22266,3224,1,0,0,0,22267,22268,7,5,0,0,22268, +22269,7,0,0,0,22269,22270,7,13,0,0,22270,22271,7,6,0,0,22271,22272,5,95, +0,0,22272,22273,7,0,0,0,22273,22274,7,5,0,0,22274,22275,5,95,0,0,22275,22276, +7,10,0,0,22276,22277,7,7,0,0,22277,22278,7,4,0,0,22278,22279,7,6,0,0,22279, +22280,7,3,0,0,22280,22281,7,13,0,0,22281,22282,7,0,0,0,22282,22283,7,11, +0,0,22283,22284,7,5,0,0,22284,3226,1,0,0,0,22285,22286,7,5,0,0,22286,22287, +7,0,0,0,22287,22288,7,13,0,0,22288,22289,7,6,0,0,22289,22290,7,15,0,0,22290, +22291,7,2,0,0,22291,22292,7,10,0,0,22292,22293,7,7,0,0,22293,22294,7,4,0, +0,22294,3228,1,0,0,0,22295,22296,7,5,0,0,22296,22297,7,0,0,0,22297,22298, +7,13,0,0,22298,22299,7,6,0,0,22299,3230,1,0,0,0,22300,22301,7,5,0,0,22301, +22302,7,1,0,0,22302,22303,5,52,0,0,22303,3232,1,0,0,0,22304,22305,7,5,0, +0,22305,22306,7,8,0,0,22306,22307,7,0,0,0,22307,22308,7,11,0,0,22308,22309, +7,6,0,0,22309,22310,5,95,0,0,22310,22311,7,3,0,0,22311,22312,7,2,0,0,22312, +22313,7,22,0,0,22313,22314,7,5,0,0,22314,3234,1,0,0,0,22315,22316,7,5,0, +0,22316,22317,7,8,0,0,22317,22318,7,0,0,0,22318,22319,7,11,0,0,22319,22320, +7,6,0,0,22320,3236,1,0,0,0,22321,22322,7,5,0,0,22322,22323,7,8,0,0,22323, +22324,7,0,0,0,22324,22325,7,7,0,0,22325,22326,5,95,0,0,22326,22327,7,10, +0,0,22327,22328,7,7,0,0,22328,22329,7,5,0,0,22329,22330,7,4,0,0,22330,22331, +7,0,0,0,22331,22332,7,7,0,0,22332,22333,7,8,0,0,22333,22334,7,6,0,0,22334, +22335,7,5,0,0,22335,3238,1,0,0,0,22336,22337,7,5,0,0,22337,22338,7,8,0,0, +22338,22339,7,0,0,0,22339,22340,7,7,0,0,22340,3240,1,0,0,0,22341,22342,7, +5,0,0,22342,22343,7,8,0,0,22343,22344,7,19,0,0,22344,22345,7,6,0,0,22345, +22346,7,9,0,0,22346,22347,7,12,0,0,22347,22348,7,11,0,0,22348,22349,7,6, +0,0,22349,22350,7,3,0,0,22350,3242,1,0,0,0,22351,22352,7,5,0,0,22352,22353, +7,8,0,0,22353,22354,7,19,0,0,22354,22355,7,6,0,0,22355,22356,7,14,0,0,22356, +22357,7,0,0,0,22357,22358,7,8,0,0,22358,22359,7,19,0,0,22359,22360,7,6,0, +0,22360,22361,7,8,0,0,22361,22362,7,21,0,0,22362,3244,1,0,0,0,22363,22364, +7,5,0,0,22364,22365,7,8,0,0,22365,22366,7,19,0,0,22366,22367,7,6,0,0,22367, +22368,7,14,0,0,22368,22369,7,0,0,0,22369,3246,1,0,0,0,22370,22371,7,5,0, +0,22371,22372,7,8,0,0,22372,22373,7,7,0,0,22373,22374,5,95,0,0,22374,22375, +7,0,0,0,22375,22376,7,5,0,0,22376,22377,7,8,0,0,22377,22378,7,6,0,0,22378, +22379,7,7,0,0,22379,22380,7,9,0,0,22380,22381,7,10,0,0,22381,22382,7,7,0, +0,22382,22383,7,17,0,0,22383,3248,1,0,0,0,22384,22385,7,5,0,0,22385,22386, +7,8,0,0,22386,22387,7,7,0,0,22387,3250,1,0,0,0,22388,22389,7,5,0,0,22389, +22390,7,8,0,0,22390,22391,7,2,0,0,22391,22392,7,15,0,0,22392,22393,7,6,0, +0,22393,3252,1,0,0,0,22394,22395,7,5,0,0,22395,22396,7,8,0,0,22396,22397, +7,3,0,0,22397,22398,7,12,0,0,22398,22399,7,1,0,0,22399,3254,1,0,0,0,22400, +22401,7,5,0,0,22401,22402,7,9,0,0,22402,22403,5,95,0,0,22403,22404,7,0,0, +0,22404,22405,7,11,0,0,22405,22406,7,11,0,0,22406,3256,1,0,0,0,22407,22408, +7,5,0,0,22408,22409,7,9,0,0,22409,22410,5,95,0,0,22410,22411,7,10,0,0,22411, +22412,7,7,0,0,22412,22413,7,19,0,0,22413,22414,7,10,0,0,22414,22415,7,1, +0,0,22415,22416,7,10,0,0,22416,22417,7,4,0,0,22417,3258,1,0,0,0,22418,22419, +7,5,0,0,22419,22420,7,9,0,0,22420,22421,7,2,0,0,22421,22422,5,95,0,0,22422, +22423,7,17,0,0,22423,22424,7,6,0,0,22424,22425,7,2,0,0,22425,22426,7,14, +0,0,22426,22427,5,95,0,0,22427,22428,7,14,0,0,22428,22429,7,1,0,0,22429, +22430,7,3,0,0,22430,3260,1,0,0,0,22431,22432,7,5,0,0,22432,22433,7,9,0,0, +22433,22434,7,2,0,0,22434,22435,5,95,0,0,22435,22436,7,17,0,0,22436,22437, +7,6,0,0,22437,22438,7,2,0,0,22438,22439,7,14,0,0,22439,22440,7,6,0,0,22440, +22441,7,4,0,0,22441,22442,7,3,0,0,22442,22443,7,18,0,0,22443,3262,1,0,0, +0,22444,22445,7,5,0,0,22445,22446,7,9,0,0,22446,22447,5,95,0,0,22447,22448, +7,5,0,0,22448,22449,7,19,0,0,22449,22450,7,2,0,0,22450,22451,7,22,0,0,22451, +3264,1,0,0,0,22452,22453,7,5,0,0,22453,22454,7,6,0,0,22454,22455,7,0,0,0, +22455,22456,7,3,0,0,22456,22457,7,8,0,0,22457,22458,7,19,0,0,22458,3266, +1,0,0,0,22459,22460,7,5,0,0,22460,22461,7,6,0,0,22461,22462,7,8,0,0,22462, +22463,7,2,0,0,22463,22464,7,7,0,0,22464,22465,7,9,0,0,22465,3268,1,0,0,0, +22466,22467,7,5,0,0,22467,22468,7,6,0,0,22468,22469,7,8,0,0,22469,22470, +7,2,0,0,22470,22471,7,7,0,0,22471,22472,7,9,0,0,22472,22473,7,5,0,0,22473, +3270,1,0,0,0,22474,22475,7,5,0,0,22475,22476,7,6,0,0,22476,22477,7,8,0,0, +22477,22478,7,3,0,0,22478,22479,7,6,0,0,22479,22480,7,4,0,0,22480,3272,1, +0,0,0,22481,22482,7,5,0,0,22482,22483,7,6,0,0,22483,22484,7,8,0,0,22484, +22485,7,12,0,0,22485,22486,7,3,0,0,22486,22487,7,6,0,0,22487,22488,7,16, +0,0,22488,22489,7,10,0,0,22489,22490,7,11,0,0,22490,22491,7,6,0,0,22491, +22492,5,95,0,0,22492,22493,7,9,0,0,22493,22494,7,1,0,0,22494,22495,7,0,0, +0,22495,3274,1,0,0,0,22496,22497,7,5,0,0,22497,22498,7,6,0,0,22498,22499, +7,8,0,0,22499,22500,7,12,0,0,22500,22501,7,3,0,0,22501,22502,7,6,0,0,22502, +22503,7,16,0,0,22503,22504,7,10,0,0,22504,22505,7,11,0,0,22505,22506,7,6, +0,0,22506,3276,1,0,0,0,22507,22508,7,5,0,0,22508,22509,7,6,0,0,22509,22510, +7,8,0,0,22510,22511,7,12,0,0,22511,22512,7,3,0,0,22512,22513,7,10,0,0,22513, +22514,7,4,0,0,22514,22515,7,18,0,0,22515,3278,1,0,0,0,22516,22517,7,5,0, +0,22517,22518,7,6,0,0,22518,22519,7,6,0,0,22519,22520,7,9,0,0,22520,3280, +1,0,0,0,22521,22522,7,5,0,0,22522,22523,7,6,0,0,22523,22524,7,17,0,0,22524, +22525,5,95,0,0,22525,22526,7,1,0,0,22526,22527,7,11,0,0,22527,22528,7,2, +0,0,22528,22529,7,8,0,0,22529,22530,7,21,0,0,22530,3282,1,0,0,0,22531,22532, +7,5,0,0,22532,22533,7,6,0,0,22533,22534,7,17,0,0,22534,22535,5,95,0,0,22535, +22536,7,16,0,0,22536,22537,7,10,0,0,22537,22538,7,11,0,0,22538,22539,7,6, +0,0,22539,3284,1,0,0,0,22540,22541,7,5,0,0,22541,22542,7,6,0,0,22542,22543, +7,17,0,0,22543,22544,7,14,0,0,22544,22545,7,6,0,0,22545,22546,7,7,0,0,22546, +22547,7,4,0,0,22547,3286,1,0,0,0,22548,22549,7,5,0,0,22549,22550,7,6,0,0, +22550,22551,7,11,0,0,22551,22552,7,6,0,0,22552,22553,7,8,0,0,22553,22554, +7,4,0,0,22554,22555,7,10,0,0,22555,22556,7,13,0,0,22556,22557,7,10,0,0,22557, +22558,7,4,0,0,22558,22559,7,18,0,0,22559,3288,1,0,0,0,22560,22561,7,5,0, +0,22561,22562,7,6,0,0,22562,22563,7,11,0,0,22563,22564,7,6,0,0,22564,22565, +7,8,0,0,22565,22566,7,4,0,0,22566,3290,1,0,0,0,22567,22568,7,5,0,0,22568, +22569,7,6,0,0,22569,22570,7,11,0,0,22570,22571,7,16,0,0,22571,3292,1,0,0, +0,22572,22573,7,5,0,0,22573,22574,7,6,0,0,22574,22575,7,14,0,0,22575,22576, +7,10,0,0,22576,22577,7,20,0,0,22577,22578,7,2,0,0,22578,22579,7,10,0,0,22579, +22580,7,7,0,0,22580,22581,5,95,0,0,22581,22582,7,9,0,0,22582,22583,7,3,0, +0,22583,22584,7,10,0,0,22584,22585,7,13,0,0,22585,22586,7,6,0,0,22586,22587, +7,3,0,0,22587,3294,1,0,0,0,22588,22589,7,5,0,0,22589,22590,7,6,0,0,22590, +22591,7,14,0,0,22591,22592,7,10,0,0,22592,22593,7,20,0,0,22593,22594,7,2, +0,0,22594,22595,7,10,0,0,22595,22596,7,7,0,0,22596,3296,1,0,0,0,22597,22598, +7,5,0,0,22598,22599,7,6,0,0,22599,22600,7,14,0,0,22600,22601,7,10,0,0,22601, +22602,5,95,0,0,22602,22603,7,4,0,0,22603,22604,7,2,0,0,22604,22605,5,95, +0,0,22605,22606,7,10,0,0,22606,22607,7,7,0,0,22607,22608,7,7,0,0,22608,22609, +7,6,0,0,22609,22610,7,3,0,0,22610,3298,1,0,0,0,22611,22612,7,5,0,0,22612, +22613,7,6,0,0,22613,22614,7,24,0,0,22614,22615,7,12,0,0,22615,22616,7,6, +0,0,22616,22617,7,7,0,0,22617,22618,7,8,0,0,22618,22619,7,6,0,0,22619,22620, +7,9,0,0,22620,3300,1,0,0,0,22621,22622,7,5,0,0,22622,22623,7,6,0,0,22623, +22624,7,24,0,0,22624,22625,7,12,0,0,22625,22626,7,6,0,0,22626,22627,7,7, +0,0,22627,22628,7,8,0,0,22628,22629,7,6,0,0,22629,3302,1,0,0,0,22630,22631, +7,5,0,0,22631,22632,7,6,0,0,22632,22633,7,24,0,0,22633,22634,7,12,0,0,22634, +22635,7,6,0,0,22635,22636,7,7,0,0,22636,22637,7,8,0,0,22637,22638,7,6,0, +0,22638,22639,7,16,0,0,22639,22640,7,10,0,0,22640,22641,7,11,0,0,22641,22642, +7,6,0,0,22642,3304,1,0,0,0,22643,22644,7,5,0,0,22644,22645,7,6,0,0,22645, +22646,7,24,0,0,22646,22647,7,12,0,0,22647,22648,7,6,0,0,22648,22649,7,7, +0,0,22649,22650,7,4,0,0,22650,22651,7,10,0,0,22651,22652,7,0,0,0,22652,22653, +7,11,0,0,22653,3306,1,0,0,0,22654,22655,7,5,0,0,22655,22656,7,6,0,0,22656, +22657,7,24,0,0,22657,3308,1,0,0,0,22658,22659,7,5,0,0,22659,22660,7,6,0, +0,22660,22661,7,3,0,0,22661,22662,7,9,0,0,22662,22663,7,6,0,0,22663,3310, +1,0,0,0,22664,22665,7,5,0,0,22665,22666,7,6,0,0,22666,22667,7,3,0,0,22667, +22668,7,9,0,0,22668,22669,7,6,0,0,22669,22670,7,15,0,0,22670,22671,7,3,0, +0,22671,22672,7,2,0,0,22672,22673,7,15,0,0,22673,22674,7,6,0,0,22674,22675, +7,3,0,0,22675,22676,7,4,0,0,22676,22677,7,10,0,0,22677,22678,7,6,0,0,22678, +22679,7,5,0,0,22679,3312,1,0,0,0,22680,22681,7,5,0,0,22681,22682,7,6,0,0, +22682,22683,7,3,0,0,22683,22684,7,10,0,0,22684,22685,7,0,0,0,22685,22686, +7,11,0,0,22686,22687,7,10,0,0,22687,22688,7,23,0,0,22688,22689,7,0,0,0,22689, +22690,7,1,0,0,22690,22691,7,11,0,0,22691,22692,7,6,0,0,22692,3314,1,0,0, +0,22693,22694,7,5,0,0,22694,22695,7,6,0,0,22695,22696,7,3,0,0,22696,22697, +7,10,0,0,22697,22698,7,0,0,0,22698,22699,7,11,0,0,22699,22700,7,11,0,0,22700, +22701,7,18,0,0,22701,22702,5,95,0,0,22702,22703,7,3,0,0,22703,22704,7,6, +0,0,22704,22705,7,12,0,0,22705,22706,7,5,0,0,22706,22707,7,0,0,0,22707,22708, +7,1,0,0,22708,22709,7,11,0,0,22709,22710,7,6,0,0,22710,3316,1,0,0,0,22711, +22712,7,5,0,0,22712,22713,7,6,0,0,22713,22714,7,3,0,0,22714,22715,7,10,0, +0,22715,22716,7,0,0,0,22716,22717,7,11,0,0,22717,3318,1,0,0,0,22718,22719, +7,5,0,0,22719,22720,7,6,0,0,22720,22721,7,3,0,0,22721,22722,7,13,0,0,22722, +22723,7,6,0,0,22723,22724,7,3,0,0,22724,22725,7,6,0,0,22725,22726,7,3,0, +0,22726,22727,7,3,0,0,22727,22728,7,2,0,0,22728,22729,7,3,0,0,22729,3320, +1,0,0,0,22730,22731,7,5,0,0,22731,22732,7,6,0,0,22732,22733,7,3,0,0,22733, +22734,7,13,0,0,22734,22735,7,10,0,0,22735,22736,7,8,0,0,22736,22737,7,6, +0,0,22737,22738,5,95,0,0,22738,22739,7,7,0,0,22739,22740,7,0,0,0,22740,22741, +7,14,0,0,22741,22742,7,6,0,0,22742,22743,5,95,0,0,22743,22744,7,8,0,0,22744, +22745,7,2,0,0,22745,22746,7,7,0,0,22746,22747,7,13,0,0,22747,22748,7,6,0, +0,22748,22749,7,3,0,0,22749,22750,7,4,0,0,22750,3322,1,0,0,0,22751,22752, +7,5,0,0,22752,22753,7,6,0,0,22753,22754,7,3,0,0,22754,22755,7,13,0,0,22755, +22756,7,10,0,0,22756,22757,7,8,0,0,22757,22758,7,6,0,0,22758,3324,1,0,0, +0,22759,22760,7,5,0,0,22760,22761,7,6,0,0,22761,22762,7,3,0,0,22762,22763, +7,13,0,0,22763,22764,7,10,0,0,22764,22765,7,8,0,0,22765,22766,7,6,0,0,22766, +22767,7,5,0,0,22767,3326,1,0,0,0,22768,22769,7,5,0,0,22769,22770,7,6,0,0, +22770,22771,7,5,0,0,22771,22772,7,5,0,0,22772,22773,7,10,0,0,22773,22774, +7,2,0,0,22774,22775,7,7,0,0,22775,22776,5,95,0,0,22776,22777,7,8,0,0,22777, +22778,7,0,0,0,22778,22779,7,8,0,0,22779,22780,7,19,0,0,22780,22781,7,6,0, +0,22781,22782,7,9,0,0,22782,22783,5,95,0,0,22783,22784,7,8,0,0,22784,22785, +7,12,0,0,22785,22786,7,3,0,0,22786,22787,7,5,0,0,22787,22788,7,2,0,0,22788, +22789,7,3,0,0,22789,22790,7,5,0,0,22790,3328,1,0,0,0,22791,22792,7,5,0,0, +22792,22793,7,6,0,0,22793,22794,7,5,0,0,22794,22795,7,5,0,0,22795,22796, +7,10,0,0,22796,22797,7,2,0,0,22797,22798,7,7,0,0,22798,3330,1,0,0,0,22799, +22800,7,5,0,0,22800,22801,7,6,0,0,22801,22802,7,5,0,0,22802,22803,7,5,0, +0,22803,22804,7,10,0,0,22804,22805,7,2,0,0,22805,22806,7,7,0,0,22806,22807, +7,5,0,0,22807,22808,5,95,0,0,22808,22809,7,15,0,0,22809,22810,7,6,0,0,22810, +22811,7,3,0,0,22811,22812,5,95,0,0,22812,22813,7,12,0,0,22813,22814,7,5, +0,0,22814,22815,7,6,0,0,22815,22816,7,3,0,0,22816,3332,1,0,0,0,22817,22818, +7,5,0,0,22818,22819,7,6,0,0,22819,22820,7,5,0,0,22820,22821,7,5,0,0,22821, +22822,7,10,0,0,22822,22823,7,2,0,0,22823,22824,7,7,0,0,22824,22825,7,4,0, +0,22825,22826,7,10,0,0,22826,22827,7,14,0,0,22827,22828,7,6,0,0,22828,22829, +7,23,0,0,22829,22830,7,2,0,0,22830,22831,7,7,0,0,22831,22832,7,6,0,0,22832, +3334,1,0,0,0,22833,22834,7,5,0,0,22834,22835,7,6,0,0,22835,22836,7,5,0,0, +22836,22837,7,5,0,0,22837,22838,7,10,0,0,22838,22839,7,2,0,0,22839,22840, +7,7,0,0,22840,22841,7,4,0,0,22841,22842,7,23,0,0,22842,22843,7,7,0,0,22843, +22844,7,0,0,0,22844,22845,7,14,0,0,22845,22846,7,6,0,0,22846,3336,1,0,0, +0,22847,22848,7,5,0,0,22848,22849,7,6,0,0,22849,22850,7,4,0,0,22850,3338, +1,0,0,0,22851,22852,7,5,0,0,22852,22853,7,6,0,0,22853,22854,7,4,0,0,22854, +22855,7,5,0,0,22855,3340,1,0,0,0,22856,22857,7,5,0,0,22857,22858,7,6,0,0, +22858,22859,7,4,0,0,22859,22860,7,4,0,0,22860,22861,7,10,0,0,22861,22862, +7,7,0,0,22862,22863,7,17,0,0,22863,22864,7,5,0,0,22864,3342,1,0,0,0,22865, +22866,7,5,0,0,22866,22867,7,6,0,0,22867,22868,7,4,0,0,22868,22869,5,95,0, +0,22869,22870,7,4,0,0,22870,22871,7,2,0,0,22871,22872,5,95,0,0,22872,22873, +7,20,0,0,22873,22874,7,2,0,0,22874,22875,7,10,0,0,22875,22876,7,7,0,0,22876, +3344,1,0,0,0,22877,22878,7,5,0,0,22878,22879,7,6,0,0,22879,22880,7,13,0, +0,22880,22881,7,6,0,0,22881,22882,7,3,0,0,22882,22883,7,6,0,0,22883,3346, +1,0,0,0,22884,22885,7,5,0,0,22885,22886,7,19,0,0,22886,22887,7,0,0,0,22887, +22888,7,3,0,0,22888,22889,7,9,0,0,22889,3348,1,0,0,0,22890,22891,7,5,0,0, +22891,22892,7,19,0,0,22892,22893,7,0,0,0,22893,22894,7,3,0,0,22894,22895, +7,9,0,0,22895,22896,7,5,0,0,22896,22897,7,15,0,0,22897,22898,7,0,0,0,22898, +22899,7,8,0,0,22899,22900,7,6,0,0,22900,3350,1,0,0,0,22901,22902,7,5,0,0, +22902,22903,7,19,0,0,22903,22904,7,0,0,0,22904,22905,7,3,0,0,22905,22906, +7,6,0,0,22906,22907,7,9,0,0,22907,22908,5,95,0,0,22908,22909,7,15,0,0,22909, +22910,7,2,0,0,22910,22911,7,2,0,0,22911,22912,7,11,0,0,22912,3352,1,0,0, +0,22913,22914,7,5,0,0,22914,22915,7,19,0,0,22915,22916,7,0,0,0,22916,22917, +7,3,0,0,22917,22918,7,6,0,0,22918,22919,7,9,0,0,22919,3354,1,0,0,0,22920, +22921,7,5,0,0,22921,22922,7,19,0,0,22922,22923,7,0,0,0,22923,22924,7,3,0, +0,22924,22925,7,6,0,0,22925,3356,1,0,0,0,22926,22927,7,5,0,0,22927,22928, +7,19,0,0,22928,22929,7,0,0,0,22929,22930,7,3,0,0,22930,22931,7,10,0,0,22931, +22932,7,7,0,0,22932,22933,7,17,0,0,22933,3358,1,0,0,0,22934,22935,7,5,0, +0,22935,22936,7,19,0,0,22936,22937,7,6,0,0,22937,22938,7,11,0,0,22938,22939, +7,16,0,0,22939,22940,7,11,0,0,22940,22941,7,10,0,0,22941,22942,7,16,0,0, +22942,22943,7,6,0,0,22943,3360,1,0,0,0,22944,22945,7,5,0,0,22945,22946,7, +19,0,0,22946,22947,7,2,0,0,22947,22948,7,22,0,0,22948,3362,1,0,0,0,22949, +22950,7,5,0,0,22950,22951,7,19,0,0,22951,22952,7,3,0,0,22952,22953,7,10, +0,0,22953,22954,7,7,0,0,22954,22955,7,21,0,0,22955,3364,1,0,0,0,22956,22957, +7,5,0,0,22957,22958,7,19,0,0,22958,22959,7,12,0,0,22959,22960,7,4,0,0,22960, +22961,7,9,0,0,22961,22962,7,2,0,0,22962,22963,7,22,0,0,22963,22964,7,7,0, +0,22964,3366,1,0,0,0,22965,22966,7,5,0,0,22966,22967,7,10,0,0,22967,22968, +7,1,0,0,22968,22969,7,11,0,0,22969,22970,7,10,0,0,22970,22971,7,7,0,0,22971, +22972,7,17,0,0,22972,22973,7,5,0,0,22973,3368,1,0,0,0,22974,22975,7,5,0, +0,22975,22976,7,10,0,0,22976,22977,7,9,0,0,22977,3370,1,0,0,0,22978,22979, +7,5,0,0,22979,22980,7,10,0,0,22980,22981,7,4,0,0,22981,22982,7,6,0,0,22982, +3372,1,0,0,0,22983,22984,7,5,0,0,22984,22985,7,10,0,0,22985,22986,7,17,0, +0,22986,22987,7,7,0,0,22987,22988,7,0,0,0,22988,22989,7,11,0,0,22989,22990, +5,95,0,0,22990,22991,7,8,0,0,22991,22992,7,2,0,0,22992,22993,7,14,0,0,22993, +22994,7,15,0,0,22994,22995,7,2,0,0,22995,22996,7,7,0,0,22996,22997,7,6,0, +0,22997,22998,7,7,0,0,22998,22999,7,4,0,0,22999,3374,1,0,0,0,23000,23001, +7,5,0,0,23001,23002,7,10,0,0,23002,23003,7,17,0,0,23003,23004,7,7,0,0,23004, +23005,7,0,0,0,23005,23006,7,11,0,0,23006,23007,5,95,0,0,23007,23008,7,16, +0,0,23008,23009,7,12,0,0,23009,23010,7,7,0,0,23010,23011,7,8,0,0,23011,23012, +7,4,0,0,23012,23013,7,10,0,0,23013,23014,7,2,0,0,23014,23015,7,7,0,0,23015, +3376,1,0,0,0,23016,23017,7,5,0,0,23017,23018,7,10,0,0,23018,23019,7,17,0, +0,23019,23020,7,7,0,0,23020,3378,1,0,0,0,23021,23022,7,5,0,0,23022,23023, +7,10,0,0,23023,23024,7,17,0,0,23024,23025,7,7,0,0,23025,23026,7,4,0,0,23026, +23027,7,18,0,0,23027,23028,7,15,0,0,23028,23029,7,6,0,0,23029,3380,1,0,0, +0,23030,23031,7,5,0,0,23031,23032,7,10,0,0,23032,23033,7,14,0,0,23033,23034, +7,15,0,0,23034,23035,7,11,0,0,23035,23036,7,6,0,0,23036,23037,5,95,0,0,23037, +23038,7,10,0,0,23038,23039,7,7,0,0,23039,23040,7,4,0,0,23040,23041,7,6,0, +0,23041,23042,7,17,0,0,23042,23043,7,6,0,0,23043,23044,7,3,0,0,23044,3382, +1,0,0,0,23045,23046,7,5,0,0,23046,23047,7,10,0,0,23047,23048,7,14,0,0,23048, +23049,7,15,0,0,23049,23050,7,11,0,0,23050,23051,7,6,0,0,23051,3384,1,0,0, +0,23052,23053,7,5,0,0,23053,23054,7,10,0,0,23054,23055,7,7,0,0,23055,23056, +7,17,0,0,23056,23057,7,11,0,0,23057,23058,7,6,0,0,23058,3386,1,0,0,0,23059, +23060,7,5,0,0,23060,23061,7,10,0,0,23061,23062,7,7,0,0,23062,23063,7,17, +0,0,23063,23064,7,11,0,0,23064,23065,7,6,0,0,23065,23066,7,4,0,0,23066,23067, +7,0,0,0,23067,23068,7,5,0,0,23068,23069,7,21,0,0,23069,3388,1,0,0,0,23070, +23071,7,5,0,0,23071,23072,7,10,0,0,23072,23073,7,7,0,0,23073,23074,7,19, +0,0,23074,3390,1,0,0,0,23075,23076,7,5,0,0,23076,23077,7,10,0,0,23077,23078, +7,7,0,0,23078,3392,1,0,0,0,23079,23080,7,5,0,0,23080,23081,7,10,0,0,23081, +23082,7,23,0,0,23082,23083,7,6,0,0,23083,3394,1,0,0,0,23084,23085,7,5,0, +0,23085,23086,7,10,0,0,23086,23087,7,23,0,0,23087,23088,7,6,0,0,23088,23089, +7,5,0,0,23089,3396,1,0,0,0,23090,23091,7,5,0,0,23091,23092,7,21,0,0,23092, +23093,7,10,0,0,23093,23094,7,15,0,0,23094,23095,5,95,0,0,23095,23096,7,6, +0,0,23096,23097,7,25,0,0,23097,23098,7,4,0,0,23098,23099,5,95,0,0,23099, +23100,7,2,0,0,23100,23101,7,15,0,0,23101,23102,7,4,0,0,23102,23103,7,10, +0,0,23103,23104,7,14,0,0,23104,23105,7,10,0,0,23105,23106,7,23,0,0,23106, +23107,7,6,0,0,23107,23108,7,3,0,0,23108,3398,1,0,0,0,23109,23110,7,5,0,0, +23110,23111,7,21,0,0,23111,23112,7,10,0,0,23112,23113,7,15,0,0,23113,3400, +1,0,0,0,23114,23115,7,5,0,0,23115,23116,7,21,0,0,23116,23117,7,10,0,0,23117, +23118,7,15,0,0,23118,23119,5,95,0,0,23119,23120,7,12,0,0,23120,23121,7,7, +0,0,23121,23122,7,24,0,0,23122,23123,5,95,0,0,23123,23124,7,12,0,0,23124, +23125,7,7,0,0,23125,23126,7,12,0,0,23126,23127,7,5,0,0,23127,23128,7,0,0, +0,23128,23129,7,1,0,0,23129,23130,7,11,0,0,23130,23131,7,6,0,0,23131,23132, +5,95,0,0,23132,23133,7,10,0,0,23133,23134,7,9,0,0,23134,23135,7,25,0,0,23135, +3402,1,0,0,0,23136,23137,7,5,0,0,23137,23138,7,21,0,0,23138,23139,7,10,0, +0,23139,23140,7,15,0,0,23140,23141,5,95,0,0,23141,23142,7,12,0,0,23142,23143, +7,7,0,0,23143,23144,7,12,0,0,23144,23145,7,5,0,0,23145,23146,7,0,0,0,23146, +23147,7,1,0,0,23147,23148,7,11,0,0,23148,23149,7,6,0,0,23149,23150,5,95, +0,0,23150,23151,7,10,0,0,23151,23152,7,7,0,0,23152,23153,7,9,0,0,23153,23154, +7,6,0,0,23154,23155,7,25,0,0,23155,23156,7,6,0,0,23156,23157,7,5,0,0,23157, +3404,1,0,0,0,23158,23159,7,5,0,0,23159,23160,7,14,0,0,23160,23161,7,0,0, +0,23161,23162,7,11,0,0,23162,23163,7,11,0,0,23163,23164,7,16,0,0,23164,23165, +7,10,0,0,23165,23166,7,11,0,0,23166,23167,7,6,0,0,23167,3406,1,0,0,0,23168, +23169,7,5,0,0,23169,23170,7,14,0,0,23170,23171,7,0,0,0,23171,23172,7,11, +0,0,23172,23173,7,11,0,0,23173,23174,7,10,0,0,23174,23175,7,7,0,0,23175, +23176,7,4,0,0,23176,3408,1,0,0,0,23177,23178,7,5,0,0,23178,23179,7,7,0,0, +23179,23180,7,0,0,0,23180,23181,7,15,0,0,23181,23182,7,5,0,0,23182,23183, +7,19,0,0,23183,23184,7,2,0,0,23184,23185,7,4,0,0,23185,3410,1,0,0,0,23186, +23187,7,5,0,0,23187,23188,7,2,0,0,23188,23189,7,14,0,0,23189,23190,7,6,0, +0,23190,3412,1,0,0,0,23191,23192,7,5,0,0,23192,23193,7,2,0,0,23193,23194, +7,3,0,0,23194,23195,7,4,0,0,23195,3414,1,0,0,0,23196,23197,7,5,0,0,23197, +23198,7,2,0,0,23198,23199,7,12,0,0,23199,23200,7,7,0,0,23200,23201,7,9,0, +0,23201,23202,7,6,0,0,23202,23203,7,25,0,0,23203,3416,1,0,0,0,23204,23205, +7,5,0,0,23205,23206,7,2,0,0,23206,23207,7,12,0,0,23207,23208,7,3,0,0,23208, +23209,7,8,0,0,23209,23210,7,6,0,0,23210,23211,5,95,0,0,23211,23212,7,16, +0,0,23212,23213,7,10,0,0,23213,23214,7,11,0,0,23214,23215,7,6,0,0,23215, +23216,5,95,0,0,23216,23217,7,9,0,0,23217,23218,7,10,0,0,23218,23219,7,3, +0,0,23219,23220,7,6,0,0,23220,23221,7,8,0,0,23221,23222,7,4,0,0,23222,23223, +7,2,0,0,23223,23224,7,3,0,0,23224,23225,7,18,0,0,23225,3418,1,0,0,0,23226, +23227,7,5,0,0,23227,23228,7,2,0,0,23228,23229,7,12,0,0,23229,23230,7,3,0, +0,23230,23231,7,8,0,0,23231,23232,7,6,0,0,23232,23233,5,95,0,0,23233,23234, +7,16,0,0,23234,23235,7,10,0,0,23235,23236,7,11,0,0,23236,23237,7,6,0,0,23237, +23238,5,95,0,0,23238,23239,7,7,0,0,23239,23240,7,0,0,0,23240,23241,7,14, +0,0,23241,23242,7,6,0,0,23242,23243,5,95,0,0,23243,23244,7,8,0,0,23244,23245, +7,2,0,0,23245,23246,7,7,0,0,23246,23247,7,13,0,0,23247,23248,7,6,0,0,23248, +23249,7,3,0,0,23249,23250,7,4,0,0,23250,3420,1,0,0,0,23251,23252,7,5,0,0, +23252,23253,7,2,0,0,23253,23254,7,12,0,0,23254,23255,7,3,0,0,23255,23256, +7,8,0,0,23256,23257,7,6,0,0,23257,3422,1,0,0,0,23258,23259,7,5,0,0,23259, +23260,7,15,0,0,23260,23261,7,0,0,0,23261,23262,7,8,0,0,23262,23263,7,6,0, +0,23263,3424,1,0,0,0,23264,23265,7,5,0,0,23265,23266,7,15,0,0,23266,23267, +7,6,0,0,23267,23268,7,8,0,0,23268,23269,7,10,0,0,23269,23270,7,16,0,0,23270, +23271,7,10,0,0,23271,23272,7,8,0,0,23272,23273,7,0,0,0,23273,23274,7,4,0, +0,23274,23275,7,10,0,0,23275,23276,7,2,0,0,23276,23277,7,7,0,0,23277,3426, +1,0,0,0,23278,23279,7,5,0,0,23279,23280,7,15,0,0,23280,23281,7,16,0,0,23281, +23282,7,10,0,0,23282,23283,7,11,0,0,23283,23284,7,6,0,0,23284,3428,1,0,0, +0,23285,23286,7,5,0,0,23286,23287,7,15,0,0,23287,23288,7,11,0,0,23288,23289, +7,10,0,0,23289,23290,7,4,0,0,23290,3430,1,0,0,0,23291,23292,7,5,0,0,23292, +23293,7,15,0,0,23293,23294,7,3,0,0,23294,23295,7,6,0,0,23295,23296,7,0,0, +0,23296,23297,7,9,0,0,23297,23298,7,5,0,0,23298,23299,7,19,0,0,23299,23300, +7,6,0,0,23300,23301,7,6,0,0,23301,23302,7,4,0,0,23302,3432,1,0,0,0,23303, +23304,7,5,0,0,23304,23305,7,24,0,0,23305,23306,7,11,0,0,23306,23307,7,9, +0,0,23307,23308,7,0,0,0,23308,23309,7,4,0,0,23309,23310,7,0,0,0,23310,3434, +1,0,0,0,23311,23312,7,5,0,0,23312,23313,7,24,0,0,23313,23314,7,11,0,0,23314, +23315,7,6,0,0,23315,23316,7,3,0,0,23316,23317,7,3,0,0,23317,23318,7,2,0, +0,23318,23319,7,3,0,0,23319,3436,1,0,0,0,23320,23321,7,5,0,0,23321,23322, +7,24,0,0,23322,23323,7,11,0,0,23323,23324,7,11,0,0,23324,23325,7,9,0,0,23325, +23326,7,3,0,0,23326,3438,1,0,0,0,23327,23328,7,5,0,0,23328,23329,7,24,0, +0,23329,23330,7,11,0,0,23330,3440,1,0,0,0,23331,23332,7,15,0,0,23332,23333, +7,21,0,0,23333,23338,7,1,0,0,23334,23335,7,15,0,0,23335,23336,7,21,0,0,23336, +23338,7,5,0,0,23337,23331,1,0,0,0,23337,23334,1,0,0,0,23338,3442,1,0,0,0, +23339,23340,7,5,0,0,23340,23341,7,24,0,0,23341,23342,7,11,0,0,23342,23343, +5,95,0,0,23343,23344,7,14,0,0,23344,23345,7,0,0,0,23345,23346,7,8,0,0,23346, +23347,7,3,0,0,23347,23348,7,2,0,0,23348,3444,1,0,0,0,23349,23350,7,5,0,0, +23350,23351,7,24,0,0,23351,23352,7,11,0,0,23352,23353,5,95,0,0,23353,23354, +7,4,0,0,23354,23355,7,3,0,0,23355,23356,7,0,0,0,23356,23357,7,8,0,0,23357, +23358,7,6,0,0,23358,3446,1,0,0,0,23359,23360,7,5,0,0,23360,23361,7,24,0, +0,23361,23362,7,11,0,0,23362,23363,5,95,0,0,23363,23364,7,4,0,0,23364,23365, +7,3,0,0,23365,23366,7,0,0,0,23366,23367,7,7,0,0,23367,23368,7,5,0,0,23368, +23369,7,11,0,0,23369,23370,7,0,0,0,23370,23371,7,4,0,0,23371,23372,7,10, +0,0,23372,23373,7,2,0,0,23373,23374,7,7,0,0,23374,23375,5,95,0,0,23375,23376, +7,15,0,0,23376,23377,7,3,0,0,23377,23378,7,2,0,0,23378,23379,7,16,0,0,23379, +23380,7,10,0,0,23380,23381,7,11,0,0,23381,23382,7,6,0,0,23382,3448,1,0,0, +0,23383,23384,7,5,0,0,23384,23385,7,24,0,0,23385,23386,7,3,0,0,23386,23387, +7,4,0,0,23387,3450,1,0,0,0,23388,23389,7,5,0,0,23389,23390,7,4,0,0,23390, +23391,7,0,0,0,23391,23392,7,11,0,0,23392,23393,7,6,0,0,23393,3452,1,0,0, +0,23394,23395,7,5,0,0,23395,23396,7,4,0,0,23396,23397,7,0,0,0,23397,23398, +7,7,0,0,23398,23399,7,9,0,0,23399,23400,7,0,0,0,23400,23401,7,11,0,0,23401, +23402,7,2,0,0,23402,23403,7,7,0,0,23403,23404,7,6,0,0,23404,3454,1,0,0,0, +23405,23406,7,5,0,0,23406,23407,7,4,0,0,23407,23408,7,0,0,0,23408,23409, +7,7,0,0,23409,23410,7,9,0,0,23410,23411,7,0,0,0,23411,23412,7,3,0,0,23412, +23413,7,9,0,0,23413,3456,1,0,0,0,23414,23415,7,5,0,0,23415,23416,7,4,0,0, +23416,23417,7,0,0,0,23417,23418,7,7,0,0,23418,23419,7,9,0,0,23419,23420, +7,0,0,0,23420,23421,7,3,0,0,23421,23422,7,9,0,0,23422,23423,5,95,0,0,23423, +23424,7,19,0,0,23424,23425,7,0,0,0,23425,23426,7,5,0,0,23426,23427,7,19, +0,0,23427,3458,1,0,0,0,23428,23429,7,5,0,0,23429,23430,7,4,0,0,23430,23431, +7,0,0,0,23431,23432,7,7,0,0,23432,23433,7,9,0,0,23433,23434,7,1,0,0,23434, +23435,7,18,0,0,23435,23436,5,95,0,0,23436,23437,7,14,0,0,23437,23438,7,0, +0,0,23438,23439,7,25,0,0,23439,23440,5,95,0,0,23440,23441,7,9,0,0,23441, +23442,7,0,0,0,23442,23443,7,4,0,0,23443,23444,7,0,0,0,23444,23445,5,95,0, +0,23445,23446,7,9,0,0,23446,23447,7,6,0,0,23447,23448,7,11,0,0,23448,23449, +7,0,0,0,23449,23450,7,18,0,0,23450,3460,1,0,0,0,23451,23452,7,5,0,0,23452, +23453,7,4,0,0,23453,23454,7,0,0,0,23454,23455,7,7,0,0,23455,23456,7,9,0, +0,23456,23457,7,1,0,0,23457,23458,7,18,0,0,23458,23459,7,5,0,0,23459,3462, +1,0,0,0,23460,23461,7,5,0,0,23461,23462,7,4,0,0,23462,23463,7,0,0,0,23463, +23464,7,7,0,0,23464,23465,7,9,0,0,23465,23466,7,1,0,0,23466,23467,7,18,0, +0,23467,3464,1,0,0,0,23468,23469,7,5,0,0,23469,23470,7,4,0,0,23470,23471, +7,0,0,0,23471,23472,7,3,0,0,23472,3466,1,0,0,0,23473,23474,7,5,0,0,23474, +23475,7,4,0,0,23475,23476,7,0,0,0,23476,23477,7,3,0,0,23477,23478,5,95,0, +0,23478,23479,7,4,0,0,23479,23480,7,3,0,0,23480,23481,7,0,0,0,23481,23482, +7,7,0,0,23482,23483,7,5,0,0,23483,23484,7,16,0,0,23484,23485,7,2,0,0,23485, +23486,7,3,0,0,23486,23487,7,14,0,0,23487,23488,7,0,0,0,23488,23489,7,4,0, +0,23489,23490,7,10,0,0,23490,23491,7,2,0,0,23491,23492,7,7,0,0,23492,3468, +1,0,0,0,23493,23494,7,5,0,0,23494,23495,7,4,0,0,23495,23496,7,0,0,0,23496, +23497,7,3,0,0,23497,23498,7,4,0,0,23498,3470,1,0,0,0,23499,23500,7,5,0,0, +23500,23501,7,4,0,0,23501,23502,7,0,0,0,23502,23503,7,3,0,0,23503,23504, +7,4,0,0,23504,23505,7,2,0,0,23505,23506,7,16,0,0,23506,3472,1,0,0,0,23507, +23508,7,5,0,0,23508,23509,7,4,0,0,23509,23510,7,0,0,0,23510,23511,7,3,0, +0,23511,23512,7,4,0,0,23512,23513,7,12,0,0,23513,23514,7,15,0,0,23514,3474, +1,0,0,0,23515,23516,7,5,0,0,23516,23517,7,4,0,0,23517,23518,7,0,0,0,23518, +23519,7,4,0,0,23519,23520,7,6,0,0,23520,23521,7,14,0,0,23521,23522,7,6,0, +0,23522,23523,7,7,0,0,23523,23524,7,4,0,0,23524,23525,5,95,0,0,23525,23526, +7,10,0,0,23526,23527,7,9,0,0,23527,3476,1,0,0,0,23528,23529,7,5,0,0,23529, +23530,7,4,0,0,23530,23531,7,0,0,0,23531,23532,7,4,0,0,23532,23533,7,6,0, +0,23533,23534,7,14,0,0,23534,23535,7,6,0,0,23535,23536,7,7,0,0,23536,23537, +7,4,0,0,23537,23538,5,95,0,0,23538,23539,7,24,0,0,23539,23540,7,12,0,0,23540, +23541,7,6,0,0,23541,23542,7,12,0,0,23542,23543,7,10,0,0,23543,23544,7,7, +0,0,23544,23545,7,17,0,0,23545,3478,1,0,0,0,23546,23547,7,5,0,0,23547,23548, +7,4,0,0,23548,23549,7,0,0,0,23549,23550,7,4,0,0,23550,23551,7,6,0,0,23551, +23552,7,14,0,0,23552,23553,7,6,0,0,23553,23554,7,7,0,0,23554,23555,7,4,0, +0,23555,23556,7,5,0,0,23556,3480,1,0,0,0,23557,23558,7,5,0,0,23558,23559, +7,4,0,0,23559,23560,7,0,0,0,23560,23561,7,4,0,0,23561,23562,7,6,0,0,23562, +23563,7,14,0,0,23563,23564,7,6,0,0,23564,23565,7,7,0,0,23565,23566,7,4,0, +0,23566,3482,1,0,0,0,23567,23568,7,5,0,0,23568,23569,7,4,0,0,23569,23570, +7,0,0,0,23570,23571,7,4,0,0,23571,23572,7,6,0,0,23572,3484,1,0,0,0,23573, +23574,7,5,0,0,23574,23575,7,4,0,0,23575,23576,7,0,0,0,23576,23577,7,4,0, +0,23577,23578,7,10,0,0,23578,23579,7,8,0,0,23579,3486,1,0,0,0,23580,23581, +7,5,0,0,23581,23582,7,4,0,0,23582,23583,7,0,0,0,23583,23584,7,4,0,0,23584, +23585,7,10,0,0,23585,23586,7,5,0,0,23586,23587,7,4,0,0,23587,23588,7,10, +0,0,23588,23589,7,8,0,0,23589,23590,7,5,0,0,23590,3488,1,0,0,0,23591,23592, +7,5,0,0,23592,23593,7,4,0,0,23593,23594,7,0,0,0,23594,23595,7,4,0,0,23595, +23596,7,5,0,0,23596,23597,5,95,0,0,23597,23598,7,1,0,0,23598,23599,7,10, +0,0,23599,23600,7,7,0,0,23600,23601,7,2,0,0,23601,23602,7,14,0,0,23602,23603, +7,10,0,0,23603,23604,7,0,0,0,23604,23605,7,11,0,0,23605,23606,5,95,0,0,23606, +23607,7,4,0,0,23607,23608,7,6,0,0,23608,23609,7,5,0,0,23609,23610,7,4,0, +0,23610,3490,1,0,0,0,23611,23612,7,5,0,0,23612,23613,7,4,0,0,23613,23614, +7,0,0,0,23614,23615,7,4,0,0,23615,23616,7,5,0,0,23616,23617,5,95,0,0,23617, +23618,7,8,0,0,23618,23619,7,3,0,0,23619,23620,7,2,0,0,23620,23621,7,5,0, +0,23621,23622,7,5,0,0,23622,23623,7,4,0,0,23623,23624,7,0,0,0,23624,23625, +7,1,0,0,23625,3492,1,0,0,0,23626,23627,7,5,0,0,23627,23628,7,4,0,0,23628, +23629,7,0,0,0,23629,23630,7,4,0,0,23630,23631,7,5,0,0,23631,23632,5,95,0, +0,23632,23633,7,16,0,0,23633,23634,5,95,0,0,23634,23635,7,4,0,0,23635,23636, +7,6,0,0,23636,23637,7,5,0,0,23637,23638,7,4,0,0,23638,3494,1,0,0,0,23639, +23640,7,5,0,0,23640,23641,7,4,0,0,23641,23642,7,0,0,0,23642,23643,7,4,0, +0,23643,23644,7,5,0,0,23644,23645,5,95,0,0,23645,23646,7,21,0,0,23646,23647, +7,5,0,0,23647,23648,5,95,0,0,23648,23649,7,4,0,0,23649,23650,7,6,0,0,23650, +23651,7,5,0,0,23651,23652,7,4,0,0,23652,3496,1,0,0,0,23653,23654,7,5,0,0, +23654,23655,7,4,0,0,23655,23656,7,0,0,0,23656,23657,7,4,0,0,23657,23658, +7,5,0,0,23658,23659,5,95,0,0,23659,23660,7,14,0,0,23660,23661,7,2,0,0,23661, +23662,7,9,0,0,23662,23663,7,6,0,0,23663,3498,1,0,0,0,23664,23665,7,5,0,0, +23665,23666,7,4,0,0,23666,23667,7,0,0,0,23667,23668,7,4,0,0,23668,23669, +7,5,0,0,23669,23670,5,95,0,0,23670,23671,7,14,0,0,23671,23672,7,22,0,0,23672, +23673,5,95,0,0,23673,23674,7,4,0,0,23674,23675,7,6,0,0,23675,23676,7,5,0, +0,23676,23677,7,4,0,0,23677,3500,1,0,0,0,23678,23679,7,5,0,0,23679,23680, +7,4,0,0,23680,23681,7,0,0,0,23681,23682,7,4,0,0,23682,23683,7,5,0,0,23683, +23684,5,95,0,0,23684,23685,7,2,0,0,23685,23686,7,7,0,0,23686,23687,7,6,0, +0,23687,23688,5,95,0,0,23688,23689,7,22,0,0,23689,23690,7,0,0,0,23690,23691, +7,18,0,0,23691,23692,5,95,0,0,23692,23693,7,0,0,0,23693,23694,7,7,0,0,23694, +23695,7,2,0,0,23695,23696,7,13,0,0,23696,23697,7,0,0,0,23697,3502,1,0,0, +0,23698,23699,7,5,0,0,23699,23700,7,4,0,0,23700,23701,7,0,0,0,23701,23702, +7,4,0,0,23702,23703,7,5,0,0,23703,23704,5,95,0,0,23704,23705,7,4,0,0,23705, +23706,5,95,0,0,23706,23707,7,4,0,0,23707,23708,7,6,0,0,23708,23709,7,5,0, +0,23709,23710,7,4,0,0,23710,23711,5,95,0,0,23711,23712,7,10,0,0,23712,23713, +7,7,0,0,23713,23714,7,9,0,0,23714,23715,7,6,0,0,23715,23716,7,15,0,0,23716, +3504,1,0,0,0,23717,23718,7,5,0,0,23718,23719,7,4,0,0,23719,23720,7,0,0,0, +23720,23721,7,4,0,0,23721,23722,7,5,0,0,23722,23723,5,95,0,0,23723,23724, +7,4,0,0,23724,23725,5,95,0,0,23725,23726,7,4,0,0,23726,23727,7,6,0,0,23727, +23728,7,5,0,0,23728,23729,7,4,0,0,23729,23730,5,95,0,0,23730,23731,7,10, +0,0,23731,23732,7,7,0,0,23732,23733,7,9,0,0,23733,23734,7,6,0,0,23734,23735, +7,15,0,0,23735,23736,7,12,0,0,23736,3506,1,0,0,0,23737,23738,7,5,0,0,23738, +23739,7,4,0,0,23739,23740,7,0,0,0,23740,23741,7,4,0,0,23741,23742,7,5,0, +0,23742,23743,5,95,0,0,23743,23744,7,4,0,0,23744,23745,5,95,0,0,23745,23746, +7,4,0,0,23746,23747,7,6,0,0,23747,23748,7,5,0,0,23748,23749,7,4,0,0,23749, +23750,5,95,0,0,23750,23751,7,2,0,0,23751,23752,7,7,0,0,23752,23753,7,6,0, +0,23753,3508,1,0,0,0,23754,23755,7,5,0,0,23755,23756,7,4,0,0,23756,23757, +7,0,0,0,23757,23758,7,4,0,0,23758,23759,7,5,0,0,23759,23760,5,95,0,0,23760, +23761,7,4,0,0,23761,23762,5,95,0,0,23762,23763,7,4,0,0,23763,23764,7,6,0, +0,23764,23765,7,5,0,0,23765,23766,7,4,0,0,23766,23767,5,95,0,0,23767,23768, +7,15,0,0,23768,23769,7,0,0,0,23769,23770,7,10,0,0,23770,23771,7,3,0,0,23771, +23772,7,6,0,0,23772,23773,7,9,0,0,23773,3510,1,0,0,0,23774,23775,7,5,0,0, +23775,23776,7,4,0,0,23776,23777,7,0,0,0,23777,23778,7,4,0,0,23778,23779, +7,5,0,0,23779,23780,5,95,0,0,23780,23781,7,22,0,0,23781,23782,7,5,0,0,23782, +23783,7,3,0,0,23783,23784,5,95,0,0,23784,23785,7,4,0,0,23785,23786,7,6,0, +0,23786,23787,7,5,0,0,23787,23788,7,4,0,0,23788,3512,1,0,0,0,23789,23790, +7,5,0,0,23790,23791,7,4,0,0,23791,23792,7,9,0,0,23792,23793,7,9,0,0,23793, +23794,7,6,0,0,23794,23795,7,13,0,0,23795,23796,5,95,0,0,23796,23797,7,15, +0,0,23797,23798,7,2,0,0,23798,23799,7,15,0,0,23799,3514,1,0,0,0,23800,23801, +7,5,0,0,23801,23802,7,4,0,0,23802,23803,7,9,0,0,23803,23804,7,9,0,0,23804, +23805,7,6,0,0,23805,23806,7,13,0,0,23806,23807,5,95,0,0,23807,23808,7,5, +0,0,23808,23809,7,0,0,0,23809,23810,7,14,0,0,23810,23811,7,15,0,0,23811, +3516,1,0,0,0,23812,23813,7,5,0,0,23813,23814,7,4,0,0,23814,23815,7,2,0,0, +23815,23816,7,15,0,0,23816,3518,1,0,0,0,23817,23818,7,5,0,0,23818,23819, +7,4,0,0,23819,23820,7,2,0,0,23820,23821,7,3,0,0,23821,23822,7,0,0,0,23822, +23823,7,17,0,0,23823,23824,7,6,0,0,23824,3520,1,0,0,0,23825,23826,7,5,0, +0,23826,23827,7,4,0,0,23827,23828,7,2,0,0,23828,23829,7,3,0,0,23829,23830, +7,6,0,0,23830,3522,1,0,0,0,23831,23832,7,5,0,0,23832,23833,7,4,0,0,23833, +23834,7,3,0,0,23834,23835,7,6,0,0,23835,23836,7,0,0,0,23836,23837,7,14,0, +0,23837,23838,7,5,0,0,23838,3524,1,0,0,0,23839,23840,7,5,0,0,23840,23841, +7,4,0,0,23841,23842,7,3,0,0,23842,23843,7,6,0,0,23843,23844,7,0,0,0,23844, +23845,7,14,0,0,23845,3526,1,0,0,0,23846,23847,7,5,0,0,23847,23848,7,4,0, +0,23848,23849,7,3,0,0,23849,23850,7,10,0,0,23850,23851,7,8,0,0,23851,23852, +7,4,0,0,23852,3528,1,0,0,0,23853,23854,7,5,0,0,23854,23855,7,4,0,0,23855, +23856,7,3,0,0,23856,23857,7,10,0,0,23857,23858,7,7,0,0,23858,23859,7,17, +0,0,23859,3530,1,0,0,0,23860,23861,7,5,0,0,23861,23862,7,4,0,0,23862,23863, +7,3,0,0,23863,23864,7,10,0,0,23864,23865,7,15,0,0,23865,23866,7,6,0,0,23866, +23867,5,95,0,0,23867,23868,7,8,0,0,23868,23869,7,2,0,0,23869,23870,7,11, +0,0,23870,23871,7,12,0,0,23871,23872,7,14,0,0,23872,23873,7,7,0,0,23873, +23874,7,5,0,0,23874,3532,1,0,0,0,23875,23876,7,5,0,0,23876,23877,7,4,0,0, +23877,23878,7,3,0,0,23878,23879,7,10,0,0,23879,23880,7,15,0,0,23880,23881, +7,6,0,0,23881,23882,5,95,0,0,23882,23883,7,22,0,0,23883,23884,7,10,0,0,23884, +23885,7,9,0,0,23885,23886,7,4,0,0,23886,23887,7,19,0,0,23887,3534,1,0,0, +0,23888,23889,7,5,0,0,23889,23890,7,4,0,0,23890,23891,7,3,0,0,23891,23892, +7,10,0,0,23892,23893,7,15,0,0,23893,3536,1,0,0,0,23894,23895,7,5,0,0,23895, +23896,7,4,0,0,23896,23897,7,3,0,0,23897,23898,7,12,0,0,23898,23899,7,8,0, +0,23899,23900,7,4,0,0,23900,23901,7,12,0,0,23901,23902,7,3,0,0,23902,23903, +7,6,0,0,23903,3538,1,0,0,0,23904,23905,7,5,0,0,23905,23906,7,12,0,0,23906, +23907,7,1,0,0,23907,23908,7,14,0,0,23908,23909,7,12,0,0,23909,23910,7,11, +0,0,23910,23911,7,4,0,0,23911,23912,7,10,0,0,23912,23913,7,5,0,0,23913,23914, +7,6,0,0,23914,23915,7,4,0,0,23915,3540,1,0,0,0,23916,23917,7,5,0,0,23917, +23918,7,12,0,0,23918,23919,7,1,0,0,23919,23920,7,15,0,0,23920,23921,7,0, +0,0,23921,23922,7,3,0,0,23922,23923,7,4,0,0,23923,23924,7,10,0,0,23924,23925, +7,4,0,0,23925,23926,7,10,0,0,23926,23927,7,2,0,0,23927,23928,7,7,0,0,23928, +23929,5,95,0,0,23929,23930,7,3,0,0,23930,23931,7,6,0,0,23931,23932,7,11, +0,0,23932,3542,1,0,0,0,23933,23934,7,5,0,0,23934,23935,7,12,0,0,23935,23936, +7,1,0,0,23936,23937,7,15,0,0,23937,23938,7,0,0,0,23938,23939,7,3,0,0,23939, +23940,7,4,0,0,23940,23941,7,10,0,0,23941,23942,7,4,0,0,23942,23943,7,10, +0,0,23943,23944,7,2,0,0,23944,23945,7,7,0,0,23945,23946,7,5,0,0,23946,3544, +1,0,0,0,23947,23948,7,5,0,0,23948,23949,7,12,0,0,23949,23950,7,1,0,0,23950, +23951,7,15,0,0,23951,23952,7,0,0,0,23952,23953,7,3,0,0,23953,23954,7,4,0, +0,23954,23955,7,10,0,0,23955,23956,7,4,0,0,23956,23957,7,10,0,0,23957,23958, +7,2,0,0,23958,23959,7,7,0,0,23959,3546,1,0,0,0,23960,23961,7,5,0,0,23961, +23962,7,12,0,0,23962,23963,7,1,0,0,23963,23964,7,24,0,0,23964,23965,7,12, +0,0,23965,23966,7,6,0,0,23966,23967,7,3,0,0,23967,23968,7,10,0,0,23968,23969, +7,6,0,0,23969,23970,7,5,0,0,23970,3548,1,0,0,0,23971,23972,7,5,0,0,23972, +23973,7,12,0,0,23973,23974,7,1,0,0,23974,23975,7,24,0,0,23975,23976,7,12, +0,0,23976,23977,7,6,0,0,23977,23978,7,3,0,0,23978,23979,7,18,0,0,23979,23980, +5,95,0,0,23980,23981,7,15,0,0,23981,23982,7,3,0,0,23982,23983,7,12,0,0,23983, +23984,7,7,0,0,23984,23985,7,10,0,0,23985,23986,7,7,0,0,23986,23987,7,17, +0,0,23987,3550,1,0,0,0,23988,23989,7,5,0,0,23989,23990,7,12,0,0,23990,23991, +7,1,0,0,23991,23992,7,5,0,0,23992,23993,7,8,0,0,23993,23994,7,3,0,0,23994, +23995,7,10,0,0,23995,23996,7,1,0,0,23996,23997,7,6,0,0,23997,3552,1,0,0, +0,23998,23999,7,5,0,0,23999,24000,7,12,0,0,24000,24001,7,1,0,0,24001,24002, +7,5,0,0,24002,24003,7,6,0,0,24003,24004,7,4,0,0,24004,3554,1,0,0,0,24005, +24006,7,5,0,0,24006,24007,7,12,0,0,24007,24008,7,1,0,0,24008,24009,7,5,0, +0,24009,24010,7,4,0,0,24010,24011,7,10,0,0,24011,24012,7,4,0,0,24012,24013, +7,12,0,0,24013,24014,7,4,0,0,24014,24015,7,0,0,0,24015,24016,7,1,0,0,24016, +24017,7,11,0,0,24017,24018,7,6,0,0,24018,3556,1,0,0,0,24019,24020,7,5,0, +0,24020,24021,7,12,0,0,24021,24022,7,1,0,0,24022,24023,7,5,0,0,24023,24024, +7,4,0,0,24024,24025,7,3,0,0,24025,24026,5,50,0,0,24026,3558,1,0,0,0,24027, +24028,7,5,0,0,24028,24029,7,12,0,0,24029,24030,7,1,0,0,24030,24031,7,5,0, +0,24031,24032,7,4,0,0,24032,24033,7,3,0,0,24033,24034,5,52,0,0,24034,3560, +1,0,0,0,24035,24036,7,5,0,0,24036,24037,7,12,0,0,24037,24038,7,1,0,0,24038, +24039,7,5,0,0,24039,24040,7,4,0,0,24040,24041,7,3,0,0,24041,24042,7,1,0, +0,24042,3562,1,0,0,0,24043,24044,7,5,0,0,24044,24045,7,12,0,0,24045,24046, +7,1,0,0,24046,24047,7,5,0,0,24047,24048,7,4,0,0,24048,24049,7,3,0,0,24049, +24050,7,8,0,0,24050,3564,1,0,0,0,24051,24052,7,5,0,0,24052,24053,7,12,0, +0,24053,24054,7,1,0,0,24054,24055,7,4,0,0,24055,24056,7,18,0,0,24056,24057, +7,15,0,0,24057,24058,7,6,0,0,24058,3566,1,0,0,0,24059,24060,7,5,0,0,24060, +24061,7,12,0,0,24061,24062,7,8,0,0,24062,24063,7,8,0,0,24063,24064,7,6,0, +0,24064,24065,7,5,0,0,24065,24066,7,5,0,0,24066,24067,7,16,0,0,24067,24068, +7,12,0,0,24068,24069,7,11,0,0,24069,3568,1,0,0,0,24070,24071,7,5,0,0,24071, +24072,7,12,0,0,24072,24073,7,8,0,0,24073,24074,7,8,0,0,24074,24075,7,6,0, +0,24075,24076,7,5,0,0,24076,24077,7,5,0,0,24077,3570,1,0,0,0,24078,24079, +7,5,0,0,24079,24080,7,12,0,0,24080,24081,7,14,0,0,24081,24082,7,14,0,0,24082, +24083,7,0,0,0,24083,24084,7,3,0,0,24084,24085,7,18,0,0,24085,3572,1,0,0, +0,24086,24087,7,5,0,0,24087,24088,7,12,0,0,24088,24089,7,15,0,0,24089,24090, +7,15,0,0,24090,24091,7,11,0,0,24091,24092,7,6,0,0,24092,24093,7,14,0,0,24093, +24094,7,6,0,0,24094,24095,7,7,0,0,24095,24096,7,4,0,0,24096,24097,7,0,0, +0,24097,24098,7,11,0,0,24098,3574,1,0,0,0,24099,24100,7,5,0,0,24100,24101, +7,12,0,0,24101,24102,7,5,0,0,24102,24103,7,15,0,0,24103,24104,7,6,0,0,24104, +24105,7,7,0,0,24105,24106,7,9,0,0,24106,3576,1,0,0,0,24107,24108,7,5,0,0, +24108,24109,7,22,0,0,24109,24110,7,0,0,0,24110,24111,7,15,0,0,24111,24112, +5,95,0,0,24112,24113,7,20,0,0,24113,24114,7,2,0,0,24114,24115,7,10,0,0,24115, +24116,7,7,0,0,24116,24117,5,95,0,0,24117,24118,7,10,0,0,24118,24119,7,7, +0,0,24119,24120,7,15,0,0,24120,24121,7,12,0,0,24121,24122,7,4,0,0,24122, +24123,7,5,0,0,24123,3578,1,0,0,0,24124,24125,7,5,0,0,24125,24126,7,22,0, +0,24126,24127,7,10,0,0,24127,24128,7,4,0,0,24128,24129,7,8,0,0,24129,24130, +7,19,0,0,24130,24131,7,2,0,0,24131,24132,7,13,0,0,24132,24133,7,6,0,0,24133, +24134,7,3,0,0,24134,3580,1,0,0,0,24135,24136,7,5,0,0,24136,24137,7,22,0, +0,24137,24138,7,10,0,0,24138,24139,7,4,0,0,24139,24140,7,8,0,0,24140,24141, +7,19,0,0,24141,3582,1,0,0,0,24142,24143,7,5,0,0,24143,24144,7,18,0,0,24144, +24145,7,7,0,0,24145,24146,7,8,0,0,24146,24147,7,19,0,0,24147,24148,7,3,0, +0,24148,24149,7,2,0,0,24149,24150,7,7,0,0,24150,24151,7,2,0,0,24151,24152, +7,12,0,0,24152,24153,7,5,0,0,24153,3584,1,0,0,0,24154,24155,7,5,0,0,24155, +24156,7,18,0,0,24156,24157,7,7,0,0,24157,24158,7,8,0,0,24158,3586,1,0,0, +0,24159,24160,7,5,0,0,24160,24161,7,18,0,0,24161,24162,7,7,0,0,24162,24163, +7,2,0,0,24163,24164,7,7,0,0,24164,24165,7,18,0,0,24165,24166,7,14,0,0,24166, +3588,1,0,0,0,24167,24168,7,5,0,0,24168,24169,7,18,0,0,24169,24170,7,5,0, +0,24170,3590,1,0,0,0,24171,24172,7,5,0,0,24172,24173,7,18,0,0,24173,24174, +7,5,0,0,24174,24175,7,0,0,0,24175,24176,7,5,0,0,24176,24177,7,14,0,0,24177, +3592,1,0,0,0,24178,24179,7,5,0,0,24179,24180,7,18,0,0,24180,24181,7,5,0, +0,24181,24182,5,95,0,0,24182,24183,7,0,0,0,24183,24184,7,12,0,0,24184,24185, +7,9,0,0,24185,24186,7,10,0,0,24186,24187,7,4,0,0,24187,3594,1,0,0,0,24188, +24189,7,5,0,0,24189,24190,7,18,0,0,24190,24191,7,5,0,0,24191,24192,7,0,0, +0,24192,24193,7,12,0,0,24193,24194,7,25,0,0,24194,3596,1,0,0,0,24195,24196, +7,5,0,0,24196,24197,7,18,0,0,24197,24198,7,5,0,0,24198,24199,7,1,0,0,24199, +24200,7,0,0,0,24200,24201,7,8,0,0,24201,24202,7,21,0,0,24202,24203,7,12, +0,0,24203,24204,7,15,0,0,24204,3598,1,0,0,0,24205,24206,7,5,0,0,24206,24207, +7,18,0,0,24207,24208,7,5,0,0,24208,24209,5,95,0,0,24209,24210,7,8,0,0,24210, +24211,7,19,0,0,24211,24212,7,6,0,0,24212,24213,7,8,0,0,24213,24214,7,21, +0,0,24214,24215,7,0,0,0,24215,24216,7,8,0,0,24216,24217,7,11,0,0,24217,3600, +1,0,0,0,24218,24219,7,5,0,0,24219,24220,7,18,0,0,24220,24221,7,5,0,0,24221, +24222,5,95,0,0,24222,24223,7,8,0,0,24223,24224,7,19,0,0,24224,24225,7,6, +0,0,24225,24226,7,8,0,0,24226,24227,7,21,0,0,24227,24228,5,95,0,0,24228, +24229,7,15,0,0,24229,24230,7,3,0,0,24230,24231,7,10,0,0,24231,24232,7,13, +0,0,24232,24233,7,10,0,0,24233,24234,7,11,0,0,24234,24235,7,6,0,0,24235, +24236,7,17,0,0,24236,24237,7,6,0,0,24237,3602,1,0,0,0,24238,24239,7,5,0, +0,24239,24240,7,18,0,0,24240,24241,7,5,0,0,24241,24242,5,95,0,0,24242,24243, +7,8,0,0,24243,24244,7,2,0,0,24244,24245,7,7,0,0,24245,24246,7,7,0,0,24246, +24247,7,6,0,0,24247,24248,7,8,0,0,24248,24249,7,4,0,0,24249,24250,5,95,0, +0,24250,24251,7,1,0,0,24251,24252,7,18,0,0,24252,24253,5,95,0,0,24253,24254, +7,15,0,0,24254,24255,7,0,0,0,24255,24256,7,4,0,0,24256,24257,7,19,0,0,24257, +3604,1,0,0,0,24258,24259,7,5,0,0,24259,24260,7,18,0,0,24260,24261,7,5,0, +0,24261,24262,5,95,0,0,24262,24263,7,8,0,0,24263,24264,7,2,0,0,24264,24265, +7,7,0,0,24265,24266,7,4,0,0,24266,24267,7,6,0,0,24267,24268,7,25,0,0,24268, +24269,7,4,0,0,24269,3606,1,0,0,0,24270,24271,7,5,0,0,24271,24272,7,18,0, +0,24272,24273,7,5,0,0,24273,24274,7,9,0,0,24274,24275,7,0,0,0,24275,24276, +7,4,0,0,24276,24277,7,6,0,0,24277,3608,1,0,0,0,24278,24279,7,5,0,0,24279, +24280,7,18,0,0,24280,24281,7,5,0,0,24281,24282,7,9,0,0,24282,24283,7,1,0, +0,24283,24284,7,0,0,0,24284,3610,1,0,0,0,24285,24286,7,5,0,0,24286,24287, +7,18,0,0,24287,24288,7,5,0,0,24288,24289,5,95,0,0,24289,24290,7,9,0,0,24290, +24291,7,1,0,0,24291,24292,7,12,0,0,24292,24293,7,3,0,0,24293,24294,7,10, +0,0,24294,24295,7,17,0,0,24295,24296,7,6,0,0,24296,24297,7,7,0,0,24297,3612, +1,0,0,0,24298,24299,7,5,0,0,24299,24300,7,18,0,0,24300,24301,7,5,0,0,24301, +24302,7,9,0,0,24302,24303,7,17,0,0,24303,3614,1,0,0,0,24304,24305,7,5,0, +0,24305,24306,7,18,0,0,24306,24307,7,5,0,0,24307,24308,5,95,0,0,24308,24309, +7,9,0,0,24309,24310,7,11,0,0,24310,24311,5,95,0,0,24311,24312,7,8,0,0,24312, +24313,7,12,0,0,24313,24314,7,3,0,0,24314,24315,7,5,0,0,24315,24316,7,2,0, +0,24316,24317,7,3,0,0,24317,3616,1,0,0,0,24318,24319,7,5,0,0,24319,24320, +7,18,0,0,24320,24321,7,5,0,0,24321,24322,5,95,0,0,24322,24323,7,9,0,0,24323, +24324,7,14,0,0,24324,24325,5,95,0,0,24325,24326,7,3,0,0,24326,24327,7,25, +0,0,24327,24328,7,16,0,0,24328,24329,7,2,0,0,24329,24330,7,3,0,0,24330,24331, +7,14,0,0,24331,24332,5,95,0,0,24332,24333,7,8,0,0,24333,24334,7,19,0,0,24334, +24335,7,3,0,0,24335,3618,1,0,0,0,24336,24337,7,5,0,0,24337,24338,7,18,0, +0,24338,24339,7,5,0,0,24339,24340,5,95,0,0,24340,24341,7,9,0,0,24341,24342, +7,14,0,0,24342,24343,5,95,0,0,24343,24344,7,3,0,0,24344,24345,7,25,0,0,24345, +24346,7,16,0,0,24346,24347,7,2,0,0,24347,24348,7,3,0,0,24348,24349,7,14, +0,0,24349,24350,5,95,0,0,24350,24351,7,7,0,0,24351,24352,7,12,0,0,24352, +24353,7,14,0,0,24353,3620,1,0,0,0,24354,24355,7,5,0,0,24355,24356,7,18,0, +0,24356,24357,7,5,0,0,24357,24358,5,95,0,0,24358,24359,7,9,0,0,24359,24360, +7,2,0,0,24360,24361,7,14,0,0,24361,24362,5,95,0,0,24362,24363,7,8,0,0,24363, +24364,7,2,0,0,24364,24365,7,14,0,0,24365,24366,7,15,0,0,24366,24367,7,0, +0,0,24367,24368,7,3,0,0,24368,24369,7,6,0,0,24369,3622,1,0,0,0,24370,24371, +7,5,0,0,24371,24372,7,18,0,0,24372,24373,7,5,0,0,24373,24374,5,95,0,0,24374, +24375,7,9,0,0,24375,24376,7,5,0,0,24376,24377,7,4,0,0,24377,24378,5,95,0, +0,24378,24379,7,15,0,0,24379,24380,7,3,0,0,24380,24381,7,10,0,0,24381,24382, +7,14,0,0,24382,24383,5,50,0,0,24383,24384,7,5,0,0,24384,24385,7,6,0,0,24385, +24386,7,8,0,0,24386,3624,1,0,0,0,24387,24388,7,5,0,0,24388,24389,7,18,0, +0,24389,24390,7,5,0,0,24390,24391,5,95,0,0,24391,24392,7,9,0,0,24392,24393, +7,5,0,0,24393,24394,7,4,0,0,24394,24395,5,95,0,0,24395,24396,7,5,0,0,24396, +24397,7,6,0,0,24397,24398,7,8,0,0,24398,24399,5,50,0,0,24399,24400,7,15, +0,0,24400,24401,7,3,0,0,24401,24402,7,10,0,0,24402,24403,7,14,0,0,24403, +3626,1,0,0,0,24404,24405,7,5,0,0,24405,24406,7,18,0,0,24406,24407,7,5,0, +0,24407,24408,5,95,0,0,24408,24409,7,6,0,0,24409,24410,7,4,0,0,24410,24411, +5,95,0,0,24411,24412,7,1,0,0,24412,24413,7,16,0,0,24413,24414,7,10,0,0,24414, +24415,7,11,0,0,24415,24416,7,6,0,0,24416,24417,5,95,0,0,24417,24418,7,4, +0,0,24418,24419,7,2,0,0,24419,24420,5,95,0,0,24420,24421,7,3,0,0,24421,24422, +7,0,0,0,24422,24423,7,22,0,0,24423,3628,1,0,0,0,24424,24425,7,5,0,0,24425, +24426,7,18,0,0,24426,24427,7,5,0,0,24427,24428,5,95,0,0,24428,24429,7,6, +0,0,24429,24430,7,4,0,0,24430,24431,5,95,0,0,24431,24432,7,1,0,0,24432,24433, +7,11,0,0,24433,24434,7,2,0,0,24434,24435,7,1,0,0,24435,24436,5,95,0,0,24436, +24437,7,4,0,0,24437,24438,7,2,0,0,24438,24439,5,95,0,0,24439,24440,7,10, +0,0,24440,24441,7,14,0,0,24441,24442,7,0,0,0,24442,24443,7,17,0,0,24443, +24444,7,6,0,0,24444,3630,1,0,0,0,24445,24446,7,5,0,0,24446,24447,7,18,0, +0,24447,24448,7,5,0,0,24448,24449,5,95,0,0,24449,24450,7,6,0,0,24450,24451, +7,4,0,0,24451,24452,5,95,0,0,24452,24453,7,10,0,0,24453,24454,7,14,0,0,24454, +24455,7,0,0,0,24455,24456,7,17,0,0,24456,24457,7,6,0,0,24457,24458,5,95, +0,0,24458,24459,7,4,0,0,24459,24460,7,2,0,0,24460,24461,5,95,0,0,24461,24462, +7,1,0,0,24462,24463,7,11,0,0,24463,24464,7,2,0,0,24464,24465,7,1,0,0,24465, +3632,1,0,0,0,24466,24467,7,5,0,0,24467,24468,7,18,0,0,24468,24469,7,5,0, +0,24469,24470,5,95,0,0,24470,24471,7,6,0,0,24471,24472,7,4,0,0,24472,24473, +5,95,0,0,24473,24474,7,3,0,0,24474,24475,7,0,0,0,24475,24476,7,22,0,0,24476, +24477,5,95,0,0,24477,24478,7,4,0,0,24478,24479,7,2,0,0,24479,24480,5,95, +0,0,24480,24481,7,1,0,0,24481,24482,7,16,0,0,24482,24483,7,10,0,0,24483, +24484,7,11,0,0,24484,24485,7,6,0,0,24485,3634,1,0,0,0,24486,24487,7,5,0, +0,24487,24488,7,18,0,0,24488,24489,7,5,0,0,24489,24490,5,95,0,0,24490,24491, +7,6,0,0,24491,24492,7,25,0,0,24492,24493,7,4,0,0,24493,24494,7,15,0,0,24494, +24495,7,9,0,0,24495,24496,7,4,0,0,24496,24497,7,25,0,0,24497,24498,7,4,0, +0,24498,3636,1,0,0,0,24499,24500,7,5,0,0,24500,24501,7,18,0,0,24501,24502, +7,5,0,0,24502,24503,5,95,0,0,24503,24504,7,6,0,0,24504,24505,7,25,0,0,24505, +24506,7,4,0,0,24506,24507,7,3,0,0,24507,24508,7,0,0,0,24508,24509,7,8,0, +0,24509,24510,7,4,0,0,24510,24511,5,95,0,0,24511,24512,7,12,0,0,24512,24513, +7,4,0,0,24513,24514,7,8,0,0,24514,3638,1,0,0,0,24515,24516,7,5,0,0,24516, +24517,7,18,0,0,24517,24518,7,5,0,0,24518,24519,5,95,0,0,24519,24520,7,16, +0,0,24520,24521,7,1,0,0,24521,24522,7,4,0,0,24522,24523,5,95,0,0,24523,24524, +7,10,0,0,24524,24525,7,7,0,0,24525,24526,7,5,0,0,24526,24527,7,9,0,0,24527, +24528,7,6,0,0,24528,24529,7,11,0,0,24529,3640,1,0,0,0,24530,24531,7,5,0, +0,24531,24532,7,18,0,0,24532,24533,7,5,0,0,24533,24534,5,95,0,0,24534,24535, +7,16,0,0,24535,24536,7,10,0,0,24536,24537,7,11,0,0,24537,24538,7,4,0,0,24538, +24539,7,6,0,0,24539,24540,7,3,0,0,24540,24541,5,95,0,0,24541,24542,7,0,0, +0,24542,24543,7,8,0,0,24543,24544,7,11,0,0,24544,24545,7,5,0,0,24545,3642, +1,0,0,0,24546,24547,7,5,0,0,24547,24548,7,18,0,0,24548,24549,7,5,0,0,24549, +24550,5,95,0,0,24550,24551,7,16,0,0,24551,24552,7,7,0,0,24552,24553,7,14, +0,0,24553,24554,7,0,0,0,24554,24555,7,4,0,0,24555,24556,7,8,0,0,24556,24557, +7,19,0,0,24557,24558,7,6,0,0,24558,24559,7,5,0,0,24559,3644,1,0,0,0,24560, +24561,7,5,0,0,24561,24562,7,18,0,0,24562,24563,7,5,0,0,24563,24564,5,95, +0,0,24564,24565,7,16,0,0,24565,24566,7,7,0,0,24566,24567,7,3,0,0,24567,24568, +7,6,0,0,24568,24569,7,15,0,0,24569,24570,7,11,0,0,24570,24571,7,0,0,0,24571, +24572,7,8,0,0,24572,24573,7,6,0,0,24573,3646,1,0,0,0,24574,24575,7,5,0,0, +24575,24576,7,18,0,0,24576,24577,7,5,0,0,24577,24578,5,95,0,0,24578,24579, +7,17,0,0,24579,24580,7,6,0,0,24580,24581,7,4,0,0,24581,24582,5,95,0,0,24582, +24583,7,0,0,0,24583,24584,7,8,0,0,24584,24585,7,11,0,0,24585,24586,7,10, +0,0,24586,24587,7,9,0,0,24587,24588,7,5,0,0,24588,3648,1,0,0,0,24589,24590, +7,5,0,0,24590,24591,7,18,0,0,24591,24592,7,5,0,0,24592,24593,5,95,0,0,24593, +24594,7,17,0,0,24594,24595,7,6,0,0,24595,24596,7,4,0,0,24596,24597,5,95, +0,0,24597,24598,7,8,0,0,24598,24599,7,2,0,0,24599,24600,7,11,0,0,24600,24601, +5,95,0,0,24601,24602,7,0,0,0,24602,24603,7,8,0,0,24603,24604,7,11,0,0,24604, +24605,7,10,0,0,24605,24606,7,9,0,0,24606,24607,7,5,0,0,24607,3650,1,0,0, +0,24608,24609,7,5,0,0,24609,24610,7,18,0,0,24610,24611,7,5,0,0,24611,24612, +5,95,0,0,24612,24613,7,17,0,0,24613,24614,7,6,0,0,24614,24615,7,4,0,0,24615, +24616,5,95,0,0,24616,24617,7,15,0,0,24617,24618,7,3,0,0,24618,24619,7,10, +0,0,24619,24620,7,13,0,0,24620,24621,7,10,0,0,24621,24622,7,11,0,0,24622, +24623,7,6,0,0,24623,24624,7,17,0,0,24624,24625,7,6,0,0,24625,24626,7,5,0, +0,24626,3652,1,0,0,0,24627,24628,7,5,0,0,24628,24629,7,18,0,0,24629,24630, +7,5,0,0,24630,24631,5,95,0,0,24631,24632,7,17,0,0,24632,24633,7,6,0,0,24633, +24634,7,4,0,0,24634,24635,7,4,0,0,24635,24636,7,2,0,0,24636,24637,7,21,0, +0,24637,24638,7,6,0,0,24638,24639,7,7,0,0,24639,24640,7,10,0,0,24640,24641, +7,9,0,0,24641,3654,1,0,0,0,24642,24643,7,5,0,0,24643,24644,7,18,0,0,24644, +24645,7,5,0,0,24645,24646,5,95,0,0,24646,24647,7,17,0,0,24647,24648,7,6, +0,0,24648,24649,7,4,0,0,24649,24650,7,25,0,0,24650,24651,7,4,0,0,24651,24652, +7,10,0,0,24652,24653,7,13,0,0,24653,24654,7,0,0,0,24654,24655,7,11,0,0,24655, +3656,1,0,0,0,24656,24657,7,5,0,0,24657,24658,7,18,0,0,24658,24659,7,5,0, +0,24659,24660,5,95,0,0,24660,24661,7,17,0,0,24661,24662,7,12,0,0,24662,24663, +7,10,0,0,24663,24664,7,9,0,0,24664,3658,1,0,0,0,24665,24666,7,5,0,0,24666, +24667,7,18,0,0,24667,24668,7,5,0,0,24668,24669,7,17,0,0,24669,24670,7,12, +0,0,24670,24671,7,10,0,0,24671,24672,7,9,0,0,24672,3660,1,0,0,0,24673,24674, +7,5,0,0,24674,24675,7,18,0,0,24675,24676,7,5,0,0,24676,24677,7,21,0,0,24677, +24678,7,14,0,0,24678,3662,1,0,0,0,24679,24680,7,5,0,0,24680,24681,7,18,0, +0,24681,24682,7,5,0,0,24682,24683,5,95,0,0,24683,24684,7,14,0,0,24684,24685, +7,0,0,0,24685,24686,7,21,0,0,24686,24687,7,6,0,0,24687,24688,5,95,0,0,24688, +24689,7,25,0,0,24689,24690,7,14,0,0,24690,24691,7,11,0,0,24691,24692,7,7, +0,0,24692,24693,7,2,0,0,24693,24694,7,9,0,0,24694,24695,7,6,0,0,24695,24696, +7,10,0,0,24696,24697,7,9,0,0,24697,3664,1,0,0,0,24698,24699,7,5,0,0,24699, +24700,7,18,0,0,24700,24701,7,5,0,0,24701,24702,5,95,0,0,24702,24703,7,14, +0,0,24703,24704,7,0,0,0,24704,24705,7,21,0,0,24705,24706,7,6,0,0,24706,24707, +7,25,0,0,24707,24708,7,14,0,0,24708,24709,7,11,0,0,24709,3666,1,0,0,0,24710, +24711,7,5,0,0,24711,24712,7,18,0,0,24712,24713,7,5,0,0,24713,24714,5,95, +0,0,24714,24715,7,14,0,0,24715,24716,7,21,0,0,24716,24717,7,25,0,0,24717, +24718,7,14,0,0,24718,24719,7,11,0,0,24719,24720,7,0,0,0,24720,24721,7,4, +0,0,24721,24722,7,4,0,0,24722,24723,7,3,0,0,24723,3668,1,0,0,0,24724,24725, +7,5,0,0,24725,24726,7,18,0,0,24726,24727,7,5,0,0,24727,24728,5,95,0,0,24728, +24729,7,14,0,0,24729,24730,7,21,0,0,24730,24731,7,25,0,0,24731,24732,7,4, +0,0,24732,24733,7,10,0,0,24733,3670,1,0,0,0,24734,24735,7,5,0,0,24735,24736, +7,18,0,0,24736,24737,7,5,0,0,24737,24738,7,2,0,0,24738,24739,7,1,0,0,24739, +24740,7,20,0,0,24740,3672,1,0,0,0,24741,24742,7,5,0,0,24742,24743,7,18,0, +0,24743,24744,7,5,0,0,24744,24745,5,95,0,0,24745,24746,7,2,0,0,24746,24747, +7,15,0,0,24747,24748,5,95,0,0,24748,24749,7,0,0,0,24749,24750,7,9,0,0,24750, +24751,7,4,0,0,24751,24752,5,50,0,0,24752,24753,7,1,0,0,24753,24754,7,10, +0,0,24754,24755,7,7,0,0,24755,3674,1,0,0,0,24756,24757,7,5,0,0,24757,24758, +7,18,0,0,24758,24759,7,5,0,0,24759,24760,5,95,0,0,24760,24761,7,2,0,0,24761, +24762,7,15,0,0,24762,24763,5,95,0,0,24763,24764,7,0,0,0,24764,24765,7,9, +0,0,24765,24766,7,4,0,0,24766,24767,7,8,0,0,24767,24768,7,2,0,0,24768,24769, +7,7,0,0,24769,24770,7,5,0,0,24770,3676,1,0,0,0,24771,24772,7,5,0,0,24772, +24773,7,18,0,0,24773,24774,7,5,0,0,24774,24775,5,95,0,0,24775,24776,7,2, +0,0,24776,24777,7,15,0,0,24777,24778,5,95,0,0,24778,24779,7,0,0,0,24779, +24780,7,11,0,0,24780,24781,7,5,0,0,24781,24782,7,8,0,0,24782,24783,7,3,0, +0,24783,24784,7,13,0,0,24784,24785,7,0,0,0,24785,24786,7,11,0,0,24786,3678, +1,0,0,0,24787,24788,7,5,0,0,24788,24789,7,18,0,0,24789,24790,7,5,0,0,24790, +24791,5,95,0,0,24791,24792,7,2,0,0,24792,24793,7,15,0,0,24793,24794,5,95, +0,0,24794,24795,7,0,0,0,24795,24796,7,4,0,0,24796,24797,7,17,0,0,24797,3680, +1,0,0,0,24798,24799,7,5,0,0,24799,24800,7,18,0,0,24800,24801,7,5,0,0,24801, +24802,5,95,0,0,24802,24803,7,2,0,0,24803,24804,7,15,0,0,24804,24805,5,95, +0,0,24805,24806,7,1,0,0,24806,24807,7,10,0,0,24807,24808,7,7,0,0,24808,24809, +5,50,0,0,24809,24810,7,0,0,0,24810,24811,7,9,0,0,24811,24812,7,4,0,0,24812, +3682,1,0,0,0,24813,24814,7,5,0,0,24814,24815,7,18,0,0,24815,24816,7,5,0, +0,24816,24817,5,95,0,0,24817,24818,7,2,0,0,24818,24819,7,15,0,0,24819,24820, +5,95,0,0,24820,24821,7,1,0,0,24821,24822,7,10,0,0,24822,24823,7,4,0,0,24823, +24824,7,13,0,0,24824,24825,7,6,0,0,24825,24826,7,8,0,0,24826,3684,1,0,0, +0,24827,24828,7,5,0,0,24828,24829,7,18,0,0,24829,24830,7,5,0,0,24830,24831, +5,95,0,0,24831,24832,7,2,0,0,24832,24833,7,15,0,0,24833,24834,5,95,0,0,24834, +24835,7,1,0,0,24835,24836,7,11,0,0,24836,24837,5,50,0,0,24837,24838,7,3, +0,0,24838,3686,1,0,0,0,24839,24840,7,5,0,0,24840,24841,7,18,0,0,24841,24842, +7,5,0,0,24842,24843,5,95,0,0,24843,24844,7,2,0,0,24844,24845,7,15,0,0,24845, +24846,5,95,0,0,24846,24847,7,1,0,0,24847,24848,7,11,0,0,24848,24849,7,2, +0,0,24849,24850,7,2,0,0,24850,24851,7,14,0,0,24851,24852,5,95,0,0,24852, +24853,7,16,0,0,24853,24854,7,10,0,0,24854,24855,7,11,0,0,24855,24856,7,4, +0,0,24856,24857,7,6,0,0,24857,24858,7,3,0,0,24858,24859,5,95,0,0,24859,24860, +7,11,0,0,24860,24861,7,10,0,0,24861,24862,7,5,0,0,24862,24863,7,4,0,0,24863, +3688,1,0,0,0,24864,24865,7,5,0,0,24865,24866,7,18,0,0,24866,24867,7,5,0, +0,24867,24868,5,95,0,0,24868,24869,7,2,0,0,24869,24870,7,15,0,0,24870,24871, +5,95,0,0,24871,24872,7,1,0,0,24872,24873,7,11,0,0,24873,24874,7,2,0,0,24874, +24875,7,2,0,0,24875,24876,7,14,0,0,24876,24877,5,95,0,0,24877,24878,7,16, +0,0,24878,24879,7,10,0,0,24879,24880,7,11,0,0,24880,24881,7,4,0,0,24881, +24882,7,6,0,0,24882,24883,7,3,0,0,24883,3690,1,0,0,0,24884,24885,7,5,0,0, +24885,24886,7,18,0,0,24886,24887,7,5,0,0,24887,24888,5,95,0,0,24888,24889, +7,2,0,0,24889,24890,7,15,0,0,24890,24891,5,95,0,0,24891,24892,7,8,0,0,24892, +24893,5,50,0,0,24893,24894,7,8,0,0,24894,3692,1,0,0,0,24895,24896,7,5,0, +0,24896,24897,7,18,0,0,24897,24898,7,5,0,0,24898,24899,5,95,0,0,24899,24900, +7,2,0,0,24900,24901,7,15,0,0,24901,24902,5,95,0,0,24902,24903,7,8,0,0,24903, +24904,7,0,0,0,24904,24905,7,5,0,0,24905,24906,7,4,0,0,24906,3694,1,0,0,0, +24907,24908,7,5,0,0,24908,24909,7,18,0,0,24909,24910,7,5,0,0,24910,24911, +5,95,0,0,24911,24912,7,2,0,0,24912,24913,7,15,0,0,24913,24914,5,95,0,0,24914, +24915,7,8,0,0,24915,24916,7,6,0,0,24916,24917,7,17,0,0,24917,3696,1,0,0, +0,24918,24919,7,5,0,0,24919,24920,7,18,0,0,24920,24921,7,5,0,0,24921,24922, +5,95,0,0,24922,24923,7,2,0,0,24923,24924,7,15,0,0,24924,24925,5,95,0,0,24925, +24926,7,8,0,0,24926,24927,7,11,0,0,24927,24928,5,50,0,0,24928,24929,7,8, +0,0,24929,3698,1,0,0,0,24930,24931,7,5,0,0,24931,24932,7,18,0,0,24932,24933, +7,5,0,0,24933,24934,5,95,0,0,24934,24935,7,2,0,0,24935,24936,7,15,0,0,24936, +24937,5,95,0,0,24937,24938,7,8,0,0,24938,24939,7,2,0,0,24939,24940,7,14, +0,0,24940,24941,7,1,0,0,24941,24942,7,10,0,0,24942,24943,7,7,0,0,24943,24944, +7,6,0,0,24944,24945,7,9,0,0,24945,24946,5,95,0,0,24946,24947,7,19,0,0,24947, +24948,7,0,0,0,24948,24949,7,5,0,0,24949,24950,7,19,0,0,24950,3700,1,0,0, +0,24951,24952,7,5,0,0,24952,24953,7,18,0,0,24953,24954,7,5,0,0,24954,24955, +5,95,0,0,24955,24956,7,2,0,0,24956,24957,7,15,0,0,24957,24958,5,95,0,0,24958, +24959,7,8,0,0,24959,24960,7,2,0,0,24960,24961,7,14,0,0,24961,24962,7,15, +0,0,24962,3702,1,0,0,0,24963,24964,7,5,0,0,24964,24965,7,18,0,0,24965,24966, +7,5,0,0,24966,24967,5,95,0,0,24967,24968,7,2,0,0,24968,24969,7,15,0,0,24969, +24970,5,95,0,0,24970,24971,7,8,0,0,24971,24972,7,2,0,0,24972,24973,7,7,0, +0,24973,24974,7,13,0,0,24974,24975,7,6,0,0,24975,24976,7,3,0,0,24976,24977, +7,4,0,0,24977,3704,1,0,0,0,24978,24979,7,5,0,0,24979,24980,7,18,0,0,24980, +24981,7,5,0,0,24981,24982,5,95,0,0,24982,24983,7,2,0,0,24983,24984,7,15, +0,0,24984,24985,5,95,0,0,24985,24986,7,8,0,0,24986,24987,7,2,0,0,24987,24988, +7,12,0,0,24988,24989,7,7,0,0,24989,24990,7,4,0,0,24990,24991,7,8,0,0,24991, +24992,7,19,0,0,24992,24993,7,17,0,0,24993,3706,1,0,0,0,24994,24995,7,5,0, +0,24995,24996,7,18,0,0,24996,24997,7,5,0,0,24997,24998,5,95,0,0,24998,24999, +7,2,0,0,24999,25000,7,15,0,0,25000,25001,5,95,0,0,25001,25002,7,8,0,0,25002, +25003,7,5,0,0,25003,25004,7,8,0,0,25004,25005,7,2,0,0,25005,25006,7,7,0, +0,25006,25007,7,13,0,0,25007,3708,1,0,0,0,25008,25009,7,5,0,0,25009,25010, +7,18,0,0,25010,25011,7,5,0,0,25011,25012,5,95,0,0,25012,25013,7,2,0,0,25013, +25014,7,15,0,0,25014,25015,5,95,0,0,25015,25016,7,8,0,0,25016,25017,7,5, +0,0,25017,25018,7,8,0,0,25018,25019,7,2,0,0,25019,25020,7,7,0,0,25020,25021, +7,13,0,0,25021,25022,7,4,0,0,25022,25023,7,6,0,0,25023,25024,7,5,0,0,25024, +25025,7,4,0,0,25025,3710,1,0,0,0,25026,25027,7,5,0,0,25027,25028,7,18,0, +0,25028,25029,7,5,0,0,25029,25030,5,95,0,0,25030,25031,7,2,0,0,25031,25032, +7,15,0,0,25032,25033,5,95,0,0,25033,25034,7,8,0,0,25034,25035,7,5,0,0,25035, +25036,7,3,0,0,25036,3712,1,0,0,0,25037,25038,7,5,0,0,25038,25039,7,18,0, +0,25039,25040,7,5,0,0,25040,25041,5,95,0,0,25041,25042,7,2,0,0,25042,25043, +7,15,0,0,25043,25044,5,95,0,0,25044,25045,7,8,0,0,25045,25046,7,5,0,0,25046, +25047,7,25,0,0,25047,25048,5,95,0,0,25048,25049,7,15,0,0,25049,25050,7,0, +0,0,25050,25051,7,4,0,0,25051,25052,7,8,0,0,25052,25053,7,19,0,0,25053,3714, +1,0,0,0,25054,25055,7,5,0,0,25055,25056,7,18,0,0,25056,25057,7,5,0,0,25057, +25058,5,95,0,0,25058,25059,7,2,0,0,25059,25060,7,15,0,0,25060,25061,5,95, +0,0,25061,25062,7,8,0,0,25062,25063,7,18,0,0,25063,25064,7,8,0,0,25064,25065, +7,11,0,0,25065,25066,7,6,0,0,25066,25067,7,9,0,0,25067,25068,5,95,0,0,25068, +25069,7,5,0,0,25069,25070,7,6,0,0,25070,25071,7,24,0,0,25071,3716,1,0,0, +0,25072,25073,7,5,0,0,25073,25074,7,18,0,0,25074,25075,7,5,0,0,25075,25076, +5,95,0,0,25076,25077,7,2,0,0,25077,25078,7,15,0,0,25078,25079,5,95,0,0,25079, +25080,7,9,0,0,25080,25081,7,6,0,0,25081,25082,7,8,0,0,25082,25083,7,2,0, +0,25083,25084,7,14,0,0,25084,25085,7,15,0,0,25085,3718,1,0,0,0,25086,25087, +7,5,0,0,25087,25088,7,18,0,0,25088,25089,7,5,0,0,25089,25090,5,95,0,0,25090, +25091,7,2,0,0,25091,25092,7,15,0,0,25092,25093,5,95,0,0,25093,25094,7,9, +0,0,25094,25095,7,6,0,0,25095,25096,7,5,0,0,25096,25097,7,8,0,0,25097,25098, +7,6,0,0,25098,25099,7,7,0,0,25099,25100,7,9,0,0,25100,3720,1,0,0,0,25101, +25102,7,5,0,0,25102,25103,7,18,0,0,25103,25104,7,5,0,0,25104,25105,5,95, +0,0,25105,25106,7,2,0,0,25106,25107,7,15,0,0,25107,25108,5,95,0,0,25108, +25109,7,9,0,0,25109,25110,7,10,0,0,25110,25111,7,5,0,0,25111,25112,7,4,0, +0,25112,25113,7,10,0,0,25113,25114,7,7,0,0,25114,25115,7,8,0,0,25115,25116, +7,4,0,0,25116,3722,1,0,0,0,25117,25118,7,5,0,0,25118,25119,7,18,0,0,25119, +25120,7,5,0,0,25120,25121,5,95,0,0,25121,25122,7,2,0,0,25122,25123,7,15, +0,0,25123,25124,5,95,0,0,25124,25125,7,9,0,0,25125,25126,7,3,0,0,25126,25127, +7,0,0,0,25127,3724,1,0,0,0,25128,25129,7,5,0,0,25129,25130,7,18,0,0,25130, +25131,7,5,0,0,25131,25132,5,95,0,0,25132,25133,7,2,0,0,25133,25134,7,15, +0,0,25134,25135,5,95,0,0,25135,25136,7,9,0,0,25136,25137,7,12,0,0,25137, +25138,7,14,0,0,25138,25139,7,15,0,0,25139,3726,1,0,0,0,25140,25141,7,5,0, +0,25141,25142,7,18,0,0,25142,25143,7,5,0,0,25143,25144,5,95,0,0,25144,25145, +7,2,0,0,25145,25146,7,15,0,0,25146,25147,5,95,0,0,25147,25148,7,9,0,0,25148, +25149,7,13,0,0,25149,25150,5,95,0,0,25150,25151,7,8,0,0,25151,25152,7,19, +0,0,25152,25153,7,6,0,0,25153,25154,7,8,0,0,25154,25155,7,21,0,0,25155,3728, +1,0,0,0,25156,25157,7,5,0,0,25157,25158,7,18,0,0,25158,25159,7,5,0,0,25159, +25160,5,95,0,0,25160,25161,7,2,0,0,25161,25162,7,15,0,0,25162,25163,5,95, +0,0,25163,25164,7,6,0,0,25164,25165,7,7,0,0,25165,25166,7,16,0,0,25166,25167, +7,2,0,0,25167,25168,7,3,0,0,25168,25169,7,8,0,0,25169,25170,7,6,0,0,25170, +25171,5,95,0,0,25171,25172,7,7,0,0,25172,25173,7,2,0,0,25173,25174,7,4,0, +0,25174,25175,5,95,0,0,25175,25176,7,7,0,0,25176,25177,7,12,0,0,25177,25178, +7,11,0,0,25178,25179,7,11,0,0,25179,25180,5,36,0,0,25180,3730,1,0,0,0,25181, +25182,7,5,0,0,25182,25183,7,18,0,0,25183,25184,7,5,0,0,25184,25185,7,2,0, +0,25185,25186,7,15,0,0,25186,25187,7,6,0,0,25187,25188,7,3,0,0,25188,3732, +1,0,0,0,25189,25190,7,5,0,0,25190,25191,7,18,0,0,25191,25192,7,5,0,0,25192, +25193,5,95,0,0,25193,25194,7,2,0,0,25194,25195,7,15,0,0,25195,25196,5,95, +0,0,25196,25197,7,6,0,0,25197,25198,7,25,0,0,25198,25199,7,4,0,0,25199,25200, +7,3,0,0,25200,25201,7,0,0,0,25201,25202,7,8,0,0,25202,25203,7,4,0,0,25203, +3734,1,0,0,0,25204,25205,7,5,0,0,25205,25206,7,18,0,0,25206,25207,7,5,0, +0,25207,25208,5,95,0,0,25208,25209,7,2,0,0,25209,25210,7,15,0,0,25210,25211, +5,95,0,0,25211,25212,7,17,0,0,25212,25213,7,3,0,0,25213,25214,7,2,0,0,25214, +25215,7,12,0,0,25215,25216,7,15,0,0,25216,25217,7,10,0,0,25217,25218,7,7, +0,0,25218,25219,7,17,0,0,25219,3736,1,0,0,0,25220,25221,7,5,0,0,25221,25222, +7,18,0,0,25222,25223,7,5,0,0,25223,25224,5,95,0,0,25224,25225,7,2,0,0,25225, +25226,7,15,0,0,25226,25227,5,95,0,0,25227,25228,7,17,0,0,25228,25229,7,12, +0,0,25229,25230,7,10,0,0,25230,25231,7,9,0,0,25231,3738,1,0,0,0,25232,25233, +7,5,0,0,25233,25234,7,18,0,0,25234,25235,7,5,0,0,25235,25236,5,95,0,0,25236, +25237,7,2,0,0,25237,25238,7,15,0,0,25238,25239,5,95,0,0,25239,25240,7,19, +0,0,25240,25241,7,0,0,0,25241,25242,7,5,0,0,25242,25243,7,19,0,0,25243,3740, +1,0,0,0,25244,25245,7,5,0,0,25245,25246,7,18,0,0,25246,25247,7,5,0,0,25247, +25248,5,95,0,0,25248,25249,7,2,0,0,25249,25250,7,15,0,0,25250,25251,5,95, +0,0,25251,25252,7,10,0,0,25252,25253,7,10,0,0,25253,25254,7,25,0,0,25254, +3742,1,0,0,0,25255,25256,7,5,0,0,25256,25257,7,18,0,0,25257,25258,7,5,0, +0,25258,25259,5,95,0,0,25259,25260,7,2,0,0,25260,25261,7,15,0,0,25261,25262, +5,95,0,0,25262,25263,7,10,0,0,25263,25264,7,4,0,0,25264,25265,7,3,0,0,25265, +3744,1,0,0,0,25266,25267,7,5,0,0,25267,25268,7,18,0,0,25268,25269,7,5,0, +0,25269,25270,5,95,0,0,25270,25271,7,2,0,0,25271,25272,7,15,0,0,25272,25273, +5,95,0,0,25273,25274,7,21,0,0,25274,25275,7,6,0,0,25275,25276,7,18,0,0,25276, +25277,5,95,0,0,25277,25278,7,13,0,0,25278,25279,7,6,0,0,25279,25280,7,8, +0,0,25280,25281,7,4,0,0,25281,25282,7,2,0,0,25282,25283,7,3,0,0,25283,25284, +5,95,0,0,25284,25285,7,8,0,0,25285,25286,7,3,0,0,25286,25287,7,6,0,0,25287, +25288,7,0,0,0,25288,25289,7,4,0,0,25289,25290,7,6,0,0,25290,3746,1,0,0,0, +25291,25292,7,5,0,0,25292,25293,7,18,0,0,25293,25294,7,5,0,0,25294,25295, +5,95,0,0,25295,25296,7,2,0,0,25296,25297,7,15,0,0,25297,25298,5,95,0,0,25298, +25299,7,21,0,0,25299,25300,7,6,0,0,25300,25301,7,18,0,0,25301,25302,5,95, +0,0,25302,25303,7,13,0,0,25303,25304,7,6,0,0,25304,25305,7,8,0,0,25305,25306, +7,4,0,0,25306,25307,7,2,0,0,25307,25308,7,3,0,0,25308,25309,5,95,0,0,25309, +25310,7,16,0,0,25310,25311,7,10,0,0,25311,25312,7,11,0,0,25312,25313,7,4, +0,0,25313,25314,7,6,0,0,25314,25315,7,3,0,0,25315,25316,5,95,0,0,25316,25317, +7,11,0,0,25317,25318,7,10,0,0,25318,25319,7,5,0,0,25319,25320,7,4,0,0,25320, +3748,1,0,0,0,25321,25322,7,5,0,0,25322,25323,7,18,0,0,25323,25324,7,5,0, +0,25324,25325,5,95,0,0,25325,25326,7,2,0,0,25326,25327,7,15,0,0,25327,25328, +5,95,0,0,25328,25329,7,21,0,0,25329,25330,7,6,0,0,25330,25331,7,18,0,0,25331, +25332,5,95,0,0,25332,25333,7,13,0,0,25333,25334,7,6,0,0,25334,25335,7,8, +0,0,25335,25336,7,4,0,0,25336,25337,7,2,0,0,25337,25338,7,3,0,0,25338,25339, +5,95,0,0,25339,25340,7,16,0,0,25340,25341,7,10,0,0,25341,25342,7,11,0,0, +25342,25343,7,4,0,0,25343,25344,7,6,0,0,25344,25345,7,3,0,0,25345,3750,1, +0,0,0,25346,25347,7,5,0,0,25347,25348,7,18,0,0,25348,25349,7,5,0,0,25349, +25350,5,95,0,0,25350,25351,7,2,0,0,25351,25352,7,15,0,0,25352,25353,5,95, +0,0,25353,25354,7,21,0,0,25354,25355,7,6,0,0,25355,25356,7,18,0,0,25356, +25357,5,95,0,0,25357,25358,7,13,0,0,25358,25359,7,6,0,0,25359,25360,7,8, +0,0,25360,25361,7,4,0,0,25361,25362,7,2,0,0,25362,25363,7,3,0,0,25363,25364, +5,95,0,0,25364,25365,7,5,0,0,25365,25366,7,12,0,0,25366,25367,7,8,0,0,25367, +25368,7,8,0,0,25368,25369,7,6,0,0,25369,25370,7,6,0,0,25370,25371,7,9,0, +0,25371,25372,7,6,0,0,25372,25373,7,9,0,0,25373,3752,1,0,0,0,25374,25375, +7,5,0,0,25375,25376,7,18,0,0,25376,25377,7,5,0,0,25377,25378,5,95,0,0,25378, +25379,7,2,0,0,25379,25380,7,15,0,0,25380,25381,5,95,0,0,25381,25382,7,21, +0,0,25382,25383,7,6,0,0,25383,25384,7,18,0,0,25384,25385,5,95,0,0,25385, +25386,7,13,0,0,25386,25387,7,6,0,0,25387,25388,7,8,0,0,25388,25389,7,4,0, +0,25389,25390,7,2,0,0,25390,25391,7,3,0,0,25391,25392,5,95,0,0,25392,25393, +7,12,0,0,25393,25394,7,5,0,0,25394,25395,7,6,0,0,25395,3754,1,0,0,0,25396, +25397,7,5,0,0,25397,25398,7,18,0,0,25398,25399,7,5,0,0,25399,25400,5,95, +0,0,25400,25401,7,2,0,0,25401,25402,7,15,0,0,25402,25403,5,95,0,0,25403, +25404,7,11,0,0,25404,25405,7,1,0,0,25405,25406,7,10,0,0,25406,25407,7,9, +0,0,25407,3756,1,0,0,0,25408,25409,7,5,0,0,25409,25410,7,18,0,0,25410,25411, +7,5,0,0,25411,25412,5,95,0,0,25412,25413,7,2,0,0,25413,25414,7,15,0,0,25414, +25415,5,95,0,0,25415,25416,7,11,0,0,25416,25417,7,2,0,0,25417,25418,7,1, +0,0,25418,25419,7,11,0,0,25419,25420,7,2,0,0,25420,25421,7,8,0,0,25421,25422, +5,50,0,0,25422,25423,7,1,0,0,25423,25424,7,11,0,0,25424,25425,7,2,0,0,25425, +25426,7,1,0,0,25426,3758,1,0,0,0,25427,25428,7,5,0,0,25428,25429,7,18,0, +0,25429,25430,7,5,0,0,25430,25431,5,95,0,0,25431,25432,7,2,0,0,25432,25433, +7,15,0,0,25433,25434,5,95,0,0,25434,25435,7,11,0,0,25435,25436,7,2,0,0,25436, +25437,7,1,0,0,25437,25438,7,11,0,0,25438,25439,7,2,0,0,25439,25440,7,8,0, +0,25440,25441,5,50,0,0,25441,25442,7,8,0,0,25442,25443,7,11,0,0,25443,25444, +7,2,0,0,25444,25445,7,1,0,0,25445,3760,1,0,0,0,25446,25447,7,5,0,0,25447, +25448,7,18,0,0,25448,25449,7,5,0,0,25449,25450,5,95,0,0,25450,25451,7,2, +0,0,25451,25452,7,15,0,0,25452,25453,5,95,0,0,25453,25454,7,11,0,0,25454, +25455,7,2,0,0,25455,25456,7,1,0,0,25456,25457,7,11,0,0,25457,25458,7,2,0, +0,25458,25459,7,8,0,0,25459,25460,5,50,0,0,25460,25461,7,10,0,0,25461,25462, +7,9,0,0,25462,3762,1,0,0,0,25463,25464,7,5,0,0,25464,25465,7,18,0,0,25465, +25466,7,5,0,0,25466,25467,5,95,0,0,25467,25468,7,2,0,0,25468,25469,7,15, +0,0,25469,25470,5,95,0,0,25470,25471,7,11,0,0,25471,25472,7,2,0,0,25472, +25473,7,1,0,0,25473,25474,7,11,0,0,25474,25475,7,2,0,0,25475,25476,7,8,0, +0,25476,25477,5,50,0,0,25477,25478,7,7,0,0,25478,25479,7,8,0,0,25479,25480, +7,11,0,0,25480,25481,7,2,0,0,25481,25482,7,1,0,0,25482,3764,1,0,0,0,25483, +25484,7,5,0,0,25484,25485,7,18,0,0,25485,25486,7,5,0,0,25486,25487,5,95, +0,0,25487,25488,7,2,0,0,25488,25489,7,15,0,0,25489,25490,5,95,0,0,25490, +25491,7,11,0,0,25491,25492,7,2,0,0,25492,25493,7,1,0,0,25493,25494,7,11, +0,0,25494,25495,7,2,0,0,25495,25496,7,8,0,0,25496,25497,5,50,0,0,25497,25498, +7,4,0,0,25498,25499,7,18,0,0,25499,25500,7,15,0,0,25500,3766,1,0,0,0,25501, +25502,7,5,0,0,25502,25503,7,18,0,0,25503,25504,7,5,0,0,25504,25505,5,95, +0,0,25505,25506,7,2,0,0,25506,25507,7,15,0,0,25507,25508,5,95,0,0,25508, +25509,7,11,0,0,25509,25510,7,5,0,0,25510,25511,7,13,0,0,25511,25512,7,10, +0,0,25512,3768,1,0,0,0,25513,25514,7,5,0,0,25514,25515,7,18,0,0,25515,25516, +7,5,0,0,25516,25517,5,95,0,0,25517,25518,7,2,0,0,25518,25519,7,15,0,0,25519, +25520,5,95,0,0,25520,25521,7,11,0,0,25521,25522,7,13,0,0,25522,25523,7,11, +0,0,25523,3770,1,0,0,0,25524,25525,7,5,0,0,25525,25526,7,18,0,0,25526,25527, +7,5,0,0,25527,25528,5,95,0,0,25528,25529,7,2,0,0,25529,25530,7,15,0,0,25530, +25531,5,95,0,0,25531,25532,7,14,0,0,25532,25533,7,0,0,0,25533,25534,7,21, +0,0,25534,25535,7,6,0,0,25535,25536,7,2,0,0,25536,25537,7,10,0,0,25537,25538, +7,9,0,0,25538,3772,1,0,0,0,25539,25540,7,5,0,0,25540,25541,7,18,0,0,25541, +25542,7,5,0,0,25542,25543,5,95,0,0,25543,25544,7,2,0,0,25544,25545,7,15, +0,0,25545,25546,5,95,0,0,25546,25547,7,14,0,0,25547,25548,7,0,0,0,25548, +25549,7,15,0,0,25549,25550,5,95,0,0,25550,25551,7,7,0,0,25551,25552,7,2, +0,0,25552,25553,7,7,0,0,25553,25554,7,7,0,0,25554,25555,7,12,0,0,25555,25556, +7,11,0,0,25556,25557,7,11,0,0,25557,3774,1,0,0,0,25558,25559,7,5,0,0,25559, +25560,7,18,0,0,25560,25561,7,5,0,0,25561,25562,5,95,0,0,25562,25563,7,2, +0,0,25563,25564,7,15,0,0,25564,25565,5,95,0,0,25565,25566,7,14,0,0,25566, +25567,7,5,0,0,25567,25568,7,3,0,0,25568,3776,1,0,0,0,25569,25570,7,5,0,0, +25570,25571,7,18,0,0,25571,25572,7,5,0,0,25572,25573,5,95,0,0,25573,25574, +7,2,0,0,25574,25575,7,15,0,0,25575,25576,5,95,0,0,25576,25577,7,7,0,0,25577, +25578,7,10,0,0,25578,25579,7,8,0,0,25579,25580,7,2,0,0,25580,25581,7,14, +0,0,25581,25582,7,1,0,0,25582,25583,7,10,0,0,25583,25584,7,7,0,0,25584,25585, +7,6,0,0,25585,3778,1,0,0,0,25586,25587,7,5,0,0,25587,25588,7,18,0,0,25588, +25589,7,5,0,0,25589,25590,5,95,0,0,25590,25591,7,2,0,0,25591,25592,7,15, +0,0,25592,25593,5,95,0,0,25593,25594,7,7,0,0,25594,25595,7,10,0,0,25595, +25596,7,6,0,0,25596,25597,7,25,0,0,25597,25598,7,4,0,0,25598,25599,7,3,0, +0,25599,25600,7,0,0,0,25600,25601,7,8,0,0,25601,25602,7,4,0,0,25602,3780, +1,0,0,0,25603,25604,7,5,0,0,25604,25605,7,18,0,0,25605,25606,7,5,0,0,25606, +25607,5,95,0,0,25607,25608,7,2,0,0,25608,25609,7,15,0,0,25609,25610,5,95, +0,0,25610,25611,7,7,0,0,25611,25612,7,10,0,0,25612,25613,7,10,0,0,25613, +3782,1,0,0,0,25614,25615,7,5,0,0,25615,25616,7,18,0,0,25616,25617,7,5,0, +0,25617,25618,5,95,0,0,25618,25619,7,2,0,0,25619,25620,7,15,0,0,25620,25621, +5,95,0,0,25621,25622,7,7,0,0,25622,25623,7,10,0,0,25623,25624,7,25,0,0,25624, +3784,1,0,0,0,25625,25626,7,5,0,0,25626,25627,7,18,0,0,25627,25628,7,5,0, +0,25628,25629,5,95,0,0,25629,25630,7,2,0,0,25630,25631,7,15,0,0,25631,25632, +5,95,0,0,25632,25633,7,7,0,0,25633,25634,7,2,0,0,25634,25635,7,6,0,0,25635, +25636,7,25,0,0,25636,25637,7,15,0,0,25637,25638,7,0,0,0,25638,25639,7,7, +0,0,25639,25640,7,9,0,0,25640,3786,1,0,0,0,25641,25642,7,5,0,0,25642,25643, +7,18,0,0,25643,25644,7,5,0,0,25644,25645,5,95,0,0,25645,25646,7,2,0,0,25646, +25647,7,15,0,0,25647,25648,5,95,0,0,25648,25649,7,7,0,0,25649,25650,7,4, +0,0,25650,25651,7,8,0,0,25651,25652,7,10,0,0,25652,25653,7,14,0,0,25653, +25654,7,17,0,0,25654,25655,5,36,0,0,25655,3788,1,0,0,0,25656,25657,7,5,0, +0,25657,25658,7,18,0,0,25658,25659,7,5,0,0,25659,25660,5,95,0,0,25660,25661, +7,2,0,0,25661,25662,7,15,0,0,25662,25663,5,95,0,0,25663,25664,7,7,0,0,25664, +25665,7,12,0,0,25665,25666,7,14,0,0,25666,25667,7,4,0,0,25667,25668,7,2, +0,0,25668,25669,7,3,0,0,25669,25670,7,0,0,0,25670,25671,7,22,0,0,25671,3790, +1,0,0,0,25672,25673,7,5,0,0,25673,25674,7,18,0,0,25674,25675,7,5,0,0,25675, +25676,5,95,0,0,25676,25677,7,2,0,0,25677,25678,7,15,0,0,25678,25679,5,95, +0,0,25679,25680,7,2,0,0,25680,25681,7,10,0,0,25681,25682,7,9,0,0,25682,25683, +7,13,0,0,25683,25684,7,0,0,0,25684,25685,7,11,0,0,25685,25686,7,12,0,0,25686, +25687,7,6,0,0,25687,3792,1,0,0,0,25688,25689,7,5,0,0,25689,25690,7,18,0, +0,25690,25691,7,5,0,0,25691,25692,5,95,0,0,25692,25693,7,2,0,0,25693,25694, +7,15,0,0,25694,25695,5,95,0,0,25695,25696,7,2,0,0,25696,25697,7,15,0,0,25697, +25698,7,7,0,0,25698,25699,7,5,0,0,25699,25700,7,10,0,0,25700,25701,7,23, +0,0,25701,25702,7,6,0,0,25702,3794,1,0,0,0,25703,25704,7,5,0,0,25704,25705, +7,18,0,0,25705,25706,7,5,0,0,25706,25707,5,95,0,0,25707,25708,7,2,0,0,25708, +25709,7,15,0,0,25709,25710,5,95,0,0,25710,25711,7,15,0,0,25711,25712,7,0, +0,0,25712,25713,7,3,0,0,25713,25714,5,95,0,0,25714,25715,5,49,0,0,25715, +3796,1,0,0,0,25716,25717,7,5,0,0,25717,25718,7,18,0,0,25718,25719,7,5,0, +0,25719,25720,5,95,0,0,25720,25721,7,2,0,0,25721,25722,7,15,0,0,25722,25723, +5,95,0,0,25723,25724,7,15,0,0,25724,25725,7,0,0,0,25725,25726,7,3,0,0,25726, +25727,7,17,0,0,25727,25728,7,10,0,0,25728,25729,7,9,0,0,25729,25730,5,95, +0,0,25730,25731,5,49,0,0,25731,3798,1,0,0,0,25732,25733,7,5,0,0,25733,25734, +7,18,0,0,25734,25735,7,5,0,0,25735,25736,5,95,0,0,25736,25737,7,2,0,0,25737, +25738,7,15,0,0,25738,25739,5,95,0,0,25739,25740,7,15,0,0,25740,25741,7,0, +0,0,25741,25742,7,3,0,0,25742,25743,7,17,0,0,25743,25744,7,10,0,0,25744, +25745,7,9,0,0,25745,3800,1,0,0,0,25746,25747,7,5,0,0,25747,25748,7,18,0, +0,25748,25749,7,5,0,0,25749,25750,5,95,0,0,25750,25751,7,2,0,0,25751,25752, +7,15,0,0,25752,25753,5,95,0,0,25753,25754,7,15,0,0,25754,25755,7,0,0,0,25755, +25756,7,3,0,0,25756,3802,1,0,0,0,25757,25758,7,5,0,0,25758,25759,7,18,0, +0,25759,25760,7,5,0,0,25760,25761,5,95,0,0,25761,25762,7,2,0,0,25762,25763, +7,15,0,0,25763,25764,5,95,0,0,25764,25765,7,15,0,0,25765,25766,7,0,0,0,25766, +25767,7,3,0,0,25767,25768,7,4,0,0,25768,25769,5,95,0,0,25769,25770,7,10, +0,0,25770,25771,7,9,0,0,25771,3804,1,0,0,0,25772,25773,7,5,0,0,25773,25774, +7,18,0,0,25774,25775,7,5,0,0,25775,25776,5,95,0,0,25776,25777,7,2,0,0,25777, +25778,7,15,0,0,25778,25779,5,95,0,0,25779,25780,7,15,0,0,25780,25781,7,10, +0,0,25781,25782,7,13,0,0,25782,25783,7,2,0,0,25783,25784,7,4,0,0,25784,3806, +1,0,0,0,25785,25786,7,5,0,0,25786,25787,7,18,0,0,25787,25788,7,5,0,0,25788, +25789,5,95,0,0,25789,25790,7,2,0,0,25790,25791,7,15,0,0,25791,25792,5,95, +0,0,25792,25793,7,3,0,0,25793,25794,5,50,0,0,25794,25795,7,2,0,0,25795,3808, +1,0,0,0,25796,25797,7,5,0,0,25797,25798,7,18,0,0,25798,25799,7,5,0,0,25799, +25800,5,95,0,0,25800,25801,7,2,0,0,25801,25802,7,15,0,0,25802,25803,5,95, +0,0,25803,25804,7,3,0,0,25804,25805,7,0,0,0,25805,25806,7,22,0,0,25806,25807, +7,4,0,0,25807,25808,7,2,0,0,25808,25809,7,7,0,0,25809,25810,7,12,0,0,25810, +25811,7,14,0,0,25811,3810,1,0,0,0,25812,25813,7,5,0,0,25813,25814,7,18,0, +0,25814,25815,7,5,0,0,25815,25816,5,95,0,0,25816,25817,7,2,0,0,25817,25818, +7,15,0,0,25818,25819,5,95,0,0,25819,25820,7,3,0,0,25820,25821,7,9,0,0,25821, +25822,7,4,0,0,25822,25823,7,14,0,0,25823,3812,1,0,0,0,25824,25825,7,5,0, +0,25825,25826,7,18,0,0,25826,25827,7,5,0,0,25827,25828,5,95,0,0,25828,25829, +7,2,0,0,25829,25830,7,15,0,0,25830,25831,5,95,0,0,25831,25832,7,3,0,0,25832, +25833,7,6,0,0,25833,25834,7,16,0,0,25834,3814,1,0,0,0,25835,25836,7,5,0, +0,25836,25837,7,18,0,0,25837,25838,7,5,0,0,25838,25839,5,95,0,0,25839,25840, +7,2,0,0,25840,25841,7,15,0,0,25841,25842,5,95,0,0,25842,25843,7,3,0,0,25843, +25844,7,14,0,0,25844,25845,7,4,0,0,25845,25846,7,9,0,0,25846,3816,1,0,0, +0,25847,25848,7,5,0,0,25848,25849,7,18,0,0,25849,25850,7,5,0,0,25850,25851, +5,95,0,0,25851,25852,7,2,0,0,25852,25853,7,15,0,0,25853,25854,5,95,0,0,25854, +25855,7,3,0,0,25855,25856,7,2,0,0,25856,25857,7,22,0,0,25857,25858,7,10, +0,0,25858,25859,7,9,0,0,25859,25860,7,4,0,0,25860,25861,7,2,0,0,25861,25862, +7,2,0,0,25862,25863,7,1,0,0,25863,25864,7,20,0,0,25864,3818,1,0,0,0,25865, +25866,7,5,0,0,25866,25867,7,18,0,0,25867,25868,7,5,0,0,25868,25869,5,95, +0,0,25869,25870,7,2,0,0,25870,25871,7,15,0,0,25871,25872,5,95,0,0,25872, +25873,7,3,0,0,25873,25874,7,15,0,0,25874,25875,7,1,0,0,25875,3820,1,0,0, +0,25876,25877,7,5,0,0,25877,25878,7,18,0,0,25878,25879,7,5,0,0,25879,25880, +5,95,0,0,25880,25881,7,2,0,0,25881,25882,7,15,0,0,25882,25883,7,4,0,0,25883, +25884,7,11,0,0,25884,25885,7,2,0,0,25885,25886,7,1,0,0,25886,25887,7,15, +0,0,25887,25888,7,3,0,0,25888,25889,7,1,0,0,25889,25890,7,5,0,0,25890,25891, +7,8,0,0,25891,3822,1,0,0,0,25892,25893,7,5,0,0,25893,25894,7,18,0,0,25894, +25895,7,5,0,0,25895,25896,5,95,0,0,25896,25897,7,2,0,0,25897,25898,7,15, +0,0,25898,25899,5,95,0,0,25899,25900,7,4,0,0,25900,25901,7,2,0,0,25901,25902, +7,5,0,0,25902,25903,7,6,0,0,25903,25904,7,4,0,0,25904,25905,7,10,0,0,25905, +25906,7,9,0,0,25906,3824,1,0,0,0,25907,25908,7,5,0,0,25908,25909,7,18,0, +0,25909,25910,7,5,0,0,25910,25911,5,95,0,0,25911,25912,7,2,0,0,25912,25913, +7,15,0,0,25913,25914,5,95,0,0,25914,25915,7,4,0,0,25915,25916,7,15,0,0,25916, +25917,7,3,0,0,25917,3826,1,0,0,0,25918,25919,7,5,0,0,25919,25920,7,18,0, +0,25920,25921,7,5,0,0,25921,25922,5,95,0,0,25922,25923,7,2,0,0,25923,25924, +7,15,0,0,25924,25925,5,95,0,0,25925,25926,7,4,0,0,25926,25927,7,3,0,0,25927, +25928,7,4,0,0,25928,25929,7,1,0,0,25929,3828,1,0,0,0,25930,25931,7,5,0,0, +25931,25932,7,18,0,0,25932,25933,7,5,0,0,25933,25934,5,95,0,0,25934,25935, +7,2,0,0,25935,25936,7,15,0,0,25936,25937,7,4,0,0,25937,25938,7,25,0,0,25938, +25939,7,10,0,0,25939,25940,7,8,0,0,25940,25941,7,14,0,0,25941,25942,7,15, +0,0,25942,3830,1,0,0,0,25943,25944,7,5,0,0,25944,25945,7,18,0,0,25945,25946, +7,5,0,0,25946,25947,5,95,0,0,25947,25948,7,2,0,0,25948,25949,7,15,0,0,25949, +25950,7,4,0,0,25950,25951,7,25,0,0,25951,25952,7,24,0,0,25952,25953,7,8, +0,0,25953,25954,7,0,0,0,25954,25955,7,5,0,0,25955,25956,7,4,0,0,25956,25957, +7,0,0,0,25957,25958,7,5,0,0,25958,25959,7,7,0,0,25959,25960,7,24,0,0,25960, +3832,1,0,0,0,25961,25962,7,5,0,0,25962,25963,7,18,0,0,25963,25964,7,5,0, +0,25964,25965,5,95,0,0,25965,25966,7,2,0,0,25966,25967,7,15,0,0,25967,25968, +5,95,0,0,25968,25969,7,12,0,0,25969,25970,7,7,0,0,25970,25971,7,9,0,0,25971, +25972,7,6,0,0,25972,25973,7,5,0,0,25973,25974,7,8,0,0,25974,25975,7,6,0, +0,25975,25976,7,7,0,0,25976,25977,7,9,0,0,25977,3834,1,0,0,0,25978,25979, +7,5,0,0,25979,25980,7,18,0,0,25980,25981,7,5,0,0,25981,25982,5,95,0,0,25982, +25983,7,2,0,0,25983,25984,7,15,0,0,25984,25985,5,95,0,0,25985,25986,7,13, +0,0,25986,25987,7,6,0,0,25987,25988,7,8,0,0,25988,25989,7,0,0,0,25989,25990, +7,7,0,0,25990,25991,7,9,0,0,25991,3836,1,0,0,0,25992,25993,7,5,0,0,25993, +25994,7,18,0,0,25994,25995,7,5,0,0,25995,25996,5,95,0,0,25996,25997,7,2, +0,0,25997,25998,7,15,0,0,25998,25999,5,95,0,0,25999,26000,7,13,0,0,26000, +26001,7,6,0,0,26001,26002,7,8,0,0,26002,26003,7,1,0,0,26003,26004,7,10,0, +0,26004,26005,7,4,0,0,26005,3838,1,0,0,0,26006,26007,7,5,0,0,26007,26008, +7,18,0,0,26008,26009,7,5,0,0,26009,26010,5,95,0,0,26010,26011,7,2,0,0,26011, +26012,7,15,0,0,26012,26013,5,95,0,0,26013,26014,7,13,0,0,26014,26015,7,6, +0,0,26015,26016,7,8,0,0,26016,26017,7,2,0,0,26017,26018,7,3,0,0,26018,3840, +1,0,0,0,26019,26020,7,5,0,0,26020,26021,7,18,0,0,26021,26022,7,5,0,0,26022, +26023,5,95,0,0,26023,26024,7,2,0,0,26024,26025,7,15,0,0,26025,26026,5,95, +0,0,26026,26027,7,13,0,0,26027,26028,7,6,0,0,26028,26029,7,8,0,0,26029,26030, +7,25,0,0,26030,26031,7,2,0,0,26031,26032,7,3,0,0,26032,3842,1,0,0,0,26033, +26034,7,5,0,0,26034,26035,7,18,0,0,26035,26036,7,5,0,0,26036,26037,5,95, +0,0,26037,26038,7,2,0,0,26038,26039,7,15,0,0,26039,26040,5,95,0,0,26040, +26041,7,13,0,0,26041,26042,7,6,0,0,26042,26043,7,3,0,0,26043,26044,7,5,0, +0,26044,26045,7,10,0,0,26045,26046,7,2,0,0,26046,26047,7,7,0,0,26047,3844, +1,0,0,0,26048,26049,7,5,0,0,26049,26050,7,18,0,0,26050,26051,7,5,0,0,26051, +26052,5,95,0,0,26052,26053,7,2,0,0,26053,26054,7,15,0,0,26054,26055,5,95, +0,0,26055,26056,7,13,0,0,26056,26057,7,3,0,0,26057,26058,7,6,0,0,26058,26059, +7,16,0,0,26059,3846,1,0,0,0,26060,26061,7,5,0,0,26061,26062,7,18,0,0,26062, +26063,7,5,0,0,26063,26064,5,95,0,0,26064,26065,7,2,0,0,26065,26066,7,15, +0,0,26066,26067,5,95,0,0,26067,26068,7,13,0,0,26068,26069,7,13,0,0,26069, +26070,7,9,0,0,26070,3848,1,0,0,0,26071,26072,7,5,0,0,26072,26073,7,18,0, +0,26073,26074,7,5,0,0,26074,26075,5,95,0,0,26075,26076,7,2,0,0,26076,26077, +7,15,0,0,26077,26078,5,95,0,0,26078,26079,7,25,0,0,26079,26080,7,14,0,0, +26080,26081,7,11,0,0,26081,26082,7,8,0,0,26082,26083,7,2,0,0,26083,26084, +7,7,0,0,26084,26085,7,5,0,0,26085,26086,5,95,0,0,26086,26087,7,16,0,0,26087, +26088,7,2,0,0,26088,26089,7,3,0,0,26089,26090,5,95,0,0,26090,26091,7,8,0, +0,26091,26092,7,5,0,0,26092,26093,7,25,0,0,26093,3850,1,0,0,0,26094,26095, +7,5,0,0,26095,26096,7,18,0,0,26096,26097,7,5,0,0,26097,26098,5,95,0,0,26098, +26099,7,2,0,0,26099,26100,7,15,0,0,26100,26101,5,95,0,0,26101,26102,7,25, +0,0,26102,26103,7,15,0,0,26103,26104,7,4,0,0,26104,26105,7,19,0,0,26105, +26106,7,0,0,0,26106,26107,7,4,0,0,26107,26108,7,17,0,0,26108,3852,1,0,0, +0,26109,26110,7,5,0,0,26110,26111,7,18,0,0,26111,26112,7,5,0,0,26112,26113, +5,95,0,0,26113,26114,7,2,0,0,26114,26115,7,15,0,0,26115,26116,5,95,0,0,26116, +26117,7,25,0,0,26117,26118,7,15,0,0,26118,26119,7,4,0,0,26119,26120,7,19, +0,0,26120,26121,7,10,0,0,26121,26122,7,9,0,0,26122,26123,7,25,0,0,26123, +3854,1,0,0,0,26124,26125,7,5,0,0,26125,26126,7,18,0,0,26126,26127,7,5,0, +0,26127,26128,5,95,0,0,26128,26129,7,2,0,0,26129,26130,7,15,0,0,26130,26131, +5,95,0,0,26131,26132,7,25,0,0,26132,26133,7,15,0,0,26133,26134,7,4,0,0,26134, +26135,7,19,0,0,26135,26136,7,2,0,0,26136,26137,7,15,0,0,26137,3856,1,0,0, +0,26138,26139,7,5,0,0,26139,26140,7,18,0,0,26140,26141,7,5,0,0,26141,26142, +5,95,0,0,26142,26143,7,2,0,0,26143,26144,7,15,0,0,26144,26145,5,95,0,0,26145, +26146,7,25,0,0,26146,26147,7,4,0,0,26147,26148,7,25,0,0,26148,26149,7,4, +0,0,26149,26150,5,50,0,0,26150,26151,7,5,0,0,26151,26152,7,24,0,0,26152, +26153,7,11,0,0,26153,26154,7,4,0,0,26154,3858,1,0,0,0,26155,26156,7,5,0, +0,26156,26157,7,18,0,0,26157,26158,7,5,0,0,26158,26159,5,95,0,0,26159,26160, +7,2,0,0,26160,26161,7,15,0,0,26161,26162,5,95,0,0,26162,26163,7,23,0,0,26163, +26164,7,2,0,0,26164,26165,7,7,0,0,26165,26166,7,6,0,0,26166,26167,5,95,0, +0,26167,26168,7,10,0,0,26168,26169,7,9,0,0,26169,3860,1,0,0,0,26170,26171, +7,5,0,0,26171,26172,7,18,0,0,26172,26173,7,5,0,0,26173,26174,5,95,0,0,26174, +26175,7,2,0,0,26175,26176,7,3,0,0,26176,26177,7,9,0,0,26177,26178,7,6,0, +0,26178,26179,7,3,0,0,26179,26180,7,21,0,0,26180,26181,7,6,0,0,26181,26182, +7,18,0,0,26182,26183,5,95,0,0,26183,26184,7,9,0,0,26184,26185,7,6,0,0,26185, +26186,7,15,0,0,26186,26187,7,4,0,0,26187,26188,7,19,0,0,26188,3862,1,0,0, +0,26189,26190,7,5,0,0,26190,26191,7,18,0,0,26191,26192,7,5,0,0,26192,26193, +5,95,0,0,26193,26194,7,2,0,0,26194,26195,7,3,0,0,26195,26196,7,9,0,0,26196, +26197,7,6,0,0,26197,26198,7,3,0,0,26198,26199,7,21,0,0,26199,26200,7,6,0, +0,26200,26201,7,18,0,0,26201,26202,5,95,0,0,26202,26203,7,14,0,0,26203,26204, +7,0,0,0,26204,26205,7,25,0,0,26205,26206,7,8,0,0,26206,26207,7,19,0,0,26207, +26208,7,10,0,0,26208,26209,7,11,0,0,26209,26210,7,9,0,0,26210,3864,1,0,0, +0,26211,26212,7,5,0,0,26212,26213,7,18,0,0,26213,26214,7,5,0,0,26214,26215, +5,95,0,0,26215,26216,7,2,0,0,26216,26217,7,3,0,0,26217,26218,7,9,0,0,26218, +26219,7,6,0,0,26219,26220,7,3,0,0,26220,26221,7,21,0,0,26221,26222,7,6,0, +0,26222,26223,7,18,0,0,26223,26224,5,95,0,0,26224,26225,7,15,0,0,26225,26226, +7,0,0,0,26226,26227,7,3,0,0,26227,26228,7,6,0,0,26228,26229,7,7,0,0,26229, +26230,7,4,0,0,26230,3866,1,0,0,0,26231,26232,7,5,0,0,26232,26233,7,18,0, +0,26233,26234,7,5,0,0,26234,26235,5,95,0,0,26235,26236,7,15,0,0,26236,26237, +7,0,0,0,26237,26238,7,3,0,0,26238,26239,7,0,0,0,26239,26240,7,11,0,0,26240, +26241,7,11,0,0,26241,26242,7,6,0,0,26242,26243,7,11,0,0,26243,26244,5,95, +0,0,26244,26245,7,4,0,0,26245,26246,7,25,0,0,26246,26247,7,7,0,0,26247,3868, +1,0,0,0,26248,26249,7,5,0,0,26249,26250,7,18,0,0,26250,26251,7,5,0,0,26251, +26252,5,95,0,0,26252,26253,7,15,0,0,26253,26254,7,0,0,0,26254,26255,7,4, +0,0,26255,26256,7,19,0,0,26256,26257,7,10,0,0,26257,26258,7,9,0,0,26258, +26259,5,95,0,0,26259,26260,7,10,0,0,26260,26261,7,5,0,0,26261,26262,5,95, +0,0,26262,26263,7,0,0,0,26263,26264,7,4,0,0,26264,26265,7,4,0,0,26265,26266, +7,3,0,0,26266,3870,1,0,0,0,26267,26268,7,5,0,0,26268,26269,7,18,0,0,26269, +26270,7,5,0,0,26270,26271,5,95,0,0,26271,26272,7,15,0,0,26272,26273,7,0, +0,0,26273,26274,7,4,0,0,26274,26275,7,19,0,0,26275,26276,7,10,0,0,26276, +26277,7,9,0,0,26277,26278,5,95,0,0,26278,26279,7,10,0,0,26279,26280,7,5, +0,0,26280,26281,5,95,0,0,26281,26282,7,7,0,0,26282,26283,7,14,0,0,26283, +26284,7,5,0,0,26284,26285,7,15,0,0,26285,26286,7,8,0,0,26286,3872,1,0,0, +0,26287,26288,7,5,0,0,26288,26289,7,18,0,0,26289,26290,7,5,0,0,26290,26291, +5,95,0,0,26291,26292,7,15,0,0,26292,26293,7,0,0,0,26293,26294,7,4,0,0,26294, +26295,7,19,0,0,26295,26296,7,10,0,0,26296,26297,7,9,0,0,26297,26298,5,95, +0,0,26298,26299,7,11,0,0,26299,26300,7,0,0,0,26300,26301,7,5,0,0,26301,26302, +7,4,0,0,26302,26303,7,7,0,0,26303,26304,7,0,0,0,26304,26305,7,14,0,0,26305, +26306,7,6,0,0,26306,3874,1,0,0,0,26307,26308,7,5,0,0,26308,26309,7,18,0, +0,26309,26310,7,5,0,0,26310,26311,5,95,0,0,26311,26312,7,15,0,0,26312,26313, +7,0,0,0,26313,26314,7,4,0,0,26314,26315,7,19,0,0,26315,26316,7,10,0,0,26316, +26317,7,9,0,0,26317,26318,5,95,0,0,26318,26319,7,11,0,0,26319,26320,7,0, +0,0,26320,26321,7,5,0,0,26321,26322,7,4,0,0,26322,26323,7,7,0,0,26323,26324, +7,14,0,0,26324,26325,7,5,0,0,26325,26326,7,15,0,0,26326,26327,7,8,0,0,26327, +3876,1,0,0,0,26328,26329,7,5,0,0,26329,26330,7,18,0,0,26330,26331,7,5,0, +0,26331,26332,5,95,0,0,26332,26333,7,15,0,0,26333,26334,7,0,0,0,26334,26335, +7,4,0,0,26335,26336,7,19,0,0,26336,26337,5,95,0,0,26337,26338,7,3,0,0,26338, +26339,7,6,0,0,26339,26340,7,13,0,0,26340,26341,7,6,0,0,26341,26342,7,3,0, +0,26342,26343,7,5,0,0,26343,26344,7,6,0,0,26344,3878,1,0,0,0,26345,26346, +7,5,0,0,26346,26347,7,18,0,0,26347,26348,7,5,0,0,26348,26349,5,95,0,0,26349, +26350,7,15,0,0,26350,26351,7,25,0,0,26351,26352,7,24,0,0,26352,26353,7,6, +0,0,26353,26354,7,25,0,0,26354,26355,7,4,0,0,26355,26356,7,3,0,0,26356,26357, +7,0,0,0,26357,26358,7,8,0,0,26358,26359,7,4,0,0,26359,3880,1,0,0,0,26360, +26361,7,5,0,0,26361,26362,7,18,0,0,26362,26363,7,5,0,0,26363,26364,5,95, +0,0,26364,26365,7,3,0,0,26365,26366,7,0,0,0,26366,26367,7,22,0,0,26367,26368, +5,95,0,0,26368,26369,7,4,0,0,26369,26370,7,2,0,0,26370,26371,5,95,0,0,26371, +26372,7,25,0,0,26372,26373,7,5,0,0,26373,26374,7,10,0,0,26374,26375,7,9, +0,0,26375,3882,1,0,0,0,26376,26377,7,5,0,0,26377,26378,7,18,0,0,26378,26379, +7,5,0,0,26379,26380,5,95,0,0,26380,26381,7,3,0,0,26381,26382,7,10,0,0,26382, +26383,7,9,0,0,26383,26384,5,95,0,0,26384,26385,7,2,0,0,26385,26386,7,3,0, +0,26386,26387,7,9,0,0,26387,26388,7,6,0,0,26388,26389,7,3,0,0,26389,3884, +1,0,0,0,26390,26391,7,5,0,0,26391,26392,7,18,0,0,26392,26393,7,5,0,0,26393, +26394,5,95,0,0,26394,26395,7,3,0,0,26395,26396,7,2,0,0,26396,26397,7,22, +0,0,26397,26398,5,95,0,0,26398,26399,7,9,0,0,26399,26400,7,6,0,0,26400,26401, +7,11,0,0,26401,26402,7,4,0,0,26402,26403,7,0,0,0,26403,3886,1,0,0,0,26404, +26405,7,5,0,0,26405,26406,7,18,0,0,26406,26407,7,5,0,0,26407,26408,5,95, +0,0,26408,26409,7,5,0,0,26409,26410,7,8,0,0,26410,26411,5,95,0,0,26411,26412, +5,50,0,0,26412,26413,5,95,0,0,26413,26414,7,25,0,0,26414,26415,7,14,0,0, +26415,26416,7,11,0,0,26416,26417,7,4,0,0,26417,3888,1,0,0,0,26418,26419, +7,5,0,0,26419,26420,7,18,0,0,26420,26421,7,5,0,0,26421,26422,5,95,0,0,26422, +26423,7,5,0,0,26423,26424,7,18,0,0,26424,26425,7,7,0,0,26425,26426,7,3,0, +0,26426,26427,7,8,0,0,26427,26428,7,10,0,0,26428,26429,7,3,0,0,26429,26430, +7,6,0,0,26430,26431,7,9,0,0,26431,26432,7,2,0,0,26432,3890,1,0,0,0,26433, +26434,7,5,0,0,26434,26435,7,18,0,0,26435,26436,7,5,0,0,26436,26437,7,4,0, +0,26437,26438,7,6,0,0,26438,26439,7,14,0,0,26439,26440,5,95,0,0,26440,26441, +7,9,0,0,26441,26442,7,6,0,0,26442,26443,7,16,0,0,26443,26444,7,10,0,0,26444, +26445,7,7,0,0,26445,26446,7,6,0,0,26446,26447,7,9,0,0,26447,3892,1,0,0,0, +26448,26449,7,5,0,0,26449,26450,7,18,0,0,26450,26451,7,5,0,0,26451,26452, +7,4,0,0,26452,26453,7,6,0,0,26453,26454,7,14,0,0,26454,3894,1,0,0,0,26455, +26456,7,5,0,0,26456,26457,7,18,0,0,26457,26458,7,5,0,0,26458,26459,7,4,0, +0,26459,26460,7,10,0,0,26460,26461,7,14,0,0,26461,26462,7,6,0,0,26462,26463, +7,5,0,0,26463,26464,7,4,0,0,26464,26465,7,0,0,0,26465,26466,7,14,0,0,26466, +26467,7,15,0,0,26467,3896,1,0,0,0,26468,26469,7,5,0,0,26469,26470,7,18,0, +0,26470,26471,7,5,0,0,26471,26472,5,95,0,0,26472,26473,7,4,0,0,26473,26474, +7,18,0,0,26474,26475,7,15,0,0,26475,26476,7,6,0,0,26476,26477,7,10,0,0,26477, +26478,7,9,0,0,26478,3898,1,0,0,0,26479,26480,7,5,0,0,26480,26481,7,18,0, +0,26481,26482,7,5,0,0,26482,26483,5,95,0,0,26483,26484,7,12,0,0,26484,26485, +7,14,0,0,26485,26486,7,0,0,0,26486,26487,7,21,0,0,26487,26488,7,6,0,0,26488, +26489,7,25,0,0,26489,26490,7,14,0,0,26490,26491,7,11,0,0,26491,3900,1,0, +0,0,26492,26493,7,5,0,0,26493,26494,7,18,0,0,26494,26495,7,5,0,0,26495,26496, +5,95,0,0,26496,26497,7,25,0,0,26497,26498,7,14,0,0,26498,26499,7,11,0,0, +26499,26500,7,0,0,0,26500,26501,7,7,0,0,26501,26502,7,0,0,0,26502,26503, +7,11,0,0,26503,26504,7,18,0,0,26504,26505,7,23,0,0,26505,26506,7,6,0,0,26506, +3902,1,0,0,0,26507,26508,7,5,0,0,26508,26509,7,18,0,0,26509,26510,7,5,0, +0,26510,26511,5,95,0,0,26511,26512,7,25,0,0,26512,26513,7,14,0,0,26513,26514, +7,11,0,0,26514,26515,7,8,0,0,26515,26516,7,2,0,0,26516,26517,7,7,0,0,26517, +26518,7,4,0,0,26518,26519,7,0,0,0,26519,26520,7,10,0,0,26520,26521,7,7,0, +0,26521,26522,7,5,0,0,26522,3904,1,0,0,0,26523,26524,7,5,0,0,26524,26525, +7,18,0,0,26525,26526,7,5,0,0,26526,26527,5,95,0,0,26527,26528,7,25,0,0,26528, +26529,7,14,0,0,26529,26530,7,11,0,0,26530,26531,7,8,0,0,26531,26532,7,2, +0,0,26532,26533,7,7,0,0,26533,26534,7,13,0,0,26534,3906,1,0,0,0,26535,26536, +7,5,0,0,26536,26537,7,18,0,0,26537,26538,7,5,0,0,26538,26539,5,95,0,0,26539, +26540,7,25,0,0,26540,26541,7,14,0,0,26541,26542,7,11,0,0,26542,26543,7,6, +0,0,26543,26544,7,25,0,0,26544,26545,7,7,0,0,26545,26546,7,5,0,0,26546,26547, +7,12,0,0,26547,26548,7,3,0,0,26548,26549,7,10,0,0,26549,3908,1,0,0,0,26550, +26551,7,5,0,0,26551,26552,7,18,0,0,26552,26553,7,5,0,0,26553,26554,5,95, +0,0,26554,26555,7,25,0,0,26555,26556,7,14,0,0,26556,26557,7,11,0,0,26557, +26558,7,17,0,0,26558,26559,7,6,0,0,26559,26560,7,7,0,0,26560,3910,1,0,0, +0,26561,26562,7,5,0,0,26562,26563,7,18,0,0,26563,26564,7,5,0,0,26564,26565, +5,95,0,0,26565,26566,7,25,0,0,26566,26567,7,14,0,0,26567,26568,7,11,0,0, +26568,26569,7,10,0,0,26569,26570,5,95,0,0,26570,26571,7,11,0,0,26571,26572, +7,2,0,0,26572,26573,7,8,0,0,26573,26574,5,95,0,0,26574,26575,7,10,0,0,26575, +26576,7,5,0,0,26576,26577,7,7,0,0,26577,26578,7,2,0,0,26578,26579,7,9,0, +0,26579,26580,7,6,0,0,26580,3912,1,0,0,0,26581,26582,7,5,0,0,26582,26583, +7,18,0,0,26583,26584,7,5,0,0,26584,26585,5,95,0,0,26585,26586,7,25,0,0,26586, +26587,7,14,0,0,26587,26588,7,11,0,0,26588,26589,7,10,0,0,26589,26590,5,95, +0,0,26590,26591,7,11,0,0,26591,26592,7,2,0,0,26592,26593,7,8,0,0,26593,26594, +5,95,0,0,26594,26595,7,10,0,0,26595,26596,7,5,0,0,26596,26597,7,4,0,0,26597, +26598,7,6,0,0,26598,26599,7,25,0,0,26599,26600,7,4,0,0,26600,3914,1,0,0, +0,26601,26602,7,5,0,0,26602,26603,7,18,0,0,26603,26604,7,5,0,0,26604,26605, +5,95,0,0,26605,26606,7,25,0,0,26606,26607,7,14,0,0,26607,26608,7,11,0,0, +26608,26609,7,10,0,0,26609,26610,7,7,0,0,26610,26611,7,5,0,0,26611,26612, +7,4,0,0,26612,26613,7,3,0,0,26613,3916,1,0,0,0,26614,26615,7,5,0,0,26615, +26616,7,18,0,0,26616,26617,7,5,0,0,26617,26618,5,95,0,0,26618,26619,7,25, +0,0,26619,26620,7,14,0,0,26620,26621,7,11,0,0,26621,26622,7,11,0,0,26622, +26623,7,2,0,0,26623,26624,7,8,0,0,26624,26625,7,0,0,0,26625,26626,7,4,0, +0,26626,26627,7,2,0,0,26627,26628,7,3,0,0,26628,26629,5,95,0,0,26629,26630, +7,17,0,0,26630,26631,7,6,0,0,26631,26632,7,4,0,0,26632,26633,7,5,0,0,26633, +26634,7,13,0,0,26634,26635,7,0,0,0,26635,26636,7,11,0,0,26636,3918,1,0,0, +0,26637,26638,7,5,0,0,26638,26639,7,18,0,0,26639,26640,7,5,0,0,26640,26641, +5,95,0,0,26641,26642,7,25,0,0,26642,26643,7,14,0,0,26643,26644,7,11,0,0, +26644,26645,7,7,0,0,26645,26646,7,2,0,0,26646,26647,7,9,0,0,26647,26648, +7,6,0,0,26648,26649,7,10,0,0,26649,26650,7,9,0,0,26650,26651,5,95,0,0,26651, +26652,7,17,0,0,26652,26653,7,6,0,0,26653,26654,7,4,0,0,26654,26655,7,8,0, +0,26655,26656,7,10,0,0,26656,26657,7,9,0,0,26657,3920,1,0,0,0,26658,26659, +7,5,0,0,26659,26660,7,18,0,0,26660,26661,7,5,0,0,26661,26662,5,95,0,0,26662, +26663,7,25,0,0,26663,26664,7,14,0,0,26664,26665,7,11,0,0,26665,26666,7,7, +0,0,26666,26667,7,2,0,0,26667,26668,7,9,0,0,26668,26669,7,6,0,0,26669,26670, +7,10,0,0,26670,26671,7,9,0,0,26671,26672,5,95,0,0,26672,26673,7,17,0,0,26673, +26674,7,6,0,0,26674,26675,7,4,0,0,26675,26676,7,11,0,0,26676,26677,7,2,0, +0,26677,26678,7,8,0,0,26678,26679,7,0,0,0,26679,26680,7,4,0,0,26680,26681, +7,2,0,0,26681,26682,7,3,0,0,26682,3922,1,0,0,0,26683,26684,7,5,0,0,26684, +26685,7,18,0,0,26685,26686,7,5,0,0,26686,26687,5,95,0,0,26687,26688,7,25, +0,0,26688,26689,7,14,0,0,26689,26690,7,11,0,0,26690,26691,7,7,0,0,26691, +26692,7,2,0,0,26692,26693,7,9,0,0,26693,26694,7,6,0,0,26694,26695,7,10,0, +0,26695,26696,7,9,0,0,26696,26697,5,95,0,0,26697,26698,7,17,0,0,26698,26699, +7,6,0,0,26699,26700,7,4,0,0,26700,26701,7,2,0,0,26701,26702,7,21,0,0,26702, +26703,7,6,0,0,26703,26704,7,18,0,0,26704,3924,1,0,0,0,26705,26706,7,5,0, +0,26706,26707,7,18,0,0,26707,26708,7,5,0,0,26708,26709,5,95,0,0,26709,26710, +7,25,0,0,26710,26711,7,14,0,0,26711,26712,7,11,0,0,26712,26713,7,7,0,0,26713, +26714,7,2,0,0,26714,26715,7,9,0,0,26715,26716,7,6,0,0,26716,26717,7,10,0, +0,26717,26718,7,9,0,0,26718,26719,5,95,0,0,26719,26720,7,17,0,0,26720,26721, +7,6,0,0,26721,26722,7,4,0,0,26722,26723,7,15,0,0,26723,26724,7,0,0,0,26724, +26725,7,4,0,0,26725,26726,7,19,0,0,26726,26727,7,10,0,0,26727,26728,7,9, +0,0,26728,3926,1,0,0,0,26729,26730,7,5,0,0,26730,26731,7,18,0,0,26731,26732, +7,5,0,0,26732,26733,5,95,0,0,26733,26734,7,25,0,0,26734,26735,7,14,0,0,26735, +26736,7,11,0,0,26736,26737,7,7,0,0,26737,26738,7,2,0,0,26738,26739,7,9,0, +0,26739,26740,7,6,0,0,26740,26741,7,10,0,0,26741,26742,7,9,0,0,26742,26743, +5,95,0,0,26743,26744,7,17,0,0,26744,26745,7,6,0,0,26745,26746,7,4,0,0,26746, +26747,7,15,0,0,26747,26748,7,4,0,0,26748,26749,7,3,0,0,26749,26750,7,10, +0,0,26750,26751,7,9,0,0,26751,3928,1,0,0,0,26752,26753,7,5,0,0,26753,26754, +7,18,0,0,26754,26755,7,5,0,0,26755,26756,5,95,0,0,26756,26757,7,25,0,0,26757, +26758,7,14,0,0,26758,26759,7,11,0,0,26759,26760,7,7,0,0,26760,26761,7,2, +0,0,26761,26762,7,9,0,0,26762,26763,7,6,0,0,26763,26764,7,10,0,0,26764,26765, +7,9,0,0,26765,26766,5,95,0,0,26766,26767,7,17,0,0,26767,26768,7,6,0,0,26768, +26769,7,4,0,0,26769,26770,7,3,0,0,26770,26771,7,10,0,0,26771,26772,7,9,0, +0,26772,3930,1,0,0,0,26773,26774,7,5,0,0,26774,26775,7,18,0,0,26775,26776, +7,5,0,0,26776,26777,5,95,0,0,26777,26778,7,25,0,0,26778,26779,7,14,0,0,26779, +26780,7,11,0,0,26780,26781,7,7,0,0,26781,26782,7,2,0,0,26782,26783,7,9,0, +0,26783,26784,7,6,0,0,26784,26785,7,10,0,0,26785,26786,7,9,0,0,26786,26787, +5,95,0,0,26787,26788,7,17,0,0,26788,26789,7,6,0,0,26789,26790,7,4,0,0,26790, +26791,7,5,0,0,26791,26792,7,13,0,0,26792,26793,7,0,0,0,26793,26794,7,11, +0,0,26794,3932,1,0,0,0,26795,26796,7,5,0,0,26796,26797,7,18,0,0,26797,26798, +7,5,0,0,26798,26799,5,95,0,0,26799,26800,7,25,0,0,26800,26801,7,14,0,0,26801, +26802,7,11,0,0,26802,26803,7,7,0,0,26803,26804,7,2,0,0,26804,26805,7,9,0, +0,26805,26806,7,6,0,0,26806,26807,7,10,0,0,26807,26808,7,9,0,0,26808,26809, +5,95,0,0,26809,26810,7,17,0,0,26810,26811,7,6,0,0,26811,26812,7,4,0,0,26812, +26813,7,4,0,0,26813,26814,7,10,0,0,26814,26815,7,9,0,0,26815,3934,1,0,0, +0,26816,26817,7,5,0,0,26817,26818,7,18,0,0,26818,26819,7,5,0,0,26819,26820, +5,95,0,0,26820,26821,7,25,0,0,26821,26822,7,14,0,0,26822,26823,7,11,0,0, +26823,26824,7,7,0,0,26824,26825,7,2,0,0,26825,26826,7,9,0,0,26826,26827, +7,6,0,0,26827,26828,7,10,0,0,26828,26829,7,9,0,0,26829,3936,1,0,0,0,26830, +26831,7,5,0,0,26831,26832,7,18,0,0,26832,26833,7,5,0,0,26833,26834,5,95, +0,0,26834,26835,7,25,0,0,26835,26836,7,14,0,0,26836,26837,7,11,0,0,26837, +26838,7,4,0,0,26838,26839,5,95,0,0,26839,26840,5,50,0,0,26840,26841,5,95, +0,0,26841,26842,7,5,0,0,26842,26843,7,8,0,0,26843,3938,1,0,0,0,26844,26845, +7,5,0,0,26845,26846,7,18,0,0,26846,26847,7,5,0,0,26847,26848,5,95,0,0,26848, +26849,7,25,0,0,26849,26850,7,14,0,0,26850,26851,7,11,0,0,26851,26852,7,4, +0,0,26852,26853,7,3,0,0,26853,26854,7,0,0,0,26854,26855,7,7,0,0,26855,26856, +7,5,0,0,26856,26857,7,11,0,0,26857,26858,7,0,0,0,26858,26859,7,4,0,0,26859, +26860,7,6,0,0,26860,3940,1,0,0,0,26861,26862,7,5,0,0,26862,26863,7,18,0, +0,26863,26864,7,5,0,0,26864,26865,5,95,0,0,26865,26866,7,25,0,0,26866,26867, +7,14,0,0,26867,26868,7,11,0,0,26868,26869,7,4,0,0,26869,26870,7,18,0,0,26870, +26871,7,15,0,0,26871,26872,7,6,0,0,26872,26873,5,50,0,0,26873,26874,7,5, +0,0,26874,26875,7,24,0,0,26875,26876,7,11,0,0,26876,3942,1,0,0,0,26877,26878, +7,5,0,0,26878,26879,7,18,0,0,26879,26880,7,5,0,0,26880,26881,5,95,0,0,26881, +26882,7,25,0,0,26882,26883,7,24,0,0,26883,26884,5,95,0,0,26884,26885,7,0, +0,0,26885,26886,7,5,0,0,26886,26887,7,24,0,0,26887,26888,7,11,0,0,26888, +26889,7,8,0,0,26889,26890,7,7,0,0,26890,26891,7,13,0,0,26891,3944,1,0,0, +0,26892,26893,7,5,0,0,26893,26894,7,18,0,0,26894,26895,7,5,0,0,26895,26896, +5,95,0,0,26896,26897,7,25,0,0,26897,26898,7,24,0,0,26898,26899,5,95,0,0, +26899,26900,7,0,0,0,26900,26901,7,4,0,0,26901,26902,7,2,0,0,26902,26903, +7,14,0,0,26903,26904,7,8,0,0,26904,26905,7,7,0,0,26905,26906,7,13,0,0,26906, +26907,7,8,0,0,26907,26908,7,19,0,0,26908,26909,7,21,0,0,26909,3946,1,0,0, +0,26910,26911,7,5,0,0,26911,26912,7,18,0,0,26912,26913,7,5,0,0,26913,26914, +5,95,0,0,26914,26915,7,25,0,0,26915,26916,7,24,0,0,26916,26917,7,1,0,0,26917, +26918,7,0,0,0,26918,26919,7,5,0,0,26919,26920,7,6,0,0,26920,26921,7,12,0, +0,26921,26922,7,3,0,0,26922,26923,7,10,0,0,26923,3948,1,0,0,0,26924,26925, +7,5,0,0,26925,26926,7,18,0,0,26926,26927,7,5,0,0,26927,26928,5,95,0,0,26928, +26929,7,25,0,0,26929,26930,7,24,0,0,26930,26931,7,8,0,0,26931,26932,7,0, +0,0,26932,26933,7,5,0,0,26933,26934,7,4,0,0,26934,26935,7,0,0,0,26935,26936, +7,1,0,0,26936,26937,7,11,0,0,26937,26938,7,6,0,0,26938,26939,7,6,0,0,26939, +26940,7,3,0,0,26940,26941,7,3,0,0,26941,26942,7,19,0,0,26942,3950,1,0,0, +0,26943,26944,7,5,0,0,26944,26945,7,18,0,0,26945,26946,7,5,0,0,26946,26947, +5,95,0,0,26947,26948,7,25,0,0,26948,26949,7,24,0,0,26949,26950,7,8,0,0,26950, +26951,7,2,0,0,26951,26952,7,9,0,0,26952,26953,7,6,0,0,26953,26954,7,15,0, +0,26954,26955,5,50,0,0,26955,26956,7,5,0,0,26956,26957,7,4,0,0,26957,26958, +7,3,0,0,26958,3952,1,0,0,0,26959,26960,7,5,0,0,26960,26961,7,18,0,0,26961, +26962,7,5,0,0,26962,26963,5,95,0,0,26963,26964,7,25,0,0,26964,26965,7,24, +0,0,26965,26966,7,8,0,0,26966,26967,7,2,0,0,26967,26968,7,9,0,0,26968,26969, +7,6,0,0,26969,26970,7,15,0,0,26970,26971,7,6,0,0,26971,26972,7,24,0,0,26972, +3954,1,0,0,0,26973,26974,7,5,0,0,26974,26975,7,18,0,0,26975,26976,7,5,0, +0,26976,26977,5,95,0,0,26977,26978,7,25,0,0,26978,26979,7,24,0,0,26979,26980, +7,8,0,0,26980,26981,7,2,0,0,26981,26982,7,7,0,0,26982,26983,5,50,0,0,26983, +26984,7,5,0,0,26984,26985,7,6,0,0,26985,26986,7,24,0,0,26986,3956,1,0,0, +0,26987,26988,7,5,0,0,26988,26989,7,18,0,0,26989,26990,7,5,0,0,26990,26991, +5,95,0,0,26991,26992,7,25,0,0,26992,26993,7,24,0,0,26993,26994,7,8,0,0,26994, +26995,7,2,0,0,26995,26996,7,7,0,0,26996,26997,7,8,0,0,26997,26998,7,0,0, +0,26998,26999,7,4,0,0,26999,3958,1,0,0,0,27000,27001,7,5,0,0,27001,27002, +7,18,0,0,27002,27003,7,5,0,0,27003,27004,5,95,0,0,27004,27005,7,25,0,0,27005, +27006,7,24,0,0,27006,27007,7,9,0,0,27007,27008,7,6,0,0,27008,27009,7,11, +0,0,27009,27010,7,6,0,0,27010,27011,7,4,0,0,27011,27012,7,6,0,0,27012,3960, +1,0,0,0,27013,27014,7,5,0,0,27014,27015,7,18,0,0,27015,27016,7,5,0,0,27016, +27017,5,95,0,0,27017,27018,7,25,0,0,27018,27019,7,24,0,0,27019,27020,7,9, +0,0,27020,27021,7,16,0,0,27021,27022,7,11,0,0,27022,27023,7,4,0,0,27023, +27024,7,8,0,0,27024,27025,7,2,0,0,27025,27026,7,11,0,0,27026,27027,7,0,0, +0,27027,27028,7,4,0,0,27028,27029,7,10,0,0,27029,27030,7,2,0,0,27030,27031, +7,7,0,0,27031,3962,1,0,0,0,27032,27033,7,5,0,0,27033,27034,7,18,0,0,27034, +27035,7,5,0,0,27035,27036,5,95,0,0,27036,27037,7,25,0,0,27037,27038,7,24, +0,0,27038,27039,7,9,0,0,27039,27040,7,2,0,0,27040,27041,7,8,0,0,27041,3964, +1,0,0,0,27042,27043,7,5,0,0,27043,27044,7,18,0,0,27044,27045,7,5,0,0,27045, +27046,5,95,0,0,27046,27047,7,25,0,0,27047,27048,7,24,0,0,27048,27049,7,9, +0,0,27049,27050,7,2,0,0,27050,27051,7,8,0,0,27051,27052,7,12,0,0,27052,27053, +7,3,0,0,27053,27054,7,10,0,0,27054,3966,1,0,0,0,27055,27056,7,5,0,0,27056, +27057,7,18,0,0,27057,27058,7,5,0,0,27058,27059,5,95,0,0,27059,27060,7,25, +0,0,27060,27061,7,24,0,0,27061,27062,7,9,0,0,27062,27063,7,12,0,0,27063, +27064,7,3,0,0,27064,27065,7,9,0,0,27065,27066,7,10,0,0,27066,27067,7,13, +0,0,27067,3968,1,0,0,0,27068,27069,7,5,0,0,27069,27070,7,18,0,0,27070,27071, +7,5,0,0,27071,27072,5,95,0,0,27072,27073,7,25,0,0,27073,27074,7,24,0,0,27074, +27075,7,6,0,0,27075,27076,7,9,0,0,27076,27077,5,52,0,0,27077,27078,7,12, +0,0,27078,27079,7,3,0,0,27079,27080,7,10,0,0,27080,3970,1,0,0,0,27081,27082, +7,5,0,0,27082,27083,7,18,0,0,27083,27084,7,5,0,0,27084,27085,5,95,0,0,27085, +27086,7,25,0,0,27086,27087,7,24,0,0,27087,27088,7,6,0,0,27088,27089,7,7, +0,0,27089,27090,7,9,0,0,27090,27091,7,5,0,0,27091,27092,7,22,0,0,27092,27093, +7,10,0,0,27093,27094,7,4,0,0,27094,27095,7,19,0,0,27095,3972,1,0,0,0,27096, +27097,7,5,0,0,27097,27098,7,18,0,0,27098,27099,7,5,0,0,27099,27100,5,95, +0,0,27100,27101,7,25,0,0,27101,27102,7,24,0,0,27102,27103,7,6,0,0,27103, +27104,7,3,0,0,27104,27105,7,3,0,0,27105,27106,7,19,0,0,27106,3974,1,0,0, +0,27107,27108,7,5,0,0,27108,27109,7,18,0,0,27109,27110,7,5,0,0,27110,27111, +5,95,0,0,27111,27112,7,25,0,0,27112,27113,7,24,0,0,27113,27114,7,6,0,0,27114, +27115,7,3,0,0,27115,27116,7,3,0,0,27116,3976,1,0,0,0,27117,27118,7,5,0,0, +27118,27119,7,18,0,0,27119,27120,7,5,0,0,27120,27121,5,95,0,0,27121,27122, +7,25,0,0,27122,27123,7,24,0,0,27123,27124,7,6,0,0,27124,27125,7,5,0,0,27125, +27126,7,19,0,0,27126,27127,7,4,0,0,27127,27128,7,14,0,0,27128,27129,7,11, +0,0,27129,27130,7,12,0,0,27130,27131,7,3,0,0,27131,27132,7,10,0,0,27132, +3978,1,0,0,0,27133,27134,7,5,0,0,27134,27135,7,18,0,0,27135,27136,7,5,0, +0,27136,27137,5,95,0,0,27137,27138,7,25,0,0,27138,27139,7,24,0,0,27139,27140, +7,6,0,0,27140,27141,7,25,0,0,27141,27142,7,11,0,0,27142,27143,7,2,0,0,27143, +27144,7,1,0,0,27144,27145,7,13,0,0,27145,27146,7,0,0,0,27146,27147,7,11, +0,0,27147,3980,1,0,0,0,27148,27149,7,5,0,0,27149,27150,7,18,0,0,27150,27151, +7,5,0,0,27151,27152,5,95,0,0,27152,27153,7,25,0,0,27153,27154,7,24,0,0,27154, +27155,7,6,0,0,27155,27156,7,25,0,0,27156,27157,7,5,0,0,27157,27158,7,4,0, +0,27158,27159,7,22,0,0,27159,27160,7,3,0,0,27160,27161,7,15,0,0,27161,3982, +1,0,0,0,27162,27163,7,5,0,0,27163,27164,7,18,0,0,27164,27165,7,5,0,0,27165, +27166,5,95,0,0,27166,27167,7,25,0,0,27167,27168,7,24,0,0,27168,27169,7,6, +0,0,27169,27170,7,25,0,0,27170,27171,7,4,0,0,27171,27172,7,3,0,0,27172,27173, +7,0,0,0,27173,27174,7,8,0,0,27174,27175,7,4,0,0,27175,3984,1,0,0,0,27176, +27177,7,5,0,0,27177,27178,7,18,0,0,27178,27179,7,5,0,0,27179,27180,5,95, +0,0,27180,27181,7,25,0,0,27181,27182,7,24,0,0,27182,27183,7,6,0,0,27183, +27184,7,25,0,0,27184,27185,7,4,0,0,27185,27186,7,3,0,0,27186,27187,7,3,0, +0,27187,27188,7,6,0,0,27188,27189,7,16,0,0,27189,3986,1,0,0,0,27190,27191, +7,5,0,0,27191,27192,7,18,0,0,27192,27193,7,5,0,0,27193,27194,5,95,0,0,27194, +27195,7,25,0,0,27195,27196,7,24,0,0,27196,27197,7,6,0,0,27197,27198,7,25, +0,0,27198,27199,7,13,0,0,27199,27200,7,0,0,0,27200,27201,7,11,0,0,27201, +3988,1,0,0,0,27202,27203,7,5,0,0,27203,27204,7,18,0,0,27204,27205,7,5,0, +0,27205,27206,5,95,0,0,27206,27207,7,25,0,0,27207,27208,7,24,0,0,27208,27209, +7,16,0,0,27209,27210,7,1,0,0,27210,27211,5,50,0,0,27211,27212,7,5,0,0,27212, +27213,7,4,0,0,27213,27214,7,3,0,0,27214,3990,1,0,0,0,27215,27216,7,5,0,0, +27216,27217,7,18,0,0,27217,27218,7,5,0,0,27218,27219,5,95,0,0,27219,27220, +7,25,0,0,27220,27221,7,24,0,0,27221,27222,7,16,0,0,27222,27223,7,7,0,0,27223, +27224,7,1,0,0,27224,27225,7,2,0,0,27225,27226,7,2,0,0,27226,27227,7,11,0, +0,27227,3992,1,0,0,0,27228,27229,7,5,0,0,27229,27230,7,18,0,0,27230,27231, +7,5,0,0,27231,27232,5,95,0,0,27232,27233,7,25,0,0,27233,27234,7,24,0,0,27234, +27235,7,16,0,0,27235,27236,7,7,0,0,27236,27237,7,8,0,0,27237,27238,7,14, +0,0,27238,27239,7,15,0,0,27239,3994,1,0,0,0,27240,27241,7,5,0,0,27241,27242, +7,18,0,0,27242,27243,7,5,0,0,27243,27244,5,95,0,0,27244,27245,7,25,0,0,27245, +27246,7,24,0,0,27246,27247,7,16,0,0,27247,27248,7,7,0,0,27248,27249,7,9, +0,0,27249,27250,7,0,0,0,27250,27251,7,4,0,0,27251,27252,7,10,0,0,27252,27253, +7,14,0,0,27253,3996,1,0,0,0,27254,27255,7,5,0,0,27255,27256,7,18,0,0,27256, +27257,7,5,0,0,27257,27258,5,95,0,0,27258,27259,7,25,0,0,27259,27260,7,24, +0,0,27260,27261,7,16,0,0,27261,27262,7,7,0,0,27262,27263,7,11,0,0,27263, +27264,7,7,0,0,27264,27265,7,0,0,0,27265,27266,7,14,0,0,27266,27267,7,6,0, +0,27267,3998,1,0,0,0,27268,27269,7,5,0,0,27269,27270,7,18,0,0,27270,27271, +7,5,0,0,27271,27272,5,95,0,0,27272,27273,7,25,0,0,27273,27274,7,24,0,0,27274, +27275,7,16,0,0,27275,27276,7,7,0,0,27276,27277,7,7,0,0,27277,27278,7,14, +0,0,27278,4000,1,0,0,0,27279,27280,7,5,0,0,27280,27281,7,18,0,0,27281,27282, +7,5,0,0,27282,27283,5,95,0,0,27283,27284,7,25,0,0,27284,27285,7,24,0,0,27285, +27286,7,16,0,0,27286,27287,7,7,0,0,27287,27288,7,7,0,0,27288,27289,7,5,0, +0,27289,27290,7,12,0,0,27290,27291,7,3,0,0,27291,27292,7,10,0,0,27292,4002, +1,0,0,0,27293,27294,7,5,0,0,27294,27295,7,18,0,0,27295,27296,7,5,0,0,27296, +27297,5,95,0,0,27297,27298,7,25,0,0,27298,27299,7,24,0,0,27299,27300,7,16, +0,0,27300,27301,7,7,0,0,27301,27302,7,15,0,0,27302,27303,7,3,0,0,27303,27304, +7,6,0,0,27304,27305,7,9,0,0,27305,27306,7,4,0,0,27306,27307,7,3,0,0,27307, +27308,7,12,0,0,27308,27309,7,4,0,0,27309,27310,7,19,0,0,27310,4004,1,0,0, +0,27311,27312,7,5,0,0,27312,27313,7,18,0,0,27313,27314,7,5,0,0,27314,27315, +5,95,0,0,27315,27316,7,25,0,0,27316,27317,7,24,0,0,27317,27318,7,16,0,0, +27318,27319,7,7,0,0,27319,27320,7,24,0,0,27320,27321,7,7,0,0,27321,27322, +7,14,0,0,27322,4006,1,0,0,0,27323,27324,7,5,0,0,27324,27325,7,18,0,0,27325, +27326,7,5,0,0,27326,27327,5,95,0,0,27327,27328,7,25,0,0,27328,27329,7,24, +0,0,27329,27330,7,16,0,0,27330,27331,7,7,0,0,27331,27332,7,3,0,0,27332,27333, +7,2,0,0,27333,27334,7,2,0,0,27334,27335,7,4,0,0,27335,4008,1,0,0,0,27336, +27337,7,5,0,0,27337,27338,7,18,0,0,27338,27339,7,5,0,0,27339,27340,5,95, +0,0,27340,27341,7,25,0,0,27341,27342,7,24,0,0,27342,27343,7,16,0,0,27343, +27344,7,2,0,0,27344,27345,7,3,0,0,27345,27346,7,14,0,0,27346,27347,7,0,0, +0,27347,27348,7,4,0,0,27348,27349,7,7,0,0,27349,27350,7,12,0,0,27350,27351, +7,14,0,0,27351,4010,1,0,0,0,27352,27353,7,5,0,0,27353,27354,7,18,0,0,27354, +27355,7,5,0,0,27355,27356,5,95,0,0,27356,27357,7,25,0,0,27357,27358,7,24, +0,0,27358,27359,7,16,0,0,27359,27360,7,4,0,0,27360,27361,7,8,0,0,27361,27362, +7,2,0,0,27362,27363,7,7,0,0,27363,27364,7,4,0,0,27364,27365,7,0,0,0,27365, +27366,7,10,0,0,27366,27367,7,7,0,0,27367,4012,1,0,0,0,27368,27369,7,5,0, +0,27369,27370,7,18,0,0,27370,27371,7,5,0,0,27371,27372,5,95,0,0,27372,27373, +7,25,0,0,27373,27374,7,24,0,0,27374,27375,7,16,0,0,27375,27376,7,12,0,0, +27376,27377,7,7,0,0,27377,27378,7,8,0,0,27378,27379,7,3,0,0,27379,4014,1, +0,0,0,27380,27381,7,5,0,0,27381,27382,7,18,0,0,27382,27383,7,5,0,0,27383, +27384,5,95,0,0,27384,27385,7,25,0,0,27385,27386,7,24,0,0,27386,27387,7,17, +0,0,27387,27388,7,6,0,0,27388,27389,7,4,0,0,27389,27390,7,8,0,0,27390,27391, +7,2,0,0,27391,27392,7,7,0,0,27392,27393,7,4,0,0,27393,27394,7,6,0,0,27394, +27395,7,7,0,0,27395,27396,7,4,0,0,27396,4016,1,0,0,0,27397,27398,7,5,0,0, +27398,27399,7,18,0,0,27399,27400,7,5,0,0,27400,27401,5,95,0,0,27401,27402, +7,25,0,0,27402,27403,7,24,0,0,27403,27404,7,10,0,0,27404,27405,7,7,0,0,27405, +27406,7,9,0,0,27406,27407,7,25,0,0,27407,27408,7,2,0,0,27408,27409,7,16, +0,0,27409,4018,1,0,0,0,27410,27411,7,5,0,0,27411,27412,7,18,0,0,27412,27413, +7,5,0,0,27413,27414,5,95,0,0,27414,27415,7,25,0,0,27415,27416,7,24,0,0,27416, +27417,7,10,0,0,27417,27418,7,7,0,0,27418,27419,7,5,0,0,27419,27420,7,6,0, +0,27420,27421,7,3,0,0,27421,27422,7,4,0,0,27422,4020,1,0,0,0,27423,27424, +7,5,0,0,27424,27425,7,18,0,0,27425,27426,7,5,0,0,27426,27427,5,95,0,0,27427, +27428,7,25,0,0,27428,27429,7,24,0,0,27429,27430,7,10,0,0,27430,27431,7,7, +0,0,27431,27432,7,5,0,0,27432,27433,7,15,0,0,27433,27434,7,16,0,0,27434, +27435,7,25,0,0,27435,4022,1,0,0,0,27436,27437,7,5,0,0,27437,27438,7,18,0, +0,27438,27439,7,5,0,0,27439,27440,5,95,0,0,27440,27441,7,25,0,0,27441,27442, +7,24,0,0,27442,27443,7,10,0,0,27443,27444,7,3,0,0,27444,27445,7,10,0,0,27445, +27446,5,50,0,0,27446,27447,7,12,0,0,27447,27448,7,3,0,0,27448,27449,7,10, +0,0,27449,4024,1,0,0,0,27450,27451,7,5,0,0,27451,27452,7,18,0,0,27452,27453, +7,5,0,0,27453,27454,5,95,0,0,27454,27455,7,25,0,0,27455,27456,7,24,0,0,27456, +27457,7,11,0,0,27457,27458,7,0,0,0,27458,27459,7,7,0,0,27459,27460,7,17, +0,0,27460,4026,1,0,0,0,27461,27462,7,5,0,0,27462,27463,7,18,0,0,27463,27464, +7,5,0,0,27464,27465,5,95,0,0,27465,27466,7,25,0,0,27466,27467,7,24,0,0,27467, +27468,7,11,0,0,27468,27469,7,11,0,0,27469,27470,7,7,0,0,27470,27471,7,14, +0,0,27471,27472,7,16,0,0,27472,27473,7,3,0,0,27473,27474,7,14,0,0,27474, +27475,7,24,0,0,27475,27476,7,7,0,0,27476,27477,7,14,0,0,27477,4028,1,0,0, +0,27478,27479,7,5,0,0,27479,27480,7,18,0,0,27480,27481,7,5,0,0,27481,27482, +5,95,0,0,27482,27483,7,25,0,0,27483,27484,7,24,0,0,27484,27485,7,14,0,0, +27485,27486,7,21,0,0,27486,27487,7,7,0,0,27487,27488,7,2,0,0,27488,27489, +7,9,0,0,27489,27490,7,6,0,0,27490,27491,7,3,0,0,27491,27492,7,6,0,0,27492, +27493,7,16,0,0,27493,4030,1,0,0,0,27494,27495,7,5,0,0,27495,27496,7,18,0, +0,27496,27497,7,5,0,0,27497,27498,5,95,0,0,27498,27499,7,25,0,0,27499,27500, +7,24,0,0,27500,27501,7,7,0,0,27501,27502,7,10,0,0,27502,27503,7,11,0,0,27503, +27504,7,11,0,0,27504,27505,7,6,0,0,27505,27506,7,9,0,0,27506,4032,1,0,0, +0,27507,27508,7,5,0,0,27508,27509,7,18,0,0,27509,27510,7,5,0,0,27510,27511, +5,95,0,0,27511,27512,7,25,0,0,27512,27513,7,24,0,0,27513,27514,7,7,0,0,27514, +27515,7,2,0,0,27515,27516,7,9,0,0,27516,27517,7,6,0,0,27517,27518,7,7,0, +0,27518,27519,7,0,0,0,27519,27520,7,14,0,0,27520,27521,7,6,0,0,27521,4034, +1,0,0,0,27522,27523,7,5,0,0,27523,27524,7,18,0,0,27524,27525,7,5,0,0,27525, +27526,5,95,0,0,27526,27527,7,25,0,0,27527,27528,7,24,0,0,27528,27529,7,7, +0,0,27529,27530,7,2,0,0,27530,27531,7,3,0,0,27531,27532,7,14,0,0,27532,27533, +7,5,0,0,27533,27534,7,15,0,0,27534,27535,7,0,0,0,27535,27536,7,8,0,0,27536, +27537,7,6,0,0,27537,4036,1,0,0,0,27538,27539,7,5,0,0,27539,27540,7,18,0, +0,27540,27541,7,5,0,0,27541,27542,5,95,0,0,27542,27543,7,25,0,0,27543,27544, +7,24,0,0,27544,27545,7,7,0,0,27545,27546,7,2,0,0,27546,27547,7,3,0,0,27547, +27548,7,14,0,0,27548,27549,7,12,0,0,27549,27550,7,8,0,0,27550,27551,7,2, +0,0,27551,27552,7,9,0,0,27552,27553,7,6,0,0,27553,4038,1,0,0,0,27554,27555, +7,5,0,0,27555,27556,7,18,0,0,27556,27557,7,5,0,0,27557,27558,5,95,0,0,27558, +27559,7,25,0,0,27559,27560,7,24,0,0,27560,27561,5,95,0,0,27561,27562,7,7, +0,0,27562,27563,7,3,0,0,27563,27564,7,7,0,0,27564,27565,7,17,0,0,27565,4040, +1,0,0,0,27566,27567,7,5,0,0,27567,27568,7,18,0,0,27568,27569,7,5,0,0,27569, +27570,5,95,0,0,27570,27571,7,25,0,0,27571,27572,7,24,0,0,27572,27573,7,7, +0,0,27573,27574,7,5,0,0,27574,27575,7,15,0,0,27575,27576,5,52,0,0,27576, +27577,7,15,0,0,27577,27578,7,16,0,0,27578,27579,7,25,0,0,27579,4042,1,0, +0,0,27580,27581,7,5,0,0,27581,27582,7,18,0,0,27582,27583,7,5,0,0,27583,27584, +5,95,0,0,27584,27585,7,25,0,0,27585,27586,7,24,0,0,27586,27587,7,7,0,0,27587, +27588,7,5,0,0,27588,27589,7,15,0,0,27589,27590,7,16,0,0,27590,27591,7,3, +0,0,27591,27592,7,14,0,0,27592,27593,7,24,0,0,27593,27594,7,7,0,0,27594, +27595,7,14,0,0,27595,4044,1,0,0,0,27596,27597,7,5,0,0,27597,27598,7,18,0, +0,27598,27599,7,5,0,0,27599,27600,5,95,0,0,27600,27601,7,25,0,0,27601,27602, +7,24,0,0,27602,27603,7,15,0,0,27603,27604,7,16,0,0,27604,27605,7,25,0,0, +27605,27606,7,16,0,0,27606,27607,7,3,0,0,27607,27608,7,14,0,0,27608,27609, +7,24,0,0,27609,27610,7,7,0,0,27610,27611,7,14,0,0,27611,4046,1,0,0,0,27612, +27613,7,5,0,0,27613,27614,7,18,0,0,27614,27615,7,5,0,0,27615,27616,5,95, +0,0,27616,27617,7,25,0,0,27617,27618,7,24,0,0,27618,27619,5,95,0,0,27619, +27620,7,15,0,0,27620,27621,7,21,0,0,27621,27622,7,5,0,0,27622,27623,7,24, +0,0,27623,27624,7,11,0,0,27624,27625,5,50,0,0,27625,27626,7,25,0,0,27626, +27627,7,14,0,0,27627,27628,7,11,0,0,27628,4048,1,0,0,0,27629,27630,7,5,0, +0,27630,27631,7,18,0,0,27631,27632,7,5,0,0,27632,27633,5,95,0,0,27633,27634, +7,25,0,0,27634,27635,7,24,0,0,27635,27636,7,15,0,0,27636,27637,7,2,0,0,27637, +27638,7,11,0,0,27638,27639,7,18,0,0,27639,27640,7,0,0,0,27640,27641,7,1, +0,0,27641,27642,7,5,0,0,27642,4050,1,0,0,0,27643,27644,7,5,0,0,27644,27645, +7,18,0,0,27645,27646,7,5,0,0,27646,27647,5,95,0,0,27647,27648,7,25,0,0,27648, +27649,7,24,0,0,27649,27650,7,15,0,0,27650,27651,7,2,0,0,27651,27652,7,11, +0,0,27652,27653,7,18,0,0,27653,27654,7,0,0,0,27654,27655,7,9,0,0,27655,27656, +7,9,0,0,27656,4052,1,0,0,0,27657,27658,7,5,0,0,27658,27659,7,18,0,0,27659, +27660,7,5,0,0,27660,27661,5,95,0,0,27661,27662,7,25,0,0,27662,27663,7,24, +0,0,27663,27664,7,15,0,0,27664,27665,7,2,0,0,27665,27666,7,11,0,0,27666, +27667,7,18,0,0,27667,27668,7,8,0,0,27668,27669,7,6,0,0,27669,27670,7,11, +0,0,27670,4054,1,0,0,0,27671,27672,7,5,0,0,27672,27673,7,18,0,0,27673,27674, +7,5,0,0,27674,27675,5,95,0,0,27675,27676,7,25,0,0,27676,27677,7,24,0,0,27677, +27678,7,15,0,0,27678,27679,7,2,0,0,27679,27680,7,11,0,0,27680,27681,7,18, +0,0,27681,27682,7,8,0,0,27682,27683,7,5,0,0,27683,27684,7,4,0,0,27684,27685, +7,1,0,0,27685,27686,7,11,0,0,27686,4056,1,0,0,0,27687,27688,7,5,0,0,27688, +27689,7,18,0,0,27689,27690,7,5,0,0,27690,27691,5,95,0,0,27691,27692,7,25, +0,0,27692,27693,7,24,0,0,27693,27694,7,15,0,0,27694,27695,7,2,0,0,27695, +27696,7,11,0,0,27696,27697,7,18,0,0,27697,27698,7,8,0,0,27698,27699,7,5, +0,0,27699,27700,7,4,0,0,27700,4058,1,0,0,0,27701,27702,7,5,0,0,27702,27703, +7,18,0,0,27703,27704,7,5,0,0,27704,27705,5,95,0,0,27705,27706,7,25,0,0,27706, +27707,7,24,0,0,27707,27708,7,15,0,0,27708,27709,7,2,0,0,27709,27710,7,11, +0,0,27710,27711,7,18,0,0,27711,27712,7,9,0,0,27712,27713,7,10,0,0,27713, +27714,7,13,0,0,27714,4060,1,0,0,0,27715,27716,7,5,0,0,27716,27717,7,18,0, +0,27717,27718,7,5,0,0,27718,27719,5,95,0,0,27719,27720,7,25,0,0,27720,27721, +7,24,0,0,27721,27722,7,15,0,0,27722,27723,7,2,0,0,27723,27724,7,11,0,0,27724, +27725,7,18,0,0,27725,27726,7,16,0,0,27726,27727,7,11,0,0,27727,27728,7,3, +0,0,27728,4062,1,0,0,0,27729,27730,7,5,0,0,27730,27731,7,18,0,0,27731,27732, +7,5,0,0,27732,27733,5,95,0,0,27733,27734,7,25,0,0,27734,27735,7,24,0,0,27735, +27736,7,15,0,0,27736,27737,7,2,0,0,27737,27738,7,11,0,0,27738,27739,7,18, +0,0,27739,27740,7,14,0,0,27740,27741,7,2,0,0,27741,27742,7,9,0,0,27742,4064, +1,0,0,0,27743,27744,7,5,0,0,27744,27745,7,18,0,0,27745,27746,7,5,0,0,27746, +27747,5,95,0,0,27747,27748,7,25,0,0,27748,27749,7,24,0,0,27749,27750,7,15, +0,0,27750,27751,7,2,0,0,27751,27752,7,11,0,0,27752,27753,7,18,0,0,27753, +27754,7,14,0,0,27754,27755,7,12,0,0,27755,27756,7,11,0,0,27756,4066,1,0, +0,0,27757,27758,7,5,0,0,27758,27759,7,18,0,0,27759,27760,7,5,0,0,27760,27761, +5,95,0,0,27761,27762,7,25,0,0,27762,27763,7,24,0,0,27763,27764,7,15,0,0, +27764,27765,7,2,0,0,27765,27766,7,11,0,0,27766,27767,7,18,0,0,27767,27768, +7,3,0,0,27768,27769,7,7,0,0,27769,27770,7,9,0,0,27770,4068,1,0,0,0,27771, +27772,7,5,0,0,27772,27773,7,18,0,0,27773,27774,7,5,0,0,27774,27775,5,95, +0,0,27775,27776,7,25,0,0,27776,27777,7,24,0,0,27777,27778,7,15,0,0,27778, +27779,7,2,0,0,27779,27780,7,11,0,0,27780,27781,7,18,0,0,27781,27782,7,5, +0,0,27782,27783,7,24,0,0,27783,27784,7,3,0,0,27784,27785,7,4,0,0,27785,4070, +1,0,0,0,27786,27787,7,5,0,0,27787,27788,7,18,0,0,27788,27789,7,5,0,0,27789, +27790,5,95,0,0,27790,27791,7,25,0,0,27791,27792,7,24,0,0,27792,27793,7,15, +0,0,27793,27794,7,2,0,0,27794,27795,7,11,0,0,27795,27796,7,18,0,0,27796, +27797,7,5,0,0,27797,27798,7,12,0,0,27798,27799,7,1,0,0,27799,4072,1,0,0, +0,27800,27801,7,5,0,0,27801,27802,7,18,0,0,27802,27803,7,5,0,0,27803,27804, +5,95,0,0,27804,27805,7,25,0,0,27805,27806,7,24,0,0,27806,27807,7,15,0,0, +27807,27808,7,2,0,0,27808,27809,7,11,0,0,27809,27810,7,18,0,0,27810,27811, +7,12,0,0,27811,27812,7,14,0,0,27812,27813,7,12,0,0,27813,27814,7,5,0,0,27814, +4074,1,0,0,0,27815,27816,7,5,0,0,27816,27817,7,18,0,0,27817,27818,7,5,0, +0,27818,27819,5,95,0,0,27819,27820,7,25,0,0,27820,27821,7,24,0,0,27821,27822, +7,15,0,0,27822,27823,7,2,0,0,27823,27824,7,11,0,0,27824,27825,7,18,0,0,27825, +27826,7,12,0,0,27826,27827,7,15,0,0,27827,27828,7,11,0,0,27828,27829,7,5, +0,0,27829,4076,1,0,0,0,27830,27831,7,5,0,0,27831,27832,7,18,0,0,27832,27833, +7,5,0,0,27833,27834,5,95,0,0,27834,27835,7,25,0,0,27835,27836,7,24,0,0,27836, +27837,7,15,0,0,27837,27838,7,2,0,0,27838,27839,7,11,0,0,27839,27840,7,18, +0,0,27840,27841,7,13,0,0,27841,27842,7,6,0,0,27842,27843,7,24,0,0,27843, +4078,1,0,0,0,27844,27845,7,5,0,0,27845,27846,7,18,0,0,27846,27847,7,5,0, +0,27847,27848,5,95,0,0,27848,27849,7,25,0,0,27849,27850,7,24,0,0,27850,27851, +7,15,0,0,27851,27852,7,2,0,0,27852,27853,7,11,0,0,27853,27854,7,18,0,0,27854, +27855,7,13,0,0,27855,27856,7,17,0,0,27856,27857,7,6,0,0,27857,4080,1,0,0, +0,27858,27859,7,5,0,0,27859,27860,7,18,0,0,27860,27861,7,5,0,0,27861,27862, +5,95,0,0,27862,27863,7,25,0,0,27863,27864,7,24,0,0,27864,27865,7,15,0,0, +27865,27866,7,2,0,0,27866,27867,7,11,0,0,27867,27868,7,18,0,0,27868,27869, +7,13,0,0,27869,27870,7,17,0,0,27870,27871,7,4,0,0,27871,4082,1,0,0,0,27872, +27873,7,5,0,0,27873,27874,7,18,0,0,27874,27875,7,5,0,0,27875,27876,5,95, +0,0,27876,27877,7,25,0,0,27877,27878,7,24,0,0,27878,27879,7,15,0,0,27879, +27880,7,2,0,0,27880,27881,7,11,0,0,27881,27882,7,18,0,0,27882,27883,7,13, +0,0,27883,27884,7,11,0,0,27884,27885,7,6,0,0,27885,4084,1,0,0,0,27886,27887, +7,5,0,0,27887,27888,7,18,0,0,27888,27889,7,5,0,0,27889,27890,5,95,0,0,27890, +27891,7,25,0,0,27891,27892,7,24,0,0,27892,27893,7,15,0,0,27893,27894,7,2, +0,0,27894,27895,7,11,0,0,27895,27896,7,18,0,0,27896,27897,7,13,0,0,27897, +27898,7,11,0,0,27898,27899,7,4,0,0,27899,4086,1,0,0,0,27900,27901,7,5,0, +0,27901,27902,7,18,0,0,27902,27903,7,5,0,0,27903,27904,5,95,0,0,27904,27905, +7,25,0,0,27905,27906,7,24,0,0,27906,27907,7,15,0,0,27907,27908,7,2,0,0,27908, +27909,7,11,0,0,27909,27910,7,18,0,0,27910,27911,7,13,0,0,27911,27912,7,7, +0,0,27912,27913,7,6,0,0,27913,4088,1,0,0,0,27914,27915,7,5,0,0,27915,27916, +7,18,0,0,27916,27917,7,5,0,0,27917,27918,5,95,0,0,27918,27919,7,25,0,0,27919, +27920,7,24,0,0,27920,27921,7,3,0,0,27921,27922,7,6,0,0,27922,27923,7,16, +0,0,27923,27924,5,50,0,0,27924,27925,7,13,0,0,27925,27926,7,0,0,0,27926, +27927,7,11,0,0,27927,4090,1,0,0,0,27928,27929,7,5,0,0,27929,27930,7,18,0, +0,27930,27931,7,5,0,0,27931,27932,5,95,0,0,27932,27933,7,25,0,0,27933,27934, +7,24,0,0,27934,27935,7,3,0,0,27935,27936,7,6,0,0,27936,27937,7,7,0,0,27937, +27938,7,0,0,0,27938,27939,7,14,0,0,27939,27940,7,6,0,0,27940,4092,1,0,0, +0,27941,27942,7,5,0,0,27942,27943,7,18,0,0,27943,27944,7,5,0,0,27944,27945, +5,95,0,0,27945,27946,7,25,0,0,27946,27947,7,24,0,0,27947,27948,7,3,0,0,27948, +27949,7,6,0,0,27949,27950,7,15,0,0,27950,27951,7,11,0,0,27951,27952,7,0, +0,0,27952,27953,7,8,0,0,27953,27954,7,6,0,0,27954,4094,1,0,0,0,27955,27956, +7,5,0,0,27956,27957,7,18,0,0,27957,27958,7,5,0,0,27958,27959,5,95,0,0,27959, +27960,7,25,0,0,27960,27961,7,24,0,0,27961,27962,7,3,0,0,27962,27963,7,6, +0,0,27963,27964,7,5,0,0,27964,27965,7,13,0,0,27965,27966,7,12,0,0,27966, +27967,7,3,0,0,27967,27968,7,10,0,0,27968,4096,1,0,0,0,27969,27970,7,5,0, +0,27970,27971,7,18,0,0,27971,27972,7,5,0,0,27972,27973,5,95,0,0,27973,27974, +7,25,0,0,27974,27975,7,24,0,0,27975,27976,7,3,0,0,27976,27977,7,7,0,0,27977, +27978,7,9,0,0,27978,27979,7,19,0,0,27979,27980,7,0,0,0,27980,27981,7,11, +0,0,27981,27982,7,16,0,0,27982,27983,5,50,0,0,27983,27984,7,6,0,0,27984, +27985,7,13,0,0,27985,27986,7,7,0,0,27986,4098,1,0,0,0,27987,27988,7,5,0, +0,27988,27989,7,18,0,0,27989,27990,7,5,0,0,27990,27991,5,95,0,0,27991,27992, +7,25,0,0,27992,27993,7,24,0,0,27993,27994,7,3,0,0,27994,27995,7,5,0,0,27995, +27996,7,11,0,0,27996,27997,7,13,0,0,27997,27998,7,24,0,0,27998,27999,7,7, +0,0,27999,28000,7,14,0,0,28000,4100,1,0,0,0,28001,28002,7,5,0,0,28002,28003, +7,18,0,0,28003,28004,7,5,0,0,28004,28005,5,95,0,0,28005,28006,7,25,0,0,28006, +28007,7,24,0,0,28007,28008,7,3,0,0,28008,28009,7,18,0,0,28009,28010,7,6, +0,0,28010,28011,7,7,0,0,28011,28012,7,13,0,0,28012,28013,7,15,0,0,28013, +28014,7,17,0,0,28014,28015,7,6,0,0,28015,28016,7,4,0,0,28016,4102,1,0,0, +0,28017,28018,7,5,0,0,28018,28019,7,18,0,0,28019,28020,7,5,0,0,28020,28021, +5,95,0,0,28021,28022,7,25,0,0,28022,28023,7,24,0,0,28023,28024,7,3,0,0,28024, +28025,7,18,0,0,28025,28026,7,13,0,0,28026,28027,7,0,0,0,28027,28028,7,3, +0,0,28028,28029,7,17,0,0,28029,28030,7,6,0,0,28030,28031,7,4,0,0,28031,4104, +1,0,0,0,28032,28033,7,5,0,0,28033,28034,7,18,0,0,28034,28035,7,5,0,0,28035, +28036,5,95,0,0,28036,28037,7,25,0,0,28037,28038,7,24,0,0,28038,28039,7,3, +0,0,28039,28040,7,18,0,0,28040,28041,7,22,0,0,28041,28042,7,3,0,0,28042, +28043,7,15,0,0,28043,4106,1,0,0,0,28044,28045,7,5,0,0,28045,28046,7,18,0, +0,28046,28047,7,5,0,0,28047,28048,5,95,0,0,28048,28049,7,25,0,0,28049,28050, +7,24,0,0,28050,28051,7,5,0,0,28051,28052,7,6,0,0,28052,28053,7,24,0,0,28053, +28054,5,50,0,0,28054,28055,7,8,0,0,28055,28056,7,2,0,0,28056,28057,7,7,0, +0,28057,28058,5,52,0,0,28058,28059,7,25,0,0,28059,28060,7,8,0,0,28060,4108, +1,0,0,0,28061,28062,7,5,0,0,28062,28063,7,18,0,0,28063,28064,7,5,0,0,28064, +28065,5,95,0,0,28065,28066,7,25,0,0,28066,28067,7,24,0,0,28067,28068,7,5, +0,0,28068,28069,7,6,0,0,28069,28070,7,24,0,0,28070,28071,5,50,0,0,28071, +28072,7,8,0,0,28072,28073,7,2,0,0,28073,28074,7,7,0,0,28074,4110,1,0,0,0, +28075,28076,7,5,0,0,28076,28077,7,18,0,0,28077,28078,7,5,0,0,28078,28079, +5,95,0,0,28079,28080,7,25,0,0,28080,28081,7,24,0,0,28081,28082,7,5,0,0,28082, +28083,7,6,0,0,28083,28084,7,24,0,0,28084,28085,7,9,0,0,28085,28086,7,6,0, +0,28086,28087,7,6,0,0,28087,28088,7,15,0,0,28088,28089,7,6,0,0,28089,28090, +7,24,0,0,28090,4112,1,0,0,0,28091,28092,7,5,0,0,28092,28093,7,18,0,0,28093, +28094,7,5,0,0,28094,28095,5,95,0,0,28095,28096,7,25,0,0,28096,28097,7,24, +0,0,28097,28098,7,5,0,0,28098,28099,7,6,0,0,28099,28100,7,24,0,0,28100,28101, +7,10,0,0,28101,28102,7,7,0,0,28102,28103,7,5,0,0,28103,28104,7,1,0,0,28104, +4114,1,0,0,0,28105,28106,7,5,0,0,28106,28107,7,18,0,0,28107,28108,7,5,0, +0,28108,28109,5,95,0,0,28109,28110,7,25,0,0,28110,28111,7,24,0,0,28111,28112, +7,5,0,0,28112,28113,7,6,0,0,28113,28114,7,24,0,0,28114,28115,7,3,0,0,28115, +28116,7,14,0,0,28116,4116,1,0,0,0,28117,28118,7,5,0,0,28118,28119,7,18,0, +0,28119,28120,7,5,0,0,28120,28121,5,95,0,0,28121,28122,7,25,0,0,28122,28123, +7,24,0,0,28123,28124,7,5,0,0,28124,28125,7,6,0,0,28125,28126,7,24,0,0,28126, +28127,7,3,0,0,28127,28128,7,13,0,0,28128,28129,7,5,0,0,28129,4118,1,0,0, +0,28130,28131,7,5,0,0,28131,28132,7,18,0,0,28132,28133,7,5,0,0,28133,28134, +5,95,0,0,28134,28135,7,25,0,0,28135,28136,7,24,0,0,28136,28137,7,5,0,0,28137, +28138,7,6,0,0,28138,28139,7,24,0,0,28139,28140,7,5,0,0,28140,28141,7,12, +0,0,28141,28142,7,1,0,0,28142,4120,1,0,0,0,28143,28144,7,5,0,0,28144,28145, +7,18,0,0,28145,28146,7,5,0,0,28146,28147,5,95,0,0,28147,28148,7,25,0,0,28148, +28149,7,24,0,0,28149,28150,7,5,0,0,28150,28151,7,6,0,0,28151,28152,7,24, +0,0,28152,28153,7,4,0,0,28153,28154,7,18,0,0,28154,28155,7,15,0,0,28155, +28156,7,14,0,0,28156,28157,7,0,0,0,28157,28158,7,4,0,0,28158,28159,7,8,0, +0,28159,28160,7,19,0,0,28160,4122,1,0,0,0,28161,28162,7,5,0,0,28162,28163, +7,18,0,0,28163,28164,7,5,0,0,28164,28165,5,95,0,0,28165,28166,7,25,0,0,28166, +28167,7,24,0,0,28167,28168,7,5,0,0,28168,28169,7,4,0,0,28169,28170,7,0,0, +0,28170,28171,7,3,0,0,28171,28172,7,4,0,0,28172,28173,7,5,0,0,28173,28174, +7,22,0,0,28174,28175,7,10,0,0,28175,28176,7,4,0,0,28176,28177,7,19,0,0,28177, +4124,1,0,0,0,28178,28179,7,5,0,0,28179,28180,7,18,0,0,28180,28181,7,5,0, +0,28181,28182,5,95,0,0,28182,28183,7,25,0,0,28183,28184,7,24,0,0,28184,28185, +7,5,0,0,28185,28186,7,4,0,0,28186,28187,7,0,0,0,28187,28188,7,4,0,0,28188, +28189,7,1,0,0,28189,28190,7,12,0,0,28190,28191,7,3,0,0,28191,28192,7,10, +0,0,28192,4126,1,0,0,0,28193,28194,7,5,0,0,28194,28195,7,18,0,0,28195,28196, +7,5,0,0,28196,28197,5,95,0,0,28197,28198,7,25,0,0,28198,28199,7,24,0,0,28199, +28200,7,5,0,0,28200,28201,7,4,0,0,28201,28202,7,3,0,0,28202,28203,5,50,0, +0,28203,28204,7,8,0,0,28204,28205,7,2,0,0,28205,28206,7,9,0,0,28206,28207, +7,6,0,0,28207,28208,7,15,0,0,28208,4128,1,0,0,0,28209,28210,7,5,0,0,28210, +28211,7,18,0,0,28211,28212,7,5,0,0,28212,28213,5,95,0,0,28213,28214,7,25, +0,0,28214,28215,7,24,0,0,28215,28216,7,5,0,0,28216,28217,7,4,0,0,28217,28218, +7,3,0,0,28218,28219,7,20,0,0,28219,28220,7,2,0,0,28220,28221,7,10,0,0,28221, +28222,7,7,0,0,28222,4130,1,0,0,0,28223,28224,7,5,0,0,28224,28225,7,18,0, +0,28225,28226,7,5,0,0,28226,28227,5,95,0,0,28227,28228,7,25,0,0,28228,28229, +7,24,0,0,28229,28230,7,5,0,0,28230,28231,7,12,0,0,28231,28232,7,1,0,0,28232, +28233,7,5,0,0,28233,28234,7,4,0,0,28234,28235,7,3,0,0,28235,28236,7,0,0, +0,28236,28237,7,16,0,0,28237,28238,7,4,0,0,28238,4132,1,0,0,0,28239,28240, +7,5,0,0,28240,28241,7,18,0,0,28241,28242,7,5,0,0,28242,28243,5,95,0,0,28243, +28244,7,25,0,0,28244,28245,7,24,0,0,28245,28246,7,5,0,0,28246,28247,7,12, +0,0,28247,28248,7,1,0,0,28248,28249,7,5,0,0,28249,28250,7,4,0,0,28250,28251, +7,3,0,0,28251,28252,7,1,0,0,28252,28253,7,6,0,0,28253,28254,7,16,0,0,28254, +4134,1,0,0,0,28255,28256,7,5,0,0,28256,28257,7,18,0,0,28257,28258,7,5,0, +0,28258,28259,5,95,0,0,28259,28260,7,25,0,0,28260,28261,7,24,0,0,28261,28262, +7,4,0,0,28262,28263,7,2,0,0,28263,28264,7,21,0,0,28264,28265,7,6,0,0,28265, +28266,7,7,0,0,28266,28267,7,10,0,0,28267,28268,7,23,0,0,28268,28269,7,6, +0,0,28269,4136,1,0,0,0,28270,28271,7,5,0,0,28271,28272,7,18,0,0,28272,28273, +7,5,0,0,28273,28274,5,95,0,0,28274,28275,7,25,0,0,28275,28276,7,24,0,0,28276, +28277,7,4,0,0,28277,28278,7,3,0,0,28278,28279,7,6,0,0,28279,28280,7,0,0, +0,28280,28281,7,4,0,0,28281,28282,7,0,0,0,28282,28283,7,5,0,0,28283,4138, +1,0,0,0,28284,28285,7,5,0,0,28285,28286,7,18,0,0,28286,28287,7,5,0,0,28287, +28288,5,95,0,0,28288,28289,7,25,0,0,28289,28290,7,24,0,0,28290,28291,5,95, +0,0,28291,28292,7,12,0,0,28292,28293,7,15,0,0,28293,28294,7,21,0,0,28294, +28295,7,25,0,0,28295,28296,7,14,0,0,28296,28297,7,11,0,0,28297,28298,5,50, +0,0,28298,28299,7,5,0,0,28299,28300,7,24,0,0,28300,28301,7,11,0,0,28301, +4140,1,0,0,0,28302,28303,7,5,0,0,28303,28304,7,18,0,0,28304,28305,7,5,0, +0,28305,28306,5,95,0,0,28306,28307,7,25,0,0,28307,28308,7,24,0,0,28308,28309, +7,25,0,0,28309,28310,7,16,0,0,28310,28311,7,2,0,0,28311,28312,7,3,0,0,28312, +28313,7,14,0,0,28313,4142,1,0,0,0,28314,28315,7,5,0,0,28315,28316,7,18,0, +0,28316,28317,7,5,0,0,28317,28318,5,95,0,0,28318,28319,7,25,0,0,28319,28320, +7,5,0,0,28320,28321,7,10,0,0,28321,28322,7,9,0,0,28322,28323,5,95,0,0,28323, +28324,7,4,0,0,28324,28325,7,2,0,0,28325,28326,5,95,0,0,28326,28327,7,3,0, +0,28327,28328,7,0,0,0,28328,28329,7,22,0,0,28329,4144,1,0,0,0,28330,28331, +7,5,0,0,28331,28332,7,18,0,0,28332,28333,7,5,0,0,28333,28334,5,95,0,0,28334, +28335,7,23,0,0,28335,28336,7,14,0,0,28336,28337,7,0,0,0,28337,28338,7,15, +0,0,28338,28339,5,95,0,0,28339,28340,7,16,0,0,28340,28341,7,10,0,0,28341, +28342,7,11,0,0,28342,28343,7,4,0,0,28343,28344,7,6,0,0,28344,28345,7,3,0, +0,28345,4146,1,0,0,0,28346,28347,7,5,0,0,28347,28348,7,18,0,0,28348,28349, +7,5,0,0,28349,28350,5,95,0,0,28350,28351,7,23,0,0,28351,28352,7,14,0,0,28352, +28353,7,0,0,0,28353,28354,7,15,0,0,28354,28355,5,95,0,0,28355,28356,7,3, +0,0,28356,28357,7,6,0,0,28357,28358,7,16,0,0,28358,28359,7,3,0,0,28359,28360, +7,6,0,0,28360,28361,7,5,0,0,28361,28362,7,19,0,0,28362,4148,1,0,0,0,28363, +28364,7,4,0,0,28364,4150,1,0,0,0,28365,28366,7,4,0,0,28366,28367,7,0,0,0, +28367,28368,7,1,0,0,28368,28369,7,11,0,0,28369,28370,7,6,0,0,28370,28371, +5,95,0,0,28371,28372,7,11,0,0,28372,28373,7,2,0,0,28373,28374,7,2,0,0,28374, +28375,7,21,0,0,28375,28376,7,12,0,0,28376,28377,7,15,0,0,28377,28378,5,95, +0,0,28378,28379,7,1,0,0,28379,28380,7,18,0,0,28380,28381,5,95,0,0,28381, +28382,7,7,0,0,28382,28383,7,11,0,0,28383,4152,1,0,0,0,28384,28385,7,4,0, +0,28385,28386,7,0,0,0,28386,28387,7,1,0,0,28387,28388,7,11,0,0,28388,28389, +7,6,0,0,28389,28390,7,5,0,0,28390,28391,7,15,0,0,28391,28392,7,0,0,0,28392, +28393,7,8,0,0,28393,28394,7,6,0,0,28394,28395,5,95,0,0,28395,28396,7,7,0, +0,28396,28397,7,2,0,0,28397,4154,1,0,0,0,28398,28399,7,4,0,0,28399,28400, +7,0,0,0,28400,28401,7,1,0,0,28401,28402,7,11,0,0,28402,28403,7,6,0,0,28403, +28404,7,5,0,0,28404,28405,7,15,0,0,28405,28406,7,0,0,0,28406,28407,7,8,0, +0,28407,28408,7,6,0,0,28408,4156,1,0,0,0,28409,28410,7,4,0,0,28410,28411, +7,0,0,0,28411,28412,7,1,0,0,28412,28413,7,11,0,0,28413,28414,7,6,0,0,28414, +28415,7,5,0,0,28415,4158,1,0,0,0,28416,28417,7,4,0,0,28417,28418,7,0,0,0, +28418,28419,7,1,0,0,28419,28420,7,11,0,0,28420,28421,7,6,0,0,28421,28422, +5,95,0,0,28422,28423,7,5,0,0,28423,28424,7,4,0,0,28424,28425,7,0,0,0,28425, +28426,7,4,0,0,28426,28427,7,5,0,0,28427,4160,1,0,0,0,28428,28429,7,4,0,0, +28429,28430,7,0,0,0,28430,28431,7,1,0,0,28431,28432,7,11,0,0,28432,28433, +7,6,0,0,28433,4162,1,0,0,0,28434,28435,7,4,0,0,28435,28436,7,0,0,0,28436, +28437,7,1,0,0,28437,28438,7,7,0,0,28438,28439,7,2,0,0,28439,4164,1,0,0,0, +28440,28441,7,4,0,0,28441,28442,7,0,0,0,28442,28443,7,17,0,0,28443,4166, +1,0,0,0,28444,28445,7,4,0,0,28445,28446,7,0,0,0,28446,28447,7,7,0,0,28447, +28448,7,19,0,0,28448,4168,1,0,0,0,28449,28450,7,4,0,0,28450,28451,7,0,0, +0,28451,28452,7,7,0,0,28452,4170,1,0,0,0,28453,28454,7,4,0,0,28454,28455, +7,1,0,0,28455,28456,7,11,0,0,28456,28457,5,36,0,0,28457,28458,7,2,0,0,28458, +28459,7,3,0,0,28459,28460,5,36,0,0,28460,28461,7,10,0,0,28461,28462,7,9, +0,0,28462,28463,7,25,0,0,28463,28464,5,36,0,0,28464,28465,7,15,0,0,28465, +28466,7,0,0,0,28466,28467,7,3,0,0,28467,28468,7,4,0,0,28468,28469,5,36,0, +0,28469,28470,7,7,0,0,28470,28471,7,12,0,0,28471,28472,7,14,0,0,28472,4172, +1,0,0,0,28473,28474,7,4,0,0,28474,28475,7,6,0,0,28475,28476,7,14,0,0,28476, +28477,7,15,0,0,28477,28478,7,16,0,0,28478,28479,7,10,0,0,28479,28480,7,11, +0,0,28480,28481,7,6,0,0,28481,4174,1,0,0,0,28482,28483,7,4,0,0,28483,28484, +7,6,0,0,28484,28485,7,14,0,0,28485,28486,7,15,0,0,28486,28487,7,11,0,0,28487, +28488,7,0,0,0,28488,28489,7,4,0,0,28489,28490,7,6,0,0,28490,4176,1,0,0,0, +28491,28492,7,4,0,0,28492,28493,7,6,0,0,28493,28494,7,14,0,0,28494,28495, +7,15,0,0,28495,28496,7,11,0,0,28496,28497,7,0,0,0,28497,28498,7,4,0,0,28498, +28499,7,6,0,0,28499,28500,5,95,0,0,28500,28501,7,4,0,0,28501,28502,7,0,0, +0,28502,28503,7,1,0,0,28503,28504,7,11,0,0,28504,28505,7,6,0,0,28505,4178, +1,0,0,0,28506,28507,7,4,0,0,28507,28508,7,6,0,0,28508,28509,7,14,0,0,28509, +28510,7,15,0,0,28510,28511,7,2,0,0,28511,28512,7,3,0,0,28512,28513,7,0,0, +0,28513,28514,7,3,0,0,28514,28515,7,18,0,0,28515,4180,1,0,0,0,28516,28517, +7,4,0,0,28517,28518,7,6,0,0,28518,28519,7,14,0,0,28519,28520,7,15,0,0,28520, +28521,5,95,0,0,28521,28522,7,4,0,0,28522,28523,7,0,0,0,28523,28524,7,1,0, +0,28524,28525,7,11,0,0,28525,28526,7,6,0,0,28526,4182,1,0,0,0,28527,28528, +7,4,0,0,28528,28529,7,6,0,0,28529,28530,7,3,0,0,28530,28531,7,14,0,0,28531, +28532,7,10,0,0,28532,28533,7,7,0,0,28533,28534,7,0,0,0,28534,28535,7,4,0, +0,28535,28536,7,6,0,0,28536,28537,7,9,0,0,28537,4184,1,0,0,0,28538,28539, +7,4,0,0,28539,28540,7,6,0,0,28540,28541,7,5,0,0,28541,28542,7,4,0,0,28542, +4186,1,0,0,0,28543,28544,7,4,0,0,28544,28545,7,6,0,0,28545,28546,7,25,0, +0,28546,28547,7,4,0,0,28547,4188,1,0,0,0,28548,28549,7,4,0,0,28549,28550, +7,6,0,0,28550,28551,7,25,0,0,28551,28552,7,4,0,0,28552,28553,7,16,0,0,28553, +28554,7,10,0,0,28554,28555,7,11,0,0,28555,28556,7,6,0,0,28556,4190,1,0,0, +0,28557,28558,7,4,0,0,28558,28559,7,19,0,0,28559,28560,7,0,0,0,28560,28561, +7,7,0,0,28561,4192,1,0,0,0,28562,28563,7,4,0,0,28563,28564,7,19,0,0,28564, +28565,7,6,0,0,28565,28566,7,7,0,0,28566,4194,1,0,0,0,28567,28568,7,4,0,0, +28568,28569,7,19,0,0,28569,28570,7,6,0,0,28570,4196,1,0,0,0,28571,28572, +7,4,0,0,28572,28573,7,19,0,0,28573,28574,7,6,0,0,28574,28575,7,5,0,0,28575, +28576,7,6,0,0,28576,4198,1,0,0,0,28577,28578,7,4,0,0,28578,28579,7,19,0, +0,28579,28580,7,3,0,0,28580,28581,7,6,0,0,28581,28582,7,0,0,0,28582,28583, +7,9,0,0,28583,4200,1,0,0,0,28584,28585,7,4,0,0,28585,28586,7,19,0,0,28586, +28587,7,3,0,0,28587,28588,7,2,0,0,28588,28589,7,12,0,0,28589,28590,7,17, +0,0,28590,28591,7,19,0,0,28591,4202,1,0,0,0,28592,28593,7,4,0,0,28593,28594, +7,10,0,0,28594,28595,7,6,0,0,28595,28596,7,3,0,0,28596,4204,1,0,0,0,28597, +28598,7,4,0,0,28598,28599,7,10,0,0,28599,28600,7,6,0,0,28600,28601,7,5,0, +0,28601,4206,1,0,0,0,28602,28603,7,4,0,0,28603,28604,7,10,0,0,28604,28605, +7,14,0,0,28605,28606,7,6,0,0,28606,28607,7,2,0,0,28607,28608,7,12,0,0,28608, +28609,7,4,0,0,28609,4208,1,0,0,0,28610,28611,7,4,0,0,28611,28612,7,10,0, +0,28612,28613,7,14,0,0,28613,28614,7,6,0,0,28614,28615,7,5,0,0,28615,28616, +7,4,0,0,28616,28617,7,0,0,0,28617,28618,7,14,0,0,28618,28619,7,15,0,0,28619, +28620,5,95,0,0,28620,28621,7,11,0,0,28621,28622,7,4,0,0,28622,28623,7,23, +0,0,28623,28624,5,95,0,0,28624,28625,7,12,0,0,28625,28626,7,7,0,0,28626, +28627,7,8,0,0,28627,28628,7,2,0,0,28628,28629,7,7,0,0,28629,28630,7,5,0, +0,28630,28631,7,4,0,0,28631,28632,7,3,0,0,28632,28633,7,0,0,0,28633,28634, +7,10,0,0,28634,28635,7,7,0,0,28635,28636,7,6,0,0,28636,28637,7,9,0,0,28637, +4210,1,0,0,0,28638,28639,7,4,0,0,28639,28640,7,10,0,0,28640,28641,7,14,0, +0,28641,28642,7,6,0,0,28642,28643,7,5,0,0,28643,28644,7,4,0,0,28644,28645, +7,0,0,0,28645,28646,7,14,0,0,28646,28647,7,15,0,0,28647,4212,1,0,0,0,28648, +28649,7,4,0,0,28649,28650,7,10,0,0,28650,28651,7,14,0,0,28651,28652,7,6, +0,0,28652,28653,7,5,0,0,28653,28654,7,4,0,0,28654,28655,7,0,0,0,28655,28656, +7,14,0,0,28656,28657,7,15,0,0,28657,28658,5,95,0,0,28658,28659,7,4,0,0,28659, +28660,7,23,0,0,28660,28661,5,95,0,0,28661,28662,7,12,0,0,28662,28663,7,7, +0,0,28663,28664,7,8,0,0,28664,28665,7,2,0,0,28665,28666,7,7,0,0,28666,28667, +7,5,0,0,28667,28668,7,4,0,0,28668,28669,7,3,0,0,28669,28670,7,0,0,0,28670, +28671,7,10,0,0,28671,28672,7,7,0,0,28672,28673,7,6,0,0,28673,28674,7,9,0, +0,28674,4214,1,0,0,0,28675,28676,7,4,0,0,28676,28677,7,10,0,0,28677,28678, +7,14,0,0,28678,28679,7,6,0,0,28679,28680,7,5,0,0,28680,28681,7,4,0,0,28681, +28682,7,0,0,0,28682,28683,7,14,0,0,28683,28684,7,15,0,0,28684,28685,5,95, +0,0,28685,28686,7,12,0,0,28686,28687,7,7,0,0,28687,28688,7,8,0,0,28688,28689, +7,2,0,0,28689,28690,7,7,0,0,28690,28691,7,5,0,0,28691,28692,7,4,0,0,28692, +28693,7,3,0,0,28693,28694,7,0,0,0,28694,28695,7,10,0,0,28695,28696,7,7,0, +0,28696,28697,7,6,0,0,28697,28698,7,9,0,0,28698,4216,1,0,0,0,28699,28700, +7,4,0,0,28700,28701,7,10,0,0,28701,28702,7,14,0,0,28702,28703,7,6,0,0,28703, +28704,7,5,0,0,28704,4218,1,0,0,0,28705,28706,7,4,0,0,28706,28707,7,10,0, +0,28707,28708,7,14,0,0,28708,28709,7,6,0,0,28709,4220,1,0,0,0,28710,28711, +7,4,0,0,28711,28712,7,10,0,0,28712,28713,7,14,0,0,28713,28714,7,6,0,0,28714, +28715,7,23,0,0,28715,28716,7,2,0,0,28716,28717,7,7,0,0,28717,28718,7,6,0, +0,28718,4222,1,0,0,0,28719,28720,7,4,0,0,28720,28721,7,10,0,0,28721,28722, +7,14,0,0,28722,28723,7,6,0,0,28723,28724,7,23,0,0,28724,28725,7,2,0,0,28725, +28726,7,7,0,0,28726,28727,7,6,0,0,28727,28728,5,95,0,0,28728,28729,7,0,0, +0,28729,28730,7,1,0,0,28730,28731,7,1,0,0,28731,28732,7,3,0,0,28732,4224, +1,0,0,0,28733,28734,7,4,0,0,28734,28735,7,10,0,0,28735,28736,7,14,0,0,28736, +28737,7,6,0,0,28737,28738,7,23,0,0,28738,28739,7,2,0,0,28739,28740,7,7,0, +0,28740,28741,7,6,0,0,28741,28742,5,95,0,0,28742,28743,7,19,0,0,28743,28744, +7,2,0,0,28744,28745,7,12,0,0,28745,28746,7,3,0,0,28746,4226,1,0,0,0,28747, +28748,7,4,0,0,28748,28749,7,10,0,0,28749,28750,7,14,0,0,28750,28751,7,6, +0,0,28751,28752,7,23,0,0,28752,28753,7,2,0,0,28753,28754,7,7,0,0,28754,28755, +7,6,0,0,28755,28756,5,95,0,0,28756,28757,7,14,0,0,28757,28758,7,10,0,0,28758, +28759,7,7,0,0,28759,28760,7,12,0,0,28760,28761,7,4,0,0,28761,28762,7,6,0, +0,28762,4228,1,0,0,0,28763,28764,7,4,0,0,28764,28765,7,10,0,0,28765,28766, +7,14,0,0,28766,28767,7,6,0,0,28767,28768,7,23,0,0,28768,28769,7,2,0,0,28769, +28770,7,7,0,0,28770,28771,7,6,0,0,28771,28772,5,95,0,0,28772,28773,7,2,0, +0,28773,28774,7,16,0,0,28774,28775,7,16,0,0,28775,28776,7,5,0,0,28776,28777, +7,6,0,0,28777,28778,7,4,0,0,28778,4230,1,0,0,0,28779,28780,7,4,0,0,28780, +28781,7,10,0,0,28781,28782,7,14,0,0,28782,28783,7,6,0,0,28783,28784,7,23, +0,0,28784,28785,7,2,0,0,28785,28786,7,7,0,0,28786,28787,7,6,0,0,28787,28788, +5,95,0,0,28788,28789,7,3,0,0,28789,28790,7,6,0,0,28790,28791,7,17,0,0,28791, +28792,7,10,0,0,28792,28793,7,2,0,0,28793,28794,7,7,0,0,28794,4232,1,0,0, +0,28795,28796,7,4,0,0,28796,28797,7,10,0,0,28797,28798,7,14,0,0,28798,28799, +7,6,0,0,28799,28800,5,95,0,0,28800,28801,7,23,0,0,28801,28802,7,2,0,0,28802, +28803,7,7,0,0,28803,28804,7,6,0,0,28804,4234,1,0,0,0,28805,28806,7,4,0,0, +28806,28807,7,10,0,0,28807,28808,7,14,0,0,28808,28809,7,10,0,0,28809,28810, +7,7,0,0,28810,28811,7,17,0,0,28811,4236,1,0,0,0,28812,28813,7,4,0,0,28813, +28814,7,10,0,0,28814,28815,7,7,0,0,28815,28816,7,18,0,0,28816,28817,7,10, +0,0,28817,28818,7,7,0,0,28818,28819,7,4,0,0,28819,4238,1,0,0,0,28820,28821, +7,4,0,0,28821,28822,7,10,0,0,28822,28823,7,13,0,0,28823,28824,5,95,0,0,28824, +28825,7,17,0,0,28825,28826,7,1,0,0,28826,4240,1,0,0,0,28827,28828,7,4,0, +0,28828,28829,7,10,0,0,28829,28830,7,13,0,0,28830,28831,5,95,0,0,28831,28832, +7,5,0,0,28832,28833,7,5,0,0,28833,28834,7,16,0,0,28834,4242,1,0,0,0,28835, +28836,7,4,0,0,28836,28837,7,2,0,0,28837,28838,5,95,0,0,28838,28839,7,0,0, +0,28839,28840,7,8,0,0,28840,28841,7,11,0,0,28841,28842,7,10,0,0,28842,28843, +7,9,0,0,28843,4244,1,0,0,0,28844,28845,7,4,0,0,28845,28846,7,2,0,0,28846, +28847,5,95,0,0,28847,28848,7,1,0,0,28848,28849,7,10,0,0,28849,28850,7,7, +0,0,28850,28851,7,0,0,0,28851,28852,7,3,0,0,28852,28853,7,18,0,0,28853,28854, +5,95,0,0,28854,28855,7,9,0,0,28855,28856,7,2,0,0,28856,28857,7,12,0,0,28857, +28858,7,1,0,0,28858,28859,7,11,0,0,28859,28860,7,6,0,0,28860,4246,1,0,0, +0,28861,28862,7,4,0,0,28862,28863,7,2,0,0,28863,28864,5,95,0,0,28864,28865, +7,1,0,0,28865,28866,7,10,0,0,28866,28867,7,7,0,0,28867,28868,7,0,0,0,28868, +28869,7,3,0,0,28869,28870,7,18,0,0,28870,28871,5,95,0,0,28871,28872,7,16, +0,0,28872,28873,7,11,0,0,28873,28874,7,2,0,0,28874,28875,7,0,0,0,28875,28876, +7,4,0,0,28876,4248,1,0,0,0,28877,28878,7,4,0,0,28878,28879,7,2,0,0,28879, +28880,5,95,0,0,28880,28881,7,1,0,0,28881,28882,7,11,0,0,28882,28883,7,2, +0,0,28883,28884,7,1,0,0,28884,4250,1,0,0,0,28885,28886,7,4,0,0,28886,28887, +7,2,0,0,28887,28888,5,95,0,0,28888,28889,7,8,0,0,28889,28890,7,11,0,0,28890, +28891,7,2,0,0,28891,28892,7,1,0,0,28892,4252,1,0,0,0,28893,28894,7,4,0,0, +28894,28895,7,2,0,0,28895,28896,5,95,0,0,28896,28897,7,9,0,0,28897,28898, +7,5,0,0,28898,28899,7,10,0,0,28899,28900,7,7,0,0,28900,28901,7,4,0,0,28901, +28902,7,6,0,0,28902,28903,7,3,0,0,28903,28904,7,13,0,0,28904,28905,7,0,0, +0,28905,28906,7,11,0,0,28906,4254,1,0,0,0,28907,28908,7,4,0,0,28908,28909, +7,2,0,0,28909,28910,5,95,0,0,28910,28911,7,11,0,0,28911,28912,7,2,0,0,28912, +28913,7,1,0,0,28913,4256,1,0,0,0,28914,28915,7,4,0,0,28915,28916,7,2,0,0, +28916,28917,5,95,0,0,28917,28918,7,14,0,0,28918,28919,7,12,0,0,28919,28920, +7,11,0,0,28920,28921,7,4,0,0,28921,28922,7,10,0,0,28922,28923,5,95,0,0,28923, +28924,7,1,0,0,28924,28925,7,18,0,0,28925,28926,7,4,0,0,28926,28927,7,6,0, +0,28927,4258,1,0,0,0,28928,28929,7,4,0,0,28929,28930,7,2,0,0,28930,28931, +5,95,0,0,28931,28932,7,7,0,0,28932,28933,7,8,0,0,28933,28934,7,19,0,0,28934, +28935,7,0,0,0,28935,28936,7,3,0,0,28936,4260,1,0,0,0,28937,28938,7,4,0,0, +28938,28939,7,2,0,0,28939,28940,5,95,0,0,28940,28941,7,7,0,0,28941,28942, +7,8,0,0,28942,28943,7,11,0,0,28943,28944,7,2,0,0,28944,28945,7,1,0,0,28945, +4262,1,0,0,0,28946,28947,7,4,0,0,28947,28948,7,2,0,0,28948,28949,5,95,0, +0,28949,28950,7,7,0,0,28950,28951,7,12,0,0,28951,28952,7,14,0,0,28952,28953, +7,1,0,0,28953,28954,7,6,0,0,28954,28955,7,3,0,0,28955,4264,1,0,0,0,28956, +28957,7,4,0,0,28957,28958,7,2,0,0,28958,28959,7,15,0,0,28959,28960,7,11, +0,0,28960,28961,7,6,0,0,28961,28962,7,13,0,0,28962,28963,7,6,0,0,28963,28964, +7,11,0,0,28964,4266,1,0,0,0,28965,28966,7,4,0,0,28966,28967,7,2,0,0,28967, +28968,5,95,0,0,28968,28969,7,5,0,0,28969,28970,7,10,0,0,28970,28971,7,7, +0,0,28971,28972,7,17,0,0,28972,28973,7,11,0,0,28973,28974,7,6,0,0,28974, +28975,5,95,0,0,28975,28976,7,1,0,0,28976,28977,7,18,0,0,28977,28978,7,4, +0,0,28978,28979,7,6,0,0,28979,4268,1,0,0,0,28980,28981,7,4,0,0,28981,28982, +7,2,0,0,28982,28983,5,95,0,0,28983,28984,7,4,0,0,28984,28985,7,10,0,0,28985, +28986,7,14,0,0,28986,28987,7,6,0,0,28987,28988,7,5,0,0,28988,28989,7,4,0, +0,28989,28990,7,0,0,0,28990,28991,7,14,0,0,28991,28992,7,15,0,0,28992,4270, +1,0,0,0,28993,28994,7,4,0,0,28994,28995,7,2,0,0,28995,28996,5,95,0,0,28996, +28997,7,4,0,0,28997,28998,7,10,0,0,28998,28999,7,14,0,0,28999,29000,7,6, +0,0,29000,29001,7,5,0,0,29001,29002,7,4,0,0,29002,29003,7,0,0,0,29003,29004, +7,14,0,0,29004,29005,7,15,0,0,29005,29006,5,95,0,0,29006,29007,7,4,0,0,29007, +29008,7,23,0,0,29008,4272,1,0,0,0,29009,29010,7,4,0,0,29010,29011,7,2,0, +0,29011,29012,5,95,0,0,29012,29013,7,4,0,0,29013,29014,7,10,0,0,29014,29015, +7,14,0,0,29015,29016,7,6,0,0,29016,4274,1,0,0,0,29017,29018,7,4,0,0,29018, +29019,7,2,0,0,29019,29020,5,95,0,0,29020,29021,7,4,0,0,29021,29022,7,10, +0,0,29022,29023,7,14,0,0,29023,29024,7,6,0,0,29024,29025,5,95,0,0,29025, +29026,7,4,0,0,29026,29027,7,23,0,0,29027,4276,1,0,0,0,29028,29029,7,4,0, +0,29029,29030,7,2,0,0,29030,4278,1,0,0,0,29031,29032,7,4,0,0,29032,29033, +7,2,0,0,29033,29034,5,95,0,0,29034,29035,7,18,0,0,29035,29036,7,14,0,0,29036, +29037,7,10,0,0,29037,29038,7,7,0,0,29038,29039,7,4,0,0,29039,29040,7,6,0, +0,29040,29041,7,3,0,0,29041,29042,7,13,0,0,29042,29043,7,0,0,0,29043,29044, +7,11,0,0,29044,4280,1,0,0,0,29045,29046,7,4,0,0,29046,29047,7,3,0,0,29047, +29048,7,0,0,0,29048,29049,7,8,0,0,29049,29050,7,6,0,0,29050,4282,1,0,0,0, +29051,29052,7,4,0,0,29052,29053,7,3,0,0,29053,29054,7,0,0,0,29054,29055, +7,8,0,0,29055,29056,7,10,0,0,29056,29057,7,7,0,0,29057,29058,7,17,0,0,29058, +4284,1,0,0,0,29059,29060,7,4,0,0,29060,29061,7,3,0,0,29061,29062,7,0,0,0, +29062,29063,7,8,0,0,29063,29064,7,21,0,0,29064,29065,7,10,0,0,29065,29066, +7,7,0,0,29066,29067,7,17,0,0,29067,4286,1,0,0,0,29068,29069,7,4,0,0,29069, +29070,7,3,0,0,29070,29071,7,0,0,0,29071,29072,7,10,0,0,29072,29073,7,11, +0,0,29073,29074,7,10,0,0,29074,29075,7,7,0,0,29075,29076,7,17,0,0,29076, +4288,1,0,0,0,29077,29078,7,4,0,0,29078,29079,7,3,0,0,29079,29080,7,0,0,0, +29080,29081,7,7,0,0,29081,29082,7,5,0,0,29082,29083,7,0,0,0,29083,29084, +7,8,0,0,29084,29085,7,4,0,0,29085,29086,7,10,0,0,29086,29087,7,2,0,0,29087, +29088,7,7,0,0,29088,4290,1,0,0,0,29089,29090,7,4,0,0,29090,29091,7,3,0,0, +29091,29092,7,0,0,0,29092,29093,7,7,0,0,29093,29094,7,5,0,0,29094,29095, +7,16,0,0,29095,29096,7,2,0,0,29096,29097,7,3,0,0,29097,29098,7,14,0,0,29098, +4292,1,0,0,0,29099,29100,7,4,0,0,29100,29101,7,3,0,0,29101,29102,7,0,0,0, +29102,29103,7,7,0,0,29103,29104,7,5,0,0,29104,29105,7,16,0,0,29105,29106, +7,2,0,0,29106,29107,7,3,0,0,29107,29108,7,14,0,0,29108,29109,7,5,0,0,29109, +4294,1,0,0,0,29110,29111,7,4,0,0,29111,29112,7,3,0,0,29112,29113,7,0,0,0, +29113,29114,7,7,0,0,29114,29115,7,5,0,0,29115,29116,7,16,0,0,29116,29117, +7,2,0,0,29117,29118,7,3,0,0,29118,29119,7,14,0,0,29119,29120,5,95,0,0,29120, +29121,7,9,0,0,29121,29122,7,10,0,0,29122,29123,7,5,0,0,29123,29124,7,4,0, +0,29124,29125,7,10,0,0,29125,29126,7,7,0,0,29126,29127,7,8,0,0,29127,29128, +7,4,0,0,29128,29129,5,95,0,0,29129,29130,7,0,0,0,29130,29131,7,17,0,0,29131, +29132,7,17,0,0,29132,4296,1,0,0,0,29133,29134,7,4,0,0,29134,29135,7,3,0, +0,29135,29136,7,0,0,0,29136,29137,7,7,0,0,29137,29138,7,5,0,0,29138,29139, +7,10,0,0,29139,29140,7,4,0,0,29140,29141,7,10,0,0,29141,29142,7,2,0,0,29142, +29143,7,7,0,0,29143,29144,7,0,0,0,29144,29145,7,11,0,0,29145,4298,1,0,0, +0,29146,29147,7,4,0,0,29147,29148,7,3,0,0,29148,29149,7,0,0,0,29149,29150, +7,7,0,0,29150,29151,7,5,0,0,29151,29152,7,10,0,0,29152,29153,7,4,0,0,29153, +29154,7,10,0,0,29154,29155,7,2,0,0,29155,29156,7,7,0,0,29156,4300,1,0,0, +0,29157,29158,7,4,0,0,29158,29159,7,3,0,0,29159,29160,7,0,0,0,29160,29161, +7,7,0,0,29161,29162,7,5,0,0,29162,29163,7,11,0,0,29163,29164,7,0,0,0,29164, +29165,7,4,0,0,29165,29166,7,6,0,0,29166,4302,1,0,0,0,29167,29168,7,4,0,0, +29168,29169,7,3,0,0,29169,29170,7,0,0,0,29170,29171,7,7,0,0,29171,29172, +7,5,0,0,29172,29173,7,11,0,0,29173,29174,7,0,0,0,29174,29175,7,4,0,0,29175, +29176,7,10,0,0,29176,29177,7,2,0,0,29177,29178,7,7,0,0,29178,4304,1,0,0, +0,29179,29180,7,4,0,0,29180,29181,7,3,0,0,29181,29182,7,6,0,0,29182,29183, +7,0,0,0,29183,29184,7,4,0,0,29184,4306,1,0,0,0,29185,29186,7,4,0,0,29186, +29187,7,3,0,0,29187,29188,7,10,0,0,29188,29189,7,17,0,0,29189,29190,7,17, +0,0,29190,29191,7,6,0,0,29191,29192,7,3,0,0,29192,29193,7,5,0,0,29193,4308, +1,0,0,0,29194,29195,7,4,0,0,29195,29196,7,3,0,0,29196,29197,7,10,0,0,29197, +29198,7,17,0,0,29198,29199,7,17,0,0,29199,29200,7,6,0,0,29200,29201,7,3, +0,0,29201,4310,1,0,0,0,29202,29203,7,4,0,0,29203,29204,7,3,0,0,29204,29205, +7,12,0,0,29205,29206,7,6,0,0,29206,4312,1,0,0,0,29207,29208,7,4,0,0,29208, +29209,7,3,0,0,29209,29210,7,12,0,0,29210,29211,7,7,0,0,29211,29212,7,8,0, +0,29212,29213,7,0,0,0,29213,29214,7,4,0,0,29214,29215,7,6,0,0,29215,4314, +1,0,0,0,29216,29217,7,4,0,0,29217,29218,7,3,0,0,29218,29219,7,12,0,0,29219, +29220,7,7,0,0,29220,29221,7,8,0,0,29221,4316,1,0,0,0,29222,29223,7,4,0,0, +29223,29224,7,3,0,0,29224,29225,7,12,0,0,29225,29226,7,5,0,0,29226,29227, +7,4,0,0,29227,29228,7,6,0,0,29228,29229,7,9,0,0,29229,4318,1,0,0,0,29230, +29231,7,4,0,0,29231,29232,7,3,0,0,29232,29233,7,12,0,0,29233,29234,7,5,0, +0,29234,29235,7,4,0,0,29235,4320,1,0,0,0,29236,29237,7,4,0,0,29237,29238, +7,12,0,0,29238,29239,7,7,0,0,29239,29240,7,10,0,0,29240,29241,7,7,0,0,29241, +29242,7,17,0,0,29242,4322,1,0,0,0,29243,29244,7,4,0,0,29244,29245,7,25,0, +0,29245,4324,1,0,0,0,29246,29247,7,4,0,0,29247,29248,7,18,0,0,29248,29249, +7,15,0,0,29249,29250,7,6,0,0,29250,29251,7,5,0,0,29251,4326,1,0,0,0,29252, +29253,7,4,0,0,29253,29254,7,18,0,0,29254,29255,7,15,0,0,29255,29256,7,6, +0,0,29256,4328,1,0,0,0,29257,29258,7,4,0,0,29258,29259,7,23,0,0,29259,29260, +5,95,0,0,29260,29261,7,2,0,0,29261,29262,7,16,0,0,29262,29263,7,16,0,0,29263, +29264,7,5,0,0,29264,29265,7,6,0,0,29265,29266,7,4,0,0,29266,4330,1,0,0,0, +29267,29268,7,12,0,0,29268,29269,7,1,0,0,29269,29270,5,50,0,0,29270,4332, +1,0,0,0,29271,29272,7,12,0,0,29272,29273,7,1,0,0,29273,29274,7,0,0,0,29274, +4334,1,0,0,0,29275,29276,7,12,0,0,29276,29277,7,8,0,0,29277,29278,7,5,0, +0,29278,29279,5,50,0,0,29279,4336,1,0,0,0,29280,29281,7,12,0,0,29281,29282, +7,9,0,0,29282,29283,7,16,0,0,29283,4338,1,0,0,0,29284,29285,7,12,0,0,29285, +29286,7,10,0,0,29286,29287,7,9,0,0,29287,4340,1,0,0,0,29288,29289,7,12,0, +0,29289,29290,7,7,0,0,29290,29291,7,0,0,0,29291,29292,7,3,0,0,29292,29293, +7,8,0,0,29293,29294,7,19,0,0,29294,29295,7,10,0,0,29295,29296,7,13,0,0,29296, +29297,7,6,0,0,29297,29298,7,9,0,0,29298,4342,1,0,0,0,29299,29300,7,12,0, +0,29300,29301,7,7,0,0,29301,29302,7,1,0,0,29302,29303,7,2,0,0,29303,29304, +7,12,0,0,29304,29305,7,7,0,0,29305,29306,7,9,0,0,29306,29307,7,6,0,0,29307, +29308,7,9,0,0,29308,4344,1,0,0,0,29309,29310,7,12,0,0,29310,29311,7,7,0, +0,29311,29312,7,1,0,0,29312,29313,7,2,0,0,29313,29314,7,12,0,0,29314,29315, +7,7,0,0,29315,29316,7,9,0,0,29316,4346,1,0,0,0,29317,29318,7,12,0,0,29318, +29319,7,7,0,0,29319,29320,7,8,0,0,29320,29321,7,2,0,0,29321,29322,7,7,0, +0,29322,29323,7,9,0,0,29323,29324,7,10,0,0,29324,29325,7,4,0,0,29325,29326, +7,10,0,0,29326,29327,7,2,0,0,29327,29328,7,7,0,0,29328,29329,7,0,0,0,29329, +29330,7,11,0,0,29330,4348,1,0,0,0,29331,29332,7,12,0,0,29332,29333,7,7,0, +0,29333,29334,7,9,0,0,29334,29335,7,6,0,0,29335,29336,7,3,0,0,29336,4350, +1,0,0,0,29337,29338,7,12,0,0,29338,29339,7,7,0,0,29339,29340,7,9,0,0,29340, +29341,7,2,0,0,29341,4352,1,0,0,0,29342,29343,7,12,0,0,29343,29344,7,7,0, +0,29344,29345,7,9,0,0,29345,29346,7,3,0,0,29346,29347,7,2,0,0,29347,29348, +7,15,0,0,29348,4354,1,0,0,0,29349,29350,7,12,0,0,29350,29351,7,7,0,0,29351, +29352,7,10,0,0,29352,29353,7,16,0,0,29353,29354,7,2,0,0,29354,29355,7,3, +0,0,29355,29356,7,14,0,0,29356,4356,1,0,0,0,29357,29358,7,12,0,0,29358,29359, +7,7,0,0,29359,29360,7,10,0,0,29360,29361,7,2,0,0,29361,29362,7,7,0,0,29362, +4358,1,0,0,0,29363,29364,7,12,0,0,29364,29365,7,7,0,0,29365,29366,7,10,0, +0,29366,29367,7,2,0,0,29367,29368,7,7,0,0,29368,29369,7,4,0,0,29369,29370, +7,18,0,0,29370,29371,7,15,0,0,29371,29372,7,6,0,0,29372,4360,1,0,0,0,29373, +29374,7,12,0,0,29374,29375,7,7,0,0,29375,29376,7,10,0,0,29376,29377,7,24, +0,0,29377,29378,7,12,0,0,29378,29379,7,6,0,0,29379,4362,1,0,0,0,29380,29381, +7,12,0,0,29381,29382,7,7,0,0,29382,29383,7,10,0,0,29383,29384,7,5,0,0,29384, +29385,7,4,0,0,29385,29386,7,3,0,0,29386,4364,1,0,0,0,29387,29388,7,12,0, +0,29388,29389,7,7,0,0,29389,29390,7,11,0,0,29390,29391,7,10,0,0,29391,29392, +7,14,0,0,29392,29393,7,10,0,0,29393,29394,7,4,0,0,29394,29395,7,6,0,0,29395, +29396,7,9,0,0,29396,4366,1,0,0,0,29397,29398,7,12,0,0,29398,29399,7,7,0, +0,29399,29400,7,11,0,0,29400,29401,7,2,0,0,29401,29402,7,0,0,0,29402,29403, +7,9,0,0,29403,4368,1,0,0,0,29404,29405,7,12,0,0,29405,29406,7,7,0,0,29406, +29407,7,11,0,0,29407,29408,7,2,0,0,29408,29409,7,8,0,0,29409,29410,7,21, +0,0,29410,4370,1,0,0,0,29411,29412,7,12,0,0,29412,29413,7,7,0,0,29413,29414, +7,14,0,0,29414,29415,7,0,0,0,29415,29416,7,4,0,0,29416,29417,7,8,0,0,29417, +29418,7,19,0,0,29418,29419,7,6,0,0,29419,29420,7,9,0,0,29420,4372,1,0,0, +0,29421,29422,7,12,0,0,29422,29423,7,7,0,0,29423,29424,7,7,0,0,29424,29425, +7,6,0,0,29425,29426,7,5,0,0,29426,29427,7,4,0,0,29427,29428,5,95,0,0,29428, +29429,7,10,0,0,29429,29430,7,7,0,0,29430,29431,7,7,0,0,29431,29432,7,6,0, +0,29432,29433,7,3,0,0,29433,29434,7,20,0,0,29434,29435,5,95,0,0,29435,29436, +7,9,0,0,29436,29437,7,10,0,0,29437,29438,7,5,0,0,29438,29439,7,4,0,0,29439, +29440,7,10,0,0,29440,29441,7,7,0,0,29441,29442,7,8,0,0,29442,29443,7,4,0, +0,29443,29444,5,95,0,0,29444,29445,7,13,0,0,29445,29446,7,10,0,0,29446,29447, +7,6,0,0,29447,29448,7,22,0,0,29448,4374,1,0,0,0,29449,29450,7,12,0,0,29450, +29451,7,7,0,0,29451,29452,7,7,0,0,29452,29453,7,6,0,0,29453,29454,7,5,0, +0,29454,29455,7,4,0,0,29455,29456,5,95,0,0,29456,29457,7,7,0,0,29457,29458, +7,2,0,0,29458,29459,7,5,0,0,29459,29460,7,6,0,0,29460,29461,7,14,0,0,29461, +29462,7,10,0,0,29462,29463,7,20,0,0,29463,29464,5,95,0,0,29464,29465,7,7, +0,0,29465,29466,7,2,0,0,29466,29467,7,9,0,0,29467,29468,7,10,0,0,29468,29469, +7,5,0,0,29469,29470,7,4,0,0,29470,29471,7,10,0,0,29471,29472,7,7,0,0,29472, +29473,7,8,0,0,29473,29474,7,4,0,0,29474,29475,7,13,0,0,29475,29476,7,10, +0,0,29476,29477,7,6,0,0,29477,29478,7,22,0,0,29478,4376,1,0,0,0,29479,29480, +7,12,0,0,29480,29481,7,7,0,0,29481,29482,7,7,0,0,29482,29483,7,6,0,0,29483, +29484,7,5,0,0,29484,29485,7,4,0,0,29485,29486,5,95,0,0,29486,29487,7,5,0, +0,29487,29488,7,6,0,0,29488,29489,7,14,0,0,29489,29490,7,10,0,0,29490,29491, +7,20,0,0,29491,29492,5,95,0,0,29492,29493,7,13,0,0,29493,29494,7,10,0,0, +29494,29495,7,6,0,0,29495,29496,7,22,0,0,29496,4378,1,0,0,0,29497,29498, +7,12,0,0,29498,29499,7,7,0,0,29499,29500,7,7,0,0,29500,29501,7,6,0,0,29501, +29502,7,5,0,0,29502,29503,7,4,0,0,29503,4380,1,0,0,0,29504,29505,7,12,0, +0,29505,29506,7,7,0,0,29506,29507,7,15,0,0,29507,29508,7,0,0,0,29508,29509, +7,8,0,0,29509,29510,7,21,0,0,29510,29511,7,6,0,0,29511,29512,7,9,0,0,29512, +4382,1,0,0,0,29513,29514,7,12,0,0,29514,29515,7,7,0,0,29515,29516,7,15,0, +0,29516,29517,7,10,0,0,29517,29518,7,13,0,0,29518,29519,7,2,0,0,29519,29520, +7,4,0,0,29520,4384,1,0,0,0,29521,29522,7,12,0,0,29522,29523,7,7,0,0,29523, +29524,7,15,0,0,29524,29525,7,11,0,0,29525,29526,7,12,0,0,29526,29527,7,17, +0,0,29527,4386,1,0,0,0,29528,29529,7,12,0,0,29529,29530,7,7,0,0,29530,29531, +7,15,0,0,29531,29532,7,3,0,0,29532,29533,7,2,0,0,29533,29534,7,4,0,0,29534, +29535,7,6,0,0,29535,29536,7,8,0,0,29536,29537,7,4,0,0,29537,29538,7,6,0, +0,29538,29539,7,9,0,0,29539,4388,1,0,0,0,29540,29541,7,12,0,0,29541,29542, +7,7,0,0,29542,29543,7,24,0,0,29543,29544,7,12,0,0,29544,29545,7,10,0,0,29545, +29546,7,6,0,0,29546,29547,7,5,0,0,29547,29548,7,8,0,0,29548,29549,7,6,0, +0,29549,4390,1,0,0,0,29550,29551,7,12,0,0,29551,29552,7,7,0,0,29552,29553, +7,3,0,0,29553,29554,7,6,0,0,29554,29555,7,8,0,0,29555,29556,7,2,0,0,29556, +29557,7,13,0,0,29557,29558,7,6,0,0,29558,29559,7,3,0,0,29559,29560,7,0,0, +0,29560,29561,7,1,0,0,29561,29562,7,11,0,0,29562,29563,7,6,0,0,29563,4392, +1,0,0,0,29564,29565,7,12,0,0,29565,29566,7,7,0,0,29566,29567,7,3,0,0,29567, +29568,7,6,0,0,29568,29569,7,5,0,0,29569,29570,7,4,0,0,29570,29571,7,3,0, +0,29571,29572,7,10,0,0,29572,29573,7,8,0,0,29573,29574,7,4,0,0,29574,29575, +7,6,0,0,29575,29576,7,9,0,0,29576,4394,1,0,0,0,29577,29578,7,12,0,0,29578, +29579,7,7,0,0,29579,29580,7,5,0,0,29580,29581,7,10,0,0,29581,29582,7,17, +0,0,29582,29583,7,7,0,0,29583,29584,7,6,0,0,29584,29585,7,9,0,0,29585,4396, +1,0,0,0,29586,29587,7,12,0,0,29587,29588,7,7,0,0,29588,29589,7,5,0,0,29589, +29590,7,12,0,0,29590,29591,7,1,0,0,29591,29592,7,5,0,0,29592,29593,7,8,0, +0,29593,29594,7,3,0,0,29594,29595,7,10,0,0,29595,29596,7,1,0,0,29596,29597, +7,6,0,0,29597,4398,1,0,0,0,29598,29599,7,12,0,0,29599,29600,7,7,0,0,29600, +29601,7,4,0,0,29601,29602,7,10,0,0,29602,29603,7,11,0,0,29603,4400,1,0,0, +0,29604,29605,7,12,0,0,29605,29606,7,7,0,0,29606,29607,7,12,0,0,29607,29608, +7,5,0,0,29608,29609,7,0,0,0,29609,29610,7,1,0,0,29610,29611,7,11,0,0,29611, +29612,7,6,0,0,29612,4402,1,0,0,0,29613,29614,7,12,0,0,29614,29615,7,7,0, +0,29615,29616,7,12,0,0,29616,29617,7,5,0,0,29617,29618,7,6,0,0,29618,29619, +7,9,0,0,29619,4404,1,0,0,0,29620,29621,7,12,0,0,29621,29622,7,15,0,0,29622, +29623,7,9,0,0,29623,29624,7,0,0,0,29624,29625,7,4,0,0,29625,29626,7,0,0, +0,29626,29627,7,1,0,0,29627,29628,7,11,0,0,29628,29629,7,6,0,0,29629,4406, +1,0,0,0,29630,29631,7,12,0,0,29631,29632,7,15,0,0,29632,29633,7,9,0,0,29633, +29634,7,0,0,0,29634,29635,7,4,0,0,29635,29636,7,6,0,0,29636,29637,7,9,0, +0,29637,4408,1,0,0,0,29638,29639,7,12,0,0,29639,29640,7,15,0,0,29640,29641, +7,9,0,0,29641,29642,7,0,0,0,29642,29643,7,4,0,0,29643,29644,7,6,0,0,29644, +4410,1,0,0,0,29645,29646,7,12,0,0,29646,29647,7,15,0,0,29647,29648,7,9,0, +0,29648,29649,7,0,0,0,29649,29650,7,4,0,0,29650,29651,7,6,0,0,29651,29652, +7,25,0,0,29652,29653,7,14,0,0,29653,29654,7,11,0,0,29654,4412,1,0,0,0,29655, +29656,7,12,0,0,29656,29657,7,15,0,0,29657,29658,7,9,0,0,29658,29659,5,95, +0,0,29659,29660,7,10,0,0,29660,29661,7,7,0,0,29661,29662,7,9,0,0,29662,29663, +7,6,0,0,29663,29664,7,25,0,0,29664,29665,7,6,0,0,29665,29666,7,5,0,0,29666, +4414,1,0,0,0,29667,29668,7,12,0,0,29668,29669,7,15,0,0,29669,29670,7,9,0, +0,29670,29671,5,95,0,0,29671,29672,7,20,0,0,29672,29673,7,2,0,0,29673,29674, +7,10,0,0,29674,29675,7,7,0,0,29675,29676,7,10,0,0,29676,29677,7,7,0,0,29677, +29678,7,9,0,0,29678,29679,7,6,0,0,29679,29680,7,25,0,0,29680,4416,1,0,0, +0,29681,29682,7,12,0,0,29682,29683,7,15,0,0,29683,29684,7,17,0,0,29684,29685, +7,3,0,0,29685,29686,7,0,0,0,29686,29687,7,9,0,0,29687,29688,7,6,0,0,29688, +4418,1,0,0,0,29689,29690,7,12,0,0,29690,29691,7,15,0,0,29691,29692,7,15, +0,0,29692,29693,7,6,0,0,29693,29694,7,3,0,0,29694,4420,1,0,0,0,29695,29696, +7,12,0,0,29696,29697,7,15,0,0,29697,29698,7,5,0,0,29698,29699,7,6,0,0,29699, +29700,7,3,0,0,29700,29701,7,4,0,0,29701,4422,1,0,0,0,29702,29703,7,12,0, +0,29703,29704,7,3,0,0,29704,29705,7,2,0,0,29705,29706,7,22,0,0,29706,29707, +7,10,0,0,29707,29708,7,9,0,0,29708,4424,1,0,0,0,29709,29710,7,12,0,0,29710, +29711,7,5,0,0,29711,29712,7,0,0,0,29712,29713,7,1,0,0,29713,29714,7,11,0, +0,29714,29715,7,6,0,0,29715,4426,1,0,0,0,29716,29717,7,12,0,0,29717,29718, +7,5,0,0,29718,29719,7,0,0,0,29719,29720,7,17,0,0,29720,29721,7,6,0,0,29721, +4428,1,0,0,0,29722,29723,7,12,0,0,29723,29724,7,5,0,0,29724,29725,7,6,0, +0,29725,29726,5,95,0,0,29726,29727,7,0,0,0,29727,29728,7,7,0,0,29728,29729, +7,4,0,0,29729,29730,7,10,0,0,29730,4430,1,0,0,0,29731,29732,7,12,0,0,29732, +29733,7,5,0,0,29733,29734,7,6,0,0,29734,29735,5,95,0,0,29735,29736,7,8,0, +0,29736,29737,7,2,0,0,29737,29738,7,7,0,0,29738,29739,7,8,0,0,29739,29740, +7,0,0,0,29740,29741,7,4,0,0,29741,4432,1,0,0,0,29742,29743,7,12,0,0,29743, +29744,7,5,0,0,29744,29745,7,6,0,0,29745,29746,5,95,0,0,29746,29747,7,8,0, +0,29747,29748,7,12,0,0,29748,29749,7,1,0,0,29749,29750,7,6,0,0,29750,4434, +1,0,0,0,29751,29752,7,12,0,0,29752,29753,7,5,0,0,29753,29754,7,6,0,0,29754, +29755,5,95,0,0,29755,29756,7,19,0,0,29756,29757,7,0,0,0,29757,29758,7,5, +0,0,29758,29759,7,19,0,0,29759,29760,5,95,0,0,29760,29761,7,0,0,0,29761, +29762,7,17,0,0,29762,29763,7,17,0,0,29763,29764,7,3,0,0,29764,29765,7,6, +0,0,29765,29766,7,17,0,0,29766,29767,7,0,0,0,29767,29768,7,4,0,0,29768,29769, +7,10,0,0,29769,29770,7,2,0,0,29770,29771,7,7,0,0,29771,4436,1,0,0,0,29772, +29773,7,12,0,0,29773,29774,7,5,0,0,29774,29775,7,6,0,0,29775,29776,5,95, +0,0,29776,29777,7,19,0,0,29777,29778,7,0,0,0,29778,29779,7,5,0,0,29779,29780, +7,19,0,0,29780,29781,5,95,0,0,29781,29782,7,17,0,0,29782,29783,7,1,0,0,29783, +29784,7,18,0,0,29784,29785,5,95,0,0,29785,29786,7,16,0,0,29786,29787,7,2, +0,0,29787,29788,7,3,0,0,29788,29789,5,95,0,0,29789,29790,7,15,0,0,29790, +29791,7,12,0,0,29791,29792,7,5,0,0,29792,29793,7,19,0,0,29793,29794,7,9, +0,0,29794,29795,7,2,0,0,29795,29796,7,22,0,0,29796,29797,7,7,0,0,29797,4438, +1,0,0,0,29798,29799,7,12,0,0,29799,29800,7,5,0,0,29800,29801,7,6,0,0,29801, +29802,5,95,0,0,29802,29803,7,19,0,0,29803,29804,7,0,0,0,29804,29805,7,5, +0,0,29805,29806,7,19,0,0,29806,4440,1,0,0,0,29807,29808,7,12,0,0,29808,29809, +7,5,0,0,29809,29810,7,6,0,0,29810,29811,5,95,0,0,29811,29812,7,19,0,0,29812, +29813,7,10,0,0,29813,29814,7,9,0,0,29814,29815,7,9,0,0,29815,29816,7,6,0, +0,29816,29817,7,7,0,0,29817,29818,5,95,0,0,29818,29819,7,15,0,0,29819,29820, +7,0,0,0,29820,29821,7,3,0,0,29821,29822,7,4,0,0,29822,29823,7,10,0,0,29823, +29824,7,4,0,0,29824,29825,7,10,0,0,29825,29826,7,2,0,0,29826,29827,7,7,0, +0,29827,29828,7,5,0,0,29828,4442,1,0,0,0,29829,29830,7,12,0,0,29830,29831, +7,5,0,0,29831,29832,7,6,0,0,29832,29833,5,95,0,0,29833,29834,7,10,0,0,29834, +29835,7,7,0,0,29835,29836,7,13,0,0,29836,29837,7,10,0,0,29837,29838,7,5, +0,0,29838,29839,7,10,0,0,29839,29840,7,1,0,0,29840,29841,7,11,0,0,29841, +29842,7,6,0,0,29842,29843,5,95,0,0,29843,29844,7,10,0,0,29844,29845,7,7, +0,0,29845,29846,7,9,0,0,29846,29847,7,6,0,0,29847,29848,7,25,0,0,29848,29849, +7,6,0,0,29849,29850,7,5,0,0,29850,4444,1,0,0,0,29851,29852,7,12,0,0,29852, +29853,7,5,0,0,29853,29854,7,6,0,0,29854,29855,5,95,0,0,29855,29856,7,14, +0,0,29856,29857,7,6,0,0,29857,29858,7,3,0,0,29858,29859,7,17,0,0,29859,29860, +7,6,0,0,29860,29861,5,95,0,0,29861,29862,7,8,0,0,29862,29863,7,0,0,0,29863, +29864,7,3,0,0,29864,29865,7,4,0,0,29865,29866,7,6,0,0,29866,29867,7,5,0, +0,29867,29868,7,10,0,0,29868,29869,7,0,0,0,29869,29870,7,7,0,0,29870,4446, +1,0,0,0,29871,29872,7,12,0,0,29872,29873,7,5,0,0,29873,29874,7,6,0,0,29874, +29875,5,95,0,0,29875,29876,7,14,0,0,29876,29877,7,6,0,0,29877,29878,7,3, +0,0,29878,29879,7,17,0,0,29879,29880,7,6,0,0,29880,4448,1,0,0,0,29881,29882, +7,12,0,0,29882,29883,7,5,0,0,29883,29884,7,6,0,0,29884,29885,5,95,0,0,29885, +29886,7,7,0,0,29886,29887,7,11,0,0,29887,4450,1,0,0,0,29888,29889,7,12,0, +0,29889,29890,7,5,0,0,29890,29891,7,6,0,0,29891,29892,5,95,0,0,29892,29893, +7,7,0,0,29893,29894,7,11,0,0,29894,29895,5,95,0,0,29895,29896,7,22,0,0,29896, +29897,7,10,0,0,29897,29898,7,4,0,0,29898,29899,7,19,0,0,29899,29900,5,95, +0,0,29900,29901,7,10,0,0,29901,29902,7,7,0,0,29902,29903,7,9,0,0,29903,29904, +7,6,0,0,29904,29905,7,25,0,0,29905,4452,1,0,0,0,29906,29907,7,12,0,0,29907, +29908,7,5,0,0,29908,29909,7,6,0,0,29909,29910,5,95,0,0,29910,29911,7,15, +0,0,29911,29912,7,3,0,0,29912,29913,7,10,0,0,29913,29914,7,13,0,0,29914, +29915,7,0,0,0,29915,29916,7,4,0,0,29916,29917,7,6,0,0,29917,29918,5,95,0, +0,29918,29919,7,2,0,0,29919,29920,7,12,0,0,29920,29921,7,4,0,0,29921,29922, +7,11,0,0,29922,29923,7,10,0,0,29923,29924,7,7,0,0,29924,29925,7,6,0,0,29925, +29926,7,5,0,0,29926,4454,1,0,0,0,29927,29928,7,12,0,0,29928,29929,7,5,0, +0,29929,29930,7,6,0,0,29930,29931,7,3,0,0,29931,29932,5,95,0,0,29932,29933, +7,9,0,0,29933,29934,7,0,0,0,29934,29935,7,4,0,0,29935,29936,7,0,0,0,29936, +4456,1,0,0,0,29937,29938,7,12,0,0,29938,29939,7,5,0,0,29939,29940,7,6,0, +0,29940,29941,7,3,0,0,29941,29942,5,95,0,0,29942,29943,7,9,0,0,29943,29944, +7,6,0,0,29944,29945,7,16,0,0,29945,29946,7,10,0,0,29946,29947,7,7,0,0,29947, +29948,7,6,0,0,29948,29949,7,9,0,0,29949,4458,1,0,0,0,29950,29951,7,12,0, +0,29951,29952,7,5,0,0,29952,29953,7,6,0,0,29953,29954,7,3,0,0,29954,29955, +7,6,0,0,29955,29956,7,7,0,0,29956,29957,7,13,0,0,29957,4460,1,0,0,0,29958, +29959,7,12,0,0,29959,29960,7,5,0,0,29960,29961,7,6,0,0,29961,29962,7,3,0, +0,29962,29963,7,17,0,0,29963,29964,7,3,0,0,29964,29965,7,2,0,0,29965,29966, +7,12,0,0,29966,29967,7,15,0,0,29967,4462,1,0,0,0,29968,29969,7,12,0,0,29969, +29970,7,5,0,0,29970,29971,7,6,0,0,29971,29972,7,3,0,0,29972,29973,5,95,0, +0,29973,29974,7,3,0,0,29974,29975,7,6,0,0,29975,29976,7,8,0,0,29976,29977, +7,18,0,0,29977,29978,7,8,0,0,29978,29979,7,11,0,0,29979,29980,7,6,0,0,29980, +29981,7,1,0,0,29981,29982,7,10,0,0,29982,29983,7,7,0,0,29983,4464,1,0,0, +0,29984,29985,7,12,0,0,29985,29986,7,5,0,0,29986,29987,7,6,0,0,29987,29988, +7,3,0,0,29988,29989,7,5,0,0,29989,4466,1,0,0,0,29990,29991,7,12,0,0,29991, +29992,7,5,0,0,29992,29993,7,6,0,0,29993,29994,7,3,0,0,29994,29995,5,95,0, +0,29995,29996,7,4,0,0,29996,29997,7,0,0,0,29997,29998,7,1,0,0,29998,29999, +7,11,0,0,29999,30000,7,6,0,0,30000,30001,7,5,0,0,30001,30002,7,15,0,0,30002, +30003,7,0,0,0,30003,30004,7,8,0,0,30004,30005,7,6,0,0,30005,30006,7,5,0, +0,30006,4468,1,0,0,0,30007,30008,7,12,0,0,30008,30009,7,5,0,0,30009,30010, +7,6,0,0,30010,30011,7,3,0,0,30011,4470,1,0,0,0,30012,30013,7,12,0,0,30013, +30014,7,5,0,0,30014,30015,7,6,0,0,30015,30016,5,95,0,0,30016,30017,7,5,0, +0,30017,30018,7,6,0,0,30018,30019,7,14,0,0,30019,30020,7,10,0,0,30020,4472, +1,0,0,0,30021,30022,7,12,0,0,30022,30023,7,5,0,0,30023,30024,7,6,0,0,30024, +30025,5,95,0,0,30025,30026,7,5,0,0,30026,30027,7,4,0,0,30027,30028,7,2,0, +0,30028,30029,7,3,0,0,30029,30030,7,6,0,0,30030,30031,7,9,0,0,30031,30032, +5,95,0,0,30032,30033,7,2,0,0,30033,30034,7,12,0,0,30034,30035,7,4,0,0,30035, +30036,7,11,0,0,30036,30037,7,10,0,0,30037,30038,7,7,0,0,30038,30039,7,6, +0,0,30039,30040,7,5,0,0,30040,4474,1,0,0,0,30041,30042,7,12,0,0,30042,30043, +7,5,0,0,30043,30044,7,6,0,0,30044,30045,5,95,0,0,30045,30046,7,4,0,0,30046, +30047,7,4,0,0,30047,30048,7,4,0,0,30048,30049,5,95,0,0,30049,30050,7,16, +0,0,30050,30051,7,2,0,0,30051,30052,7,3,0,0,30052,30053,5,95,0,0,30053,30054, +7,17,0,0,30054,30055,7,5,0,0,30055,30056,7,6,0,0,30056,30057,7,4,0,0,30057, +30058,7,5,0,0,30058,4476,1,0,0,0,30059,30060,7,12,0,0,30060,30061,7,5,0, +0,30061,30062,7,6,0,0,30062,4478,1,0,0,0,30063,30064,7,12,0,0,30064,30065, +7,5,0,0,30065,30066,7,6,0,0,30066,30067,5,95,0,0,30067,30068,7,13,0,0,30068, +30069,7,6,0,0,30069,30070,7,8,0,0,30070,30071,7,4,0,0,30071,30072,7,2,0, +0,30072,30073,7,3,0,0,30073,30074,5,95,0,0,30074,30075,7,0,0,0,30075,30076, +7,17,0,0,30076,30077,7,17,0,0,30077,30078,7,3,0,0,30078,30079,7,6,0,0,30079, +30080,7,17,0,0,30080,30081,7,0,0,0,30081,30082,7,4,0,0,30082,30083,7,10, +0,0,30083,30084,7,2,0,0,30084,30085,7,7,0,0,30085,4480,1,0,0,0,30086,30087, +7,12,0,0,30087,30088,7,5,0,0,30088,30089,7,6,0,0,30089,30090,5,95,0,0,30090, +30091,7,22,0,0,30091,30092,7,6,0,0,30092,30093,7,0,0,0,30093,30094,7,21, +0,0,30094,30095,5,95,0,0,30095,30096,7,7,0,0,30096,30097,7,0,0,0,30097,30098, +7,14,0,0,30098,30099,7,6,0,0,30099,30100,5,95,0,0,30100,30101,7,3,0,0,30101, +30102,7,6,0,0,30102,30103,7,5,0,0,30103,30104,7,11,0,0,30104,4482,1,0,0, +0,30105,30106,7,12,0,0,30106,30107,7,5,0,0,30107,30108,7,10,0,0,30108,30109, +7,7,0,0,30109,30110,7,17,0,0,30110,30111,5,95,0,0,30111,30112,7,7,0,0,30112, +30113,7,2,0,0,30113,30114,5,95,0,0,30114,30115,7,6,0,0,30115,30116,7,25, +0,0,30116,30117,7,15,0,0,30117,30118,7,0,0,0,30118,30119,7,7,0,0,30119,30120, +7,9,0,0,30120,4484,1,0,0,0,30121,30122,7,12,0,0,30122,30123,7,5,0,0,30123, +30124,7,10,0,0,30124,30125,7,7,0,0,30125,30126,7,17,0,0,30126,30127,5,95, +0,0,30127,30128,7,7,0,0,30128,30129,7,11,0,0,30129,30130,7,5,0,0,30130,30131, +5,95,0,0,30131,30132,7,8,0,0,30132,30133,7,2,0,0,30133,30134,7,14,0,0,30134, +30135,7,15,0,0,30135,4486,1,0,0,0,30136,30137,7,12,0,0,30137,30138,7,5,0, +0,30138,30139,7,10,0,0,30139,30140,7,7,0,0,30140,30141,7,17,0,0,30141,4488, +1,0,0,0,30142,30143,7,12,0,0,30143,30144,7,4,0,0,30144,30145,7,16,0,0,30145, +30146,5,49,0,0,30146,30147,5,54,0,0,30147,30148,7,1,0,0,30148,30149,7,6, +0,0,30149,4490,1,0,0,0,30150,30151,7,12,0,0,30151,30152,7,4,0,0,30152,30153, +7,16,0,0,30153,30154,5,49,0,0,30154,30155,5,54,0,0,30155,30156,7,11,0,0, +30156,30157,7,6,0,0,30157,4492,1,0,0,0,30158,30159,7,12,0,0,30159,30160, +7,4,0,0,30160,30161,7,16,0,0,30161,30162,5,51,0,0,30162,30163,5,50,0,0,30163, +4494,1,0,0,0,30164,30165,7,12,0,0,30165,30166,7,4,0,0,30166,30167,7,16,0, +0,30167,30168,5,56,0,0,30168,4496,1,0,0,0,30169,30170,7,13,0,0,30170,30171, +5,49,0,0,30171,4498,1,0,0,0,30172,30173,7,13,0,0,30173,30174,5,50,0,0,30174, +4500,1,0,0,0,30175,30176,7,13,0,0,30176,30177,7,0,0,0,30177,30178,7,11,0, +0,30178,30179,7,10,0,0,30179,30180,7,9,0,0,30180,30181,7,0,0,0,30181,30182, +7,4,0,0,30182,30183,7,6,0,0,30183,4502,1,0,0,0,30184,30185,7,13,0,0,30185, +30186,7,0,0,0,30186,30187,7,11,0,0,30187,30188,7,10,0,0,30188,30189,7,9, +0,0,30189,30190,7,0,0,0,30190,30191,7,4,0,0,30191,30192,7,6,0,0,30192,30193, +5,95,0,0,30193,30194,7,8,0,0,30194,30195,7,2,0,0,30195,30196,7,7,0,0,30196, +30197,7,13,0,0,30197,30198,7,6,0,0,30198,30199,7,3,0,0,30199,30200,7,5,0, +0,30200,30201,7,10,0,0,30201,30202,7,2,0,0,30202,30203,7,7,0,0,30203,4504, +1,0,0,0,30204,30205,7,13,0,0,30205,30206,7,0,0,0,30206,30207,7,11,0,0,30207, +30208,7,10,0,0,30208,30209,7,9,0,0,30209,30210,7,0,0,0,30210,30211,7,4,0, +0,30211,30212,7,10,0,0,30212,30213,7,2,0,0,30213,30214,7,7,0,0,30214,4506, +1,0,0,0,30215,30216,7,13,0,0,30216,30217,7,0,0,0,30217,30218,7,11,0,0,30218, +30219,7,10,0,0,30219,30220,7,9,0,0,30220,30221,5,95,0,0,30221,30222,7,4, +0,0,30222,30223,7,10,0,0,30223,30224,7,14,0,0,30224,30225,7,6,0,0,30225, +30226,5,95,0,0,30226,30227,7,6,0,0,30227,30228,7,7,0,0,30228,30229,7,9,0, +0,30229,4508,1,0,0,0,30230,30231,7,13,0,0,30231,30232,7,0,0,0,30232,30233, +7,11,0,0,30233,30234,7,12,0,0,30234,30235,7,6,0,0,30235,30236,7,5,0,0,30236, +4510,1,0,0,0,30237,30238,7,13,0,0,30238,30239,7,0,0,0,30239,30240,7,11,0, +0,30240,30241,7,12,0,0,30241,30242,7,6,0,0,30242,4512,1,0,0,0,30243,30244, +7,13,0,0,30244,30245,7,0,0,0,30245,30246,7,3,0,0,30246,30247,7,8,0,0,30247, +30248,7,19,0,0,30248,30249,7,0,0,0,30249,30250,7,3,0,0,30250,30251,5,50, +0,0,30251,4514,1,0,0,0,30252,30253,7,13,0,0,30253,30254,7,0,0,0,30254,30255, +7,3,0,0,30255,30256,7,8,0,0,30256,30257,7,19,0,0,30257,30258,7,0,0,0,30258, +30259,7,3,0,0,30259,4516,1,0,0,0,30260,30261,7,13,0,0,30261,30262,7,0,0, +0,30262,30263,7,3,0,0,30263,30264,7,8,0,0,30264,30265,7,19,0,0,30265,30266, +7,0,0,0,30266,30267,7,3,0,0,30267,30268,7,8,0,0,30268,4518,1,0,0,0,30269, +30270,7,13,0,0,30270,30271,7,0,0,0,30271,30272,7,3,0,0,30272,30273,7,10, +0,0,30273,30274,7,0,0,0,30274,30275,7,1,0,0,30275,30276,7,11,0,0,30276,30277, +7,6,0,0,30277,4520,1,0,0,0,30278,30279,7,13,0,0,30279,30280,7,0,0,0,30280, +30281,7,3,0,0,30281,30282,7,3,0,0,30282,30283,7,0,0,0,30283,30284,7,22,0, +0,30284,4522,1,0,0,0,30285,30286,7,13,0,0,30286,30287,7,0,0,0,30287,30288, +7,3,0,0,30288,30289,7,3,0,0,30289,30290,7,0,0,0,30290,30291,7,22,0,0,30291, +30292,7,8,0,0,30292,4524,1,0,0,0,30293,30294,7,13,0,0,30294,30295,7,0,0, +0,30295,30296,7,3,0,0,30296,30297,5,95,0,0,30297,30298,7,15,0,0,30298,30299, +7,2,0,0,30299,30300,7,15,0,0,30300,4526,1,0,0,0,30301,30302,7,13,0,0,30302, +30303,7,0,0,0,30303,30304,7,3,0,0,30304,30305,7,3,0,0,30305,30306,7,0,0, +0,30306,30307,7,18,0,0,30307,30308,7,5,0,0,30308,4528,1,0,0,0,30309,30310, +7,13,0,0,30310,30311,7,0,0,0,30311,30312,7,3,0,0,30312,30313,7,3,0,0,30313, +30314,7,0,0,0,30314,30315,7,18,0,0,30315,4530,1,0,0,0,30316,30317,7,13,0, +0,30317,30318,7,0,0,0,30318,30319,7,3,0,0,30319,30320,5,95,0,0,30320,30321, +7,5,0,0,30321,30322,7,0,0,0,30322,30323,7,14,0,0,30323,30324,7,15,0,0,30324, +4532,1,0,0,0,30325,30326,7,13,0,0,30326,30327,7,0,0,0,30327,30328,7,3,0, +0,30328,30329,7,18,0,0,30329,30330,7,10,0,0,30330,30331,7,7,0,0,30331,30332, +7,17,0,0,30332,4534,1,0,0,0,30333,30334,7,13,0,0,30334,30335,7,6,0,0,30335, +30336,7,8,0,0,30336,30337,7,4,0,0,30337,30338,7,2,0,0,30338,30339,7,3,0, +0,30339,30340,5,95,0,0,30340,30341,7,3,0,0,30341,30342,7,6,0,0,30342,30343, +7,0,0,0,30343,30344,7,9,0,0,30344,30345,5,95,0,0,30345,30346,7,4,0,0,30346, +30347,7,3,0,0,30347,30348,7,0,0,0,30348,30349,7,8,0,0,30349,30350,7,6,0, +0,30350,4536,1,0,0,0,30351,30352,7,13,0,0,30352,30353,7,6,0,0,30353,30354, +7,8,0,0,30354,30355,7,4,0,0,30355,30356,7,2,0,0,30356,30357,7,3,0,0,30357, +30358,5,95,0,0,30358,30359,7,3,0,0,30359,30360,7,6,0,0,30360,30361,7,0,0, +0,30361,30362,7,9,0,0,30362,4538,1,0,0,0,30363,30364,7,13,0,0,30364,30365, +7,6,0,0,30365,30366,7,8,0,0,30366,30367,7,4,0,0,30367,30368,7,2,0,0,30368, +30369,7,3,0,0,30369,30370,5,95,0,0,30370,30371,7,4,0,0,30371,30372,7,3,0, +0,30372,30373,7,0,0,0,30373,30374,7,7,0,0,30374,30375,7,5,0,0,30375,30376, +7,16,0,0,30376,30377,7,2,0,0,30377,30378,7,3,0,0,30378,30379,7,14,0,0,30379, +30380,5,95,0,0,30380,30381,7,9,0,0,30381,30382,7,10,0,0,30382,30383,7,14, +0,0,30383,30384,7,5,0,0,30384,4540,1,0,0,0,30385,30386,7,13,0,0,30386,30387, +7,6,0,0,30387,30388,7,8,0,0,30388,30389,7,4,0,0,30389,30390,7,2,0,0,30390, +30391,7,3,0,0,30391,30392,5,95,0,0,30392,30393,7,4,0,0,30393,30394,7,3,0, +0,30394,30395,7,0,0,0,30395,30396,7,7,0,0,30396,30397,7,5,0,0,30397,30398, +7,16,0,0,30398,30399,7,2,0,0,30399,30400,7,3,0,0,30400,30401,7,14,0,0,30401, +30402,5,95,0,0,30402,30403,7,16,0,0,30403,30404,7,0,0,0,30404,30405,7,8, +0,0,30405,30406,7,4,0,0,30406,4542,1,0,0,0,30407,30408,7,13,0,0,30408,30409, +7,6,0,0,30409,30410,7,8,0,0,30410,30411,7,4,0,0,30411,30412,7,2,0,0,30412, +30413,7,3,0,0,30413,30414,5,95,0,0,30414,30415,7,4,0,0,30415,30416,7,3,0, +0,30416,30417,7,0,0,0,30417,30418,7,7,0,0,30418,30419,7,5,0,0,30419,30420, +7,16,0,0,30420,30421,7,2,0,0,30421,30422,7,3,0,0,30422,30423,7,14,0,0,30423, +4544,1,0,0,0,30424,30425,7,13,0,0,30425,30426,7,6,0,0,30426,30427,7,3,0, +0,30427,30428,7,10,0,0,30428,30429,7,16,0,0,30429,30430,7,10,0,0,30430,30431, +7,6,0,0,30431,30432,7,3,0,0,30432,4546,1,0,0,0,30433,30434,7,13,0,0,30434, +30435,7,6,0,0,30435,30436,7,3,0,0,30436,30437,7,10,0,0,30437,30438,7,16, +0,0,30438,30439,7,18,0,0,30439,4548,1,0,0,0,30440,30441,7,13,0,0,30441,30442, +7,6,0,0,30442,30443,7,3,0,0,30443,30444,7,5,0,0,30444,30445,7,10,0,0,30445, +30446,7,2,0,0,30446,30447,7,7,0,0,30447,30448,7,10,0,0,30448,30449,7,7,0, +0,30449,30450,7,17,0,0,30450,4550,1,0,0,0,30451,30452,7,13,0,0,30452,30453, +7,6,0,0,30453,30454,7,3,0,0,30454,30455,7,5,0,0,30455,30456,7,10,0,0,30456, +30457,7,2,0,0,30457,30458,7,7,0,0,30458,30459,7,5,0,0,30459,30460,5,95,0, +0,30460,30461,7,6,0,0,30461,30462,7,7,0,0,30462,30463,7,9,0,0,30463,30464, +7,5,0,0,30464,30465,7,8,0,0,30465,30466,7,7,0,0,30466,4552,1,0,0,0,30467, +30468,7,13,0,0,30468,30469,7,6,0,0,30469,30470,7,3,0,0,30470,30471,7,5,0, +0,30471,30472,7,10,0,0,30472,30473,7,2,0,0,30473,30474,7,7,0,0,30474,30475, +7,5,0,0,30475,30476,5,95,0,0,30476,30477,7,6,0,0,30477,30478,7,7,0,0,30478, +30479,7,9,0,0,30479,30480,7,4,0,0,30480,30481,7,10,0,0,30481,30482,7,14, +0,0,30482,30483,7,6,0,0,30483,4554,1,0,0,0,30484,30485,7,13,0,0,30485,30486, +7,6,0,0,30486,30487,7,3,0,0,30487,30488,7,5,0,0,30488,30489,7,10,0,0,30489, +30490,7,2,0,0,30490,30491,7,7,0,0,30491,30492,7,5,0,0,30492,30493,5,95,0, +0,30493,30494,7,2,0,0,30494,30495,7,15,0,0,30495,30496,7,6,0,0,30496,30497, +7,3,0,0,30497,30498,7,0,0,0,30498,30499,7,4,0,0,30499,30500,7,10,0,0,30500, +30501,7,2,0,0,30501,30502,7,7,0,0,30502,4556,1,0,0,0,30503,30504,7,13,0, +0,30504,30505,7,6,0,0,30505,30506,7,3,0,0,30506,30507,7,5,0,0,30507,30508, +7,10,0,0,30508,30509,7,2,0,0,30509,30510,7,7,0,0,30510,30511,7,5,0,0,30511, +30512,5,95,0,0,30512,30513,7,5,0,0,30513,30514,7,4,0,0,30514,30515,7,0,0, +0,30515,30516,7,3,0,0,30516,30517,7,4,0,0,30517,30518,7,5,0,0,30518,30519, +7,8,0,0,30519,30520,7,7,0,0,30520,4558,1,0,0,0,30521,30522,7,13,0,0,30522, +30523,7,6,0,0,30523,30524,7,3,0,0,30524,30525,7,5,0,0,30525,30526,7,10,0, +0,30526,30527,7,2,0,0,30527,30528,7,7,0,0,30528,30529,7,5,0,0,30529,30530, +5,95,0,0,30530,30531,7,5,0,0,30531,30532,7,4,0,0,30532,30533,7,0,0,0,30533, +30534,7,3,0,0,30534,30535,7,4,0,0,30535,30536,7,4,0,0,30536,30537,7,10,0, +0,30537,30538,7,14,0,0,30538,30539,7,6,0,0,30539,4560,1,0,0,0,30540,30541, +7,13,0,0,30541,30542,7,6,0,0,30542,30543,7,3,0,0,30543,30544,7,5,0,0,30544, +30545,7,10,0,0,30545,30546,7,2,0,0,30546,30547,7,7,0,0,30547,30548,7,5,0, +0,30548,4562,1,0,0,0,30549,30550,7,13,0,0,30550,30551,7,6,0,0,30551,30552, +7,3,0,0,30552,30553,7,5,0,0,30553,30554,7,10,0,0,30554,30555,7,2,0,0,30555, +30556,7,7,0,0,30556,30557,7,5,0,0,30557,30558,5,95,0,0,30558,30559,7,25, +0,0,30559,30560,7,10,0,0,30560,30561,7,9,0,0,30561,4564,1,0,0,0,30562,30563, +7,13,0,0,30563,30564,7,6,0,0,30564,30565,7,3,0,0,30565,30566,7,5,0,0,30566, +30567,7,10,0,0,30567,30568,7,2,0,0,30568,30569,7,7,0,0,30569,4566,1,0,0, +0,30570,30571,7,13,0,0,30571,30572,7,10,0,0,30572,30573,7,6,0,0,30573,30574, +7,22,0,0,30574,4568,1,0,0,0,30575,30576,7,13,0,0,30576,30577,7,10,0,0,30577, +30578,7,2,0,0,30578,30579,7,11,0,0,30579,30580,7,0,0,0,30580,30581,7,4,0, +0,30581,30582,7,10,0,0,30582,30583,7,2,0,0,30583,30584,7,7,0,0,30584,4570, +1,0,0,0,30585,30586,7,13,0,0,30586,30587,7,10,0,0,30587,30588,7,3,0,0,30588, +30589,7,4,0,0,30589,30590,7,12,0,0,30590,30591,7,0,0,0,30591,30592,7,11, +0,0,30592,4572,1,0,0,0,30593,30594,7,13,0,0,30594,30595,7,10,0,0,30595,30596, +7,5,0,0,30596,30597,7,10,0,0,30597,30598,7,1,0,0,30598,30599,7,10,0,0,30599, +30600,7,11,0,0,30600,30601,7,10,0,0,30601,30602,7,4,0,0,30602,30603,7,18, +0,0,30603,4574,1,0,0,0,30604,30605,7,13,0,0,30605,30606,7,10,0,0,30606,30607, +7,5,0,0,30607,30608,7,10,0,0,30608,30609,7,1,0,0,30609,30610,7,11,0,0,30610, +30611,7,6,0,0,30611,4576,1,0,0,0,30612,30613,7,13,0,0,30613,30614,7,2,0, +0,30614,30615,7,11,0,0,30615,30616,7,12,0,0,30616,30617,7,14,0,0,30617,30618, +7,6,0,0,30618,4578,1,0,0,0,30619,30620,7,13,0,0,30620,30621,7,5,0,0,30621, +30622,7,10,0,0,30622,30623,7,23,0,0,30623,30624,7,6,0,0,30624,4580,1,0,0, +0,30625,30626,7,22,0,0,30626,30627,7,0,0,0,30627,30628,7,10,0,0,30628,30629, +7,4,0,0,30629,4582,1,0,0,0,30630,30631,7,22,0,0,30631,30632,7,0,0,0,30632, +30633,7,11,0,0,30633,30634,7,11,0,0,30634,30635,7,6,0,0,30635,30636,7,4, +0,0,30636,4584,1,0,0,0,30637,30638,7,22,0,0,30638,30639,7,0,0,0,30639,30640, +7,3,0,0,30640,30641,7,7,0,0,30641,30642,7,10,0,0,30642,30643,7,7,0,0,30643, +30644,7,17,0,0,30644,4586,1,0,0,0,30645,30646,7,22,0,0,30646,30647,7,6,0, +0,30647,30648,7,6,0,0,30648,30649,7,21,0,0,30649,30650,7,5,0,0,30650,4588, +1,0,0,0,30651,30652,7,22,0,0,30652,30653,7,6,0,0,30653,30654,7,6,0,0,30654, +30655,7,21,0,0,30655,4590,1,0,0,0,30656,30657,7,22,0,0,30657,30658,7,6,0, +0,30658,30659,7,11,0,0,30659,30660,7,11,0,0,30660,30661,7,16,0,0,30661,30662, +7,2,0,0,30662,30663,7,3,0,0,30663,30664,7,14,0,0,30664,30665,7,6,0,0,30665, +30666,7,9,0,0,30666,4592,1,0,0,0,30667,30668,7,22,0,0,30668,30669,7,19,0, +0,30669,30670,7,6,0,0,30670,30671,7,7,0,0,30671,30672,7,6,0,0,30672,30673, +7,13,0,0,30673,30674,7,6,0,0,30674,30675,7,3,0,0,30675,4594,1,0,0,0,30676, +30677,7,22,0,0,30677,30678,7,19,0,0,30678,30679,7,6,0,0,30679,30680,7,7, +0,0,30680,4596,1,0,0,0,30681,30682,7,22,0,0,30682,30683,7,19,0,0,30683,30684, +7,6,0,0,30684,30685,7,3,0,0,30685,30686,7,6,0,0,30686,4598,1,0,0,0,30687, +30688,7,22,0,0,30688,30689,7,19,0,0,30689,30690,7,10,0,0,30690,30691,7,11, +0,0,30691,30692,7,6,0,0,30692,4600,1,0,0,0,30693,30694,7,22,0,0,30694,30695, +7,19,0,0,30695,30696,7,10,0,0,30696,30697,7,4,0,0,30697,30698,7,6,0,0,30698, +30699,7,5,0,0,30699,30700,7,15,0,0,30700,30701,7,0,0,0,30701,30702,7,8,0, +0,30702,30703,7,6,0,0,30703,4602,1,0,0,0,30704,30705,7,22,0,0,30705,30706, +7,10,0,0,30706,30707,7,9,0,0,30707,30708,7,4,0,0,30708,30709,7,19,0,0,30709, +30710,5,95,0,0,30710,30711,7,1,0,0,30711,30712,7,12,0,0,30712,30713,7,8, +0,0,30713,30714,7,21,0,0,30714,30715,7,6,0,0,30715,30716,7,4,0,0,30716,4604, +1,0,0,0,30717,30718,7,22,0,0,30718,30719,7,10,0,0,30719,30720,7,4,0,0,30720, +30721,7,19,0,0,30721,30722,7,10,0,0,30722,30723,7,7,0,0,30723,4606,1,0,0, +0,30724,30725,7,22,0,0,30725,30726,7,10,0,0,30726,30727,7,4,0,0,30727,30728, +7,19,0,0,30728,30729,7,2,0,0,30729,30730,7,12,0,0,30730,30731,7,4,0,0,30731, +4608,1,0,0,0,30732,30733,7,22,0,0,30733,30734,7,10,0,0,30734,30735,7,4,0, +0,30735,30736,7,19,0,0,30736,30737,5,95,0,0,30737,30738,7,15,0,0,30738,30739, +7,11,0,0,30739,30740,7,5,0,0,30740,30741,7,24,0,0,30741,30742,7,11,0,0,30742, +4610,1,0,0,0,30743,30744,7,22,0,0,30744,30745,7,10,0,0,30745,30746,7,4,0, +0,30746,30747,7,19,0,0,30747,4612,1,0,0,0,30748,30749,7,22,0,0,30749,30750, +7,2,0,0,30750,30751,7,3,0,0,30751,30752,7,21,0,0,30752,4614,1,0,0,0,30753, +30754,7,22,0,0,30754,30755,7,2,0,0,30755,30756,7,3,0,0,30756,30757,7,21, +0,0,30757,30758,7,6,0,0,30758,30759,7,3,0,0,30759,30760,7,10,0,0,30760,30761, +7,9,0,0,30761,4616,1,0,0,0,30762,30763,7,22,0,0,30763,30764,7,3,0,0,30764, +30765,7,0,0,0,30765,30766,7,15,0,0,30766,30767,7,15,0,0,30767,30768,7,6, +0,0,30768,30769,7,9,0,0,30769,4618,1,0,0,0,30770,30771,7,22,0,0,30771,30772, +7,3,0,0,30772,30773,7,0,0,0,30773,30774,7,15,0,0,30774,30775,7,15,0,0,30775, +30776,7,6,0,0,30776,30777,7,3,0,0,30777,4620,1,0,0,0,30778,30779,7,22,0, +0,30779,30780,7,3,0,0,30780,30781,7,10,0,0,30781,30782,7,4,0,0,30782,30783, +7,6,0,0,30783,4622,1,0,0,0,30784,30785,7,25,0,0,30785,30786,7,9,0,0,30786, +30787,7,1,0,0,30787,30788,5,95,0,0,30788,30789,7,16,0,0,30789,30790,7,0, +0,0,30790,30791,7,5,0,0,30791,30792,7,4,0,0,30792,30793,7,15,0,0,30793,30794, +7,0,0,0,30794,30795,7,4,0,0,30795,30796,7,19,0,0,30796,30797,5,95,0,0,30797, +30798,7,10,0,0,30798,30799,7,7,0,0,30799,30800,7,5,0,0,30800,30801,7,6,0, +0,30801,30802,7,3,0,0,30802,30803,7,4,0,0,30803,4624,1,0,0,0,30804,30805, +7,25,0,0,30805,30806,7,9,0,0,30806,30807,7,1,0,0,30807,4626,1,0,0,0,30808, +30809,7,25,0,0,30809,30810,5,95,0,0,30810,30811,7,9,0,0,30811,30812,7,18, +0,0,30812,30813,7,7,0,0,30813,30814,5,95,0,0,30814,30815,7,15,0,0,30815, +30816,7,3,0,0,30816,30817,7,12,0,0,30817,30818,7,7,0,0,30818,30819,7,6,0, +0,30819,4628,1,0,0,0,30820,30821,7,25,0,0,30821,30822,7,10,0,0,30822,30823, +7,9,0,0,30823,4630,1,0,0,0,30824,30825,7,25,0,0,30825,30826,7,14,0,0,30826, +30827,7,11,0,0,30827,30828,5,50,0,0,30828,30829,7,2,0,0,30829,30830,7,1, +0,0,30830,30831,7,20,0,0,30831,30832,7,6,0,0,30832,30833,7,8,0,0,30833,30834, +7,4,0,0,30834,4632,1,0,0,0,30835,30836,7,25,0,0,30836,30837,7,14,0,0,30837, +30838,7,11,0,0,30838,30839,7,0,0,0,30839,30840,7,17,0,0,30840,30841,7,17, +0,0,30841,4634,1,0,0,0,30842,30843,7,25,0,0,30843,30844,7,14,0,0,30844,30845, +7,11,0,0,30845,30846,7,0,0,0,30846,30847,7,4,0,0,30847,30848,7,4,0,0,30848, +30849,7,3,0,0,30849,30850,7,10,0,0,30850,30851,7,1,0,0,30851,30852,7,12, +0,0,30852,30853,7,4,0,0,30853,30854,7,6,0,0,30854,30855,7,5,0,0,30855,4636, +1,0,0,0,30856,30857,7,25,0,0,30857,30858,7,14,0,0,30858,30859,7,11,0,0,30859, +30860,7,8,0,0,30860,30861,7,0,0,0,30861,30862,7,5,0,0,30862,30863,7,4,0, +0,30863,4638,1,0,0,0,30864,30865,7,25,0,0,30865,30866,7,14,0,0,30866,30867, +7,11,0,0,30867,30868,7,8,0,0,30868,30869,7,9,0,0,30869,30870,7,0,0,0,30870, +30871,7,4,0,0,30871,30872,7,0,0,0,30872,4640,1,0,0,0,30873,30874,7,25,0, +0,30874,30875,7,14,0,0,30875,30876,7,11,0,0,30876,30877,7,8,0,0,30877,30878, +7,2,0,0,30878,30879,7,11,0,0,30879,30880,7,0,0,0,30880,30881,7,4,0,0,30881, +30882,7,4,0,0,30882,30883,7,13,0,0,30883,30884,7,0,0,0,30884,30885,7,11, +0,0,30885,4642,1,0,0,0,30886,30887,7,25,0,0,30887,30888,7,14,0,0,30888,30889, +7,11,0,0,30889,30890,7,8,0,0,30890,30891,7,2,0,0,30891,30892,7,14,0,0,30892, +30893,7,14,0,0,30893,30894,7,6,0,0,30894,30895,7,7,0,0,30895,30896,7,4,0, +0,30896,4644,1,0,0,0,30897,30898,7,25,0,0,30898,30899,7,14,0,0,30899,30900, +7,11,0,0,30900,30901,7,8,0,0,30901,30902,7,2,0,0,30902,30903,7,7,0,0,30903, +30904,7,8,0,0,30904,30905,7,0,0,0,30905,30906,7,4,0,0,30906,4646,1,0,0,0, +30907,30908,7,25,0,0,30908,30909,7,14,0,0,30909,30910,7,11,0,0,30910,30911, +7,9,0,0,30911,30912,7,10,0,0,30912,30913,7,16,0,0,30913,30914,7,16,0,0,30914, +4648,1,0,0,0,30915,30916,7,25,0,0,30916,30917,7,14,0,0,30917,30918,7,11, +0,0,30918,30919,5,95,0,0,30919,30920,7,9,0,0,30920,30921,7,14,0,0,30921, +30922,7,11,0,0,30922,30923,5,95,0,0,30923,30924,7,3,0,0,30924,30925,7,22, +0,0,30925,30926,7,4,0,0,30926,30927,5,95,0,0,30927,30928,7,5,0,0,30928,30929, +7,4,0,0,30929,30930,7,14,0,0,30930,30931,7,4,0,0,30931,4650,1,0,0,0,30932, +30933,7,25,0,0,30933,30934,7,14,0,0,30934,30935,7,11,0,0,30935,30936,7,6, +0,0,30936,30937,7,11,0,0,30937,30938,7,6,0,0,30938,30939,7,14,0,0,30939, +30940,7,6,0,0,30940,30941,7,7,0,0,30941,30942,7,4,0,0,30942,4652,1,0,0,0, +30943,30944,7,25,0,0,30944,30945,7,14,0,0,30945,30946,7,11,0,0,30946,30947, +7,6,0,0,30947,30948,7,25,0,0,30948,30949,7,10,0,0,30949,30950,7,5,0,0,30950, +30951,7,4,0,0,30951,30952,7,5,0,0,30952,30953,5,50,0,0,30953,4654,1,0,0, +0,30954,30955,7,25,0,0,30955,30956,7,14,0,0,30956,30957,7,11,0,0,30957,30958, +7,6,0,0,30958,30959,7,25,0,0,30959,30960,7,10,0,0,30960,30961,7,5,0,0,30961, +30962,7,4,0,0,30962,30963,7,5,0,0,30963,4656,1,0,0,0,30964,30965,7,25,0, +0,30965,30966,7,14,0,0,30966,30967,7,11,0,0,30967,30968,7,16,0,0,30968,30969, +7,2,0,0,30969,30970,7,3,0,0,30970,30971,7,6,0,0,30971,30972,7,5,0,0,30972, +30973,7,4,0,0,30973,4658,1,0,0,0,30974,30975,7,25,0,0,30975,30976,7,14,0, +0,30976,30977,7,11,0,0,30977,30978,7,10,0,0,30978,30979,7,7,0,0,30979,30980, +7,9,0,0,30980,30981,7,6,0,0,30981,30982,7,25,0,0,30982,4660,1,0,0,0,30983, +30984,7,25,0,0,30984,30985,7,14,0,0,30985,30986,7,11,0,0,30986,30987,7,10, +0,0,30987,30988,7,7,0,0,30988,30989,7,9,0,0,30989,30990,7,6,0,0,30990,30991, +7,25,0,0,30991,30992,5,95,0,0,30992,30993,7,3,0,0,30993,30994,7,6,0,0,30994, +30995,7,22,0,0,30995,30996,7,3,0,0,30996,30997,7,10,0,0,30997,30998,7,4, +0,0,30998,30999,7,6,0,0,30999,31000,5,95,0,0,31000,31001,7,10,0,0,31001, +31002,7,7,0,0,31002,31003,5,95,0,0,31003,31004,7,5,0,0,31004,31005,7,6,0, +0,31005,31006,7,11,0,0,31006,31007,7,6,0,0,31007,31008,7,8,0,0,31008,31009, +7,4,0,0,31009,4662,1,0,0,0,31010,31011,7,25,0,0,31011,31012,7,14,0,0,31012, +31013,7,11,0,0,31013,31014,7,10,0,0,31014,31015,7,7,0,0,31015,31016,7,9, +0,0,31016,31017,7,6,0,0,31017,31018,7,25,0,0,31018,31019,5,95,0,0,31019, +31020,7,3,0,0,31020,31021,7,6,0,0,31021,31022,7,22,0,0,31022,31023,7,3,0, +0,31023,31024,7,10,0,0,31024,31025,7,4,0,0,31025,31026,7,6,0,0,31026,4664, +1,0,0,0,31027,31028,7,25,0,0,31028,31029,7,14,0,0,31029,31030,7,11,0,0,31030, +31031,7,10,0,0,31031,31032,7,7,0,0,31032,31033,7,9,0,0,31033,31034,7,6,0, +0,31034,31035,7,25,0,0,31035,31036,5,95,0,0,31036,31037,7,5,0,0,31037,31038, +7,6,0,0,31038,31039,7,11,0,0,31039,31040,5,95,0,0,31040,31041,7,10,0,0,31041, +31042,7,9,0,0,31042,31043,7,25,0,0,31043,31044,5,95,0,0,31044,31045,7,4, +0,0,31045,31046,7,1,0,0,31046,31047,7,11,0,0,31047,4666,1,0,0,0,31048,31049, +7,25,0,0,31049,31050,7,14,0,0,31050,31051,7,11,0,0,31051,31052,7,10,0,0, +31052,31053,7,5,0,0,31053,31054,7,7,0,0,31054,31055,7,2,0,0,31055,31056, +7,9,0,0,31056,31057,7,6,0,0,31057,4668,1,0,0,0,31058,31059,7,25,0,0,31059, +31060,7,14,0,0,31060,31061,7,11,0,0,31061,31062,7,10,0,0,31062,31063,7,5, +0,0,31063,31064,7,13,0,0,31064,31065,7,0,0,0,31065,31066,7,11,0,0,31066, +31067,7,10,0,0,31067,31068,7,9,0,0,31068,4670,1,0,0,0,31069,31070,7,25,0, +0,31070,31071,7,14,0,0,31071,31072,7,11,0,0,31072,31073,7,7,0,0,31073,31074, +7,0,0,0,31074,31075,7,14,0,0,31075,31076,7,6,0,0,31076,31077,7,5,0,0,31077, +31078,7,15,0,0,31078,31079,7,0,0,0,31079,31080,7,8,0,0,31080,31081,7,6,0, +0,31081,31082,7,5,0,0,31082,4672,1,0,0,0,31083,31084,7,25,0,0,31084,31085, +7,14,0,0,31085,31086,7,11,0,0,31086,31087,7,15,0,0,31087,31088,7,0,0,0,31088, +31089,7,3,0,0,31089,31090,7,5,0,0,31090,31091,7,6,0,0,31091,4674,1,0,0,0, +31092,31093,7,25,0,0,31093,31094,7,14,0,0,31094,31095,7,11,0,0,31095,31096, +7,15,0,0,31096,31097,7,0,0,0,31097,31098,7,4,0,0,31098,31099,7,8,0,0,31099, +31100,7,19,0,0,31100,4676,1,0,0,0,31101,31102,7,25,0,0,31102,31103,7,14, +0,0,31103,31104,7,11,0,0,31104,31105,7,15,0,0,31105,31106,7,10,0,0,31106, +4678,1,0,0,0,31107,31108,7,25,0,0,31108,31109,7,14,0,0,31109,31110,7,11, +0,0,31110,31111,7,24,0,0,31111,31112,7,12,0,0,31112,31113,7,6,0,0,31113, +31114,7,3,0,0,31114,31115,7,18,0,0,31115,31116,7,13,0,0,31116,31117,7,0, +0,0,31117,31118,7,11,0,0,31118,4680,1,0,0,0,31119,31120,7,25,0,0,31120,31121, +7,14,0,0,31121,31122,7,11,0,0,31122,31123,7,24,0,0,31123,31124,7,12,0,0, +31124,31125,7,6,0,0,31125,31126,7,3,0,0,31126,31127,7,18,0,0,31127,4682, +1,0,0,0,31128,31129,7,25,0,0,31129,31130,7,14,0,0,31130,31131,7,11,0,0,31131, +31132,7,3,0,0,31132,31133,7,2,0,0,31133,31134,7,2,0,0,31134,31135,7,4,0, +0,31135,4684,1,0,0,0,31136,31137,7,25,0,0,31137,31138,7,14,0,0,31138,31139, +7,11,0,0,31139,31140,7,5,0,0,31140,31141,7,8,0,0,31141,31142,7,19,0,0,31142, +31143,7,6,0,0,31143,31144,7,14,0,0,31144,31145,7,0,0,0,31145,4686,1,0,0, +0,31146,31147,7,25,0,0,31147,31148,7,14,0,0,31148,31149,7,11,0,0,31149,31150, +7,5,0,0,31150,31151,7,6,0,0,31151,31152,7,3,0,0,31152,31153,7,10,0,0,31153, +31154,7,0,0,0,31154,31155,7,11,0,0,31155,31156,7,10,0,0,31156,31157,7,23, +0,0,31157,31158,7,6,0,0,31158,4688,1,0,0,0,31159,31160,7,25,0,0,31160,31161, +7,14,0,0,31161,31162,7,11,0,0,31162,31163,7,4,0,0,31163,31164,7,0,0,0,31164, +31165,7,1,0,0,31165,31166,7,11,0,0,31166,31167,7,6,0,0,31167,4690,1,0,0, +0,31168,31169,7,25,0,0,31169,31170,7,14,0,0,31170,31171,7,11,0,0,31171,31172, +7,4,0,0,31172,31173,7,0,0,0,31173,31174,7,17,0,0,31174,4692,1,0,0,0,31175, +31176,7,25,0,0,31176,31177,7,14,0,0,31177,31178,7,11,0,0,31178,31179,7,4, +0,0,31179,31180,7,3,0,0,31180,31181,7,0,0,0,31181,31182,7,7,0,0,31182,31183, +7,5,0,0,31183,31184,7,16,0,0,31184,31185,7,2,0,0,31185,31186,7,3,0,0,31186, +31187,7,14,0,0,31187,31188,7,1,0,0,31188,31189,7,11,0,0,31189,31190,7,2, +0,0,31190,31191,7,1,0,0,31191,4694,1,0,0,0,31192,31193,7,25,0,0,31193,31194, +7,14,0,0,31194,31195,7,11,0,0,31195,31196,7,4,0,0,31196,31197,7,3,0,0,31197, +31198,7,0,0,0,31198,31199,7,7,0,0,31199,31200,7,5,0,0,31200,31201,7,16,0, +0,31201,31202,7,2,0,0,31202,31203,7,3,0,0,31203,31204,7,14,0,0,31204,4696, +1,0,0,0,31205,31206,7,25,0,0,31206,31207,7,14,0,0,31207,31208,7,11,0,0,31208, +31209,7,4,0,0,31209,31210,7,18,0,0,31210,31211,7,15,0,0,31211,31212,7,6, +0,0,31212,4698,1,0,0,0,31213,31214,7,25,0,0,31214,31215,7,14,0,0,31215,31216, +7,11,0,0,31216,4700,1,0,0,0,31217,31218,7,25,0,0,31218,31219,7,15,0,0,31219, +31220,7,0,0,0,31220,31221,7,4,0,0,31221,31222,7,19,0,0,31222,31223,7,4,0, +0,31223,31224,7,0,0,0,31224,31225,7,1,0,0,31225,31226,7,11,0,0,31226,31227, +7,6,0,0,31227,4702,1,0,0,0,31228,31229,7,25,0,0,31229,31230,7,5,0,0,31230, +31231,5,95,0,0,31231,31232,7,5,0,0,31232,31233,7,18,0,0,31233,31234,7,5, +0,0,31234,31235,5,95,0,0,31235,31236,7,8,0,0,31236,31237,7,2,0,0,31237,31238, +7,7,0,0,31238,31239,7,4,0,0,31239,31240,7,6,0,0,31240,31241,7,25,0,0,31241, +31242,7,4,0,0,31242,4704,1,0,0,0,31243,31244,7,25,0,0,31244,31245,7,5,0, +0,31245,4706,1,0,0,0,31246,31247,7,25,0,0,31247,31248,7,4,0,0,31248,31249, +7,3,0,0,31249,31250,7,0,0,0,31250,31251,7,7,0,0,31251,31252,7,5,0,0,31252, +31253,7,15,0,0,31253,31254,7,2,0,0,31254,31255,7,3,0,0,31255,31256,7,4,0, +0,31256,4708,1,0,0,0,31257,31258,7,18,0,0,31258,31259,7,6,0,0,31259,31260, +7,0,0,0,31260,31261,7,3,0,0,31261,31262,7,5,0,0,31262,4710,1,0,0,0,31263, +31264,7,18,0,0,31264,31265,7,6,0,0,31265,31266,7,0,0,0,31266,31267,7,3,0, +0,31267,4712,1,0,0,0,31268,31269,7,18,0,0,31269,31270,7,6,0,0,31270,31271, +7,0,0,0,31271,31272,7,3,0,0,31272,31273,5,95,0,0,31273,31274,7,4,0,0,31274, +31275,7,2,0,0,31275,31276,5,95,0,0,31276,31277,7,14,0,0,31277,31278,7,2, +0,0,31278,31279,7,7,0,0,31279,31280,7,4,0,0,31280,31281,7,19,0,0,31281,4714, +1,0,0,0,31282,31283,7,18,0,0,31283,31284,7,6,0,0,31284,31285,7,5,0,0,31285, +4716,1,0,0,0,31286,31287,7,18,0,0,31287,31288,7,14,0,0,31288,31289,7,10, +0,0,31289,31290,7,7,0,0,31290,31291,7,4,0,0,31291,31292,7,6,0,0,31292,31293, +7,3,0,0,31293,31294,7,13,0,0,31294,31295,7,0,0,0,31295,31296,7,11,0,0,31296, +31297,5,95,0,0,31297,31298,7,12,0,0,31298,31299,7,7,0,0,31299,31300,7,8, +0,0,31300,31301,7,2,0,0,31301,31302,7,7,0,0,31302,31303,7,5,0,0,31303,31304, +7,4,0,0,31304,31305,7,3,0,0,31305,31306,7,0,0,0,31306,31307,7,10,0,0,31307, +31308,7,7,0,0,31308,31309,7,6,0,0,31309,31310,7,9,0,0,31310,4718,1,0,0,0, +31311,31312,7,23,0,0,31312,31313,7,2,0,0,31313,31314,7,7,0,0,31314,31315, +7,6,0,0,31315,31316,7,14,0,0,31316,31317,7,0,0,0,31317,31318,7,15,0,0,31318, +4720,1,0,0,0,31319,31320,7,23,0,0,31320,31321,7,2,0,0,31321,31322,7,7,0, +0,31322,31323,7,6,0,0,31323,4722,1,0,0,0,31324,31325,7,23,0,0,31325,31326, +7,2,0,0,31326,31327,7,7,0,0,31327,31328,7,6,0,0,31328,31329,7,9,0,0,31329, +4724,1,0,0,0,31330,31331,7,15,0,0,31331,31332,7,3,0,0,31332,31333,7,6,0, +0,31333,31334,7,9,0,0,31334,31335,7,10,0,0,31335,31336,7,8,0,0,31336,31337, +7,4,0,0,31337,31338,7,10,0,0,31338,31339,7,2,0,0,31339,31340,7,7,0,0,31340, +4726,1,0,0,0,31341,31342,7,15,0,0,31342,31343,7,3,0,0,31343,31344,7,6,0, +0,31344,31345,7,9,0,0,31345,31346,7,10,0,0,31346,31347,7,8,0,0,31347,31348, +7,4,0,0,31348,31349,7,10,0,0,31349,31350,7,2,0,0,31350,31351,7,7,0,0,31351, +31352,5,95,0,0,31352,31353,7,1,0,0,31353,31354,7,2,0,0,31354,31355,7,12, +0,0,31355,31356,7,7,0,0,31356,31357,7,9,0,0,31357,31358,7,5,0,0,31358,4728, +1,0,0,0,31359,31360,7,15,0,0,31360,31361,7,3,0,0,31361,31362,7,6,0,0,31362, +31363,7,9,0,0,31363,31364,7,10,0,0,31364,31365,7,8,0,0,31365,31366,7,4,0, +0,31366,31367,7,10,0,0,31367,31368,7,2,0,0,31368,31369,7,7,0,0,31369,31370, +5,95,0,0,31370,31371,7,8,0,0,31371,31372,7,2,0,0,31372,31373,7,5,0,0,31373, +31374,7,4,0,0,31374,4730,1,0,0,0,31375,31376,7,15,0,0,31376,31377,7,3,0, +0,31377,31378,7,6,0,0,31378,31379,7,9,0,0,31379,31380,7,10,0,0,31380,31381, +7,8,0,0,31381,31382,7,4,0,0,31382,31383,7,10,0,0,31383,31384,7,2,0,0,31384, +31385,7,7,0,0,31385,31386,5,95,0,0,31386,31387,7,9,0,0,31387,31388,7,6,0, +0,31388,31389,7,4,0,0,31389,31390,7,0,0,0,31390,31391,7,10,0,0,31391,31392, +7,11,0,0,31392,31393,7,5,0,0,31393,4732,1,0,0,0,31394,31395,7,15,0,0,31395, +31396,7,3,0,0,31396,31397,7,6,0,0,31397,31398,7,9,0,0,31398,31399,7,10,0, +0,31399,31400,7,8,0,0,31400,31401,7,4,0,0,31401,31402,7,10,0,0,31402,31403, +7,2,0,0,31403,31404,7,7,0,0,31404,31405,5,95,0,0,31405,31406,7,15,0,0,31406, +31407,7,3,0,0,31407,31408,7,2,0,0,31408,31409,7,1,0,0,31409,31410,7,0,0, +0,31410,31411,7,1,0,0,31411,31412,7,10,0,0,31412,31413,7,11,0,0,31413,31414, +7,10,0,0,31414,31415,7,4,0,0,31415,31416,7,18,0,0,31416,4734,1,0,0,0,31417, +31418,7,15,0,0,31418,31419,7,3,0,0,31419,31420,7,6,0,0,31420,31421,7,9,0, +0,31421,31422,7,10,0,0,31422,31423,7,8,0,0,31423,31424,7,4,0,0,31424,31425, +7,10,0,0,31425,31426,7,2,0,0,31426,31427,7,7,0,0,31427,31428,5,95,0,0,31428, +31429,7,5,0,0,31429,31430,7,6,0,0,31430,31431,7,4,0,0,31431,4736,1,0,0,0, +31432,31433,7,1,0,0,31433,31434,7,11,0,0,31434,31435,7,2,0,0,31435,31436, +7,8,0,0,31436,31437,7,21,0,0,31437,31438,7,8,0,0,31438,31439,7,19,0,0,31439, +31440,7,0,0,0,31440,31441,7,10,0,0,31441,31442,7,7,0,0,31442,4738,1,0,0, +0,31443,31444,7,8,0,0,31444,31445,7,2,0,0,31445,31446,7,11,0,0,31446,31447, +7,11,0,0,31447,31448,7,0,0,0,31448,31449,7,4,0,0,31449,31450,7,6,0,0,31450, +4740,1,0,0,0,31451,31452,7,8,0,0,31452,31453,7,2,0,0,31453,31454,7,11,0, +0,31454,31455,7,11,0,0,31455,31456,7,0,0,0,31456,31457,7,4,0,0,31457,31458, +7,10,0,0,31458,31459,7,2,0,0,31459,31460,7,7,0,0,31460,4742,1,0,0,0,31461, +31462,7,9,0,0,31462,31463,7,6,0,0,31463,31464,7,16,0,0,31464,31465,7,10, +0,0,31465,31466,7,7,0,0,31466,31467,7,10,0,0,31467,31468,7,4,0,0,31468,31469, +7,10,0,0,31469,31470,7,2,0,0,31470,31471,7,7,0,0,31471,4744,1,0,0,0,31472, +31473,7,9,0,0,31473,31474,7,12,0,0,31474,31475,7,15,0,0,31475,31476,7,11, +0,0,31476,31477,7,10,0,0,31477,31478,7,8,0,0,31478,31479,7,0,0,0,31479,31480, +7,4,0,0,31480,31481,7,6,0,0,31481,31482,7,9,0,0,31482,4746,1,0,0,0,31483, +31484,7,6,0,0,31484,31485,7,25,0,0,31485,31486,7,4,0,0,31486,31487,7,6,0, +0,31487,31488,7,7,0,0,31488,31489,7,9,0,0,31489,31490,7,6,0,0,31490,31491, +7,9,0,0,31491,4748,1,0,0,0,31492,31493,7,19,0,0,31493,31494,7,0,0,0,31494, +31495,7,5,0,0,31495,31496,7,19,0,0,31496,31497,7,10,0,0,31497,31498,7,7, +0,0,31498,31499,7,17,0,0,31499,4750,1,0,0,0,31500,31501,7,10,0,0,31501,31502, +7,9,0,0,31502,31503,7,11,0,0,31503,31504,7,6,0,0,31504,4752,1,0,0,0,31505, +31506,7,10,0,0,31506,31507,7,14,0,0,31507,31508,7,14,0,0,31508,31509,7,12, +0,0,31509,31510,7,4,0,0,31510,31511,7,0,0,0,31511,31512,7,1,0,0,31512,31513, +7,11,0,0,31513,31514,7,6,0,0,31514,4754,1,0,0,0,31515,31516,7,2,0,0,31516, +31517,7,3,0,0,31517,31518,7,0,0,0,31518,31519,7,8,0,0,31519,31520,7,11,0, +0,31520,31521,7,6,0,0,31521,31522,5,95,0,0,31522,31523,7,9,0,0,31523,31524, +7,0,0,0,31524,31525,7,4,0,0,31525,31526,7,0,0,0,31526,31527,7,15,0,0,31527, +31528,7,12,0,0,31528,31529,7,14,0,0,31529,31530,7,15,0,0,31530,4756,1,0, +0,0,31531,31532,7,2,0,0,31532,31533,7,3,0,0,31533,31534,7,0,0,0,31534,31535, +7,8,0,0,31535,31536,7,11,0,0,31536,31537,7,6,0,0,31537,31538,5,95,0,0,31538, +31539,7,19,0,0,31539,31540,7,9,0,0,31540,31541,7,16,0,0,31541,31542,7,5, +0,0,31542,4758,1,0,0,0,31543,31544,7,2,0,0,31544,31545,7,3,0,0,31545,31546, +7,0,0,0,31546,31547,7,8,0,0,31547,31548,7,11,0,0,31548,31549,7,6,0,0,31549, +31550,5,95,0,0,31550,31551,7,19,0,0,31551,31552,7,10,0,0,31552,31553,7,13, +0,0,31553,31554,7,6,0,0,31554,4760,1,0,0,0,31555,31556,7,2,0,0,31556,31557, +7,3,0,0,31557,31558,7,0,0,0,31558,31559,7,8,0,0,31559,31560,7,11,0,0,31560, +31561,7,6,0,0,31561,31562,5,95,0,0,31562,31563,7,11,0,0,31563,31564,7,2, +0,0,31564,31565,7,0,0,0,31565,31566,7,9,0,0,31566,31567,7,6,0,0,31567,31568, +7,3,0,0,31568,4762,1,0,0,0,31569,31570,5,34,0,0,31570,31571,7,5,0,0,31571, +31572,7,19,0,0,31572,31573,7,0,0,0,31573,31574,5,50,0,0,31574,31575,5,95, +0,0,31575,31576,5,53,0,0,31576,31577,5,49,0,0,31577,31578,5,50,0,0,31578, +31579,5,34,0,0,31579,4764,1,0,0,0,31580,31581,7,5,0,0,31581,31582,7,19,0, +0,31582,31583,7,0,0,0,31583,31584,7,3,0,0,31584,31585,7,9,0,0,31585,31586, +7,6,0,0,31586,31587,7,9,0,0,31587,4766,1,0,0,0,31588,31589,5,34,0,0,31589, +31590,7,13,0,0,31590,31591,5,49,0,0,31591,31592,5,34,0,0,31592,4768,1,0, +0,0,31593,31594,7,10,0,0,31594,31595,7,5,0,0,31595,31596,7,2,0,0,31596,31597, +7,11,0,0,31597,31598,7,0,0,0,31598,31599,7,4,0,0,31599,31600,7,6,0,0,31600, +4770,1,0,0,0,31601,31602,7,3,0,0,31602,31603,7,2,0,0,31603,31604,7,2,0,0, +31604,31605,7,4,0,0,31605,4772,1,0,0,0,31606,31607,7,12,0,0,31607,31608, +7,7,0,0,31608,31609,7,10,0,0,31609,31610,7,4,0,0,31610,31611,7,6,0,0,31611, +4774,1,0,0,0,31612,31613,7,0,0,0,31613,31614,7,11,0,0,31614,31615,7,17,0, +0,31615,31616,7,2,0,0,31616,31617,7,3,0,0,31617,31618,7,10,0,0,31618,31619, +7,4,0,0,31619,31620,7,19,0,0,31620,31621,7,14,0,0,31621,4776,1,0,0,0,31622, +31623,7,8,0,0,31623,31624,7,12,0,0,31624,31625,7,14,0,0,31625,31626,7,6, +0,0,31626,31627,5,95,0,0,31627,31628,7,9,0,0,31628,31629,7,10,0,0,31629, +31630,7,5,0,0,31630,31631,7,4,0,0,31631,4778,1,0,0,0,31632,31633,7,9,0,0, +31633,31634,7,6,0,0,31634,31635,7,7,0,0,31635,31636,7,5,0,0,31636,31637, +7,6,0,0,31637,31638,5,95,0,0,31638,31639,7,3,0,0,31639,31640,7,0,0,0,31640, +31641,7,7,0,0,31641,31642,7,21,0,0,31642,4780,1,0,0,0,31643,31644,7,11,0, +0,31644,31645,7,10,0,0,31645,31646,7,5,0,0,31646,31647,7,4,0,0,31647,31648, +7,0,0,0,31648,31649,7,17,0,0,31649,31650,7,17,0,0,31650,4782,1,0,0,0,31651, +31652,7,15,0,0,31652,31653,7,6,0,0,31653,31654,7,3,0,0,31654,31655,7,8,0, +0,31655,31656,7,6,0,0,31656,31657,7,7,0,0,31657,31658,7,4,0,0,31658,31659, +5,95,0,0,31659,31660,7,3,0,0,31660,31661,7,0,0,0,31661,31662,7,7,0,0,31662, +31663,7,21,0,0,31663,4784,1,0,0,0,31664,31665,7,15,0,0,31665,31666,7,6,0, +0,31666,31667,7,3,0,0,31667,31668,7,8,0,0,31668,31669,7,6,0,0,31669,31670, +7,7,0,0,31670,31671,7,4,0,0,31671,31672,7,10,0,0,31672,31673,7,11,0,0,31673, +31674,7,6,0,0,31674,31675,5,95,0,0,31675,31676,7,8,0,0,31676,31677,7,2,0, +0,31677,31678,7,7,0,0,31678,31679,7,4,0,0,31679,4786,1,0,0,0,31680,31681, +7,15,0,0,31681,31682,7,6,0,0,31682,31683,7,3,0,0,31683,31684,7,8,0,0,31684, +31685,7,6,0,0,31685,31686,7,7,0,0,31686,31687,7,4,0,0,31687,31688,7,10,0, +0,31688,31689,7,11,0,0,31689,31690,7,6,0,0,31690,31691,5,95,0,0,31691,31692, +7,9,0,0,31692,31693,7,10,0,0,31693,31694,7,5,0,0,31694,31695,7,8,0,0,31695, +4788,1,0,0,0,31696,31697,7,3,0,0,31697,31698,7,0,0,0,31698,31699,7,7,0,0, +31699,31700,7,21,0,0,31700,4790,1,0,0,0,31701,31702,7,0,0,0,31702,31703, +7,13,0,0,31703,31704,7,17,0,0,31704,4792,1,0,0,0,31705,31706,7,8,0,0,31706, +31707,7,2,0,0,31707,31708,7,3,0,0,31708,31709,7,3,0,0,31709,4794,1,0,0,0, +31710,31711,7,8,0,0,31711,31712,7,2,0,0,31712,31713,7,13,0,0,31713,31714, +7,0,0,0,31714,31715,7,3,0,0,31715,31716,5,95,0,0,31716,4796,1,0,0,0,31717, +31718,7,9,0,0,31718,31719,7,6,0,0,31719,31720,7,8,0,0,31720,31721,7,2,0, +0,31721,31722,7,9,0,0,31722,31723,7,6,0,0,31723,4798,1,0,0,0,31724,31725, +7,11,0,0,31725,31726,7,0,0,0,31726,31727,7,17,0,0,31727,4800,1,0,0,0,31728, +31729,7,11,0,0,31729,31730,7,0,0,0,31730,31731,7,17,0,0,31731,31732,5,95, +0,0,31732,31733,7,9,0,0,31733,31734,7,10,0,0,31734,31735,7,16,0,0,31735, +31736,7,16,0,0,31736,4802,1,0,0,0,31737,31738,7,11,0,0,31738,31739,7,0,0, +0,31739,31740,7,17,0,0,31740,31741,5,95,0,0,31741,31742,7,9,0,0,31742,31743, +7,10,0,0,31743,31744,7,16,0,0,31744,31745,7,16,0,0,31745,31746,5,95,0,0, +31746,31747,7,15,0,0,31747,31748,7,6,0,0,31748,31749,7,3,0,0,31749,31750, +7,8,0,0,31750,31751,7,6,0,0,31751,31752,7,7,0,0,31752,31753,7,4,0,0,31753, +4804,1,0,0,0,31754,31755,7,11,0,0,31755,31756,7,6,0,0,31756,31757,7,0,0, +0,31757,31758,7,9,0,0,31758,4806,1,0,0,0,31759,31760,7,14,0,0,31760,31761, +7,0,0,0,31761,31762,7,25,0,0,31762,4808,1,0,0,0,31763,31764,7,14,0,0,31764, +31765,7,6,0,0,31765,31766,7,9,0,0,31766,31767,7,10,0,0,31767,31768,7,0,0, +0,31768,31769,7,7,0,0,31769,4810,1,0,0,0,31770,31771,7,14,0,0,31771,31772, +7,6,0,0,31772,31773,7,14,0,0,31773,31774,7,2,0,0,31774,31775,7,15,0,0,31775, +31776,7,4,0,0,31776,31777,7,10,0,0,31777,31778,7,14,0,0,31778,31779,7,10, +0,0,31779,31780,7,23,0,0,31780,31781,7,6,0,0,31781,4812,1,0,0,0,31782,31783, +7,14,0,0,31783,31784,7,10,0,0,31784,31785,7,7,0,0,31785,4814,1,0,0,0,31786, +31787,7,7,0,0,31787,31788,7,4,0,0,31788,31789,7,10,0,0,31789,31790,7,11, +0,0,31790,31791,7,6,0,0,31791,4816,1,0,0,0,31792,31793,7,7,0,0,31793,31794, +7,13,0,0,31794,31795,7,11,0,0,31795,4818,1,0,0,0,31796,31797,7,3,0,0,31797, +31798,7,0,0,0,31798,31799,7,4,0,0,31799,31800,7,10,0,0,31800,31801,7,2,0, +0,31801,31802,5,95,0,0,31802,31803,7,4,0,0,31803,31804,7,2,0,0,31804,31805, +5,95,0,0,31805,31806,7,3,0,0,31806,31807,7,6,0,0,31807,31808,7,15,0,0,31808, +31809,7,2,0,0,31809,31810,7,3,0,0,31810,31811,7,4,0,0,31811,4820,1,0,0,0, +31812,31813,7,3,0,0,31813,31814,7,6,0,0,31814,31815,7,17,0,0,31815,31816, +7,3,0,0,31816,31817,5,95,0,0,31817,4822,1,0,0,0,31818,31819,7,3,0,0,31819, +31820,7,2,0,0,31820,31821,7,12,0,0,31821,31822,7,7,0,0,31822,31823,7,9,0, +0,31823,4824,1,0,0,0,31824,31825,7,3,0,0,31825,31826,7,2,0,0,31826,31827, +7,22,0,0,31827,31828,5,95,0,0,31828,31829,7,7,0,0,31829,31830,7,12,0,0,31830, +31831,7,14,0,0,31831,31832,7,1,0,0,31832,31833,7,6,0,0,31833,31834,7,3,0, +0,31834,4826,1,0,0,0,31835,31836,7,5,0,0,31836,31837,7,12,0,0,31837,31838, +7,1,0,0,31838,31839,7,5,0,0,31839,31840,7,4,0,0,31840,31841,7,3,0,0,31841, +4828,1,0,0,0,31842,31843,7,4,0,0,31843,31844,7,2,0,0,31844,31845,5,95,0, +0,31845,31846,7,8,0,0,31846,31847,7,19,0,0,31847,31848,7,0,0,0,31848,31849, +7,3,0,0,31849,4830,1,0,0,0,31850,31851,7,4,0,0,31851,31852,7,3,0,0,31852, +31853,7,10,0,0,31853,31854,7,14,0,0,31854,4832,1,0,0,0,31855,31856,7,5,0, +0,31856,31857,7,12,0,0,31857,31858,7,14,0,0,31858,4834,1,0,0,0,31859,31860, +7,5,0,0,31860,31861,7,4,0,0,31861,31862,7,9,0,0,31862,31863,7,9,0,0,31863, +31864,7,6,0,0,31864,31865,7,13,0,0,31865,4836,1,0,0,0,31866,31867,7,13,0, +0,31867,31868,7,0,0,0,31868,31869,7,3,0,0,31869,31870,5,95,0,0,31870,4838, +1,0,0,0,31871,31872,7,13,0,0,31872,31873,7,0,0,0,31873,31874,7,3,0,0,31874, +31875,7,10,0,0,31875,31876,7,0,0,0,31876,31877,7,7,0,0,31877,31878,7,8,0, +0,31878,31879,7,6,0,0,31879,4840,1,0,0,0,31880,31881,7,11,0,0,31881,31882, +7,6,0,0,31882,31883,7,0,0,0,31883,31884,7,5,0,0,31884,31885,7,4,0,0,31885, +4842,1,0,0,0,31886,31887,7,17,0,0,31887,31888,7,3,0,0,31888,31889,7,6,0, +0,31889,31890,7,0,0,0,31890,31891,7,4,0,0,31891,31892,7,6,0,0,31892,31893, +7,5,0,0,31893,31894,7,4,0,0,31894,4844,1,0,0,0,31895,31896,7,4,0,0,31896, +31897,7,2,0,0,31897,31898,5,95,0,0,31898,31899,7,9,0,0,31899,31900,7,0,0, +0,31900,31901,7,4,0,0,31901,31902,7,6,0,0,31902,4846,1,0,0,0,31903,31904, +7,8,0,0,31904,31905,7,19,0,0,31905,31906,7,0,0,0,31906,31907,7,3,0,0,31907, +31908,7,5,0,0,31908,31909,7,6,0,0,31909,31910,7,4,0,0,31910,31911,7,10,0, +0,31911,31912,7,9,0,0,31912,4848,1,0,0,0,31913,31914,7,8,0,0,31914,31915, +7,19,0,0,31915,31916,7,0,0,0,31916,31917,7,3,0,0,31917,31918,7,5,0,0,31918, +31919,7,6,0,0,31919,31920,7,4,0,0,31920,31921,7,16,0,0,31921,31922,7,2,0, +0,31922,31923,7,3,0,0,31923,31924,7,14,0,0,31924,4850,1,0,0,0,31925,31926, +7,9,0,0,31926,31927,7,12,0,0,31927,31928,7,3,0,0,31928,31929,7,0,0,0,31929, +31930,7,4,0,0,31930,31931,7,10,0,0,31931,31932,7,2,0,0,31932,31933,7,7,0, +0,31933,4852,1,0,0,0,31934,31935,7,6,0,0,31935,31936,7,25,0,0,31936,31937, +7,4,0,0,31937,31938,7,6,0,0,31938,31939,7,7,0,0,31939,31940,7,9,0,0,31940, +4854,1,0,0,0,31941,31942,7,14,0,0,31942,31943,7,0,0,0,31943,31944,7,25,0, +0,31944,31945,7,11,0,0,31945,31946,7,6,0,0,31946,31947,7,7,0,0,31947,4856, +1,0,0,0,31948,31949,7,15,0,0,31949,31950,7,6,0,0,31950,31951,7,3,0,0,31951, +31952,7,5,0,0,31952,31953,7,10,0,0,31953,31954,7,5,0,0,31954,31955,7,4,0, +0,31955,31956,7,0,0,0,31956,31957,7,1,0,0,31957,31958,7,11,0,0,31958,31959, +7,6,0,0,31959,4858,1,0,0,0,31960,31961,7,15,0,0,31961,31962,7,2,0,0,31962, +31963,7,11,0,0,31963,31964,7,18,0,0,31964,31965,7,14,0,0,31965,31966,7,2, +0,0,31966,31967,7,3,0,0,31967,31968,7,15,0,0,31968,31969,7,19,0,0,31969, +31970,7,10,0,0,31970,31971,7,8,0,0,31971,4860,1,0,0,0,31972,31973,7,5,0, +0,31973,31974,7,4,0,0,31974,31975,7,3,0,0,31975,31976,7,12,0,0,31976,31977, +7,8,0,0,31977,31978,7,4,0,0,31978,4862,1,0,0,0,31979,31980,7,4,0,0,31980, +31981,7,9,0,0,31981,31982,7,2,0,0,31982,4864,1,0,0,0,31983,31984,7,22,0, +0,31984,31985,7,14,0,0,31985,31986,5,95,0,0,31986,31987,7,8,0,0,31987,31988, +7,2,0,0,31988,31989,7,7,0,0,31989,31990,7,8,0,0,31990,31991,7,0,0,0,31991, +31992,7,4,0,0,31992,4866,1,0,0,0,31993,31994,7,7,0,0,31994,32001,5,39,0, +0,31995,32000,8,26,0,0,31996,31997,5,39,0,0,31997,32000,5,39,0,0,31998,32000, +3,4993,2496,0,31999,31995,1,0,0,0,31999,31996,1,0,0,0,31999,31998,1,0,0, +0,32000,32003,1,0,0,0,32001,31999,1,0,0,0,32001,32002,1,0,0,0,32002,32004, +1,0,0,0,32003,32001,1,0,0,0,32004,32005,5,39,0,0,32005,4868,1,0,0,0,32006, +32015,7,1,0,0,32007,32011,5,39,0,0,32008,32010,7,27,0,0,32009,32008,1,0, +0,0,32010,32013,1,0,0,0,32011,32009,1,0,0,0,32011,32012,1,0,0,0,32012,32014, +1,0,0,0,32013,32011,1,0,0,0,32014,32016,5,39,0,0,32015,32007,1,0,0,0,32016, +32017,1,0,0,0,32017,32015,1,0,0,0,32017,32018,1,0,0,0,32018,4870,1,0,0,0, +32019,32023,7,25,0,0,32020,32021,5,48,0,0,32021,32023,7,25,0,0,32022,32019, +1,0,0,0,32022,32020,1,0,0,0,32023,32032,1,0,0,0,32024,32028,5,39,0,0,32025, +32027,7,28,0,0,32026,32025,1,0,0,0,32027,32030,1,0,0,0,32028,32026,1,0,0, +0,32028,32029,1,0,0,0,32029,32031,1,0,0,0,32030,32028,1,0,0,0,32031,32033, +5,39,0,0,32032,32024,1,0,0,0,32033,32034,1,0,0,0,32034,32032,1,0,0,0,32034, +32035,1,0,0,0,32035,4872,1,0,0,0,32036,32037,5,46,0,0,32037,32038,5,46,0, +0,32038,4874,1,0,0,0,32039,32040,5,46,0,0,32040,4876,1,0,0,0,32041,32043, +7,29,0,0,32042,32041,1,0,0,0,32043,32044,1,0,0,0,32044,32042,1,0,0,0,32044, +32045,1,0,0,0,32045,4878,1,0,0,0,32046,32059,3,4991,2495,0,32047,32049,7, +6,0,0,32048,32050,7,30,0,0,32049,32048,1,0,0,0,32049,32050,1,0,0,0,32050, +32057,1,0,0,0,32051,32058,3,4991,2495,0,32052,32054,7,29,0,0,32053,32052, +1,0,0,0,32054,32055,1,0,0,0,32055,32053,1,0,0,0,32055,32056,1,0,0,0,32056, +32058,1,0,0,0,32057,32051,1,0,0,0,32057,32053,1,0,0,0,32058,32060,1,0,0, +0,32059,32047,1,0,0,0,32059,32060,1,0,0,0,32060,32062,1,0,0,0,32061,32063, +7,31,0,0,32062,32061,1,0,0,0,32062,32063,1,0,0,0,32063,4880,1,0,0,0,32064, +32071,5,39,0,0,32065,32070,8,26,0,0,32066,32067,5,39,0,0,32067,32070,5,39, +0,0,32068,32070,3,4993,2496,0,32069,32065,1,0,0,0,32069,32066,1,0,0,0,32069, +32068,1,0,0,0,32070,32073,1,0,0,0,32071,32069,1,0,0,0,32071,32072,1,0,0, +0,32072,32074,1,0,0,0,32073,32071,1,0,0,0,32074,32075,5,39,0,0,32075,4882, +1,0,0,0,32076,32077,7,24,0,0,32077,32089,5,39,0,0,32078,32090,3,4885,2442, +0,32079,32090,3,4887,2443,0,32080,32090,3,4889,2444,0,32081,32090,3,4891, +2445,0,32082,32090,3,4893,2446,0,32083,32090,3,4895,2447,0,32084,32090,3, +4897,2448,0,32085,32090,3,4899,2449,0,32086,32090,3,4901,2450,0,32087,32090, +3,4903,2451,0,32088,32090,3,4905,2452,0,32089,32078,1,0,0,0,32089,32079, +1,0,0,0,32089,32080,1,0,0,0,32089,32081,1,0,0,0,32089,32082,1,0,0,0,32089, +32083,1,0,0,0,32089,32084,1,0,0,0,32089,32085,1,0,0,0,32089,32086,1,0,0, +0,32089,32087,1,0,0,0,32089,32088,1,0,0,0,32090,32091,1,0,0,0,32091,32092, +5,39,0,0,32092,32093,1,0,0,0,32093,32094,6,2441,0,0,32094,4884,1,0,0,0,32095, +32099,5,60,0,0,32096,32098,9,0,0,0,32097,32096,1,0,0,0,32098,32101,1,0,0, +0,32099,32100,1,0,0,0,32099,32097,1,0,0,0,32100,32102,1,0,0,0,32101,32099, +1,0,0,0,32102,32103,5,62,0,0,32103,4886,1,0,0,0,32104,32108,5,123,0,0,32105, +32107,9,0,0,0,32106,32105,1,0,0,0,32107,32110,1,0,0,0,32108,32109,1,0,0, +0,32108,32106,1,0,0,0,32109,32111,1,0,0,0,32110,32108,1,0,0,0,32111,32112, +5,125,0,0,32112,4888,1,0,0,0,32113,32117,5,91,0,0,32114,32116,9,0,0,0,32115, +32114,1,0,0,0,32116,32119,1,0,0,0,32117,32118,1,0,0,0,32117,32115,1,0,0, +0,32118,32120,1,0,0,0,32119,32117,1,0,0,0,32120,32121,5,93,0,0,32121,4890, +1,0,0,0,32122,32126,5,40,0,0,32123,32125,9,0,0,0,32124,32123,1,0,0,0,32125, +32128,1,0,0,0,32126,32127,1,0,0,0,32126,32124,1,0,0,0,32127,32129,1,0,0, +0,32128,32126,1,0,0,0,32129,32130,5,41,0,0,32130,4892,1,0,0,0,32131,32135, +5,33,0,0,32132,32134,9,0,0,0,32133,32132,1,0,0,0,32134,32137,1,0,0,0,32135, +32136,1,0,0,0,32135,32133,1,0,0,0,32136,32138,1,0,0,0,32137,32135,1,0,0, +0,32138,32139,5,33,0,0,32139,4894,1,0,0,0,32140,32144,5,35,0,0,32141,32143, +9,0,0,0,32142,32141,1,0,0,0,32143,32146,1,0,0,0,32144,32145,1,0,0,0,32144, +32142,1,0,0,0,32145,32147,1,0,0,0,32146,32144,1,0,0,0,32147,32148,5,35,0, +0,32148,4896,1,0,0,0,32149,32153,5,39,0,0,32150,32152,9,0,0,0,32151,32150, +1,0,0,0,32152,32155,1,0,0,0,32153,32154,1,0,0,0,32153,32151,1,0,0,0,32154, +32156,1,0,0,0,32155,32153,1,0,0,0,32156,32157,5,39,0,0,32157,4898,1,0,0, +0,32158,32162,5,34,0,0,32159,32161,9,0,0,0,32160,32159,1,0,0,0,32161,32164, +1,0,0,0,32162,32163,1,0,0,0,32162,32160,1,0,0,0,32163,32165,1,0,0,0,32164, +32162,1,0,0,0,32165,32166,5,34,0,0,32166,4900,1,0,0,0,32167,32171,5,126, +0,0,32168,32170,9,0,0,0,32169,32168,1,0,0,0,32170,32173,1,0,0,0,32171,32172, +1,0,0,0,32171,32169,1,0,0,0,32172,32174,1,0,0,0,32173,32171,1,0,0,0,32174, +32175,5,126,0,0,32175,4902,1,0,0,0,32176,32180,5,47,0,0,32177,32179,9,0, +0,0,32178,32177,1,0,0,0,32179,32182,1,0,0,0,32180,32181,1,0,0,0,32180,32178, +1,0,0,0,32181,32183,1,0,0,0,32182,32180,1,0,0,0,32183,32184,5,47,0,0,32184, +4904,1,0,0,0,32185,32189,5,92,0,0,32186,32188,9,0,0,0,32187,32186,1,0,0, +0,32188,32191,1,0,0,0,32189,32190,1,0,0,0,32189,32187,1,0,0,0,32190,32192, +1,0,0,0,32191,32189,1,0,0,0,32192,32193,5,92,0,0,32193,4906,1,0,0,0,32194, +32198,5,34,0,0,32195,32199,8,32,0,0,32196,32197,5,34,0,0,32197,32199,5,34, +0,0,32198,32195,1,0,0,0,32198,32196,1,0,0,0,32199,32200,1,0,0,0,32200,32198, +1,0,0,0,32200,32201,1,0,0,0,32201,32202,1,0,0,0,32202,32203,5,34,0,0,32203, +4908,1,0,0,0,32204,32205,5,37,0,0,32205,4910,1,0,0,0,32206,32207,5,38,0, +0,32207,4912,1,0,0,0,32208,32209,5,40,0,0,32209,4914,1,0,0,0,32210,32211, +5,41,0,0,32211,4916,1,0,0,0,32212,32213,5,42,0,0,32213,32214,5,42,0,0,32214, +4918,1,0,0,0,32215,32216,5,42,0,0,32216,4920,1,0,0,0,32217,32218,5,43,0, +0,32218,4922,1,0,0,0,32219,32220,5,45,0,0,32220,4924,1,0,0,0,32221,32222, +5,44,0,0,32222,4926,1,0,0,0,32223,32224,5,47,0,0,32224,4928,1,0,0,0,32225, +32226,5,64,0,0,32226,4930,1,0,0,0,32227,32228,5,58,0,0,32228,32229,5,61, +0,0,32229,4932,1,0,0,0,32230,32231,5,35,0,0,32231,4934,1,0,0,0,32232,32233, +5,123,0,0,32233,4936,1,0,0,0,32234,32235,5,125,0,0,32235,4938,1,0,0,0,32236, +32237,5,39,0,0,32237,4940,1,0,0,0,32238,32239,5,58,0,0,32239,32244,3,4989, +2494,0,32240,32243,3,4989,2494,0,32241,32243,7,33,0,0,32242,32240,1,0,0, +0,32242,32241,1,0,0,0,32243,32246,1,0,0,0,32244,32242,1,0,0,0,32244,32245, +1,0,0,0,32245,32253,1,0,0,0,32246,32244,1,0,0,0,32247,32248,5,58,0,0,32248, +32253,3,4907,2453,0,32249,32250,5,58,0,0,32250,32253,3,4877,2438,0,32251, +32253,3,4987,2493,0,32252,32238,1,0,0,0,32252,32247,1,0,0,0,32252,32249, +1,0,0,0,32252,32251,1,0,0,0,32253,4942,1,0,0,0,32254,32255,5,33,0,0,32255, +32263,5,61,0,0,32256,32257,5,60,0,0,32257,32263,5,62,0,0,32258,32259,5,94, +0,0,32259,32263,5,61,0,0,32260,32261,5,126,0,0,32261,32263,5,61,0,0,32262, +32254,1,0,0,0,32262,32256,1,0,0,0,32262,32258,1,0,0,0,32262,32260,1,0,0, +0,32263,4944,1,0,0,0,32264,32265,5,94,0,0,32265,4946,1,0,0,0,32266,32267, +5,126,0,0,32267,4948,1,0,0,0,32268,32269,5,33,0,0,32269,4950,1,0,0,0,32270, +32271,5,62,0,0,32271,4952,1,0,0,0,32272,32273,5,60,0,0,32273,4954,1,0,0, +0,32274,32275,5,58,0,0,32275,4956,1,0,0,0,32276,32277,5,59,0,0,32277,4958, +1,0,0,0,32278,32279,5,124,0,0,32279,4960,1,0,0,0,32280,32281,5,61,0,0,32281, +4962,1,0,0,0,32282,32283,5,91,0,0,32283,4964,1,0,0,0,32284,32285,5,93,0, +0,32285,4966,1,0,0,0,32286,32287,5,95,0,0,32287,4968,1,0,0,0,32288,32289, +5,45,0,0,32289,32290,5,45,0,0,32290,32294,1,0,0,0,32291,32293,8,34,0,0,32292, +32291,1,0,0,0,32293,32296,1,0,0,0,32294,32292,1,0,0,0,32294,32295,1,0,0, +0,32295,32297,1,0,0,0,32296,32294,1,0,0,0,32297,32298,3,4985,2492,0,32298, +32299,1,0,0,0,32299,32300,6,2484,1,0,32300,4970,1,0,0,0,32301,32302,5,47, +0,0,32302,32303,5,42,0,0,32303,32307,1,0,0,0,32304,32306,9,0,0,0,32305,32304, +1,0,0,0,32306,32309,1,0,0,0,32307,32308,1,0,0,0,32307,32305,1,0,0,0,32308, +32310,1,0,0,0,32309,32307,1,0,0,0,32310,32311,5,42,0,0,32311,32312,5,47, +0,0,32312,32313,1,0,0,0,32313,32314,6,2485,1,0,32314,4972,1,0,0,0,32315, +32316,7,3,0,0,32316,32317,7,6,0,0,32317,32318,7,14,0,0,32318,32319,1,0,0, +0,32319,32323,4,2486,0,0,32320,32321,7,0,0,0,32321,32322,7,3,0,0,32322,32324, +7,21,0,0,32323,32320,1,0,0,0,32323,32324,1,0,0,0,32324,32332,1,0,0,0,32325, +32329,5,32,0,0,32326,32328,8,34,0,0,32327,32326,1,0,0,0,32328,32331,1,0, +0,0,32329,32327,1,0,0,0,32329,32330,1,0,0,0,32330,32333,1,0,0,0,32331,32329, +1,0,0,0,32332,32325,1,0,0,0,32332,32333,1,0,0,0,32333,32334,1,0,0,0,32334, +32335,3,4985,2492,0,32335,32336,1,0,0,0,32336,32337,6,2486,1,0,32337,4974, +1,0,0,0,32338,32339,7,15,0,0,32339,32340,7,3,0,0,32340,32341,7,2,0,0,32341, +32342,1,0,0,0,32342,32346,4,2487,1,0,32343,32344,7,14,0,0,32344,32345,7, +15,0,0,32345,32347,7,4,0,0,32346,32343,1,0,0,0,32346,32347,1,0,0,0,32347, +32355,1,0,0,0,32348,32352,5,32,0,0,32349,32351,8,34,0,0,32350,32349,1,0, +0,0,32351,32354,1,0,0,0,32352,32350,1,0,0,0,32352,32353,1,0,0,0,32353,32356, +1,0,0,0,32354,32352,1,0,0,0,32355,32348,1,0,0,0,32355,32356,1,0,0,0,32356, +32357,1,0,0,0,32357,32358,3,4985,2492,0,32358,4976,1,0,0,0,32359,32361,5, +64,0,0,32360,32362,5,64,0,0,32361,32360,1,0,0,0,32361,32362,1,0,0,0,32362, +4978,1,0,0,0,32363,32368,3,4989,2494,0,32364,32367,3,4989,2494,0,32365,32367, +7,35,0,0,32366,32364,1,0,0,0,32366,32365,1,0,0,0,32367,32370,1,0,0,0,32368, +32366,1,0,0,0,32368,32369,1,0,0,0,32369,4980,1,0,0,0,32370,32368,1,0,0,0, +32371,32372,5,36,0,0,32372,32373,5,36,0,0,32373,32376,1,0,0,0,32374,32377, +3,4989,2494,0,32375,32377,5,95,0,0,32376,32374,1,0,0,0,32376,32375,1,0,0, +0,32377,32378,1,0,0,0,32378,32376,1,0,0,0,32378,32379,1,0,0,0,32379,4982, +1,0,0,0,32380,32382,7,36,0,0,32381,32380,1,0,0,0,32382,32383,1,0,0,0,32383, +32381,1,0,0,0,32383,32384,1,0,0,0,32384,32385,1,0,0,0,32385,32386,6,2491, +1,0,32386,4984,1,0,0,0,32387,32390,3,4993,2496,0,32388,32390,5,0,0,1,32389, +32387,1,0,0,0,32389,32388,1,0,0,0,32390,4986,1,0,0,0,32391,32392,5,63,0, +0,32392,4988,1,0,0,0,32393,32394,7,37,0,0,32394,4990,1,0,0,0,32395,32397, +3,4877,2438,0,32396,32395,1,0,0,0,32397,32400,1,0,0,0,32398,32396,1,0,0, +0,32398,32399,1,0,0,0,32399,32402,1,0,0,0,32400,32398,1,0,0,0,32401,32403, +5,46,0,0,32402,32401,1,0,0,0,32402,32403,1,0,0,0,32403,32405,1,0,0,0,32404, +32406,3,4877,2438,0,32405,32404,1,0,0,0,32406,32407,1,0,0,0,32407,32405, +1,0,0,0,32407,32408,1,0,0,0,32408,4992,1,0,0,0,32409,32411,5,13,0,0,32410, +32409,1,0,0,0,32410,32411,1,0,0,0,32411,32412,1,0,0,0,32412,32413,5,10,0, +0,32413,4994,1,0,0,0,32414,32415,7,38,0,0,32415,4996,1,0,0,0,62,0,19891, +19904,19918,19956,19972,19987,19999,20022,23337,31999,32001,32011,32017, +32022,32028,32034,32044,32049,32055,32057,32059,32062,32069,32071,32089, +32099,32108,32117,32126,32135,32144,32153,32162,32171,32180,32189,32198, +32200,32242,32244,32252,32262,32294,32307,32323,32329,32332,32346,32352, +32355,32361,32366,32368,32376,32378,32383,32389,32398,32402,32407,32410, +2,7,2441,0,0,1,0]; + + +const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); + +export default class OracleSqlLexer extends OracleSqlLexerBase { + + static grammarFileName = "OracleSqlLexer.g4"; + static channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; + static modeNames = [ "DEFAULT_MODE" ]; + static literalNames = [ null, "'ABORT'", "'ABS'", "'ABSENT'", "'ACCESS'", + "'ACCESSED'", "'ACCESSIBLE'", "'ACCOUNT'", "'ACL'", + "'ACOS'", "'ACROSS'", "'ACTION'", "'ACTIONS'", + "'ACTIVATE'", "'ACTIVE'", "'ACTIVE_COMPONENT'", + "'ACTIVE_DATA'", "'ACTIVE_FUNCTION'", "'ACTIVE_TAG'", + "'ACTIVITY'", "'ADAPTIVE_PLAN'", "'ADD'", "'ADD_COLUMN'", + "'ADD_GROUP'", "'ADD_MONTHS'", "'ADJ_DATE'", "'ADMIN'", + "'ADMINISTER'", "'ADMINISTRATOR'", "'ADVANCED'", + "'ADVISE'", "'ADVISOR'", "'AFD_DISKSTRING'", "'AFTER'", + "'AGENT'", "'AGGREGATE'", "'A'", "'ALIAS'", "'ALL'", + "'ALLOCATE'", "'ALLOW'", "'ALL_ROWS'", "'ALTER'", + "'ALTERNATE'", "'ALWAYS'", "'ANALYTIC'", "'ANALYZE'", + "'ANCESTOR'", "'ANCILLARY'", "'AND'", "'AND_EQUAL'", + "'ANNOTATIONS'", "'ANOMALY'", "'ANSI_REARCH'", + "'ANTIJOIN'", "'ANY'", "'ANYSCHEMA'", "'APPEND'", + "'APPENDCHILDXML'", "'APPEND_VALUES'", "'APPLICATION'", + "'APPLY'", "'APPROX_COUNT_DISTINCT'", "'ARCHIVAL'", + "'ARCHIVE'", "'ARCHIVED'", "'ARCHIVELOG'", "'ARE'", + "'ARRAY'", "'AS'", "'ASC'", "'ASCII'", "'ASCIISTR'", + "'ASIN'", "'ASIS'", "'ASSEMBLY'", "'ASSIGN'", "'ASSOCIATE'", + "'ASYNC'", "'ASYNCHRONOUS'", "'ATAN2'", "'ATAN'", + "'AT'", "'ATTRIBUTE'", "'ATTRIBUTES'", "'AUDIT'", + "'AUTHENTICATED'", "'AUTHENTICATION'", "'AUTHID'", + "'AUTHORIZATION'", "'AUTOALLOCATE'", "'AUTO'", + "'AUTOBACKUP'", "'AUTOEXTEND'", "'AUTO_LOGIN'", + "'AUTOMATIC'", "'AUTONOMOUS_TRANSACTION'", "'AUTO_REOPTIMIZE'", + "'AVAILABILITY'", "'AVRO'", "'BACKGROUND'", "'BACKINGFILE'", + "'BACKUP'", "'BACKUPS'", "'BACKUPSET'", "'BADFILE'", + "'BASIC'", "'BASICFILE'", "'BATCH'", "'BATCHSIZE'", + "'BATCH_TABLE_ACCESS_BY_ROWID'", "'BECOME'", "'BEFORE'", + "'BEGIN'", "'BEGINNING'", "'BEGIN_OUTLINE_DATA'", + "'BEHALF'", "'BEQUEATH'", "'BETWEEN'", "'BFILE'", + "'BFILENAME'", "'BIG'", "'BIGFILE'", "'BIGINT'", + "'BINARY'", "'BINARY_DOUBLE'", "'BINARY_DOUBLE_INFINITY'", + "'BINARY_DOUBLE_NAN'", "'BINARY_FLOAT'", "'BINARY_FLOAT_INFINITY'", + "'BINARY_FLOAT_NAN'", "'BINARY_INTEGER'", "'BIND_AWARE'", + "'BINDING'", "'BIN_TO_NUM'", "'BITAND'", "'BITMAP_AND'", + "'BITMAP'", "'BITMAPS'", "'BITMAP_TREE'", "'BITS'", + "'BLANKS'", "'BLOB'", "'BLOCK'", "'BLOCK_RANGE'", + "'BLOCKS'", "'BLOCKSIZE'", "'BODY'", "'BOOLEAN'", + "'BOTH'", "'BOUND'", "'BRANCH'", "'BREADTH'", "'BROADCAST'", + "'BSON'", "'BUFFER'", "'BUFFER_CACHE'", "'BUFFER_POOL'", + "'BUILD'", "'BULK'", "'BY'", "'BYPASS_RECURSIVE_CHECK'", + "'BYPASS_UJVC'", "'BYTE'", "'BYTES'", "'BYTEORDERMARK'", + "'CACHE'", "'CACHE_CB'", "'CACHE_INSTANCES'", "'CACHE_TEMP_TABLE'", + "'CACHING'", "'CALCULATED'", "'CALLBACK'", "'CALL'", + "'CANCEL'", "'CANONICAL'", "'CAPACITY'", "'CAPTION'", + "'CARDINALITY'", "'CASCADE'", "'CASE'", "'CAST'", + "'CASE-SENSITIVE'", "'CATEGORY'", "'CDB$DEFAULT'", + "'CEIL'", "'CELL_FLASH_CACHE'", "'CERTIFICATE'", + "'CFILE'", "'CHAINED'", "'CHANGE'", "'CHANGETRACKING'", + "'CHANGE_DUPKEY_ERROR_INDEX'", "'CHARACTER'", "'CHARACTERS'", + "'CHARACTERSET'", "'CHAR'", "'CHAR_CS'", "'CHARTOROWID'", + "'CHECK_ACL_REWRITE'", "'CHECK'", "'CHECKPOINT'", + "'CHILD'", "'CHOOSE'", "'CHR'", "'CHUNK'", "'CLASS'", + "'CLASSIFICATION'", "'CLASSIFIER'", "'CLAUSE'", + "'CLEAN'", "'CLEANUP'", "'CLEAR'", "'C'", "'CLIENT'", + "'CLOB'", "'CLONE'", "'CLOSE_CACHED_OPEN_CURSORS'", + "'CLOSE'", "'CLUSTER_BY_ROWID'", "'CLUSTER'", "'CLUSTER_DETAILS'", + "'CLUSTER_DISTANCE'", "'CLUSTER_ID'", "'CLUSTERING'", + "'CLUSTERING_FACTOR'", "'CLUSTER_PROBABILITY'", + "'CLUSTER_SET'", "'COALESCE'", "'COALESCE_SQ'", + "'COARSE'", "'CO_AUTH_IND'", "'COLD'", "'COLLECT'", + "'COLLECTION'", "'COLUMNAR'", "'COLUMN_AUTH_INDICATOR'", + "'COLUMN'", "'COLUMNS'", "'COLUMN_STATS'", "'COLUMN_VALUE'", + "'COMMENT'", "'COMMIT'", "'COMMITTED'", "'COMMON'", + "'COMMON_DATA'", "'COMPACT'", "'COMPATIBLE'", "'COMPATIBILITY'", + "'COMPILE'", "'COMPLETE'", "'COMPLIANCE'", "'COMPONENT'", + "'COMPONENTS'", "'COMPOSE'", "'COMPOSITE'", "'COMPOSITE_LIMIT'", + "'COMPOUND'", "'COMPRESS'", "'COMPRESSION'", "'COMPUTE'", + "'CONCAT'", "'CON_DBID_TO_ID'", "'CONDITIONAL'", + "'CONDITION'", "'CONFIRM'", "'CONFORMING'", "'CON_GUID_TO_ID'", + "'CON_ID'", "'CON_NAME_TO_ID'", "'CONNECT_BY_CB_WHR_ONLY'", + "'CONNECT_BY_COMBINE_SW'", "'CONNECT_BY_COST_BASED'", + "'CONNECT_BY_ELIM_DUPS'", "'CONNECT_BY_FILTERING'", + "'CONNECT_BY_ISCYCLE'", "'CONNECT_BY_ISLEAF'", + "'CONNECT_BY_ROOT'", "'CONNECT'", "'CONNECT_TIME'", + "'CONSIDER'", "'CONSISTENT'", "'CONSTANT'", "'CONST'", + "'CONSTRAINT'", "'CONSTRAINTS'", "'CONSTRUCTOR'", + "'CONTAINER'", "'CONTAINERS'", "'CONTAINERS_DEFAULT'", + "'CONTAINER_DATA'", "'CONTAINER_MAP'", "'CONTENT'", + "'CONTENTS'", "'CONTEXT'", "'CONTINUE'", "'CONTROLFILE'", + "'CON_UID_TO_ID'", "'CONVERT'", "'CONVERSION'", + "'COOKIE'", "'COPY'", "'CORR_K'", "'CORR_S'", "'CORRUPTION'", + "'CORRUPT_XID_ALL'", "'CORRUPT_XID'", "'COS'", + "'COSH'", "'COST'", "'COST_XML_QUERY_REWRITE'", + "'COUNT'", "'COUNTED'", "'COVAR_POP'", "'COVAR_SAMP'", + "'CPU_COSTING'", "'CPU_PER_CALL'", "'CPU_PER_SESSION'", + "'CRASH'", "'CREATE'", "'CREATE_FILE_DEST'", "'CREATE_STORED_OUTLINES'", + "'CREATION'", "'CREDENTIAL'", "'CRITICAL'", "'CROSS'", + "'CROSSEDITION'", "'CSCONVERT'", "'CSV'", "'CUBE_AJ'", + "'CUBE'", "'CUBE_GB'", "'CUBE_SJ'", "'CUME_DISTM'", + "'CURRENT'", "'CURRENT_DATE'", "'CURRENT_SCHEMA'", + "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", "'CURRENT_USER'", + "'CURRENTV'", "'CURSOR'", "'CURSOR_SHARING_EXACT'", + "'CURSOR_SPECIFIC_SEGMENT'", "'CUSTOMDATUM'", "'CV'", + "'CYCLE'", "'DANGLING'", "'DATABASE'", "'DATA'", + "'DATAFILE'", "'DATAFILES'", "'DATAGUARDCONFIG'", + "'DATAMOVEMENT'", "'DATAOBJNO'", "'DATAOBJ_TO_MAT_PARTITION'", + "'DATAOBJ_TO_PARTITION'", "'DATAPUMP'", "'DATA_SECURITY_REWRITE_LIMIT'", + "'DATE'", "'DATE_CACHE'", "'DATE_FORMAT'", "'DATE_MODE'", + "'DAY'", "'DAYS'", "'DAY_TO_SECOND'", "'DBA'", + "'DBA_RECYCLEBIN'", "'DBLINK'", "'DBMS_STATS'", + "'DB_ROLE_CHANGE'", "'DBTIMEZONE'", "'DB_UNIQUE_NAME'", + "'DB_VERSION'", "'DDL'", "'DEALLOCATE'", "'DEBUG'", + "'DEBUGGER'", "'DEC'", "'DECIMAL'", "'DECLARE'", + "'DECOMPOSE'", "'DECORRELATE'", "'DECR'", "'DECREMENT'", + "'DECRYPT'", "'DEDUPLICATE'", "'DEFAULT'", "'DEFAULTIF'", + "'DEFAULTS'", "'DEFAULT_COLLATION'", "'DEFAULT_CREDENTIAL'", + "'DEFERRABLE'", "'DEFERRED'", "'DEFINED'", "'DEFINE'", + "'DEFINER'", "'DEGREE'", "'DELAY'", "'DELEGATE'", + "'DELETE_ALL'", "'DELETE'", "'DELETEXML'", "'DELIMITED'", + "'DEMAND'", "'DENSE_RANKM'", "'DEPENDENT'", "'DEPRECATE'", + "'DEPTH'", "'DEQUEUE'", "'DEREF'", "'DEREF_NO_REWRITE'", + "'DESC'", "'DESCRIPTION'", "'DESTROY'", "'DETACHED'", + "'DETECTED'", "'DETERMINES'", "'DETERMINISTIC'", + "'DICTIONARY'", "'DIMENSION'", "'DIMENSIONS'", + "'DIRECTIO'", "'DIRECT_LOAD'", "'DIRECTORY'", "'DIRECT_PATH'", + "'DISABLE_ALL'", "'DISABLE'", "'DISABLED'", "'DISABLE_DIRECTORY_LINK_CHECK'", + "'DISABLE_PARALLEL_DML'", "'DISABLE_PRESET'", "'DISABLE_RPKE'", + "'DISALLOW'", "'DISASSOCIATE'", "'DISCARD'", "'DISCARDFILE'", + "'DISCONNECT'", "'DISK'", "'DISKGROUP'", "''+ DISKGROUP'", + "'DISKS'", "'DISMOUNT'", "'DISTINCT'", "'DISTINGUISHED'", + "'DISTRIBUTED'", "'DISTRIBUTE'", "'DML'", "'DML_UPDATE'", + "'DNFS_DISABLE'", "'DNFS_ENABLE'", "'DNFS_READBUFFERS'", + "'DOCFIDELITY'", "'DOCUMENT'", "'$ELSE'", "'$ELSIF'", + "'$END'", "'$ERROR'", "'$IF'", "'$THEN'", "'DOMAIN_INDEX_FILTER'", + "'DOMAIN_INDEX_NO_SORT'", "'DOMAIN_INDEX_SORT'", + "'DOUBLE'", "'DOWNGRADE'", "'DRIVING_SITE'", "'DROP_COLUMN'", + "'DROP'", "'DROP_GROUP'", "'DSINTERVAL_UNCONSTRAINED'", + "'DST_UPGRADE_INSERT_CONV'", "'DUMP'", "'DUMPSET'", + "'DUPLICATE'", "'DV'", "'DYNAMIC'", "'DYNAMIC_SAMPLING'", + "'DYNAMIC_SAMPLING_EST_CDN'", "'E'", "'EACH'", + "'EDITIONABLE'", "'EDITION'", "'EDITIONING'", "'EDITIONS'", + "'ELEMENT'", "'ELIM_GROUPBY'", "'ELIMINATE_JOIN'", + "'ELIMINATE_OBY'", "'ELIMINATE_OUTER_JOIN'", "'ELSE'", + "'ELSIF'", "'EM'", "'EMBEDDED'", "'EMPTY_BLOB'", + "'EMPTY_CLOB'", "'EMPTY'", "'ENABLE_ALL'", "'ENABLE'", + "'ENABLED'", "'ENABLE_PARALLEL_DML'", "'ENABLE_PRESET'", + "'ENCLOSED'", "'ENCODING'", "'ENCRYPT'", "'ENCRYPTION'", + "'ENCRYPTPASSWORDISNULL'", "'END'", "'END_OUTLINE_DATA'", + "'ENDIAN'", "'ENFORCED'", "'ENFORCE'", "'ENQUEUE'", + "'ENTERPRISE'", "'ENTITYESCAPING'", "'ENTRY'", + "'EQUIPART'", "'ERR'", "'ERROR_ARGUMENT'", "'ERROR'", + "'ERROR_ON_OVERLAP_TIME'", "'ERRORS'", "'ERROR_INDEX'", + "'ERROR_CODE'", "'ESCAPE'", "'ESCAPED'", "'ESTIMATE'", + "'EVAL'", "'EVALNAME'", "'EVALUATE'", "'EVALUATION'", + "'EVENTS'", "'EVERY'", "'EXCEPT'", "'EXCEPTION'", + "'EXCEPTION_INIT'", "'EXCEPTIONS'", "'EXCHANGE'", + "'EXCLUDE'", "'EXCLUDING'", "'EXCLUSIVE'", "'EXECUTE'", + "'EXEMPT'", "'EXISTING'", "'EXISTS'", "'EXISTSNODE'", + "'EXIT'", "'EXPAND_GSET_TO_UNION'", "'EXPAND_TABLE'", + "'EXP'", "'EXPIRE'", "'EXPLAIN'", "'EXPLOSION'", + "'EXPORT'", "'EXPR_CORR_CHECK'", "'EXPRESS'", "'EXTENDS'", + "'EXTENT'", "'EXTENTS'", "'EXTERNAL'", "'EXTERNALLY'", + "'EXTRACTCLOBXML'", "'EXTRACT'", "'EXTRACTVALUE'", + "'EXTRA'", "'FACILITY'", "'FACT'", "'FACTOR'", + "'FACTORIZE_JOIN'", "'FAILED'", "'FAILED_LOGIN_ATTEMPTS'", + "'FAILGROUP'", "'FAILOVER'", "'FAILURE'", "'FALSE'", + "'FAMILY'", "'FAR'", "'FAST'", "'FASTSTART'", "'FBTSCAN'", + "'FEATURE'", "'FEATURE_DETAILS'", "'FEATURE_ID'", + "'FEATURE_SET'", "'FEATURE_VALUE'", "'FETCH'", + "'FIELD'", "'FIELDS'", "'FILE'", "'FILE_NAME_CONVERT'", + "'FILEGROUP'", "'FILESTORE'", "'FILESYSTEM_LIKE_LOGGING'", + "'FILTER'", "'FINAL'", "'FINE'", "'FINISH'", "'FIRST'", + "'FIRSTM'", "'FIRST_ROWS'", "'FIRST_VALUE'", "'FIXED'", + "'FIXED_VIEW_DATA'", "'FLAGGER'", "'FLASHBACK'", + "'FLASH_CACHE'", "'FLOAT'", "'FLOB'", "'FLEX'", + "'FLOOR'", "'FLUSH'", "'FOLDER'", "'FOLLOWING'", + "'FOLLOWS'", "'FORALL'", "'FORCE'", "'FORCE_XML_QUERY_REWRITE'", + "'FOREIGN'", "'FOREVER'", "'FOR'", "'FORMAT'", + "'FORWARD'", "'FRAGMENT_NUMBER'", "'FREELIST'", + "'FREELISTS'", "'FREEPOOLS'", "'FRESH'", "'FROM'", + "'FROM_TZ'", "'FULL'", "'FULL_OUTER_JOIN_TO_OUTER'", + "'FUNCTION'", "'FUNCTIONS'", "'FTP'", "'G'", "'GATHER_OPTIMIZER_STATISTICS'", + "'GATHER_PLAN_STATISTICS'", "'GBY_CONC_ROLLUP'", + "'GBY_PUSHDOWN'", "'GENERATED'", "'GET'", "'GLOBAL'", + "'GLOBALLY'", "'GLOBAL_NAME'", "'GLOBAL_TOPIC_ENABLED'", + "'GOTO'", "'GRANT'", "'GROUP_BY'", "'GROUP'", "'GROUP_ID'", + "'GROUPING'", "'GROUPING_ID'", "'GROUPS'", "'GUARANTEED'", + "'GUARANTEE'", "'GUARD'", "'HADOOP_TRAILERS'", + "'HALF_YEARS'", "'HASH_AJ'", "'HASH'", "'HASHKEYS'", + "'HASH_SJ'", "'HAVING'", "'HEADER'", "'HEAP'", + "'HELP'", "'HEXTORAW'", "'HEXTOREF'", "'HIDDEN'", + "'HIDE'", "'HIER_ORDER'", "'HIERARCHICAL'", "'HIERARCHIES'", + "'HIERARCHY'", "'HIGH'", "'HINTSET_BEGIN'", "'HINTSET_END'", + "'HOT'", "'HOUR'", "'HOURS'", "'HTTP'", "'HWM_BROKERED'", + "'HYBRID'", "'H'", "'IDENTIFIED'", "'IDENTIFIER'", + "'IDENTITY'", "'IDGENERATORS'", "'ID'", "'IDLE_TIME'", + "'IF'", "'IGNORE'", "'IGNORE_CHARS_AFTER_EOR'", + "'IGNORE_OPTIM_EMBEDDED_HINTS'", "'IGNORE_ROW_ON_DUPKEY_INDEX'", + "'IGNORE_WHERE_CLAUSE'", "'ILM'", "'IMMEDIATE'", + "'IMPACT'", "'IMPORT'", "'INACTIVE'", "'INACTIVE_ACCOUNT_TIME'", + "'INCLUDE'", "'INCLUDE_VERSION'", "'INCLUDING'", + "'INCREMENTAL'", "'INCREMENT'", "'INCR'", "'INDENT'", + "'INDEX_ASC'", "'INDEX_COMBINE'", "'INDEX_DESC'", + "'INDEXED'", "'INDEXES'", "'INDEX_FFS'", "'INDEX_FILTER'", + "'INDEX'", "'INDEXING'", "'INDEX_JOIN'", "'INDEX_ROWS'", + "'INDEX_RRS'", "'INDEX_RS_ASC'", "'INDEX_RS_DESC'", + "'INDEX_RS'", "'INDEX_SCAN'", "'INDEX_SKIP_SCAN'", + "'INDEX_SS_ASC'", "'INDEX_SS_DESC'", "'INDEX_SS'", + "'INDEX_STATS'", "'INDEXTYPE'", "'INDEXTYPES'", + "'INDICATOR'", "'INDICES'", "'INFINITE'", "'INFORMATIONAL'", + "'INHERIT'", "'IN'", "'INITCAP'", "'INITIAL'", + "'INITIALIZED'", "'INITIALLY'", "'INITRANS'", "'INLINE'", + "'INLINE_XMLTYPE_NT'", "'INMEMORY'", "'IN_MEMORY_METADATA'", + "'INMEMORY_PRUNING'", "'INNER'", "'INOUT'", "'INPLACE'", + "'INPUTFORMAT'", "'INSERTCHILDXMLAFTER'", "'INSERTCHILDXMLBEFORE'", + "'INSERTCHILDXML'", "'INSERT'", "'INSERTXMLAFTER'", + "'INSERTXMLBEFORE'", "'INSTANCE'", "'INSTANCES'", + "'INSTANTIABLE'", "'INSTANTLY'", "'INSTEAD'", "'INSTR2'", + "'INSTR4'", "'INSTRB'", "'INSTRC'", "'INSTR'", + "'INTEGER'", "'INTERLEAVED'", "'INTERMEDIATE'", + "'INTERNAL_CONVERT'", "'INTERNAL_USE'", "'INTERPRETED'", + "'INTERSECT'", "'INTERVAL'", "'INT'", "'INTERNAL'", + "'INTO'", "'INVALIDATE'", "'INVALIDATION'", "'INVISIBLE'", + "'IN_XQUERY'", "'IO_OPTIONS'", "'IS'", "'IS_LEAF'", + "'ISOLATION'", "'ISOLATION_LEVEL'", "'ITEMS'", + "'ITERATE'", "'ITERATION_NUMBER'", "'JAVA'", "'JOB'", + "'JOIN'", "'JSON_ARRAYAGG'", "'JSON_ARRAY'", "'JSON_EQUAL'", + "'JSON_EXISTS2'", "'JSON_EXISTS'", "'JSONGET'", + "'JSON'", "'JSON_OBJECTAGG'", "'JSON_OBJECT'", + "'JSONPARSE'", "'JSON_QUERY'", "'JSON_SERIALIZE'", + "'JSON_TABLE'", "'JSON_TEXTCONTAINS2'", "'JSON_TEXTCONTAINS'", + "'JSON_TRANSFORM'", "'JSON_VALUE'", "'K'", "'KEEP_DUPLICATES'", + "'KEEP'", "'KERBEROS'", "'KEY'", "'KEY_LENGTH'", + "'KEYSIZE'", "'KEYS'", "'KEYSTORE'", "'KILL'", + "'LABEL'", "'LANGUAGE'", "'LAST_DAY'", "'LAST'", + "'LAST_VALUE'", "'LATERAL'", "'LATEST'", "'LAX'", + "'LAYER'", "'LDAP_REGISTRATION_ENABLED'", "'LDAP_REGISTRATION'", + "'LDAP_REG_SYNC_INTERVAL'", "'LDRTRIM'", "'LEAF'", + "'LEAD_CDB'", "'LEAD_CDB_URI'", "'LEADING'", "'LEFT'", + "'LENGTH2'", "'LENGTH4'", "'LENGTHB'", "'LENGTHC'", + "'LENGTH'", "'LESS'", "'LEVEL'", "'LEVEL_NAME'", + "'LEVELS'", "'LIBRARY'", "'LIFECYCLE'", "'LIFE'", + "'LIFETIME'", "'LIKE2'", "'LIKE4'", "'LIKEC'", + "'LIKE_EXPAND'", "'LIKE'", "'LIMIT'", "'LINEAR'", + "'LINES'", "'LINK'", "'LIST'", "'LITTLE'", "'LLS'", + "'LN'", "'LNNVL'", "'LOAD'", "'LOB'", "'LOBFILE'", + "'LOBNVL'", "'LOBS'", "'LOCAL_INDEXES'", "'LOCAL'", + "'LOCALTIME'", "'LOCALTIMESTAMP'", "'LOCATION'", + "'LOCATOR'", "'LOCKDOWN'", "'LOCKED'", "'LOCKING'", + "'LOCK'", "'LOGFILE'", "'LOGFILES'", "'LOGGING'", + "'LOGICAL'", "'LOGICAL_READS_PER_CALL'", "'LOGICAL_READS_PER_SESSION'", + "'LOG'", "'LOGMINING'", "'LOGOFF'", "'LOGON'", + "'LOG_READ_ONLY_VIOLATIONS'", "'LONG'", "'LOOP'", + "'LOST'", "'LOWER'", "'LOW'", "'LPAD'", "'LRTRIM'", + "'LTRIM'", "'M'", "'MAIN'", "'MAKE_REF'", "'MANAGED'", + "'MANAGE'", "'MANAGEMENT'", "'MANAGER'", "'MANDATORY'", + "'MANUAL'", "'MAP'", "'MAPPING'", "'MASK'", "'MASTER'", + "'MATCHED'", "'MATCHES'", "'MATCH'", "'MATCH_NUMBER'", + "'MATCH_RECOGNIZE'", "'MATERIALIZED'", "'MATERIALIZE'", + "'MAXARCHLOGS'", "'MAXDATAFILES'", "'MAXEXTENTS'", + "'MAXIMIZE'", "'MAXINSTANCES'", "'MAXLOGFILES'", + "'MAXLOGHISTORY'", "'MAXLOGMEMBERS'", "'MAX_SHARED_TEMP_SIZE'", + "'MAXSIZE'", "'MAXTRANS'", "'MAXVALUE'", "'MEASURE'", + "'MEASURES'", "'MEDIUM'", "'MEMBER'", "'MEMBER_CAPTION'", + "'MEMBER_DESCRIPTION'", "'MEMBER_NAME'", "'MEMBER_UNIQUE_NAME'", + "'MEMCOMPRESS'", "'MEMORY'", "'MERGE$ACTIONS'", + "'MERGE_AJ'", "'MERGE_CONST_ON'", "'MERGE'", "'MERGE_SJ'", + "'METADATA'", "'METHOD'", "'MIGRATE'", "'MIGRATION'", + "'MINEXTENTS'", "'MINIMIZE'", "'MINIMUM'", "'MINING'", + "'MINUS'", "'MINUS_NULL'", "'MINUTE'", "'MINUTES'", + "'MINVALUE'", "'MIRRORCOLD'", "'MIRRORHOT'", "'MIRROR'", + "'MISSING'", "'MISMATCH'", "'MLSLABEL'", "'MODEL_COMPILE_SUBQUERY'", + "'MODEL_DONTVERIFY_UNIQUENESS'", "'MODEL_DYNAMIC_SUBQUERY'", + "'MODEL_MIN_ANALYSIS'", "'MODEL'", "'MODEL_NB'", + "'MODEL_NO_ANALYSIS'", "'MODEL_PBY'", "'MODEL_PUSH_REF'", + "'MODEL_SV'", "'MODE'", "'MODIFICATION'", "'MODIFY_COLUMN_TYPE'", + "'MODIFY'", "'MOD'", "'MODULE'", "'MONITORING'", + "'MONITOR'", "'MONTH'", "'MONTHS_BETWEEN'", "'MONTHS'", + "'MOUNT'", "'MOUNTPATH'", "'MOUNTPOINT'", "'MOVEMENT'", + "'MOVE'", "'MULTIDIMENSIONAL'", "'MULTISET'", "'MV_MERGE'", + "'NAMED'", "'NAME'", "'NAMESPACE'", "'NAN'", "'NANVL'", + "'NATIONAL'", "'NATIVE_FULL_OUTER_JOIN'", "'NATIVE'", + "'NATURAL'", "'NATURALN'", "'NAV'", "'NCHAR_CS'", + "'NCHAR'", "'NCHR'", "'NCLOB'", "'NEEDED'", "'NEG'", + "'NESTED'", "'NESTED_TABLE_FAST_INSERT'", "'NESTED_TABLE_GET_REFS'", + "'NESTED_TABLE_ID'", "'NESTED_TABLE_SET_REFS'", + "'NESTED_TABLE_SET_SETID'", "'NETWORK'", "'NEVER'", + "'NEW'", "'NEWLINE'", "'NEW_TIME'", "'NEXT_DAY'", + "'NEXT'", "'NL_AJ'", "'NLJ_BATCHING'", "'NLJ_INDEX_FILTER'", + "'NLJ_INDEX_SCAN'", "'NLJ_PREFETCH'", "'NLS_CALENDAR'", + "'NLS_CHARACTERSET'", "'NLS_CHARSET_DECL_LEN'", + "'NLS_CHARSET_ID'", "'NLS_CHARSET_NAME'", "'NLS_COMP'", + "'NLS_CURRENCY'", "'NLS_DATE_FORMAT'", "'NLS_DATE_LANGUAGE'", + "'NLS_INITCAP'", "'NLS_ISO_CURRENCY'", "'NL_SJ'", + "'NLS_LANG'", "'NLS_LANGUAGE'", "'NLS_LENGTH_SEMANTICS'", + "'NLS_LOWER'", "'NLS_NCHAR_CONV_EXCP'", "'NLS_NUMERIC_CHARACTERS'", + "'NLS_SORT'", "'NLSSORT'", "'NLS_SPECIAL_CHARS'", + "'NLS_TERRITORY'", "'NLS_UPPER'", "'NO_ACCESS'", + "'NO_ADAPTIVE_PLAN'", "'NO_ANSI_REARCH'", "'NOAPPEND'", + "'NOARCHIVELOG'", "'NOAUDIT'", "'NOBADFILE'", "'NO_AUTO_REOPTIMIZE'", + "'NO_BASETABLE_MULTIMV_REWRITE'", "'NO_BATCH_TABLE_ACCESS_BY_ROWID'", + "'NO_BIND_AWARE'", "'NO_BUFFER'", "'NOCACHE'", + "'NOCHECK'", "'NO_CARTESIAN'", "'NO_CHECK_ACL_REWRITE'", + "'NO_CLUSTER_BY_ROWID'", "'NO_CLUSTERING'", "'NO_COALESCE_SQ'", + "'NO_COMMON_DATA'", "'NOCOMPRESS'", "'NO_CONNECT_BY_CB_WHR_ONLY'", + "'NO_CONNECT_BY_COMBINE_SW'", "'NO_CONNECT_BY_COST_BASED'", + "'NO_CONNECT_BY_ELIM_DUPS'", "'NO_CONNECT_BY_FILTERING'", + "'NOCOPY'", "'NO_COST_XML_QUERY_REWRITE'", "'NO_CPU_COSTING'", + "'NOCPU_COSTING'", "'NOCYCLE'", "'NO_DATA_SECURITY_REWRITE'", + "'NO_DECORRELATE'", "'NODELAY'", "'NODIRECTIO'", + "'NODISCARDFILE'", "'NO_DOMAIN_INDEX_FILTER'", + "'NO_DST_UPGRADE_INSERT_CONV'", "'NO_ELIM_GROUPBY'", + "'NO_ELIMINATE_JOIN'", "'NO_ELIMINATE_OBY'", "'NO_ELIMINATE_OUTER_JOIN'", + "'NOENTITYESCAPING'", "'NO_EXPAND_GSET_TO_UNION'", + "'NO_EXPAND'", "'NO_EXPAND_TABLE'", "'NOEXTEND'", + "'NO_FACT'", "'NO_FACTORIZE_JOIN'", "'NO_FILTERING'", + "'NOFORCE'", "'NO_FULL_OUTER_JOIN_TO_OUTER'", "'NO_GATHER_OPTIMIZER_STATISTICS'", + "'NO_GBY_PUSHDOWN'", "'NOGUARANTEE'", "'NO_INDEX_FFS'", + "'NO_INDEX'", "'NO_INDEX_SS'", "'NO_INMEMORY'", + "'NO_INMEMORY_PRUNING'", "'NOKEEP'", "'NO_LOAD'", + "'NOLOCAL'", "'NOLOG'", "'NOLOGFILE'", "'NOLOGGING'", + "'NOMAPPING'", "'NOMAXVALUE'", "'NO_MERGE'", "'NOMINIMIZE'", + "'NOMINVALUE'", "'NO_MODEL_PUSH_REF'", "'NO_MONITORING'", + "'NOMONITORING'", "'NO_MONITOR'", "'NO_MULTIMV_REWRITE'", + "'NO_NATIVE_FULL_OUTER_JOIN'", "'NONBLOCKING'", + "'NONEDITIONABLE'", "'NONE'", "'NONULLIF'", "'NO_NLJ_BATCHING'", + "'NO_NLJ_PREFETCH'", "'NO'", "'NONSCHEMA'", "'NO_OBJECT_LINK'", + "'NOORDER'", "'NO_ORDER_ROLLUPS'", "'NO_OUTER_JOIN_TO_ANTI'", + "'NO_OUTER_JOIN_TO_INNER'", "'NOOVERRIDE'", "'NO_PARALLEL_INDEX'", + "'NOPARALLEL_INDEX'", "'NO_PARALLEL'", "'NOPARALLEL'", + "'NO_PARTIAL_COMMIT'", "'NO_PARTIAL_JOIN'", "'NO_PARTIAL_ROLLUP_PUSHDOWN'", + "'NOPARTITION'", "'NO_PLACE_DISTINCT'", "'NO_PLACE_GROUP_BY'", + "'NO_PQ_CONCURRENT_UNION'", "'NO_PQ_MAP'", "'NOPROMPT'", + "'NO_PQ_REPLICATE'", "'NO_PQ_SKEW'", "'NO_PRUNE_GSETS'", + "'NO_PULL_PRED'", "'NO_PUSH_PRED'", "'NO_PUSH_SUBQ'", + "'NO_PX_FAULT_TOLERANCE'", "'NO_PX_JOIN_FILTER'", + "'NO_QKN_BUFF'", "'NO_QUERY_TRANSFORMATION'", "'NO_REF_CASCADE'", + "'NORELOCATE'", "'NORELY'", "'NOREPAIR'", "'NOREPLAY'", + "'NORESETLOGS'", "'NO_RESULT_CACHE'", "'NOREVERSE'", + "'NO_REWRITE'", "'NOREWRITE'", "'NORMAL'", "'NO_ROOT_SW_FOR_LOCAL'", + "'NOROWDEPENDENCIES'", "'NOSCALE'", "'NOSCHEMACHECK'", + "'NOSEGMENT'", "'NO_SEMIJOIN'", "'NO_SEMI_TO_INNER'", + "'NO_SET_TO_JOIN'", "'NOSHARD'", "'NOSORT'", "'NO_SQL_TRANSLATION'", + "'NO_SQL_TUNE'", "'NO_STAR_TRANSFORMATION'", "'NO_STATEMENT_QUEUING'", + "'NO_STATS_GSETS'", "'NOSTRICT'", "'NO_SUBQUERY_PRUNING'", + "'NO_SUBSTRB_PAD'", "'NO_SWAP_JOIN_INPUTS'", "'NOSWITCH'", + "'NO_TABLE_LOOKUP_BY_NL'", "'NO_TEMP_TABLE'", "'NOTHING'", + "'NOTIFICATION'", "'NOTRIM'", "'NOT'", "'NO_TRANSFORM_DISTINCT_AGG'", + "'NO_UNNEST'", "'NO_USE_CUBE'", "'NO_USE_HASH_AGGREGATION'", + "'NO_USE_HASH_GBY_FOR_PUSHDOWN'", "'NO_USE_HASH'", + "'NO_USE_INVISIBLE_INDEXES'", "'NO_USE_MERGE'", + "'NO_USE_NL'", "'NO_USE_VECTOR_AGGREGATION'", "'NOVALIDATE'", + "'NO_VECTOR_TRANSFORM_DIMS'", "'NO_VECTOR_TRANSFORM_FACT'", + "'NO_VECTOR_TRANSFORM'", "'NOWAIT'", "'NO_XDB_FASTPATH_INSERT'", + "'NO_XML_DML_REWRITE'", "'NO_XMLINDEX_REWRITE_IN_SELECT'", + "'NO_XMLINDEX_REWRITE'", "'NO_XML_QUERY_REWRITE'", + "'NO_ZONEMAP'", "'NTH_VALUE'", "'NULLIF'", "'NULL'", + "'NULLS'", "'NUMBER'", "'NUMERIC'", "'NUM_INDEX_KEYS'", + "'NUMTODSINTERVAL'", "'NUMTOYMINTERVAL'", "'NVARCHAR2'", + "'NVL2'", "'OBJECT2XML'", "'OBJECT'", "'OBJ_ID'", + "'OBJNO'", "'OBJNO_REUSE'", "'OCCURENCES'", "'OFFLINE'", + "'OFF'", "'OFFSET'", "'OF'", "'OIDINDEX'", "'OID'", + "'OLAP'", "'OLD'", "'OLD_PUSH_PRED'", "'OLS'", + "'OLTP'", "'OMIT'", "'ONE'", "'ONLINE'", "'ONLINELOG'", + "'ONLY'", "'ON'", "'OPAQUE'", "'OPAQUE_TRANSFORM'", + "'OPAQUE_XCANONICAL'", "'OPCODE'", "'OPEN'", "'OPERATIONS'", + "'OPERATOR'", "'OPT_ESTIMATE'", "'OPTIMAL'", "'OPTIMIZE'", + "'OPTIMIZER_FEATURES_ENABLE'", "'OPTIMIZER_GOAL'", + "'OPTION'", "'OPTIONALLY'", "'OPT_PARAM'", "'ORA_BRANCH'", + "'ORA_CHECK_ACL'", "'ORA_CHECK_PRIVILEGE'", "'ORA_CLUSTERING'", + "'ORADATA'", "'ORC'", "'ORACLE_DATE'", "'ORACLE_NUMBER'", + "'ORADEBUG'", "'ORA_DST_AFFECTED'", "'ORA_DST_CONVERT'", + "'ORA_DST_ERROR'", "'ORA_GET_ACLIDS'", "'ORA_GET_PRIVILEGES'", + "'ORA_HASH'", "'ORA_INVOKING_USERID'", "'ORA_INVOKING_USER'", + "'ORA_INVOKING_XS_USER_GUID'", "'ORA_INVOKING_XS_USER'", + "'ORA_RAWCOMPARE'", "'ORA_RAWCONCAT'", "'ORA_ROWSCN'", + "'ORA_ROWSCN_RAW'", "'ORA_ROWVERSION'", "'ORA_TABVERSION'", + "'ORA_WRITE_TIME'", "'ORDERED'", "'ORDERED_PREDICATES'", + "'ORDER'", "'ORDINALITY'", "'OR_EXPAND'", "'ORGANIZATION'", + "'OR'", "'OR_PREDICATES'", "'OSERROR'", "'OTHER'", + "'OUTER_JOIN_TO_ANTI'", "'OUTER_JOIN_TO_INNER'", + "'OUTER'", "'OUTLINE_LEAF'", "'OUTLINE'", "'OUTPUTFORMAT'", + "'OUT_OF_LINE'", "'OUT'", "'OVERFLOW_NOMOVE'", + "'OVERFLOW'", "'OVERLAPS'", "'OVER'", "'OVERRIDE'", + "'OVERRIDING'", "'OWNER'", "'OWNERSHIP'", "'OWN'", + "'P'", "'PACKAGE'", "'PACKAGES'", "'PARALLEL_ENABLE'", + "'PARALLEL_INDEX'", "'PARALLEL'", "'PARAMETERFILE'", + "'PARAMETERS'", "'PARAM'", "'PARENT'", "'PARENT_LEVEL_NAME'", + "'PARENT_UNIQUE_NAME'", "'PARITY'", "'PARQUET'", + "'PARTIAL_JOIN'", "'PARTIALLY'", "'PARTIAL'", "'PARTIAL_ROLLUP_PUSHDOWN'", + "'PARTITION_HASH'", "'PARTITION_LIST'", "'PARTITION'", + "'PARTITION_RANGE'", "'PARTITIONS'", "'PART$NUM$INST'", + "'PASSING'", "'PASSWORD_GRACE_TIME'", "'PASSWORD_LIFE_TIME'", + "'PASSWORD_LOCK_TIME'", "'PASSWORD'", "'PASSWORD_REUSE_MAX'", + "'PASSWORD_REUSE_TIME'", "'PASSWORD_ROLLOVER_TIME'", + "'PASSWORD_VERIFY_FUNCTION'", "'PAST'", "'PATCH'", + "'PATH'", "'PATH_PREFIX'", "'PATHS'", "'PATTERN'", + "'PBL_HS_BEGIN'", "'PBL_HS_END'", "'PCTFREE'", + "'PCTINCREASE'", "'PCTTHRESHOLD'", "'PCTUSED'", + "'PCTVERSION'", "'PENDING'", null, null, null, + "'PERCENT'", "'PERCENT_RANKM'", null, null, null, + null, null, "'PERFORMANCE'", "'PERIOD'", "'PERMANENT'", + "'PERMISSION'", "'PERMUTE'", "'PER'", "'PFILE'", + "'PHYSICAL'", "'PIKEY'", "'PIPELINED'", "'PIPE'", + "'PIV_GB'", "'PIVOT'", "'PIV_SSF'", "'PLACE_DISTINCT'", + "'PLACE_GROUP_BY'", "'PLAN'", "'PLSCOPE_SETTINGS'", + "'PLS_INTEGER'", "'PLSQL_CCFLAGS'", "'PLSQL_CODE_TYPE'", + "'PLSQL_DEBUG'", "'PLSQL_OPTIMIZE_LEVEL'", "'PLSQL_WARNINGS'", + "'PLUGGABLE'", "'PMEM'", "'POINT'", "'POLICY'", + "'POOL_16K'", "'POOL_2K'", "'POOL_32K'", "'POOL_4K'", + "'POOL_8K'", "'POSITION'", "'POSITIVEN'", "'POSITIVE'", + "'POST_TRANSACTION'", "'POWERMULTISET_BY_CARDINALITY'", + "'POWERMULTISET'", "'POWER'", "'PQ_CONCURRENT_UNION'", + "'PQ_DISTRIBUTE'", "'PQ_DISTRIBUTE_WINDOW'", "'PQ_FILTER'", + "'PQ_MAP'", "'PQ_NOMAP'", "'PQ_REPLICATE'", "'PQ_SKEW'", + "'PRAGMA'", "'PREBUILT'", "'PRECEDES'", "'PRECEDING'", + "'PRECISION'", "'PRECOMPUTE_SUBQUERY'", "'PREDICATE_REORDERS'", + "'PRELOAD'", "'PREPARE'", "'PREPROCESSOR'", "'PRESENTNNV'", + "'PRESENT'", "'PRESENTV'", "'PRESERVE_OID'", "'PRESERVE'", + "'PRETTY'", "'PREVIOUS'", "'PREV'", "'PRIMARY'", + "'PRINTBLOBTOCLOB'", "'PRIORITY'", "'PRIOR'", "'PRIVATE'", + "'PRIVATE_SGA'", "'PRIVILEGED'", "'PRIVILEGE'", + "'PRIVILEGES'", "'PROCEDURAL'", "'PROCEDURE'", + "'PROCESS'", "'PROFILE'", "'PROGRAM'", "'PROJECT'", + "'PROPAGATE'", "'PROPERTY'", "'PROTECTED'", "'PROTECTION'", + "'PROTOCOL'", "'PROXY'", "'PRUNING'", "'PUBLIC'", + "'PULL_PRED'", "'PURGE'", "'PUSH_PRED'", "'PUSH_SUBQ'", + "'PX_FAULT_TOLERANCE'", "'PX_GRANULE'", "'PX_JOIN_FILTER'", + "'QB_NAME'", "'QUARTERS'", "'QUERY_BLOCK'", "'QUERY'", + "'QUEUE_CURR'", "'QUEUE'", "'QUEUE_ROWP'", "'QUIESCE'", + "'QUORUM'", "'QUOTA'", "'QUOTAGROUP'", "'RAISE'", + "'RANDOM_LOCAL'", "'RANDOM'", "'RANGE'", "'RANKM'", + "'RAPIDLY'", "'RAW'", "'RAWTOHEX'", "'RAWTONHEX'", + "'RBA'", "'RBO_OUTLINE'", "'RCFILE'", "'RDBA'", + "'READ'", "'READS'", "'READSIZE'", "'REALM'", "'REAL'", + "'REBALANCE'", "'REBUILD'", "'RECORD'", "'RECORDS'", + "'RECORDS_PER_BLOCK'", "'RECOVERABLE'", "'RECOVER'", + "'RECOVERY'", "'RECYCLEBIN'", "'RECYCLE'", "'REDACTION'", + "'REDEFINE'", "'REDO'", "'REDUCED'", "'REDUNDANCY'", + "'REF_CASCADE_CURSOR'", "'REFERENCED'", "'REFERENCE'", + "'REFERENCES'", "'REFERENCING'", "'REF'", "'REFRESH'", + "'REFTOHEX'", "'REGEXP_COUNT'", "'REGEXP_INSTR'", + "'REGEXP_LIKE'", "'REGEXP_REPLACE'", "'REGEXP_SUBSTR'", + "'REGISTER'", "'REGR_AVGX'", "'REGR_AVGY'", "'REGR_COUNT'", + "'REGR_INTERCEPT'", "'REGR_R2'", "'REGR_SLOPE'", + "'REGR_SXX'", "'REGR_SXY'", "'REGR_SYY'", "'REGULAR'", + "'REJECT'", "'REKEY'", "'RELATIONAL'", "'RELIES_ON'", + "'RELOCATE'", "'RELY'", "'REMAINDER'", "'REMOTE'", + "'REMOTE_MAPPED'", "'REMOVE'", "'RENAME'", "'REPAIR'", + "'REPEAT'", "'REPLACE'", "'REPLICATION'", "'REQUIRED'", + "'RESETLOGS'", "'RESET'", "'RESIZE'", "'RESOLVE'", + "'RESOLVER'", "'RESOURCE'", "'RESPECT'", "'RESTART'", + "'RESTORE_AS_INTERVALS'", "'RESTORE'", "'RESTRICT_ALL_REF_CONS'", + "'RESTRICTED'", "'RESTRICT_REFERENCES'", "'RESTRICT'", + "'RESULT_CACHE'", "'RESULT'", "'RESUMABLE'", "'RESUME'", + "'RETENTION'", "'RETRY_ON_ROW_CHANGE'", "'RETURNING'", + "'RETURN'", "'REUSE'", "'REVERSE'", "'REVOKE'", + "'REWRITE_OR_ERROR'", "'REWRITE'", "'RIGHT'", "'ROLE'", + "'ROLESET'", "'ROLES'", "'ROLLBACK'", "'ROLLING'", + "'ROLLUP'", "'ROWDEPENDENCIES'", "'ROWID_MAPPING_TABLE'", + "'ROWID'", "'ROWIDTOCHAR'", "'ROWIDTONCHAR'", "'ROW_LENGTH'", + "'ROWNUM'", "'ROW'", "'ROWS'", "'RPAD'", "'RTRIM'", + "'RULE'", "'RULES'", "'RUNNING'", "'SALT'", "'SAMPLE'", + "'SAVE_AS_INTERVALS'", "'SAVEPOINT'", "'SAVE'", + "'SB4'", "'SCALE_ROWS'", "'SCALE'", "'SCAN_INSTANCES'", + "'SCAN'", "'SCHEDULER'", "'SCHEMACHECK'", "'SCHEMA'", + "'SCN_ASCENDING'", "'SCN'", "'SCOPE'", "'SCRUB'", + "'SD_ALL'", "'SD_INHIBIT'", "'SDO_GEOM_MBR'", "'SDO_GEOMETRY'", + "'SD_SHOW'", "'SEARCH'", "'SECOND'", "'SECONDS'", + "'SECRET'", "'SECUREFILE_DBA'", "'SECUREFILE'", + "'SECURITY'", "'SEED'", "'SEG_BLOCK'", "'SEG_FILE'", + "'SEGMENT'", "'SELECTIVITY'", "'SELECT'", "'SELF'", + "'SEMIJOIN_DRIVER'", "'SEMIJOIN'", "'SEMI_TO_INNER'", + "'SEQUENCED'", "'SEQUENCE'", "'SEQUENCEFILE'", + "'SEQUENTIAL'", "'SEQ'", "'SERDE'", "'SERDEPROPERTIES'", + "'SERIALIZABLE'", "'SERIALLY_REUSABLE'", "'SERIAL'", + "'SERVERERROR'", "'SERVICE_NAME_CONVERT'", "'SERVICE'", + "'SERVICES'", "'SESSION_CACHED_CURSORS'", "'SESSION'", + "'SESSIONS_PER_USER'", "'SESSIONTIMEZONE'", "'SESSIONTZNAME'", + "'SET'", "'SETS'", "'SETTINGS'", "'SET_TO_JOIN'", + "'SEVERE'", "'SHARD'", "'SHARDSPACE'", "'SHARED_POOL'", + "'SHARED'", "'SHARE'", "'SHARING'", "'SHELFLIFE'", + "'SHOW'", "'SHRINK'", "'SHUTDOWN'", "'SIBLINGS'", + "'SID'", "'SITE'", "'SIGNAL_COMPONENT'", "'SIGNAL_FUNCTION'", + "'SIGN'", "'SIGNTYPE'", "'SIMPLE_INTEGER'", "'SIMPLE'", + "'SINGLE'", "'SINGLETASK'", "'SINH'", "'SIN'", + "'SIZE'", "'SIZES'", "'SKIP_EXT_OPTIMIZER'", "'SKIP'", + "'SKIP_UNQ_UNUSABLE_IDX'", "'SKIP_UNUSABLE_INDEXES'", + "'SMALLFILE'", "'SMALLINT'", "'SNAPSHOT'", "'SOME'", + "'SORT'", "'SOUNDEX'", "'SOURCE_FILE_DIRECTORY'", + "'SOURCE_FILE_NAME_CONVERT'", "'SOURCE'", "'SPACE'", + "'SPECIFICATION'", "'SPFILE'", "'SPLIT'", "'SPREADSHEET'", + "'SQLDATA'", "'SQLERROR'", "'SQLLDR'", "'SQL'", + null, "'SQL_MACRO'", "'SQL_TRACE'", "'SQL_TRANSLATION_PROFILE'", + "'SQRT'", "'STALE'", "'STANDALONE'", "'STANDARD'", + "'STANDARD_HASH'", "'STANDBY_MAX_DATA_DELAY'", + "'STANDBYS'", "'STANDBY'", "'STAR'", "'STAR_TRANSFORMATION'", + "'START'", "'STARTOF'", "'STARTUP'", "'STATEMENT_ID'", + "'STATEMENT_QUEUING'", "'STATEMENTS'", "'STATEMENT'", + "'STATE'", "'STATIC'", "'STATISTICS'", "'STATS_BINOMIAL_TEST'", + "'STATS_CROSSTAB'", "'STATS_F_TEST'", "'STATS_KS_TEST'", + "'STATS_MODE'", "'STATS_MW_TEST'", "'STATS_ONE_WAY_ANOVA'", + "'STATS_T_TEST_INDEP'", "'STATS_T_TEST_INDEPU'", + "'STATS_T_TEST_ONE'", "'STATS_T_TEST_PAIRED'", + "'STATS_WSR_TEST'", "'STDDEV_POP'", "'STDDEV_SAMP'", + "'STOP'", "'STORAGE'", "'STORE'", "'STREAMS'", + "'STREAM'", "'STRICT'", "'STRING'", "'STRIPE_COLUMNS'", + "'STRIPE_WIDTH'", "'STRIP'", "'STRUCTURE'", "'SUBMULTISET'", + "'SUBPARTITION_REL'", "'SUBPARTITIONS'", "'SUBPARTITION'", + "'SUBQUERIES'", "'SUBQUERY_PRUNING'", "'SUBSCRIBE'", + "'SUBSET'", "'SUBSTITUTABLE'", "'SUBSTR2'", "'SUBSTR4'", + "'SUBSTRB'", "'SUBSTRC'", "'SUBTYPE'", "'SUCCESSFUL'", + "'SUCCESS'", "'SUMMARY'", "'SUPPLEMENTAL'", "'SUSPEND'", + "'SWAP_JOIN_INPUTS'", "'SWITCHOVER'", "'SWITCH'", + "'SYNCHRONOUS'", "'SYNC'", "'SYNONYM'", "'SYS'", + "'SYSASM'", "'SYS_AUDIT'", "'SYSAUX'", "'SYSBACKUP'", + "'SYS_CHECKACL'", "'SYS_CHECK_PRIVILEGE'", "'SYS_CONNECT_BY_PATH'", + "'SYS_CONTEXT'", "'SYSDATE'", "'SYSDBA'", "'SYS_DBURIGEN'", + "'SYSDG'", "'SYS_DL_CURSOR'", "'SYS_DM_RXFORM_CHR'", + "'SYS_DM_RXFORM_NUM'", "'SYS_DOM_COMPARE'", "'SYS_DST_PRIM2SEC'", + "'SYS_DST_SEC2PRIM'", "'SYS_ET_BFILE_TO_RAW'", + "'SYS_ET_BLOB_TO_IMAGE'", "'SYS_ET_IMAGE_TO_BLOB'", + "'SYS_ET_RAW_TO_BFILE'", "'SYS_EXTPDTXT'", "'SYS_EXTRACT_UTC'", + "'SYS_FBT_INSDEL'", "'SYS_FILTER_ACLS'", "'SYS_FNMATCHES'", + "'SYS_FNREPLACE'", "'SYS_GET_ACLIDS'", "'SYS_GET_COL_ACLIDS'", + "'SYS_GET_PRIVILEGES'", "'SYS_GETTOKENID'", "'SYS_GETXTIVAL'", + "'SYS_GUID'", "'SYSGUID'", "'SYSKM'", "'SYS_MAKE_XMLNODEID'", + "'SYS_MAKEXML'", "'SYS_MKXMLATTR'", "'SYS_MKXTI'", + "'SYSOBJ'", "'SYS_OP_ADT2BIN'", "'SYS_OP_ADTCONS'", + "'SYS_OP_ALSCRVAL'", "'SYS_OP_ATG'", "'SYS_OP_BIN2ADT'", + "'SYS_OP_BITVEC'", "'SYS_OP_BL2R'", "'SYS_OP_BLOOM_FILTER_LIST'", + "'SYS_OP_BLOOM_FILTER'", "'SYS_OP_C2C'", "'SYS_OP_CAST'", + "'SYS_OP_CEG'", "'SYS_OP_CL2C'", "'SYS_OP_COMBINED_HASH'", + "'SYS_OP_COMP'", "'SYS_OP_CONVERT'", "'SYS_OP_COUNTCHG'", + "'SYS_OP_CSCONV'", "'SYS_OP_CSCONVTEST'", "'SYS_OP_CSR'", + "'SYS_OP_CSX_PATCH'", "'SYS_OP_CYCLED_SEQ'", "'SYS_OP_DECOMP'", + "'SYS_OP_DESCEND'", "'SYS_OP_DISTINCT'", "'SYS_OP_DRA'", + "'SYS_OP_DUMP'", "'SYS_OP_DV_CHECK'", "'SYS_OP_ENFORCE_NOT_NULL$'", + "'SYSOPER'", "'SYS_OP_EXTRACT'", "'SYS_OP_GROUPING'", + "'SYS_OP_GUID'", "'SYS_OP_HASH'", "'SYS_OP_IIX'", + "'SYS_OP_ITR'", "'SYS_OP_KEY_VECTOR_CREATE'", "'SYS_OP_KEY_VECTOR_FILTER_LIST'", + "'SYS_OP_KEY_VECTOR_FILTER'", "'SYS_OP_KEY_VECTOR_SUCCEEDED'", + "'SYS_OP_KEY_VECTOR_USE'", "'SYS_OP_LBID'", "'SYS_OP_LOBLOC2BLOB'", + "'SYS_OP_LOBLOC2CLOB'", "'SYS_OP_LOBLOC2ID'", "'SYS_OP_LOBLOC2NCLOB'", + "'SYS_OP_LOBLOC2TYP'", "'SYS_OP_LSVI'", "'SYS_OP_LVL'", + "'SYS_OP_MAKEOID'", "'SYS_OP_MAP_NONNULL'", "'SYS_OP_MSR'", + "'SYS_OP_NICOMBINE'", "'SYS_OP_NIEXTRACT'", "'SYS_OP_NII'", + "'SYS_OP_NIX'", "'SYS_OP_NOEXPAND'", "'SYS_OP_NTCIMG$'", + "'SYS_OP_NUMTORAW'", "'SYS_OP_OIDVALUE'", "'SYS_OP_OPNSIZE'", + "'SYS_OP_PAR_1'", "'SYS_OP_PARGID_1'", "'SYS_OP_PARGID'", + "'SYS_OP_PAR'", "'SYS_OP_PART_ID'", "'SYS_OP_PIVOT'", + "'SYS_OP_R2O'", "'SYS_OP_RAWTONUM'", "'SYS_OP_RDTM'", + "'SYS_OP_REF'", "'SYS_OP_RMTD'", "'SYS_OP_ROWIDTOOBJ'", + "'SYS_OP_RPB'", "'SYS_OPTLOBPRBSC'", "'SYS_OP_TOSETID'", + "'SYS_OP_TPR'", "'SYS_OP_TRTB'", "'SYS_OPTXICMP'", + "'SYS_OPTXQCASTASNQ'", "'SYS_OP_UNDESCEND'", "'SYS_OP_VECAND'", + "'SYS_OP_VECBIT'", "'SYS_OP_VECOR'", "'SYS_OP_VECXOR'", + "'SYS_OP_VERSION'", "'SYS_OP_VREF'", "'SYS_OP_VVD'", + "'SYS_OP_XMLCONS_FOR_CSX'", "'SYS_OP_XPTHATG'", + "'SYS_OP_XPTHIDX'", "'SYS_OP_XPTHOP'", "'SYS_OP_XTXT2SQLT'", + "'SYS_OP_ZONE_ID'", "'SYS_ORDERKEY_DEPTH'", "'SYS_ORDERKEY_MAXCHILD'", + "'SYS_ORDERKEY_PARENT'", "'SYS_PARALLEL_TXN'", + "'SYS_PATHID_IS_ATTR'", "'SYS_PATHID_IS_NMSPC'", + "'SYS_PATHID_LASTNAME'", "'SYS_PATHID_LASTNMSPC'", + "'SYS_PATH_REVERSE'", "'SYS_PXQEXTRACT'", "'SYS_RAW_TO_XSID'", + "'SYS_RID_ORDER'", "'SYS_ROW_DELTA'", "'SYS_SC_2_XMLT'", + "'SYS_SYNRCIREDO'", "'SYSTEM_DEFINED'", "'SYSTEM'", + "'SYSTIMESTAMP'", "'SYS_TYPEID'", "'SYS_UMAKEXML'", + "'SYS_XMLANALYZE'", "'SYS_XMLCONTAINS'", "'SYS_XMLCONV'", + "'SYS_XMLEXNSURI'", "'SYS_XMLGEN'", "'SYS_XMLI_LOC_ISNODE'", + "'SYS_XMLI_LOC_ISTEXT'", "'SYS_XMLINSTR'", "'SYS_XMLLOCATOR_GETSVAL'", + "'SYS_XMLNODEID_GETCID'", "'SYS_XMLNODEID_GETLOCATOR'", + "'SYS_XMLNODEID_GETOKEY'", "'SYS_XMLNODEID_GETPATHID'", + "'SYS_XMLNODEID_GETPTRID'", "'SYS_XMLNODEID_GETRID'", + "'SYS_XMLNODEID_GETSVAL'", "'SYS_XMLNODEID_GETTID'", + "'SYS_XMLNODEID'", "'SYS_XMLT_2_SC'", "'SYS_XMLTRANSLATE'", + "'SYS_XMLTYPE2SQL'", "'SYS_XQ_ASQLCNV'", "'SYS_XQ_ATOMCNVCHK'", + "'SYS_XQBASEURI'", "'SYS_XQCASTABLEERRH'", "'SYS_XQCODEP2STR'", + "'SYS_XQCODEPEQ'", "'SYS_XQCON2SEQ'", "'SYS_XQCONCAT'", + "'SYS_XQDELETE'", "'SYS_XQDFLTCOLATION'", "'SYS_XQDOC'", + "'SYS_XQDOCURI'", "'SYS_XQDURDIV'", "'SYS_XQED4URI'", + "'SYS_XQENDSWITH'", "'SYS_XQERRH'", "'SYS_XQERR'", + "'SYS_XQESHTMLURI'", "'SYS_XQEXLOBVAL'", "'SYS_XQEXSTWRP'", + "'SYS_XQEXTRACT'", "'SYS_XQEXTRREF'", "'SYS_XQEXVAL'", + "'SYS_XQFB2STR'", "'SYS_XQFNBOOL'", "'SYS_XQFNCMP'", + "'SYS_XQFNDATIM'", "'SYS_XQFNLNAME'", "'SYS_XQFNNM'", + "'SYS_XQFNNSURI'", "'SYS_XQFNPREDTRUTH'", "'SYS_XQFNQNM'", + "'SYS_XQFNROOT'", "'SYS_XQFORMATNUM'", "'SYS_XQFTCONTAIN'", + "'SYS_XQFUNCR'", "'SYS_XQGETCONTENT'", "'SYS_XQINDXOF'", + "'SYS_XQINSERT'", "'SYS_XQINSPFX'", "'SYS_XQIRI2URI'", + "'SYS_XQLANG'", "'SYS_XQLLNMFRMQNM'", "'SYS_XQMKNODEREF'", + "'SYS_XQNILLED'", "'SYS_XQNODENAME'", "'SYS_XQNORMSPACE'", + "'SYS_XQNORMUCODE'", "'SYS_XQ_NRNG'", "'SYS_XQNSP4PFX'", + "'SYS_XQNSPFRMQNM'", "'SYS_XQPFXFRMQNM'", "'SYS_XQ_PKSQL2XML'", + "'SYS_XQPOLYABS'", "'SYS_XQPOLYADD'", "'SYS_XQPOLYCEL'", + "'SYS_XQPOLYCSTBL'", "'SYS_XQPOLYCST'", "'SYS_XQPOLYDIV'", + "'SYS_XQPOLYFLR'", "'SYS_XQPOLYMOD'", "'SYS_XQPOLYMUL'", + "'SYS_XQPOLYRND'", "'SYS_XQPOLYSQRT'", "'SYS_XQPOLYSUB'", + "'SYS_XQPOLYUMUS'", "'SYS_XQPOLYUPLS'", "'SYS_XQPOLYVEQ'", + "'SYS_XQPOLYVGE'", "'SYS_XQPOLYVGT'", "'SYS_XQPOLYVLE'", + "'SYS_XQPOLYVLT'", "'SYS_XQPOLYVNE'", "'SYS_XQREF2VAL'", + "'SYS_XQRENAME'", "'SYS_XQREPLACE'", "'SYS_XQRESVURI'", + "'SYS_XQRNDHALF2EVN'", "'SYS_XQRSLVQNM'", "'SYS_XQRYENVPGET'", + "'SYS_XQRYVARGET'", "'SYS_XQRYWRP'", "'SYS_XQSEQ2CON4XC'", + "'SYS_XQSEQ2CON'", "'SYS_XQSEQDEEPEQ'", "'SYS_XQSEQINSB'", + "'SYS_XQSEQRM'", "'SYS_XQSEQRVS'", "'SYS_XQSEQSUB'", + "'SYS_XQSEQTYPMATCH'", "'SYS_XQSTARTSWITH'", "'SYS_XQSTATBURI'", + "'SYS_XQSTR2CODEP'", "'SYS_XQSTRJOIN'", "'SYS_XQSUBSTRAFT'", + "'SYS_XQSUBSTRBEF'", "'SYS_XQTOKENIZE'", "'SYS_XQTREATAS'", + "'SYS_XQ_UPKXML2SQL'", "'SYS_XQXFORM'", "'SYS_XSID_TO_RAW'", + "'SYS_ZMAP_FILTER'", "'SYS_ZMAP_REFRESH'", "'T'", + "'TABLE_LOOKUP_BY_NL'", "'TABLESPACE_NO'", "'TABLESPACE'", + "'TABLES'", "'TABLE_STATS'", "'TABLE'", "'TABNO'", + "'TAG'", "'TANH'", "'TAN'", "'TBL$OR$IDX$PART$NUM'", + "'TEMPFILE'", "'TEMPLATE'", "'TEMPLATE_TABLE'", + "'TEMPORARY'", "'TEMP_TABLE'", "'TERMINATED'", + "'TEST'", "'TEXT'", "'TEXTFILE'", "'THAN'", "'THEN'", + "'THE'", "'THESE'", "'THREAD'", "'THROUGH'", "'TIER'", + "'TIES'", "'TIMEOUT'", "'TIMESTAMP_LTZ_UNCONSTRAINED'", + "'TIMESTAMP'", "'TIMESTAMP_TZ_UNCONSTRAINED'", + "'TIMESTAMP_UNCONSTRAINED'", "'TIMES'", "'TIME'", + "'TIMEZONE'", "'TIMEZONE_ABBR'", "'TIMEZONE_HOUR'", + "'TIMEZONE_MINUTE'", "'TIMEZONE_OFFSET'", "'TIMEZONE_REGION'", + "'TIME_ZONE'", "'TIMING'", "'TINYINT'", "'TIV_GB'", + "'TIV_SSF'", "'TO_ACLID'", "'TO_BINARY_DOUBLE'", + "'TO_BINARY_FLOAT'", "'TO_BLOB'", "'TO_CLOB'", + "'TO_DSINTERVAL'", "'TO_LOB'", "'TO_MULTI_BYTE'", + "'TO_NCHAR'", "'TO_NCLOB'", "'TO_NUMBER'", "'TOPLEVEL'", + "'TO_SINGLE_BYTE'", "'TO_TIMESTAMP'", "'TO_TIMESTAMP_TZ'", + "'TO_TIME'", "'TO_TIME_TZ'", "'TO'", "'TO_YMINTERVAL'", + "'TRACE'", "'TRACING'", "'TRACKING'", "'TRAILING'", + "'TRANSACTION'", "'TRANSFORM'", "'TRANSFORMS'", + "'TRANSFORM_DISTINCT_AGG'", "'TRANSITIONAL'", "'TRANSITION'", + "'TRANSLATE'", "'TRANSLATION'", "'TREAT'", "'TRIGGERS'", + "'TRIGGER'", "'TRUE'", "'TRUNCATE'", "'TRUNC'", + "'TRUSTED'", "'TRUST'", "'TUNING'", "'TX'", "'TYPES'", + "'TYPE'", "'TZ_OFFSET'", "'UB2'", "'UBA'", "'UCS2'", + "'UDF'", "'UID'", "'UNARCHIVED'", "'UNBOUNDED'", + "'UNBOUND'", "'UNCONDITIONAL'", "'UNDER'", "'UNDO'", + "'UNDROP'", "'UNIFORM'", "'UNION'", "'UNIONTYPE'", + "'UNIQUE'", "'UNISTR'", "'UNLIMITED'", "'UNLOAD'", + "'UNLOCK'", "'UNMATCHED'", "'UNNEST_INNERJ_DISTINCT_VIEW'", + "'UNNEST_NOSEMIJ_NODISTINCTVIEW'", "'UNNEST_SEMIJ_VIEW'", + "'UNNEST'", "'UNPACKED'", "'UNPIVOT'", "'UNPLUG'", + "'UNPROTECTED'", "'UNQUIESCE'", "'UNRECOVERABLE'", + "'UNRESTRICTED'", "'UNSIGNED'", "'UNSUBSCRIBE'", + "'UNTIL'", "'UNUSABLE'", "'UNUSED'", "'UPDATABLE'", + "'UPDATED'", "'UPDATE'", "'UPDATEXML'", "'UPD_INDEXES'", + "'UPD_JOININDEX'", "'UPGRADE'", "'UPPER'", "'UPSERT'", + "'UROWID'", "'USABLE'", "'USAGE'", "'USE_ANTI'", + "'USE_CONCAT'", "'USE_CUBE'", "'USE_HASH_AGGREGATION'", + "'USE_HASH_GBY_FOR_PUSHDOWN'", "'USE_HASH'", "'USE_HIDDEN_PARTITIONS'", + "'USE_INVISIBLE_INDEXES'", "'USE_MERGE_CARTESIAN'", + "'USE_MERGE'", "'USE_NL'", "'USE_NL_WITH_INDEX'", + "'USE_PRIVATE_OUTLINES'", "'USER_DATA'", "'USER_DEFINED'", + "'USERENV'", "'USERGROUP'", "'USER_RECYCLEBIN'", + "'USERS'", "'USER_TABLESPACES'", "'USER'", "'USE_SEMI'", + "'USE_STORED_OUTLINES'", "'USE_TTT_FOR_GSETS'", + "'USE'", "'USE_VECTOR_AGGREGATION'", "'USE_WEAK_NAME_RESL'", + "'USING_NO_EXPAND'", "'USING_NLS_COMP'", "'USING'", + "'UTF16BE'", "'UTF16LE'", "'UTF32'", "'UTF8'", + "'V1'", "'V2'", "'VALIDATE'", "'VALIDATE_CONVERSION'", + "'VALIDATION'", "'VALID_TIME_END'", "'VALUES'", + "'VALUE'", "'VARCHAR2'", "'VARCHAR'", "'VARCHARC'", + "'VARIABLE'", "'VARRAW'", "'VARRAWC'", "'VAR_POP'", + "'VARRAYS'", "'VARRAY'", "'VAR_SAMP'", "'VARYING'", + "'VECTOR_READ_TRACE'", "'VECTOR_READ'", "'VECTOR_TRANSFORM_DIMS'", + "'VECTOR_TRANSFORM_FACT'", "'VECTOR_TRANSFORM'", + "'VERIFIER'", "'VERIFY'", "'VERSIONING'", "'VERSIONS_ENDSCN'", + "'VERSIONS_ENDTIME'", "'VERSIONS_OPERATION'", "'VERSIONS_STARTSCN'", + "'VERSIONS_STARTTIME'", "'VERSIONS'", "'VERSIONS_XID'", + "'VERSION'", "'VIEW'", "'VIOLATION'", "'VIRTUAL'", + "'VISIBILITY'", "'VISIBLE'", "'VOLUME'", "'VSIZE'", + "'WAIT'", "'WALLET'", "'WARNING'", "'WEEKS'", "'WEEK'", + "'WELLFORMED'", "'WHENEVER'", "'WHEN'", "'WHERE'", + "'WHILE'", "'WHITESPACE'", "'WIDTH_BUCKET'", "'WITHIN'", + "'WITHOUT'", "'WITH_PLSQL'", "'WITH'", "'WORK'", + "'WORKERID'", "'WRAPPED'", "'WRAPPER'", "'WRITE'", + "'XDB_FASTPATH_INSERT'", "'XDB'", "'X_DYN_PRUNE'", + "'XID'", "'XML2OBJECT'", "'XMLAGG'", "'XMLATTRIBUTES'", + "'XMLCAST'", "'XMLCDATA'", "'XMLCOLATTVAL'", "'XMLCOMMENT'", + "'XMLCONCAT'", "'XMLDIFF'", "'XML_DML_RWT_STMT'", + "'XMLELEMENT'", "'XMLEXISTS2'", "'XMLEXISTS'", + "'XMLFOREST'", "'XMLINDEX'", "'XMLINDEX_REWRITE_IN_SELECT'", + "'XMLINDEX_REWRITE'", "'XMLINDEX_SEL_IDX_TBL'", + "'XMLISNODE'", "'XMLISVALID'", "'XMLNAMESPACES'", + "'XMLPARSE'", "'XMLPATCH'", "'XMLPI'", "'XMLQUERYVAL'", + "'XMLQUERY'", "'XMLROOT'", "'XMLSCHEMA'", "'XMLSERIALIZE'", + "'XMLTABLE'", "'XMLTAG'", "'XMLTRANSFORMBLOB'", + "'XMLTRANSFORM'", "'XMLTYPE'", "'XML'", "'XPATHTABLE'", + "'XS_SYS_CONTEXT'", "'XS'", "'XTRANSPORT'", "'YEARS'", + "'YEAR'", "'YEAR_TO_MONTH'", "'YES'", "'YMINTERVAL_UNCONSTRAINED'", + "'ZONEMAP'", "'ZONE'", "'ZONED'", "'PREDICTION'", + "'PREDICTION_BOUNDS'", "'PREDICTION_COST'", "'PREDICTION_DETAILS'", + "'PREDICTION_PROBABILITY'", "'PREDICTION_SET'", + "'BLOCKCHAIN'", "'COLLATE'", "'COLLATION'", "'DEFINITION'", + "'DUPLICATED'", "'EXTENDED'", "'HASHING'", "'IDLE'", + "'IMMUTABLE'", "'ORACLE_DATAPUMP'", "'ORACLE_HDFS'", + "'ORACLE_HIVE'", "'ORACLE_LOADER'", "'\"SHA2_512\"'", + "'SHARDED'", "'\"V1\"'", "'ISOLATE'", "'ROOT'", + "'UNITE'", "'ALGORITHM'", "'CUME_DIST'", "'DENSE_RANK'", + "'LISTAGG'", "'PERCENT_RANK'", "'PERCENTILE_CONT'", + "'PERCENTILE_DISC'", "'RANK'", "'AVG'", "'CORR'", + "'COVAR_'", "'DECODE'", "'LAG'", "'LAG_DIFF'", + "'LAG_DIFF_PERCENT'", "'LEAD'", "'MAX'", "'MEDIAN'", + "'MEMOPTIMIZE'", "'MIN'", "'NTILE'", "'NVL'", "'RATIO_TO_REPORT'", + "'REGR_'", "'ROUND'", "'ROW_NUMBER'", "'SUBSTR'", + "'TO_CHAR'", "'TRIM'", "'SUM'", "'STDDEV'", "'VAR_'", + "'VARIANCE'", "'LEAST'", "'GREATEST'", "'TO_DATE'", + "'CHARSETID'", "'CHARSETFORM'", "'DURATION'", "'EXTEND'", + "'MAXLEN'", "'PERSISTABLE'", "'POLYMORPHIC'", "'STRUCT'", + "'TDO'", "'WM_CONCAT'", null, null, null, "'..'", + "'.'", null, null, null, null, "'%'", "'&'", "'('", + "')'", "'**'", "'*'", "'+'", "'-'", "','", "'/'", + "'@'", "':='", "'#'", "'{'", "'}'", "'''", null, + null, "'^'", "'~'", "'!'", "'>'", "'<'", "':'", + "';'", "'|'", "'='", "'['", "']'", "'_'" ]; + static symbolicNames = [ null, "ABORT", "ABS", "ABSENT", "ACCESS", "ACCESSED", + "ACCESSIBLE", "ACCOUNT", "ACL", "ACOS", "ACROSS", + "ACTION", "ACTIONS", "ACTIVATE", "ACTIVE", "ACTIVE_COMPONENT", + "ACTIVE_DATA", "ACTIVE_FUNCTION", "ACTIVE_TAG", + "ACTIVITY", "ADAPTIVE_PLAN", "ADD", "ADD_COLUMN", + "ADD_GROUP", "ADD_MONTHS", "ADJ_DATE", "ADMIN", + "ADMINISTER", "ADMINISTRATOR", "ADVANCED", "ADVISE", + "ADVISOR", "AFD_DISKSTRING", "AFTER", "AGENT", + "AGGREGATE", "A_LETTER", "ALIAS", "ALL", "ALLOCATE", + "ALLOW", "ALL_ROWS", "ALTER", "ALTERNATE", "ALWAYS", + "ANALYTIC", "ANALYZE", "ANCESTOR", "ANCILLARY", + "AND", "AND_EQUAL", "ANNOTATIONS", "ANOMALY", + "ANSI_REARCH", "ANTIJOIN", "ANY", "ANYSCHEMA", + "APPEND", "APPENDCHILDXML", "APPEND_VALUES", "APPLICATION", + "APPLY", "APPROX_COUNT_DISTINCT", "ARCHIVAL", + "ARCHIVE", "ARCHIVED", "ARCHIVELOG", "ARE", "ARRAY", + "AS", "ASC", "ASCII", "ASCIISTR", "ASIN", "ASIS", + "ASSEMBLY", "ASSIGN", "ASSOCIATE", "ASYNC", "ASYNCHRONOUS", + "ATAN2", "ATAN", "AT", "ATTRIBUTE", "ATTRIBUTES", + "AUDIT", "AUTHENTICATED", "AUTHENTICATION", "AUTHID", + "AUTHORIZATION", "AUTOALLOCATE", "AUTO", "AUTOBACKUP", + "AUTOEXTEND", "AUTO_LOGIN", "AUTOMATIC", "AUTONOMOUS_TRANSACTION", + "AUTO_REOPTIMIZE", "AVAILABILITY", "AVRO", "BACKGROUND", + "BACKINGFILE", "BACKUP", "BACKUPS", "BACKUPSET", + "BADFILE", "BASIC", "BASICFILE", "BATCH", "BATCHSIZE", + "BATCH_TABLE_ACCESS_BY_ROWID", "BECOME", "BEFORE", + "BEGIN", "BEGINNING", "BEGIN_OUTLINE_DATA", "BEHALF", + "BEQUEATH", "BETWEEN", "BFILE", "BFILENAME", "BIG", + "BIGFILE", "BIGINT", "BINARY", "BINARY_DOUBLE", + "BINARY_DOUBLE_INFINITY", "BINARY_DOUBLE_NAN", + "BINARY_FLOAT", "BINARY_FLOAT_INFINITY", "BINARY_FLOAT_NAN", + "BINARY_INTEGER", "BIND_AWARE", "BINDING", "BIN_TO_NUM", + "BITAND", "BITMAP_AND", "BITMAP", "BITMAPS", "BITMAP_TREE", + "BITS", "BLANKS", "BLOB", "BLOCK", "BLOCK_RANGE", + "BLOCKS", "BLOCKSIZE", "BODY", "BOOLEAN", "BOTH", + "BOUND", "BRANCH", "BREADTH", "BROADCAST", "BSON", + "BUFFER", "BUFFER_CACHE", "BUFFER_POOL", "BUILD", + "BULK", "BY", "BYPASS_RECURSIVE_CHECK", "BYPASS_UJVC", + "BYTE", "BYTES", "BYTEORDERMARK", "CACHE", "CACHE_CB", + "CACHE_INSTANCES", "CACHE_TEMP_TABLE", "CACHING", + "CALCULATED", "CALLBACK", "CALL", "CANCEL", "CANONICAL", + "CAPACITY", "CAPTION", "CARDINALITY", "CASCADE", + "CASE", "CAST", "CASESENSITIVE", "CATEGORY", "CDBDEFAULT", + "CEIL", "CELL_FLASH_CACHE", "CERTIFICATE", "CFILE", + "CHAINED", "CHANGE", "CHANGETRACKING", "CHANGE_DUPKEY_ERROR_INDEX", + "CHARACTER", "CHARACTERS", "CHARACTERSET", "CHAR", + "CHAR_CS", "CHARTOROWID", "CHECK_ACL_REWRITE", + "CHECK", "CHECKPOINT", "CHILD", "CHOOSE", "CHR", + "CHUNK", "CLASS", "CLASSIFICATION", "CLASSIFIER", + "CLAUSE", "CLEAN", "CLEANUP", "CLEAR", "C_LETTER", + "CLIENT", "CLOB", "CLONE", "CLOSE_CACHED_OPEN_CURSORS", + "CLOSE", "CLUSTER_BY_ROWID", "CLUSTER", "CLUSTER_DETAILS", + "CLUSTER_DISTANCE", "CLUSTER_ID", "CLUSTERING", + "CLUSTERING_FACTOR", "CLUSTER_PROBABILITY", "CLUSTER_SET", + "COALESCE", "COALESCE_SQ", "COARSE", "CO_AUTH_IND", + "COLD", "COLLECT", "COLLECTION", "COLUMNAR", "COLUMN_AUTH_INDICATOR", + "COLUMN", "COLUMNS", "COLUMN_STATS", "COLUMN_VALUE", + "COMMENT", "COMMIT", "COMMITTED", "COMMON", "COMMON_DATA", + "COMPACT", "COMPATIBLE", "COMPATIBILITY", "COMPILE", + "COMPLETE", "COMPLIANCE", "COMPONENT", "COMPONENTS", + "COMPOSE", "COMPOSITE", "COMPOSITE_LIMIT", "COMPOUND", + "COMPRESS", "COMPRESSION", "COMPUTE", "CONCAT", + "CON_DBID_TO_ID", "CONDITIONAL", "CONDITION", + "CONFIRM", "CONFORMING", "CON_GUID_TO_ID", "CON_ID", + "CON_NAME_TO_ID", "CONNECT_BY_CB_WHR_ONLY", "CONNECT_BY_COMBINE_SW", + "CONNECT_BY_COST_BASED", "CONNECT_BY_ELIM_DUPS", + "CONNECT_BY_FILTERING", "CONNECT_BY_ISCYCLE", + "CONNECT_BY_ISLEAF", "CONNECT_BY_ROOT", "CONNECT", + "CONNECT_TIME", "CONSIDER", "CONSISTENT", "CONSTANT", + "CONST", "CONSTRAINT", "CONSTRAINTS", "CONSTRUCTOR", + "CONTAINER", "CONTAINERS", "CONTAINERS_DEFAULT", + "CONTAINER_DATA", "CONTAINER_MAP", "CONTENT", + "CONTENTS", "CONTEXT", "CONTINUE", "CONTROLFILE", + "CON_UID_TO_ID", "CONVERT", "CONVERSION", "COOKIE", + "COPY", "CORR_K", "CORR_S", "CORRUPTION", "CORRUPT_XID_ALL", + "CORRUPT_XID", "COS", "COSH", "COST", "COST_XML_QUERY_REWRITE", + "COUNT", "COUNTED", "COVAR_POP", "COVAR_SAMP", + "CPU_COSTING", "CPU_PER_CALL", "CPU_PER_SESSION", + "CRASH", "CREATE", "CREATE_FILE_DEST", "CREATE_STORED_OUTLINES", + "CREATION", "CREDENTIAL", "CRITICAL", "CROSS", + "CROSSEDITION", "CSCONVERT", "CSV", "CUBE_AJ", + "CUBE", "CUBE_GB", "CUBE_SJ", "CUME_DISTM", "CURRENT", + "CURRENT_DATE", "CURRENT_SCHEMA", "CURRENT_TIME", + "CURRENT_TIMESTAMP", "CURRENT_USER", "CURRENTV", + "CURSOR", "CURSOR_SHARING_EXACT", "CURSOR_SPECIFIC_SEGMENT", + "CUSTOMDATUM", "CV", "CYCLE", "DANGLING", "DATABASE", + "DATA", "DATAFILE", "DATAFILES", "DATAGUARDCONFIG", + "DATAMOVEMENT", "DATAOBJNO", "DATAOBJ_TO_MAT_PARTITION", + "DATAOBJ_TO_PARTITION", "DATAPUMP", "DATA_SECURITY_REWRITE_LIMIT", + "DATE", "DATE_CACHE", "DATE_FORMAT", "DATE_MODE", + "DAY", "DAYS", "DAY_TO_SECOND", "DBA", "DBA_RECYCLEBIN", + "DBLINK", "DBMS_STATS", "DB_ROLE_CHANGE", "DBTIMEZONE", + "DB_UNIQUE_NAME", "DB_VERSION", "DDL", "DEALLOCATE", + "DEBUG", "DEBUGGER", "DEC", "DECIMAL", "DECLARE", + "DECOMPOSE", "DECORRELATE", "DECR", "DECREMENT", + "DECRYPT", "DEDUPLICATE", "DEFAULT", "DEFAULTIF", + "DEFAULTS", "DEFAULT_COLLATION", "DEFAULT_CREDENTIAL", + "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINE", + "DEFINER", "DEGREE", "DELAY", "DELEGATE", "DELETE_ALL", + "DELETE", "DELETEXML", "DELIMITED", "DEMAND", + "DENSE_RANKM", "DEPENDENT", "DEPRECATE", "DEPTH", + "DEQUEUE", "DEREF", "DEREF_NO_REWRITE", "DESC", + "DESCRIPTION", "DESTROY", "DETACHED", "DETECTED", + "DETERMINES", "DETERMINISTIC", "DICTIONARY", "DIMENSION", + "DIMENSIONS", "DIRECTIO", "DIRECT_LOAD", "DIRECTORY", + "DIRECT_PATH", "DISABLE_ALL", "DISABLE", "DISABLED", + "DISABLE_DIRECTORY_LINK_CHECK", "DISABLE_PARALLEL_DML", + "DISABLE_PRESET", "DISABLE_RPKE", "DISALLOW", + "DISASSOCIATE", "DISCARD", "DISCARDFILE", "DISCONNECT", + "DISK", "DISKGROUP", "DISKGROUP_PLUS", "DISKS", + "DISMOUNT", "DISTINCT", "DISTINGUISHED", "DISTRIBUTED", + "DISTRIBUTE", "DML", "DML_UPDATE", "DNFS_DISABLE", + "DNFS_ENABLE", "DNFS_READBUFFERS", "DOCFIDELITY", + "DOCUMENT", "DOLLAR_ELSE", "DOLLAR_ELSIF", "DOLLAR_END", + "DOLLAR_ERROR", "DOLLAR_IF", "DOLLAR_THEN", "DOMAIN_INDEX_FILTER", + "DOMAIN_INDEX_NO_SORT", "DOMAIN_INDEX_SORT", "DOUBLE", + "DOWNGRADE", "DRIVING_SITE", "DROP_COLUMN", "DROP", + "DROP_GROUP", "DSINTERVAL_UNCONSTRAINED", "DST_UPGRADE_INSERT_CONV", + "DUMP", "DUMPSET", "DUPLICATE", "DV", "DYNAMIC", + "DYNAMIC_SAMPLING", "DYNAMIC_SAMPLING_EST_CDN", + "E_LETTER", "EACH", "EDITIONABLE", "EDITION", + "EDITIONING", "EDITIONS", "ELEMENT", "ELIM_GROUPBY", + "ELIMINATE_JOIN", "ELIMINATE_OBY", "ELIMINATE_OUTER_JOIN", + "ELSE", "ELSIF", "EM", "EMBEDDED", "EMPTY_BLOB", + "EMPTY_CLOB", "EMPTY_", "ENABLE_ALL", "ENABLE", + "ENABLED", "ENABLE_PARALLEL_DML", "ENABLE_PRESET", + "ENCLOSED", "ENCODING", "ENCRYPT", "ENCRYPTION", + "ENCRYPTPASSWORDISNULL", "END", "END_OUTLINE_DATA", + "ENDIAN", "ENFORCED", "ENFORCE", "ENQUEUE", "ENTERPRISE", + "ENTITYESCAPING", "ENTRY", "EQUIPART", "ERR", + "ERROR_ARGUMENT", "ERROR", "ERROR_ON_OVERLAP_TIME", + "ERRORS", "ERROR_INDEX", "ERROR_CODE", "ESCAPE", + "ESCAPED", "ESTIMATE", "EVAL", "EVALNAME", "EVALUATE", + "EVALUATION", "EVENTS", "EVERY", "EXCEPT", "EXCEPTION", + "EXCEPTION_INIT", "EXCEPTIONS", "EXCHANGE", "EXCLUDE", + "EXCLUDING", "EXCLUSIVE", "EXECUTE", "EXEMPT", + "EXISTING", "EXISTS", "EXISTSNODE", "EXIT", "EXPAND_GSET_TO_UNION", + "EXPAND_TABLE", "EXP", "EXPIRE", "EXPLAIN", "EXPLOSION", + "EXPORT", "EXPR_CORR_CHECK", "EXPRESS", "EXTENDS", + "EXTENT", "EXTENTS", "EXTERNAL", "EXTERNALLY", + "EXTRACTCLOBXML", "EXTRACT", "EXTRACTVALUE", "EXTRA", + "FACILITY", "FACT", "FACTOR", "FACTORIZE_JOIN", + "FAILED", "FAILED_LOGIN_ATTEMPTS", "FAILGROUP", + "FAILOVER", "FAILURE", "FALSE", "FAMILY", "FAR", + "FAST", "FASTSTART", "FBTSCAN", "FEATURE", "FEATURE_DETAILS", + "FEATURE_ID", "FEATURE_SET", "FEATURE_VALUE", + "FETCH", "FIELD", "FIELDS", "FILE", "FILE_NAME_CONVERT", + "FILEGROUP", "FILESTORE", "FILESYSTEM_LIKE_LOGGING", + "FILTER", "FINAL", "FINE", "FINISH", "FIRST", + "FIRSTM", "FIRST_ROWS", "FIRST_VALUE", "FIXED", + "FIXED_VIEW_DATA", "FLAGGER", "FLASHBACK", "FLASH_CACHE", + "FLOAT", "FLOB", "FLEX", "FLOOR", "FLUSH", "FOLDER", + "FOLLOWING", "FOLLOWS", "FORALL", "FORCE", "FORCE_XML_QUERY_REWRITE", + "FOREIGN", "FOREVER", "FOR", "FORMAT", "FORWARD", + "FRAGMENT_NUMBER", "FREELIST", "FREELISTS", "FREEPOOLS", + "FRESH", "FROM", "FROM_TZ", "FULL", "FULL_OUTER_JOIN_TO_OUTER", + "FUNCTION", "FUNCTIONS", "FTP", "G_LETTER", "GATHER_OPTIMIZER_STATISTICS", + "GATHER_PLAN_STATISTICS", "GBY_CONC_ROLLUP", "GBY_PUSHDOWN", + "GENERATED", "GET", "GLOBAL", "GLOBALLY", "GLOBAL_NAME", + "GLOBAL_TOPIC_ENABLED", "GOTO", "GRANT", "GROUP_BY", + "GROUP", "GROUP_ID", "GROUPING", "GROUPING_ID", + "GROUPS", "GUARANTEED", "GUARANTEE", "GUARD", + "HADOOP_TRAILERS", "HALF_YEARS", "HASH_AJ", "HASH", + "HASHKEYS", "HASH_SJ", "HAVING", "HEADER", "HEAP", + "HELP", "HEXTORAW", "HEXTOREF", "HIDDEN_KEYWORD", + "HIDE", "HIER_ORDER", "HIERARCHICAL", "HIERARCHIES", + "HIERARCHY", "HIGH", "HINTSET_BEGIN", "HINTSET_END", + "HOT", "HOUR", "HOURS", "HTTP", "HWM_BROKERED", + "HYBRID", "H_LETTER", "IDENTIFIED", "IDENTIFIER", + "IDENTITY", "IDGENERATORS", "ID", "IDLE_TIME", + "IF", "IGNORE", "IGNORE_CHARS_AFTER_EOR", "IGNORE_OPTIM_EMBEDDED_HINTS", + "IGNORE_ROW_ON_DUPKEY_INDEX", "IGNORE_WHERE_CLAUSE", + "ILM", "IMMEDIATE", "IMPACT", "IMPORT", "INACTIVE", + "INACTIVE_ACCOUNT_TIME", "INCLUDE", "INCLUDE_VERSION", + "INCLUDING", "INCREMENTAL", "INCREMENT", "INCR", + "INDENT", "INDEX_ASC", "INDEX_COMBINE", "INDEX_DESC", + "INDEXED", "INDEXES", "INDEX_FFS", "INDEX_FILTER", + "INDEX", "INDEXING", "INDEX_JOIN", "INDEX_ROWS", + "INDEX_RRS", "INDEX_RS_ASC", "INDEX_RS_DESC", + "INDEX_RS", "INDEX_SCAN", "INDEX_SKIP_SCAN", "INDEX_SS_ASC", + "INDEX_SS_DESC", "INDEX_SS", "INDEX_STATS", "INDEXTYPE", + "INDEXTYPES", "INDICATOR", "INDICES", "INFINITE", + "INFORMATIONAL", "INHERIT", "IN", "INITCAP", "INITIAL", + "INITIALIZED", "INITIALLY", "INITRANS", "INLINE", + "INLINE_XMLTYPE_NT", "INMEMORY", "IN_MEMORY_METADATA", + "INMEMORY_PRUNING", "INNER", "INOUT", "INPLACE", + "INPUTFORMAT", "INSERTCHILDXMLAFTER", "INSERTCHILDXMLBEFORE", + "INSERTCHILDXML", "INSERT", "INSERTXMLAFTER", + "INSERTXMLBEFORE", "INSTANCE", "INSTANCES", "INSTANTIABLE", + "INSTANTLY", "INSTEAD", "INSTR2", "INSTR4", "INSTRB", + "INSTRC", "INSTR", "INTEGER", "INTERLEAVED", "INTERMEDIATE", + "INTERNAL_CONVERT", "INTERNAL_USE", "INTERPRETED", + "INTERSECT", "INTERVAL", "INT", "INTERNAL", "INTO", + "INVALIDATE", "INVALIDATION", "INVISIBLE", "IN_XQUERY", + "IO_OPTIONS", "IS", "IS_LEAF", "ISOLATION", "ISOLATION_LEVEL", + "ITEMS", "ITERATE", "ITERATION_NUMBER", "JAVA", + "JOB", "JOIN", "JSON_ARRAYAGG", "JSON_ARRAY", + "JSON_EQUAL", "JSON_EXISTS2", "JSON_EXISTS", "JSONGET", + "JSON", "JSON_OBJECTAGG", "JSON_OBJECT", "JSONPARSE", + "JSON_QUERY", "JSON_SERIALIZE", "JSON_TABLE", + "JSON_TEXTCONTAINS2", "JSON_TEXTCONTAINS", "JSON_TRANSFORM", + "JSON_VALUE", "K_LETTER", "KEEP_DUPLICATES", "KEEP", + "KERBEROS", "KEY", "KEY_LENGTH", "KEYSIZE", "KEYS", + "KEYSTORE", "KILL", "LABEL", "LANGUAGE", "LAST_DAY", + "LAST", "LAST_VALUE", "LATERAL", "LATEST", "LAX", + "LAYER", "LDAP_REGISTRATION_ENABLED", "LDAP_REGISTRATION", + "LDAP_REG_SYNC_INTERVAL", "LDRTRIM", "LEAF", "LEAD_CDB", + "LEAD_CDB_URI", "LEADING", "LEFT", "LENGTH2", + "LENGTH4", "LENGTHB", "LENGTHC", "LENGTH", "LESS", + "LEVEL", "LEVEL_NAME", "LEVELS", "LIBRARY", "LIFECYCLE", + "LIFE", "LIFETIME", "LIKE2", "LIKE4", "LIKEC", + "LIKE_EXPAND", "LIKE", "LIMIT", "LINEAR", "LINES", + "LINK", "LIST", "LITTLE", "LLS", "LN", "LNNVL", + "LOAD", "LOB", "LOBFILE", "LOBNVL", "LOBS", "LOCAL_INDEXES", + "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATION", + "LOCATOR", "LOCKDOWN", "LOCKED", "LOCKING", "LOCK", + "LOGFILE", "LOGFILES", "LOGGING", "LOGICAL", "LOGICAL_READS_PER_CALL", + "LOGICAL_READS_PER_SESSION", "LOG", "LOGMINING", + "LOGOFF", "LOGON", "LOG_READ_ONLY_VIOLATIONS", + "LONG", "LOOP", "LOST", "LOWER", "LOW", "LPAD", + "LRTRIM", "LTRIM", "M_LETTER", "MAIN", "MAKE_REF", + "MANAGED", "MANAGE", "MANAGEMENT", "MANAGER", + "MANDATORY", "MANUAL", "MAP", "MAPPING", "MASK", + "MASTER", "MATCHED", "MATCHES", "MATCH", "MATCH_NUMBER", + "MATCH_RECOGNIZE", "MATERIALIZED", "MATERIALIZE", + "MAXARCHLOGS", "MAXDATAFILES", "MAXEXTENTS", "MAXIMIZE", + "MAXINSTANCES", "MAXLOGFILES", "MAXLOGHISTORY", + "MAXLOGMEMBERS", "MAX_SHARED_TEMP_SIZE", "MAXSIZE", + "MAXTRANS", "MAXVALUE", "MEASURE", "MEASURES", + "MEDIUM", "MEMBER", "MEMBER_CAPTION", "MEMBER_DESCRIPTION", + "MEMBER_NAME", "MEMBER_UNIQUE_NAME", "MEMCOMPRESS", + "MEMORY", "MERGEACTIONS", "MERGE_AJ", "MERGE_CONST_ON", + "MERGE", "MERGE_SJ", "METADATA", "METHOD", "MIGRATE", + "MIGRATION", "MINEXTENTS", "MINIMIZE", "MINIMUM", + "MINING", "MINUS", "MINUS_NULL", "MINUTE", "MINUTES", + "MINVALUE", "MIRRORCOLD", "MIRRORHOT", "MIRROR", + "MISSING", "MISMATCH", "MLSLABEL", "MODEL_COMPILE_SUBQUERY", + "MODEL_DONTVERIFY_UNIQUENESS", "MODEL_DYNAMIC_SUBQUERY", + "MODEL_MIN_ANALYSIS", "MODEL", "MODEL_NB", "MODEL_NO_ANALYSIS", + "MODEL_PBY", "MODEL_PUSH_REF", "MODEL_SV", "MODE", + "MODIFICATION", "MODIFY_COLUMN_TYPE", "MODIFY", + "MOD", "MODULE", "MONITORING", "MONITOR", "MONTH", + "MONTHS_BETWEEN", "MONTHS", "MOUNT", "MOUNTPATH", + "MOUNTPOINT", "MOVEMENT", "MOVE", "MULTIDIMENSIONAL", + "MULTISET", "MV_MERGE", "NAMED", "NAME", "NAMESPACE", + "NAN_", "NANVL", "NATIONAL", "NATIVE_FULL_OUTER_JOIN", + "NATIVE", "NATURAL", "NATURALN", "NAV", "NCHAR_CS", + "NCHAR", "NCHR", "NCLOB", "NEEDED", "NEG", "NESTED", + "NESTED_TABLE_FAST_INSERT", "NESTED_TABLE_GET_REFS", + "NESTED_TABLE_ID", "NESTED_TABLE_SET_REFS", "NESTED_TABLE_SET_SETID", + "NETWORK", "NEVER", "NEW", "NEWLINE_", "NEW_TIME", + "NEXT_DAY", "NEXT", "NL_AJ", "NLJ_BATCHING", "NLJ_INDEX_FILTER", + "NLJ_INDEX_SCAN", "NLJ_PREFETCH", "NLS_CALENDAR", + "NLS_CHARACTERSET", "NLS_CHARSET_DECL_LEN", "NLS_CHARSET_ID", + "NLS_CHARSET_NAME", "NLS_COMP", "NLS_CURRENCY", + "NLS_DATE_FORMAT", "NLS_DATE_LANGUAGE", "NLS_INITCAP", + "NLS_ISO_CURRENCY", "NL_SJ", "NLS_LANG", "NLS_LANGUAGE", + "NLS_LENGTH_SEMANTICS", "NLS_LOWER", "NLS_NCHAR_CONV_EXCP", + "NLS_NUMERIC_CHARACTERS", "NLS_SORT", "NLSSORT", + "NLS_SPECIAL_CHARS", "NLS_TERRITORY", "NLS_UPPER", + "NO_ACCESS", "NO_ADAPTIVE_PLAN", "NO_ANSI_REARCH", + "NOAPPEND", "NOARCHIVELOG", "NOAUDIT", "NOBADFILE", + "NO_AUTO_REOPTIMIZE", "NO_BASETABLE_MULTIMV_REWRITE", + "NO_BATCH_TABLE_ACCESS_BY_ROWID", "NO_BIND_AWARE", + "NO_BUFFER", "NOCACHE", "NOCHECK", "NO_CARTESIAN", + "NO_CHECK_ACL_REWRITE", "NO_CLUSTER_BY_ROWID", + "NO_CLUSTERING", "NO_COALESCE_SQ", "NO_COMMON_DATA", + "NOCOMPRESS", "NO_CONNECT_BY_CB_WHR_ONLY", "NO_CONNECT_BY_COMBINE_SW", + "NO_CONNECT_BY_COST_BASED", "NO_CONNECT_BY_ELIM_DUPS", + "NO_CONNECT_BY_FILTERING", "NOCOPY", "NO_COST_XML_QUERY_REWRITE", + "NO_CPU_COSTING", "NOCPU_COSTING", "NOCYCLE", + "NO_DATA_SECURITY_REWRITE", "NO_DECORRELATE", + "NODELAY", "NODIRECTIO", "NODISCARDFILE", "NO_DOMAIN_INDEX_FILTER", + "NO_DST_UPGRADE_INSERT_CONV", "NO_ELIM_GROUPBY", + "NO_ELIMINATE_JOIN", "NO_ELIMINATE_OBY", "NO_ELIMINATE_OUTER_JOIN", + "NOENTITYESCAPING", "NO_EXPAND_GSET_TO_UNION", + "NO_EXPAND", "NO_EXPAND_TABLE", "NOEXTEND", "NO_FACT", + "NO_FACTORIZE_JOIN", "NO_FILTERING", "NOFORCE", + "NO_FULL_OUTER_JOIN_TO_OUTER", "NO_GATHER_OPTIMIZER_STATISTICS", + "NO_GBY_PUSHDOWN", "NOGUARANTEE", "NO_INDEX_FFS", + "NO_INDEX", "NO_INDEX_SS", "NO_INMEMORY", "NO_INMEMORY_PRUNING", + "NOKEEP", "NO_LOAD", "NOLOCAL", "NOLOG", "NOLOGFILE", + "NOLOGGING", "NOMAPPING", "NOMAXVALUE", "NO_MERGE", + "NOMINIMIZE", "NOMINVALUE", "NO_MODEL_PUSH_REF", + "NO_MONITORING", "NOMONITORING", "NO_MONITOR", + "NO_MULTIMV_REWRITE", "NO_NATIVE_FULL_OUTER_JOIN", + "NONBLOCKING", "NONEDITIONABLE", "NONE", "NONULLIF", + "NO_NLJ_BATCHING", "NO_NLJ_PREFETCH", "NO", "NONSCHEMA", + "NO_OBJECT_LINK", "NOORDER", "NO_ORDER_ROLLUPS", + "NO_OUTER_JOIN_TO_ANTI", "NO_OUTER_JOIN_TO_INNER", + "NOOVERRIDE", "NO_PARALLEL_INDEX", "NOPARALLEL_INDEX", + "NO_PARALLEL", "NOPARALLEL", "NO_PARTIAL_COMMIT", + "NO_PARTIAL_JOIN", "NO_PARTIAL_ROLLUP_PUSHDOWN", + "NOPARTITION", "NO_PLACE_DISTINCT", "NO_PLACE_GROUP_BY", + "NO_PQ_CONCURRENT_UNION", "NO_PQ_MAP", "NOPROMPT", + "NO_PQ_REPLICATE", "NO_PQ_SKEW", "NO_PRUNE_GSETS", + "NO_PULL_PRED", "NO_PUSH_PRED", "NO_PUSH_SUBQ", + "NO_PX_FAULT_TOLERANCE", "NO_PX_JOIN_FILTER", + "NO_QKN_BUFF", "NO_QUERY_TRANSFORMATION", "NO_REF_CASCADE", + "NORELOCATE", "NORELY", "NOREPAIR", "NOREPLAY", + "NORESETLOGS", "NO_RESULT_CACHE", "NOREVERSE", + "NO_REWRITE", "NOREWRITE", "NORMAL", "NO_ROOT_SW_FOR_LOCAL", + "NOROWDEPENDENCIES", "NOSCALE", "NOSCHEMACHECK", + "NOSEGMENT", "NO_SEMIJOIN", "NO_SEMI_TO_INNER", + "NO_SET_TO_JOIN", "NOSHARD", "NOSORT", "NO_SQL_TRANSLATION", + "NO_SQL_TUNE", "NO_STAR_TRANSFORMATION", "NO_STATEMENT_QUEUING", + "NO_STATS_GSETS", "NOSTRICT", "NO_SUBQUERY_PRUNING", + "NO_SUBSTRB_PAD", "NO_SWAP_JOIN_INPUTS", "NOSWITCH", + "NO_TABLE_LOOKUP_BY_NL", "NO_TEMP_TABLE", "NOTHING", + "NOTIFICATION", "NOTRIM", "NOT", "NO_TRANSFORM_DISTINCT_AGG", + "NO_UNNEST", "NO_USE_CUBE", "NO_USE_HASH_AGGREGATION", + "NO_USE_HASH_GBY_FOR_PUSHDOWN", "NO_USE_HASH", + "NO_USE_INVISIBLE_INDEXES", "NO_USE_MERGE", "NO_USE_NL", + "NO_USE_VECTOR_AGGREGATION", "NOVALIDATE", "NO_VECTOR_TRANSFORM_DIMS", + "NO_VECTOR_TRANSFORM_FACT", "NO_VECTOR_TRANSFORM", + "NOWAIT", "NO_XDB_FASTPATH_INSERT", "NO_XML_DML_REWRITE", + "NO_XMLINDEX_REWRITE_IN_SELECT", "NO_XMLINDEX_REWRITE", + "NO_XML_QUERY_REWRITE", "NO_ZONEMAP", "NTH_VALUE", + "NULLIF", "NULL_", "NULLS", "NUMBER", "NUMERIC", + "NUM_INDEX_KEYS", "NUMTODSINTERVAL", "NUMTOYMINTERVAL", + "NVARCHAR2", "NVL2", "OBJECT2XML", "OBJECT", "OBJ_ID", + "OBJNO", "OBJNO_REUSE", "OCCURENCES", "OFFLINE", + "OFF", "OFFSET", "OF", "OIDINDEX", "OID", "OLAP", + "OLD", "OLD_PUSH_PRED", "OLS", "OLTP", "OMIT", + "ONE", "ONLINE", "ONLINELOG", "ONLY", "ON", "OPAQUE", + "OPAQUE_TRANSFORM", "OPAQUE_XCANONICAL", "OPCODE", + "OPEN", "OPERATIONS", "OPERATOR", "OPT_ESTIMATE", + "OPTIMAL", "OPTIMIZE", "OPTIMIZER_FEATURES_ENABLE", + "OPTIMIZER_GOAL", "OPTION", "OPTIONALLY", "OPT_PARAM", + "ORA_BRANCH", "ORA_CHECK_ACL", "ORA_CHECK_PRIVILEGE", + "ORA_CLUSTERING", "ORADATA", "ORC", "ORACLE_DATE", + "ORACLE_NUMBER", "ORADEBUG", "ORA_DST_AFFECTED", + "ORA_DST_CONVERT", "ORA_DST_ERROR", "ORA_GET_ACLIDS", + "ORA_GET_PRIVILEGES", "ORA_HASH", "ORA_INVOKING_USERID", + "ORA_INVOKING_USER", "ORA_INVOKING_XS_USER_GUID", + "ORA_INVOKING_XS_USER", "ORA_RAWCOMPARE", "ORA_RAWCONCAT", + "ORA_ROWSCN", "ORA_ROWSCN_RAW", "ORA_ROWVERSION", + "ORA_TABVERSION", "ORA_WRITE_TIME", "ORDERED", + "ORDERED_PREDICATES", "ORDER", "ORDINALITY", "OR_EXPAND", + "ORGANIZATION", "OR", "OR_PREDICATES", "OSERROR", + "OTHER", "OUTER_JOIN_TO_ANTI", "OUTER_JOIN_TO_INNER", + "OUTER", "OUTLINE_LEAF", "OUTLINE", "OUTPUTFORMAT", + "OUT_OF_LINE", "OUT", "OVERFLOW_NOMOVE", "OVERFLOW_", + "OVERLAPS", "OVER", "OVERRIDE", "OVERRIDING", + "OWNER", "OWNERSHIP", "OWN", "P_LETTER", "PACKAGE", + "PACKAGES", "PARALLEL_ENABLE", "PARALLEL_INDEX", + "PARALLEL", "PARAMETERFILE", "PARAMETERS", "PARAM", + "PARENT", "PARENT_LEVEL_NAME", "PARENT_UNIQUE_NAME", + "PARITY", "PARQUET", "PARTIAL_JOIN", "PARTIALLY", + "PARTIAL", "PARTIAL_ROLLUP_PUSHDOWN", "PARTITION_HASH", + "PARTITION_LIST", "PARTITION", "PARTITION_RANGE", + "PARTITIONS", "PARTNUMINST", "PASSING", "PASSWORD_GRACE_TIME", + "PASSWORD_LIFE_TIME", "PASSWORD_LOCK_TIME", "PASSWORD", + "PASSWORD_REUSE_MAX", "PASSWORD_REUSE_TIME", "PASSWORD_ROLLOVER_TIME", + "PASSWORD_VERIFY_FUNCTION", "PAST", "PATCH", "PATH", + "PATH_PREFIX", "PATHS", "PATTERN", "PBL_HS_BEGIN", + "PBL_HS_END", "PCTFREE", "PCTINCREASE", "PCTTHRESHOLD", + "PCTUSED", "PCTVERSION", "PENDING", "PERCENT_FOUND", + "PERCENT_ISOPEN", "PERCENT_NOTFOUND", "PERCENT_KEYWORD", + "PERCENT_RANKM", "PERCENT_ROWCOUNT", "PERCENT_ROWTYPE", + "PERCENT_TYPE", "PERCENT_BULK_EXCEPTIONS", "PERCENT_BULK_ROWCOUNT", + "PERFORMANCE", "PERIOD_KEYWORD", "PERMANENT", + "PERMISSION", "PERMUTE", "PER", "PFILE", "PHYSICAL", + "PIKEY", "PIPELINED", "PIPE", "PIV_GB", "PIVOT", + "PIV_SSF", "PLACE_DISTINCT", "PLACE_GROUP_BY", + "PLAN", "PLSCOPE_SETTINGS", "PLS_INTEGER", "PLSQL_CCFLAGS", + "PLSQL_CODE_TYPE", "PLSQL_DEBUG", "PLSQL_OPTIMIZE_LEVEL", + "PLSQL_WARNINGS", "PLUGGABLE", "PMEM", "POINT", + "POLICY", "POOL_16K", "POOL_2K", "POOL_32K", "POOL_4K", + "POOL_8K", "POSITION", "POSITIVEN", "POSITIVE", + "POST_TRANSACTION", "POWERMULTISET_BY_CARDINALITY", + "POWERMULTISET", "POWER", "PQ_CONCURRENT_UNION", + "PQ_DISTRIBUTE", "PQ_DISTRIBUTE_WINDOW", "PQ_FILTER", + "PQ_MAP", "PQ_NOMAP", "PQ_REPLICATE", "PQ_SKEW", + "PRAGMA", "PREBUILT", "PRECEDES", "PRECEDING", + "PRECISION", "PRECOMPUTE_SUBQUERY", "PREDICATE_REORDERS", + "PRELOAD", "PREPARE", "PREPROCESSOR", "PRESENTNNV", + "PRESENT", "PRESENTV", "PRESERVE_OID", "PRESERVE", + "PRETTY", "PREVIOUS", "PREV", "PRIMARY", "PRINTBLOBTOCLOB", + "PRIORITY", "PRIOR", "PRIVATE", "PRIVATE_SGA", + "PRIVILEGED", "PRIVILEGE", "PRIVILEGES", "PROCEDURAL", + "PROCEDURE", "PROCESS", "PROFILE", "PROGRAM", + "PROJECT", "PROPAGATE", "PROPERTY", "PROTECTED", + "PROTECTION", "PROTOCOL", "PROXY", "PRUNING", + "PUBLIC", "PULL_PRED", "PURGE", "PUSH_PRED", "PUSH_SUBQ", + "PX_FAULT_TOLERANCE", "PX_GRANULE", "PX_JOIN_FILTER", + "QB_NAME", "QUARTERS", "QUERY_BLOCK", "QUERY", + "QUEUE_CURR", "QUEUE", "QUEUE_ROWP", "QUIESCE", + "QUORUM", "QUOTA", "QUOTAGROUP", "RAISE", "RANDOM_LOCAL", + "RANDOM", "RANGE", "RANKM", "RAPIDLY", "RAW", + "RAWTOHEX", "RAWTONHEX", "RBA", "RBO_OUTLINE", + "RCFILE", "RDBA", "READ", "READS", "READSIZE", + "REALM", "REAL", "REBALANCE", "REBUILD", "RECORD", + "RECORDS", "RECORDS_PER_BLOCK", "RECOVERABLE", + "RECOVER", "RECOVERY", "RECYCLEBIN", "RECYCLE", + "REDACTION", "REDEFINE", "REDO", "REDUCED", "REDUNDANCY", + "REF_CASCADE_CURSOR", "REFERENCED", "REFERENCE", + "REFERENCES", "REFERENCING", "REF", "REFRESH", + "REFTOHEX", "REGEXP_COUNT", "REGEXP_INSTR", "REGEXP_LIKE", + "REGEXP_REPLACE", "REGEXP_SUBSTR", "REGISTER", + "REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", + "REGR_R2", "REGR_SLOPE", "REGR_SXX", "REGR_SXY", + "REGR_SYY", "REGULAR", "REJECT", "REKEY", "RELATIONAL", + "RELIES_ON", "RELOCATE", "RELY", "REMAINDER", + "REMOTE", "REMOTE_MAPPED", "REMOVE", "RENAME", + "REPAIR", "REPEAT", "REPLACE", "REPLICATION", + "REQUIRED", "RESETLOGS", "RESET", "RESIZE", "RESOLVE", + "RESOLVER", "RESOURCE", "RESPECT", "RESTART", + "RESTORE_AS_INTERVALS", "RESTORE", "RESTRICT_ALL_REF_CONS", + "RESTRICTED", "RESTRICT_REFERENCES", "RESTRICT", + "RESULT_CACHE", "RESULT", "RESUMABLE", "RESUME", + "RETENTION", "RETRY_ON_ROW_CHANGE", "RETURNING", + "RETURN", "REUSE", "REVERSE", "REVOKE", "REWRITE_OR_ERROR", + "REWRITE", "RIGHT", "ROLE", "ROLESET", "ROLES", + "ROLLBACK", "ROLLING", "ROLLUP", "ROWDEPENDENCIES", + "ROWID_MAPPING_TABLE", "ROWID", "ROWIDTOCHAR", + "ROWIDTONCHAR", "ROW_LENGTH", "ROWNUM", "ROW", + "ROWS", "RPAD", "RTRIM", "RULE", "RULES", "RUNNING", + "SALT", "SAMPLE", "SAVE_AS_INTERVALS", "SAVEPOINT", + "SAVE", "SB4", "SCALE_ROWS", "SCALE", "SCAN_INSTANCES", + "SCAN", "SCHEDULER", "SCHEMACHECK", "SCHEMA", + "SCN_ASCENDING", "SCN", "SCOPE", "SCRUB", "SD_ALL", + "SD_INHIBIT", "SDO_GEOM_MBR", "SDO_GEOMETRY", + "SD_SHOW", "SEARCH", "SECOND", "SECONDS", "SECRET", + "SECUREFILE_DBA", "SECUREFILE", "SECURITY", "SEED", + "SEG_BLOCK", "SEG_FILE", "SEGMENT", "SELECTIVITY", + "SELECT", "SELF", "SEMIJOIN_DRIVER", "SEMIJOIN", + "SEMI_TO_INNER", "SEQUENCED", "SEQUENCE", "SEQUENCEFILE", + "SEQUENTIAL", "SEQ", "SERDE", "SERDEPROPERTIES", + "SERIALIZABLE", "SERIALLY_REUSABLE", "SERIAL", + "SERVERERROR", "SERVICE_NAME_CONVERT", "SERVICE", + "SERVICES", "SESSION_CACHED_CURSORS", "SESSION", + "SESSIONS_PER_USER", "SESSIONTIMEZONE", "SESSIONTZNAME", + "SET", "SETS", "SETTINGS", "SET_TO_JOIN", "SEVERE", + "SHARD", "SHARDSPACE", "SHARED_POOL", "SHARED", + "SHARE", "SHARING", "SHELFLIFE", "SHOW", "SHRINK", + "SHUTDOWN", "SIBLINGS", "SID", "SITE", "SIGNAL_COMPONENT", + "SIGNAL_FUNCTION", "SIGN", "SIGNTYPE", "SIMPLE_INTEGER", + "SIMPLE", "SINGLE", "SINGLETASK", "SINH", "SIN", + "SIZE", "SIZES", "SKIP_EXT_OPTIMIZER", "SKIP_", + "SKIP_UNQ_UNUSABLE_IDX", "SKIP_UNUSABLE_INDEXES", + "SMALLFILE", "SMALLINT", "SNAPSHOT", "SOME", "SORT", + "SOUNDEX", "SOURCE_FILE_DIRECTORY", "SOURCE_FILE_NAME_CONVERT", + "SOURCE", "SPACE_KEYWORD", "SPECIFICATION", "SPFILE", + "SPLIT", "SPREADSHEET", "SQLDATA", "SQLERROR", + "SQLLDR", "SQL", "FILE_EXT", "SQL_MACRO", "SQL_TRACE", + "SQL_TRANSLATION_PROFILE", "SQRT", "STALE", "STANDALONE", + "STANDARD", "STANDARD_HASH", "STANDBY_MAX_DATA_DELAY", + "STANDBYS", "STANDBY", "STAR", "STAR_TRANSFORMATION", + "START", "STARTOF", "STARTUP", "STATEMENT_ID", + "STATEMENT_QUEUING", "STATEMENTS", "STATEMENT", + "STATE", "STATIC", "STATISTICS", "STATS_BINOMIAL_TEST", + "STATS_CROSSTAB", "STATS_F_TEST", "STATS_KS_TEST", + "STATS_MODE", "STATS_MW_TEST", "STATS_ONE_WAY_ANOVA", + "STATS_T_TEST_INDEP", "STATS_T_TEST_INDEPU", "STATS_T_TEST_ONE", + "STATS_T_TEST_PAIRED", "STATS_WSR_TEST", "STDDEV_POP", + "STDDEV_SAMP", "STOP", "STORAGE", "STORE", "STREAMS", + "STREAM", "STRICT", "STRING", "STRIPE_COLUMNS", + "STRIPE_WIDTH", "STRIP", "STRUCTURE", "SUBMULTISET", + "SUBPARTITION_REL", "SUBPARTITIONS", "SUBPARTITION", + "SUBQUERIES", "SUBQUERY_PRUNING", "SUBSCRIBE", + "SUBSET", "SUBSTITUTABLE", "SUBSTR2", "SUBSTR4", + "SUBSTRB", "SUBSTRC", "SUBTYPE", "SUCCESSFUL", + "SUCCESS", "SUMMARY", "SUPPLEMENTAL", "SUSPEND", + "SWAP_JOIN_INPUTS", "SWITCHOVER", "SWITCH", "SYNCHRONOUS", + "SYNC", "SYNONYM", "SYS", "SYSASM", "SYS_AUDIT", + "SYSAUX", "SYSBACKUP", "SYS_CHECKACL", "SYS_CHECK_PRIVILEGE", + "SYS_CONNECT_BY_PATH", "SYS_CONTEXT", "SYSDATE", + "SYSDBA", "SYS_DBURIGEN", "SYSDG", "SYS_DL_CURSOR", + "SYS_DM_RXFORM_CHR", "SYS_DM_RXFORM_NUM", "SYS_DOM_COMPARE", + "SYS_DST_PRIM2SEC", "SYS_DST_SEC2PRIM", "SYS_ET_BFILE_TO_RAW", + "SYS_ET_BLOB_TO_IMAGE", "SYS_ET_IMAGE_TO_BLOB", + "SYS_ET_RAW_TO_BFILE", "SYS_EXTPDTXT", "SYS_EXTRACT_UTC", + "SYS_FBT_INSDEL", "SYS_FILTER_ACLS", "SYS_FNMATCHES", + "SYS_FNREPLACE", "SYS_GET_ACLIDS", "SYS_GET_COL_ACLIDS", + "SYS_GET_PRIVILEGES", "SYS_GETTOKENID", "SYS_GETXTIVAL", + "SYS_GUID", "SYSGUID", "SYSKM", "SYS_MAKE_XMLNODEID", + "SYS_MAKEXML", "SYS_MKXMLATTR", "SYS_MKXTI", "SYSOBJ", + "SYS_OP_ADT2BIN", "SYS_OP_ADTCONS", "SYS_OP_ALSCRVAL", + "SYS_OP_ATG", "SYS_OP_BIN2ADT", "SYS_OP_BITVEC", + "SYS_OP_BL2R", "SYS_OP_BLOOM_FILTER_LIST", "SYS_OP_BLOOM_FILTER", + "SYS_OP_C2C", "SYS_OP_CAST", "SYS_OP_CEG", "SYS_OP_CL2C", + "SYS_OP_COMBINED_HASH", "SYS_OP_COMP", "SYS_OP_CONVERT", + "SYS_OP_COUNTCHG", "SYS_OP_CSCONV", "SYS_OP_CSCONVTEST", + "SYS_OP_CSR", "SYS_OP_CSX_PATCH", "SYS_OP_CYCLED_SEQ", + "SYS_OP_DECOMP", "SYS_OP_DESCEND", "SYS_OP_DISTINCT", + "SYS_OP_DRA", "SYS_OP_DUMP", "SYS_OP_DV_CHECK", + "SYS_OP_ENFORCE_NOT_NULL", "SYSOPER", "SYS_OP_EXTRACT", + "SYS_OP_GROUPING", "SYS_OP_GUID", "SYS_OP_HASH", + "SYS_OP_IIX", "SYS_OP_ITR", "SYS_OP_KEY_VECTOR_CREATE", + "SYS_OP_KEY_VECTOR_FILTER_LIST", "SYS_OP_KEY_VECTOR_FILTER", + "SYS_OP_KEY_VECTOR_SUCCEEDED", "SYS_OP_KEY_VECTOR_USE", + "SYS_OP_LBID", "SYS_OP_LOBLOC2BLOB", "SYS_OP_LOBLOC2CLOB", + "SYS_OP_LOBLOC2ID", "SYS_OP_LOBLOC2NCLOB", "SYS_OP_LOBLOC2TYP", + "SYS_OP_LSVI", "SYS_OP_LVL", "SYS_OP_MAKEOID", + "SYS_OP_MAP_NONNULL", "SYS_OP_MSR", "SYS_OP_NICOMBINE", + "SYS_OP_NIEXTRACT", "SYS_OP_NII", "SYS_OP_NIX", + "SYS_OP_NOEXPAND", "SYS_OP_NTCIMG", "SYS_OP_NUMTORAW", + "SYS_OP_OIDVALUE", "SYS_OP_OPNSIZE", "SYS_OP_PAR_1", + "SYS_OP_PARGID_1", "SYS_OP_PARGID", "SYS_OP_PAR", + "SYS_OP_PART_ID", "SYS_OP_PIVOT", "SYS_OP_R2O", + "SYS_OP_RAWTONUM", "SYS_OP_RDTM", "SYS_OP_REF", + "SYS_OP_RMTD", "SYS_OP_ROWIDTOOBJ", "SYS_OP_RPB", + "SYS_OPTLOBPRBSC", "SYS_OP_TOSETID", "SYS_OP_TPR", + "SYS_OP_TRTB", "SYS_OPTXICMP", "SYS_OPTXQCASTASNQ", + "SYS_OP_UNDESCEND", "SYS_OP_VECAND", "SYS_OP_VECBIT", + "SYS_OP_VECOR", "SYS_OP_VECXOR", "SYS_OP_VERSION", + "SYS_OP_VREF", "SYS_OP_VVD", "SYS_OP_XMLCONS_FOR_CSX", + "SYS_OP_XPTHATG", "SYS_OP_XPTHIDX", "SYS_OP_XPTHOP", + "SYS_OP_XTXT2SQLT", "SYS_OP_ZONE_ID", "SYS_ORDERKEY_DEPTH", + "SYS_ORDERKEY_MAXCHILD", "SYS_ORDERKEY_PARENT", + "SYS_PARALLEL_TXN", "SYS_PATHID_IS_ATTR", "SYS_PATHID_IS_NMSPC", + "SYS_PATHID_LASTNAME", "SYS_PATHID_LASTNMSPC", + "SYS_PATH_REVERSE", "SYS_PXQEXTRACT", "SYS_RAW_TO_XSID", + "SYS_RID_ORDER", "SYS_ROW_DELTA", "SYS_SC_2_XMLT", + "SYS_SYNRCIREDO", "SYSTEM_DEFINED", "SYSTEM", + "SYSTIMESTAMP", "SYS_TYPEID", "SYS_UMAKEXML", + "SYS_XMLANALYZE", "SYS_XMLCONTAINS", "SYS_XMLCONV", + "SYS_XMLEXNSURI", "SYS_XMLGEN", "SYS_XMLI_LOC_ISNODE", + "SYS_XMLI_LOC_ISTEXT", "SYS_XMLINSTR", "SYS_XMLLOCATOR_GETSVAL", + "SYS_XMLNODEID_GETCID", "SYS_XMLNODEID_GETLOCATOR", + "SYS_XMLNODEID_GETOKEY", "SYS_XMLNODEID_GETPATHID", + "SYS_XMLNODEID_GETPTRID", "SYS_XMLNODEID_GETRID", + "SYS_XMLNODEID_GETSVAL", "SYS_XMLNODEID_GETTID", + "SYS_XMLNODEID", "SYS_XMLT_2_SC", "SYS_XMLTRANSLATE", + "SYS_XMLTYPE2SQL", "SYS_XQ_ASQLCNV", "SYS_XQ_ATOMCNVCHK", + "SYS_XQBASEURI", "SYS_XQCASTABLEERRH", "SYS_XQCODEP2STR", + "SYS_XQCODEPEQ", "SYS_XQCON2SEQ", "SYS_XQCONCAT", + "SYS_XQDELETE", "SYS_XQDFLTCOLATION", "SYS_XQDOC", + "SYS_XQDOCURI", "SYS_XQDURDIV", "SYS_XQED4URI", + "SYS_XQENDSWITH", "SYS_XQERRH", "SYS_XQERR", "SYS_XQESHTMLURI", + "SYS_XQEXLOBVAL", "SYS_XQEXSTWRP", "SYS_XQEXTRACT", + "SYS_XQEXTRREF", "SYS_XQEXVAL", "SYS_XQFB2STR", + "SYS_XQFNBOOL", "SYS_XQFNCMP", "SYS_XQFNDATIM", + "SYS_XQFNLNAME", "SYS_XQFNNM", "SYS_XQFNNSURI", + "SYS_XQFNPREDTRUTH", "SYS_XQFNQNM", "SYS_XQFNROOT", + "SYS_XQFORMATNUM", "SYS_XQFTCONTAIN", "SYS_XQFUNCR", + "SYS_XQGETCONTENT", "SYS_XQINDXOF", "SYS_XQINSERT", + "SYS_XQINSPFX", "SYS_XQIRI2URI", "SYS_XQLANG", + "SYS_XQLLNMFRMQNM", "SYS_XQMKNODEREF", "SYS_XQNILLED", + "SYS_XQNODENAME", "SYS_XQNORMSPACE", "SYS_XQNORMUCODE", + "SYS_XQ_NRNG", "SYS_XQNSP4PFX", "SYS_XQNSPFRMQNM", + "SYS_XQPFXFRMQNM", "SYS_XQ_PKSQL2XML", "SYS_XQPOLYABS", + "SYS_XQPOLYADD", "SYS_XQPOLYCEL", "SYS_XQPOLYCSTBL", + "SYS_XQPOLYCST", "SYS_XQPOLYDIV", "SYS_XQPOLYFLR", + "SYS_XQPOLYMOD", "SYS_XQPOLYMUL", "SYS_XQPOLYRND", + "SYS_XQPOLYSQRT", "SYS_XQPOLYSUB", "SYS_XQPOLYUMUS", + "SYS_XQPOLYUPLS", "SYS_XQPOLYVEQ", "SYS_XQPOLYVGE", + "SYS_XQPOLYVGT", "SYS_XQPOLYVLE", "SYS_XQPOLYVLT", + "SYS_XQPOLYVNE", "SYS_XQREF2VAL", "SYS_XQRENAME", + "SYS_XQREPLACE", "SYS_XQRESVURI", "SYS_XQRNDHALF2EVN", + "SYS_XQRSLVQNM", "SYS_XQRYENVPGET", "SYS_XQRYVARGET", + "SYS_XQRYWRP", "SYS_XQSEQ2CON4XC", "SYS_XQSEQ2CON", + "SYS_XQSEQDEEPEQ", "SYS_XQSEQINSB", "SYS_XQSEQRM", + "SYS_XQSEQRVS", "SYS_XQSEQSUB", "SYS_XQSEQTYPMATCH", + "SYS_XQSTARTSWITH", "SYS_XQSTATBURI", "SYS_XQSTR2CODEP", + "SYS_XQSTRJOIN", "SYS_XQSUBSTRAFT", "SYS_XQSUBSTRBEF", + "SYS_XQTOKENIZE", "SYS_XQTREATAS", "SYS_XQ_UPKXML2SQL", + "SYS_XQXFORM", "SYS_XSID_TO_RAW", "SYS_ZMAP_FILTER", + "SYS_ZMAP_REFRESH", "T_LETTER", "TABLE_LOOKUP_BY_NL", + "TABLESPACE_NO", "TABLESPACE", "TABLES", "TABLE_STATS", + "TABLE", "TABNO", "TAG", "TANH", "TAN", "TBLORIDXPARTNUM", + "TEMPFILE", "TEMPLATE", "TEMPLATE_TABLE", "TEMPORARY", + "TEMP_TABLE", "TERMINATED", "TEST", "TEXT", "TEXTFILE", + "THAN", "THEN", "THE", "THESE", "THREAD", "THROUGH", + "TIER", "TIES", "TIMEOUT", "TIMESTAMP_LTZ_UNCONSTRAINED", + "TIMESTAMP", "TIMESTAMP_TZ_UNCONSTRAINED", "TIMESTAMP_UNCONSTRAINED", + "TIMES", "TIME", "TIMEZONE", "TIMEZONE_ABBR", + "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TIMEZONE_OFFSET", + "TIMEZONE_REGION", "TIME_ZONE", "TIMING", "TINYINT", + "TIV_GB", "TIV_SSF", "TO_ACLID", "TO_BINARY_DOUBLE", + "TO_BINARY_FLOAT", "TO_BLOB", "TO_CLOB", "TO_DSINTERVAL", + "TO_LOB", "TO_MULTI_BYTE", "TO_NCHAR", "TO_NCLOB", + "TO_NUMBER", "TOPLEVEL", "TO_SINGLE_BYTE", "TO_TIMESTAMP", + "TO_TIMESTAMP_TZ", "TO_TIME", "TO_TIME_TZ", "TO", + "TO_YMINTERVAL", "TRACE", "TRACING", "TRACKING", + "TRAILING", "TRANSACTION", "TRANSFORM", "TRANSFORMS", + "TRANSFORM_DISTINCT_AGG", "TRANSITIONAL", "TRANSITION", + "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGERS", + "TRIGGER", "TRUE", "TRUNCATE", "TRUNC", "TRUSTED", + "TRUST", "TUNING", "TX", "TYPES", "TYPE", "TZ_OFFSET", + "UB2", "UBA", "UCS2", "UDF", "UID", "UNARCHIVED", + "UNBOUNDED", "UNBOUND", "UNCONDITIONAL", "UNDER", + "UNDO", "UNDROP", "UNIFORM", "UNION", "UNIONTYPE", + "UNIQUE", "UNISTR", "UNLIMITED", "UNLOAD", "UNLOCK", + "UNMATCHED", "UNNEST_INNERJ_DISTINCT_VIEW", "UNNEST_NOSEMIJ_NODISTINCTVIEW", + "UNNEST_SEMIJ_VIEW", "UNNEST", "UNPACKED", "UNPIVOT", + "UNPLUG", "UNPROTECTED", "UNQUIESCE", "UNRECOVERABLE", + "UNRESTRICTED", "UNSIGNED", "UNSUBSCRIBE", "UNTIL", + "UNUSABLE", "UNUSED", "UPDATABLE", "UPDATED", + "UPDATE", "UPDATEXML", "UPD_INDEXES", "UPD_JOININDEX", + "UPGRADE", "UPPER", "UPSERT", "UROWID", "USABLE", + "USAGE", "USE_ANTI", "USE_CONCAT", "USE_CUBE", + "USE_HASH_AGGREGATION", "USE_HASH_GBY_FOR_PUSHDOWN", + "USE_HASH", "USE_HIDDEN_PARTITIONS", "USE_INVISIBLE_INDEXES", + "USE_MERGE_CARTESIAN", "USE_MERGE", "USE_NL", + "USE_NL_WITH_INDEX", "USE_PRIVATE_OUTLINES", "USER_DATA", + "USER_DEFINED", "USERENV", "USERGROUP", "USER_RECYCLEBIN", + "USERS", "USER_TABLESPACES", "USER", "USE_SEMI", + "USE_STORED_OUTLINES", "USE_TTT_FOR_GSETS", "USE", + "USE_VECTOR_AGGREGATION", "USE_WEAK_NAME_RESL", + "USING_NO_EXPAND", "USING_NLS_COMP", "USING", + "UTF16BE", "UTF16LE", "UTF32", "UTF8", "V1", "V2", + "VALIDATE", "VALIDATE_CONVERSION", "VALIDATION", + "VALID_TIME_END", "VALUES", "VALUE", "VARCHAR2", + "VARCHAR", "VARCHARC", "VARIABLE", "VARRAW", "VARRAWC", + "VAR_POP", "VARRAYS", "VARRAY", "VAR_SAMP", "VARYING", + "VECTOR_READ_TRACE", "VECTOR_READ", "VECTOR_TRANSFORM_DIMS", + "VECTOR_TRANSFORM_FACT", "VECTOR_TRANSFORM", "VERIFIER", + "VERIFY", "VERSIONING", "VERSIONS_ENDSCN", "VERSIONS_ENDTIME", + "VERSIONS_OPERATION", "VERSIONS_STARTSCN", "VERSIONS_STARTTIME", + "VERSIONS", "VERSIONS_XID", "VERSION", "VIEW", + "VIOLATION", "VIRTUAL", "VISIBILITY", "VISIBLE", + "VOLUME", "VSIZE", "WAIT", "WALLET", "WARNING", + "WEEKS", "WEEK", "WELLFORMED", "WHENEVER", "WHEN", + "WHERE", "WHILE", "WHITESPACE", "WIDTH_BUCKET", + "WITHIN", "WITHOUT", "WITH_PLSQL", "WITH", "WORK", + "WORKERID", "WRAPPED", "WRAPPER", "WRITE", "XDB_FASTPATH_INSERT", + "XDB", "X_DYN_PRUNE", "XID", "XML2OBJECT", "XMLAGG", + "XMLATTRIBUTES", "XMLCAST", "XMLCDATA", "XMLCOLATTVAL", + "XMLCOMMENT", "XMLCONCAT", "XMLDIFF", "XML_DML_RWT_STMT", + "XMLELEMENT", "XMLEXISTS2", "XMLEXISTS", "XMLFOREST", + "XMLINDEX", "XMLINDEX_REWRITE_IN_SELECT", "XMLINDEX_REWRITE", + "XMLINDEX_SEL_IDX_TBL", "XMLISNODE", "XMLISVALID", + "XMLNAMESPACES", "XMLPARSE", "XMLPATCH", "XMLPI", + "XMLQUERYVAL", "XMLQUERY", "XMLROOT", "XMLSCHEMA", + "XMLSERIALIZE", "XMLTABLE", "XMLTAG", "XMLTRANSFORMBLOB", + "XMLTRANSFORM", "XMLTYPE", "XML", "XPATHTABLE", + "XS_SYS_CONTEXT", "XS", "XTRANSPORT", "YEARS", + "YEAR", "YEAR_TO_MONTH", "YES", "YMINTERVAL_UNCONSTRAINED", + "ZONEMAP", "ZONE", "ZONED", "PREDICTION", "PREDICTION_BOUNDS", + "PREDICTION_COST", "PREDICTION_DETAILS", "PREDICTION_PROBABILITY", + "PREDICTION_SET", "BLOCKCHAIN", "COLLATE", "COLLATION", + "DEFINITION", "DUPLICATED", "EXTENDED", "HASHING", + "IDLE", "IMMUTABLE", "ORACLE_DATAPUMP", "ORACLE_HDFS", + "ORACLE_HIVE", "ORACLE_LOADER", "SHA2_512_Q", + "SHARDED", "V1_Q", "ISOLATE", "ROOT", "UNITE", + "ALGORITHM", "CUME_DIST", "DENSE_RANK", "LISTAGG", + "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", + "RANK", "AVG", "CORR", "COVAR_", "DECODE", "LAG", + "LAG_DIFF", "LAG_DIFF_PERCENT", "LEAD", "MAX", + "MEDIAN", "MEMOPTIMIZE", "MIN", "NTILE", "NVL", + "RATIO_TO_REPORT", "REGR_", "ROUND", "ROW_NUMBER", + "SUBSTR", "TO_CHAR", "TRIM", "SUM", "STDDEV", + "VAR_", "VARIANCE", "LEAST", "GREATEST", "TO_DATE", + "CHARSETID", "CHARSETFORM", "DURATION", "EXTEND", + "MAXLEN", "PERSISTABLE", "POLYMORPHIC", "STRUCT", + "TDO", "WM_CONCAT", "NATIONAL_CHAR_STRING_LIT", + "BIT_STRING_LIT", "HEX_STRING_LIT", "DOUBLE_PERIOD", + "PERIOD", "UNSIGNED_INTEGER", "APPROXIMATE_NUM_LIT", + "CHAR_STRING", "DELIMITED_ID", "PERCENT", "AMPERSAND", + "LEFT_PAREN", "RIGHT_PAREN", "DOUBLE_ASTERISK", + "ASTERISK", "PLUS_SIGN", "MINUS_SIGN", "COMMA", + "SOLIDUS", "AT_SIGN", "ASSIGN_OP", "HASH_OP", + "LEFT_CURLY_PAREN", "RIGHT_CURLY_PAREN", "SQ", + "BINDVAR", "NOT_EQUAL_OP", "CARRET_OPERATOR_PART", + "TILDE_OPERATOR_PART", "EXCLAMATION_OPERATOR_PART", + "GREATER_THAN_OP", "LESS_THAN_OP", "COLON", "SEMICOLON", + "BAR", "EQUALS_OP", "LEFT_BRACKET", "RIGHT_BRACKET", + "INTRODUCER", "SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT", + "REMARK_COMMENT", "PROMPT_MESSAGE", "START_CMD", + "REGULAR_ID", "INQUIRY_DIRECTIVE", "SPACES" ]; + static ruleNames = [ "ABORT", "ABS", "ABSENT", "ACCESS", "ACCESSED", "ACCESSIBLE", + "ACCOUNT", "ACL", "ACOS", "ACROSS", "ACTION", "ACTIONS", + "ACTIVATE", "ACTIVE", "ACTIVE_COMPONENT", "ACTIVE_DATA", + "ACTIVE_FUNCTION", "ACTIVE_TAG", "ACTIVITY", "ADAPTIVE_PLAN", + "ADD", "ADD_COLUMN", "ADD_GROUP", "ADD_MONTHS", "ADJ_DATE", + "ADMIN", "ADMINISTER", "ADMINISTRATOR", "ADVANCED", + "ADVISE", "ADVISOR", "AFD_DISKSTRING", "AFTER", "AGENT", + "AGGREGATE", "A_LETTER", "ALIAS", "ALL", "ALLOCATE", + "ALLOW", "ALL_ROWS", "ALTER", "ALTERNATE", "ALWAYS", + "ANALYTIC", "ANALYZE", "ANCESTOR", "ANCILLARY", "AND", + "AND_EQUAL", "ANNOTATIONS", "ANOMALY", "ANSI_REARCH", + "ANTIJOIN", "ANY", "ANYSCHEMA", "APPEND", "APPENDCHILDXML", + "APPEND_VALUES", "APPLICATION", "APPLY", "APPROX_COUNT_DISTINCT", + "ARCHIVAL", "ARCHIVE", "ARCHIVED", "ARCHIVELOG", "ARE", + "ARRAY", "AS", "ASC", "ASCII", "ASCIISTR", "ASIN", + "ASIS", "ASSEMBLY", "ASSIGN", "ASSOCIATE", "ASYNC", + "ASYNCHRONOUS", "ATAN2", "ATAN", "AT", "ATTRIBUTE", + "ATTRIBUTES", "AUDIT", "AUTHENTICATED", "AUTHENTICATION", + "AUTHID", "AUTHORIZATION", "AUTOALLOCATE", "AUTO", + "AUTOBACKUP", "AUTOEXTEND", "AUTO_LOGIN", "AUTOMATIC", + "AUTONOMOUS_TRANSACTION", "AUTO_REOPTIMIZE", "AVAILABILITY", + "AVRO", "BACKGROUND", "BACKINGFILE", "BACKUP", "BACKUPS", + "BACKUPSET", "BADFILE", "BASIC", "BASICFILE", "BATCH", + "BATCHSIZE", "BATCH_TABLE_ACCESS_BY_ROWID", "BECOME", + "BEFORE", "BEGIN", "BEGINNING", "BEGIN_OUTLINE_DATA", + "BEHALF", "BEQUEATH", "BETWEEN", "BFILE", "BFILENAME", + "BIG", "BIGFILE", "BIGINT", "BINARY", "BINARY_DOUBLE", + "BINARY_DOUBLE_INFINITY", "BINARY_DOUBLE_NAN", "BINARY_FLOAT", + "BINARY_FLOAT_INFINITY", "BINARY_FLOAT_NAN", "BINARY_INTEGER", + "BIND_AWARE", "BINDING", "BIN_TO_NUM", "BITAND", "BITMAP_AND", + "BITMAP", "BITMAPS", "BITMAP_TREE", "BITS", "BLANKS", + "BLOB", "BLOCK", "BLOCK_RANGE", "BLOCKS", "BLOCKSIZE", + "BODY", "BOOLEAN", "BOTH", "BOUND", "BRANCH", "BREADTH", + "BROADCAST", "BSON", "BUFFER", "BUFFER_CACHE", "BUFFER_POOL", + "BUILD", "BULK", "BY", "BYPASS_RECURSIVE_CHECK", "BYPASS_UJVC", + "BYTE", "BYTES", "BYTEORDERMARK", "CACHE", "CACHE_CB", + "CACHE_INSTANCES", "CACHE_TEMP_TABLE", "CACHING", + "CALCULATED", "CALLBACK", "CALL", "CANCEL", "CANONICAL", + "CAPACITY", "CAPTION", "CARDINALITY", "CASCADE", "CASE", + "CAST", "CASESENSITIVE", "CATEGORY", "CDBDEFAULT", + "CEIL", "CELL_FLASH_CACHE", "CERTIFICATE", "CFILE", + "CHAINED", "CHANGE", "CHANGETRACKING", "CHANGE_DUPKEY_ERROR_INDEX", + "CHARACTER", "CHARACTERS", "CHARACTERSET", "CHAR", + "CHAR_CS", "CHARTOROWID", "CHECK_ACL_REWRITE", "CHECK", + "CHECKPOINT", "CHILD", "CHOOSE", "CHR", "CHUNK", "CLASS", + "CLASSIFICATION", "CLASSIFIER", "CLAUSE", "CLEAN", + "CLEANUP", "CLEAR", "C_LETTER", "CLIENT", "CLOB", + "CLONE", "CLOSE_CACHED_OPEN_CURSORS", "CLOSE", "CLUSTER_BY_ROWID", + "CLUSTER", "CLUSTER_DETAILS", "CLUSTER_DISTANCE", + "CLUSTER_ID", "CLUSTERING", "CLUSTERING_FACTOR", "CLUSTER_PROBABILITY", + "CLUSTER_SET", "COALESCE", "COALESCE_SQ", "COARSE", + "CO_AUTH_IND", "COLD", "COLLECT", "COLLECTION", "COLUMNAR", + "COLUMN_AUTH_INDICATOR", "COLUMN", "COLUMNS", "COLUMN_STATS", + "COLUMN_VALUE", "COMMENT", "COMMIT", "COMMITTED", + "COMMON", "COMMON_DATA", "COMPACT", "COMPATIBLE", + "COMPATIBILITY", "COMPILE", "COMPLETE", "COMPLIANCE", + "COMPONENT", "COMPONENTS", "COMPOSE", "COMPOSITE", + "COMPOSITE_LIMIT", "COMPOUND", "COMPRESS", "COMPRESSION", + "COMPUTE", "CONCAT", "CON_DBID_TO_ID", "CONDITIONAL", + "CONDITION", "CONFIRM", "CONFORMING", "CON_GUID_TO_ID", + "CON_ID", "CON_NAME_TO_ID", "CONNECT_BY_CB_WHR_ONLY", + "CONNECT_BY_COMBINE_SW", "CONNECT_BY_COST_BASED", + "CONNECT_BY_ELIM_DUPS", "CONNECT_BY_FILTERING", "CONNECT_BY_ISCYCLE", + "CONNECT_BY_ISLEAF", "CONNECT_BY_ROOT", "CONNECT", + "CONNECT_TIME", "CONSIDER", "CONSISTENT", "CONSTANT", + "CONST", "CONSTRAINT", "CONSTRAINTS", "CONSTRUCTOR", + "CONTAINER", "CONTAINERS", "CONTAINERS_DEFAULT", "CONTAINER_DATA", + "CONTAINER_MAP", "CONTENT", "CONTENTS", "CONTEXT", + "CONTINUE", "CONTROLFILE", "CON_UID_TO_ID", "CONVERT", + "CONVERSION", "COOKIE", "COPY", "CORR_K", "CORR_S", + "CORRUPTION", "CORRUPT_XID_ALL", "CORRUPT_XID", "COS", + "COSH", "COST", "COST_XML_QUERY_REWRITE", "COUNT", + "COUNTED", "COVAR_POP", "COVAR_SAMP", "CPU_COSTING", + "CPU_PER_CALL", "CPU_PER_SESSION", "CRASH", "CREATE", + "CREATE_FILE_DEST", "CREATE_STORED_OUTLINES", "CREATION", + "CREDENTIAL", "CRITICAL", "CROSS", "CROSSEDITION", + "CSCONVERT", "CSV", "CUBE_AJ", "CUBE", "CUBE_GB", + "CUBE_SJ", "CUME_DISTM", "CURRENT", "CURRENT_DATE", + "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", + "CURRENT_USER", "CURRENTV", "CURSOR", "CURSOR_SHARING_EXACT", + "CURSOR_SPECIFIC_SEGMENT", "CUSTOMDATUM", "CV", "CYCLE", + "DANGLING", "DATABASE", "DATA", "DATAFILE", "DATAFILES", + "DATAGUARDCONFIG", "DATAMOVEMENT", "DATAOBJNO", "DATAOBJ_TO_MAT_PARTITION", + "DATAOBJ_TO_PARTITION", "DATAPUMP", "DATA_SECURITY_REWRITE_LIMIT", + "DATE", "DATE_CACHE", "DATE_FORMAT", "DATE_MODE", + "DAY", "DAYS", "DAY_TO_SECOND", "DBA", "DBA_RECYCLEBIN", + "DBLINK", "DBMS_STATS", "DB_ROLE_CHANGE", "DBTIMEZONE", + "DB_UNIQUE_NAME", "DB_VERSION", "DDL", "DEALLOCATE", + "DEBUG", "DEBUGGER", "DEC", "DECIMAL", "DECLARE", + "DECOMPOSE", "DECORRELATE", "DECR", "DECREMENT", "DECRYPT", + "DEDUPLICATE", "DEFAULT", "DEFAULTIF", "DEFAULTS", + "DEFAULT_COLLATION", "DEFAULT_CREDENTIAL", "DEFERRABLE", + "DEFERRED", "DEFINED", "DEFINE", "DEFINER", "DEGREE", + "DELAY", "DELEGATE", "DELETE_ALL", "DELETE", "DELETEXML", + "DELIMITED", "DEMAND", "DENSE_RANKM", "DEPENDENT", + "DEPRECATE", "DEPTH", "DEQUEUE", "DEREF", "DEREF_NO_REWRITE", + "DESC", "DESCRIPTION", "DESTROY", "DETACHED", "DETECTED", + "DETERMINES", "DETERMINISTIC", "DICTIONARY", "DIMENSION", + "DIMENSIONS", "DIRECTIO", "DIRECT_LOAD", "DIRECTORY", + "DIRECT_PATH", "DISABLE_ALL", "DISABLE", "DISABLED", + "DISABLE_DIRECTORY_LINK_CHECK", "DISABLE_PARALLEL_DML", + "DISABLE_PRESET", "DISABLE_RPKE", "DISALLOW", "DISASSOCIATE", + "DISCARD", "DISCARDFILE", "DISCONNECT", "DISK", "DISKGROUP", + "DISKGROUP_PLUS", "DISKS", "DISMOUNT", "DISTINCT", + "DISTINGUISHED", "DISTRIBUTED", "DISTRIBUTE", "DML", + "DML_UPDATE", "DNFS_DISABLE", "DNFS_ENABLE", "DNFS_READBUFFERS", + "DOCFIDELITY", "DOCUMENT", "DOLLAR_ELSE", "DOLLAR_ELSIF", + "DOLLAR_END", "DOLLAR_ERROR", "DOLLAR_IF", "DOLLAR_THEN", + "DOMAIN_INDEX_FILTER", "DOMAIN_INDEX_NO_SORT", "DOMAIN_INDEX_SORT", + "DOUBLE", "DOWNGRADE", "DRIVING_SITE", "DROP_COLUMN", + "DROP", "DROP_GROUP", "DSINTERVAL_UNCONSTRAINED", + "DST_UPGRADE_INSERT_CONV", "DUMP", "DUMPSET", "DUPLICATE", + "DV", "DYNAMIC", "DYNAMIC_SAMPLING", "DYNAMIC_SAMPLING_EST_CDN", + "E_LETTER", "EACH", "EDITIONABLE", "EDITION", "EDITIONING", + "EDITIONS", "ELEMENT", "ELIM_GROUPBY", "ELIMINATE_JOIN", + "ELIMINATE_OBY", "ELIMINATE_OUTER_JOIN", "ELSE", "ELSIF", + "EM", "EMBEDDED", "EMPTY_BLOB", "EMPTY_CLOB", "EMPTY_", + "ENABLE_ALL", "ENABLE", "ENABLED", "ENABLE_PARALLEL_DML", + "ENABLE_PRESET", "ENCLOSED", "ENCODING", "ENCRYPT", + "ENCRYPTION", "ENCRYPTPASSWORDISNULL", "END", "END_OUTLINE_DATA", + "ENDIAN", "ENFORCED", "ENFORCE", "ENQUEUE", "ENTERPRISE", + "ENTITYESCAPING", "ENTRY", "EQUIPART", "ERR", "ERROR_ARGUMENT", + "ERROR", "ERROR_ON_OVERLAP_TIME", "ERRORS", "ERROR_INDEX", + "ERROR_CODE", "ESCAPE", "ESCAPED", "ESTIMATE", "EVAL", + "EVALNAME", "EVALUATE", "EVALUATION", "EVENTS", "EVERY", + "EXCEPT", "EXCEPTION", "EXCEPTION_INIT", "EXCEPTIONS", + "EXCHANGE", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXECUTE", + "EXEMPT", "EXISTING", "EXISTS", "EXISTSNODE", "EXIT", + "EXPAND_GSET_TO_UNION", "EXPAND_TABLE", "EXP", "EXPIRE", + "EXPLAIN", "EXPLOSION", "EXPORT", "EXPR_CORR_CHECK", + "EXPRESS", "EXTENDS", "EXTENT", "EXTENTS", "EXTERNAL", + "EXTERNALLY", "EXTRACTCLOBXML", "EXTRACT", "EXTRACTVALUE", + "EXTRA", "FACILITY", "FACT", "FACTOR", "FACTORIZE_JOIN", + "FAILED", "FAILED_LOGIN_ATTEMPTS", "FAILGROUP", "FAILOVER", + "FAILURE", "FALSE", "FAMILY", "FAR", "FAST", "FASTSTART", + "FBTSCAN", "FEATURE", "FEATURE_DETAILS", "FEATURE_ID", + "FEATURE_SET", "FEATURE_VALUE", "FETCH", "FIELD", + "FIELDS", "FILE", "FILE_NAME_CONVERT", "FILEGROUP", + "FILESTORE", "FILESYSTEM_LIKE_LOGGING", "FILTER", + "FINAL", "FINE", "FINISH", "FIRST", "FIRSTM", "FIRST_ROWS", + "FIRST_VALUE", "FIXED", "FIXED_VIEW_DATA", "FLAGGER", + "FLASHBACK", "FLASH_CACHE", "FLOAT", "FLOB", "FLEX", + "FLOOR", "FLUSH", "FOLDER", "FOLLOWING", "FOLLOWS", + "FORALL", "FORCE", "FORCE_XML_QUERY_REWRITE", "FOREIGN", + "FOREVER", "FOR", "FORMAT", "FORWARD", "FRAGMENT_NUMBER", + "FREELIST", "FREELISTS", "FREEPOOLS", "FRESH", "FROM", + "FROM_TZ", "FULL", "FULL_OUTER_JOIN_TO_OUTER", "FUNCTION", + "FUNCTIONS", "FTP", "G_LETTER", "GATHER_OPTIMIZER_STATISTICS", + "GATHER_PLAN_STATISTICS", "GBY_CONC_ROLLUP", "GBY_PUSHDOWN", + "GENERATED", "GET", "GLOBAL", "GLOBALLY", "GLOBAL_NAME", + "GLOBAL_TOPIC_ENABLED", "GOTO", "GRANT", "GROUP_BY", + "GROUP", "GROUP_ID", "GROUPING", "GROUPING_ID", "GROUPS", + "GUARANTEED", "GUARANTEE", "GUARD", "HADOOP_TRAILERS", + "HALF_YEARS", "HASH_AJ", "HASH", "HASHKEYS", "HASH_SJ", + "HAVING", "HEADER", "HEAP", "HELP", "HEXTORAW", "HEXTOREF", + "HIDDEN_KEYWORD", "HIDE", "HIER_ORDER", "HIERARCHICAL", + "HIERARCHIES", "HIERARCHY", "HIGH", "HINTSET_BEGIN", + "HINTSET_END", "HOT", "HOUR", "HOURS", "HTTP", "HWM_BROKERED", + "HYBRID", "H_LETTER", "IDENTIFIED", "IDENTIFIER", + "IDENTITY", "IDGENERATORS", "ID", "IDLE_TIME", "IF", + "IGNORE", "IGNORE_CHARS_AFTER_EOR", "IGNORE_OPTIM_EMBEDDED_HINTS", + "IGNORE_ROW_ON_DUPKEY_INDEX", "IGNORE_WHERE_CLAUSE", + "ILM", "IMMEDIATE", "IMPACT", "IMPORT", "INACTIVE", + "INACTIVE_ACCOUNT_TIME", "INCLUDE", "INCLUDE_VERSION", + "INCLUDING", "INCREMENTAL", "INCREMENT", "INCR", "INDENT", + "INDEX_ASC", "INDEX_COMBINE", "INDEX_DESC", "INDEXED", + "INDEXES", "INDEX_FFS", "INDEX_FILTER", "INDEX", "INDEXING", + "INDEX_JOIN", "INDEX_ROWS", "INDEX_RRS", "INDEX_RS_ASC", + "INDEX_RS_DESC", "INDEX_RS", "INDEX_SCAN", "INDEX_SKIP_SCAN", + "INDEX_SS_ASC", "INDEX_SS_DESC", "INDEX_SS", "INDEX_STATS", + "INDEXTYPE", "INDEXTYPES", "INDICATOR", "INDICES", + "INFINITE", "INFORMATIONAL", "INHERIT", "IN", "INITCAP", + "INITIAL", "INITIALIZED", "INITIALLY", "INITRANS", + "INLINE", "INLINE_XMLTYPE_NT", "INMEMORY", "IN_MEMORY_METADATA", + "INMEMORY_PRUNING", "INNER", "INOUT", "INPLACE", "INPUTFORMAT", + "INSERTCHILDXMLAFTER", "INSERTCHILDXMLBEFORE", "INSERTCHILDXML", + "INSERT", "INSERTXMLAFTER", "INSERTXMLBEFORE", "INSTANCE", + "INSTANCES", "INSTANTIABLE", "INSTANTLY", "INSTEAD", + "INSTR2", "INSTR4", "INSTRB", "INSTRC", "INSTR", "INTEGER", + "INTERLEAVED", "INTERMEDIATE", "INTERNAL_CONVERT", + "INTERNAL_USE", "INTERPRETED", "INTERSECT", "INTERVAL", + "INT", "INTERNAL", "INTO", "INVALIDATE", "INVALIDATION", + "INVISIBLE", "IN_XQUERY", "IO_OPTIONS", "IS", "IS_LEAF", + "ISOLATION", "ISOLATION_LEVEL", "ITEMS", "ITERATE", + "ITERATION_NUMBER", "JAVA", "JOB", "JOIN", "JSON_ARRAYAGG", + "JSON_ARRAY", "JSON_EQUAL", "JSON_EXISTS2", "JSON_EXISTS", + "JSONGET", "JSON", "JSON_OBJECTAGG", "JSON_OBJECT", + "JSONPARSE", "JSON_QUERY", "JSON_SERIALIZE", "JSON_TABLE", + "JSON_TEXTCONTAINS2", "JSON_TEXTCONTAINS", "JSON_TRANSFORM", + "JSON_VALUE", "K_LETTER", "KEEP_DUPLICATES", "KEEP", + "KERBEROS", "KEY", "KEY_LENGTH", "KEYSIZE", "KEYS", + "KEYSTORE", "KILL", "LABEL", "LANGUAGE", "LAST_DAY", + "LAST", "LAST_VALUE", "LATERAL", "LATEST", "LAX", + "LAYER", "LDAP_REGISTRATION_ENABLED", "LDAP_REGISTRATION", + "LDAP_REG_SYNC_INTERVAL", "LDRTRIM", "LEAF", "LEAD_CDB", + "LEAD_CDB_URI", "LEADING", "LEFT", "LENGTH2", "LENGTH4", + "LENGTHB", "LENGTHC", "LENGTH", "LESS", "LEVEL", "LEVEL_NAME", + "LEVELS", "LIBRARY", "LIFECYCLE", "LIFE", "LIFETIME", + "LIKE2", "LIKE4", "LIKEC", "LIKE_EXPAND", "LIKE", + "LIMIT", "LINEAR", "LINES", "LINK", "LIST", "LITTLE", + "LLS", "LN", "LNNVL", "LOAD", "LOB", "LOBFILE", "LOBNVL", + "LOBS", "LOCAL_INDEXES", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", + "LOCATION", "LOCATOR", "LOCKDOWN", "LOCKED", "LOCKING", + "LOCK", "LOGFILE", "LOGFILES", "LOGGING", "LOGICAL", + "LOGICAL_READS_PER_CALL", "LOGICAL_READS_PER_SESSION", + "LOG", "LOGMINING", "LOGOFF", "LOGON", "LOG_READ_ONLY_VIOLATIONS", + "LONG", "LOOP", "LOST", "LOWER", "LOW", "LPAD", "LRTRIM", + "LTRIM", "M_LETTER", "MAIN", "MAKE_REF", "MANAGED", + "MANAGE", "MANAGEMENT", "MANAGER", "MANDATORY", "MANUAL", + "MAP", "MAPPING", "MASK", "MASTER", "MATCHED", "MATCHES", + "MATCH", "MATCH_NUMBER", "MATCH_RECOGNIZE", "MATERIALIZED", + "MATERIALIZE", "MAXARCHLOGS", "MAXDATAFILES", "MAXEXTENTS", + "MAXIMIZE", "MAXINSTANCES", "MAXLOGFILES", "MAXLOGHISTORY", + "MAXLOGMEMBERS", "MAX_SHARED_TEMP_SIZE", "MAXSIZE", + "MAXTRANS", "MAXVALUE", "MEASURE", "MEASURES", "MEDIUM", + "MEMBER", "MEMBER_CAPTION", "MEMBER_DESCRIPTION", + "MEMBER_NAME", "MEMBER_UNIQUE_NAME", "MEMCOMPRESS", + "MEMORY", "MERGEACTIONS", "MERGE_AJ", "MERGE_CONST_ON", + "MERGE", "MERGE_SJ", "METADATA", "METHOD", "MIGRATE", + "MIGRATION", "MINEXTENTS", "MINIMIZE", "MINIMUM", + "MINING", "MINUS", "MINUS_NULL", "MINUTE", "MINUTES", + "MINVALUE", "MIRRORCOLD", "MIRRORHOT", "MIRROR", "MISSING", + "MISMATCH", "MLSLABEL", "MODEL_COMPILE_SUBQUERY", + "MODEL_DONTVERIFY_UNIQUENESS", "MODEL_DYNAMIC_SUBQUERY", + "MODEL_MIN_ANALYSIS", "MODEL", "MODEL_NB", "MODEL_NO_ANALYSIS", + "MODEL_PBY", "MODEL_PUSH_REF", "MODEL_SV", "MODE", + "MODIFICATION", "MODIFY_COLUMN_TYPE", "MODIFY", "MOD", + "MODULE", "MONITORING", "MONITOR", "MONTH", "MONTHS_BETWEEN", + "MONTHS", "MOUNT", "MOUNTPATH", "MOUNTPOINT", "MOVEMENT", + "MOVE", "MULTIDIMENSIONAL", "MULTISET", "MV_MERGE", + "NAMED", "NAME", "NAMESPACE", "NAN_", "NANVL", "NATIONAL", + "NATIVE_FULL_OUTER_JOIN", "NATIVE", "NATURAL", "NATURALN", + "NAV", "NCHAR_CS", "NCHAR", "NCHR", "NCLOB", "NEEDED", + "NEG", "NESTED", "NESTED_TABLE_FAST_INSERT", "NESTED_TABLE_GET_REFS", + "NESTED_TABLE_ID", "NESTED_TABLE_SET_REFS", "NESTED_TABLE_SET_SETID", + "NETWORK", "NEVER", "NEW", "NEWLINE_", "NEW_TIME", + "NEXT_DAY", "NEXT", "NL_AJ", "NLJ_BATCHING", "NLJ_INDEX_FILTER", + "NLJ_INDEX_SCAN", "NLJ_PREFETCH", "NLS_CALENDAR", + "NLS_CHARACTERSET", "NLS_CHARSET_DECL_LEN", "NLS_CHARSET_ID", + "NLS_CHARSET_NAME", "NLS_COMP", "NLS_CURRENCY", "NLS_DATE_FORMAT", + "NLS_DATE_LANGUAGE", "NLS_INITCAP", "NLS_ISO_CURRENCY", + "NL_SJ", "NLS_LANG", "NLS_LANGUAGE", "NLS_LENGTH_SEMANTICS", + "NLS_LOWER", "NLS_NCHAR_CONV_EXCP", "NLS_NUMERIC_CHARACTERS", + "NLS_SORT", "NLSSORT", "NLS_SPECIAL_CHARS", "NLS_TERRITORY", + "NLS_UPPER", "NO_ACCESS", "NO_ADAPTIVE_PLAN", "NO_ANSI_REARCH", + "NOAPPEND", "NOARCHIVELOG", "NOAUDIT", "NOBADFILE", + "NO_AUTO_REOPTIMIZE", "NO_BASETABLE_MULTIMV_REWRITE", + "NO_BATCH_TABLE_ACCESS_BY_ROWID", "NO_BIND_AWARE", + "NO_BUFFER", "NOCACHE", "NOCHECK", "NO_CARTESIAN", + "NO_CHECK_ACL_REWRITE", "NO_CLUSTER_BY_ROWID", "NO_CLUSTERING", + "NO_COALESCE_SQ", "NO_COMMON_DATA", "NOCOMPRESS", + "NO_CONNECT_BY_CB_WHR_ONLY", "NO_CONNECT_BY_COMBINE_SW", + "NO_CONNECT_BY_COST_BASED", "NO_CONNECT_BY_ELIM_DUPS", + "NO_CONNECT_BY_FILTERING", "NOCOPY", "NO_COST_XML_QUERY_REWRITE", + "NO_CPU_COSTING", "NOCPU_COSTING", "NOCYCLE", "NO_DATA_SECURITY_REWRITE", + "NO_DECORRELATE", "NODELAY", "NODIRECTIO", "NODISCARDFILE", + "NO_DOMAIN_INDEX_FILTER", "NO_DST_UPGRADE_INSERT_CONV", + "NO_ELIM_GROUPBY", "NO_ELIMINATE_JOIN", "NO_ELIMINATE_OBY", + "NO_ELIMINATE_OUTER_JOIN", "NOENTITYESCAPING", "NO_EXPAND_GSET_TO_UNION", + "NO_EXPAND", "NO_EXPAND_TABLE", "NOEXTEND", "NO_FACT", + "NO_FACTORIZE_JOIN", "NO_FILTERING", "NOFORCE", "NO_FULL_OUTER_JOIN_TO_OUTER", + "NO_GATHER_OPTIMIZER_STATISTICS", "NO_GBY_PUSHDOWN", + "NOGUARANTEE", "NO_INDEX_FFS", "NO_INDEX", "NO_INDEX_SS", + "NO_INMEMORY", "NO_INMEMORY_PRUNING", "NOKEEP", "NO_LOAD", + "NOLOCAL", "NOLOG", "NOLOGFILE", "NOLOGGING", "NOMAPPING", + "NOMAXVALUE", "NO_MERGE", "NOMINIMIZE", "NOMINVALUE", + "NO_MODEL_PUSH_REF", "NO_MONITORING", "NOMONITORING", + "NO_MONITOR", "NO_MULTIMV_REWRITE", "NO_NATIVE_FULL_OUTER_JOIN", + "NONBLOCKING", "NONEDITIONABLE", "NONE", "NONULLIF", + "NO_NLJ_BATCHING", "NO_NLJ_PREFETCH", "NO", "NONSCHEMA", + "NO_OBJECT_LINK", "NOORDER", "NO_ORDER_ROLLUPS", "NO_OUTER_JOIN_TO_ANTI", + "NO_OUTER_JOIN_TO_INNER", "NOOVERRIDE", "NO_PARALLEL_INDEX", + "NOPARALLEL_INDEX", "NO_PARALLEL", "NOPARALLEL", "NO_PARTIAL_COMMIT", + "NO_PARTIAL_JOIN", "NO_PARTIAL_ROLLUP_PUSHDOWN", "NOPARTITION", + "NO_PLACE_DISTINCT", "NO_PLACE_GROUP_BY", "NO_PQ_CONCURRENT_UNION", + "NO_PQ_MAP", "NOPROMPT", "NO_PQ_REPLICATE", "NO_PQ_SKEW", + "NO_PRUNE_GSETS", "NO_PULL_PRED", "NO_PUSH_PRED", + "NO_PUSH_SUBQ", "NO_PX_FAULT_TOLERANCE", "NO_PX_JOIN_FILTER", + "NO_QKN_BUFF", "NO_QUERY_TRANSFORMATION", "NO_REF_CASCADE", + "NORELOCATE", "NORELY", "NOREPAIR", "NOREPLAY", "NORESETLOGS", + "NO_RESULT_CACHE", "NOREVERSE", "NO_REWRITE", "NOREWRITE", + "NORMAL", "NO_ROOT_SW_FOR_LOCAL", "NOROWDEPENDENCIES", + "NOSCALE", "NOSCHEMACHECK", "NOSEGMENT", "NO_SEMIJOIN", + "NO_SEMI_TO_INNER", "NO_SET_TO_JOIN", "NOSHARD", "NOSORT", + "NO_SQL_TRANSLATION", "NO_SQL_TUNE", "NO_STAR_TRANSFORMATION", + "NO_STATEMENT_QUEUING", "NO_STATS_GSETS", "NOSTRICT", + "NO_SUBQUERY_PRUNING", "NO_SUBSTRB_PAD", "NO_SWAP_JOIN_INPUTS", + "NOSWITCH", "NO_TABLE_LOOKUP_BY_NL", "NO_TEMP_TABLE", + "NOTHING", "NOTIFICATION", "NOTRIM", "NOT", "NO_TRANSFORM_DISTINCT_AGG", + "NO_UNNEST", "NO_USE_CUBE", "NO_USE_HASH_AGGREGATION", + "NO_USE_HASH_GBY_FOR_PUSHDOWN", "NO_USE_HASH", "NO_USE_INVISIBLE_INDEXES", + "NO_USE_MERGE", "NO_USE_NL", "NO_USE_VECTOR_AGGREGATION", + "NOVALIDATE", "NO_VECTOR_TRANSFORM_DIMS", "NO_VECTOR_TRANSFORM_FACT", + "NO_VECTOR_TRANSFORM", "NOWAIT", "NO_XDB_FASTPATH_INSERT", + "NO_XML_DML_REWRITE", "NO_XMLINDEX_REWRITE_IN_SELECT", + "NO_XMLINDEX_REWRITE", "NO_XML_QUERY_REWRITE", "NO_ZONEMAP", + "NTH_VALUE", "NULLIF", "NULL_", "NULLS", "NUMBER", + "NUMERIC", "NUM_INDEX_KEYS", "NUMTODSINTERVAL", "NUMTOYMINTERVAL", + "NVARCHAR2", "NVL2", "OBJECT2XML", "OBJECT", "OBJ_ID", + "OBJNO", "OBJNO_REUSE", "OCCURENCES", "OFFLINE", "OFF", + "OFFSET", "OF", "OIDINDEX", "OID", "OLAP", "OLD", + "OLD_PUSH_PRED", "OLS", "OLTP", "OMIT", "ONE", "ONLINE", + "ONLINELOG", "ONLY", "ON", "OPAQUE", "OPAQUE_TRANSFORM", + "OPAQUE_XCANONICAL", "OPCODE", "OPEN", "OPERATIONS", + "OPERATOR", "OPT_ESTIMATE", "OPTIMAL", "OPTIMIZE", + "OPTIMIZER_FEATURES_ENABLE", "OPTIMIZER_GOAL", "OPTION", + "OPTIONALLY", "OPT_PARAM", "ORA_BRANCH", "ORA_CHECK_ACL", + "ORA_CHECK_PRIVILEGE", "ORA_CLUSTERING", "ORADATA", + "ORC", "ORACLE_DATE", "ORACLE_NUMBER", "ORADEBUG", + "ORA_DST_AFFECTED", "ORA_DST_CONVERT", "ORA_DST_ERROR", + "ORA_GET_ACLIDS", "ORA_GET_PRIVILEGES", "ORA_HASH", + "ORA_INVOKING_USERID", "ORA_INVOKING_USER", "ORA_INVOKING_XS_USER_GUID", + "ORA_INVOKING_XS_USER", "ORA_RAWCOMPARE", "ORA_RAWCONCAT", + "ORA_ROWSCN", "ORA_ROWSCN_RAW", "ORA_ROWVERSION", + "ORA_TABVERSION", "ORA_WRITE_TIME", "ORDERED", "ORDERED_PREDICATES", + "ORDER", "ORDINALITY", "OR_EXPAND", "ORGANIZATION", + "OR", "OR_PREDICATES", "OSERROR", "OTHER", "OUTER_JOIN_TO_ANTI", + "OUTER_JOIN_TO_INNER", "OUTER", "OUTLINE_LEAF", "OUTLINE", + "OUTPUTFORMAT", "OUT_OF_LINE", "OUT", "OVERFLOW_NOMOVE", + "OVERFLOW_", "OVERLAPS", "OVER", "OVERRIDE", "OVERRIDING", + "OWNER", "OWNERSHIP", "OWN", "P_LETTER", "PACKAGE", + "PACKAGES", "PARALLEL_ENABLE", "PARALLEL_INDEX", "PARALLEL", + "PARAMETERFILE", "PARAMETERS", "PARAM", "PARENT", + "PARENT_LEVEL_NAME", "PARENT_UNIQUE_NAME", "PARITY", + "PARQUET", "PARTIAL_JOIN", "PARTIALLY", "PARTIAL", + "PARTIAL_ROLLUP_PUSHDOWN", "PARTITION_HASH", "PARTITION_LIST", + "PARTITION", "PARTITION_RANGE", "PARTITIONS", "PARTNUMINST", + "PASSING", "PASSWORD_GRACE_TIME", "PASSWORD_LIFE_TIME", + "PASSWORD_LOCK_TIME", "PASSWORD", "PASSWORD_REUSE_MAX", + "PASSWORD_REUSE_TIME", "PASSWORD_ROLLOVER_TIME", "PASSWORD_VERIFY_FUNCTION", + "PAST", "PATCH", "PATH", "PATH_PREFIX", "PATHS", "PATTERN", + "PBL_HS_BEGIN", "PBL_HS_END", "PCTFREE", "PCTINCREASE", + "PCTTHRESHOLD", "PCTUSED", "PCTVERSION", "PENDING", + "PERCENT_FOUND", "PERCENT_ISOPEN", "PERCENT_NOTFOUND", + "PERCENT_KEYWORD", "PERCENT_RANKM", "PERCENT_ROWCOUNT", + "PERCENT_ROWTYPE", "PERCENT_TYPE", "PERCENT_BULK_EXCEPTIONS", + "PERCENT_BULK_ROWCOUNT", "PERFORMANCE", "PERIOD_KEYWORD", + "PERMANENT", "PERMISSION", "PERMUTE", "PER", "PFILE", + "PHYSICAL", "PIKEY", "PIPELINED", "PIPE", "PIV_GB", + "PIVOT", "PIV_SSF", "PLACE_DISTINCT", "PLACE_GROUP_BY", + "PLAN", "PLSCOPE_SETTINGS", "PLS_INTEGER", "PLSQL_CCFLAGS", + "PLSQL_CODE_TYPE", "PLSQL_DEBUG", "PLSQL_OPTIMIZE_LEVEL", + "PLSQL_WARNINGS", "PLUGGABLE", "PMEM", "POINT", "POLICY", + "POOL_16K", "POOL_2K", "POOL_32K", "POOL_4K", "POOL_8K", + "POSITION", "POSITIVEN", "POSITIVE", "POST_TRANSACTION", + "POWERMULTISET_BY_CARDINALITY", "POWERMULTISET", "POWER", + "PQ_CONCURRENT_UNION", "PQ_DISTRIBUTE", "PQ_DISTRIBUTE_WINDOW", + "PQ_FILTER", "PQ_MAP", "PQ_NOMAP", "PQ_REPLICATE", + "PQ_SKEW", "PRAGMA", "PREBUILT", "PRECEDES", "PRECEDING", + "PRECISION", "PRECOMPUTE_SUBQUERY", "PREDICATE_REORDERS", + "PRELOAD", "PREPARE", "PREPROCESSOR", "PRESENTNNV", + "PRESENT", "PRESENTV", "PRESERVE_OID", "PRESERVE", + "PRETTY", "PREVIOUS", "PREV", "PRIMARY", "PRINTBLOBTOCLOB", + "PRIORITY", "PRIOR", "PRIVATE", "PRIVATE_SGA", "PRIVILEGED", + "PRIVILEGE", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", + "PROCESS", "PROFILE", "PROGRAM", "PROJECT", "PROPAGATE", + "PROPERTY", "PROTECTED", "PROTECTION", "PROTOCOL", + "PROXY", "PRUNING", "PUBLIC", "PULL_PRED", "PURGE", + "PUSH_PRED", "PUSH_SUBQ", "PX_FAULT_TOLERANCE", "PX_GRANULE", + "PX_JOIN_FILTER", "QB_NAME", "QUARTERS", "QUERY_BLOCK", + "QUERY", "QUEUE_CURR", "QUEUE", "QUEUE_ROWP", "QUIESCE", + "QUORUM", "QUOTA", "QUOTAGROUP", "RAISE", "RANDOM_LOCAL", + "RANDOM", "RANGE", "RANKM", "RAPIDLY", "RAW", "RAWTOHEX", + "RAWTONHEX", "RBA", "RBO_OUTLINE", "RCFILE", "RDBA", + "READ", "READS", "READSIZE", "REALM", "REAL", "REBALANCE", + "REBUILD", "RECORD", "RECORDS", "RECORDS_PER_BLOCK", + "RECOVERABLE", "RECOVER", "RECOVERY", "RECYCLEBIN", + "RECYCLE", "REDACTION", "REDEFINE", "REDO", "REDUCED", + "REDUNDANCY", "REF_CASCADE_CURSOR", "REFERENCED", + "REFERENCE", "REFERENCES", "REFERENCING", "REF", "REFRESH", + "REFTOHEX", "REGEXP_COUNT", "REGEXP_INSTR", "REGEXP_LIKE", + "REGEXP_REPLACE", "REGEXP_SUBSTR", "REGISTER", "REGR_AVGX", + "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", + "REGR_SLOPE", "REGR_SXX", "REGR_SXY", "REGR_SYY", + "REGULAR", "REJECT", "REKEY", "RELATIONAL", "RELIES_ON", + "RELOCATE", "RELY", "REMAINDER", "REMOTE", "REMOTE_MAPPED", + "REMOVE", "RENAME", "REPAIR", "REPEAT", "REPLACE", + "REPLICATION", "REQUIRED", "RESETLOGS", "RESET", "RESIZE", + "RESOLVE", "RESOLVER", "RESOURCE", "RESPECT", "RESTART", + "RESTORE_AS_INTERVALS", "RESTORE", "RESTRICT_ALL_REF_CONS", + "RESTRICTED", "RESTRICT_REFERENCES", "RESTRICT", "RESULT_CACHE", + "RESULT", "RESUMABLE", "RESUME", "RETENTION", "RETRY_ON_ROW_CHANGE", + "RETURNING", "RETURN", "REUSE", "REVERSE", "REVOKE", + "REWRITE_OR_ERROR", "REWRITE", "RIGHT", "ROLE", "ROLESET", + "ROLES", "ROLLBACK", "ROLLING", "ROLLUP", "ROWDEPENDENCIES", + "ROWID_MAPPING_TABLE", "ROWID", "ROWIDTOCHAR", "ROWIDTONCHAR", + "ROW_LENGTH", "ROWNUM", "ROW", "ROWS", "RPAD", "RTRIM", + "RULE", "RULES", "RUNNING", "SALT", "SAMPLE", "SAVE_AS_INTERVALS", + "SAVEPOINT", "SAVE", "SB4", "SCALE_ROWS", "SCALE", + "SCAN_INSTANCES", "SCAN", "SCHEDULER", "SCHEMACHECK", + "SCHEMA", "SCN_ASCENDING", "SCN", "SCOPE", "SCRUB", + "SD_ALL", "SD_INHIBIT", "SDO_GEOM_MBR", "SDO_GEOMETRY", + "SD_SHOW", "SEARCH", "SECOND", "SECONDS", "SECRET", + "SECUREFILE_DBA", "SECUREFILE", "SECURITY", "SEED", + "SEG_BLOCK", "SEG_FILE", "SEGMENT", "SELECTIVITY", + "SELECT", "SELF", "SEMIJOIN_DRIVER", "SEMIJOIN", "SEMI_TO_INNER", + "SEQUENCED", "SEQUENCE", "SEQUENCEFILE", "SEQUENTIAL", + "SEQ", "SERDE", "SERDEPROPERTIES", "SERIALIZABLE", + "SERIALLY_REUSABLE", "SERIAL", "SERVERERROR", "SERVICE_NAME_CONVERT", + "SERVICE", "SERVICES", "SESSION_CACHED_CURSORS", "SESSION", + "SESSIONS_PER_USER", "SESSIONTIMEZONE", "SESSIONTZNAME", + "SET", "SETS", "SETTINGS", "SET_TO_JOIN", "SEVERE", + "SHARD", "SHARDSPACE", "SHARED_POOL", "SHARED", "SHARE", + "SHARING", "SHELFLIFE", "SHOW", "SHRINK", "SHUTDOWN", + "SIBLINGS", "SID", "SITE", "SIGNAL_COMPONENT", "SIGNAL_FUNCTION", + "SIGN", "SIGNTYPE", "SIMPLE_INTEGER", "SIMPLE", "SINGLE", + "SINGLETASK", "SINH", "SIN", "SIZE", "SIZES", "SKIP_EXT_OPTIMIZER", + "SKIP_", "SKIP_UNQ_UNUSABLE_IDX", "SKIP_UNUSABLE_INDEXES", + "SMALLFILE", "SMALLINT", "SNAPSHOT", "SOME", "SORT", + "SOUNDEX", "SOURCE_FILE_DIRECTORY", "SOURCE_FILE_NAME_CONVERT", + "SOURCE", "SPACE_KEYWORD", "SPECIFICATION", "SPFILE", + "SPLIT", "SPREADSHEET", "SQLDATA", "SQLERROR", "SQLLDR", + "SQL", "FILE_EXT", "SQL_MACRO", "SQL_TRACE", "SQL_TRANSLATION_PROFILE", + "SQRT", "STALE", "STANDALONE", "STANDARD", "STANDARD_HASH", + "STANDBY_MAX_DATA_DELAY", "STANDBYS", "STANDBY", "STAR", + "STAR_TRANSFORMATION", "START", "STARTOF", "STARTUP", + "STATEMENT_ID", "STATEMENT_QUEUING", "STATEMENTS", + "STATEMENT", "STATE", "STATIC", "STATISTICS", "STATS_BINOMIAL_TEST", + "STATS_CROSSTAB", "STATS_F_TEST", "STATS_KS_TEST", + "STATS_MODE", "STATS_MW_TEST", "STATS_ONE_WAY_ANOVA", + "STATS_T_TEST_INDEP", "STATS_T_TEST_INDEPU", "STATS_T_TEST_ONE", + "STATS_T_TEST_PAIRED", "STATS_WSR_TEST", "STDDEV_POP", + "STDDEV_SAMP", "STOP", "STORAGE", "STORE", "STREAMS", + "STREAM", "STRICT", "STRING", "STRIPE_COLUMNS", "STRIPE_WIDTH", + "STRIP", "STRUCTURE", "SUBMULTISET", "SUBPARTITION_REL", + "SUBPARTITIONS", "SUBPARTITION", "SUBQUERIES", "SUBQUERY_PRUNING", + "SUBSCRIBE", "SUBSET", "SUBSTITUTABLE", "SUBSTR2", + "SUBSTR4", "SUBSTRB", "SUBSTRC", "SUBTYPE", "SUCCESSFUL", + "SUCCESS", "SUMMARY", "SUPPLEMENTAL", "SUSPEND", "SWAP_JOIN_INPUTS", + "SWITCHOVER", "SWITCH", "SYNCHRONOUS", "SYNC", "SYNONYM", + "SYS", "SYSASM", "SYS_AUDIT", "SYSAUX", "SYSBACKUP", + "SYS_CHECKACL", "SYS_CHECK_PRIVILEGE", "SYS_CONNECT_BY_PATH", + "SYS_CONTEXT", "SYSDATE", "SYSDBA", "SYS_DBURIGEN", + "SYSDG", "SYS_DL_CURSOR", "SYS_DM_RXFORM_CHR", "SYS_DM_RXFORM_NUM", + "SYS_DOM_COMPARE", "SYS_DST_PRIM2SEC", "SYS_DST_SEC2PRIM", + "SYS_ET_BFILE_TO_RAW", "SYS_ET_BLOB_TO_IMAGE", "SYS_ET_IMAGE_TO_BLOB", + "SYS_ET_RAW_TO_BFILE", "SYS_EXTPDTXT", "SYS_EXTRACT_UTC", + "SYS_FBT_INSDEL", "SYS_FILTER_ACLS", "SYS_FNMATCHES", + "SYS_FNREPLACE", "SYS_GET_ACLIDS", "SYS_GET_COL_ACLIDS", + "SYS_GET_PRIVILEGES", "SYS_GETTOKENID", "SYS_GETXTIVAL", + "SYS_GUID", "SYSGUID", "SYSKM", "SYS_MAKE_XMLNODEID", + "SYS_MAKEXML", "SYS_MKXMLATTR", "SYS_MKXTI", "SYSOBJ", + "SYS_OP_ADT2BIN", "SYS_OP_ADTCONS", "SYS_OP_ALSCRVAL", + "SYS_OP_ATG", "SYS_OP_BIN2ADT", "SYS_OP_BITVEC", "SYS_OP_BL2R", + "SYS_OP_BLOOM_FILTER_LIST", "SYS_OP_BLOOM_FILTER", + "SYS_OP_C2C", "SYS_OP_CAST", "SYS_OP_CEG", "SYS_OP_CL2C", + "SYS_OP_COMBINED_HASH", "SYS_OP_COMP", "SYS_OP_CONVERT", + "SYS_OP_COUNTCHG", "SYS_OP_CSCONV", "SYS_OP_CSCONVTEST", + "SYS_OP_CSR", "SYS_OP_CSX_PATCH", "SYS_OP_CYCLED_SEQ", + "SYS_OP_DECOMP", "SYS_OP_DESCEND", "SYS_OP_DISTINCT", + "SYS_OP_DRA", "SYS_OP_DUMP", "SYS_OP_DV_CHECK", "SYS_OP_ENFORCE_NOT_NULL", + "SYSOPER", "SYS_OP_EXTRACT", "SYS_OP_GROUPING", "SYS_OP_GUID", + "SYS_OP_HASH", "SYS_OP_IIX", "SYS_OP_ITR", "SYS_OP_KEY_VECTOR_CREATE", + "SYS_OP_KEY_VECTOR_FILTER_LIST", "SYS_OP_KEY_VECTOR_FILTER", + "SYS_OP_KEY_VECTOR_SUCCEEDED", "SYS_OP_KEY_VECTOR_USE", + "SYS_OP_LBID", "SYS_OP_LOBLOC2BLOB", "SYS_OP_LOBLOC2CLOB", + "SYS_OP_LOBLOC2ID", "SYS_OP_LOBLOC2NCLOB", "SYS_OP_LOBLOC2TYP", + "SYS_OP_LSVI", "SYS_OP_LVL", "SYS_OP_MAKEOID", "SYS_OP_MAP_NONNULL", + "SYS_OP_MSR", "SYS_OP_NICOMBINE", "SYS_OP_NIEXTRACT", + "SYS_OP_NII", "SYS_OP_NIX", "SYS_OP_NOEXPAND", "SYS_OP_NTCIMG", + "SYS_OP_NUMTORAW", "SYS_OP_OIDVALUE", "SYS_OP_OPNSIZE", + "SYS_OP_PAR_1", "SYS_OP_PARGID_1", "SYS_OP_PARGID", + "SYS_OP_PAR", "SYS_OP_PART_ID", "SYS_OP_PIVOT", "SYS_OP_R2O", + "SYS_OP_RAWTONUM", "SYS_OP_RDTM", "SYS_OP_REF", "SYS_OP_RMTD", + "SYS_OP_ROWIDTOOBJ", "SYS_OP_RPB", "SYS_OPTLOBPRBSC", + "SYS_OP_TOSETID", "SYS_OP_TPR", "SYS_OP_TRTB", "SYS_OPTXICMP", + "SYS_OPTXQCASTASNQ", "SYS_OP_UNDESCEND", "SYS_OP_VECAND", + "SYS_OP_VECBIT", "SYS_OP_VECOR", "SYS_OP_VECXOR", + "SYS_OP_VERSION", "SYS_OP_VREF", "SYS_OP_VVD", "SYS_OP_XMLCONS_FOR_CSX", + "SYS_OP_XPTHATG", "SYS_OP_XPTHIDX", "SYS_OP_XPTHOP", + "SYS_OP_XTXT2SQLT", "SYS_OP_ZONE_ID", "SYS_ORDERKEY_DEPTH", + "SYS_ORDERKEY_MAXCHILD", "SYS_ORDERKEY_PARENT", "SYS_PARALLEL_TXN", + "SYS_PATHID_IS_ATTR", "SYS_PATHID_IS_NMSPC", "SYS_PATHID_LASTNAME", + "SYS_PATHID_LASTNMSPC", "SYS_PATH_REVERSE", "SYS_PXQEXTRACT", + "SYS_RAW_TO_XSID", "SYS_RID_ORDER", "SYS_ROW_DELTA", + "SYS_SC_2_XMLT", "SYS_SYNRCIREDO", "SYSTEM_DEFINED", + "SYSTEM", "SYSTIMESTAMP", "SYS_TYPEID", "SYS_UMAKEXML", + "SYS_XMLANALYZE", "SYS_XMLCONTAINS", "SYS_XMLCONV", + "SYS_XMLEXNSURI", "SYS_XMLGEN", "SYS_XMLI_LOC_ISNODE", + "SYS_XMLI_LOC_ISTEXT", "SYS_XMLINSTR", "SYS_XMLLOCATOR_GETSVAL", + "SYS_XMLNODEID_GETCID", "SYS_XMLNODEID_GETLOCATOR", + "SYS_XMLNODEID_GETOKEY", "SYS_XMLNODEID_GETPATHID", + "SYS_XMLNODEID_GETPTRID", "SYS_XMLNODEID_GETRID", + "SYS_XMLNODEID_GETSVAL", "SYS_XMLNODEID_GETTID", "SYS_XMLNODEID", + "SYS_XMLT_2_SC", "SYS_XMLTRANSLATE", "SYS_XMLTYPE2SQL", + "SYS_XQ_ASQLCNV", "SYS_XQ_ATOMCNVCHK", "SYS_XQBASEURI", + "SYS_XQCASTABLEERRH", "SYS_XQCODEP2STR", "SYS_XQCODEPEQ", + "SYS_XQCON2SEQ", "SYS_XQCONCAT", "SYS_XQDELETE", "SYS_XQDFLTCOLATION", + "SYS_XQDOC", "SYS_XQDOCURI", "SYS_XQDURDIV", "SYS_XQED4URI", + "SYS_XQENDSWITH", "SYS_XQERRH", "SYS_XQERR", "SYS_XQESHTMLURI", + "SYS_XQEXLOBVAL", "SYS_XQEXSTWRP", "SYS_XQEXTRACT", + "SYS_XQEXTRREF", "SYS_XQEXVAL", "SYS_XQFB2STR", "SYS_XQFNBOOL", + "SYS_XQFNCMP", "SYS_XQFNDATIM", "SYS_XQFNLNAME", "SYS_XQFNNM", + "SYS_XQFNNSURI", "SYS_XQFNPREDTRUTH", "SYS_XQFNQNM", + "SYS_XQFNROOT", "SYS_XQFORMATNUM", "SYS_XQFTCONTAIN", + "SYS_XQFUNCR", "SYS_XQGETCONTENT", "SYS_XQINDXOF", + "SYS_XQINSERT", "SYS_XQINSPFX", "SYS_XQIRI2URI", "SYS_XQLANG", + "SYS_XQLLNMFRMQNM", "SYS_XQMKNODEREF", "SYS_XQNILLED", + "SYS_XQNODENAME", "SYS_XQNORMSPACE", "SYS_XQNORMUCODE", + "SYS_XQ_NRNG", "SYS_XQNSP4PFX", "SYS_XQNSPFRMQNM", + "SYS_XQPFXFRMQNM", "SYS_XQ_PKSQL2XML", "SYS_XQPOLYABS", + "SYS_XQPOLYADD", "SYS_XQPOLYCEL", "SYS_XQPOLYCSTBL", + "SYS_XQPOLYCST", "SYS_XQPOLYDIV", "SYS_XQPOLYFLR", + "SYS_XQPOLYMOD", "SYS_XQPOLYMUL", "SYS_XQPOLYRND", + "SYS_XQPOLYSQRT", "SYS_XQPOLYSUB", "SYS_XQPOLYUMUS", + "SYS_XQPOLYUPLS", "SYS_XQPOLYVEQ", "SYS_XQPOLYVGE", + "SYS_XQPOLYVGT", "SYS_XQPOLYVLE", "SYS_XQPOLYVLT", + "SYS_XQPOLYVNE", "SYS_XQREF2VAL", "SYS_XQRENAME", + "SYS_XQREPLACE", "SYS_XQRESVURI", "SYS_XQRNDHALF2EVN", + "SYS_XQRSLVQNM", "SYS_XQRYENVPGET", "SYS_XQRYVARGET", + "SYS_XQRYWRP", "SYS_XQSEQ2CON4XC", "SYS_XQSEQ2CON", + "SYS_XQSEQDEEPEQ", "SYS_XQSEQINSB", "SYS_XQSEQRM", + "SYS_XQSEQRVS", "SYS_XQSEQSUB", "SYS_XQSEQTYPMATCH", + "SYS_XQSTARTSWITH", "SYS_XQSTATBURI", "SYS_XQSTR2CODEP", + "SYS_XQSTRJOIN", "SYS_XQSUBSTRAFT", "SYS_XQSUBSTRBEF", + "SYS_XQTOKENIZE", "SYS_XQTREATAS", "SYS_XQ_UPKXML2SQL", + "SYS_XQXFORM", "SYS_XSID_TO_RAW", "SYS_ZMAP_FILTER", + "SYS_ZMAP_REFRESH", "T_LETTER", "TABLE_LOOKUP_BY_NL", + "TABLESPACE_NO", "TABLESPACE", "TABLES", "TABLE_STATS", + "TABLE", "TABNO", "TAG", "TANH", "TAN", "TBLORIDXPARTNUM", + "TEMPFILE", "TEMPLATE", "TEMPLATE_TABLE", "TEMPORARY", + "TEMP_TABLE", "TERMINATED", "TEST", "TEXT", "TEXTFILE", + "THAN", "THEN", "THE", "THESE", "THREAD", "THROUGH", + "TIER", "TIES", "TIMEOUT", "TIMESTAMP_LTZ_UNCONSTRAINED", + "TIMESTAMP", "TIMESTAMP_TZ_UNCONSTRAINED", "TIMESTAMP_UNCONSTRAINED", + "TIMES", "TIME", "TIMEZONE", "TIMEZONE_ABBR", "TIMEZONE_HOUR", + "TIMEZONE_MINUTE", "TIMEZONE_OFFSET", "TIMEZONE_REGION", + "TIME_ZONE", "TIMING", "TINYINT", "TIV_GB", "TIV_SSF", + "TO_ACLID", "TO_BINARY_DOUBLE", "TO_BINARY_FLOAT", + "TO_BLOB", "TO_CLOB", "TO_DSINTERVAL", "TO_LOB", "TO_MULTI_BYTE", + "TO_NCHAR", "TO_NCLOB", "TO_NUMBER", "TOPLEVEL", "TO_SINGLE_BYTE", + "TO_TIMESTAMP", "TO_TIMESTAMP_TZ", "TO_TIME", "TO_TIME_TZ", + "TO", "TO_YMINTERVAL", "TRACE", "TRACING", "TRACKING", + "TRAILING", "TRANSACTION", "TRANSFORM", "TRANSFORMS", + "TRANSFORM_DISTINCT_AGG", "TRANSITIONAL", "TRANSITION", + "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGERS", "TRIGGER", + "TRUE", "TRUNCATE", "TRUNC", "TRUSTED", "TRUST", "TUNING", + "TX", "TYPES", "TYPE", "TZ_OFFSET", "UB2", "UBA", + "UCS2", "UDF", "UID", "UNARCHIVED", "UNBOUNDED", "UNBOUND", + "UNCONDITIONAL", "UNDER", "UNDO", "UNDROP", "UNIFORM", + "UNION", "UNIONTYPE", "UNIQUE", "UNISTR", "UNLIMITED", + "UNLOAD", "UNLOCK", "UNMATCHED", "UNNEST_INNERJ_DISTINCT_VIEW", + "UNNEST_NOSEMIJ_NODISTINCTVIEW", "UNNEST_SEMIJ_VIEW", + "UNNEST", "UNPACKED", "UNPIVOT", "UNPLUG", "UNPROTECTED", + "UNQUIESCE", "UNRECOVERABLE", "UNRESTRICTED", "UNSIGNED", + "UNSUBSCRIBE", "UNTIL", "UNUSABLE", "UNUSED", "UPDATABLE", + "UPDATED", "UPDATE", "UPDATEXML", "UPD_INDEXES", "UPD_JOININDEX", + "UPGRADE", "UPPER", "UPSERT", "UROWID", "USABLE", + "USAGE", "USE_ANTI", "USE_CONCAT", "USE_CUBE", "USE_HASH_AGGREGATION", + "USE_HASH_GBY_FOR_PUSHDOWN", "USE_HASH", "USE_HIDDEN_PARTITIONS", + "USE_INVISIBLE_INDEXES", "USE_MERGE_CARTESIAN", "USE_MERGE", + "USE_NL", "USE_NL_WITH_INDEX", "USE_PRIVATE_OUTLINES", + "USER_DATA", "USER_DEFINED", "USERENV", "USERGROUP", + "USER_RECYCLEBIN", "USERS", "USER_TABLESPACES", "USER", + "USE_SEMI", "USE_STORED_OUTLINES", "USE_TTT_FOR_GSETS", + "USE", "USE_VECTOR_AGGREGATION", "USE_WEAK_NAME_RESL", + "USING_NO_EXPAND", "USING_NLS_COMP", "USING", "UTF16BE", + "UTF16LE", "UTF32", "UTF8", "V1", "V2", "VALIDATE", + "VALIDATE_CONVERSION", "VALIDATION", "VALID_TIME_END", + "VALUES", "VALUE", "VARCHAR2", "VARCHAR", "VARCHARC", + "VARIABLE", "VARRAW", "VARRAWC", "VAR_POP", "VARRAYS", + "VARRAY", "VAR_SAMP", "VARYING", "VECTOR_READ_TRACE", + "VECTOR_READ", "VECTOR_TRANSFORM_DIMS", "VECTOR_TRANSFORM_FACT", + "VECTOR_TRANSFORM", "VERIFIER", "VERIFY", "VERSIONING", + "VERSIONS_ENDSCN", "VERSIONS_ENDTIME", "VERSIONS_OPERATION", + "VERSIONS_STARTSCN", "VERSIONS_STARTTIME", "VERSIONS", + "VERSIONS_XID", "VERSION", "VIEW", "VIOLATION", "VIRTUAL", + "VISIBILITY", "VISIBLE", "VOLUME", "VSIZE", "WAIT", + "WALLET", "WARNING", "WEEKS", "WEEK", "WELLFORMED", + "WHENEVER", "WHEN", "WHERE", "WHILE", "WHITESPACE", + "WIDTH_BUCKET", "WITHIN", "WITHOUT", "WITH_PLSQL", + "WITH", "WORK", "WORKERID", "WRAPPED", "WRAPPER", + "WRITE", "XDB_FASTPATH_INSERT", "XDB", "X_DYN_PRUNE", + "XID", "XML2OBJECT", "XMLAGG", "XMLATTRIBUTES", "XMLCAST", + "XMLCDATA", "XMLCOLATTVAL", "XMLCOMMENT", "XMLCONCAT", + "XMLDIFF", "XML_DML_RWT_STMT", "XMLELEMENT", "XMLEXISTS2", + "XMLEXISTS", "XMLFOREST", "XMLINDEX", "XMLINDEX_REWRITE_IN_SELECT", + "XMLINDEX_REWRITE", "XMLINDEX_SEL_IDX_TBL", "XMLISNODE", + "XMLISVALID", "XMLNAMESPACES", "XMLPARSE", "XMLPATCH", + "XMLPI", "XMLQUERYVAL", "XMLQUERY", "XMLROOT", "XMLSCHEMA", + "XMLSERIALIZE", "XMLTABLE", "XMLTAG", "XMLTRANSFORMBLOB", + "XMLTRANSFORM", "XMLTYPE", "XML", "XPATHTABLE", "XS_SYS_CONTEXT", + "XS", "XTRANSPORT", "YEARS", "YEAR", "YEAR_TO_MONTH", + "YES", "YMINTERVAL_UNCONSTRAINED", "ZONEMAP", "ZONE", + "ZONED", "PREDICTION", "PREDICTION_BOUNDS", "PREDICTION_COST", + "PREDICTION_DETAILS", "PREDICTION_PROBABILITY", "PREDICTION_SET", + "BLOCKCHAIN", "COLLATE", "COLLATION", "DEFINITION", + "DUPLICATED", "EXTENDED", "HASHING", "IDLE", "IMMUTABLE", + "ORACLE_DATAPUMP", "ORACLE_HDFS", "ORACLE_HIVE", "ORACLE_LOADER", + "SHA2_512_Q", "SHARDED", "V1_Q", "ISOLATE", "ROOT", + "UNITE", "ALGORITHM", "CUME_DIST", "DENSE_RANK", "LISTAGG", + "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", + "RANK", "AVG", "CORR", "COVAR_", "DECODE", "LAG", + "LAG_DIFF", "LAG_DIFF_PERCENT", "LEAD", "MAX", "MEDIAN", + "MEMOPTIMIZE", "MIN", "NTILE", "NVL", "RATIO_TO_REPORT", + "REGR_", "ROUND", "ROW_NUMBER", "SUBSTR", "TO_CHAR", + "TRIM", "SUM", "STDDEV", "VAR_", "VARIANCE", "LEAST", + "GREATEST", "TO_DATE", "CHARSETID", "CHARSETFORM", + "DURATION", "EXTEND", "MAXLEN", "PERSISTABLE", "POLYMORPHIC", + "STRUCT", "TDO", "WM_CONCAT", "NATIONAL_CHAR_STRING_LIT", + "BIT_STRING_LIT", "HEX_STRING_LIT", "DOUBLE_PERIOD", + "PERIOD", "UNSIGNED_INTEGER", "APPROXIMATE_NUM_LIT", + "CHAR_STRING", "CHAR_STRING_PERL", "QS_ANGLE", "QS_BRACE", + "QS_BRACK", "QS_PAREN", "QS_EXCLAM", "QS_SHARP", "QS_QUOTE", + "QS_DQUOTE", "QS_TILDA", "QS_SOLIDUS", "QS_RSOLIDUS", + "DELIMITED_ID", "PERCENT", "AMPERSAND", "LEFT_PAREN", + "RIGHT_PAREN", "DOUBLE_ASTERISK", "ASTERISK", "PLUS_SIGN", + "MINUS_SIGN", "COMMA", "SOLIDUS", "AT_SIGN", "ASSIGN_OP", + "HASH_OP", "LEFT_CURLY_PAREN", "RIGHT_CURLY_PAREN", + "SQ", "BINDVAR", "NOT_EQUAL_OP", "CARRET_OPERATOR_PART", + "TILDE_OPERATOR_PART", "EXCLAMATION_OPERATOR_PART", + "GREATER_THAN_OP", "LESS_THAN_OP", "COLON", "SEMICOLON", + "BAR", "EQUALS_OP", "LEFT_BRACKET", "RIGHT_BRACKET", + "INTRODUCER", "SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT", + "REMARK_COMMENT", "PROMPT_MESSAGE", "START_CMD", "REGULAR_ID", + "INQUIRY_DIRECTIVE", "SPACES", "NEWLINE_EOF", "QUESTION_MARK", + "SIMPLE_LETTER", "FLOAT_FRAGMENT", "NEWLINE", "SPACE" ]; + + constructor(input) { + super(input) + this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.atn.PredictionContextCache()); + } +} + +OracleSqlLexer.EOF = antlr4.Token.EOF; +OracleSqlLexer.ABORT = 1; +OracleSqlLexer.ABS = 2; +OracleSqlLexer.ABSENT = 3; +OracleSqlLexer.ACCESS = 4; +OracleSqlLexer.ACCESSED = 5; +OracleSqlLexer.ACCESSIBLE = 6; +OracleSqlLexer.ACCOUNT = 7; +OracleSqlLexer.ACL = 8; +OracleSqlLexer.ACOS = 9; +OracleSqlLexer.ACROSS = 10; +OracleSqlLexer.ACTION = 11; +OracleSqlLexer.ACTIONS = 12; +OracleSqlLexer.ACTIVATE = 13; +OracleSqlLexer.ACTIVE = 14; +OracleSqlLexer.ACTIVE_COMPONENT = 15; +OracleSqlLexer.ACTIVE_DATA = 16; +OracleSqlLexer.ACTIVE_FUNCTION = 17; +OracleSqlLexer.ACTIVE_TAG = 18; +OracleSqlLexer.ACTIVITY = 19; +OracleSqlLexer.ADAPTIVE_PLAN = 20; +OracleSqlLexer.ADD = 21; +OracleSqlLexer.ADD_COLUMN = 22; +OracleSqlLexer.ADD_GROUP = 23; +OracleSqlLexer.ADD_MONTHS = 24; +OracleSqlLexer.ADJ_DATE = 25; +OracleSqlLexer.ADMIN = 26; +OracleSqlLexer.ADMINISTER = 27; +OracleSqlLexer.ADMINISTRATOR = 28; +OracleSqlLexer.ADVANCED = 29; +OracleSqlLexer.ADVISE = 30; +OracleSqlLexer.ADVISOR = 31; +OracleSqlLexer.AFD_DISKSTRING = 32; +OracleSqlLexer.AFTER = 33; +OracleSqlLexer.AGENT = 34; +OracleSqlLexer.AGGREGATE = 35; +OracleSqlLexer.A_LETTER = 36; +OracleSqlLexer.ALIAS = 37; +OracleSqlLexer.ALL = 38; +OracleSqlLexer.ALLOCATE = 39; +OracleSqlLexer.ALLOW = 40; +OracleSqlLexer.ALL_ROWS = 41; +OracleSqlLexer.ALTER = 42; +OracleSqlLexer.ALTERNATE = 43; +OracleSqlLexer.ALWAYS = 44; +OracleSqlLexer.ANALYTIC = 45; +OracleSqlLexer.ANALYZE = 46; +OracleSqlLexer.ANCESTOR = 47; +OracleSqlLexer.ANCILLARY = 48; +OracleSqlLexer.AND = 49; +OracleSqlLexer.AND_EQUAL = 50; +OracleSqlLexer.ANNOTATIONS = 51; +OracleSqlLexer.ANOMALY = 52; +OracleSqlLexer.ANSI_REARCH = 53; +OracleSqlLexer.ANTIJOIN = 54; +OracleSqlLexer.ANY = 55; +OracleSqlLexer.ANYSCHEMA = 56; +OracleSqlLexer.APPEND = 57; +OracleSqlLexer.APPENDCHILDXML = 58; +OracleSqlLexer.APPEND_VALUES = 59; +OracleSqlLexer.APPLICATION = 60; +OracleSqlLexer.APPLY = 61; +OracleSqlLexer.APPROX_COUNT_DISTINCT = 62; +OracleSqlLexer.ARCHIVAL = 63; +OracleSqlLexer.ARCHIVE = 64; +OracleSqlLexer.ARCHIVED = 65; +OracleSqlLexer.ARCHIVELOG = 66; +OracleSqlLexer.ARE = 67; +OracleSqlLexer.ARRAY = 68; +OracleSqlLexer.AS = 69; +OracleSqlLexer.ASC = 70; +OracleSqlLexer.ASCII = 71; +OracleSqlLexer.ASCIISTR = 72; +OracleSqlLexer.ASIN = 73; +OracleSqlLexer.ASIS = 74; +OracleSqlLexer.ASSEMBLY = 75; +OracleSqlLexer.ASSIGN = 76; +OracleSqlLexer.ASSOCIATE = 77; +OracleSqlLexer.ASYNC = 78; +OracleSqlLexer.ASYNCHRONOUS = 79; +OracleSqlLexer.ATAN2 = 80; +OracleSqlLexer.ATAN = 81; +OracleSqlLexer.AT = 82; +OracleSqlLexer.ATTRIBUTE = 83; +OracleSqlLexer.ATTRIBUTES = 84; +OracleSqlLexer.AUDIT = 85; +OracleSqlLexer.AUTHENTICATED = 86; +OracleSqlLexer.AUTHENTICATION = 87; +OracleSqlLexer.AUTHID = 88; +OracleSqlLexer.AUTHORIZATION = 89; +OracleSqlLexer.AUTOALLOCATE = 90; +OracleSqlLexer.AUTO = 91; +OracleSqlLexer.AUTOBACKUP = 92; +OracleSqlLexer.AUTOEXTEND = 93; +OracleSqlLexer.AUTO_LOGIN = 94; +OracleSqlLexer.AUTOMATIC = 95; +OracleSqlLexer.AUTONOMOUS_TRANSACTION = 96; +OracleSqlLexer.AUTO_REOPTIMIZE = 97; +OracleSqlLexer.AVAILABILITY = 98; +OracleSqlLexer.AVRO = 99; +OracleSqlLexer.BACKGROUND = 100; +OracleSqlLexer.BACKINGFILE = 101; +OracleSqlLexer.BACKUP = 102; +OracleSqlLexer.BACKUPS = 103; +OracleSqlLexer.BACKUPSET = 104; +OracleSqlLexer.BADFILE = 105; +OracleSqlLexer.BASIC = 106; +OracleSqlLexer.BASICFILE = 107; +OracleSqlLexer.BATCH = 108; +OracleSqlLexer.BATCHSIZE = 109; +OracleSqlLexer.BATCH_TABLE_ACCESS_BY_ROWID = 110; +OracleSqlLexer.BECOME = 111; +OracleSqlLexer.BEFORE = 112; +OracleSqlLexer.BEGIN = 113; +OracleSqlLexer.BEGINNING = 114; +OracleSqlLexer.BEGIN_OUTLINE_DATA = 115; +OracleSqlLexer.BEHALF = 116; +OracleSqlLexer.BEQUEATH = 117; +OracleSqlLexer.BETWEEN = 118; +OracleSqlLexer.BFILE = 119; +OracleSqlLexer.BFILENAME = 120; +OracleSqlLexer.BIG = 121; +OracleSqlLexer.BIGFILE = 122; +OracleSqlLexer.BIGINT = 123; +OracleSqlLexer.BINARY = 124; +OracleSqlLexer.BINARY_DOUBLE = 125; +OracleSqlLexer.BINARY_DOUBLE_INFINITY = 126; +OracleSqlLexer.BINARY_DOUBLE_NAN = 127; +OracleSqlLexer.BINARY_FLOAT = 128; +OracleSqlLexer.BINARY_FLOAT_INFINITY = 129; +OracleSqlLexer.BINARY_FLOAT_NAN = 130; +OracleSqlLexer.BINARY_INTEGER = 131; +OracleSqlLexer.BIND_AWARE = 132; +OracleSqlLexer.BINDING = 133; +OracleSqlLexer.BIN_TO_NUM = 134; +OracleSqlLexer.BITAND = 135; +OracleSqlLexer.BITMAP_AND = 136; +OracleSqlLexer.BITMAP = 137; +OracleSqlLexer.BITMAPS = 138; +OracleSqlLexer.BITMAP_TREE = 139; +OracleSqlLexer.BITS = 140; +OracleSqlLexer.BLANKS = 141; +OracleSqlLexer.BLOB = 142; +OracleSqlLexer.BLOCK = 143; +OracleSqlLexer.BLOCK_RANGE = 144; +OracleSqlLexer.BLOCKS = 145; +OracleSqlLexer.BLOCKSIZE = 146; +OracleSqlLexer.BODY = 147; +OracleSqlLexer.BOOLEAN = 148; +OracleSqlLexer.BOTH = 149; +OracleSqlLexer.BOUND = 150; +OracleSqlLexer.BRANCH = 151; +OracleSqlLexer.BREADTH = 152; +OracleSqlLexer.BROADCAST = 153; +OracleSqlLexer.BSON = 154; +OracleSqlLexer.BUFFER = 155; +OracleSqlLexer.BUFFER_CACHE = 156; +OracleSqlLexer.BUFFER_POOL = 157; +OracleSqlLexer.BUILD = 158; +OracleSqlLexer.BULK = 159; +OracleSqlLexer.BY = 160; +OracleSqlLexer.BYPASS_RECURSIVE_CHECK = 161; +OracleSqlLexer.BYPASS_UJVC = 162; +OracleSqlLexer.BYTE = 163; +OracleSqlLexer.BYTES = 164; +OracleSqlLexer.BYTEORDERMARK = 165; +OracleSqlLexer.CACHE = 166; +OracleSqlLexer.CACHE_CB = 167; +OracleSqlLexer.CACHE_INSTANCES = 168; +OracleSqlLexer.CACHE_TEMP_TABLE = 169; +OracleSqlLexer.CACHING = 170; +OracleSqlLexer.CALCULATED = 171; +OracleSqlLexer.CALLBACK = 172; +OracleSqlLexer.CALL = 173; +OracleSqlLexer.CANCEL = 174; +OracleSqlLexer.CANONICAL = 175; +OracleSqlLexer.CAPACITY = 176; +OracleSqlLexer.CAPTION = 177; +OracleSqlLexer.CARDINALITY = 178; +OracleSqlLexer.CASCADE = 179; +OracleSqlLexer.CASE = 180; +OracleSqlLexer.CAST = 181; +OracleSqlLexer.CASESENSITIVE = 182; +OracleSqlLexer.CATEGORY = 183; +OracleSqlLexer.CDBDEFAULT = 184; +OracleSqlLexer.CEIL = 185; +OracleSqlLexer.CELL_FLASH_CACHE = 186; +OracleSqlLexer.CERTIFICATE = 187; +OracleSqlLexer.CFILE = 188; +OracleSqlLexer.CHAINED = 189; +OracleSqlLexer.CHANGE = 190; +OracleSqlLexer.CHANGETRACKING = 191; +OracleSqlLexer.CHANGE_DUPKEY_ERROR_INDEX = 192; +OracleSqlLexer.CHARACTER = 193; +OracleSqlLexer.CHARACTERS = 194; +OracleSqlLexer.CHARACTERSET = 195; +OracleSqlLexer.CHAR = 196; +OracleSqlLexer.CHAR_CS = 197; +OracleSqlLexer.CHARTOROWID = 198; +OracleSqlLexer.CHECK_ACL_REWRITE = 199; +OracleSqlLexer.CHECK = 200; +OracleSqlLexer.CHECKPOINT = 201; +OracleSqlLexer.CHILD = 202; +OracleSqlLexer.CHOOSE = 203; +OracleSqlLexer.CHR = 204; +OracleSqlLexer.CHUNK = 205; +OracleSqlLexer.CLASS = 206; +OracleSqlLexer.CLASSIFICATION = 207; +OracleSqlLexer.CLASSIFIER = 208; +OracleSqlLexer.CLAUSE = 209; +OracleSqlLexer.CLEAN = 210; +OracleSqlLexer.CLEANUP = 211; +OracleSqlLexer.CLEAR = 212; +OracleSqlLexer.C_LETTER = 213; +OracleSqlLexer.CLIENT = 214; +OracleSqlLexer.CLOB = 215; +OracleSqlLexer.CLONE = 216; +OracleSqlLexer.CLOSE_CACHED_OPEN_CURSORS = 217; +OracleSqlLexer.CLOSE = 218; +OracleSqlLexer.CLUSTER_BY_ROWID = 219; +OracleSqlLexer.CLUSTER = 220; +OracleSqlLexer.CLUSTER_DETAILS = 221; +OracleSqlLexer.CLUSTER_DISTANCE = 222; +OracleSqlLexer.CLUSTER_ID = 223; +OracleSqlLexer.CLUSTERING = 224; +OracleSqlLexer.CLUSTERING_FACTOR = 225; +OracleSqlLexer.CLUSTER_PROBABILITY = 226; +OracleSqlLexer.CLUSTER_SET = 227; +OracleSqlLexer.COALESCE = 228; +OracleSqlLexer.COALESCE_SQ = 229; +OracleSqlLexer.COARSE = 230; +OracleSqlLexer.CO_AUTH_IND = 231; +OracleSqlLexer.COLD = 232; +OracleSqlLexer.COLLECT = 233; +OracleSqlLexer.COLLECTION = 234; +OracleSqlLexer.COLUMNAR = 235; +OracleSqlLexer.COLUMN_AUTH_INDICATOR = 236; +OracleSqlLexer.COLUMN = 237; +OracleSqlLexer.COLUMNS = 238; +OracleSqlLexer.COLUMN_STATS = 239; +OracleSqlLexer.COLUMN_VALUE = 240; +OracleSqlLexer.COMMENT = 241; +OracleSqlLexer.COMMIT = 242; +OracleSqlLexer.COMMITTED = 243; +OracleSqlLexer.COMMON = 244; +OracleSqlLexer.COMMON_DATA = 245; +OracleSqlLexer.COMPACT = 246; +OracleSqlLexer.COMPATIBLE = 247; +OracleSqlLexer.COMPATIBILITY = 248; +OracleSqlLexer.COMPILE = 249; +OracleSqlLexer.COMPLETE = 250; +OracleSqlLexer.COMPLIANCE = 251; +OracleSqlLexer.COMPONENT = 252; +OracleSqlLexer.COMPONENTS = 253; +OracleSqlLexer.COMPOSE = 254; +OracleSqlLexer.COMPOSITE = 255; +OracleSqlLexer.COMPOSITE_LIMIT = 256; +OracleSqlLexer.COMPOUND = 257; +OracleSqlLexer.COMPRESS = 258; +OracleSqlLexer.COMPRESSION = 259; +OracleSqlLexer.COMPUTE = 260; +OracleSqlLexer.CONCAT = 261; +OracleSqlLexer.CON_DBID_TO_ID = 262; +OracleSqlLexer.CONDITIONAL = 263; +OracleSqlLexer.CONDITION = 264; +OracleSqlLexer.CONFIRM = 265; +OracleSqlLexer.CONFORMING = 266; +OracleSqlLexer.CON_GUID_TO_ID = 267; +OracleSqlLexer.CON_ID = 268; +OracleSqlLexer.CON_NAME_TO_ID = 269; +OracleSqlLexer.CONNECT_BY_CB_WHR_ONLY = 270; +OracleSqlLexer.CONNECT_BY_COMBINE_SW = 271; +OracleSqlLexer.CONNECT_BY_COST_BASED = 272; +OracleSqlLexer.CONNECT_BY_ELIM_DUPS = 273; +OracleSqlLexer.CONNECT_BY_FILTERING = 274; +OracleSqlLexer.CONNECT_BY_ISCYCLE = 275; +OracleSqlLexer.CONNECT_BY_ISLEAF = 276; +OracleSqlLexer.CONNECT_BY_ROOT = 277; +OracleSqlLexer.CONNECT = 278; +OracleSqlLexer.CONNECT_TIME = 279; +OracleSqlLexer.CONSIDER = 280; +OracleSqlLexer.CONSISTENT = 281; +OracleSqlLexer.CONSTANT = 282; +OracleSqlLexer.CONST = 283; +OracleSqlLexer.CONSTRAINT = 284; +OracleSqlLexer.CONSTRAINTS = 285; +OracleSqlLexer.CONSTRUCTOR = 286; +OracleSqlLexer.CONTAINER = 287; +OracleSqlLexer.CONTAINERS = 288; +OracleSqlLexer.CONTAINERS_DEFAULT = 289; +OracleSqlLexer.CONTAINER_DATA = 290; +OracleSqlLexer.CONTAINER_MAP = 291; +OracleSqlLexer.CONTENT = 292; +OracleSqlLexer.CONTENTS = 293; +OracleSqlLexer.CONTEXT = 294; +OracleSqlLexer.CONTINUE = 295; +OracleSqlLexer.CONTROLFILE = 296; +OracleSqlLexer.CON_UID_TO_ID = 297; +OracleSqlLexer.CONVERT = 298; +OracleSqlLexer.CONVERSION = 299; +OracleSqlLexer.COOKIE = 300; +OracleSqlLexer.COPY = 301; +OracleSqlLexer.CORR_K = 302; +OracleSqlLexer.CORR_S = 303; +OracleSqlLexer.CORRUPTION = 304; +OracleSqlLexer.CORRUPT_XID_ALL = 305; +OracleSqlLexer.CORRUPT_XID = 306; +OracleSqlLexer.COS = 307; +OracleSqlLexer.COSH = 308; +OracleSqlLexer.COST = 309; +OracleSqlLexer.COST_XML_QUERY_REWRITE = 310; +OracleSqlLexer.COUNT = 311; +OracleSqlLexer.COUNTED = 312; +OracleSqlLexer.COVAR_POP = 313; +OracleSqlLexer.COVAR_SAMP = 314; +OracleSqlLexer.CPU_COSTING = 315; +OracleSqlLexer.CPU_PER_CALL = 316; +OracleSqlLexer.CPU_PER_SESSION = 317; +OracleSqlLexer.CRASH = 318; +OracleSqlLexer.CREATE = 319; +OracleSqlLexer.CREATE_FILE_DEST = 320; +OracleSqlLexer.CREATE_STORED_OUTLINES = 321; +OracleSqlLexer.CREATION = 322; +OracleSqlLexer.CREDENTIAL = 323; +OracleSqlLexer.CRITICAL = 324; +OracleSqlLexer.CROSS = 325; +OracleSqlLexer.CROSSEDITION = 326; +OracleSqlLexer.CSCONVERT = 327; +OracleSqlLexer.CSV = 328; +OracleSqlLexer.CUBE_AJ = 329; +OracleSqlLexer.CUBE = 330; +OracleSqlLexer.CUBE_GB = 331; +OracleSqlLexer.CUBE_SJ = 332; +OracleSqlLexer.CUME_DISTM = 333; +OracleSqlLexer.CURRENT = 334; +OracleSqlLexer.CURRENT_DATE = 335; +OracleSqlLexer.CURRENT_SCHEMA = 336; +OracleSqlLexer.CURRENT_TIME = 337; +OracleSqlLexer.CURRENT_TIMESTAMP = 338; +OracleSqlLexer.CURRENT_USER = 339; +OracleSqlLexer.CURRENTV = 340; +OracleSqlLexer.CURSOR = 341; +OracleSqlLexer.CURSOR_SHARING_EXACT = 342; +OracleSqlLexer.CURSOR_SPECIFIC_SEGMENT = 343; +OracleSqlLexer.CUSTOMDATUM = 344; +OracleSqlLexer.CV = 345; +OracleSqlLexer.CYCLE = 346; +OracleSqlLexer.DANGLING = 347; +OracleSqlLexer.DATABASE = 348; +OracleSqlLexer.DATA = 349; +OracleSqlLexer.DATAFILE = 350; +OracleSqlLexer.DATAFILES = 351; +OracleSqlLexer.DATAGUARDCONFIG = 352; +OracleSqlLexer.DATAMOVEMENT = 353; +OracleSqlLexer.DATAOBJNO = 354; +OracleSqlLexer.DATAOBJ_TO_MAT_PARTITION = 355; +OracleSqlLexer.DATAOBJ_TO_PARTITION = 356; +OracleSqlLexer.DATAPUMP = 357; +OracleSqlLexer.DATA_SECURITY_REWRITE_LIMIT = 358; +OracleSqlLexer.DATE = 359; +OracleSqlLexer.DATE_CACHE = 360; +OracleSqlLexer.DATE_FORMAT = 361; +OracleSqlLexer.DATE_MODE = 362; +OracleSqlLexer.DAY = 363; +OracleSqlLexer.DAYS = 364; +OracleSqlLexer.DAY_TO_SECOND = 365; +OracleSqlLexer.DBA = 366; +OracleSqlLexer.DBA_RECYCLEBIN = 367; +OracleSqlLexer.DBLINK = 368; +OracleSqlLexer.DBMS_STATS = 369; +OracleSqlLexer.DB_ROLE_CHANGE = 370; +OracleSqlLexer.DBTIMEZONE = 371; +OracleSqlLexer.DB_UNIQUE_NAME = 372; +OracleSqlLexer.DB_VERSION = 373; +OracleSqlLexer.DDL = 374; +OracleSqlLexer.DEALLOCATE = 375; +OracleSqlLexer.DEBUG = 376; +OracleSqlLexer.DEBUGGER = 377; +OracleSqlLexer.DEC = 378; +OracleSqlLexer.DECIMAL = 379; +OracleSqlLexer.DECLARE = 380; +OracleSqlLexer.DECOMPOSE = 381; +OracleSqlLexer.DECORRELATE = 382; +OracleSqlLexer.DECR = 383; +OracleSqlLexer.DECREMENT = 384; +OracleSqlLexer.DECRYPT = 385; +OracleSqlLexer.DEDUPLICATE = 386; +OracleSqlLexer.DEFAULT = 387; +OracleSqlLexer.DEFAULTIF = 388; +OracleSqlLexer.DEFAULTS = 389; +OracleSqlLexer.DEFAULT_COLLATION = 390; +OracleSqlLexer.DEFAULT_CREDENTIAL = 391; +OracleSqlLexer.DEFERRABLE = 392; +OracleSqlLexer.DEFERRED = 393; +OracleSqlLexer.DEFINED = 394; +OracleSqlLexer.DEFINE = 395; +OracleSqlLexer.DEFINER = 396; +OracleSqlLexer.DEGREE = 397; +OracleSqlLexer.DELAY = 398; +OracleSqlLexer.DELEGATE = 399; +OracleSqlLexer.DELETE_ALL = 400; +OracleSqlLexer.DELETE = 401; +OracleSqlLexer.DELETEXML = 402; +OracleSqlLexer.DELIMITED = 403; +OracleSqlLexer.DEMAND = 404; +OracleSqlLexer.DENSE_RANKM = 405; +OracleSqlLexer.DEPENDENT = 406; +OracleSqlLexer.DEPRECATE = 407; +OracleSqlLexer.DEPTH = 408; +OracleSqlLexer.DEQUEUE = 409; +OracleSqlLexer.DEREF = 410; +OracleSqlLexer.DEREF_NO_REWRITE = 411; +OracleSqlLexer.DESC = 412; +OracleSqlLexer.DESCRIPTION = 413; +OracleSqlLexer.DESTROY = 414; +OracleSqlLexer.DETACHED = 415; +OracleSqlLexer.DETECTED = 416; +OracleSqlLexer.DETERMINES = 417; +OracleSqlLexer.DETERMINISTIC = 418; +OracleSqlLexer.DICTIONARY = 419; +OracleSqlLexer.DIMENSION = 420; +OracleSqlLexer.DIMENSIONS = 421; +OracleSqlLexer.DIRECTIO = 422; +OracleSqlLexer.DIRECT_LOAD = 423; +OracleSqlLexer.DIRECTORY = 424; +OracleSqlLexer.DIRECT_PATH = 425; +OracleSqlLexer.DISABLE_ALL = 426; +OracleSqlLexer.DISABLE = 427; +OracleSqlLexer.DISABLED = 428; +OracleSqlLexer.DISABLE_DIRECTORY_LINK_CHECK = 429; +OracleSqlLexer.DISABLE_PARALLEL_DML = 430; +OracleSqlLexer.DISABLE_PRESET = 431; +OracleSqlLexer.DISABLE_RPKE = 432; +OracleSqlLexer.DISALLOW = 433; +OracleSqlLexer.DISASSOCIATE = 434; +OracleSqlLexer.DISCARD = 435; +OracleSqlLexer.DISCARDFILE = 436; +OracleSqlLexer.DISCONNECT = 437; +OracleSqlLexer.DISK = 438; +OracleSqlLexer.DISKGROUP = 439; +OracleSqlLexer.DISKGROUP_PLUS = 440; +OracleSqlLexer.DISKS = 441; +OracleSqlLexer.DISMOUNT = 442; +OracleSqlLexer.DISTINCT = 443; +OracleSqlLexer.DISTINGUISHED = 444; +OracleSqlLexer.DISTRIBUTED = 445; +OracleSqlLexer.DISTRIBUTE = 446; +OracleSqlLexer.DML = 447; +OracleSqlLexer.DML_UPDATE = 448; +OracleSqlLexer.DNFS_DISABLE = 449; +OracleSqlLexer.DNFS_ENABLE = 450; +OracleSqlLexer.DNFS_READBUFFERS = 451; +OracleSqlLexer.DOCFIDELITY = 452; +OracleSqlLexer.DOCUMENT = 453; +OracleSqlLexer.DOLLAR_ELSE = 454; +OracleSqlLexer.DOLLAR_ELSIF = 455; +OracleSqlLexer.DOLLAR_END = 456; +OracleSqlLexer.DOLLAR_ERROR = 457; +OracleSqlLexer.DOLLAR_IF = 458; +OracleSqlLexer.DOLLAR_THEN = 459; +OracleSqlLexer.DOMAIN_INDEX_FILTER = 460; +OracleSqlLexer.DOMAIN_INDEX_NO_SORT = 461; +OracleSqlLexer.DOMAIN_INDEX_SORT = 462; +OracleSqlLexer.DOUBLE = 463; +OracleSqlLexer.DOWNGRADE = 464; +OracleSqlLexer.DRIVING_SITE = 465; +OracleSqlLexer.DROP_COLUMN = 466; +OracleSqlLexer.DROP = 467; +OracleSqlLexer.DROP_GROUP = 468; +OracleSqlLexer.DSINTERVAL_UNCONSTRAINED = 469; +OracleSqlLexer.DST_UPGRADE_INSERT_CONV = 470; +OracleSqlLexer.DUMP = 471; +OracleSqlLexer.DUMPSET = 472; +OracleSqlLexer.DUPLICATE = 473; +OracleSqlLexer.DV = 474; +OracleSqlLexer.DYNAMIC = 475; +OracleSqlLexer.DYNAMIC_SAMPLING = 476; +OracleSqlLexer.DYNAMIC_SAMPLING_EST_CDN = 477; +OracleSqlLexer.E_LETTER = 478; +OracleSqlLexer.EACH = 479; +OracleSqlLexer.EDITIONABLE = 480; +OracleSqlLexer.EDITION = 481; +OracleSqlLexer.EDITIONING = 482; +OracleSqlLexer.EDITIONS = 483; +OracleSqlLexer.ELEMENT = 484; +OracleSqlLexer.ELIM_GROUPBY = 485; +OracleSqlLexer.ELIMINATE_JOIN = 486; +OracleSqlLexer.ELIMINATE_OBY = 487; +OracleSqlLexer.ELIMINATE_OUTER_JOIN = 488; +OracleSqlLexer.ELSE = 489; +OracleSqlLexer.ELSIF = 490; +OracleSqlLexer.EM = 491; +OracleSqlLexer.EMBEDDED = 492; +OracleSqlLexer.EMPTY_BLOB = 493; +OracleSqlLexer.EMPTY_CLOB = 494; +OracleSqlLexer.EMPTY_ = 495; +OracleSqlLexer.ENABLE_ALL = 496; +OracleSqlLexer.ENABLE = 497; +OracleSqlLexer.ENABLED = 498; +OracleSqlLexer.ENABLE_PARALLEL_DML = 499; +OracleSqlLexer.ENABLE_PRESET = 500; +OracleSqlLexer.ENCLOSED = 501; +OracleSqlLexer.ENCODING = 502; +OracleSqlLexer.ENCRYPT = 503; +OracleSqlLexer.ENCRYPTION = 504; +OracleSqlLexer.ENCRYPTPASSWORDISNULL = 505; +OracleSqlLexer.END = 506; +OracleSqlLexer.END_OUTLINE_DATA = 507; +OracleSqlLexer.ENDIAN = 508; +OracleSqlLexer.ENFORCED = 509; +OracleSqlLexer.ENFORCE = 510; +OracleSqlLexer.ENQUEUE = 511; +OracleSqlLexer.ENTERPRISE = 512; +OracleSqlLexer.ENTITYESCAPING = 513; +OracleSqlLexer.ENTRY = 514; +OracleSqlLexer.EQUIPART = 515; +OracleSqlLexer.ERR = 516; +OracleSqlLexer.ERROR_ARGUMENT = 517; +OracleSqlLexer.ERROR = 518; +OracleSqlLexer.ERROR_ON_OVERLAP_TIME = 519; +OracleSqlLexer.ERRORS = 520; +OracleSqlLexer.ERROR_INDEX = 521; +OracleSqlLexer.ERROR_CODE = 522; +OracleSqlLexer.ESCAPE = 523; +OracleSqlLexer.ESCAPED = 524; +OracleSqlLexer.ESTIMATE = 525; +OracleSqlLexer.EVAL = 526; +OracleSqlLexer.EVALNAME = 527; +OracleSqlLexer.EVALUATE = 528; +OracleSqlLexer.EVALUATION = 529; +OracleSqlLexer.EVENTS = 530; +OracleSqlLexer.EVERY = 531; +OracleSqlLexer.EXCEPT = 532; +OracleSqlLexer.EXCEPTION = 533; +OracleSqlLexer.EXCEPTION_INIT = 534; +OracleSqlLexer.EXCEPTIONS = 535; +OracleSqlLexer.EXCHANGE = 536; +OracleSqlLexer.EXCLUDE = 537; +OracleSqlLexer.EXCLUDING = 538; +OracleSqlLexer.EXCLUSIVE = 539; +OracleSqlLexer.EXECUTE = 540; +OracleSqlLexer.EXEMPT = 541; +OracleSqlLexer.EXISTING = 542; +OracleSqlLexer.EXISTS = 543; +OracleSqlLexer.EXISTSNODE = 544; +OracleSqlLexer.EXIT = 545; +OracleSqlLexer.EXPAND_GSET_TO_UNION = 546; +OracleSqlLexer.EXPAND_TABLE = 547; +OracleSqlLexer.EXP = 548; +OracleSqlLexer.EXPIRE = 549; +OracleSqlLexer.EXPLAIN = 550; +OracleSqlLexer.EXPLOSION = 551; +OracleSqlLexer.EXPORT = 552; +OracleSqlLexer.EXPR_CORR_CHECK = 553; +OracleSqlLexer.EXPRESS = 554; +OracleSqlLexer.EXTENDS = 555; +OracleSqlLexer.EXTENT = 556; +OracleSqlLexer.EXTENTS = 557; +OracleSqlLexer.EXTERNAL = 558; +OracleSqlLexer.EXTERNALLY = 559; +OracleSqlLexer.EXTRACTCLOBXML = 560; +OracleSqlLexer.EXTRACT = 561; +OracleSqlLexer.EXTRACTVALUE = 562; +OracleSqlLexer.EXTRA = 563; +OracleSqlLexer.FACILITY = 564; +OracleSqlLexer.FACT = 565; +OracleSqlLexer.FACTOR = 566; +OracleSqlLexer.FACTORIZE_JOIN = 567; +OracleSqlLexer.FAILED = 568; +OracleSqlLexer.FAILED_LOGIN_ATTEMPTS = 569; +OracleSqlLexer.FAILGROUP = 570; +OracleSqlLexer.FAILOVER = 571; +OracleSqlLexer.FAILURE = 572; +OracleSqlLexer.FALSE = 573; +OracleSqlLexer.FAMILY = 574; +OracleSqlLexer.FAR = 575; +OracleSqlLexer.FAST = 576; +OracleSqlLexer.FASTSTART = 577; +OracleSqlLexer.FBTSCAN = 578; +OracleSqlLexer.FEATURE = 579; +OracleSqlLexer.FEATURE_DETAILS = 580; +OracleSqlLexer.FEATURE_ID = 581; +OracleSqlLexer.FEATURE_SET = 582; +OracleSqlLexer.FEATURE_VALUE = 583; +OracleSqlLexer.FETCH = 584; +OracleSqlLexer.FIELD = 585; +OracleSqlLexer.FIELDS = 586; +OracleSqlLexer.FILE = 587; +OracleSqlLexer.FILE_NAME_CONVERT = 588; +OracleSqlLexer.FILEGROUP = 589; +OracleSqlLexer.FILESTORE = 590; +OracleSqlLexer.FILESYSTEM_LIKE_LOGGING = 591; +OracleSqlLexer.FILTER = 592; +OracleSqlLexer.FINAL = 593; +OracleSqlLexer.FINE = 594; +OracleSqlLexer.FINISH = 595; +OracleSqlLexer.FIRST = 596; +OracleSqlLexer.FIRSTM = 597; +OracleSqlLexer.FIRST_ROWS = 598; +OracleSqlLexer.FIRST_VALUE = 599; +OracleSqlLexer.FIXED = 600; +OracleSqlLexer.FIXED_VIEW_DATA = 601; +OracleSqlLexer.FLAGGER = 602; +OracleSqlLexer.FLASHBACK = 603; +OracleSqlLexer.FLASH_CACHE = 604; +OracleSqlLexer.FLOAT = 605; +OracleSqlLexer.FLOB = 606; +OracleSqlLexer.FLEX = 607; +OracleSqlLexer.FLOOR = 608; +OracleSqlLexer.FLUSH = 609; +OracleSqlLexer.FOLDER = 610; +OracleSqlLexer.FOLLOWING = 611; +OracleSqlLexer.FOLLOWS = 612; +OracleSqlLexer.FORALL = 613; +OracleSqlLexer.FORCE = 614; +OracleSqlLexer.FORCE_XML_QUERY_REWRITE = 615; +OracleSqlLexer.FOREIGN = 616; +OracleSqlLexer.FOREVER = 617; +OracleSqlLexer.FOR = 618; +OracleSqlLexer.FORMAT = 619; +OracleSqlLexer.FORWARD = 620; +OracleSqlLexer.FRAGMENT_NUMBER = 621; +OracleSqlLexer.FREELIST = 622; +OracleSqlLexer.FREELISTS = 623; +OracleSqlLexer.FREEPOOLS = 624; +OracleSqlLexer.FRESH = 625; +OracleSqlLexer.FROM = 626; +OracleSqlLexer.FROM_TZ = 627; +OracleSqlLexer.FULL = 628; +OracleSqlLexer.FULL_OUTER_JOIN_TO_OUTER = 629; +OracleSqlLexer.FUNCTION = 630; +OracleSqlLexer.FUNCTIONS = 631; +OracleSqlLexer.FTP = 632; +OracleSqlLexer.G_LETTER = 633; +OracleSqlLexer.GATHER_OPTIMIZER_STATISTICS = 634; +OracleSqlLexer.GATHER_PLAN_STATISTICS = 635; +OracleSqlLexer.GBY_CONC_ROLLUP = 636; +OracleSqlLexer.GBY_PUSHDOWN = 637; +OracleSqlLexer.GENERATED = 638; +OracleSqlLexer.GET = 639; +OracleSqlLexer.GLOBAL = 640; +OracleSqlLexer.GLOBALLY = 641; +OracleSqlLexer.GLOBAL_NAME = 642; +OracleSqlLexer.GLOBAL_TOPIC_ENABLED = 643; +OracleSqlLexer.GOTO = 644; +OracleSqlLexer.GRANT = 645; +OracleSqlLexer.GROUP_BY = 646; +OracleSqlLexer.GROUP = 647; +OracleSqlLexer.GROUP_ID = 648; +OracleSqlLexer.GROUPING = 649; +OracleSqlLexer.GROUPING_ID = 650; +OracleSqlLexer.GROUPS = 651; +OracleSqlLexer.GUARANTEED = 652; +OracleSqlLexer.GUARANTEE = 653; +OracleSqlLexer.GUARD = 654; +OracleSqlLexer.HADOOP_TRAILERS = 655; +OracleSqlLexer.HALF_YEARS = 656; +OracleSqlLexer.HASH_AJ = 657; +OracleSqlLexer.HASH = 658; +OracleSqlLexer.HASHKEYS = 659; +OracleSqlLexer.HASH_SJ = 660; +OracleSqlLexer.HAVING = 661; +OracleSqlLexer.HEADER = 662; +OracleSqlLexer.HEAP = 663; +OracleSqlLexer.HELP = 664; +OracleSqlLexer.HEXTORAW = 665; +OracleSqlLexer.HEXTOREF = 666; +OracleSqlLexer.HIDDEN_KEYWORD = 667; +OracleSqlLexer.HIDE = 668; +OracleSqlLexer.HIER_ORDER = 669; +OracleSqlLexer.HIERARCHICAL = 670; +OracleSqlLexer.HIERARCHIES = 671; +OracleSqlLexer.HIERARCHY = 672; +OracleSqlLexer.HIGH = 673; +OracleSqlLexer.HINTSET_BEGIN = 674; +OracleSqlLexer.HINTSET_END = 675; +OracleSqlLexer.HOT = 676; +OracleSqlLexer.HOUR = 677; +OracleSqlLexer.HOURS = 678; +OracleSqlLexer.HTTP = 679; +OracleSqlLexer.HWM_BROKERED = 680; +OracleSqlLexer.HYBRID = 681; +OracleSqlLexer.H_LETTER = 682; +OracleSqlLexer.IDENTIFIED = 683; +OracleSqlLexer.IDENTIFIER = 684; +OracleSqlLexer.IDENTITY = 685; +OracleSqlLexer.IDGENERATORS = 686; +OracleSqlLexer.ID = 687; +OracleSqlLexer.IDLE_TIME = 688; +OracleSqlLexer.IF = 689; +OracleSqlLexer.IGNORE = 690; +OracleSqlLexer.IGNORE_CHARS_AFTER_EOR = 691; +OracleSqlLexer.IGNORE_OPTIM_EMBEDDED_HINTS = 692; +OracleSqlLexer.IGNORE_ROW_ON_DUPKEY_INDEX = 693; +OracleSqlLexer.IGNORE_WHERE_CLAUSE = 694; +OracleSqlLexer.ILM = 695; +OracleSqlLexer.IMMEDIATE = 696; +OracleSqlLexer.IMPACT = 697; +OracleSqlLexer.IMPORT = 698; +OracleSqlLexer.INACTIVE = 699; +OracleSqlLexer.INACTIVE_ACCOUNT_TIME = 700; +OracleSqlLexer.INCLUDE = 701; +OracleSqlLexer.INCLUDE_VERSION = 702; +OracleSqlLexer.INCLUDING = 703; +OracleSqlLexer.INCREMENTAL = 704; +OracleSqlLexer.INCREMENT = 705; +OracleSqlLexer.INCR = 706; +OracleSqlLexer.INDENT = 707; +OracleSqlLexer.INDEX_ASC = 708; +OracleSqlLexer.INDEX_COMBINE = 709; +OracleSqlLexer.INDEX_DESC = 710; +OracleSqlLexer.INDEXED = 711; +OracleSqlLexer.INDEXES = 712; +OracleSqlLexer.INDEX_FFS = 713; +OracleSqlLexer.INDEX_FILTER = 714; +OracleSqlLexer.INDEX = 715; +OracleSqlLexer.INDEXING = 716; +OracleSqlLexer.INDEX_JOIN = 717; +OracleSqlLexer.INDEX_ROWS = 718; +OracleSqlLexer.INDEX_RRS = 719; +OracleSqlLexer.INDEX_RS_ASC = 720; +OracleSqlLexer.INDEX_RS_DESC = 721; +OracleSqlLexer.INDEX_RS = 722; +OracleSqlLexer.INDEX_SCAN = 723; +OracleSqlLexer.INDEX_SKIP_SCAN = 724; +OracleSqlLexer.INDEX_SS_ASC = 725; +OracleSqlLexer.INDEX_SS_DESC = 726; +OracleSqlLexer.INDEX_SS = 727; +OracleSqlLexer.INDEX_STATS = 728; +OracleSqlLexer.INDEXTYPE = 729; +OracleSqlLexer.INDEXTYPES = 730; +OracleSqlLexer.INDICATOR = 731; +OracleSqlLexer.INDICES = 732; +OracleSqlLexer.INFINITE = 733; +OracleSqlLexer.INFORMATIONAL = 734; +OracleSqlLexer.INHERIT = 735; +OracleSqlLexer.IN = 736; +OracleSqlLexer.INITCAP = 737; +OracleSqlLexer.INITIAL = 738; +OracleSqlLexer.INITIALIZED = 739; +OracleSqlLexer.INITIALLY = 740; +OracleSqlLexer.INITRANS = 741; +OracleSqlLexer.INLINE = 742; +OracleSqlLexer.INLINE_XMLTYPE_NT = 743; +OracleSqlLexer.INMEMORY = 744; +OracleSqlLexer.IN_MEMORY_METADATA = 745; +OracleSqlLexer.INMEMORY_PRUNING = 746; +OracleSqlLexer.INNER = 747; +OracleSqlLexer.INOUT = 748; +OracleSqlLexer.INPLACE = 749; +OracleSqlLexer.INPUTFORMAT = 750; +OracleSqlLexer.INSERTCHILDXMLAFTER = 751; +OracleSqlLexer.INSERTCHILDXMLBEFORE = 752; +OracleSqlLexer.INSERTCHILDXML = 753; +OracleSqlLexer.INSERT = 754; +OracleSqlLexer.INSERTXMLAFTER = 755; +OracleSqlLexer.INSERTXMLBEFORE = 756; +OracleSqlLexer.INSTANCE = 757; +OracleSqlLexer.INSTANCES = 758; +OracleSqlLexer.INSTANTIABLE = 759; +OracleSqlLexer.INSTANTLY = 760; +OracleSqlLexer.INSTEAD = 761; +OracleSqlLexer.INSTR2 = 762; +OracleSqlLexer.INSTR4 = 763; +OracleSqlLexer.INSTRB = 764; +OracleSqlLexer.INSTRC = 765; +OracleSqlLexer.INSTR = 766; +OracleSqlLexer.INTEGER = 767; +OracleSqlLexer.INTERLEAVED = 768; +OracleSqlLexer.INTERMEDIATE = 769; +OracleSqlLexer.INTERNAL_CONVERT = 770; +OracleSqlLexer.INTERNAL_USE = 771; +OracleSqlLexer.INTERPRETED = 772; +OracleSqlLexer.INTERSECT = 773; +OracleSqlLexer.INTERVAL = 774; +OracleSqlLexer.INT = 775; +OracleSqlLexer.INTERNAL = 776; +OracleSqlLexer.INTO = 777; +OracleSqlLexer.INVALIDATE = 778; +OracleSqlLexer.INVALIDATION = 779; +OracleSqlLexer.INVISIBLE = 780; +OracleSqlLexer.IN_XQUERY = 781; +OracleSqlLexer.IO_OPTIONS = 782; +OracleSqlLexer.IS = 783; +OracleSqlLexer.IS_LEAF = 784; +OracleSqlLexer.ISOLATION = 785; +OracleSqlLexer.ISOLATION_LEVEL = 786; +OracleSqlLexer.ITEMS = 787; +OracleSqlLexer.ITERATE = 788; +OracleSqlLexer.ITERATION_NUMBER = 789; +OracleSqlLexer.JAVA = 790; +OracleSqlLexer.JOB = 791; +OracleSqlLexer.JOIN = 792; +OracleSqlLexer.JSON_ARRAYAGG = 793; +OracleSqlLexer.JSON_ARRAY = 794; +OracleSqlLexer.JSON_EQUAL = 795; +OracleSqlLexer.JSON_EXISTS2 = 796; +OracleSqlLexer.JSON_EXISTS = 797; +OracleSqlLexer.JSONGET = 798; +OracleSqlLexer.JSON = 799; +OracleSqlLexer.JSON_OBJECTAGG = 800; +OracleSqlLexer.JSON_OBJECT = 801; +OracleSqlLexer.JSONPARSE = 802; +OracleSqlLexer.JSON_QUERY = 803; +OracleSqlLexer.JSON_SERIALIZE = 804; +OracleSqlLexer.JSON_TABLE = 805; +OracleSqlLexer.JSON_TEXTCONTAINS2 = 806; +OracleSqlLexer.JSON_TEXTCONTAINS = 807; +OracleSqlLexer.JSON_TRANSFORM = 808; +OracleSqlLexer.JSON_VALUE = 809; +OracleSqlLexer.K_LETTER = 810; +OracleSqlLexer.KEEP_DUPLICATES = 811; +OracleSqlLexer.KEEP = 812; +OracleSqlLexer.KERBEROS = 813; +OracleSqlLexer.KEY = 814; +OracleSqlLexer.KEY_LENGTH = 815; +OracleSqlLexer.KEYSIZE = 816; +OracleSqlLexer.KEYS = 817; +OracleSqlLexer.KEYSTORE = 818; +OracleSqlLexer.KILL = 819; +OracleSqlLexer.LABEL = 820; +OracleSqlLexer.LANGUAGE = 821; +OracleSqlLexer.LAST_DAY = 822; +OracleSqlLexer.LAST = 823; +OracleSqlLexer.LAST_VALUE = 824; +OracleSqlLexer.LATERAL = 825; +OracleSqlLexer.LATEST = 826; +OracleSqlLexer.LAX = 827; +OracleSqlLexer.LAYER = 828; +OracleSqlLexer.LDAP_REGISTRATION_ENABLED = 829; +OracleSqlLexer.LDAP_REGISTRATION = 830; +OracleSqlLexer.LDAP_REG_SYNC_INTERVAL = 831; +OracleSqlLexer.LDRTRIM = 832; +OracleSqlLexer.LEAF = 833; +OracleSqlLexer.LEAD_CDB = 834; +OracleSqlLexer.LEAD_CDB_URI = 835; +OracleSqlLexer.LEADING = 836; +OracleSqlLexer.LEFT = 837; +OracleSqlLexer.LENGTH2 = 838; +OracleSqlLexer.LENGTH4 = 839; +OracleSqlLexer.LENGTHB = 840; +OracleSqlLexer.LENGTHC = 841; +OracleSqlLexer.LENGTH = 842; +OracleSqlLexer.LESS = 843; +OracleSqlLexer.LEVEL = 844; +OracleSqlLexer.LEVEL_NAME = 845; +OracleSqlLexer.LEVELS = 846; +OracleSqlLexer.LIBRARY = 847; +OracleSqlLexer.LIFECYCLE = 848; +OracleSqlLexer.LIFE = 849; +OracleSqlLexer.LIFETIME = 850; +OracleSqlLexer.LIKE2 = 851; +OracleSqlLexer.LIKE4 = 852; +OracleSqlLexer.LIKEC = 853; +OracleSqlLexer.LIKE_EXPAND = 854; +OracleSqlLexer.LIKE = 855; +OracleSqlLexer.LIMIT = 856; +OracleSqlLexer.LINEAR = 857; +OracleSqlLexer.LINES = 858; +OracleSqlLexer.LINK = 859; +OracleSqlLexer.LIST = 860; +OracleSqlLexer.LITTLE = 861; +OracleSqlLexer.LLS = 862; +OracleSqlLexer.LN = 863; +OracleSqlLexer.LNNVL = 864; +OracleSqlLexer.LOAD = 865; +OracleSqlLexer.LOB = 866; +OracleSqlLexer.LOBFILE = 867; +OracleSqlLexer.LOBNVL = 868; +OracleSqlLexer.LOBS = 869; +OracleSqlLexer.LOCAL_INDEXES = 870; +OracleSqlLexer.LOCAL = 871; +OracleSqlLexer.LOCALTIME = 872; +OracleSqlLexer.LOCALTIMESTAMP = 873; +OracleSqlLexer.LOCATION = 874; +OracleSqlLexer.LOCATOR = 875; +OracleSqlLexer.LOCKDOWN = 876; +OracleSqlLexer.LOCKED = 877; +OracleSqlLexer.LOCKING = 878; +OracleSqlLexer.LOCK = 879; +OracleSqlLexer.LOGFILE = 880; +OracleSqlLexer.LOGFILES = 881; +OracleSqlLexer.LOGGING = 882; +OracleSqlLexer.LOGICAL = 883; +OracleSqlLexer.LOGICAL_READS_PER_CALL = 884; +OracleSqlLexer.LOGICAL_READS_PER_SESSION = 885; +OracleSqlLexer.LOG = 886; +OracleSqlLexer.LOGMINING = 887; +OracleSqlLexer.LOGOFF = 888; +OracleSqlLexer.LOGON = 889; +OracleSqlLexer.LOG_READ_ONLY_VIOLATIONS = 890; +OracleSqlLexer.LONG = 891; +OracleSqlLexer.LOOP = 892; +OracleSqlLexer.LOST = 893; +OracleSqlLexer.LOWER = 894; +OracleSqlLexer.LOW = 895; +OracleSqlLexer.LPAD = 896; +OracleSqlLexer.LRTRIM = 897; +OracleSqlLexer.LTRIM = 898; +OracleSqlLexer.M_LETTER = 899; +OracleSqlLexer.MAIN = 900; +OracleSqlLexer.MAKE_REF = 901; +OracleSqlLexer.MANAGED = 902; +OracleSqlLexer.MANAGE = 903; +OracleSqlLexer.MANAGEMENT = 904; +OracleSqlLexer.MANAGER = 905; +OracleSqlLexer.MANDATORY = 906; +OracleSqlLexer.MANUAL = 907; +OracleSqlLexer.MAP = 908; +OracleSqlLexer.MAPPING = 909; +OracleSqlLexer.MASK = 910; +OracleSqlLexer.MASTER = 911; +OracleSqlLexer.MATCHED = 912; +OracleSqlLexer.MATCHES = 913; +OracleSqlLexer.MATCH = 914; +OracleSqlLexer.MATCH_NUMBER = 915; +OracleSqlLexer.MATCH_RECOGNIZE = 916; +OracleSqlLexer.MATERIALIZED = 917; +OracleSqlLexer.MATERIALIZE = 918; +OracleSqlLexer.MAXARCHLOGS = 919; +OracleSqlLexer.MAXDATAFILES = 920; +OracleSqlLexer.MAXEXTENTS = 921; +OracleSqlLexer.MAXIMIZE = 922; +OracleSqlLexer.MAXINSTANCES = 923; +OracleSqlLexer.MAXLOGFILES = 924; +OracleSqlLexer.MAXLOGHISTORY = 925; +OracleSqlLexer.MAXLOGMEMBERS = 926; +OracleSqlLexer.MAX_SHARED_TEMP_SIZE = 927; +OracleSqlLexer.MAXSIZE = 928; +OracleSqlLexer.MAXTRANS = 929; +OracleSqlLexer.MAXVALUE = 930; +OracleSqlLexer.MEASURE = 931; +OracleSqlLexer.MEASURES = 932; +OracleSqlLexer.MEDIUM = 933; +OracleSqlLexer.MEMBER = 934; +OracleSqlLexer.MEMBER_CAPTION = 935; +OracleSqlLexer.MEMBER_DESCRIPTION = 936; +OracleSqlLexer.MEMBER_NAME = 937; +OracleSqlLexer.MEMBER_UNIQUE_NAME = 938; +OracleSqlLexer.MEMCOMPRESS = 939; +OracleSqlLexer.MEMORY = 940; +OracleSqlLexer.MERGEACTIONS = 941; +OracleSqlLexer.MERGE_AJ = 942; +OracleSqlLexer.MERGE_CONST_ON = 943; +OracleSqlLexer.MERGE = 944; +OracleSqlLexer.MERGE_SJ = 945; +OracleSqlLexer.METADATA = 946; +OracleSqlLexer.METHOD = 947; +OracleSqlLexer.MIGRATE = 948; +OracleSqlLexer.MIGRATION = 949; +OracleSqlLexer.MINEXTENTS = 950; +OracleSqlLexer.MINIMIZE = 951; +OracleSqlLexer.MINIMUM = 952; +OracleSqlLexer.MINING = 953; +OracleSqlLexer.MINUS = 954; +OracleSqlLexer.MINUS_NULL = 955; +OracleSqlLexer.MINUTE = 956; +OracleSqlLexer.MINUTES = 957; +OracleSqlLexer.MINVALUE = 958; +OracleSqlLexer.MIRRORCOLD = 959; +OracleSqlLexer.MIRRORHOT = 960; +OracleSqlLexer.MIRROR = 961; +OracleSqlLexer.MISSING = 962; +OracleSqlLexer.MISMATCH = 963; +OracleSqlLexer.MLSLABEL = 964; +OracleSqlLexer.MODEL_COMPILE_SUBQUERY = 965; +OracleSqlLexer.MODEL_DONTVERIFY_UNIQUENESS = 966; +OracleSqlLexer.MODEL_DYNAMIC_SUBQUERY = 967; +OracleSqlLexer.MODEL_MIN_ANALYSIS = 968; +OracleSqlLexer.MODEL = 969; +OracleSqlLexer.MODEL_NB = 970; +OracleSqlLexer.MODEL_NO_ANALYSIS = 971; +OracleSqlLexer.MODEL_PBY = 972; +OracleSqlLexer.MODEL_PUSH_REF = 973; +OracleSqlLexer.MODEL_SV = 974; +OracleSqlLexer.MODE = 975; +OracleSqlLexer.MODIFICATION = 976; +OracleSqlLexer.MODIFY_COLUMN_TYPE = 977; +OracleSqlLexer.MODIFY = 978; +OracleSqlLexer.MOD = 979; +OracleSqlLexer.MODULE = 980; +OracleSqlLexer.MONITORING = 981; +OracleSqlLexer.MONITOR = 982; +OracleSqlLexer.MONTH = 983; +OracleSqlLexer.MONTHS_BETWEEN = 984; +OracleSqlLexer.MONTHS = 985; +OracleSqlLexer.MOUNT = 986; +OracleSqlLexer.MOUNTPATH = 987; +OracleSqlLexer.MOUNTPOINT = 988; +OracleSqlLexer.MOVEMENT = 989; +OracleSqlLexer.MOVE = 990; +OracleSqlLexer.MULTIDIMENSIONAL = 991; +OracleSqlLexer.MULTISET = 992; +OracleSqlLexer.MV_MERGE = 993; +OracleSqlLexer.NAMED = 994; +OracleSqlLexer.NAME = 995; +OracleSqlLexer.NAMESPACE = 996; +OracleSqlLexer.NAN_ = 997; +OracleSqlLexer.NANVL = 998; +OracleSqlLexer.NATIONAL = 999; +OracleSqlLexer.NATIVE_FULL_OUTER_JOIN = 1000; +OracleSqlLexer.NATIVE = 1001; +OracleSqlLexer.NATURAL = 1002; +OracleSqlLexer.NATURALN = 1003; +OracleSqlLexer.NAV = 1004; +OracleSqlLexer.NCHAR_CS = 1005; +OracleSqlLexer.NCHAR = 1006; +OracleSqlLexer.NCHR = 1007; +OracleSqlLexer.NCLOB = 1008; +OracleSqlLexer.NEEDED = 1009; +OracleSqlLexer.NEG = 1010; +OracleSqlLexer.NESTED = 1011; +OracleSqlLexer.NESTED_TABLE_FAST_INSERT = 1012; +OracleSqlLexer.NESTED_TABLE_GET_REFS = 1013; +OracleSqlLexer.NESTED_TABLE_ID = 1014; +OracleSqlLexer.NESTED_TABLE_SET_REFS = 1015; +OracleSqlLexer.NESTED_TABLE_SET_SETID = 1016; +OracleSqlLexer.NETWORK = 1017; +OracleSqlLexer.NEVER = 1018; +OracleSqlLexer.NEW = 1019; +OracleSqlLexer.NEWLINE_ = 1020; +OracleSqlLexer.NEW_TIME = 1021; +OracleSqlLexer.NEXT_DAY = 1022; +OracleSqlLexer.NEXT = 1023; +OracleSqlLexer.NL_AJ = 1024; +OracleSqlLexer.NLJ_BATCHING = 1025; +OracleSqlLexer.NLJ_INDEX_FILTER = 1026; +OracleSqlLexer.NLJ_INDEX_SCAN = 1027; +OracleSqlLexer.NLJ_PREFETCH = 1028; +OracleSqlLexer.NLS_CALENDAR = 1029; +OracleSqlLexer.NLS_CHARACTERSET = 1030; +OracleSqlLexer.NLS_CHARSET_DECL_LEN = 1031; +OracleSqlLexer.NLS_CHARSET_ID = 1032; +OracleSqlLexer.NLS_CHARSET_NAME = 1033; +OracleSqlLexer.NLS_COMP = 1034; +OracleSqlLexer.NLS_CURRENCY = 1035; +OracleSqlLexer.NLS_DATE_FORMAT = 1036; +OracleSqlLexer.NLS_DATE_LANGUAGE = 1037; +OracleSqlLexer.NLS_INITCAP = 1038; +OracleSqlLexer.NLS_ISO_CURRENCY = 1039; +OracleSqlLexer.NL_SJ = 1040; +OracleSqlLexer.NLS_LANG = 1041; +OracleSqlLexer.NLS_LANGUAGE = 1042; +OracleSqlLexer.NLS_LENGTH_SEMANTICS = 1043; +OracleSqlLexer.NLS_LOWER = 1044; +OracleSqlLexer.NLS_NCHAR_CONV_EXCP = 1045; +OracleSqlLexer.NLS_NUMERIC_CHARACTERS = 1046; +OracleSqlLexer.NLS_SORT = 1047; +OracleSqlLexer.NLSSORT = 1048; +OracleSqlLexer.NLS_SPECIAL_CHARS = 1049; +OracleSqlLexer.NLS_TERRITORY = 1050; +OracleSqlLexer.NLS_UPPER = 1051; +OracleSqlLexer.NO_ACCESS = 1052; +OracleSqlLexer.NO_ADAPTIVE_PLAN = 1053; +OracleSqlLexer.NO_ANSI_REARCH = 1054; +OracleSqlLexer.NOAPPEND = 1055; +OracleSqlLexer.NOARCHIVELOG = 1056; +OracleSqlLexer.NOAUDIT = 1057; +OracleSqlLexer.NOBADFILE = 1058; +OracleSqlLexer.NO_AUTO_REOPTIMIZE = 1059; +OracleSqlLexer.NO_BASETABLE_MULTIMV_REWRITE = 1060; +OracleSqlLexer.NO_BATCH_TABLE_ACCESS_BY_ROWID = 1061; +OracleSqlLexer.NO_BIND_AWARE = 1062; +OracleSqlLexer.NO_BUFFER = 1063; +OracleSqlLexer.NOCACHE = 1064; +OracleSqlLexer.NOCHECK = 1065; +OracleSqlLexer.NO_CARTESIAN = 1066; +OracleSqlLexer.NO_CHECK_ACL_REWRITE = 1067; +OracleSqlLexer.NO_CLUSTER_BY_ROWID = 1068; +OracleSqlLexer.NO_CLUSTERING = 1069; +OracleSqlLexer.NO_COALESCE_SQ = 1070; +OracleSqlLexer.NO_COMMON_DATA = 1071; +OracleSqlLexer.NOCOMPRESS = 1072; +OracleSqlLexer.NO_CONNECT_BY_CB_WHR_ONLY = 1073; +OracleSqlLexer.NO_CONNECT_BY_COMBINE_SW = 1074; +OracleSqlLexer.NO_CONNECT_BY_COST_BASED = 1075; +OracleSqlLexer.NO_CONNECT_BY_ELIM_DUPS = 1076; +OracleSqlLexer.NO_CONNECT_BY_FILTERING = 1077; +OracleSqlLexer.NOCOPY = 1078; +OracleSqlLexer.NO_COST_XML_QUERY_REWRITE = 1079; +OracleSqlLexer.NO_CPU_COSTING = 1080; +OracleSqlLexer.NOCPU_COSTING = 1081; +OracleSqlLexer.NOCYCLE = 1082; +OracleSqlLexer.NO_DATA_SECURITY_REWRITE = 1083; +OracleSqlLexer.NO_DECORRELATE = 1084; +OracleSqlLexer.NODELAY = 1085; +OracleSqlLexer.NODIRECTIO = 1086; +OracleSqlLexer.NODISCARDFILE = 1087; +OracleSqlLexer.NO_DOMAIN_INDEX_FILTER = 1088; +OracleSqlLexer.NO_DST_UPGRADE_INSERT_CONV = 1089; +OracleSqlLexer.NO_ELIM_GROUPBY = 1090; +OracleSqlLexer.NO_ELIMINATE_JOIN = 1091; +OracleSqlLexer.NO_ELIMINATE_OBY = 1092; +OracleSqlLexer.NO_ELIMINATE_OUTER_JOIN = 1093; +OracleSqlLexer.NOENTITYESCAPING = 1094; +OracleSqlLexer.NO_EXPAND_GSET_TO_UNION = 1095; +OracleSqlLexer.NO_EXPAND = 1096; +OracleSqlLexer.NO_EXPAND_TABLE = 1097; +OracleSqlLexer.NOEXTEND = 1098; +OracleSqlLexer.NO_FACT = 1099; +OracleSqlLexer.NO_FACTORIZE_JOIN = 1100; +OracleSqlLexer.NO_FILTERING = 1101; +OracleSqlLexer.NOFORCE = 1102; +OracleSqlLexer.NO_FULL_OUTER_JOIN_TO_OUTER = 1103; +OracleSqlLexer.NO_GATHER_OPTIMIZER_STATISTICS = 1104; +OracleSqlLexer.NO_GBY_PUSHDOWN = 1105; +OracleSqlLexer.NOGUARANTEE = 1106; +OracleSqlLexer.NO_INDEX_FFS = 1107; +OracleSqlLexer.NO_INDEX = 1108; +OracleSqlLexer.NO_INDEX_SS = 1109; +OracleSqlLexer.NO_INMEMORY = 1110; +OracleSqlLexer.NO_INMEMORY_PRUNING = 1111; +OracleSqlLexer.NOKEEP = 1112; +OracleSqlLexer.NO_LOAD = 1113; +OracleSqlLexer.NOLOCAL = 1114; +OracleSqlLexer.NOLOG = 1115; +OracleSqlLexer.NOLOGFILE = 1116; +OracleSqlLexer.NOLOGGING = 1117; +OracleSqlLexer.NOMAPPING = 1118; +OracleSqlLexer.NOMAXVALUE = 1119; +OracleSqlLexer.NO_MERGE = 1120; +OracleSqlLexer.NOMINIMIZE = 1121; +OracleSqlLexer.NOMINVALUE = 1122; +OracleSqlLexer.NO_MODEL_PUSH_REF = 1123; +OracleSqlLexer.NO_MONITORING = 1124; +OracleSqlLexer.NOMONITORING = 1125; +OracleSqlLexer.NO_MONITOR = 1126; +OracleSqlLexer.NO_MULTIMV_REWRITE = 1127; +OracleSqlLexer.NO_NATIVE_FULL_OUTER_JOIN = 1128; +OracleSqlLexer.NONBLOCKING = 1129; +OracleSqlLexer.NONEDITIONABLE = 1130; +OracleSqlLexer.NONE = 1131; +OracleSqlLexer.NONULLIF = 1132; +OracleSqlLexer.NO_NLJ_BATCHING = 1133; +OracleSqlLexer.NO_NLJ_PREFETCH = 1134; +OracleSqlLexer.NO = 1135; +OracleSqlLexer.NONSCHEMA = 1136; +OracleSqlLexer.NO_OBJECT_LINK = 1137; +OracleSqlLexer.NOORDER = 1138; +OracleSqlLexer.NO_ORDER_ROLLUPS = 1139; +OracleSqlLexer.NO_OUTER_JOIN_TO_ANTI = 1140; +OracleSqlLexer.NO_OUTER_JOIN_TO_INNER = 1141; +OracleSqlLexer.NOOVERRIDE = 1142; +OracleSqlLexer.NO_PARALLEL_INDEX = 1143; +OracleSqlLexer.NOPARALLEL_INDEX = 1144; +OracleSqlLexer.NO_PARALLEL = 1145; +OracleSqlLexer.NOPARALLEL = 1146; +OracleSqlLexer.NO_PARTIAL_COMMIT = 1147; +OracleSqlLexer.NO_PARTIAL_JOIN = 1148; +OracleSqlLexer.NO_PARTIAL_ROLLUP_PUSHDOWN = 1149; +OracleSqlLexer.NOPARTITION = 1150; +OracleSqlLexer.NO_PLACE_DISTINCT = 1151; +OracleSqlLexer.NO_PLACE_GROUP_BY = 1152; +OracleSqlLexer.NO_PQ_CONCURRENT_UNION = 1153; +OracleSqlLexer.NO_PQ_MAP = 1154; +OracleSqlLexer.NOPROMPT = 1155; +OracleSqlLexer.NO_PQ_REPLICATE = 1156; +OracleSqlLexer.NO_PQ_SKEW = 1157; +OracleSqlLexer.NO_PRUNE_GSETS = 1158; +OracleSqlLexer.NO_PULL_PRED = 1159; +OracleSqlLexer.NO_PUSH_PRED = 1160; +OracleSqlLexer.NO_PUSH_SUBQ = 1161; +OracleSqlLexer.NO_PX_FAULT_TOLERANCE = 1162; +OracleSqlLexer.NO_PX_JOIN_FILTER = 1163; +OracleSqlLexer.NO_QKN_BUFF = 1164; +OracleSqlLexer.NO_QUERY_TRANSFORMATION = 1165; +OracleSqlLexer.NO_REF_CASCADE = 1166; +OracleSqlLexer.NORELOCATE = 1167; +OracleSqlLexer.NORELY = 1168; +OracleSqlLexer.NOREPAIR = 1169; +OracleSqlLexer.NOREPLAY = 1170; +OracleSqlLexer.NORESETLOGS = 1171; +OracleSqlLexer.NO_RESULT_CACHE = 1172; +OracleSqlLexer.NOREVERSE = 1173; +OracleSqlLexer.NO_REWRITE = 1174; +OracleSqlLexer.NOREWRITE = 1175; +OracleSqlLexer.NORMAL = 1176; +OracleSqlLexer.NO_ROOT_SW_FOR_LOCAL = 1177; +OracleSqlLexer.NOROWDEPENDENCIES = 1178; +OracleSqlLexer.NOSCALE = 1179; +OracleSqlLexer.NOSCHEMACHECK = 1180; +OracleSqlLexer.NOSEGMENT = 1181; +OracleSqlLexer.NO_SEMIJOIN = 1182; +OracleSqlLexer.NO_SEMI_TO_INNER = 1183; +OracleSqlLexer.NO_SET_TO_JOIN = 1184; +OracleSqlLexer.NOSHARD = 1185; +OracleSqlLexer.NOSORT = 1186; +OracleSqlLexer.NO_SQL_TRANSLATION = 1187; +OracleSqlLexer.NO_SQL_TUNE = 1188; +OracleSqlLexer.NO_STAR_TRANSFORMATION = 1189; +OracleSqlLexer.NO_STATEMENT_QUEUING = 1190; +OracleSqlLexer.NO_STATS_GSETS = 1191; +OracleSqlLexer.NOSTRICT = 1192; +OracleSqlLexer.NO_SUBQUERY_PRUNING = 1193; +OracleSqlLexer.NO_SUBSTRB_PAD = 1194; +OracleSqlLexer.NO_SWAP_JOIN_INPUTS = 1195; +OracleSqlLexer.NOSWITCH = 1196; +OracleSqlLexer.NO_TABLE_LOOKUP_BY_NL = 1197; +OracleSqlLexer.NO_TEMP_TABLE = 1198; +OracleSqlLexer.NOTHING = 1199; +OracleSqlLexer.NOTIFICATION = 1200; +OracleSqlLexer.NOTRIM = 1201; +OracleSqlLexer.NOT = 1202; +OracleSqlLexer.NO_TRANSFORM_DISTINCT_AGG = 1203; +OracleSqlLexer.NO_UNNEST = 1204; +OracleSqlLexer.NO_USE_CUBE = 1205; +OracleSqlLexer.NO_USE_HASH_AGGREGATION = 1206; +OracleSqlLexer.NO_USE_HASH_GBY_FOR_PUSHDOWN = 1207; +OracleSqlLexer.NO_USE_HASH = 1208; +OracleSqlLexer.NO_USE_INVISIBLE_INDEXES = 1209; +OracleSqlLexer.NO_USE_MERGE = 1210; +OracleSqlLexer.NO_USE_NL = 1211; +OracleSqlLexer.NO_USE_VECTOR_AGGREGATION = 1212; +OracleSqlLexer.NOVALIDATE = 1213; +OracleSqlLexer.NO_VECTOR_TRANSFORM_DIMS = 1214; +OracleSqlLexer.NO_VECTOR_TRANSFORM_FACT = 1215; +OracleSqlLexer.NO_VECTOR_TRANSFORM = 1216; +OracleSqlLexer.NOWAIT = 1217; +OracleSqlLexer.NO_XDB_FASTPATH_INSERT = 1218; +OracleSqlLexer.NO_XML_DML_REWRITE = 1219; +OracleSqlLexer.NO_XMLINDEX_REWRITE_IN_SELECT = 1220; +OracleSqlLexer.NO_XMLINDEX_REWRITE = 1221; +OracleSqlLexer.NO_XML_QUERY_REWRITE = 1222; +OracleSqlLexer.NO_ZONEMAP = 1223; +OracleSqlLexer.NTH_VALUE = 1224; +OracleSqlLexer.NULLIF = 1225; +OracleSqlLexer.NULL_ = 1226; +OracleSqlLexer.NULLS = 1227; +OracleSqlLexer.NUMBER = 1228; +OracleSqlLexer.NUMERIC = 1229; +OracleSqlLexer.NUM_INDEX_KEYS = 1230; +OracleSqlLexer.NUMTODSINTERVAL = 1231; +OracleSqlLexer.NUMTOYMINTERVAL = 1232; +OracleSqlLexer.NVARCHAR2 = 1233; +OracleSqlLexer.NVL2 = 1234; +OracleSqlLexer.OBJECT2XML = 1235; +OracleSqlLexer.OBJECT = 1236; +OracleSqlLexer.OBJ_ID = 1237; +OracleSqlLexer.OBJNO = 1238; +OracleSqlLexer.OBJNO_REUSE = 1239; +OracleSqlLexer.OCCURENCES = 1240; +OracleSqlLexer.OFFLINE = 1241; +OracleSqlLexer.OFF = 1242; +OracleSqlLexer.OFFSET = 1243; +OracleSqlLexer.OF = 1244; +OracleSqlLexer.OIDINDEX = 1245; +OracleSqlLexer.OID = 1246; +OracleSqlLexer.OLAP = 1247; +OracleSqlLexer.OLD = 1248; +OracleSqlLexer.OLD_PUSH_PRED = 1249; +OracleSqlLexer.OLS = 1250; +OracleSqlLexer.OLTP = 1251; +OracleSqlLexer.OMIT = 1252; +OracleSqlLexer.ONE = 1253; +OracleSqlLexer.ONLINE = 1254; +OracleSqlLexer.ONLINELOG = 1255; +OracleSqlLexer.ONLY = 1256; +OracleSqlLexer.ON = 1257; +OracleSqlLexer.OPAQUE = 1258; +OracleSqlLexer.OPAQUE_TRANSFORM = 1259; +OracleSqlLexer.OPAQUE_XCANONICAL = 1260; +OracleSqlLexer.OPCODE = 1261; +OracleSqlLexer.OPEN = 1262; +OracleSqlLexer.OPERATIONS = 1263; +OracleSqlLexer.OPERATOR = 1264; +OracleSqlLexer.OPT_ESTIMATE = 1265; +OracleSqlLexer.OPTIMAL = 1266; +OracleSqlLexer.OPTIMIZE = 1267; +OracleSqlLexer.OPTIMIZER_FEATURES_ENABLE = 1268; +OracleSqlLexer.OPTIMIZER_GOAL = 1269; +OracleSqlLexer.OPTION = 1270; +OracleSqlLexer.OPTIONALLY = 1271; +OracleSqlLexer.OPT_PARAM = 1272; +OracleSqlLexer.ORA_BRANCH = 1273; +OracleSqlLexer.ORA_CHECK_ACL = 1274; +OracleSqlLexer.ORA_CHECK_PRIVILEGE = 1275; +OracleSqlLexer.ORA_CLUSTERING = 1276; +OracleSqlLexer.ORADATA = 1277; +OracleSqlLexer.ORC = 1278; +OracleSqlLexer.ORACLE_DATE = 1279; +OracleSqlLexer.ORACLE_NUMBER = 1280; +OracleSqlLexer.ORADEBUG = 1281; +OracleSqlLexer.ORA_DST_AFFECTED = 1282; +OracleSqlLexer.ORA_DST_CONVERT = 1283; +OracleSqlLexer.ORA_DST_ERROR = 1284; +OracleSqlLexer.ORA_GET_ACLIDS = 1285; +OracleSqlLexer.ORA_GET_PRIVILEGES = 1286; +OracleSqlLexer.ORA_HASH = 1287; +OracleSqlLexer.ORA_INVOKING_USERID = 1288; +OracleSqlLexer.ORA_INVOKING_USER = 1289; +OracleSqlLexer.ORA_INVOKING_XS_USER_GUID = 1290; +OracleSqlLexer.ORA_INVOKING_XS_USER = 1291; +OracleSqlLexer.ORA_RAWCOMPARE = 1292; +OracleSqlLexer.ORA_RAWCONCAT = 1293; +OracleSqlLexer.ORA_ROWSCN = 1294; +OracleSqlLexer.ORA_ROWSCN_RAW = 1295; +OracleSqlLexer.ORA_ROWVERSION = 1296; +OracleSqlLexer.ORA_TABVERSION = 1297; +OracleSqlLexer.ORA_WRITE_TIME = 1298; +OracleSqlLexer.ORDERED = 1299; +OracleSqlLexer.ORDERED_PREDICATES = 1300; +OracleSqlLexer.ORDER = 1301; +OracleSqlLexer.ORDINALITY = 1302; +OracleSqlLexer.OR_EXPAND = 1303; +OracleSqlLexer.ORGANIZATION = 1304; +OracleSqlLexer.OR = 1305; +OracleSqlLexer.OR_PREDICATES = 1306; +OracleSqlLexer.OSERROR = 1307; +OracleSqlLexer.OTHER = 1308; +OracleSqlLexer.OUTER_JOIN_TO_ANTI = 1309; +OracleSqlLexer.OUTER_JOIN_TO_INNER = 1310; +OracleSqlLexer.OUTER = 1311; +OracleSqlLexer.OUTLINE_LEAF = 1312; +OracleSqlLexer.OUTLINE = 1313; +OracleSqlLexer.OUTPUTFORMAT = 1314; +OracleSqlLexer.OUT_OF_LINE = 1315; +OracleSqlLexer.OUT = 1316; +OracleSqlLexer.OVERFLOW_NOMOVE = 1317; +OracleSqlLexer.OVERFLOW_ = 1318; +OracleSqlLexer.OVERLAPS = 1319; +OracleSqlLexer.OVER = 1320; +OracleSqlLexer.OVERRIDE = 1321; +OracleSqlLexer.OVERRIDING = 1322; +OracleSqlLexer.OWNER = 1323; +OracleSqlLexer.OWNERSHIP = 1324; +OracleSqlLexer.OWN = 1325; +OracleSqlLexer.P_LETTER = 1326; +OracleSqlLexer.PACKAGE = 1327; +OracleSqlLexer.PACKAGES = 1328; +OracleSqlLexer.PARALLEL_ENABLE = 1329; +OracleSqlLexer.PARALLEL_INDEX = 1330; +OracleSqlLexer.PARALLEL = 1331; +OracleSqlLexer.PARAMETERFILE = 1332; +OracleSqlLexer.PARAMETERS = 1333; +OracleSqlLexer.PARAM = 1334; +OracleSqlLexer.PARENT = 1335; +OracleSqlLexer.PARENT_LEVEL_NAME = 1336; +OracleSqlLexer.PARENT_UNIQUE_NAME = 1337; +OracleSqlLexer.PARITY = 1338; +OracleSqlLexer.PARQUET = 1339; +OracleSqlLexer.PARTIAL_JOIN = 1340; +OracleSqlLexer.PARTIALLY = 1341; +OracleSqlLexer.PARTIAL = 1342; +OracleSqlLexer.PARTIAL_ROLLUP_PUSHDOWN = 1343; +OracleSqlLexer.PARTITION_HASH = 1344; +OracleSqlLexer.PARTITION_LIST = 1345; +OracleSqlLexer.PARTITION = 1346; +OracleSqlLexer.PARTITION_RANGE = 1347; +OracleSqlLexer.PARTITIONS = 1348; +OracleSqlLexer.PARTNUMINST = 1349; +OracleSqlLexer.PASSING = 1350; +OracleSqlLexer.PASSWORD_GRACE_TIME = 1351; +OracleSqlLexer.PASSWORD_LIFE_TIME = 1352; +OracleSqlLexer.PASSWORD_LOCK_TIME = 1353; +OracleSqlLexer.PASSWORD = 1354; +OracleSqlLexer.PASSWORD_REUSE_MAX = 1355; +OracleSqlLexer.PASSWORD_REUSE_TIME = 1356; +OracleSqlLexer.PASSWORD_ROLLOVER_TIME = 1357; +OracleSqlLexer.PASSWORD_VERIFY_FUNCTION = 1358; +OracleSqlLexer.PAST = 1359; +OracleSqlLexer.PATCH = 1360; +OracleSqlLexer.PATH = 1361; +OracleSqlLexer.PATH_PREFIX = 1362; +OracleSqlLexer.PATHS = 1363; +OracleSqlLexer.PATTERN = 1364; +OracleSqlLexer.PBL_HS_BEGIN = 1365; +OracleSqlLexer.PBL_HS_END = 1366; +OracleSqlLexer.PCTFREE = 1367; +OracleSqlLexer.PCTINCREASE = 1368; +OracleSqlLexer.PCTTHRESHOLD = 1369; +OracleSqlLexer.PCTUSED = 1370; +OracleSqlLexer.PCTVERSION = 1371; +OracleSqlLexer.PENDING = 1372; +OracleSqlLexer.PERCENT_FOUND = 1373; +OracleSqlLexer.PERCENT_ISOPEN = 1374; +OracleSqlLexer.PERCENT_NOTFOUND = 1375; +OracleSqlLexer.PERCENT_KEYWORD = 1376; +OracleSqlLexer.PERCENT_RANKM = 1377; +OracleSqlLexer.PERCENT_ROWCOUNT = 1378; +OracleSqlLexer.PERCENT_ROWTYPE = 1379; +OracleSqlLexer.PERCENT_TYPE = 1380; +OracleSqlLexer.PERCENT_BULK_EXCEPTIONS = 1381; +OracleSqlLexer.PERCENT_BULK_ROWCOUNT = 1382; +OracleSqlLexer.PERFORMANCE = 1383; +OracleSqlLexer.PERIOD_KEYWORD = 1384; +OracleSqlLexer.PERMANENT = 1385; +OracleSqlLexer.PERMISSION = 1386; +OracleSqlLexer.PERMUTE = 1387; +OracleSqlLexer.PER = 1388; +OracleSqlLexer.PFILE = 1389; +OracleSqlLexer.PHYSICAL = 1390; +OracleSqlLexer.PIKEY = 1391; +OracleSqlLexer.PIPELINED = 1392; +OracleSqlLexer.PIPE = 1393; +OracleSqlLexer.PIV_GB = 1394; +OracleSqlLexer.PIVOT = 1395; +OracleSqlLexer.PIV_SSF = 1396; +OracleSqlLexer.PLACE_DISTINCT = 1397; +OracleSqlLexer.PLACE_GROUP_BY = 1398; +OracleSqlLexer.PLAN = 1399; +OracleSqlLexer.PLSCOPE_SETTINGS = 1400; +OracleSqlLexer.PLS_INTEGER = 1401; +OracleSqlLexer.PLSQL_CCFLAGS = 1402; +OracleSqlLexer.PLSQL_CODE_TYPE = 1403; +OracleSqlLexer.PLSQL_DEBUG = 1404; +OracleSqlLexer.PLSQL_OPTIMIZE_LEVEL = 1405; +OracleSqlLexer.PLSQL_WARNINGS = 1406; +OracleSqlLexer.PLUGGABLE = 1407; +OracleSqlLexer.PMEM = 1408; +OracleSqlLexer.POINT = 1409; +OracleSqlLexer.POLICY = 1410; +OracleSqlLexer.POOL_16K = 1411; +OracleSqlLexer.POOL_2K = 1412; +OracleSqlLexer.POOL_32K = 1413; +OracleSqlLexer.POOL_4K = 1414; +OracleSqlLexer.POOL_8K = 1415; +OracleSqlLexer.POSITION = 1416; +OracleSqlLexer.POSITIVEN = 1417; +OracleSqlLexer.POSITIVE = 1418; +OracleSqlLexer.POST_TRANSACTION = 1419; +OracleSqlLexer.POWERMULTISET_BY_CARDINALITY = 1420; +OracleSqlLexer.POWERMULTISET = 1421; +OracleSqlLexer.POWER = 1422; +OracleSqlLexer.PQ_CONCURRENT_UNION = 1423; +OracleSqlLexer.PQ_DISTRIBUTE = 1424; +OracleSqlLexer.PQ_DISTRIBUTE_WINDOW = 1425; +OracleSqlLexer.PQ_FILTER = 1426; +OracleSqlLexer.PQ_MAP = 1427; +OracleSqlLexer.PQ_NOMAP = 1428; +OracleSqlLexer.PQ_REPLICATE = 1429; +OracleSqlLexer.PQ_SKEW = 1430; +OracleSqlLexer.PRAGMA = 1431; +OracleSqlLexer.PREBUILT = 1432; +OracleSqlLexer.PRECEDES = 1433; +OracleSqlLexer.PRECEDING = 1434; +OracleSqlLexer.PRECISION = 1435; +OracleSqlLexer.PRECOMPUTE_SUBQUERY = 1436; +OracleSqlLexer.PREDICATE_REORDERS = 1437; +OracleSqlLexer.PRELOAD = 1438; +OracleSqlLexer.PREPARE = 1439; +OracleSqlLexer.PREPROCESSOR = 1440; +OracleSqlLexer.PRESENTNNV = 1441; +OracleSqlLexer.PRESENT = 1442; +OracleSqlLexer.PRESENTV = 1443; +OracleSqlLexer.PRESERVE_OID = 1444; +OracleSqlLexer.PRESERVE = 1445; +OracleSqlLexer.PRETTY = 1446; +OracleSqlLexer.PREVIOUS = 1447; +OracleSqlLexer.PREV = 1448; +OracleSqlLexer.PRIMARY = 1449; +OracleSqlLexer.PRINTBLOBTOCLOB = 1450; +OracleSqlLexer.PRIORITY = 1451; +OracleSqlLexer.PRIOR = 1452; +OracleSqlLexer.PRIVATE = 1453; +OracleSqlLexer.PRIVATE_SGA = 1454; +OracleSqlLexer.PRIVILEGED = 1455; +OracleSqlLexer.PRIVILEGE = 1456; +OracleSqlLexer.PRIVILEGES = 1457; +OracleSqlLexer.PROCEDURAL = 1458; +OracleSqlLexer.PROCEDURE = 1459; +OracleSqlLexer.PROCESS = 1460; +OracleSqlLexer.PROFILE = 1461; +OracleSqlLexer.PROGRAM = 1462; +OracleSqlLexer.PROJECT = 1463; +OracleSqlLexer.PROPAGATE = 1464; +OracleSqlLexer.PROPERTY = 1465; +OracleSqlLexer.PROTECTED = 1466; +OracleSqlLexer.PROTECTION = 1467; +OracleSqlLexer.PROTOCOL = 1468; +OracleSqlLexer.PROXY = 1469; +OracleSqlLexer.PRUNING = 1470; +OracleSqlLexer.PUBLIC = 1471; +OracleSqlLexer.PULL_PRED = 1472; +OracleSqlLexer.PURGE = 1473; +OracleSqlLexer.PUSH_PRED = 1474; +OracleSqlLexer.PUSH_SUBQ = 1475; +OracleSqlLexer.PX_FAULT_TOLERANCE = 1476; +OracleSqlLexer.PX_GRANULE = 1477; +OracleSqlLexer.PX_JOIN_FILTER = 1478; +OracleSqlLexer.QB_NAME = 1479; +OracleSqlLexer.QUARTERS = 1480; +OracleSqlLexer.QUERY_BLOCK = 1481; +OracleSqlLexer.QUERY = 1482; +OracleSqlLexer.QUEUE_CURR = 1483; +OracleSqlLexer.QUEUE = 1484; +OracleSqlLexer.QUEUE_ROWP = 1485; +OracleSqlLexer.QUIESCE = 1486; +OracleSqlLexer.QUORUM = 1487; +OracleSqlLexer.QUOTA = 1488; +OracleSqlLexer.QUOTAGROUP = 1489; +OracleSqlLexer.RAISE = 1490; +OracleSqlLexer.RANDOM_LOCAL = 1491; +OracleSqlLexer.RANDOM = 1492; +OracleSqlLexer.RANGE = 1493; +OracleSqlLexer.RANKM = 1494; +OracleSqlLexer.RAPIDLY = 1495; +OracleSqlLexer.RAW = 1496; +OracleSqlLexer.RAWTOHEX = 1497; +OracleSqlLexer.RAWTONHEX = 1498; +OracleSqlLexer.RBA = 1499; +OracleSqlLexer.RBO_OUTLINE = 1500; +OracleSqlLexer.RCFILE = 1501; +OracleSqlLexer.RDBA = 1502; +OracleSqlLexer.READ = 1503; +OracleSqlLexer.READS = 1504; +OracleSqlLexer.READSIZE = 1505; +OracleSqlLexer.REALM = 1506; +OracleSqlLexer.REAL = 1507; +OracleSqlLexer.REBALANCE = 1508; +OracleSqlLexer.REBUILD = 1509; +OracleSqlLexer.RECORD = 1510; +OracleSqlLexer.RECORDS = 1511; +OracleSqlLexer.RECORDS_PER_BLOCK = 1512; +OracleSqlLexer.RECOVERABLE = 1513; +OracleSqlLexer.RECOVER = 1514; +OracleSqlLexer.RECOVERY = 1515; +OracleSqlLexer.RECYCLEBIN = 1516; +OracleSqlLexer.RECYCLE = 1517; +OracleSqlLexer.REDACTION = 1518; +OracleSqlLexer.REDEFINE = 1519; +OracleSqlLexer.REDO = 1520; +OracleSqlLexer.REDUCED = 1521; +OracleSqlLexer.REDUNDANCY = 1522; +OracleSqlLexer.REF_CASCADE_CURSOR = 1523; +OracleSqlLexer.REFERENCED = 1524; +OracleSqlLexer.REFERENCE = 1525; +OracleSqlLexer.REFERENCES = 1526; +OracleSqlLexer.REFERENCING = 1527; +OracleSqlLexer.REF = 1528; +OracleSqlLexer.REFRESH = 1529; +OracleSqlLexer.REFTOHEX = 1530; +OracleSqlLexer.REGEXP_COUNT = 1531; +OracleSqlLexer.REGEXP_INSTR = 1532; +OracleSqlLexer.REGEXP_LIKE = 1533; +OracleSqlLexer.REGEXP_REPLACE = 1534; +OracleSqlLexer.REGEXP_SUBSTR = 1535; +OracleSqlLexer.REGISTER = 1536; +OracleSqlLexer.REGR_AVGX = 1537; +OracleSqlLexer.REGR_AVGY = 1538; +OracleSqlLexer.REGR_COUNT = 1539; +OracleSqlLexer.REGR_INTERCEPT = 1540; +OracleSqlLexer.REGR_R2 = 1541; +OracleSqlLexer.REGR_SLOPE = 1542; +OracleSqlLexer.REGR_SXX = 1543; +OracleSqlLexer.REGR_SXY = 1544; +OracleSqlLexer.REGR_SYY = 1545; +OracleSqlLexer.REGULAR = 1546; +OracleSqlLexer.REJECT = 1547; +OracleSqlLexer.REKEY = 1548; +OracleSqlLexer.RELATIONAL = 1549; +OracleSqlLexer.RELIES_ON = 1550; +OracleSqlLexer.RELOCATE = 1551; +OracleSqlLexer.RELY = 1552; +OracleSqlLexer.REMAINDER = 1553; +OracleSqlLexer.REMOTE = 1554; +OracleSqlLexer.REMOTE_MAPPED = 1555; +OracleSqlLexer.REMOVE = 1556; +OracleSqlLexer.RENAME = 1557; +OracleSqlLexer.REPAIR = 1558; +OracleSqlLexer.REPEAT = 1559; +OracleSqlLexer.REPLACE = 1560; +OracleSqlLexer.REPLICATION = 1561; +OracleSqlLexer.REQUIRED = 1562; +OracleSqlLexer.RESETLOGS = 1563; +OracleSqlLexer.RESET = 1564; +OracleSqlLexer.RESIZE = 1565; +OracleSqlLexer.RESOLVE = 1566; +OracleSqlLexer.RESOLVER = 1567; +OracleSqlLexer.RESOURCE = 1568; +OracleSqlLexer.RESPECT = 1569; +OracleSqlLexer.RESTART = 1570; +OracleSqlLexer.RESTORE_AS_INTERVALS = 1571; +OracleSqlLexer.RESTORE = 1572; +OracleSqlLexer.RESTRICT_ALL_REF_CONS = 1573; +OracleSqlLexer.RESTRICTED = 1574; +OracleSqlLexer.RESTRICT_REFERENCES = 1575; +OracleSqlLexer.RESTRICT = 1576; +OracleSqlLexer.RESULT_CACHE = 1577; +OracleSqlLexer.RESULT = 1578; +OracleSqlLexer.RESUMABLE = 1579; +OracleSqlLexer.RESUME = 1580; +OracleSqlLexer.RETENTION = 1581; +OracleSqlLexer.RETRY_ON_ROW_CHANGE = 1582; +OracleSqlLexer.RETURNING = 1583; +OracleSqlLexer.RETURN = 1584; +OracleSqlLexer.REUSE = 1585; +OracleSqlLexer.REVERSE = 1586; +OracleSqlLexer.REVOKE = 1587; +OracleSqlLexer.REWRITE_OR_ERROR = 1588; +OracleSqlLexer.REWRITE = 1589; +OracleSqlLexer.RIGHT = 1590; +OracleSqlLexer.ROLE = 1591; +OracleSqlLexer.ROLESET = 1592; +OracleSqlLexer.ROLES = 1593; +OracleSqlLexer.ROLLBACK = 1594; +OracleSqlLexer.ROLLING = 1595; +OracleSqlLexer.ROLLUP = 1596; +OracleSqlLexer.ROWDEPENDENCIES = 1597; +OracleSqlLexer.ROWID_MAPPING_TABLE = 1598; +OracleSqlLexer.ROWID = 1599; +OracleSqlLexer.ROWIDTOCHAR = 1600; +OracleSqlLexer.ROWIDTONCHAR = 1601; +OracleSqlLexer.ROW_LENGTH = 1602; +OracleSqlLexer.ROWNUM = 1603; +OracleSqlLexer.ROW = 1604; +OracleSqlLexer.ROWS = 1605; +OracleSqlLexer.RPAD = 1606; +OracleSqlLexer.RTRIM = 1607; +OracleSqlLexer.RULE = 1608; +OracleSqlLexer.RULES = 1609; +OracleSqlLexer.RUNNING = 1610; +OracleSqlLexer.SALT = 1611; +OracleSqlLexer.SAMPLE = 1612; +OracleSqlLexer.SAVE_AS_INTERVALS = 1613; +OracleSqlLexer.SAVEPOINT = 1614; +OracleSqlLexer.SAVE = 1615; +OracleSqlLexer.SB4 = 1616; +OracleSqlLexer.SCALE_ROWS = 1617; +OracleSqlLexer.SCALE = 1618; +OracleSqlLexer.SCAN_INSTANCES = 1619; +OracleSqlLexer.SCAN = 1620; +OracleSqlLexer.SCHEDULER = 1621; +OracleSqlLexer.SCHEMACHECK = 1622; +OracleSqlLexer.SCHEMA = 1623; +OracleSqlLexer.SCN_ASCENDING = 1624; +OracleSqlLexer.SCN = 1625; +OracleSqlLexer.SCOPE = 1626; +OracleSqlLexer.SCRUB = 1627; +OracleSqlLexer.SD_ALL = 1628; +OracleSqlLexer.SD_INHIBIT = 1629; +OracleSqlLexer.SDO_GEOM_MBR = 1630; +OracleSqlLexer.SDO_GEOMETRY = 1631; +OracleSqlLexer.SD_SHOW = 1632; +OracleSqlLexer.SEARCH = 1633; +OracleSqlLexer.SECOND = 1634; +OracleSqlLexer.SECONDS = 1635; +OracleSqlLexer.SECRET = 1636; +OracleSqlLexer.SECUREFILE_DBA = 1637; +OracleSqlLexer.SECUREFILE = 1638; +OracleSqlLexer.SECURITY = 1639; +OracleSqlLexer.SEED = 1640; +OracleSqlLexer.SEG_BLOCK = 1641; +OracleSqlLexer.SEG_FILE = 1642; +OracleSqlLexer.SEGMENT = 1643; +OracleSqlLexer.SELECTIVITY = 1644; +OracleSqlLexer.SELECT = 1645; +OracleSqlLexer.SELF = 1646; +OracleSqlLexer.SEMIJOIN_DRIVER = 1647; +OracleSqlLexer.SEMIJOIN = 1648; +OracleSqlLexer.SEMI_TO_INNER = 1649; +OracleSqlLexer.SEQUENCED = 1650; +OracleSqlLexer.SEQUENCE = 1651; +OracleSqlLexer.SEQUENCEFILE = 1652; +OracleSqlLexer.SEQUENTIAL = 1653; +OracleSqlLexer.SEQ = 1654; +OracleSqlLexer.SERDE = 1655; +OracleSqlLexer.SERDEPROPERTIES = 1656; +OracleSqlLexer.SERIALIZABLE = 1657; +OracleSqlLexer.SERIALLY_REUSABLE = 1658; +OracleSqlLexer.SERIAL = 1659; +OracleSqlLexer.SERVERERROR = 1660; +OracleSqlLexer.SERVICE_NAME_CONVERT = 1661; +OracleSqlLexer.SERVICE = 1662; +OracleSqlLexer.SERVICES = 1663; +OracleSqlLexer.SESSION_CACHED_CURSORS = 1664; +OracleSqlLexer.SESSION = 1665; +OracleSqlLexer.SESSIONS_PER_USER = 1666; +OracleSqlLexer.SESSIONTIMEZONE = 1667; +OracleSqlLexer.SESSIONTZNAME = 1668; +OracleSqlLexer.SET = 1669; +OracleSqlLexer.SETS = 1670; +OracleSqlLexer.SETTINGS = 1671; +OracleSqlLexer.SET_TO_JOIN = 1672; +OracleSqlLexer.SEVERE = 1673; +OracleSqlLexer.SHARD = 1674; +OracleSqlLexer.SHARDSPACE = 1675; +OracleSqlLexer.SHARED_POOL = 1676; +OracleSqlLexer.SHARED = 1677; +OracleSqlLexer.SHARE = 1678; +OracleSqlLexer.SHARING = 1679; +OracleSqlLexer.SHELFLIFE = 1680; +OracleSqlLexer.SHOW = 1681; +OracleSqlLexer.SHRINK = 1682; +OracleSqlLexer.SHUTDOWN = 1683; +OracleSqlLexer.SIBLINGS = 1684; +OracleSqlLexer.SID = 1685; +OracleSqlLexer.SITE = 1686; +OracleSqlLexer.SIGNAL_COMPONENT = 1687; +OracleSqlLexer.SIGNAL_FUNCTION = 1688; +OracleSqlLexer.SIGN = 1689; +OracleSqlLexer.SIGNTYPE = 1690; +OracleSqlLexer.SIMPLE_INTEGER = 1691; +OracleSqlLexer.SIMPLE = 1692; +OracleSqlLexer.SINGLE = 1693; +OracleSqlLexer.SINGLETASK = 1694; +OracleSqlLexer.SINH = 1695; +OracleSqlLexer.SIN = 1696; +OracleSqlLexer.SIZE = 1697; +OracleSqlLexer.SIZES = 1698; +OracleSqlLexer.SKIP_EXT_OPTIMIZER = 1699; +OracleSqlLexer.SKIP_ = 1700; +OracleSqlLexer.SKIP_UNQ_UNUSABLE_IDX = 1701; +OracleSqlLexer.SKIP_UNUSABLE_INDEXES = 1702; +OracleSqlLexer.SMALLFILE = 1703; +OracleSqlLexer.SMALLINT = 1704; +OracleSqlLexer.SNAPSHOT = 1705; +OracleSqlLexer.SOME = 1706; +OracleSqlLexer.SORT = 1707; +OracleSqlLexer.SOUNDEX = 1708; +OracleSqlLexer.SOURCE_FILE_DIRECTORY = 1709; +OracleSqlLexer.SOURCE_FILE_NAME_CONVERT = 1710; +OracleSqlLexer.SOURCE = 1711; +OracleSqlLexer.SPACE_KEYWORD = 1712; +OracleSqlLexer.SPECIFICATION = 1713; +OracleSqlLexer.SPFILE = 1714; +OracleSqlLexer.SPLIT = 1715; +OracleSqlLexer.SPREADSHEET = 1716; +OracleSqlLexer.SQLDATA = 1717; +OracleSqlLexer.SQLERROR = 1718; +OracleSqlLexer.SQLLDR = 1719; +OracleSqlLexer.SQL = 1720; +OracleSqlLexer.FILE_EXT = 1721; +OracleSqlLexer.SQL_MACRO = 1722; +OracleSqlLexer.SQL_TRACE = 1723; +OracleSqlLexer.SQL_TRANSLATION_PROFILE = 1724; +OracleSqlLexer.SQRT = 1725; +OracleSqlLexer.STALE = 1726; +OracleSqlLexer.STANDALONE = 1727; +OracleSqlLexer.STANDARD = 1728; +OracleSqlLexer.STANDARD_HASH = 1729; +OracleSqlLexer.STANDBY_MAX_DATA_DELAY = 1730; +OracleSqlLexer.STANDBYS = 1731; +OracleSqlLexer.STANDBY = 1732; +OracleSqlLexer.STAR = 1733; +OracleSqlLexer.STAR_TRANSFORMATION = 1734; +OracleSqlLexer.START = 1735; +OracleSqlLexer.STARTOF = 1736; +OracleSqlLexer.STARTUP = 1737; +OracleSqlLexer.STATEMENT_ID = 1738; +OracleSqlLexer.STATEMENT_QUEUING = 1739; +OracleSqlLexer.STATEMENTS = 1740; +OracleSqlLexer.STATEMENT = 1741; +OracleSqlLexer.STATE = 1742; +OracleSqlLexer.STATIC = 1743; +OracleSqlLexer.STATISTICS = 1744; +OracleSqlLexer.STATS_BINOMIAL_TEST = 1745; +OracleSqlLexer.STATS_CROSSTAB = 1746; +OracleSqlLexer.STATS_F_TEST = 1747; +OracleSqlLexer.STATS_KS_TEST = 1748; +OracleSqlLexer.STATS_MODE = 1749; +OracleSqlLexer.STATS_MW_TEST = 1750; +OracleSqlLexer.STATS_ONE_WAY_ANOVA = 1751; +OracleSqlLexer.STATS_T_TEST_INDEP = 1752; +OracleSqlLexer.STATS_T_TEST_INDEPU = 1753; +OracleSqlLexer.STATS_T_TEST_ONE = 1754; +OracleSqlLexer.STATS_T_TEST_PAIRED = 1755; +OracleSqlLexer.STATS_WSR_TEST = 1756; +OracleSqlLexer.STDDEV_POP = 1757; +OracleSqlLexer.STDDEV_SAMP = 1758; +OracleSqlLexer.STOP = 1759; +OracleSqlLexer.STORAGE = 1760; +OracleSqlLexer.STORE = 1761; +OracleSqlLexer.STREAMS = 1762; +OracleSqlLexer.STREAM = 1763; +OracleSqlLexer.STRICT = 1764; +OracleSqlLexer.STRING = 1765; +OracleSqlLexer.STRIPE_COLUMNS = 1766; +OracleSqlLexer.STRIPE_WIDTH = 1767; +OracleSqlLexer.STRIP = 1768; +OracleSqlLexer.STRUCTURE = 1769; +OracleSqlLexer.SUBMULTISET = 1770; +OracleSqlLexer.SUBPARTITION_REL = 1771; +OracleSqlLexer.SUBPARTITIONS = 1772; +OracleSqlLexer.SUBPARTITION = 1773; +OracleSqlLexer.SUBQUERIES = 1774; +OracleSqlLexer.SUBQUERY_PRUNING = 1775; +OracleSqlLexer.SUBSCRIBE = 1776; +OracleSqlLexer.SUBSET = 1777; +OracleSqlLexer.SUBSTITUTABLE = 1778; +OracleSqlLexer.SUBSTR2 = 1779; +OracleSqlLexer.SUBSTR4 = 1780; +OracleSqlLexer.SUBSTRB = 1781; +OracleSqlLexer.SUBSTRC = 1782; +OracleSqlLexer.SUBTYPE = 1783; +OracleSqlLexer.SUCCESSFUL = 1784; +OracleSqlLexer.SUCCESS = 1785; +OracleSqlLexer.SUMMARY = 1786; +OracleSqlLexer.SUPPLEMENTAL = 1787; +OracleSqlLexer.SUSPEND = 1788; +OracleSqlLexer.SWAP_JOIN_INPUTS = 1789; +OracleSqlLexer.SWITCHOVER = 1790; +OracleSqlLexer.SWITCH = 1791; +OracleSqlLexer.SYNCHRONOUS = 1792; +OracleSqlLexer.SYNC = 1793; +OracleSqlLexer.SYNONYM = 1794; +OracleSqlLexer.SYS = 1795; +OracleSqlLexer.SYSASM = 1796; +OracleSqlLexer.SYS_AUDIT = 1797; +OracleSqlLexer.SYSAUX = 1798; +OracleSqlLexer.SYSBACKUP = 1799; +OracleSqlLexer.SYS_CHECKACL = 1800; +OracleSqlLexer.SYS_CHECK_PRIVILEGE = 1801; +OracleSqlLexer.SYS_CONNECT_BY_PATH = 1802; +OracleSqlLexer.SYS_CONTEXT = 1803; +OracleSqlLexer.SYSDATE = 1804; +OracleSqlLexer.SYSDBA = 1805; +OracleSqlLexer.SYS_DBURIGEN = 1806; +OracleSqlLexer.SYSDG = 1807; +OracleSqlLexer.SYS_DL_CURSOR = 1808; +OracleSqlLexer.SYS_DM_RXFORM_CHR = 1809; +OracleSqlLexer.SYS_DM_RXFORM_NUM = 1810; +OracleSqlLexer.SYS_DOM_COMPARE = 1811; +OracleSqlLexer.SYS_DST_PRIM2SEC = 1812; +OracleSqlLexer.SYS_DST_SEC2PRIM = 1813; +OracleSqlLexer.SYS_ET_BFILE_TO_RAW = 1814; +OracleSqlLexer.SYS_ET_BLOB_TO_IMAGE = 1815; +OracleSqlLexer.SYS_ET_IMAGE_TO_BLOB = 1816; +OracleSqlLexer.SYS_ET_RAW_TO_BFILE = 1817; +OracleSqlLexer.SYS_EXTPDTXT = 1818; +OracleSqlLexer.SYS_EXTRACT_UTC = 1819; +OracleSqlLexer.SYS_FBT_INSDEL = 1820; +OracleSqlLexer.SYS_FILTER_ACLS = 1821; +OracleSqlLexer.SYS_FNMATCHES = 1822; +OracleSqlLexer.SYS_FNREPLACE = 1823; +OracleSqlLexer.SYS_GET_ACLIDS = 1824; +OracleSqlLexer.SYS_GET_COL_ACLIDS = 1825; +OracleSqlLexer.SYS_GET_PRIVILEGES = 1826; +OracleSqlLexer.SYS_GETTOKENID = 1827; +OracleSqlLexer.SYS_GETXTIVAL = 1828; +OracleSqlLexer.SYS_GUID = 1829; +OracleSqlLexer.SYSGUID = 1830; +OracleSqlLexer.SYSKM = 1831; +OracleSqlLexer.SYS_MAKE_XMLNODEID = 1832; +OracleSqlLexer.SYS_MAKEXML = 1833; +OracleSqlLexer.SYS_MKXMLATTR = 1834; +OracleSqlLexer.SYS_MKXTI = 1835; +OracleSqlLexer.SYSOBJ = 1836; +OracleSqlLexer.SYS_OP_ADT2BIN = 1837; +OracleSqlLexer.SYS_OP_ADTCONS = 1838; +OracleSqlLexer.SYS_OP_ALSCRVAL = 1839; +OracleSqlLexer.SYS_OP_ATG = 1840; +OracleSqlLexer.SYS_OP_BIN2ADT = 1841; +OracleSqlLexer.SYS_OP_BITVEC = 1842; +OracleSqlLexer.SYS_OP_BL2R = 1843; +OracleSqlLexer.SYS_OP_BLOOM_FILTER_LIST = 1844; +OracleSqlLexer.SYS_OP_BLOOM_FILTER = 1845; +OracleSqlLexer.SYS_OP_C2C = 1846; +OracleSqlLexer.SYS_OP_CAST = 1847; +OracleSqlLexer.SYS_OP_CEG = 1848; +OracleSqlLexer.SYS_OP_CL2C = 1849; +OracleSqlLexer.SYS_OP_COMBINED_HASH = 1850; +OracleSqlLexer.SYS_OP_COMP = 1851; +OracleSqlLexer.SYS_OP_CONVERT = 1852; +OracleSqlLexer.SYS_OP_COUNTCHG = 1853; +OracleSqlLexer.SYS_OP_CSCONV = 1854; +OracleSqlLexer.SYS_OP_CSCONVTEST = 1855; +OracleSqlLexer.SYS_OP_CSR = 1856; +OracleSqlLexer.SYS_OP_CSX_PATCH = 1857; +OracleSqlLexer.SYS_OP_CYCLED_SEQ = 1858; +OracleSqlLexer.SYS_OP_DECOMP = 1859; +OracleSqlLexer.SYS_OP_DESCEND = 1860; +OracleSqlLexer.SYS_OP_DISTINCT = 1861; +OracleSqlLexer.SYS_OP_DRA = 1862; +OracleSqlLexer.SYS_OP_DUMP = 1863; +OracleSqlLexer.SYS_OP_DV_CHECK = 1864; +OracleSqlLexer.SYS_OP_ENFORCE_NOT_NULL = 1865; +OracleSqlLexer.SYSOPER = 1866; +OracleSqlLexer.SYS_OP_EXTRACT = 1867; +OracleSqlLexer.SYS_OP_GROUPING = 1868; +OracleSqlLexer.SYS_OP_GUID = 1869; +OracleSqlLexer.SYS_OP_HASH = 1870; +OracleSqlLexer.SYS_OP_IIX = 1871; +OracleSqlLexer.SYS_OP_ITR = 1872; +OracleSqlLexer.SYS_OP_KEY_VECTOR_CREATE = 1873; +OracleSqlLexer.SYS_OP_KEY_VECTOR_FILTER_LIST = 1874; +OracleSqlLexer.SYS_OP_KEY_VECTOR_FILTER = 1875; +OracleSqlLexer.SYS_OP_KEY_VECTOR_SUCCEEDED = 1876; +OracleSqlLexer.SYS_OP_KEY_VECTOR_USE = 1877; +OracleSqlLexer.SYS_OP_LBID = 1878; +OracleSqlLexer.SYS_OP_LOBLOC2BLOB = 1879; +OracleSqlLexer.SYS_OP_LOBLOC2CLOB = 1880; +OracleSqlLexer.SYS_OP_LOBLOC2ID = 1881; +OracleSqlLexer.SYS_OP_LOBLOC2NCLOB = 1882; +OracleSqlLexer.SYS_OP_LOBLOC2TYP = 1883; +OracleSqlLexer.SYS_OP_LSVI = 1884; +OracleSqlLexer.SYS_OP_LVL = 1885; +OracleSqlLexer.SYS_OP_MAKEOID = 1886; +OracleSqlLexer.SYS_OP_MAP_NONNULL = 1887; +OracleSqlLexer.SYS_OP_MSR = 1888; +OracleSqlLexer.SYS_OP_NICOMBINE = 1889; +OracleSqlLexer.SYS_OP_NIEXTRACT = 1890; +OracleSqlLexer.SYS_OP_NII = 1891; +OracleSqlLexer.SYS_OP_NIX = 1892; +OracleSqlLexer.SYS_OP_NOEXPAND = 1893; +OracleSqlLexer.SYS_OP_NTCIMG = 1894; +OracleSqlLexer.SYS_OP_NUMTORAW = 1895; +OracleSqlLexer.SYS_OP_OIDVALUE = 1896; +OracleSqlLexer.SYS_OP_OPNSIZE = 1897; +OracleSqlLexer.SYS_OP_PAR_1 = 1898; +OracleSqlLexer.SYS_OP_PARGID_1 = 1899; +OracleSqlLexer.SYS_OP_PARGID = 1900; +OracleSqlLexer.SYS_OP_PAR = 1901; +OracleSqlLexer.SYS_OP_PART_ID = 1902; +OracleSqlLexer.SYS_OP_PIVOT = 1903; +OracleSqlLexer.SYS_OP_R2O = 1904; +OracleSqlLexer.SYS_OP_RAWTONUM = 1905; +OracleSqlLexer.SYS_OP_RDTM = 1906; +OracleSqlLexer.SYS_OP_REF = 1907; +OracleSqlLexer.SYS_OP_RMTD = 1908; +OracleSqlLexer.SYS_OP_ROWIDTOOBJ = 1909; +OracleSqlLexer.SYS_OP_RPB = 1910; +OracleSqlLexer.SYS_OPTLOBPRBSC = 1911; +OracleSqlLexer.SYS_OP_TOSETID = 1912; +OracleSqlLexer.SYS_OP_TPR = 1913; +OracleSqlLexer.SYS_OP_TRTB = 1914; +OracleSqlLexer.SYS_OPTXICMP = 1915; +OracleSqlLexer.SYS_OPTXQCASTASNQ = 1916; +OracleSqlLexer.SYS_OP_UNDESCEND = 1917; +OracleSqlLexer.SYS_OP_VECAND = 1918; +OracleSqlLexer.SYS_OP_VECBIT = 1919; +OracleSqlLexer.SYS_OP_VECOR = 1920; +OracleSqlLexer.SYS_OP_VECXOR = 1921; +OracleSqlLexer.SYS_OP_VERSION = 1922; +OracleSqlLexer.SYS_OP_VREF = 1923; +OracleSqlLexer.SYS_OP_VVD = 1924; +OracleSqlLexer.SYS_OP_XMLCONS_FOR_CSX = 1925; +OracleSqlLexer.SYS_OP_XPTHATG = 1926; +OracleSqlLexer.SYS_OP_XPTHIDX = 1927; +OracleSqlLexer.SYS_OP_XPTHOP = 1928; +OracleSqlLexer.SYS_OP_XTXT2SQLT = 1929; +OracleSqlLexer.SYS_OP_ZONE_ID = 1930; +OracleSqlLexer.SYS_ORDERKEY_DEPTH = 1931; +OracleSqlLexer.SYS_ORDERKEY_MAXCHILD = 1932; +OracleSqlLexer.SYS_ORDERKEY_PARENT = 1933; +OracleSqlLexer.SYS_PARALLEL_TXN = 1934; +OracleSqlLexer.SYS_PATHID_IS_ATTR = 1935; +OracleSqlLexer.SYS_PATHID_IS_NMSPC = 1936; +OracleSqlLexer.SYS_PATHID_LASTNAME = 1937; +OracleSqlLexer.SYS_PATHID_LASTNMSPC = 1938; +OracleSqlLexer.SYS_PATH_REVERSE = 1939; +OracleSqlLexer.SYS_PXQEXTRACT = 1940; +OracleSqlLexer.SYS_RAW_TO_XSID = 1941; +OracleSqlLexer.SYS_RID_ORDER = 1942; +OracleSqlLexer.SYS_ROW_DELTA = 1943; +OracleSqlLexer.SYS_SC_2_XMLT = 1944; +OracleSqlLexer.SYS_SYNRCIREDO = 1945; +OracleSqlLexer.SYSTEM_DEFINED = 1946; +OracleSqlLexer.SYSTEM = 1947; +OracleSqlLexer.SYSTIMESTAMP = 1948; +OracleSqlLexer.SYS_TYPEID = 1949; +OracleSqlLexer.SYS_UMAKEXML = 1950; +OracleSqlLexer.SYS_XMLANALYZE = 1951; +OracleSqlLexer.SYS_XMLCONTAINS = 1952; +OracleSqlLexer.SYS_XMLCONV = 1953; +OracleSqlLexer.SYS_XMLEXNSURI = 1954; +OracleSqlLexer.SYS_XMLGEN = 1955; +OracleSqlLexer.SYS_XMLI_LOC_ISNODE = 1956; +OracleSqlLexer.SYS_XMLI_LOC_ISTEXT = 1957; +OracleSqlLexer.SYS_XMLINSTR = 1958; +OracleSqlLexer.SYS_XMLLOCATOR_GETSVAL = 1959; +OracleSqlLexer.SYS_XMLNODEID_GETCID = 1960; +OracleSqlLexer.SYS_XMLNODEID_GETLOCATOR = 1961; +OracleSqlLexer.SYS_XMLNODEID_GETOKEY = 1962; +OracleSqlLexer.SYS_XMLNODEID_GETPATHID = 1963; +OracleSqlLexer.SYS_XMLNODEID_GETPTRID = 1964; +OracleSqlLexer.SYS_XMLNODEID_GETRID = 1965; +OracleSqlLexer.SYS_XMLNODEID_GETSVAL = 1966; +OracleSqlLexer.SYS_XMLNODEID_GETTID = 1967; +OracleSqlLexer.SYS_XMLNODEID = 1968; +OracleSqlLexer.SYS_XMLT_2_SC = 1969; +OracleSqlLexer.SYS_XMLTRANSLATE = 1970; +OracleSqlLexer.SYS_XMLTYPE2SQL = 1971; +OracleSqlLexer.SYS_XQ_ASQLCNV = 1972; +OracleSqlLexer.SYS_XQ_ATOMCNVCHK = 1973; +OracleSqlLexer.SYS_XQBASEURI = 1974; +OracleSqlLexer.SYS_XQCASTABLEERRH = 1975; +OracleSqlLexer.SYS_XQCODEP2STR = 1976; +OracleSqlLexer.SYS_XQCODEPEQ = 1977; +OracleSqlLexer.SYS_XQCON2SEQ = 1978; +OracleSqlLexer.SYS_XQCONCAT = 1979; +OracleSqlLexer.SYS_XQDELETE = 1980; +OracleSqlLexer.SYS_XQDFLTCOLATION = 1981; +OracleSqlLexer.SYS_XQDOC = 1982; +OracleSqlLexer.SYS_XQDOCURI = 1983; +OracleSqlLexer.SYS_XQDURDIV = 1984; +OracleSqlLexer.SYS_XQED4URI = 1985; +OracleSqlLexer.SYS_XQENDSWITH = 1986; +OracleSqlLexer.SYS_XQERRH = 1987; +OracleSqlLexer.SYS_XQERR = 1988; +OracleSqlLexer.SYS_XQESHTMLURI = 1989; +OracleSqlLexer.SYS_XQEXLOBVAL = 1990; +OracleSqlLexer.SYS_XQEXSTWRP = 1991; +OracleSqlLexer.SYS_XQEXTRACT = 1992; +OracleSqlLexer.SYS_XQEXTRREF = 1993; +OracleSqlLexer.SYS_XQEXVAL = 1994; +OracleSqlLexer.SYS_XQFB2STR = 1995; +OracleSqlLexer.SYS_XQFNBOOL = 1996; +OracleSqlLexer.SYS_XQFNCMP = 1997; +OracleSqlLexer.SYS_XQFNDATIM = 1998; +OracleSqlLexer.SYS_XQFNLNAME = 1999; +OracleSqlLexer.SYS_XQFNNM = 2000; +OracleSqlLexer.SYS_XQFNNSURI = 2001; +OracleSqlLexer.SYS_XQFNPREDTRUTH = 2002; +OracleSqlLexer.SYS_XQFNQNM = 2003; +OracleSqlLexer.SYS_XQFNROOT = 2004; +OracleSqlLexer.SYS_XQFORMATNUM = 2005; +OracleSqlLexer.SYS_XQFTCONTAIN = 2006; +OracleSqlLexer.SYS_XQFUNCR = 2007; +OracleSqlLexer.SYS_XQGETCONTENT = 2008; +OracleSqlLexer.SYS_XQINDXOF = 2009; +OracleSqlLexer.SYS_XQINSERT = 2010; +OracleSqlLexer.SYS_XQINSPFX = 2011; +OracleSqlLexer.SYS_XQIRI2URI = 2012; +OracleSqlLexer.SYS_XQLANG = 2013; +OracleSqlLexer.SYS_XQLLNMFRMQNM = 2014; +OracleSqlLexer.SYS_XQMKNODEREF = 2015; +OracleSqlLexer.SYS_XQNILLED = 2016; +OracleSqlLexer.SYS_XQNODENAME = 2017; +OracleSqlLexer.SYS_XQNORMSPACE = 2018; +OracleSqlLexer.SYS_XQNORMUCODE = 2019; +OracleSqlLexer.SYS_XQ_NRNG = 2020; +OracleSqlLexer.SYS_XQNSP4PFX = 2021; +OracleSqlLexer.SYS_XQNSPFRMQNM = 2022; +OracleSqlLexer.SYS_XQPFXFRMQNM = 2023; +OracleSqlLexer.SYS_XQ_PKSQL2XML = 2024; +OracleSqlLexer.SYS_XQPOLYABS = 2025; +OracleSqlLexer.SYS_XQPOLYADD = 2026; +OracleSqlLexer.SYS_XQPOLYCEL = 2027; +OracleSqlLexer.SYS_XQPOLYCSTBL = 2028; +OracleSqlLexer.SYS_XQPOLYCST = 2029; +OracleSqlLexer.SYS_XQPOLYDIV = 2030; +OracleSqlLexer.SYS_XQPOLYFLR = 2031; +OracleSqlLexer.SYS_XQPOLYMOD = 2032; +OracleSqlLexer.SYS_XQPOLYMUL = 2033; +OracleSqlLexer.SYS_XQPOLYRND = 2034; +OracleSqlLexer.SYS_XQPOLYSQRT = 2035; +OracleSqlLexer.SYS_XQPOLYSUB = 2036; +OracleSqlLexer.SYS_XQPOLYUMUS = 2037; +OracleSqlLexer.SYS_XQPOLYUPLS = 2038; +OracleSqlLexer.SYS_XQPOLYVEQ = 2039; +OracleSqlLexer.SYS_XQPOLYVGE = 2040; +OracleSqlLexer.SYS_XQPOLYVGT = 2041; +OracleSqlLexer.SYS_XQPOLYVLE = 2042; +OracleSqlLexer.SYS_XQPOLYVLT = 2043; +OracleSqlLexer.SYS_XQPOLYVNE = 2044; +OracleSqlLexer.SYS_XQREF2VAL = 2045; +OracleSqlLexer.SYS_XQRENAME = 2046; +OracleSqlLexer.SYS_XQREPLACE = 2047; +OracleSqlLexer.SYS_XQRESVURI = 2048; +OracleSqlLexer.SYS_XQRNDHALF2EVN = 2049; +OracleSqlLexer.SYS_XQRSLVQNM = 2050; +OracleSqlLexer.SYS_XQRYENVPGET = 2051; +OracleSqlLexer.SYS_XQRYVARGET = 2052; +OracleSqlLexer.SYS_XQRYWRP = 2053; +OracleSqlLexer.SYS_XQSEQ2CON4XC = 2054; +OracleSqlLexer.SYS_XQSEQ2CON = 2055; +OracleSqlLexer.SYS_XQSEQDEEPEQ = 2056; +OracleSqlLexer.SYS_XQSEQINSB = 2057; +OracleSqlLexer.SYS_XQSEQRM = 2058; +OracleSqlLexer.SYS_XQSEQRVS = 2059; +OracleSqlLexer.SYS_XQSEQSUB = 2060; +OracleSqlLexer.SYS_XQSEQTYPMATCH = 2061; +OracleSqlLexer.SYS_XQSTARTSWITH = 2062; +OracleSqlLexer.SYS_XQSTATBURI = 2063; +OracleSqlLexer.SYS_XQSTR2CODEP = 2064; +OracleSqlLexer.SYS_XQSTRJOIN = 2065; +OracleSqlLexer.SYS_XQSUBSTRAFT = 2066; +OracleSqlLexer.SYS_XQSUBSTRBEF = 2067; +OracleSqlLexer.SYS_XQTOKENIZE = 2068; +OracleSqlLexer.SYS_XQTREATAS = 2069; +OracleSqlLexer.SYS_XQ_UPKXML2SQL = 2070; +OracleSqlLexer.SYS_XQXFORM = 2071; +OracleSqlLexer.SYS_XSID_TO_RAW = 2072; +OracleSqlLexer.SYS_ZMAP_FILTER = 2073; +OracleSqlLexer.SYS_ZMAP_REFRESH = 2074; +OracleSqlLexer.T_LETTER = 2075; +OracleSqlLexer.TABLE_LOOKUP_BY_NL = 2076; +OracleSqlLexer.TABLESPACE_NO = 2077; +OracleSqlLexer.TABLESPACE = 2078; +OracleSqlLexer.TABLES = 2079; +OracleSqlLexer.TABLE_STATS = 2080; +OracleSqlLexer.TABLE = 2081; +OracleSqlLexer.TABNO = 2082; +OracleSqlLexer.TAG = 2083; +OracleSqlLexer.TANH = 2084; +OracleSqlLexer.TAN = 2085; +OracleSqlLexer.TBLORIDXPARTNUM = 2086; +OracleSqlLexer.TEMPFILE = 2087; +OracleSqlLexer.TEMPLATE = 2088; +OracleSqlLexer.TEMPLATE_TABLE = 2089; +OracleSqlLexer.TEMPORARY = 2090; +OracleSqlLexer.TEMP_TABLE = 2091; +OracleSqlLexer.TERMINATED = 2092; +OracleSqlLexer.TEST = 2093; +OracleSqlLexer.TEXT = 2094; +OracleSqlLexer.TEXTFILE = 2095; +OracleSqlLexer.THAN = 2096; +OracleSqlLexer.THEN = 2097; +OracleSqlLexer.THE = 2098; +OracleSqlLexer.THESE = 2099; +OracleSqlLexer.THREAD = 2100; +OracleSqlLexer.THROUGH = 2101; +OracleSqlLexer.TIER = 2102; +OracleSqlLexer.TIES = 2103; +OracleSqlLexer.TIMEOUT = 2104; +OracleSqlLexer.TIMESTAMP_LTZ_UNCONSTRAINED = 2105; +OracleSqlLexer.TIMESTAMP = 2106; +OracleSqlLexer.TIMESTAMP_TZ_UNCONSTRAINED = 2107; +OracleSqlLexer.TIMESTAMP_UNCONSTRAINED = 2108; +OracleSqlLexer.TIMES = 2109; +OracleSqlLexer.TIME = 2110; +OracleSqlLexer.TIMEZONE = 2111; +OracleSqlLexer.TIMEZONE_ABBR = 2112; +OracleSqlLexer.TIMEZONE_HOUR = 2113; +OracleSqlLexer.TIMEZONE_MINUTE = 2114; +OracleSqlLexer.TIMEZONE_OFFSET = 2115; +OracleSqlLexer.TIMEZONE_REGION = 2116; +OracleSqlLexer.TIME_ZONE = 2117; +OracleSqlLexer.TIMING = 2118; +OracleSqlLexer.TINYINT = 2119; +OracleSqlLexer.TIV_GB = 2120; +OracleSqlLexer.TIV_SSF = 2121; +OracleSqlLexer.TO_ACLID = 2122; +OracleSqlLexer.TO_BINARY_DOUBLE = 2123; +OracleSqlLexer.TO_BINARY_FLOAT = 2124; +OracleSqlLexer.TO_BLOB = 2125; +OracleSqlLexer.TO_CLOB = 2126; +OracleSqlLexer.TO_DSINTERVAL = 2127; +OracleSqlLexer.TO_LOB = 2128; +OracleSqlLexer.TO_MULTI_BYTE = 2129; +OracleSqlLexer.TO_NCHAR = 2130; +OracleSqlLexer.TO_NCLOB = 2131; +OracleSqlLexer.TO_NUMBER = 2132; +OracleSqlLexer.TOPLEVEL = 2133; +OracleSqlLexer.TO_SINGLE_BYTE = 2134; +OracleSqlLexer.TO_TIMESTAMP = 2135; +OracleSqlLexer.TO_TIMESTAMP_TZ = 2136; +OracleSqlLexer.TO_TIME = 2137; +OracleSqlLexer.TO_TIME_TZ = 2138; +OracleSqlLexer.TO = 2139; +OracleSqlLexer.TO_YMINTERVAL = 2140; +OracleSqlLexer.TRACE = 2141; +OracleSqlLexer.TRACING = 2142; +OracleSqlLexer.TRACKING = 2143; +OracleSqlLexer.TRAILING = 2144; +OracleSqlLexer.TRANSACTION = 2145; +OracleSqlLexer.TRANSFORM = 2146; +OracleSqlLexer.TRANSFORMS = 2147; +OracleSqlLexer.TRANSFORM_DISTINCT_AGG = 2148; +OracleSqlLexer.TRANSITIONAL = 2149; +OracleSqlLexer.TRANSITION = 2150; +OracleSqlLexer.TRANSLATE = 2151; +OracleSqlLexer.TRANSLATION = 2152; +OracleSqlLexer.TREAT = 2153; +OracleSqlLexer.TRIGGERS = 2154; +OracleSqlLexer.TRIGGER = 2155; +OracleSqlLexer.TRUE = 2156; +OracleSqlLexer.TRUNCATE = 2157; +OracleSqlLexer.TRUNC = 2158; +OracleSqlLexer.TRUSTED = 2159; +OracleSqlLexer.TRUST = 2160; +OracleSqlLexer.TUNING = 2161; +OracleSqlLexer.TX = 2162; +OracleSqlLexer.TYPES = 2163; +OracleSqlLexer.TYPE = 2164; +OracleSqlLexer.TZ_OFFSET = 2165; +OracleSqlLexer.UB2 = 2166; +OracleSqlLexer.UBA = 2167; +OracleSqlLexer.UCS2 = 2168; +OracleSqlLexer.UDF = 2169; +OracleSqlLexer.UID = 2170; +OracleSqlLexer.UNARCHIVED = 2171; +OracleSqlLexer.UNBOUNDED = 2172; +OracleSqlLexer.UNBOUND = 2173; +OracleSqlLexer.UNCONDITIONAL = 2174; +OracleSqlLexer.UNDER = 2175; +OracleSqlLexer.UNDO = 2176; +OracleSqlLexer.UNDROP = 2177; +OracleSqlLexer.UNIFORM = 2178; +OracleSqlLexer.UNION = 2179; +OracleSqlLexer.UNIONTYPE = 2180; +OracleSqlLexer.UNIQUE = 2181; +OracleSqlLexer.UNISTR = 2182; +OracleSqlLexer.UNLIMITED = 2183; +OracleSqlLexer.UNLOAD = 2184; +OracleSqlLexer.UNLOCK = 2185; +OracleSqlLexer.UNMATCHED = 2186; +OracleSqlLexer.UNNEST_INNERJ_DISTINCT_VIEW = 2187; +OracleSqlLexer.UNNEST_NOSEMIJ_NODISTINCTVIEW = 2188; +OracleSqlLexer.UNNEST_SEMIJ_VIEW = 2189; +OracleSqlLexer.UNNEST = 2190; +OracleSqlLexer.UNPACKED = 2191; +OracleSqlLexer.UNPIVOT = 2192; +OracleSqlLexer.UNPLUG = 2193; +OracleSqlLexer.UNPROTECTED = 2194; +OracleSqlLexer.UNQUIESCE = 2195; +OracleSqlLexer.UNRECOVERABLE = 2196; +OracleSqlLexer.UNRESTRICTED = 2197; +OracleSqlLexer.UNSIGNED = 2198; +OracleSqlLexer.UNSUBSCRIBE = 2199; +OracleSqlLexer.UNTIL = 2200; +OracleSqlLexer.UNUSABLE = 2201; +OracleSqlLexer.UNUSED = 2202; +OracleSqlLexer.UPDATABLE = 2203; +OracleSqlLexer.UPDATED = 2204; +OracleSqlLexer.UPDATE = 2205; +OracleSqlLexer.UPDATEXML = 2206; +OracleSqlLexer.UPD_INDEXES = 2207; +OracleSqlLexer.UPD_JOININDEX = 2208; +OracleSqlLexer.UPGRADE = 2209; +OracleSqlLexer.UPPER = 2210; +OracleSqlLexer.UPSERT = 2211; +OracleSqlLexer.UROWID = 2212; +OracleSqlLexer.USABLE = 2213; +OracleSqlLexer.USAGE = 2214; +OracleSqlLexer.USE_ANTI = 2215; +OracleSqlLexer.USE_CONCAT = 2216; +OracleSqlLexer.USE_CUBE = 2217; +OracleSqlLexer.USE_HASH_AGGREGATION = 2218; +OracleSqlLexer.USE_HASH_GBY_FOR_PUSHDOWN = 2219; +OracleSqlLexer.USE_HASH = 2220; +OracleSqlLexer.USE_HIDDEN_PARTITIONS = 2221; +OracleSqlLexer.USE_INVISIBLE_INDEXES = 2222; +OracleSqlLexer.USE_MERGE_CARTESIAN = 2223; +OracleSqlLexer.USE_MERGE = 2224; +OracleSqlLexer.USE_NL = 2225; +OracleSqlLexer.USE_NL_WITH_INDEX = 2226; +OracleSqlLexer.USE_PRIVATE_OUTLINES = 2227; +OracleSqlLexer.USER_DATA = 2228; +OracleSqlLexer.USER_DEFINED = 2229; +OracleSqlLexer.USERENV = 2230; +OracleSqlLexer.USERGROUP = 2231; +OracleSqlLexer.USER_RECYCLEBIN = 2232; +OracleSqlLexer.USERS = 2233; +OracleSqlLexer.USER_TABLESPACES = 2234; +OracleSqlLexer.USER = 2235; +OracleSqlLexer.USE_SEMI = 2236; +OracleSqlLexer.USE_STORED_OUTLINES = 2237; +OracleSqlLexer.USE_TTT_FOR_GSETS = 2238; +OracleSqlLexer.USE = 2239; +OracleSqlLexer.USE_VECTOR_AGGREGATION = 2240; +OracleSqlLexer.USE_WEAK_NAME_RESL = 2241; +OracleSqlLexer.USING_NO_EXPAND = 2242; +OracleSqlLexer.USING_NLS_COMP = 2243; +OracleSqlLexer.USING = 2244; +OracleSqlLexer.UTF16BE = 2245; +OracleSqlLexer.UTF16LE = 2246; +OracleSqlLexer.UTF32 = 2247; +OracleSqlLexer.UTF8 = 2248; +OracleSqlLexer.V1 = 2249; +OracleSqlLexer.V2 = 2250; +OracleSqlLexer.VALIDATE = 2251; +OracleSqlLexer.VALIDATE_CONVERSION = 2252; +OracleSqlLexer.VALIDATION = 2253; +OracleSqlLexer.VALID_TIME_END = 2254; +OracleSqlLexer.VALUES = 2255; +OracleSqlLexer.VALUE = 2256; +OracleSqlLexer.VARCHAR2 = 2257; +OracleSqlLexer.VARCHAR = 2258; +OracleSqlLexer.VARCHARC = 2259; +OracleSqlLexer.VARIABLE = 2260; +OracleSqlLexer.VARRAW = 2261; +OracleSqlLexer.VARRAWC = 2262; +OracleSqlLexer.VAR_POP = 2263; +OracleSqlLexer.VARRAYS = 2264; +OracleSqlLexer.VARRAY = 2265; +OracleSqlLexer.VAR_SAMP = 2266; +OracleSqlLexer.VARYING = 2267; +OracleSqlLexer.VECTOR_READ_TRACE = 2268; +OracleSqlLexer.VECTOR_READ = 2269; +OracleSqlLexer.VECTOR_TRANSFORM_DIMS = 2270; +OracleSqlLexer.VECTOR_TRANSFORM_FACT = 2271; +OracleSqlLexer.VECTOR_TRANSFORM = 2272; +OracleSqlLexer.VERIFIER = 2273; +OracleSqlLexer.VERIFY = 2274; +OracleSqlLexer.VERSIONING = 2275; +OracleSqlLexer.VERSIONS_ENDSCN = 2276; +OracleSqlLexer.VERSIONS_ENDTIME = 2277; +OracleSqlLexer.VERSIONS_OPERATION = 2278; +OracleSqlLexer.VERSIONS_STARTSCN = 2279; +OracleSqlLexer.VERSIONS_STARTTIME = 2280; +OracleSqlLexer.VERSIONS = 2281; +OracleSqlLexer.VERSIONS_XID = 2282; +OracleSqlLexer.VERSION = 2283; +OracleSqlLexer.VIEW = 2284; +OracleSqlLexer.VIOLATION = 2285; +OracleSqlLexer.VIRTUAL = 2286; +OracleSqlLexer.VISIBILITY = 2287; +OracleSqlLexer.VISIBLE = 2288; +OracleSqlLexer.VOLUME = 2289; +OracleSqlLexer.VSIZE = 2290; +OracleSqlLexer.WAIT = 2291; +OracleSqlLexer.WALLET = 2292; +OracleSqlLexer.WARNING = 2293; +OracleSqlLexer.WEEKS = 2294; +OracleSqlLexer.WEEK = 2295; +OracleSqlLexer.WELLFORMED = 2296; +OracleSqlLexer.WHENEVER = 2297; +OracleSqlLexer.WHEN = 2298; +OracleSqlLexer.WHERE = 2299; +OracleSqlLexer.WHILE = 2300; +OracleSqlLexer.WHITESPACE = 2301; +OracleSqlLexer.WIDTH_BUCKET = 2302; +OracleSqlLexer.WITHIN = 2303; +OracleSqlLexer.WITHOUT = 2304; +OracleSqlLexer.WITH_PLSQL = 2305; +OracleSqlLexer.WITH = 2306; +OracleSqlLexer.WORK = 2307; +OracleSqlLexer.WORKERID = 2308; +OracleSqlLexer.WRAPPED = 2309; +OracleSqlLexer.WRAPPER = 2310; +OracleSqlLexer.WRITE = 2311; +OracleSqlLexer.XDB_FASTPATH_INSERT = 2312; +OracleSqlLexer.XDB = 2313; +OracleSqlLexer.X_DYN_PRUNE = 2314; +OracleSqlLexer.XID = 2315; +OracleSqlLexer.XML2OBJECT = 2316; +OracleSqlLexer.XMLAGG = 2317; +OracleSqlLexer.XMLATTRIBUTES = 2318; +OracleSqlLexer.XMLCAST = 2319; +OracleSqlLexer.XMLCDATA = 2320; +OracleSqlLexer.XMLCOLATTVAL = 2321; +OracleSqlLexer.XMLCOMMENT = 2322; +OracleSqlLexer.XMLCONCAT = 2323; +OracleSqlLexer.XMLDIFF = 2324; +OracleSqlLexer.XML_DML_RWT_STMT = 2325; +OracleSqlLexer.XMLELEMENT = 2326; +OracleSqlLexer.XMLEXISTS2 = 2327; +OracleSqlLexer.XMLEXISTS = 2328; +OracleSqlLexer.XMLFOREST = 2329; +OracleSqlLexer.XMLINDEX = 2330; +OracleSqlLexer.XMLINDEX_REWRITE_IN_SELECT = 2331; +OracleSqlLexer.XMLINDEX_REWRITE = 2332; +OracleSqlLexer.XMLINDEX_SEL_IDX_TBL = 2333; +OracleSqlLexer.XMLISNODE = 2334; +OracleSqlLexer.XMLISVALID = 2335; +OracleSqlLexer.XMLNAMESPACES = 2336; +OracleSqlLexer.XMLPARSE = 2337; +OracleSqlLexer.XMLPATCH = 2338; +OracleSqlLexer.XMLPI = 2339; +OracleSqlLexer.XMLQUERYVAL = 2340; +OracleSqlLexer.XMLQUERY = 2341; +OracleSqlLexer.XMLROOT = 2342; +OracleSqlLexer.XMLSCHEMA = 2343; +OracleSqlLexer.XMLSERIALIZE = 2344; +OracleSqlLexer.XMLTABLE = 2345; +OracleSqlLexer.XMLTAG = 2346; +OracleSqlLexer.XMLTRANSFORMBLOB = 2347; +OracleSqlLexer.XMLTRANSFORM = 2348; +OracleSqlLexer.XMLTYPE = 2349; +OracleSqlLexer.XML = 2350; +OracleSqlLexer.XPATHTABLE = 2351; +OracleSqlLexer.XS_SYS_CONTEXT = 2352; +OracleSqlLexer.XS = 2353; +OracleSqlLexer.XTRANSPORT = 2354; +OracleSqlLexer.YEARS = 2355; +OracleSqlLexer.YEAR = 2356; +OracleSqlLexer.YEAR_TO_MONTH = 2357; +OracleSqlLexer.YES = 2358; +OracleSqlLexer.YMINTERVAL_UNCONSTRAINED = 2359; +OracleSqlLexer.ZONEMAP = 2360; +OracleSqlLexer.ZONE = 2361; +OracleSqlLexer.ZONED = 2362; +OracleSqlLexer.PREDICTION = 2363; +OracleSqlLexer.PREDICTION_BOUNDS = 2364; +OracleSqlLexer.PREDICTION_COST = 2365; +OracleSqlLexer.PREDICTION_DETAILS = 2366; +OracleSqlLexer.PREDICTION_PROBABILITY = 2367; +OracleSqlLexer.PREDICTION_SET = 2368; +OracleSqlLexer.BLOCKCHAIN = 2369; +OracleSqlLexer.COLLATE = 2370; +OracleSqlLexer.COLLATION = 2371; +OracleSqlLexer.DEFINITION = 2372; +OracleSqlLexer.DUPLICATED = 2373; +OracleSqlLexer.EXTENDED = 2374; +OracleSqlLexer.HASHING = 2375; +OracleSqlLexer.IDLE = 2376; +OracleSqlLexer.IMMUTABLE = 2377; +OracleSqlLexer.ORACLE_DATAPUMP = 2378; +OracleSqlLexer.ORACLE_HDFS = 2379; +OracleSqlLexer.ORACLE_HIVE = 2380; +OracleSqlLexer.ORACLE_LOADER = 2381; +OracleSqlLexer.SHA2_512_Q = 2382; +OracleSqlLexer.SHARDED = 2383; +OracleSqlLexer.V1_Q = 2384; +OracleSqlLexer.ISOLATE = 2385; +OracleSqlLexer.ROOT = 2386; +OracleSqlLexer.UNITE = 2387; +OracleSqlLexer.ALGORITHM = 2388; +OracleSqlLexer.CUME_DIST = 2389; +OracleSqlLexer.DENSE_RANK = 2390; +OracleSqlLexer.LISTAGG = 2391; +OracleSqlLexer.PERCENT_RANK = 2392; +OracleSqlLexer.PERCENTILE_CONT = 2393; +OracleSqlLexer.PERCENTILE_DISC = 2394; +OracleSqlLexer.RANK = 2395; +OracleSqlLexer.AVG = 2396; +OracleSqlLexer.CORR = 2397; +OracleSqlLexer.COVAR_ = 2398; +OracleSqlLexer.DECODE = 2399; +OracleSqlLexer.LAG = 2400; +OracleSqlLexer.LAG_DIFF = 2401; +OracleSqlLexer.LAG_DIFF_PERCENT = 2402; +OracleSqlLexer.LEAD = 2403; +OracleSqlLexer.MAX = 2404; +OracleSqlLexer.MEDIAN = 2405; +OracleSqlLexer.MEMOPTIMIZE = 2406; +OracleSqlLexer.MIN = 2407; +OracleSqlLexer.NTILE = 2408; +OracleSqlLexer.NVL = 2409; +OracleSqlLexer.RATIO_TO_REPORT = 2410; +OracleSqlLexer.REGR_ = 2411; +OracleSqlLexer.ROUND = 2412; +OracleSqlLexer.ROW_NUMBER = 2413; +OracleSqlLexer.SUBSTR = 2414; +OracleSqlLexer.TO_CHAR = 2415; +OracleSqlLexer.TRIM = 2416; +OracleSqlLexer.SUM = 2417; +OracleSqlLexer.STDDEV = 2418; +OracleSqlLexer.VAR_ = 2419; +OracleSqlLexer.VARIANCE = 2420; +OracleSqlLexer.LEAST = 2421; +OracleSqlLexer.GREATEST = 2422; +OracleSqlLexer.TO_DATE = 2423; +OracleSqlLexer.CHARSETID = 2424; +OracleSqlLexer.CHARSETFORM = 2425; +OracleSqlLexer.DURATION = 2426; +OracleSqlLexer.EXTEND = 2427; +OracleSqlLexer.MAXLEN = 2428; +OracleSqlLexer.PERSISTABLE = 2429; +OracleSqlLexer.POLYMORPHIC = 2430; +OracleSqlLexer.STRUCT = 2431; +OracleSqlLexer.TDO = 2432; +OracleSqlLexer.WM_CONCAT = 2433; +OracleSqlLexer.NATIONAL_CHAR_STRING_LIT = 2434; +OracleSqlLexer.BIT_STRING_LIT = 2435; +OracleSqlLexer.HEX_STRING_LIT = 2436; +OracleSqlLexer.DOUBLE_PERIOD = 2437; +OracleSqlLexer.PERIOD = 2438; +OracleSqlLexer.UNSIGNED_INTEGER = 2439; +OracleSqlLexer.APPROXIMATE_NUM_LIT = 2440; +OracleSqlLexer.CHAR_STRING = 2441; +OracleSqlLexer.DELIMITED_ID = 2442; +OracleSqlLexer.PERCENT = 2443; +OracleSqlLexer.AMPERSAND = 2444; +OracleSqlLexer.LEFT_PAREN = 2445; +OracleSqlLexer.RIGHT_PAREN = 2446; +OracleSqlLexer.DOUBLE_ASTERISK = 2447; +OracleSqlLexer.ASTERISK = 2448; +OracleSqlLexer.PLUS_SIGN = 2449; +OracleSqlLexer.MINUS_SIGN = 2450; +OracleSqlLexer.COMMA = 2451; +OracleSqlLexer.SOLIDUS = 2452; +OracleSqlLexer.AT_SIGN = 2453; +OracleSqlLexer.ASSIGN_OP = 2454; +OracleSqlLexer.HASH_OP = 2455; +OracleSqlLexer.LEFT_CURLY_PAREN = 2456; +OracleSqlLexer.RIGHT_CURLY_PAREN = 2457; +OracleSqlLexer.SQ = 2458; +OracleSqlLexer.BINDVAR = 2459; +OracleSqlLexer.NOT_EQUAL_OP = 2460; +OracleSqlLexer.CARRET_OPERATOR_PART = 2461; +OracleSqlLexer.TILDE_OPERATOR_PART = 2462; +OracleSqlLexer.EXCLAMATION_OPERATOR_PART = 2463; +OracleSqlLexer.GREATER_THAN_OP = 2464; +OracleSqlLexer.LESS_THAN_OP = 2465; +OracleSqlLexer.COLON = 2466; +OracleSqlLexer.SEMICOLON = 2467; +OracleSqlLexer.BAR = 2468; +OracleSqlLexer.EQUALS_OP = 2469; +OracleSqlLexer.LEFT_BRACKET = 2470; +OracleSqlLexer.RIGHT_BRACKET = 2471; +OracleSqlLexer.INTRODUCER = 2472; +OracleSqlLexer.SINGLE_LINE_COMMENT = 2473; +OracleSqlLexer.MULTI_LINE_COMMENT = 2474; +OracleSqlLexer.REMARK_COMMENT = 2475; +OracleSqlLexer.PROMPT_MESSAGE = 2476; +OracleSqlLexer.START_CMD = 2477; +OracleSqlLexer.REGULAR_ID = 2478; +OracleSqlLexer.INQUIRY_DIRECTIVE = 2479; +OracleSqlLexer.SPACES = 2480; + +OracleSqlLexer.prototype.sempred = function(localctx, ruleIndex, predIndex) { + switch (ruleIndex) { + case 2486: + return this.REMARK_COMMENT_sempred(localctx, predIndex); + case 2487: + return this.PROMPT_MESSAGE_sempred(localctx, predIndex); + default: + throw "No registered predicate for:" + ruleIndex; + } +}; + +OracleSqlLexer.prototype.REMARK_COMMENT_sempred = function(localctx, predIndex) { + switch(predIndex) { + case 0: + return this.IsNewlineAtPos(-4); + default: + throw "No predicate with index:" + predIndex; + } +}; + +OracleSqlLexer.prototype.PROMPT_MESSAGE_sempred = function(localctx, predIndex) { + switch(predIndex) { + case 1: + return this.IsNewlineAtPos(-4); + default: + throw "No predicate with index:" + predIndex; + } +}; + + + + diff --git a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.tokens b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.tokens new file mode 100644 index 000000000..bf88124a0 --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.tokens @@ -0,0 +1,4934 @@ +ABORT=1 +ABS=2 +ABSENT=3 +ACCESS=4 +ACCESSED=5 +ACCESSIBLE=6 +ACCOUNT=7 +ACL=8 +ACOS=9 +ACROSS=10 +ACTION=11 +ACTIONS=12 +ACTIVATE=13 +ACTIVE=14 +ACTIVE_COMPONENT=15 +ACTIVE_DATA=16 +ACTIVE_FUNCTION=17 +ACTIVE_TAG=18 +ACTIVITY=19 +ADAPTIVE_PLAN=20 +ADD=21 +ADD_COLUMN=22 +ADD_GROUP=23 +ADD_MONTHS=24 +ADJ_DATE=25 +ADMIN=26 +ADMINISTER=27 +ADMINISTRATOR=28 +ADVANCED=29 +ADVISE=30 +ADVISOR=31 +AFD_DISKSTRING=32 +AFTER=33 +AGENT=34 +AGGREGATE=35 +A_LETTER=36 +ALIAS=37 +ALL=38 +ALLOCATE=39 +ALLOW=40 +ALL_ROWS=41 +ALTER=42 +ALTERNATE=43 +ALWAYS=44 +ANALYTIC=45 +ANALYZE=46 +ANCESTOR=47 +ANCILLARY=48 +AND=49 +AND_EQUAL=50 +ANNOTATIONS=51 +ANOMALY=52 +ANSI_REARCH=53 +ANTIJOIN=54 +ANY=55 +ANYSCHEMA=56 +APPEND=57 +APPENDCHILDXML=58 +APPEND_VALUES=59 +APPLICATION=60 +APPLY=61 +APPROX_COUNT_DISTINCT=62 +ARCHIVAL=63 +ARCHIVE=64 +ARCHIVED=65 +ARCHIVELOG=66 +ARE=67 +ARRAY=68 +AS=69 +ASC=70 +ASCII=71 +ASCIISTR=72 +ASIN=73 +ASIS=74 +ASSEMBLY=75 +ASSIGN=76 +ASSOCIATE=77 +ASYNC=78 +ASYNCHRONOUS=79 +ATAN2=80 +ATAN=81 +AT=82 +ATTRIBUTE=83 +ATTRIBUTES=84 +AUDIT=85 +AUTHENTICATED=86 +AUTHENTICATION=87 +AUTHID=88 +AUTHORIZATION=89 +AUTOALLOCATE=90 +AUTO=91 +AUTOBACKUP=92 +AUTOEXTEND=93 +AUTO_LOGIN=94 +AUTOMATIC=95 +AUTONOMOUS_TRANSACTION=96 +AUTO_REOPTIMIZE=97 +AVAILABILITY=98 +AVRO=99 +BACKGROUND=100 +BACKINGFILE=101 +BACKUP=102 +BACKUPS=103 +BACKUPSET=104 +BADFILE=105 +BASIC=106 +BASICFILE=107 +BATCH=108 +BATCHSIZE=109 +BATCH_TABLE_ACCESS_BY_ROWID=110 +BECOME=111 +BEFORE=112 +BEGIN=113 +BEGINNING=114 +BEGIN_OUTLINE_DATA=115 +BEHALF=116 +BEQUEATH=117 +BETWEEN=118 +BFILE=119 +BFILENAME=120 +BIG=121 +BIGFILE=122 +BIGINT=123 +BINARY=124 +BINARY_DOUBLE=125 +BINARY_DOUBLE_INFINITY=126 +BINARY_DOUBLE_NAN=127 +BINARY_FLOAT=128 +BINARY_FLOAT_INFINITY=129 +BINARY_FLOAT_NAN=130 +BINARY_INTEGER=131 +BIND_AWARE=132 +BINDING=133 +BIN_TO_NUM=134 +BITAND=135 +BITMAP_AND=136 +BITMAP=137 +BITMAPS=138 +BITMAP_TREE=139 +BITS=140 +BLANKS=141 +BLOB=142 +BLOCK=143 +BLOCK_RANGE=144 +BLOCKS=145 +BLOCKSIZE=146 +BODY=147 +BOOLEAN=148 +BOTH=149 +BOUND=150 +BRANCH=151 +BREADTH=152 +BROADCAST=153 +BSON=154 +BUFFER=155 +BUFFER_CACHE=156 +BUFFER_POOL=157 +BUILD=158 +BULK=159 +BY=160 +BYPASS_RECURSIVE_CHECK=161 +BYPASS_UJVC=162 +BYTE=163 +BYTES=164 +BYTEORDERMARK=165 +CACHE=166 +CACHE_CB=167 +CACHE_INSTANCES=168 +CACHE_TEMP_TABLE=169 +CACHING=170 +CALCULATED=171 +CALLBACK=172 +CALL=173 +CANCEL=174 +CANONICAL=175 +CAPACITY=176 +CAPTION=177 +CARDINALITY=178 +CASCADE=179 +CASE=180 +CAST=181 +CASESENSITIVE=182 +CATEGORY=183 +CDBDEFAULT=184 +CEIL=185 +CELL_FLASH_CACHE=186 +CERTIFICATE=187 +CFILE=188 +CHAINED=189 +CHANGE=190 +CHANGETRACKING=191 +CHANGE_DUPKEY_ERROR_INDEX=192 +CHARACTER=193 +CHARACTERS=194 +CHARACTERSET=195 +CHAR=196 +CHAR_CS=197 +CHARTOROWID=198 +CHECK_ACL_REWRITE=199 +CHECK=200 +CHECKPOINT=201 +CHILD=202 +CHOOSE=203 +CHR=204 +CHUNK=205 +CLASS=206 +CLASSIFICATION=207 +CLASSIFIER=208 +CLAUSE=209 +CLEAN=210 +CLEANUP=211 +CLEAR=212 +C_LETTER=213 +CLIENT=214 +CLOB=215 +CLONE=216 +CLOSE_CACHED_OPEN_CURSORS=217 +CLOSE=218 +CLUSTER_BY_ROWID=219 +CLUSTER=220 +CLUSTER_DETAILS=221 +CLUSTER_DISTANCE=222 +CLUSTER_ID=223 +CLUSTERING=224 +CLUSTERING_FACTOR=225 +CLUSTER_PROBABILITY=226 +CLUSTER_SET=227 +COALESCE=228 +COALESCE_SQ=229 +COARSE=230 +CO_AUTH_IND=231 +COLD=232 +COLLECT=233 +COLLECTION=234 +COLUMNAR=235 +COLUMN_AUTH_INDICATOR=236 +COLUMN=237 +COLUMNS=238 +COLUMN_STATS=239 +COLUMN_VALUE=240 +COMMENT=241 +COMMIT=242 +COMMITTED=243 +COMMON=244 +COMMON_DATA=245 +COMPACT=246 +COMPATIBLE=247 +COMPATIBILITY=248 +COMPILE=249 +COMPLETE=250 +COMPLIANCE=251 +COMPONENT=252 +COMPONENTS=253 +COMPOSE=254 +COMPOSITE=255 +COMPOSITE_LIMIT=256 +COMPOUND=257 +COMPRESS=258 +COMPRESSION=259 +COMPUTE=260 +CONCAT=261 +CON_DBID_TO_ID=262 +CONDITIONAL=263 +CONDITION=264 +CONFIRM=265 +CONFORMING=266 +CON_GUID_TO_ID=267 +CON_ID=268 +CON_NAME_TO_ID=269 +CONNECT_BY_CB_WHR_ONLY=270 +CONNECT_BY_COMBINE_SW=271 +CONNECT_BY_COST_BASED=272 +CONNECT_BY_ELIM_DUPS=273 +CONNECT_BY_FILTERING=274 +CONNECT_BY_ISCYCLE=275 +CONNECT_BY_ISLEAF=276 +CONNECT_BY_ROOT=277 +CONNECT=278 +CONNECT_TIME=279 +CONSIDER=280 +CONSISTENT=281 +CONSTANT=282 +CONST=283 +CONSTRAINT=284 +CONSTRAINTS=285 +CONSTRUCTOR=286 +CONTAINER=287 +CONTAINERS=288 +CONTAINERS_DEFAULT=289 +CONTAINER_DATA=290 +CONTAINER_MAP=291 +CONTENT=292 +CONTENTS=293 +CONTEXT=294 +CONTINUE=295 +CONTROLFILE=296 +CON_UID_TO_ID=297 +CONVERT=298 +CONVERSION=299 +COOKIE=300 +COPY=301 +CORR_K=302 +CORR_S=303 +CORRUPTION=304 +CORRUPT_XID_ALL=305 +CORRUPT_XID=306 +COS=307 +COSH=308 +COST=309 +COST_XML_QUERY_REWRITE=310 +COUNT=311 +COUNTED=312 +COVAR_POP=313 +COVAR_SAMP=314 +CPU_COSTING=315 +CPU_PER_CALL=316 +CPU_PER_SESSION=317 +CRASH=318 +CREATE=319 +CREATE_FILE_DEST=320 +CREATE_STORED_OUTLINES=321 +CREATION=322 +CREDENTIAL=323 +CRITICAL=324 +CROSS=325 +CROSSEDITION=326 +CSCONVERT=327 +CSV=328 +CUBE_AJ=329 +CUBE=330 +CUBE_GB=331 +CUBE_SJ=332 +CUME_DISTM=333 +CURRENT=334 +CURRENT_DATE=335 +CURRENT_SCHEMA=336 +CURRENT_TIME=337 +CURRENT_TIMESTAMP=338 +CURRENT_USER=339 +CURRENTV=340 +CURSOR=341 +CURSOR_SHARING_EXACT=342 +CURSOR_SPECIFIC_SEGMENT=343 +CUSTOMDATUM=344 +CV=345 +CYCLE=346 +DANGLING=347 +DATABASE=348 +DATA=349 +DATAFILE=350 +DATAFILES=351 +DATAGUARDCONFIG=352 +DATAMOVEMENT=353 +DATAOBJNO=354 +DATAOBJ_TO_MAT_PARTITION=355 +DATAOBJ_TO_PARTITION=356 +DATAPUMP=357 +DATA_SECURITY_REWRITE_LIMIT=358 +DATE=359 +DATE_CACHE=360 +DATE_FORMAT=361 +DATE_MODE=362 +DAY=363 +DAYS=364 +DAY_TO_SECOND=365 +DBA=366 +DBA_RECYCLEBIN=367 +DBLINK=368 +DBMS_STATS=369 +DB_ROLE_CHANGE=370 +DBTIMEZONE=371 +DB_UNIQUE_NAME=372 +DB_VERSION=373 +DDL=374 +DEALLOCATE=375 +DEBUG=376 +DEBUGGER=377 +DEC=378 +DECIMAL=379 +DECLARE=380 +DECOMPOSE=381 +DECORRELATE=382 +DECR=383 +DECREMENT=384 +DECRYPT=385 +DEDUPLICATE=386 +DEFAULT=387 +DEFAULTIF=388 +DEFAULTS=389 +DEFAULT_COLLATION=390 +DEFAULT_CREDENTIAL=391 +DEFERRABLE=392 +DEFERRED=393 +DEFINED=394 +DEFINE=395 +DEFINER=396 +DEGREE=397 +DELAY=398 +DELEGATE=399 +DELETE_ALL=400 +DELETE=401 +DELETEXML=402 +DELIMITED=403 +DEMAND=404 +DENSE_RANKM=405 +DEPENDENT=406 +DEPRECATE=407 +DEPTH=408 +DEQUEUE=409 +DEREF=410 +DEREF_NO_REWRITE=411 +DESC=412 +DESCRIPTION=413 +DESTROY=414 +DETACHED=415 +DETECTED=416 +DETERMINES=417 +DETERMINISTIC=418 +DICTIONARY=419 +DIMENSION=420 +DIMENSIONS=421 +DIRECTIO=422 +DIRECT_LOAD=423 +DIRECTORY=424 +DIRECT_PATH=425 +DISABLE_ALL=426 +DISABLE=427 +DISABLED=428 +DISABLE_DIRECTORY_LINK_CHECK=429 +DISABLE_PARALLEL_DML=430 +DISABLE_PRESET=431 +DISABLE_RPKE=432 +DISALLOW=433 +DISASSOCIATE=434 +DISCARD=435 +DISCARDFILE=436 +DISCONNECT=437 +DISK=438 +DISKGROUP=439 +DISKGROUP_PLUS=440 +DISKS=441 +DISMOUNT=442 +DISTINCT=443 +DISTINGUISHED=444 +DISTRIBUTED=445 +DISTRIBUTE=446 +DML=447 +DML_UPDATE=448 +DNFS_DISABLE=449 +DNFS_ENABLE=450 +DNFS_READBUFFERS=451 +DOCFIDELITY=452 +DOCUMENT=453 +DOLLAR_ELSE=454 +DOLLAR_ELSIF=455 +DOLLAR_END=456 +DOLLAR_ERROR=457 +DOLLAR_IF=458 +DOLLAR_THEN=459 +DOMAIN_INDEX_FILTER=460 +DOMAIN_INDEX_NO_SORT=461 +DOMAIN_INDEX_SORT=462 +DOUBLE=463 +DOWNGRADE=464 +DRIVING_SITE=465 +DROP_COLUMN=466 +DROP=467 +DROP_GROUP=468 +DSINTERVAL_UNCONSTRAINED=469 +DST_UPGRADE_INSERT_CONV=470 +DUMP=471 +DUMPSET=472 +DUPLICATE=473 +DV=474 +DYNAMIC=475 +DYNAMIC_SAMPLING=476 +DYNAMIC_SAMPLING_EST_CDN=477 +E_LETTER=478 +EACH=479 +EDITIONABLE=480 +EDITION=481 +EDITIONING=482 +EDITIONS=483 +ELEMENT=484 +ELIM_GROUPBY=485 +ELIMINATE_JOIN=486 +ELIMINATE_OBY=487 +ELIMINATE_OUTER_JOIN=488 +ELSE=489 +ELSIF=490 +EM=491 +EMBEDDED=492 +EMPTY_BLOB=493 +EMPTY_CLOB=494 +EMPTY_=495 +ENABLE_ALL=496 +ENABLE=497 +ENABLED=498 +ENABLE_PARALLEL_DML=499 +ENABLE_PRESET=500 +ENCLOSED=501 +ENCODING=502 +ENCRYPT=503 +ENCRYPTION=504 +ENCRYPTPASSWORDISNULL=505 +END=506 +END_OUTLINE_DATA=507 +ENDIAN=508 +ENFORCED=509 +ENFORCE=510 +ENQUEUE=511 +ENTERPRISE=512 +ENTITYESCAPING=513 +ENTRY=514 +EQUIPART=515 +ERR=516 +ERROR_ARGUMENT=517 +ERROR=518 +ERROR_ON_OVERLAP_TIME=519 +ERRORS=520 +ERROR_INDEX=521 +ERROR_CODE=522 +ESCAPE=523 +ESCAPED=524 +ESTIMATE=525 +EVAL=526 +EVALNAME=527 +EVALUATE=528 +EVALUATION=529 +EVENTS=530 +EVERY=531 +EXCEPT=532 +EXCEPTION=533 +EXCEPTION_INIT=534 +EXCEPTIONS=535 +EXCHANGE=536 +EXCLUDE=537 +EXCLUDING=538 +EXCLUSIVE=539 +EXECUTE=540 +EXEMPT=541 +EXISTING=542 +EXISTS=543 +EXISTSNODE=544 +EXIT=545 +EXPAND_GSET_TO_UNION=546 +EXPAND_TABLE=547 +EXP=548 +EXPIRE=549 +EXPLAIN=550 +EXPLOSION=551 +EXPORT=552 +EXPR_CORR_CHECK=553 +EXPRESS=554 +EXTENDS=555 +EXTENT=556 +EXTENTS=557 +EXTERNAL=558 +EXTERNALLY=559 +EXTRACTCLOBXML=560 +EXTRACT=561 +EXTRACTVALUE=562 +EXTRA=563 +FACILITY=564 +FACT=565 +FACTOR=566 +FACTORIZE_JOIN=567 +FAILED=568 +FAILED_LOGIN_ATTEMPTS=569 +FAILGROUP=570 +FAILOVER=571 +FAILURE=572 +FALSE=573 +FAMILY=574 +FAR=575 +FAST=576 +FASTSTART=577 +FBTSCAN=578 +FEATURE=579 +FEATURE_DETAILS=580 +FEATURE_ID=581 +FEATURE_SET=582 +FEATURE_VALUE=583 +FETCH=584 +FIELD=585 +FIELDS=586 +FILE=587 +FILE_NAME_CONVERT=588 +FILEGROUP=589 +FILESTORE=590 +FILESYSTEM_LIKE_LOGGING=591 +FILTER=592 +FINAL=593 +FINE=594 +FINISH=595 +FIRST=596 +FIRSTM=597 +FIRST_ROWS=598 +FIRST_VALUE=599 +FIXED=600 +FIXED_VIEW_DATA=601 +FLAGGER=602 +FLASHBACK=603 +FLASH_CACHE=604 +FLOAT=605 +FLOB=606 +FLEX=607 +FLOOR=608 +FLUSH=609 +FOLDER=610 +FOLLOWING=611 +FOLLOWS=612 +FORALL=613 +FORCE=614 +FORCE_XML_QUERY_REWRITE=615 +FOREIGN=616 +FOREVER=617 +FOR=618 +FORMAT=619 +FORWARD=620 +FRAGMENT_NUMBER=621 +FREELIST=622 +FREELISTS=623 +FREEPOOLS=624 +FRESH=625 +FROM=626 +FROM_TZ=627 +FULL=628 +FULL_OUTER_JOIN_TO_OUTER=629 +FUNCTION=630 +FUNCTIONS=631 +FTP=632 +G_LETTER=633 +GATHER_OPTIMIZER_STATISTICS=634 +GATHER_PLAN_STATISTICS=635 +GBY_CONC_ROLLUP=636 +GBY_PUSHDOWN=637 +GENERATED=638 +GET=639 +GLOBAL=640 +GLOBALLY=641 +GLOBAL_NAME=642 +GLOBAL_TOPIC_ENABLED=643 +GOTO=644 +GRANT=645 +GROUP_BY=646 +GROUP=647 +GROUP_ID=648 +GROUPING=649 +GROUPING_ID=650 +GROUPS=651 +GUARANTEED=652 +GUARANTEE=653 +GUARD=654 +HADOOP_TRAILERS=655 +HALF_YEARS=656 +HASH_AJ=657 +HASH=658 +HASHKEYS=659 +HASH_SJ=660 +HAVING=661 +HEADER=662 +HEAP=663 +HELP=664 +HEXTORAW=665 +HEXTOREF=666 +HIDDEN_KEYWORD=667 +HIDE=668 +HIER_ORDER=669 +HIERARCHICAL=670 +HIERARCHIES=671 +HIERARCHY=672 +HIGH=673 +HINTSET_BEGIN=674 +HINTSET_END=675 +HOT=676 +HOUR=677 +HOURS=678 +HTTP=679 +HWM_BROKERED=680 +HYBRID=681 +H_LETTER=682 +IDENTIFIED=683 +IDENTIFIER=684 +IDENTITY=685 +IDGENERATORS=686 +ID=687 +IDLE_TIME=688 +IF=689 +IGNORE=690 +IGNORE_CHARS_AFTER_EOR=691 +IGNORE_OPTIM_EMBEDDED_HINTS=692 +IGNORE_ROW_ON_DUPKEY_INDEX=693 +IGNORE_WHERE_CLAUSE=694 +ILM=695 +IMMEDIATE=696 +IMPACT=697 +IMPORT=698 +INACTIVE=699 +INACTIVE_ACCOUNT_TIME=700 +INCLUDE=701 +INCLUDE_VERSION=702 +INCLUDING=703 +INCREMENTAL=704 +INCREMENT=705 +INCR=706 +INDENT=707 +INDEX_ASC=708 +INDEX_COMBINE=709 +INDEX_DESC=710 +INDEXED=711 +INDEXES=712 +INDEX_FFS=713 +INDEX_FILTER=714 +INDEX=715 +INDEXING=716 +INDEX_JOIN=717 +INDEX_ROWS=718 +INDEX_RRS=719 +INDEX_RS_ASC=720 +INDEX_RS_DESC=721 +INDEX_RS=722 +INDEX_SCAN=723 +INDEX_SKIP_SCAN=724 +INDEX_SS_ASC=725 +INDEX_SS_DESC=726 +INDEX_SS=727 +INDEX_STATS=728 +INDEXTYPE=729 +INDEXTYPES=730 +INDICATOR=731 +INDICES=732 +INFINITE=733 +INFORMATIONAL=734 +INHERIT=735 +IN=736 +INITCAP=737 +INITIAL=738 +INITIALIZED=739 +INITIALLY=740 +INITRANS=741 +INLINE=742 +INLINE_XMLTYPE_NT=743 +INMEMORY=744 +IN_MEMORY_METADATA=745 +INMEMORY_PRUNING=746 +INNER=747 +INOUT=748 +INPLACE=749 +INPUTFORMAT=750 +INSERTCHILDXMLAFTER=751 +INSERTCHILDXMLBEFORE=752 +INSERTCHILDXML=753 +INSERT=754 +INSERTXMLAFTER=755 +INSERTXMLBEFORE=756 +INSTANCE=757 +INSTANCES=758 +INSTANTIABLE=759 +INSTANTLY=760 +INSTEAD=761 +INSTR2=762 +INSTR4=763 +INSTRB=764 +INSTRC=765 +INSTR=766 +INTEGER=767 +INTERLEAVED=768 +INTERMEDIATE=769 +INTERNAL_CONVERT=770 +INTERNAL_USE=771 +INTERPRETED=772 +INTERSECT=773 +INTERVAL=774 +INT=775 +INTERNAL=776 +INTO=777 +INVALIDATE=778 +INVALIDATION=779 +INVISIBLE=780 +IN_XQUERY=781 +IO_OPTIONS=782 +IS=783 +IS_LEAF=784 +ISOLATION=785 +ISOLATION_LEVEL=786 +ITEMS=787 +ITERATE=788 +ITERATION_NUMBER=789 +JAVA=790 +JOB=791 +JOIN=792 +JSON_ARRAYAGG=793 +JSON_ARRAY=794 +JSON_EQUAL=795 +JSON_EXISTS2=796 +JSON_EXISTS=797 +JSONGET=798 +JSON=799 +JSON_OBJECTAGG=800 +JSON_OBJECT=801 +JSONPARSE=802 +JSON_QUERY=803 +JSON_SERIALIZE=804 +JSON_TABLE=805 +JSON_TEXTCONTAINS2=806 +JSON_TEXTCONTAINS=807 +JSON_TRANSFORM=808 +JSON_VALUE=809 +K_LETTER=810 +KEEP_DUPLICATES=811 +KEEP=812 +KERBEROS=813 +KEY=814 +KEY_LENGTH=815 +KEYSIZE=816 +KEYS=817 +KEYSTORE=818 +KILL=819 +LABEL=820 +LANGUAGE=821 +LAST_DAY=822 +LAST=823 +LAST_VALUE=824 +LATERAL=825 +LATEST=826 +LAX=827 +LAYER=828 +LDAP_REGISTRATION_ENABLED=829 +LDAP_REGISTRATION=830 +LDAP_REG_SYNC_INTERVAL=831 +LDRTRIM=832 +LEAF=833 +LEAD_CDB=834 +LEAD_CDB_URI=835 +LEADING=836 +LEFT=837 +LENGTH2=838 +LENGTH4=839 +LENGTHB=840 +LENGTHC=841 +LENGTH=842 +LESS=843 +LEVEL=844 +LEVEL_NAME=845 +LEVELS=846 +LIBRARY=847 +LIFECYCLE=848 +LIFE=849 +LIFETIME=850 +LIKE2=851 +LIKE4=852 +LIKEC=853 +LIKE_EXPAND=854 +LIKE=855 +LIMIT=856 +LINEAR=857 +LINES=858 +LINK=859 +LIST=860 +LITTLE=861 +LLS=862 +LN=863 +LNNVL=864 +LOAD=865 +LOB=866 +LOBFILE=867 +LOBNVL=868 +LOBS=869 +LOCAL_INDEXES=870 +LOCAL=871 +LOCALTIME=872 +LOCALTIMESTAMP=873 +LOCATION=874 +LOCATOR=875 +LOCKDOWN=876 +LOCKED=877 +LOCKING=878 +LOCK=879 +LOGFILE=880 +LOGFILES=881 +LOGGING=882 +LOGICAL=883 +LOGICAL_READS_PER_CALL=884 +LOGICAL_READS_PER_SESSION=885 +LOG=886 +LOGMINING=887 +LOGOFF=888 +LOGON=889 +LOG_READ_ONLY_VIOLATIONS=890 +LONG=891 +LOOP=892 +LOST=893 +LOWER=894 +LOW=895 +LPAD=896 +LRTRIM=897 +LTRIM=898 +M_LETTER=899 +MAIN=900 +MAKE_REF=901 +MANAGED=902 +MANAGE=903 +MANAGEMENT=904 +MANAGER=905 +MANDATORY=906 +MANUAL=907 +MAP=908 +MAPPING=909 +MASK=910 +MASTER=911 +MATCHED=912 +MATCHES=913 +MATCH=914 +MATCH_NUMBER=915 +MATCH_RECOGNIZE=916 +MATERIALIZED=917 +MATERIALIZE=918 +MAXARCHLOGS=919 +MAXDATAFILES=920 +MAXEXTENTS=921 +MAXIMIZE=922 +MAXINSTANCES=923 +MAXLOGFILES=924 +MAXLOGHISTORY=925 +MAXLOGMEMBERS=926 +MAX_SHARED_TEMP_SIZE=927 +MAXSIZE=928 +MAXTRANS=929 +MAXVALUE=930 +MEASURE=931 +MEASURES=932 +MEDIUM=933 +MEMBER=934 +MEMBER_CAPTION=935 +MEMBER_DESCRIPTION=936 +MEMBER_NAME=937 +MEMBER_UNIQUE_NAME=938 +MEMCOMPRESS=939 +MEMORY=940 +MERGEACTIONS=941 +MERGE_AJ=942 +MERGE_CONST_ON=943 +MERGE=944 +MERGE_SJ=945 +METADATA=946 +METHOD=947 +MIGRATE=948 +MIGRATION=949 +MINEXTENTS=950 +MINIMIZE=951 +MINIMUM=952 +MINING=953 +MINUS=954 +MINUS_NULL=955 +MINUTE=956 +MINUTES=957 +MINVALUE=958 +MIRRORCOLD=959 +MIRRORHOT=960 +MIRROR=961 +MISSING=962 +MISMATCH=963 +MLSLABEL=964 +MODEL_COMPILE_SUBQUERY=965 +MODEL_DONTVERIFY_UNIQUENESS=966 +MODEL_DYNAMIC_SUBQUERY=967 +MODEL_MIN_ANALYSIS=968 +MODEL=969 +MODEL_NB=970 +MODEL_NO_ANALYSIS=971 +MODEL_PBY=972 +MODEL_PUSH_REF=973 +MODEL_SV=974 +MODE=975 +MODIFICATION=976 +MODIFY_COLUMN_TYPE=977 +MODIFY=978 +MOD=979 +MODULE=980 +MONITORING=981 +MONITOR=982 +MONTH=983 +MONTHS_BETWEEN=984 +MONTHS=985 +MOUNT=986 +MOUNTPATH=987 +MOUNTPOINT=988 +MOVEMENT=989 +MOVE=990 +MULTIDIMENSIONAL=991 +MULTISET=992 +MV_MERGE=993 +NAMED=994 +NAME=995 +NAMESPACE=996 +NAN_=997 +NANVL=998 +NATIONAL=999 +NATIVE_FULL_OUTER_JOIN=1000 +NATIVE=1001 +NATURAL=1002 +NATURALN=1003 +NAV=1004 +NCHAR_CS=1005 +NCHAR=1006 +NCHR=1007 +NCLOB=1008 +NEEDED=1009 +NEG=1010 +NESTED=1011 +NESTED_TABLE_FAST_INSERT=1012 +NESTED_TABLE_GET_REFS=1013 +NESTED_TABLE_ID=1014 +NESTED_TABLE_SET_REFS=1015 +NESTED_TABLE_SET_SETID=1016 +NETWORK=1017 +NEVER=1018 +NEW=1019 +NEWLINE_=1020 +NEW_TIME=1021 +NEXT_DAY=1022 +NEXT=1023 +NL_AJ=1024 +NLJ_BATCHING=1025 +NLJ_INDEX_FILTER=1026 +NLJ_INDEX_SCAN=1027 +NLJ_PREFETCH=1028 +NLS_CALENDAR=1029 +NLS_CHARACTERSET=1030 +NLS_CHARSET_DECL_LEN=1031 +NLS_CHARSET_ID=1032 +NLS_CHARSET_NAME=1033 +NLS_COMP=1034 +NLS_CURRENCY=1035 +NLS_DATE_FORMAT=1036 +NLS_DATE_LANGUAGE=1037 +NLS_INITCAP=1038 +NLS_ISO_CURRENCY=1039 +NL_SJ=1040 +NLS_LANG=1041 +NLS_LANGUAGE=1042 +NLS_LENGTH_SEMANTICS=1043 +NLS_LOWER=1044 +NLS_NCHAR_CONV_EXCP=1045 +NLS_NUMERIC_CHARACTERS=1046 +NLS_SORT=1047 +NLSSORT=1048 +NLS_SPECIAL_CHARS=1049 +NLS_TERRITORY=1050 +NLS_UPPER=1051 +NO_ACCESS=1052 +NO_ADAPTIVE_PLAN=1053 +NO_ANSI_REARCH=1054 +NOAPPEND=1055 +NOARCHIVELOG=1056 +NOAUDIT=1057 +NOBADFILE=1058 +NO_AUTO_REOPTIMIZE=1059 +NO_BASETABLE_MULTIMV_REWRITE=1060 +NO_BATCH_TABLE_ACCESS_BY_ROWID=1061 +NO_BIND_AWARE=1062 +NO_BUFFER=1063 +NOCACHE=1064 +NOCHECK=1065 +NO_CARTESIAN=1066 +NO_CHECK_ACL_REWRITE=1067 +NO_CLUSTER_BY_ROWID=1068 +NO_CLUSTERING=1069 +NO_COALESCE_SQ=1070 +NO_COMMON_DATA=1071 +NOCOMPRESS=1072 +NO_CONNECT_BY_CB_WHR_ONLY=1073 +NO_CONNECT_BY_COMBINE_SW=1074 +NO_CONNECT_BY_COST_BASED=1075 +NO_CONNECT_BY_ELIM_DUPS=1076 +NO_CONNECT_BY_FILTERING=1077 +NOCOPY=1078 +NO_COST_XML_QUERY_REWRITE=1079 +NO_CPU_COSTING=1080 +NOCPU_COSTING=1081 +NOCYCLE=1082 +NO_DATA_SECURITY_REWRITE=1083 +NO_DECORRELATE=1084 +NODELAY=1085 +NODIRECTIO=1086 +NODISCARDFILE=1087 +NO_DOMAIN_INDEX_FILTER=1088 +NO_DST_UPGRADE_INSERT_CONV=1089 +NO_ELIM_GROUPBY=1090 +NO_ELIMINATE_JOIN=1091 +NO_ELIMINATE_OBY=1092 +NO_ELIMINATE_OUTER_JOIN=1093 +NOENTITYESCAPING=1094 +NO_EXPAND_GSET_TO_UNION=1095 +NO_EXPAND=1096 +NO_EXPAND_TABLE=1097 +NOEXTEND=1098 +NO_FACT=1099 +NO_FACTORIZE_JOIN=1100 +NO_FILTERING=1101 +NOFORCE=1102 +NO_FULL_OUTER_JOIN_TO_OUTER=1103 +NO_GATHER_OPTIMIZER_STATISTICS=1104 +NO_GBY_PUSHDOWN=1105 +NOGUARANTEE=1106 +NO_INDEX_FFS=1107 +NO_INDEX=1108 +NO_INDEX_SS=1109 +NO_INMEMORY=1110 +NO_INMEMORY_PRUNING=1111 +NOKEEP=1112 +NO_LOAD=1113 +NOLOCAL=1114 +NOLOG=1115 +NOLOGFILE=1116 +NOLOGGING=1117 +NOMAPPING=1118 +NOMAXVALUE=1119 +NO_MERGE=1120 +NOMINIMIZE=1121 +NOMINVALUE=1122 +NO_MODEL_PUSH_REF=1123 +NO_MONITORING=1124 +NOMONITORING=1125 +NO_MONITOR=1126 +NO_MULTIMV_REWRITE=1127 +NO_NATIVE_FULL_OUTER_JOIN=1128 +NONBLOCKING=1129 +NONEDITIONABLE=1130 +NONE=1131 +NONULLIF=1132 +NO_NLJ_BATCHING=1133 +NO_NLJ_PREFETCH=1134 +NO=1135 +NONSCHEMA=1136 +NO_OBJECT_LINK=1137 +NOORDER=1138 +NO_ORDER_ROLLUPS=1139 +NO_OUTER_JOIN_TO_ANTI=1140 +NO_OUTER_JOIN_TO_INNER=1141 +NOOVERRIDE=1142 +NO_PARALLEL_INDEX=1143 +NOPARALLEL_INDEX=1144 +NO_PARALLEL=1145 +NOPARALLEL=1146 +NO_PARTIAL_COMMIT=1147 +NO_PARTIAL_JOIN=1148 +NO_PARTIAL_ROLLUP_PUSHDOWN=1149 +NOPARTITION=1150 +NO_PLACE_DISTINCT=1151 +NO_PLACE_GROUP_BY=1152 +NO_PQ_CONCURRENT_UNION=1153 +NO_PQ_MAP=1154 +NOPROMPT=1155 +NO_PQ_REPLICATE=1156 +NO_PQ_SKEW=1157 +NO_PRUNE_GSETS=1158 +NO_PULL_PRED=1159 +NO_PUSH_PRED=1160 +NO_PUSH_SUBQ=1161 +NO_PX_FAULT_TOLERANCE=1162 +NO_PX_JOIN_FILTER=1163 +NO_QKN_BUFF=1164 +NO_QUERY_TRANSFORMATION=1165 +NO_REF_CASCADE=1166 +NORELOCATE=1167 +NORELY=1168 +NOREPAIR=1169 +NOREPLAY=1170 +NORESETLOGS=1171 +NO_RESULT_CACHE=1172 +NOREVERSE=1173 +NO_REWRITE=1174 +NOREWRITE=1175 +NORMAL=1176 +NO_ROOT_SW_FOR_LOCAL=1177 +NOROWDEPENDENCIES=1178 +NOSCALE=1179 +NOSCHEMACHECK=1180 +NOSEGMENT=1181 +NO_SEMIJOIN=1182 +NO_SEMI_TO_INNER=1183 +NO_SET_TO_JOIN=1184 +NOSHARD=1185 +NOSORT=1186 +NO_SQL_TRANSLATION=1187 +NO_SQL_TUNE=1188 +NO_STAR_TRANSFORMATION=1189 +NO_STATEMENT_QUEUING=1190 +NO_STATS_GSETS=1191 +NOSTRICT=1192 +NO_SUBQUERY_PRUNING=1193 +NO_SUBSTRB_PAD=1194 +NO_SWAP_JOIN_INPUTS=1195 +NOSWITCH=1196 +NO_TABLE_LOOKUP_BY_NL=1197 +NO_TEMP_TABLE=1198 +NOTHING=1199 +NOTIFICATION=1200 +NOTRIM=1201 +NOT=1202 +NO_TRANSFORM_DISTINCT_AGG=1203 +NO_UNNEST=1204 +NO_USE_CUBE=1205 +NO_USE_HASH_AGGREGATION=1206 +NO_USE_HASH_GBY_FOR_PUSHDOWN=1207 +NO_USE_HASH=1208 +NO_USE_INVISIBLE_INDEXES=1209 +NO_USE_MERGE=1210 +NO_USE_NL=1211 +NO_USE_VECTOR_AGGREGATION=1212 +NOVALIDATE=1213 +NO_VECTOR_TRANSFORM_DIMS=1214 +NO_VECTOR_TRANSFORM_FACT=1215 +NO_VECTOR_TRANSFORM=1216 +NOWAIT=1217 +NO_XDB_FASTPATH_INSERT=1218 +NO_XML_DML_REWRITE=1219 +NO_XMLINDEX_REWRITE_IN_SELECT=1220 +NO_XMLINDEX_REWRITE=1221 +NO_XML_QUERY_REWRITE=1222 +NO_ZONEMAP=1223 +NTH_VALUE=1224 +NULLIF=1225 +NULL_=1226 +NULLS=1227 +NUMBER=1228 +NUMERIC=1229 +NUM_INDEX_KEYS=1230 +NUMTODSINTERVAL=1231 +NUMTOYMINTERVAL=1232 +NVARCHAR2=1233 +NVL2=1234 +OBJECT2XML=1235 +OBJECT=1236 +OBJ_ID=1237 +OBJNO=1238 +OBJNO_REUSE=1239 +OCCURENCES=1240 +OFFLINE=1241 +OFF=1242 +OFFSET=1243 +OF=1244 +OIDINDEX=1245 +OID=1246 +OLAP=1247 +OLD=1248 +OLD_PUSH_PRED=1249 +OLS=1250 +OLTP=1251 +OMIT=1252 +ONE=1253 +ONLINE=1254 +ONLINELOG=1255 +ONLY=1256 +ON=1257 +OPAQUE=1258 +OPAQUE_TRANSFORM=1259 +OPAQUE_XCANONICAL=1260 +OPCODE=1261 +OPEN=1262 +OPERATIONS=1263 +OPERATOR=1264 +OPT_ESTIMATE=1265 +OPTIMAL=1266 +OPTIMIZE=1267 +OPTIMIZER_FEATURES_ENABLE=1268 +OPTIMIZER_GOAL=1269 +OPTION=1270 +OPTIONALLY=1271 +OPT_PARAM=1272 +ORA_BRANCH=1273 +ORA_CHECK_ACL=1274 +ORA_CHECK_PRIVILEGE=1275 +ORA_CLUSTERING=1276 +ORADATA=1277 +ORC=1278 +ORACLE_DATE=1279 +ORACLE_NUMBER=1280 +ORADEBUG=1281 +ORA_DST_AFFECTED=1282 +ORA_DST_CONVERT=1283 +ORA_DST_ERROR=1284 +ORA_GET_ACLIDS=1285 +ORA_GET_PRIVILEGES=1286 +ORA_HASH=1287 +ORA_INVOKING_USERID=1288 +ORA_INVOKING_USER=1289 +ORA_INVOKING_XS_USER_GUID=1290 +ORA_INVOKING_XS_USER=1291 +ORA_RAWCOMPARE=1292 +ORA_RAWCONCAT=1293 +ORA_ROWSCN=1294 +ORA_ROWSCN_RAW=1295 +ORA_ROWVERSION=1296 +ORA_TABVERSION=1297 +ORA_WRITE_TIME=1298 +ORDERED=1299 +ORDERED_PREDICATES=1300 +ORDER=1301 +ORDINALITY=1302 +OR_EXPAND=1303 +ORGANIZATION=1304 +OR=1305 +OR_PREDICATES=1306 +OSERROR=1307 +OTHER=1308 +OUTER_JOIN_TO_ANTI=1309 +OUTER_JOIN_TO_INNER=1310 +OUTER=1311 +OUTLINE_LEAF=1312 +OUTLINE=1313 +OUTPUTFORMAT=1314 +OUT_OF_LINE=1315 +OUT=1316 +OVERFLOW_NOMOVE=1317 +OVERFLOW_=1318 +OVERLAPS=1319 +OVER=1320 +OVERRIDE=1321 +OVERRIDING=1322 +OWNER=1323 +OWNERSHIP=1324 +OWN=1325 +P_LETTER=1326 +PACKAGE=1327 +PACKAGES=1328 +PARALLEL_ENABLE=1329 +PARALLEL_INDEX=1330 +PARALLEL=1331 +PARAMETERFILE=1332 +PARAMETERS=1333 +PARAM=1334 +PARENT=1335 +PARENT_LEVEL_NAME=1336 +PARENT_UNIQUE_NAME=1337 +PARITY=1338 +PARQUET=1339 +PARTIAL_JOIN=1340 +PARTIALLY=1341 +PARTIAL=1342 +PARTIAL_ROLLUP_PUSHDOWN=1343 +PARTITION_HASH=1344 +PARTITION_LIST=1345 +PARTITION=1346 +PARTITION_RANGE=1347 +PARTITIONS=1348 +PARTNUMINST=1349 +PASSING=1350 +PASSWORD_GRACE_TIME=1351 +PASSWORD_LIFE_TIME=1352 +PASSWORD_LOCK_TIME=1353 +PASSWORD=1354 +PASSWORD_REUSE_MAX=1355 +PASSWORD_REUSE_TIME=1356 +PASSWORD_ROLLOVER_TIME=1357 +PASSWORD_VERIFY_FUNCTION=1358 +PAST=1359 +PATCH=1360 +PATH=1361 +PATH_PREFIX=1362 +PATHS=1363 +PATTERN=1364 +PBL_HS_BEGIN=1365 +PBL_HS_END=1366 +PCTFREE=1367 +PCTINCREASE=1368 +PCTTHRESHOLD=1369 +PCTUSED=1370 +PCTVERSION=1371 +PENDING=1372 +PERCENT_FOUND=1373 +PERCENT_ISOPEN=1374 +PERCENT_NOTFOUND=1375 +PERCENT_KEYWORD=1376 +PERCENT_RANKM=1377 +PERCENT_ROWCOUNT=1378 +PERCENT_ROWTYPE=1379 +PERCENT_TYPE=1380 +PERCENT_BULK_EXCEPTIONS=1381 +PERCENT_BULK_ROWCOUNT=1382 +PERFORMANCE=1383 +PERIOD_KEYWORD=1384 +PERMANENT=1385 +PERMISSION=1386 +PERMUTE=1387 +PER=1388 +PFILE=1389 +PHYSICAL=1390 +PIKEY=1391 +PIPELINED=1392 +PIPE=1393 +PIV_GB=1394 +PIVOT=1395 +PIV_SSF=1396 +PLACE_DISTINCT=1397 +PLACE_GROUP_BY=1398 +PLAN=1399 +PLSCOPE_SETTINGS=1400 +PLS_INTEGER=1401 +PLSQL_CCFLAGS=1402 +PLSQL_CODE_TYPE=1403 +PLSQL_DEBUG=1404 +PLSQL_OPTIMIZE_LEVEL=1405 +PLSQL_WARNINGS=1406 +PLUGGABLE=1407 +PMEM=1408 +POINT=1409 +POLICY=1410 +POOL_16K=1411 +POOL_2K=1412 +POOL_32K=1413 +POOL_4K=1414 +POOL_8K=1415 +POSITION=1416 +POSITIVEN=1417 +POSITIVE=1418 +POST_TRANSACTION=1419 +POWERMULTISET_BY_CARDINALITY=1420 +POWERMULTISET=1421 +POWER=1422 +PQ_CONCURRENT_UNION=1423 +PQ_DISTRIBUTE=1424 +PQ_DISTRIBUTE_WINDOW=1425 +PQ_FILTER=1426 +PQ_MAP=1427 +PQ_NOMAP=1428 +PQ_REPLICATE=1429 +PQ_SKEW=1430 +PRAGMA=1431 +PREBUILT=1432 +PRECEDES=1433 +PRECEDING=1434 +PRECISION=1435 +PRECOMPUTE_SUBQUERY=1436 +PREDICATE_REORDERS=1437 +PRELOAD=1438 +PREPARE=1439 +PREPROCESSOR=1440 +PRESENTNNV=1441 +PRESENT=1442 +PRESENTV=1443 +PRESERVE_OID=1444 +PRESERVE=1445 +PRETTY=1446 +PREVIOUS=1447 +PREV=1448 +PRIMARY=1449 +PRINTBLOBTOCLOB=1450 +PRIORITY=1451 +PRIOR=1452 +PRIVATE=1453 +PRIVATE_SGA=1454 +PRIVILEGED=1455 +PRIVILEGE=1456 +PRIVILEGES=1457 +PROCEDURAL=1458 +PROCEDURE=1459 +PROCESS=1460 +PROFILE=1461 +PROGRAM=1462 +PROJECT=1463 +PROPAGATE=1464 +PROPERTY=1465 +PROTECTED=1466 +PROTECTION=1467 +PROTOCOL=1468 +PROXY=1469 +PRUNING=1470 +PUBLIC=1471 +PULL_PRED=1472 +PURGE=1473 +PUSH_PRED=1474 +PUSH_SUBQ=1475 +PX_FAULT_TOLERANCE=1476 +PX_GRANULE=1477 +PX_JOIN_FILTER=1478 +QB_NAME=1479 +QUARTERS=1480 +QUERY_BLOCK=1481 +QUERY=1482 +QUEUE_CURR=1483 +QUEUE=1484 +QUEUE_ROWP=1485 +QUIESCE=1486 +QUORUM=1487 +QUOTA=1488 +QUOTAGROUP=1489 +RAISE=1490 +RANDOM_LOCAL=1491 +RANDOM=1492 +RANGE=1493 +RANKM=1494 +RAPIDLY=1495 +RAW=1496 +RAWTOHEX=1497 +RAWTONHEX=1498 +RBA=1499 +RBO_OUTLINE=1500 +RCFILE=1501 +RDBA=1502 +READ=1503 +READS=1504 +READSIZE=1505 +REALM=1506 +REAL=1507 +REBALANCE=1508 +REBUILD=1509 +RECORD=1510 +RECORDS=1511 +RECORDS_PER_BLOCK=1512 +RECOVERABLE=1513 +RECOVER=1514 +RECOVERY=1515 +RECYCLEBIN=1516 +RECYCLE=1517 +REDACTION=1518 +REDEFINE=1519 +REDO=1520 +REDUCED=1521 +REDUNDANCY=1522 +REF_CASCADE_CURSOR=1523 +REFERENCED=1524 +REFERENCE=1525 +REFERENCES=1526 +REFERENCING=1527 +REF=1528 +REFRESH=1529 +REFTOHEX=1530 +REGEXP_COUNT=1531 +REGEXP_INSTR=1532 +REGEXP_LIKE=1533 +REGEXP_REPLACE=1534 +REGEXP_SUBSTR=1535 +REGISTER=1536 +REGR_AVGX=1537 +REGR_AVGY=1538 +REGR_COUNT=1539 +REGR_INTERCEPT=1540 +REGR_R2=1541 +REGR_SLOPE=1542 +REGR_SXX=1543 +REGR_SXY=1544 +REGR_SYY=1545 +REGULAR=1546 +REJECT=1547 +REKEY=1548 +RELATIONAL=1549 +RELIES_ON=1550 +RELOCATE=1551 +RELY=1552 +REMAINDER=1553 +REMOTE=1554 +REMOTE_MAPPED=1555 +REMOVE=1556 +RENAME=1557 +REPAIR=1558 +REPEAT=1559 +REPLACE=1560 +REPLICATION=1561 +REQUIRED=1562 +RESETLOGS=1563 +RESET=1564 +RESIZE=1565 +RESOLVE=1566 +RESOLVER=1567 +RESOURCE=1568 +RESPECT=1569 +RESTART=1570 +RESTORE_AS_INTERVALS=1571 +RESTORE=1572 +RESTRICT_ALL_REF_CONS=1573 +RESTRICTED=1574 +RESTRICT_REFERENCES=1575 +RESTRICT=1576 +RESULT_CACHE=1577 +RESULT=1578 +RESUMABLE=1579 +RESUME=1580 +RETENTION=1581 +RETRY_ON_ROW_CHANGE=1582 +RETURNING=1583 +RETURN=1584 +REUSE=1585 +REVERSE=1586 +REVOKE=1587 +REWRITE_OR_ERROR=1588 +REWRITE=1589 +RIGHT=1590 +ROLE=1591 +ROLESET=1592 +ROLES=1593 +ROLLBACK=1594 +ROLLING=1595 +ROLLUP=1596 +ROWDEPENDENCIES=1597 +ROWID_MAPPING_TABLE=1598 +ROWID=1599 +ROWIDTOCHAR=1600 +ROWIDTONCHAR=1601 +ROW_LENGTH=1602 +ROWNUM=1603 +ROW=1604 +ROWS=1605 +RPAD=1606 +RTRIM=1607 +RULE=1608 +RULES=1609 +RUNNING=1610 +SALT=1611 +SAMPLE=1612 +SAVE_AS_INTERVALS=1613 +SAVEPOINT=1614 +SAVE=1615 +SB4=1616 +SCALE_ROWS=1617 +SCALE=1618 +SCAN_INSTANCES=1619 +SCAN=1620 +SCHEDULER=1621 +SCHEMACHECK=1622 +SCHEMA=1623 +SCN_ASCENDING=1624 +SCN=1625 +SCOPE=1626 +SCRUB=1627 +SD_ALL=1628 +SD_INHIBIT=1629 +SDO_GEOM_MBR=1630 +SDO_GEOMETRY=1631 +SD_SHOW=1632 +SEARCH=1633 +SECOND=1634 +SECONDS=1635 +SECRET=1636 +SECUREFILE_DBA=1637 +SECUREFILE=1638 +SECURITY=1639 +SEED=1640 +SEG_BLOCK=1641 +SEG_FILE=1642 +SEGMENT=1643 +SELECTIVITY=1644 +SELECT=1645 +SELF=1646 +SEMIJOIN_DRIVER=1647 +SEMIJOIN=1648 +SEMI_TO_INNER=1649 +SEQUENCED=1650 +SEQUENCE=1651 +SEQUENCEFILE=1652 +SEQUENTIAL=1653 +SEQ=1654 +SERDE=1655 +SERDEPROPERTIES=1656 +SERIALIZABLE=1657 +SERIALLY_REUSABLE=1658 +SERIAL=1659 +SERVERERROR=1660 +SERVICE_NAME_CONVERT=1661 +SERVICE=1662 +SERVICES=1663 +SESSION_CACHED_CURSORS=1664 +SESSION=1665 +SESSIONS_PER_USER=1666 +SESSIONTIMEZONE=1667 +SESSIONTZNAME=1668 +SET=1669 +SETS=1670 +SETTINGS=1671 +SET_TO_JOIN=1672 +SEVERE=1673 +SHARD=1674 +SHARDSPACE=1675 +SHARED_POOL=1676 +SHARED=1677 +SHARE=1678 +SHARING=1679 +SHELFLIFE=1680 +SHOW=1681 +SHRINK=1682 +SHUTDOWN=1683 +SIBLINGS=1684 +SID=1685 +SITE=1686 +SIGNAL_COMPONENT=1687 +SIGNAL_FUNCTION=1688 +SIGN=1689 +SIGNTYPE=1690 +SIMPLE_INTEGER=1691 +SIMPLE=1692 +SINGLE=1693 +SINGLETASK=1694 +SINH=1695 +SIN=1696 +SIZE=1697 +SIZES=1698 +SKIP_EXT_OPTIMIZER=1699 +SKIP_=1700 +SKIP_UNQ_UNUSABLE_IDX=1701 +SKIP_UNUSABLE_INDEXES=1702 +SMALLFILE=1703 +SMALLINT=1704 +SNAPSHOT=1705 +SOME=1706 +SORT=1707 +SOUNDEX=1708 +SOURCE_FILE_DIRECTORY=1709 +SOURCE_FILE_NAME_CONVERT=1710 +SOURCE=1711 +SPACE_KEYWORD=1712 +SPECIFICATION=1713 +SPFILE=1714 +SPLIT=1715 +SPREADSHEET=1716 +SQLDATA=1717 +SQLERROR=1718 +SQLLDR=1719 +SQL=1720 +FILE_EXT=1721 +SQL_MACRO=1722 +SQL_TRACE=1723 +SQL_TRANSLATION_PROFILE=1724 +SQRT=1725 +STALE=1726 +STANDALONE=1727 +STANDARD=1728 +STANDARD_HASH=1729 +STANDBY_MAX_DATA_DELAY=1730 +STANDBYS=1731 +STANDBY=1732 +STAR=1733 +STAR_TRANSFORMATION=1734 +START=1735 +STARTOF=1736 +STARTUP=1737 +STATEMENT_ID=1738 +STATEMENT_QUEUING=1739 +STATEMENTS=1740 +STATEMENT=1741 +STATE=1742 +STATIC=1743 +STATISTICS=1744 +STATS_BINOMIAL_TEST=1745 +STATS_CROSSTAB=1746 +STATS_F_TEST=1747 +STATS_KS_TEST=1748 +STATS_MODE=1749 +STATS_MW_TEST=1750 +STATS_ONE_WAY_ANOVA=1751 +STATS_T_TEST_INDEP=1752 +STATS_T_TEST_INDEPU=1753 +STATS_T_TEST_ONE=1754 +STATS_T_TEST_PAIRED=1755 +STATS_WSR_TEST=1756 +STDDEV_POP=1757 +STDDEV_SAMP=1758 +STOP=1759 +STORAGE=1760 +STORE=1761 +STREAMS=1762 +STREAM=1763 +STRICT=1764 +STRING=1765 +STRIPE_COLUMNS=1766 +STRIPE_WIDTH=1767 +STRIP=1768 +STRUCTURE=1769 +SUBMULTISET=1770 +SUBPARTITION_REL=1771 +SUBPARTITIONS=1772 +SUBPARTITION=1773 +SUBQUERIES=1774 +SUBQUERY_PRUNING=1775 +SUBSCRIBE=1776 +SUBSET=1777 +SUBSTITUTABLE=1778 +SUBSTR2=1779 +SUBSTR4=1780 +SUBSTRB=1781 +SUBSTRC=1782 +SUBTYPE=1783 +SUCCESSFUL=1784 +SUCCESS=1785 +SUMMARY=1786 +SUPPLEMENTAL=1787 +SUSPEND=1788 +SWAP_JOIN_INPUTS=1789 +SWITCHOVER=1790 +SWITCH=1791 +SYNCHRONOUS=1792 +SYNC=1793 +SYNONYM=1794 +SYS=1795 +SYSASM=1796 +SYS_AUDIT=1797 +SYSAUX=1798 +SYSBACKUP=1799 +SYS_CHECKACL=1800 +SYS_CHECK_PRIVILEGE=1801 +SYS_CONNECT_BY_PATH=1802 +SYS_CONTEXT=1803 +SYSDATE=1804 +SYSDBA=1805 +SYS_DBURIGEN=1806 +SYSDG=1807 +SYS_DL_CURSOR=1808 +SYS_DM_RXFORM_CHR=1809 +SYS_DM_RXFORM_NUM=1810 +SYS_DOM_COMPARE=1811 +SYS_DST_PRIM2SEC=1812 +SYS_DST_SEC2PRIM=1813 +SYS_ET_BFILE_TO_RAW=1814 +SYS_ET_BLOB_TO_IMAGE=1815 +SYS_ET_IMAGE_TO_BLOB=1816 +SYS_ET_RAW_TO_BFILE=1817 +SYS_EXTPDTXT=1818 +SYS_EXTRACT_UTC=1819 +SYS_FBT_INSDEL=1820 +SYS_FILTER_ACLS=1821 +SYS_FNMATCHES=1822 +SYS_FNREPLACE=1823 +SYS_GET_ACLIDS=1824 +SYS_GET_COL_ACLIDS=1825 +SYS_GET_PRIVILEGES=1826 +SYS_GETTOKENID=1827 +SYS_GETXTIVAL=1828 +SYS_GUID=1829 +SYSGUID=1830 +SYSKM=1831 +SYS_MAKE_XMLNODEID=1832 +SYS_MAKEXML=1833 +SYS_MKXMLATTR=1834 +SYS_MKXTI=1835 +SYSOBJ=1836 +SYS_OP_ADT2BIN=1837 +SYS_OP_ADTCONS=1838 +SYS_OP_ALSCRVAL=1839 +SYS_OP_ATG=1840 +SYS_OP_BIN2ADT=1841 +SYS_OP_BITVEC=1842 +SYS_OP_BL2R=1843 +SYS_OP_BLOOM_FILTER_LIST=1844 +SYS_OP_BLOOM_FILTER=1845 +SYS_OP_C2C=1846 +SYS_OP_CAST=1847 +SYS_OP_CEG=1848 +SYS_OP_CL2C=1849 +SYS_OP_COMBINED_HASH=1850 +SYS_OP_COMP=1851 +SYS_OP_CONVERT=1852 +SYS_OP_COUNTCHG=1853 +SYS_OP_CSCONV=1854 +SYS_OP_CSCONVTEST=1855 +SYS_OP_CSR=1856 +SYS_OP_CSX_PATCH=1857 +SYS_OP_CYCLED_SEQ=1858 +SYS_OP_DECOMP=1859 +SYS_OP_DESCEND=1860 +SYS_OP_DISTINCT=1861 +SYS_OP_DRA=1862 +SYS_OP_DUMP=1863 +SYS_OP_DV_CHECK=1864 +SYS_OP_ENFORCE_NOT_NULL=1865 +SYSOPER=1866 +SYS_OP_EXTRACT=1867 +SYS_OP_GROUPING=1868 +SYS_OP_GUID=1869 +SYS_OP_HASH=1870 +SYS_OP_IIX=1871 +SYS_OP_ITR=1872 +SYS_OP_KEY_VECTOR_CREATE=1873 +SYS_OP_KEY_VECTOR_FILTER_LIST=1874 +SYS_OP_KEY_VECTOR_FILTER=1875 +SYS_OP_KEY_VECTOR_SUCCEEDED=1876 +SYS_OP_KEY_VECTOR_USE=1877 +SYS_OP_LBID=1878 +SYS_OP_LOBLOC2BLOB=1879 +SYS_OP_LOBLOC2CLOB=1880 +SYS_OP_LOBLOC2ID=1881 +SYS_OP_LOBLOC2NCLOB=1882 +SYS_OP_LOBLOC2TYP=1883 +SYS_OP_LSVI=1884 +SYS_OP_LVL=1885 +SYS_OP_MAKEOID=1886 +SYS_OP_MAP_NONNULL=1887 +SYS_OP_MSR=1888 +SYS_OP_NICOMBINE=1889 +SYS_OP_NIEXTRACT=1890 +SYS_OP_NII=1891 +SYS_OP_NIX=1892 +SYS_OP_NOEXPAND=1893 +SYS_OP_NTCIMG=1894 +SYS_OP_NUMTORAW=1895 +SYS_OP_OIDVALUE=1896 +SYS_OP_OPNSIZE=1897 +SYS_OP_PAR_1=1898 +SYS_OP_PARGID_1=1899 +SYS_OP_PARGID=1900 +SYS_OP_PAR=1901 +SYS_OP_PART_ID=1902 +SYS_OP_PIVOT=1903 +SYS_OP_R2O=1904 +SYS_OP_RAWTONUM=1905 +SYS_OP_RDTM=1906 +SYS_OP_REF=1907 +SYS_OP_RMTD=1908 +SYS_OP_ROWIDTOOBJ=1909 +SYS_OP_RPB=1910 +SYS_OPTLOBPRBSC=1911 +SYS_OP_TOSETID=1912 +SYS_OP_TPR=1913 +SYS_OP_TRTB=1914 +SYS_OPTXICMP=1915 +SYS_OPTXQCASTASNQ=1916 +SYS_OP_UNDESCEND=1917 +SYS_OP_VECAND=1918 +SYS_OP_VECBIT=1919 +SYS_OP_VECOR=1920 +SYS_OP_VECXOR=1921 +SYS_OP_VERSION=1922 +SYS_OP_VREF=1923 +SYS_OP_VVD=1924 +SYS_OP_XMLCONS_FOR_CSX=1925 +SYS_OP_XPTHATG=1926 +SYS_OP_XPTHIDX=1927 +SYS_OP_XPTHOP=1928 +SYS_OP_XTXT2SQLT=1929 +SYS_OP_ZONE_ID=1930 +SYS_ORDERKEY_DEPTH=1931 +SYS_ORDERKEY_MAXCHILD=1932 +SYS_ORDERKEY_PARENT=1933 +SYS_PARALLEL_TXN=1934 +SYS_PATHID_IS_ATTR=1935 +SYS_PATHID_IS_NMSPC=1936 +SYS_PATHID_LASTNAME=1937 +SYS_PATHID_LASTNMSPC=1938 +SYS_PATH_REVERSE=1939 +SYS_PXQEXTRACT=1940 +SYS_RAW_TO_XSID=1941 +SYS_RID_ORDER=1942 +SYS_ROW_DELTA=1943 +SYS_SC_2_XMLT=1944 +SYS_SYNRCIREDO=1945 +SYSTEM_DEFINED=1946 +SYSTEM=1947 +SYSTIMESTAMP=1948 +SYS_TYPEID=1949 +SYS_UMAKEXML=1950 +SYS_XMLANALYZE=1951 +SYS_XMLCONTAINS=1952 +SYS_XMLCONV=1953 +SYS_XMLEXNSURI=1954 +SYS_XMLGEN=1955 +SYS_XMLI_LOC_ISNODE=1956 +SYS_XMLI_LOC_ISTEXT=1957 +SYS_XMLINSTR=1958 +SYS_XMLLOCATOR_GETSVAL=1959 +SYS_XMLNODEID_GETCID=1960 +SYS_XMLNODEID_GETLOCATOR=1961 +SYS_XMLNODEID_GETOKEY=1962 +SYS_XMLNODEID_GETPATHID=1963 +SYS_XMLNODEID_GETPTRID=1964 +SYS_XMLNODEID_GETRID=1965 +SYS_XMLNODEID_GETSVAL=1966 +SYS_XMLNODEID_GETTID=1967 +SYS_XMLNODEID=1968 +SYS_XMLT_2_SC=1969 +SYS_XMLTRANSLATE=1970 +SYS_XMLTYPE2SQL=1971 +SYS_XQ_ASQLCNV=1972 +SYS_XQ_ATOMCNVCHK=1973 +SYS_XQBASEURI=1974 +SYS_XQCASTABLEERRH=1975 +SYS_XQCODEP2STR=1976 +SYS_XQCODEPEQ=1977 +SYS_XQCON2SEQ=1978 +SYS_XQCONCAT=1979 +SYS_XQDELETE=1980 +SYS_XQDFLTCOLATION=1981 +SYS_XQDOC=1982 +SYS_XQDOCURI=1983 +SYS_XQDURDIV=1984 +SYS_XQED4URI=1985 +SYS_XQENDSWITH=1986 +SYS_XQERRH=1987 +SYS_XQERR=1988 +SYS_XQESHTMLURI=1989 +SYS_XQEXLOBVAL=1990 +SYS_XQEXSTWRP=1991 +SYS_XQEXTRACT=1992 +SYS_XQEXTRREF=1993 +SYS_XQEXVAL=1994 +SYS_XQFB2STR=1995 +SYS_XQFNBOOL=1996 +SYS_XQFNCMP=1997 +SYS_XQFNDATIM=1998 +SYS_XQFNLNAME=1999 +SYS_XQFNNM=2000 +SYS_XQFNNSURI=2001 +SYS_XQFNPREDTRUTH=2002 +SYS_XQFNQNM=2003 +SYS_XQFNROOT=2004 +SYS_XQFORMATNUM=2005 +SYS_XQFTCONTAIN=2006 +SYS_XQFUNCR=2007 +SYS_XQGETCONTENT=2008 +SYS_XQINDXOF=2009 +SYS_XQINSERT=2010 +SYS_XQINSPFX=2011 +SYS_XQIRI2URI=2012 +SYS_XQLANG=2013 +SYS_XQLLNMFRMQNM=2014 +SYS_XQMKNODEREF=2015 +SYS_XQNILLED=2016 +SYS_XQNODENAME=2017 +SYS_XQNORMSPACE=2018 +SYS_XQNORMUCODE=2019 +SYS_XQ_NRNG=2020 +SYS_XQNSP4PFX=2021 +SYS_XQNSPFRMQNM=2022 +SYS_XQPFXFRMQNM=2023 +SYS_XQ_PKSQL2XML=2024 +SYS_XQPOLYABS=2025 +SYS_XQPOLYADD=2026 +SYS_XQPOLYCEL=2027 +SYS_XQPOLYCSTBL=2028 +SYS_XQPOLYCST=2029 +SYS_XQPOLYDIV=2030 +SYS_XQPOLYFLR=2031 +SYS_XQPOLYMOD=2032 +SYS_XQPOLYMUL=2033 +SYS_XQPOLYRND=2034 +SYS_XQPOLYSQRT=2035 +SYS_XQPOLYSUB=2036 +SYS_XQPOLYUMUS=2037 +SYS_XQPOLYUPLS=2038 +SYS_XQPOLYVEQ=2039 +SYS_XQPOLYVGE=2040 +SYS_XQPOLYVGT=2041 +SYS_XQPOLYVLE=2042 +SYS_XQPOLYVLT=2043 +SYS_XQPOLYVNE=2044 +SYS_XQREF2VAL=2045 +SYS_XQRENAME=2046 +SYS_XQREPLACE=2047 +SYS_XQRESVURI=2048 +SYS_XQRNDHALF2EVN=2049 +SYS_XQRSLVQNM=2050 +SYS_XQRYENVPGET=2051 +SYS_XQRYVARGET=2052 +SYS_XQRYWRP=2053 +SYS_XQSEQ2CON4XC=2054 +SYS_XQSEQ2CON=2055 +SYS_XQSEQDEEPEQ=2056 +SYS_XQSEQINSB=2057 +SYS_XQSEQRM=2058 +SYS_XQSEQRVS=2059 +SYS_XQSEQSUB=2060 +SYS_XQSEQTYPMATCH=2061 +SYS_XQSTARTSWITH=2062 +SYS_XQSTATBURI=2063 +SYS_XQSTR2CODEP=2064 +SYS_XQSTRJOIN=2065 +SYS_XQSUBSTRAFT=2066 +SYS_XQSUBSTRBEF=2067 +SYS_XQTOKENIZE=2068 +SYS_XQTREATAS=2069 +SYS_XQ_UPKXML2SQL=2070 +SYS_XQXFORM=2071 +SYS_XSID_TO_RAW=2072 +SYS_ZMAP_FILTER=2073 +SYS_ZMAP_REFRESH=2074 +T_LETTER=2075 +TABLE_LOOKUP_BY_NL=2076 +TABLESPACE_NO=2077 +TABLESPACE=2078 +TABLES=2079 +TABLE_STATS=2080 +TABLE=2081 +TABNO=2082 +TAG=2083 +TANH=2084 +TAN=2085 +TBLORIDXPARTNUM=2086 +TEMPFILE=2087 +TEMPLATE=2088 +TEMPLATE_TABLE=2089 +TEMPORARY=2090 +TEMP_TABLE=2091 +TERMINATED=2092 +TEST=2093 +TEXT=2094 +TEXTFILE=2095 +THAN=2096 +THEN=2097 +THE=2098 +THESE=2099 +THREAD=2100 +THROUGH=2101 +TIER=2102 +TIES=2103 +TIMEOUT=2104 +TIMESTAMP_LTZ_UNCONSTRAINED=2105 +TIMESTAMP=2106 +TIMESTAMP_TZ_UNCONSTRAINED=2107 +TIMESTAMP_UNCONSTRAINED=2108 +TIMES=2109 +TIME=2110 +TIMEZONE=2111 +TIMEZONE_ABBR=2112 +TIMEZONE_HOUR=2113 +TIMEZONE_MINUTE=2114 +TIMEZONE_OFFSET=2115 +TIMEZONE_REGION=2116 +TIME_ZONE=2117 +TIMING=2118 +TINYINT=2119 +TIV_GB=2120 +TIV_SSF=2121 +TO_ACLID=2122 +TO_BINARY_DOUBLE=2123 +TO_BINARY_FLOAT=2124 +TO_BLOB=2125 +TO_CLOB=2126 +TO_DSINTERVAL=2127 +TO_LOB=2128 +TO_MULTI_BYTE=2129 +TO_NCHAR=2130 +TO_NCLOB=2131 +TO_NUMBER=2132 +TOPLEVEL=2133 +TO_SINGLE_BYTE=2134 +TO_TIMESTAMP=2135 +TO_TIMESTAMP_TZ=2136 +TO_TIME=2137 +TO_TIME_TZ=2138 +TO=2139 +TO_YMINTERVAL=2140 +TRACE=2141 +TRACING=2142 +TRACKING=2143 +TRAILING=2144 +TRANSACTION=2145 +TRANSFORM=2146 +TRANSFORMS=2147 +TRANSFORM_DISTINCT_AGG=2148 +TRANSITIONAL=2149 +TRANSITION=2150 +TRANSLATE=2151 +TRANSLATION=2152 +TREAT=2153 +TRIGGERS=2154 +TRIGGER=2155 +TRUE=2156 +TRUNCATE=2157 +TRUNC=2158 +TRUSTED=2159 +TRUST=2160 +TUNING=2161 +TX=2162 +TYPES=2163 +TYPE=2164 +TZ_OFFSET=2165 +UB2=2166 +UBA=2167 +UCS2=2168 +UDF=2169 +UID=2170 +UNARCHIVED=2171 +UNBOUNDED=2172 +UNBOUND=2173 +UNCONDITIONAL=2174 +UNDER=2175 +UNDO=2176 +UNDROP=2177 +UNIFORM=2178 +UNION=2179 +UNIONTYPE=2180 +UNIQUE=2181 +UNISTR=2182 +UNLIMITED=2183 +UNLOAD=2184 +UNLOCK=2185 +UNMATCHED=2186 +UNNEST_INNERJ_DISTINCT_VIEW=2187 +UNNEST_NOSEMIJ_NODISTINCTVIEW=2188 +UNNEST_SEMIJ_VIEW=2189 +UNNEST=2190 +UNPACKED=2191 +UNPIVOT=2192 +UNPLUG=2193 +UNPROTECTED=2194 +UNQUIESCE=2195 +UNRECOVERABLE=2196 +UNRESTRICTED=2197 +UNSIGNED=2198 +UNSUBSCRIBE=2199 +UNTIL=2200 +UNUSABLE=2201 +UNUSED=2202 +UPDATABLE=2203 +UPDATED=2204 +UPDATE=2205 +UPDATEXML=2206 +UPD_INDEXES=2207 +UPD_JOININDEX=2208 +UPGRADE=2209 +UPPER=2210 +UPSERT=2211 +UROWID=2212 +USABLE=2213 +USAGE=2214 +USE_ANTI=2215 +USE_CONCAT=2216 +USE_CUBE=2217 +USE_HASH_AGGREGATION=2218 +USE_HASH_GBY_FOR_PUSHDOWN=2219 +USE_HASH=2220 +USE_HIDDEN_PARTITIONS=2221 +USE_INVISIBLE_INDEXES=2222 +USE_MERGE_CARTESIAN=2223 +USE_MERGE=2224 +USE_NL=2225 +USE_NL_WITH_INDEX=2226 +USE_PRIVATE_OUTLINES=2227 +USER_DATA=2228 +USER_DEFINED=2229 +USERENV=2230 +USERGROUP=2231 +USER_RECYCLEBIN=2232 +USERS=2233 +USER_TABLESPACES=2234 +USER=2235 +USE_SEMI=2236 +USE_STORED_OUTLINES=2237 +USE_TTT_FOR_GSETS=2238 +USE=2239 +USE_VECTOR_AGGREGATION=2240 +USE_WEAK_NAME_RESL=2241 +USING_NO_EXPAND=2242 +USING_NLS_COMP=2243 +USING=2244 +UTF16BE=2245 +UTF16LE=2246 +UTF32=2247 +UTF8=2248 +V1=2249 +V2=2250 +VALIDATE=2251 +VALIDATE_CONVERSION=2252 +VALIDATION=2253 +VALID_TIME_END=2254 +VALUES=2255 +VALUE=2256 +VARCHAR2=2257 +VARCHAR=2258 +VARCHARC=2259 +VARIABLE=2260 +VARRAW=2261 +VARRAWC=2262 +VAR_POP=2263 +VARRAYS=2264 +VARRAY=2265 +VAR_SAMP=2266 +VARYING=2267 +VECTOR_READ_TRACE=2268 +VECTOR_READ=2269 +VECTOR_TRANSFORM_DIMS=2270 +VECTOR_TRANSFORM_FACT=2271 +VECTOR_TRANSFORM=2272 +VERIFIER=2273 +VERIFY=2274 +VERSIONING=2275 +VERSIONS_ENDSCN=2276 +VERSIONS_ENDTIME=2277 +VERSIONS_OPERATION=2278 +VERSIONS_STARTSCN=2279 +VERSIONS_STARTTIME=2280 +VERSIONS=2281 +VERSIONS_XID=2282 +VERSION=2283 +VIEW=2284 +VIOLATION=2285 +VIRTUAL=2286 +VISIBILITY=2287 +VISIBLE=2288 +VOLUME=2289 +VSIZE=2290 +WAIT=2291 +WALLET=2292 +WARNING=2293 +WEEKS=2294 +WEEK=2295 +WELLFORMED=2296 +WHENEVER=2297 +WHEN=2298 +WHERE=2299 +WHILE=2300 +WHITESPACE=2301 +WIDTH_BUCKET=2302 +WITHIN=2303 +WITHOUT=2304 +WITH_PLSQL=2305 +WITH=2306 +WORK=2307 +WORKERID=2308 +WRAPPED=2309 +WRAPPER=2310 +WRITE=2311 +XDB_FASTPATH_INSERT=2312 +XDB=2313 +X_DYN_PRUNE=2314 +XID=2315 +XML2OBJECT=2316 +XMLAGG=2317 +XMLATTRIBUTES=2318 +XMLCAST=2319 +XMLCDATA=2320 +XMLCOLATTVAL=2321 +XMLCOMMENT=2322 +XMLCONCAT=2323 +XMLDIFF=2324 +XML_DML_RWT_STMT=2325 +XMLELEMENT=2326 +XMLEXISTS2=2327 +XMLEXISTS=2328 +XMLFOREST=2329 +XMLINDEX=2330 +XMLINDEX_REWRITE_IN_SELECT=2331 +XMLINDEX_REWRITE=2332 +XMLINDEX_SEL_IDX_TBL=2333 +XMLISNODE=2334 +XMLISVALID=2335 +XMLNAMESPACES=2336 +XMLPARSE=2337 +XMLPATCH=2338 +XMLPI=2339 +XMLQUERYVAL=2340 +XMLQUERY=2341 +XMLROOT=2342 +XMLSCHEMA=2343 +XMLSERIALIZE=2344 +XMLTABLE=2345 +XMLTAG=2346 +XMLTRANSFORMBLOB=2347 +XMLTRANSFORM=2348 +XMLTYPE=2349 +XML=2350 +XPATHTABLE=2351 +XS_SYS_CONTEXT=2352 +XS=2353 +XTRANSPORT=2354 +YEARS=2355 +YEAR=2356 +YEAR_TO_MONTH=2357 +YES=2358 +YMINTERVAL_UNCONSTRAINED=2359 +ZONEMAP=2360 +ZONE=2361 +ZONED=2362 +PREDICTION=2363 +PREDICTION_BOUNDS=2364 +PREDICTION_COST=2365 +PREDICTION_DETAILS=2366 +PREDICTION_PROBABILITY=2367 +PREDICTION_SET=2368 +BLOCKCHAIN=2369 +COLLATE=2370 +COLLATION=2371 +DEFINITION=2372 +DUPLICATED=2373 +EXTENDED=2374 +HASHING=2375 +IDLE=2376 +IMMUTABLE=2377 +ORACLE_DATAPUMP=2378 +ORACLE_HDFS=2379 +ORACLE_HIVE=2380 +ORACLE_LOADER=2381 +SHA2_512_Q=2382 +SHARDED=2383 +V1_Q=2384 +ISOLATE=2385 +ROOT=2386 +UNITE=2387 +ALGORITHM=2388 +CUME_DIST=2389 +DENSE_RANK=2390 +LISTAGG=2391 +PERCENT_RANK=2392 +PERCENTILE_CONT=2393 +PERCENTILE_DISC=2394 +RANK=2395 +AVG=2396 +CORR=2397 +COVAR_=2398 +DECODE=2399 +LAG=2400 +LAG_DIFF=2401 +LAG_DIFF_PERCENT=2402 +LEAD=2403 +MAX=2404 +MEDIAN=2405 +MEMOPTIMIZE=2406 +MIN=2407 +NTILE=2408 +NVL=2409 +RATIO_TO_REPORT=2410 +REGR_=2411 +ROUND=2412 +ROW_NUMBER=2413 +SUBSTR=2414 +TO_CHAR=2415 +TRIM=2416 +SUM=2417 +STDDEV=2418 +VAR_=2419 +VARIANCE=2420 +LEAST=2421 +GREATEST=2422 +TO_DATE=2423 +CHARSETID=2424 +CHARSETFORM=2425 +DURATION=2426 +EXTEND=2427 +MAXLEN=2428 +PERSISTABLE=2429 +POLYMORPHIC=2430 +STRUCT=2431 +TDO=2432 +WM_CONCAT=2433 +NATIONAL_CHAR_STRING_LIT=2434 +BIT_STRING_LIT=2435 +HEX_STRING_LIT=2436 +DOUBLE_PERIOD=2437 +PERIOD=2438 +UNSIGNED_INTEGER=2439 +APPROXIMATE_NUM_LIT=2440 +CHAR_STRING=2441 +DELIMITED_ID=2442 +PERCENT=2443 +AMPERSAND=2444 +LEFT_PAREN=2445 +RIGHT_PAREN=2446 +DOUBLE_ASTERISK=2447 +ASTERISK=2448 +PLUS_SIGN=2449 +MINUS_SIGN=2450 +COMMA=2451 +SOLIDUS=2452 +AT_SIGN=2453 +ASSIGN_OP=2454 +HASH_OP=2455 +LEFT_CURLY_PAREN=2456 +RIGHT_CURLY_PAREN=2457 +SQ=2458 +BINDVAR=2459 +NOT_EQUAL_OP=2460 +CARRET_OPERATOR_PART=2461 +TILDE_OPERATOR_PART=2462 +EXCLAMATION_OPERATOR_PART=2463 +GREATER_THAN_OP=2464 +LESS_THAN_OP=2465 +COLON=2466 +SEMICOLON=2467 +BAR=2468 +EQUALS_OP=2469 +LEFT_BRACKET=2470 +RIGHT_BRACKET=2471 +INTRODUCER=2472 +SINGLE_LINE_COMMENT=2473 +MULTI_LINE_COMMENT=2474 +REMARK_COMMENT=2475 +PROMPT_MESSAGE=2476 +START_CMD=2477 +REGULAR_ID=2478 +INQUIRY_DIRECTIVE=2479 +SPACES=2480 +'ABORT'=1 +'ABS'=2 +'ABSENT'=3 +'ACCESS'=4 +'ACCESSED'=5 +'ACCESSIBLE'=6 +'ACCOUNT'=7 +'ACL'=8 +'ACOS'=9 +'ACROSS'=10 +'ACTION'=11 +'ACTIONS'=12 +'ACTIVATE'=13 +'ACTIVE'=14 +'ACTIVE_COMPONENT'=15 +'ACTIVE_DATA'=16 +'ACTIVE_FUNCTION'=17 +'ACTIVE_TAG'=18 +'ACTIVITY'=19 +'ADAPTIVE_PLAN'=20 +'ADD'=21 +'ADD_COLUMN'=22 +'ADD_GROUP'=23 +'ADD_MONTHS'=24 +'ADJ_DATE'=25 +'ADMIN'=26 +'ADMINISTER'=27 +'ADMINISTRATOR'=28 +'ADVANCED'=29 +'ADVISE'=30 +'ADVISOR'=31 +'AFD_DISKSTRING'=32 +'AFTER'=33 +'AGENT'=34 +'AGGREGATE'=35 +'A'=36 +'ALIAS'=37 +'ALL'=38 +'ALLOCATE'=39 +'ALLOW'=40 +'ALL_ROWS'=41 +'ALTER'=42 +'ALTERNATE'=43 +'ALWAYS'=44 +'ANALYTIC'=45 +'ANALYZE'=46 +'ANCESTOR'=47 +'ANCILLARY'=48 +'AND'=49 +'AND_EQUAL'=50 +'ANNOTATIONS'=51 +'ANOMALY'=52 +'ANSI_REARCH'=53 +'ANTIJOIN'=54 +'ANY'=55 +'ANYSCHEMA'=56 +'APPEND'=57 +'APPENDCHILDXML'=58 +'APPEND_VALUES'=59 +'APPLICATION'=60 +'APPLY'=61 +'APPROX_COUNT_DISTINCT'=62 +'ARCHIVAL'=63 +'ARCHIVE'=64 +'ARCHIVED'=65 +'ARCHIVELOG'=66 +'ARE'=67 +'ARRAY'=68 +'AS'=69 +'ASC'=70 +'ASCII'=71 +'ASCIISTR'=72 +'ASIN'=73 +'ASIS'=74 +'ASSEMBLY'=75 +'ASSIGN'=76 +'ASSOCIATE'=77 +'ASYNC'=78 +'ASYNCHRONOUS'=79 +'ATAN2'=80 +'ATAN'=81 +'AT'=82 +'ATTRIBUTE'=83 +'ATTRIBUTES'=84 +'AUDIT'=85 +'AUTHENTICATED'=86 +'AUTHENTICATION'=87 +'AUTHID'=88 +'AUTHORIZATION'=89 +'AUTOALLOCATE'=90 +'AUTO'=91 +'AUTOBACKUP'=92 +'AUTOEXTEND'=93 +'AUTO_LOGIN'=94 +'AUTOMATIC'=95 +'AUTONOMOUS_TRANSACTION'=96 +'AUTO_REOPTIMIZE'=97 +'AVAILABILITY'=98 +'AVRO'=99 +'BACKGROUND'=100 +'BACKINGFILE'=101 +'BACKUP'=102 +'BACKUPS'=103 +'BACKUPSET'=104 +'BADFILE'=105 +'BASIC'=106 +'BASICFILE'=107 +'BATCH'=108 +'BATCHSIZE'=109 +'BATCH_TABLE_ACCESS_BY_ROWID'=110 +'BECOME'=111 +'BEFORE'=112 +'BEGIN'=113 +'BEGINNING'=114 +'BEGIN_OUTLINE_DATA'=115 +'BEHALF'=116 +'BEQUEATH'=117 +'BETWEEN'=118 +'BFILE'=119 +'BFILENAME'=120 +'BIG'=121 +'BIGFILE'=122 +'BIGINT'=123 +'BINARY'=124 +'BINARY_DOUBLE'=125 +'BINARY_DOUBLE_INFINITY'=126 +'BINARY_DOUBLE_NAN'=127 +'BINARY_FLOAT'=128 +'BINARY_FLOAT_INFINITY'=129 +'BINARY_FLOAT_NAN'=130 +'BINARY_INTEGER'=131 +'BIND_AWARE'=132 +'BINDING'=133 +'BIN_TO_NUM'=134 +'BITAND'=135 +'BITMAP_AND'=136 +'BITMAP'=137 +'BITMAPS'=138 +'BITMAP_TREE'=139 +'BITS'=140 +'BLANKS'=141 +'BLOB'=142 +'BLOCK'=143 +'BLOCK_RANGE'=144 +'BLOCKS'=145 +'BLOCKSIZE'=146 +'BODY'=147 +'BOOLEAN'=148 +'BOTH'=149 +'BOUND'=150 +'BRANCH'=151 +'BREADTH'=152 +'BROADCAST'=153 +'BSON'=154 +'BUFFER'=155 +'BUFFER_CACHE'=156 +'BUFFER_POOL'=157 +'BUILD'=158 +'BULK'=159 +'BY'=160 +'BYPASS_RECURSIVE_CHECK'=161 +'BYPASS_UJVC'=162 +'BYTE'=163 +'BYTES'=164 +'BYTEORDERMARK'=165 +'CACHE'=166 +'CACHE_CB'=167 +'CACHE_INSTANCES'=168 +'CACHE_TEMP_TABLE'=169 +'CACHING'=170 +'CALCULATED'=171 +'CALLBACK'=172 +'CALL'=173 +'CANCEL'=174 +'CANONICAL'=175 +'CAPACITY'=176 +'CAPTION'=177 +'CARDINALITY'=178 +'CASCADE'=179 +'CASE'=180 +'CAST'=181 +'CASE-SENSITIVE'=182 +'CATEGORY'=183 +'CDB$DEFAULT'=184 +'CEIL'=185 +'CELL_FLASH_CACHE'=186 +'CERTIFICATE'=187 +'CFILE'=188 +'CHAINED'=189 +'CHANGE'=190 +'CHANGETRACKING'=191 +'CHANGE_DUPKEY_ERROR_INDEX'=192 +'CHARACTER'=193 +'CHARACTERS'=194 +'CHARACTERSET'=195 +'CHAR'=196 +'CHAR_CS'=197 +'CHARTOROWID'=198 +'CHECK_ACL_REWRITE'=199 +'CHECK'=200 +'CHECKPOINT'=201 +'CHILD'=202 +'CHOOSE'=203 +'CHR'=204 +'CHUNK'=205 +'CLASS'=206 +'CLASSIFICATION'=207 +'CLASSIFIER'=208 +'CLAUSE'=209 +'CLEAN'=210 +'CLEANUP'=211 +'CLEAR'=212 +'C'=213 +'CLIENT'=214 +'CLOB'=215 +'CLONE'=216 +'CLOSE_CACHED_OPEN_CURSORS'=217 +'CLOSE'=218 +'CLUSTER_BY_ROWID'=219 +'CLUSTER'=220 +'CLUSTER_DETAILS'=221 +'CLUSTER_DISTANCE'=222 +'CLUSTER_ID'=223 +'CLUSTERING'=224 +'CLUSTERING_FACTOR'=225 +'CLUSTER_PROBABILITY'=226 +'CLUSTER_SET'=227 +'COALESCE'=228 +'COALESCE_SQ'=229 +'COARSE'=230 +'CO_AUTH_IND'=231 +'COLD'=232 +'COLLECT'=233 +'COLLECTION'=234 +'COLUMNAR'=235 +'COLUMN_AUTH_INDICATOR'=236 +'COLUMN'=237 +'COLUMNS'=238 +'COLUMN_STATS'=239 +'COLUMN_VALUE'=240 +'COMMENT'=241 +'COMMIT'=242 +'COMMITTED'=243 +'COMMON'=244 +'COMMON_DATA'=245 +'COMPACT'=246 +'COMPATIBLE'=247 +'COMPATIBILITY'=248 +'COMPILE'=249 +'COMPLETE'=250 +'COMPLIANCE'=251 +'COMPONENT'=252 +'COMPONENTS'=253 +'COMPOSE'=254 +'COMPOSITE'=255 +'COMPOSITE_LIMIT'=256 +'COMPOUND'=257 +'COMPRESS'=258 +'COMPRESSION'=259 +'COMPUTE'=260 +'CONCAT'=261 +'CON_DBID_TO_ID'=262 +'CONDITIONAL'=263 +'CONDITION'=264 +'CONFIRM'=265 +'CONFORMING'=266 +'CON_GUID_TO_ID'=267 +'CON_ID'=268 +'CON_NAME_TO_ID'=269 +'CONNECT_BY_CB_WHR_ONLY'=270 +'CONNECT_BY_COMBINE_SW'=271 +'CONNECT_BY_COST_BASED'=272 +'CONNECT_BY_ELIM_DUPS'=273 +'CONNECT_BY_FILTERING'=274 +'CONNECT_BY_ISCYCLE'=275 +'CONNECT_BY_ISLEAF'=276 +'CONNECT_BY_ROOT'=277 +'CONNECT'=278 +'CONNECT_TIME'=279 +'CONSIDER'=280 +'CONSISTENT'=281 +'CONSTANT'=282 +'CONST'=283 +'CONSTRAINT'=284 +'CONSTRAINTS'=285 +'CONSTRUCTOR'=286 +'CONTAINER'=287 +'CONTAINERS'=288 +'CONTAINERS_DEFAULT'=289 +'CONTAINER_DATA'=290 +'CONTAINER_MAP'=291 +'CONTENT'=292 +'CONTENTS'=293 +'CONTEXT'=294 +'CONTINUE'=295 +'CONTROLFILE'=296 +'CON_UID_TO_ID'=297 +'CONVERT'=298 +'CONVERSION'=299 +'COOKIE'=300 +'COPY'=301 +'CORR_K'=302 +'CORR_S'=303 +'CORRUPTION'=304 +'CORRUPT_XID_ALL'=305 +'CORRUPT_XID'=306 +'COS'=307 +'COSH'=308 +'COST'=309 +'COST_XML_QUERY_REWRITE'=310 +'COUNT'=311 +'COUNTED'=312 +'COVAR_POP'=313 +'COVAR_SAMP'=314 +'CPU_COSTING'=315 +'CPU_PER_CALL'=316 +'CPU_PER_SESSION'=317 +'CRASH'=318 +'CREATE'=319 +'CREATE_FILE_DEST'=320 +'CREATE_STORED_OUTLINES'=321 +'CREATION'=322 +'CREDENTIAL'=323 +'CRITICAL'=324 +'CROSS'=325 +'CROSSEDITION'=326 +'CSCONVERT'=327 +'CSV'=328 +'CUBE_AJ'=329 +'CUBE'=330 +'CUBE_GB'=331 +'CUBE_SJ'=332 +'CUME_DISTM'=333 +'CURRENT'=334 +'CURRENT_DATE'=335 +'CURRENT_SCHEMA'=336 +'CURRENT_TIME'=337 +'CURRENT_TIMESTAMP'=338 +'CURRENT_USER'=339 +'CURRENTV'=340 +'CURSOR'=341 +'CURSOR_SHARING_EXACT'=342 +'CURSOR_SPECIFIC_SEGMENT'=343 +'CUSTOMDATUM'=344 +'CV'=345 +'CYCLE'=346 +'DANGLING'=347 +'DATABASE'=348 +'DATA'=349 +'DATAFILE'=350 +'DATAFILES'=351 +'DATAGUARDCONFIG'=352 +'DATAMOVEMENT'=353 +'DATAOBJNO'=354 +'DATAOBJ_TO_MAT_PARTITION'=355 +'DATAOBJ_TO_PARTITION'=356 +'DATAPUMP'=357 +'DATA_SECURITY_REWRITE_LIMIT'=358 +'DATE'=359 +'DATE_CACHE'=360 +'DATE_FORMAT'=361 +'DATE_MODE'=362 +'DAY'=363 +'DAYS'=364 +'DAY_TO_SECOND'=365 +'DBA'=366 +'DBA_RECYCLEBIN'=367 +'DBLINK'=368 +'DBMS_STATS'=369 +'DB_ROLE_CHANGE'=370 +'DBTIMEZONE'=371 +'DB_UNIQUE_NAME'=372 +'DB_VERSION'=373 +'DDL'=374 +'DEALLOCATE'=375 +'DEBUG'=376 +'DEBUGGER'=377 +'DEC'=378 +'DECIMAL'=379 +'DECLARE'=380 +'DECOMPOSE'=381 +'DECORRELATE'=382 +'DECR'=383 +'DECREMENT'=384 +'DECRYPT'=385 +'DEDUPLICATE'=386 +'DEFAULT'=387 +'DEFAULTIF'=388 +'DEFAULTS'=389 +'DEFAULT_COLLATION'=390 +'DEFAULT_CREDENTIAL'=391 +'DEFERRABLE'=392 +'DEFERRED'=393 +'DEFINED'=394 +'DEFINE'=395 +'DEFINER'=396 +'DEGREE'=397 +'DELAY'=398 +'DELEGATE'=399 +'DELETE_ALL'=400 +'DELETE'=401 +'DELETEXML'=402 +'DELIMITED'=403 +'DEMAND'=404 +'DENSE_RANKM'=405 +'DEPENDENT'=406 +'DEPRECATE'=407 +'DEPTH'=408 +'DEQUEUE'=409 +'DEREF'=410 +'DEREF_NO_REWRITE'=411 +'DESC'=412 +'DESCRIPTION'=413 +'DESTROY'=414 +'DETACHED'=415 +'DETECTED'=416 +'DETERMINES'=417 +'DETERMINISTIC'=418 +'DICTIONARY'=419 +'DIMENSION'=420 +'DIMENSIONS'=421 +'DIRECTIO'=422 +'DIRECT_LOAD'=423 +'DIRECTORY'=424 +'DIRECT_PATH'=425 +'DISABLE_ALL'=426 +'DISABLE'=427 +'DISABLED'=428 +'DISABLE_DIRECTORY_LINK_CHECK'=429 +'DISABLE_PARALLEL_DML'=430 +'DISABLE_PRESET'=431 +'DISABLE_RPKE'=432 +'DISALLOW'=433 +'DISASSOCIATE'=434 +'DISCARD'=435 +'DISCARDFILE'=436 +'DISCONNECT'=437 +'DISK'=438 +'DISKGROUP'=439 +'\'+ DISKGROUP'=440 +'DISKS'=441 +'DISMOUNT'=442 +'DISTINCT'=443 +'DISTINGUISHED'=444 +'DISTRIBUTED'=445 +'DISTRIBUTE'=446 +'DML'=447 +'DML_UPDATE'=448 +'DNFS_DISABLE'=449 +'DNFS_ENABLE'=450 +'DNFS_READBUFFERS'=451 +'DOCFIDELITY'=452 +'DOCUMENT'=453 +'$ELSE'=454 +'$ELSIF'=455 +'$END'=456 +'$ERROR'=457 +'$IF'=458 +'$THEN'=459 +'DOMAIN_INDEX_FILTER'=460 +'DOMAIN_INDEX_NO_SORT'=461 +'DOMAIN_INDEX_SORT'=462 +'DOUBLE'=463 +'DOWNGRADE'=464 +'DRIVING_SITE'=465 +'DROP_COLUMN'=466 +'DROP'=467 +'DROP_GROUP'=468 +'DSINTERVAL_UNCONSTRAINED'=469 +'DST_UPGRADE_INSERT_CONV'=470 +'DUMP'=471 +'DUMPSET'=472 +'DUPLICATE'=473 +'DV'=474 +'DYNAMIC'=475 +'DYNAMIC_SAMPLING'=476 +'DYNAMIC_SAMPLING_EST_CDN'=477 +'E'=478 +'EACH'=479 +'EDITIONABLE'=480 +'EDITION'=481 +'EDITIONING'=482 +'EDITIONS'=483 +'ELEMENT'=484 +'ELIM_GROUPBY'=485 +'ELIMINATE_JOIN'=486 +'ELIMINATE_OBY'=487 +'ELIMINATE_OUTER_JOIN'=488 +'ELSE'=489 +'ELSIF'=490 +'EM'=491 +'EMBEDDED'=492 +'EMPTY_BLOB'=493 +'EMPTY_CLOB'=494 +'EMPTY'=495 +'ENABLE_ALL'=496 +'ENABLE'=497 +'ENABLED'=498 +'ENABLE_PARALLEL_DML'=499 +'ENABLE_PRESET'=500 +'ENCLOSED'=501 +'ENCODING'=502 +'ENCRYPT'=503 +'ENCRYPTION'=504 +'ENCRYPTPASSWORDISNULL'=505 +'END'=506 +'END_OUTLINE_DATA'=507 +'ENDIAN'=508 +'ENFORCED'=509 +'ENFORCE'=510 +'ENQUEUE'=511 +'ENTERPRISE'=512 +'ENTITYESCAPING'=513 +'ENTRY'=514 +'EQUIPART'=515 +'ERR'=516 +'ERROR_ARGUMENT'=517 +'ERROR'=518 +'ERROR_ON_OVERLAP_TIME'=519 +'ERRORS'=520 +'ERROR_INDEX'=521 +'ERROR_CODE'=522 +'ESCAPE'=523 +'ESCAPED'=524 +'ESTIMATE'=525 +'EVAL'=526 +'EVALNAME'=527 +'EVALUATE'=528 +'EVALUATION'=529 +'EVENTS'=530 +'EVERY'=531 +'EXCEPT'=532 +'EXCEPTION'=533 +'EXCEPTION_INIT'=534 +'EXCEPTIONS'=535 +'EXCHANGE'=536 +'EXCLUDE'=537 +'EXCLUDING'=538 +'EXCLUSIVE'=539 +'EXECUTE'=540 +'EXEMPT'=541 +'EXISTING'=542 +'EXISTS'=543 +'EXISTSNODE'=544 +'EXIT'=545 +'EXPAND_GSET_TO_UNION'=546 +'EXPAND_TABLE'=547 +'EXP'=548 +'EXPIRE'=549 +'EXPLAIN'=550 +'EXPLOSION'=551 +'EXPORT'=552 +'EXPR_CORR_CHECK'=553 +'EXPRESS'=554 +'EXTENDS'=555 +'EXTENT'=556 +'EXTENTS'=557 +'EXTERNAL'=558 +'EXTERNALLY'=559 +'EXTRACTCLOBXML'=560 +'EXTRACT'=561 +'EXTRACTVALUE'=562 +'EXTRA'=563 +'FACILITY'=564 +'FACT'=565 +'FACTOR'=566 +'FACTORIZE_JOIN'=567 +'FAILED'=568 +'FAILED_LOGIN_ATTEMPTS'=569 +'FAILGROUP'=570 +'FAILOVER'=571 +'FAILURE'=572 +'FALSE'=573 +'FAMILY'=574 +'FAR'=575 +'FAST'=576 +'FASTSTART'=577 +'FBTSCAN'=578 +'FEATURE'=579 +'FEATURE_DETAILS'=580 +'FEATURE_ID'=581 +'FEATURE_SET'=582 +'FEATURE_VALUE'=583 +'FETCH'=584 +'FIELD'=585 +'FIELDS'=586 +'FILE'=587 +'FILE_NAME_CONVERT'=588 +'FILEGROUP'=589 +'FILESTORE'=590 +'FILESYSTEM_LIKE_LOGGING'=591 +'FILTER'=592 +'FINAL'=593 +'FINE'=594 +'FINISH'=595 +'FIRST'=596 +'FIRSTM'=597 +'FIRST_ROWS'=598 +'FIRST_VALUE'=599 +'FIXED'=600 +'FIXED_VIEW_DATA'=601 +'FLAGGER'=602 +'FLASHBACK'=603 +'FLASH_CACHE'=604 +'FLOAT'=605 +'FLOB'=606 +'FLEX'=607 +'FLOOR'=608 +'FLUSH'=609 +'FOLDER'=610 +'FOLLOWING'=611 +'FOLLOWS'=612 +'FORALL'=613 +'FORCE'=614 +'FORCE_XML_QUERY_REWRITE'=615 +'FOREIGN'=616 +'FOREVER'=617 +'FOR'=618 +'FORMAT'=619 +'FORWARD'=620 +'FRAGMENT_NUMBER'=621 +'FREELIST'=622 +'FREELISTS'=623 +'FREEPOOLS'=624 +'FRESH'=625 +'FROM'=626 +'FROM_TZ'=627 +'FULL'=628 +'FULL_OUTER_JOIN_TO_OUTER'=629 +'FUNCTION'=630 +'FUNCTIONS'=631 +'FTP'=632 +'G'=633 +'GATHER_OPTIMIZER_STATISTICS'=634 +'GATHER_PLAN_STATISTICS'=635 +'GBY_CONC_ROLLUP'=636 +'GBY_PUSHDOWN'=637 +'GENERATED'=638 +'GET'=639 +'GLOBAL'=640 +'GLOBALLY'=641 +'GLOBAL_NAME'=642 +'GLOBAL_TOPIC_ENABLED'=643 +'GOTO'=644 +'GRANT'=645 +'GROUP_BY'=646 +'GROUP'=647 +'GROUP_ID'=648 +'GROUPING'=649 +'GROUPING_ID'=650 +'GROUPS'=651 +'GUARANTEED'=652 +'GUARANTEE'=653 +'GUARD'=654 +'HADOOP_TRAILERS'=655 +'HALF_YEARS'=656 +'HASH_AJ'=657 +'HASH'=658 +'HASHKEYS'=659 +'HASH_SJ'=660 +'HAVING'=661 +'HEADER'=662 +'HEAP'=663 +'HELP'=664 +'HEXTORAW'=665 +'HEXTOREF'=666 +'HIDDEN'=667 +'HIDE'=668 +'HIER_ORDER'=669 +'HIERARCHICAL'=670 +'HIERARCHIES'=671 +'HIERARCHY'=672 +'HIGH'=673 +'HINTSET_BEGIN'=674 +'HINTSET_END'=675 +'HOT'=676 +'HOUR'=677 +'HOURS'=678 +'HTTP'=679 +'HWM_BROKERED'=680 +'HYBRID'=681 +'H'=682 +'IDENTIFIED'=683 +'IDENTIFIER'=684 +'IDENTITY'=685 +'IDGENERATORS'=686 +'ID'=687 +'IDLE_TIME'=688 +'IF'=689 +'IGNORE'=690 +'IGNORE_CHARS_AFTER_EOR'=691 +'IGNORE_OPTIM_EMBEDDED_HINTS'=692 +'IGNORE_ROW_ON_DUPKEY_INDEX'=693 +'IGNORE_WHERE_CLAUSE'=694 +'ILM'=695 +'IMMEDIATE'=696 +'IMPACT'=697 +'IMPORT'=698 +'INACTIVE'=699 +'INACTIVE_ACCOUNT_TIME'=700 +'INCLUDE'=701 +'INCLUDE_VERSION'=702 +'INCLUDING'=703 +'INCREMENTAL'=704 +'INCREMENT'=705 +'INCR'=706 +'INDENT'=707 +'INDEX_ASC'=708 +'INDEX_COMBINE'=709 +'INDEX_DESC'=710 +'INDEXED'=711 +'INDEXES'=712 +'INDEX_FFS'=713 +'INDEX_FILTER'=714 +'INDEX'=715 +'INDEXING'=716 +'INDEX_JOIN'=717 +'INDEX_ROWS'=718 +'INDEX_RRS'=719 +'INDEX_RS_ASC'=720 +'INDEX_RS_DESC'=721 +'INDEX_RS'=722 +'INDEX_SCAN'=723 +'INDEX_SKIP_SCAN'=724 +'INDEX_SS_ASC'=725 +'INDEX_SS_DESC'=726 +'INDEX_SS'=727 +'INDEX_STATS'=728 +'INDEXTYPE'=729 +'INDEXTYPES'=730 +'INDICATOR'=731 +'INDICES'=732 +'INFINITE'=733 +'INFORMATIONAL'=734 +'INHERIT'=735 +'IN'=736 +'INITCAP'=737 +'INITIAL'=738 +'INITIALIZED'=739 +'INITIALLY'=740 +'INITRANS'=741 +'INLINE'=742 +'INLINE_XMLTYPE_NT'=743 +'INMEMORY'=744 +'IN_MEMORY_METADATA'=745 +'INMEMORY_PRUNING'=746 +'INNER'=747 +'INOUT'=748 +'INPLACE'=749 +'INPUTFORMAT'=750 +'INSERTCHILDXMLAFTER'=751 +'INSERTCHILDXMLBEFORE'=752 +'INSERTCHILDXML'=753 +'INSERT'=754 +'INSERTXMLAFTER'=755 +'INSERTXMLBEFORE'=756 +'INSTANCE'=757 +'INSTANCES'=758 +'INSTANTIABLE'=759 +'INSTANTLY'=760 +'INSTEAD'=761 +'INSTR2'=762 +'INSTR4'=763 +'INSTRB'=764 +'INSTRC'=765 +'INSTR'=766 +'INTEGER'=767 +'INTERLEAVED'=768 +'INTERMEDIATE'=769 +'INTERNAL_CONVERT'=770 +'INTERNAL_USE'=771 +'INTERPRETED'=772 +'INTERSECT'=773 +'INTERVAL'=774 +'INT'=775 +'INTERNAL'=776 +'INTO'=777 +'INVALIDATE'=778 +'INVALIDATION'=779 +'INVISIBLE'=780 +'IN_XQUERY'=781 +'IO_OPTIONS'=782 +'IS'=783 +'IS_LEAF'=784 +'ISOLATION'=785 +'ISOLATION_LEVEL'=786 +'ITEMS'=787 +'ITERATE'=788 +'ITERATION_NUMBER'=789 +'JAVA'=790 +'JOB'=791 +'JOIN'=792 +'JSON_ARRAYAGG'=793 +'JSON_ARRAY'=794 +'JSON_EQUAL'=795 +'JSON_EXISTS2'=796 +'JSON_EXISTS'=797 +'JSONGET'=798 +'JSON'=799 +'JSON_OBJECTAGG'=800 +'JSON_OBJECT'=801 +'JSONPARSE'=802 +'JSON_QUERY'=803 +'JSON_SERIALIZE'=804 +'JSON_TABLE'=805 +'JSON_TEXTCONTAINS2'=806 +'JSON_TEXTCONTAINS'=807 +'JSON_TRANSFORM'=808 +'JSON_VALUE'=809 +'K'=810 +'KEEP_DUPLICATES'=811 +'KEEP'=812 +'KERBEROS'=813 +'KEY'=814 +'KEY_LENGTH'=815 +'KEYSIZE'=816 +'KEYS'=817 +'KEYSTORE'=818 +'KILL'=819 +'LABEL'=820 +'LANGUAGE'=821 +'LAST_DAY'=822 +'LAST'=823 +'LAST_VALUE'=824 +'LATERAL'=825 +'LATEST'=826 +'LAX'=827 +'LAYER'=828 +'LDAP_REGISTRATION_ENABLED'=829 +'LDAP_REGISTRATION'=830 +'LDAP_REG_SYNC_INTERVAL'=831 +'LDRTRIM'=832 +'LEAF'=833 +'LEAD_CDB'=834 +'LEAD_CDB_URI'=835 +'LEADING'=836 +'LEFT'=837 +'LENGTH2'=838 +'LENGTH4'=839 +'LENGTHB'=840 +'LENGTHC'=841 +'LENGTH'=842 +'LESS'=843 +'LEVEL'=844 +'LEVEL_NAME'=845 +'LEVELS'=846 +'LIBRARY'=847 +'LIFECYCLE'=848 +'LIFE'=849 +'LIFETIME'=850 +'LIKE2'=851 +'LIKE4'=852 +'LIKEC'=853 +'LIKE_EXPAND'=854 +'LIKE'=855 +'LIMIT'=856 +'LINEAR'=857 +'LINES'=858 +'LINK'=859 +'LIST'=860 +'LITTLE'=861 +'LLS'=862 +'LN'=863 +'LNNVL'=864 +'LOAD'=865 +'LOB'=866 +'LOBFILE'=867 +'LOBNVL'=868 +'LOBS'=869 +'LOCAL_INDEXES'=870 +'LOCAL'=871 +'LOCALTIME'=872 +'LOCALTIMESTAMP'=873 +'LOCATION'=874 +'LOCATOR'=875 +'LOCKDOWN'=876 +'LOCKED'=877 +'LOCKING'=878 +'LOCK'=879 +'LOGFILE'=880 +'LOGFILES'=881 +'LOGGING'=882 +'LOGICAL'=883 +'LOGICAL_READS_PER_CALL'=884 +'LOGICAL_READS_PER_SESSION'=885 +'LOG'=886 +'LOGMINING'=887 +'LOGOFF'=888 +'LOGON'=889 +'LOG_READ_ONLY_VIOLATIONS'=890 +'LONG'=891 +'LOOP'=892 +'LOST'=893 +'LOWER'=894 +'LOW'=895 +'LPAD'=896 +'LRTRIM'=897 +'LTRIM'=898 +'M'=899 +'MAIN'=900 +'MAKE_REF'=901 +'MANAGED'=902 +'MANAGE'=903 +'MANAGEMENT'=904 +'MANAGER'=905 +'MANDATORY'=906 +'MANUAL'=907 +'MAP'=908 +'MAPPING'=909 +'MASK'=910 +'MASTER'=911 +'MATCHED'=912 +'MATCHES'=913 +'MATCH'=914 +'MATCH_NUMBER'=915 +'MATCH_RECOGNIZE'=916 +'MATERIALIZED'=917 +'MATERIALIZE'=918 +'MAXARCHLOGS'=919 +'MAXDATAFILES'=920 +'MAXEXTENTS'=921 +'MAXIMIZE'=922 +'MAXINSTANCES'=923 +'MAXLOGFILES'=924 +'MAXLOGHISTORY'=925 +'MAXLOGMEMBERS'=926 +'MAX_SHARED_TEMP_SIZE'=927 +'MAXSIZE'=928 +'MAXTRANS'=929 +'MAXVALUE'=930 +'MEASURE'=931 +'MEASURES'=932 +'MEDIUM'=933 +'MEMBER'=934 +'MEMBER_CAPTION'=935 +'MEMBER_DESCRIPTION'=936 +'MEMBER_NAME'=937 +'MEMBER_UNIQUE_NAME'=938 +'MEMCOMPRESS'=939 +'MEMORY'=940 +'MERGE$ACTIONS'=941 +'MERGE_AJ'=942 +'MERGE_CONST_ON'=943 +'MERGE'=944 +'MERGE_SJ'=945 +'METADATA'=946 +'METHOD'=947 +'MIGRATE'=948 +'MIGRATION'=949 +'MINEXTENTS'=950 +'MINIMIZE'=951 +'MINIMUM'=952 +'MINING'=953 +'MINUS'=954 +'MINUS_NULL'=955 +'MINUTE'=956 +'MINUTES'=957 +'MINVALUE'=958 +'MIRRORCOLD'=959 +'MIRRORHOT'=960 +'MIRROR'=961 +'MISSING'=962 +'MISMATCH'=963 +'MLSLABEL'=964 +'MODEL_COMPILE_SUBQUERY'=965 +'MODEL_DONTVERIFY_UNIQUENESS'=966 +'MODEL_DYNAMIC_SUBQUERY'=967 +'MODEL_MIN_ANALYSIS'=968 +'MODEL'=969 +'MODEL_NB'=970 +'MODEL_NO_ANALYSIS'=971 +'MODEL_PBY'=972 +'MODEL_PUSH_REF'=973 +'MODEL_SV'=974 +'MODE'=975 +'MODIFICATION'=976 +'MODIFY_COLUMN_TYPE'=977 +'MODIFY'=978 +'MOD'=979 +'MODULE'=980 +'MONITORING'=981 +'MONITOR'=982 +'MONTH'=983 +'MONTHS_BETWEEN'=984 +'MONTHS'=985 +'MOUNT'=986 +'MOUNTPATH'=987 +'MOUNTPOINT'=988 +'MOVEMENT'=989 +'MOVE'=990 +'MULTIDIMENSIONAL'=991 +'MULTISET'=992 +'MV_MERGE'=993 +'NAMED'=994 +'NAME'=995 +'NAMESPACE'=996 +'NAN'=997 +'NANVL'=998 +'NATIONAL'=999 +'NATIVE_FULL_OUTER_JOIN'=1000 +'NATIVE'=1001 +'NATURAL'=1002 +'NATURALN'=1003 +'NAV'=1004 +'NCHAR_CS'=1005 +'NCHAR'=1006 +'NCHR'=1007 +'NCLOB'=1008 +'NEEDED'=1009 +'NEG'=1010 +'NESTED'=1011 +'NESTED_TABLE_FAST_INSERT'=1012 +'NESTED_TABLE_GET_REFS'=1013 +'NESTED_TABLE_ID'=1014 +'NESTED_TABLE_SET_REFS'=1015 +'NESTED_TABLE_SET_SETID'=1016 +'NETWORK'=1017 +'NEVER'=1018 +'NEW'=1019 +'NEWLINE'=1020 +'NEW_TIME'=1021 +'NEXT_DAY'=1022 +'NEXT'=1023 +'NL_AJ'=1024 +'NLJ_BATCHING'=1025 +'NLJ_INDEX_FILTER'=1026 +'NLJ_INDEX_SCAN'=1027 +'NLJ_PREFETCH'=1028 +'NLS_CALENDAR'=1029 +'NLS_CHARACTERSET'=1030 +'NLS_CHARSET_DECL_LEN'=1031 +'NLS_CHARSET_ID'=1032 +'NLS_CHARSET_NAME'=1033 +'NLS_COMP'=1034 +'NLS_CURRENCY'=1035 +'NLS_DATE_FORMAT'=1036 +'NLS_DATE_LANGUAGE'=1037 +'NLS_INITCAP'=1038 +'NLS_ISO_CURRENCY'=1039 +'NL_SJ'=1040 +'NLS_LANG'=1041 +'NLS_LANGUAGE'=1042 +'NLS_LENGTH_SEMANTICS'=1043 +'NLS_LOWER'=1044 +'NLS_NCHAR_CONV_EXCP'=1045 +'NLS_NUMERIC_CHARACTERS'=1046 +'NLS_SORT'=1047 +'NLSSORT'=1048 +'NLS_SPECIAL_CHARS'=1049 +'NLS_TERRITORY'=1050 +'NLS_UPPER'=1051 +'NO_ACCESS'=1052 +'NO_ADAPTIVE_PLAN'=1053 +'NO_ANSI_REARCH'=1054 +'NOAPPEND'=1055 +'NOARCHIVELOG'=1056 +'NOAUDIT'=1057 +'NOBADFILE'=1058 +'NO_AUTO_REOPTIMIZE'=1059 +'NO_BASETABLE_MULTIMV_REWRITE'=1060 +'NO_BATCH_TABLE_ACCESS_BY_ROWID'=1061 +'NO_BIND_AWARE'=1062 +'NO_BUFFER'=1063 +'NOCACHE'=1064 +'NOCHECK'=1065 +'NO_CARTESIAN'=1066 +'NO_CHECK_ACL_REWRITE'=1067 +'NO_CLUSTER_BY_ROWID'=1068 +'NO_CLUSTERING'=1069 +'NO_COALESCE_SQ'=1070 +'NO_COMMON_DATA'=1071 +'NOCOMPRESS'=1072 +'NO_CONNECT_BY_CB_WHR_ONLY'=1073 +'NO_CONNECT_BY_COMBINE_SW'=1074 +'NO_CONNECT_BY_COST_BASED'=1075 +'NO_CONNECT_BY_ELIM_DUPS'=1076 +'NO_CONNECT_BY_FILTERING'=1077 +'NOCOPY'=1078 +'NO_COST_XML_QUERY_REWRITE'=1079 +'NO_CPU_COSTING'=1080 +'NOCPU_COSTING'=1081 +'NOCYCLE'=1082 +'NO_DATA_SECURITY_REWRITE'=1083 +'NO_DECORRELATE'=1084 +'NODELAY'=1085 +'NODIRECTIO'=1086 +'NODISCARDFILE'=1087 +'NO_DOMAIN_INDEX_FILTER'=1088 +'NO_DST_UPGRADE_INSERT_CONV'=1089 +'NO_ELIM_GROUPBY'=1090 +'NO_ELIMINATE_JOIN'=1091 +'NO_ELIMINATE_OBY'=1092 +'NO_ELIMINATE_OUTER_JOIN'=1093 +'NOENTITYESCAPING'=1094 +'NO_EXPAND_GSET_TO_UNION'=1095 +'NO_EXPAND'=1096 +'NO_EXPAND_TABLE'=1097 +'NOEXTEND'=1098 +'NO_FACT'=1099 +'NO_FACTORIZE_JOIN'=1100 +'NO_FILTERING'=1101 +'NOFORCE'=1102 +'NO_FULL_OUTER_JOIN_TO_OUTER'=1103 +'NO_GATHER_OPTIMIZER_STATISTICS'=1104 +'NO_GBY_PUSHDOWN'=1105 +'NOGUARANTEE'=1106 +'NO_INDEX_FFS'=1107 +'NO_INDEX'=1108 +'NO_INDEX_SS'=1109 +'NO_INMEMORY'=1110 +'NO_INMEMORY_PRUNING'=1111 +'NOKEEP'=1112 +'NO_LOAD'=1113 +'NOLOCAL'=1114 +'NOLOG'=1115 +'NOLOGFILE'=1116 +'NOLOGGING'=1117 +'NOMAPPING'=1118 +'NOMAXVALUE'=1119 +'NO_MERGE'=1120 +'NOMINIMIZE'=1121 +'NOMINVALUE'=1122 +'NO_MODEL_PUSH_REF'=1123 +'NO_MONITORING'=1124 +'NOMONITORING'=1125 +'NO_MONITOR'=1126 +'NO_MULTIMV_REWRITE'=1127 +'NO_NATIVE_FULL_OUTER_JOIN'=1128 +'NONBLOCKING'=1129 +'NONEDITIONABLE'=1130 +'NONE'=1131 +'NONULLIF'=1132 +'NO_NLJ_BATCHING'=1133 +'NO_NLJ_PREFETCH'=1134 +'NO'=1135 +'NONSCHEMA'=1136 +'NO_OBJECT_LINK'=1137 +'NOORDER'=1138 +'NO_ORDER_ROLLUPS'=1139 +'NO_OUTER_JOIN_TO_ANTI'=1140 +'NO_OUTER_JOIN_TO_INNER'=1141 +'NOOVERRIDE'=1142 +'NO_PARALLEL_INDEX'=1143 +'NOPARALLEL_INDEX'=1144 +'NO_PARALLEL'=1145 +'NOPARALLEL'=1146 +'NO_PARTIAL_COMMIT'=1147 +'NO_PARTIAL_JOIN'=1148 +'NO_PARTIAL_ROLLUP_PUSHDOWN'=1149 +'NOPARTITION'=1150 +'NO_PLACE_DISTINCT'=1151 +'NO_PLACE_GROUP_BY'=1152 +'NO_PQ_CONCURRENT_UNION'=1153 +'NO_PQ_MAP'=1154 +'NOPROMPT'=1155 +'NO_PQ_REPLICATE'=1156 +'NO_PQ_SKEW'=1157 +'NO_PRUNE_GSETS'=1158 +'NO_PULL_PRED'=1159 +'NO_PUSH_PRED'=1160 +'NO_PUSH_SUBQ'=1161 +'NO_PX_FAULT_TOLERANCE'=1162 +'NO_PX_JOIN_FILTER'=1163 +'NO_QKN_BUFF'=1164 +'NO_QUERY_TRANSFORMATION'=1165 +'NO_REF_CASCADE'=1166 +'NORELOCATE'=1167 +'NORELY'=1168 +'NOREPAIR'=1169 +'NOREPLAY'=1170 +'NORESETLOGS'=1171 +'NO_RESULT_CACHE'=1172 +'NOREVERSE'=1173 +'NO_REWRITE'=1174 +'NOREWRITE'=1175 +'NORMAL'=1176 +'NO_ROOT_SW_FOR_LOCAL'=1177 +'NOROWDEPENDENCIES'=1178 +'NOSCALE'=1179 +'NOSCHEMACHECK'=1180 +'NOSEGMENT'=1181 +'NO_SEMIJOIN'=1182 +'NO_SEMI_TO_INNER'=1183 +'NO_SET_TO_JOIN'=1184 +'NOSHARD'=1185 +'NOSORT'=1186 +'NO_SQL_TRANSLATION'=1187 +'NO_SQL_TUNE'=1188 +'NO_STAR_TRANSFORMATION'=1189 +'NO_STATEMENT_QUEUING'=1190 +'NO_STATS_GSETS'=1191 +'NOSTRICT'=1192 +'NO_SUBQUERY_PRUNING'=1193 +'NO_SUBSTRB_PAD'=1194 +'NO_SWAP_JOIN_INPUTS'=1195 +'NOSWITCH'=1196 +'NO_TABLE_LOOKUP_BY_NL'=1197 +'NO_TEMP_TABLE'=1198 +'NOTHING'=1199 +'NOTIFICATION'=1200 +'NOTRIM'=1201 +'NOT'=1202 +'NO_TRANSFORM_DISTINCT_AGG'=1203 +'NO_UNNEST'=1204 +'NO_USE_CUBE'=1205 +'NO_USE_HASH_AGGREGATION'=1206 +'NO_USE_HASH_GBY_FOR_PUSHDOWN'=1207 +'NO_USE_HASH'=1208 +'NO_USE_INVISIBLE_INDEXES'=1209 +'NO_USE_MERGE'=1210 +'NO_USE_NL'=1211 +'NO_USE_VECTOR_AGGREGATION'=1212 +'NOVALIDATE'=1213 +'NO_VECTOR_TRANSFORM_DIMS'=1214 +'NO_VECTOR_TRANSFORM_FACT'=1215 +'NO_VECTOR_TRANSFORM'=1216 +'NOWAIT'=1217 +'NO_XDB_FASTPATH_INSERT'=1218 +'NO_XML_DML_REWRITE'=1219 +'NO_XMLINDEX_REWRITE_IN_SELECT'=1220 +'NO_XMLINDEX_REWRITE'=1221 +'NO_XML_QUERY_REWRITE'=1222 +'NO_ZONEMAP'=1223 +'NTH_VALUE'=1224 +'NULLIF'=1225 +'NULL'=1226 +'NULLS'=1227 +'NUMBER'=1228 +'NUMERIC'=1229 +'NUM_INDEX_KEYS'=1230 +'NUMTODSINTERVAL'=1231 +'NUMTOYMINTERVAL'=1232 +'NVARCHAR2'=1233 +'NVL2'=1234 +'OBJECT2XML'=1235 +'OBJECT'=1236 +'OBJ_ID'=1237 +'OBJNO'=1238 +'OBJNO_REUSE'=1239 +'OCCURENCES'=1240 +'OFFLINE'=1241 +'OFF'=1242 +'OFFSET'=1243 +'OF'=1244 +'OIDINDEX'=1245 +'OID'=1246 +'OLAP'=1247 +'OLD'=1248 +'OLD_PUSH_PRED'=1249 +'OLS'=1250 +'OLTP'=1251 +'OMIT'=1252 +'ONE'=1253 +'ONLINE'=1254 +'ONLINELOG'=1255 +'ONLY'=1256 +'ON'=1257 +'OPAQUE'=1258 +'OPAQUE_TRANSFORM'=1259 +'OPAQUE_XCANONICAL'=1260 +'OPCODE'=1261 +'OPEN'=1262 +'OPERATIONS'=1263 +'OPERATOR'=1264 +'OPT_ESTIMATE'=1265 +'OPTIMAL'=1266 +'OPTIMIZE'=1267 +'OPTIMIZER_FEATURES_ENABLE'=1268 +'OPTIMIZER_GOAL'=1269 +'OPTION'=1270 +'OPTIONALLY'=1271 +'OPT_PARAM'=1272 +'ORA_BRANCH'=1273 +'ORA_CHECK_ACL'=1274 +'ORA_CHECK_PRIVILEGE'=1275 +'ORA_CLUSTERING'=1276 +'ORADATA'=1277 +'ORC'=1278 +'ORACLE_DATE'=1279 +'ORACLE_NUMBER'=1280 +'ORADEBUG'=1281 +'ORA_DST_AFFECTED'=1282 +'ORA_DST_CONVERT'=1283 +'ORA_DST_ERROR'=1284 +'ORA_GET_ACLIDS'=1285 +'ORA_GET_PRIVILEGES'=1286 +'ORA_HASH'=1287 +'ORA_INVOKING_USERID'=1288 +'ORA_INVOKING_USER'=1289 +'ORA_INVOKING_XS_USER_GUID'=1290 +'ORA_INVOKING_XS_USER'=1291 +'ORA_RAWCOMPARE'=1292 +'ORA_RAWCONCAT'=1293 +'ORA_ROWSCN'=1294 +'ORA_ROWSCN_RAW'=1295 +'ORA_ROWVERSION'=1296 +'ORA_TABVERSION'=1297 +'ORA_WRITE_TIME'=1298 +'ORDERED'=1299 +'ORDERED_PREDICATES'=1300 +'ORDER'=1301 +'ORDINALITY'=1302 +'OR_EXPAND'=1303 +'ORGANIZATION'=1304 +'OR'=1305 +'OR_PREDICATES'=1306 +'OSERROR'=1307 +'OTHER'=1308 +'OUTER_JOIN_TO_ANTI'=1309 +'OUTER_JOIN_TO_INNER'=1310 +'OUTER'=1311 +'OUTLINE_LEAF'=1312 +'OUTLINE'=1313 +'OUTPUTFORMAT'=1314 +'OUT_OF_LINE'=1315 +'OUT'=1316 +'OVERFLOW_NOMOVE'=1317 +'OVERFLOW'=1318 +'OVERLAPS'=1319 +'OVER'=1320 +'OVERRIDE'=1321 +'OVERRIDING'=1322 +'OWNER'=1323 +'OWNERSHIP'=1324 +'OWN'=1325 +'P'=1326 +'PACKAGE'=1327 +'PACKAGES'=1328 +'PARALLEL_ENABLE'=1329 +'PARALLEL_INDEX'=1330 +'PARALLEL'=1331 +'PARAMETERFILE'=1332 +'PARAMETERS'=1333 +'PARAM'=1334 +'PARENT'=1335 +'PARENT_LEVEL_NAME'=1336 +'PARENT_UNIQUE_NAME'=1337 +'PARITY'=1338 +'PARQUET'=1339 +'PARTIAL_JOIN'=1340 +'PARTIALLY'=1341 +'PARTIAL'=1342 +'PARTIAL_ROLLUP_PUSHDOWN'=1343 +'PARTITION_HASH'=1344 +'PARTITION_LIST'=1345 +'PARTITION'=1346 +'PARTITION_RANGE'=1347 +'PARTITIONS'=1348 +'PART$NUM$INST'=1349 +'PASSING'=1350 +'PASSWORD_GRACE_TIME'=1351 +'PASSWORD_LIFE_TIME'=1352 +'PASSWORD_LOCK_TIME'=1353 +'PASSWORD'=1354 +'PASSWORD_REUSE_MAX'=1355 +'PASSWORD_REUSE_TIME'=1356 +'PASSWORD_ROLLOVER_TIME'=1357 +'PASSWORD_VERIFY_FUNCTION'=1358 +'PAST'=1359 +'PATCH'=1360 +'PATH'=1361 +'PATH_PREFIX'=1362 +'PATHS'=1363 +'PATTERN'=1364 +'PBL_HS_BEGIN'=1365 +'PBL_HS_END'=1366 +'PCTFREE'=1367 +'PCTINCREASE'=1368 +'PCTTHRESHOLD'=1369 +'PCTUSED'=1370 +'PCTVERSION'=1371 +'PENDING'=1372 +'PERCENT'=1376 +'PERCENT_RANKM'=1377 +'PERFORMANCE'=1383 +'PERIOD'=1384 +'PERMANENT'=1385 +'PERMISSION'=1386 +'PERMUTE'=1387 +'PER'=1388 +'PFILE'=1389 +'PHYSICAL'=1390 +'PIKEY'=1391 +'PIPELINED'=1392 +'PIPE'=1393 +'PIV_GB'=1394 +'PIVOT'=1395 +'PIV_SSF'=1396 +'PLACE_DISTINCT'=1397 +'PLACE_GROUP_BY'=1398 +'PLAN'=1399 +'PLSCOPE_SETTINGS'=1400 +'PLS_INTEGER'=1401 +'PLSQL_CCFLAGS'=1402 +'PLSQL_CODE_TYPE'=1403 +'PLSQL_DEBUG'=1404 +'PLSQL_OPTIMIZE_LEVEL'=1405 +'PLSQL_WARNINGS'=1406 +'PLUGGABLE'=1407 +'PMEM'=1408 +'POINT'=1409 +'POLICY'=1410 +'POOL_16K'=1411 +'POOL_2K'=1412 +'POOL_32K'=1413 +'POOL_4K'=1414 +'POOL_8K'=1415 +'POSITION'=1416 +'POSITIVEN'=1417 +'POSITIVE'=1418 +'POST_TRANSACTION'=1419 +'POWERMULTISET_BY_CARDINALITY'=1420 +'POWERMULTISET'=1421 +'POWER'=1422 +'PQ_CONCURRENT_UNION'=1423 +'PQ_DISTRIBUTE'=1424 +'PQ_DISTRIBUTE_WINDOW'=1425 +'PQ_FILTER'=1426 +'PQ_MAP'=1427 +'PQ_NOMAP'=1428 +'PQ_REPLICATE'=1429 +'PQ_SKEW'=1430 +'PRAGMA'=1431 +'PREBUILT'=1432 +'PRECEDES'=1433 +'PRECEDING'=1434 +'PRECISION'=1435 +'PRECOMPUTE_SUBQUERY'=1436 +'PREDICATE_REORDERS'=1437 +'PRELOAD'=1438 +'PREPARE'=1439 +'PREPROCESSOR'=1440 +'PRESENTNNV'=1441 +'PRESENT'=1442 +'PRESENTV'=1443 +'PRESERVE_OID'=1444 +'PRESERVE'=1445 +'PRETTY'=1446 +'PREVIOUS'=1447 +'PREV'=1448 +'PRIMARY'=1449 +'PRINTBLOBTOCLOB'=1450 +'PRIORITY'=1451 +'PRIOR'=1452 +'PRIVATE'=1453 +'PRIVATE_SGA'=1454 +'PRIVILEGED'=1455 +'PRIVILEGE'=1456 +'PRIVILEGES'=1457 +'PROCEDURAL'=1458 +'PROCEDURE'=1459 +'PROCESS'=1460 +'PROFILE'=1461 +'PROGRAM'=1462 +'PROJECT'=1463 +'PROPAGATE'=1464 +'PROPERTY'=1465 +'PROTECTED'=1466 +'PROTECTION'=1467 +'PROTOCOL'=1468 +'PROXY'=1469 +'PRUNING'=1470 +'PUBLIC'=1471 +'PULL_PRED'=1472 +'PURGE'=1473 +'PUSH_PRED'=1474 +'PUSH_SUBQ'=1475 +'PX_FAULT_TOLERANCE'=1476 +'PX_GRANULE'=1477 +'PX_JOIN_FILTER'=1478 +'QB_NAME'=1479 +'QUARTERS'=1480 +'QUERY_BLOCK'=1481 +'QUERY'=1482 +'QUEUE_CURR'=1483 +'QUEUE'=1484 +'QUEUE_ROWP'=1485 +'QUIESCE'=1486 +'QUORUM'=1487 +'QUOTA'=1488 +'QUOTAGROUP'=1489 +'RAISE'=1490 +'RANDOM_LOCAL'=1491 +'RANDOM'=1492 +'RANGE'=1493 +'RANKM'=1494 +'RAPIDLY'=1495 +'RAW'=1496 +'RAWTOHEX'=1497 +'RAWTONHEX'=1498 +'RBA'=1499 +'RBO_OUTLINE'=1500 +'RCFILE'=1501 +'RDBA'=1502 +'READ'=1503 +'READS'=1504 +'READSIZE'=1505 +'REALM'=1506 +'REAL'=1507 +'REBALANCE'=1508 +'REBUILD'=1509 +'RECORD'=1510 +'RECORDS'=1511 +'RECORDS_PER_BLOCK'=1512 +'RECOVERABLE'=1513 +'RECOVER'=1514 +'RECOVERY'=1515 +'RECYCLEBIN'=1516 +'RECYCLE'=1517 +'REDACTION'=1518 +'REDEFINE'=1519 +'REDO'=1520 +'REDUCED'=1521 +'REDUNDANCY'=1522 +'REF_CASCADE_CURSOR'=1523 +'REFERENCED'=1524 +'REFERENCE'=1525 +'REFERENCES'=1526 +'REFERENCING'=1527 +'REF'=1528 +'REFRESH'=1529 +'REFTOHEX'=1530 +'REGEXP_COUNT'=1531 +'REGEXP_INSTR'=1532 +'REGEXP_LIKE'=1533 +'REGEXP_REPLACE'=1534 +'REGEXP_SUBSTR'=1535 +'REGISTER'=1536 +'REGR_AVGX'=1537 +'REGR_AVGY'=1538 +'REGR_COUNT'=1539 +'REGR_INTERCEPT'=1540 +'REGR_R2'=1541 +'REGR_SLOPE'=1542 +'REGR_SXX'=1543 +'REGR_SXY'=1544 +'REGR_SYY'=1545 +'REGULAR'=1546 +'REJECT'=1547 +'REKEY'=1548 +'RELATIONAL'=1549 +'RELIES_ON'=1550 +'RELOCATE'=1551 +'RELY'=1552 +'REMAINDER'=1553 +'REMOTE'=1554 +'REMOTE_MAPPED'=1555 +'REMOVE'=1556 +'RENAME'=1557 +'REPAIR'=1558 +'REPEAT'=1559 +'REPLACE'=1560 +'REPLICATION'=1561 +'REQUIRED'=1562 +'RESETLOGS'=1563 +'RESET'=1564 +'RESIZE'=1565 +'RESOLVE'=1566 +'RESOLVER'=1567 +'RESOURCE'=1568 +'RESPECT'=1569 +'RESTART'=1570 +'RESTORE_AS_INTERVALS'=1571 +'RESTORE'=1572 +'RESTRICT_ALL_REF_CONS'=1573 +'RESTRICTED'=1574 +'RESTRICT_REFERENCES'=1575 +'RESTRICT'=1576 +'RESULT_CACHE'=1577 +'RESULT'=1578 +'RESUMABLE'=1579 +'RESUME'=1580 +'RETENTION'=1581 +'RETRY_ON_ROW_CHANGE'=1582 +'RETURNING'=1583 +'RETURN'=1584 +'REUSE'=1585 +'REVERSE'=1586 +'REVOKE'=1587 +'REWRITE_OR_ERROR'=1588 +'REWRITE'=1589 +'RIGHT'=1590 +'ROLE'=1591 +'ROLESET'=1592 +'ROLES'=1593 +'ROLLBACK'=1594 +'ROLLING'=1595 +'ROLLUP'=1596 +'ROWDEPENDENCIES'=1597 +'ROWID_MAPPING_TABLE'=1598 +'ROWID'=1599 +'ROWIDTOCHAR'=1600 +'ROWIDTONCHAR'=1601 +'ROW_LENGTH'=1602 +'ROWNUM'=1603 +'ROW'=1604 +'ROWS'=1605 +'RPAD'=1606 +'RTRIM'=1607 +'RULE'=1608 +'RULES'=1609 +'RUNNING'=1610 +'SALT'=1611 +'SAMPLE'=1612 +'SAVE_AS_INTERVALS'=1613 +'SAVEPOINT'=1614 +'SAVE'=1615 +'SB4'=1616 +'SCALE_ROWS'=1617 +'SCALE'=1618 +'SCAN_INSTANCES'=1619 +'SCAN'=1620 +'SCHEDULER'=1621 +'SCHEMACHECK'=1622 +'SCHEMA'=1623 +'SCN_ASCENDING'=1624 +'SCN'=1625 +'SCOPE'=1626 +'SCRUB'=1627 +'SD_ALL'=1628 +'SD_INHIBIT'=1629 +'SDO_GEOM_MBR'=1630 +'SDO_GEOMETRY'=1631 +'SD_SHOW'=1632 +'SEARCH'=1633 +'SECOND'=1634 +'SECONDS'=1635 +'SECRET'=1636 +'SECUREFILE_DBA'=1637 +'SECUREFILE'=1638 +'SECURITY'=1639 +'SEED'=1640 +'SEG_BLOCK'=1641 +'SEG_FILE'=1642 +'SEGMENT'=1643 +'SELECTIVITY'=1644 +'SELECT'=1645 +'SELF'=1646 +'SEMIJOIN_DRIVER'=1647 +'SEMIJOIN'=1648 +'SEMI_TO_INNER'=1649 +'SEQUENCED'=1650 +'SEQUENCE'=1651 +'SEQUENCEFILE'=1652 +'SEQUENTIAL'=1653 +'SEQ'=1654 +'SERDE'=1655 +'SERDEPROPERTIES'=1656 +'SERIALIZABLE'=1657 +'SERIALLY_REUSABLE'=1658 +'SERIAL'=1659 +'SERVERERROR'=1660 +'SERVICE_NAME_CONVERT'=1661 +'SERVICE'=1662 +'SERVICES'=1663 +'SESSION_CACHED_CURSORS'=1664 +'SESSION'=1665 +'SESSIONS_PER_USER'=1666 +'SESSIONTIMEZONE'=1667 +'SESSIONTZNAME'=1668 +'SET'=1669 +'SETS'=1670 +'SETTINGS'=1671 +'SET_TO_JOIN'=1672 +'SEVERE'=1673 +'SHARD'=1674 +'SHARDSPACE'=1675 +'SHARED_POOL'=1676 +'SHARED'=1677 +'SHARE'=1678 +'SHARING'=1679 +'SHELFLIFE'=1680 +'SHOW'=1681 +'SHRINK'=1682 +'SHUTDOWN'=1683 +'SIBLINGS'=1684 +'SID'=1685 +'SITE'=1686 +'SIGNAL_COMPONENT'=1687 +'SIGNAL_FUNCTION'=1688 +'SIGN'=1689 +'SIGNTYPE'=1690 +'SIMPLE_INTEGER'=1691 +'SIMPLE'=1692 +'SINGLE'=1693 +'SINGLETASK'=1694 +'SINH'=1695 +'SIN'=1696 +'SIZE'=1697 +'SIZES'=1698 +'SKIP_EXT_OPTIMIZER'=1699 +'SKIP'=1700 +'SKIP_UNQ_UNUSABLE_IDX'=1701 +'SKIP_UNUSABLE_INDEXES'=1702 +'SMALLFILE'=1703 +'SMALLINT'=1704 +'SNAPSHOT'=1705 +'SOME'=1706 +'SORT'=1707 +'SOUNDEX'=1708 +'SOURCE_FILE_DIRECTORY'=1709 +'SOURCE_FILE_NAME_CONVERT'=1710 +'SOURCE'=1711 +'SPACE'=1712 +'SPECIFICATION'=1713 +'SPFILE'=1714 +'SPLIT'=1715 +'SPREADSHEET'=1716 +'SQLDATA'=1717 +'SQLERROR'=1718 +'SQLLDR'=1719 +'SQL'=1720 +'SQL_MACRO'=1722 +'SQL_TRACE'=1723 +'SQL_TRANSLATION_PROFILE'=1724 +'SQRT'=1725 +'STALE'=1726 +'STANDALONE'=1727 +'STANDARD'=1728 +'STANDARD_HASH'=1729 +'STANDBY_MAX_DATA_DELAY'=1730 +'STANDBYS'=1731 +'STANDBY'=1732 +'STAR'=1733 +'STAR_TRANSFORMATION'=1734 +'START'=1735 +'STARTOF'=1736 +'STARTUP'=1737 +'STATEMENT_ID'=1738 +'STATEMENT_QUEUING'=1739 +'STATEMENTS'=1740 +'STATEMENT'=1741 +'STATE'=1742 +'STATIC'=1743 +'STATISTICS'=1744 +'STATS_BINOMIAL_TEST'=1745 +'STATS_CROSSTAB'=1746 +'STATS_F_TEST'=1747 +'STATS_KS_TEST'=1748 +'STATS_MODE'=1749 +'STATS_MW_TEST'=1750 +'STATS_ONE_WAY_ANOVA'=1751 +'STATS_T_TEST_INDEP'=1752 +'STATS_T_TEST_INDEPU'=1753 +'STATS_T_TEST_ONE'=1754 +'STATS_T_TEST_PAIRED'=1755 +'STATS_WSR_TEST'=1756 +'STDDEV_POP'=1757 +'STDDEV_SAMP'=1758 +'STOP'=1759 +'STORAGE'=1760 +'STORE'=1761 +'STREAMS'=1762 +'STREAM'=1763 +'STRICT'=1764 +'STRING'=1765 +'STRIPE_COLUMNS'=1766 +'STRIPE_WIDTH'=1767 +'STRIP'=1768 +'STRUCTURE'=1769 +'SUBMULTISET'=1770 +'SUBPARTITION_REL'=1771 +'SUBPARTITIONS'=1772 +'SUBPARTITION'=1773 +'SUBQUERIES'=1774 +'SUBQUERY_PRUNING'=1775 +'SUBSCRIBE'=1776 +'SUBSET'=1777 +'SUBSTITUTABLE'=1778 +'SUBSTR2'=1779 +'SUBSTR4'=1780 +'SUBSTRB'=1781 +'SUBSTRC'=1782 +'SUBTYPE'=1783 +'SUCCESSFUL'=1784 +'SUCCESS'=1785 +'SUMMARY'=1786 +'SUPPLEMENTAL'=1787 +'SUSPEND'=1788 +'SWAP_JOIN_INPUTS'=1789 +'SWITCHOVER'=1790 +'SWITCH'=1791 +'SYNCHRONOUS'=1792 +'SYNC'=1793 +'SYNONYM'=1794 +'SYS'=1795 +'SYSASM'=1796 +'SYS_AUDIT'=1797 +'SYSAUX'=1798 +'SYSBACKUP'=1799 +'SYS_CHECKACL'=1800 +'SYS_CHECK_PRIVILEGE'=1801 +'SYS_CONNECT_BY_PATH'=1802 +'SYS_CONTEXT'=1803 +'SYSDATE'=1804 +'SYSDBA'=1805 +'SYS_DBURIGEN'=1806 +'SYSDG'=1807 +'SYS_DL_CURSOR'=1808 +'SYS_DM_RXFORM_CHR'=1809 +'SYS_DM_RXFORM_NUM'=1810 +'SYS_DOM_COMPARE'=1811 +'SYS_DST_PRIM2SEC'=1812 +'SYS_DST_SEC2PRIM'=1813 +'SYS_ET_BFILE_TO_RAW'=1814 +'SYS_ET_BLOB_TO_IMAGE'=1815 +'SYS_ET_IMAGE_TO_BLOB'=1816 +'SYS_ET_RAW_TO_BFILE'=1817 +'SYS_EXTPDTXT'=1818 +'SYS_EXTRACT_UTC'=1819 +'SYS_FBT_INSDEL'=1820 +'SYS_FILTER_ACLS'=1821 +'SYS_FNMATCHES'=1822 +'SYS_FNREPLACE'=1823 +'SYS_GET_ACLIDS'=1824 +'SYS_GET_COL_ACLIDS'=1825 +'SYS_GET_PRIVILEGES'=1826 +'SYS_GETTOKENID'=1827 +'SYS_GETXTIVAL'=1828 +'SYS_GUID'=1829 +'SYSGUID'=1830 +'SYSKM'=1831 +'SYS_MAKE_XMLNODEID'=1832 +'SYS_MAKEXML'=1833 +'SYS_MKXMLATTR'=1834 +'SYS_MKXTI'=1835 +'SYSOBJ'=1836 +'SYS_OP_ADT2BIN'=1837 +'SYS_OP_ADTCONS'=1838 +'SYS_OP_ALSCRVAL'=1839 +'SYS_OP_ATG'=1840 +'SYS_OP_BIN2ADT'=1841 +'SYS_OP_BITVEC'=1842 +'SYS_OP_BL2R'=1843 +'SYS_OP_BLOOM_FILTER_LIST'=1844 +'SYS_OP_BLOOM_FILTER'=1845 +'SYS_OP_C2C'=1846 +'SYS_OP_CAST'=1847 +'SYS_OP_CEG'=1848 +'SYS_OP_CL2C'=1849 +'SYS_OP_COMBINED_HASH'=1850 +'SYS_OP_COMP'=1851 +'SYS_OP_CONVERT'=1852 +'SYS_OP_COUNTCHG'=1853 +'SYS_OP_CSCONV'=1854 +'SYS_OP_CSCONVTEST'=1855 +'SYS_OP_CSR'=1856 +'SYS_OP_CSX_PATCH'=1857 +'SYS_OP_CYCLED_SEQ'=1858 +'SYS_OP_DECOMP'=1859 +'SYS_OP_DESCEND'=1860 +'SYS_OP_DISTINCT'=1861 +'SYS_OP_DRA'=1862 +'SYS_OP_DUMP'=1863 +'SYS_OP_DV_CHECK'=1864 +'SYS_OP_ENFORCE_NOT_NULL$'=1865 +'SYSOPER'=1866 +'SYS_OP_EXTRACT'=1867 +'SYS_OP_GROUPING'=1868 +'SYS_OP_GUID'=1869 +'SYS_OP_HASH'=1870 +'SYS_OP_IIX'=1871 +'SYS_OP_ITR'=1872 +'SYS_OP_KEY_VECTOR_CREATE'=1873 +'SYS_OP_KEY_VECTOR_FILTER_LIST'=1874 +'SYS_OP_KEY_VECTOR_FILTER'=1875 +'SYS_OP_KEY_VECTOR_SUCCEEDED'=1876 +'SYS_OP_KEY_VECTOR_USE'=1877 +'SYS_OP_LBID'=1878 +'SYS_OP_LOBLOC2BLOB'=1879 +'SYS_OP_LOBLOC2CLOB'=1880 +'SYS_OP_LOBLOC2ID'=1881 +'SYS_OP_LOBLOC2NCLOB'=1882 +'SYS_OP_LOBLOC2TYP'=1883 +'SYS_OP_LSVI'=1884 +'SYS_OP_LVL'=1885 +'SYS_OP_MAKEOID'=1886 +'SYS_OP_MAP_NONNULL'=1887 +'SYS_OP_MSR'=1888 +'SYS_OP_NICOMBINE'=1889 +'SYS_OP_NIEXTRACT'=1890 +'SYS_OP_NII'=1891 +'SYS_OP_NIX'=1892 +'SYS_OP_NOEXPAND'=1893 +'SYS_OP_NTCIMG$'=1894 +'SYS_OP_NUMTORAW'=1895 +'SYS_OP_OIDVALUE'=1896 +'SYS_OP_OPNSIZE'=1897 +'SYS_OP_PAR_1'=1898 +'SYS_OP_PARGID_1'=1899 +'SYS_OP_PARGID'=1900 +'SYS_OP_PAR'=1901 +'SYS_OP_PART_ID'=1902 +'SYS_OP_PIVOT'=1903 +'SYS_OP_R2O'=1904 +'SYS_OP_RAWTONUM'=1905 +'SYS_OP_RDTM'=1906 +'SYS_OP_REF'=1907 +'SYS_OP_RMTD'=1908 +'SYS_OP_ROWIDTOOBJ'=1909 +'SYS_OP_RPB'=1910 +'SYS_OPTLOBPRBSC'=1911 +'SYS_OP_TOSETID'=1912 +'SYS_OP_TPR'=1913 +'SYS_OP_TRTB'=1914 +'SYS_OPTXICMP'=1915 +'SYS_OPTXQCASTASNQ'=1916 +'SYS_OP_UNDESCEND'=1917 +'SYS_OP_VECAND'=1918 +'SYS_OP_VECBIT'=1919 +'SYS_OP_VECOR'=1920 +'SYS_OP_VECXOR'=1921 +'SYS_OP_VERSION'=1922 +'SYS_OP_VREF'=1923 +'SYS_OP_VVD'=1924 +'SYS_OP_XMLCONS_FOR_CSX'=1925 +'SYS_OP_XPTHATG'=1926 +'SYS_OP_XPTHIDX'=1927 +'SYS_OP_XPTHOP'=1928 +'SYS_OP_XTXT2SQLT'=1929 +'SYS_OP_ZONE_ID'=1930 +'SYS_ORDERKEY_DEPTH'=1931 +'SYS_ORDERKEY_MAXCHILD'=1932 +'SYS_ORDERKEY_PARENT'=1933 +'SYS_PARALLEL_TXN'=1934 +'SYS_PATHID_IS_ATTR'=1935 +'SYS_PATHID_IS_NMSPC'=1936 +'SYS_PATHID_LASTNAME'=1937 +'SYS_PATHID_LASTNMSPC'=1938 +'SYS_PATH_REVERSE'=1939 +'SYS_PXQEXTRACT'=1940 +'SYS_RAW_TO_XSID'=1941 +'SYS_RID_ORDER'=1942 +'SYS_ROW_DELTA'=1943 +'SYS_SC_2_XMLT'=1944 +'SYS_SYNRCIREDO'=1945 +'SYSTEM_DEFINED'=1946 +'SYSTEM'=1947 +'SYSTIMESTAMP'=1948 +'SYS_TYPEID'=1949 +'SYS_UMAKEXML'=1950 +'SYS_XMLANALYZE'=1951 +'SYS_XMLCONTAINS'=1952 +'SYS_XMLCONV'=1953 +'SYS_XMLEXNSURI'=1954 +'SYS_XMLGEN'=1955 +'SYS_XMLI_LOC_ISNODE'=1956 +'SYS_XMLI_LOC_ISTEXT'=1957 +'SYS_XMLINSTR'=1958 +'SYS_XMLLOCATOR_GETSVAL'=1959 +'SYS_XMLNODEID_GETCID'=1960 +'SYS_XMLNODEID_GETLOCATOR'=1961 +'SYS_XMLNODEID_GETOKEY'=1962 +'SYS_XMLNODEID_GETPATHID'=1963 +'SYS_XMLNODEID_GETPTRID'=1964 +'SYS_XMLNODEID_GETRID'=1965 +'SYS_XMLNODEID_GETSVAL'=1966 +'SYS_XMLNODEID_GETTID'=1967 +'SYS_XMLNODEID'=1968 +'SYS_XMLT_2_SC'=1969 +'SYS_XMLTRANSLATE'=1970 +'SYS_XMLTYPE2SQL'=1971 +'SYS_XQ_ASQLCNV'=1972 +'SYS_XQ_ATOMCNVCHK'=1973 +'SYS_XQBASEURI'=1974 +'SYS_XQCASTABLEERRH'=1975 +'SYS_XQCODEP2STR'=1976 +'SYS_XQCODEPEQ'=1977 +'SYS_XQCON2SEQ'=1978 +'SYS_XQCONCAT'=1979 +'SYS_XQDELETE'=1980 +'SYS_XQDFLTCOLATION'=1981 +'SYS_XQDOC'=1982 +'SYS_XQDOCURI'=1983 +'SYS_XQDURDIV'=1984 +'SYS_XQED4URI'=1985 +'SYS_XQENDSWITH'=1986 +'SYS_XQERRH'=1987 +'SYS_XQERR'=1988 +'SYS_XQESHTMLURI'=1989 +'SYS_XQEXLOBVAL'=1990 +'SYS_XQEXSTWRP'=1991 +'SYS_XQEXTRACT'=1992 +'SYS_XQEXTRREF'=1993 +'SYS_XQEXVAL'=1994 +'SYS_XQFB2STR'=1995 +'SYS_XQFNBOOL'=1996 +'SYS_XQFNCMP'=1997 +'SYS_XQFNDATIM'=1998 +'SYS_XQFNLNAME'=1999 +'SYS_XQFNNM'=2000 +'SYS_XQFNNSURI'=2001 +'SYS_XQFNPREDTRUTH'=2002 +'SYS_XQFNQNM'=2003 +'SYS_XQFNROOT'=2004 +'SYS_XQFORMATNUM'=2005 +'SYS_XQFTCONTAIN'=2006 +'SYS_XQFUNCR'=2007 +'SYS_XQGETCONTENT'=2008 +'SYS_XQINDXOF'=2009 +'SYS_XQINSERT'=2010 +'SYS_XQINSPFX'=2011 +'SYS_XQIRI2URI'=2012 +'SYS_XQLANG'=2013 +'SYS_XQLLNMFRMQNM'=2014 +'SYS_XQMKNODEREF'=2015 +'SYS_XQNILLED'=2016 +'SYS_XQNODENAME'=2017 +'SYS_XQNORMSPACE'=2018 +'SYS_XQNORMUCODE'=2019 +'SYS_XQ_NRNG'=2020 +'SYS_XQNSP4PFX'=2021 +'SYS_XQNSPFRMQNM'=2022 +'SYS_XQPFXFRMQNM'=2023 +'SYS_XQ_PKSQL2XML'=2024 +'SYS_XQPOLYABS'=2025 +'SYS_XQPOLYADD'=2026 +'SYS_XQPOLYCEL'=2027 +'SYS_XQPOLYCSTBL'=2028 +'SYS_XQPOLYCST'=2029 +'SYS_XQPOLYDIV'=2030 +'SYS_XQPOLYFLR'=2031 +'SYS_XQPOLYMOD'=2032 +'SYS_XQPOLYMUL'=2033 +'SYS_XQPOLYRND'=2034 +'SYS_XQPOLYSQRT'=2035 +'SYS_XQPOLYSUB'=2036 +'SYS_XQPOLYUMUS'=2037 +'SYS_XQPOLYUPLS'=2038 +'SYS_XQPOLYVEQ'=2039 +'SYS_XQPOLYVGE'=2040 +'SYS_XQPOLYVGT'=2041 +'SYS_XQPOLYVLE'=2042 +'SYS_XQPOLYVLT'=2043 +'SYS_XQPOLYVNE'=2044 +'SYS_XQREF2VAL'=2045 +'SYS_XQRENAME'=2046 +'SYS_XQREPLACE'=2047 +'SYS_XQRESVURI'=2048 +'SYS_XQRNDHALF2EVN'=2049 +'SYS_XQRSLVQNM'=2050 +'SYS_XQRYENVPGET'=2051 +'SYS_XQRYVARGET'=2052 +'SYS_XQRYWRP'=2053 +'SYS_XQSEQ2CON4XC'=2054 +'SYS_XQSEQ2CON'=2055 +'SYS_XQSEQDEEPEQ'=2056 +'SYS_XQSEQINSB'=2057 +'SYS_XQSEQRM'=2058 +'SYS_XQSEQRVS'=2059 +'SYS_XQSEQSUB'=2060 +'SYS_XQSEQTYPMATCH'=2061 +'SYS_XQSTARTSWITH'=2062 +'SYS_XQSTATBURI'=2063 +'SYS_XQSTR2CODEP'=2064 +'SYS_XQSTRJOIN'=2065 +'SYS_XQSUBSTRAFT'=2066 +'SYS_XQSUBSTRBEF'=2067 +'SYS_XQTOKENIZE'=2068 +'SYS_XQTREATAS'=2069 +'SYS_XQ_UPKXML2SQL'=2070 +'SYS_XQXFORM'=2071 +'SYS_XSID_TO_RAW'=2072 +'SYS_ZMAP_FILTER'=2073 +'SYS_ZMAP_REFRESH'=2074 +'T'=2075 +'TABLE_LOOKUP_BY_NL'=2076 +'TABLESPACE_NO'=2077 +'TABLESPACE'=2078 +'TABLES'=2079 +'TABLE_STATS'=2080 +'TABLE'=2081 +'TABNO'=2082 +'TAG'=2083 +'TANH'=2084 +'TAN'=2085 +'TBL$OR$IDX$PART$NUM'=2086 +'TEMPFILE'=2087 +'TEMPLATE'=2088 +'TEMPLATE_TABLE'=2089 +'TEMPORARY'=2090 +'TEMP_TABLE'=2091 +'TERMINATED'=2092 +'TEST'=2093 +'TEXT'=2094 +'TEXTFILE'=2095 +'THAN'=2096 +'THEN'=2097 +'THE'=2098 +'THESE'=2099 +'THREAD'=2100 +'THROUGH'=2101 +'TIER'=2102 +'TIES'=2103 +'TIMEOUT'=2104 +'TIMESTAMP_LTZ_UNCONSTRAINED'=2105 +'TIMESTAMP'=2106 +'TIMESTAMP_TZ_UNCONSTRAINED'=2107 +'TIMESTAMP_UNCONSTRAINED'=2108 +'TIMES'=2109 +'TIME'=2110 +'TIMEZONE'=2111 +'TIMEZONE_ABBR'=2112 +'TIMEZONE_HOUR'=2113 +'TIMEZONE_MINUTE'=2114 +'TIMEZONE_OFFSET'=2115 +'TIMEZONE_REGION'=2116 +'TIME_ZONE'=2117 +'TIMING'=2118 +'TINYINT'=2119 +'TIV_GB'=2120 +'TIV_SSF'=2121 +'TO_ACLID'=2122 +'TO_BINARY_DOUBLE'=2123 +'TO_BINARY_FLOAT'=2124 +'TO_BLOB'=2125 +'TO_CLOB'=2126 +'TO_DSINTERVAL'=2127 +'TO_LOB'=2128 +'TO_MULTI_BYTE'=2129 +'TO_NCHAR'=2130 +'TO_NCLOB'=2131 +'TO_NUMBER'=2132 +'TOPLEVEL'=2133 +'TO_SINGLE_BYTE'=2134 +'TO_TIMESTAMP'=2135 +'TO_TIMESTAMP_TZ'=2136 +'TO_TIME'=2137 +'TO_TIME_TZ'=2138 +'TO'=2139 +'TO_YMINTERVAL'=2140 +'TRACE'=2141 +'TRACING'=2142 +'TRACKING'=2143 +'TRAILING'=2144 +'TRANSACTION'=2145 +'TRANSFORM'=2146 +'TRANSFORMS'=2147 +'TRANSFORM_DISTINCT_AGG'=2148 +'TRANSITIONAL'=2149 +'TRANSITION'=2150 +'TRANSLATE'=2151 +'TRANSLATION'=2152 +'TREAT'=2153 +'TRIGGERS'=2154 +'TRIGGER'=2155 +'TRUE'=2156 +'TRUNCATE'=2157 +'TRUNC'=2158 +'TRUSTED'=2159 +'TRUST'=2160 +'TUNING'=2161 +'TX'=2162 +'TYPES'=2163 +'TYPE'=2164 +'TZ_OFFSET'=2165 +'UB2'=2166 +'UBA'=2167 +'UCS2'=2168 +'UDF'=2169 +'UID'=2170 +'UNARCHIVED'=2171 +'UNBOUNDED'=2172 +'UNBOUND'=2173 +'UNCONDITIONAL'=2174 +'UNDER'=2175 +'UNDO'=2176 +'UNDROP'=2177 +'UNIFORM'=2178 +'UNION'=2179 +'UNIONTYPE'=2180 +'UNIQUE'=2181 +'UNISTR'=2182 +'UNLIMITED'=2183 +'UNLOAD'=2184 +'UNLOCK'=2185 +'UNMATCHED'=2186 +'UNNEST_INNERJ_DISTINCT_VIEW'=2187 +'UNNEST_NOSEMIJ_NODISTINCTVIEW'=2188 +'UNNEST_SEMIJ_VIEW'=2189 +'UNNEST'=2190 +'UNPACKED'=2191 +'UNPIVOT'=2192 +'UNPLUG'=2193 +'UNPROTECTED'=2194 +'UNQUIESCE'=2195 +'UNRECOVERABLE'=2196 +'UNRESTRICTED'=2197 +'UNSIGNED'=2198 +'UNSUBSCRIBE'=2199 +'UNTIL'=2200 +'UNUSABLE'=2201 +'UNUSED'=2202 +'UPDATABLE'=2203 +'UPDATED'=2204 +'UPDATE'=2205 +'UPDATEXML'=2206 +'UPD_INDEXES'=2207 +'UPD_JOININDEX'=2208 +'UPGRADE'=2209 +'UPPER'=2210 +'UPSERT'=2211 +'UROWID'=2212 +'USABLE'=2213 +'USAGE'=2214 +'USE_ANTI'=2215 +'USE_CONCAT'=2216 +'USE_CUBE'=2217 +'USE_HASH_AGGREGATION'=2218 +'USE_HASH_GBY_FOR_PUSHDOWN'=2219 +'USE_HASH'=2220 +'USE_HIDDEN_PARTITIONS'=2221 +'USE_INVISIBLE_INDEXES'=2222 +'USE_MERGE_CARTESIAN'=2223 +'USE_MERGE'=2224 +'USE_NL'=2225 +'USE_NL_WITH_INDEX'=2226 +'USE_PRIVATE_OUTLINES'=2227 +'USER_DATA'=2228 +'USER_DEFINED'=2229 +'USERENV'=2230 +'USERGROUP'=2231 +'USER_RECYCLEBIN'=2232 +'USERS'=2233 +'USER_TABLESPACES'=2234 +'USER'=2235 +'USE_SEMI'=2236 +'USE_STORED_OUTLINES'=2237 +'USE_TTT_FOR_GSETS'=2238 +'USE'=2239 +'USE_VECTOR_AGGREGATION'=2240 +'USE_WEAK_NAME_RESL'=2241 +'USING_NO_EXPAND'=2242 +'USING_NLS_COMP'=2243 +'USING'=2244 +'UTF16BE'=2245 +'UTF16LE'=2246 +'UTF32'=2247 +'UTF8'=2248 +'V1'=2249 +'V2'=2250 +'VALIDATE'=2251 +'VALIDATE_CONVERSION'=2252 +'VALIDATION'=2253 +'VALID_TIME_END'=2254 +'VALUES'=2255 +'VALUE'=2256 +'VARCHAR2'=2257 +'VARCHAR'=2258 +'VARCHARC'=2259 +'VARIABLE'=2260 +'VARRAW'=2261 +'VARRAWC'=2262 +'VAR_POP'=2263 +'VARRAYS'=2264 +'VARRAY'=2265 +'VAR_SAMP'=2266 +'VARYING'=2267 +'VECTOR_READ_TRACE'=2268 +'VECTOR_READ'=2269 +'VECTOR_TRANSFORM_DIMS'=2270 +'VECTOR_TRANSFORM_FACT'=2271 +'VECTOR_TRANSFORM'=2272 +'VERIFIER'=2273 +'VERIFY'=2274 +'VERSIONING'=2275 +'VERSIONS_ENDSCN'=2276 +'VERSIONS_ENDTIME'=2277 +'VERSIONS_OPERATION'=2278 +'VERSIONS_STARTSCN'=2279 +'VERSIONS_STARTTIME'=2280 +'VERSIONS'=2281 +'VERSIONS_XID'=2282 +'VERSION'=2283 +'VIEW'=2284 +'VIOLATION'=2285 +'VIRTUAL'=2286 +'VISIBILITY'=2287 +'VISIBLE'=2288 +'VOLUME'=2289 +'VSIZE'=2290 +'WAIT'=2291 +'WALLET'=2292 +'WARNING'=2293 +'WEEKS'=2294 +'WEEK'=2295 +'WELLFORMED'=2296 +'WHENEVER'=2297 +'WHEN'=2298 +'WHERE'=2299 +'WHILE'=2300 +'WHITESPACE'=2301 +'WIDTH_BUCKET'=2302 +'WITHIN'=2303 +'WITHOUT'=2304 +'WITH_PLSQL'=2305 +'WITH'=2306 +'WORK'=2307 +'WORKERID'=2308 +'WRAPPED'=2309 +'WRAPPER'=2310 +'WRITE'=2311 +'XDB_FASTPATH_INSERT'=2312 +'XDB'=2313 +'X_DYN_PRUNE'=2314 +'XID'=2315 +'XML2OBJECT'=2316 +'XMLAGG'=2317 +'XMLATTRIBUTES'=2318 +'XMLCAST'=2319 +'XMLCDATA'=2320 +'XMLCOLATTVAL'=2321 +'XMLCOMMENT'=2322 +'XMLCONCAT'=2323 +'XMLDIFF'=2324 +'XML_DML_RWT_STMT'=2325 +'XMLELEMENT'=2326 +'XMLEXISTS2'=2327 +'XMLEXISTS'=2328 +'XMLFOREST'=2329 +'XMLINDEX'=2330 +'XMLINDEX_REWRITE_IN_SELECT'=2331 +'XMLINDEX_REWRITE'=2332 +'XMLINDEX_SEL_IDX_TBL'=2333 +'XMLISNODE'=2334 +'XMLISVALID'=2335 +'XMLNAMESPACES'=2336 +'XMLPARSE'=2337 +'XMLPATCH'=2338 +'XMLPI'=2339 +'XMLQUERYVAL'=2340 +'XMLQUERY'=2341 +'XMLROOT'=2342 +'XMLSCHEMA'=2343 +'XMLSERIALIZE'=2344 +'XMLTABLE'=2345 +'XMLTAG'=2346 +'XMLTRANSFORMBLOB'=2347 +'XMLTRANSFORM'=2348 +'XMLTYPE'=2349 +'XML'=2350 +'XPATHTABLE'=2351 +'XS_SYS_CONTEXT'=2352 +'XS'=2353 +'XTRANSPORT'=2354 +'YEARS'=2355 +'YEAR'=2356 +'YEAR_TO_MONTH'=2357 +'YES'=2358 +'YMINTERVAL_UNCONSTRAINED'=2359 +'ZONEMAP'=2360 +'ZONE'=2361 +'ZONED'=2362 +'PREDICTION'=2363 +'PREDICTION_BOUNDS'=2364 +'PREDICTION_COST'=2365 +'PREDICTION_DETAILS'=2366 +'PREDICTION_PROBABILITY'=2367 +'PREDICTION_SET'=2368 +'BLOCKCHAIN'=2369 +'COLLATE'=2370 +'COLLATION'=2371 +'DEFINITION'=2372 +'DUPLICATED'=2373 +'EXTENDED'=2374 +'HASHING'=2375 +'IDLE'=2376 +'IMMUTABLE'=2377 +'ORACLE_DATAPUMP'=2378 +'ORACLE_HDFS'=2379 +'ORACLE_HIVE'=2380 +'ORACLE_LOADER'=2381 +'"SHA2_512"'=2382 +'SHARDED'=2383 +'"V1"'=2384 +'ISOLATE'=2385 +'ROOT'=2386 +'UNITE'=2387 +'ALGORITHM'=2388 +'CUME_DIST'=2389 +'DENSE_RANK'=2390 +'LISTAGG'=2391 +'PERCENT_RANK'=2392 +'PERCENTILE_CONT'=2393 +'PERCENTILE_DISC'=2394 +'RANK'=2395 +'AVG'=2396 +'CORR'=2397 +'COVAR_'=2398 +'DECODE'=2399 +'LAG'=2400 +'LAG_DIFF'=2401 +'LAG_DIFF_PERCENT'=2402 +'LEAD'=2403 +'MAX'=2404 +'MEDIAN'=2405 +'MEMOPTIMIZE'=2406 +'MIN'=2407 +'NTILE'=2408 +'NVL'=2409 +'RATIO_TO_REPORT'=2410 +'REGR_'=2411 +'ROUND'=2412 +'ROW_NUMBER'=2413 +'SUBSTR'=2414 +'TO_CHAR'=2415 +'TRIM'=2416 +'SUM'=2417 +'STDDEV'=2418 +'VAR_'=2419 +'VARIANCE'=2420 +'LEAST'=2421 +'GREATEST'=2422 +'TO_DATE'=2423 +'CHARSETID'=2424 +'CHARSETFORM'=2425 +'DURATION'=2426 +'EXTEND'=2427 +'MAXLEN'=2428 +'PERSISTABLE'=2429 +'POLYMORPHIC'=2430 +'STRUCT'=2431 +'TDO'=2432 +'WM_CONCAT'=2433 +'..'=2437 +'.'=2438 +'%'=2443 +'&'=2444 +'('=2445 +')'=2446 +'**'=2447 +'*'=2448 +'+'=2449 +'-'=2450 +','=2451 +'/'=2452 +'@'=2453 +':='=2454 +'#'=2455 +'{'=2456 +'}'=2457 +'\''=2458 +'^'=2461 +'~'=2462 +'!'=2463 +'>'=2464 +'<'=2465 +':'=2466 +';'=2467 +'|'=2468 +'='=2469 +'['=2470 +']'=2471 +'_'=2472 diff --git a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexerBase.js b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexerBase.js new file mode 100644 index 000000000..43168b9e6 --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexerBase.js @@ -0,0 +1,8 @@ +import antlr4 from 'antlr4'; + +export default class OracleSqlLexerBase extends antlr4.Lexer { + IsNewlineAtPos (pos) { + const la = this._input.LA(pos); + return la === -1 || String.fromCharCode(la) === '\n'; + } +} diff --git a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.g4 b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.g4 new file mode 100644 index 000000000..a37787868 --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.g4 @@ -0,0 +1,9983 @@ +/** + * Oracle(c) PL/SQL 11g Parser + * + * Copyright (c) 2009-2011 Alexandre Porcelli + * Copyright (c) 2015-2019 Ivan Kochurkin (KvanTTT, kvanttt@gmail.com, Positive Technologies). + * Copyright (c) 2017-2018 Mark Adams + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// $antlr-format alignTrailingComments true, columnLimit 150, minEmptyLines 1, maxEmptyLinesToKeep 1, reflowComments false, useTab false +// $antlr-format allowShortRulesOnASingleLine false, allowShortBlocksOnASingleLine true, alignSemicolons hanging, alignColons hanging + +parser grammar OracleSqlParser; + +options { + tokenVocab = OracleSqlLexer; + superClass = OracleSqlParserBase; +} + +// Insert here @header for C++ parser. + +sql_script + : sql_plus_command_no_semicolon? ( + (((sql_plus_command SEMICOLON? '/'?) | (unit_statement SEMICOLON '/'?))* (sql_plus_command | unit_statement)) SEMICOLON? '/'? + )? EOF + ; + +unit_statement + : alter_analytic_view + | alter_attribute_dimension + | alter_audit_policy + | alter_cluster + | alter_database + | alter_database_link + | alter_dimension + | alter_diskgroup + | alter_flashback_archive + | alter_function + | alter_hierarchy + | alter_index + | alter_inmemory_join_group + | alter_java + | alter_library + | alter_lockdown_profile + | alter_materialized_view + | alter_materialized_view_log + | alter_materialized_zonemap + | alter_operator + | alter_outline + | alter_package + | alter_pmem_filestore + | alter_procedure + | alter_resource_cost + | alter_role + | alter_rollback_segment + | alter_sequence + | alter_session + | alter_synonym + | alter_table + | alter_tablespace + | alter_tablespace_set + | alter_trigger + | alter_type + | alter_user + | alter_view + | anonymous_block + | call_statement + | create_analytic_view + | create_attribute_dimension + | create_audit_policy + | create_cluster + | create_context + | create_controlfile + | create_schema + | create_database + | create_database_link + | create_dimension + | create_directory + | create_diskgroup + | create_edition + | create_flashback_archive + | create_function_body + | create_hierarchy + | create_index + | create_inmemory_join_group + | create_java + | create_library + | create_lockdown_profile + | create_materialized_view + | create_materialized_view_log + | create_materialized_zonemap + | create_operator + | create_outline + | create_package + | create_package_body + | create_pmem_filestore + | create_procedure_body + | create_profile + | create_restore_point + | create_role + | create_rollback_segment + | create_sequence + | create_spfile + | create_synonym + | create_table + | create_tablespace + | create_tablespace_set + | create_trigger + | create_type + | create_user + | create_view + | drop_analytic_view + | drop_attribute_dimension + | drop_audit_policy + | drop_cluster + | drop_context + | drop_database + | drop_database_link + | drop_directory + | drop_diskgroup + | drop_edition + | drop_flashback_archive + | drop_function + | drop_hierarchy + | drop_index + | drop_indextype + | drop_inmemory_join_group + | drop_java + | drop_library + | drop_lockdown_profile + | drop_materialized_view + | drop_materialized_view_log + | drop_materialized_zonemap + | drop_operator + | drop_outline + | drop_package + | drop_pmem_filestore + | drop_procedure + | drop_restore_point + | drop_role + | drop_rollback_segment + | drop_sequence + | drop_synonym + | drop_table + | drop_tablespace + | drop_tablespace_set + | drop_trigger + | drop_type + | drop_user + | drop_view + | administer_key_management + | analyze + | associate_statistics + | audit_traditional + | comment_on_column + | comment_on_materialized + | comment_on_table + | data_manipulation_language_statements + | disassociate_statistics + | flashback_table + | grant_statement + | noaudit_statement + | purge_statement + | rename_object + | revoke_statement + | transaction_control_statements + | truncate_cluster + | truncate_table + | unified_auditing + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-DISKGROUP.html +alter_diskgroup + : ALTER DISKGROUP ( + id_expression ( + ((add_disk_clause | drop_disk_clause)+ | resize_disk_clause) rebalance_diskgroup_clause? + | ( + replace_disk_clause + | rename_disk_clause + | disk_online_clause + | disk_offline_clause + | rebalance_diskgroup_clause + | check_diskgroup_clause + | diskgroup_template_clauses + | diskgroup_directory_clauses + | diskgroup_alias_clauses + | diskgroup_volume_clauses + | diskgroup_attributes + | drop_diskgroup_file_clause + | convert_redundancy_clause + | usergroup_clauses + | user_clauses + | file_permissions_clause + | file_owner_clause + | scrub_clause + | quotagroup_clauses + | filegroup_clauses + ) + ) + | (id_expression (',' id_expression)* | ALL) ( + undrop_disk_clause + | diskgroup_availability + | enable_disable_volume + ) + ) + ; + +add_disk_clause + : ADD ( + (SITE sn = id_expression)? quorum_regular? (FAILGROUP fgn = id_expression)? DISK qualified_disk_clause ( + ',' qualified_disk_clause + )* + )+ + ; + +drop_disk_clause + : DROP ( + quorum_regular? DISK id_expression force_noforce? (',' id_expression force_noforce?)* + | DISKS IN quorum_regular? FAILGROUP id_expression force_noforce? ( + ',' id_expression force_noforce? + )* + ) + ; + +resize_disk_clause + : RESIZE ALL (SIZE size_clause)? + ; + +replace_disk_clause + : REPLACE DISK id_expression WITH CHAR_STRING force_noforce? ( + ',' id_expression WITH CHAR_STRING force_noforce? + )* (POWER numeric)? wait_nowait? + ; + +wait_nowait + : WAIT + | NOWAIT + ; + +rename_disk_clause + : RENAME ( + DISK id_expression TO id_expression (',' id_expression TO id_expression)* + | DISKS ALL + ) + ; + +disk_online_clause + : ONLINE ( + ( + quorum_regular? DISK id_expression (',' id_expression)* + | DISKS IN quorum_regular? FAILGROUP id_expression (',' id_expression)* + )+ + | ALL + ) (POWER numeric)? wait_nowait? + ; + +disk_offline_clause + : OFFLINE ( + quorum_regular? DISK id_expression (',' id_expression)* + | DISKS IN quorum_regular? FAILGROUP id_expression (',' id_expression)* + ) timeout_clause? + ; + +timeout_clause + : DROP AFTER numeric (M_LETTER | H_LETTER) + ; + +rebalance_diskgroup_clause + : REBALANCE ( + ((WITH | WITHOUT) phase+)? (POWER numeric) (WAIT | NOWAIT)? + | MODIFY POWER numeric? + ) + ; + +phase + : id_expression //TODO + ; + +check_diskgroup_clause + : CHECK ALL? (REPAIR | NOREPAIR)? //inconsistent documentation + ; + +diskgroup_template_clauses + : (ADD | MODIFY) TEMPLATE id_expression qualified_template_clause ( + ',' id_expression qualified_template_clause + )* + | DROP TEMPLATE id_expression (',' id_expression)* + ; + +qualified_template_clause + : ATTRIBUTES '(' redundancy_clause? striping_clause? ')' //inconsistent documentation + ; + +redundancy_clause + : MIRROR + | HIGH + | UNPROTECTED + | PARITY + | DOUBLE + ; + +striping_clause + : FINE + | COARSE + ; + +force_noforce + : FORCE + | NOFORCE + ; + +diskgroup_directory_clauses + : ADD DIRECTORY filename (',' filename)* + | DROP DIRECTORY filename force_noforce? (',' filename force_noforce?)* + | RENAME DIRECTORY dir_name TO dir_name (',' dir_name TO dir_name)* + ; + +dir_name + : CHAR_STRING + ; + +diskgroup_alias_clauses + : ADD ALIAS CHAR_STRING FOR CHAR_STRING (',' CHAR_STRING FOR CHAR_STRING)* + | DROP ALIAS CHAR_STRING (',' CHAR_STRING)* + | RENAME ALIAS CHAR_STRING TO CHAR_STRING (',' CHAR_STRING TO CHAR_STRING)* + ; + +diskgroup_volume_clauses + : add_volume_clause + | modify_volume_clause + | RESIZE VOLUME id_expression SIZE size_clause + | DROP VOLUME id_expression + ; + +add_volume_clause + : ADD VOLUME id_expression SIZE size_clause redundancy_clause? ( + STRIPE_WIDTH numeric (K_LETTER | M_LETTER) + )? (STRIPE_COLUMNS numeric)? + ; + +modify_volume_clause + : MODIFY VOLUME id_expression (MOUNTPATH CHAR_STRING)? (USAGE CHAR_STRING)? + ; + +diskgroup_attributes + : SET ATTRIBUTE CHAR_STRING '=' CHAR_STRING + ; + +drop_diskgroup_file_clause + : DROP FILE filename (',' filename)* + ; + +convert_redundancy_clause + : CONVERT REDUNDANCY TO FLEX + ; + +usergroup_clauses + : ADD USERGROUP CHAR_STRING WITH MEMBER CHAR_STRING (',' CHAR_STRING)* + | MODIFY USERGROUP CHAR_STRING (ADD | DROP) MEMBER CHAR_STRING (',' CHAR_STRING)* + | DROP USERGROUP CHAR_STRING + ; + +user_clauses + : ADD USER CHAR_STRING (',' CHAR_STRING)* + | DROP USER CHAR_STRING (',' CHAR_STRING)* CASCADE? + | REPLACE USER CHAR_STRING WITH CHAR_STRING (',' CHAR_STRING WITH CHAR_STRING)* + ; + +file_permissions_clause + : SET PERMISSION (OWNER | GROUP | OTHER) '=' (NONE | READ (ONLY | WRITE)) ( + ',' (OWNER | GROUP | OTHER) '=' (NONE | READ (ONLY | WRITE)) + )* FOR FILE CHAR_STRING (',' CHAR_STRING)* + ; + +file_owner_clause + : SET OWNERSHIP (OWNER | GROUP) '=' CHAR_STRING (',' (OWNER | GROUP) '=' CHAR_STRING)* FOR FILE CHAR_STRING ( + ',' CHAR_STRING + )* + ; + +scrub_clause + : SCRUB (FILE CHAR_STRING | DISK id_expression)? (REPAIR | NOREPAIR)? ( + POWER (AUTO | LOW | HIGH | MAX) + )? wait_nowait? force_noforce? STOP? + ; + +quotagroup_clauses + : ADD QUOTAGROUP id_expression (SET property_name '=' property_value)? + | MODIFY QUOTAGROUP id_expression SET property_name '=' property_value + | MOVE QUOTAGROUP id_expression TO id_expression + | DROP QUOTAGROUP id_expression + ; + +property_name + : id_expression + ; + +property_value + : id_expression + ; + +filegroup_clauses + : add_filegroup_clause + | modify_filegroup_clause + | move_to_filegroup_clause + | drop_filegroup_clause + ; + +add_filegroup_clause + : ADD FILEGROUP id_expression ((DATABASE | CLUSTER | VOLUME) id_expression | TEMPLATE) ( + FROM TEMPLATE id_expression + )? (SET CHAR_STRING '=' CHAR_STRING)? + ; + +modify_filegroup_clause + : MODIFY FILEGROUP id_expression SET CHAR_STRING '=' CHAR_STRING + ; + +move_to_filegroup_clause + : MOVE FILE CHAR_STRING TO FILEGROUP id_expression + ; + +drop_filegroup_clause + : DROP FILEGROUP id_expression CASCADE? + ; + +quorum_regular + : QUORUM + | REGULAR + ; + +undrop_disk_clause + : UNDROP DISKS + ; + +diskgroup_availability + : MOUNT (RESTRICTED | NORMAL)? (FORCE | NOFORCE)? + | DISMOUNT (FORCE | NOFORCE)? + ; + +enable_disable_volume + : (ENABLE | DISABLE) VOLUME (id_expression (',' id_expression)* | ALL) + ; + +// DDL -> SQL Statements for Stored PL/SQL Units + +// Function DDLs + +drop_function + : DROP FUNCTION function_name + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-FLASHBACK-ARCHIVE.html +alter_flashback_archive + : ALTER FLASHBACK ARCHIVE fa = id_expression ( + SET DEFAULT + | (ADD | MODIFY) TABLESPACE ts = id_expression flashback_archive_quota? + | REMOVE TABLESPACE rts = id_expression + | MODIFY /*RETENTION*/ flashback_archive_retention // inconsistent documentation + | PURGE (ALL | BEFORE (SCN expression | TIMESTAMP expression)) + | NO? OPTIMIZE DATA + ) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-HIERARCHY.html +alter_hierarchy + : ALTER HIERARCHY (schema_name '.')? hn = id_expression ( + RENAME TO nhn = id_expression + | COMPILE + ) + ; + +alter_function + : ALTER FUNCTION function_name ( + EDITIONABLE + | NONEDITIONABLE + | COMPILE DEBUG? compiler_parameters_clause* (REUSE SETTINGS)? + ) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-JAVA.html +alter_java + : ALTER JAVA (SOURCE | CLASS) (schema_name '.')? o = id_expression ( + RESOLVER '(' ('(' match_string ','? (schema_name | '-') ')')+ ')' + )? (COMPILE | RESOLVE | invoker_rights_clause) + ; + +match_string + : DELIMITED_ID + | '*' + ; + +create_function_body + : CREATE (OR REPLACE)? (EDITIONABLE | NONEDITIONABLE)? FUNCTION function_name ( + '(' parameter (',' parameter)* ')' + )? RETURN type_spec (SHARING '=' (METADATA | NONE))? ( + invoker_rights_clause + | accessible_by_clause + | default_collation_clause + | parallel_enable_clause + | result_cache_clause + | PIPELINED + | DETERMINISTIC + )* ( + ((IS | AS) (DECLARE? seq_of_declare_specs? body | call_spec)) + | aggregate_clause + | pipelined_using_clause + | sql_macro_body + ) + ; + +sql_macro_body + : SQL_MACRO IS BEGIN RETURN quoted_string SEMICOLON END + ; + +// Creation Function - Specific Clauses + +parallel_enable_clause + : PARALLEL_ENABLE partition_by_clause? + ; + +partition_by_clause + : '(' PARTITION expression BY (ANY | (HASH | RANGE | LIST) paren_column_list) streaming_clause? ')' + ; + +result_cache_clause + : RESULT_CACHE relies_on_part? ('(' MODE (DEFAULT | FORCE ) ')')? + ; + +accessible_by_clause + : ACCESSIBLE BY '(' accessor (',' accessor)* ')' + ; + +default_collation_clause + : DEFAULT COLLATION USING_NLS_COMP + ; + +aggregate_clause + : AGGREGATE USING implementation_type_name + ; + +pipelined_using_clause + : PIPELINED ((ROW | TABLE) POLYMORPHIC)? USING implementation_type_name + ; + +accessor + : unitKind = (FUNCTION | PROCEDURE | PACKAGE | TRIGGER | TYPE) function_name + ; + +relies_on_part + : RELIES_ON '(' tableview_name (',' tableview_name)* ')' + ; + +streaming_clause + : (ORDER | CLUSTER) expression BY paren_column_list + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-OUTLINE.html +alter_outline + : ALTER OUTLINE (PUBLIC | PRIVATE)? o = id_expression outline_options+ + ; + +outline_options + : REBUILD + | RENAME TO non = id_expression + | CHANGE CATEGORY TO ncn = id_expression + | ENABLE + | DISABLE + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-LOCKDOWN-PROFILE.html +alter_lockdown_profile + : ALTER LOCKDOWN PROFILE id_expression ( + lockdown_feature + | lockdown_options + | lockdown_statements + ) (USERS '=' (ALL | COMMON | LOCAL))? + ; + +lockdown_feature + : disable_enable FEATURE ('=' '(' string_list ')' | ALL (EXCEPT '=' '(' string_list ')')?) + ; + +lockdown_options + : disable_enable OPTION ('=' '(' string_list ')' | ALL (EXCEPT '=' '(' string_list ')')?) + ; + +lockdown_statements + : disable_enable STATEMENT ( + '=' '(' string_list ')' + | '=' '(' CHAR_STRING ')' statement_clauses + | ALL (EXCEPT '=' '(' string_list ')')? + ) + ; + +statement_clauses + : CLAUSE ( + '=' '(' string_list ')' + | '=' '(' CHAR_STRING ')' clause_options + | ALL (EXCEPT '=' '(' string_list ')')? + ) + ; + +clause_options + : OPTION ( + '=' '(' string_list ')' + | '=' '(' CHAR_STRING ')' option_values+ + | ALL (EXCEPT '=' '(' string_list ')')? + ) + ; + +option_values + : VALUE '=' '(' string_list ')' + | (MINVALUE | MAXVALUE) '=' CHAR_STRING + ; + +string_list + : CHAR_STRING (',' CHAR_STRING)* + ; + +disable_enable + : DISABLE + | ENABLE + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-LOCKDOWN-PROFILE.html +drop_lockdown_profile + : DROP LOCKDOWN PROFILE p = id_expression + ; + +// Package DDLs + +drop_package + : DROP PACKAGE BODY? (schema_object_name '.')? package_name + ; + +alter_package + : ALTER PACKAGE package_name COMPILE DEBUG? (PACKAGE | BODY | SPECIFICATION)? compiler_parameters_clause* ( + REUSE SETTINGS + )? + ; + +create_package + : CREATE (OR REPLACE)? (EDITIONABLE | NONEDITIONABLE)? PACKAGE (schema_object_name '.')? package_name invoker_rights_clause? ( + IS + | AS + ) package_obj_spec* END package_name? + ; + +create_package_body + : CREATE (OR REPLACE)? (EDITIONABLE | NONEDITIONABLE)? PACKAGE BODY (schema_object_name '.')? package_name ( + IS + | AS + ) package_obj_body*? (BEGIN seq_of_statements (EXCEPTION exception_handler+)?)? END package_name? + ; + +// Create Package Specific Clauses + +package_obj_spec + : pragma_declaration + | exception_declaration + | procedure_spec + | function_spec + | variable_declaration + | subtype_declaration + | cursor_declaration + | type_declaration + ; + +procedure_spec + : PROCEDURE identifier ('(' parameter ( ',' parameter)* ')')? ( + accessible_by_clause + | PARALLEL_ENABLE + )* ';' + ; + +function_spec + : FUNCTION identifier ('(' parameter ( ',' parameter)* ')')? RETURN type_spec ( + DETERMINISTIC + | PIPELINED + | parallel_enable_clause + | RESULT_CACHE + | streaming_clause + )* ';' + ; + +package_obj_body + : pragma_declaration + | exception_declaration + | procedure_spec + | function_spec + | subtype_declaration + | cursor_declaration + | variable_declaration + | type_declaration + | procedure_body + | function_body + | selection_directive + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/alter-pmem-filestore.html +alter_pmem_filestore + : ALTER PMEM FILESTORE fsn = id_expression ( + RESIZE size_clause + | autoextend_clause + | MOUNT (MOUNTPOINT file_path)? (BACKINGFILE filename)? FORCE? //inconsistent documentation + | DISMOUNT + ) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/drop-pmem-filestore.html +drop_pmem_filestore + : DROP PMEM FILESTORE fsn = id_expression ((FORCE? INCLUDING | EXCLUDING) CONTENTS)? + ; + +// Procedure DDLs + +drop_procedure + : DROP PROCEDURE procedure_name + ; + +alter_procedure + : ALTER PROCEDURE procedure_name COMPILE DEBUG? compiler_parameters_clause* (REUSE SETTINGS)? + ; + +function_body + : FUNCTION identifier ('(' parameter (',' parameter)* ')')? RETURN type_spec ( + PIPELINED + | DETERMINISTIC + | invoker_rights_clause + | parallel_enable_clause + | result_cache_clause + | streaming_clause + // see example in section "How Table Functions Stream their Input Data" on streaming_clause in Oracle 9i: https://docs.oracle.com/cd/B10501_01/appdev.920/a96624/08_subs.htm#20554 + )* ( + ( (IS | AS) (DECLARE? seq_of_declare_specs? body | call_spec)) + | (PIPELINED | AGGREGATE) USING implementation_type_name + ) ';' + ; + +procedure_body + : PROCEDURE identifier ('(' parameter (',' parameter)* ')')? ( + accessible_by_clause + | PARALLEL_ENABLE + )* (IS | AS) (DECLARE? seq_of_declare_specs? body | call_spec | EXTERNAL) ';' + ; + +create_procedure_body + : CREATE (OR REPLACE)? PROCEDURE procedure_name ('(' parameter (',' parameter)* ')')? invoker_rights_clause? PARALLEL_ENABLE? ( + IS + | AS + ) (DECLARE? seq_of_declare_specs? body | call_spec | EXTERNAL) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-RESOURCE-COST.html +alter_resource_cost + : ALTER RESOURCE COST ( + (CPU_PER_SESSION | CONNECT_TIME | LOGICAL_READS_PER_SESSION | PRIVATE_SGA) UNSIGNED_INTEGER + )+ + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-OUTLINE.html +drop_outline + : DROP OUTLINE o = id_expression + ; + +// Rollback Segment DDLs + +//https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_2011.htm#SQLRF00816 +alter_rollback_segment + : ALTER ROLLBACK SEGMENT rollback_segment_name ( + ONLINE + | OFFLINE + | storage_clause + | SHRINK (TO size_clause)? + ) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-RESTORE-POINT.html +drop_restore_point + : DROP RESTORE POINT rp = id_expression (FOR PLUGGABLE DATABASE pdb = id_expression)? + ; + +drop_rollback_segment + : DROP ROLLBACK SEGMENT rollback_segment_name + ; + +drop_role + : DROP ROLE role_name + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/create-pmem-filestore.html +create_pmem_filestore + : CREATE PMEM FILESTORE fsn = id_expression pmem_filestore_options+ + ; + +pmem_filestore_options + : MOUNTPOINT file_path + | BACKINGFILE filename REUSE? + | (SIZE | BLOCKSIZE) size_clause + | autoextend_clause + ; + +file_path + : CHAR_STRING + ; + +create_rollback_segment + : CREATE PUBLIC? ROLLBACK SEGMENT rollback_segment_name ( + TABLESPACE tablespace + | storage_clause + )* + ; + +// Trigger DDLs + +drop_trigger + : DROP TRIGGER trigger_name + ; + +alter_trigger + : ALTER TRIGGER alter_trigger_name = trigger_name ( + (ENABLE | DISABLE) + | RENAME TO rename_trigger_name = trigger_name + | COMPILE DEBUG? compiler_parameters_clause* (REUSE SETTINGS)? + ) + ; + +create_trigger + : CREATE (OR REPLACE)? TRIGGER trigger_name ( + simple_dml_trigger + | compound_dml_trigger + | non_dml_trigger + ) trigger_follows_clause? (ENABLE | DISABLE)? trigger_when_clause? trigger_body + ; + +trigger_follows_clause + : FOLLOWS trigger_name (',' trigger_name)* + ; + +trigger_when_clause + : WHEN '(' condition ')' + ; + +// Create Trigger Specific Clauses + +simple_dml_trigger + : (BEFORE | AFTER | INSTEAD OF) dml_event_clause referencing_clause? for_each_row? + ; + +for_each_row + : FOR EACH ROW + ; + +compound_dml_trigger + : FOR dml_event_clause referencing_clause? + ; + +non_dml_trigger + : (BEFORE | AFTER) non_dml_event (OR non_dml_event)* ON (DATABASE | (schema_name '.')? SCHEMA) + ; + +trigger_body + : compound_trigger_block + | CALL identifier + | trigger_block + ; + +compound_trigger_block + : COMPOUND TRIGGER seq_of_declare_specs? timing_point_section+ END trigger_name? + ; + +timing_point_section + : bk = BEFORE STATEMENT IS tps_block BEFORE STATEMENT ';' + | bk = BEFORE EACH ROW IS tps_block BEFORE EACH ROW ';' + | ak = AFTER STATEMENT IS tps_block AFTER STATEMENT ';' + | ak = AFTER EACH ROW IS tps_block AFTER EACH ROW ';' + ; + +non_dml_event + : ALTER + | ANALYZE + | ASSOCIATE STATISTICS + | AUDIT + | COMMENT + | CREATE + | DISASSOCIATE STATISTICS + | DROP + | GRANT + | NOAUDIT + | RENAME + | REVOKE + | TRUNCATE + | DDL + | STARTUP + | SHUTDOWN + | DB_ROLE_CHANGE + | LOGON + | LOGOFF + | SERVERERROR + | SUSPEND + | DATABASE + | SCHEMA + | FOLLOWS + ; + +dml_event_clause + : dml_event_element (OR dml_event_element)* ON dml_event_nested_clause? tableview_name + ; + +dml_event_element + : (DELETE | INSERT | UPDATE) (OF column_list)? + ; + +dml_event_nested_clause + : NESTED TABLE tableview_name OF + ; + +referencing_clause + : (REFERENCING referencing_element | REFERENCES) referencing_element* + ; + +referencing_element + : (NEW | OLD | PARENT) column_alias + ; + +// DDLs + +drop_type + : DROP TYPE BODY? type_name (FORCE | VALIDATE)? + ; + +alter_type + : ALTER TYPE type_name ( + compile_type_clause + | replace_type_clause + | alter_method_spec + | alter_collection_clauses + | modifier_clause + | overriding_subprogram_spec + ) dependent_handling_clause? + ; + +// Alter Type Specific Clauses + +compile_type_clause + : COMPILE DEBUG? (SPECIFICATION | BODY)? compiler_parameters_clause* (REUSE SETTINGS)? + ; + +replace_type_clause + : REPLACE invoker_rights_clause? AS OBJECT '(' object_member_spec (',' object_member_spec)* ')' + ; + +alter_method_spec + : alter_method_element (',' alter_method_element)* + ; + +alter_method_element + : (ADD | DROP) (map_order_function_spec | subprogram_spec) + ; + +alter_collection_clauses + : MODIFY (LIMIT expression | ELEMENT TYPE type_spec) + ; + +dependent_handling_clause + : INVALIDATE + | CASCADE (CONVERT TO SUBSTITUTABLE | NOT? INCLUDING TABLE DATA)? dependent_exceptions_part? + ; + +dependent_exceptions_part + : FORCE? EXCEPTIONS INTO tableview_name + ; + +create_type + : CREATE (OR REPLACE)? (EDITIONABLE | NONEDITIONABLE)? TYPE (type_definition | type_body) + ; + +// Create Type Specific Clauses + +type_definition + : type_name (OID CHAR_STRING)? FORCE? object_type_def? + ; + +object_type_def + : invoker_rights_clause? (object_as_part | object_under_part) sqlj_object_type? ( + '(' object_member_spec (',' object_member_spec)* ')' + )? modifier_clause* + ; + +object_as_part + : (IS | AS) (OBJECT | varray_type_def | nested_table_type_def) + ; + +object_under_part + : UNDER type_spec + ; + +nested_table_type_def + : TABLE OF type_spec (NOT NULL_)? + ; + +sqlj_object_type + : EXTERNAL NAME expression LANGUAGE JAVA USING (SQLDATA | CUSTOMDATUM | ORADATA) + ; + +type_body + : BODY type_name (IS | AS) (type_body_elements)+ END + ; + +type_body_elements + : map_order_func_declaration + | subprog_decl_in_type + | overriding_subprogram_spec + ; + +map_order_func_declaration + : (MAP | ORDER) MEMBER func_decl_in_type + ; + +subprog_decl_in_type + : (MEMBER | STATIC) (proc_decl_in_type | func_decl_in_type | constructor_declaration) + ; + +proc_decl_in_type + : PROCEDURE procedure_name '(' type_elements_parameter (',' type_elements_parameter)* ')' ( + IS + | AS + ) (call_spec | DECLARE? seq_of_declare_specs? body ';') + ; + +func_decl_in_type + : FUNCTION function_name ('(' type_elements_parameter (',' type_elements_parameter)* ')')? RETURN type_spec ( + IS + | AS + ) (call_spec | DECLARE? seq_of_declare_specs? body ';') + ; + +constructor_declaration + : FINAL? INSTANTIABLE? CONSTRUCTOR FUNCTION type_spec ( + '(' (SELF IN OUT type_spec ',') type_elements_parameter (',' type_elements_parameter)* ')' + )? RETURN SELF AS RESULT (IS | AS) (call_spec | DECLARE? seq_of_declare_specs? body ';') + ; + +// Common Type Clauses + +modifier_clause + : NOT? (INSTANTIABLE | FINAL | OVERRIDING) + ; + +object_member_spec + : identifier type_spec sqlj_object_type_attr? + | element_spec + ; + +sqlj_object_type_attr + : EXTERNAL NAME expression + ; + +element_spec + : modifier_clause? element_spec_options+ (',' pragma_clause)? + ; + +element_spec_options + : subprogram_spec + | constructor_spec + | map_order_function_spec + ; + +subprogram_spec + : (MEMBER | STATIC) (type_procedure_spec | type_function_spec) + ; + +// TODO: should be refactored such as Procedure body and Function body, maybe Type_Function_Body and overriding_function_body +overriding_subprogram_spec + : OVERRIDING MEMBER overriding_function_spec + ; + +overriding_function_spec + : FUNCTION function_name ('(' type_elements_parameter (',' type_elements_parameter)* ')')? RETURN ( + type_spec + | SELF AS RESULT + ) (PIPELINED? (IS | AS) (DECLARE? seq_of_declare_specs? body))? ';'? + ; + +type_procedure_spec + : PROCEDURE procedure_name '(' type_elements_parameter (',' type_elements_parameter)* ')' ( + (IS | AS) call_spec + )? + ; + +type_function_spec + : FUNCTION function_name ('(' type_elements_parameter (',' type_elements_parameter)* ')')? RETURN ( + type_spec + | SELF AS RESULT + ) ((IS | AS) call_spec | EXTERNAL VARIABLE? NAME expression)? + ; + +constructor_spec + : FINAL? INSTANTIABLE? CONSTRUCTOR FUNCTION type_spec ( + '(' (SELF IN OUT type_spec ',') type_elements_parameter (',' type_elements_parameter)* ')' + )? RETURN SELF AS RESULT ((IS | AS) call_spec)? + ; + +map_order_function_spec + : (MAP | ORDER) MEMBER type_function_spec + ; + +pragma_clause + : PRAGMA RESTRICT_REFERENCES '(' pragma_elements (',' pragma_elements)* ')' + ; + +pragma_elements + : identifier + | DEFAULT + ; + +type_elements_parameter + : parameter_name type_spec + ; + +// Sequence DDLs + +drop_sequence + : DROP SEQUENCE sequence_name + ; + +alter_sequence + : ALTER SEQUENCE sequence_name sequence_spec+ + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-SESSION.html +alter_session + : ALTER SESSION ( + ADVISE ( COMMIT | ROLLBACK | NOTHING) + | CLOSE DATABASE LINK parameter_name + | enable_or_disable COMMIT IN PROCEDURE + | enable_or_disable GUARD + | (enable_or_disable | FORCE) PARALLEL (DML | DDL | QUERY) ( + PARALLEL (literal | parameter_name) + )? + | SET alter_session_set_clause + ) + ; + +alter_session_set_clause + : (parameter_name '=' parameter_value)+ + | EDITION '=' en = id_expression + | CONTAINER '=' cn = id_expression (SERVICE '=' sn = id_expression)? + | ROW ARCHIVAL VISIBILITY '=' (ACTIVE | ALL) + | DEFAULT_COLLATION '=' (c = id_expression | NONE) + ; + +create_sequence + : CREATE SEQUENCE (IF NOT EXISTS)? sequence_name sequence_spec* (SHARING '=' (METADATA | DATA | NONE))? + ; + +// Common Sequence + +sequence_spec + : INCREMENT BY UNSIGNED_INTEGER + | sequence_start_clause + | MAXVALUE UNSIGNED_INTEGER + | NOMAXVALUE + | MINVALUE UNSIGNED_INTEGER + | NOMINVALUE + | CYCLE + | NOCYCLE + | CACHE UNSIGNED_INTEGER + | NOCACHE + | ORDER + | NOORDER + | KEEP + | NOKEEP + | SCALE (EXTEND | NOEXTEND)? + | NOSCALE + | SHARD (EXTEND | NOEXTEND)? + | NOSHARD + | SESSION + | GLOBAL + ; + +sequence_start_clause + : START WITH UNSIGNED_INTEGER + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-ANALYTIC-VIEW.html +create_analytic_view + : CREATE (OR REPLACE)? (NOFORCE | FORCE)? ANALYTIC VIEW av = id_expression ( + SHARING '=' (METADATA | NONE) + )? classification_clause* cav_using_clause? dim_by_clause? measures_clause? default_measure_clause? default_aggregate_clause? cache_clause? + fact_columns_clause? qry_transform_clause? + ; + +classification_clause + // : (CAPTION c=quoted_string)? (DESCRIPTION d=quoted_string)? classification_item* + // to handle - 'rule contains a closure with at least one alternative that can match an empty string' + : (caption_clause description_clause? | caption_clause? description_clause) classification_item* + | caption_clause? description_clause? classification_item+ + ; + +caption_clause + : CAPTION c = quoted_string + ; + +description_clause + : DESCRIPTION d = quoted_string + ; + +classification_item + : CLASSIFICATION cn = id_expression (VALUE cv = quoted_string)? (LANGUAGE language)? + ; + +language + : NULL_ + | nls = id_expression + ; + +cav_using_clause + : USING (schema_name '.')? t = id_expression REMOTE? (AS? ta = id_expression)? + ; + +dim_by_clause + : DIMENSION BY '(' dim_key (',' dim_key)* ')' + ; + +dim_key + : dim_ref classification_clause* KEY ( + '(' (a = id_expression '.')? f = column_name (',' (a = id_expression '.')? f = column_name)* ')' + | (a = id_expression '.')? f = column_name + ) REFERENCES DISTINCT? ('(' attribute_name (',' attribute_name) ')' | attribute_name) HIERARCHIES '(' hier_ref ( + ',' hier_ref + )* ')' + ; + +dim_ref + : (schema_name '.')? ad = id_expression (AS? da = id_expression)? + ; + +hier_ref + : (schema_name '.')? h = id_expression (AS? ha = id_expression)? DEFAULT? + ; + +measures_clause + : MEASURES '(' av_measure (',' av_measure)* ')' + ; + +av_measure + : mn = id_expression (base_meas_clause | calc_meas_clause)? //classification_clause* + ; + +base_meas_clause + : FACT /*FOR MEASURE*/ bm = id_expression meas_aggregate_clause? //FIXME inconsistent documentation + ; + +meas_aggregate_clause + : AGGREGATE BY aggregate_function_name + ; + +calc_meas_clause + : /*m=id_expression*/ AS '(' expression ')' //FIXME inconsistent documentation + ; + +default_measure_clause + : DEFAULT MEASURE m = id_expression + ; + +default_aggregate_clause + : DEFAULT AGGREGATE BY aggregate_function_name + ; + +cache_clause + : CACHE cache_specification (',' cache_specification)* + ; + +cache_specification + : MEASURE GROUP ( + ALL + | '(' id_expression (',' id_expression)* ')' levels_clause (',' levels_clause)* + ) + ; + +levels_clause + : LEVELS '(' level_specification (',' level_specification)* ')' level_group_type + ; + +level_specification + : '(' ((d = id_expression '.')? h = id_expression '.')? l = id_expression ')' + ; + +level_group_type + : DYNAMIC + | MATERIALIZED (USING (schema_name '.')? t = id_expression)? + ; + +fact_columns_clause + : FACT COLUMN f = column_name (AS? fa = id_expression (',' AS? fa = id_expression)*)? + ; + +qry_transform_clause + : ENABLE QUERY TRANSFORM (RELY | NORELY)? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-ATTRIBUTE-DIMENSION.html +create_attribute_dimension + : CREATE (OR REPLACE)? (NOFORCE | FORCE)? ATTRIBUTE DIMENSION (schema_name '.')? ad = id_expression ( + SHARING '=' (METADATA | NONE) + )? classification_clause* (DIMENSION TYPE (STANDARD | TIME))? ad_using_clause attributes_clause ad_level_clause+ all_clause? + ; + +ad_using_clause + : USING source_clause (',' source_clause)* join_path_clause* + ; + +source_clause + : (schema_name '.')? ftov = id_expression REMOTE? (AS? a = id_expression)? + ; + +join_path_clause + : JOIN PATH jpn = id_expression ON join_condition + ; + +join_condition + : join_condition_item (AND join_condition_item)* + ; + +join_condition_item + : (a = id_expression '.')? column_name '=' (b = id_expression '.')? column_name + ; + +attributes_clause + : ATTRIBUTES '(' ad_attributes_clause (',' ad_attributes_clause)* ')' + ; + +ad_attributes_clause + : (a = id_expression '.')? column_name (AS? an = id_expression)? classification_clause* + ; + +ad_level_clause + : LEVEL l = id_expression (NOT NULL_ | SKIP_ WHEN NULL_)? ( + LEVEL TYPE ( + STANDARD + | YEARS + | HALF_YEARS + | QUARTERS + | MONTHS + | WEEKS + | DAYS + | HOURS + | MINUTES + | SECONDS + ) + )? classification_clause* //inconsistent documentation - LEVEL TYPE goes after the classification_clause rule + key_clause alternate_key_clause? (MEMBER NAME expression)? (MEMBER CAPTION expression)? ( + MEMBER DESCRIPTION expression + )? (ORDER BY (MIN | MAX)? dim_order_clause (',' (MIN | MAX)? dim_order_clause)*)? ( + DETERMINES '(' id_expression (',' id_expression)* ')' + )? + ; + +key_clause + : KEY (a = id_expression | '(' id_expression (',' id_expression)* ')') + ; + +alternate_key_clause + : ALTERNATE key_clause + ; + +dim_order_clause + : a = id_expression (ASC | DESC)? (NULLS (FIRST | LAST))? + ; + +all_clause + : ALL MEMBER ( + NAME expression (MEMBER CAPTION expression)? + | CAPTION expression (MEMBER DESCRIPTION expression)? + | DESCRIPTION expression + ) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-AUDIT-POLICY-Unified-Auditing.html +create_audit_policy + : CREATE AUDIT POLICY p = id_expression privilege_audit_clause? action_audit_clause? role_audit_clause? ( + WHEN quoted_string EVALUATE PER (STATEMENT | SESSION | INSTANCE) + )? (ONLY TOPLEVEL)? container_clause? + ; + +privilege_audit_clause + : PRIVILEGES system_privilege (',' system_privilege)* + ; + +action_audit_clause + : (standard_actions | component_actions | system_actions)+ + ; + +system_actions + : ACTIONS system_privilege (',' system_privilege)* + ; + +standard_actions + : ACTIONS actions_clause (',' actions_clause)* + ; + +actions_clause + : (object_action | ALL) ON ( + DIRECTORY directory_name + | (MINING MODEL)? (schema_name '.')? id_expression + ) + | (system_action | ALL) + ; + +object_action + : ALTER + | GRANT + | READ + | EXECUTE + | AUDIT + | COMMENT + | DELETE + | INDEX + | INSERT + | LOCK + | SELECT + | UPDATE + | FLASHBACK + | RENAME + ; + +system_action + : id_expression // SELECT name FROM AUDITABLE_SYSTEM_ACTIONS WHERE component = 'Standard'; + | (CREATE | ALTER | DROP) JAVA + | LOCK TABLE + | (READ | WRITE | EXECUTE) DIRECTORY + ; + +component_actions + : ACTIONS COMPONENT '=' ( + (DATAPUMP | DIRECT_LOAD | OLS | XS) component_action (',' component_action)* + | DV component_action ON id_expression (',' component_action ON id_expression)* + | PROTOCOL (FTP | HTTP | AUTHENTICATION) + ) + ; + +component_action + : id_expression // SELECT name FROM auditable_system_actions WHERE component = 'Datapump'; + ; + +role_audit_clause + : ROLES role_name (',' role_name)* + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-CONTROLFILE.html +create_controlfile + : CREATE CONTROLFILE REUSE? SET? DATABASE d = id_expression logfile_clause? ( + RESETLOGS + | NORESETLOGS + ) (DATAFILE file_specification (',' file_specification)*)? controlfile_options* character_set_clause? + ; + +controlfile_options + : MAXLOGFILES numeric + | MAXLOGMEMBERS numeric + | MAXLOGHISTORY numeric + | MAXDATAFILES numeric + | MAXINSTANCES numeric + | ARCHIVELOG + | NOARCHIVELOG + | FORCE LOGGING + | SET STANDBY NOLOGGING FOR (DATA AVAILABILITY | LOAD PERFORMANCE) + ; + +logfile_clause + : LOGFILE (GROUP? numeric)? file_specification (',' (GROUP? numeric)? file_specification)* + ; + +character_set_clause + : CHARACTER SET cs = id_expression + ; + +file_specification + : datafile_tempfile_spec + | redo_log_file_spec + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-DISKGROUP.html +create_diskgroup + : CREATE DISKGROUP id_expression ( + (HIGH | NORMAL | FLEX | EXTENDED (SITE sn = id_expression)? | EXTERNAL) REDUNDANCY + )? ( + quorum_regular? (FAILGROUP fg = id_expression)? DISK qualified_disk_clause ( + ',' qualified_disk_clause + )* + )+ (ATTRIBUTE an = CHAR_STRING '=' av = CHAR_STRING (',' CHAR_STRING '=' CHAR_STRING)*)? + ; + +qualified_disk_clause + : ss = CHAR_STRING (NAME dn = id_expression)? (SIZE size_clause)? force_noforce? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-EDITION.html +create_edition + : CREATE EDITION e = id_expression (AS CHILD OF pe = id_expression)? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-FLASHBACK-ARCHIVE.html +create_flashback_archive + : CREATE FLASHBACK ARCHIVE DEFAULT? fa = id_expression TABLESPACE ts = id_expression flashback_archive_quota? ( + NO? OPTIMIZE DATA + )? flashback_archive_retention + ; + +flashback_archive_quota + : QUOTA UNSIGNED_INTEGER (M_LETTER | G_LETTER | T_LETTER | P_LETTER | E_LETTER) + ; + +flashback_archive_retention + : RETENTION UNSIGNED_INTEGER (YEAR | MONTH | DAY) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-HIERARCHY.html +create_hierarchy + : CREATE (OR REPLACE)? (NO? FORCE)? HIERARCHY (schema_name '.')? h = id_expression ( + SHARING '=' (METADATA | NONE) + )? classification_clause* hier_using_clause level_hier_clause hier_attrs_clause? + ; + +hier_using_clause + : USING (schema_name '.')? ad = id_expression + ; + +level_hier_clause + : '(' (l = id_expression (CHILD OF)?)+ ')' + ; + +hier_attrs_clause + : HIERARCHICAL ATTRIBUTES '(' hier_attr_clause ')' + ; + +hier_attr_clause + : hier_attr_name classification_clause* + ; + +hier_attr_name + : MEMBER_NAME + | MEMBER_UNIQUE_NAME + | MEMBER_CAPTION + | MEMBER_DESCRIPTION + | LEVEL_NAME + | HIER_ORDER + | DEPTH + | IS_LEAF + | PARENT_LEVEL_NAME + | PARENT_UNIQUE_NAME + ; + +create_index + : CREATE (UNIQUE | BITMAP)? INDEX index_name (IF NOT EXISTS)? ON ( + cluster_index_clause + | table_index_clause + | bitmap_join_index_clause + ) (USABLE | UNUSABLE)? ((DEFERRED | IMMEDIATE) INVALIDATION)? + ; + +cluster_index_clause + : CLUSTER cluster_name index_attributes? + ; + +cluster_name + : (id_expression '.')? id_expression + ; + +table_index_clause + : tableview_name table_alias? '(' index_expr (ASC | DESC)? (',' index_expr (ASC | DESC)?)* ')' index_properties? + ; + +bitmap_join_index_clause + : tableview_name '(' (tableview_name | table_alias)? column_name (ASC | DESC)? ( + ',' (tableview_name | table_alias)? column_name (ASC | DESC)? + )* ')' FROM tableview_name table_alias (',' tableview_name table_alias)* where_clause local_partitioned_index? index_attributes? + ; + +index_expr + : column_name + | expression + ; + +index_properties + : (global_partitioned_index | local_partitioned_index | index_attributes)+ + | INDEXTYPE IS (domain_index_clause | xmlindex_clause) + ; + +domain_index_clause + : indextype local_domain_index_clause? parallel_clause? (PARAMETERS '(' odci_parameters ')')? + ; + +local_domain_index_clause + : LOCAL ( + '(' PARTITION partition_name (PARAMETERS '(' odci_parameters ')')? ( + ',' PARTITION partition_name (PARAMETERS '(' odci_parameters ')')? + )* ')' + )? + ; + +xmlindex_clause + : (XDB '.')? XMLINDEX local_xmlindex_clause? parallel_clause? //TODO xmlindex_parameters_clause? + ; + +local_xmlindex_clause + : LOCAL ( + '(' PARTITION partition_name ( + ',' PARTITION partition_name //TODO xmlindex_parameters_clause? + )* ')' + )? + ; + +global_partitioned_index + : GLOBAL PARTITION BY ( + RANGE '(' column_name (',' column_name)* ')' '(' index_partitioning_clause ( + ',' index_partitioning_clause + )* ')' + | HASH '(' column_name (',' column_name)* ')' ( + individual_hash_partitions + | hash_partitions_by_quantity + ) + ) + ; + +index_partitioning_clause + : PARTITION partition_name? VALUES LESS THAN '(' index_partitioning_values_list ')' segment_attributes_clause? + ; + +index_partitioning_values_list + : literal (',' literal)* + | TIMESTAMP literal (',' TIMESTAMP literal)* + ; + +local_partitioned_index + : LOCAL ( + on_range_partitioned_table + | on_list_partitioned_table + | on_hash_partitioned_table + | on_comp_partitioned_table + )? + ; + +on_range_partitioned_table + : '(' partitioned_table (',' partitioned_table)* ')' + ; + +on_list_partitioned_table + : '(' partitioned_table (',' partitioned_table)* ')' + ; + +partitioned_table + : PARTITION partition_name? (segment_attributes_clause | key_compression)* UNUSABLE? + ; + +on_hash_partitioned_table + : STORE IN '(' tablespace (',' tablespace)* ')' + | '(' on_hash_partitioned_clause (',' on_hash_partitioned_clause)* ')' + ; + +on_hash_partitioned_clause + : PARTITION partition_name? (TABLESPACE tablespace)? key_compression? UNUSABLE? + ; + +on_comp_partitioned_table + : (STORE IN '(' tablespace (',' tablespace)* ')')? '(' on_comp_partitioned_clause ( + ',' on_comp_partitioned_clause + )* ')' + ; + +on_comp_partitioned_clause + : PARTITION partition_name? (segment_attributes_clause | key_compression)* UNUSABLE? index_subpartition_clause? + ; + +index_subpartition_clause + : STORE IN '(' tablespace (',' tablespace)* ')' + | '(' index_subpartition_subclause (',' index_subpartition_subclause)* ')' + ; + +index_subpartition_subclause + : SUBPARTITION subpartition_name? (TABLESPACE tablespace)? key_compression? UNUSABLE? + ; + +odci_parameters + : CHAR_STRING + ; + +indextype + : (id_expression '.')? id_expression + ; + +//https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_1010.htm#SQLRF00805 +alter_index + : ALTER INDEX index_name (alter_index_ops_set1 | alter_index_ops_set2) + ; + +alter_index_ops_set1 + : ( + deallocate_unused_clause + | allocate_extent_clause + | shrink_clause + | parallel_clause + | physical_attributes_clause + | logging_clause + )+ + ; + +alter_index_ops_set2 + : rebuild_clause + | PARAMETERS '(' odci_parameters ')' + | COMPILE + | enable_or_disable + | UNUSABLE + | visible_or_invisible + | RENAME TO new_index_name + | COALESCE + | monitoring_nomonitoring USAGE + | UPDATE BLOCK REFERENCES + | alter_index_partitioning + ; + +visible_or_invisible + : VISIBLE + | INVISIBLE + ; + +monitoring_nomonitoring + : MONITORING + | NOMONITORING + ; + +rebuild_clause + : REBUILD (PARTITION partition_name | SUBPARTITION subpartition_name | REVERSE | NOREVERSE)? ( + parallel_clause + | TABLESPACE tablespace + | PARAMETERS '(' odci_parameters ')' + //TODO | xmlindex_parameters_clause + | ONLINE + | physical_attributes_clause + | key_compression + | logging_clause + )* + ; + +alter_index_partitioning + : modify_index_default_attrs + | add_hash_index_partition + | modify_index_partition + | rename_index_partition + | drop_index_partition + | split_index_partition + | coalesce_index_partition + | modify_index_subpartition + ; + +modify_index_default_attrs + : MODIFY DEFAULT ATTRIBUTES (FOR PARTITION partition_name)? ( + physical_attributes_clause + | TABLESPACE (tablespace | DEFAULT) + | logging_clause + ) + ; + +add_hash_index_partition + : ADD PARTITION partition_name? (TABLESPACE tablespace)? key_compression? parallel_clause? + ; + +coalesce_index_partition + : COALESCE PARTITION parallel_clause? + ; + +modify_index_partition + : MODIFY PARTITION partition_name ( + modify_index_partitions_ops+ + | PARAMETERS '(' odci_parameters ')' + | COALESCE + | UPDATE BLOCK REFERENCES + | UNUSABLE + ) + ; + +modify_index_partitions_ops + : deallocate_unused_clause + | allocate_extent_clause + | physical_attributes_clause + | logging_clause + | key_compression + | shrink_clause + ; + +rename_index_partition + : RENAME (PARTITION partition_name | SUBPARTITION subpartition_name) TO new_partition_name + ; + +drop_index_partition + : DROP PARTITION partition_name + ; + +split_index_partition + : SPLIT PARTITION partition_name_old AT '(' literal (',' literal)* ')' ( + INTO '(' index_partition_description ',' index_partition_description ')' + )? parallel_clause? + ; + +index_partition_description + : PARTITION ( + partition_name ( + (segment_attributes_clause | key_compression)+ + | PARAMETERS '(' odci_parameters ')' + ) UNUSABLE? + )? + ; + +modify_index_subpartition + : MODIFY SUBPARTITION subpartition_name ( + UNUSABLE + | allocate_extent_clause + | deallocate_unused_clause + ) + ; + +partition_name_old + : partition_name + ; + +new_partition_name + : partition_name + ; + +new_index_name + : index_name + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-INMEMORY-JOIN-GROUP.html +alter_inmemory_join_group + : ALTER INMEMORY JOIN GROUP (schema_name '.')? jg = id_expression (ADD | REMOVE) '(' ( + schema_name '.' + )? t = id_expression '(' c = id_expression ')' ')' + ; + +create_user + : CREATE USER user_object_name (IF NOT EXISTS)? ( + identified_by + | identified_other_clause + | user_tablespace_clause + | quota_clause + | profile_clause + | password_expire_clause + | user_lock_clause + | user_editions_clause + | container_clause + )+ + ; + +// The standard clauses only permit one user per statement. +// The proxy clause allows multiple users for a proxy designation. +alter_user + : ALTER USER user_object_name ( + alter_identified_by + | identified_other_clause + | user_tablespace_clause + | quota_clause + | profile_clause + | user_default_role_clause + | password_expire_clause + | user_lock_clause + | alter_user_editions_clause + | container_clause + | container_data_clause + )+ + | user_object_name (',' user_object_name)* proxy_clause + ; + +drop_user + : DROP USER user_object_name (IF EXISTS)? CASCADE? + ; + +alter_identified_by + : identified_by (REPLACE id_expression)? + ; + +identified_by + : IDENTIFIED BY id_expression + ; + +identified_other_clause + : IDENTIFIED (EXTERNALLY | GLOBALLY) (AS quoted_string)? + ; + +user_tablespace_clause + : (DEFAULT | TEMPORARY) TABLESPACE id_expression + ; + +quota_clause + : QUOTA (size_clause | UNLIMITED) ON id_expression + ; + +profile_clause + : PROFILE id_expression + ; + +role_clause + : role_name (',' role_name)* + | ALL (EXCEPT role_name (',' role_name)*)* + ; + +user_default_role_clause + : DEFAULT ROLE (NONE | role_clause) + ; + +password_expire_clause + : PASSWORD EXPIRE + ; + +user_lock_clause + : ACCOUNT (LOCK | UNLOCK) + ; + +user_editions_clause + : ENABLE EDITIONS + ; + +alter_user_editions_clause + : user_editions_clause (FOR regular_id (',' regular_id)*)? FORCE? + ; + +proxy_clause + : REVOKE CONNECT THROUGH (ENTERPRISE USERS | user_object_name) + | GRANT CONNECT THROUGH ( + ENTERPRISE USERS + | user_object_name (WITH (NO ROLES | ROLE role_clause))? (AUTHENTICATION REQUIRED)? ( + AUTHENTICATED USING (PASSWORD | CERTIFICATE | DISTINGUISHED NAME) + )? + ) + ; + +container_names + : LEFT_PAREN id_expression (',' id_expression)* RIGHT_PAREN + ; + +set_container_data + : SET CONTAINER_DATA EQUALS_OP (ALL | DEFAULT | container_names) + ; + +add_rem_container_data + : (ADD | REMOVE) CONTAINER_DATA EQUALS_OP container_names + ; + +container_data_clause + : set_container_data + | add_rem_container_data (FOR container_tableview_name)? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ADMINISTER-KEY-MANAGEMENT.html +administer_key_management + : ADMINISTER KEY MANAGEMENT ( + keystore_management_clauses + | key_management_clauses + | secret_management_clauses + | zero_downtime_software_patching_clauses + ) + ; + +keystore_management_clauses + : create_keystore + | open_keystore + | close_keystore + | backup_keystore + | alter_keystore_password + | merge_into_new_keystore + | merge_into_existing_keystore + | isolate_keystore + | unite_keystore + ; + +create_keystore + : CREATE ( + KEYSTORE ksl = CHAR_STRING + | LOCAL? AUTO_LOGIN KEYSTORE FROM KEYSTORE ksl = CHAR_STRING + ) IDENTIFIED BY keystore_password + ; + +open_keystore + : SET KEYSTORE OPEN force_keystore? identified_by_store container_clause? + ; + +force_keystore + : FORCE KEYSTORE + ; + +close_keystore + : SET KEYSTORE CLOSE identified_by_store? container_clause? + ; + +backup_keystore + : BACKUP KEYSTORE (USING bi = CHAR_STRING)? force_keystore? identified_by_store ( + TO ksl = CHAR_STRING + )? + ; + +alter_keystore_password + : ALTER KEYSTORE PASSWORD force_keystore? IDENTIFIED BY o = keystore_password SET n = keystore_password with_backup_clause? + ; + +merge_into_new_keystore + : MERGE KEYSTORE ksl1 = CHAR_STRING identified_by_password_clause? AND KEYSTORE ksl2 = CHAR_STRING identified_by_password_clause? INTO NEW + KEYSTORE ksl2 = CHAR_STRING identified_by_password_clause + ; + +merge_into_existing_keystore + : MERGE KEYSTORE ksl1 = CHAR_STRING identified_by_password_clause? INTO EXISTING KEYSTORE ksl2 = CHAR_STRING identified_by_password_clause + with_backup_clause? + ; + +isolate_keystore + : FORCE? ISOLATE KEYSTORE IDENTIFIED BY i = keystore_password FROM ROOT KEYSTORE force_keystore? identified_by_store with_backup_clause? + ; + +unite_keystore + : UNITE KEYSTORE IDENTIFIED BY i = keystore_password WITH ROOT KEYSTORE force_keystore? identified_by_store with_backup_clause? + ; + +key_management_clauses + : set_key + | create_key + | use_key + | set_key_tag + | export_keys + | import_keys + | migrate_keys + | reverse_migrate_keys + | move_keys + ; + +set_key + : SET ENCRYPTION? KEY ((mkid ':')? mk)? using_tag_clause? using_algorithm_clause? force_keystore? identified_by_store with_backup_clause? + container_clause? + ; + +create_key + : CREATE ENCRYPTION? KEY ((mkid ':')? mk)? using_tag_clause? using_algorithm_clause? force_keystore? identified_by_store with_backup_clause? + container_clause? + ; + +mkid + : CHAR_STRING + ; + +mk + : CHAR_STRING + ; + +use_key + : USE ENCRYPTION? KEY k = CHAR_STRING using_tag_clause? force_keystore? identified_by_store with_backup_clause? + ; + +set_key_tag + : SET TAG t = CHAR_STRING FOR k = CHAR_STRING force_keystore? identified_by_store with_backup_clause? + ; + +export_keys + : EXPORT ENCRYPTION? KEYS WITH SECRET secret TO filename force_keystore? identified_by_store ( + WITH IDENTIFIER IN (CHAR_STRING (',' CHAR_STRING)* | '(' subquery ')') + )? + ; + +import_keys + : IMPORT ENCRYPTION? KEYS WITH SECRET secret FROM filename force_keystore? identified_by_store with_backup_clause? + ; + +migrate_keys + : SET ENCRYPTION? KEY IDENTIFIED BY hsm = secret force_keystore? MIGRATE USING keystore_password with_backup_clause? + ; + +reverse_migrate_keys + : SET ENCRYPTION? KEY IDENTIFIED BY s = secret force_keystore? REVERSE MIGRATE USING hsm = secret + ; + +move_keys + : MOVE ENCRYPTION? KEYS TO NEW KEYSTORE ksl1 = CHAR_STRING IDENTIFIED BY ksp1 = keystore_password FROM FORCE? KEYSTORE IDENTIFIED BY ksp = + keystore_password (WITH IDENTIFIER IN (CHAR_STRING (',' CHAR_STRING)* | subquery))? with_backup_clause? + ; + +identified_by_store + : IDENTIFIED BY (EXTERNAL STORE | keystore_password) + ; + +using_algorithm_clause + : USING ALGORITHM ea = CHAR_STRING + ; + +using_tag_clause + : USING TAG t = CHAR_STRING + ; + +secret_management_clauses + : add_update_secret + | delete_secret + | add_update_secret_seps + | delete_secret_seps + ; + +add_update_secret + : (ADD | UPDATE) SECRET s = CHAR_STRING FOR CLIENT ci = CHAR_STRING using_tag_clause? force_keystore? identified_by_store? with_backup_clause? + ; + +delete_secret + : DELETE SECRET FOR CLIENT ci = CHAR_STRING force_keystore? identified_by_store with_backup_clause? + ; + +add_update_secret_seps + : (ADD | UPDATE) SECRET s = CHAR_STRING FOR CLIENT ci = CHAR_STRING using_tag_clause? TO LOCAL? AUTO_LOGIN KEYSTORE directory_path + ; + +delete_secret_seps + : DELETE SECRET s = CHAR_STRING SQ FOR CLIENT ci = CHAR_STRING FROM LOCAL? AUTO_LOGIN KEYSTORE directory_path + ; + +zero_downtime_software_patching_clauses + : SWITCHOVER TO? LIBRARY path FOR ALL CONTAINERS //inconsistent documentation + ; + +with_backup_clause + : WITH BACKUP (USING bi = CHAR_STRING)? + ; + +identified_by_password_clause + : IDENTIFIED BY keystore_password + ; + +keystore_password + : DELIMITED_ID + ; + +path + : CHAR_STRING + ; + +secret + : DELIMITED_ID + ; + +// https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_4005.htm#SQLRF01105 +analyze + : ( + ANALYZE (TABLE tableview_name | INDEX index_name) partition_extention_clause? + | ANALYZE CLUSTER cluster_name + ) ( + validation_clauses + | compute_clauses + | ESTIMATE SYSTEM? STATISTICS for_clause? (SAMPLE UNSIGNED_INTEGER (ROWS | PERCENT_KEYWORD))? + | LIST CHAINED ROWS into_clause1? + | DELETE SYSTEM? STATISTICS) + ; + +partition_extention_clause + : PARTITION ( + '(' partition_name ')' + | FOR '(' partition_key_value (',' partition_key_value)* ')' + ) + | SUBPARTITION ( + '(' subpartition_name ')' + | FOR '(' subpartition_key_value (',' subpartition_key_value)* ')' + ) + ; + +validation_clauses + : VALIDATE REF UPDATE (SET DANGLING TO NULL_)? + | VALIDATE STRUCTURE (CASCADE FAST | CASCADE online_or_offline? into_clause? | CASCADE)? online_or_offline? into_clause? + ; + +compute_clauses + : COMPUTE SYSTEM? STATISTICS for_clause? + ; + +for_clause + : FOR ( + TABLE for_clause* + | ALL (INDEXED? COLUMNS (SIZE UNSIGNED_INTEGER)? for_clause* | LOCAL? INDEXES) + | COLUMNS (SIZE UNSIGNED_INTEGER)? (column_name SIZE UNSIGNED_INTEGER)+ for_clause* + ) + ; + +online_or_offline + : OFFLINE + | ONLINE + ; + +into_clause1 + : INTO tableview_name? + ; + +//Making assumption on partition ad subpartition key value clauses +partition_key_value + : literal + | TIMESTAMP quoted_string + ; + +subpartition_key_value + : literal + | TIMESTAMP quoted_string + ; + +//https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_4006.htm#SQLRF01106 +associate_statistics + : ASSOCIATE STATISTICS WITH (column_association | function_association) storage_table_clause? + ; + +column_association + : COLUMNS tableview_name '.' column_name (',' tableview_name '.' column_name)* using_statistics_type + ; + +function_association + : ( + FUNCTIONS function_name (',' function_name)* + | PACKAGES package_name (',' package_name)* + | TYPES type_name (',' type_name)* + | INDEXES index_name (',' index_name)* + | INDEXTYPES indextype_name (',' indextype_name)* + ) ( + using_statistics_type + | default_cost_clause (',' default_selectivity_clause)? + | default_selectivity_clause (',' default_cost_clause)? + ) + ; + +indextype_name + : id_expression + ; + +using_statistics_type + : USING (statistics_type_name | NULL_) + ; + +statistics_type_name + : regular_id + ; + +default_cost_clause + : DEFAULT COST '(' cpu_cost ',' io_cost ',' network_cost ')' + ; + +cpu_cost + : UNSIGNED_INTEGER + ; + +io_cost + : UNSIGNED_INTEGER + ; + +network_cost + : UNSIGNED_INTEGER + ; + +default_selectivity_clause + : DEFAULT SELECTIVITY default_selectivity + ; + +default_selectivity + : UNSIGNED_INTEGER + ; + +storage_table_clause + : WITH (SYSTEM | USER) MANAGED STORAGE TABLES + ; + +// https://docs.oracle.com/database/121/SQLRF/statements_4008.htm#SQLRF56110 +unified_auditing + : {this.isVersion12()}? AUDIT ( + POLICY policy_name ((BY | EXCEPT) audit_user (',' audit_user)*)? (WHENEVER NOT? SUCCESSFUL)? + | CONTEXT NAMESPACE oracle_namespace ATTRIBUTES attribute_name (',' attribute_name)* ( + BY audit_user (',' audit_user)* + )? + ) + ; + +policy_name + : identifier + ; + +// https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_4007.htm#SQLRF01107 +// https://docs.oracle.com/database/121/SQLRF/statements_4007.htm#SQLRF01107 + +audit_traditional + : AUDIT ( + audit_operation_clause (auditing_by_clause | IN SESSION CURRENT)? + | audit_schema_object_clause + | NETWORK + | audit_direct_path + ) (BY (SESSION | ACCESS))? (WHENEVER NOT? SUCCESSFUL)? audit_container_clause? + ; + +audit_direct_path + : {this.isVersion12()}? DIRECT_PATH auditing_by_clause + ; + +audit_container_clause + : {this.isVersion12()}? (CONTAINER EQUALS_OP (CURRENT | ALL)) + ; + +audit_operation_clause + : ( + (sql_statement_shortcut | ALL STATEMENTS?) (',' (sql_statement_shortcut | ALL STATEMENTS?))* + | (system_privilege | ALL PRIVILEGES) (',' (system_privilege | ALL PRIVILEGES))* + ) + ; + +auditing_by_clause + : BY audit_user (',' audit_user)* + ; + +audit_user + : regular_id + ; + +audit_schema_object_clause + : (sql_operation (',' sql_operation)* | ALL) auditing_on_clause + ; + +sql_operation + : ALTER + | AUDIT + | COMMENT + | DELETE + | EXECUTE + | FLASHBACK + | GRANT + | INDEX + | INSERT + | LOCK + | READ + | RENAME + | SELECT + | UPDATE + ; + +auditing_on_clause + : ON ( + object_name + | DIRECTORY regular_id + | MINING MODEL model_name + | {this.isVersion12()}? SQL TRANSLATION PROFILE profile_name + | DEFAULT + ) + ; + +model_name + : (id_expression '.')? id_expression + ; + +object_name + : (id_expression '.')? id_expression + ; + +profile_name + : (id_expression '.')? id_expression + ; + +sql_statement_shortcut + : ALTER SYSTEM + | CLUSTER + | CONTEXT + | DATABASE LINK + | DIMENSION + | DIRECTORY + | INDEX + | MATERIALIZED VIEW + | NOT EXISTS + | OUTLINE + | {this.isVersion12()}? PLUGGABLE DATABASE + | PROCEDURE + | PROFILE + | PUBLIC DATABASE LINK + | PUBLIC SYNONYM + | ROLE + | ROLLBACK SEGMENT + | SEQUENCE + | SESSION + | SYNONYM + | SYSTEM AUDIT + | SYSTEM GRANT + | TABLE + | TABLESPACE + | TRIGGER + | TYPE + | USER + | VIEW + | ALTER SEQUENCE + | ALTER TABLE + | COMMENT TABLE + | DELETE TABLE + | EXECUTE PROCEDURE + | GRANT DIRECTORY + | GRANT PROCEDURE + | GRANT SEQUENCE + | GRANT TABLE + | GRANT TYPE + | INSERT TABLE + | LOCK TABLE + | SELECT SEQUENCE + | SELECT TABLE + | UPDATE TABLE + ; + +drop_index + : DROP INDEX index_name (IF EXISTS)? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DISASSOCIATE-STATISTICS.html +disassociate_statistics + : DISASSOCIATE STATISTICS FROM ( + COLUMNS (schema_name '.')? tb = id_expression '.' c = id_expression ( + ',' (schema_name '.')? tb = id_expression '.' c = id_expression + )* + | FUNCTIONS (schema_name '.')? fn = id_expression ( + ',' (schema_name '.')? fn = id_expression + )* + | PACKAGES (schema_name '.')? pkg = id_expression ( + ',' (schema_name '.')? pkg = id_expression + )* + | TYPES (schema_name '.')? t = id_expression (',' (schema_name '.')? t = id_expression)* + | INDEXES (schema_name '.')? ix = id_expression (',' (schema_name '.')? ix = id_expression)* + | INDEXTYPES (schema_name '.')? it = id_expression ( + ',' (schema_name '.')? it = id_expression + )* + ) FORCE? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-INDEXTYPE.html +drop_indextype + : DROP INDEXTYPE (schema_name '.')? it = id_expression FORCE? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-INMEMORY-JOIN-GROUP.html +drop_inmemory_join_group + : DROP INMEMORY JOIN GROUP (schema_name '.')? jg = id_expression + ; + +flashback_table + : FLASHBACK TABLE tableview_name (',' tableview_name)* TO ( + ((SCN | TIMESTAMP) expression | RESTORE POINT restore_point) ((ENABLE | DISABLE) TRIGGERS)? + | BEFORE DROP (RENAME TO tableview_name)? + ) + ; + +restore_point + : identifier ('.' id_expression)* + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/PURGE.html +purge_statement + : PURGE ( + (TABLE | INDEX) id_expression + | TABLESPACE SET? ts = id_expression (USER u = id_expression)? + | RECYCLEBIN + | DBA_RECYCLEBIN + ) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/NOAUDIT-Traditional-Auditing.html +noaudit_statement + : NOAUDIT ( + audit_operation_clause auditing_by_clause? + | audit_schema_object_clause + | NETWORK + | DIRECT_PATH LOAD auditing_by_clause? + ) (WHENEVER NOT? SUCCESSFUL)? container_clause? + ; + +rename_object + : RENAME object_name TO object_name + ; + +grant_statement + : GRANT (','? (role_name | system_privilege | object_privilege paren_column_list?))+ ( + ON grant_object_name + )? TO (grantee_name | PUBLIC) (',' (grantee_name | PUBLIC))* (WITH (ADMIN | DELEGATE) OPTION)? ( + WITH HIERARCHY OPTION + )? (WITH GRANT OPTION)? container_clause? + ; + +container_clause + : CONTAINER EQUALS_OP (CURRENT | ALL) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/REVOKE.html +revoke_statement + : REVOKE ( + (revoke_system_privilege | revoke_object_privileges) container_clause? + | revoke_roles_from_programs + ) + ; + +revoke_system_privilege + : (system_privilege | role_name | ALL PRIVILEGES) FROM revokee_clause + ; + +revokee_clause + : (id_expression | PUBLIC) (',' (id_expression | PUBLIC))* + ; + +revoke_object_privileges + : (object_privilege | ALL PRIVILEGES?) (',' (object_privilege | ALL PRIVILEGES?))* on_object_clause FROM revokee_clause ( + CASCADE CONSTRAINTS + | FORCE + )? + ; + +on_object_clause + : ON ( + (schema_name '.')? o = id_expression + | USER id_expression (',' id_expression)* + | DIRECTORY directory_name + | EDITION edition_name + | MINING MODEL (schema_name '.')? mmn = id_expression + | JAVA (SOURCE | RESOURCE) (schema_name '.')? o2 = id_expression + | SQL TRANSLATION PROFILE (schema_name '.')? p = id_expression + ) + ; + +revoke_roles_from_programs + : (role_name (',' role_name)* | ALL) FROM program_unit (',' program_unit)* + ; + +program_unit + : (FUNCTION | PROCEDURE | PACKAGE) (schema_name '.')? id_expression + ; + +create_dimension + : CREATE DIMENSION identifier level_clause+ ( + hierarchy_clause + | attribute_clause + | extended_attribute_clause + )+ + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-DIRECTORY.html +create_directory + : CREATE (OR REPLACE)? DIRECTORY directory_name (SHARING '=' (METADATA | NONE))? AS directory_path + ; + +directory_name + : regular_id + ; + +directory_path + : CHAR_STRING + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-INMEMORY-JOIN-GROUP.html +create_inmemory_join_group + : CREATE INMEMORY JOIN GROUP (schema_name '.')? jg = id_expression '(' (schema_name '.')? t = id_expression '(' c = id_expression ')' ( + ',' (schema_name '.')? t = id_expression '(' c = id_expression ')' + )+ ')' + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-HIERARCHY.html +drop_hierarchy + : DROP HIERARCHY (schema_name '.')? hn = id_expression + ; + +// https://docs.oracle.com/cd/E11882_01/appdev.112/e25519/alter_library.htm#LNPLS99946 +// https://docs.oracle.com/database/121/LNPLS/alter_library.htm#LNPLS99946 +alter_library + : ALTER LIBRARY library_name ( + COMPILE library_debug? compiler_parameters_clause* (REUSE SETTINGS)? + | library_editionable + ) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-JAVA.html +drop_java + : DROP JAVA (SOURCE | CLASS | RESOURCE) (schema_name '.')? id_expression + ; + +drop_library + : DROP LIBRARY library_name + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-JAVA.html +create_java + : CREATE (OR REPLACE)? (AND (RESOLVE | COMPILE))? NOFORCE? JAVA ( + (SOURCE | RESOURCE) NAMED (schema_name '.')? pn = id_expression + | CLASS (SCHEMA id_expression)? + ) (SHARING '=' (METADATA | NONE))? invoker_rights_clause? ( + RESOLVER '(' ('(' CHAR_STRING ','? (sn = id_expression | '-') ')')+ ')' + )? ( + USING ( + BFILE '(' d = id_expression ',' filename ')' + | (CLOB | BLOB | BFILE) subquery + | CHAR_STRING + ) + | AS CHAR_STRING + ) + ; + +create_library + : CREATE (OR REPLACE)? (EDITIONABLE | NONEDITIONABLE)? LIBRARY plsql_library_source + ; + +plsql_library_source + : library_name (IS | AS) quoted_string (IN directory_name)? (AGENT quoted_string)? ( + CREDENTIAL credential_name + )? + ; + +credential_name + : (id_expression '.')? id_expression + ; + +library_editionable + : {this.isVersion12()}? (EDITIONABLE | NONEDITIONABLE) + ; + +library_debug + : {this.isVersion12()}? DEBUG + ; + +compiler_parameters_clause + : parameter_name EQUALS_OP parameter_value + ; + +parameter_value + : regular_id + | CHAR_STRING + ; + +library_name + : (regular_id '.')? regular_id + ; + +alter_dimension + : ALTER DIMENSION identifier ( + (ADD (level_clause | hierarchy_clause | attribute_clause | extended_attribute_clause))+ + | ( + DROP ( + LEVEL identifier (RESTRICT | CASCADE)? + | HIERARCHY identifier + | ATTRIBUTE identifier ( + LEVEL identifier (COLUMN column_name (',' COLUMN column_name)*)? + )? + ) + )+ + | COMPILE + ) + ; + +level_clause + : LEVEL identifier IS ( + table_name '.' column_name + | '(' table_name '.' column_name (',' table_name '.' column_name)* ')' + ) (SKIP_ WHEN NULL_)? + ; + +hierarchy_clause + : HIERARCHY identifier '(' identifier (CHILD OF identifier)+ dimension_join_clause? ')' + ; + +dimension_join_clause + : (JOIN KEY column_one_or_more_sub_clause REFERENCES identifier)+ + ; + +attribute_clause + : (ATTRIBUTE identifier DETERMINES column_one_or_more_sub_clause)+ + ; + +extended_attribute_clause + : ATTRIBUTE identifier (LEVEL identifier DETERMINES column_one_or_more_sub_clause)+ + ; + +column_one_or_more_sub_clause + : column_name + | '(' column_name (',' column_name)* ')' + ; + +// https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_4004.htm#SQLRF01104 +// https://docs.oracle.com/database/121/SQLRF/statements_4004.htm#SQLRF01104 +alter_view + : ALTER VIEW tableview_name ( + ADD out_of_line_constraint + | MODIFY CONSTRAINT constraint_name (RELY | NORELY) + | DROP ( + CONSTRAINT constraint_name + | PRIMARY KEY + | UNIQUE '(' column_name (',' column_name)* ')' + ) + | COMPILE + | READ (ONLY | WRITE) + | alter_view_editionable? + ) + ; + +alter_view_editionable + : {this.isVersion12()}? (EDITIONABLE | NONEDITIONABLE) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-VIEW.html +create_view + : CREATE (OR REPLACE)? (NO? FORCE)? editioning_clause? VIEW (schema_name '.')? v = id_expression ( + IF NOT EXISTS + )? (SHARING '=' (METADATA | EXTENDED? DATA | NONE))? view_options? ( + DEFAULT COLLATION cn = id_expression + )? (BEQUEATH (CURRENT_USER | DEFINER))? AS select_only_statement subquery_restriction_clause? ( + CONTAINER_MAP + | CONTAINERS_DEFAULT + )? + ; + +editioning_clause + : EDITIONING + | EDITIONABLE EDITIONING? + | NONEDITIONABLE + ; + +view_options + : view_alias_constraint + | object_view_clause + | xmltype_view_clause + ; + +view_alias_constraint + : '(' (','? (table_alias inline_constraint* | out_of_line_constraint))+ ')' + ; + +object_view_clause + : OF (schema_name '.')? tn = id_expression ( + WITH OBJECT (IDENTIFIER | ID) (DEFAULT | '(' REGULAR_ID (',' REGULAR_ID)* ')') + | UNDER (schema_name '.')? sv = id_expression + ) ('(' (','? (out_of_line_constraint | REGULAR_ID inline_constraint))+ ')')* + ; + +inline_constraint + : (CONSTRAINT constraint_name)? ( + NOT? NULL_ + | UNIQUE + | PRIMARY KEY + | references_clause + | check_constraint + ) constraint_state? + ; + +inline_ref_constraint + : SCOPE IS tableview_name + | WITH ROWID + | (CONSTRAINT constraint_name)? references_clause constraint_state? + ; + +out_of_line_ref_constraint + : SCOPE FOR '(' ref_col_or_attr = regular_id ')' IS tableview_name + | REF '(' ref_col_or_attr = regular_id ')' WITH ROWID + | (CONSTRAINT constraint_name)? FOREIGN KEY '(' (','? ref_col_or_attr = regular_id)+ ')' references_clause constraint_state? + ; + +out_of_line_constraint + : ( + ((CONSTRAINT | CONSTRAINTS) constraint_name)? ( + UNIQUE '(' column_name (',' column_name)* ')' + | PRIMARY KEY '(' column_name (',' column_name)* ')' + | foreign_key_clause + | CHECK '(' condition ')' + ) + ) + constraint_state? + parallel_clause? + ; + +constraint_state + : ( + NOT? DEFERRABLE + | INITIALLY (IMMEDIATE | DEFERRED) + | (RELY | NORELY) + | (ENABLE | DISABLE) + | (VALIDATE | NOVALIDATE) + | using_index_clause + )+ + ; + +xmltype_view_clause + : OF XMLTYPE xml_schema_spec? WITH OBJECT (IDENTIFIER | ID) ( + DEFAULT + | '(' expression (',' expression)* ')' + ) + ; + +xml_schema_spec + : (XMLSCHEMA xml_schema_url)? ELEMENT (element | xml_schema_url '#' element) ( + STORE ALL VARRAYS AS (LOBS | TABLES) + )? (allow_or_disallow NONSCHEMA)? (allow_or_disallow ANYSCHEMA)? + ; + +xml_schema_url + : DELIMITED_ID + ; + +element + : DELIMITED_ID + ; + +alter_tablespace + : ALTER TABLESPACE tablespace ( + DEFAULT table_compression? storage_clause? + | MINIMUM EXTENT size_clause + | RESIZE size_clause + | COALESCE + | SHRINK SPACE_KEYWORD (KEEP size_clause)? + | RENAME TO new_tablespace_name + | begin_or_end BACKUP + | datafile_tempfile_clauses + | tablespace_logging_clauses + | tablespace_group_clause + | tablespace_state_clauses + | autoextend_clause + | flashback_mode_clause + | tablespace_retention_clause + ) + ; + +datafile_tempfile_clauses + : ADD (datafile_specification | tempfile_specification) + | DROP (DATAFILE | TEMPFILE) (filename | UNSIGNED_INTEGER) (KEEP size_clause)? + | SHRINK TEMPFILE (filename | UNSIGNED_INTEGER) (KEEP size_clause)? + | RENAME DATAFILE filename (',' filename)* TO filename (',' filename)* + | (DATAFILE | TEMPFILE) (online_or_offline) + ; + +tablespace_logging_clauses + : logging_clause + | NO? FORCE LOGGING + ; + +tablespace_group_clause + : TABLESPACE GROUP (tablespace_group_name | CHAR_STRING) + ; + +tablespace_group_name + : regular_id + ; + +tablespace_state_clauses + : ONLINE + | OFFLINE (NORMAL | TEMPORARY | IMMEDIATE)? + | READ (ONLY | WRITE) + | PERMANENT + | TEMPORARY + ; + +flashback_mode_clause + : FLASHBACK (ON | OFF) + ; + +new_tablespace_name + : tablespace + ; + +create_tablespace + : CREATE (BIGFILE | SMALLFILE)? ( + permanent_tablespace_clause + | temporary_tablespace_clause + | undo_tablespace_clause + ) + ; + +permanent_tablespace_clause + : TABLESPACE id_expression (IF NOT EXISTS)? datafile_specification? ( + MINIMUM EXTENT size_clause + | BLOCKSIZE size_clause + | logging_clause + | FORCE LOGGING + | (ONLINE | OFFLINE) + | ENCRYPTION tablespace_encryption_spec + | DEFAULT //TODO table_compression? storage_clause? + | extent_management_clause + | segment_management_clause + | flashback_mode_clause + )* + ; + +tablespace_encryption_spec + : USING encrypt_algorithm = CHAR_STRING + ; + +logging_clause + : LOGGING + | NOLOGGING + | FILESYSTEM_LIKE_LOGGING + ; + +extent_management_clause + : EXTENT MANAGEMENT LOCAL (AUTOALLOCATE | UNIFORM (SIZE size_clause)?)? + ; + +segment_management_clause + : SEGMENT SPACE_KEYWORD MANAGEMENT (AUTO | MANUAL) + ; + +temporary_tablespace_clause + : TEMPORARY TABLESPACE tablespace_name = id_expression (IF NOT EXISTS)? tempfile_specification? tablespace_group_clause? extent_management_clause? + ; + +undo_tablespace_clause + : UNDO TABLESPACE tablespace_name = id_expression (IF NOT EXISTS)? datafile_specification? extent_management_clause? tablespace_retention_clause? + ; + +tablespace_retention_clause + : RETENTION (GUARANTEE | NOGUARANTEE) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-TABLESPACE-SET.html +create_tablespace_set + : CREATE TABLESPACE SET tss = id_expression (IN SHARDSPACE ss = id_expression)? ( + USING TEMPLATE '(' (DATAFILE file_specification (',' file_specification)*)? permanent_tablespace_attrs+ ')' + )? + ; + +permanent_tablespace_attrs + : MINIMUM EXTENT size_clause + | BLOCKSIZE numeric K_LETTER? + | logging_clause + | FORCE LOGGING + | tablespace_encryption_clause + | default_tablespace_params + | ONLINE + | OFFLINE + | extent_management_clause + | segment_management_clause + | flashback_mode_clause + | lost_write_protection + ; + +tablespace_encryption_clause + : ENCRYPTION (tablespace_encryption_spec? ENCRYPT | DECRYPT) + ; + +default_tablespace_params + : DEFAULT default_table_compression? default_index_compression? inmmemory_clause? ilm_clause? storage_clause? + ; + +default_table_compression + : TABLE (COMPRESS FOR (OLTP | QUERY low_high | ARCHIVE low_high) | NOCOMPRESS) + ; + +low_high + : LOW + | HIGH + ; + +default_index_compression + : INDEX (COMPRESS ADVANCED low_high | NOCOMPRESS) + ; + +inmmemory_clause + : INMEMORY inmemory_attributes? ( + TEXT ( + column_name (',' column_name)* + | column_name USING policy_name (',' column_name USING policy_name)* + ) + )? + | NO INMEMORY + ; + +// asm_filename is just a charater string. Would need to parse the string +// to find diskgroup... +datafile_specification + : DATAFILE (','? datafile_tempfile_spec) + ; + +tempfile_specification + : TEMPFILE (','? datafile_tempfile_spec) + ; + +datafile_tempfile_spec + : CHAR_STRING? (SIZE size_clause)? REUSE? autoextend_clause? + ; + +redo_log_file_spec + : (filename | '(' filename (',' filename)* ')') (SIZE size_clause)? (BLOCKSIZE size_clause)? REUSE? + ; + +autoextend_clause + : AUTOEXTEND (OFF | ON (NEXT size_clause)? maxsize_clause?) + ; + +maxsize_clause + : MAXSIZE (UNLIMITED | size_clause) + ; + +build_clause + : BUILD (IMMEDIATE | DEFERRED) + ; + +parallel_clause + : NOPARALLEL + | PARALLEL ( + parallel_count = UNSIGNED_INTEGER parallel_instances_clause? + // Deprecated, legacy format from Oracle 8 and prior, and while this is no longer documented, + // the DEGREE syntax continues to be accepted by the database engine. + | '(' DEGREE parallel_count = UNSIGNED_INTEGER parallel_instances_clause? ')' + )? + ; + +// This is Oracle RAC specific. +// In modern Oracle, parallelism is controlled by the database initialization parameter PARALLEL_DEGREE_POLICY, +// however, the database continues to accept and record this SQL syntax if its used. +parallel_instances_clause + : INSTANCES (UNSIGNED_INTEGER | DEFAULT) + ; + +alter_materialized_view + : ALTER MATERIALIZED VIEW tableview_name ( + physical_attributes_clause + | modify_mv_column_clause + | table_compression + | lob_storage_clause (',' lob_storage_clause)* + | modify_lob_storage_clause (',' modify_lob_storage_clause)* + //TODO | alter_table_partitioning + | parallel_clause + | logging_clause + | allocate_extent_clause + | deallocate_unused_clause + | shrink_clause + | (cache_or_nocache) + )? alter_iot_clauses? (USING INDEX physical_attributes_clause)? alter_mv_option1? ( + enable_or_disable QUERY REWRITE + | COMPILE + | CONSIDER FRESH + )? + ; + +alter_mv_option1 + : alter_mv_refresh + //TODO | MODIFY scoped_table_ref_constraint + ; + +alter_mv_refresh + : REFRESH ( + FAST + | COMPLETE + | FORCE + | ON (DEMAND | COMMIT) + | START WITH expression + | NEXT expression + | WITH PRIMARY KEY + | USING DEFAULT? MASTER ROLLBACK SEGMENT rollback_segment? + | USING (ENFORCED | TRUSTED) CONSTRAINTS + )+ + ; + +rollback_segment + : regular_id + ; + +modify_mv_column_clause + : MODIFY '(' column_name (ENCRYPT encryption_spec | DECRYPT)? ')' + ; + +alter_materialized_view_log + : ALTER MATERIALIZED VIEW LOG FORCE? ON tableview_name ( + physical_attributes_clause + | add_mv_log_column_clause + //TODO | alter_table_partitioning + | parallel_clause + | logging_clause + | allocate_extent_clause + | shrink_clause + | move_mv_log_clause + | cache_or_nocache + )? mv_log_augmentation? mv_log_purge_clause? + ; + +add_mv_log_column_clause + : ADD '(' column_name ')' + ; + +move_mv_log_clause + : MOVE segment_attributes_clause parallel_clause? + ; + +mv_log_augmentation + : ADD ( + (OBJECT ID | PRIMARY KEY | ROWID | SEQUENCE) ('(' column_name (',' column_name)* ')')? + | '(' column_name (',' column_name)* ')' + ) new_values_clause? + ; + +create_materialized_view_log + : CREATE MATERIALIZED VIEW LOG ON tableview_name ( + ( + physical_attributes_clause + | TABLESPACE tablespace_name = id_expression + | logging_clause + | (CACHE | NOCACHE) + )+ + )? parallel_clause? + // table_partitioning_clauses TODO + ( + WITH (','? ( OBJECT ID | PRIMARY KEY | ROWID | SEQUENCE | COMMIT SCN))* ( + '(' ( ','? regular_id)+ ')' new_values_clause? + )? mv_log_purge_clause? + )* + ; + +new_values_clause + : (INCLUDING | EXCLUDING) NEW VALUES + ; + +mv_log_purge_clause + : PURGE ( + IMMEDIATE (SYNCHRONOUS | ASYNCHRONOUS)? + // |START WITH CLAUSES TODO + ) + ; + +create_materialized_zonemap + : CREATE MATERIALIZED ZONEMAP zonemap_name (LEFT_PAREN column_list RIGHT_PAREN)? zonemap_attributes? zonemap_refresh_clause? ( + (ENABLE | DISABLE) PRUNING + )? (create_zonemap_on_table | create_zonemap_as_subquery) + ; + +alter_materialized_zonemap + : ALTER MATERIALIZED ZONEMAP zonemap_name ( + zonemap_attributes + | zonemap_refresh_clause + | (ENABLE | DISABLE) PRUNING + | COMPILE + | REBUILD + | UNUSABLE + ) + ; + +drop_materialized_zonemap + : DROP MATERIALIZED ZONEMAP zonemap_name + ; + +zonemap_refresh_clause + : REFRESH (FAST | COMPILE | FORCE)? ( + ON (DEMAND | COMMIT | LOAD | DATA MOVEMENT | LOAD DATA MOVEMENT) + )? + ; + +zonemap_attributes + : ( + PCTFREE numeric + | PCTUSED numeric + | SCALE numeric + | TABLESPACE tablespace + | (CACHE | NOCACHE) + )+ + ; + +zonemap_name + : identifier ('.' id_expression)? + ; + +operator_name + : identifier ('.' id_expression)? + ; + +operator_function_name + : identifier ('.' id_expression)* + ; + +create_zonemap_on_table + : ON tableview_name LEFT_PAREN column_list RIGHT_PAREN + ; + +create_zonemap_as_subquery + : AS subquery + ; + +alter_operator + : ALTER OPERATOR operator_name (add_binding_clause | drop_binding_clause | COMPILE) + ; + +drop_operator + : DROP OPERATOR operator_name FORCE? + ; + +create_operator + : CREATE (OR REPLACE)? OPERATOR operator_name BINDING binding_clause (COMMA binding_clause)* ( + SHARING '=' (METADATA | NONE) + )? + ; + +binding_clause + : LEFT_PAREN datatype (COMMA datatype)* RIGHT_PAREN RETURN LEFT_PAREN? datatype RIGHT_PAREN? implementation_clause? using_function_clause + ; + +add_binding_clause + : ADD BINDING binding_clause + ; + +implementation_clause + : ANCILLARY TO primary_operator_list + | operator_context_clause + ; + +primary_operator_list + : primary_operator_item (COMMA primary_operator_item)* + ; + +primary_operator_item + : schema_object_name LEFT_PAREN datatype (COMMA datatype)* RIGHT_PAREN + ; + +operator_context_clause + : WITH INDEX CONTEXT COMMA SCAN CONTEXT implementation_type_name (COMPUTE ANCILLARY DATA)? ( + WITH COLUMN CONTEXT + )? + ; + +using_function_clause + : USING operator_function_name + ; + +drop_binding_clause + : DROP BINDING LEFT_PAREN datatype (COMMA datatype)* RIGHT_PAREN FORCE? + ; + +create_materialized_view + : CREATE MATERIALIZED VIEW tableview_name (OF type_name)? ( + '(' (scoped_table_ref_constraint | mv_column_alias) ( + ',' (scoped_table_ref_constraint | mv_column_alias) + )* ')' + )? ( + ON PREBUILT TABLE ( (WITH | WITHOUT) REDUCED PRECISION)? + | physical_properties? (CACHE | NOCACHE)? parallel_clause? build_clause? + ) ( + USING INDEX ((physical_attributes_clause | TABLESPACE mv_tablespace = id_expression)+)* + | USING NO INDEX + )? create_mv_refresh? (FOR UPDATE)? ((DISABLE | ENABLE) QUERY REWRITE)? AS select_only_statement + ; + +scoped_table_ref_constraint + : SCOPE FOR '(' ref_column_or_attribute = identifier ')' IS (schema_name '.')? scope_table_name_or_c_alias = identifier + ; + +mv_column_alias + : (identifier | quoted_string) (ENCRYPT encryption_spec)? + ; + +create_mv_refresh + : ( + NEVER REFRESH + | REFRESH ( + (FAST | COMPLETE | FORCE) + | ON (DEMAND | COMMIT) + | (START WITH | NEXT) //date goes here TODO + | WITH (PRIMARY KEY | ROWID) + | USING ( + DEFAULT (MASTER | LOCAL)? ROLLBACK SEGMENT + | (MASTER | LOCAL)? ROLLBACK SEGMENT rb_segment = REGULAR_ID + ) + | USING (ENFORCED | TRUSTED) CONSTRAINTS + )+ + ) + ; + +drop_materialized_view + : DROP MATERIALIZED VIEW tableview_name (PRESERVE TABLE)? + ; + +drop_materialized_view_log + : DROP MATERIALIZED VIEW LOG (IF EXISTS)? ON tableview_name + ; + +create_context + : CREATE (OR REPLACE)? CONTEXT oracle_namespace USING (schema_object_name '.')? package_name ( + INITIALIZED (EXTERNALLY | GLOBALLY) + | ACCESSED GLOBALLY + )? + ; + +oracle_namespace + : id_expression + ; + +//https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_5001.htm#SQLRF01201 +create_cluster + : CREATE CLUSTER cluster_name '(' column_name datatype SORT? (',' column_name datatype SORT?)* ')' ( + physical_attributes_clause + | SIZE size_clause + | TABLESPACE tablespace + | INDEX + | (SINGLE TABLE)? HASHKEYS UNSIGNED_INTEGER (HASH IS expression)? + )* parallel_clause? (ROWDEPENDENCIES | NOROWDEPENDENCIES)? (CACHE | NOCACHE)? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-PROFILE.html +create_profile + : CREATE MANDATORY? PROFILE p = id_expression LIMIT (resource_parameters | password_parameters)+ container_clause? + ; + +resource_parameters + : ( + SESSIONS_PER_USER + | CPU_PER_SESSION + | CPU_PER_CALL + | CONNECT_TIME + | IDLE_TIME + | LOGICAL_READS_PER_SESSION + | LOGICAL_READS_PER_CALL + | COMPOSITE_LIMIT + ) (UNSIGNED_INTEGER | UNLIMITED | DEFAULT) + | PRIVATE_SGA (size_clause | UNLIMITED | DEFAULT) + ; + +password_parameters + : ( + FAILED_LOGIN_ATTEMPTS + | PASSWORD_LIFE_TIME + | PASSWORD_REUSE_TIME + | PASSWORD_REUSE_MAX + | PASSWORD_LOCK_TIME + | PASSWORD_GRACE_TIME + | INACTIVE_ACCOUNT_TIME + ) (expression | UNLIMITED | DEFAULT) + | PASSWORD_VERIFY_FUNCTION (function_name | NULL_ | DEFAULT) + | PASSWORD_ROLLOVER_TIME (expression | DEFAULT) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-LOCKDOWN-PROFILE.html +create_lockdown_profile + : CREATE LOCKDOWN PROFILE id_expression (static_base_profile | dynamic_base_profile)? + ; + +static_base_profile + : FROM bp = id_expression + ; + +dynamic_base_profile + : INCLUDING bp = id_expression + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-OUTLINE.html +create_outline + : CREATE (OR REPLACE)? (PUBLIC | PRIVATE)? OUTLINE (o = id_expression)? ( + FROM (PUBLIC | PRIVATE)? so = id_expression + )? (FOR CATEGORY c = id_expression)? (ON statement)? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-RESTORE-POINT.html +create_restore_point + : CREATE CLEAN? RESTORE POINT rp = id_expression (FOR PLUGGABLE DATABASE pdb = id_expression)? ( + AS OF (TIMESTAMP | SCN) expression + )? (PRESERVE | GUARANTEE FLASHBACK DATABASE)? + ; + +create_role + : CREATE ROLE role_name role_identified_clause? container_clause? + ; + +create_table + : CREATE ( + (GLOBAL | PRIVATE) TEMPORARY + | SHARDED + | DUPLICATED + | IMMUTABLE? BLOCKCHAIN + | IMMUTABLE + )? TABLE (schema_name '.')? table_name (IF NOT EXISTS)? ( + SHARING '=' (METADATA | EXTENDED? DATA | NONE) + )? (relational_table | xmltype_table | object_table) memoptimize_read_write_clause? ( + PARENT tableview_name + )? (USAGE QUEUE)? + ; + +xmltype_table + : OF XMLTYPE ('(' object_properties ')')? (XMLTYPE xmltype_storage)? xmlschema_spec? xmltype_virtual_columns? ( + ON COMMIT (DELETE | PRESERVE) ROWS + )? oid_clause? oid_index_clause? physical_properties? table_properties? + ; + +xmltype_virtual_columns + : VIRTUAL COLUMNS '(' column_name AS '(' expression ')' (',' column_name AS '(' expression ')')* ')' + ; + +xmltype_column_properties + : XMLTYPE COLUMN? column_name xmltype_storage? xmlschema_spec? + ; + +xmltype_storage + : STORE AS ( + OBJECT RELATIONAL + | (SECUREFILE | BASICFILE)? (CLOB | BINARY XML) ( + lob_segname ('(' lob_parameters ')')? + | '(' lob_parameters ')' + )? + ) + | STORE VARRAYS AS (LOBS | TABLES) + ; + +xmlschema_spec + : (XMLSCHEMA DELIMITED_ID)? ELEMENT DELIMITED_ID (allow_or_disallow NONSCHEMA)? ( + allow_or_disallow ANYSCHEMA + )? + ; + +object_table + : OF (schema_name '.')? object_type object_table_substitution? ( + '(' object_properties (',' object_properties)* ')' + )? (ON COMMIT (DELETE | PRESERVE) ROWS)? oid_clause? oid_index_clause? physical_properties? table_properties? + ; + +object_type + : regular_id + ; + +oid_index_clause + : OIDINDEX index_name? '(' (physical_attributes_clause | TABLESPACE tablespace)+ ')' + ; + +oid_clause + : OBJECT IDENTIFIER IS (SYSTEM GENERATED | PRIMARY KEY) + ; + +object_properties + : (column_name | attribute_name) (DEFAULT expression)? ( + inline_constraint (',' inline_constraint)* + | inline_ref_constraint + )? + | out_of_line_constraint + | out_of_line_ref_constraint + | supplemental_logging_props + ; + +object_table_substitution + : NOT? SUBSTITUTABLE AT ALL LEVELS + ; + +relational_table + : ('(' relational_property (',' relational_property)* ')')? relational_table_properties? + ; + +relational_table_properties + : relational_table_property+ + ; + +relational_table_property + : immutable_table_clauses + | blockchain_table_clauses + | DEFAULT COLLATION collation_name + | ON COMMIT ((DROP | PRESERVE) DEFINITION | (DELETE | PRESERVE) ROWS) + | physical_properties + | table_properties + ; + +immutable_table_clauses + : immutable_table_no_drop_clause + | immutable_table_no_delete_clause + ; + +immutable_table_no_drop_clause + : NO DROP (UNTIL numeric DAYS IDLE)? + ; + +immutable_table_no_delete_clause + : NO DELETE (LOCKED? | UNTIL numeric DAYS AFTER INSERT LOCKED?) + ; + +blockchain_table_clauses + : blockchain_drop_table_clause blockchain_row_retention_clause blockchain_hash_and_data_format_clause + ; + +blockchain_drop_table_clause + : NO DROP (UNTIL numeric DAYS IDLE)? + ; + +blockchain_row_retention_clause + : NO DELETE (LOCKED? | UNTIL numeric DAYS AFTER INSERT LOCKED?) + ; + +blockchain_hash_and_data_format_clause + : HASHING USING SHA2_512_Q VERSION V1_Q + ; + +collation_name + : identifier + ; + +// While Oracle's documented grammar defines an explicit order of clauses, in practice these clauses can +// be specified in any order. This rule is designed to follow the grammar intent, and so semantic checks +// should exist in the listeners to deal with concepts such as duplicates. +table_properties + : column_properties + | read_only_clause + | indexing_clause + | table_partitioning_clauses + | attribute_clustering_clause + | (CACHE | NOCACHE) + | result_cache_clause + | parallel_clause + | monitoring_nomonitoring + | (ROWDEPENDENCIES | NOROWDEPENDENCIES) + | enable_disable_clause + | row_movement_clause + | logical_replication_clause + | flashback_archive_clause + | physical_properties + | ROW ARCHIVAL + | AS select_only_statement + | FOR EXCHANGE WITH TABLE (schema_name '.')? table_name + | annotations_clause + ; + +read_only_clause + : READ (ONLY | WRITE) + ; + +indexing_clause + : INDEXING (ON | OFF) + ; + +attribute_clustering_clause + : CLUSTERING clustering_join? cluster_clause (yes_no? ON LOAD)? (yes_no? ON DATA MOVEMENT)? zonemap_clause? + ; + +clustering_join + : (schema_name '.')? table_name clustering_join_item (',' clustering_join_item)* + ; + +clustering_join_item + : JOIN (schema_name '.')? table_name ON '(' equijoin_condition ')' + ; + +equijoin_condition + : expression + ; + +cluster_clause + : BY (LINEAR | INTERLEAVED)? ORDER clustering_columns + ; + +clustering_columns + : clustering_column_group + | '(' clustering_column_group (',' clustering_column_group)* ')' + ; + +clustering_column_group + : '(' column_name (',' column_name)* ')' + ; + +yes_no + : YES + | NO + ; + +zonemap_clause + : WITH MATERIALIZED ZONEMAP ('(' zonemap_name ')')? + | WITHOUT MATERIALIZED ZONEMAP + ; + +logical_replication_clause + : DISABLE LOGICAL REPLICATION + | ENABLE LOGICAL REPLICATION ( + (ALL | ALLOW NOVALIDATE) KEYS + | NO? PARTIAL JSON + )? + ; + +table_name + : identifier + ; + +relational_property + : out_of_line_constraint + | out_of_line_ref_constraint + | column_definition + | virtual_column_definition + | period_definition + | supplemental_logging_props + ; + +table_partitioning_clauses + : range_partitions + | list_partitions + | hash_partitions + | composite_range_partitions + | composite_list_partitions + | composite_hash_partitions + | reference_partitioning + | system_partitioning + ; + +range_partitions + : PARTITION BY RANGE '(' column_name (',' column_name)* ')' ( + INTERVAL '(' expression ')' (STORE IN '(' tablespace (',' tablespace)* ')')? + )? '(' PARTITION partition_name? range_values_clause table_partition_description ( + ',' PARTITION partition_name? range_values_clause table_partition_description + )* ')' + ; + +list_partitions + : PARTITION BY LIST '(' column_name ')' '(' PARTITION partition_name? list_values_clause table_partition_description ( + ',' PARTITION partition_name? list_values_clause table_partition_description + )* ')' + ; + +hash_partitions + : PARTITION BY HASH '(' column_name (',' column_name)* ')' ( + individual_hash_partitions + | hash_partitions_by_quantity + ) + ; + +individual_hash_partitions + : '(' PARTITION partition_name? partitioning_storage_clause? ( + ',' PARTITION partition_name? partitioning_storage_clause? + )* ')' + ; + +hash_partitions_by_quantity + : PARTITIONS hash_partition_quantity (STORE IN '(' tablespace (',' tablespace)* ')')? ( + table_compression + | key_compression + )? (OVERFLOW_ STORE IN '(' tablespace (',' tablespace)* ')')? + ; + +hash_partition_quantity + : UNSIGNED_INTEGER + ; + +composite_range_partitions + : PARTITION BY RANGE '(' column_name (',' column_name)* ')' ( + INTERVAL '(' expression ')' (STORE IN '(' tablespace (',' tablespace)* ')')? + )? (subpartition_by_range | subpartition_by_list | subpartition_by_hash) '(' range_partition_desc ( + ',' range_partition_desc + )* ')' + ; + +composite_list_partitions + : PARTITION BY LIST '(' column_name ')' ( + subpartition_by_range + | subpartition_by_list + | subpartition_by_hash + ) '(' list_partition_desc (',' list_partition_desc)* ')' + ; + +composite_hash_partitions + : PARTITION BY HASH '(' (',' column_name)+ ')' ( + subpartition_by_range + | subpartition_by_list + | subpartition_by_hash + ) (individual_hash_partitions | hash_partitions_by_quantity) + ; + +reference_partitioning + : PARTITION BY REFERENCE '(' constraint_name ')' ( + '(' reference_partition_desc (',' reference_partition_desc)* ')' + )? + ; + +reference_partition_desc + : PARTITION partition_name? table_partition_description + ; + +system_partitioning + : PARTITION BY SYSTEM ( + PARTITIONS UNSIGNED_INTEGER + | reference_partition_desc (',' reference_partition_desc)* + )? + ; + +range_partition_desc + : PARTITION partition_name? range_values_clause? table_partition_description ( + ( + '(' ( + range_subpartition_desc (',' range_subpartition_desc)* + | list_subpartition_desc (',' list_subpartition_desc)* + | individual_hash_subparts (',' individual_hash_subparts)* + ) ')' + | hash_subparts_by_quantity + ) + )? + ; + +list_partition_desc + : PARTITION partition_name? list_values_clause? table_partition_description ( + ( + '(' ( + range_subpartition_desc (',' range_subpartition_desc)* + | list_subpartition_desc (',' list_subpartition_desc)* + | individual_hash_subparts (',' individual_hash_subparts)* + ) ')' + | hash_subparts_by_quantity + ) + )? + ; + +subpartition_template + : SUBPARTITION TEMPLATE ( + ( + '(' ( + range_subpartition_desc (',' range_subpartition_desc)* + | list_subpartition_desc (',' list_subpartition_desc)* + | individual_hash_subparts (',' individual_hash_subparts)* + ) ')' + | hash_subpartition_quantity + ) + ) + ; + +hash_subpartition_quantity + : UNSIGNED_INTEGER + ; + +subpartition_by_range + : SUBPARTITION BY RANGE '(' column_name (',' column_name)* ')' subpartition_template? + ; + +subpartition_by_list + : SUBPARTITION BY LIST '(' column_name ')' subpartition_template? + ; + +subpartition_by_hash + : SUBPARTITION BY HASH '(' column_name (',' column_name)* ')' ( + SUBPARTITIONS UNSIGNED_INTEGER (STORE IN '(' tablespace (',' tablespace)* ')')? + | subpartition_template + )? + ; + +subpartition_name + : partition_name + ; + +range_subpartition_desc + : SUBPARTITION subpartition_name? range_values_clause partitioning_storage_clause? + ; + +list_subpartition_desc + : SUBPARTITION subpartition_name? list_values_clause partitioning_storage_clause? + ; + +individual_hash_subparts + : SUBPARTITION subpartition_name? partitioning_storage_clause? + ; + +hash_subparts_by_quantity + : SUBPARTITIONS UNSIGNED_INTEGER (STORE IN '(' tablespace (',' tablespace)* ')')? + ; + +range_values_clause + : VALUES LESS THAN '(' range_values_list ')' + ; + +range_values_list + : literal (',' literal)* + | TIMESTAMP literal (',' TIMESTAMP literal)* + ; + +list_values_clause + : VALUES '(' (literal (',' literal)* | TIMESTAMP literal (',' TIMESTAMP literal)* | DEFAULT) ')' + ; + +table_partition_description + : (INTERNAL | EXTERNAL)? deferred_segment_creation? read_only_clause? indexing_clause? segment_attributes_clause? ( + table_compression + | key_compression + )? inmemory_table_clause? ilm_clause? ( + OVERFLOW_ segment_attributes_clause? + )? (lob_storage_clause | varray_col_properties | nested_table_col_properties)* + ; + +partitioning_storage_clause + : ( + TABLESPACE tablespace + | OVERFLOW_ (TABLESPACE tablespace)? + | table_compression + | key_compression + | inmemory_table_clause + | lob_partitioning_storage + | VARRAY varray_item STORE AS (BASICFILE | SECUREFILE)? LOB lob_segname + )+ + ; + +lob_partitioning_storage + : LOB '(' lob_item ')' STORE AS (BASICFILE | SECUREFILE)? ( + lob_segname ('(' TABLESPACE tablespace ')')? + | '(' TABLESPACE tablespace ')' + ) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/size_clause.html +// Technically, this should only allow 'K' | 'M' | 'G' | 'T' | 'P' | 'E' +// but having issues with examples/numbers01.sql line 11 "sysdate -1m" +size_clause + : UNSIGNED_INTEGER (K_LETTER | M_LETTER | G_LETTER | T_LETTER | P_LETTER | E_LETTER)? + ; + +table_compression + : COMPRESS ( + BASIC + | FOR ( + OLTP + | (QUERY | ARCHIVE) (LOW | HIGH)? + | ALL OPERATIONS + | DIRECT_LOAD OPERATIONS + ) + )? + | ROW STORE COMPRESS (BASIC | ADVANCED)? + | COLUMN STORE COMPRESS (FOR (QUERY | ARCHIVE) (LOW | HIGH)?)? (NO? ROW LEVEL LOCKING)? + | NOCOMPRESS + ; + +// avoid to match an empty string in +inmemory_table_clause + : inmemory_column_clause+ + | (INMEMORY inmemory_attributes? | NO INMEMORY) inmemory_column_clause* + ; + +inmemory_attributes + : ( + inmemory_memcompress + | inmemory_priority + | inmemory_distribute + | inmemory_duplicate + )+ + ; + +inmemory_memcompress + : MEMCOMPRESS FOR (DML | (QUERY | CAPACITY) (LOW | HIGH)?) + | NO MEMCOMPRESS + ; + +inmemory_priority + : PRIORITY (NONE | LOW | MEDIUM | HIGH | CRITICAL) + ; + +inmemory_distribute + : DISTRIBUTE (AUTO | BY (ROWID RANGE | PARTITION | SUBPARTITION))? ( + FOR SERVICE (DEFAULT | ALL | identifier | NONE) + )? + ; + +inmemory_duplicate + : DUPLICATE ALL? + | NO DUPLICATE + ; + +inmemory_column_clause + : (INMEMORY inmemory_memcompress? | NO INMEMORY) '(' column_list ')' + ; + +physical_attributes_clause + : ( + PCTFREE pctfree = UNSIGNED_INTEGER + | PCTUSED pctused = UNSIGNED_INTEGER + | INITRANS inittrans = UNSIGNED_INTEGER + | MAXTRANS maxtrans = UNSIGNED_INTEGER + | storage_clause + | compute_clauses + )+ + ; + +storage_clause + : STORAGE '(' ( + INITIAL initial_size = size_clause + | NEXT next_size = size_clause + | MINEXTENTS minextents = (UNSIGNED_INTEGER | UNLIMITED) + | MAXEXTENTS minextents = (UNSIGNED_INTEGER | UNLIMITED) + | PCTINCREASE pctincrease = UNSIGNED_INTEGER + | FREELISTS freelists = UNSIGNED_INTEGER + | FREELIST GROUPS freelist_groups = UNSIGNED_INTEGER + | OPTIMAL (size_clause | NULL_) + | BUFFER_POOL (KEEP | RECYCLE | DEFAULT) + | FLASH_CACHE (KEEP | NONE | DEFAULT) + | CELL_FLASH_CACHE (KEEP | NONE | DEFAULT) + | ENCRYPT + )+ ')' + ; + +deferred_segment_creation + : SEGMENT CREATION (IMMEDIATE | DEFERRED) + ; + +segment_attributes_clause + : ( + physical_attributes_clause + | TABLESPACE (tablespace_name = id_expression | SET? identifier) + | table_compression + | logging_clause + )+ + ; + +physical_properties + : deferred_segment_creation + | segment_attributes_clause + | table_compression + | inmemory_table_clause + | ilm_clause + | ORGANIZATION ( + HEAP segment_attributes_clause? heap_org_table_clause + | INDEX segment_attributes_clause? index_org_table_clause? + | EXTERNAL external_table_clause + ) + | EXTERNAL PARTITION ATTRIBUTES external_table_clause (REJECT LIMIT)? + | CLUSTER cluster_name '(' column_name (',' column_name)* ')' + ; + +ilm_clause + : ILM ( + ADD POLICY ilm_policy_clause + | (DELETE | ENABLE | DISABLE) POLICY ilm_policy_clause + | DELETE_ALL + | ENABLE_ALL + | DISABLE_ALL + ) + ; + +ilm_policy_clause + : ilm_compression_policy + | ilm_tiering_policy + | ilm_inmemory_policy + ; + +ilm_compression_policy + : table_compression segment_group ilm_after_on + | ((ROW | COLUMN) STORE COMPRESS (ADVANCED | FOR QUERY)) ROW AFTER ilm_time_period OF NO MODIFICATION + ; + +ilm_tiering_policy + : TIER TO tablespace ( + segment_group? (ON function_name)? + | READ ONLY segment_group? ilm_after_on + ) + ; + +ilm_after_on + : AFTER ilm_time_period OF (NO (ACCESS | MODIFICATION) | CREATION) + | ON function_name + ; + +segment_group + : SEGMENT + | GROUP + ; + +ilm_inmemory_policy + : (SET INMEMORY inmemory_attributes? | MODIFY INMEMORY inmemory_memcompress | NO INMEMORY) SEGMENT? ilm_after_on + ; + +ilm_time_period + : numeric (DAY | DAYS | MONTH | MONTHS | YEAR | YEARS) + ; + +heap_org_table_clause + : table_compression? inmemory_table_clause? ilm_clause? + ; + +external_table_clause + : '(' (TYPE access_driver_type)? external_table_data_props ')' parallel_clause? ( + REJECT LIMIT (numeric | UNLIMITED) + )? inmemory_table_clause? + ; + +access_driver_type + : ORACLE_LOADER + | ORACLE_DATAPUMP + | ORACLE_HDFS + | ORACLE_HIVE + ; + +external_table_data_props + : (DEFAULT DIRECTORY external_table_directory)? ( + ACCESS PARAMETERS ( + '(' CHAR_STRING ')' + | '(' external_table_data_format+ ')' + | USING CLOB select_only_statement + ) + )? (LOCATION '(' external_table_directory (',' external_table_directory)* ')')? + ; + +external_table_data_format + : RECORDS DELIMITED BY NEWLINE_ + | COLUMN TRANSFORMS '(' external_table_transform (',' external_table_transform)* ')' + | external_table_records + | external_table_fields + | external_table_datapump + | external_table_hive + ; + +external_table_transform + : column_name FROM ( + NULL_ + | CONSTANT quoted_string + | (CONCAT | LOBFILE) (external_table_field | CONSTANT quoted_string) + | ( + FROM '(' external_table_directory (',' external_table_directory)* ')' + | CLOB + | BLOB + | CHARACTERSET '=' char_set_name + ) + | STARTOF external_table_field_list '(' UNSIGNED_INTEGER ')' + ) + ; + +external_table_field + : column_name type_name? (NOT NULL_)? default_value_part? + ; + +external_table_field_list + : external_table_fields_clause (',' external_table_fields_clause)* + ; + +external_table_fields_clause + : external_table_field ( + external_table_position_clause + | external_table_datatype_clause + | external_table_init_clause + | external_table_lls_clause + )* + ; + +external_table_position_clause + : POSITION? '(' ('*'? ('+' | '-')? UNSIGNED_INTEGER?) (BINDVAR | (':' ('+' | '-')? UNSIGNED_INTEGER)) ')' + ; + +external_table_datatype_clause + : UNSIGNED? INTEGER EXTERNAL? UNSIGNED_INTEGER? external_table_delimit_clause? + | (DECIMAL | ZONED) ( + '(' UNSIGNED_INTEGER (',' UNSIGNED_INTEGER)? ')' + | EXTERNAL ('(' UNSIGNED_INTEGER ')')? external_table_delimit_clause? + ) + | ORACLE_DATE + | ORACLE_NUMBER COUNTED? + | FLOAT EXTERNAL? UNSIGNED_INTEGER? external_table_delimit_clause? + | DOUBLE + | BINARY_FLOAT EXTERNAL? UNSIGNED_INTEGER? external_table_delimit_clause? + | BINARY_DOUBLE + | RAW UNSIGNED_INTEGER? + | CHAR EXTERNAL? ('(' UNSIGNED_INTEGER ')' )? external_table_delimit_clause? external_table_trim_clause? external_table_date_format_clause? + | (VARCHAR | VARRAW | VARCHARC | VARRAWC) '(' (UNSIGNED_INTEGER ',')? UNSIGNED_INTEGER ')' + ; + +external_table_delimit_clause + : ENCLOSED BY quoted_string (AND quoted_string)? + | TERMINATED BY (quoted_string | WHITESPACE) (OPTIONALLY? ENCLOSED BY quoted_string (AND quoted_string)?)? + ; + +external_table_trim_clause + : LRTRIM + | NOTRIM + | LTRIM + | RTRIM + | LDRTRIM + ; + +external_table_date_format_clause + : DATE_FORMAT? ( + DATE + | TIMESTAMP (WITH LOCAL? TIME ZONE)? MASK quoted_string + | INTERVAL (YEAR_TO_MONTH | DAY_TO_SECOND) + ) + ; + +external_table_init_clause + : (DEFAULTIF | NULLIF) external_table_condition_clause + ; + +external_table_condition_clause + : (field_spec | '(' UNSIGNED_INTEGER BINDVAR ')') relational_operator (quoted_string | HEX_STRING_LIT | BLANKS) + | external_table_condition_clause (AND | OR) external_table_condition_clause + ; + +external_table_lls_clause + : LLS external_table_directory + ; + +external_table_records + : RECORDS ( + FIXED UNSIGNED_INTEGER + | VARIABLE UNSIGNED_INTEGER + | DELIMITED BY (DETECTED? NEWLINE_ | quoted_string) + | XMLTAG '('? id_expression (',' id_expression)* ')'? + ) external_table_record_options_clause* + | external_table_record_options_clause+ + ; + +external_table_record_options_clause + : CHARACTERSET char_set_name + | EXTERNAL VARIABLE DATA + | PREPROCESSOR external_table_directory + | DATA IS (LITTLE | BIG) ENDIAN + | BYTEORDERMARK (CHECK | NOCHECK) + | STRING SIZES ARE IN (BYTES | CHARACTERS) + | LOAD WHEN external_table_condition_clause + | external_table_output_files + | READSIZE '='? UNSIGNED_INTEGER + | DISABLE_DIRECTORY_LINK_CHECK + | DATE_CACHE UNSIGNED_INTEGER + | SKIP_ UNSIGNED_INTEGER + | IO_OPTIONS (DIRECTIO | NODIRECTIO) + | (DNFS_ENABLE | DNFS_DISABLE) + | DNFS_READBUFFERS UNSIGNED_INTEGER + ; + +external_table_output_files + : ( + (NOBADFILE | NODISCARDFILE | NOLOGFILE) + | (BADFILE | DISCARDFILE | LOGFILE) external_table_directory? filename + ) + ; + +external_table_fields + : FIELDS + IGNORE_CHARS_AFTER_EOR? + (CSV (WITH | WITHOUT) EMBEDDED)? + external_table_delimit_clause? + external_table_trim_clause? + (ALL FIELDS OVERRIDE THESE FIELDS)? + (MISSING FIELD VALUES ARE NULL_)? + (REJECT ROWS WITH ALL NULL_ FIELDS)? + (DATE_FORMAT (DATE | TIMESTAMP) MASK quoted_string)? + (NULLIF (EQUALS_OP | NOT_EQUAL_OP) (quoted_string | HEX_STRING_LIT | BLANKS) | NONULLIF)? + '('? external_table_field_list? ')'? + ; + +external_table_datapump + : ENCRYPTION (ENABLE | DISABLED) + | NOLOGFILE + | LOGFILE external_table_directory? filename + | COMPRESSION (ENABLED (BASIC | LOW | MEDIUM | HIGH)? | DISABLED)? + | HADOOP_TRAILERS (ENABLED | DISABLED) VERSION (COMPATIBLE | LATEST | quoted_string) + | NOLOG + | DEBUG '=' '(' UNSIGNED_INTEGER ',' UNSIGNED_INTEGER ')' + | DATAPUMP INTERNAL TABLE tableview_name + | TEMPLATE_TABLE tableview_name + | JOB '(' schema_name ',' tableview_name ',' UNSIGNED_INTEGER ')' + | WORKERID UNSIGNED_INTEGER + | PARALLEL UNSIGNED_INTEGER + | VERSION quoted_string + | ENCRYPTPASSWORDISNULL + | DBLINK quoted_string + ; + +external_table_hive + : id_expression ('.' id_expression)* ('=' | ':') ( + tableview_name + | external_table_hive_parameter_map + | '[' external_table_hive_parameter_map (',' external_table_hive_parameter_map)* ']' + | external_table_field datatype (COMMENT quoted_string)? (',' COMMENT quoted_string)* + | SEQUENCEFILE + | TEXTFILE + | RCFILE + | ORC + | PARQUET + | INPUTFORMAT quoted_string OUTPUTFORMAT quoted_string + | external_table_directory + | DELIMITED? ( + FIELDS TERMINATED BY CHARACTER (ESCAPED BY CHARACTER) + | (COLLECTION ITEMS | MAP KEYS | LINES ) TERMINATED BY CHARACTER + | NULL_ DEFINED AS CHARACTER + ) + | SERDE quoted_string ( + WITH SERDEPROPERTIES ( + quoted_string '=' quoted_string (',' quoted_string '=' quoted_string)* + ) + )? + ) external_table_hive? + ; + +external_table_hive_parameter_map + : LEFT_CURLY_PAREN (external_table_hive_parameter_map_entry (',' external_table_hive_parameter_map_entry)*) RIGHT_CURLY_PAREN + ; + +external_table_hive_parameter_map_entry + : id_expression BINDVAR + | id_expression ':' '[' id_expression (',' id_expression)* ']' + | '[' id_expression (',' id_expression)* ']' + ; + +external_table_directory + : directory_name COLON CHAR_STRING + | (directory_name object_name? COLON)? CHAR_STRING + | quoted_string + | variable_name + ; + +row_movement_clause + : (ENABLE | DISABLE)? ROW MOVEMENT + ; + +flashback_archive_clause + : FLASHBACK ARCHIVE fa = id_expression? + | NO FLASHBACK ARCHIVE + ; + +log_grp + : UNSIGNED_INTEGER + | identifier + ; + +supplemental_table_logging + : ADD SUPPLEMENTAL LOG (supplemental_log_grp_clause | supplemental_id_key_clause) ( + ',' SUPPLEMENTAL LOG (supplemental_log_grp_clause | supplemental_id_key_clause) + )* + | DROP SUPPLEMENTAL LOG (supplemental_id_key_clause | GROUP log_grp) ( + ',' SUPPLEMENTAL LOG (supplemental_id_key_clause | GROUP log_grp) + )* + ; + +supplemental_log_grp_clause + : GROUP log_grp '(' column_name (NO LOG)? (',' column_name (NO LOG)?)* ')' ALWAYS? + ; + +supplemental_id_key_clause + : DATA '(' (','? ( ALL | PRIMARY KEY | UNIQUE INDEX? | FOREIGN KEY))+ ')' COLUMNS + ; + +allocate_extent_clause + : ALLOCATE EXTENT ( + '(' ( + SIZE size_clause + | DATAFILE datafile = CHAR_STRING + | INSTANCE inst_num = UNSIGNED_INTEGER + )+ ')' + )? + ; + +deallocate_unused_clause + : DEALLOCATE UNUSED (KEEP size_clause)? + ; + +// CHECK is an internal, undocumented Oracle option that is allowed and sometimes specified, used to check for proper +// segment type and segment attributes allowed to shrink. +shrink_clause + : SHRINK SPACE_KEYWORD COMPACT? CASCADE? CHECK? + ; + +records_per_block_clause + : (MINIMIZE | NOMINIMIZE)? RECORDS_PER_BLOCK + ; + +upgrade_table_clause + : UPGRADE (NOT? INCLUDING DATA) column_properties + ; + +truncate_table + : TRUNCATE TABLE tableview_name ((PRESERVE | PURGE) (MATERIALIZED VIEW LOG)?)? ((DROP ALL? | REUSE) STORAGE)? CASCADE? + ; + +drop_table + : DROP TABLE tableview_name (IF EXISTS)? (AS tableview_name)? (CASCADE (CONSTRAINT | CONSTRAINTS))? PURGE? (AS table_alias)? FORCE? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-TABLESPACE.html +drop_tablespace + : DROP TABLESPACE ts = id_expression (IF EXISTS)? ((DROP | KEEP) QUOTA?)? including_contents_clause? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-TABLESPACE-SET.html +drop_tablespace_set + : DROP TABLESPACE SET tss = id_expression including_contents_clause? + ; + +including_contents_clause + : INCLUDING CONTENTS ((AND | KEEP) DATAFILES)? (CASCADE CONSTRAINTS)? + ; + +drop_view + : DROP VIEW tableview_name (IF EXISTS)? (CASCADE CONSTRAINT)? + ; + +comment_on_column + : COMMENT ON COLUMN column_name IS quoted_string + ; + +enable_or_disable + : ENABLE + | DISABLE + ; + +allow_or_disallow + : ALLOW + | DISALLOW + ; + +// Synonym DDL Clauses + +alter_synonym + : ALTER PUBLIC? SYNONYM (schema_name '.')? synonym_name ( + EDITIONABLE + | NONEDITIONABLE + | COMPILE + ) + ; + +create_synonym + // Synonym's schema cannot be specified for public synonyms + : CREATE (OR REPLACE)? PUBLIC SYNONYM synonym_name FOR (schema_name PERIOD)? schema_object_name ( + AT_SIGN link_name + )? + | CREATE (OR REPLACE)? SYNONYM (schema_name PERIOD)? synonym_name FOR (schema_name PERIOD)? schema_object_name ( + AT_SIGN (schema_name PERIOD)? link_name + )? + ; + +drop_synonym + : DROP PUBLIC? SYNONYM (schema_name '.')? synonym_name FORCE? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-SPFILE.html +create_spfile + : CREATE SPFILE ('=' spfile_name)? FROM (PFILE ('=' pfile_name)? (AS COPY)? | MEMORY) + ; + +spfile_name + : CHAR_STRING + ; + +pfile_name + : CHAR_STRING + ; + +comment_on_table + : COMMENT ON TABLE tableview_name IS quoted_string + ; + +comment_on_materialized + : COMMENT ON MATERIALIZED VIEW tableview_name IS quoted_string + ; + +alter_analytic_view + : ALTER ANALYTIC VIEW (schema_name '.')? av = id_expression ( + RENAME TO id_expression + | COMPILE + | alter_add_cache_clause + | alter_drop_cache_clause + ) + ; + +alter_add_cache_clause + : ADD CACHE MEASURE GROUP '(' (ALL | measure_list)? ')' LEVELS '(' levels_item ( + ',' levels_item + )* ')' + ; + +levels_item + : ((d = id_expression '.')? h = id_expression '.')? l = id_expression + ; + +measure_list + : id_expression (',' id_expression)* + ; + +alter_drop_cache_clause + : DROP CACHE MEASURE GROUP '(' (ALL | measure_list)? ')' LEVELS '(' levels_item ( + ',' levels_item + )* ')' + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-ATTRIBUTE-DIMENSION.html +alter_attribute_dimension + : ALTER ATTRIBUTE DIMENSION (schema_name '.')? ad = id_expression ( + RENAME TO nad = id_expression + | COMPILE + ) + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-AUDIT-POLICY-Unified-Auditing.html +alter_audit_policy + : ALTER AUDIT POLICY p = id_expression ADD? ( + privilege_audit_clause? action_audit_clause? role_audit_clause? + | (ONLY TOPLEVEL)? + ) DROP? (privilege_audit_clause? action_audit_clause? role_audit_clause? | (ONLY TOPLEVEL)?) ( + CONDITION (DROP | CHAR_STRING EVALUATE PER (STATEMENT | SESSION | INSTANCE)) + )? + ; + +alter_cluster + : ALTER CLUSTER cluster_name ( + physical_attributes_clause + | SIZE size_clause + | allocate_extent_clause + | deallocate_unused_clause + | cache_or_nocache + )+ parallel_clause? + ; + +drop_analytic_view + : DROP ANALYTIC VIEW (schema_name '.')? av = id_expression + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-ATTRIBUTE-DIMENSION.html +drop_attribute_dimension + : DROP ATTRIBUTE DIMENSION (schema_name '.')? ad = id_expression + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-AUDIT-POLICY-Unified-Auditing.html +drop_audit_policy + : DROP AUDIT POLICY p = id_expression + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-FLASHBACK-ARCHIVE.html +drop_flashback_archive + : DROP FLASHBACK ARCHIVE fa = id_expression + ; + +drop_cluster + : DROP CLUSTER cluster_name (INCLUDING TABLES (CASCADE CONSTRAINTS)?)? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-CONTEXT.html +drop_context + : DROP CONTEXT ns = id_expression + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-DIRECTORY.html +drop_directory + : DROP DIRECTORY dn = id_expression + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-DISKGROUP.html +drop_diskgroup + : DROP DISKGROUP dgn = id_expression ((FORCE? INCLUDING | EXCLUDING) CONTENTS)? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-EDITION.html +drop_edition + : DROP EDITION e = id_expression CASCADE? + ; + +truncate_cluster + : TRUNCATE CLUSTER cluster_name ((DROP | REUSE) STORAGE)? + ; + +cache_or_nocache + : CACHE + | NOCACHE + ; + +database_name + : id_expression + ; + +alter_database + : ALTER database_clause ( + startup_clauses + | recovery_clauses + | database_file_clauses + | logfile_clauses + | controlfile_clauses + | standby_database_clauses + | default_settings_clause + | instance_clauses + | security_clause + | prepare_clause + | drop_mirror_clause + | lost_write_protection + | cdb_fleet_clauses + | property_clauses + | replay_upgrade_clauses + ) + ; + +database_clause + : PLUGGABLE? DATABASE database_name? + ; + +startup_clauses + : MOUNT ((STANDBY | CLONE) DATABASE)? + | OPEN (READ WRITE)? resetlogs_or_noresetlogs? upgrade_or_downgrade? + | OPEN READ ONLY + ; + +resetlogs_or_noresetlogs + : RESETLOGS + | NORESETLOGS + ; + +upgrade_or_downgrade + : UPGRADE + | DOWNGRADE + ; + +recovery_clauses + : general_recovery + | managed_standby_recovery + | begin_or_end BACKUP + ; + +begin_or_end + : BEGIN + | END + ; + +general_recovery + : RECOVER AUTOMATIC? (FROM CHAR_STRING)? ( + (full_database_recovery | partial_database_recovery | LOGFILE CHAR_STRING)? ( + (TEST | ALLOW UNSIGNED_INTEGER CORRUPTION | parallel_clause)+ + )? + | CONTINUE DEFAULT? + | CANCEL + ) + ; + +//Need to come back to +full_database_recovery + : STANDBY? DATABASE ( + ( + UNTIL (CANCEL | TIME CHAR_STRING | CHANGE UNSIGNED_INTEGER | CONSISTENT) + | USING BACKUP CONTROLFILE + | SNAPSHOT TIME CHAR_STRING + )+ + )? + ; + +partial_database_recovery + : TABLESPACE tablespace (',' tablespace)* + | DATAFILE CHAR_STRING + | filenumber (',' CHAR_STRING | filenumber)* + | partial_database_recovery_10g + ; + +partial_database_recovery_10g + : {this.isVersion10()}? STANDBY ( + TABLESPACE tablespace (',' tablespace)* + | DATAFILE CHAR_STRING + | filenumber (',' CHAR_STRING | filenumber)* + ) UNTIL (CONSISTENT WITH)? CONTROLFILE + ; + +managed_standby_recovery + : RECOVER ( + MANAGED STANDBY DATABASE ( + ( + USING CURRENT LOGFILE + | DISCONNECT (FROM SESSION)? + | NODELAY + | UNTIL CHANGE UNSIGNED_INTEGER + | UNTIL CONSISTENT + | parallel_clause + )+ + | FINISH + | CANCEL + )? + | TO LOGICAL STANDBY (db_name | KEEP IDENTITY) + ) + ; + +db_name + : regular_id + ; + +database_file_clauses + : RENAME FILE filename (',' filename)* TO filename + | create_datafile_clause + | alter_datafile_clause + | alter_tempfile_clause + | move_datafile_clause + ; + +create_datafile_clause + : CREATE DATAFILE (filename | filenumber) (',' (filename | filenumber))* ( + AS ( + //TODO (','? file_specification)+ | + NEW + ) + )? + ; + +alter_datafile_clause + : DATAFILE (filename | filenumber) (',' (filename | filenumber))* ( + ONLINE + | OFFLINE (FOR DROP)? + | RESIZE size_clause + | autoextend_clause + | END BACKUP + ) + ; + +alter_tempfile_clause + : TEMPFILE (filename | filenumber) (',' (filename | filenumber))* ( + RESIZE size_clause + | autoextend_clause + | DROP (INCLUDING DATAFILES) + | ONLINE + | OFFLINE + ) + ; + +move_datafile_clause + : MOVE DATAFILE (filename | filenumber) (',' (filename | filenumber))* (TO filename)? REUSE? KEEP? + ; + +logfile_clauses + : (ARCHIVELOG MANUAL? | NOARCHIVELOG) + | NO? FORCE LOGGING + | SET STANDBY NOLOGGING FOR (DATA AVAILABILITY | LOAD PERFORMANCE) + | RENAME FILE filename (',' filename)* TO filename + | CLEAR UNARCHIVED? LOGFILE logfile_descriptor (',' logfile_descriptor)* ( + UNRECOVERABLE DATAFILE + )? + | add_logfile_clauses + | drop_logfile_clauses + | switch_logfile_clause + | supplemental_db_logging + ; + +add_logfile_clauses + : ADD STANDBY? LOGFILE ( + (INSTANCE CHAR_STRING | THREAD UNSIGNED_INTEGER)? group_redo_logfile+ + | MEMBER filename REUSE? (',' filename REUSE?)* TO logfile_descriptor ( + ',' logfile_descriptor + )* + ) + ; + +group_redo_logfile + : (GROUP UNSIGNED_INTEGER)? redo_log_file_spec + ; + +drop_logfile_clauses + : DROP STANDBY? LOGFILE ( + logfile_descriptor (',' logfile_descriptor)* + | MEMBER filename (',' filename)* + ) + ; + +switch_logfile_clause + : SWITCH ALL LOGFILES TO BLOCKSIZE UNSIGNED_INTEGER + ; + +supplemental_db_logging + : add_or_drop SUPPLEMENTAL LOG (DATA | supplemental_id_key_clause | supplemental_plsql_clause) + ; + +add_or_drop + : ADD + | DROP + ; + +supplemental_plsql_clause + : DATA FOR PROCEDURAL REPLICATION + ; + +logfile_descriptor + : GROUP UNSIGNED_INTEGER + | '(' filename (',' filename)* ')' + | filename + ; + +controlfile_clauses + : CREATE (LOGICAL | PHYSICAL)? STANDBY CONTROLFILE AS filename REUSE? + | BACKUP CONTROLFILE TO (filename REUSE? | trace_file_clause) + ; + +trace_file_clause + : TRACE (AS filename REUSE?)? (RESETLOGS | NORESETLOGS)? + ; + +standby_database_clauses + : ( + activate_standby_db_clause + | maximize_standby_db_clause + | register_logfile_clause + | commit_switchover_clause + | start_standby_clause + | stop_standby_clause + | convert_database_clause + ) parallel_clause? + ; + +activate_standby_db_clause + : ACTIVATE (PHYSICAL | LOGICAL)? STANDBY DATABASE (FINISH APPLY)? + ; + +maximize_standby_db_clause + : SET STANDBY DATABASE TO MAXIMIZE (PROTECTION | AVAILABILITY | PERFORMANCE) + ; + +register_logfile_clause + : REGISTER (OR REPLACE)? (PHYSICAL | LOGICAL) LOGFILE //TODO (','? file_specification)+ + //TODO (FOR logminer_session_name)? + ; + +commit_switchover_clause + : (PREPARE | COMMIT) TO SWITCHOVER ( + ( + TO ( + ((PHYSICAL | LOGICAL)? PRIMARY | PHYSICAL? STANDBY) ( + (WITH | WITHOUT)? SESSION SHUTDOWN (WAIT | NOWAIT) + )? + | LOGICAL STANDBY + ) + | LOGICAL STANDBY + ) + | CANCEL + )? + ; + +start_standby_clause + : START LOGICAL STANDBY APPLY IMMEDIATE? NODELAY? ( + NEW PRIMARY regular_id + | INITIAL scn_value = UNSIGNED_INTEGER? + | SKIP_ FAILED TRANSACTION + | FINISH + )? + ; + +stop_standby_clause + : (STOP | ABORT) LOGICAL STANDBY APPLY + ; + +convert_database_clause + : CONVERT TO (PHYSICAL | SNAPSHOT) STANDBY + ; + +default_settings_clause + : DEFAULT EDITION EQUALS_OP edition_name + | SET DEFAULT (BIGFILE | SMALLFILE) TABLESPACE + | DEFAULT TABLESPACE tablespace + | DEFAULT TEMPORARY TABLESPACE (tablespace | tablespace_group_name) + | RENAME GLOBAL_NAME TO database ('.' domain)+ + | ENABLE BLOCK CHANGE TRACKING (USING FILE filename REUSE?)? + | DISABLE BLOCK CHANGE TRACKING + | flashback_mode_clause + | set_time_zone_clause + ; + +set_time_zone_clause + : SET TIMEZONE EQUALS_OP CHAR_STRING + ; + +instance_clauses + : enable_or_disable INSTANCE CHAR_STRING + ; + +security_clause + : GUARD (ALL | STANDBY | NONE) + ; + +domain + : id_expression + ; + +database + : id_expression + ; + +edition_name + : regular_id + ; + +filenumber + : UNSIGNED_INTEGER + ; + +filename + : CHAR_STRING + ; + +prepare_clause + : PREPARE MIRROR COPY c = id_expression (WITH (UNPROTECTED | MIRROR | HIGH) REDUNDANCY)? ( + FOR DATABASE id_expression + )? + ; + +drop_mirror_clause + : DROP MIRROR COPY mn = id_expression + ; + +lost_write_protection + : (ENABLE | DISABLE | REMOVE | SUSPEND) LOST WRITE PROTECTION + ; + +cdb_fleet_clauses + : lead_cdb_clause + | lead_cdb_uri_clause + ; + +lead_cdb_clause + : SET LEAD_CDB '=' (TRUE | FALSE) + ; + +lead_cdb_uri_clause + : SET LEAD_CDB_URI '=' CHAR_STRING + ; + +property_clauses + : PROPERTY (SET | REMOVE) DEFAULT_CREDENTIAL '=' qcn = id_expression + ; + +replay_upgrade_clauses + : UPGRADE SYNC (ON | OFF) + ; + +alter_database_link + : ALTER SHARED? PUBLIC? DATABASE LINK local_link_name ( + CONNECT TO user_object_name IDENTIFIED BY password_value link_authentication? + | link_authentication + ) + ; + +password_value + : id_expression + | numeric + | VALUES CHAR_STRING + ; + +link_authentication + : AUTHENTICATED BY user_object_name IDENTIFIED BY password_value + ; + +//https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/CREATE-SCHEMA.html +create_schema + : CREATE SCHEMA AUTHORIZATION schema_name (create_table | create_view | grant_statement)* + ; + +// added by zrh +create_database + : CREATE DATABASE database_name ( + USER (SYS | SYSTEM) IDENTIFIED BY password_value + | CONTROLFILE REUSE + | (MAXDATAFILES | MAXINSTANCES) UNSIGNED_INTEGER + | NATIONAL? CHARACTER SET char_set_name + | SET DEFAULT (BIGFILE | SMALLFILE) TABLESPACE + | database_logging_clauses + | tablespace_clauses + | set_time_zone_clause + | (BIGFILE | SMALLFILE)? USER_DATA TABLESPACE tablespace_group_name DATAFILE datafile_tempfile_spec ( + ',' datafile_tempfile_spec + )* + | enable_pluggable_database + )+ + ; + +database_logging_clauses + : LOGFILE database_logging_sub_clause (',' database_logging_sub_clause)* + | (MAXLOGFILES | MAXLOGMEMBERS | MAXLOGHISTORY) UNSIGNED_INTEGER + | ARCHIVELOG + | NOARCHIVELOG + | FORCE LOGGING + ; + +database_logging_sub_clause + : (GROUP UNSIGNED_INTEGER)? file_specification + ; + +tablespace_clauses + : EXTENT MANAGEMENT LOCAL + | SYSAUX? DATAFILE file_specification (',' file_specification)* + | default_tablespace + | default_temp_tablespace + | undo_tablespace + ; + +enable_pluggable_database + : ENABLE PLUGGABLE DATABASE ( + SEED file_name_convert? (SYSTEM tablespace_datafile_clauses)? ( + SYSAUX tablespace_datafile_clauses + )? + )? undo_mode_clause? + ; + +file_name_convert + : FILE_NAME_CONVERT EQUALS_OP ( + '(' filename_convert_sub_clause (',' filename_convert_sub_clause)* ')' + | NONE + ) + ; + +filename_convert_sub_clause + : CHAR_STRING (',' CHAR_STRING)? + ; + +tablespace_datafile_clauses + : DATAFILES (SIZE size_clause | autoextend_clause)+ + ; + +undo_mode_clause + : LOCAL UNDO (ON | OFF) + ; + +default_tablespace + : DEFAULT TABLESPACE tablespace (DATAFILE datafile_tempfile_spec)? extent_management_clause? + ; + +default_temp_tablespace + : (BIGFILE | SMALLFILE)? DEFAULT ( + TEMPORARY TABLESPACE + | LOCAL TEMPORARY TABLESPACE FOR (ALL | LEAF) + ) tablespace (TEMPFILE file_specification (',' file_specification)*)? extent_management_clause? + ; + +undo_tablespace + : (BIGFILE | SMALLFILE)? UNDO TABLESPACE tablespace ( + DATAFILE file_specification (',' file_specification)* + )? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-DATABASE.html +drop_database + : DROP DATABASE (INCLUDING BACKUPS)? NOPROMPT? + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-DATABASE-LINK.html +create_database_link + : CREATE SHARED? PUBLIC? DATABASE LINK link_name ( + CONNECT TO ( + CURRENT_USER + | user_object_name IDENTIFIED BY password_value link_authentication? + ) + | link_authentication + )* (USING CHAR_STRING)? + ; + +drop_database_link + : DROP PUBLIC? DATABASE LINK link_name + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-TABLESPACE-SET.html +alter_tablespace_set + : ALTER TABLESPACE SET tss = id_expression alter_tablespace_attrs + ; + +alter_tablespace_attrs + : default_tablespace_params + | MINIMUM EXTENT size_clause + | RESIZE size_clause + | COALESCE + | SHRINK SPACE_KEYWORD (KEEP size_clause)? + | RENAME TO nts = id_expression + | (BEGIN | END) BACKUP + | datafile_tempfile_clauses + | tablespace_logging_clauses + | tablespace_group_clause + | tablespace_state_clauses + | autoextend_clause + | flashback_mode_clause + | tablespace_retention_clause + | alter_tablespace_encryption + | lost_write_protection + ; + +alter_tablespace_encryption + : ENCRYPTION ( + OFFLINE (tablespace_encryption_spec? ENCRYPT | DECRYPT) + | ONLINE (tablespace_encryption_spec? (ENCRYPT | REKEY) | DECRYPT) ts_file_name_convert? + | FINISH (ENCRYPT | REKEY | DECRYPT) ts_file_name_convert? + ) + ; + +ts_file_name_convert + : FILE_NAME_CONVERT '=' '(' CHAR_STRING ',' CHAR_STRING (',' CHAR_STRING ',' CHAR_STRING)* ')' KEEP? + ; + +alter_role + : ALTER ROLE role_name role_identified_clause container_clause? + ; + +role_identified_clause + : NOT IDENTIFIED + | IDENTIFIED ( + BY identifier + | USING identifier ('.' id_expression)? + | EXTERNALLY + | GLOBALLY (AS CHAR_STRING)? + ) + ; + +alter_table + : ALTER TABLE tableview_name memoptimize_read_write_clause* ( + | alter_table_properties + | constraint_clauses + | column_clauses + | alter_table_partitioning + //TODO | alter_external_table + | move_table_clause + ) ((enable_disable_clause | enable_or_disable (TABLE LOCK | ALL TRIGGERS))+)? + ; + +memoptimize_read_write_clause + : NO? MEMOPTIMIZE FOR (READ | WRITE) + ; + +alter_table_properties + : alter_table_properties_1 + | RENAME TO tableview_name + | shrink_clause + | READ ONLY + | READ WRITE + | REKEY CHAR_STRING + | annotations_clause + ; + +alter_table_partitioning + : add_table_partition + | drop_table_partition + | merge_table_partition + | modify_table_partition + | split_table_partition + | truncate_table_partition + | exchange_table_partition + | coalesce_table_partition + | alter_interval_partition + | move_table_partition + ; + +add_table_partition + : ADD ( + range_partition_desc + | list_partition_desc + | PARTITION partition_name? (TABLESPACE tablespace)? key_compression? UNUSABLE? + ) + ; + +drop_table_partition + : DROP (partition_extended_names | subpartition_extended_names) ( + update_index_clauses parallel_clause? + )? + ; + +merge_table_partition + : MERGE PARTITION partition_name AND partition_name INTO PARTITION partition_name + ; + +modify_table_partition + : MODIFY ( + (PARTITION | SUBPARTITION) partition_name ((ADD | DROP) list_values_clause)? (ADD range_subpartition_desc)? ( + REBUILD? UNUSABLE LOCAL INDEXES + )? shrink_clause? + | range_partitions + ) + ; + +split_table_partition + : SPLIT partition_extended_names ( + AT '(' literal (',' literal)* ')' INTO '(' range_partition_desc (',' range_partition_desc)* ')' + | INTO '(' ( + range_partition_desc (',' range_partition_desc)* + | list_partition_desc (',' list_partition_desc)* + ) ')' + ) (update_global_index_clause | update_index_clauses | ONLINE)? + ; + +truncate_table_partition + : TRUNCATE (partition_extended_names | subpartition_extended_names) ( + (DROP ALL? | REUSE)? STORAGE + )? CASCADE? (update_index_clauses parallel_clause?)? + ; + +exchange_table_partition + : EXCHANGE PARTITION partition_name WITH TABLE tableview_name ((INCLUDING | EXCLUDING) INDEXES)? ( + (WITH | WITHOUT) VALIDATION + )? + ; + +coalesce_table_partition + : COALESCE PARTITION parallel_clause? (allow_or_disallow CLUSTERING)? + ; + +alter_interval_partition + : SET INTERVAL '(' (constant | expression)? ')' + ; + +move_table_partition + : MOVE ( + partition_extended_names (MAPPING TABLE)? table_partition_description + | subpartition_extended_names indexing_clause? partitioning_storage_clause? + ) ( + filter_condition + | update_index_clauses + | parallel_clause + | allow_or_disallow CLUSTERING + | ONLINE + )* + ; + +filter_condition + : INCLUDING ROWS where_clause + ; + +partition_extended_names + : (PARTITION | PARTITIONS) ( + partition_name (',' partition_name)* + | '(' partition_name (',' partition_name)* ')' + | FOR '('? partition_key_value (',' partition_key_value)* ')'? + ) + ; + +subpartition_extended_names + : (SUBPARTITION | SUBPARTITIONS) ( + partition_name (UPDATE INDEXES)? + | '(' partition_name (',' partition_name)* ')' + | FOR '('? subpartition_key_value (',' subpartition_key_value)* ')'? + ) + ; + +alter_table_properties_1 + : ( + physical_attributes_clause + | logging_clause + | table_compression + | inmemory_table_clause + | supplemental_table_logging + | allocate_extent_clause + | deallocate_unused_clause + | (CACHE | NOCACHE) + | RESULT_CACHE '(' MODE (DEFAULT | FORCE) ')' + | upgrade_table_clause + | records_per_block_clause + | parallel_clause + | row_movement_clause + | logical_replication_clause + | flashback_archive_clause + )+ alter_iot_clauses? + ; + +alter_iot_clauses + : index_org_table_clause + | alter_overflow_clause + | alter_mapping_table_clause + | COALESCE + ; + +alter_mapping_table_clause + : MAPPING TABLE (allocate_extent_clause | deallocate_unused_clause) + ; + +alter_overflow_clause + : add_overflow_clause + | OVERFLOW_ ( + segment_attributes_clause + | allocate_extent_clause + | shrink_clause + | deallocate_unused_clause + )+ + ; + +add_overflow_clause + : ADD OVERFLOW_ segment_attributes_clause? ( + '(' PARTITION segment_attributes_clause? (',' PARTITION segment_attributes_clause?)* ')' + )? + ; + +update_index_clauses + : update_global_index_clause + | update_all_indexes_clause + ; + +update_global_index_clause + : (UPDATE | INVALIDATE) GLOBAL INDEXES + ; + +update_all_indexes_clause + : UPDATE INDEXES ('(' update_all_indexes_index_clause ')')? + ; + +update_all_indexes_index_clause + : index_name '(' (update_index_partition | update_index_subpartition) ')' ( + ',' update_all_indexes_clause + )* + ; + +update_index_partition + : index_partition_description index_subpartition_clause? (',' update_index_partition)* + ; + +update_index_subpartition + : SUBPARTITION subpartition_name? (TABLESPACE tablespace)? (',' update_index_subpartition)* + ; + +enable_disable_clause + : (ENABLE | DISABLE) (VALIDATE | NOVALIDATE)? ( + UNIQUE '(' column_name (',' column_name)* ')' + | PRIMARY KEY + | CONSTRAINT constraint_name + ) using_index_clause? exceptions_clause? CASCADE? ((KEEP | DROP) INDEX)? + ; + +using_index_clause + : USING INDEX (index_name | '(' create_index ')' | index_properties) + ; + +index_attributes + : ( + physical_attributes_clause + | logging_clause + | TABLESPACE (tablespace | DEFAULT) + | key_compression + | sort_or_nosort + | REVERSE + | visible_or_invisible + | parallel_clause + )+ + ; + +sort_or_nosort + : SORT + | NOSORT + ; + +exceptions_clause + : EXCEPTIONS INTO tableview_name + ; + +move_table_clause + : MOVE ONLINE? segment_attributes_clause? table_compression? index_org_table_clause? ( + lob_storage_clause + | varray_col_properties + )* parallel_clause? + ; + +index_org_table_clause + : (mapping_table_clause | PCTTHRESHOLD UNSIGNED_INTEGER | key_compression)+ index_org_overflow_clause? + | index_org_overflow_clause // rule move_table_clause contains an optional block with at least one alternative that can match an empty string + ; + +mapping_table_clause + : MAPPING TABLE + | NOMAPPING + ; + +key_compression + : NOCOMPRESS + | COMPRESS UNSIGNED_INTEGER + ; + +index_org_overflow_clause + : (INCLUDING column_name)? OVERFLOW_ segment_attributes_clause? + ; + +column_clauses + : add_modify_drop_column_clauses + | rename_column_clause + | modify_collection_retrieval + | modify_lob_storage_clause + ; + +modify_collection_retrieval + : MODIFY NESTED TABLE collection_item RETURN AS (LOCATOR | VALUE) + ; + +collection_item + : tableview_name + ; + +rename_column_clause + : RENAME COLUMN old_column_name TO new_column_name + ; + +old_column_name + : column_name + ; + +new_column_name + : column_name + ; + +add_modify_drop_column_clauses + : (constraint_clauses | add_column_clause | modify_column_clauses | drop_column_clause)+ + ; + +drop_column_clause + : SET UNUSED (COLUMN column_name | ('(' column_name (',' column_name)* ')')) ( + CASCADE CONSTRAINTS + | INVALIDATE + )* + | DROP (COLUMN column_name | '(' column_name (',' column_name)* ')') ( + CASCADE CONSTRAINTS + | INVALIDATE + )* (CHECKPOINT UNSIGNED_INTEGER)? + | DROP (UNUSED COLUMNS | COLUMNS CONTINUE) (CHECKPOINT UNSIGNED_INTEGER) + ; + +modify_column_clauses + : MODIFY ( + '(' modify_col_properties (',' modify_col_properties)* ')' + | '(' modify_col_visibility (',' modify_col_visibility)* ')' + | modify_col_properties + | modify_col_visibility + | modify_col_substitutable + ) + ; + +modify_col_properties + : column_name datatype? (DEFAULT (ON NULL_)? expression)? (ENCRYPT encryption_spec | DECRYPT)? inline_constraint* lob_storage_clause? annotations_clause? + //TODO alter_xmlschema_clause + ; + +modify_col_visibility + : column_name (VISIBLE | INVISIBLE) + ; + +modify_col_substitutable + : COLUMN column_name NOT? SUBSTITUTABLE AT ALL LEVELS FORCE? + ; + +add_column_clause + : ADD ( + '(' (column_definition | virtual_column_definition) ( + ',' (column_definition | virtual_column_definition) + )* ')' + | ( column_definition | virtual_column_definition) + ) column_properties? + ; + +varray_col_properties + : VARRAY varray_item ( + substitutable_column_clause? varray_storage_clause + | substitutable_column_clause + ) + ; + +varray_storage_clause + : STORE AS (SECUREFILE | BASICFILE)? LOB ( + lob_segname? '(' lob_storage_parameters ')' + | lob_segname + )? + ; + +lob_segname + : regular_id + ; + +lob_item + : regular_id + | quoted_string + | DELIMITED_ID + ; + +lob_storage_parameters + : TABLESPACE tablespace_name = id_expression + | (lob_parameters storage_clause?) + | storage_clause + ; + +lob_storage_clause + : LOB ( + '(' lob_item (',' lob_item)* ')' STORE AS ( + (SECUREFILE | BASICFILE) + | '(' lob_storage_parameters* ')' + )+ + | '(' lob_item ')' STORE AS ( + (SECUREFILE | BASICFILE) + | lob_segname + | '(' lob_storage_parameters* ')' + )+ + ) + ; + +modify_lob_storage_clause + : MODIFY LOB '(' lob_item ')' '(' modify_lob_parameters ')' + ; + +modify_lob_parameters + : ( + storage_clause + | (PCTVERSION | FREEPOOLS) UNSIGNED_INTEGER + | REBUILD FREEPOOLS + | lob_retention_clause + | lob_deduplicate_clause + | lob_compression_clause + | ENCRYPT encryption_spec + | DECRYPT + | CACHE + | (CACHE | NOCACHE | CACHE READS) logging_clause? + | allocate_extent_clause + | shrink_clause + | deallocate_unused_clause + )+ + ; + +lob_parameters + : ( + (ENABLE | DISABLE) STORAGE IN ROW + | CHUNK UNSIGNED_INTEGER + | PCTVERSION UNSIGNED_INTEGER + | FREEPOOLS UNSIGNED_INTEGER + | lob_retention_clause + | lob_deduplicate_clause + | lob_compression_clause + | ENCRYPT encryption_spec + | DECRYPT + | (CACHE | NOCACHE | CACHE READS) logging_clause? + )+ + ; + +lob_deduplicate_clause + : DEDUPLICATE + | KEEP_DUPLICATES + ; + +lob_compression_clause + : NOCOMPRESS + | COMPRESS (HIGH | MEDIUM | LOW)? + ; + +lob_retention_clause + : RETENTION (MAX | MIN UNSIGNED_INTEGER | AUTO | NONE)? + ; + +encryption_spec + : (USING CHAR_STRING)? (IDENTIFIED BY REGULAR_ID)? CHAR_STRING? (NO? SALT)? + ; + +tablespace + : id_expression + ; + +varray_item + : (id_expression '.')? (id_expression '.')? id_expression + ; + +column_properties + : ( + object_type_col_properties + | nested_table_col_properties + | (varray_col_properties | lob_storage_clause) ( + '(' lob_partition_storage (',' lob_partition_storage)* ')' + )? //TODO '(' ( ','? lob_partition_storage)+ ')' + | xmltype_column_properties + )+ + ; + +lob_partition_storage + : LOB ( + '(' lob_item (',' lob_item) ')' STORE AS ( + (SECUREFILE | BASICFILE) + | '(' lob_storage_parameters ')' + )+ + | '(' lob_item ')' STORE AS ( + (SECUREFILE | BASICFILE) + | lob_segname + | '(' lob_storage_parameters ')' + )+ + ) + ; + +period_definition + : {this.isVersion12()}? PERIOD FOR column_name ('(' start_time_column ',' end_time_column ')')? + ; + +start_time_column + : column_name + ; + +end_time_column + : column_name + ; + +column_definition + : column_name ((datatype | type_name) (COLLATE column_collation_name)?)? SORT? ( + VISIBLE + | INVISIBLE + )? (DEFAULT (ON NULL_)? expression | identity_clause)? (ENCRYPT encryption_spec)? ( + inline_constraint+ + | inline_ref_constraint + )? annotations_clause? + ; + +column_collation_name + : id_expression + ; + +identity_clause + : GENERATED (ALWAYS | BY DEFAULT (ON NULL_)?)? AS IDENTITY identity_options_parentheses? + ; + +//https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-TABLE.html#GUID-F9CE0CC3-13AE-4744-A43C-EAC7A71AAAB6 +// NOTE to identity options +// according to the SQL Reference, identity_options be nested in parentheses. +// But statements without parentheses can also be executed successfully on a oracle database. +// See this issue for more details: https://github.com/antlr/grammars-v4/issues/3183 +identity_options_parentheses + : identity_options+ + | '(' identity_options+ ')' + ; + +identity_options + : START WITH (numeric | LIMIT VALUE) + | INCREMENT BY numeric + | MAXVALUE numeric + | NOMAXVALUE + | MINVALUE numeric + | NOMINVALUE + | CYCLE + | NOCYCLE + | CACHE numeric + | NOCACHE + | ORDER + | NOORDER + | SCALE (EXTEND | NOEXTEND) + | NOSCALE + | KEEP + | NOKEEP + ; + +virtual_column_definition + : column_name (datatype (COLLATE column_collation_name)?)? (VISIBLE | INVISIBLE)? virtual_column_expression? VIRTUAL? + evaluation_edition_clause? (UNUSABLE BEFORE (CURRENT EDITION | EDITION edition_name))? ( + UNUSABLE BEGINNING WITH ((CURRENT | NULL_) EDITION | EDITION edition_name) + )? inline_constraint* by_user_for_statistics_clause? + ; + +virtual_column_expression + : autogenerated_sequence_definition + | (GENERATED ALWAYS?)? AS '(' expression ')' + ; + +autogenerated_sequence_definition + : GENERATED (ALWAYS | BY DEFAULT (ON NULL_)?)? AS IDENTITY ( + '(' (sequence_start_clause | sequence_spec)* ')' + )? + ; + +// Oracle tools and DBMS_METADATA can return this in some use cases +// This is used internally by Oracle to mark the virtual column for statistics only +by_user_for_statistics_clause + : BY USER FOR STATISTICS + ; + +evaluation_edition_clause + : EVALUATE USING ((CURRENT | NULL_) EDITION | EDITION edition_name) + ; + +nested_table_col_properties + : NESTED TABLE (nested_item | COLUMN_VALUE) substitutable_column_clause? (LOCAL | GLOBAL)? STORE AS tableview_name ( + '(' ('(' object_properties ')' | physical_properties | column_properties)+ ')' + )? (RETURN AS? (LOCATOR | VALUE))? + ; + +nested_item + : regular_id + ; + +substitutable_column_clause + : ELEMENT? IS OF TYPE? '(' type_name ')' + | NOT? SUBSTITUTABLE AT ALL LEVELS + ; + +partition_name + : regular_id + | DELIMITED_ID + ; + +supplemental_logging_props + : SUPPLEMENTAL LOG (supplemental_log_grp_clause | supplemental_id_key_clause) + ; + +object_type_col_properties + : COLUMN column = regular_id substitutable_column_clause + ; + +constraint_clauses + : ADD '(' (out_of_line_constraint (',' out_of_line_constraint)* | out_of_line_ref_constraint) ')' + | ADD (out_of_line_constraint | out_of_line_ref_constraint) + | MODIFY ( + CONSTRAINT constraint_name + | PRIMARY KEY + | UNIQUE '(' column_name (',' column_name)* ')' + ) constraint_state CASCADE? + | RENAME CONSTRAINT old_constraint_name TO new_constraint_name + | drop_constraint_clause+ + ; + +old_constraint_name + : constraint_name + ; + +new_constraint_name + : constraint_name + ; + +drop_constraint_clause + : DROP ( + PRIMARY KEY + | UNIQUE '(' column_name (',' column_name)* ')' + | CONSTRAINT constraint_name + ) CASCADE? ((KEY | DROP) INDEX)? ONLINE? + ; + +check_constraint + : CHECK '(' condition ')' DISABLE? + ; + +foreign_key_clause + : FOREIGN KEY paren_column_list references_clause on_delete_clause? + ; + +references_clause + : REFERENCES tableview_name paren_column_list? (ON DELETE (CASCADE | SET NULL_))? + ; + +on_delete_clause + : ON DELETE (CASCADE | SET NULL_) + ; + +// Anonymous PL/SQL code block + +anonymous_block + : (DECLARE seq_of_declare_specs)? BEGIN seq_of_statements (EXCEPTION exception_handler+)? END + ; + +// Common DDL Clauses + +invoker_rights_clause + : AUTHID (CURRENT_USER | DEFINER) + ; + +call_spec + : java_spec + | c_spec + ; + +// Call Spec Specific Clauses + +java_spec + : LANGUAGE JAVA NAME CHAR_STRING + ; + +c_spec + : (LANGUAGE C_LETTER | EXTERNAL) ( + NAME id_expression LIBRARY identifier + | LIBRARY identifier (NAME id_expression)? + ) c_agent_in_clause? (WITH CONTEXT)? c_parameters_clause? + ; + +c_agent_in_clause + : AGENT IN '(' expressions_ ')' + ; + +c_parameters_clause + : PARAMETERS '(' c_external_parameter (',' c_external_parameter)* ')' + ; + +c_external_parameter + : CONTEXT + | SELF (TDO | c_property)? + | (parameter_name | RETURN) c_property? (BY REFERENCE)? external_datatype = regular_id? + ; + +c_property + : INDICATOR (STRUCT | TDO)? + | LENGTH + | DURATION + | MAXLEN + | CHARSETID + | CHARSETFORM + ; + +parameter + : parameter_name (IN | OUT | INOUT | NOCOPY)* type_spec? default_value_part? + ; + +default_value_part + : (ASSIGN_OP | DEFAULT) expression + ; + +// Elements Declarations + +seq_of_declare_specs + : declare_spec+ + ; + +declare_spec + : pragma_declaration + | exception_declaration + | procedure_spec + | function_spec + | variable_declaration + | subtype_declaration + | cursor_declaration + | type_declaration + | procedure_body + | function_body + | selection_directive + ; + +// incorporates constant_declaration +variable_declaration + : identifier CONSTANT? type_spec (NOT? NULL_)? default_value_part? ';' + ; + +subtype_declaration + : SUBTYPE identifier IS type_spec (RANGE expression '..' expression)? (NOT NULL_)? ';' + ; + +// cursor_declaration incorportates curscursor_body and cursor_spec + +cursor_declaration + : CURSOR identifier ('(' parameter_spec (',' parameter_spec)* ')')? (RETURN type_spec)? ( + IS select_statement + )? ';' + ; + +parameter_spec + : parameter_name (IN? type_spec)? default_value_part? + ; + +exception_declaration + : identifier EXCEPTION ';' + ; + +pragma_declaration + : PRAGMA ( + SERIALLY_REUSABLE + | AUTONOMOUS_TRANSACTION + | EXCEPTION_INIT '(' exception_name ',' numeric_negative ')' + | INLINE '(' id1 = identifier ',' expression ')' + | RESTRICT_REFERENCES '(' (identifier | DEFAULT) (',' identifier)+ ')' + | DEPRECATE '(' identifier ( ',' CHAR_STRING)? ')' + | UDF + ) ';' + ; + +// Record Declaration Specific Clauses + +// incorporates ref_cursor_type_definition + +record_type_def + : RECORD '(' field_spec (',' field_spec)* ')' + ; + +field_spec + : column_name type_spec? (NOT NULL_)? default_value_part? + ; + +ref_cursor_type_def + : REF CURSOR (RETURN type_spec)? + ; + +type_declaration + : TYPE identifier IS (table_type_def | varray_type_def | record_type_def | ref_cursor_type_def) ';' + ; + +table_type_def + : TABLE OF type_spec (NOT NULL_)? table_indexed_by_part? + ; + +table_indexed_by_part + : (idx1 = INDEXED | idx2 = INDEX) BY type_spec + ; + +//https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/collection-variable.html#GUID-89A1863C-65A1-40CF-9392-86E9FDC21BE9 +varray_type_def + : (VARRAY | VARYING? ARRAY) '(' expression ')' OF type_spec (NOT NULL_)? + ; + +// Statements + +seq_of_statements + : (pragma_declaration* statement (';' | EOF) | label_declaration | selection_directive)+ + ; + +label_declaration + : ltp1 = '<' '<' label_name '>' '>' + ; + +statement + : body + | block + | assignment_statement + | continue_statement + | exit_statement + | goto_statement + | if_statement + | loop_statement + | forall_statement + | null_statement + | raise_statement + | return_statement + | case_statement + | sql_statement + | call_statement + | pipe_row_statement + | grant_statement + ; + +assignment_statement + : (general_element | bind_variable) ASSIGN_OP expression + ; + +continue_statement + : CONTINUE label_name? (WHEN condition)? + ; + +exit_statement + : EXIT label_name? (WHEN condition)? + ; + +goto_statement + : GOTO label_name + ; + +if_statement + : IF condition THEN seq_of_statements elsif_part* else_part? END IF + ; + +elsif_part + : ELSIF condition THEN seq_of_statements + ; + +else_part + : ELSE seq_of_statements + ; + +loop_statement + : label_declaration? (WHILE condition | FOR cursor_loop_param)? LOOP seq_of_statements END LOOP label_name? + ; + +// Loop Specific Clause + +cursor_loop_param + : index_name IN REVERSE? lower_bound range_separator = '..' upper_bound + | record_name IN (cursor_name ('(' expressions_? ')')? | '(' select_statement ')') + ; + +//https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/FORALL-statement.html#GUID-C45B8241-F9DF-4C93-8577-C840A25963DB +forall_statement + : FORALL index_name IN bounds_clause (SAVE EXCEPTIONS)? data_manipulation_language_statements + ; + +bounds_clause + : lower_bound '..' upper_bound + | INDICES OF general_element between_bound? + | VALUES OF index_name + ; + +between_bound + : BETWEEN lower_bound AND upper_bound + ; + +lower_bound + : concatenation + ; + +upper_bound + : concatenation + ; + +null_statement + : NULL_ + ; + +raise_statement + : RAISE exception_name? + ; + +return_statement + : RETURN expression? + ; + +call_statement + : CALL? routine_name function_argument? ('.' routine_name function_argument?)* ( + INTO bind_variable + )? + ; + +pipe_row_statement + : PIPE ROW '(' expression ')' + ; + +selection_directive + : DOLLAR_IF condition DOLLAR_THEN selection_directive_body ( + DOLLAR_ELSIF selection_directive_body + )* (DOLLAR_ELSE selection_directive_body)? DOLLAR_END + ; + +error_directive + : DOLLAR_ERROR concatenation DOLLAR_END + ; + +selection_directive_body + : ( + pragma_declaration? statement ';' + | variable_declaration + | error_directive + | function_body + | procedure_body + )+ + ; + +body + : BEGIN seq_of_statements (EXCEPTION exception_handler+)? END label_name? + ; + +// Body Specific Clause + +exception_handler + : WHEN exception_name (OR exception_name)* THEN seq_of_statements + ; + +trigger_block + : (DECLARE declare_spec*)? body + ; + +tps_block + : declare_spec* body + ; + +block + : (DECLARE declare_spec*)? body + ; + +// SQL Statements + +sql_statement + : execute_immediate + | data_manipulation_language_statements + | cursor_manipulation_statements + | transaction_control_statements + | collection_method_call + ; + +execute_immediate + : EXECUTE IMMEDIATE expression ( + into_clause using_clause? + | using_clause dynamic_returning_clause? + | dynamic_returning_clause + )? + ; + +// Execute Immediate Specific Clause + +dynamic_returning_clause + : (RETURNING | RETURN) into_clause + ; + +// DML Statements + +data_manipulation_language_statements + : merge_statement + | lock_table_statement + | select_statement + | update_statement + | delete_statement + | insert_statement + | explain_statement + ; + +// Cursor Manipulation Statements + +cursor_manipulation_statements + : close_statement + | open_statement + | fetch_statement + | open_for_statement + ; + +close_statement + : CLOSE cursor_name + ; + +open_statement + : OPEN cursor_name ('(' expressions_? ')')? + ; + +fetch_statement + : FETCH cursor_name ( + it1 = INTO variable_or_collection (',' variable_or_collection)* + | BULK COLLECT INTO variable_or_collection (',' variable_or_collection)* ( + LIMIT (numeric | variable_or_collection) + )? + ) + ; + +variable_or_collection + : variable_name + | collection_expression + ; + +open_for_statement + : OPEN variable_name FOR (select_statement | expression) using_clause? + ; + +// Transaction Control SQL Statements + +transaction_control_statements + : set_transaction_command + | set_constraint_command + | commit_statement + | rollback_statement + | savepoint_statement + ; + +set_transaction_command + : SET TRANSACTION ( + READ (ONLY | WRITE) + | ISOLATION LEVEL (SERIALIZABLE | READ COMMITTED) + | USE ROLLBACK SEGMENT rollback_segment_name + )? (NAME quoted_string)? + ; + +set_constraint_command + : SET (CONSTRAINT | CONSTRAINTS) (ALL | constraint_name (',' constraint_name)*) ( + IMMEDIATE + | DEFERRED + ) + ; + +// https://docs.oracle.com/cd/E18283_01/server.112/e17118/statements_4010.htm#SQLRF01110 +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/COMMIT.html +commit_statement + : COMMIT WORK? write_clause? ( + COMMENT CHAR_STRING write_clause? + | FORCE (CHAR_STRING (',' numeric)? | CORRUPT_XID CHAR_STRING | CORRUPT_XID_ALL) + )? + ; + +write_clause + : WRITE ( + (IMMEDIATE | BATCH) + | (WAIT | NOWAIT) + )* + ; + +rollback_statement + : ROLLBACK WORK? (TO SAVEPOINT? savepoint_name | FORCE quoted_string)? + ; + +savepoint_statement + : SAVEPOINT savepoint_name + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/19/lnpls/collection-method.html#GUID-7AF1A3C4-D04B-4F91-9D7B-C92C75E3A300 +collection_method_call // collection methods invocation that could be used as a statement + : expression '.' ( + (DELETE | EXTEND) ('(' index += expression (',' index += expression)* ')')? + | TRIM ('(' index += expression ')')? + ) + ; + +// Dml + +/* TODO +//SHOULD BE OVERRIDEN! +compilation_unit + : seq_of_statements* EOF + ; + +//SHOULD BE OVERRIDEN! +seq_of_statements + : select_statement + | update_statement + | delete_statement + | insert_statement + | lock_table_statement + | merge_statement + | explain_statement +// | case_statement[true] + ; +*/ + +explain_statement + : EXPLAIN PLAN (SET STATEMENT_ID '=' quoted_string)? (INTO tableview_name)? FOR ( + select_statement + | update_statement + | delete_statement + | insert_statement + | merge_statement + ) + ; + +select_only_statement + : with_clause? subquery + ; + +select_statement + : select_only_statement (for_update_clause | order_by_clause | offset_clause | fetch_clause)* + ; + +// Select Specific Clauses +with_clause + : WITH (function_body | procedure_body)* with_factoring_clause (',' with_factoring_clause)* + | WITH (function_body | procedure_body)+ (with_factoring_clause (',' with_factoring_clause)*)? + ; + +with_factoring_clause + : subquery_factoring_clause + | subav_factoring_clause + ; + +subquery_factoring_clause + : query_name paren_column_list? AS '(' subquery order_by_clause? ')' search_clause? cycle_clause? + ; + +search_clause + : SEARCH (DEPTH | BREADTH) FIRST BY column_name ASC? DESC? (NULLS FIRST)? (NULLS LAST)? ( + ',' column_name ASC? DESC? (NULLS FIRST)? (NULLS LAST)? + )* SET column_name + ; + +cycle_clause + : CYCLE column_list SET column_name TO expression DEFAULT expression + ; + +subav_factoring_clause + : subav_name = id_expression ANALYTIC VIEW AS '(' subav_clause ')' + ; + +subav_clause + : USING subav_name = object_name hierarchies_clause? filter_clauses? add_calcs_clause? + ; + +hierarchies_clause + : HIERARCHIES '(' hier_alias += object_name (',' hier_alias += object_name)* ')' + ; + +filter_clauses + : FILTER FACT '(' filter_clause (',' filter_clause)* ')' + ; + +filter_clause + : (MEASURES | hier_alias = object_name) TO condition + ; + +add_calcs_clause + : ADD MEASURES '(' add_calc_meas_clause (',' add_calc_meas_clause)* ')' + ; + +add_calc_meas_clause + : meas_name = id_expression AS '(' expression ')' + ; + +subquery + : subquery_basic_elements subquery_operation_part* + ; + +subquery_basic_elements + : query_block + | '(' subquery ')' + ; + +subquery_operation_part + : (UNION ALL? | INTERSECT | MINUS) subquery_basic_elements + ; + +query_block + : SELECT (DISTINCT | UNIQUE | ALL)? selected_list into_clause? from_clause? where_clause? ( + hierarchical_query_clause + | group_by_clause + )* model_clause? order_by_clause? offset_clause? fetch_clause? + ; + +selected_list + : '*' + | select_list_elements (',' select_list_elements)* + ; + +from_clause + : FROM table_ref_list + ; + +select_list_elements + : tableview_name '.' ASTERISK + | expression column_alias? + ; + +table_ref_list + : table_ref (',' table_ref)* + ; + +// NOTE to PIVOT clause +// according the SQL reference this should not be possible +// according to he reality it is. Here we probably apply pivot/unpivot onto whole join clause +// eventhough it is not enclosed in parenthesis. See pivot examples 09,10,11 + +table_ref + : table_ref_aux join_clause* (pivot_clause | unpivot_clause)? + ; + +table_ref_aux + : table_ref_aux_internal flashback_query_clause* (/*{isTableAlias()}?*/ table_alias)? + ; + +table_ref_aux_internal + : dml_table_expression_clause (pivot_clause | unpivot_clause)? # table_ref_aux_internal_one + | '(' table_ref subquery_operation_part* ')' (pivot_clause | unpivot_clause)? # table_ref_aux_internal_two + | ONLY '(' dml_table_expression_clause ')' # table_ref_aux_internal_thre + ; + +join_clause + : query_partition_clause? (CROSS | NATURAL)? (INNER | outer_join_type)? JOIN table_ref_aux query_partition_clause? ( + join_on_part + | join_using_part + )* + | (CROSS | OUTER) APPLY table_ref_aux + ; + +join_on_part + : ON condition + ; + +join_using_part + : USING paren_column_list + ; + +outer_join_type + : (FULL | LEFT | RIGHT) OUTER? + ; + +query_partition_clause + : PARTITION BY (('(' (subquery | expressions_)? ')') | expressions_) + ; + +flashback_query_clause + : VERSIONS (PERIOD_KEYWORD FOR column_name BETWEEN | BETWEEN (SCN | TIMESTAMP)) expression AND expression + | AS OF ((SCN | TIMESTAMP | SNAPSHOT) expression | PERIOD_KEYWORD FOR column_name expression) + ; + +pivot_clause + : PIVOT XML? '(' pivot_element (',' pivot_element)* pivot_for_clause pivot_in_clause ')' table_alias? + ; + +pivot_element + : (numeric_function | aggregate_function_name '(' expression ')') column_alias? + ; + +pivot_for_clause + : FOR (column_name | paren_column_list) + ; + +pivot_in_clause + : IN '(' (subquery | ANY (',' ANY)* | pivot_in_clause_element (',' pivot_in_clause_element)*) ')' + ; + +pivot_in_clause_element + : pivot_in_clause_elements column_alias? + ; + +pivot_in_clause_elements + : expression + | '(' expressions_? ')' + ; + +unpivot_clause + : UNPIVOT ((INCLUDE | EXCLUDE) NULLS)? '(' (column_name | paren_column_list) pivot_for_clause unpivot_in_clause ')' table_alias? + ; + +unpivot_in_clause + : IN '(' unpivot_in_elements (',' unpivot_in_elements)* ')' + ; + +unpivot_in_elements + : (column_name | paren_column_list) (AS (constant | '(' constant (',' constant)* ')'))? + ; + +hierarchical_query_clause + : CONNECT BY NOCYCLE? condition start_part? + | start_part CONNECT BY NOCYCLE? condition + ; + +start_part + : START WITH condition + ; + +group_by_clause + : GROUP BY group_by_elements (',' group_by_elements)* having_clause? + | having_clause (GROUP BY group_by_elements (',' group_by_elements)*)? + ; + +group_by_elements + : grouping_sets_clause + | rollup_cube_clause + | expression + ; + +rollup_cube_clause + : (ROLLUP | CUBE) '(' grouping_sets_elements (',' grouping_sets_elements)* ')' + ; + +grouping_sets_clause + : GROUPING SETS '(' grouping_sets_elements (',' grouping_sets_elements)* ')' + ; + +grouping_sets_elements + : rollup_cube_clause + | '(' expressions_? ')' + | expression + ; + +having_clause + : HAVING condition + ; + +model_clause + : MODEL cell_reference_options* return_rows_clause? reference_model* main_model + ; + +cell_reference_options + : (IGNORE | KEEP) NAV + | UNIQUE (DIMENSION | SINGLE REFERENCE) + ; + +return_rows_clause + : RETURN (UPDATED | ALL) ROWS + ; + +reference_model + : REFERENCE reference_model_name ON '(' subquery ')' model_column_clauses cell_reference_options* + ; + +main_model + : (MAIN main_model_name)? model_column_clauses cell_reference_options* model_rules_clause + ; + +model_column_clauses + : model_column_partition_part? DIMENSION BY model_column_list MEASURES model_column_list + ; + +model_column_partition_part + : PARTITION BY model_column_list + ; + +model_column_list + : '(' model_column (',' model_column)* ')' + ; + +model_column + : (expression | query_block) column_alias? + ; + +model_rules_clause + : model_rules_part? '(' (model_rules_element (',' model_rules_element)*)? ')' + ; + +model_rules_part + : RULES (UPDATE | UPSERT ALL?)? ((AUTOMATIC | SEQUENTIAL) ORDER)? model_iterate_clause? + ; + +model_rules_element + : (UPDATE | UPSERT ALL?)? cell_assignment order_by_clause? '=' expression + ; + +cell_assignment + : model_expression + ; + +model_iterate_clause + : ITERATE '(' expression ')' until_part? + ; + +until_part + : UNTIL '(' condition ')' + ; + +order_by_clause + : ORDER SIBLINGS? BY order_by_elements (',' order_by_elements)* + ; + +order_by_elements + : expression (ASC | DESC)? (NULLS (FIRST | LAST))? + ; + +offset_clause + : OFFSET expression (ROW | ROWS) + ; + +fetch_clause + : FETCH (FIRST | NEXT) (expression PERCENT_KEYWORD?)? (ROW | ROWS) (ONLY | WITH TIES) + ; + +for_update_clause + : FOR UPDATE for_update_of_part? for_update_options? + ; + +for_update_of_part + : OF column_list + ; + +for_update_options + : SKIP_ LOCKED + | NOWAIT + | WAIT expression + ; + +update_statement + : UPDATE general_table_ref update_set_clause where_clause? static_returning_clause? error_logging_clause? + ; + +// Update Specific Clauses + +update_set_clause + : SET ( + column_based_update_set_clause (',' column_based_update_set_clause)* + | VALUE '(' identifier ')' '=' expression + ) + ; + +column_based_update_set_clause + : column_name '=' expression + | paren_column_list '=' subquery + ; + +delete_statement + : DELETE FROM? general_table_ref where_clause? static_returning_clause? error_logging_clause? + ; + +insert_statement + : INSERT (single_table_insert | multi_table_insert) + ; + +// Insert Specific Clauses + +single_table_insert + : insert_into_clause (values_clause static_returning_clause? | select_statement) error_logging_clause? + ; + +multi_table_insert + : (ALL multi_table_element+ | conditional_insert_clause) select_statement + ; + +multi_table_element + : insert_into_clause values_clause? error_logging_clause? + ; + +conditional_insert_clause + : (ALL | FIRST)? conditional_insert_when_part+ conditional_insert_else_part? + ; + +conditional_insert_when_part + : WHEN condition THEN multi_table_element+ + ; + +conditional_insert_else_part + : ELSE multi_table_element+ + ; + +insert_into_clause + : INTO general_table_ref paren_column_list? + ; + +values_clause + : VALUES (REGULAR_ID | '(' expressions_ ')' | collection_expression) + ; + +merge_statement + : MERGE INTO tableview_name table_alias? USING selected_tableview ON '(' condition ')' ( + merge_update_clause merge_insert_clause? + | merge_insert_clause merge_update_clause? + )? error_logging_clause? + ; + +// Merge Specific Clauses + +merge_update_clause + : WHEN MATCHED THEN UPDATE SET merge_element (',' merge_element)* where_clause? merge_update_delete_part? + ; + +merge_element + : column_name '=' expression + ; + +merge_update_delete_part + : DELETE where_clause + ; + +merge_insert_clause + : WHEN NOT MATCHED THEN INSERT paren_column_list? values_clause where_clause? + ; + +selected_tableview + : ( tableview_name | '(' select_statement ')' | table_collection_expression | '(' table_collection_expression ')') table_alias? + ; + +lock_table_statement + : LOCK TABLE lock_table_element (',' lock_table_element)* IN lock_mode MODE wait_nowait_part? + ; + +wait_nowait_part + : WAIT expression + | NOWAIT + ; + +// Lock Specific Clauses + +lock_table_element + : tableview_name partition_extension_clause? + ; + +lock_mode + : ROW SHARE + | ROW EXCLUSIVE + | SHARE UPDATE? + | SHARE ROW EXCLUSIVE + | EXCLUSIVE + ; + +// Common DDL Clauses + +general_table_ref + : (dml_table_expression_clause | ONLY '(' dml_table_expression_clause ')') table_alias? + ; + +static_returning_clause + : (RETURNING | RETURN) expressions_ into_clause + ; + +error_logging_clause + : LOG ERRORS error_logging_into_part? expression? error_logging_reject_part? + ; + +error_logging_into_part + : INTO tableview_name + ; + +error_logging_reject_part + : REJECT LIMIT (UNLIMITED | expression) + ; + +dml_table_expression_clause + : table_collection_expression + | '(' select_statement subquery_restriction_clause? ')' + | tableview_name hierarchies_clause? sample_clause? + | json_table_clause (AS identifier)? + | LATERAL '(' subquery subquery_restriction_clause? ')' + // Deprecated Oracle 10/11 RELATIONAL alias for casting object-types to relational tables + | {this.isVersion11()}? (RELATIONAL '(' tableview_name NOT XMLTYPE ')') + ; + +table_collection_expression + : (TABLE | THE) ('(' subquery ')' | '(' expression ')' outer_join_sign?) + ; + +subquery_restriction_clause + : WITH (READ ONLY | CHECK OPTION (CONSTRAINT constraint_name)?) + ; + +sample_clause + : SAMPLE BLOCK? '(' expression (',' expression)? ')' seed_part? + ; + +seed_part + : SEED '(' expression ')' + ; + +// Expression & Condition + +condition + : expression + | JSON_EQUAL '(' expressions_ ')' + ; + +expressions_ + : expression (',' expression)* + ; + +expression + : CHAR_STRING + | NULL_ + | TRUE + | FALSE + | APPROXIMATE_NUM_LIT + | UNSIGNED_INTEGER + | column_name + | cursor_expression + | logical_expression + ; + +cursor_expression + : CURSOR '(' subquery ')' + ; + +logical_expression + : unary_logical_expression + | logical_expression AND logical_expression + | logical_expression OR logical_expression + ; + +unary_logical_expression + : NOT? multiset_expression unary_logical_operation? + ; + +unary_logical_operation + : IS NOT? logical_operation + ; + +logical_operation + : ( + NULL_ + | NAN_ + | PRESENT + | INFINITE + | A_LETTER SET + | EMPTY_ + | OF TYPE? '(' ONLY? type_spec (',' type_spec)* ')' + | JSON (FORMAT JSON)? (STRICT | LAX)? ((WITH | WITHOUT) UNIQUE KEYS)? + ) + ; + +multiset_expression + : relational_expression (multiset_type = NOT? (MEMBER | SUBMULTISET) OF? concatenation)? + | multiset_expression MULTISET multiset_operator = (EXCEPT | INTERSECT | UNION) ( + ALL + | DISTINCT + )? relational_expression + ; + +relational_expression + : relational_expression relational_operator relational_expression + | relational_expression NOT? IN in_elements + | compound_expression + ; + +compound_expression + : concatenation ( + NOT? ( + IN in_elements + | BETWEEN between_elements + | like_type = (LIKE | LIKEC | LIKE2 | LIKE4) concatenation (ESCAPE concatenation)? + ) + )? + ; + +relational_operator + : '=' + | (NOT_EQUAL_OP | '<' '>' | '!' '=' | '^' '=') + | ('<' | '>') '='? + ; + +in_elements + : '(' subquery ')' + | '(' concatenation (',' concatenation)* ')' + | constant + | bind_variable + | general_element + ; + +between_elements + : concatenation AND concatenation + ; + +concatenation + : model_expression (AT (LOCAL | TIME ZONE concatenation) | interval_expression)? ( + ON OVERFLOW_ (TRUNCATE | ERROR) + )? + | concatenation op = DOUBLE_ASTERISK concatenation + | concatenation op = (ASTERISK | SOLIDUS | MOD) concatenation + | concatenation op = (PLUS_SIGN | MINUS_SIGN) concatenation + | concatenation BAR BAR concatenation + | concatenation COLLATE column_collation_name + ; + +interval_expression + : DAY ('(' concatenation ')')? TO SECOND ('(' concatenation ')')? + | YEAR ('(' concatenation ')')? TO MONTH + | concatenation (SECOND | DAY | MONTH | YEAR) + ; + +model_expression + : unary_expression ('[' model_expression_element ']')? + ; + +model_expression_element + : (ANY | expression) (',' (ANY | expression))* + | single_column_for_loop (',' single_column_for_loop)* + | multi_column_for_loop + ; + +single_column_for_loop + : FOR column_name ( + IN '(' expressions_? ')' + | (LIKE expression)? FROM fromExpr = expression TO toExpr = expression action_type = ( + INCREMENT + | DECREMENT + ) action_expr = expression + ) + ; + +multi_column_for_loop + : FOR paren_column_list IN '(' (subquery | '(' expressions_? ')') ')' + ; + +unary_expression + : ('-' | '+') unary_expression + | PRIOR unary_expression + | CONNECT_BY_ROOT unary_expression + | /*TODO {input.LT(1).getText().equalsIgnoreCase("new") && !input.LT(2).getText().equals(".")}?*/ NEW unary_expression + | DISTINCT unary_expression + | ALL unary_expression + | /*TODO{(input.LA(1) == CASE || input.LA(2) == CASE)}?*/ case_expression + | unary_expression '.' ( + (COUNT | FIRST | LAST | LIMIT) + | (EXISTS | NEXT | PRIOR) '(' index += expression ')' + ) + | quantified_expression + | standard_function + | atom + | implicit_cursor_expression + ; + +// https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-optimization-and-tuning.html#GUID-DAF46F06-EF3F-4B1A-A518-5238B80C69FA +implicit_cursor_expression + : SQL ( + PERCENT_BULK_ROWCOUNT '(' index = expression ')' + | PERCENT_BULK_EXCEPTIONS ('.' COUNT | '(' expression ')' '.' (ERROR_INDEX | ERROR_CODE)) + ) + ; + +collection_expression + : collation_name '(' expression ')' ('.' general_element_part)* + ; + +// CASE statement +case_statement + : searched_case_statement + | simple_case_statement + ; + +simple_case_statement + : label_declaration? ck1 = CASE expression case_when_part_statement+ case_else_part_statement? END CASE? label_name? + ; + +searched_case_statement + : label_declaration? ck1 = CASE case_when_part_statement+ case_else_part_statement? END CASE? label_name? + ; + +case_when_part_statement + : WHEN expression THEN seq_of_statements + ; + +case_else_part_statement + : ELSE seq_of_statements + ; + + +// CASE expression +case_expression + : searched_case_expression + | simple_case_expression + ; + +simple_case_expression + : ck1 = CASE expression case_when_part_expression+ case_else_part_expression? END CASE? + ; + +searched_case_expression + : ck1 = CASE case_when_part_expression+ case_else_part_expression? END CASE? + ; + +case_when_part_expression + : WHEN expression THEN expression + ; + +case_else_part_expression + : ELSE expression + ; + +atom + : bind_variable + | constant + | inquiry_directive + | general_element outer_join_sign? + | '(' subquery ')' subquery_operation_part* + | '(' expressions_ ')' + ; + +quantified_expression + : (SOME | EXISTS | ALL | ANY) ( + '(' select_only_statement ')' + | '(' expression (',' expression)* ')' + ) + ; + +string_function + : SUBSTR '(' expression ',' expression (',' expression)? ')' + | TO_CHAR '(' (table_element | standard_function | expression) (',' quoted_string)? ( + ',' quoted_string + )? ')' + | DECODE '(' expressions_ ')' + | CHR '(' concatenation USING NCHAR_CS ')' + | NVL '(' expression ',' expression ')' + | TRIM '(' ((LEADING | TRAILING | BOTH)? expression? FROM)? concatenation ')' + | TO_DATE '(' (table_element | standard_function | expression) ( + DEFAULT concatenation ON CONVERSION ERROR + )? (',' quoted_string (',' quoted_string)?)? ')' + ; + +standard_function + : string_function + | numeric_function_wrapper + | json_function + | other_function + ; + +//see as https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/JSON_ARRAY.html#GUID-46CDB3AF-5795-455B-85A8-764528CEC43B +json_function + : JSON_ARRAY '(' json_array_element (',' json_array_element)* json_on_null_clause? json_return_clause? STRICT? ')' + | JSON_ARRAYAGG '(' expression (FORMAT JSON)? order_by_clause? json_on_null_clause? json_return_clause? STRICT? ')' + | JSON_OBJECT '(' json_object_content ')' + | JSON_OBJECTAGG '(' KEY? expression VALUE expression ((NULL_ | ABSENT) ON NULL_)? ( + RETURNING (VARCHAR2 ('(' UNSIGNED_INTEGER ( BYTE | CHAR)? ')')? | CLOB | BLOB) + )? STRICT? (WITH UNIQUE KEYS)? ')' + | JSON_QUERY '(' expression (FORMAT JSON)? ',' CHAR_STRING json_query_returning_clause json_query_wrapper_clause? json_query_on_error_clause? + json_query_on_empty_clause? ')' + | JSON_SERIALIZE '(' CHAR_STRING (RETURNING json_query_return_type)? PRETTY? ASCII? TRUNCATE? ( + (NULL_ | ERROR | EMPTY_ (ARRAY | OBJECT)) ON ERROR + )? ')' + | JSON_TRANSFORM '(' expression ',' json_transform_op (',' json_transform_op)* ')' + | JSON_VALUE '(' expression (FORMAT JSON)? ( + ',' CHAR_STRING? json_value_return_clause? ((ERROR | NULL_ | DEFAULT literal)? ON ERROR)? ( + (ERROR | NULL_ | DEFAULT literal)? ON EMPTY_ + )? json_value_on_mismatch_clause? ')' + )? + ; + +json_object_content + : (json_object_entry (',' json_object_entry)* | '*') json_on_null_clause? json_return_clause? STRICT? ( + WITH UNIQUE KEYS + )? + ; + +json_object_entry + : (KEY? expression (VALUE | IS)? expression | expression ':' expression | identifier) ( + FORMAT JSON + )? + ; + +json_table_clause + : JSON_TABLE '(' expression (FORMAT JSON)? (',' CHAR_STRING)? ((ERROR | NULL_) ON ERROR)? ( + (EMPTY_ | NULL_) ON EMPTY_ + )? json_column_clause? ')' + ; + +json_array_element + : (expression | CHAR_STRING | NULL_ | UNSIGNED_INTEGER | json_function) (FORMAT JSON)? + ; + +json_on_null_clause + : (NULL_ | ABSENT) ON NULL_ + ; + +json_return_clause + : RETURNING (VARCHAR2 ('(' UNSIGNED_INTEGER ( BYTE | CHAR)? ')')? | CLOB | BLOB) + ; + +json_transform_op + : REMOVE CHAR_STRING ((IGNORE | ERROR)? ON MISSING)? + | INSERT CHAR_STRING '=' CHAR_STRING ((REPLACE | IGNORE | ERROR) ON EXISTING)? ( + (NULL_ | IGNORE | ERROR | REMOVE)? ON NULL_ + )? + | REPLACE CHAR_STRING '=' CHAR_STRING ((CREATE | IGNORE | ERROR) ON MISSING)? ( + (NULL_ | IGNORE | ERROR)? ON NULL_ + )? + | expression (FORMAT JSON)? + | APPEND CHAR_STRING '=' CHAR_STRING ((CREATE | IGNORE | ERROR) ON MISSING)? ( + (NULL_ | IGNORE | ERROR)? ON NULL_ + )? + | SET CHAR_STRING '=' expression (FORMAT JSON)? ((REPLACE | IGNORE | ERROR) ON EXISTING)? ( + (CREATE | IGNORE | ERROR) ON MISSING + )? ((NULL_ | IGNORE | ERROR)? ON NULL_)? + ; + +json_column_clause + : COLUMNS '(' json_column_definition (',' json_column_definition)* ')' + ; + +json_column_definition + : expression json_value_return_type? (EXISTS? PATH CHAR_STRING | TRUNCATE (PATH CHAR_STRING)?)? json_query_on_error_clause? + json_query_on_empty_clause? + | expression json_query_return_type? TRUNCATE? FORMAT JSON json_query_wrapper_clause? PATH CHAR_STRING + | NESTED PATH? expression ('[' ASTERISK ']')? json_column_clause + | expression FOR ORDINALITY + ; + +json_query_returning_clause + : (RETURNING json_query_return_type)? PRETTY? ASCII? + ; + +json_query_return_type + : VARCHAR2 ('(' UNSIGNED_INTEGER ( BYTE | CHAR)? ')')? + | CLOB + | BLOB + ; + +json_query_wrapper_clause + : (WITHOUT ARRAY? WRAPPER) + | (WITH (UNCONDITIONAL | CONDITIONAL)? ARRAY? WRAPPER) + ; + +json_query_on_error_clause + : (ERROR | NULL_ | EMPTY_ | EMPTY_ ARRAY | EMPTY_ OBJECT)? ON ERROR + ; + +json_query_on_empty_clause + : (ERROR | NULL_ | EMPTY_ | EMPTY_ ARRAY | EMPTY_ OBJECT)? ON EMPTY_ + ; + +json_value_return_clause + : RETURNING json_value_return_type? ASCII? + ; + +json_value_return_type + : VARCHAR2 ('(' UNSIGNED_INTEGER ( BYTE | CHAR)? ')')? TRUNCATE? + | CLOB + | DATE + | NUMBER ('(' INTEGER (',' INTEGER)? ')')? + | TIMESTAMP (WITH TIMEZONE)? + | SDO_GEOMETRY + | expression (USING CASESENSITIVE MAPPING)? + ; + +json_value_on_mismatch_clause + : (IGNORE | ERROR | NULL_) ON MISMATCH ('(' MISSING DATA | EXTRA DATA | TYPE ERROR ')')? + ; + +literal + : CHAR_STRING + | string_function + | numeric + | numeric_negative + | MAXVALUE + ; + +numeric_function_wrapper + : numeric_function (single_column_for_loop | multi_column_for_loop)? + ; + +numeric_function + : SUM '(' (DISTINCT | ALL)? expression ')' + | COUNT '(' (ASTERISK | ((DISTINCT | UNIQUE | ALL)? concatenation)?) ')' over_clause? + | ROUND '(' expression (',' UNSIGNED_INTEGER)? ')' + | AVG '(' (DISTINCT | ALL)? expression ')' + | MAX '(' (DISTINCT | ALL)? expression ')' + | LEAST '(' expressions_ ')' + | GREATEST '(' expressions_ ')' + ; + +listagg_overflow_clause + : ON OVERFLOW_ (ERROR | TRUNCATE) CHAR_STRING? ((WITH | WITHOUT) COUNT)? + ; + +other_function + : over_clause_keyword function_argument_analytic over_clause? + | /*TODO stantard_function_enabling_using*/ regular_id function_argument_modeling using_clause? + | COUNT '(' (ASTERISK | (DISTINCT | UNIQUE | ALL)? concatenation) ')' over_clause? + | (CAST | XMLCAST) '(' (MULTISET '(' subquery ')' | concatenation) AS type_spec ( + DEFAULT concatenation ON CONVERSION ERROR + )? (',' quoted_string (',' quoted_string)?)? ')' + | COALESCE '(' table_element (',' (numeric | quoted_string))? ')' + | COLLECT '(' (DISTINCT | UNIQUE)? concatenation collect_order_by_part? ')' + | within_or_over_clause_keyword function_argument within_or_over_part+ + // Modified to allow expressions as delimiter to LISTAGG + | LISTAGG '(' (ALL | DISTINCT | UNIQUE)? argument (',' expression)? listagg_overflow_clause? ')' ( + WITHIN GROUP '(' order_by_clause ')' + )? over_clause? + | cursor_name (PERCENT_ISOPEN | PERCENT_FOUND | PERCENT_NOTFOUND | PERCENT_ROWCOUNT) + | DECOMPOSE '(' concatenation (CANONICAL | COMPATIBILITY)? ')' + | EXTRACT '(' regular_id FROM concatenation ')' + | (FIRST_VALUE | LAST_VALUE) function_argument_analytic respect_or_ignore_nulls? over_clause + | (LEAD | LAG) function_argument_analytic respect_or_ignore_nulls? over_clause + | standard_prediction_function_keyword '(' expressions_ cost_matrix_clause? using_clause? ')' + | (TO_BINARY_DOUBLE | TO_BINARY_FLOAT | TO_NUMBER | TO_TIMESTAMP | TO_TIMESTAMP_TZ) '(' concatenation ( + DEFAULT concatenation ON CONVERSION ERROR + )? (',' quoted_string (',' quoted_string)?)? ')' + | (TO_DSINTERVAL | TO_YMINTERVAL) '(' concatenation (DEFAULT concatenation ON CONVERSION ERROR)? ')' + | TRANSLATE '(' expression (USING (CHAR_CS | NCHAR_CS))? (',' expression)* ')' + | TREAT '(' expression AS REF? type_spec ')' ('.' general_element_part)* + | TRIM '(' ((LEADING | TRAILING | BOTH)? quoted_string? FROM)? concatenation ')' + | VALIDATE_CONVERSION '(' concatenation AS type_spec (',' quoted_string (',' quoted_string)?)? ')' + | XMLAGG '(' expression order_by_clause? ')' ('.' general_element_part)* + | (XMLCOLATTVAL | XMLFOREST) '(' xml_multiuse_expression_element ( + ',' xml_multiuse_expression_element + )* ')' ('.' general_element_part)* + | XMLELEMENT '(' (ENTITYESCAPING | NOENTITYESCAPING)? (NAME | EVALNAME)? expression ( + /*TODO{input.LT(2).getText().equalsIgnoreCase("xmlattributes")}?*/ ',' xml_attributes_clause + )? (',' expression column_alias?)* ')' ('.' general_element_part)* + | XMLEXISTS '(' expression xml_passing_clause? ')' + | XMLPARSE '(' (DOCUMENT | CONTENT) concatenation WELLFORMED? ')' ('.' general_element_part)* + | XMLPI '(' (NAME identifier | EVALNAME concatenation) (',' concatenation)? ')' ( + '.' general_element_part + )* + | XMLQUERY '(' concatenation xml_passing_clause? RETURNING CONTENT (NULL_ ON EMPTY_)? ')' ( + '.' general_element_part + )* + | XMLROOT '(' concatenation (',' xmlroot_param_version_part)? ( + ',' xmlroot_param_standalone_part + )? ')' ('.' general_element_part)* + | XMLSERIALIZE '(' (DOCUMENT | CONTENT) concatenation (AS type_spec)? xmlserialize_param_enconding_part? xmlserialize_param_version_part? + xmlserialize_param_ident_part? ((HIDE | SHOW) DEFAULTS)? ')' ('.' general_element_part)? + | TIME CHAR_STRING + | xmltable + ; + +over_clause_keyword + : AVG + | CORR + | LAG_DIFF + | LAG_DIFF_PERCENT + | MAX + | MEDIAN + | MIN + | NTH_VALUE + | NTILE + | RATIO_TO_REPORT + | ROW_NUMBER + | SUM + | VARIANCE + | REGR_ + | STDDEV + | VAR_ + | VAR_POP + | COVAR_ + | WM_CONCAT + ; + +within_or_over_clause_keyword + : CUME_DIST + | DENSE_RANK + | PERCENT_RANK + | PERCENTILE_CONT + | PERCENTILE_DISC + | RANK + ; + +standard_prediction_function_keyword + : PREDICTION + | PREDICTION_BOUNDS + | PREDICTION_COST + | PREDICTION_DETAILS + | PREDICTION_PROBABILITY + | PREDICTION_SET + ; + +over_clause + : OVER '(' ( + query_partition_clause? (order_by_clause windowing_clause?)? + | HIERARCHY th = id_expression OFFSET numeric (ACROSS ANCESTOR AT LEVEL id_expression)? + ) ')' + ; + +windowing_clause + : windowing_type (BETWEEN windowing_elements AND windowing_elements | windowing_elements) + ; + +windowing_type + : ROWS + | RANGE + ; + +windowing_elements + : UNBOUNDED PRECEDING + | CURRENT ROW + | concatenation (PRECEDING | FOLLOWING) + ; + +using_clause + : USING (ASTERISK | using_element (',' using_element)*) + ; + +using_element + : (IN OUT? | OUT)? select_list_elements + ; + +collect_order_by_part + : ORDER BY concatenation (',' concatenation)* + ; + +within_or_over_part + : WITHIN GROUP '(' order_by_clause ')' + | over_clause + ; + +string_delimiter + : CHAR_STRING + | string_function + | string_delimiter BAR BAR string_delimiter + | '(' string_delimiter ')' + | id_expression + ; + +cost_matrix_clause + : COST ( + MODEL AUTO? + | '(' cost_class_name (',' cost_class_name)* ')' VALUES '(' expressions_? ')' + ) + ; + +xml_passing_clause + : PASSING (BY VALUE)? expression column_alias? (',' expression column_alias?)* + ; + +xml_attributes_clause + : XMLATTRIBUTES '(' (ENTITYESCAPING | NOENTITYESCAPING)? (SCHEMACHECK | NOSCHEMACHECK)? xml_multiuse_expression_element ( + ',' xml_multiuse_expression_element + )* ')' + ; + +xml_namespaces_clause + : XMLNAMESPACES '(' (concatenation column_alias)? (',' concatenation column_alias)* xml_general_default_part? ')' + ; + +xml_table_column + : xml_column_name (FOR ORDINALITY | type_spec (PATH concatenation)? xml_general_default_part?) + ; + +xml_general_default_part + : DEFAULT concatenation + ; + +xml_multiuse_expression_element + : expression + ( (AS? id_expression) + | (AS EVALNAME expression) + )? + ; + +xmlroot_param_version_part + : VERSION (NO VALUE | expression) + ; + +xmlroot_param_standalone_part + : STANDALONE (YES | NO VALUE?) + ; + +xmlserialize_param_enconding_part + : ENCODING concatenation + ; + +xmlserialize_param_version_part + : VERSION concatenation + ; + +xmlserialize_param_ident_part + : NO INDENT + | INDENT (SIZE '=' concatenation)? + ; + +// Annotations + +annotations_clause + : ANNOTATIONS '(' annotations_list ')' + ; + +annotations_list + : ( + ADD (IF NOT EXISTS | OR REPLACE)? + | DROP (IF EXISTS)? + | REPLACE + )? annotation (',' annotations_list)* + ; + +annotation + : identifier CHAR_STRING? + ; + +// SqlPlus + +sql_plus_command_no_semicolon + : set_command + ; + +sql_plus_command + : EXIT + | PROMPT_MESSAGE + | SHOW (ERR | ERRORS) + | whenever_command + | timing_command + | start_command + | set_command + | clear_command + ; + +start_command + : START_CMD id_expression PERIOD (SQL | FILE_EXT) + ; + +whenever_command + : WHENEVER (SQLERROR | OSERROR) ( + EXIT (SUCCESS | FAILURE | WARNING | variable_name | numeric) (COMMIT | ROLLBACK)? + | CONTINUE (COMMIT | ROLLBACK | NONE)? + ) + ; + +set_command + : SET ( + (regular_id (ON | OFF))+ + | (regular_id (CHAR_STRING | ON | OFF | /*EXACT_NUM_LIT*/ numeric | regular_id)) + ) + ; + +timing_command + : TIMING (START timing_text = id_expression* | SHOW | STOP)? + ; + +clear_command + : CLEAR (COLUMN? regular_id) | ALL + ; + +// Common + +partition_extension_clause + : (SUBPARTITION | PARTITION) FOR? '(' expressions_? ')' + ; + +column_alias + : AS? (identifier | quoted_string) + | AS + ; + +table_alias + : identifier + | quoted_string + ; + +where_clause + : WHERE (CURRENT OF cursor_name | condition) + ; + +into_clause + : (BULK COLLECT)? INTO (general_element | bind_variable) ( + ',' (general_element | bind_variable) + )* + ; + +// Common Named Elements + +xml_column_name + : identifier + | quoted_string + ; + +cost_class_name + : identifier + ; + +attribute_name + : identifier + ; + +savepoint_name + : identifier + ; + +rollback_segment_name + : identifier + ; + +schema_name + : identifier + ; + +routine_name + : identifier ('.' id_expression)* ('@' link_name)? + ; + +package_name + : identifier + ; + +implementation_type_name + : identifier ('.' id_expression)? + ; + +parameter_name + : identifier + ; + +reference_model_name + : identifier + ; + +main_model_name + : identifier + ; + +container_tableview_name + : identifier ('.' id_expression)? + ; + +aggregate_function_name + : identifier ('.' id_expression)* + ; + +query_name + : identifier + ; + +grantee_name + : id_expression identified_by? + ; + +role_name + : id_expression + | CONNECT + ; + +constraint_name + : identifier ('.' id_expression)* ('@' link_name)? + ; + +label_name + : id_expression + ; + +type_name + : id_expression ('.' id_expression)* + ; + +sequence_name + : id_expression ('.' id_expression)* + ; + +exception_name + : identifier ('.' id_expression)* + ; + +function_name + : identifier ('.' id_expression)? + ; + +procedure_name + : identifier ('.' id_expression)? + ; + +trigger_name + : identifier ('.' id_expression)? + ; + +variable_name + : (INTRODUCER char_set_name)? id_expression ('.' id_expression)? + | bind_variable + ; + +index_name + : identifier ('.' id_expression)? + ; + +cursor_name + : general_element + | bind_variable + ; + +record_name + : identifier + | bind_variable + ; + +link_name + : database ('.' domain)* (AT_SIGN connection_qualifier)? + ; + +local_link_name + : identifier + ; + +connection_qualifier + : identifier + ; + +column_name + : identifier ('.' id_expression)* + ; + +tableview_name + : identifier ('.' id_expression)? ( + AT_SIGN link_name + | /*TODO{!(input.LA(2) == BY)}?*/ partition_extension_clause + )? + | xmltable outer_join_sign? + ; + +xmltable + : XMLTABLE '(' (xml_namespaces_clause ',')? concatenation xml_passing_clause? ( + COLUMNS xml_table_column (',' xml_table_column)* + )? ')' ('.' general_element_part)? + ; + +char_set_name + : id_expression ('.' id_expression)* + ; + +synonym_name + : identifier + ; + +// Represents a valid DB object name in DDL commands which are valid for several DB (or schema) objects. +// For instance, create synonym ... for , or rename to . +// Both are valid for sequences, tables, views, etc. +schema_object_name + : id_expression + ; + +dir_object_name + : id_expression + ; + +user_object_name + : id_expression + ; + +grant_object_name + : tableview_name + | USER user_object_name (',' user_object_name)* + | DIRECTORY dir_object_name + | EDITION schema_object_name + | MINING MODEL schema_object_name + | JAVA (SOURCE | RESOURCE) schema_object_name + | SQL TRANSLATION PROFILE schema_object_name + ; + +column_list + : column_name (',' column_name)* + ; + +paren_column_list + : LEFT_PAREN column_list RIGHT_PAREN + ; + +// PL/SQL Specs + +// NOTE: In reality this applies to aggregate functions only +keep_clause + : KEEP '(' DENSE_RANK (FIRST | LAST) (query_partition_clause | order_by_clause) ')' over_clause? + ; + +function_argument + : '(' (argument (',' argument)*)? ')' keep_clause? + ; + +function_argument_analytic + : '(' (argument respect_or_ignore_nulls? (',' argument respect_or_ignore_nulls?)*)? ')' keep_clause? + ; + +function_argument_modeling + : '(' column_name (',' (numeric | NULL_) (',' (numeric | NULL_))?)? USING ( + tableview_name '.' ASTERISK + | ASTERISK + | expression column_alias? (',' expression column_alias?)* + ) ')' keep_clause? + ; + +respect_or_ignore_nulls + : (RESPECT | IGNORE) NULLS + ; + +argument + : (identifier '=' '>')? expression + ; + +type_spec + : datatype + | REF? type_name (PERCENT_ROWTYPE | PERCENT_TYPE)? + ; + +datatype + : native_datatype_element precision_part? (WITH LOCAL? TIME ZONE | CHARACTER SET char_set_name)? + | INTERVAL (YEAR | DAY) ('(' expression ')')? TO (MONTH | SECOND) ('(' expression ')')? + ; + +precision_part + : '(' (numeric | ASTERISK) (',' (numeric | numeric_negative))? (CHAR | BYTE)? ')' + ; + +native_datatype_element + : BINARY_INTEGER + | PLS_INTEGER + | NATURAL + | BINARY_FLOAT + | BINARY_DOUBLE + | NATURALN + | POSITIVE + | POSITIVEN + | SIGNTYPE + | SIMPLE_INTEGER + | NVARCHAR2 + | DEC + | INTEGER + | INT + | NUMERIC + | SMALLINT + | NUMBER + | DECIMAL + | DOUBLE PRECISION? + | FLOAT + | REAL + | NCHAR + | LONG RAW? + | CHAR + | CHARACTER VARYING? + | VARCHAR2 + | VARCHAR + | STRING + | RAW + | BOOLEAN + | DATE + | ROWID + | UROWID + | YEAR + | MONTH + | DAY + | HOUR + | MINUTE + | SECOND + | SDO_GEOMETRY + | TIMEZONE_HOUR + | TIMEZONE_MINUTE + | TIMEZONE_REGION + | TIMEZONE_ABBR + | TIMESTAMP + | TIMESTAMP_UNCONSTRAINED + | TIMESTAMP_TZ_UNCONSTRAINED + | TIMESTAMP_LTZ_UNCONSTRAINED + | YMINTERVAL_UNCONSTRAINED + | DSINTERVAL_UNCONSTRAINED + | BFILE + | BLOB + | CLOB + | NCLOB + | MLSLABEL + | XMLTYPE + ; + +bind_variable + : (BINDVAR | ':' UNSIGNED_INTEGER) + // Pro*C/C++ indicator variables + (INDICATOR? (BINDVAR | ':' UNSIGNED_INTEGER))? ('.' general_element_part)* + ; + +general_element + : general_element_part + | general_element ('.' general_element_part)+ + | '(' general_element ')' + ; + +general_element_part + : (INTRODUCER char_set_name)? id_expression ('@' link_name)? function_argument* + ; + +table_element + : (INTRODUCER char_set_name)? id_expression ('.' id_expression)* + ; + +object_privilege + : ALL PRIVILEGES? + | ALTER + | DEBUG + | DELETE + | EXECUTE + | FLASHBACK + | FLASHBACK ARCHIVE + | INDEX + | INHERIT PRIVILEGES + | INHERIT REMOTE PRIVILEGES + | INSERT + | KEEP SEQUENCE + | MERGE VIEW + | ON COMMIT REFRESH + | QUERY REWRITE + | READ + | REFERENCES + | SELECT + | TRANSLATE SQL + | UNDER + | UPDATE + | USE + | WRITE + ; + +//Ordered by type rather than alphabetically +system_privilege + : ALL PRIVILEGES + | ADVISOR + | ADMINISTER ANY? SQL TUNING SET + | (ALTER | CREATE | DROP) ANY SQL PROFILE + | ADMINISTER SQL MANAGEMENT OBJECT + | CREATE ANY? CLUSTER + | (ALTER | DROP) ANY CLUSTER + | (CREATE | DROP) ANY CONTEXT + | EXEMPT REDACTION POLICY + | ALTER DATABASE + | (ALTER | CREATE) PUBLIC? DATABASE LINK + | DROP PUBLIC DATABASE LINK + | DEBUG CONNECT SESSION + | DEBUG ANY PROCEDURE + | ANALYZE ANY DICTIONARY + | CREATE ANY? DIMENSION + | (ALTER | DROP) ANY DIMENSION + | (CREATE | DROP) ANY DIRECTORY + | (CREATE | DROP) ANY EDITION + | FLASHBACK (ARCHIVE ADMINISTER | ANY TABLE) + | (ALTER | CREATE | DROP) ANY INDEX + | CREATE ANY? INDEXTYPE + | (ALTER | DROP | EXECUTE) ANY INDEXTYPE + | CREATE (ANY | EXTERNAL)? JOB + | EXECUTE ANY (CLASS | PROGRAM) + | MANAGE SCHEDULER + | ADMINISTER KEY MANAGEMENT + | CREATE ANY? LIBRARY + | (ALTER | DROP | EXECUTE) ANY LIBRARY + | LOGMINING + | CREATE ANY? MATERIALIZED VIEW + | (ALTER | DROP) ANY MATERIALIZED VIEW + | GLOBAL? QUERY REWRITE + | ON COMMIT REFRESH + | CREATE ANY? MINING MODEL + | (ALTER | DROP | SELECT | COMMENT) ANY MINING MODEL + | CREATE ANY? CUBE + | (ALTER | DROP | SELECT | UPDATE) ANY CUBE + | CREATE ANY? MEASURE FOLDER + | (DELETE | DROP | INSERT) ANY MEASURE FOLDER + | CREATE ANY? CUBE DIMENSION + | (ALTER | DELETE | DROP | INSERT | SELECT | UPDATE) ANY CUBE DIMENSION + | CREATE ANY? CUBE BUILD PROCESS + | (DROP | UPDATE) ANY CUBE BUILD PROCESS + | CREATE ANY? OPERATOR + | (ALTER | DROP | EXECUTE) ANY OPERATOR + | (CREATE | ALTER | DROP) ANY OUTLINE + | CREATE PLUGGABLE DATABASE + | SET CONTAINER + | CREATE ANY? PROCEDURE + | (ALTER | DROP | EXECUTE) ANY PROCEDURE + | (CREATE | ALTER | DROP) PROFILE + | CREATE ROLE + | (ALTER | DROP | GRANT) ANY ROLE + | (CREATE | ALTER | DROP) ROLLBACK SEGMENT + | CREATE ANY? SEQUENCE + | (ALTER | DROP | SELECT) ANY SEQUENCE + | (ALTER | CREATE | RESTRICTED) SESSION + | ALTER RESOURCE COST + | CREATE ANY? SQL TRANSLATION PROFILE + | (ALTER | DROP | USE) ANY SQL TRANSLATION PROFILE + | TRANSLATE ANY SQL + | CREATE ANY? SYNONYM + | DROP ANY SYNONYM + | (CREATE | DROP) PUBLIC SYNONYM + | CREATE ANY? TABLE + | (ALTER | BACKUP | COMMENT | DELETE | DROP | INSERT | LOCK | READ | SELECT | UPDATE) ANY TABLE + | (CREATE | ALTER | DROP | MANAGE | UNLIMITED) TABLESPACE + | CREATE ANY? TRIGGER + | (ALTER | DROP) ANY TRIGGER + | ADMINISTER DATABASE TRIGGER + | CREATE ANY? TYPE + | (ALTER | DROP | EXECUTE | UNDER) ANY TYPE + | (CREATE | ALTER | DROP) USER + | CREATE ANY? VIEW + | (DROP | UNDER | MERGE) ANY VIEW + | (ANALYZE | AUDIT) ANY + | BECOME USER + | CHANGE NOTIFICATION + | EXEMPT ACCESS POLICY + | FORCE ANY? TRANSACTION + | GRANT ANY OBJECT? PRIVILEGE + | INHERIT ANY PRIVILEGES + | KEEP DATE TIME + | KEEP SYSGUID + | PURGE DBA_RECYCLEBIN + | RESUMABLE + | SELECT ANY (DICTIONARY | TRANSACTION) + | SYSBACKUP + | SYSDBA + | SYSDG + | SYSKM + | SYSOPER + ; + +// $> + +// $' +'<' +':' +';' +'|' +'=' +'[' +']' +'_' +null +null +null +null +null +null +null +null + +token symbolic names: +null +ABORT +ABS +ABSENT +ACCESS +ACCESSED +ACCESSIBLE +ACCOUNT +ACL +ACOS +ACROSS +ACTION +ACTIONS +ACTIVATE +ACTIVE +ACTIVE_COMPONENT +ACTIVE_DATA +ACTIVE_FUNCTION +ACTIVE_TAG +ACTIVITY +ADAPTIVE_PLAN +ADD +ADD_COLUMN +ADD_GROUP +ADD_MONTHS +ADJ_DATE +ADMIN +ADMINISTER +ADMINISTRATOR +ADVANCED +ADVISE +ADVISOR +AFD_DISKSTRING +AFTER +AGENT +AGGREGATE +A_LETTER +ALIAS +ALL +ALLOCATE +ALLOW +ALL_ROWS +ALTER +ALTERNATE +ALWAYS +ANALYTIC +ANALYZE +ANCESTOR +ANCILLARY +AND +AND_EQUAL +ANNOTATIONS +ANOMALY +ANSI_REARCH +ANTIJOIN +ANY +ANYSCHEMA +APPEND +APPENDCHILDXML +APPEND_VALUES +APPLICATION +APPLY +APPROX_COUNT_DISTINCT +ARCHIVAL +ARCHIVE +ARCHIVED +ARCHIVELOG +ARE +ARRAY +AS +ASC +ASCII +ASCIISTR +ASIN +ASIS +ASSEMBLY +ASSIGN +ASSOCIATE +ASYNC +ASYNCHRONOUS +ATAN2 +ATAN +AT +ATTRIBUTE +ATTRIBUTES +AUDIT +AUTHENTICATED +AUTHENTICATION +AUTHID +AUTHORIZATION +AUTOALLOCATE +AUTO +AUTOBACKUP +AUTOEXTEND +AUTO_LOGIN +AUTOMATIC +AUTONOMOUS_TRANSACTION +AUTO_REOPTIMIZE +AVAILABILITY +AVRO +BACKGROUND +BACKINGFILE +BACKUP +BACKUPS +BACKUPSET +BADFILE +BASIC +BASICFILE +BATCH +BATCHSIZE +BATCH_TABLE_ACCESS_BY_ROWID +BECOME +BEFORE +BEGIN +BEGINNING +BEGIN_OUTLINE_DATA +BEHALF +BEQUEATH +BETWEEN +BFILE +BFILENAME +BIG +BIGFILE +BIGINT +BINARY +BINARY_DOUBLE +BINARY_DOUBLE_INFINITY +BINARY_DOUBLE_NAN +BINARY_FLOAT +BINARY_FLOAT_INFINITY +BINARY_FLOAT_NAN +BINARY_INTEGER +BIND_AWARE +BINDING +BIN_TO_NUM +BITAND +BITMAP_AND +BITMAP +BITMAPS +BITMAP_TREE +BITS +BLANKS +BLOB +BLOCK +BLOCK_RANGE +BLOCKS +BLOCKSIZE +BODY +BOOLEAN +BOTH +BOUND +BRANCH +BREADTH +BROADCAST +BSON +BUFFER +BUFFER_CACHE +BUFFER_POOL +BUILD +BULK +BY +BYPASS_RECURSIVE_CHECK +BYPASS_UJVC +BYTE +BYTES +BYTEORDERMARK +CACHE +CACHE_CB +CACHE_INSTANCES +CACHE_TEMP_TABLE +CACHING +CALCULATED +CALLBACK +CALL +CANCEL +CANONICAL +CAPACITY +CAPTION +CARDINALITY +CASCADE +CASE +CAST +CASESENSITIVE +CATEGORY +CDBDEFAULT +CEIL +CELL_FLASH_CACHE +CERTIFICATE +CFILE +CHAINED +CHANGE +CHANGETRACKING +CHANGE_DUPKEY_ERROR_INDEX +CHARACTER +CHARACTERS +CHARACTERSET +CHAR +CHAR_CS +CHARTOROWID +CHECK_ACL_REWRITE +CHECK +CHECKPOINT +CHILD +CHOOSE +CHR +CHUNK +CLASS +CLASSIFICATION +CLASSIFIER +CLAUSE +CLEAN +CLEANUP +CLEAR +C_LETTER +CLIENT +CLOB +CLONE +CLOSE_CACHED_OPEN_CURSORS +CLOSE +CLUSTER_BY_ROWID +CLUSTER +CLUSTER_DETAILS +CLUSTER_DISTANCE +CLUSTER_ID +CLUSTERING +CLUSTERING_FACTOR +CLUSTER_PROBABILITY +CLUSTER_SET +COALESCE +COALESCE_SQ +COARSE +CO_AUTH_IND +COLD +COLLECT +COLLECTION +COLUMNAR +COLUMN_AUTH_INDICATOR +COLUMN +COLUMNS +COLUMN_STATS +COLUMN_VALUE +COMMENT +COMMIT +COMMITTED +COMMON +COMMON_DATA +COMPACT +COMPATIBLE +COMPATIBILITY +COMPILE +COMPLETE +COMPLIANCE +COMPONENT +COMPONENTS +COMPOSE +COMPOSITE +COMPOSITE_LIMIT +COMPOUND +COMPRESS +COMPRESSION +COMPUTE +CONCAT +CON_DBID_TO_ID +CONDITIONAL +CONDITION +CONFIRM +CONFORMING +CON_GUID_TO_ID +CON_ID +CON_NAME_TO_ID +CONNECT_BY_CB_WHR_ONLY +CONNECT_BY_COMBINE_SW +CONNECT_BY_COST_BASED +CONNECT_BY_ELIM_DUPS +CONNECT_BY_FILTERING +CONNECT_BY_ISCYCLE +CONNECT_BY_ISLEAF +CONNECT_BY_ROOT +CONNECT +CONNECT_TIME +CONSIDER +CONSISTENT +CONSTANT +CONST +CONSTRAINT +CONSTRAINTS +CONSTRUCTOR +CONTAINER +CONTAINERS +CONTAINERS_DEFAULT +CONTAINER_DATA +CONTAINER_MAP +CONTENT +CONTENTS +CONTEXT +CONTINUE +CONTROLFILE +CON_UID_TO_ID +CONVERT +CONVERSION +COOKIE +COPY +CORR_K +CORR_S +CORRUPTION +CORRUPT_XID_ALL +CORRUPT_XID +COS +COSH +COST +COST_XML_QUERY_REWRITE +COUNT +COUNTED +COVAR_POP +COVAR_SAMP +CPU_COSTING +CPU_PER_CALL +CPU_PER_SESSION +CRASH +CREATE +CREATE_FILE_DEST +CREATE_STORED_OUTLINES +CREATION +CREDENTIAL +CRITICAL +CROSS +CROSSEDITION +CSCONVERT +CSV +CUBE_AJ +CUBE +CUBE_GB +CUBE_SJ +CUME_DISTM +CURRENT +CURRENT_DATE +CURRENT_SCHEMA +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_USER +CURRENTV +CURSOR +CURSOR_SHARING_EXACT +CURSOR_SPECIFIC_SEGMENT +CUSTOMDATUM +CV +CYCLE +DANGLING +DATABASE +DATA +DATAFILE +DATAFILES +DATAGUARDCONFIG +DATAMOVEMENT +DATAOBJNO +DATAOBJ_TO_MAT_PARTITION +DATAOBJ_TO_PARTITION +DATAPUMP +DATA_SECURITY_REWRITE_LIMIT +DATE +DATE_CACHE +DATE_FORMAT +DATE_MODE +DAY +DAYS +DAY_TO_SECOND +DBA +DBA_RECYCLEBIN +DBLINK +DBMS_STATS +DB_ROLE_CHANGE +DBTIMEZONE +DB_UNIQUE_NAME +DB_VERSION +DDL +DEALLOCATE +DEBUG +DEBUGGER +DEC +DECIMAL +DECLARE +DECOMPOSE +DECORRELATE +DECR +DECREMENT +DECRYPT +DEDUPLICATE +DEFAULT +DEFAULTIF +DEFAULTS +DEFAULT_COLLATION +DEFAULT_CREDENTIAL +DEFERRABLE +DEFERRED +DEFINED +DEFINE +DEFINER +DEGREE +DELAY +DELEGATE +DELETE_ALL +DELETE +DELETEXML +DELIMITED +DEMAND +DENSE_RANKM +DEPENDENT +DEPRECATE +DEPTH +DEQUEUE +DEREF +DEREF_NO_REWRITE +DESC +DESCRIPTION +DESTROY +DETACHED +DETECTED +DETERMINES +DETERMINISTIC +DICTIONARY +DIMENSION +DIMENSIONS +DIRECTIO +DIRECT_LOAD +DIRECTORY +DIRECT_PATH +DISABLE_ALL +DISABLE +DISABLED +DISABLE_DIRECTORY_LINK_CHECK +DISABLE_PARALLEL_DML +DISABLE_PRESET +DISABLE_RPKE +DISALLOW +DISASSOCIATE +DISCARD +DISCARDFILE +DISCONNECT +DISK +DISKGROUP +DISKGROUP_PLUS +DISKS +DISMOUNT +DISTINCT +DISTINGUISHED +DISTRIBUTED +DISTRIBUTE +DML +DML_UPDATE +DNFS_DISABLE +DNFS_ENABLE +DNFS_READBUFFERS +DOCFIDELITY +DOCUMENT +DOLLAR_ELSE +DOLLAR_ELSIF +DOLLAR_END +DOLLAR_ERROR +DOLLAR_IF +DOLLAR_THEN +DOMAIN_INDEX_FILTER +DOMAIN_INDEX_NO_SORT +DOMAIN_INDEX_SORT +DOUBLE +DOWNGRADE +DRIVING_SITE +DROP_COLUMN +DROP +DROP_GROUP +DSINTERVAL_UNCONSTRAINED +DST_UPGRADE_INSERT_CONV +DUMP +DUMPSET +DUPLICATE +DV +DYNAMIC +DYNAMIC_SAMPLING +DYNAMIC_SAMPLING_EST_CDN +E_LETTER +EACH +EDITIONABLE +EDITION +EDITIONING +EDITIONS +ELEMENT +ELIM_GROUPBY +ELIMINATE_JOIN +ELIMINATE_OBY +ELIMINATE_OUTER_JOIN +ELSE +ELSIF +EM +EMBEDDED +EMPTY_BLOB +EMPTY_CLOB +EMPTY_ +ENABLE_ALL +ENABLE +ENABLED +ENABLE_PARALLEL_DML +ENABLE_PRESET +ENCLOSED +ENCODING +ENCRYPT +ENCRYPTION +ENCRYPTPASSWORDISNULL +END +END_OUTLINE_DATA +ENDIAN +ENFORCED +ENFORCE +ENQUEUE +ENTERPRISE +ENTITYESCAPING +ENTRY +EQUIPART +ERR +ERROR_ARGUMENT +ERROR +ERROR_ON_OVERLAP_TIME +ERRORS +ERROR_INDEX +ERROR_CODE +ESCAPE +ESCAPED +ESTIMATE +EVAL +EVALNAME +EVALUATE +EVALUATION +EVENTS +EVERY +EXCEPT +EXCEPTION +EXCEPTION_INIT +EXCEPTIONS +EXCHANGE +EXCLUDE +EXCLUDING +EXCLUSIVE +EXECUTE +EXEMPT +EXISTING +EXISTS +EXISTSNODE +EXIT +EXPAND_GSET_TO_UNION +EXPAND_TABLE +EXP +EXPIRE +EXPLAIN +EXPLOSION +EXPORT +EXPR_CORR_CHECK +EXPRESS +EXTENDS +EXTENT +EXTENTS +EXTERNAL +EXTERNALLY +EXTRACTCLOBXML +EXTRACT +EXTRACTVALUE +EXTRA +FACILITY +FACT +FACTOR +FACTORIZE_JOIN +FAILED +FAILED_LOGIN_ATTEMPTS +FAILGROUP +FAILOVER +FAILURE +FALSE +FAMILY +FAR +FAST +FASTSTART +FBTSCAN +FEATURE +FEATURE_DETAILS +FEATURE_ID +FEATURE_SET +FEATURE_VALUE +FETCH +FIELD +FIELDS +FILE +FILE_NAME_CONVERT +FILEGROUP +FILESTORE +FILESYSTEM_LIKE_LOGGING +FILTER +FINAL +FINE +FINISH +FIRST +FIRSTM +FIRST_ROWS +FIRST_VALUE +FIXED +FIXED_VIEW_DATA +FLAGGER +FLASHBACK +FLASH_CACHE +FLOAT +FLOB +FLEX +FLOOR +FLUSH +FOLDER +FOLLOWING +FOLLOWS +FORALL +FORCE +FORCE_XML_QUERY_REWRITE +FOREIGN +FOREVER +FOR +FORMAT +FORWARD +FRAGMENT_NUMBER +FREELIST +FREELISTS +FREEPOOLS +FRESH +FROM +FROM_TZ +FULL +FULL_OUTER_JOIN_TO_OUTER +FUNCTION +FUNCTIONS +FTP +G_LETTER +GATHER_OPTIMIZER_STATISTICS +GATHER_PLAN_STATISTICS +GBY_CONC_ROLLUP +GBY_PUSHDOWN +GENERATED +GET +GLOBAL +GLOBALLY +GLOBAL_NAME +GLOBAL_TOPIC_ENABLED +GOTO +GRANT +GROUP_BY +GROUP +GROUP_ID +GROUPING +GROUPING_ID +GROUPS +GUARANTEED +GUARANTEE +GUARD +HADOOP_TRAILERS +HALF_YEARS +HASH_AJ +HASH +HASHKEYS +HASH_SJ +HAVING +HEADER +HEAP +HELP +HEXTORAW +HEXTOREF +HIDDEN_KEYWORD +HIDE +HIER_ORDER +HIERARCHICAL +HIERARCHIES +HIERARCHY +HIGH +HINTSET_BEGIN +HINTSET_END +HOT +HOUR +HOURS +HTTP +HWM_BROKERED +HYBRID +H_LETTER +IDENTIFIED +IDENTIFIER +IDENTITY +IDGENERATORS +ID +IDLE_TIME +IF +IGNORE +IGNORE_CHARS_AFTER_EOR +IGNORE_OPTIM_EMBEDDED_HINTS +IGNORE_ROW_ON_DUPKEY_INDEX +IGNORE_WHERE_CLAUSE +ILM +IMMEDIATE +IMPACT +IMPORT +INACTIVE +INACTIVE_ACCOUNT_TIME +INCLUDE +INCLUDE_VERSION +INCLUDING +INCREMENTAL +INCREMENT +INCR +INDENT +INDEX_ASC +INDEX_COMBINE +INDEX_DESC +INDEXED +INDEXES +INDEX_FFS +INDEX_FILTER +INDEX +INDEXING +INDEX_JOIN +INDEX_ROWS +INDEX_RRS +INDEX_RS_ASC +INDEX_RS_DESC +INDEX_RS +INDEX_SCAN +INDEX_SKIP_SCAN +INDEX_SS_ASC +INDEX_SS_DESC +INDEX_SS +INDEX_STATS +INDEXTYPE +INDEXTYPES +INDICATOR +INDICES +INFINITE +INFORMATIONAL +INHERIT +IN +INITCAP +INITIAL +INITIALIZED +INITIALLY +INITRANS +INLINE +INLINE_XMLTYPE_NT +INMEMORY +IN_MEMORY_METADATA +INMEMORY_PRUNING +INNER +INOUT +INPLACE +INPUTFORMAT +INSERTCHILDXMLAFTER +INSERTCHILDXMLBEFORE +INSERTCHILDXML +INSERT +INSERTXMLAFTER +INSERTXMLBEFORE +INSTANCE +INSTANCES +INSTANTIABLE +INSTANTLY +INSTEAD +INSTR2 +INSTR4 +INSTRB +INSTRC +INSTR +INTEGER +INTERLEAVED +INTERMEDIATE +INTERNAL_CONVERT +INTERNAL_USE +INTERPRETED +INTERSECT +INTERVAL +INT +INTERNAL +INTO +INVALIDATE +INVALIDATION +INVISIBLE +IN_XQUERY +IO_OPTIONS +IS +IS_LEAF +ISOLATION +ISOLATION_LEVEL +ITEMS +ITERATE +ITERATION_NUMBER +JAVA +JOB +JOIN +JSON_ARRAYAGG +JSON_ARRAY +JSON_EQUAL +JSON_EXISTS2 +JSON_EXISTS +JSONGET +JSON +JSON_OBJECTAGG +JSON_OBJECT +JSONPARSE +JSON_QUERY +JSON_SERIALIZE +JSON_TABLE +JSON_TEXTCONTAINS2 +JSON_TEXTCONTAINS +JSON_TRANSFORM +JSON_VALUE +K_LETTER +KEEP_DUPLICATES +KEEP +KERBEROS +KEY +KEY_LENGTH +KEYSIZE +KEYS +KEYSTORE +KILL +LABEL +LANGUAGE +LAST_DAY +LAST +LAST_VALUE +LATERAL +LATEST +LAX +LAYER +LDAP_REGISTRATION_ENABLED +LDAP_REGISTRATION +LDAP_REG_SYNC_INTERVAL +LDRTRIM +LEAF +LEAD_CDB +LEAD_CDB_URI +LEADING +LEFT +LENGTH2 +LENGTH4 +LENGTHB +LENGTHC +LENGTH +LESS +LEVEL +LEVEL_NAME +LEVELS +LIBRARY +LIFECYCLE +LIFE +LIFETIME +LIKE2 +LIKE4 +LIKEC +LIKE_EXPAND +LIKE +LIMIT +LINEAR +LINES +LINK +LIST +LITTLE +LLS +LN +LNNVL +LOAD +LOB +LOBFILE +LOBNVL +LOBS +LOCAL_INDEXES +LOCAL +LOCALTIME +LOCALTIMESTAMP +LOCATION +LOCATOR +LOCKDOWN +LOCKED +LOCKING +LOCK +LOGFILE +LOGFILES +LOGGING +LOGICAL +LOGICAL_READS_PER_CALL +LOGICAL_READS_PER_SESSION +LOG +LOGMINING +LOGOFF +LOGON +LOG_READ_ONLY_VIOLATIONS +LONG +LOOP +LOST +LOWER +LOW +LPAD +LRTRIM +LTRIM +M_LETTER +MAIN +MAKE_REF +MANAGED +MANAGE +MANAGEMENT +MANAGER +MANDATORY +MANUAL +MAP +MAPPING +MASK +MASTER +MATCHED +MATCHES +MATCH +MATCH_NUMBER +MATCH_RECOGNIZE +MATERIALIZED +MATERIALIZE +MAXARCHLOGS +MAXDATAFILES +MAXEXTENTS +MAXIMIZE +MAXINSTANCES +MAXLOGFILES +MAXLOGHISTORY +MAXLOGMEMBERS +MAX_SHARED_TEMP_SIZE +MAXSIZE +MAXTRANS +MAXVALUE +MEASURE +MEASURES +MEDIUM +MEMBER +MEMBER_CAPTION +MEMBER_DESCRIPTION +MEMBER_NAME +MEMBER_UNIQUE_NAME +MEMCOMPRESS +MEMORY +MERGEACTIONS +MERGE_AJ +MERGE_CONST_ON +MERGE +MERGE_SJ +METADATA +METHOD +MIGRATE +MIGRATION +MINEXTENTS +MINIMIZE +MINIMUM +MINING +MINUS +MINUS_NULL +MINUTE +MINUTES +MINVALUE +MIRRORCOLD +MIRRORHOT +MIRROR +MISSING +MISMATCH +MLSLABEL +MODEL_COMPILE_SUBQUERY +MODEL_DONTVERIFY_UNIQUENESS +MODEL_DYNAMIC_SUBQUERY +MODEL_MIN_ANALYSIS +MODEL +MODEL_NB +MODEL_NO_ANALYSIS +MODEL_PBY +MODEL_PUSH_REF +MODEL_SV +MODE +MODIFICATION +MODIFY_COLUMN_TYPE +MODIFY +MOD +MODULE +MONITORING +MONITOR +MONTH +MONTHS_BETWEEN +MONTHS +MOUNT +MOUNTPATH +MOUNTPOINT +MOVEMENT +MOVE +MULTIDIMENSIONAL +MULTISET +MV_MERGE +NAMED +NAME +NAMESPACE +NAN_ +NANVL +NATIONAL +NATIVE_FULL_OUTER_JOIN +NATIVE +NATURAL +NATURALN +NAV +NCHAR_CS +NCHAR +NCHR +NCLOB +NEEDED +NEG +NESTED +NESTED_TABLE_FAST_INSERT +NESTED_TABLE_GET_REFS +NESTED_TABLE_ID +NESTED_TABLE_SET_REFS +NESTED_TABLE_SET_SETID +NETWORK +NEVER +NEW +NEWLINE_ +NEW_TIME +NEXT_DAY +NEXT +NL_AJ +NLJ_BATCHING +NLJ_INDEX_FILTER +NLJ_INDEX_SCAN +NLJ_PREFETCH +NLS_CALENDAR +NLS_CHARACTERSET +NLS_CHARSET_DECL_LEN +NLS_CHARSET_ID +NLS_CHARSET_NAME +NLS_COMP +NLS_CURRENCY +NLS_DATE_FORMAT +NLS_DATE_LANGUAGE +NLS_INITCAP +NLS_ISO_CURRENCY +NL_SJ +NLS_LANG +NLS_LANGUAGE +NLS_LENGTH_SEMANTICS +NLS_LOWER +NLS_NCHAR_CONV_EXCP +NLS_NUMERIC_CHARACTERS +NLS_SORT +NLSSORT +NLS_SPECIAL_CHARS +NLS_TERRITORY +NLS_UPPER +NO_ACCESS +NO_ADAPTIVE_PLAN +NO_ANSI_REARCH +NOAPPEND +NOARCHIVELOG +NOAUDIT +NOBADFILE +NO_AUTO_REOPTIMIZE +NO_BASETABLE_MULTIMV_REWRITE +NO_BATCH_TABLE_ACCESS_BY_ROWID +NO_BIND_AWARE +NO_BUFFER +NOCACHE +NOCHECK +NO_CARTESIAN +NO_CHECK_ACL_REWRITE +NO_CLUSTER_BY_ROWID +NO_CLUSTERING +NO_COALESCE_SQ +NO_COMMON_DATA +NOCOMPRESS +NO_CONNECT_BY_CB_WHR_ONLY +NO_CONNECT_BY_COMBINE_SW +NO_CONNECT_BY_COST_BASED +NO_CONNECT_BY_ELIM_DUPS +NO_CONNECT_BY_FILTERING +NOCOPY +NO_COST_XML_QUERY_REWRITE +NO_CPU_COSTING +NOCPU_COSTING +NOCYCLE +NO_DATA_SECURITY_REWRITE +NO_DECORRELATE +NODELAY +NODIRECTIO +NODISCARDFILE +NO_DOMAIN_INDEX_FILTER +NO_DST_UPGRADE_INSERT_CONV +NO_ELIM_GROUPBY +NO_ELIMINATE_JOIN +NO_ELIMINATE_OBY +NO_ELIMINATE_OUTER_JOIN +NOENTITYESCAPING +NO_EXPAND_GSET_TO_UNION +NO_EXPAND +NO_EXPAND_TABLE +NOEXTEND +NO_FACT +NO_FACTORIZE_JOIN +NO_FILTERING +NOFORCE +NO_FULL_OUTER_JOIN_TO_OUTER +NO_GATHER_OPTIMIZER_STATISTICS +NO_GBY_PUSHDOWN +NOGUARANTEE +NO_INDEX_FFS +NO_INDEX +NO_INDEX_SS +NO_INMEMORY +NO_INMEMORY_PRUNING +NOKEEP +NO_LOAD +NOLOCAL +NOLOG +NOLOGFILE +NOLOGGING +NOMAPPING +NOMAXVALUE +NO_MERGE +NOMINIMIZE +NOMINVALUE +NO_MODEL_PUSH_REF +NO_MONITORING +NOMONITORING +NO_MONITOR +NO_MULTIMV_REWRITE +NO_NATIVE_FULL_OUTER_JOIN +NONBLOCKING +NONEDITIONABLE +NONE +NONULLIF +NO_NLJ_BATCHING +NO_NLJ_PREFETCH +NO +NONSCHEMA +NO_OBJECT_LINK +NOORDER +NO_ORDER_ROLLUPS +NO_OUTER_JOIN_TO_ANTI +NO_OUTER_JOIN_TO_INNER +NOOVERRIDE +NO_PARALLEL_INDEX +NOPARALLEL_INDEX +NO_PARALLEL +NOPARALLEL +NO_PARTIAL_COMMIT +NO_PARTIAL_JOIN +NO_PARTIAL_ROLLUP_PUSHDOWN +NOPARTITION +NO_PLACE_DISTINCT +NO_PLACE_GROUP_BY +NO_PQ_CONCURRENT_UNION +NO_PQ_MAP +NOPROMPT +NO_PQ_REPLICATE +NO_PQ_SKEW +NO_PRUNE_GSETS +NO_PULL_PRED +NO_PUSH_PRED +NO_PUSH_SUBQ +NO_PX_FAULT_TOLERANCE +NO_PX_JOIN_FILTER +NO_QKN_BUFF +NO_QUERY_TRANSFORMATION +NO_REF_CASCADE +NORELOCATE +NORELY +NOREPAIR +NOREPLAY +NORESETLOGS +NO_RESULT_CACHE +NOREVERSE +NO_REWRITE +NOREWRITE +NORMAL +NO_ROOT_SW_FOR_LOCAL +NOROWDEPENDENCIES +NOSCALE +NOSCHEMACHECK +NOSEGMENT +NO_SEMIJOIN +NO_SEMI_TO_INNER +NO_SET_TO_JOIN +NOSHARD +NOSORT +NO_SQL_TRANSLATION +NO_SQL_TUNE +NO_STAR_TRANSFORMATION +NO_STATEMENT_QUEUING +NO_STATS_GSETS +NOSTRICT +NO_SUBQUERY_PRUNING +NO_SUBSTRB_PAD +NO_SWAP_JOIN_INPUTS +NOSWITCH +NO_TABLE_LOOKUP_BY_NL +NO_TEMP_TABLE +NOTHING +NOTIFICATION +NOTRIM +NOT +NO_TRANSFORM_DISTINCT_AGG +NO_UNNEST +NO_USE_CUBE +NO_USE_HASH_AGGREGATION +NO_USE_HASH_GBY_FOR_PUSHDOWN +NO_USE_HASH +NO_USE_INVISIBLE_INDEXES +NO_USE_MERGE +NO_USE_NL +NO_USE_VECTOR_AGGREGATION +NOVALIDATE +NO_VECTOR_TRANSFORM_DIMS +NO_VECTOR_TRANSFORM_FACT +NO_VECTOR_TRANSFORM +NOWAIT +NO_XDB_FASTPATH_INSERT +NO_XML_DML_REWRITE +NO_XMLINDEX_REWRITE_IN_SELECT +NO_XMLINDEX_REWRITE +NO_XML_QUERY_REWRITE +NO_ZONEMAP +NTH_VALUE +NULLIF +NULL_ +NULLS +NUMBER +NUMERIC +NUM_INDEX_KEYS +NUMTODSINTERVAL +NUMTOYMINTERVAL +NVARCHAR2 +NVL2 +OBJECT2XML +OBJECT +OBJ_ID +OBJNO +OBJNO_REUSE +OCCURENCES +OFFLINE +OFF +OFFSET +OF +OIDINDEX +OID +OLAP +OLD +OLD_PUSH_PRED +OLS +OLTP +OMIT +ONE +ONLINE +ONLINELOG +ONLY +ON +OPAQUE +OPAQUE_TRANSFORM +OPAQUE_XCANONICAL +OPCODE +OPEN +OPERATIONS +OPERATOR +OPT_ESTIMATE +OPTIMAL +OPTIMIZE +OPTIMIZER_FEATURES_ENABLE +OPTIMIZER_GOAL +OPTION +OPTIONALLY +OPT_PARAM +ORA_BRANCH +ORA_CHECK_ACL +ORA_CHECK_PRIVILEGE +ORA_CLUSTERING +ORADATA +ORC +ORACLE_DATE +ORACLE_NUMBER +ORADEBUG +ORA_DST_AFFECTED +ORA_DST_CONVERT +ORA_DST_ERROR +ORA_GET_ACLIDS +ORA_GET_PRIVILEGES +ORA_HASH +ORA_INVOKING_USERID +ORA_INVOKING_USER +ORA_INVOKING_XS_USER_GUID +ORA_INVOKING_XS_USER +ORA_RAWCOMPARE +ORA_RAWCONCAT +ORA_ROWSCN +ORA_ROWSCN_RAW +ORA_ROWVERSION +ORA_TABVERSION +ORA_WRITE_TIME +ORDERED +ORDERED_PREDICATES +ORDER +ORDINALITY +OR_EXPAND +ORGANIZATION +OR +OR_PREDICATES +OSERROR +OTHER +OUTER_JOIN_TO_ANTI +OUTER_JOIN_TO_INNER +OUTER +OUTLINE_LEAF +OUTLINE +OUTPUTFORMAT +OUT_OF_LINE +OUT +OVERFLOW_NOMOVE +OVERFLOW_ +OVERLAPS +OVER +OVERRIDE +OVERRIDING +OWNER +OWNERSHIP +OWN +P_LETTER +PACKAGE +PACKAGES +PARALLEL_ENABLE +PARALLEL_INDEX +PARALLEL +PARAMETERFILE +PARAMETERS +PARAM +PARENT +PARENT_LEVEL_NAME +PARENT_UNIQUE_NAME +PARITY +PARQUET +PARTIAL_JOIN +PARTIALLY +PARTIAL +PARTIAL_ROLLUP_PUSHDOWN +PARTITION_HASH +PARTITION_LIST +PARTITION +PARTITION_RANGE +PARTITIONS +PARTNUMINST +PASSING +PASSWORD_GRACE_TIME +PASSWORD_LIFE_TIME +PASSWORD_LOCK_TIME +PASSWORD +PASSWORD_REUSE_MAX +PASSWORD_REUSE_TIME +PASSWORD_ROLLOVER_TIME +PASSWORD_VERIFY_FUNCTION +PAST +PATCH +PATH +PATH_PREFIX +PATHS +PATTERN +PBL_HS_BEGIN +PBL_HS_END +PCTFREE +PCTINCREASE +PCTTHRESHOLD +PCTUSED +PCTVERSION +PENDING +PERCENT_FOUND +PERCENT_ISOPEN +PERCENT_NOTFOUND +PERCENT_KEYWORD +PERCENT_RANKM +PERCENT_ROWCOUNT +PERCENT_ROWTYPE +PERCENT_TYPE +PERCENT_BULK_EXCEPTIONS +PERCENT_BULK_ROWCOUNT +PERFORMANCE +PERIOD_KEYWORD +PERMANENT +PERMISSION +PERMUTE +PER +PFILE +PHYSICAL +PIKEY +PIPELINED +PIPE +PIV_GB +PIVOT +PIV_SSF +PLACE_DISTINCT +PLACE_GROUP_BY +PLAN +PLSCOPE_SETTINGS +PLS_INTEGER +PLSQL_CCFLAGS +PLSQL_CODE_TYPE +PLSQL_DEBUG +PLSQL_OPTIMIZE_LEVEL +PLSQL_WARNINGS +PLUGGABLE +PMEM +POINT +POLICY +POOL_16K +POOL_2K +POOL_32K +POOL_4K +POOL_8K +POSITION +POSITIVEN +POSITIVE +POST_TRANSACTION +POWERMULTISET_BY_CARDINALITY +POWERMULTISET +POWER +PQ_CONCURRENT_UNION +PQ_DISTRIBUTE +PQ_DISTRIBUTE_WINDOW +PQ_FILTER +PQ_MAP +PQ_NOMAP +PQ_REPLICATE +PQ_SKEW +PRAGMA +PREBUILT +PRECEDES +PRECEDING +PRECISION +PRECOMPUTE_SUBQUERY +PREDICATE_REORDERS +PRELOAD +PREPARE +PREPROCESSOR +PRESENTNNV +PRESENT +PRESENTV +PRESERVE_OID +PRESERVE +PRETTY +PREVIOUS +PREV +PRIMARY +PRINTBLOBTOCLOB +PRIORITY +PRIOR +PRIVATE +PRIVATE_SGA +PRIVILEGED +PRIVILEGE +PRIVILEGES +PROCEDURAL +PROCEDURE +PROCESS +PROFILE +PROGRAM +PROJECT +PROPAGATE +PROPERTY +PROTECTED +PROTECTION +PROTOCOL +PROXY +PRUNING +PUBLIC +PULL_PRED +PURGE +PUSH_PRED +PUSH_SUBQ +PX_FAULT_TOLERANCE +PX_GRANULE +PX_JOIN_FILTER +QB_NAME +QUARTERS +QUERY_BLOCK +QUERY +QUEUE_CURR +QUEUE +QUEUE_ROWP +QUIESCE +QUORUM +QUOTA +QUOTAGROUP +RAISE +RANDOM_LOCAL +RANDOM +RANGE +RANKM +RAPIDLY +RAW +RAWTOHEX +RAWTONHEX +RBA +RBO_OUTLINE +RCFILE +RDBA +READ +READS +READSIZE +REALM +REAL +REBALANCE +REBUILD +RECORD +RECORDS +RECORDS_PER_BLOCK +RECOVERABLE +RECOVER +RECOVERY +RECYCLEBIN +RECYCLE +REDACTION +REDEFINE +REDO +REDUCED +REDUNDANCY +REF_CASCADE_CURSOR +REFERENCED +REFERENCE +REFERENCES +REFERENCING +REF +REFRESH +REFTOHEX +REGEXP_COUNT +REGEXP_INSTR +REGEXP_LIKE +REGEXP_REPLACE +REGEXP_SUBSTR +REGISTER +REGR_AVGX +REGR_AVGY +REGR_COUNT +REGR_INTERCEPT +REGR_R2 +REGR_SLOPE +REGR_SXX +REGR_SXY +REGR_SYY +REGULAR +REJECT +REKEY +RELATIONAL +RELIES_ON +RELOCATE +RELY +REMAINDER +REMOTE +REMOTE_MAPPED +REMOVE +RENAME +REPAIR +REPEAT +REPLACE +REPLICATION +REQUIRED +RESETLOGS +RESET +RESIZE +RESOLVE +RESOLVER +RESOURCE +RESPECT +RESTART +RESTORE_AS_INTERVALS +RESTORE +RESTRICT_ALL_REF_CONS +RESTRICTED +RESTRICT_REFERENCES +RESTRICT +RESULT_CACHE +RESULT +RESUMABLE +RESUME +RETENTION +RETRY_ON_ROW_CHANGE +RETURNING +RETURN +REUSE +REVERSE +REVOKE +REWRITE_OR_ERROR +REWRITE +RIGHT +ROLE +ROLESET +ROLES +ROLLBACK +ROLLING +ROLLUP +ROWDEPENDENCIES +ROWID_MAPPING_TABLE +ROWID +ROWIDTOCHAR +ROWIDTONCHAR +ROW_LENGTH +ROWNUM +ROW +ROWS +RPAD +RTRIM +RULE +RULES +RUNNING +SALT +SAMPLE +SAVE_AS_INTERVALS +SAVEPOINT +SAVE +SB4 +SCALE_ROWS +SCALE +SCAN_INSTANCES +SCAN +SCHEDULER +SCHEMACHECK +SCHEMA +SCN_ASCENDING +SCN +SCOPE +SCRUB +SD_ALL +SD_INHIBIT +SDO_GEOM_MBR +SDO_GEOMETRY +SD_SHOW +SEARCH +SECOND +SECONDS +SECRET +SECUREFILE_DBA +SECUREFILE +SECURITY +SEED +SEG_BLOCK +SEG_FILE +SEGMENT +SELECTIVITY +SELECT +SELF +SEMIJOIN_DRIVER +SEMIJOIN +SEMI_TO_INNER +SEQUENCED +SEQUENCE +SEQUENCEFILE +SEQUENTIAL +SEQ +SERDE +SERDEPROPERTIES +SERIALIZABLE +SERIALLY_REUSABLE +SERIAL +SERVERERROR +SERVICE_NAME_CONVERT +SERVICE +SERVICES +SESSION_CACHED_CURSORS +SESSION +SESSIONS_PER_USER +SESSIONTIMEZONE +SESSIONTZNAME +SET +SETS +SETTINGS +SET_TO_JOIN +SEVERE +SHARD +SHARDSPACE +SHARED_POOL +SHARED +SHARE +SHARING +SHELFLIFE +SHOW +SHRINK +SHUTDOWN +SIBLINGS +SID +SITE +SIGNAL_COMPONENT +SIGNAL_FUNCTION +SIGN +SIGNTYPE +SIMPLE_INTEGER +SIMPLE +SINGLE +SINGLETASK +SINH +SIN +SIZE +SIZES +SKIP_EXT_OPTIMIZER +SKIP_ +SKIP_UNQ_UNUSABLE_IDX +SKIP_UNUSABLE_INDEXES +SMALLFILE +SMALLINT +SNAPSHOT +SOME +SORT +SOUNDEX +SOURCE_FILE_DIRECTORY +SOURCE_FILE_NAME_CONVERT +SOURCE +SPACE_KEYWORD +SPECIFICATION +SPFILE +SPLIT +SPREADSHEET +SQLDATA +SQLERROR +SQLLDR +SQL +FILE_EXT +SQL_MACRO +SQL_TRACE +SQL_TRANSLATION_PROFILE +SQRT +STALE +STANDALONE +STANDARD +STANDARD_HASH +STANDBY_MAX_DATA_DELAY +STANDBYS +STANDBY +STAR +STAR_TRANSFORMATION +START +STARTOF +STARTUP +STATEMENT_ID +STATEMENT_QUEUING +STATEMENTS +STATEMENT +STATE +STATIC +STATISTICS +STATS_BINOMIAL_TEST +STATS_CROSSTAB +STATS_F_TEST +STATS_KS_TEST +STATS_MODE +STATS_MW_TEST +STATS_ONE_WAY_ANOVA +STATS_T_TEST_INDEP +STATS_T_TEST_INDEPU +STATS_T_TEST_ONE +STATS_T_TEST_PAIRED +STATS_WSR_TEST +STDDEV_POP +STDDEV_SAMP +STOP +STORAGE +STORE +STREAMS +STREAM +STRICT +STRING +STRIPE_COLUMNS +STRIPE_WIDTH +STRIP +STRUCTURE +SUBMULTISET +SUBPARTITION_REL +SUBPARTITIONS +SUBPARTITION +SUBQUERIES +SUBQUERY_PRUNING +SUBSCRIBE +SUBSET +SUBSTITUTABLE +SUBSTR2 +SUBSTR4 +SUBSTRB +SUBSTRC +SUBTYPE +SUCCESSFUL +SUCCESS +SUMMARY +SUPPLEMENTAL +SUSPEND +SWAP_JOIN_INPUTS +SWITCHOVER +SWITCH +SYNCHRONOUS +SYNC +SYNONYM +SYS +SYSASM +SYS_AUDIT +SYSAUX +SYSBACKUP +SYS_CHECKACL +SYS_CHECK_PRIVILEGE +SYS_CONNECT_BY_PATH +SYS_CONTEXT +SYSDATE +SYSDBA +SYS_DBURIGEN +SYSDG +SYS_DL_CURSOR +SYS_DM_RXFORM_CHR +SYS_DM_RXFORM_NUM +SYS_DOM_COMPARE +SYS_DST_PRIM2SEC +SYS_DST_SEC2PRIM +SYS_ET_BFILE_TO_RAW +SYS_ET_BLOB_TO_IMAGE +SYS_ET_IMAGE_TO_BLOB +SYS_ET_RAW_TO_BFILE +SYS_EXTPDTXT +SYS_EXTRACT_UTC +SYS_FBT_INSDEL +SYS_FILTER_ACLS +SYS_FNMATCHES +SYS_FNREPLACE +SYS_GET_ACLIDS +SYS_GET_COL_ACLIDS +SYS_GET_PRIVILEGES +SYS_GETTOKENID +SYS_GETXTIVAL +SYS_GUID +SYSGUID +SYSKM +SYS_MAKE_XMLNODEID +SYS_MAKEXML +SYS_MKXMLATTR +SYS_MKXTI +SYSOBJ +SYS_OP_ADT2BIN +SYS_OP_ADTCONS +SYS_OP_ALSCRVAL +SYS_OP_ATG +SYS_OP_BIN2ADT +SYS_OP_BITVEC +SYS_OP_BL2R +SYS_OP_BLOOM_FILTER_LIST +SYS_OP_BLOOM_FILTER +SYS_OP_C2C +SYS_OP_CAST +SYS_OP_CEG +SYS_OP_CL2C +SYS_OP_COMBINED_HASH +SYS_OP_COMP +SYS_OP_CONVERT +SYS_OP_COUNTCHG +SYS_OP_CSCONV +SYS_OP_CSCONVTEST +SYS_OP_CSR +SYS_OP_CSX_PATCH +SYS_OP_CYCLED_SEQ +SYS_OP_DECOMP +SYS_OP_DESCEND +SYS_OP_DISTINCT +SYS_OP_DRA +SYS_OP_DUMP +SYS_OP_DV_CHECK +SYS_OP_ENFORCE_NOT_NULL +SYSOPER +SYS_OP_EXTRACT +SYS_OP_GROUPING +SYS_OP_GUID +SYS_OP_HASH +SYS_OP_IIX +SYS_OP_ITR +SYS_OP_KEY_VECTOR_CREATE +SYS_OP_KEY_VECTOR_FILTER_LIST +SYS_OP_KEY_VECTOR_FILTER +SYS_OP_KEY_VECTOR_SUCCEEDED +SYS_OP_KEY_VECTOR_USE +SYS_OP_LBID +SYS_OP_LOBLOC2BLOB +SYS_OP_LOBLOC2CLOB +SYS_OP_LOBLOC2ID +SYS_OP_LOBLOC2NCLOB +SYS_OP_LOBLOC2TYP +SYS_OP_LSVI +SYS_OP_LVL +SYS_OP_MAKEOID +SYS_OP_MAP_NONNULL +SYS_OP_MSR +SYS_OP_NICOMBINE +SYS_OP_NIEXTRACT +SYS_OP_NII +SYS_OP_NIX +SYS_OP_NOEXPAND +SYS_OP_NTCIMG +SYS_OP_NUMTORAW +SYS_OP_OIDVALUE +SYS_OP_OPNSIZE +SYS_OP_PAR_1 +SYS_OP_PARGID_1 +SYS_OP_PARGID +SYS_OP_PAR +SYS_OP_PART_ID +SYS_OP_PIVOT +SYS_OP_R2O +SYS_OP_RAWTONUM +SYS_OP_RDTM +SYS_OP_REF +SYS_OP_RMTD +SYS_OP_ROWIDTOOBJ +SYS_OP_RPB +SYS_OPTLOBPRBSC +SYS_OP_TOSETID +SYS_OP_TPR +SYS_OP_TRTB +SYS_OPTXICMP +SYS_OPTXQCASTASNQ +SYS_OP_UNDESCEND +SYS_OP_VECAND +SYS_OP_VECBIT +SYS_OP_VECOR +SYS_OP_VECXOR +SYS_OP_VERSION +SYS_OP_VREF +SYS_OP_VVD +SYS_OP_XMLCONS_FOR_CSX +SYS_OP_XPTHATG +SYS_OP_XPTHIDX +SYS_OP_XPTHOP +SYS_OP_XTXT2SQLT +SYS_OP_ZONE_ID +SYS_ORDERKEY_DEPTH +SYS_ORDERKEY_MAXCHILD +SYS_ORDERKEY_PARENT +SYS_PARALLEL_TXN +SYS_PATHID_IS_ATTR +SYS_PATHID_IS_NMSPC +SYS_PATHID_LASTNAME +SYS_PATHID_LASTNMSPC +SYS_PATH_REVERSE +SYS_PXQEXTRACT +SYS_RAW_TO_XSID +SYS_RID_ORDER +SYS_ROW_DELTA +SYS_SC_2_XMLT +SYS_SYNRCIREDO +SYSTEM_DEFINED +SYSTEM +SYSTIMESTAMP +SYS_TYPEID +SYS_UMAKEXML +SYS_XMLANALYZE +SYS_XMLCONTAINS +SYS_XMLCONV +SYS_XMLEXNSURI +SYS_XMLGEN +SYS_XMLI_LOC_ISNODE +SYS_XMLI_LOC_ISTEXT +SYS_XMLINSTR +SYS_XMLLOCATOR_GETSVAL +SYS_XMLNODEID_GETCID +SYS_XMLNODEID_GETLOCATOR +SYS_XMLNODEID_GETOKEY +SYS_XMLNODEID_GETPATHID +SYS_XMLNODEID_GETPTRID +SYS_XMLNODEID_GETRID +SYS_XMLNODEID_GETSVAL +SYS_XMLNODEID_GETTID +SYS_XMLNODEID +SYS_XMLT_2_SC +SYS_XMLTRANSLATE +SYS_XMLTYPE2SQL +SYS_XQ_ASQLCNV +SYS_XQ_ATOMCNVCHK +SYS_XQBASEURI +SYS_XQCASTABLEERRH +SYS_XQCODEP2STR +SYS_XQCODEPEQ +SYS_XQCON2SEQ +SYS_XQCONCAT +SYS_XQDELETE +SYS_XQDFLTCOLATION +SYS_XQDOC +SYS_XQDOCURI +SYS_XQDURDIV +SYS_XQED4URI +SYS_XQENDSWITH +SYS_XQERRH +SYS_XQERR +SYS_XQESHTMLURI +SYS_XQEXLOBVAL +SYS_XQEXSTWRP +SYS_XQEXTRACT +SYS_XQEXTRREF +SYS_XQEXVAL +SYS_XQFB2STR +SYS_XQFNBOOL +SYS_XQFNCMP +SYS_XQFNDATIM +SYS_XQFNLNAME +SYS_XQFNNM +SYS_XQFNNSURI +SYS_XQFNPREDTRUTH +SYS_XQFNQNM +SYS_XQFNROOT +SYS_XQFORMATNUM +SYS_XQFTCONTAIN +SYS_XQFUNCR +SYS_XQGETCONTENT +SYS_XQINDXOF +SYS_XQINSERT +SYS_XQINSPFX +SYS_XQIRI2URI +SYS_XQLANG +SYS_XQLLNMFRMQNM +SYS_XQMKNODEREF +SYS_XQNILLED +SYS_XQNODENAME +SYS_XQNORMSPACE +SYS_XQNORMUCODE +SYS_XQ_NRNG +SYS_XQNSP4PFX +SYS_XQNSPFRMQNM +SYS_XQPFXFRMQNM +SYS_XQ_PKSQL2XML +SYS_XQPOLYABS +SYS_XQPOLYADD +SYS_XQPOLYCEL +SYS_XQPOLYCSTBL +SYS_XQPOLYCST +SYS_XQPOLYDIV +SYS_XQPOLYFLR +SYS_XQPOLYMOD +SYS_XQPOLYMUL +SYS_XQPOLYRND +SYS_XQPOLYSQRT +SYS_XQPOLYSUB +SYS_XQPOLYUMUS +SYS_XQPOLYUPLS +SYS_XQPOLYVEQ +SYS_XQPOLYVGE +SYS_XQPOLYVGT +SYS_XQPOLYVLE +SYS_XQPOLYVLT +SYS_XQPOLYVNE +SYS_XQREF2VAL +SYS_XQRENAME +SYS_XQREPLACE +SYS_XQRESVURI +SYS_XQRNDHALF2EVN +SYS_XQRSLVQNM +SYS_XQRYENVPGET +SYS_XQRYVARGET +SYS_XQRYWRP +SYS_XQSEQ2CON4XC +SYS_XQSEQ2CON +SYS_XQSEQDEEPEQ +SYS_XQSEQINSB +SYS_XQSEQRM +SYS_XQSEQRVS +SYS_XQSEQSUB +SYS_XQSEQTYPMATCH +SYS_XQSTARTSWITH +SYS_XQSTATBURI +SYS_XQSTR2CODEP +SYS_XQSTRJOIN +SYS_XQSUBSTRAFT +SYS_XQSUBSTRBEF +SYS_XQTOKENIZE +SYS_XQTREATAS +SYS_XQ_UPKXML2SQL +SYS_XQXFORM +SYS_XSID_TO_RAW +SYS_ZMAP_FILTER +SYS_ZMAP_REFRESH +T_LETTER +TABLE_LOOKUP_BY_NL +TABLESPACE_NO +TABLESPACE +TABLES +TABLE_STATS +TABLE +TABNO +TAG +TANH +TAN +TBLORIDXPARTNUM +TEMPFILE +TEMPLATE +TEMPLATE_TABLE +TEMPORARY +TEMP_TABLE +TERMINATED +TEST +TEXT +TEXTFILE +THAN +THEN +THE +THESE +THREAD +THROUGH +TIER +TIES +TIMEOUT +TIMESTAMP_LTZ_UNCONSTRAINED +TIMESTAMP +TIMESTAMP_TZ_UNCONSTRAINED +TIMESTAMP_UNCONSTRAINED +TIMES +TIME +TIMEZONE +TIMEZONE_ABBR +TIMEZONE_HOUR +TIMEZONE_MINUTE +TIMEZONE_OFFSET +TIMEZONE_REGION +TIME_ZONE +TIMING +TINYINT +TIV_GB +TIV_SSF +TO_ACLID +TO_BINARY_DOUBLE +TO_BINARY_FLOAT +TO_BLOB +TO_CLOB +TO_DSINTERVAL +TO_LOB +TO_MULTI_BYTE +TO_NCHAR +TO_NCLOB +TO_NUMBER +TOPLEVEL +TO_SINGLE_BYTE +TO_TIMESTAMP +TO_TIMESTAMP_TZ +TO_TIME +TO_TIME_TZ +TO +TO_YMINTERVAL +TRACE +TRACING +TRACKING +TRAILING +TRANSACTION +TRANSFORM +TRANSFORMS +TRANSFORM_DISTINCT_AGG +TRANSITIONAL +TRANSITION +TRANSLATE +TRANSLATION +TREAT +TRIGGERS +TRIGGER +TRUE +TRUNCATE +TRUNC +TRUSTED +TRUST +TUNING +TX +TYPES +TYPE +TZ_OFFSET +UB2 +UBA +UCS2 +UDF +UID +UNARCHIVED +UNBOUNDED +UNBOUND +UNCONDITIONAL +UNDER +UNDO +UNDROP +UNIFORM +UNION +UNIONTYPE +UNIQUE +UNISTR +UNLIMITED +UNLOAD +UNLOCK +UNMATCHED +UNNEST_INNERJ_DISTINCT_VIEW +UNNEST_NOSEMIJ_NODISTINCTVIEW +UNNEST_SEMIJ_VIEW +UNNEST +UNPACKED +UNPIVOT +UNPLUG +UNPROTECTED +UNQUIESCE +UNRECOVERABLE +UNRESTRICTED +UNSIGNED +UNSUBSCRIBE +UNTIL +UNUSABLE +UNUSED +UPDATABLE +UPDATED +UPDATE +UPDATEXML +UPD_INDEXES +UPD_JOININDEX +UPGRADE +UPPER +UPSERT +UROWID +USABLE +USAGE +USE_ANTI +USE_CONCAT +USE_CUBE +USE_HASH_AGGREGATION +USE_HASH_GBY_FOR_PUSHDOWN +USE_HASH +USE_HIDDEN_PARTITIONS +USE_INVISIBLE_INDEXES +USE_MERGE_CARTESIAN +USE_MERGE +USE_NL +USE_NL_WITH_INDEX +USE_PRIVATE_OUTLINES +USER_DATA +USER_DEFINED +USERENV +USERGROUP +USER_RECYCLEBIN +USERS +USER_TABLESPACES +USER +USE_SEMI +USE_STORED_OUTLINES +USE_TTT_FOR_GSETS +USE +USE_VECTOR_AGGREGATION +USE_WEAK_NAME_RESL +USING_NO_EXPAND +USING_NLS_COMP +USING +UTF16BE +UTF16LE +UTF32 +UTF8 +V1 +V2 +VALIDATE +VALIDATE_CONVERSION +VALIDATION +VALID_TIME_END +VALUES +VALUE +VARCHAR2 +VARCHAR +VARCHARC +VARIABLE +VARRAW +VARRAWC +VAR_POP +VARRAYS +VARRAY +VAR_SAMP +VARYING +VECTOR_READ_TRACE +VECTOR_READ +VECTOR_TRANSFORM_DIMS +VECTOR_TRANSFORM_FACT +VECTOR_TRANSFORM +VERIFIER +VERIFY +VERSIONING +VERSIONS_ENDSCN +VERSIONS_ENDTIME +VERSIONS_OPERATION +VERSIONS_STARTSCN +VERSIONS_STARTTIME +VERSIONS +VERSIONS_XID +VERSION +VIEW +VIOLATION +VIRTUAL +VISIBILITY +VISIBLE +VOLUME +VSIZE +WAIT +WALLET +WARNING +WEEKS +WEEK +WELLFORMED +WHENEVER +WHEN +WHERE +WHILE +WHITESPACE +WIDTH_BUCKET +WITHIN +WITHOUT +WITH_PLSQL +WITH +WORK +WORKERID +WRAPPED +WRAPPER +WRITE +XDB_FASTPATH_INSERT +XDB +X_DYN_PRUNE +XID +XML2OBJECT +XMLAGG +XMLATTRIBUTES +XMLCAST +XMLCDATA +XMLCOLATTVAL +XMLCOMMENT +XMLCONCAT +XMLDIFF +XML_DML_RWT_STMT +XMLELEMENT +XMLEXISTS2 +XMLEXISTS +XMLFOREST +XMLINDEX +XMLINDEX_REWRITE_IN_SELECT +XMLINDEX_REWRITE +XMLINDEX_SEL_IDX_TBL +XMLISNODE +XMLISVALID +XMLNAMESPACES +XMLPARSE +XMLPATCH +XMLPI +XMLQUERYVAL +XMLQUERY +XMLROOT +XMLSCHEMA +XMLSERIALIZE +XMLTABLE +XMLTAG +XMLTRANSFORMBLOB +XMLTRANSFORM +XMLTYPE +XML +XPATHTABLE +XS_SYS_CONTEXT +XS +XTRANSPORT +YEARS +YEAR +YEAR_TO_MONTH +YES +YMINTERVAL_UNCONSTRAINED +ZONEMAP +ZONE +ZONED +PREDICTION +PREDICTION_BOUNDS +PREDICTION_COST +PREDICTION_DETAILS +PREDICTION_PROBABILITY +PREDICTION_SET +BLOCKCHAIN +COLLATE +COLLATION +DEFINITION +DUPLICATED +EXTENDED +HASHING +IDLE +IMMUTABLE +ORACLE_DATAPUMP +ORACLE_HDFS +ORACLE_HIVE +ORACLE_LOADER +SHA2_512_Q +SHARDED +V1_Q +ISOLATE +ROOT +UNITE +ALGORITHM +CUME_DIST +DENSE_RANK +LISTAGG +PERCENT_RANK +PERCENTILE_CONT +PERCENTILE_DISC +RANK +AVG +CORR +COVAR_ +DECODE +LAG +LAG_DIFF +LAG_DIFF_PERCENT +LEAD +MAX +MEDIAN +MEMOPTIMIZE +MIN +NTILE +NVL +RATIO_TO_REPORT +REGR_ +ROUND +ROW_NUMBER +SUBSTR +TO_CHAR +TRIM +SUM +STDDEV +VAR_ +VARIANCE +LEAST +GREATEST +TO_DATE +CHARSETID +CHARSETFORM +DURATION +EXTEND +MAXLEN +PERSISTABLE +POLYMORPHIC +STRUCT +TDO +WM_CONCAT +NATIONAL_CHAR_STRING_LIT +BIT_STRING_LIT +HEX_STRING_LIT +DOUBLE_PERIOD +PERIOD +UNSIGNED_INTEGER +APPROXIMATE_NUM_LIT +CHAR_STRING +DELIMITED_ID +PERCENT +AMPERSAND +LEFT_PAREN +RIGHT_PAREN +DOUBLE_ASTERISK +ASTERISK +PLUS_SIGN +MINUS_SIGN +COMMA +SOLIDUS +AT_SIGN +ASSIGN_OP +HASH_OP +LEFT_CURLY_PAREN +RIGHT_CURLY_PAREN +SQ +BINDVAR +NOT_EQUAL_OP +CARRET_OPERATOR_PART +TILDE_OPERATOR_PART +EXCLAMATION_OPERATOR_PART +GREATER_THAN_OP +LESS_THAN_OP +COLON +SEMICOLON +BAR +EQUALS_OP +LEFT_BRACKET +RIGHT_BRACKET +INTRODUCER +SINGLE_LINE_COMMENT +MULTI_LINE_COMMENT +REMARK_COMMENT +PROMPT_MESSAGE +START_CMD +REGULAR_ID +INQUIRY_DIRECTIVE +SPACES + +rule names: +sql_script +unit_statement +alter_diskgroup +add_disk_clause +drop_disk_clause +resize_disk_clause +replace_disk_clause +wait_nowait +rename_disk_clause +disk_online_clause +disk_offline_clause +timeout_clause +rebalance_diskgroup_clause +phase +check_diskgroup_clause +diskgroup_template_clauses +qualified_template_clause +redundancy_clause +striping_clause +force_noforce +diskgroup_directory_clauses +dir_name +diskgroup_alias_clauses +diskgroup_volume_clauses +add_volume_clause +modify_volume_clause +diskgroup_attributes +drop_diskgroup_file_clause +convert_redundancy_clause +usergroup_clauses +user_clauses +file_permissions_clause +file_owner_clause +scrub_clause +quotagroup_clauses +property_name +property_value +filegroup_clauses +add_filegroup_clause +modify_filegroup_clause +move_to_filegroup_clause +drop_filegroup_clause +quorum_regular +undrop_disk_clause +diskgroup_availability +enable_disable_volume +drop_function +alter_flashback_archive +alter_hierarchy +alter_function +alter_java +match_string +create_function_body +sql_macro_body +parallel_enable_clause +partition_by_clause +result_cache_clause +accessible_by_clause +default_collation_clause +aggregate_clause +pipelined_using_clause +accessor +relies_on_part +streaming_clause +alter_outline +outline_options +alter_lockdown_profile +lockdown_feature +lockdown_options +lockdown_statements +statement_clauses +clause_options +option_values +string_list +disable_enable +drop_lockdown_profile +drop_package +alter_package +create_package +create_package_body +package_obj_spec +procedure_spec +function_spec +package_obj_body +alter_pmem_filestore +drop_pmem_filestore +drop_procedure +alter_procedure +function_body +procedure_body +create_procedure_body +alter_resource_cost +drop_outline +alter_rollback_segment +drop_restore_point +drop_rollback_segment +drop_role +create_pmem_filestore +pmem_filestore_options +file_path +create_rollback_segment +drop_trigger +alter_trigger +create_trigger +trigger_follows_clause +trigger_when_clause +simple_dml_trigger +for_each_row +compound_dml_trigger +non_dml_trigger +trigger_body +compound_trigger_block +timing_point_section +non_dml_event +dml_event_clause +dml_event_element +dml_event_nested_clause +referencing_clause +referencing_element +drop_type +alter_type +compile_type_clause +replace_type_clause +alter_method_spec +alter_method_element +alter_collection_clauses +dependent_handling_clause +dependent_exceptions_part +create_type +type_definition +object_type_def +object_as_part +object_under_part +nested_table_type_def +sqlj_object_type +type_body +type_body_elements +map_order_func_declaration +subprog_decl_in_type +proc_decl_in_type +func_decl_in_type +constructor_declaration +modifier_clause +object_member_spec +sqlj_object_type_attr +element_spec +element_spec_options +subprogram_spec +overriding_subprogram_spec +overriding_function_spec +type_procedure_spec +type_function_spec +constructor_spec +map_order_function_spec +pragma_clause +pragma_elements +type_elements_parameter +drop_sequence +alter_sequence +alter_session +alter_session_set_clause +create_sequence +sequence_spec +sequence_start_clause +create_analytic_view +classification_clause +caption_clause +description_clause +classification_item +language +cav_using_clause +dim_by_clause +dim_key +dim_ref +hier_ref +measures_clause +av_measure +base_meas_clause +meas_aggregate_clause +calc_meas_clause +default_measure_clause +default_aggregate_clause +cache_clause +cache_specification +levels_clause +level_specification +level_group_type +fact_columns_clause +qry_transform_clause +create_attribute_dimension +ad_using_clause +source_clause +join_path_clause +join_condition +join_condition_item +attributes_clause +ad_attributes_clause +ad_level_clause +key_clause +alternate_key_clause +dim_order_clause +all_clause +create_audit_policy +privilege_audit_clause +action_audit_clause +system_actions +standard_actions +actions_clause +object_action +system_action +component_actions +component_action +role_audit_clause +create_controlfile +controlfile_options +logfile_clause +character_set_clause +file_specification +create_diskgroup +qualified_disk_clause +create_edition +create_flashback_archive +flashback_archive_quota +flashback_archive_retention +create_hierarchy +hier_using_clause +level_hier_clause +hier_attrs_clause +hier_attr_clause +hier_attr_name +create_index +cluster_index_clause +cluster_name +table_index_clause +bitmap_join_index_clause +index_expr +index_properties +domain_index_clause +local_domain_index_clause +xmlindex_clause +local_xmlindex_clause +global_partitioned_index +index_partitioning_clause +index_partitioning_values_list +local_partitioned_index +on_range_partitioned_table +on_list_partitioned_table +partitioned_table +on_hash_partitioned_table +on_hash_partitioned_clause +on_comp_partitioned_table +on_comp_partitioned_clause +index_subpartition_clause +index_subpartition_subclause +odci_parameters +indextype +alter_index +alter_index_ops_set1 +alter_index_ops_set2 +visible_or_invisible +monitoring_nomonitoring +rebuild_clause +alter_index_partitioning +modify_index_default_attrs +add_hash_index_partition +coalesce_index_partition +modify_index_partition +modify_index_partitions_ops +rename_index_partition +drop_index_partition +split_index_partition +index_partition_description +modify_index_subpartition +partition_name_old +new_partition_name +new_index_name +alter_inmemory_join_group +create_user +alter_user +drop_user +alter_identified_by +identified_by +identified_other_clause +user_tablespace_clause +quota_clause +profile_clause +role_clause +user_default_role_clause +password_expire_clause +user_lock_clause +user_editions_clause +alter_user_editions_clause +proxy_clause +container_names +set_container_data +add_rem_container_data +container_data_clause +administer_key_management +keystore_management_clauses +create_keystore +open_keystore +force_keystore +close_keystore +backup_keystore +alter_keystore_password +merge_into_new_keystore +merge_into_existing_keystore +isolate_keystore +unite_keystore +key_management_clauses +set_key +create_key +mkid +mk +use_key +set_key_tag +export_keys +import_keys +migrate_keys +reverse_migrate_keys +move_keys +identified_by_store +using_algorithm_clause +using_tag_clause +secret_management_clauses +add_update_secret +delete_secret +add_update_secret_seps +delete_secret_seps +zero_downtime_software_patching_clauses +with_backup_clause +identified_by_password_clause +keystore_password +path +secret +analyze +partition_extention_clause +validation_clauses +compute_clauses +for_clause +online_or_offline +into_clause1 +partition_key_value +subpartition_key_value +associate_statistics +column_association +function_association +indextype_name +using_statistics_type +statistics_type_name +default_cost_clause +cpu_cost +io_cost +network_cost +default_selectivity_clause +default_selectivity +storage_table_clause +unified_auditing +policy_name +audit_traditional +audit_direct_path +audit_container_clause +audit_operation_clause +auditing_by_clause +audit_user +audit_schema_object_clause +sql_operation +auditing_on_clause +model_name +object_name +profile_name +sql_statement_shortcut +drop_index +disassociate_statistics +drop_indextype +drop_inmemory_join_group +flashback_table +restore_point +purge_statement +noaudit_statement +rename_object +grant_statement +container_clause +revoke_statement +revoke_system_privilege +revokee_clause +revoke_object_privileges +on_object_clause +revoke_roles_from_programs +program_unit +create_dimension +create_directory +directory_name +directory_path +create_inmemory_join_group +drop_hierarchy +alter_library +drop_java +drop_library +create_java +create_library +plsql_library_source +credential_name +library_editionable +library_debug +compiler_parameters_clause +parameter_value +library_name +alter_dimension +level_clause +hierarchy_clause +dimension_join_clause +attribute_clause +extended_attribute_clause +column_one_or_more_sub_clause +alter_view +alter_view_editionable +create_view +editioning_clause +view_options +view_alias_constraint +object_view_clause +inline_constraint +inline_ref_constraint +out_of_line_ref_constraint +out_of_line_constraint +constraint_state +xmltype_view_clause +xml_schema_spec +xml_schema_url +element +alter_tablespace +datafile_tempfile_clauses +tablespace_logging_clauses +tablespace_group_clause +tablespace_group_name +tablespace_state_clauses +flashback_mode_clause +new_tablespace_name +create_tablespace +permanent_tablespace_clause +tablespace_encryption_spec +logging_clause +extent_management_clause +segment_management_clause +temporary_tablespace_clause +undo_tablespace_clause +tablespace_retention_clause +create_tablespace_set +permanent_tablespace_attrs +tablespace_encryption_clause +default_tablespace_params +default_table_compression +low_high +default_index_compression +inmmemory_clause +datafile_specification +tempfile_specification +datafile_tempfile_spec +redo_log_file_spec +autoextend_clause +maxsize_clause +build_clause +parallel_clause +parallel_instances_clause +alter_materialized_view +alter_mv_option1 +alter_mv_refresh +rollback_segment +modify_mv_column_clause +alter_materialized_view_log +add_mv_log_column_clause +move_mv_log_clause +mv_log_augmentation +create_materialized_view_log +new_values_clause +mv_log_purge_clause +create_materialized_zonemap +alter_materialized_zonemap +drop_materialized_zonemap +zonemap_refresh_clause +zonemap_attributes +zonemap_name +operator_name +operator_function_name +create_zonemap_on_table +create_zonemap_as_subquery +alter_operator +drop_operator +create_operator +binding_clause +add_binding_clause +implementation_clause +primary_operator_list +primary_operator_item +operator_context_clause +using_function_clause +drop_binding_clause +create_materialized_view +scoped_table_ref_constraint +mv_column_alias +create_mv_refresh +drop_materialized_view +drop_materialized_view_log +create_context +oracle_namespace +create_cluster +create_profile +resource_parameters +password_parameters +create_lockdown_profile +static_base_profile +dynamic_base_profile +create_outline +create_restore_point +create_role +create_table +xmltype_table +xmltype_virtual_columns +xmltype_column_properties +xmltype_storage +xmlschema_spec +object_table +object_type +oid_index_clause +oid_clause +object_properties +object_table_substitution +relational_table +relational_table_properties +relational_table_property +immutable_table_clauses +immutable_table_no_drop_clause +immutable_table_no_delete_clause +blockchain_table_clauses +blockchain_drop_table_clause +blockchain_row_retention_clause +blockchain_hash_and_data_format_clause +collation_name +table_properties +read_only_clause +indexing_clause +attribute_clustering_clause +clustering_join +clustering_join_item +equijoin_condition +cluster_clause +clustering_columns +clustering_column_group +yes_no +zonemap_clause +logical_replication_clause +table_name +relational_property +table_partitioning_clauses +range_partitions +list_partitions +hash_partitions +individual_hash_partitions +hash_partitions_by_quantity +hash_partition_quantity +composite_range_partitions +composite_list_partitions +composite_hash_partitions +reference_partitioning +reference_partition_desc +system_partitioning +range_partition_desc +list_partition_desc +subpartition_template +hash_subpartition_quantity +subpartition_by_range +subpartition_by_list +subpartition_by_hash +subpartition_name +range_subpartition_desc +list_subpartition_desc +individual_hash_subparts +hash_subparts_by_quantity +range_values_clause +range_values_list +list_values_clause +table_partition_description +partitioning_storage_clause +lob_partitioning_storage +size_clause +table_compression +inmemory_table_clause +inmemory_attributes +inmemory_memcompress +inmemory_priority +inmemory_distribute +inmemory_duplicate +inmemory_column_clause +physical_attributes_clause +storage_clause +deferred_segment_creation +segment_attributes_clause +physical_properties +ilm_clause +ilm_policy_clause +ilm_compression_policy +ilm_tiering_policy +ilm_after_on +segment_group +ilm_inmemory_policy +ilm_time_period +heap_org_table_clause +external_table_clause +access_driver_type +external_table_data_props +external_table_data_format +external_table_transform +external_table_field +external_table_field_list +external_table_fields_clause +external_table_position_clause +external_table_datatype_clause +external_table_delimit_clause +external_table_trim_clause +external_table_date_format_clause +external_table_init_clause +external_table_condition_clause +external_table_lls_clause +external_table_records +external_table_record_options_clause +external_table_output_files +external_table_fields +external_table_datapump +external_table_hive +external_table_hive_parameter_map +external_table_hive_parameter_map_entry +external_table_directory +row_movement_clause +flashback_archive_clause +log_grp +supplemental_table_logging +supplemental_log_grp_clause +supplemental_id_key_clause +allocate_extent_clause +deallocate_unused_clause +shrink_clause +records_per_block_clause +upgrade_table_clause +truncate_table +drop_table +drop_tablespace +drop_tablespace_set +including_contents_clause +drop_view +comment_on_column +enable_or_disable +allow_or_disallow +alter_synonym +create_synonym +drop_synonym +create_spfile +spfile_name +pfile_name +comment_on_table +comment_on_materialized +alter_analytic_view +alter_add_cache_clause +levels_item +measure_list +alter_drop_cache_clause +alter_attribute_dimension +alter_audit_policy +alter_cluster +drop_analytic_view +drop_attribute_dimension +drop_audit_policy +drop_flashback_archive +drop_cluster +drop_context +drop_directory +drop_diskgroup +drop_edition +truncate_cluster +cache_or_nocache +database_name +alter_database +database_clause +startup_clauses +resetlogs_or_noresetlogs +upgrade_or_downgrade +recovery_clauses +begin_or_end +general_recovery +full_database_recovery +partial_database_recovery +partial_database_recovery_10g +managed_standby_recovery +db_name +database_file_clauses +create_datafile_clause +alter_datafile_clause +alter_tempfile_clause +move_datafile_clause +logfile_clauses +add_logfile_clauses +group_redo_logfile +drop_logfile_clauses +switch_logfile_clause +supplemental_db_logging +add_or_drop +supplemental_plsql_clause +logfile_descriptor +controlfile_clauses +trace_file_clause +standby_database_clauses +activate_standby_db_clause +maximize_standby_db_clause +register_logfile_clause +commit_switchover_clause +start_standby_clause +stop_standby_clause +convert_database_clause +default_settings_clause +set_time_zone_clause +instance_clauses +security_clause +domain +database +edition_name +filenumber +filename +prepare_clause +drop_mirror_clause +lost_write_protection +cdb_fleet_clauses +lead_cdb_clause +lead_cdb_uri_clause +property_clauses +replay_upgrade_clauses +alter_database_link +password_value +link_authentication +create_schema +create_database +database_logging_clauses +database_logging_sub_clause +tablespace_clauses +enable_pluggable_database +file_name_convert +filename_convert_sub_clause +tablespace_datafile_clauses +undo_mode_clause +default_tablespace +default_temp_tablespace +undo_tablespace +drop_database +create_database_link +drop_database_link +alter_tablespace_set +alter_tablespace_attrs +alter_tablespace_encryption +ts_file_name_convert +alter_role +role_identified_clause +alter_table +memoptimize_read_write_clause +alter_table_properties +alter_table_partitioning +add_table_partition +drop_table_partition +merge_table_partition +modify_table_partition +split_table_partition +truncate_table_partition +exchange_table_partition +coalesce_table_partition +alter_interval_partition +move_table_partition +filter_condition +partition_extended_names +subpartition_extended_names +alter_table_properties_1 +alter_iot_clauses +alter_mapping_table_clause +alter_overflow_clause +add_overflow_clause +update_index_clauses +update_global_index_clause +update_all_indexes_clause +update_all_indexes_index_clause +update_index_partition +update_index_subpartition +enable_disable_clause +using_index_clause +index_attributes +sort_or_nosort +exceptions_clause +move_table_clause +index_org_table_clause +mapping_table_clause +key_compression +index_org_overflow_clause +column_clauses +modify_collection_retrieval +collection_item +rename_column_clause +old_column_name +new_column_name +add_modify_drop_column_clauses +drop_column_clause +modify_column_clauses +modify_col_properties +modify_col_visibility +modify_col_substitutable +add_column_clause +varray_col_properties +varray_storage_clause +lob_segname +lob_item +lob_storage_parameters +lob_storage_clause +modify_lob_storage_clause +modify_lob_parameters +lob_parameters +lob_deduplicate_clause +lob_compression_clause +lob_retention_clause +encryption_spec +tablespace +varray_item +column_properties +lob_partition_storage +period_definition +start_time_column +end_time_column +column_definition +column_collation_name +identity_clause +identity_options_parentheses +identity_options +virtual_column_definition +virtual_column_expression +autogenerated_sequence_definition +by_user_for_statistics_clause +evaluation_edition_clause +nested_table_col_properties +nested_item +substitutable_column_clause +partition_name +supplemental_logging_props +object_type_col_properties +constraint_clauses +old_constraint_name +new_constraint_name +drop_constraint_clause +check_constraint +foreign_key_clause +references_clause +on_delete_clause +anonymous_block +invoker_rights_clause +call_spec +java_spec +c_spec +c_agent_in_clause +c_parameters_clause +c_external_parameter +c_property +parameter +default_value_part +seq_of_declare_specs +declare_spec +variable_declaration +subtype_declaration +cursor_declaration +parameter_spec +exception_declaration +pragma_declaration +record_type_def +field_spec +ref_cursor_type_def +type_declaration +table_type_def +table_indexed_by_part +varray_type_def +seq_of_statements +label_declaration +statement +assignment_statement +continue_statement +exit_statement +goto_statement +if_statement +elsif_part +else_part +loop_statement +cursor_loop_param +forall_statement +bounds_clause +between_bound +lower_bound +upper_bound +null_statement +raise_statement +return_statement +call_statement +pipe_row_statement +selection_directive +error_directive +selection_directive_body +body +exception_handler +trigger_block +tps_block +block +sql_statement +execute_immediate +dynamic_returning_clause +data_manipulation_language_statements +cursor_manipulation_statements +close_statement +open_statement +fetch_statement +variable_or_collection +open_for_statement +transaction_control_statements +set_transaction_command +set_constraint_command +commit_statement +write_clause +rollback_statement +savepoint_statement +collection_method_call +explain_statement +select_only_statement +select_statement +with_clause +with_factoring_clause +subquery_factoring_clause +search_clause +cycle_clause +subav_factoring_clause +subav_clause +hierarchies_clause +filter_clauses +filter_clause +add_calcs_clause +add_calc_meas_clause +subquery +subquery_basic_elements +subquery_operation_part +query_block +selected_list +from_clause +select_list_elements +table_ref_list +table_ref +table_ref_aux +table_ref_aux_internal +join_clause +join_on_part +join_using_part +outer_join_type +query_partition_clause +flashback_query_clause +pivot_clause +pivot_element +pivot_for_clause +pivot_in_clause +pivot_in_clause_element +pivot_in_clause_elements +unpivot_clause +unpivot_in_clause +unpivot_in_elements +hierarchical_query_clause +start_part +group_by_clause +group_by_elements +rollup_cube_clause +grouping_sets_clause +grouping_sets_elements +having_clause +model_clause +cell_reference_options +return_rows_clause +reference_model +main_model +model_column_clauses +model_column_partition_part +model_column_list +model_column +model_rules_clause +model_rules_part +model_rules_element +cell_assignment +model_iterate_clause +until_part +order_by_clause +order_by_elements +offset_clause +fetch_clause +for_update_clause +for_update_of_part +for_update_options +update_statement +update_set_clause +column_based_update_set_clause +delete_statement +insert_statement +single_table_insert +multi_table_insert +multi_table_element +conditional_insert_clause +conditional_insert_when_part +conditional_insert_else_part +insert_into_clause +values_clause +merge_statement +merge_update_clause +merge_element +merge_update_delete_part +merge_insert_clause +selected_tableview +lock_table_statement +wait_nowait_part +lock_table_element +lock_mode +general_table_ref +static_returning_clause +error_logging_clause +error_logging_into_part +error_logging_reject_part +dml_table_expression_clause +table_collection_expression +subquery_restriction_clause +sample_clause +seed_part +condition +expressions_ +expression +cursor_expression +logical_expression +unary_logical_expression +unary_logical_operation +logical_operation +multiset_expression +relational_expression +compound_expression +relational_operator +in_elements +between_elements +concatenation +interval_expression +model_expression +model_expression_element +single_column_for_loop +multi_column_for_loop +unary_expression +implicit_cursor_expression +collection_expression +case_statement +simple_case_statement +searched_case_statement +case_when_part_statement +case_else_part_statement +case_expression +simple_case_expression +searched_case_expression +case_when_part_expression +case_else_part_expression +atom +quantified_expression +string_function +standard_function +json_function +json_object_content +json_object_entry +json_table_clause +json_array_element +json_on_null_clause +json_return_clause +json_transform_op +json_column_clause +json_column_definition +json_query_returning_clause +json_query_return_type +json_query_wrapper_clause +json_query_on_error_clause +json_query_on_empty_clause +json_value_return_clause +json_value_return_type +json_value_on_mismatch_clause +literal +numeric_function_wrapper +numeric_function +listagg_overflow_clause +other_function +over_clause_keyword +within_or_over_clause_keyword +standard_prediction_function_keyword +over_clause +windowing_clause +windowing_type +windowing_elements +using_clause +using_element +collect_order_by_part +within_or_over_part +string_delimiter +cost_matrix_clause +xml_passing_clause +xml_attributes_clause +xml_namespaces_clause +xml_table_column +xml_general_default_part +xml_multiuse_expression_element +xmlroot_param_version_part +xmlroot_param_standalone_part +xmlserialize_param_enconding_part +xmlserialize_param_version_part +xmlserialize_param_ident_part +annotations_clause +annotations_list +annotation +sql_plus_command_no_semicolon +sql_plus_command +start_command +whenever_command +set_command +timing_command +clear_command +partition_extension_clause +column_alias +table_alias +where_clause +into_clause +xml_column_name +cost_class_name +attribute_name +savepoint_name +rollback_segment_name +schema_name +routine_name +package_name +implementation_type_name +parameter_name +reference_model_name +main_model_name +container_tableview_name +aggregate_function_name +query_name +grantee_name +role_name +constraint_name +label_name +type_name +sequence_name +exception_name +function_name +procedure_name +trigger_name +variable_name +index_name +cursor_name +record_name +link_name +local_link_name +connection_qualifier +column_name +tableview_name +xmltable +char_set_name +synonym_name +schema_object_name +dir_object_name +user_object_name +grant_object_name +column_list +paren_column_list +keep_clause +function_argument +function_argument_analytic +function_argument_modeling +respect_or_ignore_nulls +argument +type_spec +datatype +precision_part +native_datatype_element +bind_variable +general_element +general_element_part +table_element +object_privilege +system_privilege +constant +numeric +numeric_negative +quoted_string +identifier +id_expression +inquiry_directive +outer_join_sign +regular_id +non_reserved_keywords_in_18c +non_reserved_keywords_in_12c +non_reserved_keywords_pre12c + + +atn: +[4, 1, 2480, 21189, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 2, 440, 7, 440, 2, 441, 7, 441, 2, 442, 7, 442, 2, 443, 7, 443, 2, 444, 7, 444, 2, 445, 7, 445, 2, 446, 7, 446, 2, 447, 7, 447, 2, 448, 7, 448, 2, 449, 7, 449, 2, 450, 7, 450, 2, 451, 7, 451, 2, 452, 7, 452, 2, 453, 7, 453, 2, 454, 7, 454, 2, 455, 7, 455, 2, 456, 7, 456, 2, 457, 7, 457, 2, 458, 7, 458, 2, 459, 7, 459, 2, 460, 7, 460, 2, 461, 7, 461, 2, 462, 7, 462, 2, 463, 7, 463, 2, 464, 7, 464, 2, 465, 7, 465, 2, 466, 7, 466, 2, 467, 7, 467, 2, 468, 7, 468, 2, 469, 7, 469, 2, 470, 7, 470, 2, 471, 7, 471, 2, 472, 7, 472, 2, 473, 7, 473, 2, 474, 7, 474, 2, 475, 7, 475, 2, 476, 7, 476, 2, 477, 7, 477, 2, 478, 7, 478, 2, 479, 7, 479, 2, 480, 7, 480, 2, 481, 7, 481, 2, 482, 7, 482, 2, 483, 7, 483, 2, 484, 7, 484, 2, 485, 7, 485, 2, 486, 7, 486, 2, 487, 7, 487, 2, 488, 7, 488, 2, 489, 7, 489, 2, 490, 7, 490, 2, 491, 7, 491, 2, 492, 7, 492, 2, 493, 7, 493, 2, 494, 7, 494, 2, 495, 7, 495, 2, 496, 7, 496, 2, 497, 7, 497, 2, 498, 7, 498, 2, 499, 7, 499, 2, 500, 7, 500, 2, 501, 7, 501, 2, 502, 7, 502, 2, 503, 7, 503, 2, 504, 7, 504, 2, 505, 7, 505, 2, 506, 7, 506, 2, 507, 7, 507, 2, 508, 7, 508, 2, 509, 7, 509, 2, 510, 7, 510, 2, 511, 7, 511, 2, 512, 7, 512, 2, 513, 7, 513, 2, 514, 7, 514, 2, 515, 7, 515, 2, 516, 7, 516, 2, 517, 7, 517, 2, 518, 7, 518, 2, 519, 7, 519, 2, 520, 7, 520, 2, 521, 7, 521, 2, 522, 7, 522, 2, 523, 7, 523, 2, 524, 7, 524, 2, 525, 7, 525, 2, 526, 7, 526, 2, 527, 7, 527, 2, 528, 7, 528, 2, 529, 7, 529, 2, 530, 7, 530, 2, 531, 7, 531, 2, 532, 7, 532, 2, 533, 7, 533, 2, 534, 7, 534, 2, 535, 7, 535, 2, 536, 7, 536, 2, 537, 7, 537, 2, 538, 7, 538, 2, 539, 7, 539, 2, 540, 7, 540, 2, 541, 7, 541, 2, 542, 7, 542, 2, 543, 7, 543, 2, 544, 7, 544, 2, 545, 7, 545, 2, 546, 7, 546, 2, 547, 7, 547, 2, 548, 7, 548, 2, 549, 7, 549, 2, 550, 7, 550, 2, 551, 7, 551, 2, 552, 7, 552, 2, 553, 7, 553, 2, 554, 7, 554, 2, 555, 7, 555, 2, 556, 7, 556, 2, 557, 7, 557, 2, 558, 7, 558, 2, 559, 7, 559, 2, 560, 7, 560, 2, 561, 7, 561, 2, 562, 7, 562, 2, 563, 7, 563, 2, 564, 7, 564, 2, 565, 7, 565, 2, 566, 7, 566, 2, 567, 7, 567, 2, 568, 7, 568, 2, 569, 7, 569, 2, 570, 7, 570, 2, 571, 7, 571, 2, 572, 7, 572, 2, 573, 7, 573, 2, 574, 7, 574, 2, 575, 7, 575, 2, 576, 7, 576, 2, 577, 7, 577, 2, 578, 7, 578, 2, 579, 7, 579, 2, 580, 7, 580, 2, 581, 7, 581, 2, 582, 7, 582, 2, 583, 7, 583, 2, 584, 7, 584, 2, 585, 7, 585, 2, 586, 7, 586, 2, 587, 7, 587, 2, 588, 7, 588, 2, 589, 7, 589, 2, 590, 7, 590, 2, 591, 7, 591, 2, 592, 7, 592, 2, 593, 7, 593, 2, 594, 7, 594, 2, 595, 7, 595, 2, 596, 7, 596, 2, 597, 7, 597, 2, 598, 7, 598, 2, 599, 7, 599, 2, 600, 7, 600, 2, 601, 7, 601, 2, 602, 7, 602, 2, 603, 7, 603, 2, 604, 7, 604, 2, 605, 7, 605, 2, 606, 7, 606, 2, 607, 7, 607, 2, 608, 7, 608, 2, 609, 7, 609, 2, 610, 7, 610, 2, 611, 7, 611, 2, 612, 7, 612, 2, 613, 7, 613, 2, 614, 7, 614, 2, 615, 7, 615, 2, 616, 7, 616, 2, 617, 7, 617, 2, 618, 7, 618, 2, 619, 7, 619, 2, 620, 7, 620, 2, 621, 7, 621, 2, 622, 7, 622, 2, 623, 7, 623, 2, 624, 7, 624, 2, 625, 7, 625, 2, 626, 7, 626, 2, 627, 7, 627, 2, 628, 7, 628, 2, 629, 7, 629, 2, 630, 7, 630, 2, 631, 7, 631, 2, 632, 7, 632, 2, 633, 7, 633, 2, 634, 7, 634, 2, 635, 7, 635, 2, 636, 7, 636, 2, 637, 7, 637, 2, 638, 7, 638, 2, 639, 7, 639, 2, 640, 7, 640, 2, 641, 7, 641, 2, 642, 7, 642, 2, 643, 7, 643, 2, 644, 7, 644, 2, 645, 7, 645, 2, 646, 7, 646, 2, 647, 7, 647, 2, 648, 7, 648, 2, 649, 7, 649, 2, 650, 7, 650, 2, 651, 7, 651, 2, 652, 7, 652, 2, 653, 7, 653, 2, 654, 7, 654, 2, 655, 7, 655, 2, 656, 7, 656, 2, 657, 7, 657, 2, 658, 7, 658, 2, 659, 7, 659, 2, 660, 7, 660, 2, 661, 7, 661, 2, 662, 7, 662, 2, 663, 7, 663, 2, 664, 7, 664, 2, 665, 7, 665, 2, 666, 7, 666, 2, 667, 7, 667, 2, 668, 7, 668, 2, 669, 7, 669, 2, 670, 7, 670, 2, 671, 7, 671, 2, 672, 7, 672, 2, 673, 7, 673, 2, 674, 7, 674, 2, 675, 7, 675, 2, 676, 7, 676, 2, 677, 7, 677, 2, 678, 7, 678, 2, 679, 7, 679, 2, 680, 7, 680, 2, 681, 7, 681, 2, 682, 7, 682, 2, 683, 7, 683, 2, 684, 7, 684, 2, 685, 7, 685, 2, 686, 7, 686, 2, 687, 7, 687, 2, 688, 7, 688, 2, 689, 7, 689, 2, 690, 7, 690, 2, 691, 7, 691, 2, 692, 7, 692, 2, 693, 7, 693, 2, 694, 7, 694, 2, 695, 7, 695, 2, 696, 7, 696, 2, 697, 7, 697, 2, 698, 7, 698, 2, 699, 7, 699, 2, 700, 7, 700, 2, 701, 7, 701, 2, 702, 7, 702, 2, 703, 7, 703, 2, 704, 7, 704, 2, 705, 7, 705, 2, 706, 7, 706, 2, 707, 7, 707, 2, 708, 7, 708, 2, 709, 7, 709, 2, 710, 7, 710, 2, 711, 7, 711, 2, 712, 7, 712, 2, 713, 7, 713, 2, 714, 7, 714, 2, 715, 7, 715, 2, 716, 7, 716, 2, 717, 7, 717, 2, 718, 7, 718, 2, 719, 7, 719, 2, 720, 7, 720, 2, 721, 7, 721, 2, 722, 7, 722, 2, 723, 7, 723, 2, 724, 7, 724, 2, 725, 7, 725, 2, 726, 7, 726, 2, 727, 7, 727, 2, 728, 7, 728, 2, 729, 7, 729, 2, 730, 7, 730, 2, 731, 7, 731, 2, 732, 7, 732, 2, 733, 7, 733, 2, 734, 7, 734, 2, 735, 7, 735, 2, 736, 7, 736, 2, 737, 7, 737, 2, 738, 7, 738, 2, 739, 7, 739, 2, 740, 7, 740, 2, 741, 7, 741, 2, 742, 7, 742, 2, 743, 7, 743, 2, 744, 7, 744, 2, 745, 7, 745, 2, 746, 7, 746, 2, 747, 7, 747, 2, 748, 7, 748, 2, 749, 7, 749, 2, 750, 7, 750, 2, 751, 7, 751, 2, 752, 7, 752, 2, 753, 7, 753, 2, 754, 7, 754, 2, 755, 7, 755, 2, 756, 7, 756, 2, 757, 7, 757, 2, 758, 7, 758, 2, 759, 7, 759, 2, 760, 7, 760, 2, 761, 7, 761, 2, 762, 7, 762, 2, 763, 7, 763, 2, 764, 7, 764, 2, 765, 7, 765, 2, 766, 7, 766, 2, 767, 7, 767, 2, 768, 7, 768, 2, 769, 7, 769, 2, 770, 7, 770, 2, 771, 7, 771, 2, 772, 7, 772, 2, 773, 7, 773, 2, 774, 7, 774, 2, 775, 7, 775, 2, 776, 7, 776, 2, 777, 7, 777, 2, 778, 7, 778, 2, 779, 7, 779, 2, 780, 7, 780, 2, 781, 7, 781, 2, 782, 7, 782, 2, 783, 7, 783, 2, 784, 7, 784, 2, 785, 7, 785, 2, 786, 7, 786, 2, 787, 7, 787, 2, 788, 7, 788, 2, 789, 7, 789, 2, 790, 7, 790, 2, 791, 7, 791, 2, 792, 7, 792, 2, 793, 7, 793, 2, 794, 7, 794, 2, 795, 7, 795, 2, 796, 7, 796, 2, 797, 7, 797, 2, 798, 7, 798, 2, 799, 7, 799, 2, 800, 7, 800, 2, 801, 7, 801, 2, 802, 7, 802, 2, 803, 7, 803, 2, 804, 7, 804, 2, 805, 7, 805, 2, 806, 7, 806, 2, 807, 7, 807, 2, 808, 7, 808, 2, 809, 7, 809, 2, 810, 7, 810, 2, 811, 7, 811, 2, 812, 7, 812, 2, 813, 7, 813, 2, 814, 7, 814, 2, 815, 7, 815, 2, 816, 7, 816, 2, 817, 7, 817, 2, 818, 7, 818, 2, 819, 7, 819, 2, 820, 7, 820, 2, 821, 7, 821, 2, 822, 7, 822, 2, 823, 7, 823, 2, 824, 7, 824, 2, 825, 7, 825, 2, 826, 7, 826, 2, 827, 7, 827, 2, 828, 7, 828, 2, 829, 7, 829, 2, 830, 7, 830, 2, 831, 7, 831, 2, 832, 7, 832, 2, 833, 7, 833, 2, 834, 7, 834, 2, 835, 7, 835, 2, 836, 7, 836, 2, 837, 7, 837, 2, 838, 7, 838, 2, 839, 7, 839, 2, 840, 7, 840, 2, 841, 7, 841, 2, 842, 7, 842, 2, 843, 7, 843, 2, 844, 7, 844, 2, 845, 7, 845, 2, 846, 7, 846, 2, 847, 7, 847, 2, 848, 7, 848, 2, 849, 7, 849, 2, 850, 7, 850, 2, 851, 7, 851, 2, 852, 7, 852, 2, 853, 7, 853, 2, 854, 7, 854, 2, 855, 7, 855, 2, 856, 7, 856, 2, 857, 7, 857, 2, 858, 7, 858, 2, 859, 7, 859, 2, 860, 7, 860, 2, 861, 7, 861, 2, 862, 7, 862, 2, 863, 7, 863, 2, 864, 7, 864, 2, 865, 7, 865, 2, 866, 7, 866, 2, 867, 7, 867, 2, 868, 7, 868, 2, 869, 7, 869, 2, 870, 7, 870, 2, 871, 7, 871, 2, 872, 7, 872, 2, 873, 7, 873, 2, 874, 7, 874, 2, 875, 7, 875, 2, 876, 7, 876, 2, 877, 7, 877, 2, 878, 7, 878, 2, 879, 7, 879, 2, 880, 7, 880, 2, 881, 7, 881, 2, 882, 7, 882, 2, 883, 7, 883, 2, 884, 7, 884, 2, 885, 7, 885, 2, 886, 7, 886, 2, 887, 7, 887, 2, 888, 7, 888, 2, 889, 7, 889, 2, 890, 7, 890, 2, 891, 7, 891, 2, 892, 7, 892, 2, 893, 7, 893, 2, 894, 7, 894, 2, 895, 7, 895, 2, 896, 7, 896, 2, 897, 7, 897, 2, 898, 7, 898, 2, 899, 7, 899, 2, 900, 7, 900, 2, 901, 7, 901, 2, 902, 7, 902, 2, 903, 7, 903, 2, 904, 7, 904, 2, 905, 7, 905, 2, 906, 7, 906, 2, 907, 7, 907, 2, 908, 7, 908, 2, 909, 7, 909, 2, 910, 7, 910, 2, 911, 7, 911, 2, 912, 7, 912, 2, 913, 7, 913, 2, 914, 7, 914, 2, 915, 7, 915, 2, 916, 7, 916, 2, 917, 7, 917, 2, 918, 7, 918, 2, 919, 7, 919, 2, 920, 7, 920, 2, 921, 7, 921, 2, 922, 7, 922, 2, 923, 7, 923, 2, 924, 7, 924, 2, 925, 7, 925, 2, 926, 7, 926, 2, 927, 7, 927, 2, 928, 7, 928, 2, 929, 7, 929, 2, 930, 7, 930, 2, 931, 7, 931, 2, 932, 7, 932, 2, 933, 7, 933, 2, 934, 7, 934, 2, 935, 7, 935, 2, 936, 7, 936, 2, 937, 7, 937, 2, 938, 7, 938, 2, 939, 7, 939, 2, 940, 7, 940, 2, 941, 7, 941, 2, 942, 7, 942, 2, 943, 7, 943, 2, 944, 7, 944, 2, 945, 7, 945, 2, 946, 7, 946, 2, 947, 7, 947, 2, 948, 7, 948, 2, 949, 7, 949, 2, 950, 7, 950, 2, 951, 7, 951, 2, 952, 7, 952, 2, 953, 7, 953, 2, 954, 7, 954, 2, 955, 7, 955, 2, 956, 7, 956, 2, 957, 7, 957, 2, 958, 7, 958, 2, 959, 7, 959, 2, 960, 7, 960, 2, 961, 7, 961, 2, 962, 7, 962, 2, 963, 7, 963, 2, 964, 7, 964, 2, 965, 7, 965, 2, 966, 7, 966, 2, 967, 7, 967, 2, 968, 7, 968, 2, 969, 7, 969, 2, 970, 7, 970, 2, 971, 7, 971, 2, 972, 7, 972, 2, 973, 7, 973, 2, 974, 7, 974, 2, 975, 7, 975, 2, 976, 7, 976, 2, 977, 7, 977, 2, 978, 7, 978, 2, 979, 7, 979, 2, 980, 7, 980, 2, 981, 7, 981, 2, 982, 7, 982, 2, 983, 7, 983, 2, 984, 7, 984, 2, 985, 7, 985, 2, 986, 7, 986, 2, 987, 7, 987, 2, 988, 7, 988, 2, 989, 7, 989, 2, 990, 7, 990, 2, 991, 7, 991, 2, 992, 7, 992, 2, 993, 7, 993, 2, 994, 7, 994, 2, 995, 7, 995, 2, 996, 7, 996, 2, 997, 7, 997, 2, 998, 7, 998, 2, 999, 7, 999, 2, 1000, 7, 1000, 2, 1001, 7, 1001, 2, 1002, 7, 1002, 2, 1003, 7, 1003, 2, 1004, 7, 1004, 2, 1005, 7, 1005, 2, 1006, 7, 1006, 2, 1007, 7, 1007, 2, 1008, 7, 1008, 2, 1009, 7, 1009, 2, 1010, 7, 1010, 2, 1011, 7, 1011, 2, 1012, 7, 1012, 2, 1013, 7, 1013, 2, 1014, 7, 1014, 2, 1015, 7, 1015, 2, 1016, 7, 1016, 2, 1017, 7, 1017, 2, 1018, 7, 1018, 2, 1019, 7, 1019, 2, 1020, 7, 1020, 2, 1021, 7, 1021, 2, 1022, 7, 1022, 2, 1023, 7, 1023, 2, 1024, 7, 1024, 2, 1025, 7, 1025, 2, 1026, 7, 1026, 2, 1027, 7, 1027, 2, 1028, 7, 1028, 2, 1029, 7, 1029, 2, 1030, 7, 1030, 2, 1031, 7, 1031, 2, 1032, 7, 1032, 2, 1033, 7, 1033, 2, 1034, 7, 1034, 2, 1035, 7, 1035, 2, 1036, 7, 1036, 2, 1037, 7, 1037, 2, 1038, 7, 1038, 2, 1039, 7, 1039, 2, 1040, 7, 1040, 2, 1041, 7, 1041, 2, 1042, 7, 1042, 2, 1043, 7, 1043, 2, 1044, 7, 1044, 2, 1045, 7, 1045, 2, 1046, 7, 1046, 2, 1047, 7, 1047, 2, 1048, 7, 1048, 2, 1049, 7, 1049, 2, 1050, 7, 1050, 2, 1051, 7, 1051, 2, 1052, 7, 1052, 2, 1053, 7, 1053, 2, 1054, 7, 1054, 2, 1055, 7, 1055, 2, 1056, 7, 1056, 2, 1057, 7, 1057, 2, 1058, 7, 1058, 2, 1059, 7, 1059, 2, 1060, 7, 1060, 2, 1061, 7, 1061, 2, 1062, 7, 1062, 2, 1063, 7, 1063, 2, 1064, 7, 1064, 2, 1065, 7, 1065, 2, 1066, 7, 1066, 2, 1067, 7, 1067, 2, 1068, 7, 1068, 2, 1069, 7, 1069, 2, 1070, 7, 1070, 2, 1071, 7, 1071, 2, 1072, 7, 1072, 2, 1073, 7, 1073, 2, 1074, 7, 1074, 2, 1075, 7, 1075, 2, 1076, 7, 1076, 2, 1077, 7, 1077, 2, 1078, 7, 1078, 2, 1079, 7, 1079, 2, 1080, 7, 1080, 2, 1081, 7, 1081, 2, 1082, 7, 1082, 2, 1083, 7, 1083, 2, 1084, 7, 1084, 2, 1085, 7, 1085, 2, 1086, 7, 1086, 2, 1087, 7, 1087, 2, 1088, 7, 1088, 2, 1089, 7, 1089, 2, 1090, 7, 1090, 2, 1091, 7, 1091, 2, 1092, 7, 1092, 2, 1093, 7, 1093, 2, 1094, 7, 1094, 2, 1095, 7, 1095, 2, 1096, 7, 1096, 2, 1097, 7, 1097, 2, 1098, 7, 1098, 2, 1099, 7, 1099, 2, 1100, 7, 1100, 2, 1101, 7, 1101, 2, 1102, 7, 1102, 2, 1103, 7, 1103, 2, 1104, 7, 1104, 2, 1105, 7, 1105, 2, 1106, 7, 1106, 2, 1107, 7, 1107, 2, 1108, 7, 1108, 2, 1109, 7, 1109, 2, 1110, 7, 1110, 2, 1111, 7, 1111, 2, 1112, 7, 1112, 2, 1113, 7, 1113, 2, 1114, 7, 1114, 2, 1115, 7, 1115, 2, 1116, 7, 1116, 2, 1117, 7, 1117, 2, 1118, 7, 1118, 2, 1119, 7, 1119, 2, 1120, 7, 1120, 2, 1121, 7, 1121, 2, 1122, 7, 1122, 2, 1123, 7, 1123, 2, 1124, 7, 1124, 2, 1125, 7, 1125, 2, 1126, 7, 1126, 2, 1127, 7, 1127, 2, 1128, 7, 1128, 2, 1129, 7, 1129, 2, 1130, 7, 1130, 2, 1131, 7, 1131, 2, 1132, 7, 1132, 2, 1133, 7, 1133, 2, 1134, 7, 1134, 2, 1135, 7, 1135, 2, 1136, 7, 1136, 2, 1137, 7, 1137, 2, 1138, 7, 1138, 2, 1139, 7, 1139, 2, 1140, 7, 1140, 2, 1141, 7, 1141, 2, 1142, 7, 1142, 2, 1143, 7, 1143, 2, 1144, 7, 1144, 2, 1145, 7, 1145, 2, 1146, 7, 1146, 2, 1147, 7, 1147, 2, 1148, 7, 1148, 2, 1149, 7, 1149, 2, 1150, 7, 1150, 2, 1151, 7, 1151, 2, 1152, 7, 1152, 2, 1153, 7, 1153, 2, 1154, 7, 1154, 2, 1155, 7, 1155, 2, 1156, 7, 1156, 2, 1157, 7, 1157, 2, 1158, 7, 1158, 2, 1159, 7, 1159, 2, 1160, 7, 1160, 2, 1161, 7, 1161, 2, 1162, 7, 1162, 2, 1163, 7, 1163, 2, 1164, 7, 1164, 2, 1165, 7, 1165, 2, 1166, 7, 1166, 2, 1167, 7, 1167, 2, 1168, 7, 1168, 2, 1169, 7, 1169, 2, 1170, 7, 1170, 2, 1171, 7, 1171, 2, 1172, 7, 1172, 2, 1173, 7, 1173, 2, 1174, 7, 1174, 2, 1175, 7, 1175, 2, 1176, 7, 1176, 2, 1177, 7, 1177, 2, 1178, 7, 1178, 2, 1179, 7, 1179, 2, 1180, 7, 1180, 2, 1181, 7, 1181, 2, 1182, 7, 1182, 2, 1183, 7, 1183, 2, 1184, 7, 1184, 2, 1185, 7, 1185, 2, 1186, 7, 1186, 2, 1187, 7, 1187, 2, 1188, 7, 1188, 2, 1189, 7, 1189, 2, 1190, 7, 1190, 2, 1191, 7, 1191, 2, 1192, 7, 1192, 2, 1193, 7, 1193, 2, 1194, 7, 1194, 2, 1195, 7, 1195, 2, 1196, 7, 1196, 2, 1197, 7, 1197, 2, 1198, 7, 1198, 2, 1199, 7, 1199, 2, 1200, 7, 1200, 2, 1201, 7, 1201, 2, 1202, 7, 1202, 1, 0, 3, 0, 2408, 8, 0, 1, 0, 1, 0, 3, 0, 2412, 8, 0, 1, 0, 3, 0, 2415, 8, 0, 1, 0, 1, 0, 1, 0, 3, 0, 2420, 8, 0, 5, 0, 2422, 8, 0, 10, 0, 12, 0, 2425, 9, 0, 1, 0, 1, 0, 3, 0, 2429, 8, 0, 1, 0, 3, 0, 2432, 8, 0, 1, 0, 3, 0, 2435, 8, 0, 3, 0, 2437, 8, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2582, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 2, 2589, 8, 2, 11, 2, 12, 2, 2590, 1, 2, 3, 2, 2594, 8, 2, 1, 2, 3, 2, 2597, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 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, 2619, 8, 2, 3, 2, 2621, 8, 2, 1, 2, 1, 2, 1, 2, 5, 2, 2626, 8, 2, 10, 2, 12, 2, 2629, 9, 2, 1, 2, 3, 2, 2632, 8, 2, 1, 2, 1, 2, 1, 2, 3, 2, 2637, 8, 2, 3, 2, 2639, 8, 2, 1, 3, 1, 3, 1, 3, 3, 3, 2644, 8, 3, 1, 3, 3, 3, 2647, 8, 3, 1, 3, 1, 3, 3, 3, 2651, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 5, 3, 2657, 8, 3, 10, 3, 12, 3, 2660, 9, 3, 4, 3, 2662, 8, 3, 11, 3, 12, 3, 2663, 1, 4, 1, 4, 3, 4, 2668, 8, 4, 1, 4, 1, 4, 1, 4, 3, 4, 2673, 8, 4, 1, 4, 1, 4, 1, 4, 3, 4, 2678, 8, 4, 5, 4, 2680, 8, 4, 10, 4, 12, 4, 2683, 9, 4, 1, 4, 1, 4, 1, 4, 3, 4, 2688, 8, 4, 1, 4, 1, 4, 1, 4, 3, 4, 2693, 8, 4, 1, 4, 1, 4, 1, 4, 3, 4, 2698, 8, 4, 5, 4, 2700, 8, 4, 10, 4, 12, 4, 2703, 9, 4, 3, 4, 2705, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 2711, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 2719, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 2726, 8, 6, 5, 6, 2728, 8, 6, 10, 6, 12, 6, 2731, 9, 6, 1, 6, 1, 6, 3, 6, 2735, 8, 6, 1, 6, 3, 6, 2738, 8, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 2752, 8, 8, 10, 8, 12, 8, 2755, 9, 8, 1, 8, 1, 8, 3, 8, 2759, 8, 8, 1, 9, 1, 9, 3, 9, 2763, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 5, 9, 2769, 8, 9, 10, 9, 12, 9, 2772, 9, 9, 1, 9, 1, 9, 1, 9, 3, 9, 2777, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 5, 9, 2783, 8, 9, 10, 9, 12, 9, 2786, 9, 9, 4, 9, 2788, 8, 9, 11, 9, 12, 9, 2789, 1, 9, 3, 9, 2793, 8, 9, 1, 9, 1, 9, 3, 9, 2797, 8, 9, 1, 9, 3, 9, 2800, 8, 9, 1, 10, 1, 10, 3, 10, 2804, 8, 10, 1, 10, 1, 10, 1, 10, 1, 10, 5, 10, 2810, 8, 10, 10, 10, 12, 10, 2813, 9, 10, 1, 10, 1, 10, 1, 10, 3, 10, 2818, 8, 10, 1, 10, 1, 10, 1, 10, 1, 10, 5, 10, 2824, 8, 10, 10, 10, 12, 10, 2827, 9, 10, 3, 10, 2829, 8, 10, 1, 10, 3, 10, 2832, 8, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 4, 12, 2842, 8, 12, 11, 12, 12, 12, 2843, 3, 12, 2846, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 2852, 8, 12, 1, 12, 1, 12, 1, 12, 3, 12, 2857, 8, 12, 3, 12, 2859, 8, 12, 1, 13, 1, 13, 1, 14, 1, 14, 3, 14, 2865, 8, 14, 1, 14, 3, 14, 2868, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 2878, 8, 15, 10, 15, 12, 15, 2881, 9, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 2888, 8, 15, 10, 15, 12, 15, 2891, 9, 15, 3, 15, 2893, 8, 15, 1, 16, 1, 16, 1, 16, 3, 16, 2898, 8, 16, 1, 16, 3, 16, 2901, 8, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 2916, 8, 20, 10, 20, 12, 20, 2919, 9, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 2925, 8, 20, 1, 20, 1, 20, 1, 20, 3, 20, 2930, 8, 20, 5, 20, 2932, 8, 20, 10, 20, 12, 20, 2935, 9, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 2947, 8, 20, 10, 20, 12, 20, 2950, 9, 20, 3, 20, 2952, 8, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 5, 22, 2965, 8, 22, 10, 22, 12, 22, 2968, 9, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 5, 22, 2975, 8, 22, 10, 22, 12, 22, 2978, 9, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 5, 22, 2989, 8, 22, 10, 22, 12, 22, 2992, 9, 22, 3, 22, 2994, 8, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 3007, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 3015, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 3021, 8, 24, 1, 24, 1, 24, 3, 24, 3025, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 3032, 8, 25, 1, 25, 1, 25, 3, 25, 3036, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 3049, 8, 27, 10, 27, 12, 27, 3052, 9, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 3067, 8, 29, 10, 29, 12, 29, 3070, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 3080, 8, 29, 10, 29, 12, 29, 3083, 9, 29, 1, 29, 1, 29, 1, 29, 3, 29, 3088, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 3095, 8, 30, 10, 30, 12, 30, 3098, 9, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 3105, 8, 30, 10, 30, 12, 30, 3108, 9, 30, 1, 30, 3, 30, 3111, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 3122, 8, 30, 10, 30, 12, 30, 3125, 9, 30, 3, 30, 3127, 8, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 3136, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 3144, 8, 31, 5, 31, 3146, 8, 31, 10, 31, 12, 31, 3149, 9, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 3156, 8, 31, 10, 31, 12, 31, 3159, 9, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 3170, 8, 32, 10, 32, 12, 32, 3173, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 3180, 8, 32, 10, 32, 12, 32, 3183, 9, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 3190, 8, 33, 1, 33, 3, 33, 3193, 8, 33, 1, 33, 1, 33, 3, 33, 3197, 8, 33, 1, 33, 3, 33, 3200, 8, 33, 1, 33, 3, 33, 3203, 8, 33, 1, 33, 3, 33, 3206, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 3216, 8, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 3235, 8, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 3245, 8, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 3253, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 3258, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 3264, 8, 38, 1, 39, 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, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 3285, 8, 41, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 3, 44, 3294, 8, 44, 1, 44, 3, 44, 3297, 8, 44, 1, 44, 1, 44, 3, 44, 3301, 8, 44, 3, 44, 3303, 8, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 5, 45, 3310, 8, 45, 10, 45, 12, 45, 3313, 9, 45, 1, 45, 3, 45, 3316, 8, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 3332, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 3346, 8, 47, 3, 47, 3348, 8, 47, 1, 47, 3, 47, 3351, 8, 47, 1, 47, 1, 47, 3, 47, 3355, 8, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 3362, 8, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 3369, 8, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 3378, 8, 49, 1, 49, 5, 49, 3381, 8, 49, 10, 49, 12, 49, 3384, 9, 49, 1, 49, 1, 49, 3, 49, 3388, 8, 49, 3, 49, 3390, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 3398, 8, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 3406, 8, 50, 1, 50, 1, 50, 3, 50, 3410, 8, 50, 1, 50, 1, 50, 4, 50, 3414, 8, 50, 11, 50, 12, 50, 3415, 1, 50, 1, 50, 3, 50, 3420, 8, 50, 1, 50, 1, 50, 1, 50, 3, 50, 3425, 8, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 3, 52, 3432, 8, 52, 1, 52, 3, 52, 3435, 8, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 5, 52, 3443, 8, 52, 10, 52, 12, 52, 3446, 9, 52, 1, 52, 1, 52, 3, 52, 3450, 8, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 3457, 8, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 5, 52, 3466, 8, 52, 10, 52, 12, 52, 3469, 9, 52, 1, 52, 1, 52, 3, 52, 3473, 8, 52, 1, 52, 3, 52, 3476, 8, 52, 1, 52, 1, 52, 3, 52, 3480, 8, 52, 1, 52, 1, 52, 1, 52, 3, 52, 3485, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 3, 54, 3497, 8, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 3, 55, 3506, 8, 55, 1, 55, 3, 55, 3509, 8, 55, 1, 55, 1, 55, 1, 56, 1, 56, 3, 56, 3515, 8, 56, 1, 56, 1, 56, 1, 56, 1, 56, 3, 56, 3521, 8, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 3529, 8, 57, 10, 57, 12, 57, 3532, 9, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 3, 60, 3547, 8, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 5, 62, 3560, 8, 62, 10, 62, 12, 62, 3563, 9, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 3, 64, 3575, 8, 64, 1, 64, 1, 64, 4, 64, 3579, 8, 64, 11, 64, 12, 64, 3580, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 3, 65, 3593, 8, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 3, 66, 3602, 8, 66, 1, 66, 1, 66, 1, 66, 3, 66, 3607, 8, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 3, 67, 3623, 8, 67, 3, 67, 3625, 8, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 3641, 8, 68, 3, 68, 3643, 8, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 3664, 8, 69, 3, 69, 3666, 8, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 3686, 8, 70, 3, 70, 3688, 8, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 4, 71, 3701, 8, 71, 11, 71, 12, 71, 3702, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 3, 71, 3712, 8, 71, 3, 71, 3714, 8, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 3, 72, 3725, 8, 72, 1, 73, 1, 73, 1, 73, 5, 73, 3730, 8, 73, 10, 73, 12, 73, 3733, 9, 73, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 3, 76, 3745, 8, 76, 1, 76, 1, 76, 1, 76, 3, 76, 3750, 8, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 3, 77, 3759, 8, 77, 1, 77, 3, 77, 3762, 8, 77, 1, 77, 5, 77, 3765, 8, 77, 10, 77, 12, 77, 3768, 9, 77, 1, 77, 1, 77, 3, 77, 3772, 8, 77, 1, 78, 1, 78, 1, 78, 3, 78, 3777, 8, 78, 1, 78, 3, 78, 3780, 8, 78, 1, 78, 1, 78, 1, 78, 1, 78, 3, 78, 3786, 8, 78, 1, 78, 1, 78, 3, 78, 3790, 8, 78, 1, 78, 1, 78, 5, 78, 3794, 8, 78, 10, 78, 12, 78, 3797, 9, 78, 1, 78, 1, 78, 3, 78, 3801, 8, 78, 1, 79, 1, 79, 1, 79, 3, 79, 3806, 8, 79, 1, 79, 3, 79, 3809, 8, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 3, 79, 3816, 8, 79, 1, 79, 1, 79, 1, 79, 5, 79, 3821, 8, 79, 10, 79, 12, 79, 3824, 9, 79, 1, 79, 1, 79, 1, 79, 1, 79, 4, 79, 3830, 8, 79, 11, 79, 12, 79, 3831, 3, 79, 3834, 8, 79, 3, 79, 3836, 8, 79, 1, 79, 1, 79, 3, 79, 3840, 8, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 3, 80, 3850, 8, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 5, 81, 3858, 8, 81, 10, 81, 12, 81, 3861, 9, 81, 1, 81, 1, 81, 3, 81, 3865, 8, 81, 1, 81, 1, 81, 5, 81, 3869, 8, 81, 10, 81, 12, 81, 3872, 9, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 5, 82, 3882, 8, 82, 10, 82, 12, 82, 3885, 9, 82, 1, 82, 1, 82, 3, 82, 3889, 8, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 5, 82, 3898, 8, 82, 10, 82, 12, 82, 3901, 9, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 3, 83, 3916, 8, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 3, 84, 3928, 8, 84, 1, 84, 1, 84, 3, 84, 3932, 8, 84, 1, 84, 3, 84, 3935, 8, 84, 1, 84, 3, 84, 3938, 8, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 3, 85, 3945, 8, 85, 1, 85, 1, 85, 3, 85, 3949, 8, 85, 1, 85, 3, 85, 3952, 8, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 3, 87, 3963, 8, 87, 1, 87, 5, 87, 3966, 8, 87, 10, 87, 12, 87, 3969, 9, 87, 1, 87, 1, 87, 3, 87, 3973, 8, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 5, 88, 3981, 8, 88, 10, 88, 12, 88, 3984, 9, 88, 1, 88, 1, 88, 3, 88, 3988, 8, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 5, 88, 3998, 8, 88, 10, 88, 12, 88, 4001, 9, 88, 1, 88, 1, 88, 3, 88, 4005, 8, 88, 1, 88, 3, 88, 4008, 8, 88, 1, 88, 1, 88, 3, 88, 4012, 8, 88, 1, 88, 1, 88, 1, 88, 3, 88, 4017, 8, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 5, 89, 4027, 8, 89, 10, 89, 12, 89, 4030, 9, 89, 1, 89, 1, 89, 3, 89, 4034, 8, 89, 1, 89, 1, 89, 5, 89, 4038, 8, 89, 10, 89, 12, 89, 4041, 9, 89, 1, 89, 1, 89, 3, 89, 4045, 8, 89, 1, 89, 3, 89, 4048, 8, 89, 1, 89, 1, 89, 1, 89, 3, 89, 4053, 8, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 3, 90, 4060, 8, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 5, 90, 4068, 8, 90, 10, 90, 12, 90, 4071, 9, 90, 1, 90, 1, 90, 3, 90, 4075, 8, 90, 1, 90, 3, 90, 4078, 8, 90, 1, 90, 3, 90, 4081, 8, 90, 1, 90, 1, 90, 3, 90, 4085, 8, 90, 1, 90, 3, 90, 4088, 8, 90, 1, 90, 1, 90, 1, 90, 3, 90, 4093, 8, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 4, 91, 4100, 8, 91, 11, 91, 12, 91, 4101, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 3, 93, 4118, 8, 93, 3, 93, 4120, 8, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 3, 94, 4130, 8, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 4, 97, 4146, 8, 97, 11, 97, 12, 97, 4147, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 3, 98, 4155, 8, 98, 1, 98, 1, 98, 1, 98, 3, 98, 4160, 8, 98, 1, 99, 1, 99, 1, 100, 1, 100, 3, 100, 4166, 8, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 5, 100, 4174, 8, 100, 10, 100, 12, 100, 4177, 9, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 3, 102, 4192, 8, 102, 1, 102, 5, 102, 4195, 8, 102, 10, 102, 12, 102, 4198, 9, 102, 1, 102, 1, 102, 3, 102, 4202, 8, 102, 3, 102, 4204, 8, 102, 1, 103, 1, 103, 1, 103, 3, 103, 4209, 8, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 3, 103, 4216, 8, 103, 1, 103, 3, 103, 4219, 8, 103, 1, 103, 3, 103, 4222, 8, 103, 1, 103, 3, 103, 4225, 8, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 5, 104, 4233, 8, 104, 10, 104, 12, 104, 4236, 9, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 3, 106, 4247, 8, 106, 1, 106, 1, 106, 3, 106, 4251, 8, 106, 1, 106, 3, 106, 4254, 8, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 3, 108, 4263, 8, 108, 1, 109, 1, 109, 1, 109, 1, 109, 5, 109, 4269, 8, 109, 10, 109, 12, 109, 4272, 9, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 3, 109, 4279, 8, 109, 1, 109, 3, 109, 4282, 8, 109, 1, 110, 1, 110, 1, 110, 1, 110, 3, 110, 4288, 8, 110, 1, 111, 1, 111, 1, 111, 3, 111, 4293, 8, 111, 1, 111, 4, 111, 4296, 8, 111, 11, 111, 12, 111, 4297, 1, 111, 1, 111, 3, 111, 4302, 8, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 3, 112, 4340, 8, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 3, 113, 4368, 8, 113, 1, 114, 1, 114, 1, 114, 5, 114, 4373, 8, 114, 10, 114, 12, 114, 4376, 9, 114, 1, 114, 1, 114, 3, 114, 4380, 8, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 3, 115, 4387, 8, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 3, 117, 4397, 8, 117, 1, 117, 5, 117, 4400, 8, 117, 10, 117, 12, 117, 4403, 9, 117, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 3, 119, 4411, 8, 119, 1, 119, 1, 119, 3, 119, 4415, 8, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 3, 120, 4426, 8, 120, 1, 120, 3, 120, 4429, 8, 120, 1, 121, 1, 121, 3, 121, 4433, 8, 121, 1, 121, 3, 121, 4436, 8, 121, 1, 121, 5, 121, 4439, 8, 121, 10, 121, 12, 121, 4442, 9, 121, 1, 121, 1, 121, 3, 121, 4446, 8, 121, 1, 122, 1, 122, 3, 122, 4450, 8, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 5, 122, 4458, 8, 122, 10, 122, 12, 122, 4461, 9, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 5, 123, 4468, 8, 123, 10, 123, 12, 123, 4471, 9, 123, 1, 124, 1, 124, 1, 124, 3, 124, 4476, 8, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 3, 125, 4484, 8, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 3, 126, 4492, 8, 126, 1, 126, 1, 126, 1, 126, 3, 126, 4497, 8, 126, 1, 126, 3, 126, 4500, 8, 126, 3, 126, 4502, 8, 126, 1, 127, 3, 127, 4505, 8, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 3, 128, 4514, 8, 128, 1, 128, 3, 128, 4517, 8, 128, 1, 128, 1, 128, 1, 128, 3, 128, 4522, 8, 128, 1, 129, 1, 129, 1, 129, 3, 129, 4527, 8, 129, 1, 129, 3, 129, 4530, 8, 129, 1, 129, 3, 129, 4533, 8, 129, 1, 130, 3, 130, 4536, 8, 130, 1, 130, 1, 130, 3, 130, 4540, 8, 130, 1, 130, 3, 130, 4543, 8, 130, 1, 130, 1, 130, 1, 130, 1, 130, 5, 130, 4549, 8, 130, 10, 130, 12, 130, 4552, 9, 130, 1, 130, 1, 130, 3, 130, 4556, 8, 130, 1, 130, 5, 130, 4559, 8, 130, 10, 130, 12, 130, 4562, 9, 130, 1, 131, 1, 131, 1, 131, 1, 131, 3, 131, 4568, 8, 131, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 3, 133, 4578, 8, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 4, 135, 4592, 8, 135, 11, 135, 12, 135, 4593, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 3, 136, 4601, 8, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 3, 138, 4611, 8, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 5, 139, 4619, 8, 139, 10, 139, 12, 139, 4622, 9, 139, 1, 139, 1, 139, 1, 139, 1, 139, 3, 139, 4628, 8, 139, 1, 139, 3, 139, 4631, 8, 139, 1, 139, 1, 139, 1, 139, 3, 139, 4636, 8, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 5, 140, 4644, 8, 140, 10, 140, 12, 140, 4647, 9, 140, 1, 140, 1, 140, 3, 140, 4651, 8, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 3, 140, 4658, 8, 140, 1, 140, 3, 140, 4661, 8, 140, 1, 140, 1, 140, 1, 140, 3, 140, 4666, 8, 140, 1, 141, 3, 141, 4669, 8, 141, 1, 141, 3, 141, 4672, 8, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 5, 141, 4687, 8, 141, 10, 141, 12, 141, 4690, 9, 141, 1, 141, 1, 141, 3, 141, 4694, 8, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 3, 141, 4703, 8, 141, 1, 141, 3, 141, 4706, 8, 141, 1, 141, 1, 141, 1, 141, 3, 141, 4711, 8, 141, 1, 142, 3, 142, 4714, 8, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 3, 143, 4721, 8, 143, 1, 143, 3, 143, 4724, 8, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 3, 145, 4731, 8, 145, 1, 145, 4, 145, 4734, 8, 145, 11, 145, 12, 145, 4735, 1, 145, 1, 145, 3, 145, 4740, 8, 145, 1, 146, 1, 146, 1, 146, 3, 146, 4745, 8, 146, 1, 147, 1, 147, 1, 147, 3, 147, 4750, 8, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 5, 149, 4762, 8, 149, 10, 149, 12, 149, 4765, 9, 149, 1, 149, 1, 149, 3, 149, 4769, 8, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 3, 149, 4776, 8, 149, 1, 149, 3, 149, 4779, 8, 149, 1, 149, 1, 149, 3, 149, 4783, 8, 149, 1, 149, 3, 149, 4786, 8, 149, 1, 149, 3, 149, 4789, 8, 149, 1, 149, 3, 149, 4792, 8, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 5, 150, 4800, 8, 150, 10, 150, 12, 150, 4803, 9, 150, 1, 150, 1, 150, 1, 150, 3, 150, 4808, 8, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 5, 151, 4816, 8, 151, 10, 151, 12, 151, 4819, 9, 151, 1, 151, 1, 151, 3, 151, 4823, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 3, 151, 4830, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 3, 151, 4836, 8, 151, 1, 151, 1, 151, 3, 151, 4840, 8, 151, 1, 152, 3, 152, 4843, 8, 152, 1, 152, 3, 152, 4846, 8, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 5, 152, 4861, 8, 152, 10, 152, 12, 152, 4864, 9, 152, 1, 152, 1, 152, 3, 152, 4868, 8, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 3, 152, 4876, 8, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 5, 154, 4888, 8, 154, 10, 154, 12, 154, 4891, 9, 154, 1, 154, 1, 154, 1, 155, 1, 155, 3, 155, 4897, 8, 155, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 4, 158, 4910, 8, 158, 11, 158, 12, 158, 4911, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 3, 159, 4932, 8, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 3, 159, 4939, 8, 159, 3, 159, 4941, 8, 159, 1, 159, 1, 159, 3, 159, 4945, 8, 159, 1, 160, 1, 160, 1, 160, 1, 160, 4, 160, 4951, 8, 160, 11, 160, 12, 160, 4952, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 3, 160, 4964, 8, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 3, 160, 4975, 8, 160, 3, 160, 4977, 8, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 3, 161, 4984, 8, 161, 1, 161, 1, 161, 5, 161, 4988, 8, 161, 10, 161, 12, 161, 4991, 9, 161, 1, 161, 1, 161, 1, 161, 3, 161, 4996, 8, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 3, 162, 5019, 8, 162, 1, 162, 1, 162, 1, 162, 3, 162, 5024, 8, 162, 1, 162, 1, 162, 1, 162, 3, 162, 5029, 8, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 3, 164, 5038, 8, 164, 1, 164, 3, 164, 5041, 8, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 3, 164, 5049, 8, 164, 1, 164, 5, 164, 5052, 8, 164, 10, 164, 12, 164, 5055, 9, 164, 1, 164, 3, 164, 5058, 8, 164, 1, 164, 3, 164, 5061, 8, 164, 1, 164, 3, 164, 5064, 8, 164, 1, 164, 3, 164, 5067, 8, 164, 1, 164, 3, 164, 5070, 8, 164, 1, 164, 3, 164, 5073, 8, 164, 1, 164, 3, 164, 5076, 8, 164, 1, 164, 3, 164, 5079, 8, 164, 1, 165, 1, 165, 3, 165, 5083, 8, 165, 1, 165, 3, 165, 5086, 8, 165, 1, 165, 3, 165, 5089, 8, 165, 1, 165, 5, 165, 5092, 8, 165, 10, 165, 12, 165, 5095, 9, 165, 1, 165, 3, 165, 5098, 8, 165, 1, 165, 3, 165, 5101, 8, 165, 1, 165, 4, 165, 5104, 8, 165, 11, 165, 12, 165, 5105, 3, 165, 5108, 8, 165, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 3, 168, 5120, 8, 168, 1, 168, 1, 168, 3, 168, 5124, 8, 168, 1, 169, 1, 169, 3, 169, 5128, 8, 169, 1, 170, 1, 170, 1, 170, 1, 170, 3, 170, 5134, 8, 170, 1, 170, 1, 170, 3, 170, 5138, 8, 170, 1, 170, 3, 170, 5141, 8, 170, 1, 170, 3, 170, 5144, 8, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 5, 171, 5152, 8, 171, 10, 171, 12, 171, 5155, 9, 171, 1, 171, 1, 171, 1, 172, 1, 172, 5, 172, 5161, 8, 172, 10, 172, 12, 172, 5164, 9, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 5171, 8, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 5178, 8, 172, 1, 172, 5, 172, 5181, 8, 172, 10, 172, 12, 172, 5184, 9, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 5191, 8, 172, 1, 172, 3, 172, 5194, 8, 172, 1, 172, 1, 172, 3, 172, 5198, 8, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 5208, 8, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 5, 172, 5215, 8, 172, 10, 172, 12, 172, 5218, 9, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 3, 173, 5225, 8, 173, 1, 173, 1, 173, 3, 173, 5229, 8, 173, 1, 173, 3, 173, 5232, 8, 173, 1, 174, 1, 174, 1, 174, 3, 174, 5237, 8, 174, 1, 174, 1, 174, 3, 174, 5241, 8, 174, 1, 174, 3, 174, 5244, 8, 174, 1, 174, 3, 174, 5247, 8, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 5, 175, 5254, 8, 175, 10, 175, 12, 175, 5257, 9, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 3, 176, 5264, 8, 176, 1, 177, 1, 177, 1, 177, 3, 177, 5269, 8, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 5, 182, 5293, 8, 182, 10, 182, 12, 182, 5296, 9, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 5, 183, 5305, 8, 183, 10, 183, 12, 183, 5308, 9, 183, 1, 183, 1, 183, 1, 183, 1, 183, 5, 183, 5314, 8, 183, 10, 183, 12, 183, 5317, 9, 183, 3, 183, 5319, 8, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 5, 184, 5326, 8, 184, 10, 184, 12, 184, 5329, 9, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 3, 185, 5338, 8, 185, 1, 185, 1, 185, 1, 185, 3, 185, 5343, 8, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 3, 186, 5354, 8, 186, 1, 186, 3, 186, 5357, 8, 186, 3, 186, 5359, 8, 186, 1, 187, 1, 187, 1, 187, 1, 187, 3, 187, 5365, 8, 187, 1, 187, 1, 187, 1, 187, 3, 187, 5370, 8, 187, 1, 187, 5, 187, 5373, 8, 187, 10, 187, 12, 187, 5376, 9, 187, 3, 187, 5378, 8, 187, 1, 188, 1, 188, 1, 188, 1, 188, 3, 188, 5384, 8, 188, 1, 189, 1, 189, 1, 189, 3, 189, 5389, 8, 189, 1, 189, 3, 189, 5392, 8, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 3, 189, 5399, 8, 189, 1, 189, 1, 189, 1, 189, 1, 189, 3, 189, 5405, 8, 189, 1, 189, 5, 189, 5408, 8, 189, 10, 189, 12, 189, 5411, 9, 189, 1, 189, 1, 189, 1, 189, 3, 189, 5416, 8, 189, 1, 189, 1, 189, 1, 189, 4, 189, 5421, 8, 189, 11, 189, 12, 189, 5422, 1, 189, 3, 189, 5426, 8, 189, 1, 190, 1, 190, 1, 190, 1, 190, 5, 190, 5432, 8, 190, 10, 190, 12, 190, 5435, 9, 190, 1, 190, 5, 190, 5438, 8, 190, 10, 190, 12, 190, 5441, 9, 190, 1, 191, 1, 191, 1, 191, 3, 191, 5446, 8, 191, 1, 191, 1, 191, 3, 191, 5450, 8, 191, 1, 191, 3, 191, 5453, 8, 191, 1, 191, 3, 191, 5456, 8, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 5, 193, 5467, 8, 193, 10, 193, 12, 193, 5470, 9, 193, 1, 194, 1, 194, 1, 194, 3, 194, 5475, 8, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 3, 194, 5482, 8, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 5, 195, 5491, 8, 195, 10, 195, 12, 195, 5494, 9, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196, 3, 196, 5501, 8, 196, 1, 196, 1, 196, 3, 196, 5505, 8, 196, 1, 196, 3, 196, 5508, 8, 196, 1, 196, 5, 196, 5511, 8, 196, 10, 196, 12, 196, 5514, 9, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 3, 197, 5523, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 5528, 8, 197, 1, 197, 5, 197, 5531, 8, 197, 10, 197, 12, 197, 5534, 9, 197, 1, 197, 1, 197, 3, 197, 5538, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 5543, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 5548, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 5553, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 5558, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 5563, 8, 197, 1, 197, 5, 197, 5566, 8, 197, 10, 197, 12, 197, 5569, 9, 197, 3, 197, 5571, 8, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 5, 197, 5578, 8, 197, 10, 197, 12, 197, 5581, 9, 197, 1, 197, 1, 197, 3, 197, 5585, 8, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 5, 198, 5593, 8, 198, 10, 198, 12, 198, 5596, 9, 198, 1, 198, 1, 198, 3, 198, 5600, 8, 198, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 3, 200, 5607, 8, 200, 1, 200, 1, 200, 3, 200, 5611, 8, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 5620, 8, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 5627, 8, 201, 1, 201, 1, 201, 3, 201, 5631, 8, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 3, 202, 5638, 8, 202, 1, 202, 3, 202, 5641, 8, 202, 1, 202, 3, 202, 5644, 8, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 3, 202, 5652, 8, 202, 1, 202, 1, 202, 3, 202, 5656, 8, 202, 1, 202, 3, 202, 5659, 8, 202, 1, 203, 1, 203, 1, 203, 1, 203, 5, 203, 5665, 8, 203, 10, 203, 12, 203, 5668, 9, 203, 1, 204, 1, 204, 1, 204, 4, 204, 5673, 8, 204, 11, 204, 12, 204, 5674, 1, 205, 1, 205, 1, 205, 1, 205, 5, 205, 5681, 8, 205, 10, 205, 12, 205, 5684, 9, 205, 1, 206, 1, 206, 1, 206, 1, 206, 5, 206, 5690, 8, 206, 10, 206, 12, 206, 5693, 9, 206, 1, 207, 1, 207, 3, 207, 5697, 8, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 3, 207, 5704, 8, 207, 1, 207, 1, 207, 1, 207, 3, 207, 5709, 8, 207, 1, 207, 3, 207, 5712, 8, 207, 1, 207, 1, 207, 3, 207, 5716, 8, 207, 3, 207, 5718, 8, 207, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 3, 209, 5729, 8, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 5, 210, 5738, 8, 210, 10, 210, 12, 210, 5741, 9, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 5, 210, 5752, 8, 210, 10, 210, 12, 210, 5755, 9, 210, 1, 210, 1, 210, 3, 210, 5759, 8, 210, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 5, 212, 5767, 8, 212, 10, 212, 12, 212, 5770, 9, 212, 1, 213, 1, 213, 1, 213, 3, 213, 5775, 8, 213, 1, 213, 3, 213, 5778, 8, 213, 1, 213, 1, 213, 1, 213, 3, 213, 5783, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 5, 213, 5790, 8, 213, 10, 213, 12, 213, 5793, 9, 213, 3, 213, 5795, 8, 213, 1, 213, 5, 213, 5798, 8, 213, 10, 213, 12, 213, 5801, 9, 213, 1, 213, 3, 213, 5804, 8, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 3, 214, 5828, 8, 214, 3, 214, 5830, 8, 214, 1, 215, 1, 215, 3, 215, 5834, 8, 215, 1, 215, 3, 215, 5837, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 5842, 8, 215, 1, 215, 3, 215, 5845, 8, 215, 1, 215, 5, 215, 5848, 8, 215, 10, 215, 12, 215, 5851, 9, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 3, 217, 5859, 8, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 3, 218, 5870, 8, 218, 1, 218, 3, 218, 5873, 8, 218, 1, 218, 3, 218, 5876, 8, 218, 1, 218, 3, 218, 5879, 8, 218, 1, 218, 1, 218, 3, 218, 5883, 8, 218, 1, 218, 1, 218, 1, 218, 1, 218, 5, 218, 5889, 8, 218, 10, 218, 12, 218, 5892, 9, 218, 4, 218, 5894, 8, 218, 11, 218, 12, 218, 5895, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 5, 218, 5906, 8, 218, 10, 218, 12, 218, 5909, 9, 218, 3, 218, 5911, 8, 218, 1, 219, 1, 219, 1, 219, 3, 219, 5916, 8, 219, 1, 219, 1, 219, 3, 219, 5920, 8, 219, 1, 219, 3, 219, 5923, 8, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 3, 220, 5932, 8, 220, 1, 221, 1, 221, 1, 221, 1, 221, 3, 221, 5938, 8, 221, 1, 221, 1, 221, 1, 221, 1, 221, 3, 221, 5944, 8, 221, 1, 221, 3, 221, 5947, 8, 221, 1, 221, 1, 221, 3, 221, 5951, 8, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 3, 224, 5966, 8, 224, 1, 224, 3, 224, 5969, 8, 224, 1, 224, 3, 224, 5972, 8, 224, 1, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5978, 8, 224, 1, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5984, 8, 224, 1, 224, 5, 224, 5987, 8, 224, 10, 224, 12, 224, 5990, 9, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5995, 8, 224, 1, 225, 1, 225, 1, 225, 1, 225, 3, 225, 6001, 8, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 3, 226, 6009, 8, 226, 4, 226, 6011, 8, 226, 11, 226, 12, 226, 6012, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 5, 228, 6025, 8, 228, 10, 228, 12, 228, 6028, 9, 228, 1, 229, 1, 229, 1, 230, 1, 230, 3, 230, 6034, 8, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 3, 230, 6041, 8, 230, 1, 230, 1, 230, 1, 230, 1, 230, 3, 230, 6047, 8, 230, 1, 230, 3, 230, 6050, 8, 230, 1, 230, 1, 230, 3, 230, 6054, 8, 230, 1, 231, 1, 231, 1, 231, 3, 231, 6059, 8, 231, 1, 232, 1, 232, 1, 232, 3, 232, 6064, 8, 232, 1, 232, 1, 232, 1, 233, 1, 233, 3, 233, 6070, 8, 233, 1, 233, 1, 233, 1, 233, 3, 233, 6075, 8, 233, 1, 233, 1, 233, 1, 233, 3, 233, 6080, 8, 233, 5, 233, 6082, 8, 233, 10, 233, 12, 233, 6085, 9, 233, 1, 233, 1, 233, 3, 233, 6089, 8, 233, 1, 234, 1, 234, 1, 234, 1, 234, 3, 234, 6095, 8, 234, 1, 234, 1, 234, 3, 234, 6099, 8, 234, 1, 234, 1, 234, 1, 234, 3, 234, 6104, 8, 234, 1, 234, 1, 234, 3, 234, 6108, 8, 234, 5, 234, 6110, 8, 234, 10, 234, 12, 234, 6113, 9, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 5, 234, 6123, 8, 234, 10, 234, 12, 234, 6126, 9, 234, 1, 234, 1, 234, 3, 234, 6130, 8, 234, 1, 234, 3, 234, 6133, 8, 234, 1, 235, 1, 235, 3, 235, 6137, 8, 235, 1, 236, 1, 236, 1, 236, 4, 236, 6142, 8, 236, 11, 236, 12, 236, 6143, 1, 236, 1, 236, 1, 236, 1, 236, 3, 236, 6150, 8, 236, 3, 236, 6152, 8, 236, 1, 237, 1, 237, 3, 237, 6156, 8, 237, 1, 237, 3, 237, 6159, 8, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 3, 237, 6166, 8, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 3, 238, 6177, 8, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 3, 238, 6187, 8, 238, 5, 238, 6189, 8, 238, 10, 238, 12, 238, 6192, 9, 238, 1, 238, 1, 238, 3, 238, 6196, 8, 238, 1, 239, 1, 239, 3, 239, 6200, 8, 239, 1, 239, 1, 239, 3, 239, 6204, 8, 239, 1, 239, 3, 239, 6207, 8, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 5, 240, 6216, 8, 240, 10, 240, 12, 240, 6219, 9, 240, 1, 240, 1, 240, 3, 240, 6223, 8, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 5, 241, 6233, 8, 241, 10, 241, 12, 241, 6236, 9, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 5, 241, 6243, 8, 241, 10, 241, 12, 241, 6246, 9, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 5, 241, 6255, 8, 241, 10, 241, 12, 241, 6258, 9, 241, 1, 241, 1, 241, 1, 241, 3, 241, 6263, 8, 241, 3, 241, 6265, 8, 241, 1, 242, 1, 242, 3, 242, 6269, 8, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 3, 242, 6278, 8, 242, 1, 243, 1, 243, 1, 243, 5, 243, 6283, 8, 243, 10, 243, 12, 243, 6286, 9, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 5, 243, 6293, 8, 243, 10, 243, 12, 243, 6296, 9, 243, 3, 243, 6298, 8, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 3, 244, 6305, 8, 244, 1, 245, 1, 245, 1, 245, 1, 245, 5, 245, 6311, 8, 245, 10, 245, 12, 245, 6314, 9, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 5, 246, 6322, 8, 246, 10, 246, 12, 246, 6325, 9, 246, 1, 246, 1, 246, 1, 247, 1, 247, 3, 247, 6331, 8, 247, 1, 247, 1, 247, 5, 247, 6335, 8, 247, 10, 247, 12, 247, 6338, 9, 247, 1, 247, 3, 247, 6341, 8, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 5, 248, 6349, 8, 248, 10, 248, 12, 248, 6352, 9, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 5, 248, 6360, 8, 248, 10, 248, 12, 248, 6363, 9, 248, 1, 248, 1, 248, 3, 248, 6367, 8, 248, 1, 249, 1, 249, 3, 249, 6371, 8, 249, 1, 249, 1, 249, 3, 249, 6375, 8, 249, 1, 249, 3, 249, 6378, 8, 249, 1, 249, 3, 249, 6381, 8, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 5, 250, 6389, 8, 250, 10, 250, 12, 250, 6392, 9, 250, 1, 250, 1, 250, 3, 250, 6396, 8, 250, 1, 250, 1, 250, 1, 250, 1, 250, 5, 250, 6402, 8, 250, 10, 250, 12, 250, 6405, 9, 250, 1, 250, 1, 250, 1, 251, 1, 251, 3, 251, 6411, 8, 251, 1, 251, 1, 251, 5, 251, 6415, 8, 251, 10, 251, 12, 251, 6418, 9, 251, 1, 251, 3, 251, 6421, 8, 251, 1, 251, 3, 251, 6424, 8, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 5, 252, 6432, 8, 252, 10, 252, 12, 252, 6435, 9, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 5, 252, 6443, 8, 252, 10, 252, 12, 252, 6446, 9, 252, 1, 252, 1, 252, 3, 252, 6450, 8, 252, 1, 253, 1, 253, 3, 253, 6454, 8, 253, 1, 253, 1, 253, 3, 253, 6458, 8, 253, 1, 253, 3, 253, 6461, 8, 253, 1, 253, 3, 253, 6464, 8, 253, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 3, 255, 6471, 8, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 3, 256, 6480, 8, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 4, 257, 6488, 8, 257, 11, 257, 12, 257, 6489, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 3, 258, 6513, 8, 258, 1, 259, 1, 259, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 3, 261, 6526, 8, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 5, 261, 6540, 8, 261, 10, 261, 12, 261, 6543, 9, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 3, 262, 6553, 8, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 3, 263, 6561, 8, 263, 1, 263, 1, 263, 1, 263, 1, 263, 3, 263, 6567, 8, 263, 1, 263, 3, 263, 6570, 8, 263, 1, 264, 1, 264, 1, 264, 3, 264, 6575, 8, 264, 1, 264, 1, 264, 3, 264, 6579, 8, 264, 1, 264, 3, 264, 6582, 8, 264, 1, 264, 3, 264, 6585, 8, 264, 1, 265, 1, 265, 1, 265, 3, 265, 6590, 8, 265, 1, 266, 1, 266, 1, 266, 1, 266, 4, 266, 6596, 8, 266, 11, 266, 12, 266, 6597, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 3, 266, 6610, 8, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 3, 267, 6618, 8, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 3, 268, 6625, 8, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 5, 270, 6642, 8, 270, 10, 270, 12, 270, 6645, 9, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 3, 270, 6655, 8, 270, 1, 270, 3, 270, 6658, 8, 270, 1, 271, 1, 271, 1, 271, 1, 271, 4, 271, 6664, 8, 271, 11, 271, 12, 271, 6665, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 3, 271, 6673, 8, 271, 1, 271, 3, 271, 6676, 8, 271, 3, 271, 6678, 8, 271, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 3, 272, 6686, 8, 272, 1, 273, 1, 273, 1, 274, 1, 274, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 3, 276, 6701, 8, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 3, 276, 6709, 8, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 3, 277, 6723, 8, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 4, 277, 6734, 8, 277, 11, 277, 12, 277, 6735, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 4, 278, 6752, 8, 278, 11, 278, 12, 278, 6753, 1, 278, 1, 278, 1, 278, 5, 278, 6759, 8, 278, 10, 278, 12, 278, 6762, 9, 278, 1, 278, 1, 278, 3, 278, 6766, 8, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 3, 279, 6773, 8, 279, 1, 279, 3, 279, 6776, 8, 279, 1, 280, 1, 280, 1, 280, 3, 280, 6781, 8, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 3, 282, 6791, 8, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 3, 284, 6800, 8, 284, 1, 284, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 5, 286, 6811, 8, 286, 10, 286, 12, 286, 6814, 9, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 5, 286, 6821, 8, 286, 10, 286, 12, 286, 6824, 9, 286, 5, 286, 6826, 8, 286, 10, 286, 12, 286, 6829, 9, 286, 3, 286, 6831, 8, 286, 1, 287, 1, 287, 1, 287, 1, 287, 3, 287, 6837, 8, 287, 1, 288, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 5, 291, 6853, 8, 291, 10, 291, 12, 291, 6856, 9, 291, 3, 291, 6858, 8, 291, 1, 291, 3, 291, 6861, 8, 291, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 3, 292, 6869, 8, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 3, 292, 6882, 8, 292, 3, 292, 6884, 8, 292, 1, 292, 1, 292, 3, 292, 6888, 8, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 3, 292, 6896, 8, 292, 3, 292, 6898, 8, 292, 3, 292, 6900, 8, 292, 3, 292, 6902, 8, 292, 1, 293, 1, 293, 1, 293, 1, 293, 5, 293, 6908, 8, 293, 10, 293, 12, 293, 6911, 9, 293, 1, 293, 1, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 3, 294, 6921, 8, 294, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 3, 296, 6932, 8, 296, 3, 296, 6934, 8, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 3, 297, 6943, 8, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 3, 298, 6954, 8, 298, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 6960, 8, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 6967, 8, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 300, 1, 300, 1, 300, 1, 300, 3, 300, 6977, 8, 300, 1, 300, 1, 300, 3, 300, 6981, 8, 300, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 302, 3, 302, 6990, 8, 302, 1, 302, 3, 302, 6993, 8, 302, 1, 303, 1, 303, 1, 303, 1, 303, 3, 303, 6999, 8, 303, 1, 303, 3, 303, 7002, 8, 303, 1, 303, 1, 303, 1, 303, 3, 303, 7007, 8, 303, 1, 304, 1, 304, 1, 304, 1, 304, 3, 304, 7013, 8, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 3, 304, 7021, 8, 304, 1, 305, 1, 305, 1, 305, 1, 305, 3, 305, 7027, 8, 305, 1, 305, 1, 305, 1, 305, 1, 305, 3, 305, 7033, 8, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 1, 306, 3, 306, 7045, 8, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 3, 306, 7053, 8, 306, 1, 307, 3, 307, 7056, 8, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 3, 307, 7067, 8, 307, 1, 307, 1, 307, 3, 307, 7071, 8, 307, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 3, 308, 7082, 8, 308, 1, 308, 1, 308, 3, 308, 7086, 8, 308, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 3, 309, 7097, 8, 309, 1, 310, 1, 310, 3, 310, 7101, 8, 310, 1, 310, 1, 310, 1, 310, 1, 310, 3, 310, 7107, 8, 310, 1, 310, 3, 310, 7110, 8, 310, 1, 310, 3, 310, 7113, 8, 310, 1, 310, 3, 310, 7116, 8, 310, 1, 310, 3, 310, 7119, 8, 310, 1, 310, 1, 310, 3, 310, 7123, 8, 310, 1, 310, 3, 310, 7126, 8, 310, 1, 311, 1, 311, 3, 311, 7130, 8, 311, 1, 311, 1, 311, 1, 311, 1, 311, 3, 311, 7136, 8, 311, 1, 311, 3, 311, 7139, 8, 311, 1, 311, 3, 311, 7142, 8, 311, 1, 311, 3, 311, 7145, 8, 311, 1, 311, 3, 311, 7148, 8, 311, 1, 311, 1, 311, 3, 311, 7152, 8, 311, 1, 311, 3, 311, 7155, 8, 311, 1, 312, 1, 312, 1, 313, 1, 313, 1, 314, 1, 314, 3, 314, 7163, 8, 314, 1, 314, 1, 314, 1, 314, 3, 314, 7168, 8, 314, 1, 314, 3, 314, 7171, 8, 314, 1, 314, 1, 314, 3, 314, 7175, 8, 314, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 3, 315, 7183, 8, 315, 1, 315, 1, 315, 3, 315, 7187, 8, 315, 1, 316, 1, 316, 3, 316, 7191, 8, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 3, 316, 7200, 8, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 5, 316, 7209, 8, 316, 10, 316, 12, 316, 7212, 9, 316, 1, 316, 1, 316, 1, 316, 1, 316, 3, 316, 7218, 8, 316, 3, 316, 7220, 8, 316, 1, 317, 1, 317, 3, 317, 7224, 8, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 3, 317, 7233, 8, 317, 1, 317, 1, 317, 3, 317, 7237, 8, 317, 1, 318, 1, 318, 3, 318, 7241, 8, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 3, 318, 7248, 8, 318, 1, 318, 1, 318, 1, 318, 1, 318, 3, 318, 7254, 8, 318, 1, 319, 1, 319, 3, 319, 7258, 8, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 3, 319, 7265, 8, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 320, 1, 320, 3, 320, 7274, 8, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 3, 320, 7286, 8, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 5, 320, 7298, 8, 320, 10, 320, 12, 320, 7301, 9, 320, 1, 320, 3, 320, 7304, 8, 320, 3, 320, 7306, 8, 320, 1, 320, 3, 320, 7309, 8, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 3, 321, 7316, 8, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 323, 1, 323, 1, 323, 1, 323, 1, 324, 1, 324, 1, 324, 1, 324, 3, 324, 7330, 8, 324, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 3, 325, 7339, 8, 325, 1, 325, 3, 325, 7342, 8, 325, 1, 325, 3, 325, 7345, 8, 325, 1, 325, 3, 325, 7348, 8, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 3, 326, 7356, 8, 326, 1, 326, 1, 326, 3, 326, 7360, 8, 326, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 3, 327, 7369, 8, 327, 1, 327, 1, 327, 3, 327, 7373, 8, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 3, 328, 7388, 8, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 329, 1, 329, 3, 329, 7396, 8, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 330, 1, 330, 1, 330, 1, 330, 3, 330, 7408, 8, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 1, 333, 1, 333, 1, 334, 1, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 3, 335, 7425, 8, 335, 1, 335, 3, 335, 7428, 8, 335, 1, 335, 1, 335, 1, 335, 3, 335, 7433, 8, 335, 1, 335, 1, 335, 1, 335, 1, 335, 3, 335, 7439, 8, 335, 1, 335, 1, 335, 3, 335, 7443, 8, 335, 1, 335, 1, 335, 1, 335, 3, 335, 7448, 8, 335, 1, 335, 1, 335, 1, 335, 1, 335, 3, 335, 7454, 8, 335, 1, 335, 1, 335, 3, 335, 7458, 8, 335, 1, 335, 3, 335, 7461, 8, 335, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 5, 336, 7473, 8, 336, 10, 336, 12, 336, 7476, 9, 336, 1, 336, 1, 336, 3, 336, 7480, 8, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 5, 336, 7492, 8, 336, 10, 336, 12, 336, 7495, 9, 336, 1, 336, 1, 336, 3, 336, 7499, 8, 336, 3, 336, 7501, 8, 336, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 3, 337, 7510, 8, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 3, 337, 7518, 8, 337, 1, 337, 3, 337, 7521, 8, 337, 1, 337, 3, 337, 7524, 8, 337, 1, 337, 3, 337, 7527, 8, 337, 1, 337, 3, 337, 7530, 8, 337, 3, 337, 7532, 8, 337, 1, 338, 1, 338, 3, 338, 7536, 8, 338, 1, 338, 1, 338, 3, 338, 7540, 8, 338, 1, 339, 1, 339, 1, 339, 5, 339, 7545, 8, 339, 10, 339, 12, 339, 7548, 9, 339, 1, 339, 1, 339, 3, 339, 7552, 8, 339, 1, 339, 1, 339, 1, 339, 3, 339, 7557, 8, 339, 1, 339, 5, 339, 7560, 8, 339, 10, 339, 12, 339, 7563, 9, 339, 1, 339, 3, 339, 7566, 8, 339, 1, 339, 3, 339, 7569, 8, 339, 1, 339, 1, 339, 1, 339, 3, 339, 7574, 8, 339, 1, 339, 1, 339, 1, 339, 1, 339, 4, 339, 7580, 8, 339, 11, 339, 12, 339, 7581, 1, 339, 5, 339, 7585, 8, 339, 10, 339, 12, 339, 7588, 9, 339, 3, 339, 7590, 8, 339, 1, 340, 1, 340, 1, 341, 1, 341, 3, 341, 7596, 8, 341, 1, 342, 1, 342, 1, 342, 3, 342, 7601, 8, 342, 1, 343, 1, 343, 1, 343, 3, 343, 7606, 8, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 3, 344, 7613, 8, 344, 1, 344, 3, 344, 7616, 8, 344, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 5, 345, 7627, 8, 345, 10, 345, 12, 345, 7630, 9, 345, 1, 345, 1, 345, 1, 346, 1, 346, 1, 346, 1, 346, 5, 346, 7638, 8, 346, 10, 346, 12, 346, 7641, 9, 346, 1, 346, 1, 346, 1, 346, 1, 346, 5, 346, 7647, 8, 346, 10, 346, 12, 346, 7650, 9, 346, 1, 346, 1, 346, 1, 346, 1, 346, 5, 346, 7656, 8, 346, 10, 346, 12, 346, 7659, 9, 346, 1, 346, 1, 346, 1, 346, 1, 346, 5, 346, 7665, 8, 346, 10, 346, 12, 346, 7668, 9, 346, 1, 346, 1, 346, 1, 346, 1, 346, 5, 346, 7674, 8, 346, 10, 346, 12, 346, 7677, 9, 346, 3, 346, 7679, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7685, 8, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7690, 8, 346, 3, 346, 7692, 8, 346, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 3, 348, 7699, 8, 348, 1, 349, 1, 349, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 351, 1, 351, 1, 352, 1, 352, 1, 353, 1, 353, 1, 354, 1, 354, 1, 354, 1, 354, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 5, 357, 7739, 8, 357, 10, 357, 12, 357, 7742, 9, 357, 3, 357, 7744, 8, 357, 1, 357, 1, 357, 3, 357, 7748, 8, 357, 1, 357, 3, 357, 7751, 8, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 5, 357, 7760, 8, 357, 10, 357, 12, 357, 7763, 9, 357, 1, 357, 1, 357, 1, 357, 1, 357, 5, 357, 7769, 8, 357, 10, 357, 12, 357, 7772, 9, 357, 3, 357, 7774, 8, 357, 3, 357, 7776, 8, 357, 1, 358, 1, 358, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 3, 359, 7786, 8, 359, 1, 359, 1, 359, 1, 359, 3, 359, 7791, 8, 359, 1, 359, 1, 359, 3, 359, 7795, 8, 359, 1, 359, 1, 359, 3, 359, 7799, 8, 359, 1, 359, 3, 359, 7802, 8, 359, 1, 359, 3, 359, 7805, 8, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 362, 1, 362, 1, 362, 3, 362, 7819, 8, 362, 3, 362, 7821, 8, 362, 1, 362, 1, 362, 1, 362, 1, 362, 3, 362, 7827, 8, 362, 3, 362, 7829, 8, 362, 5, 362, 7831, 8, 362, 10, 362, 12, 362, 7834, 9, 362, 1, 362, 1, 362, 1, 362, 3, 362, 7839, 8, 362, 1, 362, 1, 362, 1, 362, 1, 362, 3, 362, 7845, 8, 362, 5, 362, 7847, 8, 362, 10, 362, 12, 362, 7850, 9, 362, 3, 362, 7852, 8, 362, 1, 363, 1, 363, 1, 363, 1, 363, 5, 363, 7858, 8, 363, 10, 363, 12, 363, 7861, 9, 363, 1, 364, 1, 364, 1, 365, 1, 365, 1, 365, 5, 365, 7868, 8, 365, 10, 365, 12, 365, 7871, 9, 365, 1, 365, 3, 365, 7874, 8, 365, 1, 365, 1, 365, 1, 366, 1, 366, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 3, 367, 7893, 8, 367, 1, 368, 1, 368, 1, 368, 3, 368, 7898, 8, 368, 1, 368, 1, 368, 1, 369, 1, 369, 1, 369, 3, 369, 7905, 8, 369, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 3, 370, 7912, 8, 370, 1, 370, 1, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 3, 371, 7986, 8, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 3, 372, 7993, 8, 372, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 3, 373, 8002, 8, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 3, 373, 8011, 8, 373, 1, 373, 1, 373, 1, 373, 1, 373, 5, 373, 8017, 8, 373, 10, 373, 12, 373, 8020, 9, 373, 1, 373, 1, 373, 1, 373, 1, 373, 3, 373, 8026, 8, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 3, 373, 8033, 8, 373, 1, 373, 5, 373, 8036, 8, 373, 10, 373, 12, 373, 8039, 9, 373, 1, 373, 1, 373, 1, 373, 1, 373, 3, 373, 8045, 8, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 3, 373, 8052, 8, 373, 1, 373, 5, 373, 8055, 8, 373, 10, 373, 12, 373, 8058, 9, 373, 1, 373, 1, 373, 1, 373, 1, 373, 3, 373, 8064, 8, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 3, 373, 8071, 8, 373, 1, 373, 5, 373, 8074, 8, 373, 10, 373, 12, 373, 8077, 9, 373, 1, 373, 1, 373, 1, 373, 1, 373, 3, 373, 8083, 8, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 3, 373, 8090, 8, 373, 1, 373, 5, 373, 8093, 8, 373, 10, 373, 12, 373, 8096, 9, 373, 1, 373, 1, 373, 1, 373, 1, 373, 3, 373, 8102, 8, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 3, 373, 8109, 8, 373, 1, 373, 5, 373, 8112, 8, 373, 10, 373, 12, 373, 8115, 9, 373, 3, 373, 8117, 8, 373, 1, 373, 3, 373, 8120, 8, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 3, 374, 8127, 8, 374, 1, 374, 1, 374, 3, 374, 8131, 8, 374, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 3, 375, 8140, 8, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 5, 376, 8149, 8, 376, 10, 376, 12, 376, 8152, 9, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 3, 376, 8160, 8, 376, 1, 376, 1, 376, 3, 376, 8164, 8, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 3, 376, 8171, 8, 376, 3, 376, 8173, 8, 376, 1, 377, 1, 377, 1, 377, 5, 377, 8178, 8, 377, 10, 377, 12, 377, 8181, 9, 377, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 3, 378, 8188, 8, 378, 1, 378, 1, 378, 1, 378, 3, 378, 8193, 8, 378, 1, 378, 1, 378, 3, 378, 8197, 8, 378, 1, 379, 1, 379, 1, 379, 3, 379, 8202, 8, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 3, 379, 8209, 8, 379, 3, 379, 8211, 8, 379, 1, 379, 1, 379, 3, 379, 8215, 8, 379, 1, 379, 3, 379, 8218, 8, 379, 1, 379, 3, 379, 8221, 8, 379, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 381, 1, 381, 3, 381, 8230, 8, 381, 1, 381, 1, 381, 1, 381, 1, 381, 3, 381, 8236, 8, 381, 3, 381, 8238, 8, 381, 4, 381, 8240, 8, 381, 11, 381, 12, 381, 8241, 1, 381, 1, 381, 3, 381, 8246, 8, 381, 1, 381, 1, 381, 1, 381, 3, 381, 8251, 8, 381, 1, 381, 1, 381, 1, 381, 3, 381, 8256, 8, 381, 5, 381, 8258, 8, 381, 10, 381, 12, 381, 8261, 9, 381, 1, 381, 1, 381, 1, 381, 3, 381, 8266, 8, 381, 1, 381, 1, 381, 1, 381, 3, 381, 8271, 8, 381, 1, 381, 1, 381, 1, 381, 3, 381, 8276, 8, 381, 1, 381, 3, 381, 8279, 8, 381, 1, 382, 1, 382, 1, 382, 1, 382, 1, 383, 1, 383, 1, 383, 3, 383, 8288, 8, 383, 1, 383, 3, 383, 8291, 8, 383, 1, 383, 3, 383, 8294, 8, 383, 1, 384, 1, 384, 1, 384, 1, 384, 3, 384, 8300, 8, 384, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 3, 385, 8307, 8, 385, 1, 385, 1, 385, 1, 385, 3, 385, 8312, 8, 385, 5, 385, 8314, 8, 385, 10, 385, 12, 385, 8317, 9, 385, 1, 386, 1, 386, 1, 386, 3, 386, 8322, 8, 386, 3, 386, 8324, 8, 386, 1, 386, 1, 386, 1, 386, 1, 386, 3, 386, 8330, 8, 386, 3, 386, 8332, 8, 386, 5, 386, 8334, 8, 386, 10, 386, 12, 386, 8337, 9, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 3, 386, 8345, 8, 386, 1, 387, 1, 387, 1, 387, 1, 387, 3, 387, 8351, 8, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 5, 387, 8358, 8, 387, 10, 387, 12, 387, 8361, 9, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 3, 387, 8372, 8, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 3, 387, 8380, 8, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 3, 387, 8389, 8, 387, 1, 387, 3, 387, 8392, 8, 387, 1, 388, 1, 388, 1, 388, 5, 388, 8397, 8, 388, 10, 388, 12, 388, 8400, 9, 388, 1, 388, 3, 388, 8403, 8, 388, 1, 388, 1, 388, 1, 388, 1, 388, 5, 388, 8409, 8, 388, 10, 388, 12, 388, 8412, 9, 388, 1, 389, 1, 389, 1, 389, 1, 389, 3, 389, 8418, 8, 389, 1, 389, 1, 389, 1, 390, 1, 390, 1, 390, 1, 390, 4, 390, 8426, 8, 390, 11, 390, 12, 390, 8427, 1, 390, 1, 390, 1, 390, 4, 390, 8433, 8, 390, 11, 390, 12, 390, 8434, 1, 391, 1, 391, 1, 391, 3, 391, 8440, 8, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 3, 391, 8447, 8, 391, 1, 391, 1, 391, 1, 391, 1, 392, 1, 392, 1, 393, 1, 393, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 3, 394, 8463, 8, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 3, 394, 8470, 8, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 3, 394, 8480, 8, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 4, 394, 8487, 8, 394, 11, 394, 12, 394, 8488, 1, 394, 1, 394, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 3, 395, 8498, 8, 395, 1, 395, 1, 395, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 3, 396, 8507, 8, 396, 1, 396, 5, 396, 8510, 8, 396, 10, 396, 12, 396, 8513, 9, 396, 1, 396, 1, 396, 3, 396, 8517, 8, 396, 1, 396, 3, 396, 8520, 8, 396, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 3, 397, 8528, 8, 397, 1, 397, 1, 397, 1, 398, 1, 398, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 3, 399, 8539, 8, 399, 1, 399, 1, 399, 3, 399, 8543, 8, 399, 1, 399, 3, 399, 8546, 8, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 3, 399, 8554, 8, 399, 1, 399, 1, 399, 1, 399, 1, 399, 3, 399, 8560, 8, 399, 3, 399, 8562, 8, 399, 1, 399, 1, 399, 1, 399, 3, 399, 8567, 8, 399, 1, 399, 3, 399, 8570, 8, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 3, 399, 8577, 8, 399, 1, 399, 1, 399, 3, 399, 8581, 8, 399, 1, 399, 4, 399, 8584, 8, 399, 11, 399, 12, 399, 8585, 1, 399, 3, 399, 8589, 8, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 3, 399, 8602, 8, 399, 1, 399, 1, 399, 3, 399, 8606, 8, 399, 1, 400, 1, 400, 1, 400, 3, 400, 8611, 8, 400, 1, 400, 3, 400, 8614, 8, 400, 1, 400, 1, 400, 1, 400, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 3, 401, 8624, 8, 401, 1, 401, 1, 401, 3, 401, 8628, 8, 401, 1, 401, 1, 401, 3, 401, 8632, 8, 401, 1, 402, 1, 402, 1, 402, 3, 402, 8637, 8, 402, 1, 402, 1, 402, 1, 403, 1, 403, 1, 403, 1, 404, 1, 404, 1, 404, 1, 405, 1, 405, 1, 405, 1, 405, 1, 406, 1, 406, 3, 406, 8653, 8, 406, 1, 407, 1, 407, 1, 407, 3, 407, 8658, 8, 407, 1, 407, 1, 407, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 3, 408, 8670, 8, 408, 4, 408, 8672, 8, 408, 11, 408, 12, 408, 8673, 1, 408, 1, 408, 1, 408, 1, 408, 3, 408, 8680, 8, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 5, 408, 8693, 8, 408, 10, 408, 12, 408, 8696, 9, 408, 3, 408, 8698, 8, 408, 3, 408, 8700, 8, 408, 3, 408, 8702, 8, 408, 4, 408, 8704, 8, 408, 11, 408, 12, 408, 8705, 1, 408, 3, 408, 8709, 8, 408, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 5, 409, 8727, 8, 409, 10, 409, 12, 409, 8730, 9, 409, 1, 409, 1, 409, 3, 409, 8734, 8, 409, 1, 409, 1, 409, 1, 409, 3, 409, 8739, 8, 409, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 4, 410, 8748, 8, 410, 11, 410, 12, 410, 8749, 1, 410, 3, 410, 8753, 8, 410, 1, 410, 1, 410, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 4, 411, 8763, 8, 411, 11, 411, 12, 411, 8764, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 4, 412, 8772, 8, 412, 11, 412, 12, 412, 8773, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 4, 413, 8783, 8, 413, 11, 413, 12, 413, 8784, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 5, 414, 8792, 8, 414, 10, 414, 12, 414, 8795, 9, 414, 1, 414, 1, 414, 3, 414, 8799, 8, 414, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 5, 415, 8821, 8, 415, 10, 415, 12, 415, 8824, 9, 415, 1, 415, 1, 415, 3, 415, 8828, 8, 415, 1, 415, 1, 415, 1, 415, 1, 415, 3, 415, 8834, 8, 415, 3, 415, 8836, 8, 415, 1, 416, 1, 416, 1, 416, 1, 417, 1, 417, 1, 417, 3, 417, 8844, 8, 417, 1, 417, 3, 417, 8847, 8, 417, 1, 417, 3, 417, 8850, 8, 417, 1, 417, 3, 417, 8853, 8, 417, 1, 417, 1, 417, 1, 417, 1, 417, 3, 417, 8859, 8, 417, 1, 417, 1, 417, 1, 417, 1, 417, 3, 417, 8865, 8, 417, 1, 417, 1, 417, 1, 417, 1, 417, 3, 417, 8871, 8, 417, 1, 417, 1, 417, 3, 417, 8875, 8, 417, 3, 417, 8877, 8, 417, 1, 417, 3, 417, 8880, 8, 417, 1, 417, 1, 417, 1, 417, 3, 417, 8885, 8, 417, 1, 417, 1, 417, 3, 417, 8889, 8, 417, 1, 417, 1, 417, 1, 417, 3, 417, 8894, 8, 417, 1, 417, 3, 417, 8897, 8, 417, 1, 418, 1, 418, 1, 418, 3, 418, 8902, 8, 418, 1, 418, 3, 418, 8905, 8, 418, 1, 419, 1, 419, 1, 419, 3, 419, 8910, 8, 419, 1, 420, 1, 420, 3, 420, 8914, 8, 420, 1, 420, 1, 420, 5, 420, 8918, 8, 420, 10, 420, 12, 420, 8921, 9, 420, 1, 420, 3, 420, 8924, 8, 420, 4, 420, 8926, 8, 420, 11, 420, 12, 420, 8927, 1, 420, 1, 420, 1, 421, 1, 421, 1, 421, 1, 421, 3, 421, 8936, 8, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 5, 421, 8947, 8, 421, 10, 421, 12, 421, 8950, 9, 421, 1, 421, 3, 421, 8953, 8, 421, 1, 421, 1, 421, 1, 421, 1, 421, 3, 421, 8959, 8, 421, 1, 421, 3, 421, 8962, 8, 421, 1, 421, 1, 421, 3, 421, 8966, 8, 421, 1, 421, 1, 421, 1, 421, 3, 421, 8971, 8, 421, 4, 421, 8973, 8, 421, 11, 421, 12, 421, 8974, 1, 421, 1, 421, 5, 421, 8979, 8, 421, 10, 421, 12, 421, 8982, 9, 421, 1, 422, 1, 422, 3, 422, 8986, 8, 422, 1, 422, 3, 422, 8989, 8, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 3, 422, 8997, 8, 422, 1, 422, 3, 422, 9000, 8, 422, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 3, 423, 9009, 8, 423, 1, 423, 1, 423, 3, 423, 9013, 8, 423, 3, 423, 9015, 8, 423, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 3, 424, 9034, 8, 424, 1, 424, 1, 424, 1, 424, 1, 424, 3, 424, 9040, 8, 424, 1, 424, 4, 424, 9043, 8, 424, 11, 424, 12, 424, 9044, 1, 424, 1, 424, 1, 424, 3, 424, 9050, 8, 424, 3, 424, 9052, 8, 424, 1, 425, 1, 425, 3, 425, 9056, 8, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 5, 425, 9063, 8, 425, 10, 425, 12, 425, 9066, 9, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 5, 425, 9076, 8, 425, 10, 425, 12, 425, 9079, 9, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 3, 425, 9089, 8, 425, 1, 425, 3, 425, 9092, 8, 425, 1, 425, 3, 425, 9095, 8, 425, 1, 426, 3, 426, 9098, 8, 426, 1, 426, 1, 426, 1, 426, 1, 426, 1, 426, 1, 426, 1, 426, 4, 426, 9107, 8, 426, 11, 426, 12, 426, 9108, 1, 427, 1, 427, 1, 427, 3, 427, 9114, 8, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 5, 427, 9124, 8, 427, 10, 427, 12, 427, 9127, 9, 427, 1, 427, 1, 427, 3, 427, 9131, 8, 427, 1, 428, 1, 428, 3, 428, 9135, 8, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 3, 428, 9143, 8, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 3, 428, 9150, 8, 428, 1, 428, 1, 428, 1, 428, 3, 428, 9155, 8, 428, 1, 428, 1, 428, 1, 428, 3, 428, 9160, 8, 428, 1, 429, 1, 429, 1, 430, 1, 430, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 3, 431, 9171, 8, 431, 1, 431, 3, 431, 9174, 8, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 3, 431, 9186, 8, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 3, 431, 9201, 8, 431, 1, 432, 1, 432, 1, 432, 3, 432, 9206, 8, 432, 1, 432, 1, 432, 1, 432, 1, 432, 3, 432, 9212, 8, 432, 1, 432, 1, 432, 3, 432, 9216, 8, 432, 1, 432, 1, 432, 1, 432, 1, 432, 3, 432, 9222, 8, 432, 1, 432, 1, 432, 3, 432, 9226, 8, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 5, 432, 9233, 8, 432, 10, 432, 12, 432, 9236, 9, 432, 1, 432, 1, 432, 1, 432, 1, 432, 5, 432, 9242, 8, 432, 10, 432, 12, 432, 9245, 9, 432, 1, 432, 1, 432, 3, 432, 9249, 8, 432, 1, 433, 1, 433, 3, 433, 9253, 8, 433, 1, 433, 1, 433, 3, 433, 9257, 8, 433, 1, 434, 1, 434, 1, 434, 1, 434, 3, 434, 9263, 8, 434, 1, 435, 1, 435, 1, 436, 1, 436, 1, 436, 3, 436, 9270, 8, 436, 1, 436, 1, 436, 1, 436, 1, 436, 3, 436, 9276, 8, 436, 1, 437, 1, 437, 1, 437, 1, 438, 1, 438, 1, 439, 1, 439, 3, 439, 9285, 8, 439, 1, 439, 1, 439, 1, 439, 3, 439, 9290, 8, 439, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 3, 440, 9297, 8, 440, 1, 440, 3, 440, 9300, 8, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 5, 440, 9317, 8, 440, 10, 440, 12, 440, 9320, 9, 440, 1, 441, 1, 441, 1, 441, 1, 442, 1, 442, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 3, 443, 9334, 8, 443, 3, 443, 9336, 8, 443, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 3, 445, 9349, 8, 445, 1, 445, 3, 445, 9352, 8, 445, 1, 445, 3, 445, 9355, 8, 445, 1, 445, 3, 445, 9358, 8, 445, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 3, 446, 9366, 8, 446, 1, 446, 3, 446, 9369, 8, 446, 1, 446, 3, 446, 9372, 8, 446, 1, 446, 3, 446, 9375, 8, 446, 1, 447, 1, 447, 1, 447, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 3, 448, 9387, 8, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 5, 448, 9396, 8, 448, 10, 448, 12, 448, 9399, 9, 448, 3, 448, 9401, 8, 448, 1, 448, 4, 448, 9404, 8, 448, 11, 448, 12, 448, 9405, 1, 448, 1, 448, 3, 448, 9410, 8, 448, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 3, 449, 9418, 8, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 3, 449, 9431, 8, 449, 1, 450, 1, 450, 3, 450, 9435, 8, 450, 1, 450, 1, 450, 3, 450, 9439, 8, 450, 1, 451, 1, 451, 3, 451, 9443, 8, 451, 1, 451, 3, 451, 9446, 8, 451, 1, 451, 3, 451, 9449, 8, 451, 1, 451, 3, 451, 9452, 8, 451, 1, 451, 3, 451, 9455, 8, 451, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 3, 452, 9465, 8, 452, 1, 452, 3, 452, 9468, 8, 452, 1, 453, 1, 453, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 3, 454, 9477, 8, 454, 1, 455, 1, 455, 3, 455, 9481, 8, 455, 1, 455, 1, 455, 1, 455, 1, 455, 5, 455, 9487, 8, 455, 10, 455, 12, 455, 9490, 9, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 5, 455, 9500, 8, 455, 10, 455, 12, 455, 9503, 9, 455, 3, 455, 9505, 8, 455, 3, 455, 9507, 8, 455, 1, 455, 1, 455, 3, 455, 9511, 8, 455, 1, 456, 1, 456, 3, 456, 9515, 8, 456, 1, 456, 1, 456, 1, 457, 1, 457, 3, 457, 9521, 8, 457, 1, 457, 1, 457, 1, 458, 3, 458, 9526, 8, 458, 1, 458, 1, 458, 3, 458, 9530, 8, 458, 1, 458, 3, 458, 9533, 8, 458, 1, 458, 3, 458, 9536, 8, 458, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 5, 459, 9543, 8, 459, 10, 459, 12, 459, 9546, 9, 459, 1, 459, 1, 459, 3, 459, 9550, 8, 459, 1, 459, 1, 459, 3, 459, 9554, 8, 459, 1, 459, 1, 459, 3, 459, 9558, 8, 459, 1, 459, 3, 459, 9561, 8, 459, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 3, 460, 9568, 8, 460, 1, 460, 3, 460, 9571, 8, 460, 3, 460, 9573, 8, 460, 1, 461, 1, 461, 1, 461, 3, 461, 9578, 8, 461, 1, 462, 1, 462, 1, 462, 1, 463, 1, 463, 1, 463, 1, 463, 3, 463, 9587, 8, 463, 1, 463, 1, 463, 1, 463, 1, 463, 3, 463, 9593, 8, 463, 1, 463, 3, 463, 9596, 8, 463, 3, 463, 9598, 8, 463, 1, 464, 1, 464, 1, 464, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 5, 465, 9613, 8, 465, 10, 465, 12, 465, 9616, 9, 465, 1, 465, 1, 465, 1, 465, 5, 465, 9621, 8, 465, 10, 465, 12, 465, 9624, 9, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 3, 465, 9632, 8, 465, 1, 465, 3, 465, 9635, 8, 465, 1, 465, 1, 465, 1, 465, 3, 465, 9640, 8, 465, 1, 465, 3, 465, 9643, 8, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 3, 465, 9652, 8, 465, 1, 466, 1, 466, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 3, 467, 9672, 8, 467, 1, 467, 1, 467, 1, 467, 1, 467, 3, 467, 9678, 8, 467, 1, 467, 1, 467, 1, 467, 4, 467, 9683, 8, 467, 11, 467, 12, 467, 9684, 1, 468, 1, 468, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 3, 469, 9695, 8, 469, 1, 469, 1, 469, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 3, 470, 9704, 8, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 3, 470, 9716, 8, 470, 1, 470, 3, 470, 9719, 8, 470, 1, 470, 3, 470, 9722, 8, 470, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 472, 1, 472, 1, 472, 3, 472, 9732, 8, 472, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 3, 473, 9741, 8, 473, 1, 473, 1, 473, 1, 473, 1, 473, 5, 473, 9747, 8, 473, 10, 473, 12, 473, 9750, 9, 473, 1, 473, 1, 473, 3, 473, 9754, 8, 473, 1, 473, 1, 473, 1, 473, 1, 473, 5, 473, 9760, 8, 473, 10, 473, 12, 473, 9763, 9, 473, 1, 473, 1, 473, 3, 473, 9767, 8, 473, 1, 473, 3, 473, 9770, 8, 473, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 4, 474, 9783, 8, 474, 11, 474, 12, 474, 9784, 3, 474, 9787, 8, 474, 1, 474, 3, 474, 9790, 8, 474, 1, 474, 1, 474, 3, 474, 9794, 8, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 3, 474, 9804, 8, 474, 5, 474, 9806, 8, 474, 10, 474, 12, 474, 9809, 9, 474, 1, 474, 1, 474, 3, 474, 9813, 8, 474, 1, 474, 4, 474, 9816, 8, 474, 11, 474, 12, 474, 9817, 1, 474, 1, 474, 3, 474, 9822, 8, 474, 3, 474, 9824, 8, 474, 1, 474, 3, 474, 9827, 8, 474, 5, 474, 9829, 8, 474, 10, 474, 12, 474, 9832, 9, 474, 1, 475, 1, 475, 1, 475, 1, 475, 1, 476, 1, 476, 1, 476, 3, 476, 9841, 8, 476, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 3, 477, 9851, 8, 477, 1, 477, 3, 477, 9854, 8, 477, 1, 477, 3, 477, 9857, 8, 477, 1, 477, 1, 477, 3, 477, 9861, 8, 477, 1, 477, 1, 477, 3, 477, 9865, 8, 477, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 3, 478, 9878, 8, 478, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 480, 1, 480, 3, 480, 9887, 8, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 3, 480, 9898, 8, 480, 3, 480, 9900, 8, 480, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 4, 481, 9911, 8, 481, 11, 481, 12, 481, 9912, 1, 482, 1, 482, 1, 482, 3, 482, 9918, 8, 482, 1, 483, 1, 483, 1, 483, 3, 483, 9923, 8, 483, 1, 484, 1, 484, 1, 484, 5, 484, 9928, 8, 484, 10, 484, 12, 484, 9931, 9, 484, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 486, 1, 486, 1, 486, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 3, 487, 9948, 8, 487, 1, 488, 1, 488, 1, 488, 1, 488, 3, 488, 9954, 8, 488, 1, 489, 1, 489, 1, 489, 3, 489, 9959, 8, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 5, 489, 9967, 8, 489, 10, 489, 12, 489, 9970, 9, 489, 1, 489, 1, 489, 1, 489, 3, 489, 9975, 8, 489, 1, 490, 1, 490, 1, 490, 1, 490, 5, 490, 9981, 8, 490, 10, 490, 12, 490, 9984, 9, 490, 1, 490, 1, 490, 1, 490, 3, 490, 9989, 8, 490, 1, 490, 1, 490, 3, 490, 9993, 8, 490, 1, 490, 3, 490, 9996, 8, 490, 1, 490, 1, 490, 1, 491, 1, 491, 1, 491, 1, 491, 1, 492, 1, 492, 1, 492, 1, 492, 3, 492, 10008, 8, 492, 1, 493, 1, 493, 1, 493, 5, 493, 10013, 8, 493, 10, 493, 12, 493, 10016, 9, 493, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 5, 494, 10023, 8, 494, 10, 494, 12, 494, 10026, 9, 494, 1, 494, 1, 494, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 3, 495, 10040, 8, 495, 1, 495, 1, 495, 1, 495, 3, 495, 10045, 8, 495, 1, 496, 1, 496, 1, 496, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 5, 497, 10056, 8, 497, 10, 497, 12, 497, 10059, 9, 497, 1, 497, 1, 497, 3, 497, 10063, 8, 497, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 3, 498, 10071, 8, 498, 1, 498, 1, 498, 1, 498, 3, 498, 10076, 8, 498, 1, 498, 1, 498, 1, 498, 3, 498, 10081, 8, 498, 5, 498, 10083, 8, 498, 10, 498, 12, 498, 10086, 9, 498, 1, 498, 1, 498, 3, 498, 10090, 8, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 3, 498, 10098, 8, 498, 1, 498, 3, 498, 10101, 8, 498, 1, 498, 3, 498, 10104, 8, 498, 1, 498, 3, 498, 10107, 8, 498, 1, 498, 3, 498, 10110, 8, 498, 3, 498, 10112, 8, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 4, 498, 10119, 8, 498, 11, 498, 12, 498, 10120, 5, 498, 10123, 8, 498, 10, 498, 12, 498, 10126, 9, 498, 1, 498, 1, 498, 1, 498, 3, 498, 10131, 8, 498, 1, 498, 3, 498, 10134, 8, 498, 1, 498, 1, 498, 3, 498, 10138, 8, 498, 1, 498, 1, 498, 1, 498, 3, 498, 10143, 8, 498, 1, 498, 1, 498, 1, 498, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 3, 499, 10157, 8, 499, 1, 499, 1, 499, 1, 500, 1, 500, 3, 500, 10163, 8, 500, 1, 500, 1, 500, 3, 500, 10167, 8, 500, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 3, 501, 10178, 8, 501, 1, 501, 1, 501, 1, 501, 1, 501, 3, 501, 10184, 8, 501, 1, 501, 1, 501, 1, 501, 3, 501, 10189, 8, 501, 1, 501, 1, 501, 1, 501, 3, 501, 10194, 8, 501, 1, 501, 1, 501, 1, 501, 3, 501, 10199, 8, 501, 1, 501, 1, 501, 1, 501, 4, 501, 10204, 8, 501, 11, 501, 12, 501, 10205, 3, 501, 10208, 8, 501, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 3, 502, 10216, 8, 502, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 3, 503, 10224, 8, 503, 1, 503, 1, 503, 1, 503, 1, 504, 1, 504, 1, 504, 3, 504, 10232, 8, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 3, 504, 10240, 8, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 3, 504, 10247, 8, 504, 1, 505, 1, 505, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 3, 506, 10258, 8, 506, 1, 506, 1, 506, 1, 506, 1, 506, 3, 506, 10264, 8, 506, 5, 506, 10266, 8, 506, 10, 506, 12, 506, 10269, 9, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 3, 506, 10280, 8, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 3, 506, 10287, 8, 506, 5, 506, 10289, 8, 506, 10, 506, 12, 506, 10292, 9, 506, 1, 506, 3, 506, 10295, 8, 506, 1, 506, 3, 506, 10298, 8, 506, 1, 506, 3, 506, 10301, 8, 506, 1, 507, 1, 507, 3, 507, 10305, 8, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 4, 507, 10312, 8, 507, 11, 507, 12, 507, 10313, 1, 507, 3, 507, 10317, 8, 507, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 3, 508, 10325, 8, 508, 3, 508, 10327, 8, 508, 1, 509, 1, 509, 1, 509, 1, 509, 3, 509, 10333, 8, 509, 1, 509, 1, 509, 1, 509, 1, 509, 3, 509, 10339, 8, 509, 1, 509, 1, 509, 1, 509, 3, 509, 10344, 8, 509, 3, 509, 10346, 8, 509, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 3, 510, 10354, 8, 510, 1, 511, 1, 511, 1, 511, 1, 512, 1, 512, 1, 512, 1, 513, 1, 513, 1, 513, 3, 513, 10365, 8, 513, 1, 513, 3, 513, 10368, 8, 513, 1, 513, 1, 513, 3, 513, 10372, 8, 513, 1, 513, 1, 513, 3, 513, 10376, 8, 513, 1, 513, 3, 513, 10379, 8, 513, 1, 513, 1, 513, 1, 513, 3, 513, 10384, 8, 513, 1, 513, 1, 513, 3, 513, 10388, 8, 513, 1, 514, 1, 514, 3, 514, 10392, 8, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 3, 514, 10401, 8, 514, 1, 514, 1, 514, 1, 514, 1, 514, 3, 514, 10407, 8, 514, 1, 514, 1, 514, 1, 514, 1, 514, 3, 514, 10413, 8, 514, 1, 515, 1, 515, 1, 515, 1, 515, 3, 515, 10419, 8, 515, 1, 515, 3, 515, 10422, 8, 515, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 3, 516, 10430, 8, 516, 1, 516, 1, 516, 3, 516, 10434, 8, 516, 1, 516, 1, 516, 1, 516, 1, 516, 3, 516, 10440, 8, 516, 1, 516, 1, 516, 1, 516, 1, 516, 3, 516, 10446, 8, 516, 1, 516, 1, 516, 1, 516, 1, 516, 3, 516, 10452, 8, 516, 1, 516, 1, 516, 3, 516, 10456, 8, 516, 3, 516, 10458, 8, 516, 1, 516, 1, 516, 1, 516, 3, 516, 10463, 8, 516, 1, 516, 3, 516, 10466, 8, 516, 1, 516, 1, 516, 3, 516, 10470, 8, 516, 1, 516, 1, 516, 3, 516, 10474, 8, 516, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 3, 517, 10482, 8, 517, 1, 517, 1, 517, 3, 517, 10486, 8, 517, 1, 517, 3, 517, 10489, 8, 517, 1, 517, 3, 517, 10492, 8, 517, 1, 517, 1, 517, 1, 517, 1, 517, 3, 517, 10498, 8, 517, 1, 517, 3, 517, 10501, 8, 517, 1, 517, 3, 517, 10504, 8, 517, 1, 517, 3, 517, 10507, 8, 517, 1, 517, 3, 517, 10510, 8, 517, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 5, 518, 10527, 8, 518, 10, 518, 12, 518, 10530, 9, 518, 1, 518, 1, 518, 1, 519, 1, 519, 3, 519, 10536, 8, 519, 1, 519, 1, 519, 3, 519, 10540, 8, 519, 1, 519, 3, 519, 10543, 8, 519, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 3, 520, 10550, 8, 520, 1, 520, 1, 520, 1, 520, 3, 520, 10555, 8, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 3, 520, 10562, 8, 520, 1, 520, 1, 520, 1, 520, 1, 520, 3, 520, 10568, 8, 520, 3, 520, 10570, 8, 520, 1, 520, 1, 520, 1, 520, 1, 520, 3, 520, 10576, 8, 520, 1, 521, 1, 521, 3, 521, 10580, 8, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 3, 521, 10587, 8, 521, 1, 521, 1, 521, 1, 521, 3, 521, 10592, 8, 521, 1, 522, 1, 522, 1, 522, 1, 522, 3, 522, 10598, 8, 522, 1, 522, 1, 522, 3, 522, 10602, 8, 522, 1, 522, 1, 522, 1, 522, 1, 522, 5, 522, 10608, 8, 522, 10, 522, 12, 522, 10611, 9, 522, 1, 522, 1, 522, 3, 522, 10615, 8, 522, 1, 522, 1, 522, 1, 522, 1, 522, 3, 522, 10621, 8, 522, 1, 522, 3, 522, 10624, 8, 522, 1, 522, 3, 522, 10627, 8, 522, 1, 522, 3, 522, 10630, 8, 522, 1, 522, 3, 522, 10633, 8, 522, 1, 523, 1, 523, 1, 524, 1, 524, 3, 524, 10639, 8, 524, 1, 524, 1, 524, 1, 524, 1, 524, 4, 524, 10645, 8, 524, 11, 524, 12, 524, 10646, 1, 524, 1, 524, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 3, 525, 10658, 8, 525, 1, 526, 1, 526, 3, 526, 10662, 8, 526, 1, 526, 1, 526, 3, 526, 10666, 8, 526, 1, 526, 1, 526, 1, 526, 5, 526, 10671, 8, 526, 10, 526, 12, 526, 10674, 9, 526, 1, 526, 3, 526, 10677, 8, 526, 1, 526, 1, 526, 1, 526, 3, 526, 10682, 8, 526, 1, 527, 3, 527, 10685, 8, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 528, 1, 528, 1, 528, 1, 528, 5, 528, 10696, 8, 528, 10, 528, 12, 528, 10699, 9, 528, 1, 528, 1, 528, 3, 528, 10703, 8, 528, 1, 528, 3, 528, 10706, 8, 528, 1, 529, 4, 529, 10709, 8, 529, 11, 529, 12, 529, 10710, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 3, 530, 10724, 8, 530, 1, 530, 1, 530, 3, 530, 10728, 8, 530, 1, 531, 1, 531, 3, 531, 10732, 8, 531, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 3, 532, 10741, 8, 532, 1, 533, 1, 533, 1, 533, 3, 533, 10746, 8, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 3, 533, 10754, 8, 533, 3, 533, 10756, 8, 533, 1, 534, 1, 534, 1, 534, 1, 534, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 3, 535, 10769, 8, 535, 1, 536, 1, 536, 1, 536, 3, 536, 10774, 8, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 3, 536, 10782, 8, 536, 3, 536, 10784, 8, 536, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 538, 1, 538, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 3, 539, 10820, 8, 539, 1, 539, 1, 539, 3, 539, 10824, 8, 539, 1, 540, 1, 540, 1, 540, 1, 541, 1, 541, 1, 541, 1, 542, 1, 542, 3, 542, 10834, 8, 542, 1, 542, 1, 542, 3, 542, 10838, 8, 542, 1, 542, 1, 542, 3, 542, 10842, 8, 542, 1, 542, 3, 542, 10845, 8, 542, 1, 542, 1, 542, 1, 542, 3, 542, 10850, 8, 542, 1, 542, 3, 542, 10853, 8, 542, 1, 543, 1, 543, 1, 543, 3, 543, 10858, 8, 543, 1, 543, 1, 543, 1, 543, 1, 543, 5, 543, 10864, 8, 543, 10, 543, 12, 543, 10867, 9, 543, 1, 544, 1, 544, 1, 544, 1, 544, 3, 544, 10873, 8, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 545, 1, 545, 1, 546, 1, 546, 3, 546, 10885, 8, 546, 1, 546, 1, 546, 1, 546, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 5, 547, 10895, 8, 547, 10, 547, 12, 547, 10898, 9, 547, 1, 547, 1, 547, 3, 547, 10902, 8, 547, 1, 548, 1, 548, 1, 548, 1, 548, 5, 548, 10908, 8, 548, 10, 548, 12, 548, 10911, 9, 548, 1, 548, 1, 548, 1, 549, 1, 549, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 3, 550, 10924, 8, 550, 1, 550, 1, 550, 1, 550, 3, 550, 10929, 8, 550, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 3, 551, 10940, 8, 551, 1, 551, 1, 551, 3, 551, 10944, 8, 551, 1, 551, 1, 551, 3, 551, 10948, 8, 551, 3, 551, 10950, 8, 551, 1, 552, 1, 552, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 3, 553, 10960, 8, 553, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 3, 554, 10970, 8, 554, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 5, 555, 10979, 8, 555, 10, 555, 12, 555, 10982, 9, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 5, 555, 10995, 8, 555, 10, 555, 12, 555, 10998, 9, 555, 1, 555, 1, 555, 3, 555, 11002, 8, 555, 3, 555, 11004, 8, 555, 1, 555, 1, 555, 1, 555, 3, 555, 11009, 8, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 3, 555, 11016, 8, 555, 1, 555, 1, 555, 1, 555, 5, 555, 11021, 8, 555, 10, 555, 12, 555, 11024, 9, 555, 1, 555, 1, 555, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 3, 556, 11037, 8, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 3, 556, 11044, 8, 556, 1, 556, 1, 556, 1, 556, 5, 556, 11049, 8, 556, 10, 556, 12, 556, 11052, 9, 556, 1, 556, 1, 556, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 5, 557, 11063, 8, 557, 10, 557, 12, 557, 11066, 9, 557, 1, 557, 1, 557, 1, 557, 3, 557, 11071, 8, 557, 1, 558, 1, 558, 1, 558, 3, 558, 11076, 8, 558, 1, 558, 3, 558, 11079, 8, 558, 1, 558, 1, 558, 1, 558, 3, 558, 11084, 8, 558, 1, 558, 3, 558, 11087, 8, 558, 5, 558, 11089, 8, 558, 10, 558, 12, 558, 11092, 9, 558, 1, 558, 1, 558, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 5, 559, 11104, 8, 559, 10, 559, 12, 559, 11107, 9, 559, 1, 559, 1, 559, 3, 559, 11111, 8, 559, 1, 559, 1, 559, 3, 559, 11115, 8, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 5, 559, 11124, 8, 559, 10, 559, 12, 559, 11127, 9, 559, 1, 559, 1, 559, 3, 559, 11131, 8, 559, 1, 560, 1, 560, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 5, 561, 11142, 8, 561, 10, 561, 12, 561, 11145, 9, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 5, 561, 11158, 8, 561, 10, 561, 12, 561, 11161, 9, 561, 1, 561, 1, 561, 3, 561, 11165, 8, 561, 3, 561, 11167, 8, 561, 1, 561, 1, 561, 1, 561, 3, 561, 11172, 8, 561, 1, 561, 1, 561, 1, 561, 1, 561, 5, 561, 11178, 8, 561, 10, 561, 12, 561, 11181, 9, 561, 1, 561, 1, 561, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 3, 562, 11194, 8, 562, 1, 562, 1, 562, 1, 562, 1, 562, 5, 562, 11200, 8, 562, 10, 562, 12, 562, 11203, 9, 562, 1, 562, 1, 562, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 4, 563, 11213, 8, 563, 11, 563, 12, 563, 11214, 1, 563, 1, 563, 1, 563, 1, 563, 3, 563, 11221, 8, 563, 1, 563, 1, 563, 3, 563, 11225, 8, 563, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 5, 564, 11237, 8, 564, 10, 564, 12, 564, 11240, 9, 564, 1, 564, 1, 564, 3, 564, 11244, 8, 564, 1, 565, 1, 565, 3, 565, 11248, 8, 565, 1, 565, 1, 565, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 5, 566, 11260, 8, 566, 10, 566, 12, 566, 11263, 9, 566, 3, 566, 11265, 8, 566, 1, 567, 1, 567, 3, 567, 11269, 8, 567, 1, 567, 3, 567, 11272, 8, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 5, 567, 11279, 8, 567, 10, 567, 12, 567, 11282, 9, 567, 1, 567, 1, 567, 1, 567, 5, 567, 11287, 8, 567, 10, 567, 12, 567, 11290, 9, 567, 1, 567, 1, 567, 1, 567, 5, 567, 11295, 8, 567, 10, 567, 12, 567, 11298, 9, 567, 3, 567, 11300, 8, 567, 1, 567, 1, 567, 1, 567, 3, 567, 11305, 8, 567, 3, 567, 11307, 8, 567, 1, 568, 1, 568, 3, 568, 11311, 8, 568, 1, 568, 3, 568, 11314, 8, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 5, 568, 11321, 8, 568, 10, 568, 12, 568, 11324, 9, 568, 1, 568, 1, 568, 1, 568, 5, 568, 11329, 8, 568, 10, 568, 12, 568, 11332, 9, 568, 1, 568, 1, 568, 1, 568, 5, 568, 11337, 8, 568, 10, 568, 12, 568, 11340, 9, 568, 3, 568, 11342, 8, 568, 1, 568, 1, 568, 1, 568, 3, 568, 11347, 8, 568, 3, 568, 11349, 8, 568, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 5, 569, 11357, 8, 569, 10, 569, 12, 569, 11360, 9, 569, 1, 569, 1, 569, 1, 569, 5, 569, 11365, 8, 569, 10, 569, 12, 569, 11368, 9, 569, 1, 569, 1, 569, 1, 569, 5, 569, 11373, 8, 569, 10, 569, 12, 569, 11376, 9, 569, 3, 569, 11378, 8, 569, 1, 569, 1, 569, 1, 569, 3, 569, 11383, 8, 569, 1, 570, 1, 570, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 5, 571, 11394, 8, 571, 10, 571, 12, 571, 11397, 9, 571, 1, 571, 1, 571, 3, 571, 11401, 8, 571, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 3, 572, 11410, 8, 572, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 5, 573, 11419, 8, 573, 10, 573, 12, 573, 11422, 9, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 5, 573, 11433, 8, 573, 10, 573, 12, 573, 11436, 9, 573, 1, 573, 1, 573, 3, 573, 11440, 8, 573, 1, 573, 3, 573, 11443, 8, 573, 1, 574, 1, 574, 1, 575, 1, 575, 3, 575, 11449, 8, 575, 1, 575, 1, 575, 3, 575, 11453, 8, 575, 1, 576, 1, 576, 3, 576, 11457, 8, 576, 1, 576, 1, 576, 3, 576, 11461, 8, 576, 1, 577, 1, 577, 3, 577, 11465, 8, 577, 1, 577, 3, 577, 11468, 8, 577, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 5, 578, 11478, 8, 578, 10, 578, 12, 578, 11481, 9, 578, 1, 578, 1, 578, 3, 578, 11485, 8, 578, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 580, 1, 580, 1, 580, 5, 580, 11497, 8, 580, 10, 580, 12, 580, 11500, 9, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 5, 580, 11507, 8, 580, 10, 580, 12, 580, 11510, 9, 580, 3, 580, 11512, 8, 580, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 5, 581, 11519, 8, 581, 10, 581, 12, 581, 11522, 9, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 5, 581, 11529, 8, 581, 10, 581, 12, 581, 11532, 9, 581, 1, 581, 3, 581, 11535, 8, 581, 1, 581, 1, 581, 1, 582, 3, 582, 11540, 8, 582, 1, 582, 3, 582, 11543, 8, 582, 1, 582, 3, 582, 11546, 8, 582, 1, 582, 3, 582, 11549, 8, 582, 1, 582, 3, 582, 11552, 8, 582, 1, 582, 1, 582, 3, 582, 11556, 8, 582, 1, 582, 3, 582, 11559, 8, 582, 1, 582, 3, 582, 11562, 8, 582, 1, 582, 1, 582, 3, 582, 11566, 8, 582, 3, 582, 11568, 8, 582, 1, 582, 1, 582, 1, 582, 5, 582, 11573, 8, 582, 10, 582, 12, 582, 11576, 9, 582, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 3, 583, 11583, 8, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 3, 583, 11594, 8, 583, 1, 583, 1, 583, 1, 583, 4, 583, 11599, 8, 583, 11, 583, 12, 583, 11600, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 3, 584, 11610, 8, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 3, 584, 11618, 8, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 3, 584, 11625, 8, 584, 1, 585, 1, 585, 3, 585, 11629, 8, 585, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 3, 586, 11637, 8, 586, 1, 586, 1, 586, 1, 586, 1, 586, 3, 586, 11643, 8, 586, 3, 586, 11645, 8, 586, 1, 586, 1, 586, 1, 586, 1, 586, 3, 586, 11651, 8, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 3, 586, 11659, 8, 586, 3, 586, 11661, 8, 586, 1, 586, 3, 586, 11664, 8, 586, 1, 586, 1, 586, 1, 586, 3, 586, 11669, 8, 586, 1, 586, 3, 586, 11672, 8, 586, 1, 587, 4, 587, 11675, 8, 587, 11, 587, 12, 587, 11676, 1, 587, 1, 587, 3, 587, 11681, 8, 587, 1, 587, 1, 587, 3, 587, 11685, 8, 587, 1, 587, 5, 587, 11688, 8, 587, 10, 587, 12, 587, 11691, 9, 587, 3, 587, 11693, 8, 587, 1, 588, 1, 588, 1, 588, 1, 588, 4, 588, 11699, 8, 588, 11, 588, 12, 588, 11700, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 3, 589, 11708, 8, 589, 3, 589, 11710, 8, 589, 1, 589, 1, 589, 3, 589, 11714, 8, 589, 1, 590, 1, 590, 1, 590, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 3, 591, 11726, 8, 591, 3, 591, 11728, 8, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 3, 591, 11736, 8, 591, 3, 591, 11738, 8, 591, 1, 592, 1, 592, 3, 592, 11742, 8, 592, 1, 592, 1, 592, 3, 592, 11746, 8, 592, 1, 593, 1, 593, 3, 593, 11750, 8, 593, 1, 593, 1, 593, 3, 593, 11754, 8, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 4, 594, 11770, 8, 594, 11, 594, 12, 594, 11771, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 3, 595, 11794, 8, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 4, 595, 11803, 8, 595, 11, 595, 12, 595, 11804, 1, 595, 1, 595, 1, 596, 1, 596, 1, 596, 1, 596, 1, 597, 1, 597, 1, 597, 1, 597, 3, 597, 11817, 8, 597, 1, 597, 3, 597, 11820, 8, 597, 1, 597, 1, 597, 4, 597, 11824, 8, 597, 11, 597, 12, 597, 11825, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 3, 598, 11836, 8, 598, 1, 598, 1, 598, 1, 598, 3, 598, 11841, 8, 598, 1, 598, 3, 598, 11844, 8, 598, 1, 598, 1, 598, 3, 598, 11848, 8, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 3, 598, 11856, 8, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 5, 598, 11864, 8, 598, 10, 598, 12, 598, 11867, 9, 598, 1, 598, 1, 598, 3, 598, 11871, 8, 598, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 3, 599, 11883, 8, 599, 1, 600, 1, 600, 1, 600, 3, 600, 11888, 8, 600, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 3, 601, 11900, 8, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 3, 601, 11909, 8, 601, 1, 602, 1, 602, 1, 602, 1, 602, 3, 602, 11915, 8, 602, 1, 602, 1, 602, 3, 602, 11919, 8, 602, 1, 602, 1, 602, 1, 602, 3, 602, 11924, 8, 602, 1, 602, 3, 602, 11927, 8, 602, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 3, 603, 11935, 8, 603, 1, 603, 1, 603, 3, 603, 11939, 8, 603, 1, 604, 1, 604, 1, 605, 1, 605, 1, 605, 3, 605, 11946, 8, 605, 1, 605, 1, 605, 1, 605, 1, 605, 1, 605, 3, 605, 11953, 8, 605, 1, 605, 3, 605, 11956, 8, 605, 1, 605, 1, 605, 1, 606, 1, 606, 1, 606, 1, 607, 3, 607, 11964, 8, 607, 1, 607, 3, 607, 11967, 8, 607, 1, 607, 3, 607, 11970, 8, 607, 1, 608, 1, 608, 1, 608, 3, 608, 11975, 8, 608, 1, 608, 1, 608, 1, 608, 3, 608, 11980, 8, 608, 1, 608, 1, 608, 1, 608, 1, 608, 3, 608, 11986, 8, 608, 3, 608, 11988, 8, 608, 1, 608, 3, 608, 11991, 8, 608, 1, 609, 1, 609, 1, 610, 1, 610, 1, 610, 3, 610, 11998, 8, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 4, 610, 12007, 8, 610, 11, 610, 12, 610, 12008, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 3, 610, 12016, 8, 610, 3, 610, 12018, 8, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 5, 610, 12025, 8, 610, 10, 610, 12, 610, 12028, 9, 610, 1, 610, 1, 610, 3, 610, 12032, 8, 610, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 5, 611, 12044, 8, 611, 10, 611, 12, 611, 12047, 9, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 3, 611, 12055, 8, 611, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 3, 612, 12066, 8, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 5, 612, 12073, 8, 612, 10, 612, 12, 612, 12076, 9, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 3, 612, 12085, 8, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 3, 612, 12093, 8, 612, 1, 613, 1, 613, 3, 613, 12097, 8, 613, 1, 613, 1, 613, 3, 613, 12101, 8, 613, 1, 613, 3, 613, 12104, 8, 613, 1, 614, 1, 614, 1, 614, 5, 614, 12109, 8, 614, 10, 614, 12, 614, 12112, 9, 614, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 5, 615, 12119, 8, 615, 10, 615, 12, 615, 12122, 9, 615, 1, 616, 3, 616, 12125, 8, 616, 1, 616, 1, 616, 3, 616, 12129, 8, 616, 1, 616, 3, 616, 12132, 8, 616, 1, 616, 3, 616, 12135, 8, 616, 1, 616, 1, 616, 1, 616, 3, 616, 12140, 8, 616, 1, 616, 3, 616, 12143, 8, 616, 1, 616, 1, 616, 1, 617, 3, 617, 12148, 8, 617, 1, 617, 1, 617, 3, 617, 12152, 8, 617, 1, 617, 3, 617, 12155, 8, 617, 1, 617, 3, 617, 12158, 8, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 3, 617, 12165, 8, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 3, 617, 12172, 8, 617, 1, 617, 3, 617, 12175, 8, 617, 3, 617, 12177, 8, 617, 1, 617, 1, 617, 1, 617, 3, 617, 12182, 8, 617, 1, 617, 1, 617, 3, 617, 12186, 8, 617, 1, 617, 3, 617, 12189, 8, 617, 1, 617, 3, 617, 12192, 8, 617, 1, 617, 1, 617, 1, 617, 3, 617, 12197, 8, 617, 1, 617, 3, 617, 12200, 8, 617, 1, 617, 3, 617, 12203, 8, 617, 1, 617, 1, 617, 1, 617, 3, 617, 12208, 8, 617, 1, 617, 1, 617, 3, 617, 12212, 8, 617, 1, 617, 1, 617, 1, 617, 3, 617, 12217, 8, 617, 1, 617, 3, 617, 12220, 8, 617, 1, 617, 3, 617, 12223, 8, 617, 1, 617, 3, 617, 12226, 8, 617, 1, 617, 1, 617, 1, 617, 1, 617, 3, 617, 12232, 8, 617, 1, 617, 1, 617, 3, 617, 12236, 8, 617, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 3, 618, 12243, 8, 618, 1, 618, 1, 618, 1, 618, 1, 618, 3, 618, 12249, 8, 618, 1, 618, 3, 618, 12252, 8, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 3, 618, 12259, 8, 618, 3, 618, 12261, 8, 618, 3, 618, 12263, 8, 618, 1, 619, 1, 619, 1, 620, 3, 620, 12268, 8, 620, 1, 620, 1, 620, 1, 620, 1, 620, 3, 620, 12274, 8, 620, 1, 620, 1, 620, 3, 620, 12278, 8, 620, 1, 620, 1, 620, 1, 620, 1, 620, 3, 620, 12284, 8, 620, 1, 621, 1, 621, 1, 621, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 3, 622, 12295, 8, 622, 1, 622, 1, 622, 1, 622, 1, 622, 3, 622, 12301, 8, 622, 1, 622, 1, 622, 1, 622, 5, 622, 12306, 8, 622, 10, 622, 12, 622, 12309, 9, 622, 1, 623, 1, 623, 1, 623, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 3, 624, 12322, 8, 624, 1, 624, 1, 624, 3, 624, 12326, 8, 624, 1, 624, 1, 624, 3, 624, 12330, 8, 624, 1, 624, 1, 624, 1, 624, 5, 624, 12335, 8, 624, 10, 624, 12, 624, 12338, 9, 624, 1, 624, 3, 624, 12341, 8, 624, 3, 624, 12343, 8, 624, 1, 624, 5, 624, 12346, 8, 624, 10, 624, 12, 624, 12349, 9, 624, 1, 624, 4, 624, 12352, 8, 624, 11, 624, 12, 624, 12353, 3, 624, 12356, 8, 624, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 3, 625, 12382, 8, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 3, 625, 12395, 8, 625, 1, 626, 1, 626, 1, 626, 3, 626, 12400, 8, 626, 1, 626, 3, 626, 12403, 8, 626, 1, 627, 1, 627, 3, 627, 12407, 8, 627, 1, 627, 1, 627, 1, 627, 3, 627, 12412, 8, 627, 1, 627, 3, 627, 12415, 8, 627, 1, 627, 3, 627, 12418, 8, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 3, 627, 12425, 8, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 3, 627, 12432, 8, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 3, 627, 12440, 8, 627, 1, 627, 1, 627, 1, 627, 1, 627, 3, 627, 12446, 8, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 3, 627, 12453, 8, 627, 1, 627, 3, 627, 12456, 8, 627, 1, 627, 3, 627, 12459, 8, 627, 1, 627, 3, 627, 12462, 8, 627, 1, 627, 3, 627, 12465, 8, 627, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 3, 628, 12472, 8, 628, 1, 628, 1, 628, 1, 628, 1, 628, 3, 628, 12478, 8, 628, 1, 628, 3, 628, 12481, 8, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 3, 628, 12489, 8, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 3, 628, 12523, 8, 628, 1, 629, 1, 629, 1, 629, 5, 629, 12528, 8, 629, 10, 629, 12, 629, 12531, 9, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 5, 629, 12540, 8, 629, 10, 629, 12, 629, 12543, 9, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 3, 629, 12551, 8, 629, 1, 629, 1, 629, 1, 629, 5, 629, 12556, 8, 629, 10, 629, 12, 629, 12559, 9, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 3, 629, 12573, 8, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 3, 629, 12587, 8, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 3, 629, 12596, 8, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 5, 629, 12610, 8, 629, 10, 629, 12, 629, 12613, 9, 629, 3, 629, 12615, 8, 629, 3, 629, 12617, 8, 629, 1, 629, 3, 629, 12620, 8, 629, 1, 630, 1, 630, 1, 630, 1, 630, 5, 630, 12626, 8, 630, 10, 630, 12, 630, 12629, 9, 630, 1, 630, 1, 630, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 5, 631, 12642, 8, 631, 10, 631, 12, 631, 12645, 9, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 5, 631, 12653, 8, 631, 10, 631, 12, 631, 12656, 9, 631, 1, 631, 1, 631, 3, 631, 12660, 8, 631, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 3, 632, 12668, 8, 632, 1, 632, 1, 632, 3, 632, 12672, 8, 632, 1, 632, 1, 632, 1, 632, 3, 632, 12677, 8, 632, 1, 633, 3, 633, 12680, 8, 633, 1, 633, 1, 633, 1, 633, 1, 634, 1, 634, 1, 634, 3, 634, 12688, 8, 634, 1, 634, 1, 634, 1, 634, 3, 634, 12693, 8, 634, 1, 635, 1, 635, 3, 635, 12697, 8, 635, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 3, 636, 12704, 8, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 3, 636, 12711, 8, 636, 5, 636, 12713, 8, 636, 10, 636, 12, 636, 12716, 9, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 3, 636, 12724, 8, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 3, 636, 12732, 8, 636, 5, 636, 12734, 8, 636, 10, 636, 12, 636, 12737, 9, 636, 3, 636, 12739, 8, 636, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 3, 637, 12747, 8, 637, 1, 637, 1, 637, 1, 637, 1, 637, 3, 637, 12753, 8, 637, 5, 637, 12755, 8, 637, 10, 637, 12, 637, 12758, 9, 637, 1, 637, 1, 637, 3, 637, 12762, 8, 637, 1, 638, 1, 638, 1, 638, 3, 638, 12767, 8, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 3, 638, 12774, 8, 638, 1, 638, 1, 638, 3, 638, 12778, 8, 638, 4, 638, 12780, 8, 638, 11, 638, 12, 638, 12781, 1, 638, 1, 638, 1, 638, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 4, 639, 12796, 8, 639, 11, 639, 12, 639, 12797, 1, 639, 3, 639, 12801, 8, 639, 1, 640, 1, 640, 1, 640, 1, 640, 3, 640, 12807, 8, 640, 1, 641, 1, 641, 1, 641, 3, 641, 12812, 8, 641, 1, 641, 3, 641, 12815, 8, 641, 1, 641, 3, 641, 12818, 8, 641, 1, 642, 3, 642, 12821, 8, 642, 1, 642, 1, 642, 1, 643, 1, 643, 3, 643, 12827, 8, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 3, 644, 12841, 8, 644, 3, 644, 12843, 8, 644, 1, 644, 1, 644, 3, 644, 12847, 8, 644, 1, 644, 3, 644, 12850, 8, 644, 1, 644, 3, 644, 12853, 8, 644, 1, 644, 3, 644, 12856, 8, 644, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 3, 645, 12863, 8, 645, 1, 645, 1, 645, 3, 645, 12867, 8, 645, 1, 645, 1, 645, 3, 645, 12871, 8, 645, 1, 645, 3, 645, 12874, 8, 645, 1, 645, 1, 645, 3, 645, 12878, 8, 645, 1, 645, 3, 645, 12881, 8, 645, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 3, 646, 12888, 8, 646, 1, 646, 1, 646, 3, 646, 12892, 8, 646, 3, 646, 12894, 8, 646, 1, 646, 3, 646, 12897, 8, 646, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 3, 647, 12904, 8, 647, 1, 648, 1, 648, 1, 648, 1, 648, 3, 648, 12910, 8, 648, 1, 648, 1, 648, 3, 648, 12914, 8, 648, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 3, 649, 12921, 8, 649, 1, 649, 1, 649, 3, 649, 12925, 8, 649, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 651, 1, 651, 1, 652, 1, 652, 1, 653, 1, 653, 3, 653, 12940, 8, 653, 1, 653, 1, 653, 1, 653, 1, 653, 3, 653, 12946, 8, 653, 1, 653, 1, 653, 1, 653, 1, 654, 1, 654, 1, 654, 3, 654, 12954, 8, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 3, 654, 12963, 8, 654, 1, 654, 1, 654, 1, 654, 3, 654, 12968, 8, 654, 1, 654, 1, 654, 1, 654, 3, 654, 12973, 8, 654, 1, 654, 1, 654, 1, 654, 1, 654, 3, 654, 12979, 8, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 3, 654, 12986, 8, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 3, 654, 12993, 8, 654, 1, 654, 3, 654, 12996, 8, 654, 3, 654, 12998, 8, 654, 1, 655, 1, 655, 3, 655, 13002, 8, 655, 1, 655, 1, 655, 1, 655, 1, 655, 3, 655, 13008, 8, 655, 1, 655, 1, 655, 3, 655, 13012, 8, 655, 1, 656, 1, 656, 1, 656, 1, 656, 3, 656, 13018, 8, 656, 1, 656, 1, 656, 1, 656, 1, 656, 3, 656, 13024, 8, 656, 1, 656, 1, 656, 3, 656, 13028, 8, 656, 1, 656, 3, 656, 13031, 8, 656, 1, 657, 1, 657, 1, 658, 1, 658, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 3, 661, 13058, 8, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 3, 661, 13067, 8, 661, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 3, 662, 13076, 8, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 5, 662, 13084, 8, 662, 10, 662, 12, 662, 13087, 9, 662, 1, 662, 1, 662, 1, 663, 1, 663, 1, 663, 3, 663, 13094, 8, 663, 1, 663, 1, 663, 1, 663, 3, 663, 13099, 8, 663, 1, 663, 1, 663, 1, 664, 1, 664, 1, 664, 5, 664, 13106, 8, 664, 10, 664, 12, 664, 13109, 9, 664, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 3, 665, 13118, 8, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 5, 665, 13126, 8, 665, 10, 665, 12, 665, 13129, 9, 665, 1, 665, 1, 665, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 3, 666, 13139, 8, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 3, 666, 13146, 8, 666, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 3, 667, 13153, 8, 667, 1, 667, 3, 667, 13156, 8, 667, 1, 667, 3, 667, 13159, 8, 667, 1, 667, 3, 667, 13162, 8, 667, 1, 667, 1, 667, 3, 667, 13166, 8, 667, 3, 667, 13168, 8, 667, 1, 667, 3, 667, 13171, 8, 667, 1, 667, 3, 667, 13174, 8, 667, 1, 667, 3, 667, 13177, 8, 667, 1, 667, 3, 667, 13180, 8, 667, 1, 667, 1, 667, 3, 667, 13184, 8, 667, 3, 667, 13186, 8, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 3, 667, 13194, 8, 667, 3, 667, 13196, 8, 667, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 4, 668, 13207, 8, 668, 11, 668, 12, 668, 13208, 1, 668, 3, 668, 13212, 8, 668, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 3, 669, 13220, 8, 669, 1, 669, 1, 669, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 3, 670, 13230, 8, 670, 1, 670, 1, 670, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 3, 673, 13251, 8, 673, 3, 673, 13253, 8, 673, 1, 674, 1, 674, 1, 674, 1, 674, 1, 675, 1, 675, 1, 675, 1, 675, 1, 676, 1, 676, 1, 676, 1, 676, 3, 676, 13267, 8, 676, 1, 676, 1, 676, 3, 676, 13271, 8, 676, 1, 676, 3, 676, 13274, 8, 676, 1, 677, 1, 677, 1, 677, 1, 677, 3, 677, 13280, 8, 677, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 3, 678, 13287, 8, 678, 1, 679, 1, 679, 1, 680, 1, 680, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 3, 681, 13310, 8, 681, 1, 682, 3, 682, 13313, 8, 682, 1, 682, 1, 682, 3, 682, 13317, 8, 682, 1, 683, 1, 683, 1, 683, 3, 683, 13322, 8, 683, 1, 683, 1, 683, 1, 683, 3, 683, 13327, 8, 683, 1, 683, 3, 683, 13330, 8, 683, 1, 683, 3, 683, 13333, 8, 683, 1, 683, 1, 683, 1, 683, 3, 683, 13338, 8, 683, 1, 684, 1, 684, 1, 685, 1, 685, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 3, 686, 13349, 8, 686, 1, 687, 1, 687, 1, 688, 1, 688, 3, 688, 13355, 8, 688, 1, 688, 1, 688, 3, 688, 13359, 8, 688, 1, 688, 1, 688, 1, 688, 1, 688, 3, 688, 13365, 8, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 4, 688, 13372, 8, 688, 11, 688, 12, 688, 13373, 3, 688, 13376, 8, 688, 1, 688, 1, 688, 3, 688, 13380, 8, 688, 1, 688, 3, 688, 13383, 8, 688, 1, 689, 3, 689, 13386, 8, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 3, 689, 13396, 8, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 4, 689, 13404, 8, 689, 11, 689, 12, 689, 13405, 3, 689, 13408, 8, 689, 1, 690, 1, 690, 1, 690, 1, 690, 5, 690, 13414, 8, 690, 10, 690, 12, 690, 13417, 9, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 5, 690, 13425, 8, 690, 10, 690, 12, 690, 13428, 9, 690, 1, 690, 3, 690, 13431, 8, 690, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 5, 691, 13439, 8, 691, 10, 691, 12, 691, 13442, 9, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 5, 691, 13450, 8, 691, 10, 691, 12, 691, 13453, 9, 691, 3, 691, 13455, 8, 691, 1, 691, 1, 691, 1, 691, 3, 691, 13460, 8, 691, 1, 691, 1, 691, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 3, 692, 13474, 8, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 4, 692, 13483, 8, 692, 11, 692, 12, 692, 13484, 1, 692, 1, 692, 3, 692, 13489, 8, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 3, 692, 13497, 8, 692, 3, 692, 13499, 8, 692, 1, 693, 1, 693, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 5, 694, 13508, 8, 694, 10, 694, 12, 694, 13511, 9, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 3, 694, 13520, 8, 694, 1, 695, 1, 695, 1, 695, 1, 695, 3, 695, 13526, 8, 695, 1, 695, 1, 695, 1, 695, 3, 695, 13531, 8, 695, 5, 695, 13533, 8, 695, 10, 695, 12, 695, 13536, 9, 695, 1, 695, 1, 695, 3, 695, 13540, 8, 695, 1, 696, 1, 696, 1, 696, 3, 696, 13545, 8, 696, 1, 696, 1, 696, 1, 696, 3, 696, 13550, 8, 696, 5, 696, 13552, 8, 696, 10, 696, 12, 696, 13555, 9, 696, 1, 696, 1, 696, 1, 696, 1, 696, 3, 696, 13561, 8, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 3, 696, 13568, 8, 696, 1, 697, 1, 697, 1, 697, 3, 697, 13573, 8, 697, 1, 697, 1, 697, 1, 697, 3, 697, 13578, 8, 697, 5, 697, 13580, 8, 697, 10, 697, 12, 697, 13583, 9, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 3, 697, 13593, 8, 697, 1, 698, 1, 698, 1, 698, 1, 698, 3, 698, 13599, 8, 698, 1, 698, 1, 698, 1, 698, 3, 698, 13604, 8, 698, 5, 698, 13606, 8, 698, 10, 698, 12, 698, 13609, 9, 698, 1, 698, 1, 698, 3, 698, 13613, 8, 698, 1, 698, 3, 698, 13616, 8, 698, 1, 698, 3, 698, 13619, 8, 698, 1, 699, 1, 699, 3, 699, 13623, 8, 699, 1, 699, 3, 699, 13626, 8, 699, 1, 699, 3, 699, 13629, 8, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 3, 699, 13641, 8, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 5, 699, 13648, 8, 699, 10, 699, 12, 699, 13651, 9, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 3, 699, 13658, 8, 699, 1, 699, 1, 699, 1, 699, 1, 699, 5, 699, 13664, 8, 699, 10, 699, 12, 699, 13667, 9, 699, 1, 699, 1, 699, 3, 699, 13671, 8, 699, 1, 699, 1, 699, 1, 699, 1, 699, 3, 699, 13677, 8, 699, 1, 700, 1, 700, 3, 700, 13681, 8, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 3, 700, 13688, 8, 700, 1, 700, 4, 700, 13691, 8, 700, 11, 700, 12, 700, 13692, 1, 700, 1, 700, 1, 700, 3, 700, 13698, 8, 700, 1, 700, 1, 700, 1, 700, 3, 700, 13703, 8, 700, 5, 700, 13705, 8, 700, 10, 700, 12, 700, 13708, 9, 700, 1, 700, 1, 700, 1, 700, 1, 700, 5, 700, 13714, 8, 700, 10, 700, 12, 700, 13717, 9, 700, 3, 700, 13719, 8, 700, 1, 701, 1, 701, 3, 701, 13723, 8, 701, 1, 701, 1, 701, 1, 702, 1, 702, 3, 702, 13729, 8, 702, 1, 702, 1, 702, 1, 702, 1, 702, 5, 702, 13735, 8, 702, 10, 702, 12, 702, 13738, 9, 702, 1, 702, 1, 702, 1, 702, 1, 702, 5, 702, 13744, 8, 702, 10, 702, 12, 702, 13747, 9, 702, 3, 702, 13749, 8, 702, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 3, 704, 13764, 8, 704, 1, 705, 1, 705, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 5, 707, 13779, 8, 707, 10, 707, 12, 707, 13782, 9, 707, 1, 707, 1, 707, 1, 707, 3, 707, 13787, 8, 707, 1, 708, 1, 708, 3, 708, 13791, 8, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 3, 708, 13798, 8, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 3, 708, 13805, 8, 708, 1, 708, 3, 708, 13808, 8, 708, 3, 708, 13810, 8, 708, 1, 709, 1, 709, 1, 709, 1, 709, 3, 709, 13816, 8, 709, 3, 709, 13818, 8, 709, 1, 709, 3, 709, 13821, 8, 709, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 3, 710, 13830, 8, 710, 1, 710, 3, 710, 13833, 8, 710, 1, 711, 1, 711, 3, 711, 13837, 8, 711, 1, 711, 1, 711, 1, 711, 1, 711, 3, 711, 13843, 8, 711, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 713, 1, 713, 1, 713, 3, 713, 13855, 8, 713, 1, 713, 1, 713, 1, 713, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 3, 714, 13865, 8, 714, 1, 714, 1, 714, 3, 714, 13869, 8, 714, 1, 714, 3, 714, 13872, 8, 714, 1, 714, 3, 714, 13875, 8, 714, 1, 714, 1, 714, 1, 714, 3, 714, 13880, 8, 714, 1, 714, 1, 714, 3, 714, 13884, 8, 714, 1, 714, 1, 714, 3, 714, 13888, 8, 714, 1, 714, 3, 714, 13891, 8, 714, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 3, 715, 13898, 8, 715, 1, 715, 3, 715, 13901, 8, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 3, 715, 13908, 8, 715, 1, 715, 1, 715, 1, 715, 1, 715, 3, 715, 13914, 8, 715, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 3, 718, 13942, 8, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 4, 718, 13950, 8, 718, 11, 718, 12, 718, 13951, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 3, 718, 13962, 8, 718, 3, 718, 13964, 8, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 3, 718, 13972, 8, 718, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 720, 1, 720, 1, 720, 1, 720, 1, 721, 1, 721, 1, 721, 1, 722, 1, 722, 1, 723, 1, 723, 1, 724, 1, 724, 1, 725, 1, 725, 1, 726, 1, 726, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 3, 727, 14003, 8, 727, 1, 727, 1, 727, 1, 727, 3, 727, 14008, 8, 727, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 730, 1, 730, 3, 730, 14022, 8, 730, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 734, 1, 734, 1, 734, 1, 734, 1, 735, 1, 735, 3, 735, 14046, 8, 735, 1, 735, 3, 735, 14049, 8, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 3, 735, 14061, 8, 735, 1, 735, 3, 735, 14064, 8, 735, 1, 736, 1, 736, 1, 736, 1, 736, 3, 736, 14070, 8, 736, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 5, 738, 14086, 8, 738, 10, 738, 12, 738, 14089, 9, 738, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 3, 739, 14104, 8, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 3, 739, 14117, 8, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 5, 739, 14126, 8, 739, 10, 739, 12, 739, 14129, 9, 739, 1, 739, 4, 739, 14132, 8, 739, 11, 739, 12, 739, 14133, 1, 740, 1, 740, 1, 740, 1, 740, 5, 740, 14140, 8, 740, 10, 740, 12, 740, 14143, 9, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 3, 740, 14151, 8, 740, 1, 741, 1, 741, 3, 741, 14155, 8, 741, 1, 741, 1, 741, 1, 742, 1, 742, 1, 742, 1, 742, 3, 742, 14163, 8, 742, 1, 742, 1, 742, 1, 742, 1, 742, 5, 742, 14169, 8, 742, 10, 742, 12, 742, 14172, 9, 742, 1, 742, 1, 742, 1, 742, 3, 742, 14177, 8, 742, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 3, 743, 14184, 8, 743, 1, 743, 1, 743, 3, 743, 14188, 8, 743, 1, 743, 1, 743, 3, 743, 14192, 8, 743, 3, 743, 14194, 8, 743, 1, 743, 3, 743, 14197, 8, 743, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 5, 744, 14205, 8, 744, 10, 744, 12, 744, 14208, 9, 744, 1, 744, 1, 744, 1, 744, 3, 744, 14213, 8, 744, 1, 745, 1, 745, 1, 745, 3, 745, 14218, 8, 745, 1, 746, 1, 746, 1, 746, 1, 746, 4, 746, 14224, 8, 746, 11, 746, 12, 746, 14225, 1, 747, 1, 747, 1, 747, 1, 747, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 3, 748, 14237, 8, 748, 1, 748, 3, 748, 14240, 8, 748, 1, 749, 3, 749, 14243, 8, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 3, 749, 14253, 8, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 5, 749, 14260, 8, 749, 10, 749, 12, 749, 14263, 9, 749, 3, 749, 14265, 8, 749, 1, 749, 3, 749, 14268, 8, 749, 1, 750, 3, 750, 14271, 8, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 5, 750, 14280, 8, 750, 10, 750, 12, 750, 14283, 9, 750, 3, 750, 14285, 8, 750, 1, 751, 1, 751, 1, 751, 1, 751, 3, 751, 14291, 8, 751, 1, 751, 3, 751, 14294, 8, 751, 1, 752, 1, 752, 3, 752, 14298, 8, 752, 1, 752, 3, 752, 14301, 8, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 3, 752, 14314, 8, 752, 3, 752, 14316, 8, 752, 1, 752, 5, 752, 14319, 8, 752, 10, 752, 12, 752, 14322, 9, 752, 1, 752, 1, 752, 3, 752, 14326, 8, 752, 1, 753, 1, 753, 3, 753, 14330, 8, 753, 1, 753, 1, 753, 1, 753, 1, 753, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 3, 755, 14353, 8, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 3, 755, 14369, 8, 755, 1, 756, 1, 756, 1, 756, 3, 756, 14374, 8, 756, 1, 756, 1, 756, 3, 756, 14378, 8, 756, 1, 756, 1, 756, 3, 756, 14382, 8, 756, 1, 756, 1, 756, 3, 756, 14386, 8, 756, 1, 756, 3, 756, 14389, 8, 756, 1, 756, 1, 756, 1, 756, 3, 756, 14394, 8, 756, 3, 756, 14396, 8, 756, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 5, 757, 14408, 8, 757, 10, 757, 12, 757, 14411, 9, 757, 1, 757, 1, 757, 3, 757, 14415, 8, 757, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 3, 758, 14422, 8, 758, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 3, 759, 14433, 8, 759, 1, 759, 1, 759, 1, 759, 1, 759, 3, 759, 14439, 8, 759, 3, 759, 14441, 8, 759, 3, 759, 14443, 8, 759, 1, 760, 1, 760, 1, 760, 1, 760, 5, 760, 14449, 8, 760, 10, 760, 12, 760, 14452, 9, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 3, 760, 14460, 8, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 3, 760, 14468, 8, 760, 4, 760, 14470, 8, 760, 11, 760, 12, 760, 14471, 3, 760, 14474, 8, 760, 1, 761, 3, 761, 14477, 8, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 3, 762, 14495, 8, 762, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 3, 763, 14507, 8, 763, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 3, 764, 14514, 8, 764, 1, 764, 1, 764, 3, 764, 14518, 8, 764, 1, 764, 3, 764, 14521, 8, 764, 1, 764, 3, 764, 14524, 8, 764, 3, 764, 14526, 8, 764, 1, 765, 1, 765, 1, 765, 3, 765, 14531, 8, 765, 1, 765, 1, 765, 3, 765, 14535, 8, 765, 3, 765, 14537, 8, 765, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 3, 767, 14553, 8, 767, 1, 767, 1, 767, 3, 767, 14557, 8, 767, 1, 767, 3, 767, 14560, 8, 767, 1, 767, 1, 767, 1, 767, 3, 767, 14565, 8, 767, 1, 767, 3, 767, 14568, 8, 767, 1, 767, 3, 767, 14571, 8, 767, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 5, 768, 14580, 8, 768, 10, 768, 12, 768, 14583, 9, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 5, 768, 14591, 8, 768, 10, 768, 12, 768, 14594, 9, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 5, 768, 14603, 8, 768, 10, 768, 12, 768, 14606, 9, 768, 1, 768, 1, 768, 1, 768, 5, 768, 14611, 8, 768, 10, 768, 12, 768, 14614, 9, 768, 3, 768, 14616, 8, 768, 1, 768, 1, 768, 3, 768, 14620, 8, 768, 1, 768, 1, 768, 1, 768, 3, 768, 14625, 8, 768, 1, 769, 1, 769, 1, 769, 3, 769, 14630, 8, 769, 1, 769, 1, 769, 3, 769, 14634, 8, 769, 1, 769, 3, 769, 14637, 8, 769, 1, 769, 3, 769, 14640, 8, 769, 1, 769, 3, 769, 14643, 8, 769, 1, 769, 1, 769, 3, 769, 14647, 8, 769, 3, 769, 14649, 8, 769, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 3, 770, 14659, 8, 770, 1, 770, 1, 770, 3, 770, 14663, 8, 770, 1, 771, 1, 771, 1, 771, 3, 771, 14668, 8, 771, 1, 771, 1, 771, 1, 771, 3, 771, 14673, 8, 771, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 3, 772, 14680, 8, 772, 1, 772, 1, 772, 1, 773, 1, 773, 1, 773, 1, 773, 3, 773, 14688, 8, 773, 1, 773, 1, 773, 1, 773, 1, 773, 3, 773, 14694, 8, 773, 1, 773, 3, 773, 14697, 8, 773, 3, 773, 14699, 8, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 5, 773, 14708, 8, 773, 10, 773, 12, 773, 14711, 9, 773, 1, 774, 1, 774, 1, 774, 1, 774, 1, 775, 1, 775, 1, 775, 1, 775, 5, 775, 14721, 8, 775, 10, 775, 12, 775, 14724, 9, 775, 1, 775, 1, 775, 1, 775, 1, 775, 5, 775, 14730, 8, 775, 10, 775, 12, 775, 14733, 9, 775, 1, 775, 1, 775, 1, 775, 1, 775, 3, 775, 14739, 8, 775, 1, 775, 1, 775, 1, 775, 5, 775, 14744, 8, 775, 10, 775, 12, 775, 14747, 9, 775, 1, 775, 3, 775, 14750, 8, 775, 3, 775, 14752, 8, 775, 1, 776, 1, 776, 1, 776, 1, 776, 3, 776, 14758, 8, 776, 1, 776, 1, 776, 1, 776, 1, 776, 5, 776, 14764, 8, 776, 10, 776, 12, 776, 14767, 9, 776, 1, 776, 1, 776, 1, 776, 1, 776, 3, 776, 14773, 8, 776, 1, 776, 1, 776, 1, 776, 5, 776, 14778, 8, 776, 10, 776, 12, 776, 14781, 9, 776, 1, 776, 3, 776, 14784, 8, 776, 3, 776, 14786, 8, 776, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 4, 777, 14807, 8, 777, 11, 777, 12, 777, 14808, 1, 777, 3, 777, 14812, 8, 777, 1, 778, 1, 778, 1, 778, 1, 778, 3, 778, 14818, 8, 778, 1, 779, 1, 779, 1, 779, 1, 779, 3, 779, 14824, 8, 779, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 4, 780, 14832, 8, 780, 11, 780, 12, 780, 14833, 3, 780, 14836, 8, 780, 1, 781, 1, 781, 1, 781, 3, 781, 14841, 8, 781, 1, 781, 1, 781, 1, 781, 3, 781, 14846, 8, 781, 1, 781, 1, 781, 1, 781, 3, 781, 14851, 8, 781, 5, 781, 14853, 8, 781, 10, 781, 12, 781, 14856, 9, 781, 1, 781, 3, 781, 14859, 8, 781, 1, 782, 1, 782, 3, 782, 14863, 8, 782, 1, 783, 1, 783, 1, 783, 1, 783, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 3, 784, 14875, 8, 784, 1, 785, 1, 785, 1, 785, 1, 785, 3, 785, 14881, 8, 785, 1, 785, 1, 785, 1, 785, 5, 785, 14886, 8, 785, 10, 785, 12, 785, 14889, 9, 785, 1, 786, 1, 786, 3, 786, 14893, 8, 786, 1, 786, 1, 786, 5, 786, 14897, 8, 786, 10, 786, 12, 786, 14900, 9, 786, 1, 787, 1, 787, 3, 787, 14904, 8, 787, 1, 787, 1, 787, 3, 787, 14908, 8, 787, 1, 787, 1, 787, 5, 787, 14912, 8, 787, 10, 787, 12, 787, 14915, 9, 787, 1, 788, 1, 788, 3, 788, 14919, 8, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 5, 788, 14926, 8, 788, 10, 788, 12, 788, 14929, 9, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 3, 788, 14937, 8, 788, 1, 788, 3, 788, 14940, 8, 788, 1, 788, 3, 788, 14943, 8, 788, 1, 788, 3, 788, 14946, 8, 788, 1, 788, 1, 788, 3, 788, 14950, 8, 788, 1, 789, 1, 789, 1, 789, 1, 789, 1, 789, 1, 789, 1, 789, 1, 789, 3, 789, 14960, 8, 789, 1, 790, 1, 790, 1, 790, 1, 790, 1, 790, 3, 790, 14967, 8, 790, 1, 790, 1, 790, 1, 790, 1, 790, 1, 790, 4, 790, 14974, 8, 790, 11, 790, 12, 790, 14975, 1, 791, 1, 791, 1, 792, 1, 792, 1, 792, 1, 792, 1, 793, 1, 793, 3, 793, 14986, 8, 793, 1, 793, 3, 793, 14989, 8, 793, 1, 793, 3, 793, 14992, 8, 793, 1, 793, 3, 793, 14995, 8, 793, 1, 793, 1, 793, 5, 793, 14999, 8, 793, 10, 793, 12, 793, 15002, 9, 793, 1, 793, 3, 793, 15005, 8, 793, 1, 794, 1, 794, 1, 794, 1, 794, 4, 794, 15011, 8, 794, 11, 794, 12, 794, 15012, 1, 794, 3, 794, 15016, 8, 794, 1, 794, 3, 794, 15019, 8, 794, 1, 795, 1, 795, 1, 795, 3, 795, 15024, 8, 795, 1, 796, 1, 796, 1, 796, 3, 796, 15029, 8, 796, 1, 797, 1, 797, 3, 797, 15033, 8, 797, 1, 797, 1, 797, 3, 797, 15037, 8, 797, 1, 798, 1, 798, 1, 798, 1, 798, 3, 798, 15043, 8, 798, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 800, 1, 800, 1, 801, 1, 801, 1, 801, 1, 801, 1, 801, 1, 801, 1, 802, 1, 802, 1, 803, 1, 803, 1, 804, 1, 804, 1, 804, 1, 804, 4, 804, 15069, 8, 804, 11, 804, 12, 804, 15070, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 5, 805, 15081, 8, 805, 10, 805, 12, 805, 15084, 9, 805, 1, 805, 1, 805, 3, 805, 15088, 8, 805, 1, 805, 1, 805, 1, 805, 5, 805, 15093, 8, 805, 10, 805, 12, 805, 15096, 9, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 5, 805, 15105, 8, 805, 10, 805, 12, 805, 15108, 9, 805, 1, 805, 1, 805, 3, 805, 15112, 8, 805, 1, 805, 1, 805, 1, 805, 5, 805, 15117, 8, 805, 10, 805, 12, 805, 15120, 9, 805, 1, 805, 1, 805, 3, 805, 15124, 8, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 3, 805, 15131, 8, 805, 1, 805, 1, 805, 3, 805, 15135, 8, 805, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 5, 806, 15142, 8, 806, 10, 806, 12, 806, 15145, 9, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 5, 806, 15153, 8, 806, 10, 806, 12, 806, 15156, 9, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 3, 806, 15163, 8, 806, 1, 807, 1, 807, 3, 807, 15167, 8, 807, 1, 807, 1, 807, 1, 807, 3, 807, 15172, 8, 807, 1, 807, 3, 807, 15175, 8, 807, 1, 807, 1, 807, 1, 807, 3, 807, 15180, 8, 807, 1, 807, 5, 807, 15183, 8, 807, 10, 807, 12, 807, 15186, 9, 807, 1, 807, 3, 807, 15189, 8, 807, 1, 807, 3, 807, 15192, 8, 807, 1, 808, 1, 808, 1, 808, 1, 809, 1, 809, 1, 809, 3, 809, 15200, 8, 809, 1, 809, 1, 809, 1, 809, 1, 809, 1, 809, 3, 809, 15207, 8, 809, 1, 810, 1, 810, 1, 810, 1, 810, 3, 810, 15213, 8, 810, 1, 810, 1, 810, 1, 810, 3, 810, 15218, 8, 810, 5, 810, 15220, 8, 810, 10, 810, 12, 810, 15223, 9, 810, 1, 810, 1, 810, 1, 810, 1, 810, 3, 810, 15229, 8, 810, 3, 810, 15231, 8, 810, 1, 810, 3, 810, 15234, 8, 810, 1, 811, 1, 811, 1, 811, 3, 811, 15239, 8, 811, 1, 811, 1, 811, 3, 811, 15243, 8, 811, 1, 812, 1, 812, 1, 812, 3, 812, 15248, 8, 812, 1, 812, 1, 812, 3, 812, 15252, 8, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 3, 812, 15259, 8, 812, 1, 813, 1, 813, 1, 814, 1, 814, 1, 814, 3, 814, 15266, 8, 814, 1, 815, 1, 815, 1, 815, 1, 815, 3, 815, 15272, 8, 815, 1, 815, 3, 815, 15275, 8, 815, 1, 816, 1, 816, 1, 816, 1, 816, 1, 816, 5, 816, 15282, 8, 816, 10, 816, 12, 816, 15285, 9, 816, 1, 816, 1, 816, 1, 816, 1, 816, 1, 816, 1, 816, 5, 816, 15293, 8, 816, 10, 816, 12, 816, 15296, 9, 816, 1, 816, 4, 816, 15299, 8, 816, 11, 816, 12, 816, 15300, 1, 816, 1, 816, 1, 816, 1, 816, 1, 816, 1, 816, 1, 816, 1, 816, 1, 816, 5, 816, 15312, 8, 816, 10, 816, 12, 816, 15315, 9, 816, 1, 816, 4, 816, 15318, 8, 816, 11, 816, 12, 816, 15319, 3, 816, 15322, 8, 816, 1, 817, 1, 817, 1, 817, 1, 817, 1, 817, 1, 817, 1, 817, 1, 817, 1, 817, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 1, 818, 3, 818, 15349, 8, 818, 1, 818, 3, 818, 15352, 8, 818, 1, 818, 1, 818, 1, 818, 4, 818, 15357, 8, 818, 11, 818, 12, 818, 15358, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 3, 819, 15381, 8, 819, 1, 819, 3, 819, 15384, 8, 819, 4, 819, 15386, 8, 819, 11, 819, 12, 819, 15387, 1, 820, 1, 820, 1, 821, 1, 821, 1, 821, 3, 821, 15395, 8, 821, 3, 821, 15397, 8, 821, 1, 822, 1, 822, 1, 822, 1, 822, 1, 822, 1, 822, 3, 822, 15405, 8, 822, 1, 823, 1, 823, 3, 823, 15409, 8, 823, 1, 823, 1, 823, 1, 823, 3, 823, 15414, 8, 823, 1, 823, 3, 823, 15417, 8, 823, 1, 823, 3, 823, 15420, 8, 823, 1, 823, 3, 823, 15423, 8, 823, 1, 824, 1, 824, 1, 825, 1, 825, 1, 825, 3, 825, 15430, 8, 825, 1, 825, 1, 825, 1, 825, 3, 825, 15435, 8, 825, 1, 825, 1, 825, 1, 826, 1, 826, 1, 826, 1, 826, 3, 826, 15443, 8, 826, 1, 826, 1, 826, 1, 826, 1, 826, 5, 826, 15449, 8, 826, 10, 826, 12, 826, 15452, 9, 826, 1, 826, 1, 826, 3, 826, 15456, 8, 826, 1, 826, 4, 826, 15459, 8, 826, 11, 826, 12, 826, 15460, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 4, 827, 15477, 8, 827, 11, 827, 12, 827, 15478, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 4, 827, 15492, 8, 827, 11, 827, 12, 827, 15493, 3, 827, 15496, 8, 827, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 3, 828, 15508, 8, 828, 1, 829, 1, 829, 1, 830, 1, 830, 1, 831, 1, 831, 1, 831, 3, 831, 15517, 8, 831, 1, 831, 1, 831, 3, 831, 15521, 8, 831, 3, 831, 15523, 8, 831, 1, 831, 3, 831, 15526, 8, 831, 1, 831, 3, 831, 15529, 8, 831, 1, 831, 1, 831, 1, 831, 3, 831, 15534, 8, 831, 1, 831, 1, 831, 3, 831, 15538, 8, 831, 1, 831, 1, 831, 3, 831, 15542, 8, 831, 1, 831, 4, 831, 15545, 8, 831, 11, 831, 12, 831, 15546, 1, 831, 3, 831, 15550, 8, 831, 1, 831, 3, 831, 15553, 8, 831, 1, 832, 1, 832, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 3, 833, 15563, 8, 833, 3, 833, 15565, 8, 833, 1, 833, 1, 833, 1, 833, 3, 833, 15570, 8, 833, 1, 834, 4, 834, 15573, 8, 834, 11, 834, 12, 834, 15574, 1, 834, 1, 834, 4, 834, 15579, 8, 834, 11, 834, 12, 834, 15580, 1, 834, 1, 834, 3, 834, 15585, 8, 834, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 3, 835, 15592, 8, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 3, 835, 15615, 8, 835, 1, 836, 1, 836, 1, 836, 1, 836, 3, 836, 15621, 8, 836, 3, 836, 15623, 8, 836, 1, 836, 3, 836, 15626, 8, 836, 1, 836, 3, 836, 15629, 8, 836, 1, 836, 3, 836, 15632, 8, 836, 1, 836, 3, 836, 15635, 8, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 3, 836, 15643, 8, 836, 3, 836, 15645, 8, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 3, 836, 15654, 8, 836, 3, 836, 15656, 8, 836, 1, 836, 5, 836, 15659, 8, 836, 10, 836, 12, 836, 15662, 9, 836, 1, 836, 3, 836, 15665, 8, 836, 1, 837, 1, 837, 1, 837, 3, 837, 15670, 8, 837, 3, 837, 15672, 8, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 3, 837, 15679, 8, 837, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 3, 838, 15687, 8, 838, 3, 838, 15689, 8, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 5, 838, 15696, 8, 838, 10, 838, 12, 838, 15699, 9, 838, 1, 838, 3, 838, 15702, 8, 838, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 3, 840, 15715, 8, 840, 1, 841, 1, 841, 1, 841, 1, 841, 3, 841, 15721, 8, 841, 1, 841, 3, 841, 15724, 8, 841, 1, 841, 3, 841, 15727, 8, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 4, 841, 15739, 8, 841, 11, 841, 12, 841, 15740, 1, 841, 1, 841, 3, 841, 15745, 8, 841, 1, 841, 1, 841, 3, 841, 15749, 8, 841, 1, 841, 3, 841, 15752, 8, 841, 1, 842, 1, 842, 1, 843, 3, 843, 15757, 8, 843, 1, 843, 1, 843, 1, 843, 3, 843, 15762, 8, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 3, 843, 15769, 8, 843, 1, 843, 1, 843, 1, 843, 1, 843, 3, 843, 15775, 8, 843, 1, 844, 1, 844, 3, 844, 15779, 8, 844, 1, 845, 1, 845, 1, 845, 1, 845, 3, 845, 15785, 8, 845, 1, 846, 1, 846, 1, 846, 1, 846, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 5, 847, 15796, 8, 847, 10, 847, 12, 847, 15799, 9, 847, 1, 847, 3, 847, 15802, 8, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 3, 847, 15809, 8, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 5, 847, 15821, 8, 847, 10, 847, 12, 847, 15824, 9, 847, 1, 847, 1, 847, 3, 847, 15828, 8, 847, 1, 847, 1, 847, 3, 847, 15832, 8, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 4, 847, 15841, 8, 847, 11, 847, 12, 847, 15842, 3, 847, 15845, 8, 847, 1, 848, 1, 848, 1, 849, 1, 849, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 5, 850, 15859, 8, 850, 10, 850, 12, 850, 15862, 9, 850, 1, 850, 1, 850, 1, 850, 1, 850, 3, 850, 15868, 8, 850, 1, 850, 3, 850, 15871, 8, 850, 1, 850, 1, 850, 3, 850, 15875, 8, 850, 1, 850, 3, 850, 15878, 8, 850, 1, 851, 1, 851, 1, 851, 1, 851, 1, 851, 3, 851, 15885, 8, 851, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 3, 852, 15892, 8, 852, 1, 853, 1, 853, 1, 853, 3, 853, 15897, 8, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 3, 853, 15904, 8, 853, 3, 853, 15906, 8, 853, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 3, 854, 15913, 8, 854, 1, 855, 1, 855, 3, 855, 15917, 8, 855, 1, 855, 1, 855, 1, 855, 1, 855, 4, 855, 15923, 8, 855, 11, 855, 12, 855, 15924, 3, 855, 15927, 8, 855, 1, 855, 1, 855, 1, 856, 1, 856, 1, 856, 1, 857, 1, 857, 3, 857, 15936, 8, 857, 1, 858, 1, 858, 1, 858, 1, 858, 1, 858, 1, 859, 1, 859, 1, 859, 3, 859, 15946, 8, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 3, 859, 15957, 8, 859, 3, 859, 15959, 8, 859, 1, 859, 3, 859, 15962, 8, 859, 1, 859, 1, 859, 3, 859, 15966, 8, 859, 1, 859, 3, 859, 15969, 8, 859, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 5, 861, 15982, 8, 861, 10, 861, 12, 861, 15985, 9, 861, 1, 861, 1, 861, 1, 862, 1, 862, 1, 862, 1, 862, 3, 862, 15993, 8, 862, 1, 862, 1, 862, 3, 862, 15997, 8, 862, 1, 862, 3, 862, 16000, 8, 862, 1, 862, 1, 862, 3, 862, 16004, 8, 862, 1, 862, 3, 862, 16007, 8, 862, 3, 862, 16009, 8, 862, 1, 863, 1, 863, 3, 863, 16013, 8, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 3, 863, 16020, 8, 863, 1, 864, 1, 864, 5, 864, 16024, 8, 864, 10, 864, 12, 864, 16027, 9, 864, 1, 864, 3, 864, 16030, 8, 864, 1, 864, 3, 864, 16033, 8, 864, 1, 865, 1, 865, 1, 865, 1, 866, 4, 866, 16039, 8, 866, 11, 866, 12, 866, 16040, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 3, 867, 16054, 8, 867, 1, 868, 1, 868, 3, 868, 16058, 8, 868, 1, 868, 1, 868, 3, 868, 16062, 8, 868, 1, 868, 3, 868, 16065, 8, 868, 1, 868, 3, 868, 16068, 8, 868, 1, 868, 1, 868, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 3, 869, 16081, 8, 869, 1, 869, 1, 869, 3, 869, 16085, 8, 869, 1, 869, 1, 869, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 5, 870, 16095, 8, 870, 10, 870, 12, 870, 16098, 9, 870, 1, 870, 1, 870, 3, 870, 16102, 8, 870, 1, 870, 1, 870, 3, 870, 16106, 8, 870, 1, 870, 1, 870, 3, 870, 16110, 8, 870, 1, 870, 1, 870, 1, 871, 1, 871, 3, 871, 16116, 8, 871, 1, 871, 3, 871, 16119, 8, 871, 1, 871, 3, 871, 16122, 8, 871, 1, 872, 1, 872, 1, 872, 1, 872, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 3, 873, 16149, 8, 873, 1, 873, 1, 873, 4, 873, 16153, 8, 873, 11, 873, 12, 873, 16154, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 3, 873, 16164, 8, 873, 1, 873, 1, 873, 1, 873, 3, 873, 16169, 8, 873, 1, 873, 1, 873, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 5, 874, 16178, 8, 874, 10, 874, 12, 874, 16181, 9, 874, 1, 874, 1, 874, 1, 875, 1, 875, 3, 875, 16187, 8, 875, 1, 875, 1, 875, 3, 875, 16191, 8, 875, 1, 875, 3, 875, 16194, 8, 875, 1, 876, 1, 876, 1, 876, 1, 876, 3, 876, 16200, 8, 876, 1, 877, 1, 877, 1, 877, 1, 877, 1, 877, 1, 877, 1, 877, 3, 877, 16209, 8, 877, 1, 877, 1, 877, 1, 878, 1, 878, 1, 878, 1, 878, 1, 878, 3, 878, 16218, 8, 878, 1, 878, 3, 878, 16221, 8, 878, 1, 879, 1, 879, 3, 879, 16225, 8, 879, 1, 879, 1, 879, 1, 879, 1, 880, 1, 880, 3, 880, 16232, 8, 880, 1, 880, 3, 880, 16235, 8, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 3, 880, 16244, 8, 880, 1, 881, 5, 881, 16247, 8, 881, 10, 881, 12, 881, 16250, 9, 881, 1, 881, 1, 881, 1, 881, 1, 881, 1, 881, 4, 881, 16257, 8, 881, 11, 881, 12, 881, 16258, 1, 882, 1, 882, 1, 882, 1, 882, 1, 882, 1, 882, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 3, 883, 16284, 8, 883, 1, 884, 1, 884, 3, 884, 16288, 8, 884, 1, 884, 1, 884, 1, 884, 1, 885, 1, 885, 3, 885, 16295, 8, 885, 1, 885, 1, 885, 3, 885, 16299, 8, 885, 1, 886, 1, 886, 3, 886, 16303, 8, 886, 1, 886, 1, 886, 3, 886, 16307, 8, 886, 1, 887, 1, 887, 1, 887, 1, 888, 1, 888, 1, 888, 1, 888, 1, 888, 5, 888, 16317, 8, 888, 10, 888, 12, 888, 16320, 9, 888, 1, 888, 3, 888, 16323, 8, 888, 1, 888, 1, 888, 1, 888, 1, 889, 1, 889, 1, 889, 1, 889, 1, 889, 1, 890, 1, 890, 1, 890, 1, 891, 3, 891, 16337, 8, 891, 1, 891, 1, 891, 1, 891, 1, 891, 3, 891, 16343, 8, 891, 1, 891, 1, 891, 1, 891, 1, 891, 1, 891, 3, 891, 16350, 8, 891, 1, 892, 1, 892, 1, 892, 3, 892, 16355, 8, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 3, 892, 16366, 8, 892, 1, 892, 3, 892, 16369, 8, 892, 1, 892, 1, 892, 1, 892, 1, 892, 3, 892, 16375, 8, 892, 3, 892, 16377, 8, 892, 1, 893, 1, 893, 1, 893, 1, 893, 1, 893, 1, 893, 3, 893, 16385, 8, 893, 1, 893, 1, 893, 1, 894, 1, 894, 1, 894, 1, 894, 1, 894, 1, 894, 1, 894, 1, 894, 3, 894, 16397, 8, 894, 1, 894, 1, 894, 1, 894, 3, 894, 16402, 8, 894, 1, 895, 1, 895, 1, 895, 1, 895, 1, 895, 1, 896, 1, 896, 1, 897, 1, 897, 1, 898, 1, 898, 1, 899, 1, 899, 3, 899, 16417, 8, 899, 1, 900, 1, 900, 3, 900, 16421, 8, 900, 1, 901, 3, 901, 16424, 8, 901, 1, 901, 1, 901, 3, 901, 16428, 8, 901, 1, 901, 1, 901, 1, 901, 3, 901, 16433, 8, 901, 5, 901, 16435, 8, 901, 10, 901, 12, 901, 16438, 9, 901, 1, 901, 1, 901, 3, 901, 16442, 8, 901, 1, 902, 1, 902, 1, 902, 1, 902, 1, 902, 1, 902, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 5, 903, 16456, 8, 903, 10, 903, 12, 903, 16459, 9, 903, 1, 903, 1, 903, 3, 903, 16463, 8, 903, 1, 903, 1, 903, 1, 904, 1, 904, 1, 904, 1, 904, 1, 905, 3, 905, 16472, 8, 905, 1, 905, 1, 905, 1, 905, 1, 905, 1, 905, 1, 905, 1, 905, 4, 905, 16481, 8, 905, 11, 905, 12, 905, 16482, 1, 906, 1, 906, 1, 906, 1, 906, 4, 906, 16489, 8, 906, 11, 906, 12, 906, 16490, 3, 906, 16493, 8, 906, 1, 906, 1, 906, 3, 906, 16497, 8, 906, 1, 907, 1, 907, 1, 907, 1, 907, 5, 907, 16503, 8, 907, 10, 907, 12, 907, 16506, 9, 907, 1, 907, 1, 907, 1, 907, 1, 908, 1, 908, 5, 908, 16513, 8, 908, 10, 908, 12, 908, 16516, 9, 908, 3, 908, 16518, 8, 908, 1, 908, 1, 908, 1, 909, 5, 909, 16523, 8, 909, 10, 909, 12, 909, 16526, 9, 909, 1, 909, 1, 909, 1, 910, 1, 910, 5, 910, 16532, 8, 910, 10, 910, 12, 910, 16535, 9, 910, 3, 910, 16537, 8, 910, 1, 910, 1, 910, 1, 911, 1, 911, 1, 911, 1, 911, 1, 911, 3, 911, 16546, 8, 911, 1, 912, 1, 912, 1, 912, 1, 912, 1, 912, 3, 912, 16553, 8, 912, 1, 912, 1, 912, 3, 912, 16557, 8, 912, 1, 912, 3, 912, 16560, 8, 912, 1, 913, 1, 913, 1, 913, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 3, 914, 16572, 8, 914, 1, 915, 1, 915, 1, 915, 1, 915, 3, 915, 16578, 8, 915, 1, 916, 1, 916, 1, 916, 1, 917, 1, 917, 1, 917, 1, 917, 3, 917, 16587, 8, 917, 1, 917, 3, 917, 16590, 8, 917, 1, 918, 1, 918, 1, 918, 1, 918, 1, 918, 1, 918, 5, 918, 16598, 8, 918, 10, 918, 12, 918, 16601, 9, 918, 1, 918, 1, 918, 1, 918, 1, 918, 1, 918, 1, 918, 5, 918, 16609, 8, 918, 10, 918, 12, 918, 16612, 9, 918, 1, 918, 1, 918, 1, 918, 3, 918, 16617, 8, 918, 3, 918, 16619, 8, 918, 3, 918, 16621, 8, 918, 1, 919, 1, 919, 3, 919, 16625, 8, 919, 1, 920, 1, 920, 1, 920, 1, 920, 1, 920, 3, 920, 16632, 8, 920, 1, 920, 3, 920, 16635, 8, 920, 1, 921, 1, 921, 1, 921, 1, 921, 1, 921, 3, 921, 16642, 8, 921, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 1, 922, 3, 922, 16653, 8, 922, 1, 922, 1, 922, 1, 922, 1, 922, 3, 922, 16659, 8, 922, 1, 922, 1, 922, 3, 922, 16663, 8, 922, 1, 923, 1, 923, 1, 923, 1, 923, 1, 923, 1, 923, 5, 923, 16671, 8, 923, 10, 923, 12, 923, 16674, 9, 923, 3, 923, 16676, 8, 923, 1, 923, 1, 923, 1, 924, 1, 924, 3, 924, 16682, 8, 924, 1, 924, 3, 924, 16685, 8, 924, 1, 924, 1, 924, 1, 924, 3, 924, 16690, 8, 924, 1, 924, 1, 924, 1, 924, 1, 924, 3, 924, 16696, 8, 924, 1, 924, 1, 924, 1, 924, 3, 924, 16701, 8, 924, 3, 924, 16703, 8, 924, 1, 925, 1, 925, 1, 925, 5, 925, 16708, 8, 925, 10, 925, 12, 925, 16711, 9, 925, 1, 926, 1, 926, 3, 926, 16715, 8, 926, 1, 926, 1, 926, 3, 926, 16719, 8, 926, 1, 926, 1, 926, 1, 926, 3, 926, 16724, 8, 926, 1, 927, 1, 927, 1, 927, 1, 928, 1, 928, 1, 928, 1, 928, 1, 928, 1, 928, 1, 928, 5, 928, 16736, 8, 928, 10, 928, 12, 928, 16739, 9, 928, 1, 928, 1, 928, 3, 928, 16743, 8, 928, 1, 928, 1, 928, 1, 928, 1, 928, 1, 928, 3, 928, 16750, 8, 928, 3, 928, 16752, 8, 928, 1, 929, 1, 929, 1, 929, 1, 929, 1, 929, 1, 929, 3, 929, 16760, 8, 929, 1, 929, 1, 929, 3, 929, 16764, 8, 929, 1, 929, 1, 929, 1, 929, 1, 929, 1, 929, 1, 929, 3, 929, 16772, 8, 929, 1, 930, 3, 930, 16775, 8, 930, 1, 930, 1, 930, 1, 931, 1, 931, 1, 931, 1, 931, 1, 931, 5, 931, 16784, 8, 931, 10, 931, 12, 931, 16787, 9, 931, 1, 932, 1, 932, 1, 932, 5, 932, 16792, 8, 932, 10, 932, 12, 932, 16795, 9, 932, 1, 932, 1, 932, 1, 932, 5, 932, 16800, 8, 932, 10, 932, 12, 932, 16803, 9, 932, 1, 932, 1, 932, 1, 932, 4, 932, 16808, 8, 932, 11, 932, 12, 932, 16809, 1, 932, 1, 932, 1, 932, 5, 932, 16815, 8, 932, 10, 932, 12, 932, 16818, 9, 932, 3, 932, 16820, 8, 932, 3, 932, 16822, 8, 932, 1, 933, 1, 933, 3, 933, 16826, 8, 933, 1, 934, 1, 934, 3, 934, 16830, 8, 934, 1, 934, 1, 934, 1, 934, 1, 934, 3, 934, 16836, 8, 934, 1, 934, 1, 934, 3, 934, 16840, 8, 934, 1, 934, 3, 934, 16843, 8, 934, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 1, 935, 3, 935, 16851, 8, 935, 1, 935, 3, 935, 16854, 8, 935, 1, 935, 1, 935, 3, 935, 16858, 8, 935, 1, 935, 1, 935, 3, 935, 16862, 8, 935, 1, 935, 1, 935, 1, 935, 3, 935, 16867, 8, 935, 1, 935, 3, 935, 16870, 8, 935, 1, 935, 1, 935, 3, 935, 16874, 8, 935, 1, 935, 1, 935, 3, 935, 16878, 8, 935, 5, 935, 16880, 8, 935, 10, 935, 12, 935, 16883, 9, 935, 1, 935, 1, 935, 1, 935, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 936, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 937, 1, 938, 1, 938, 1, 938, 3, 938, 16908, 8, 938, 1, 938, 3, 938, 16911, 8, 938, 1, 938, 3, 938, 16914, 8, 938, 1, 939, 1, 939, 1, 939, 1, 939, 1, 939, 5, 939, 16921, 8, 939, 10, 939, 12, 939, 16924, 9, 939, 1, 939, 1, 939, 1, 940, 1, 940, 1, 940, 1, 940, 1, 940, 1, 940, 5, 940, 16934, 8, 940, 10, 940, 12, 940, 16937, 9, 940, 1, 940, 1, 940, 1, 941, 1, 941, 3, 941, 16943, 8, 941, 1, 941, 1, 941, 1, 941, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 1, 942, 5, 942, 16954, 8, 942, 10, 942, 12, 942, 16957, 9, 942, 1, 942, 1, 942, 1, 943, 1, 943, 1, 943, 1, 943, 1, 943, 1, 943, 1, 944, 1, 944, 5, 944, 16969, 8, 944, 10, 944, 12, 944, 16972, 9, 944, 1, 945, 1, 945, 1, 945, 1, 945, 1, 945, 3, 945, 16979, 8, 945, 1, 946, 1, 946, 3, 946, 16983, 8, 946, 1, 946, 1, 946, 3, 946, 16987, 8, 946, 1, 946, 1, 946, 1, 947, 1, 947, 3, 947, 16993, 8, 947, 1, 947, 1, 947, 3, 947, 16997, 8, 947, 1, 947, 3, 947, 17000, 8, 947, 1, 947, 3, 947, 17003, 8, 947, 1, 947, 1, 947, 5, 947, 17007, 8, 947, 10, 947, 12, 947, 17010, 9, 947, 1, 947, 3, 947, 17013, 8, 947, 1, 947, 3, 947, 17016, 8, 947, 1, 947, 3, 947, 17019, 8, 947, 1, 947, 3, 947, 17022, 8, 947, 1, 948, 1, 948, 1, 948, 1, 948, 5, 948, 17028, 8, 948, 10, 948, 12, 948, 17031, 9, 948, 3, 948, 17033, 8, 948, 1, 949, 1, 949, 1, 949, 1, 950, 1, 950, 1, 950, 1, 950, 1, 950, 1, 950, 3, 950, 17044, 8, 950, 3, 950, 17046, 8, 950, 1, 951, 1, 951, 1, 951, 5, 951, 17051, 8, 951, 10, 951, 12, 951, 17054, 9, 951, 1, 952, 1, 952, 5, 952, 17058, 8, 952, 10, 952, 12, 952, 17061, 9, 952, 1, 952, 1, 952, 3, 952, 17065, 8, 952, 1, 953, 1, 953, 5, 953, 17069, 8, 953, 10, 953, 12, 953, 17072, 9, 953, 1, 953, 3, 953, 17075, 8, 953, 1, 954, 1, 954, 1, 954, 3, 954, 17080, 8, 954, 1, 954, 1, 954, 1, 954, 5, 954, 17085, 8, 954, 10, 954, 12, 954, 17088, 9, 954, 1, 954, 1, 954, 1, 954, 3, 954, 17093, 8, 954, 1, 954, 1, 954, 1, 954, 1, 954, 1, 954, 3, 954, 17100, 8, 954, 1, 955, 3, 955, 17103, 8, 955, 1, 955, 3, 955, 17106, 8, 955, 1, 955, 1, 955, 3, 955, 17110, 8, 955, 1, 955, 1, 955, 1, 955, 3, 955, 17115, 8, 955, 1, 955, 1, 955, 5, 955, 17119, 8, 955, 10, 955, 12, 955, 17122, 9, 955, 1, 955, 1, 955, 1, 955, 3, 955, 17127, 8, 955, 1, 956, 1, 956, 1, 956, 1, 957, 1, 957, 1, 957, 1, 958, 1, 958, 3, 958, 17137, 8, 958, 1, 959, 1, 959, 1, 959, 1, 959, 1, 959, 3, 959, 17144, 8, 959, 1, 959, 1, 959, 3, 959, 17148, 8, 959, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 3, 960, 17158, 8, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 1, 960, 3, 960, 17173, 8, 960, 3, 960, 17175, 8, 960, 1, 961, 1, 961, 3, 961, 17179, 8, 961, 1, 961, 1, 961, 1, 961, 1, 961, 5, 961, 17185, 8, 961, 10, 961, 12, 961, 17188, 9, 961, 1, 961, 1, 961, 1, 961, 1, 961, 3, 961, 17194, 8, 961, 1, 962, 1, 962, 1, 962, 1, 962, 1, 962, 1, 962, 3, 962, 17202, 8, 962, 1, 962, 3, 962, 17205, 8, 962, 1, 963, 1, 963, 1, 963, 3, 963, 17210, 8, 963, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 1, 964, 5, 964, 17218, 8, 964, 10, 964, 12, 964, 17221, 9, 964, 1, 964, 1, 964, 1, 964, 5, 964, 17226, 8, 964, 10, 964, 12, 964, 17229, 9, 964, 3, 964, 17231, 8, 964, 1, 964, 1, 964, 1, 965, 1, 965, 3, 965, 17237, 8, 965, 1, 966, 1, 966, 1, 966, 3, 966, 17242, 8, 966, 1, 966, 3, 966, 17245, 8, 966, 1, 967, 1, 967, 1, 967, 3, 967, 17250, 8, 967, 1, 967, 1, 967, 1, 967, 3, 967, 17255, 8, 967, 1, 967, 1, 967, 1, 967, 1, 967, 3, 967, 17261, 8, 967, 1, 968, 1, 968, 1, 968, 1, 968, 1, 968, 5, 968, 17268, 8, 968, 10, 968, 12, 968, 17271, 9, 968, 1, 968, 1, 968, 1, 969, 1, 969, 3, 969, 17277, 8, 969, 1, 969, 1, 969, 1, 969, 1, 969, 1, 969, 1, 969, 5, 969, 17285, 8, 969, 10, 969, 12, 969, 17288, 9, 969, 1, 969, 1, 969, 3, 969, 17292, 8, 969, 3, 969, 17294, 8, 969, 1, 970, 1, 970, 1, 970, 3, 970, 17299, 8, 970, 1, 970, 1, 970, 3, 970, 17303, 8, 970, 1, 970, 1, 970, 1, 970, 1, 970, 3, 970, 17309, 8, 970, 1, 970, 1, 970, 3, 970, 17313, 8, 970, 1, 971, 1, 971, 1, 971, 1, 971, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 5, 972, 17324, 8, 972, 10, 972, 12, 972, 17327, 9, 972, 1, 972, 3, 972, 17330, 8, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 5, 972, 17338, 8, 972, 10, 972, 12, 972, 17341, 9, 972, 3, 972, 17343, 8, 972, 3, 972, 17345, 8, 972, 1, 973, 1, 973, 1, 973, 3, 973, 17350, 8, 973, 1, 974, 1, 974, 1, 974, 1, 974, 1, 974, 5, 974, 17357, 8, 974, 10, 974, 12, 974, 17360, 9, 974, 1, 974, 1, 974, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 5, 975, 17370, 8, 975, 10, 975, 12, 975, 17373, 9, 975, 1, 975, 1, 975, 1, 976, 1, 976, 1, 976, 3, 976, 17380, 8, 976, 1, 976, 1, 976, 3, 976, 17384, 8, 976, 1, 977, 1, 977, 1, 977, 1, 978, 1, 978, 5, 978, 17391, 8, 978, 10, 978, 12, 978, 17394, 9, 978, 1, 978, 3, 978, 17397, 8, 978, 1, 978, 5, 978, 17400, 8, 978, 10, 978, 12, 978, 17403, 9, 978, 1, 978, 1, 978, 1, 979, 1, 979, 1, 979, 1, 979, 1, 979, 1, 979, 3, 979, 17413, 8, 979, 3, 979, 17415, 8, 979, 1, 980, 1, 980, 1, 980, 1, 980, 1, 981, 1, 981, 1, 981, 1, 981, 1, 981, 1, 981, 1, 981, 1, 981, 5, 981, 17429, 8, 981, 10, 981, 12, 981, 17432, 9, 981, 1, 982, 1, 982, 3, 982, 17436, 8, 982, 1, 982, 1, 982, 5, 982, 17440, 8, 982, 10, 982, 12, 982, 17443, 9, 982, 1, 982, 1, 982, 1, 983, 3, 983, 17448, 8, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 983, 1, 984, 1, 984, 1, 984, 1, 984, 1, 985, 1, 985, 1, 985, 1, 985, 5, 985, 17464, 8, 985, 10, 985, 12, 985, 17467, 9, 985, 1, 985, 1, 985, 1, 986, 1, 986, 3, 986, 17473, 8, 986, 1, 986, 3, 986, 17476, 8, 986, 1, 987, 3, 987, 17479, 8, 987, 1, 987, 1, 987, 1, 987, 1, 987, 5, 987, 17485, 8, 987, 10, 987, 12, 987, 17488, 9, 987, 3, 987, 17490, 8, 987, 1, 987, 1, 987, 1, 988, 1, 988, 1, 988, 1, 988, 3, 988, 17498, 8, 988, 3, 988, 17500, 8, 988, 1, 988, 1, 988, 3, 988, 17504, 8, 988, 1, 988, 3, 988, 17507, 8, 988, 1, 989, 1, 989, 1, 989, 3, 989, 17512, 8, 989, 3, 989, 17514, 8, 989, 1, 989, 1, 989, 3, 989, 17518, 8, 989, 1, 989, 1, 989, 1, 989, 1, 990, 1, 990, 1, 991, 1, 991, 1, 991, 1, 991, 1, 991, 3, 991, 17530, 8, 991, 1, 992, 1, 992, 1, 992, 1, 992, 1, 992, 1, 993, 1, 993, 3, 993, 17539, 8, 993, 1, 993, 1, 993, 1, 993, 1, 993, 5, 993, 17545, 8, 993, 10, 993, 12, 993, 17548, 9, 993, 1, 994, 1, 994, 3, 994, 17552, 8, 994, 1, 994, 1, 994, 3, 994, 17556, 8, 994, 1, 995, 1, 995, 1, 995, 1, 995, 1, 996, 1, 996, 1, 996, 1, 996, 3, 996, 17566, 8, 996, 3, 996, 17568, 8, 996, 1, 996, 1, 996, 1, 996, 1, 996, 3, 996, 17574, 8, 996, 1, 997, 1, 997, 1, 997, 3, 997, 17579, 8, 997, 1, 997, 3, 997, 17582, 8, 997, 1, 998, 1, 998, 1, 998, 1, 999, 1, 999, 1, 999, 1, 999, 1, 999, 3, 999, 17592, 8, 999, 1, 1000, 1, 1000, 1, 1000, 1, 1000, 3, 1000, 17598, 8, 1000, 1, 1000, 3, 1000, 17601, 8, 1000, 1, 1000, 3, 1000, 17604, 8, 1000, 1, 1001, 1, 1001, 1, 1001, 1, 1001, 5, 1001, 17610, 8, 1001, 10, 1001, 12, 1001, 17613, 9, 1001, 1, 1001, 1, 1001, 1, 1001, 1, 1001, 1, 1001, 1, 1001, 1, 1001, 3, 1001, 17622, 8, 1001, 1, 1002, 1, 1002, 1, 1002, 1, 1002, 1, 1002, 1, 1002, 1, 1002, 1, 1002, 3, 1002, 17632, 8, 1002, 1, 1003, 1, 1003, 3, 1003, 17636, 8, 1003, 1, 1003, 1, 1003, 3, 1003, 17640, 8, 1003, 1, 1003, 3, 1003, 17643, 8, 1003, 1, 1003, 3, 1003, 17646, 8, 1003, 1, 1004, 1, 1004, 1, 1004, 3, 1004, 17651, 8, 1004, 1, 1005, 1, 1005, 1, 1005, 3, 1005, 17656, 8, 1005, 1, 1005, 3, 1005, 17659, 8, 1005, 1, 1005, 3, 1005, 17662, 8, 1005, 1, 1006, 1, 1006, 4, 1006, 17666, 8, 1006, 11, 1006, 12, 1006, 17667, 1, 1006, 3, 1006, 17671, 8, 1006, 1, 1006, 1, 1006, 1, 1007, 1, 1007, 3, 1007, 17677, 8, 1007, 1, 1007, 3, 1007, 17680, 8, 1007, 1, 1008, 3, 1008, 17683, 8, 1008, 1, 1008, 4, 1008, 17686, 8, 1008, 11, 1008, 12, 1008, 17687, 1, 1008, 3, 1008, 17691, 8, 1008, 1, 1009, 1, 1009, 1, 1009, 1, 1009, 4, 1009, 17697, 8, 1009, 11, 1009, 12, 1009, 17698, 1, 1010, 1, 1010, 4, 1010, 17703, 8, 1010, 11, 1010, 12, 1010, 17704, 1, 1011, 1, 1011, 1, 1011, 3, 1011, 17710, 8, 1011, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 1, 1012, 3, 1012, 17719, 8, 1012, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 3, 1013, 17725, 8, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 1, 1013, 3, 1013, 17735, 8, 1013, 1, 1013, 1, 1013, 3, 1013, 17739, 8, 1013, 3, 1013, 17741, 8, 1013, 1, 1013, 3, 1013, 17744, 8, 1013, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 1, 1014, 5, 1014, 17754, 8, 1014, 10, 1014, 12, 1014, 17757, 9, 1014, 1, 1014, 3, 1014, 17760, 8, 1014, 1, 1014, 3, 1014, 17763, 8, 1014, 1, 1015, 1, 1015, 1, 1015, 1, 1015, 1, 1016, 1, 1016, 1, 1016, 1, 1017, 1, 1017, 1, 1017, 1, 1017, 1, 1017, 1, 1017, 3, 1017, 17778, 8, 1017, 1, 1017, 1, 1017, 3, 1017, 17782, 8, 1017, 1, 1018, 1, 1018, 1, 1018, 1, 1018, 1, 1018, 1, 1018, 1, 1018, 1, 1018, 1, 1018, 1, 1018, 3, 1018, 17794, 8, 1018, 1, 1018, 3, 1018, 17797, 8, 1018, 1, 1019, 1, 1019, 1, 1019, 1, 1019, 1, 1019, 5, 1019, 17804, 8, 1019, 10, 1019, 12, 1019, 17807, 9, 1019, 1, 1019, 1, 1019, 1, 1019, 1, 1019, 3, 1019, 17813, 8, 1019, 1, 1020, 1, 1020, 1, 1020, 3, 1020, 17818, 8, 1020, 1, 1021, 1, 1021, 3, 1021, 17822, 8, 1021, 1, 1022, 1, 1022, 1, 1022, 1, 1022, 1, 1022, 1, 1022, 3, 1022, 17830, 8, 1022, 1, 1022, 1, 1022, 1, 1022, 1, 1022, 3, 1022, 17836, 8, 1022, 1, 1023, 1, 1023, 1, 1023, 1, 1023, 1, 1023, 1, 1023, 3, 1023, 17844, 8, 1023, 1, 1023, 3, 1023, 17847, 8, 1023, 1, 1024, 1, 1024, 1, 1024, 1, 1024, 1, 1025, 1, 1025, 1, 1025, 3, 1025, 17856, 8, 1025, 1, 1025, 3, 1025, 17859, 8, 1025, 1, 1025, 3, 1025, 17862, 8, 1025, 1, 1026, 1, 1026, 1, 1026, 1, 1027, 1, 1027, 1, 1027, 1, 1027, 3, 1027, 17871, 8, 1027, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 3, 1028, 17877, 8, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 3, 1028, 17883, 8, 1028, 1, 1028, 3, 1028, 17886, 8, 1028, 1, 1028, 1, 1028, 1, 1028, 3, 1028, 17891, 8, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 3, 1028, 17897, 8, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 1, 1028, 3, 1028, 17909, 8, 1028, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 1, 1029, 3, 1029, 17920, 8, 1029, 3, 1029, 17922, 8, 1029, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 1, 1030, 3, 1030, 17931, 8, 1030, 3, 1030, 17933, 8, 1030, 1, 1031, 1, 1031, 3, 1031, 17937, 8, 1031, 1, 1031, 1, 1031, 1, 1031, 1, 1031, 3, 1031, 17943, 8, 1031, 1, 1031, 1, 1031, 3, 1031, 17947, 8, 1031, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1032, 1, 1033, 1, 1033, 1, 1033, 1, 1033, 1, 1033, 1, 1033, 3, 1033, 17960, 8, 1033, 1, 1034, 1, 1034, 1, 1034, 5, 1034, 17965, 8, 1034, 10, 1034, 12, 1034, 17968, 9, 1034, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 1, 1035, 3, 1035, 17979, 8, 1035, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1036, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 1, 1037, 5, 1037, 17995, 8, 1037, 10, 1037, 12, 1037, 17998, 9, 1037, 1, 1038, 3, 1038, 18001, 8, 1038, 1, 1038, 1, 1038, 3, 1038, 18005, 8, 1038, 1, 1039, 1, 1039, 3, 1039, 18009, 8, 1039, 1, 1039, 1, 1039, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 3, 1040, 18022, 8, 1040, 1, 1040, 1, 1040, 3, 1040, 18026, 8, 1040, 1, 1040, 1, 1040, 1, 1040, 5, 1040, 18031, 8, 1040, 10, 1040, 12, 1040, 18034, 9, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 1, 1040, 3, 1040, 18041, 8, 1040, 1, 1040, 3, 1040, 18044, 8, 1040, 1, 1040, 1, 1040, 1, 1040, 3, 1040, 18049, 8, 1040, 3, 1040, 18051, 8, 1040, 1, 1041, 1, 1041, 1, 1041, 3, 1041, 18056, 8, 1041, 1, 1041, 1, 1041, 3, 1041, 18060, 8, 1041, 1, 1041, 3, 1041, 18063, 8, 1041, 1, 1041, 1, 1041, 1, 1041, 1, 1041, 3, 1041, 18069, 8, 1041, 1, 1041, 5, 1041, 18072, 8, 1041, 10, 1041, 12, 1041, 18075, 9, 1041, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 1, 1042, 3, 1042, 18086, 8, 1042, 1, 1042, 1, 1042, 5, 1042, 18090, 8, 1042, 10, 1042, 12, 1042, 18093, 9, 1042, 1, 1043, 1, 1043, 3, 1043, 18097, 8, 1043, 1, 1043, 1, 1043, 1, 1043, 1, 1043, 1, 1043, 1, 1043, 1, 1043, 1, 1043, 3, 1043, 18107, 8, 1043, 3, 1043, 18109, 8, 1043, 3, 1043, 18111, 8, 1043, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 1, 1044, 3, 1044, 18121, 8, 1044, 1, 1044, 1, 1044, 3, 1044, 18125, 8, 1044, 3, 1044, 18127, 8, 1044, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 5, 1045, 18137, 8, 1045, 10, 1045, 12, 1045, 18140, 9, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 1, 1045, 3, 1045, 18147, 8, 1045, 1, 1046, 1, 1046, 1, 1046, 1, 1046, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 3, 1047, 18160, 8, 1047, 1, 1047, 3, 1047, 18163, 8, 1047, 1, 1047, 1, 1047, 1, 1047, 3, 1047, 18168, 8, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 1, 1047, 5, 1047, 18186, 8, 1047, 10, 1047, 12, 1047, 18189, 9, 1047, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 3, 1048, 18196, 8, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 3, 1048, 18204, 8, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 3, 1048, 18211, 8, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 1, 1048, 3, 1048, 18218, 8, 1048, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 1, 1049, 3, 1049, 18225, 8, 1049, 1, 1050, 1, 1050, 3, 1050, 18229, 8, 1050, 1, 1050, 1, 1050, 1, 1050, 3, 1050, 18234, 8, 1050, 5, 1050, 18236, 8, 1050, 10, 1050, 12, 1050, 18239, 9, 1050, 1, 1050, 1, 1050, 1, 1050, 5, 1050, 18244, 8, 1050, 10, 1050, 12, 1050, 18247, 9, 1050, 1, 1050, 3, 1050, 18250, 8, 1050, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 3, 1051, 18257, 8, 1051, 1, 1051, 1, 1051, 1, 1051, 3, 1051, 18262, 8, 1051, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 1, 1051, 3, 1051, 18271, 8, 1051, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 1, 1052, 3, 1052, 18280, 8, 1052, 1, 1052, 3, 1052, 18283, 8, 1052, 1, 1052, 1, 1052, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 3, 1053, 18305, 8, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 1, 1053, 3, 1053, 18315, 8, 1053, 5, 1053, 18317, 8, 1053, 10, 1053, 12, 1053, 18320, 9, 1053, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 1, 1054, 3, 1054, 18337, 8, 1054, 3, 1054, 18339, 8, 1054, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 1, 1055, 5, 1055, 18347, 8, 1055, 10, 1055, 12, 1055, 18350, 9, 1055, 1, 1056, 1, 1056, 3, 1056, 18354, 8, 1056, 1, 1057, 3, 1057, 18357, 8, 1057, 1, 1057, 1, 1057, 1, 1057, 4, 1057, 18362, 8, 1057, 11, 1057, 12, 1057, 18363, 1, 1057, 3, 1057, 18367, 8, 1057, 1, 1057, 1, 1057, 3, 1057, 18371, 8, 1057, 1, 1057, 3, 1057, 18374, 8, 1057, 1, 1058, 3, 1058, 18377, 8, 1058, 1, 1058, 1, 1058, 4, 1058, 18381, 8, 1058, 11, 1058, 12, 1058, 18382, 1, 1058, 3, 1058, 18386, 8, 1058, 1, 1058, 1, 1058, 3, 1058, 18390, 8, 1058, 1, 1058, 3, 1058, 18393, 8, 1058, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1059, 1, 1060, 1, 1060, 1, 1060, 1, 1061, 1, 1061, 3, 1061, 18405, 8, 1061, 1, 1062, 1, 1062, 1, 1062, 4, 1062, 18410, 8, 1062, 11, 1062, 12, 1062, 18411, 1, 1062, 3, 1062, 18415, 8, 1062, 1, 1062, 1, 1062, 3, 1062, 18419, 8, 1062, 1, 1063, 1, 1063, 4, 1063, 18423, 8, 1063, 11, 1063, 12, 1063, 18424, 1, 1063, 3, 1063, 18428, 8, 1063, 1, 1063, 1, 1063, 3, 1063, 18432, 8, 1063, 1, 1064, 1, 1064, 1, 1064, 1, 1064, 1, 1064, 1, 1065, 1, 1065, 1, 1065, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 3, 1066, 18447, 8, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 5, 1066, 18453, 8, 1066, 10, 1066, 12, 1066, 18456, 9, 1066, 1, 1066, 1, 1066, 1, 1066, 1, 1066, 3, 1066, 18462, 8, 1066, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 1, 1067, 5, 1067, 18473, 8, 1067, 10, 1067, 12, 1067, 18476, 9, 1067, 1, 1067, 1, 1067, 3, 1067, 18480, 8, 1067, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 3, 1068, 18489, 8, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 3, 1068, 18498, 8, 1068, 1, 1068, 1, 1068, 3, 1068, 18502, 8, 1068, 1, 1068, 1, 1068, 3, 1068, 18506, 8, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 3, 1068, 18532, 8, 1068, 1, 1068, 3, 1068, 18535, 8, 1068, 1, 1068, 3, 1068, 18538, 8, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 3, 1068, 18548, 8, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 3, 1068, 18556, 8, 1068, 1, 1068, 1, 1068, 1, 1068, 1, 1068, 3, 1068, 18562, 8, 1068, 3, 1068, 18564, 8, 1068, 1, 1068, 1, 1068, 3, 1068, 18568, 8, 1068, 1, 1069, 1, 1069, 1, 1069, 1, 1069, 3, 1069, 18574, 8, 1069, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 5, 1070, 18581, 8, 1070, 10, 1070, 12, 1070, 18584, 9, 1070, 1, 1070, 3, 1070, 18587, 8, 1070, 1, 1070, 3, 1070, 18590, 8, 1070, 1, 1070, 3, 1070, 18593, 8, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 3, 1070, 18602, 8, 1070, 1, 1070, 3, 1070, 18605, 8, 1070, 1, 1070, 3, 1070, 18608, 8, 1070, 1, 1070, 3, 1070, 18611, 8, 1070, 1, 1070, 3, 1070, 18614, 8, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 3, 1070, 18626, 8, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 3, 1070, 18634, 8, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 3, 1070, 18641, 8, 1070, 1, 1070, 3, 1070, 18644, 8, 1070, 1, 1070, 1, 1070, 3, 1070, 18648, 8, 1070, 3, 1070, 18650, 8, 1070, 1, 1070, 3, 1070, 18653, 8, 1070, 1, 1070, 1, 1070, 1, 1070, 3, 1070, 18658, 8, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 3, 1070, 18667, 8, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 3, 1070, 18673, 8, 1070, 1, 1070, 3, 1070, 18676, 8, 1070, 1, 1070, 3, 1070, 18679, 8, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 3, 1070, 18688, 8, 1070, 1, 1070, 3, 1070, 18691, 8, 1070, 1, 1070, 3, 1070, 18694, 8, 1070, 1, 1070, 3, 1070, 18697, 8, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 3, 1070, 18703, 8, 1070, 1, 1070, 1, 1070, 3, 1070, 18707, 8, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 5, 1070, 18717, 8, 1070, 10, 1070, 12, 1070, 18720, 9, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 3, 1070, 18729, 8, 1070, 1, 1070, 1, 1070, 3, 1070, 18733, 8, 1070, 1, 1070, 3, 1070, 18736, 8, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 3, 1070, 18742, 8, 1070, 1, 1070, 1, 1070, 3, 1070, 18746, 8, 1070, 1, 1070, 1, 1070, 1, 1070, 1, 1070, 3, 1070, 18752, 8, 1070, 1, 1070, 1, 1070, 3, 1070, 18756, 8, 1070, 1, 1070, 3, 1070, 18759, 8, 1070, 1, 1070, 3, 1070, 18762, 8, 1070, 3, 1070, 18764, 8, 1070, 1, 1071, 1, 1071, 1, 1071, 5, 1071, 18769, 8, 1071, 10, 1071, 12, 1071, 18772, 9, 1071, 1, 1071, 3, 1071, 18775, 8, 1071, 1, 1071, 3, 1071, 18778, 8, 1071, 1, 1071, 3, 1071, 18781, 8, 1071, 1, 1071, 3, 1071, 18784, 8, 1071, 1, 1071, 1, 1071, 1, 1071, 3, 1071, 18789, 8, 1071, 1, 1072, 3, 1072, 18792, 8, 1072, 1, 1072, 1, 1072, 3, 1072, 18796, 8, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 1, 1072, 3, 1072, 18805, 8, 1072, 1, 1072, 1, 1072, 3, 1072, 18809, 8, 1072, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 1, 1073, 3, 1073, 18816, 8, 1073, 1, 1073, 1, 1073, 3, 1073, 18820, 8, 1073, 1, 1073, 1, 1073, 1, 1073, 3, 1073, 18825, 8, 1073, 1, 1073, 1, 1073, 1, 1073, 3, 1073, 18830, 8, 1073, 1, 1073, 3, 1073, 18833, 8, 1073, 1, 1073, 1, 1073, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 1, 1074, 3, 1074, 18842, 8, 1074, 1, 1074, 1, 1074, 3, 1074, 18846, 8, 1074, 1, 1075, 1, 1075, 1, 1075, 1, 1075, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 1, 1076, 3, 1076, 18857, 8, 1076, 1, 1076, 3, 1076, 18860, 8, 1076, 1, 1076, 1, 1076, 3, 1076, 18864, 8, 1076, 1, 1077, 1, 1077, 1, 1077, 3, 1077, 18869, 8, 1077, 1, 1077, 1, 1077, 3, 1077, 18873, 8, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 3, 1077, 18882, 8, 1077, 1, 1077, 3, 1077, 18885, 8, 1077, 1, 1077, 1, 1077, 3, 1077, 18889, 8, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 3, 1077, 18898, 8, 1077, 1, 1077, 3, 1077, 18901, 8, 1077, 1, 1077, 1, 1077, 3, 1077, 18905, 8, 1077, 1, 1077, 1, 1077, 1, 1077, 3, 1077, 18910, 8, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 3, 1077, 18919, 8, 1077, 1, 1077, 3, 1077, 18922, 8, 1077, 1, 1077, 1, 1077, 3, 1077, 18926, 8, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 1, 1077, 3, 1077, 18934, 8, 1077, 1, 1077, 1, 1077, 1, 1077, 3, 1077, 18939, 8, 1077, 1, 1077, 1, 1077, 1, 1077, 3, 1077, 18944, 8, 1077, 1, 1077, 3, 1077, 18947, 8, 1077, 1, 1077, 1, 1077, 3, 1077, 18951, 8, 1077, 3, 1077, 18953, 8, 1077, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 1, 1078, 5, 1078, 18960, 8, 1078, 10, 1078, 12, 1078, 18963, 9, 1078, 1, 1078, 1, 1078, 1, 1079, 1, 1079, 3, 1079, 18969, 8, 1079, 1, 1079, 3, 1079, 18972, 8, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 3, 1079, 18979, 8, 1079, 3, 1079, 18981, 8, 1079, 1, 1079, 3, 1079, 18984, 8, 1079, 1, 1079, 3, 1079, 18987, 8, 1079, 1, 1079, 1, 1079, 3, 1079, 18991, 8, 1079, 1, 1079, 3, 1079, 18994, 8, 1079, 1, 1079, 1, 1079, 1, 1079, 3, 1079, 18999, 8, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 3, 1079, 19006, 8, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 3, 1079, 19012, 8, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 1, 1079, 3, 1079, 19020, 8, 1079, 1, 1080, 1, 1080, 3, 1080, 19024, 8, 1080, 1, 1080, 3, 1080, 19027, 8, 1080, 1, 1080, 3, 1080, 19030, 8, 1080, 1, 1081, 1, 1081, 1, 1081, 1, 1081, 3, 1081, 19036, 8, 1081, 1, 1081, 3, 1081, 19039, 8, 1081, 1, 1081, 1, 1081, 3, 1081, 19043, 8, 1081, 1, 1082, 1, 1082, 3, 1082, 19047, 8, 1082, 1, 1082, 1, 1082, 1, 1082, 3, 1082, 19052, 8, 1082, 1, 1082, 3, 1082, 19055, 8, 1082, 1, 1082, 3, 1082, 19058, 8, 1082, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1083, 3, 1083, 19067, 8, 1083, 1, 1083, 1, 1083, 1, 1083, 1, 1084, 1, 1084, 1, 1084, 1, 1084, 1, 1084, 1, 1084, 1, 1084, 3, 1084, 19079, 8, 1084, 1, 1084, 1, 1084, 1, 1084, 1, 1085, 1, 1085, 3, 1085, 19086, 8, 1085, 1, 1085, 3, 1085, 19089, 8, 1085, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 3, 1086, 19095, 8, 1086, 1, 1086, 3, 1086, 19098, 8, 1086, 1, 1086, 3, 1086, 19101, 8, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 3, 1086, 19110, 8, 1086, 1, 1086, 3, 1086, 19113, 8, 1086, 1, 1086, 1, 1086, 1, 1086, 3, 1086, 19118, 8, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 1, 1086, 3, 1086, 19125, 8, 1086, 3, 1086, 19127, 8, 1086, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 1, 1087, 3, 1087, 19140, 8, 1087, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 1, 1088, 3, 1088, 19147, 8, 1088, 1, 1089, 1, 1089, 1, 1089, 3, 1089, 19152, 8, 1089, 1, 1090, 1, 1090, 1, 1090, 3, 1090, 19157, 8, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 3, 1090, 19166, 8, 1090, 1, 1090, 3, 1090, 19169, 8, 1090, 3, 1090, 19171, 8, 1090, 1, 1090, 1, 1090, 3, 1090, 19175, 8, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 3, 1090, 19182, 8, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 3, 1090, 19189, 8, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 3, 1090, 19197, 8, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 1, 1090, 3, 1090, 19212, 8, 1090, 1, 1091, 1, 1091, 1, 1091, 1, 1091, 3, 1091, 19218, 8, 1091, 1, 1091, 1, 1091, 3, 1091, 19222, 8, 1091, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19227, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19232, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19238, 8, 1092, 1, 1092, 3, 1092, 19241, 8, 1092, 1, 1092, 1, 1092, 3, 1092, 19245, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19255, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19265, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19271, 8, 1092, 3, 1092, 19273, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19283, 8, 1092, 3, 1092, 19285, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19292, 8, 1092, 1, 1092, 1, 1092, 3, 1092, 19296, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 4, 1092, 19303, 8, 1092, 11, 1092, 12, 1092, 19304, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19310, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19315, 8, 1092, 1, 1092, 3, 1092, 19318, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19327, 8, 1092, 1, 1092, 3, 1092, 19330, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19339, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19353, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19360, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19368, 8, 1092, 1, 1092, 3, 1092, 19371, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19384, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19390, 8, 1092, 3, 1092, 19392, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19405, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19414, 8, 1092, 1, 1092, 1, 1092, 5, 1092, 19418, 8, 1092, 10, 1092, 12, 1092, 19421, 9, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19430, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 5, 1092, 19436, 8, 1092, 10, 1092, 12, 1092, 19439, 9, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19444, 8, 1092, 1, 1092, 3, 1092, 19447, 8, 1092, 1, 1092, 3, 1092, 19450, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19464, 8, 1092, 3, 1092, 19466, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19474, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 5, 1092, 19479, 8, 1092, 10, 1092, 12, 1092, 19482, 9, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 5, 1092, 19489, 8, 1092, 10, 1092, 12, 1092, 19492, 9, 1092, 1, 1092, 1, 1092, 1, 1092, 5, 1092, 19497, 8, 1092, 10, 1092, 12, 1092, 19500, 9, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19505, 8, 1092, 1, 1092, 3, 1092, 19508, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19513, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19518, 8, 1092, 5, 1092, 19520, 8, 1092, 10, 1092, 12, 1092, 19523, 9, 1092, 1, 1092, 1, 1092, 1, 1092, 5, 1092, 19528, 8, 1092, 10, 1092, 12, 1092, 19531, 9, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19537, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19546, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 5, 1092, 19551, 8, 1092, 10, 1092, 12, 1092, 19554, 9, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19562, 8, 1092, 1, 1092, 1, 1092, 3, 1092, 19566, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 5, 1092, 19571, 8, 1092, 10, 1092, 12, 1092, 19574, 9, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19580, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19587, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 5, 1092, 19592, 8, 1092, 10, 1092, 12, 1092, 19595, 9, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19602, 8, 1092, 1, 1092, 1, 1092, 3, 1092, 19606, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 5, 1092, 19611, 8, 1092, 10, 1092, 12, 1092, 19614, 9, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19622, 8, 1092, 1, 1092, 3, 1092, 19625, 8, 1092, 1, 1092, 3, 1092, 19628, 8, 1092, 1, 1092, 3, 1092, 19631, 8, 1092, 1, 1092, 1, 1092, 3, 1092, 19635, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19640, 8, 1092, 1, 1092, 1, 1092, 1, 1092, 3, 1092, 19645, 8, 1092, 1, 1093, 1, 1093, 1, 1094, 1, 1094, 1, 1095, 1, 1095, 1, 1096, 1, 1096, 1, 1096, 3, 1096, 19656, 8, 1096, 1, 1096, 1, 1096, 3, 1096, 19660, 8, 1096, 3, 1096, 19662, 8, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 1, 1096, 3, 1096, 19673, 8, 1096, 3, 1096, 19675, 8, 1096, 1, 1096, 1, 1096, 1, 1097, 1, 1097, 1, 1097, 1, 1097, 1, 1097, 1, 1097, 1, 1097, 3, 1097, 19686, 8, 1097, 1, 1098, 1, 1098, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 1, 1099, 3, 1099, 19697, 8, 1099, 1, 1100, 1, 1100, 1, 1100, 1, 1100, 1, 1100, 5, 1100, 19704, 8, 1100, 10, 1100, 12, 1100, 19707, 9, 1100, 3, 1100, 19709, 8, 1100, 1, 1101, 1, 1101, 3, 1101, 19713, 8, 1101, 1, 1101, 3, 1101, 19716, 8, 1101, 1, 1101, 1, 1101, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 1, 1102, 5, 1102, 19725, 8, 1102, 10, 1102, 12, 1102, 19728, 9, 1102, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 1, 1103, 3, 1103, 19737, 8, 1103, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 3, 1104, 19747, 8, 1104, 1, 1104, 1, 1104, 1, 1104, 1, 1104, 5, 1104, 19753, 8, 1104, 10, 1104, 12, 1104, 19756, 9, 1104, 1, 1105, 1, 1105, 1, 1105, 3, 1105, 19761, 8, 1105, 1, 1105, 1, 1105, 1, 1105, 1, 1105, 5, 1105, 19767, 8, 1105, 10, 1105, 12, 1105, 19770, 9, 1105, 1, 1105, 1, 1105, 1, 1105, 1, 1105, 3, 1105, 19776, 8, 1105, 1, 1105, 1, 1105, 3, 1105, 19780, 8, 1105, 1, 1106, 1, 1106, 1, 1106, 3, 1106, 19785, 8, 1106, 1, 1106, 1, 1106, 3, 1106, 19789, 8, 1106, 1, 1106, 1, 1106, 1, 1106, 3, 1106, 19794, 8, 1106, 5, 1106, 19796, 8, 1106, 10, 1106, 12, 1106, 19799, 9, 1106, 1, 1107, 1, 1107, 1, 1107, 3, 1107, 19804, 8, 1107, 1, 1107, 3, 1107, 19807, 8, 1107, 1, 1107, 1, 1107, 1, 1107, 5, 1107, 19812, 8, 1107, 10, 1107, 12, 1107, 19815, 9, 1107, 1, 1107, 1, 1107, 1, 1108, 1, 1108, 1, 1108, 1, 1108, 1, 1108, 3, 1108, 19824, 8, 1108, 1, 1108, 1, 1108, 1, 1108, 1, 1108, 5, 1108, 19830, 8, 1108, 10, 1108, 12, 1108, 19833, 9, 1108, 1, 1108, 3, 1108, 19836, 8, 1108, 1, 1108, 1, 1108, 1, 1109, 1, 1109, 1, 1109, 1, 1109, 1, 1109, 1, 1109, 3, 1109, 19846, 8, 1109, 1, 1109, 3, 1109, 19849, 8, 1109, 3, 1109, 19851, 8, 1109, 1, 1110, 1, 1110, 1, 1110, 1, 1111, 1, 1111, 3, 1111, 19858, 8, 1111, 1, 1111, 1, 1111, 1, 1111, 1, 1111, 3, 1111, 19864, 8, 1111, 1, 1112, 1, 1112, 1, 1112, 1, 1112, 3, 1112, 19870, 8, 1112, 1, 1113, 1, 1113, 1, 1113, 1, 1113, 3, 1113, 19876, 8, 1113, 3, 1113, 19878, 8, 1113, 1, 1114, 1, 1114, 1, 1114, 1, 1115, 1, 1115, 1, 1115, 1, 1116, 1, 1116, 1, 1116, 1, 1116, 1, 1116, 1, 1116, 3, 1116, 19892, 8, 1116, 3, 1116, 19894, 8, 1116, 1, 1117, 1, 1117, 1, 1117, 1, 1117, 1, 1117, 1, 1118, 1, 1118, 1, 1118, 1, 1118, 1, 1118, 1, 1118, 3, 1118, 19907, 8, 1118, 1, 1118, 1, 1118, 1, 1118, 3, 1118, 19912, 8, 1118, 1, 1118, 3, 1118, 19915, 8, 1118, 1, 1118, 1, 1118, 1, 1118, 5, 1118, 19920, 8, 1118, 10, 1118, 12, 1118, 19923, 9, 1118, 1, 1119, 1, 1119, 3, 1119, 19927, 8, 1119, 1, 1120, 1, 1120, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 1, 1121, 3, 1121, 19940, 8, 1121, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1122, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 1, 1123, 3, 1123, 19955, 8, 1123, 1, 1123, 3, 1123, 19958, 8, 1123, 1, 1123, 1, 1123, 3, 1123, 19962, 8, 1123, 3, 1123, 19964, 8, 1123, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 4, 1124, 19970, 8, 1124, 11, 1124, 12, 1124, 19971, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 1, 1124, 3, 1124, 19980, 8, 1124, 3, 1124, 19982, 8, 1124, 1, 1125, 1, 1125, 1, 1125, 5, 1125, 19987, 8, 1125, 10, 1125, 12, 1125, 19990, 9, 1125, 1, 1125, 1, 1125, 3, 1125, 19994, 8, 1125, 1, 1126, 1, 1126, 3, 1126, 19998, 8, 1126, 1, 1126, 1, 1126, 3, 1126, 20002, 8, 1126, 1, 1127, 1, 1127, 3, 1127, 20006, 8, 1127, 1, 1127, 1, 1127, 3, 1127, 20010, 8, 1127, 1, 1127, 1, 1127, 1, 1128, 3, 1128, 20015, 8, 1128, 1, 1128, 1, 1128, 3, 1128, 20019, 8, 1128, 1, 1128, 3, 1128, 20022, 8, 1128, 1, 1129, 1, 1129, 3, 1129, 20026, 8, 1129, 1, 1130, 1, 1130, 1, 1130, 1, 1130, 1, 1130, 3, 1130, 20033, 8, 1130, 1, 1131, 1, 1131, 3, 1131, 20037, 8, 1131, 1, 1131, 1, 1131, 1, 1131, 3, 1131, 20042, 8, 1131, 1, 1131, 1, 1131, 1, 1131, 3, 1131, 20047, 8, 1131, 5, 1131, 20049, 8, 1131, 10, 1131, 12, 1131, 20052, 9, 1131, 1, 1132, 1, 1132, 3, 1132, 20056, 8, 1132, 1, 1133, 1, 1133, 1, 1134, 1, 1134, 1, 1135, 1, 1135, 1, 1136, 1, 1136, 1, 1137, 1, 1137, 1, 1138, 1, 1138, 1, 1138, 5, 1138, 20071, 8, 1138, 10, 1138, 12, 1138, 20074, 9, 1138, 1, 1138, 1, 1138, 3, 1138, 20078, 8, 1138, 1, 1139, 1, 1139, 1, 1140, 1, 1140, 1, 1140, 3, 1140, 20085, 8, 1140, 1, 1141, 1, 1141, 1, 1142, 1, 1142, 1, 1143, 1, 1143, 1, 1144, 1, 1144, 1, 1144, 3, 1144, 20096, 8, 1144, 1, 1145, 1, 1145, 1, 1145, 5, 1145, 20101, 8, 1145, 10, 1145, 12, 1145, 20104, 9, 1145, 1, 1146, 1, 1146, 1, 1147, 1, 1147, 3, 1147, 20110, 8, 1147, 1, 1148, 1, 1148, 3, 1148, 20114, 8, 1148, 1, 1149, 1, 1149, 1, 1149, 5, 1149, 20119, 8, 1149, 10, 1149, 12, 1149, 20122, 9, 1149, 1, 1149, 1, 1149, 3, 1149, 20126, 8, 1149, 1, 1150, 1, 1150, 1, 1151, 1, 1151, 1, 1151, 5, 1151, 20133, 8, 1151, 10, 1151, 12, 1151, 20136, 9, 1151, 1, 1152, 1, 1152, 1, 1152, 5, 1152, 20141, 8, 1152, 10, 1152, 12, 1152, 20144, 9, 1152, 1, 1153, 1, 1153, 1, 1153, 5, 1153, 20149, 8, 1153, 10, 1153, 12, 1153, 20152, 9, 1153, 1, 1154, 1, 1154, 1, 1154, 3, 1154, 20157, 8, 1154, 1, 1155, 1, 1155, 1, 1155, 3, 1155, 20162, 8, 1155, 1, 1156, 1, 1156, 1, 1156, 3, 1156, 20167, 8, 1156, 1, 1157, 1, 1157, 3, 1157, 20171, 8, 1157, 1, 1157, 1, 1157, 1, 1157, 3, 1157, 20176, 8, 1157, 1, 1157, 3, 1157, 20179, 8, 1157, 1, 1158, 1, 1158, 1, 1158, 3, 1158, 20184, 8, 1158, 1, 1159, 1, 1159, 3, 1159, 20188, 8, 1159, 1, 1160, 1, 1160, 3, 1160, 20192, 8, 1160, 1, 1161, 1, 1161, 1, 1161, 5, 1161, 20197, 8, 1161, 10, 1161, 12, 1161, 20200, 9, 1161, 1, 1161, 1, 1161, 3, 1161, 20204, 8, 1161, 1, 1162, 1, 1162, 1, 1163, 1, 1163, 1, 1164, 1, 1164, 1, 1164, 5, 1164, 20213, 8, 1164, 10, 1164, 12, 1164, 20216, 9, 1164, 1, 1165, 1, 1165, 1, 1165, 3, 1165, 20221, 8, 1165, 1, 1165, 1, 1165, 1, 1165, 3, 1165, 20226, 8, 1165, 1, 1165, 1, 1165, 3, 1165, 20230, 8, 1165, 3, 1165, 20232, 8, 1165, 1, 1166, 1, 1166, 1, 1166, 1, 1166, 1, 1166, 3, 1166, 20239, 8, 1166, 1, 1166, 1, 1166, 3, 1166, 20243, 8, 1166, 1, 1166, 1, 1166, 1, 1166, 1, 1166, 5, 1166, 20249, 8, 1166, 10, 1166, 12, 1166, 20252, 9, 1166, 3, 1166, 20254, 8, 1166, 1, 1166, 1, 1166, 1, 1166, 3, 1166, 20259, 8, 1166, 1, 1167, 1, 1167, 1, 1167, 5, 1167, 20264, 8, 1167, 10, 1167, 12, 1167, 20267, 9, 1167, 1, 1168, 1, 1168, 1, 1169, 1, 1169, 1, 1170, 1, 1170, 1, 1171, 1, 1171, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 5, 1172, 20282, 8, 1172, 10, 1172, 12, 1172, 20285, 9, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 1, 1172, 3, 1172, 20301, 8, 1172, 1, 1173, 1, 1173, 1, 1173, 5, 1173, 20306, 8, 1173, 10, 1173, 12, 1173, 20309, 9, 1173, 1, 1174, 1, 1174, 1, 1174, 1, 1174, 1, 1175, 1, 1175, 1, 1175, 1, 1175, 1, 1175, 1, 1175, 3, 1175, 20321, 8, 1175, 1, 1175, 1, 1175, 3, 1175, 20325, 8, 1175, 1, 1176, 1, 1176, 1, 1176, 1, 1176, 5, 1176, 20331, 8, 1176, 10, 1176, 12, 1176, 20334, 9, 1176, 3, 1176, 20336, 8, 1176, 1, 1176, 1, 1176, 3, 1176, 20340, 8, 1176, 1, 1177, 1, 1177, 1, 1177, 3, 1177, 20345, 8, 1177, 1, 1177, 1, 1177, 1, 1177, 3, 1177, 20350, 8, 1177, 5, 1177, 20352, 8, 1177, 10, 1177, 12, 1177, 20355, 9, 1177, 3, 1177, 20357, 8, 1177, 1, 1177, 1, 1177, 3, 1177, 20361, 8, 1177, 1, 1178, 1, 1178, 1, 1178, 1, 1178, 1, 1178, 3, 1178, 20368, 8, 1178, 1, 1178, 1, 1178, 1, 1178, 3, 1178, 20373, 8, 1178, 3, 1178, 20375, 8, 1178, 3, 1178, 20377, 8, 1178, 1, 1178, 1, 1178, 1, 1178, 1, 1178, 1, 1178, 1, 1178, 1, 1178, 1, 1178, 3, 1178, 20387, 8, 1178, 1, 1178, 1, 1178, 1, 1178, 3, 1178, 20392, 8, 1178, 5, 1178, 20394, 8, 1178, 10, 1178, 12, 1178, 20397, 9, 1178, 3, 1178, 20399, 8, 1178, 1, 1178, 1, 1178, 3, 1178, 20403, 8, 1178, 1, 1179, 1, 1179, 1, 1179, 1, 1180, 1, 1180, 1, 1180, 1, 1180, 3, 1180, 20412, 8, 1180, 1, 1180, 1, 1180, 1, 1181, 1, 1181, 3, 1181, 20418, 8, 1181, 1, 1181, 1, 1181, 3, 1181, 20422, 8, 1181, 3, 1181, 20424, 8, 1181, 1, 1182, 1, 1182, 3, 1182, 20428, 8, 1182, 1, 1182, 1, 1182, 3, 1182, 20432, 8, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 3, 1182, 20439, 8, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 3, 1182, 20447, 8, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 1, 1182, 3, 1182, 20455, 8, 1182, 3, 1182, 20457, 8, 1182, 1, 1183, 1, 1183, 1, 1183, 3, 1183, 20462, 8, 1183, 1, 1183, 1, 1183, 1, 1183, 3, 1183, 20467, 8, 1183, 3, 1183, 20469, 8, 1183, 1, 1183, 3, 1183, 20472, 8, 1183, 1, 1183, 1, 1183, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 3, 1184, 20496, 8, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 3, 1184, 20503, 8, 1184, 1, 1184, 1, 1184, 1, 1184, 3, 1184, 20508, 8, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 1, 1184, 3, 1184, 20541, 8, 1184, 1, 1185, 1, 1185, 1, 1185, 3, 1185, 20546, 8, 1185, 1, 1185, 3, 1185, 20549, 8, 1185, 1, 1185, 1, 1185, 1, 1185, 3, 1185, 20554, 8, 1185, 3, 1185, 20556, 8, 1185, 1, 1185, 1, 1185, 5, 1185, 20560, 8, 1185, 10, 1185, 12, 1185, 20563, 9, 1185, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 1, 1186, 3, 1186, 20571, 8, 1186, 1, 1186, 1, 1186, 1, 1186, 4, 1186, 20576, 8, 1186, 11, 1186, 12, 1186, 20577, 5, 1186, 20580, 8, 1186, 10, 1186, 12, 1186, 20583, 9, 1186, 1, 1187, 1, 1187, 3, 1187, 20587, 8, 1187, 1, 1187, 1, 1187, 1, 1187, 3, 1187, 20592, 8, 1187, 1, 1187, 5, 1187, 20595, 8, 1187, 10, 1187, 12, 1187, 20598, 9, 1187, 1, 1188, 1, 1188, 3, 1188, 20602, 8, 1188, 1, 1188, 1, 1188, 1, 1188, 5, 1188, 20607, 8, 1188, 10, 1188, 12, 1188, 20610, 9, 1188, 1, 1189, 1, 1189, 3, 1189, 20614, 8, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 1, 1189, 3, 1189, 20648, 8, 1189, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20655, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20670, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20686, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20705, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20722, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20729, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20737, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20750, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20759, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20768, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20777, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20787, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20795, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20805, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20815, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20827, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20843, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20861, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20874, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20889, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20900, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20910, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20921, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20931, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20948, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20954, 8, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 1, 1190, 3, 1190, 20976, 8, 1190, 1, 1191, 1, 1191, 1, 1191, 3, 1191, 20981, 8, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 3, 1191, 20987, 8, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 3, 1191, 20993, 8, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 3, 1191, 20999, 8, 1191, 1, 1191, 1, 1191, 1, 1191, 3, 1191, 21004, 8, 1191, 3, 1191, 21006, 8, 1191, 1, 1191, 3, 1191, 21009, 8, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 3, 1191, 21020, 8, 1191, 1, 1191, 3, 1191, 21023, 8, 1191, 3, 1191, 21025, 8, 1191, 3, 1191, 21027, 8, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 1, 1191, 3, 1191, 21041, 8, 1191, 1, 1192, 1, 1192, 3, 1192, 21045, 8, 1192, 1, 1192, 3, 1192, 21048, 8, 1192, 1, 1193, 1, 1193, 1, 1193, 1, 1194, 1, 1194, 1, 1195, 1, 1195, 3, 1195, 21057, 8, 1195, 1, 1195, 1, 1195, 1, 1196, 1, 1196, 3, 1196, 21063, 8, 1196, 1, 1197, 1, 1197, 1, 1198, 1, 1198, 1, 1198, 1, 1198, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 1, 1199, 3, 1199, 21181, 8, 1199, 1, 1200, 1, 1200, 1, 1201, 1, 1201, 1, 1202, 1, 1202, 1, 1202, 1, 3822, 8, 1244, 2074, 2082, 2084, 2094, 2106, 2208, 2372, 1203, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, 492, 494, 496, 498, 500, 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, 924, 926, 928, 930, 932, 934, 936, 938, 940, 942, 944, 946, 948, 950, 952, 954, 956, 958, 960, 962, 964, 966, 968, 970, 972, 974, 976, 978, 980, 982, 984, 986, 988, 990, 992, 994, 996, 998, 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016, 1018, 1020, 1022, 1024, 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076, 1078, 1080, 1082, 1084, 1086, 1088, 1090, 1092, 1094, 1096, 1098, 1100, 1102, 1104, 1106, 1108, 1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1156, 1158, 1160, 1162, 1164, 1166, 1168, 1170, 1172, 1174, 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, 1200, 1202, 1204, 1206, 1208, 1210, 1212, 1214, 1216, 1218, 1220, 1222, 1224, 1226, 1228, 1230, 1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252, 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268, 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1298, 1300, 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1316, 1318, 1320, 1322, 1324, 1326, 1328, 1330, 1332, 1334, 1336, 1338, 1340, 1342, 1344, 1346, 1348, 1350, 1352, 1354, 1356, 1358, 1360, 1362, 1364, 1366, 1368, 1370, 1372, 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390, 1392, 1394, 1396, 1398, 1400, 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1436, 1438, 1440, 1442, 1444, 1446, 1448, 1450, 1452, 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 1470, 1472, 1474, 1476, 1478, 1480, 1482, 1484, 1486, 1488, 1490, 1492, 1494, 1496, 1498, 1500, 1502, 1504, 1506, 1508, 1510, 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, 1534, 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1554, 1556, 1558, 1560, 1562, 1564, 1566, 1568, 1570, 1572, 1574, 1576, 1578, 1580, 1582, 1584, 1586, 1588, 1590, 1592, 1594, 1596, 1598, 1600, 1602, 1604, 1606, 1608, 1610, 1612, 1614, 1616, 1618, 1620, 1622, 1624, 1626, 1628, 1630, 1632, 1634, 1636, 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652, 1654, 1656, 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672, 1674, 1676, 1678, 1680, 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696, 1698, 1700, 1702, 1704, 1706, 1708, 1710, 1712, 1714, 1716, 1718, 1720, 1722, 1724, 1726, 1728, 1730, 1732, 1734, 1736, 1738, 1740, 1742, 1744, 1746, 1748, 1750, 1752, 1754, 1756, 1758, 1760, 1762, 1764, 1766, 1768, 1770, 1772, 1774, 1776, 1778, 1780, 1782, 1784, 1786, 1788, 1790, 1792, 1794, 1796, 1798, 1800, 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816, 1818, 1820, 1822, 1824, 1826, 1828, 1830, 1832, 1834, 1836, 1838, 1840, 1842, 1844, 1846, 1848, 1850, 1852, 1854, 1856, 1858, 1860, 1862, 1864, 1866, 1868, 1870, 1872, 1874, 1876, 1878, 1880, 1882, 1884, 1886, 1888, 1890, 1892, 1894, 1896, 1898, 1900, 1902, 1904, 1906, 1908, 1910, 1912, 1914, 1916, 1918, 1920, 1922, 1924, 1926, 1928, 1930, 1932, 1934, 1936, 1938, 1940, 1942, 1944, 1946, 1948, 1950, 1952, 1954, 1956, 1958, 1960, 1962, 1964, 1966, 1968, 1970, 1972, 1974, 1976, 1978, 1980, 1982, 1984, 1986, 1988, 1990, 1992, 1994, 1996, 1998, 2000, 2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016, 2018, 2020, 2022, 2024, 2026, 2028, 2030, 2032, 2034, 2036, 2038, 2040, 2042, 2044, 2046, 2048, 2050, 2052, 2054, 2056, 2058, 2060, 2062, 2064, 2066, 2068, 2070, 2072, 2074, 2076, 2078, 2080, 2082, 2084, 2086, 2088, 2090, 2092, 2094, 2096, 2098, 2100, 2102, 2104, 2106, 2108, 2110, 2112, 2114, 2116, 2118, 2120, 2122, 2124, 2126, 2128, 2130, 2132, 2134, 2136, 2138, 2140, 2142, 2144, 2146, 2148, 2150, 2152, 2154, 2156, 2158, 2160, 2162, 2164, 2166, 2168, 2170, 2172, 2174, 2176, 2178, 2180, 2182, 2184, 2186, 2188, 2190, 2192, 2194, 2196, 2198, 2200, 2202, 2204, 2206, 2208, 2210, 2212, 2214, 2216, 2218, 2220, 2222, 2224, 2226, 2228, 2230, 2232, 2234, 2236, 2238, 2240, 2242, 2244, 2246, 2248, 2250, 2252, 2254, 2256, 2258, 2260, 2262, 2264, 2266, 2268, 2270, 2272, 2274, 2276, 2278, 2280, 2282, 2284, 2286, 2288, 2290, 2292, 2294, 2296, 2298, 2300, 2302, 2304, 2306, 2308, 2310, 2312, 2314, 2316, 2318, 2320, 2322, 2324, 2326, 2328, 2330, 2332, 2334, 2336, 2338, 2340, 2342, 2344, 2346, 2348, 2350, 2352, 2354, 2356, 2358, 2360, 2362, 2364, 2366, 2368, 2370, 2372, 2374, 2376, 2378, 2380, 2382, 2384, 2386, 2388, 2390, 2392, 2394, 2396, 2398, 2400, 2402, 2404, 0, 302, 2, 0, 1217, 1217, 2291, 2291, 2, 0, 682, 682, 899, 899, 2, 0, 2304, 2304, 2306, 2306, 2, 0, 1169, 1169, 1558, 1558, 2, 0, 21, 21, 978, 978, 5, 0, 463, 463, 673, 673, 961, 961, 1338, 1338, 2194, 2194, 2, 0, 230, 230, 594, 594, 2, 0, 614, 614, 1102, 1102, 2, 0, 810, 810, 899, 899, 2, 0, 21, 21, 467, 467, 3, 0, 647, 647, 1308, 1308, 1323, 1323, 2, 0, 1256, 1256, 2311, 2311, 2, 0, 647, 647, 1323, 1323, 4, 0, 91, 91, 673, 673, 895, 895, 2404, 2404, 3, 0, 220, 220, 348, 348, 2289, 2289, 2, 0, 1487, 1487, 1546, 1546, 2, 0, 1176, 1176, 1574, 1574, 2, 0, 427, 427, 497, 497, 2, 0, 206, 206, 1711, 1711, 2, 0, 2442, 2442, 2448, 2448, 2, 0, 480, 480, 1130, 1130, 2, 0, 946, 946, 1131, 1131, 2, 0, 69, 69, 783, 783, 3, 0, 658, 658, 860, 860, 1493, 1493, 2, 0, 387, 387, 614, 614, 2, 0, 1604, 1604, 2081, 2081, 5, 0, 630, 630, 1327, 1327, 1459, 1459, 2155, 2155, 2164, 2164, 2, 0, 220, 220, 1301, 1301, 2, 0, 1453, 1453, 1471, 1471, 3, 0, 38, 38, 244, 244, 871, 871, 2, 0, 930, 930, 958, 958, 3, 0, 147, 147, 1327, 1327, 1713, 1713, 2, 0, 35, 35, 1392, 1392, 4, 0, 279, 279, 317, 317, 885, 885, 1454, 1454, 2, 0, 146, 146, 1697, 1697, 2, 0, 33, 33, 112, 112, 3, 0, 401, 401, 754, 754, 2205, 2205, 3, 0, 1019, 1019, 1248, 1248, 1335, 1335, 2, 0, 614, 614, 2251, 2251, 2, 0, 147, 147, 1713, 1713, 3, 0, 344, 344, 1277, 1277, 1717, 1717, 2, 0, 908, 908, 1301, 1301, 2, 0, 934, 934, 1743, 1743, 3, 0, 593, 593, 759, 759, 1322, 1322, 3, 0, 242, 242, 1199, 1199, 1594, 1594, 3, 0, 374, 374, 447, 447, 1482, 1482, 2, 0, 14, 14, 38, 38, 3, 0, 349, 349, 946, 946, 1131, 1131, 2, 0, 1098, 1098, 2427, 2427, 2, 0, 1168, 1168, 1552, 1552, 2, 0, 1728, 1728, 2110, 2110, 10, 0, 364, 364, 656, 656, 678, 678, 957, 957, 985, 985, 1480, 1480, 1635, 1635, 1728, 1728, 2294, 2294, 2355, 2355, 2, 0, 2404, 2404, 2407, 2407, 2, 0, 70, 70, 412, 412, 2, 0, 596, 596, 823, 823, 3, 0, 757, 757, 1665, 1665, 1741, 1741, 14, 0, 42, 42, 85, 85, 241, 241, 401, 401, 540, 540, 603, 603, 645, 645, 715, 715, 754, 754, 879, 879, 1503, 1503, 1557, 1557, 1645, 1645, 2205, 2205, 3, 0, 42, 42, 319, 319, 467, 467, 3, 0, 540, 540, 1503, 1503, 2311, 2311, 4, 0, 357, 357, 423, 423, 1250, 1250, 2353, 2353, 3, 0, 87, 87, 632, 632, 679, 679, 2, 0, 1171, 1171, 1563, 1563, 5, 0, 478, 478, 633, 633, 899, 899, 1326, 1326, 2075, 2075, 3, 0, 363, 363, 983, 983, 2356, 2356, 6, 0, 408, 408, 669, 669, 784, 784, 845, 845, 935, 938, 1336, 1337, 2, 0, 137, 137, 2181, 2181, 2, 0, 2201, 2201, 2213, 2213, 2, 0, 393, 393, 696, 696, 2, 0, 780, 780, 2288, 2288, 2, 0, 981, 981, 1125, 1125, 2, 0, 21, 21, 1556, 1556, 2, 0, 559, 559, 641, 641, 2, 0, 387, 387, 2090, 2090, 2, 0, 879, 879, 2185, 2185, 2, 0, 21, 21, 2205, 2205, 2, 0, 1376, 1376, 1605, 1605, 2, 0, 1241, 1241, 1254, 1254, 2, 0, 1947, 1947, 2235, 2235, 2, 0, 160, 160, 532, 532, 2, 0, 4, 4, 1665, 1665, 2, 0, 38, 38, 334, 334, 2, 0, 1625, 1625, 2106, 2106, 2, 0, 715, 715, 2081, 2081, 2, 0, 26, 26, 399, 399, 2, 0, 1568, 1568, 1711, 1711, 3, 0, 630, 630, 1327, 1327, 1459, 1459, 3, 0, 206, 206, 1568, 1568, 1711, 1711, 2, 0, 249, 249, 1566, 1566, 3, 0, 119, 119, 142, 142, 215, 215, 2, 0, 179, 179, 1576, 1576, 2, 0, 339, 339, 396, 396, 2, 0, 289, 289, 291, 291, 2, 0, 684, 684, 687, 687, 1, 0, 284, 285, 2, 0, 1213, 1213, 2251, 2251, 2, 0, 869, 869, 2079, 2079, 2, 0, 350, 350, 2087, 2087, 3, 0, 696, 696, 1176, 1176, 2090, 2090, 2, 0, 1242, 1242, 1257, 1257, 2, 0, 122, 122, 1703, 1703, 3, 0, 591, 591, 882, 882, 1117, 1117, 2, 0, 91, 91, 907, 907, 2, 0, 653, 653, 1106, 1106, 2, 0, 673, 673, 895, 895, 2, 0, 387, 387, 2439, 2439, 2, 0, 242, 242, 404, 404, 2, 0, 509, 509, 2159, 2159, 2, 0, 166, 166, 1064, 1064, 2, 0, 538, 538, 703, 703, 2, 0, 79, 79, 1792, 1792, 3, 0, 249, 249, 576, 576, 614, 614, 3, 0, 250, 250, 576, 576, 614, 614, 2, 0, 871, 871, 911, 911, 2, 0, 1178, 1178, 1597, 1597, 6, 0, 256, 256, 279, 279, 316, 317, 688, 688, 884, 885, 1666, 1666, 3, 0, 387, 387, 2183, 2183, 2439, 2439, 4, 0, 569, 569, 700, 700, 1351, 1353, 1355, 1356, 2, 0, 640, 640, 1453, 1453, 2, 0, 401, 401, 1445, 1445, 2, 0, 107, 107, 1638, 1638, 2, 0, 467, 467, 1445, 1445, 2, 0, 768, 768, 857, 857, 2, 0, 1135, 1135, 2358, 2358, 2, 0, 558, 558, 776, 776, 6, 0, 478, 478, 633, 633, 810, 810, 899, 899, 1326, 1326, 2075, 2075, 2, 0, 64, 64, 1482, 1482, 2, 0, 29, 29, 106, 106, 2, 0, 176, 176, 1482, 1482, 5, 0, 324, 324, 673, 673, 895, 895, 933, 933, 1131, 1131, 2, 0, 2183, 2183, 2439, 2439, 3, 0, 387, 387, 812, 812, 1517, 1517, 3, 0, 387, 387, 812, 812, 1131, 1131, 3, 0, 401, 401, 427, 427, 497, 497, 2, 0, 237, 237, 1604, 1604, 2, 0, 4, 4, 976, 976, 2, 0, 647, 647, 1643, 1643, 4, 0, 363, 364, 983, 983, 985, 985, 2355, 2356, 1, 0, 2378, 2381, 2, 0, 261, 261, 867, 867, 1, 0, 2449, 2450, 2, 0, 379, 379, 2362, 2362, 2, 0, 2258, 2259, 2261, 2262, 4, 0, 832, 832, 897, 898, 1201, 1201, 1607, 1607, 2, 0, 365, 365, 2357, 2357, 2, 0, 388, 388, 1225, 1225, 2, 0, 49, 49, 1305, 1305, 2, 0, 121, 121, 861, 861, 2, 0, 200, 200, 1065, 1065, 2, 0, 164, 164, 194, 194, 2, 0, 422, 422, 1086, 1086, 1, 0, 449, 450, 3, 0, 1058, 1058, 1087, 1087, 1116, 1116, 3, 0, 105, 105, 436, 436, 880, 880, 2, 0, 359, 359, 2106, 2106, 2, 0, 2460, 2460, 2469, 2469, 2, 0, 428, 428, 497, 497, 4, 0, 106, 106, 673, 673, 895, 895, 933, 933, 2, 0, 428, 428, 498, 498, 2, 0, 2466, 2466, 2469, 2469, 2, 0, 951, 951, 1121, 1121, 2, 0, 1445, 1445, 1473, 1473, 2, 0, 467, 467, 812, 812, 2, 0, 49, 49, 812, 812, 2, 0, 40, 40, 433, 433, 3, 0, 249, 249, 480, 480, 1130, 1130, 2, 0, 467, 467, 1585, 1585, 2, 0, 216, 216, 1732, 1732, 2, 0, 464, 464, 2209, 2209, 2, 0, 113, 113, 506, 506, 2, 0, 883, 883, 1390, 1390, 3, 0, 98, 98, 1383, 1383, 1467, 1467, 2, 0, 242, 242, 1439, 1439, 2, 0, 1, 1, 1759, 1759, 2, 0, 1390, 1390, 1705, 1705, 3, 0, 38, 38, 1131, 1131, 1732, 1732, 3, 0, 673, 673, 961, 961, 2194, 2194, 4, 0, 427, 427, 497, 497, 1556, 1556, 1788, 1788, 2, 0, 573, 573, 2156, 2156, 2, 0, 1556, 1556, 1669, 1669, 2, 0, 1795, 1795, 1947, 1947, 2, 0, 920, 920, 923, 923, 1, 0, 924, 926, 2, 0, 38, 38, 833, 833, 2, 0, 503, 503, 1548, 1548, 3, 0, 385, 385, 503, 503, 1548, 1548, 2, 0, 1503, 1503, 2311, 2311, 2, 0, 1346, 1346, 1773, 1773, 2, 0, 1346, 1346, 1348, 1348, 1, 0, 1772, 1773, 2, 0, 778, 778, 2205, 2205, 2, 0, 1186, 1186, 1707, 1707, 2, 0, 875, 875, 2256, 2256, 2, 0, 624, 624, 1371, 1371, 2, 0, 386, 386, 811, 811, 3, 0, 673, 673, 895, 895, 933, 933, 2, 0, 334, 334, 1226, 1226, 2, 0, 640, 640, 871, 871, 2, 0, 467, 467, 814, 814, 1, 0, 2431, 2432, 4, 0, 736, 736, 748, 748, 1078, 1078, 1316, 1316, 2, 0, 387, 387, 2454, 2454, 1, 1, 2467, 2467, 1, 0, 1583, 1584, 2, 0, 108, 108, 696, 696, 2, 0, 401, 401, 2427, 2427, 2, 0, 152, 152, 408, 408, 3, 0, 38, 38, 443, 443, 2181, 2181, 2, 0, 325, 325, 1002, 1002, 2, 0, 325, 325, 1311, 1311, 3, 0, 628, 628, 837, 837, 1590, 1590, 3, 0, 1625, 1625, 1705, 1705, 2106, 2106, 2, 0, 537, 537, 701, 701, 2, 0, 330, 330, 1596, 1596, 2, 0, 690, 690, 812, 812, 2, 0, 38, 38, 2204, 2204, 2, 0, 95, 95, 1653, 1653, 1, 0, 1604, 1605, 2, 0, 596, 596, 1023, 1023, 2, 0, 38, 38, 596, 596, 2, 0, 2081, 2081, 2098, 2098, 2, 0, 827, 827, 1764, 1764, 2, 0, 934, 934, 1770, 1770, 3, 0, 532, 532, 773, 773, 2179, 2179, 2, 0, 38, 38, 443, 443, 2, 0, 851, 853, 855, 855, 1, 0, 2464, 2465, 2, 0, 518, 518, 2157, 2157, 3, 0, 979, 979, 2448, 2448, 2452, 2452, 4, 0, 363, 363, 983, 983, 1634, 1634, 2356, 2356, 2, 0, 384, 384, 705, 705, 4, 0, 311, 311, 596, 596, 823, 823, 856, 856, 3, 0, 543, 543, 1023, 1023, 1452, 1452, 1, 0, 521, 522, 4, 0, 38, 38, 55, 55, 543, 543, 1706, 1706, 3, 0, 149, 149, 836, 836, 2144, 2144, 2, 0, 3, 3, 1226, 1226, 2, 0, 163, 163, 196, 196, 2, 0, 68, 68, 1236, 1236, 2, 0, 783, 783, 2256, 2256, 2, 0, 518, 518, 1226, 1226, 2, 0, 495, 495, 1226, 1226, 2, 0, 518, 518, 690, 690, 3, 0, 518, 518, 690, 690, 1560, 1560, 4, 0, 518, 518, 690, 690, 1226, 1226, 1556, 1556, 3, 0, 319, 319, 518, 518, 690, 690, 3, 0, 518, 518, 690, 690, 1226, 1226, 2, 0, 263, 263, 2174, 2174, 2, 0, 181, 181, 2319, 2319, 2, 0, 443, 443, 2181, 2181, 2, 0, 1373, 1375, 1378, 1378, 2, 0, 175, 175, 248, 248, 2, 0, 599, 599, 824, 824, 2, 0, 2400, 2400, 2403, 2403, 3, 0, 2123, 2124, 2132, 2132, 2135, 2136, 2, 0, 2127, 2127, 2140, 2140, 2, 0, 197, 197, 1005, 1005, 2, 0, 2321, 2321, 2329, 2329, 2, 0, 513, 513, 1094, 1094, 2, 0, 527, 527, 995, 995, 2, 0, 292, 292, 453, 453, 2, 0, 668, 668, 1681, 1681, 10, 0, 1224, 1224, 2263, 2263, 2396, 2398, 2401, 2402, 2404, 2405, 2407, 2408, 2410, 2411, 2413, 2413, 2417, 2420, 2433, 2433, 2, 0, 2389, 2390, 2392, 2395, 1, 0, 2363, 2368, 2, 0, 1493, 1493, 1605, 1605, 2, 0, 611, 611, 1434, 1434, 2, 0, 1180, 1180, 1622, 1622, 2, 0, 516, 516, 520, 520, 1, 0, 1720, 1721, 2, 0, 1307, 1307, 1718, 1718, 2, 0, 242, 242, 1594, 1594, 3, 0, 242, 242, 1131, 1131, 1594, 1594, 2, 0, 690, 690, 1569, 1569, 1, 0, 1379, 1380, 2, 0, 363, 363, 2356, 2356, 2, 0, 983, 983, 1634, 1634, 2, 0, 42, 42, 467, 467, 2, 0, 319, 319, 467, 467, 2, 0, 42, 42, 319, 319, 3, 0, 42, 42, 467, 467, 540, 540, 2, 0, 55, 55, 558, 558, 2, 0, 206, 206, 1462, 1462, 4, 0, 42, 42, 241, 241, 467, 467, 1645, 1645, 4, 0, 42, 42, 467, 467, 1645, 1645, 2205, 2205, 3, 0, 401, 401, 467, 467, 754, 754, 6, 0, 42, 42, 401, 401, 467, 467, 754, 754, 1645, 1645, 2205, 2205, 2, 0, 467, 467, 2205, 2205, 3, 0, 42, 42, 467, 467, 645, 645, 3, 0, 42, 42, 467, 467, 1645, 1645, 3, 0, 42, 42, 319, 319, 1574, 1574, 3, 0, 42, 42, 467, 467, 2239, 2239, 10, 0, 42, 42, 102, 102, 241, 241, 401, 401, 467, 467, 754, 754, 879, 879, 1503, 1503, 1645, 1645, 2205, 2205, 5, 0, 42, 42, 319, 319, 467, 467, 903, 903, 2183, 2183, 4, 0, 42, 42, 467, 467, 540, 540, 2175, 2175, 3, 0, 467, 467, 944, 944, 2175, 2175, 2, 0, 46, 46, 85, 85, 2, 0, 419, 419, 2145, 2145, 6, 0, 363, 363, 677, 677, 956, 956, 983, 983, 1634, 1634, 2356, 2356, 2, 0, 2434, 2434, 2441, 2441, 1, 0, 2429, 2430, 256, 0, 6, 6, 8, 8, 10, 12, 14, 14, 16, 16, 19, 20, 29, 29, 32, 32, 43, 43, 45, 45, 47, 47, 52, 53, 60, 60, 62, 63, 65, 65, 74, 74, 76, 76, 94, 94, 97, 97, 99, 100, 103, 103, 109, 110, 114, 114, 117, 117, 136, 136, 154, 154, 170, 172, 176, 177, 184, 184, 207, 211, 214, 214, 221, 222, 224, 224, 244, 245, 252, 253, 262, 264, 267, 269, 288, 291, 297, 297, 299, 301, 320, 320, 323, 324, 329, 329, 332, 332, 353, 353, 355, 355, 357, 358, 364, 364, 372, 372, 382, 382, 390, 391, 395, 395, 399, 400, 413, 414, 421, 421, 426, 426, 430, 430, 435, 435, 446, 446, 473, 474, 480, 480, 485, 485, 491, 491, 496, 496, 499, 499, 515, 515, 526, 526, 528, 528, 542, 542, 554, 554, 560, 560, 566, 566, 571, 572, 574, 575, 577, 577, 579, 580, 584, 584, 588, 589, 601, 601, 607, 607, 619, 619, 632, 632, 634, 634, 639, 639, 656, 656, 669, 670, 678, 679, 682, 682, 695, 695, 699, 700, 716, 716, 735, 735, 744, 744, 746, 746, 749, 749, 768, 768, 779, 779, 784, 784, 793, 807, 809, 809, 818, 818, 820, 820, 827, 827, 834, 835, 845, 845, 848, 848, 857, 857, 876, 876, 878, 878, 887, 887, 893, 893, 906, 906, 908, 908, 913, 916, 927, 927, 935, 939, 946, 946, 957, 957, 970, 970, 974, 974, 976, 976, 980, 980, 985, 985, 991, 991, 1010, 1010, 1053, 1054, 1059, 1059, 1061, 1061, 1069, 1069, 1071, 1071, 1078, 1078, 1083, 1084, 1090, 1090, 1104, 1104, 1110, 1112, 1130, 1130, 1137, 1137, 1148, 1150, 1153, 1153, 1155, 1157, 1162, 1162, 1167, 1167, 1170, 1170, 1177, 1177, 1187, 1187, 1205, 1205, 1212, 1212, 1214, 1216, 1223, 1223, 1237, 1237, 1243, 1243, 1250, 1250, 1252, 1253, 1274, 1276, 1288, 1293, 1298, 1298, 1336, 1337, 1340, 1340, 1342, 1343, 1357, 1357, 1359, 1360, 1362, 1362, 1364, 1364, 1384, 1384, 1387, 1388, 1407, 1407, 1411, 1415, 1423, 1423, 1425, 1426, 1429, 1430, 1438, 1438, 1446, 1446, 1448, 1448, 1450, 1451, 1455, 1455, 1465, 1465, 1468, 1470, 1476, 1476, 1480, 1480, 1489, 1489, 1506, 1506, 1519, 1519, 1551, 1551, 1554, 1554, 1570, 1570, 1592, 1592, 1598, 1598, 1610, 1610, 1615, 1615, 1627, 1627, 1630, 1630, 1635, 1636, 1659, 1659, 1661, 1661, 1663, 1663, 1679, 1680, 1686, 1686, 1709, 1710, 1724, 1724, 1728, 1729, 1731, 1731, 1741, 1742, 1763, 1763, 1776, 1777, 1785, 1785, 1795, 1795, 1799, 1799, 1801, 1801, 1807, 1807, 1825, 1825, 1830, 1831, 1835, 1836, 1858, 1858, 1870, 1870, 1873, 1877, 1902, 1902, 1930, 1930, 1941, 1941, 2072, 2074, 2083, 2083, 2094, 2094, 2102, 2103, 2122, 2122, 2146, 2146, 2152, 2152, 2160, 2160, 2168, 2168, 2174, 2174, 2186, 2186, 2193, 2193, 2199, 2199, 2213, 2213, 2217, 2217, 2221, 2221, 2228, 2228, 2234, 2234, 2240, 2240, 2242, 2243, 2245, 2250, 2252, 2252, 2254, 2254, 2270, 2273, 2285, 2285, 2287, 2287, 2294, 2295, 2305, 2305, 2310, 2310, 2353, 2353, 2355, 2355, 2360, 2360, 2369, 2381, 2383, 2383, 2385, 2385, 2387, 2388, 2406, 2406, 2438, 2438, 392, 0, 1, 2, 4, 5, 7, 7, 9, 9, 13, 13, 15, 15, 17, 18, 21, 28, 30, 31, 33, 33, 37, 37, 39, 41, 44, 44, 46, 46, 48, 48, 50, 50, 54, 54, 56, 59, 61, 61, 64, 64, 66, 66, 68, 68, 71, 73, 75, 75, 77, 84, 86, 91, 93, 93, 95, 95, 98, 98, 102, 102, 106, 108, 111, 113, 115, 116, 119, 120, 122, 122, 124, 130, 132, 135, 137, 140, 142, 147, 149, 153, 155, 159, 161, 163, 166, 169, 173, 174, 178, 181, 183, 183, 185, 190, 192, 193, 197, 199, 201, 206, 212, 212, 215, 219, 223, 223, 225, 233, 235, 243, 246, 246, 248, 251, 254, 257, 260, 261, 265, 266, 270, 277, 279, 285, 287, 287, 292, 296, 298, 298, 302, 311, 313, 318, 321, 322, 325, 327, 330, 331, 333, 343, 345, 351, 354, 354, 356, 356, 362, 363, 366, 371, 373, 378, 380, 381, 383, 386, 389, 389, 392, 394, 396, 398, 402, 402, 404, 406, 408, 411, 415, 415, 417, 417, 419, 420, 423, 425, 427, 427, 431, 434, 437, 439, 441, 442, 444, 445, 447, 448, 452, 453, 460, 466, 468, 468, 470, 471, 475, 477, 479, 479, 481, 484, 486, 488, 493, 495, 497, 497, 500, 500, 502, 504, 507, 507, 509, 514, 517, 520, 523, 523, 525, 525, 527, 527, 529, 532, 535, 538, 540, 541, 544, 544, 546, 553, 555, 559, 561, 565, 567, 570, 573, 573, 576, 576, 578, 578, 581, 583, 587, 587, 591, 599, 602, 604, 606, 606, 608, 612, 614, 617, 620, 625, 627, 631, 635, 638, 640, 643, 646, 646, 648, 654, 657, 660, 662, 668, 672, 677, 680, 681, 684, 690, 692, 694, 696, 698, 701, 714, 717, 731, 733, 734, 737, 743, 745, 745, 747, 747, 751, 753, 755, 766, 769, 772, 774, 775, 778, 778, 780, 781, 785, 786, 788, 792, 811, 817, 819, 819, 822, 825, 828, 831, 833, 833, 836, 844, 846, 847, 849, 854, 856, 856, 859, 860, 863, 866, 868, 875, 877, 877, 880, 886, 888, 890, 894, 896, 898, 898, 900, 905, 907, 907, 909, 909, 911, 912, 917, 926, 928, 934, 940, 945, 947, 953, 955, 956, 958, 961, 964, 969, 971, 973, 977, 979, 981, 984, 986, 987, 989, 990, 992, 1002, 1004, 1009, 1011, 1019, 1021, 1052, 1055, 1057, 1060, 1060, 1062, 1064, 1066, 1068, 1070, 1070, 1073, 1077, 1079, 1082, 1085, 1085, 1088, 1089, 1091, 1097, 1099, 1103, 1105, 1109, 1113, 1114, 1117, 1129, 1131, 1131, 1133, 1136, 1138, 1147, 1151, 1152, 1154, 1154, 1158, 1161, 1163, 1166, 1168, 1169, 1171, 1176, 1178, 1178, 1180, 1184, 1186, 1186, 1188, 1200, 1203, 1204, 1206, 1211, 1213, 1213, 1218, 1222, 1224, 1225, 1227, 1227, 1229, 1236, 1238, 1242, 1245, 1249, 1251, 1251, 1254, 1254, 1256, 1256, 1258, 1269, 1272, 1273, 1281, 1287, 1294, 1297, 1299, 1300, 1302, 1304, 1306, 1306, 1308, 1313, 1315, 1315, 1317, 1320, 1323, 1325, 1327, 1328, 1330, 1331, 1333, 1335, 1338, 1338, 1341, 1341, 1344, 1356, 1358, 1358, 1361, 1361, 1363, 1363, 1365, 1366, 1368, 1372, 1376, 1377, 1383, 1383, 1385, 1386, 1389, 1391, 1394, 1400, 1402, 1406, 1409, 1410, 1416, 1416, 1419, 1422, 1424, 1424, 1427, 1428, 1432, 1437, 1439, 1439, 1441, 1445, 1447, 1447, 1449, 1449, 1453, 1454, 1456, 1464, 1466, 1467, 1472, 1475, 1477, 1479, 1481, 1488, 1491, 1495, 1497, 1500, 1502, 1504, 1507, 1509, 1512, 1518, 1520, 1549, 1552, 1553, 1555, 1556, 1558, 1567, 1569, 1569, 1571, 1574, 1576, 1577, 1579, 1586, 1588, 1591, 1593, 1597, 1599, 1609, 1611, 1614, 1616, 1626, 1628, 1629, 1632, 1634, 1637, 1644, 1647, 1651, 1653, 1653, 1657, 1657, 1660, 1660, 1662, 1662, 1664, 1668, 1670, 1673, 1676, 1677, 1681, 1685, 1687, 1689, 1692, 1696, 1699, 1703, 1705, 1708, 1711, 1716, 1719, 1720, 1722, 1723, 1725, 1727, 1730, 1730, 1732, 1734, 1737, 1740, 1743, 1762, 1764, 1775, 1778, 1782, 1784, 1784, 1786, 1793, 1795, 1798, 1800, 1800, 1802, 1806, 1808, 1824, 1826, 1829, 1832, 1834, 1837, 1857, 1859, 1869, 1871, 1872, 1878, 1901, 1903, 1929, 1931, 1940, 1942, 2071, 2076, 2082, 2084, 2091, 2093, 2093, 2096, 2098, 2100, 2101, 2104, 2104, 2106, 2106, 2109, 2118, 2120, 2121, 2123, 2138, 2140, 2145, 2148, 2151, 2153, 2154, 2156, 2159, 2161, 2167, 2170, 2173, 2175, 2178, 2182, 2185, 2187, 2192, 2194, 2197, 2200, 2204, 2206, 2212, 2214, 2216, 2218, 2220, 2222, 2227, 2229, 2233, 2235, 2239, 2241, 2241, 2244, 2244, 2251, 2251, 2253, 2253, 2256, 2256, 2263, 2269, 2274, 2283, 2286, 2286, 2288, 2292, 2296, 2298, 2301, 2304, 2307, 2307, 2309, 2309, 2311, 2312, 2314, 2316, 2318, 2329, 2331, 2345, 2347, 2352, 2356, 2356, 2358, 2358, 2361, 2361, 2363, 2368, 2386, 2386, 2389, 2397, 2400, 2400, 2403, 2410, 2412, 2418, 2420, 2423, 24461, 0, 2407, 1, 0, 0, 0, 2, 2581, 1, 0, 0, 0, 4, 2583, 1, 0, 0, 0, 6, 2640, 1, 0, 0, 0, 8, 2665, 1, 0, 0, 0, 10, 2706, 1, 0, 0, 0, 12, 2712, 1, 0, 0, 0, 14, 2739, 1, 0, 0, 0, 16, 2741, 1, 0, 0, 0, 18, 2760, 1, 0, 0, 0, 20, 2801, 1, 0, 0, 0, 22, 2833, 1, 0, 0, 0, 24, 2838, 1, 0, 0, 0, 26, 2860, 1, 0, 0, 0, 28, 2862, 1, 0, 0, 0, 30, 2892, 1, 0, 0, 0, 32, 2894, 1, 0, 0, 0, 34, 2904, 1, 0, 0, 0, 36, 2906, 1, 0, 0, 0, 38, 2908, 1, 0, 0, 0, 40, 2951, 1, 0, 0, 0, 42, 2953, 1, 0, 0, 0, 44, 2993, 1, 0, 0, 0, 46, 3006, 1, 0, 0, 0, 48, 3008, 1, 0, 0, 0, 50, 3026, 1, 0, 0, 0, 52, 3037, 1, 0, 0, 0, 54, 3043, 1, 0, 0, 0, 56, 3053, 1, 0, 0, 0, 58, 3087, 1, 0, 0, 0, 60, 3126, 1, 0, 0, 0, 62, 3128, 1, 0, 0, 0, 64, 3160, 1, 0, 0, 0, 66, 3184, 1, 0, 0, 0, 68, 3234, 1, 0, 0, 0, 70, 3236, 1, 0, 0, 0, 72, 3238, 1, 0, 0, 0, 74, 3244, 1, 0, 0, 0, 76, 3246, 1, 0, 0, 0, 78, 3265, 1, 0, 0, 0, 80, 3273, 1, 0, 0, 0, 82, 3280, 1, 0, 0, 0, 84, 3286, 1, 0, 0, 0, 86, 3288, 1, 0, 0, 0, 88, 3302, 1, 0, 0, 0, 90, 3304, 1, 0, 0, 0, 92, 3317, 1, 0, 0, 0, 94, 3321, 1, 0, 0, 0, 96, 3356, 1, 0, 0, 0, 98, 3370, 1, 0, 0, 0, 100, 3391, 1, 0, 0, 0, 102, 3426, 1, 0, 0, 0, 104, 3428, 1, 0, 0, 0, 106, 3486, 1, 0, 0, 0, 108, 3494, 1, 0, 0, 0, 110, 3498, 1, 0, 0, 0, 112, 3512, 1, 0, 0, 0, 114, 3522, 1, 0, 0, 0, 116, 3535, 1, 0, 0, 0, 118, 3539, 1, 0, 0, 0, 120, 3543, 1, 0, 0, 0, 122, 3551, 1, 0, 0, 0, 124, 3554, 1, 0, 0, 0, 126, 3566, 1, 0, 0, 0, 128, 3571, 1, 0, 0, 0, 130, 3592, 1, 0, 0, 0, 132, 3594, 1, 0, 0, 0, 134, 3608, 1, 0, 0, 0, 136, 3626, 1, 0, 0, 0, 138, 3644, 1, 0, 0, 0, 140, 3667, 1, 0, 0, 0, 142, 3689, 1, 0, 0, 0, 144, 3724, 1, 0, 0, 0, 146, 3726, 1, 0, 0, 0, 148, 3734, 1, 0, 0, 0, 150, 3736, 1, 0, 0, 0, 152, 3741, 1, 0, 0, 0, 154, 3753, 1, 0, 0, 0, 156, 3773, 1, 0, 0, 0, 158, 3802, 1, 0, 0, 0, 160, 3849, 1, 0, 0, 0, 162, 3851, 1, 0, 0, 0, 164, 3875, 1, 0, 0, 0, 166, 3915, 1, 0, 0, 0, 168, 3917, 1, 0, 0, 0, 170, 3939, 1, 0, 0, 0, 172, 3953, 1, 0, 0, 0, 174, 3957, 1, 0, 0, 0, 176, 3974, 1, 0, 0, 0, 178, 4020, 1, 0, 0, 0, 180, 4056, 1, 0, 0, 0, 182, 4094, 1, 0, 0, 0, 184, 4103, 1, 0, 0, 0, 186, 4107, 1, 0, 0, 0, 188, 4121, 1, 0, 0, 0, 190, 4131, 1, 0, 0, 0, 192, 4136, 1, 0, 0, 0, 194, 4140, 1, 0, 0, 0, 196, 4159, 1, 0, 0, 0, 198, 4161, 1, 0, 0, 0, 200, 4163, 1, 0, 0, 0, 202, 4178, 1, 0, 0, 0, 204, 4182, 1, 0, 0, 0, 206, 4205, 1, 0, 0, 0, 208, 4228, 1, 0, 0, 0, 210, 4237, 1, 0, 0, 0, 212, 4246, 1, 0, 0, 0, 214, 4255, 1, 0, 0, 0, 216, 4259, 1, 0, 0, 0, 218, 4264, 1, 0, 0, 0, 220, 4287, 1, 0, 0, 0, 222, 4289, 1, 0, 0, 0, 224, 4339, 1, 0, 0, 0, 226, 4367, 1, 0, 0, 0, 228, 4369, 1, 0, 0, 0, 230, 4383, 1, 0, 0, 0, 232, 4388, 1, 0, 0, 0, 234, 4396, 1, 0, 0, 0, 236, 4404, 1, 0, 0, 0, 238, 4407, 1, 0, 0, 0, 240, 4416, 1, 0, 0, 0, 242, 4430, 1, 0, 0, 0, 244, 4447, 1, 0, 0, 0, 246, 4464, 1, 0, 0, 0, 248, 4472, 1, 0, 0, 0, 250, 4477, 1, 0, 0, 0, 252, 4501, 1, 0, 0, 0, 254, 4504, 1, 0, 0, 0, 256, 4510, 1, 0, 0, 0, 258, 4523, 1, 0, 0, 0, 260, 4535, 1, 0, 0, 0, 262, 4563, 1, 0, 0, 0, 264, 4569, 1, 0, 0, 0, 266, 4572, 1, 0, 0, 0, 268, 4579, 1, 0, 0, 0, 270, 4587, 1, 0, 0, 0, 272, 4600, 1, 0, 0, 0, 274, 4602, 1, 0, 0, 0, 276, 4606, 1, 0, 0, 0, 278, 4612, 1, 0, 0, 0, 280, 4637, 1, 0, 0, 0, 282, 4668, 1, 0, 0, 0, 284, 4713, 1, 0, 0, 0, 286, 4723, 1, 0, 0, 0, 288, 4725, 1, 0, 0, 0, 290, 4730, 1, 0, 0, 0, 292, 4744, 1, 0, 0, 0, 294, 4746, 1, 0, 0, 0, 296, 4751, 1, 0, 0, 0, 298, 4755, 1, 0, 0, 0, 300, 4793, 1, 0, 0, 0, 302, 4809, 1, 0, 0, 0, 304, 4842, 1, 0, 0, 0, 306, 4877, 1, 0, 0, 0, 308, 4881, 1, 0, 0, 0, 310, 4896, 1, 0, 0, 0, 312, 4898, 1, 0, 0, 0, 314, 4901, 1, 0, 0, 0, 316, 4905, 1, 0, 0, 0, 318, 4913, 1, 0, 0, 0, 320, 4976, 1, 0, 0, 0, 322, 4978, 1, 0, 0, 0, 324, 5028, 1, 0, 0, 0, 326, 5030, 1, 0, 0, 0, 328, 5034, 1, 0, 0, 0, 330, 5107, 1, 0, 0, 0, 332, 5109, 1, 0, 0, 0, 334, 5112, 1, 0, 0, 0, 336, 5115, 1, 0, 0, 0, 338, 5127, 1, 0, 0, 0, 340, 5129, 1, 0, 0, 0, 342, 5145, 1, 0, 0, 0, 344, 5158, 1, 0, 0, 0, 346, 5224, 1, 0, 0, 0, 348, 5236, 1, 0, 0, 0, 350, 5248, 1, 0, 0, 0, 352, 5260, 1, 0, 0, 0, 354, 5265, 1, 0, 0, 0, 356, 5270, 1, 0, 0, 0, 358, 5274, 1, 0, 0, 0, 360, 5279, 1, 0, 0, 0, 362, 5283, 1, 0, 0, 0, 364, 5288, 1, 0, 0, 0, 366, 5297, 1, 0, 0, 0, 368, 5320, 1, 0, 0, 0, 370, 5333, 1, 0, 0, 0, 372, 5358, 1, 0, 0, 0, 374, 5360, 1, 0, 0, 0, 376, 5379, 1, 0, 0, 0, 378, 5385, 1, 0, 0, 0, 380, 5427, 1, 0, 0, 0, 382, 5445, 1, 0, 0, 0, 384, 5457, 1, 0, 0, 0, 386, 5463, 1, 0, 0, 0, 388, 5474, 1, 0, 0, 0, 390, 5485, 1, 0, 0, 0, 392, 5500, 1, 0, 0, 0, 394, 5515, 1, 0, 0, 0, 396, 5586, 1, 0, 0, 0, 398, 5601, 1, 0, 0, 0, 400, 5604, 1, 0, 0, 0, 402, 5612, 1, 0, 0, 0, 404, 5632, 1, 0, 0, 0, 406, 5660, 1, 0, 0, 0, 408, 5672, 1, 0, 0, 0, 410, 5676, 1, 0, 0, 0, 412, 5685, 1, 0, 0, 0, 414, 5717, 1, 0, 0, 0, 416, 5719, 1, 0, 0, 0, 418, 5728, 1, 0, 0, 0, 420, 5730, 1, 0, 0, 0, 422, 5760, 1, 0, 0, 0, 424, 5762, 1, 0, 0, 0, 426, 5771, 1, 0, 0, 0, 428, 5829, 1, 0, 0, 0, 430, 5831, 1, 0, 0, 0, 432, 5852, 1, 0, 0, 0, 434, 5858, 1, 0, 0, 0, 436, 5860, 1, 0, 0, 0, 438, 5912, 1, 0, 0, 0, 440, 5924, 1, 0, 0, 0, 442, 5933, 1, 0, 0, 0, 444, 5954, 1, 0, 0, 0, 446, 5958, 1, 0, 0, 0, 448, 5962, 1, 0, 0, 0, 450, 5996, 1, 0, 0, 0, 452, 6004, 1, 0, 0, 0, 454, 6016, 1, 0, 0, 0, 456, 6022, 1, 0, 0, 0, 458, 6029, 1, 0, 0, 0, 460, 6031, 1, 0, 0, 0, 462, 6055, 1, 0, 0, 0, 464, 6063, 1, 0, 0, 0, 466, 6067, 1, 0, 0, 0, 468, 6090, 1, 0, 0, 0, 470, 6136, 1, 0, 0, 0, 472, 6151, 1, 0, 0, 0, 474, 6153, 1, 0, 0, 0, 476, 6167, 1, 0, 0, 0, 478, 6199, 1, 0, 0, 0, 480, 6208, 1, 0, 0, 0, 482, 6224, 1, 0, 0, 0, 484, 6266, 1, 0, 0, 0, 486, 6297, 1, 0, 0, 0, 488, 6299, 1, 0, 0, 0, 490, 6306, 1, 0, 0, 0, 492, 6317, 1, 0, 0, 0, 494, 6328, 1, 0, 0, 0, 496, 6366, 1, 0, 0, 0, 498, 6368, 1, 0, 0, 0, 500, 6395, 1, 0, 0, 0, 502, 6408, 1, 0, 0, 0, 504, 6449, 1, 0, 0, 0, 506, 6451, 1, 0, 0, 0, 508, 6465, 1, 0, 0, 0, 510, 6470, 1, 0, 0, 0, 512, 6474, 1, 0, 0, 0, 514, 6487, 1, 0, 0, 0, 516, 6512, 1, 0, 0, 0, 518, 6514, 1, 0, 0, 0, 520, 6516, 1, 0, 0, 0, 522, 6518, 1, 0, 0, 0, 524, 6552, 1, 0, 0, 0, 526, 6554, 1, 0, 0, 0, 528, 6571, 1, 0, 0, 0, 530, 6586, 1, 0, 0, 0, 532, 6591, 1, 0, 0, 0, 534, 6617, 1, 0, 0, 0, 536, 6619, 1, 0, 0, 0, 538, 6629, 1, 0, 0, 0, 540, 6633, 1, 0, 0, 0, 542, 6659, 1, 0, 0, 0, 544, 6679, 1, 0, 0, 0, 546, 6687, 1, 0, 0, 0, 548, 6689, 1, 0, 0, 0, 550, 6691, 1, 0, 0, 0, 552, 6693, 1, 0, 0, 0, 554, 6716, 1, 0, 0, 0, 556, 6765, 1, 0, 0, 0, 558, 6767, 1, 0, 0, 0, 560, 6777, 1, 0, 0, 0, 562, 6782, 1, 0, 0, 0, 564, 6786, 1, 0, 0, 0, 566, 6792, 1, 0, 0, 0, 568, 6796, 1, 0, 0, 0, 570, 6804, 1, 0, 0, 0, 572, 6830, 1, 0, 0, 0, 574, 6832, 1, 0, 0, 0, 576, 6838, 1, 0, 0, 0, 578, 6841, 1, 0, 0, 0, 580, 6844, 1, 0, 0, 0, 582, 6847, 1, 0, 0, 0, 584, 6901, 1, 0, 0, 0, 586, 6903, 1, 0, 0, 0, 588, 6914, 1, 0, 0, 0, 590, 6922, 1, 0, 0, 0, 592, 6933, 1, 0, 0, 0, 594, 6935, 1, 0, 0, 0, 596, 6953, 1, 0, 0, 0, 598, 6955, 1, 0, 0, 0, 600, 6972, 1, 0, 0, 0, 602, 6982, 1, 0, 0, 0, 604, 6985, 1, 0, 0, 0, 606, 6994, 1, 0, 0, 0, 608, 7008, 1, 0, 0, 0, 610, 7022, 1, 0, 0, 0, 612, 7040, 1, 0, 0, 0, 614, 7055, 1, 0, 0, 0, 616, 7072, 1, 0, 0, 0, 618, 7096, 1, 0, 0, 0, 620, 7098, 1, 0, 0, 0, 622, 7127, 1, 0, 0, 0, 624, 7156, 1, 0, 0, 0, 626, 7158, 1, 0, 0, 0, 628, 7160, 1, 0, 0, 0, 630, 7176, 1, 0, 0, 0, 632, 7188, 1, 0, 0, 0, 634, 7221, 1, 0, 0, 0, 636, 7238, 1, 0, 0, 0, 638, 7255, 1, 0, 0, 0, 640, 7271, 1, 0, 0, 0, 642, 7310, 1, 0, 0, 0, 644, 7317, 1, 0, 0, 0, 646, 7321, 1, 0, 0, 0, 648, 7329, 1, 0, 0, 0, 650, 7331, 1, 0, 0, 0, 652, 7349, 1, 0, 0, 0, 654, 7361, 1, 0, 0, 0, 656, 7378, 1, 0, 0, 0, 658, 7393, 1, 0, 0, 0, 660, 7403, 1, 0, 0, 0, 662, 7409, 1, 0, 0, 0, 664, 7413, 1, 0, 0, 0, 666, 7415, 1, 0, 0, 0, 668, 7417, 1, 0, 0, 0, 670, 7432, 1, 0, 0, 0, 672, 7500, 1, 0, 0, 0, 674, 7531, 1, 0, 0, 0, 676, 7533, 1, 0, 0, 0, 678, 7541, 1, 0, 0, 0, 680, 7591, 1, 0, 0, 0, 682, 7593, 1, 0, 0, 0, 684, 7600, 1, 0, 0, 0, 686, 7605, 1, 0, 0, 0, 688, 7607, 1, 0, 0, 0, 690, 7617, 1, 0, 0, 0, 692, 7678, 1, 0, 0, 0, 694, 7693, 1, 0, 0, 0, 696, 7695, 1, 0, 0, 0, 698, 7700, 1, 0, 0, 0, 700, 7702, 1, 0, 0, 0, 702, 7712, 1, 0, 0, 0, 704, 7714, 1, 0, 0, 0, 706, 7716, 1, 0, 0, 0, 708, 7718, 1, 0, 0, 0, 710, 7722, 1, 0, 0, 0, 712, 7724, 1, 0, 0, 0, 714, 7730, 1, 0, 0, 0, 716, 7777, 1, 0, 0, 0, 718, 7779, 1, 0, 0, 0, 720, 7806, 1, 0, 0, 0, 722, 7810, 1, 0, 0, 0, 724, 7851, 1, 0, 0, 0, 726, 7853, 1, 0, 0, 0, 728, 7862, 1, 0, 0, 0, 730, 7873, 1, 0, 0, 0, 732, 7877, 1, 0, 0, 0, 734, 7879, 1, 0, 0, 0, 736, 7897, 1, 0, 0, 0, 738, 7904, 1, 0, 0, 0, 740, 7911, 1, 0, 0, 0, 742, 7985, 1, 0, 0, 0, 744, 7987, 1, 0, 0, 0, 746, 7994, 1, 0, 0, 0, 748, 8121, 1, 0, 0, 0, 750, 8132, 1, 0, 0, 0, 752, 8143, 1, 0, 0, 0, 754, 8174, 1, 0, 0, 0, 756, 8182, 1, 0, 0, 0, 758, 8198, 1, 0, 0, 0, 760, 8222, 1, 0, 0, 0, 762, 8227, 1, 0, 0, 0, 764, 8280, 1, 0, 0, 0, 766, 8284, 1, 0, 0, 0, 768, 8299, 1, 0, 0, 0, 770, 8306, 1, 0, 0, 0, 772, 8323, 1, 0, 0, 0, 774, 8346, 1, 0, 0, 0, 776, 8402, 1, 0, 0, 0, 778, 8413, 1, 0, 0, 0, 780, 8421, 1, 0, 0, 0, 782, 8436, 1, 0, 0, 0, 784, 8451, 1, 0, 0, 0, 786, 8453, 1, 0, 0, 0, 788, 8455, 1, 0, 0, 0, 790, 8492, 1, 0, 0, 0, 792, 8501, 1, 0, 0, 0, 794, 8521, 1, 0, 0, 0, 796, 8531, 1, 0, 0, 0, 798, 8535, 1, 0, 0, 0, 800, 8607, 1, 0, 0, 0, 802, 8618, 1, 0, 0, 0, 804, 8636, 1, 0, 0, 0, 806, 8640, 1, 0, 0, 0, 808, 8643, 1, 0, 0, 0, 810, 8646, 1, 0, 0, 0, 812, 8652, 1, 0, 0, 0, 814, 8657, 1, 0, 0, 0, 816, 8661, 1, 0, 0, 0, 818, 8710, 1, 0, 0, 0, 820, 8740, 1, 0, 0, 0, 822, 8762, 1, 0, 0, 0, 824, 8771, 1, 0, 0, 0, 826, 8775, 1, 0, 0, 0, 828, 8798, 1, 0, 0, 0, 830, 8800, 1, 0, 0, 0, 832, 8837, 1, 0, 0, 0, 834, 8840, 1, 0, 0, 0, 836, 8904, 1, 0, 0, 0, 838, 8909, 1, 0, 0, 0, 840, 8911, 1, 0, 0, 0, 842, 8931, 1, 0, 0, 0, 844, 8985, 1, 0, 0, 0, 846, 9014, 1, 0, 0, 0, 848, 9051, 1, 0, 0, 0, 850, 9055, 1, 0, 0, 0, 852, 9106, 1, 0, 0, 0, 854, 9110, 1, 0, 0, 0, 856, 9134, 1, 0, 0, 0, 858, 9161, 1, 0, 0, 0, 860, 9163, 1, 0, 0, 0, 862, 9165, 1, 0, 0, 0, 864, 9248, 1, 0, 0, 0, 866, 9256, 1, 0, 0, 0, 868, 9258, 1, 0, 0, 0, 870, 9264, 1, 0, 0, 0, 872, 9275, 1, 0, 0, 0, 874, 9277, 1, 0, 0, 0, 876, 9280, 1, 0, 0, 0, 878, 9282, 1, 0, 0, 0, 880, 9291, 1, 0, 0, 0, 882, 9321, 1, 0, 0, 0, 884, 9324, 1, 0, 0, 0, 886, 9326, 1, 0, 0, 0, 888, 9337, 1, 0, 0, 0, 890, 9342, 1, 0, 0, 0, 892, 9359, 1, 0, 0, 0, 894, 9376, 1, 0, 0, 0, 896, 9379, 1, 0, 0, 0, 898, 9430, 1, 0, 0, 0, 900, 9432, 1, 0, 0, 0, 902, 9440, 1, 0, 0, 0, 904, 9456, 1, 0, 0, 0, 906, 9469, 1, 0, 0, 0, 908, 9471, 1, 0, 0, 0, 910, 9510, 1, 0, 0, 0, 912, 9512, 1, 0, 0, 0, 914, 9518, 1, 0, 0, 0, 916, 9525, 1, 0, 0, 0, 918, 9549, 1, 0, 0, 0, 920, 9562, 1, 0, 0, 0, 922, 9574, 1, 0, 0, 0, 924, 9579, 1, 0, 0, 0, 926, 9597, 1, 0, 0, 0, 928, 9599, 1, 0, 0, 0, 930, 9602, 1, 0, 0, 0, 932, 9653, 1, 0, 0, 0, 934, 9655, 1, 0, 0, 0, 936, 9686, 1, 0, 0, 0, 938, 9688, 1, 0, 0, 0, 940, 9698, 1, 0, 0, 0, 942, 9723, 1, 0, 0, 0, 944, 9728, 1, 0, 0, 0, 946, 9733, 1, 0, 0, 0, 948, 9771, 1, 0, 0, 0, 950, 9833, 1, 0, 0, 0, 952, 9837, 1, 0, 0, 0, 954, 9842, 1, 0, 0, 0, 956, 9866, 1, 0, 0, 0, 958, 9879, 1, 0, 0, 0, 960, 9884, 1, 0, 0, 0, 962, 9910, 1, 0, 0, 0, 964, 9914, 1, 0, 0, 0, 966, 9919, 1, 0, 0, 0, 968, 9924, 1, 0, 0, 0, 970, 9932, 1, 0, 0, 0, 972, 9938, 1, 0, 0, 0, 974, 9941, 1, 0, 0, 0, 976, 9949, 1, 0, 0, 0, 978, 9955, 1, 0, 0, 0, 980, 9976, 1, 0, 0, 0, 982, 9999, 1, 0, 0, 0, 984, 10007, 1, 0, 0, 0, 986, 10009, 1, 0, 0, 0, 988, 10017, 1, 0, 0, 0, 990, 10029, 1, 0, 0, 0, 992, 10046, 1, 0, 0, 0, 994, 10049, 1, 0, 0, 0, 996, 10064, 1, 0, 0, 0, 998, 10147, 1, 0, 0, 0, 1000, 10162, 1, 0, 0, 0, 1002, 10207, 1, 0, 0, 0, 1004, 10209, 1, 0, 0, 0, 1006, 10217, 1, 0, 0, 0, 1008, 10228, 1, 0, 0, 0, 1010, 10248, 1, 0, 0, 0, 1012, 10250, 1, 0, 0, 0, 1014, 10302, 1, 0, 0, 0, 1016, 10326, 1, 0, 0, 0, 1018, 10345, 1, 0, 0, 0, 1020, 10347, 1, 0, 0, 0, 1022, 10355, 1, 0, 0, 0, 1024, 10358, 1, 0, 0, 0, 1026, 10361, 1, 0, 0, 0, 1028, 10389, 1, 0, 0, 0, 1030, 10414, 1, 0, 0, 0, 1032, 10423, 1, 0, 0, 0, 1034, 10475, 1, 0, 0, 0, 1036, 10511, 1, 0, 0, 0, 1038, 10533, 1, 0, 0, 0, 1040, 10575, 1, 0, 0, 0, 1042, 10579, 1, 0, 0, 0, 1044, 10593, 1, 0, 0, 0, 1046, 10634, 1, 0, 0, 0, 1048, 10636, 1, 0, 0, 0, 1050, 10650, 1, 0, 0, 0, 1052, 10681, 1, 0, 0, 0, 1054, 10684, 1, 0, 0, 0, 1056, 10702, 1, 0, 0, 0, 1058, 10708, 1, 0, 0, 0, 1060, 10727, 1, 0, 0, 0, 1062, 10731, 1, 0, 0, 0, 1064, 10733, 1, 0, 0, 0, 1066, 10742, 1, 0, 0, 0, 1068, 10757, 1, 0, 0, 0, 1070, 10761, 1, 0, 0, 0, 1072, 10770, 1, 0, 0, 0, 1074, 10785, 1, 0, 0, 0, 1076, 10791, 1, 0, 0, 0, 1078, 10823, 1, 0, 0, 0, 1080, 10825, 1, 0, 0, 0, 1082, 10828, 1, 0, 0, 0, 1084, 10831, 1, 0, 0, 0, 1086, 10857, 1, 0, 0, 0, 1088, 10868, 1, 0, 0, 0, 1090, 10880, 1, 0, 0, 0, 1092, 10882, 1, 0, 0, 0, 1094, 10901, 1, 0, 0, 0, 1096, 10903, 1, 0, 0, 0, 1098, 10914, 1, 0, 0, 0, 1100, 10928, 1, 0, 0, 0, 1102, 10949, 1, 0, 0, 0, 1104, 10951, 1, 0, 0, 0, 1106, 10959, 1, 0, 0, 0, 1108, 10969, 1, 0, 0, 0, 1110, 10971, 1, 0, 0, 0, 1112, 11027, 1, 0, 0, 0, 1114, 11055, 1, 0, 0, 0, 1116, 11072, 1, 0, 0, 0, 1118, 11095, 1, 0, 0, 0, 1120, 11132, 1, 0, 0, 0, 1122, 11134, 1, 0, 0, 0, 1124, 11184, 1, 0, 0, 0, 1126, 11206, 1, 0, 0, 0, 1128, 11226, 1, 0, 0, 0, 1130, 11245, 1, 0, 0, 0, 1132, 11251, 1, 0, 0, 0, 1134, 11266, 1, 0, 0, 0, 1136, 11308, 1, 0, 0, 0, 1138, 11350, 1, 0, 0, 0, 1140, 11384, 1, 0, 0, 0, 1142, 11386, 1, 0, 0, 0, 1144, 11402, 1, 0, 0, 0, 1146, 11411, 1, 0, 0, 0, 1148, 11444, 1, 0, 0, 0, 1150, 11446, 1, 0, 0, 0, 1152, 11454, 1, 0, 0, 0, 1154, 11462, 1, 0, 0, 0, 1156, 11469, 1, 0, 0, 0, 1158, 11486, 1, 0, 0, 0, 1160, 11511, 1, 0, 0, 0, 1162, 11513, 1, 0, 0, 0, 1164, 11539, 1, 0, 0, 0, 1166, 11598, 1, 0, 0, 0, 1168, 11602, 1, 0, 0, 0, 1170, 11626, 1, 0, 0, 0, 1172, 11671, 1, 0, 0, 0, 1174, 11692, 1, 0, 0, 0, 1176, 11698, 1, 0, 0, 0, 1178, 11713, 1, 0, 0, 0, 1180, 11715, 1, 0, 0, 0, 1182, 11718, 1, 0, 0, 0, 1184, 11745, 1, 0, 0, 0, 1186, 11753, 1, 0, 0, 0, 1188, 11769, 1, 0, 0, 0, 1190, 11773, 1, 0, 0, 0, 1192, 11808, 1, 0, 0, 0, 1194, 11823, 1, 0, 0, 0, 1196, 11870, 1, 0, 0, 0, 1198, 11872, 1, 0, 0, 0, 1200, 11887, 1, 0, 0, 0, 1202, 11908, 1, 0, 0, 0, 1204, 11910, 1, 0, 0, 0, 1206, 11938, 1, 0, 0, 0, 1208, 11940, 1, 0, 0, 0, 1210, 11952, 1, 0, 0, 0, 1212, 11959, 1, 0, 0, 0, 1214, 11963, 1, 0, 0, 0, 1216, 11971, 1, 0, 0, 0, 1218, 11992, 1, 0, 0, 0, 1220, 11997, 1, 0, 0, 0, 1222, 12054, 1, 0, 0, 0, 1224, 12056, 1, 0, 0, 0, 1226, 12094, 1, 0, 0, 0, 1228, 12105, 1, 0, 0, 0, 1230, 12113, 1, 0, 0, 0, 1232, 12124, 1, 0, 0, 0, 1234, 12235, 1, 0, 0, 0, 1236, 12262, 1, 0, 0, 0, 1238, 12264, 1, 0, 0, 0, 1240, 12267, 1, 0, 0, 0, 1242, 12285, 1, 0, 0, 0, 1244, 12288, 1, 0, 0, 0, 1246, 12310, 1, 0, 0, 0, 1248, 12355, 1, 0, 0, 0, 1250, 12394, 1, 0, 0, 0, 1252, 12402, 1, 0, 0, 0, 1254, 12404, 1, 0, 0, 0, 1256, 12522, 1, 0, 0, 0, 1258, 12524, 1, 0, 0, 0, 1260, 12621, 1, 0, 0, 0, 1262, 12659, 1, 0, 0, 0, 1264, 12676, 1, 0, 0, 0, 1266, 12679, 1, 0, 0, 0, 1268, 12692, 1, 0, 0, 0, 1270, 12696, 1, 0, 0, 0, 1272, 12738, 1, 0, 0, 0, 1274, 12740, 1, 0, 0, 0, 1276, 12763, 1, 0, 0, 0, 1278, 12786, 1, 0, 0, 0, 1280, 12802, 1, 0, 0, 0, 1282, 12808, 1, 0, 0, 0, 1284, 12820, 1, 0, 0, 0, 1286, 12824, 1, 0, 0, 0, 1288, 12833, 1, 0, 0, 0, 1290, 12857, 1, 0, 0, 0, 1292, 12882, 1, 0, 0, 0, 1294, 12898, 1, 0, 0, 0, 1296, 12905, 1, 0, 0, 0, 1298, 12915, 1, 0, 0, 0, 1300, 12926, 1, 0, 0, 0, 1302, 12933, 1, 0, 0, 0, 1304, 12935, 1, 0, 0, 0, 1306, 12937, 1, 0, 0, 0, 1308, 12997, 1, 0, 0, 0, 1310, 12999, 1, 0, 0, 0, 1312, 13013, 1, 0, 0, 0, 1314, 13032, 1, 0, 0, 0, 1316, 13034, 1, 0, 0, 0, 1318, 13036, 1, 0, 0, 0, 1320, 13043, 1, 0, 0, 0, 1322, 13051, 1, 0, 0, 0, 1324, 13068, 1, 0, 0, 0, 1326, 13098, 1, 0, 0, 0, 1328, 13102, 1, 0, 0, 0, 1330, 13110, 1, 0, 0, 0, 1332, 13132, 1, 0, 0, 0, 1334, 13147, 1, 0, 0, 0, 1336, 13197, 1, 0, 0, 0, 1338, 13213, 1, 0, 0, 0, 1340, 13223, 1, 0, 0, 0, 1342, 13233, 1, 0, 0, 0, 1344, 13238, 1, 0, 0, 0, 1346, 13243, 1, 0, 0, 0, 1348, 13254, 1, 0, 0, 0, 1350, 13258, 1, 0, 0, 0, 1352, 13262, 1, 0, 0, 0, 1354, 13275, 1, 0, 0, 0, 1356, 13281, 1, 0, 0, 0, 1358, 13288, 1, 0, 0, 0, 1360, 13290, 1, 0, 0, 0, 1362, 13292, 1, 0, 0, 0, 1364, 13312, 1, 0, 0, 0, 1366, 13337, 1, 0, 0, 0, 1368, 13339, 1, 0, 0, 0, 1370, 13341, 1, 0, 0, 0, 1372, 13348, 1, 0, 0, 0, 1374, 13350, 1, 0, 0, 0, 1376, 13352, 1, 0, 0, 0, 1378, 13385, 1, 0, 0, 0, 1380, 13430, 1, 0, 0, 0, 1382, 13432, 1, 0, 0, 0, 1384, 13463, 1, 0, 0, 0, 1386, 13500, 1, 0, 0, 0, 1388, 13519, 1, 0, 0, 0, 1390, 13521, 1, 0, 0, 0, 1392, 13541, 1, 0, 0, 0, 1394, 13569, 1, 0, 0, 0, 1396, 13594, 1, 0, 0, 0, 1398, 13676, 1, 0, 0, 0, 1400, 13678, 1, 0, 0, 0, 1402, 13722, 1, 0, 0, 0, 1404, 13726, 1, 0, 0, 0, 1406, 13750, 1, 0, 0, 0, 1408, 13757, 1, 0, 0, 0, 1410, 13765, 1, 0, 0, 0, 1412, 13767, 1, 0, 0, 0, 1414, 13786, 1, 0, 0, 0, 1416, 13809, 1, 0, 0, 0, 1418, 13811, 1, 0, 0, 0, 1420, 13829, 1, 0, 0, 0, 1422, 13834, 1, 0, 0, 0, 1424, 13844, 1, 0, 0, 0, 1426, 13851, 1, 0, 0, 0, 1428, 13859, 1, 0, 0, 0, 1430, 13892, 1, 0, 0, 0, 1432, 13915, 1, 0, 0, 0, 1434, 13920, 1, 0, 0, 0, 1436, 13971, 1, 0, 0, 0, 1438, 13973, 1, 0, 0, 0, 1440, 13978, 1, 0, 0, 0, 1442, 13982, 1, 0, 0, 0, 1444, 13985, 1, 0, 0, 0, 1446, 13987, 1, 0, 0, 0, 1448, 13989, 1, 0, 0, 0, 1450, 13991, 1, 0, 0, 0, 1452, 13993, 1, 0, 0, 0, 1454, 13995, 1, 0, 0, 0, 1456, 14009, 1, 0, 0, 0, 1458, 14014, 1, 0, 0, 0, 1460, 14021, 1, 0, 0, 0, 1462, 14023, 1, 0, 0, 0, 1464, 14028, 1, 0, 0, 0, 1466, 14033, 1, 0, 0, 0, 1468, 14039, 1, 0, 0, 0, 1470, 14043, 1, 0, 0, 0, 1472, 14069, 1, 0, 0, 0, 1474, 14071, 1, 0, 0, 0, 1476, 14078, 1, 0, 0, 0, 1478, 14090, 1, 0, 0, 0, 1480, 14150, 1, 0, 0, 0, 1482, 14154, 1, 0, 0, 0, 1484, 14176, 1, 0, 0, 0, 1486, 14178, 1, 0, 0, 0, 1488, 14198, 1, 0, 0, 0, 1490, 14214, 1, 0, 0, 0, 1492, 14219, 1, 0, 0, 0, 1494, 14227, 1, 0, 0, 0, 1496, 14231, 1, 0, 0, 0, 1498, 14242, 1, 0, 0, 0, 1500, 14270, 1, 0, 0, 0, 1502, 14286, 1, 0, 0, 0, 1504, 14295, 1, 0, 0, 0, 1506, 14327, 1, 0, 0, 0, 1508, 14335, 1, 0, 0, 0, 1510, 14368, 1, 0, 0, 0, 1512, 14370, 1, 0, 0, 0, 1514, 14397, 1, 0, 0, 0, 1516, 14416, 1, 0, 0, 0, 1518, 14442, 1, 0, 0, 0, 1520, 14444, 1, 0, 0, 0, 1522, 14476, 1, 0, 0, 0, 1524, 14494, 1, 0, 0, 0, 1526, 14506, 1, 0, 0, 0, 1528, 14508, 1, 0, 0, 0, 1530, 14527, 1, 0, 0, 0, 1532, 14538, 1, 0, 0, 0, 1534, 14547, 1, 0, 0, 0, 1536, 14572, 1, 0, 0, 0, 1538, 14626, 1, 0, 0, 0, 1540, 14650, 1, 0, 0, 0, 1542, 14664, 1, 0, 0, 0, 1544, 14674, 1, 0, 0, 0, 1546, 14683, 1, 0, 0, 0, 1548, 14712, 1, 0, 0, 0, 1550, 14716, 1, 0, 0, 0, 1552, 14753, 1, 0, 0, 0, 1554, 14806, 1, 0, 0, 0, 1556, 14817, 1, 0, 0, 0, 1558, 14819, 1, 0, 0, 0, 1560, 14835, 1, 0, 0, 0, 1562, 14837, 1, 0, 0, 0, 1564, 14862, 1, 0, 0, 0, 1566, 14864, 1, 0, 0, 0, 1568, 14868, 1, 0, 0, 0, 1570, 14876, 1, 0, 0, 0, 1572, 14890, 1, 0, 0, 0, 1574, 14901, 1, 0, 0, 0, 1576, 14916, 1, 0, 0, 0, 1578, 14951, 1, 0, 0, 0, 1580, 14973, 1, 0, 0, 0, 1582, 14977, 1, 0, 0, 0, 1584, 14979, 1, 0, 0, 0, 1586, 14983, 1, 0, 0, 0, 1588, 15018, 1, 0, 0, 0, 1590, 15023, 1, 0, 0, 0, 1592, 15028, 1, 0, 0, 0, 1594, 15032, 1, 0, 0, 0, 1596, 15042, 1, 0, 0, 0, 1598, 15044, 1, 0, 0, 0, 1600, 15052, 1, 0, 0, 0, 1602, 15054, 1, 0, 0, 0, 1604, 15060, 1, 0, 0, 0, 1606, 15062, 1, 0, 0, 0, 1608, 15068, 1, 0, 0, 0, 1610, 15134, 1, 0, 0, 0, 1612, 15136, 1, 0, 0, 0, 1614, 15164, 1, 0, 0, 0, 1616, 15193, 1, 0, 0, 0, 1618, 15196, 1, 0, 0, 0, 1620, 15208, 1, 0, 0, 0, 1622, 15235, 1, 0, 0, 0, 1624, 15244, 1, 0, 0, 0, 1626, 15260, 1, 0, 0, 0, 1628, 15265, 1, 0, 0, 0, 1630, 15274, 1, 0, 0, 0, 1632, 15276, 1, 0, 0, 0, 1634, 15323, 1, 0, 0, 0, 1636, 15356, 1, 0, 0, 0, 1638, 15385, 1, 0, 0, 0, 1640, 15389, 1, 0, 0, 0, 1642, 15396, 1, 0, 0, 0, 1644, 15398, 1, 0, 0, 0, 1646, 15408, 1, 0, 0, 0, 1648, 15424, 1, 0, 0, 0, 1650, 15429, 1, 0, 0, 0, 1652, 15458, 1, 0, 0, 0, 1654, 15462, 1, 0, 0, 0, 1656, 15497, 1, 0, 0, 0, 1658, 15509, 1, 0, 0, 0, 1660, 15511, 1, 0, 0, 0, 1662, 15513, 1, 0, 0, 0, 1664, 15554, 1, 0, 0, 0, 1666, 15556, 1, 0, 0, 0, 1668, 15584, 1, 0, 0, 0, 1670, 15614, 1, 0, 0, 0, 1672, 15616, 1, 0, 0, 0, 1674, 15678, 1, 0, 0, 0, 1676, 15680, 1, 0, 0, 0, 1678, 15703, 1, 0, 0, 0, 1680, 15708, 1, 0, 0, 0, 1682, 15716, 1, 0, 0, 0, 1684, 15753, 1, 0, 0, 0, 1686, 15774, 1, 0, 0, 0, 1688, 15778, 1, 0, 0, 0, 1690, 15780, 1, 0, 0, 0, 1692, 15786, 1, 0, 0, 0, 1694, 15844, 1, 0, 0, 0, 1696, 15846, 1, 0, 0, 0, 1698, 15848, 1, 0, 0, 0, 1700, 15850, 1, 0, 0, 0, 1702, 15879, 1, 0, 0, 0, 1704, 15886, 1, 0, 0, 0, 1706, 15893, 1, 0, 0, 0, 1708, 15907, 1, 0, 0, 0, 1710, 15916, 1, 0, 0, 0, 1712, 15930, 1, 0, 0, 0, 1714, 15935, 1, 0, 0, 0, 1716, 15937, 1, 0, 0, 0, 1718, 15945, 1, 0, 0, 0, 1720, 15970, 1, 0, 0, 0, 1722, 15976, 1, 0, 0, 0, 1724, 16008, 1, 0, 0, 0, 1726, 16019, 1, 0, 0, 0, 1728, 16021, 1, 0, 0, 0, 1730, 16034, 1, 0, 0, 0, 1732, 16038, 1, 0, 0, 0, 1734, 16053, 1, 0, 0, 0, 1736, 16055, 1, 0, 0, 0, 1738, 16071, 1, 0, 0, 0, 1740, 16088, 1, 0, 0, 0, 1742, 16113, 1, 0, 0, 0, 1744, 16123, 1, 0, 0, 0, 1746, 16127, 1, 0, 0, 0, 1748, 16172, 1, 0, 0, 0, 1750, 16184, 1, 0, 0, 0, 1752, 16195, 1, 0, 0, 0, 1754, 16201, 1, 0, 0, 0, 1756, 16212, 1, 0, 0, 0, 1758, 16224, 1, 0, 0, 0, 1760, 16234, 1, 0, 0, 0, 1762, 16256, 1, 0, 0, 0, 1764, 16260, 1, 0, 0, 0, 1766, 16283, 1, 0, 0, 0, 1768, 16287, 1, 0, 0, 0, 1770, 16292, 1, 0, 0, 0, 1772, 16300, 1, 0, 0, 0, 1774, 16308, 1, 0, 0, 0, 1776, 16311, 1, 0, 0, 0, 1778, 16327, 1, 0, 0, 0, 1780, 16332, 1, 0, 0, 0, 1782, 16336, 1, 0, 0, 0, 1784, 16376, 1, 0, 0, 0, 1786, 16378, 1, 0, 0, 0, 1788, 16401, 1, 0, 0, 0, 1790, 16403, 1, 0, 0, 0, 1792, 16408, 1, 0, 0, 0, 1794, 16410, 1, 0, 0, 0, 1796, 16412, 1, 0, 0, 0, 1798, 16414, 1, 0, 0, 0, 1800, 16418, 1, 0, 0, 0, 1802, 16423, 1, 0, 0, 0, 1804, 16443, 1, 0, 0, 0, 1806, 16449, 1, 0, 0, 0, 1808, 16466, 1, 0, 0, 0, 1810, 16480, 1, 0, 0, 0, 1812, 16484, 1, 0, 0, 0, 1814, 16498, 1, 0, 0, 0, 1816, 16517, 1, 0, 0, 0, 1818, 16524, 1, 0, 0, 0, 1820, 16536, 1, 0, 0, 0, 1822, 16545, 1, 0, 0, 0, 1824, 16547, 1, 0, 0, 0, 1826, 16561, 1, 0, 0, 0, 1828, 16571, 1, 0, 0, 0, 1830, 16577, 1, 0, 0, 0, 1832, 16579, 1, 0, 0, 0, 1834, 16582, 1, 0, 0, 0, 1836, 16591, 1, 0, 0, 0, 1838, 16624, 1, 0, 0, 0, 1840, 16626, 1, 0, 0, 0, 1842, 16641, 1, 0, 0, 0, 1844, 16643, 1, 0, 0, 0, 1846, 16664, 1, 0, 0, 0, 1848, 16679, 1, 0, 0, 0, 1850, 16704, 1, 0, 0, 0, 1852, 16712, 1, 0, 0, 0, 1854, 16725, 1, 0, 0, 0, 1856, 16728, 1, 0, 0, 0, 1858, 16753, 1, 0, 0, 0, 1860, 16774, 1, 0, 0, 0, 1862, 16778, 1, 0, 0, 0, 1864, 16821, 1, 0, 0, 0, 1866, 16825, 1, 0, 0, 0, 1868, 16827, 1, 0, 0, 0, 1870, 16844, 1, 0, 0, 0, 1872, 16887, 1, 0, 0, 0, 1874, 16896, 1, 0, 0, 0, 1876, 16904, 1, 0, 0, 0, 1878, 16915, 1, 0, 0, 0, 1880, 16927, 1, 0, 0, 0, 1882, 16942, 1, 0, 0, 0, 1884, 16947, 1, 0, 0, 0, 1886, 16960, 1, 0, 0, 0, 1888, 16966, 1, 0, 0, 0, 1890, 16978, 1, 0, 0, 0, 1892, 16986, 1, 0, 0, 0, 1894, 16990, 1, 0, 0, 0, 1896, 17032, 1, 0, 0, 0, 1898, 17034, 1, 0, 0, 0, 1900, 17045, 1, 0, 0, 0, 1902, 17047, 1, 0, 0, 0, 1904, 17055, 1, 0, 0, 0, 1906, 17066, 1, 0, 0, 0, 1908, 17099, 1, 0, 0, 0, 1910, 17126, 1, 0, 0, 0, 1912, 17128, 1, 0, 0, 0, 1914, 17131, 1, 0, 0, 0, 1916, 17134, 1, 0, 0, 0, 1918, 17138, 1, 0, 0, 0, 1920, 17174, 1, 0, 0, 0, 1922, 17176, 1, 0, 0, 0, 1924, 17201, 1, 0, 0, 0, 1926, 17206, 1, 0, 0, 0, 1928, 17211, 1, 0, 0, 0, 1930, 17234, 1, 0, 0, 0, 1932, 17244, 1, 0, 0, 0, 1934, 17246, 1, 0, 0, 0, 1936, 17262, 1, 0, 0, 0, 1938, 17276, 1, 0, 0, 0, 1940, 17312, 1, 0, 0, 0, 1942, 17314, 1, 0, 0, 0, 1944, 17344, 1, 0, 0, 0, 1946, 17349, 1, 0, 0, 0, 1948, 17351, 1, 0, 0, 0, 1950, 17363, 1, 0, 0, 0, 1952, 17383, 1, 0, 0, 0, 1954, 17385, 1, 0, 0, 0, 1956, 17388, 1, 0, 0, 0, 1958, 17414, 1, 0, 0, 0, 1960, 17416, 1, 0, 0, 0, 1962, 17420, 1, 0, 0, 0, 1964, 17435, 1, 0, 0, 0, 1966, 17447, 1, 0, 0, 0, 1968, 17455, 1, 0, 0, 0, 1970, 17459, 1, 0, 0, 0, 1972, 17472, 1, 0, 0, 0, 1974, 17478, 1, 0, 0, 0, 1976, 17493, 1, 0, 0, 0, 1978, 17513, 1, 0, 0, 0, 1980, 17522, 1, 0, 0, 0, 1982, 17524, 1, 0, 0, 0, 1984, 17531, 1, 0, 0, 0, 1986, 17536, 1, 0, 0, 0, 1988, 17549, 1, 0, 0, 0, 1990, 17557, 1, 0, 0, 0, 1992, 17561, 1, 0, 0, 0, 1994, 17575, 1, 0, 0, 0, 1996, 17583, 1, 0, 0, 0, 1998, 17591, 1, 0, 0, 0, 2000, 17593, 1, 0, 0, 0, 2002, 17605, 1, 0, 0, 0, 2004, 17631, 1, 0, 0, 0, 2006, 17633, 1, 0, 0, 0, 2008, 17647, 1, 0, 0, 0, 2010, 17652, 1, 0, 0, 0, 2012, 17670, 1, 0, 0, 0, 2014, 17674, 1, 0, 0, 0, 2016, 17682, 1, 0, 0, 0, 2018, 17692, 1, 0, 0, 0, 2020, 17700, 1, 0, 0, 0, 2022, 17706, 1, 0, 0, 0, 2024, 17711, 1, 0, 0, 0, 2026, 17720, 1, 0, 0, 0, 2028, 17745, 1, 0, 0, 0, 2030, 17764, 1, 0, 0, 0, 2032, 17768, 1, 0, 0, 0, 2034, 17771, 1, 0, 0, 0, 2036, 17793, 1, 0, 0, 0, 2038, 17798, 1, 0, 0, 0, 2040, 17817, 1, 0, 0, 0, 2042, 17819, 1, 0, 0, 0, 2044, 17835, 1, 0, 0, 0, 2046, 17843, 1, 0, 0, 0, 2048, 17848, 1, 0, 0, 0, 2050, 17852, 1, 0, 0, 0, 2052, 17863, 1, 0, 0, 0, 2054, 17866, 1, 0, 0, 0, 2056, 17908, 1, 0, 0, 0, 2058, 17910, 1, 0, 0, 0, 2060, 17923, 1, 0, 0, 0, 2062, 17934, 1, 0, 0, 0, 2064, 17948, 1, 0, 0, 0, 2066, 17959, 1, 0, 0, 0, 2068, 17961, 1, 0, 0, 0, 2070, 17978, 1, 0, 0, 0, 2072, 17980, 1, 0, 0, 0, 2074, 17985, 1, 0, 0, 0, 2076, 18000, 1, 0, 0, 0, 2078, 18006, 1, 0, 0, 0, 2080, 18050, 1, 0, 0, 0, 2082, 18052, 1, 0, 0, 0, 2084, 18076, 1, 0, 0, 0, 2086, 18094, 1, 0, 0, 0, 2088, 18126, 1, 0, 0, 0, 2090, 18146, 1, 0, 0, 0, 2092, 18148, 1, 0, 0, 0, 2094, 18152, 1, 0, 0, 0, 2096, 18217, 1, 0, 0, 0, 2098, 18219, 1, 0, 0, 0, 2100, 18249, 1, 0, 0, 0, 2102, 18251, 1, 0, 0, 0, 2104, 18272, 1, 0, 0, 0, 2106, 18304, 1, 0, 0, 0, 2108, 18321, 1, 0, 0, 0, 2110, 18340, 1, 0, 0, 0, 2112, 18353, 1, 0, 0, 0, 2114, 18356, 1, 0, 0, 0, 2116, 18376, 1, 0, 0, 0, 2118, 18394, 1, 0, 0, 0, 2120, 18399, 1, 0, 0, 0, 2122, 18404, 1, 0, 0, 0, 2124, 18406, 1, 0, 0, 0, 2126, 18420, 1, 0, 0, 0, 2128, 18433, 1, 0, 0, 0, 2130, 18438, 1, 0, 0, 0, 2132, 18461, 1, 0, 0, 0, 2134, 18463, 1, 0, 0, 0, 2136, 18567, 1, 0, 0, 0, 2138, 18573, 1, 0, 0, 0, 2140, 18763, 1, 0, 0, 0, 2142, 18774, 1, 0, 0, 0, 2144, 18804, 1, 0, 0, 0, 2146, 18810, 1, 0, 0, 0, 2148, 18841, 1, 0, 0, 0, 2150, 18847, 1, 0, 0, 0, 2152, 18851, 1, 0, 0, 0, 2154, 18952, 1, 0, 0, 0, 2156, 18954, 1, 0, 0, 0, 2158, 19019, 1, 0, 0, 0, 2160, 19023, 1, 0, 0, 0, 2162, 19042, 1, 0, 0, 0, 2164, 19057, 1, 0, 0, 0, 2166, 19066, 1, 0, 0, 0, 2168, 19078, 1, 0, 0, 0, 2170, 19083, 1, 0, 0, 0, 2172, 19126, 1, 0, 0, 0, 2174, 19128, 1, 0, 0, 0, 2176, 19146, 1, 0, 0, 0, 2178, 19148, 1, 0, 0, 0, 2180, 19211, 1, 0, 0, 0, 2182, 19213, 1, 0, 0, 0, 2184, 19644, 1, 0, 0, 0, 2186, 19646, 1, 0, 0, 0, 2188, 19648, 1, 0, 0, 0, 2190, 19650, 1, 0, 0, 0, 2192, 19652, 1, 0, 0, 0, 2194, 19678, 1, 0, 0, 0, 2196, 19687, 1, 0, 0, 0, 2198, 19696, 1, 0, 0, 0, 2200, 19698, 1, 0, 0, 0, 2202, 19715, 1, 0, 0, 0, 2204, 19719, 1, 0, 0, 0, 2206, 19736, 1, 0, 0, 0, 2208, 19746, 1, 0, 0, 0, 2210, 19757, 1, 0, 0, 0, 2212, 19781, 1, 0, 0, 0, 2214, 19800, 1, 0, 0, 0, 2216, 19818, 1, 0, 0, 0, 2218, 19839, 1, 0, 0, 0, 2220, 19852, 1, 0, 0, 0, 2222, 19855, 1, 0, 0, 0, 2224, 19865, 1, 0, 0, 0, 2226, 19871, 1, 0, 0, 0, 2228, 19879, 1, 0, 0, 0, 2230, 19882, 1, 0, 0, 0, 2232, 19893, 1, 0, 0, 0, 2234, 19895, 1, 0, 0, 0, 2236, 19914, 1, 0, 0, 0, 2238, 19924, 1, 0, 0, 0, 2240, 19928, 1, 0, 0, 0, 2242, 19939, 1, 0, 0, 0, 2244, 19941, 1, 0, 0, 0, 2246, 19946, 1, 0, 0, 0, 2248, 19965, 1, 0, 0, 0, 2250, 19983, 1, 0, 0, 0, 2252, 20001, 1, 0, 0, 0, 2254, 20003, 1, 0, 0, 0, 2256, 20021, 1, 0, 0, 0, 2258, 20025, 1, 0, 0, 0, 2260, 20027, 1, 0, 0, 0, 2262, 20036, 1, 0, 0, 0, 2264, 20055, 1, 0, 0, 0, 2266, 20057, 1, 0, 0, 0, 2268, 20059, 1, 0, 0, 0, 2270, 20061, 1, 0, 0, 0, 2272, 20063, 1, 0, 0, 0, 2274, 20065, 1, 0, 0, 0, 2276, 20067, 1, 0, 0, 0, 2278, 20079, 1, 0, 0, 0, 2280, 20081, 1, 0, 0, 0, 2282, 20086, 1, 0, 0, 0, 2284, 20088, 1, 0, 0, 0, 2286, 20090, 1, 0, 0, 0, 2288, 20092, 1, 0, 0, 0, 2290, 20097, 1, 0, 0, 0, 2292, 20105, 1, 0, 0, 0, 2294, 20107, 1, 0, 0, 0, 2296, 20113, 1, 0, 0, 0, 2298, 20115, 1, 0, 0, 0, 2300, 20127, 1, 0, 0, 0, 2302, 20129, 1, 0, 0, 0, 2304, 20137, 1, 0, 0, 0, 2306, 20145, 1, 0, 0, 0, 2308, 20153, 1, 0, 0, 0, 2310, 20158, 1, 0, 0, 0, 2312, 20163, 1, 0, 0, 0, 2314, 20178, 1, 0, 0, 0, 2316, 20180, 1, 0, 0, 0, 2318, 20187, 1, 0, 0, 0, 2320, 20191, 1, 0, 0, 0, 2322, 20193, 1, 0, 0, 0, 2324, 20205, 1, 0, 0, 0, 2326, 20207, 1, 0, 0, 0, 2328, 20209, 1, 0, 0, 0, 2330, 20231, 1, 0, 0, 0, 2332, 20233, 1, 0, 0, 0, 2334, 20260, 1, 0, 0, 0, 2336, 20268, 1, 0, 0, 0, 2338, 20270, 1, 0, 0, 0, 2340, 20272, 1, 0, 0, 0, 2342, 20274, 1, 0, 0, 0, 2344, 20300, 1, 0, 0, 0, 2346, 20302, 1, 0, 0, 0, 2348, 20310, 1, 0, 0, 0, 2350, 20314, 1, 0, 0, 0, 2352, 20326, 1, 0, 0, 0, 2354, 20341, 1, 0, 0, 0, 2356, 20362, 1, 0, 0, 0, 2358, 20404, 1, 0, 0, 0, 2360, 20411, 1, 0, 0, 0, 2362, 20423, 1, 0, 0, 0, 2364, 20456, 1, 0, 0, 0, 2366, 20458, 1, 0, 0, 0, 2368, 20540, 1, 0, 0, 0, 2370, 20545, 1, 0, 0, 0, 2372, 20570, 1, 0, 0, 0, 2374, 20586, 1, 0, 0, 0, 2376, 20601, 1, 0, 0, 0, 2378, 20647, 1, 0, 0, 0, 2380, 20975, 1, 0, 0, 0, 2382, 21040, 1, 0, 0, 0, 2384, 21047, 1, 0, 0, 0, 2386, 21049, 1, 0, 0, 0, 2388, 21052, 1, 0, 0, 0, 2390, 21056, 1, 0, 0, 0, 2392, 21062, 1, 0, 0, 0, 2394, 21064, 1, 0, 0, 0, 2396, 21066, 1, 0, 0, 0, 2398, 21180, 1, 0, 0, 0, 2400, 21182, 1, 0, 0, 0, 2402, 21184, 1, 0, 0, 0, 2404, 21186, 1, 0, 0, 0, 2406, 2408, 3, 2240, 1120, 0, 2407, 2406, 1, 0, 0, 0, 2407, 2408, 1, 0, 0, 0, 2408, 2436, 1, 0, 0, 0, 2409, 2411, 3, 2242, 1121, 0, 2410, 2412, 5, 2467, 0, 0, 2411, 2410, 1, 0, 0, 0, 2411, 2412, 1, 0, 0, 0, 2412, 2414, 1, 0, 0, 0, 2413, 2415, 5, 2452, 0, 0, 2414, 2413, 1, 0, 0, 0, 2414, 2415, 1, 0, 0, 0, 2415, 2422, 1, 0, 0, 0, 2416, 2417, 3, 2, 1, 0, 2417, 2419, 5, 2467, 0, 0, 2418, 2420, 5, 2452, 0, 0, 2419, 2418, 1, 0, 0, 0, 2419, 2420, 1, 0, 0, 0, 2420, 2422, 1, 0, 0, 0, 2421, 2409, 1, 0, 0, 0, 2421, 2416, 1, 0, 0, 0, 2422, 2425, 1, 0, 0, 0, 2423, 2421, 1, 0, 0, 0, 2423, 2424, 1, 0, 0, 0, 2424, 2428, 1, 0, 0, 0, 2425, 2423, 1, 0, 0, 0, 2426, 2429, 3, 2242, 1121, 0, 2427, 2429, 3, 2, 1, 0, 2428, 2426, 1, 0, 0, 0, 2428, 2427, 1, 0, 0, 0, 2429, 2431, 1, 0, 0, 0, 2430, 2432, 5, 2467, 0, 0, 2431, 2430, 1, 0, 0, 0, 2431, 2432, 1, 0, 0, 0, 2432, 2434, 1, 0, 0, 0, 2433, 2435, 5, 2452, 0, 0, 2434, 2433, 1, 0, 0, 0, 2434, 2435, 1, 0, 0, 0, 2435, 2437, 1, 0, 0, 0, 2436, 2423, 1, 0, 0, 0, 2436, 2437, 1, 0, 0, 0, 2437, 2438, 1, 0, 0, 0, 2438, 2439, 5, 0, 0, 1, 2439, 1, 1, 0, 0, 0, 2440, 2582, 3, 1322, 661, 0, 2441, 2582, 3, 1332, 666, 0, 2442, 2582, 3, 1334, 667, 0, 2443, 2582, 3, 1336, 668, 0, 2444, 2582, 3, 1362, 681, 0, 2445, 2582, 3, 1470, 735, 0, 2446, 2582, 3, 816, 408, 0, 2447, 2582, 3, 4, 2, 0, 2448, 2582, 3, 94, 47, 0, 2449, 2582, 3, 98, 49, 0, 2450, 2582, 3, 96, 48, 0, 2451, 2582, 3, 512, 256, 0, 2452, 2582, 3, 552, 276, 0, 2453, 2582, 3, 100, 50, 0, 2454, 2582, 3, 792, 396, 0, 2455, 2582, 3, 132, 66, 0, 2456, 2582, 3, 930, 465, 0, 2457, 2582, 3, 940, 470, 0, 2458, 2582, 3, 956, 478, 0, 2459, 2582, 3, 974, 487, 0, 2460, 2582, 3, 128, 64, 0, 2461, 2582, 3, 154, 77, 0, 2462, 2582, 3, 168, 84, 0, 2463, 2582, 3, 174, 87, 0, 2464, 2582, 3, 182, 91, 0, 2465, 2582, 3, 1516, 758, 0, 2466, 2582, 3, 186, 93, 0, 2467, 2582, 3, 316, 158, 0, 2468, 2582, 3, 318, 159, 0, 2469, 2582, 3, 1306, 653, 0, 2470, 2582, 3, 1520, 760, 0, 2471, 2582, 3, 862, 431, 0, 2472, 2582, 3, 1508, 754, 0, 2473, 2582, 3, 204, 102, 0, 2474, 2582, 3, 240, 120, 0, 2475, 2582, 3, 556, 278, 0, 2476, 2582, 3, 830, 415, 0, 2477, 2582, 3, 1710, 855, 0, 2478, 2582, 3, 1802, 901, 0, 2479, 2582, 3, 328, 164, 0, 2480, 2582, 3, 378, 189, 0, 2481, 2582, 3, 404, 202, 0, 2482, 2582, 3, 1012, 506, 0, 2483, 2582, 3, 1008, 504, 0, 2484, 2582, 3, 426, 213, 0, 2485, 2582, 3, 1476, 738, 0, 2486, 2582, 3, 1478, 739, 0, 2487, 2582, 3, 1504, 752, 0, 2488, 2582, 3, 780, 390, 0, 2489, 2582, 3, 782, 391, 0, 2490, 2582, 3, 436, 218, 0, 2491, 2582, 3, 440, 220, 0, 2492, 2582, 3, 442, 221, 0, 2493, 2582, 3, 104, 52, 0, 2494, 2582, 3, 448, 224, 0, 2495, 2582, 3, 460, 230, 0, 2496, 2582, 3, 788, 394, 0, 2497, 2582, 3, 798, 399, 0, 2498, 2582, 3, 800, 400, 0, 2499, 2582, 3, 1020, 510, 0, 2500, 2582, 3, 996, 498, 0, 2501, 2582, 3, 948, 474, 0, 2502, 2582, 3, 954, 477, 0, 2503, 2582, 3, 978, 489, 0, 2504, 2582, 3, 1026, 513, 0, 2505, 2582, 3, 156, 78, 0, 2506, 2582, 3, 158, 79, 0, 2507, 2582, 3, 194, 97, 0, 2508, 2582, 3, 180, 90, 0, 2509, 2582, 3, 1014, 507, 0, 2510, 2582, 3, 1028, 514, 0, 2511, 2582, 3, 1030, 515, 0, 2512, 2582, 3, 200, 100, 0, 2513, 2582, 3, 322, 161, 0, 2514, 2582, 3, 1312, 656, 0, 2515, 2582, 3, 1308, 654, 0, 2516, 2582, 3, 1032, 516, 0, 2517, 2582, 3, 878, 439, 0, 2518, 2582, 3, 896, 448, 0, 2519, 2582, 3, 206, 103, 0, 2520, 2582, 3, 256, 128, 0, 2521, 2582, 3, 554, 277, 0, 2522, 2582, 3, 834, 417, 0, 2523, 2582, 3, 1338, 669, 0, 2524, 2582, 3, 1340, 670, 0, 2525, 2582, 3, 1342, 671, 0, 2526, 2582, 3, 1346, 673, 0, 2527, 2582, 3, 1348, 674, 0, 2528, 2582, 3, 1502, 751, 0, 2529, 2582, 3, 1506, 753, 0, 2530, 2582, 3, 1350, 675, 0, 2531, 2582, 3, 1352, 676, 0, 2532, 2582, 3, 1354, 677, 0, 2533, 2582, 3, 1344, 672, 0, 2534, 2582, 3, 92, 46, 0, 2535, 2582, 3, 790, 395, 0, 2536, 2582, 3, 744, 372, 0, 2537, 2582, 3, 748, 374, 0, 2538, 2582, 3, 750, 375, 0, 2539, 2582, 3, 794, 397, 0, 2540, 2582, 3, 796, 398, 0, 2541, 2582, 3, 150, 75, 0, 2542, 2582, 3, 1004, 502, 0, 2543, 2582, 3, 1006, 503, 0, 2544, 2582, 3, 958, 479, 0, 2545, 2582, 3, 976, 488, 0, 2546, 2582, 3, 184, 92, 0, 2547, 2582, 3, 152, 76, 0, 2548, 2582, 3, 170, 85, 0, 2549, 2582, 3, 172, 86, 0, 2550, 2582, 3, 188, 94, 0, 2551, 2582, 3, 192, 96, 0, 2552, 2582, 3, 190, 95, 0, 2553, 2582, 3, 314, 157, 0, 2554, 2582, 3, 1310, 655, 0, 2555, 2582, 3, 1290, 645, 0, 2556, 2582, 3, 1292, 646, 0, 2557, 2582, 3, 1294, 647, 0, 2558, 2582, 3, 202, 101, 0, 2559, 2582, 3, 238, 119, 0, 2560, 2582, 3, 558, 279, 0, 2561, 2582, 3, 1298, 649, 0, 2562, 2582, 3, 594, 297, 0, 2563, 2582, 3, 670, 335, 0, 2564, 2582, 3, 688, 344, 0, 2565, 2582, 3, 718, 359, 0, 2566, 2582, 3, 1300, 650, 0, 2567, 2582, 3, 1320, 660, 0, 2568, 2582, 3, 1318, 659, 0, 2569, 2582, 3, 1828, 914, 0, 2570, 2582, 3, 746, 373, 0, 2571, 2582, 3, 752, 376, 0, 2572, 2582, 3, 762, 381, 0, 2573, 2582, 3, 758, 379, 0, 2574, 2582, 3, 756, 378, 0, 2575, 2582, 3, 760, 380, 0, 2576, 2582, 3, 766, 383, 0, 2577, 2582, 3, 1842, 921, 0, 2578, 2582, 3, 1356, 678, 0, 2579, 2582, 3, 1288, 644, 0, 2580, 2582, 3, 714, 357, 0, 2581, 2440, 1, 0, 0, 0, 2581, 2441, 1, 0, 0, 0, 2581, 2442, 1, 0, 0, 0, 2581, 2443, 1, 0, 0, 0, 2581, 2444, 1, 0, 0, 0, 2581, 2445, 1, 0, 0, 0, 2581, 2446, 1, 0, 0, 0, 2581, 2447, 1, 0, 0, 0, 2581, 2448, 1, 0, 0, 0, 2581, 2449, 1, 0, 0, 0, 2581, 2450, 1, 0, 0, 0, 2581, 2451, 1, 0, 0, 0, 2581, 2452, 1, 0, 0, 0, 2581, 2453, 1, 0, 0, 0, 2581, 2454, 1, 0, 0, 0, 2581, 2455, 1, 0, 0, 0, 2581, 2456, 1, 0, 0, 0, 2581, 2457, 1, 0, 0, 0, 2581, 2458, 1, 0, 0, 0, 2581, 2459, 1, 0, 0, 0, 2581, 2460, 1, 0, 0, 0, 2581, 2461, 1, 0, 0, 0, 2581, 2462, 1, 0, 0, 0, 2581, 2463, 1, 0, 0, 0, 2581, 2464, 1, 0, 0, 0, 2581, 2465, 1, 0, 0, 0, 2581, 2466, 1, 0, 0, 0, 2581, 2467, 1, 0, 0, 0, 2581, 2468, 1, 0, 0, 0, 2581, 2469, 1, 0, 0, 0, 2581, 2470, 1, 0, 0, 0, 2581, 2471, 1, 0, 0, 0, 2581, 2472, 1, 0, 0, 0, 2581, 2473, 1, 0, 0, 0, 2581, 2474, 1, 0, 0, 0, 2581, 2475, 1, 0, 0, 0, 2581, 2476, 1, 0, 0, 0, 2581, 2477, 1, 0, 0, 0, 2581, 2478, 1, 0, 0, 0, 2581, 2479, 1, 0, 0, 0, 2581, 2480, 1, 0, 0, 0, 2581, 2481, 1, 0, 0, 0, 2581, 2482, 1, 0, 0, 0, 2581, 2483, 1, 0, 0, 0, 2581, 2484, 1, 0, 0, 0, 2581, 2485, 1, 0, 0, 0, 2581, 2486, 1, 0, 0, 0, 2581, 2487, 1, 0, 0, 0, 2581, 2488, 1, 0, 0, 0, 2581, 2489, 1, 0, 0, 0, 2581, 2490, 1, 0, 0, 0, 2581, 2491, 1, 0, 0, 0, 2581, 2492, 1, 0, 0, 0, 2581, 2493, 1, 0, 0, 0, 2581, 2494, 1, 0, 0, 0, 2581, 2495, 1, 0, 0, 0, 2581, 2496, 1, 0, 0, 0, 2581, 2497, 1, 0, 0, 0, 2581, 2498, 1, 0, 0, 0, 2581, 2499, 1, 0, 0, 0, 2581, 2500, 1, 0, 0, 0, 2581, 2501, 1, 0, 0, 0, 2581, 2502, 1, 0, 0, 0, 2581, 2503, 1, 0, 0, 0, 2581, 2504, 1, 0, 0, 0, 2581, 2505, 1, 0, 0, 0, 2581, 2506, 1, 0, 0, 0, 2581, 2507, 1, 0, 0, 0, 2581, 2508, 1, 0, 0, 0, 2581, 2509, 1, 0, 0, 0, 2581, 2510, 1, 0, 0, 0, 2581, 2511, 1, 0, 0, 0, 2581, 2512, 1, 0, 0, 0, 2581, 2513, 1, 0, 0, 0, 2581, 2514, 1, 0, 0, 0, 2581, 2515, 1, 0, 0, 0, 2581, 2516, 1, 0, 0, 0, 2581, 2517, 1, 0, 0, 0, 2581, 2518, 1, 0, 0, 0, 2581, 2519, 1, 0, 0, 0, 2581, 2520, 1, 0, 0, 0, 2581, 2521, 1, 0, 0, 0, 2581, 2522, 1, 0, 0, 0, 2581, 2523, 1, 0, 0, 0, 2581, 2524, 1, 0, 0, 0, 2581, 2525, 1, 0, 0, 0, 2581, 2526, 1, 0, 0, 0, 2581, 2527, 1, 0, 0, 0, 2581, 2528, 1, 0, 0, 0, 2581, 2529, 1, 0, 0, 0, 2581, 2530, 1, 0, 0, 0, 2581, 2531, 1, 0, 0, 0, 2581, 2532, 1, 0, 0, 0, 2581, 2533, 1, 0, 0, 0, 2581, 2534, 1, 0, 0, 0, 2581, 2535, 1, 0, 0, 0, 2581, 2536, 1, 0, 0, 0, 2581, 2537, 1, 0, 0, 0, 2581, 2538, 1, 0, 0, 0, 2581, 2539, 1, 0, 0, 0, 2581, 2540, 1, 0, 0, 0, 2581, 2541, 1, 0, 0, 0, 2581, 2542, 1, 0, 0, 0, 2581, 2543, 1, 0, 0, 0, 2581, 2544, 1, 0, 0, 0, 2581, 2545, 1, 0, 0, 0, 2581, 2546, 1, 0, 0, 0, 2581, 2547, 1, 0, 0, 0, 2581, 2548, 1, 0, 0, 0, 2581, 2549, 1, 0, 0, 0, 2581, 2550, 1, 0, 0, 0, 2581, 2551, 1, 0, 0, 0, 2581, 2552, 1, 0, 0, 0, 2581, 2553, 1, 0, 0, 0, 2581, 2554, 1, 0, 0, 0, 2581, 2555, 1, 0, 0, 0, 2581, 2556, 1, 0, 0, 0, 2581, 2557, 1, 0, 0, 0, 2581, 2558, 1, 0, 0, 0, 2581, 2559, 1, 0, 0, 0, 2581, 2560, 1, 0, 0, 0, 2581, 2561, 1, 0, 0, 0, 2581, 2562, 1, 0, 0, 0, 2581, 2563, 1, 0, 0, 0, 2581, 2564, 1, 0, 0, 0, 2581, 2565, 1, 0, 0, 0, 2581, 2566, 1, 0, 0, 0, 2581, 2567, 1, 0, 0, 0, 2581, 2568, 1, 0, 0, 0, 2581, 2569, 1, 0, 0, 0, 2581, 2570, 1, 0, 0, 0, 2581, 2571, 1, 0, 0, 0, 2581, 2572, 1, 0, 0, 0, 2581, 2573, 1, 0, 0, 0, 2581, 2574, 1, 0, 0, 0, 2581, 2575, 1, 0, 0, 0, 2581, 2576, 1, 0, 0, 0, 2581, 2577, 1, 0, 0, 0, 2581, 2578, 1, 0, 0, 0, 2581, 2579, 1, 0, 0, 0, 2581, 2580, 1, 0, 0, 0, 2582, 3, 1, 0, 0, 0, 2583, 2584, 5, 42, 0, 0, 2584, 2638, 5, 439, 0, 0, 2585, 2620, 3, 2392, 1196, 0, 2586, 2589, 3, 6, 3, 0, 2587, 2589, 3, 8, 4, 0, 2588, 2586, 1, 0, 0, 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, 10, 5, 0, 2593, 2588, 1, 0, 0, 0, 2593, 2592, 1, 0, 0, 0, 2594, 2596, 1, 0, 0, 0, 2595, 2597, 3, 24, 12, 0, 2596, 2595, 1, 0, 0, 0, 2596, 2597, 1, 0, 0, 0, 2597, 2621, 1, 0, 0, 0, 2598, 2619, 3, 12, 6, 0, 2599, 2619, 3, 16, 8, 0, 2600, 2619, 3, 18, 9, 0, 2601, 2619, 3, 20, 10, 0, 2602, 2619, 3, 24, 12, 0, 2603, 2619, 3, 28, 14, 0, 2604, 2619, 3, 30, 15, 0, 2605, 2619, 3, 40, 20, 0, 2606, 2619, 3, 44, 22, 0, 2607, 2619, 3, 46, 23, 0, 2608, 2619, 3, 52, 26, 0, 2609, 2619, 3, 54, 27, 0, 2610, 2619, 3, 56, 28, 0, 2611, 2619, 3, 58, 29, 0, 2612, 2619, 3, 60, 30, 0, 2613, 2619, 3, 62, 31, 0, 2614, 2619, 3, 64, 32, 0, 2615, 2619, 3, 66, 33, 0, 2616, 2619, 3, 68, 34, 0, 2617, 2619, 3, 74, 37, 0, 2618, 2598, 1, 0, 0, 0, 2618, 2599, 1, 0, 0, 0, 2618, 2600, 1, 0, 0, 0, 2618, 2601, 1, 0, 0, 0, 2618, 2602, 1, 0, 0, 0, 2618, 2603, 1, 0, 0, 0, 2618, 2604, 1, 0, 0, 0, 2618, 2605, 1, 0, 0, 0, 2618, 2606, 1, 0, 0, 0, 2618, 2607, 1, 0, 0, 0, 2618, 2608, 1, 0, 0, 0, 2618, 2609, 1, 0, 0, 0, 2618, 2610, 1, 0, 0, 0, 2618, 2611, 1, 0, 0, 0, 2618, 2612, 1, 0, 0, 0, 2618, 2613, 1, 0, 0, 0, 2618, 2614, 1, 0, 0, 0, 2618, 2615, 1, 0, 0, 0, 2618, 2616, 1, 0, 0, 0, 2618, 2617, 1, 0, 0, 0, 2619, 2621, 1, 0, 0, 0, 2620, 2593, 1, 0, 0, 0, 2620, 2618, 1, 0, 0, 0, 2621, 2639, 1, 0, 0, 0, 2622, 2627, 3, 2392, 1196, 0, 2623, 2624, 5, 2451, 0, 0, 2624, 2626, 3, 2392, 1196, 0, 2625, 2623, 1, 0, 0, 0, 2626, 2629, 1, 0, 0, 0, 2627, 2625, 1, 0, 0, 0, 2627, 2628, 1, 0, 0, 0, 2628, 2632, 1, 0, 0, 0, 2629, 2627, 1, 0, 0, 0, 2630, 2632, 5, 38, 0, 0, 2631, 2622, 1, 0, 0, 0, 2631, 2630, 1, 0, 0, 0, 2632, 2636, 1, 0, 0, 0, 2633, 2637, 3, 86, 43, 0, 2634, 2637, 3, 88, 44, 0, 2635, 2637, 3, 90, 45, 0, 2636, 2633, 1, 0, 0, 0, 2636, 2634, 1, 0, 0, 0, 2636, 2635, 1, 0, 0, 0, 2637, 2639, 1, 0, 0, 0, 2638, 2585, 1, 0, 0, 0, 2638, 2631, 1, 0, 0, 0, 2639, 5, 1, 0, 0, 0, 2640, 2661, 5, 21, 0, 0, 2641, 2642, 5, 1686, 0, 0, 2642, 2644, 3, 2392, 1196, 0, 2643, 2641, 1, 0, 0, 0, 2643, 2644, 1, 0, 0, 0, 2644, 2646, 1, 0, 0, 0, 2645, 2647, 3, 84, 42, 0, 2646, 2645, 1, 0, 0, 0, 2646, 2647, 1, 0, 0, 0, 2647, 2650, 1, 0, 0, 0, 2648, 2649, 5, 570, 0, 0, 2649, 2651, 3, 2392, 1196, 0, 2650, 2648, 1, 0, 0, 0, 2650, 2651, 1, 0, 0, 0, 2651, 2652, 1, 0, 0, 0, 2652, 2653, 5, 438, 0, 0, 2653, 2658, 3, 438, 219, 0, 2654, 2655, 5, 2451, 0, 0, 2655, 2657, 3, 438, 219, 0, 2656, 2654, 1, 0, 0, 0, 2657, 2660, 1, 0, 0, 0, 2658, 2656, 1, 0, 0, 0, 2658, 2659, 1, 0, 0, 0, 2659, 2662, 1, 0, 0, 0, 2660, 2658, 1, 0, 0, 0, 2661, 2643, 1, 0, 0, 0, 2662, 2663, 1, 0, 0, 0, 2663, 2661, 1, 0, 0, 0, 2663, 2664, 1, 0, 0, 0, 2664, 7, 1, 0, 0, 0, 2665, 2704, 5, 467, 0, 0, 2666, 2668, 3, 84, 42, 0, 2667, 2666, 1, 0, 0, 0, 2667, 2668, 1, 0, 0, 0, 2668, 2669, 1, 0, 0, 0, 2669, 2670, 5, 438, 0, 0, 2670, 2672, 3, 2392, 1196, 0, 2671, 2673, 3, 38, 19, 0, 2672, 2671, 1, 0, 0, 0, 2672, 2673, 1, 0, 0, 0, 2673, 2681, 1, 0, 0, 0, 2674, 2675, 5, 2451, 0, 0, 2675, 2677, 3, 2392, 1196, 0, 2676, 2678, 3, 38, 19, 0, 2677, 2676, 1, 0, 0, 0, 2677, 2678, 1, 0, 0, 0, 2678, 2680, 1, 0, 0, 0, 2679, 2674, 1, 0, 0, 0, 2680, 2683, 1, 0, 0, 0, 2681, 2679, 1, 0, 0, 0, 2681, 2682, 1, 0, 0, 0, 2682, 2705, 1, 0, 0, 0, 2683, 2681, 1, 0, 0, 0, 2684, 2685, 5, 441, 0, 0, 2685, 2687, 5, 736, 0, 0, 2686, 2688, 3, 84, 42, 0, 2687, 2686, 1, 0, 0, 0, 2687, 2688, 1, 0, 0, 0, 2688, 2689, 1, 0, 0, 0, 2689, 2690, 5, 570, 0, 0, 2690, 2692, 3, 2392, 1196, 0, 2691, 2693, 3, 38, 19, 0, 2692, 2691, 1, 0, 0, 0, 2692, 2693, 1, 0, 0, 0, 2693, 2701, 1, 0, 0, 0, 2694, 2695, 5, 2451, 0, 0, 2695, 2697, 3, 2392, 1196, 0, 2696, 2698, 3, 38, 19, 0, 2697, 2696, 1, 0, 0, 0, 2697, 2698, 1, 0, 0, 0, 2698, 2700, 1, 0, 0, 0, 2699, 2694, 1, 0, 0, 0, 2700, 2703, 1, 0, 0, 0, 2701, 2699, 1, 0, 0, 0, 2701, 2702, 1, 0, 0, 0, 2702, 2705, 1, 0, 0, 0, 2703, 2701, 1, 0, 0, 0, 2704, 2667, 1, 0, 0, 0, 2704, 2684, 1, 0, 0, 0, 2705, 9, 1, 0, 0, 0, 2706, 2707, 5, 1565, 0, 0, 2707, 2710, 5, 38, 0, 0, 2708, 2709, 5, 1697, 0, 0, 2709, 2711, 3, 1170, 585, 0, 2710, 2708, 1, 0, 0, 0, 2710, 2711, 1, 0, 0, 0, 2711, 11, 1, 0, 0, 0, 2712, 2713, 5, 1560, 0, 0, 2713, 2714, 5, 438, 0, 0, 2714, 2715, 3, 2392, 1196, 0, 2715, 2716, 5, 2306, 0, 0, 2716, 2718, 5, 2441, 0, 0, 2717, 2719, 3, 38, 19, 0, 2718, 2717, 1, 0, 0, 0, 2718, 2719, 1, 0, 0, 0, 2719, 2729, 1, 0, 0, 0, 2720, 2721, 5, 2451, 0, 0, 2721, 2722, 3, 2392, 1196, 0, 2722, 2723, 5, 2306, 0, 0, 2723, 2725, 5, 2441, 0, 0, 2724, 2726, 3, 38, 19, 0, 2725, 2724, 1, 0, 0, 0, 2725, 2726, 1, 0, 0, 0, 2726, 2728, 1, 0, 0, 0, 2727, 2720, 1, 0, 0, 0, 2728, 2731, 1, 0, 0, 0, 2729, 2727, 1, 0, 0, 0, 2729, 2730, 1, 0, 0, 0, 2730, 2734, 1, 0, 0, 0, 2731, 2729, 1, 0, 0, 0, 2732, 2733, 5, 1422, 0, 0, 2733, 2735, 3, 2384, 1192, 0, 2734, 2732, 1, 0, 0, 0, 2734, 2735, 1, 0, 0, 0, 2735, 2737, 1, 0, 0, 0, 2736, 2738, 3, 14, 7, 0, 2737, 2736, 1, 0, 0, 0, 2737, 2738, 1, 0, 0, 0, 2738, 13, 1, 0, 0, 0, 2739, 2740, 7, 0, 0, 0, 2740, 15, 1, 0, 0, 0, 2741, 2758, 5, 1557, 0, 0, 2742, 2743, 5, 438, 0, 0, 2743, 2744, 3, 2392, 1196, 0, 2744, 2745, 5, 2139, 0, 0, 2745, 2753, 3, 2392, 1196, 0, 2746, 2747, 5, 2451, 0, 0, 2747, 2748, 3, 2392, 1196, 0, 2748, 2749, 5, 2139, 0, 0, 2749, 2750, 3, 2392, 1196, 0, 2750, 2752, 1, 0, 0, 0, 2751, 2746, 1, 0, 0, 0, 2752, 2755, 1, 0, 0, 0, 2753, 2751, 1, 0, 0, 0, 2753, 2754, 1, 0, 0, 0, 2754, 2759, 1, 0, 0, 0, 2755, 2753, 1, 0, 0, 0, 2756, 2757, 5, 441, 0, 0, 2757, 2759, 5, 38, 0, 0, 2758, 2742, 1, 0, 0, 0, 2758, 2756, 1, 0, 0, 0, 2759, 17, 1, 0, 0, 0, 2760, 2792, 5, 1254, 0, 0, 2761, 2763, 3, 84, 42, 0, 2762, 2761, 1, 0, 0, 0, 2762, 2763, 1, 0, 0, 0, 2763, 2764, 1, 0, 0, 0, 2764, 2765, 5, 438, 0, 0, 2765, 2770, 3, 2392, 1196, 0, 2766, 2767, 5, 2451, 0, 0, 2767, 2769, 3, 2392, 1196, 0, 2768, 2766, 1, 0, 0, 0, 2769, 2772, 1, 0, 0, 0, 2770, 2768, 1, 0, 0, 0, 2770, 2771, 1, 0, 0, 0, 2771, 2788, 1, 0, 0, 0, 2772, 2770, 1, 0, 0, 0, 2773, 2774, 5, 441, 0, 0, 2774, 2776, 5, 736, 0, 0, 2775, 2777, 3, 84, 42, 0, 2776, 2775, 1, 0, 0, 0, 2776, 2777, 1, 0, 0, 0, 2777, 2778, 1, 0, 0, 0, 2778, 2779, 5, 570, 0, 0, 2779, 2784, 3, 2392, 1196, 0, 2780, 2781, 5, 2451, 0, 0, 2781, 2783, 3, 2392, 1196, 0, 2782, 2780, 1, 0, 0, 0, 2783, 2786, 1, 0, 0, 0, 2784, 2782, 1, 0, 0, 0, 2784, 2785, 1, 0, 0, 0, 2785, 2788, 1, 0, 0, 0, 2786, 2784, 1, 0, 0, 0, 2787, 2762, 1, 0, 0, 0, 2787, 2773, 1, 0, 0, 0, 2788, 2789, 1, 0, 0, 0, 2789, 2787, 1, 0, 0, 0, 2789, 2790, 1, 0, 0, 0, 2790, 2793, 1, 0, 0, 0, 2791, 2793, 5, 38, 0, 0, 2792, 2787, 1, 0, 0, 0, 2792, 2791, 1, 0, 0, 0, 2793, 2796, 1, 0, 0, 0, 2794, 2795, 5, 1422, 0, 0, 2795, 2797, 3, 2384, 1192, 0, 2796, 2794, 1, 0, 0, 0, 2796, 2797, 1, 0, 0, 0, 2797, 2799, 1, 0, 0, 0, 2798, 2800, 3, 14, 7, 0, 2799, 2798, 1, 0, 0, 0, 2799, 2800, 1, 0, 0, 0, 2800, 19, 1, 0, 0, 0, 2801, 2828, 5, 1241, 0, 0, 2802, 2804, 3, 84, 42, 0, 2803, 2802, 1, 0, 0, 0, 2803, 2804, 1, 0, 0, 0, 2804, 2805, 1, 0, 0, 0, 2805, 2806, 5, 438, 0, 0, 2806, 2811, 3, 2392, 1196, 0, 2807, 2808, 5, 2451, 0, 0, 2808, 2810, 3, 2392, 1196, 0, 2809, 2807, 1, 0, 0, 0, 2810, 2813, 1, 0, 0, 0, 2811, 2809, 1, 0, 0, 0, 2811, 2812, 1, 0, 0, 0, 2812, 2829, 1, 0, 0, 0, 2813, 2811, 1, 0, 0, 0, 2814, 2815, 5, 441, 0, 0, 2815, 2817, 5, 736, 0, 0, 2816, 2818, 3, 84, 42, 0, 2817, 2816, 1, 0, 0, 0, 2817, 2818, 1, 0, 0, 0, 2818, 2819, 1, 0, 0, 0, 2819, 2820, 5, 570, 0, 0, 2820, 2825, 3, 2392, 1196, 0, 2821, 2822, 5, 2451, 0, 0, 2822, 2824, 3, 2392, 1196, 0, 2823, 2821, 1, 0, 0, 0, 2824, 2827, 1, 0, 0, 0, 2825, 2823, 1, 0, 0, 0, 2825, 2826, 1, 0, 0, 0, 2826, 2829, 1, 0, 0, 0, 2827, 2825, 1, 0, 0, 0, 2828, 2803, 1, 0, 0, 0, 2828, 2814, 1, 0, 0, 0, 2829, 2831, 1, 0, 0, 0, 2830, 2832, 3, 22, 11, 0, 2831, 2830, 1, 0, 0, 0, 2831, 2832, 1, 0, 0, 0, 2832, 21, 1, 0, 0, 0, 2833, 2834, 5, 467, 0, 0, 2834, 2835, 5, 33, 0, 0, 2835, 2836, 3, 2384, 1192, 0, 2836, 2837, 7, 1, 0, 0, 2837, 23, 1, 0, 0, 0, 2838, 2858, 5, 1508, 0, 0, 2839, 2841, 7, 2, 0, 0, 2840, 2842, 3, 26, 13, 0, 2841, 2840, 1, 0, 0, 0, 2842, 2843, 1, 0, 0, 0, 2843, 2841, 1, 0, 0, 0, 2843, 2844, 1, 0, 0, 0, 2844, 2846, 1, 0, 0, 0, 2845, 2839, 1, 0, 0, 0, 2845, 2846, 1, 0, 0, 0, 2846, 2847, 1, 0, 0, 0, 2847, 2848, 5, 1422, 0, 0, 2848, 2849, 3, 2384, 1192, 0, 2849, 2851, 1, 0, 0, 0, 2850, 2852, 7, 0, 0, 0, 2851, 2850, 1, 0, 0, 0, 2851, 2852, 1, 0, 0, 0, 2852, 2859, 1, 0, 0, 0, 2853, 2854, 5, 978, 0, 0, 2854, 2856, 5, 1422, 0, 0, 2855, 2857, 3, 2384, 1192, 0, 2856, 2855, 1, 0, 0, 0, 2856, 2857, 1, 0, 0, 0, 2857, 2859, 1, 0, 0, 0, 2858, 2845, 1, 0, 0, 0, 2858, 2853, 1, 0, 0, 0, 2859, 25, 1, 0, 0, 0, 2860, 2861, 3, 2392, 1196, 0, 2861, 27, 1, 0, 0, 0, 2862, 2864, 5, 200, 0, 0, 2863, 2865, 5, 38, 0, 0, 2864, 2863, 1, 0, 0, 0, 2864, 2865, 1, 0, 0, 0, 2865, 2867, 1, 0, 0, 0, 2866, 2868, 7, 3, 0, 0, 2867, 2866, 1, 0, 0, 0, 2867, 2868, 1, 0, 0, 0, 2868, 29, 1, 0, 0, 0, 2869, 2870, 7, 4, 0, 0, 2870, 2871, 5, 2088, 0, 0, 2871, 2872, 3, 2392, 1196, 0, 2872, 2879, 3, 32, 16, 0, 2873, 2874, 5, 2451, 0, 0, 2874, 2875, 3, 2392, 1196, 0, 2875, 2876, 3, 32, 16, 0, 2876, 2878, 1, 0, 0, 0, 2877, 2873, 1, 0, 0, 0, 2878, 2881, 1, 0, 0, 0, 2879, 2877, 1, 0, 0, 0, 2879, 2880, 1, 0, 0, 0, 2880, 2893, 1, 0, 0, 0, 2881, 2879, 1, 0, 0, 0, 2882, 2883, 5, 467, 0, 0, 2883, 2884, 5, 2088, 0, 0, 2884, 2889, 3, 2392, 1196, 0, 2885, 2886, 5, 2451, 0, 0, 2886, 2888, 3, 2392, 1196, 0, 2887, 2885, 1, 0, 0, 0, 2888, 2891, 1, 0, 0, 0, 2889, 2887, 1, 0, 0, 0, 2889, 2890, 1, 0, 0, 0, 2890, 2893, 1, 0, 0, 0, 2891, 2889, 1, 0, 0, 0, 2892, 2869, 1, 0, 0, 0, 2892, 2882, 1, 0, 0, 0, 2893, 31, 1, 0, 0, 0, 2894, 2895, 5, 84, 0, 0, 2895, 2897, 5, 2445, 0, 0, 2896, 2898, 3, 34, 17, 0, 2897, 2896, 1, 0, 0, 0, 2897, 2898, 1, 0, 0, 0, 2898, 2900, 1, 0, 0, 0, 2899, 2901, 3, 36, 18, 0, 2900, 2899, 1, 0, 0, 0, 2900, 2901, 1, 0, 0, 0, 2901, 2902, 1, 0, 0, 0, 2902, 2903, 5, 2446, 0, 0, 2903, 33, 1, 0, 0, 0, 2904, 2905, 7, 5, 0, 0, 2905, 35, 1, 0, 0, 0, 2906, 2907, 7, 6, 0, 0, 2907, 37, 1, 0, 0, 0, 2908, 2909, 7, 7, 0, 0, 2909, 39, 1, 0, 0, 0, 2910, 2911, 5, 21, 0, 0, 2911, 2912, 5, 424, 0, 0, 2912, 2917, 3, 1452, 726, 0, 2913, 2914, 5, 2451, 0, 0, 2914, 2916, 3, 1452, 726, 0, 2915, 2913, 1, 0, 0, 0, 2916, 2919, 1, 0, 0, 0, 2917, 2915, 1, 0, 0, 0, 2917, 2918, 1, 0, 0, 0, 2918, 2952, 1, 0, 0, 0, 2919, 2917, 1, 0, 0, 0, 2920, 2921, 5, 467, 0, 0, 2921, 2922, 5, 424, 0, 0, 2922, 2924, 3, 1452, 726, 0, 2923, 2925, 3, 38, 19, 0, 2924, 2923, 1, 0, 0, 0, 2924, 2925, 1, 0, 0, 0, 2925, 2933, 1, 0, 0, 0, 2926, 2927, 5, 2451, 0, 0, 2927, 2929, 3, 1452, 726, 0, 2928, 2930, 3, 38, 19, 0, 2929, 2928, 1, 0, 0, 0, 2929, 2930, 1, 0, 0, 0, 2930, 2932, 1, 0, 0, 0, 2931, 2926, 1, 0, 0, 0, 2932, 2935, 1, 0, 0, 0, 2933, 2931, 1, 0, 0, 0, 2933, 2934, 1, 0, 0, 0, 2934, 2952, 1, 0, 0, 0, 2935, 2933, 1, 0, 0, 0, 2936, 2937, 5, 1557, 0, 0, 2937, 2938, 5, 424, 0, 0, 2938, 2939, 3, 42, 21, 0, 2939, 2940, 5, 2139, 0, 0, 2940, 2948, 3, 42, 21, 0, 2941, 2942, 5, 2451, 0, 0, 2942, 2943, 3, 42, 21, 0, 2943, 2944, 5, 2139, 0, 0, 2944, 2945, 3, 42, 21, 0, 2945, 2947, 1, 0, 0, 0, 2946, 2941, 1, 0, 0, 0, 2947, 2950, 1, 0, 0, 0, 2948, 2946, 1, 0, 0, 0, 2948, 2949, 1, 0, 0, 0, 2949, 2952, 1, 0, 0, 0, 2950, 2948, 1, 0, 0, 0, 2951, 2910, 1, 0, 0, 0, 2951, 2920, 1, 0, 0, 0, 2951, 2936, 1, 0, 0, 0, 2952, 41, 1, 0, 0, 0, 2953, 2954, 5, 2441, 0, 0, 2954, 43, 1, 0, 0, 0, 2955, 2956, 5, 21, 0, 0, 2956, 2957, 5, 37, 0, 0, 2957, 2958, 5, 2441, 0, 0, 2958, 2959, 5, 618, 0, 0, 2959, 2966, 5, 2441, 0, 0, 2960, 2961, 5, 2451, 0, 0, 2961, 2962, 5, 2441, 0, 0, 2962, 2963, 5, 618, 0, 0, 2963, 2965, 5, 2441, 0, 0, 2964, 2960, 1, 0, 0, 0, 2965, 2968, 1, 0, 0, 0, 2966, 2964, 1, 0, 0, 0, 2966, 2967, 1, 0, 0, 0, 2967, 2994, 1, 0, 0, 0, 2968, 2966, 1, 0, 0, 0, 2969, 2970, 5, 467, 0, 0, 2970, 2971, 5, 37, 0, 0, 2971, 2976, 5, 2441, 0, 0, 2972, 2973, 5, 2451, 0, 0, 2973, 2975, 5, 2441, 0, 0, 2974, 2972, 1, 0, 0, 0, 2975, 2978, 1, 0, 0, 0, 2976, 2974, 1, 0, 0, 0, 2976, 2977, 1, 0, 0, 0, 2977, 2994, 1, 0, 0, 0, 2978, 2976, 1, 0, 0, 0, 2979, 2980, 5, 1557, 0, 0, 2980, 2981, 5, 37, 0, 0, 2981, 2982, 5, 2441, 0, 0, 2982, 2983, 5, 2139, 0, 0, 2983, 2990, 5, 2441, 0, 0, 2984, 2985, 5, 2451, 0, 0, 2985, 2986, 5, 2441, 0, 0, 2986, 2987, 5, 2139, 0, 0, 2987, 2989, 5, 2441, 0, 0, 2988, 2984, 1, 0, 0, 0, 2989, 2992, 1, 0, 0, 0, 2990, 2988, 1, 0, 0, 0, 2990, 2991, 1, 0, 0, 0, 2991, 2994, 1, 0, 0, 0, 2992, 2990, 1, 0, 0, 0, 2993, 2955, 1, 0, 0, 0, 2993, 2969, 1, 0, 0, 0, 2993, 2979, 1, 0, 0, 0, 2994, 45, 1, 0, 0, 0, 2995, 3007, 3, 48, 24, 0, 2996, 3007, 3, 50, 25, 0, 2997, 2998, 5, 1565, 0, 0, 2998, 2999, 5, 2289, 0, 0, 2999, 3000, 3, 2392, 1196, 0, 3000, 3001, 5, 1697, 0, 0, 3001, 3002, 3, 1170, 585, 0, 3002, 3007, 1, 0, 0, 0, 3003, 3004, 5, 467, 0, 0, 3004, 3005, 5, 2289, 0, 0, 3005, 3007, 3, 2392, 1196, 0, 3006, 2995, 1, 0, 0, 0, 3006, 2996, 1, 0, 0, 0, 3006, 2997, 1, 0, 0, 0, 3006, 3003, 1, 0, 0, 0, 3007, 47, 1, 0, 0, 0, 3008, 3009, 5, 21, 0, 0, 3009, 3010, 5, 2289, 0, 0, 3010, 3011, 3, 2392, 1196, 0, 3011, 3012, 5, 1697, 0, 0, 3012, 3014, 3, 1170, 585, 0, 3013, 3015, 3, 34, 17, 0, 3014, 3013, 1, 0, 0, 0, 3014, 3015, 1, 0, 0, 0, 3015, 3020, 1, 0, 0, 0, 3016, 3017, 5, 1767, 0, 0, 3017, 3018, 3, 2384, 1192, 0, 3018, 3019, 7, 8, 0, 0, 3019, 3021, 1, 0, 0, 0, 3020, 3016, 1, 0, 0, 0, 3020, 3021, 1, 0, 0, 0, 3021, 3024, 1, 0, 0, 0, 3022, 3023, 5, 1766, 0, 0, 3023, 3025, 3, 2384, 1192, 0, 3024, 3022, 1, 0, 0, 0, 3024, 3025, 1, 0, 0, 0, 3025, 49, 1, 0, 0, 0, 3026, 3027, 5, 978, 0, 0, 3027, 3028, 5, 2289, 0, 0, 3028, 3031, 3, 2392, 1196, 0, 3029, 3030, 5, 987, 0, 0, 3030, 3032, 5, 2441, 0, 0, 3031, 3029, 1, 0, 0, 0, 3031, 3032, 1, 0, 0, 0, 3032, 3035, 1, 0, 0, 0, 3033, 3034, 5, 2214, 0, 0, 3034, 3036, 5, 2441, 0, 0, 3035, 3033, 1, 0, 0, 0, 3035, 3036, 1, 0, 0, 0, 3036, 51, 1, 0, 0, 0, 3037, 3038, 5, 1669, 0, 0, 3038, 3039, 5, 83, 0, 0, 3039, 3040, 5, 2441, 0, 0, 3040, 3041, 5, 2469, 0, 0, 3041, 3042, 5, 2441, 0, 0, 3042, 53, 1, 0, 0, 0, 3043, 3044, 5, 467, 0, 0, 3044, 3045, 5, 587, 0, 0, 3045, 3050, 3, 1452, 726, 0, 3046, 3047, 5, 2451, 0, 0, 3047, 3049, 3, 1452, 726, 0, 3048, 3046, 1, 0, 0, 0, 3049, 3052, 1, 0, 0, 0, 3050, 3048, 1, 0, 0, 0, 3050, 3051, 1, 0, 0, 0, 3051, 55, 1, 0, 0, 0, 3052, 3050, 1, 0, 0, 0, 3053, 3054, 5, 298, 0, 0, 3054, 3055, 5, 1522, 0, 0, 3055, 3056, 5, 2139, 0, 0, 3056, 3057, 5, 607, 0, 0, 3057, 57, 1, 0, 0, 0, 3058, 3059, 5, 21, 0, 0, 3059, 3060, 5, 2231, 0, 0, 3060, 3061, 5, 2441, 0, 0, 3061, 3062, 5, 2306, 0, 0, 3062, 3063, 5, 934, 0, 0, 3063, 3068, 5, 2441, 0, 0, 3064, 3065, 5, 2451, 0, 0, 3065, 3067, 5, 2441, 0, 0, 3066, 3064, 1, 0, 0, 0, 3067, 3070, 1, 0, 0, 0, 3068, 3066, 1, 0, 0, 0, 3068, 3069, 1, 0, 0, 0, 3069, 3088, 1, 0, 0, 0, 3070, 3068, 1, 0, 0, 0, 3071, 3072, 5, 978, 0, 0, 3072, 3073, 5, 2231, 0, 0, 3073, 3074, 5, 2441, 0, 0, 3074, 3075, 7, 9, 0, 0, 3075, 3076, 5, 934, 0, 0, 3076, 3081, 5, 2441, 0, 0, 3077, 3078, 5, 2451, 0, 0, 3078, 3080, 5, 2441, 0, 0, 3079, 3077, 1, 0, 0, 0, 3080, 3083, 1, 0, 0, 0, 3081, 3079, 1, 0, 0, 0, 3081, 3082, 1, 0, 0, 0, 3082, 3088, 1, 0, 0, 0, 3083, 3081, 1, 0, 0, 0, 3084, 3085, 5, 467, 0, 0, 3085, 3086, 5, 2231, 0, 0, 3086, 3088, 5, 2441, 0, 0, 3087, 3058, 1, 0, 0, 0, 3087, 3071, 1, 0, 0, 0, 3087, 3084, 1, 0, 0, 0, 3088, 59, 1, 0, 0, 0, 3089, 3090, 5, 21, 0, 0, 3090, 3091, 5, 2235, 0, 0, 3091, 3096, 5, 2441, 0, 0, 3092, 3093, 5, 2451, 0, 0, 3093, 3095, 5, 2441, 0, 0, 3094, 3092, 1, 0, 0, 0, 3095, 3098, 1, 0, 0, 0, 3096, 3094, 1, 0, 0, 0, 3096, 3097, 1, 0, 0, 0, 3097, 3127, 1, 0, 0, 0, 3098, 3096, 1, 0, 0, 0, 3099, 3100, 5, 467, 0, 0, 3100, 3101, 5, 2235, 0, 0, 3101, 3106, 5, 2441, 0, 0, 3102, 3103, 5, 2451, 0, 0, 3103, 3105, 5, 2441, 0, 0, 3104, 3102, 1, 0, 0, 0, 3105, 3108, 1, 0, 0, 0, 3106, 3104, 1, 0, 0, 0, 3106, 3107, 1, 0, 0, 0, 3107, 3110, 1, 0, 0, 0, 3108, 3106, 1, 0, 0, 0, 3109, 3111, 5, 179, 0, 0, 3110, 3109, 1, 0, 0, 0, 3110, 3111, 1, 0, 0, 0, 3111, 3127, 1, 0, 0, 0, 3112, 3113, 5, 1560, 0, 0, 3113, 3114, 5, 2235, 0, 0, 3114, 3115, 5, 2441, 0, 0, 3115, 3116, 5, 2306, 0, 0, 3116, 3123, 5, 2441, 0, 0, 3117, 3118, 5, 2451, 0, 0, 3118, 3119, 5, 2441, 0, 0, 3119, 3120, 5, 2306, 0, 0, 3120, 3122, 5, 2441, 0, 0, 3121, 3117, 1, 0, 0, 0, 3122, 3125, 1, 0, 0, 0, 3123, 3121, 1, 0, 0, 0, 3123, 3124, 1, 0, 0, 0, 3124, 3127, 1, 0, 0, 0, 3125, 3123, 1, 0, 0, 0, 3126, 3089, 1, 0, 0, 0, 3126, 3099, 1, 0, 0, 0, 3126, 3112, 1, 0, 0, 0, 3127, 61, 1, 0, 0, 0, 3128, 3129, 5, 1669, 0, 0, 3129, 3130, 5, 1386, 0, 0, 3130, 3131, 7, 10, 0, 0, 3131, 3135, 5, 2469, 0, 0, 3132, 3136, 5, 1131, 0, 0, 3133, 3134, 5, 1503, 0, 0, 3134, 3136, 7, 11, 0, 0, 3135, 3132, 1, 0, 0, 0, 3135, 3133, 1, 0, 0, 0, 3136, 3147, 1, 0, 0, 0, 3137, 3138, 5, 2451, 0, 0, 3138, 3139, 7, 10, 0, 0, 3139, 3143, 5, 2469, 0, 0, 3140, 3144, 5, 1131, 0, 0, 3141, 3142, 5, 1503, 0, 0, 3142, 3144, 7, 11, 0, 0, 3143, 3140, 1, 0, 0, 0, 3143, 3141, 1, 0, 0, 0, 3144, 3146, 1, 0, 0, 0, 3145, 3137, 1, 0, 0, 0, 3146, 3149, 1, 0, 0, 0, 3147, 3145, 1, 0, 0, 0, 3147, 3148, 1, 0, 0, 0, 3148, 3150, 1, 0, 0, 0, 3149, 3147, 1, 0, 0, 0, 3150, 3151, 5, 618, 0, 0, 3151, 3152, 5, 587, 0, 0, 3152, 3157, 5, 2441, 0, 0, 3153, 3154, 5, 2451, 0, 0, 3154, 3156, 5, 2441, 0, 0, 3155, 3153, 1, 0, 0, 0, 3156, 3159, 1, 0, 0, 0, 3157, 3155, 1, 0, 0, 0, 3157, 3158, 1, 0, 0, 0, 3158, 63, 1, 0, 0, 0, 3159, 3157, 1, 0, 0, 0, 3160, 3161, 5, 1669, 0, 0, 3161, 3162, 5, 1324, 0, 0, 3162, 3163, 7, 12, 0, 0, 3163, 3164, 5, 2469, 0, 0, 3164, 3171, 5, 2441, 0, 0, 3165, 3166, 5, 2451, 0, 0, 3166, 3167, 7, 12, 0, 0, 3167, 3168, 5, 2469, 0, 0, 3168, 3170, 5, 2441, 0, 0, 3169, 3165, 1, 0, 0, 0, 3170, 3173, 1, 0, 0, 0, 3171, 3169, 1, 0, 0, 0, 3171, 3172, 1, 0, 0, 0, 3172, 3174, 1, 0, 0, 0, 3173, 3171, 1, 0, 0, 0, 3174, 3175, 5, 618, 0, 0, 3175, 3176, 5, 587, 0, 0, 3176, 3181, 5, 2441, 0, 0, 3177, 3178, 5, 2451, 0, 0, 3178, 3180, 5, 2441, 0, 0, 3179, 3177, 1, 0, 0, 0, 3180, 3183, 1, 0, 0, 0, 3181, 3179, 1, 0, 0, 0, 3181, 3182, 1, 0, 0, 0, 3182, 65, 1, 0, 0, 0, 3183, 3181, 1, 0, 0, 0, 3184, 3189, 5, 1627, 0, 0, 3185, 3186, 5, 587, 0, 0, 3186, 3190, 5, 2441, 0, 0, 3187, 3188, 5, 438, 0, 0, 3188, 3190, 3, 2392, 1196, 0, 3189, 3185, 1, 0, 0, 0, 3189, 3187, 1, 0, 0, 0, 3189, 3190, 1, 0, 0, 0, 3190, 3192, 1, 0, 0, 0, 3191, 3193, 7, 3, 0, 0, 3192, 3191, 1, 0, 0, 0, 3192, 3193, 1, 0, 0, 0, 3193, 3196, 1, 0, 0, 0, 3194, 3195, 5, 1422, 0, 0, 3195, 3197, 7, 13, 0, 0, 3196, 3194, 1, 0, 0, 0, 3196, 3197, 1, 0, 0, 0, 3197, 3199, 1, 0, 0, 0, 3198, 3200, 3, 14, 7, 0, 3199, 3198, 1, 0, 0, 0, 3199, 3200, 1, 0, 0, 0, 3200, 3202, 1, 0, 0, 0, 3201, 3203, 3, 38, 19, 0, 3202, 3201, 1, 0, 0, 0, 3202, 3203, 1, 0, 0, 0, 3203, 3205, 1, 0, 0, 0, 3204, 3206, 5, 1759, 0, 0, 3205, 3204, 1, 0, 0, 0, 3205, 3206, 1, 0, 0, 0, 3206, 67, 1, 0, 0, 0, 3207, 3208, 5, 21, 0, 0, 3208, 3209, 5, 1489, 0, 0, 3209, 3215, 3, 2392, 1196, 0, 3210, 3211, 5, 1669, 0, 0, 3211, 3212, 3, 70, 35, 0, 3212, 3213, 5, 2469, 0, 0, 3213, 3214, 3, 72, 36, 0, 3214, 3216, 1, 0, 0, 0, 3215, 3210, 1, 0, 0, 0, 3215, 3216, 1, 0, 0, 0, 3216, 3235, 1, 0, 0, 0, 3217, 3218, 5, 978, 0, 0, 3218, 3219, 5, 1489, 0, 0, 3219, 3220, 3, 2392, 1196, 0, 3220, 3221, 5, 1669, 0, 0, 3221, 3222, 3, 70, 35, 0, 3222, 3223, 5, 2469, 0, 0, 3223, 3224, 3, 72, 36, 0, 3224, 3235, 1, 0, 0, 0, 3225, 3226, 5, 990, 0, 0, 3226, 3227, 5, 1489, 0, 0, 3227, 3228, 3, 2392, 1196, 0, 3228, 3229, 5, 2139, 0, 0, 3229, 3230, 3, 2392, 1196, 0, 3230, 3235, 1, 0, 0, 0, 3231, 3232, 5, 467, 0, 0, 3232, 3233, 5, 1489, 0, 0, 3233, 3235, 3, 2392, 1196, 0, 3234, 3207, 1, 0, 0, 0, 3234, 3217, 1, 0, 0, 0, 3234, 3225, 1, 0, 0, 0, 3234, 3231, 1, 0, 0, 0, 3235, 69, 1, 0, 0, 0, 3236, 3237, 3, 2392, 1196, 0, 3237, 71, 1, 0, 0, 0, 3238, 3239, 3, 2392, 1196, 0, 3239, 73, 1, 0, 0, 0, 3240, 3245, 3, 76, 38, 0, 3241, 3245, 3, 78, 39, 0, 3242, 3245, 3, 80, 40, 0, 3243, 3245, 3, 82, 41, 0, 3244, 3240, 1, 0, 0, 0, 3244, 3241, 1, 0, 0, 0, 3244, 3242, 1, 0, 0, 0, 3244, 3243, 1, 0, 0, 0, 3245, 75, 1, 0, 0, 0, 3246, 3247, 5, 21, 0, 0, 3247, 3248, 5, 589, 0, 0, 3248, 3252, 3, 2392, 1196, 0, 3249, 3250, 7, 14, 0, 0, 3250, 3253, 3, 2392, 1196, 0, 3251, 3253, 5, 2088, 0, 0, 3252, 3249, 1, 0, 0, 0, 3252, 3251, 1, 0, 0, 0, 3253, 3257, 1, 0, 0, 0, 3254, 3255, 5, 626, 0, 0, 3255, 3256, 5, 2088, 0, 0, 3256, 3258, 3, 2392, 1196, 0, 3257, 3254, 1, 0, 0, 0, 3257, 3258, 1, 0, 0, 0, 3258, 3263, 1, 0, 0, 0, 3259, 3260, 5, 1669, 0, 0, 3260, 3261, 5, 2441, 0, 0, 3261, 3262, 5, 2469, 0, 0, 3262, 3264, 5, 2441, 0, 0, 3263, 3259, 1, 0, 0, 0, 3263, 3264, 1, 0, 0, 0, 3264, 77, 1, 0, 0, 0, 3265, 3266, 5, 978, 0, 0, 3266, 3267, 5, 589, 0, 0, 3267, 3268, 3, 2392, 1196, 0, 3268, 3269, 5, 1669, 0, 0, 3269, 3270, 5, 2441, 0, 0, 3270, 3271, 5, 2469, 0, 0, 3271, 3272, 5, 2441, 0, 0, 3272, 79, 1, 0, 0, 0, 3273, 3274, 5, 990, 0, 0, 3274, 3275, 5, 587, 0, 0, 3275, 3276, 5, 2441, 0, 0, 3276, 3277, 5, 2139, 0, 0, 3277, 3278, 5, 589, 0, 0, 3278, 3279, 3, 2392, 1196, 0, 3279, 81, 1, 0, 0, 0, 3280, 3281, 5, 467, 0, 0, 3281, 3282, 5, 589, 0, 0, 3282, 3284, 3, 2392, 1196, 0, 3283, 3285, 5, 179, 0, 0, 3284, 3283, 1, 0, 0, 0, 3284, 3285, 1, 0, 0, 0, 3285, 83, 1, 0, 0, 0, 3286, 3287, 7, 15, 0, 0, 3287, 85, 1, 0, 0, 0, 3288, 3289, 5, 2177, 0, 0, 3289, 3290, 5, 441, 0, 0, 3290, 87, 1, 0, 0, 0, 3291, 3293, 5, 986, 0, 0, 3292, 3294, 7, 16, 0, 0, 3293, 3292, 1, 0, 0, 0, 3293, 3294, 1, 0, 0, 0, 3294, 3296, 1, 0, 0, 0, 3295, 3297, 7, 7, 0, 0, 3296, 3295, 1, 0, 0, 0, 3296, 3297, 1, 0, 0, 0, 3297, 3303, 1, 0, 0, 0, 3298, 3300, 5, 442, 0, 0, 3299, 3301, 7, 7, 0, 0, 3300, 3299, 1, 0, 0, 0, 3300, 3301, 1, 0, 0, 0, 3301, 3303, 1, 0, 0, 0, 3302, 3291, 1, 0, 0, 0, 3302, 3298, 1, 0, 0, 0, 3303, 89, 1, 0, 0, 0, 3304, 3305, 7, 17, 0, 0, 3305, 3315, 5, 2289, 0, 0, 3306, 3311, 3, 2392, 1196, 0, 3307, 3308, 5, 2451, 0, 0, 3308, 3310, 3, 2392, 1196, 0, 3309, 3307, 1, 0, 0, 0, 3310, 3313, 1, 0, 0, 0, 3311, 3309, 1, 0, 0, 0, 3311, 3312, 1, 0, 0, 0, 3312, 3316, 1, 0, 0, 0, 3313, 3311, 1, 0, 0, 0, 3314, 3316, 5, 38, 0, 0, 3315, 3306, 1, 0, 0, 0, 3315, 3314, 1, 0, 0, 0, 3316, 91, 1, 0, 0, 0, 3317, 3318, 5, 467, 0, 0, 3318, 3319, 5, 630, 0, 0, 3319, 3320, 3, 2308, 1154, 0, 3320, 93, 1, 0, 0, 0, 3321, 3322, 5, 42, 0, 0, 3322, 3323, 5, 603, 0, 0, 3323, 3324, 5, 64, 0, 0, 3324, 3354, 3, 2392, 1196, 0, 3325, 3326, 5, 1669, 0, 0, 3326, 3355, 5, 387, 0, 0, 3327, 3328, 7, 4, 0, 0, 3328, 3329, 5, 2078, 0, 0, 3329, 3331, 3, 2392, 1196, 0, 3330, 3332, 3, 444, 222, 0, 3331, 3330, 1, 0, 0, 0, 3331, 3332, 1, 0, 0, 0, 3332, 3355, 1, 0, 0, 0, 3333, 3334, 5, 1556, 0, 0, 3334, 3335, 5, 2078, 0, 0, 3335, 3355, 3, 2392, 1196, 0, 3336, 3337, 5, 978, 0, 0, 3337, 3355, 3, 446, 223, 0, 3338, 3347, 5, 1473, 0, 0, 3339, 3348, 5, 38, 0, 0, 3340, 3345, 5, 112, 0, 0, 3341, 3342, 5, 1625, 0, 0, 3342, 3346, 3, 2070, 1035, 0, 3343, 3344, 5, 2106, 0, 0, 3344, 3346, 3, 2070, 1035, 0, 3345, 3341, 1, 0, 0, 0, 3345, 3343, 1, 0, 0, 0, 3346, 3348, 1, 0, 0, 0, 3347, 3339, 1, 0, 0, 0, 3347, 3340, 1, 0, 0, 0, 3348, 3355, 1, 0, 0, 0, 3349, 3351, 5, 1135, 0, 0, 3350, 3349, 1, 0, 0, 0, 3350, 3351, 1, 0, 0, 0, 3351, 3352, 1, 0, 0, 0, 3352, 3353, 5, 1267, 0, 0, 3353, 3355, 5, 349, 0, 0, 3354, 3325, 1, 0, 0, 0, 3354, 3327, 1, 0, 0, 0, 3354, 3333, 1, 0, 0, 0, 3354, 3336, 1, 0, 0, 0, 3354, 3338, 1, 0, 0, 0, 3354, 3350, 1, 0, 0, 0, 3355, 95, 1, 0, 0, 0, 3356, 3357, 5, 42, 0, 0, 3357, 3361, 5, 672, 0, 0, 3358, 3359, 3, 2274, 1137, 0, 3359, 3360, 5, 2438, 0, 0, 3360, 3362, 1, 0, 0, 0, 3361, 3358, 1, 0, 0, 0, 3361, 3362, 1, 0, 0, 0, 3362, 3363, 1, 0, 0, 0, 3363, 3368, 3, 2392, 1196, 0, 3364, 3365, 5, 1557, 0, 0, 3365, 3366, 5, 2139, 0, 0, 3366, 3369, 3, 2392, 1196, 0, 3367, 3369, 5, 249, 0, 0, 3368, 3364, 1, 0, 0, 0, 3368, 3367, 1, 0, 0, 0, 3369, 97, 1, 0, 0, 0, 3370, 3371, 5, 42, 0, 0, 3371, 3372, 5, 630, 0, 0, 3372, 3389, 3, 2308, 1154, 0, 3373, 3390, 5, 480, 0, 0, 3374, 3390, 5, 1130, 0, 0, 3375, 3377, 5, 249, 0, 0, 3376, 3378, 5, 376, 0, 0, 3377, 3376, 1, 0, 0, 0, 3377, 3378, 1, 0, 0, 0, 3378, 3382, 1, 0, 0, 0, 3379, 3381, 3, 810, 405, 0, 3380, 3379, 1, 0, 0, 0, 3381, 3384, 1, 0, 0, 0, 3382, 3380, 1, 0, 0, 0, 3382, 3383, 1, 0, 0, 0, 3383, 3387, 1, 0, 0, 0, 3384, 3382, 1, 0, 0, 0, 3385, 3386, 5, 1585, 0, 0, 3386, 3388, 5, 1671, 0, 0, 3387, 3385, 1, 0, 0, 0, 3387, 3388, 1, 0, 0, 0, 3388, 3390, 1, 0, 0, 0, 3389, 3373, 1, 0, 0, 0, 3389, 3374, 1, 0, 0, 0, 3389, 3375, 1, 0, 0, 0, 3390, 99, 1, 0, 0, 0, 3391, 3392, 5, 42, 0, 0, 3392, 3393, 5, 790, 0, 0, 3393, 3397, 7, 18, 0, 0, 3394, 3395, 3, 2274, 1137, 0, 3395, 3396, 5, 2438, 0, 0, 3396, 3398, 1, 0, 0, 0, 3397, 3394, 1, 0, 0, 0, 3397, 3398, 1, 0, 0, 0, 3398, 3399, 1, 0, 0, 0, 3399, 3419, 3, 2392, 1196, 0, 3400, 3401, 5, 1567, 0, 0, 3401, 3413, 5, 2445, 0, 0, 3402, 3403, 5, 2445, 0, 0, 3403, 3405, 3, 102, 51, 0, 3404, 3406, 5, 2451, 0, 0, 3405, 3404, 1, 0, 0, 0, 3405, 3406, 1, 0, 0, 0, 3406, 3409, 1, 0, 0, 0, 3407, 3410, 3, 2274, 1137, 0, 3408, 3410, 5, 2450, 0, 0, 3409, 3407, 1, 0, 0, 0, 3409, 3408, 1, 0, 0, 0, 3410, 3411, 1, 0, 0, 0, 3411, 3412, 5, 2446, 0, 0, 3412, 3414, 1, 0, 0, 0, 3413, 3402, 1, 0, 0, 0, 3414, 3415, 1, 0, 0, 0, 3415, 3413, 1, 0, 0, 0, 3415, 3416, 1, 0, 0, 0, 3416, 3417, 1, 0, 0, 0, 3417, 3418, 5, 2446, 0, 0, 3418, 3420, 1, 0, 0, 0, 3419, 3400, 1, 0, 0, 0, 3419, 3420, 1, 0, 0, 0, 3420, 3424, 1, 0, 0, 0, 3421, 3425, 5, 249, 0, 0, 3422, 3425, 5, 1566, 0, 0, 3423, 3425, 3, 1712, 856, 0, 3424, 3421, 1, 0, 0, 0, 3424, 3422, 1, 0, 0, 0, 3424, 3423, 1, 0, 0, 0, 3425, 101, 1, 0, 0, 0, 3426, 3427, 7, 19, 0, 0, 3427, 103, 1, 0, 0, 0, 3428, 3431, 5, 319, 0, 0, 3429, 3430, 5, 1305, 0, 0, 3430, 3432, 5, 1560, 0, 0, 3431, 3429, 1, 0, 0, 0, 3431, 3432, 1, 0, 0, 0, 3432, 3434, 1, 0, 0, 0, 3433, 3435, 7, 20, 0, 0, 3434, 3433, 1, 0, 0, 0, 3434, 3435, 1, 0, 0, 0, 3435, 3436, 1, 0, 0, 0, 3436, 3437, 5, 630, 0, 0, 3437, 3449, 3, 2308, 1154, 0, 3438, 3439, 5, 2445, 0, 0, 3439, 3444, 3, 1728, 864, 0, 3440, 3441, 5, 2451, 0, 0, 3441, 3443, 3, 1728, 864, 0, 3442, 3440, 1, 0, 0, 0, 3443, 3446, 1, 0, 0, 0, 3444, 3442, 1, 0, 0, 0, 3444, 3445, 1, 0, 0, 0, 3445, 3447, 1, 0, 0, 0, 3446, 3444, 1, 0, 0, 0, 3447, 3448, 5, 2446, 0, 0, 3448, 3450, 1, 0, 0, 0, 3449, 3438, 1, 0, 0, 0, 3449, 3450, 1, 0, 0, 0, 3450, 3451, 1, 0, 0, 0, 3451, 3452, 5, 1584, 0, 0, 3452, 3456, 3, 2362, 1181, 0, 3453, 3454, 5, 1679, 0, 0, 3454, 3455, 5, 2469, 0, 0, 3455, 3457, 7, 21, 0, 0, 3456, 3453, 1, 0, 0, 0, 3456, 3457, 1, 0, 0, 0, 3457, 3467, 1, 0, 0, 0, 3458, 3466, 3, 1712, 856, 0, 3459, 3466, 3, 114, 57, 0, 3460, 3466, 3, 116, 58, 0, 3461, 3466, 3, 108, 54, 0, 3462, 3466, 3, 112, 56, 0, 3463, 3466, 5, 1392, 0, 0, 3464, 3466, 5, 418, 0, 0, 3465, 3458, 1, 0, 0, 0, 3465, 3459, 1, 0, 0, 0, 3465, 3460, 1, 0, 0, 0, 3465, 3461, 1, 0, 0, 0, 3465, 3462, 1, 0, 0, 0, 3465, 3463, 1, 0, 0, 0, 3465, 3464, 1, 0, 0, 0, 3466, 3469, 1, 0, 0, 0, 3467, 3465, 1, 0, 0, 0, 3467, 3468, 1, 0, 0, 0, 3468, 3484, 1, 0, 0, 0, 3469, 3467, 1, 0, 0, 0, 3470, 3479, 7, 22, 0, 0, 3471, 3473, 5, 380, 0, 0, 3472, 3471, 1, 0, 0, 0, 3472, 3473, 1, 0, 0, 0, 3473, 3475, 1, 0, 0, 0, 3474, 3476, 3, 1732, 866, 0, 3475, 3474, 1, 0, 0, 0, 3475, 3476, 1, 0, 0, 0, 3476, 3477, 1, 0, 0, 0, 3477, 3480, 3, 1812, 906, 0, 3478, 3480, 3, 1714, 857, 0, 3479, 3472, 1, 0, 0, 0, 3479, 3478, 1, 0, 0, 0, 3480, 3485, 1, 0, 0, 0, 3481, 3485, 3, 118, 59, 0, 3482, 3485, 3, 120, 60, 0, 3483, 3485, 3, 106, 53, 0, 3484, 3470, 1, 0, 0, 0, 3484, 3481, 1, 0, 0, 0, 3484, 3482, 1, 0, 0, 0, 3484, 3483, 1, 0, 0, 0, 3485, 105, 1, 0, 0, 0, 3486, 3487, 5, 1722, 0, 0, 3487, 3488, 5, 783, 0, 0, 3488, 3489, 5, 113, 0, 0, 3489, 3490, 5, 1584, 0, 0, 3490, 3491, 3, 2388, 1194, 0, 3491, 3492, 5, 2467, 0, 0, 3492, 3493, 5, 506, 0, 0, 3493, 107, 1, 0, 0, 0, 3494, 3496, 5, 1329, 0, 0, 3495, 3497, 3, 110, 55, 0, 3496, 3495, 1, 0, 0, 0, 3496, 3497, 1, 0, 0, 0, 3497, 109, 1, 0, 0, 0, 3498, 3499, 5, 2445, 0, 0, 3499, 3500, 5, 1346, 0, 0, 3500, 3501, 3, 2070, 1035, 0, 3501, 3505, 5, 160, 0, 0, 3502, 3506, 5, 55, 0, 0, 3503, 3504, 7, 23, 0, 0, 3504, 3506, 3, 2348, 1174, 0, 3505, 3502, 1, 0, 0, 0, 3505, 3503, 1, 0, 0, 0, 3506, 3508, 1, 0, 0, 0, 3507, 3509, 3, 126, 63, 0, 3508, 3507, 1, 0, 0, 0, 3508, 3509, 1, 0, 0, 0, 3509, 3510, 1, 0, 0, 0, 3510, 3511, 5, 2446, 0, 0, 3511, 111, 1, 0, 0, 0, 3512, 3514, 5, 1577, 0, 0, 3513, 3515, 3, 124, 62, 0, 3514, 3513, 1, 0, 0, 0, 3514, 3515, 1, 0, 0, 0, 3515, 3520, 1, 0, 0, 0, 3516, 3517, 5, 2445, 0, 0, 3517, 3518, 5, 975, 0, 0, 3518, 3519, 7, 24, 0, 0, 3519, 3521, 5, 2446, 0, 0, 3520, 3516, 1, 0, 0, 0, 3520, 3521, 1, 0, 0, 0, 3521, 113, 1, 0, 0, 0, 3522, 3523, 5, 6, 0, 0, 3523, 3524, 5, 160, 0, 0, 3524, 3525, 5, 2445, 0, 0, 3525, 3530, 3, 122, 61, 0, 3526, 3527, 5, 2451, 0, 0, 3527, 3529, 3, 122, 61, 0, 3528, 3526, 1, 0, 0, 0, 3529, 3532, 1, 0, 0, 0, 3530, 3528, 1, 0, 0, 0, 3530, 3531, 1, 0, 0, 0, 3531, 3533, 1, 0, 0, 0, 3532, 3530, 1, 0, 0, 0, 3533, 3534, 5, 2446, 0, 0, 3534, 115, 1, 0, 0, 0, 3535, 3536, 5, 387, 0, 0, 3536, 3537, 5, 2371, 0, 0, 3537, 3538, 5, 2243, 0, 0, 3538, 117, 1, 0, 0, 0, 3539, 3540, 5, 35, 0, 0, 3540, 3541, 5, 2244, 0, 0, 3541, 3542, 3, 2280, 1140, 0, 3542, 119, 1, 0, 0, 0, 3543, 3546, 5, 1392, 0, 0, 3544, 3545, 7, 25, 0, 0, 3545, 3547, 5, 2430, 0, 0, 3546, 3544, 1, 0, 0, 0, 3546, 3547, 1, 0, 0, 0, 3547, 3548, 1, 0, 0, 0, 3548, 3549, 5, 2244, 0, 0, 3549, 3550, 3, 2280, 1140, 0, 3550, 121, 1, 0, 0, 0, 3551, 3552, 7, 26, 0, 0, 3552, 3553, 3, 2308, 1154, 0, 3553, 123, 1, 0, 0, 0, 3554, 3555, 5, 1550, 0, 0, 3555, 3556, 5, 2445, 0, 0, 3556, 3561, 3, 2330, 1165, 0, 3557, 3558, 5, 2451, 0, 0, 3558, 3560, 3, 2330, 1165, 0, 3559, 3557, 1, 0, 0, 0, 3560, 3563, 1, 0, 0, 0, 3561, 3559, 1, 0, 0, 0, 3561, 3562, 1, 0, 0, 0, 3562, 3564, 1, 0, 0, 0, 3563, 3561, 1, 0, 0, 0, 3564, 3565, 5, 2446, 0, 0, 3565, 125, 1, 0, 0, 0, 3566, 3567, 7, 27, 0, 0, 3567, 3568, 3, 2070, 1035, 0, 3568, 3569, 5, 160, 0, 0, 3569, 3570, 3, 2348, 1174, 0, 3570, 127, 1, 0, 0, 0, 3571, 3572, 5, 42, 0, 0, 3572, 3574, 5, 1313, 0, 0, 3573, 3575, 7, 28, 0, 0, 3574, 3573, 1, 0, 0, 0, 3574, 3575, 1, 0, 0, 0, 3575, 3576, 1, 0, 0, 0, 3576, 3578, 3, 2392, 1196, 0, 3577, 3579, 3, 130, 65, 0, 3578, 3577, 1, 0, 0, 0, 3579, 3580, 1, 0, 0, 0, 3580, 3578, 1, 0, 0, 0, 3580, 3581, 1, 0, 0, 0, 3581, 129, 1, 0, 0, 0, 3582, 3593, 5, 1509, 0, 0, 3583, 3584, 5, 1557, 0, 0, 3584, 3585, 5, 2139, 0, 0, 3585, 3593, 3, 2392, 1196, 0, 3586, 3587, 5, 190, 0, 0, 3587, 3588, 5, 183, 0, 0, 3588, 3589, 5, 2139, 0, 0, 3589, 3593, 3, 2392, 1196, 0, 3590, 3593, 5, 497, 0, 0, 3591, 3593, 5, 427, 0, 0, 3592, 3582, 1, 0, 0, 0, 3592, 3583, 1, 0, 0, 0, 3592, 3586, 1, 0, 0, 0, 3592, 3590, 1, 0, 0, 0, 3592, 3591, 1, 0, 0, 0, 3593, 131, 1, 0, 0, 0, 3594, 3595, 5, 42, 0, 0, 3595, 3596, 5, 876, 0, 0, 3596, 3597, 5, 1461, 0, 0, 3597, 3601, 3, 2392, 1196, 0, 3598, 3602, 3, 134, 67, 0, 3599, 3602, 3, 136, 68, 0, 3600, 3602, 3, 138, 69, 0, 3601, 3598, 1, 0, 0, 0, 3601, 3599, 1, 0, 0, 0, 3601, 3600, 1, 0, 0, 0, 3602, 3606, 1, 0, 0, 0, 3603, 3604, 5, 2233, 0, 0, 3604, 3605, 5, 2469, 0, 0, 3605, 3607, 7, 29, 0, 0, 3606, 3603, 1, 0, 0, 0, 3606, 3607, 1, 0, 0, 0, 3607, 133, 1, 0, 0, 0, 3608, 3609, 3, 148, 74, 0, 3609, 3624, 5, 579, 0, 0, 3610, 3611, 5, 2469, 0, 0, 3611, 3612, 5, 2445, 0, 0, 3612, 3613, 3, 146, 73, 0, 3613, 3614, 5, 2446, 0, 0, 3614, 3625, 1, 0, 0, 0, 3615, 3622, 5, 38, 0, 0, 3616, 3617, 5, 532, 0, 0, 3617, 3618, 5, 2469, 0, 0, 3618, 3619, 5, 2445, 0, 0, 3619, 3620, 3, 146, 73, 0, 3620, 3621, 5, 2446, 0, 0, 3621, 3623, 1, 0, 0, 0, 3622, 3616, 1, 0, 0, 0, 3622, 3623, 1, 0, 0, 0, 3623, 3625, 1, 0, 0, 0, 3624, 3610, 1, 0, 0, 0, 3624, 3615, 1, 0, 0, 0, 3625, 135, 1, 0, 0, 0, 3626, 3627, 3, 148, 74, 0, 3627, 3642, 5, 1270, 0, 0, 3628, 3629, 5, 2469, 0, 0, 3629, 3630, 5, 2445, 0, 0, 3630, 3631, 3, 146, 73, 0, 3631, 3632, 5, 2446, 0, 0, 3632, 3643, 1, 0, 0, 0, 3633, 3640, 5, 38, 0, 0, 3634, 3635, 5, 532, 0, 0, 3635, 3636, 5, 2469, 0, 0, 3636, 3637, 5, 2445, 0, 0, 3637, 3638, 3, 146, 73, 0, 3638, 3639, 5, 2446, 0, 0, 3639, 3641, 1, 0, 0, 0, 3640, 3634, 1, 0, 0, 0, 3640, 3641, 1, 0, 0, 0, 3641, 3643, 1, 0, 0, 0, 3642, 3628, 1, 0, 0, 0, 3642, 3633, 1, 0, 0, 0, 3643, 137, 1, 0, 0, 0, 3644, 3645, 3, 148, 74, 0, 3645, 3665, 5, 1741, 0, 0, 3646, 3647, 5, 2469, 0, 0, 3647, 3648, 5, 2445, 0, 0, 3648, 3649, 3, 146, 73, 0, 3649, 3650, 5, 2446, 0, 0, 3650, 3666, 1, 0, 0, 0, 3651, 3652, 5, 2469, 0, 0, 3652, 3653, 5, 2445, 0, 0, 3653, 3654, 5, 2441, 0, 0, 3654, 3655, 5, 2446, 0, 0, 3655, 3666, 3, 140, 70, 0, 3656, 3663, 5, 38, 0, 0, 3657, 3658, 5, 532, 0, 0, 3658, 3659, 5, 2469, 0, 0, 3659, 3660, 5, 2445, 0, 0, 3660, 3661, 3, 146, 73, 0, 3661, 3662, 5, 2446, 0, 0, 3662, 3664, 1, 0, 0, 0, 3663, 3657, 1, 0, 0, 0, 3663, 3664, 1, 0, 0, 0, 3664, 3666, 1, 0, 0, 0, 3665, 3646, 1, 0, 0, 0, 3665, 3651, 1, 0, 0, 0, 3665, 3656, 1, 0, 0, 0, 3666, 139, 1, 0, 0, 0, 3667, 3687, 5, 209, 0, 0, 3668, 3669, 5, 2469, 0, 0, 3669, 3670, 5, 2445, 0, 0, 3670, 3671, 3, 146, 73, 0, 3671, 3672, 5, 2446, 0, 0, 3672, 3688, 1, 0, 0, 0, 3673, 3674, 5, 2469, 0, 0, 3674, 3675, 5, 2445, 0, 0, 3675, 3676, 5, 2441, 0, 0, 3676, 3677, 5, 2446, 0, 0, 3677, 3688, 3, 142, 71, 0, 3678, 3685, 5, 38, 0, 0, 3679, 3680, 5, 532, 0, 0, 3680, 3681, 5, 2469, 0, 0, 3681, 3682, 5, 2445, 0, 0, 3682, 3683, 3, 146, 73, 0, 3683, 3684, 5, 2446, 0, 0, 3684, 3686, 1, 0, 0, 0, 3685, 3679, 1, 0, 0, 0, 3685, 3686, 1, 0, 0, 0, 3686, 3688, 1, 0, 0, 0, 3687, 3668, 1, 0, 0, 0, 3687, 3673, 1, 0, 0, 0, 3687, 3678, 1, 0, 0, 0, 3688, 141, 1, 0, 0, 0, 3689, 3713, 5, 1270, 0, 0, 3690, 3691, 5, 2469, 0, 0, 3691, 3692, 5, 2445, 0, 0, 3692, 3693, 3, 146, 73, 0, 3693, 3694, 5, 2446, 0, 0, 3694, 3714, 1, 0, 0, 0, 3695, 3696, 5, 2469, 0, 0, 3696, 3697, 5, 2445, 0, 0, 3697, 3698, 5, 2441, 0, 0, 3698, 3700, 5, 2446, 0, 0, 3699, 3701, 3, 144, 72, 0, 3700, 3699, 1, 0, 0, 0, 3701, 3702, 1, 0, 0, 0, 3702, 3700, 1, 0, 0, 0, 3702, 3703, 1, 0, 0, 0, 3703, 3714, 1, 0, 0, 0, 3704, 3711, 5, 38, 0, 0, 3705, 3706, 5, 532, 0, 0, 3706, 3707, 5, 2469, 0, 0, 3707, 3708, 5, 2445, 0, 0, 3708, 3709, 3, 146, 73, 0, 3709, 3710, 5, 2446, 0, 0, 3710, 3712, 1, 0, 0, 0, 3711, 3705, 1, 0, 0, 0, 3711, 3712, 1, 0, 0, 0, 3712, 3714, 1, 0, 0, 0, 3713, 3690, 1, 0, 0, 0, 3713, 3695, 1, 0, 0, 0, 3713, 3704, 1, 0, 0, 0, 3714, 143, 1, 0, 0, 0, 3715, 3716, 5, 2256, 0, 0, 3716, 3717, 5, 2469, 0, 0, 3717, 3718, 5, 2445, 0, 0, 3718, 3719, 3, 146, 73, 0, 3719, 3720, 5, 2446, 0, 0, 3720, 3725, 1, 0, 0, 0, 3721, 3722, 7, 30, 0, 0, 3722, 3723, 5, 2469, 0, 0, 3723, 3725, 5, 2441, 0, 0, 3724, 3715, 1, 0, 0, 0, 3724, 3721, 1, 0, 0, 0, 3725, 145, 1, 0, 0, 0, 3726, 3731, 5, 2441, 0, 0, 3727, 3728, 5, 2451, 0, 0, 3728, 3730, 5, 2441, 0, 0, 3729, 3727, 1, 0, 0, 0, 3730, 3733, 1, 0, 0, 0, 3731, 3729, 1, 0, 0, 0, 3731, 3732, 1, 0, 0, 0, 3732, 147, 1, 0, 0, 0, 3733, 3731, 1, 0, 0, 0, 3734, 3735, 7, 17, 0, 0, 3735, 149, 1, 0, 0, 0, 3736, 3737, 5, 467, 0, 0, 3737, 3738, 5, 876, 0, 0, 3738, 3739, 5, 1461, 0, 0, 3739, 3740, 3, 2392, 1196, 0, 3740, 151, 1, 0, 0, 0, 3741, 3742, 5, 467, 0, 0, 3742, 3744, 5, 1327, 0, 0, 3743, 3745, 5, 147, 0, 0, 3744, 3743, 1, 0, 0, 0, 3744, 3745, 1, 0, 0, 0, 3745, 3749, 1, 0, 0, 0, 3746, 3747, 3, 2338, 1169, 0, 3747, 3748, 5, 2438, 0, 0, 3748, 3750, 1, 0, 0, 0, 3749, 3746, 1, 0, 0, 0, 3749, 3750, 1, 0, 0, 0, 3750, 3751, 1, 0, 0, 0, 3751, 3752, 3, 2278, 1139, 0, 3752, 153, 1, 0, 0, 0, 3753, 3754, 5, 42, 0, 0, 3754, 3755, 5, 1327, 0, 0, 3755, 3756, 3, 2278, 1139, 0, 3756, 3758, 5, 249, 0, 0, 3757, 3759, 5, 376, 0, 0, 3758, 3757, 1, 0, 0, 0, 3758, 3759, 1, 0, 0, 0, 3759, 3761, 1, 0, 0, 0, 3760, 3762, 7, 31, 0, 0, 3761, 3760, 1, 0, 0, 0, 3761, 3762, 1, 0, 0, 0, 3762, 3766, 1, 0, 0, 0, 3763, 3765, 3, 810, 405, 0, 3764, 3763, 1, 0, 0, 0, 3765, 3768, 1, 0, 0, 0, 3766, 3764, 1, 0, 0, 0, 3766, 3767, 1, 0, 0, 0, 3767, 3771, 1, 0, 0, 0, 3768, 3766, 1, 0, 0, 0, 3769, 3770, 5, 1585, 0, 0, 3770, 3772, 5, 1671, 0, 0, 3771, 3769, 1, 0, 0, 0, 3771, 3772, 1, 0, 0, 0, 3772, 155, 1, 0, 0, 0, 3773, 3776, 5, 319, 0, 0, 3774, 3775, 5, 1305, 0, 0, 3775, 3777, 5, 1560, 0, 0, 3776, 3774, 1, 0, 0, 0, 3776, 3777, 1, 0, 0, 0, 3777, 3779, 1, 0, 0, 0, 3778, 3780, 7, 20, 0, 0, 3779, 3778, 1, 0, 0, 0, 3779, 3780, 1, 0, 0, 0, 3780, 3781, 1, 0, 0, 0, 3781, 3785, 5, 1327, 0, 0, 3782, 3783, 3, 2338, 1169, 0, 3783, 3784, 5, 2438, 0, 0, 3784, 3786, 1, 0, 0, 0, 3785, 3782, 1, 0, 0, 0, 3785, 3786, 1, 0, 0, 0, 3786, 3787, 1, 0, 0, 0, 3787, 3789, 3, 2278, 1139, 0, 3788, 3790, 3, 1712, 856, 0, 3789, 3788, 1, 0, 0, 0, 3789, 3790, 1, 0, 0, 0, 3790, 3791, 1, 0, 0, 0, 3791, 3795, 7, 22, 0, 0, 3792, 3794, 3, 160, 80, 0, 3793, 3792, 1, 0, 0, 0, 3794, 3797, 1, 0, 0, 0, 3795, 3793, 1, 0, 0, 0, 3795, 3796, 1, 0, 0, 0, 3796, 3798, 1, 0, 0, 0, 3797, 3795, 1, 0, 0, 0, 3798, 3800, 5, 506, 0, 0, 3799, 3801, 3, 2278, 1139, 0, 3800, 3799, 1, 0, 0, 0, 3800, 3801, 1, 0, 0, 0, 3801, 157, 1, 0, 0, 0, 3802, 3805, 5, 319, 0, 0, 3803, 3804, 5, 1305, 0, 0, 3804, 3806, 5, 1560, 0, 0, 3805, 3803, 1, 0, 0, 0, 3805, 3806, 1, 0, 0, 0, 3806, 3808, 1, 0, 0, 0, 3807, 3809, 7, 20, 0, 0, 3808, 3807, 1, 0, 0, 0, 3808, 3809, 1, 0, 0, 0, 3809, 3810, 1, 0, 0, 0, 3810, 3811, 5, 1327, 0, 0, 3811, 3815, 5, 147, 0, 0, 3812, 3813, 3, 2338, 1169, 0, 3813, 3814, 5, 2438, 0, 0, 3814, 3816, 1, 0, 0, 0, 3815, 3812, 1, 0, 0, 0, 3815, 3816, 1, 0, 0, 0, 3816, 3817, 1, 0, 0, 0, 3817, 3818, 3, 2278, 1139, 0, 3818, 3822, 7, 22, 0, 0, 3819, 3821, 3, 166, 83, 0, 3820, 3819, 1, 0, 0, 0, 3821, 3824, 1, 0, 0, 0, 3822, 3823, 1, 0, 0, 0, 3822, 3820, 1, 0, 0, 0, 3823, 3835, 1, 0, 0, 0, 3824, 3822, 1, 0, 0, 0, 3825, 3826, 5, 113, 0, 0, 3826, 3833, 3, 1762, 881, 0, 3827, 3829, 5, 533, 0, 0, 3828, 3830, 3, 1814, 907, 0, 3829, 3828, 1, 0, 0, 0, 3830, 3831, 1, 0, 0, 0, 3831, 3829, 1, 0, 0, 0, 3831, 3832, 1, 0, 0, 0, 3832, 3834, 1, 0, 0, 0, 3833, 3827, 1, 0, 0, 0, 3833, 3834, 1, 0, 0, 0, 3834, 3836, 1, 0, 0, 0, 3835, 3825, 1, 0, 0, 0, 3835, 3836, 1, 0, 0, 0, 3836, 3837, 1, 0, 0, 0, 3837, 3839, 5, 506, 0, 0, 3838, 3840, 3, 2278, 1139, 0, 3839, 3838, 1, 0, 0, 0, 3839, 3840, 1, 0, 0, 0, 3840, 159, 1, 0, 0, 0, 3841, 3850, 3, 1746, 873, 0, 3842, 3850, 3, 1744, 872, 0, 3843, 3850, 3, 162, 81, 0, 3844, 3850, 3, 164, 82, 0, 3845, 3850, 3, 1736, 868, 0, 3846, 3850, 3, 1738, 869, 0, 3847, 3850, 3, 1740, 870, 0, 3848, 3850, 3, 1754, 877, 0, 3849, 3841, 1, 0, 0, 0, 3849, 3842, 1, 0, 0, 0, 3849, 3843, 1, 0, 0, 0, 3849, 3844, 1, 0, 0, 0, 3849, 3845, 1, 0, 0, 0, 3849, 3846, 1, 0, 0, 0, 3849, 3847, 1, 0, 0, 0, 3849, 3848, 1, 0, 0, 0, 3850, 161, 1, 0, 0, 0, 3851, 3852, 5, 1459, 0, 0, 3852, 3864, 3, 2390, 1195, 0, 3853, 3854, 5, 2445, 0, 0, 3854, 3859, 3, 1728, 864, 0, 3855, 3856, 5, 2451, 0, 0, 3856, 3858, 3, 1728, 864, 0, 3857, 3855, 1, 0, 0, 0, 3858, 3861, 1, 0, 0, 0, 3859, 3857, 1, 0, 0, 0, 3859, 3860, 1, 0, 0, 0, 3860, 3862, 1, 0, 0, 0, 3861, 3859, 1, 0, 0, 0, 3862, 3863, 5, 2446, 0, 0, 3863, 3865, 1, 0, 0, 0, 3864, 3853, 1, 0, 0, 0, 3864, 3865, 1, 0, 0, 0, 3865, 3870, 1, 0, 0, 0, 3866, 3869, 3, 114, 57, 0, 3867, 3869, 5, 1329, 0, 0, 3868, 3866, 1, 0, 0, 0, 3868, 3867, 1, 0, 0, 0, 3869, 3872, 1, 0, 0, 0, 3870, 3868, 1, 0, 0, 0, 3870, 3871, 1, 0, 0, 0, 3871, 3873, 1, 0, 0, 0, 3872, 3870, 1, 0, 0, 0, 3873, 3874, 5, 2467, 0, 0, 3874, 163, 1, 0, 0, 0, 3875, 3876, 5, 630, 0, 0, 3876, 3888, 3, 2390, 1195, 0, 3877, 3878, 5, 2445, 0, 0, 3878, 3883, 3, 1728, 864, 0, 3879, 3880, 5, 2451, 0, 0, 3880, 3882, 3, 1728, 864, 0, 3881, 3879, 1, 0, 0, 0, 3882, 3885, 1, 0, 0, 0, 3883, 3881, 1, 0, 0, 0, 3883, 3884, 1, 0, 0, 0, 3884, 3886, 1, 0, 0, 0, 3885, 3883, 1, 0, 0, 0, 3886, 3887, 5, 2446, 0, 0, 3887, 3889, 1, 0, 0, 0, 3888, 3877, 1, 0, 0, 0, 3888, 3889, 1, 0, 0, 0, 3889, 3890, 1, 0, 0, 0, 3890, 3891, 5, 1584, 0, 0, 3891, 3899, 3, 2362, 1181, 0, 3892, 3898, 5, 418, 0, 0, 3893, 3898, 5, 1392, 0, 0, 3894, 3898, 3, 108, 54, 0, 3895, 3898, 5, 1577, 0, 0, 3896, 3898, 3, 126, 63, 0, 3897, 3892, 1, 0, 0, 0, 3897, 3893, 1, 0, 0, 0, 3897, 3894, 1, 0, 0, 0, 3897, 3895, 1, 0, 0, 0, 3897, 3896, 1, 0, 0, 0, 3898, 3901, 1, 0, 0, 0, 3899, 3897, 1, 0, 0, 0, 3899, 3900, 1, 0, 0, 0, 3900, 3902, 1, 0, 0, 0, 3901, 3899, 1, 0, 0, 0, 3902, 3903, 5, 2467, 0, 0, 3903, 165, 1, 0, 0, 0, 3904, 3916, 3, 1746, 873, 0, 3905, 3916, 3, 1744, 872, 0, 3906, 3916, 3, 162, 81, 0, 3907, 3916, 3, 164, 82, 0, 3908, 3916, 3, 1738, 869, 0, 3909, 3916, 3, 1740, 870, 0, 3910, 3916, 3, 1736, 868, 0, 3911, 3916, 3, 1754, 877, 0, 3912, 3916, 3, 178, 89, 0, 3913, 3916, 3, 176, 88, 0, 3914, 3916, 3, 1806, 903, 0, 3915, 3904, 1, 0, 0, 0, 3915, 3905, 1, 0, 0, 0, 3915, 3906, 1, 0, 0, 0, 3915, 3907, 1, 0, 0, 0, 3915, 3908, 1, 0, 0, 0, 3915, 3909, 1, 0, 0, 0, 3915, 3910, 1, 0, 0, 0, 3915, 3911, 1, 0, 0, 0, 3915, 3912, 1, 0, 0, 0, 3915, 3913, 1, 0, 0, 0, 3915, 3914, 1, 0, 0, 0, 3916, 167, 1, 0, 0, 0, 3917, 3918, 5, 42, 0, 0, 3918, 3919, 5, 1408, 0, 0, 3919, 3920, 5, 590, 0, 0, 3920, 3937, 3, 2392, 1196, 0, 3921, 3922, 5, 1565, 0, 0, 3922, 3938, 3, 1170, 585, 0, 3923, 3938, 3, 920, 460, 0, 3924, 3927, 5, 986, 0, 0, 3925, 3926, 5, 988, 0, 0, 3926, 3928, 3, 198, 99, 0, 3927, 3925, 1, 0, 0, 0, 3927, 3928, 1, 0, 0, 0, 3928, 3931, 1, 0, 0, 0, 3929, 3930, 5, 101, 0, 0, 3930, 3932, 3, 1452, 726, 0, 3931, 3929, 1, 0, 0, 0, 3931, 3932, 1, 0, 0, 0, 3932, 3934, 1, 0, 0, 0, 3933, 3935, 5, 614, 0, 0, 3934, 3933, 1, 0, 0, 0, 3934, 3935, 1, 0, 0, 0, 3935, 3938, 1, 0, 0, 0, 3936, 3938, 5, 442, 0, 0, 3937, 3921, 1, 0, 0, 0, 3937, 3923, 1, 0, 0, 0, 3937, 3924, 1, 0, 0, 0, 3937, 3936, 1, 0, 0, 0, 3938, 169, 1, 0, 0, 0, 3939, 3940, 5, 467, 0, 0, 3940, 3941, 5, 1408, 0, 0, 3941, 3942, 5, 590, 0, 0, 3942, 3951, 3, 2392, 1196, 0, 3943, 3945, 5, 614, 0, 0, 3944, 3943, 1, 0, 0, 0, 3944, 3945, 1, 0, 0, 0, 3945, 3946, 1, 0, 0, 0, 3946, 3949, 5, 703, 0, 0, 3947, 3949, 5, 538, 0, 0, 3948, 3944, 1, 0, 0, 0, 3948, 3947, 1, 0, 0, 0, 3949, 3950, 1, 0, 0, 0, 3950, 3952, 5, 293, 0, 0, 3951, 3948, 1, 0, 0, 0, 3951, 3952, 1, 0, 0, 0, 3952, 171, 1, 0, 0, 0, 3953, 3954, 5, 467, 0, 0, 3954, 3955, 5, 1459, 0, 0, 3955, 3956, 3, 2310, 1155, 0, 3956, 173, 1, 0, 0, 0, 3957, 3958, 5, 42, 0, 0, 3958, 3959, 5, 1459, 0, 0, 3959, 3960, 3, 2310, 1155, 0, 3960, 3962, 5, 249, 0, 0, 3961, 3963, 5, 376, 0, 0, 3962, 3961, 1, 0, 0, 0, 3962, 3963, 1, 0, 0, 0, 3963, 3967, 1, 0, 0, 0, 3964, 3966, 3, 810, 405, 0, 3965, 3964, 1, 0, 0, 0, 3966, 3969, 1, 0, 0, 0, 3967, 3965, 1, 0, 0, 0, 3967, 3968, 1, 0, 0, 0, 3968, 3972, 1, 0, 0, 0, 3969, 3967, 1, 0, 0, 0, 3970, 3971, 5, 1585, 0, 0, 3971, 3973, 5, 1671, 0, 0, 3972, 3970, 1, 0, 0, 0, 3972, 3973, 1, 0, 0, 0, 3973, 175, 1, 0, 0, 0, 3974, 3975, 5, 630, 0, 0, 3975, 3987, 3, 2390, 1195, 0, 3976, 3977, 5, 2445, 0, 0, 3977, 3982, 3, 1728, 864, 0, 3978, 3979, 5, 2451, 0, 0, 3979, 3981, 3, 1728, 864, 0, 3980, 3978, 1, 0, 0, 0, 3981, 3984, 1, 0, 0, 0, 3982, 3980, 1, 0, 0, 0, 3982, 3983, 1, 0, 0, 0, 3983, 3985, 1, 0, 0, 0, 3984, 3982, 1, 0, 0, 0, 3985, 3986, 5, 2446, 0, 0, 3986, 3988, 1, 0, 0, 0, 3987, 3976, 1, 0, 0, 0, 3987, 3988, 1, 0, 0, 0, 3988, 3989, 1, 0, 0, 0, 3989, 3990, 5, 1584, 0, 0, 3990, 3999, 3, 2362, 1181, 0, 3991, 3998, 5, 1392, 0, 0, 3992, 3998, 5, 418, 0, 0, 3993, 3998, 3, 1712, 856, 0, 3994, 3998, 3, 108, 54, 0, 3995, 3998, 3, 112, 56, 0, 3996, 3998, 3, 126, 63, 0, 3997, 3991, 1, 0, 0, 0, 3997, 3992, 1, 0, 0, 0, 3997, 3993, 1, 0, 0, 0, 3997, 3994, 1, 0, 0, 0, 3997, 3995, 1, 0, 0, 0, 3997, 3996, 1, 0, 0, 0, 3998, 4001, 1, 0, 0, 0, 3999, 3997, 1, 0, 0, 0, 3999, 4000, 1, 0, 0, 0, 4000, 4016, 1, 0, 0, 0, 4001, 3999, 1, 0, 0, 0, 4002, 4011, 7, 22, 0, 0, 4003, 4005, 5, 380, 0, 0, 4004, 4003, 1, 0, 0, 0, 4004, 4005, 1, 0, 0, 0, 4005, 4007, 1, 0, 0, 0, 4006, 4008, 3, 1732, 866, 0, 4007, 4006, 1, 0, 0, 0, 4007, 4008, 1, 0, 0, 0, 4008, 4009, 1, 0, 0, 0, 4009, 4012, 3, 1812, 906, 0, 4010, 4012, 3, 1714, 857, 0, 4011, 4004, 1, 0, 0, 0, 4011, 4010, 1, 0, 0, 0, 4012, 4017, 1, 0, 0, 0, 4013, 4014, 7, 32, 0, 0, 4014, 4015, 5, 2244, 0, 0, 4015, 4017, 3, 2280, 1140, 0, 4016, 4002, 1, 0, 0, 0, 4016, 4013, 1, 0, 0, 0, 4017, 4018, 1, 0, 0, 0, 4018, 4019, 5, 2467, 0, 0, 4019, 177, 1, 0, 0, 0, 4020, 4021, 5, 1459, 0, 0, 4021, 4033, 3, 2390, 1195, 0, 4022, 4023, 5, 2445, 0, 0, 4023, 4028, 3, 1728, 864, 0, 4024, 4025, 5, 2451, 0, 0, 4025, 4027, 3, 1728, 864, 0, 4026, 4024, 1, 0, 0, 0, 4027, 4030, 1, 0, 0, 0, 4028, 4026, 1, 0, 0, 0, 4028, 4029, 1, 0, 0, 0, 4029, 4031, 1, 0, 0, 0, 4030, 4028, 1, 0, 0, 0, 4031, 4032, 5, 2446, 0, 0, 4032, 4034, 1, 0, 0, 0, 4033, 4022, 1, 0, 0, 0, 4033, 4034, 1, 0, 0, 0, 4034, 4039, 1, 0, 0, 0, 4035, 4038, 3, 114, 57, 0, 4036, 4038, 5, 1329, 0, 0, 4037, 4035, 1, 0, 0, 0, 4037, 4036, 1, 0, 0, 0, 4038, 4041, 1, 0, 0, 0, 4039, 4037, 1, 0, 0, 0, 4039, 4040, 1, 0, 0, 0, 4040, 4042, 1, 0, 0, 0, 4041, 4039, 1, 0, 0, 0, 4042, 4052, 7, 22, 0, 0, 4043, 4045, 5, 380, 0, 0, 4044, 4043, 1, 0, 0, 0, 4044, 4045, 1, 0, 0, 0, 4045, 4047, 1, 0, 0, 0, 4046, 4048, 3, 1732, 866, 0, 4047, 4046, 1, 0, 0, 0, 4047, 4048, 1, 0, 0, 0, 4048, 4049, 1, 0, 0, 0, 4049, 4053, 3, 1812, 906, 0, 4050, 4053, 3, 1714, 857, 0, 4051, 4053, 5, 558, 0, 0, 4052, 4044, 1, 0, 0, 0, 4052, 4050, 1, 0, 0, 0, 4052, 4051, 1, 0, 0, 0, 4053, 4054, 1, 0, 0, 0, 4054, 4055, 5, 2467, 0, 0, 4055, 179, 1, 0, 0, 0, 4056, 4059, 5, 319, 0, 0, 4057, 4058, 5, 1305, 0, 0, 4058, 4060, 5, 1560, 0, 0, 4059, 4057, 1, 0, 0, 0, 4059, 4060, 1, 0, 0, 0, 4060, 4061, 1, 0, 0, 0, 4061, 4062, 5, 1459, 0, 0, 4062, 4074, 3, 2310, 1155, 0, 4063, 4064, 5, 2445, 0, 0, 4064, 4069, 3, 1728, 864, 0, 4065, 4066, 5, 2451, 0, 0, 4066, 4068, 3, 1728, 864, 0, 4067, 4065, 1, 0, 0, 0, 4068, 4071, 1, 0, 0, 0, 4069, 4067, 1, 0, 0, 0, 4069, 4070, 1, 0, 0, 0, 4070, 4072, 1, 0, 0, 0, 4071, 4069, 1, 0, 0, 0, 4072, 4073, 5, 2446, 0, 0, 4073, 4075, 1, 0, 0, 0, 4074, 4063, 1, 0, 0, 0, 4074, 4075, 1, 0, 0, 0, 4075, 4077, 1, 0, 0, 0, 4076, 4078, 3, 1712, 856, 0, 4077, 4076, 1, 0, 0, 0, 4077, 4078, 1, 0, 0, 0, 4078, 4080, 1, 0, 0, 0, 4079, 4081, 5, 1329, 0, 0, 4080, 4079, 1, 0, 0, 0, 4080, 4081, 1, 0, 0, 0, 4081, 4082, 1, 0, 0, 0, 4082, 4092, 7, 22, 0, 0, 4083, 4085, 5, 380, 0, 0, 4084, 4083, 1, 0, 0, 0, 4084, 4085, 1, 0, 0, 0, 4085, 4087, 1, 0, 0, 0, 4086, 4088, 3, 1732, 866, 0, 4087, 4086, 1, 0, 0, 0, 4087, 4088, 1, 0, 0, 0, 4088, 4089, 1, 0, 0, 0, 4089, 4093, 3, 1812, 906, 0, 4090, 4093, 3, 1714, 857, 0, 4091, 4093, 5, 558, 0, 0, 4092, 4084, 1, 0, 0, 0, 4092, 4090, 1, 0, 0, 0, 4092, 4091, 1, 0, 0, 0, 4093, 181, 1, 0, 0, 0, 4094, 4095, 5, 42, 0, 0, 4095, 4096, 5, 1568, 0, 0, 4096, 4099, 5, 309, 0, 0, 4097, 4098, 7, 33, 0, 0, 4098, 4100, 5, 2439, 0, 0, 4099, 4097, 1, 0, 0, 0, 4100, 4101, 1, 0, 0, 0, 4101, 4099, 1, 0, 0, 0, 4101, 4102, 1, 0, 0, 0, 4102, 183, 1, 0, 0, 0, 4103, 4104, 5, 467, 0, 0, 4104, 4105, 5, 1313, 0, 0, 4105, 4106, 3, 2392, 1196, 0, 4106, 185, 1, 0, 0, 0, 4107, 4108, 5, 42, 0, 0, 4108, 4109, 5, 1594, 0, 0, 4109, 4110, 5, 1643, 0, 0, 4110, 4119, 3, 2272, 1136, 0, 4111, 4120, 5, 1254, 0, 0, 4112, 4120, 5, 1241, 0, 0, 4113, 4120, 3, 1190, 595, 0, 4114, 4117, 5, 1682, 0, 0, 4115, 4116, 5, 2139, 0, 0, 4116, 4118, 3, 1170, 585, 0, 4117, 4115, 1, 0, 0, 0, 4117, 4118, 1, 0, 0, 0, 4118, 4120, 1, 0, 0, 0, 4119, 4111, 1, 0, 0, 0, 4119, 4112, 1, 0, 0, 0, 4119, 4113, 1, 0, 0, 0, 4119, 4114, 1, 0, 0, 0, 4120, 187, 1, 0, 0, 0, 4121, 4122, 5, 467, 0, 0, 4122, 4123, 5, 1572, 0, 0, 4123, 4124, 5, 1409, 0, 0, 4124, 4129, 3, 2392, 1196, 0, 4125, 4126, 5, 618, 0, 0, 4126, 4127, 5, 1407, 0, 0, 4127, 4128, 5, 348, 0, 0, 4128, 4130, 3, 2392, 1196, 0, 4129, 4125, 1, 0, 0, 0, 4129, 4130, 1, 0, 0, 0, 4130, 189, 1, 0, 0, 0, 4131, 4132, 5, 467, 0, 0, 4132, 4133, 5, 1594, 0, 0, 4133, 4134, 5, 1643, 0, 0, 4134, 4135, 3, 2272, 1136, 0, 4135, 191, 1, 0, 0, 0, 4136, 4137, 5, 467, 0, 0, 4137, 4138, 5, 1591, 0, 0, 4138, 4139, 3, 2296, 1148, 0, 4139, 193, 1, 0, 0, 0, 4140, 4141, 5, 319, 0, 0, 4141, 4142, 5, 1408, 0, 0, 4142, 4143, 5, 590, 0, 0, 4143, 4145, 3, 2392, 1196, 0, 4144, 4146, 3, 196, 98, 0, 4145, 4144, 1, 0, 0, 0, 4146, 4147, 1, 0, 0, 0, 4147, 4145, 1, 0, 0, 0, 4147, 4148, 1, 0, 0, 0, 4148, 195, 1, 0, 0, 0, 4149, 4150, 5, 988, 0, 0, 4150, 4160, 3, 198, 99, 0, 4151, 4152, 5, 101, 0, 0, 4152, 4154, 3, 1452, 726, 0, 4153, 4155, 5, 1585, 0, 0, 4154, 4153, 1, 0, 0, 0, 4154, 4155, 1, 0, 0, 0, 4155, 4160, 1, 0, 0, 0, 4156, 4157, 7, 34, 0, 0, 4157, 4160, 3, 1170, 585, 0, 4158, 4160, 3, 920, 460, 0, 4159, 4149, 1, 0, 0, 0, 4159, 4151, 1, 0, 0, 0, 4159, 4156, 1, 0, 0, 0, 4159, 4158, 1, 0, 0, 0, 4160, 197, 1, 0, 0, 0, 4161, 4162, 5, 2441, 0, 0, 4162, 199, 1, 0, 0, 0, 4163, 4165, 5, 319, 0, 0, 4164, 4166, 5, 1471, 0, 0, 4165, 4164, 1, 0, 0, 0, 4165, 4166, 1, 0, 0, 0, 4166, 4167, 1, 0, 0, 0, 4167, 4168, 5, 1594, 0, 0, 4168, 4169, 5, 1643, 0, 0, 4169, 4175, 3, 2272, 1136, 0, 4170, 4171, 5, 2078, 0, 0, 4171, 4174, 3, 1648, 824, 0, 4172, 4174, 3, 1190, 595, 0, 4173, 4170, 1, 0, 0, 0, 4173, 4172, 1, 0, 0, 0, 4174, 4177, 1, 0, 0, 0, 4175, 4173, 1, 0, 0, 0, 4175, 4176, 1, 0, 0, 0, 4176, 201, 1, 0, 0, 0, 4177, 4175, 1, 0, 0, 0, 4178, 4179, 5, 467, 0, 0, 4179, 4180, 5, 2155, 0, 0, 4180, 4181, 3, 2312, 1156, 0, 4181, 203, 1, 0, 0, 0, 4182, 4183, 5, 42, 0, 0, 4183, 4184, 5, 2155, 0, 0, 4184, 4203, 3, 2312, 1156, 0, 4185, 4204, 7, 17, 0, 0, 4186, 4187, 5, 1557, 0, 0, 4187, 4188, 5, 2139, 0, 0, 4188, 4204, 3, 2312, 1156, 0, 4189, 4191, 5, 249, 0, 0, 4190, 4192, 5, 376, 0, 0, 4191, 4190, 1, 0, 0, 0, 4191, 4192, 1, 0, 0, 0, 4192, 4196, 1, 0, 0, 0, 4193, 4195, 3, 810, 405, 0, 4194, 4193, 1, 0, 0, 0, 4195, 4198, 1, 0, 0, 0, 4196, 4194, 1, 0, 0, 0, 4196, 4197, 1, 0, 0, 0, 4197, 4201, 1, 0, 0, 0, 4198, 4196, 1, 0, 0, 0, 4199, 4200, 5, 1585, 0, 0, 4200, 4202, 5, 1671, 0, 0, 4201, 4199, 1, 0, 0, 0, 4201, 4202, 1, 0, 0, 0, 4202, 4204, 1, 0, 0, 0, 4203, 4185, 1, 0, 0, 0, 4203, 4186, 1, 0, 0, 0, 4203, 4189, 1, 0, 0, 0, 4204, 205, 1, 0, 0, 0, 4205, 4208, 5, 319, 0, 0, 4206, 4207, 5, 1305, 0, 0, 4207, 4209, 5, 1560, 0, 0, 4208, 4206, 1, 0, 0, 0, 4208, 4209, 1, 0, 0, 0, 4209, 4210, 1, 0, 0, 0, 4210, 4211, 5, 2155, 0, 0, 4211, 4215, 3, 2312, 1156, 0, 4212, 4216, 3, 212, 106, 0, 4213, 4216, 3, 216, 108, 0, 4214, 4216, 3, 218, 109, 0, 4215, 4212, 1, 0, 0, 0, 4215, 4213, 1, 0, 0, 0, 4215, 4214, 1, 0, 0, 0, 4216, 4218, 1, 0, 0, 0, 4217, 4219, 3, 208, 104, 0, 4218, 4217, 1, 0, 0, 0, 4218, 4219, 1, 0, 0, 0, 4219, 4221, 1, 0, 0, 0, 4220, 4222, 7, 17, 0, 0, 4221, 4220, 1, 0, 0, 0, 4221, 4222, 1, 0, 0, 0, 4222, 4224, 1, 0, 0, 0, 4223, 4225, 3, 210, 105, 0, 4224, 4223, 1, 0, 0, 0, 4224, 4225, 1, 0, 0, 0, 4225, 4226, 1, 0, 0, 0, 4226, 4227, 3, 220, 110, 0, 4227, 207, 1, 0, 0, 0, 4228, 4229, 5, 612, 0, 0, 4229, 4234, 3, 2312, 1156, 0, 4230, 4231, 5, 2451, 0, 0, 4231, 4233, 3, 2312, 1156, 0, 4232, 4230, 1, 0, 0, 0, 4233, 4236, 1, 0, 0, 0, 4234, 4232, 1, 0, 0, 0, 4234, 4235, 1, 0, 0, 0, 4235, 209, 1, 0, 0, 0, 4236, 4234, 1, 0, 0, 0, 4237, 4238, 5, 2298, 0, 0, 4238, 4239, 5, 2445, 0, 0, 4239, 4240, 3, 2066, 1033, 0, 4240, 4241, 5, 2446, 0, 0, 4241, 211, 1, 0, 0, 0, 4242, 4247, 5, 112, 0, 0, 4243, 4247, 5, 33, 0, 0, 4244, 4245, 5, 761, 0, 0, 4245, 4247, 5, 1244, 0, 0, 4246, 4242, 1, 0, 0, 0, 4246, 4243, 1, 0, 0, 0, 4246, 4244, 1, 0, 0, 0, 4247, 4248, 1, 0, 0, 0, 4248, 4250, 3, 228, 114, 0, 4249, 4251, 3, 234, 117, 0, 4250, 4249, 1, 0, 0, 0, 4250, 4251, 1, 0, 0, 0, 4251, 4253, 1, 0, 0, 0, 4252, 4254, 3, 214, 107, 0, 4253, 4252, 1, 0, 0, 0, 4253, 4254, 1, 0, 0, 0, 4254, 213, 1, 0, 0, 0, 4255, 4256, 5, 618, 0, 0, 4256, 4257, 5, 479, 0, 0, 4257, 4258, 5, 1604, 0, 0, 4258, 215, 1, 0, 0, 0, 4259, 4260, 5, 618, 0, 0, 4260, 4262, 3, 228, 114, 0, 4261, 4263, 3, 234, 117, 0, 4262, 4261, 1, 0, 0, 0, 4262, 4263, 1, 0, 0, 0, 4263, 217, 1, 0, 0, 0, 4264, 4265, 7, 35, 0, 0, 4265, 4270, 3, 226, 113, 0, 4266, 4267, 5, 1305, 0, 0, 4267, 4269, 3, 226, 113, 0, 4268, 4266, 1, 0, 0, 0, 4269, 4272, 1, 0, 0, 0, 4270, 4268, 1, 0, 0, 0, 4270, 4271, 1, 0, 0, 0, 4271, 4273, 1, 0, 0, 0, 4272, 4270, 1, 0, 0, 0, 4273, 4281, 5, 1257, 0, 0, 4274, 4282, 5, 348, 0, 0, 4275, 4276, 3, 2274, 1137, 0, 4276, 4277, 5, 2438, 0, 0, 4277, 4279, 1, 0, 0, 0, 4278, 4275, 1, 0, 0, 0, 4278, 4279, 1, 0, 0, 0, 4279, 4280, 1, 0, 0, 0, 4280, 4282, 5, 1623, 0, 0, 4281, 4274, 1, 0, 0, 0, 4281, 4278, 1, 0, 0, 0, 4282, 219, 1, 0, 0, 0, 4283, 4288, 3, 222, 111, 0, 4284, 4285, 5, 173, 0, 0, 4285, 4288, 3, 2390, 1195, 0, 4286, 4288, 3, 1816, 908, 0, 4287, 4283, 1, 0, 0, 0, 4287, 4284, 1, 0, 0, 0, 4287, 4286, 1, 0, 0, 0, 4288, 221, 1, 0, 0, 0, 4289, 4290, 5, 257, 0, 0, 4290, 4292, 5, 2155, 0, 0, 4291, 4293, 3, 1732, 866, 0, 4292, 4291, 1, 0, 0, 0, 4292, 4293, 1, 0, 0, 0, 4293, 4295, 1, 0, 0, 0, 4294, 4296, 3, 224, 112, 0, 4295, 4294, 1, 0, 0, 0, 4296, 4297, 1, 0, 0, 0, 4297, 4295, 1, 0, 0, 0, 4297, 4298, 1, 0, 0, 0, 4298, 4299, 1, 0, 0, 0, 4299, 4301, 5, 506, 0, 0, 4300, 4302, 3, 2312, 1156, 0, 4301, 4300, 1, 0, 0, 0, 4301, 4302, 1, 0, 0, 0, 4302, 223, 1, 0, 0, 0, 4303, 4304, 5, 112, 0, 0, 4304, 4305, 5, 1741, 0, 0, 4305, 4306, 5, 783, 0, 0, 4306, 4307, 3, 1818, 909, 0, 4307, 4308, 5, 112, 0, 0, 4308, 4309, 5, 1741, 0, 0, 4309, 4310, 5, 2467, 0, 0, 4310, 4340, 1, 0, 0, 0, 4311, 4312, 5, 112, 0, 0, 4312, 4313, 5, 479, 0, 0, 4313, 4314, 5, 1604, 0, 0, 4314, 4315, 5, 783, 0, 0, 4315, 4316, 3, 1818, 909, 0, 4316, 4317, 5, 112, 0, 0, 4317, 4318, 5, 479, 0, 0, 4318, 4319, 5, 1604, 0, 0, 4319, 4320, 5, 2467, 0, 0, 4320, 4340, 1, 0, 0, 0, 4321, 4322, 5, 33, 0, 0, 4322, 4323, 5, 1741, 0, 0, 4323, 4324, 5, 783, 0, 0, 4324, 4325, 3, 1818, 909, 0, 4325, 4326, 5, 33, 0, 0, 4326, 4327, 5, 1741, 0, 0, 4327, 4328, 5, 2467, 0, 0, 4328, 4340, 1, 0, 0, 0, 4329, 4330, 5, 33, 0, 0, 4330, 4331, 5, 479, 0, 0, 4331, 4332, 5, 1604, 0, 0, 4332, 4333, 5, 783, 0, 0, 4333, 4334, 3, 1818, 909, 0, 4334, 4335, 5, 33, 0, 0, 4335, 4336, 5, 479, 0, 0, 4336, 4337, 5, 1604, 0, 0, 4337, 4338, 5, 2467, 0, 0, 4338, 4340, 1, 0, 0, 0, 4339, 4303, 1, 0, 0, 0, 4339, 4311, 1, 0, 0, 0, 4339, 4321, 1, 0, 0, 0, 4339, 4329, 1, 0, 0, 0, 4340, 225, 1, 0, 0, 0, 4341, 4368, 5, 42, 0, 0, 4342, 4368, 5, 46, 0, 0, 4343, 4344, 5, 77, 0, 0, 4344, 4368, 5, 1744, 0, 0, 4345, 4368, 5, 85, 0, 0, 4346, 4368, 5, 241, 0, 0, 4347, 4368, 5, 319, 0, 0, 4348, 4349, 5, 434, 0, 0, 4349, 4368, 5, 1744, 0, 0, 4350, 4368, 5, 467, 0, 0, 4351, 4368, 5, 645, 0, 0, 4352, 4368, 5, 1057, 0, 0, 4353, 4368, 5, 1557, 0, 0, 4354, 4368, 5, 1587, 0, 0, 4355, 4368, 5, 2157, 0, 0, 4356, 4368, 5, 374, 0, 0, 4357, 4368, 5, 1737, 0, 0, 4358, 4368, 5, 1683, 0, 0, 4359, 4368, 5, 370, 0, 0, 4360, 4368, 5, 889, 0, 0, 4361, 4368, 5, 888, 0, 0, 4362, 4368, 5, 1660, 0, 0, 4363, 4368, 5, 1788, 0, 0, 4364, 4368, 5, 348, 0, 0, 4365, 4368, 5, 1623, 0, 0, 4366, 4368, 5, 612, 0, 0, 4367, 4341, 1, 0, 0, 0, 4367, 4342, 1, 0, 0, 0, 4367, 4343, 1, 0, 0, 0, 4367, 4345, 1, 0, 0, 0, 4367, 4346, 1, 0, 0, 0, 4367, 4347, 1, 0, 0, 0, 4367, 4348, 1, 0, 0, 0, 4367, 4350, 1, 0, 0, 0, 4367, 4351, 1, 0, 0, 0, 4367, 4352, 1, 0, 0, 0, 4367, 4353, 1, 0, 0, 0, 4367, 4354, 1, 0, 0, 0, 4367, 4355, 1, 0, 0, 0, 4367, 4356, 1, 0, 0, 0, 4367, 4357, 1, 0, 0, 0, 4367, 4358, 1, 0, 0, 0, 4367, 4359, 1, 0, 0, 0, 4367, 4360, 1, 0, 0, 0, 4367, 4361, 1, 0, 0, 0, 4367, 4362, 1, 0, 0, 0, 4367, 4363, 1, 0, 0, 0, 4367, 4364, 1, 0, 0, 0, 4367, 4365, 1, 0, 0, 0, 4367, 4366, 1, 0, 0, 0, 4368, 227, 1, 0, 0, 0, 4369, 4374, 3, 230, 115, 0, 4370, 4371, 5, 1305, 0, 0, 4371, 4373, 3, 230, 115, 0, 4372, 4370, 1, 0, 0, 0, 4373, 4376, 1, 0, 0, 0, 4374, 4372, 1, 0, 0, 0, 4374, 4375, 1, 0, 0, 0, 4375, 4377, 1, 0, 0, 0, 4376, 4374, 1, 0, 0, 0, 4377, 4379, 5, 1257, 0, 0, 4378, 4380, 3, 232, 116, 0, 4379, 4378, 1, 0, 0, 0, 4379, 4380, 1, 0, 0, 0, 4380, 4381, 1, 0, 0, 0, 4381, 4382, 3, 2330, 1165, 0, 4382, 229, 1, 0, 0, 0, 4383, 4386, 7, 36, 0, 0, 4384, 4385, 5, 1244, 0, 0, 4385, 4387, 3, 2346, 1173, 0, 4386, 4384, 1, 0, 0, 0, 4386, 4387, 1, 0, 0, 0, 4387, 231, 1, 0, 0, 0, 4388, 4389, 5, 1011, 0, 0, 4389, 4390, 5, 2081, 0, 0, 4390, 4391, 3, 2330, 1165, 0, 4391, 4392, 5, 1244, 0, 0, 4392, 233, 1, 0, 0, 0, 4393, 4394, 5, 1527, 0, 0, 4394, 4397, 3, 236, 118, 0, 4395, 4397, 5, 1526, 0, 0, 4396, 4393, 1, 0, 0, 0, 4396, 4395, 1, 0, 0, 0, 4397, 4401, 1, 0, 0, 0, 4398, 4400, 3, 236, 118, 0, 4399, 4398, 1, 0, 0, 0, 4400, 4403, 1, 0, 0, 0, 4401, 4399, 1, 0, 0, 0, 4401, 4402, 1, 0, 0, 0, 4402, 235, 1, 0, 0, 0, 4403, 4401, 1, 0, 0, 0, 4404, 4405, 7, 37, 0, 0, 4405, 4406, 3, 2256, 1128, 0, 4406, 237, 1, 0, 0, 0, 4407, 4408, 5, 467, 0, 0, 4408, 4410, 5, 2164, 0, 0, 4409, 4411, 5, 147, 0, 0, 4410, 4409, 1, 0, 0, 0, 4410, 4411, 1, 0, 0, 0, 4411, 4412, 1, 0, 0, 0, 4412, 4414, 3, 2302, 1151, 0, 4413, 4415, 7, 38, 0, 0, 4414, 4413, 1, 0, 0, 0, 4414, 4415, 1, 0, 0, 0, 4415, 239, 1, 0, 0, 0, 4416, 4417, 5, 42, 0, 0, 4417, 4418, 5, 2164, 0, 0, 4418, 4425, 3, 2302, 1151, 0, 4419, 4426, 3, 242, 121, 0, 4420, 4426, 3, 244, 122, 0, 4421, 4426, 3, 246, 123, 0, 4422, 4426, 3, 250, 125, 0, 4423, 4426, 3, 284, 142, 0, 4424, 4426, 3, 296, 148, 0, 4425, 4419, 1, 0, 0, 0, 4425, 4420, 1, 0, 0, 0, 4425, 4421, 1, 0, 0, 0, 4425, 4422, 1, 0, 0, 0, 4425, 4423, 1, 0, 0, 0, 4425, 4424, 1, 0, 0, 0, 4426, 4428, 1, 0, 0, 0, 4427, 4429, 3, 252, 126, 0, 4428, 4427, 1, 0, 0, 0, 4428, 4429, 1, 0, 0, 0, 4429, 241, 1, 0, 0, 0, 4430, 4432, 5, 249, 0, 0, 4431, 4433, 5, 376, 0, 0, 4432, 4431, 1, 0, 0, 0, 4432, 4433, 1, 0, 0, 0, 4433, 4435, 1, 0, 0, 0, 4434, 4436, 7, 39, 0, 0, 4435, 4434, 1, 0, 0, 0, 4435, 4436, 1, 0, 0, 0, 4436, 4440, 1, 0, 0, 0, 4437, 4439, 3, 810, 405, 0, 4438, 4437, 1, 0, 0, 0, 4439, 4442, 1, 0, 0, 0, 4440, 4438, 1, 0, 0, 0, 4440, 4441, 1, 0, 0, 0, 4441, 4445, 1, 0, 0, 0, 4442, 4440, 1, 0, 0, 0, 4443, 4444, 5, 1585, 0, 0, 4444, 4446, 5, 1671, 0, 0, 4445, 4443, 1, 0, 0, 0, 4445, 4446, 1, 0, 0, 0, 4446, 243, 1, 0, 0, 0, 4447, 4449, 5, 1560, 0, 0, 4448, 4450, 3, 1712, 856, 0, 4449, 4448, 1, 0, 0, 0, 4449, 4450, 1, 0, 0, 0, 4450, 4451, 1, 0, 0, 0, 4451, 4452, 5, 69, 0, 0, 4452, 4453, 5, 1236, 0, 0, 4453, 4454, 5, 2445, 0, 0, 4454, 4459, 3, 286, 143, 0, 4455, 4456, 5, 2451, 0, 0, 4456, 4458, 3, 286, 143, 0, 4457, 4455, 1, 0, 0, 0, 4458, 4461, 1, 0, 0, 0, 4459, 4457, 1, 0, 0, 0, 4459, 4460, 1, 0, 0, 0, 4460, 4462, 1, 0, 0, 0, 4461, 4459, 1, 0, 0, 0, 4462, 4463, 5, 2446, 0, 0, 4463, 245, 1, 0, 0, 0, 4464, 4469, 3, 248, 124, 0, 4465, 4466, 5, 2451, 0, 0, 4466, 4468, 3, 248, 124, 0, 4467, 4465, 1, 0, 0, 0, 4468, 4471, 1, 0, 0, 0, 4469, 4467, 1, 0, 0, 0, 4469, 4470, 1, 0, 0, 0, 4470, 247, 1, 0, 0, 0, 4471, 4469, 1, 0, 0, 0, 4472, 4475, 7, 9, 0, 0, 4473, 4476, 3, 306, 153, 0, 4474, 4476, 3, 294, 147, 0, 4475, 4473, 1, 0, 0, 0, 4475, 4474, 1, 0, 0, 0, 4476, 249, 1, 0, 0, 0, 4477, 4483, 5, 978, 0, 0, 4478, 4479, 5, 856, 0, 0, 4479, 4484, 3, 2070, 1035, 0, 4480, 4481, 5, 484, 0, 0, 4481, 4482, 5, 2164, 0, 0, 4482, 4484, 3, 2362, 1181, 0, 4483, 4478, 1, 0, 0, 0, 4483, 4480, 1, 0, 0, 0, 4484, 251, 1, 0, 0, 0, 4485, 4502, 5, 778, 0, 0, 4486, 4496, 5, 179, 0, 0, 4487, 4488, 5, 298, 0, 0, 4488, 4489, 5, 2139, 0, 0, 4489, 4497, 5, 1778, 0, 0, 4490, 4492, 5, 1202, 0, 0, 4491, 4490, 1, 0, 0, 0, 4491, 4492, 1, 0, 0, 0, 4492, 4493, 1, 0, 0, 0, 4493, 4494, 5, 703, 0, 0, 4494, 4495, 5, 2081, 0, 0, 4495, 4497, 5, 349, 0, 0, 4496, 4487, 1, 0, 0, 0, 4496, 4491, 1, 0, 0, 0, 4496, 4497, 1, 0, 0, 0, 4497, 4499, 1, 0, 0, 0, 4498, 4500, 3, 254, 127, 0, 4499, 4498, 1, 0, 0, 0, 4499, 4500, 1, 0, 0, 0, 4500, 4502, 1, 0, 0, 0, 4501, 4485, 1, 0, 0, 0, 4501, 4486, 1, 0, 0, 0, 4502, 253, 1, 0, 0, 0, 4503, 4505, 5, 614, 0, 0, 4504, 4503, 1, 0, 0, 0, 4504, 4505, 1, 0, 0, 0, 4505, 4506, 1, 0, 0, 0, 4506, 4507, 5, 535, 0, 0, 4507, 4508, 5, 777, 0, 0, 4508, 4509, 3, 2330, 1165, 0, 4509, 255, 1, 0, 0, 0, 4510, 4513, 5, 319, 0, 0, 4511, 4512, 5, 1305, 0, 0, 4512, 4514, 5, 1560, 0, 0, 4513, 4511, 1, 0, 0, 0, 4513, 4514, 1, 0, 0, 0, 4514, 4516, 1, 0, 0, 0, 4515, 4517, 7, 20, 0, 0, 4516, 4515, 1, 0, 0, 0, 4516, 4517, 1, 0, 0, 0, 4517, 4518, 1, 0, 0, 0, 4518, 4521, 5, 2164, 0, 0, 4519, 4522, 3, 258, 129, 0, 4520, 4522, 3, 270, 135, 0, 4521, 4519, 1, 0, 0, 0, 4521, 4520, 1, 0, 0, 0, 4522, 257, 1, 0, 0, 0, 4523, 4526, 3, 2302, 1151, 0, 4524, 4525, 5, 1246, 0, 0, 4525, 4527, 5, 2441, 0, 0, 4526, 4524, 1, 0, 0, 0, 4526, 4527, 1, 0, 0, 0, 4527, 4529, 1, 0, 0, 0, 4528, 4530, 5, 614, 0, 0, 4529, 4528, 1, 0, 0, 0, 4529, 4530, 1, 0, 0, 0, 4530, 4532, 1, 0, 0, 0, 4531, 4533, 3, 260, 130, 0, 4532, 4531, 1, 0, 0, 0, 4532, 4533, 1, 0, 0, 0, 4533, 259, 1, 0, 0, 0, 4534, 4536, 3, 1712, 856, 0, 4535, 4534, 1, 0, 0, 0, 4535, 4536, 1, 0, 0, 0, 4536, 4539, 1, 0, 0, 0, 4537, 4540, 3, 262, 131, 0, 4538, 4540, 3, 264, 132, 0, 4539, 4537, 1, 0, 0, 0, 4539, 4538, 1, 0, 0, 0, 4540, 4542, 1, 0, 0, 0, 4541, 4543, 3, 268, 134, 0, 4542, 4541, 1, 0, 0, 0, 4542, 4543, 1, 0, 0, 0, 4543, 4555, 1, 0, 0, 0, 4544, 4545, 5, 2445, 0, 0, 4545, 4550, 3, 286, 143, 0, 4546, 4547, 5, 2451, 0, 0, 4547, 4549, 3, 286, 143, 0, 4548, 4546, 1, 0, 0, 0, 4549, 4552, 1, 0, 0, 0, 4550, 4548, 1, 0, 0, 0, 4550, 4551, 1, 0, 0, 0, 4551, 4553, 1, 0, 0, 0, 4552, 4550, 1, 0, 0, 0, 4553, 4554, 5, 2446, 0, 0, 4554, 4556, 1, 0, 0, 0, 4555, 4544, 1, 0, 0, 0, 4555, 4556, 1, 0, 0, 0, 4556, 4560, 1, 0, 0, 0, 4557, 4559, 3, 284, 142, 0, 4558, 4557, 1, 0, 0, 0, 4559, 4562, 1, 0, 0, 0, 4560, 4558, 1, 0, 0, 0, 4560, 4561, 1, 0, 0, 0, 4561, 261, 1, 0, 0, 0, 4562, 4560, 1, 0, 0, 0, 4563, 4567, 7, 22, 0, 0, 4564, 4568, 5, 1236, 0, 0, 4565, 4568, 3, 1760, 880, 0, 4566, 4568, 3, 266, 133, 0, 4567, 4564, 1, 0, 0, 0, 4567, 4565, 1, 0, 0, 0, 4567, 4566, 1, 0, 0, 0, 4568, 263, 1, 0, 0, 0, 4569, 4570, 5, 2175, 0, 0, 4570, 4571, 3, 2362, 1181, 0, 4571, 265, 1, 0, 0, 0, 4572, 4573, 5, 2081, 0, 0, 4573, 4574, 5, 1244, 0, 0, 4574, 4577, 3, 2362, 1181, 0, 4575, 4576, 5, 1202, 0, 0, 4576, 4578, 5, 1226, 0, 0, 4577, 4575, 1, 0, 0, 0, 4577, 4578, 1, 0, 0, 0, 4578, 267, 1, 0, 0, 0, 4579, 4580, 5, 558, 0, 0, 4580, 4581, 5, 995, 0, 0, 4581, 4582, 3, 2070, 1035, 0, 4582, 4583, 5, 821, 0, 0, 4583, 4584, 5, 790, 0, 0, 4584, 4585, 5, 2244, 0, 0, 4585, 4586, 7, 40, 0, 0, 4586, 269, 1, 0, 0, 0, 4587, 4588, 5, 147, 0, 0, 4588, 4589, 3, 2302, 1151, 0, 4589, 4591, 7, 22, 0, 0, 4590, 4592, 3, 272, 136, 0, 4591, 4590, 1, 0, 0, 0, 4592, 4593, 1, 0, 0, 0, 4593, 4591, 1, 0, 0, 0, 4593, 4594, 1, 0, 0, 0, 4594, 4595, 1, 0, 0, 0, 4595, 4596, 5, 506, 0, 0, 4596, 271, 1, 0, 0, 0, 4597, 4601, 3, 274, 137, 0, 4598, 4601, 3, 276, 138, 0, 4599, 4601, 3, 296, 148, 0, 4600, 4597, 1, 0, 0, 0, 4600, 4598, 1, 0, 0, 0, 4600, 4599, 1, 0, 0, 0, 4601, 273, 1, 0, 0, 0, 4602, 4603, 7, 41, 0, 0, 4603, 4604, 5, 934, 0, 0, 4604, 4605, 3, 280, 140, 0, 4605, 275, 1, 0, 0, 0, 4606, 4610, 7, 42, 0, 0, 4607, 4611, 3, 278, 139, 0, 4608, 4611, 3, 280, 140, 0, 4609, 4611, 3, 282, 141, 0, 4610, 4607, 1, 0, 0, 0, 4610, 4608, 1, 0, 0, 0, 4610, 4609, 1, 0, 0, 0, 4611, 277, 1, 0, 0, 0, 4612, 4613, 5, 1459, 0, 0, 4613, 4614, 3, 2310, 1155, 0, 4614, 4615, 5, 2445, 0, 0, 4615, 4620, 3, 312, 156, 0, 4616, 4617, 5, 2451, 0, 0, 4617, 4619, 3, 312, 156, 0, 4618, 4616, 1, 0, 0, 0, 4619, 4622, 1, 0, 0, 0, 4620, 4618, 1, 0, 0, 0, 4620, 4621, 1, 0, 0, 0, 4621, 4623, 1, 0, 0, 0, 4622, 4620, 1, 0, 0, 0, 4623, 4624, 5, 2446, 0, 0, 4624, 4635, 7, 22, 0, 0, 4625, 4636, 3, 1714, 857, 0, 4626, 4628, 5, 380, 0, 0, 4627, 4626, 1, 0, 0, 0, 4627, 4628, 1, 0, 0, 0, 4628, 4630, 1, 0, 0, 0, 4629, 4631, 3, 1732, 866, 0, 4630, 4629, 1, 0, 0, 0, 4630, 4631, 1, 0, 0, 0, 4631, 4632, 1, 0, 0, 0, 4632, 4633, 3, 1812, 906, 0, 4633, 4634, 5, 2467, 0, 0, 4634, 4636, 1, 0, 0, 0, 4635, 4625, 1, 0, 0, 0, 4635, 4627, 1, 0, 0, 0, 4636, 279, 1, 0, 0, 0, 4637, 4638, 5, 630, 0, 0, 4638, 4650, 3, 2308, 1154, 0, 4639, 4640, 5, 2445, 0, 0, 4640, 4645, 3, 312, 156, 0, 4641, 4642, 5, 2451, 0, 0, 4642, 4644, 3, 312, 156, 0, 4643, 4641, 1, 0, 0, 0, 4644, 4647, 1, 0, 0, 0, 4645, 4643, 1, 0, 0, 0, 4645, 4646, 1, 0, 0, 0, 4646, 4648, 1, 0, 0, 0, 4647, 4645, 1, 0, 0, 0, 4648, 4649, 5, 2446, 0, 0, 4649, 4651, 1, 0, 0, 0, 4650, 4639, 1, 0, 0, 0, 4650, 4651, 1, 0, 0, 0, 4651, 4652, 1, 0, 0, 0, 4652, 4653, 5, 1584, 0, 0, 4653, 4654, 3, 2362, 1181, 0, 4654, 4665, 7, 22, 0, 0, 4655, 4666, 3, 1714, 857, 0, 4656, 4658, 5, 380, 0, 0, 4657, 4656, 1, 0, 0, 0, 4657, 4658, 1, 0, 0, 0, 4658, 4660, 1, 0, 0, 0, 4659, 4661, 3, 1732, 866, 0, 4660, 4659, 1, 0, 0, 0, 4660, 4661, 1, 0, 0, 0, 4661, 4662, 1, 0, 0, 0, 4662, 4663, 3, 1812, 906, 0, 4663, 4664, 5, 2467, 0, 0, 4664, 4666, 1, 0, 0, 0, 4665, 4655, 1, 0, 0, 0, 4665, 4657, 1, 0, 0, 0, 4666, 281, 1, 0, 0, 0, 4667, 4669, 5, 593, 0, 0, 4668, 4667, 1, 0, 0, 0, 4668, 4669, 1, 0, 0, 0, 4669, 4671, 1, 0, 0, 0, 4670, 4672, 5, 759, 0, 0, 4671, 4670, 1, 0, 0, 0, 4671, 4672, 1, 0, 0, 0, 4672, 4673, 1, 0, 0, 0, 4673, 4674, 5, 286, 0, 0, 4674, 4675, 5, 630, 0, 0, 4675, 4693, 3, 2362, 1181, 0, 4676, 4677, 5, 2445, 0, 0, 4677, 4678, 5, 1646, 0, 0, 4678, 4679, 5, 736, 0, 0, 4679, 4680, 5, 1316, 0, 0, 4680, 4681, 3, 2362, 1181, 0, 4681, 4682, 5, 2451, 0, 0, 4682, 4683, 1, 0, 0, 0, 4683, 4688, 3, 312, 156, 0, 4684, 4685, 5, 2451, 0, 0, 4685, 4687, 3, 312, 156, 0, 4686, 4684, 1, 0, 0, 0, 4687, 4690, 1, 0, 0, 0, 4688, 4686, 1, 0, 0, 0, 4688, 4689, 1, 0, 0, 0, 4689, 4691, 1, 0, 0, 0, 4690, 4688, 1, 0, 0, 0, 4691, 4692, 5, 2446, 0, 0, 4692, 4694, 1, 0, 0, 0, 4693, 4676, 1, 0, 0, 0, 4693, 4694, 1, 0, 0, 0, 4694, 4695, 1, 0, 0, 0, 4695, 4696, 5, 1584, 0, 0, 4696, 4697, 5, 1646, 0, 0, 4697, 4698, 5, 69, 0, 0, 4698, 4699, 5, 1578, 0, 0, 4699, 4710, 7, 22, 0, 0, 4700, 4711, 3, 1714, 857, 0, 4701, 4703, 5, 380, 0, 0, 4702, 4701, 1, 0, 0, 0, 4702, 4703, 1, 0, 0, 0, 4703, 4705, 1, 0, 0, 0, 4704, 4706, 3, 1732, 866, 0, 4705, 4704, 1, 0, 0, 0, 4705, 4706, 1, 0, 0, 0, 4706, 4707, 1, 0, 0, 0, 4707, 4708, 3, 1812, 906, 0, 4708, 4709, 5, 2467, 0, 0, 4709, 4711, 1, 0, 0, 0, 4710, 4700, 1, 0, 0, 0, 4710, 4702, 1, 0, 0, 0, 4711, 283, 1, 0, 0, 0, 4712, 4714, 5, 1202, 0, 0, 4713, 4712, 1, 0, 0, 0, 4713, 4714, 1, 0, 0, 0, 4714, 4715, 1, 0, 0, 0, 4715, 4716, 7, 43, 0, 0, 4716, 285, 1, 0, 0, 0, 4717, 4718, 3, 2390, 1195, 0, 4718, 4720, 3, 2362, 1181, 0, 4719, 4721, 3, 288, 144, 0, 4720, 4719, 1, 0, 0, 0, 4720, 4721, 1, 0, 0, 0, 4721, 4724, 1, 0, 0, 0, 4722, 4724, 3, 290, 145, 0, 4723, 4717, 1, 0, 0, 0, 4723, 4722, 1, 0, 0, 0, 4724, 287, 1, 0, 0, 0, 4725, 4726, 5, 558, 0, 0, 4726, 4727, 5, 995, 0, 0, 4727, 4728, 3, 2070, 1035, 0, 4728, 289, 1, 0, 0, 0, 4729, 4731, 3, 284, 142, 0, 4730, 4729, 1, 0, 0, 0, 4730, 4731, 1, 0, 0, 0, 4731, 4733, 1, 0, 0, 0, 4732, 4734, 3, 292, 146, 0, 4733, 4732, 1, 0, 0, 0, 4734, 4735, 1, 0, 0, 0, 4735, 4733, 1, 0, 0, 0, 4735, 4736, 1, 0, 0, 0, 4736, 4739, 1, 0, 0, 0, 4737, 4738, 5, 2451, 0, 0, 4738, 4740, 3, 308, 154, 0, 4739, 4737, 1, 0, 0, 0, 4739, 4740, 1, 0, 0, 0, 4740, 291, 1, 0, 0, 0, 4741, 4745, 3, 294, 147, 0, 4742, 4745, 3, 304, 152, 0, 4743, 4745, 3, 306, 153, 0, 4744, 4741, 1, 0, 0, 0, 4744, 4742, 1, 0, 0, 0, 4744, 4743, 1, 0, 0, 0, 4745, 293, 1, 0, 0, 0, 4746, 4749, 7, 42, 0, 0, 4747, 4750, 3, 300, 150, 0, 4748, 4750, 3, 302, 151, 0, 4749, 4747, 1, 0, 0, 0, 4749, 4748, 1, 0, 0, 0, 4750, 295, 1, 0, 0, 0, 4751, 4752, 5, 1322, 0, 0, 4752, 4753, 5, 934, 0, 0, 4753, 4754, 3, 298, 149, 0, 4754, 297, 1, 0, 0, 0, 4755, 4756, 5, 630, 0, 0, 4756, 4768, 3, 2308, 1154, 0, 4757, 4758, 5, 2445, 0, 0, 4758, 4763, 3, 312, 156, 0, 4759, 4760, 5, 2451, 0, 0, 4760, 4762, 3, 312, 156, 0, 4761, 4759, 1, 0, 0, 0, 4762, 4765, 1, 0, 0, 0, 4763, 4761, 1, 0, 0, 0, 4763, 4764, 1, 0, 0, 0, 4764, 4766, 1, 0, 0, 0, 4765, 4763, 1, 0, 0, 0, 4766, 4767, 5, 2446, 0, 0, 4767, 4769, 1, 0, 0, 0, 4768, 4757, 1, 0, 0, 0, 4768, 4769, 1, 0, 0, 0, 4769, 4770, 1, 0, 0, 0, 4770, 4775, 5, 1584, 0, 0, 4771, 4776, 3, 2362, 1181, 0, 4772, 4773, 5, 1646, 0, 0, 4773, 4774, 5, 69, 0, 0, 4774, 4776, 5, 1578, 0, 0, 4775, 4771, 1, 0, 0, 0, 4775, 4772, 1, 0, 0, 0, 4776, 4788, 1, 0, 0, 0, 4777, 4779, 5, 1392, 0, 0, 4778, 4777, 1, 0, 0, 0, 4778, 4779, 1, 0, 0, 0, 4779, 4780, 1, 0, 0, 0, 4780, 4782, 7, 22, 0, 0, 4781, 4783, 5, 380, 0, 0, 4782, 4781, 1, 0, 0, 0, 4782, 4783, 1, 0, 0, 0, 4783, 4785, 1, 0, 0, 0, 4784, 4786, 3, 1732, 866, 0, 4785, 4784, 1, 0, 0, 0, 4785, 4786, 1, 0, 0, 0, 4786, 4787, 1, 0, 0, 0, 4787, 4789, 3, 1812, 906, 0, 4788, 4778, 1, 0, 0, 0, 4788, 4789, 1, 0, 0, 0, 4789, 4791, 1, 0, 0, 0, 4790, 4792, 5, 2467, 0, 0, 4791, 4790, 1, 0, 0, 0, 4791, 4792, 1, 0, 0, 0, 4792, 299, 1, 0, 0, 0, 4793, 4794, 5, 1459, 0, 0, 4794, 4795, 3, 2310, 1155, 0, 4795, 4796, 5, 2445, 0, 0, 4796, 4801, 3, 312, 156, 0, 4797, 4798, 5, 2451, 0, 0, 4798, 4800, 3, 312, 156, 0, 4799, 4797, 1, 0, 0, 0, 4800, 4803, 1, 0, 0, 0, 4801, 4799, 1, 0, 0, 0, 4801, 4802, 1, 0, 0, 0, 4802, 4804, 1, 0, 0, 0, 4803, 4801, 1, 0, 0, 0, 4804, 4807, 5, 2446, 0, 0, 4805, 4806, 7, 22, 0, 0, 4806, 4808, 3, 1714, 857, 0, 4807, 4805, 1, 0, 0, 0, 4807, 4808, 1, 0, 0, 0, 4808, 301, 1, 0, 0, 0, 4809, 4810, 5, 630, 0, 0, 4810, 4822, 3, 2308, 1154, 0, 4811, 4812, 5, 2445, 0, 0, 4812, 4817, 3, 312, 156, 0, 4813, 4814, 5, 2451, 0, 0, 4814, 4816, 3, 312, 156, 0, 4815, 4813, 1, 0, 0, 0, 4816, 4819, 1, 0, 0, 0, 4817, 4815, 1, 0, 0, 0, 4817, 4818, 1, 0, 0, 0, 4818, 4820, 1, 0, 0, 0, 4819, 4817, 1, 0, 0, 0, 4820, 4821, 5, 2446, 0, 0, 4821, 4823, 1, 0, 0, 0, 4822, 4811, 1, 0, 0, 0, 4822, 4823, 1, 0, 0, 0, 4823, 4824, 1, 0, 0, 0, 4824, 4829, 5, 1584, 0, 0, 4825, 4830, 3, 2362, 1181, 0, 4826, 4827, 5, 1646, 0, 0, 4827, 4828, 5, 69, 0, 0, 4828, 4830, 5, 1578, 0, 0, 4829, 4825, 1, 0, 0, 0, 4829, 4826, 1, 0, 0, 0, 4830, 4839, 1, 0, 0, 0, 4831, 4832, 7, 22, 0, 0, 4832, 4840, 3, 1714, 857, 0, 4833, 4835, 5, 558, 0, 0, 4834, 4836, 5, 2260, 0, 0, 4835, 4834, 1, 0, 0, 0, 4835, 4836, 1, 0, 0, 0, 4836, 4837, 1, 0, 0, 0, 4837, 4838, 5, 995, 0, 0, 4838, 4840, 3, 2070, 1035, 0, 4839, 4831, 1, 0, 0, 0, 4839, 4833, 1, 0, 0, 0, 4839, 4840, 1, 0, 0, 0, 4840, 303, 1, 0, 0, 0, 4841, 4843, 5, 593, 0, 0, 4842, 4841, 1, 0, 0, 0, 4842, 4843, 1, 0, 0, 0, 4843, 4845, 1, 0, 0, 0, 4844, 4846, 5, 759, 0, 0, 4845, 4844, 1, 0, 0, 0, 4845, 4846, 1, 0, 0, 0, 4846, 4847, 1, 0, 0, 0, 4847, 4848, 5, 286, 0, 0, 4848, 4849, 5, 630, 0, 0, 4849, 4867, 3, 2362, 1181, 0, 4850, 4851, 5, 2445, 0, 0, 4851, 4852, 5, 1646, 0, 0, 4852, 4853, 5, 736, 0, 0, 4853, 4854, 5, 1316, 0, 0, 4854, 4855, 3, 2362, 1181, 0, 4855, 4856, 5, 2451, 0, 0, 4856, 4857, 1, 0, 0, 0, 4857, 4862, 3, 312, 156, 0, 4858, 4859, 5, 2451, 0, 0, 4859, 4861, 3, 312, 156, 0, 4860, 4858, 1, 0, 0, 0, 4861, 4864, 1, 0, 0, 0, 4862, 4860, 1, 0, 0, 0, 4862, 4863, 1, 0, 0, 0, 4863, 4865, 1, 0, 0, 0, 4864, 4862, 1, 0, 0, 0, 4865, 4866, 5, 2446, 0, 0, 4866, 4868, 1, 0, 0, 0, 4867, 4850, 1, 0, 0, 0, 4867, 4868, 1, 0, 0, 0, 4868, 4869, 1, 0, 0, 0, 4869, 4870, 5, 1584, 0, 0, 4870, 4871, 5, 1646, 0, 0, 4871, 4872, 5, 69, 0, 0, 4872, 4875, 5, 1578, 0, 0, 4873, 4874, 7, 22, 0, 0, 4874, 4876, 3, 1714, 857, 0, 4875, 4873, 1, 0, 0, 0, 4875, 4876, 1, 0, 0, 0, 4876, 305, 1, 0, 0, 0, 4877, 4878, 7, 41, 0, 0, 4878, 4879, 5, 934, 0, 0, 4879, 4880, 3, 302, 151, 0, 4880, 307, 1, 0, 0, 0, 4881, 4882, 5, 1431, 0, 0, 4882, 4883, 5, 1575, 0, 0, 4883, 4884, 5, 2445, 0, 0, 4884, 4889, 3, 310, 155, 0, 4885, 4886, 5, 2451, 0, 0, 4886, 4888, 3, 310, 155, 0, 4887, 4885, 1, 0, 0, 0, 4888, 4891, 1, 0, 0, 0, 4889, 4887, 1, 0, 0, 0, 4889, 4890, 1, 0, 0, 0, 4890, 4892, 1, 0, 0, 0, 4891, 4889, 1, 0, 0, 0, 4892, 4893, 5, 2446, 0, 0, 4893, 309, 1, 0, 0, 0, 4894, 4897, 3, 2390, 1195, 0, 4895, 4897, 5, 387, 0, 0, 4896, 4894, 1, 0, 0, 0, 4896, 4895, 1, 0, 0, 0, 4897, 311, 1, 0, 0, 0, 4898, 4899, 3, 2282, 1141, 0, 4899, 4900, 3, 2362, 1181, 0, 4900, 313, 1, 0, 0, 0, 4901, 4902, 5, 467, 0, 0, 4902, 4903, 5, 1651, 0, 0, 4903, 4904, 3, 2304, 1152, 0, 4904, 315, 1, 0, 0, 0, 4905, 4906, 5, 42, 0, 0, 4906, 4907, 5, 1651, 0, 0, 4907, 4909, 3, 2304, 1152, 0, 4908, 4910, 3, 324, 162, 0, 4909, 4908, 1, 0, 0, 0, 4910, 4911, 1, 0, 0, 0, 4911, 4909, 1, 0, 0, 0, 4911, 4912, 1, 0, 0, 0, 4912, 317, 1, 0, 0, 0, 4913, 4914, 5, 42, 0, 0, 4914, 4944, 5, 1665, 0, 0, 4915, 4916, 5, 30, 0, 0, 4916, 4945, 7, 44, 0, 0, 4917, 4918, 5, 218, 0, 0, 4918, 4919, 5, 348, 0, 0, 4919, 4920, 5, 859, 0, 0, 4920, 4945, 3, 2282, 1141, 0, 4921, 4922, 3, 1302, 651, 0, 4922, 4923, 5, 242, 0, 0, 4923, 4924, 5, 736, 0, 0, 4924, 4925, 5, 1459, 0, 0, 4925, 4945, 1, 0, 0, 0, 4926, 4927, 3, 1302, 651, 0, 4927, 4928, 5, 654, 0, 0, 4928, 4945, 1, 0, 0, 0, 4929, 4932, 3, 1302, 651, 0, 4930, 4932, 5, 614, 0, 0, 4931, 4929, 1, 0, 0, 0, 4931, 4930, 1, 0, 0, 0, 4932, 4933, 1, 0, 0, 0, 4933, 4934, 5, 1331, 0, 0, 4934, 4940, 7, 45, 0, 0, 4935, 4938, 5, 1331, 0, 0, 4936, 4939, 3, 2176, 1088, 0, 4937, 4939, 3, 2282, 1141, 0, 4938, 4936, 1, 0, 0, 0, 4938, 4937, 1, 0, 0, 0, 4939, 4941, 1, 0, 0, 0, 4940, 4935, 1, 0, 0, 0, 4940, 4941, 1, 0, 0, 0, 4941, 4945, 1, 0, 0, 0, 4942, 4943, 5, 1669, 0, 0, 4943, 4945, 3, 320, 160, 0, 4944, 4915, 1, 0, 0, 0, 4944, 4917, 1, 0, 0, 0, 4944, 4921, 1, 0, 0, 0, 4944, 4926, 1, 0, 0, 0, 4944, 4931, 1, 0, 0, 0, 4944, 4942, 1, 0, 0, 0, 4945, 319, 1, 0, 0, 0, 4946, 4947, 3, 2282, 1141, 0, 4947, 4948, 5, 2469, 0, 0, 4948, 4949, 3, 812, 406, 0, 4949, 4951, 1, 0, 0, 0, 4950, 4946, 1, 0, 0, 0, 4951, 4952, 1, 0, 0, 0, 4952, 4950, 1, 0, 0, 0, 4952, 4953, 1, 0, 0, 0, 4953, 4977, 1, 0, 0, 0, 4954, 4955, 5, 481, 0, 0, 4955, 4956, 5, 2469, 0, 0, 4956, 4977, 3, 2392, 1196, 0, 4957, 4958, 5, 287, 0, 0, 4958, 4959, 5, 2469, 0, 0, 4959, 4963, 3, 2392, 1196, 0, 4960, 4961, 5, 1662, 0, 0, 4961, 4962, 5, 2469, 0, 0, 4962, 4964, 3, 2392, 1196, 0, 4963, 4960, 1, 0, 0, 0, 4963, 4964, 1, 0, 0, 0, 4964, 4977, 1, 0, 0, 0, 4965, 4966, 5, 1604, 0, 0, 4966, 4967, 5, 63, 0, 0, 4967, 4968, 5, 2287, 0, 0, 4968, 4969, 5, 2469, 0, 0, 4969, 4977, 7, 46, 0, 0, 4970, 4971, 5, 390, 0, 0, 4971, 4974, 5, 2469, 0, 0, 4972, 4975, 3, 2392, 1196, 0, 4973, 4975, 5, 1131, 0, 0, 4974, 4972, 1, 0, 0, 0, 4974, 4973, 1, 0, 0, 0, 4975, 4977, 1, 0, 0, 0, 4976, 4950, 1, 0, 0, 0, 4976, 4954, 1, 0, 0, 0, 4976, 4957, 1, 0, 0, 0, 4976, 4965, 1, 0, 0, 0, 4976, 4970, 1, 0, 0, 0, 4977, 321, 1, 0, 0, 0, 4978, 4979, 5, 319, 0, 0, 4979, 4983, 5, 1651, 0, 0, 4980, 4981, 5, 689, 0, 0, 4981, 4982, 5, 1202, 0, 0, 4982, 4984, 5, 543, 0, 0, 4983, 4980, 1, 0, 0, 0, 4983, 4984, 1, 0, 0, 0, 4984, 4985, 1, 0, 0, 0, 4985, 4989, 3, 2304, 1152, 0, 4986, 4988, 3, 324, 162, 0, 4987, 4986, 1, 0, 0, 0, 4988, 4991, 1, 0, 0, 0, 4989, 4987, 1, 0, 0, 0, 4989, 4990, 1, 0, 0, 0, 4990, 4995, 1, 0, 0, 0, 4991, 4989, 1, 0, 0, 0, 4992, 4993, 5, 1679, 0, 0, 4993, 4994, 5, 2469, 0, 0, 4994, 4996, 7, 47, 0, 0, 4995, 4992, 1, 0, 0, 0, 4995, 4996, 1, 0, 0, 0, 4996, 323, 1, 0, 0, 0, 4997, 4998, 5, 705, 0, 0, 4998, 4999, 5, 160, 0, 0, 4999, 5029, 5, 2439, 0, 0, 5000, 5029, 3, 326, 163, 0, 5001, 5002, 5, 930, 0, 0, 5002, 5029, 5, 2439, 0, 0, 5003, 5029, 5, 1119, 0, 0, 5004, 5005, 5, 958, 0, 0, 5005, 5029, 5, 2439, 0, 0, 5006, 5029, 5, 1122, 0, 0, 5007, 5029, 5, 346, 0, 0, 5008, 5029, 5, 1082, 0, 0, 5009, 5010, 5, 166, 0, 0, 5010, 5029, 5, 2439, 0, 0, 5011, 5029, 5, 1064, 0, 0, 5012, 5029, 5, 1301, 0, 0, 5013, 5029, 5, 1138, 0, 0, 5014, 5029, 5, 812, 0, 0, 5015, 5029, 5, 1112, 0, 0, 5016, 5018, 5, 1618, 0, 0, 5017, 5019, 7, 48, 0, 0, 5018, 5017, 1, 0, 0, 0, 5018, 5019, 1, 0, 0, 0, 5019, 5029, 1, 0, 0, 0, 5020, 5029, 5, 1179, 0, 0, 5021, 5023, 5, 1674, 0, 0, 5022, 5024, 7, 48, 0, 0, 5023, 5022, 1, 0, 0, 0, 5023, 5024, 1, 0, 0, 0, 5024, 5029, 1, 0, 0, 0, 5025, 5029, 5, 1185, 0, 0, 5026, 5029, 5, 1665, 0, 0, 5027, 5029, 5, 640, 0, 0, 5028, 4997, 1, 0, 0, 0, 5028, 5000, 1, 0, 0, 0, 5028, 5001, 1, 0, 0, 0, 5028, 5003, 1, 0, 0, 0, 5028, 5004, 1, 0, 0, 0, 5028, 5006, 1, 0, 0, 0, 5028, 5007, 1, 0, 0, 0, 5028, 5008, 1, 0, 0, 0, 5028, 5009, 1, 0, 0, 0, 5028, 5011, 1, 0, 0, 0, 5028, 5012, 1, 0, 0, 0, 5028, 5013, 1, 0, 0, 0, 5028, 5014, 1, 0, 0, 0, 5028, 5015, 1, 0, 0, 0, 5028, 5016, 1, 0, 0, 0, 5028, 5020, 1, 0, 0, 0, 5028, 5021, 1, 0, 0, 0, 5028, 5025, 1, 0, 0, 0, 5028, 5026, 1, 0, 0, 0, 5028, 5027, 1, 0, 0, 0, 5029, 325, 1, 0, 0, 0, 5030, 5031, 5, 1735, 0, 0, 5031, 5032, 5, 2306, 0, 0, 5032, 5033, 5, 2439, 0, 0, 5033, 327, 1, 0, 0, 0, 5034, 5037, 5, 319, 0, 0, 5035, 5036, 5, 1305, 0, 0, 5036, 5038, 5, 1560, 0, 0, 5037, 5035, 1, 0, 0, 0, 5037, 5038, 1, 0, 0, 0, 5038, 5040, 1, 0, 0, 0, 5039, 5041, 7, 7, 0, 0, 5040, 5039, 1, 0, 0, 0, 5040, 5041, 1, 0, 0, 0, 5041, 5042, 1, 0, 0, 0, 5042, 5043, 5, 45, 0, 0, 5043, 5044, 5, 2284, 0, 0, 5044, 5048, 3, 2392, 1196, 0, 5045, 5046, 5, 1679, 0, 0, 5046, 5047, 5, 2469, 0, 0, 5047, 5049, 7, 21, 0, 0, 5048, 5045, 1, 0, 0, 0, 5048, 5049, 1, 0, 0, 0, 5049, 5053, 1, 0, 0, 0, 5050, 5052, 3, 330, 165, 0, 5051, 5050, 1, 0, 0, 0, 5052, 5055, 1, 0, 0, 0, 5053, 5051, 1, 0, 0, 0, 5053, 5054, 1, 0, 0, 0, 5054, 5057, 1, 0, 0, 0, 5055, 5053, 1, 0, 0, 0, 5056, 5058, 3, 340, 170, 0, 5057, 5056, 1, 0, 0, 0, 5057, 5058, 1, 0, 0, 0, 5058, 5060, 1, 0, 0, 0, 5059, 5061, 3, 342, 171, 0, 5060, 5059, 1, 0, 0, 0, 5060, 5061, 1, 0, 0, 0, 5061, 5063, 1, 0, 0, 0, 5062, 5064, 3, 350, 175, 0, 5063, 5062, 1, 0, 0, 0, 5063, 5064, 1, 0, 0, 0, 5064, 5066, 1, 0, 0, 0, 5065, 5067, 3, 360, 180, 0, 5066, 5065, 1, 0, 0, 0, 5066, 5067, 1, 0, 0, 0, 5067, 5069, 1, 0, 0, 0, 5068, 5070, 3, 362, 181, 0, 5069, 5068, 1, 0, 0, 0, 5069, 5070, 1, 0, 0, 0, 5070, 5072, 1, 0, 0, 0, 5071, 5073, 3, 364, 182, 0, 5072, 5071, 1, 0, 0, 0, 5072, 5073, 1, 0, 0, 0, 5073, 5075, 1, 0, 0, 0, 5074, 5076, 3, 374, 187, 0, 5075, 5074, 1, 0, 0, 0, 5075, 5076, 1, 0, 0, 0, 5076, 5078, 1, 0, 0, 0, 5077, 5079, 3, 376, 188, 0, 5078, 5077, 1, 0, 0, 0, 5078, 5079, 1, 0, 0, 0, 5079, 329, 1, 0, 0, 0, 5080, 5082, 3, 332, 166, 0, 5081, 5083, 3, 334, 167, 0, 5082, 5081, 1, 0, 0, 0, 5082, 5083, 1, 0, 0, 0, 5083, 5089, 1, 0, 0, 0, 5084, 5086, 3, 332, 166, 0, 5085, 5084, 1, 0, 0, 0, 5085, 5086, 1, 0, 0, 0, 5086, 5087, 1, 0, 0, 0, 5087, 5089, 3, 334, 167, 0, 5088, 5080, 1, 0, 0, 0, 5088, 5085, 1, 0, 0, 0, 5089, 5093, 1, 0, 0, 0, 5090, 5092, 3, 336, 168, 0, 5091, 5090, 1, 0, 0, 0, 5092, 5095, 1, 0, 0, 0, 5093, 5091, 1, 0, 0, 0, 5093, 5094, 1, 0, 0, 0, 5094, 5108, 1, 0, 0, 0, 5095, 5093, 1, 0, 0, 0, 5096, 5098, 3, 332, 166, 0, 5097, 5096, 1, 0, 0, 0, 5097, 5098, 1, 0, 0, 0, 5098, 5100, 1, 0, 0, 0, 5099, 5101, 3, 334, 167, 0, 5100, 5099, 1, 0, 0, 0, 5100, 5101, 1, 0, 0, 0, 5101, 5103, 1, 0, 0, 0, 5102, 5104, 3, 336, 168, 0, 5103, 5102, 1, 0, 0, 0, 5104, 5105, 1, 0, 0, 0, 5105, 5103, 1, 0, 0, 0, 5105, 5106, 1, 0, 0, 0, 5106, 5108, 1, 0, 0, 0, 5107, 5088, 1, 0, 0, 0, 5107, 5097, 1, 0, 0, 0, 5108, 331, 1, 0, 0, 0, 5109, 5110, 5, 177, 0, 0, 5110, 5111, 3, 2388, 1194, 0, 5111, 333, 1, 0, 0, 0, 5112, 5113, 5, 413, 0, 0, 5113, 5114, 3, 2388, 1194, 0, 5114, 335, 1, 0, 0, 0, 5115, 5116, 5, 207, 0, 0, 5116, 5119, 3, 2392, 1196, 0, 5117, 5118, 5, 2256, 0, 0, 5118, 5120, 3, 2388, 1194, 0, 5119, 5117, 1, 0, 0, 0, 5119, 5120, 1, 0, 0, 0, 5120, 5123, 1, 0, 0, 0, 5121, 5122, 5, 821, 0, 0, 5122, 5124, 3, 338, 169, 0, 5123, 5121, 1, 0, 0, 0, 5123, 5124, 1, 0, 0, 0, 5124, 337, 1, 0, 0, 0, 5125, 5128, 5, 1226, 0, 0, 5126, 5128, 3, 2392, 1196, 0, 5127, 5125, 1, 0, 0, 0, 5127, 5126, 1, 0, 0, 0, 5128, 339, 1, 0, 0, 0, 5129, 5133, 5, 2244, 0, 0, 5130, 5131, 3, 2274, 1137, 0, 5131, 5132, 5, 2438, 0, 0, 5132, 5134, 1, 0, 0, 0, 5133, 5130, 1, 0, 0, 0, 5133, 5134, 1, 0, 0, 0, 5134, 5135, 1, 0, 0, 0, 5135, 5137, 3, 2392, 1196, 0, 5136, 5138, 5, 1554, 0, 0, 5137, 5136, 1, 0, 0, 0, 5137, 5138, 1, 0, 0, 0, 5138, 5143, 1, 0, 0, 0, 5139, 5141, 5, 69, 0, 0, 5140, 5139, 1, 0, 0, 0, 5140, 5141, 1, 0, 0, 0, 5141, 5142, 1, 0, 0, 0, 5142, 5144, 3, 2392, 1196, 0, 5143, 5140, 1, 0, 0, 0, 5143, 5144, 1, 0, 0, 0, 5144, 341, 1, 0, 0, 0, 5145, 5146, 5, 420, 0, 0, 5146, 5147, 5, 160, 0, 0, 5147, 5148, 5, 2445, 0, 0, 5148, 5153, 3, 344, 172, 0, 5149, 5150, 5, 2451, 0, 0, 5150, 5152, 3, 344, 172, 0, 5151, 5149, 1, 0, 0, 0, 5152, 5155, 1, 0, 0, 0, 5153, 5151, 1, 0, 0, 0, 5153, 5154, 1, 0, 0, 0, 5154, 5156, 1, 0, 0, 0, 5155, 5153, 1, 0, 0, 0, 5156, 5157, 5, 2446, 0, 0, 5157, 343, 1, 0, 0, 0, 5158, 5162, 3, 346, 173, 0, 5159, 5161, 3, 330, 165, 0, 5160, 5159, 1, 0, 0, 0, 5161, 5164, 1, 0, 0, 0, 5162, 5160, 1, 0, 0, 0, 5162, 5163, 1, 0, 0, 0, 5163, 5165, 1, 0, 0, 0, 5164, 5162, 1, 0, 0, 0, 5165, 5193, 5, 814, 0, 0, 5166, 5170, 5, 2445, 0, 0, 5167, 5168, 3, 2392, 1196, 0, 5168, 5169, 5, 2438, 0, 0, 5169, 5171, 1, 0, 0, 0, 5170, 5167, 1, 0, 0, 0, 5170, 5171, 1, 0, 0, 0, 5171, 5172, 1, 0, 0, 0, 5172, 5182, 3, 2328, 1164, 0, 5173, 5177, 5, 2451, 0, 0, 5174, 5175, 3, 2392, 1196, 0, 5175, 5176, 5, 2438, 0, 0, 5176, 5178, 1, 0, 0, 0, 5177, 5174, 1, 0, 0, 0, 5177, 5178, 1, 0, 0, 0, 5178, 5179, 1, 0, 0, 0, 5179, 5181, 3, 2328, 1164, 0, 5180, 5173, 1, 0, 0, 0, 5181, 5184, 1, 0, 0, 0, 5182, 5180, 1, 0, 0, 0, 5182, 5183, 1, 0, 0, 0, 5183, 5185, 1, 0, 0, 0, 5184, 5182, 1, 0, 0, 0, 5185, 5186, 5, 2446, 0, 0, 5186, 5194, 1, 0, 0, 0, 5187, 5188, 3, 2392, 1196, 0, 5188, 5189, 5, 2438, 0, 0, 5189, 5191, 1, 0, 0, 0, 5190, 5187, 1, 0, 0, 0, 5190, 5191, 1, 0, 0, 0, 5191, 5192, 1, 0, 0, 0, 5192, 5194, 3, 2328, 1164, 0, 5193, 5166, 1, 0, 0, 0, 5193, 5190, 1, 0, 0, 0, 5194, 5195, 1, 0, 0, 0, 5195, 5197, 5, 1526, 0, 0, 5196, 5198, 5, 443, 0, 0, 5197, 5196, 1, 0, 0, 0, 5197, 5198, 1, 0, 0, 0, 5198, 5207, 1, 0, 0, 0, 5199, 5200, 5, 2445, 0, 0, 5200, 5201, 3, 2268, 1134, 0, 5201, 5202, 5, 2451, 0, 0, 5202, 5203, 3, 2268, 1134, 0, 5203, 5204, 1, 0, 0, 0, 5204, 5205, 5, 2446, 0, 0, 5205, 5208, 1, 0, 0, 0, 5206, 5208, 3, 2268, 1134, 0, 5207, 5199, 1, 0, 0, 0, 5207, 5206, 1, 0, 0, 0, 5208, 5209, 1, 0, 0, 0, 5209, 5210, 5, 671, 0, 0, 5210, 5211, 5, 2445, 0, 0, 5211, 5216, 3, 348, 174, 0, 5212, 5213, 5, 2451, 0, 0, 5213, 5215, 3, 348, 174, 0, 5214, 5212, 1, 0, 0, 0, 5215, 5218, 1, 0, 0, 0, 5216, 5214, 1, 0, 0, 0, 5216, 5217, 1, 0, 0, 0, 5217, 5219, 1, 0, 0, 0, 5218, 5216, 1, 0, 0, 0, 5219, 5220, 5, 2446, 0, 0, 5220, 345, 1, 0, 0, 0, 5221, 5222, 3, 2274, 1137, 0, 5222, 5223, 5, 2438, 0, 0, 5223, 5225, 1, 0, 0, 0, 5224, 5221, 1, 0, 0, 0, 5224, 5225, 1, 0, 0, 0, 5225, 5226, 1, 0, 0, 0, 5226, 5231, 3, 2392, 1196, 0, 5227, 5229, 5, 69, 0, 0, 5228, 5227, 1, 0, 0, 0, 5228, 5229, 1, 0, 0, 0, 5229, 5230, 1, 0, 0, 0, 5230, 5232, 3, 2392, 1196, 0, 5231, 5228, 1, 0, 0, 0, 5231, 5232, 1, 0, 0, 0, 5232, 347, 1, 0, 0, 0, 5233, 5234, 3, 2274, 1137, 0, 5234, 5235, 5, 2438, 0, 0, 5235, 5237, 1, 0, 0, 0, 5236, 5233, 1, 0, 0, 0, 5236, 5237, 1, 0, 0, 0, 5237, 5238, 1, 0, 0, 0, 5238, 5243, 3, 2392, 1196, 0, 5239, 5241, 5, 69, 0, 0, 5240, 5239, 1, 0, 0, 0, 5240, 5241, 1, 0, 0, 0, 5241, 5242, 1, 0, 0, 0, 5242, 5244, 3, 2392, 1196, 0, 5243, 5240, 1, 0, 0, 0, 5243, 5244, 1, 0, 0, 0, 5244, 5246, 1, 0, 0, 0, 5245, 5247, 5, 387, 0, 0, 5246, 5245, 1, 0, 0, 0, 5246, 5247, 1, 0, 0, 0, 5247, 349, 1, 0, 0, 0, 5248, 5249, 5, 932, 0, 0, 5249, 5250, 5, 2445, 0, 0, 5250, 5255, 3, 352, 176, 0, 5251, 5252, 5, 2451, 0, 0, 5252, 5254, 3, 352, 176, 0, 5253, 5251, 1, 0, 0, 0, 5254, 5257, 1, 0, 0, 0, 5255, 5253, 1, 0, 0, 0, 5255, 5256, 1, 0, 0, 0, 5256, 5258, 1, 0, 0, 0, 5257, 5255, 1, 0, 0, 0, 5258, 5259, 5, 2446, 0, 0, 5259, 351, 1, 0, 0, 0, 5260, 5263, 3, 2392, 1196, 0, 5261, 5264, 3, 354, 177, 0, 5262, 5264, 3, 358, 179, 0, 5263, 5261, 1, 0, 0, 0, 5263, 5262, 1, 0, 0, 0, 5263, 5264, 1, 0, 0, 0, 5264, 353, 1, 0, 0, 0, 5265, 5266, 5, 565, 0, 0, 5266, 5268, 3, 2392, 1196, 0, 5267, 5269, 3, 356, 178, 0, 5268, 5267, 1, 0, 0, 0, 5268, 5269, 1, 0, 0, 0, 5269, 355, 1, 0, 0, 0, 5270, 5271, 5, 35, 0, 0, 5271, 5272, 5, 160, 0, 0, 5272, 5273, 3, 2290, 1145, 0, 5273, 357, 1, 0, 0, 0, 5274, 5275, 5, 69, 0, 0, 5275, 5276, 5, 2445, 0, 0, 5276, 5277, 3, 2070, 1035, 0, 5277, 5278, 5, 2446, 0, 0, 5278, 359, 1, 0, 0, 0, 5279, 5280, 5, 387, 0, 0, 5280, 5281, 5, 931, 0, 0, 5281, 5282, 3, 2392, 1196, 0, 5282, 361, 1, 0, 0, 0, 5283, 5284, 5, 387, 0, 0, 5284, 5285, 5, 35, 0, 0, 5285, 5286, 5, 160, 0, 0, 5286, 5287, 3, 2290, 1145, 0, 5287, 363, 1, 0, 0, 0, 5288, 5289, 5, 166, 0, 0, 5289, 5294, 3, 366, 183, 0, 5290, 5291, 5, 2451, 0, 0, 5291, 5293, 3, 366, 183, 0, 5292, 5290, 1, 0, 0, 0, 5293, 5296, 1, 0, 0, 0, 5294, 5292, 1, 0, 0, 0, 5294, 5295, 1, 0, 0, 0, 5295, 365, 1, 0, 0, 0, 5296, 5294, 1, 0, 0, 0, 5297, 5298, 5, 931, 0, 0, 5298, 5318, 5, 647, 0, 0, 5299, 5319, 5, 38, 0, 0, 5300, 5301, 5, 2445, 0, 0, 5301, 5306, 3, 2392, 1196, 0, 5302, 5303, 5, 2451, 0, 0, 5303, 5305, 3, 2392, 1196, 0, 5304, 5302, 1, 0, 0, 0, 5305, 5308, 1, 0, 0, 0, 5306, 5304, 1, 0, 0, 0, 5306, 5307, 1, 0, 0, 0, 5307, 5309, 1, 0, 0, 0, 5308, 5306, 1, 0, 0, 0, 5309, 5310, 5, 2446, 0, 0, 5310, 5315, 3, 368, 184, 0, 5311, 5312, 5, 2451, 0, 0, 5312, 5314, 3, 368, 184, 0, 5313, 5311, 1, 0, 0, 0, 5314, 5317, 1, 0, 0, 0, 5315, 5313, 1, 0, 0, 0, 5315, 5316, 1, 0, 0, 0, 5316, 5319, 1, 0, 0, 0, 5317, 5315, 1, 0, 0, 0, 5318, 5299, 1, 0, 0, 0, 5318, 5300, 1, 0, 0, 0, 5319, 367, 1, 0, 0, 0, 5320, 5321, 5, 846, 0, 0, 5321, 5322, 5, 2445, 0, 0, 5322, 5327, 3, 370, 185, 0, 5323, 5324, 5, 2451, 0, 0, 5324, 5326, 3, 370, 185, 0, 5325, 5323, 1, 0, 0, 0, 5326, 5329, 1, 0, 0, 0, 5327, 5325, 1, 0, 0, 0, 5327, 5328, 1, 0, 0, 0, 5328, 5330, 1, 0, 0, 0, 5329, 5327, 1, 0, 0, 0, 5330, 5331, 5, 2446, 0, 0, 5331, 5332, 3, 372, 186, 0, 5332, 369, 1, 0, 0, 0, 5333, 5342, 5, 2445, 0, 0, 5334, 5335, 3, 2392, 1196, 0, 5335, 5336, 5, 2438, 0, 0, 5336, 5338, 1, 0, 0, 0, 5337, 5334, 1, 0, 0, 0, 5337, 5338, 1, 0, 0, 0, 5338, 5339, 1, 0, 0, 0, 5339, 5340, 3, 2392, 1196, 0, 5340, 5341, 5, 2438, 0, 0, 5341, 5343, 1, 0, 0, 0, 5342, 5337, 1, 0, 0, 0, 5342, 5343, 1, 0, 0, 0, 5343, 5344, 1, 0, 0, 0, 5344, 5345, 3, 2392, 1196, 0, 5345, 5346, 5, 2446, 0, 0, 5346, 371, 1, 0, 0, 0, 5347, 5359, 5, 475, 0, 0, 5348, 5356, 5, 917, 0, 0, 5349, 5353, 5, 2244, 0, 0, 5350, 5351, 3, 2274, 1137, 0, 5351, 5352, 5, 2438, 0, 0, 5352, 5354, 1, 0, 0, 0, 5353, 5350, 1, 0, 0, 0, 5353, 5354, 1, 0, 0, 0, 5354, 5355, 1, 0, 0, 0, 5355, 5357, 3, 2392, 1196, 0, 5356, 5349, 1, 0, 0, 0, 5356, 5357, 1, 0, 0, 0, 5357, 5359, 1, 0, 0, 0, 5358, 5347, 1, 0, 0, 0, 5358, 5348, 1, 0, 0, 0, 5359, 373, 1, 0, 0, 0, 5360, 5361, 5, 565, 0, 0, 5361, 5362, 5, 237, 0, 0, 5362, 5377, 3, 2328, 1164, 0, 5363, 5365, 5, 69, 0, 0, 5364, 5363, 1, 0, 0, 0, 5364, 5365, 1, 0, 0, 0, 5365, 5366, 1, 0, 0, 0, 5366, 5374, 3, 2392, 1196, 0, 5367, 5369, 5, 2451, 0, 0, 5368, 5370, 5, 69, 0, 0, 5369, 5368, 1, 0, 0, 0, 5369, 5370, 1, 0, 0, 0, 5370, 5371, 1, 0, 0, 0, 5371, 5373, 3, 2392, 1196, 0, 5372, 5367, 1, 0, 0, 0, 5373, 5376, 1, 0, 0, 0, 5374, 5372, 1, 0, 0, 0, 5374, 5375, 1, 0, 0, 0, 5375, 5378, 1, 0, 0, 0, 5376, 5374, 1, 0, 0, 0, 5377, 5364, 1, 0, 0, 0, 5377, 5378, 1, 0, 0, 0, 5378, 375, 1, 0, 0, 0, 5379, 5380, 5, 497, 0, 0, 5380, 5381, 5, 1482, 0, 0, 5381, 5383, 5, 2146, 0, 0, 5382, 5384, 7, 49, 0, 0, 5383, 5382, 1, 0, 0, 0, 5383, 5384, 1, 0, 0, 0, 5384, 377, 1, 0, 0, 0, 5385, 5388, 5, 319, 0, 0, 5386, 5387, 5, 1305, 0, 0, 5387, 5389, 5, 1560, 0, 0, 5388, 5386, 1, 0, 0, 0, 5388, 5389, 1, 0, 0, 0, 5389, 5391, 1, 0, 0, 0, 5390, 5392, 7, 7, 0, 0, 5391, 5390, 1, 0, 0, 0, 5391, 5392, 1, 0, 0, 0, 5392, 5393, 1, 0, 0, 0, 5393, 5394, 5, 83, 0, 0, 5394, 5398, 5, 420, 0, 0, 5395, 5396, 3, 2274, 1137, 0, 5396, 5397, 5, 2438, 0, 0, 5397, 5399, 1, 0, 0, 0, 5398, 5395, 1, 0, 0, 0, 5398, 5399, 1, 0, 0, 0, 5399, 5400, 1, 0, 0, 0, 5400, 5404, 3, 2392, 1196, 0, 5401, 5402, 5, 1679, 0, 0, 5402, 5403, 5, 2469, 0, 0, 5403, 5405, 7, 21, 0, 0, 5404, 5401, 1, 0, 0, 0, 5404, 5405, 1, 0, 0, 0, 5405, 5409, 1, 0, 0, 0, 5406, 5408, 3, 330, 165, 0, 5407, 5406, 1, 0, 0, 0, 5408, 5411, 1, 0, 0, 0, 5409, 5407, 1, 0, 0, 0, 5409, 5410, 1, 0, 0, 0, 5410, 5415, 1, 0, 0, 0, 5411, 5409, 1, 0, 0, 0, 5412, 5413, 5, 420, 0, 0, 5413, 5414, 5, 2164, 0, 0, 5414, 5416, 7, 50, 0, 0, 5415, 5412, 1, 0, 0, 0, 5415, 5416, 1, 0, 0, 0, 5416, 5417, 1, 0, 0, 0, 5417, 5418, 3, 380, 190, 0, 5418, 5420, 3, 390, 195, 0, 5419, 5421, 3, 394, 197, 0, 5420, 5419, 1, 0, 0, 0, 5421, 5422, 1, 0, 0, 0, 5422, 5420, 1, 0, 0, 0, 5422, 5423, 1, 0, 0, 0, 5423, 5425, 1, 0, 0, 0, 5424, 5426, 3, 402, 201, 0, 5425, 5424, 1, 0, 0, 0, 5425, 5426, 1, 0, 0, 0, 5426, 379, 1, 0, 0, 0, 5427, 5428, 5, 2244, 0, 0, 5428, 5433, 3, 382, 191, 0, 5429, 5430, 5, 2451, 0, 0, 5430, 5432, 3, 382, 191, 0, 5431, 5429, 1, 0, 0, 0, 5432, 5435, 1, 0, 0, 0, 5433, 5431, 1, 0, 0, 0, 5433, 5434, 1, 0, 0, 0, 5434, 5439, 1, 0, 0, 0, 5435, 5433, 1, 0, 0, 0, 5436, 5438, 3, 384, 192, 0, 5437, 5436, 1, 0, 0, 0, 5438, 5441, 1, 0, 0, 0, 5439, 5437, 1, 0, 0, 0, 5439, 5440, 1, 0, 0, 0, 5440, 381, 1, 0, 0, 0, 5441, 5439, 1, 0, 0, 0, 5442, 5443, 3, 2274, 1137, 0, 5443, 5444, 5, 2438, 0, 0, 5444, 5446, 1, 0, 0, 0, 5445, 5442, 1, 0, 0, 0, 5445, 5446, 1, 0, 0, 0, 5446, 5447, 1, 0, 0, 0, 5447, 5449, 3, 2392, 1196, 0, 5448, 5450, 5, 1554, 0, 0, 5449, 5448, 1, 0, 0, 0, 5449, 5450, 1, 0, 0, 0, 5450, 5455, 1, 0, 0, 0, 5451, 5453, 5, 69, 0, 0, 5452, 5451, 1, 0, 0, 0, 5452, 5453, 1, 0, 0, 0, 5453, 5454, 1, 0, 0, 0, 5454, 5456, 3, 2392, 1196, 0, 5455, 5452, 1, 0, 0, 0, 5455, 5456, 1, 0, 0, 0, 5456, 383, 1, 0, 0, 0, 5457, 5458, 5, 792, 0, 0, 5458, 5459, 5, 1361, 0, 0, 5459, 5460, 3, 2392, 1196, 0, 5460, 5461, 5, 1257, 0, 0, 5461, 5462, 3, 386, 193, 0, 5462, 385, 1, 0, 0, 0, 5463, 5468, 3, 388, 194, 0, 5464, 5465, 5, 49, 0, 0, 5465, 5467, 3, 388, 194, 0, 5466, 5464, 1, 0, 0, 0, 5467, 5470, 1, 0, 0, 0, 5468, 5466, 1, 0, 0, 0, 5468, 5469, 1, 0, 0, 0, 5469, 387, 1, 0, 0, 0, 5470, 5468, 1, 0, 0, 0, 5471, 5472, 3, 2392, 1196, 0, 5472, 5473, 5, 2438, 0, 0, 5473, 5475, 1, 0, 0, 0, 5474, 5471, 1, 0, 0, 0, 5474, 5475, 1, 0, 0, 0, 5475, 5476, 1, 0, 0, 0, 5476, 5477, 3, 2328, 1164, 0, 5477, 5481, 5, 2469, 0, 0, 5478, 5479, 3, 2392, 1196, 0, 5479, 5480, 5, 2438, 0, 0, 5480, 5482, 1, 0, 0, 0, 5481, 5478, 1, 0, 0, 0, 5481, 5482, 1, 0, 0, 0, 5482, 5483, 1, 0, 0, 0, 5483, 5484, 3, 2328, 1164, 0, 5484, 389, 1, 0, 0, 0, 5485, 5486, 5, 84, 0, 0, 5486, 5487, 5, 2445, 0, 0, 5487, 5492, 3, 392, 196, 0, 5488, 5489, 5, 2451, 0, 0, 5489, 5491, 3, 392, 196, 0, 5490, 5488, 1, 0, 0, 0, 5491, 5494, 1, 0, 0, 0, 5492, 5490, 1, 0, 0, 0, 5492, 5493, 1, 0, 0, 0, 5493, 5495, 1, 0, 0, 0, 5494, 5492, 1, 0, 0, 0, 5495, 5496, 5, 2446, 0, 0, 5496, 391, 1, 0, 0, 0, 5497, 5498, 3, 2392, 1196, 0, 5498, 5499, 5, 2438, 0, 0, 5499, 5501, 1, 0, 0, 0, 5500, 5497, 1, 0, 0, 0, 5500, 5501, 1, 0, 0, 0, 5501, 5502, 1, 0, 0, 0, 5502, 5507, 3, 2328, 1164, 0, 5503, 5505, 5, 69, 0, 0, 5504, 5503, 1, 0, 0, 0, 5504, 5505, 1, 0, 0, 0, 5505, 5506, 1, 0, 0, 0, 5506, 5508, 3, 2392, 1196, 0, 5507, 5504, 1, 0, 0, 0, 5507, 5508, 1, 0, 0, 0, 5508, 5512, 1, 0, 0, 0, 5509, 5511, 3, 330, 165, 0, 5510, 5509, 1, 0, 0, 0, 5511, 5514, 1, 0, 0, 0, 5512, 5510, 1, 0, 0, 0, 5512, 5513, 1, 0, 0, 0, 5513, 393, 1, 0, 0, 0, 5514, 5512, 1, 0, 0, 0, 5515, 5516, 5, 844, 0, 0, 5516, 5522, 3, 2392, 1196, 0, 5517, 5518, 5, 1202, 0, 0, 5518, 5523, 5, 1226, 0, 0, 5519, 5520, 5, 1700, 0, 0, 5520, 5521, 5, 2298, 0, 0, 5521, 5523, 5, 1226, 0, 0, 5522, 5517, 1, 0, 0, 0, 5522, 5519, 1, 0, 0, 0, 5522, 5523, 1, 0, 0, 0, 5523, 5527, 1, 0, 0, 0, 5524, 5525, 5, 844, 0, 0, 5525, 5526, 5, 2164, 0, 0, 5526, 5528, 7, 51, 0, 0, 5527, 5524, 1, 0, 0, 0, 5527, 5528, 1, 0, 0, 0, 5528, 5532, 1, 0, 0, 0, 5529, 5531, 3, 330, 165, 0, 5530, 5529, 1, 0, 0, 0, 5531, 5534, 1, 0, 0, 0, 5532, 5530, 1, 0, 0, 0, 5532, 5533, 1, 0, 0, 0, 5533, 5535, 1, 0, 0, 0, 5534, 5532, 1, 0, 0, 0, 5535, 5537, 3, 396, 198, 0, 5536, 5538, 3, 398, 199, 0, 5537, 5536, 1, 0, 0, 0, 5537, 5538, 1, 0, 0, 0, 5538, 5542, 1, 0, 0, 0, 5539, 5540, 5, 934, 0, 0, 5540, 5541, 5, 995, 0, 0, 5541, 5543, 3, 2070, 1035, 0, 5542, 5539, 1, 0, 0, 0, 5542, 5543, 1, 0, 0, 0, 5543, 5547, 1, 0, 0, 0, 5544, 5545, 5, 934, 0, 0, 5545, 5546, 5, 177, 0, 0, 5546, 5548, 3, 2070, 1035, 0, 5547, 5544, 1, 0, 0, 0, 5547, 5548, 1, 0, 0, 0, 5548, 5552, 1, 0, 0, 0, 5549, 5550, 5, 934, 0, 0, 5550, 5551, 5, 413, 0, 0, 5551, 5553, 3, 2070, 1035, 0, 5552, 5549, 1, 0, 0, 0, 5552, 5553, 1, 0, 0, 0, 5553, 5570, 1, 0, 0, 0, 5554, 5555, 5, 1301, 0, 0, 5555, 5557, 5, 160, 0, 0, 5556, 5558, 7, 52, 0, 0, 5557, 5556, 1, 0, 0, 0, 5557, 5558, 1, 0, 0, 0, 5558, 5559, 1, 0, 0, 0, 5559, 5567, 3, 400, 200, 0, 5560, 5562, 5, 2451, 0, 0, 5561, 5563, 7, 52, 0, 0, 5562, 5561, 1, 0, 0, 0, 5562, 5563, 1, 0, 0, 0, 5563, 5564, 1, 0, 0, 0, 5564, 5566, 3, 400, 200, 0, 5565, 5560, 1, 0, 0, 0, 5566, 5569, 1, 0, 0, 0, 5567, 5565, 1, 0, 0, 0, 5567, 5568, 1, 0, 0, 0, 5568, 5571, 1, 0, 0, 0, 5569, 5567, 1, 0, 0, 0, 5570, 5554, 1, 0, 0, 0, 5570, 5571, 1, 0, 0, 0, 5571, 5584, 1, 0, 0, 0, 5572, 5573, 5, 417, 0, 0, 5573, 5574, 5, 2445, 0, 0, 5574, 5579, 3, 2392, 1196, 0, 5575, 5576, 5, 2451, 0, 0, 5576, 5578, 3, 2392, 1196, 0, 5577, 5575, 1, 0, 0, 0, 5578, 5581, 1, 0, 0, 0, 5579, 5577, 1, 0, 0, 0, 5579, 5580, 1, 0, 0, 0, 5580, 5582, 1, 0, 0, 0, 5581, 5579, 1, 0, 0, 0, 5582, 5583, 5, 2446, 0, 0, 5583, 5585, 1, 0, 0, 0, 5584, 5572, 1, 0, 0, 0, 5584, 5585, 1, 0, 0, 0, 5585, 395, 1, 0, 0, 0, 5586, 5599, 5, 814, 0, 0, 5587, 5600, 3, 2392, 1196, 0, 5588, 5589, 5, 2445, 0, 0, 5589, 5594, 3, 2392, 1196, 0, 5590, 5591, 5, 2451, 0, 0, 5591, 5593, 3, 2392, 1196, 0, 5592, 5590, 1, 0, 0, 0, 5593, 5596, 1, 0, 0, 0, 5594, 5592, 1, 0, 0, 0, 5594, 5595, 1, 0, 0, 0, 5595, 5597, 1, 0, 0, 0, 5596, 5594, 1, 0, 0, 0, 5597, 5598, 5, 2446, 0, 0, 5598, 5600, 1, 0, 0, 0, 5599, 5587, 1, 0, 0, 0, 5599, 5588, 1, 0, 0, 0, 5600, 397, 1, 0, 0, 0, 5601, 5602, 5, 43, 0, 0, 5602, 5603, 3, 396, 198, 0, 5603, 399, 1, 0, 0, 0, 5604, 5606, 3, 2392, 1196, 0, 5605, 5607, 7, 53, 0, 0, 5606, 5605, 1, 0, 0, 0, 5606, 5607, 1, 0, 0, 0, 5607, 5610, 1, 0, 0, 0, 5608, 5609, 5, 1227, 0, 0, 5609, 5611, 7, 54, 0, 0, 5610, 5608, 1, 0, 0, 0, 5610, 5611, 1, 0, 0, 0, 5611, 401, 1, 0, 0, 0, 5612, 5613, 5, 38, 0, 0, 5613, 5630, 5, 934, 0, 0, 5614, 5615, 5, 995, 0, 0, 5615, 5619, 3, 2070, 1035, 0, 5616, 5617, 5, 934, 0, 0, 5617, 5618, 5, 177, 0, 0, 5618, 5620, 3, 2070, 1035, 0, 5619, 5616, 1, 0, 0, 0, 5619, 5620, 1, 0, 0, 0, 5620, 5631, 1, 0, 0, 0, 5621, 5622, 5, 177, 0, 0, 5622, 5626, 3, 2070, 1035, 0, 5623, 5624, 5, 934, 0, 0, 5624, 5625, 5, 413, 0, 0, 5625, 5627, 3, 2070, 1035, 0, 5626, 5623, 1, 0, 0, 0, 5626, 5627, 1, 0, 0, 0, 5627, 5631, 1, 0, 0, 0, 5628, 5629, 5, 413, 0, 0, 5629, 5631, 3, 2070, 1035, 0, 5630, 5614, 1, 0, 0, 0, 5630, 5621, 1, 0, 0, 0, 5630, 5628, 1, 0, 0, 0, 5631, 403, 1, 0, 0, 0, 5632, 5633, 5, 319, 0, 0, 5633, 5634, 5, 85, 0, 0, 5634, 5635, 5, 1410, 0, 0, 5635, 5637, 3, 2392, 1196, 0, 5636, 5638, 3, 406, 203, 0, 5637, 5636, 1, 0, 0, 0, 5637, 5638, 1, 0, 0, 0, 5638, 5640, 1, 0, 0, 0, 5639, 5641, 3, 408, 204, 0, 5640, 5639, 1, 0, 0, 0, 5640, 5641, 1, 0, 0, 0, 5641, 5643, 1, 0, 0, 0, 5642, 5644, 3, 424, 212, 0, 5643, 5642, 1, 0, 0, 0, 5643, 5644, 1, 0, 0, 0, 5644, 5651, 1, 0, 0, 0, 5645, 5646, 5, 2298, 0, 0, 5646, 5647, 3, 2388, 1194, 0, 5647, 5648, 5, 528, 0, 0, 5648, 5649, 5, 1388, 0, 0, 5649, 5650, 7, 55, 0, 0, 5650, 5652, 1, 0, 0, 0, 5651, 5645, 1, 0, 0, 0, 5651, 5652, 1, 0, 0, 0, 5652, 5655, 1, 0, 0, 0, 5653, 5654, 5, 1256, 0, 0, 5654, 5656, 5, 2133, 0, 0, 5655, 5653, 1, 0, 0, 0, 5655, 5656, 1, 0, 0, 0, 5656, 5658, 1, 0, 0, 0, 5657, 5659, 3, 764, 382, 0, 5658, 5657, 1, 0, 0, 0, 5658, 5659, 1, 0, 0, 0, 5659, 405, 1, 0, 0, 0, 5660, 5661, 5, 1457, 0, 0, 5661, 5666, 3, 2380, 1190, 0, 5662, 5663, 5, 2451, 0, 0, 5663, 5665, 3, 2380, 1190, 0, 5664, 5662, 1, 0, 0, 0, 5665, 5668, 1, 0, 0, 0, 5666, 5664, 1, 0, 0, 0, 5666, 5667, 1, 0, 0, 0, 5667, 407, 1, 0, 0, 0, 5668, 5666, 1, 0, 0, 0, 5669, 5673, 3, 412, 206, 0, 5670, 5673, 3, 420, 210, 0, 5671, 5673, 3, 410, 205, 0, 5672, 5669, 1, 0, 0, 0, 5672, 5670, 1, 0, 0, 0, 5672, 5671, 1, 0, 0, 0, 5673, 5674, 1, 0, 0, 0, 5674, 5672, 1, 0, 0, 0, 5674, 5675, 1, 0, 0, 0, 5675, 409, 1, 0, 0, 0, 5676, 5677, 5, 12, 0, 0, 5677, 5682, 3, 2380, 1190, 0, 5678, 5679, 5, 2451, 0, 0, 5679, 5681, 3, 2380, 1190, 0, 5680, 5678, 1, 0, 0, 0, 5681, 5684, 1, 0, 0, 0, 5682, 5680, 1, 0, 0, 0, 5682, 5683, 1, 0, 0, 0, 5683, 411, 1, 0, 0, 0, 5684, 5682, 1, 0, 0, 0, 5685, 5686, 5, 12, 0, 0, 5686, 5691, 3, 414, 207, 0, 5687, 5688, 5, 2451, 0, 0, 5688, 5690, 3, 414, 207, 0, 5689, 5687, 1, 0, 0, 0, 5690, 5693, 1, 0, 0, 0, 5691, 5689, 1, 0, 0, 0, 5691, 5692, 1, 0, 0, 0, 5692, 413, 1, 0, 0, 0, 5693, 5691, 1, 0, 0, 0, 5694, 5697, 3, 416, 208, 0, 5695, 5697, 5, 38, 0, 0, 5696, 5694, 1, 0, 0, 0, 5696, 5695, 1, 0, 0, 0, 5697, 5698, 1, 0, 0, 0, 5698, 5711, 5, 1257, 0, 0, 5699, 5700, 5, 424, 0, 0, 5700, 5712, 3, 784, 392, 0, 5701, 5702, 5, 953, 0, 0, 5702, 5704, 5, 969, 0, 0, 5703, 5701, 1, 0, 0, 0, 5703, 5704, 1, 0, 0, 0, 5704, 5708, 1, 0, 0, 0, 5705, 5706, 3, 2274, 1137, 0, 5706, 5707, 5, 2438, 0, 0, 5707, 5709, 1, 0, 0, 0, 5708, 5705, 1, 0, 0, 0, 5708, 5709, 1, 0, 0, 0, 5709, 5710, 1, 0, 0, 0, 5710, 5712, 3, 2392, 1196, 0, 5711, 5699, 1, 0, 0, 0, 5711, 5703, 1, 0, 0, 0, 5712, 5718, 1, 0, 0, 0, 5713, 5716, 3, 418, 209, 0, 5714, 5716, 5, 38, 0, 0, 5715, 5713, 1, 0, 0, 0, 5715, 5714, 1, 0, 0, 0, 5716, 5718, 1, 0, 0, 0, 5717, 5696, 1, 0, 0, 0, 5717, 5715, 1, 0, 0, 0, 5718, 415, 1, 0, 0, 0, 5719, 5720, 7, 56, 0, 0, 5720, 417, 1, 0, 0, 0, 5721, 5729, 3, 2392, 1196, 0, 5722, 5723, 7, 57, 0, 0, 5723, 5729, 5, 790, 0, 0, 5724, 5725, 5, 879, 0, 0, 5725, 5729, 5, 2081, 0, 0, 5726, 5727, 7, 58, 0, 0, 5727, 5729, 5, 424, 0, 0, 5728, 5721, 1, 0, 0, 0, 5728, 5722, 1, 0, 0, 0, 5728, 5724, 1, 0, 0, 0, 5728, 5726, 1, 0, 0, 0, 5729, 419, 1, 0, 0, 0, 5730, 5731, 5, 12, 0, 0, 5731, 5732, 5, 252, 0, 0, 5732, 5758, 5, 2469, 0, 0, 5733, 5734, 7, 59, 0, 0, 5734, 5739, 3, 422, 211, 0, 5735, 5736, 5, 2451, 0, 0, 5736, 5738, 3, 422, 211, 0, 5737, 5735, 1, 0, 0, 0, 5738, 5741, 1, 0, 0, 0, 5739, 5737, 1, 0, 0, 0, 5739, 5740, 1, 0, 0, 0, 5740, 5759, 1, 0, 0, 0, 5741, 5739, 1, 0, 0, 0, 5742, 5743, 5, 474, 0, 0, 5743, 5744, 3, 422, 211, 0, 5744, 5745, 5, 1257, 0, 0, 5745, 5753, 3, 2392, 1196, 0, 5746, 5747, 5, 2451, 0, 0, 5747, 5748, 3, 422, 211, 0, 5748, 5749, 5, 1257, 0, 0, 5749, 5750, 3, 2392, 1196, 0, 5750, 5752, 1, 0, 0, 0, 5751, 5746, 1, 0, 0, 0, 5752, 5755, 1, 0, 0, 0, 5753, 5751, 1, 0, 0, 0, 5753, 5754, 1, 0, 0, 0, 5754, 5759, 1, 0, 0, 0, 5755, 5753, 1, 0, 0, 0, 5756, 5757, 5, 1468, 0, 0, 5757, 5759, 7, 60, 0, 0, 5758, 5733, 1, 0, 0, 0, 5758, 5742, 1, 0, 0, 0, 5758, 5756, 1, 0, 0, 0, 5759, 421, 1, 0, 0, 0, 5760, 5761, 3, 2392, 1196, 0, 5761, 423, 1, 0, 0, 0, 5762, 5763, 5, 1593, 0, 0, 5763, 5768, 3, 2296, 1148, 0, 5764, 5765, 5, 2451, 0, 0, 5765, 5767, 3, 2296, 1148, 0, 5766, 5764, 1, 0, 0, 0, 5767, 5770, 1, 0, 0, 0, 5768, 5766, 1, 0, 0, 0, 5768, 5769, 1, 0, 0, 0, 5769, 425, 1, 0, 0, 0, 5770, 5768, 1, 0, 0, 0, 5771, 5772, 5, 319, 0, 0, 5772, 5774, 5, 296, 0, 0, 5773, 5775, 5, 1585, 0, 0, 5774, 5773, 1, 0, 0, 0, 5774, 5775, 1, 0, 0, 0, 5775, 5777, 1, 0, 0, 0, 5776, 5778, 5, 1669, 0, 0, 5777, 5776, 1, 0, 0, 0, 5777, 5778, 1, 0, 0, 0, 5778, 5779, 1, 0, 0, 0, 5779, 5780, 5, 348, 0, 0, 5780, 5782, 3, 2392, 1196, 0, 5781, 5783, 3, 430, 215, 0, 5782, 5781, 1, 0, 0, 0, 5782, 5783, 1, 0, 0, 0, 5783, 5784, 1, 0, 0, 0, 5784, 5794, 7, 61, 0, 0, 5785, 5786, 5, 350, 0, 0, 5786, 5791, 3, 434, 217, 0, 5787, 5788, 5, 2451, 0, 0, 5788, 5790, 3, 434, 217, 0, 5789, 5787, 1, 0, 0, 0, 5790, 5793, 1, 0, 0, 0, 5791, 5789, 1, 0, 0, 0, 5791, 5792, 1, 0, 0, 0, 5792, 5795, 1, 0, 0, 0, 5793, 5791, 1, 0, 0, 0, 5794, 5785, 1, 0, 0, 0, 5794, 5795, 1, 0, 0, 0, 5795, 5799, 1, 0, 0, 0, 5796, 5798, 3, 428, 214, 0, 5797, 5796, 1, 0, 0, 0, 5798, 5801, 1, 0, 0, 0, 5799, 5797, 1, 0, 0, 0, 5799, 5800, 1, 0, 0, 0, 5800, 5803, 1, 0, 0, 0, 5801, 5799, 1, 0, 0, 0, 5802, 5804, 3, 432, 216, 0, 5803, 5802, 1, 0, 0, 0, 5803, 5804, 1, 0, 0, 0, 5804, 427, 1, 0, 0, 0, 5805, 5806, 5, 924, 0, 0, 5806, 5830, 3, 2384, 1192, 0, 5807, 5808, 5, 926, 0, 0, 5808, 5830, 3, 2384, 1192, 0, 5809, 5810, 5, 925, 0, 0, 5810, 5830, 3, 2384, 1192, 0, 5811, 5812, 5, 920, 0, 0, 5812, 5830, 3, 2384, 1192, 0, 5813, 5814, 5, 923, 0, 0, 5814, 5830, 3, 2384, 1192, 0, 5815, 5830, 5, 66, 0, 0, 5816, 5830, 5, 1056, 0, 0, 5817, 5818, 5, 614, 0, 0, 5818, 5830, 5, 882, 0, 0, 5819, 5820, 5, 1669, 0, 0, 5820, 5821, 5, 1732, 0, 0, 5821, 5822, 5, 1117, 0, 0, 5822, 5827, 5, 618, 0, 0, 5823, 5824, 5, 349, 0, 0, 5824, 5828, 5, 98, 0, 0, 5825, 5826, 5, 865, 0, 0, 5826, 5828, 5, 1383, 0, 0, 5827, 5823, 1, 0, 0, 0, 5827, 5825, 1, 0, 0, 0, 5828, 5830, 1, 0, 0, 0, 5829, 5805, 1, 0, 0, 0, 5829, 5807, 1, 0, 0, 0, 5829, 5809, 1, 0, 0, 0, 5829, 5811, 1, 0, 0, 0, 5829, 5813, 1, 0, 0, 0, 5829, 5815, 1, 0, 0, 0, 5829, 5816, 1, 0, 0, 0, 5829, 5817, 1, 0, 0, 0, 5829, 5819, 1, 0, 0, 0, 5830, 429, 1, 0, 0, 0, 5831, 5836, 5, 880, 0, 0, 5832, 5834, 5, 647, 0, 0, 5833, 5832, 1, 0, 0, 0, 5833, 5834, 1, 0, 0, 0, 5834, 5835, 1, 0, 0, 0, 5835, 5837, 3, 2384, 1192, 0, 5836, 5833, 1, 0, 0, 0, 5836, 5837, 1, 0, 0, 0, 5837, 5838, 1, 0, 0, 0, 5838, 5849, 3, 434, 217, 0, 5839, 5844, 5, 2451, 0, 0, 5840, 5842, 5, 647, 0, 0, 5841, 5840, 1, 0, 0, 0, 5841, 5842, 1, 0, 0, 0, 5842, 5843, 1, 0, 0, 0, 5843, 5845, 3, 2384, 1192, 0, 5844, 5841, 1, 0, 0, 0, 5844, 5845, 1, 0, 0, 0, 5845, 5846, 1, 0, 0, 0, 5846, 5848, 3, 434, 217, 0, 5847, 5839, 1, 0, 0, 0, 5848, 5851, 1, 0, 0, 0, 5849, 5847, 1, 0, 0, 0, 5849, 5850, 1, 0, 0, 0, 5850, 431, 1, 0, 0, 0, 5851, 5849, 1, 0, 0, 0, 5852, 5853, 5, 193, 0, 0, 5853, 5854, 5, 1669, 0, 0, 5854, 5855, 3, 2392, 1196, 0, 5855, 433, 1, 0, 0, 0, 5856, 5859, 3, 916, 458, 0, 5857, 5859, 3, 918, 459, 0, 5858, 5856, 1, 0, 0, 0, 5858, 5857, 1, 0, 0, 0, 5859, 435, 1, 0, 0, 0, 5860, 5861, 5, 319, 0, 0, 5861, 5862, 5, 439, 0, 0, 5862, 5875, 3, 2392, 1196, 0, 5863, 5873, 5, 673, 0, 0, 5864, 5873, 5, 1176, 0, 0, 5865, 5873, 5, 607, 0, 0, 5866, 5869, 5, 2374, 0, 0, 5867, 5868, 5, 1686, 0, 0, 5868, 5870, 3, 2392, 1196, 0, 5869, 5867, 1, 0, 0, 0, 5869, 5870, 1, 0, 0, 0, 5870, 5873, 1, 0, 0, 0, 5871, 5873, 5, 558, 0, 0, 5872, 5863, 1, 0, 0, 0, 5872, 5864, 1, 0, 0, 0, 5872, 5865, 1, 0, 0, 0, 5872, 5866, 1, 0, 0, 0, 5872, 5871, 1, 0, 0, 0, 5873, 5874, 1, 0, 0, 0, 5874, 5876, 5, 1522, 0, 0, 5875, 5872, 1, 0, 0, 0, 5875, 5876, 1, 0, 0, 0, 5876, 5893, 1, 0, 0, 0, 5877, 5879, 3, 84, 42, 0, 5878, 5877, 1, 0, 0, 0, 5878, 5879, 1, 0, 0, 0, 5879, 5882, 1, 0, 0, 0, 5880, 5881, 5, 570, 0, 0, 5881, 5883, 3, 2392, 1196, 0, 5882, 5880, 1, 0, 0, 0, 5882, 5883, 1, 0, 0, 0, 5883, 5884, 1, 0, 0, 0, 5884, 5885, 5, 438, 0, 0, 5885, 5890, 3, 438, 219, 0, 5886, 5887, 5, 2451, 0, 0, 5887, 5889, 3, 438, 219, 0, 5888, 5886, 1, 0, 0, 0, 5889, 5892, 1, 0, 0, 0, 5890, 5888, 1, 0, 0, 0, 5890, 5891, 1, 0, 0, 0, 5891, 5894, 1, 0, 0, 0, 5892, 5890, 1, 0, 0, 0, 5893, 5878, 1, 0, 0, 0, 5894, 5895, 1, 0, 0, 0, 5895, 5893, 1, 0, 0, 0, 5895, 5896, 1, 0, 0, 0, 5896, 5910, 1, 0, 0, 0, 5897, 5898, 5, 83, 0, 0, 5898, 5899, 5, 2441, 0, 0, 5899, 5900, 5, 2469, 0, 0, 5900, 5907, 5, 2441, 0, 0, 5901, 5902, 5, 2451, 0, 0, 5902, 5903, 5, 2441, 0, 0, 5903, 5904, 5, 2469, 0, 0, 5904, 5906, 5, 2441, 0, 0, 5905, 5901, 1, 0, 0, 0, 5906, 5909, 1, 0, 0, 0, 5907, 5905, 1, 0, 0, 0, 5907, 5908, 1, 0, 0, 0, 5908, 5911, 1, 0, 0, 0, 5909, 5907, 1, 0, 0, 0, 5910, 5897, 1, 0, 0, 0, 5910, 5911, 1, 0, 0, 0, 5911, 437, 1, 0, 0, 0, 5912, 5915, 5, 2441, 0, 0, 5913, 5914, 5, 995, 0, 0, 5914, 5916, 3, 2392, 1196, 0, 5915, 5913, 1, 0, 0, 0, 5915, 5916, 1, 0, 0, 0, 5916, 5919, 1, 0, 0, 0, 5917, 5918, 5, 1697, 0, 0, 5918, 5920, 3, 1170, 585, 0, 5919, 5917, 1, 0, 0, 0, 5919, 5920, 1, 0, 0, 0, 5920, 5922, 1, 0, 0, 0, 5921, 5923, 3, 38, 19, 0, 5922, 5921, 1, 0, 0, 0, 5922, 5923, 1, 0, 0, 0, 5923, 439, 1, 0, 0, 0, 5924, 5925, 5, 319, 0, 0, 5925, 5926, 5, 481, 0, 0, 5926, 5931, 3, 2392, 1196, 0, 5927, 5928, 5, 69, 0, 0, 5928, 5929, 5, 202, 0, 0, 5929, 5930, 5, 1244, 0, 0, 5930, 5932, 3, 2392, 1196, 0, 5931, 5927, 1, 0, 0, 0, 5931, 5932, 1, 0, 0, 0, 5932, 441, 1, 0, 0, 0, 5933, 5934, 5, 319, 0, 0, 5934, 5935, 5, 603, 0, 0, 5935, 5937, 5, 64, 0, 0, 5936, 5938, 5, 387, 0, 0, 5937, 5936, 1, 0, 0, 0, 5937, 5938, 1, 0, 0, 0, 5938, 5939, 1, 0, 0, 0, 5939, 5940, 3, 2392, 1196, 0, 5940, 5941, 5, 2078, 0, 0, 5941, 5943, 3, 2392, 1196, 0, 5942, 5944, 3, 444, 222, 0, 5943, 5942, 1, 0, 0, 0, 5943, 5944, 1, 0, 0, 0, 5944, 5950, 1, 0, 0, 0, 5945, 5947, 5, 1135, 0, 0, 5946, 5945, 1, 0, 0, 0, 5946, 5947, 1, 0, 0, 0, 5947, 5948, 1, 0, 0, 0, 5948, 5949, 5, 1267, 0, 0, 5949, 5951, 5, 349, 0, 0, 5950, 5946, 1, 0, 0, 0, 5950, 5951, 1, 0, 0, 0, 5951, 5952, 1, 0, 0, 0, 5952, 5953, 3, 446, 223, 0, 5953, 443, 1, 0, 0, 0, 5954, 5955, 5, 1488, 0, 0, 5955, 5956, 5, 2439, 0, 0, 5956, 5957, 7, 62, 0, 0, 5957, 445, 1, 0, 0, 0, 5958, 5959, 5, 1581, 0, 0, 5959, 5960, 5, 2439, 0, 0, 5960, 5961, 7, 63, 0, 0, 5961, 447, 1, 0, 0, 0, 5962, 5965, 5, 319, 0, 0, 5963, 5964, 5, 1305, 0, 0, 5964, 5966, 5, 1560, 0, 0, 5965, 5963, 1, 0, 0, 0, 5965, 5966, 1, 0, 0, 0, 5966, 5971, 1, 0, 0, 0, 5967, 5969, 5, 1135, 0, 0, 5968, 5967, 1, 0, 0, 0, 5968, 5969, 1, 0, 0, 0, 5969, 5970, 1, 0, 0, 0, 5970, 5972, 5, 614, 0, 0, 5971, 5968, 1, 0, 0, 0, 5971, 5972, 1, 0, 0, 0, 5972, 5973, 1, 0, 0, 0, 5973, 5977, 5, 672, 0, 0, 5974, 5975, 3, 2274, 1137, 0, 5975, 5976, 5, 2438, 0, 0, 5976, 5978, 1, 0, 0, 0, 5977, 5974, 1, 0, 0, 0, 5977, 5978, 1, 0, 0, 0, 5978, 5979, 1, 0, 0, 0, 5979, 5983, 3, 2392, 1196, 0, 5980, 5981, 5, 1679, 0, 0, 5981, 5982, 5, 2469, 0, 0, 5982, 5984, 7, 21, 0, 0, 5983, 5980, 1, 0, 0, 0, 5983, 5984, 1, 0, 0, 0, 5984, 5988, 1, 0, 0, 0, 5985, 5987, 3, 330, 165, 0, 5986, 5985, 1, 0, 0, 0, 5987, 5990, 1, 0, 0, 0, 5988, 5986, 1, 0, 0, 0, 5988, 5989, 1, 0, 0, 0, 5989, 5991, 1, 0, 0, 0, 5990, 5988, 1, 0, 0, 0, 5991, 5992, 3, 450, 225, 0, 5992, 5994, 3, 452, 226, 0, 5993, 5995, 3, 454, 227, 0, 5994, 5993, 1, 0, 0, 0, 5994, 5995, 1, 0, 0, 0, 5995, 449, 1, 0, 0, 0, 5996, 6000, 5, 2244, 0, 0, 5997, 5998, 3, 2274, 1137, 0, 5998, 5999, 5, 2438, 0, 0, 5999, 6001, 1, 0, 0, 0, 6000, 5997, 1, 0, 0, 0, 6000, 6001, 1, 0, 0, 0, 6001, 6002, 1, 0, 0, 0, 6002, 6003, 3, 2392, 1196, 0, 6003, 451, 1, 0, 0, 0, 6004, 6010, 5, 2445, 0, 0, 6005, 6008, 3, 2392, 1196, 0, 6006, 6007, 5, 202, 0, 0, 6007, 6009, 5, 1244, 0, 0, 6008, 6006, 1, 0, 0, 0, 6008, 6009, 1, 0, 0, 0, 6009, 6011, 1, 0, 0, 0, 6010, 6005, 1, 0, 0, 0, 6011, 6012, 1, 0, 0, 0, 6012, 6010, 1, 0, 0, 0, 6012, 6013, 1, 0, 0, 0, 6013, 6014, 1, 0, 0, 0, 6014, 6015, 5, 2446, 0, 0, 6015, 453, 1, 0, 0, 0, 6016, 6017, 5, 670, 0, 0, 6017, 6018, 5, 84, 0, 0, 6018, 6019, 5, 2445, 0, 0, 6019, 6020, 3, 456, 228, 0, 6020, 6021, 5, 2446, 0, 0, 6021, 455, 1, 0, 0, 0, 6022, 6026, 3, 458, 229, 0, 6023, 6025, 3, 330, 165, 0, 6024, 6023, 1, 0, 0, 0, 6025, 6028, 1, 0, 0, 0, 6026, 6024, 1, 0, 0, 0, 6026, 6027, 1, 0, 0, 0, 6027, 457, 1, 0, 0, 0, 6028, 6026, 1, 0, 0, 0, 6029, 6030, 7, 64, 0, 0, 6030, 459, 1, 0, 0, 0, 6031, 6033, 5, 319, 0, 0, 6032, 6034, 7, 65, 0, 0, 6033, 6032, 1, 0, 0, 0, 6033, 6034, 1, 0, 0, 0, 6034, 6035, 1, 0, 0, 0, 6035, 6036, 5, 715, 0, 0, 6036, 6040, 3, 2316, 1158, 0, 6037, 6038, 5, 689, 0, 0, 6038, 6039, 5, 1202, 0, 0, 6039, 6041, 5, 543, 0, 0, 6040, 6037, 1, 0, 0, 0, 6040, 6041, 1, 0, 0, 0, 6041, 6042, 1, 0, 0, 0, 6042, 6046, 5, 1257, 0, 0, 6043, 6047, 3, 462, 231, 0, 6044, 6047, 3, 466, 233, 0, 6045, 6047, 3, 468, 234, 0, 6046, 6043, 1, 0, 0, 0, 6046, 6044, 1, 0, 0, 0, 6046, 6045, 1, 0, 0, 0, 6047, 6049, 1, 0, 0, 0, 6048, 6050, 7, 66, 0, 0, 6049, 6048, 1, 0, 0, 0, 6049, 6050, 1, 0, 0, 0, 6050, 6053, 1, 0, 0, 0, 6051, 6052, 7, 67, 0, 0, 6052, 6054, 5, 779, 0, 0, 6053, 6051, 1, 0, 0, 0, 6053, 6054, 1, 0, 0, 0, 6054, 461, 1, 0, 0, 0, 6055, 6056, 5, 220, 0, 0, 6056, 6058, 3, 464, 232, 0, 6057, 6059, 3, 1580, 790, 0, 6058, 6057, 1, 0, 0, 0, 6058, 6059, 1, 0, 0, 0, 6059, 463, 1, 0, 0, 0, 6060, 6061, 3, 2392, 1196, 0, 6061, 6062, 5, 2438, 0, 0, 6062, 6064, 1, 0, 0, 0, 6063, 6060, 1, 0, 0, 0, 6063, 6064, 1, 0, 0, 0, 6064, 6065, 1, 0, 0, 0, 6065, 6066, 3, 2392, 1196, 0, 6066, 465, 1, 0, 0, 0, 6067, 6069, 3, 2330, 1165, 0, 6068, 6070, 3, 2258, 1129, 0, 6069, 6068, 1, 0, 0, 0, 6069, 6070, 1, 0, 0, 0, 6070, 6071, 1, 0, 0, 0, 6071, 6072, 5, 2445, 0, 0, 6072, 6074, 3, 470, 235, 0, 6073, 6075, 7, 53, 0, 0, 6074, 6073, 1, 0, 0, 0, 6074, 6075, 1, 0, 0, 0, 6075, 6083, 1, 0, 0, 0, 6076, 6077, 5, 2451, 0, 0, 6077, 6079, 3, 470, 235, 0, 6078, 6080, 7, 53, 0, 0, 6079, 6078, 1, 0, 0, 0, 6079, 6080, 1, 0, 0, 0, 6080, 6082, 1, 0, 0, 0, 6081, 6076, 1, 0, 0, 0, 6082, 6085, 1, 0, 0, 0, 6083, 6081, 1, 0, 0, 0, 6083, 6084, 1, 0, 0, 0, 6084, 6086, 1, 0, 0, 0, 6085, 6083, 1, 0, 0, 0, 6086, 6088, 5, 2446, 0, 0, 6087, 6089, 3, 472, 236, 0, 6088, 6087, 1, 0, 0, 0, 6088, 6089, 1, 0, 0, 0, 6089, 467, 1, 0, 0, 0, 6090, 6091, 3, 2330, 1165, 0, 6091, 6094, 5, 2445, 0, 0, 6092, 6095, 3, 2330, 1165, 0, 6093, 6095, 3, 2258, 1129, 0, 6094, 6092, 1, 0, 0, 0, 6094, 6093, 1, 0, 0, 0, 6094, 6095, 1, 0, 0, 0, 6095, 6096, 1, 0, 0, 0, 6096, 6098, 3, 2328, 1164, 0, 6097, 6099, 7, 53, 0, 0, 6098, 6097, 1, 0, 0, 0, 6098, 6099, 1, 0, 0, 0, 6099, 6111, 1, 0, 0, 0, 6100, 6103, 5, 2451, 0, 0, 6101, 6104, 3, 2330, 1165, 0, 6102, 6104, 3, 2258, 1129, 0, 6103, 6101, 1, 0, 0, 0, 6103, 6102, 1, 0, 0, 0, 6103, 6104, 1, 0, 0, 0, 6104, 6105, 1, 0, 0, 0, 6105, 6107, 3, 2328, 1164, 0, 6106, 6108, 7, 53, 0, 0, 6107, 6106, 1, 0, 0, 0, 6107, 6108, 1, 0, 0, 0, 6108, 6110, 1, 0, 0, 0, 6109, 6100, 1, 0, 0, 0, 6110, 6113, 1, 0, 0, 0, 6111, 6109, 1, 0, 0, 0, 6111, 6112, 1, 0, 0, 0, 6112, 6114, 1, 0, 0, 0, 6113, 6111, 1, 0, 0, 0, 6114, 6115, 5, 2446, 0, 0, 6115, 6116, 5, 626, 0, 0, 6116, 6117, 3, 2330, 1165, 0, 6117, 6124, 3, 2258, 1129, 0, 6118, 6119, 5, 2451, 0, 0, 6119, 6120, 3, 2330, 1165, 0, 6120, 6121, 3, 2258, 1129, 0, 6121, 6123, 1, 0, 0, 0, 6122, 6118, 1, 0, 0, 0, 6123, 6126, 1, 0, 0, 0, 6124, 6122, 1, 0, 0, 0, 6124, 6125, 1, 0, 0, 0, 6125, 6127, 1, 0, 0, 0, 6126, 6124, 1, 0, 0, 0, 6127, 6129, 3, 2260, 1130, 0, 6128, 6130, 3, 488, 244, 0, 6129, 6128, 1, 0, 0, 0, 6129, 6130, 1, 0, 0, 0, 6130, 6132, 1, 0, 0, 0, 6131, 6133, 3, 1580, 790, 0, 6132, 6131, 1, 0, 0, 0, 6132, 6133, 1, 0, 0, 0, 6133, 469, 1, 0, 0, 0, 6134, 6137, 3, 2328, 1164, 0, 6135, 6137, 3, 2070, 1035, 0, 6136, 6134, 1, 0, 0, 0, 6136, 6135, 1, 0, 0, 0, 6137, 471, 1, 0, 0, 0, 6138, 6142, 3, 482, 241, 0, 6139, 6142, 3, 488, 244, 0, 6140, 6142, 3, 1580, 790, 0, 6141, 6138, 1, 0, 0, 0, 6141, 6139, 1, 0, 0, 0, 6141, 6140, 1, 0, 0, 0, 6142, 6143, 1, 0, 0, 0, 6143, 6141, 1, 0, 0, 0, 6143, 6144, 1, 0, 0, 0, 6144, 6152, 1, 0, 0, 0, 6145, 6146, 5, 729, 0, 0, 6146, 6149, 5, 783, 0, 0, 6147, 6150, 3, 474, 237, 0, 6148, 6150, 3, 478, 239, 0, 6149, 6147, 1, 0, 0, 0, 6149, 6148, 1, 0, 0, 0, 6150, 6152, 1, 0, 0, 0, 6151, 6141, 1, 0, 0, 0, 6151, 6145, 1, 0, 0, 0, 6152, 473, 1, 0, 0, 0, 6153, 6155, 3, 510, 255, 0, 6154, 6156, 3, 476, 238, 0, 6155, 6154, 1, 0, 0, 0, 6155, 6156, 1, 0, 0, 0, 6156, 6158, 1, 0, 0, 0, 6157, 6159, 3, 926, 463, 0, 6158, 6157, 1, 0, 0, 0, 6158, 6159, 1, 0, 0, 0, 6159, 6165, 1, 0, 0, 0, 6160, 6161, 5, 1333, 0, 0, 6161, 6162, 5, 2445, 0, 0, 6162, 6163, 3, 508, 254, 0, 6163, 6164, 5, 2446, 0, 0, 6164, 6166, 1, 0, 0, 0, 6165, 6160, 1, 0, 0, 0, 6165, 6166, 1, 0, 0, 0, 6166, 475, 1, 0, 0, 0, 6167, 6195, 5, 871, 0, 0, 6168, 6169, 5, 2445, 0, 0, 6169, 6170, 5, 1346, 0, 0, 6170, 6176, 3, 1688, 844, 0, 6171, 6172, 5, 1333, 0, 0, 6172, 6173, 5, 2445, 0, 0, 6173, 6174, 3, 508, 254, 0, 6174, 6175, 5, 2446, 0, 0, 6175, 6177, 1, 0, 0, 0, 6176, 6171, 1, 0, 0, 0, 6176, 6177, 1, 0, 0, 0, 6177, 6190, 1, 0, 0, 0, 6178, 6179, 5, 2451, 0, 0, 6179, 6180, 5, 1346, 0, 0, 6180, 6186, 3, 1688, 844, 0, 6181, 6182, 5, 1333, 0, 0, 6182, 6183, 5, 2445, 0, 0, 6183, 6184, 3, 508, 254, 0, 6184, 6185, 5, 2446, 0, 0, 6185, 6187, 1, 0, 0, 0, 6186, 6181, 1, 0, 0, 0, 6186, 6187, 1, 0, 0, 0, 6187, 6189, 1, 0, 0, 0, 6188, 6178, 1, 0, 0, 0, 6189, 6192, 1, 0, 0, 0, 6190, 6188, 1, 0, 0, 0, 6190, 6191, 1, 0, 0, 0, 6191, 6193, 1, 0, 0, 0, 6192, 6190, 1, 0, 0, 0, 6193, 6194, 5, 2446, 0, 0, 6194, 6196, 1, 0, 0, 0, 6195, 6168, 1, 0, 0, 0, 6195, 6196, 1, 0, 0, 0, 6196, 477, 1, 0, 0, 0, 6197, 6198, 5, 2313, 0, 0, 6198, 6200, 5, 2438, 0, 0, 6199, 6197, 1, 0, 0, 0, 6199, 6200, 1, 0, 0, 0, 6200, 6201, 1, 0, 0, 0, 6201, 6203, 5, 2330, 0, 0, 6202, 6204, 3, 480, 240, 0, 6203, 6202, 1, 0, 0, 0, 6203, 6204, 1, 0, 0, 0, 6204, 6206, 1, 0, 0, 0, 6205, 6207, 3, 926, 463, 0, 6206, 6205, 1, 0, 0, 0, 6206, 6207, 1, 0, 0, 0, 6207, 479, 1, 0, 0, 0, 6208, 6222, 5, 871, 0, 0, 6209, 6210, 5, 2445, 0, 0, 6210, 6211, 5, 1346, 0, 0, 6211, 6217, 3, 1688, 844, 0, 6212, 6213, 5, 2451, 0, 0, 6213, 6214, 5, 1346, 0, 0, 6214, 6216, 3, 1688, 844, 0, 6215, 6212, 1, 0, 0, 0, 6216, 6219, 1, 0, 0, 0, 6217, 6215, 1, 0, 0, 0, 6217, 6218, 1, 0, 0, 0, 6218, 6220, 1, 0, 0, 0, 6219, 6217, 1, 0, 0, 0, 6220, 6221, 5, 2446, 0, 0, 6221, 6223, 1, 0, 0, 0, 6222, 6209, 1, 0, 0, 0, 6222, 6223, 1, 0, 0, 0, 6223, 481, 1, 0, 0, 0, 6224, 6225, 5, 640, 0, 0, 6225, 6226, 5, 1346, 0, 0, 6226, 6264, 5, 160, 0, 0, 6227, 6228, 5, 1493, 0, 0, 6228, 6229, 5, 2445, 0, 0, 6229, 6234, 3, 2328, 1164, 0, 6230, 6231, 5, 2451, 0, 0, 6231, 6233, 3, 2328, 1164, 0, 6232, 6230, 1, 0, 0, 0, 6233, 6236, 1, 0, 0, 0, 6234, 6232, 1, 0, 0, 0, 6234, 6235, 1, 0, 0, 0, 6235, 6237, 1, 0, 0, 0, 6236, 6234, 1, 0, 0, 0, 6237, 6238, 5, 2446, 0, 0, 6238, 6239, 5, 2445, 0, 0, 6239, 6244, 3, 484, 242, 0, 6240, 6241, 5, 2451, 0, 0, 6241, 6243, 3, 484, 242, 0, 6242, 6240, 1, 0, 0, 0, 6243, 6246, 1, 0, 0, 0, 6244, 6242, 1, 0, 0, 0, 6244, 6245, 1, 0, 0, 0, 6245, 6247, 1, 0, 0, 0, 6246, 6244, 1, 0, 0, 0, 6247, 6248, 5, 2446, 0, 0, 6248, 6265, 1, 0, 0, 0, 6249, 6250, 5, 658, 0, 0, 6250, 6251, 5, 2445, 0, 0, 6251, 6256, 3, 2328, 1164, 0, 6252, 6253, 5, 2451, 0, 0, 6253, 6255, 3, 2328, 1164, 0, 6254, 6252, 1, 0, 0, 0, 6255, 6258, 1, 0, 0, 0, 6256, 6254, 1, 0, 0, 0, 6256, 6257, 1, 0, 0, 0, 6257, 6259, 1, 0, 0, 0, 6258, 6256, 1, 0, 0, 0, 6259, 6262, 5, 2446, 0, 0, 6260, 6263, 3, 1116, 558, 0, 6261, 6263, 3, 1118, 559, 0, 6262, 6260, 1, 0, 0, 0, 6262, 6261, 1, 0, 0, 0, 6263, 6265, 1, 0, 0, 0, 6264, 6227, 1, 0, 0, 0, 6264, 6249, 1, 0, 0, 0, 6265, 483, 1, 0, 0, 0, 6266, 6268, 5, 1346, 0, 0, 6267, 6269, 3, 1688, 844, 0, 6268, 6267, 1, 0, 0, 0, 6268, 6269, 1, 0, 0, 0, 6269, 6270, 1, 0, 0, 0, 6270, 6271, 5, 2255, 0, 0, 6271, 6272, 5, 843, 0, 0, 6272, 6273, 5, 2096, 0, 0, 6273, 6274, 5, 2445, 0, 0, 6274, 6275, 3, 486, 243, 0, 6275, 6277, 5, 2446, 0, 0, 6276, 6278, 3, 1194, 597, 0, 6277, 6276, 1, 0, 0, 0, 6277, 6278, 1, 0, 0, 0, 6278, 485, 1, 0, 0, 0, 6279, 6284, 3, 2176, 1088, 0, 6280, 6281, 5, 2451, 0, 0, 6281, 6283, 3, 2176, 1088, 0, 6282, 6280, 1, 0, 0, 0, 6283, 6286, 1, 0, 0, 0, 6284, 6282, 1, 0, 0, 0, 6284, 6285, 1, 0, 0, 0, 6285, 6298, 1, 0, 0, 0, 6286, 6284, 1, 0, 0, 0, 6287, 6288, 5, 2106, 0, 0, 6288, 6294, 3, 2176, 1088, 0, 6289, 6290, 5, 2451, 0, 0, 6290, 6291, 5, 2106, 0, 0, 6291, 6293, 3, 2176, 1088, 0, 6292, 6289, 1, 0, 0, 0, 6293, 6296, 1, 0, 0, 0, 6294, 6292, 1, 0, 0, 0, 6294, 6295, 1, 0, 0, 0, 6295, 6298, 1, 0, 0, 0, 6296, 6294, 1, 0, 0, 0, 6297, 6279, 1, 0, 0, 0, 6297, 6287, 1, 0, 0, 0, 6298, 487, 1, 0, 0, 0, 6299, 6304, 5, 871, 0, 0, 6300, 6305, 3, 490, 245, 0, 6301, 6305, 3, 492, 246, 0, 6302, 6305, 3, 496, 248, 0, 6303, 6305, 3, 500, 250, 0, 6304, 6300, 1, 0, 0, 0, 6304, 6301, 1, 0, 0, 0, 6304, 6302, 1, 0, 0, 0, 6304, 6303, 1, 0, 0, 0, 6304, 6305, 1, 0, 0, 0, 6305, 489, 1, 0, 0, 0, 6306, 6307, 5, 2445, 0, 0, 6307, 6312, 3, 494, 247, 0, 6308, 6309, 5, 2451, 0, 0, 6309, 6311, 3, 494, 247, 0, 6310, 6308, 1, 0, 0, 0, 6311, 6314, 1, 0, 0, 0, 6312, 6310, 1, 0, 0, 0, 6312, 6313, 1, 0, 0, 0, 6313, 6315, 1, 0, 0, 0, 6314, 6312, 1, 0, 0, 0, 6315, 6316, 5, 2446, 0, 0, 6316, 491, 1, 0, 0, 0, 6317, 6318, 5, 2445, 0, 0, 6318, 6323, 3, 494, 247, 0, 6319, 6320, 5, 2451, 0, 0, 6320, 6322, 3, 494, 247, 0, 6321, 6319, 1, 0, 0, 0, 6322, 6325, 1, 0, 0, 0, 6323, 6321, 1, 0, 0, 0, 6323, 6324, 1, 0, 0, 0, 6324, 6326, 1, 0, 0, 0, 6325, 6323, 1, 0, 0, 0, 6326, 6327, 5, 2446, 0, 0, 6327, 493, 1, 0, 0, 0, 6328, 6330, 5, 1346, 0, 0, 6329, 6331, 3, 1688, 844, 0, 6330, 6329, 1, 0, 0, 0, 6330, 6331, 1, 0, 0, 0, 6331, 6336, 1, 0, 0, 0, 6332, 6335, 3, 1194, 597, 0, 6333, 6335, 3, 1592, 796, 0, 6334, 6332, 1, 0, 0, 0, 6334, 6333, 1, 0, 0, 0, 6335, 6338, 1, 0, 0, 0, 6336, 6334, 1, 0, 0, 0, 6336, 6337, 1, 0, 0, 0, 6337, 6340, 1, 0, 0, 0, 6338, 6336, 1, 0, 0, 0, 6339, 6341, 5, 2201, 0, 0, 6340, 6339, 1, 0, 0, 0, 6340, 6341, 1, 0, 0, 0, 6341, 495, 1, 0, 0, 0, 6342, 6343, 5, 1761, 0, 0, 6343, 6344, 5, 736, 0, 0, 6344, 6345, 5, 2445, 0, 0, 6345, 6350, 3, 1648, 824, 0, 6346, 6347, 5, 2451, 0, 0, 6347, 6349, 3, 1648, 824, 0, 6348, 6346, 1, 0, 0, 0, 6349, 6352, 1, 0, 0, 0, 6350, 6348, 1, 0, 0, 0, 6350, 6351, 1, 0, 0, 0, 6351, 6353, 1, 0, 0, 0, 6352, 6350, 1, 0, 0, 0, 6353, 6354, 5, 2446, 0, 0, 6354, 6367, 1, 0, 0, 0, 6355, 6356, 5, 2445, 0, 0, 6356, 6361, 3, 498, 249, 0, 6357, 6358, 5, 2451, 0, 0, 6358, 6360, 3, 498, 249, 0, 6359, 6357, 1, 0, 0, 0, 6360, 6363, 1, 0, 0, 0, 6361, 6359, 1, 0, 0, 0, 6361, 6362, 1, 0, 0, 0, 6362, 6364, 1, 0, 0, 0, 6363, 6361, 1, 0, 0, 0, 6364, 6365, 5, 2446, 0, 0, 6365, 6367, 1, 0, 0, 0, 6366, 6342, 1, 0, 0, 0, 6366, 6355, 1, 0, 0, 0, 6367, 497, 1, 0, 0, 0, 6368, 6370, 5, 1346, 0, 0, 6369, 6371, 3, 1688, 844, 0, 6370, 6369, 1, 0, 0, 0, 6370, 6371, 1, 0, 0, 0, 6371, 6374, 1, 0, 0, 0, 6372, 6373, 5, 2078, 0, 0, 6373, 6375, 3, 1648, 824, 0, 6374, 6372, 1, 0, 0, 0, 6374, 6375, 1, 0, 0, 0, 6375, 6377, 1, 0, 0, 0, 6376, 6378, 3, 1592, 796, 0, 6377, 6376, 1, 0, 0, 0, 6377, 6378, 1, 0, 0, 0, 6378, 6380, 1, 0, 0, 0, 6379, 6381, 5, 2201, 0, 0, 6380, 6379, 1, 0, 0, 0, 6380, 6381, 1, 0, 0, 0, 6381, 499, 1, 0, 0, 0, 6382, 6383, 5, 1761, 0, 0, 6383, 6384, 5, 736, 0, 0, 6384, 6385, 5, 2445, 0, 0, 6385, 6390, 3, 1648, 824, 0, 6386, 6387, 5, 2451, 0, 0, 6387, 6389, 3, 1648, 824, 0, 6388, 6386, 1, 0, 0, 0, 6389, 6392, 1, 0, 0, 0, 6390, 6388, 1, 0, 0, 0, 6390, 6391, 1, 0, 0, 0, 6391, 6393, 1, 0, 0, 0, 6392, 6390, 1, 0, 0, 0, 6393, 6394, 5, 2446, 0, 0, 6394, 6396, 1, 0, 0, 0, 6395, 6382, 1, 0, 0, 0, 6395, 6396, 1, 0, 0, 0, 6396, 6397, 1, 0, 0, 0, 6397, 6398, 5, 2445, 0, 0, 6398, 6403, 3, 502, 251, 0, 6399, 6400, 5, 2451, 0, 0, 6400, 6402, 3, 502, 251, 0, 6401, 6399, 1, 0, 0, 0, 6402, 6405, 1, 0, 0, 0, 6403, 6401, 1, 0, 0, 0, 6403, 6404, 1, 0, 0, 0, 6404, 6406, 1, 0, 0, 0, 6405, 6403, 1, 0, 0, 0, 6406, 6407, 5, 2446, 0, 0, 6407, 501, 1, 0, 0, 0, 6408, 6410, 5, 1346, 0, 0, 6409, 6411, 3, 1688, 844, 0, 6410, 6409, 1, 0, 0, 0, 6410, 6411, 1, 0, 0, 0, 6411, 6416, 1, 0, 0, 0, 6412, 6415, 3, 1194, 597, 0, 6413, 6415, 3, 1592, 796, 0, 6414, 6412, 1, 0, 0, 0, 6414, 6413, 1, 0, 0, 0, 6415, 6418, 1, 0, 0, 0, 6416, 6414, 1, 0, 0, 0, 6416, 6417, 1, 0, 0, 0, 6417, 6420, 1, 0, 0, 0, 6418, 6416, 1, 0, 0, 0, 6419, 6421, 5, 2201, 0, 0, 6420, 6419, 1, 0, 0, 0, 6420, 6421, 1, 0, 0, 0, 6421, 6423, 1, 0, 0, 0, 6422, 6424, 3, 504, 252, 0, 6423, 6422, 1, 0, 0, 0, 6423, 6424, 1, 0, 0, 0, 6424, 503, 1, 0, 0, 0, 6425, 6426, 5, 1761, 0, 0, 6426, 6427, 5, 736, 0, 0, 6427, 6428, 5, 2445, 0, 0, 6428, 6433, 3, 1648, 824, 0, 6429, 6430, 5, 2451, 0, 0, 6430, 6432, 3, 1648, 824, 0, 6431, 6429, 1, 0, 0, 0, 6432, 6435, 1, 0, 0, 0, 6433, 6431, 1, 0, 0, 0, 6433, 6434, 1, 0, 0, 0, 6434, 6436, 1, 0, 0, 0, 6435, 6433, 1, 0, 0, 0, 6436, 6437, 5, 2446, 0, 0, 6437, 6450, 1, 0, 0, 0, 6438, 6439, 5, 2445, 0, 0, 6439, 6444, 3, 506, 253, 0, 6440, 6441, 5, 2451, 0, 0, 6441, 6443, 3, 506, 253, 0, 6442, 6440, 1, 0, 0, 0, 6443, 6446, 1, 0, 0, 0, 6444, 6442, 1, 0, 0, 0, 6444, 6445, 1, 0, 0, 0, 6445, 6447, 1, 0, 0, 0, 6446, 6444, 1, 0, 0, 0, 6447, 6448, 5, 2446, 0, 0, 6448, 6450, 1, 0, 0, 0, 6449, 6425, 1, 0, 0, 0, 6449, 6438, 1, 0, 0, 0, 6450, 505, 1, 0, 0, 0, 6451, 6453, 5, 1773, 0, 0, 6452, 6454, 3, 1148, 574, 0, 6453, 6452, 1, 0, 0, 0, 6453, 6454, 1, 0, 0, 0, 6454, 6457, 1, 0, 0, 0, 6455, 6456, 5, 2078, 0, 0, 6456, 6458, 3, 1648, 824, 0, 6457, 6455, 1, 0, 0, 0, 6457, 6458, 1, 0, 0, 0, 6458, 6460, 1, 0, 0, 0, 6459, 6461, 3, 1592, 796, 0, 6460, 6459, 1, 0, 0, 0, 6460, 6461, 1, 0, 0, 0, 6461, 6463, 1, 0, 0, 0, 6462, 6464, 5, 2201, 0, 0, 6463, 6462, 1, 0, 0, 0, 6463, 6464, 1, 0, 0, 0, 6464, 507, 1, 0, 0, 0, 6465, 6466, 5, 2441, 0, 0, 6466, 509, 1, 0, 0, 0, 6467, 6468, 3, 2392, 1196, 0, 6468, 6469, 5, 2438, 0, 0, 6469, 6471, 1, 0, 0, 0, 6470, 6467, 1, 0, 0, 0, 6470, 6471, 1, 0, 0, 0, 6471, 6472, 1, 0, 0, 0, 6472, 6473, 3, 2392, 1196, 0, 6473, 511, 1, 0, 0, 0, 6474, 6475, 5, 42, 0, 0, 6475, 6476, 5, 715, 0, 0, 6476, 6479, 3, 2316, 1158, 0, 6477, 6480, 3, 514, 257, 0, 6478, 6480, 3, 516, 258, 0, 6479, 6477, 1, 0, 0, 0, 6479, 6478, 1, 0, 0, 0, 6480, 513, 1, 0, 0, 0, 6481, 6488, 3, 1280, 640, 0, 6482, 6488, 3, 1278, 639, 0, 6483, 6488, 3, 1282, 641, 0, 6484, 6488, 3, 926, 463, 0, 6485, 6488, 3, 1188, 594, 0, 6486, 6488, 3, 884, 442, 0, 6487, 6481, 1, 0, 0, 0, 6487, 6482, 1, 0, 0, 0, 6487, 6483, 1, 0, 0, 0, 6487, 6484, 1, 0, 0, 0, 6487, 6485, 1, 0, 0, 0, 6487, 6486, 1, 0, 0, 0, 6488, 6489, 1, 0, 0, 0, 6489, 6487, 1, 0, 0, 0, 6489, 6490, 1, 0, 0, 0, 6490, 515, 1, 0, 0, 0, 6491, 6513, 3, 522, 261, 0, 6492, 6493, 5, 1333, 0, 0, 6493, 6494, 5, 2445, 0, 0, 6494, 6495, 3, 508, 254, 0, 6495, 6496, 5, 2446, 0, 0, 6496, 6513, 1, 0, 0, 0, 6497, 6513, 5, 249, 0, 0, 6498, 6513, 3, 1302, 651, 0, 6499, 6513, 5, 2201, 0, 0, 6500, 6513, 3, 518, 259, 0, 6501, 6502, 5, 1557, 0, 0, 6502, 6503, 5, 2139, 0, 0, 6503, 6513, 3, 550, 275, 0, 6504, 6513, 5, 228, 0, 0, 6505, 6506, 3, 520, 260, 0, 6506, 6507, 5, 2214, 0, 0, 6507, 6513, 1, 0, 0, 0, 6508, 6509, 5, 2205, 0, 0, 6509, 6510, 5, 143, 0, 0, 6510, 6513, 5, 1526, 0, 0, 6511, 6513, 3, 524, 262, 0, 6512, 6491, 1, 0, 0, 0, 6512, 6492, 1, 0, 0, 0, 6512, 6497, 1, 0, 0, 0, 6512, 6498, 1, 0, 0, 0, 6512, 6499, 1, 0, 0, 0, 6512, 6500, 1, 0, 0, 0, 6512, 6501, 1, 0, 0, 0, 6512, 6504, 1, 0, 0, 0, 6512, 6505, 1, 0, 0, 0, 6512, 6508, 1, 0, 0, 0, 6512, 6511, 1, 0, 0, 0, 6513, 517, 1, 0, 0, 0, 6514, 6515, 7, 68, 0, 0, 6515, 519, 1, 0, 0, 0, 6516, 6517, 7, 69, 0, 0, 6517, 521, 1, 0, 0, 0, 6518, 6525, 5, 1509, 0, 0, 6519, 6520, 5, 1346, 0, 0, 6520, 6526, 3, 1688, 844, 0, 6521, 6522, 5, 1773, 0, 0, 6522, 6526, 3, 1148, 574, 0, 6523, 6526, 5, 1586, 0, 0, 6524, 6526, 5, 1173, 0, 0, 6525, 6519, 1, 0, 0, 0, 6525, 6521, 1, 0, 0, 0, 6525, 6523, 1, 0, 0, 0, 6525, 6524, 1, 0, 0, 0, 6525, 6526, 1, 0, 0, 0, 6526, 6541, 1, 0, 0, 0, 6527, 6540, 3, 926, 463, 0, 6528, 6529, 5, 2078, 0, 0, 6529, 6540, 3, 1648, 824, 0, 6530, 6531, 5, 1333, 0, 0, 6531, 6532, 5, 2445, 0, 0, 6532, 6533, 3, 508, 254, 0, 6533, 6534, 5, 2446, 0, 0, 6534, 6540, 1, 0, 0, 0, 6535, 6540, 5, 1254, 0, 0, 6536, 6540, 3, 1188, 594, 0, 6537, 6540, 3, 1592, 796, 0, 6538, 6540, 3, 884, 442, 0, 6539, 6527, 1, 0, 0, 0, 6539, 6528, 1, 0, 0, 0, 6539, 6530, 1, 0, 0, 0, 6539, 6535, 1, 0, 0, 0, 6539, 6536, 1, 0, 0, 0, 6539, 6537, 1, 0, 0, 0, 6539, 6538, 1, 0, 0, 0, 6540, 6543, 1, 0, 0, 0, 6541, 6539, 1, 0, 0, 0, 6541, 6542, 1, 0, 0, 0, 6542, 523, 1, 0, 0, 0, 6543, 6541, 1, 0, 0, 0, 6544, 6553, 3, 526, 263, 0, 6545, 6553, 3, 528, 264, 0, 6546, 6553, 3, 532, 266, 0, 6547, 6553, 3, 536, 268, 0, 6548, 6553, 3, 538, 269, 0, 6549, 6553, 3, 540, 270, 0, 6550, 6553, 3, 530, 265, 0, 6551, 6553, 3, 544, 272, 0, 6552, 6544, 1, 0, 0, 0, 6552, 6545, 1, 0, 0, 0, 6552, 6546, 1, 0, 0, 0, 6552, 6547, 1, 0, 0, 0, 6552, 6548, 1, 0, 0, 0, 6552, 6549, 1, 0, 0, 0, 6552, 6550, 1, 0, 0, 0, 6552, 6551, 1, 0, 0, 0, 6553, 525, 1, 0, 0, 0, 6554, 6555, 5, 978, 0, 0, 6555, 6556, 5, 387, 0, 0, 6556, 6560, 5, 84, 0, 0, 6557, 6558, 5, 618, 0, 0, 6558, 6559, 5, 1346, 0, 0, 6559, 6561, 3, 1688, 844, 0, 6560, 6557, 1, 0, 0, 0, 6560, 6561, 1, 0, 0, 0, 6561, 6569, 1, 0, 0, 0, 6562, 6570, 3, 1188, 594, 0, 6563, 6566, 5, 2078, 0, 0, 6564, 6567, 3, 1648, 824, 0, 6565, 6567, 5, 387, 0, 0, 6566, 6564, 1, 0, 0, 0, 6566, 6565, 1, 0, 0, 0, 6567, 6570, 1, 0, 0, 0, 6568, 6570, 3, 884, 442, 0, 6569, 6562, 1, 0, 0, 0, 6569, 6563, 1, 0, 0, 0, 6569, 6568, 1, 0, 0, 0, 6570, 527, 1, 0, 0, 0, 6571, 6572, 5, 21, 0, 0, 6572, 6574, 5, 1346, 0, 0, 6573, 6575, 3, 1688, 844, 0, 6574, 6573, 1, 0, 0, 0, 6574, 6575, 1, 0, 0, 0, 6575, 6578, 1, 0, 0, 0, 6576, 6577, 5, 2078, 0, 0, 6577, 6579, 3, 1648, 824, 0, 6578, 6576, 1, 0, 0, 0, 6578, 6579, 1, 0, 0, 0, 6579, 6581, 1, 0, 0, 0, 6580, 6582, 3, 1592, 796, 0, 6581, 6580, 1, 0, 0, 0, 6581, 6582, 1, 0, 0, 0, 6582, 6584, 1, 0, 0, 0, 6583, 6585, 3, 926, 463, 0, 6584, 6583, 1, 0, 0, 0, 6584, 6585, 1, 0, 0, 0, 6585, 529, 1, 0, 0, 0, 6586, 6587, 5, 228, 0, 0, 6587, 6589, 5, 1346, 0, 0, 6588, 6590, 3, 926, 463, 0, 6589, 6588, 1, 0, 0, 0, 6589, 6590, 1, 0, 0, 0, 6590, 531, 1, 0, 0, 0, 6591, 6592, 5, 978, 0, 0, 6592, 6593, 5, 1346, 0, 0, 6593, 6609, 3, 1688, 844, 0, 6594, 6596, 3, 534, 267, 0, 6595, 6594, 1, 0, 0, 0, 6596, 6597, 1, 0, 0, 0, 6597, 6595, 1, 0, 0, 0, 6597, 6598, 1, 0, 0, 0, 6598, 6610, 1, 0, 0, 0, 6599, 6600, 5, 1333, 0, 0, 6600, 6601, 5, 2445, 0, 0, 6601, 6602, 3, 508, 254, 0, 6602, 6603, 5, 2446, 0, 0, 6603, 6610, 1, 0, 0, 0, 6604, 6610, 5, 228, 0, 0, 6605, 6606, 5, 2205, 0, 0, 6606, 6607, 5, 143, 0, 0, 6607, 6610, 5, 1526, 0, 0, 6608, 6610, 5, 2201, 0, 0, 6609, 6595, 1, 0, 0, 0, 6609, 6599, 1, 0, 0, 0, 6609, 6604, 1, 0, 0, 0, 6609, 6605, 1, 0, 0, 0, 6609, 6608, 1, 0, 0, 0, 6610, 533, 1, 0, 0, 0, 6611, 6618, 3, 1280, 640, 0, 6612, 6618, 3, 1278, 639, 0, 6613, 6618, 3, 1188, 594, 0, 6614, 6618, 3, 884, 442, 0, 6615, 6618, 3, 1592, 796, 0, 6616, 6618, 3, 1282, 641, 0, 6617, 6611, 1, 0, 0, 0, 6617, 6612, 1, 0, 0, 0, 6617, 6613, 1, 0, 0, 0, 6617, 6614, 1, 0, 0, 0, 6617, 6615, 1, 0, 0, 0, 6617, 6616, 1, 0, 0, 0, 6618, 535, 1, 0, 0, 0, 6619, 6624, 5, 1557, 0, 0, 6620, 6621, 5, 1346, 0, 0, 6621, 6625, 3, 1688, 844, 0, 6622, 6623, 5, 1773, 0, 0, 6623, 6625, 3, 1148, 574, 0, 6624, 6620, 1, 0, 0, 0, 6624, 6622, 1, 0, 0, 0, 6625, 6626, 1, 0, 0, 0, 6626, 6627, 5, 2139, 0, 0, 6627, 6628, 3, 548, 274, 0, 6628, 537, 1, 0, 0, 0, 6629, 6630, 5, 467, 0, 0, 6630, 6631, 5, 1346, 0, 0, 6631, 6632, 3, 1688, 844, 0, 6632, 539, 1, 0, 0, 0, 6633, 6634, 5, 1715, 0, 0, 6634, 6635, 5, 1346, 0, 0, 6635, 6636, 3, 546, 273, 0, 6636, 6637, 5, 82, 0, 0, 6637, 6638, 5, 2445, 0, 0, 6638, 6643, 3, 2176, 1088, 0, 6639, 6640, 5, 2451, 0, 0, 6640, 6642, 3, 2176, 1088, 0, 6641, 6639, 1, 0, 0, 0, 6642, 6645, 1, 0, 0, 0, 6643, 6641, 1, 0, 0, 0, 6643, 6644, 1, 0, 0, 0, 6644, 6646, 1, 0, 0, 0, 6645, 6643, 1, 0, 0, 0, 6646, 6654, 5, 2446, 0, 0, 6647, 6648, 5, 777, 0, 0, 6648, 6649, 5, 2445, 0, 0, 6649, 6650, 3, 542, 271, 0, 6650, 6651, 5, 2451, 0, 0, 6651, 6652, 3, 542, 271, 0, 6652, 6653, 5, 2446, 0, 0, 6653, 6655, 1, 0, 0, 0, 6654, 6647, 1, 0, 0, 0, 6654, 6655, 1, 0, 0, 0, 6655, 6657, 1, 0, 0, 0, 6656, 6658, 3, 926, 463, 0, 6657, 6656, 1, 0, 0, 0, 6657, 6658, 1, 0, 0, 0, 6658, 541, 1, 0, 0, 0, 6659, 6677, 5, 1346, 0, 0, 6660, 6672, 3, 1688, 844, 0, 6661, 6664, 3, 1194, 597, 0, 6662, 6664, 3, 1592, 796, 0, 6663, 6661, 1, 0, 0, 0, 6663, 6662, 1, 0, 0, 0, 6664, 6665, 1, 0, 0, 0, 6665, 6663, 1, 0, 0, 0, 6665, 6666, 1, 0, 0, 0, 6666, 6673, 1, 0, 0, 0, 6667, 6668, 5, 1333, 0, 0, 6668, 6669, 5, 2445, 0, 0, 6669, 6670, 3, 508, 254, 0, 6670, 6671, 5, 2446, 0, 0, 6671, 6673, 1, 0, 0, 0, 6672, 6663, 1, 0, 0, 0, 6672, 6667, 1, 0, 0, 0, 6673, 6675, 1, 0, 0, 0, 6674, 6676, 5, 2201, 0, 0, 6675, 6674, 1, 0, 0, 0, 6675, 6676, 1, 0, 0, 0, 6676, 6678, 1, 0, 0, 0, 6677, 6660, 1, 0, 0, 0, 6677, 6678, 1, 0, 0, 0, 6678, 543, 1, 0, 0, 0, 6679, 6680, 5, 978, 0, 0, 6680, 6681, 5, 1773, 0, 0, 6681, 6685, 3, 1148, 574, 0, 6682, 6686, 5, 2201, 0, 0, 6683, 6686, 3, 1278, 639, 0, 6684, 6686, 3, 1280, 640, 0, 6685, 6682, 1, 0, 0, 0, 6685, 6683, 1, 0, 0, 0, 6685, 6684, 1, 0, 0, 0, 6686, 545, 1, 0, 0, 0, 6687, 6688, 3, 1688, 844, 0, 6688, 547, 1, 0, 0, 0, 6689, 6690, 3, 1688, 844, 0, 6690, 549, 1, 0, 0, 0, 6691, 6692, 3, 2316, 1158, 0, 6692, 551, 1, 0, 0, 0, 6693, 6694, 5, 42, 0, 0, 6694, 6695, 5, 744, 0, 0, 6695, 6696, 5, 792, 0, 0, 6696, 6700, 5, 647, 0, 0, 6697, 6698, 3, 2274, 1137, 0, 6698, 6699, 5, 2438, 0, 0, 6699, 6701, 1, 0, 0, 0, 6700, 6697, 1, 0, 0, 0, 6700, 6701, 1, 0, 0, 0, 6701, 6702, 1, 0, 0, 0, 6702, 6703, 3, 2392, 1196, 0, 6703, 6704, 7, 70, 0, 0, 6704, 6708, 5, 2445, 0, 0, 6705, 6706, 3, 2274, 1137, 0, 6706, 6707, 5, 2438, 0, 0, 6707, 6709, 1, 0, 0, 0, 6708, 6705, 1, 0, 0, 0, 6708, 6709, 1, 0, 0, 0, 6709, 6710, 1, 0, 0, 0, 6710, 6711, 3, 2392, 1196, 0, 6711, 6712, 5, 2445, 0, 0, 6712, 6713, 3, 2392, 1196, 0, 6713, 6714, 5, 2446, 0, 0, 6714, 6715, 5, 2446, 0, 0, 6715, 553, 1, 0, 0, 0, 6716, 6717, 5, 319, 0, 0, 6717, 6718, 5, 2235, 0, 0, 6718, 6722, 3, 2342, 1171, 0, 6719, 6720, 5, 689, 0, 0, 6720, 6721, 5, 1202, 0, 0, 6721, 6723, 5, 543, 0, 0, 6722, 6719, 1, 0, 0, 0, 6722, 6723, 1, 0, 0, 0, 6723, 6733, 1, 0, 0, 0, 6724, 6734, 3, 562, 281, 0, 6725, 6734, 3, 564, 282, 0, 6726, 6734, 3, 566, 283, 0, 6727, 6734, 3, 568, 284, 0, 6728, 6734, 3, 570, 285, 0, 6729, 6734, 3, 576, 288, 0, 6730, 6734, 3, 578, 289, 0, 6731, 6734, 3, 580, 290, 0, 6732, 6734, 3, 764, 382, 0, 6733, 6724, 1, 0, 0, 0, 6733, 6725, 1, 0, 0, 0, 6733, 6726, 1, 0, 0, 0, 6733, 6727, 1, 0, 0, 0, 6733, 6728, 1, 0, 0, 0, 6733, 6729, 1, 0, 0, 0, 6733, 6730, 1, 0, 0, 0, 6733, 6731, 1, 0, 0, 0, 6733, 6732, 1, 0, 0, 0, 6734, 6735, 1, 0, 0, 0, 6735, 6733, 1, 0, 0, 0, 6735, 6736, 1, 0, 0, 0, 6736, 555, 1, 0, 0, 0, 6737, 6738, 5, 42, 0, 0, 6738, 6739, 5, 2235, 0, 0, 6739, 6751, 3, 2342, 1171, 0, 6740, 6752, 3, 560, 280, 0, 6741, 6752, 3, 564, 282, 0, 6742, 6752, 3, 566, 283, 0, 6743, 6752, 3, 568, 284, 0, 6744, 6752, 3, 570, 285, 0, 6745, 6752, 3, 574, 287, 0, 6746, 6752, 3, 576, 288, 0, 6747, 6752, 3, 578, 289, 0, 6748, 6752, 3, 582, 291, 0, 6749, 6752, 3, 764, 382, 0, 6750, 6752, 3, 592, 296, 0, 6751, 6740, 1, 0, 0, 0, 6751, 6741, 1, 0, 0, 0, 6751, 6742, 1, 0, 0, 0, 6751, 6743, 1, 0, 0, 0, 6751, 6744, 1, 0, 0, 0, 6751, 6745, 1, 0, 0, 0, 6751, 6746, 1, 0, 0, 0, 6751, 6747, 1, 0, 0, 0, 6751, 6748, 1, 0, 0, 0, 6751, 6749, 1, 0, 0, 0, 6751, 6750, 1, 0, 0, 0, 6752, 6753, 1, 0, 0, 0, 6753, 6751, 1, 0, 0, 0, 6753, 6754, 1, 0, 0, 0, 6754, 6766, 1, 0, 0, 0, 6755, 6760, 3, 2342, 1171, 0, 6756, 6757, 5, 2451, 0, 0, 6757, 6759, 3, 2342, 1171, 0, 6758, 6756, 1, 0, 0, 0, 6759, 6762, 1, 0, 0, 0, 6760, 6758, 1, 0, 0, 0, 6760, 6761, 1, 0, 0, 0, 6761, 6763, 1, 0, 0, 0, 6762, 6760, 1, 0, 0, 0, 6763, 6764, 3, 584, 292, 0, 6764, 6766, 1, 0, 0, 0, 6765, 6737, 1, 0, 0, 0, 6765, 6755, 1, 0, 0, 0, 6766, 557, 1, 0, 0, 0, 6767, 6768, 5, 467, 0, 0, 6768, 6769, 5, 2235, 0, 0, 6769, 6772, 3, 2342, 1171, 0, 6770, 6771, 5, 689, 0, 0, 6771, 6773, 5, 543, 0, 0, 6772, 6770, 1, 0, 0, 0, 6772, 6773, 1, 0, 0, 0, 6773, 6775, 1, 0, 0, 0, 6774, 6776, 5, 179, 0, 0, 6775, 6774, 1, 0, 0, 0, 6775, 6776, 1, 0, 0, 0, 6776, 559, 1, 0, 0, 0, 6777, 6780, 3, 562, 281, 0, 6778, 6779, 5, 1560, 0, 0, 6779, 6781, 3, 2392, 1196, 0, 6780, 6778, 1, 0, 0, 0, 6780, 6781, 1, 0, 0, 0, 6781, 561, 1, 0, 0, 0, 6782, 6783, 5, 683, 0, 0, 6783, 6784, 5, 160, 0, 0, 6784, 6785, 3, 2392, 1196, 0, 6785, 563, 1, 0, 0, 0, 6786, 6787, 5, 683, 0, 0, 6787, 6790, 7, 71, 0, 0, 6788, 6789, 5, 69, 0, 0, 6789, 6791, 3, 2388, 1194, 0, 6790, 6788, 1, 0, 0, 0, 6790, 6791, 1, 0, 0, 0, 6791, 565, 1, 0, 0, 0, 6792, 6793, 7, 72, 0, 0, 6793, 6794, 5, 2078, 0, 0, 6794, 6795, 3, 2392, 1196, 0, 6795, 567, 1, 0, 0, 0, 6796, 6799, 5, 1488, 0, 0, 6797, 6800, 3, 1170, 585, 0, 6798, 6800, 5, 2183, 0, 0, 6799, 6797, 1, 0, 0, 0, 6799, 6798, 1, 0, 0, 0, 6800, 6801, 1, 0, 0, 0, 6801, 6802, 5, 1257, 0, 0, 6802, 6803, 3, 2392, 1196, 0, 6803, 569, 1, 0, 0, 0, 6804, 6805, 5, 1461, 0, 0, 6805, 6806, 3, 2392, 1196, 0, 6806, 571, 1, 0, 0, 0, 6807, 6812, 3, 2296, 1148, 0, 6808, 6809, 5, 2451, 0, 0, 6809, 6811, 3, 2296, 1148, 0, 6810, 6808, 1, 0, 0, 0, 6811, 6814, 1, 0, 0, 0, 6812, 6810, 1, 0, 0, 0, 6812, 6813, 1, 0, 0, 0, 6813, 6831, 1, 0, 0, 0, 6814, 6812, 1, 0, 0, 0, 6815, 6827, 5, 38, 0, 0, 6816, 6817, 5, 532, 0, 0, 6817, 6822, 3, 2296, 1148, 0, 6818, 6819, 5, 2451, 0, 0, 6819, 6821, 3, 2296, 1148, 0, 6820, 6818, 1, 0, 0, 0, 6821, 6824, 1, 0, 0, 0, 6822, 6820, 1, 0, 0, 0, 6822, 6823, 1, 0, 0, 0, 6823, 6826, 1, 0, 0, 0, 6824, 6822, 1, 0, 0, 0, 6825, 6816, 1, 0, 0, 0, 6826, 6829, 1, 0, 0, 0, 6827, 6825, 1, 0, 0, 0, 6827, 6828, 1, 0, 0, 0, 6828, 6831, 1, 0, 0, 0, 6829, 6827, 1, 0, 0, 0, 6830, 6807, 1, 0, 0, 0, 6830, 6815, 1, 0, 0, 0, 6831, 573, 1, 0, 0, 0, 6832, 6833, 5, 387, 0, 0, 6833, 6836, 5, 1591, 0, 0, 6834, 6837, 5, 1131, 0, 0, 6835, 6837, 3, 572, 286, 0, 6836, 6834, 1, 0, 0, 0, 6836, 6835, 1, 0, 0, 0, 6837, 575, 1, 0, 0, 0, 6838, 6839, 5, 1354, 0, 0, 6839, 6840, 5, 549, 0, 0, 6840, 577, 1, 0, 0, 0, 6841, 6842, 5, 7, 0, 0, 6842, 6843, 7, 73, 0, 0, 6843, 579, 1, 0, 0, 0, 6844, 6845, 5, 497, 0, 0, 6845, 6846, 5, 483, 0, 0, 6846, 581, 1, 0, 0, 0, 6847, 6857, 3, 580, 290, 0, 6848, 6849, 5, 618, 0, 0, 6849, 6854, 3, 2398, 1199, 0, 6850, 6851, 5, 2451, 0, 0, 6851, 6853, 3, 2398, 1199, 0, 6852, 6850, 1, 0, 0, 0, 6853, 6856, 1, 0, 0, 0, 6854, 6852, 1, 0, 0, 0, 6854, 6855, 1, 0, 0, 0, 6855, 6858, 1, 0, 0, 0, 6856, 6854, 1, 0, 0, 0, 6857, 6848, 1, 0, 0, 0, 6857, 6858, 1, 0, 0, 0, 6858, 6860, 1, 0, 0, 0, 6859, 6861, 5, 614, 0, 0, 6860, 6859, 1, 0, 0, 0, 6860, 6861, 1, 0, 0, 0, 6861, 583, 1, 0, 0, 0, 6862, 6863, 5, 1587, 0, 0, 6863, 6864, 5, 278, 0, 0, 6864, 6868, 5, 2101, 0, 0, 6865, 6866, 5, 512, 0, 0, 6866, 6869, 5, 2233, 0, 0, 6867, 6869, 3, 2342, 1171, 0, 6868, 6865, 1, 0, 0, 0, 6868, 6867, 1, 0, 0, 0, 6869, 6902, 1, 0, 0, 0, 6870, 6871, 5, 645, 0, 0, 6871, 6872, 5, 278, 0, 0, 6872, 6899, 5, 2101, 0, 0, 6873, 6874, 5, 512, 0, 0, 6874, 6900, 5, 2233, 0, 0, 6875, 6883, 3, 2342, 1171, 0, 6876, 6881, 5, 2306, 0, 0, 6877, 6878, 5, 1135, 0, 0, 6878, 6882, 5, 1593, 0, 0, 6879, 6880, 5, 1591, 0, 0, 6880, 6882, 3, 572, 286, 0, 6881, 6877, 1, 0, 0, 0, 6881, 6879, 1, 0, 0, 0, 6882, 6884, 1, 0, 0, 0, 6883, 6876, 1, 0, 0, 0, 6883, 6884, 1, 0, 0, 0, 6884, 6887, 1, 0, 0, 0, 6885, 6886, 5, 87, 0, 0, 6886, 6888, 5, 1562, 0, 0, 6887, 6885, 1, 0, 0, 0, 6887, 6888, 1, 0, 0, 0, 6888, 6897, 1, 0, 0, 0, 6889, 6890, 5, 86, 0, 0, 6890, 6895, 5, 2244, 0, 0, 6891, 6896, 5, 1354, 0, 0, 6892, 6896, 5, 187, 0, 0, 6893, 6894, 5, 444, 0, 0, 6894, 6896, 5, 995, 0, 0, 6895, 6891, 1, 0, 0, 0, 6895, 6892, 1, 0, 0, 0, 6895, 6893, 1, 0, 0, 0, 6896, 6898, 1, 0, 0, 0, 6897, 6889, 1, 0, 0, 0, 6897, 6898, 1, 0, 0, 0, 6898, 6900, 1, 0, 0, 0, 6899, 6873, 1, 0, 0, 0, 6899, 6875, 1, 0, 0, 0, 6900, 6902, 1, 0, 0, 0, 6901, 6862, 1, 0, 0, 0, 6901, 6870, 1, 0, 0, 0, 6902, 585, 1, 0, 0, 0, 6903, 6904, 5, 2445, 0, 0, 6904, 6909, 3, 2392, 1196, 0, 6905, 6906, 5, 2451, 0, 0, 6906, 6908, 3, 2392, 1196, 0, 6907, 6905, 1, 0, 0, 0, 6908, 6911, 1, 0, 0, 0, 6909, 6907, 1, 0, 0, 0, 6909, 6910, 1, 0, 0, 0, 6910, 6912, 1, 0, 0, 0, 6911, 6909, 1, 0, 0, 0, 6912, 6913, 5, 2446, 0, 0, 6913, 587, 1, 0, 0, 0, 6914, 6915, 5, 1669, 0, 0, 6915, 6916, 5, 290, 0, 0, 6916, 6920, 5, 2469, 0, 0, 6917, 6921, 5, 38, 0, 0, 6918, 6921, 5, 387, 0, 0, 6919, 6921, 3, 586, 293, 0, 6920, 6917, 1, 0, 0, 0, 6920, 6918, 1, 0, 0, 0, 6920, 6919, 1, 0, 0, 0, 6921, 589, 1, 0, 0, 0, 6922, 6923, 7, 70, 0, 0, 6923, 6924, 5, 290, 0, 0, 6924, 6925, 5, 2469, 0, 0, 6925, 6926, 3, 586, 293, 0, 6926, 591, 1, 0, 0, 0, 6927, 6934, 3, 588, 294, 0, 6928, 6931, 3, 590, 295, 0, 6929, 6930, 5, 618, 0, 0, 6930, 6932, 3, 2288, 1144, 0, 6931, 6929, 1, 0, 0, 0, 6931, 6932, 1, 0, 0, 0, 6932, 6934, 1, 0, 0, 0, 6933, 6927, 1, 0, 0, 0, 6933, 6928, 1, 0, 0, 0, 6934, 593, 1, 0, 0, 0, 6935, 6936, 5, 27, 0, 0, 6936, 6937, 5, 814, 0, 0, 6937, 6942, 5, 904, 0, 0, 6938, 6943, 3, 596, 298, 0, 6939, 6943, 3, 618, 309, 0, 6940, 6943, 3, 648, 324, 0, 6941, 6943, 3, 658, 329, 0, 6942, 6938, 1, 0, 0, 0, 6942, 6939, 1, 0, 0, 0, 6942, 6940, 1, 0, 0, 0, 6942, 6941, 1, 0, 0, 0, 6943, 595, 1, 0, 0, 0, 6944, 6954, 3, 598, 299, 0, 6945, 6954, 3, 600, 300, 0, 6946, 6954, 3, 604, 302, 0, 6947, 6954, 3, 606, 303, 0, 6948, 6954, 3, 608, 304, 0, 6949, 6954, 3, 610, 305, 0, 6950, 6954, 3, 612, 306, 0, 6951, 6954, 3, 614, 307, 0, 6952, 6954, 3, 616, 308, 0, 6953, 6944, 1, 0, 0, 0, 6953, 6945, 1, 0, 0, 0, 6953, 6946, 1, 0, 0, 0, 6953, 6947, 1, 0, 0, 0, 6953, 6948, 1, 0, 0, 0, 6953, 6949, 1, 0, 0, 0, 6953, 6950, 1, 0, 0, 0, 6953, 6951, 1, 0, 0, 0, 6953, 6952, 1, 0, 0, 0, 6954, 597, 1, 0, 0, 0, 6955, 6966, 5, 319, 0, 0, 6956, 6957, 5, 818, 0, 0, 6957, 6967, 5, 2441, 0, 0, 6958, 6960, 5, 871, 0, 0, 6959, 6958, 1, 0, 0, 0, 6959, 6960, 1, 0, 0, 0, 6960, 6961, 1, 0, 0, 0, 6961, 6962, 5, 94, 0, 0, 6962, 6963, 5, 818, 0, 0, 6963, 6964, 5, 626, 0, 0, 6964, 6965, 5, 818, 0, 0, 6965, 6967, 5, 2441, 0, 0, 6966, 6956, 1, 0, 0, 0, 6966, 6959, 1, 0, 0, 0, 6967, 6968, 1, 0, 0, 0, 6968, 6969, 5, 683, 0, 0, 6969, 6970, 5, 160, 0, 0, 6970, 6971, 3, 664, 332, 0, 6971, 599, 1, 0, 0, 0, 6972, 6973, 5, 1669, 0, 0, 6973, 6974, 5, 818, 0, 0, 6974, 6976, 5, 1262, 0, 0, 6975, 6977, 3, 602, 301, 0, 6976, 6975, 1, 0, 0, 0, 6976, 6977, 1, 0, 0, 0, 6977, 6978, 1, 0, 0, 0, 6978, 6980, 3, 642, 321, 0, 6979, 6981, 3, 764, 382, 0, 6980, 6979, 1, 0, 0, 0, 6980, 6981, 1, 0, 0, 0, 6981, 601, 1, 0, 0, 0, 6982, 6983, 5, 614, 0, 0, 6983, 6984, 5, 818, 0, 0, 6984, 603, 1, 0, 0, 0, 6985, 6986, 5, 1669, 0, 0, 6986, 6987, 5, 818, 0, 0, 6987, 6989, 5, 218, 0, 0, 6988, 6990, 3, 642, 321, 0, 6989, 6988, 1, 0, 0, 0, 6989, 6990, 1, 0, 0, 0, 6990, 6992, 1, 0, 0, 0, 6991, 6993, 3, 764, 382, 0, 6992, 6991, 1, 0, 0, 0, 6992, 6993, 1, 0, 0, 0, 6993, 605, 1, 0, 0, 0, 6994, 6995, 5, 102, 0, 0, 6995, 6998, 5, 818, 0, 0, 6996, 6997, 5, 2244, 0, 0, 6997, 6999, 5, 2441, 0, 0, 6998, 6996, 1, 0, 0, 0, 6998, 6999, 1, 0, 0, 0, 6999, 7001, 1, 0, 0, 0, 7000, 7002, 3, 602, 301, 0, 7001, 7000, 1, 0, 0, 0, 7001, 7002, 1, 0, 0, 0, 7002, 7003, 1, 0, 0, 0, 7003, 7006, 3, 642, 321, 0, 7004, 7005, 5, 2139, 0, 0, 7005, 7007, 5, 2441, 0, 0, 7006, 7004, 1, 0, 0, 0, 7006, 7007, 1, 0, 0, 0, 7007, 607, 1, 0, 0, 0, 7008, 7009, 5, 42, 0, 0, 7009, 7010, 5, 818, 0, 0, 7010, 7012, 5, 1354, 0, 0, 7011, 7013, 3, 602, 301, 0, 7012, 7011, 1, 0, 0, 0, 7012, 7013, 1, 0, 0, 0, 7013, 7014, 1, 0, 0, 0, 7014, 7015, 5, 683, 0, 0, 7015, 7016, 5, 160, 0, 0, 7016, 7017, 3, 664, 332, 0, 7017, 7018, 5, 1669, 0, 0, 7018, 7020, 3, 664, 332, 0, 7019, 7021, 3, 660, 330, 0, 7020, 7019, 1, 0, 0, 0, 7020, 7021, 1, 0, 0, 0, 7021, 609, 1, 0, 0, 0, 7022, 7023, 5, 944, 0, 0, 7023, 7024, 5, 818, 0, 0, 7024, 7026, 5, 2441, 0, 0, 7025, 7027, 3, 662, 331, 0, 7026, 7025, 1, 0, 0, 0, 7026, 7027, 1, 0, 0, 0, 7027, 7028, 1, 0, 0, 0, 7028, 7029, 5, 49, 0, 0, 7029, 7030, 5, 818, 0, 0, 7030, 7032, 5, 2441, 0, 0, 7031, 7033, 3, 662, 331, 0, 7032, 7031, 1, 0, 0, 0, 7032, 7033, 1, 0, 0, 0, 7033, 7034, 1, 0, 0, 0, 7034, 7035, 5, 777, 0, 0, 7035, 7036, 5, 1019, 0, 0, 7036, 7037, 5, 818, 0, 0, 7037, 7038, 5, 2441, 0, 0, 7038, 7039, 3, 662, 331, 0, 7039, 611, 1, 0, 0, 0, 7040, 7041, 5, 944, 0, 0, 7041, 7042, 5, 818, 0, 0, 7042, 7044, 5, 2441, 0, 0, 7043, 7045, 3, 662, 331, 0, 7044, 7043, 1, 0, 0, 0, 7044, 7045, 1, 0, 0, 0, 7045, 7046, 1, 0, 0, 0, 7046, 7047, 5, 777, 0, 0, 7047, 7048, 5, 542, 0, 0, 7048, 7049, 5, 818, 0, 0, 7049, 7050, 5, 2441, 0, 0, 7050, 7052, 3, 662, 331, 0, 7051, 7053, 3, 660, 330, 0, 7052, 7051, 1, 0, 0, 0, 7052, 7053, 1, 0, 0, 0, 7053, 613, 1, 0, 0, 0, 7054, 7056, 5, 614, 0, 0, 7055, 7054, 1, 0, 0, 0, 7055, 7056, 1, 0, 0, 0, 7056, 7057, 1, 0, 0, 0, 7057, 7058, 5, 2385, 0, 0, 7058, 7059, 5, 818, 0, 0, 7059, 7060, 5, 683, 0, 0, 7060, 7061, 5, 160, 0, 0, 7061, 7062, 3, 664, 332, 0, 7062, 7063, 5, 626, 0, 0, 7063, 7064, 5, 2386, 0, 0, 7064, 7066, 5, 818, 0, 0, 7065, 7067, 3, 602, 301, 0, 7066, 7065, 1, 0, 0, 0, 7066, 7067, 1, 0, 0, 0, 7067, 7068, 1, 0, 0, 0, 7068, 7070, 3, 642, 321, 0, 7069, 7071, 3, 660, 330, 0, 7070, 7069, 1, 0, 0, 0, 7070, 7071, 1, 0, 0, 0, 7071, 615, 1, 0, 0, 0, 7072, 7073, 5, 2387, 0, 0, 7073, 7074, 5, 818, 0, 0, 7074, 7075, 5, 683, 0, 0, 7075, 7076, 5, 160, 0, 0, 7076, 7077, 3, 664, 332, 0, 7077, 7078, 5, 2306, 0, 0, 7078, 7079, 5, 2386, 0, 0, 7079, 7081, 5, 818, 0, 0, 7080, 7082, 3, 602, 301, 0, 7081, 7080, 1, 0, 0, 0, 7081, 7082, 1, 0, 0, 0, 7082, 7083, 1, 0, 0, 0, 7083, 7085, 3, 642, 321, 0, 7084, 7086, 3, 660, 330, 0, 7085, 7084, 1, 0, 0, 0, 7085, 7086, 1, 0, 0, 0, 7086, 617, 1, 0, 0, 0, 7087, 7097, 3, 620, 310, 0, 7088, 7097, 3, 622, 311, 0, 7089, 7097, 3, 628, 314, 0, 7090, 7097, 3, 630, 315, 0, 7091, 7097, 3, 632, 316, 0, 7092, 7097, 3, 634, 317, 0, 7093, 7097, 3, 636, 318, 0, 7094, 7097, 3, 638, 319, 0, 7095, 7097, 3, 640, 320, 0, 7096, 7087, 1, 0, 0, 0, 7096, 7088, 1, 0, 0, 0, 7096, 7089, 1, 0, 0, 0, 7096, 7090, 1, 0, 0, 0, 7096, 7091, 1, 0, 0, 0, 7096, 7092, 1, 0, 0, 0, 7096, 7093, 1, 0, 0, 0, 7096, 7094, 1, 0, 0, 0, 7096, 7095, 1, 0, 0, 0, 7097, 619, 1, 0, 0, 0, 7098, 7100, 5, 1669, 0, 0, 7099, 7101, 5, 504, 0, 0, 7100, 7099, 1, 0, 0, 0, 7100, 7101, 1, 0, 0, 0, 7101, 7102, 1, 0, 0, 0, 7102, 7109, 5, 814, 0, 0, 7103, 7104, 3, 624, 312, 0, 7104, 7105, 5, 2466, 0, 0, 7105, 7107, 1, 0, 0, 0, 7106, 7103, 1, 0, 0, 0, 7106, 7107, 1, 0, 0, 0, 7107, 7108, 1, 0, 0, 0, 7108, 7110, 3, 626, 313, 0, 7109, 7106, 1, 0, 0, 0, 7109, 7110, 1, 0, 0, 0, 7110, 7112, 1, 0, 0, 0, 7111, 7113, 3, 646, 323, 0, 7112, 7111, 1, 0, 0, 0, 7112, 7113, 1, 0, 0, 0, 7113, 7115, 1, 0, 0, 0, 7114, 7116, 3, 644, 322, 0, 7115, 7114, 1, 0, 0, 0, 7115, 7116, 1, 0, 0, 0, 7116, 7118, 1, 0, 0, 0, 7117, 7119, 3, 602, 301, 0, 7118, 7117, 1, 0, 0, 0, 7118, 7119, 1, 0, 0, 0, 7119, 7120, 1, 0, 0, 0, 7120, 7122, 3, 642, 321, 0, 7121, 7123, 3, 660, 330, 0, 7122, 7121, 1, 0, 0, 0, 7122, 7123, 1, 0, 0, 0, 7123, 7125, 1, 0, 0, 0, 7124, 7126, 3, 764, 382, 0, 7125, 7124, 1, 0, 0, 0, 7125, 7126, 1, 0, 0, 0, 7126, 621, 1, 0, 0, 0, 7127, 7129, 5, 319, 0, 0, 7128, 7130, 5, 504, 0, 0, 7129, 7128, 1, 0, 0, 0, 7129, 7130, 1, 0, 0, 0, 7130, 7131, 1, 0, 0, 0, 7131, 7138, 5, 814, 0, 0, 7132, 7133, 3, 624, 312, 0, 7133, 7134, 5, 2466, 0, 0, 7134, 7136, 1, 0, 0, 0, 7135, 7132, 1, 0, 0, 0, 7135, 7136, 1, 0, 0, 0, 7136, 7137, 1, 0, 0, 0, 7137, 7139, 3, 626, 313, 0, 7138, 7135, 1, 0, 0, 0, 7138, 7139, 1, 0, 0, 0, 7139, 7141, 1, 0, 0, 0, 7140, 7142, 3, 646, 323, 0, 7141, 7140, 1, 0, 0, 0, 7141, 7142, 1, 0, 0, 0, 7142, 7144, 1, 0, 0, 0, 7143, 7145, 3, 644, 322, 0, 7144, 7143, 1, 0, 0, 0, 7144, 7145, 1, 0, 0, 0, 7145, 7147, 1, 0, 0, 0, 7146, 7148, 3, 602, 301, 0, 7147, 7146, 1, 0, 0, 0, 7147, 7148, 1, 0, 0, 0, 7148, 7149, 1, 0, 0, 0, 7149, 7151, 3, 642, 321, 0, 7150, 7152, 3, 660, 330, 0, 7151, 7150, 1, 0, 0, 0, 7151, 7152, 1, 0, 0, 0, 7152, 7154, 1, 0, 0, 0, 7153, 7155, 3, 764, 382, 0, 7154, 7153, 1, 0, 0, 0, 7154, 7155, 1, 0, 0, 0, 7155, 623, 1, 0, 0, 0, 7156, 7157, 5, 2441, 0, 0, 7157, 625, 1, 0, 0, 0, 7158, 7159, 5, 2441, 0, 0, 7159, 627, 1, 0, 0, 0, 7160, 7162, 5, 2239, 0, 0, 7161, 7163, 5, 504, 0, 0, 7162, 7161, 1, 0, 0, 0, 7162, 7163, 1, 0, 0, 0, 7163, 7164, 1, 0, 0, 0, 7164, 7165, 5, 814, 0, 0, 7165, 7167, 5, 2441, 0, 0, 7166, 7168, 3, 646, 323, 0, 7167, 7166, 1, 0, 0, 0, 7167, 7168, 1, 0, 0, 0, 7168, 7170, 1, 0, 0, 0, 7169, 7171, 3, 602, 301, 0, 7170, 7169, 1, 0, 0, 0, 7170, 7171, 1, 0, 0, 0, 7171, 7172, 1, 0, 0, 0, 7172, 7174, 3, 642, 321, 0, 7173, 7175, 3, 660, 330, 0, 7174, 7173, 1, 0, 0, 0, 7174, 7175, 1, 0, 0, 0, 7175, 629, 1, 0, 0, 0, 7176, 7177, 5, 1669, 0, 0, 7177, 7178, 5, 2083, 0, 0, 7178, 7179, 5, 2441, 0, 0, 7179, 7180, 5, 618, 0, 0, 7180, 7182, 5, 2441, 0, 0, 7181, 7183, 3, 602, 301, 0, 7182, 7181, 1, 0, 0, 0, 7182, 7183, 1, 0, 0, 0, 7183, 7184, 1, 0, 0, 0, 7184, 7186, 3, 642, 321, 0, 7185, 7187, 3, 660, 330, 0, 7186, 7185, 1, 0, 0, 0, 7186, 7187, 1, 0, 0, 0, 7187, 631, 1, 0, 0, 0, 7188, 7190, 5, 552, 0, 0, 7189, 7191, 5, 504, 0, 0, 7190, 7189, 1, 0, 0, 0, 7190, 7191, 1, 0, 0, 0, 7191, 7192, 1, 0, 0, 0, 7192, 7193, 5, 817, 0, 0, 7193, 7194, 5, 2306, 0, 0, 7194, 7195, 5, 1636, 0, 0, 7195, 7196, 3, 668, 334, 0, 7196, 7197, 5, 2139, 0, 0, 7197, 7199, 3, 1452, 726, 0, 7198, 7200, 3, 602, 301, 0, 7199, 7198, 1, 0, 0, 0, 7199, 7200, 1, 0, 0, 0, 7200, 7201, 1, 0, 0, 0, 7201, 7219, 3, 642, 321, 0, 7202, 7203, 5, 2306, 0, 0, 7203, 7204, 5, 684, 0, 0, 7204, 7217, 5, 736, 0, 0, 7205, 7210, 5, 2441, 0, 0, 7206, 7207, 5, 2451, 0, 0, 7207, 7209, 5, 2441, 0, 0, 7208, 7206, 1, 0, 0, 0, 7209, 7212, 1, 0, 0, 0, 7210, 7208, 1, 0, 0, 0, 7210, 7211, 1, 0, 0, 0, 7211, 7218, 1, 0, 0, 0, 7212, 7210, 1, 0, 0, 0, 7213, 7214, 5, 2445, 0, 0, 7214, 7215, 3, 1888, 944, 0, 7215, 7216, 5, 2446, 0, 0, 7216, 7218, 1, 0, 0, 0, 7217, 7205, 1, 0, 0, 0, 7217, 7213, 1, 0, 0, 0, 7218, 7220, 1, 0, 0, 0, 7219, 7202, 1, 0, 0, 0, 7219, 7220, 1, 0, 0, 0, 7220, 633, 1, 0, 0, 0, 7221, 7223, 5, 698, 0, 0, 7222, 7224, 5, 504, 0, 0, 7223, 7222, 1, 0, 0, 0, 7223, 7224, 1, 0, 0, 0, 7224, 7225, 1, 0, 0, 0, 7225, 7226, 5, 817, 0, 0, 7226, 7227, 5, 2306, 0, 0, 7227, 7228, 5, 1636, 0, 0, 7228, 7229, 3, 668, 334, 0, 7229, 7230, 5, 626, 0, 0, 7230, 7232, 3, 1452, 726, 0, 7231, 7233, 3, 602, 301, 0, 7232, 7231, 1, 0, 0, 0, 7232, 7233, 1, 0, 0, 0, 7233, 7234, 1, 0, 0, 0, 7234, 7236, 3, 642, 321, 0, 7235, 7237, 3, 660, 330, 0, 7236, 7235, 1, 0, 0, 0, 7236, 7237, 1, 0, 0, 0, 7237, 635, 1, 0, 0, 0, 7238, 7240, 5, 1669, 0, 0, 7239, 7241, 5, 504, 0, 0, 7240, 7239, 1, 0, 0, 0, 7240, 7241, 1, 0, 0, 0, 7241, 7242, 1, 0, 0, 0, 7242, 7243, 5, 814, 0, 0, 7243, 7244, 5, 683, 0, 0, 7244, 7245, 5, 160, 0, 0, 7245, 7247, 3, 668, 334, 0, 7246, 7248, 3, 602, 301, 0, 7247, 7246, 1, 0, 0, 0, 7247, 7248, 1, 0, 0, 0, 7248, 7249, 1, 0, 0, 0, 7249, 7250, 5, 948, 0, 0, 7250, 7251, 5, 2244, 0, 0, 7251, 7253, 3, 664, 332, 0, 7252, 7254, 3, 660, 330, 0, 7253, 7252, 1, 0, 0, 0, 7253, 7254, 1, 0, 0, 0, 7254, 637, 1, 0, 0, 0, 7255, 7257, 5, 1669, 0, 0, 7256, 7258, 5, 504, 0, 0, 7257, 7256, 1, 0, 0, 0, 7257, 7258, 1, 0, 0, 0, 7258, 7259, 1, 0, 0, 0, 7259, 7260, 5, 814, 0, 0, 7260, 7261, 5, 683, 0, 0, 7261, 7262, 5, 160, 0, 0, 7262, 7264, 3, 668, 334, 0, 7263, 7265, 3, 602, 301, 0, 7264, 7263, 1, 0, 0, 0, 7264, 7265, 1, 0, 0, 0, 7265, 7266, 1, 0, 0, 0, 7266, 7267, 5, 1586, 0, 0, 7267, 7268, 5, 948, 0, 0, 7268, 7269, 5, 2244, 0, 0, 7269, 7270, 3, 668, 334, 0, 7270, 639, 1, 0, 0, 0, 7271, 7273, 5, 990, 0, 0, 7272, 7274, 5, 504, 0, 0, 7273, 7272, 1, 0, 0, 0, 7273, 7274, 1, 0, 0, 0, 7274, 7275, 1, 0, 0, 0, 7275, 7276, 5, 817, 0, 0, 7276, 7277, 5, 2139, 0, 0, 7277, 7278, 5, 1019, 0, 0, 7278, 7279, 5, 818, 0, 0, 7279, 7280, 5, 2441, 0, 0, 7280, 7281, 5, 683, 0, 0, 7281, 7282, 5, 160, 0, 0, 7282, 7283, 3, 664, 332, 0, 7283, 7285, 5, 626, 0, 0, 7284, 7286, 5, 614, 0, 0, 7285, 7284, 1, 0, 0, 0, 7285, 7286, 1, 0, 0, 0, 7286, 7287, 1, 0, 0, 0, 7287, 7288, 5, 818, 0, 0, 7288, 7289, 5, 683, 0, 0, 7289, 7290, 5, 160, 0, 0, 7290, 7305, 3, 664, 332, 0, 7291, 7292, 5, 2306, 0, 0, 7292, 7293, 5, 684, 0, 0, 7293, 7303, 5, 736, 0, 0, 7294, 7299, 5, 2441, 0, 0, 7295, 7296, 5, 2451, 0, 0, 7296, 7298, 5, 2441, 0, 0, 7297, 7295, 1, 0, 0, 0, 7298, 7301, 1, 0, 0, 0, 7299, 7297, 1, 0, 0, 0, 7299, 7300, 1, 0, 0, 0, 7300, 7304, 1, 0, 0, 0, 7301, 7299, 1, 0, 0, 0, 7302, 7304, 3, 1888, 944, 0, 7303, 7294, 1, 0, 0, 0, 7303, 7302, 1, 0, 0, 0, 7304, 7306, 1, 0, 0, 0, 7305, 7291, 1, 0, 0, 0, 7305, 7306, 1, 0, 0, 0, 7306, 7308, 1, 0, 0, 0, 7307, 7309, 3, 660, 330, 0, 7308, 7307, 1, 0, 0, 0, 7308, 7309, 1, 0, 0, 0, 7309, 641, 1, 0, 0, 0, 7310, 7311, 5, 683, 0, 0, 7311, 7315, 5, 160, 0, 0, 7312, 7313, 5, 558, 0, 0, 7313, 7316, 5, 1761, 0, 0, 7314, 7316, 3, 664, 332, 0, 7315, 7312, 1, 0, 0, 0, 7315, 7314, 1, 0, 0, 0, 7316, 643, 1, 0, 0, 0, 7317, 7318, 5, 2244, 0, 0, 7318, 7319, 5, 2388, 0, 0, 7319, 7320, 5, 2441, 0, 0, 7320, 645, 1, 0, 0, 0, 7321, 7322, 5, 2244, 0, 0, 7322, 7323, 5, 2083, 0, 0, 7323, 7324, 5, 2441, 0, 0, 7324, 647, 1, 0, 0, 0, 7325, 7330, 3, 650, 325, 0, 7326, 7330, 3, 652, 326, 0, 7327, 7330, 3, 654, 327, 0, 7328, 7330, 3, 656, 328, 0, 7329, 7325, 1, 0, 0, 0, 7329, 7326, 1, 0, 0, 0, 7329, 7327, 1, 0, 0, 0, 7329, 7328, 1, 0, 0, 0, 7330, 649, 1, 0, 0, 0, 7331, 7332, 7, 74, 0, 0, 7332, 7333, 5, 1636, 0, 0, 7333, 7334, 5, 2441, 0, 0, 7334, 7335, 5, 618, 0, 0, 7335, 7336, 5, 214, 0, 0, 7336, 7338, 5, 2441, 0, 0, 7337, 7339, 3, 646, 323, 0, 7338, 7337, 1, 0, 0, 0, 7338, 7339, 1, 0, 0, 0, 7339, 7341, 1, 0, 0, 0, 7340, 7342, 3, 602, 301, 0, 7341, 7340, 1, 0, 0, 0, 7341, 7342, 1, 0, 0, 0, 7342, 7344, 1, 0, 0, 0, 7343, 7345, 3, 642, 321, 0, 7344, 7343, 1, 0, 0, 0, 7344, 7345, 1, 0, 0, 0, 7345, 7347, 1, 0, 0, 0, 7346, 7348, 3, 660, 330, 0, 7347, 7346, 1, 0, 0, 0, 7347, 7348, 1, 0, 0, 0, 7348, 651, 1, 0, 0, 0, 7349, 7350, 5, 401, 0, 0, 7350, 7351, 5, 1636, 0, 0, 7351, 7352, 5, 618, 0, 0, 7352, 7353, 5, 214, 0, 0, 7353, 7355, 5, 2441, 0, 0, 7354, 7356, 3, 602, 301, 0, 7355, 7354, 1, 0, 0, 0, 7355, 7356, 1, 0, 0, 0, 7356, 7357, 1, 0, 0, 0, 7357, 7359, 3, 642, 321, 0, 7358, 7360, 3, 660, 330, 0, 7359, 7358, 1, 0, 0, 0, 7359, 7360, 1, 0, 0, 0, 7360, 653, 1, 0, 0, 0, 7361, 7362, 7, 74, 0, 0, 7362, 7363, 5, 1636, 0, 0, 7363, 7364, 5, 2441, 0, 0, 7364, 7365, 5, 618, 0, 0, 7365, 7366, 5, 214, 0, 0, 7366, 7368, 5, 2441, 0, 0, 7367, 7369, 3, 646, 323, 0, 7368, 7367, 1, 0, 0, 0, 7368, 7369, 1, 0, 0, 0, 7369, 7370, 1, 0, 0, 0, 7370, 7372, 5, 2139, 0, 0, 7371, 7373, 5, 871, 0, 0, 7372, 7371, 1, 0, 0, 0, 7372, 7373, 1, 0, 0, 0, 7373, 7374, 1, 0, 0, 0, 7374, 7375, 5, 94, 0, 0, 7375, 7376, 5, 818, 0, 0, 7376, 7377, 3, 786, 393, 0, 7377, 655, 1, 0, 0, 0, 7378, 7379, 5, 401, 0, 0, 7379, 7380, 5, 1636, 0, 0, 7380, 7381, 5, 2441, 0, 0, 7381, 7382, 5, 2458, 0, 0, 7382, 7383, 5, 618, 0, 0, 7383, 7384, 5, 214, 0, 0, 7384, 7385, 5, 2441, 0, 0, 7385, 7387, 5, 626, 0, 0, 7386, 7388, 5, 871, 0, 0, 7387, 7386, 1, 0, 0, 0, 7387, 7388, 1, 0, 0, 0, 7388, 7389, 1, 0, 0, 0, 7389, 7390, 5, 94, 0, 0, 7390, 7391, 5, 818, 0, 0, 7391, 7392, 3, 786, 393, 0, 7392, 657, 1, 0, 0, 0, 7393, 7395, 5, 1790, 0, 0, 7394, 7396, 5, 2139, 0, 0, 7395, 7394, 1, 0, 0, 0, 7395, 7396, 1, 0, 0, 0, 7396, 7397, 1, 0, 0, 0, 7397, 7398, 5, 847, 0, 0, 7398, 7399, 3, 666, 333, 0, 7399, 7400, 5, 618, 0, 0, 7400, 7401, 5, 38, 0, 0, 7401, 7402, 5, 288, 0, 0, 7402, 659, 1, 0, 0, 0, 7403, 7404, 5, 2306, 0, 0, 7404, 7407, 5, 102, 0, 0, 7405, 7406, 5, 2244, 0, 0, 7406, 7408, 5, 2441, 0, 0, 7407, 7405, 1, 0, 0, 0, 7407, 7408, 1, 0, 0, 0, 7408, 661, 1, 0, 0, 0, 7409, 7410, 5, 683, 0, 0, 7410, 7411, 5, 160, 0, 0, 7411, 7412, 3, 664, 332, 0, 7412, 663, 1, 0, 0, 0, 7413, 7414, 5, 2442, 0, 0, 7414, 665, 1, 0, 0, 0, 7415, 7416, 5, 2441, 0, 0, 7416, 667, 1, 0, 0, 0, 7417, 7418, 5, 2442, 0, 0, 7418, 669, 1, 0, 0, 0, 7419, 7424, 5, 46, 0, 0, 7420, 7421, 5, 2081, 0, 0, 7421, 7425, 3, 2330, 1165, 0, 7422, 7423, 5, 715, 0, 0, 7423, 7425, 3, 2316, 1158, 0, 7424, 7420, 1, 0, 0, 0, 7424, 7422, 1, 0, 0, 0, 7425, 7427, 1, 0, 0, 0, 7426, 7428, 3, 672, 336, 0, 7427, 7426, 1, 0, 0, 0, 7427, 7428, 1, 0, 0, 0, 7428, 7433, 1, 0, 0, 0, 7429, 7430, 5, 46, 0, 0, 7430, 7431, 5, 220, 0, 0, 7431, 7433, 3, 464, 232, 0, 7432, 7419, 1, 0, 0, 0, 7432, 7429, 1, 0, 0, 0, 7433, 7460, 1, 0, 0, 0, 7434, 7461, 3, 674, 337, 0, 7435, 7461, 3, 676, 338, 0, 7436, 7438, 5, 525, 0, 0, 7437, 7439, 5, 1947, 0, 0, 7438, 7437, 1, 0, 0, 0, 7438, 7439, 1, 0, 0, 0, 7439, 7440, 1, 0, 0, 0, 7440, 7442, 5, 1744, 0, 0, 7441, 7443, 3, 678, 339, 0, 7442, 7441, 1, 0, 0, 0, 7442, 7443, 1, 0, 0, 0, 7443, 7447, 1, 0, 0, 0, 7444, 7445, 5, 1612, 0, 0, 7445, 7446, 5, 2439, 0, 0, 7446, 7448, 7, 75, 0, 0, 7447, 7444, 1, 0, 0, 0, 7447, 7448, 1, 0, 0, 0, 7448, 7461, 1, 0, 0, 0, 7449, 7450, 5, 860, 0, 0, 7450, 7451, 5, 189, 0, 0, 7451, 7453, 5, 1605, 0, 0, 7452, 7454, 3, 682, 341, 0, 7453, 7452, 1, 0, 0, 0, 7453, 7454, 1, 0, 0, 0, 7454, 7461, 1, 0, 0, 0, 7455, 7457, 5, 401, 0, 0, 7456, 7458, 5, 1947, 0, 0, 7457, 7456, 1, 0, 0, 0, 7457, 7458, 1, 0, 0, 0, 7458, 7459, 1, 0, 0, 0, 7459, 7461, 5, 1744, 0, 0, 7460, 7434, 1, 0, 0, 0, 7460, 7435, 1, 0, 0, 0, 7460, 7436, 1, 0, 0, 0, 7460, 7449, 1, 0, 0, 0, 7460, 7455, 1, 0, 0, 0, 7461, 671, 1, 0, 0, 0, 7462, 7479, 5, 1346, 0, 0, 7463, 7464, 5, 2445, 0, 0, 7464, 7465, 3, 1688, 844, 0, 7465, 7466, 5, 2446, 0, 0, 7466, 7480, 1, 0, 0, 0, 7467, 7468, 5, 618, 0, 0, 7468, 7469, 5, 2445, 0, 0, 7469, 7474, 3, 684, 342, 0, 7470, 7471, 5, 2451, 0, 0, 7471, 7473, 3, 684, 342, 0, 7472, 7470, 1, 0, 0, 0, 7473, 7476, 1, 0, 0, 0, 7474, 7472, 1, 0, 0, 0, 7474, 7475, 1, 0, 0, 0, 7475, 7477, 1, 0, 0, 0, 7476, 7474, 1, 0, 0, 0, 7477, 7478, 5, 2446, 0, 0, 7478, 7480, 1, 0, 0, 0, 7479, 7463, 1, 0, 0, 0, 7479, 7467, 1, 0, 0, 0, 7480, 7501, 1, 0, 0, 0, 7481, 7498, 5, 1773, 0, 0, 7482, 7483, 5, 2445, 0, 0, 7483, 7484, 3, 1148, 574, 0, 7484, 7485, 5, 2446, 0, 0, 7485, 7499, 1, 0, 0, 0, 7486, 7487, 5, 618, 0, 0, 7487, 7488, 5, 2445, 0, 0, 7488, 7493, 3, 686, 343, 0, 7489, 7490, 5, 2451, 0, 0, 7490, 7492, 3, 686, 343, 0, 7491, 7489, 1, 0, 0, 0, 7492, 7495, 1, 0, 0, 0, 7493, 7491, 1, 0, 0, 0, 7493, 7494, 1, 0, 0, 0, 7494, 7496, 1, 0, 0, 0, 7495, 7493, 1, 0, 0, 0, 7496, 7497, 5, 2446, 0, 0, 7497, 7499, 1, 0, 0, 0, 7498, 7482, 1, 0, 0, 0, 7498, 7486, 1, 0, 0, 0, 7499, 7501, 1, 0, 0, 0, 7500, 7462, 1, 0, 0, 0, 7500, 7481, 1, 0, 0, 0, 7501, 673, 1, 0, 0, 0, 7502, 7503, 5, 2251, 0, 0, 7503, 7504, 5, 1528, 0, 0, 7504, 7509, 5, 2205, 0, 0, 7505, 7506, 5, 1669, 0, 0, 7506, 7507, 5, 347, 0, 0, 7507, 7508, 5, 2139, 0, 0, 7508, 7510, 5, 1226, 0, 0, 7509, 7505, 1, 0, 0, 0, 7509, 7510, 1, 0, 0, 0, 7510, 7532, 1, 0, 0, 0, 7511, 7512, 5, 2251, 0, 0, 7512, 7523, 5, 1769, 0, 0, 7513, 7514, 5, 179, 0, 0, 7514, 7524, 5, 576, 0, 0, 7515, 7517, 5, 179, 0, 0, 7516, 7518, 3, 680, 340, 0, 7517, 7516, 1, 0, 0, 0, 7517, 7518, 1, 0, 0, 0, 7518, 7520, 1, 0, 0, 0, 7519, 7521, 3, 2262, 1131, 0, 7520, 7519, 1, 0, 0, 0, 7520, 7521, 1, 0, 0, 0, 7521, 7524, 1, 0, 0, 0, 7522, 7524, 5, 179, 0, 0, 7523, 7513, 1, 0, 0, 0, 7523, 7515, 1, 0, 0, 0, 7523, 7522, 1, 0, 0, 0, 7523, 7524, 1, 0, 0, 0, 7524, 7526, 1, 0, 0, 0, 7525, 7527, 3, 680, 340, 0, 7526, 7525, 1, 0, 0, 0, 7526, 7527, 1, 0, 0, 0, 7527, 7529, 1, 0, 0, 0, 7528, 7530, 3, 2262, 1131, 0, 7529, 7528, 1, 0, 0, 0, 7529, 7530, 1, 0, 0, 0, 7530, 7532, 1, 0, 0, 0, 7531, 7502, 1, 0, 0, 0, 7531, 7511, 1, 0, 0, 0, 7532, 675, 1, 0, 0, 0, 7533, 7535, 5, 260, 0, 0, 7534, 7536, 5, 1947, 0, 0, 7535, 7534, 1, 0, 0, 0, 7535, 7536, 1, 0, 0, 0, 7536, 7537, 1, 0, 0, 0, 7537, 7539, 5, 1744, 0, 0, 7538, 7540, 3, 678, 339, 0, 7539, 7538, 1, 0, 0, 0, 7539, 7540, 1, 0, 0, 0, 7540, 677, 1, 0, 0, 0, 7541, 7589, 5, 618, 0, 0, 7542, 7546, 5, 2081, 0, 0, 7543, 7545, 3, 678, 339, 0, 7544, 7543, 1, 0, 0, 0, 7545, 7548, 1, 0, 0, 0, 7546, 7544, 1, 0, 0, 0, 7546, 7547, 1, 0, 0, 0, 7547, 7590, 1, 0, 0, 0, 7548, 7546, 1, 0, 0, 0, 7549, 7568, 5, 38, 0, 0, 7550, 7552, 5, 711, 0, 0, 7551, 7550, 1, 0, 0, 0, 7551, 7552, 1, 0, 0, 0, 7552, 7553, 1, 0, 0, 0, 7553, 7556, 5, 238, 0, 0, 7554, 7555, 5, 1697, 0, 0, 7555, 7557, 5, 2439, 0, 0, 7556, 7554, 1, 0, 0, 0, 7556, 7557, 1, 0, 0, 0, 7557, 7561, 1, 0, 0, 0, 7558, 7560, 3, 678, 339, 0, 7559, 7558, 1, 0, 0, 0, 7560, 7563, 1, 0, 0, 0, 7561, 7559, 1, 0, 0, 0, 7561, 7562, 1, 0, 0, 0, 7562, 7569, 1, 0, 0, 0, 7563, 7561, 1, 0, 0, 0, 7564, 7566, 5, 871, 0, 0, 7565, 7564, 1, 0, 0, 0, 7565, 7566, 1, 0, 0, 0, 7566, 7567, 1, 0, 0, 0, 7567, 7569, 5, 712, 0, 0, 7568, 7551, 1, 0, 0, 0, 7568, 7565, 1, 0, 0, 0, 7569, 7590, 1, 0, 0, 0, 7570, 7573, 5, 238, 0, 0, 7571, 7572, 5, 1697, 0, 0, 7572, 7574, 5, 2439, 0, 0, 7573, 7571, 1, 0, 0, 0, 7573, 7574, 1, 0, 0, 0, 7574, 7579, 1, 0, 0, 0, 7575, 7576, 3, 2328, 1164, 0, 7576, 7577, 5, 1697, 0, 0, 7577, 7578, 5, 2439, 0, 0, 7578, 7580, 1, 0, 0, 0, 7579, 7575, 1, 0, 0, 0, 7580, 7581, 1, 0, 0, 0, 7581, 7579, 1, 0, 0, 0, 7581, 7582, 1, 0, 0, 0, 7582, 7586, 1, 0, 0, 0, 7583, 7585, 3, 678, 339, 0, 7584, 7583, 1, 0, 0, 0, 7585, 7588, 1, 0, 0, 0, 7586, 7584, 1, 0, 0, 0, 7586, 7587, 1, 0, 0, 0, 7587, 7590, 1, 0, 0, 0, 7588, 7586, 1, 0, 0, 0, 7589, 7542, 1, 0, 0, 0, 7589, 7549, 1, 0, 0, 0, 7589, 7570, 1, 0, 0, 0, 7590, 679, 1, 0, 0, 0, 7591, 7592, 7, 76, 0, 0, 7592, 681, 1, 0, 0, 0, 7593, 7595, 5, 777, 0, 0, 7594, 7596, 3, 2330, 1165, 0, 7595, 7594, 1, 0, 0, 0, 7595, 7596, 1, 0, 0, 0, 7596, 683, 1, 0, 0, 0, 7597, 7601, 3, 2176, 1088, 0, 7598, 7599, 5, 2106, 0, 0, 7599, 7601, 3, 2388, 1194, 0, 7600, 7597, 1, 0, 0, 0, 7600, 7598, 1, 0, 0, 0, 7601, 685, 1, 0, 0, 0, 7602, 7606, 3, 2176, 1088, 0, 7603, 7604, 5, 2106, 0, 0, 7604, 7606, 3, 2388, 1194, 0, 7605, 7602, 1, 0, 0, 0, 7605, 7603, 1, 0, 0, 0, 7606, 687, 1, 0, 0, 0, 7607, 7608, 5, 77, 0, 0, 7608, 7609, 5, 1744, 0, 0, 7609, 7612, 5, 2306, 0, 0, 7610, 7613, 3, 690, 345, 0, 7611, 7613, 3, 692, 346, 0, 7612, 7610, 1, 0, 0, 0, 7612, 7611, 1, 0, 0, 0, 7613, 7615, 1, 0, 0, 0, 7614, 7616, 3, 712, 356, 0, 7615, 7614, 1, 0, 0, 0, 7615, 7616, 1, 0, 0, 0, 7616, 689, 1, 0, 0, 0, 7617, 7618, 5, 238, 0, 0, 7618, 7619, 3, 2330, 1165, 0, 7619, 7620, 5, 2438, 0, 0, 7620, 7628, 3, 2328, 1164, 0, 7621, 7622, 5, 2451, 0, 0, 7622, 7623, 3, 2330, 1165, 0, 7623, 7624, 5, 2438, 0, 0, 7624, 7625, 3, 2328, 1164, 0, 7625, 7627, 1, 0, 0, 0, 7626, 7621, 1, 0, 0, 0, 7627, 7630, 1, 0, 0, 0, 7628, 7626, 1, 0, 0, 0, 7628, 7629, 1, 0, 0, 0, 7629, 7631, 1, 0, 0, 0, 7630, 7628, 1, 0, 0, 0, 7631, 7632, 3, 696, 348, 0, 7632, 691, 1, 0, 0, 0, 7633, 7634, 5, 631, 0, 0, 7634, 7639, 3, 2308, 1154, 0, 7635, 7636, 5, 2451, 0, 0, 7636, 7638, 3, 2308, 1154, 0, 7637, 7635, 1, 0, 0, 0, 7638, 7641, 1, 0, 0, 0, 7639, 7637, 1, 0, 0, 0, 7639, 7640, 1, 0, 0, 0, 7640, 7679, 1, 0, 0, 0, 7641, 7639, 1, 0, 0, 0, 7642, 7643, 5, 1328, 0, 0, 7643, 7648, 3, 2278, 1139, 0, 7644, 7645, 5, 2451, 0, 0, 7645, 7647, 3, 2278, 1139, 0, 7646, 7644, 1, 0, 0, 0, 7647, 7650, 1, 0, 0, 0, 7648, 7646, 1, 0, 0, 0, 7648, 7649, 1, 0, 0, 0, 7649, 7679, 1, 0, 0, 0, 7650, 7648, 1, 0, 0, 0, 7651, 7652, 5, 2163, 0, 0, 7652, 7657, 3, 2302, 1151, 0, 7653, 7654, 5, 2451, 0, 0, 7654, 7656, 3, 2302, 1151, 0, 7655, 7653, 1, 0, 0, 0, 7656, 7659, 1, 0, 0, 0, 7657, 7655, 1, 0, 0, 0, 7657, 7658, 1, 0, 0, 0, 7658, 7679, 1, 0, 0, 0, 7659, 7657, 1, 0, 0, 0, 7660, 7661, 5, 712, 0, 0, 7661, 7666, 3, 2316, 1158, 0, 7662, 7663, 5, 2451, 0, 0, 7663, 7665, 3, 2316, 1158, 0, 7664, 7662, 1, 0, 0, 0, 7665, 7668, 1, 0, 0, 0, 7666, 7664, 1, 0, 0, 0, 7666, 7667, 1, 0, 0, 0, 7667, 7679, 1, 0, 0, 0, 7668, 7666, 1, 0, 0, 0, 7669, 7670, 5, 730, 0, 0, 7670, 7675, 3, 694, 347, 0, 7671, 7672, 5, 2451, 0, 0, 7672, 7674, 3, 694, 347, 0, 7673, 7671, 1, 0, 0, 0, 7674, 7677, 1, 0, 0, 0, 7675, 7673, 1, 0, 0, 0, 7675, 7676, 1, 0, 0, 0, 7676, 7679, 1, 0, 0, 0, 7677, 7675, 1, 0, 0, 0, 7678, 7633, 1, 0, 0, 0, 7678, 7642, 1, 0, 0, 0, 7678, 7651, 1, 0, 0, 0, 7678, 7660, 1, 0, 0, 0, 7678, 7669, 1, 0, 0, 0, 7679, 7691, 1, 0, 0, 0, 7680, 7692, 3, 696, 348, 0, 7681, 7684, 3, 700, 350, 0, 7682, 7683, 5, 2451, 0, 0, 7683, 7685, 3, 708, 354, 0, 7684, 7682, 1, 0, 0, 0, 7684, 7685, 1, 0, 0, 0, 7685, 7692, 1, 0, 0, 0, 7686, 7689, 3, 708, 354, 0, 7687, 7688, 5, 2451, 0, 0, 7688, 7690, 3, 700, 350, 0, 7689, 7687, 1, 0, 0, 0, 7689, 7690, 1, 0, 0, 0, 7690, 7692, 1, 0, 0, 0, 7691, 7680, 1, 0, 0, 0, 7691, 7681, 1, 0, 0, 0, 7691, 7686, 1, 0, 0, 0, 7692, 693, 1, 0, 0, 0, 7693, 7694, 3, 2392, 1196, 0, 7694, 695, 1, 0, 0, 0, 7695, 7698, 5, 2244, 0, 0, 7696, 7699, 3, 698, 349, 0, 7697, 7699, 5, 1226, 0, 0, 7698, 7696, 1, 0, 0, 0, 7698, 7697, 1, 0, 0, 0, 7699, 697, 1, 0, 0, 0, 7700, 7701, 3, 2398, 1199, 0, 7701, 699, 1, 0, 0, 0, 7702, 7703, 5, 387, 0, 0, 7703, 7704, 5, 309, 0, 0, 7704, 7705, 5, 2445, 0, 0, 7705, 7706, 3, 702, 351, 0, 7706, 7707, 5, 2451, 0, 0, 7707, 7708, 3, 704, 352, 0, 7708, 7709, 5, 2451, 0, 0, 7709, 7710, 3, 706, 353, 0, 7710, 7711, 5, 2446, 0, 0, 7711, 701, 1, 0, 0, 0, 7712, 7713, 5, 2439, 0, 0, 7713, 703, 1, 0, 0, 0, 7714, 7715, 5, 2439, 0, 0, 7715, 705, 1, 0, 0, 0, 7716, 7717, 5, 2439, 0, 0, 7717, 707, 1, 0, 0, 0, 7718, 7719, 5, 387, 0, 0, 7719, 7720, 5, 1644, 0, 0, 7720, 7721, 3, 710, 355, 0, 7721, 709, 1, 0, 0, 0, 7722, 7723, 5, 2439, 0, 0, 7723, 711, 1, 0, 0, 0, 7724, 7725, 5, 2306, 0, 0, 7725, 7726, 7, 77, 0, 0, 7726, 7727, 5, 902, 0, 0, 7727, 7728, 5, 1760, 0, 0, 7728, 7729, 5, 2079, 0, 0, 7729, 713, 1, 0, 0, 0, 7730, 7731, 4, 357, 0, 0, 7731, 7775, 5, 85, 0, 0, 7732, 7733, 5, 1410, 0, 0, 7733, 7743, 3, 716, 358, 0, 7734, 7735, 7, 78, 0, 0, 7735, 7740, 3, 728, 364, 0, 7736, 7737, 5, 2451, 0, 0, 7737, 7739, 3, 728, 364, 0, 7738, 7736, 1, 0, 0, 0, 7739, 7742, 1, 0, 0, 0, 7740, 7738, 1, 0, 0, 0, 7740, 7741, 1, 0, 0, 0, 7741, 7744, 1, 0, 0, 0, 7742, 7740, 1, 0, 0, 0, 7743, 7734, 1, 0, 0, 0, 7743, 7744, 1, 0, 0, 0, 7744, 7750, 1, 0, 0, 0, 7745, 7747, 5, 2297, 0, 0, 7746, 7748, 5, 1202, 0, 0, 7747, 7746, 1, 0, 0, 0, 7747, 7748, 1, 0, 0, 0, 7748, 7749, 1, 0, 0, 0, 7749, 7751, 5, 1784, 0, 0, 7750, 7745, 1, 0, 0, 0, 7750, 7751, 1, 0, 0, 0, 7751, 7776, 1, 0, 0, 0, 7752, 7753, 5, 294, 0, 0, 7753, 7754, 5, 996, 0, 0, 7754, 7755, 3, 1010, 505, 0, 7755, 7756, 5, 84, 0, 0, 7756, 7761, 3, 2268, 1134, 0, 7757, 7758, 5, 2451, 0, 0, 7758, 7760, 3, 2268, 1134, 0, 7759, 7757, 1, 0, 0, 0, 7760, 7763, 1, 0, 0, 0, 7761, 7759, 1, 0, 0, 0, 7761, 7762, 1, 0, 0, 0, 7762, 7773, 1, 0, 0, 0, 7763, 7761, 1, 0, 0, 0, 7764, 7765, 5, 160, 0, 0, 7765, 7770, 3, 728, 364, 0, 7766, 7767, 5, 2451, 0, 0, 7767, 7769, 3, 728, 364, 0, 7768, 7766, 1, 0, 0, 0, 7769, 7772, 1, 0, 0, 0, 7770, 7768, 1, 0, 0, 0, 7770, 7771, 1, 0, 0, 0, 7771, 7774, 1, 0, 0, 0, 7772, 7770, 1, 0, 0, 0, 7773, 7764, 1, 0, 0, 0, 7773, 7774, 1, 0, 0, 0, 7774, 7776, 1, 0, 0, 0, 7775, 7732, 1, 0, 0, 0, 7775, 7752, 1, 0, 0, 0, 7776, 715, 1, 0, 0, 0, 7777, 7778, 3, 2390, 1195, 0, 7778, 717, 1, 0, 0, 0, 7779, 7790, 5, 85, 0, 0, 7780, 7785, 3, 724, 362, 0, 7781, 7786, 3, 726, 363, 0, 7782, 7783, 5, 736, 0, 0, 7783, 7784, 5, 1665, 0, 0, 7784, 7786, 5, 334, 0, 0, 7785, 7781, 1, 0, 0, 0, 7785, 7782, 1, 0, 0, 0, 7785, 7786, 1, 0, 0, 0, 7786, 7791, 1, 0, 0, 0, 7787, 7791, 3, 730, 365, 0, 7788, 7791, 5, 1017, 0, 0, 7789, 7791, 3, 720, 360, 0, 7790, 7780, 1, 0, 0, 0, 7790, 7787, 1, 0, 0, 0, 7790, 7788, 1, 0, 0, 0, 7790, 7789, 1, 0, 0, 0, 7791, 7794, 1, 0, 0, 0, 7792, 7793, 5, 160, 0, 0, 7793, 7795, 7, 79, 0, 0, 7794, 7792, 1, 0, 0, 0, 7794, 7795, 1, 0, 0, 0, 7795, 7801, 1, 0, 0, 0, 7796, 7798, 5, 2297, 0, 0, 7797, 7799, 5, 1202, 0, 0, 7798, 7797, 1, 0, 0, 0, 7798, 7799, 1, 0, 0, 0, 7799, 7800, 1, 0, 0, 0, 7800, 7802, 5, 1784, 0, 0, 7801, 7796, 1, 0, 0, 0, 7801, 7802, 1, 0, 0, 0, 7802, 7804, 1, 0, 0, 0, 7803, 7805, 3, 722, 361, 0, 7804, 7803, 1, 0, 0, 0, 7804, 7805, 1, 0, 0, 0, 7805, 719, 1, 0, 0, 0, 7806, 7807, 4, 360, 1, 0, 7807, 7808, 5, 425, 0, 0, 7808, 7809, 3, 726, 363, 0, 7809, 721, 1, 0, 0, 0, 7810, 7811, 4, 361, 2, 0, 7811, 7812, 5, 287, 0, 0, 7812, 7813, 5, 2469, 0, 0, 7813, 7814, 7, 80, 0, 0, 7814, 723, 1, 0, 0, 0, 7815, 7821, 3, 742, 371, 0, 7816, 7818, 5, 38, 0, 0, 7817, 7819, 5, 1740, 0, 0, 7818, 7817, 1, 0, 0, 0, 7818, 7819, 1, 0, 0, 0, 7819, 7821, 1, 0, 0, 0, 7820, 7815, 1, 0, 0, 0, 7820, 7816, 1, 0, 0, 0, 7821, 7832, 1, 0, 0, 0, 7822, 7828, 5, 2451, 0, 0, 7823, 7829, 3, 742, 371, 0, 7824, 7826, 5, 38, 0, 0, 7825, 7827, 5, 1740, 0, 0, 7826, 7825, 1, 0, 0, 0, 7826, 7827, 1, 0, 0, 0, 7827, 7829, 1, 0, 0, 0, 7828, 7823, 1, 0, 0, 0, 7828, 7824, 1, 0, 0, 0, 7829, 7831, 1, 0, 0, 0, 7830, 7822, 1, 0, 0, 0, 7831, 7834, 1, 0, 0, 0, 7832, 7830, 1, 0, 0, 0, 7832, 7833, 1, 0, 0, 0, 7833, 7852, 1, 0, 0, 0, 7834, 7832, 1, 0, 0, 0, 7835, 7839, 3, 2380, 1190, 0, 7836, 7837, 5, 38, 0, 0, 7837, 7839, 5, 1457, 0, 0, 7838, 7835, 1, 0, 0, 0, 7838, 7836, 1, 0, 0, 0, 7839, 7848, 1, 0, 0, 0, 7840, 7844, 5, 2451, 0, 0, 7841, 7845, 3, 2380, 1190, 0, 7842, 7843, 5, 38, 0, 0, 7843, 7845, 5, 1457, 0, 0, 7844, 7841, 1, 0, 0, 0, 7844, 7842, 1, 0, 0, 0, 7845, 7847, 1, 0, 0, 0, 7846, 7840, 1, 0, 0, 0, 7847, 7850, 1, 0, 0, 0, 7848, 7846, 1, 0, 0, 0, 7848, 7849, 1, 0, 0, 0, 7849, 7852, 1, 0, 0, 0, 7850, 7848, 1, 0, 0, 0, 7851, 7820, 1, 0, 0, 0, 7851, 7838, 1, 0, 0, 0, 7852, 725, 1, 0, 0, 0, 7853, 7854, 5, 160, 0, 0, 7854, 7859, 3, 728, 364, 0, 7855, 7856, 5, 2451, 0, 0, 7856, 7858, 3, 728, 364, 0, 7857, 7855, 1, 0, 0, 0, 7858, 7861, 1, 0, 0, 0, 7859, 7857, 1, 0, 0, 0, 7859, 7860, 1, 0, 0, 0, 7860, 727, 1, 0, 0, 0, 7861, 7859, 1, 0, 0, 0, 7862, 7863, 3, 2398, 1199, 0, 7863, 729, 1, 0, 0, 0, 7864, 7869, 3, 732, 366, 0, 7865, 7866, 5, 2451, 0, 0, 7866, 7868, 3, 732, 366, 0, 7867, 7865, 1, 0, 0, 0, 7868, 7871, 1, 0, 0, 0, 7869, 7867, 1, 0, 0, 0, 7869, 7870, 1, 0, 0, 0, 7870, 7874, 1, 0, 0, 0, 7871, 7869, 1, 0, 0, 0, 7872, 7874, 5, 38, 0, 0, 7873, 7864, 1, 0, 0, 0, 7873, 7872, 1, 0, 0, 0, 7874, 7875, 1, 0, 0, 0, 7875, 7876, 3, 734, 367, 0, 7876, 731, 1, 0, 0, 0, 7877, 7878, 7, 56, 0, 0, 7878, 733, 1, 0, 0, 0, 7879, 7892, 5, 1257, 0, 0, 7880, 7893, 3, 738, 369, 0, 7881, 7882, 5, 424, 0, 0, 7882, 7893, 3, 2398, 1199, 0, 7883, 7884, 5, 953, 0, 0, 7884, 7885, 5, 969, 0, 0, 7885, 7893, 3, 736, 368, 0, 7886, 7887, 4, 367, 3, 0, 7887, 7888, 5, 1720, 0, 0, 7888, 7889, 5, 2152, 0, 0, 7889, 7890, 5, 1461, 0, 0, 7890, 7893, 3, 740, 370, 0, 7891, 7893, 5, 387, 0, 0, 7892, 7880, 1, 0, 0, 0, 7892, 7881, 1, 0, 0, 0, 7892, 7883, 1, 0, 0, 0, 7892, 7886, 1, 0, 0, 0, 7892, 7891, 1, 0, 0, 0, 7893, 735, 1, 0, 0, 0, 7894, 7895, 3, 2392, 1196, 0, 7895, 7896, 5, 2438, 0, 0, 7896, 7898, 1, 0, 0, 0, 7897, 7894, 1, 0, 0, 0, 7897, 7898, 1, 0, 0, 0, 7898, 7899, 1, 0, 0, 0, 7899, 7900, 3, 2392, 1196, 0, 7900, 737, 1, 0, 0, 0, 7901, 7902, 3, 2392, 1196, 0, 7902, 7903, 5, 2438, 0, 0, 7903, 7905, 1, 0, 0, 0, 7904, 7901, 1, 0, 0, 0, 7904, 7905, 1, 0, 0, 0, 7905, 7906, 1, 0, 0, 0, 7906, 7907, 3, 2392, 1196, 0, 7907, 739, 1, 0, 0, 0, 7908, 7909, 3, 2392, 1196, 0, 7909, 7910, 5, 2438, 0, 0, 7910, 7912, 1, 0, 0, 0, 7911, 7908, 1, 0, 0, 0, 7911, 7912, 1, 0, 0, 0, 7912, 7913, 1, 0, 0, 0, 7913, 7914, 3, 2392, 1196, 0, 7914, 741, 1, 0, 0, 0, 7915, 7916, 5, 42, 0, 0, 7916, 7986, 5, 1947, 0, 0, 7917, 7986, 5, 220, 0, 0, 7918, 7986, 5, 294, 0, 0, 7919, 7920, 5, 348, 0, 0, 7920, 7986, 5, 859, 0, 0, 7921, 7986, 5, 420, 0, 0, 7922, 7986, 5, 424, 0, 0, 7923, 7986, 5, 715, 0, 0, 7924, 7925, 5, 917, 0, 0, 7925, 7986, 5, 2284, 0, 0, 7926, 7927, 5, 1202, 0, 0, 7927, 7986, 5, 543, 0, 0, 7928, 7986, 5, 1313, 0, 0, 7929, 7930, 4, 371, 4, 0, 7930, 7931, 5, 1407, 0, 0, 7931, 7986, 5, 348, 0, 0, 7932, 7986, 5, 1459, 0, 0, 7933, 7986, 5, 1461, 0, 0, 7934, 7935, 5, 1471, 0, 0, 7935, 7936, 5, 348, 0, 0, 7936, 7986, 5, 859, 0, 0, 7937, 7938, 5, 1471, 0, 0, 7938, 7986, 5, 1794, 0, 0, 7939, 7986, 5, 1591, 0, 0, 7940, 7941, 5, 1594, 0, 0, 7941, 7986, 5, 1643, 0, 0, 7942, 7986, 5, 1651, 0, 0, 7943, 7986, 5, 1665, 0, 0, 7944, 7986, 5, 1794, 0, 0, 7945, 7946, 5, 1947, 0, 0, 7946, 7986, 5, 85, 0, 0, 7947, 7948, 5, 1947, 0, 0, 7948, 7986, 5, 645, 0, 0, 7949, 7986, 5, 2081, 0, 0, 7950, 7986, 5, 2078, 0, 0, 7951, 7986, 5, 2155, 0, 0, 7952, 7986, 5, 2164, 0, 0, 7953, 7986, 5, 2235, 0, 0, 7954, 7986, 5, 2284, 0, 0, 7955, 7956, 5, 42, 0, 0, 7956, 7986, 5, 1651, 0, 0, 7957, 7958, 5, 42, 0, 0, 7958, 7986, 5, 2081, 0, 0, 7959, 7960, 5, 241, 0, 0, 7960, 7986, 5, 2081, 0, 0, 7961, 7962, 5, 401, 0, 0, 7962, 7986, 5, 2081, 0, 0, 7963, 7964, 5, 540, 0, 0, 7964, 7986, 5, 1459, 0, 0, 7965, 7966, 5, 645, 0, 0, 7966, 7986, 5, 424, 0, 0, 7967, 7968, 5, 645, 0, 0, 7968, 7986, 5, 1459, 0, 0, 7969, 7970, 5, 645, 0, 0, 7970, 7986, 5, 1651, 0, 0, 7971, 7972, 5, 645, 0, 0, 7972, 7986, 5, 2081, 0, 0, 7973, 7974, 5, 645, 0, 0, 7974, 7986, 5, 2164, 0, 0, 7975, 7976, 5, 754, 0, 0, 7976, 7986, 5, 2081, 0, 0, 7977, 7978, 5, 879, 0, 0, 7978, 7986, 5, 2081, 0, 0, 7979, 7980, 5, 1645, 0, 0, 7980, 7986, 5, 1651, 0, 0, 7981, 7982, 5, 1645, 0, 0, 7982, 7986, 5, 2081, 0, 0, 7983, 7984, 5, 2205, 0, 0, 7984, 7986, 5, 2081, 0, 0, 7985, 7915, 1, 0, 0, 0, 7985, 7917, 1, 0, 0, 0, 7985, 7918, 1, 0, 0, 0, 7985, 7919, 1, 0, 0, 0, 7985, 7921, 1, 0, 0, 0, 7985, 7922, 1, 0, 0, 0, 7985, 7923, 1, 0, 0, 0, 7985, 7924, 1, 0, 0, 0, 7985, 7926, 1, 0, 0, 0, 7985, 7928, 1, 0, 0, 0, 7985, 7929, 1, 0, 0, 0, 7985, 7932, 1, 0, 0, 0, 7985, 7933, 1, 0, 0, 0, 7985, 7934, 1, 0, 0, 0, 7985, 7937, 1, 0, 0, 0, 7985, 7939, 1, 0, 0, 0, 7985, 7940, 1, 0, 0, 0, 7985, 7942, 1, 0, 0, 0, 7985, 7943, 1, 0, 0, 0, 7985, 7944, 1, 0, 0, 0, 7985, 7945, 1, 0, 0, 0, 7985, 7947, 1, 0, 0, 0, 7985, 7949, 1, 0, 0, 0, 7985, 7950, 1, 0, 0, 0, 7985, 7951, 1, 0, 0, 0, 7985, 7952, 1, 0, 0, 0, 7985, 7953, 1, 0, 0, 0, 7985, 7954, 1, 0, 0, 0, 7985, 7955, 1, 0, 0, 0, 7985, 7957, 1, 0, 0, 0, 7985, 7959, 1, 0, 0, 0, 7985, 7961, 1, 0, 0, 0, 7985, 7963, 1, 0, 0, 0, 7985, 7965, 1, 0, 0, 0, 7985, 7967, 1, 0, 0, 0, 7985, 7969, 1, 0, 0, 0, 7985, 7971, 1, 0, 0, 0, 7985, 7973, 1, 0, 0, 0, 7985, 7975, 1, 0, 0, 0, 7985, 7977, 1, 0, 0, 0, 7985, 7979, 1, 0, 0, 0, 7985, 7981, 1, 0, 0, 0, 7985, 7983, 1, 0, 0, 0, 7986, 743, 1, 0, 0, 0, 7987, 7988, 5, 467, 0, 0, 7988, 7989, 5, 715, 0, 0, 7989, 7992, 3, 2316, 1158, 0, 7990, 7991, 5, 689, 0, 0, 7991, 7993, 5, 543, 0, 0, 7992, 7990, 1, 0, 0, 0, 7992, 7993, 1, 0, 0, 0, 7993, 745, 1, 0, 0, 0, 7994, 7995, 5, 434, 0, 0, 7995, 7996, 5, 1744, 0, 0, 7996, 8116, 5, 626, 0, 0, 7997, 8001, 5, 238, 0, 0, 7998, 7999, 3, 2274, 1137, 0, 7999, 8000, 5, 2438, 0, 0, 8000, 8002, 1, 0, 0, 0, 8001, 7998, 1, 0, 0, 0, 8001, 8002, 1, 0, 0, 0, 8002, 8003, 1, 0, 0, 0, 8003, 8004, 3, 2392, 1196, 0, 8004, 8005, 5, 2438, 0, 0, 8005, 8018, 3, 2392, 1196, 0, 8006, 8010, 5, 2451, 0, 0, 8007, 8008, 3, 2274, 1137, 0, 8008, 8009, 5, 2438, 0, 0, 8009, 8011, 1, 0, 0, 0, 8010, 8007, 1, 0, 0, 0, 8010, 8011, 1, 0, 0, 0, 8011, 8012, 1, 0, 0, 0, 8012, 8013, 3, 2392, 1196, 0, 8013, 8014, 5, 2438, 0, 0, 8014, 8015, 3, 2392, 1196, 0, 8015, 8017, 1, 0, 0, 0, 8016, 8006, 1, 0, 0, 0, 8017, 8020, 1, 0, 0, 0, 8018, 8016, 1, 0, 0, 0, 8018, 8019, 1, 0, 0, 0, 8019, 8117, 1, 0, 0, 0, 8020, 8018, 1, 0, 0, 0, 8021, 8025, 5, 631, 0, 0, 8022, 8023, 3, 2274, 1137, 0, 8023, 8024, 5, 2438, 0, 0, 8024, 8026, 1, 0, 0, 0, 8025, 8022, 1, 0, 0, 0, 8025, 8026, 1, 0, 0, 0, 8026, 8027, 1, 0, 0, 0, 8027, 8037, 3, 2392, 1196, 0, 8028, 8032, 5, 2451, 0, 0, 8029, 8030, 3, 2274, 1137, 0, 8030, 8031, 5, 2438, 0, 0, 8031, 8033, 1, 0, 0, 0, 8032, 8029, 1, 0, 0, 0, 8032, 8033, 1, 0, 0, 0, 8033, 8034, 1, 0, 0, 0, 8034, 8036, 3, 2392, 1196, 0, 8035, 8028, 1, 0, 0, 0, 8036, 8039, 1, 0, 0, 0, 8037, 8035, 1, 0, 0, 0, 8037, 8038, 1, 0, 0, 0, 8038, 8117, 1, 0, 0, 0, 8039, 8037, 1, 0, 0, 0, 8040, 8044, 5, 1328, 0, 0, 8041, 8042, 3, 2274, 1137, 0, 8042, 8043, 5, 2438, 0, 0, 8043, 8045, 1, 0, 0, 0, 8044, 8041, 1, 0, 0, 0, 8044, 8045, 1, 0, 0, 0, 8045, 8046, 1, 0, 0, 0, 8046, 8056, 3, 2392, 1196, 0, 8047, 8051, 5, 2451, 0, 0, 8048, 8049, 3, 2274, 1137, 0, 8049, 8050, 5, 2438, 0, 0, 8050, 8052, 1, 0, 0, 0, 8051, 8048, 1, 0, 0, 0, 8051, 8052, 1, 0, 0, 0, 8052, 8053, 1, 0, 0, 0, 8053, 8055, 3, 2392, 1196, 0, 8054, 8047, 1, 0, 0, 0, 8055, 8058, 1, 0, 0, 0, 8056, 8054, 1, 0, 0, 0, 8056, 8057, 1, 0, 0, 0, 8057, 8117, 1, 0, 0, 0, 8058, 8056, 1, 0, 0, 0, 8059, 8063, 5, 2163, 0, 0, 8060, 8061, 3, 2274, 1137, 0, 8061, 8062, 5, 2438, 0, 0, 8062, 8064, 1, 0, 0, 0, 8063, 8060, 1, 0, 0, 0, 8063, 8064, 1, 0, 0, 0, 8064, 8065, 1, 0, 0, 0, 8065, 8075, 3, 2392, 1196, 0, 8066, 8070, 5, 2451, 0, 0, 8067, 8068, 3, 2274, 1137, 0, 8068, 8069, 5, 2438, 0, 0, 8069, 8071, 1, 0, 0, 0, 8070, 8067, 1, 0, 0, 0, 8070, 8071, 1, 0, 0, 0, 8071, 8072, 1, 0, 0, 0, 8072, 8074, 3, 2392, 1196, 0, 8073, 8066, 1, 0, 0, 0, 8074, 8077, 1, 0, 0, 0, 8075, 8073, 1, 0, 0, 0, 8075, 8076, 1, 0, 0, 0, 8076, 8117, 1, 0, 0, 0, 8077, 8075, 1, 0, 0, 0, 8078, 8082, 5, 712, 0, 0, 8079, 8080, 3, 2274, 1137, 0, 8080, 8081, 5, 2438, 0, 0, 8081, 8083, 1, 0, 0, 0, 8082, 8079, 1, 0, 0, 0, 8082, 8083, 1, 0, 0, 0, 8083, 8084, 1, 0, 0, 0, 8084, 8094, 3, 2392, 1196, 0, 8085, 8089, 5, 2451, 0, 0, 8086, 8087, 3, 2274, 1137, 0, 8087, 8088, 5, 2438, 0, 0, 8088, 8090, 1, 0, 0, 0, 8089, 8086, 1, 0, 0, 0, 8089, 8090, 1, 0, 0, 0, 8090, 8091, 1, 0, 0, 0, 8091, 8093, 3, 2392, 1196, 0, 8092, 8085, 1, 0, 0, 0, 8093, 8096, 1, 0, 0, 0, 8094, 8092, 1, 0, 0, 0, 8094, 8095, 1, 0, 0, 0, 8095, 8117, 1, 0, 0, 0, 8096, 8094, 1, 0, 0, 0, 8097, 8101, 5, 730, 0, 0, 8098, 8099, 3, 2274, 1137, 0, 8099, 8100, 5, 2438, 0, 0, 8100, 8102, 1, 0, 0, 0, 8101, 8098, 1, 0, 0, 0, 8101, 8102, 1, 0, 0, 0, 8102, 8103, 1, 0, 0, 0, 8103, 8113, 3, 2392, 1196, 0, 8104, 8108, 5, 2451, 0, 0, 8105, 8106, 3, 2274, 1137, 0, 8106, 8107, 5, 2438, 0, 0, 8107, 8109, 1, 0, 0, 0, 8108, 8105, 1, 0, 0, 0, 8108, 8109, 1, 0, 0, 0, 8109, 8110, 1, 0, 0, 0, 8110, 8112, 3, 2392, 1196, 0, 8111, 8104, 1, 0, 0, 0, 8112, 8115, 1, 0, 0, 0, 8113, 8111, 1, 0, 0, 0, 8113, 8114, 1, 0, 0, 0, 8114, 8117, 1, 0, 0, 0, 8115, 8113, 1, 0, 0, 0, 8116, 7997, 1, 0, 0, 0, 8116, 8021, 1, 0, 0, 0, 8116, 8040, 1, 0, 0, 0, 8116, 8059, 1, 0, 0, 0, 8116, 8078, 1, 0, 0, 0, 8116, 8097, 1, 0, 0, 0, 8117, 8119, 1, 0, 0, 0, 8118, 8120, 5, 614, 0, 0, 8119, 8118, 1, 0, 0, 0, 8119, 8120, 1, 0, 0, 0, 8120, 747, 1, 0, 0, 0, 8121, 8122, 5, 467, 0, 0, 8122, 8126, 5, 729, 0, 0, 8123, 8124, 3, 2274, 1137, 0, 8124, 8125, 5, 2438, 0, 0, 8125, 8127, 1, 0, 0, 0, 8126, 8123, 1, 0, 0, 0, 8126, 8127, 1, 0, 0, 0, 8127, 8128, 1, 0, 0, 0, 8128, 8130, 3, 2392, 1196, 0, 8129, 8131, 5, 614, 0, 0, 8130, 8129, 1, 0, 0, 0, 8130, 8131, 1, 0, 0, 0, 8131, 749, 1, 0, 0, 0, 8132, 8133, 5, 467, 0, 0, 8133, 8134, 5, 744, 0, 0, 8134, 8135, 5, 792, 0, 0, 8135, 8139, 5, 647, 0, 0, 8136, 8137, 3, 2274, 1137, 0, 8137, 8138, 5, 2438, 0, 0, 8138, 8140, 1, 0, 0, 0, 8139, 8136, 1, 0, 0, 0, 8139, 8140, 1, 0, 0, 0, 8140, 8141, 1, 0, 0, 0, 8141, 8142, 3, 2392, 1196, 0, 8142, 751, 1, 0, 0, 0, 8143, 8144, 5, 603, 0, 0, 8144, 8145, 5, 2081, 0, 0, 8145, 8150, 3, 2330, 1165, 0, 8146, 8147, 5, 2451, 0, 0, 8147, 8149, 3, 2330, 1165, 0, 8148, 8146, 1, 0, 0, 0, 8149, 8152, 1, 0, 0, 0, 8150, 8148, 1, 0, 0, 0, 8150, 8151, 1, 0, 0, 0, 8151, 8153, 1, 0, 0, 0, 8152, 8150, 1, 0, 0, 0, 8153, 8172, 5, 2139, 0, 0, 8154, 8155, 7, 81, 0, 0, 8155, 8160, 3, 2070, 1035, 0, 8156, 8157, 5, 1572, 0, 0, 8157, 8158, 5, 1409, 0, 0, 8158, 8160, 3, 754, 377, 0, 8159, 8154, 1, 0, 0, 0, 8159, 8156, 1, 0, 0, 0, 8160, 8163, 1, 0, 0, 0, 8161, 8162, 7, 17, 0, 0, 8162, 8164, 5, 2154, 0, 0, 8163, 8161, 1, 0, 0, 0, 8163, 8164, 1, 0, 0, 0, 8164, 8173, 1, 0, 0, 0, 8165, 8166, 5, 112, 0, 0, 8166, 8170, 5, 467, 0, 0, 8167, 8168, 5, 1557, 0, 0, 8168, 8169, 5, 2139, 0, 0, 8169, 8171, 3, 2330, 1165, 0, 8170, 8167, 1, 0, 0, 0, 8170, 8171, 1, 0, 0, 0, 8171, 8173, 1, 0, 0, 0, 8172, 8159, 1, 0, 0, 0, 8172, 8165, 1, 0, 0, 0, 8173, 753, 1, 0, 0, 0, 8174, 8179, 3, 2390, 1195, 0, 8175, 8176, 5, 2438, 0, 0, 8176, 8178, 3, 2392, 1196, 0, 8177, 8175, 1, 0, 0, 0, 8178, 8181, 1, 0, 0, 0, 8179, 8177, 1, 0, 0, 0, 8179, 8180, 1, 0, 0, 0, 8180, 755, 1, 0, 0, 0, 8181, 8179, 1, 0, 0, 0, 8182, 8196, 5, 1473, 0, 0, 8183, 8184, 7, 82, 0, 0, 8184, 8197, 3, 2392, 1196, 0, 8185, 8187, 5, 2078, 0, 0, 8186, 8188, 5, 1669, 0, 0, 8187, 8186, 1, 0, 0, 0, 8187, 8188, 1, 0, 0, 0, 8188, 8189, 1, 0, 0, 0, 8189, 8192, 3, 2392, 1196, 0, 8190, 8191, 5, 2235, 0, 0, 8191, 8193, 3, 2392, 1196, 0, 8192, 8190, 1, 0, 0, 0, 8192, 8193, 1, 0, 0, 0, 8193, 8197, 1, 0, 0, 0, 8194, 8197, 5, 1516, 0, 0, 8195, 8197, 5, 367, 0, 0, 8196, 8183, 1, 0, 0, 0, 8196, 8185, 1, 0, 0, 0, 8196, 8194, 1, 0, 0, 0, 8196, 8195, 1, 0, 0, 0, 8197, 757, 1, 0, 0, 0, 8198, 8210, 5, 1057, 0, 0, 8199, 8201, 3, 724, 362, 0, 8200, 8202, 3, 726, 363, 0, 8201, 8200, 1, 0, 0, 0, 8201, 8202, 1, 0, 0, 0, 8202, 8211, 1, 0, 0, 0, 8203, 8211, 3, 730, 365, 0, 8204, 8211, 5, 1017, 0, 0, 8205, 8206, 5, 425, 0, 0, 8206, 8208, 5, 865, 0, 0, 8207, 8209, 3, 726, 363, 0, 8208, 8207, 1, 0, 0, 0, 8208, 8209, 1, 0, 0, 0, 8209, 8211, 1, 0, 0, 0, 8210, 8199, 1, 0, 0, 0, 8210, 8203, 1, 0, 0, 0, 8210, 8204, 1, 0, 0, 0, 8210, 8205, 1, 0, 0, 0, 8211, 8217, 1, 0, 0, 0, 8212, 8214, 5, 2297, 0, 0, 8213, 8215, 5, 1202, 0, 0, 8214, 8213, 1, 0, 0, 0, 8214, 8215, 1, 0, 0, 0, 8215, 8216, 1, 0, 0, 0, 8216, 8218, 5, 1784, 0, 0, 8217, 8212, 1, 0, 0, 0, 8217, 8218, 1, 0, 0, 0, 8218, 8220, 1, 0, 0, 0, 8219, 8221, 3, 764, 382, 0, 8220, 8219, 1, 0, 0, 0, 8220, 8221, 1, 0, 0, 0, 8221, 759, 1, 0, 0, 0, 8222, 8223, 5, 1557, 0, 0, 8223, 8224, 3, 738, 369, 0, 8224, 8225, 5, 2139, 0, 0, 8225, 8226, 3, 738, 369, 0, 8226, 761, 1, 0, 0, 0, 8227, 8239, 5, 645, 0, 0, 8228, 8230, 5, 2451, 0, 0, 8229, 8228, 1, 0, 0, 0, 8229, 8230, 1, 0, 0, 0, 8230, 8237, 1, 0, 0, 0, 8231, 8238, 3, 2296, 1148, 0, 8232, 8238, 3, 2380, 1190, 0, 8233, 8235, 3, 2378, 1189, 0, 8234, 8236, 3, 2348, 1174, 0, 8235, 8234, 1, 0, 0, 0, 8235, 8236, 1, 0, 0, 0, 8236, 8238, 1, 0, 0, 0, 8237, 8231, 1, 0, 0, 0, 8237, 8232, 1, 0, 0, 0, 8237, 8233, 1, 0, 0, 0, 8238, 8240, 1, 0, 0, 0, 8239, 8229, 1, 0, 0, 0, 8240, 8241, 1, 0, 0, 0, 8241, 8239, 1, 0, 0, 0, 8241, 8242, 1, 0, 0, 0, 8242, 8245, 1, 0, 0, 0, 8243, 8244, 5, 1257, 0, 0, 8244, 8246, 3, 2344, 1172, 0, 8245, 8243, 1, 0, 0, 0, 8245, 8246, 1, 0, 0, 0, 8246, 8247, 1, 0, 0, 0, 8247, 8250, 5, 2139, 0, 0, 8248, 8251, 3, 2294, 1147, 0, 8249, 8251, 5, 1471, 0, 0, 8250, 8248, 1, 0, 0, 0, 8250, 8249, 1, 0, 0, 0, 8251, 8259, 1, 0, 0, 0, 8252, 8255, 5, 2451, 0, 0, 8253, 8256, 3, 2294, 1147, 0, 8254, 8256, 5, 1471, 0, 0, 8255, 8253, 1, 0, 0, 0, 8255, 8254, 1, 0, 0, 0, 8256, 8258, 1, 0, 0, 0, 8257, 8252, 1, 0, 0, 0, 8258, 8261, 1, 0, 0, 0, 8259, 8257, 1, 0, 0, 0, 8259, 8260, 1, 0, 0, 0, 8260, 8265, 1, 0, 0, 0, 8261, 8259, 1, 0, 0, 0, 8262, 8263, 5, 2306, 0, 0, 8263, 8264, 7, 83, 0, 0, 8264, 8266, 5, 1270, 0, 0, 8265, 8262, 1, 0, 0, 0, 8265, 8266, 1, 0, 0, 0, 8266, 8270, 1, 0, 0, 0, 8267, 8268, 5, 2306, 0, 0, 8268, 8269, 5, 672, 0, 0, 8269, 8271, 5, 1270, 0, 0, 8270, 8267, 1, 0, 0, 0, 8270, 8271, 1, 0, 0, 0, 8271, 8275, 1, 0, 0, 0, 8272, 8273, 5, 2306, 0, 0, 8273, 8274, 5, 645, 0, 0, 8274, 8276, 5, 1270, 0, 0, 8275, 8272, 1, 0, 0, 0, 8275, 8276, 1, 0, 0, 0, 8276, 8278, 1, 0, 0, 0, 8277, 8279, 3, 764, 382, 0, 8278, 8277, 1, 0, 0, 0, 8278, 8279, 1, 0, 0, 0, 8279, 763, 1, 0, 0, 0, 8280, 8281, 5, 287, 0, 0, 8281, 8282, 5, 2469, 0, 0, 8282, 8283, 7, 80, 0, 0, 8283, 765, 1, 0, 0, 0, 8284, 8293, 5, 1587, 0, 0, 8285, 8288, 3, 768, 384, 0, 8286, 8288, 3, 772, 386, 0, 8287, 8285, 1, 0, 0, 0, 8287, 8286, 1, 0, 0, 0, 8288, 8290, 1, 0, 0, 0, 8289, 8291, 3, 764, 382, 0, 8290, 8289, 1, 0, 0, 0, 8290, 8291, 1, 0, 0, 0, 8291, 8294, 1, 0, 0, 0, 8292, 8294, 3, 776, 388, 0, 8293, 8287, 1, 0, 0, 0, 8293, 8292, 1, 0, 0, 0, 8294, 767, 1, 0, 0, 0, 8295, 8300, 3, 2380, 1190, 0, 8296, 8300, 3, 2296, 1148, 0, 8297, 8298, 5, 38, 0, 0, 8298, 8300, 5, 1457, 0, 0, 8299, 8295, 1, 0, 0, 0, 8299, 8296, 1, 0, 0, 0, 8299, 8297, 1, 0, 0, 0, 8300, 8301, 1, 0, 0, 0, 8301, 8302, 5, 626, 0, 0, 8302, 8303, 3, 770, 385, 0, 8303, 769, 1, 0, 0, 0, 8304, 8307, 3, 2392, 1196, 0, 8305, 8307, 5, 1471, 0, 0, 8306, 8304, 1, 0, 0, 0, 8306, 8305, 1, 0, 0, 0, 8307, 8315, 1, 0, 0, 0, 8308, 8311, 5, 2451, 0, 0, 8309, 8312, 3, 2392, 1196, 0, 8310, 8312, 5, 1471, 0, 0, 8311, 8309, 1, 0, 0, 0, 8311, 8310, 1, 0, 0, 0, 8312, 8314, 1, 0, 0, 0, 8313, 8308, 1, 0, 0, 0, 8314, 8317, 1, 0, 0, 0, 8315, 8313, 1, 0, 0, 0, 8315, 8316, 1, 0, 0, 0, 8316, 771, 1, 0, 0, 0, 8317, 8315, 1, 0, 0, 0, 8318, 8324, 3, 2378, 1189, 0, 8319, 8321, 5, 38, 0, 0, 8320, 8322, 5, 1457, 0, 0, 8321, 8320, 1, 0, 0, 0, 8321, 8322, 1, 0, 0, 0, 8322, 8324, 1, 0, 0, 0, 8323, 8318, 1, 0, 0, 0, 8323, 8319, 1, 0, 0, 0, 8324, 8335, 1, 0, 0, 0, 8325, 8331, 5, 2451, 0, 0, 8326, 8332, 3, 2378, 1189, 0, 8327, 8329, 5, 38, 0, 0, 8328, 8330, 5, 1457, 0, 0, 8329, 8328, 1, 0, 0, 0, 8329, 8330, 1, 0, 0, 0, 8330, 8332, 1, 0, 0, 0, 8331, 8326, 1, 0, 0, 0, 8331, 8327, 1, 0, 0, 0, 8332, 8334, 1, 0, 0, 0, 8333, 8325, 1, 0, 0, 0, 8334, 8337, 1, 0, 0, 0, 8335, 8333, 1, 0, 0, 0, 8335, 8336, 1, 0, 0, 0, 8336, 8338, 1, 0, 0, 0, 8337, 8335, 1, 0, 0, 0, 8338, 8339, 3, 774, 387, 0, 8339, 8340, 5, 626, 0, 0, 8340, 8344, 3, 770, 385, 0, 8341, 8342, 5, 179, 0, 0, 8342, 8345, 5, 285, 0, 0, 8343, 8345, 5, 614, 0, 0, 8344, 8341, 1, 0, 0, 0, 8344, 8343, 1, 0, 0, 0, 8344, 8345, 1, 0, 0, 0, 8345, 773, 1, 0, 0, 0, 8346, 8391, 5, 1257, 0, 0, 8347, 8348, 3, 2274, 1137, 0, 8348, 8349, 5, 2438, 0, 0, 8349, 8351, 1, 0, 0, 0, 8350, 8347, 1, 0, 0, 0, 8350, 8351, 1, 0, 0, 0, 8351, 8352, 1, 0, 0, 0, 8352, 8392, 3, 2392, 1196, 0, 8353, 8354, 5, 2235, 0, 0, 8354, 8359, 3, 2392, 1196, 0, 8355, 8356, 5, 2451, 0, 0, 8356, 8358, 3, 2392, 1196, 0, 8357, 8355, 1, 0, 0, 0, 8358, 8361, 1, 0, 0, 0, 8359, 8357, 1, 0, 0, 0, 8359, 8360, 1, 0, 0, 0, 8360, 8392, 1, 0, 0, 0, 8361, 8359, 1, 0, 0, 0, 8362, 8363, 5, 424, 0, 0, 8363, 8392, 3, 784, 392, 0, 8364, 8365, 5, 481, 0, 0, 8365, 8392, 3, 1448, 724, 0, 8366, 8367, 5, 953, 0, 0, 8367, 8371, 5, 969, 0, 0, 8368, 8369, 3, 2274, 1137, 0, 8369, 8370, 5, 2438, 0, 0, 8370, 8372, 1, 0, 0, 0, 8371, 8368, 1, 0, 0, 0, 8371, 8372, 1, 0, 0, 0, 8372, 8373, 1, 0, 0, 0, 8373, 8392, 3, 2392, 1196, 0, 8374, 8375, 5, 790, 0, 0, 8375, 8379, 7, 84, 0, 0, 8376, 8377, 3, 2274, 1137, 0, 8377, 8378, 5, 2438, 0, 0, 8378, 8380, 1, 0, 0, 0, 8379, 8376, 1, 0, 0, 0, 8379, 8380, 1, 0, 0, 0, 8380, 8381, 1, 0, 0, 0, 8381, 8392, 3, 2392, 1196, 0, 8382, 8383, 5, 1720, 0, 0, 8383, 8384, 5, 2152, 0, 0, 8384, 8388, 5, 1461, 0, 0, 8385, 8386, 3, 2274, 1137, 0, 8386, 8387, 5, 2438, 0, 0, 8387, 8389, 1, 0, 0, 0, 8388, 8385, 1, 0, 0, 0, 8388, 8389, 1, 0, 0, 0, 8389, 8390, 1, 0, 0, 0, 8390, 8392, 3, 2392, 1196, 0, 8391, 8350, 1, 0, 0, 0, 8391, 8353, 1, 0, 0, 0, 8391, 8362, 1, 0, 0, 0, 8391, 8364, 1, 0, 0, 0, 8391, 8366, 1, 0, 0, 0, 8391, 8374, 1, 0, 0, 0, 8391, 8382, 1, 0, 0, 0, 8392, 775, 1, 0, 0, 0, 8393, 8398, 3, 2296, 1148, 0, 8394, 8395, 5, 2451, 0, 0, 8395, 8397, 3, 2296, 1148, 0, 8396, 8394, 1, 0, 0, 0, 8397, 8400, 1, 0, 0, 0, 8398, 8396, 1, 0, 0, 0, 8398, 8399, 1, 0, 0, 0, 8399, 8403, 1, 0, 0, 0, 8400, 8398, 1, 0, 0, 0, 8401, 8403, 5, 38, 0, 0, 8402, 8393, 1, 0, 0, 0, 8402, 8401, 1, 0, 0, 0, 8403, 8404, 1, 0, 0, 0, 8404, 8405, 5, 626, 0, 0, 8405, 8410, 3, 778, 389, 0, 8406, 8407, 5, 2451, 0, 0, 8407, 8409, 3, 778, 389, 0, 8408, 8406, 1, 0, 0, 0, 8409, 8412, 1, 0, 0, 0, 8410, 8408, 1, 0, 0, 0, 8410, 8411, 1, 0, 0, 0, 8411, 777, 1, 0, 0, 0, 8412, 8410, 1, 0, 0, 0, 8413, 8417, 7, 85, 0, 0, 8414, 8415, 3, 2274, 1137, 0, 8415, 8416, 5, 2438, 0, 0, 8416, 8418, 1, 0, 0, 0, 8417, 8414, 1, 0, 0, 0, 8417, 8418, 1, 0, 0, 0, 8418, 8419, 1, 0, 0, 0, 8419, 8420, 3, 2392, 1196, 0, 8420, 779, 1, 0, 0, 0, 8421, 8422, 5, 319, 0, 0, 8422, 8423, 5, 420, 0, 0, 8423, 8425, 3, 2390, 1195, 0, 8424, 8426, 3, 818, 409, 0, 8425, 8424, 1, 0, 0, 0, 8426, 8427, 1, 0, 0, 0, 8427, 8425, 1, 0, 0, 0, 8427, 8428, 1, 0, 0, 0, 8428, 8432, 1, 0, 0, 0, 8429, 8433, 3, 820, 410, 0, 8430, 8433, 3, 824, 412, 0, 8431, 8433, 3, 826, 413, 0, 8432, 8429, 1, 0, 0, 0, 8432, 8430, 1, 0, 0, 0, 8432, 8431, 1, 0, 0, 0, 8433, 8434, 1, 0, 0, 0, 8434, 8432, 1, 0, 0, 0, 8434, 8435, 1, 0, 0, 0, 8435, 781, 1, 0, 0, 0, 8436, 8439, 5, 319, 0, 0, 8437, 8438, 5, 1305, 0, 0, 8438, 8440, 5, 1560, 0, 0, 8439, 8437, 1, 0, 0, 0, 8439, 8440, 1, 0, 0, 0, 8440, 8441, 1, 0, 0, 0, 8441, 8442, 5, 424, 0, 0, 8442, 8446, 3, 784, 392, 0, 8443, 8444, 5, 1679, 0, 0, 8444, 8445, 5, 2469, 0, 0, 8445, 8447, 7, 21, 0, 0, 8446, 8443, 1, 0, 0, 0, 8446, 8447, 1, 0, 0, 0, 8447, 8448, 1, 0, 0, 0, 8448, 8449, 5, 69, 0, 0, 8449, 8450, 3, 786, 393, 0, 8450, 783, 1, 0, 0, 0, 8451, 8452, 3, 2398, 1199, 0, 8452, 785, 1, 0, 0, 0, 8453, 8454, 5, 2441, 0, 0, 8454, 787, 1, 0, 0, 0, 8455, 8456, 5, 319, 0, 0, 8456, 8457, 5, 744, 0, 0, 8457, 8458, 5, 792, 0, 0, 8458, 8462, 5, 647, 0, 0, 8459, 8460, 3, 2274, 1137, 0, 8460, 8461, 5, 2438, 0, 0, 8461, 8463, 1, 0, 0, 0, 8462, 8459, 1, 0, 0, 0, 8462, 8463, 1, 0, 0, 0, 8463, 8464, 1, 0, 0, 0, 8464, 8465, 3, 2392, 1196, 0, 8465, 8469, 5, 2445, 0, 0, 8466, 8467, 3, 2274, 1137, 0, 8467, 8468, 5, 2438, 0, 0, 8468, 8470, 1, 0, 0, 0, 8469, 8466, 1, 0, 0, 0, 8469, 8470, 1, 0, 0, 0, 8470, 8471, 1, 0, 0, 0, 8471, 8472, 3, 2392, 1196, 0, 8472, 8473, 5, 2445, 0, 0, 8473, 8474, 3, 2392, 1196, 0, 8474, 8486, 5, 2446, 0, 0, 8475, 8479, 5, 2451, 0, 0, 8476, 8477, 3, 2274, 1137, 0, 8477, 8478, 5, 2438, 0, 0, 8478, 8480, 1, 0, 0, 0, 8479, 8476, 1, 0, 0, 0, 8479, 8480, 1, 0, 0, 0, 8480, 8481, 1, 0, 0, 0, 8481, 8482, 3, 2392, 1196, 0, 8482, 8483, 5, 2445, 0, 0, 8483, 8484, 3, 2392, 1196, 0, 8484, 8485, 5, 2446, 0, 0, 8485, 8487, 1, 0, 0, 0, 8486, 8475, 1, 0, 0, 0, 8487, 8488, 1, 0, 0, 0, 8488, 8486, 1, 0, 0, 0, 8488, 8489, 1, 0, 0, 0, 8489, 8490, 1, 0, 0, 0, 8490, 8491, 5, 2446, 0, 0, 8491, 789, 1, 0, 0, 0, 8492, 8493, 5, 467, 0, 0, 8493, 8497, 5, 672, 0, 0, 8494, 8495, 3, 2274, 1137, 0, 8495, 8496, 5, 2438, 0, 0, 8496, 8498, 1, 0, 0, 0, 8497, 8494, 1, 0, 0, 0, 8497, 8498, 1, 0, 0, 0, 8498, 8499, 1, 0, 0, 0, 8499, 8500, 3, 2392, 1196, 0, 8500, 791, 1, 0, 0, 0, 8501, 8502, 5, 42, 0, 0, 8502, 8503, 5, 847, 0, 0, 8503, 8519, 3, 814, 407, 0, 8504, 8506, 5, 249, 0, 0, 8505, 8507, 3, 808, 404, 0, 8506, 8505, 1, 0, 0, 0, 8506, 8507, 1, 0, 0, 0, 8507, 8511, 1, 0, 0, 0, 8508, 8510, 3, 810, 405, 0, 8509, 8508, 1, 0, 0, 0, 8510, 8513, 1, 0, 0, 0, 8511, 8509, 1, 0, 0, 0, 8511, 8512, 1, 0, 0, 0, 8512, 8516, 1, 0, 0, 0, 8513, 8511, 1, 0, 0, 0, 8514, 8515, 5, 1585, 0, 0, 8515, 8517, 5, 1671, 0, 0, 8516, 8514, 1, 0, 0, 0, 8516, 8517, 1, 0, 0, 0, 8517, 8520, 1, 0, 0, 0, 8518, 8520, 3, 806, 403, 0, 8519, 8504, 1, 0, 0, 0, 8519, 8518, 1, 0, 0, 0, 8520, 793, 1, 0, 0, 0, 8521, 8522, 5, 467, 0, 0, 8522, 8523, 5, 790, 0, 0, 8523, 8527, 7, 86, 0, 0, 8524, 8525, 3, 2274, 1137, 0, 8525, 8526, 5, 2438, 0, 0, 8526, 8528, 1, 0, 0, 0, 8527, 8524, 1, 0, 0, 0, 8527, 8528, 1, 0, 0, 0, 8528, 8529, 1, 0, 0, 0, 8529, 8530, 3, 2392, 1196, 0, 8530, 795, 1, 0, 0, 0, 8531, 8532, 5, 467, 0, 0, 8532, 8533, 5, 847, 0, 0, 8533, 8534, 3, 814, 407, 0, 8534, 797, 1, 0, 0, 0, 8535, 8538, 5, 319, 0, 0, 8536, 8537, 5, 1305, 0, 0, 8537, 8539, 5, 1560, 0, 0, 8538, 8536, 1, 0, 0, 0, 8538, 8539, 1, 0, 0, 0, 8539, 8542, 1, 0, 0, 0, 8540, 8541, 5, 49, 0, 0, 8541, 8543, 7, 87, 0, 0, 8542, 8540, 1, 0, 0, 0, 8542, 8543, 1, 0, 0, 0, 8543, 8545, 1, 0, 0, 0, 8544, 8546, 5, 1102, 0, 0, 8545, 8544, 1, 0, 0, 0, 8545, 8546, 1, 0, 0, 0, 8546, 8547, 1, 0, 0, 0, 8547, 8561, 5, 790, 0, 0, 8548, 8549, 7, 84, 0, 0, 8549, 8553, 5, 994, 0, 0, 8550, 8551, 3, 2274, 1137, 0, 8551, 8552, 5, 2438, 0, 0, 8552, 8554, 1, 0, 0, 0, 8553, 8550, 1, 0, 0, 0, 8553, 8554, 1, 0, 0, 0, 8554, 8555, 1, 0, 0, 0, 8555, 8562, 3, 2392, 1196, 0, 8556, 8559, 5, 206, 0, 0, 8557, 8558, 5, 1623, 0, 0, 8558, 8560, 3, 2392, 1196, 0, 8559, 8557, 1, 0, 0, 0, 8559, 8560, 1, 0, 0, 0, 8560, 8562, 1, 0, 0, 0, 8561, 8548, 1, 0, 0, 0, 8561, 8556, 1, 0, 0, 0, 8562, 8566, 1, 0, 0, 0, 8563, 8564, 5, 1679, 0, 0, 8564, 8565, 5, 2469, 0, 0, 8565, 8567, 7, 21, 0, 0, 8566, 8563, 1, 0, 0, 0, 8566, 8567, 1, 0, 0, 0, 8567, 8569, 1, 0, 0, 0, 8568, 8570, 3, 1712, 856, 0, 8569, 8568, 1, 0, 0, 0, 8569, 8570, 1, 0, 0, 0, 8570, 8588, 1, 0, 0, 0, 8571, 8572, 5, 1567, 0, 0, 8572, 8583, 5, 2445, 0, 0, 8573, 8574, 5, 2445, 0, 0, 8574, 8576, 5, 2441, 0, 0, 8575, 8577, 5, 2451, 0, 0, 8576, 8575, 1, 0, 0, 0, 8576, 8577, 1, 0, 0, 0, 8577, 8580, 1, 0, 0, 0, 8578, 8581, 3, 2392, 1196, 0, 8579, 8581, 5, 2450, 0, 0, 8580, 8578, 1, 0, 0, 0, 8580, 8579, 1, 0, 0, 0, 8581, 8582, 1, 0, 0, 0, 8582, 8584, 5, 2446, 0, 0, 8583, 8573, 1, 0, 0, 0, 8584, 8585, 1, 0, 0, 0, 8585, 8583, 1, 0, 0, 0, 8585, 8586, 1, 0, 0, 0, 8586, 8587, 1, 0, 0, 0, 8587, 8589, 5, 2446, 0, 0, 8588, 8571, 1, 0, 0, 0, 8588, 8589, 1, 0, 0, 0, 8589, 8605, 1, 0, 0, 0, 8590, 8601, 5, 2244, 0, 0, 8591, 8592, 5, 119, 0, 0, 8592, 8593, 5, 2445, 0, 0, 8593, 8594, 3, 2392, 1196, 0, 8594, 8595, 5, 2451, 0, 0, 8595, 8596, 3, 1452, 726, 0, 8596, 8597, 5, 2446, 0, 0, 8597, 8602, 1, 0, 0, 0, 8598, 8599, 7, 88, 0, 0, 8599, 8602, 3, 1888, 944, 0, 8600, 8602, 5, 2441, 0, 0, 8601, 8591, 1, 0, 0, 0, 8601, 8598, 1, 0, 0, 0, 8601, 8600, 1, 0, 0, 0, 8602, 8606, 1, 0, 0, 0, 8603, 8604, 5, 69, 0, 0, 8604, 8606, 5, 2441, 0, 0, 8605, 8590, 1, 0, 0, 0, 8605, 8603, 1, 0, 0, 0, 8606, 799, 1, 0, 0, 0, 8607, 8610, 5, 319, 0, 0, 8608, 8609, 5, 1305, 0, 0, 8609, 8611, 5, 1560, 0, 0, 8610, 8608, 1, 0, 0, 0, 8610, 8611, 1, 0, 0, 0, 8611, 8613, 1, 0, 0, 0, 8612, 8614, 7, 20, 0, 0, 8613, 8612, 1, 0, 0, 0, 8613, 8614, 1, 0, 0, 0, 8614, 8615, 1, 0, 0, 0, 8615, 8616, 5, 847, 0, 0, 8616, 8617, 3, 802, 401, 0, 8617, 801, 1, 0, 0, 0, 8618, 8619, 3, 814, 407, 0, 8619, 8620, 7, 22, 0, 0, 8620, 8623, 3, 2388, 1194, 0, 8621, 8622, 5, 736, 0, 0, 8622, 8624, 3, 784, 392, 0, 8623, 8621, 1, 0, 0, 0, 8623, 8624, 1, 0, 0, 0, 8624, 8627, 1, 0, 0, 0, 8625, 8626, 5, 34, 0, 0, 8626, 8628, 3, 2388, 1194, 0, 8627, 8625, 1, 0, 0, 0, 8627, 8628, 1, 0, 0, 0, 8628, 8631, 1, 0, 0, 0, 8629, 8630, 5, 323, 0, 0, 8630, 8632, 3, 804, 402, 0, 8631, 8629, 1, 0, 0, 0, 8631, 8632, 1, 0, 0, 0, 8632, 803, 1, 0, 0, 0, 8633, 8634, 3, 2392, 1196, 0, 8634, 8635, 5, 2438, 0, 0, 8635, 8637, 1, 0, 0, 0, 8636, 8633, 1, 0, 0, 0, 8636, 8637, 1, 0, 0, 0, 8637, 8638, 1, 0, 0, 0, 8638, 8639, 3, 2392, 1196, 0, 8639, 805, 1, 0, 0, 0, 8640, 8641, 4, 403, 5, 0, 8641, 8642, 7, 20, 0, 0, 8642, 807, 1, 0, 0, 0, 8643, 8644, 4, 404, 6, 0, 8644, 8645, 5, 376, 0, 0, 8645, 809, 1, 0, 0, 0, 8646, 8647, 3, 2282, 1141, 0, 8647, 8648, 5, 2469, 0, 0, 8648, 8649, 3, 812, 406, 0, 8649, 811, 1, 0, 0, 0, 8650, 8653, 3, 2398, 1199, 0, 8651, 8653, 5, 2441, 0, 0, 8652, 8650, 1, 0, 0, 0, 8652, 8651, 1, 0, 0, 0, 8653, 813, 1, 0, 0, 0, 8654, 8655, 3, 2398, 1199, 0, 8655, 8656, 5, 2438, 0, 0, 8656, 8658, 1, 0, 0, 0, 8657, 8654, 1, 0, 0, 0, 8657, 8658, 1, 0, 0, 0, 8658, 8659, 1, 0, 0, 0, 8659, 8660, 3, 2398, 1199, 0, 8660, 815, 1, 0, 0, 0, 8661, 8662, 5, 42, 0, 0, 8662, 8663, 5, 420, 0, 0, 8663, 8708, 3, 2390, 1195, 0, 8664, 8669, 5, 21, 0, 0, 8665, 8670, 3, 818, 409, 0, 8666, 8670, 3, 820, 410, 0, 8667, 8670, 3, 824, 412, 0, 8668, 8670, 3, 826, 413, 0, 8669, 8665, 1, 0, 0, 0, 8669, 8666, 1, 0, 0, 0, 8669, 8667, 1, 0, 0, 0, 8669, 8668, 1, 0, 0, 0, 8670, 8672, 1, 0, 0, 0, 8671, 8664, 1, 0, 0, 0, 8672, 8673, 1, 0, 0, 0, 8673, 8671, 1, 0, 0, 0, 8673, 8674, 1, 0, 0, 0, 8674, 8709, 1, 0, 0, 0, 8675, 8701, 5, 467, 0, 0, 8676, 8677, 5, 844, 0, 0, 8677, 8679, 3, 2390, 1195, 0, 8678, 8680, 7, 89, 0, 0, 8679, 8678, 1, 0, 0, 0, 8679, 8680, 1, 0, 0, 0, 8680, 8702, 1, 0, 0, 0, 8681, 8682, 5, 672, 0, 0, 8682, 8702, 3, 2390, 1195, 0, 8683, 8684, 5, 83, 0, 0, 8684, 8699, 3, 2390, 1195, 0, 8685, 8686, 5, 844, 0, 0, 8686, 8697, 3, 2390, 1195, 0, 8687, 8688, 5, 237, 0, 0, 8688, 8694, 3, 2328, 1164, 0, 8689, 8690, 5, 2451, 0, 0, 8690, 8691, 5, 237, 0, 0, 8691, 8693, 3, 2328, 1164, 0, 8692, 8689, 1, 0, 0, 0, 8693, 8696, 1, 0, 0, 0, 8694, 8692, 1, 0, 0, 0, 8694, 8695, 1, 0, 0, 0, 8695, 8698, 1, 0, 0, 0, 8696, 8694, 1, 0, 0, 0, 8697, 8687, 1, 0, 0, 0, 8697, 8698, 1, 0, 0, 0, 8698, 8700, 1, 0, 0, 0, 8699, 8685, 1, 0, 0, 0, 8699, 8700, 1, 0, 0, 0, 8700, 8702, 1, 0, 0, 0, 8701, 8676, 1, 0, 0, 0, 8701, 8681, 1, 0, 0, 0, 8701, 8683, 1, 0, 0, 0, 8702, 8704, 1, 0, 0, 0, 8703, 8675, 1, 0, 0, 0, 8704, 8705, 1, 0, 0, 0, 8705, 8703, 1, 0, 0, 0, 8705, 8706, 1, 0, 0, 0, 8706, 8709, 1, 0, 0, 0, 8707, 8709, 5, 249, 0, 0, 8708, 8671, 1, 0, 0, 0, 8708, 8703, 1, 0, 0, 0, 8708, 8707, 1, 0, 0, 0, 8709, 817, 1, 0, 0, 0, 8710, 8711, 5, 844, 0, 0, 8711, 8712, 3, 2390, 1195, 0, 8712, 8733, 5, 783, 0, 0, 8713, 8714, 3, 1104, 552, 0, 8714, 8715, 5, 2438, 0, 0, 8715, 8716, 3, 2328, 1164, 0, 8716, 8734, 1, 0, 0, 0, 8717, 8718, 5, 2445, 0, 0, 8718, 8719, 3, 1104, 552, 0, 8719, 8720, 5, 2438, 0, 0, 8720, 8728, 3, 2328, 1164, 0, 8721, 8722, 5, 2451, 0, 0, 8722, 8723, 3, 1104, 552, 0, 8723, 8724, 5, 2438, 0, 0, 8724, 8725, 3, 2328, 1164, 0, 8725, 8727, 1, 0, 0, 0, 8726, 8721, 1, 0, 0, 0, 8727, 8730, 1, 0, 0, 0, 8728, 8726, 1, 0, 0, 0, 8728, 8729, 1, 0, 0, 0, 8729, 8731, 1, 0, 0, 0, 8730, 8728, 1, 0, 0, 0, 8731, 8732, 5, 2446, 0, 0, 8732, 8734, 1, 0, 0, 0, 8733, 8713, 1, 0, 0, 0, 8733, 8717, 1, 0, 0, 0, 8734, 8738, 1, 0, 0, 0, 8735, 8736, 5, 1700, 0, 0, 8736, 8737, 5, 2298, 0, 0, 8737, 8739, 5, 1226, 0, 0, 8738, 8735, 1, 0, 0, 0, 8738, 8739, 1, 0, 0, 0, 8739, 819, 1, 0, 0, 0, 8740, 8741, 5, 672, 0, 0, 8741, 8742, 3, 2390, 1195, 0, 8742, 8743, 5, 2445, 0, 0, 8743, 8747, 3, 2390, 1195, 0, 8744, 8745, 5, 202, 0, 0, 8745, 8746, 5, 1244, 0, 0, 8746, 8748, 3, 2390, 1195, 0, 8747, 8744, 1, 0, 0, 0, 8748, 8749, 1, 0, 0, 0, 8749, 8747, 1, 0, 0, 0, 8749, 8750, 1, 0, 0, 0, 8750, 8752, 1, 0, 0, 0, 8751, 8753, 3, 822, 411, 0, 8752, 8751, 1, 0, 0, 0, 8752, 8753, 1, 0, 0, 0, 8753, 8754, 1, 0, 0, 0, 8754, 8755, 5, 2446, 0, 0, 8755, 821, 1, 0, 0, 0, 8756, 8757, 5, 792, 0, 0, 8757, 8758, 5, 814, 0, 0, 8758, 8759, 3, 828, 414, 0, 8759, 8760, 5, 1526, 0, 0, 8760, 8761, 3, 2390, 1195, 0, 8761, 8763, 1, 0, 0, 0, 8762, 8756, 1, 0, 0, 0, 8763, 8764, 1, 0, 0, 0, 8764, 8762, 1, 0, 0, 0, 8764, 8765, 1, 0, 0, 0, 8765, 823, 1, 0, 0, 0, 8766, 8767, 5, 83, 0, 0, 8767, 8768, 3, 2390, 1195, 0, 8768, 8769, 5, 417, 0, 0, 8769, 8770, 3, 828, 414, 0, 8770, 8772, 1, 0, 0, 0, 8771, 8766, 1, 0, 0, 0, 8772, 8773, 1, 0, 0, 0, 8773, 8771, 1, 0, 0, 0, 8773, 8774, 1, 0, 0, 0, 8774, 825, 1, 0, 0, 0, 8775, 8776, 5, 83, 0, 0, 8776, 8782, 3, 2390, 1195, 0, 8777, 8778, 5, 844, 0, 0, 8778, 8779, 3, 2390, 1195, 0, 8779, 8780, 5, 417, 0, 0, 8780, 8781, 3, 828, 414, 0, 8781, 8783, 1, 0, 0, 0, 8782, 8777, 1, 0, 0, 0, 8783, 8784, 1, 0, 0, 0, 8784, 8782, 1, 0, 0, 0, 8784, 8785, 1, 0, 0, 0, 8785, 827, 1, 0, 0, 0, 8786, 8799, 3, 2328, 1164, 0, 8787, 8788, 5, 2445, 0, 0, 8788, 8793, 3, 2328, 1164, 0, 8789, 8790, 5, 2451, 0, 0, 8790, 8792, 3, 2328, 1164, 0, 8791, 8789, 1, 0, 0, 0, 8792, 8795, 1, 0, 0, 0, 8793, 8791, 1, 0, 0, 0, 8793, 8794, 1, 0, 0, 0, 8794, 8796, 1, 0, 0, 0, 8795, 8793, 1, 0, 0, 0, 8796, 8797, 5, 2446, 0, 0, 8797, 8799, 1, 0, 0, 0, 8798, 8786, 1, 0, 0, 0, 8798, 8787, 1, 0, 0, 0, 8799, 829, 1, 0, 0, 0, 8800, 8801, 5, 42, 0, 0, 8801, 8802, 5, 2284, 0, 0, 8802, 8835, 3, 2330, 1165, 0, 8803, 8804, 5, 21, 0, 0, 8804, 8836, 3, 850, 425, 0, 8805, 8806, 5, 978, 0, 0, 8806, 8807, 5, 284, 0, 0, 8807, 8808, 3, 2298, 1149, 0, 8808, 8809, 7, 49, 0, 0, 8809, 8836, 1, 0, 0, 0, 8810, 8827, 5, 467, 0, 0, 8811, 8812, 5, 284, 0, 0, 8812, 8828, 3, 2298, 1149, 0, 8813, 8814, 5, 1449, 0, 0, 8814, 8828, 5, 814, 0, 0, 8815, 8816, 5, 2181, 0, 0, 8816, 8817, 5, 2445, 0, 0, 8817, 8822, 3, 2328, 1164, 0, 8818, 8819, 5, 2451, 0, 0, 8819, 8821, 3, 2328, 1164, 0, 8820, 8818, 1, 0, 0, 0, 8821, 8824, 1, 0, 0, 0, 8822, 8820, 1, 0, 0, 0, 8822, 8823, 1, 0, 0, 0, 8823, 8825, 1, 0, 0, 0, 8824, 8822, 1, 0, 0, 0, 8825, 8826, 5, 2446, 0, 0, 8826, 8828, 1, 0, 0, 0, 8827, 8811, 1, 0, 0, 0, 8827, 8813, 1, 0, 0, 0, 8827, 8815, 1, 0, 0, 0, 8828, 8836, 1, 0, 0, 0, 8829, 8836, 5, 249, 0, 0, 8830, 8831, 5, 1503, 0, 0, 8831, 8836, 7, 11, 0, 0, 8832, 8834, 3, 832, 416, 0, 8833, 8832, 1, 0, 0, 0, 8833, 8834, 1, 0, 0, 0, 8834, 8836, 1, 0, 0, 0, 8835, 8803, 1, 0, 0, 0, 8835, 8805, 1, 0, 0, 0, 8835, 8810, 1, 0, 0, 0, 8835, 8829, 1, 0, 0, 0, 8835, 8830, 1, 0, 0, 0, 8835, 8833, 1, 0, 0, 0, 8836, 831, 1, 0, 0, 0, 8837, 8838, 4, 416, 7, 0, 8838, 8839, 7, 20, 0, 0, 8839, 833, 1, 0, 0, 0, 8840, 8843, 5, 319, 0, 0, 8841, 8842, 5, 1305, 0, 0, 8842, 8844, 5, 1560, 0, 0, 8843, 8841, 1, 0, 0, 0, 8843, 8844, 1, 0, 0, 0, 8844, 8849, 1, 0, 0, 0, 8845, 8847, 5, 1135, 0, 0, 8846, 8845, 1, 0, 0, 0, 8846, 8847, 1, 0, 0, 0, 8847, 8848, 1, 0, 0, 0, 8848, 8850, 5, 614, 0, 0, 8849, 8846, 1, 0, 0, 0, 8849, 8850, 1, 0, 0, 0, 8850, 8852, 1, 0, 0, 0, 8851, 8853, 3, 836, 418, 0, 8852, 8851, 1, 0, 0, 0, 8852, 8853, 1, 0, 0, 0, 8853, 8854, 1, 0, 0, 0, 8854, 8858, 5, 2284, 0, 0, 8855, 8856, 3, 2274, 1137, 0, 8856, 8857, 5, 2438, 0, 0, 8857, 8859, 1, 0, 0, 0, 8858, 8855, 1, 0, 0, 0, 8858, 8859, 1, 0, 0, 0, 8859, 8860, 1, 0, 0, 0, 8860, 8864, 3, 2392, 1196, 0, 8861, 8862, 5, 689, 0, 0, 8862, 8863, 5, 1202, 0, 0, 8863, 8865, 5, 543, 0, 0, 8864, 8861, 1, 0, 0, 0, 8864, 8865, 1, 0, 0, 0, 8865, 8876, 1, 0, 0, 0, 8866, 8867, 5, 1679, 0, 0, 8867, 8874, 5, 2469, 0, 0, 8868, 8875, 5, 946, 0, 0, 8869, 8871, 5, 2374, 0, 0, 8870, 8869, 1, 0, 0, 0, 8870, 8871, 1, 0, 0, 0, 8871, 8872, 1, 0, 0, 0, 8872, 8875, 5, 349, 0, 0, 8873, 8875, 5, 1131, 0, 0, 8874, 8868, 1, 0, 0, 0, 8874, 8870, 1, 0, 0, 0, 8874, 8873, 1, 0, 0, 0, 8875, 8877, 1, 0, 0, 0, 8876, 8866, 1, 0, 0, 0, 8876, 8877, 1, 0, 0, 0, 8877, 8879, 1, 0, 0, 0, 8878, 8880, 3, 838, 419, 0, 8879, 8878, 1, 0, 0, 0, 8879, 8880, 1, 0, 0, 0, 8880, 8884, 1, 0, 0, 0, 8881, 8882, 5, 387, 0, 0, 8882, 8883, 5, 2371, 0, 0, 8883, 8885, 3, 2392, 1196, 0, 8884, 8881, 1, 0, 0, 0, 8884, 8885, 1, 0, 0, 0, 8885, 8888, 1, 0, 0, 0, 8886, 8887, 5, 117, 0, 0, 8887, 8889, 7, 90, 0, 0, 8888, 8886, 1, 0, 0, 0, 8888, 8889, 1, 0, 0, 0, 8889, 8890, 1, 0, 0, 0, 8890, 8891, 5, 69, 0, 0, 8891, 8893, 3, 1860, 930, 0, 8892, 8894, 3, 2060, 1030, 0, 8893, 8892, 1, 0, 0, 0, 8893, 8894, 1, 0, 0, 0, 8894, 8896, 1, 0, 0, 0, 8895, 8897, 7, 91, 0, 0, 8896, 8895, 1, 0, 0, 0, 8896, 8897, 1, 0, 0, 0, 8897, 835, 1, 0, 0, 0, 8898, 8905, 5, 482, 0, 0, 8899, 8901, 5, 480, 0, 0, 8900, 8902, 5, 482, 0, 0, 8901, 8900, 1, 0, 0, 0, 8901, 8902, 1, 0, 0, 0, 8902, 8905, 1, 0, 0, 0, 8903, 8905, 5, 1130, 0, 0, 8904, 8898, 1, 0, 0, 0, 8904, 8899, 1, 0, 0, 0, 8904, 8903, 1, 0, 0, 0, 8905, 837, 1, 0, 0, 0, 8906, 8910, 3, 840, 420, 0, 8907, 8910, 3, 842, 421, 0, 8908, 8910, 3, 854, 427, 0, 8909, 8906, 1, 0, 0, 0, 8909, 8907, 1, 0, 0, 0, 8909, 8908, 1, 0, 0, 0, 8910, 839, 1, 0, 0, 0, 8911, 8925, 5, 2445, 0, 0, 8912, 8914, 5, 2451, 0, 0, 8913, 8912, 1, 0, 0, 0, 8913, 8914, 1, 0, 0, 0, 8914, 8923, 1, 0, 0, 0, 8915, 8919, 3, 2258, 1129, 0, 8916, 8918, 3, 844, 422, 0, 8917, 8916, 1, 0, 0, 0, 8918, 8921, 1, 0, 0, 0, 8919, 8917, 1, 0, 0, 0, 8919, 8920, 1, 0, 0, 0, 8920, 8924, 1, 0, 0, 0, 8921, 8919, 1, 0, 0, 0, 8922, 8924, 3, 850, 425, 0, 8923, 8915, 1, 0, 0, 0, 8923, 8922, 1, 0, 0, 0, 8924, 8926, 1, 0, 0, 0, 8925, 8913, 1, 0, 0, 0, 8926, 8927, 1, 0, 0, 0, 8927, 8925, 1, 0, 0, 0, 8927, 8928, 1, 0, 0, 0, 8928, 8929, 1, 0, 0, 0, 8929, 8930, 5, 2446, 0, 0, 8930, 841, 1, 0, 0, 0, 8931, 8935, 5, 1244, 0, 0, 8932, 8933, 3, 2274, 1137, 0, 8933, 8934, 5, 2438, 0, 0, 8934, 8936, 1, 0, 0, 0, 8935, 8932, 1, 0, 0, 0, 8935, 8936, 1, 0, 0, 0, 8936, 8937, 1, 0, 0, 0, 8937, 8961, 3, 2392, 1196, 0, 8938, 8939, 5, 2306, 0, 0, 8939, 8940, 5, 1236, 0, 0, 8940, 8952, 7, 92, 0, 0, 8941, 8953, 5, 387, 0, 0, 8942, 8943, 5, 2445, 0, 0, 8943, 8948, 5, 2478, 0, 0, 8944, 8945, 5, 2451, 0, 0, 8945, 8947, 5, 2478, 0, 0, 8946, 8944, 1, 0, 0, 0, 8947, 8950, 1, 0, 0, 0, 8948, 8946, 1, 0, 0, 0, 8948, 8949, 1, 0, 0, 0, 8949, 8951, 1, 0, 0, 0, 8950, 8948, 1, 0, 0, 0, 8951, 8953, 5, 2446, 0, 0, 8952, 8941, 1, 0, 0, 0, 8952, 8942, 1, 0, 0, 0, 8953, 8962, 1, 0, 0, 0, 8954, 8958, 5, 2175, 0, 0, 8955, 8956, 3, 2274, 1137, 0, 8956, 8957, 5, 2438, 0, 0, 8957, 8959, 1, 0, 0, 0, 8958, 8955, 1, 0, 0, 0, 8958, 8959, 1, 0, 0, 0, 8959, 8960, 1, 0, 0, 0, 8960, 8962, 3, 2392, 1196, 0, 8961, 8938, 1, 0, 0, 0, 8961, 8954, 1, 0, 0, 0, 8962, 8980, 1, 0, 0, 0, 8963, 8972, 5, 2445, 0, 0, 8964, 8966, 5, 2451, 0, 0, 8965, 8964, 1, 0, 0, 0, 8965, 8966, 1, 0, 0, 0, 8966, 8970, 1, 0, 0, 0, 8967, 8971, 3, 850, 425, 0, 8968, 8969, 5, 2478, 0, 0, 8969, 8971, 3, 844, 422, 0, 8970, 8967, 1, 0, 0, 0, 8970, 8968, 1, 0, 0, 0, 8971, 8973, 1, 0, 0, 0, 8972, 8965, 1, 0, 0, 0, 8973, 8974, 1, 0, 0, 0, 8974, 8972, 1, 0, 0, 0, 8974, 8975, 1, 0, 0, 0, 8975, 8976, 1, 0, 0, 0, 8976, 8977, 5, 2446, 0, 0, 8977, 8979, 1, 0, 0, 0, 8978, 8963, 1, 0, 0, 0, 8979, 8982, 1, 0, 0, 0, 8980, 8978, 1, 0, 0, 0, 8980, 8981, 1, 0, 0, 0, 8981, 843, 1, 0, 0, 0, 8982, 8980, 1, 0, 0, 0, 8983, 8984, 5, 284, 0, 0, 8984, 8986, 3, 2298, 1149, 0, 8985, 8983, 1, 0, 0, 0, 8985, 8986, 1, 0, 0, 0, 8986, 8996, 1, 0, 0, 0, 8987, 8989, 5, 1202, 0, 0, 8988, 8987, 1, 0, 0, 0, 8988, 8989, 1, 0, 0, 0, 8989, 8990, 1, 0, 0, 0, 8990, 8997, 5, 1226, 0, 0, 8991, 8997, 5, 2181, 0, 0, 8992, 8993, 5, 1449, 0, 0, 8993, 8997, 5, 814, 0, 0, 8994, 8997, 3, 1706, 853, 0, 8995, 8997, 3, 1702, 851, 0, 8996, 8988, 1, 0, 0, 0, 8996, 8991, 1, 0, 0, 0, 8996, 8992, 1, 0, 0, 0, 8996, 8994, 1, 0, 0, 0, 8996, 8995, 1, 0, 0, 0, 8997, 8999, 1, 0, 0, 0, 8998, 9000, 3, 852, 426, 0, 8999, 8998, 1, 0, 0, 0, 8999, 9000, 1, 0, 0, 0, 9000, 845, 1, 0, 0, 0, 9001, 9002, 5, 1626, 0, 0, 9002, 9003, 5, 783, 0, 0, 9003, 9015, 3, 2330, 1165, 0, 9004, 9005, 5, 2306, 0, 0, 9005, 9015, 5, 1599, 0, 0, 9006, 9007, 5, 284, 0, 0, 9007, 9009, 3, 2298, 1149, 0, 9008, 9006, 1, 0, 0, 0, 9008, 9009, 1, 0, 0, 0, 9009, 9010, 1, 0, 0, 0, 9010, 9012, 3, 1706, 853, 0, 9011, 9013, 3, 852, 426, 0, 9012, 9011, 1, 0, 0, 0, 9012, 9013, 1, 0, 0, 0, 9013, 9015, 1, 0, 0, 0, 9014, 9001, 1, 0, 0, 0, 9014, 9004, 1, 0, 0, 0, 9014, 9008, 1, 0, 0, 0, 9015, 847, 1, 0, 0, 0, 9016, 9017, 5, 1626, 0, 0, 9017, 9018, 5, 618, 0, 0, 9018, 9019, 5, 2445, 0, 0, 9019, 9020, 3, 2398, 1199, 0, 9020, 9021, 5, 2446, 0, 0, 9021, 9022, 5, 783, 0, 0, 9022, 9023, 3, 2330, 1165, 0, 9023, 9052, 1, 0, 0, 0, 9024, 9025, 5, 1528, 0, 0, 9025, 9026, 5, 2445, 0, 0, 9026, 9027, 3, 2398, 1199, 0, 9027, 9028, 5, 2446, 0, 0, 9028, 9029, 5, 2306, 0, 0, 9029, 9030, 5, 1599, 0, 0, 9030, 9052, 1, 0, 0, 0, 9031, 9032, 5, 284, 0, 0, 9032, 9034, 3, 2298, 1149, 0, 9033, 9031, 1, 0, 0, 0, 9033, 9034, 1, 0, 0, 0, 9034, 9035, 1, 0, 0, 0, 9035, 9036, 5, 616, 0, 0, 9036, 9037, 5, 814, 0, 0, 9037, 9042, 5, 2445, 0, 0, 9038, 9040, 5, 2451, 0, 0, 9039, 9038, 1, 0, 0, 0, 9039, 9040, 1, 0, 0, 0, 9040, 9041, 1, 0, 0, 0, 9041, 9043, 3, 2398, 1199, 0, 9042, 9039, 1, 0, 0, 0, 9043, 9044, 1, 0, 0, 0, 9044, 9042, 1, 0, 0, 0, 9044, 9045, 1, 0, 0, 0, 9045, 9046, 1, 0, 0, 0, 9046, 9047, 5, 2446, 0, 0, 9047, 9049, 3, 1706, 853, 0, 9048, 9050, 3, 852, 426, 0, 9049, 9048, 1, 0, 0, 0, 9049, 9050, 1, 0, 0, 0, 9050, 9052, 1, 0, 0, 0, 9051, 9016, 1, 0, 0, 0, 9051, 9024, 1, 0, 0, 0, 9051, 9033, 1, 0, 0, 0, 9052, 849, 1, 0, 0, 0, 9053, 9054, 7, 93, 0, 0, 9054, 9056, 3, 2298, 1149, 0, 9055, 9053, 1, 0, 0, 0, 9055, 9056, 1, 0, 0, 0, 9056, 9088, 1, 0, 0, 0, 9057, 9058, 5, 2181, 0, 0, 9058, 9059, 5, 2445, 0, 0, 9059, 9064, 3, 2328, 1164, 0, 9060, 9061, 5, 2451, 0, 0, 9061, 9063, 3, 2328, 1164, 0, 9062, 9060, 1, 0, 0, 0, 9063, 9066, 1, 0, 0, 0, 9064, 9062, 1, 0, 0, 0, 9064, 9065, 1, 0, 0, 0, 9065, 9067, 1, 0, 0, 0, 9066, 9064, 1, 0, 0, 0, 9067, 9068, 5, 2446, 0, 0, 9068, 9089, 1, 0, 0, 0, 9069, 9070, 5, 1449, 0, 0, 9070, 9071, 5, 814, 0, 0, 9071, 9072, 5, 2445, 0, 0, 9072, 9077, 3, 2328, 1164, 0, 9073, 9074, 5, 2451, 0, 0, 9074, 9076, 3, 2328, 1164, 0, 9075, 9073, 1, 0, 0, 0, 9076, 9079, 1, 0, 0, 0, 9077, 9075, 1, 0, 0, 0, 9077, 9078, 1, 0, 0, 0, 9078, 9080, 1, 0, 0, 0, 9079, 9077, 1, 0, 0, 0, 9080, 9081, 5, 2446, 0, 0, 9081, 9089, 1, 0, 0, 0, 9082, 9089, 3, 1704, 852, 0, 9083, 9084, 5, 200, 0, 0, 9084, 9085, 5, 2445, 0, 0, 9085, 9086, 3, 2066, 1033, 0, 9086, 9087, 5, 2446, 0, 0, 9087, 9089, 1, 0, 0, 0, 9088, 9057, 1, 0, 0, 0, 9088, 9069, 1, 0, 0, 0, 9088, 9082, 1, 0, 0, 0, 9088, 9083, 1, 0, 0, 0, 9089, 9091, 1, 0, 0, 0, 9090, 9092, 3, 852, 426, 0, 9091, 9090, 1, 0, 0, 0, 9091, 9092, 1, 0, 0, 0, 9092, 9094, 1, 0, 0, 0, 9093, 9095, 3, 926, 463, 0, 9094, 9093, 1, 0, 0, 0, 9094, 9095, 1, 0, 0, 0, 9095, 851, 1, 0, 0, 0, 9096, 9098, 5, 1202, 0, 0, 9097, 9096, 1, 0, 0, 0, 9097, 9098, 1, 0, 0, 0, 9098, 9099, 1, 0, 0, 0, 9099, 9107, 5, 392, 0, 0, 9100, 9101, 5, 740, 0, 0, 9101, 9107, 7, 67, 0, 0, 9102, 9107, 7, 49, 0, 0, 9103, 9107, 7, 17, 0, 0, 9104, 9107, 7, 94, 0, 0, 9105, 9107, 3, 1578, 789, 0, 9106, 9097, 1, 0, 0, 0, 9106, 9100, 1, 0, 0, 0, 9106, 9102, 1, 0, 0, 0, 9106, 9103, 1, 0, 0, 0, 9106, 9104, 1, 0, 0, 0, 9106, 9105, 1, 0, 0, 0, 9107, 9108, 1, 0, 0, 0, 9108, 9106, 1, 0, 0, 0, 9108, 9109, 1, 0, 0, 0, 9109, 853, 1, 0, 0, 0, 9110, 9111, 5, 1244, 0, 0, 9111, 9113, 5, 2349, 0, 0, 9112, 9114, 3, 856, 428, 0, 9113, 9112, 1, 0, 0, 0, 9113, 9114, 1, 0, 0, 0, 9114, 9115, 1, 0, 0, 0, 9115, 9116, 5, 2306, 0, 0, 9116, 9117, 5, 1236, 0, 0, 9117, 9130, 7, 92, 0, 0, 9118, 9131, 5, 387, 0, 0, 9119, 9120, 5, 2445, 0, 0, 9120, 9125, 3, 2070, 1035, 0, 9121, 9122, 5, 2451, 0, 0, 9122, 9124, 3, 2070, 1035, 0, 9123, 9121, 1, 0, 0, 0, 9124, 9127, 1, 0, 0, 0, 9125, 9123, 1, 0, 0, 0, 9125, 9126, 1, 0, 0, 0, 9126, 9128, 1, 0, 0, 0, 9127, 9125, 1, 0, 0, 0, 9128, 9129, 5, 2446, 0, 0, 9129, 9131, 1, 0, 0, 0, 9130, 9118, 1, 0, 0, 0, 9130, 9119, 1, 0, 0, 0, 9131, 855, 1, 0, 0, 0, 9132, 9133, 5, 2343, 0, 0, 9133, 9135, 3, 858, 429, 0, 9134, 9132, 1, 0, 0, 0, 9134, 9135, 1, 0, 0, 0, 9135, 9136, 1, 0, 0, 0, 9136, 9142, 5, 484, 0, 0, 9137, 9143, 3, 860, 430, 0, 9138, 9139, 3, 858, 429, 0, 9139, 9140, 5, 2455, 0, 0, 9140, 9141, 3, 860, 430, 0, 9141, 9143, 1, 0, 0, 0, 9142, 9137, 1, 0, 0, 0, 9142, 9138, 1, 0, 0, 0, 9143, 9149, 1, 0, 0, 0, 9144, 9145, 5, 1761, 0, 0, 9145, 9146, 5, 38, 0, 0, 9146, 9147, 5, 2264, 0, 0, 9147, 9148, 5, 69, 0, 0, 9148, 9150, 7, 95, 0, 0, 9149, 9144, 1, 0, 0, 0, 9149, 9150, 1, 0, 0, 0, 9150, 9154, 1, 0, 0, 0, 9151, 9152, 3, 1304, 652, 0, 9152, 9153, 5, 1136, 0, 0, 9153, 9155, 1, 0, 0, 0, 9154, 9151, 1, 0, 0, 0, 9154, 9155, 1, 0, 0, 0, 9155, 9159, 1, 0, 0, 0, 9156, 9157, 3, 1304, 652, 0, 9157, 9158, 5, 56, 0, 0, 9158, 9160, 1, 0, 0, 0, 9159, 9156, 1, 0, 0, 0, 9159, 9160, 1, 0, 0, 0, 9160, 857, 1, 0, 0, 0, 9161, 9162, 5, 2442, 0, 0, 9162, 859, 1, 0, 0, 0, 9163, 9164, 5, 2442, 0, 0, 9164, 861, 1, 0, 0, 0, 9165, 9166, 5, 42, 0, 0, 9166, 9167, 5, 2078, 0, 0, 9167, 9200, 3, 1648, 824, 0, 9168, 9170, 5, 387, 0, 0, 9169, 9171, 3, 1172, 586, 0, 9170, 9169, 1, 0, 0, 0, 9170, 9171, 1, 0, 0, 0, 9171, 9173, 1, 0, 0, 0, 9172, 9174, 3, 1190, 595, 0, 9173, 9172, 1, 0, 0, 0, 9173, 9174, 1, 0, 0, 0, 9174, 9201, 1, 0, 0, 0, 9175, 9176, 5, 952, 0, 0, 9176, 9177, 5, 556, 0, 0, 9177, 9201, 3, 1170, 585, 0, 9178, 9179, 5, 1565, 0, 0, 9179, 9201, 3, 1170, 585, 0, 9180, 9201, 5, 228, 0, 0, 9181, 9182, 5, 1682, 0, 0, 9182, 9185, 5, 1712, 0, 0, 9183, 9184, 5, 812, 0, 0, 9184, 9186, 3, 1170, 585, 0, 9185, 9183, 1, 0, 0, 0, 9185, 9186, 1, 0, 0, 0, 9186, 9201, 1, 0, 0, 0, 9187, 9188, 5, 1557, 0, 0, 9188, 9189, 5, 2139, 0, 0, 9189, 9201, 3, 876, 438, 0, 9190, 9191, 3, 1374, 687, 0, 9191, 9192, 5, 102, 0, 0, 9192, 9201, 1, 0, 0, 0, 9193, 9201, 3, 864, 432, 0, 9194, 9201, 3, 866, 433, 0, 9195, 9201, 3, 868, 434, 0, 9196, 9201, 3, 872, 436, 0, 9197, 9201, 3, 920, 460, 0, 9198, 9201, 3, 874, 437, 0, 9199, 9201, 3, 894, 447, 0, 9200, 9168, 1, 0, 0, 0, 9200, 9175, 1, 0, 0, 0, 9200, 9178, 1, 0, 0, 0, 9200, 9180, 1, 0, 0, 0, 9200, 9181, 1, 0, 0, 0, 9200, 9187, 1, 0, 0, 0, 9200, 9190, 1, 0, 0, 0, 9200, 9193, 1, 0, 0, 0, 9200, 9194, 1, 0, 0, 0, 9200, 9195, 1, 0, 0, 0, 9200, 9196, 1, 0, 0, 0, 9200, 9197, 1, 0, 0, 0, 9200, 9198, 1, 0, 0, 0, 9200, 9199, 1, 0, 0, 0, 9201, 863, 1, 0, 0, 0, 9202, 9205, 5, 21, 0, 0, 9203, 9206, 3, 912, 456, 0, 9204, 9206, 3, 914, 457, 0, 9205, 9203, 1, 0, 0, 0, 9205, 9204, 1, 0, 0, 0, 9206, 9249, 1, 0, 0, 0, 9207, 9208, 5, 467, 0, 0, 9208, 9211, 7, 96, 0, 0, 9209, 9212, 3, 1452, 726, 0, 9210, 9212, 5, 2439, 0, 0, 9211, 9209, 1, 0, 0, 0, 9211, 9210, 1, 0, 0, 0, 9212, 9215, 1, 0, 0, 0, 9213, 9214, 5, 812, 0, 0, 9214, 9216, 3, 1170, 585, 0, 9215, 9213, 1, 0, 0, 0, 9215, 9216, 1, 0, 0, 0, 9216, 9249, 1, 0, 0, 0, 9217, 9218, 5, 1682, 0, 0, 9218, 9221, 5, 2087, 0, 0, 9219, 9222, 3, 1452, 726, 0, 9220, 9222, 5, 2439, 0, 0, 9221, 9219, 1, 0, 0, 0, 9221, 9220, 1, 0, 0, 0, 9222, 9225, 1, 0, 0, 0, 9223, 9224, 5, 812, 0, 0, 9224, 9226, 3, 1170, 585, 0, 9225, 9223, 1, 0, 0, 0, 9225, 9226, 1, 0, 0, 0, 9226, 9249, 1, 0, 0, 0, 9227, 9228, 5, 1557, 0, 0, 9228, 9229, 5, 350, 0, 0, 9229, 9234, 3, 1452, 726, 0, 9230, 9231, 5, 2451, 0, 0, 9231, 9233, 3, 1452, 726, 0, 9232, 9230, 1, 0, 0, 0, 9233, 9236, 1, 0, 0, 0, 9234, 9232, 1, 0, 0, 0, 9234, 9235, 1, 0, 0, 0, 9235, 9237, 1, 0, 0, 0, 9236, 9234, 1, 0, 0, 0, 9237, 9238, 5, 2139, 0, 0, 9238, 9243, 3, 1452, 726, 0, 9239, 9240, 5, 2451, 0, 0, 9240, 9242, 3, 1452, 726, 0, 9241, 9239, 1, 0, 0, 0, 9242, 9245, 1, 0, 0, 0, 9243, 9241, 1, 0, 0, 0, 9243, 9244, 1, 0, 0, 0, 9244, 9249, 1, 0, 0, 0, 9245, 9243, 1, 0, 0, 0, 9246, 9247, 7, 96, 0, 0, 9247, 9249, 3, 680, 340, 0, 9248, 9202, 1, 0, 0, 0, 9248, 9207, 1, 0, 0, 0, 9248, 9217, 1, 0, 0, 0, 9248, 9227, 1, 0, 0, 0, 9248, 9246, 1, 0, 0, 0, 9249, 865, 1, 0, 0, 0, 9250, 9257, 3, 884, 442, 0, 9251, 9253, 5, 1135, 0, 0, 9252, 9251, 1, 0, 0, 0, 9252, 9253, 1, 0, 0, 0, 9253, 9254, 1, 0, 0, 0, 9254, 9255, 5, 614, 0, 0, 9255, 9257, 5, 882, 0, 0, 9256, 9250, 1, 0, 0, 0, 9256, 9252, 1, 0, 0, 0, 9257, 867, 1, 0, 0, 0, 9258, 9259, 5, 2078, 0, 0, 9259, 9262, 5, 647, 0, 0, 9260, 9263, 3, 870, 435, 0, 9261, 9263, 5, 2441, 0, 0, 9262, 9260, 1, 0, 0, 0, 9262, 9261, 1, 0, 0, 0, 9263, 869, 1, 0, 0, 0, 9264, 9265, 3, 2398, 1199, 0, 9265, 871, 1, 0, 0, 0, 9266, 9276, 5, 1254, 0, 0, 9267, 9269, 5, 1241, 0, 0, 9268, 9270, 7, 97, 0, 0, 9269, 9268, 1, 0, 0, 0, 9269, 9270, 1, 0, 0, 0, 9270, 9276, 1, 0, 0, 0, 9271, 9272, 5, 1503, 0, 0, 9272, 9276, 7, 11, 0, 0, 9273, 9276, 5, 1385, 0, 0, 9274, 9276, 5, 2090, 0, 0, 9275, 9266, 1, 0, 0, 0, 9275, 9267, 1, 0, 0, 0, 9275, 9271, 1, 0, 0, 0, 9275, 9273, 1, 0, 0, 0, 9275, 9274, 1, 0, 0, 0, 9276, 873, 1, 0, 0, 0, 9277, 9278, 5, 603, 0, 0, 9278, 9279, 7, 98, 0, 0, 9279, 875, 1, 0, 0, 0, 9280, 9281, 3, 1648, 824, 0, 9281, 877, 1, 0, 0, 0, 9282, 9284, 5, 319, 0, 0, 9283, 9285, 7, 99, 0, 0, 9284, 9283, 1, 0, 0, 0, 9284, 9285, 1, 0, 0, 0, 9285, 9289, 1, 0, 0, 0, 9286, 9290, 3, 880, 440, 0, 9287, 9290, 3, 890, 445, 0, 9288, 9290, 3, 892, 446, 0, 9289, 9286, 1, 0, 0, 0, 9289, 9287, 1, 0, 0, 0, 9289, 9288, 1, 0, 0, 0, 9290, 879, 1, 0, 0, 0, 9291, 9292, 5, 2078, 0, 0, 9292, 9296, 3, 2392, 1196, 0, 9293, 9294, 5, 689, 0, 0, 9294, 9295, 5, 1202, 0, 0, 9295, 9297, 5, 543, 0, 0, 9296, 9293, 1, 0, 0, 0, 9296, 9297, 1, 0, 0, 0, 9297, 9299, 1, 0, 0, 0, 9298, 9300, 3, 912, 456, 0, 9299, 9298, 1, 0, 0, 0, 9299, 9300, 1, 0, 0, 0, 9300, 9318, 1, 0, 0, 0, 9301, 9302, 5, 952, 0, 0, 9302, 9303, 5, 556, 0, 0, 9303, 9317, 3, 1170, 585, 0, 9304, 9305, 5, 146, 0, 0, 9305, 9317, 3, 1170, 585, 0, 9306, 9317, 3, 884, 442, 0, 9307, 9308, 5, 614, 0, 0, 9308, 9317, 5, 882, 0, 0, 9309, 9317, 7, 76, 0, 0, 9310, 9311, 5, 504, 0, 0, 9311, 9317, 3, 882, 441, 0, 9312, 9317, 5, 387, 0, 0, 9313, 9317, 3, 886, 443, 0, 9314, 9317, 3, 888, 444, 0, 9315, 9317, 3, 874, 437, 0, 9316, 9301, 1, 0, 0, 0, 9316, 9304, 1, 0, 0, 0, 9316, 9306, 1, 0, 0, 0, 9316, 9307, 1, 0, 0, 0, 9316, 9309, 1, 0, 0, 0, 9316, 9310, 1, 0, 0, 0, 9316, 9312, 1, 0, 0, 0, 9316, 9313, 1, 0, 0, 0, 9316, 9314, 1, 0, 0, 0, 9316, 9315, 1, 0, 0, 0, 9317, 9320, 1, 0, 0, 0, 9318, 9316, 1, 0, 0, 0, 9318, 9319, 1, 0, 0, 0, 9319, 881, 1, 0, 0, 0, 9320, 9318, 1, 0, 0, 0, 9321, 9322, 5, 2244, 0, 0, 9322, 9323, 5, 2441, 0, 0, 9323, 883, 1, 0, 0, 0, 9324, 9325, 7, 100, 0, 0, 9325, 885, 1, 0, 0, 0, 9326, 9327, 5, 556, 0, 0, 9327, 9328, 5, 904, 0, 0, 9328, 9335, 5, 871, 0, 0, 9329, 9336, 5, 90, 0, 0, 9330, 9333, 5, 2178, 0, 0, 9331, 9332, 5, 1697, 0, 0, 9332, 9334, 3, 1170, 585, 0, 9333, 9331, 1, 0, 0, 0, 9333, 9334, 1, 0, 0, 0, 9334, 9336, 1, 0, 0, 0, 9335, 9329, 1, 0, 0, 0, 9335, 9330, 1, 0, 0, 0, 9335, 9336, 1, 0, 0, 0, 9336, 887, 1, 0, 0, 0, 9337, 9338, 5, 1643, 0, 0, 9338, 9339, 5, 1712, 0, 0, 9339, 9340, 5, 904, 0, 0, 9340, 9341, 7, 101, 0, 0, 9341, 889, 1, 0, 0, 0, 9342, 9343, 5, 2090, 0, 0, 9343, 9344, 5, 2078, 0, 0, 9344, 9348, 3, 2392, 1196, 0, 9345, 9346, 5, 689, 0, 0, 9346, 9347, 5, 1202, 0, 0, 9347, 9349, 5, 543, 0, 0, 9348, 9345, 1, 0, 0, 0, 9348, 9349, 1, 0, 0, 0, 9349, 9351, 1, 0, 0, 0, 9350, 9352, 3, 914, 457, 0, 9351, 9350, 1, 0, 0, 0, 9351, 9352, 1, 0, 0, 0, 9352, 9354, 1, 0, 0, 0, 9353, 9355, 3, 868, 434, 0, 9354, 9353, 1, 0, 0, 0, 9354, 9355, 1, 0, 0, 0, 9355, 9357, 1, 0, 0, 0, 9356, 9358, 3, 886, 443, 0, 9357, 9356, 1, 0, 0, 0, 9357, 9358, 1, 0, 0, 0, 9358, 891, 1, 0, 0, 0, 9359, 9360, 5, 2176, 0, 0, 9360, 9361, 5, 2078, 0, 0, 9361, 9365, 3, 2392, 1196, 0, 9362, 9363, 5, 689, 0, 0, 9363, 9364, 5, 1202, 0, 0, 9364, 9366, 5, 543, 0, 0, 9365, 9362, 1, 0, 0, 0, 9365, 9366, 1, 0, 0, 0, 9366, 9368, 1, 0, 0, 0, 9367, 9369, 3, 912, 456, 0, 9368, 9367, 1, 0, 0, 0, 9368, 9369, 1, 0, 0, 0, 9369, 9371, 1, 0, 0, 0, 9370, 9372, 3, 886, 443, 0, 9371, 9370, 1, 0, 0, 0, 9371, 9372, 1, 0, 0, 0, 9372, 9374, 1, 0, 0, 0, 9373, 9375, 3, 894, 447, 0, 9374, 9373, 1, 0, 0, 0, 9374, 9375, 1, 0, 0, 0, 9375, 893, 1, 0, 0, 0, 9376, 9377, 5, 1581, 0, 0, 9377, 9378, 7, 102, 0, 0, 9378, 895, 1, 0, 0, 0, 9379, 9380, 5, 319, 0, 0, 9380, 9381, 5, 2078, 0, 0, 9381, 9382, 5, 1669, 0, 0, 9382, 9386, 3, 2392, 1196, 0, 9383, 9384, 5, 736, 0, 0, 9384, 9385, 5, 1675, 0, 0, 9385, 9387, 3, 2392, 1196, 0, 9386, 9383, 1, 0, 0, 0, 9386, 9387, 1, 0, 0, 0, 9387, 9409, 1, 0, 0, 0, 9388, 9389, 5, 2244, 0, 0, 9389, 9390, 5, 2088, 0, 0, 9390, 9400, 5, 2445, 0, 0, 9391, 9392, 5, 350, 0, 0, 9392, 9397, 3, 434, 217, 0, 9393, 9394, 5, 2451, 0, 0, 9394, 9396, 3, 434, 217, 0, 9395, 9393, 1, 0, 0, 0, 9396, 9399, 1, 0, 0, 0, 9397, 9395, 1, 0, 0, 0, 9397, 9398, 1, 0, 0, 0, 9398, 9401, 1, 0, 0, 0, 9399, 9397, 1, 0, 0, 0, 9400, 9391, 1, 0, 0, 0, 9400, 9401, 1, 0, 0, 0, 9401, 9403, 1, 0, 0, 0, 9402, 9404, 3, 898, 449, 0, 9403, 9402, 1, 0, 0, 0, 9404, 9405, 1, 0, 0, 0, 9405, 9403, 1, 0, 0, 0, 9405, 9406, 1, 0, 0, 0, 9406, 9407, 1, 0, 0, 0, 9407, 9408, 5, 2446, 0, 0, 9408, 9410, 1, 0, 0, 0, 9409, 9388, 1, 0, 0, 0, 9409, 9410, 1, 0, 0, 0, 9410, 897, 1, 0, 0, 0, 9411, 9412, 5, 952, 0, 0, 9412, 9413, 5, 556, 0, 0, 9413, 9431, 3, 1170, 585, 0, 9414, 9415, 5, 146, 0, 0, 9415, 9417, 3, 2384, 1192, 0, 9416, 9418, 5, 810, 0, 0, 9417, 9416, 1, 0, 0, 0, 9417, 9418, 1, 0, 0, 0, 9418, 9431, 1, 0, 0, 0, 9419, 9431, 3, 884, 442, 0, 9420, 9421, 5, 614, 0, 0, 9421, 9431, 5, 882, 0, 0, 9422, 9431, 3, 900, 450, 0, 9423, 9431, 3, 902, 451, 0, 9424, 9431, 5, 1254, 0, 0, 9425, 9431, 5, 1241, 0, 0, 9426, 9431, 3, 886, 443, 0, 9427, 9431, 3, 888, 444, 0, 9428, 9431, 3, 874, 437, 0, 9429, 9431, 3, 1458, 729, 0, 9430, 9411, 1, 0, 0, 0, 9430, 9414, 1, 0, 0, 0, 9430, 9419, 1, 0, 0, 0, 9430, 9420, 1, 0, 0, 0, 9430, 9422, 1, 0, 0, 0, 9430, 9423, 1, 0, 0, 0, 9430, 9424, 1, 0, 0, 0, 9430, 9425, 1, 0, 0, 0, 9430, 9426, 1, 0, 0, 0, 9430, 9427, 1, 0, 0, 0, 9430, 9428, 1, 0, 0, 0, 9430, 9429, 1, 0, 0, 0, 9431, 899, 1, 0, 0, 0, 9432, 9438, 5, 504, 0, 0, 9433, 9435, 3, 882, 441, 0, 9434, 9433, 1, 0, 0, 0, 9434, 9435, 1, 0, 0, 0, 9435, 9436, 1, 0, 0, 0, 9436, 9439, 5, 503, 0, 0, 9437, 9439, 5, 385, 0, 0, 9438, 9434, 1, 0, 0, 0, 9438, 9437, 1, 0, 0, 0, 9439, 901, 1, 0, 0, 0, 9440, 9442, 5, 387, 0, 0, 9441, 9443, 3, 904, 452, 0, 9442, 9441, 1, 0, 0, 0, 9442, 9443, 1, 0, 0, 0, 9443, 9445, 1, 0, 0, 0, 9444, 9446, 3, 908, 454, 0, 9445, 9444, 1, 0, 0, 0, 9445, 9446, 1, 0, 0, 0, 9446, 9448, 1, 0, 0, 0, 9447, 9449, 3, 910, 455, 0, 9448, 9447, 1, 0, 0, 0, 9448, 9449, 1, 0, 0, 0, 9449, 9451, 1, 0, 0, 0, 9450, 9452, 3, 1198, 599, 0, 9451, 9450, 1, 0, 0, 0, 9451, 9452, 1, 0, 0, 0, 9452, 9454, 1, 0, 0, 0, 9453, 9455, 3, 1190, 595, 0, 9454, 9453, 1, 0, 0, 0, 9454, 9455, 1, 0, 0, 0, 9455, 903, 1, 0, 0, 0, 9456, 9467, 5, 2081, 0, 0, 9457, 9458, 5, 258, 0, 0, 9458, 9464, 5, 618, 0, 0, 9459, 9465, 5, 1251, 0, 0, 9460, 9461, 5, 1482, 0, 0, 9461, 9465, 3, 906, 453, 0, 9462, 9463, 5, 64, 0, 0, 9463, 9465, 3, 906, 453, 0, 9464, 9459, 1, 0, 0, 0, 9464, 9460, 1, 0, 0, 0, 9464, 9462, 1, 0, 0, 0, 9465, 9468, 1, 0, 0, 0, 9466, 9468, 5, 1072, 0, 0, 9467, 9457, 1, 0, 0, 0, 9467, 9466, 1, 0, 0, 0, 9468, 905, 1, 0, 0, 0, 9469, 9470, 7, 103, 0, 0, 9470, 907, 1, 0, 0, 0, 9471, 9476, 5, 715, 0, 0, 9472, 9473, 5, 258, 0, 0, 9473, 9474, 5, 29, 0, 0, 9474, 9477, 3, 906, 453, 0, 9475, 9477, 5, 1072, 0, 0, 9476, 9472, 1, 0, 0, 0, 9476, 9475, 1, 0, 0, 0, 9477, 909, 1, 0, 0, 0, 9478, 9480, 5, 744, 0, 0, 9479, 9481, 3, 1176, 588, 0, 9480, 9479, 1, 0, 0, 0, 9480, 9481, 1, 0, 0, 0, 9481, 9506, 1, 0, 0, 0, 9482, 9504, 5, 2094, 0, 0, 9483, 9488, 3, 2328, 1164, 0, 9484, 9485, 5, 2451, 0, 0, 9485, 9487, 3, 2328, 1164, 0, 9486, 9484, 1, 0, 0, 0, 9487, 9490, 1, 0, 0, 0, 9488, 9486, 1, 0, 0, 0, 9488, 9489, 1, 0, 0, 0, 9489, 9505, 1, 0, 0, 0, 9490, 9488, 1, 0, 0, 0, 9491, 9492, 3, 2328, 1164, 0, 9492, 9493, 5, 2244, 0, 0, 9493, 9501, 3, 716, 358, 0, 9494, 9495, 5, 2451, 0, 0, 9495, 9496, 3, 2328, 1164, 0, 9496, 9497, 5, 2244, 0, 0, 9497, 9498, 3, 716, 358, 0, 9498, 9500, 1, 0, 0, 0, 9499, 9494, 1, 0, 0, 0, 9500, 9503, 1, 0, 0, 0, 9501, 9499, 1, 0, 0, 0, 9501, 9502, 1, 0, 0, 0, 9502, 9505, 1, 0, 0, 0, 9503, 9501, 1, 0, 0, 0, 9504, 9483, 1, 0, 0, 0, 9504, 9491, 1, 0, 0, 0, 9505, 9507, 1, 0, 0, 0, 9506, 9482, 1, 0, 0, 0, 9506, 9507, 1, 0, 0, 0, 9507, 9511, 1, 0, 0, 0, 9508, 9509, 5, 1135, 0, 0, 9509, 9511, 5, 744, 0, 0, 9510, 9478, 1, 0, 0, 0, 9510, 9508, 1, 0, 0, 0, 9511, 911, 1, 0, 0, 0, 9512, 9514, 5, 350, 0, 0, 9513, 9515, 5, 2451, 0, 0, 9514, 9513, 1, 0, 0, 0, 9514, 9515, 1, 0, 0, 0, 9515, 9516, 1, 0, 0, 0, 9516, 9517, 3, 916, 458, 0, 9517, 913, 1, 0, 0, 0, 9518, 9520, 5, 2087, 0, 0, 9519, 9521, 5, 2451, 0, 0, 9520, 9519, 1, 0, 0, 0, 9520, 9521, 1, 0, 0, 0, 9521, 9522, 1, 0, 0, 0, 9522, 9523, 3, 916, 458, 0, 9523, 915, 1, 0, 0, 0, 9524, 9526, 5, 2441, 0, 0, 9525, 9524, 1, 0, 0, 0, 9525, 9526, 1, 0, 0, 0, 9526, 9529, 1, 0, 0, 0, 9527, 9528, 5, 1697, 0, 0, 9528, 9530, 3, 1170, 585, 0, 9529, 9527, 1, 0, 0, 0, 9529, 9530, 1, 0, 0, 0, 9530, 9532, 1, 0, 0, 0, 9531, 9533, 5, 1585, 0, 0, 9532, 9531, 1, 0, 0, 0, 9532, 9533, 1, 0, 0, 0, 9533, 9535, 1, 0, 0, 0, 9534, 9536, 3, 920, 460, 0, 9535, 9534, 1, 0, 0, 0, 9535, 9536, 1, 0, 0, 0, 9536, 917, 1, 0, 0, 0, 9537, 9550, 3, 1452, 726, 0, 9538, 9539, 5, 2445, 0, 0, 9539, 9544, 3, 1452, 726, 0, 9540, 9541, 5, 2451, 0, 0, 9541, 9543, 3, 1452, 726, 0, 9542, 9540, 1, 0, 0, 0, 9543, 9546, 1, 0, 0, 0, 9544, 9542, 1, 0, 0, 0, 9544, 9545, 1, 0, 0, 0, 9545, 9547, 1, 0, 0, 0, 9546, 9544, 1, 0, 0, 0, 9547, 9548, 5, 2446, 0, 0, 9548, 9550, 1, 0, 0, 0, 9549, 9537, 1, 0, 0, 0, 9549, 9538, 1, 0, 0, 0, 9550, 9553, 1, 0, 0, 0, 9551, 9552, 5, 1697, 0, 0, 9552, 9554, 3, 1170, 585, 0, 9553, 9551, 1, 0, 0, 0, 9553, 9554, 1, 0, 0, 0, 9554, 9557, 1, 0, 0, 0, 9555, 9556, 5, 146, 0, 0, 9556, 9558, 3, 1170, 585, 0, 9557, 9555, 1, 0, 0, 0, 9557, 9558, 1, 0, 0, 0, 9558, 9560, 1, 0, 0, 0, 9559, 9561, 5, 1585, 0, 0, 9560, 9559, 1, 0, 0, 0, 9560, 9561, 1, 0, 0, 0, 9561, 919, 1, 0, 0, 0, 9562, 9572, 5, 93, 0, 0, 9563, 9573, 5, 1242, 0, 0, 9564, 9567, 5, 1257, 0, 0, 9565, 9566, 5, 1023, 0, 0, 9566, 9568, 3, 1170, 585, 0, 9567, 9565, 1, 0, 0, 0, 9567, 9568, 1, 0, 0, 0, 9568, 9570, 1, 0, 0, 0, 9569, 9571, 3, 922, 461, 0, 9570, 9569, 1, 0, 0, 0, 9570, 9571, 1, 0, 0, 0, 9571, 9573, 1, 0, 0, 0, 9572, 9563, 1, 0, 0, 0, 9572, 9564, 1, 0, 0, 0, 9573, 921, 1, 0, 0, 0, 9574, 9577, 5, 928, 0, 0, 9575, 9578, 5, 2183, 0, 0, 9576, 9578, 3, 1170, 585, 0, 9577, 9575, 1, 0, 0, 0, 9577, 9576, 1, 0, 0, 0, 9578, 923, 1, 0, 0, 0, 9579, 9580, 5, 158, 0, 0, 9580, 9581, 7, 67, 0, 0, 9581, 925, 1, 0, 0, 0, 9582, 9598, 5, 1146, 0, 0, 9583, 9595, 5, 1331, 0, 0, 9584, 9586, 5, 2439, 0, 0, 9585, 9587, 3, 928, 464, 0, 9586, 9585, 1, 0, 0, 0, 9586, 9587, 1, 0, 0, 0, 9587, 9596, 1, 0, 0, 0, 9588, 9589, 5, 2445, 0, 0, 9589, 9590, 5, 397, 0, 0, 9590, 9592, 5, 2439, 0, 0, 9591, 9593, 3, 928, 464, 0, 9592, 9591, 1, 0, 0, 0, 9592, 9593, 1, 0, 0, 0, 9593, 9594, 1, 0, 0, 0, 9594, 9596, 5, 2446, 0, 0, 9595, 9584, 1, 0, 0, 0, 9595, 9588, 1, 0, 0, 0, 9595, 9596, 1, 0, 0, 0, 9596, 9598, 1, 0, 0, 0, 9597, 9582, 1, 0, 0, 0, 9597, 9583, 1, 0, 0, 0, 9598, 927, 1, 0, 0, 0, 9599, 9600, 5, 758, 0, 0, 9600, 9601, 7, 104, 0, 0, 9601, 929, 1, 0, 0, 0, 9602, 9603, 5, 42, 0, 0, 9603, 9604, 5, 917, 0, 0, 9604, 9605, 5, 2284, 0, 0, 9605, 9631, 3, 2330, 1165, 0, 9606, 9632, 3, 1188, 594, 0, 9607, 9632, 3, 938, 469, 0, 9608, 9632, 3, 1172, 586, 0, 9609, 9614, 3, 1632, 816, 0, 9610, 9611, 5, 2451, 0, 0, 9611, 9613, 3, 1632, 816, 0, 9612, 9610, 1, 0, 0, 0, 9613, 9616, 1, 0, 0, 0, 9614, 9612, 1, 0, 0, 0, 9614, 9615, 1, 0, 0, 0, 9615, 9632, 1, 0, 0, 0, 9616, 9614, 1, 0, 0, 0, 9617, 9622, 3, 1634, 817, 0, 9618, 9619, 5, 2451, 0, 0, 9619, 9621, 3, 1634, 817, 0, 9620, 9618, 1, 0, 0, 0, 9621, 9624, 1, 0, 0, 0, 9622, 9620, 1, 0, 0, 0, 9622, 9623, 1, 0, 0, 0, 9623, 9632, 1, 0, 0, 0, 9624, 9622, 1, 0, 0, 0, 9625, 9632, 3, 926, 463, 0, 9626, 9632, 3, 884, 442, 0, 9627, 9632, 3, 1278, 639, 0, 9628, 9632, 3, 1280, 640, 0, 9629, 9632, 3, 1282, 641, 0, 9630, 9632, 3, 1358, 679, 0, 9631, 9606, 1, 0, 0, 0, 9631, 9607, 1, 0, 0, 0, 9631, 9608, 1, 0, 0, 0, 9631, 9609, 1, 0, 0, 0, 9631, 9617, 1, 0, 0, 0, 9631, 9625, 1, 0, 0, 0, 9631, 9626, 1, 0, 0, 0, 9631, 9627, 1, 0, 0, 0, 9631, 9628, 1, 0, 0, 0, 9631, 9629, 1, 0, 0, 0, 9631, 9630, 1, 0, 0, 0, 9631, 9632, 1, 0, 0, 0, 9632, 9634, 1, 0, 0, 0, 9633, 9635, 3, 1556, 778, 0, 9634, 9633, 1, 0, 0, 0, 9634, 9635, 1, 0, 0, 0, 9635, 9639, 1, 0, 0, 0, 9636, 9637, 5, 2244, 0, 0, 9637, 9638, 5, 715, 0, 0, 9638, 9640, 3, 1188, 594, 0, 9639, 9636, 1, 0, 0, 0, 9639, 9640, 1, 0, 0, 0, 9640, 9642, 1, 0, 0, 0, 9641, 9643, 3, 932, 466, 0, 9642, 9641, 1, 0, 0, 0, 9642, 9643, 1, 0, 0, 0, 9643, 9651, 1, 0, 0, 0, 9644, 9645, 3, 1302, 651, 0, 9645, 9646, 5, 1482, 0, 0, 9646, 9647, 5, 1589, 0, 0, 9647, 9652, 1, 0, 0, 0, 9648, 9652, 5, 249, 0, 0, 9649, 9650, 5, 280, 0, 0, 9650, 9652, 5, 625, 0, 0, 9651, 9644, 1, 0, 0, 0, 9651, 9648, 1, 0, 0, 0, 9651, 9649, 1, 0, 0, 0, 9651, 9652, 1, 0, 0, 0, 9652, 931, 1, 0, 0, 0, 9653, 9654, 3, 934, 467, 0, 9654, 933, 1, 0, 0, 0, 9655, 9682, 5, 1529, 0, 0, 9656, 9683, 5, 576, 0, 0, 9657, 9683, 5, 250, 0, 0, 9658, 9683, 5, 614, 0, 0, 9659, 9660, 5, 1257, 0, 0, 9660, 9683, 7, 105, 0, 0, 9661, 9662, 5, 1735, 0, 0, 9662, 9663, 5, 2306, 0, 0, 9663, 9683, 3, 2070, 1035, 0, 9664, 9665, 5, 1023, 0, 0, 9665, 9683, 3, 2070, 1035, 0, 9666, 9667, 5, 2306, 0, 0, 9667, 9668, 5, 1449, 0, 0, 9668, 9683, 5, 814, 0, 0, 9669, 9671, 5, 2244, 0, 0, 9670, 9672, 5, 387, 0, 0, 9671, 9670, 1, 0, 0, 0, 9671, 9672, 1, 0, 0, 0, 9672, 9673, 1, 0, 0, 0, 9673, 9674, 5, 911, 0, 0, 9674, 9675, 5, 1594, 0, 0, 9675, 9677, 5, 1643, 0, 0, 9676, 9678, 3, 936, 468, 0, 9677, 9676, 1, 0, 0, 0, 9677, 9678, 1, 0, 0, 0, 9678, 9683, 1, 0, 0, 0, 9679, 9680, 5, 2244, 0, 0, 9680, 9681, 7, 106, 0, 0, 9681, 9683, 5, 285, 0, 0, 9682, 9656, 1, 0, 0, 0, 9682, 9657, 1, 0, 0, 0, 9682, 9658, 1, 0, 0, 0, 9682, 9659, 1, 0, 0, 0, 9682, 9661, 1, 0, 0, 0, 9682, 9664, 1, 0, 0, 0, 9682, 9666, 1, 0, 0, 0, 9682, 9669, 1, 0, 0, 0, 9682, 9679, 1, 0, 0, 0, 9683, 9684, 1, 0, 0, 0, 9684, 9682, 1, 0, 0, 0, 9684, 9685, 1, 0, 0, 0, 9685, 935, 1, 0, 0, 0, 9686, 9687, 3, 2398, 1199, 0, 9687, 937, 1, 0, 0, 0, 9688, 9689, 5, 978, 0, 0, 9689, 9690, 5, 2445, 0, 0, 9690, 9694, 3, 2328, 1164, 0, 9691, 9692, 5, 503, 0, 0, 9692, 9695, 3, 1646, 823, 0, 9693, 9695, 5, 385, 0, 0, 9694, 9691, 1, 0, 0, 0, 9694, 9693, 1, 0, 0, 0, 9694, 9695, 1, 0, 0, 0, 9695, 9696, 1, 0, 0, 0, 9696, 9697, 5, 2446, 0, 0, 9697, 939, 1, 0, 0, 0, 9698, 9699, 5, 42, 0, 0, 9699, 9700, 5, 917, 0, 0, 9700, 9701, 5, 2284, 0, 0, 9701, 9703, 5, 886, 0, 0, 9702, 9704, 5, 614, 0, 0, 9703, 9702, 1, 0, 0, 0, 9703, 9704, 1, 0, 0, 0, 9704, 9705, 1, 0, 0, 0, 9705, 9706, 5, 1257, 0, 0, 9706, 9715, 3, 2330, 1165, 0, 9707, 9716, 3, 1188, 594, 0, 9708, 9716, 3, 942, 471, 0, 9709, 9716, 3, 926, 463, 0, 9710, 9716, 3, 884, 442, 0, 9711, 9716, 3, 1278, 639, 0, 9712, 9716, 3, 1282, 641, 0, 9713, 9716, 3, 944, 472, 0, 9714, 9716, 3, 1358, 679, 0, 9715, 9707, 1, 0, 0, 0, 9715, 9708, 1, 0, 0, 0, 9715, 9709, 1, 0, 0, 0, 9715, 9710, 1, 0, 0, 0, 9715, 9711, 1, 0, 0, 0, 9715, 9712, 1, 0, 0, 0, 9715, 9713, 1, 0, 0, 0, 9715, 9714, 1, 0, 0, 0, 9715, 9716, 1, 0, 0, 0, 9716, 9718, 1, 0, 0, 0, 9717, 9719, 3, 946, 473, 0, 9718, 9717, 1, 0, 0, 0, 9718, 9719, 1, 0, 0, 0, 9719, 9721, 1, 0, 0, 0, 9720, 9722, 3, 952, 476, 0, 9721, 9720, 1, 0, 0, 0, 9721, 9722, 1, 0, 0, 0, 9722, 941, 1, 0, 0, 0, 9723, 9724, 5, 21, 0, 0, 9724, 9725, 5, 2445, 0, 0, 9725, 9726, 3, 2328, 1164, 0, 9726, 9727, 5, 2446, 0, 0, 9727, 943, 1, 0, 0, 0, 9728, 9729, 5, 990, 0, 0, 9729, 9731, 3, 1194, 597, 0, 9730, 9732, 3, 926, 463, 0, 9731, 9730, 1, 0, 0, 0, 9731, 9732, 1, 0, 0, 0, 9732, 945, 1, 0, 0, 0, 9733, 9766, 5, 21, 0, 0, 9734, 9735, 5, 1236, 0, 0, 9735, 9741, 5, 687, 0, 0, 9736, 9737, 5, 1449, 0, 0, 9737, 9741, 5, 814, 0, 0, 9738, 9741, 5, 1599, 0, 0, 9739, 9741, 5, 1651, 0, 0, 9740, 9734, 1, 0, 0, 0, 9740, 9736, 1, 0, 0, 0, 9740, 9738, 1, 0, 0, 0, 9740, 9739, 1, 0, 0, 0, 9741, 9753, 1, 0, 0, 0, 9742, 9743, 5, 2445, 0, 0, 9743, 9748, 3, 2328, 1164, 0, 9744, 9745, 5, 2451, 0, 0, 9745, 9747, 3, 2328, 1164, 0, 9746, 9744, 1, 0, 0, 0, 9747, 9750, 1, 0, 0, 0, 9748, 9746, 1, 0, 0, 0, 9748, 9749, 1, 0, 0, 0, 9749, 9751, 1, 0, 0, 0, 9750, 9748, 1, 0, 0, 0, 9751, 9752, 5, 2446, 0, 0, 9752, 9754, 1, 0, 0, 0, 9753, 9742, 1, 0, 0, 0, 9753, 9754, 1, 0, 0, 0, 9754, 9767, 1, 0, 0, 0, 9755, 9756, 5, 2445, 0, 0, 9756, 9761, 3, 2328, 1164, 0, 9757, 9758, 5, 2451, 0, 0, 9758, 9760, 3, 2328, 1164, 0, 9759, 9757, 1, 0, 0, 0, 9760, 9763, 1, 0, 0, 0, 9761, 9759, 1, 0, 0, 0, 9761, 9762, 1, 0, 0, 0, 9762, 9764, 1, 0, 0, 0, 9763, 9761, 1, 0, 0, 0, 9764, 9765, 5, 2446, 0, 0, 9765, 9767, 1, 0, 0, 0, 9766, 9740, 1, 0, 0, 0, 9766, 9755, 1, 0, 0, 0, 9767, 9769, 1, 0, 0, 0, 9768, 9770, 3, 950, 475, 0, 9769, 9768, 1, 0, 0, 0, 9769, 9770, 1, 0, 0, 0, 9770, 947, 1, 0, 0, 0, 9771, 9772, 5, 319, 0, 0, 9772, 9773, 5, 917, 0, 0, 9773, 9774, 5, 2284, 0, 0, 9774, 9775, 5, 886, 0, 0, 9775, 9776, 5, 1257, 0, 0, 9776, 9786, 3, 2330, 1165, 0, 9777, 9783, 3, 1188, 594, 0, 9778, 9779, 5, 2078, 0, 0, 9779, 9783, 3, 2392, 1196, 0, 9780, 9783, 3, 884, 442, 0, 9781, 9783, 7, 107, 0, 0, 9782, 9777, 1, 0, 0, 0, 9782, 9778, 1, 0, 0, 0, 9782, 9780, 1, 0, 0, 0, 9782, 9781, 1, 0, 0, 0, 9783, 9784, 1, 0, 0, 0, 9784, 9782, 1, 0, 0, 0, 9784, 9785, 1, 0, 0, 0, 9785, 9787, 1, 0, 0, 0, 9786, 9782, 1, 0, 0, 0, 9786, 9787, 1, 0, 0, 0, 9787, 9789, 1, 0, 0, 0, 9788, 9790, 3, 926, 463, 0, 9789, 9788, 1, 0, 0, 0, 9789, 9790, 1, 0, 0, 0, 9790, 9830, 1, 0, 0, 0, 9791, 9807, 5, 2306, 0, 0, 9792, 9794, 5, 2451, 0, 0, 9793, 9792, 1, 0, 0, 0, 9793, 9794, 1, 0, 0, 0, 9794, 9803, 1, 0, 0, 0, 9795, 9796, 5, 1236, 0, 0, 9796, 9804, 5, 687, 0, 0, 9797, 9798, 5, 1449, 0, 0, 9798, 9804, 5, 814, 0, 0, 9799, 9804, 5, 1599, 0, 0, 9800, 9804, 5, 1651, 0, 0, 9801, 9802, 5, 242, 0, 0, 9802, 9804, 5, 1625, 0, 0, 9803, 9795, 1, 0, 0, 0, 9803, 9797, 1, 0, 0, 0, 9803, 9799, 1, 0, 0, 0, 9803, 9800, 1, 0, 0, 0, 9803, 9801, 1, 0, 0, 0, 9804, 9806, 1, 0, 0, 0, 9805, 9793, 1, 0, 0, 0, 9806, 9809, 1, 0, 0, 0, 9807, 9805, 1, 0, 0, 0, 9807, 9808, 1, 0, 0, 0, 9808, 9823, 1, 0, 0, 0, 9809, 9807, 1, 0, 0, 0, 9810, 9815, 5, 2445, 0, 0, 9811, 9813, 5, 2451, 0, 0, 9812, 9811, 1, 0, 0, 0, 9812, 9813, 1, 0, 0, 0, 9813, 9814, 1, 0, 0, 0, 9814, 9816, 3, 2398, 1199, 0, 9815, 9812, 1, 0, 0, 0, 9816, 9817, 1, 0, 0, 0, 9817, 9815, 1, 0, 0, 0, 9817, 9818, 1, 0, 0, 0, 9818, 9819, 1, 0, 0, 0, 9819, 9821, 5, 2446, 0, 0, 9820, 9822, 3, 950, 475, 0, 9821, 9820, 1, 0, 0, 0, 9821, 9822, 1, 0, 0, 0, 9822, 9824, 1, 0, 0, 0, 9823, 9810, 1, 0, 0, 0, 9823, 9824, 1, 0, 0, 0, 9824, 9826, 1, 0, 0, 0, 9825, 9827, 3, 952, 476, 0, 9826, 9825, 1, 0, 0, 0, 9826, 9827, 1, 0, 0, 0, 9827, 9829, 1, 0, 0, 0, 9828, 9791, 1, 0, 0, 0, 9829, 9832, 1, 0, 0, 0, 9830, 9828, 1, 0, 0, 0, 9830, 9831, 1, 0, 0, 0, 9831, 949, 1, 0, 0, 0, 9832, 9830, 1, 0, 0, 0, 9833, 9834, 7, 108, 0, 0, 9834, 9835, 5, 1019, 0, 0, 9835, 9836, 5, 2255, 0, 0, 9836, 951, 1, 0, 0, 0, 9837, 9838, 5, 1473, 0, 0, 9838, 9840, 5, 696, 0, 0, 9839, 9841, 7, 109, 0, 0, 9840, 9839, 1, 0, 0, 0, 9840, 9841, 1, 0, 0, 0, 9841, 953, 1, 0, 0, 0, 9842, 9843, 5, 319, 0, 0, 9843, 9844, 5, 917, 0, 0, 9844, 9845, 5, 2360, 0, 0, 9845, 9850, 3, 964, 482, 0, 9846, 9847, 5, 2445, 0, 0, 9847, 9848, 3, 2346, 1173, 0, 9848, 9849, 5, 2446, 0, 0, 9849, 9851, 1, 0, 0, 0, 9850, 9846, 1, 0, 0, 0, 9850, 9851, 1, 0, 0, 0, 9851, 9853, 1, 0, 0, 0, 9852, 9854, 3, 962, 481, 0, 9853, 9852, 1, 0, 0, 0, 9853, 9854, 1, 0, 0, 0, 9854, 9856, 1, 0, 0, 0, 9855, 9857, 3, 960, 480, 0, 9856, 9855, 1, 0, 0, 0, 9856, 9857, 1, 0, 0, 0, 9857, 9860, 1, 0, 0, 0, 9858, 9859, 7, 17, 0, 0, 9859, 9861, 5, 1470, 0, 0, 9860, 9858, 1, 0, 0, 0, 9860, 9861, 1, 0, 0, 0, 9861, 9864, 1, 0, 0, 0, 9862, 9865, 3, 970, 485, 0, 9863, 9865, 3, 972, 486, 0, 9864, 9862, 1, 0, 0, 0, 9864, 9863, 1, 0, 0, 0, 9865, 955, 1, 0, 0, 0, 9866, 9867, 5, 42, 0, 0, 9867, 9868, 5, 917, 0, 0, 9868, 9869, 5, 2360, 0, 0, 9869, 9877, 3, 964, 482, 0, 9870, 9878, 3, 962, 481, 0, 9871, 9878, 3, 960, 480, 0, 9872, 9873, 7, 17, 0, 0, 9873, 9878, 5, 1470, 0, 0, 9874, 9878, 5, 249, 0, 0, 9875, 9878, 5, 1509, 0, 0, 9876, 9878, 5, 2201, 0, 0, 9877, 9870, 1, 0, 0, 0, 9877, 9871, 1, 0, 0, 0, 9877, 9872, 1, 0, 0, 0, 9877, 9874, 1, 0, 0, 0, 9877, 9875, 1, 0, 0, 0, 9877, 9876, 1, 0, 0, 0, 9878, 957, 1, 0, 0, 0, 9879, 9880, 5, 467, 0, 0, 9880, 9881, 5, 917, 0, 0, 9881, 9882, 5, 2360, 0, 0, 9882, 9883, 3, 964, 482, 0, 9883, 959, 1, 0, 0, 0, 9884, 9886, 5, 1529, 0, 0, 9885, 9887, 7, 110, 0, 0, 9886, 9885, 1, 0, 0, 0, 9886, 9887, 1, 0, 0, 0, 9887, 9899, 1, 0, 0, 0, 9888, 9897, 5, 1257, 0, 0, 9889, 9898, 5, 404, 0, 0, 9890, 9898, 5, 242, 0, 0, 9891, 9898, 5, 865, 0, 0, 9892, 9893, 5, 349, 0, 0, 9893, 9898, 5, 989, 0, 0, 9894, 9895, 5, 865, 0, 0, 9895, 9896, 5, 349, 0, 0, 9896, 9898, 5, 989, 0, 0, 9897, 9889, 1, 0, 0, 0, 9897, 9890, 1, 0, 0, 0, 9897, 9891, 1, 0, 0, 0, 9897, 9892, 1, 0, 0, 0, 9897, 9894, 1, 0, 0, 0, 9898, 9900, 1, 0, 0, 0, 9899, 9888, 1, 0, 0, 0, 9899, 9900, 1, 0, 0, 0, 9900, 961, 1, 0, 0, 0, 9901, 9902, 5, 1367, 0, 0, 9902, 9911, 3, 2384, 1192, 0, 9903, 9904, 5, 1370, 0, 0, 9904, 9911, 3, 2384, 1192, 0, 9905, 9906, 5, 1618, 0, 0, 9906, 9911, 3, 2384, 1192, 0, 9907, 9908, 5, 2078, 0, 0, 9908, 9911, 3, 1648, 824, 0, 9909, 9911, 7, 107, 0, 0, 9910, 9901, 1, 0, 0, 0, 9910, 9903, 1, 0, 0, 0, 9910, 9905, 1, 0, 0, 0, 9910, 9907, 1, 0, 0, 0, 9910, 9909, 1, 0, 0, 0, 9911, 9912, 1, 0, 0, 0, 9912, 9910, 1, 0, 0, 0, 9912, 9913, 1, 0, 0, 0, 9913, 963, 1, 0, 0, 0, 9914, 9917, 3, 2390, 1195, 0, 9915, 9916, 5, 2438, 0, 0, 9916, 9918, 3, 2392, 1196, 0, 9917, 9915, 1, 0, 0, 0, 9917, 9918, 1, 0, 0, 0, 9918, 965, 1, 0, 0, 0, 9919, 9922, 3, 2390, 1195, 0, 9920, 9921, 5, 2438, 0, 0, 9921, 9923, 3, 2392, 1196, 0, 9922, 9920, 1, 0, 0, 0, 9922, 9923, 1, 0, 0, 0, 9923, 967, 1, 0, 0, 0, 9924, 9929, 3, 2390, 1195, 0, 9925, 9926, 5, 2438, 0, 0, 9926, 9928, 3, 2392, 1196, 0, 9927, 9925, 1, 0, 0, 0, 9928, 9931, 1, 0, 0, 0, 9929, 9927, 1, 0, 0, 0, 9929, 9930, 1, 0, 0, 0, 9930, 969, 1, 0, 0, 0, 9931, 9929, 1, 0, 0, 0, 9932, 9933, 5, 1257, 0, 0, 9933, 9934, 3, 2330, 1165, 0, 9934, 9935, 5, 2445, 0, 0, 9935, 9936, 3, 2346, 1173, 0, 9936, 9937, 5, 2446, 0, 0, 9937, 971, 1, 0, 0, 0, 9938, 9939, 5, 69, 0, 0, 9939, 9940, 3, 1888, 944, 0, 9940, 973, 1, 0, 0, 0, 9941, 9942, 5, 42, 0, 0, 9942, 9943, 5, 1264, 0, 0, 9943, 9947, 3, 966, 483, 0, 9944, 9948, 3, 982, 491, 0, 9945, 9948, 3, 994, 497, 0, 9946, 9948, 5, 249, 0, 0, 9947, 9944, 1, 0, 0, 0, 9947, 9945, 1, 0, 0, 0, 9947, 9946, 1, 0, 0, 0, 9948, 975, 1, 0, 0, 0, 9949, 9950, 5, 467, 0, 0, 9950, 9951, 5, 1264, 0, 0, 9951, 9953, 3, 966, 483, 0, 9952, 9954, 5, 614, 0, 0, 9953, 9952, 1, 0, 0, 0, 9953, 9954, 1, 0, 0, 0, 9954, 977, 1, 0, 0, 0, 9955, 9958, 5, 319, 0, 0, 9956, 9957, 5, 1305, 0, 0, 9957, 9959, 5, 1560, 0, 0, 9958, 9956, 1, 0, 0, 0, 9958, 9959, 1, 0, 0, 0, 9959, 9960, 1, 0, 0, 0, 9960, 9961, 5, 1264, 0, 0, 9961, 9962, 3, 966, 483, 0, 9962, 9963, 5, 133, 0, 0, 9963, 9968, 3, 980, 490, 0, 9964, 9965, 5, 2451, 0, 0, 9965, 9967, 3, 980, 490, 0, 9966, 9964, 1, 0, 0, 0, 9967, 9970, 1, 0, 0, 0, 9968, 9966, 1, 0, 0, 0, 9968, 9969, 1, 0, 0, 0, 9969, 9974, 1, 0, 0, 0, 9970, 9968, 1, 0, 0, 0, 9971, 9972, 5, 1679, 0, 0, 9972, 9973, 5, 2469, 0, 0, 9973, 9975, 7, 21, 0, 0, 9974, 9971, 1, 0, 0, 0, 9974, 9975, 1, 0, 0, 0, 9975, 979, 1, 0, 0, 0, 9976, 9977, 5, 2445, 0, 0, 9977, 9982, 3, 2364, 1182, 0, 9978, 9979, 5, 2451, 0, 0, 9979, 9981, 3, 2364, 1182, 0, 9980, 9978, 1, 0, 0, 0, 9981, 9984, 1, 0, 0, 0, 9982, 9980, 1, 0, 0, 0, 9982, 9983, 1, 0, 0, 0, 9983, 9985, 1, 0, 0, 0, 9984, 9982, 1, 0, 0, 0, 9985, 9986, 5, 2446, 0, 0, 9986, 9988, 5, 1584, 0, 0, 9987, 9989, 5, 2445, 0, 0, 9988, 9987, 1, 0, 0, 0, 9988, 9989, 1, 0, 0, 0, 9989, 9990, 1, 0, 0, 0, 9990, 9992, 3, 2364, 1182, 0, 9991, 9993, 5, 2446, 0, 0, 9992, 9991, 1, 0, 0, 0, 9992, 9993, 1, 0, 0, 0, 9993, 9995, 1, 0, 0, 0, 9994, 9996, 3, 984, 492, 0, 9995, 9994, 1, 0, 0, 0, 9995, 9996, 1, 0, 0, 0, 9996, 9997, 1, 0, 0, 0, 9997, 9998, 3, 992, 496, 0, 9998, 981, 1, 0, 0, 0, 9999, 10000, 5, 21, 0, 0, 10000, 10001, 5, 133, 0, 0, 10001, 10002, 3, 980, 490, 0, 10002, 983, 1, 0, 0, 0, 10003, 10004, 5, 48, 0, 0, 10004, 10005, 5, 2139, 0, 0, 10005, 10008, 3, 986, 493, 0, 10006, 10008, 3, 990, 495, 0, 10007, 10003, 1, 0, 0, 0, 10007, 10006, 1, 0, 0, 0, 10008, 985, 1, 0, 0, 0, 10009, 10014, 3, 988, 494, 0, 10010, 10011, 5, 2451, 0, 0, 10011, 10013, 3, 988, 494, 0, 10012, 10010, 1, 0, 0, 0, 10013, 10016, 1, 0, 0, 0, 10014, 10012, 1, 0, 0, 0, 10014, 10015, 1, 0, 0, 0, 10015, 987, 1, 0, 0, 0, 10016, 10014, 1, 0, 0, 0, 10017, 10018, 3, 2338, 1169, 0, 10018, 10019, 5, 2445, 0, 0, 10019, 10024, 3, 2364, 1182, 0, 10020, 10021, 5, 2451, 0, 0, 10021, 10023, 3, 2364, 1182, 0, 10022, 10020, 1, 0, 0, 0, 10023, 10026, 1, 0, 0, 0, 10024, 10022, 1, 0, 0, 0, 10024, 10025, 1, 0, 0, 0, 10025, 10027, 1, 0, 0, 0, 10026, 10024, 1, 0, 0, 0, 10027, 10028, 5, 2446, 0, 0, 10028, 989, 1, 0, 0, 0, 10029, 10030, 5, 2306, 0, 0, 10030, 10031, 5, 715, 0, 0, 10031, 10032, 5, 294, 0, 0, 10032, 10033, 5, 2451, 0, 0, 10033, 10034, 5, 1620, 0, 0, 10034, 10035, 5, 294, 0, 0, 10035, 10039, 3, 2280, 1140, 0, 10036, 10037, 5, 260, 0, 0, 10037, 10038, 5, 48, 0, 0, 10038, 10040, 5, 349, 0, 0, 10039, 10036, 1, 0, 0, 0, 10039, 10040, 1, 0, 0, 0, 10040, 10044, 1, 0, 0, 0, 10041, 10042, 5, 2306, 0, 0, 10042, 10043, 5, 237, 0, 0, 10043, 10045, 5, 294, 0, 0, 10044, 10041, 1, 0, 0, 0, 10044, 10045, 1, 0, 0, 0, 10045, 991, 1, 0, 0, 0, 10046, 10047, 5, 2244, 0, 0, 10047, 10048, 3, 968, 484, 0, 10048, 993, 1, 0, 0, 0, 10049, 10050, 5, 467, 0, 0, 10050, 10051, 5, 133, 0, 0, 10051, 10052, 5, 2445, 0, 0, 10052, 10057, 3, 2364, 1182, 0, 10053, 10054, 5, 2451, 0, 0, 10054, 10056, 3, 2364, 1182, 0, 10055, 10053, 1, 0, 0, 0, 10056, 10059, 1, 0, 0, 0, 10057, 10055, 1, 0, 0, 0, 10057, 10058, 1, 0, 0, 0, 10058, 10060, 1, 0, 0, 0, 10059, 10057, 1, 0, 0, 0, 10060, 10062, 5, 2446, 0, 0, 10061, 10063, 5, 614, 0, 0, 10062, 10061, 1, 0, 0, 0, 10062, 10063, 1, 0, 0, 0, 10063, 995, 1, 0, 0, 0, 10064, 10065, 5, 319, 0, 0, 10065, 10066, 5, 917, 0, 0, 10066, 10067, 5, 2284, 0, 0, 10067, 10070, 3, 2330, 1165, 0, 10068, 10069, 5, 1244, 0, 0, 10069, 10071, 3, 2302, 1151, 0, 10070, 10068, 1, 0, 0, 0, 10070, 10071, 1, 0, 0, 0, 10071, 10089, 1, 0, 0, 0, 10072, 10075, 5, 2445, 0, 0, 10073, 10076, 3, 998, 499, 0, 10074, 10076, 3, 1000, 500, 0, 10075, 10073, 1, 0, 0, 0, 10075, 10074, 1, 0, 0, 0, 10076, 10084, 1, 0, 0, 0, 10077, 10080, 5, 2451, 0, 0, 10078, 10081, 3, 998, 499, 0, 10079, 10081, 3, 1000, 500, 0, 10080, 10078, 1, 0, 0, 0, 10080, 10079, 1, 0, 0, 0, 10081, 10083, 1, 0, 0, 0, 10082, 10077, 1, 0, 0, 0, 10083, 10086, 1, 0, 0, 0, 10084, 10082, 1, 0, 0, 0, 10084, 10085, 1, 0, 0, 0, 10085, 10087, 1, 0, 0, 0, 10086, 10084, 1, 0, 0, 0, 10087, 10088, 5, 2446, 0, 0, 10088, 10090, 1, 0, 0, 0, 10089, 10072, 1, 0, 0, 0, 10089, 10090, 1, 0, 0, 0, 10090, 10111, 1, 0, 0, 0, 10091, 10092, 5, 1257, 0, 0, 10092, 10093, 5, 1432, 0, 0, 10093, 10097, 5, 2081, 0, 0, 10094, 10095, 7, 2, 0, 0, 10095, 10096, 5, 1521, 0, 0, 10096, 10098, 5, 1435, 0, 0, 10097, 10094, 1, 0, 0, 0, 10097, 10098, 1, 0, 0, 0, 10098, 10112, 1, 0, 0, 0, 10099, 10101, 3, 1196, 598, 0, 10100, 10099, 1, 0, 0, 0, 10100, 10101, 1, 0, 0, 0, 10101, 10103, 1, 0, 0, 0, 10102, 10104, 7, 107, 0, 0, 10103, 10102, 1, 0, 0, 0, 10103, 10104, 1, 0, 0, 0, 10104, 10106, 1, 0, 0, 0, 10105, 10107, 3, 926, 463, 0, 10106, 10105, 1, 0, 0, 0, 10106, 10107, 1, 0, 0, 0, 10107, 10109, 1, 0, 0, 0, 10108, 10110, 3, 924, 462, 0, 10109, 10108, 1, 0, 0, 0, 10109, 10110, 1, 0, 0, 0, 10110, 10112, 1, 0, 0, 0, 10111, 10091, 1, 0, 0, 0, 10111, 10100, 1, 0, 0, 0, 10112, 10130, 1, 0, 0, 0, 10113, 10114, 5, 2244, 0, 0, 10114, 10124, 5, 715, 0, 0, 10115, 10119, 3, 1188, 594, 0, 10116, 10117, 5, 2078, 0, 0, 10117, 10119, 3, 2392, 1196, 0, 10118, 10115, 1, 0, 0, 0, 10118, 10116, 1, 0, 0, 0, 10119, 10120, 1, 0, 0, 0, 10120, 10118, 1, 0, 0, 0, 10120, 10121, 1, 0, 0, 0, 10121, 10123, 1, 0, 0, 0, 10122, 10118, 1, 0, 0, 0, 10123, 10126, 1, 0, 0, 0, 10124, 10122, 1, 0, 0, 0, 10124, 10125, 1, 0, 0, 0, 10125, 10131, 1, 0, 0, 0, 10126, 10124, 1, 0, 0, 0, 10127, 10128, 5, 2244, 0, 0, 10128, 10129, 5, 1135, 0, 0, 10129, 10131, 5, 715, 0, 0, 10130, 10113, 1, 0, 0, 0, 10130, 10127, 1, 0, 0, 0, 10130, 10131, 1, 0, 0, 0, 10131, 10133, 1, 0, 0, 0, 10132, 10134, 3, 1002, 501, 0, 10133, 10132, 1, 0, 0, 0, 10133, 10134, 1, 0, 0, 0, 10134, 10137, 1, 0, 0, 0, 10135, 10136, 5, 618, 0, 0, 10136, 10138, 5, 2205, 0, 0, 10137, 10135, 1, 0, 0, 0, 10137, 10138, 1, 0, 0, 0, 10138, 10142, 1, 0, 0, 0, 10139, 10140, 7, 17, 0, 0, 10140, 10141, 5, 1482, 0, 0, 10141, 10143, 5, 1589, 0, 0, 10142, 10139, 1, 0, 0, 0, 10142, 10143, 1, 0, 0, 0, 10143, 10144, 1, 0, 0, 0, 10144, 10145, 5, 69, 0, 0, 10145, 10146, 3, 1860, 930, 0, 10146, 997, 1, 0, 0, 0, 10147, 10148, 5, 1626, 0, 0, 10148, 10149, 5, 618, 0, 0, 10149, 10150, 5, 2445, 0, 0, 10150, 10151, 3, 2390, 1195, 0, 10151, 10152, 5, 2446, 0, 0, 10152, 10156, 5, 783, 0, 0, 10153, 10154, 3, 2274, 1137, 0, 10154, 10155, 5, 2438, 0, 0, 10155, 10157, 1, 0, 0, 0, 10156, 10153, 1, 0, 0, 0, 10156, 10157, 1, 0, 0, 0, 10157, 10158, 1, 0, 0, 0, 10158, 10159, 3, 2390, 1195, 0, 10159, 999, 1, 0, 0, 0, 10160, 10163, 3, 2390, 1195, 0, 10161, 10163, 3, 2388, 1194, 0, 10162, 10160, 1, 0, 0, 0, 10162, 10161, 1, 0, 0, 0, 10163, 10166, 1, 0, 0, 0, 10164, 10165, 5, 503, 0, 0, 10165, 10167, 3, 1646, 823, 0, 10166, 10164, 1, 0, 0, 0, 10166, 10167, 1, 0, 0, 0, 10167, 1001, 1, 0, 0, 0, 10168, 10169, 5, 1018, 0, 0, 10169, 10208, 5, 1529, 0, 0, 10170, 10203, 5, 1529, 0, 0, 10171, 10204, 7, 111, 0, 0, 10172, 10173, 5, 1257, 0, 0, 10173, 10204, 7, 105, 0, 0, 10174, 10175, 5, 1735, 0, 0, 10175, 10178, 5, 2306, 0, 0, 10176, 10178, 5, 1023, 0, 0, 10177, 10174, 1, 0, 0, 0, 10177, 10176, 1, 0, 0, 0, 10178, 10204, 1, 0, 0, 0, 10179, 10183, 5, 2306, 0, 0, 10180, 10181, 5, 1449, 0, 0, 10181, 10184, 5, 814, 0, 0, 10182, 10184, 5, 1599, 0, 0, 10183, 10180, 1, 0, 0, 0, 10183, 10182, 1, 0, 0, 0, 10184, 10204, 1, 0, 0, 0, 10185, 10198, 5, 2244, 0, 0, 10186, 10188, 5, 387, 0, 0, 10187, 10189, 7, 112, 0, 0, 10188, 10187, 1, 0, 0, 0, 10188, 10189, 1, 0, 0, 0, 10189, 10190, 1, 0, 0, 0, 10190, 10191, 5, 1594, 0, 0, 10191, 10199, 5, 1643, 0, 0, 10192, 10194, 7, 112, 0, 0, 10193, 10192, 1, 0, 0, 0, 10193, 10194, 1, 0, 0, 0, 10194, 10195, 1, 0, 0, 0, 10195, 10196, 5, 1594, 0, 0, 10196, 10197, 5, 1643, 0, 0, 10197, 10199, 5, 2478, 0, 0, 10198, 10186, 1, 0, 0, 0, 10198, 10193, 1, 0, 0, 0, 10199, 10204, 1, 0, 0, 0, 10200, 10201, 5, 2244, 0, 0, 10201, 10202, 7, 106, 0, 0, 10202, 10204, 5, 285, 0, 0, 10203, 10171, 1, 0, 0, 0, 10203, 10172, 1, 0, 0, 0, 10203, 10177, 1, 0, 0, 0, 10203, 10179, 1, 0, 0, 0, 10203, 10185, 1, 0, 0, 0, 10203, 10200, 1, 0, 0, 0, 10204, 10205, 1, 0, 0, 0, 10205, 10203, 1, 0, 0, 0, 10205, 10206, 1, 0, 0, 0, 10206, 10208, 1, 0, 0, 0, 10207, 10168, 1, 0, 0, 0, 10207, 10170, 1, 0, 0, 0, 10208, 1003, 1, 0, 0, 0, 10209, 10210, 5, 467, 0, 0, 10210, 10211, 5, 917, 0, 0, 10211, 10212, 5, 2284, 0, 0, 10212, 10215, 3, 2330, 1165, 0, 10213, 10214, 5, 1445, 0, 0, 10214, 10216, 5, 2081, 0, 0, 10215, 10213, 1, 0, 0, 0, 10215, 10216, 1, 0, 0, 0, 10216, 1005, 1, 0, 0, 0, 10217, 10218, 5, 467, 0, 0, 10218, 10219, 5, 917, 0, 0, 10219, 10220, 5, 2284, 0, 0, 10220, 10223, 5, 886, 0, 0, 10221, 10222, 5, 689, 0, 0, 10222, 10224, 5, 543, 0, 0, 10223, 10221, 1, 0, 0, 0, 10223, 10224, 1, 0, 0, 0, 10224, 10225, 1, 0, 0, 0, 10225, 10226, 5, 1257, 0, 0, 10226, 10227, 3, 2330, 1165, 0, 10227, 1007, 1, 0, 0, 0, 10228, 10231, 5, 319, 0, 0, 10229, 10230, 5, 1305, 0, 0, 10230, 10232, 5, 1560, 0, 0, 10231, 10229, 1, 0, 0, 0, 10231, 10232, 1, 0, 0, 0, 10232, 10233, 1, 0, 0, 0, 10233, 10234, 5, 294, 0, 0, 10234, 10235, 3, 1010, 505, 0, 10235, 10239, 5, 2244, 0, 0, 10236, 10237, 3, 2338, 1169, 0, 10237, 10238, 5, 2438, 0, 0, 10238, 10240, 1, 0, 0, 0, 10239, 10236, 1, 0, 0, 0, 10239, 10240, 1, 0, 0, 0, 10240, 10241, 1, 0, 0, 0, 10241, 10246, 3, 2278, 1139, 0, 10242, 10243, 5, 739, 0, 0, 10243, 10247, 7, 71, 0, 0, 10244, 10245, 5, 5, 0, 0, 10245, 10247, 5, 641, 0, 0, 10246, 10242, 1, 0, 0, 0, 10246, 10244, 1, 0, 0, 0, 10246, 10247, 1, 0, 0, 0, 10247, 1009, 1, 0, 0, 0, 10248, 10249, 3, 2392, 1196, 0, 10249, 1011, 1, 0, 0, 0, 10250, 10251, 5, 319, 0, 0, 10251, 10252, 5, 220, 0, 0, 10252, 10253, 3, 464, 232, 0, 10253, 10254, 5, 2445, 0, 0, 10254, 10255, 3, 2328, 1164, 0, 10255, 10257, 3, 2364, 1182, 0, 10256, 10258, 5, 1707, 0, 0, 10257, 10256, 1, 0, 0, 0, 10257, 10258, 1, 0, 0, 0, 10258, 10267, 1, 0, 0, 0, 10259, 10260, 5, 2451, 0, 0, 10260, 10261, 3, 2328, 1164, 0, 10261, 10263, 3, 2364, 1182, 0, 10262, 10264, 5, 1707, 0, 0, 10263, 10262, 1, 0, 0, 0, 10263, 10264, 1, 0, 0, 0, 10264, 10266, 1, 0, 0, 0, 10265, 10259, 1, 0, 0, 0, 10266, 10269, 1, 0, 0, 0, 10267, 10265, 1, 0, 0, 0, 10267, 10268, 1, 0, 0, 0, 10268, 10270, 1, 0, 0, 0, 10269, 10267, 1, 0, 0, 0, 10270, 10290, 5, 2446, 0, 0, 10271, 10289, 3, 1188, 594, 0, 10272, 10273, 5, 1697, 0, 0, 10273, 10289, 3, 1170, 585, 0, 10274, 10275, 5, 2078, 0, 0, 10275, 10289, 3, 1648, 824, 0, 10276, 10289, 5, 715, 0, 0, 10277, 10278, 5, 1693, 0, 0, 10278, 10280, 5, 2081, 0, 0, 10279, 10277, 1, 0, 0, 0, 10279, 10280, 1, 0, 0, 0, 10280, 10281, 1, 0, 0, 0, 10281, 10282, 5, 659, 0, 0, 10282, 10286, 5, 2439, 0, 0, 10283, 10284, 5, 658, 0, 0, 10284, 10285, 5, 783, 0, 0, 10285, 10287, 3, 2070, 1035, 0, 10286, 10283, 1, 0, 0, 0, 10286, 10287, 1, 0, 0, 0, 10287, 10289, 1, 0, 0, 0, 10288, 10271, 1, 0, 0, 0, 10288, 10272, 1, 0, 0, 0, 10288, 10274, 1, 0, 0, 0, 10288, 10276, 1, 0, 0, 0, 10288, 10279, 1, 0, 0, 0, 10289, 10292, 1, 0, 0, 0, 10290, 10288, 1, 0, 0, 0, 10290, 10291, 1, 0, 0, 0, 10291, 10294, 1, 0, 0, 0, 10292, 10290, 1, 0, 0, 0, 10293, 10295, 3, 926, 463, 0, 10294, 10293, 1, 0, 0, 0, 10294, 10295, 1, 0, 0, 0, 10295, 10297, 1, 0, 0, 0, 10296, 10298, 7, 113, 0, 0, 10297, 10296, 1, 0, 0, 0, 10297, 10298, 1, 0, 0, 0, 10298, 10300, 1, 0, 0, 0, 10299, 10301, 7, 107, 0, 0, 10300, 10299, 1, 0, 0, 0, 10300, 10301, 1, 0, 0, 0, 10301, 1013, 1, 0, 0, 0, 10302, 10304, 5, 319, 0, 0, 10303, 10305, 5, 906, 0, 0, 10304, 10303, 1, 0, 0, 0, 10304, 10305, 1, 0, 0, 0, 10305, 10306, 1, 0, 0, 0, 10306, 10307, 5, 1461, 0, 0, 10307, 10308, 3, 2392, 1196, 0, 10308, 10311, 5, 856, 0, 0, 10309, 10312, 3, 1016, 508, 0, 10310, 10312, 3, 1018, 509, 0, 10311, 10309, 1, 0, 0, 0, 10311, 10310, 1, 0, 0, 0, 10312, 10313, 1, 0, 0, 0, 10313, 10311, 1, 0, 0, 0, 10313, 10314, 1, 0, 0, 0, 10314, 10316, 1, 0, 0, 0, 10315, 10317, 3, 764, 382, 0, 10316, 10315, 1, 0, 0, 0, 10316, 10317, 1, 0, 0, 0, 10317, 1015, 1, 0, 0, 0, 10318, 10319, 7, 114, 0, 0, 10319, 10327, 7, 115, 0, 0, 10320, 10324, 5, 1454, 0, 0, 10321, 10325, 3, 1170, 585, 0, 10322, 10325, 5, 2183, 0, 0, 10323, 10325, 5, 387, 0, 0, 10324, 10321, 1, 0, 0, 0, 10324, 10322, 1, 0, 0, 0, 10324, 10323, 1, 0, 0, 0, 10325, 10327, 1, 0, 0, 0, 10326, 10318, 1, 0, 0, 0, 10326, 10320, 1, 0, 0, 0, 10327, 1017, 1, 0, 0, 0, 10328, 10332, 7, 116, 0, 0, 10329, 10333, 3, 2070, 1035, 0, 10330, 10333, 5, 2183, 0, 0, 10331, 10333, 5, 387, 0, 0, 10332, 10329, 1, 0, 0, 0, 10332, 10330, 1, 0, 0, 0, 10332, 10331, 1, 0, 0, 0, 10333, 10346, 1, 0, 0, 0, 10334, 10338, 5, 1358, 0, 0, 10335, 10339, 3, 2308, 1154, 0, 10336, 10339, 5, 1226, 0, 0, 10337, 10339, 5, 387, 0, 0, 10338, 10335, 1, 0, 0, 0, 10338, 10336, 1, 0, 0, 0, 10338, 10337, 1, 0, 0, 0, 10339, 10346, 1, 0, 0, 0, 10340, 10343, 5, 1357, 0, 0, 10341, 10344, 3, 2070, 1035, 0, 10342, 10344, 5, 387, 0, 0, 10343, 10341, 1, 0, 0, 0, 10343, 10342, 1, 0, 0, 0, 10344, 10346, 1, 0, 0, 0, 10345, 10328, 1, 0, 0, 0, 10345, 10334, 1, 0, 0, 0, 10345, 10340, 1, 0, 0, 0, 10346, 1019, 1, 0, 0, 0, 10347, 10348, 5, 319, 0, 0, 10348, 10349, 5, 876, 0, 0, 10349, 10350, 5, 1461, 0, 0, 10350, 10353, 3, 2392, 1196, 0, 10351, 10354, 3, 1022, 511, 0, 10352, 10354, 3, 1024, 512, 0, 10353, 10351, 1, 0, 0, 0, 10353, 10352, 1, 0, 0, 0, 10353, 10354, 1, 0, 0, 0, 10354, 1021, 1, 0, 0, 0, 10355, 10356, 5, 626, 0, 0, 10356, 10357, 3, 2392, 1196, 0, 10357, 1023, 1, 0, 0, 0, 10358, 10359, 5, 703, 0, 0, 10359, 10360, 3, 2392, 1196, 0, 10360, 1025, 1, 0, 0, 0, 10361, 10364, 5, 319, 0, 0, 10362, 10363, 5, 1305, 0, 0, 10363, 10365, 5, 1560, 0, 0, 10364, 10362, 1, 0, 0, 0, 10364, 10365, 1, 0, 0, 0, 10365, 10367, 1, 0, 0, 0, 10366, 10368, 7, 28, 0, 0, 10367, 10366, 1, 0, 0, 0, 10367, 10368, 1, 0, 0, 0, 10368, 10369, 1, 0, 0, 0, 10369, 10371, 5, 1313, 0, 0, 10370, 10372, 3, 2392, 1196, 0, 10371, 10370, 1, 0, 0, 0, 10371, 10372, 1, 0, 0, 0, 10372, 10378, 1, 0, 0, 0, 10373, 10375, 5, 626, 0, 0, 10374, 10376, 7, 28, 0, 0, 10375, 10374, 1, 0, 0, 0, 10375, 10376, 1, 0, 0, 0, 10376, 10377, 1, 0, 0, 0, 10377, 10379, 3, 2392, 1196, 0, 10378, 10373, 1, 0, 0, 0, 10378, 10379, 1, 0, 0, 0, 10379, 10383, 1, 0, 0, 0, 10380, 10381, 5, 618, 0, 0, 10381, 10382, 5, 183, 0, 0, 10382, 10384, 3, 2392, 1196, 0, 10383, 10380, 1, 0, 0, 0, 10383, 10384, 1, 0, 0, 0, 10384, 10387, 1, 0, 0, 0, 10385, 10386, 5, 1257, 0, 0, 10386, 10388, 3, 1766, 883, 0, 10387, 10385, 1, 0, 0, 0, 10387, 10388, 1, 0, 0, 0, 10388, 1027, 1, 0, 0, 0, 10389, 10391, 5, 319, 0, 0, 10390, 10392, 5, 210, 0, 0, 10391, 10390, 1, 0, 0, 0, 10391, 10392, 1, 0, 0, 0, 10392, 10393, 1, 0, 0, 0, 10393, 10394, 5, 1572, 0, 0, 10394, 10395, 5, 1409, 0, 0, 10395, 10400, 3, 2392, 1196, 0, 10396, 10397, 5, 618, 0, 0, 10397, 10398, 5, 1407, 0, 0, 10398, 10399, 5, 348, 0, 0, 10399, 10401, 3, 2392, 1196, 0, 10400, 10396, 1, 0, 0, 0, 10400, 10401, 1, 0, 0, 0, 10401, 10406, 1, 0, 0, 0, 10402, 10403, 5, 69, 0, 0, 10403, 10404, 5, 1244, 0, 0, 10404, 10405, 7, 81, 0, 0, 10405, 10407, 3, 2070, 1035, 0, 10406, 10402, 1, 0, 0, 0, 10406, 10407, 1, 0, 0, 0, 10407, 10412, 1, 0, 0, 0, 10408, 10413, 5, 1445, 0, 0, 10409, 10410, 5, 653, 0, 0, 10410, 10411, 5, 603, 0, 0, 10411, 10413, 5, 348, 0, 0, 10412, 10408, 1, 0, 0, 0, 10412, 10409, 1, 0, 0, 0, 10412, 10413, 1, 0, 0, 0, 10413, 1029, 1, 0, 0, 0, 10414, 10415, 5, 319, 0, 0, 10415, 10416, 5, 1591, 0, 0, 10416, 10418, 3, 2296, 1148, 0, 10417, 10419, 3, 1518, 759, 0, 10418, 10417, 1, 0, 0, 0, 10418, 10419, 1, 0, 0, 0, 10419, 10421, 1, 0, 0, 0, 10420, 10422, 3, 764, 382, 0, 10421, 10420, 1, 0, 0, 0, 10421, 10422, 1, 0, 0, 0, 10422, 1031, 1, 0, 0, 0, 10423, 10433, 5, 319, 0, 0, 10424, 10425, 7, 117, 0, 0, 10425, 10434, 5, 2090, 0, 0, 10426, 10434, 5, 2383, 0, 0, 10427, 10434, 5, 2373, 0, 0, 10428, 10430, 5, 2377, 0, 0, 10429, 10428, 1, 0, 0, 0, 10429, 10430, 1, 0, 0, 0, 10430, 10431, 1, 0, 0, 0, 10431, 10434, 5, 2369, 0, 0, 10432, 10434, 5, 2377, 0, 0, 10433, 10424, 1, 0, 0, 0, 10433, 10426, 1, 0, 0, 0, 10433, 10427, 1, 0, 0, 0, 10433, 10429, 1, 0, 0, 0, 10433, 10432, 1, 0, 0, 0, 10433, 10434, 1, 0, 0, 0, 10434, 10435, 1, 0, 0, 0, 10435, 10439, 5, 2081, 0, 0, 10436, 10437, 3, 2274, 1137, 0, 10437, 10438, 5, 2438, 0, 0, 10438, 10440, 1, 0, 0, 0, 10439, 10436, 1, 0, 0, 0, 10439, 10440, 1, 0, 0, 0, 10440, 10441, 1, 0, 0, 0, 10441, 10445, 3, 1104, 552, 0, 10442, 10443, 5, 689, 0, 0, 10443, 10444, 5, 1202, 0, 0, 10444, 10446, 5, 543, 0, 0, 10445, 10442, 1, 0, 0, 0, 10445, 10446, 1, 0, 0, 0, 10446, 10457, 1, 0, 0, 0, 10447, 10448, 5, 1679, 0, 0, 10448, 10455, 5, 2469, 0, 0, 10449, 10456, 5, 946, 0, 0, 10450, 10452, 5, 2374, 0, 0, 10451, 10450, 1, 0, 0, 0, 10451, 10452, 1, 0, 0, 0, 10452, 10453, 1, 0, 0, 0, 10453, 10456, 5, 349, 0, 0, 10454, 10456, 5, 1131, 0, 0, 10455, 10449, 1, 0, 0, 0, 10455, 10451, 1, 0, 0, 0, 10455, 10454, 1, 0, 0, 0, 10456, 10458, 1, 0, 0, 0, 10457, 10447, 1, 0, 0, 0, 10457, 10458, 1, 0, 0, 0, 10458, 10462, 1, 0, 0, 0, 10459, 10463, 3, 1056, 528, 0, 10460, 10463, 3, 1034, 517, 0, 10461, 10463, 3, 1044, 522, 0, 10462, 10459, 1, 0, 0, 0, 10462, 10460, 1, 0, 0, 0, 10462, 10461, 1, 0, 0, 0, 10463, 10465, 1, 0, 0, 0, 10464, 10466, 3, 1522, 761, 0, 10465, 10464, 1, 0, 0, 0, 10465, 10466, 1, 0, 0, 0, 10466, 10469, 1, 0, 0, 0, 10467, 10468, 5, 1335, 0, 0, 10468, 10470, 3, 2330, 1165, 0, 10469, 10467, 1, 0, 0, 0, 10469, 10470, 1, 0, 0, 0, 10470, 10473, 1, 0, 0, 0, 10471, 10472, 5, 2214, 0, 0, 10472, 10474, 5, 1484, 0, 0, 10473, 10471, 1, 0, 0, 0, 10473, 10474, 1, 0, 0, 0, 10474, 1033, 1, 0, 0, 0, 10475, 10476, 5, 1244, 0, 0, 10476, 10481, 5, 2349, 0, 0, 10477, 10478, 5, 2445, 0, 0, 10478, 10479, 3, 1052, 526, 0, 10479, 10480, 5, 2446, 0, 0, 10480, 10482, 1, 0, 0, 0, 10481, 10477, 1, 0, 0, 0, 10481, 10482, 1, 0, 0, 0, 10482, 10485, 1, 0, 0, 0, 10483, 10484, 5, 2349, 0, 0, 10484, 10486, 3, 1040, 520, 0, 10485, 10483, 1, 0, 0, 0, 10485, 10486, 1, 0, 0, 0, 10486, 10488, 1, 0, 0, 0, 10487, 10489, 3, 1042, 521, 0, 10488, 10487, 1, 0, 0, 0, 10488, 10489, 1, 0, 0, 0, 10489, 10491, 1, 0, 0, 0, 10490, 10492, 3, 1036, 518, 0, 10491, 10490, 1, 0, 0, 0, 10491, 10492, 1, 0, 0, 0, 10492, 10497, 1, 0, 0, 0, 10493, 10494, 5, 1257, 0, 0, 10494, 10495, 5, 242, 0, 0, 10495, 10496, 7, 118, 0, 0, 10496, 10498, 5, 1605, 0, 0, 10497, 10493, 1, 0, 0, 0, 10497, 10498, 1, 0, 0, 0, 10498, 10500, 1, 0, 0, 0, 10499, 10501, 3, 1050, 525, 0, 10500, 10499, 1, 0, 0, 0, 10500, 10501, 1, 0, 0, 0, 10501, 10503, 1, 0, 0, 0, 10502, 10504, 3, 1048, 524, 0, 10503, 10502, 1, 0, 0, 0, 10503, 10504, 1, 0, 0, 0, 10504, 10506, 1, 0, 0, 0, 10505, 10507, 3, 1196, 598, 0, 10506, 10505, 1, 0, 0, 0, 10506, 10507, 1, 0, 0, 0, 10507, 10509, 1, 0, 0, 0, 10508, 10510, 3, 1078, 539, 0, 10509, 10508, 1, 0, 0, 0, 10509, 10510, 1, 0, 0, 0, 10510, 1035, 1, 0, 0, 0, 10511, 10512, 5, 2286, 0, 0, 10512, 10513, 5, 238, 0, 0, 10513, 10514, 5, 2445, 0, 0, 10514, 10515, 3, 2328, 1164, 0, 10515, 10516, 5, 69, 0, 0, 10516, 10517, 5, 2445, 0, 0, 10517, 10518, 3, 2070, 1035, 0, 10518, 10528, 5, 2446, 0, 0, 10519, 10520, 5, 2451, 0, 0, 10520, 10521, 3, 2328, 1164, 0, 10521, 10522, 5, 69, 0, 0, 10522, 10523, 5, 2445, 0, 0, 10523, 10524, 3, 2070, 1035, 0, 10524, 10525, 5, 2446, 0, 0, 10525, 10527, 1, 0, 0, 0, 10526, 10519, 1, 0, 0, 0, 10527, 10530, 1, 0, 0, 0, 10528, 10526, 1, 0, 0, 0, 10528, 10529, 1, 0, 0, 0, 10529, 10531, 1, 0, 0, 0, 10530, 10528, 1, 0, 0, 0, 10531, 10532, 5, 2446, 0, 0, 10532, 1037, 1, 0, 0, 0, 10533, 10535, 5, 2349, 0, 0, 10534, 10536, 5, 237, 0, 0, 10535, 10534, 1, 0, 0, 0, 10535, 10536, 1, 0, 0, 0, 10536, 10537, 1, 0, 0, 0, 10537, 10539, 3, 2328, 1164, 0, 10538, 10540, 3, 1040, 520, 0, 10539, 10538, 1, 0, 0, 0, 10539, 10540, 1, 0, 0, 0, 10540, 10542, 1, 0, 0, 0, 10541, 10543, 3, 1042, 521, 0, 10542, 10541, 1, 0, 0, 0, 10542, 10543, 1, 0, 0, 0, 10543, 1039, 1, 0, 0, 0, 10544, 10545, 5, 1761, 0, 0, 10545, 10569, 5, 69, 0, 0, 10546, 10547, 5, 1236, 0, 0, 10547, 10570, 5, 1549, 0, 0, 10548, 10550, 7, 119, 0, 0, 10549, 10548, 1, 0, 0, 0, 10549, 10550, 1, 0, 0, 0, 10550, 10554, 1, 0, 0, 0, 10551, 10555, 5, 215, 0, 0, 10552, 10553, 5, 124, 0, 0, 10553, 10555, 5, 2350, 0, 0, 10554, 10551, 1, 0, 0, 0, 10554, 10552, 1, 0, 0, 0, 10555, 10567, 1, 0, 0, 0, 10556, 10561, 3, 1626, 813, 0, 10557, 10558, 5, 2445, 0, 0, 10558, 10559, 3, 1638, 819, 0, 10559, 10560, 5, 2446, 0, 0, 10560, 10562, 1, 0, 0, 0, 10561, 10557, 1, 0, 0, 0, 10561, 10562, 1, 0, 0, 0, 10562, 10568, 1, 0, 0, 0, 10563, 10564, 5, 2445, 0, 0, 10564, 10565, 3, 1638, 819, 0, 10565, 10566, 5, 2446, 0, 0, 10566, 10568, 1, 0, 0, 0, 10567, 10556, 1, 0, 0, 0, 10567, 10563, 1, 0, 0, 0, 10567, 10568, 1, 0, 0, 0, 10568, 10570, 1, 0, 0, 0, 10569, 10546, 1, 0, 0, 0, 10569, 10549, 1, 0, 0, 0, 10570, 10576, 1, 0, 0, 0, 10571, 10572, 5, 1761, 0, 0, 10572, 10573, 5, 2264, 0, 0, 10573, 10574, 5, 69, 0, 0, 10574, 10576, 7, 95, 0, 0, 10575, 10544, 1, 0, 0, 0, 10575, 10571, 1, 0, 0, 0, 10576, 1041, 1, 0, 0, 0, 10577, 10578, 5, 2343, 0, 0, 10578, 10580, 5, 2442, 0, 0, 10579, 10577, 1, 0, 0, 0, 10579, 10580, 1, 0, 0, 0, 10580, 10581, 1, 0, 0, 0, 10581, 10582, 5, 484, 0, 0, 10582, 10586, 5, 2442, 0, 0, 10583, 10584, 3, 1304, 652, 0, 10584, 10585, 5, 1136, 0, 0, 10585, 10587, 1, 0, 0, 0, 10586, 10583, 1, 0, 0, 0, 10586, 10587, 1, 0, 0, 0, 10587, 10591, 1, 0, 0, 0, 10588, 10589, 3, 1304, 652, 0, 10589, 10590, 5, 56, 0, 0, 10590, 10592, 1, 0, 0, 0, 10591, 10588, 1, 0, 0, 0, 10591, 10592, 1, 0, 0, 0, 10592, 1043, 1, 0, 0, 0, 10593, 10597, 5, 1244, 0, 0, 10594, 10595, 3, 2274, 1137, 0, 10595, 10596, 5, 2438, 0, 0, 10596, 10598, 1, 0, 0, 0, 10597, 10594, 1, 0, 0, 0, 10597, 10598, 1, 0, 0, 0, 10598, 10599, 1, 0, 0, 0, 10599, 10601, 3, 1046, 523, 0, 10600, 10602, 3, 1054, 527, 0, 10601, 10600, 1, 0, 0, 0, 10601, 10602, 1, 0, 0, 0, 10602, 10614, 1, 0, 0, 0, 10603, 10604, 5, 2445, 0, 0, 10604, 10609, 3, 1052, 526, 0, 10605, 10606, 5, 2451, 0, 0, 10606, 10608, 3, 1052, 526, 0, 10607, 10605, 1, 0, 0, 0, 10608, 10611, 1, 0, 0, 0, 10609, 10607, 1, 0, 0, 0, 10609, 10610, 1, 0, 0, 0, 10610, 10612, 1, 0, 0, 0, 10611, 10609, 1, 0, 0, 0, 10612, 10613, 5, 2446, 0, 0, 10613, 10615, 1, 0, 0, 0, 10614, 10603, 1, 0, 0, 0, 10614, 10615, 1, 0, 0, 0, 10615, 10620, 1, 0, 0, 0, 10616, 10617, 5, 1257, 0, 0, 10617, 10618, 5, 242, 0, 0, 10618, 10619, 7, 118, 0, 0, 10619, 10621, 5, 1605, 0, 0, 10620, 10616, 1, 0, 0, 0, 10620, 10621, 1, 0, 0, 0, 10621, 10623, 1, 0, 0, 0, 10622, 10624, 3, 1050, 525, 0, 10623, 10622, 1, 0, 0, 0, 10623, 10624, 1, 0, 0, 0, 10624, 10626, 1, 0, 0, 0, 10625, 10627, 3, 1048, 524, 0, 10626, 10625, 1, 0, 0, 0, 10626, 10627, 1, 0, 0, 0, 10627, 10629, 1, 0, 0, 0, 10628, 10630, 3, 1196, 598, 0, 10629, 10628, 1, 0, 0, 0, 10629, 10630, 1, 0, 0, 0, 10630, 10632, 1, 0, 0, 0, 10631, 10633, 3, 1078, 539, 0, 10632, 10631, 1, 0, 0, 0, 10632, 10633, 1, 0, 0, 0, 10633, 1045, 1, 0, 0, 0, 10634, 10635, 3, 2398, 1199, 0, 10635, 1047, 1, 0, 0, 0, 10636, 10638, 5, 1245, 0, 0, 10637, 10639, 3, 2316, 1158, 0, 10638, 10637, 1, 0, 0, 0, 10638, 10639, 1, 0, 0, 0, 10639, 10640, 1, 0, 0, 0, 10640, 10644, 5, 2445, 0, 0, 10641, 10645, 3, 1188, 594, 0, 10642, 10643, 5, 2078, 0, 0, 10643, 10645, 3, 1648, 824, 0, 10644, 10641, 1, 0, 0, 0, 10644, 10642, 1, 0, 0, 0, 10645, 10646, 1, 0, 0, 0, 10646, 10644, 1, 0, 0, 0, 10646, 10647, 1, 0, 0, 0, 10647, 10648, 1, 0, 0, 0, 10648, 10649, 5, 2446, 0, 0, 10649, 1049, 1, 0, 0, 0, 10650, 10651, 5, 1236, 0, 0, 10651, 10652, 5, 684, 0, 0, 10652, 10657, 5, 783, 0, 0, 10653, 10654, 5, 1947, 0, 0, 10654, 10658, 5, 638, 0, 0, 10655, 10656, 5, 1449, 0, 0, 10656, 10658, 5, 814, 0, 0, 10657, 10653, 1, 0, 0, 0, 10657, 10655, 1, 0, 0, 0, 10658, 1051, 1, 0, 0, 0, 10659, 10662, 3, 2328, 1164, 0, 10660, 10662, 3, 2268, 1134, 0, 10661, 10659, 1, 0, 0, 0, 10661, 10660, 1, 0, 0, 0, 10662, 10665, 1, 0, 0, 0, 10663, 10664, 5, 387, 0, 0, 10664, 10666, 3, 2070, 1035, 0, 10665, 10663, 1, 0, 0, 0, 10665, 10666, 1, 0, 0, 0, 10666, 10676, 1, 0, 0, 0, 10667, 10672, 3, 844, 422, 0, 10668, 10669, 5, 2451, 0, 0, 10669, 10671, 3, 844, 422, 0, 10670, 10668, 1, 0, 0, 0, 10671, 10674, 1, 0, 0, 0, 10672, 10670, 1, 0, 0, 0, 10672, 10673, 1, 0, 0, 0, 10673, 10677, 1, 0, 0, 0, 10674, 10672, 1, 0, 0, 0, 10675, 10677, 3, 846, 423, 0, 10676, 10667, 1, 0, 0, 0, 10676, 10675, 1, 0, 0, 0, 10676, 10677, 1, 0, 0, 0, 10677, 10682, 1, 0, 0, 0, 10678, 10682, 3, 850, 425, 0, 10679, 10682, 3, 848, 424, 0, 10680, 10682, 3, 1690, 845, 0, 10681, 10661, 1, 0, 0, 0, 10681, 10678, 1, 0, 0, 0, 10681, 10679, 1, 0, 0, 0, 10681, 10680, 1, 0, 0, 0, 10682, 1053, 1, 0, 0, 0, 10683, 10685, 5, 1202, 0, 0, 10684, 10683, 1, 0, 0, 0, 10684, 10685, 1, 0, 0, 0, 10685, 10686, 1, 0, 0, 0, 10686, 10687, 5, 1778, 0, 0, 10687, 10688, 5, 82, 0, 0, 10688, 10689, 5, 38, 0, 0, 10689, 10690, 5, 846, 0, 0, 10690, 1055, 1, 0, 0, 0, 10691, 10692, 5, 2445, 0, 0, 10692, 10697, 3, 1106, 553, 0, 10693, 10694, 5, 2451, 0, 0, 10694, 10696, 3, 1106, 553, 0, 10695, 10693, 1, 0, 0, 0, 10696, 10699, 1, 0, 0, 0, 10697, 10695, 1, 0, 0, 0, 10697, 10698, 1, 0, 0, 0, 10698, 10700, 1, 0, 0, 0, 10699, 10697, 1, 0, 0, 0, 10700, 10701, 5, 2446, 0, 0, 10701, 10703, 1, 0, 0, 0, 10702, 10691, 1, 0, 0, 0, 10702, 10703, 1, 0, 0, 0, 10703, 10705, 1, 0, 0, 0, 10704, 10706, 3, 1058, 529, 0, 10705, 10704, 1, 0, 0, 0, 10705, 10706, 1, 0, 0, 0, 10706, 1057, 1, 0, 0, 0, 10707, 10709, 3, 1060, 530, 0, 10708, 10707, 1, 0, 0, 0, 10709, 10710, 1, 0, 0, 0, 10710, 10708, 1, 0, 0, 0, 10710, 10711, 1, 0, 0, 0, 10711, 1059, 1, 0, 0, 0, 10712, 10728, 3, 1062, 531, 0, 10713, 10728, 3, 1068, 534, 0, 10714, 10715, 5, 387, 0, 0, 10715, 10716, 5, 2371, 0, 0, 10716, 10728, 3, 1076, 538, 0, 10717, 10718, 5, 1257, 0, 0, 10718, 10723, 5, 242, 0, 0, 10719, 10720, 7, 120, 0, 0, 10720, 10724, 5, 2372, 0, 0, 10721, 10722, 7, 118, 0, 0, 10722, 10724, 5, 1605, 0, 0, 10723, 10719, 1, 0, 0, 0, 10723, 10721, 1, 0, 0, 0, 10724, 10728, 1, 0, 0, 0, 10725, 10728, 3, 1196, 598, 0, 10726, 10728, 3, 1078, 539, 0, 10727, 10712, 1, 0, 0, 0, 10727, 10713, 1, 0, 0, 0, 10727, 10714, 1, 0, 0, 0, 10727, 10717, 1, 0, 0, 0, 10727, 10725, 1, 0, 0, 0, 10727, 10726, 1, 0, 0, 0, 10728, 1061, 1, 0, 0, 0, 10729, 10732, 3, 1064, 532, 0, 10730, 10732, 3, 1066, 533, 0, 10731, 10729, 1, 0, 0, 0, 10731, 10730, 1, 0, 0, 0, 10732, 1063, 1, 0, 0, 0, 10733, 10734, 5, 1135, 0, 0, 10734, 10740, 5, 467, 0, 0, 10735, 10736, 5, 2200, 0, 0, 10736, 10737, 3, 2384, 1192, 0, 10737, 10738, 5, 364, 0, 0, 10738, 10739, 5, 2376, 0, 0, 10739, 10741, 1, 0, 0, 0, 10740, 10735, 1, 0, 0, 0, 10740, 10741, 1, 0, 0, 0, 10741, 1065, 1, 0, 0, 0, 10742, 10743, 5, 1135, 0, 0, 10743, 10755, 5, 401, 0, 0, 10744, 10746, 5, 877, 0, 0, 10745, 10744, 1, 0, 0, 0, 10745, 10746, 1, 0, 0, 0, 10746, 10756, 1, 0, 0, 0, 10747, 10748, 5, 2200, 0, 0, 10748, 10749, 3, 2384, 1192, 0, 10749, 10750, 5, 364, 0, 0, 10750, 10751, 5, 33, 0, 0, 10751, 10753, 5, 754, 0, 0, 10752, 10754, 5, 877, 0, 0, 10753, 10752, 1, 0, 0, 0, 10753, 10754, 1, 0, 0, 0, 10754, 10756, 1, 0, 0, 0, 10755, 10745, 1, 0, 0, 0, 10755, 10747, 1, 0, 0, 0, 10756, 1067, 1, 0, 0, 0, 10757, 10758, 3, 1070, 535, 0, 10758, 10759, 3, 1072, 536, 0, 10759, 10760, 3, 1074, 537, 0, 10760, 1069, 1, 0, 0, 0, 10761, 10762, 5, 1135, 0, 0, 10762, 10768, 5, 467, 0, 0, 10763, 10764, 5, 2200, 0, 0, 10764, 10765, 3, 2384, 1192, 0, 10765, 10766, 5, 364, 0, 0, 10766, 10767, 5, 2376, 0, 0, 10767, 10769, 1, 0, 0, 0, 10768, 10763, 1, 0, 0, 0, 10768, 10769, 1, 0, 0, 0, 10769, 1071, 1, 0, 0, 0, 10770, 10771, 5, 1135, 0, 0, 10771, 10783, 5, 401, 0, 0, 10772, 10774, 5, 877, 0, 0, 10773, 10772, 1, 0, 0, 0, 10773, 10774, 1, 0, 0, 0, 10774, 10784, 1, 0, 0, 0, 10775, 10776, 5, 2200, 0, 0, 10776, 10777, 3, 2384, 1192, 0, 10777, 10778, 5, 364, 0, 0, 10778, 10779, 5, 33, 0, 0, 10779, 10781, 5, 754, 0, 0, 10780, 10782, 5, 877, 0, 0, 10781, 10780, 1, 0, 0, 0, 10781, 10782, 1, 0, 0, 0, 10782, 10784, 1, 0, 0, 0, 10783, 10773, 1, 0, 0, 0, 10783, 10775, 1, 0, 0, 0, 10784, 1073, 1, 0, 0, 0, 10785, 10786, 5, 2375, 0, 0, 10786, 10787, 5, 2244, 0, 0, 10787, 10788, 5, 2382, 0, 0, 10788, 10789, 5, 2283, 0, 0, 10789, 10790, 5, 2384, 0, 0, 10790, 1075, 1, 0, 0, 0, 10791, 10792, 3, 2390, 1195, 0, 10792, 1077, 1, 0, 0, 0, 10793, 10824, 3, 1652, 826, 0, 10794, 10824, 3, 1080, 540, 0, 10795, 10824, 3, 1082, 541, 0, 10796, 10824, 3, 1108, 554, 0, 10797, 10824, 3, 1084, 542, 0, 10798, 10824, 7, 107, 0, 0, 10799, 10824, 3, 112, 56, 0, 10800, 10824, 3, 926, 463, 0, 10801, 10824, 3, 520, 260, 0, 10802, 10824, 7, 113, 0, 0, 10803, 10824, 3, 1576, 788, 0, 10804, 10824, 3, 1266, 633, 0, 10805, 10824, 3, 1102, 551, 0, 10806, 10824, 3, 1268, 634, 0, 10807, 10824, 3, 1196, 598, 0, 10808, 10809, 5, 1604, 0, 0, 10809, 10824, 5, 63, 0, 0, 10810, 10811, 5, 69, 0, 0, 10811, 10824, 3, 1860, 930, 0, 10812, 10813, 5, 618, 0, 0, 10813, 10814, 5, 536, 0, 0, 10814, 10815, 5, 2306, 0, 0, 10815, 10819, 5, 2081, 0, 0, 10816, 10817, 3, 2274, 1137, 0, 10817, 10818, 5, 2438, 0, 0, 10818, 10820, 1, 0, 0, 0, 10819, 10816, 1, 0, 0, 0, 10819, 10820, 1, 0, 0, 0, 10820, 10821, 1, 0, 0, 0, 10821, 10824, 3, 1104, 552, 0, 10822, 10824, 3, 2234, 1117, 0, 10823, 10793, 1, 0, 0, 0, 10823, 10794, 1, 0, 0, 0, 10823, 10795, 1, 0, 0, 0, 10823, 10796, 1, 0, 0, 0, 10823, 10797, 1, 0, 0, 0, 10823, 10798, 1, 0, 0, 0, 10823, 10799, 1, 0, 0, 0, 10823, 10800, 1, 0, 0, 0, 10823, 10801, 1, 0, 0, 0, 10823, 10802, 1, 0, 0, 0, 10823, 10803, 1, 0, 0, 0, 10823, 10804, 1, 0, 0, 0, 10823, 10805, 1, 0, 0, 0, 10823, 10806, 1, 0, 0, 0, 10823, 10807, 1, 0, 0, 0, 10823, 10808, 1, 0, 0, 0, 10823, 10810, 1, 0, 0, 0, 10823, 10812, 1, 0, 0, 0, 10823, 10822, 1, 0, 0, 0, 10824, 1079, 1, 0, 0, 0, 10825, 10826, 5, 1503, 0, 0, 10826, 10827, 7, 11, 0, 0, 10827, 1081, 1, 0, 0, 0, 10828, 10829, 5, 716, 0, 0, 10829, 10830, 7, 98, 0, 0, 10830, 1083, 1, 0, 0, 0, 10831, 10833, 5, 224, 0, 0, 10832, 10834, 3, 1086, 543, 0, 10833, 10832, 1, 0, 0, 0, 10833, 10834, 1, 0, 0, 0, 10834, 10835, 1, 0, 0, 0, 10835, 10841, 3, 1092, 546, 0, 10836, 10838, 3, 1098, 549, 0, 10837, 10836, 1, 0, 0, 0, 10837, 10838, 1, 0, 0, 0, 10838, 10839, 1, 0, 0, 0, 10839, 10840, 5, 1257, 0, 0, 10840, 10842, 5, 865, 0, 0, 10841, 10837, 1, 0, 0, 0, 10841, 10842, 1, 0, 0, 0, 10842, 10849, 1, 0, 0, 0, 10843, 10845, 3, 1098, 549, 0, 10844, 10843, 1, 0, 0, 0, 10844, 10845, 1, 0, 0, 0, 10845, 10846, 1, 0, 0, 0, 10846, 10847, 5, 1257, 0, 0, 10847, 10848, 5, 349, 0, 0, 10848, 10850, 5, 989, 0, 0, 10849, 10844, 1, 0, 0, 0, 10849, 10850, 1, 0, 0, 0, 10850, 10852, 1, 0, 0, 0, 10851, 10853, 3, 1100, 550, 0, 10852, 10851, 1, 0, 0, 0, 10852, 10853, 1, 0, 0, 0, 10853, 1085, 1, 0, 0, 0, 10854, 10855, 3, 2274, 1137, 0, 10855, 10856, 5, 2438, 0, 0, 10856, 10858, 1, 0, 0, 0, 10857, 10854, 1, 0, 0, 0, 10857, 10858, 1, 0, 0, 0, 10858, 10859, 1, 0, 0, 0, 10859, 10860, 3, 1104, 552, 0, 10860, 10865, 3, 1088, 544, 0, 10861, 10862, 5, 2451, 0, 0, 10862, 10864, 3, 1088, 544, 0, 10863, 10861, 1, 0, 0, 0, 10864, 10867, 1, 0, 0, 0, 10865, 10863, 1, 0, 0, 0, 10865, 10866, 1, 0, 0, 0, 10866, 1087, 1, 0, 0, 0, 10867, 10865, 1, 0, 0, 0, 10868, 10872, 5, 792, 0, 0, 10869, 10870, 3, 2274, 1137, 0, 10870, 10871, 5, 2438, 0, 0, 10871, 10873, 1, 0, 0, 0, 10872, 10869, 1, 0, 0, 0, 10872, 10873, 1, 0, 0, 0, 10873, 10874, 1, 0, 0, 0, 10874, 10875, 3, 1104, 552, 0, 10875, 10876, 5, 1257, 0, 0, 10876, 10877, 5, 2445, 0, 0, 10877, 10878, 3, 1090, 545, 0, 10878, 10879, 5, 2446, 0, 0, 10879, 1089, 1, 0, 0, 0, 10880, 10881, 3, 2070, 1035, 0, 10881, 1091, 1, 0, 0, 0, 10882, 10884, 5, 160, 0, 0, 10883, 10885, 7, 121, 0, 0, 10884, 10883, 1, 0, 0, 0, 10884, 10885, 1, 0, 0, 0, 10885, 10886, 1, 0, 0, 0, 10886, 10887, 5, 1301, 0, 0, 10887, 10888, 3, 1094, 547, 0, 10888, 1093, 1, 0, 0, 0, 10889, 10902, 3, 1096, 548, 0, 10890, 10891, 5, 2445, 0, 0, 10891, 10896, 3, 1096, 548, 0, 10892, 10893, 5, 2451, 0, 0, 10893, 10895, 3, 1096, 548, 0, 10894, 10892, 1, 0, 0, 0, 10895, 10898, 1, 0, 0, 0, 10896, 10894, 1, 0, 0, 0, 10896, 10897, 1, 0, 0, 0, 10897, 10899, 1, 0, 0, 0, 10898, 10896, 1, 0, 0, 0, 10899, 10900, 5, 2446, 0, 0, 10900, 10902, 1, 0, 0, 0, 10901, 10889, 1, 0, 0, 0, 10901, 10890, 1, 0, 0, 0, 10902, 1095, 1, 0, 0, 0, 10903, 10904, 5, 2445, 0, 0, 10904, 10909, 3, 2328, 1164, 0, 10905, 10906, 5, 2451, 0, 0, 10906, 10908, 3, 2328, 1164, 0, 10907, 10905, 1, 0, 0, 0, 10908, 10911, 1, 0, 0, 0, 10909, 10907, 1, 0, 0, 0, 10909, 10910, 1, 0, 0, 0, 10910, 10912, 1, 0, 0, 0, 10911, 10909, 1, 0, 0, 0, 10912, 10913, 5, 2446, 0, 0, 10913, 1097, 1, 0, 0, 0, 10914, 10915, 7, 122, 0, 0, 10915, 1099, 1, 0, 0, 0, 10916, 10917, 5, 2306, 0, 0, 10917, 10918, 5, 917, 0, 0, 10918, 10923, 5, 2360, 0, 0, 10919, 10920, 5, 2445, 0, 0, 10920, 10921, 3, 964, 482, 0, 10921, 10922, 5, 2446, 0, 0, 10922, 10924, 1, 0, 0, 0, 10923, 10919, 1, 0, 0, 0, 10923, 10924, 1, 0, 0, 0, 10924, 10929, 1, 0, 0, 0, 10925, 10926, 5, 2304, 0, 0, 10926, 10927, 5, 917, 0, 0, 10927, 10929, 5, 2360, 0, 0, 10928, 10916, 1, 0, 0, 0, 10928, 10925, 1, 0, 0, 0, 10929, 1101, 1, 0, 0, 0, 10930, 10931, 5, 427, 0, 0, 10931, 10932, 5, 883, 0, 0, 10932, 10950, 5, 1561, 0, 0, 10933, 10934, 5, 497, 0, 0, 10934, 10935, 5, 883, 0, 0, 10935, 10947, 5, 1561, 0, 0, 10936, 10940, 5, 38, 0, 0, 10937, 10938, 5, 40, 0, 0, 10938, 10940, 5, 1213, 0, 0, 10939, 10936, 1, 0, 0, 0, 10939, 10937, 1, 0, 0, 0, 10940, 10941, 1, 0, 0, 0, 10941, 10948, 5, 817, 0, 0, 10942, 10944, 5, 1135, 0, 0, 10943, 10942, 1, 0, 0, 0, 10943, 10944, 1, 0, 0, 0, 10944, 10945, 1, 0, 0, 0, 10945, 10946, 5, 1342, 0, 0, 10946, 10948, 5, 799, 0, 0, 10947, 10939, 1, 0, 0, 0, 10947, 10943, 1, 0, 0, 0, 10947, 10948, 1, 0, 0, 0, 10948, 10950, 1, 0, 0, 0, 10949, 10930, 1, 0, 0, 0, 10949, 10933, 1, 0, 0, 0, 10950, 1103, 1, 0, 0, 0, 10951, 10952, 3, 2390, 1195, 0, 10952, 1105, 1, 0, 0, 0, 10953, 10960, 3, 850, 425, 0, 10954, 10960, 3, 848, 424, 0, 10955, 10960, 3, 1662, 831, 0, 10956, 10960, 3, 1672, 836, 0, 10957, 10960, 3, 1656, 828, 0, 10958, 10960, 3, 1690, 845, 0, 10959, 10953, 1, 0, 0, 0, 10959, 10954, 1, 0, 0, 0, 10959, 10955, 1, 0, 0, 0, 10959, 10956, 1, 0, 0, 0, 10959, 10957, 1, 0, 0, 0, 10959, 10958, 1, 0, 0, 0, 10960, 1107, 1, 0, 0, 0, 10961, 10970, 3, 1110, 555, 0, 10962, 10970, 3, 1112, 556, 0, 10963, 10970, 3, 1114, 557, 0, 10964, 10970, 3, 1122, 561, 0, 10965, 10970, 3, 1124, 562, 0, 10966, 10970, 3, 1126, 563, 0, 10967, 10970, 3, 1128, 564, 0, 10968, 10970, 3, 1132, 566, 0, 10969, 10961, 1, 0, 0, 0, 10969, 10962, 1, 0, 0, 0, 10969, 10963, 1, 0, 0, 0, 10969, 10964, 1, 0, 0, 0, 10969, 10965, 1, 0, 0, 0, 10969, 10966, 1, 0, 0, 0, 10969, 10967, 1, 0, 0, 0, 10969, 10968, 1, 0, 0, 0, 10970, 1109, 1, 0, 0, 0, 10971, 10972, 5, 1346, 0, 0, 10972, 10973, 5, 160, 0, 0, 10973, 10974, 5, 1493, 0, 0, 10974, 10975, 5, 2445, 0, 0, 10975, 10980, 3, 2328, 1164, 0, 10976, 10977, 5, 2451, 0, 0, 10977, 10979, 3, 2328, 1164, 0, 10978, 10976, 1, 0, 0, 0, 10979, 10982, 1, 0, 0, 0, 10980, 10978, 1, 0, 0, 0, 10980, 10981, 1, 0, 0, 0, 10981, 10983, 1, 0, 0, 0, 10982, 10980, 1, 0, 0, 0, 10983, 11003, 5, 2446, 0, 0, 10984, 10985, 5, 774, 0, 0, 10985, 10986, 5, 2445, 0, 0, 10986, 10987, 3, 2070, 1035, 0, 10987, 11001, 5, 2446, 0, 0, 10988, 10989, 5, 1761, 0, 0, 10989, 10990, 5, 736, 0, 0, 10990, 10991, 5, 2445, 0, 0, 10991, 10996, 3, 1648, 824, 0, 10992, 10993, 5, 2451, 0, 0, 10993, 10995, 3, 1648, 824, 0, 10994, 10992, 1, 0, 0, 0, 10995, 10998, 1, 0, 0, 0, 10996, 10994, 1, 0, 0, 0, 10996, 10997, 1, 0, 0, 0, 10997, 10999, 1, 0, 0, 0, 10998, 10996, 1, 0, 0, 0, 10999, 11000, 5, 2446, 0, 0, 11000, 11002, 1, 0, 0, 0, 11001, 10988, 1, 0, 0, 0, 11001, 11002, 1, 0, 0, 0, 11002, 11004, 1, 0, 0, 0, 11003, 10984, 1, 0, 0, 0, 11003, 11004, 1, 0, 0, 0, 11004, 11005, 1, 0, 0, 0, 11005, 11006, 5, 2445, 0, 0, 11006, 11008, 5, 1346, 0, 0, 11007, 11009, 3, 1688, 844, 0, 11008, 11007, 1, 0, 0, 0, 11008, 11009, 1, 0, 0, 0, 11009, 11010, 1, 0, 0, 0, 11010, 11011, 3, 1158, 579, 0, 11011, 11022, 3, 1164, 582, 0, 11012, 11013, 5, 2451, 0, 0, 11013, 11015, 5, 1346, 0, 0, 11014, 11016, 3, 1688, 844, 0, 11015, 11014, 1, 0, 0, 0, 11015, 11016, 1, 0, 0, 0, 11016, 11017, 1, 0, 0, 0, 11017, 11018, 3, 1158, 579, 0, 11018, 11019, 3, 1164, 582, 0, 11019, 11021, 1, 0, 0, 0, 11020, 11012, 1, 0, 0, 0, 11021, 11024, 1, 0, 0, 0, 11022, 11020, 1, 0, 0, 0, 11022, 11023, 1, 0, 0, 0, 11023, 11025, 1, 0, 0, 0, 11024, 11022, 1, 0, 0, 0, 11025, 11026, 5, 2446, 0, 0, 11026, 1111, 1, 0, 0, 0, 11027, 11028, 5, 1346, 0, 0, 11028, 11029, 5, 160, 0, 0, 11029, 11030, 5, 860, 0, 0, 11030, 11031, 5, 2445, 0, 0, 11031, 11032, 3, 2328, 1164, 0, 11032, 11033, 5, 2446, 0, 0, 11033, 11034, 5, 2445, 0, 0, 11034, 11036, 5, 1346, 0, 0, 11035, 11037, 3, 1688, 844, 0, 11036, 11035, 1, 0, 0, 0, 11036, 11037, 1, 0, 0, 0, 11037, 11038, 1, 0, 0, 0, 11038, 11039, 3, 1162, 581, 0, 11039, 11050, 3, 1164, 582, 0, 11040, 11041, 5, 2451, 0, 0, 11041, 11043, 5, 1346, 0, 0, 11042, 11044, 3, 1688, 844, 0, 11043, 11042, 1, 0, 0, 0, 11043, 11044, 1, 0, 0, 0, 11044, 11045, 1, 0, 0, 0, 11045, 11046, 3, 1162, 581, 0, 11046, 11047, 3, 1164, 582, 0, 11047, 11049, 1, 0, 0, 0, 11048, 11040, 1, 0, 0, 0, 11049, 11052, 1, 0, 0, 0, 11050, 11048, 1, 0, 0, 0, 11050, 11051, 1, 0, 0, 0, 11051, 11053, 1, 0, 0, 0, 11052, 11050, 1, 0, 0, 0, 11053, 11054, 5, 2446, 0, 0, 11054, 1113, 1, 0, 0, 0, 11055, 11056, 5, 1346, 0, 0, 11056, 11057, 5, 160, 0, 0, 11057, 11058, 5, 658, 0, 0, 11058, 11059, 5, 2445, 0, 0, 11059, 11064, 3, 2328, 1164, 0, 11060, 11061, 5, 2451, 0, 0, 11061, 11063, 3, 2328, 1164, 0, 11062, 11060, 1, 0, 0, 0, 11063, 11066, 1, 0, 0, 0, 11064, 11062, 1, 0, 0, 0, 11064, 11065, 1, 0, 0, 0, 11065, 11067, 1, 0, 0, 0, 11066, 11064, 1, 0, 0, 0, 11067, 11070, 5, 2446, 0, 0, 11068, 11071, 3, 1116, 558, 0, 11069, 11071, 3, 1118, 559, 0, 11070, 11068, 1, 0, 0, 0, 11070, 11069, 1, 0, 0, 0, 11071, 1115, 1, 0, 0, 0, 11072, 11073, 5, 2445, 0, 0, 11073, 11075, 5, 1346, 0, 0, 11074, 11076, 3, 1688, 844, 0, 11075, 11074, 1, 0, 0, 0, 11075, 11076, 1, 0, 0, 0, 11076, 11078, 1, 0, 0, 0, 11077, 11079, 3, 1166, 583, 0, 11078, 11077, 1, 0, 0, 0, 11078, 11079, 1, 0, 0, 0, 11079, 11090, 1, 0, 0, 0, 11080, 11081, 5, 2451, 0, 0, 11081, 11083, 5, 1346, 0, 0, 11082, 11084, 3, 1688, 844, 0, 11083, 11082, 1, 0, 0, 0, 11083, 11084, 1, 0, 0, 0, 11084, 11086, 1, 0, 0, 0, 11085, 11087, 3, 1166, 583, 0, 11086, 11085, 1, 0, 0, 0, 11086, 11087, 1, 0, 0, 0, 11087, 11089, 1, 0, 0, 0, 11088, 11080, 1, 0, 0, 0, 11089, 11092, 1, 0, 0, 0, 11090, 11088, 1, 0, 0, 0, 11090, 11091, 1, 0, 0, 0, 11091, 11093, 1, 0, 0, 0, 11092, 11090, 1, 0, 0, 0, 11093, 11094, 5, 2446, 0, 0, 11094, 1117, 1, 0, 0, 0, 11095, 11096, 5, 1348, 0, 0, 11096, 11110, 3, 1120, 560, 0, 11097, 11098, 5, 1761, 0, 0, 11098, 11099, 5, 736, 0, 0, 11099, 11100, 5, 2445, 0, 0, 11100, 11105, 3, 1648, 824, 0, 11101, 11102, 5, 2451, 0, 0, 11102, 11104, 3, 1648, 824, 0, 11103, 11101, 1, 0, 0, 0, 11104, 11107, 1, 0, 0, 0, 11105, 11103, 1, 0, 0, 0, 11105, 11106, 1, 0, 0, 0, 11106, 11108, 1, 0, 0, 0, 11107, 11105, 1, 0, 0, 0, 11108, 11109, 5, 2446, 0, 0, 11109, 11111, 1, 0, 0, 0, 11110, 11097, 1, 0, 0, 0, 11110, 11111, 1, 0, 0, 0, 11111, 11114, 1, 0, 0, 0, 11112, 11115, 3, 1172, 586, 0, 11113, 11115, 3, 1592, 796, 0, 11114, 11112, 1, 0, 0, 0, 11114, 11113, 1, 0, 0, 0, 11114, 11115, 1, 0, 0, 0, 11115, 11130, 1, 0, 0, 0, 11116, 11117, 5, 1318, 0, 0, 11117, 11118, 5, 1761, 0, 0, 11118, 11119, 5, 736, 0, 0, 11119, 11120, 5, 2445, 0, 0, 11120, 11125, 3, 1648, 824, 0, 11121, 11122, 5, 2451, 0, 0, 11122, 11124, 3, 1648, 824, 0, 11123, 11121, 1, 0, 0, 0, 11124, 11127, 1, 0, 0, 0, 11125, 11123, 1, 0, 0, 0, 11125, 11126, 1, 0, 0, 0, 11126, 11128, 1, 0, 0, 0, 11127, 11125, 1, 0, 0, 0, 11128, 11129, 5, 2446, 0, 0, 11129, 11131, 1, 0, 0, 0, 11130, 11116, 1, 0, 0, 0, 11130, 11131, 1, 0, 0, 0, 11131, 1119, 1, 0, 0, 0, 11132, 11133, 5, 2439, 0, 0, 11133, 1121, 1, 0, 0, 0, 11134, 11135, 5, 1346, 0, 0, 11135, 11136, 5, 160, 0, 0, 11136, 11137, 5, 1493, 0, 0, 11137, 11138, 5, 2445, 0, 0, 11138, 11143, 3, 2328, 1164, 0, 11139, 11140, 5, 2451, 0, 0, 11140, 11142, 3, 2328, 1164, 0, 11141, 11139, 1, 0, 0, 0, 11142, 11145, 1, 0, 0, 0, 11143, 11141, 1, 0, 0, 0, 11143, 11144, 1, 0, 0, 0, 11144, 11146, 1, 0, 0, 0, 11145, 11143, 1, 0, 0, 0, 11146, 11166, 5, 2446, 0, 0, 11147, 11148, 5, 774, 0, 0, 11148, 11149, 5, 2445, 0, 0, 11149, 11150, 3, 2070, 1035, 0, 11150, 11164, 5, 2446, 0, 0, 11151, 11152, 5, 1761, 0, 0, 11152, 11153, 5, 736, 0, 0, 11153, 11154, 5, 2445, 0, 0, 11154, 11159, 3, 1648, 824, 0, 11155, 11156, 5, 2451, 0, 0, 11156, 11158, 3, 1648, 824, 0, 11157, 11155, 1, 0, 0, 0, 11158, 11161, 1, 0, 0, 0, 11159, 11157, 1, 0, 0, 0, 11159, 11160, 1, 0, 0, 0, 11160, 11162, 1, 0, 0, 0, 11161, 11159, 1, 0, 0, 0, 11162, 11163, 5, 2446, 0, 0, 11163, 11165, 1, 0, 0, 0, 11164, 11151, 1, 0, 0, 0, 11164, 11165, 1, 0, 0, 0, 11165, 11167, 1, 0, 0, 0, 11166, 11147, 1, 0, 0, 0, 11166, 11167, 1, 0, 0, 0, 11167, 11171, 1, 0, 0, 0, 11168, 11172, 3, 1142, 571, 0, 11169, 11172, 3, 1144, 572, 0, 11170, 11172, 3, 1146, 573, 0, 11171, 11168, 1, 0, 0, 0, 11171, 11169, 1, 0, 0, 0, 11171, 11170, 1, 0, 0, 0, 11172, 11173, 1, 0, 0, 0, 11173, 11174, 5, 2445, 0, 0, 11174, 11179, 3, 1134, 567, 0, 11175, 11176, 5, 2451, 0, 0, 11176, 11178, 3, 1134, 567, 0, 11177, 11175, 1, 0, 0, 0, 11178, 11181, 1, 0, 0, 0, 11179, 11177, 1, 0, 0, 0, 11179, 11180, 1, 0, 0, 0, 11180, 11182, 1, 0, 0, 0, 11181, 11179, 1, 0, 0, 0, 11182, 11183, 5, 2446, 0, 0, 11183, 1123, 1, 0, 0, 0, 11184, 11185, 5, 1346, 0, 0, 11185, 11186, 5, 160, 0, 0, 11186, 11187, 5, 860, 0, 0, 11187, 11188, 5, 2445, 0, 0, 11188, 11189, 3, 2328, 1164, 0, 11189, 11193, 5, 2446, 0, 0, 11190, 11194, 3, 1142, 571, 0, 11191, 11194, 3, 1144, 572, 0, 11192, 11194, 3, 1146, 573, 0, 11193, 11190, 1, 0, 0, 0, 11193, 11191, 1, 0, 0, 0, 11193, 11192, 1, 0, 0, 0, 11194, 11195, 1, 0, 0, 0, 11195, 11196, 5, 2445, 0, 0, 11196, 11201, 3, 1136, 568, 0, 11197, 11198, 5, 2451, 0, 0, 11198, 11200, 3, 1136, 568, 0, 11199, 11197, 1, 0, 0, 0, 11200, 11203, 1, 0, 0, 0, 11201, 11199, 1, 0, 0, 0, 11201, 11202, 1, 0, 0, 0, 11202, 11204, 1, 0, 0, 0, 11203, 11201, 1, 0, 0, 0, 11204, 11205, 5, 2446, 0, 0, 11205, 1125, 1, 0, 0, 0, 11206, 11207, 5, 1346, 0, 0, 11207, 11208, 5, 160, 0, 0, 11208, 11209, 5, 658, 0, 0, 11209, 11212, 5, 2445, 0, 0, 11210, 11211, 5, 2451, 0, 0, 11211, 11213, 3, 2328, 1164, 0, 11212, 11210, 1, 0, 0, 0, 11213, 11214, 1, 0, 0, 0, 11214, 11212, 1, 0, 0, 0, 11214, 11215, 1, 0, 0, 0, 11215, 11216, 1, 0, 0, 0, 11216, 11220, 5, 2446, 0, 0, 11217, 11221, 3, 1142, 571, 0, 11218, 11221, 3, 1144, 572, 0, 11219, 11221, 3, 1146, 573, 0, 11220, 11217, 1, 0, 0, 0, 11220, 11218, 1, 0, 0, 0, 11220, 11219, 1, 0, 0, 0, 11221, 11224, 1, 0, 0, 0, 11222, 11225, 3, 1116, 558, 0, 11223, 11225, 3, 1118, 559, 0, 11224, 11222, 1, 0, 0, 0, 11224, 11223, 1, 0, 0, 0, 11225, 1127, 1, 0, 0, 0, 11226, 11227, 5, 1346, 0, 0, 11227, 11228, 5, 160, 0, 0, 11228, 11229, 5, 1525, 0, 0, 11229, 11230, 5, 2445, 0, 0, 11230, 11231, 3, 2298, 1149, 0, 11231, 11243, 5, 2446, 0, 0, 11232, 11233, 5, 2445, 0, 0, 11233, 11238, 3, 1130, 565, 0, 11234, 11235, 5, 2451, 0, 0, 11235, 11237, 3, 1130, 565, 0, 11236, 11234, 1, 0, 0, 0, 11237, 11240, 1, 0, 0, 0, 11238, 11236, 1, 0, 0, 0, 11238, 11239, 1, 0, 0, 0, 11239, 11241, 1, 0, 0, 0, 11240, 11238, 1, 0, 0, 0, 11241, 11242, 5, 2446, 0, 0, 11242, 11244, 1, 0, 0, 0, 11243, 11232, 1, 0, 0, 0, 11243, 11244, 1, 0, 0, 0, 11244, 1129, 1, 0, 0, 0, 11245, 11247, 5, 1346, 0, 0, 11246, 11248, 3, 1688, 844, 0, 11247, 11246, 1, 0, 0, 0, 11247, 11248, 1, 0, 0, 0, 11248, 11249, 1, 0, 0, 0, 11249, 11250, 3, 1164, 582, 0, 11250, 1131, 1, 0, 0, 0, 11251, 11252, 5, 1346, 0, 0, 11252, 11253, 5, 160, 0, 0, 11253, 11264, 5, 1947, 0, 0, 11254, 11255, 5, 1348, 0, 0, 11255, 11265, 5, 2439, 0, 0, 11256, 11261, 3, 1130, 565, 0, 11257, 11258, 5, 2451, 0, 0, 11258, 11260, 3, 1130, 565, 0, 11259, 11257, 1, 0, 0, 0, 11260, 11263, 1, 0, 0, 0, 11261, 11259, 1, 0, 0, 0, 11261, 11262, 1, 0, 0, 0, 11262, 11265, 1, 0, 0, 0, 11263, 11261, 1, 0, 0, 0, 11264, 11254, 1, 0, 0, 0, 11264, 11256, 1, 0, 0, 0, 11264, 11265, 1, 0, 0, 0, 11265, 1133, 1, 0, 0, 0, 11266, 11268, 5, 1346, 0, 0, 11267, 11269, 3, 1688, 844, 0, 11268, 11267, 1, 0, 0, 0, 11268, 11269, 1, 0, 0, 0, 11269, 11271, 1, 0, 0, 0, 11270, 11272, 3, 1158, 579, 0, 11271, 11270, 1, 0, 0, 0, 11271, 11272, 1, 0, 0, 0, 11272, 11273, 1, 0, 0, 0, 11273, 11306, 3, 1164, 582, 0, 11274, 11299, 5, 2445, 0, 0, 11275, 11280, 3, 1150, 575, 0, 11276, 11277, 5, 2451, 0, 0, 11277, 11279, 3, 1150, 575, 0, 11278, 11276, 1, 0, 0, 0, 11279, 11282, 1, 0, 0, 0, 11280, 11278, 1, 0, 0, 0, 11280, 11281, 1, 0, 0, 0, 11281, 11300, 1, 0, 0, 0, 11282, 11280, 1, 0, 0, 0, 11283, 11288, 3, 1152, 576, 0, 11284, 11285, 5, 2451, 0, 0, 11285, 11287, 3, 1152, 576, 0, 11286, 11284, 1, 0, 0, 0, 11287, 11290, 1, 0, 0, 0, 11288, 11286, 1, 0, 0, 0, 11288, 11289, 1, 0, 0, 0, 11289, 11300, 1, 0, 0, 0, 11290, 11288, 1, 0, 0, 0, 11291, 11296, 3, 1154, 577, 0, 11292, 11293, 5, 2451, 0, 0, 11293, 11295, 3, 1154, 577, 0, 11294, 11292, 1, 0, 0, 0, 11295, 11298, 1, 0, 0, 0, 11296, 11294, 1, 0, 0, 0, 11296, 11297, 1, 0, 0, 0, 11297, 11300, 1, 0, 0, 0, 11298, 11296, 1, 0, 0, 0, 11299, 11275, 1, 0, 0, 0, 11299, 11283, 1, 0, 0, 0, 11299, 11291, 1, 0, 0, 0, 11300, 11301, 1, 0, 0, 0, 11301, 11302, 5, 2446, 0, 0, 11302, 11305, 1, 0, 0, 0, 11303, 11305, 3, 1156, 578, 0, 11304, 11274, 1, 0, 0, 0, 11304, 11303, 1, 0, 0, 0, 11305, 11307, 1, 0, 0, 0, 11306, 11304, 1, 0, 0, 0, 11306, 11307, 1, 0, 0, 0, 11307, 1135, 1, 0, 0, 0, 11308, 11310, 5, 1346, 0, 0, 11309, 11311, 3, 1688, 844, 0, 11310, 11309, 1, 0, 0, 0, 11310, 11311, 1, 0, 0, 0, 11311, 11313, 1, 0, 0, 0, 11312, 11314, 3, 1162, 581, 0, 11313, 11312, 1, 0, 0, 0, 11313, 11314, 1, 0, 0, 0, 11314, 11315, 1, 0, 0, 0, 11315, 11348, 3, 1164, 582, 0, 11316, 11341, 5, 2445, 0, 0, 11317, 11322, 3, 1150, 575, 0, 11318, 11319, 5, 2451, 0, 0, 11319, 11321, 3, 1150, 575, 0, 11320, 11318, 1, 0, 0, 0, 11321, 11324, 1, 0, 0, 0, 11322, 11320, 1, 0, 0, 0, 11322, 11323, 1, 0, 0, 0, 11323, 11342, 1, 0, 0, 0, 11324, 11322, 1, 0, 0, 0, 11325, 11330, 3, 1152, 576, 0, 11326, 11327, 5, 2451, 0, 0, 11327, 11329, 3, 1152, 576, 0, 11328, 11326, 1, 0, 0, 0, 11329, 11332, 1, 0, 0, 0, 11330, 11328, 1, 0, 0, 0, 11330, 11331, 1, 0, 0, 0, 11331, 11342, 1, 0, 0, 0, 11332, 11330, 1, 0, 0, 0, 11333, 11338, 3, 1154, 577, 0, 11334, 11335, 5, 2451, 0, 0, 11335, 11337, 3, 1154, 577, 0, 11336, 11334, 1, 0, 0, 0, 11337, 11340, 1, 0, 0, 0, 11338, 11336, 1, 0, 0, 0, 11338, 11339, 1, 0, 0, 0, 11339, 11342, 1, 0, 0, 0, 11340, 11338, 1, 0, 0, 0, 11341, 11317, 1, 0, 0, 0, 11341, 11325, 1, 0, 0, 0, 11341, 11333, 1, 0, 0, 0, 11342, 11343, 1, 0, 0, 0, 11343, 11344, 5, 2446, 0, 0, 11344, 11347, 1, 0, 0, 0, 11345, 11347, 3, 1156, 578, 0, 11346, 11316, 1, 0, 0, 0, 11346, 11345, 1, 0, 0, 0, 11347, 11349, 1, 0, 0, 0, 11348, 11346, 1, 0, 0, 0, 11348, 11349, 1, 0, 0, 0, 11349, 1137, 1, 0, 0, 0, 11350, 11351, 5, 1773, 0, 0, 11351, 11382, 5, 2088, 0, 0, 11352, 11377, 5, 2445, 0, 0, 11353, 11358, 3, 1150, 575, 0, 11354, 11355, 5, 2451, 0, 0, 11355, 11357, 3, 1150, 575, 0, 11356, 11354, 1, 0, 0, 0, 11357, 11360, 1, 0, 0, 0, 11358, 11356, 1, 0, 0, 0, 11358, 11359, 1, 0, 0, 0, 11359, 11378, 1, 0, 0, 0, 11360, 11358, 1, 0, 0, 0, 11361, 11366, 3, 1152, 576, 0, 11362, 11363, 5, 2451, 0, 0, 11363, 11365, 3, 1152, 576, 0, 11364, 11362, 1, 0, 0, 0, 11365, 11368, 1, 0, 0, 0, 11366, 11364, 1, 0, 0, 0, 11366, 11367, 1, 0, 0, 0, 11367, 11378, 1, 0, 0, 0, 11368, 11366, 1, 0, 0, 0, 11369, 11374, 3, 1154, 577, 0, 11370, 11371, 5, 2451, 0, 0, 11371, 11373, 3, 1154, 577, 0, 11372, 11370, 1, 0, 0, 0, 11373, 11376, 1, 0, 0, 0, 11374, 11372, 1, 0, 0, 0, 11374, 11375, 1, 0, 0, 0, 11375, 11378, 1, 0, 0, 0, 11376, 11374, 1, 0, 0, 0, 11377, 11353, 1, 0, 0, 0, 11377, 11361, 1, 0, 0, 0, 11377, 11369, 1, 0, 0, 0, 11378, 11379, 1, 0, 0, 0, 11379, 11380, 5, 2446, 0, 0, 11380, 11383, 1, 0, 0, 0, 11381, 11383, 3, 1140, 570, 0, 11382, 11352, 1, 0, 0, 0, 11382, 11381, 1, 0, 0, 0, 11383, 1139, 1, 0, 0, 0, 11384, 11385, 5, 2439, 0, 0, 11385, 1141, 1, 0, 0, 0, 11386, 11387, 5, 1773, 0, 0, 11387, 11388, 5, 160, 0, 0, 11388, 11389, 5, 1493, 0, 0, 11389, 11390, 5, 2445, 0, 0, 11390, 11395, 3, 2328, 1164, 0, 11391, 11392, 5, 2451, 0, 0, 11392, 11394, 3, 2328, 1164, 0, 11393, 11391, 1, 0, 0, 0, 11394, 11397, 1, 0, 0, 0, 11395, 11393, 1, 0, 0, 0, 11395, 11396, 1, 0, 0, 0, 11396, 11398, 1, 0, 0, 0, 11397, 11395, 1, 0, 0, 0, 11398, 11400, 5, 2446, 0, 0, 11399, 11401, 3, 1138, 569, 0, 11400, 11399, 1, 0, 0, 0, 11400, 11401, 1, 0, 0, 0, 11401, 1143, 1, 0, 0, 0, 11402, 11403, 5, 1773, 0, 0, 11403, 11404, 5, 160, 0, 0, 11404, 11405, 5, 860, 0, 0, 11405, 11406, 5, 2445, 0, 0, 11406, 11407, 3, 2328, 1164, 0, 11407, 11409, 5, 2446, 0, 0, 11408, 11410, 3, 1138, 569, 0, 11409, 11408, 1, 0, 0, 0, 11409, 11410, 1, 0, 0, 0, 11410, 1145, 1, 0, 0, 0, 11411, 11412, 5, 1773, 0, 0, 11412, 11413, 5, 160, 0, 0, 11413, 11414, 5, 658, 0, 0, 11414, 11415, 5, 2445, 0, 0, 11415, 11420, 3, 2328, 1164, 0, 11416, 11417, 5, 2451, 0, 0, 11417, 11419, 3, 2328, 1164, 0, 11418, 11416, 1, 0, 0, 0, 11419, 11422, 1, 0, 0, 0, 11420, 11418, 1, 0, 0, 0, 11420, 11421, 1, 0, 0, 0, 11421, 11423, 1, 0, 0, 0, 11422, 11420, 1, 0, 0, 0, 11423, 11442, 5, 2446, 0, 0, 11424, 11425, 5, 1772, 0, 0, 11425, 11439, 5, 2439, 0, 0, 11426, 11427, 5, 1761, 0, 0, 11427, 11428, 5, 736, 0, 0, 11428, 11429, 5, 2445, 0, 0, 11429, 11434, 3, 1648, 824, 0, 11430, 11431, 5, 2451, 0, 0, 11431, 11433, 3, 1648, 824, 0, 11432, 11430, 1, 0, 0, 0, 11433, 11436, 1, 0, 0, 0, 11434, 11432, 1, 0, 0, 0, 11434, 11435, 1, 0, 0, 0, 11435, 11437, 1, 0, 0, 0, 11436, 11434, 1, 0, 0, 0, 11437, 11438, 5, 2446, 0, 0, 11438, 11440, 1, 0, 0, 0, 11439, 11426, 1, 0, 0, 0, 11439, 11440, 1, 0, 0, 0, 11440, 11443, 1, 0, 0, 0, 11441, 11443, 3, 1138, 569, 0, 11442, 11424, 1, 0, 0, 0, 11442, 11441, 1, 0, 0, 0, 11442, 11443, 1, 0, 0, 0, 11443, 1147, 1, 0, 0, 0, 11444, 11445, 3, 1688, 844, 0, 11445, 1149, 1, 0, 0, 0, 11446, 11448, 5, 1773, 0, 0, 11447, 11449, 3, 1148, 574, 0, 11448, 11447, 1, 0, 0, 0, 11448, 11449, 1, 0, 0, 0, 11449, 11450, 1, 0, 0, 0, 11450, 11452, 3, 1158, 579, 0, 11451, 11453, 3, 1166, 583, 0, 11452, 11451, 1, 0, 0, 0, 11452, 11453, 1, 0, 0, 0, 11453, 1151, 1, 0, 0, 0, 11454, 11456, 5, 1773, 0, 0, 11455, 11457, 3, 1148, 574, 0, 11456, 11455, 1, 0, 0, 0, 11456, 11457, 1, 0, 0, 0, 11457, 11458, 1, 0, 0, 0, 11458, 11460, 3, 1162, 581, 0, 11459, 11461, 3, 1166, 583, 0, 11460, 11459, 1, 0, 0, 0, 11460, 11461, 1, 0, 0, 0, 11461, 1153, 1, 0, 0, 0, 11462, 11464, 5, 1773, 0, 0, 11463, 11465, 3, 1148, 574, 0, 11464, 11463, 1, 0, 0, 0, 11464, 11465, 1, 0, 0, 0, 11465, 11467, 1, 0, 0, 0, 11466, 11468, 3, 1166, 583, 0, 11467, 11466, 1, 0, 0, 0, 11467, 11468, 1, 0, 0, 0, 11468, 1155, 1, 0, 0, 0, 11469, 11470, 5, 1772, 0, 0, 11470, 11484, 5, 2439, 0, 0, 11471, 11472, 5, 1761, 0, 0, 11472, 11473, 5, 736, 0, 0, 11473, 11474, 5, 2445, 0, 0, 11474, 11479, 3, 1648, 824, 0, 11475, 11476, 5, 2451, 0, 0, 11476, 11478, 3, 1648, 824, 0, 11477, 11475, 1, 0, 0, 0, 11478, 11481, 1, 0, 0, 0, 11479, 11477, 1, 0, 0, 0, 11479, 11480, 1, 0, 0, 0, 11480, 11482, 1, 0, 0, 0, 11481, 11479, 1, 0, 0, 0, 11482, 11483, 5, 2446, 0, 0, 11483, 11485, 1, 0, 0, 0, 11484, 11471, 1, 0, 0, 0, 11484, 11485, 1, 0, 0, 0, 11485, 1157, 1, 0, 0, 0, 11486, 11487, 5, 2255, 0, 0, 11487, 11488, 5, 843, 0, 0, 11488, 11489, 5, 2096, 0, 0, 11489, 11490, 5, 2445, 0, 0, 11490, 11491, 3, 1160, 580, 0, 11491, 11492, 5, 2446, 0, 0, 11492, 1159, 1, 0, 0, 0, 11493, 11498, 3, 2176, 1088, 0, 11494, 11495, 5, 2451, 0, 0, 11495, 11497, 3, 2176, 1088, 0, 11496, 11494, 1, 0, 0, 0, 11497, 11500, 1, 0, 0, 0, 11498, 11496, 1, 0, 0, 0, 11498, 11499, 1, 0, 0, 0, 11499, 11512, 1, 0, 0, 0, 11500, 11498, 1, 0, 0, 0, 11501, 11502, 5, 2106, 0, 0, 11502, 11508, 3, 2176, 1088, 0, 11503, 11504, 5, 2451, 0, 0, 11504, 11505, 5, 2106, 0, 0, 11505, 11507, 3, 2176, 1088, 0, 11506, 11503, 1, 0, 0, 0, 11507, 11510, 1, 0, 0, 0, 11508, 11506, 1, 0, 0, 0, 11508, 11509, 1, 0, 0, 0, 11509, 11512, 1, 0, 0, 0, 11510, 11508, 1, 0, 0, 0, 11511, 11493, 1, 0, 0, 0, 11511, 11501, 1, 0, 0, 0, 11512, 1161, 1, 0, 0, 0, 11513, 11514, 5, 2255, 0, 0, 11514, 11534, 5, 2445, 0, 0, 11515, 11520, 3, 2176, 1088, 0, 11516, 11517, 5, 2451, 0, 0, 11517, 11519, 3, 2176, 1088, 0, 11518, 11516, 1, 0, 0, 0, 11519, 11522, 1, 0, 0, 0, 11520, 11518, 1, 0, 0, 0, 11520, 11521, 1, 0, 0, 0, 11521, 11535, 1, 0, 0, 0, 11522, 11520, 1, 0, 0, 0, 11523, 11524, 5, 2106, 0, 0, 11524, 11530, 3, 2176, 1088, 0, 11525, 11526, 5, 2451, 0, 0, 11526, 11527, 5, 2106, 0, 0, 11527, 11529, 3, 2176, 1088, 0, 11528, 11525, 1, 0, 0, 0, 11529, 11532, 1, 0, 0, 0, 11530, 11528, 1, 0, 0, 0, 11530, 11531, 1, 0, 0, 0, 11531, 11535, 1, 0, 0, 0, 11532, 11530, 1, 0, 0, 0, 11533, 11535, 5, 387, 0, 0, 11534, 11515, 1, 0, 0, 0, 11534, 11523, 1, 0, 0, 0, 11534, 11533, 1, 0, 0, 0, 11535, 11536, 1, 0, 0, 0, 11536, 11537, 5, 2446, 0, 0, 11537, 1163, 1, 0, 0, 0, 11538, 11540, 7, 123, 0, 0, 11539, 11538, 1, 0, 0, 0, 11539, 11540, 1, 0, 0, 0, 11540, 11542, 1, 0, 0, 0, 11541, 11543, 3, 1192, 596, 0, 11542, 11541, 1, 0, 0, 0, 11542, 11543, 1, 0, 0, 0, 11543, 11545, 1, 0, 0, 0, 11544, 11546, 3, 1080, 540, 0, 11545, 11544, 1, 0, 0, 0, 11545, 11546, 1, 0, 0, 0, 11546, 11548, 1, 0, 0, 0, 11547, 11549, 3, 1082, 541, 0, 11548, 11547, 1, 0, 0, 0, 11548, 11549, 1, 0, 0, 0, 11549, 11551, 1, 0, 0, 0, 11550, 11552, 3, 1194, 597, 0, 11551, 11550, 1, 0, 0, 0, 11551, 11552, 1, 0, 0, 0, 11552, 11555, 1, 0, 0, 0, 11553, 11556, 3, 1172, 586, 0, 11554, 11556, 3, 1592, 796, 0, 11555, 11553, 1, 0, 0, 0, 11555, 11554, 1, 0, 0, 0, 11555, 11556, 1, 0, 0, 0, 11556, 11558, 1, 0, 0, 0, 11557, 11559, 3, 1174, 587, 0, 11558, 11557, 1, 0, 0, 0, 11558, 11559, 1, 0, 0, 0, 11559, 11561, 1, 0, 0, 0, 11560, 11562, 3, 1198, 599, 0, 11561, 11560, 1, 0, 0, 0, 11561, 11562, 1, 0, 0, 0, 11562, 11567, 1, 0, 0, 0, 11563, 11565, 5, 1318, 0, 0, 11564, 11566, 3, 1194, 597, 0, 11565, 11564, 1, 0, 0, 0, 11565, 11566, 1, 0, 0, 0, 11566, 11568, 1, 0, 0, 0, 11567, 11563, 1, 0, 0, 0, 11567, 11568, 1, 0, 0, 0, 11568, 11574, 1, 0, 0, 0, 11569, 11573, 3, 1632, 816, 0, 11570, 11573, 3, 1622, 811, 0, 11571, 11573, 3, 1682, 841, 0, 11572, 11569, 1, 0, 0, 0, 11572, 11570, 1, 0, 0, 0, 11572, 11571, 1, 0, 0, 0, 11573, 11576, 1, 0, 0, 0, 11574, 11572, 1, 0, 0, 0, 11574, 11575, 1, 0, 0, 0, 11575, 1165, 1, 0, 0, 0, 11576, 11574, 1, 0, 0, 0, 11577, 11578, 5, 2078, 0, 0, 11578, 11599, 3, 1648, 824, 0, 11579, 11582, 5, 1318, 0, 0, 11580, 11581, 5, 2078, 0, 0, 11581, 11583, 3, 1648, 824, 0, 11582, 11580, 1, 0, 0, 0, 11582, 11583, 1, 0, 0, 0, 11583, 11599, 1, 0, 0, 0, 11584, 11599, 3, 1172, 586, 0, 11585, 11599, 3, 1592, 796, 0, 11586, 11599, 3, 1174, 587, 0, 11587, 11599, 3, 1168, 584, 0, 11588, 11589, 5, 2265, 0, 0, 11589, 11590, 3, 1650, 825, 0, 11590, 11591, 5, 1761, 0, 0, 11591, 11593, 5, 69, 0, 0, 11592, 11594, 7, 119, 0, 0, 11593, 11592, 1, 0, 0, 0, 11593, 11594, 1, 0, 0, 0, 11594, 11595, 1, 0, 0, 0, 11595, 11596, 5, 866, 0, 0, 11596, 11597, 3, 1626, 813, 0, 11597, 11599, 1, 0, 0, 0, 11598, 11577, 1, 0, 0, 0, 11598, 11579, 1, 0, 0, 0, 11598, 11584, 1, 0, 0, 0, 11598, 11585, 1, 0, 0, 0, 11598, 11586, 1, 0, 0, 0, 11598, 11587, 1, 0, 0, 0, 11598, 11588, 1, 0, 0, 0, 11599, 11600, 1, 0, 0, 0, 11600, 11598, 1, 0, 0, 0, 11600, 11601, 1, 0, 0, 0, 11601, 1167, 1, 0, 0, 0, 11602, 11603, 5, 866, 0, 0, 11603, 11604, 5, 2445, 0, 0, 11604, 11605, 3, 1628, 814, 0, 11605, 11606, 5, 2446, 0, 0, 11606, 11607, 5, 1761, 0, 0, 11607, 11609, 5, 69, 0, 0, 11608, 11610, 7, 119, 0, 0, 11609, 11608, 1, 0, 0, 0, 11609, 11610, 1, 0, 0, 0, 11610, 11624, 1, 0, 0, 0, 11611, 11617, 3, 1626, 813, 0, 11612, 11613, 5, 2445, 0, 0, 11613, 11614, 5, 2078, 0, 0, 11614, 11615, 3, 1648, 824, 0, 11615, 11616, 5, 2446, 0, 0, 11616, 11618, 1, 0, 0, 0, 11617, 11612, 1, 0, 0, 0, 11617, 11618, 1, 0, 0, 0, 11618, 11625, 1, 0, 0, 0, 11619, 11620, 5, 2445, 0, 0, 11620, 11621, 5, 2078, 0, 0, 11621, 11622, 3, 1648, 824, 0, 11622, 11623, 5, 2446, 0, 0, 11623, 11625, 1, 0, 0, 0, 11624, 11611, 1, 0, 0, 0, 11624, 11619, 1, 0, 0, 0, 11625, 1169, 1, 0, 0, 0, 11626, 11628, 5, 2439, 0, 0, 11627, 11629, 7, 124, 0, 0, 11628, 11627, 1, 0, 0, 0, 11628, 11629, 1, 0, 0, 0, 11629, 1171, 1, 0, 0, 0, 11630, 11644, 5, 258, 0, 0, 11631, 11645, 5, 106, 0, 0, 11632, 11642, 5, 618, 0, 0, 11633, 11643, 5, 1251, 0, 0, 11634, 11636, 7, 125, 0, 0, 11635, 11637, 7, 103, 0, 0, 11636, 11635, 1, 0, 0, 0, 11636, 11637, 1, 0, 0, 0, 11637, 11643, 1, 0, 0, 0, 11638, 11639, 5, 38, 0, 0, 11639, 11643, 5, 1263, 0, 0, 11640, 11641, 5, 423, 0, 0, 11641, 11643, 5, 1263, 0, 0, 11642, 11633, 1, 0, 0, 0, 11642, 11634, 1, 0, 0, 0, 11642, 11638, 1, 0, 0, 0, 11642, 11640, 1, 0, 0, 0, 11643, 11645, 1, 0, 0, 0, 11644, 11631, 1, 0, 0, 0, 11644, 11632, 1, 0, 0, 0, 11644, 11645, 1, 0, 0, 0, 11645, 11672, 1, 0, 0, 0, 11646, 11647, 5, 1604, 0, 0, 11647, 11648, 5, 1761, 0, 0, 11648, 11650, 5, 258, 0, 0, 11649, 11651, 7, 126, 0, 0, 11650, 11649, 1, 0, 0, 0, 11650, 11651, 1, 0, 0, 0, 11651, 11672, 1, 0, 0, 0, 11652, 11653, 5, 237, 0, 0, 11653, 11654, 5, 1761, 0, 0, 11654, 11660, 5, 258, 0, 0, 11655, 11656, 5, 618, 0, 0, 11656, 11658, 7, 125, 0, 0, 11657, 11659, 7, 103, 0, 0, 11658, 11657, 1, 0, 0, 0, 11658, 11659, 1, 0, 0, 0, 11659, 11661, 1, 0, 0, 0, 11660, 11655, 1, 0, 0, 0, 11660, 11661, 1, 0, 0, 0, 11661, 11668, 1, 0, 0, 0, 11662, 11664, 5, 1135, 0, 0, 11663, 11662, 1, 0, 0, 0, 11663, 11664, 1, 0, 0, 0, 11664, 11665, 1, 0, 0, 0, 11665, 11666, 5, 1604, 0, 0, 11666, 11667, 5, 844, 0, 0, 11667, 11669, 5, 878, 0, 0, 11668, 11663, 1, 0, 0, 0, 11668, 11669, 1, 0, 0, 0, 11669, 11672, 1, 0, 0, 0, 11670, 11672, 5, 1072, 0, 0, 11671, 11630, 1, 0, 0, 0, 11671, 11646, 1, 0, 0, 0, 11671, 11652, 1, 0, 0, 0, 11671, 11670, 1, 0, 0, 0, 11672, 1173, 1, 0, 0, 0, 11673, 11675, 3, 1186, 593, 0, 11674, 11673, 1, 0, 0, 0, 11675, 11676, 1, 0, 0, 0, 11676, 11674, 1, 0, 0, 0, 11676, 11677, 1, 0, 0, 0, 11677, 11693, 1, 0, 0, 0, 11678, 11680, 5, 744, 0, 0, 11679, 11681, 3, 1176, 588, 0, 11680, 11679, 1, 0, 0, 0, 11680, 11681, 1, 0, 0, 0, 11681, 11685, 1, 0, 0, 0, 11682, 11683, 5, 1135, 0, 0, 11683, 11685, 5, 744, 0, 0, 11684, 11678, 1, 0, 0, 0, 11684, 11682, 1, 0, 0, 0, 11685, 11689, 1, 0, 0, 0, 11686, 11688, 3, 1186, 593, 0, 11687, 11686, 1, 0, 0, 0, 11688, 11691, 1, 0, 0, 0, 11689, 11687, 1, 0, 0, 0, 11689, 11690, 1, 0, 0, 0, 11690, 11693, 1, 0, 0, 0, 11691, 11689, 1, 0, 0, 0, 11692, 11674, 1, 0, 0, 0, 11692, 11684, 1, 0, 0, 0, 11693, 1175, 1, 0, 0, 0, 11694, 11699, 3, 1178, 589, 0, 11695, 11699, 3, 1180, 590, 0, 11696, 11699, 3, 1182, 591, 0, 11697, 11699, 3, 1184, 592, 0, 11698, 11694, 1, 0, 0, 0, 11698, 11695, 1, 0, 0, 0, 11698, 11696, 1, 0, 0, 0, 11698, 11697, 1, 0, 0, 0, 11699, 11700, 1, 0, 0, 0, 11700, 11698, 1, 0, 0, 0, 11700, 11701, 1, 0, 0, 0, 11701, 1177, 1, 0, 0, 0, 11702, 11703, 5, 939, 0, 0, 11703, 11709, 5, 618, 0, 0, 11704, 11710, 5, 447, 0, 0, 11705, 11707, 7, 127, 0, 0, 11706, 11708, 7, 103, 0, 0, 11707, 11706, 1, 0, 0, 0, 11707, 11708, 1, 0, 0, 0, 11708, 11710, 1, 0, 0, 0, 11709, 11704, 1, 0, 0, 0, 11709, 11705, 1, 0, 0, 0, 11710, 11714, 1, 0, 0, 0, 11711, 11712, 5, 1135, 0, 0, 11712, 11714, 5, 939, 0, 0, 11713, 11702, 1, 0, 0, 0, 11713, 11711, 1, 0, 0, 0, 11714, 1179, 1, 0, 0, 0, 11715, 11716, 5, 1451, 0, 0, 11716, 11717, 7, 128, 0, 0, 11717, 1181, 1, 0, 0, 0, 11718, 11727, 5, 446, 0, 0, 11719, 11728, 5, 91, 0, 0, 11720, 11725, 5, 160, 0, 0, 11721, 11722, 5, 1599, 0, 0, 11722, 11726, 5, 1493, 0, 0, 11723, 11726, 5, 1346, 0, 0, 11724, 11726, 5, 1773, 0, 0, 11725, 11721, 1, 0, 0, 0, 11725, 11723, 1, 0, 0, 0, 11725, 11724, 1, 0, 0, 0, 11726, 11728, 1, 0, 0, 0, 11727, 11719, 1, 0, 0, 0, 11727, 11720, 1, 0, 0, 0, 11727, 11728, 1, 0, 0, 0, 11728, 11737, 1, 0, 0, 0, 11729, 11730, 5, 618, 0, 0, 11730, 11735, 5, 1662, 0, 0, 11731, 11736, 5, 387, 0, 0, 11732, 11736, 5, 38, 0, 0, 11733, 11736, 3, 2390, 1195, 0, 11734, 11736, 5, 1131, 0, 0, 11735, 11731, 1, 0, 0, 0, 11735, 11732, 1, 0, 0, 0, 11735, 11733, 1, 0, 0, 0, 11735, 11734, 1, 0, 0, 0, 11736, 11738, 1, 0, 0, 0, 11737, 11729, 1, 0, 0, 0, 11737, 11738, 1, 0, 0, 0, 11738, 1183, 1, 0, 0, 0, 11739, 11741, 5, 473, 0, 0, 11740, 11742, 5, 38, 0, 0, 11741, 11740, 1, 0, 0, 0, 11741, 11742, 1, 0, 0, 0, 11742, 11746, 1, 0, 0, 0, 11743, 11744, 5, 1135, 0, 0, 11744, 11746, 5, 473, 0, 0, 11745, 11739, 1, 0, 0, 0, 11745, 11743, 1, 0, 0, 0, 11746, 1185, 1, 0, 0, 0, 11747, 11749, 5, 744, 0, 0, 11748, 11750, 3, 1178, 589, 0, 11749, 11748, 1, 0, 0, 0, 11749, 11750, 1, 0, 0, 0, 11750, 11754, 1, 0, 0, 0, 11751, 11752, 5, 1135, 0, 0, 11752, 11754, 5, 744, 0, 0, 11753, 11747, 1, 0, 0, 0, 11753, 11751, 1, 0, 0, 0, 11754, 11755, 1, 0, 0, 0, 11755, 11756, 5, 2445, 0, 0, 11756, 11757, 3, 2346, 1173, 0, 11757, 11758, 5, 2446, 0, 0, 11758, 1187, 1, 0, 0, 0, 11759, 11760, 5, 1367, 0, 0, 11760, 11770, 5, 2439, 0, 0, 11761, 11762, 5, 1370, 0, 0, 11762, 11770, 5, 2439, 0, 0, 11763, 11764, 5, 741, 0, 0, 11764, 11770, 5, 2439, 0, 0, 11765, 11766, 5, 929, 0, 0, 11766, 11770, 5, 2439, 0, 0, 11767, 11770, 3, 1190, 595, 0, 11768, 11770, 3, 676, 338, 0, 11769, 11759, 1, 0, 0, 0, 11769, 11761, 1, 0, 0, 0, 11769, 11763, 1, 0, 0, 0, 11769, 11765, 1, 0, 0, 0, 11769, 11767, 1, 0, 0, 0, 11769, 11768, 1, 0, 0, 0, 11770, 11771, 1, 0, 0, 0, 11771, 11769, 1, 0, 0, 0, 11771, 11772, 1, 0, 0, 0, 11772, 1189, 1, 0, 0, 0, 11773, 11774, 5, 1760, 0, 0, 11774, 11802, 5, 2445, 0, 0, 11775, 11776, 5, 738, 0, 0, 11776, 11803, 3, 1170, 585, 0, 11777, 11778, 5, 1023, 0, 0, 11778, 11803, 3, 1170, 585, 0, 11779, 11780, 5, 950, 0, 0, 11780, 11803, 7, 129, 0, 0, 11781, 11782, 5, 921, 0, 0, 11782, 11803, 7, 129, 0, 0, 11783, 11784, 5, 1368, 0, 0, 11784, 11803, 5, 2439, 0, 0, 11785, 11786, 5, 623, 0, 0, 11786, 11803, 5, 2439, 0, 0, 11787, 11788, 5, 622, 0, 0, 11788, 11789, 5, 651, 0, 0, 11789, 11803, 5, 2439, 0, 0, 11790, 11793, 5, 1266, 0, 0, 11791, 11794, 3, 1170, 585, 0, 11792, 11794, 5, 1226, 0, 0, 11793, 11791, 1, 0, 0, 0, 11793, 11792, 1, 0, 0, 0, 11794, 11803, 1, 0, 0, 0, 11795, 11796, 5, 157, 0, 0, 11796, 11803, 7, 130, 0, 0, 11797, 11798, 5, 604, 0, 0, 11798, 11803, 7, 131, 0, 0, 11799, 11800, 5, 186, 0, 0, 11800, 11803, 7, 131, 0, 0, 11801, 11803, 5, 503, 0, 0, 11802, 11775, 1, 0, 0, 0, 11802, 11777, 1, 0, 0, 0, 11802, 11779, 1, 0, 0, 0, 11802, 11781, 1, 0, 0, 0, 11802, 11783, 1, 0, 0, 0, 11802, 11785, 1, 0, 0, 0, 11802, 11787, 1, 0, 0, 0, 11802, 11790, 1, 0, 0, 0, 11802, 11795, 1, 0, 0, 0, 11802, 11797, 1, 0, 0, 0, 11802, 11799, 1, 0, 0, 0, 11802, 11801, 1, 0, 0, 0, 11803, 11804, 1, 0, 0, 0, 11804, 11802, 1, 0, 0, 0, 11804, 11805, 1, 0, 0, 0, 11805, 11806, 1, 0, 0, 0, 11806, 11807, 5, 2446, 0, 0, 11807, 1191, 1, 0, 0, 0, 11808, 11809, 5, 1643, 0, 0, 11809, 11810, 5, 322, 0, 0, 11810, 11811, 7, 67, 0, 0, 11811, 1193, 1, 0, 0, 0, 11812, 11824, 3, 1188, 594, 0, 11813, 11819, 5, 2078, 0, 0, 11814, 11820, 3, 2392, 1196, 0, 11815, 11817, 5, 1669, 0, 0, 11816, 11815, 1, 0, 0, 0, 11816, 11817, 1, 0, 0, 0, 11817, 11818, 1, 0, 0, 0, 11818, 11820, 3, 2390, 1195, 0, 11819, 11814, 1, 0, 0, 0, 11819, 11816, 1, 0, 0, 0, 11820, 11824, 1, 0, 0, 0, 11821, 11824, 3, 1172, 586, 0, 11822, 11824, 3, 884, 442, 0, 11823, 11812, 1, 0, 0, 0, 11823, 11813, 1, 0, 0, 0, 11823, 11821, 1, 0, 0, 0, 11823, 11822, 1, 0, 0, 0, 11824, 11825, 1, 0, 0, 0, 11825, 11823, 1, 0, 0, 0, 11825, 11826, 1, 0, 0, 0, 11826, 1195, 1, 0, 0, 0, 11827, 11871, 3, 1192, 596, 0, 11828, 11871, 3, 1194, 597, 0, 11829, 11871, 3, 1172, 586, 0, 11830, 11871, 3, 1174, 587, 0, 11831, 11871, 3, 1198, 599, 0, 11832, 11847, 5, 1304, 0, 0, 11833, 11835, 5, 663, 0, 0, 11834, 11836, 3, 1194, 597, 0, 11835, 11834, 1, 0, 0, 0, 11835, 11836, 1, 0, 0, 0, 11836, 11837, 1, 0, 0, 0, 11837, 11848, 3, 1214, 607, 0, 11838, 11840, 5, 715, 0, 0, 11839, 11841, 3, 1194, 597, 0, 11840, 11839, 1, 0, 0, 0, 11840, 11841, 1, 0, 0, 0, 11841, 11843, 1, 0, 0, 0, 11842, 11844, 3, 1588, 794, 0, 11843, 11842, 1, 0, 0, 0, 11843, 11844, 1, 0, 0, 0, 11844, 11848, 1, 0, 0, 0, 11845, 11846, 5, 558, 0, 0, 11846, 11848, 3, 1216, 608, 0, 11847, 11833, 1, 0, 0, 0, 11847, 11838, 1, 0, 0, 0, 11847, 11845, 1, 0, 0, 0, 11848, 11871, 1, 0, 0, 0, 11849, 11850, 5, 558, 0, 0, 11850, 11851, 5, 1346, 0, 0, 11851, 11852, 5, 84, 0, 0, 11852, 11855, 3, 1216, 608, 0, 11853, 11854, 5, 1547, 0, 0, 11854, 11856, 5, 856, 0, 0, 11855, 11853, 1, 0, 0, 0, 11855, 11856, 1, 0, 0, 0, 11856, 11871, 1, 0, 0, 0, 11857, 11858, 5, 220, 0, 0, 11858, 11859, 3, 464, 232, 0, 11859, 11860, 5, 2445, 0, 0, 11860, 11865, 3, 2328, 1164, 0, 11861, 11862, 5, 2451, 0, 0, 11862, 11864, 3, 2328, 1164, 0, 11863, 11861, 1, 0, 0, 0, 11864, 11867, 1, 0, 0, 0, 11865, 11863, 1, 0, 0, 0, 11865, 11866, 1, 0, 0, 0, 11866, 11868, 1, 0, 0, 0, 11867, 11865, 1, 0, 0, 0, 11868, 11869, 5, 2446, 0, 0, 11869, 11871, 1, 0, 0, 0, 11870, 11827, 1, 0, 0, 0, 11870, 11828, 1, 0, 0, 0, 11870, 11829, 1, 0, 0, 0, 11870, 11830, 1, 0, 0, 0, 11870, 11831, 1, 0, 0, 0, 11870, 11832, 1, 0, 0, 0, 11870, 11849, 1, 0, 0, 0, 11870, 11857, 1, 0, 0, 0, 11871, 1197, 1, 0, 0, 0, 11872, 11882, 5, 695, 0, 0, 11873, 11874, 5, 21, 0, 0, 11874, 11875, 5, 1410, 0, 0, 11875, 11883, 3, 1200, 600, 0, 11876, 11877, 7, 132, 0, 0, 11877, 11878, 5, 1410, 0, 0, 11878, 11883, 3, 1200, 600, 0, 11879, 11883, 5, 400, 0, 0, 11880, 11883, 5, 496, 0, 0, 11881, 11883, 5, 426, 0, 0, 11882, 11873, 1, 0, 0, 0, 11882, 11876, 1, 0, 0, 0, 11882, 11879, 1, 0, 0, 0, 11882, 11880, 1, 0, 0, 0, 11882, 11881, 1, 0, 0, 0, 11883, 1199, 1, 0, 0, 0, 11884, 11888, 3, 1202, 601, 0, 11885, 11888, 3, 1204, 602, 0, 11886, 11888, 3, 1210, 605, 0, 11887, 11884, 1, 0, 0, 0, 11887, 11885, 1, 0, 0, 0, 11887, 11886, 1, 0, 0, 0, 11888, 1201, 1, 0, 0, 0, 11889, 11890, 3, 1172, 586, 0, 11890, 11891, 3, 1208, 604, 0, 11891, 11892, 3, 1206, 603, 0, 11892, 11909, 1, 0, 0, 0, 11893, 11894, 7, 133, 0, 0, 11894, 11895, 5, 1761, 0, 0, 11895, 11899, 5, 258, 0, 0, 11896, 11900, 5, 29, 0, 0, 11897, 11898, 5, 618, 0, 0, 11898, 11900, 5, 1482, 0, 0, 11899, 11896, 1, 0, 0, 0, 11899, 11897, 1, 0, 0, 0, 11900, 11901, 1, 0, 0, 0, 11901, 11902, 5, 1604, 0, 0, 11902, 11903, 5, 33, 0, 0, 11903, 11904, 3, 1212, 606, 0, 11904, 11905, 5, 1244, 0, 0, 11905, 11906, 5, 1135, 0, 0, 11906, 11907, 5, 976, 0, 0, 11907, 11909, 1, 0, 0, 0, 11908, 11889, 1, 0, 0, 0, 11908, 11893, 1, 0, 0, 0, 11909, 1203, 1, 0, 0, 0, 11910, 11911, 5, 2102, 0, 0, 11911, 11912, 5, 2139, 0, 0, 11912, 11926, 3, 1648, 824, 0, 11913, 11915, 3, 1208, 604, 0, 11914, 11913, 1, 0, 0, 0, 11914, 11915, 1, 0, 0, 0, 11915, 11918, 1, 0, 0, 0, 11916, 11917, 5, 1257, 0, 0, 11917, 11919, 3, 2308, 1154, 0, 11918, 11916, 1, 0, 0, 0, 11918, 11919, 1, 0, 0, 0, 11919, 11927, 1, 0, 0, 0, 11920, 11921, 5, 1503, 0, 0, 11921, 11923, 5, 1256, 0, 0, 11922, 11924, 3, 1208, 604, 0, 11923, 11922, 1, 0, 0, 0, 11923, 11924, 1, 0, 0, 0, 11924, 11925, 1, 0, 0, 0, 11925, 11927, 3, 1206, 603, 0, 11926, 11914, 1, 0, 0, 0, 11926, 11920, 1, 0, 0, 0, 11927, 1205, 1, 0, 0, 0, 11928, 11929, 5, 33, 0, 0, 11929, 11930, 3, 1212, 606, 0, 11930, 11934, 5, 1244, 0, 0, 11931, 11932, 5, 1135, 0, 0, 11932, 11935, 7, 134, 0, 0, 11933, 11935, 5, 322, 0, 0, 11934, 11931, 1, 0, 0, 0, 11934, 11933, 1, 0, 0, 0, 11935, 11939, 1, 0, 0, 0, 11936, 11937, 5, 1257, 0, 0, 11937, 11939, 3, 2308, 1154, 0, 11938, 11928, 1, 0, 0, 0, 11938, 11936, 1, 0, 0, 0, 11939, 1207, 1, 0, 0, 0, 11940, 11941, 7, 135, 0, 0, 11941, 1209, 1, 0, 0, 0, 11942, 11943, 5, 1669, 0, 0, 11943, 11945, 5, 744, 0, 0, 11944, 11946, 3, 1176, 588, 0, 11945, 11944, 1, 0, 0, 0, 11945, 11946, 1, 0, 0, 0, 11946, 11953, 1, 0, 0, 0, 11947, 11948, 5, 978, 0, 0, 11948, 11949, 5, 744, 0, 0, 11949, 11953, 3, 1178, 589, 0, 11950, 11951, 5, 1135, 0, 0, 11951, 11953, 5, 744, 0, 0, 11952, 11942, 1, 0, 0, 0, 11952, 11947, 1, 0, 0, 0, 11952, 11950, 1, 0, 0, 0, 11953, 11955, 1, 0, 0, 0, 11954, 11956, 5, 1643, 0, 0, 11955, 11954, 1, 0, 0, 0, 11955, 11956, 1, 0, 0, 0, 11956, 11957, 1, 0, 0, 0, 11957, 11958, 3, 1206, 603, 0, 11958, 1211, 1, 0, 0, 0, 11959, 11960, 3, 2384, 1192, 0, 11960, 11961, 7, 136, 0, 0, 11961, 1213, 1, 0, 0, 0, 11962, 11964, 3, 1172, 586, 0, 11963, 11962, 1, 0, 0, 0, 11963, 11964, 1, 0, 0, 0, 11964, 11966, 1, 0, 0, 0, 11965, 11967, 3, 1174, 587, 0, 11966, 11965, 1, 0, 0, 0, 11966, 11967, 1, 0, 0, 0, 11967, 11969, 1, 0, 0, 0, 11968, 11970, 3, 1198, 599, 0, 11969, 11968, 1, 0, 0, 0, 11969, 11970, 1, 0, 0, 0, 11970, 1215, 1, 0, 0, 0, 11971, 11974, 5, 2445, 0, 0, 11972, 11973, 5, 2164, 0, 0, 11973, 11975, 3, 1218, 609, 0, 11974, 11972, 1, 0, 0, 0, 11974, 11975, 1, 0, 0, 0, 11975, 11976, 1, 0, 0, 0, 11976, 11977, 3, 1220, 610, 0, 11977, 11979, 5, 2446, 0, 0, 11978, 11980, 3, 926, 463, 0, 11979, 11978, 1, 0, 0, 0, 11979, 11980, 1, 0, 0, 0, 11980, 11987, 1, 0, 0, 0, 11981, 11982, 5, 1547, 0, 0, 11982, 11985, 5, 856, 0, 0, 11983, 11986, 3, 2384, 1192, 0, 11984, 11986, 5, 2183, 0, 0, 11985, 11983, 1, 0, 0, 0, 11985, 11984, 1, 0, 0, 0, 11986, 11988, 1, 0, 0, 0, 11987, 11981, 1, 0, 0, 0, 11987, 11988, 1, 0, 0, 0, 11988, 11990, 1, 0, 0, 0, 11989, 11991, 3, 1174, 587, 0, 11990, 11989, 1, 0, 0, 0, 11990, 11991, 1, 0, 0, 0, 11991, 1217, 1, 0, 0, 0, 11992, 11993, 7, 137, 0, 0, 11993, 1219, 1, 0, 0, 0, 11994, 11995, 5, 387, 0, 0, 11995, 11996, 5, 424, 0, 0, 11996, 11998, 3, 1264, 632, 0, 11997, 11994, 1, 0, 0, 0, 11997, 11998, 1, 0, 0, 0, 11998, 12017, 1, 0, 0, 0, 11999, 12000, 5, 4, 0, 0, 12000, 12015, 5, 1333, 0, 0, 12001, 12002, 5, 2445, 0, 0, 12002, 12003, 5, 2441, 0, 0, 12003, 12016, 5, 2446, 0, 0, 12004, 12006, 5, 2445, 0, 0, 12005, 12007, 3, 1222, 611, 0, 12006, 12005, 1, 0, 0, 0, 12007, 12008, 1, 0, 0, 0, 12008, 12006, 1, 0, 0, 0, 12008, 12009, 1, 0, 0, 0, 12009, 12010, 1, 0, 0, 0, 12010, 12011, 5, 2446, 0, 0, 12011, 12016, 1, 0, 0, 0, 12012, 12013, 5, 2244, 0, 0, 12013, 12014, 5, 215, 0, 0, 12014, 12016, 3, 1860, 930, 0, 12015, 12001, 1, 0, 0, 0, 12015, 12004, 1, 0, 0, 0, 12015, 12012, 1, 0, 0, 0, 12016, 12018, 1, 0, 0, 0, 12017, 11999, 1, 0, 0, 0, 12017, 12018, 1, 0, 0, 0, 12018, 12031, 1, 0, 0, 0, 12019, 12020, 5, 874, 0, 0, 12020, 12021, 5, 2445, 0, 0, 12021, 12026, 3, 1264, 632, 0, 12022, 12023, 5, 2451, 0, 0, 12023, 12025, 3, 1264, 632, 0, 12024, 12022, 1, 0, 0, 0, 12025, 12028, 1, 0, 0, 0, 12026, 12024, 1, 0, 0, 0, 12026, 12027, 1, 0, 0, 0, 12027, 12029, 1, 0, 0, 0, 12028, 12026, 1, 0, 0, 0, 12029, 12030, 5, 2446, 0, 0, 12030, 12032, 1, 0, 0, 0, 12031, 12019, 1, 0, 0, 0, 12031, 12032, 1, 0, 0, 0, 12032, 1221, 1, 0, 0, 0, 12033, 12034, 5, 1511, 0, 0, 12034, 12035, 5, 403, 0, 0, 12035, 12036, 5, 160, 0, 0, 12036, 12055, 5, 1020, 0, 0, 12037, 12038, 5, 237, 0, 0, 12038, 12039, 5, 2147, 0, 0, 12039, 12040, 5, 2445, 0, 0, 12040, 12045, 3, 1224, 612, 0, 12041, 12042, 5, 2451, 0, 0, 12042, 12044, 3, 1224, 612, 0, 12043, 12041, 1, 0, 0, 0, 12044, 12047, 1, 0, 0, 0, 12045, 12043, 1, 0, 0, 0, 12045, 12046, 1, 0, 0, 0, 12046, 12048, 1, 0, 0, 0, 12047, 12045, 1, 0, 0, 0, 12048, 12049, 5, 2446, 0, 0, 12049, 12055, 1, 0, 0, 0, 12050, 12055, 3, 1248, 624, 0, 12051, 12055, 3, 1254, 627, 0, 12052, 12055, 3, 1256, 628, 0, 12053, 12055, 3, 1258, 629, 0, 12054, 12033, 1, 0, 0, 0, 12054, 12037, 1, 0, 0, 0, 12054, 12050, 1, 0, 0, 0, 12054, 12051, 1, 0, 0, 0, 12054, 12052, 1, 0, 0, 0, 12054, 12053, 1, 0, 0, 0, 12055, 1223, 1, 0, 0, 0, 12056, 12057, 3, 2328, 1164, 0, 12057, 12092, 5, 626, 0, 0, 12058, 12093, 5, 1226, 0, 0, 12059, 12060, 5, 282, 0, 0, 12060, 12093, 3, 2388, 1194, 0, 12061, 12065, 7, 138, 0, 0, 12062, 12066, 3, 1226, 613, 0, 12063, 12064, 5, 282, 0, 0, 12064, 12066, 3, 2388, 1194, 0, 12065, 12062, 1, 0, 0, 0, 12065, 12063, 1, 0, 0, 0, 12066, 12093, 1, 0, 0, 0, 12067, 12068, 5, 626, 0, 0, 12068, 12069, 5, 2445, 0, 0, 12069, 12074, 3, 1264, 632, 0, 12070, 12071, 5, 2451, 0, 0, 12071, 12073, 3, 1264, 632, 0, 12072, 12070, 1, 0, 0, 0, 12073, 12076, 1, 0, 0, 0, 12074, 12072, 1, 0, 0, 0, 12074, 12075, 1, 0, 0, 0, 12075, 12077, 1, 0, 0, 0, 12076, 12074, 1, 0, 0, 0, 12077, 12078, 5, 2446, 0, 0, 12078, 12085, 1, 0, 0, 0, 12079, 12085, 5, 215, 0, 0, 12080, 12085, 5, 142, 0, 0, 12081, 12082, 5, 195, 0, 0, 12082, 12083, 5, 2469, 0, 0, 12083, 12085, 3, 2334, 1167, 0, 12084, 12067, 1, 0, 0, 0, 12084, 12079, 1, 0, 0, 0, 12084, 12080, 1, 0, 0, 0, 12084, 12081, 1, 0, 0, 0, 12085, 12093, 1, 0, 0, 0, 12086, 12087, 5, 1736, 0, 0, 12087, 12088, 3, 1228, 614, 0, 12088, 12089, 5, 2445, 0, 0, 12089, 12090, 5, 2439, 0, 0, 12090, 12091, 5, 2446, 0, 0, 12091, 12093, 1, 0, 0, 0, 12092, 12058, 1, 0, 0, 0, 12092, 12059, 1, 0, 0, 0, 12092, 12061, 1, 0, 0, 0, 12092, 12084, 1, 0, 0, 0, 12092, 12086, 1, 0, 0, 0, 12093, 1225, 1, 0, 0, 0, 12094, 12096, 3, 2328, 1164, 0, 12095, 12097, 3, 2302, 1151, 0, 12096, 12095, 1, 0, 0, 0, 12096, 12097, 1, 0, 0, 0, 12097, 12100, 1, 0, 0, 0, 12098, 12099, 5, 1202, 0, 0, 12099, 12101, 5, 1226, 0, 0, 12100, 12098, 1, 0, 0, 0, 12100, 12101, 1, 0, 0, 0, 12101, 12103, 1, 0, 0, 0, 12102, 12104, 3, 1730, 865, 0, 12103, 12102, 1, 0, 0, 0, 12103, 12104, 1, 0, 0, 0, 12104, 1227, 1, 0, 0, 0, 12105, 12110, 3, 1230, 615, 0, 12106, 12107, 5, 2451, 0, 0, 12107, 12109, 3, 1230, 615, 0, 12108, 12106, 1, 0, 0, 0, 12109, 12112, 1, 0, 0, 0, 12110, 12108, 1, 0, 0, 0, 12110, 12111, 1, 0, 0, 0, 12111, 1229, 1, 0, 0, 0, 12112, 12110, 1, 0, 0, 0, 12113, 12120, 3, 1226, 613, 0, 12114, 12119, 3, 1232, 616, 0, 12115, 12119, 3, 1234, 617, 0, 12116, 12119, 3, 1242, 621, 0, 12117, 12119, 3, 1246, 623, 0, 12118, 12114, 1, 0, 0, 0, 12118, 12115, 1, 0, 0, 0, 12118, 12116, 1, 0, 0, 0, 12118, 12117, 1, 0, 0, 0, 12119, 12122, 1, 0, 0, 0, 12120, 12118, 1, 0, 0, 0, 12120, 12121, 1, 0, 0, 0, 12121, 1231, 1, 0, 0, 0, 12122, 12120, 1, 0, 0, 0, 12123, 12125, 5, 1416, 0, 0, 12124, 12123, 1, 0, 0, 0, 12124, 12125, 1, 0, 0, 0, 12125, 12126, 1, 0, 0, 0, 12126, 12128, 5, 2445, 0, 0, 12127, 12129, 5, 2448, 0, 0, 12128, 12127, 1, 0, 0, 0, 12128, 12129, 1, 0, 0, 0, 12129, 12131, 1, 0, 0, 0, 12130, 12132, 7, 139, 0, 0, 12131, 12130, 1, 0, 0, 0, 12131, 12132, 1, 0, 0, 0, 12132, 12134, 1, 0, 0, 0, 12133, 12135, 5, 2439, 0, 0, 12134, 12133, 1, 0, 0, 0, 12134, 12135, 1, 0, 0, 0, 12135, 12142, 1, 0, 0, 0, 12136, 12143, 5, 2459, 0, 0, 12137, 12139, 5, 2466, 0, 0, 12138, 12140, 7, 139, 0, 0, 12139, 12138, 1, 0, 0, 0, 12139, 12140, 1, 0, 0, 0, 12140, 12141, 1, 0, 0, 0, 12141, 12143, 5, 2439, 0, 0, 12142, 12136, 1, 0, 0, 0, 12142, 12137, 1, 0, 0, 0, 12143, 12144, 1, 0, 0, 0, 12144, 12145, 5, 2446, 0, 0, 12145, 1233, 1, 0, 0, 0, 12146, 12148, 5, 2198, 0, 0, 12147, 12146, 1, 0, 0, 0, 12147, 12148, 1, 0, 0, 0, 12148, 12149, 1, 0, 0, 0, 12149, 12151, 5, 767, 0, 0, 12150, 12152, 5, 558, 0, 0, 12151, 12150, 1, 0, 0, 0, 12151, 12152, 1, 0, 0, 0, 12152, 12154, 1, 0, 0, 0, 12153, 12155, 5, 2439, 0, 0, 12154, 12153, 1, 0, 0, 0, 12154, 12155, 1, 0, 0, 0, 12155, 12157, 1, 0, 0, 0, 12156, 12158, 3, 1236, 618, 0, 12157, 12156, 1, 0, 0, 0, 12157, 12158, 1, 0, 0, 0, 12158, 12236, 1, 0, 0, 0, 12159, 12176, 7, 140, 0, 0, 12160, 12161, 5, 2445, 0, 0, 12161, 12164, 5, 2439, 0, 0, 12162, 12163, 5, 2451, 0, 0, 12163, 12165, 5, 2439, 0, 0, 12164, 12162, 1, 0, 0, 0, 12164, 12165, 1, 0, 0, 0, 12165, 12166, 1, 0, 0, 0, 12166, 12177, 5, 2446, 0, 0, 12167, 12171, 5, 558, 0, 0, 12168, 12169, 5, 2445, 0, 0, 12169, 12170, 5, 2439, 0, 0, 12170, 12172, 5, 2446, 0, 0, 12171, 12168, 1, 0, 0, 0, 12171, 12172, 1, 0, 0, 0, 12172, 12174, 1, 0, 0, 0, 12173, 12175, 3, 1236, 618, 0, 12174, 12173, 1, 0, 0, 0, 12174, 12175, 1, 0, 0, 0, 12175, 12177, 1, 0, 0, 0, 12176, 12160, 1, 0, 0, 0, 12176, 12167, 1, 0, 0, 0, 12177, 12236, 1, 0, 0, 0, 12178, 12236, 5, 1279, 0, 0, 12179, 12181, 5, 1280, 0, 0, 12180, 12182, 5, 312, 0, 0, 12181, 12180, 1, 0, 0, 0, 12181, 12182, 1, 0, 0, 0, 12182, 12236, 1, 0, 0, 0, 12183, 12185, 5, 605, 0, 0, 12184, 12186, 5, 558, 0, 0, 12185, 12184, 1, 0, 0, 0, 12185, 12186, 1, 0, 0, 0, 12186, 12188, 1, 0, 0, 0, 12187, 12189, 5, 2439, 0, 0, 12188, 12187, 1, 0, 0, 0, 12188, 12189, 1, 0, 0, 0, 12189, 12191, 1, 0, 0, 0, 12190, 12192, 3, 1236, 618, 0, 12191, 12190, 1, 0, 0, 0, 12191, 12192, 1, 0, 0, 0, 12192, 12236, 1, 0, 0, 0, 12193, 12236, 5, 463, 0, 0, 12194, 12196, 5, 128, 0, 0, 12195, 12197, 5, 558, 0, 0, 12196, 12195, 1, 0, 0, 0, 12196, 12197, 1, 0, 0, 0, 12197, 12199, 1, 0, 0, 0, 12198, 12200, 5, 2439, 0, 0, 12199, 12198, 1, 0, 0, 0, 12199, 12200, 1, 0, 0, 0, 12200, 12202, 1, 0, 0, 0, 12201, 12203, 3, 1236, 618, 0, 12202, 12201, 1, 0, 0, 0, 12202, 12203, 1, 0, 0, 0, 12203, 12236, 1, 0, 0, 0, 12204, 12236, 5, 125, 0, 0, 12205, 12207, 5, 1496, 0, 0, 12206, 12208, 5, 2439, 0, 0, 12207, 12206, 1, 0, 0, 0, 12207, 12208, 1, 0, 0, 0, 12208, 12236, 1, 0, 0, 0, 12209, 12211, 5, 196, 0, 0, 12210, 12212, 5, 558, 0, 0, 12211, 12210, 1, 0, 0, 0, 12211, 12212, 1, 0, 0, 0, 12212, 12216, 1, 0, 0, 0, 12213, 12214, 5, 2445, 0, 0, 12214, 12215, 5, 2439, 0, 0, 12215, 12217, 5, 2446, 0, 0, 12216, 12213, 1, 0, 0, 0, 12216, 12217, 1, 0, 0, 0, 12217, 12219, 1, 0, 0, 0, 12218, 12220, 3, 1236, 618, 0, 12219, 12218, 1, 0, 0, 0, 12219, 12220, 1, 0, 0, 0, 12220, 12222, 1, 0, 0, 0, 12221, 12223, 3, 1238, 619, 0, 12222, 12221, 1, 0, 0, 0, 12222, 12223, 1, 0, 0, 0, 12223, 12225, 1, 0, 0, 0, 12224, 12226, 3, 1240, 620, 0, 12225, 12224, 1, 0, 0, 0, 12225, 12226, 1, 0, 0, 0, 12226, 12236, 1, 0, 0, 0, 12227, 12228, 7, 141, 0, 0, 12228, 12231, 5, 2445, 0, 0, 12229, 12230, 5, 2439, 0, 0, 12230, 12232, 5, 2451, 0, 0, 12231, 12229, 1, 0, 0, 0, 12231, 12232, 1, 0, 0, 0, 12232, 12233, 1, 0, 0, 0, 12233, 12234, 5, 2439, 0, 0, 12234, 12236, 5, 2446, 0, 0, 12235, 12147, 1, 0, 0, 0, 12235, 12159, 1, 0, 0, 0, 12235, 12178, 1, 0, 0, 0, 12235, 12179, 1, 0, 0, 0, 12235, 12183, 1, 0, 0, 0, 12235, 12193, 1, 0, 0, 0, 12235, 12194, 1, 0, 0, 0, 12235, 12204, 1, 0, 0, 0, 12235, 12205, 1, 0, 0, 0, 12235, 12209, 1, 0, 0, 0, 12235, 12227, 1, 0, 0, 0, 12236, 1235, 1, 0, 0, 0, 12237, 12238, 5, 501, 0, 0, 12238, 12239, 5, 160, 0, 0, 12239, 12242, 3, 2388, 1194, 0, 12240, 12241, 5, 49, 0, 0, 12241, 12243, 3, 2388, 1194, 0, 12242, 12240, 1, 0, 0, 0, 12242, 12243, 1, 0, 0, 0, 12243, 12263, 1, 0, 0, 0, 12244, 12245, 5, 2092, 0, 0, 12245, 12248, 5, 160, 0, 0, 12246, 12249, 3, 2388, 1194, 0, 12247, 12249, 5, 2301, 0, 0, 12248, 12246, 1, 0, 0, 0, 12248, 12247, 1, 0, 0, 0, 12249, 12260, 1, 0, 0, 0, 12250, 12252, 5, 1271, 0, 0, 12251, 12250, 1, 0, 0, 0, 12251, 12252, 1, 0, 0, 0, 12252, 12253, 1, 0, 0, 0, 12253, 12254, 5, 501, 0, 0, 12254, 12255, 5, 160, 0, 0, 12255, 12258, 3, 2388, 1194, 0, 12256, 12257, 5, 49, 0, 0, 12257, 12259, 3, 2388, 1194, 0, 12258, 12256, 1, 0, 0, 0, 12258, 12259, 1, 0, 0, 0, 12259, 12261, 1, 0, 0, 0, 12260, 12251, 1, 0, 0, 0, 12260, 12261, 1, 0, 0, 0, 12261, 12263, 1, 0, 0, 0, 12262, 12237, 1, 0, 0, 0, 12262, 12244, 1, 0, 0, 0, 12263, 1237, 1, 0, 0, 0, 12264, 12265, 7, 142, 0, 0, 12265, 1239, 1, 0, 0, 0, 12266, 12268, 5, 361, 0, 0, 12267, 12266, 1, 0, 0, 0, 12267, 12268, 1, 0, 0, 0, 12268, 12283, 1, 0, 0, 0, 12269, 12284, 5, 359, 0, 0, 12270, 12277, 5, 2106, 0, 0, 12271, 12273, 5, 2306, 0, 0, 12272, 12274, 5, 871, 0, 0, 12273, 12272, 1, 0, 0, 0, 12273, 12274, 1, 0, 0, 0, 12274, 12275, 1, 0, 0, 0, 12275, 12276, 5, 2110, 0, 0, 12276, 12278, 5, 2361, 0, 0, 12277, 12271, 1, 0, 0, 0, 12277, 12278, 1, 0, 0, 0, 12278, 12279, 1, 0, 0, 0, 12279, 12280, 5, 910, 0, 0, 12280, 12284, 3, 2388, 1194, 0, 12281, 12282, 5, 774, 0, 0, 12282, 12284, 7, 143, 0, 0, 12283, 12269, 1, 0, 0, 0, 12283, 12270, 1, 0, 0, 0, 12283, 12281, 1, 0, 0, 0, 12284, 1241, 1, 0, 0, 0, 12285, 12286, 7, 144, 0, 0, 12286, 12287, 3, 1244, 622, 0, 12287, 1243, 1, 0, 0, 0, 12288, 12294, 6, 622, -1, 0, 12289, 12295, 3, 1750, 875, 0, 12290, 12291, 5, 2445, 0, 0, 12291, 12292, 5, 2439, 0, 0, 12292, 12293, 5, 2459, 0, 0, 12293, 12295, 5, 2446, 0, 0, 12294, 12289, 1, 0, 0, 0, 12294, 12290, 1, 0, 0, 0, 12295, 12296, 1, 0, 0, 0, 12296, 12300, 3, 2088, 1044, 0, 12297, 12301, 3, 2388, 1194, 0, 12298, 12301, 5, 2436, 0, 0, 12299, 12301, 5, 141, 0, 0, 12300, 12297, 1, 0, 0, 0, 12300, 12298, 1, 0, 0, 0, 12300, 12299, 1, 0, 0, 0, 12301, 12307, 1, 0, 0, 0, 12302, 12303, 10, 1, 0, 0, 12303, 12304, 7, 145, 0, 0, 12304, 12306, 3, 1244, 622, 2, 12305, 12302, 1, 0, 0, 0, 12306, 12309, 1, 0, 0, 0, 12307, 12305, 1, 0, 0, 0, 12307, 12308, 1, 0, 0, 0, 12308, 1245, 1, 0, 0, 0, 12309, 12307, 1, 0, 0, 0, 12310, 12311, 5, 862, 0, 0, 12311, 12312, 3, 1264, 632, 0, 12312, 1247, 1, 0, 0, 0, 12313, 12342, 5, 1511, 0, 0, 12314, 12315, 5, 600, 0, 0, 12315, 12343, 5, 2439, 0, 0, 12316, 12317, 5, 2260, 0, 0, 12317, 12343, 5, 2439, 0, 0, 12318, 12319, 5, 403, 0, 0, 12319, 12325, 5, 160, 0, 0, 12320, 12322, 5, 416, 0, 0, 12321, 12320, 1, 0, 0, 0, 12321, 12322, 1, 0, 0, 0, 12322, 12323, 1, 0, 0, 0, 12323, 12326, 5, 1020, 0, 0, 12324, 12326, 3, 2388, 1194, 0, 12325, 12321, 1, 0, 0, 0, 12325, 12324, 1, 0, 0, 0, 12326, 12343, 1, 0, 0, 0, 12327, 12329, 5, 2346, 0, 0, 12328, 12330, 5, 2445, 0, 0, 12329, 12328, 1, 0, 0, 0, 12329, 12330, 1, 0, 0, 0, 12330, 12331, 1, 0, 0, 0, 12331, 12336, 3, 2392, 1196, 0, 12332, 12333, 5, 2451, 0, 0, 12333, 12335, 3, 2392, 1196, 0, 12334, 12332, 1, 0, 0, 0, 12335, 12338, 1, 0, 0, 0, 12336, 12334, 1, 0, 0, 0, 12336, 12337, 1, 0, 0, 0, 12337, 12340, 1, 0, 0, 0, 12338, 12336, 1, 0, 0, 0, 12339, 12341, 5, 2446, 0, 0, 12340, 12339, 1, 0, 0, 0, 12340, 12341, 1, 0, 0, 0, 12341, 12343, 1, 0, 0, 0, 12342, 12314, 1, 0, 0, 0, 12342, 12316, 1, 0, 0, 0, 12342, 12318, 1, 0, 0, 0, 12342, 12327, 1, 0, 0, 0, 12343, 12347, 1, 0, 0, 0, 12344, 12346, 3, 1250, 625, 0, 12345, 12344, 1, 0, 0, 0, 12346, 12349, 1, 0, 0, 0, 12347, 12345, 1, 0, 0, 0, 12347, 12348, 1, 0, 0, 0, 12348, 12356, 1, 0, 0, 0, 12349, 12347, 1, 0, 0, 0, 12350, 12352, 3, 1250, 625, 0, 12351, 12350, 1, 0, 0, 0, 12352, 12353, 1, 0, 0, 0, 12353, 12351, 1, 0, 0, 0, 12353, 12354, 1, 0, 0, 0, 12354, 12356, 1, 0, 0, 0, 12355, 12313, 1, 0, 0, 0, 12355, 12351, 1, 0, 0, 0, 12356, 1249, 1, 0, 0, 0, 12357, 12358, 5, 195, 0, 0, 12358, 12395, 3, 2334, 1167, 0, 12359, 12360, 5, 558, 0, 0, 12360, 12361, 5, 2260, 0, 0, 12361, 12395, 5, 349, 0, 0, 12362, 12363, 5, 1440, 0, 0, 12363, 12395, 3, 1264, 632, 0, 12364, 12365, 5, 349, 0, 0, 12365, 12366, 5, 783, 0, 0, 12366, 12367, 7, 146, 0, 0, 12367, 12395, 5, 508, 0, 0, 12368, 12369, 5, 165, 0, 0, 12369, 12395, 7, 147, 0, 0, 12370, 12371, 5, 1765, 0, 0, 12371, 12372, 5, 1698, 0, 0, 12372, 12373, 5, 67, 0, 0, 12373, 12374, 5, 736, 0, 0, 12374, 12395, 7, 148, 0, 0, 12375, 12376, 5, 865, 0, 0, 12376, 12377, 5, 2298, 0, 0, 12377, 12395, 3, 1244, 622, 0, 12378, 12395, 3, 1252, 626, 0, 12379, 12381, 5, 1505, 0, 0, 12380, 12382, 5, 2469, 0, 0, 12381, 12380, 1, 0, 0, 0, 12381, 12382, 1, 0, 0, 0, 12382, 12383, 1, 0, 0, 0, 12383, 12395, 5, 2439, 0, 0, 12384, 12395, 5, 429, 0, 0, 12385, 12386, 5, 360, 0, 0, 12386, 12395, 5, 2439, 0, 0, 12387, 12388, 5, 1700, 0, 0, 12388, 12395, 5, 2439, 0, 0, 12389, 12390, 5, 782, 0, 0, 12390, 12395, 7, 149, 0, 0, 12391, 12395, 7, 150, 0, 0, 12392, 12393, 5, 451, 0, 0, 12393, 12395, 5, 2439, 0, 0, 12394, 12357, 1, 0, 0, 0, 12394, 12359, 1, 0, 0, 0, 12394, 12362, 1, 0, 0, 0, 12394, 12364, 1, 0, 0, 0, 12394, 12368, 1, 0, 0, 0, 12394, 12370, 1, 0, 0, 0, 12394, 12375, 1, 0, 0, 0, 12394, 12378, 1, 0, 0, 0, 12394, 12379, 1, 0, 0, 0, 12394, 12384, 1, 0, 0, 0, 12394, 12385, 1, 0, 0, 0, 12394, 12387, 1, 0, 0, 0, 12394, 12389, 1, 0, 0, 0, 12394, 12391, 1, 0, 0, 0, 12394, 12392, 1, 0, 0, 0, 12395, 1251, 1, 0, 0, 0, 12396, 12403, 7, 151, 0, 0, 12397, 12399, 7, 152, 0, 0, 12398, 12400, 3, 1264, 632, 0, 12399, 12398, 1, 0, 0, 0, 12399, 12400, 1, 0, 0, 0, 12400, 12401, 1, 0, 0, 0, 12401, 12403, 3, 1452, 726, 0, 12402, 12396, 1, 0, 0, 0, 12402, 12397, 1, 0, 0, 0, 12403, 1253, 1, 0, 0, 0, 12404, 12406, 5, 586, 0, 0, 12405, 12407, 5, 691, 0, 0, 12406, 12405, 1, 0, 0, 0, 12406, 12407, 1, 0, 0, 0, 12407, 12411, 1, 0, 0, 0, 12408, 12409, 5, 328, 0, 0, 12409, 12410, 7, 2, 0, 0, 12410, 12412, 5, 492, 0, 0, 12411, 12408, 1, 0, 0, 0, 12411, 12412, 1, 0, 0, 0, 12412, 12414, 1, 0, 0, 0, 12413, 12415, 3, 1236, 618, 0, 12414, 12413, 1, 0, 0, 0, 12414, 12415, 1, 0, 0, 0, 12415, 12417, 1, 0, 0, 0, 12416, 12418, 3, 1238, 619, 0, 12417, 12416, 1, 0, 0, 0, 12417, 12418, 1, 0, 0, 0, 12418, 12424, 1, 0, 0, 0, 12419, 12420, 5, 38, 0, 0, 12420, 12421, 5, 586, 0, 0, 12421, 12422, 5, 1321, 0, 0, 12422, 12423, 5, 2099, 0, 0, 12423, 12425, 5, 586, 0, 0, 12424, 12419, 1, 0, 0, 0, 12424, 12425, 1, 0, 0, 0, 12425, 12431, 1, 0, 0, 0, 12426, 12427, 5, 962, 0, 0, 12427, 12428, 5, 585, 0, 0, 12428, 12429, 5, 2255, 0, 0, 12429, 12430, 5, 67, 0, 0, 12430, 12432, 5, 1226, 0, 0, 12431, 12426, 1, 0, 0, 0, 12431, 12432, 1, 0, 0, 0, 12432, 12439, 1, 0, 0, 0, 12433, 12434, 5, 1547, 0, 0, 12434, 12435, 5, 1605, 0, 0, 12435, 12436, 5, 2306, 0, 0, 12436, 12437, 5, 38, 0, 0, 12437, 12438, 5, 1226, 0, 0, 12438, 12440, 5, 586, 0, 0, 12439, 12433, 1, 0, 0, 0, 12439, 12440, 1, 0, 0, 0, 12440, 12445, 1, 0, 0, 0, 12441, 12442, 5, 361, 0, 0, 12442, 12443, 7, 153, 0, 0, 12443, 12444, 5, 910, 0, 0, 12444, 12446, 3, 2388, 1194, 0, 12445, 12441, 1, 0, 0, 0, 12445, 12446, 1, 0, 0, 0, 12446, 12455, 1, 0, 0, 0, 12447, 12448, 5, 1225, 0, 0, 12448, 12452, 7, 154, 0, 0, 12449, 12453, 3, 2388, 1194, 0, 12450, 12453, 5, 2436, 0, 0, 12451, 12453, 5, 141, 0, 0, 12452, 12449, 1, 0, 0, 0, 12452, 12450, 1, 0, 0, 0, 12452, 12451, 1, 0, 0, 0, 12453, 12456, 1, 0, 0, 0, 12454, 12456, 5, 1132, 0, 0, 12455, 12447, 1, 0, 0, 0, 12455, 12454, 1, 0, 0, 0, 12455, 12456, 1, 0, 0, 0, 12456, 12458, 1, 0, 0, 0, 12457, 12459, 5, 2445, 0, 0, 12458, 12457, 1, 0, 0, 0, 12458, 12459, 1, 0, 0, 0, 12459, 12461, 1, 0, 0, 0, 12460, 12462, 3, 1228, 614, 0, 12461, 12460, 1, 0, 0, 0, 12461, 12462, 1, 0, 0, 0, 12462, 12464, 1, 0, 0, 0, 12463, 12465, 5, 2446, 0, 0, 12464, 12463, 1, 0, 0, 0, 12464, 12465, 1, 0, 0, 0, 12465, 1255, 1, 0, 0, 0, 12466, 12467, 5, 504, 0, 0, 12467, 12523, 7, 155, 0, 0, 12468, 12523, 5, 1116, 0, 0, 12469, 12471, 5, 880, 0, 0, 12470, 12472, 3, 1264, 632, 0, 12471, 12470, 1, 0, 0, 0, 12471, 12472, 1, 0, 0, 0, 12472, 12473, 1, 0, 0, 0, 12473, 12523, 3, 1452, 726, 0, 12474, 12480, 5, 259, 0, 0, 12475, 12477, 5, 498, 0, 0, 12476, 12478, 7, 156, 0, 0, 12477, 12476, 1, 0, 0, 0, 12477, 12478, 1, 0, 0, 0, 12478, 12481, 1, 0, 0, 0, 12479, 12481, 5, 428, 0, 0, 12480, 12475, 1, 0, 0, 0, 12480, 12479, 1, 0, 0, 0, 12480, 12481, 1, 0, 0, 0, 12481, 12523, 1, 0, 0, 0, 12482, 12483, 5, 655, 0, 0, 12483, 12484, 7, 157, 0, 0, 12484, 12488, 5, 2283, 0, 0, 12485, 12489, 5, 247, 0, 0, 12486, 12489, 5, 826, 0, 0, 12487, 12489, 3, 2388, 1194, 0, 12488, 12485, 1, 0, 0, 0, 12488, 12486, 1, 0, 0, 0, 12488, 12487, 1, 0, 0, 0, 12489, 12523, 1, 0, 0, 0, 12490, 12523, 5, 1115, 0, 0, 12491, 12492, 5, 376, 0, 0, 12492, 12493, 5, 2469, 0, 0, 12493, 12494, 5, 2445, 0, 0, 12494, 12495, 5, 2439, 0, 0, 12495, 12496, 5, 2451, 0, 0, 12496, 12497, 5, 2439, 0, 0, 12497, 12523, 5, 2446, 0, 0, 12498, 12499, 5, 357, 0, 0, 12499, 12500, 5, 776, 0, 0, 12500, 12501, 5, 2081, 0, 0, 12501, 12523, 3, 2330, 1165, 0, 12502, 12503, 5, 2089, 0, 0, 12503, 12523, 3, 2330, 1165, 0, 12504, 12505, 5, 791, 0, 0, 12505, 12506, 5, 2445, 0, 0, 12506, 12507, 3, 2274, 1137, 0, 12507, 12508, 5, 2451, 0, 0, 12508, 12509, 3, 2330, 1165, 0, 12509, 12510, 5, 2451, 0, 0, 12510, 12511, 5, 2439, 0, 0, 12511, 12512, 5, 2446, 0, 0, 12512, 12523, 1, 0, 0, 0, 12513, 12514, 5, 2308, 0, 0, 12514, 12523, 5, 2439, 0, 0, 12515, 12516, 5, 1331, 0, 0, 12516, 12523, 5, 2439, 0, 0, 12517, 12518, 5, 2283, 0, 0, 12518, 12523, 3, 2388, 1194, 0, 12519, 12523, 5, 505, 0, 0, 12520, 12521, 5, 368, 0, 0, 12521, 12523, 3, 2388, 1194, 0, 12522, 12466, 1, 0, 0, 0, 12522, 12468, 1, 0, 0, 0, 12522, 12469, 1, 0, 0, 0, 12522, 12474, 1, 0, 0, 0, 12522, 12482, 1, 0, 0, 0, 12522, 12490, 1, 0, 0, 0, 12522, 12491, 1, 0, 0, 0, 12522, 12498, 1, 0, 0, 0, 12522, 12502, 1, 0, 0, 0, 12522, 12504, 1, 0, 0, 0, 12522, 12513, 1, 0, 0, 0, 12522, 12515, 1, 0, 0, 0, 12522, 12517, 1, 0, 0, 0, 12522, 12519, 1, 0, 0, 0, 12522, 12520, 1, 0, 0, 0, 12523, 1257, 1, 0, 0, 0, 12524, 12529, 3, 2392, 1196, 0, 12525, 12526, 5, 2438, 0, 0, 12526, 12528, 3, 2392, 1196, 0, 12527, 12525, 1, 0, 0, 0, 12528, 12531, 1, 0, 0, 0, 12529, 12527, 1, 0, 0, 0, 12529, 12530, 1, 0, 0, 0, 12530, 12532, 1, 0, 0, 0, 12531, 12529, 1, 0, 0, 0, 12532, 12616, 7, 158, 0, 0, 12533, 12617, 3, 2330, 1165, 0, 12534, 12617, 3, 1260, 630, 0, 12535, 12536, 5, 2470, 0, 0, 12536, 12541, 3, 1260, 630, 0, 12537, 12538, 5, 2451, 0, 0, 12538, 12540, 3, 1260, 630, 0, 12539, 12537, 1, 0, 0, 0, 12540, 12543, 1, 0, 0, 0, 12541, 12539, 1, 0, 0, 0, 12541, 12542, 1, 0, 0, 0, 12542, 12544, 1, 0, 0, 0, 12543, 12541, 1, 0, 0, 0, 12544, 12545, 5, 2471, 0, 0, 12545, 12617, 1, 0, 0, 0, 12546, 12547, 3, 1226, 613, 0, 12547, 12550, 3, 2364, 1182, 0, 12548, 12549, 5, 241, 0, 0, 12549, 12551, 3, 2388, 1194, 0, 12550, 12548, 1, 0, 0, 0, 12550, 12551, 1, 0, 0, 0, 12551, 12557, 1, 0, 0, 0, 12552, 12553, 5, 2451, 0, 0, 12553, 12554, 5, 241, 0, 0, 12554, 12556, 3, 2388, 1194, 0, 12555, 12552, 1, 0, 0, 0, 12556, 12559, 1, 0, 0, 0, 12557, 12555, 1, 0, 0, 0, 12557, 12558, 1, 0, 0, 0, 12558, 12617, 1, 0, 0, 0, 12559, 12557, 1, 0, 0, 0, 12560, 12617, 5, 1652, 0, 0, 12561, 12617, 5, 2095, 0, 0, 12562, 12617, 5, 1501, 0, 0, 12563, 12617, 5, 1278, 0, 0, 12564, 12617, 5, 1339, 0, 0, 12565, 12566, 5, 750, 0, 0, 12566, 12567, 3, 2388, 1194, 0, 12567, 12568, 5, 1314, 0, 0, 12568, 12569, 3, 2388, 1194, 0, 12569, 12617, 1, 0, 0, 0, 12570, 12617, 3, 1264, 632, 0, 12571, 12573, 5, 403, 0, 0, 12572, 12571, 1, 0, 0, 0, 12572, 12573, 1, 0, 0, 0, 12573, 12595, 1, 0, 0, 0, 12574, 12575, 5, 586, 0, 0, 12575, 12576, 5, 2092, 0, 0, 12576, 12577, 5, 160, 0, 0, 12577, 12578, 5, 193, 0, 0, 12578, 12579, 5, 524, 0, 0, 12579, 12580, 5, 160, 0, 0, 12580, 12596, 5, 193, 0, 0, 12581, 12582, 5, 234, 0, 0, 12582, 12587, 5, 787, 0, 0, 12583, 12584, 5, 908, 0, 0, 12584, 12587, 5, 817, 0, 0, 12585, 12587, 5, 858, 0, 0, 12586, 12581, 1, 0, 0, 0, 12586, 12583, 1, 0, 0, 0, 12586, 12585, 1, 0, 0, 0, 12587, 12588, 1, 0, 0, 0, 12588, 12589, 5, 2092, 0, 0, 12589, 12590, 5, 160, 0, 0, 12590, 12596, 5, 193, 0, 0, 12591, 12592, 5, 1226, 0, 0, 12592, 12593, 5, 394, 0, 0, 12593, 12594, 5, 69, 0, 0, 12594, 12596, 5, 193, 0, 0, 12595, 12574, 1, 0, 0, 0, 12595, 12586, 1, 0, 0, 0, 12595, 12591, 1, 0, 0, 0, 12596, 12617, 1, 0, 0, 0, 12597, 12598, 5, 1655, 0, 0, 12598, 12614, 3, 2388, 1194, 0, 12599, 12600, 5, 2306, 0, 0, 12600, 12601, 5, 1656, 0, 0, 12601, 12602, 3, 2388, 1194, 0, 12602, 12603, 5, 2469, 0, 0, 12603, 12611, 3, 2388, 1194, 0, 12604, 12605, 5, 2451, 0, 0, 12605, 12606, 3, 2388, 1194, 0, 12606, 12607, 5, 2469, 0, 0, 12607, 12608, 3, 2388, 1194, 0, 12608, 12610, 1, 0, 0, 0, 12609, 12604, 1, 0, 0, 0, 12610, 12613, 1, 0, 0, 0, 12611, 12609, 1, 0, 0, 0, 12611, 12612, 1, 0, 0, 0, 12612, 12615, 1, 0, 0, 0, 12613, 12611, 1, 0, 0, 0, 12614, 12599, 1, 0, 0, 0, 12614, 12615, 1, 0, 0, 0, 12615, 12617, 1, 0, 0, 0, 12616, 12533, 1, 0, 0, 0, 12616, 12534, 1, 0, 0, 0, 12616, 12535, 1, 0, 0, 0, 12616, 12546, 1, 0, 0, 0, 12616, 12560, 1, 0, 0, 0, 12616, 12561, 1, 0, 0, 0, 12616, 12562, 1, 0, 0, 0, 12616, 12563, 1, 0, 0, 0, 12616, 12564, 1, 0, 0, 0, 12616, 12565, 1, 0, 0, 0, 12616, 12570, 1, 0, 0, 0, 12616, 12572, 1, 0, 0, 0, 12616, 12597, 1, 0, 0, 0, 12617, 12619, 1, 0, 0, 0, 12618, 12620, 3, 1258, 629, 0, 12619, 12618, 1, 0, 0, 0, 12619, 12620, 1, 0, 0, 0, 12620, 1259, 1, 0, 0, 0, 12621, 12622, 5, 2456, 0, 0, 12622, 12627, 3, 1262, 631, 0, 12623, 12624, 5, 2451, 0, 0, 12624, 12626, 3, 1262, 631, 0, 12625, 12623, 1, 0, 0, 0, 12626, 12629, 1, 0, 0, 0, 12627, 12625, 1, 0, 0, 0, 12627, 12628, 1, 0, 0, 0, 12628, 12630, 1, 0, 0, 0, 12629, 12627, 1, 0, 0, 0, 12630, 12631, 5, 2457, 0, 0, 12631, 1261, 1, 0, 0, 0, 12632, 12633, 3, 2392, 1196, 0, 12633, 12634, 5, 2459, 0, 0, 12634, 12660, 1, 0, 0, 0, 12635, 12636, 3, 2392, 1196, 0, 12636, 12637, 5, 2466, 0, 0, 12637, 12638, 5, 2470, 0, 0, 12638, 12643, 3, 2392, 1196, 0, 12639, 12640, 5, 2451, 0, 0, 12640, 12642, 3, 2392, 1196, 0, 12641, 12639, 1, 0, 0, 0, 12642, 12645, 1, 0, 0, 0, 12643, 12641, 1, 0, 0, 0, 12643, 12644, 1, 0, 0, 0, 12644, 12646, 1, 0, 0, 0, 12645, 12643, 1, 0, 0, 0, 12646, 12647, 5, 2471, 0, 0, 12647, 12660, 1, 0, 0, 0, 12648, 12649, 5, 2470, 0, 0, 12649, 12654, 3, 2392, 1196, 0, 12650, 12651, 5, 2451, 0, 0, 12651, 12653, 3, 2392, 1196, 0, 12652, 12650, 1, 0, 0, 0, 12653, 12656, 1, 0, 0, 0, 12654, 12652, 1, 0, 0, 0, 12654, 12655, 1, 0, 0, 0, 12655, 12657, 1, 0, 0, 0, 12656, 12654, 1, 0, 0, 0, 12657, 12658, 5, 2471, 0, 0, 12658, 12660, 1, 0, 0, 0, 12659, 12632, 1, 0, 0, 0, 12659, 12635, 1, 0, 0, 0, 12659, 12648, 1, 0, 0, 0, 12660, 1263, 1, 0, 0, 0, 12661, 12662, 3, 784, 392, 0, 12662, 12663, 5, 2466, 0, 0, 12663, 12664, 5, 2441, 0, 0, 12664, 12677, 1, 0, 0, 0, 12665, 12667, 3, 784, 392, 0, 12666, 12668, 3, 738, 369, 0, 12667, 12666, 1, 0, 0, 0, 12667, 12668, 1, 0, 0, 0, 12668, 12669, 1, 0, 0, 0, 12669, 12670, 5, 2466, 0, 0, 12670, 12672, 1, 0, 0, 0, 12671, 12665, 1, 0, 0, 0, 12671, 12672, 1, 0, 0, 0, 12672, 12673, 1, 0, 0, 0, 12673, 12677, 5, 2441, 0, 0, 12674, 12677, 3, 2388, 1194, 0, 12675, 12677, 3, 2314, 1157, 0, 12676, 12661, 1, 0, 0, 0, 12676, 12671, 1, 0, 0, 0, 12676, 12674, 1, 0, 0, 0, 12676, 12675, 1, 0, 0, 0, 12677, 1265, 1, 0, 0, 0, 12678, 12680, 7, 17, 0, 0, 12679, 12678, 1, 0, 0, 0, 12679, 12680, 1, 0, 0, 0, 12680, 12681, 1, 0, 0, 0, 12681, 12682, 5, 1604, 0, 0, 12682, 12683, 5, 989, 0, 0, 12683, 1267, 1, 0, 0, 0, 12684, 12685, 5, 603, 0, 0, 12685, 12687, 5, 64, 0, 0, 12686, 12688, 3, 2392, 1196, 0, 12687, 12686, 1, 0, 0, 0, 12687, 12688, 1, 0, 0, 0, 12688, 12693, 1, 0, 0, 0, 12689, 12690, 5, 1135, 0, 0, 12690, 12691, 5, 603, 0, 0, 12691, 12693, 5, 64, 0, 0, 12692, 12684, 1, 0, 0, 0, 12692, 12689, 1, 0, 0, 0, 12693, 1269, 1, 0, 0, 0, 12694, 12697, 5, 2439, 0, 0, 12695, 12697, 3, 2390, 1195, 0, 12696, 12694, 1, 0, 0, 0, 12696, 12695, 1, 0, 0, 0, 12697, 1271, 1, 0, 0, 0, 12698, 12699, 5, 21, 0, 0, 12699, 12700, 5, 1787, 0, 0, 12700, 12703, 5, 886, 0, 0, 12701, 12704, 3, 1274, 637, 0, 12702, 12704, 3, 1276, 638, 0, 12703, 12701, 1, 0, 0, 0, 12703, 12702, 1, 0, 0, 0, 12704, 12714, 1, 0, 0, 0, 12705, 12706, 5, 2451, 0, 0, 12706, 12707, 5, 1787, 0, 0, 12707, 12710, 5, 886, 0, 0, 12708, 12711, 3, 1274, 637, 0, 12709, 12711, 3, 1276, 638, 0, 12710, 12708, 1, 0, 0, 0, 12710, 12709, 1, 0, 0, 0, 12711, 12713, 1, 0, 0, 0, 12712, 12705, 1, 0, 0, 0, 12713, 12716, 1, 0, 0, 0, 12714, 12712, 1, 0, 0, 0, 12714, 12715, 1, 0, 0, 0, 12715, 12739, 1, 0, 0, 0, 12716, 12714, 1, 0, 0, 0, 12717, 12718, 5, 467, 0, 0, 12718, 12719, 5, 1787, 0, 0, 12719, 12723, 5, 886, 0, 0, 12720, 12724, 3, 1276, 638, 0, 12721, 12722, 5, 647, 0, 0, 12722, 12724, 3, 1270, 635, 0, 12723, 12720, 1, 0, 0, 0, 12723, 12721, 1, 0, 0, 0, 12724, 12735, 1, 0, 0, 0, 12725, 12726, 5, 2451, 0, 0, 12726, 12727, 5, 1787, 0, 0, 12727, 12731, 5, 886, 0, 0, 12728, 12732, 3, 1276, 638, 0, 12729, 12730, 5, 647, 0, 0, 12730, 12732, 3, 1270, 635, 0, 12731, 12728, 1, 0, 0, 0, 12731, 12729, 1, 0, 0, 0, 12732, 12734, 1, 0, 0, 0, 12733, 12725, 1, 0, 0, 0, 12734, 12737, 1, 0, 0, 0, 12735, 12733, 1, 0, 0, 0, 12735, 12736, 1, 0, 0, 0, 12736, 12739, 1, 0, 0, 0, 12737, 12735, 1, 0, 0, 0, 12738, 12698, 1, 0, 0, 0, 12738, 12717, 1, 0, 0, 0, 12739, 1273, 1, 0, 0, 0, 12740, 12741, 5, 647, 0, 0, 12741, 12742, 3, 1270, 635, 0, 12742, 12743, 5, 2445, 0, 0, 12743, 12746, 3, 2328, 1164, 0, 12744, 12745, 5, 1135, 0, 0, 12745, 12747, 5, 886, 0, 0, 12746, 12744, 1, 0, 0, 0, 12746, 12747, 1, 0, 0, 0, 12747, 12756, 1, 0, 0, 0, 12748, 12749, 5, 2451, 0, 0, 12749, 12752, 3, 2328, 1164, 0, 12750, 12751, 5, 1135, 0, 0, 12751, 12753, 5, 886, 0, 0, 12752, 12750, 1, 0, 0, 0, 12752, 12753, 1, 0, 0, 0, 12753, 12755, 1, 0, 0, 0, 12754, 12748, 1, 0, 0, 0, 12755, 12758, 1, 0, 0, 0, 12756, 12754, 1, 0, 0, 0, 12756, 12757, 1, 0, 0, 0, 12757, 12759, 1, 0, 0, 0, 12758, 12756, 1, 0, 0, 0, 12759, 12761, 5, 2446, 0, 0, 12760, 12762, 5, 44, 0, 0, 12761, 12760, 1, 0, 0, 0, 12761, 12762, 1, 0, 0, 0, 12762, 1275, 1, 0, 0, 0, 12763, 12764, 5, 349, 0, 0, 12764, 12779, 5, 2445, 0, 0, 12765, 12767, 5, 2451, 0, 0, 12766, 12765, 1, 0, 0, 0, 12766, 12767, 1, 0, 0, 0, 12767, 12777, 1, 0, 0, 0, 12768, 12778, 5, 38, 0, 0, 12769, 12770, 5, 1449, 0, 0, 12770, 12778, 5, 814, 0, 0, 12771, 12773, 5, 2181, 0, 0, 12772, 12774, 5, 715, 0, 0, 12773, 12772, 1, 0, 0, 0, 12773, 12774, 1, 0, 0, 0, 12774, 12778, 1, 0, 0, 0, 12775, 12776, 5, 616, 0, 0, 12776, 12778, 5, 814, 0, 0, 12777, 12768, 1, 0, 0, 0, 12777, 12769, 1, 0, 0, 0, 12777, 12771, 1, 0, 0, 0, 12777, 12775, 1, 0, 0, 0, 12778, 12780, 1, 0, 0, 0, 12779, 12766, 1, 0, 0, 0, 12780, 12781, 1, 0, 0, 0, 12781, 12779, 1, 0, 0, 0, 12781, 12782, 1, 0, 0, 0, 12782, 12783, 1, 0, 0, 0, 12783, 12784, 5, 2446, 0, 0, 12784, 12785, 5, 238, 0, 0, 12785, 1277, 1, 0, 0, 0, 12786, 12787, 5, 39, 0, 0, 12787, 12800, 5, 556, 0, 0, 12788, 12795, 5, 2445, 0, 0, 12789, 12790, 5, 1697, 0, 0, 12790, 12796, 3, 1170, 585, 0, 12791, 12792, 5, 350, 0, 0, 12792, 12796, 5, 2441, 0, 0, 12793, 12794, 5, 757, 0, 0, 12794, 12796, 5, 2439, 0, 0, 12795, 12789, 1, 0, 0, 0, 12795, 12791, 1, 0, 0, 0, 12795, 12793, 1, 0, 0, 0, 12796, 12797, 1, 0, 0, 0, 12797, 12795, 1, 0, 0, 0, 12797, 12798, 1, 0, 0, 0, 12798, 12799, 1, 0, 0, 0, 12799, 12801, 5, 2446, 0, 0, 12800, 12788, 1, 0, 0, 0, 12800, 12801, 1, 0, 0, 0, 12801, 1279, 1, 0, 0, 0, 12802, 12803, 5, 375, 0, 0, 12803, 12806, 5, 2202, 0, 0, 12804, 12805, 5, 812, 0, 0, 12805, 12807, 3, 1170, 585, 0, 12806, 12804, 1, 0, 0, 0, 12806, 12807, 1, 0, 0, 0, 12807, 1281, 1, 0, 0, 0, 12808, 12809, 5, 1682, 0, 0, 12809, 12811, 5, 1712, 0, 0, 12810, 12812, 5, 246, 0, 0, 12811, 12810, 1, 0, 0, 0, 12811, 12812, 1, 0, 0, 0, 12812, 12814, 1, 0, 0, 0, 12813, 12815, 5, 179, 0, 0, 12814, 12813, 1, 0, 0, 0, 12814, 12815, 1, 0, 0, 0, 12815, 12817, 1, 0, 0, 0, 12816, 12818, 5, 200, 0, 0, 12817, 12816, 1, 0, 0, 0, 12817, 12818, 1, 0, 0, 0, 12818, 1283, 1, 0, 0, 0, 12819, 12821, 7, 159, 0, 0, 12820, 12819, 1, 0, 0, 0, 12820, 12821, 1, 0, 0, 0, 12821, 12822, 1, 0, 0, 0, 12822, 12823, 5, 1512, 0, 0, 12823, 1285, 1, 0, 0, 0, 12824, 12826, 5, 2209, 0, 0, 12825, 12827, 5, 1202, 0, 0, 12826, 12825, 1, 0, 0, 0, 12826, 12827, 1, 0, 0, 0, 12827, 12828, 1, 0, 0, 0, 12828, 12829, 5, 703, 0, 0, 12829, 12830, 5, 349, 0, 0, 12830, 12831, 1, 0, 0, 0, 12831, 12832, 3, 1652, 826, 0, 12832, 1287, 1, 0, 0, 0, 12833, 12834, 5, 2157, 0, 0, 12834, 12835, 5, 2081, 0, 0, 12835, 12842, 3, 2330, 1165, 0, 12836, 12840, 7, 160, 0, 0, 12837, 12838, 5, 917, 0, 0, 12838, 12839, 5, 2284, 0, 0, 12839, 12841, 5, 886, 0, 0, 12840, 12837, 1, 0, 0, 0, 12840, 12841, 1, 0, 0, 0, 12841, 12843, 1, 0, 0, 0, 12842, 12836, 1, 0, 0, 0, 12842, 12843, 1, 0, 0, 0, 12843, 12852, 1, 0, 0, 0, 12844, 12846, 5, 467, 0, 0, 12845, 12847, 5, 38, 0, 0, 12846, 12845, 1, 0, 0, 0, 12846, 12847, 1, 0, 0, 0, 12847, 12850, 1, 0, 0, 0, 12848, 12850, 5, 1585, 0, 0, 12849, 12844, 1, 0, 0, 0, 12849, 12848, 1, 0, 0, 0, 12850, 12851, 1, 0, 0, 0, 12851, 12853, 5, 1760, 0, 0, 12852, 12849, 1, 0, 0, 0, 12852, 12853, 1, 0, 0, 0, 12853, 12855, 1, 0, 0, 0, 12854, 12856, 5, 179, 0, 0, 12855, 12854, 1, 0, 0, 0, 12855, 12856, 1, 0, 0, 0, 12856, 1289, 1, 0, 0, 0, 12857, 12858, 5, 467, 0, 0, 12858, 12859, 5, 2081, 0, 0, 12859, 12862, 3, 2330, 1165, 0, 12860, 12861, 5, 689, 0, 0, 12861, 12863, 5, 543, 0, 0, 12862, 12860, 1, 0, 0, 0, 12862, 12863, 1, 0, 0, 0, 12863, 12866, 1, 0, 0, 0, 12864, 12865, 5, 69, 0, 0, 12865, 12867, 3, 2330, 1165, 0, 12866, 12864, 1, 0, 0, 0, 12866, 12867, 1, 0, 0, 0, 12867, 12870, 1, 0, 0, 0, 12868, 12869, 5, 179, 0, 0, 12869, 12871, 7, 93, 0, 0, 12870, 12868, 1, 0, 0, 0, 12870, 12871, 1, 0, 0, 0, 12871, 12873, 1, 0, 0, 0, 12872, 12874, 5, 1473, 0, 0, 12873, 12872, 1, 0, 0, 0, 12873, 12874, 1, 0, 0, 0, 12874, 12877, 1, 0, 0, 0, 12875, 12876, 5, 69, 0, 0, 12876, 12878, 3, 2258, 1129, 0, 12877, 12875, 1, 0, 0, 0, 12877, 12878, 1, 0, 0, 0, 12878, 12880, 1, 0, 0, 0, 12879, 12881, 5, 614, 0, 0, 12880, 12879, 1, 0, 0, 0, 12880, 12881, 1, 0, 0, 0, 12881, 1291, 1, 0, 0, 0, 12882, 12883, 5, 467, 0, 0, 12883, 12884, 5, 2078, 0, 0, 12884, 12887, 3, 2392, 1196, 0, 12885, 12886, 5, 689, 0, 0, 12886, 12888, 5, 543, 0, 0, 12887, 12885, 1, 0, 0, 0, 12887, 12888, 1, 0, 0, 0, 12888, 12893, 1, 0, 0, 0, 12889, 12891, 7, 161, 0, 0, 12890, 12892, 5, 1488, 0, 0, 12891, 12890, 1, 0, 0, 0, 12891, 12892, 1, 0, 0, 0, 12892, 12894, 1, 0, 0, 0, 12893, 12889, 1, 0, 0, 0, 12893, 12894, 1, 0, 0, 0, 12894, 12896, 1, 0, 0, 0, 12895, 12897, 3, 1296, 648, 0, 12896, 12895, 1, 0, 0, 0, 12896, 12897, 1, 0, 0, 0, 12897, 1293, 1, 0, 0, 0, 12898, 12899, 5, 467, 0, 0, 12899, 12900, 5, 2078, 0, 0, 12900, 12901, 5, 1669, 0, 0, 12901, 12903, 3, 2392, 1196, 0, 12902, 12904, 3, 1296, 648, 0, 12903, 12902, 1, 0, 0, 0, 12903, 12904, 1, 0, 0, 0, 12904, 1295, 1, 0, 0, 0, 12905, 12906, 5, 703, 0, 0, 12906, 12909, 5, 293, 0, 0, 12907, 12908, 7, 162, 0, 0, 12908, 12910, 5, 351, 0, 0, 12909, 12907, 1, 0, 0, 0, 12909, 12910, 1, 0, 0, 0, 12910, 12913, 1, 0, 0, 0, 12911, 12912, 5, 179, 0, 0, 12912, 12914, 5, 285, 0, 0, 12913, 12911, 1, 0, 0, 0, 12913, 12914, 1, 0, 0, 0, 12914, 1297, 1, 0, 0, 0, 12915, 12916, 5, 467, 0, 0, 12916, 12917, 5, 2284, 0, 0, 12917, 12920, 3, 2330, 1165, 0, 12918, 12919, 5, 689, 0, 0, 12919, 12921, 5, 543, 0, 0, 12920, 12918, 1, 0, 0, 0, 12920, 12921, 1, 0, 0, 0, 12921, 12924, 1, 0, 0, 0, 12922, 12923, 5, 179, 0, 0, 12923, 12925, 5, 284, 0, 0, 12924, 12922, 1, 0, 0, 0, 12924, 12925, 1, 0, 0, 0, 12925, 1299, 1, 0, 0, 0, 12926, 12927, 5, 241, 0, 0, 12927, 12928, 5, 1257, 0, 0, 12928, 12929, 5, 237, 0, 0, 12929, 12930, 3, 2328, 1164, 0, 12930, 12931, 5, 783, 0, 0, 12931, 12932, 3, 2388, 1194, 0, 12932, 1301, 1, 0, 0, 0, 12933, 12934, 7, 17, 0, 0, 12934, 1303, 1, 0, 0, 0, 12935, 12936, 7, 163, 0, 0, 12936, 1305, 1, 0, 0, 0, 12937, 12939, 5, 42, 0, 0, 12938, 12940, 5, 1471, 0, 0, 12939, 12938, 1, 0, 0, 0, 12939, 12940, 1, 0, 0, 0, 12940, 12941, 1, 0, 0, 0, 12941, 12945, 5, 1794, 0, 0, 12942, 12943, 3, 2274, 1137, 0, 12943, 12944, 5, 2438, 0, 0, 12944, 12946, 1, 0, 0, 0, 12945, 12942, 1, 0, 0, 0, 12945, 12946, 1, 0, 0, 0, 12946, 12947, 1, 0, 0, 0, 12947, 12948, 3, 2336, 1168, 0, 12948, 12949, 7, 164, 0, 0, 12949, 1307, 1, 0, 0, 0, 12950, 12953, 5, 319, 0, 0, 12951, 12952, 5, 1305, 0, 0, 12952, 12954, 5, 1560, 0, 0, 12953, 12951, 1, 0, 0, 0, 12953, 12954, 1, 0, 0, 0, 12954, 12955, 1, 0, 0, 0, 12955, 12956, 5, 1471, 0, 0, 12956, 12957, 5, 1794, 0, 0, 12957, 12958, 3, 2336, 1168, 0, 12958, 12962, 5, 618, 0, 0, 12959, 12960, 3, 2274, 1137, 0, 12960, 12961, 5, 2438, 0, 0, 12961, 12963, 1, 0, 0, 0, 12962, 12959, 1, 0, 0, 0, 12962, 12963, 1, 0, 0, 0, 12963, 12964, 1, 0, 0, 0, 12964, 12967, 3, 2338, 1169, 0, 12965, 12966, 5, 2453, 0, 0, 12966, 12968, 3, 2322, 1161, 0, 12967, 12965, 1, 0, 0, 0, 12967, 12968, 1, 0, 0, 0, 12968, 12998, 1, 0, 0, 0, 12969, 12972, 5, 319, 0, 0, 12970, 12971, 5, 1305, 0, 0, 12971, 12973, 5, 1560, 0, 0, 12972, 12970, 1, 0, 0, 0, 12972, 12973, 1, 0, 0, 0, 12973, 12974, 1, 0, 0, 0, 12974, 12978, 5, 1794, 0, 0, 12975, 12976, 3, 2274, 1137, 0, 12976, 12977, 5, 2438, 0, 0, 12977, 12979, 1, 0, 0, 0, 12978, 12975, 1, 0, 0, 0, 12978, 12979, 1, 0, 0, 0, 12979, 12980, 1, 0, 0, 0, 12980, 12981, 3, 2336, 1168, 0, 12981, 12985, 5, 618, 0, 0, 12982, 12983, 3, 2274, 1137, 0, 12983, 12984, 5, 2438, 0, 0, 12984, 12986, 1, 0, 0, 0, 12985, 12982, 1, 0, 0, 0, 12985, 12986, 1, 0, 0, 0, 12986, 12987, 1, 0, 0, 0, 12987, 12995, 3, 2338, 1169, 0, 12988, 12992, 5, 2453, 0, 0, 12989, 12990, 3, 2274, 1137, 0, 12990, 12991, 5, 2438, 0, 0, 12991, 12993, 1, 0, 0, 0, 12992, 12989, 1, 0, 0, 0, 12992, 12993, 1, 0, 0, 0, 12993, 12994, 1, 0, 0, 0, 12994, 12996, 3, 2322, 1161, 0, 12995, 12988, 1, 0, 0, 0, 12995, 12996, 1, 0, 0, 0, 12996, 12998, 1, 0, 0, 0, 12997, 12950, 1, 0, 0, 0, 12997, 12969, 1, 0, 0, 0, 12998, 1309, 1, 0, 0, 0, 12999, 13001, 5, 467, 0, 0, 13000, 13002, 5, 1471, 0, 0, 13001, 13000, 1, 0, 0, 0, 13001, 13002, 1, 0, 0, 0, 13002, 13003, 1, 0, 0, 0, 13003, 13007, 5, 1794, 0, 0, 13004, 13005, 3, 2274, 1137, 0, 13005, 13006, 5, 2438, 0, 0, 13006, 13008, 1, 0, 0, 0, 13007, 13004, 1, 0, 0, 0, 13007, 13008, 1, 0, 0, 0, 13008, 13009, 1, 0, 0, 0, 13009, 13011, 3, 2336, 1168, 0, 13010, 13012, 5, 614, 0, 0, 13011, 13010, 1, 0, 0, 0, 13011, 13012, 1, 0, 0, 0, 13012, 1311, 1, 0, 0, 0, 13013, 13014, 5, 319, 0, 0, 13014, 13017, 5, 1714, 0, 0, 13015, 13016, 5, 2469, 0, 0, 13016, 13018, 3, 1314, 657, 0, 13017, 13015, 1, 0, 0, 0, 13017, 13018, 1, 0, 0, 0, 13018, 13019, 1, 0, 0, 0, 13019, 13030, 5, 626, 0, 0, 13020, 13023, 5, 1389, 0, 0, 13021, 13022, 5, 2469, 0, 0, 13022, 13024, 3, 1316, 658, 0, 13023, 13021, 1, 0, 0, 0, 13023, 13024, 1, 0, 0, 0, 13024, 13027, 1, 0, 0, 0, 13025, 13026, 5, 69, 0, 0, 13026, 13028, 5, 301, 0, 0, 13027, 13025, 1, 0, 0, 0, 13027, 13028, 1, 0, 0, 0, 13028, 13031, 1, 0, 0, 0, 13029, 13031, 5, 940, 0, 0, 13030, 13020, 1, 0, 0, 0, 13030, 13029, 1, 0, 0, 0, 13031, 1313, 1, 0, 0, 0, 13032, 13033, 5, 2441, 0, 0, 13033, 1315, 1, 0, 0, 0, 13034, 13035, 5, 2441, 0, 0, 13035, 1317, 1, 0, 0, 0, 13036, 13037, 5, 241, 0, 0, 13037, 13038, 5, 1257, 0, 0, 13038, 13039, 5, 2081, 0, 0, 13039, 13040, 3, 2330, 1165, 0, 13040, 13041, 5, 783, 0, 0, 13041, 13042, 3, 2388, 1194, 0, 13042, 1319, 1, 0, 0, 0, 13043, 13044, 5, 241, 0, 0, 13044, 13045, 5, 1257, 0, 0, 13045, 13046, 5, 917, 0, 0, 13046, 13047, 5, 2284, 0, 0, 13047, 13048, 3, 2330, 1165, 0, 13048, 13049, 5, 783, 0, 0, 13049, 13050, 3, 2388, 1194, 0, 13050, 1321, 1, 0, 0, 0, 13051, 13052, 5, 42, 0, 0, 13052, 13053, 5, 45, 0, 0, 13053, 13057, 5, 2284, 0, 0, 13054, 13055, 3, 2274, 1137, 0, 13055, 13056, 5, 2438, 0, 0, 13056, 13058, 1, 0, 0, 0, 13057, 13054, 1, 0, 0, 0, 13057, 13058, 1, 0, 0, 0, 13058, 13059, 1, 0, 0, 0, 13059, 13066, 3, 2392, 1196, 0, 13060, 13061, 5, 1557, 0, 0, 13061, 13062, 5, 2139, 0, 0, 13062, 13067, 3, 2392, 1196, 0, 13063, 13067, 5, 249, 0, 0, 13064, 13067, 3, 1324, 662, 0, 13065, 13067, 3, 1330, 665, 0, 13066, 13060, 1, 0, 0, 0, 13066, 13063, 1, 0, 0, 0, 13066, 13064, 1, 0, 0, 0, 13066, 13065, 1, 0, 0, 0, 13067, 1323, 1, 0, 0, 0, 13068, 13069, 5, 21, 0, 0, 13069, 13070, 5, 166, 0, 0, 13070, 13071, 5, 931, 0, 0, 13071, 13072, 5, 647, 0, 0, 13072, 13075, 5, 2445, 0, 0, 13073, 13076, 5, 38, 0, 0, 13074, 13076, 3, 1328, 664, 0, 13075, 13073, 1, 0, 0, 0, 13075, 13074, 1, 0, 0, 0, 13075, 13076, 1, 0, 0, 0, 13076, 13077, 1, 0, 0, 0, 13077, 13078, 5, 2446, 0, 0, 13078, 13079, 5, 846, 0, 0, 13079, 13080, 5, 2445, 0, 0, 13080, 13085, 3, 1326, 663, 0, 13081, 13082, 5, 2451, 0, 0, 13082, 13084, 3, 1326, 663, 0, 13083, 13081, 1, 0, 0, 0, 13084, 13087, 1, 0, 0, 0, 13085, 13083, 1, 0, 0, 0, 13085, 13086, 1, 0, 0, 0, 13086, 13088, 1, 0, 0, 0, 13087, 13085, 1, 0, 0, 0, 13088, 13089, 5, 2446, 0, 0, 13089, 1325, 1, 0, 0, 0, 13090, 13091, 3, 2392, 1196, 0, 13091, 13092, 5, 2438, 0, 0, 13092, 13094, 1, 0, 0, 0, 13093, 13090, 1, 0, 0, 0, 13093, 13094, 1, 0, 0, 0, 13094, 13095, 1, 0, 0, 0, 13095, 13096, 3, 2392, 1196, 0, 13096, 13097, 5, 2438, 0, 0, 13097, 13099, 1, 0, 0, 0, 13098, 13093, 1, 0, 0, 0, 13098, 13099, 1, 0, 0, 0, 13099, 13100, 1, 0, 0, 0, 13100, 13101, 3, 2392, 1196, 0, 13101, 1327, 1, 0, 0, 0, 13102, 13107, 3, 2392, 1196, 0, 13103, 13104, 5, 2451, 0, 0, 13104, 13106, 3, 2392, 1196, 0, 13105, 13103, 1, 0, 0, 0, 13106, 13109, 1, 0, 0, 0, 13107, 13105, 1, 0, 0, 0, 13107, 13108, 1, 0, 0, 0, 13108, 1329, 1, 0, 0, 0, 13109, 13107, 1, 0, 0, 0, 13110, 13111, 5, 467, 0, 0, 13111, 13112, 5, 166, 0, 0, 13112, 13113, 5, 931, 0, 0, 13113, 13114, 5, 647, 0, 0, 13114, 13117, 5, 2445, 0, 0, 13115, 13118, 5, 38, 0, 0, 13116, 13118, 3, 1328, 664, 0, 13117, 13115, 1, 0, 0, 0, 13117, 13116, 1, 0, 0, 0, 13117, 13118, 1, 0, 0, 0, 13118, 13119, 1, 0, 0, 0, 13119, 13120, 5, 2446, 0, 0, 13120, 13121, 5, 846, 0, 0, 13121, 13122, 5, 2445, 0, 0, 13122, 13127, 3, 1326, 663, 0, 13123, 13124, 5, 2451, 0, 0, 13124, 13126, 3, 1326, 663, 0, 13125, 13123, 1, 0, 0, 0, 13126, 13129, 1, 0, 0, 0, 13127, 13125, 1, 0, 0, 0, 13127, 13128, 1, 0, 0, 0, 13128, 13130, 1, 0, 0, 0, 13129, 13127, 1, 0, 0, 0, 13130, 13131, 5, 2446, 0, 0, 13131, 1331, 1, 0, 0, 0, 13132, 13133, 5, 42, 0, 0, 13133, 13134, 5, 83, 0, 0, 13134, 13138, 5, 420, 0, 0, 13135, 13136, 3, 2274, 1137, 0, 13136, 13137, 5, 2438, 0, 0, 13137, 13139, 1, 0, 0, 0, 13138, 13135, 1, 0, 0, 0, 13138, 13139, 1, 0, 0, 0, 13139, 13140, 1, 0, 0, 0, 13140, 13145, 3, 2392, 1196, 0, 13141, 13142, 5, 1557, 0, 0, 13142, 13143, 5, 2139, 0, 0, 13143, 13146, 3, 2392, 1196, 0, 13144, 13146, 5, 249, 0, 0, 13145, 13141, 1, 0, 0, 0, 13145, 13144, 1, 0, 0, 0, 13146, 1333, 1, 0, 0, 0, 13147, 13148, 5, 42, 0, 0, 13148, 13149, 5, 85, 0, 0, 13149, 13150, 5, 1410, 0, 0, 13150, 13152, 3, 2392, 1196, 0, 13151, 13153, 5, 21, 0, 0, 13152, 13151, 1, 0, 0, 0, 13152, 13153, 1, 0, 0, 0, 13153, 13167, 1, 0, 0, 0, 13154, 13156, 3, 406, 203, 0, 13155, 13154, 1, 0, 0, 0, 13155, 13156, 1, 0, 0, 0, 13156, 13158, 1, 0, 0, 0, 13157, 13159, 3, 408, 204, 0, 13158, 13157, 1, 0, 0, 0, 13158, 13159, 1, 0, 0, 0, 13159, 13161, 1, 0, 0, 0, 13160, 13162, 3, 424, 212, 0, 13161, 13160, 1, 0, 0, 0, 13161, 13162, 1, 0, 0, 0, 13162, 13168, 1, 0, 0, 0, 13163, 13164, 5, 1256, 0, 0, 13164, 13166, 5, 2133, 0, 0, 13165, 13163, 1, 0, 0, 0, 13165, 13166, 1, 0, 0, 0, 13166, 13168, 1, 0, 0, 0, 13167, 13155, 1, 0, 0, 0, 13167, 13165, 1, 0, 0, 0, 13168, 13170, 1, 0, 0, 0, 13169, 13171, 5, 467, 0, 0, 13170, 13169, 1, 0, 0, 0, 13170, 13171, 1, 0, 0, 0, 13171, 13185, 1, 0, 0, 0, 13172, 13174, 3, 406, 203, 0, 13173, 13172, 1, 0, 0, 0, 13173, 13174, 1, 0, 0, 0, 13174, 13176, 1, 0, 0, 0, 13175, 13177, 3, 408, 204, 0, 13176, 13175, 1, 0, 0, 0, 13176, 13177, 1, 0, 0, 0, 13177, 13179, 1, 0, 0, 0, 13178, 13180, 3, 424, 212, 0, 13179, 13178, 1, 0, 0, 0, 13179, 13180, 1, 0, 0, 0, 13180, 13186, 1, 0, 0, 0, 13181, 13182, 5, 1256, 0, 0, 13182, 13184, 5, 2133, 0, 0, 13183, 13181, 1, 0, 0, 0, 13183, 13184, 1, 0, 0, 0, 13184, 13186, 1, 0, 0, 0, 13185, 13173, 1, 0, 0, 0, 13185, 13183, 1, 0, 0, 0, 13186, 13195, 1, 0, 0, 0, 13187, 13193, 5, 264, 0, 0, 13188, 13194, 5, 467, 0, 0, 13189, 13190, 5, 2441, 0, 0, 13190, 13191, 5, 528, 0, 0, 13191, 13192, 5, 1388, 0, 0, 13192, 13194, 7, 55, 0, 0, 13193, 13188, 1, 0, 0, 0, 13193, 13189, 1, 0, 0, 0, 13194, 13196, 1, 0, 0, 0, 13195, 13187, 1, 0, 0, 0, 13195, 13196, 1, 0, 0, 0, 13196, 1335, 1, 0, 0, 0, 13197, 13198, 5, 42, 0, 0, 13198, 13199, 5, 220, 0, 0, 13199, 13206, 3, 464, 232, 0, 13200, 13207, 3, 1188, 594, 0, 13201, 13202, 5, 1697, 0, 0, 13202, 13207, 3, 1170, 585, 0, 13203, 13207, 3, 1278, 639, 0, 13204, 13207, 3, 1280, 640, 0, 13205, 13207, 3, 1358, 679, 0, 13206, 13200, 1, 0, 0, 0, 13206, 13201, 1, 0, 0, 0, 13206, 13203, 1, 0, 0, 0, 13206, 13204, 1, 0, 0, 0, 13206, 13205, 1, 0, 0, 0, 13207, 13208, 1, 0, 0, 0, 13208, 13206, 1, 0, 0, 0, 13208, 13209, 1, 0, 0, 0, 13209, 13211, 1, 0, 0, 0, 13210, 13212, 3, 926, 463, 0, 13211, 13210, 1, 0, 0, 0, 13211, 13212, 1, 0, 0, 0, 13212, 1337, 1, 0, 0, 0, 13213, 13214, 5, 467, 0, 0, 13214, 13215, 5, 45, 0, 0, 13215, 13219, 5, 2284, 0, 0, 13216, 13217, 3, 2274, 1137, 0, 13217, 13218, 5, 2438, 0, 0, 13218, 13220, 1, 0, 0, 0, 13219, 13216, 1, 0, 0, 0, 13219, 13220, 1, 0, 0, 0, 13220, 13221, 1, 0, 0, 0, 13221, 13222, 3, 2392, 1196, 0, 13222, 1339, 1, 0, 0, 0, 13223, 13224, 5, 467, 0, 0, 13224, 13225, 5, 83, 0, 0, 13225, 13229, 5, 420, 0, 0, 13226, 13227, 3, 2274, 1137, 0, 13227, 13228, 5, 2438, 0, 0, 13228, 13230, 1, 0, 0, 0, 13229, 13226, 1, 0, 0, 0, 13229, 13230, 1, 0, 0, 0, 13230, 13231, 1, 0, 0, 0, 13231, 13232, 3, 2392, 1196, 0, 13232, 1341, 1, 0, 0, 0, 13233, 13234, 5, 467, 0, 0, 13234, 13235, 5, 85, 0, 0, 13235, 13236, 5, 1410, 0, 0, 13236, 13237, 3, 2392, 1196, 0, 13237, 1343, 1, 0, 0, 0, 13238, 13239, 5, 467, 0, 0, 13239, 13240, 5, 603, 0, 0, 13240, 13241, 5, 64, 0, 0, 13241, 13242, 3, 2392, 1196, 0, 13242, 1345, 1, 0, 0, 0, 13243, 13244, 5, 467, 0, 0, 13244, 13245, 5, 220, 0, 0, 13245, 13252, 3, 464, 232, 0, 13246, 13247, 5, 703, 0, 0, 13247, 13250, 5, 2079, 0, 0, 13248, 13249, 5, 179, 0, 0, 13249, 13251, 5, 285, 0, 0, 13250, 13248, 1, 0, 0, 0, 13250, 13251, 1, 0, 0, 0, 13251, 13253, 1, 0, 0, 0, 13252, 13246, 1, 0, 0, 0, 13252, 13253, 1, 0, 0, 0, 13253, 1347, 1, 0, 0, 0, 13254, 13255, 5, 467, 0, 0, 13255, 13256, 5, 294, 0, 0, 13256, 13257, 3, 2392, 1196, 0, 13257, 1349, 1, 0, 0, 0, 13258, 13259, 5, 467, 0, 0, 13259, 13260, 5, 424, 0, 0, 13260, 13261, 3, 2392, 1196, 0, 13261, 1351, 1, 0, 0, 0, 13262, 13263, 5, 467, 0, 0, 13263, 13264, 5, 439, 0, 0, 13264, 13273, 3, 2392, 1196, 0, 13265, 13267, 5, 614, 0, 0, 13266, 13265, 1, 0, 0, 0, 13266, 13267, 1, 0, 0, 0, 13267, 13268, 1, 0, 0, 0, 13268, 13271, 5, 703, 0, 0, 13269, 13271, 5, 538, 0, 0, 13270, 13266, 1, 0, 0, 0, 13270, 13269, 1, 0, 0, 0, 13271, 13272, 1, 0, 0, 0, 13272, 13274, 5, 293, 0, 0, 13273, 13270, 1, 0, 0, 0, 13273, 13274, 1, 0, 0, 0, 13274, 1353, 1, 0, 0, 0, 13275, 13276, 5, 467, 0, 0, 13276, 13277, 5, 481, 0, 0, 13277, 13279, 3, 2392, 1196, 0, 13278, 13280, 5, 179, 0, 0, 13279, 13278, 1, 0, 0, 0, 13279, 13280, 1, 0, 0, 0, 13280, 1355, 1, 0, 0, 0, 13281, 13282, 5, 2157, 0, 0, 13282, 13283, 5, 220, 0, 0, 13283, 13286, 3, 464, 232, 0, 13284, 13285, 7, 165, 0, 0, 13285, 13287, 5, 1760, 0, 0, 13286, 13284, 1, 0, 0, 0, 13286, 13287, 1, 0, 0, 0, 13287, 1357, 1, 0, 0, 0, 13288, 13289, 7, 107, 0, 0, 13289, 1359, 1, 0, 0, 0, 13290, 13291, 3, 2392, 1196, 0, 13291, 1361, 1, 0, 0, 0, 13292, 13293, 5, 42, 0, 0, 13293, 13309, 3, 1364, 682, 0, 13294, 13310, 3, 1366, 683, 0, 13295, 13310, 3, 1372, 686, 0, 13296, 13310, 3, 1388, 694, 0, 13297, 13310, 3, 1398, 699, 0, 13298, 13310, 3, 1416, 708, 0, 13299, 13310, 3, 1420, 710, 0, 13300, 13310, 3, 1436, 718, 0, 13301, 13310, 3, 1440, 720, 0, 13302, 13310, 3, 1442, 721, 0, 13303, 13310, 3, 1454, 727, 0, 13304, 13310, 3, 1456, 728, 0, 13305, 13310, 3, 1458, 729, 0, 13306, 13310, 3, 1460, 730, 0, 13307, 13310, 3, 1466, 733, 0, 13308, 13310, 3, 1468, 734, 0, 13309, 13294, 1, 0, 0, 0, 13309, 13295, 1, 0, 0, 0, 13309, 13296, 1, 0, 0, 0, 13309, 13297, 1, 0, 0, 0, 13309, 13298, 1, 0, 0, 0, 13309, 13299, 1, 0, 0, 0, 13309, 13300, 1, 0, 0, 0, 13309, 13301, 1, 0, 0, 0, 13309, 13302, 1, 0, 0, 0, 13309, 13303, 1, 0, 0, 0, 13309, 13304, 1, 0, 0, 0, 13309, 13305, 1, 0, 0, 0, 13309, 13306, 1, 0, 0, 0, 13309, 13307, 1, 0, 0, 0, 13309, 13308, 1, 0, 0, 0, 13310, 1363, 1, 0, 0, 0, 13311, 13313, 5, 1407, 0, 0, 13312, 13311, 1, 0, 0, 0, 13312, 13313, 1, 0, 0, 0, 13313, 13314, 1, 0, 0, 0, 13314, 13316, 5, 348, 0, 0, 13315, 13317, 3, 1360, 680, 0, 13316, 13315, 1, 0, 0, 0, 13316, 13317, 1, 0, 0, 0, 13317, 1365, 1, 0, 0, 0, 13318, 13321, 5, 986, 0, 0, 13319, 13320, 7, 166, 0, 0, 13320, 13322, 5, 348, 0, 0, 13321, 13319, 1, 0, 0, 0, 13321, 13322, 1, 0, 0, 0, 13322, 13338, 1, 0, 0, 0, 13323, 13326, 5, 1262, 0, 0, 13324, 13325, 5, 1503, 0, 0, 13325, 13327, 5, 2311, 0, 0, 13326, 13324, 1, 0, 0, 0, 13326, 13327, 1, 0, 0, 0, 13327, 13329, 1, 0, 0, 0, 13328, 13330, 3, 1368, 684, 0, 13329, 13328, 1, 0, 0, 0, 13329, 13330, 1, 0, 0, 0, 13330, 13332, 1, 0, 0, 0, 13331, 13333, 3, 1370, 685, 0, 13332, 13331, 1, 0, 0, 0, 13332, 13333, 1, 0, 0, 0, 13333, 13338, 1, 0, 0, 0, 13334, 13335, 5, 1262, 0, 0, 13335, 13336, 5, 1503, 0, 0, 13336, 13338, 5, 1256, 0, 0, 13337, 13318, 1, 0, 0, 0, 13337, 13323, 1, 0, 0, 0, 13337, 13334, 1, 0, 0, 0, 13338, 1367, 1, 0, 0, 0, 13339, 13340, 7, 61, 0, 0, 13340, 1369, 1, 0, 0, 0, 13341, 13342, 7, 167, 0, 0, 13342, 1371, 1, 0, 0, 0, 13343, 13349, 3, 1376, 688, 0, 13344, 13349, 3, 1384, 692, 0, 13345, 13346, 3, 1374, 687, 0, 13346, 13347, 5, 102, 0, 0, 13347, 13349, 1, 0, 0, 0, 13348, 13343, 1, 0, 0, 0, 13348, 13344, 1, 0, 0, 0, 13348, 13345, 1, 0, 0, 0, 13349, 1373, 1, 0, 0, 0, 13350, 13351, 7, 168, 0, 0, 13351, 1375, 1, 0, 0, 0, 13352, 13354, 5, 1514, 0, 0, 13353, 13355, 5, 95, 0, 0, 13354, 13353, 1, 0, 0, 0, 13354, 13355, 1, 0, 0, 0, 13355, 13358, 1, 0, 0, 0, 13356, 13357, 5, 626, 0, 0, 13357, 13359, 5, 2441, 0, 0, 13358, 13356, 1, 0, 0, 0, 13358, 13359, 1, 0, 0, 0, 13359, 13382, 1, 0, 0, 0, 13360, 13365, 3, 1378, 689, 0, 13361, 13365, 3, 1380, 690, 0, 13362, 13363, 5, 880, 0, 0, 13363, 13365, 5, 2441, 0, 0, 13364, 13360, 1, 0, 0, 0, 13364, 13361, 1, 0, 0, 0, 13364, 13362, 1, 0, 0, 0, 13364, 13365, 1, 0, 0, 0, 13365, 13375, 1, 0, 0, 0, 13366, 13372, 5, 2093, 0, 0, 13367, 13368, 5, 40, 0, 0, 13368, 13369, 5, 2439, 0, 0, 13369, 13372, 5, 304, 0, 0, 13370, 13372, 3, 926, 463, 0, 13371, 13366, 1, 0, 0, 0, 13371, 13367, 1, 0, 0, 0, 13371, 13370, 1, 0, 0, 0, 13372, 13373, 1, 0, 0, 0, 13373, 13371, 1, 0, 0, 0, 13373, 13374, 1, 0, 0, 0, 13374, 13376, 1, 0, 0, 0, 13375, 13371, 1, 0, 0, 0, 13375, 13376, 1, 0, 0, 0, 13376, 13383, 1, 0, 0, 0, 13377, 13379, 5, 295, 0, 0, 13378, 13380, 5, 387, 0, 0, 13379, 13378, 1, 0, 0, 0, 13379, 13380, 1, 0, 0, 0, 13380, 13383, 1, 0, 0, 0, 13381, 13383, 5, 174, 0, 0, 13382, 13364, 1, 0, 0, 0, 13382, 13377, 1, 0, 0, 0, 13382, 13381, 1, 0, 0, 0, 13383, 1377, 1, 0, 0, 0, 13384, 13386, 5, 1732, 0, 0, 13385, 13384, 1, 0, 0, 0, 13385, 13386, 1, 0, 0, 0, 13386, 13387, 1, 0, 0, 0, 13387, 13407, 5, 348, 0, 0, 13388, 13395, 5, 2200, 0, 0, 13389, 13396, 5, 174, 0, 0, 13390, 13391, 5, 2110, 0, 0, 13391, 13396, 5, 2441, 0, 0, 13392, 13393, 5, 190, 0, 0, 13393, 13396, 5, 2439, 0, 0, 13394, 13396, 5, 281, 0, 0, 13395, 13389, 1, 0, 0, 0, 13395, 13390, 1, 0, 0, 0, 13395, 13392, 1, 0, 0, 0, 13395, 13394, 1, 0, 0, 0, 13396, 13404, 1, 0, 0, 0, 13397, 13398, 5, 2244, 0, 0, 13398, 13399, 5, 102, 0, 0, 13399, 13404, 5, 296, 0, 0, 13400, 13401, 5, 1705, 0, 0, 13401, 13402, 5, 2110, 0, 0, 13402, 13404, 5, 2441, 0, 0, 13403, 13388, 1, 0, 0, 0, 13403, 13397, 1, 0, 0, 0, 13403, 13400, 1, 0, 0, 0, 13404, 13405, 1, 0, 0, 0, 13405, 13403, 1, 0, 0, 0, 13405, 13406, 1, 0, 0, 0, 13406, 13408, 1, 0, 0, 0, 13407, 13403, 1, 0, 0, 0, 13407, 13408, 1, 0, 0, 0, 13408, 1379, 1, 0, 0, 0, 13409, 13410, 5, 2078, 0, 0, 13410, 13415, 3, 1648, 824, 0, 13411, 13412, 5, 2451, 0, 0, 13412, 13414, 3, 1648, 824, 0, 13413, 13411, 1, 0, 0, 0, 13414, 13417, 1, 0, 0, 0, 13415, 13413, 1, 0, 0, 0, 13415, 13416, 1, 0, 0, 0, 13416, 13431, 1, 0, 0, 0, 13417, 13415, 1, 0, 0, 0, 13418, 13419, 5, 350, 0, 0, 13419, 13431, 5, 2441, 0, 0, 13420, 13426, 3, 1450, 725, 0, 13421, 13422, 5, 2451, 0, 0, 13422, 13425, 5, 2441, 0, 0, 13423, 13425, 3, 1450, 725, 0, 13424, 13421, 1, 0, 0, 0, 13424, 13423, 1, 0, 0, 0, 13425, 13428, 1, 0, 0, 0, 13426, 13424, 1, 0, 0, 0, 13426, 13427, 1, 0, 0, 0, 13427, 13431, 1, 0, 0, 0, 13428, 13426, 1, 0, 0, 0, 13429, 13431, 3, 1382, 691, 0, 13430, 13409, 1, 0, 0, 0, 13430, 13418, 1, 0, 0, 0, 13430, 13420, 1, 0, 0, 0, 13430, 13429, 1, 0, 0, 0, 13431, 1381, 1, 0, 0, 0, 13432, 13433, 4, 691, 9, 0, 13433, 13454, 5, 1732, 0, 0, 13434, 13435, 5, 2078, 0, 0, 13435, 13440, 3, 1648, 824, 0, 13436, 13437, 5, 2451, 0, 0, 13437, 13439, 3, 1648, 824, 0, 13438, 13436, 1, 0, 0, 0, 13439, 13442, 1, 0, 0, 0, 13440, 13438, 1, 0, 0, 0, 13440, 13441, 1, 0, 0, 0, 13441, 13455, 1, 0, 0, 0, 13442, 13440, 1, 0, 0, 0, 13443, 13444, 5, 350, 0, 0, 13444, 13455, 5, 2441, 0, 0, 13445, 13451, 3, 1450, 725, 0, 13446, 13447, 5, 2451, 0, 0, 13447, 13450, 5, 2441, 0, 0, 13448, 13450, 3, 1450, 725, 0, 13449, 13446, 1, 0, 0, 0, 13449, 13448, 1, 0, 0, 0, 13450, 13453, 1, 0, 0, 0, 13451, 13449, 1, 0, 0, 0, 13451, 13452, 1, 0, 0, 0, 13452, 13455, 1, 0, 0, 0, 13453, 13451, 1, 0, 0, 0, 13454, 13434, 1, 0, 0, 0, 13454, 13443, 1, 0, 0, 0, 13454, 13445, 1, 0, 0, 0, 13455, 13456, 1, 0, 0, 0, 13456, 13459, 5, 2200, 0, 0, 13457, 13458, 5, 281, 0, 0, 13458, 13460, 5, 2306, 0, 0, 13459, 13457, 1, 0, 0, 0, 13459, 13460, 1, 0, 0, 0, 13460, 13461, 1, 0, 0, 0, 13461, 13462, 5, 296, 0, 0, 13462, 1383, 1, 0, 0, 0, 13463, 13498, 5, 1514, 0, 0, 13464, 13465, 5, 902, 0, 0, 13465, 13466, 5, 1732, 0, 0, 13466, 13488, 5, 348, 0, 0, 13467, 13468, 5, 2244, 0, 0, 13468, 13469, 5, 334, 0, 0, 13469, 13483, 5, 880, 0, 0, 13470, 13473, 5, 437, 0, 0, 13471, 13472, 5, 626, 0, 0, 13472, 13474, 5, 1665, 0, 0, 13473, 13471, 1, 0, 0, 0, 13473, 13474, 1, 0, 0, 0, 13474, 13483, 1, 0, 0, 0, 13475, 13483, 5, 1085, 0, 0, 13476, 13477, 5, 2200, 0, 0, 13477, 13478, 5, 190, 0, 0, 13478, 13483, 5, 2439, 0, 0, 13479, 13480, 5, 2200, 0, 0, 13480, 13483, 5, 281, 0, 0, 13481, 13483, 3, 926, 463, 0, 13482, 13467, 1, 0, 0, 0, 13482, 13470, 1, 0, 0, 0, 13482, 13475, 1, 0, 0, 0, 13482, 13476, 1, 0, 0, 0, 13482, 13479, 1, 0, 0, 0, 13482, 13481, 1, 0, 0, 0, 13483, 13484, 1, 0, 0, 0, 13484, 13482, 1, 0, 0, 0, 13484, 13485, 1, 0, 0, 0, 13485, 13489, 1, 0, 0, 0, 13486, 13489, 5, 595, 0, 0, 13487, 13489, 5, 174, 0, 0, 13488, 13482, 1, 0, 0, 0, 13488, 13486, 1, 0, 0, 0, 13488, 13487, 1, 0, 0, 0, 13488, 13489, 1, 0, 0, 0, 13489, 13499, 1, 0, 0, 0, 13490, 13491, 5, 2139, 0, 0, 13491, 13492, 5, 883, 0, 0, 13492, 13496, 5, 1732, 0, 0, 13493, 13497, 3, 1386, 693, 0, 13494, 13495, 5, 812, 0, 0, 13495, 13497, 5, 685, 0, 0, 13496, 13493, 1, 0, 0, 0, 13496, 13494, 1, 0, 0, 0, 13497, 13499, 1, 0, 0, 0, 13498, 13464, 1, 0, 0, 0, 13498, 13490, 1, 0, 0, 0, 13499, 1385, 1, 0, 0, 0, 13500, 13501, 3, 2398, 1199, 0, 13501, 1387, 1, 0, 0, 0, 13502, 13503, 5, 1557, 0, 0, 13503, 13504, 5, 587, 0, 0, 13504, 13509, 3, 1452, 726, 0, 13505, 13506, 5, 2451, 0, 0, 13506, 13508, 3, 1452, 726, 0, 13507, 13505, 1, 0, 0, 0, 13508, 13511, 1, 0, 0, 0, 13509, 13507, 1, 0, 0, 0, 13509, 13510, 1, 0, 0, 0, 13510, 13512, 1, 0, 0, 0, 13511, 13509, 1, 0, 0, 0, 13512, 13513, 5, 2139, 0, 0, 13513, 13514, 3, 1452, 726, 0, 13514, 13520, 1, 0, 0, 0, 13515, 13520, 3, 1390, 695, 0, 13516, 13520, 3, 1392, 696, 0, 13517, 13520, 3, 1394, 697, 0, 13518, 13520, 3, 1396, 698, 0, 13519, 13502, 1, 0, 0, 0, 13519, 13515, 1, 0, 0, 0, 13519, 13516, 1, 0, 0, 0, 13519, 13517, 1, 0, 0, 0, 13519, 13518, 1, 0, 0, 0, 13520, 1389, 1, 0, 0, 0, 13521, 13522, 5, 319, 0, 0, 13522, 13525, 5, 350, 0, 0, 13523, 13526, 3, 1452, 726, 0, 13524, 13526, 3, 1450, 725, 0, 13525, 13523, 1, 0, 0, 0, 13525, 13524, 1, 0, 0, 0, 13526, 13534, 1, 0, 0, 0, 13527, 13530, 5, 2451, 0, 0, 13528, 13531, 3, 1452, 726, 0, 13529, 13531, 3, 1450, 725, 0, 13530, 13528, 1, 0, 0, 0, 13530, 13529, 1, 0, 0, 0, 13531, 13533, 1, 0, 0, 0, 13532, 13527, 1, 0, 0, 0, 13533, 13536, 1, 0, 0, 0, 13534, 13532, 1, 0, 0, 0, 13534, 13535, 1, 0, 0, 0, 13535, 13539, 1, 0, 0, 0, 13536, 13534, 1, 0, 0, 0, 13537, 13538, 5, 69, 0, 0, 13538, 13540, 5, 1019, 0, 0, 13539, 13537, 1, 0, 0, 0, 13539, 13540, 1, 0, 0, 0, 13540, 1391, 1, 0, 0, 0, 13541, 13544, 5, 350, 0, 0, 13542, 13545, 3, 1452, 726, 0, 13543, 13545, 3, 1450, 725, 0, 13544, 13542, 1, 0, 0, 0, 13544, 13543, 1, 0, 0, 0, 13545, 13553, 1, 0, 0, 0, 13546, 13549, 5, 2451, 0, 0, 13547, 13550, 3, 1452, 726, 0, 13548, 13550, 3, 1450, 725, 0, 13549, 13547, 1, 0, 0, 0, 13549, 13548, 1, 0, 0, 0, 13550, 13552, 1, 0, 0, 0, 13551, 13546, 1, 0, 0, 0, 13552, 13555, 1, 0, 0, 0, 13553, 13551, 1, 0, 0, 0, 13553, 13554, 1, 0, 0, 0, 13554, 13567, 1, 0, 0, 0, 13555, 13553, 1, 0, 0, 0, 13556, 13568, 5, 1254, 0, 0, 13557, 13560, 5, 1241, 0, 0, 13558, 13559, 5, 618, 0, 0, 13559, 13561, 5, 467, 0, 0, 13560, 13558, 1, 0, 0, 0, 13560, 13561, 1, 0, 0, 0, 13561, 13568, 1, 0, 0, 0, 13562, 13563, 5, 1565, 0, 0, 13563, 13568, 3, 1170, 585, 0, 13564, 13568, 3, 920, 460, 0, 13565, 13566, 5, 506, 0, 0, 13566, 13568, 5, 102, 0, 0, 13567, 13556, 1, 0, 0, 0, 13567, 13557, 1, 0, 0, 0, 13567, 13562, 1, 0, 0, 0, 13567, 13564, 1, 0, 0, 0, 13567, 13565, 1, 0, 0, 0, 13568, 1393, 1, 0, 0, 0, 13569, 13572, 5, 2087, 0, 0, 13570, 13573, 3, 1452, 726, 0, 13571, 13573, 3, 1450, 725, 0, 13572, 13570, 1, 0, 0, 0, 13572, 13571, 1, 0, 0, 0, 13573, 13581, 1, 0, 0, 0, 13574, 13577, 5, 2451, 0, 0, 13575, 13578, 3, 1452, 726, 0, 13576, 13578, 3, 1450, 725, 0, 13577, 13575, 1, 0, 0, 0, 13577, 13576, 1, 0, 0, 0, 13578, 13580, 1, 0, 0, 0, 13579, 13574, 1, 0, 0, 0, 13580, 13583, 1, 0, 0, 0, 13581, 13579, 1, 0, 0, 0, 13581, 13582, 1, 0, 0, 0, 13582, 13592, 1, 0, 0, 0, 13583, 13581, 1, 0, 0, 0, 13584, 13585, 5, 1565, 0, 0, 13585, 13593, 3, 1170, 585, 0, 13586, 13593, 3, 920, 460, 0, 13587, 13588, 5, 467, 0, 0, 13588, 13589, 5, 703, 0, 0, 13589, 13593, 5, 351, 0, 0, 13590, 13593, 5, 1254, 0, 0, 13591, 13593, 5, 1241, 0, 0, 13592, 13584, 1, 0, 0, 0, 13592, 13586, 1, 0, 0, 0, 13592, 13587, 1, 0, 0, 0, 13592, 13590, 1, 0, 0, 0, 13592, 13591, 1, 0, 0, 0, 13593, 1395, 1, 0, 0, 0, 13594, 13595, 5, 990, 0, 0, 13595, 13598, 5, 350, 0, 0, 13596, 13599, 3, 1452, 726, 0, 13597, 13599, 3, 1450, 725, 0, 13598, 13596, 1, 0, 0, 0, 13598, 13597, 1, 0, 0, 0, 13599, 13607, 1, 0, 0, 0, 13600, 13603, 5, 2451, 0, 0, 13601, 13604, 3, 1452, 726, 0, 13602, 13604, 3, 1450, 725, 0, 13603, 13601, 1, 0, 0, 0, 13603, 13602, 1, 0, 0, 0, 13604, 13606, 1, 0, 0, 0, 13605, 13600, 1, 0, 0, 0, 13606, 13609, 1, 0, 0, 0, 13607, 13605, 1, 0, 0, 0, 13607, 13608, 1, 0, 0, 0, 13608, 13612, 1, 0, 0, 0, 13609, 13607, 1, 0, 0, 0, 13610, 13611, 5, 2139, 0, 0, 13611, 13613, 3, 1452, 726, 0, 13612, 13610, 1, 0, 0, 0, 13612, 13613, 1, 0, 0, 0, 13613, 13615, 1, 0, 0, 0, 13614, 13616, 5, 1585, 0, 0, 13615, 13614, 1, 0, 0, 0, 13615, 13616, 1, 0, 0, 0, 13616, 13618, 1, 0, 0, 0, 13617, 13619, 5, 812, 0, 0, 13618, 13617, 1, 0, 0, 0, 13618, 13619, 1, 0, 0, 0, 13619, 1397, 1, 0, 0, 0, 13620, 13622, 5, 66, 0, 0, 13621, 13623, 5, 907, 0, 0, 13622, 13621, 1, 0, 0, 0, 13622, 13623, 1, 0, 0, 0, 13623, 13626, 1, 0, 0, 0, 13624, 13626, 5, 1056, 0, 0, 13625, 13620, 1, 0, 0, 0, 13625, 13624, 1, 0, 0, 0, 13626, 13677, 1, 0, 0, 0, 13627, 13629, 5, 1135, 0, 0, 13628, 13627, 1, 0, 0, 0, 13628, 13629, 1, 0, 0, 0, 13629, 13630, 1, 0, 0, 0, 13630, 13631, 5, 614, 0, 0, 13631, 13677, 5, 882, 0, 0, 13632, 13633, 5, 1669, 0, 0, 13633, 13634, 5, 1732, 0, 0, 13634, 13635, 5, 1117, 0, 0, 13635, 13640, 5, 618, 0, 0, 13636, 13637, 5, 349, 0, 0, 13637, 13641, 5, 98, 0, 0, 13638, 13639, 5, 865, 0, 0, 13639, 13641, 5, 1383, 0, 0, 13640, 13636, 1, 0, 0, 0, 13640, 13638, 1, 0, 0, 0, 13641, 13677, 1, 0, 0, 0, 13642, 13643, 5, 1557, 0, 0, 13643, 13644, 5, 587, 0, 0, 13644, 13649, 3, 1452, 726, 0, 13645, 13646, 5, 2451, 0, 0, 13646, 13648, 3, 1452, 726, 0, 13647, 13645, 1, 0, 0, 0, 13648, 13651, 1, 0, 0, 0, 13649, 13647, 1, 0, 0, 0, 13649, 13650, 1, 0, 0, 0, 13650, 13652, 1, 0, 0, 0, 13651, 13649, 1, 0, 0, 0, 13652, 13653, 5, 2139, 0, 0, 13653, 13654, 3, 1452, 726, 0, 13654, 13677, 1, 0, 0, 0, 13655, 13657, 5, 212, 0, 0, 13656, 13658, 5, 2171, 0, 0, 13657, 13656, 1, 0, 0, 0, 13657, 13658, 1, 0, 0, 0, 13658, 13659, 1, 0, 0, 0, 13659, 13660, 5, 880, 0, 0, 13660, 13665, 3, 1414, 707, 0, 13661, 13662, 5, 2451, 0, 0, 13662, 13664, 3, 1414, 707, 0, 13663, 13661, 1, 0, 0, 0, 13664, 13667, 1, 0, 0, 0, 13665, 13663, 1, 0, 0, 0, 13665, 13666, 1, 0, 0, 0, 13666, 13670, 1, 0, 0, 0, 13667, 13665, 1, 0, 0, 0, 13668, 13669, 5, 2196, 0, 0, 13669, 13671, 5, 350, 0, 0, 13670, 13668, 1, 0, 0, 0, 13670, 13671, 1, 0, 0, 0, 13671, 13677, 1, 0, 0, 0, 13672, 13677, 3, 1400, 700, 0, 13673, 13677, 3, 1404, 702, 0, 13674, 13677, 3, 1406, 703, 0, 13675, 13677, 3, 1408, 704, 0, 13676, 13625, 1, 0, 0, 0, 13676, 13628, 1, 0, 0, 0, 13676, 13632, 1, 0, 0, 0, 13676, 13642, 1, 0, 0, 0, 13676, 13655, 1, 0, 0, 0, 13676, 13672, 1, 0, 0, 0, 13676, 13673, 1, 0, 0, 0, 13676, 13674, 1, 0, 0, 0, 13676, 13675, 1, 0, 0, 0, 13677, 1399, 1, 0, 0, 0, 13678, 13680, 5, 21, 0, 0, 13679, 13681, 5, 1732, 0, 0, 13680, 13679, 1, 0, 0, 0, 13680, 13681, 1, 0, 0, 0, 13681, 13682, 1, 0, 0, 0, 13682, 13718, 5, 880, 0, 0, 13683, 13684, 5, 757, 0, 0, 13684, 13688, 5, 2441, 0, 0, 13685, 13686, 5, 2100, 0, 0, 13686, 13688, 5, 2439, 0, 0, 13687, 13683, 1, 0, 0, 0, 13687, 13685, 1, 0, 0, 0, 13687, 13688, 1, 0, 0, 0, 13688, 13690, 1, 0, 0, 0, 13689, 13691, 3, 1402, 701, 0, 13690, 13689, 1, 0, 0, 0, 13691, 13692, 1, 0, 0, 0, 13692, 13690, 1, 0, 0, 0, 13692, 13693, 1, 0, 0, 0, 13693, 13719, 1, 0, 0, 0, 13694, 13695, 5, 934, 0, 0, 13695, 13697, 3, 1452, 726, 0, 13696, 13698, 5, 1585, 0, 0, 13697, 13696, 1, 0, 0, 0, 13697, 13698, 1, 0, 0, 0, 13698, 13706, 1, 0, 0, 0, 13699, 13700, 5, 2451, 0, 0, 13700, 13702, 3, 1452, 726, 0, 13701, 13703, 5, 1585, 0, 0, 13702, 13701, 1, 0, 0, 0, 13702, 13703, 1, 0, 0, 0, 13703, 13705, 1, 0, 0, 0, 13704, 13699, 1, 0, 0, 0, 13705, 13708, 1, 0, 0, 0, 13706, 13704, 1, 0, 0, 0, 13706, 13707, 1, 0, 0, 0, 13707, 13709, 1, 0, 0, 0, 13708, 13706, 1, 0, 0, 0, 13709, 13710, 5, 2139, 0, 0, 13710, 13715, 3, 1414, 707, 0, 13711, 13712, 5, 2451, 0, 0, 13712, 13714, 3, 1414, 707, 0, 13713, 13711, 1, 0, 0, 0, 13714, 13717, 1, 0, 0, 0, 13715, 13713, 1, 0, 0, 0, 13715, 13716, 1, 0, 0, 0, 13716, 13719, 1, 0, 0, 0, 13717, 13715, 1, 0, 0, 0, 13718, 13687, 1, 0, 0, 0, 13718, 13694, 1, 0, 0, 0, 13719, 1401, 1, 0, 0, 0, 13720, 13721, 5, 647, 0, 0, 13721, 13723, 5, 2439, 0, 0, 13722, 13720, 1, 0, 0, 0, 13722, 13723, 1, 0, 0, 0, 13723, 13724, 1, 0, 0, 0, 13724, 13725, 3, 918, 459, 0, 13725, 1403, 1, 0, 0, 0, 13726, 13728, 5, 467, 0, 0, 13727, 13729, 5, 1732, 0, 0, 13728, 13727, 1, 0, 0, 0, 13728, 13729, 1, 0, 0, 0, 13729, 13730, 1, 0, 0, 0, 13730, 13748, 5, 880, 0, 0, 13731, 13736, 3, 1414, 707, 0, 13732, 13733, 5, 2451, 0, 0, 13733, 13735, 3, 1414, 707, 0, 13734, 13732, 1, 0, 0, 0, 13735, 13738, 1, 0, 0, 0, 13736, 13734, 1, 0, 0, 0, 13736, 13737, 1, 0, 0, 0, 13737, 13749, 1, 0, 0, 0, 13738, 13736, 1, 0, 0, 0, 13739, 13740, 5, 934, 0, 0, 13740, 13745, 3, 1452, 726, 0, 13741, 13742, 5, 2451, 0, 0, 13742, 13744, 3, 1452, 726, 0, 13743, 13741, 1, 0, 0, 0, 13744, 13747, 1, 0, 0, 0, 13745, 13743, 1, 0, 0, 0, 13745, 13746, 1, 0, 0, 0, 13746, 13749, 1, 0, 0, 0, 13747, 13745, 1, 0, 0, 0, 13748, 13731, 1, 0, 0, 0, 13748, 13739, 1, 0, 0, 0, 13749, 1405, 1, 0, 0, 0, 13750, 13751, 5, 1791, 0, 0, 13751, 13752, 5, 38, 0, 0, 13752, 13753, 5, 881, 0, 0, 13753, 13754, 5, 2139, 0, 0, 13754, 13755, 5, 146, 0, 0, 13755, 13756, 5, 2439, 0, 0, 13756, 1407, 1, 0, 0, 0, 13757, 13758, 3, 1410, 705, 0, 13758, 13759, 5, 1787, 0, 0, 13759, 13763, 5, 886, 0, 0, 13760, 13764, 5, 349, 0, 0, 13761, 13764, 3, 1276, 638, 0, 13762, 13764, 3, 1412, 706, 0, 13763, 13760, 1, 0, 0, 0, 13763, 13761, 1, 0, 0, 0, 13763, 13762, 1, 0, 0, 0, 13764, 1409, 1, 0, 0, 0, 13765, 13766, 7, 9, 0, 0, 13766, 1411, 1, 0, 0, 0, 13767, 13768, 5, 349, 0, 0, 13768, 13769, 5, 618, 0, 0, 13769, 13770, 5, 1458, 0, 0, 13770, 13771, 5, 1561, 0, 0, 13771, 1413, 1, 0, 0, 0, 13772, 13773, 5, 647, 0, 0, 13773, 13787, 5, 2439, 0, 0, 13774, 13775, 5, 2445, 0, 0, 13775, 13780, 3, 1452, 726, 0, 13776, 13777, 5, 2451, 0, 0, 13777, 13779, 3, 1452, 726, 0, 13778, 13776, 1, 0, 0, 0, 13779, 13782, 1, 0, 0, 0, 13780, 13778, 1, 0, 0, 0, 13780, 13781, 1, 0, 0, 0, 13781, 13783, 1, 0, 0, 0, 13782, 13780, 1, 0, 0, 0, 13783, 13784, 5, 2446, 0, 0, 13784, 13787, 1, 0, 0, 0, 13785, 13787, 3, 1452, 726, 0, 13786, 13772, 1, 0, 0, 0, 13786, 13774, 1, 0, 0, 0, 13786, 13785, 1, 0, 0, 0, 13787, 1415, 1, 0, 0, 0, 13788, 13790, 5, 319, 0, 0, 13789, 13791, 7, 169, 0, 0, 13790, 13789, 1, 0, 0, 0, 13790, 13791, 1, 0, 0, 0, 13791, 13792, 1, 0, 0, 0, 13792, 13793, 5, 1732, 0, 0, 13793, 13794, 5, 296, 0, 0, 13794, 13795, 5, 69, 0, 0, 13795, 13797, 3, 1452, 726, 0, 13796, 13798, 5, 1585, 0, 0, 13797, 13796, 1, 0, 0, 0, 13797, 13798, 1, 0, 0, 0, 13798, 13810, 1, 0, 0, 0, 13799, 13800, 5, 102, 0, 0, 13800, 13801, 5, 296, 0, 0, 13801, 13807, 5, 2139, 0, 0, 13802, 13804, 3, 1452, 726, 0, 13803, 13805, 5, 1585, 0, 0, 13804, 13803, 1, 0, 0, 0, 13804, 13805, 1, 0, 0, 0, 13805, 13808, 1, 0, 0, 0, 13806, 13808, 3, 1418, 709, 0, 13807, 13802, 1, 0, 0, 0, 13807, 13806, 1, 0, 0, 0, 13808, 13810, 1, 0, 0, 0, 13809, 13788, 1, 0, 0, 0, 13809, 13799, 1, 0, 0, 0, 13810, 1417, 1, 0, 0, 0, 13811, 13817, 5, 2141, 0, 0, 13812, 13813, 5, 69, 0, 0, 13813, 13815, 3, 1452, 726, 0, 13814, 13816, 5, 1585, 0, 0, 13815, 13814, 1, 0, 0, 0, 13815, 13816, 1, 0, 0, 0, 13816, 13818, 1, 0, 0, 0, 13817, 13812, 1, 0, 0, 0, 13817, 13818, 1, 0, 0, 0, 13818, 13820, 1, 0, 0, 0, 13819, 13821, 7, 61, 0, 0, 13820, 13819, 1, 0, 0, 0, 13820, 13821, 1, 0, 0, 0, 13821, 1419, 1, 0, 0, 0, 13822, 13830, 3, 1422, 711, 0, 13823, 13830, 3, 1424, 712, 0, 13824, 13830, 3, 1426, 713, 0, 13825, 13830, 3, 1428, 714, 0, 13826, 13830, 3, 1430, 715, 0, 13827, 13830, 3, 1432, 716, 0, 13828, 13830, 3, 1434, 717, 0, 13829, 13822, 1, 0, 0, 0, 13829, 13823, 1, 0, 0, 0, 13829, 13824, 1, 0, 0, 0, 13829, 13825, 1, 0, 0, 0, 13829, 13826, 1, 0, 0, 0, 13829, 13827, 1, 0, 0, 0, 13829, 13828, 1, 0, 0, 0, 13830, 13832, 1, 0, 0, 0, 13831, 13833, 3, 926, 463, 0, 13832, 13831, 1, 0, 0, 0, 13832, 13833, 1, 0, 0, 0, 13833, 1421, 1, 0, 0, 0, 13834, 13836, 5, 13, 0, 0, 13835, 13837, 7, 169, 0, 0, 13836, 13835, 1, 0, 0, 0, 13836, 13837, 1, 0, 0, 0, 13837, 13838, 1, 0, 0, 0, 13838, 13839, 5, 1732, 0, 0, 13839, 13842, 5, 348, 0, 0, 13840, 13841, 5, 595, 0, 0, 13841, 13843, 5, 61, 0, 0, 13842, 13840, 1, 0, 0, 0, 13842, 13843, 1, 0, 0, 0, 13843, 1423, 1, 0, 0, 0, 13844, 13845, 5, 1669, 0, 0, 13845, 13846, 5, 1732, 0, 0, 13846, 13847, 5, 348, 0, 0, 13847, 13848, 5, 2139, 0, 0, 13848, 13849, 5, 922, 0, 0, 13849, 13850, 7, 170, 0, 0, 13850, 1425, 1, 0, 0, 0, 13851, 13854, 5, 1536, 0, 0, 13852, 13853, 5, 1305, 0, 0, 13853, 13855, 5, 1560, 0, 0, 13854, 13852, 1, 0, 0, 0, 13854, 13855, 1, 0, 0, 0, 13855, 13856, 1, 0, 0, 0, 13856, 13857, 7, 169, 0, 0, 13857, 13858, 5, 880, 0, 0, 13858, 1427, 1, 0, 0, 0, 13859, 13860, 7, 171, 0, 0, 13860, 13861, 5, 2139, 0, 0, 13861, 13890, 5, 1790, 0, 0, 13862, 13883, 5, 2139, 0, 0, 13863, 13865, 7, 169, 0, 0, 13864, 13863, 1, 0, 0, 0, 13864, 13865, 1, 0, 0, 0, 13865, 13866, 1, 0, 0, 0, 13866, 13872, 5, 1449, 0, 0, 13867, 13869, 5, 1390, 0, 0, 13868, 13867, 1, 0, 0, 0, 13868, 13869, 1, 0, 0, 0, 13869, 13870, 1, 0, 0, 0, 13870, 13872, 5, 1732, 0, 0, 13871, 13864, 1, 0, 0, 0, 13871, 13868, 1, 0, 0, 0, 13872, 13879, 1, 0, 0, 0, 13873, 13875, 7, 2, 0, 0, 13874, 13873, 1, 0, 0, 0, 13874, 13875, 1, 0, 0, 0, 13875, 13876, 1, 0, 0, 0, 13876, 13877, 5, 1665, 0, 0, 13877, 13878, 5, 1683, 0, 0, 13878, 13880, 7, 0, 0, 0, 13879, 13874, 1, 0, 0, 0, 13879, 13880, 1, 0, 0, 0, 13880, 13884, 1, 0, 0, 0, 13881, 13882, 5, 883, 0, 0, 13882, 13884, 5, 1732, 0, 0, 13883, 13871, 1, 0, 0, 0, 13883, 13881, 1, 0, 0, 0, 13884, 13888, 1, 0, 0, 0, 13885, 13886, 5, 883, 0, 0, 13886, 13888, 5, 1732, 0, 0, 13887, 13862, 1, 0, 0, 0, 13887, 13885, 1, 0, 0, 0, 13888, 13891, 1, 0, 0, 0, 13889, 13891, 5, 174, 0, 0, 13890, 13887, 1, 0, 0, 0, 13890, 13889, 1, 0, 0, 0, 13890, 13891, 1, 0, 0, 0, 13891, 1429, 1, 0, 0, 0, 13892, 13893, 5, 1735, 0, 0, 13893, 13894, 5, 883, 0, 0, 13894, 13895, 5, 1732, 0, 0, 13895, 13897, 5, 61, 0, 0, 13896, 13898, 5, 696, 0, 0, 13897, 13896, 1, 0, 0, 0, 13897, 13898, 1, 0, 0, 0, 13898, 13900, 1, 0, 0, 0, 13899, 13901, 5, 1085, 0, 0, 13900, 13899, 1, 0, 0, 0, 13900, 13901, 1, 0, 0, 0, 13901, 13913, 1, 0, 0, 0, 13902, 13903, 5, 1019, 0, 0, 13903, 13904, 5, 1449, 0, 0, 13904, 13914, 3, 2398, 1199, 0, 13905, 13907, 5, 738, 0, 0, 13906, 13908, 5, 2439, 0, 0, 13907, 13906, 1, 0, 0, 0, 13907, 13908, 1, 0, 0, 0, 13908, 13914, 1, 0, 0, 0, 13909, 13910, 5, 1700, 0, 0, 13910, 13911, 5, 568, 0, 0, 13911, 13914, 5, 2145, 0, 0, 13912, 13914, 5, 595, 0, 0, 13913, 13902, 1, 0, 0, 0, 13913, 13905, 1, 0, 0, 0, 13913, 13909, 1, 0, 0, 0, 13913, 13912, 1, 0, 0, 0, 13913, 13914, 1, 0, 0, 0, 13914, 1431, 1, 0, 0, 0, 13915, 13916, 7, 172, 0, 0, 13916, 13917, 5, 883, 0, 0, 13917, 13918, 5, 1732, 0, 0, 13918, 13919, 5, 61, 0, 0, 13919, 1433, 1, 0, 0, 0, 13920, 13921, 5, 298, 0, 0, 13921, 13922, 5, 2139, 0, 0, 13922, 13923, 7, 173, 0, 0, 13923, 13924, 5, 1732, 0, 0, 13924, 1435, 1, 0, 0, 0, 13925, 13926, 5, 387, 0, 0, 13926, 13927, 5, 481, 0, 0, 13927, 13928, 5, 2469, 0, 0, 13928, 13972, 3, 1448, 724, 0, 13929, 13930, 5, 1669, 0, 0, 13930, 13931, 5, 387, 0, 0, 13931, 13932, 7, 99, 0, 0, 13932, 13972, 5, 2078, 0, 0, 13933, 13934, 5, 387, 0, 0, 13934, 13935, 5, 2078, 0, 0, 13935, 13972, 3, 1648, 824, 0, 13936, 13937, 5, 387, 0, 0, 13937, 13938, 5, 2090, 0, 0, 13938, 13941, 5, 2078, 0, 0, 13939, 13942, 3, 1648, 824, 0, 13940, 13942, 3, 870, 435, 0, 13941, 13939, 1, 0, 0, 0, 13941, 13940, 1, 0, 0, 0, 13942, 13972, 1, 0, 0, 0, 13943, 13944, 5, 1557, 0, 0, 13944, 13945, 5, 642, 0, 0, 13945, 13946, 5, 2139, 0, 0, 13946, 13949, 3, 1446, 723, 0, 13947, 13948, 5, 2438, 0, 0, 13948, 13950, 3, 1444, 722, 0, 13949, 13947, 1, 0, 0, 0, 13950, 13951, 1, 0, 0, 0, 13951, 13949, 1, 0, 0, 0, 13951, 13952, 1, 0, 0, 0, 13952, 13972, 1, 0, 0, 0, 13953, 13954, 5, 497, 0, 0, 13954, 13955, 5, 143, 0, 0, 13955, 13956, 5, 190, 0, 0, 13956, 13963, 5, 2143, 0, 0, 13957, 13958, 5, 2244, 0, 0, 13958, 13959, 5, 587, 0, 0, 13959, 13961, 3, 1452, 726, 0, 13960, 13962, 5, 1585, 0, 0, 13961, 13960, 1, 0, 0, 0, 13961, 13962, 1, 0, 0, 0, 13962, 13964, 1, 0, 0, 0, 13963, 13957, 1, 0, 0, 0, 13963, 13964, 1, 0, 0, 0, 13964, 13972, 1, 0, 0, 0, 13965, 13966, 5, 427, 0, 0, 13966, 13967, 5, 143, 0, 0, 13967, 13968, 5, 190, 0, 0, 13968, 13972, 5, 2143, 0, 0, 13969, 13972, 3, 874, 437, 0, 13970, 13972, 3, 1438, 719, 0, 13971, 13925, 1, 0, 0, 0, 13971, 13929, 1, 0, 0, 0, 13971, 13933, 1, 0, 0, 0, 13971, 13936, 1, 0, 0, 0, 13971, 13943, 1, 0, 0, 0, 13971, 13953, 1, 0, 0, 0, 13971, 13965, 1, 0, 0, 0, 13971, 13969, 1, 0, 0, 0, 13971, 13970, 1, 0, 0, 0, 13972, 1437, 1, 0, 0, 0, 13973, 13974, 5, 1669, 0, 0, 13974, 13975, 5, 2111, 0, 0, 13975, 13976, 5, 2469, 0, 0, 13976, 13977, 5, 2441, 0, 0, 13977, 1439, 1, 0, 0, 0, 13978, 13979, 3, 1302, 651, 0, 13979, 13980, 5, 757, 0, 0, 13980, 13981, 5, 2441, 0, 0, 13981, 1441, 1, 0, 0, 0, 13982, 13983, 5, 654, 0, 0, 13983, 13984, 7, 174, 0, 0, 13984, 1443, 1, 0, 0, 0, 13985, 13986, 3, 2392, 1196, 0, 13986, 1445, 1, 0, 0, 0, 13987, 13988, 3, 2392, 1196, 0, 13988, 1447, 1, 0, 0, 0, 13989, 13990, 3, 2398, 1199, 0, 13990, 1449, 1, 0, 0, 0, 13991, 13992, 5, 2439, 0, 0, 13992, 1451, 1, 0, 0, 0, 13993, 13994, 5, 2441, 0, 0, 13994, 1453, 1, 0, 0, 0, 13995, 13996, 5, 1439, 0, 0, 13996, 13997, 5, 961, 0, 0, 13997, 13998, 5, 301, 0, 0, 13998, 14002, 3, 2392, 1196, 0, 13999, 14000, 5, 2306, 0, 0, 14000, 14001, 7, 175, 0, 0, 14001, 14003, 5, 1522, 0, 0, 14002, 13999, 1, 0, 0, 0, 14002, 14003, 1, 0, 0, 0, 14003, 14007, 1, 0, 0, 0, 14004, 14005, 5, 618, 0, 0, 14005, 14006, 5, 348, 0, 0, 14006, 14008, 3, 2392, 1196, 0, 14007, 14004, 1, 0, 0, 0, 14007, 14008, 1, 0, 0, 0, 14008, 1455, 1, 0, 0, 0, 14009, 14010, 5, 467, 0, 0, 14010, 14011, 5, 961, 0, 0, 14011, 14012, 5, 301, 0, 0, 14012, 14013, 3, 2392, 1196, 0, 14013, 1457, 1, 0, 0, 0, 14014, 14015, 7, 176, 0, 0, 14015, 14016, 5, 893, 0, 0, 14016, 14017, 5, 2311, 0, 0, 14017, 14018, 5, 1467, 0, 0, 14018, 1459, 1, 0, 0, 0, 14019, 14022, 3, 1462, 731, 0, 14020, 14022, 3, 1464, 732, 0, 14021, 14019, 1, 0, 0, 0, 14021, 14020, 1, 0, 0, 0, 14022, 1461, 1, 0, 0, 0, 14023, 14024, 5, 1669, 0, 0, 14024, 14025, 5, 834, 0, 0, 14025, 14026, 5, 2469, 0, 0, 14026, 14027, 7, 177, 0, 0, 14027, 1463, 1, 0, 0, 0, 14028, 14029, 5, 1669, 0, 0, 14029, 14030, 5, 835, 0, 0, 14030, 14031, 5, 2469, 0, 0, 14031, 14032, 5, 2441, 0, 0, 14032, 1465, 1, 0, 0, 0, 14033, 14034, 5, 1465, 0, 0, 14034, 14035, 7, 178, 0, 0, 14035, 14036, 5, 391, 0, 0, 14036, 14037, 5, 2469, 0, 0, 14037, 14038, 3, 2392, 1196, 0, 14038, 1467, 1, 0, 0, 0, 14039, 14040, 5, 2209, 0, 0, 14040, 14041, 5, 1793, 0, 0, 14041, 14042, 7, 98, 0, 0, 14042, 1469, 1, 0, 0, 0, 14043, 14045, 5, 42, 0, 0, 14044, 14046, 5, 1677, 0, 0, 14045, 14044, 1, 0, 0, 0, 14045, 14046, 1, 0, 0, 0, 14046, 14048, 1, 0, 0, 0, 14047, 14049, 5, 1471, 0, 0, 14048, 14047, 1, 0, 0, 0, 14048, 14049, 1, 0, 0, 0, 14049, 14050, 1, 0, 0, 0, 14050, 14051, 5, 348, 0, 0, 14051, 14052, 5, 859, 0, 0, 14052, 14063, 3, 2324, 1162, 0, 14053, 14054, 5, 278, 0, 0, 14054, 14055, 5, 2139, 0, 0, 14055, 14056, 3, 2342, 1171, 0, 14056, 14057, 5, 683, 0, 0, 14057, 14058, 5, 160, 0, 0, 14058, 14060, 3, 1472, 736, 0, 14059, 14061, 3, 1474, 737, 0, 14060, 14059, 1, 0, 0, 0, 14060, 14061, 1, 0, 0, 0, 14061, 14064, 1, 0, 0, 0, 14062, 14064, 3, 1474, 737, 0, 14063, 14053, 1, 0, 0, 0, 14063, 14062, 1, 0, 0, 0, 14064, 1471, 1, 0, 0, 0, 14065, 14070, 3, 2392, 1196, 0, 14066, 14070, 3, 2384, 1192, 0, 14067, 14068, 5, 2255, 0, 0, 14068, 14070, 5, 2441, 0, 0, 14069, 14065, 1, 0, 0, 0, 14069, 14066, 1, 0, 0, 0, 14069, 14067, 1, 0, 0, 0, 14070, 1473, 1, 0, 0, 0, 14071, 14072, 5, 86, 0, 0, 14072, 14073, 5, 160, 0, 0, 14073, 14074, 3, 2342, 1171, 0, 14074, 14075, 5, 683, 0, 0, 14075, 14076, 5, 160, 0, 0, 14076, 14077, 3, 1472, 736, 0, 14077, 1475, 1, 0, 0, 0, 14078, 14079, 5, 319, 0, 0, 14079, 14080, 5, 1623, 0, 0, 14080, 14081, 5, 89, 0, 0, 14081, 14087, 3, 2274, 1137, 0, 14082, 14086, 3, 1032, 516, 0, 14083, 14086, 3, 834, 417, 0, 14084, 14086, 3, 762, 381, 0, 14085, 14082, 1, 0, 0, 0, 14085, 14083, 1, 0, 0, 0, 14085, 14084, 1, 0, 0, 0, 14086, 14089, 1, 0, 0, 0, 14087, 14085, 1, 0, 0, 0, 14087, 14088, 1, 0, 0, 0, 14088, 1477, 1, 0, 0, 0, 14089, 14087, 1, 0, 0, 0, 14090, 14091, 5, 319, 0, 0, 14091, 14092, 5, 348, 0, 0, 14092, 14131, 3, 1360, 680, 0, 14093, 14094, 5, 2235, 0, 0, 14094, 14095, 7, 179, 0, 0, 14095, 14096, 5, 683, 0, 0, 14096, 14097, 5, 160, 0, 0, 14097, 14132, 3, 1472, 736, 0, 14098, 14099, 5, 296, 0, 0, 14099, 14132, 5, 1585, 0, 0, 14100, 14101, 7, 180, 0, 0, 14101, 14132, 5, 2439, 0, 0, 14102, 14104, 5, 999, 0, 0, 14103, 14102, 1, 0, 0, 0, 14103, 14104, 1, 0, 0, 0, 14104, 14105, 1, 0, 0, 0, 14105, 14106, 5, 193, 0, 0, 14106, 14107, 5, 1669, 0, 0, 14107, 14132, 3, 2334, 1167, 0, 14108, 14109, 5, 1669, 0, 0, 14109, 14110, 5, 387, 0, 0, 14110, 14111, 7, 99, 0, 0, 14111, 14132, 5, 2078, 0, 0, 14112, 14132, 3, 1480, 740, 0, 14113, 14132, 3, 1484, 742, 0, 14114, 14132, 3, 1438, 719, 0, 14115, 14117, 7, 99, 0, 0, 14116, 14115, 1, 0, 0, 0, 14116, 14117, 1, 0, 0, 0, 14117, 14118, 1, 0, 0, 0, 14118, 14119, 5, 2228, 0, 0, 14119, 14120, 5, 2078, 0, 0, 14120, 14121, 3, 870, 435, 0, 14121, 14122, 5, 350, 0, 0, 14122, 14127, 3, 916, 458, 0, 14123, 14124, 5, 2451, 0, 0, 14124, 14126, 3, 916, 458, 0, 14125, 14123, 1, 0, 0, 0, 14126, 14129, 1, 0, 0, 0, 14127, 14125, 1, 0, 0, 0, 14127, 14128, 1, 0, 0, 0, 14128, 14132, 1, 0, 0, 0, 14129, 14127, 1, 0, 0, 0, 14130, 14132, 3, 1486, 743, 0, 14131, 14093, 1, 0, 0, 0, 14131, 14098, 1, 0, 0, 0, 14131, 14100, 1, 0, 0, 0, 14131, 14103, 1, 0, 0, 0, 14131, 14108, 1, 0, 0, 0, 14131, 14112, 1, 0, 0, 0, 14131, 14113, 1, 0, 0, 0, 14131, 14114, 1, 0, 0, 0, 14131, 14116, 1, 0, 0, 0, 14131, 14130, 1, 0, 0, 0, 14132, 14133, 1, 0, 0, 0, 14133, 14131, 1, 0, 0, 0, 14133, 14134, 1, 0, 0, 0, 14134, 1479, 1, 0, 0, 0, 14135, 14136, 5, 880, 0, 0, 14136, 14141, 3, 1482, 741, 0, 14137, 14138, 5, 2451, 0, 0, 14138, 14140, 3, 1482, 741, 0, 14139, 14137, 1, 0, 0, 0, 14140, 14143, 1, 0, 0, 0, 14141, 14139, 1, 0, 0, 0, 14141, 14142, 1, 0, 0, 0, 14142, 14151, 1, 0, 0, 0, 14143, 14141, 1, 0, 0, 0, 14144, 14145, 7, 181, 0, 0, 14145, 14151, 5, 2439, 0, 0, 14146, 14151, 5, 66, 0, 0, 14147, 14151, 5, 1056, 0, 0, 14148, 14149, 5, 614, 0, 0, 14149, 14151, 5, 882, 0, 0, 14150, 14135, 1, 0, 0, 0, 14150, 14144, 1, 0, 0, 0, 14150, 14146, 1, 0, 0, 0, 14150, 14147, 1, 0, 0, 0, 14150, 14148, 1, 0, 0, 0, 14151, 1481, 1, 0, 0, 0, 14152, 14153, 5, 647, 0, 0, 14153, 14155, 5, 2439, 0, 0, 14154, 14152, 1, 0, 0, 0, 14154, 14155, 1, 0, 0, 0, 14155, 14156, 1, 0, 0, 0, 14156, 14157, 3, 434, 217, 0, 14157, 1483, 1, 0, 0, 0, 14158, 14159, 5, 556, 0, 0, 14159, 14160, 5, 904, 0, 0, 14160, 14177, 5, 871, 0, 0, 14161, 14163, 5, 1798, 0, 0, 14162, 14161, 1, 0, 0, 0, 14162, 14163, 1, 0, 0, 0, 14163, 14164, 1, 0, 0, 0, 14164, 14165, 5, 350, 0, 0, 14165, 14170, 3, 434, 217, 0, 14166, 14167, 5, 2451, 0, 0, 14167, 14169, 3, 434, 217, 0, 14168, 14166, 1, 0, 0, 0, 14169, 14172, 1, 0, 0, 0, 14170, 14168, 1, 0, 0, 0, 14170, 14171, 1, 0, 0, 0, 14171, 14177, 1, 0, 0, 0, 14172, 14170, 1, 0, 0, 0, 14173, 14177, 3, 1496, 748, 0, 14174, 14177, 3, 1498, 749, 0, 14175, 14177, 3, 1500, 750, 0, 14176, 14158, 1, 0, 0, 0, 14176, 14162, 1, 0, 0, 0, 14176, 14173, 1, 0, 0, 0, 14176, 14174, 1, 0, 0, 0, 14176, 14175, 1, 0, 0, 0, 14177, 1485, 1, 0, 0, 0, 14178, 14179, 5, 497, 0, 0, 14179, 14180, 5, 1407, 0, 0, 14180, 14193, 5, 348, 0, 0, 14181, 14183, 5, 1640, 0, 0, 14182, 14184, 3, 1488, 744, 0, 14183, 14182, 1, 0, 0, 0, 14183, 14184, 1, 0, 0, 0, 14184, 14187, 1, 0, 0, 0, 14185, 14186, 5, 1947, 0, 0, 14186, 14188, 3, 1492, 746, 0, 14187, 14185, 1, 0, 0, 0, 14187, 14188, 1, 0, 0, 0, 14188, 14191, 1, 0, 0, 0, 14189, 14190, 5, 1798, 0, 0, 14190, 14192, 3, 1492, 746, 0, 14191, 14189, 1, 0, 0, 0, 14191, 14192, 1, 0, 0, 0, 14192, 14194, 1, 0, 0, 0, 14193, 14181, 1, 0, 0, 0, 14193, 14194, 1, 0, 0, 0, 14194, 14196, 1, 0, 0, 0, 14195, 14197, 3, 1494, 747, 0, 14196, 14195, 1, 0, 0, 0, 14196, 14197, 1, 0, 0, 0, 14197, 1487, 1, 0, 0, 0, 14198, 14199, 5, 588, 0, 0, 14199, 14212, 5, 2469, 0, 0, 14200, 14201, 5, 2445, 0, 0, 14201, 14206, 3, 1490, 745, 0, 14202, 14203, 5, 2451, 0, 0, 14203, 14205, 3, 1490, 745, 0, 14204, 14202, 1, 0, 0, 0, 14205, 14208, 1, 0, 0, 0, 14206, 14204, 1, 0, 0, 0, 14206, 14207, 1, 0, 0, 0, 14207, 14209, 1, 0, 0, 0, 14208, 14206, 1, 0, 0, 0, 14209, 14210, 5, 2446, 0, 0, 14210, 14213, 1, 0, 0, 0, 14211, 14213, 5, 1131, 0, 0, 14212, 14200, 1, 0, 0, 0, 14212, 14211, 1, 0, 0, 0, 14213, 1489, 1, 0, 0, 0, 14214, 14217, 5, 2441, 0, 0, 14215, 14216, 5, 2451, 0, 0, 14216, 14218, 5, 2441, 0, 0, 14217, 14215, 1, 0, 0, 0, 14217, 14218, 1, 0, 0, 0, 14218, 1491, 1, 0, 0, 0, 14219, 14223, 5, 351, 0, 0, 14220, 14221, 5, 1697, 0, 0, 14221, 14224, 3, 1170, 585, 0, 14222, 14224, 3, 920, 460, 0, 14223, 14220, 1, 0, 0, 0, 14223, 14222, 1, 0, 0, 0, 14224, 14225, 1, 0, 0, 0, 14225, 14223, 1, 0, 0, 0, 14225, 14226, 1, 0, 0, 0, 14226, 1493, 1, 0, 0, 0, 14227, 14228, 5, 871, 0, 0, 14228, 14229, 5, 2176, 0, 0, 14229, 14230, 7, 98, 0, 0, 14230, 1495, 1, 0, 0, 0, 14231, 14232, 5, 387, 0, 0, 14232, 14233, 5, 2078, 0, 0, 14233, 14236, 3, 1648, 824, 0, 14234, 14235, 5, 350, 0, 0, 14235, 14237, 3, 916, 458, 0, 14236, 14234, 1, 0, 0, 0, 14236, 14237, 1, 0, 0, 0, 14237, 14239, 1, 0, 0, 0, 14238, 14240, 3, 886, 443, 0, 14239, 14238, 1, 0, 0, 0, 14239, 14240, 1, 0, 0, 0, 14240, 1497, 1, 0, 0, 0, 14241, 14243, 7, 99, 0, 0, 14242, 14241, 1, 0, 0, 0, 14242, 14243, 1, 0, 0, 0, 14243, 14244, 1, 0, 0, 0, 14244, 14252, 5, 387, 0, 0, 14245, 14246, 5, 2090, 0, 0, 14246, 14253, 5, 2078, 0, 0, 14247, 14248, 5, 871, 0, 0, 14248, 14249, 5, 2090, 0, 0, 14249, 14250, 5, 2078, 0, 0, 14250, 14251, 5, 618, 0, 0, 14251, 14253, 7, 182, 0, 0, 14252, 14245, 1, 0, 0, 0, 14252, 14247, 1, 0, 0, 0, 14253, 14254, 1, 0, 0, 0, 14254, 14264, 3, 1648, 824, 0, 14255, 14256, 5, 2087, 0, 0, 14256, 14261, 3, 434, 217, 0, 14257, 14258, 5, 2451, 0, 0, 14258, 14260, 3, 434, 217, 0, 14259, 14257, 1, 0, 0, 0, 14260, 14263, 1, 0, 0, 0, 14261, 14259, 1, 0, 0, 0, 14261, 14262, 1, 0, 0, 0, 14262, 14265, 1, 0, 0, 0, 14263, 14261, 1, 0, 0, 0, 14264, 14255, 1, 0, 0, 0, 14264, 14265, 1, 0, 0, 0, 14265, 14267, 1, 0, 0, 0, 14266, 14268, 3, 886, 443, 0, 14267, 14266, 1, 0, 0, 0, 14267, 14268, 1, 0, 0, 0, 14268, 1499, 1, 0, 0, 0, 14269, 14271, 7, 99, 0, 0, 14270, 14269, 1, 0, 0, 0, 14270, 14271, 1, 0, 0, 0, 14271, 14272, 1, 0, 0, 0, 14272, 14273, 5, 2176, 0, 0, 14273, 14274, 5, 2078, 0, 0, 14274, 14284, 3, 1648, 824, 0, 14275, 14276, 5, 350, 0, 0, 14276, 14281, 3, 434, 217, 0, 14277, 14278, 5, 2451, 0, 0, 14278, 14280, 3, 434, 217, 0, 14279, 14277, 1, 0, 0, 0, 14280, 14283, 1, 0, 0, 0, 14281, 14279, 1, 0, 0, 0, 14281, 14282, 1, 0, 0, 0, 14282, 14285, 1, 0, 0, 0, 14283, 14281, 1, 0, 0, 0, 14284, 14275, 1, 0, 0, 0, 14284, 14285, 1, 0, 0, 0, 14285, 1501, 1, 0, 0, 0, 14286, 14287, 5, 467, 0, 0, 14287, 14290, 5, 348, 0, 0, 14288, 14289, 5, 703, 0, 0, 14289, 14291, 5, 103, 0, 0, 14290, 14288, 1, 0, 0, 0, 14290, 14291, 1, 0, 0, 0, 14291, 14293, 1, 0, 0, 0, 14292, 14294, 5, 1155, 0, 0, 14293, 14292, 1, 0, 0, 0, 14293, 14294, 1, 0, 0, 0, 14294, 1503, 1, 0, 0, 0, 14295, 14297, 5, 319, 0, 0, 14296, 14298, 5, 1677, 0, 0, 14297, 14296, 1, 0, 0, 0, 14297, 14298, 1, 0, 0, 0, 14298, 14300, 1, 0, 0, 0, 14299, 14301, 5, 1471, 0, 0, 14300, 14299, 1, 0, 0, 0, 14300, 14301, 1, 0, 0, 0, 14301, 14302, 1, 0, 0, 0, 14302, 14303, 5, 348, 0, 0, 14303, 14304, 5, 859, 0, 0, 14304, 14320, 3, 2322, 1161, 0, 14305, 14306, 5, 278, 0, 0, 14306, 14315, 5, 2139, 0, 0, 14307, 14316, 5, 339, 0, 0, 14308, 14309, 3, 2342, 1171, 0, 14309, 14310, 5, 683, 0, 0, 14310, 14311, 5, 160, 0, 0, 14311, 14313, 3, 1472, 736, 0, 14312, 14314, 3, 1474, 737, 0, 14313, 14312, 1, 0, 0, 0, 14313, 14314, 1, 0, 0, 0, 14314, 14316, 1, 0, 0, 0, 14315, 14307, 1, 0, 0, 0, 14315, 14308, 1, 0, 0, 0, 14316, 14319, 1, 0, 0, 0, 14317, 14319, 3, 1474, 737, 0, 14318, 14305, 1, 0, 0, 0, 14318, 14317, 1, 0, 0, 0, 14319, 14322, 1, 0, 0, 0, 14320, 14318, 1, 0, 0, 0, 14320, 14321, 1, 0, 0, 0, 14321, 14325, 1, 0, 0, 0, 14322, 14320, 1, 0, 0, 0, 14323, 14324, 5, 2244, 0, 0, 14324, 14326, 5, 2441, 0, 0, 14325, 14323, 1, 0, 0, 0, 14325, 14326, 1, 0, 0, 0, 14326, 1505, 1, 0, 0, 0, 14327, 14329, 5, 467, 0, 0, 14328, 14330, 5, 1471, 0, 0, 14329, 14328, 1, 0, 0, 0, 14329, 14330, 1, 0, 0, 0, 14330, 14331, 1, 0, 0, 0, 14331, 14332, 5, 348, 0, 0, 14332, 14333, 5, 859, 0, 0, 14333, 14334, 3, 2322, 1161, 0, 14334, 1507, 1, 0, 0, 0, 14335, 14336, 5, 42, 0, 0, 14336, 14337, 5, 2078, 0, 0, 14337, 14338, 5, 1669, 0, 0, 14338, 14339, 3, 2392, 1196, 0, 14339, 14340, 3, 1510, 755, 0, 14340, 1509, 1, 0, 0, 0, 14341, 14369, 3, 902, 451, 0, 14342, 14343, 5, 952, 0, 0, 14343, 14344, 5, 556, 0, 0, 14344, 14369, 3, 1170, 585, 0, 14345, 14346, 5, 1565, 0, 0, 14346, 14369, 3, 1170, 585, 0, 14347, 14369, 5, 228, 0, 0, 14348, 14349, 5, 1682, 0, 0, 14349, 14352, 5, 1712, 0, 0, 14350, 14351, 5, 812, 0, 0, 14351, 14353, 3, 1170, 585, 0, 14352, 14350, 1, 0, 0, 0, 14352, 14353, 1, 0, 0, 0, 14353, 14369, 1, 0, 0, 0, 14354, 14355, 5, 1557, 0, 0, 14355, 14356, 5, 2139, 0, 0, 14356, 14369, 3, 2392, 1196, 0, 14357, 14358, 7, 168, 0, 0, 14358, 14369, 5, 102, 0, 0, 14359, 14369, 3, 864, 432, 0, 14360, 14369, 3, 866, 433, 0, 14361, 14369, 3, 868, 434, 0, 14362, 14369, 3, 872, 436, 0, 14363, 14369, 3, 920, 460, 0, 14364, 14369, 3, 874, 437, 0, 14365, 14369, 3, 894, 447, 0, 14366, 14369, 3, 1512, 756, 0, 14367, 14369, 3, 1458, 729, 0, 14368, 14341, 1, 0, 0, 0, 14368, 14342, 1, 0, 0, 0, 14368, 14345, 1, 0, 0, 0, 14368, 14347, 1, 0, 0, 0, 14368, 14348, 1, 0, 0, 0, 14368, 14354, 1, 0, 0, 0, 14368, 14357, 1, 0, 0, 0, 14368, 14359, 1, 0, 0, 0, 14368, 14360, 1, 0, 0, 0, 14368, 14361, 1, 0, 0, 0, 14368, 14362, 1, 0, 0, 0, 14368, 14363, 1, 0, 0, 0, 14368, 14364, 1, 0, 0, 0, 14368, 14365, 1, 0, 0, 0, 14368, 14366, 1, 0, 0, 0, 14368, 14367, 1, 0, 0, 0, 14369, 1511, 1, 0, 0, 0, 14370, 14395, 5, 504, 0, 0, 14371, 14377, 5, 1241, 0, 0, 14372, 14374, 3, 882, 441, 0, 14373, 14372, 1, 0, 0, 0, 14373, 14374, 1, 0, 0, 0, 14374, 14375, 1, 0, 0, 0, 14375, 14378, 5, 503, 0, 0, 14376, 14378, 5, 385, 0, 0, 14377, 14373, 1, 0, 0, 0, 14377, 14376, 1, 0, 0, 0, 14378, 14396, 1, 0, 0, 0, 14379, 14385, 5, 1254, 0, 0, 14380, 14382, 3, 882, 441, 0, 14381, 14380, 1, 0, 0, 0, 14381, 14382, 1, 0, 0, 0, 14382, 14383, 1, 0, 0, 0, 14383, 14386, 7, 183, 0, 0, 14384, 14386, 5, 385, 0, 0, 14385, 14381, 1, 0, 0, 0, 14385, 14384, 1, 0, 0, 0, 14386, 14388, 1, 0, 0, 0, 14387, 14389, 3, 1514, 757, 0, 14388, 14387, 1, 0, 0, 0, 14388, 14389, 1, 0, 0, 0, 14389, 14396, 1, 0, 0, 0, 14390, 14391, 5, 595, 0, 0, 14391, 14393, 7, 184, 0, 0, 14392, 14394, 3, 1514, 757, 0, 14393, 14392, 1, 0, 0, 0, 14393, 14394, 1, 0, 0, 0, 14394, 14396, 1, 0, 0, 0, 14395, 14371, 1, 0, 0, 0, 14395, 14379, 1, 0, 0, 0, 14395, 14390, 1, 0, 0, 0, 14396, 1513, 1, 0, 0, 0, 14397, 14398, 5, 588, 0, 0, 14398, 14399, 5, 2469, 0, 0, 14399, 14400, 5, 2445, 0, 0, 14400, 14401, 5, 2441, 0, 0, 14401, 14402, 5, 2451, 0, 0, 14402, 14409, 5, 2441, 0, 0, 14403, 14404, 5, 2451, 0, 0, 14404, 14405, 5, 2441, 0, 0, 14405, 14406, 5, 2451, 0, 0, 14406, 14408, 5, 2441, 0, 0, 14407, 14403, 1, 0, 0, 0, 14408, 14411, 1, 0, 0, 0, 14409, 14407, 1, 0, 0, 0, 14409, 14410, 1, 0, 0, 0, 14410, 14412, 1, 0, 0, 0, 14411, 14409, 1, 0, 0, 0, 14412, 14414, 5, 2446, 0, 0, 14413, 14415, 5, 812, 0, 0, 14414, 14413, 1, 0, 0, 0, 14414, 14415, 1, 0, 0, 0, 14415, 1515, 1, 0, 0, 0, 14416, 14417, 5, 42, 0, 0, 14417, 14418, 5, 1591, 0, 0, 14418, 14419, 3, 2296, 1148, 0, 14419, 14421, 3, 1518, 759, 0, 14420, 14422, 3, 764, 382, 0, 14421, 14420, 1, 0, 0, 0, 14421, 14422, 1, 0, 0, 0, 14422, 1517, 1, 0, 0, 0, 14423, 14424, 5, 1202, 0, 0, 14424, 14443, 5, 683, 0, 0, 14425, 14440, 5, 683, 0, 0, 14426, 14427, 5, 160, 0, 0, 14427, 14441, 3, 2390, 1195, 0, 14428, 14429, 5, 2244, 0, 0, 14429, 14432, 3, 2390, 1195, 0, 14430, 14431, 5, 2438, 0, 0, 14431, 14433, 3, 2392, 1196, 0, 14432, 14430, 1, 0, 0, 0, 14432, 14433, 1, 0, 0, 0, 14433, 14441, 1, 0, 0, 0, 14434, 14441, 5, 559, 0, 0, 14435, 14438, 5, 641, 0, 0, 14436, 14437, 5, 69, 0, 0, 14437, 14439, 5, 2441, 0, 0, 14438, 14436, 1, 0, 0, 0, 14438, 14439, 1, 0, 0, 0, 14439, 14441, 1, 0, 0, 0, 14440, 14426, 1, 0, 0, 0, 14440, 14428, 1, 0, 0, 0, 14440, 14434, 1, 0, 0, 0, 14440, 14435, 1, 0, 0, 0, 14441, 14443, 1, 0, 0, 0, 14442, 14423, 1, 0, 0, 0, 14442, 14425, 1, 0, 0, 0, 14443, 1519, 1, 0, 0, 0, 14444, 14445, 5, 42, 0, 0, 14445, 14446, 5, 2081, 0, 0, 14446, 14450, 3, 2330, 1165, 0, 14447, 14449, 3, 1522, 761, 0, 14448, 14447, 1, 0, 0, 0, 14449, 14452, 1, 0, 0, 0, 14450, 14448, 1, 0, 0, 0, 14450, 14451, 1, 0, 0, 0, 14451, 14459, 1, 0, 0, 0, 14452, 14450, 1, 0, 0, 0, 14453, 14460, 1, 0, 0, 0, 14454, 14460, 3, 1524, 762, 0, 14455, 14460, 3, 1694, 847, 0, 14456, 14460, 3, 1596, 798, 0, 14457, 14460, 3, 1526, 763, 0, 14458, 14460, 3, 1586, 793, 0, 14459, 14453, 1, 0, 0, 0, 14459, 14454, 1, 0, 0, 0, 14459, 14455, 1, 0, 0, 0, 14459, 14456, 1, 0, 0, 0, 14459, 14457, 1, 0, 0, 0, 14459, 14458, 1, 0, 0, 0, 14460, 14473, 1, 0, 0, 0, 14461, 14470, 3, 1576, 788, 0, 14462, 14467, 3, 1302, 651, 0, 14463, 14464, 5, 2081, 0, 0, 14464, 14468, 5, 879, 0, 0, 14465, 14466, 5, 38, 0, 0, 14466, 14468, 5, 2154, 0, 0, 14467, 14463, 1, 0, 0, 0, 14467, 14465, 1, 0, 0, 0, 14468, 14470, 1, 0, 0, 0, 14469, 14461, 1, 0, 0, 0, 14469, 14462, 1, 0, 0, 0, 14470, 14471, 1, 0, 0, 0, 14471, 14469, 1, 0, 0, 0, 14471, 14472, 1, 0, 0, 0, 14472, 14474, 1, 0, 0, 0, 14473, 14469, 1, 0, 0, 0, 14473, 14474, 1, 0, 0, 0, 14474, 1521, 1, 0, 0, 0, 14475, 14477, 5, 1135, 0, 0, 14476, 14475, 1, 0, 0, 0, 14476, 14477, 1, 0, 0, 0, 14477, 14478, 1, 0, 0, 0, 14478, 14479, 5, 2406, 0, 0, 14479, 14480, 5, 618, 0, 0, 14480, 14481, 7, 185, 0, 0, 14481, 1523, 1, 0, 0, 0, 14482, 14495, 3, 1554, 777, 0, 14483, 14484, 5, 1557, 0, 0, 14484, 14485, 5, 2139, 0, 0, 14485, 14495, 3, 2330, 1165, 0, 14486, 14495, 3, 1282, 641, 0, 14487, 14488, 5, 1503, 0, 0, 14488, 14495, 5, 1256, 0, 0, 14489, 14490, 5, 1503, 0, 0, 14490, 14495, 5, 2311, 0, 0, 14491, 14492, 5, 1548, 0, 0, 14492, 14495, 5, 2441, 0, 0, 14493, 14495, 3, 2234, 1117, 0, 14494, 14482, 1, 0, 0, 0, 14494, 14483, 1, 0, 0, 0, 14494, 14486, 1, 0, 0, 0, 14494, 14487, 1, 0, 0, 0, 14494, 14489, 1, 0, 0, 0, 14494, 14491, 1, 0, 0, 0, 14494, 14493, 1, 0, 0, 0, 14495, 1525, 1, 0, 0, 0, 14496, 14507, 3, 1528, 764, 0, 14497, 14507, 3, 1530, 765, 0, 14498, 14507, 3, 1532, 766, 0, 14499, 14507, 3, 1534, 767, 0, 14500, 14507, 3, 1536, 768, 0, 14501, 14507, 3, 1538, 769, 0, 14502, 14507, 3, 1540, 770, 0, 14503, 14507, 3, 1542, 771, 0, 14504, 14507, 3, 1544, 772, 0, 14505, 14507, 3, 1546, 773, 0, 14506, 14496, 1, 0, 0, 0, 14506, 14497, 1, 0, 0, 0, 14506, 14498, 1, 0, 0, 0, 14506, 14499, 1, 0, 0, 0, 14506, 14500, 1, 0, 0, 0, 14506, 14501, 1, 0, 0, 0, 14506, 14502, 1, 0, 0, 0, 14506, 14503, 1, 0, 0, 0, 14506, 14504, 1, 0, 0, 0, 14506, 14505, 1, 0, 0, 0, 14507, 1527, 1, 0, 0, 0, 14508, 14525, 5, 21, 0, 0, 14509, 14526, 3, 1134, 567, 0, 14510, 14526, 3, 1136, 568, 0, 14511, 14513, 5, 1346, 0, 0, 14512, 14514, 3, 1688, 844, 0, 14513, 14512, 1, 0, 0, 0, 14513, 14514, 1, 0, 0, 0, 14514, 14517, 1, 0, 0, 0, 14515, 14516, 5, 2078, 0, 0, 14516, 14518, 3, 1648, 824, 0, 14517, 14515, 1, 0, 0, 0, 14517, 14518, 1, 0, 0, 0, 14518, 14520, 1, 0, 0, 0, 14519, 14521, 3, 1592, 796, 0, 14520, 14519, 1, 0, 0, 0, 14520, 14521, 1, 0, 0, 0, 14521, 14523, 1, 0, 0, 0, 14522, 14524, 5, 2201, 0, 0, 14523, 14522, 1, 0, 0, 0, 14523, 14524, 1, 0, 0, 0, 14524, 14526, 1, 0, 0, 0, 14525, 14509, 1, 0, 0, 0, 14525, 14510, 1, 0, 0, 0, 14525, 14511, 1, 0, 0, 0, 14526, 1529, 1, 0, 0, 0, 14527, 14530, 5, 467, 0, 0, 14528, 14531, 3, 1550, 775, 0, 14529, 14531, 3, 1552, 776, 0, 14530, 14528, 1, 0, 0, 0, 14530, 14529, 1, 0, 0, 0, 14531, 14536, 1, 0, 0, 0, 14532, 14534, 3, 1564, 782, 0, 14533, 14535, 3, 926, 463, 0, 14534, 14533, 1, 0, 0, 0, 14534, 14535, 1, 0, 0, 0, 14535, 14537, 1, 0, 0, 0, 14536, 14532, 1, 0, 0, 0, 14536, 14537, 1, 0, 0, 0, 14537, 1531, 1, 0, 0, 0, 14538, 14539, 5, 944, 0, 0, 14539, 14540, 5, 1346, 0, 0, 14540, 14541, 3, 1688, 844, 0, 14541, 14542, 5, 49, 0, 0, 14542, 14543, 3, 1688, 844, 0, 14543, 14544, 5, 777, 0, 0, 14544, 14545, 5, 1346, 0, 0, 14545, 14546, 3, 1688, 844, 0, 14546, 1533, 1, 0, 0, 0, 14547, 14570, 5, 978, 0, 0, 14548, 14549, 7, 186, 0, 0, 14549, 14552, 3, 1688, 844, 0, 14550, 14551, 7, 9, 0, 0, 14551, 14553, 3, 1162, 581, 0, 14552, 14550, 1, 0, 0, 0, 14552, 14553, 1, 0, 0, 0, 14553, 14556, 1, 0, 0, 0, 14554, 14555, 5, 21, 0, 0, 14555, 14557, 3, 1150, 575, 0, 14556, 14554, 1, 0, 0, 0, 14556, 14557, 1, 0, 0, 0, 14557, 14564, 1, 0, 0, 0, 14558, 14560, 5, 1509, 0, 0, 14559, 14558, 1, 0, 0, 0, 14559, 14560, 1, 0, 0, 0, 14560, 14561, 1, 0, 0, 0, 14561, 14562, 5, 2201, 0, 0, 14562, 14563, 5, 871, 0, 0, 14563, 14565, 5, 712, 0, 0, 14564, 14559, 1, 0, 0, 0, 14564, 14565, 1, 0, 0, 0, 14565, 14567, 1, 0, 0, 0, 14566, 14568, 3, 1282, 641, 0, 14567, 14566, 1, 0, 0, 0, 14567, 14568, 1, 0, 0, 0, 14568, 14571, 1, 0, 0, 0, 14569, 14571, 3, 1110, 555, 0, 14570, 14548, 1, 0, 0, 0, 14570, 14569, 1, 0, 0, 0, 14571, 1535, 1, 0, 0, 0, 14572, 14573, 5, 1715, 0, 0, 14573, 14619, 3, 1550, 775, 0, 14574, 14575, 5, 82, 0, 0, 14575, 14576, 5, 2445, 0, 0, 14576, 14581, 3, 2176, 1088, 0, 14577, 14578, 5, 2451, 0, 0, 14578, 14580, 3, 2176, 1088, 0, 14579, 14577, 1, 0, 0, 0, 14580, 14583, 1, 0, 0, 0, 14581, 14579, 1, 0, 0, 0, 14581, 14582, 1, 0, 0, 0, 14582, 14584, 1, 0, 0, 0, 14583, 14581, 1, 0, 0, 0, 14584, 14585, 5, 2446, 0, 0, 14585, 14586, 5, 777, 0, 0, 14586, 14587, 5, 2445, 0, 0, 14587, 14592, 3, 1134, 567, 0, 14588, 14589, 5, 2451, 0, 0, 14589, 14591, 3, 1134, 567, 0, 14590, 14588, 1, 0, 0, 0, 14591, 14594, 1, 0, 0, 0, 14592, 14590, 1, 0, 0, 0, 14592, 14593, 1, 0, 0, 0, 14593, 14595, 1, 0, 0, 0, 14594, 14592, 1, 0, 0, 0, 14595, 14596, 5, 2446, 0, 0, 14596, 14620, 1, 0, 0, 0, 14597, 14598, 5, 777, 0, 0, 14598, 14615, 5, 2445, 0, 0, 14599, 14604, 3, 1134, 567, 0, 14600, 14601, 5, 2451, 0, 0, 14601, 14603, 3, 1134, 567, 0, 14602, 14600, 1, 0, 0, 0, 14603, 14606, 1, 0, 0, 0, 14604, 14602, 1, 0, 0, 0, 14604, 14605, 1, 0, 0, 0, 14605, 14616, 1, 0, 0, 0, 14606, 14604, 1, 0, 0, 0, 14607, 14612, 3, 1136, 568, 0, 14608, 14609, 5, 2451, 0, 0, 14609, 14611, 3, 1136, 568, 0, 14610, 14608, 1, 0, 0, 0, 14611, 14614, 1, 0, 0, 0, 14612, 14610, 1, 0, 0, 0, 14612, 14613, 1, 0, 0, 0, 14613, 14616, 1, 0, 0, 0, 14614, 14612, 1, 0, 0, 0, 14615, 14599, 1, 0, 0, 0, 14615, 14607, 1, 0, 0, 0, 14616, 14617, 1, 0, 0, 0, 14617, 14618, 5, 2446, 0, 0, 14618, 14620, 1, 0, 0, 0, 14619, 14574, 1, 0, 0, 0, 14619, 14597, 1, 0, 0, 0, 14620, 14624, 1, 0, 0, 0, 14621, 14625, 3, 1566, 783, 0, 14622, 14625, 3, 1564, 782, 0, 14623, 14625, 5, 1254, 0, 0, 14624, 14621, 1, 0, 0, 0, 14624, 14622, 1, 0, 0, 0, 14624, 14623, 1, 0, 0, 0, 14624, 14625, 1, 0, 0, 0, 14625, 1537, 1, 0, 0, 0, 14626, 14629, 5, 2157, 0, 0, 14627, 14630, 3, 1550, 775, 0, 14628, 14630, 3, 1552, 776, 0, 14629, 14627, 1, 0, 0, 0, 14629, 14628, 1, 0, 0, 0, 14630, 14639, 1, 0, 0, 0, 14631, 14633, 5, 467, 0, 0, 14632, 14634, 5, 38, 0, 0, 14633, 14632, 1, 0, 0, 0, 14633, 14634, 1, 0, 0, 0, 14634, 14637, 1, 0, 0, 0, 14635, 14637, 5, 1585, 0, 0, 14636, 14631, 1, 0, 0, 0, 14636, 14635, 1, 0, 0, 0, 14636, 14637, 1, 0, 0, 0, 14637, 14638, 1, 0, 0, 0, 14638, 14640, 5, 1760, 0, 0, 14639, 14636, 1, 0, 0, 0, 14639, 14640, 1, 0, 0, 0, 14640, 14642, 1, 0, 0, 0, 14641, 14643, 5, 179, 0, 0, 14642, 14641, 1, 0, 0, 0, 14642, 14643, 1, 0, 0, 0, 14643, 14648, 1, 0, 0, 0, 14644, 14646, 3, 1564, 782, 0, 14645, 14647, 3, 926, 463, 0, 14646, 14645, 1, 0, 0, 0, 14646, 14647, 1, 0, 0, 0, 14647, 14649, 1, 0, 0, 0, 14648, 14644, 1, 0, 0, 0, 14648, 14649, 1, 0, 0, 0, 14649, 1539, 1, 0, 0, 0, 14650, 14651, 5, 536, 0, 0, 14651, 14652, 5, 1346, 0, 0, 14652, 14653, 3, 1688, 844, 0, 14653, 14654, 5, 2306, 0, 0, 14654, 14655, 5, 2081, 0, 0, 14655, 14658, 3, 2330, 1165, 0, 14656, 14657, 7, 108, 0, 0, 14657, 14659, 5, 712, 0, 0, 14658, 14656, 1, 0, 0, 0, 14658, 14659, 1, 0, 0, 0, 14659, 14662, 1, 0, 0, 0, 14660, 14661, 7, 2, 0, 0, 14661, 14663, 5, 2253, 0, 0, 14662, 14660, 1, 0, 0, 0, 14662, 14663, 1, 0, 0, 0, 14663, 1541, 1, 0, 0, 0, 14664, 14665, 5, 228, 0, 0, 14665, 14667, 5, 1346, 0, 0, 14666, 14668, 3, 926, 463, 0, 14667, 14666, 1, 0, 0, 0, 14667, 14668, 1, 0, 0, 0, 14668, 14672, 1, 0, 0, 0, 14669, 14670, 3, 1304, 652, 0, 14670, 14671, 5, 224, 0, 0, 14671, 14673, 1, 0, 0, 0, 14672, 14669, 1, 0, 0, 0, 14672, 14673, 1, 0, 0, 0, 14673, 1543, 1, 0, 0, 0, 14674, 14675, 5, 1669, 0, 0, 14675, 14676, 5, 774, 0, 0, 14676, 14679, 5, 2445, 0, 0, 14677, 14680, 3, 2382, 1191, 0, 14678, 14680, 3, 2070, 1035, 0, 14679, 14677, 1, 0, 0, 0, 14679, 14678, 1, 0, 0, 0, 14679, 14680, 1, 0, 0, 0, 14680, 14681, 1, 0, 0, 0, 14681, 14682, 5, 2446, 0, 0, 14682, 1545, 1, 0, 0, 0, 14683, 14698, 5, 990, 0, 0, 14684, 14687, 3, 1550, 775, 0, 14685, 14686, 5, 909, 0, 0, 14686, 14688, 5, 2081, 0, 0, 14687, 14685, 1, 0, 0, 0, 14687, 14688, 1, 0, 0, 0, 14688, 14689, 1, 0, 0, 0, 14689, 14690, 3, 1164, 582, 0, 14690, 14699, 1, 0, 0, 0, 14691, 14693, 3, 1552, 776, 0, 14692, 14694, 3, 1082, 541, 0, 14693, 14692, 1, 0, 0, 0, 14693, 14694, 1, 0, 0, 0, 14694, 14696, 1, 0, 0, 0, 14695, 14697, 3, 1166, 583, 0, 14696, 14695, 1, 0, 0, 0, 14696, 14697, 1, 0, 0, 0, 14697, 14699, 1, 0, 0, 0, 14698, 14684, 1, 0, 0, 0, 14698, 14691, 1, 0, 0, 0, 14699, 14709, 1, 0, 0, 0, 14700, 14708, 3, 1548, 774, 0, 14701, 14708, 3, 1564, 782, 0, 14702, 14708, 3, 926, 463, 0, 14703, 14704, 3, 1304, 652, 0, 14704, 14705, 5, 224, 0, 0, 14705, 14708, 1, 0, 0, 0, 14706, 14708, 5, 1254, 0, 0, 14707, 14700, 1, 0, 0, 0, 14707, 14701, 1, 0, 0, 0, 14707, 14702, 1, 0, 0, 0, 14707, 14703, 1, 0, 0, 0, 14707, 14706, 1, 0, 0, 0, 14708, 14711, 1, 0, 0, 0, 14709, 14707, 1, 0, 0, 0, 14709, 14710, 1, 0, 0, 0, 14710, 1547, 1, 0, 0, 0, 14711, 14709, 1, 0, 0, 0, 14712, 14713, 5, 703, 0, 0, 14713, 14714, 5, 1605, 0, 0, 14714, 14715, 3, 2260, 1130, 0, 14715, 1549, 1, 0, 0, 0, 14716, 14751, 7, 187, 0, 0, 14717, 14722, 3, 1688, 844, 0, 14718, 14719, 5, 2451, 0, 0, 14719, 14721, 3, 1688, 844, 0, 14720, 14718, 1, 0, 0, 0, 14721, 14724, 1, 0, 0, 0, 14722, 14720, 1, 0, 0, 0, 14722, 14723, 1, 0, 0, 0, 14723, 14752, 1, 0, 0, 0, 14724, 14722, 1, 0, 0, 0, 14725, 14726, 5, 2445, 0, 0, 14726, 14731, 3, 1688, 844, 0, 14727, 14728, 5, 2451, 0, 0, 14728, 14730, 3, 1688, 844, 0, 14729, 14727, 1, 0, 0, 0, 14730, 14733, 1, 0, 0, 0, 14731, 14729, 1, 0, 0, 0, 14731, 14732, 1, 0, 0, 0, 14732, 14734, 1, 0, 0, 0, 14733, 14731, 1, 0, 0, 0, 14734, 14735, 5, 2446, 0, 0, 14735, 14752, 1, 0, 0, 0, 14736, 14738, 5, 618, 0, 0, 14737, 14739, 5, 2445, 0, 0, 14738, 14737, 1, 0, 0, 0, 14738, 14739, 1, 0, 0, 0, 14739, 14740, 1, 0, 0, 0, 14740, 14745, 3, 684, 342, 0, 14741, 14742, 5, 2451, 0, 0, 14742, 14744, 3, 684, 342, 0, 14743, 14741, 1, 0, 0, 0, 14744, 14747, 1, 0, 0, 0, 14745, 14743, 1, 0, 0, 0, 14745, 14746, 1, 0, 0, 0, 14746, 14749, 1, 0, 0, 0, 14747, 14745, 1, 0, 0, 0, 14748, 14750, 5, 2446, 0, 0, 14749, 14748, 1, 0, 0, 0, 14749, 14750, 1, 0, 0, 0, 14750, 14752, 1, 0, 0, 0, 14751, 14717, 1, 0, 0, 0, 14751, 14725, 1, 0, 0, 0, 14751, 14736, 1, 0, 0, 0, 14752, 1551, 1, 0, 0, 0, 14753, 14785, 7, 188, 0, 0, 14754, 14757, 3, 1688, 844, 0, 14755, 14756, 5, 2205, 0, 0, 14756, 14758, 5, 712, 0, 0, 14757, 14755, 1, 0, 0, 0, 14757, 14758, 1, 0, 0, 0, 14758, 14786, 1, 0, 0, 0, 14759, 14760, 5, 2445, 0, 0, 14760, 14765, 3, 1688, 844, 0, 14761, 14762, 5, 2451, 0, 0, 14762, 14764, 3, 1688, 844, 0, 14763, 14761, 1, 0, 0, 0, 14764, 14767, 1, 0, 0, 0, 14765, 14763, 1, 0, 0, 0, 14765, 14766, 1, 0, 0, 0, 14766, 14768, 1, 0, 0, 0, 14767, 14765, 1, 0, 0, 0, 14768, 14769, 5, 2446, 0, 0, 14769, 14786, 1, 0, 0, 0, 14770, 14772, 5, 618, 0, 0, 14771, 14773, 5, 2445, 0, 0, 14772, 14771, 1, 0, 0, 0, 14772, 14773, 1, 0, 0, 0, 14773, 14774, 1, 0, 0, 0, 14774, 14779, 3, 686, 343, 0, 14775, 14776, 5, 2451, 0, 0, 14776, 14778, 3, 686, 343, 0, 14777, 14775, 1, 0, 0, 0, 14778, 14781, 1, 0, 0, 0, 14779, 14777, 1, 0, 0, 0, 14779, 14780, 1, 0, 0, 0, 14780, 14783, 1, 0, 0, 0, 14781, 14779, 1, 0, 0, 0, 14782, 14784, 5, 2446, 0, 0, 14783, 14782, 1, 0, 0, 0, 14783, 14784, 1, 0, 0, 0, 14784, 14786, 1, 0, 0, 0, 14785, 14754, 1, 0, 0, 0, 14785, 14759, 1, 0, 0, 0, 14785, 14770, 1, 0, 0, 0, 14786, 1553, 1, 0, 0, 0, 14787, 14807, 3, 1188, 594, 0, 14788, 14807, 3, 884, 442, 0, 14789, 14807, 3, 1172, 586, 0, 14790, 14807, 3, 1174, 587, 0, 14791, 14807, 3, 1272, 636, 0, 14792, 14807, 3, 1278, 639, 0, 14793, 14807, 3, 1280, 640, 0, 14794, 14807, 7, 107, 0, 0, 14795, 14796, 5, 1577, 0, 0, 14796, 14797, 5, 2445, 0, 0, 14797, 14798, 5, 975, 0, 0, 14798, 14799, 7, 24, 0, 0, 14799, 14807, 5, 2446, 0, 0, 14800, 14807, 3, 1286, 643, 0, 14801, 14807, 3, 1284, 642, 0, 14802, 14807, 3, 926, 463, 0, 14803, 14807, 3, 1266, 633, 0, 14804, 14807, 3, 1102, 551, 0, 14805, 14807, 3, 1268, 634, 0, 14806, 14787, 1, 0, 0, 0, 14806, 14788, 1, 0, 0, 0, 14806, 14789, 1, 0, 0, 0, 14806, 14790, 1, 0, 0, 0, 14806, 14791, 1, 0, 0, 0, 14806, 14792, 1, 0, 0, 0, 14806, 14793, 1, 0, 0, 0, 14806, 14794, 1, 0, 0, 0, 14806, 14795, 1, 0, 0, 0, 14806, 14800, 1, 0, 0, 0, 14806, 14801, 1, 0, 0, 0, 14806, 14802, 1, 0, 0, 0, 14806, 14803, 1, 0, 0, 0, 14806, 14804, 1, 0, 0, 0, 14806, 14805, 1, 0, 0, 0, 14807, 14808, 1, 0, 0, 0, 14808, 14806, 1, 0, 0, 0, 14808, 14809, 1, 0, 0, 0, 14809, 14811, 1, 0, 0, 0, 14810, 14812, 3, 1556, 778, 0, 14811, 14810, 1, 0, 0, 0, 14811, 14812, 1, 0, 0, 0, 14812, 1555, 1, 0, 0, 0, 14813, 14818, 3, 1588, 794, 0, 14814, 14818, 3, 1560, 780, 0, 14815, 14818, 3, 1558, 779, 0, 14816, 14818, 5, 228, 0, 0, 14817, 14813, 1, 0, 0, 0, 14817, 14814, 1, 0, 0, 0, 14817, 14815, 1, 0, 0, 0, 14817, 14816, 1, 0, 0, 0, 14818, 1557, 1, 0, 0, 0, 14819, 14820, 5, 909, 0, 0, 14820, 14823, 5, 2081, 0, 0, 14821, 14824, 3, 1278, 639, 0, 14822, 14824, 3, 1280, 640, 0, 14823, 14821, 1, 0, 0, 0, 14823, 14822, 1, 0, 0, 0, 14824, 1559, 1, 0, 0, 0, 14825, 14836, 3, 1562, 781, 0, 14826, 14831, 5, 1318, 0, 0, 14827, 14832, 3, 1194, 597, 0, 14828, 14832, 3, 1278, 639, 0, 14829, 14832, 3, 1282, 641, 0, 14830, 14832, 3, 1280, 640, 0, 14831, 14827, 1, 0, 0, 0, 14831, 14828, 1, 0, 0, 0, 14831, 14829, 1, 0, 0, 0, 14831, 14830, 1, 0, 0, 0, 14832, 14833, 1, 0, 0, 0, 14833, 14831, 1, 0, 0, 0, 14833, 14834, 1, 0, 0, 0, 14834, 14836, 1, 0, 0, 0, 14835, 14825, 1, 0, 0, 0, 14835, 14826, 1, 0, 0, 0, 14836, 1561, 1, 0, 0, 0, 14837, 14838, 5, 21, 0, 0, 14838, 14840, 5, 1318, 0, 0, 14839, 14841, 3, 1194, 597, 0, 14840, 14839, 1, 0, 0, 0, 14840, 14841, 1, 0, 0, 0, 14841, 14858, 1, 0, 0, 0, 14842, 14843, 5, 2445, 0, 0, 14843, 14845, 5, 1346, 0, 0, 14844, 14846, 3, 1194, 597, 0, 14845, 14844, 1, 0, 0, 0, 14845, 14846, 1, 0, 0, 0, 14846, 14854, 1, 0, 0, 0, 14847, 14848, 5, 2451, 0, 0, 14848, 14850, 5, 1346, 0, 0, 14849, 14851, 3, 1194, 597, 0, 14850, 14849, 1, 0, 0, 0, 14850, 14851, 1, 0, 0, 0, 14851, 14853, 1, 0, 0, 0, 14852, 14847, 1, 0, 0, 0, 14853, 14856, 1, 0, 0, 0, 14854, 14852, 1, 0, 0, 0, 14854, 14855, 1, 0, 0, 0, 14855, 14857, 1, 0, 0, 0, 14856, 14854, 1, 0, 0, 0, 14857, 14859, 5, 2446, 0, 0, 14858, 14842, 1, 0, 0, 0, 14858, 14859, 1, 0, 0, 0, 14859, 1563, 1, 0, 0, 0, 14860, 14863, 3, 1566, 783, 0, 14861, 14863, 3, 1568, 784, 0, 14862, 14860, 1, 0, 0, 0, 14862, 14861, 1, 0, 0, 0, 14863, 1565, 1, 0, 0, 0, 14864, 14865, 7, 189, 0, 0, 14865, 14866, 5, 640, 0, 0, 14866, 14867, 5, 712, 0, 0, 14867, 1567, 1, 0, 0, 0, 14868, 14869, 5, 2205, 0, 0, 14869, 14874, 5, 712, 0, 0, 14870, 14871, 5, 2445, 0, 0, 14871, 14872, 3, 1570, 785, 0, 14872, 14873, 5, 2446, 0, 0, 14873, 14875, 1, 0, 0, 0, 14874, 14870, 1, 0, 0, 0, 14874, 14875, 1, 0, 0, 0, 14875, 1569, 1, 0, 0, 0, 14876, 14877, 3, 2316, 1158, 0, 14877, 14880, 5, 2445, 0, 0, 14878, 14881, 3, 1572, 786, 0, 14879, 14881, 3, 1574, 787, 0, 14880, 14878, 1, 0, 0, 0, 14880, 14879, 1, 0, 0, 0, 14881, 14882, 1, 0, 0, 0, 14882, 14887, 5, 2446, 0, 0, 14883, 14884, 5, 2451, 0, 0, 14884, 14886, 3, 1568, 784, 0, 14885, 14883, 1, 0, 0, 0, 14886, 14889, 1, 0, 0, 0, 14887, 14885, 1, 0, 0, 0, 14887, 14888, 1, 0, 0, 0, 14888, 1571, 1, 0, 0, 0, 14889, 14887, 1, 0, 0, 0, 14890, 14892, 3, 542, 271, 0, 14891, 14893, 3, 504, 252, 0, 14892, 14891, 1, 0, 0, 0, 14892, 14893, 1, 0, 0, 0, 14893, 14898, 1, 0, 0, 0, 14894, 14895, 5, 2451, 0, 0, 14895, 14897, 3, 1572, 786, 0, 14896, 14894, 1, 0, 0, 0, 14897, 14900, 1, 0, 0, 0, 14898, 14896, 1, 0, 0, 0, 14898, 14899, 1, 0, 0, 0, 14899, 1573, 1, 0, 0, 0, 14900, 14898, 1, 0, 0, 0, 14901, 14903, 5, 1773, 0, 0, 14902, 14904, 3, 1148, 574, 0, 14903, 14902, 1, 0, 0, 0, 14903, 14904, 1, 0, 0, 0, 14904, 14907, 1, 0, 0, 0, 14905, 14906, 5, 2078, 0, 0, 14906, 14908, 3, 1648, 824, 0, 14907, 14905, 1, 0, 0, 0, 14907, 14908, 1, 0, 0, 0, 14908, 14913, 1, 0, 0, 0, 14909, 14910, 5, 2451, 0, 0, 14910, 14912, 3, 1574, 787, 0, 14911, 14909, 1, 0, 0, 0, 14912, 14915, 1, 0, 0, 0, 14913, 14911, 1, 0, 0, 0, 14913, 14914, 1, 0, 0, 0, 14914, 1575, 1, 0, 0, 0, 14915, 14913, 1, 0, 0, 0, 14916, 14918, 7, 17, 0, 0, 14917, 14919, 7, 94, 0, 0, 14918, 14917, 1, 0, 0, 0, 14918, 14919, 1, 0, 0, 0, 14919, 14936, 1, 0, 0, 0, 14920, 14921, 5, 2181, 0, 0, 14921, 14922, 5, 2445, 0, 0, 14922, 14927, 3, 2328, 1164, 0, 14923, 14924, 5, 2451, 0, 0, 14924, 14926, 3, 2328, 1164, 0, 14925, 14923, 1, 0, 0, 0, 14926, 14929, 1, 0, 0, 0, 14927, 14925, 1, 0, 0, 0, 14927, 14928, 1, 0, 0, 0, 14928, 14930, 1, 0, 0, 0, 14929, 14927, 1, 0, 0, 0, 14930, 14931, 5, 2446, 0, 0, 14931, 14937, 1, 0, 0, 0, 14932, 14933, 5, 1449, 0, 0, 14933, 14937, 5, 814, 0, 0, 14934, 14935, 5, 284, 0, 0, 14935, 14937, 3, 2298, 1149, 0, 14936, 14920, 1, 0, 0, 0, 14936, 14932, 1, 0, 0, 0, 14936, 14934, 1, 0, 0, 0, 14937, 14939, 1, 0, 0, 0, 14938, 14940, 3, 1578, 789, 0, 14939, 14938, 1, 0, 0, 0, 14939, 14940, 1, 0, 0, 0, 14940, 14942, 1, 0, 0, 0, 14941, 14943, 3, 1584, 792, 0, 14942, 14941, 1, 0, 0, 0, 14942, 14943, 1, 0, 0, 0, 14943, 14945, 1, 0, 0, 0, 14944, 14946, 5, 179, 0, 0, 14945, 14944, 1, 0, 0, 0, 14945, 14946, 1, 0, 0, 0, 14946, 14949, 1, 0, 0, 0, 14947, 14948, 7, 161, 0, 0, 14948, 14950, 5, 715, 0, 0, 14949, 14947, 1, 0, 0, 0, 14949, 14950, 1, 0, 0, 0, 14950, 1577, 1, 0, 0, 0, 14951, 14952, 5, 2244, 0, 0, 14952, 14959, 5, 715, 0, 0, 14953, 14960, 3, 2316, 1158, 0, 14954, 14955, 5, 2445, 0, 0, 14955, 14956, 3, 460, 230, 0, 14956, 14957, 5, 2446, 0, 0, 14957, 14960, 1, 0, 0, 0, 14958, 14960, 3, 472, 236, 0, 14959, 14953, 1, 0, 0, 0, 14959, 14954, 1, 0, 0, 0, 14959, 14958, 1, 0, 0, 0, 14960, 1579, 1, 0, 0, 0, 14961, 14974, 3, 1188, 594, 0, 14962, 14974, 3, 884, 442, 0, 14963, 14966, 5, 2078, 0, 0, 14964, 14967, 3, 1648, 824, 0, 14965, 14967, 5, 387, 0, 0, 14966, 14964, 1, 0, 0, 0, 14966, 14965, 1, 0, 0, 0, 14967, 14974, 1, 0, 0, 0, 14968, 14974, 3, 1592, 796, 0, 14969, 14974, 3, 1582, 791, 0, 14970, 14974, 5, 1586, 0, 0, 14971, 14974, 3, 518, 259, 0, 14972, 14974, 3, 926, 463, 0, 14973, 14961, 1, 0, 0, 0, 14973, 14962, 1, 0, 0, 0, 14973, 14963, 1, 0, 0, 0, 14973, 14968, 1, 0, 0, 0, 14973, 14969, 1, 0, 0, 0, 14973, 14970, 1, 0, 0, 0, 14973, 14971, 1, 0, 0, 0, 14973, 14972, 1, 0, 0, 0, 14974, 14975, 1, 0, 0, 0, 14975, 14973, 1, 0, 0, 0, 14975, 14976, 1, 0, 0, 0, 14976, 1581, 1, 0, 0, 0, 14977, 14978, 7, 190, 0, 0, 14978, 1583, 1, 0, 0, 0, 14979, 14980, 5, 535, 0, 0, 14980, 14981, 5, 777, 0, 0, 14981, 14982, 3, 2330, 1165, 0, 14982, 1585, 1, 0, 0, 0, 14983, 14985, 5, 990, 0, 0, 14984, 14986, 5, 1254, 0, 0, 14985, 14984, 1, 0, 0, 0, 14985, 14986, 1, 0, 0, 0, 14986, 14988, 1, 0, 0, 0, 14987, 14989, 3, 1194, 597, 0, 14988, 14987, 1, 0, 0, 0, 14988, 14989, 1, 0, 0, 0, 14989, 14991, 1, 0, 0, 0, 14990, 14992, 3, 1172, 586, 0, 14991, 14990, 1, 0, 0, 0, 14991, 14992, 1, 0, 0, 0, 14992, 14994, 1, 0, 0, 0, 14993, 14995, 3, 1588, 794, 0, 14994, 14993, 1, 0, 0, 0, 14994, 14995, 1, 0, 0, 0, 14995, 15000, 1, 0, 0, 0, 14996, 14999, 3, 1632, 816, 0, 14997, 14999, 3, 1622, 811, 0, 14998, 14996, 1, 0, 0, 0, 14998, 14997, 1, 0, 0, 0, 14999, 15002, 1, 0, 0, 0, 15000, 14998, 1, 0, 0, 0, 15000, 15001, 1, 0, 0, 0, 15001, 15004, 1, 0, 0, 0, 15002, 15000, 1, 0, 0, 0, 15003, 15005, 3, 926, 463, 0, 15004, 15003, 1, 0, 0, 0, 15004, 15005, 1, 0, 0, 0, 15005, 1587, 1, 0, 0, 0, 15006, 15011, 3, 1590, 795, 0, 15007, 15008, 5, 1369, 0, 0, 15008, 15011, 5, 2439, 0, 0, 15009, 15011, 3, 1592, 796, 0, 15010, 15006, 1, 0, 0, 0, 15010, 15007, 1, 0, 0, 0, 15010, 15009, 1, 0, 0, 0, 15011, 15012, 1, 0, 0, 0, 15012, 15010, 1, 0, 0, 0, 15012, 15013, 1, 0, 0, 0, 15013, 15015, 1, 0, 0, 0, 15014, 15016, 3, 1594, 797, 0, 15015, 15014, 1, 0, 0, 0, 15015, 15016, 1, 0, 0, 0, 15016, 15019, 1, 0, 0, 0, 15017, 15019, 3, 1594, 797, 0, 15018, 15010, 1, 0, 0, 0, 15018, 15017, 1, 0, 0, 0, 15019, 1589, 1, 0, 0, 0, 15020, 15021, 5, 909, 0, 0, 15021, 15024, 5, 2081, 0, 0, 15022, 15024, 5, 1118, 0, 0, 15023, 15020, 1, 0, 0, 0, 15023, 15022, 1, 0, 0, 0, 15024, 1591, 1, 0, 0, 0, 15025, 15029, 5, 1072, 0, 0, 15026, 15027, 5, 258, 0, 0, 15027, 15029, 5, 2439, 0, 0, 15028, 15025, 1, 0, 0, 0, 15028, 15026, 1, 0, 0, 0, 15029, 1593, 1, 0, 0, 0, 15030, 15031, 5, 703, 0, 0, 15031, 15033, 3, 2328, 1164, 0, 15032, 15030, 1, 0, 0, 0, 15032, 15033, 1, 0, 0, 0, 15033, 15034, 1, 0, 0, 0, 15034, 15036, 5, 1318, 0, 0, 15035, 15037, 3, 1194, 597, 0, 15036, 15035, 1, 0, 0, 0, 15036, 15037, 1, 0, 0, 0, 15037, 1595, 1, 0, 0, 0, 15038, 15043, 3, 1608, 804, 0, 15039, 15043, 3, 1602, 801, 0, 15040, 15043, 3, 1598, 799, 0, 15041, 15043, 3, 1634, 817, 0, 15042, 15038, 1, 0, 0, 0, 15042, 15039, 1, 0, 0, 0, 15042, 15040, 1, 0, 0, 0, 15042, 15041, 1, 0, 0, 0, 15043, 1597, 1, 0, 0, 0, 15044, 15045, 5, 978, 0, 0, 15045, 15046, 5, 1011, 0, 0, 15046, 15047, 5, 2081, 0, 0, 15047, 15048, 3, 1600, 800, 0, 15048, 15049, 5, 1584, 0, 0, 15049, 15050, 5, 69, 0, 0, 15050, 15051, 7, 191, 0, 0, 15051, 1599, 1, 0, 0, 0, 15052, 15053, 3, 2330, 1165, 0, 15053, 1601, 1, 0, 0, 0, 15054, 15055, 5, 1557, 0, 0, 15055, 15056, 5, 237, 0, 0, 15056, 15057, 3, 1604, 802, 0, 15057, 15058, 5, 2139, 0, 0, 15058, 15059, 3, 1606, 803, 0, 15059, 1603, 1, 0, 0, 0, 15060, 15061, 3, 2328, 1164, 0, 15061, 1605, 1, 0, 0, 0, 15062, 15063, 3, 2328, 1164, 0, 15063, 1607, 1, 0, 0, 0, 15064, 15069, 3, 1694, 847, 0, 15065, 15069, 3, 1620, 810, 0, 15066, 15069, 3, 1612, 806, 0, 15067, 15069, 3, 1610, 805, 0, 15068, 15064, 1, 0, 0, 0, 15068, 15065, 1, 0, 0, 0, 15068, 15066, 1, 0, 0, 0, 15068, 15067, 1, 0, 0, 0, 15069, 15070, 1, 0, 0, 0, 15070, 15068, 1, 0, 0, 0, 15070, 15071, 1, 0, 0, 0, 15071, 1609, 1, 0, 0, 0, 15072, 15073, 5, 1669, 0, 0, 15073, 15087, 5, 2202, 0, 0, 15074, 15075, 5, 237, 0, 0, 15075, 15088, 3, 2328, 1164, 0, 15076, 15077, 5, 2445, 0, 0, 15077, 15082, 3, 2328, 1164, 0, 15078, 15079, 5, 2451, 0, 0, 15079, 15081, 3, 2328, 1164, 0, 15080, 15078, 1, 0, 0, 0, 15081, 15084, 1, 0, 0, 0, 15082, 15080, 1, 0, 0, 0, 15082, 15083, 1, 0, 0, 0, 15083, 15085, 1, 0, 0, 0, 15084, 15082, 1, 0, 0, 0, 15085, 15086, 5, 2446, 0, 0, 15086, 15088, 1, 0, 0, 0, 15087, 15074, 1, 0, 0, 0, 15087, 15076, 1, 0, 0, 0, 15088, 15094, 1, 0, 0, 0, 15089, 15090, 5, 179, 0, 0, 15090, 15093, 5, 285, 0, 0, 15091, 15093, 5, 778, 0, 0, 15092, 15089, 1, 0, 0, 0, 15092, 15091, 1, 0, 0, 0, 15093, 15096, 1, 0, 0, 0, 15094, 15092, 1, 0, 0, 0, 15094, 15095, 1, 0, 0, 0, 15095, 15135, 1, 0, 0, 0, 15096, 15094, 1, 0, 0, 0, 15097, 15111, 5, 467, 0, 0, 15098, 15099, 5, 237, 0, 0, 15099, 15112, 3, 2328, 1164, 0, 15100, 15101, 5, 2445, 0, 0, 15101, 15106, 3, 2328, 1164, 0, 15102, 15103, 5, 2451, 0, 0, 15103, 15105, 3, 2328, 1164, 0, 15104, 15102, 1, 0, 0, 0, 15105, 15108, 1, 0, 0, 0, 15106, 15104, 1, 0, 0, 0, 15106, 15107, 1, 0, 0, 0, 15107, 15109, 1, 0, 0, 0, 15108, 15106, 1, 0, 0, 0, 15109, 15110, 5, 2446, 0, 0, 15110, 15112, 1, 0, 0, 0, 15111, 15098, 1, 0, 0, 0, 15111, 15100, 1, 0, 0, 0, 15112, 15118, 1, 0, 0, 0, 15113, 15114, 5, 179, 0, 0, 15114, 15117, 5, 285, 0, 0, 15115, 15117, 5, 778, 0, 0, 15116, 15113, 1, 0, 0, 0, 15116, 15115, 1, 0, 0, 0, 15117, 15120, 1, 0, 0, 0, 15118, 15116, 1, 0, 0, 0, 15118, 15119, 1, 0, 0, 0, 15119, 15123, 1, 0, 0, 0, 15120, 15118, 1, 0, 0, 0, 15121, 15122, 5, 201, 0, 0, 15122, 15124, 5, 2439, 0, 0, 15123, 15121, 1, 0, 0, 0, 15123, 15124, 1, 0, 0, 0, 15124, 15135, 1, 0, 0, 0, 15125, 15130, 5, 467, 0, 0, 15126, 15127, 5, 2202, 0, 0, 15127, 15131, 5, 238, 0, 0, 15128, 15129, 5, 238, 0, 0, 15129, 15131, 5, 295, 0, 0, 15130, 15126, 1, 0, 0, 0, 15130, 15128, 1, 0, 0, 0, 15131, 15132, 1, 0, 0, 0, 15132, 15133, 5, 201, 0, 0, 15133, 15135, 5, 2439, 0, 0, 15134, 15072, 1, 0, 0, 0, 15134, 15097, 1, 0, 0, 0, 15134, 15125, 1, 0, 0, 0, 15135, 1611, 1, 0, 0, 0, 15136, 15162, 5, 978, 0, 0, 15137, 15138, 5, 2445, 0, 0, 15138, 15143, 3, 1614, 807, 0, 15139, 15140, 5, 2451, 0, 0, 15140, 15142, 3, 1614, 807, 0, 15141, 15139, 1, 0, 0, 0, 15142, 15145, 1, 0, 0, 0, 15143, 15141, 1, 0, 0, 0, 15143, 15144, 1, 0, 0, 0, 15144, 15146, 1, 0, 0, 0, 15145, 15143, 1, 0, 0, 0, 15146, 15147, 5, 2446, 0, 0, 15147, 15163, 1, 0, 0, 0, 15148, 15149, 5, 2445, 0, 0, 15149, 15154, 3, 1616, 808, 0, 15150, 15151, 5, 2451, 0, 0, 15151, 15153, 3, 1616, 808, 0, 15152, 15150, 1, 0, 0, 0, 15153, 15156, 1, 0, 0, 0, 15154, 15152, 1, 0, 0, 0, 15154, 15155, 1, 0, 0, 0, 15155, 15157, 1, 0, 0, 0, 15156, 15154, 1, 0, 0, 0, 15157, 15158, 5, 2446, 0, 0, 15158, 15163, 1, 0, 0, 0, 15159, 15163, 3, 1614, 807, 0, 15160, 15163, 3, 1616, 808, 0, 15161, 15163, 3, 1618, 809, 0, 15162, 15137, 1, 0, 0, 0, 15162, 15148, 1, 0, 0, 0, 15162, 15159, 1, 0, 0, 0, 15162, 15160, 1, 0, 0, 0, 15162, 15161, 1, 0, 0, 0, 15163, 1613, 1, 0, 0, 0, 15164, 15166, 3, 2328, 1164, 0, 15165, 15167, 3, 2364, 1182, 0, 15166, 15165, 1, 0, 0, 0, 15166, 15167, 1, 0, 0, 0, 15167, 15174, 1, 0, 0, 0, 15168, 15171, 5, 387, 0, 0, 15169, 15170, 5, 1257, 0, 0, 15170, 15172, 5, 1226, 0, 0, 15171, 15169, 1, 0, 0, 0, 15171, 15172, 1, 0, 0, 0, 15172, 15173, 1, 0, 0, 0, 15173, 15175, 3, 2070, 1035, 0, 15174, 15168, 1, 0, 0, 0, 15174, 15175, 1, 0, 0, 0, 15175, 15179, 1, 0, 0, 0, 15176, 15177, 5, 503, 0, 0, 15177, 15180, 3, 1646, 823, 0, 15178, 15180, 5, 385, 0, 0, 15179, 15176, 1, 0, 0, 0, 15179, 15178, 1, 0, 0, 0, 15179, 15180, 1, 0, 0, 0, 15180, 15184, 1, 0, 0, 0, 15181, 15183, 3, 844, 422, 0, 15182, 15181, 1, 0, 0, 0, 15183, 15186, 1, 0, 0, 0, 15184, 15182, 1, 0, 0, 0, 15184, 15185, 1, 0, 0, 0, 15185, 15188, 1, 0, 0, 0, 15186, 15184, 1, 0, 0, 0, 15187, 15189, 3, 1632, 816, 0, 15188, 15187, 1, 0, 0, 0, 15188, 15189, 1, 0, 0, 0, 15189, 15191, 1, 0, 0, 0, 15190, 15192, 3, 2234, 1117, 0, 15191, 15190, 1, 0, 0, 0, 15191, 15192, 1, 0, 0, 0, 15192, 1615, 1, 0, 0, 0, 15193, 15194, 3, 2328, 1164, 0, 15194, 15195, 7, 68, 0, 0, 15195, 1617, 1, 0, 0, 0, 15196, 15197, 5, 237, 0, 0, 15197, 15199, 3, 2328, 1164, 0, 15198, 15200, 5, 1202, 0, 0, 15199, 15198, 1, 0, 0, 0, 15199, 15200, 1, 0, 0, 0, 15200, 15201, 1, 0, 0, 0, 15201, 15202, 5, 1778, 0, 0, 15202, 15203, 5, 82, 0, 0, 15203, 15204, 5, 38, 0, 0, 15204, 15206, 5, 846, 0, 0, 15205, 15207, 5, 614, 0, 0, 15206, 15205, 1, 0, 0, 0, 15206, 15207, 1, 0, 0, 0, 15207, 1619, 1, 0, 0, 0, 15208, 15230, 5, 21, 0, 0, 15209, 15212, 5, 2445, 0, 0, 15210, 15213, 3, 1662, 831, 0, 15211, 15213, 3, 1672, 836, 0, 15212, 15210, 1, 0, 0, 0, 15212, 15211, 1, 0, 0, 0, 15213, 15221, 1, 0, 0, 0, 15214, 15217, 5, 2451, 0, 0, 15215, 15218, 3, 1662, 831, 0, 15216, 15218, 3, 1672, 836, 0, 15217, 15215, 1, 0, 0, 0, 15217, 15216, 1, 0, 0, 0, 15218, 15220, 1, 0, 0, 0, 15219, 15214, 1, 0, 0, 0, 15220, 15223, 1, 0, 0, 0, 15221, 15219, 1, 0, 0, 0, 15221, 15222, 1, 0, 0, 0, 15222, 15224, 1, 0, 0, 0, 15223, 15221, 1, 0, 0, 0, 15224, 15225, 5, 2446, 0, 0, 15225, 15231, 1, 0, 0, 0, 15226, 15229, 3, 1662, 831, 0, 15227, 15229, 3, 1672, 836, 0, 15228, 15226, 1, 0, 0, 0, 15228, 15227, 1, 0, 0, 0, 15229, 15231, 1, 0, 0, 0, 15230, 15209, 1, 0, 0, 0, 15230, 15228, 1, 0, 0, 0, 15231, 15233, 1, 0, 0, 0, 15232, 15234, 3, 1652, 826, 0, 15233, 15232, 1, 0, 0, 0, 15233, 15234, 1, 0, 0, 0, 15234, 1621, 1, 0, 0, 0, 15235, 15236, 5, 2265, 0, 0, 15236, 15242, 3, 1650, 825, 0, 15237, 15239, 3, 1686, 843, 0, 15238, 15237, 1, 0, 0, 0, 15238, 15239, 1, 0, 0, 0, 15239, 15240, 1, 0, 0, 0, 15240, 15243, 3, 1624, 812, 0, 15241, 15243, 3, 1686, 843, 0, 15242, 15238, 1, 0, 0, 0, 15242, 15241, 1, 0, 0, 0, 15243, 1623, 1, 0, 0, 0, 15244, 15245, 5, 1761, 0, 0, 15245, 15247, 5, 69, 0, 0, 15246, 15248, 7, 119, 0, 0, 15247, 15246, 1, 0, 0, 0, 15247, 15248, 1, 0, 0, 0, 15248, 15249, 1, 0, 0, 0, 15249, 15258, 5, 866, 0, 0, 15250, 15252, 3, 1626, 813, 0, 15251, 15250, 1, 0, 0, 0, 15251, 15252, 1, 0, 0, 0, 15252, 15253, 1, 0, 0, 0, 15253, 15254, 5, 2445, 0, 0, 15254, 15255, 3, 1630, 815, 0, 15255, 15256, 5, 2446, 0, 0, 15256, 15259, 1, 0, 0, 0, 15257, 15259, 3, 1626, 813, 0, 15258, 15251, 1, 0, 0, 0, 15258, 15257, 1, 0, 0, 0, 15258, 15259, 1, 0, 0, 0, 15259, 1625, 1, 0, 0, 0, 15260, 15261, 3, 2398, 1199, 0, 15261, 1627, 1, 0, 0, 0, 15262, 15266, 3, 2398, 1199, 0, 15263, 15266, 3, 2388, 1194, 0, 15264, 15266, 5, 2442, 0, 0, 15265, 15262, 1, 0, 0, 0, 15265, 15263, 1, 0, 0, 0, 15265, 15264, 1, 0, 0, 0, 15266, 1629, 1, 0, 0, 0, 15267, 15268, 5, 2078, 0, 0, 15268, 15275, 3, 2392, 1196, 0, 15269, 15271, 3, 1638, 819, 0, 15270, 15272, 3, 1190, 595, 0, 15271, 15270, 1, 0, 0, 0, 15271, 15272, 1, 0, 0, 0, 15272, 15275, 1, 0, 0, 0, 15273, 15275, 3, 1190, 595, 0, 15274, 15267, 1, 0, 0, 0, 15274, 15269, 1, 0, 0, 0, 15274, 15273, 1, 0, 0, 0, 15275, 1631, 1, 0, 0, 0, 15276, 15321, 5, 866, 0, 0, 15277, 15278, 5, 2445, 0, 0, 15278, 15283, 3, 1628, 814, 0, 15279, 15280, 5, 2451, 0, 0, 15280, 15282, 3, 1628, 814, 0, 15281, 15279, 1, 0, 0, 0, 15282, 15285, 1, 0, 0, 0, 15283, 15281, 1, 0, 0, 0, 15283, 15284, 1, 0, 0, 0, 15284, 15286, 1, 0, 0, 0, 15285, 15283, 1, 0, 0, 0, 15286, 15287, 5, 2446, 0, 0, 15287, 15288, 5, 1761, 0, 0, 15288, 15298, 5, 69, 0, 0, 15289, 15299, 7, 119, 0, 0, 15290, 15294, 5, 2445, 0, 0, 15291, 15293, 3, 1630, 815, 0, 15292, 15291, 1, 0, 0, 0, 15293, 15296, 1, 0, 0, 0, 15294, 15292, 1, 0, 0, 0, 15294, 15295, 1, 0, 0, 0, 15295, 15297, 1, 0, 0, 0, 15296, 15294, 1, 0, 0, 0, 15297, 15299, 5, 2446, 0, 0, 15298, 15289, 1, 0, 0, 0, 15298, 15290, 1, 0, 0, 0, 15299, 15300, 1, 0, 0, 0, 15300, 15298, 1, 0, 0, 0, 15300, 15301, 1, 0, 0, 0, 15301, 15322, 1, 0, 0, 0, 15302, 15303, 5, 2445, 0, 0, 15303, 15304, 3, 1628, 814, 0, 15304, 15305, 5, 2446, 0, 0, 15305, 15306, 5, 1761, 0, 0, 15306, 15317, 5, 69, 0, 0, 15307, 15318, 7, 119, 0, 0, 15308, 15318, 3, 1626, 813, 0, 15309, 15313, 5, 2445, 0, 0, 15310, 15312, 3, 1630, 815, 0, 15311, 15310, 1, 0, 0, 0, 15312, 15315, 1, 0, 0, 0, 15313, 15311, 1, 0, 0, 0, 15313, 15314, 1, 0, 0, 0, 15314, 15316, 1, 0, 0, 0, 15315, 15313, 1, 0, 0, 0, 15316, 15318, 5, 2446, 0, 0, 15317, 15307, 1, 0, 0, 0, 15317, 15308, 1, 0, 0, 0, 15317, 15309, 1, 0, 0, 0, 15318, 15319, 1, 0, 0, 0, 15319, 15317, 1, 0, 0, 0, 15319, 15320, 1, 0, 0, 0, 15320, 15322, 1, 0, 0, 0, 15321, 15277, 1, 0, 0, 0, 15321, 15302, 1, 0, 0, 0, 15322, 1633, 1, 0, 0, 0, 15323, 15324, 5, 978, 0, 0, 15324, 15325, 5, 866, 0, 0, 15325, 15326, 5, 2445, 0, 0, 15326, 15327, 3, 1628, 814, 0, 15327, 15328, 5, 2446, 0, 0, 15328, 15329, 5, 2445, 0, 0, 15329, 15330, 3, 1636, 818, 0, 15330, 15331, 5, 2446, 0, 0, 15331, 1635, 1, 0, 0, 0, 15332, 15357, 3, 1190, 595, 0, 15333, 15334, 7, 192, 0, 0, 15334, 15357, 5, 2439, 0, 0, 15335, 15336, 5, 1509, 0, 0, 15336, 15357, 5, 624, 0, 0, 15337, 15357, 3, 1644, 822, 0, 15338, 15357, 3, 1640, 820, 0, 15339, 15357, 3, 1642, 821, 0, 15340, 15341, 5, 503, 0, 0, 15341, 15357, 3, 1646, 823, 0, 15342, 15357, 5, 385, 0, 0, 15343, 15357, 5, 166, 0, 0, 15344, 15349, 5, 166, 0, 0, 15345, 15349, 5, 1064, 0, 0, 15346, 15347, 5, 166, 0, 0, 15347, 15349, 5, 1504, 0, 0, 15348, 15344, 1, 0, 0, 0, 15348, 15345, 1, 0, 0, 0, 15348, 15346, 1, 0, 0, 0, 15349, 15351, 1, 0, 0, 0, 15350, 15352, 3, 884, 442, 0, 15351, 15350, 1, 0, 0, 0, 15351, 15352, 1, 0, 0, 0, 15352, 15357, 1, 0, 0, 0, 15353, 15357, 3, 1278, 639, 0, 15354, 15357, 3, 1282, 641, 0, 15355, 15357, 3, 1280, 640, 0, 15356, 15332, 1, 0, 0, 0, 15356, 15333, 1, 0, 0, 0, 15356, 15335, 1, 0, 0, 0, 15356, 15337, 1, 0, 0, 0, 15356, 15338, 1, 0, 0, 0, 15356, 15339, 1, 0, 0, 0, 15356, 15340, 1, 0, 0, 0, 15356, 15342, 1, 0, 0, 0, 15356, 15343, 1, 0, 0, 0, 15356, 15348, 1, 0, 0, 0, 15356, 15353, 1, 0, 0, 0, 15356, 15354, 1, 0, 0, 0, 15356, 15355, 1, 0, 0, 0, 15357, 15358, 1, 0, 0, 0, 15358, 15356, 1, 0, 0, 0, 15358, 15359, 1, 0, 0, 0, 15359, 1637, 1, 0, 0, 0, 15360, 15361, 7, 17, 0, 0, 15361, 15362, 5, 1760, 0, 0, 15362, 15363, 5, 736, 0, 0, 15363, 15386, 5, 1604, 0, 0, 15364, 15365, 5, 205, 0, 0, 15365, 15386, 5, 2439, 0, 0, 15366, 15367, 5, 1371, 0, 0, 15367, 15386, 5, 2439, 0, 0, 15368, 15369, 5, 624, 0, 0, 15369, 15386, 5, 2439, 0, 0, 15370, 15386, 3, 1644, 822, 0, 15371, 15386, 3, 1640, 820, 0, 15372, 15386, 3, 1642, 821, 0, 15373, 15374, 5, 503, 0, 0, 15374, 15386, 3, 1646, 823, 0, 15375, 15386, 5, 385, 0, 0, 15376, 15381, 5, 166, 0, 0, 15377, 15381, 5, 1064, 0, 0, 15378, 15379, 5, 166, 0, 0, 15379, 15381, 5, 1504, 0, 0, 15380, 15376, 1, 0, 0, 0, 15380, 15377, 1, 0, 0, 0, 15380, 15378, 1, 0, 0, 0, 15381, 15383, 1, 0, 0, 0, 15382, 15384, 3, 884, 442, 0, 15383, 15382, 1, 0, 0, 0, 15383, 15384, 1, 0, 0, 0, 15384, 15386, 1, 0, 0, 0, 15385, 15360, 1, 0, 0, 0, 15385, 15364, 1, 0, 0, 0, 15385, 15366, 1, 0, 0, 0, 15385, 15368, 1, 0, 0, 0, 15385, 15370, 1, 0, 0, 0, 15385, 15371, 1, 0, 0, 0, 15385, 15372, 1, 0, 0, 0, 15385, 15373, 1, 0, 0, 0, 15385, 15375, 1, 0, 0, 0, 15385, 15380, 1, 0, 0, 0, 15386, 15387, 1, 0, 0, 0, 15387, 15385, 1, 0, 0, 0, 15387, 15388, 1, 0, 0, 0, 15388, 1639, 1, 0, 0, 0, 15389, 15390, 7, 193, 0, 0, 15390, 1641, 1, 0, 0, 0, 15391, 15397, 5, 1072, 0, 0, 15392, 15394, 5, 258, 0, 0, 15393, 15395, 7, 194, 0, 0, 15394, 15393, 1, 0, 0, 0, 15394, 15395, 1, 0, 0, 0, 15395, 15397, 1, 0, 0, 0, 15396, 15391, 1, 0, 0, 0, 15396, 15392, 1, 0, 0, 0, 15397, 1643, 1, 0, 0, 0, 15398, 15404, 5, 1581, 0, 0, 15399, 15405, 5, 2404, 0, 0, 15400, 15401, 5, 2407, 0, 0, 15401, 15405, 5, 2439, 0, 0, 15402, 15405, 5, 91, 0, 0, 15403, 15405, 5, 1131, 0, 0, 15404, 15399, 1, 0, 0, 0, 15404, 15400, 1, 0, 0, 0, 15404, 15402, 1, 0, 0, 0, 15404, 15403, 1, 0, 0, 0, 15404, 15405, 1, 0, 0, 0, 15405, 1645, 1, 0, 0, 0, 15406, 15407, 5, 2244, 0, 0, 15407, 15409, 5, 2441, 0, 0, 15408, 15406, 1, 0, 0, 0, 15408, 15409, 1, 0, 0, 0, 15409, 15413, 1, 0, 0, 0, 15410, 15411, 5, 683, 0, 0, 15411, 15412, 5, 160, 0, 0, 15412, 15414, 5, 2478, 0, 0, 15413, 15410, 1, 0, 0, 0, 15413, 15414, 1, 0, 0, 0, 15414, 15416, 1, 0, 0, 0, 15415, 15417, 5, 2441, 0, 0, 15416, 15415, 1, 0, 0, 0, 15416, 15417, 1, 0, 0, 0, 15417, 15422, 1, 0, 0, 0, 15418, 15420, 5, 1135, 0, 0, 15419, 15418, 1, 0, 0, 0, 15419, 15420, 1, 0, 0, 0, 15420, 15421, 1, 0, 0, 0, 15421, 15423, 5, 1611, 0, 0, 15422, 15419, 1, 0, 0, 0, 15422, 15423, 1, 0, 0, 0, 15423, 1647, 1, 0, 0, 0, 15424, 15425, 3, 2392, 1196, 0, 15425, 1649, 1, 0, 0, 0, 15426, 15427, 3, 2392, 1196, 0, 15427, 15428, 5, 2438, 0, 0, 15428, 15430, 1, 0, 0, 0, 15429, 15426, 1, 0, 0, 0, 15429, 15430, 1, 0, 0, 0, 15430, 15434, 1, 0, 0, 0, 15431, 15432, 3, 2392, 1196, 0, 15432, 15433, 5, 2438, 0, 0, 15433, 15435, 1, 0, 0, 0, 15434, 15431, 1, 0, 0, 0, 15434, 15435, 1, 0, 0, 0, 15435, 15436, 1, 0, 0, 0, 15436, 15437, 3, 2392, 1196, 0, 15437, 1651, 1, 0, 0, 0, 15438, 15459, 3, 1692, 846, 0, 15439, 15459, 3, 1682, 841, 0, 15440, 15443, 3, 1622, 811, 0, 15441, 15443, 3, 1632, 816, 0, 15442, 15440, 1, 0, 0, 0, 15442, 15441, 1, 0, 0, 0, 15443, 15455, 1, 0, 0, 0, 15444, 15445, 5, 2445, 0, 0, 15445, 15450, 3, 1654, 827, 0, 15446, 15447, 5, 2451, 0, 0, 15447, 15449, 3, 1654, 827, 0, 15448, 15446, 1, 0, 0, 0, 15449, 15452, 1, 0, 0, 0, 15450, 15448, 1, 0, 0, 0, 15450, 15451, 1, 0, 0, 0, 15451, 15453, 1, 0, 0, 0, 15452, 15450, 1, 0, 0, 0, 15453, 15454, 5, 2446, 0, 0, 15454, 15456, 1, 0, 0, 0, 15455, 15444, 1, 0, 0, 0, 15455, 15456, 1, 0, 0, 0, 15456, 15459, 1, 0, 0, 0, 15457, 15459, 3, 1038, 519, 0, 15458, 15438, 1, 0, 0, 0, 15458, 15439, 1, 0, 0, 0, 15458, 15442, 1, 0, 0, 0, 15458, 15457, 1, 0, 0, 0, 15459, 15460, 1, 0, 0, 0, 15460, 15458, 1, 0, 0, 0, 15460, 15461, 1, 0, 0, 0, 15461, 1653, 1, 0, 0, 0, 15462, 15495, 5, 866, 0, 0, 15463, 15464, 5, 2445, 0, 0, 15464, 15465, 3, 1628, 814, 0, 15465, 15466, 5, 2451, 0, 0, 15466, 15467, 3, 1628, 814, 0, 15467, 15468, 1, 0, 0, 0, 15468, 15469, 5, 2446, 0, 0, 15469, 15470, 5, 1761, 0, 0, 15470, 15476, 5, 69, 0, 0, 15471, 15477, 7, 119, 0, 0, 15472, 15473, 5, 2445, 0, 0, 15473, 15474, 3, 1630, 815, 0, 15474, 15475, 5, 2446, 0, 0, 15475, 15477, 1, 0, 0, 0, 15476, 15471, 1, 0, 0, 0, 15476, 15472, 1, 0, 0, 0, 15477, 15478, 1, 0, 0, 0, 15478, 15476, 1, 0, 0, 0, 15478, 15479, 1, 0, 0, 0, 15479, 15496, 1, 0, 0, 0, 15480, 15481, 5, 2445, 0, 0, 15481, 15482, 3, 1628, 814, 0, 15482, 15483, 5, 2446, 0, 0, 15483, 15484, 5, 1761, 0, 0, 15484, 15491, 5, 69, 0, 0, 15485, 15492, 7, 119, 0, 0, 15486, 15492, 3, 1626, 813, 0, 15487, 15488, 5, 2445, 0, 0, 15488, 15489, 3, 1630, 815, 0, 15489, 15490, 5, 2446, 0, 0, 15490, 15492, 1, 0, 0, 0, 15491, 15485, 1, 0, 0, 0, 15491, 15486, 1, 0, 0, 0, 15491, 15487, 1, 0, 0, 0, 15492, 15493, 1, 0, 0, 0, 15493, 15491, 1, 0, 0, 0, 15493, 15494, 1, 0, 0, 0, 15494, 15496, 1, 0, 0, 0, 15495, 15463, 1, 0, 0, 0, 15495, 15480, 1, 0, 0, 0, 15496, 1655, 1, 0, 0, 0, 15497, 15498, 4, 828, 10, 0, 15498, 15499, 5, 2438, 0, 0, 15499, 15500, 5, 618, 0, 0, 15500, 15507, 3, 2328, 1164, 0, 15501, 15502, 5, 2445, 0, 0, 15502, 15503, 3, 1658, 829, 0, 15503, 15504, 5, 2451, 0, 0, 15504, 15505, 3, 1660, 830, 0, 15505, 15506, 5, 2446, 0, 0, 15506, 15508, 1, 0, 0, 0, 15507, 15501, 1, 0, 0, 0, 15507, 15508, 1, 0, 0, 0, 15508, 1657, 1, 0, 0, 0, 15509, 15510, 3, 2328, 1164, 0, 15510, 1659, 1, 0, 0, 0, 15511, 15512, 3, 2328, 1164, 0, 15512, 1661, 1, 0, 0, 0, 15513, 15522, 3, 2328, 1164, 0, 15514, 15517, 3, 2364, 1182, 0, 15515, 15517, 3, 2302, 1151, 0, 15516, 15514, 1, 0, 0, 0, 15516, 15515, 1, 0, 0, 0, 15517, 15520, 1, 0, 0, 0, 15518, 15519, 5, 2370, 0, 0, 15519, 15521, 3, 1664, 832, 0, 15520, 15518, 1, 0, 0, 0, 15520, 15521, 1, 0, 0, 0, 15521, 15523, 1, 0, 0, 0, 15522, 15516, 1, 0, 0, 0, 15522, 15523, 1, 0, 0, 0, 15523, 15525, 1, 0, 0, 0, 15524, 15526, 5, 1707, 0, 0, 15525, 15524, 1, 0, 0, 0, 15525, 15526, 1, 0, 0, 0, 15526, 15528, 1, 0, 0, 0, 15527, 15529, 7, 68, 0, 0, 15528, 15527, 1, 0, 0, 0, 15528, 15529, 1, 0, 0, 0, 15529, 15537, 1, 0, 0, 0, 15530, 15533, 5, 387, 0, 0, 15531, 15532, 5, 1257, 0, 0, 15532, 15534, 5, 1226, 0, 0, 15533, 15531, 1, 0, 0, 0, 15533, 15534, 1, 0, 0, 0, 15534, 15535, 1, 0, 0, 0, 15535, 15538, 3, 2070, 1035, 0, 15536, 15538, 3, 1666, 833, 0, 15537, 15530, 1, 0, 0, 0, 15537, 15536, 1, 0, 0, 0, 15537, 15538, 1, 0, 0, 0, 15538, 15541, 1, 0, 0, 0, 15539, 15540, 5, 503, 0, 0, 15540, 15542, 3, 1646, 823, 0, 15541, 15539, 1, 0, 0, 0, 15541, 15542, 1, 0, 0, 0, 15542, 15549, 1, 0, 0, 0, 15543, 15545, 3, 844, 422, 0, 15544, 15543, 1, 0, 0, 0, 15545, 15546, 1, 0, 0, 0, 15546, 15544, 1, 0, 0, 0, 15546, 15547, 1, 0, 0, 0, 15547, 15550, 1, 0, 0, 0, 15548, 15550, 3, 846, 423, 0, 15549, 15544, 1, 0, 0, 0, 15549, 15548, 1, 0, 0, 0, 15549, 15550, 1, 0, 0, 0, 15550, 15552, 1, 0, 0, 0, 15551, 15553, 3, 2234, 1117, 0, 15552, 15551, 1, 0, 0, 0, 15552, 15553, 1, 0, 0, 0, 15553, 1663, 1, 0, 0, 0, 15554, 15555, 3, 2392, 1196, 0, 15555, 1665, 1, 0, 0, 0, 15556, 15564, 5, 638, 0, 0, 15557, 15565, 5, 44, 0, 0, 15558, 15559, 5, 160, 0, 0, 15559, 15562, 5, 387, 0, 0, 15560, 15561, 5, 1257, 0, 0, 15561, 15563, 5, 1226, 0, 0, 15562, 15560, 1, 0, 0, 0, 15562, 15563, 1, 0, 0, 0, 15563, 15565, 1, 0, 0, 0, 15564, 15557, 1, 0, 0, 0, 15564, 15558, 1, 0, 0, 0, 15564, 15565, 1, 0, 0, 0, 15565, 15566, 1, 0, 0, 0, 15566, 15567, 5, 69, 0, 0, 15567, 15569, 5, 685, 0, 0, 15568, 15570, 3, 1668, 834, 0, 15569, 15568, 1, 0, 0, 0, 15569, 15570, 1, 0, 0, 0, 15570, 1667, 1, 0, 0, 0, 15571, 15573, 3, 1670, 835, 0, 15572, 15571, 1, 0, 0, 0, 15573, 15574, 1, 0, 0, 0, 15574, 15572, 1, 0, 0, 0, 15574, 15575, 1, 0, 0, 0, 15575, 15585, 1, 0, 0, 0, 15576, 15578, 5, 2445, 0, 0, 15577, 15579, 3, 1670, 835, 0, 15578, 15577, 1, 0, 0, 0, 15579, 15580, 1, 0, 0, 0, 15580, 15578, 1, 0, 0, 0, 15580, 15581, 1, 0, 0, 0, 15581, 15582, 1, 0, 0, 0, 15582, 15583, 5, 2446, 0, 0, 15583, 15585, 1, 0, 0, 0, 15584, 15572, 1, 0, 0, 0, 15584, 15576, 1, 0, 0, 0, 15585, 1669, 1, 0, 0, 0, 15586, 15587, 5, 1735, 0, 0, 15587, 15591, 5, 2306, 0, 0, 15588, 15592, 3, 2384, 1192, 0, 15589, 15590, 5, 856, 0, 0, 15590, 15592, 5, 2256, 0, 0, 15591, 15588, 1, 0, 0, 0, 15591, 15589, 1, 0, 0, 0, 15592, 15615, 1, 0, 0, 0, 15593, 15594, 5, 705, 0, 0, 15594, 15595, 5, 160, 0, 0, 15595, 15615, 3, 2384, 1192, 0, 15596, 15597, 5, 930, 0, 0, 15597, 15615, 3, 2384, 1192, 0, 15598, 15615, 5, 1119, 0, 0, 15599, 15600, 5, 958, 0, 0, 15600, 15615, 3, 2384, 1192, 0, 15601, 15615, 5, 1122, 0, 0, 15602, 15615, 5, 346, 0, 0, 15603, 15615, 5, 1082, 0, 0, 15604, 15605, 5, 166, 0, 0, 15605, 15615, 3, 2384, 1192, 0, 15606, 15615, 5, 1064, 0, 0, 15607, 15615, 5, 1301, 0, 0, 15608, 15615, 5, 1138, 0, 0, 15609, 15610, 5, 1618, 0, 0, 15610, 15615, 7, 48, 0, 0, 15611, 15615, 5, 1179, 0, 0, 15612, 15615, 5, 812, 0, 0, 15613, 15615, 5, 1112, 0, 0, 15614, 15586, 1, 0, 0, 0, 15614, 15593, 1, 0, 0, 0, 15614, 15596, 1, 0, 0, 0, 15614, 15598, 1, 0, 0, 0, 15614, 15599, 1, 0, 0, 0, 15614, 15601, 1, 0, 0, 0, 15614, 15602, 1, 0, 0, 0, 15614, 15603, 1, 0, 0, 0, 15614, 15604, 1, 0, 0, 0, 15614, 15606, 1, 0, 0, 0, 15614, 15607, 1, 0, 0, 0, 15614, 15608, 1, 0, 0, 0, 15614, 15609, 1, 0, 0, 0, 15614, 15611, 1, 0, 0, 0, 15614, 15612, 1, 0, 0, 0, 15614, 15613, 1, 0, 0, 0, 15615, 1671, 1, 0, 0, 0, 15616, 15622, 3, 2328, 1164, 0, 15617, 15620, 3, 2364, 1182, 0, 15618, 15619, 5, 2370, 0, 0, 15619, 15621, 3, 1664, 832, 0, 15620, 15618, 1, 0, 0, 0, 15620, 15621, 1, 0, 0, 0, 15621, 15623, 1, 0, 0, 0, 15622, 15617, 1, 0, 0, 0, 15622, 15623, 1, 0, 0, 0, 15623, 15625, 1, 0, 0, 0, 15624, 15626, 7, 68, 0, 0, 15625, 15624, 1, 0, 0, 0, 15625, 15626, 1, 0, 0, 0, 15626, 15628, 1, 0, 0, 0, 15627, 15629, 3, 1674, 837, 0, 15628, 15627, 1, 0, 0, 0, 15628, 15629, 1, 0, 0, 0, 15629, 15631, 1, 0, 0, 0, 15630, 15632, 5, 2286, 0, 0, 15631, 15630, 1, 0, 0, 0, 15631, 15632, 1, 0, 0, 0, 15632, 15634, 1, 0, 0, 0, 15633, 15635, 3, 1680, 840, 0, 15634, 15633, 1, 0, 0, 0, 15634, 15635, 1, 0, 0, 0, 15635, 15644, 1, 0, 0, 0, 15636, 15637, 5, 2201, 0, 0, 15637, 15642, 5, 112, 0, 0, 15638, 15639, 5, 334, 0, 0, 15639, 15643, 5, 481, 0, 0, 15640, 15641, 5, 481, 0, 0, 15641, 15643, 3, 1448, 724, 0, 15642, 15638, 1, 0, 0, 0, 15642, 15640, 1, 0, 0, 0, 15643, 15645, 1, 0, 0, 0, 15644, 15636, 1, 0, 0, 0, 15644, 15645, 1, 0, 0, 0, 15645, 15655, 1, 0, 0, 0, 15646, 15647, 5, 2201, 0, 0, 15647, 15648, 5, 114, 0, 0, 15648, 15653, 5, 2306, 0, 0, 15649, 15650, 7, 195, 0, 0, 15650, 15654, 5, 481, 0, 0, 15651, 15652, 5, 481, 0, 0, 15652, 15654, 3, 1448, 724, 0, 15653, 15649, 1, 0, 0, 0, 15653, 15651, 1, 0, 0, 0, 15654, 15656, 1, 0, 0, 0, 15655, 15646, 1, 0, 0, 0, 15655, 15656, 1, 0, 0, 0, 15656, 15660, 1, 0, 0, 0, 15657, 15659, 3, 844, 422, 0, 15658, 15657, 1, 0, 0, 0, 15659, 15662, 1, 0, 0, 0, 15660, 15658, 1, 0, 0, 0, 15660, 15661, 1, 0, 0, 0, 15661, 15664, 1, 0, 0, 0, 15662, 15660, 1, 0, 0, 0, 15663, 15665, 3, 1678, 839, 0, 15664, 15663, 1, 0, 0, 0, 15664, 15665, 1, 0, 0, 0, 15665, 1673, 1, 0, 0, 0, 15666, 15679, 3, 1676, 838, 0, 15667, 15669, 5, 638, 0, 0, 15668, 15670, 5, 44, 0, 0, 15669, 15668, 1, 0, 0, 0, 15669, 15670, 1, 0, 0, 0, 15670, 15672, 1, 0, 0, 0, 15671, 15667, 1, 0, 0, 0, 15671, 15672, 1, 0, 0, 0, 15672, 15673, 1, 0, 0, 0, 15673, 15674, 5, 69, 0, 0, 15674, 15675, 5, 2445, 0, 0, 15675, 15676, 3, 2070, 1035, 0, 15676, 15677, 5, 2446, 0, 0, 15677, 15679, 1, 0, 0, 0, 15678, 15666, 1, 0, 0, 0, 15678, 15671, 1, 0, 0, 0, 15679, 1675, 1, 0, 0, 0, 15680, 15688, 5, 638, 0, 0, 15681, 15689, 5, 44, 0, 0, 15682, 15683, 5, 160, 0, 0, 15683, 15686, 5, 387, 0, 0, 15684, 15685, 5, 1257, 0, 0, 15685, 15687, 5, 1226, 0, 0, 15686, 15684, 1, 0, 0, 0, 15686, 15687, 1, 0, 0, 0, 15687, 15689, 1, 0, 0, 0, 15688, 15681, 1, 0, 0, 0, 15688, 15682, 1, 0, 0, 0, 15688, 15689, 1, 0, 0, 0, 15689, 15690, 1, 0, 0, 0, 15690, 15691, 5, 69, 0, 0, 15691, 15701, 5, 685, 0, 0, 15692, 15697, 5, 2445, 0, 0, 15693, 15696, 3, 326, 163, 0, 15694, 15696, 3, 324, 162, 0, 15695, 15693, 1, 0, 0, 0, 15695, 15694, 1, 0, 0, 0, 15696, 15699, 1, 0, 0, 0, 15697, 15695, 1, 0, 0, 0, 15697, 15698, 1, 0, 0, 0, 15698, 15700, 1, 0, 0, 0, 15699, 15697, 1, 0, 0, 0, 15700, 15702, 5, 2446, 0, 0, 15701, 15692, 1, 0, 0, 0, 15701, 15702, 1, 0, 0, 0, 15702, 1677, 1, 0, 0, 0, 15703, 15704, 5, 160, 0, 0, 15704, 15705, 5, 2235, 0, 0, 15705, 15706, 5, 618, 0, 0, 15706, 15707, 5, 1744, 0, 0, 15707, 1679, 1, 0, 0, 0, 15708, 15709, 5, 528, 0, 0, 15709, 15714, 5, 2244, 0, 0, 15710, 15711, 7, 195, 0, 0, 15711, 15715, 5, 481, 0, 0, 15712, 15713, 5, 481, 0, 0, 15713, 15715, 3, 1448, 724, 0, 15714, 15710, 1, 0, 0, 0, 15714, 15712, 1, 0, 0, 0, 15715, 1681, 1, 0, 0, 0, 15716, 15717, 5, 1011, 0, 0, 15717, 15720, 5, 2081, 0, 0, 15718, 15721, 3, 1684, 842, 0, 15719, 15721, 5, 240, 0, 0, 15720, 15718, 1, 0, 0, 0, 15720, 15719, 1, 0, 0, 0, 15721, 15723, 1, 0, 0, 0, 15722, 15724, 3, 1686, 843, 0, 15723, 15722, 1, 0, 0, 0, 15723, 15724, 1, 0, 0, 0, 15724, 15726, 1, 0, 0, 0, 15725, 15727, 7, 196, 0, 0, 15726, 15725, 1, 0, 0, 0, 15726, 15727, 1, 0, 0, 0, 15727, 15728, 1, 0, 0, 0, 15728, 15729, 5, 1761, 0, 0, 15729, 15730, 5, 69, 0, 0, 15730, 15744, 3, 2330, 1165, 0, 15731, 15738, 5, 2445, 0, 0, 15732, 15733, 5, 2445, 0, 0, 15733, 15734, 3, 1052, 526, 0, 15734, 15735, 5, 2446, 0, 0, 15735, 15739, 1, 0, 0, 0, 15736, 15739, 3, 1196, 598, 0, 15737, 15739, 3, 1652, 826, 0, 15738, 15732, 1, 0, 0, 0, 15738, 15736, 1, 0, 0, 0, 15738, 15737, 1, 0, 0, 0, 15739, 15740, 1, 0, 0, 0, 15740, 15738, 1, 0, 0, 0, 15740, 15741, 1, 0, 0, 0, 15741, 15742, 1, 0, 0, 0, 15742, 15743, 5, 2446, 0, 0, 15743, 15745, 1, 0, 0, 0, 15744, 15731, 1, 0, 0, 0, 15744, 15745, 1, 0, 0, 0, 15745, 15751, 1, 0, 0, 0, 15746, 15748, 5, 1584, 0, 0, 15747, 15749, 5, 69, 0, 0, 15748, 15747, 1, 0, 0, 0, 15748, 15749, 1, 0, 0, 0, 15749, 15750, 1, 0, 0, 0, 15750, 15752, 7, 191, 0, 0, 15751, 15746, 1, 0, 0, 0, 15751, 15752, 1, 0, 0, 0, 15752, 1683, 1, 0, 0, 0, 15753, 15754, 3, 2398, 1199, 0, 15754, 1685, 1, 0, 0, 0, 15755, 15757, 5, 484, 0, 0, 15756, 15755, 1, 0, 0, 0, 15756, 15757, 1, 0, 0, 0, 15757, 15758, 1, 0, 0, 0, 15758, 15759, 5, 783, 0, 0, 15759, 15761, 5, 1244, 0, 0, 15760, 15762, 5, 2164, 0, 0, 15761, 15760, 1, 0, 0, 0, 15761, 15762, 1, 0, 0, 0, 15762, 15763, 1, 0, 0, 0, 15763, 15764, 5, 2445, 0, 0, 15764, 15765, 3, 2302, 1151, 0, 15765, 15766, 5, 2446, 0, 0, 15766, 15775, 1, 0, 0, 0, 15767, 15769, 5, 1202, 0, 0, 15768, 15767, 1, 0, 0, 0, 15768, 15769, 1, 0, 0, 0, 15769, 15770, 1, 0, 0, 0, 15770, 15771, 5, 1778, 0, 0, 15771, 15772, 5, 82, 0, 0, 15772, 15773, 5, 38, 0, 0, 15773, 15775, 5, 846, 0, 0, 15774, 15756, 1, 0, 0, 0, 15774, 15768, 1, 0, 0, 0, 15775, 1687, 1, 0, 0, 0, 15776, 15779, 3, 2398, 1199, 0, 15777, 15779, 5, 2442, 0, 0, 15778, 15776, 1, 0, 0, 0, 15778, 15777, 1, 0, 0, 0, 15779, 1689, 1, 0, 0, 0, 15780, 15781, 5, 1787, 0, 0, 15781, 15784, 5, 886, 0, 0, 15782, 15785, 3, 1274, 637, 0, 15783, 15785, 3, 1276, 638, 0, 15784, 15782, 1, 0, 0, 0, 15784, 15783, 1, 0, 0, 0, 15785, 1691, 1, 0, 0, 0, 15786, 15787, 5, 237, 0, 0, 15787, 15788, 3, 2398, 1199, 0, 15788, 15789, 3, 1686, 843, 0, 15789, 1693, 1, 0, 0, 0, 15790, 15791, 5, 21, 0, 0, 15791, 15801, 5, 2445, 0, 0, 15792, 15797, 3, 850, 425, 0, 15793, 15794, 5, 2451, 0, 0, 15794, 15796, 3, 850, 425, 0, 15795, 15793, 1, 0, 0, 0, 15796, 15799, 1, 0, 0, 0, 15797, 15795, 1, 0, 0, 0, 15797, 15798, 1, 0, 0, 0, 15798, 15802, 1, 0, 0, 0, 15799, 15797, 1, 0, 0, 0, 15800, 15802, 3, 848, 424, 0, 15801, 15792, 1, 0, 0, 0, 15801, 15800, 1, 0, 0, 0, 15802, 15803, 1, 0, 0, 0, 15803, 15804, 5, 2446, 0, 0, 15804, 15845, 1, 0, 0, 0, 15805, 15808, 5, 21, 0, 0, 15806, 15809, 3, 850, 425, 0, 15807, 15809, 3, 848, 424, 0, 15808, 15806, 1, 0, 0, 0, 15808, 15807, 1, 0, 0, 0, 15809, 15845, 1, 0, 0, 0, 15810, 15827, 5, 978, 0, 0, 15811, 15812, 5, 284, 0, 0, 15812, 15828, 3, 2298, 1149, 0, 15813, 15814, 5, 1449, 0, 0, 15814, 15828, 5, 814, 0, 0, 15815, 15816, 5, 2181, 0, 0, 15816, 15817, 5, 2445, 0, 0, 15817, 15822, 3, 2328, 1164, 0, 15818, 15819, 5, 2451, 0, 0, 15819, 15821, 3, 2328, 1164, 0, 15820, 15818, 1, 0, 0, 0, 15821, 15824, 1, 0, 0, 0, 15822, 15820, 1, 0, 0, 0, 15822, 15823, 1, 0, 0, 0, 15823, 15825, 1, 0, 0, 0, 15824, 15822, 1, 0, 0, 0, 15825, 15826, 5, 2446, 0, 0, 15826, 15828, 1, 0, 0, 0, 15827, 15811, 1, 0, 0, 0, 15827, 15813, 1, 0, 0, 0, 15827, 15815, 1, 0, 0, 0, 15828, 15829, 1, 0, 0, 0, 15829, 15831, 3, 852, 426, 0, 15830, 15832, 5, 179, 0, 0, 15831, 15830, 1, 0, 0, 0, 15831, 15832, 1, 0, 0, 0, 15832, 15845, 1, 0, 0, 0, 15833, 15834, 5, 1557, 0, 0, 15834, 15835, 5, 284, 0, 0, 15835, 15836, 3, 1696, 848, 0, 15836, 15837, 5, 2139, 0, 0, 15837, 15838, 3, 1698, 849, 0, 15838, 15845, 1, 0, 0, 0, 15839, 15841, 3, 1700, 850, 0, 15840, 15839, 1, 0, 0, 0, 15841, 15842, 1, 0, 0, 0, 15842, 15840, 1, 0, 0, 0, 15842, 15843, 1, 0, 0, 0, 15843, 15845, 1, 0, 0, 0, 15844, 15790, 1, 0, 0, 0, 15844, 15805, 1, 0, 0, 0, 15844, 15810, 1, 0, 0, 0, 15844, 15833, 1, 0, 0, 0, 15844, 15840, 1, 0, 0, 0, 15845, 1695, 1, 0, 0, 0, 15846, 15847, 3, 2298, 1149, 0, 15847, 1697, 1, 0, 0, 0, 15848, 15849, 3, 2298, 1149, 0, 15849, 1699, 1, 0, 0, 0, 15850, 15867, 5, 467, 0, 0, 15851, 15852, 5, 1449, 0, 0, 15852, 15868, 5, 814, 0, 0, 15853, 15854, 5, 2181, 0, 0, 15854, 15855, 5, 2445, 0, 0, 15855, 15860, 3, 2328, 1164, 0, 15856, 15857, 5, 2451, 0, 0, 15857, 15859, 3, 2328, 1164, 0, 15858, 15856, 1, 0, 0, 0, 15859, 15862, 1, 0, 0, 0, 15860, 15858, 1, 0, 0, 0, 15860, 15861, 1, 0, 0, 0, 15861, 15863, 1, 0, 0, 0, 15862, 15860, 1, 0, 0, 0, 15863, 15864, 5, 2446, 0, 0, 15864, 15868, 1, 0, 0, 0, 15865, 15866, 5, 284, 0, 0, 15866, 15868, 3, 2298, 1149, 0, 15867, 15851, 1, 0, 0, 0, 15867, 15853, 1, 0, 0, 0, 15867, 15865, 1, 0, 0, 0, 15868, 15870, 1, 0, 0, 0, 15869, 15871, 5, 179, 0, 0, 15870, 15869, 1, 0, 0, 0, 15870, 15871, 1, 0, 0, 0, 15871, 15874, 1, 0, 0, 0, 15872, 15873, 7, 197, 0, 0, 15873, 15875, 5, 715, 0, 0, 15874, 15872, 1, 0, 0, 0, 15874, 15875, 1, 0, 0, 0, 15875, 15877, 1, 0, 0, 0, 15876, 15878, 5, 1254, 0, 0, 15877, 15876, 1, 0, 0, 0, 15877, 15878, 1, 0, 0, 0, 15878, 1701, 1, 0, 0, 0, 15879, 15880, 5, 200, 0, 0, 15880, 15881, 5, 2445, 0, 0, 15881, 15882, 3, 2066, 1033, 0, 15882, 15884, 5, 2446, 0, 0, 15883, 15885, 5, 427, 0, 0, 15884, 15883, 1, 0, 0, 0, 15884, 15885, 1, 0, 0, 0, 15885, 1703, 1, 0, 0, 0, 15886, 15887, 5, 616, 0, 0, 15887, 15888, 5, 814, 0, 0, 15888, 15889, 3, 2348, 1174, 0, 15889, 15891, 3, 1706, 853, 0, 15890, 15892, 3, 1708, 854, 0, 15891, 15890, 1, 0, 0, 0, 15891, 15892, 1, 0, 0, 0, 15892, 1705, 1, 0, 0, 0, 15893, 15894, 5, 1526, 0, 0, 15894, 15896, 3, 2330, 1165, 0, 15895, 15897, 3, 2348, 1174, 0, 15896, 15895, 1, 0, 0, 0, 15896, 15897, 1, 0, 0, 0, 15897, 15905, 1, 0, 0, 0, 15898, 15899, 5, 1257, 0, 0, 15899, 15903, 5, 401, 0, 0, 15900, 15904, 5, 179, 0, 0, 15901, 15902, 5, 1669, 0, 0, 15902, 15904, 5, 1226, 0, 0, 15903, 15900, 1, 0, 0, 0, 15903, 15901, 1, 0, 0, 0, 15904, 15906, 1, 0, 0, 0, 15905, 15898, 1, 0, 0, 0, 15905, 15906, 1, 0, 0, 0, 15906, 1707, 1, 0, 0, 0, 15907, 15908, 5, 1257, 0, 0, 15908, 15912, 5, 401, 0, 0, 15909, 15913, 5, 179, 0, 0, 15910, 15911, 5, 1669, 0, 0, 15911, 15913, 5, 1226, 0, 0, 15912, 15909, 1, 0, 0, 0, 15912, 15910, 1, 0, 0, 0, 15913, 1709, 1, 0, 0, 0, 15914, 15915, 5, 380, 0, 0, 15915, 15917, 3, 1732, 866, 0, 15916, 15914, 1, 0, 0, 0, 15916, 15917, 1, 0, 0, 0, 15917, 15918, 1, 0, 0, 0, 15918, 15919, 5, 113, 0, 0, 15919, 15926, 3, 1762, 881, 0, 15920, 15922, 5, 533, 0, 0, 15921, 15923, 3, 1814, 907, 0, 15922, 15921, 1, 0, 0, 0, 15923, 15924, 1, 0, 0, 0, 15924, 15922, 1, 0, 0, 0, 15924, 15925, 1, 0, 0, 0, 15925, 15927, 1, 0, 0, 0, 15926, 15920, 1, 0, 0, 0, 15926, 15927, 1, 0, 0, 0, 15927, 15928, 1, 0, 0, 0, 15928, 15929, 5, 506, 0, 0, 15929, 1711, 1, 0, 0, 0, 15930, 15931, 5, 88, 0, 0, 15931, 15932, 7, 90, 0, 0, 15932, 1713, 1, 0, 0, 0, 15933, 15936, 3, 1716, 858, 0, 15934, 15936, 3, 1718, 859, 0, 15935, 15933, 1, 0, 0, 0, 15935, 15934, 1, 0, 0, 0, 15936, 1715, 1, 0, 0, 0, 15937, 15938, 5, 821, 0, 0, 15938, 15939, 5, 790, 0, 0, 15939, 15940, 5, 995, 0, 0, 15940, 15941, 5, 2441, 0, 0, 15941, 1717, 1, 0, 0, 0, 15942, 15943, 5, 821, 0, 0, 15943, 15946, 5, 213, 0, 0, 15944, 15946, 5, 558, 0, 0, 15945, 15942, 1, 0, 0, 0, 15945, 15944, 1, 0, 0, 0, 15946, 15958, 1, 0, 0, 0, 15947, 15948, 5, 995, 0, 0, 15948, 15949, 3, 2392, 1196, 0, 15949, 15950, 5, 847, 0, 0, 15950, 15951, 3, 2390, 1195, 0, 15951, 15959, 1, 0, 0, 0, 15952, 15953, 5, 847, 0, 0, 15953, 15956, 3, 2390, 1195, 0, 15954, 15955, 5, 995, 0, 0, 15955, 15957, 3, 2392, 1196, 0, 15956, 15954, 1, 0, 0, 0, 15956, 15957, 1, 0, 0, 0, 15957, 15959, 1, 0, 0, 0, 15958, 15947, 1, 0, 0, 0, 15958, 15952, 1, 0, 0, 0, 15959, 15961, 1, 0, 0, 0, 15960, 15962, 3, 1720, 860, 0, 15961, 15960, 1, 0, 0, 0, 15961, 15962, 1, 0, 0, 0, 15962, 15965, 1, 0, 0, 0, 15963, 15964, 5, 2306, 0, 0, 15964, 15966, 5, 294, 0, 0, 15965, 15963, 1, 0, 0, 0, 15965, 15966, 1, 0, 0, 0, 15966, 15968, 1, 0, 0, 0, 15967, 15969, 3, 1722, 861, 0, 15968, 15967, 1, 0, 0, 0, 15968, 15969, 1, 0, 0, 0, 15969, 1719, 1, 0, 0, 0, 15970, 15971, 5, 34, 0, 0, 15971, 15972, 5, 736, 0, 0, 15972, 15973, 5, 2445, 0, 0, 15973, 15974, 3, 2068, 1034, 0, 15974, 15975, 5, 2446, 0, 0, 15975, 1721, 1, 0, 0, 0, 15976, 15977, 5, 1333, 0, 0, 15977, 15978, 5, 2445, 0, 0, 15978, 15983, 3, 1724, 862, 0, 15979, 15980, 5, 2451, 0, 0, 15980, 15982, 3, 1724, 862, 0, 15981, 15979, 1, 0, 0, 0, 15982, 15985, 1, 0, 0, 0, 15983, 15981, 1, 0, 0, 0, 15983, 15984, 1, 0, 0, 0, 15984, 15986, 1, 0, 0, 0, 15985, 15983, 1, 0, 0, 0, 15986, 15987, 5, 2446, 0, 0, 15987, 1723, 1, 0, 0, 0, 15988, 16009, 5, 294, 0, 0, 15989, 15992, 5, 1646, 0, 0, 15990, 15993, 5, 2432, 0, 0, 15991, 15993, 3, 1726, 863, 0, 15992, 15990, 1, 0, 0, 0, 15992, 15991, 1, 0, 0, 0, 15992, 15993, 1, 0, 0, 0, 15993, 16009, 1, 0, 0, 0, 15994, 15997, 3, 2282, 1141, 0, 15995, 15997, 5, 1584, 0, 0, 15996, 15994, 1, 0, 0, 0, 15996, 15995, 1, 0, 0, 0, 15997, 15999, 1, 0, 0, 0, 15998, 16000, 3, 1726, 863, 0, 15999, 15998, 1, 0, 0, 0, 15999, 16000, 1, 0, 0, 0, 16000, 16003, 1, 0, 0, 0, 16001, 16002, 5, 160, 0, 0, 16002, 16004, 5, 1525, 0, 0, 16003, 16001, 1, 0, 0, 0, 16003, 16004, 1, 0, 0, 0, 16004, 16006, 1, 0, 0, 0, 16005, 16007, 3, 2398, 1199, 0, 16006, 16005, 1, 0, 0, 0, 16006, 16007, 1, 0, 0, 0, 16007, 16009, 1, 0, 0, 0, 16008, 15988, 1, 0, 0, 0, 16008, 15989, 1, 0, 0, 0, 16008, 15996, 1, 0, 0, 0, 16009, 1725, 1, 0, 0, 0, 16010, 16012, 5, 731, 0, 0, 16011, 16013, 7, 198, 0, 0, 16012, 16011, 1, 0, 0, 0, 16012, 16013, 1, 0, 0, 0, 16013, 16020, 1, 0, 0, 0, 16014, 16020, 5, 842, 0, 0, 16015, 16020, 5, 2426, 0, 0, 16016, 16020, 5, 2428, 0, 0, 16017, 16020, 5, 2424, 0, 0, 16018, 16020, 5, 2425, 0, 0, 16019, 16010, 1, 0, 0, 0, 16019, 16014, 1, 0, 0, 0, 16019, 16015, 1, 0, 0, 0, 16019, 16016, 1, 0, 0, 0, 16019, 16017, 1, 0, 0, 0, 16019, 16018, 1, 0, 0, 0, 16020, 1727, 1, 0, 0, 0, 16021, 16025, 3, 2282, 1141, 0, 16022, 16024, 7, 199, 0, 0, 16023, 16022, 1, 0, 0, 0, 16024, 16027, 1, 0, 0, 0, 16025, 16023, 1, 0, 0, 0, 16025, 16026, 1, 0, 0, 0, 16026, 16029, 1, 0, 0, 0, 16027, 16025, 1, 0, 0, 0, 16028, 16030, 3, 2362, 1181, 0, 16029, 16028, 1, 0, 0, 0, 16029, 16030, 1, 0, 0, 0, 16030, 16032, 1, 0, 0, 0, 16031, 16033, 3, 1730, 865, 0, 16032, 16031, 1, 0, 0, 0, 16032, 16033, 1, 0, 0, 0, 16033, 1729, 1, 0, 0, 0, 16034, 16035, 7, 200, 0, 0, 16035, 16036, 3, 2070, 1035, 0, 16036, 1731, 1, 0, 0, 0, 16037, 16039, 3, 1734, 867, 0, 16038, 16037, 1, 0, 0, 0, 16039, 16040, 1, 0, 0, 0, 16040, 16038, 1, 0, 0, 0, 16040, 16041, 1, 0, 0, 0, 16041, 1733, 1, 0, 0, 0, 16042, 16054, 3, 1746, 873, 0, 16043, 16054, 3, 1744, 872, 0, 16044, 16054, 3, 162, 81, 0, 16045, 16054, 3, 164, 82, 0, 16046, 16054, 3, 1736, 868, 0, 16047, 16054, 3, 1738, 869, 0, 16048, 16054, 3, 1740, 870, 0, 16049, 16054, 3, 1754, 877, 0, 16050, 16054, 3, 178, 89, 0, 16051, 16054, 3, 176, 88, 0, 16052, 16054, 3, 1806, 903, 0, 16053, 16042, 1, 0, 0, 0, 16053, 16043, 1, 0, 0, 0, 16053, 16044, 1, 0, 0, 0, 16053, 16045, 1, 0, 0, 0, 16053, 16046, 1, 0, 0, 0, 16053, 16047, 1, 0, 0, 0, 16053, 16048, 1, 0, 0, 0, 16053, 16049, 1, 0, 0, 0, 16053, 16050, 1, 0, 0, 0, 16053, 16051, 1, 0, 0, 0, 16053, 16052, 1, 0, 0, 0, 16054, 1735, 1, 0, 0, 0, 16055, 16057, 3, 2390, 1195, 0, 16056, 16058, 5, 282, 0, 0, 16057, 16056, 1, 0, 0, 0, 16057, 16058, 1, 0, 0, 0, 16058, 16059, 1, 0, 0, 0, 16059, 16064, 3, 2362, 1181, 0, 16060, 16062, 5, 1202, 0, 0, 16061, 16060, 1, 0, 0, 0, 16061, 16062, 1, 0, 0, 0, 16062, 16063, 1, 0, 0, 0, 16063, 16065, 5, 1226, 0, 0, 16064, 16061, 1, 0, 0, 0, 16064, 16065, 1, 0, 0, 0, 16065, 16067, 1, 0, 0, 0, 16066, 16068, 3, 1730, 865, 0, 16067, 16066, 1, 0, 0, 0, 16067, 16068, 1, 0, 0, 0, 16068, 16069, 1, 0, 0, 0, 16069, 16070, 5, 2467, 0, 0, 16070, 1737, 1, 0, 0, 0, 16071, 16072, 5, 1783, 0, 0, 16072, 16073, 3, 2390, 1195, 0, 16073, 16074, 5, 783, 0, 0, 16074, 16080, 3, 2362, 1181, 0, 16075, 16076, 5, 1493, 0, 0, 16076, 16077, 3, 2070, 1035, 0, 16077, 16078, 5, 2437, 0, 0, 16078, 16079, 3, 2070, 1035, 0, 16079, 16081, 1, 0, 0, 0, 16080, 16075, 1, 0, 0, 0, 16080, 16081, 1, 0, 0, 0, 16081, 16084, 1, 0, 0, 0, 16082, 16083, 5, 1202, 0, 0, 16083, 16085, 5, 1226, 0, 0, 16084, 16082, 1, 0, 0, 0, 16084, 16085, 1, 0, 0, 0, 16085, 16086, 1, 0, 0, 0, 16086, 16087, 5, 2467, 0, 0, 16087, 1739, 1, 0, 0, 0, 16088, 16089, 5, 341, 0, 0, 16089, 16101, 3, 2390, 1195, 0, 16090, 16091, 5, 2445, 0, 0, 16091, 16096, 3, 1742, 871, 0, 16092, 16093, 5, 2451, 0, 0, 16093, 16095, 3, 1742, 871, 0, 16094, 16092, 1, 0, 0, 0, 16095, 16098, 1, 0, 0, 0, 16096, 16094, 1, 0, 0, 0, 16096, 16097, 1, 0, 0, 0, 16097, 16099, 1, 0, 0, 0, 16098, 16096, 1, 0, 0, 0, 16099, 16100, 5, 2446, 0, 0, 16100, 16102, 1, 0, 0, 0, 16101, 16090, 1, 0, 0, 0, 16101, 16102, 1, 0, 0, 0, 16102, 16105, 1, 0, 0, 0, 16103, 16104, 5, 1584, 0, 0, 16104, 16106, 3, 2362, 1181, 0, 16105, 16103, 1, 0, 0, 0, 16105, 16106, 1, 0, 0, 0, 16106, 16109, 1, 0, 0, 0, 16107, 16108, 5, 783, 0, 0, 16108, 16110, 3, 1862, 931, 0, 16109, 16107, 1, 0, 0, 0, 16109, 16110, 1, 0, 0, 0, 16110, 16111, 1, 0, 0, 0, 16111, 16112, 5, 2467, 0, 0, 16112, 1741, 1, 0, 0, 0, 16113, 16118, 3, 2282, 1141, 0, 16114, 16116, 5, 736, 0, 0, 16115, 16114, 1, 0, 0, 0, 16115, 16116, 1, 0, 0, 0, 16116, 16117, 1, 0, 0, 0, 16117, 16119, 3, 2362, 1181, 0, 16118, 16115, 1, 0, 0, 0, 16118, 16119, 1, 0, 0, 0, 16119, 16121, 1, 0, 0, 0, 16120, 16122, 3, 1730, 865, 0, 16121, 16120, 1, 0, 0, 0, 16121, 16122, 1, 0, 0, 0, 16122, 1743, 1, 0, 0, 0, 16123, 16124, 3, 2390, 1195, 0, 16124, 16125, 5, 533, 0, 0, 16125, 16126, 5, 2467, 0, 0, 16126, 1745, 1, 0, 0, 0, 16127, 16168, 5, 1431, 0, 0, 16128, 16169, 5, 1658, 0, 0, 16129, 16169, 5, 96, 0, 0, 16130, 16131, 5, 534, 0, 0, 16131, 16132, 5, 2445, 0, 0, 16132, 16133, 3, 2306, 1153, 0, 16133, 16134, 5, 2451, 0, 0, 16134, 16135, 3, 2386, 1193, 0, 16135, 16136, 5, 2446, 0, 0, 16136, 16169, 1, 0, 0, 0, 16137, 16138, 5, 742, 0, 0, 16138, 16139, 5, 2445, 0, 0, 16139, 16140, 3, 2390, 1195, 0, 16140, 16141, 5, 2451, 0, 0, 16141, 16142, 3, 2070, 1035, 0, 16142, 16143, 5, 2446, 0, 0, 16143, 16169, 1, 0, 0, 0, 16144, 16145, 5, 1575, 0, 0, 16145, 16148, 5, 2445, 0, 0, 16146, 16149, 3, 2390, 1195, 0, 16147, 16149, 5, 387, 0, 0, 16148, 16146, 1, 0, 0, 0, 16148, 16147, 1, 0, 0, 0, 16149, 16152, 1, 0, 0, 0, 16150, 16151, 5, 2451, 0, 0, 16151, 16153, 3, 2390, 1195, 0, 16152, 16150, 1, 0, 0, 0, 16153, 16154, 1, 0, 0, 0, 16154, 16152, 1, 0, 0, 0, 16154, 16155, 1, 0, 0, 0, 16155, 16156, 1, 0, 0, 0, 16156, 16157, 5, 2446, 0, 0, 16157, 16169, 1, 0, 0, 0, 16158, 16159, 5, 407, 0, 0, 16159, 16160, 5, 2445, 0, 0, 16160, 16163, 3, 2390, 1195, 0, 16161, 16162, 5, 2451, 0, 0, 16162, 16164, 5, 2441, 0, 0, 16163, 16161, 1, 0, 0, 0, 16163, 16164, 1, 0, 0, 0, 16164, 16165, 1, 0, 0, 0, 16165, 16166, 5, 2446, 0, 0, 16166, 16169, 1, 0, 0, 0, 16167, 16169, 5, 2169, 0, 0, 16168, 16128, 1, 0, 0, 0, 16168, 16129, 1, 0, 0, 0, 16168, 16130, 1, 0, 0, 0, 16168, 16137, 1, 0, 0, 0, 16168, 16144, 1, 0, 0, 0, 16168, 16158, 1, 0, 0, 0, 16168, 16167, 1, 0, 0, 0, 16169, 16170, 1, 0, 0, 0, 16170, 16171, 5, 2467, 0, 0, 16171, 1747, 1, 0, 0, 0, 16172, 16173, 5, 1510, 0, 0, 16173, 16174, 5, 2445, 0, 0, 16174, 16179, 3, 1750, 875, 0, 16175, 16176, 5, 2451, 0, 0, 16176, 16178, 3, 1750, 875, 0, 16177, 16175, 1, 0, 0, 0, 16178, 16181, 1, 0, 0, 0, 16179, 16177, 1, 0, 0, 0, 16179, 16180, 1, 0, 0, 0, 16180, 16182, 1, 0, 0, 0, 16181, 16179, 1, 0, 0, 0, 16182, 16183, 5, 2446, 0, 0, 16183, 1749, 1, 0, 0, 0, 16184, 16186, 3, 2328, 1164, 0, 16185, 16187, 3, 2362, 1181, 0, 16186, 16185, 1, 0, 0, 0, 16186, 16187, 1, 0, 0, 0, 16187, 16190, 1, 0, 0, 0, 16188, 16189, 5, 1202, 0, 0, 16189, 16191, 5, 1226, 0, 0, 16190, 16188, 1, 0, 0, 0, 16190, 16191, 1, 0, 0, 0, 16191, 16193, 1, 0, 0, 0, 16192, 16194, 3, 1730, 865, 0, 16193, 16192, 1, 0, 0, 0, 16193, 16194, 1, 0, 0, 0, 16194, 1751, 1, 0, 0, 0, 16195, 16196, 5, 1528, 0, 0, 16196, 16199, 5, 341, 0, 0, 16197, 16198, 5, 1584, 0, 0, 16198, 16200, 3, 2362, 1181, 0, 16199, 16197, 1, 0, 0, 0, 16199, 16200, 1, 0, 0, 0, 16200, 1753, 1, 0, 0, 0, 16201, 16202, 5, 2164, 0, 0, 16202, 16203, 3, 2390, 1195, 0, 16203, 16208, 5, 783, 0, 0, 16204, 16209, 3, 1756, 878, 0, 16205, 16209, 3, 1760, 880, 0, 16206, 16209, 3, 1748, 874, 0, 16207, 16209, 3, 1752, 876, 0, 16208, 16204, 1, 0, 0, 0, 16208, 16205, 1, 0, 0, 0, 16208, 16206, 1, 0, 0, 0, 16208, 16207, 1, 0, 0, 0, 16209, 16210, 1, 0, 0, 0, 16210, 16211, 5, 2467, 0, 0, 16211, 1755, 1, 0, 0, 0, 16212, 16213, 5, 2081, 0, 0, 16213, 16214, 5, 1244, 0, 0, 16214, 16217, 3, 2362, 1181, 0, 16215, 16216, 5, 1202, 0, 0, 16216, 16218, 5, 1226, 0, 0, 16217, 16215, 1, 0, 0, 0, 16217, 16218, 1, 0, 0, 0, 16218, 16220, 1, 0, 0, 0, 16219, 16221, 3, 1758, 879, 0, 16220, 16219, 1, 0, 0, 0, 16220, 16221, 1, 0, 0, 0, 16221, 1757, 1, 0, 0, 0, 16222, 16225, 5, 711, 0, 0, 16223, 16225, 5, 715, 0, 0, 16224, 16222, 1, 0, 0, 0, 16224, 16223, 1, 0, 0, 0, 16225, 16226, 1, 0, 0, 0, 16226, 16227, 5, 160, 0, 0, 16227, 16228, 3, 2362, 1181, 0, 16228, 1759, 1, 0, 0, 0, 16229, 16235, 5, 2265, 0, 0, 16230, 16232, 5, 2267, 0, 0, 16231, 16230, 1, 0, 0, 0, 16231, 16232, 1, 0, 0, 0, 16232, 16233, 1, 0, 0, 0, 16233, 16235, 5, 68, 0, 0, 16234, 16229, 1, 0, 0, 0, 16234, 16231, 1, 0, 0, 0, 16235, 16236, 1, 0, 0, 0, 16236, 16237, 5, 2445, 0, 0, 16237, 16238, 3, 2070, 1035, 0, 16238, 16239, 5, 2446, 0, 0, 16239, 16240, 5, 1244, 0, 0, 16240, 16243, 3, 2362, 1181, 0, 16241, 16242, 5, 1202, 0, 0, 16242, 16244, 5, 1226, 0, 0, 16243, 16241, 1, 0, 0, 0, 16243, 16244, 1, 0, 0, 0, 16244, 1761, 1, 0, 0, 0, 16245, 16247, 3, 1746, 873, 0, 16246, 16245, 1, 0, 0, 0, 16247, 16250, 1, 0, 0, 0, 16248, 16246, 1, 0, 0, 0, 16248, 16249, 1, 0, 0, 0, 16249, 16251, 1, 0, 0, 0, 16250, 16248, 1, 0, 0, 0, 16251, 16252, 3, 1766, 883, 0, 16252, 16253, 7, 201, 0, 0, 16253, 16257, 1, 0, 0, 0, 16254, 16257, 3, 1764, 882, 0, 16255, 16257, 3, 1806, 903, 0, 16256, 16248, 1, 0, 0, 0, 16256, 16254, 1, 0, 0, 0, 16256, 16255, 1, 0, 0, 0, 16257, 16258, 1, 0, 0, 0, 16258, 16256, 1, 0, 0, 0, 16258, 16259, 1, 0, 0, 0, 16259, 1763, 1, 0, 0, 0, 16260, 16261, 5, 2465, 0, 0, 16261, 16262, 5, 2465, 0, 0, 16262, 16263, 3, 2300, 1150, 0, 16263, 16264, 5, 2464, 0, 0, 16264, 16265, 5, 2464, 0, 0, 16265, 1765, 1, 0, 0, 0, 16266, 16284, 3, 1812, 906, 0, 16267, 16284, 3, 1820, 910, 0, 16268, 16284, 3, 1768, 884, 0, 16269, 16284, 3, 1770, 885, 0, 16270, 16284, 3, 1772, 886, 0, 16271, 16284, 3, 1774, 887, 0, 16272, 16284, 3, 1776, 888, 0, 16273, 16284, 3, 1782, 891, 0, 16274, 16284, 3, 1786, 893, 0, 16275, 16284, 3, 1796, 898, 0, 16276, 16284, 3, 1798, 899, 0, 16277, 16284, 3, 1800, 900, 0, 16278, 16284, 3, 2112, 1056, 0, 16279, 16284, 3, 1822, 911, 0, 16280, 16284, 3, 1802, 901, 0, 16281, 16284, 3, 1804, 902, 0, 16282, 16284, 3, 762, 381, 0, 16283, 16266, 1, 0, 0, 0, 16283, 16267, 1, 0, 0, 0, 16283, 16268, 1, 0, 0, 0, 16283, 16269, 1, 0, 0, 0, 16283, 16270, 1, 0, 0, 0, 16283, 16271, 1, 0, 0, 0, 16283, 16272, 1, 0, 0, 0, 16283, 16273, 1, 0, 0, 0, 16283, 16274, 1, 0, 0, 0, 16283, 16275, 1, 0, 0, 0, 16283, 16276, 1, 0, 0, 0, 16283, 16277, 1, 0, 0, 0, 16283, 16278, 1, 0, 0, 0, 16283, 16279, 1, 0, 0, 0, 16283, 16280, 1, 0, 0, 0, 16283, 16281, 1, 0, 0, 0, 16283, 16282, 1, 0, 0, 0, 16284, 1767, 1, 0, 0, 0, 16285, 16288, 3, 2372, 1186, 0, 16286, 16288, 3, 2370, 1185, 0, 16287, 16285, 1, 0, 0, 0, 16287, 16286, 1, 0, 0, 0, 16288, 16289, 1, 0, 0, 0, 16289, 16290, 5, 2454, 0, 0, 16290, 16291, 3, 2070, 1035, 0, 16291, 1769, 1, 0, 0, 0, 16292, 16294, 5, 295, 0, 0, 16293, 16295, 3, 2300, 1150, 0, 16294, 16293, 1, 0, 0, 0, 16294, 16295, 1, 0, 0, 0, 16295, 16298, 1, 0, 0, 0, 16296, 16297, 5, 2298, 0, 0, 16297, 16299, 3, 2066, 1033, 0, 16298, 16296, 1, 0, 0, 0, 16298, 16299, 1, 0, 0, 0, 16299, 1771, 1, 0, 0, 0, 16300, 16302, 5, 545, 0, 0, 16301, 16303, 3, 2300, 1150, 0, 16302, 16301, 1, 0, 0, 0, 16302, 16303, 1, 0, 0, 0, 16303, 16306, 1, 0, 0, 0, 16304, 16305, 5, 2298, 0, 0, 16305, 16307, 3, 2066, 1033, 0, 16306, 16304, 1, 0, 0, 0, 16306, 16307, 1, 0, 0, 0, 16307, 1773, 1, 0, 0, 0, 16308, 16309, 5, 644, 0, 0, 16309, 16310, 3, 2300, 1150, 0, 16310, 1775, 1, 0, 0, 0, 16311, 16312, 5, 689, 0, 0, 16312, 16313, 3, 2066, 1033, 0, 16313, 16314, 5, 2097, 0, 0, 16314, 16318, 3, 1762, 881, 0, 16315, 16317, 3, 1778, 889, 0, 16316, 16315, 1, 0, 0, 0, 16317, 16320, 1, 0, 0, 0, 16318, 16316, 1, 0, 0, 0, 16318, 16319, 1, 0, 0, 0, 16319, 16322, 1, 0, 0, 0, 16320, 16318, 1, 0, 0, 0, 16321, 16323, 3, 1780, 890, 0, 16322, 16321, 1, 0, 0, 0, 16322, 16323, 1, 0, 0, 0, 16323, 16324, 1, 0, 0, 0, 16324, 16325, 5, 506, 0, 0, 16325, 16326, 5, 689, 0, 0, 16326, 1777, 1, 0, 0, 0, 16327, 16328, 5, 490, 0, 0, 16328, 16329, 3, 2066, 1033, 0, 16329, 16330, 5, 2097, 0, 0, 16330, 16331, 3, 1762, 881, 0, 16331, 1779, 1, 0, 0, 0, 16332, 16333, 5, 489, 0, 0, 16333, 16334, 3, 1762, 881, 0, 16334, 1781, 1, 0, 0, 0, 16335, 16337, 3, 1764, 882, 0, 16336, 16335, 1, 0, 0, 0, 16336, 16337, 1, 0, 0, 0, 16337, 16342, 1, 0, 0, 0, 16338, 16339, 5, 2300, 0, 0, 16339, 16343, 3, 2066, 1033, 0, 16340, 16341, 5, 618, 0, 0, 16341, 16343, 3, 1784, 892, 0, 16342, 16338, 1, 0, 0, 0, 16342, 16340, 1, 0, 0, 0, 16342, 16343, 1, 0, 0, 0, 16343, 16344, 1, 0, 0, 0, 16344, 16345, 5, 892, 0, 0, 16345, 16346, 3, 1762, 881, 0, 16346, 16347, 5, 506, 0, 0, 16347, 16349, 5, 892, 0, 0, 16348, 16350, 3, 2300, 1150, 0, 16349, 16348, 1, 0, 0, 0, 16349, 16350, 1, 0, 0, 0, 16350, 1783, 1, 0, 0, 0, 16351, 16352, 3, 2316, 1158, 0, 16352, 16354, 5, 736, 0, 0, 16353, 16355, 5, 1586, 0, 0, 16354, 16353, 1, 0, 0, 0, 16354, 16355, 1, 0, 0, 0, 16355, 16356, 1, 0, 0, 0, 16356, 16357, 3, 1792, 896, 0, 16357, 16358, 5, 2437, 0, 0, 16358, 16359, 3, 1794, 897, 0, 16359, 16377, 1, 0, 0, 0, 16360, 16361, 3, 2320, 1160, 0, 16361, 16374, 5, 736, 0, 0, 16362, 16368, 3, 2318, 1159, 0, 16363, 16365, 5, 2445, 0, 0, 16364, 16366, 3, 2068, 1034, 0, 16365, 16364, 1, 0, 0, 0, 16365, 16366, 1, 0, 0, 0, 16366, 16367, 1, 0, 0, 0, 16367, 16369, 5, 2446, 0, 0, 16368, 16363, 1, 0, 0, 0, 16368, 16369, 1, 0, 0, 0, 16369, 16375, 1, 0, 0, 0, 16370, 16371, 5, 2445, 0, 0, 16371, 16372, 3, 1862, 931, 0, 16372, 16373, 5, 2446, 0, 0, 16373, 16375, 1, 0, 0, 0, 16374, 16362, 1, 0, 0, 0, 16374, 16370, 1, 0, 0, 0, 16375, 16377, 1, 0, 0, 0, 16376, 16351, 1, 0, 0, 0, 16376, 16360, 1, 0, 0, 0, 16377, 1785, 1, 0, 0, 0, 16378, 16379, 5, 613, 0, 0, 16379, 16380, 3, 2316, 1158, 0, 16380, 16381, 5, 736, 0, 0, 16381, 16384, 3, 1788, 894, 0, 16382, 16383, 5, 1615, 0, 0, 16383, 16385, 5, 535, 0, 0, 16384, 16382, 1, 0, 0, 0, 16384, 16385, 1, 0, 0, 0, 16385, 16386, 1, 0, 0, 0, 16386, 16387, 3, 1828, 914, 0, 16387, 1787, 1, 0, 0, 0, 16388, 16389, 3, 1792, 896, 0, 16389, 16390, 5, 2437, 0, 0, 16390, 16391, 3, 1794, 897, 0, 16391, 16402, 1, 0, 0, 0, 16392, 16393, 5, 732, 0, 0, 16393, 16394, 5, 1244, 0, 0, 16394, 16396, 3, 2372, 1186, 0, 16395, 16397, 3, 1790, 895, 0, 16396, 16395, 1, 0, 0, 0, 16396, 16397, 1, 0, 0, 0, 16397, 16402, 1, 0, 0, 0, 16398, 16399, 5, 2255, 0, 0, 16399, 16400, 5, 1244, 0, 0, 16400, 16402, 3, 2316, 1158, 0, 16401, 16388, 1, 0, 0, 0, 16401, 16392, 1, 0, 0, 0, 16401, 16398, 1, 0, 0, 0, 16402, 1789, 1, 0, 0, 0, 16403, 16404, 5, 118, 0, 0, 16404, 16405, 3, 1792, 896, 0, 16405, 16406, 5, 49, 0, 0, 16406, 16407, 3, 1794, 897, 0, 16407, 1791, 1, 0, 0, 0, 16408, 16409, 3, 2094, 1047, 0, 16409, 1793, 1, 0, 0, 0, 16410, 16411, 3, 2094, 1047, 0, 16411, 1795, 1, 0, 0, 0, 16412, 16413, 5, 1226, 0, 0, 16413, 1797, 1, 0, 0, 0, 16414, 16416, 5, 1490, 0, 0, 16415, 16417, 3, 2306, 1153, 0, 16416, 16415, 1, 0, 0, 0, 16416, 16417, 1, 0, 0, 0, 16417, 1799, 1, 0, 0, 0, 16418, 16420, 5, 1584, 0, 0, 16419, 16421, 3, 2070, 1035, 0, 16420, 16419, 1, 0, 0, 0, 16420, 16421, 1, 0, 0, 0, 16421, 1801, 1, 0, 0, 0, 16422, 16424, 5, 173, 0, 0, 16423, 16422, 1, 0, 0, 0, 16423, 16424, 1, 0, 0, 0, 16424, 16425, 1, 0, 0, 0, 16425, 16427, 3, 2276, 1138, 0, 16426, 16428, 3, 2352, 1176, 0, 16427, 16426, 1, 0, 0, 0, 16427, 16428, 1, 0, 0, 0, 16428, 16436, 1, 0, 0, 0, 16429, 16430, 5, 2438, 0, 0, 16430, 16432, 3, 2276, 1138, 0, 16431, 16433, 3, 2352, 1176, 0, 16432, 16431, 1, 0, 0, 0, 16432, 16433, 1, 0, 0, 0, 16433, 16435, 1, 0, 0, 0, 16434, 16429, 1, 0, 0, 0, 16435, 16438, 1, 0, 0, 0, 16436, 16434, 1, 0, 0, 0, 16436, 16437, 1, 0, 0, 0, 16437, 16441, 1, 0, 0, 0, 16438, 16436, 1, 0, 0, 0, 16439, 16440, 5, 777, 0, 0, 16440, 16442, 3, 2370, 1185, 0, 16441, 16439, 1, 0, 0, 0, 16441, 16442, 1, 0, 0, 0, 16442, 1803, 1, 0, 0, 0, 16443, 16444, 5, 1393, 0, 0, 16444, 16445, 5, 1604, 0, 0, 16445, 16446, 5, 2445, 0, 0, 16446, 16447, 3, 2070, 1035, 0, 16447, 16448, 5, 2446, 0, 0, 16448, 1805, 1, 0, 0, 0, 16449, 16450, 5, 458, 0, 0, 16450, 16451, 3, 2066, 1033, 0, 16451, 16452, 5, 459, 0, 0, 16452, 16457, 3, 1810, 905, 0, 16453, 16454, 5, 455, 0, 0, 16454, 16456, 3, 1810, 905, 0, 16455, 16453, 1, 0, 0, 0, 16456, 16459, 1, 0, 0, 0, 16457, 16455, 1, 0, 0, 0, 16457, 16458, 1, 0, 0, 0, 16458, 16462, 1, 0, 0, 0, 16459, 16457, 1, 0, 0, 0, 16460, 16461, 5, 454, 0, 0, 16461, 16463, 3, 1810, 905, 0, 16462, 16460, 1, 0, 0, 0, 16462, 16463, 1, 0, 0, 0, 16463, 16464, 1, 0, 0, 0, 16464, 16465, 5, 456, 0, 0, 16465, 1807, 1, 0, 0, 0, 16466, 16467, 5, 457, 0, 0, 16467, 16468, 3, 2094, 1047, 0, 16468, 16469, 5, 456, 0, 0, 16469, 1809, 1, 0, 0, 0, 16470, 16472, 3, 1746, 873, 0, 16471, 16470, 1, 0, 0, 0, 16471, 16472, 1, 0, 0, 0, 16472, 16473, 1, 0, 0, 0, 16473, 16474, 3, 1766, 883, 0, 16474, 16475, 5, 2467, 0, 0, 16475, 16481, 1, 0, 0, 0, 16476, 16481, 3, 1736, 868, 0, 16477, 16481, 3, 1808, 904, 0, 16478, 16481, 3, 176, 88, 0, 16479, 16481, 3, 178, 89, 0, 16480, 16471, 1, 0, 0, 0, 16480, 16476, 1, 0, 0, 0, 16480, 16477, 1, 0, 0, 0, 16480, 16478, 1, 0, 0, 0, 16480, 16479, 1, 0, 0, 0, 16481, 16482, 1, 0, 0, 0, 16482, 16480, 1, 0, 0, 0, 16482, 16483, 1, 0, 0, 0, 16483, 1811, 1, 0, 0, 0, 16484, 16485, 5, 113, 0, 0, 16485, 16492, 3, 1762, 881, 0, 16486, 16488, 5, 533, 0, 0, 16487, 16489, 3, 1814, 907, 0, 16488, 16487, 1, 0, 0, 0, 16489, 16490, 1, 0, 0, 0, 16490, 16488, 1, 0, 0, 0, 16490, 16491, 1, 0, 0, 0, 16491, 16493, 1, 0, 0, 0, 16492, 16486, 1, 0, 0, 0, 16492, 16493, 1, 0, 0, 0, 16493, 16494, 1, 0, 0, 0, 16494, 16496, 5, 506, 0, 0, 16495, 16497, 3, 2300, 1150, 0, 16496, 16495, 1, 0, 0, 0, 16496, 16497, 1, 0, 0, 0, 16497, 1813, 1, 0, 0, 0, 16498, 16499, 5, 2298, 0, 0, 16499, 16504, 3, 2306, 1153, 0, 16500, 16501, 5, 1305, 0, 0, 16501, 16503, 3, 2306, 1153, 0, 16502, 16500, 1, 0, 0, 0, 16503, 16506, 1, 0, 0, 0, 16504, 16502, 1, 0, 0, 0, 16504, 16505, 1, 0, 0, 0, 16505, 16507, 1, 0, 0, 0, 16506, 16504, 1, 0, 0, 0, 16507, 16508, 5, 2097, 0, 0, 16508, 16509, 3, 1762, 881, 0, 16509, 1815, 1, 0, 0, 0, 16510, 16514, 5, 380, 0, 0, 16511, 16513, 3, 1734, 867, 0, 16512, 16511, 1, 0, 0, 0, 16513, 16516, 1, 0, 0, 0, 16514, 16512, 1, 0, 0, 0, 16514, 16515, 1, 0, 0, 0, 16515, 16518, 1, 0, 0, 0, 16516, 16514, 1, 0, 0, 0, 16517, 16510, 1, 0, 0, 0, 16517, 16518, 1, 0, 0, 0, 16518, 16519, 1, 0, 0, 0, 16519, 16520, 3, 1812, 906, 0, 16520, 1817, 1, 0, 0, 0, 16521, 16523, 3, 1734, 867, 0, 16522, 16521, 1, 0, 0, 0, 16523, 16526, 1, 0, 0, 0, 16524, 16522, 1, 0, 0, 0, 16524, 16525, 1, 0, 0, 0, 16525, 16527, 1, 0, 0, 0, 16526, 16524, 1, 0, 0, 0, 16527, 16528, 3, 1812, 906, 0, 16528, 1819, 1, 0, 0, 0, 16529, 16533, 5, 380, 0, 0, 16530, 16532, 3, 1734, 867, 0, 16531, 16530, 1, 0, 0, 0, 16532, 16535, 1, 0, 0, 0, 16533, 16531, 1, 0, 0, 0, 16533, 16534, 1, 0, 0, 0, 16534, 16537, 1, 0, 0, 0, 16535, 16533, 1, 0, 0, 0, 16536, 16529, 1, 0, 0, 0, 16536, 16537, 1, 0, 0, 0, 16537, 16538, 1, 0, 0, 0, 16538, 16539, 3, 1812, 906, 0, 16539, 1821, 1, 0, 0, 0, 16540, 16546, 3, 1824, 912, 0, 16541, 16546, 3, 1828, 914, 0, 16542, 16546, 3, 1830, 915, 0, 16543, 16546, 3, 1842, 921, 0, 16544, 16546, 3, 1856, 928, 0, 16545, 16540, 1, 0, 0, 0, 16545, 16541, 1, 0, 0, 0, 16545, 16542, 1, 0, 0, 0, 16545, 16543, 1, 0, 0, 0, 16545, 16544, 1, 0, 0, 0, 16546, 1823, 1, 0, 0, 0, 16547, 16548, 5, 540, 0, 0, 16548, 16549, 5, 696, 0, 0, 16549, 16559, 3, 2070, 1035, 0, 16550, 16552, 3, 2262, 1131, 0, 16551, 16553, 3, 2200, 1100, 0, 16552, 16551, 1, 0, 0, 0, 16552, 16553, 1, 0, 0, 0, 16553, 16560, 1, 0, 0, 0, 16554, 16556, 3, 2200, 1100, 0, 16555, 16557, 3, 1826, 913, 0, 16556, 16555, 1, 0, 0, 0, 16556, 16557, 1, 0, 0, 0, 16557, 16560, 1, 0, 0, 0, 16558, 16560, 3, 1826, 913, 0, 16559, 16550, 1, 0, 0, 0, 16559, 16554, 1, 0, 0, 0, 16559, 16558, 1, 0, 0, 0, 16559, 16560, 1, 0, 0, 0, 16560, 1825, 1, 0, 0, 0, 16561, 16562, 7, 202, 0, 0, 16562, 16563, 3, 2262, 1131, 0, 16563, 1827, 1, 0, 0, 0, 16564, 16572, 3, 2026, 1013, 0, 16565, 16572, 3, 2038, 1019, 0, 16566, 16572, 3, 1862, 931, 0, 16567, 16572, 3, 2000, 1000, 0, 16568, 16572, 3, 2006, 1003, 0, 16569, 16572, 3, 2008, 1004, 0, 16570, 16572, 3, 1858, 929, 0, 16571, 16564, 1, 0, 0, 0, 16571, 16565, 1, 0, 0, 0, 16571, 16566, 1, 0, 0, 0, 16571, 16567, 1, 0, 0, 0, 16571, 16568, 1, 0, 0, 0, 16571, 16569, 1, 0, 0, 0, 16571, 16570, 1, 0, 0, 0, 16572, 1829, 1, 0, 0, 0, 16573, 16578, 3, 1832, 916, 0, 16574, 16578, 3, 1834, 917, 0, 16575, 16578, 3, 1836, 918, 0, 16576, 16578, 3, 1840, 920, 0, 16577, 16573, 1, 0, 0, 0, 16577, 16574, 1, 0, 0, 0, 16577, 16575, 1, 0, 0, 0, 16577, 16576, 1, 0, 0, 0, 16578, 1831, 1, 0, 0, 0, 16579, 16580, 5, 218, 0, 0, 16580, 16581, 3, 2318, 1159, 0, 16581, 1833, 1, 0, 0, 0, 16582, 16583, 5, 1262, 0, 0, 16583, 16589, 3, 2318, 1159, 0, 16584, 16586, 5, 2445, 0, 0, 16585, 16587, 3, 2068, 1034, 0, 16586, 16585, 1, 0, 0, 0, 16586, 16587, 1, 0, 0, 0, 16587, 16588, 1, 0, 0, 0, 16588, 16590, 5, 2446, 0, 0, 16589, 16584, 1, 0, 0, 0, 16589, 16590, 1, 0, 0, 0, 16590, 1835, 1, 0, 0, 0, 16591, 16592, 5, 584, 0, 0, 16592, 16620, 3, 2318, 1159, 0, 16593, 16594, 5, 777, 0, 0, 16594, 16599, 3, 1838, 919, 0, 16595, 16596, 5, 2451, 0, 0, 16596, 16598, 3, 1838, 919, 0, 16597, 16595, 1, 0, 0, 0, 16598, 16601, 1, 0, 0, 0, 16599, 16597, 1, 0, 0, 0, 16599, 16600, 1, 0, 0, 0, 16600, 16621, 1, 0, 0, 0, 16601, 16599, 1, 0, 0, 0, 16602, 16603, 5, 159, 0, 0, 16603, 16604, 5, 233, 0, 0, 16604, 16605, 5, 777, 0, 0, 16605, 16610, 3, 1838, 919, 0, 16606, 16607, 5, 2451, 0, 0, 16607, 16609, 3, 1838, 919, 0, 16608, 16606, 1, 0, 0, 0, 16609, 16612, 1, 0, 0, 0, 16610, 16608, 1, 0, 0, 0, 16610, 16611, 1, 0, 0, 0, 16611, 16618, 1, 0, 0, 0, 16612, 16610, 1, 0, 0, 0, 16613, 16616, 5, 856, 0, 0, 16614, 16617, 3, 2384, 1192, 0, 16615, 16617, 3, 1838, 919, 0, 16616, 16614, 1, 0, 0, 0, 16616, 16615, 1, 0, 0, 0, 16617, 16619, 1, 0, 0, 0, 16618, 16613, 1, 0, 0, 0, 16618, 16619, 1, 0, 0, 0, 16619, 16621, 1, 0, 0, 0, 16620, 16593, 1, 0, 0, 0, 16620, 16602, 1, 0, 0, 0, 16621, 1837, 1, 0, 0, 0, 16622, 16625, 3, 2314, 1157, 0, 16623, 16625, 3, 2110, 1055, 0, 16624, 16622, 1, 0, 0, 0, 16624, 16623, 1, 0, 0, 0, 16625, 1839, 1, 0, 0, 0, 16626, 16627, 5, 1262, 0, 0, 16627, 16628, 3, 2314, 1157, 0, 16628, 16631, 5, 618, 0, 0, 16629, 16632, 3, 1862, 931, 0, 16630, 16632, 3, 2070, 1035, 0, 16631, 16629, 1, 0, 0, 0, 16631, 16630, 1, 0, 0, 0, 16632, 16634, 1, 0, 0, 0, 16633, 16635, 3, 2200, 1100, 0, 16634, 16633, 1, 0, 0, 0, 16634, 16635, 1, 0, 0, 0, 16635, 1841, 1, 0, 0, 0, 16636, 16642, 3, 1844, 922, 0, 16637, 16642, 3, 1846, 923, 0, 16638, 16642, 3, 1848, 924, 0, 16639, 16642, 3, 1852, 926, 0, 16640, 16642, 3, 1854, 927, 0, 16641, 16636, 1, 0, 0, 0, 16641, 16637, 1, 0, 0, 0, 16641, 16638, 1, 0, 0, 0, 16641, 16639, 1, 0, 0, 0, 16641, 16640, 1, 0, 0, 0, 16642, 1843, 1, 0, 0, 0, 16643, 16644, 5, 1669, 0, 0, 16644, 16658, 5, 2145, 0, 0, 16645, 16646, 5, 1503, 0, 0, 16646, 16659, 7, 11, 0, 0, 16647, 16648, 5, 785, 0, 0, 16648, 16652, 5, 844, 0, 0, 16649, 16653, 5, 1657, 0, 0, 16650, 16651, 5, 1503, 0, 0, 16651, 16653, 5, 243, 0, 0, 16652, 16649, 1, 0, 0, 0, 16652, 16650, 1, 0, 0, 0, 16653, 16659, 1, 0, 0, 0, 16654, 16655, 5, 2239, 0, 0, 16655, 16656, 5, 1594, 0, 0, 16656, 16657, 5, 1643, 0, 0, 16657, 16659, 3, 2272, 1136, 0, 16658, 16645, 1, 0, 0, 0, 16658, 16647, 1, 0, 0, 0, 16658, 16654, 1, 0, 0, 0, 16658, 16659, 1, 0, 0, 0, 16659, 16662, 1, 0, 0, 0, 16660, 16661, 5, 995, 0, 0, 16661, 16663, 3, 2388, 1194, 0, 16662, 16660, 1, 0, 0, 0, 16662, 16663, 1, 0, 0, 0, 16663, 1845, 1, 0, 0, 0, 16664, 16665, 5, 1669, 0, 0, 16665, 16675, 7, 93, 0, 0, 16666, 16676, 5, 38, 0, 0, 16667, 16672, 3, 2298, 1149, 0, 16668, 16669, 5, 2451, 0, 0, 16669, 16671, 3, 2298, 1149, 0, 16670, 16668, 1, 0, 0, 0, 16671, 16674, 1, 0, 0, 0, 16672, 16670, 1, 0, 0, 0, 16672, 16673, 1, 0, 0, 0, 16673, 16676, 1, 0, 0, 0, 16674, 16672, 1, 0, 0, 0, 16675, 16666, 1, 0, 0, 0, 16675, 16667, 1, 0, 0, 0, 16676, 16677, 1, 0, 0, 0, 16677, 16678, 7, 67, 0, 0, 16678, 1847, 1, 0, 0, 0, 16679, 16681, 5, 242, 0, 0, 16680, 16682, 5, 2307, 0, 0, 16681, 16680, 1, 0, 0, 0, 16681, 16682, 1, 0, 0, 0, 16682, 16684, 1, 0, 0, 0, 16683, 16685, 3, 1850, 925, 0, 16684, 16683, 1, 0, 0, 0, 16684, 16685, 1, 0, 0, 0, 16685, 16702, 1, 0, 0, 0, 16686, 16687, 5, 241, 0, 0, 16687, 16689, 5, 2441, 0, 0, 16688, 16690, 3, 1850, 925, 0, 16689, 16688, 1, 0, 0, 0, 16689, 16690, 1, 0, 0, 0, 16690, 16703, 1, 0, 0, 0, 16691, 16700, 5, 614, 0, 0, 16692, 16695, 5, 2441, 0, 0, 16693, 16694, 5, 2451, 0, 0, 16694, 16696, 3, 2384, 1192, 0, 16695, 16693, 1, 0, 0, 0, 16695, 16696, 1, 0, 0, 0, 16696, 16701, 1, 0, 0, 0, 16697, 16698, 5, 306, 0, 0, 16698, 16701, 5, 2441, 0, 0, 16699, 16701, 5, 305, 0, 0, 16700, 16692, 1, 0, 0, 0, 16700, 16697, 1, 0, 0, 0, 16700, 16699, 1, 0, 0, 0, 16701, 16703, 1, 0, 0, 0, 16702, 16686, 1, 0, 0, 0, 16702, 16691, 1, 0, 0, 0, 16702, 16703, 1, 0, 0, 0, 16703, 1849, 1, 0, 0, 0, 16704, 16709, 5, 2311, 0, 0, 16705, 16708, 7, 203, 0, 0, 16706, 16708, 7, 0, 0, 0, 16707, 16705, 1, 0, 0, 0, 16707, 16706, 1, 0, 0, 0, 16708, 16711, 1, 0, 0, 0, 16709, 16707, 1, 0, 0, 0, 16709, 16710, 1, 0, 0, 0, 16710, 1851, 1, 0, 0, 0, 16711, 16709, 1, 0, 0, 0, 16712, 16714, 5, 1594, 0, 0, 16713, 16715, 5, 2307, 0, 0, 16714, 16713, 1, 0, 0, 0, 16714, 16715, 1, 0, 0, 0, 16715, 16723, 1, 0, 0, 0, 16716, 16718, 5, 2139, 0, 0, 16717, 16719, 5, 1614, 0, 0, 16718, 16717, 1, 0, 0, 0, 16718, 16719, 1, 0, 0, 0, 16719, 16720, 1, 0, 0, 0, 16720, 16724, 3, 2270, 1135, 0, 16721, 16722, 5, 614, 0, 0, 16722, 16724, 3, 2388, 1194, 0, 16723, 16716, 1, 0, 0, 0, 16723, 16721, 1, 0, 0, 0, 16723, 16724, 1, 0, 0, 0, 16724, 1853, 1, 0, 0, 0, 16725, 16726, 5, 1614, 0, 0, 16726, 16727, 3, 2270, 1135, 0, 16727, 1855, 1, 0, 0, 0, 16728, 16729, 3, 2070, 1035, 0, 16729, 16751, 5, 2438, 0, 0, 16730, 16742, 7, 204, 0, 0, 16731, 16732, 5, 2445, 0, 0, 16732, 16737, 3, 2070, 1035, 0, 16733, 16734, 5, 2451, 0, 0, 16734, 16736, 3, 2070, 1035, 0, 16735, 16733, 1, 0, 0, 0, 16736, 16739, 1, 0, 0, 0, 16737, 16735, 1, 0, 0, 0, 16737, 16738, 1, 0, 0, 0, 16738, 16740, 1, 0, 0, 0, 16739, 16737, 1, 0, 0, 0, 16740, 16741, 5, 2446, 0, 0, 16741, 16743, 1, 0, 0, 0, 16742, 16731, 1, 0, 0, 0, 16742, 16743, 1, 0, 0, 0, 16743, 16752, 1, 0, 0, 0, 16744, 16749, 5, 2416, 0, 0, 16745, 16746, 5, 2445, 0, 0, 16746, 16747, 3, 2070, 1035, 0, 16747, 16748, 5, 2446, 0, 0, 16748, 16750, 1, 0, 0, 0, 16749, 16745, 1, 0, 0, 0, 16749, 16750, 1, 0, 0, 0, 16750, 16752, 1, 0, 0, 0, 16751, 16730, 1, 0, 0, 0, 16751, 16744, 1, 0, 0, 0, 16752, 1857, 1, 0, 0, 0, 16753, 16754, 5, 550, 0, 0, 16754, 16759, 5, 1399, 0, 0, 16755, 16756, 5, 1669, 0, 0, 16756, 16757, 5, 1738, 0, 0, 16757, 16758, 5, 2469, 0, 0, 16758, 16760, 3, 2388, 1194, 0, 16759, 16755, 1, 0, 0, 0, 16759, 16760, 1, 0, 0, 0, 16760, 16763, 1, 0, 0, 0, 16761, 16762, 5, 777, 0, 0, 16762, 16764, 3, 2330, 1165, 0, 16763, 16761, 1, 0, 0, 0, 16763, 16764, 1, 0, 0, 0, 16764, 16765, 1, 0, 0, 0, 16765, 16771, 5, 618, 0, 0, 16766, 16772, 3, 1862, 931, 0, 16767, 16772, 3, 2000, 1000, 0, 16768, 16772, 3, 2006, 1003, 0, 16769, 16772, 3, 2008, 1004, 0, 16770, 16772, 3, 2026, 1013, 0, 16771, 16766, 1, 0, 0, 0, 16771, 16767, 1, 0, 0, 0, 16771, 16768, 1, 0, 0, 0, 16771, 16769, 1, 0, 0, 0, 16771, 16770, 1, 0, 0, 0, 16772, 1859, 1, 0, 0, 0, 16773, 16775, 3, 1864, 932, 0, 16774, 16773, 1, 0, 0, 0, 16774, 16775, 1, 0, 0, 0, 16775, 16776, 1, 0, 0, 0, 16776, 16777, 3, 1888, 944, 0, 16777, 1861, 1, 0, 0, 0, 16778, 16785, 3, 1860, 930, 0, 16779, 16784, 3, 1994, 997, 0, 16780, 16784, 3, 1986, 993, 0, 16781, 16784, 3, 1990, 995, 0, 16782, 16784, 3, 1992, 996, 0, 16783, 16779, 1, 0, 0, 0, 16783, 16780, 1, 0, 0, 0, 16783, 16781, 1, 0, 0, 0, 16783, 16782, 1, 0, 0, 0, 16784, 16787, 1, 0, 0, 0, 16785, 16783, 1, 0, 0, 0, 16785, 16786, 1, 0, 0, 0, 16786, 1863, 1, 0, 0, 0, 16787, 16785, 1, 0, 0, 0, 16788, 16793, 5, 2306, 0, 0, 16789, 16792, 3, 176, 88, 0, 16790, 16792, 3, 178, 89, 0, 16791, 16789, 1, 0, 0, 0, 16791, 16790, 1, 0, 0, 0, 16792, 16795, 1, 0, 0, 0, 16793, 16791, 1, 0, 0, 0, 16793, 16794, 1, 0, 0, 0, 16794, 16796, 1, 0, 0, 0, 16795, 16793, 1, 0, 0, 0, 16796, 16801, 3, 1866, 933, 0, 16797, 16798, 5, 2451, 0, 0, 16798, 16800, 3, 1866, 933, 0, 16799, 16797, 1, 0, 0, 0, 16800, 16803, 1, 0, 0, 0, 16801, 16799, 1, 0, 0, 0, 16801, 16802, 1, 0, 0, 0, 16802, 16822, 1, 0, 0, 0, 16803, 16801, 1, 0, 0, 0, 16804, 16807, 5, 2306, 0, 0, 16805, 16808, 3, 176, 88, 0, 16806, 16808, 3, 178, 89, 0, 16807, 16805, 1, 0, 0, 0, 16807, 16806, 1, 0, 0, 0, 16808, 16809, 1, 0, 0, 0, 16809, 16807, 1, 0, 0, 0, 16809, 16810, 1, 0, 0, 0, 16810, 16819, 1, 0, 0, 0, 16811, 16816, 3, 1866, 933, 0, 16812, 16813, 5, 2451, 0, 0, 16813, 16815, 3, 1866, 933, 0, 16814, 16812, 1, 0, 0, 0, 16815, 16818, 1, 0, 0, 0, 16816, 16814, 1, 0, 0, 0, 16816, 16817, 1, 0, 0, 0, 16817, 16820, 1, 0, 0, 0, 16818, 16816, 1, 0, 0, 0, 16819, 16811, 1, 0, 0, 0, 16819, 16820, 1, 0, 0, 0, 16820, 16822, 1, 0, 0, 0, 16821, 16788, 1, 0, 0, 0, 16821, 16804, 1, 0, 0, 0, 16822, 1865, 1, 0, 0, 0, 16823, 16826, 3, 1868, 934, 0, 16824, 16826, 3, 1874, 937, 0, 16825, 16823, 1, 0, 0, 0, 16825, 16824, 1, 0, 0, 0, 16826, 1867, 1, 0, 0, 0, 16827, 16829, 3, 2292, 1146, 0, 16828, 16830, 3, 2348, 1174, 0, 16829, 16828, 1, 0, 0, 0, 16829, 16830, 1, 0, 0, 0, 16830, 16831, 1, 0, 0, 0, 16831, 16832, 5, 69, 0, 0, 16832, 16833, 5, 2445, 0, 0, 16833, 16835, 3, 1888, 944, 0, 16834, 16836, 3, 1986, 993, 0, 16835, 16834, 1, 0, 0, 0, 16835, 16836, 1, 0, 0, 0, 16836, 16837, 1, 0, 0, 0, 16837, 16839, 5, 2446, 0, 0, 16838, 16840, 3, 1870, 935, 0, 16839, 16838, 1, 0, 0, 0, 16839, 16840, 1, 0, 0, 0, 16840, 16842, 1, 0, 0, 0, 16841, 16843, 3, 1872, 936, 0, 16842, 16841, 1, 0, 0, 0, 16842, 16843, 1, 0, 0, 0, 16843, 1869, 1, 0, 0, 0, 16844, 16845, 5, 1633, 0, 0, 16845, 16846, 7, 205, 0, 0, 16846, 16847, 5, 596, 0, 0, 16847, 16848, 5, 160, 0, 0, 16848, 16850, 3, 2328, 1164, 0, 16849, 16851, 5, 70, 0, 0, 16850, 16849, 1, 0, 0, 0, 16850, 16851, 1, 0, 0, 0, 16851, 16853, 1, 0, 0, 0, 16852, 16854, 5, 412, 0, 0, 16853, 16852, 1, 0, 0, 0, 16853, 16854, 1, 0, 0, 0, 16854, 16857, 1, 0, 0, 0, 16855, 16856, 5, 1227, 0, 0, 16856, 16858, 5, 596, 0, 0, 16857, 16855, 1, 0, 0, 0, 16857, 16858, 1, 0, 0, 0, 16858, 16861, 1, 0, 0, 0, 16859, 16860, 5, 1227, 0, 0, 16860, 16862, 5, 823, 0, 0, 16861, 16859, 1, 0, 0, 0, 16861, 16862, 1, 0, 0, 0, 16862, 16881, 1, 0, 0, 0, 16863, 16864, 5, 2451, 0, 0, 16864, 16866, 3, 2328, 1164, 0, 16865, 16867, 5, 70, 0, 0, 16866, 16865, 1, 0, 0, 0, 16866, 16867, 1, 0, 0, 0, 16867, 16869, 1, 0, 0, 0, 16868, 16870, 5, 412, 0, 0, 16869, 16868, 1, 0, 0, 0, 16869, 16870, 1, 0, 0, 0, 16870, 16873, 1, 0, 0, 0, 16871, 16872, 5, 1227, 0, 0, 16872, 16874, 5, 596, 0, 0, 16873, 16871, 1, 0, 0, 0, 16873, 16874, 1, 0, 0, 0, 16874, 16877, 1, 0, 0, 0, 16875, 16876, 5, 1227, 0, 0, 16876, 16878, 5, 823, 0, 0, 16877, 16875, 1, 0, 0, 0, 16877, 16878, 1, 0, 0, 0, 16878, 16880, 1, 0, 0, 0, 16879, 16863, 1, 0, 0, 0, 16880, 16883, 1, 0, 0, 0, 16881, 16879, 1, 0, 0, 0, 16881, 16882, 1, 0, 0, 0, 16882, 16884, 1, 0, 0, 0, 16883, 16881, 1, 0, 0, 0, 16884, 16885, 5, 1669, 0, 0, 16885, 16886, 3, 2328, 1164, 0, 16886, 1871, 1, 0, 0, 0, 16887, 16888, 5, 346, 0, 0, 16888, 16889, 3, 2346, 1173, 0, 16889, 16890, 5, 1669, 0, 0, 16890, 16891, 3, 2328, 1164, 0, 16891, 16892, 5, 2139, 0, 0, 16892, 16893, 3, 2070, 1035, 0, 16893, 16894, 5, 387, 0, 0, 16894, 16895, 3, 2070, 1035, 0, 16895, 1873, 1, 0, 0, 0, 16896, 16897, 3, 2392, 1196, 0, 16897, 16898, 5, 45, 0, 0, 16898, 16899, 5, 2284, 0, 0, 16899, 16900, 5, 69, 0, 0, 16900, 16901, 5, 2445, 0, 0, 16901, 16902, 3, 1876, 938, 0, 16902, 16903, 5, 2446, 0, 0, 16903, 1875, 1, 0, 0, 0, 16904, 16905, 5, 2244, 0, 0, 16905, 16907, 3, 738, 369, 0, 16906, 16908, 3, 1878, 939, 0, 16907, 16906, 1, 0, 0, 0, 16907, 16908, 1, 0, 0, 0, 16908, 16910, 1, 0, 0, 0, 16909, 16911, 3, 1880, 940, 0, 16910, 16909, 1, 0, 0, 0, 16910, 16911, 1, 0, 0, 0, 16911, 16913, 1, 0, 0, 0, 16912, 16914, 3, 1884, 942, 0, 16913, 16912, 1, 0, 0, 0, 16913, 16914, 1, 0, 0, 0, 16914, 1877, 1, 0, 0, 0, 16915, 16916, 5, 671, 0, 0, 16916, 16917, 5, 2445, 0, 0, 16917, 16922, 3, 738, 369, 0, 16918, 16919, 5, 2451, 0, 0, 16919, 16921, 3, 738, 369, 0, 16920, 16918, 1, 0, 0, 0, 16921, 16924, 1, 0, 0, 0, 16922, 16920, 1, 0, 0, 0, 16922, 16923, 1, 0, 0, 0, 16923, 16925, 1, 0, 0, 0, 16924, 16922, 1, 0, 0, 0, 16925, 16926, 5, 2446, 0, 0, 16926, 1879, 1, 0, 0, 0, 16927, 16928, 5, 592, 0, 0, 16928, 16929, 5, 565, 0, 0, 16929, 16930, 5, 2445, 0, 0, 16930, 16935, 3, 1882, 941, 0, 16931, 16932, 5, 2451, 0, 0, 16932, 16934, 3, 1882, 941, 0, 16933, 16931, 1, 0, 0, 0, 16934, 16937, 1, 0, 0, 0, 16935, 16933, 1, 0, 0, 0, 16935, 16936, 1, 0, 0, 0, 16936, 16938, 1, 0, 0, 0, 16937, 16935, 1, 0, 0, 0, 16938, 16939, 5, 2446, 0, 0, 16939, 1881, 1, 0, 0, 0, 16940, 16943, 5, 932, 0, 0, 16941, 16943, 3, 738, 369, 0, 16942, 16940, 1, 0, 0, 0, 16942, 16941, 1, 0, 0, 0, 16943, 16944, 1, 0, 0, 0, 16944, 16945, 5, 2139, 0, 0, 16945, 16946, 3, 2066, 1033, 0, 16946, 1883, 1, 0, 0, 0, 16947, 16948, 5, 21, 0, 0, 16948, 16949, 5, 932, 0, 0, 16949, 16950, 5, 2445, 0, 0, 16950, 16955, 3, 1886, 943, 0, 16951, 16952, 5, 2451, 0, 0, 16952, 16954, 3, 1886, 943, 0, 16953, 16951, 1, 0, 0, 0, 16954, 16957, 1, 0, 0, 0, 16955, 16953, 1, 0, 0, 0, 16955, 16956, 1, 0, 0, 0, 16956, 16958, 1, 0, 0, 0, 16957, 16955, 1, 0, 0, 0, 16958, 16959, 5, 2446, 0, 0, 16959, 1885, 1, 0, 0, 0, 16960, 16961, 3, 2392, 1196, 0, 16961, 16962, 5, 69, 0, 0, 16962, 16963, 5, 2445, 0, 0, 16963, 16964, 3, 2070, 1035, 0, 16964, 16965, 5, 2446, 0, 0, 16965, 1887, 1, 0, 0, 0, 16966, 16970, 3, 1890, 945, 0, 16967, 16969, 3, 1892, 946, 0, 16968, 16967, 1, 0, 0, 0, 16969, 16972, 1, 0, 0, 0, 16970, 16968, 1, 0, 0, 0, 16970, 16971, 1, 0, 0, 0, 16971, 1889, 1, 0, 0, 0, 16972, 16970, 1, 0, 0, 0, 16973, 16979, 3, 1894, 947, 0, 16974, 16975, 5, 2445, 0, 0, 16975, 16976, 3, 1888, 944, 0, 16976, 16977, 5, 2446, 0, 0, 16977, 16979, 1, 0, 0, 0, 16978, 16973, 1, 0, 0, 0, 16978, 16974, 1, 0, 0, 0, 16979, 1891, 1, 0, 0, 0, 16980, 16982, 5, 2179, 0, 0, 16981, 16983, 5, 38, 0, 0, 16982, 16981, 1, 0, 0, 0, 16982, 16983, 1, 0, 0, 0, 16983, 16987, 1, 0, 0, 0, 16984, 16987, 5, 773, 0, 0, 16985, 16987, 5, 954, 0, 0, 16986, 16980, 1, 0, 0, 0, 16986, 16984, 1, 0, 0, 0, 16986, 16985, 1, 0, 0, 0, 16987, 16988, 1, 0, 0, 0, 16988, 16989, 3, 1890, 945, 0, 16989, 1893, 1, 0, 0, 0, 16990, 16992, 5, 1645, 0, 0, 16991, 16993, 7, 206, 0, 0, 16992, 16991, 1, 0, 0, 0, 16992, 16993, 1, 0, 0, 0, 16993, 16994, 1, 0, 0, 0, 16994, 16996, 3, 1896, 948, 0, 16995, 16997, 3, 2262, 1131, 0, 16996, 16995, 1, 0, 0, 0, 16996, 16997, 1, 0, 0, 0, 16997, 16999, 1, 0, 0, 0, 16998, 17000, 3, 1898, 949, 0, 16999, 16998, 1, 0, 0, 0, 16999, 17000, 1, 0, 0, 0, 17000, 17002, 1, 0, 0, 0, 17001, 17003, 3, 2260, 1130, 0, 17002, 17001, 1, 0, 0, 0, 17002, 17003, 1, 0, 0, 0, 17003, 17008, 1, 0, 0, 0, 17004, 17007, 3, 1940, 970, 0, 17005, 17007, 3, 1944, 972, 0, 17006, 17004, 1, 0, 0, 0, 17006, 17005, 1, 0, 0, 0, 17007, 17010, 1, 0, 0, 0, 17008, 17006, 1, 0, 0, 0, 17008, 17009, 1, 0, 0, 0, 17009, 17012, 1, 0, 0, 0, 17010, 17008, 1, 0, 0, 0, 17011, 17013, 3, 1956, 978, 0, 17012, 17011, 1, 0, 0, 0, 17012, 17013, 1, 0, 0, 0, 17013, 17015, 1, 0, 0, 0, 17014, 17016, 3, 1986, 993, 0, 17015, 17014, 1, 0, 0, 0, 17015, 17016, 1, 0, 0, 0, 17016, 17018, 1, 0, 0, 0, 17017, 17019, 3, 1990, 995, 0, 17018, 17017, 1, 0, 0, 0, 17018, 17019, 1, 0, 0, 0, 17019, 17021, 1, 0, 0, 0, 17020, 17022, 3, 1992, 996, 0, 17021, 17020, 1, 0, 0, 0, 17021, 17022, 1, 0, 0, 0, 17022, 1895, 1, 0, 0, 0, 17023, 17033, 5, 2448, 0, 0, 17024, 17029, 3, 1900, 950, 0, 17025, 17026, 5, 2451, 0, 0, 17026, 17028, 3, 1900, 950, 0, 17027, 17025, 1, 0, 0, 0, 17028, 17031, 1, 0, 0, 0, 17029, 17027, 1, 0, 0, 0, 17029, 17030, 1, 0, 0, 0, 17030, 17033, 1, 0, 0, 0, 17031, 17029, 1, 0, 0, 0, 17032, 17023, 1, 0, 0, 0, 17032, 17024, 1, 0, 0, 0, 17033, 1897, 1, 0, 0, 0, 17034, 17035, 5, 626, 0, 0, 17035, 17036, 3, 1902, 951, 0, 17036, 1899, 1, 0, 0, 0, 17037, 17038, 3, 2330, 1165, 0, 17038, 17039, 5, 2438, 0, 0, 17039, 17040, 5, 2448, 0, 0, 17040, 17046, 1, 0, 0, 0, 17041, 17043, 3, 2070, 1035, 0, 17042, 17044, 3, 2256, 1128, 0, 17043, 17042, 1, 0, 0, 0, 17043, 17044, 1, 0, 0, 0, 17044, 17046, 1, 0, 0, 0, 17045, 17037, 1, 0, 0, 0, 17045, 17041, 1, 0, 0, 0, 17046, 1901, 1, 0, 0, 0, 17047, 17052, 3, 1904, 952, 0, 17048, 17049, 5, 2451, 0, 0, 17049, 17051, 3, 1904, 952, 0, 17050, 17048, 1, 0, 0, 0, 17051, 17054, 1, 0, 0, 0, 17052, 17050, 1, 0, 0, 0, 17052, 17053, 1, 0, 0, 0, 17053, 1903, 1, 0, 0, 0, 17054, 17052, 1, 0, 0, 0, 17055, 17059, 3, 1906, 953, 0, 17056, 17058, 3, 1910, 955, 0, 17057, 17056, 1, 0, 0, 0, 17058, 17061, 1, 0, 0, 0, 17059, 17057, 1, 0, 0, 0, 17059, 17060, 1, 0, 0, 0, 17060, 17064, 1, 0, 0, 0, 17061, 17059, 1, 0, 0, 0, 17062, 17065, 3, 1922, 961, 0, 17063, 17065, 3, 1934, 967, 0, 17064, 17062, 1, 0, 0, 0, 17064, 17063, 1, 0, 0, 0, 17064, 17065, 1, 0, 0, 0, 17065, 1905, 1, 0, 0, 0, 17066, 17070, 3, 1908, 954, 0, 17067, 17069, 3, 1920, 960, 0, 17068, 17067, 1, 0, 0, 0, 17069, 17072, 1, 0, 0, 0, 17070, 17068, 1, 0, 0, 0, 17070, 17071, 1, 0, 0, 0, 17071, 17074, 1, 0, 0, 0, 17072, 17070, 1, 0, 0, 0, 17073, 17075, 3, 2258, 1129, 0, 17074, 17073, 1, 0, 0, 0, 17074, 17075, 1, 0, 0, 0, 17075, 1907, 1, 0, 0, 0, 17076, 17079, 3, 2056, 1028, 0, 17077, 17080, 3, 1922, 961, 0, 17078, 17080, 3, 1934, 967, 0, 17079, 17077, 1, 0, 0, 0, 17079, 17078, 1, 0, 0, 0, 17079, 17080, 1, 0, 0, 0, 17080, 17100, 1, 0, 0, 0, 17081, 17082, 5, 2445, 0, 0, 17082, 17086, 3, 1904, 952, 0, 17083, 17085, 3, 1892, 946, 0, 17084, 17083, 1, 0, 0, 0, 17085, 17088, 1, 0, 0, 0, 17086, 17084, 1, 0, 0, 0, 17086, 17087, 1, 0, 0, 0, 17087, 17089, 1, 0, 0, 0, 17088, 17086, 1, 0, 0, 0, 17089, 17092, 5, 2446, 0, 0, 17090, 17093, 3, 1922, 961, 0, 17091, 17093, 3, 1934, 967, 0, 17092, 17090, 1, 0, 0, 0, 17092, 17091, 1, 0, 0, 0, 17092, 17093, 1, 0, 0, 0, 17093, 17100, 1, 0, 0, 0, 17094, 17095, 5, 1256, 0, 0, 17095, 17096, 5, 2445, 0, 0, 17096, 17097, 3, 2056, 1028, 0, 17097, 17098, 5, 2446, 0, 0, 17098, 17100, 1, 0, 0, 0, 17099, 17076, 1, 0, 0, 0, 17099, 17081, 1, 0, 0, 0, 17099, 17094, 1, 0, 0, 0, 17100, 1909, 1, 0, 0, 0, 17101, 17103, 3, 1918, 959, 0, 17102, 17101, 1, 0, 0, 0, 17102, 17103, 1, 0, 0, 0, 17103, 17105, 1, 0, 0, 0, 17104, 17106, 7, 207, 0, 0, 17105, 17104, 1, 0, 0, 0, 17105, 17106, 1, 0, 0, 0, 17106, 17109, 1, 0, 0, 0, 17107, 17110, 5, 747, 0, 0, 17108, 17110, 3, 1916, 958, 0, 17109, 17107, 1, 0, 0, 0, 17109, 17108, 1, 0, 0, 0, 17109, 17110, 1, 0, 0, 0, 17110, 17111, 1, 0, 0, 0, 17111, 17112, 5, 792, 0, 0, 17112, 17114, 3, 1906, 953, 0, 17113, 17115, 3, 1918, 959, 0, 17114, 17113, 1, 0, 0, 0, 17114, 17115, 1, 0, 0, 0, 17115, 17120, 1, 0, 0, 0, 17116, 17119, 3, 1912, 956, 0, 17117, 17119, 3, 1914, 957, 0, 17118, 17116, 1, 0, 0, 0, 17118, 17117, 1, 0, 0, 0, 17119, 17122, 1, 0, 0, 0, 17120, 17118, 1, 0, 0, 0, 17120, 17121, 1, 0, 0, 0, 17121, 17127, 1, 0, 0, 0, 17122, 17120, 1, 0, 0, 0, 17123, 17124, 7, 208, 0, 0, 17124, 17125, 5, 61, 0, 0, 17125, 17127, 3, 1906, 953, 0, 17126, 17102, 1, 0, 0, 0, 17126, 17123, 1, 0, 0, 0, 17127, 1911, 1, 0, 0, 0, 17128, 17129, 5, 1257, 0, 0, 17129, 17130, 3, 2066, 1033, 0, 17130, 1913, 1, 0, 0, 0, 17131, 17132, 5, 2244, 0, 0, 17132, 17133, 3, 2348, 1174, 0, 17133, 1915, 1, 0, 0, 0, 17134, 17136, 7, 209, 0, 0, 17135, 17137, 5, 1311, 0, 0, 17136, 17135, 1, 0, 0, 0, 17136, 17137, 1, 0, 0, 0, 17137, 1917, 1, 0, 0, 0, 17138, 17139, 5, 1346, 0, 0, 17139, 17147, 5, 160, 0, 0, 17140, 17143, 5, 2445, 0, 0, 17141, 17144, 3, 1888, 944, 0, 17142, 17144, 3, 2068, 1034, 0, 17143, 17141, 1, 0, 0, 0, 17143, 17142, 1, 0, 0, 0, 17143, 17144, 1, 0, 0, 0, 17144, 17145, 1, 0, 0, 0, 17145, 17148, 5, 2446, 0, 0, 17146, 17148, 3, 2068, 1034, 0, 17147, 17140, 1, 0, 0, 0, 17147, 17146, 1, 0, 0, 0, 17148, 1919, 1, 0, 0, 0, 17149, 17157, 5, 2281, 0, 0, 17150, 17151, 5, 1384, 0, 0, 17151, 17152, 5, 618, 0, 0, 17152, 17153, 3, 2328, 1164, 0, 17153, 17154, 5, 118, 0, 0, 17154, 17158, 1, 0, 0, 0, 17155, 17156, 5, 118, 0, 0, 17156, 17158, 7, 81, 0, 0, 17157, 17150, 1, 0, 0, 0, 17157, 17155, 1, 0, 0, 0, 17158, 17159, 1, 0, 0, 0, 17159, 17160, 3, 2070, 1035, 0, 17160, 17161, 5, 49, 0, 0, 17161, 17162, 3, 2070, 1035, 0, 17162, 17175, 1, 0, 0, 0, 17163, 17164, 5, 69, 0, 0, 17164, 17172, 5, 1244, 0, 0, 17165, 17166, 7, 210, 0, 0, 17166, 17173, 3, 2070, 1035, 0, 17167, 17168, 5, 1384, 0, 0, 17168, 17169, 5, 618, 0, 0, 17169, 17170, 3, 2328, 1164, 0, 17170, 17171, 3, 2070, 1035, 0, 17171, 17173, 1, 0, 0, 0, 17172, 17165, 1, 0, 0, 0, 17172, 17167, 1, 0, 0, 0, 17173, 17175, 1, 0, 0, 0, 17174, 17149, 1, 0, 0, 0, 17174, 17163, 1, 0, 0, 0, 17175, 1921, 1, 0, 0, 0, 17176, 17178, 5, 1395, 0, 0, 17177, 17179, 5, 2350, 0, 0, 17178, 17177, 1, 0, 0, 0, 17178, 17179, 1, 0, 0, 0, 17179, 17180, 1, 0, 0, 0, 17180, 17181, 5, 2445, 0, 0, 17181, 17186, 3, 1924, 962, 0, 17182, 17183, 5, 2451, 0, 0, 17183, 17185, 3, 1924, 962, 0, 17184, 17182, 1, 0, 0, 0, 17185, 17188, 1, 0, 0, 0, 17186, 17184, 1, 0, 0, 0, 17186, 17187, 1, 0, 0, 0, 17187, 17189, 1, 0, 0, 0, 17188, 17186, 1, 0, 0, 0, 17189, 17190, 3, 1926, 963, 0, 17190, 17191, 3, 1928, 964, 0, 17191, 17193, 5, 2446, 0, 0, 17192, 17194, 3, 2258, 1129, 0, 17193, 17192, 1, 0, 0, 0, 17193, 17194, 1, 0, 0, 0, 17194, 1923, 1, 0, 0, 0, 17195, 17202, 3, 2180, 1090, 0, 17196, 17197, 3, 2290, 1145, 0, 17197, 17198, 5, 2445, 0, 0, 17198, 17199, 3, 2070, 1035, 0, 17199, 17200, 5, 2446, 0, 0, 17200, 17202, 1, 0, 0, 0, 17201, 17195, 1, 0, 0, 0, 17201, 17196, 1, 0, 0, 0, 17202, 17204, 1, 0, 0, 0, 17203, 17205, 3, 2256, 1128, 0, 17204, 17203, 1, 0, 0, 0, 17204, 17205, 1, 0, 0, 0, 17205, 1925, 1, 0, 0, 0, 17206, 17209, 5, 618, 0, 0, 17207, 17210, 3, 2328, 1164, 0, 17208, 17210, 3, 2348, 1174, 0, 17209, 17207, 1, 0, 0, 0, 17209, 17208, 1, 0, 0, 0, 17210, 1927, 1, 0, 0, 0, 17211, 17212, 5, 736, 0, 0, 17212, 17230, 5, 2445, 0, 0, 17213, 17231, 3, 1888, 944, 0, 17214, 17219, 5, 55, 0, 0, 17215, 17216, 5, 2451, 0, 0, 17216, 17218, 5, 55, 0, 0, 17217, 17215, 1, 0, 0, 0, 17218, 17221, 1, 0, 0, 0, 17219, 17217, 1, 0, 0, 0, 17219, 17220, 1, 0, 0, 0, 17220, 17231, 1, 0, 0, 0, 17221, 17219, 1, 0, 0, 0, 17222, 17227, 3, 1930, 965, 0, 17223, 17224, 5, 2451, 0, 0, 17224, 17226, 3, 1930, 965, 0, 17225, 17223, 1, 0, 0, 0, 17226, 17229, 1, 0, 0, 0, 17227, 17225, 1, 0, 0, 0, 17227, 17228, 1, 0, 0, 0, 17228, 17231, 1, 0, 0, 0, 17229, 17227, 1, 0, 0, 0, 17230, 17213, 1, 0, 0, 0, 17230, 17214, 1, 0, 0, 0, 17230, 17222, 1, 0, 0, 0, 17231, 17232, 1, 0, 0, 0, 17232, 17233, 5, 2446, 0, 0, 17233, 1929, 1, 0, 0, 0, 17234, 17236, 3, 1932, 966, 0, 17235, 17237, 3, 2256, 1128, 0, 17236, 17235, 1, 0, 0, 0, 17236, 17237, 1, 0, 0, 0, 17237, 1931, 1, 0, 0, 0, 17238, 17245, 3, 2070, 1035, 0, 17239, 17241, 5, 2445, 0, 0, 17240, 17242, 3, 2068, 1034, 0, 17241, 17240, 1, 0, 0, 0, 17241, 17242, 1, 0, 0, 0, 17242, 17243, 1, 0, 0, 0, 17243, 17245, 5, 2446, 0, 0, 17244, 17238, 1, 0, 0, 0, 17244, 17239, 1, 0, 0, 0, 17245, 1933, 1, 0, 0, 0, 17246, 17249, 5, 2192, 0, 0, 17247, 17248, 7, 211, 0, 0, 17248, 17250, 5, 1227, 0, 0, 17249, 17247, 1, 0, 0, 0, 17249, 17250, 1, 0, 0, 0, 17250, 17251, 1, 0, 0, 0, 17251, 17254, 5, 2445, 0, 0, 17252, 17255, 3, 2328, 1164, 0, 17253, 17255, 3, 2348, 1174, 0, 17254, 17252, 1, 0, 0, 0, 17254, 17253, 1, 0, 0, 0, 17255, 17256, 1, 0, 0, 0, 17256, 17257, 3, 1926, 963, 0, 17257, 17258, 3, 1936, 968, 0, 17258, 17260, 5, 2446, 0, 0, 17259, 17261, 3, 2258, 1129, 0, 17260, 17259, 1, 0, 0, 0, 17260, 17261, 1, 0, 0, 0, 17261, 1935, 1, 0, 0, 0, 17262, 17263, 5, 736, 0, 0, 17263, 17264, 5, 2445, 0, 0, 17264, 17269, 3, 1938, 969, 0, 17265, 17266, 5, 2451, 0, 0, 17266, 17268, 3, 1938, 969, 0, 17267, 17265, 1, 0, 0, 0, 17268, 17271, 1, 0, 0, 0, 17269, 17267, 1, 0, 0, 0, 17269, 17270, 1, 0, 0, 0, 17270, 17272, 1, 0, 0, 0, 17271, 17269, 1, 0, 0, 0, 17272, 17273, 5, 2446, 0, 0, 17273, 1937, 1, 0, 0, 0, 17274, 17277, 3, 2328, 1164, 0, 17275, 17277, 3, 2348, 1174, 0, 17276, 17274, 1, 0, 0, 0, 17276, 17275, 1, 0, 0, 0, 17277, 17293, 1, 0, 0, 0, 17278, 17291, 5, 69, 0, 0, 17279, 17292, 3, 2382, 1191, 0, 17280, 17281, 5, 2445, 0, 0, 17281, 17286, 3, 2382, 1191, 0, 17282, 17283, 5, 2451, 0, 0, 17283, 17285, 3, 2382, 1191, 0, 17284, 17282, 1, 0, 0, 0, 17285, 17288, 1, 0, 0, 0, 17286, 17284, 1, 0, 0, 0, 17286, 17287, 1, 0, 0, 0, 17287, 17289, 1, 0, 0, 0, 17288, 17286, 1, 0, 0, 0, 17289, 17290, 5, 2446, 0, 0, 17290, 17292, 1, 0, 0, 0, 17291, 17279, 1, 0, 0, 0, 17291, 17280, 1, 0, 0, 0, 17292, 17294, 1, 0, 0, 0, 17293, 17278, 1, 0, 0, 0, 17293, 17294, 1, 0, 0, 0, 17294, 1939, 1, 0, 0, 0, 17295, 17296, 5, 278, 0, 0, 17296, 17298, 5, 160, 0, 0, 17297, 17299, 5, 1082, 0, 0, 17298, 17297, 1, 0, 0, 0, 17298, 17299, 1, 0, 0, 0, 17299, 17300, 1, 0, 0, 0, 17300, 17302, 3, 2066, 1033, 0, 17301, 17303, 3, 1942, 971, 0, 17302, 17301, 1, 0, 0, 0, 17302, 17303, 1, 0, 0, 0, 17303, 17313, 1, 0, 0, 0, 17304, 17305, 3, 1942, 971, 0, 17305, 17306, 5, 278, 0, 0, 17306, 17308, 5, 160, 0, 0, 17307, 17309, 5, 1082, 0, 0, 17308, 17307, 1, 0, 0, 0, 17308, 17309, 1, 0, 0, 0, 17309, 17310, 1, 0, 0, 0, 17310, 17311, 3, 2066, 1033, 0, 17311, 17313, 1, 0, 0, 0, 17312, 17295, 1, 0, 0, 0, 17312, 17304, 1, 0, 0, 0, 17313, 1941, 1, 0, 0, 0, 17314, 17315, 5, 1735, 0, 0, 17315, 17316, 5, 2306, 0, 0, 17316, 17317, 3, 2066, 1033, 0, 17317, 1943, 1, 0, 0, 0, 17318, 17319, 5, 647, 0, 0, 17319, 17320, 5, 160, 0, 0, 17320, 17325, 3, 1946, 973, 0, 17321, 17322, 5, 2451, 0, 0, 17322, 17324, 3, 1946, 973, 0, 17323, 17321, 1, 0, 0, 0, 17324, 17327, 1, 0, 0, 0, 17325, 17323, 1, 0, 0, 0, 17325, 17326, 1, 0, 0, 0, 17326, 17329, 1, 0, 0, 0, 17327, 17325, 1, 0, 0, 0, 17328, 17330, 3, 1954, 977, 0, 17329, 17328, 1, 0, 0, 0, 17329, 17330, 1, 0, 0, 0, 17330, 17345, 1, 0, 0, 0, 17331, 17342, 3, 1954, 977, 0, 17332, 17333, 5, 647, 0, 0, 17333, 17334, 5, 160, 0, 0, 17334, 17339, 3, 1946, 973, 0, 17335, 17336, 5, 2451, 0, 0, 17336, 17338, 3, 1946, 973, 0, 17337, 17335, 1, 0, 0, 0, 17338, 17341, 1, 0, 0, 0, 17339, 17337, 1, 0, 0, 0, 17339, 17340, 1, 0, 0, 0, 17340, 17343, 1, 0, 0, 0, 17341, 17339, 1, 0, 0, 0, 17342, 17332, 1, 0, 0, 0, 17342, 17343, 1, 0, 0, 0, 17343, 17345, 1, 0, 0, 0, 17344, 17318, 1, 0, 0, 0, 17344, 17331, 1, 0, 0, 0, 17345, 1945, 1, 0, 0, 0, 17346, 17350, 3, 1950, 975, 0, 17347, 17350, 3, 1948, 974, 0, 17348, 17350, 3, 2070, 1035, 0, 17349, 17346, 1, 0, 0, 0, 17349, 17347, 1, 0, 0, 0, 17349, 17348, 1, 0, 0, 0, 17350, 1947, 1, 0, 0, 0, 17351, 17352, 7, 212, 0, 0, 17352, 17353, 5, 2445, 0, 0, 17353, 17358, 3, 1952, 976, 0, 17354, 17355, 5, 2451, 0, 0, 17355, 17357, 3, 1952, 976, 0, 17356, 17354, 1, 0, 0, 0, 17357, 17360, 1, 0, 0, 0, 17358, 17356, 1, 0, 0, 0, 17358, 17359, 1, 0, 0, 0, 17359, 17361, 1, 0, 0, 0, 17360, 17358, 1, 0, 0, 0, 17361, 17362, 5, 2446, 0, 0, 17362, 1949, 1, 0, 0, 0, 17363, 17364, 5, 649, 0, 0, 17364, 17365, 5, 1670, 0, 0, 17365, 17366, 5, 2445, 0, 0, 17366, 17371, 3, 1952, 976, 0, 17367, 17368, 5, 2451, 0, 0, 17368, 17370, 3, 1952, 976, 0, 17369, 17367, 1, 0, 0, 0, 17370, 17373, 1, 0, 0, 0, 17371, 17369, 1, 0, 0, 0, 17371, 17372, 1, 0, 0, 0, 17372, 17374, 1, 0, 0, 0, 17373, 17371, 1, 0, 0, 0, 17374, 17375, 5, 2446, 0, 0, 17375, 1951, 1, 0, 0, 0, 17376, 17384, 3, 1948, 974, 0, 17377, 17379, 5, 2445, 0, 0, 17378, 17380, 3, 2068, 1034, 0, 17379, 17378, 1, 0, 0, 0, 17379, 17380, 1, 0, 0, 0, 17380, 17381, 1, 0, 0, 0, 17381, 17384, 5, 2446, 0, 0, 17382, 17384, 3, 2070, 1035, 0, 17383, 17376, 1, 0, 0, 0, 17383, 17377, 1, 0, 0, 0, 17383, 17382, 1, 0, 0, 0, 17384, 1953, 1, 0, 0, 0, 17385, 17386, 5, 661, 0, 0, 17386, 17387, 3, 2066, 1033, 0, 17387, 1955, 1, 0, 0, 0, 17388, 17392, 5, 969, 0, 0, 17389, 17391, 3, 1958, 979, 0, 17390, 17389, 1, 0, 0, 0, 17391, 17394, 1, 0, 0, 0, 17392, 17390, 1, 0, 0, 0, 17392, 17393, 1, 0, 0, 0, 17393, 17396, 1, 0, 0, 0, 17394, 17392, 1, 0, 0, 0, 17395, 17397, 3, 1960, 980, 0, 17396, 17395, 1, 0, 0, 0, 17396, 17397, 1, 0, 0, 0, 17397, 17401, 1, 0, 0, 0, 17398, 17400, 3, 1962, 981, 0, 17399, 17398, 1, 0, 0, 0, 17400, 17403, 1, 0, 0, 0, 17401, 17399, 1, 0, 0, 0, 17401, 17402, 1, 0, 0, 0, 17402, 17404, 1, 0, 0, 0, 17403, 17401, 1, 0, 0, 0, 17404, 17405, 3, 1964, 982, 0, 17405, 1957, 1, 0, 0, 0, 17406, 17407, 7, 213, 0, 0, 17407, 17415, 5, 1004, 0, 0, 17408, 17412, 5, 2181, 0, 0, 17409, 17413, 5, 420, 0, 0, 17410, 17411, 5, 1693, 0, 0, 17411, 17413, 5, 1525, 0, 0, 17412, 17409, 1, 0, 0, 0, 17412, 17410, 1, 0, 0, 0, 17413, 17415, 1, 0, 0, 0, 17414, 17406, 1, 0, 0, 0, 17414, 17408, 1, 0, 0, 0, 17415, 1959, 1, 0, 0, 0, 17416, 17417, 5, 1584, 0, 0, 17417, 17418, 7, 214, 0, 0, 17418, 17419, 5, 1605, 0, 0, 17419, 1961, 1, 0, 0, 0, 17420, 17421, 5, 1525, 0, 0, 17421, 17422, 3, 2284, 1142, 0, 17422, 17423, 5, 1257, 0, 0, 17423, 17424, 5, 2445, 0, 0, 17424, 17425, 3, 1888, 944, 0, 17425, 17426, 5, 2446, 0, 0, 17426, 17430, 3, 1966, 983, 0, 17427, 17429, 3, 1958, 979, 0, 17428, 17427, 1, 0, 0, 0, 17429, 17432, 1, 0, 0, 0, 17430, 17428, 1, 0, 0, 0, 17430, 17431, 1, 0, 0, 0, 17431, 1963, 1, 0, 0, 0, 17432, 17430, 1, 0, 0, 0, 17433, 17434, 5, 900, 0, 0, 17434, 17436, 3, 2286, 1143, 0, 17435, 17433, 1, 0, 0, 0, 17435, 17436, 1, 0, 0, 0, 17436, 17437, 1, 0, 0, 0, 17437, 17441, 3, 1966, 983, 0, 17438, 17440, 3, 1958, 979, 0, 17439, 17438, 1, 0, 0, 0, 17440, 17443, 1, 0, 0, 0, 17441, 17439, 1, 0, 0, 0, 17441, 17442, 1, 0, 0, 0, 17442, 17444, 1, 0, 0, 0, 17443, 17441, 1, 0, 0, 0, 17444, 17445, 3, 1974, 987, 0, 17445, 1965, 1, 0, 0, 0, 17446, 17448, 3, 1968, 984, 0, 17447, 17446, 1, 0, 0, 0, 17447, 17448, 1, 0, 0, 0, 17448, 17449, 1, 0, 0, 0, 17449, 17450, 5, 420, 0, 0, 17450, 17451, 5, 160, 0, 0, 17451, 17452, 3, 1970, 985, 0, 17452, 17453, 5, 932, 0, 0, 17453, 17454, 3, 1970, 985, 0, 17454, 1967, 1, 0, 0, 0, 17455, 17456, 5, 1346, 0, 0, 17456, 17457, 5, 160, 0, 0, 17457, 17458, 3, 1970, 985, 0, 17458, 1969, 1, 0, 0, 0, 17459, 17460, 5, 2445, 0, 0, 17460, 17465, 3, 1972, 986, 0, 17461, 17462, 5, 2451, 0, 0, 17462, 17464, 3, 1972, 986, 0, 17463, 17461, 1, 0, 0, 0, 17464, 17467, 1, 0, 0, 0, 17465, 17463, 1, 0, 0, 0, 17465, 17466, 1, 0, 0, 0, 17466, 17468, 1, 0, 0, 0, 17467, 17465, 1, 0, 0, 0, 17468, 17469, 5, 2446, 0, 0, 17469, 1971, 1, 0, 0, 0, 17470, 17473, 3, 2070, 1035, 0, 17471, 17473, 3, 1894, 947, 0, 17472, 17470, 1, 0, 0, 0, 17472, 17471, 1, 0, 0, 0, 17473, 17475, 1, 0, 0, 0, 17474, 17476, 3, 2256, 1128, 0, 17475, 17474, 1, 0, 0, 0, 17475, 17476, 1, 0, 0, 0, 17476, 1973, 1, 0, 0, 0, 17477, 17479, 3, 1976, 988, 0, 17478, 17477, 1, 0, 0, 0, 17478, 17479, 1, 0, 0, 0, 17479, 17480, 1, 0, 0, 0, 17480, 17489, 5, 2445, 0, 0, 17481, 17486, 3, 1978, 989, 0, 17482, 17483, 5, 2451, 0, 0, 17483, 17485, 3, 1978, 989, 0, 17484, 17482, 1, 0, 0, 0, 17485, 17488, 1, 0, 0, 0, 17486, 17484, 1, 0, 0, 0, 17486, 17487, 1, 0, 0, 0, 17487, 17490, 1, 0, 0, 0, 17488, 17486, 1, 0, 0, 0, 17489, 17481, 1, 0, 0, 0, 17489, 17490, 1, 0, 0, 0, 17490, 17491, 1, 0, 0, 0, 17491, 17492, 5, 2446, 0, 0, 17492, 1975, 1, 0, 0, 0, 17493, 17499, 5, 1609, 0, 0, 17494, 17500, 5, 2205, 0, 0, 17495, 17497, 5, 2211, 0, 0, 17496, 17498, 5, 38, 0, 0, 17497, 17496, 1, 0, 0, 0, 17497, 17498, 1, 0, 0, 0, 17498, 17500, 1, 0, 0, 0, 17499, 17494, 1, 0, 0, 0, 17499, 17495, 1, 0, 0, 0, 17499, 17500, 1, 0, 0, 0, 17500, 17503, 1, 0, 0, 0, 17501, 17502, 7, 215, 0, 0, 17502, 17504, 5, 1301, 0, 0, 17503, 17501, 1, 0, 0, 0, 17503, 17504, 1, 0, 0, 0, 17504, 17506, 1, 0, 0, 0, 17505, 17507, 3, 1982, 991, 0, 17506, 17505, 1, 0, 0, 0, 17506, 17507, 1, 0, 0, 0, 17507, 1977, 1, 0, 0, 0, 17508, 17514, 5, 2205, 0, 0, 17509, 17511, 5, 2211, 0, 0, 17510, 17512, 5, 38, 0, 0, 17511, 17510, 1, 0, 0, 0, 17511, 17512, 1, 0, 0, 0, 17512, 17514, 1, 0, 0, 0, 17513, 17508, 1, 0, 0, 0, 17513, 17509, 1, 0, 0, 0, 17513, 17514, 1, 0, 0, 0, 17514, 17515, 1, 0, 0, 0, 17515, 17517, 3, 1980, 990, 0, 17516, 17518, 3, 1986, 993, 0, 17517, 17516, 1, 0, 0, 0, 17517, 17518, 1, 0, 0, 0, 17518, 17519, 1, 0, 0, 0, 17519, 17520, 5, 2469, 0, 0, 17520, 17521, 3, 2070, 1035, 0, 17521, 1979, 1, 0, 0, 0, 17522, 17523, 3, 2098, 1049, 0, 17523, 1981, 1, 0, 0, 0, 17524, 17525, 5, 788, 0, 0, 17525, 17526, 5, 2445, 0, 0, 17526, 17527, 3, 2070, 1035, 0, 17527, 17529, 5, 2446, 0, 0, 17528, 17530, 3, 1984, 992, 0, 17529, 17528, 1, 0, 0, 0, 17529, 17530, 1, 0, 0, 0, 17530, 1983, 1, 0, 0, 0, 17531, 17532, 5, 2200, 0, 0, 17532, 17533, 5, 2445, 0, 0, 17533, 17534, 3, 2066, 1033, 0, 17534, 17535, 5, 2446, 0, 0, 17535, 1985, 1, 0, 0, 0, 17536, 17538, 5, 1301, 0, 0, 17537, 17539, 5, 1684, 0, 0, 17538, 17537, 1, 0, 0, 0, 17538, 17539, 1, 0, 0, 0, 17539, 17540, 1, 0, 0, 0, 17540, 17541, 5, 160, 0, 0, 17541, 17546, 3, 1988, 994, 0, 17542, 17543, 5, 2451, 0, 0, 17543, 17545, 3, 1988, 994, 0, 17544, 17542, 1, 0, 0, 0, 17545, 17548, 1, 0, 0, 0, 17546, 17544, 1, 0, 0, 0, 17546, 17547, 1, 0, 0, 0, 17547, 1987, 1, 0, 0, 0, 17548, 17546, 1, 0, 0, 0, 17549, 17551, 3, 2070, 1035, 0, 17550, 17552, 7, 53, 0, 0, 17551, 17550, 1, 0, 0, 0, 17551, 17552, 1, 0, 0, 0, 17552, 17555, 1, 0, 0, 0, 17553, 17554, 5, 1227, 0, 0, 17554, 17556, 7, 54, 0, 0, 17555, 17553, 1, 0, 0, 0, 17555, 17556, 1, 0, 0, 0, 17556, 1989, 1, 0, 0, 0, 17557, 17558, 5, 1243, 0, 0, 17558, 17559, 3, 2070, 1035, 0, 17559, 17560, 7, 216, 0, 0, 17560, 1991, 1, 0, 0, 0, 17561, 17562, 5, 584, 0, 0, 17562, 17567, 7, 217, 0, 0, 17563, 17565, 3, 2070, 1035, 0, 17564, 17566, 5, 1376, 0, 0, 17565, 17564, 1, 0, 0, 0, 17565, 17566, 1, 0, 0, 0, 17566, 17568, 1, 0, 0, 0, 17567, 17563, 1, 0, 0, 0, 17567, 17568, 1, 0, 0, 0, 17568, 17569, 1, 0, 0, 0, 17569, 17573, 7, 216, 0, 0, 17570, 17574, 5, 1256, 0, 0, 17571, 17572, 5, 2306, 0, 0, 17572, 17574, 5, 2103, 0, 0, 17573, 17570, 1, 0, 0, 0, 17573, 17571, 1, 0, 0, 0, 17574, 1993, 1, 0, 0, 0, 17575, 17576, 5, 618, 0, 0, 17576, 17578, 5, 2205, 0, 0, 17577, 17579, 3, 1996, 998, 0, 17578, 17577, 1, 0, 0, 0, 17578, 17579, 1, 0, 0, 0, 17579, 17581, 1, 0, 0, 0, 17580, 17582, 3, 1998, 999, 0, 17581, 17580, 1, 0, 0, 0, 17581, 17582, 1, 0, 0, 0, 17582, 1995, 1, 0, 0, 0, 17583, 17584, 5, 1244, 0, 0, 17584, 17585, 3, 2346, 1173, 0, 17585, 1997, 1, 0, 0, 0, 17586, 17587, 5, 1700, 0, 0, 17587, 17592, 5, 877, 0, 0, 17588, 17592, 5, 1217, 0, 0, 17589, 17590, 5, 2291, 0, 0, 17590, 17592, 3, 2070, 1035, 0, 17591, 17586, 1, 0, 0, 0, 17591, 17588, 1, 0, 0, 0, 17591, 17589, 1, 0, 0, 0, 17592, 1999, 1, 0, 0, 0, 17593, 17594, 5, 2205, 0, 0, 17594, 17595, 3, 2046, 1023, 0, 17595, 17597, 3, 2002, 1001, 0, 17596, 17598, 3, 2260, 1130, 0, 17597, 17596, 1, 0, 0, 0, 17597, 17598, 1, 0, 0, 0, 17598, 17600, 1, 0, 0, 0, 17599, 17601, 3, 2048, 1024, 0, 17600, 17599, 1, 0, 0, 0, 17600, 17601, 1, 0, 0, 0, 17601, 17603, 1, 0, 0, 0, 17602, 17604, 3, 2050, 1025, 0, 17603, 17602, 1, 0, 0, 0, 17603, 17604, 1, 0, 0, 0, 17604, 2001, 1, 0, 0, 0, 17605, 17621, 5, 1669, 0, 0, 17606, 17611, 3, 2004, 1002, 0, 17607, 17608, 5, 2451, 0, 0, 17608, 17610, 3, 2004, 1002, 0, 17609, 17607, 1, 0, 0, 0, 17610, 17613, 1, 0, 0, 0, 17611, 17609, 1, 0, 0, 0, 17611, 17612, 1, 0, 0, 0, 17612, 17622, 1, 0, 0, 0, 17613, 17611, 1, 0, 0, 0, 17614, 17615, 5, 2256, 0, 0, 17615, 17616, 5, 2445, 0, 0, 17616, 17617, 3, 2390, 1195, 0, 17617, 17618, 5, 2446, 0, 0, 17618, 17619, 5, 2469, 0, 0, 17619, 17620, 3, 2070, 1035, 0, 17620, 17622, 1, 0, 0, 0, 17621, 17606, 1, 0, 0, 0, 17621, 17614, 1, 0, 0, 0, 17622, 2003, 1, 0, 0, 0, 17623, 17624, 3, 2328, 1164, 0, 17624, 17625, 5, 2469, 0, 0, 17625, 17626, 3, 2070, 1035, 0, 17626, 17632, 1, 0, 0, 0, 17627, 17628, 3, 2348, 1174, 0, 17628, 17629, 5, 2469, 0, 0, 17629, 17630, 3, 1888, 944, 0, 17630, 17632, 1, 0, 0, 0, 17631, 17623, 1, 0, 0, 0, 17631, 17627, 1, 0, 0, 0, 17632, 2005, 1, 0, 0, 0, 17633, 17635, 5, 401, 0, 0, 17634, 17636, 5, 626, 0, 0, 17635, 17634, 1, 0, 0, 0, 17635, 17636, 1, 0, 0, 0, 17636, 17637, 1, 0, 0, 0, 17637, 17639, 3, 2046, 1023, 0, 17638, 17640, 3, 2260, 1130, 0, 17639, 17638, 1, 0, 0, 0, 17639, 17640, 1, 0, 0, 0, 17640, 17642, 1, 0, 0, 0, 17641, 17643, 3, 2048, 1024, 0, 17642, 17641, 1, 0, 0, 0, 17642, 17643, 1, 0, 0, 0, 17643, 17645, 1, 0, 0, 0, 17644, 17646, 3, 2050, 1025, 0, 17645, 17644, 1, 0, 0, 0, 17645, 17646, 1, 0, 0, 0, 17646, 2007, 1, 0, 0, 0, 17647, 17650, 5, 754, 0, 0, 17648, 17651, 3, 2010, 1005, 0, 17649, 17651, 3, 2012, 1006, 0, 17650, 17648, 1, 0, 0, 0, 17650, 17649, 1, 0, 0, 0, 17651, 2009, 1, 0, 0, 0, 17652, 17658, 3, 2022, 1011, 0, 17653, 17655, 3, 2024, 1012, 0, 17654, 17656, 3, 2048, 1024, 0, 17655, 17654, 1, 0, 0, 0, 17655, 17656, 1, 0, 0, 0, 17656, 17659, 1, 0, 0, 0, 17657, 17659, 3, 1862, 931, 0, 17658, 17653, 1, 0, 0, 0, 17658, 17657, 1, 0, 0, 0, 17659, 17661, 1, 0, 0, 0, 17660, 17662, 3, 2050, 1025, 0, 17661, 17660, 1, 0, 0, 0, 17661, 17662, 1, 0, 0, 0, 17662, 2011, 1, 0, 0, 0, 17663, 17665, 5, 38, 0, 0, 17664, 17666, 3, 2014, 1007, 0, 17665, 17664, 1, 0, 0, 0, 17666, 17667, 1, 0, 0, 0, 17667, 17665, 1, 0, 0, 0, 17667, 17668, 1, 0, 0, 0, 17668, 17671, 1, 0, 0, 0, 17669, 17671, 3, 2016, 1008, 0, 17670, 17663, 1, 0, 0, 0, 17670, 17669, 1, 0, 0, 0, 17671, 17672, 1, 0, 0, 0, 17672, 17673, 3, 1862, 931, 0, 17673, 2013, 1, 0, 0, 0, 17674, 17676, 3, 2022, 1011, 0, 17675, 17677, 3, 2024, 1012, 0, 17676, 17675, 1, 0, 0, 0, 17676, 17677, 1, 0, 0, 0, 17677, 17679, 1, 0, 0, 0, 17678, 17680, 3, 2050, 1025, 0, 17679, 17678, 1, 0, 0, 0, 17679, 17680, 1, 0, 0, 0, 17680, 2015, 1, 0, 0, 0, 17681, 17683, 7, 218, 0, 0, 17682, 17681, 1, 0, 0, 0, 17682, 17683, 1, 0, 0, 0, 17683, 17685, 1, 0, 0, 0, 17684, 17686, 3, 2018, 1009, 0, 17685, 17684, 1, 0, 0, 0, 17686, 17687, 1, 0, 0, 0, 17687, 17685, 1, 0, 0, 0, 17687, 17688, 1, 0, 0, 0, 17688, 17690, 1, 0, 0, 0, 17689, 17691, 3, 2020, 1010, 0, 17690, 17689, 1, 0, 0, 0, 17690, 17691, 1, 0, 0, 0, 17691, 2017, 1, 0, 0, 0, 17692, 17693, 5, 2298, 0, 0, 17693, 17694, 3, 2066, 1033, 0, 17694, 17696, 5, 2097, 0, 0, 17695, 17697, 3, 2014, 1007, 0, 17696, 17695, 1, 0, 0, 0, 17697, 17698, 1, 0, 0, 0, 17698, 17696, 1, 0, 0, 0, 17698, 17699, 1, 0, 0, 0, 17699, 2019, 1, 0, 0, 0, 17700, 17702, 5, 489, 0, 0, 17701, 17703, 3, 2014, 1007, 0, 17702, 17701, 1, 0, 0, 0, 17703, 17704, 1, 0, 0, 0, 17704, 17702, 1, 0, 0, 0, 17704, 17705, 1, 0, 0, 0, 17705, 2021, 1, 0, 0, 0, 17706, 17707, 5, 777, 0, 0, 17707, 17709, 3, 2046, 1023, 0, 17708, 17710, 3, 2348, 1174, 0, 17709, 17708, 1, 0, 0, 0, 17709, 17710, 1, 0, 0, 0, 17710, 2023, 1, 0, 0, 0, 17711, 17718, 5, 2255, 0, 0, 17712, 17719, 5, 2478, 0, 0, 17713, 17714, 5, 2445, 0, 0, 17714, 17715, 3, 2068, 1034, 0, 17715, 17716, 5, 2446, 0, 0, 17716, 17719, 1, 0, 0, 0, 17717, 17719, 3, 2110, 1055, 0, 17718, 17712, 1, 0, 0, 0, 17718, 17713, 1, 0, 0, 0, 17718, 17717, 1, 0, 0, 0, 17719, 2025, 1, 0, 0, 0, 17720, 17721, 5, 944, 0, 0, 17721, 17722, 5, 777, 0, 0, 17722, 17724, 3, 2330, 1165, 0, 17723, 17725, 3, 2258, 1129, 0, 17724, 17723, 1, 0, 0, 0, 17724, 17725, 1, 0, 0, 0, 17725, 17726, 1, 0, 0, 0, 17726, 17727, 5, 2244, 0, 0, 17727, 17728, 3, 2036, 1018, 0, 17728, 17729, 5, 1257, 0, 0, 17729, 17730, 5, 2445, 0, 0, 17730, 17731, 3, 2066, 1033, 0, 17731, 17740, 5, 2446, 0, 0, 17732, 17734, 3, 2028, 1014, 0, 17733, 17735, 3, 2034, 1017, 0, 17734, 17733, 1, 0, 0, 0, 17734, 17735, 1, 0, 0, 0, 17735, 17741, 1, 0, 0, 0, 17736, 17738, 3, 2034, 1017, 0, 17737, 17739, 3, 2028, 1014, 0, 17738, 17737, 1, 0, 0, 0, 17738, 17739, 1, 0, 0, 0, 17739, 17741, 1, 0, 0, 0, 17740, 17732, 1, 0, 0, 0, 17740, 17736, 1, 0, 0, 0, 17740, 17741, 1, 0, 0, 0, 17741, 17743, 1, 0, 0, 0, 17742, 17744, 3, 2050, 1025, 0, 17743, 17742, 1, 0, 0, 0, 17743, 17744, 1, 0, 0, 0, 17744, 2027, 1, 0, 0, 0, 17745, 17746, 5, 2298, 0, 0, 17746, 17747, 5, 912, 0, 0, 17747, 17748, 5, 2097, 0, 0, 17748, 17749, 5, 2205, 0, 0, 17749, 17750, 5, 1669, 0, 0, 17750, 17755, 3, 2030, 1015, 0, 17751, 17752, 5, 2451, 0, 0, 17752, 17754, 3, 2030, 1015, 0, 17753, 17751, 1, 0, 0, 0, 17754, 17757, 1, 0, 0, 0, 17755, 17753, 1, 0, 0, 0, 17755, 17756, 1, 0, 0, 0, 17756, 17759, 1, 0, 0, 0, 17757, 17755, 1, 0, 0, 0, 17758, 17760, 3, 2260, 1130, 0, 17759, 17758, 1, 0, 0, 0, 17759, 17760, 1, 0, 0, 0, 17760, 17762, 1, 0, 0, 0, 17761, 17763, 3, 2032, 1016, 0, 17762, 17761, 1, 0, 0, 0, 17762, 17763, 1, 0, 0, 0, 17763, 2029, 1, 0, 0, 0, 17764, 17765, 3, 2328, 1164, 0, 17765, 17766, 5, 2469, 0, 0, 17766, 17767, 3, 2070, 1035, 0, 17767, 2031, 1, 0, 0, 0, 17768, 17769, 5, 401, 0, 0, 17769, 17770, 3, 2260, 1130, 0, 17770, 2033, 1, 0, 0, 0, 17771, 17772, 5, 2298, 0, 0, 17772, 17773, 5, 1202, 0, 0, 17773, 17774, 5, 912, 0, 0, 17774, 17775, 5, 2097, 0, 0, 17775, 17777, 5, 754, 0, 0, 17776, 17778, 3, 2348, 1174, 0, 17777, 17776, 1, 0, 0, 0, 17777, 17778, 1, 0, 0, 0, 17778, 17779, 1, 0, 0, 0, 17779, 17781, 3, 2024, 1012, 0, 17780, 17782, 3, 2260, 1130, 0, 17781, 17780, 1, 0, 0, 0, 17781, 17782, 1, 0, 0, 0, 17782, 2035, 1, 0, 0, 0, 17783, 17794, 3, 2330, 1165, 0, 17784, 17785, 5, 2445, 0, 0, 17785, 17786, 3, 1862, 931, 0, 17786, 17787, 5, 2446, 0, 0, 17787, 17794, 1, 0, 0, 0, 17788, 17794, 3, 2058, 1029, 0, 17789, 17790, 5, 2445, 0, 0, 17790, 17791, 3, 2058, 1029, 0, 17791, 17792, 5, 2446, 0, 0, 17792, 17794, 1, 0, 0, 0, 17793, 17783, 1, 0, 0, 0, 17793, 17784, 1, 0, 0, 0, 17793, 17788, 1, 0, 0, 0, 17793, 17789, 1, 0, 0, 0, 17794, 17796, 1, 0, 0, 0, 17795, 17797, 3, 2258, 1129, 0, 17796, 17795, 1, 0, 0, 0, 17796, 17797, 1, 0, 0, 0, 17797, 2037, 1, 0, 0, 0, 17798, 17799, 5, 879, 0, 0, 17799, 17800, 5, 2081, 0, 0, 17800, 17805, 3, 2042, 1021, 0, 17801, 17802, 5, 2451, 0, 0, 17802, 17804, 3, 2042, 1021, 0, 17803, 17801, 1, 0, 0, 0, 17804, 17807, 1, 0, 0, 0, 17805, 17803, 1, 0, 0, 0, 17805, 17806, 1, 0, 0, 0, 17806, 17808, 1, 0, 0, 0, 17807, 17805, 1, 0, 0, 0, 17808, 17809, 5, 736, 0, 0, 17809, 17810, 3, 2044, 1022, 0, 17810, 17812, 5, 975, 0, 0, 17811, 17813, 3, 2040, 1020, 0, 17812, 17811, 1, 0, 0, 0, 17812, 17813, 1, 0, 0, 0, 17813, 2039, 1, 0, 0, 0, 17814, 17815, 5, 2291, 0, 0, 17815, 17818, 3, 2070, 1035, 0, 17816, 17818, 5, 1217, 0, 0, 17817, 17814, 1, 0, 0, 0, 17817, 17816, 1, 0, 0, 0, 17818, 2041, 1, 0, 0, 0, 17819, 17821, 3, 2330, 1165, 0, 17820, 17822, 3, 2254, 1127, 0, 17821, 17820, 1, 0, 0, 0, 17821, 17822, 1, 0, 0, 0, 17822, 2043, 1, 0, 0, 0, 17823, 17824, 5, 1604, 0, 0, 17824, 17836, 5, 1678, 0, 0, 17825, 17826, 5, 1604, 0, 0, 17826, 17836, 5, 539, 0, 0, 17827, 17829, 5, 1678, 0, 0, 17828, 17830, 5, 2205, 0, 0, 17829, 17828, 1, 0, 0, 0, 17829, 17830, 1, 0, 0, 0, 17830, 17836, 1, 0, 0, 0, 17831, 17832, 5, 1678, 0, 0, 17832, 17833, 5, 1604, 0, 0, 17833, 17836, 5, 539, 0, 0, 17834, 17836, 5, 539, 0, 0, 17835, 17823, 1, 0, 0, 0, 17835, 17825, 1, 0, 0, 0, 17835, 17827, 1, 0, 0, 0, 17835, 17831, 1, 0, 0, 0, 17835, 17834, 1, 0, 0, 0, 17836, 2045, 1, 0, 0, 0, 17837, 17844, 3, 2056, 1028, 0, 17838, 17839, 5, 1256, 0, 0, 17839, 17840, 5, 2445, 0, 0, 17840, 17841, 3, 2056, 1028, 0, 17841, 17842, 5, 2446, 0, 0, 17842, 17844, 1, 0, 0, 0, 17843, 17837, 1, 0, 0, 0, 17843, 17838, 1, 0, 0, 0, 17844, 17846, 1, 0, 0, 0, 17845, 17847, 3, 2258, 1129, 0, 17846, 17845, 1, 0, 0, 0, 17846, 17847, 1, 0, 0, 0, 17847, 2047, 1, 0, 0, 0, 17848, 17849, 7, 202, 0, 0, 17849, 17850, 3, 2068, 1034, 0, 17850, 17851, 3, 2262, 1131, 0, 17851, 2049, 1, 0, 0, 0, 17852, 17853, 5, 886, 0, 0, 17853, 17855, 5, 520, 0, 0, 17854, 17856, 3, 2052, 1026, 0, 17855, 17854, 1, 0, 0, 0, 17855, 17856, 1, 0, 0, 0, 17856, 17858, 1, 0, 0, 0, 17857, 17859, 3, 2070, 1035, 0, 17858, 17857, 1, 0, 0, 0, 17858, 17859, 1, 0, 0, 0, 17859, 17861, 1, 0, 0, 0, 17860, 17862, 3, 2054, 1027, 0, 17861, 17860, 1, 0, 0, 0, 17861, 17862, 1, 0, 0, 0, 17862, 2051, 1, 0, 0, 0, 17863, 17864, 5, 777, 0, 0, 17864, 17865, 3, 2330, 1165, 0, 17865, 2053, 1, 0, 0, 0, 17866, 17867, 5, 1547, 0, 0, 17867, 17870, 5, 856, 0, 0, 17868, 17871, 5, 2183, 0, 0, 17869, 17871, 3, 2070, 1035, 0, 17870, 17868, 1, 0, 0, 0, 17870, 17869, 1, 0, 0, 0, 17871, 2055, 1, 0, 0, 0, 17872, 17909, 3, 2058, 1029, 0, 17873, 17874, 5, 2445, 0, 0, 17874, 17876, 3, 1862, 931, 0, 17875, 17877, 3, 2060, 1030, 0, 17876, 17875, 1, 0, 0, 0, 17876, 17877, 1, 0, 0, 0, 17877, 17878, 1, 0, 0, 0, 17878, 17879, 5, 2446, 0, 0, 17879, 17909, 1, 0, 0, 0, 17880, 17882, 3, 2330, 1165, 0, 17881, 17883, 3, 1878, 939, 0, 17882, 17881, 1, 0, 0, 0, 17882, 17883, 1, 0, 0, 0, 17883, 17885, 1, 0, 0, 0, 17884, 17886, 3, 2062, 1031, 0, 17885, 17884, 1, 0, 0, 0, 17885, 17886, 1, 0, 0, 0, 17886, 17909, 1, 0, 0, 0, 17887, 17890, 3, 2146, 1073, 0, 17888, 17889, 5, 69, 0, 0, 17889, 17891, 3, 2390, 1195, 0, 17890, 17888, 1, 0, 0, 0, 17890, 17891, 1, 0, 0, 0, 17891, 17909, 1, 0, 0, 0, 17892, 17893, 5, 825, 0, 0, 17893, 17894, 5, 2445, 0, 0, 17894, 17896, 3, 1888, 944, 0, 17895, 17897, 3, 2060, 1030, 0, 17896, 17895, 1, 0, 0, 0, 17896, 17897, 1, 0, 0, 0, 17897, 17898, 1, 0, 0, 0, 17898, 17899, 5, 2446, 0, 0, 17899, 17909, 1, 0, 0, 0, 17900, 17901, 4, 1028, 11, 0, 17901, 17902, 5, 1549, 0, 0, 17902, 17903, 5, 2445, 0, 0, 17903, 17904, 3, 2330, 1165, 0, 17904, 17905, 5, 1202, 0, 0, 17905, 17906, 5, 2349, 0, 0, 17906, 17907, 5, 2446, 0, 0, 17907, 17909, 1, 0, 0, 0, 17908, 17872, 1, 0, 0, 0, 17908, 17873, 1, 0, 0, 0, 17908, 17880, 1, 0, 0, 0, 17908, 17887, 1, 0, 0, 0, 17908, 17892, 1, 0, 0, 0, 17908, 17900, 1, 0, 0, 0, 17909, 2057, 1, 0, 0, 0, 17910, 17921, 7, 219, 0, 0, 17911, 17912, 5, 2445, 0, 0, 17912, 17913, 3, 1888, 944, 0, 17913, 17914, 5, 2446, 0, 0, 17914, 17922, 1, 0, 0, 0, 17915, 17916, 5, 2445, 0, 0, 17916, 17917, 3, 2070, 1035, 0, 17917, 17919, 5, 2446, 0, 0, 17918, 17920, 3, 2396, 1198, 0, 17919, 17918, 1, 0, 0, 0, 17919, 17920, 1, 0, 0, 0, 17920, 17922, 1, 0, 0, 0, 17921, 17911, 1, 0, 0, 0, 17921, 17915, 1, 0, 0, 0, 17922, 2059, 1, 0, 0, 0, 17923, 17932, 5, 2306, 0, 0, 17924, 17925, 5, 1503, 0, 0, 17925, 17933, 5, 1256, 0, 0, 17926, 17927, 5, 200, 0, 0, 17927, 17930, 5, 1270, 0, 0, 17928, 17929, 5, 284, 0, 0, 17929, 17931, 3, 2298, 1149, 0, 17930, 17928, 1, 0, 0, 0, 17930, 17931, 1, 0, 0, 0, 17931, 17933, 1, 0, 0, 0, 17932, 17924, 1, 0, 0, 0, 17932, 17926, 1, 0, 0, 0, 17933, 2061, 1, 0, 0, 0, 17934, 17936, 5, 1612, 0, 0, 17935, 17937, 5, 143, 0, 0, 17936, 17935, 1, 0, 0, 0, 17936, 17937, 1, 0, 0, 0, 17937, 17938, 1, 0, 0, 0, 17938, 17939, 5, 2445, 0, 0, 17939, 17942, 3, 2070, 1035, 0, 17940, 17941, 5, 2451, 0, 0, 17941, 17943, 3, 2070, 1035, 0, 17942, 17940, 1, 0, 0, 0, 17942, 17943, 1, 0, 0, 0, 17943, 17944, 1, 0, 0, 0, 17944, 17946, 5, 2446, 0, 0, 17945, 17947, 3, 2064, 1032, 0, 17946, 17945, 1, 0, 0, 0, 17946, 17947, 1, 0, 0, 0, 17947, 2063, 1, 0, 0, 0, 17948, 17949, 5, 1640, 0, 0, 17949, 17950, 5, 2445, 0, 0, 17950, 17951, 3, 2070, 1035, 0, 17951, 17952, 5, 2446, 0, 0, 17952, 2065, 1, 0, 0, 0, 17953, 17960, 3, 2070, 1035, 0, 17954, 17955, 5, 795, 0, 0, 17955, 17956, 5, 2445, 0, 0, 17956, 17957, 3, 2068, 1034, 0, 17957, 17958, 5, 2446, 0, 0, 17958, 17960, 1, 0, 0, 0, 17959, 17953, 1, 0, 0, 0, 17959, 17954, 1, 0, 0, 0, 17960, 2067, 1, 0, 0, 0, 17961, 17966, 3, 2070, 1035, 0, 17962, 17963, 5, 2451, 0, 0, 17963, 17965, 3, 2070, 1035, 0, 17964, 17962, 1, 0, 0, 0, 17965, 17968, 1, 0, 0, 0, 17966, 17964, 1, 0, 0, 0, 17966, 17967, 1, 0, 0, 0, 17967, 2069, 1, 0, 0, 0, 17968, 17966, 1, 0, 0, 0, 17969, 17979, 5, 2441, 0, 0, 17970, 17979, 5, 1226, 0, 0, 17971, 17979, 5, 2156, 0, 0, 17972, 17979, 5, 573, 0, 0, 17973, 17979, 5, 2440, 0, 0, 17974, 17979, 5, 2439, 0, 0, 17975, 17979, 3, 2328, 1164, 0, 17976, 17979, 3, 2072, 1036, 0, 17977, 17979, 3, 2074, 1037, 0, 17978, 17969, 1, 0, 0, 0, 17978, 17970, 1, 0, 0, 0, 17978, 17971, 1, 0, 0, 0, 17978, 17972, 1, 0, 0, 0, 17978, 17973, 1, 0, 0, 0, 17978, 17974, 1, 0, 0, 0, 17978, 17975, 1, 0, 0, 0, 17978, 17976, 1, 0, 0, 0, 17978, 17977, 1, 0, 0, 0, 17979, 2071, 1, 0, 0, 0, 17980, 17981, 5, 341, 0, 0, 17981, 17982, 5, 2445, 0, 0, 17982, 17983, 3, 1888, 944, 0, 17983, 17984, 5, 2446, 0, 0, 17984, 2073, 1, 0, 0, 0, 17985, 17986, 6, 1037, -1, 0, 17986, 17987, 3, 2076, 1038, 0, 17987, 17996, 1, 0, 0, 0, 17988, 17989, 10, 2, 0, 0, 17989, 17990, 5, 49, 0, 0, 17990, 17995, 3, 2074, 1037, 3, 17991, 17992, 10, 1, 0, 0, 17992, 17993, 5, 1305, 0, 0, 17993, 17995, 3, 2074, 1037, 2, 17994, 17988, 1, 0, 0, 0, 17994, 17991, 1, 0, 0, 0, 17995, 17998, 1, 0, 0, 0, 17996, 17994, 1, 0, 0, 0, 17996, 17997, 1, 0, 0, 0, 17997, 2075, 1, 0, 0, 0, 17998, 17996, 1, 0, 0, 0, 17999, 18001, 5, 1202, 0, 0, 18000, 17999, 1, 0, 0, 0, 18000, 18001, 1, 0, 0, 0, 18001, 18002, 1, 0, 0, 0, 18002, 18004, 3, 2082, 1041, 0, 18003, 18005, 3, 2078, 1039, 0, 18004, 18003, 1, 0, 0, 0, 18004, 18005, 1, 0, 0, 0, 18005, 2077, 1, 0, 0, 0, 18006, 18008, 5, 783, 0, 0, 18007, 18009, 5, 1202, 0, 0, 18008, 18007, 1, 0, 0, 0, 18008, 18009, 1, 0, 0, 0, 18009, 18010, 1, 0, 0, 0, 18010, 18011, 3, 2080, 1040, 0, 18011, 2079, 1, 0, 0, 0, 18012, 18051, 5, 1226, 0, 0, 18013, 18051, 5, 997, 0, 0, 18014, 18051, 5, 1442, 0, 0, 18015, 18051, 5, 733, 0, 0, 18016, 18017, 5, 36, 0, 0, 18017, 18051, 5, 1669, 0, 0, 18018, 18051, 5, 495, 0, 0, 18019, 18021, 5, 1244, 0, 0, 18020, 18022, 5, 2164, 0, 0, 18021, 18020, 1, 0, 0, 0, 18021, 18022, 1, 0, 0, 0, 18022, 18023, 1, 0, 0, 0, 18023, 18025, 5, 2445, 0, 0, 18024, 18026, 5, 1256, 0, 0, 18025, 18024, 1, 0, 0, 0, 18025, 18026, 1, 0, 0, 0, 18026, 18027, 1, 0, 0, 0, 18027, 18032, 3, 2362, 1181, 0, 18028, 18029, 5, 2451, 0, 0, 18029, 18031, 3, 2362, 1181, 0, 18030, 18028, 1, 0, 0, 0, 18031, 18034, 1, 0, 0, 0, 18032, 18030, 1, 0, 0, 0, 18032, 18033, 1, 0, 0, 0, 18033, 18035, 1, 0, 0, 0, 18034, 18032, 1, 0, 0, 0, 18035, 18036, 5, 2446, 0, 0, 18036, 18051, 1, 0, 0, 0, 18037, 18040, 5, 799, 0, 0, 18038, 18039, 5, 619, 0, 0, 18039, 18041, 5, 799, 0, 0, 18040, 18038, 1, 0, 0, 0, 18040, 18041, 1, 0, 0, 0, 18041, 18043, 1, 0, 0, 0, 18042, 18044, 7, 220, 0, 0, 18043, 18042, 1, 0, 0, 0, 18043, 18044, 1, 0, 0, 0, 18044, 18048, 1, 0, 0, 0, 18045, 18046, 7, 2, 0, 0, 18046, 18047, 5, 2181, 0, 0, 18047, 18049, 5, 817, 0, 0, 18048, 18045, 1, 0, 0, 0, 18048, 18049, 1, 0, 0, 0, 18049, 18051, 1, 0, 0, 0, 18050, 18012, 1, 0, 0, 0, 18050, 18013, 1, 0, 0, 0, 18050, 18014, 1, 0, 0, 0, 18050, 18015, 1, 0, 0, 0, 18050, 18016, 1, 0, 0, 0, 18050, 18018, 1, 0, 0, 0, 18050, 18019, 1, 0, 0, 0, 18050, 18037, 1, 0, 0, 0, 18051, 2081, 1, 0, 0, 0, 18052, 18053, 6, 1041, -1, 0, 18053, 18062, 3, 2084, 1042, 0, 18054, 18056, 5, 1202, 0, 0, 18055, 18054, 1, 0, 0, 0, 18055, 18056, 1, 0, 0, 0, 18056, 18057, 1, 0, 0, 0, 18057, 18059, 7, 221, 0, 0, 18058, 18060, 5, 1244, 0, 0, 18059, 18058, 1, 0, 0, 0, 18059, 18060, 1, 0, 0, 0, 18060, 18061, 1, 0, 0, 0, 18061, 18063, 3, 2094, 1047, 0, 18062, 18055, 1, 0, 0, 0, 18062, 18063, 1, 0, 0, 0, 18063, 18073, 1, 0, 0, 0, 18064, 18065, 10, 1, 0, 0, 18065, 18066, 5, 992, 0, 0, 18066, 18068, 7, 222, 0, 0, 18067, 18069, 7, 223, 0, 0, 18068, 18067, 1, 0, 0, 0, 18068, 18069, 1, 0, 0, 0, 18069, 18070, 1, 0, 0, 0, 18070, 18072, 3, 2084, 1042, 0, 18071, 18064, 1, 0, 0, 0, 18072, 18075, 1, 0, 0, 0, 18073, 18071, 1, 0, 0, 0, 18073, 18074, 1, 0, 0, 0, 18074, 2083, 1, 0, 0, 0, 18075, 18073, 1, 0, 0, 0, 18076, 18077, 6, 1042, -1, 0, 18077, 18078, 3, 2086, 1043, 0, 18078, 18091, 1, 0, 0, 0, 18079, 18080, 10, 3, 0, 0, 18080, 18081, 3, 2088, 1044, 0, 18081, 18082, 3, 2084, 1042, 4, 18082, 18090, 1, 0, 0, 0, 18083, 18085, 10, 2, 0, 0, 18084, 18086, 5, 1202, 0, 0, 18085, 18084, 1, 0, 0, 0, 18085, 18086, 1, 0, 0, 0, 18086, 18087, 1, 0, 0, 0, 18087, 18088, 5, 736, 0, 0, 18088, 18090, 3, 2090, 1045, 0, 18089, 18079, 1, 0, 0, 0, 18089, 18083, 1, 0, 0, 0, 18090, 18093, 1, 0, 0, 0, 18091, 18089, 1, 0, 0, 0, 18091, 18092, 1, 0, 0, 0, 18092, 2085, 1, 0, 0, 0, 18093, 18091, 1, 0, 0, 0, 18094, 18110, 3, 2094, 1047, 0, 18095, 18097, 5, 1202, 0, 0, 18096, 18095, 1, 0, 0, 0, 18096, 18097, 1, 0, 0, 0, 18097, 18108, 1, 0, 0, 0, 18098, 18099, 5, 736, 0, 0, 18099, 18109, 3, 2090, 1045, 0, 18100, 18101, 5, 118, 0, 0, 18101, 18109, 3, 2092, 1046, 0, 18102, 18103, 7, 224, 0, 0, 18103, 18106, 3, 2094, 1047, 0, 18104, 18105, 5, 523, 0, 0, 18105, 18107, 3, 2094, 1047, 0, 18106, 18104, 1, 0, 0, 0, 18106, 18107, 1, 0, 0, 0, 18107, 18109, 1, 0, 0, 0, 18108, 18098, 1, 0, 0, 0, 18108, 18100, 1, 0, 0, 0, 18108, 18102, 1, 0, 0, 0, 18109, 18111, 1, 0, 0, 0, 18110, 18096, 1, 0, 0, 0, 18110, 18111, 1, 0, 0, 0, 18111, 2087, 1, 0, 0, 0, 18112, 18127, 5, 2469, 0, 0, 18113, 18121, 5, 2460, 0, 0, 18114, 18115, 5, 2465, 0, 0, 18115, 18121, 5, 2464, 0, 0, 18116, 18117, 5, 2463, 0, 0, 18117, 18121, 5, 2469, 0, 0, 18118, 18119, 5, 2461, 0, 0, 18119, 18121, 5, 2469, 0, 0, 18120, 18113, 1, 0, 0, 0, 18120, 18114, 1, 0, 0, 0, 18120, 18116, 1, 0, 0, 0, 18120, 18118, 1, 0, 0, 0, 18121, 18127, 1, 0, 0, 0, 18122, 18124, 7, 225, 0, 0, 18123, 18125, 5, 2469, 0, 0, 18124, 18123, 1, 0, 0, 0, 18124, 18125, 1, 0, 0, 0, 18125, 18127, 1, 0, 0, 0, 18126, 18112, 1, 0, 0, 0, 18126, 18120, 1, 0, 0, 0, 18126, 18122, 1, 0, 0, 0, 18127, 2089, 1, 0, 0, 0, 18128, 18129, 5, 2445, 0, 0, 18129, 18130, 3, 1888, 944, 0, 18130, 18131, 5, 2446, 0, 0, 18131, 18147, 1, 0, 0, 0, 18132, 18133, 5, 2445, 0, 0, 18133, 18138, 3, 2094, 1047, 0, 18134, 18135, 5, 2451, 0, 0, 18135, 18137, 3, 2094, 1047, 0, 18136, 18134, 1, 0, 0, 0, 18137, 18140, 1, 0, 0, 0, 18138, 18136, 1, 0, 0, 0, 18138, 18139, 1, 0, 0, 0, 18139, 18141, 1, 0, 0, 0, 18140, 18138, 1, 0, 0, 0, 18141, 18142, 5, 2446, 0, 0, 18142, 18147, 1, 0, 0, 0, 18143, 18147, 3, 2382, 1191, 0, 18144, 18147, 3, 2370, 1185, 0, 18145, 18147, 3, 2372, 1186, 0, 18146, 18128, 1, 0, 0, 0, 18146, 18132, 1, 0, 0, 0, 18146, 18143, 1, 0, 0, 0, 18146, 18144, 1, 0, 0, 0, 18146, 18145, 1, 0, 0, 0, 18147, 2091, 1, 0, 0, 0, 18148, 18149, 3, 2094, 1047, 0, 18149, 18150, 5, 49, 0, 0, 18150, 18151, 3, 2094, 1047, 0, 18151, 2093, 1, 0, 0, 0, 18152, 18153, 6, 1047, -1, 0, 18153, 18162, 3, 2098, 1049, 0, 18154, 18159, 5, 82, 0, 0, 18155, 18160, 5, 871, 0, 0, 18156, 18157, 5, 2110, 0, 0, 18157, 18158, 5, 2361, 0, 0, 18158, 18160, 3, 2094, 1047, 0, 18159, 18155, 1, 0, 0, 0, 18159, 18156, 1, 0, 0, 0, 18160, 18163, 1, 0, 0, 0, 18161, 18163, 3, 2096, 1048, 0, 18162, 18154, 1, 0, 0, 0, 18162, 18161, 1, 0, 0, 0, 18162, 18163, 1, 0, 0, 0, 18163, 18167, 1, 0, 0, 0, 18164, 18165, 5, 1257, 0, 0, 18165, 18166, 5, 1318, 0, 0, 18166, 18168, 7, 226, 0, 0, 18167, 18164, 1, 0, 0, 0, 18167, 18168, 1, 0, 0, 0, 18168, 18187, 1, 0, 0, 0, 18169, 18170, 10, 5, 0, 0, 18170, 18171, 5, 2447, 0, 0, 18171, 18186, 3, 2094, 1047, 6, 18172, 18173, 10, 4, 0, 0, 18173, 18174, 7, 227, 0, 0, 18174, 18186, 3, 2094, 1047, 5, 18175, 18176, 10, 3, 0, 0, 18176, 18177, 7, 139, 0, 0, 18177, 18186, 3, 2094, 1047, 4, 18178, 18179, 10, 2, 0, 0, 18179, 18180, 5, 2468, 0, 0, 18180, 18181, 5, 2468, 0, 0, 18181, 18186, 3, 2094, 1047, 3, 18182, 18183, 10, 1, 0, 0, 18183, 18184, 5, 2370, 0, 0, 18184, 18186, 3, 1664, 832, 0, 18185, 18169, 1, 0, 0, 0, 18185, 18172, 1, 0, 0, 0, 18185, 18175, 1, 0, 0, 0, 18185, 18178, 1, 0, 0, 0, 18185, 18182, 1, 0, 0, 0, 18186, 18189, 1, 0, 0, 0, 18187, 18185, 1, 0, 0, 0, 18187, 18188, 1, 0, 0, 0, 18188, 2095, 1, 0, 0, 0, 18189, 18187, 1, 0, 0, 0, 18190, 18195, 5, 363, 0, 0, 18191, 18192, 5, 2445, 0, 0, 18192, 18193, 3, 2094, 1047, 0, 18193, 18194, 5, 2446, 0, 0, 18194, 18196, 1, 0, 0, 0, 18195, 18191, 1, 0, 0, 0, 18195, 18196, 1, 0, 0, 0, 18196, 18197, 1, 0, 0, 0, 18197, 18198, 5, 2139, 0, 0, 18198, 18203, 5, 1634, 0, 0, 18199, 18200, 5, 2445, 0, 0, 18200, 18201, 3, 2094, 1047, 0, 18201, 18202, 5, 2446, 0, 0, 18202, 18204, 1, 0, 0, 0, 18203, 18199, 1, 0, 0, 0, 18203, 18204, 1, 0, 0, 0, 18204, 18218, 1, 0, 0, 0, 18205, 18210, 5, 2356, 0, 0, 18206, 18207, 5, 2445, 0, 0, 18207, 18208, 3, 2094, 1047, 0, 18208, 18209, 5, 2446, 0, 0, 18209, 18211, 1, 0, 0, 0, 18210, 18206, 1, 0, 0, 0, 18210, 18211, 1, 0, 0, 0, 18211, 18212, 1, 0, 0, 0, 18212, 18213, 5, 2139, 0, 0, 18213, 18218, 5, 983, 0, 0, 18214, 18215, 3, 2094, 1047, 0, 18215, 18216, 7, 228, 0, 0, 18216, 18218, 1, 0, 0, 0, 18217, 18190, 1, 0, 0, 0, 18217, 18205, 1, 0, 0, 0, 18217, 18214, 1, 0, 0, 0, 18218, 2097, 1, 0, 0, 0, 18219, 18224, 3, 2106, 1053, 0, 18220, 18221, 5, 2470, 0, 0, 18221, 18222, 3, 2100, 1050, 0, 18222, 18223, 5, 2471, 0, 0, 18223, 18225, 1, 0, 0, 0, 18224, 18220, 1, 0, 0, 0, 18224, 18225, 1, 0, 0, 0, 18225, 2099, 1, 0, 0, 0, 18226, 18229, 5, 55, 0, 0, 18227, 18229, 3, 2070, 1035, 0, 18228, 18226, 1, 0, 0, 0, 18228, 18227, 1, 0, 0, 0, 18229, 18237, 1, 0, 0, 0, 18230, 18233, 5, 2451, 0, 0, 18231, 18234, 5, 55, 0, 0, 18232, 18234, 3, 2070, 1035, 0, 18233, 18231, 1, 0, 0, 0, 18233, 18232, 1, 0, 0, 0, 18234, 18236, 1, 0, 0, 0, 18235, 18230, 1, 0, 0, 0, 18236, 18239, 1, 0, 0, 0, 18237, 18235, 1, 0, 0, 0, 18237, 18238, 1, 0, 0, 0, 18238, 18250, 1, 0, 0, 0, 18239, 18237, 1, 0, 0, 0, 18240, 18245, 3, 2102, 1051, 0, 18241, 18242, 5, 2451, 0, 0, 18242, 18244, 3, 2102, 1051, 0, 18243, 18241, 1, 0, 0, 0, 18244, 18247, 1, 0, 0, 0, 18245, 18243, 1, 0, 0, 0, 18245, 18246, 1, 0, 0, 0, 18246, 18250, 1, 0, 0, 0, 18247, 18245, 1, 0, 0, 0, 18248, 18250, 3, 2104, 1052, 0, 18249, 18228, 1, 0, 0, 0, 18249, 18240, 1, 0, 0, 0, 18249, 18248, 1, 0, 0, 0, 18250, 2101, 1, 0, 0, 0, 18251, 18252, 5, 618, 0, 0, 18252, 18270, 3, 2328, 1164, 0, 18253, 18254, 5, 736, 0, 0, 18254, 18256, 5, 2445, 0, 0, 18255, 18257, 3, 2068, 1034, 0, 18256, 18255, 1, 0, 0, 0, 18256, 18257, 1, 0, 0, 0, 18257, 18258, 1, 0, 0, 0, 18258, 18271, 5, 2446, 0, 0, 18259, 18260, 5, 855, 0, 0, 18260, 18262, 3, 2070, 1035, 0, 18261, 18259, 1, 0, 0, 0, 18261, 18262, 1, 0, 0, 0, 18262, 18263, 1, 0, 0, 0, 18263, 18264, 5, 626, 0, 0, 18264, 18265, 3, 2070, 1035, 0, 18265, 18266, 5, 2139, 0, 0, 18266, 18267, 3, 2070, 1035, 0, 18267, 18268, 7, 229, 0, 0, 18268, 18269, 3, 2070, 1035, 0, 18269, 18271, 1, 0, 0, 0, 18270, 18253, 1, 0, 0, 0, 18270, 18261, 1, 0, 0, 0, 18271, 2103, 1, 0, 0, 0, 18272, 18273, 5, 618, 0, 0, 18273, 18274, 3, 2348, 1174, 0, 18274, 18275, 5, 736, 0, 0, 18275, 18282, 5, 2445, 0, 0, 18276, 18283, 3, 1888, 944, 0, 18277, 18279, 5, 2445, 0, 0, 18278, 18280, 3, 2068, 1034, 0, 18279, 18278, 1, 0, 0, 0, 18279, 18280, 1, 0, 0, 0, 18280, 18281, 1, 0, 0, 0, 18281, 18283, 5, 2446, 0, 0, 18282, 18276, 1, 0, 0, 0, 18282, 18277, 1, 0, 0, 0, 18283, 18284, 1, 0, 0, 0, 18284, 18285, 5, 2446, 0, 0, 18285, 2105, 1, 0, 0, 0, 18286, 18287, 6, 1053, -1, 0, 18287, 18288, 7, 139, 0, 0, 18288, 18305, 3, 2106, 1053, 12, 18289, 18290, 5, 1452, 0, 0, 18290, 18305, 3, 2106, 1053, 11, 18291, 18292, 5, 277, 0, 0, 18292, 18305, 3, 2106, 1053, 10, 18293, 18294, 5, 1019, 0, 0, 18294, 18305, 3, 2106, 1053, 9, 18295, 18296, 5, 443, 0, 0, 18296, 18305, 3, 2106, 1053, 8, 18297, 18298, 5, 38, 0, 0, 18298, 18305, 3, 2106, 1053, 7, 18299, 18305, 3, 2122, 1061, 0, 18300, 18305, 3, 2134, 1067, 0, 18301, 18305, 3, 2138, 1069, 0, 18302, 18305, 3, 2132, 1066, 0, 18303, 18305, 3, 2108, 1054, 0, 18304, 18286, 1, 0, 0, 0, 18304, 18289, 1, 0, 0, 0, 18304, 18291, 1, 0, 0, 0, 18304, 18293, 1, 0, 0, 0, 18304, 18295, 1, 0, 0, 0, 18304, 18297, 1, 0, 0, 0, 18304, 18299, 1, 0, 0, 0, 18304, 18300, 1, 0, 0, 0, 18304, 18301, 1, 0, 0, 0, 18304, 18302, 1, 0, 0, 0, 18304, 18303, 1, 0, 0, 0, 18305, 18318, 1, 0, 0, 0, 18306, 18307, 10, 5, 0, 0, 18307, 18314, 5, 2438, 0, 0, 18308, 18315, 7, 230, 0, 0, 18309, 18310, 7, 231, 0, 0, 18310, 18311, 5, 2445, 0, 0, 18311, 18312, 3, 2070, 1035, 0, 18312, 18313, 5, 2446, 0, 0, 18313, 18315, 1, 0, 0, 0, 18314, 18308, 1, 0, 0, 0, 18314, 18309, 1, 0, 0, 0, 18315, 18317, 1, 0, 0, 0, 18316, 18306, 1, 0, 0, 0, 18317, 18320, 1, 0, 0, 0, 18318, 18316, 1, 0, 0, 0, 18318, 18319, 1, 0, 0, 0, 18319, 2107, 1, 0, 0, 0, 18320, 18318, 1, 0, 0, 0, 18321, 18338, 5, 1720, 0, 0, 18322, 18323, 5, 1382, 0, 0, 18323, 18324, 5, 2445, 0, 0, 18324, 18325, 3, 2070, 1035, 0, 18325, 18326, 5, 2446, 0, 0, 18326, 18339, 1, 0, 0, 0, 18327, 18336, 5, 1381, 0, 0, 18328, 18329, 5, 2438, 0, 0, 18329, 18337, 5, 311, 0, 0, 18330, 18331, 5, 2445, 0, 0, 18331, 18332, 3, 2070, 1035, 0, 18332, 18333, 5, 2446, 0, 0, 18333, 18334, 5, 2438, 0, 0, 18334, 18335, 7, 232, 0, 0, 18335, 18337, 1, 0, 0, 0, 18336, 18328, 1, 0, 0, 0, 18336, 18330, 1, 0, 0, 0, 18337, 18339, 1, 0, 0, 0, 18338, 18322, 1, 0, 0, 0, 18338, 18327, 1, 0, 0, 0, 18339, 2109, 1, 0, 0, 0, 18340, 18341, 3, 1076, 538, 0, 18341, 18342, 5, 2445, 0, 0, 18342, 18343, 3, 2070, 1035, 0, 18343, 18348, 5, 2446, 0, 0, 18344, 18345, 5, 2438, 0, 0, 18345, 18347, 3, 2374, 1187, 0, 18346, 18344, 1, 0, 0, 0, 18347, 18350, 1, 0, 0, 0, 18348, 18346, 1, 0, 0, 0, 18348, 18349, 1, 0, 0, 0, 18349, 2111, 1, 0, 0, 0, 18350, 18348, 1, 0, 0, 0, 18351, 18354, 3, 2116, 1058, 0, 18352, 18354, 3, 2114, 1057, 0, 18353, 18351, 1, 0, 0, 0, 18353, 18352, 1, 0, 0, 0, 18354, 2113, 1, 0, 0, 0, 18355, 18357, 3, 1764, 882, 0, 18356, 18355, 1, 0, 0, 0, 18356, 18357, 1, 0, 0, 0, 18357, 18358, 1, 0, 0, 0, 18358, 18359, 5, 180, 0, 0, 18359, 18361, 3, 2070, 1035, 0, 18360, 18362, 3, 2118, 1059, 0, 18361, 18360, 1, 0, 0, 0, 18362, 18363, 1, 0, 0, 0, 18363, 18361, 1, 0, 0, 0, 18363, 18364, 1, 0, 0, 0, 18364, 18366, 1, 0, 0, 0, 18365, 18367, 3, 2120, 1060, 0, 18366, 18365, 1, 0, 0, 0, 18366, 18367, 1, 0, 0, 0, 18367, 18368, 1, 0, 0, 0, 18368, 18370, 5, 506, 0, 0, 18369, 18371, 5, 180, 0, 0, 18370, 18369, 1, 0, 0, 0, 18370, 18371, 1, 0, 0, 0, 18371, 18373, 1, 0, 0, 0, 18372, 18374, 3, 2300, 1150, 0, 18373, 18372, 1, 0, 0, 0, 18373, 18374, 1, 0, 0, 0, 18374, 2115, 1, 0, 0, 0, 18375, 18377, 3, 1764, 882, 0, 18376, 18375, 1, 0, 0, 0, 18376, 18377, 1, 0, 0, 0, 18377, 18378, 1, 0, 0, 0, 18378, 18380, 5, 180, 0, 0, 18379, 18381, 3, 2118, 1059, 0, 18380, 18379, 1, 0, 0, 0, 18381, 18382, 1, 0, 0, 0, 18382, 18380, 1, 0, 0, 0, 18382, 18383, 1, 0, 0, 0, 18383, 18385, 1, 0, 0, 0, 18384, 18386, 3, 2120, 1060, 0, 18385, 18384, 1, 0, 0, 0, 18385, 18386, 1, 0, 0, 0, 18386, 18387, 1, 0, 0, 0, 18387, 18389, 5, 506, 0, 0, 18388, 18390, 5, 180, 0, 0, 18389, 18388, 1, 0, 0, 0, 18389, 18390, 1, 0, 0, 0, 18390, 18392, 1, 0, 0, 0, 18391, 18393, 3, 2300, 1150, 0, 18392, 18391, 1, 0, 0, 0, 18392, 18393, 1, 0, 0, 0, 18393, 2117, 1, 0, 0, 0, 18394, 18395, 5, 2298, 0, 0, 18395, 18396, 3, 2070, 1035, 0, 18396, 18397, 5, 2097, 0, 0, 18397, 18398, 3, 1762, 881, 0, 18398, 2119, 1, 0, 0, 0, 18399, 18400, 5, 489, 0, 0, 18400, 18401, 3, 1762, 881, 0, 18401, 2121, 1, 0, 0, 0, 18402, 18405, 3, 2126, 1063, 0, 18403, 18405, 3, 2124, 1062, 0, 18404, 18402, 1, 0, 0, 0, 18404, 18403, 1, 0, 0, 0, 18405, 2123, 1, 0, 0, 0, 18406, 18407, 5, 180, 0, 0, 18407, 18409, 3, 2070, 1035, 0, 18408, 18410, 3, 2128, 1064, 0, 18409, 18408, 1, 0, 0, 0, 18410, 18411, 1, 0, 0, 0, 18411, 18409, 1, 0, 0, 0, 18411, 18412, 1, 0, 0, 0, 18412, 18414, 1, 0, 0, 0, 18413, 18415, 3, 2130, 1065, 0, 18414, 18413, 1, 0, 0, 0, 18414, 18415, 1, 0, 0, 0, 18415, 18416, 1, 0, 0, 0, 18416, 18418, 5, 506, 0, 0, 18417, 18419, 5, 180, 0, 0, 18418, 18417, 1, 0, 0, 0, 18418, 18419, 1, 0, 0, 0, 18419, 2125, 1, 0, 0, 0, 18420, 18422, 5, 180, 0, 0, 18421, 18423, 3, 2128, 1064, 0, 18422, 18421, 1, 0, 0, 0, 18423, 18424, 1, 0, 0, 0, 18424, 18422, 1, 0, 0, 0, 18424, 18425, 1, 0, 0, 0, 18425, 18427, 1, 0, 0, 0, 18426, 18428, 3, 2130, 1065, 0, 18427, 18426, 1, 0, 0, 0, 18427, 18428, 1, 0, 0, 0, 18428, 18429, 1, 0, 0, 0, 18429, 18431, 5, 506, 0, 0, 18430, 18432, 5, 180, 0, 0, 18431, 18430, 1, 0, 0, 0, 18431, 18432, 1, 0, 0, 0, 18432, 2127, 1, 0, 0, 0, 18433, 18434, 5, 2298, 0, 0, 18434, 18435, 3, 2070, 1035, 0, 18435, 18436, 5, 2097, 0, 0, 18436, 18437, 3, 2070, 1035, 0, 18437, 2129, 1, 0, 0, 0, 18438, 18439, 5, 489, 0, 0, 18439, 18440, 3, 2070, 1035, 0, 18440, 2131, 1, 0, 0, 0, 18441, 18462, 3, 2370, 1185, 0, 18442, 18462, 3, 2382, 1191, 0, 18443, 18462, 3, 2394, 1197, 0, 18444, 18446, 3, 2372, 1186, 0, 18445, 18447, 3, 2396, 1198, 0, 18446, 18445, 1, 0, 0, 0, 18446, 18447, 1, 0, 0, 0, 18447, 18462, 1, 0, 0, 0, 18448, 18449, 5, 2445, 0, 0, 18449, 18450, 3, 1888, 944, 0, 18450, 18454, 5, 2446, 0, 0, 18451, 18453, 3, 1892, 946, 0, 18452, 18451, 1, 0, 0, 0, 18453, 18456, 1, 0, 0, 0, 18454, 18452, 1, 0, 0, 0, 18454, 18455, 1, 0, 0, 0, 18455, 18462, 1, 0, 0, 0, 18456, 18454, 1, 0, 0, 0, 18457, 18458, 5, 2445, 0, 0, 18458, 18459, 3, 2068, 1034, 0, 18459, 18460, 5, 2446, 0, 0, 18460, 18462, 1, 0, 0, 0, 18461, 18441, 1, 0, 0, 0, 18461, 18442, 1, 0, 0, 0, 18461, 18443, 1, 0, 0, 0, 18461, 18444, 1, 0, 0, 0, 18461, 18448, 1, 0, 0, 0, 18461, 18457, 1, 0, 0, 0, 18462, 2133, 1, 0, 0, 0, 18463, 18479, 7, 233, 0, 0, 18464, 18465, 5, 2445, 0, 0, 18465, 18466, 3, 1860, 930, 0, 18466, 18467, 5, 2446, 0, 0, 18467, 18480, 1, 0, 0, 0, 18468, 18469, 5, 2445, 0, 0, 18469, 18474, 3, 2070, 1035, 0, 18470, 18471, 5, 2451, 0, 0, 18471, 18473, 3, 2070, 1035, 0, 18472, 18470, 1, 0, 0, 0, 18473, 18476, 1, 0, 0, 0, 18474, 18472, 1, 0, 0, 0, 18474, 18475, 1, 0, 0, 0, 18475, 18477, 1, 0, 0, 0, 18476, 18474, 1, 0, 0, 0, 18477, 18478, 5, 2446, 0, 0, 18478, 18480, 1, 0, 0, 0, 18479, 18464, 1, 0, 0, 0, 18479, 18468, 1, 0, 0, 0, 18480, 2135, 1, 0, 0, 0, 18481, 18482, 5, 2414, 0, 0, 18482, 18483, 5, 2445, 0, 0, 18483, 18484, 3, 2070, 1035, 0, 18484, 18485, 5, 2451, 0, 0, 18485, 18488, 3, 2070, 1035, 0, 18486, 18487, 5, 2451, 0, 0, 18487, 18489, 3, 2070, 1035, 0, 18488, 18486, 1, 0, 0, 0, 18488, 18489, 1, 0, 0, 0, 18489, 18490, 1, 0, 0, 0, 18490, 18491, 5, 2446, 0, 0, 18491, 18568, 1, 0, 0, 0, 18492, 18493, 5, 2415, 0, 0, 18493, 18497, 5, 2445, 0, 0, 18494, 18498, 3, 2376, 1188, 0, 18495, 18498, 3, 2138, 1069, 0, 18496, 18498, 3, 2070, 1035, 0, 18497, 18494, 1, 0, 0, 0, 18497, 18495, 1, 0, 0, 0, 18497, 18496, 1, 0, 0, 0, 18498, 18501, 1, 0, 0, 0, 18499, 18500, 5, 2451, 0, 0, 18500, 18502, 3, 2388, 1194, 0, 18501, 18499, 1, 0, 0, 0, 18501, 18502, 1, 0, 0, 0, 18502, 18505, 1, 0, 0, 0, 18503, 18504, 5, 2451, 0, 0, 18504, 18506, 3, 2388, 1194, 0, 18505, 18503, 1, 0, 0, 0, 18505, 18506, 1, 0, 0, 0, 18506, 18507, 1, 0, 0, 0, 18507, 18508, 5, 2446, 0, 0, 18508, 18568, 1, 0, 0, 0, 18509, 18510, 5, 2399, 0, 0, 18510, 18511, 5, 2445, 0, 0, 18511, 18512, 3, 2068, 1034, 0, 18512, 18513, 5, 2446, 0, 0, 18513, 18568, 1, 0, 0, 0, 18514, 18515, 5, 204, 0, 0, 18515, 18516, 5, 2445, 0, 0, 18516, 18517, 3, 2094, 1047, 0, 18517, 18518, 5, 2244, 0, 0, 18518, 18519, 5, 1005, 0, 0, 18519, 18520, 5, 2446, 0, 0, 18520, 18568, 1, 0, 0, 0, 18521, 18522, 5, 2409, 0, 0, 18522, 18523, 5, 2445, 0, 0, 18523, 18524, 3, 2070, 1035, 0, 18524, 18525, 5, 2451, 0, 0, 18525, 18526, 3, 2070, 1035, 0, 18526, 18527, 5, 2446, 0, 0, 18527, 18568, 1, 0, 0, 0, 18528, 18529, 5, 2416, 0, 0, 18529, 18537, 5, 2445, 0, 0, 18530, 18532, 7, 234, 0, 0, 18531, 18530, 1, 0, 0, 0, 18531, 18532, 1, 0, 0, 0, 18532, 18534, 1, 0, 0, 0, 18533, 18535, 3, 2070, 1035, 0, 18534, 18533, 1, 0, 0, 0, 18534, 18535, 1, 0, 0, 0, 18535, 18536, 1, 0, 0, 0, 18536, 18538, 5, 626, 0, 0, 18537, 18531, 1, 0, 0, 0, 18537, 18538, 1, 0, 0, 0, 18538, 18539, 1, 0, 0, 0, 18539, 18540, 3, 2094, 1047, 0, 18540, 18541, 5, 2446, 0, 0, 18541, 18568, 1, 0, 0, 0, 18542, 18543, 5, 2423, 0, 0, 18543, 18547, 5, 2445, 0, 0, 18544, 18548, 3, 2376, 1188, 0, 18545, 18548, 3, 2138, 1069, 0, 18546, 18548, 3, 2070, 1035, 0, 18547, 18544, 1, 0, 0, 0, 18547, 18545, 1, 0, 0, 0, 18547, 18546, 1, 0, 0, 0, 18548, 18555, 1, 0, 0, 0, 18549, 18550, 5, 387, 0, 0, 18550, 18551, 3, 2094, 1047, 0, 18551, 18552, 5, 1257, 0, 0, 18552, 18553, 5, 299, 0, 0, 18553, 18554, 5, 518, 0, 0, 18554, 18556, 1, 0, 0, 0, 18555, 18549, 1, 0, 0, 0, 18555, 18556, 1, 0, 0, 0, 18556, 18563, 1, 0, 0, 0, 18557, 18558, 5, 2451, 0, 0, 18558, 18561, 3, 2388, 1194, 0, 18559, 18560, 5, 2451, 0, 0, 18560, 18562, 3, 2388, 1194, 0, 18561, 18559, 1, 0, 0, 0, 18561, 18562, 1, 0, 0, 0, 18562, 18564, 1, 0, 0, 0, 18563, 18557, 1, 0, 0, 0, 18563, 18564, 1, 0, 0, 0, 18564, 18565, 1, 0, 0, 0, 18565, 18566, 5, 2446, 0, 0, 18566, 18568, 1, 0, 0, 0, 18567, 18481, 1, 0, 0, 0, 18567, 18492, 1, 0, 0, 0, 18567, 18509, 1, 0, 0, 0, 18567, 18514, 1, 0, 0, 0, 18567, 18521, 1, 0, 0, 0, 18567, 18528, 1, 0, 0, 0, 18567, 18542, 1, 0, 0, 0, 18568, 2137, 1, 0, 0, 0, 18569, 18574, 3, 2136, 1068, 0, 18570, 18574, 3, 2178, 1089, 0, 18571, 18574, 3, 2140, 1070, 0, 18572, 18574, 3, 2184, 1092, 0, 18573, 18569, 1, 0, 0, 0, 18573, 18570, 1, 0, 0, 0, 18573, 18571, 1, 0, 0, 0, 18573, 18572, 1, 0, 0, 0, 18574, 2139, 1, 0, 0, 0, 18575, 18576, 5, 794, 0, 0, 18576, 18577, 5, 2445, 0, 0, 18577, 18582, 3, 2148, 1074, 0, 18578, 18579, 5, 2451, 0, 0, 18579, 18581, 3, 2148, 1074, 0, 18580, 18578, 1, 0, 0, 0, 18581, 18584, 1, 0, 0, 0, 18582, 18580, 1, 0, 0, 0, 18582, 18583, 1, 0, 0, 0, 18583, 18586, 1, 0, 0, 0, 18584, 18582, 1, 0, 0, 0, 18585, 18587, 3, 2150, 1075, 0, 18586, 18585, 1, 0, 0, 0, 18586, 18587, 1, 0, 0, 0, 18587, 18589, 1, 0, 0, 0, 18588, 18590, 3, 2152, 1076, 0, 18589, 18588, 1, 0, 0, 0, 18589, 18590, 1, 0, 0, 0, 18590, 18592, 1, 0, 0, 0, 18591, 18593, 5, 1764, 0, 0, 18592, 18591, 1, 0, 0, 0, 18592, 18593, 1, 0, 0, 0, 18593, 18594, 1, 0, 0, 0, 18594, 18595, 5, 2446, 0, 0, 18595, 18764, 1, 0, 0, 0, 18596, 18597, 5, 793, 0, 0, 18597, 18598, 5, 2445, 0, 0, 18598, 18601, 3, 2070, 1035, 0, 18599, 18600, 5, 619, 0, 0, 18600, 18602, 5, 799, 0, 0, 18601, 18599, 1, 0, 0, 0, 18601, 18602, 1, 0, 0, 0, 18602, 18604, 1, 0, 0, 0, 18603, 18605, 3, 1986, 993, 0, 18604, 18603, 1, 0, 0, 0, 18604, 18605, 1, 0, 0, 0, 18605, 18607, 1, 0, 0, 0, 18606, 18608, 3, 2150, 1075, 0, 18607, 18606, 1, 0, 0, 0, 18607, 18608, 1, 0, 0, 0, 18608, 18610, 1, 0, 0, 0, 18609, 18611, 3, 2152, 1076, 0, 18610, 18609, 1, 0, 0, 0, 18610, 18611, 1, 0, 0, 0, 18611, 18613, 1, 0, 0, 0, 18612, 18614, 5, 1764, 0, 0, 18613, 18612, 1, 0, 0, 0, 18613, 18614, 1, 0, 0, 0, 18614, 18615, 1, 0, 0, 0, 18615, 18616, 5, 2446, 0, 0, 18616, 18764, 1, 0, 0, 0, 18617, 18618, 5, 801, 0, 0, 18618, 18619, 5, 2445, 0, 0, 18619, 18620, 3, 2142, 1071, 0, 18620, 18621, 5, 2446, 0, 0, 18621, 18764, 1, 0, 0, 0, 18622, 18623, 5, 800, 0, 0, 18623, 18625, 5, 2445, 0, 0, 18624, 18626, 5, 814, 0, 0, 18625, 18624, 1, 0, 0, 0, 18625, 18626, 1, 0, 0, 0, 18626, 18627, 1, 0, 0, 0, 18627, 18628, 3, 2070, 1035, 0, 18628, 18629, 5, 2256, 0, 0, 18629, 18633, 3, 2070, 1035, 0, 18630, 18631, 7, 235, 0, 0, 18631, 18632, 5, 1257, 0, 0, 18632, 18634, 5, 1226, 0, 0, 18633, 18630, 1, 0, 0, 0, 18633, 18634, 1, 0, 0, 0, 18634, 18649, 1, 0, 0, 0, 18635, 18647, 5, 1583, 0, 0, 18636, 18643, 5, 2257, 0, 0, 18637, 18638, 5, 2445, 0, 0, 18638, 18640, 5, 2439, 0, 0, 18639, 18641, 7, 236, 0, 0, 18640, 18639, 1, 0, 0, 0, 18640, 18641, 1, 0, 0, 0, 18641, 18642, 1, 0, 0, 0, 18642, 18644, 5, 2446, 0, 0, 18643, 18637, 1, 0, 0, 0, 18643, 18644, 1, 0, 0, 0, 18644, 18648, 1, 0, 0, 0, 18645, 18648, 5, 215, 0, 0, 18646, 18648, 5, 142, 0, 0, 18647, 18636, 1, 0, 0, 0, 18647, 18645, 1, 0, 0, 0, 18647, 18646, 1, 0, 0, 0, 18648, 18650, 1, 0, 0, 0, 18649, 18635, 1, 0, 0, 0, 18649, 18650, 1, 0, 0, 0, 18650, 18652, 1, 0, 0, 0, 18651, 18653, 5, 1764, 0, 0, 18652, 18651, 1, 0, 0, 0, 18652, 18653, 1, 0, 0, 0, 18653, 18657, 1, 0, 0, 0, 18654, 18655, 5, 2306, 0, 0, 18655, 18656, 5, 2181, 0, 0, 18656, 18658, 5, 817, 0, 0, 18657, 18654, 1, 0, 0, 0, 18657, 18658, 1, 0, 0, 0, 18658, 18659, 1, 0, 0, 0, 18659, 18660, 5, 2446, 0, 0, 18660, 18764, 1, 0, 0, 0, 18661, 18662, 5, 803, 0, 0, 18662, 18663, 5, 2445, 0, 0, 18663, 18666, 3, 2070, 1035, 0, 18664, 18665, 5, 619, 0, 0, 18665, 18667, 5, 799, 0, 0, 18666, 18664, 1, 0, 0, 0, 18666, 18667, 1, 0, 0, 0, 18667, 18668, 1, 0, 0, 0, 18668, 18669, 5, 2451, 0, 0, 18669, 18670, 5, 2441, 0, 0, 18670, 18672, 3, 2160, 1080, 0, 18671, 18673, 3, 2164, 1082, 0, 18672, 18671, 1, 0, 0, 0, 18672, 18673, 1, 0, 0, 0, 18673, 18675, 1, 0, 0, 0, 18674, 18676, 3, 2166, 1083, 0, 18675, 18674, 1, 0, 0, 0, 18675, 18676, 1, 0, 0, 0, 18676, 18678, 1, 0, 0, 0, 18677, 18679, 3, 2168, 1084, 0, 18678, 18677, 1, 0, 0, 0, 18678, 18679, 1, 0, 0, 0, 18679, 18680, 1, 0, 0, 0, 18680, 18681, 5, 2446, 0, 0, 18681, 18764, 1, 0, 0, 0, 18682, 18683, 5, 804, 0, 0, 18683, 18684, 5, 2445, 0, 0, 18684, 18687, 5, 2441, 0, 0, 18685, 18686, 5, 1583, 0, 0, 18686, 18688, 3, 2162, 1081, 0, 18687, 18685, 1, 0, 0, 0, 18687, 18688, 1, 0, 0, 0, 18688, 18690, 1, 0, 0, 0, 18689, 18691, 5, 1446, 0, 0, 18690, 18689, 1, 0, 0, 0, 18690, 18691, 1, 0, 0, 0, 18691, 18693, 1, 0, 0, 0, 18692, 18694, 5, 71, 0, 0, 18693, 18692, 1, 0, 0, 0, 18693, 18694, 1, 0, 0, 0, 18694, 18696, 1, 0, 0, 0, 18695, 18697, 5, 2157, 0, 0, 18696, 18695, 1, 0, 0, 0, 18696, 18697, 1, 0, 0, 0, 18697, 18706, 1, 0, 0, 0, 18698, 18703, 5, 1226, 0, 0, 18699, 18703, 5, 518, 0, 0, 18700, 18701, 5, 495, 0, 0, 18701, 18703, 7, 237, 0, 0, 18702, 18698, 1, 0, 0, 0, 18702, 18699, 1, 0, 0, 0, 18702, 18700, 1, 0, 0, 0, 18703, 18704, 1, 0, 0, 0, 18704, 18705, 5, 1257, 0, 0, 18705, 18707, 5, 518, 0, 0, 18706, 18702, 1, 0, 0, 0, 18706, 18707, 1, 0, 0, 0, 18707, 18708, 1, 0, 0, 0, 18708, 18764, 5, 2446, 0, 0, 18709, 18710, 5, 808, 0, 0, 18710, 18711, 5, 2445, 0, 0, 18711, 18712, 3, 2070, 1035, 0, 18712, 18713, 5, 2451, 0, 0, 18713, 18718, 3, 2154, 1077, 0, 18714, 18715, 5, 2451, 0, 0, 18715, 18717, 3, 2154, 1077, 0, 18716, 18714, 1, 0, 0, 0, 18717, 18720, 1, 0, 0, 0, 18718, 18716, 1, 0, 0, 0, 18718, 18719, 1, 0, 0, 0, 18719, 18721, 1, 0, 0, 0, 18720, 18718, 1, 0, 0, 0, 18721, 18722, 5, 2446, 0, 0, 18722, 18764, 1, 0, 0, 0, 18723, 18724, 5, 809, 0, 0, 18724, 18725, 5, 2445, 0, 0, 18725, 18728, 3, 2070, 1035, 0, 18726, 18727, 5, 619, 0, 0, 18727, 18729, 5, 799, 0, 0, 18728, 18726, 1, 0, 0, 0, 18728, 18729, 1, 0, 0, 0, 18729, 18761, 1, 0, 0, 0, 18730, 18732, 5, 2451, 0, 0, 18731, 18733, 5, 2441, 0, 0, 18732, 18731, 1, 0, 0, 0, 18732, 18733, 1, 0, 0, 0, 18733, 18735, 1, 0, 0, 0, 18734, 18736, 3, 2170, 1085, 0, 18735, 18734, 1, 0, 0, 0, 18735, 18736, 1, 0, 0, 0, 18736, 18745, 1, 0, 0, 0, 18737, 18742, 5, 518, 0, 0, 18738, 18742, 5, 1226, 0, 0, 18739, 18740, 5, 387, 0, 0, 18740, 18742, 3, 2176, 1088, 0, 18741, 18737, 1, 0, 0, 0, 18741, 18738, 1, 0, 0, 0, 18741, 18739, 1, 0, 0, 0, 18741, 18742, 1, 0, 0, 0, 18742, 18743, 1, 0, 0, 0, 18743, 18744, 5, 1257, 0, 0, 18744, 18746, 5, 518, 0, 0, 18745, 18741, 1, 0, 0, 0, 18745, 18746, 1, 0, 0, 0, 18746, 18755, 1, 0, 0, 0, 18747, 18752, 5, 518, 0, 0, 18748, 18752, 5, 1226, 0, 0, 18749, 18750, 5, 387, 0, 0, 18750, 18752, 3, 2176, 1088, 0, 18751, 18747, 1, 0, 0, 0, 18751, 18748, 1, 0, 0, 0, 18751, 18749, 1, 0, 0, 0, 18751, 18752, 1, 0, 0, 0, 18752, 18753, 1, 0, 0, 0, 18753, 18754, 5, 1257, 0, 0, 18754, 18756, 5, 495, 0, 0, 18755, 18751, 1, 0, 0, 0, 18755, 18756, 1, 0, 0, 0, 18756, 18758, 1, 0, 0, 0, 18757, 18759, 3, 2174, 1087, 0, 18758, 18757, 1, 0, 0, 0, 18758, 18759, 1, 0, 0, 0, 18759, 18760, 1, 0, 0, 0, 18760, 18762, 5, 2446, 0, 0, 18761, 18730, 1, 0, 0, 0, 18761, 18762, 1, 0, 0, 0, 18762, 18764, 1, 0, 0, 0, 18763, 18575, 1, 0, 0, 0, 18763, 18596, 1, 0, 0, 0, 18763, 18617, 1, 0, 0, 0, 18763, 18622, 1, 0, 0, 0, 18763, 18661, 1, 0, 0, 0, 18763, 18682, 1, 0, 0, 0, 18763, 18709, 1, 0, 0, 0, 18763, 18723, 1, 0, 0, 0, 18764, 2141, 1, 0, 0, 0, 18765, 18770, 3, 2144, 1072, 0, 18766, 18767, 5, 2451, 0, 0, 18767, 18769, 3, 2144, 1072, 0, 18768, 18766, 1, 0, 0, 0, 18769, 18772, 1, 0, 0, 0, 18770, 18768, 1, 0, 0, 0, 18770, 18771, 1, 0, 0, 0, 18771, 18775, 1, 0, 0, 0, 18772, 18770, 1, 0, 0, 0, 18773, 18775, 5, 2448, 0, 0, 18774, 18765, 1, 0, 0, 0, 18774, 18773, 1, 0, 0, 0, 18775, 18777, 1, 0, 0, 0, 18776, 18778, 3, 2150, 1075, 0, 18777, 18776, 1, 0, 0, 0, 18777, 18778, 1, 0, 0, 0, 18778, 18780, 1, 0, 0, 0, 18779, 18781, 3, 2152, 1076, 0, 18780, 18779, 1, 0, 0, 0, 18780, 18781, 1, 0, 0, 0, 18781, 18783, 1, 0, 0, 0, 18782, 18784, 5, 1764, 0, 0, 18783, 18782, 1, 0, 0, 0, 18783, 18784, 1, 0, 0, 0, 18784, 18788, 1, 0, 0, 0, 18785, 18786, 5, 2306, 0, 0, 18786, 18787, 5, 2181, 0, 0, 18787, 18789, 5, 817, 0, 0, 18788, 18785, 1, 0, 0, 0, 18788, 18789, 1, 0, 0, 0, 18789, 2143, 1, 0, 0, 0, 18790, 18792, 5, 814, 0, 0, 18791, 18790, 1, 0, 0, 0, 18791, 18792, 1, 0, 0, 0, 18792, 18793, 1, 0, 0, 0, 18793, 18795, 3, 2070, 1035, 0, 18794, 18796, 7, 238, 0, 0, 18795, 18794, 1, 0, 0, 0, 18795, 18796, 1, 0, 0, 0, 18796, 18797, 1, 0, 0, 0, 18797, 18798, 3, 2070, 1035, 0, 18798, 18805, 1, 0, 0, 0, 18799, 18800, 3, 2070, 1035, 0, 18800, 18801, 5, 2466, 0, 0, 18801, 18802, 3, 2070, 1035, 0, 18802, 18805, 1, 0, 0, 0, 18803, 18805, 3, 2390, 1195, 0, 18804, 18791, 1, 0, 0, 0, 18804, 18799, 1, 0, 0, 0, 18804, 18803, 1, 0, 0, 0, 18805, 18808, 1, 0, 0, 0, 18806, 18807, 5, 619, 0, 0, 18807, 18809, 5, 799, 0, 0, 18808, 18806, 1, 0, 0, 0, 18808, 18809, 1, 0, 0, 0, 18809, 2145, 1, 0, 0, 0, 18810, 18811, 5, 805, 0, 0, 18811, 18812, 5, 2445, 0, 0, 18812, 18815, 3, 2070, 1035, 0, 18813, 18814, 5, 619, 0, 0, 18814, 18816, 5, 799, 0, 0, 18815, 18813, 1, 0, 0, 0, 18815, 18816, 1, 0, 0, 0, 18816, 18819, 1, 0, 0, 0, 18817, 18818, 5, 2451, 0, 0, 18818, 18820, 5, 2441, 0, 0, 18819, 18817, 1, 0, 0, 0, 18819, 18820, 1, 0, 0, 0, 18820, 18824, 1, 0, 0, 0, 18821, 18822, 7, 239, 0, 0, 18822, 18823, 5, 1257, 0, 0, 18823, 18825, 5, 518, 0, 0, 18824, 18821, 1, 0, 0, 0, 18824, 18825, 1, 0, 0, 0, 18825, 18829, 1, 0, 0, 0, 18826, 18827, 7, 240, 0, 0, 18827, 18828, 5, 1257, 0, 0, 18828, 18830, 5, 495, 0, 0, 18829, 18826, 1, 0, 0, 0, 18829, 18830, 1, 0, 0, 0, 18830, 18832, 1, 0, 0, 0, 18831, 18833, 3, 2156, 1078, 0, 18832, 18831, 1, 0, 0, 0, 18832, 18833, 1, 0, 0, 0, 18833, 18834, 1, 0, 0, 0, 18834, 18835, 5, 2446, 0, 0, 18835, 2147, 1, 0, 0, 0, 18836, 18842, 3, 2070, 1035, 0, 18837, 18842, 5, 2441, 0, 0, 18838, 18842, 5, 1226, 0, 0, 18839, 18842, 5, 2439, 0, 0, 18840, 18842, 3, 2140, 1070, 0, 18841, 18836, 1, 0, 0, 0, 18841, 18837, 1, 0, 0, 0, 18841, 18838, 1, 0, 0, 0, 18841, 18839, 1, 0, 0, 0, 18841, 18840, 1, 0, 0, 0, 18842, 18845, 1, 0, 0, 0, 18843, 18844, 5, 619, 0, 0, 18844, 18846, 5, 799, 0, 0, 18845, 18843, 1, 0, 0, 0, 18845, 18846, 1, 0, 0, 0, 18846, 2149, 1, 0, 0, 0, 18847, 18848, 7, 235, 0, 0, 18848, 18849, 5, 1257, 0, 0, 18849, 18850, 5, 1226, 0, 0, 18850, 2151, 1, 0, 0, 0, 18851, 18863, 5, 1583, 0, 0, 18852, 18859, 5, 2257, 0, 0, 18853, 18854, 5, 2445, 0, 0, 18854, 18856, 5, 2439, 0, 0, 18855, 18857, 7, 236, 0, 0, 18856, 18855, 1, 0, 0, 0, 18856, 18857, 1, 0, 0, 0, 18857, 18858, 1, 0, 0, 0, 18858, 18860, 5, 2446, 0, 0, 18859, 18853, 1, 0, 0, 0, 18859, 18860, 1, 0, 0, 0, 18860, 18864, 1, 0, 0, 0, 18861, 18864, 5, 215, 0, 0, 18862, 18864, 5, 142, 0, 0, 18863, 18852, 1, 0, 0, 0, 18863, 18861, 1, 0, 0, 0, 18863, 18862, 1, 0, 0, 0, 18864, 2153, 1, 0, 0, 0, 18865, 18866, 5, 1556, 0, 0, 18866, 18872, 5, 2441, 0, 0, 18867, 18869, 7, 241, 0, 0, 18868, 18867, 1, 0, 0, 0, 18868, 18869, 1, 0, 0, 0, 18869, 18870, 1, 0, 0, 0, 18870, 18871, 5, 1257, 0, 0, 18871, 18873, 5, 962, 0, 0, 18872, 18868, 1, 0, 0, 0, 18872, 18873, 1, 0, 0, 0, 18873, 18953, 1, 0, 0, 0, 18874, 18875, 5, 754, 0, 0, 18875, 18876, 5, 2441, 0, 0, 18876, 18877, 5, 2469, 0, 0, 18877, 18881, 5, 2441, 0, 0, 18878, 18879, 7, 242, 0, 0, 18879, 18880, 5, 1257, 0, 0, 18880, 18882, 5, 542, 0, 0, 18881, 18878, 1, 0, 0, 0, 18881, 18882, 1, 0, 0, 0, 18882, 18888, 1, 0, 0, 0, 18883, 18885, 7, 243, 0, 0, 18884, 18883, 1, 0, 0, 0, 18884, 18885, 1, 0, 0, 0, 18885, 18886, 1, 0, 0, 0, 18886, 18887, 5, 1257, 0, 0, 18887, 18889, 5, 1226, 0, 0, 18888, 18884, 1, 0, 0, 0, 18888, 18889, 1, 0, 0, 0, 18889, 18953, 1, 0, 0, 0, 18890, 18891, 5, 1560, 0, 0, 18891, 18892, 5, 2441, 0, 0, 18892, 18893, 5, 2469, 0, 0, 18893, 18897, 5, 2441, 0, 0, 18894, 18895, 7, 244, 0, 0, 18895, 18896, 5, 1257, 0, 0, 18896, 18898, 5, 962, 0, 0, 18897, 18894, 1, 0, 0, 0, 18897, 18898, 1, 0, 0, 0, 18898, 18904, 1, 0, 0, 0, 18899, 18901, 7, 245, 0, 0, 18900, 18899, 1, 0, 0, 0, 18900, 18901, 1, 0, 0, 0, 18901, 18902, 1, 0, 0, 0, 18902, 18903, 5, 1257, 0, 0, 18903, 18905, 5, 1226, 0, 0, 18904, 18900, 1, 0, 0, 0, 18904, 18905, 1, 0, 0, 0, 18905, 18953, 1, 0, 0, 0, 18906, 18909, 3, 2070, 1035, 0, 18907, 18908, 5, 619, 0, 0, 18908, 18910, 5, 799, 0, 0, 18909, 18907, 1, 0, 0, 0, 18909, 18910, 1, 0, 0, 0, 18910, 18953, 1, 0, 0, 0, 18911, 18912, 5, 57, 0, 0, 18912, 18913, 5, 2441, 0, 0, 18913, 18914, 5, 2469, 0, 0, 18914, 18918, 5, 2441, 0, 0, 18915, 18916, 7, 244, 0, 0, 18916, 18917, 5, 1257, 0, 0, 18917, 18919, 5, 962, 0, 0, 18918, 18915, 1, 0, 0, 0, 18918, 18919, 1, 0, 0, 0, 18919, 18925, 1, 0, 0, 0, 18920, 18922, 7, 245, 0, 0, 18921, 18920, 1, 0, 0, 0, 18921, 18922, 1, 0, 0, 0, 18922, 18923, 1, 0, 0, 0, 18923, 18924, 5, 1257, 0, 0, 18924, 18926, 5, 1226, 0, 0, 18925, 18921, 1, 0, 0, 0, 18925, 18926, 1, 0, 0, 0, 18926, 18953, 1, 0, 0, 0, 18927, 18928, 5, 1669, 0, 0, 18928, 18929, 5, 2441, 0, 0, 18929, 18930, 5, 2469, 0, 0, 18930, 18933, 3, 2070, 1035, 0, 18931, 18932, 5, 619, 0, 0, 18932, 18934, 5, 799, 0, 0, 18933, 18931, 1, 0, 0, 0, 18933, 18934, 1, 0, 0, 0, 18934, 18938, 1, 0, 0, 0, 18935, 18936, 7, 242, 0, 0, 18936, 18937, 5, 1257, 0, 0, 18937, 18939, 5, 542, 0, 0, 18938, 18935, 1, 0, 0, 0, 18938, 18939, 1, 0, 0, 0, 18939, 18943, 1, 0, 0, 0, 18940, 18941, 7, 244, 0, 0, 18941, 18942, 5, 1257, 0, 0, 18942, 18944, 5, 962, 0, 0, 18943, 18940, 1, 0, 0, 0, 18943, 18944, 1, 0, 0, 0, 18944, 18950, 1, 0, 0, 0, 18945, 18947, 7, 245, 0, 0, 18946, 18945, 1, 0, 0, 0, 18946, 18947, 1, 0, 0, 0, 18947, 18948, 1, 0, 0, 0, 18948, 18949, 5, 1257, 0, 0, 18949, 18951, 5, 1226, 0, 0, 18950, 18946, 1, 0, 0, 0, 18950, 18951, 1, 0, 0, 0, 18951, 18953, 1, 0, 0, 0, 18952, 18865, 1, 0, 0, 0, 18952, 18874, 1, 0, 0, 0, 18952, 18890, 1, 0, 0, 0, 18952, 18906, 1, 0, 0, 0, 18952, 18911, 1, 0, 0, 0, 18952, 18927, 1, 0, 0, 0, 18953, 2155, 1, 0, 0, 0, 18954, 18955, 5, 238, 0, 0, 18955, 18956, 5, 2445, 0, 0, 18956, 18961, 3, 2158, 1079, 0, 18957, 18958, 5, 2451, 0, 0, 18958, 18960, 3, 2158, 1079, 0, 18959, 18957, 1, 0, 0, 0, 18960, 18963, 1, 0, 0, 0, 18961, 18959, 1, 0, 0, 0, 18961, 18962, 1, 0, 0, 0, 18962, 18964, 1, 0, 0, 0, 18963, 18961, 1, 0, 0, 0, 18964, 18965, 5, 2446, 0, 0, 18965, 2157, 1, 0, 0, 0, 18966, 18968, 3, 2070, 1035, 0, 18967, 18969, 3, 2172, 1086, 0, 18968, 18967, 1, 0, 0, 0, 18968, 18969, 1, 0, 0, 0, 18969, 18980, 1, 0, 0, 0, 18970, 18972, 5, 543, 0, 0, 18971, 18970, 1, 0, 0, 0, 18971, 18972, 1, 0, 0, 0, 18972, 18973, 1, 0, 0, 0, 18973, 18974, 5, 1361, 0, 0, 18974, 18981, 5, 2441, 0, 0, 18975, 18978, 5, 2157, 0, 0, 18976, 18977, 5, 1361, 0, 0, 18977, 18979, 5, 2441, 0, 0, 18978, 18976, 1, 0, 0, 0, 18978, 18979, 1, 0, 0, 0, 18979, 18981, 1, 0, 0, 0, 18980, 18971, 1, 0, 0, 0, 18980, 18975, 1, 0, 0, 0, 18980, 18981, 1, 0, 0, 0, 18981, 18983, 1, 0, 0, 0, 18982, 18984, 3, 2166, 1083, 0, 18983, 18982, 1, 0, 0, 0, 18983, 18984, 1, 0, 0, 0, 18984, 18986, 1, 0, 0, 0, 18985, 18987, 3, 2168, 1084, 0, 18986, 18985, 1, 0, 0, 0, 18986, 18987, 1, 0, 0, 0, 18987, 19020, 1, 0, 0, 0, 18988, 18990, 3, 2070, 1035, 0, 18989, 18991, 3, 2162, 1081, 0, 18990, 18989, 1, 0, 0, 0, 18990, 18991, 1, 0, 0, 0, 18991, 18993, 1, 0, 0, 0, 18992, 18994, 5, 2157, 0, 0, 18993, 18992, 1, 0, 0, 0, 18993, 18994, 1, 0, 0, 0, 18994, 18995, 1, 0, 0, 0, 18995, 18996, 5, 619, 0, 0, 18996, 18998, 5, 799, 0, 0, 18997, 18999, 3, 2164, 1082, 0, 18998, 18997, 1, 0, 0, 0, 18998, 18999, 1, 0, 0, 0, 18999, 19000, 1, 0, 0, 0, 19000, 19001, 5, 1361, 0, 0, 19001, 19002, 5, 2441, 0, 0, 19002, 19020, 1, 0, 0, 0, 19003, 19005, 5, 1011, 0, 0, 19004, 19006, 5, 1361, 0, 0, 19005, 19004, 1, 0, 0, 0, 19005, 19006, 1, 0, 0, 0, 19006, 19007, 1, 0, 0, 0, 19007, 19011, 3, 2070, 1035, 0, 19008, 19009, 5, 2470, 0, 0, 19009, 19010, 5, 2448, 0, 0, 19010, 19012, 5, 2471, 0, 0, 19011, 19008, 1, 0, 0, 0, 19011, 19012, 1, 0, 0, 0, 19012, 19013, 1, 0, 0, 0, 19013, 19014, 3, 2156, 1078, 0, 19014, 19020, 1, 0, 0, 0, 19015, 19016, 3, 2070, 1035, 0, 19016, 19017, 5, 618, 0, 0, 19017, 19018, 5, 1302, 0, 0, 19018, 19020, 1, 0, 0, 0, 19019, 18966, 1, 0, 0, 0, 19019, 18988, 1, 0, 0, 0, 19019, 19003, 1, 0, 0, 0, 19019, 19015, 1, 0, 0, 0, 19020, 2159, 1, 0, 0, 0, 19021, 19022, 5, 1583, 0, 0, 19022, 19024, 3, 2162, 1081, 0, 19023, 19021, 1, 0, 0, 0, 19023, 19024, 1, 0, 0, 0, 19024, 19026, 1, 0, 0, 0, 19025, 19027, 5, 1446, 0, 0, 19026, 19025, 1, 0, 0, 0, 19026, 19027, 1, 0, 0, 0, 19027, 19029, 1, 0, 0, 0, 19028, 19030, 5, 71, 0, 0, 19029, 19028, 1, 0, 0, 0, 19029, 19030, 1, 0, 0, 0, 19030, 2161, 1, 0, 0, 0, 19031, 19038, 5, 2257, 0, 0, 19032, 19033, 5, 2445, 0, 0, 19033, 19035, 5, 2439, 0, 0, 19034, 19036, 7, 236, 0, 0, 19035, 19034, 1, 0, 0, 0, 19035, 19036, 1, 0, 0, 0, 19036, 19037, 1, 0, 0, 0, 19037, 19039, 5, 2446, 0, 0, 19038, 19032, 1, 0, 0, 0, 19038, 19039, 1, 0, 0, 0, 19039, 19043, 1, 0, 0, 0, 19040, 19043, 5, 215, 0, 0, 19041, 19043, 5, 142, 0, 0, 19042, 19031, 1, 0, 0, 0, 19042, 19040, 1, 0, 0, 0, 19042, 19041, 1, 0, 0, 0, 19043, 2163, 1, 0, 0, 0, 19044, 19046, 5, 2304, 0, 0, 19045, 19047, 5, 68, 0, 0, 19046, 19045, 1, 0, 0, 0, 19046, 19047, 1, 0, 0, 0, 19047, 19048, 1, 0, 0, 0, 19048, 19058, 5, 2310, 0, 0, 19049, 19051, 5, 2306, 0, 0, 19050, 19052, 7, 246, 0, 0, 19051, 19050, 1, 0, 0, 0, 19051, 19052, 1, 0, 0, 0, 19052, 19054, 1, 0, 0, 0, 19053, 19055, 5, 68, 0, 0, 19054, 19053, 1, 0, 0, 0, 19054, 19055, 1, 0, 0, 0, 19055, 19056, 1, 0, 0, 0, 19056, 19058, 5, 2310, 0, 0, 19057, 19044, 1, 0, 0, 0, 19057, 19049, 1, 0, 0, 0, 19058, 2165, 1, 0, 0, 0, 19059, 19067, 5, 518, 0, 0, 19060, 19067, 5, 1226, 0, 0, 19061, 19067, 5, 495, 0, 0, 19062, 19063, 5, 495, 0, 0, 19063, 19067, 5, 68, 0, 0, 19064, 19065, 5, 495, 0, 0, 19065, 19067, 5, 1236, 0, 0, 19066, 19059, 1, 0, 0, 0, 19066, 19060, 1, 0, 0, 0, 19066, 19061, 1, 0, 0, 0, 19066, 19062, 1, 0, 0, 0, 19066, 19064, 1, 0, 0, 0, 19066, 19067, 1, 0, 0, 0, 19067, 19068, 1, 0, 0, 0, 19068, 19069, 5, 1257, 0, 0, 19069, 19070, 5, 518, 0, 0, 19070, 2167, 1, 0, 0, 0, 19071, 19079, 5, 518, 0, 0, 19072, 19079, 5, 1226, 0, 0, 19073, 19079, 5, 495, 0, 0, 19074, 19075, 5, 495, 0, 0, 19075, 19079, 5, 68, 0, 0, 19076, 19077, 5, 495, 0, 0, 19077, 19079, 5, 1236, 0, 0, 19078, 19071, 1, 0, 0, 0, 19078, 19072, 1, 0, 0, 0, 19078, 19073, 1, 0, 0, 0, 19078, 19074, 1, 0, 0, 0, 19078, 19076, 1, 0, 0, 0, 19078, 19079, 1, 0, 0, 0, 19079, 19080, 1, 0, 0, 0, 19080, 19081, 5, 1257, 0, 0, 19081, 19082, 5, 495, 0, 0, 19082, 2169, 1, 0, 0, 0, 19083, 19085, 5, 1583, 0, 0, 19084, 19086, 3, 2172, 1086, 0, 19085, 19084, 1, 0, 0, 0, 19085, 19086, 1, 0, 0, 0, 19086, 19088, 1, 0, 0, 0, 19087, 19089, 5, 71, 0, 0, 19088, 19087, 1, 0, 0, 0, 19088, 19089, 1, 0, 0, 0, 19089, 2171, 1, 0, 0, 0, 19090, 19097, 5, 2257, 0, 0, 19091, 19092, 5, 2445, 0, 0, 19092, 19094, 5, 2439, 0, 0, 19093, 19095, 7, 236, 0, 0, 19094, 19093, 1, 0, 0, 0, 19094, 19095, 1, 0, 0, 0, 19095, 19096, 1, 0, 0, 0, 19096, 19098, 5, 2446, 0, 0, 19097, 19091, 1, 0, 0, 0, 19097, 19098, 1, 0, 0, 0, 19098, 19100, 1, 0, 0, 0, 19099, 19101, 5, 2157, 0, 0, 19100, 19099, 1, 0, 0, 0, 19100, 19101, 1, 0, 0, 0, 19101, 19127, 1, 0, 0, 0, 19102, 19127, 5, 215, 0, 0, 19103, 19127, 5, 359, 0, 0, 19104, 19112, 5, 1228, 0, 0, 19105, 19106, 5, 2445, 0, 0, 19106, 19109, 5, 767, 0, 0, 19107, 19108, 5, 2451, 0, 0, 19108, 19110, 5, 767, 0, 0, 19109, 19107, 1, 0, 0, 0, 19109, 19110, 1, 0, 0, 0, 19110, 19111, 1, 0, 0, 0, 19111, 19113, 5, 2446, 0, 0, 19112, 19105, 1, 0, 0, 0, 19112, 19113, 1, 0, 0, 0, 19113, 19127, 1, 0, 0, 0, 19114, 19117, 5, 2106, 0, 0, 19115, 19116, 5, 2306, 0, 0, 19116, 19118, 5, 2111, 0, 0, 19117, 19115, 1, 0, 0, 0, 19117, 19118, 1, 0, 0, 0, 19118, 19127, 1, 0, 0, 0, 19119, 19127, 5, 1631, 0, 0, 19120, 19124, 3, 2070, 1035, 0, 19121, 19122, 5, 2244, 0, 0, 19122, 19123, 5, 182, 0, 0, 19123, 19125, 5, 909, 0, 0, 19124, 19121, 1, 0, 0, 0, 19124, 19125, 1, 0, 0, 0, 19125, 19127, 1, 0, 0, 0, 19126, 19090, 1, 0, 0, 0, 19126, 19102, 1, 0, 0, 0, 19126, 19103, 1, 0, 0, 0, 19126, 19104, 1, 0, 0, 0, 19126, 19114, 1, 0, 0, 0, 19126, 19119, 1, 0, 0, 0, 19126, 19120, 1, 0, 0, 0, 19127, 2173, 1, 0, 0, 0, 19128, 19129, 7, 245, 0, 0, 19129, 19130, 5, 1257, 0, 0, 19130, 19139, 5, 963, 0, 0, 19131, 19132, 5, 2445, 0, 0, 19132, 19133, 5, 962, 0, 0, 19133, 19140, 5, 349, 0, 0, 19134, 19135, 5, 563, 0, 0, 19135, 19140, 5, 349, 0, 0, 19136, 19137, 5, 2164, 0, 0, 19137, 19138, 5, 518, 0, 0, 19138, 19140, 5, 2446, 0, 0, 19139, 19131, 1, 0, 0, 0, 19139, 19134, 1, 0, 0, 0, 19139, 19136, 1, 0, 0, 0, 19139, 19140, 1, 0, 0, 0, 19140, 2175, 1, 0, 0, 0, 19141, 19147, 5, 2441, 0, 0, 19142, 19147, 3, 2136, 1068, 0, 19143, 19147, 3, 2384, 1192, 0, 19144, 19147, 3, 2386, 1193, 0, 19145, 19147, 5, 930, 0, 0, 19146, 19141, 1, 0, 0, 0, 19146, 19142, 1, 0, 0, 0, 19146, 19143, 1, 0, 0, 0, 19146, 19144, 1, 0, 0, 0, 19146, 19145, 1, 0, 0, 0, 19147, 2177, 1, 0, 0, 0, 19148, 19151, 3, 2180, 1090, 0, 19149, 19152, 3, 2102, 1051, 0, 19150, 19152, 3, 2104, 1052, 0, 19151, 19149, 1, 0, 0, 0, 19151, 19150, 1, 0, 0, 0, 19151, 19152, 1, 0, 0, 0, 19152, 2179, 1, 0, 0, 0, 19153, 19154, 5, 2417, 0, 0, 19154, 19156, 5, 2445, 0, 0, 19155, 19157, 7, 223, 0, 0, 19156, 19155, 1, 0, 0, 0, 19156, 19157, 1, 0, 0, 0, 19157, 19158, 1, 0, 0, 0, 19158, 19159, 3, 2070, 1035, 0, 19159, 19160, 5, 2446, 0, 0, 19160, 19212, 1, 0, 0, 0, 19161, 19162, 5, 311, 0, 0, 19162, 19170, 5, 2445, 0, 0, 19163, 19171, 5, 2448, 0, 0, 19164, 19166, 7, 206, 0, 0, 19165, 19164, 1, 0, 0, 0, 19165, 19166, 1, 0, 0, 0, 19166, 19167, 1, 0, 0, 0, 19167, 19169, 3, 2094, 1047, 0, 19168, 19165, 1, 0, 0, 0, 19168, 19169, 1, 0, 0, 0, 19169, 19171, 1, 0, 0, 0, 19170, 19163, 1, 0, 0, 0, 19170, 19168, 1, 0, 0, 0, 19171, 19172, 1, 0, 0, 0, 19172, 19174, 5, 2446, 0, 0, 19173, 19175, 3, 2192, 1096, 0, 19174, 19173, 1, 0, 0, 0, 19174, 19175, 1, 0, 0, 0, 19175, 19212, 1, 0, 0, 0, 19176, 19177, 5, 2412, 0, 0, 19177, 19178, 5, 2445, 0, 0, 19178, 19181, 3, 2070, 1035, 0, 19179, 19180, 5, 2451, 0, 0, 19180, 19182, 5, 2439, 0, 0, 19181, 19179, 1, 0, 0, 0, 19181, 19182, 1, 0, 0, 0, 19182, 19183, 1, 0, 0, 0, 19183, 19184, 5, 2446, 0, 0, 19184, 19212, 1, 0, 0, 0, 19185, 19186, 5, 2396, 0, 0, 19186, 19188, 5, 2445, 0, 0, 19187, 19189, 7, 223, 0, 0, 19188, 19187, 1, 0, 0, 0, 19188, 19189, 1, 0, 0, 0, 19189, 19190, 1, 0, 0, 0, 19190, 19191, 3, 2070, 1035, 0, 19191, 19192, 5, 2446, 0, 0, 19192, 19212, 1, 0, 0, 0, 19193, 19194, 5, 2404, 0, 0, 19194, 19196, 5, 2445, 0, 0, 19195, 19197, 7, 223, 0, 0, 19196, 19195, 1, 0, 0, 0, 19196, 19197, 1, 0, 0, 0, 19197, 19198, 1, 0, 0, 0, 19198, 19199, 3, 2070, 1035, 0, 19199, 19200, 5, 2446, 0, 0, 19200, 19212, 1, 0, 0, 0, 19201, 19202, 5, 2421, 0, 0, 19202, 19203, 5, 2445, 0, 0, 19203, 19204, 3, 2068, 1034, 0, 19204, 19205, 5, 2446, 0, 0, 19205, 19212, 1, 0, 0, 0, 19206, 19207, 5, 2422, 0, 0, 19207, 19208, 5, 2445, 0, 0, 19208, 19209, 3, 2068, 1034, 0, 19209, 19210, 5, 2446, 0, 0, 19210, 19212, 1, 0, 0, 0, 19211, 19153, 1, 0, 0, 0, 19211, 19161, 1, 0, 0, 0, 19211, 19176, 1, 0, 0, 0, 19211, 19185, 1, 0, 0, 0, 19211, 19193, 1, 0, 0, 0, 19211, 19201, 1, 0, 0, 0, 19211, 19206, 1, 0, 0, 0, 19212, 2181, 1, 0, 0, 0, 19213, 19214, 5, 1257, 0, 0, 19214, 19215, 5, 1318, 0, 0, 19215, 19217, 7, 226, 0, 0, 19216, 19218, 5, 2441, 0, 0, 19217, 19216, 1, 0, 0, 0, 19217, 19218, 1, 0, 0, 0, 19218, 19221, 1, 0, 0, 0, 19219, 19220, 7, 2, 0, 0, 19220, 19222, 5, 311, 0, 0, 19221, 19219, 1, 0, 0, 0, 19221, 19222, 1, 0, 0, 0, 19222, 2183, 1, 0, 0, 0, 19223, 19224, 3, 2186, 1093, 0, 19224, 19226, 3, 2354, 1177, 0, 19225, 19227, 3, 2192, 1096, 0, 19226, 19225, 1, 0, 0, 0, 19226, 19227, 1, 0, 0, 0, 19227, 19645, 1, 0, 0, 0, 19228, 19229, 3, 2398, 1199, 0, 19229, 19231, 3, 2356, 1178, 0, 19230, 19232, 3, 2200, 1100, 0, 19231, 19230, 1, 0, 0, 0, 19231, 19232, 1, 0, 0, 0, 19232, 19645, 1, 0, 0, 0, 19233, 19234, 5, 311, 0, 0, 19234, 19240, 5, 2445, 0, 0, 19235, 19241, 5, 2448, 0, 0, 19236, 19238, 7, 206, 0, 0, 19237, 19236, 1, 0, 0, 0, 19237, 19238, 1, 0, 0, 0, 19238, 19239, 1, 0, 0, 0, 19239, 19241, 3, 2094, 1047, 0, 19240, 19235, 1, 0, 0, 0, 19240, 19237, 1, 0, 0, 0, 19241, 19242, 1, 0, 0, 0, 19242, 19244, 5, 2446, 0, 0, 19243, 19245, 3, 2192, 1096, 0, 19244, 19243, 1, 0, 0, 0, 19244, 19245, 1, 0, 0, 0, 19245, 19645, 1, 0, 0, 0, 19246, 19247, 7, 247, 0, 0, 19247, 19254, 5, 2445, 0, 0, 19248, 19249, 5, 992, 0, 0, 19249, 19250, 5, 2445, 0, 0, 19250, 19251, 3, 1888, 944, 0, 19251, 19252, 5, 2446, 0, 0, 19252, 19255, 1, 0, 0, 0, 19253, 19255, 3, 2094, 1047, 0, 19254, 19248, 1, 0, 0, 0, 19254, 19253, 1, 0, 0, 0, 19255, 19256, 1, 0, 0, 0, 19256, 19257, 5, 69, 0, 0, 19257, 19264, 3, 2362, 1181, 0, 19258, 19259, 5, 387, 0, 0, 19259, 19260, 3, 2094, 1047, 0, 19260, 19261, 5, 1257, 0, 0, 19261, 19262, 5, 299, 0, 0, 19262, 19263, 5, 518, 0, 0, 19263, 19265, 1, 0, 0, 0, 19264, 19258, 1, 0, 0, 0, 19264, 19265, 1, 0, 0, 0, 19265, 19272, 1, 0, 0, 0, 19266, 19267, 5, 2451, 0, 0, 19267, 19270, 3, 2388, 1194, 0, 19268, 19269, 5, 2451, 0, 0, 19269, 19271, 3, 2388, 1194, 0, 19270, 19268, 1, 0, 0, 0, 19270, 19271, 1, 0, 0, 0, 19271, 19273, 1, 0, 0, 0, 19272, 19266, 1, 0, 0, 0, 19272, 19273, 1, 0, 0, 0, 19273, 19274, 1, 0, 0, 0, 19274, 19275, 5, 2446, 0, 0, 19275, 19645, 1, 0, 0, 0, 19276, 19277, 5, 228, 0, 0, 19277, 19278, 5, 2445, 0, 0, 19278, 19284, 3, 2376, 1188, 0, 19279, 19282, 5, 2451, 0, 0, 19280, 19283, 3, 2384, 1192, 0, 19281, 19283, 3, 2388, 1194, 0, 19282, 19280, 1, 0, 0, 0, 19282, 19281, 1, 0, 0, 0, 19283, 19285, 1, 0, 0, 0, 19284, 19279, 1, 0, 0, 0, 19284, 19285, 1, 0, 0, 0, 19285, 19286, 1, 0, 0, 0, 19286, 19287, 5, 2446, 0, 0, 19287, 19645, 1, 0, 0, 0, 19288, 19289, 5, 233, 0, 0, 19289, 19291, 5, 2445, 0, 0, 19290, 19292, 7, 248, 0, 0, 19291, 19290, 1, 0, 0, 0, 19291, 19292, 1, 0, 0, 0, 19292, 19293, 1, 0, 0, 0, 19293, 19295, 3, 2094, 1047, 0, 19294, 19296, 3, 2204, 1102, 0, 19295, 19294, 1, 0, 0, 0, 19295, 19296, 1, 0, 0, 0, 19296, 19297, 1, 0, 0, 0, 19297, 19298, 5, 2446, 0, 0, 19298, 19645, 1, 0, 0, 0, 19299, 19300, 3, 2188, 1094, 0, 19300, 19302, 3, 2352, 1176, 0, 19301, 19303, 3, 2206, 1103, 0, 19302, 19301, 1, 0, 0, 0, 19303, 19304, 1, 0, 0, 0, 19304, 19302, 1, 0, 0, 0, 19304, 19305, 1, 0, 0, 0, 19305, 19645, 1, 0, 0, 0, 19306, 19307, 5, 2391, 0, 0, 19307, 19309, 5, 2445, 0, 0, 19308, 19310, 7, 206, 0, 0, 19309, 19308, 1, 0, 0, 0, 19309, 19310, 1, 0, 0, 0, 19310, 19311, 1, 0, 0, 0, 19311, 19314, 3, 2360, 1180, 0, 19312, 19313, 5, 2451, 0, 0, 19313, 19315, 3, 2070, 1035, 0, 19314, 19312, 1, 0, 0, 0, 19314, 19315, 1, 0, 0, 0, 19315, 19317, 1, 0, 0, 0, 19316, 19318, 3, 2182, 1091, 0, 19317, 19316, 1, 0, 0, 0, 19317, 19318, 1, 0, 0, 0, 19318, 19319, 1, 0, 0, 0, 19319, 19326, 5, 2446, 0, 0, 19320, 19321, 5, 2303, 0, 0, 19321, 19322, 5, 647, 0, 0, 19322, 19323, 5, 2445, 0, 0, 19323, 19324, 3, 1986, 993, 0, 19324, 19325, 5, 2446, 0, 0, 19325, 19327, 1, 0, 0, 0, 19326, 19320, 1, 0, 0, 0, 19326, 19327, 1, 0, 0, 0, 19327, 19329, 1, 0, 0, 0, 19328, 19330, 3, 2192, 1096, 0, 19329, 19328, 1, 0, 0, 0, 19329, 19330, 1, 0, 0, 0, 19330, 19645, 1, 0, 0, 0, 19331, 19332, 3, 2318, 1159, 0, 19332, 19333, 7, 249, 0, 0, 19333, 19645, 1, 0, 0, 0, 19334, 19335, 5, 381, 0, 0, 19335, 19336, 5, 2445, 0, 0, 19336, 19338, 3, 2094, 1047, 0, 19337, 19339, 7, 250, 0, 0, 19338, 19337, 1, 0, 0, 0, 19338, 19339, 1, 0, 0, 0, 19339, 19340, 1, 0, 0, 0, 19340, 19341, 5, 2446, 0, 0, 19341, 19645, 1, 0, 0, 0, 19342, 19343, 5, 561, 0, 0, 19343, 19344, 5, 2445, 0, 0, 19344, 19345, 3, 2398, 1199, 0, 19345, 19346, 5, 626, 0, 0, 19346, 19347, 3, 2094, 1047, 0, 19347, 19348, 5, 2446, 0, 0, 19348, 19645, 1, 0, 0, 0, 19349, 19350, 7, 251, 0, 0, 19350, 19352, 3, 2354, 1177, 0, 19351, 19353, 3, 2358, 1179, 0, 19352, 19351, 1, 0, 0, 0, 19352, 19353, 1, 0, 0, 0, 19353, 19354, 1, 0, 0, 0, 19354, 19355, 3, 2192, 1096, 0, 19355, 19645, 1, 0, 0, 0, 19356, 19357, 7, 252, 0, 0, 19357, 19359, 3, 2354, 1177, 0, 19358, 19360, 3, 2358, 1179, 0, 19359, 19358, 1, 0, 0, 0, 19359, 19360, 1, 0, 0, 0, 19360, 19361, 1, 0, 0, 0, 19361, 19362, 3, 2192, 1096, 0, 19362, 19645, 1, 0, 0, 0, 19363, 19364, 3, 2190, 1095, 0, 19364, 19365, 5, 2445, 0, 0, 19365, 19367, 3, 2068, 1034, 0, 19366, 19368, 3, 2210, 1105, 0, 19367, 19366, 1, 0, 0, 0, 19367, 19368, 1, 0, 0, 0, 19368, 19370, 1, 0, 0, 0, 19369, 19371, 3, 2200, 1100, 0, 19370, 19369, 1, 0, 0, 0, 19370, 19371, 1, 0, 0, 0, 19371, 19372, 1, 0, 0, 0, 19372, 19373, 5, 2446, 0, 0, 19373, 19645, 1, 0, 0, 0, 19374, 19375, 7, 253, 0, 0, 19375, 19376, 5, 2445, 0, 0, 19376, 19383, 3, 2094, 1047, 0, 19377, 19378, 5, 387, 0, 0, 19378, 19379, 3, 2094, 1047, 0, 19379, 19380, 5, 1257, 0, 0, 19380, 19381, 5, 299, 0, 0, 19381, 19382, 5, 518, 0, 0, 19382, 19384, 1, 0, 0, 0, 19383, 19377, 1, 0, 0, 0, 19383, 19384, 1, 0, 0, 0, 19384, 19391, 1, 0, 0, 0, 19385, 19386, 5, 2451, 0, 0, 19386, 19389, 3, 2388, 1194, 0, 19387, 19388, 5, 2451, 0, 0, 19388, 19390, 3, 2388, 1194, 0, 19389, 19387, 1, 0, 0, 0, 19389, 19390, 1, 0, 0, 0, 19390, 19392, 1, 0, 0, 0, 19391, 19385, 1, 0, 0, 0, 19391, 19392, 1, 0, 0, 0, 19392, 19393, 1, 0, 0, 0, 19393, 19394, 5, 2446, 0, 0, 19394, 19645, 1, 0, 0, 0, 19395, 19396, 7, 254, 0, 0, 19396, 19397, 5, 2445, 0, 0, 19397, 19404, 3, 2094, 1047, 0, 19398, 19399, 5, 387, 0, 0, 19399, 19400, 3, 2094, 1047, 0, 19400, 19401, 5, 1257, 0, 0, 19401, 19402, 5, 299, 0, 0, 19402, 19403, 5, 518, 0, 0, 19403, 19405, 1, 0, 0, 0, 19404, 19398, 1, 0, 0, 0, 19404, 19405, 1, 0, 0, 0, 19405, 19406, 1, 0, 0, 0, 19406, 19407, 5, 2446, 0, 0, 19407, 19645, 1, 0, 0, 0, 19408, 19409, 5, 2151, 0, 0, 19409, 19410, 5, 2445, 0, 0, 19410, 19413, 3, 2070, 1035, 0, 19411, 19412, 5, 2244, 0, 0, 19412, 19414, 7, 255, 0, 0, 19413, 19411, 1, 0, 0, 0, 19413, 19414, 1, 0, 0, 0, 19414, 19419, 1, 0, 0, 0, 19415, 19416, 5, 2451, 0, 0, 19416, 19418, 3, 2070, 1035, 0, 19417, 19415, 1, 0, 0, 0, 19418, 19421, 1, 0, 0, 0, 19419, 19417, 1, 0, 0, 0, 19419, 19420, 1, 0, 0, 0, 19420, 19422, 1, 0, 0, 0, 19421, 19419, 1, 0, 0, 0, 19422, 19423, 5, 2446, 0, 0, 19423, 19645, 1, 0, 0, 0, 19424, 19425, 5, 2153, 0, 0, 19425, 19426, 5, 2445, 0, 0, 19426, 19427, 3, 2070, 1035, 0, 19427, 19429, 5, 69, 0, 0, 19428, 19430, 5, 1528, 0, 0, 19429, 19428, 1, 0, 0, 0, 19429, 19430, 1, 0, 0, 0, 19430, 19431, 1, 0, 0, 0, 19431, 19432, 3, 2362, 1181, 0, 19432, 19437, 5, 2446, 0, 0, 19433, 19434, 5, 2438, 0, 0, 19434, 19436, 3, 2374, 1187, 0, 19435, 19433, 1, 0, 0, 0, 19436, 19439, 1, 0, 0, 0, 19437, 19435, 1, 0, 0, 0, 19437, 19438, 1, 0, 0, 0, 19438, 19645, 1, 0, 0, 0, 19439, 19437, 1, 0, 0, 0, 19440, 19441, 5, 2416, 0, 0, 19441, 19449, 5, 2445, 0, 0, 19442, 19444, 7, 234, 0, 0, 19443, 19442, 1, 0, 0, 0, 19443, 19444, 1, 0, 0, 0, 19444, 19446, 1, 0, 0, 0, 19445, 19447, 3, 2388, 1194, 0, 19446, 19445, 1, 0, 0, 0, 19446, 19447, 1, 0, 0, 0, 19447, 19448, 1, 0, 0, 0, 19448, 19450, 5, 626, 0, 0, 19449, 19443, 1, 0, 0, 0, 19449, 19450, 1, 0, 0, 0, 19450, 19451, 1, 0, 0, 0, 19451, 19452, 3, 2094, 1047, 0, 19452, 19453, 5, 2446, 0, 0, 19453, 19645, 1, 0, 0, 0, 19454, 19455, 5, 2252, 0, 0, 19455, 19456, 5, 2445, 0, 0, 19456, 19457, 3, 2094, 1047, 0, 19457, 19458, 5, 69, 0, 0, 19458, 19465, 3, 2362, 1181, 0, 19459, 19460, 5, 2451, 0, 0, 19460, 19463, 3, 2388, 1194, 0, 19461, 19462, 5, 2451, 0, 0, 19462, 19464, 3, 2388, 1194, 0, 19463, 19461, 1, 0, 0, 0, 19463, 19464, 1, 0, 0, 0, 19464, 19466, 1, 0, 0, 0, 19465, 19459, 1, 0, 0, 0, 19465, 19466, 1, 0, 0, 0, 19466, 19467, 1, 0, 0, 0, 19467, 19468, 5, 2446, 0, 0, 19468, 19645, 1, 0, 0, 0, 19469, 19470, 5, 2317, 0, 0, 19470, 19471, 5, 2445, 0, 0, 19471, 19473, 3, 2070, 1035, 0, 19472, 19474, 3, 1986, 993, 0, 19473, 19472, 1, 0, 0, 0, 19473, 19474, 1, 0, 0, 0, 19474, 19475, 1, 0, 0, 0, 19475, 19480, 5, 2446, 0, 0, 19476, 19477, 5, 2438, 0, 0, 19477, 19479, 3, 2374, 1187, 0, 19478, 19476, 1, 0, 0, 0, 19479, 19482, 1, 0, 0, 0, 19480, 19478, 1, 0, 0, 0, 19480, 19481, 1, 0, 0, 0, 19481, 19645, 1, 0, 0, 0, 19482, 19480, 1, 0, 0, 0, 19483, 19484, 7, 256, 0, 0, 19484, 19485, 5, 2445, 0, 0, 19485, 19490, 3, 2222, 1111, 0, 19486, 19487, 5, 2451, 0, 0, 19487, 19489, 3, 2222, 1111, 0, 19488, 19486, 1, 0, 0, 0, 19489, 19492, 1, 0, 0, 0, 19490, 19488, 1, 0, 0, 0, 19490, 19491, 1, 0, 0, 0, 19491, 19493, 1, 0, 0, 0, 19492, 19490, 1, 0, 0, 0, 19493, 19498, 5, 2446, 0, 0, 19494, 19495, 5, 2438, 0, 0, 19495, 19497, 3, 2374, 1187, 0, 19496, 19494, 1, 0, 0, 0, 19497, 19500, 1, 0, 0, 0, 19498, 19496, 1, 0, 0, 0, 19498, 19499, 1, 0, 0, 0, 19499, 19645, 1, 0, 0, 0, 19500, 19498, 1, 0, 0, 0, 19501, 19502, 5, 2326, 0, 0, 19502, 19504, 5, 2445, 0, 0, 19503, 19505, 7, 257, 0, 0, 19504, 19503, 1, 0, 0, 0, 19504, 19505, 1, 0, 0, 0, 19505, 19507, 1, 0, 0, 0, 19506, 19508, 7, 258, 0, 0, 19507, 19506, 1, 0, 0, 0, 19507, 19508, 1, 0, 0, 0, 19508, 19509, 1, 0, 0, 0, 19509, 19512, 3, 2070, 1035, 0, 19510, 19511, 5, 2451, 0, 0, 19511, 19513, 3, 2214, 1107, 0, 19512, 19510, 1, 0, 0, 0, 19512, 19513, 1, 0, 0, 0, 19513, 19521, 1, 0, 0, 0, 19514, 19515, 5, 2451, 0, 0, 19515, 19517, 3, 2070, 1035, 0, 19516, 19518, 3, 2256, 1128, 0, 19517, 19516, 1, 0, 0, 0, 19517, 19518, 1, 0, 0, 0, 19518, 19520, 1, 0, 0, 0, 19519, 19514, 1, 0, 0, 0, 19520, 19523, 1, 0, 0, 0, 19521, 19519, 1, 0, 0, 0, 19521, 19522, 1, 0, 0, 0, 19522, 19524, 1, 0, 0, 0, 19523, 19521, 1, 0, 0, 0, 19524, 19529, 5, 2446, 0, 0, 19525, 19526, 5, 2438, 0, 0, 19526, 19528, 3, 2374, 1187, 0, 19527, 19525, 1, 0, 0, 0, 19528, 19531, 1, 0, 0, 0, 19529, 19527, 1, 0, 0, 0, 19529, 19530, 1, 0, 0, 0, 19530, 19645, 1, 0, 0, 0, 19531, 19529, 1, 0, 0, 0, 19532, 19533, 5, 2328, 0, 0, 19533, 19534, 5, 2445, 0, 0, 19534, 19536, 3, 2070, 1035, 0, 19535, 19537, 3, 2212, 1106, 0, 19536, 19535, 1, 0, 0, 0, 19536, 19537, 1, 0, 0, 0, 19537, 19538, 1, 0, 0, 0, 19538, 19539, 5, 2446, 0, 0, 19539, 19645, 1, 0, 0, 0, 19540, 19541, 5, 2337, 0, 0, 19541, 19542, 5, 2445, 0, 0, 19542, 19543, 7, 259, 0, 0, 19543, 19545, 3, 2094, 1047, 0, 19544, 19546, 5, 2296, 0, 0, 19545, 19544, 1, 0, 0, 0, 19545, 19546, 1, 0, 0, 0, 19546, 19547, 1, 0, 0, 0, 19547, 19552, 5, 2446, 0, 0, 19548, 19549, 5, 2438, 0, 0, 19549, 19551, 3, 2374, 1187, 0, 19550, 19548, 1, 0, 0, 0, 19551, 19554, 1, 0, 0, 0, 19552, 19550, 1, 0, 0, 0, 19552, 19553, 1, 0, 0, 0, 19553, 19645, 1, 0, 0, 0, 19554, 19552, 1, 0, 0, 0, 19555, 19556, 5, 2339, 0, 0, 19556, 19561, 5, 2445, 0, 0, 19557, 19558, 5, 995, 0, 0, 19558, 19562, 3, 2390, 1195, 0, 19559, 19560, 5, 527, 0, 0, 19560, 19562, 3, 2094, 1047, 0, 19561, 19557, 1, 0, 0, 0, 19561, 19559, 1, 0, 0, 0, 19562, 19565, 1, 0, 0, 0, 19563, 19564, 5, 2451, 0, 0, 19564, 19566, 3, 2094, 1047, 0, 19565, 19563, 1, 0, 0, 0, 19565, 19566, 1, 0, 0, 0, 19566, 19567, 1, 0, 0, 0, 19567, 19572, 5, 2446, 0, 0, 19568, 19569, 5, 2438, 0, 0, 19569, 19571, 3, 2374, 1187, 0, 19570, 19568, 1, 0, 0, 0, 19571, 19574, 1, 0, 0, 0, 19572, 19570, 1, 0, 0, 0, 19572, 19573, 1, 0, 0, 0, 19573, 19645, 1, 0, 0, 0, 19574, 19572, 1, 0, 0, 0, 19575, 19576, 5, 2341, 0, 0, 19576, 19577, 5, 2445, 0, 0, 19577, 19579, 3, 2094, 1047, 0, 19578, 19580, 3, 2212, 1106, 0, 19579, 19578, 1, 0, 0, 0, 19579, 19580, 1, 0, 0, 0, 19580, 19581, 1, 0, 0, 0, 19581, 19582, 5, 1583, 0, 0, 19582, 19586, 5, 292, 0, 0, 19583, 19584, 5, 1226, 0, 0, 19584, 19585, 5, 1257, 0, 0, 19585, 19587, 5, 495, 0, 0, 19586, 19583, 1, 0, 0, 0, 19586, 19587, 1, 0, 0, 0, 19587, 19588, 1, 0, 0, 0, 19588, 19593, 5, 2446, 0, 0, 19589, 19590, 5, 2438, 0, 0, 19590, 19592, 3, 2374, 1187, 0, 19591, 19589, 1, 0, 0, 0, 19592, 19595, 1, 0, 0, 0, 19593, 19591, 1, 0, 0, 0, 19593, 19594, 1, 0, 0, 0, 19594, 19645, 1, 0, 0, 0, 19595, 19593, 1, 0, 0, 0, 19596, 19597, 5, 2342, 0, 0, 19597, 19598, 5, 2445, 0, 0, 19598, 19601, 3, 2094, 1047, 0, 19599, 19600, 5, 2451, 0, 0, 19600, 19602, 3, 2224, 1112, 0, 19601, 19599, 1, 0, 0, 0, 19601, 19602, 1, 0, 0, 0, 19602, 19605, 1, 0, 0, 0, 19603, 19604, 5, 2451, 0, 0, 19604, 19606, 3, 2226, 1113, 0, 19605, 19603, 1, 0, 0, 0, 19605, 19606, 1, 0, 0, 0, 19606, 19607, 1, 0, 0, 0, 19607, 19612, 5, 2446, 0, 0, 19608, 19609, 5, 2438, 0, 0, 19609, 19611, 3, 2374, 1187, 0, 19610, 19608, 1, 0, 0, 0, 19611, 19614, 1, 0, 0, 0, 19612, 19610, 1, 0, 0, 0, 19612, 19613, 1, 0, 0, 0, 19613, 19645, 1, 0, 0, 0, 19614, 19612, 1, 0, 0, 0, 19615, 19616, 5, 2344, 0, 0, 19616, 19617, 5, 2445, 0, 0, 19617, 19618, 7, 259, 0, 0, 19618, 19621, 3, 2094, 1047, 0, 19619, 19620, 5, 69, 0, 0, 19620, 19622, 3, 2362, 1181, 0, 19621, 19619, 1, 0, 0, 0, 19621, 19622, 1, 0, 0, 0, 19622, 19624, 1, 0, 0, 0, 19623, 19625, 3, 2228, 1114, 0, 19624, 19623, 1, 0, 0, 0, 19624, 19625, 1, 0, 0, 0, 19625, 19627, 1, 0, 0, 0, 19626, 19628, 3, 2230, 1115, 0, 19627, 19626, 1, 0, 0, 0, 19627, 19628, 1, 0, 0, 0, 19628, 19630, 1, 0, 0, 0, 19629, 19631, 3, 2232, 1116, 0, 19630, 19629, 1, 0, 0, 0, 19630, 19631, 1, 0, 0, 0, 19631, 19634, 1, 0, 0, 0, 19632, 19633, 7, 260, 0, 0, 19633, 19635, 5, 389, 0, 0, 19634, 19632, 1, 0, 0, 0, 19634, 19635, 1, 0, 0, 0, 19635, 19636, 1, 0, 0, 0, 19636, 19639, 5, 2446, 0, 0, 19637, 19638, 5, 2438, 0, 0, 19638, 19640, 3, 2374, 1187, 0, 19639, 19637, 1, 0, 0, 0, 19639, 19640, 1, 0, 0, 0, 19640, 19645, 1, 0, 0, 0, 19641, 19642, 5, 2110, 0, 0, 19642, 19645, 5, 2441, 0, 0, 19643, 19645, 3, 2332, 1166, 0, 19644, 19223, 1, 0, 0, 0, 19644, 19228, 1, 0, 0, 0, 19644, 19233, 1, 0, 0, 0, 19644, 19246, 1, 0, 0, 0, 19644, 19276, 1, 0, 0, 0, 19644, 19288, 1, 0, 0, 0, 19644, 19299, 1, 0, 0, 0, 19644, 19306, 1, 0, 0, 0, 19644, 19331, 1, 0, 0, 0, 19644, 19334, 1, 0, 0, 0, 19644, 19342, 1, 0, 0, 0, 19644, 19349, 1, 0, 0, 0, 19644, 19356, 1, 0, 0, 0, 19644, 19363, 1, 0, 0, 0, 19644, 19374, 1, 0, 0, 0, 19644, 19395, 1, 0, 0, 0, 19644, 19408, 1, 0, 0, 0, 19644, 19424, 1, 0, 0, 0, 19644, 19440, 1, 0, 0, 0, 19644, 19454, 1, 0, 0, 0, 19644, 19469, 1, 0, 0, 0, 19644, 19483, 1, 0, 0, 0, 19644, 19501, 1, 0, 0, 0, 19644, 19532, 1, 0, 0, 0, 19644, 19540, 1, 0, 0, 0, 19644, 19555, 1, 0, 0, 0, 19644, 19575, 1, 0, 0, 0, 19644, 19596, 1, 0, 0, 0, 19644, 19615, 1, 0, 0, 0, 19644, 19641, 1, 0, 0, 0, 19644, 19643, 1, 0, 0, 0, 19645, 2185, 1, 0, 0, 0, 19646, 19647, 7, 261, 0, 0, 19647, 2187, 1, 0, 0, 0, 19648, 19649, 7, 262, 0, 0, 19649, 2189, 1, 0, 0, 0, 19650, 19651, 7, 263, 0, 0, 19651, 2191, 1, 0, 0, 0, 19652, 19653, 5, 1320, 0, 0, 19653, 19674, 5, 2445, 0, 0, 19654, 19656, 3, 1918, 959, 0, 19655, 19654, 1, 0, 0, 0, 19655, 19656, 1, 0, 0, 0, 19656, 19661, 1, 0, 0, 0, 19657, 19659, 3, 1986, 993, 0, 19658, 19660, 3, 2194, 1097, 0, 19659, 19658, 1, 0, 0, 0, 19659, 19660, 1, 0, 0, 0, 19660, 19662, 1, 0, 0, 0, 19661, 19657, 1, 0, 0, 0, 19661, 19662, 1, 0, 0, 0, 19662, 19675, 1, 0, 0, 0, 19663, 19664, 5, 672, 0, 0, 19664, 19665, 3, 2392, 1196, 0, 19665, 19666, 5, 1243, 0, 0, 19666, 19672, 3, 2384, 1192, 0, 19667, 19668, 5, 10, 0, 0, 19668, 19669, 5, 47, 0, 0, 19669, 19670, 5, 82, 0, 0, 19670, 19671, 5, 844, 0, 0, 19671, 19673, 3, 2392, 1196, 0, 19672, 19667, 1, 0, 0, 0, 19672, 19673, 1, 0, 0, 0, 19673, 19675, 1, 0, 0, 0, 19674, 19655, 1, 0, 0, 0, 19674, 19663, 1, 0, 0, 0, 19675, 19676, 1, 0, 0, 0, 19676, 19677, 5, 2446, 0, 0, 19677, 2193, 1, 0, 0, 0, 19678, 19685, 3, 2196, 1098, 0, 19679, 19680, 5, 118, 0, 0, 19680, 19681, 3, 2198, 1099, 0, 19681, 19682, 5, 49, 0, 0, 19682, 19683, 3, 2198, 1099, 0, 19683, 19686, 1, 0, 0, 0, 19684, 19686, 3, 2198, 1099, 0, 19685, 19679, 1, 0, 0, 0, 19685, 19684, 1, 0, 0, 0, 19686, 2195, 1, 0, 0, 0, 19687, 19688, 7, 264, 0, 0, 19688, 2197, 1, 0, 0, 0, 19689, 19690, 5, 2172, 0, 0, 19690, 19697, 5, 1434, 0, 0, 19691, 19692, 5, 334, 0, 0, 19692, 19697, 5, 1604, 0, 0, 19693, 19694, 3, 2094, 1047, 0, 19694, 19695, 7, 265, 0, 0, 19695, 19697, 1, 0, 0, 0, 19696, 19689, 1, 0, 0, 0, 19696, 19691, 1, 0, 0, 0, 19696, 19693, 1, 0, 0, 0, 19697, 2199, 1, 0, 0, 0, 19698, 19708, 5, 2244, 0, 0, 19699, 19709, 5, 2448, 0, 0, 19700, 19705, 3, 2202, 1101, 0, 19701, 19702, 5, 2451, 0, 0, 19702, 19704, 3, 2202, 1101, 0, 19703, 19701, 1, 0, 0, 0, 19704, 19707, 1, 0, 0, 0, 19705, 19703, 1, 0, 0, 0, 19705, 19706, 1, 0, 0, 0, 19706, 19709, 1, 0, 0, 0, 19707, 19705, 1, 0, 0, 0, 19708, 19699, 1, 0, 0, 0, 19708, 19700, 1, 0, 0, 0, 19709, 2201, 1, 0, 0, 0, 19710, 19712, 5, 736, 0, 0, 19711, 19713, 5, 1316, 0, 0, 19712, 19711, 1, 0, 0, 0, 19712, 19713, 1, 0, 0, 0, 19713, 19716, 1, 0, 0, 0, 19714, 19716, 5, 1316, 0, 0, 19715, 19710, 1, 0, 0, 0, 19715, 19714, 1, 0, 0, 0, 19715, 19716, 1, 0, 0, 0, 19716, 19717, 1, 0, 0, 0, 19717, 19718, 3, 1900, 950, 0, 19718, 2203, 1, 0, 0, 0, 19719, 19720, 5, 1301, 0, 0, 19720, 19721, 5, 160, 0, 0, 19721, 19726, 3, 2094, 1047, 0, 19722, 19723, 5, 2451, 0, 0, 19723, 19725, 3, 2094, 1047, 0, 19724, 19722, 1, 0, 0, 0, 19725, 19728, 1, 0, 0, 0, 19726, 19724, 1, 0, 0, 0, 19726, 19727, 1, 0, 0, 0, 19727, 2205, 1, 0, 0, 0, 19728, 19726, 1, 0, 0, 0, 19729, 19730, 5, 2303, 0, 0, 19730, 19731, 5, 647, 0, 0, 19731, 19732, 5, 2445, 0, 0, 19732, 19733, 3, 1986, 993, 0, 19733, 19734, 5, 2446, 0, 0, 19734, 19737, 1, 0, 0, 0, 19735, 19737, 3, 2192, 1096, 0, 19736, 19729, 1, 0, 0, 0, 19736, 19735, 1, 0, 0, 0, 19737, 2207, 1, 0, 0, 0, 19738, 19739, 6, 1104, -1, 0, 19739, 19747, 5, 2441, 0, 0, 19740, 19747, 3, 2136, 1068, 0, 19741, 19742, 5, 2445, 0, 0, 19742, 19743, 3, 2208, 1104, 0, 19743, 19744, 5, 2446, 0, 0, 19744, 19747, 1, 0, 0, 0, 19745, 19747, 3, 2392, 1196, 0, 19746, 19738, 1, 0, 0, 0, 19746, 19740, 1, 0, 0, 0, 19746, 19741, 1, 0, 0, 0, 19746, 19745, 1, 0, 0, 0, 19747, 19754, 1, 0, 0, 0, 19748, 19749, 10, 3, 0, 0, 19749, 19750, 5, 2468, 0, 0, 19750, 19751, 5, 2468, 0, 0, 19751, 19753, 3, 2208, 1104, 4, 19752, 19748, 1, 0, 0, 0, 19753, 19756, 1, 0, 0, 0, 19754, 19752, 1, 0, 0, 0, 19754, 19755, 1, 0, 0, 0, 19755, 2209, 1, 0, 0, 0, 19756, 19754, 1, 0, 0, 0, 19757, 19779, 5, 309, 0, 0, 19758, 19760, 5, 969, 0, 0, 19759, 19761, 5, 91, 0, 0, 19760, 19759, 1, 0, 0, 0, 19760, 19761, 1, 0, 0, 0, 19761, 19780, 1, 0, 0, 0, 19762, 19763, 5, 2445, 0, 0, 19763, 19768, 3, 2266, 1133, 0, 19764, 19765, 5, 2451, 0, 0, 19765, 19767, 3, 2266, 1133, 0, 19766, 19764, 1, 0, 0, 0, 19767, 19770, 1, 0, 0, 0, 19768, 19766, 1, 0, 0, 0, 19768, 19769, 1, 0, 0, 0, 19769, 19771, 1, 0, 0, 0, 19770, 19768, 1, 0, 0, 0, 19771, 19772, 5, 2446, 0, 0, 19772, 19773, 5, 2255, 0, 0, 19773, 19775, 5, 2445, 0, 0, 19774, 19776, 3, 2068, 1034, 0, 19775, 19774, 1, 0, 0, 0, 19775, 19776, 1, 0, 0, 0, 19776, 19777, 1, 0, 0, 0, 19777, 19778, 5, 2446, 0, 0, 19778, 19780, 1, 0, 0, 0, 19779, 19758, 1, 0, 0, 0, 19779, 19762, 1, 0, 0, 0, 19780, 2211, 1, 0, 0, 0, 19781, 19784, 5, 1350, 0, 0, 19782, 19783, 5, 160, 0, 0, 19783, 19785, 5, 2256, 0, 0, 19784, 19782, 1, 0, 0, 0, 19784, 19785, 1, 0, 0, 0, 19785, 19786, 1, 0, 0, 0, 19786, 19788, 3, 2070, 1035, 0, 19787, 19789, 3, 2256, 1128, 0, 19788, 19787, 1, 0, 0, 0, 19788, 19789, 1, 0, 0, 0, 19789, 19797, 1, 0, 0, 0, 19790, 19791, 5, 2451, 0, 0, 19791, 19793, 3, 2070, 1035, 0, 19792, 19794, 3, 2256, 1128, 0, 19793, 19792, 1, 0, 0, 0, 19793, 19794, 1, 0, 0, 0, 19794, 19796, 1, 0, 0, 0, 19795, 19790, 1, 0, 0, 0, 19796, 19799, 1, 0, 0, 0, 19797, 19795, 1, 0, 0, 0, 19797, 19798, 1, 0, 0, 0, 19798, 2213, 1, 0, 0, 0, 19799, 19797, 1, 0, 0, 0, 19800, 19801, 5, 2318, 0, 0, 19801, 19803, 5, 2445, 0, 0, 19802, 19804, 7, 257, 0, 0, 19803, 19802, 1, 0, 0, 0, 19803, 19804, 1, 0, 0, 0, 19804, 19806, 1, 0, 0, 0, 19805, 19807, 7, 266, 0, 0, 19806, 19805, 1, 0, 0, 0, 19806, 19807, 1, 0, 0, 0, 19807, 19808, 1, 0, 0, 0, 19808, 19813, 3, 2222, 1111, 0, 19809, 19810, 5, 2451, 0, 0, 19810, 19812, 3, 2222, 1111, 0, 19811, 19809, 1, 0, 0, 0, 19812, 19815, 1, 0, 0, 0, 19813, 19811, 1, 0, 0, 0, 19813, 19814, 1, 0, 0, 0, 19814, 19816, 1, 0, 0, 0, 19815, 19813, 1, 0, 0, 0, 19816, 19817, 5, 2446, 0, 0, 19817, 2215, 1, 0, 0, 0, 19818, 19819, 5, 2336, 0, 0, 19819, 19823, 5, 2445, 0, 0, 19820, 19821, 3, 2094, 1047, 0, 19821, 19822, 3, 2256, 1128, 0, 19822, 19824, 1, 0, 0, 0, 19823, 19820, 1, 0, 0, 0, 19823, 19824, 1, 0, 0, 0, 19824, 19831, 1, 0, 0, 0, 19825, 19826, 5, 2451, 0, 0, 19826, 19827, 3, 2094, 1047, 0, 19827, 19828, 3, 2256, 1128, 0, 19828, 19830, 1, 0, 0, 0, 19829, 19825, 1, 0, 0, 0, 19830, 19833, 1, 0, 0, 0, 19831, 19829, 1, 0, 0, 0, 19831, 19832, 1, 0, 0, 0, 19832, 19835, 1, 0, 0, 0, 19833, 19831, 1, 0, 0, 0, 19834, 19836, 3, 2220, 1110, 0, 19835, 19834, 1, 0, 0, 0, 19835, 19836, 1, 0, 0, 0, 19836, 19837, 1, 0, 0, 0, 19837, 19838, 5, 2446, 0, 0, 19838, 2217, 1, 0, 0, 0, 19839, 19850, 3, 2264, 1132, 0, 19840, 19841, 5, 618, 0, 0, 19841, 19851, 5, 1302, 0, 0, 19842, 19845, 3, 2362, 1181, 0, 19843, 19844, 5, 1361, 0, 0, 19844, 19846, 3, 2094, 1047, 0, 19845, 19843, 1, 0, 0, 0, 19845, 19846, 1, 0, 0, 0, 19846, 19848, 1, 0, 0, 0, 19847, 19849, 3, 2220, 1110, 0, 19848, 19847, 1, 0, 0, 0, 19848, 19849, 1, 0, 0, 0, 19849, 19851, 1, 0, 0, 0, 19850, 19840, 1, 0, 0, 0, 19850, 19842, 1, 0, 0, 0, 19851, 2219, 1, 0, 0, 0, 19852, 19853, 5, 387, 0, 0, 19853, 19854, 3, 2094, 1047, 0, 19854, 2221, 1, 0, 0, 0, 19855, 19863, 3, 2070, 1035, 0, 19856, 19858, 5, 69, 0, 0, 19857, 19856, 1, 0, 0, 0, 19857, 19858, 1, 0, 0, 0, 19858, 19859, 1, 0, 0, 0, 19859, 19864, 3, 2392, 1196, 0, 19860, 19861, 5, 69, 0, 0, 19861, 19862, 5, 527, 0, 0, 19862, 19864, 3, 2070, 1035, 0, 19863, 19857, 1, 0, 0, 0, 19863, 19860, 1, 0, 0, 0, 19863, 19864, 1, 0, 0, 0, 19864, 2223, 1, 0, 0, 0, 19865, 19869, 5, 2283, 0, 0, 19866, 19867, 5, 1135, 0, 0, 19867, 19870, 5, 2256, 0, 0, 19868, 19870, 3, 2070, 1035, 0, 19869, 19866, 1, 0, 0, 0, 19869, 19868, 1, 0, 0, 0, 19870, 2225, 1, 0, 0, 0, 19871, 19877, 5, 1727, 0, 0, 19872, 19878, 5, 2358, 0, 0, 19873, 19875, 5, 1135, 0, 0, 19874, 19876, 5, 2256, 0, 0, 19875, 19874, 1, 0, 0, 0, 19875, 19876, 1, 0, 0, 0, 19876, 19878, 1, 0, 0, 0, 19877, 19872, 1, 0, 0, 0, 19877, 19873, 1, 0, 0, 0, 19878, 2227, 1, 0, 0, 0, 19879, 19880, 5, 502, 0, 0, 19880, 19881, 3, 2094, 1047, 0, 19881, 2229, 1, 0, 0, 0, 19882, 19883, 5, 2283, 0, 0, 19883, 19884, 3, 2094, 1047, 0, 19884, 2231, 1, 0, 0, 0, 19885, 19886, 5, 1135, 0, 0, 19886, 19894, 5, 707, 0, 0, 19887, 19891, 5, 707, 0, 0, 19888, 19889, 5, 1697, 0, 0, 19889, 19890, 5, 2469, 0, 0, 19890, 19892, 3, 2094, 1047, 0, 19891, 19888, 1, 0, 0, 0, 19891, 19892, 1, 0, 0, 0, 19892, 19894, 1, 0, 0, 0, 19893, 19885, 1, 0, 0, 0, 19893, 19887, 1, 0, 0, 0, 19894, 2233, 1, 0, 0, 0, 19895, 19896, 5, 51, 0, 0, 19896, 19897, 5, 2445, 0, 0, 19897, 19898, 3, 2236, 1118, 0, 19898, 19899, 5, 2446, 0, 0, 19899, 2235, 1, 0, 0, 0, 19900, 19906, 5, 21, 0, 0, 19901, 19902, 5, 689, 0, 0, 19902, 19903, 5, 1202, 0, 0, 19903, 19907, 5, 543, 0, 0, 19904, 19905, 5, 1305, 0, 0, 19905, 19907, 5, 1560, 0, 0, 19906, 19901, 1, 0, 0, 0, 19906, 19904, 1, 0, 0, 0, 19906, 19907, 1, 0, 0, 0, 19907, 19915, 1, 0, 0, 0, 19908, 19911, 5, 467, 0, 0, 19909, 19910, 5, 689, 0, 0, 19910, 19912, 5, 543, 0, 0, 19911, 19909, 1, 0, 0, 0, 19911, 19912, 1, 0, 0, 0, 19912, 19915, 1, 0, 0, 0, 19913, 19915, 5, 1560, 0, 0, 19914, 19900, 1, 0, 0, 0, 19914, 19908, 1, 0, 0, 0, 19914, 19913, 1, 0, 0, 0, 19914, 19915, 1, 0, 0, 0, 19915, 19916, 1, 0, 0, 0, 19916, 19921, 3, 2238, 1119, 0, 19917, 19918, 5, 2451, 0, 0, 19918, 19920, 3, 2236, 1118, 0, 19919, 19917, 1, 0, 0, 0, 19920, 19923, 1, 0, 0, 0, 19921, 19919, 1, 0, 0, 0, 19921, 19922, 1, 0, 0, 0, 19922, 2237, 1, 0, 0, 0, 19923, 19921, 1, 0, 0, 0, 19924, 19926, 3, 2390, 1195, 0, 19925, 19927, 5, 2441, 0, 0, 19926, 19925, 1, 0, 0, 0, 19926, 19927, 1, 0, 0, 0, 19927, 2239, 1, 0, 0, 0, 19928, 19929, 3, 2248, 1124, 0, 19929, 2241, 1, 0, 0, 0, 19930, 19940, 5, 545, 0, 0, 19931, 19940, 5, 2476, 0, 0, 19932, 19933, 5, 1681, 0, 0, 19933, 19940, 7, 267, 0, 0, 19934, 19940, 3, 2246, 1123, 0, 19935, 19940, 3, 2250, 1125, 0, 19936, 19940, 3, 2244, 1122, 0, 19937, 19940, 3, 2248, 1124, 0, 19938, 19940, 3, 2252, 1126, 0, 19939, 19930, 1, 0, 0, 0, 19939, 19931, 1, 0, 0, 0, 19939, 19932, 1, 0, 0, 0, 19939, 19934, 1, 0, 0, 0, 19939, 19935, 1, 0, 0, 0, 19939, 19936, 1, 0, 0, 0, 19939, 19937, 1, 0, 0, 0, 19939, 19938, 1, 0, 0, 0, 19940, 2243, 1, 0, 0, 0, 19941, 19942, 5, 2477, 0, 0, 19942, 19943, 3, 2392, 1196, 0, 19943, 19944, 5, 2438, 0, 0, 19944, 19945, 7, 268, 0, 0, 19945, 2245, 1, 0, 0, 0, 19946, 19947, 5, 2297, 0, 0, 19947, 19963, 7, 269, 0, 0, 19948, 19954, 5, 545, 0, 0, 19949, 19955, 5, 1785, 0, 0, 19950, 19955, 5, 572, 0, 0, 19951, 19955, 5, 2293, 0, 0, 19952, 19955, 3, 2314, 1157, 0, 19953, 19955, 3, 2384, 1192, 0, 19954, 19949, 1, 0, 0, 0, 19954, 19950, 1, 0, 0, 0, 19954, 19951, 1, 0, 0, 0, 19954, 19952, 1, 0, 0, 0, 19954, 19953, 1, 0, 0, 0, 19955, 19957, 1, 0, 0, 0, 19956, 19958, 7, 270, 0, 0, 19957, 19956, 1, 0, 0, 0, 19957, 19958, 1, 0, 0, 0, 19958, 19964, 1, 0, 0, 0, 19959, 19961, 5, 295, 0, 0, 19960, 19962, 7, 271, 0, 0, 19961, 19960, 1, 0, 0, 0, 19961, 19962, 1, 0, 0, 0, 19962, 19964, 1, 0, 0, 0, 19963, 19948, 1, 0, 0, 0, 19963, 19959, 1, 0, 0, 0, 19964, 2247, 1, 0, 0, 0, 19965, 19981, 5, 1669, 0, 0, 19966, 19967, 3, 2398, 1199, 0, 19967, 19968, 7, 98, 0, 0, 19968, 19970, 1, 0, 0, 0, 19969, 19966, 1, 0, 0, 0, 19970, 19971, 1, 0, 0, 0, 19971, 19969, 1, 0, 0, 0, 19971, 19972, 1, 0, 0, 0, 19972, 19982, 1, 0, 0, 0, 19973, 19979, 3, 2398, 1199, 0, 19974, 19980, 5, 2441, 0, 0, 19975, 19980, 5, 1257, 0, 0, 19976, 19980, 5, 1242, 0, 0, 19977, 19980, 3, 2384, 1192, 0, 19978, 19980, 3, 2398, 1199, 0, 19979, 19974, 1, 0, 0, 0, 19979, 19975, 1, 0, 0, 0, 19979, 19976, 1, 0, 0, 0, 19979, 19977, 1, 0, 0, 0, 19979, 19978, 1, 0, 0, 0, 19980, 19982, 1, 0, 0, 0, 19981, 19969, 1, 0, 0, 0, 19981, 19973, 1, 0, 0, 0, 19982, 2249, 1, 0, 0, 0, 19983, 19993, 5, 2118, 0, 0, 19984, 19988, 5, 1735, 0, 0, 19985, 19987, 3, 2392, 1196, 0, 19986, 19985, 1, 0, 0, 0, 19987, 19990, 1, 0, 0, 0, 19988, 19986, 1, 0, 0, 0, 19988, 19989, 1, 0, 0, 0, 19989, 19994, 1, 0, 0, 0, 19990, 19988, 1, 0, 0, 0, 19991, 19994, 5, 1681, 0, 0, 19992, 19994, 5, 1759, 0, 0, 19993, 19984, 1, 0, 0, 0, 19993, 19991, 1, 0, 0, 0, 19993, 19992, 1, 0, 0, 0, 19993, 19994, 1, 0, 0, 0, 19994, 2251, 1, 0, 0, 0, 19995, 19997, 5, 212, 0, 0, 19996, 19998, 5, 237, 0, 0, 19997, 19996, 1, 0, 0, 0, 19997, 19998, 1, 0, 0, 0, 19998, 19999, 1, 0, 0, 0, 19999, 20002, 3, 2398, 1199, 0, 20000, 20002, 5, 38, 0, 0, 20001, 19995, 1, 0, 0, 0, 20001, 20000, 1, 0, 0, 0, 20002, 2253, 1, 0, 0, 0, 20003, 20005, 7, 186, 0, 0, 20004, 20006, 5, 618, 0, 0, 20005, 20004, 1, 0, 0, 0, 20005, 20006, 1, 0, 0, 0, 20006, 20007, 1, 0, 0, 0, 20007, 20009, 5, 2445, 0, 0, 20008, 20010, 3, 2068, 1034, 0, 20009, 20008, 1, 0, 0, 0, 20009, 20010, 1, 0, 0, 0, 20010, 20011, 1, 0, 0, 0, 20011, 20012, 5, 2446, 0, 0, 20012, 2255, 1, 0, 0, 0, 20013, 20015, 5, 69, 0, 0, 20014, 20013, 1, 0, 0, 0, 20014, 20015, 1, 0, 0, 0, 20015, 20018, 1, 0, 0, 0, 20016, 20019, 3, 2390, 1195, 0, 20017, 20019, 3, 2388, 1194, 0, 20018, 20016, 1, 0, 0, 0, 20018, 20017, 1, 0, 0, 0, 20019, 20022, 1, 0, 0, 0, 20020, 20022, 5, 69, 0, 0, 20021, 20014, 1, 0, 0, 0, 20021, 20020, 1, 0, 0, 0, 20022, 2257, 1, 0, 0, 0, 20023, 20026, 3, 2390, 1195, 0, 20024, 20026, 3, 2388, 1194, 0, 20025, 20023, 1, 0, 0, 0, 20025, 20024, 1, 0, 0, 0, 20026, 2259, 1, 0, 0, 0, 20027, 20032, 5, 2299, 0, 0, 20028, 20029, 5, 334, 0, 0, 20029, 20030, 5, 1244, 0, 0, 20030, 20033, 3, 2318, 1159, 0, 20031, 20033, 3, 2066, 1033, 0, 20032, 20028, 1, 0, 0, 0, 20032, 20031, 1, 0, 0, 0, 20033, 2261, 1, 0, 0, 0, 20034, 20035, 5, 159, 0, 0, 20035, 20037, 5, 233, 0, 0, 20036, 20034, 1, 0, 0, 0, 20036, 20037, 1, 0, 0, 0, 20037, 20038, 1, 0, 0, 0, 20038, 20041, 5, 777, 0, 0, 20039, 20042, 3, 2372, 1186, 0, 20040, 20042, 3, 2370, 1185, 0, 20041, 20039, 1, 0, 0, 0, 20041, 20040, 1, 0, 0, 0, 20042, 20050, 1, 0, 0, 0, 20043, 20046, 5, 2451, 0, 0, 20044, 20047, 3, 2372, 1186, 0, 20045, 20047, 3, 2370, 1185, 0, 20046, 20044, 1, 0, 0, 0, 20046, 20045, 1, 0, 0, 0, 20047, 20049, 1, 0, 0, 0, 20048, 20043, 1, 0, 0, 0, 20049, 20052, 1, 0, 0, 0, 20050, 20048, 1, 0, 0, 0, 20050, 20051, 1, 0, 0, 0, 20051, 2263, 1, 0, 0, 0, 20052, 20050, 1, 0, 0, 0, 20053, 20056, 3, 2390, 1195, 0, 20054, 20056, 3, 2388, 1194, 0, 20055, 20053, 1, 0, 0, 0, 20055, 20054, 1, 0, 0, 0, 20056, 2265, 1, 0, 0, 0, 20057, 20058, 3, 2390, 1195, 0, 20058, 2267, 1, 0, 0, 0, 20059, 20060, 3, 2390, 1195, 0, 20060, 2269, 1, 0, 0, 0, 20061, 20062, 3, 2390, 1195, 0, 20062, 2271, 1, 0, 0, 0, 20063, 20064, 3, 2390, 1195, 0, 20064, 2273, 1, 0, 0, 0, 20065, 20066, 3, 2390, 1195, 0, 20066, 2275, 1, 0, 0, 0, 20067, 20072, 3, 2390, 1195, 0, 20068, 20069, 5, 2438, 0, 0, 20069, 20071, 3, 2392, 1196, 0, 20070, 20068, 1, 0, 0, 0, 20071, 20074, 1, 0, 0, 0, 20072, 20070, 1, 0, 0, 0, 20072, 20073, 1, 0, 0, 0, 20073, 20077, 1, 0, 0, 0, 20074, 20072, 1, 0, 0, 0, 20075, 20076, 5, 2453, 0, 0, 20076, 20078, 3, 2322, 1161, 0, 20077, 20075, 1, 0, 0, 0, 20077, 20078, 1, 0, 0, 0, 20078, 2277, 1, 0, 0, 0, 20079, 20080, 3, 2390, 1195, 0, 20080, 2279, 1, 0, 0, 0, 20081, 20084, 3, 2390, 1195, 0, 20082, 20083, 5, 2438, 0, 0, 20083, 20085, 3, 2392, 1196, 0, 20084, 20082, 1, 0, 0, 0, 20084, 20085, 1, 0, 0, 0, 20085, 2281, 1, 0, 0, 0, 20086, 20087, 3, 2390, 1195, 0, 20087, 2283, 1, 0, 0, 0, 20088, 20089, 3, 2390, 1195, 0, 20089, 2285, 1, 0, 0, 0, 20090, 20091, 3, 2390, 1195, 0, 20091, 2287, 1, 0, 0, 0, 20092, 20095, 3, 2390, 1195, 0, 20093, 20094, 5, 2438, 0, 0, 20094, 20096, 3, 2392, 1196, 0, 20095, 20093, 1, 0, 0, 0, 20095, 20096, 1, 0, 0, 0, 20096, 2289, 1, 0, 0, 0, 20097, 20102, 3, 2390, 1195, 0, 20098, 20099, 5, 2438, 0, 0, 20099, 20101, 3, 2392, 1196, 0, 20100, 20098, 1, 0, 0, 0, 20101, 20104, 1, 0, 0, 0, 20102, 20100, 1, 0, 0, 0, 20102, 20103, 1, 0, 0, 0, 20103, 2291, 1, 0, 0, 0, 20104, 20102, 1, 0, 0, 0, 20105, 20106, 3, 2390, 1195, 0, 20106, 2293, 1, 0, 0, 0, 20107, 20109, 3, 2392, 1196, 0, 20108, 20110, 3, 562, 281, 0, 20109, 20108, 1, 0, 0, 0, 20109, 20110, 1, 0, 0, 0, 20110, 2295, 1, 0, 0, 0, 20111, 20114, 3, 2392, 1196, 0, 20112, 20114, 5, 278, 0, 0, 20113, 20111, 1, 0, 0, 0, 20113, 20112, 1, 0, 0, 0, 20114, 2297, 1, 0, 0, 0, 20115, 20120, 3, 2390, 1195, 0, 20116, 20117, 5, 2438, 0, 0, 20117, 20119, 3, 2392, 1196, 0, 20118, 20116, 1, 0, 0, 0, 20119, 20122, 1, 0, 0, 0, 20120, 20118, 1, 0, 0, 0, 20120, 20121, 1, 0, 0, 0, 20121, 20125, 1, 0, 0, 0, 20122, 20120, 1, 0, 0, 0, 20123, 20124, 5, 2453, 0, 0, 20124, 20126, 3, 2322, 1161, 0, 20125, 20123, 1, 0, 0, 0, 20125, 20126, 1, 0, 0, 0, 20126, 2299, 1, 0, 0, 0, 20127, 20128, 3, 2392, 1196, 0, 20128, 2301, 1, 0, 0, 0, 20129, 20134, 3, 2392, 1196, 0, 20130, 20131, 5, 2438, 0, 0, 20131, 20133, 3, 2392, 1196, 0, 20132, 20130, 1, 0, 0, 0, 20133, 20136, 1, 0, 0, 0, 20134, 20132, 1, 0, 0, 0, 20134, 20135, 1, 0, 0, 0, 20135, 2303, 1, 0, 0, 0, 20136, 20134, 1, 0, 0, 0, 20137, 20142, 3, 2392, 1196, 0, 20138, 20139, 5, 2438, 0, 0, 20139, 20141, 3, 2392, 1196, 0, 20140, 20138, 1, 0, 0, 0, 20141, 20144, 1, 0, 0, 0, 20142, 20140, 1, 0, 0, 0, 20142, 20143, 1, 0, 0, 0, 20143, 2305, 1, 0, 0, 0, 20144, 20142, 1, 0, 0, 0, 20145, 20150, 3, 2390, 1195, 0, 20146, 20147, 5, 2438, 0, 0, 20147, 20149, 3, 2392, 1196, 0, 20148, 20146, 1, 0, 0, 0, 20149, 20152, 1, 0, 0, 0, 20150, 20148, 1, 0, 0, 0, 20150, 20151, 1, 0, 0, 0, 20151, 2307, 1, 0, 0, 0, 20152, 20150, 1, 0, 0, 0, 20153, 20156, 3, 2390, 1195, 0, 20154, 20155, 5, 2438, 0, 0, 20155, 20157, 3, 2392, 1196, 0, 20156, 20154, 1, 0, 0, 0, 20156, 20157, 1, 0, 0, 0, 20157, 2309, 1, 0, 0, 0, 20158, 20161, 3, 2390, 1195, 0, 20159, 20160, 5, 2438, 0, 0, 20160, 20162, 3, 2392, 1196, 0, 20161, 20159, 1, 0, 0, 0, 20161, 20162, 1, 0, 0, 0, 20162, 2311, 1, 0, 0, 0, 20163, 20166, 3, 2390, 1195, 0, 20164, 20165, 5, 2438, 0, 0, 20165, 20167, 3, 2392, 1196, 0, 20166, 20164, 1, 0, 0, 0, 20166, 20167, 1, 0, 0, 0, 20167, 2313, 1, 0, 0, 0, 20168, 20169, 5, 2472, 0, 0, 20169, 20171, 3, 2334, 1167, 0, 20170, 20168, 1, 0, 0, 0, 20170, 20171, 1, 0, 0, 0, 20171, 20172, 1, 0, 0, 0, 20172, 20175, 3, 2392, 1196, 0, 20173, 20174, 5, 2438, 0, 0, 20174, 20176, 3, 2392, 1196, 0, 20175, 20173, 1, 0, 0, 0, 20175, 20176, 1, 0, 0, 0, 20176, 20179, 1, 0, 0, 0, 20177, 20179, 3, 2370, 1185, 0, 20178, 20170, 1, 0, 0, 0, 20178, 20177, 1, 0, 0, 0, 20179, 2315, 1, 0, 0, 0, 20180, 20183, 3, 2390, 1195, 0, 20181, 20182, 5, 2438, 0, 0, 20182, 20184, 3, 2392, 1196, 0, 20183, 20181, 1, 0, 0, 0, 20183, 20184, 1, 0, 0, 0, 20184, 2317, 1, 0, 0, 0, 20185, 20188, 3, 2372, 1186, 0, 20186, 20188, 3, 2370, 1185, 0, 20187, 20185, 1, 0, 0, 0, 20187, 20186, 1, 0, 0, 0, 20188, 2319, 1, 0, 0, 0, 20189, 20192, 3, 2390, 1195, 0, 20190, 20192, 3, 2370, 1185, 0, 20191, 20189, 1, 0, 0, 0, 20191, 20190, 1, 0, 0, 0, 20192, 2321, 1, 0, 0, 0, 20193, 20198, 3, 1446, 723, 0, 20194, 20195, 5, 2438, 0, 0, 20195, 20197, 3, 1444, 722, 0, 20196, 20194, 1, 0, 0, 0, 20197, 20200, 1, 0, 0, 0, 20198, 20196, 1, 0, 0, 0, 20198, 20199, 1, 0, 0, 0, 20199, 20203, 1, 0, 0, 0, 20200, 20198, 1, 0, 0, 0, 20201, 20202, 5, 2453, 0, 0, 20202, 20204, 3, 2326, 1163, 0, 20203, 20201, 1, 0, 0, 0, 20203, 20204, 1, 0, 0, 0, 20204, 2323, 1, 0, 0, 0, 20205, 20206, 3, 2390, 1195, 0, 20206, 2325, 1, 0, 0, 0, 20207, 20208, 3, 2390, 1195, 0, 20208, 2327, 1, 0, 0, 0, 20209, 20214, 3, 2390, 1195, 0, 20210, 20211, 5, 2438, 0, 0, 20211, 20213, 3, 2392, 1196, 0, 20212, 20210, 1, 0, 0, 0, 20213, 20216, 1, 0, 0, 0, 20214, 20212, 1, 0, 0, 0, 20214, 20215, 1, 0, 0, 0, 20215, 2329, 1, 0, 0, 0, 20216, 20214, 1, 0, 0, 0, 20217, 20220, 3, 2390, 1195, 0, 20218, 20219, 5, 2438, 0, 0, 20219, 20221, 3, 2392, 1196, 0, 20220, 20218, 1, 0, 0, 0, 20220, 20221, 1, 0, 0, 0, 20221, 20225, 1, 0, 0, 0, 20222, 20223, 5, 2453, 0, 0, 20223, 20226, 3, 2322, 1161, 0, 20224, 20226, 3, 2254, 1127, 0, 20225, 20222, 1, 0, 0, 0, 20225, 20224, 1, 0, 0, 0, 20225, 20226, 1, 0, 0, 0, 20226, 20232, 1, 0, 0, 0, 20227, 20229, 3, 2332, 1166, 0, 20228, 20230, 3, 2396, 1198, 0, 20229, 20228, 1, 0, 0, 0, 20229, 20230, 1, 0, 0, 0, 20230, 20232, 1, 0, 0, 0, 20231, 20217, 1, 0, 0, 0, 20231, 20227, 1, 0, 0, 0, 20232, 2331, 1, 0, 0, 0, 20233, 20234, 5, 2345, 0, 0, 20234, 20238, 5, 2445, 0, 0, 20235, 20236, 3, 2216, 1108, 0, 20236, 20237, 5, 2451, 0, 0, 20237, 20239, 1, 0, 0, 0, 20238, 20235, 1, 0, 0, 0, 20238, 20239, 1, 0, 0, 0, 20239, 20240, 1, 0, 0, 0, 20240, 20242, 3, 2094, 1047, 0, 20241, 20243, 3, 2212, 1106, 0, 20242, 20241, 1, 0, 0, 0, 20242, 20243, 1, 0, 0, 0, 20243, 20253, 1, 0, 0, 0, 20244, 20245, 5, 238, 0, 0, 20245, 20250, 3, 2218, 1109, 0, 20246, 20247, 5, 2451, 0, 0, 20247, 20249, 3, 2218, 1109, 0, 20248, 20246, 1, 0, 0, 0, 20249, 20252, 1, 0, 0, 0, 20250, 20248, 1, 0, 0, 0, 20250, 20251, 1, 0, 0, 0, 20251, 20254, 1, 0, 0, 0, 20252, 20250, 1, 0, 0, 0, 20253, 20244, 1, 0, 0, 0, 20253, 20254, 1, 0, 0, 0, 20254, 20255, 1, 0, 0, 0, 20255, 20258, 5, 2446, 0, 0, 20256, 20257, 5, 2438, 0, 0, 20257, 20259, 3, 2374, 1187, 0, 20258, 20256, 1, 0, 0, 0, 20258, 20259, 1, 0, 0, 0, 20259, 2333, 1, 0, 0, 0, 20260, 20265, 3, 2392, 1196, 0, 20261, 20262, 5, 2438, 0, 0, 20262, 20264, 3, 2392, 1196, 0, 20263, 20261, 1, 0, 0, 0, 20264, 20267, 1, 0, 0, 0, 20265, 20263, 1, 0, 0, 0, 20265, 20266, 1, 0, 0, 0, 20266, 2335, 1, 0, 0, 0, 20267, 20265, 1, 0, 0, 0, 20268, 20269, 3, 2390, 1195, 0, 20269, 2337, 1, 0, 0, 0, 20270, 20271, 3, 2392, 1196, 0, 20271, 2339, 1, 0, 0, 0, 20272, 20273, 3, 2392, 1196, 0, 20273, 2341, 1, 0, 0, 0, 20274, 20275, 3, 2392, 1196, 0, 20275, 2343, 1, 0, 0, 0, 20276, 20301, 3, 2330, 1165, 0, 20277, 20278, 5, 2235, 0, 0, 20278, 20283, 3, 2342, 1171, 0, 20279, 20280, 5, 2451, 0, 0, 20280, 20282, 3, 2342, 1171, 0, 20281, 20279, 1, 0, 0, 0, 20282, 20285, 1, 0, 0, 0, 20283, 20281, 1, 0, 0, 0, 20283, 20284, 1, 0, 0, 0, 20284, 20301, 1, 0, 0, 0, 20285, 20283, 1, 0, 0, 0, 20286, 20287, 5, 424, 0, 0, 20287, 20301, 3, 2340, 1170, 0, 20288, 20289, 5, 481, 0, 0, 20289, 20301, 3, 2338, 1169, 0, 20290, 20291, 5, 953, 0, 0, 20291, 20292, 5, 969, 0, 0, 20292, 20301, 3, 2338, 1169, 0, 20293, 20294, 5, 790, 0, 0, 20294, 20295, 7, 84, 0, 0, 20295, 20301, 3, 2338, 1169, 0, 20296, 20297, 5, 1720, 0, 0, 20297, 20298, 5, 2152, 0, 0, 20298, 20299, 5, 1461, 0, 0, 20299, 20301, 3, 2338, 1169, 0, 20300, 20276, 1, 0, 0, 0, 20300, 20277, 1, 0, 0, 0, 20300, 20286, 1, 0, 0, 0, 20300, 20288, 1, 0, 0, 0, 20300, 20290, 1, 0, 0, 0, 20300, 20293, 1, 0, 0, 0, 20300, 20296, 1, 0, 0, 0, 20301, 2345, 1, 0, 0, 0, 20302, 20307, 3, 2328, 1164, 0, 20303, 20304, 5, 2451, 0, 0, 20304, 20306, 3, 2328, 1164, 0, 20305, 20303, 1, 0, 0, 0, 20306, 20309, 1, 0, 0, 0, 20307, 20305, 1, 0, 0, 0, 20307, 20308, 1, 0, 0, 0, 20308, 2347, 1, 0, 0, 0, 20309, 20307, 1, 0, 0, 0, 20310, 20311, 5, 2445, 0, 0, 20311, 20312, 3, 2346, 1173, 0, 20312, 20313, 5, 2446, 0, 0, 20313, 2349, 1, 0, 0, 0, 20314, 20315, 5, 812, 0, 0, 20315, 20316, 5, 2445, 0, 0, 20316, 20317, 5, 2390, 0, 0, 20317, 20320, 7, 54, 0, 0, 20318, 20321, 3, 1918, 959, 0, 20319, 20321, 3, 1986, 993, 0, 20320, 20318, 1, 0, 0, 0, 20320, 20319, 1, 0, 0, 0, 20321, 20322, 1, 0, 0, 0, 20322, 20324, 5, 2446, 0, 0, 20323, 20325, 3, 2192, 1096, 0, 20324, 20323, 1, 0, 0, 0, 20324, 20325, 1, 0, 0, 0, 20325, 2351, 1, 0, 0, 0, 20326, 20335, 5, 2445, 0, 0, 20327, 20332, 3, 2360, 1180, 0, 20328, 20329, 5, 2451, 0, 0, 20329, 20331, 3, 2360, 1180, 0, 20330, 20328, 1, 0, 0, 0, 20331, 20334, 1, 0, 0, 0, 20332, 20330, 1, 0, 0, 0, 20332, 20333, 1, 0, 0, 0, 20333, 20336, 1, 0, 0, 0, 20334, 20332, 1, 0, 0, 0, 20335, 20327, 1, 0, 0, 0, 20335, 20336, 1, 0, 0, 0, 20336, 20337, 1, 0, 0, 0, 20337, 20339, 5, 2446, 0, 0, 20338, 20340, 3, 2350, 1175, 0, 20339, 20338, 1, 0, 0, 0, 20339, 20340, 1, 0, 0, 0, 20340, 2353, 1, 0, 0, 0, 20341, 20356, 5, 2445, 0, 0, 20342, 20344, 3, 2360, 1180, 0, 20343, 20345, 3, 2358, 1179, 0, 20344, 20343, 1, 0, 0, 0, 20344, 20345, 1, 0, 0, 0, 20345, 20353, 1, 0, 0, 0, 20346, 20347, 5, 2451, 0, 0, 20347, 20349, 3, 2360, 1180, 0, 20348, 20350, 3, 2358, 1179, 0, 20349, 20348, 1, 0, 0, 0, 20349, 20350, 1, 0, 0, 0, 20350, 20352, 1, 0, 0, 0, 20351, 20346, 1, 0, 0, 0, 20352, 20355, 1, 0, 0, 0, 20353, 20351, 1, 0, 0, 0, 20353, 20354, 1, 0, 0, 0, 20354, 20357, 1, 0, 0, 0, 20355, 20353, 1, 0, 0, 0, 20356, 20342, 1, 0, 0, 0, 20356, 20357, 1, 0, 0, 0, 20357, 20358, 1, 0, 0, 0, 20358, 20360, 5, 2446, 0, 0, 20359, 20361, 3, 2350, 1175, 0, 20360, 20359, 1, 0, 0, 0, 20360, 20361, 1, 0, 0, 0, 20361, 2355, 1, 0, 0, 0, 20362, 20363, 5, 2445, 0, 0, 20363, 20376, 3, 2328, 1164, 0, 20364, 20367, 5, 2451, 0, 0, 20365, 20368, 3, 2384, 1192, 0, 20366, 20368, 5, 1226, 0, 0, 20367, 20365, 1, 0, 0, 0, 20367, 20366, 1, 0, 0, 0, 20368, 20374, 1, 0, 0, 0, 20369, 20372, 5, 2451, 0, 0, 20370, 20373, 3, 2384, 1192, 0, 20371, 20373, 5, 1226, 0, 0, 20372, 20370, 1, 0, 0, 0, 20372, 20371, 1, 0, 0, 0, 20373, 20375, 1, 0, 0, 0, 20374, 20369, 1, 0, 0, 0, 20374, 20375, 1, 0, 0, 0, 20375, 20377, 1, 0, 0, 0, 20376, 20364, 1, 0, 0, 0, 20376, 20377, 1, 0, 0, 0, 20377, 20378, 1, 0, 0, 0, 20378, 20398, 5, 2244, 0, 0, 20379, 20380, 3, 2330, 1165, 0, 20380, 20381, 5, 2438, 0, 0, 20381, 20382, 5, 2448, 0, 0, 20382, 20399, 1, 0, 0, 0, 20383, 20399, 5, 2448, 0, 0, 20384, 20386, 3, 2070, 1035, 0, 20385, 20387, 3, 2256, 1128, 0, 20386, 20385, 1, 0, 0, 0, 20386, 20387, 1, 0, 0, 0, 20387, 20395, 1, 0, 0, 0, 20388, 20389, 5, 2451, 0, 0, 20389, 20391, 3, 2070, 1035, 0, 20390, 20392, 3, 2256, 1128, 0, 20391, 20390, 1, 0, 0, 0, 20391, 20392, 1, 0, 0, 0, 20392, 20394, 1, 0, 0, 0, 20393, 20388, 1, 0, 0, 0, 20394, 20397, 1, 0, 0, 0, 20395, 20393, 1, 0, 0, 0, 20395, 20396, 1, 0, 0, 0, 20396, 20399, 1, 0, 0, 0, 20397, 20395, 1, 0, 0, 0, 20398, 20379, 1, 0, 0, 0, 20398, 20383, 1, 0, 0, 0, 20398, 20384, 1, 0, 0, 0, 20399, 20400, 1, 0, 0, 0, 20400, 20402, 5, 2446, 0, 0, 20401, 20403, 3, 2350, 1175, 0, 20402, 20401, 1, 0, 0, 0, 20402, 20403, 1, 0, 0, 0, 20403, 2357, 1, 0, 0, 0, 20404, 20405, 7, 272, 0, 0, 20405, 20406, 5, 1227, 0, 0, 20406, 2359, 1, 0, 0, 0, 20407, 20408, 3, 2390, 1195, 0, 20408, 20409, 5, 2469, 0, 0, 20409, 20410, 5, 2464, 0, 0, 20410, 20412, 1, 0, 0, 0, 20411, 20407, 1, 0, 0, 0, 20411, 20412, 1, 0, 0, 0, 20412, 20413, 1, 0, 0, 0, 20413, 20414, 3, 2070, 1035, 0, 20414, 2361, 1, 0, 0, 0, 20415, 20424, 3, 2364, 1182, 0, 20416, 20418, 5, 1528, 0, 0, 20417, 20416, 1, 0, 0, 0, 20417, 20418, 1, 0, 0, 0, 20418, 20419, 1, 0, 0, 0, 20419, 20421, 3, 2302, 1151, 0, 20420, 20422, 7, 273, 0, 0, 20421, 20420, 1, 0, 0, 0, 20421, 20422, 1, 0, 0, 0, 20422, 20424, 1, 0, 0, 0, 20423, 20415, 1, 0, 0, 0, 20423, 20417, 1, 0, 0, 0, 20424, 2363, 1, 0, 0, 0, 20425, 20427, 3, 2368, 1184, 0, 20426, 20428, 3, 2366, 1183, 0, 20427, 20426, 1, 0, 0, 0, 20427, 20428, 1, 0, 0, 0, 20428, 20438, 1, 0, 0, 0, 20429, 20431, 5, 2306, 0, 0, 20430, 20432, 5, 871, 0, 0, 20431, 20430, 1, 0, 0, 0, 20431, 20432, 1, 0, 0, 0, 20432, 20433, 1, 0, 0, 0, 20433, 20434, 5, 2110, 0, 0, 20434, 20439, 5, 2361, 0, 0, 20435, 20436, 5, 193, 0, 0, 20436, 20437, 5, 1669, 0, 0, 20437, 20439, 3, 2334, 1167, 0, 20438, 20429, 1, 0, 0, 0, 20438, 20435, 1, 0, 0, 0, 20438, 20439, 1, 0, 0, 0, 20439, 20457, 1, 0, 0, 0, 20440, 20441, 5, 774, 0, 0, 20441, 20446, 7, 274, 0, 0, 20442, 20443, 5, 2445, 0, 0, 20443, 20444, 3, 2070, 1035, 0, 20444, 20445, 5, 2446, 0, 0, 20445, 20447, 1, 0, 0, 0, 20446, 20442, 1, 0, 0, 0, 20446, 20447, 1, 0, 0, 0, 20447, 20448, 1, 0, 0, 0, 20448, 20449, 5, 2139, 0, 0, 20449, 20454, 7, 275, 0, 0, 20450, 20451, 5, 2445, 0, 0, 20451, 20452, 3, 2070, 1035, 0, 20452, 20453, 5, 2446, 0, 0, 20453, 20455, 1, 0, 0, 0, 20454, 20450, 1, 0, 0, 0, 20454, 20455, 1, 0, 0, 0, 20455, 20457, 1, 0, 0, 0, 20456, 20425, 1, 0, 0, 0, 20456, 20440, 1, 0, 0, 0, 20457, 2365, 1, 0, 0, 0, 20458, 20461, 5, 2445, 0, 0, 20459, 20462, 3, 2384, 1192, 0, 20460, 20462, 5, 2448, 0, 0, 20461, 20459, 1, 0, 0, 0, 20461, 20460, 1, 0, 0, 0, 20462, 20468, 1, 0, 0, 0, 20463, 20466, 5, 2451, 0, 0, 20464, 20467, 3, 2384, 1192, 0, 20465, 20467, 3, 2386, 1193, 0, 20466, 20464, 1, 0, 0, 0, 20466, 20465, 1, 0, 0, 0, 20467, 20469, 1, 0, 0, 0, 20468, 20463, 1, 0, 0, 0, 20468, 20469, 1, 0, 0, 0, 20469, 20471, 1, 0, 0, 0, 20470, 20472, 7, 236, 0, 0, 20471, 20470, 1, 0, 0, 0, 20471, 20472, 1, 0, 0, 0, 20472, 20473, 1, 0, 0, 0, 20473, 20474, 5, 2446, 0, 0, 20474, 2367, 1, 0, 0, 0, 20475, 20541, 5, 131, 0, 0, 20476, 20541, 5, 1401, 0, 0, 20477, 20541, 5, 1002, 0, 0, 20478, 20541, 5, 128, 0, 0, 20479, 20541, 5, 125, 0, 0, 20480, 20541, 5, 1003, 0, 0, 20481, 20541, 5, 1418, 0, 0, 20482, 20541, 5, 1417, 0, 0, 20483, 20541, 5, 1690, 0, 0, 20484, 20541, 5, 1691, 0, 0, 20485, 20541, 5, 1233, 0, 0, 20486, 20541, 5, 378, 0, 0, 20487, 20541, 5, 767, 0, 0, 20488, 20541, 5, 775, 0, 0, 20489, 20541, 5, 1229, 0, 0, 20490, 20541, 5, 1704, 0, 0, 20491, 20541, 5, 1228, 0, 0, 20492, 20541, 5, 379, 0, 0, 20493, 20495, 5, 463, 0, 0, 20494, 20496, 5, 1435, 0, 0, 20495, 20494, 1, 0, 0, 0, 20495, 20496, 1, 0, 0, 0, 20496, 20541, 1, 0, 0, 0, 20497, 20541, 5, 605, 0, 0, 20498, 20541, 5, 1507, 0, 0, 20499, 20541, 5, 1006, 0, 0, 20500, 20502, 5, 891, 0, 0, 20501, 20503, 5, 1496, 0, 0, 20502, 20501, 1, 0, 0, 0, 20502, 20503, 1, 0, 0, 0, 20503, 20541, 1, 0, 0, 0, 20504, 20541, 5, 196, 0, 0, 20505, 20507, 5, 193, 0, 0, 20506, 20508, 5, 2267, 0, 0, 20507, 20506, 1, 0, 0, 0, 20507, 20508, 1, 0, 0, 0, 20508, 20541, 1, 0, 0, 0, 20509, 20541, 5, 2257, 0, 0, 20510, 20541, 5, 2258, 0, 0, 20511, 20541, 5, 1765, 0, 0, 20512, 20541, 5, 1496, 0, 0, 20513, 20541, 5, 148, 0, 0, 20514, 20541, 5, 359, 0, 0, 20515, 20541, 5, 1599, 0, 0, 20516, 20541, 5, 2212, 0, 0, 20517, 20541, 5, 2356, 0, 0, 20518, 20541, 5, 983, 0, 0, 20519, 20541, 5, 363, 0, 0, 20520, 20541, 5, 677, 0, 0, 20521, 20541, 5, 956, 0, 0, 20522, 20541, 5, 1634, 0, 0, 20523, 20541, 5, 1631, 0, 0, 20524, 20541, 5, 2113, 0, 0, 20525, 20541, 5, 2114, 0, 0, 20526, 20541, 5, 2116, 0, 0, 20527, 20541, 5, 2112, 0, 0, 20528, 20541, 5, 2106, 0, 0, 20529, 20541, 5, 2108, 0, 0, 20530, 20541, 5, 2107, 0, 0, 20531, 20541, 5, 2105, 0, 0, 20532, 20541, 5, 2359, 0, 0, 20533, 20541, 5, 469, 0, 0, 20534, 20541, 5, 119, 0, 0, 20535, 20541, 5, 142, 0, 0, 20536, 20541, 5, 215, 0, 0, 20537, 20541, 5, 1008, 0, 0, 20538, 20541, 5, 964, 0, 0, 20539, 20541, 5, 2349, 0, 0, 20540, 20475, 1, 0, 0, 0, 20540, 20476, 1, 0, 0, 0, 20540, 20477, 1, 0, 0, 0, 20540, 20478, 1, 0, 0, 0, 20540, 20479, 1, 0, 0, 0, 20540, 20480, 1, 0, 0, 0, 20540, 20481, 1, 0, 0, 0, 20540, 20482, 1, 0, 0, 0, 20540, 20483, 1, 0, 0, 0, 20540, 20484, 1, 0, 0, 0, 20540, 20485, 1, 0, 0, 0, 20540, 20486, 1, 0, 0, 0, 20540, 20487, 1, 0, 0, 0, 20540, 20488, 1, 0, 0, 0, 20540, 20489, 1, 0, 0, 0, 20540, 20490, 1, 0, 0, 0, 20540, 20491, 1, 0, 0, 0, 20540, 20492, 1, 0, 0, 0, 20540, 20493, 1, 0, 0, 0, 20540, 20497, 1, 0, 0, 0, 20540, 20498, 1, 0, 0, 0, 20540, 20499, 1, 0, 0, 0, 20540, 20500, 1, 0, 0, 0, 20540, 20504, 1, 0, 0, 0, 20540, 20505, 1, 0, 0, 0, 20540, 20509, 1, 0, 0, 0, 20540, 20510, 1, 0, 0, 0, 20540, 20511, 1, 0, 0, 0, 20540, 20512, 1, 0, 0, 0, 20540, 20513, 1, 0, 0, 0, 20540, 20514, 1, 0, 0, 0, 20540, 20515, 1, 0, 0, 0, 20540, 20516, 1, 0, 0, 0, 20540, 20517, 1, 0, 0, 0, 20540, 20518, 1, 0, 0, 0, 20540, 20519, 1, 0, 0, 0, 20540, 20520, 1, 0, 0, 0, 20540, 20521, 1, 0, 0, 0, 20540, 20522, 1, 0, 0, 0, 20540, 20523, 1, 0, 0, 0, 20540, 20524, 1, 0, 0, 0, 20540, 20525, 1, 0, 0, 0, 20540, 20526, 1, 0, 0, 0, 20540, 20527, 1, 0, 0, 0, 20540, 20528, 1, 0, 0, 0, 20540, 20529, 1, 0, 0, 0, 20540, 20530, 1, 0, 0, 0, 20540, 20531, 1, 0, 0, 0, 20540, 20532, 1, 0, 0, 0, 20540, 20533, 1, 0, 0, 0, 20540, 20534, 1, 0, 0, 0, 20540, 20535, 1, 0, 0, 0, 20540, 20536, 1, 0, 0, 0, 20540, 20537, 1, 0, 0, 0, 20540, 20538, 1, 0, 0, 0, 20540, 20539, 1, 0, 0, 0, 20541, 2369, 1, 0, 0, 0, 20542, 20546, 5, 2459, 0, 0, 20543, 20544, 5, 2466, 0, 0, 20544, 20546, 5, 2439, 0, 0, 20545, 20542, 1, 0, 0, 0, 20545, 20543, 1, 0, 0, 0, 20546, 20555, 1, 0, 0, 0, 20547, 20549, 5, 731, 0, 0, 20548, 20547, 1, 0, 0, 0, 20548, 20549, 1, 0, 0, 0, 20549, 20553, 1, 0, 0, 0, 20550, 20554, 5, 2459, 0, 0, 20551, 20552, 5, 2466, 0, 0, 20552, 20554, 5, 2439, 0, 0, 20553, 20550, 1, 0, 0, 0, 20553, 20551, 1, 0, 0, 0, 20554, 20556, 1, 0, 0, 0, 20555, 20548, 1, 0, 0, 0, 20555, 20556, 1, 0, 0, 0, 20556, 20561, 1, 0, 0, 0, 20557, 20558, 5, 2438, 0, 0, 20558, 20560, 3, 2374, 1187, 0, 20559, 20557, 1, 0, 0, 0, 20560, 20563, 1, 0, 0, 0, 20561, 20559, 1, 0, 0, 0, 20561, 20562, 1, 0, 0, 0, 20562, 2371, 1, 0, 0, 0, 20563, 20561, 1, 0, 0, 0, 20564, 20565, 6, 1186, -1, 0, 20565, 20571, 3, 2374, 1187, 0, 20566, 20567, 5, 2445, 0, 0, 20567, 20568, 3, 2372, 1186, 0, 20568, 20569, 5, 2446, 0, 0, 20569, 20571, 1, 0, 0, 0, 20570, 20564, 1, 0, 0, 0, 20570, 20566, 1, 0, 0, 0, 20571, 20581, 1, 0, 0, 0, 20572, 20575, 10, 2, 0, 0, 20573, 20574, 5, 2438, 0, 0, 20574, 20576, 3, 2374, 1187, 0, 20575, 20573, 1, 0, 0, 0, 20576, 20577, 1, 0, 0, 0, 20577, 20575, 1, 0, 0, 0, 20577, 20578, 1, 0, 0, 0, 20578, 20580, 1, 0, 0, 0, 20579, 20572, 1, 0, 0, 0, 20580, 20583, 1, 0, 0, 0, 20581, 20579, 1, 0, 0, 0, 20581, 20582, 1, 0, 0, 0, 20582, 2373, 1, 0, 0, 0, 20583, 20581, 1, 0, 0, 0, 20584, 20585, 5, 2472, 0, 0, 20585, 20587, 3, 2334, 1167, 0, 20586, 20584, 1, 0, 0, 0, 20586, 20587, 1, 0, 0, 0, 20587, 20588, 1, 0, 0, 0, 20588, 20591, 3, 2392, 1196, 0, 20589, 20590, 5, 2453, 0, 0, 20590, 20592, 3, 2322, 1161, 0, 20591, 20589, 1, 0, 0, 0, 20591, 20592, 1, 0, 0, 0, 20592, 20596, 1, 0, 0, 0, 20593, 20595, 3, 2352, 1176, 0, 20594, 20593, 1, 0, 0, 0, 20595, 20598, 1, 0, 0, 0, 20596, 20594, 1, 0, 0, 0, 20596, 20597, 1, 0, 0, 0, 20597, 2375, 1, 0, 0, 0, 20598, 20596, 1, 0, 0, 0, 20599, 20600, 5, 2472, 0, 0, 20600, 20602, 3, 2334, 1167, 0, 20601, 20599, 1, 0, 0, 0, 20601, 20602, 1, 0, 0, 0, 20602, 20603, 1, 0, 0, 0, 20603, 20608, 3, 2392, 1196, 0, 20604, 20605, 5, 2438, 0, 0, 20605, 20607, 3, 2392, 1196, 0, 20606, 20604, 1, 0, 0, 0, 20607, 20610, 1, 0, 0, 0, 20608, 20606, 1, 0, 0, 0, 20608, 20609, 1, 0, 0, 0, 20609, 2377, 1, 0, 0, 0, 20610, 20608, 1, 0, 0, 0, 20611, 20613, 5, 38, 0, 0, 20612, 20614, 5, 1457, 0, 0, 20613, 20612, 1, 0, 0, 0, 20613, 20614, 1, 0, 0, 0, 20614, 20648, 1, 0, 0, 0, 20615, 20648, 5, 42, 0, 0, 20616, 20648, 5, 376, 0, 0, 20617, 20648, 5, 401, 0, 0, 20618, 20648, 5, 540, 0, 0, 20619, 20648, 5, 603, 0, 0, 20620, 20621, 5, 603, 0, 0, 20621, 20648, 5, 64, 0, 0, 20622, 20648, 5, 715, 0, 0, 20623, 20624, 5, 735, 0, 0, 20624, 20648, 5, 1457, 0, 0, 20625, 20626, 5, 735, 0, 0, 20626, 20627, 5, 1554, 0, 0, 20627, 20648, 5, 1457, 0, 0, 20628, 20648, 5, 754, 0, 0, 20629, 20630, 5, 812, 0, 0, 20630, 20648, 5, 1651, 0, 0, 20631, 20632, 5, 944, 0, 0, 20632, 20648, 5, 2284, 0, 0, 20633, 20634, 5, 1257, 0, 0, 20634, 20635, 5, 242, 0, 0, 20635, 20648, 5, 1529, 0, 0, 20636, 20637, 5, 1482, 0, 0, 20637, 20648, 5, 1589, 0, 0, 20638, 20648, 5, 1503, 0, 0, 20639, 20648, 5, 1526, 0, 0, 20640, 20648, 5, 1645, 0, 0, 20641, 20642, 5, 2151, 0, 0, 20642, 20648, 5, 1720, 0, 0, 20643, 20648, 5, 2175, 0, 0, 20644, 20648, 5, 2205, 0, 0, 20645, 20648, 5, 2239, 0, 0, 20646, 20648, 5, 2311, 0, 0, 20647, 20611, 1, 0, 0, 0, 20647, 20615, 1, 0, 0, 0, 20647, 20616, 1, 0, 0, 0, 20647, 20617, 1, 0, 0, 0, 20647, 20618, 1, 0, 0, 0, 20647, 20619, 1, 0, 0, 0, 20647, 20620, 1, 0, 0, 0, 20647, 20622, 1, 0, 0, 0, 20647, 20623, 1, 0, 0, 0, 20647, 20625, 1, 0, 0, 0, 20647, 20628, 1, 0, 0, 0, 20647, 20629, 1, 0, 0, 0, 20647, 20631, 1, 0, 0, 0, 20647, 20633, 1, 0, 0, 0, 20647, 20636, 1, 0, 0, 0, 20647, 20638, 1, 0, 0, 0, 20647, 20639, 1, 0, 0, 0, 20647, 20640, 1, 0, 0, 0, 20647, 20641, 1, 0, 0, 0, 20647, 20643, 1, 0, 0, 0, 20647, 20644, 1, 0, 0, 0, 20647, 20645, 1, 0, 0, 0, 20647, 20646, 1, 0, 0, 0, 20648, 2379, 1, 0, 0, 0, 20649, 20650, 5, 38, 0, 0, 20650, 20976, 5, 1457, 0, 0, 20651, 20976, 5, 31, 0, 0, 20652, 20654, 5, 27, 0, 0, 20653, 20655, 5, 55, 0, 0, 20654, 20653, 1, 0, 0, 0, 20654, 20655, 1, 0, 0, 0, 20655, 20656, 1, 0, 0, 0, 20656, 20657, 5, 1720, 0, 0, 20657, 20658, 5, 2161, 0, 0, 20658, 20976, 5, 1669, 0, 0, 20659, 20660, 7, 57, 0, 0, 20660, 20661, 5, 55, 0, 0, 20661, 20662, 5, 1720, 0, 0, 20662, 20976, 5, 1461, 0, 0, 20663, 20664, 5, 27, 0, 0, 20664, 20665, 5, 1720, 0, 0, 20665, 20666, 5, 904, 0, 0, 20666, 20976, 5, 1236, 0, 0, 20667, 20669, 5, 319, 0, 0, 20668, 20670, 5, 55, 0, 0, 20669, 20668, 1, 0, 0, 0, 20669, 20670, 1, 0, 0, 0, 20670, 20671, 1, 0, 0, 0, 20671, 20976, 5, 220, 0, 0, 20672, 20673, 7, 276, 0, 0, 20673, 20674, 5, 55, 0, 0, 20674, 20976, 5, 220, 0, 0, 20675, 20676, 7, 277, 0, 0, 20676, 20677, 5, 55, 0, 0, 20677, 20976, 5, 294, 0, 0, 20678, 20679, 5, 541, 0, 0, 20679, 20680, 5, 1518, 0, 0, 20680, 20976, 5, 1410, 0, 0, 20681, 20682, 5, 42, 0, 0, 20682, 20976, 5, 348, 0, 0, 20683, 20685, 7, 278, 0, 0, 20684, 20686, 5, 1471, 0, 0, 20685, 20684, 1, 0, 0, 0, 20685, 20686, 1, 0, 0, 0, 20686, 20687, 1, 0, 0, 0, 20687, 20688, 5, 348, 0, 0, 20688, 20976, 5, 859, 0, 0, 20689, 20690, 5, 467, 0, 0, 20690, 20691, 5, 1471, 0, 0, 20691, 20692, 5, 348, 0, 0, 20692, 20976, 5, 859, 0, 0, 20693, 20694, 5, 376, 0, 0, 20694, 20695, 5, 278, 0, 0, 20695, 20976, 5, 1665, 0, 0, 20696, 20697, 5, 376, 0, 0, 20697, 20698, 5, 55, 0, 0, 20698, 20976, 5, 1459, 0, 0, 20699, 20700, 5, 46, 0, 0, 20700, 20701, 5, 55, 0, 0, 20701, 20976, 5, 419, 0, 0, 20702, 20704, 5, 319, 0, 0, 20703, 20705, 5, 55, 0, 0, 20704, 20703, 1, 0, 0, 0, 20704, 20705, 1, 0, 0, 0, 20705, 20706, 1, 0, 0, 0, 20706, 20976, 5, 420, 0, 0, 20707, 20708, 7, 276, 0, 0, 20708, 20709, 5, 55, 0, 0, 20709, 20976, 5, 420, 0, 0, 20710, 20711, 7, 277, 0, 0, 20711, 20712, 5, 55, 0, 0, 20712, 20976, 5, 424, 0, 0, 20713, 20714, 7, 277, 0, 0, 20714, 20715, 5, 55, 0, 0, 20715, 20976, 5, 481, 0, 0, 20716, 20721, 5, 603, 0, 0, 20717, 20718, 5, 64, 0, 0, 20718, 20722, 5, 27, 0, 0, 20719, 20720, 5, 55, 0, 0, 20720, 20722, 5, 2081, 0, 0, 20721, 20717, 1, 0, 0, 0, 20721, 20719, 1, 0, 0, 0, 20722, 20976, 1, 0, 0, 0, 20723, 20724, 7, 57, 0, 0, 20724, 20725, 5, 55, 0, 0, 20725, 20976, 5, 715, 0, 0, 20726, 20728, 5, 319, 0, 0, 20727, 20729, 5, 55, 0, 0, 20728, 20727, 1, 0, 0, 0, 20728, 20729, 1, 0, 0, 0, 20729, 20730, 1, 0, 0, 0, 20730, 20976, 5, 729, 0, 0, 20731, 20732, 7, 279, 0, 0, 20732, 20733, 5, 55, 0, 0, 20733, 20976, 5, 729, 0, 0, 20734, 20736, 5, 319, 0, 0, 20735, 20737, 7, 280, 0, 0, 20736, 20735, 1, 0, 0, 0, 20736, 20737, 1, 0, 0, 0, 20737, 20738, 1, 0, 0, 0, 20738, 20976, 5, 791, 0, 0, 20739, 20740, 5, 540, 0, 0, 20740, 20741, 5, 55, 0, 0, 20741, 20976, 7, 281, 0, 0, 20742, 20743, 5, 903, 0, 0, 20743, 20976, 5, 1621, 0, 0, 20744, 20745, 5, 27, 0, 0, 20745, 20746, 5, 814, 0, 0, 20746, 20976, 5, 904, 0, 0, 20747, 20749, 5, 319, 0, 0, 20748, 20750, 5, 55, 0, 0, 20749, 20748, 1, 0, 0, 0, 20749, 20750, 1, 0, 0, 0, 20750, 20751, 1, 0, 0, 0, 20751, 20976, 5, 847, 0, 0, 20752, 20753, 7, 279, 0, 0, 20753, 20754, 5, 55, 0, 0, 20754, 20976, 5, 847, 0, 0, 20755, 20976, 5, 887, 0, 0, 20756, 20758, 5, 319, 0, 0, 20757, 20759, 5, 55, 0, 0, 20758, 20757, 1, 0, 0, 0, 20758, 20759, 1, 0, 0, 0, 20759, 20760, 1, 0, 0, 0, 20760, 20761, 5, 917, 0, 0, 20761, 20976, 5, 2284, 0, 0, 20762, 20763, 7, 276, 0, 0, 20763, 20764, 5, 55, 0, 0, 20764, 20765, 5, 917, 0, 0, 20765, 20976, 5, 2284, 0, 0, 20766, 20768, 5, 640, 0, 0, 20767, 20766, 1, 0, 0, 0, 20767, 20768, 1, 0, 0, 0, 20768, 20769, 1, 0, 0, 0, 20769, 20770, 5, 1482, 0, 0, 20770, 20976, 5, 1589, 0, 0, 20771, 20772, 5, 1257, 0, 0, 20772, 20773, 5, 242, 0, 0, 20773, 20976, 5, 1529, 0, 0, 20774, 20776, 5, 319, 0, 0, 20775, 20777, 5, 55, 0, 0, 20776, 20775, 1, 0, 0, 0, 20776, 20777, 1, 0, 0, 0, 20777, 20778, 1, 0, 0, 0, 20778, 20779, 5, 953, 0, 0, 20779, 20976, 5, 969, 0, 0, 20780, 20781, 7, 282, 0, 0, 20781, 20782, 5, 55, 0, 0, 20782, 20783, 5, 953, 0, 0, 20783, 20976, 5, 969, 0, 0, 20784, 20786, 5, 319, 0, 0, 20785, 20787, 5, 55, 0, 0, 20786, 20785, 1, 0, 0, 0, 20786, 20787, 1, 0, 0, 0, 20787, 20788, 1, 0, 0, 0, 20788, 20976, 5, 330, 0, 0, 20789, 20790, 7, 283, 0, 0, 20790, 20791, 5, 55, 0, 0, 20791, 20976, 5, 330, 0, 0, 20792, 20794, 5, 319, 0, 0, 20793, 20795, 5, 55, 0, 0, 20794, 20793, 1, 0, 0, 0, 20794, 20795, 1, 0, 0, 0, 20795, 20796, 1, 0, 0, 0, 20796, 20797, 5, 931, 0, 0, 20797, 20976, 5, 610, 0, 0, 20798, 20799, 7, 284, 0, 0, 20799, 20800, 5, 55, 0, 0, 20800, 20801, 5, 931, 0, 0, 20801, 20976, 5, 610, 0, 0, 20802, 20804, 5, 319, 0, 0, 20803, 20805, 5, 55, 0, 0, 20804, 20803, 1, 0, 0, 0, 20804, 20805, 1, 0, 0, 0, 20805, 20806, 1, 0, 0, 0, 20806, 20807, 5, 330, 0, 0, 20807, 20976, 5, 420, 0, 0, 20808, 20809, 7, 285, 0, 0, 20809, 20810, 5, 55, 0, 0, 20810, 20811, 5, 330, 0, 0, 20811, 20976, 5, 420, 0, 0, 20812, 20814, 5, 319, 0, 0, 20813, 20815, 5, 55, 0, 0, 20814, 20813, 1, 0, 0, 0, 20814, 20815, 1, 0, 0, 0, 20815, 20816, 1, 0, 0, 0, 20816, 20817, 5, 330, 0, 0, 20817, 20818, 5, 158, 0, 0, 20818, 20976, 5, 1460, 0, 0, 20819, 20820, 7, 286, 0, 0, 20820, 20821, 5, 55, 0, 0, 20821, 20822, 5, 330, 0, 0, 20822, 20823, 5, 158, 0, 0, 20823, 20976, 5, 1460, 0, 0, 20824, 20826, 5, 319, 0, 0, 20825, 20827, 5, 55, 0, 0, 20826, 20825, 1, 0, 0, 0, 20826, 20827, 1, 0, 0, 0, 20827, 20828, 1, 0, 0, 0, 20828, 20976, 5, 1264, 0, 0, 20829, 20830, 7, 279, 0, 0, 20830, 20831, 5, 55, 0, 0, 20831, 20976, 5, 1264, 0, 0, 20832, 20833, 7, 57, 0, 0, 20833, 20834, 5, 55, 0, 0, 20834, 20976, 5, 1313, 0, 0, 20835, 20836, 5, 319, 0, 0, 20836, 20837, 5, 1407, 0, 0, 20837, 20976, 5, 348, 0, 0, 20838, 20839, 5, 1669, 0, 0, 20839, 20976, 5, 287, 0, 0, 20840, 20842, 5, 319, 0, 0, 20841, 20843, 5, 55, 0, 0, 20842, 20841, 1, 0, 0, 0, 20842, 20843, 1, 0, 0, 0, 20843, 20844, 1, 0, 0, 0, 20844, 20976, 5, 1459, 0, 0, 20845, 20846, 7, 279, 0, 0, 20846, 20847, 5, 55, 0, 0, 20847, 20976, 5, 1459, 0, 0, 20848, 20849, 7, 57, 0, 0, 20849, 20976, 5, 1461, 0, 0, 20850, 20851, 5, 319, 0, 0, 20851, 20976, 5, 1591, 0, 0, 20852, 20853, 7, 287, 0, 0, 20853, 20854, 5, 55, 0, 0, 20854, 20976, 5, 1591, 0, 0, 20855, 20856, 7, 57, 0, 0, 20856, 20857, 5, 1594, 0, 0, 20857, 20976, 5, 1643, 0, 0, 20858, 20860, 5, 319, 0, 0, 20859, 20861, 5, 55, 0, 0, 20860, 20859, 1, 0, 0, 0, 20860, 20861, 1, 0, 0, 0, 20861, 20862, 1, 0, 0, 0, 20862, 20976, 5, 1651, 0, 0, 20863, 20864, 7, 288, 0, 0, 20864, 20865, 5, 55, 0, 0, 20865, 20976, 5, 1651, 0, 0, 20866, 20867, 7, 289, 0, 0, 20867, 20976, 5, 1665, 0, 0, 20868, 20869, 5, 42, 0, 0, 20869, 20870, 5, 1568, 0, 0, 20870, 20976, 5, 309, 0, 0, 20871, 20873, 5, 319, 0, 0, 20872, 20874, 5, 55, 0, 0, 20873, 20872, 1, 0, 0, 0, 20873, 20874, 1, 0, 0, 0, 20874, 20875, 1, 0, 0, 0, 20875, 20876, 5, 1720, 0, 0, 20876, 20877, 5, 2152, 0, 0, 20877, 20976, 5, 1461, 0, 0, 20878, 20879, 7, 290, 0, 0, 20879, 20880, 5, 55, 0, 0, 20880, 20881, 5, 1720, 0, 0, 20881, 20882, 5, 2152, 0, 0, 20882, 20976, 5, 1461, 0, 0, 20883, 20884, 5, 2151, 0, 0, 20884, 20885, 5, 55, 0, 0, 20885, 20976, 5, 1720, 0, 0, 20886, 20888, 5, 319, 0, 0, 20887, 20889, 5, 55, 0, 0, 20888, 20887, 1, 0, 0, 0, 20888, 20889, 1, 0, 0, 0, 20889, 20890, 1, 0, 0, 0, 20890, 20976, 5, 1794, 0, 0, 20891, 20892, 5, 467, 0, 0, 20892, 20893, 5, 55, 0, 0, 20893, 20976, 5, 1794, 0, 0, 20894, 20895, 7, 277, 0, 0, 20895, 20896, 5, 1471, 0, 0, 20896, 20976, 5, 1794, 0, 0, 20897, 20899, 5, 319, 0, 0, 20898, 20900, 5, 55, 0, 0, 20899, 20898, 1, 0, 0, 0, 20899, 20900, 1, 0, 0, 0, 20900, 20901, 1, 0, 0, 0, 20901, 20976, 5, 2081, 0, 0, 20902, 20903, 7, 291, 0, 0, 20903, 20904, 5, 55, 0, 0, 20904, 20976, 5, 2081, 0, 0, 20905, 20906, 7, 292, 0, 0, 20906, 20976, 5, 2078, 0, 0, 20907, 20909, 5, 319, 0, 0, 20908, 20910, 5, 55, 0, 0, 20909, 20908, 1, 0, 0, 0, 20909, 20910, 1, 0, 0, 0, 20910, 20911, 1, 0, 0, 0, 20911, 20976, 5, 2155, 0, 0, 20912, 20913, 7, 276, 0, 0, 20913, 20914, 5, 55, 0, 0, 20914, 20976, 5, 2155, 0, 0, 20915, 20916, 5, 27, 0, 0, 20916, 20917, 5, 348, 0, 0, 20917, 20976, 5, 2155, 0, 0, 20918, 20920, 5, 319, 0, 0, 20919, 20921, 5, 55, 0, 0, 20920, 20919, 1, 0, 0, 0, 20920, 20921, 1, 0, 0, 0, 20921, 20922, 1, 0, 0, 0, 20922, 20976, 5, 2164, 0, 0, 20923, 20924, 7, 293, 0, 0, 20924, 20925, 5, 55, 0, 0, 20925, 20976, 5, 2164, 0, 0, 20926, 20927, 7, 57, 0, 0, 20927, 20976, 5, 2235, 0, 0, 20928, 20930, 5, 319, 0, 0, 20929, 20931, 5, 55, 0, 0, 20930, 20929, 1, 0, 0, 0, 20930, 20931, 1, 0, 0, 0, 20931, 20932, 1, 0, 0, 0, 20932, 20976, 5, 2284, 0, 0, 20933, 20934, 7, 294, 0, 0, 20934, 20935, 5, 55, 0, 0, 20935, 20976, 5, 2284, 0, 0, 20936, 20937, 7, 295, 0, 0, 20937, 20976, 5, 55, 0, 0, 20938, 20939, 5, 111, 0, 0, 20939, 20976, 5, 2235, 0, 0, 20940, 20941, 5, 190, 0, 0, 20941, 20976, 5, 1200, 0, 0, 20942, 20943, 5, 541, 0, 0, 20943, 20944, 5, 4, 0, 0, 20944, 20976, 5, 1410, 0, 0, 20945, 20947, 5, 614, 0, 0, 20946, 20948, 5, 55, 0, 0, 20947, 20946, 1, 0, 0, 0, 20947, 20948, 1, 0, 0, 0, 20948, 20949, 1, 0, 0, 0, 20949, 20976, 5, 2145, 0, 0, 20950, 20951, 5, 645, 0, 0, 20951, 20953, 5, 55, 0, 0, 20952, 20954, 5, 1236, 0, 0, 20953, 20952, 1, 0, 0, 0, 20953, 20954, 1, 0, 0, 0, 20954, 20955, 1, 0, 0, 0, 20955, 20976, 5, 1456, 0, 0, 20956, 20957, 5, 735, 0, 0, 20957, 20958, 5, 55, 0, 0, 20958, 20976, 5, 1457, 0, 0, 20959, 20960, 5, 812, 0, 0, 20960, 20961, 5, 359, 0, 0, 20961, 20976, 5, 2110, 0, 0, 20962, 20963, 5, 812, 0, 0, 20963, 20976, 5, 1830, 0, 0, 20964, 20965, 5, 1473, 0, 0, 20965, 20976, 5, 367, 0, 0, 20966, 20976, 5, 1579, 0, 0, 20967, 20968, 5, 1645, 0, 0, 20968, 20969, 5, 55, 0, 0, 20969, 20976, 7, 296, 0, 0, 20970, 20976, 5, 1799, 0, 0, 20971, 20976, 5, 1805, 0, 0, 20972, 20976, 5, 1807, 0, 0, 20973, 20976, 5, 1831, 0, 0, 20974, 20976, 5, 1866, 0, 0, 20975, 20649, 1, 0, 0, 0, 20975, 20651, 1, 0, 0, 0, 20975, 20652, 1, 0, 0, 0, 20975, 20659, 1, 0, 0, 0, 20975, 20663, 1, 0, 0, 0, 20975, 20667, 1, 0, 0, 0, 20975, 20672, 1, 0, 0, 0, 20975, 20675, 1, 0, 0, 0, 20975, 20678, 1, 0, 0, 0, 20975, 20681, 1, 0, 0, 0, 20975, 20683, 1, 0, 0, 0, 20975, 20689, 1, 0, 0, 0, 20975, 20693, 1, 0, 0, 0, 20975, 20696, 1, 0, 0, 0, 20975, 20699, 1, 0, 0, 0, 20975, 20702, 1, 0, 0, 0, 20975, 20707, 1, 0, 0, 0, 20975, 20710, 1, 0, 0, 0, 20975, 20713, 1, 0, 0, 0, 20975, 20716, 1, 0, 0, 0, 20975, 20723, 1, 0, 0, 0, 20975, 20726, 1, 0, 0, 0, 20975, 20731, 1, 0, 0, 0, 20975, 20734, 1, 0, 0, 0, 20975, 20739, 1, 0, 0, 0, 20975, 20742, 1, 0, 0, 0, 20975, 20744, 1, 0, 0, 0, 20975, 20747, 1, 0, 0, 0, 20975, 20752, 1, 0, 0, 0, 20975, 20755, 1, 0, 0, 0, 20975, 20756, 1, 0, 0, 0, 20975, 20762, 1, 0, 0, 0, 20975, 20767, 1, 0, 0, 0, 20975, 20771, 1, 0, 0, 0, 20975, 20774, 1, 0, 0, 0, 20975, 20780, 1, 0, 0, 0, 20975, 20784, 1, 0, 0, 0, 20975, 20789, 1, 0, 0, 0, 20975, 20792, 1, 0, 0, 0, 20975, 20798, 1, 0, 0, 0, 20975, 20802, 1, 0, 0, 0, 20975, 20808, 1, 0, 0, 0, 20975, 20812, 1, 0, 0, 0, 20975, 20819, 1, 0, 0, 0, 20975, 20824, 1, 0, 0, 0, 20975, 20829, 1, 0, 0, 0, 20975, 20832, 1, 0, 0, 0, 20975, 20835, 1, 0, 0, 0, 20975, 20838, 1, 0, 0, 0, 20975, 20840, 1, 0, 0, 0, 20975, 20845, 1, 0, 0, 0, 20975, 20848, 1, 0, 0, 0, 20975, 20850, 1, 0, 0, 0, 20975, 20852, 1, 0, 0, 0, 20975, 20855, 1, 0, 0, 0, 20975, 20858, 1, 0, 0, 0, 20975, 20863, 1, 0, 0, 0, 20975, 20866, 1, 0, 0, 0, 20975, 20868, 1, 0, 0, 0, 20975, 20871, 1, 0, 0, 0, 20975, 20878, 1, 0, 0, 0, 20975, 20883, 1, 0, 0, 0, 20975, 20886, 1, 0, 0, 0, 20975, 20891, 1, 0, 0, 0, 20975, 20894, 1, 0, 0, 0, 20975, 20897, 1, 0, 0, 0, 20975, 20902, 1, 0, 0, 0, 20975, 20905, 1, 0, 0, 0, 20975, 20907, 1, 0, 0, 0, 20975, 20912, 1, 0, 0, 0, 20975, 20915, 1, 0, 0, 0, 20975, 20918, 1, 0, 0, 0, 20975, 20923, 1, 0, 0, 0, 20975, 20926, 1, 0, 0, 0, 20975, 20928, 1, 0, 0, 0, 20975, 20933, 1, 0, 0, 0, 20975, 20936, 1, 0, 0, 0, 20975, 20938, 1, 0, 0, 0, 20975, 20940, 1, 0, 0, 0, 20975, 20942, 1, 0, 0, 0, 20975, 20945, 1, 0, 0, 0, 20975, 20950, 1, 0, 0, 0, 20975, 20956, 1, 0, 0, 0, 20975, 20959, 1, 0, 0, 0, 20975, 20962, 1, 0, 0, 0, 20975, 20964, 1, 0, 0, 0, 20975, 20966, 1, 0, 0, 0, 20975, 20967, 1, 0, 0, 0, 20975, 20970, 1, 0, 0, 0, 20975, 20971, 1, 0, 0, 0, 20975, 20972, 1, 0, 0, 0, 20975, 20973, 1, 0, 0, 0, 20975, 20974, 1, 0, 0, 0, 20976, 2381, 1, 0, 0, 0, 20977, 20980, 5, 2106, 0, 0, 20978, 20981, 3, 2388, 1194, 0, 20979, 20981, 3, 2370, 1185, 0, 20980, 20978, 1, 0, 0, 0, 20980, 20979, 1, 0, 0, 0, 20981, 20986, 1, 0, 0, 0, 20982, 20983, 5, 82, 0, 0, 20983, 20984, 5, 2110, 0, 0, 20984, 20985, 5, 2361, 0, 0, 20985, 20987, 3, 2388, 1194, 0, 20986, 20982, 1, 0, 0, 0, 20986, 20987, 1, 0, 0, 0, 20987, 21041, 1, 0, 0, 0, 20988, 20992, 5, 774, 0, 0, 20989, 20993, 3, 2388, 1194, 0, 20990, 20993, 3, 2370, 1185, 0, 20991, 20993, 3, 2374, 1187, 0, 20992, 20989, 1, 0, 0, 0, 20992, 20990, 1, 0, 0, 0, 20992, 20991, 1, 0, 0, 0, 20993, 20994, 1, 0, 0, 0, 20994, 21008, 7, 297, 0, 0, 20995, 20998, 5, 2445, 0, 0, 20996, 20999, 5, 2439, 0, 0, 20997, 20999, 3, 2370, 1185, 0, 20998, 20996, 1, 0, 0, 0, 20998, 20997, 1, 0, 0, 0, 20999, 21005, 1, 0, 0, 0, 21000, 21003, 5, 2451, 0, 0, 21001, 21004, 5, 2439, 0, 0, 21002, 21004, 3, 2370, 1185, 0, 21003, 21001, 1, 0, 0, 0, 21003, 21002, 1, 0, 0, 0, 21004, 21006, 1, 0, 0, 0, 21005, 21000, 1, 0, 0, 0, 21005, 21006, 1, 0, 0, 0, 21006, 21007, 1, 0, 0, 0, 21007, 21009, 5, 2446, 0, 0, 21008, 20995, 1, 0, 0, 0, 21008, 21009, 1, 0, 0, 0, 21009, 21026, 1, 0, 0, 0, 21010, 21024, 5, 2139, 0, 0, 21011, 21025, 5, 983, 0, 0, 21012, 21025, 5, 363, 0, 0, 21013, 21025, 5, 677, 0, 0, 21014, 21025, 5, 956, 0, 0, 21015, 21022, 5, 1634, 0, 0, 21016, 21019, 5, 2445, 0, 0, 21017, 21020, 5, 2439, 0, 0, 21018, 21020, 3, 2370, 1185, 0, 21019, 21017, 1, 0, 0, 0, 21019, 21018, 1, 0, 0, 0, 21020, 21021, 1, 0, 0, 0, 21021, 21023, 5, 2446, 0, 0, 21022, 21016, 1, 0, 0, 0, 21022, 21023, 1, 0, 0, 0, 21023, 21025, 1, 0, 0, 0, 21024, 21011, 1, 0, 0, 0, 21024, 21012, 1, 0, 0, 0, 21024, 21013, 1, 0, 0, 0, 21024, 21014, 1, 0, 0, 0, 21024, 21015, 1, 0, 0, 0, 21025, 21027, 1, 0, 0, 0, 21026, 21010, 1, 0, 0, 0, 21026, 21027, 1, 0, 0, 0, 21027, 21041, 1, 0, 0, 0, 21028, 21041, 3, 2384, 1192, 0, 21029, 21030, 5, 359, 0, 0, 21030, 21041, 3, 2388, 1194, 0, 21031, 21041, 3, 2388, 1194, 0, 21032, 21041, 5, 1226, 0, 0, 21033, 21041, 5, 2156, 0, 0, 21034, 21041, 5, 573, 0, 0, 21035, 21041, 5, 371, 0, 0, 21036, 21041, 5, 1667, 0, 0, 21037, 21041, 5, 958, 0, 0, 21038, 21041, 5, 930, 0, 0, 21039, 21041, 5, 387, 0, 0, 21040, 20977, 1, 0, 0, 0, 21040, 20988, 1, 0, 0, 0, 21040, 21028, 1, 0, 0, 0, 21040, 21029, 1, 0, 0, 0, 21040, 21031, 1, 0, 0, 0, 21040, 21032, 1, 0, 0, 0, 21040, 21033, 1, 0, 0, 0, 21040, 21034, 1, 0, 0, 0, 21040, 21035, 1, 0, 0, 0, 21040, 21036, 1, 0, 0, 0, 21040, 21037, 1, 0, 0, 0, 21040, 21038, 1, 0, 0, 0, 21040, 21039, 1, 0, 0, 0, 21041, 2383, 1, 0, 0, 0, 21042, 21044, 5, 2439, 0, 0, 21043, 21045, 5, 2438, 0, 0, 21044, 21043, 1, 0, 0, 0, 21044, 21045, 1, 0, 0, 0, 21045, 21048, 1, 0, 0, 0, 21046, 21048, 5, 2440, 0, 0, 21047, 21042, 1, 0, 0, 0, 21047, 21046, 1, 0, 0, 0, 21048, 2385, 1, 0, 0, 0, 21049, 21050, 5, 2450, 0, 0, 21050, 21051, 3, 2384, 1192, 0, 21051, 2387, 1, 0, 0, 0, 21052, 21053, 7, 298, 0, 0, 21053, 2389, 1, 0, 0, 0, 21054, 21055, 5, 2472, 0, 0, 21055, 21057, 3, 2334, 1167, 0, 21056, 21054, 1, 0, 0, 0, 21056, 21057, 1, 0, 0, 0, 21057, 21058, 1, 0, 0, 0, 21058, 21059, 3, 2392, 1196, 0, 21059, 2391, 1, 0, 0, 0, 21060, 21063, 3, 2398, 1199, 0, 21061, 21063, 5, 2442, 0, 0, 21062, 21060, 1, 0, 0, 0, 21062, 21061, 1, 0, 0, 0, 21063, 2393, 1, 0, 0, 0, 21064, 21065, 5, 2479, 0, 0, 21065, 2395, 1, 0, 0, 0, 21066, 21067, 5, 2445, 0, 0, 21067, 21068, 5, 2449, 0, 0, 21068, 21069, 5, 2446, 0, 0, 21069, 2397, 1, 0, 0, 0, 21070, 21181, 3, 2404, 1202, 0, 21071, 21181, 3, 2402, 1201, 0, 21072, 21181, 3, 2400, 1200, 0, 21073, 21181, 5, 2478, 0, 0, 21074, 21181, 5, 3, 0, 0, 21075, 21181, 5, 36, 0, 0, 21076, 21181, 5, 34, 0, 0, 21077, 21181, 5, 35, 0, 0, 21078, 21181, 5, 46, 0, 0, 21079, 21181, 5, 96, 0, 0, 21080, 21181, 5, 101, 0, 0, 21081, 21181, 5, 108, 0, 0, 21082, 21181, 5, 131, 0, 0, 21083, 21181, 5, 148, 0, 0, 21084, 21181, 5, 213, 0, 0, 21085, 21181, 5, 196, 0, 0, 21086, 21181, 5, 2424, 0, 0, 21087, 21181, 5, 2425, 0, 0, 21088, 21181, 5, 220, 0, 0, 21089, 21181, 5, 286, 0, 0, 21090, 21181, 5, 344, 0, 0, 21091, 21181, 5, 182, 0, 0, 21092, 21181, 5, 379, 0, 0, 21093, 21181, 5, 401, 0, 0, 21094, 21181, 5, 407, 0, 0, 21095, 21181, 5, 418, 0, 0, 21096, 21181, 5, 469, 0, 0, 21097, 21181, 5, 2426, 0, 0, 21098, 21181, 5, 478, 0, 0, 21099, 21181, 5, 498, 0, 0, 21100, 21181, 5, 521, 0, 0, 21101, 21181, 5, 522, 0, 0, 21102, 21181, 5, 516, 0, 0, 21103, 21181, 5, 533, 0, 0, 21104, 21181, 5, 534, 0, 0, 21105, 21181, 5, 535, 0, 0, 21106, 21181, 5, 543, 0, 0, 21107, 21181, 5, 545, 0, 0, 21108, 21181, 5, 2427, 0, 0, 21109, 21181, 5, 590, 0, 0, 21110, 21181, 5, 605, 0, 0, 21111, 21181, 5, 613, 0, 0, 21112, 21181, 5, 633, 0, 0, 21113, 21181, 5, 732, 0, 0, 21114, 21181, 5, 748, 0, 0, 21115, 21181, 5, 767, 0, 0, 21116, 21181, 5, 808, 0, 0, 21117, 21181, 5, 810, 0, 0, 21118, 21181, 5, 821, 0, 0, 21119, 21181, 5, 891, 0, 0, 21120, 21181, 5, 892, 0, 0, 21121, 21181, 5, 2428, 0, 0, 21122, 21181, 5, 988, 0, 0, 21123, 21181, 5, 899, 0, 0, 21124, 21181, 5, 962, 0, 0, 21125, 21181, 5, 963, 0, 0, 21126, 21181, 5, 1228, 0, 0, 21127, 21181, 5, 1277, 0, 0, 21128, 21181, 5, 1307, 0, 0, 21129, 21181, 5, 1316, 0, 0, 21130, 21181, 5, 1322, 0, 0, 21131, 21181, 5, 1326, 0, 0, 21132, 21181, 5, 1329, 0, 0, 21133, 21181, 5, 1392, 0, 0, 21134, 21181, 5, 1401, 0, 0, 21135, 21181, 5, 1408, 0, 0, 21136, 21181, 5, 1418, 0, 0, 21137, 21181, 5, 1417, 0, 0, 21138, 21181, 5, 1431, 0, 0, 21139, 21181, 5, 1471, 0, 0, 21140, 21181, 5, 1490, 0, 0, 21141, 21181, 5, 1496, 0, 0, 21142, 21181, 5, 1510, 0, 0, 21143, 21181, 5, 1528, 0, 0, 21144, 21181, 5, 1557, 0, 0, 21145, 21181, 5, 1575, 0, 0, 21146, 21181, 5, 1578, 0, 0, 21147, 21181, 5, 1631, 0, 0, 21148, 21181, 5, 1646, 0, 0, 21149, 21181, 5, 1658, 0, 0, 21150, 21181, 5, 1669, 0, 0, 21151, 21181, 5, 1654, 0, 0, 21152, 21181, 5, 1675, 0, 0, 21153, 21181, 5, 1690, 0, 0, 21154, 21181, 5, 1691, 0, 0, 21155, 21181, 5, 1704, 0, 0, 21156, 21181, 5, 2431, 0, 0, 21157, 21181, 5, 1717, 0, 0, 21158, 21181, 5, 1718, 0, 0, 21159, 21181, 5, 1783, 0, 0, 21160, 21181, 5, 2075, 0, 0, 21161, 21181, 5, 2432, 0, 0, 21162, 21181, 5, 2105, 0, 0, 21163, 21181, 5, 2107, 0, 0, 21164, 21181, 5, 2108, 0, 0, 21165, 21181, 5, 2111, 0, 0, 21166, 21181, 5, 2155, 0, 0, 21167, 21181, 5, 2169, 0, 0, 21168, 21181, 5, 2258, 0, 0, 21169, 21181, 5, 2257, 0, 0, 21170, 21181, 5, 2260, 0, 0, 21171, 21181, 5, 2293, 0, 0, 21172, 21181, 5, 2300, 0, 0, 21173, 21181, 5, 2433, 0, 0, 21174, 21181, 5, 2317, 0, 0, 21175, 21181, 5, 2359, 0, 0, 21176, 21181, 5, 2411, 0, 0, 21177, 21181, 5, 2419, 0, 0, 21178, 21181, 5, 2256, 0, 0, 21179, 21181, 5, 2398, 0, 0, 21180, 21070, 1, 0, 0, 0, 21180, 21071, 1, 0, 0, 0, 21180, 21072, 1, 0, 0, 0, 21180, 21073, 1, 0, 0, 0, 21180, 21074, 1, 0, 0, 0, 21180, 21075, 1, 0, 0, 0, 21180, 21076, 1, 0, 0, 0, 21180, 21077, 1, 0, 0, 0, 21180, 21078, 1, 0, 0, 0, 21180, 21079, 1, 0, 0, 0, 21180, 21080, 1, 0, 0, 0, 21180, 21081, 1, 0, 0, 0, 21180, 21082, 1, 0, 0, 0, 21180, 21083, 1, 0, 0, 0, 21180, 21084, 1, 0, 0, 0, 21180, 21085, 1, 0, 0, 0, 21180, 21086, 1, 0, 0, 0, 21180, 21087, 1, 0, 0, 0, 21180, 21088, 1, 0, 0, 0, 21180, 21089, 1, 0, 0, 0, 21180, 21090, 1, 0, 0, 0, 21180, 21091, 1, 0, 0, 0, 21180, 21092, 1, 0, 0, 0, 21180, 21093, 1, 0, 0, 0, 21180, 21094, 1, 0, 0, 0, 21180, 21095, 1, 0, 0, 0, 21180, 21096, 1, 0, 0, 0, 21180, 21097, 1, 0, 0, 0, 21180, 21098, 1, 0, 0, 0, 21180, 21099, 1, 0, 0, 0, 21180, 21100, 1, 0, 0, 0, 21180, 21101, 1, 0, 0, 0, 21180, 21102, 1, 0, 0, 0, 21180, 21103, 1, 0, 0, 0, 21180, 21104, 1, 0, 0, 0, 21180, 21105, 1, 0, 0, 0, 21180, 21106, 1, 0, 0, 0, 21180, 21107, 1, 0, 0, 0, 21180, 21108, 1, 0, 0, 0, 21180, 21109, 1, 0, 0, 0, 21180, 21110, 1, 0, 0, 0, 21180, 21111, 1, 0, 0, 0, 21180, 21112, 1, 0, 0, 0, 21180, 21113, 1, 0, 0, 0, 21180, 21114, 1, 0, 0, 0, 21180, 21115, 1, 0, 0, 0, 21180, 21116, 1, 0, 0, 0, 21180, 21117, 1, 0, 0, 0, 21180, 21118, 1, 0, 0, 0, 21180, 21119, 1, 0, 0, 0, 21180, 21120, 1, 0, 0, 0, 21180, 21121, 1, 0, 0, 0, 21180, 21122, 1, 0, 0, 0, 21180, 21123, 1, 0, 0, 0, 21180, 21124, 1, 0, 0, 0, 21180, 21125, 1, 0, 0, 0, 21180, 21126, 1, 0, 0, 0, 21180, 21127, 1, 0, 0, 0, 21180, 21128, 1, 0, 0, 0, 21180, 21129, 1, 0, 0, 0, 21180, 21130, 1, 0, 0, 0, 21180, 21131, 1, 0, 0, 0, 21180, 21132, 1, 0, 0, 0, 21180, 21133, 1, 0, 0, 0, 21180, 21134, 1, 0, 0, 0, 21180, 21135, 1, 0, 0, 0, 21180, 21136, 1, 0, 0, 0, 21180, 21137, 1, 0, 0, 0, 21180, 21138, 1, 0, 0, 0, 21180, 21139, 1, 0, 0, 0, 21180, 21140, 1, 0, 0, 0, 21180, 21141, 1, 0, 0, 0, 21180, 21142, 1, 0, 0, 0, 21180, 21143, 1, 0, 0, 0, 21180, 21144, 1, 0, 0, 0, 21180, 21145, 1, 0, 0, 0, 21180, 21146, 1, 0, 0, 0, 21180, 21147, 1, 0, 0, 0, 21180, 21148, 1, 0, 0, 0, 21180, 21149, 1, 0, 0, 0, 21180, 21150, 1, 0, 0, 0, 21180, 21151, 1, 0, 0, 0, 21180, 21152, 1, 0, 0, 0, 21180, 21153, 1, 0, 0, 0, 21180, 21154, 1, 0, 0, 0, 21180, 21155, 1, 0, 0, 0, 21180, 21156, 1, 0, 0, 0, 21180, 21157, 1, 0, 0, 0, 21180, 21158, 1, 0, 0, 0, 21180, 21159, 1, 0, 0, 0, 21180, 21160, 1, 0, 0, 0, 21180, 21161, 1, 0, 0, 0, 21180, 21162, 1, 0, 0, 0, 21180, 21163, 1, 0, 0, 0, 21180, 21164, 1, 0, 0, 0, 21180, 21165, 1, 0, 0, 0, 21180, 21166, 1, 0, 0, 0, 21180, 21167, 1, 0, 0, 0, 21180, 21168, 1, 0, 0, 0, 21180, 21169, 1, 0, 0, 0, 21180, 21170, 1, 0, 0, 0, 21180, 21171, 1, 0, 0, 0, 21180, 21172, 1, 0, 0, 0, 21180, 21173, 1, 0, 0, 0, 21180, 21174, 1, 0, 0, 0, 21180, 21175, 1, 0, 0, 0, 21180, 21176, 1, 0, 0, 0, 21180, 21177, 1, 0, 0, 0, 21180, 21178, 1, 0, 0, 0, 21180, 21179, 1, 0, 0, 0, 21181, 2399, 1, 0, 0, 0, 21182, 21183, 7, 299, 0, 0, 21183, 2401, 1, 0, 0, 0, 21184, 21185, 7, 300, 0, 0, 21185, 2403, 1, 0, 0, 0, 21186, 21187, 7, 301, 0, 0, 21187, 2405, 1, 0, 0, 0, 2968, 2407, 2411, 2414, 2419, 2421, 2423, 2428, 2431, 2434, 2436, 2581, 2588, 2590, 2593, 2596, 2618, 2620, 2627, 2631, 2636, 2638, 2643, 2646, 2650, 2658, 2663, 2667, 2672, 2677, 2681, 2687, 2692, 2697, 2701, 2704, 2710, 2718, 2725, 2729, 2734, 2737, 2753, 2758, 2762, 2770, 2776, 2784, 2787, 2789, 2792, 2796, 2799, 2803, 2811, 2817, 2825, 2828, 2831, 2843, 2845, 2851, 2856, 2858, 2864, 2867, 2879, 2889, 2892, 2897, 2900, 2917, 2924, 2929, 2933, 2948, 2951, 2966, 2976, 2990, 2993, 3006, 3014, 3020, 3024, 3031, 3035, 3050, 3068, 3081, 3087, 3096, 3106, 3110, 3123, 3126, 3135, 3143, 3147, 3157, 3171, 3181, 3189, 3192, 3196, 3199, 3202, 3205, 3215, 3234, 3244, 3252, 3257, 3263, 3284, 3293, 3296, 3300, 3302, 3311, 3315, 3331, 3345, 3347, 3350, 3354, 3361, 3368, 3377, 3382, 3387, 3389, 3397, 3405, 3409, 3415, 3419, 3424, 3431, 3434, 3444, 3449, 3456, 3465, 3467, 3472, 3475, 3479, 3484, 3496, 3505, 3508, 3514, 3520, 3530, 3546, 3561, 3574, 3580, 3592, 3601, 3606, 3622, 3624, 3640, 3642, 3663, 3665, 3685, 3687, 3702, 3711, 3713, 3724, 3731, 3744, 3749, 3758, 3761, 3766, 3771, 3776, 3779, 3785, 3789, 3795, 3800, 3805, 3808, 3815, 3822, 3831, 3833, 3835, 3839, 3849, 3859, 3864, 3868, 3870, 3883, 3888, 3897, 3899, 3915, 3927, 3931, 3934, 3937, 3944, 3948, 3951, 3962, 3967, 3972, 3982, 3987, 3997, 3999, 4004, 4007, 4011, 4016, 4028, 4033, 4037, 4039, 4044, 4047, 4052, 4059, 4069, 4074, 4077, 4080, 4084, 4087, 4092, 4101, 4117, 4119, 4129, 4147, 4154, 4159, 4165, 4173, 4175, 4191, 4196, 4201, 4203, 4208, 4215, 4218, 4221, 4224, 4234, 4246, 4250, 4253, 4262, 4270, 4278, 4281, 4287, 4292, 4297, 4301, 4339, 4367, 4374, 4379, 4386, 4396, 4401, 4410, 4414, 4425, 4428, 4432, 4435, 4440, 4445, 4449, 4459, 4469, 4475, 4483, 4491, 4496, 4499, 4501, 4504, 4513, 4516, 4521, 4526, 4529, 4532, 4535, 4539, 4542, 4550, 4555, 4560, 4567, 4577, 4593, 4600, 4610, 4620, 4627, 4630, 4635, 4645, 4650, 4657, 4660, 4665, 4668, 4671, 4688, 4693, 4702, 4705, 4710, 4713, 4720, 4723, 4730, 4735, 4739, 4744, 4749, 4763, 4768, 4775, 4778, 4782, 4785, 4788, 4791, 4801, 4807, 4817, 4822, 4829, 4835, 4839, 4842, 4845, 4862, 4867, 4875, 4889, 4896, 4911, 4931, 4938, 4940, 4944, 4952, 4963, 4974, 4976, 4983, 4989, 4995, 5018, 5023, 5028, 5037, 5040, 5048, 5053, 5057, 5060, 5063, 5066, 5069, 5072, 5075, 5078, 5082, 5085, 5088, 5093, 5097, 5100, 5105, 5107, 5119, 5123, 5127, 5133, 5137, 5140, 5143, 5153, 5162, 5170, 5177, 5182, 5190, 5193, 5197, 5207, 5216, 5224, 5228, 5231, 5236, 5240, 5243, 5246, 5255, 5263, 5268, 5294, 5306, 5315, 5318, 5327, 5337, 5342, 5353, 5356, 5358, 5364, 5369, 5374, 5377, 5383, 5388, 5391, 5398, 5404, 5409, 5415, 5422, 5425, 5433, 5439, 5445, 5449, 5452, 5455, 5468, 5474, 5481, 5492, 5500, 5504, 5507, 5512, 5522, 5527, 5532, 5537, 5542, 5547, 5552, 5557, 5562, 5567, 5570, 5579, 5584, 5594, 5599, 5606, 5610, 5619, 5626, 5630, 5637, 5640, 5643, 5651, 5655, 5658, 5666, 5672, 5674, 5682, 5691, 5696, 5703, 5708, 5711, 5715, 5717, 5728, 5739, 5753, 5758, 5768, 5774, 5777, 5782, 5791, 5794, 5799, 5803, 5827, 5829, 5833, 5836, 5841, 5844, 5849, 5858, 5869, 5872, 5875, 5878, 5882, 5890, 5895, 5907, 5910, 5915, 5919, 5922, 5931, 5937, 5943, 5946, 5950, 5965, 5968, 5971, 5977, 5983, 5988, 5994, 6000, 6008, 6012, 6026, 6033, 6040, 6046, 6049, 6053, 6058, 6063, 6069, 6074, 6079, 6083, 6088, 6094, 6098, 6103, 6107, 6111, 6124, 6129, 6132, 6136, 6141, 6143, 6149, 6151, 6155, 6158, 6165, 6176, 6186, 6190, 6195, 6199, 6203, 6206, 6217, 6222, 6234, 6244, 6256, 6262, 6264, 6268, 6277, 6284, 6294, 6297, 6304, 6312, 6323, 6330, 6334, 6336, 6340, 6350, 6361, 6366, 6370, 6374, 6377, 6380, 6390, 6395, 6403, 6410, 6414, 6416, 6420, 6423, 6433, 6444, 6449, 6453, 6457, 6460, 6463, 6470, 6479, 6487, 6489, 6512, 6525, 6539, 6541, 6552, 6560, 6566, 6569, 6574, 6578, 6581, 6584, 6589, 6597, 6609, 6617, 6624, 6643, 6654, 6657, 6663, 6665, 6672, 6675, 6677, 6685, 6700, 6708, 6722, 6733, 6735, 6751, 6753, 6760, 6765, 6772, 6775, 6780, 6790, 6799, 6812, 6822, 6827, 6830, 6836, 6854, 6857, 6860, 6868, 6881, 6883, 6887, 6895, 6897, 6899, 6901, 6909, 6920, 6931, 6933, 6942, 6953, 6959, 6966, 6976, 6980, 6989, 6992, 6998, 7001, 7006, 7012, 7020, 7026, 7032, 7044, 7052, 7055, 7066, 7070, 7081, 7085, 7096, 7100, 7106, 7109, 7112, 7115, 7118, 7122, 7125, 7129, 7135, 7138, 7141, 7144, 7147, 7151, 7154, 7162, 7167, 7170, 7174, 7182, 7186, 7190, 7199, 7210, 7217, 7219, 7223, 7232, 7236, 7240, 7247, 7253, 7257, 7264, 7273, 7285, 7299, 7303, 7305, 7308, 7315, 7329, 7338, 7341, 7344, 7347, 7355, 7359, 7368, 7372, 7387, 7395, 7407, 7424, 7427, 7432, 7438, 7442, 7447, 7453, 7457, 7460, 7474, 7479, 7493, 7498, 7500, 7509, 7517, 7520, 7523, 7526, 7529, 7531, 7535, 7539, 7546, 7551, 7556, 7561, 7565, 7568, 7573, 7581, 7586, 7589, 7595, 7600, 7605, 7612, 7615, 7628, 7639, 7648, 7657, 7666, 7675, 7678, 7684, 7689, 7691, 7698, 7740, 7743, 7747, 7750, 7761, 7770, 7773, 7775, 7785, 7790, 7794, 7798, 7801, 7804, 7818, 7820, 7826, 7828, 7832, 7838, 7844, 7848, 7851, 7859, 7869, 7873, 7892, 7897, 7904, 7911, 7985, 7992, 8001, 8010, 8018, 8025, 8032, 8037, 8044, 8051, 8056, 8063, 8070, 8075, 8082, 8089, 8094, 8101, 8108, 8113, 8116, 8119, 8126, 8130, 8139, 8150, 8159, 8163, 8170, 8172, 8179, 8187, 8192, 8196, 8201, 8208, 8210, 8214, 8217, 8220, 8229, 8235, 8237, 8241, 8245, 8250, 8255, 8259, 8265, 8270, 8275, 8278, 8287, 8290, 8293, 8299, 8306, 8311, 8315, 8321, 8323, 8329, 8331, 8335, 8344, 8350, 8359, 8371, 8379, 8388, 8391, 8398, 8402, 8410, 8417, 8427, 8432, 8434, 8439, 8446, 8462, 8469, 8479, 8488, 8497, 8506, 8511, 8516, 8519, 8527, 8538, 8542, 8545, 8553, 8559, 8561, 8566, 8569, 8576, 8580, 8585, 8588, 8601, 8605, 8610, 8613, 8623, 8627, 8631, 8636, 8652, 8657, 8669, 8673, 8679, 8694, 8697, 8699, 8701, 8705, 8708, 8728, 8733, 8738, 8749, 8752, 8764, 8773, 8784, 8793, 8798, 8822, 8827, 8833, 8835, 8843, 8846, 8849, 8852, 8858, 8864, 8870, 8874, 8876, 8879, 8884, 8888, 8893, 8896, 8901, 8904, 8909, 8913, 8919, 8923, 8927, 8935, 8948, 8952, 8958, 8961, 8965, 8970, 8974, 8980, 8985, 8988, 8996, 8999, 9008, 9012, 9014, 9033, 9039, 9044, 9049, 9051, 9055, 9064, 9077, 9088, 9091, 9094, 9097, 9106, 9108, 9113, 9125, 9130, 9134, 9142, 9149, 9154, 9159, 9170, 9173, 9185, 9200, 9205, 9211, 9215, 9221, 9225, 9234, 9243, 9248, 9252, 9256, 9262, 9269, 9275, 9284, 9289, 9296, 9299, 9316, 9318, 9333, 9335, 9348, 9351, 9354, 9357, 9365, 9368, 9371, 9374, 9386, 9397, 9400, 9405, 9409, 9417, 9430, 9434, 9438, 9442, 9445, 9448, 9451, 9454, 9464, 9467, 9476, 9480, 9488, 9501, 9504, 9506, 9510, 9514, 9520, 9525, 9529, 9532, 9535, 9544, 9549, 9553, 9557, 9560, 9567, 9570, 9572, 9577, 9586, 9592, 9595, 9597, 9614, 9622, 9631, 9634, 9639, 9642, 9651, 9671, 9677, 9682, 9684, 9694, 9703, 9715, 9718, 9721, 9731, 9740, 9748, 9753, 9761, 9766, 9769, 9782, 9784, 9786, 9789, 9793, 9803, 9807, 9812, 9817, 9821, 9823, 9826, 9830, 9840, 9850, 9853, 9856, 9860, 9864, 9877, 9886, 9897, 9899, 9910, 9912, 9917, 9922, 9929, 9947, 9953, 9958, 9968, 9974, 9982, 9988, 9992, 9995, 10007, 10014, 10024, 10039, 10044, 10057, 10062, 10070, 10075, 10080, 10084, 10089, 10097, 10100, 10103, 10106, 10109, 10111, 10118, 10120, 10124, 10130, 10133, 10137, 10142, 10156, 10162, 10166, 10177, 10183, 10188, 10193, 10198, 10203, 10205, 10207, 10215, 10223, 10231, 10239, 10246, 10257, 10263, 10267, 10279, 10286, 10288, 10290, 10294, 10297, 10300, 10304, 10311, 10313, 10316, 10324, 10326, 10332, 10338, 10343, 10345, 10353, 10364, 10367, 10371, 10375, 10378, 10383, 10387, 10391, 10400, 10406, 10412, 10418, 10421, 10429, 10433, 10439, 10445, 10451, 10455, 10457, 10462, 10465, 10469, 10473, 10481, 10485, 10488, 10491, 10497, 10500, 10503, 10506, 10509, 10528, 10535, 10539, 10542, 10549, 10554, 10561, 10567, 10569, 10575, 10579, 10586, 10591, 10597, 10601, 10609, 10614, 10620, 10623, 10626, 10629, 10632, 10638, 10644, 10646, 10657, 10661, 10665, 10672, 10676, 10681, 10684, 10697, 10702, 10705, 10710, 10723, 10727, 10731, 10740, 10745, 10753, 10755, 10768, 10773, 10781, 10783, 10819, 10823, 10833, 10837, 10841, 10844, 10849, 10852, 10857, 10865, 10872, 10884, 10896, 10901, 10909, 10923, 10928, 10939, 10943, 10947, 10949, 10959, 10969, 10980, 10996, 11001, 11003, 11008, 11015, 11022, 11036, 11043, 11050, 11064, 11070, 11075, 11078, 11083, 11086, 11090, 11105, 11110, 11114, 11125, 11130, 11143, 11159, 11164, 11166, 11171, 11179, 11193, 11201, 11214, 11220, 11224, 11238, 11243, 11247, 11261, 11264, 11268, 11271, 11280, 11288, 11296, 11299, 11304, 11306, 11310, 11313, 11322, 11330, 11338, 11341, 11346, 11348, 11358, 11366, 11374, 11377, 11382, 11395, 11400, 11409, 11420, 11434, 11439, 11442, 11448, 11452, 11456, 11460, 11464, 11467, 11479, 11484, 11498, 11508, 11511, 11520, 11530, 11534, 11539, 11542, 11545, 11548, 11551, 11555, 11558, 11561, 11565, 11567, 11572, 11574, 11582, 11593, 11598, 11600, 11609, 11617, 11624, 11628, 11636, 11642, 11644, 11650, 11658, 11660, 11663, 11668, 11671, 11676, 11680, 11684, 11689, 11692, 11698, 11700, 11707, 11709, 11713, 11725, 11727, 11735, 11737, 11741, 11745, 11749, 11753, 11769, 11771, 11793, 11802, 11804, 11816, 11819, 11823, 11825, 11835, 11840, 11843, 11847, 11855, 11865, 11870, 11882, 11887, 11899, 11908, 11914, 11918, 11923, 11926, 11934, 11938, 11945, 11952, 11955, 11963, 11966, 11969, 11974, 11979, 11985, 11987, 11990, 11997, 12008, 12015, 12017, 12026, 12031, 12045, 12054, 12065, 12074, 12084, 12092, 12096, 12100, 12103, 12110, 12118, 12120, 12124, 12128, 12131, 12134, 12139, 12142, 12147, 12151, 12154, 12157, 12164, 12171, 12174, 12176, 12181, 12185, 12188, 12191, 12196, 12199, 12202, 12207, 12211, 12216, 12219, 12222, 12225, 12231, 12235, 12242, 12248, 12251, 12258, 12260, 12262, 12267, 12273, 12277, 12283, 12294, 12300, 12307, 12321, 12325, 12329, 12336, 12340, 12342, 12347, 12353, 12355, 12381, 12394, 12399, 12402, 12406, 12411, 12414, 12417, 12424, 12431, 12439, 12445, 12452, 12455, 12458, 12461, 12464, 12471, 12477, 12480, 12488, 12522, 12529, 12541, 12550, 12557, 12572, 12586, 12595, 12611, 12614, 12616, 12619, 12627, 12643, 12654, 12659, 12667, 12671, 12676, 12679, 12687, 12692, 12696, 12703, 12710, 12714, 12723, 12731, 12735, 12738, 12746, 12752, 12756, 12761, 12766, 12773, 12777, 12781, 12795, 12797, 12800, 12806, 12811, 12814, 12817, 12820, 12826, 12840, 12842, 12846, 12849, 12852, 12855, 12862, 12866, 12870, 12873, 12877, 12880, 12887, 12891, 12893, 12896, 12903, 12909, 12913, 12920, 12924, 12939, 12945, 12953, 12962, 12967, 12972, 12978, 12985, 12992, 12995, 12997, 13001, 13007, 13011, 13017, 13023, 13027, 13030, 13057, 13066, 13075, 13085, 13093, 13098, 13107, 13117, 13127, 13138, 13145, 13152, 13155, 13158, 13161, 13165, 13167, 13170, 13173, 13176, 13179, 13183, 13185, 13193, 13195, 13206, 13208, 13211, 13219, 13229, 13250, 13252, 13266, 13270, 13273, 13279, 13286, 13309, 13312, 13316, 13321, 13326, 13329, 13332, 13337, 13348, 13354, 13358, 13364, 13371, 13373, 13375, 13379, 13382, 13385, 13395, 13403, 13405, 13407, 13415, 13424, 13426, 13430, 13440, 13449, 13451, 13454, 13459, 13473, 13482, 13484, 13488, 13496, 13498, 13509, 13519, 13525, 13530, 13534, 13539, 13544, 13549, 13553, 13560, 13567, 13572, 13577, 13581, 13592, 13598, 13603, 13607, 13612, 13615, 13618, 13622, 13625, 13628, 13640, 13649, 13657, 13665, 13670, 13676, 13680, 13687, 13692, 13697, 13702, 13706, 13715, 13718, 13722, 13728, 13736, 13745, 13748, 13763, 13780, 13786, 13790, 13797, 13804, 13807, 13809, 13815, 13817, 13820, 13829, 13832, 13836, 13842, 13854, 13864, 13868, 13871, 13874, 13879, 13883, 13887, 13890, 13897, 13900, 13907, 13913, 13941, 13951, 13961, 13963, 13971, 14002, 14007, 14021, 14045, 14048, 14060, 14063, 14069, 14085, 14087, 14103, 14116, 14127, 14131, 14133, 14141, 14150, 14154, 14162, 14170, 14176, 14183, 14187, 14191, 14193, 14196, 14206, 14212, 14217, 14223, 14225, 14236, 14239, 14242, 14252, 14261, 14264, 14267, 14270, 14281, 14284, 14290, 14293, 14297, 14300, 14313, 14315, 14318, 14320, 14325, 14329, 14352, 14368, 14373, 14377, 14381, 14385, 14388, 14393, 14395, 14409, 14414, 14421, 14432, 14438, 14440, 14442, 14450, 14459, 14467, 14469, 14471, 14473, 14476, 14494, 14506, 14513, 14517, 14520, 14523, 14525, 14530, 14534, 14536, 14552, 14556, 14559, 14564, 14567, 14570, 14581, 14592, 14604, 14612, 14615, 14619, 14624, 14629, 14633, 14636, 14639, 14642, 14646, 14648, 14658, 14662, 14667, 14672, 14679, 14687, 14693, 14696, 14698, 14707, 14709, 14722, 14731, 14738, 14745, 14749, 14751, 14757, 14765, 14772, 14779, 14783, 14785, 14806, 14808, 14811, 14817, 14823, 14831, 14833, 14835, 14840, 14845, 14850, 14854, 14858, 14862, 14874, 14880, 14887, 14892, 14898, 14903, 14907, 14913, 14918, 14927, 14936, 14939, 14942, 14945, 14949, 14959, 14966, 14973, 14975, 14985, 14988, 14991, 14994, 14998, 15000, 15004, 15010, 15012, 15015, 15018, 15023, 15028, 15032, 15036, 15042, 15068, 15070, 15082, 15087, 15092, 15094, 15106, 15111, 15116, 15118, 15123, 15130, 15134, 15143, 15154, 15162, 15166, 15171, 15174, 15179, 15184, 15188, 15191, 15199, 15206, 15212, 15217, 15221, 15228, 15230, 15233, 15238, 15242, 15247, 15251, 15258, 15265, 15271, 15274, 15283, 15294, 15298, 15300, 15313, 15317, 15319, 15321, 15348, 15351, 15356, 15358, 15380, 15383, 15385, 15387, 15394, 15396, 15404, 15408, 15413, 15416, 15419, 15422, 15429, 15434, 15442, 15450, 15455, 15458, 15460, 15476, 15478, 15491, 15493, 15495, 15507, 15516, 15520, 15522, 15525, 15528, 15533, 15537, 15541, 15546, 15549, 15552, 15562, 15564, 15569, 15574, 15580, 15584, 15591, 15614, 15620, 15622, 15625, 15628, 15631, 15634, 15642, 15644, 15653, 15655, 15660, 15664, 15669, 15671, 15678, 15686, 15688, 15695, 15697, 15701, 15714, 15720, 15723, 15726, 15738, 15740, 15744, 15748, 15751, 15756, 15761, 15768, 15774, 15778, 15784, 15797, 15801, 15808, 15822, 15827, 15831, 15842, 15844, 15860, 15867, 15870, 15874, 15877, 15884, 15891, 15896, 15903, 15905, 15912, 15916, 15924, 15926, 15935, 15945, 15956, 15958, 15961, 15965, 15968, 15983, 15992, 15996, 15999, 16003, 16006, 16008, 16012, 16019, 16025, 16029, 16032, 16040, 16053, 16057, 16061, 16064, 16067, 16080, 16084, 16096, 16101, 16105, 16109, 16115, 16118, 16121, 16148, 16154, 16163, 16168, 16179, 16186, 16190, 16193, 16199, 16208, 16217, 16220, 16224, 16231, 16234, 16243, 16248, 16256, 16258, 16283, 16287, 16294, 16298, 16302, 16306, 16318, 16322, 16336, 16342, 16349, 16354, 16365, 16368, 16374, 16376, 16384, 16396, 16401, 16416, 16420, 16423, 16427, 16432, 16436, 16441, 16457, 16462, 16471, 16480, 16482, 16490, 16492, 16496, 16504, 16514, 16517, 16524, 16533, 16536, 16545, 16552, 16556, 16559, 16571, 16577, 16586, 16589, 16599, 16610, 16616, 16618, 16620, 16624, 16631, 16634, 16641, 16652, 16658, 16662, 16672, 16675, 16681, 16684, 16689, 16695, 16700, 16702, 16707, 16709, 16714, 16718, 16723, 16737, 16742, 16749, 16751, 16759, 16763, 16771, 16774, 16783, 16785, 16791, 16793, 16801, 16807, 16809, 16816, 16819, 16821, 16825, 16829, 16835, 16839, 16842, 16850, 16853, 16857, 16861, 16866, 16869, 16873, 16877, 16881, 16907, 16910, 16913, 16922, 16935, 16942, 16955, 16970, 16978, 16982, 16986, 16992, 16996, 16999, 17002, 17006, 17008, 17012, 17015, 17018, 17021, 17029, 17032, 17043, 17045, 17052, 17059, 17064, 17070, 17074, 17079, 17086, 17092, 17099, 17102, 17105, 17109, 17114, 17118, 17120, 17126, 17136, 17143, 17147, 17157, 17172, 17174, 17178, 17186, 17193, 17201, 17204, 17209, 17219, 17227, 17230, 17236, 17241, 17244, 17249, 17254, 17260, 17269, 17276, 17286, 17291, 17293, 17298, 17302, 17308, 17312, 17325, 17329, 17339, 17342, 17344, 17349, 17358, 17371, 17379, 17383, 17392, 17396, 17401, 17412, 17414, 17430, 17435, 17441, 17447, 17465, 17472, 17475, 17478, 17486, 17489, 17497, 17499, 17503, 17506, 17511, 17513, 17517, 17529, 17538, 17546, 17551, 17555, 17565, 17567, 17573, 17578, 17581, 17591, 17597, 17600, 17603, 17611, 17621, 17631, 17635, 17639, 17642, 17645, 17650, 17655, 17658, 17661, 17667, 17670, 17676, 17679, 17682, 17687, 17690, 17698, 17704, 17709, 17718, 17724, 17734, 17738, 17740, 17743, 17755, 17759, 17762, 17777, 17781, 17793, 17796, 17805, 17812, 17817, 17821, 17829, 17835, 17843, 17846, 17855, 17858, 17861, 17870, 17876, 17882, 17885, 17890, 17896, 17908, 17919, 17921, 17930, 17932, 17936, 17942, 17946, 17959, 17966, 17978, 17994, 17996, 18000, 18004, 18008, 18021, 18025, 18032, 18040, 18043, 18048, 18050, 18055, 18059, 18062, 18068, 18073, 18085, 18089, 18091, 18096, 18106, 18108, 18110, 18120, 18124, 18126, 18138, 18146, 18159, 18162, 18167, 18185, 18187, 18195, 18203, 18210, 18217, 18224, 18228, 18233, 18237, 18245, 18249, 18256, 18261, 18270, 18279, 18282, 18304, 18314, 18318, 18336, 18338, 18348, 18353, 18356, 18363, 18366, 18370, 18373, 18376, 18382, 18385, 18389, 18392, 18404, 18411, 18414, 18418, 18424, 18427, 18431, 18446, 18454, 18461, 18474, 18479, 18488, 18497, 18501, 18505, 18531, 18534, 18537, 18547, 18555, 18561, 18563, 18567, 18573, 18582, 18586, 18589, 18592, 18601, 18604, 18607, 18610, 18613, 18625, 18633, 18640, 18643, 18647, 18649, 18652, 18657, 18666, 18672, 18675, 18678, 18687, 18690, 18693, 18696, 18702, 18706, 18718, 18728, 18732, 18735, 18741, 18745, 18751, 18755, 18758, 18761, 18763, 18770, 18774, 18777, 18780, 18783, 18788, 18791, 18795, 18804, 18808, 18815, 18819, 18824, 18829, 18832, 18841, 18845, 18856, 18859, 18863, 18868, 18872, 18881, 18884, 18888, 18897, 18900, 18904, 18909, 18918, 18921, 18925, 18933, 18938, 18943, 18946, 18950, 18952, 18961, 18968, 18971, 18978, 18980, 18983, 18986, 18990, 18993, 18998, 19005, 19011, 19019, 19023, 19026, 19029, 19035, 19038, 19042, 19046, 19051, 19054, 19057, 19066, 19078, 19085, 19088, 19094, 19097, 19100, 19109, 19112, 19117, 19124, 19126, 19139, 19146, 19151, 19156, 19165, 19168, 19170, 19174, 19181, 19188, 19196, 19211, 19217, 19221, 19226, 19231, 19237, 19240, 19244, 19254, 19264, 19270, 19272, 19282, 19284, 19291, 19295, 19304, 19309, 19314, 19317, 19326, 19329, 19338, 19352, 19359, 19367, 19370, 19383, 19389, 19391, 19404, 19413, 19419, 19429, 19437, 19443, 19446, 19449, 19463, 19465, 19473, 19480, 19490, 19498, 19504, 19507, 19512, 19517, 19521, 19529, 19536, 19545, 19552, 19561, 19565, 19572, 19579, 19586, 19593, 19601, 19605, 19612, 19621, 19624, 19627, 19630, 19634, 19639, 19644, 19655, 19659, 19661, 19672, 19674, 19685, 19696, 19705, 19708, 19712, 19715, 19726, 19736, 19746, 19754, 19760, 19768, 19775, 19779, 19784, 19788, 19793, 19797, 19803, 19806, 19813, 19823, 19831, 19835, 19845, 19848, 19850, 19857, 19863, 19869, 19875, 19877, 19891, 19893, 19906, 19911, 19914, 19921, 19926, 19939, 19954, 19957, 19961, 19963, 19971, 19979, 19981, 19988, 19993, 19997, 20001, 20005, 20009, 20014, 20018, 20021, 20025, 20032, 20036, 20041, 20046, 20050, 20055, 20072, 20077, 20084, 20095, 20102, 20109, 20113, 20120, 20125, 20134, 20142, 20150, 20156, 20161, 20166, 20170, 20175, 20178, 20183, 20187, 20191, 20198, 20203, 20214, 20220, 20225, 20229, 20231, 20238, 20242, 20250, 20253, 20258, 20265, 20283, 20300, 20307, 20320, 20324, 20332, 20335, 20339, 20344, 20349, 20353, 20356, 20360, 20367, 20372, 20374, 20376, 20386, 20391, 20395, 20398, 20402, 20411, 20417, 20421, 20423, 20427, 20431, 20438, 20446, 20454, 20456, 20461, 20466, 20468, 20471, 20495, 20502, 20507, 20540, 20545, 20548, 20553, 20555, 20561, 20570, 20577, 20581, 20586, 20591, 20596, 20601, 20608, 20613, 20647, 20654, 20669, 20685, 20704, 20721, 20728, 20736, 20749, 20758, 20767, 20776, 20786, 20794, 20804, 20814, 20826, 20842, 20860, 20873, 20888, 20899, 20909, 20920, 20930, 20947, 20953, 20975, 20980, 20986, 20992, 20998, 21003, 21005, 21008, 21019, 21022, 21024, 21026, 21040, 21044, 21047, 21056, 21062, 21180] \ No newline at end of file diff --git a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.js b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.js new file mode 100644 index 000000000..26ea69159 --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.js @@ -0,0 +1,325346 @@ +// Generated from OracleSqlParser.g4 by ANTLR 4.13.2 +// jshint ignore: start +import antlr4 from 'antlr4'; +import OracleSqlParserVisitor from './OracleSqlParserVisitor.js'; + +import OracleSqlParserBase from './OracleSqlParserBase.js'; + +const serializedATN = [4,1,2480,21189,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2, +4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7, +12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19, +2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2, +27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34, +7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7, +41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48, +2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2, +56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63, +7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7, +70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77, +2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2, +85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92, +7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7, +99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105, +2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111, +2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117, +2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123, +2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129, +2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135, +2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141, +2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147, +2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153, +2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159, +2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165, +2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171, +2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177, +2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183, +2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189, +2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195, +2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201, +2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207, +2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213, +2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219, +2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225, +2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231, +2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237, +2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243, +2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249, +2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255, +2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261, +2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267, +2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273, +2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,7,279, +2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285,7,285, +2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291,7,291, +2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297,7,297, +2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303,7,303, +2,304,7,304,2,305,7,305,2,306,7,306,2,307,7,307,2,308,7,308,2,309,7,309, +2,310,7,310,2,311,7,311,2,312,7,312,2,313,7,313,2,314,7,314,2,315,7,315, +2,316,7,316,2,317,7,317,2,318,7,318,2,319,7,319,2,320,7,320,2,321,7,321, +2,322,7,322,2,323,7,323,2,324,7,324,2,325,7,325,2,326,7,326,2,327,7,327, +2,328,7,328,2,329,7,329,2,330,7,330,2,331,7,331,2,332,7,332,2,333,7,333, +2,334,7,334,2,335,7,335,2,336,7,336,2,337,7,337,2,338,7,338,2,339,7,339, +2,340,7,340,2,341,7,341,2,342,7,342,2,343,7,343,2,344,7,344,2,345,7,345, +2,346,7,346,2,347,7,347,2,348,7,348,2,349,7,349,2,350,7,350,2,351,7,351, +2,352,7,352,2,353,7,353,2,354,7,354,2,355,7,355,2,356,7,356,2,357,7,357, +2,358,7,358,2,359,7,359,2,360,7,360,2,361,7,361,2,362,7,362,2,363,7,363, +2,364,7,364,2,365,7,365,2,366,7,366,2,367,7,367,2,368,7,368,2,369,7,369, +2,370,7,370,2,371,7,371,2,372,7,372,2,373,7,373,2,374,7,374,2,375,7,375, +2,376,7,376,2,377,7,377,2,378,7,378,2,379,7,379,2,380,7,380,2,381,7,381, +2,382,7,382,2,383,7,383,2,384,7,384,2,385,7,385,2,386,7,386,2,387,7,387, +2,388,7,388,2,389,7,389,2,390,7,390,2,391,7,391,2,392,7,392,2,393,7,393, +2,394,7,394,2,395,7,395,2,396,7,396,2,397,7,397,2,398,7,398,2,399,7,399, +2,400,7,400,2,401,7,401,2,402,7,402,2,403,7,403,2,404,7,404,2,405,7,405, +2,406,7,406,2,407,7,407,2,408,7,408,2,409,7,409,2,410,7,410,2,411,7,411, +2,412,7,412,2,413,7,413,2,414,7,414,2,415,7,415,2,416,7,416,2,417,7,417, +2,418,7,418,2,419,7,419,2,420,7,420,2,421,7,421,2,422,7,422,2,423,7,423, +2,424,7,424,2,425,7,425,2,426,7,426,2,427,7,427,2,428,7,428,2,429,7,429, +2,430,7,430,2,431,7,431,2,432,7,432,2,433,7,433,2,434,7,434,2,435,7,435, +2,436,7,436,2,437,7,437,2,438,7,438,2,439,7,439,2,440,7,440,2,441,7,441, +2,442,7,442,2,443,7,443,2,444,7,444,2,445,7,445,2,446,7,446,2,447,7,447, +2,448,7,448,2,449,7,449,2,450,7,450,2,451,7,451,2,452,7,452,2,453,7,453, +2,454,7,454,2,455,7,455,2,456,7,456,2,457,7,457,2,458,7,458,2,459,7,459, +2,460,7,460,2,461,7,461,2,462,7,462,2,463,7,463,2,464,7,464,2,465,7,465, +2,466,7,466,2,467,7,467,2,468,7,468,2,469,7,469,2,470,7,470,2,471,7,471, +2,472,7,472,2,473,7,473,2,474,7,474,2,475,7,475,2,476,7,476,2,477,7,477, +2,478,7,478,2,479,7,479,2,480,7,480,2,481,7,481,2,482,7,482,2,483,7,483, +2,484,7,484,2,485,7,485,2,486,7,486,2,487,7,487,2,488,7,488,2,489,7,489, +2,490,7,490,2,491,7,491,2,492,7,492,2,493,7,493,2,494,7,494,2,495,7,495, +2,496,7,496,2,497,7,497,2,498,7,498,2,499,7,499,2,500,7,500,2,501,7,501, +2,502,7,502,2,503,7,503,2,504,7,504,2,505,7,505,2,506,7,506,2,507,7,507, +2,508,7,508,2,509,7,509,2,510,7,510,2,511,7,511,2,512,7,512,2,513,7,513, +2,514,7,514,2,515,7,515,2,516,7,516,2,517,7,517,2,518,7,518,2,519,7,519, +2,520,7,520,2,521,7,521,2,522,7,522,2,523,7,523,2,524,7,524,2,525,7,525, +2,526,7,526,2,527,7,527,2,528,7,528,2,529,7,529,2,530,7,530,2,531,7,531, +2,532,7,532,2,533,7,533,2,534,7,534,2,535,7,535,2,536,7,536,2,537,7,537, +2,538,7,538,2,539,7,539,2,540,7,540,2,541,7,541,2,542,7,542,2,543,7,543, +2,544,7,544,2,545,7,545,2,546,7,546,2,547,7,547,2,548,7,548,2,549,7,549, +2,550,7,550,2,551,7,551,2,552,7,552,2,553,7,553,2,554,7,554,2,555,7,555, +2,556,7,556,2,557,7,557,2,558,7,558,2,559,7,559,2,560,7,560,2,561,7,561, +2,562,7,562,2,563,7,563,2,564,7,564,2,565,7,565,2,566,7,566,2,567,7,567, +2,568,7,568,2,569,7,569,2,570,7,570,2,571,7,571,2,572,7,572,2,573,7,573, +2,574,7,574,2,575,7,575,2,576,7,576,2,577,7,577,2,578,7,578,2,579,7,579, +2,580,7,580,2,581,7,581,2,582,7,582,2,583,7,583,2,584,7,584,2,585,7,585, +2,586,7,586,2,587,7,587,2,588,7,588,2,589,7,589,2,590,7,590,2,591,7,591, +2,592,7,592,2,593,7,593,2,594,7,594,2,595,7,595,2,596,7,596,2,597,7,597, +2,598,7,598,2,599,7,599,2,600,7,600,2,601,7,601,2,602,7,602,2,603,7,603, +2,604,7,604,2,605,7,605,2,606,7,606,2,607,7,607,2,608,7,608,2,609,7,609, +2,610,7,610,2,611,7,611,2,612,7,612,2,613,7,613,2,614,7,614,2,615,7,615, +2,616,7,616,2,617,7,617,2,618,7,618,2,619,7,619,2,620,7,620,2,621,7,621, +2,622,7,622,2,623,7,623,2,624,7,624,2,625,7,625,2,626,7,626,2,627,7,627, +2,628,7,628,2,629,7,629,2,630,7,630,2,631,7,631,2,632,7,632,2,633,7,633, +2,634,7,634,2,635,7,635,2,636,7,636,2,637,7,637,2,638,7,638,2,639,7,639, +2,640,7,640,2,641,7,641,2,642,7,642,2,643,7,643,2,644,7,644,2,645,7,645, +2,646,7,646,2,647,7,647,2,648,7,648,2,649,7,649,2,650,7,650,2,651,7,651, +2,652,7,652,2,653,7,653,2,654,7,654,2,655,7,655,2,656,7,656,2,657,7,657, +2,658,7,658,2,659,7,659,2,660,7,660,2,661,7,661,2,662,7,662,2,663,7,663, +2,664,7,664,2,665,7,665,2,666,7,666,2,667,7,667,2,668,7,668,2,669,7,669, +2,670,7,670,2,671,7,671,2,672,7,672,2,673,7,673,2,674,7,674,2,675,7,675, +2,676,7,676,2,677,7,677,2,678,7,678,2,679,7,679,2,680,7,680,2,681,7,681, +2,682,7,682,2,683,7,683,2,684,7,684,2,685,7,685,2,686,7,686,2,687,7,687, +2,688,7,688,2,689,7,689,2,690,7,690,2,691,7,691,2,692,7,692,2,693,7,693, +2,694,7,694,2,695,7,695,2,696,7,696,2,697,7,697,2,698,7,698,2,699,7,699, +2,700,7,700,2,701,7,701,2,702,7,702,2,703,7,703,2,704,7,704,2,705,7,705, +2,706,7,706,2,707,7,707,2,708,7,708,2,709,7,709,2,710,7,710,2,711,7,711, +2,712,7,712,2,713,7,713,2,714,7,714,2,715,7,715,2,716,7,716,2,717,7,717, +2,718,7,718,2,719,7,719,2,720,7,720,2,721,7,721,2,722,7,722,2,723,7,723, +2,724,7,724,2,725,7,725,2,726,7,726,2,727,7,727,2,728,7,728,2,729,7,729, +2,730,7,730,2,731,7,731,2,732,7,732,2,733,7,733,2,734,7,734,2,735,7,735, +2,736,7,736,2,737,7,737,2,738,7,738,2,739,7,739,2,740,7,740,2,741,7,741, +2,742,7,742,2,743,7,743,2,744,7,744,2,745,7,745,2,746,7,746,2,747,7,747, +2,748,7,748,2,749,7,749,2,750,7,750,2,751,7,751,2,752,7,752,2,753,7,753, +2,754,7,754,2,755,7,755,2,756,7,756,2,757,7,757,2,758,7,758,2,759,7,759, +2,760,7,760,2,761,7,761,2,762,7,762,2,763,7,763,2,764,7,764,2,765,7,765, +2,766,7,766,2,767,7,767,2,768,7,768,2,769,7,769,2,770,7,770,2,771,7,771, +2,772,7,772,2,773,7,773,2,774,7,774,2,775,7,775,2,776,7,776,2,777,7,777, +2,778,7,778,2,779,7,779,2,780,7,780,2,781,7,781,2,782,7,782,2,783,7,783, +2,784,7,784,2,785,7,785,2,786,7,786,2,787,7,787,2,788,7,788,2,789,7,789, +2,790,7,790,2,791,7,791,2,792,7,792,2,793,7,793,2,794,7,794,2,795,7,795, +2,796,7,796,2,797,7,797,2,798,7,798,2,799,7,799,2,800,7,800,2,801,7,801, +2,802,7,802,2,803,7,803,2,804,7,804,2,805,7,805,2,806,7,806,2,807,7,807, +2,808,7,808,2,809,7,809,2,810,7,810,2,811,7,811,2,812,7,812,2,813,7,813, +2,814,7,814,2,815,7,815,2,816,7,816,2,817,7,817,2,818,7,818,2,819,7,819, +2,820,7,820,2,821,7,821,2,822,7,822,2,823,7,823,2,824,7,824,2,825,7,825, +2,826,7,826,2,827,7,827,2,828,7,828,2,829,7,829,2,830,7,830,2,831,7,831, +2,832,7,832,2,833,7,833,2,834,7,834,2,835,7,835,2,836,7,836,2,837,7,837, +2,838,7,838,2,839,7,839,2,840,7,840,2,841,7,841,2,842,7,842,2,843,7,843, +2,844,7,844,2,845,7,845,2,846,7,846,2,847,7,847,2,848,7,848,2,849,7,849, +2,850,7,850,2,851,7,851,2,852,7,852,2,853,7,853,2,854,7,854,2,855,7,855, +2,856,7,856,2,857,7,857,2,858,7,858,2,859,7,859,2,860,7,860,2,861,7,861, +2,862,7,862,2,863,7,863,2,864,7,864,2,865,7,865,2,866,7,866,2,867,7,867, +2,868,7,868,2,869,7,869,2,870,7,870,2,871,7,871,2,872,7,872,2,873,7,873, +2,874,7,874,2,875,7,875,2,876,7,876,2,877,7,877,2,878,7,878,2,879,7,879, +2,880,7,880,2,881,7,881,2,882,7,882,2,883,7,883,2,884,7,884,2,885,7,885, +2,886,7,886,2,887,7,887,2,888,7,888,2,889,7,889,2,890,7,890,2,891,7,891, +2,892,7,892,2,893,7,893,2,894,7,894,2,895,7,895,2,896,7,896,2,897,7,897, +2,898,7,898,2,899,7,899,2,900,7,900,2,901,7,901,2,902,7,902,2,903,7,903, +2,904,7,904,2,905,7,905,2,906,7,906,2,907,7,907,2,908,7,908,2,909,7,909, +2,910,7,910,2,911,7,911,2,912,7,912,2,913,7,913,2,914,7,914,2,915,7,915, +2,916,7,916,2,917,7,917,2,918,7,918,2,919,7,919,2,920,7,920,2,921,7,921, +2,922,7,922,2,923,7,923,2,924,7,924,2,925,7,925,2,926,7,926,2,927,7,927, +2,928,7,928,2,929,7,929,2,930,7,930,2,931,7,931,2,932,7,932,2,933,7,933, +2,934,7,934,2,935,7,935,2,936,7,936,2,937,7,937,2,938,7,938,2,939,7,939, +2,940,7,940,2,941,7,941,2,942,7,942,2,943,7,943,2,944,7,944,2,945,7,945, +2,946,7,946,2,947,7,947,2,948,7,948,2,949,7,949,2,950,7,950,2,951,7,951, +2,952,7,952,2,953,7,953,2,954,7,954,2,955,7,955,2,956,7,956,2,957,7,957, +2,958,7,958,2,959,7,959,2,960,7,960,2,961,7,961,2,962,7,962,2,963,7,963, +2,964,7,964,2,965,7,965,2,966,7,966,2,967,7,967,2,968,7,968,2,969,7,969, +2,970,7,970,2,971,7,971,2,972,7,972,2,973,7,973,2,974,7,974,2,975,7,975, +2,976,7,976,2,977,7,977,2,978,7,978,2,979,7,979,2,980,7,980,2,981,7,981, +2,982,7,982,2,983,7,983,2,984,7,984,2,985,7,985,2,986,7,986,2,987,7,987, +2,988,7,988,2,989,7,989,2,990,7,990,2,991,7,991,2,992,7,992,2,993,7,993, +2,994,7,994,2,995,7,995,2,996,7,996,2,997,7,997,2,998,7,998,2,999,7,999, +2,1000,7,1000,2,1001,7,1001,2,1002,7,1002,2,1003,7,1003,2,1004,7,1004,2, +1005,7,1005,2,1006,7,1006,2,1007,7,1007,2,1008,7,1008,2,1009,7,1009,2,1010, +7,1010,2,1011,7,1011,2,1012,7,1012,2,1013,7,1013,2,1014,7,1014,2,1015,7, +1015,2,1016,7,1016,2,1017,7,1017,2,1018,7,1018,2,1019,7,1019,2,1020,7,1020, +2,1021,7,1021,2,1022,7,1022,2,1023,7,1023,2,1024,7,1024,2,1025,7,1025,2, +1026,7,1026,2,1027,7,1027,2,1028,7,1028,2,1029,7,1029,2,1030,7,1030,2,1031, +7,1031,2,1032,7,1032,2,1033,7,1033,2,1034,7,1034,2,1035,7,1035,2,1036,7, +1036,2,1037,7,1037,2,1038,7,1038,2,1039,7,1039,2,1040,7,1040,2,1041,7,1041, +2,1042,7,1042,2,1043,7,1043,2,1044,7,1044,2,1045,7,1045,2,1046,7,1046,2, +1047,7,1047,2,1048,7,1048,2,1049,7,1049,2,1050,7,1050,2,1051,7,1051,2,1052, +7,1052,2,1053,7,1053,2,1054,7,1054,2,1055,7,1055,2,1056,7,1056,2,1057,7, +1057,2,1058,7,1058,2,1059,7,1059,2,1060,7,1060,2,1061,7,1061,2,1062,7,1062, +2,1063,7,1063,2,1064,7,1064,2,1065,7,1065,2,1066,7,1066,2,1067,7,1067,2, +1068,7,1068,2,1069,7,1069,2,1070,7,1070,2,1071,7,1071,2,1072,7,1072,2,1073, +7,1073,2,1074,7,1074,2,1075,7,1075,2,1076,7,1076,2,1077,7,1077,2,1078,7, +1078,2,1079,7,1079,2,1080,7,1080,2,1081,7,1081,2,1082,7,1082,2,1083,7,1083, +2,1084,7,1084,2,1085,7,1085,2,1086,7,1086,2,1087,7,1087,2,1088,7,1088,2, +1089,7,1089,2,1090,7,1090,2,1091,7,1091,2,1092,7,1092,2,1093,7,1093,2,1094, +7,1094,2,1095,7,1095,2,1096,7,1096,2,1097,7,1097,2,1098,7,1098,2,1099,7, +1099,2,1100,7,1100,2,1101,7,1101,2,1102,7,1102,2,1103,7,1103,2,1104,7,1104, +2,1105,7,1105,2,1106,7,1106,2,1107,7,1107,2,1108,7,1108,2,1109,7,1109,2, +1110,7,1110,2,1111,7,1111,2,1112,7,1112,2,1113,7,1113,2,1114,7,1114,2,1115, +7,1115,2,1116,7,1116,2,1117,7,1117,2,1118,7,1118,2,1119,7,1119,2,1120,7, +1120,2,1121,7,1121,2,1122,7,1122,2,1123,7,1123,2,1124,7,1124,2,1125,7,1125, +2,1126,7,1126,2,1127,7,1127,2,1128,7,1128,2,1129,7,1129,2,1130,7,1130,2, +1131,7,1131,2,1132,7,1132,2,1133,7,1133,2,1134,7,1134,2,1135,7,1135,2,1136, +7,1136,2,1137,7,1137,2,1138,7,1138,2,1139,7,1139,2,1140,7,1140,2,1141,7, +1141,2,1142,7,1142,2,1143,7,1143,2,1144,7,1144,2,1145,7,1145,2,1146,7,1146, +2,1147,7,1147,2,1148,7,1148,2,1149,7,1149,2,1150,7,1150,2,1151,7,1151,2, +1152,7,1152,2,1153,7,1153,2,1154,7,1154,2,1155,7,1155,2,1156,7,1156,2,1157, +7,1157,2,1158,7,1158,2,1159,7,1159,2,1160,7,1160,2,1161,7,1161,2,1162,7, +1162,2,1163,7,1163,2,1164,7,1164,2,1165,7,1165,2,1166,7,1166,2,1167,7,1167, +2,1168,7,1168,2,1169,7,1169,2,1170,7,1170,2,1171,7,1171,2,1172,7,1172,2, +1173,7,1173,2,1174,7,1174,2,1175,7,1175,2,1176,7,1176,2,1177,7,1177,2,1178, +7,1178,2,1179,7,1179,2,1180,7,1180,2,1181,7,1181,2,1182,7,1182,2,1183,7, +1183,2,1184,7,1184,2,1185,7,1185,2,1186,7,1186,2,1187,7,1187,2,1188,7,1188, +2,1189,7,1189,2,1190,7,1190,2,1191,7,1191,2,1192,7,1192,2,1193,7,1193,2, +1194,7,1194,2,1195,7,1195,2,1196,7,1196,2,1197,7,1197,2,1198,7,1198,2,1199, +7,1199,2,1200,7,1200,2,1201,7,1201,2,1202,7,1202,1,0,3,0,2408,8,0,1,0,1, +0,3,0,2412,8,0,1,0,3,0,2415,8,0,1,0,1,0,1,0,3,0,2420,8,0,5,0,2422,8,0,10, +0,12,0,2425,9,0,1,0,1,0,3,0,2429,8,0,1,0,3,0,2432,8,0,1,0,3,0,2435,8,0,3, +0,2437,8,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,3,1,2582,8,1,1,2,1,2,1,2,1,2,1,2,4,2,2589,8,2,11,2,12,2,2590,1,2,3, +2,2594,8,2,1,2,3,2,2597,8,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,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,2619,8,2,3,2,2621,8,2,1,2,1,2,1, +2,5,2,2626,8,2,10,2,12,2,2629,9,2,1,2,3,2,2632,8,2,1,2,1,2,1,2,3,2,2637, +8,2,3,2,2639,8,2,1,3,1,3,1,3,3,3,2644,8,3,1,3,3,3,2647,8,3,1,3,1,3,3,3,2651, +8,3,1,3,1,3,1,3,1,3,5,3,2657,8,3,10,3,12,3,2660,9,3,4,3,2662,8,3,11,3,12, +3,2663,1,4,1,4,3,4,2668,8,4,1,4,1,4,1,4,3,4,2673,8,4,1,4,1,4,1,4,3,4,2678, +8,4,5,4,2680,8,4,10,4,12,4,2683,9,4,1,4,1,4,1,4,3,4,2688,8,4,1,4,1,4,1,4, +3,4,2693,8,4,1,4,1,4,1,4,3,4,2698,8,4,5,4,2700,8,4,10,4,12,4,2703,9,4,3, +4,2705,8,4,1,5,1,5,1,5,1,5,3,5,2711,8,5,1,6,1,6,1,6,1,6,1,6,1,6,3,6,2719, +8,6,1,6,1,6,1,6,1,6,1,6,3,6,2726,8,6,5,6,2728,8,6,10,6,12,6,2731,9,6,1,6, +1,6,3,6,2735,8,6,1,6,3,6,2738,8,6,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1, +8,1,8,1,8,5,8,2752,8,8,10,8,12,8,2755,9,8,1,8,1,8,3,8,2759,8,8,1,9,1,9,3, +9,2763,8,9,1,9,1,9,1,9,1,9,5,9,2769,8,9,10,9,12,9,2772,9,9,1,9,1,9,1,9,3, +9,2777,8,9,1,9,1,9,1,9,1,9,5,9,2783,8,9,10,9,12,9,2786,9,9,4,9,2788,8,9, +11,9,12,9,2789,1,9,3,9,2793,8,9,1,9,1,9,3,9,2797,8,9,1,9,3,9,2800,8,9,1, +10,1,10,3,10,2804,8,10,1,10,1,10,1,10,1,10,5,10,2810,8,10,10,10,12,10,2813, +9,10,1,10,1,10,1,10,3,10,2818,8,10,1,10,1,10,1,10,1,10,5,10,2824,8,10,10, +10,12,10,2827,9,10,3,10,2829,8,10,1,10,3,10,2832,8,10,1,11,1,11,1,11,1,11, +1,11,1,12,1,12,1,12,4,12,2842,8,12,11,12,12,12,2843,3,12,2846,8,12,1,12, +1,12,1,12,1,12,3,12,2852,8,12,1,12,1,12,1,12,3,12,2857,8,12,3,12,2859,8, +12,1,13,1,13,1,14,1,14,3,14,2865,8,14,1,14,3,14,2868,8,14,1,15,1,15,1,15, +1,15,1,15,1,15,1,15,1,15,5,15,2878,8,15,10,15,12,15,2881,9,15,1,15,1,15, +1,15,1,15,1,15,5,15,2888,8,15,10,15,12,15,2891,9,15,3,15,2893,8,15,1,16, +1,16,1,16,3,16,2898,8,16,1,16,3,16,2901,8,16,1,16,1,16,1,17,1,17,1,18,1, +18,1,19,1,19,1,20,1,20,1,20,1,20,1,20,5,20,2916,8,20,10,20,12,20,2919,9, +20,1,20,1,20,1,20,1,20,3,20,2925,8,20,1,20,1,20,1,20,3,20,2930,8,20,5,20, +2932,8,20,10,20,12,20,2935,9,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20, +1,20,1,20,5,20,2947,8,20,10,20,12,20,2950,9,20,3,20,2952,8,20,1,21,1,21, +1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,5,22,2965,8,22,10,22,12,22, +2968,9,22,1,22,1,22,1,22,1,22,1,22,5,22,2975,8,22,10,22,12,22,2978,9,22, +1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,5,22,2989,8,22,10,22,12,22, +2992,9,22,3,22,2994,8,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1, +23,1,23,3,23,3007,8,23,1,24,1,24,1,24,1,24,1,24,1,24,3,24,3015,8,24,1,24, +1,24,1,24,1,24,3,24,3021,8,24,1,24,1,24,3,24,3025,8,24,1,25,1,25,1,25,1, +25,1,25,3,25,3032,8,25,1,25,1,25,3,25,3036,8,25,1,26,1,26,1,26,1,26,1,26, +1,26,1,27,1,27,1,27,1,27,1,27,5,27,3049,8,27,10,27,12,27,3052,9,27,1,28, +1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,5,29,3067,8, +29,10,29,12,29,3070,9,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,5,29,3080, +8,29,10,29,12,29,3083,9,29,1,29,1,29,1,29,3,29,3088,8,29,1,30,1,30,1,30, +1,30,1,30,5,30,3095,8,30,10,30,12,30,3098,9,30,1,30,1,30,1,30,1,30,1,30, +5,30,3105,8,30,10,30,12,30,3108,9,30,1,30,3,30,3111,8,30,1,30,1,30,1,30, +1,30,1,30,1,30,1,30,1,30,1,30,5,30,3122,8,30,10,30,12,30,3125,9,30,3,30, +3127,8,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,3,31,3136,8,31,1,31,1,31,1, +31,1,31,1,31,1,31,3,31,3144,8,31,5,31,3146,8,31,10,31,12,31,3149,9,31,1, +31,1,31,1,31,1,31,1,31,5,31,3156,8,31,10,31,12,31,3159,9,31,1,32,1,32,1, +32,1,32,1,32,1,32,1,32,1,32,1,32,5,32,3170,8,32,10,32,12,32,3173,9,32,1, +32,1,32,1,32,1,32,1,32,5,32,3180,8,32,10,32,12,32,3183,9,32,1,33,1,33,1, +33,1,33,1,33,3,33,3190,8,33,1,33,3,33,3193,8,33,1,33,1,33,3,33,3197,8,33, +1,33,3,33,3200,8,33,1,33,3,33,3203,8,33,1,33,3,33,3206,8,33,1,34,1,34,1, +34,1,34,1,34,1,34,1,34,1,34,3,34,3216,8,34,1,34,1,34,1,34,1,34,1,34,1,34, +1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,3,34,3235,8,34,1, +35,1,35,1,36,1,36,1,37,1,37,1,37,1,37,3,37,3245,8,37,1,38,1,38,1,38,1,38, +1,38,1,38,3,38,3253,8,38,1,38,1,38,1,38,3,38,3258,8,38,1,38,1,38,1,38,1, +38,3,38,3264,8,38,1,39,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,1,41,1,41,1,41,1,41,3,41,3285,8,41,1,42,1,42,1,43,1, +43,1,43,1,44,1,44,3,44,3294,8,44,1,44,3,44,3297,8,44,1,44,1,44,3,44,3301, +8,44,3,44,3303,8,44,1,45,1,45,1,45,1,45,1,45,5,45,3310,8,45,10,45,12,45, +3313,9,45,1,45,3,45,3316,8,45,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1, +47,1,47,1,47,1,47,1,47,1,47,3,47,3332,8,47,1,47,1,47,1,47,1,47,1,47,1,47, +1,47,1,47,1,47,1,47,1,47,1,47,3,47,3346,8,47,3,47,3348,8,47,1,47,3,47,3351, +8,47,1,47,1,47,3,47,3355,8,47,1,48,1,48,1,48,1,48,1,48,3,48,3362,8,48,1, +48,1,48,1,48,1,48,1,48,3,48,3369,8,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49, +3,49,3378,8,49,1,49,5,49,3381,8,49,10,49,12,49,3384,9,49,1,49,1,49,3,49, +3388,8,49,3,49,3390,8,49,1,50,1,50,1,50,1,50,1,50,1,50,3,50,3398,8,50,1, +50,1,50,1,50,1,50,1,50,1,50,3,50,3406,8,50,1,50,1,50,3,50,3410,8,50,1,50, +1,50,4,50,3414,8,50,11,50,12,50,3415,1,50,1,50,3,50,3420,8,50,1,50,1,50, +1,50,3,50,3425,8,50,1,51,1,51,1,52,1,52,1,52,3,52,3432,8,52,1,52,3,52,3435, +8,52,1,52,1,52,1,52,1,52,1,52,1,52,5,52,3443,8,52,10,52,12,52,3446,9,52, +1,52,1,52,3,52,3450,8,52,1,52,1,52,1,52,1,52,1,52,3,52,3457,8,52,1,52,1, +52,1,52,1,52,1,52,1,52,1,52,5,52,3466,8,52,10,52,12,52,3469,9,52,1,52,1, +52,3,52,3473,8,52,1,52,3,52,3476,8,52,1,52,1,52,3,52,3480,8,52,1,52,1,52, +1,52,3,52,3485,8,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,3, +54,3497,8,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,3,55,3506,8,55,1,55,3,55, +3509,8,55,1,55,1,55,1,56,1,56,3,56,3515,8,56,1,56,1,56,1,56,1,56,3,56,3521, +8,56,1,57,1,57,1,57,1,57,1,57,1,57,5,57,3529,8,57,10,57,12,57,3532,9,57, +1,57,1,57,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,60,1,60,1,60,3,60,3547, +8,60,1,60,1,60,1,60,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,5,62,3560,8, +62,10,62,12,62,3563,9,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1, +64,3,64,3575,8,64,1,64,1,64,4,64,3579,8,64,11,64,12,64,3580,1,65,1,65,1, +65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,3,65,3593,8,65,1,66,1,66,1,66,1,66, +1,66,1,66,1,66,3,66,3602,8,66,1,66,1,66,1,66,3,66,3607,8,66,1,67,1,67,1, +67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,3,67,3623,8,67, +3,67,3625,8,67,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1, +68,1,68,1,68,3,68,3641,8,68,3,68,3643,8,68,1,69,1,69,1,69,1,69,1,69,1,69, +1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,3,69,3664, +8,69,3,69,3666,8,69,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1, +70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,3,70,3686,8,70,3,70,3688,8,70,1,71, +1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,4,71,3701,8,71,11,71,12, +71,3702,1,71,1,71,1,71,1,71,1,71,1,71,1,71,3,71,3712,8,71,3,71,3714,8,71, +1,72,1,72,1,72,1,72,1,72,1,72,1,72,1,72,1,72,3,72,3725,8,72,1,73,1,73,1, +73,5,73,3730,8,73,10,73,12,73,3733,9,73,1,74,1,74,1,75,1,75,1,75,1,75,1, +75,1,76,1,76,1,76,3,76,3745,8,76,1,76,1,76,1,76,3,76,3750,8,76,1,76,1,76, +1,77,1,77,1,77,1,77,1,77,3,77,3759,8,77,1,77,3,77,3762,8,77,1,77,5,77,3765, +8,77,10,77,12,77,3768,9,77,1,77,1,77,3,77,3772,8,77,1,78,1,78,1,78,3,78, +3777,8,78,1,78,3,78,3780,8,78,1,78,1,78,1,78,1,78,3,78,3786,8,78,1,78,1, +78,3,78,3790,8,78,1,78,1,78,5,78,3794,8,78,10,78,12,78,3797,9,78,1,78,1, +78,3,78,3801,8,78,1,79,1,79,1,79,3,79,3806,8,79,1,79,3,79,3809,8,79,1,79, +1,79,1,79,1,79,1,79,3,79,3816,8,79,1,79,1,79,1,79,5,79,3821,8,79,10,79,12, +79,3824,9,79,1,79,1,79,1,79,1,79,4,79,3830,8,79,11,79,12,79,3831,3,79,3834, +8,79,3,79,3836,8,79,1,79,1,79,3,79,3840,8,79,1,80,1,80,1,80,1,80,1,80,1, +80,1,80,1,80,3,80,3850,8,80,1,81,1,81,1,81,1,81,1,81,1,81,5,81,3858,8,81, +10,81,12,81,3861,9,81,1,81,1,81,3,81,3865,8,81,1,81,1,81,5,81,3869,8,81, +10,81,12,81,3872,9,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,5,82,3882, +8,82,10,82,12,82,3885,9,82,1,82,1,82,3,82,3889,8,82,1,82,1,82,1,82,1,82, +1,82,1,82,1,82,5,82,3898,8,82,10,82,12,82,3901,9,82,1,82,1,82,1,83,1,83, +1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,3,83,3916,8,83,1,84,1,84,1, +84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,3,84,3928,8,84,1,84,1,84,3,84,3932, +8,84,1,84,3,84,3935,8,84,1,84,3,84,3938,8,84,1,85,1,85,1,85,1,85,1,85,3, +85,3945,8,85,1,85,1,85,3,85,3949,8,85,1,85,3,85,3952,8,85,1,86,1,86,1,86, +1,86,1,87,1,87,1,87,1,87,1,87,3,87,3963,8,87,1,87,5,87,3966,8,87,10,87,12, +87,3969,9,87,1,87,1,87,3,87,3973,8,87,1,88,1,88,1,88,1,88,1,88,1,88,5,88, +3981,8,88,10,88,12,88,3984,9,88,1,88,1,88,3,88,3988,8,88,1,88,1,88,1,88, +1,88,1,88,1,88,1,88,1,88,5,88,3998,8,88,10,88,12,88,4001,9,88,1,88,1,88, +3,88,4005,8,88,1,88,3,88,4008,8,88,1,88,1,88,3,88,4012,8,88,1,88,1,88,1, +88,3,88,4017,8,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,5,89,4027,8,89, +10,89,12,89,4030,9,89,1,89,1,89,3,89,4034,8,89,1,89,1,89,5,89,4038,8,89, +10,89,12,89,4041,9,89,1,89,1,89,3,89,4045,8,89,1,89,3,89,4048,8,89,1,89, +1,89,1,89,3,89,4053,8,89,1,89,1,89,1,90,1,90,1,90,3,90,4060,8,90,1,90,1, +90,1,90,1,90,1,90,1,90,5,90,4068,8,90,10,90,12,90,4071,9,90,1,90,1,90,3, +90,4075,8,90,1,90,3,90,4078,8,90,1,90,3,90,4081,8,90,1,90,1,90,3,90,4085, +8,90,1,90,3,90,4088,8,90,1,90,1,90,1,90,3,90,4093,8,90,1,91,1,91,1,91,1, +91,1,91,4,91,4100,8,91,11,91,12,91,4101,1,92,1,92,1,92,1,92,1,93,1,93,1, +93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,3,93,4118,8,93,3,93,4120,8,93,1,94, +1,94,1,94,1,94,1,94,1,94,1,94,1,94,3,94,4130,8,94,1,95,1,95,1,95,1,95,1, +95,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,4,97,4146,8,97,11,97,12, +97,4147,1,98,1,98,1,98,1,98,1,98,3,98,4155,8,98,1,98,1,98,1,98,3,98,4160, +8,98,1,99,1,99,1,100,1,100,3,100,4166,8,100,1,100,1,100,1,100,1,100,1,100, +1,100,5,100,4174,8,100,10,100,12,100,4177,9,100,1,101,1,101,1,101,1,101, +1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,3,102,4192,8,102,1, +102,5,102,4195,8,102,10,102,12,102,4198,9,102,1,102,1,102,3,102,4202,8,102, +3,102,4204,8,102,1,103,1,103,1,103,3,103,4209,8,103,1,103,1,103,1,103,1, +103,1,103,3,103,4216,8,103,1,103,3,103,4219,8,103,1,103,3,103,4222,8,103, +1,103,3,103,4225,8,103,1,103,1,103,1,104,1,104,1,104,1,104,5,104,4233,8, +104,10,104,12,104,4236,9,104,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1, +106,1,106,3,106,4247,8,106,1,106,1,106,3,106,4251,8,106,1,106,3,106,4254, +8,106,1,107,1,107,1,107,1,107,1,108,1,108,1,108,3,108,4263,8,108,1,109,1, +109,1,109,1,109,5,109,4269,8,109,10,109,12,109,4272,9,109,1,109,1,109,1, +109,1,109,1,109,3,109,4279,8,109,1,109,3,109,4282,8,109,1,110,1,110,1,110, +1,110,3,110,4288,8,110,1,111,1,111,1,111,3,111,4293,8,111,1,111,4,111,4296, +8,111,11,111,12,111,4297,1,111,1,111,3,111,4302,8,111,1,112,1,112,1,112, +1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112, +1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112, +1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,3,112,4340,8,112,1, +113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1, +113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1, +113,1,113,3,113,4368,8,113,1,114,1,114,1,114,5,114,4373,8,114,10,114,12, +114,4376,9,114,1,114,1,114,3,114,4380,8,114,1,114,1,114,1,115,1,115,1,115, +3,115,4387,8,115,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,3,117,4397, +8,117,1,117,5,117,4400,8,117,10,117,12,117,4403,9,117,1,118,1,118,1,118, +1,119,1,119,1,119,3,119,4411,8,119,1,119,1,119,3,119,4415,8,119,1,120,1, +120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,3,120,4426,8,120,1,120,3,120, +4429,8,120,1,121,1,121,3,121,4433,8,121,1,121,3,121,4436,8,121,1,121,5,121, +4439,8,121,10,121,12,121,4442,9,121,1,121,1,121,3,121,4446,8,121,1,122,1, +122,3,122,4450,8,122,1,122,1,122,1,122,1,122,1,122,1,122,5,122,4458,8,122, +10,122,12,122,4461,9,122,1,122,1,122,1,123,1,123,1,123,5,123,4468,8,123, +10,123,12,123,4471,9,123,1,124,1,124,1,124,3,124,4476,8,124,1,125,1,125, +1,125,1,125,1,125,1,125,3,125,4484,8,125,1,126,1,126,1,126,1,126,1,126,1, +126,3,126,4492,8,126,1,126,1,126,1,126,3,126,4497,8,126,1,126,3,126,4500, +8,126,3,126,4502,8,126,1,127,3,127,4505,8,127,1,127,1,127,1,127,1,127,1, +128,1,128,1,128,3,128,4514,8,128,1,128,3,128,4517,8,128,1,128,1,128,1,128, +3,128,4522,8,128,1,129,1,129,1,129,3,129,4527,8,129,1,129,3,129,4530,8,129, +1,129,3,129,4533,8,129,1,130,3,130,4536,8,130,1,130,1,130,3,130,4540,8,130, +1,130,3,130,4543,8,130,1,130,1,130,1,130,1,130,5,130,4549,8,130,10,130,12, +130,4552,9,130,1,130,1,130,3,130,4556,8,130,1,130,5,130,4559,8,130,10,130, +12,130,4562,9,130,1,131,1,131,1,131,1,131,3,131,4568,8,131,1,132,1,132,1, +132,1,133,1,133,1,133,1,133,1,133,3,133,4578,8,133,1,134,1,134,1,134,1,134, +1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,4,135,4592,8,135,11,135, +12,135,4593,1,135,1,135,1,136,1,136,1,136,3,136,4601,8,136,1,137,1,137,1, +137,1,137,1,138,1,138,1,138,1,138,3,138,4611,8,138,1,139,1,139,1,139,1,139, +1,139,1,139,5,139,4619,8,139,10,139,12,139,4622,9,139,1,139,1,139,1,139, +1,139,3,139,4628,8,139,1,139,3,139,4631,8,139,1,139,1,139,1,139,3,139,4636, +8,139,1,140,1,140,1,140,1,140,1,140,1,140,5,140,4644,8,140,10,140,12,140, +4647,9,140,1,140,1,140,3,140,4651,8,140,1,140,1,140,1,140,1,140,1,140,3, +140,4658,8,140,1,140,3,140,4661,8,140,1,140,1,140,1,140,3,140,4666,8,140, +1,141,3,141,4669,8,141,1,141,3,141,4672,8,141,1,141,1,141,1,141,1,141,1, +141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,5,141,4687,8,141,10, +141,12,141,4690,9,141,1,141,1,141,3,141,4694,8,141,1,141,1,141,1,141,1,141, +1,141,1,141,1,141,3,141,4703,8,141,1,141,3,141,4706,8,141,1,141,1,141,1, +141,3,141,4711,8,141,1,142,3,142,4714,8,142,1,142,1,142,1,143,1,143,1,143, +3,143,4721,8,143,1,143,3,143,4724,8,143,1,144,1,144,1,144,1,144,1,145,3, +145,4731,8,145,1,145,4,145,4734,8,145,11,145,12,145,4735,1,145,1,145,3,145, +4740,8,145,1,146,1,146,1,146,3,146,4745,8,146,1,147,1,147,1,147,3,147,4750, +8,147,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,149,1,149,1,149,5,149, +4762,8,149,10,149,12,149,4765,9,149,1,149,1,149,3,149,4769,8,149,1,149,1, +149,1,149,1,149,1,149,3,149,4776,8,149,1,149,3,149,4779,8,149,1,149,1,149, +3,149,4783,8,149,1,149,3,149,4786,8,149,1,149,3,149,4789,8,149,1,149,3,149, +4792,8,149,1,150,1,150,1,150,1,150,1,150,1,150,5,150,4800,8,150,10,150,12, +150,4803,9,150,1,150,1,150,1,150,3,150,4808,8,150,1,151,1,151,1,151,1,151, +1,151,1,151,5,151,4816,8,151,10,151,12,151,4819,9,151,1,151,1,151,3,151, +4823,8,151,1,151,1,151,1,151,1,151,1,151,3,151,4830,8,151,1,151,1,151,1, +151,1,151,3,151,4836,8,151,1,151,1,151,3,151,4840,8,151,1,152,3,152,4843, +8,152,1,152,3,152,4846,8,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1, +152,1,152,1,152,1,152,1,152,1,152,5,152,4861,8,152,10,152,12,152,4864,9, +152,1,152,1,152,3,152,4868,8,152,1,152,1,152,1,152,1,152,1,152,1,152,3,152, +4876,8,152,1,153,1,153,1,153,1,153,1,154,1,154,1,154,1,154,1,154,1,154,5, +154,4888,8,154,10,154,12,154,4891,9,154,1,154,1,154,1,155,1,155,3,155,4897, +8,155,1,156,1,156,1,156,1,157,1,157,1,157,1,157,1,158,1,158,1,158,1,158, +4,158,4910,8,158,11,158,12,158,4911,1,159,1,159,1,159,1,159,1,159,1,159, +1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159, +3,159,4932,8,159,1,159,1,159,1,159,1,159,1,159,3,159,4939,8,159,3,159,4941, +8,159,1,159,1,159,3,159,4945,8,159,1,160,1,160,1,160,1,160,4,160,4951,8, +160,11,160,12,160,4952,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1, +160,3,160,4964,8,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160, +3,160,4975,8,160,3,160,4977,8,160,1,161,1,161,1,161,1,161,1,161,3,161,4984, +8,161,1,161,1,161,5,161,4988,8,161,10,161,12,161,4991,9,161,1,161,1,161, +1,161,3,161,4996,8,161,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1, +162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1, +162,3,162,5019,8,162,1,162,1,162,1,162,3,162,5024,8,162,1,162,1,162,1,162, +3,162,5029,8,162,1,163,1,163,1,163,1,163,1,164,1,164,1,164,3,164,5038,8, +164,1,164,3,164,5041,8,164,1,164,1,164,1,164,1,164,1,164,1,164,3,164,5049, +8,164,1,164,5,164,5052,8,164,10,164,12,164,5055,9,164,1,164,3,164,5058,8, +164,1,164,3,164,5061,8,164,1,164,3,164,5064,8,164,1,164,3,164,5067,8,164, +1,164,3,164,5070,8,164,1,164,3,164,5073,8,164,1,164,3,164,5076,8,164,1,164, +3,164,5079,8,164,1,165,1,165,3,165,5083,8,165,1,165,3,165,5086,8,165,1,165, +3,165,5089,8,165,1,165,5,165,5092,8,165,10,165,12,165,5095,9,165,1,165,3, +165,5098,8,165,1,165,3,165,5101,8,165,1,165,4,165,5104,8,165,11,165,12,165, +5105,3,165,5108,8,165,1,166,1,166,1,166,1,167,1,167,1,167,1,168,1,168,1, +168,1,168,3,168,5120,8,168,1,168,1,168,3,168,5124,8,168,1,169,1,169,3,169, +5128,8,169,1,170,1,170,1,170,1,170,3,170,5134,8,170,1,170,1,170,3,170,5138, +8,170,1,170,3,170,5141,8,170,1,170,3,170,5144,8,170,1,171,1,171,1,171,1, +171,1,171,1,171,5,171,5152,8,171,10,171,12,171,5155,9,171,1,171,1,171,1, +172,1,172,5,172,5161,8,172,10,172,12,172,5164,9,172,1,172,1,172,1,172,1, +172,1,172,3,172,5171,8,172,1,172,1,172,1,172,1,172,1,172,3,172,5178,8,172, +1,172,5,172,5181,8,172,10,172,12,172,5184,9,172,1,172,1,172,1,172,1,172, +1,172,3,172,5191,8,172,1,172,3,172,5194,8,172,1,172,1,172,3,172,5198,8,172, +1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,3,172,5208,8,172,1,172,1, +172,1,172,1,172,1,172,5,172,5215,8,172,10,172,12,172,5218,9,172,1,172,1, +172,1,173,1,173,1,173,3,173,5225,8,173,1,173,1,173,3,173,5229,8,173,1,173, +3,173,5232,8,173,1,174,1,174,1,174,3,174,5237,8,174,1,174,1,174,3,174,5241, +8,174,1,174,3,174,5244,8,174,1,174,3,174,5247,8,174,1,175,1,175,1,175,1, +175,1,175,5,175,5254,8,175,10,175,12,175,5257,9,175,1,175,1,175,1,176,1, +176,1,176,3,176,5264,8,176,1,177,1,177,1,177,3,177,5269,8,177,1,178,1,178, +1,178,1,178,1,179,1,179,1,179,1,179,1,179,1,180,1,180,1,180,1,180,1,181, +1,181,1,181,1,181,1,181,1,182,1,182,1,182,1,182,5,182,5293,8,182,10,182, +12,182,5296,9,182,1,183,1,183,1,183,1,183,1,183,1,183,1,183,5,183,5305,8, +183,10,183,12,183,5308,9,183,1,183,1,183,1,183,1,183,5,183,5314,8,183,10, +183,12,183,5317,9,183,3,183,5319,8,183,1,184,1,184,1,184,1,184,1,184,5,184, +5326,8,184,10,184,12,184,5329,9,184,1,184,1,184,1,184,1,185,1,185,1,185, +1,185,3,185,5338,8,185,1,185,1,185,1,185,3,185,5343,8,185,1,185,1,185,1, +185,1,186,1,186,1,186,1,186,1,186,1,186,3,186,5354,8,186,1,186,3,186,5357, +8,186,3,186,5359,8,186,1,187,1,187,1,187,1,187,3,187,5365,8,187,1,187,1, +187,1,187,3,187,5370,8,187,1,187,5,187,5373,8,187,10,187,12,187,5376,9,187, +3,187,5378,8,187,1,188,1,188,1,188,1,188,3,188,5384,8,188,1,189,1,189,1, +189,3,189,5389,8,189,1,189,3,189,5392,8,189,1,189,1,189,1,189,1,189,1,189, +3,189,5399,8,189,1,189,1,189,1,189,1,189,3,189,5405,8,189,1,189,5,189,5408, +8,189,10,189,12,189,5411,9,189,1,189,1,189,1,189,3,189,5416,8,189,1,189, +1,189,1,189,4,189,5421,8,189,11,189,12,189,5422,1,189,3,189,5426,8,189,1, +190,1,190,1,190,1,190,5,190,5432,8,190,10,190,12,190,5435,9,190,1,190,5, +190,5438,8,190,10,190,12,190,5441,9,190,1,191,1,191,1,191,3,191,5446,8,191, +1,191,1,191,3,191,5450,8,191,1,191,3,191,5453,8,191,1,191,3,191,5456,8,191, +1,192,1,192,1,192,1,192,1,192,1,192,1,193,1,193,1,193,5,193,5467,8,193,10, +193,12,193,5470,9,193,1,194,1,194,1,194,3,194,5475,8,194,1,194,1,194,1,194, +1,194,1,194,3,194,5482,8,194,1,194,1,194,1,195,1,195,1,195,1,195,1,195,5, +195,5491,8,195,10,195,12,195,5494,9,195,1,195,1,195,1,196,1,196,1,196,3, +196,5501,8,196,1,196,1,196,3,196,5505,8,196,1,196,3,196,5508,8,196,1,196, +5,196,5511,8,196,10,196,12,196,5514,9,196,1,197,1,197,1,197,1,197,1,197, +1,197,1,197,3,197,5523,8,197,1,197,1,197,1,197,3,197,5528,8,197,1,197,5, +197,5531,8,197,10,197,12,197,5534,9,197,1,197,1,197,3,197,5538,8,197,1,197, +1,197,1,197,3,197,5543,8,197,1,197,1,197,1,197,3,197,5548,8,197,1,197,1, +197,1,197,3,197,5553,8,197,1,197,1,197,1,197,3,197,5558,8,197,1,197,1,197, +1,197,3,197,5563,8,197,1,197,5,197,5566,8,197,10,197,12,197,5569,9,197,3, +197,5571,8,197,1,197,1,197,1,197,1,197,1,197,5,197,5578,8,197,10,197,12, +197,5581,9,197,1,197,1,197,3,197,5585,8,197,1,198,1,198,1,198,1,198,1,198, +1,198,5,198,5593,8,198,10,198,12,198,5596,9,198,1,198,1,198,3,198,5600,8, +198,1,199,1,199,1,199,1,200,1,200,3,200,5607,8,200,1,200,1,200,3,200,5611, +8,200,1,201,1,201,1,201,1,201,1,201,1,201,1,201,3,201,5620,8,201,1,201,1, +201,1,201,1,201,1,201,3,201,5627,8,201,1,201,1,201,3,201,5631,8,201,1,202, +1,202,1,202,1,202,1,202,3,202,5638,8,202,1,202,3,202,5641,8,202,1,202,3, +202,5644,8,202,1,202,1,202,1,202,1,202,1,202,1,202,3,202,5652,8,202,1,202, +1,202,3,202,5656,8,202,1,202,3,202,5659,8,202,1,203,1,203,1,203,1,203,5, +203,5665,8,203,10,203,12,203,5668,9,203,1,204,1,204,1,204,4,204,5673,8,204, +11,204,12,204,5674,1,205,1,205,1,205,1,205,5,205,5681,8,205,10,205,12,205, +5684,9,205,1,206,1,206,1,206,1,206,5,206,5690,8,206,10,206,12,206,5693,9, +206,1,207,1,207,3,207,5697,8,207,1,207,1,207,1,207,1,207,1,207,3,207,5704, +8,207,1,207,1,207,1,207,3,207,5709,8,207,1,207,3,207,5712,8,207,1,207,1, +207,3,207,5716,8,207,3,207,5718,8,207,1,208,1,208,1,209,1,209,1,209,1,209, +1,209,1,209,1,209,3,209,5729,8,209,1,210,1,210,1,210,1,210,1,210,1,210,1, +210,5,210,5738,8,210,10,210,12,210,5741,9,210,1,210,1,210,1,210,1,210,1, +210,1,210,1,210,1,210,1,210,5,210,5752,8,210,10,210,12,210,5755,9,210,1, +210,1,210,3,210,5759,8,210,1,211,1,211,1,212,1,212,1,212,1,212,5,212,5767, +8,212,10,212,12,212,5770,9,212,1,213,1,213,1,213,3,213,5775,8,213,1,213, +3,213,5778,8,213,1,213,1,213,1,213,3,213,5783,8,213,1,213,1,213,1,213,1, +213,1,213,5,213,5790,8,213,10,213,12,213,5793,9,213,3,213,5795,8,213,1,213, +5,213,5798,8,213,10,213,12,213,5801,9,213,1,213,3,213,5804,8,213,1,214,1, +214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1, +214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,3,214,5828,8,214,3,214, +5830,8,214,1,215,1,215,3,215,5834,8,215,1,215,3,215,5837,8,215,1,215,1,215, +1,215,3,215,5842,8,215,1,215,3,215,5845,8,215,1,215,5,215,5848,8,215,10, +215,12,215,5851,9,215,1,216,1,216,1,216,1,216,1,217,1,217,3,217,5859,8,217, +1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,3,218,5870,8,218,1, +218,3,218,5873,8,218,1,218,3,218,5876,8,218,1,218,3,218,5879,8,218,1,218, +1,218,3,218,5883,8,218,1,218,1,218,1,218,1,218,5,218,5889,8,218,10,218,12, +218,5892,9,218,4,218,5894,8,218,11,218,12,218,5895,1,218,1,218,1,218,1,218, +1,218,1,218,1,218,1,218,5,218,5906,8,218,10,218,12,218,5909,9,218,3,218, +5911,8,218,1,219,1,219,1,219,3,219,5916,8,219,1,219,1,219,3,219,5920,8,219, +1,219,3,219,5923,8,219,1,220,1,220,1,220,1,220,1,220,1,220,1,220,3,220,5932, +8,220,1,221,1,221,1,221,1,221,3,221,5938,8,221,1,221,1,221,1,221,1,221,3, +221,5944,8,221,1,221,3,221,5947,8,221,1,221,1,221,3,221,5951,8,221,1,221, +1,221,1,222,1,222,1,222,1,222,1,223,1,223,1,223,1,223,1,224,1,224,1,224, +3,224,5966,8,224,1,224,3,224,5969,8,224,1,224,3,224,5972,8,224,1,224,1,224, +1,224,1,224,3,224,5978,8,224,1,224,1,224,1,224,1,224,3,224,5984,8,224,1, +224,5,224,5987,8,224,10,224,12,224,5990,9,224,1,224,1,224,1,224,3,224,5995, +8,224,1,225,1,225,1,225,1,225,3,225,6001,8,225,1,225,1,225,1,226,1,226,1, +226,1,226,3,226,6009,8,226,4,226,6011,8,226,11,226,12,226,6012,1,226,1,226, +1,227,1,227,1,227,1,227,1,227,1,227,1,228,1,228,5,228,6025,8,228,10,228, +12,228,6028,9,228,1,229,1,229,1,230,1,230,3,230,6034,8,230,1,230,1,230,1, +230,1,230,1,230,3,230,6041,8,230,1,230,1,230,1,230,1,230,3,230,6047,8,230, +1,230,3,230,6050,8,230,1,230,1,230,3,230,6054,8,230,1,231,1,231,1,231,3, +231,6059,8,231,1,232,1,232,1,232,3,232,6064,8,232,1,232,1,232,1,233,1,233, +3,233,6070,8,233,1,233,1,233,1,233,3,233,6075,8,233,1,233,1,233,1,233,3, +233,6080,8,233,5,233,6082,8,233,10,233,12,233,6085,9,233,1,233,1,233,3,233, +6089,8,233,1,234,1,234,1,234,1,234,3,234,6095,8,234,1,234,1,234,3,234,6099, +8,234,1,234,1,234,1,234,3,234,6104,8,234,1,234,1,234,3,234,6108,8,234,5, +234,6110,8,234,10,234,12,234,6113,9,234,1,234,1,234,1,234,1,234,1,234,1, +234,1,234,1,234,5,234,6123,8,234,10,234,12,234,6126,9,234,1,234,1,234,3, +234,6130,8,234,1,234,3,234,6133,8,234,1,235,1,235,3,235,6137,8,235,1,236, +1,236,1,236,4,236,6142,8,236,11,236,12,236,6143,1,236,1,236,1,236,1,236, +3,236,6150,8,236,3,236,6152,8,236,1,237,1,237,3,237,6156,8,237,1,237,3,237, +6159,8,237,1,237,1,237,1,237,1,237,1,237,3,237,6166,8,237,1,238,1,238,1, +238,1,238,1,238,1,238,1,238,1,238,1,238,3,238,6177,8,238,1,238,1,238,1,238, +1,238,1,238,1,238,1,238,1,238,3,238,6187,8,238,5,238,6189,8,238,10,238,12, +238,6192,9,238,1,238,1,238,3,238,6196,8,238,1,239,1,239,3,239,6200,8,239, +1,239,1,239,3,239,6204,8,239,1,239,3,239,6207,8,239,1,240,1,240,1,240,1, +240,1,240,1,240,1,240,5,240,6216,8,240,10,240,12,240,6219,9,240,1,240,1, +240,3,240,6223,8,240,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,5,241, +6233,8,241,10,241,12,241,6236,9,241,1,241,1,241,1,241,1,241,1,241,5,241, +6243,8,241,10,241,12,241,6246,9,241,1,241,1,241,1,241,1,241,1,241,1,241, +1,241,5,241,6255,8,241,10,241,12,241,6258,9,241,1,241,1,241,1,241,3,241, +6263,8,241,3,241,6265,8,241,1,242,1,242,3,242,6269,8,242,1,242,1,242,1,242, +1,242,1,242,1,242,1,242,3,242,6278,8,242,1,243,1,243,1,243,5,243,6283,8, +243,10,243,12,243,6286,9,243,1,243,1,243,1,243,1,243,1,243,5,243,6293,8, +243,10,243,12,243,6296,9,243,3,243,6298,8,243,1,244,1,244,1,244,1,244,1, +244,3,244,6305,8,244,1,245,1,245,1,245,1,245,5,245,6311,8,245,10,245,12, +245,6314,9,245,1,245,1,245,1,246,1,246,1,246,1,246,5,246,6322,8,246,10,246, +12,246,6325,9,246,1,246,1,246,1,247,1,247,3,247,6331,8,247,1,247,1,247,5, +247,6335,8,247,10,247,12,247,6338,9,247,1,247,3,247,6341,8,247,1,248,1,248, +1,248,1,248,1,248,1,248,5,248,6349,8,248,10,248,12,248,6352,9,248,1,248, +1,248,1,248,1,248,1,248,1,248,5,248,6360,8,248,10,248,12,248,6363,9,248, +1,248,1,248,3,248,6367,8,248,1,249,1,249,3,249,6371,8,249,1,249,1,249,3, +249,6375,8,249,1,249,3,249,6378,8,249,1,249,3,249,6381,8,249,1,250,1,250, +1,250,1,250,1,250,1,250,5,250,6389,8,250,10,250,12,250,6392,9,250,1,250, +1,250,3,250,6396,8,250,1,250,1,250,1,250,1,250,5,250,6402,8,250,10,250,12, +250,6405,9,250,1,250,1,250,1,251,1,251,3,251,6411,8,251,1,251,1,251,5,251, +6415,8,251,10,251,12,251,6418,9,251,1,251,3,251,6421,8,251,1,251,3,251,6424, +8,251,1,252,1,252,1,252,1,252,1,252,1,252,5,252,6432,8,252,10,252,12,252, +6435,9,252,1,252,1,252,1,252,1,252,1,252,1,252,5,252,6443,8,252,10,252,12, +252,6446,9,252,1,252,1,252,3,252,6450,8,252,1,253,1,253,3,253,6454,8,253, +1,253,1,253,3,253,6458,8,253,1,253,3,253,6461,8,253,1,253,3,253,6464,8,253, +1,254,1,254,1,255,1,255,1,255,3,255,6471,8,255,1,255,1,255,1,256,1,256,1, +256,1,256,1,256,3,256,6480,8,256,1,257,1,257,1,257,1,257,1,257,1,257,4,257, +6488,8,257,11,257,12,257,6489,1,258,1,258,1,258,1,258,1,258,1,258,1,258, +1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258, +1,258,1,258,3,258,6513,8,258,1,259,1,259,1,260,1,260,1,261,1,261,1,261,1, +261,1,261,1,261,1,261,3,261,6526,8,261,1,261,1,261,1,261,1,261,1,261,1,261, +1,261,1,261,1,261,1,261,1,261,1,261,5,261,6540,8,261,10,261,12,261,6543, +9,261,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,3,262,6553,8,262,1, +263,1,263,1,263,1,263,1,263,1,263,3,263,6561,8,263,1,263,1,263,1,263,1,263, +3,263,6567,8,263,1,263,3,263,6570,8,263,1,264,1,264,1,264,3,264,6575,8,264, +1,264,1,264,3,264,6579,8,264,1,264,3,264,6582,8,264,1,264,3,264,6585,8,264, +1,265,1,265,1,265,3,265,6590,8,265,1,266,1,266,1,266,1,266,4,266,6596,8, +266,11,266,12,266,6597,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1, +266,1,266,3,266,6610,8,266,1,267,1,267,1,267,1,267,1,267,1,267,3,267,6618, +8,267,1,268,1,268,1,268,1,268,1,268,3,268,6625,8,268,1,268,1,268,1,268,1, +269,1,269,1,269,1,269,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,5, +270,6642,8,270,10,270,12,270,6645,9,270,1,270,1,270,1,270,1,270,1,270,1, +270,1,270,1,270,3,270,6655,8,270,1,270,3,270,6658,8,270,1,271,1,271,1,271, +1,271,4,271,6664,8,271,11,271,12,271,6665,1,271,1,271,1,271,1,271,1,271, +3,271,6673,8,271,1,271,3,271,6676,8,271,3,271,6678,8,271,1,272,1,272,1,272, +1,272,1,272,1,272,3,272,6686,8,272,1,273,1,273,1,274,1,274,1,275,1,275,1, +276,1,276,1,276,1,276,1,276,1,276,1,276,3,276,6701,8,276,1,276,1,276,1,276, +1,276,1,276,1,276,3,276,6709,8,276,1,276,1,276,1,276,1,276,1,276,1,276,1, +277,1,277,1,277,1,277,1,277,1,277,3,277,6723,8,277,1,277,1,277,1,277,1,277, +1,277,1,277,1,277,1,277,1,277,4,277,6734,8,277,11,277,12,277,6735,1,278, +1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278, +1,278,4,278,6752,8,278,11,278,12,278,6753,1,278,1,278,1,278,5,278,6759,8, +278,10,278,12,278,6762,9,278,1,278,1,278,3,278,6766,8,278,1,279,1,279,1, +279,1,279,1,279,3,279,6773,8,279,1,279,3,279,6776,8,279,1,280,1,280,1,280, +3,280,6781,8,280,1,281,1,281,1,281,1,281,1,282,1,282,1,282,1,282,3,282,6791, +8,282,1,283,1,283,1,283,1,283,1,284,1,284,1,284,3,284,6800,8,284,1,284,1, +284,1,284,1,285,1,285,1,285,1,286,1,286,1,286,5,286,6811,8,286,10,286,12, +286,6814,9,286,1,286,1,286,1,286,1,286,1,286,5,286,6821,8,286,10,286,12, +286,6824,9,286,5,286,6826,8,286,10,286,12,286,6829,9,286,3,286,6831,8,286, +1,287,1,287,1,287,1,287,3,287,6837,8,287,1,288,1,288,1,288,1,289,1,289,1, +289,1,290,1,290,1,290,1,291,1,291,1,291,1,291,1,291,5,291,6853,8,291,10, +291,12,291,6856,9,291,3,291,6858,8,291,1,291,3,291,6861,8,291,1,292,1,292, +1,292,1,292,1,292,1,292,3,292,6869,8,292,1,292,1,292,1,292,1,292,1,292,1, +292,1,292,1,292,1,292,1,292,1,292,3,292,6882,8,292,3,292,6884,8,292,1,292, +1,292,3,292,6888,8,292,1,292,1,292,1,292,1,292,1,292,1,292,3,292,6896,8, +292,3,292,6898,8,292,3,292,6900,8,292,3,292,6902,8,292,1,293,1,293,1,293, +1,293,5,293,6908,8,293,10,293,12,293,6911,9,293,1,293,1,293,1,294,1,294, +1,294,1,294,1,294,1,294,3,294,6921,8,294,1,295,1,295,1,295,1,295,1,295,1, +296,1,296,1,296,1,296,3,296,6932,8,296,3,296,6934,8,296,1,297,1,297,1,297, +1,297,1,297,1,297,1,297,3,297,6943,8,297,1,298,1,298,1,298,1,298,1,298,1, +298,1,298,1,298,1,298,3,298,6954,8,298,1,299,1,299,1,299,1,299,3,299,6960, +8,299,1,299,1,299,1,299,1,299,1,299,3,299,6967,8,299,1,299,1,299,1,299,1, +299,1,300,1,300,1,300,1,300,3,300,6977,8,300,1,300,1,300,3,300,6981,8,300, +1,301,1,301,1,301,1,302,1,302,1,302,1,302,3,302,6990,8,302,1,302,3,302,6993, +8,302,1,303,1,303,1,303,1,303,3,303,6999,8,303,1,303,3,303,7002,8,303,1, +303,1,303,1,303,3,303,7007,8,303,1,304,1,304,1,304,1,304,3,304,7013,8,304, +1,304,1,304,1,304,1,304,1,304,1,304,3,304,7021,8,304,1,305,1,305,1,305,1, +305,3,305,7027,8,305,1,305,1,305,1,305,1,305,3,305,7033,8,305,1,305,1,305, +1,305,1,305,1,305,1,305,1,306,1,306,1,306,1,306,3,306,7045,8,306,1,306,1, +306,1,306,1,306,1,306,1,306,3,306,7053,8,306,1,307,3,307,7056,8,307,1,307, +1,307,1,307,1,307,1,307,1,307,1,307,1,307,1,307,3,307,7067,8,307,1,307,1, +307,3,307,7071,8,307,1,308,1,308,1,308,1,308,1,308,1,308,1,308,1,308,1,308, +3,308,7082,8,308,1,308,1,308,3,308,7086,8,308,1,309,1,309,1,309,1,309,1, +309,1,309,1,309,1,309,1,309,3,309,7097,8,309,1,310,1,310,3,310,7101,8,310, +1,310,1,310,1,310,1,310,3,310,7107,8,310,1,310,3,310,7110,8,310,1,310,3, +310,7113,8,310,1,310,3,310,7116,8,310,1,310,3,310,7119,8,310,1,310,1,310, +3,310,7123,8,310,1,310,3,310,7126,8,310,1,311,1,311,3,311,7130,8,311,1,311, +1,311,1,311,1,311,3,311,7136,8,311,1,311,3,311,7139,8,311,1,311,3,311,7142, +8,311,1,311,3,311,7145,8,311,1,311,3,311,7148,8,311,1,311,1,311,3,311,7152, +8,311,1,311,3,311,7155,8,311,1,312,1,312,1,313,1,313,1,314,1,314,3,314,7163, +8,314,1,314,1,314,1,314,3,314,7168,8,314,1,314,3,314,7171,8,314,1,314,1, +314,3,314,7175,8,314,1,315,1,315,1,315,1,315,1,315,1,315,3,315,7183,8,315, +1,315,1,315,3,315,7187,8,315,1,316,1,316,3,316,7191,8,316,1,316,1,316,1, +316,1,316,1,316,1,316,1,316,3,316,7200,8,316,1,316,1,316,1,316,1,316,1,316, +1,316,1,316,5,316,7209,8,316,10,316,12,316,7212,9,316,1,316,1,316,1,316, +1,316,3,316,7218,8,316,3,316,7220,8,316,1,317,1,317,3,317,7224,8,317,1,317, +1,317,1,317,1,317,1,317,1,317,1,317,3,317,7233,8,317,1,317,1,317,3,317,7237, +8,317,1,318,1,318,3,318,7241,8,318,1,318,1,318,1,318,1,318,1,318,3,318,7248, +8,318,1,318,1,318,1,318,1,318,3,318,7254,8,318,1,319,1,319,3,319,7258,8, +319,1,319,1,319,1,319,1,319,1,319,3,319,7265,8,319,1,319,1,319,1,319,1,319, +1,319,1,320,1,320,3,320,7274,8,320,1,320,1,320,1,320,1,320,1,320,1,320,1, +320,1,320,1,320,1,320,3,320,7286,8,320,1,320,1,320,1,320,1,320,1,320,1,320, +1,320,1,320,1,320,1,320,5,320,7298,8,320,10,320,12,320,7301,9,320,1,320, +3,320,7304,8,320,3,320,7306,8,320,1,320,3,320,7309,8,320,1,321,1,321,1,321, +1,321,1,321,3,321,7316,8,321,1,322,1,322,1,322,1,322,1,323,1,323,1,323,1, +323,1,324,1,324,1,324,1,324,3,324,7330,8,324,1,325,1,325,1,325,1,325,1,325, +1,325,1,325,3,325,7339,8,325,1,325,3,325,7342,8,325,1,325,3,325,7345,8,325, +1,325,3,325,7348,8,325,1,326,1,326,1,326,1,326,1,326,1,326,3,326,7356,8, +326,1,326,1,326,3,326,7360,8,326,1,327,1,327,1,327,1,327,1,327,1,327,1,327, +3,327,7369,8,327,1,327,1,327,3,327,7373,8,327,1,327,1,327,1,327,1,327,1, +328,1,328,1,328,1,328,1,328,1,328,1,328,1,328,1,328,3,328,7388,8,328,1,328, +1,328,1,328,1,328,1,329,1,329,3,329,7396,8,329,1,329,1,329,1,329,1,329,1, +329,1,329,1,330,1,330,1,330,1,330,3,330,7408,8,330,1,331,1,331,1,331,1,331, +1,332,1,332,1,333,1,333,1,334,1,334,1,335,1,335,1,335,1,335,1,335,3,335, +7425,8,335,1,335,3,335,7428,8,335,1,335,1,335,1,335,3,335,7433,8,335,1,335, +1,335,1,335,1,335,3,335,7439,8,335,1,335,1,335,3,335,7443,8,335,1,335,1, +335,1,335,3,335,7448,8,335,1,335,1,335,1,335,1,335,3,335,7454,8,335,1,335, +1,335,3,335,7458,8,335,1,335,3,335,7461,8,335,1,336,1,336,1,336,1,336,1, +336,1,336,1,336,1,336,1,336,1,336,5,336,7473,8,336,10,336,12,336,7476,9, +336,1,336,1,336,3,336,7480,8,336,1,336,1,336,1,336,1,336,1,336,1,336,1,336, +1,336,1,336,1,336,5,336,7492,8,336,10,336,12,336,7495,9,336,1,336,1,336, +3,336,7499,8,336,3,336,7501,8,336,1,337,1,337,1,337,1,337,1,337,1,337,1, +337,3,337,7510,8,337,1,337,1,337,1,337,1,337,1,337,1,337,3,337,7518,8,337, +1,337,3,337,7521,8,337,1,337,3,337,7524,8,337,1,337,3,337,7527,8,337,1,337, +3,337,7530,8,337,3,337,7532,8,337,1,338,1,338,3,338,7536,8,338,1,338,1,338, +3,338,7540,8,338,1,339,1,339,1,339,5,339,7545,8,339,10,339,12,339,7548,9, +339,1,339,1,339,3,339,7552,8,339,1,339,1,339,1,339,3,339,7557,8,339,1,339, +5,339,7560,8,339,10,339,12,339,7563,9,339,1,339,3,339,7566,8,339,1,339,3, +339,7569,8,339,1,339,1,339,1,339,3,339,7574,8,339,1,339,1,339,1,339,1,339, +4,339,7580,8,339,11,339,12,339,7581,1,339,5,339,7585,8,339,10,339,12,339, +7588,9,339,3,339,7590,8,339,1,340,1,340,1,341,1,341,3,341,7596,8,341,1,342, +1,342,1,342,3,342,7601,8,342,1,343,1,343,1,343,3,343,7606,8,343,1,344,1, +344,1,344,1,344,1,344,3,344,7613,8,344,1,344,3,344,7616,8,344,1,345,1,345, +1,345,1,345,1,345,1,345,1,345,1,345,1,345,5,345,7627,8,345,10,345,12,345, +7630,9,345,1,345,1,345,1,346,1,346,1,346,1,346,5,346,7638,8,346,10,346,12, +346,7641,9,346,1,346,1,346,1,346,1,346,5,346,7647,8,346,10,346,12,346,7650, +9,346,1,346,1,346,1,346,1,346,5,346,7656,8,346,10,346,12,346,7659,9,346, +1,346,1,346,1,346,1,346,5,346,7665,8,346,10,346,12,346,7668,9,346,1,346, +1,346,1,346,1,346,5,346,7674,8,346,10,346,12,346,7677,9,346,3,346,7679,8, +346,1,346,1,346,1,346,1,346,3,346,7685,8,346,1,346,1,346,1,346,3,346,7690, +8,346,3,346,7692,8,346,1,347,1,347,1,348,1,348,1,348,3,348,7699,8,348,1, +349,1,349,1,350,1,350,1,350,1,350,1,350,1,350,1,350,1,350,1,350,1,350,1, +351,1,351,1,352,1,352,1,353,1,353,1,354,1,354,1,354,1,354,1,355,1,355,1, +356,1,356,1,356,1,356,1,356,1,356,1,357,1,357,1,357,1,357,1,357,1,357,1, +357,1,357,5,357,7739,8,357,10,357,12,357,7742,9,357,3,357,7744,8,357,1,357, +1,357,3,357,7748,8,357,1,357,3,357,7751,8,357,1,357,1,357,1,357,1,357,1, +357,1,357,1,357,5,357,7760,8,357,10,357,12,357,7763,9,357,1,357,1,357,1, +357,1,357,5,357,7769,8,357,10,357,12,357,7772,9,357,3,357,7774,8,357,3,357, +7776,8,357,1,358,1,358,1,359,1,359,1,359,1,359,1,359,1,359,3,359,7786,8, +359,1,359,1,359,1,359,3,359,7791,8,359,1,359,1,359,3,359,7795,8,359,1,359, +1,359,3,359,7799,8,359,1,359,3,359,7802,8,359,1,359,3,359,7805,8,359,1,360, +1,360,1,360,1,360,1,361,1,361,1,361,1,361,1,361,1,362,1,362,1,362,3,362, +7819,8,362,3,362,7821,8,362,1,362,1,362,1,362,1,362,3,362,7827,8,362,3,362, +7829,8,362,5,362,7831,8,362,10,362,12,362,7834,9,362,1,362,1,362,1,362,3, +362,7839,8,362,1,362,1,362,1,362,1,362,3,362,7845,8,362,5,362,7847,8,362, +10,362,12,362,7850,9,362,3,362,7852,8,362,1,363,1,363,1,363,1,363,5,363, +7858,8,363,10,363,12,363,7861,9,363,1,364,1,364,1,365,1,365,1,365,5,365, +7868,8,365,10,365,12,365,7871,9,365,1,365,3,365,7874,8,365,1,365,1,365,1, +366,1,366,1,367,1,367,1,367,1,367,1,367,1,367,1,367,1,367,1,367,1,367,1, +367,1,367,1,367,3,367,7893,8,367,1,368,1,368,1,368,3,368,7898,8,368,1,368, +1,368,1,369,1,369,1,369,3,369,7905,8,369,1,369,1,369,1,370,1,370,1,370,3, +370,7912,8,370,1,370,1,370,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371, +1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371, +1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371, +1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371, +1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371, +1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371, +1,371,1,371,3,371,7986,8,371,1,372,1,372,1,372,1,372,1,372,3,372,7993,8, +372,1,373,1,373,1,373,1,373,1,373,1,373,1,373,3,373,8002,8,373,1,373,1,373, +1,373,1,373,1,373,1,373,1,373,3,373,8011,8,373,1,373,1,373,1,373,1,373,5, +373,8017,8,373,10,373,12,373,8020,9,373,1,373,1,373,1,373,1,373,3,373,8026, +8,373,1,373,1,373,1,373,1,373,1,373,3,373,8033,8,373,1,373,5,373,8036,8, +373,10,373,12,373,8039,9,373,1,373,1,373,1,373,1,373,3,373,8045,8,373,1, +373,1,373,1,373,1,373,1,373,3,373,8052,8,373,1,373,5,373,8055,8,373,10,373, +12,373,8058,9,373,1,373,1,373,1,373,1,373,3,373,8064,8,373,1,373,1,373,1, +373,1,373,1,373,3,373,8071,8,373,1,373,5,373,8074,8,373,10,373,12,373,8077, +9,373,1,373,1,373,1,373,1,373,3,373,8083,8,373,1,373,1,373,1,373,1,373,1, +373,3,373,8090,8,373,1,373,5,373,8093,8,373,10,373,12,373,8096,9,373,1,373, +1,373,1,373,1,373,3,373,8102,8,373,1,373,1,373,1,373,1,373,1,373,3,373,8109, +8,373,1,373,5,373,8112,8,373,10,373,12,373,8115,9,373,3,373,8117,8,373,1, +373,3,373,8120,8,373,1,374,1,374,1,374,1,374,1,374,3,374,8127,8,374,1,374, +1,374,3,374,8131,8,374,1,375,1,375,1,375,1,375,1,375,1,375,1,375,3,375,8140, +8,375,1,375,1,375,1,376,1,376,1,376,1,376,1,376,5,376,8149,8,376,10,376, +12,376,8152,9,376,1,376,1,376,1,376,1,376,1,376,1,376,3,376,8160,8,376,1, +376,1,376,3,376,8164,8,376,1,376,1,376,1,376,1,376,1,376,3,376,8171,8,376, +3,376,8173,8,376,1,377,1,377,1,377,5,377,8178,8,377,10,377,12,377,8181,9, +377,1,378,1,378,1,378,1,378,1,378,3,378,8188,8,378,1,378,1,378,1,378,3,378, +8193,8,378,1,378,1,378,3,378,8197,8,378,1,379,1,379,1,379,3,379,8202,8,379, +1,379,1,379,1,379,1,379,1,379,3,379,8209,8,379,3,379,8211,8,379,1,379,1, +379,3,379,8215,8,379,1,379,3,379,8218,8,379,1,379,3,379,8221,8,379,1,380, +1,380,1,380,1,380,1,380,1,381,1,381,3,381,8230,8,381,1,381,1,381,1,381,1, +381,3,381,8236,8,381,3,381,8238,8,381,4,381,8240,8,381,11,381,12,381,8241, +1,381,1,381,3,381,8246,8,381,1,381,1,381,1,381,3,381,8251,8,381,1,381,1, +381,1,381,3,381,8256,8,381,5,381,8258,8,381,10,381,12,381,8261,9,381,1,381, +1,381,1,381,3,381,8266,8,381,1,381,1,381,1,381,3,381,8271,8,381,1,381,1, +381,1,381,3,381,8276,8,381,1,381,3,381,8279,8,381,1,382,1,382,1,382,1,382, +1,383,1,383,1,383,3,383,8288,8,383,1,383,3,383,8291,8,383,1,383,3,383,8294, +8,383,1,384,1,384,1,384,1,384,3,384,8300,8,384,1,384,1,384,1,384,1,385,1, +385,3,385,8307,8,385,1,385,1,385,1,385,3,385,8312,8,385,5,385,8314,8,385, +10,385,12,385,8317,9,385,1,386,1,386,1,386,3,386,8322,8,386,3,386,8324,8, +386,1,386,1,386,1,386,1,386,3,386,8330,8,386,3,386,8332,8,386,5,386,8334, +8,386,10,386,12,386,8337,9,386,1,386,1,386,1,386,1,386,1,386,1,386,3,386, +8345,8,386,1,387,1,387,1,387,1,387,3,387,8351,8,387,1,387,1,387,1,387,1, +387,1,387,5,387,8358,8,387,10,387,12,387,8361,9,387,1,387,1,387,1,387,1, +387,1,387,1,387,1,387,1,387,1,387,3,387,8372,8,387,1,387,1,387,1,387,1,387, +1,387,1,387,3,387,8380,8,387,1,387,1,387,1,387,1,387,1,387,1,387,1,387,3, +387,8389,8,387,1,387,3,387,8392,8,387,1,388,1,388,1,388,5,388,8397,8,388, +10,388,12,388,8400,9,388,1,388,3,388,8403,8,388,1,388,1,388,1,388,1,388, +5,388,8409,8,388,10,388,12,388,8412,9,388,1,389,1,389,1,389,1,389,3,389, +8418,8,389,1,389,1,389,1,390,1,390,1,390,1,390,4,390,8426,8,390,11,390,12, +390,8427,1,390,1,390,1,390,4,390,8433,8,390,11,390,12,390,8434,1,391,1,391, +1,391,3,391,8440,8,391,1,391,1,391,1,391,1,391,1,391,3,391,8447,8,391,1, +391,1,391,1,391,1,392,1,392,1,393,1,393,1,394,1,394,1,394,1,394,1,394,1, +394,1,394,3,394,8463,8,394,1,394,1,394,1,394,1,394,1,394,3,394,8470,8,394, +1,394,1,394,1,394,1,394,1,394,1,394,1,394,1,394,3,394,8480,8,394,1,394,1, +394,1,394,1,394,1,394,4,394,8487,8,394,11,394,12,394,8488,1,394,1,394,1, +395,1,395,1,395,1,395,1,395,3,395,8498,8,395,1,395,1,395,1,396,1,396,1,396, +1,396,1,396,3,396,8507,8,396,1,396,5,396,8510,8,396,10,396,12,396,8513,9, +396,1,396,1,396,3,396,8517,8,396,1,396,3,396,8520,8,396,1,397,1,397,1,397, +1,397,1,397,1,397,3,397,8528,8,397,1,397,1,397,1,398,1,398,1,398,1,398,1, +399,1,399,1,399,3,399,8539,8,399,1,399,1,399,3,399,8543,8,399,1,399,3,399, +8546,8,399,1,399,1,399,1,399,1,399,1,399,1,399,3,399,8554,8,399,1,399,1, +399,1,399,1,399,3,399,8560,8,399,3,399,8562,8,399,1,399,1,399,1,399,3,399, +8567,8,399,1,399,3,399,8570,8,399,1,399,1,399,1,399,1,399,1,399,3,399,8577, +8,399,1,399,1,399,3,399,8581,8,399,1,399,4,399,8584,8,399,11,399,12,399, +8585,1,399,3,399,8589,8,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1, +399,1,399,1,399,1,399,3,399,8602,8,399,1,399,1,399,3,399,8606,8,399,1,400, +1,400,1,400,3,400,8611,8,400,1,400,3,400,8614,8,400,1,400,1,400,1,400,1, +401,1,401,1,401,1,401,1,401,3,401,8624,8,401,1,401,1,401,3,401,8628,8,401, +1,401,1,401,3,401,8632,8,401,1,402,1,402,1,402,3,402,8637,8,402,1,402,1, +402,1,403,1,403,1,403,1,404,1,404,1,404,1,405,1,405,1,405,1,405,1,406,1, +406,3,406,8653,8,406,1,407,1,407,1,407,3,407,8658,8,407,1,407,1,407,1,408, +1,408,1,408,1,408,1,408,1,408,1,408,1,408,3,408,8670,8,408,4,408,8672,8, +408,11,408,12,408,8673,1,408,1,408,1,408,1,408,3,408,8680,8,408,1,408,1, +408,1,408,1,408,1,408,1,408,1,408,1,408,1,408,1,408,1,408,5,408,8693,8,408, +10,408,12,408,8696,9,408,3,408,8698,8,408,3,408,8700,8,408,3,408,8702,8, +408,4,408,8704,8,408,11,408,12,408,8705,1,408,3,408,8709,8,408,1,409,1,409, +1,409,1,409,1,409,1,409,1,409,1,409,1,409,1,409,1,409,1,409,1,409,1,409, +1,409,1,409,5,409,8727,8,409,10,409,12,409,8730,9,409,1,409,1,409,3,409, +8734,8,409,1,409,1,409,1,409,3,409,8739,8,409,1,410,1,410,1,410,1,410,1, +410,1,410,1,410,4,410,8748,8,410,11,410,12,410,8749,1,410,3,410,8753,8,410, +1,410,1,410,1,411,1,411,1,411,1,411,1,411,1,411,4,411,8763,8,411,11,411, +12,411,8764,1,412,1,412,1,412,1,412,1,412,4,412,8772,8,412,11,412,12,412, +8773,1,413,1,413,1,413,1,413,1,413,1,413,1,413,4,413,8783,8,413,11,413,12, +413,8784,1,414,1,414,1,414,1,414,1,414,5,414,8792,8,414,10,414,12,414,8795, +9,414,1,414,1,414,3,414,8799,8,414,1,415,1,415,1,415,1,415,1,415,1,415,1, +415,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1, +415,1,415,5,415,8821,8,415,10,415,12,415,8824,9,415,1,415,1,415,3,415,8828, +8,415,1,415,1,415,1,415,1,415,3,415,8834,8,415,3,415,8836,8,415,1,416,1, +416,1,416,1,417,1,417,1,417,3,417,8844,8,417,1,417,3,417,8847,8,417,1,417, +3,417,8850,8,417,1,417,3,417,8853,8,417,1,417,1,417,1,417,1,417,3,417,8859, +8,417,1,417,1,417,1,417,1,417,3,417,8865,8,417,1,417,1,417,1,417,1,417,3, +417,8871,8,417,1,417,1,417,3,417,8875,8,417,3,417,8877,8,417,1,417,3,417, +8880,8,417,1,417,1,417,1,417,3,417,8885,8,417,1,417,1,417,3,417,8889,8,417, +1,417,1,417,1,417,3,417,8894,8,417,1,417,3,417,8897,8,417,1,418,1,418,1, +418,3,418,8902,8,418,1,418,3,418,8905,8,418,1,419,1,419,1,419,3,419,8910, +8,419,1,420,1,420,3,420,8914,8,420,1,420,1,420,5,420,8918,8,420,10,420,12, +420,8921,9,420,1,420,3,420,8924,8,420,4,420,8926,8,420,11,420,12,420,8927, +1,420,1,420,1,421,1,421,1,421,1,421,3,421,8936,8,421,1,421,1,421,1,421,1, +421,1,421,1,421,1,421,1,421,1,421,5,421,8947,8,421,10,421,12,421,8950,9, +421,1,421,3,421,8953,8,421,1,421,1,421,1,421,1,421,3,421,8959,8,421,1,421, +3,421,8962,8,421,1,421,1,421,3,421,8966,8,421,1,421,1,421,1,421,3,421,8971, +8,421,4,421,8973,8,421,11,421,12,421,8974,1,421,1,421,5,421,8979,8,421,10, +421,12,421,8982,9,421,1,422,1,422,3,422,8986,8,422,1,422,3,422,8989,8,422, +1,422,1,422,1,422,1,422,1,422,1,422,3,422,8997,8,422,1,422,3,422,9000,8, +422,1,423,1,423,1,423,1,423,1,423,1,423,1,423,3,423,9009,8,423,1,423,1,423, +3,423,9013,8,423,3,423,9015,8,423,1,424,1,424,1,424,1,424,1,424,1,424,1, +424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,3,424,9034, +8,424,1,424,1,424,1,424,1,424,3,424,9040,8,424,1,424,4,424,9043,8,424,11, +424,12,424,9044,1,424,1,424,1,424,3,424,9050,8,424,3,424,9052,8,424,1,425, +1,425,3,425,9056,8,425,1,425,1,425,1,425,1,425,1,425,5,425,9063,8,425,10, +425,12,425,9066,9,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,5, +425,9076,8,425,10,425,12,425,9079,9,425,1,425,1,425,1,425,1,425,1,425,1, +425,1,425,1,425,3,425,9089,8,425,1,425,3,425,9092,8,425,1,425,3,425,9095, +8,425,1,426,3,426,9098,8,426,1,426,1,426,1,426,1,426,1,426,1,426,1,426,4, +426,9107,8,426,11,426,12,426,9108,1,427,1,427,1,427,3,427,9114,8,427,1,427, +1,427,1,427,1,427,1,427,1,427,1,427,1,427,5,427,9124,8,427,10,427,12,427, +9127,9,427,1,427,1,427,3,427,9131,8,427,1,428,1,428,3,428,9135,8,428,1,428, +1,428,1,428,1,428,1,428,1,428,3,428,9143,8,428,1,428,1,428,1,428,1,428,1, +428,3,428,9150,8,428,1,428,1,428,1,428,3,428,9155,8,428,1,428,1,428,1,428, +3,428,9160,8,428,1,429,1,429,1,430,1,430,1,431,1,431,1,431,1,431,1,431,3, +431,9171,8,431,1,431,3,431,9174,8,431,1,431,1,431,1,431,1,431,1,431,1,431, +1,431,1,431,1,431,1,431,3,431,9186,8,431,1,431,1,431,1,431,1,431,1,431,1, +431,1,431,1,431,1,431,1,431,1,431,1,431,1,431,3,431,9201,8,431,1,432,1,432, +1,432,3,432,9206,8,432,1,432,1,432,1,432,1,432,3,432,9212,8,432,1,432,1, +432,3,432,9216,8,432,1,432,1,432,1,432,1,432,3,432,9222,8,432,1,432,1,432, +3,432,9226,8,432,1,432,1,432,1,432,1,432,1,432,5,432,9233,8,432,10,432,12, +432,9236,9,432,1,432,1,432,1,432,1,432,5,432,9242,8,432,10,432,12,432,9245, +9,432,1,432,1,432,3,432,9249,8,432,1,433,1,433,3,433,9253,8,433,1,433,1, +433,3,433,9257,8,433,1,434,1,434,1,434,1,434,3,434,9263,8,434,1,435,1,435, +1,436,1,436,1,436,3,436,9270,8,436,1,436,1,436,1,436,1,436,3,436,9276,8, +436,1,437,1,437,1,437,1,438,1,438,1,439,1,439,3,439,9285,8,439,1,439,1,439, +1,439,3,439,9290,8,439,1,440,1,440,1,440,1,440,1,440,3,440,9297,8,440,1, +440,3,440,9300,8,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440, +1,440,1,440,1,440,1,440,1,440,1,440,5,440,9317,8,440,10,440,12,440,9320, +9,440,1,441,1,441,1,441,1,442,1,442,1,443,1,443,1,443,1,443,1,443,1,443, +1,443,3,443,9334,8,443,3,443,9336,8,443,1,444,1,444,1,444,1,444,1,444,1, +445,1,445,1,445,1,445,1,445,1,445,3,445,9349,8,445,1,445,3,445,9352,8,445, +1,445,3,445,9355,8,445,1,445,3,445,9358,8,445,1,446,1,446,1,446,1,446,1, +446,1,446,3,446,9366,8,446,1,446,3,446,9369,8,446,1,446,3,446,9372,8,446, +1,446,3,446,9375,8,446,1,447,1,447,1,447,1,448,1,448,1,448,1,448,1,448,1, +448,1,448,3,448,9387,8,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,5,448, +9396,8,448,10,448,12,448,9399,9,448,3,448,9401,8,448,1,448,4,448,9404,8, +448,11,448,12,448,9405,1,448,1,448,3,448,9410,8,448,1,449,1,449,1,449,1, +449,1,449,1,449,3,449,9418,8,449,1,449,1,449,1,449,1,449,1,449,1,449,1,449, +1,449,1,449,1,449,1,449,3,449,9431,8,449,1,450,1,450,3,450,9435,8,450,1, +450,1,450,3,450,9439,8,450,1,451,1,451,3,451,9443,8,451,1,451,3,451,9446, +8,451,1,451,3,451,9449,8,451,1,451,3,451,9452,8,451,1,451,3,451,9455,8,451, +1,452,1,452,1,452,1,452,1,452,1,452,1,452,1,452,3,452,9465,8,452,1,452,3, +452,9468,8,452,1,453,1,453,1,454,1,454,1,454,1,454,1,454,3,454,9477,8,454, +1,455,1,455,3,455,9481,8,455,1,455,1,455,1,455,1,455,5,455,9487,8,455,10, +455,12,455,9490,9,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,5, +455,9500,8,455,10,455,12,455,9503,9,455,3,455,9505,8,455,3,455,9507,8,455, +1,455,1,455,3,455,9511,8,455,1,456,1,456,3,456,9515,8,456,1,456,1,456,1, +457,1,457,3,457,9521,8,457,1,457,1,457,1,458,3,458,9526,8,458,1,458,1,458, +3,458,9530,8,458,1,458,3,458,9533,8,458,1,458,3,458,9536,8,458,1,459,1,459, +1,459,1,459,1,459,5,459,9543,8,459,10,459,12,459,9546,9,459,1,459,1,459, +3,459,9550,8,459,1,459,1,459,3,459,9554,8,459,1,459,1,459,3,459,9558,8,459, +1,459,3,459,9561,8,459,1,460,1,460,1,460,1,460,1,460,3,460,9568,8,460,1, +460,3,460,9571,8,460,3,460,9573,8,460,1,461,1,461,1,461,3,461,9578,8,461, +1,462,1,462,1,462,1,463,1,463,1,463,1,463,3,463,9587,8,463,1,463,1,463,1, +463,1,463,3,463,9593,8,463,1,463,3,463,9596,8,463,3,463,9598,8,463,1,464, +1,464,1,464,1,465,1,465,1,465,1,465,1,465,1,465,1,465,1,465,1,465,1,465, +5,465,9613,8,465,10,465,12,465,9616,9,465,1,465,1,465,1,465,5,465,9621,8, +465,10,465,12,465,9624,9,465,1,465,1,465,1,465,1,465,1,465,1,465,3,465,9632, +8,465,1,465,3,465,9635,8,465,1,465,1,465,1,465,3,465,9640,8,465,1,465,3, +465,9643,8,465,1,465,1,465,1,465,1,465,1,465,1,465,1,465,3,465,9652,8,465, +1,466,1,466,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467, +1,467,1,467,1,467,1,467,1,467,1,467,3,467,9672,8,467,1,467,1,467,1,467,1, +467,3,467,9678,8,467,1,467,1,467,1,467,4,467,9683,8,467,11,467,12,467,9684, +1,468,1,468,1,469,1,469,1,469,1,469,1,469,1,469,3,469,9695,8,469,1,469,1, +469,1,470,1,470,1,470,1,470,1,470,3,470,9704,8,470,1,470,1,470,1,470,1,470, +1,470,1,470,1,470,1,470,1,470,1,470,3,470,9716,8,470,1,470,3,470,9719,8, +470,1,470,3,470,9722,8,470,1,471,1,471,1,471,1,471,1,471,1,472,1,472,1,472, +3,472,9732,8,472,1,473,1,473,1,473,1,473,1,473,1,473,1,473,3,473,9741,8, +473,1,473,1,473,1,473,1,473,5,473,9747,8,473,10,473,12,473,9750,9,473,1, +473,1,473,3,473,9754,8,473,1,473,1,473,1,473,1,473,5,473,9760,8,473,10,473, +12,473,9763,9,473,1,473,1,473,3,473,9767,8,473,1,473,3,473,9770,8,473,1, +474,1,474,1,474,1,474,1,474,1,474,1,474,1,474,1,474,1,474,1,474,4,474,9783, +8,474,11,474,12,474,9784,3,474,9787,8,474,1,474,3,474,9790,8,474,1,474,1, +474,3,474,9794,8,474,1,474,1,474,1,474,1,474,1,474,1,474,1,474,1,474,3,474, +9804,8,474,5,474,9806,8,474,10,474,12,474,9809,9,474,1,474,1,474,3,474,9813, +8,474,1,474,4,474,9816,8,474,11,474,12,474,9817,1,474,1,474,3,474,9822,8, +474,3,474,9824,8,474,1,474,3,474,9827,8,474,5,474,9829,8,474,10,474,12,474, +9832,9,474,1,475,1,475,1,475,1,475,1,476,1,476,1,476,3,476,9841,8,476,1, +477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,3,477,9851,8,477,1,477,3,477, +9854,8,477,1,477,3,477,9857,8,477,1,477,1,477,3,477,9861,8,477,1,477,1,477, +3,477,9865,8,477,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1, +478,1,478,3,478,9878,8,478,1,479,1,479,1,479,1,479,1,479,1,480,1,480,3,480, +9887,8,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,3,480,9898, +8,480,3,480,9900,8,480,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1, +481,4,481,9911,8,481,11,481,12,481,9912,1,482,1,482,1,482,3,482,9918,8,482, +1,483,1,483,1,483,3,483,9923,8,483,1,484,1,484,1,484,5,484,9928,8,484,10, +484,12,484,9931,9,484,1,485,1,485,1,485,1,485,1,485,1,485,1,486,1,486,1, +486,1,487,1,487,1,487,1,487,1,487,1,487,3,487,9948,8,487,1,488,1,488,1,488, +1,488,3,488,9954,8,488,1,489,1,489,1,489,3,489,9959,8,489,1,489,1,489,1, +489,1,489,1,489,1,489,5,489,9967,8,489,10,489,12,489,9970,9,489,1,489,1, +489,1,489,3,489,9975,8,489,1,490,1,490,1,490,1,490,5,490,9981,8,490,10,490, +12,490,9984,9,490,1,490,1,490,1,490,3,490,9989,8,490,1,490,1,490,3,490,9993, +8,490,1,490,3,490,9996,8,490,1,490,1,490,1,491,1,491,1,491,1,491,1,492,1, +492,1,492,1,492,3,492,10008,8,492,1,493,1,493,1,493,5,493,10013,8,493,10, +493,12,493,10016,9,493,1,494,1,494,1,494,1,494,1,494,5,494,10023,8,494,10, +494,12,494,10026,9,494,1,494,1,494,1,495,1,495,1,495,1,495,1,495,1,495,1, +495,1,495,1,495,1,495,3,495,10040,8,495,1,495,1,495,1,495,3,495,10045,8, +495,1,496,1,496,1,496,1,497,1,497,1,497,1,497,1,497,1,497,5,497,10056,8, +497,10,497,12,497,10059,9,497,1,497,1,497,3,497,10063,8,497,1,498,1,498, +1,498,1,498,1,498,1,498,3,498,10071,8,498,1,498,1,498,1,498,3,498,10076, +8,498,1,498,1,498,1,498,3,498,10081,8,498,5,498,10083,8,498,10,498,12,498, +10086,9,498,1,498,1,498,3,498,10090,8,498,1,498,1,498,1,498,1,498,1,498, +1,498,3,498,10098,8,498,1,498,3,498,10101,8,498,1,498,3,498,10104,8,498, +1,498,3,498,10107,8,498,1,498,3,498,10110,8,498,3,498,10112,8,498,1,498, +1,498,1,498,1,498,1,498,4,498,10119,8,498,11,498,12,498,10120,5,498,10123, +8,498,10,498,12,498,10126,9,498,1,498,1,498,1,498,3,498,10131,8,498,1,498, +3,498,10134,8,498,1,498,1,498,3,498,10138,8,498,1,498,1,498,1,498,3,498, +10143,8,498,1,498,1,498,1,498,1,499,1,499,1,499,1,499,1,499,1,499,1,499, +1,499,1,499,3,499,10157,8,499,1,499,1,499,1,500,1,500,3,500,10163,8,500, +1,500,1,500,3,500,10167,8,500,1,501,1,501,1,501,1,501,1,501,1,501,1,501, +1,501,1,501,3,501,10178,8,501,1,501,1,501,1,501,1,501,3,501,10184,8,501, +1,501,1,501,1,501,3,501,10189,8,501,1,501,1,501,1,501,3,501,10194,8,501, +1,501,1,501,1,501,3,501,10199,8,501,1,501,1,501,1,501,4,501,10204,8,501, +11,501,12,501,10205,3,501,10208,8,501,1,502,1,502,1,502,1,502,1,502,1,502, +3,502,10216,8,502,1,503,1,503,1,503,1,503,1,503,1,503,3,503,10224,8,503, +1,503,1,503,1,503,1,504,1,504,1,504,3,504,10232,8,504,1,504,1,504,1,504, +1,504,1,504,1,504,3,504,10240,8,504,1,504,1,504,1,504,1,504,1,504,3,504, +10247,8,504,1,505,1,505,1,506,1,506,1,506,1,506,1,506,1,506,1,506,3,506, +10258,8,506,1,506,1,506,1,506,1,506,3,506,10264,8,506,5,506,10266,8,506, +10,506,12,506,10269,9,506,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1,506, +1,506,3,506,10280,8,506,1,506,1,506,1,506,1,506,1,506,3,506,10287,8,506, +5,506,10289,8,506,10,506,12,506,10292,9,506,1,506,3,506,10295,8,506,1,506, +3,506,10298,8,506,1,506,3,506,10301,8,506,1,507,1,507,3,507,10305,8,507, +1,507,1,507,1,507,1,507,1,507,4,507,10312,8,507,11,507,12,507,10313,1,507, +3,507,10317,8,507,1,508,1,508,1,508,1,508,1,508,1,508,3,508,10325,8,508, +3,508,10327,8,508,1,509,1,509,1,509,1,509,3,509,10333,8,509,1,509,1,509, +1,509,1,509,3,509,10339,8,509,1,509,1,509,1,509,3,509,10344,8,509,3,509, +10346,8,509,1,510,1,510,1,510,1,510,1,510,1,510,3,510,10354,8,510,1,511, +1,511,1,511,1,512,1,512,1,512,1,513,1,513,1,513,3,513,10365,8,513,1,513, +3,513,10368,8,513,1,513,1,513,3,513,10372,8,513,1,513,1,513,3,513,10376, +8,513,1,513,3,513,10379,8,513,1,513,1,513,1,513,3,513,10384,8,513,1,513, +1,513,3,513,10388,8,513,1,514,1,514,3,514,10392,8,514,1,514,1,514,1,514, +1,514,1,514,1,514,1,514,3,514,10401,8,514,1,514,1,514,1,514,1,514,3,514, +10407,8,514,1,514,1,514,1,514,1,514,3,514,10413,8,514,1,515,1,515,1,515, +1,515,3,515,10419,8,515,1,515,3,515,10422,8,515,1,516,1,516,1,516,1,516, +1,516,1,516,3,516,10430,8,516,1,516,1,516,3,516,10434,8,516,1,516,1,516, +1,516,1,516,3,516,10440,8,516,1,516,1,516,1,516,1,516,3,516,10446,8,516, +1,516,1,516,1,516,1,516,3,516,10452,8,516,1,516,1,516,3,516,10456,8,516, +3,516,10458,8,516,1,516,1,516,1,516,3,516,10463,8,516,1,516,3,516,10466, +8,516,1,516,1,516,3,516,10470,8,516,1,516,1,516,3,516,10474,8,516,1,517, +1,517,1,517,1,517,1,517,1,517,3,517,10482,8,517,1,517,1,517,3,517,10486, +8,517,1,517,3,517,10489,8,517,1,517,3,517,10492,8,517,1,517,1,517,1,517, +1,517,3,517,10498,8,517,1,517,3,517,10501,8,517,1,517,3,517,10504,8,517, +1,517,3,517,10507,8,517,1,517,3,517,10510,8,517,1,518,1,518,1,518,1,518, +1,518,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1,518,5,518, +10527,8,518,10,518,12,518,10530,9,518,1,518,1,518,1,519,1,519,3,519,10536, +8,519,1,519,1,519,3,519,10540,8,519,1,519,3,519,10543,8,519,1,520,1,520, +1,520,1,520,1,520,3,520,10550,8,520,1,520,1,520,1,520,3,520,10555,8,520, +1,520,1,520,1,520,1,520,1,520,3,520,10562,8,520,1,520,1,520,1,520,1,520, +3,520,10568,8,520,3,520,10570,8,520,1,520,1,520,1,520,1,520,3,520,10576, +8,520,1,521,1,521,3,521,10580,8,521,1,521,1,521,1,521,1,521,1,521,3,521, +10587,8,521,1,521,1,521,1,521,3,521,10592,8,521,1,522,1,522,1,522,1,522, +3,522,10598,8,522,1,522,1,522,3,522,10602,8,522,1,522,1,522,1,522,1,522, +5,522,10608,8,522,10,522,12,522,10611,9,522,1,522,1,522,3,522,10615,8,522, +1,522,1,522,1,522,1,522,3,522,10621,8,522,1,522,3,522,10624,8,522,1,522, +3,522,10627,8,522,1,522,3,522,10630,8,522,1,522,3,522,10633,8,522,1,523, +1,523,1,524,1,524,3,524,10639,8,524,1,524,1,524,1,524,1,524,4,524,10645, +8,524,11,524,12,524,10646,1,524,1,524,1,525,1,525,1,525,1,525,1,525,1,525, +1,525,3,525,10658,8,525,1,526,1,526,3,526,10662,8,526,1,526,1,526,3,526, +10666,8,526,1,526,1,526,1,526,5,526,10671,8,526,10,526,12,526,10674,9,526, +1,526,3,526,10677,8,526,1,526,1,526,1,526,3,526,10682,8,526,1,527,3,527, +10685,8,527,1,527,1,527,1,527,1,527,1,527,1,528,1,528,1,528,1,528,5,528, +10696,8,528,10,528,12,528,10699,9,528,1,528,1,528,3,528,10703,8,528,1,528, +3,528,10706,8,528,1,529,4,529,10709,8,529,11,529,12,529,10710,1,530,1,530, +1,530,1,530,1,530,1,530,1,530,1,530,1,530,1,530,1,530,3,530,10724,8,530, +1,530,1,530,3,530,10728,8,530,1,531,1,531,3,531,10732,8,531,1,532,1,532, +1,532,1,532,1,532,1,532,1,532,3,532,10741,8,532,1,533,1,533,1,533,3,533, +10746,8,533,1,533,1,533,1,533,1,533,1,533,1,533,3,533,10754,8,533,3,533, +10756,8,533,1,534,1,534,1,534,1,534,1,535,1,535,1,535,1,535,1,535,1,535, +1,535,3,535,10769,8,535,1,536,1,536,1,536,3,536,10774,8,536,1,536,1,536, +1,536,1,536,1,536,1,536,3,536,10782,8,536,3,536,10784,8,536,1,537,1,537, +1,537,1,537,1,537,1,537,1,538,1,538,1,539,1,539,1,539,1,539,1,539,1,539, +1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539, +1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,3,539,10820,8,539,1,539, +1,539,3,539,10824,8,539,1,540,1,540,1,540,1,541,1,541,1,541,1,542,1,542, +3,542,10834,8,542,1,542,1,542,3,542,10838,8,542,1,542,1,542,3,542,10842, +8,542,1,542,3,542,10845,8,542,1,542,1,542,1,542,3,542,10850,8,542,1,542, +3,542,10853,8,542,1,543,1,543,1,543,3,543,10858,8,543,1,543,1,543,1,543, +1,543,5,543,10864,8,543,10,543,12,543,10867,9,543,1,544,1,544,1,544,1,544, +3,544,10873,8,544,1,544,1,544,1,544,1,544,1,544,1,544,1,545,1,545,1,546, +1,546,3,546,10885,8,546,1,546,1,546,1,546,1,547,1,547,1,547,1,547,1,547, +5,547,10895,8,547,10,547,12,547,10898,9,547,1,547,1,547,3,547,10902,8,547, +1,548,1,548,1,548,1,548,5,548,10908,8,548,10,548,12,548,10911,9,548,1,548, +1,548,1,549,1,549,1,550,1,550,1,550,1,550,1,550,1,550,1,550,3,550,10924, +8,550,1,550,1,550,1,550,3,550,10929,8,550,1,551,1,551,1,551,1,551,1,551, +1,551,1,551,1,551,1,551,3,551,10940,8,551,1,551,1,551,3,551,10944,8,551, +1,551,1,551,3,551,10948,8,551,3,551,10950,8,551,1,552,1,552,1,553,1,553, +1,553,1,553,1,553,1,553,3,553,10960,8,553,1,554,1,554,1,554,1,554,1,554, +1,554,1,554,1,554,3,554,10970,8,554,1,555,1,555,1,555,1,555,1,555,1,555, +1,555,5,555,10979,8,555,10,555,12,555,10982,9,555,1,555,1,555,1,555,1,555, +1,555,1,555,1,555,1,555,1,555,1,555,1,555,5,555,10995,8,555,10,555,12,555, +10998,9,555,1,555,1,555,3,555,11002,8,555,3,555,11004,8,555,1,555,1,555, +1,555,3,555,11009,8,555,1,555,1,555,1,555,1,555,1,555,3,555,11016,8,555, +1,555,1,555,1,555,5,555,11021,8,555,10,555,12,555,11024,9,555,1,555,1,555, +1,556,1,556,1,556,1,556,1,556,1,556,1,556,1,556,1,556,3,556,11037,8,556, +1,556,1,556,1,556,1,556,1,556,3,556,11044,8,556,1,556,1,556,1,556,5,556, +11049,8,556,10,556,12,556,11052,9,556,1,556,1,556,1,557,1,557,1,557,1,557, +1,557,1,557,1,557,5,557,11063,8,557,10,557,12,557,11066,9,557,1,557,1,557, +1,557,3,557,11071,8,557,1,558,1,558,1,558,3,558,11076,8,558,1,558,3,558, +11079,8,558,1,558,1,558,1,558,3,558,11084,8,558,1,558,3,558,11087,8,558, +5,558,11089,8,558,10,558,12,558,11092,9,558,1,558,1,558,1,559,1,559,1,559, +1,559,1,559,1,559,1,559,1,559,5,559,11104,8,559,10,559,12,559,11107,9,559, +1,559,1,559,3,559,11111,8,559,1,559,1,559,3,559,11115,8,559,1,559,1,559, +1,559,1,559,1,559,1,559,1,559,5,559,11124,8,559,10,559,12,559,11127,9,559, +1,559,1,559,3,559,11131,8,559,1,560,1,560,1,561,1,561,1,561,1,561,1,561, +1,561,1,561,5,561,11142,8,561,10,561,12,561,11145,9,561,1,561,1,561,1,561, +1,561,1,561,1,561,1,561,1,561,1,561,1,561,1,561,5,561,11158,8,561,10,561, +12,561,11161,9,561,1,561,1,561,3,561,11165,8,561,3,561,11167,8,561,1,561, +1,561,1,561,3,561,11172,8,561,1,561,1,561,1,561,1,561,5,561,11178,8,561, +10,561,12,561,11181,9,561,1,561,1,561,1,562,1,562,1,562,1,562,1,562,1,562, +1,562,1,562,1,562,3,562,11194,8,562,1,562,1,562,1,562,1,562,5,562,11200, +8,562,10,562,12,562,11203,9,562,1,562,1,562,1,563,1,563,1,563,1,563,1,563, +1,563,4,563,11213,8,563,11,563,12,563,11214,1,563,1,563,1,563,1,563,3,563, +11221,8,563,1,563,1,563,3,563,11225,8,563,1,564,1,564,1,564,1,564,1,564, +1,564,1,564,1,564,1,564,1,564,5,564,11237,8,564,10,564,12,564,11240,9,564, +1,564,1,564,3,564,11244,8,564,1,565,1,565,3,565,11248,8,565,1,565,1,565, +1,566,1,566,1,566,1,566,1,566,1,566,1,566,1,566,5,566,11260,8,566,10,566, +12,566,11263,9,566,3,566,11265,8,566,1,567,1,567,3,567,11269,8,567,1,567, +3,567,11272,8,567,1,567,1,567,1,567,1,567,1,567,5,567,11279,8,567,10,567, +12,567,11282,9,567,1,567,1,567,1,567,5,567,11287,8,567,10,567,12,567,11290, +9,567,1,567,1,567,1,567,5,567,11295,8,567,10,567,12,567,11298,9,567,3,567, +11300,8,567,1,567,1,567,1,567,3,567,11305,8,567,3,567,11307,8,567,1,568, +1,568,3,568,11311,8,568,1,568,3,568,11314,8,568,1,568,1,568,1,568,1,568, +1,568,5,568,11321,8,568,10,568,12,568,11324,9,568,1,568,1,568,1,568,5,568, +11329,8,568,10,568,12,568,11332,9,568,1,568,1,568,1,568,5,568,11337,8,568, +10,568,12,568,11340,9,568,3,568,11342,8,568,1,568,1,568,1,568,3,568,11347, +8,568,3,568,11349,8,568,1,569,1,569,1,569,1,569,1,569,1,569,5,569,11357, +8,569,10,569,12,569,11360,9,569,1,569,1,569,1,569,5,569,11365,8,569,10,569, +12,569,11368,9,569,1,569,1,569,1,569,5,569,11373,8,569,10,569,12,569,11376, +9,569,3,569,11378,8,569,1,569,1,569,1,569,3,569,11383,8,569,1,570,1,570, +1,571,1,571,1,571,1,571,1,571,1,571,1,571,5,571,11394,8,571,10,571,12,571, +11397,9,571,1,571,1,571,3,571,11401,8,571,1,572,1,572,1,572,1,572,1,572, +1,572,1,572,3,572,11410,8,572,1,573,1,573,1,573,1,573,1,573,1,573,1,573, +5,573,11419,8,573,10,573,12,573,11422,9,573,1,573,1,573,1,573,1,573,1,573, +1,573,1,573,1,573,1,573,5,573,11433,8,573,10,573,12,573,11436,9,573,1,573, +1,573,3,573,11440,8,573,1,573,3,573,11443,8,573,1,574,1,574,1,575,1,575, +3,575,11449,8,575,1,575,1,575,3,575,11453,8,575,1,576,1,576,3,576,11457, +8,576,1,576,1,576,3,576,11461,8,576,1,577,1,577,3,577,11465,8,577,1,577, +3,577,11468,8,577,1,578,1,578,1,578,1,578,1,578,1,578,1,578,1,578,5,578, +11478,8,578,10,578,12,578,11481,9,578,1,578,1,578,3,578,11485,8,578,1,579, +1,579,1,579,1,579,1,579,1,579,1,579,1,580,1,580,1,580,5,580,11497,8,580, +10,580,12,580,11500,9,580,1,580,1,580,1,580,1,580,1,580,5,580,11507,8,580, +10,580,12,580,11510,9,580,3,580,11512,8,580,1,581,1,581,1,581,1,581,1,581, +5,581,11519,8,581,10,581,12,581,11522,9,581,1,581,1,581,1,581,1,581,1,581, +5,581,11529,8,581,10,581,12,581,11532,9,581,1,581,3,581,11535,8,581,1,581, +1,581,1,582,3,582,11540,8,582,1,582,3,582,11543,8,582,1,582,3,582,11546, +8,582,1,582,3,582,11549,8,582,1,582,3,582,11552,8,582,1,582,1,582,3,582, +11556,8,582,1,582,3,582,11559,8,582,1,582,3,582,11562,8,582,1,582,1,582, +3,582,11566,8,582,3,582,11568,8,582,1,582,1,582,1,582,5,582,11573,8,582, +10,582,12,582,11576,9,582,1,583,1,583,1,583,1,583,1,583,3,583,11583,8,583, +1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,3,583,11594,8,583, +1,583,1,583,1,583,4,583,11599,8,583,11,583,12,583,11600,1,584,1,584,1,584, +1,584,1,584,1,584,1,584,3,584,11610,8,584,1,584,1,584,1,584,1,584,1,584, +1,584,3,584,11618,8,584,1,584,1,584,1,584,1,584,1,584,3,584,11625,8,584, +1,585,1,585,3,585,11629,8,585,1,586,1,586,1,586,1,586,1,586,1,586,3,586, +11637,8,586,1,586,1,586,1,586,1,586,3,586,11643,8,586,3,586,11645,8,586, +1,586,1,586,1,586,1,586,3,586,11651,8,586,1,586,1,586,1,586,1,586,1,586, +1,586,3,586,11659,8,586,3,586,11661,8,586,1,586,3,586,11664,8,586,1,586, +1,586,1,586,3,586,11669,8,586,1,586,3,586,11672,8,586,1,587,4,587,11675, +8,587,11,587,12,587,11676,1,587,1,587,3,587,11681,8,587,1,587,1,587,3,587, +11685,8,587,1,587,5,587,11688,8,587,10,587,12,587,11691,9,587,3,587,11693, +8,587,1,588,1,588,1,588,1,588,4,588,11699,8,588,11,588,12,588,11700,1,589, +1,589,1,589,1,589,1,589,3,589,11708,8,589,3,589,11710,8,589,1,589,1,589, +3,589,11714,8,589,1,590,1,590,1,590,1,591,1,591,1,591,1,591,1,591,1,591, +1,591,3,591,11726,8,591,3,591,11728,8,591,1,591,1,591,1,591,1,591,1,591, +1,591,3,591,11736,8,591,3,591,11738,8,591,1,592,1,592,3,592,11742,8,592, +1,592,1,592,3,592,11746,8,592,1,593,1,593,3,593,11750,8,593,1,593,1,593, +3,593,11754,8,593,1,593,1,593,1,593,1,593,1,594,1,594,1,594,1,594,1,594, +1,594,1,594,1,594,1,594,1,594,4,594,11770,8,594,11,594,12,594,11771,1,595, +1,595,1,595,1,595,1,595,1,595,1,595,1,595,1,595,1,595,1,595,1,595,1,595, +1,595,1,595,1,595,1,595,1,595,1,595,1,595,3,595,11794,8,595,1,595,1,595, +1,595,1,595,1,595,1,595,1,595,4,595,11803,8,595,11,595,12,595,11804,1,595, +1,595,1,596,1,596,1,596,1,596,1,597,1,597,1,597,1,597,3,597,11817,8,597, +1,597,3,597,11820,8,597,1,597,1,597,4,597,11824,8,597,11,597,12,597,11825, +1,598,1,598,1,598,1,598,1,598,1,598,1,598,1,598,3,598,11836,8,598,1,598, +1,598,1,598,3,598,11841,8,598,1,598,3,598,11844,8,598,1,598,1,598,3,598, +11848,8,598,1,598,1,598,1,598,1,598,1,598,1,598,3,598,11856,8,598,1,598, +1,598,1,598,1,598,1,598,1,598,5,598,11864,8,598,10,598,12,598,11867,9,598, +1,598,1,598,3,598,11871,8,598,1,599,1,599,1,599,1,599,1,599,1,599,1,599, +1,599,1,599,1,599,3,599,11883,8,599,1,600,1,600,1,600,3,600,11888,8,600, +1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,3,601,11900, +8,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,3,601,11909,8,601,1,602, +1,602,1,602,1,602,3,602,11915,8,602,1,602,1,602,3,602,11919,8,602,1,602, +1,602,1,602,3,602,11924,8,602,1,602,3,602,11927,8,602,1,603,1,603,1,603, +1,603,1,603,1,603,3,603,11935,8,603,1,603,1,603,3,603,11939,8,603,1,604, +1,604,1,605,1,605,1,605,3,605,11946,8,605,1,605,1,605,1,605,1,605,1,605, +3,605,11953,8,605,1,605,3,605,11956,8,605,1,605,1,605,1,606,1,606,1,606, +1,607,3,607,11964,8,607,1,607,3,607,11967,8,607,1,607,3,607,11970,8,607, +1,608,1,608,1,608,3,608,11975,8,608,1,608,1,608,1,608,3,608,11980,8,608, +1,608,1,608,1,608,1,608,3,608,11986,8,608,3,608,11988,8,608,1,608,3,608, +11991,8,608,1,609,1,609,1,610,1,610,1,610,3,610,11998,8,610,1,610,1,610, +1,610,1,610,1,610,1,610,1,610,4,610,12007,8,610,11,610,12,610,12008,1,610, +1,610,1,610,1,610,1,610,3,610,12016,8,610,3,610,12018,8,610,1,610,1,610, +1,610,1,610,1,610,5,610,12025,8,610,10,610,12,610,12028,9,610,1,610,1,610, +3,610,12032,8,610,1,611,1,611,1,611,1,611,1,611,1,611,1,611,1,611,1,611, +1,611,5,611,12044,8,611,10,611,12,611,12047,9,611,1,611,1,611,1,611,1,611, +1,611,1,611,3,611,12055,8,611,1,612,1,612,1,612,1,612,1,612,1,612,1,612, +1,612,1,612,3,612,12066,8,612,1,612,1,612,1,612,1,612,1,612,5,612,12073, +8,612,10,612,12,612,12076,9,612,1,612,1,612,1,612,1,612,1,612,1,612,1,612, +3,612,12085,8,612,1,612,1,612,1,612,1,612,1,612,1,612,3,612,12093,8,612, +1,613,1,613,3,613,12097,8,613,1,613,1,613,3,613,12101,8,613,1,613,3,613, +12104,8,613,1,614,1,614,1,614,5,614,12109,8,614,10,614,12,614,12112,9,614, +1,615,1,615,1,615,1,615,1,615,5,615,12119,8,615,10,615,12,615,12122,9,615, +1,616,3,616,12125,8,616,1,616,1,616,3,616,12129,8,616,1,616,3,616,12132, +8,616,1,616,3,616,12135,8,616,1,616,1,616,1,616,3,616,12140,8,616,1,616, +3,616,12143,8,616,1,616,1,616,1,617,3,617,12148,8,617,1,617,1,617,3,617, +12152,8,617,1,617,3,617,12155,8,617,1,617,3,617,12158,8,617,1,617,1,617, +1,617,1,617,1,617,3,617,12165,8,617,1,617,1,617,1,617,1,617,1,617,3,617, +12172,8,617,1,617,3,617,12175,8,617,3,617,12177,8,617,1,617,1,617,1,617, +3,617,12182,8,617,1,617,1,617,3,617,12186,8,617,1,617,3,617,12189,8,617, +1,617,3,617,12192,8,617,1,617,1,617,1,617,3,617,12197,8,617,1,617,3,617, +12200,8,617,1,617,3,617,12203,8,617,1,617,1,617,1,617,3,617,12208,8,617, +1,617,1,617,3,617,12212,8,617,1,617,1,617,1,617,3,617,12217,8,617,1,617, +3,617,12220,8,617,1,617,3,617,12223,8,617,1,617,3,617,12226,8,617,1,617, +1,617,1,617,1,617,3,617,12232,8,617,1,617,1,617,3,617,12236,8,617,1,618, +1,618,1,618,1,618,1,618,3,618,12243,8,618,1,618,1,618,1,618,1,618,3,618, +12249,8,618,1,618,3,618,12252,8,618,1,618,1,618,1,618,1,618,1,618,3,618, +12259,8,618,3,618,12261,8,618,3,618,12263,8,618,1,619,1,619,1,620,3,620, +12268,8,620,1,620,1,620,1,620,1,620,3,620,12274,8,620,1,620,1,620,3,620, +12278,8,620,1,620,1,620,1,620,1,620,3,620,12284,8,620,1,621,1,621,1,621, +1,622,1,622,1,622,1,622,1,622,1,622,3,622,12295,8,622,1,622,1,622,1,622, +1,622,3,622,12301,8,622,1,622,1,622,1,622,5,622,12306,8,622,10,622,12,622, +12309,9,622,1,623,1,623,1,623,1,624,1,624,1,624,1,624,1,624,1,624,1,624, +1,624,3,624,12322,8,624,1,624,1,624,3,624,12326,8,624,1,624,1,624,3,624, +12330,8,624,1,624,1,624,1,624,5,624,12335,8,624,10,624,12,624,12338,9,624, +1,624,3,624,12341,8,624,3,624,12343,8,624,1,624,5,624,12346,8,624,10,624, +12,624,12349,9,624,1,624,4,624,12352,8,624,11,624,12,624,12353,3,624,12356, +8,624,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625, +1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625, +1,625,3,625,12382,8,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625, +1,625,1,625,1,625,3,625,12395,8,625,1,626,1,626,1,626,3,626,12400,8,626, +1,626,3,626,12403,8,626,1,627,1,627,3,627,12407,8,627,1,627,1,627,1,627, +3,627,12412,8,627,1,627,3,627,12415,8,627,1,627,3,627,12418,8,627,1,627, +1,627,1,627,1,627,1,627,3,627,12425,8,627,1,627,1,627,1,627,1,627,1,627, +3,627,12432,8,627,1,627,1,627,1,627,1,627,1,627,1,627,3,627,12440,8,627, +1,627,1,627,1,627,1,627,3,627,12446,8,627,1,627,1,627,1,627,1,627,1,627, +3,627,12453,8,627,1,627,3,627,12456,8,627,1,627,3,627,12459,8,627,1,627, +3,627,12462,8,627,1,627,3,627,12465,8,627,1,628,1,628,1,628,1,628,1,628, +3,628,12472,8,628,1,628,1,628,1,628,1,628,3,628,12478,8,628,1,628,3,628, +12481,8,628,1,628,1,628,1,628,1,628,1,628,1,628,3,628,12489,8,628,1,628, +1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628, +1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628, +1,628,1,628,1,628,1,628,1,628,1,628,1,628,3,628,12523,8,628,1,629,1,629, +1,629,5,629,12528,8,629,10,629,12,629,12531,9,629,1,629,1,629,1,629,1,629, +1,629,1,629,1,629,5,629,12540,8,629,10,629,12,629,12543,9,629,1,629,1,629, +1,629,1,629,1,629,1,629,3,629,12551,8,629,1,629,1,629,1,629,5,629,12556, +8,629,10,629,12,629,12559,9,629,1,629,1,629,1,629,1,629,1,629,1,629,1,629, +1,629,1,629,1,629,1,629,1,629,3,629,12573,8,629,1,629,1,629,1,629,1,629, +1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,629,3,629,12587,8,629,1,629, +1,629,1,629,1,629,1,629,1,629,1,629,3,629,12596,8,629,1,629,1,629,1,629, +1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,629,5,629,12610,8,629, +10,629,12,629,12613,9,629,3,629,12615,8,629,3,629,12617,8,629,1,629,3,629, +12620,8,629,1,630,1,630,1,630,1,630,5,630,12626,8,630,10,630,12,630,12629, +9,630,1,630,1,630,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,631, +5,631,12642,8,631,10,631,12,631,12645,9,631,1,631,1,631,1,631,1,631,1,631, +1,631,5,631,12653,8,631,10,631,12,631,12656,9,631,1,631,1,631,3,631,12660, +8,631,1,632,1,632,1,632,1,632,1,632,1,632,3,632,12668,8,632,1,632,1,632, +3,632,12672,8,632,1,632,1,632,1,632,3,632,12677,8,632,1,633,3,633,12680, +8,633,1,633,1,633,1,633,1,634,1,634,1,634,3,634,12688,8,634,1,634,1,634, +1,634,3,634,12693,8,634,1,635,1,635,3,635,12697,8,635,1,636,1,636,1,636, +1,636,1,636,3,636,12704,8,636,1,636,1,636,1,636,1,636,1,636,3,636,12711, +8,636,5,636,12713,8,636,10,636,12,636,12716,9,636,1,636,1,636,1,636,1,636, +1,636,1,636,3,636,12724,8,636,1,636,1,636,1,636,1,636,1,636,1,636,3,636, +12732,8,636,5,636,12734,8,636,10,636,12,636,12737,9,636,3,636,12739,8,636, +1,637,1,637,1,637,1,637,1,637,1,637,3,637,12747,8,637,1,637,1,637,1,637, +1,637,3,637,12753,8,637,5,637,12755,8,637,10,637,12,637,12758,9,637,1,637, +1,637,3,637,12762,8,637,1,638,1,638,1,638,3,638,12767,8,638,1,638,1,638, +1,638,1,638,1,638,3,638,12774,8,638,1,638,1,638,3,638,12778,8,638,4,638, +12780,8,638,11,638,12,638,12781,1,638,1,638,1,638,1,639,1,639,1,639,1,639, +1,639,1,639,1,639,1,639,1,639,4,639,12796,8,639,11,639,12,639,12797,1,639, +3,639,12801,8,639,1,640,1,640,1,640,1,640,3,640,12807,8,640,1,641,1,641, +1,641,3,641,12812,8,641,1,641,3,641,12815,8,641,1,641,3,641,12818,8,641, +1,642,3,642,12821,8,642,1,642,1,642,1,643,1,643,3,643,12827,8,643,1,643, +1,643,1,643,1,643,1,643,1,644,1,644,1,644,1,644,1,644,1,644,1,644,3,644, +12841,8,644,3,644,12843,8,644,1,644,1,644,3,644,12847,8,644,1,644,3,644, +12850,8,644,1,644,3,644,12853,8,644,1,644,3,644,12856,8,644,1,645,1,645, +1,645,1,645,1,645,3,645,12863,8,645,1,645,1,645,3,645,12867,8,645,1,645, +1,645,3,645,12871,8,645,1,645,3,645,12874,8,645,1,645,1,645,3,645,12878, +8,645,1,645,3,645,12881,8,645,1,646,1,646,1,646,1,646,1,646,3,646,12888, +8,646,1,646,1,646,3,646,12892,8,646,3,646,12894,8,646,1,646,3,646,12897, +8,646,1,647,1,647,1,647,1,647,1,647,3,647,12904,8,647,1,648,1,648,1,648, +1,648,3,648,12910,8,648,1,648,1,648,3,648,12914,8,648,1,649,1,649,1,649, +1,649,1,649,3,649,12921,8,649,1,649,1,649,3,649,12925,8,649,1,650,1,650, +1,650,1,650,1,650,1,650,1,650,1,651,1,651,1,652,1,652,1,653,1,653,3,653, +12940,8,653,1,653,1,653,1,653,1,653,3,653,12946,8,653,1,653,1,653,1,653, +1,654,1,654,1,654,3,654,12954,8,654,1,654,1,654,1,654,1,654,1,654,1,654, +1,654,3,654,12963,8,654,1,654,1,654,1,654,3,654,12968,8,654,1,654,1,654, +1,654,3,654,12973,8,654,1,654,1,654,1,654,1,654,3,654,12979,8,654,1,654, +1,654,1,654,1,654,1,654,3,654,12986,8,654,1,654,1,654,1,654,1,654,1,654, +3,654,12993,8,654,1,654,3,654,12996,8,654,3,654,12998,8,654,1,655,1,655, +3,655,13002,8,655,1,655,1,655,1,655,1,655,3,655,13008,8,655,1,655,1,655, +3,655,13012,8,655,1,656,1,656,1,656,1,656,3,656,13018,8,656,1,656,1,656, +1,656,1,656,3,656,13024,8,656,1,656,1,656,3,656,13028,8,656,1,656,3,656, +13031,8,656,1,657,1,657,1,658,1,658,1,659,1,659,1,659,1,659,1,659,1,659, +1,659,1,660,1,660,1,660,1,660,1,660,1,660,1,660,1,660,1,661,1,661,1,661, +1,661,1,661,1,661,3,661,13058,8,661,1,661,1,661,1,661,1,661,1,661,1,661, +1,661,3,661,13067,8,661,1,662,1,662,1,662,1,662,1,662,1,662,1,662,3,662, +13076,8,662,1,662,1,662,1,662,1,662,1,662,1,662,5,662,13084,8,662,10,662, +12,662,13087,9,662,1,662,1,662,1,663,1,663,1,663,3,663,13094,8,663,1,663, +1,663,1,663,3,663,13099,8,663,1,663,1,663,1,664,1,664,1,664,5,664,13106, +8,664,10,664,12,664,13109,9,664,1,665,1,665,1,665,1,665,1,665,1,665,1,665, +3,665,13118,8,665,1,665,1,665,1,665,1,665,1,665,1,665,5,665,13126,8,665, +10,665,12,665,13129,9,665,1,665,1,665,1,666,1,666,1,666,1,666,1,666,1,666, +3,666,13139,8,666,1,666,1,666,1,666,1,666,1,666,3,666,13146,8,666,1,667, +1,667,1,667,1,667,1,667,3,667,13153,8,667,1,667,3,667,13156,8,667,1,667, +3,667,13159,8,667,1,667,3,667,13162,8,667,1,667,1,667,3,667,13166,8,667, +3,667,13168,8,667,1,667,3,667,13171,8,667,1,667,3,667,13174,8,667,1,667, +3,667,13177,8,667,1,667,3,667,13180,8,667,1,667,1,667,3,667,13184,8,667, +3,667,13186,8,667,1,667,1,667,1,667,1,667,1,667,1,667,3,667,13194,8,667, +3,667,13196,8,667,1,668,1,668,1,668,1,668,1,668,1,668,1,668,1,668,1,668, +4,668,13207,8,668,11,668,12,668,13208,1,668,3,668,13212,8,668,1,669,1,669, +1,669,1,669,1,669,1,669,3,669,13220,8,669,1,669,1,669,1,670,1,670,1,670, +1,670,1,670,1,670,3,670,13230,8,670,1,670,1,670,1,671,1,671,1,671,1,671, +1,671,1,672,1,672,1,672,1,672,1,672,1,673,1,673,1,673,1,673,1,673,1,673, +1,673,3,673,13251,8,673,3,673,13253,8,673,1,674,1,674,1,674,1,674,1,675, +1,675,1,675,1,675,1,676,1,676,1,676,1,676,3,676,13267,8,676,1,676,1,676, +3,676,13271,8,676,1,676,3,676,13274,8,676,1,677,1,677,1,677,1,677,3,677, +13280,8,677,1,678,1,678,1,678,1,678,1,678,3,678,13287,8,678,1,679,1,679, +1,680,1,680,1,681,1,681,1,681,1,681,1,681,1,681,1,681,1,681,1,681,1,681, +1,681,1,681,1,681,1,681,1,681,1,681,1,681,3,681,13310,8,681,1,682,3,682, +13313,8,682,1,682,1,682,3,682,13317,8,682,1,683,1,683,1,683,3,683,13322, +8,683,1,683,1,683,1,683,3,683,13327,8,683,1,683,3,683,13330,8,683,1,683, +3,683,13333,8,683,1,683,1,683,1,683,3,683,13338,8,683,1,684,1,684,1,685, +1,685,1,686,1,686,1,686,1,686,1,686,3,686,13349,8,686,1,687,1,687,1,688, +1,688,3,688,13355,8,688,1,688,1,688,3,688,13359,8,688,1,688,1,688,1,688, +1,688,3,688,13365,8,688,1,688,1,688,1,688,1,688,1,688,4,688,13372,8,688, +11,688,12,688,13373,3,688,13376,8,688,1,688,1,688,3,688,13380,8,688,1,688, +3,688,13383,8,688,1,689,3,689,13386,8,689,1,689,1,689,1,689,1,689,1,689, +1,689,1,689,1,689,3,689,13396,8,689,1,689,1,689,1,689,1,689,1,689,1,689, +4,689,13404,8,689,11,689,12,689,13405,3,689,13408,8,689,1,690,1,690,1,690, +1,690,5,690,13414,8,690,10,690,12,690,13417,9,690,1,690,1,690,1,690,1,690, +1,690,1,690,5,690,13425,8,690,10,690,12,690,13428,9,690,1,690,3,690,13431, +8,690,1,691,1,691,1,691,1,691,1,691,1,691,5,691,13439,8,691,10,691,12,691, +13442,9,691,1,691,1,691,1,691,1,691,1,691,1,691,5,691,13450,8,691,10,691, +12,691,13453,9,691,3,691,13455,8,691,1,691,1,691,1,691,3,691,13460,8,691, +1,691,1,691,1,692,1,692,1,692,1,692,1,692,1,692,1,692,1,692,1,692,1,692, +3,692,13474,8,692,1,692,1,692,1,692,1,692,1,692,1,692,1,692,4,692,13483, +8,692,11,692,12,692,13484,1,692,1,692,3,692,13489,8,692,1,692,1,692,1,692, +1,692,1,692,1,692,3,692,13497,8,692,3,692,13499,8,692,1,693,1,693,1,694, +1,694,1,694,1,694,1,694,5,694,13508,8,694,10,694,12,694,13511,9,694,1,694, +1,694,1,694,1,694,1,694,1,694,1,694,3,694,13520,8,694,1,695,1,695,1,695, +1,695,3,695,13526,8,695,1,695,1,695,1,695,3,695,13531,8,695,5,695,13533, +8,695,10,695,12,695,13536,9,695,1,695,1,695,3,695,13540,8,695,1,696,1,696, +1,696,3,696,13545,8,696,1,696,1,696,1,696,3,696,13550,8,696,5,696,13552, +8,696,10,696,12,696,13555,9,696,1,696,1,696,1,696,1,696,3,696,13561,8,696, +1,696,1,696,1,696,1,696,1,696,3,696,13568,8,696,1,697,1,697,1,697,3,697, +13573,8,697,1,697,1,697,1,697,3,697,13578,8,697,5,697,13580,8,697,10,697, +12,697,13583,9,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,3,697, +13593,8,697,1,698,1,698,1,698,1,698,3,698,13599,8,698,1,698,1,698,1,698, +3,698,13604,8,698,5,698,13606,8,698,10,698,12,698,13609,9,698,1,698,1,698, +3,698,13613,8,698,1,698,3,698,13616,8,698,1,698,3,698,13619,8,698,1,699, +1,699,3,699,13623,8,699,1,699,3,699,13626,8,699,1,699,3,699,13629,8,699, +1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,3,699,13641, +8,699,1,699,1,699,1,699,1,699,1,699,5,699,13648,8,699,10,699,12,699,13651, +9,699,1,699,1,699,1,699,1,699,1,699,3,699,13658,8,699,1,699,1,699,1,699, +1,699,5,699,13664,8,699,10,699,12,699,13667,9,699,1,699,1,699,3,699,13671, +8,699,1,699,1,699,1,699,1,699,3,699,13677,8,699,1,700,1,700,3,700,13681, +8,700,1,700,1,700,1,700,1,700,1,700,3,700,13688,8,700,1,700,4,700,13691, +8,700,11,700,12,700,13692,1,700,1,700,1,700,3,700,13698,8,700,1,700,1,700, +1,700,3,700,13703,8,700,5,700,13705,8,700,10,700,12,700,13708,9,700,1,700, +1,700,1,700,1,700,5,700,13714,8,700,10,700,12,700,13717,9,700,3,700,13719, +8,700,1,701,1,701,3,701,13723,8,701,1,701,1,701,1,702,1,702,3,702,13729, +8,702,1,702,1,702,1,702,1,702,5,702,13735,8,702,10,702,12,702,13738,9,702, +1,702,1,702,1,702,1,702,5,702,13744,8,702,10,702,12,702,13747,9,702,3,702, +13749,8,702,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,704,1,704,1,704, +1,704,1,704,1,704,3,704,13764,8,704,1,705,1,705,1,706,1,706,1,706,1,706, +1,706,1,707,1,707,1,707,1,707,1,707,1,707,5,707,13779,8,707,10,707,12,707, +13782,9,707,1,707,1,707,1,707,3,707,13787,8,707,1,708,1,708,3,708,13791, +8,708,1,708,1,708,1,708,1,708,1,708,3,708,13798,8,708,1,708,1,708,1,708, +1,708,1,708,3,708,13805,8,708,1,708,3,708,13808,8,708,3,708,13810,8,708, +1,709,1,709,1,709,1,709,3,709,13816,8,709,3,709,13818,8,709,1,709,3,709, +13821,8,709,1,710,1,710,1,710,1,710,1,710,1,710,1,710,3,710,13830,8,710, +1,710,3,710,13833,8,710,1,711,1,711,3,711,13837,8,711,1,711,1,711,1,711, +1,711,3,711,13843,8,711,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,713, +1,713,1,713,3,713,13855,8,713,1,713,1,713,1,713,1,714,1,714,1,714,1,714, +1,714,3,714,13865,8,714,1,714,1,714,3,714,13869,8,714,1,714,3,714,13872, +8,714,1,714,3,714,13875,8,714,1,714,1,714,1,714,3,714,13880,8,714,1,714, +1,714,3,714,13884,8,714,1,714,1,714,3,714,13888,8,714,1,714,3,714,13891, +8,714,1,715,1,715,1,715,1,715,1,715,3,715,13898,8,715,1,715,3,715,13901, +8,715,1,715,1,715,1,715,1,715,1,715,3,715,13908,8,715,1,715,1,715,1,715, +1,715,3,715,13914,8,715,1,716,1,716,1,716,1,716,1,716,1,717,1,717,1,717, +1,717,1,717,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718, +1,718,1,718,1,718,1,718,1,718,1,718,3,718,13942,8,718,1,718,1,718,1,718, +1,718,1,718,1,718,4,718,13950,8,718,11,718,12,718,13951,1,718,1,718,1,718, +1,718,1,718,1,718,1,718,1,718,3,718,13962,8,718,3,718,13964,8,718,1,718, +1,718,1,718,1,718,1,718,1,718,3,718,13972,8,718,1,719,1,719,1,719,1,719, +1,719,1,720,1,720,1,720,1,720,1,721,1,721,1,721,1,722,1,722,1,723,1,723, +1,724,1,724,1,725,1,725,1,726,1,726,1,727,1,727,1,727,1,727,1,727,1,727, +1,727,3,727,14003,8,727,1,727,1,727,1,727,3,727,14008,8,727,1,728,1,728, +1,728,1,728,1,728,1,729,1,729,1,729,1,729,1,729,1,730,1,730,3,730,14022, +8,730,1,731,1,731,1,731,1,731,1,731,1,732,1,732,1,732,1,732,1,732,1,733, +1,733,1,733,1,733,1,733,1,733,1,734,1,734,1,734,1,734,1,735,1,735,3,735, +14046,8,735,1,735,3,735,14049,8,735,1,735,1,735,1,735,1,735,1,735,1,735, +1,735,1,735,1,735,1,735,3,735,14061,8,735,1,735,3,735,14064,8,735,1,736, +1,736,1,736,1,736,3,736,14070,8,736,1,737,1,737,1,737,1,737,1,737,1,737, +1,737,1,738,1,738,1,738,1,738,1,738,1,738,1,738,5,738,14086,8,738,10,738, +12,738,14089,9,738,1,739,1,739,1,739,1,739,1,739,1,739,1,739,1,739,1,739, +1,739,1,739,1,739,1,739,3,739,14104,8,739,1,739,1,739,1,739,1,739,1,739, +1,739,1,739,1,739,1,739,1,739,1,739,3,739,14117,8,739,1,739,1,739,1,739, +1,739,1,739,1,739,1,739,5,739,14126,8,739,10,739,12,739,14129,9,739,1,739, +4,739,14132,8,739,11,739,12,739,14133,1,740,1,740,1,740,1,740,5,740,14140, +8,740,10,740,12,740,14143,9,740,1,740,1,740,1,740,1,740,1,740,1,740,3,740, +14151,8,740,1,741,1,741,3,741,14155,8,741,1,741,1,741,1,742,1,742,1,742, +1,742,3,742,14163,8,742,1,742,1,742,1,742,1,742,5,742,14169,8,742,10,742, +12,742,14172,9,742,1,742,1,742,1,742,3,742,14177,8,742,1,743,1,743,1,743, +1,743,1,743,3,743,14184,8,743,1,743,1,743,3,743,14188,8,743,1,743,1,743, +3,743,14192,8,743,3,743,14194,8,743,1,743,3,743,14197,8,743,1,744,1,744, +1,744,1,744,1,744,1,744,5,744,14205,8,744,10,744,12,744,14208,9,744,1,744, +1,744,1,744,3,744,14213,8,744,1,745,1,745,1,745,3,745,14218,8,745,1,746, +1,746,1,746,1,746,4,746,14224,8,746,11,746,12,746,14225,1,747,1,747,1,747, +1,747,1,748,1,748,1,748,1,748,1,748,3,748,14237,8,748,1,748,3,748,14240, +8,748,1,749,3,749,14243,8,749,1,749,1,749,1,749,1,749,1,749,1,749,1,749, +1,749,3,749,14253,8,749,1,749,1,749,1,749,1,749,1,749,5,749,14260,8,749, +10,749,12,749,14263,9,749,3,749,14265,8,749,1,749,3,749,14268,8,749,1,750, +3,750,14271,8,750,1,750,1,750,1,750,1,750,1,750,1,750,1,750,5,750,14280, +8,750,10,750,12,750,14283,9,750,3,750,14285,8,750,1,751,1,751,1,751,1,751, +3,751,14291,8,751,1,751,3,751,14294,8,751,1,752,1,752,3,752,14298,8,752, +1,752,3,752,14301,8,752,1,752,1,752,1,752,1,752,1,752,1,752,1,752,1,752, +1,752,1,752,1,752,3,752,14314,8,752,3,752,14316,8,752,1,752,5,752,14319, +8,752,10,752,12,752,14322,9,752,1,752,1,752,3,752,14326,8,752,1,753,1,753, +3,753,14330,8,753,1,753,1,753,1,753,1,753,1,754,1,754,1,754,1,754,1,754, +1,754,1,755,1,755,1,755,1,755,1,755,1,755,1,755,1,755,1,755,1,755,1,755, +3,755,14353,8,755,1,755,1,755,1,755,1,755,1,755,1,755,1,755,1,755,1,755, +1,755,1,755,1,755,1,755,1,755,3,755,14369,8,755,1,756,1,756,1,756,3,756, +14374,8,756,1,756,1,756,3,756,14378,8,756,1,756,1,756,3,756,14382,8,756, +1,756,1,756,3,756,14386,8,756,1,756,3,756,14389,8,756,1,756,1,756,1,756, +3,756,14394,8,756,3,756,14396,8,756,1,757,1,757,1,757,1,757,1,757,1,757, +1,757,1,757,1,757,1,757,5,757,14408,8,757,10,757,12,757,14411,9,757,1,757, +1,757,3,757,14415,8,757,1,758,1,758,1,758,1,758,1,758,3,758,14422,8,758, +1,759,1,759,1,759,1,759,1,759,1,759,1,759,1,759,1,759,3,759,14433,8,759, +1,759,1,759,1,759,1,759,3,759,14439,8,759,3,759,14441,8,759,3,759,14443, +8,759,1,760,1,760,1,760,1,760,5,760,14449,8,760,10,760,12,760,14452,9,760, +1,760,1,760,1,760,1,760,1,760,1,760,3,760,14460,8,760,1,760,1,760,1,760, +1,760,1,760,1,760,3,760,14468,8,760,4,760,14470,8,760,11,760,12,760,14471, +3,760,14474,8,760,1,761,3,761,14477,8,761,1,761,1,761,1,761,1,761,1,762, +1,762,1,762,1,762,1,762,1,762,1,762,1,762,1,762,1,762,1,762,1,762,3,762, +14495,8,762,1,763,1,763,1,763,1,763,1,763,1,763,1,763,1,763,1,763,1,763, +3,763,14507,8,763,1,764,1,764,1,764,1,764,1,764,3,764,14514,8,764,1,764, +1,764,3,764,14518,8,764,1,764,3,764,14521,8,764,1,764,3,764,14524,8,764, +3,764,14526,8,764,1,765,1,765,1,765,3,765,14531,8,765,1,765,1,765,3,765, +14535,8,765,3,765,14537,8,765,1,766,1,766,1,766,1,766,1,766,1,766,1,766, +1,766,1,766,1,767,1,767,1,767,1,767,1,767,3,767,14553,8,767,1,767,1,767, +3,767,14557,8,767,1,767,3,767,14560,8,767,1,767,1,767,1,767,3,767,14565, +8,767,1,767,3,767,14568,8,767,1,767,3,767,14571,8,767,1,768,1,768,1,768, +1,768,1,768,1,768,1,768,5,768,14580,8,768,10,768,12,768,14583,9,768,1,768, +1,768,1,768,1,768,1,768,1,768,5,768,14591,8,768,10,768,12,768,14594,9,768, +1,768,1,768,1,768,1,768,1,768,1,768,1,768,5,768,14603,8,768,10,768,12,768, +14606,9,768,1,768,1,768,1,768,5,768,14611,8,768,10,768,12,768,14614,9,768, +3,768,14616,8,768,1,768,1,768,3,768,14620,8,768,1,768,1,768,1,768,3,768, +14625,8,768,1,769,1,769,1,769,3,769,14630,8,769,1,769,1,769,3,769,14634, +8,769,1,769,3,769,14637,8,769,1,769,3,769,14640,8,769,1,769,3,769,14643, +8,769,1,769,1,769,3,769,14647,8,769,3,769,14649,8,769,1,770,1,770,1,770, +1,770,1,770,1,770,1,770,1,770,3,770,14659,8,770,1,770,1,770,3,770,14663, +8,770,1,771,1,771,1,771,3,771,14668,8,771,1,771,1,771,1,771,3,771,14673, +8,771,1,772,1,772,1,772,1,772,1,772,3,772,14680,8,772,1,772,1,772,1,773, +1,773,1,773,1,773,3,773,14688,8,773,1,773,1,773,1,773,1,773,3,773,14694, +8,773,1,773,3,773,14697,8,773,3,773,14699,8,773,1,773,1,773,1,773,1,773, +1,773,1,773,1,773,5,773,14708,8,773,10,773,12,773,14711,9,773,1,774,1,774, +1,774,1,774,1,775,1,775,1,775,1,775,5,775,14721,8,775,10,775,12,775,14724, +9,775,1,775,1,775,1,775,1,775,5,775,14730,8,775,10,775,12,775,14733,9,775, +1,775,1,775,1,775,1,775,3,775,14739,8,775,1,775,1,775,1,775,5,775,14744, +8,775,10,775,12,775,14747,9,775,1,775,3,775,14750,8,775,3,775,14752,8,775, +1,776,1,776,1,776,1,776,3,776,14758,8,776,1,776,1,776,1,776,1,776,5,776, +14764,8,776,10,776,12,776,14767,9,776,1,776,1,776,1,776,1,776,3,776,14773, +8,776,1,776,1,776,1,776,5,776,14778,8,776,10,776,12,776,14781,9,776,1,776, +3,776,14784,8,776,3,776,14786,8,776,1,777,1,777,1,777,1,777,1,777,1,777, +1,777,1,777,1,777,1,777,1,777,1,777,1,777,1,777,1,777,1,777,1,777,1,777, +1,777,4,777,14807,8,777,11,777,12,777,14808,1,777,3,777,14812,8,777,1,778, +1,778,1,778,1,778,3,778,14818,8,778,1,779,1,779,1,779,1,779,3,779,14824, +8,779,1,780,1,780,1,780,1,780,1,780,1,780,4,780,14832,8,780,11,780,12,780, +14833,3,780,14836,8,780,1,781,1,781,1,781,3,781,14841,8,781,1,781,1,781, +1,781,3,781,14846,8,781,1,781,1,781,1,781,3,781,14851,8,781,5,781,14853, +8,781,10,781,12,781,14856,9,781,1,781,3,781,14859,8,781,1,782,1,782,3,782, +14863,8,782,1,783,1,783,1,783,1,783,1,784,1,784,1,784,1,784,1,784,1,784, +3,784,14875,8,784,1,785,1,785,1,785,1,785,3,785,14881,8,785,1,785,1,785, +1,785,5,785,14886,8,785,10,785,12,785,14889,9,785,1,786,1,786,3,786,14893, +8,786,1,786,1,786,5,786,14897,8,786,10,786,12,786,14900,9,786,1,787,1,787, +3,787,14904,8,787,1,787,1,787,3,787,14908,8,787,1,787,1,787,5,787,14912, +8,787,10,787,12,787,14915,9,787,1,788,1,788,3,788,14919,8,788,1,788,1,788, +1,788,1,788,1,788,5,788,14926,8,788,10,788,12,788,14929,9,788,1,788,1,788, +1,788,1,788,1,788,1,788,3,788,14937,8,788,1,788,3,788,14940,8,788,1,788, +3,788,14943,8,788,1,788,3,788,14946,8,788,1,788,1,788,3,788,14950,8,788, +1,789,1,789,1,789,1,789,1,789,1,789,1,789,1,789,3,789,14960,8,789,1,790, +1,790,1,790,1,790,1,790,3,790,14967,8,790,1,790,1,790,1,790,1,790,1,790, +4,790,14974,8,790,11,790,12,790,14975,1,791,1,791,1,792,1,792,1,792,1,792, +1,793,1,793,3,793,14986,8,793,1,793,3,793,14989,8,793,1,793,3,793,14992, +8,793,1,793,3,793,14995,8,793,1,793,1,793,5,793,14999,8,793,10,793,12,793, +15002,9,793,1,793,3,793,15005,8,793,1,794,1,794,1,794,1,794,4,794,15011, +8,794,11,794,12,794,15012,1,794,3,794,15016,8,794,1,794,3,794,15019,8,794, +1,795,1,795,1,795,3,795,15024,8,795,1,796,1,796,1,796,3,796,15029,8,796, +1,797,1,797,3,797,15033,8,797,1,797,1,797,3,797,15037,8,797,1,798,1,798, +1,798,1,798,3,798,15043,8,798,1,799,1,799,1,799,1,799,1,799,1,799,1,799, +1,799,1,800,1,800,1,801,1,801,1,801,1,801,1,801,1,801,1,802,1,802,1,803, +1,803,1,804,1,804,1,804,1,804,4,804,15069,8,804,11,804,12,804,15070,1,805, +1,805,1,805,1,805,1,805,1,805,1,805,1,805,5,805,15081,8,805,10,805,12,805, +15084,9,805,1,805,1,805,3,805,15088,8,805,1,805,1,805,1,805,5,805,15093, +8,805,10,805,12,805,15096,9,805,1,805,1,805,1,805,1,805,1,805,1,805,1,805, +5,805,15105,8,805,10,805,12,805,15108,9,805,1,805,1,805,3,805,15112,8,805, +1,805,1,805,1,805,5,805,15117,8,805,10,805,12,805,15120,9,805,1,805,1,805, +3,805,15124,8,805,1,805,1,805,1,805,1,805,1,805,3,805,15131,8,805,1,805, +1,805,3,805,15135,8,805,1,806,1,806,1,806,1,806,1,806,5,806,15142,8,806, +10,806,12,806,15145,9,806,1,806,1,806,1,806,1,806,1,806,1,806,5,806,15153, +8,806,10,806,12,806,15156,9,806,1,806,1,806,1,806,1,806,1,806,3,806,15163, +8,806,1,807,1,807,3,807,15167,8,807,1,807,1,807,1,807,3,807,15172,8,807, +1,807,3,807,15175,8,807,1,807,1,807,1,807,3,807,15180,8,807,1,807,5,807, +15183,8,807,10,807,12,807,15186,9,807,1,807,3,807,15189,8,807,1,807,3,807, +15192,8,807,1,808,1,808,1,808,1,809,1,809,1,809,3,809,15200,8,809,1,809, +1,809,1,809,1,809,1,809,3,809,15207,8,809,1,810,1,810,1,810,1,810,3,810, +15213,8,810,1,810,1,810,1,810,3,810,15218,8,810,5,810,15220,8,810,10,810, +12,810,15223,9,810,1,810,1,810,1,810,1,810,3,810,15229,8,810,3,810,15231, +8,810,1,810,3,810,15234,8,810,1,811,1,811,1,811,3,811,15239,8,811,1,811, +1,811,3,811,15243,8,811,1,812,1,812,1,812,3,812,15248,8,812,1,812,1,812, +3,812,15252,8,812,1,812,1,812,1,812,1,812,1,812,3,812,15259,8,812,1,813, +1,813,1,814,1,814,1,814,3,814,15266,8,814,1,815,1,815,1,815,1,815,3,815, +15272,8,815,1,815,3,815,15275,8,815,1,816,1,816,1,816,1,816,1,816,5,816, +15282,8,816,10,816,12,816,15285,9,816,1,816,1,816,1,816,1,816,1,816,1,816, +5,816,15293,8,816,10,816,12,816,15296,9,816,1,816,4,816,15299,8,816,11,816, +12,816,15300,1,816,1,816,1,816,1,816,1,816,1,816,1,816,1,816,1,816,5,816, +15312,8,816,10,816,12,816,15315,9,816,1,816,4,816,15318,8,816,11,816,12, +816,15319,3,816,15322,8,816,1,817,1,817,1,817,1,817,1,817,1,817,1,817,1, +817,1,817,1,818,1,818,1,818,1,818,1,818,1,818,1,818,1,818,1,818,1,818,1, +818,1,818,1,818,1,818,1,818,1,818,3,818,15349,8,818,1,818,3,818,15352,8, +818,1,818,1,818,1,818,4,818,15357,8,818,11,818,12,818,15358,1,819,1,819, +1,819,1,819,1,819,1,819,1,819,1,819,1,819,1,819,1,819,1,819,1,819,1,819, +1,819,1,819,1,819,1,819,1,819,1,819,3,819,15381,8,819,1,819,3,819,15384, +8,819,4,819,15386,8,819,11,819,12,819,15387,1,820,1,820,1,821,1,821,1,821, +3,821,15395,8,821,3,821,15397,8,821,1,822,1,822,1,822,1,822,1,822,1,822, +3,822,15405,8,822,1,823,1,823,3,823,15409,8,823,1,823,1,823,1,823,3,823, +15414,8,823,1,823,3,823,15417,8,823,1,823,3,823,15420,8,823,1,823,3,823, +15423,8,823,1,824,1,824,1,825,1,825,1,825,3,825,15430,8,825,1,825,1,825, +1,825,3,825,15435,8,825,1,825,1,825,1,826,1,826,1,826,1,826,3,826,15443, +8,826,1,826,1,826,1,826,1,826,5,826,15449,8,826,10,826,12,826,15452,9,826, +1,826,1,826,3,826,15456,8,826,1,826,4,826,15459,8,826,11,826,12,826,15460, +1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827, +1,827,1,827,4,827,15477,8,827,11,827,12,827,15478,1,827,1,827,1,827,1,827, +1,827,1,827,1,827,1,827,1,827,1,827,1,827,4,827,15492,8,827,11,827,12,827, +15493,3,827,15496,8,827,1,828,1,828,1,828,1,828,1,828,1,828,1,828,1,828, +1,828,1,828,3,828,15508,8,828,1,829,1,829,1,830,1,830,1,831,1,831,1,831, +3,831,15517,8,831,1,831,1,831,3,831,15521,8,831,3,831,15523,8,831,1,831, +3,831,15526,8,831,1,831,3,831,15529,8,831,1,831,1,831,1,831,3,831,15534, +8,831,1,831,1,831,3,831,15538,8,831,1,831,1,831,3,831,15542,8,831,1,831, +4,831,15545,8,831,11,831,12,831,15546,1,831,3,831,15550,8,831,1,831,3,831, +15553,8,831,1,832,1,832,1,833,1,833,1,833,1,833,1,833,1,833,3,833,15563, +8,833,3,833,15565,8,833,1,833,1,833,1,833,3,833,15570,8,833,1,834,4,834, +15573,8,834,11,834,12,834,15574,1,834,1,834,4,834,15579,8,834,11,834,12, +834,15580,1,834,1,834,3,834,15585,8,834,1,835,1,835,1,835,1,835,1,835,3, +835,15592,8,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1, +835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,3, +835,15615,8,835,1,836,1,836,1,836,1,836,3,836,15621,8,836,3,836,15623,8, +836,1,836,3,836,15626,8,836,1,836,3,836,15629,8,836,1,836,3,836,15632,8, +836,1,836,3,836,15635,8,836,1,836,1,836,1,836,1,836,1,836,1,836,3,836,15643, +8,836,3,836,15645,8,836,1,836,1,836,1,836,1,836,1,836,1,836,1,836,3,836, +15654,8,836,3,836,15656,8,836,1,836,5,836,15659,8,836,10,836,12,836,15662, +9,836,1,836,3,836,15665,8,836,1,837,1,837,1,837,3,837,15670,8,837,3,837, +15672,8,837,1,837,1,837,1,837,1,837,1,837,3,837,15679,8,837,1,838,1,838, +1,838,1,838,1,838,1,838,3,838,15687,8,838,3,838,15689,8,838,1,838,1,838, +1,838,1,838,1,838,5,838,15696,8,838,10,838,12,838,15699,9,838,1,838,3,838, +15702,8,838,1,839,1,839,1,839,1,839,1,839,1,840,1,840,1,840,1,840,1,840, +1,840,3,840,15715,8,840,1,841,1,841,1,841,1,841,3,841,15721,8,841,1,841, +3,841,15724,8,841,1,841,3,841,15727,8,841,1,841,1,841,1,841,1,841,1,841, +1,841,1,841,1,841,1,841,1,841,4,841,15739,8,841,11,841,12,841,15740,1,841, +1,841,3,841,15745,8,841,1,841,1,841,3,841,15749,8,841,1,841,3,841,15752, +8,841,1,842,1,842,1,843,3,843,15757,8,843,1,843,1,843,1,843,3,843,15762, +8,843,1,843,1,843,1,843,1,843,1,843,3,843,15769,8,843,1,843,1,843,1,843, +1,843,3,843,15775,8,843,1,844,1,844,3,844,15779,8,844,1,845,1,845,1,845, +1,845,3,845,15785,8,845,1,846,1,846,1,846,1,846,1,847,1,847,1,847,1,847, +1,847,5,847,15796,8,847,10,847,12,847,15799,9,847,1,847,3,847,15802,8,847, +1,847,1,847,1,847,1,847,1,847,3,847,15809,8,847,1,847,1,847,1,847,1,847, +1,847,1,847,1,847,1,847,1,847,1,847,5,847,15821,8,847,10,847,12,847,15824, +9,847,1,847,1,847,3,847,15828,8,847,1,847,1,847,3,847,15832,8,847,1,847, +1,847,1,847,1,847,1,847,1,847,1,847,4,847,15841,8,847,11,847,12,847,15842, +3,847,15845,8,847,1,848,1,848,1,849,1,849,1,850,1,850,1,850,1,850,1,850, +1,850,1,850,1,850,5,850,15859,8,850,10,850,12,850,15862,9,850,1,850,1,850, +1,850,1,850,3,850,15868,8,850,1,850,3,850,15871,8,850,1,850,1,850,3,850, +15875,8,850,1,850,3,850,15878,8,850,1,851,1,851,1,851,1,851,1,851,3,851, +15885,8,851,1,852,1,852,1,852,1,852,1,852,3,852,15892,8,852,1,853,1,853, +1,853,3,853,15897,8,853,1,853,1,853,1,853,1,853,1,853,3,853,15904,8,853, +3,853,15906,8,853,1,854,1,854,1,854,1,854,1,854,3,854,15913,8,854,1,855, +1,855,3,855,15917,8,855,1,855,1,855,1,855,1,855,4,855,15923,8,855,11,855, +12,855,15924,3,855,15927,8,855,1,855,1,855,1,856,1,856,1,856,1,857,1,857, +3,857,15936,8,857,1,858,1,858,1,858,1,858,1,858,1,859,1,859,1,859,3,859, +15946,8,859,1,859,1,859,1,859,1,859,1,859,1,859,1,859,1,859,1,859,3,859, +15957,8,859,3,859,15959,8,859,1,859,3,859,15962,8,859,1,859,1,859,3,859, +15966,8,859,1,859,3,859,15969,8,859,1,860,1,860,1,860,1,860,1,860,1,860, +1,861,1,861,1,861,1,861,1,861,5,861,15982,8,861,10,861,12,861,15985,9,861, +1,861,1,861,1,862,1,862,1,862,1,862,3,862,15993,8,862,1,862,1,862,3,862, +15997,8,862,1,862,3,862,16000,8,862,1,862,1,862,3,862,16004,8,862,1,862, +3,862,16007,8,862,3,862,16009,8,862,1,863,1,863,3,863,16013,8,863,1,863, +1,863,1,863,1,863,1,863,3,863,16020,8,863,1,864,1,864,5,864,16024,8,864, +10,864,12,864,16027,9,864,1,864,3,864,16030,8,864,1,864,3,864,16033,8,864, +1,865,1,865,1,865,1,866,4,866,16039,8,866,11,866,12,866,16040,1,867,1,867, +1,867,1,867,1,867,1,867,1,867,1,867,1,867,1,867,1,867,3,867,16054,8,867, +1,868,1,868,3,868,16058,8,868,1,868,1,868,3,868,16062,8,868,1,868,3,868, +16065,8,868,1,868,3,868,16068,8,868,1,868,1,868,1,869,1,869,1,869,1,869, +1,869,1,869,1,869,1,869,1,869,3,869,16081,8,869,1,869,1,869,3,869,16085, +8,869,1,869,1,869,1,870,1,870,1,870,1,870,1,870,1,870,5,870,16095,8,870, +10,870,12,870,16098,9,870,1,870,1,870,3,870,16102,8,870,1,870,1,870,3,870, +16106,8,870,1,870,1,870,3,870,16110,8,870,1,870,1,870,1,871,1,871,3,871, +16116,8,871,1,871,3,871,16119,8,871,1,871,3,871,16122,8,871,1,872,1,872, +1,872,1,872,1,873,1,873,1,873,1,873,1,873,1,873,1,873,1,873,1,873,1,873, +1,873,1,873,1,873,1,873,1,873,1,873,1,873,1,873,1,873,1,873,1,873,3,873, +16149,8,873,1,873,1,873,4,873,16153,8,873,11,873,12,873,16154,1,873,1,873, +1,873,1,873,1,873,1,873,1,873,3,873,16164,8,873,1,873,1,873,1,873,3,873, +16169,8,873,1,873,1,873,1,874,1,874,1,874,1,874,1,874,5,874,16178,8,874, +10,874,12,874,16181,9,874,1,874,1,874,1,875,1,875,3,875,16187,8,875,1,875, +1,875,3,875,16191,8,875,1,875,3,875,16194,8,875,1,876,1,876,1,876,1,876, +3,876,16200,8,876,1,877,1,877,1,877,1,877,1,877,1,877,1,877,3,877,16209, +8,877,1,877,1,877,1,878,1,878,1,878,1,878,1,878,3,878,16218,8,878,1,878, +3,878,16221,8,878,1,879,1,879,3,879,16225,8,879,1,879,1,879,1,879,1,880, +1,880,3,880,16232,8,880,1,880,3,880,16235,8,880,1,880,1,880,1,880,1,880, +1,880,1,880,1,880,3,880,16244,8,880,1,881,5,881,16247,8,881,10,881,12,881, +16250,9,881,1,881,1,881,1,881,1,881,1,881,4,881,16257,8,881,11,881,12,881, +16258,1,882,1,882,1,882,1,882,1,882,1,882,1,883,1,883,1,883,1,883,1,883, +1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883,1,883, +3,883,16284,8,883,1,884,1,884,3,884,16288,8,884,1,884,1,884,1,884,1,885, +1,885,3,885,16295,8,885,1,885,1,885,3,885,16299,8,885,1,886,1,886,3,886, +16303,8,886,1,886,1,886,3,886,16307,8,886,1,887,1,887,1,887,1,888,1,888, +1,888,1,888,1,888,5,888,16317,8,888,10,888,12,888,16320,9,888,1,888,3,888, +16323,8,888,1,888,1,888,1,888,1,889,1,889,1,889,1,889,1,889,1,890,1,890, +1,890,1,891,3,891,16337,8,891,1,891,1,891,1,891,1,891,3,891,16343,8,891, +1,891,1,891,1,891,1,891,1,891,3,891,16350,8,891,1,892,1,892,1,892,3,892, +16355,8,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,3,892, +16366,8,892,1,892,3,892,16369,8,892,1,892,1,892,1,892,1,892,3,892,16375, +8,892,3,892,16377,8,892,1,893,1,893,1,893,1,893,1,893,1,893,3,893,16385, +8,893,1,893,1,893,1,894,1,894,1,894,1,894,1,894,1,894,1,894,1,894,3,894, +16397,8,894,1,894,1,894,1,894,3,894,16402,8,894,1,895,1,895,1,895,1,895, +1,895,1,896,1,896,1,897,1,897,1,898,1,898,1,899,1,899,3,899,16417,8,899, +1,900,1,900,3,900,16421,8,900,1,901,3,901,16424,8,901,1,901,1,901,3,901, +16428,8,901,1,901,1,901,1,901,3,901,16433,8,901,5,901,16435,8,901,10,901, +12,901,16438,9,901,1,901,1,901,3,901,16442,8,901,1,902,1,902,1,902,1,902, +1,902,1,902,1,903,1,903,1,903,1,903,1,903,1,903,5,903,16456,8,903,10,903, +12,903,16459,9,903,1,903,1,903,3,903,16463,8,903,1,903,1,903,1,904,1,904, +1,904,1,904,1,905,3,905,16472,8,905,1,905,1,905,1,905,1,905,1,905,1,905, +1,905,4,905,16481,8,905,11,905,12,905,16482,1,906,1,906,1,906,1,906,4,906, +16489,8,906,11,906,12,906,16490,3,906,16493,8,906,1,906,1,906,3,906,16497, +8,906,1,907,1,907,1,907,1,907,5,907,16503,8,907,10,907,12,907,16506,9,907, +1,907,1,907,1,907,1,908,1,908,5,908,16513,8,908,10,908,12,908,16516,9,908, +3,908,16518,8,908,1,908,1,908,1,909,5,909,16523,8,909,10,909,12,909,16526, +9,909,1,909,1,909,1,910,1,910,5,910,16532,8,910,10,910,12,910,16535,9,910, +3,910,16537,8,910,1,910,1,910,1,911,1,911,1,911,1,911,1,911,3,911,16546, +8,911,1,912,1,912,1,912,1,912,1,912,3,912,16553,8,912,1,912,1,912,3,912, +16557,8,912,1,912,3,912,16560,8,912,1,913,1,913,1,913,1,914,1,914,1,914, +1,914,1,914,1,914,1,914,3,914,16572,8,914,1,915,1,915,1,915,1,915,3,915, +16578,8,915,1,916,1,916,1,916,1,917,1,917,1,917,1,917,3,917,16587,8,917, +1,917,3,917,16590,8,917,1,918,1,918,1,918,1,918,1,918,1,918,5,918,16598, +8,918,10,918,12,918,16601,9,918,1,918,1,918,1,918,1,918,1,918,1,918,5,918, +16609,8,918,10,918,12,918,16612,9,918,1,918,1,918,1,918,3,918,16617,8,918, +3,918,16619,8,918,3,918,16621,8,918,1,919,1,919,3,919,16625,8,919,1,920, +1,920,1,920,1,920,1,920,3,920,16632,8,920,1,920,3,920,16635,8,920,1,921, +1,921,1,921,1,921,1,921,3,921,16642,8,921,1,922,1,922,1,922,1,922,1,922, +1,922,1,922,1,922,1,922,3,922,16653,8,922,1,922,1,922,1,922,1,922,3,922, +16659,8,922,1,922,1,922,3,922,16663,8,922,1,923,1,923,1,923,1,923,1,923, +1,923,5,923,16671,8,923,10,923,12,923,16674,9,923,3,923,16676,8,923,1,923, +1,923,1,924,1,924,3,924,16682,8,924,1,924,3,924,16685,8,924,1,924,1,924, +1,924,3,924,16690,8,924,1,924,1,924,1,924,1,924,3,924,16696,8,924,1,924, +1,924,1,924,3,924,16701,8,924,3,924,16703,8,924,1,925,1,925,1,925,5,925, +16708,8,925,10,925,12,925,16711,9,925,1,926,1,926,3,926,16715,8,926,1,926, +1,926,3,926,16719,8,926,1,926,1,926,1,926,3,926,16724,8,926,1,927,1,927, +1,927,1,928,1,928,1,928,1,928,1,928,1,928,1,928,5,928,16736,8,928,10,928, +12,928,16739,9,928,1,928,1,928,3,928,16743,8,928,1,928,1,928,1,928,1,928, +1,928,3,928,16750,8,928,3,928,16752,8,928,1,929,1,929,1,929,1,929,1,929, +1,929,3,929,16760,8,929,1,929,1,929,3,929,16764,8,929,1,929,1,929,1,929, +1,929,1,929,1,929,3,929,16772,8,929,1,930,3,930,16775,8,930,1,930,1,930, +1,931,1,931,1,931,1,931,1,931,5,931,16784,8,931,10,931,12,931,16787,9,931, +1,932,1,932,1,932,5,932,16792,8,932,10,932,12,932,16795,9,932,1,932,1,932, +1,932,5,932,16800,8,932,10,932,12,932,16803,9,932,1,932,1,932,1,932,4,932, +16808,8,932,11,932,12,932,16809,1,932,1,932,1,932,5,932,16815,8,932,10,932, +12,932,16818,9,932,3,932,16820,8,932,3,932,16822,8,932,1,933,1,933,3,933, +16826,8,933,1,934,1,934,3,934,16830,8,934,1,934,1,934,1,934,1,934,3,934, +16836,8,934,1,934,1,934,3,934,16840,8,934,1,934,3,934,16843,8,934,1,935, +1,935,1,935,1,935,1,935,1,935,3,935,16851,8,935,1,935,3,935,16854,8,935, +1,935,1,935,3,935,16858,8,935,1,935,1,935,3,935,16862,8,935,1,935,1,935, +1,935,3,935,16867,8,935,1,935,3,935,16870,8,935,1,935,1,935,3,935,16874, +8,935,1,935,1,935,3,935,16878,8,935,5,935,16880,8,935,10,935,12,935,16883, +9,935,1,935,1,935,1,935,1,936,1,936,1,936,1,936,1,936,1,936,1,936,1,936, +1,936,1,937,1,937,1,937,1,937,1,937,1,937,1,937,1,937,1,938,1,938,1,938, +3,938,16908,8,938,1,938,3,938,16911,8,938,1,938,3,938,16914,8,938,1,939, +1,939,1,939,1,939,1,939,5,939,16921,8,939,10,939,12,939,16924,9,939,1,939, +1,939,1,940,1,940,1,940,1,940,1,940,1,940,5,940,16934,8,940,10,940,12,940, +16937,9,940,1,940,1,940,1,941,1,941,3,941,16943,8,941,1,941,1,941,1,941, +1,942,1,942,1,942,1,942,1,942,1,942,5,942,16954,8,942,10,942,12,942,16957, +9,942,1,942,1,942,1,943,1,943,1,943,1,943,1,943,1,943,1,944,1,944,5,944, +16969,8,944,10,944,12,944,16972,9,944,1,945,1,945,1,945,1,945,1,945,3,945, +16979,8,945,1,946,1,946,3,946,16983,8,946,1,946,1,946,3,946,16987,8,946, +1,946,1,946,1,947,1,947,3,947,16993,8,947,1,947,1,947,3,947,16997,8,947, +1,947,3,947,17000,8,947,1,947,3,947,17003,8,947,1,947,1,947,5,947,17007, +8,947,10,947,12,947,17010,9,947,1,947,3,947,17013,8,947,1,947,3,947,17016, +8,947,1,947,3,947,17019,8,947,1,947,3,947,17022,8,947,1,948,1,948,1,948, +1,948,5,948,17028,8,948,10,948,12,948,17031,9,948,3,948,17033,8,948,1,949, +1,949,1,949,1,950,1,950,1,950,1,950,1,950,1,950,3,950,17044,8,950,3,950, +17046,8,950,1,951,1,951,1,951,5,951,17051,8,951,10,951,12,951,17054,9,951, +1,952,1,952,5,952,17058,8,952,10,952,12,952,17061,9,952,1,952,1,952,3,952, +17065,8,952,1,953,1,953,5,953,17069,8,953,10,953,12,953,17072,9,953,1,953, +3,953,17075,8,953,1,954,1,954,1,954,3,954,17080,8,954,1,954,1,954,1,954, +5,954,17085,8,954,10,954,12,954,17088,9,954,1,954,1,954,1,954,3,954,17093, +8,954,1,954,1,954,1,954,1,954,1,954,3,954,17100,8,954,1,955,3,955,17103, +8,955,1,955,3,955,17106,8,955,1,955,1,955,3,955,17110,8,955,1,955,1,955, +1,955,3,955,17115,8,955,1,955,1,955,5,955,17119,8,955,10,955,12,955,17122, +9,955,1,955,1,955,1,955,3,955,17127,8,955,1,956,1,956,1,956,1,957,1,957, +1,957,1,958,1,958,3,958,17137,8,958,1,959,1,959,1,959,1,959,1,959,3,959, +17144,8,959,1,959,1,959,3,959,17148,8,959,1,960,1,960,1,960,1,960,1,960, +1,960,1,960,1,960,3,960,17158,8,960,1,960,1,960,1,960,1,960,1,960,1,960, +1,960,1,960,1,960,1,960,1,960,1,960,1,960,3,960,17173,8,960,3,960,17175, +8,960,1,961,1,961,3,961,17179,8,961,1,961,1,961,1,961,1,961,5,961,17185, +8,961,10,961,12,961,17188,9,961,1,961,1,961,1,961,1,961,3,961,17194,8,961, +1,962,1,962,1,962,1,962,1,962,1,962,3,962,17202,8,962,1,962,3,962,17205, +8,962,1,963,1,963,1,963,3,963,17210,8,963,1,964,1,964,1,964,1,964,1,964, +1,964,5,964,17218,8,964,10,964,12,964,17221,9,964,1,964,1,964,1,964,5,964, +17226,8,964,10,964,12,964,17229,9,964,3,964,17231,8,964,1,964,1,964,1,965, +1,965,3,965,17237,8,965,1,966,1,966,1,966,3,966,17242,8,966,1,966,3,966, +17245,8,966,1,967,1,967,1,967,3,967,17250,8,967,1,967,1,967,1,967,3,967, +17255,8,967,1,967,1,967,1,967,1,967,3,967,17261,8,967,1,968,1,968,1,968, +1,968,1,968,5,968,17268,8,968,10,968,12,968,17271,9,968,1,968,1,968,1,969, +1,969,3,969,17277,8,969,1,969,1,969,1,969,1,969,1,969,1,969,5,969,17285, +8,969,10,969,12,969,17288,9,969,1,969,1,969,3,969,17292,8,969,3,969,17294, +8,969,1,970,1,970,1,970,3,970,17299,8,970,1,970,1,970,3,970,17303,8,970, +1,970,1,970,1,970,1,970,3,970,17309,8,970,1,970,1,970,3,970,17313,8,970, +1,971,1,971,1,971,1,971,1,972,1,972,1,972,1,972,1,972,5,972,17324,8,972, +10,972,12,972,17327,9,972,1,972,3,972,17330,8,972,1,972,1,972,1,972,1,972, +1,972,1,972,5,972,17338,8,972,10,972,12,972,17341,9,972,3,972,17343,8,972, +3,972,17345,8,972,1,973,1,973,1,973,3,973,17350,8,973,1,974,1,974,1,974, +1,974,1,974,5,974,17357,8,974,10,974,12,974,17360,9,974,1,974,1,974,1,975, +1,975,1,975,1,975,1,975,1,975,5,975,17370,8,975,10,975,12,975,17373,9,975, +1,975,1,975,1,976,1,976,1,976,3,976,17380,8,976,1,976,1,976,3,976,17384, +8,976,1,977,1,977,1,977,1,978,1,978,5,978,17391,8,978,10,978,12,978,17394, +9,978,1,978,3,978,17397,8,978,1,978,5,978,17400,8,978,10,978,12,978,17403, +9,978,1,978,1,978,1,979,1,979,1,979,1,979,1,979,1,979,3,979,17413,8,979, +3,979,17415,8,979,1,980,1,980,1,980,1,980,1,981,1,981,1,981,1,981,1,981, +1,981,1,981,1,981,5,981,17429,8,981,10,981,12,981,17432,9,981,1,982,1,982, +3,982,17436,8,982,1,982,1,982,5,982,17440,8,982,10,982,12,982,17443,9,982, +1,982,1,982,1,983,3,983,17448,8,983,1,983,1,983,1,983,1,983,1,983,1,983, +1,984,1,984,1,984,1,984,1,985,1,985,1,985,1,985,5,985,17464,8,985,10,985, +12,985,17467,9,985,1,985,1,985,1,986,1,986,3,986,17473,8,986,1,986,3,986, +17476,8,986,1,987,3,987,17479,8,987,1,987,1,987,1,987,1,987,5,987,17485, +8,987,10,987,12,987,17488,9,987,3,987,17490,8,987,1,987,1,987,1,988,1,988, +1,988,1,988,3,988,17498,8,988,3,988,17500,8,988,1,988,1,988,3,988,17504, +8,988,1,988,3,988,17507,8,988,1,989,1,989,1,989,3,989,17512,8,989,3,989, +17514,8,989,1,989,1,989,3,989,17518,8,989,1,989,1,989,1,989,1,990,1,990, +1,991,1,991,1,991,1,991,1,991,3,991,17530,8,991,1,992,1,992,1,992,1,992, +1,992,1,993,1,993,3,993,17539,8,993,1,993,1,993,1,993,1,993,5,993,17545, +8,993,10,993,12,993,17548,9,993,1,994,1,994,3,994,17552,8,994,1,994,1,994, +3,994,17556,8,994,1,995,1,995,1,995,1,995,1,996,1,996,1,996,1,996,3,996, +17566,8,996,3,996,17568,8,996,1,996,1,996,1,996,1,996,3,996,17574,8,996, +1,997,1,997,1,997,3,997,17579,8,997,1,997,3,997,17582,8,997,1,998,1,998, +1,998,1,999,1,999,1,999,1,999,1,999,3,999,17592,8,999,1,1000,1,1000,1,1000, +1,1000,3,1000,17598,8,1000,1,1000,3,1000,17601,8,1000,1,1000,3,1000,17604, +8,1000,1,1001,1,1001,1,1001,1,1001,5,1001,17610,8,1001,10,1001,12,1001,17613, +9,1001,1,1001,1,1001,1,1001,1,1001,1,1001,1,1001,1,1001,3,1001,17622,8,1001, +1,1002,1,1002,1,1002,1,1002,1,1002,1,1002,1,1002,1,1002,3,1002,17632,8,1002, +1,1003,1,1003,3,1003,17636,8,1003,1,1003,1,1003,3,1003,17640,8,1003,1,1003, +3,1003,17643,8,1003,1,1003,3,1003,17646,8,1003,1,1004,1,1004,1,1004,3,1004, +17651,8,1004,1,1005,1,1005,1,1005,3,1005,17656,8,1005,1,1005,3,1005,17659, +8,1005,1,1005,3,1005,17662,8,1005,1,1006,1,1006,4,1006,17666,8,1006,11,1006, +12,1006,17667,1,1006,3,1006,17671,8,1006,1,1006,1,1006,1,1007,1,1007,3,1007, +17677,8,1007,1,1007,3,1007,17680,8,1007,1,1008,3,1008,17683,8,1008,1,1008, +4,1008,17686,8,1008,11,1008,12,1008,17687,1,1008,3,1008,17691,8,1008,1,1009, +1,1009,1,1009,1,1009,4,1009,17697,8,1009,11,1009,12,1009,17698,1,1010,1, +1010,4,1010,17703,8,1010,11,1010,12,1010,17704,1,1011,1,1011,1,1011,3,1011, +17710,8,1011,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,3,1012,17719, +8,1012,1,1013,1,1013,1,1013,1,1013,3,1013,17725,8,1013,1,1013,1,1013,1,1013, +1,1013,1,1013,1,1013,1,1013,1,1013,3,1013,17735,8,1013,1,1013,1,1013,3,1013, +17739,8,1013,3,1013,17741,8,1013,1,1013,3,1013,17744,8,1013,1,1014,1,1014, +1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,5,1014,17754,8,1014,10,1014,12, +1014,17757,9,1014,1,1014,3,1014,17760,8,1014,1,1014,3,1014,17763,8,1014, +1,1015,1,1015,1,1015,1,1015,1,1016,1,1016,1,1016,1,1017,1,1017,1,1017,1, +1017,1,1017,1,1017,3,1017,17778,8,1017,1,1017,1,1017,3,1017,17782,8,1017, +1,1018,1,1018,1,1018,1,1018,1,1018,1,1018,1,1018,1,1018,1,1018,1,1018,3, +1018,17794,8,1018,1,1018,3,1018,17797,8,1018,1,1019,1,1019,1,1019,1,1019, +1,1019,5,1019,17804,8,1019,10,1019,12,1019,17807,9,1019,1,1019,1,1019,1, +1019,1,1019,3,1019,17813,8,1019,1,1020,1,1020,1,1020,3,1020,17818,8,1020, +1,1021,1,1021,3,1021,17822,8,1021,1,1022,1,1022,1,1022,1,1022,1,1022,1,1022, +3,1022,17830,8,1022,1,1022,1,1022,1,1022,1,1022,3,1022,17836,8,1022,1,1023, +1,1023,1,1023,1,1023,1,1023,1,1023,3,1023,17844,8,1023,1,1023,3,1023,17847, +8,1023,1,1024,1,1024,1,1024,1,1024,1,1025,1,1025,1,1025,3,1025,17856,8,1025, +1,1025,3,1025,17859,8,1025,1,1025,3,1025,17862,8,1025,1,1026,1,1026,1,1026, +1,1027,1,1027,1,1027,1,1027,3,1027,17871,8,1027,1,1028,1,1028,1,1028,1,1028, +3,1028,17877,8,1028,1,1028,1,1028,1,1028,1,1028,3,1028,17883,8,1028,1,1028, +3,1028,17886,8,1028,1,1028,1,1028,1,1028,3,1028,17891,8,1028,1,1028,1,1028, +1,1028,1,1028,3,1028,17897,8,1028,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028, +1,1028,1,1028,1,1028,1,1028,3,1028,17909,8,1028,1,1029,1,1029,1,1029,1,1029, +1,1029,1,1029,1,1029,1,1029,1,1029,3,1029,17920,8,1029,3,1029,17922,8,1029, +1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,3,1030,17931,8,1030,3,1030, +17933,8,1030,1,1031,1,1031,3,1031,17937,8,1031,1,1031,1,1031,1,1031,1,1031, +3,1031,17943,8,1031,1,1031,1,1031,3,1031,17947,8,1031,1,1032,1,1032,1,1032, +1,1032,1,1032,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,3,1033,17960,8,1033, +1,1034,1,1034,1,1034,5,1034,17965,8,1034,10,1034,12,1034,17968,9,1034,1, +1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,3,1035,17979, +8,1035,1,1036,1,1036,1,1036,1,1036,1,1036,1,1037,1,1037,1,1037,1,1037,1, +1037,1,1037,1,1037,1,1037,1,1037,5,1037,17995,8,1037,10,1037,12,1037,17998, +9,1037,1,1038,3,1038,18001,8,1038,1,1038,1,1038,3,1038,18005,8,1038,1,1039, +1,1039,3,1039,18009,8,1039,1,1039,1,1039,1,1040,1,1040,1,1040,1,1040,1,1040, +1,1040,1,1040,1,1040,1,1040,3,1040,18022,8,1040,1,1040,1,1040,3,1040,18026, +8,1040,1,1040,1,1040,1,1040,5,1040,18031,8,1040,10,1040,12,1040,18034,9, +1040,1,1040,1,1040,1,1040,1,1040,1,1040,3,1040,18041,8,1040,1,1040,3,1040, +18044,8,1040,1,1040,1,1040,1,1040,3,1040,18049,8,1040,3,1040,18051,8,1040, +1,1041,1,1041,1,1041,3,1041,18056,8,1041,1,1041,1,1041,3,1041,18060,8,1041, +1,1041,3,1041,18063,8,1041,1,1041,1,1041,1,1041,1,1041,3,1041,18069,8,1041, +1,1041,5,1041,18072,8,1041,10,1041,12,1041,18075,9,1041,1,1042,1,1042,1, +1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,3,1042,18086,8,1042,1,1042, +1,1042,5,1042,18090,8,1042,10,1042,12,1042,18093,9,1042,1,1043,1,1043,3, +1043,18097,8,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043, +3,1043,18107,8,1043,3,1043,18109,8,1043,3,1043,18111,8,1043,1,1044,1,1044, +1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,3,1044,18121,8,1044,1,1044,1,1044, +3,1044,18125,8,1044,3,1044,18127,8,1044,1,1045,1,1045,1,1045,1,1045,1,1045, +1,1045,1,1045,1,1045,5,1045,18137,8,1045,10,1045,12,1045,18140,9,1045,1, +1045,1,1045,1,1045,1,1045,1,1045,3,1045,18147,8,1045,1,1046,1,1046,1,1046, +1,1046,1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,3,1047,18160,8,1047, +1,1047,3,1047,18163,8,1047,1,1047,1,1047,1,1047,3,1047,18168,8,1047,1,1047, +1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,1, +1047,1,1047,1,1047,1,1047,1,1047,5,1047,18186,8,1047,10,1047,12,1047,18189, +9,1047,1,1048,1,1048,1,1048,1,1048,1,1048,3,1048,18196,8,1048,1,1048,1,1048, +1,1048,1,1048,1,1048,1,1048,3,1048,18204,8,1048,1,1048,1,1048,1,1048,1,1048, +1,1048,3,1048,18211,8,1048,1,1048,1,1048,1,1048,1,1048,1,1048,3,1048,18218, +8,1048,1,1049,1,1049,1,1049,1,1049,1,1049,3,1049,18225,8,1049,1,1050,1,1050, +3,1050,18229,8,1050,1,1050,1,1050,1,1050,3,1050,18234,8,1050,5,1050,18236, +8,1050,10,1050,12,1050,18239,9,1050,1,1050,1,1050,1,1050,5,1050,18244,8, +1050,10,1050,12,1050,18247,9,1050,1,1050,3,1050,18250,8,1050,1,1051,1,1051, +1,1051,1,1051,1,1051,3,1051,18257,8,1051,1,1051,1,1051,1,1051,3,1051,18262, +8,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,3,1051,18271,8,1051, +1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,3,1052,18280,8,1052,1,1052, +3,1052,18283,8,1052,1,1052,1,1052,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053, +1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1, +1053,1,1053,3,1053,18305,8,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053, +1,1053,1,1053,3,1053,18315,8,1053,5,1053,18317,8,1053,10,1053,12,1053,18320, +9,1053,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1, +1054,1,1054,1,1054,1,1054,1,1054,1,1054,3,1054,18337,8,1054,3,1054,18339, +8,1054,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,5,1055,18347,8,1055,10, +1055,12,1055,18350,9,1055,1,1056,1,1056,3,1056,18354,8,1056,1,1057,3,1057, +18357,8,1057,1,1057,1,1057,1,1057,4,1057,18362,8,1057,11,1057,12,1057,18363, +1,1057,3,1057,18367,8,1057,1,1057,1,1057,3,1057,18371,8,1057,1,1057,3,1057, +18374,8,1057,1,1058,3,1058,18377,8,1058,1,1058,1,1058,4,1058,18381,8,1058, +11,1058,12,1058,18382,1,1058,3,1058,18386,8,1058,1,1058,1,1058,3,1058,18390, +8,1058,1,1058,3,1058,18393,8,1058,1,1059,1,1059,1,1059,1,1059,1,1059,1,1060, +1,1060,1,1060,1,1061,1,1061,3,1061,18405,8,1061,1,1062,1,1062,1,1062,4,1062, +18410,8,1062,11,1062,12,1062,18411,1,1062,3,1062,18415,8,1062,1,1062,1,1062, +3,1062,18419,8,1062,1,1063,1,1063,4,1063,18423,8,1063,11,1063,12,1063,18424, +1,1063,3,1063,18428,8,1063,1,1063,1,1063,3,1063,18432,8,1063,1,1064,1,1064, +1,1064,1,1064,1,1064,1,1065,1,1065,1,1065,1,1066,1,1066,1,1066,1,1066,1, +1066,3,1066,18447,8,1066,1,1066,1,1066,1,1066,1,1066,5,1066,18453,8,1066, +10,1066,12,1066,18456,9,1066,1,1066,1,1066,1,1066,1,1066,3,1066,18462,8, +1066,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,5,1067, +18473,8,1067,10,1067,12,1067,18476,9,1067,1,1067,1,1067,3,1067,18480,8,1067, +1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,3,1068,18489,8,1068,1,1068, +1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,3,1068,18498,8,1068,1,1068,1,1068, +3,1068,18502,8,1068,1,1068,1,1068,3,1068,18506,8,1068,1,1068,1,1068,1,1068, +1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1, +1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068, +3,1068,18532,8,1068,1,1068,3,1068,18535,8,1068,1,1068,3,1068,18538,8,1068, +1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,3,1068,18548,8,1068, +1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,3,1068,18556,8,1068,1,1068,1,1068, +1,1068,1,1068,3,1068,18562,8,1068,3,1068,18564,8,1068,1,1068,1,1068,3,1068, +18568,8,1068,1,1069,1,1069,1,1069,1,1069,3,1069,18574,8,1069,1,1070,1,1070, +1,1070,1,1070,1,1070,5,1070,18581,8,1070,10,1070,12,1070,18584,9,1070,1, +1070,3,1070,18587,8,1070,1,1070,3,1070,18590,8,1070,1,1070,3,1070,18593, +8,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,3,1070,18602,8,1070, +1,1070,3,1070,18605,8,1070,1,1070,3,1070,18608,8,1070,1,1070,3,1070,18611, +8,1070,1,1070,3,1070,18614,8,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070, +1,1070,1,1070,1,1070,1,1070,3,1070,18626,8,1070,1,1070,1,1070,1,1070,1,1070, +1,1070,1,1070,3,1070,18634,8,1070,1,1070,1,1070,1,1070,1,1070,1,1070,3,1070, +18641,8,1070,1,1070,3,1070,18644,8,1070,1,1070,1,1070,3,1070,18648,8,1070, +3,1070,18650,8,1070,1,1070,3,1070,18653,8,1070,1,1070,1,1070,1,1070,3,1070, +18658,8,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,3,1070,18667, +8,1070,1,1070,1,1070,1,1070,1,1070,3,1070,18673,8,1070,1,1070,3,1070,18676, +8,1070,1,1070,3,1070,18679,8,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070, +1,1070,3,1070,18688,8,1070,1,1070,3,1070,18691,8,1070,1,1070,3,1070,18694, +8,1070,1,1070,3,1070,18697,8,1070,1,1070,1,1070,1,1070,1,1070,3,1070,18703, +8,1070,1,1070,1,1070,3,1070,18707,8,1070,1,1070,1,1070,1,1070,1,1070,1,1070, +1,1070,1,1070,1,1070,5,1070,18717,8,1070,10,1070,12,1070,18720,9,1070,1, +1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,3,1070,18729,8,1070,1,1070, +1,1070,3,1070,18733,8,1070,1,1070,3,1070,18736,8,1070,1,1070,1,1070,1,1070, +1,1070,3,1070,18742,8,1070,1,1070,1,1070,3,1070,18746,8,1070,1,1070,1,1070, +1,1070,1,1070,3,1070,18752,8,1070,1,1070,1,1070,3,1070,18756,8,1070,1,1070, +3,1070,18759,8,1070,1,1070,3,1070,18762,8,1070,3,1070,18764,8,1070,1,1071, +1,1071,1,1071,5,1071,18769,8,1071,10,1071,12,1071,18772,9,1071,1,1071,3, +1071,18775,8,1071,1,1071,3,1071,18778,8,1071,1,1071,3,1071,18781,8,1071, +1,1071,3,1071,18784,8,1071,1,1071,1,1071,1,1071,3,1071,18789,8,1071,1,1072, +3,1072,18792,8,1072,1,1072,1,1072,3,1072,18796,8,1072,1,1072,1,1072,1,1072, +1,1072,1,1072,1,1072,1,1072,3,1072,18805,8,1072,1,1072,1,1072,3,1072,18809, +8,1072,1,1073,1,1073,1,1073,1,1073,1,1073,3,1073,18816,8,1073,1,1073,1,1073, +3,1073,18820,8,1073,1,1073,1,1073,1,1073,3,1073,18825,8,1073,1,1073,1,1073, +1,1073,3,1073,18830,8,1073,1,1073,3,1073,18833,8,1073,1,1073,1,1073,1,1074, +1,1074,1,1074,1,1074,1,1074,3,1074,18842,8,1074,1,1074,1,1074,3,1074,18846, +8,1074,1,1075,1,1075,1,1075,1,1075,1,1076,1,1076,1,1076,1,1076,1,1076,3, +1076,18857,8,1076,1,1076,3,1076,18860,8,1076,1,1076,1,1076,3,1076,18864, +8,1076,1,1077,1,1077,1,1077,3,1077,18869,8,1077,1,1077,1,1077,3,1077,18873, +8,1077,1,1077,1,1077,1,1077,1,1077,1,1077,1,1077,1,1077,3,1077,18882,8,1077, +1,1077,3,1077,18885,8,1077,1,1077,1,1077,3,1077,18889,8,1077,1,1077,1,1077, +1,1077,1,1077,1,1077,1,1077,1,1077,3,1077,18898,8,1077,1,1077,3,1077,18901, +8,1077,1,1077,1,1077,3,1077,18905,8,1077,1,1077,1,1077,1,1077,3,1077,18910, +8,1077,1,1077,1,1077,1,1077,1,1077,1,1077,1,1077,1,1077,3,1077,18919,8,1077, +1,1077,3,1077,18922,8,1077,1,1077,1,1077,3,1077,18926,8,1077,1,1077,1,1077, +1,1077,1,1077,1,1077,1,1077,3,1077,18934,8,1077,1,1077,1,1077,1,1077,3,1077, +18939,8,1077,1,1077,1,1077,1,1077,3,1077,18944,8,1077,1,1077,3,1077,18947, +8,1077,1,1077,1,1077,3,1077,18951,8,1077,3,1077,18953,8,1077,1,1078,1,1078, +1,1078,1,1078,1,1078,5,1078,18960,8,1078,10,1078,12,1078,18963,9,1078,1, +1078,1,1078,1,1079,1,1079,3,1079,18969,8,1079,1,1079,3,1079,18972,8,1079, +1,1079,1,1079,1,1079,1,1079,1,1079,3,1079,18979,8,1079,3,1079,18981,8,1079, +1,1079,3,1079,18984,8,1079,1,1079,3,1079,18987,8,1079,1,1079,1,1079,3,1079, +18991,8,1079,1,1079,3,1079,18994,8,1079,1,1079,1,1079,1,1079,3,1079,18999, +8,1079,1,1079,1,1079,1,1079,1,1079,1,1079,3,1079,19006,8,1079,1,1079,1,1079, +1,1079,1,1079,3,1079,19012,8,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079, +3,1079,19020,8,1079,1,1080,1,1080,3,1080,19024,8,1080,1,1080,3,1080,19027, +8,1080,1,1080,3,1080,19030,8,1080,1,1081,1,1081,1,1081,1,1081,3,1081,19036, +8,1081,1,1081,3,1081,19039,8,1081,1,1081,1,1081,3,1081,19043,8,1081,1,1082, +1,1082,3,1082,19047,8,1082,1,1082,1,1082,1,1082,3,1082,19052,8,1082,1,1082, +3,1082,19055,8,1082,1,1082,3,1082,19058,8,1082,1,1083,1,1083,1,1083,1,1083, +1,1083,1,1083,1,1083,3,1083,19067,8,1083,1,1083,1,1083,1,1083,1,1084,1,1084, +1,1084,1,1084,1,1084,1,1084,1,1084,3,1084,19079,8,1084,1,1084,1,1084,1,1084, +1,1085,1,1085,3,1085,19086,8,1085,1,1085,3,1085,19089,8,1085,1,1086,1,1086, +1,1086,1,1086,3,1086,19095,8,1086,1,1086,3,1086,19098,8,1086,1,1086,3,1086, +19101,8,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,3,1086,19110, +8,1086,1,1086,3,1086,19113,8,1086,1,1086,1,1086,1,1086,3,1086,19118,8,1086, +1,1086,1,1086,1,1086,1,1086,1,1086,3,1086,19125,8,1086,3,1086,19127,8,1086, +1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1, +1087,3,1087,19140,8,1087,1,1088,1,1088,1,1088,1,1088,1,1088,3,1088,19147, +8,1088,1,1089,1,1089,1,1089,3,1089,19152,8,1089,1,1090,1,1090,1,1090,3,1090, +19157,8,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,3,1090,19166, +8,1090,1,1090,3,1090,19169,8,1090,3,1090,19171,8,1090,1,1090,1,1090,3,1090, +19175,8,1090,1,1090,1,1090,1,1090,1,1090,1,1090,3,1090,19182,8,1090,1,1090, +1,1090,1,1090,1,1090,1,1090,3,1090,19189,8,1090,1,1090,1,1090,1,1090,1,1090, +1,1090,1,1090,3,1090,19197,8,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090, +1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,3,1090,19212,8,1090,1,1091, +1,1091,1,1091,1,1091,3,1091,19218,8,1091,1,1091,1,1091,3,1091,19222,8,1091, +1,1092,1,1092,1,1092,3,1092,19227,8,1092,1,1092,1,1092,1,1092,3,1092,19232, +8,1092,1,1092,1,1092,1,1092,1,1092,3,1092,19238,8,1092,1,1092,3,1092,19241, +8,1092,1,1092,1,1092,3,1092,19245,8,1092,1,1092,1,1092,1,1092,1,1092,1,1092, +1,1092,1,1092,1,1092,3,1092,19255,8,1092,1,1092,1,1092,1,1092,1,1092,1,1092, +1,1092,1,1092,1,1092,3,1092,19265,8,1092,1,1092,1,1092,1,1092,1,1092,3,1092, +19271,8,1092,3,1092,19273,8,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092, +1,1092,1,1092,3,1092,19283,8,1092,3,1092,19285,8,1092,1,1092,1,1092,1,1092, +1,1092,1,1092,3,1092,19292,8,1092,1,1092,1,1092,3,1092,19296,8,1092,1,1092, +1,1092,1,1092,1,1092,1,1092,4,1092,19303,8,1092,11,1092,12,1092,19304,1, +1092,1,1092,1,1092,3,1092,19310,8,1092,1,1092,1,1092,1,1092,3,1092,19315, +8,1092,1,1092,3,1092,19318,8,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092, +1,1092,3,1092,19327,8,1092,1,1092,3,1092,19330,8,1092,1,1092,1,1092,1,1092, +1,1092,1,1092,1,1092,1,1092,3,1092,19339,8,1092,1,1092,1,1092,1,1092,1,1092, +1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,3,1092,19353,8,1092, +1,1092,1,1092,1,1092,1,1092,1,1092,3,1092,19360,8,1092,1,1092,1,1092,1,1092, +1,1092,1,1092,1,1092,3,1092,19368,8,1092,1,1092,3,1092,19371,8,1092,1,1092, +1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,3, +1092,19384,8,1092,1,1092,1,1092,1,1092,1,1092,3,1092,19390,8,1092,3,1092, +19392,8,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092, +1,1092,1,1092,3,1092,19405,8,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092, +1,1092,3,1092,19414,8,1092,1,1092,1,1092,5,1092,19418,8,1092,10,1092,12, +1092,19421,9,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,3,1092, +19430,8,1092,1,1092,1,1092,1,1092,1,1092,5,1092,19436,8,1092,10,1092,12, +1092,19439,9,1092,1,1092,1,1092,1,1092,3,1092,19444,8,1092,1,1092,3,1092, +19447,8,1092,1,1092,3,1092,19450,8,1092,1,1092,1,1092,1,1092,1,1092,1,1092, +1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,3,1092,19464,8,1092,3,1092, +19466,8,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,3,1092,19474,8,1092, +1,1092,1,1092,1,1092,5,1092,19479,8,1092,10,1092,12,1092,19482,9,1092,1, +1092,1,1092,1,1092,1,1092,1,1092,5,1092,19489,8,1092,10,1092,12,1092,19492, +9,1092,1,1092,1,1092,1,1092,5,1092,19497,8,1092,10,1092,12,1092,19500,9, +1092,1,1092,1,1092,1,1092,3,1092,19505,8,1092,1,1092,3,1092,19508,8,1092, +1,1092,1,1092,1,1092,3,1092,19513,8,1092,1,1092,1,1092,1,1092,3,1092,19518, +8,1092,5,1092,19520,8,1092,10,1092,12,1092,19523,9,1092,1,1092,1,1092,1, +1092,5,1092,19528,8,1092,10,1092,12,1092,19531,9,1092,1,1092,1,1092,1,1092, +1,1092,3,1092,19537,8,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092, +3,1092,19546,8,1092,1,1092,1,1092,1,1092,5,1092,19551,8,1092,10,1092,12, +1092,19554,9,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,3,1092,19562, +8,1092,1,1092,1,1092,3,1092,19566,8,1092,1,1092,1,1092,1,1092,5,1092,19571, +8,1092,10,1092,12,1092,19574,9,1092,1,1092,1,1092,1,1092,1,1092,3,1092,19580, +8,1092,1,1092,1,1092,1,1092,1,1092,1,1092,3,1092,19587,8,1092,1,1092,1,1092, +1,1092,5,1092,19592,8,1092,10,1092,12,1092,19595,9,1092,1,1092,1,1092,1, +1092,1,1092,1,1092,3,1092,19602,8,1092,1,1092,1,1092,3,1092,19606,8,1092, +1,1092,1,1092,1,1092,5,1092,19611,8,1092,10,1092,12,1092,19614,9,1092,1, +1092,1,1092,1,1092,1,1092,1,1092,1,1092,3,1092,19622,8,1092,1,1092,3,1092, +19625,8,1092,1,1092,3,1092,19628,8,1092,1,1092,3,1092,19631,8,1092,1,1092, +1,1092,3,1092,19635,8,1092,1,1092,1,1092,1,1092,3,1092,19640,8,1092,1,1092, +1,1092,1,1092,3,1092,19645,8,1092,1,1093,1,1093,1,1094,1,1094,1,1095,1,1095, +1,1096,1,1096,1,1096,3,1096,19656,8,1096,1,1096,1,1096,3,1096,19660,8,1096, +3,1096,19662,8,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096, +1,1096,3,1096,19673,8,1096,3,1096,19675,8,1096,1,1096,1,1096,1,1097,1,1097, +1,1097,1,1097,1,1097,1,1097,1,1097,3,1097,19686,8,1097,1,1098,1,1098,1,1099, +1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,3,1099,19697,8,1099,1,1100,1,1100, +1,1100,1,1100,1,1100,5,1100,19704,8,1100,10,1100,12,1100,19707,9,1100,3, +1100,19709,8,1100,1,1101,1,1101,3,1101,19713,8,1101,1,1101,3,1101,19716, +8,1101,1,1101,1,1101,1,1102,1,1102,1,1102,1,1102,1,1102,5,1102,19725,8,1102, +10,1102,12,1102,19728,9,1102,1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1, +1103,3,1103,19737,8,1103,1,1104,1,1104,1,1104,1,1104,1,1104,1,1104,1,1104, +1,1104,3,1104,19747,8,1104,1,1104,1,1104,1,1104,1,1104,5,1104,19753,8,1104, +10,1104,12,1104,19756,9,1104,1,1105,1,1105,1,1105,3,1105,19761,8,1105,1, +1105,1,1105,1,1105,1,1105,5,1105,19767,8,1105,10,1105,12,1105,19770,9,1105, +1,1105,1,1105,1,1105,1,1105,3,1105,19776,8,1105,1,1105,1,1105,3,1105,19780, +8,1105,1,1106,1,1106,1,1106,3,1106,19785,8,1106,1,1106,1,1106,3,1106,19789, +8,1106,1,1106,1,1106,1,1106,3,1106,19794,8,1106,5,1106,19796,8,1106,10,1106, +12,1106,19799,9,1106,1,1107,1,1107,1,1107,3,1107,19804,8,1107,1,1107,3,1107, +19807,8,1107,1,1107,1,1107,1,1107,5,1107,19812,8,1107,10,1107,12,1107,19815, +9,1107,1,1107,1,1107,1,1108,1,1108,1,1108,1,1108,1,1108,3,1108,19824,8,1108, +1,1108,1,1108,1,1108,1,1108,5,1108,19830,8,1108,10,1108,12,1108,19833,9, +1108,1,1108,3,1108,19836,8,1108,1,1108,1,1108,1,1109,1,1109,1,1109,1,1109, +1,1109,1,1109,3,1109,19846,8,1109,1,1109,3,1109,19849,8,1109,3,1109,19851, +8,1109,1,1110,1,1110,1,1110,1,1111,1,1111,3,1111,19858,8,1111,1,1111,1,1111, +1,1111,1,1111,3,1111,19864,8,1111,1,1112,1,1112,1,1112,1,1112,3,1112,19870, +8,1112,1,1113,1,1113,1,1113,1,1113,3,1113,19876,8,1113,3,1113,19878,8,1113, +1,1114,1,1114,1,1114,1,1115,1,1115,1,1115,1,1116,1,1116,1,1116,1,1116,1, +1116,1,1116,3,1116,19892,8,1116,3,1116,19894,8,1116,1,1117,1,1117,1,1117, +1,1117,1,1117,1,1118,1,1118,1,1118,1,1118,1,1118,1,1118,3,1118,19907,8,1118, +1,1118,1,1118,1,1118,3,1118,19912,8,1118,1,1118,3,1118,19915,8,1118,1,1118, +1,1118,1,1118,5,1118,19920,8,1118,10,1118,12,1118,19923,9,1118,1,1119,1, +1119,3,1119,19927,8,1119,1,1120,1,1120,1,1121,1,1121,1,1121,1,1121,1,1121, +1,1121,1,1121,1,1121,1,1121,3,1121,19940,8,1121,1,1122,1,1122,1,1122,1,1122, +1,1122,1,1123,1,1123,1,1123,1,1123,1,1123,1,1123,1,1123,1,1123,3,1123,19955, +8,1123,1,1123,3,1123,19958,8,1123,1,1123,1,1123,3,1123,19962,8,1123,3,1123, +19964,8,1123,1,1124,1,1124,1,1124,1,1124,4,1124,19970,8,1124,11,1124,12, +1124,19971,1,1124,1,1124,1,1124,1,1124,1,1124,1,1124,3,1124,19980,8,1124, +3,1124,19982,8,1124,1,1125,1,1125,1,1125,5,1125,19987,8,1125,10,1125,12, +1125,19990,9,1125,1,1125,1,1125,3,1125,19994,8,1125,1,1126,1,1126,3,1126, +19998,8,1126,1,1126,1,1126,3,1126,20002,8,1126,1,1127,1,1127,3,1127,20006, +8,1127,1,1127,1,1127,3,1127,20010,8,1127,1,1127,1,1127,1,1128,3,1128,20015, +8,1128,1,1128,1,1128,3,1128,20019,8,1128,1,1128,3,1128,20022,8,1128,1,1129, +1,1129,3,1129,20026,8,1129,1,1130,1,1130,1,1130,1,1130,1,1130,3,1130,20033, +8,1130,1,1131,1,1131,3,1131,20037,8,1131,1,1131,1,1131,1,1131,3,1131,20042, +8,1131,1,1131,1,1131,1,1131,3,1131,20047,8,1131,5,1131,20049,8,1131,10,1131, +12,1131,20052,9,1131,1,1132,1,1132,3,1132,20056,8,1132,1,1133,1,1133,1,1134, +1,1134,1,1135,1,1135,1,1136,1,1136,1,1137,1,1137,1,1138,1,1138,1,1138,5, +1138,20071,8,1138,10,1138,12,1138,20074,9,1138,1,1138,1,1138,3,1138,20078, +8,1138,1,1139,1,1139,1,1140,1,1140,1,1140,3,1140,20085,8,1140,1,1141,1,1141, +1,1142,1,1142,1,1143,1,1143,1,1144,1,1144,1,1144,3,1144,20096,8,1144,1,1145, +1,1145,1,1145,5,1145,20101,8,1145,10,1145,12,1145,20104,9,1145,1,1146,1, +1146,1,1147,1,1147,3,1147,20110,8,1147,1,1148,1,1148,3,1148,20114,8,1148, +1,1149,1,1149,1,1149,5,1149,20119,8,1149,10,1149,12,1149,20122,9,1149,1, +1149,1,1149,3,1149,20126,8,1149,1,1150,1,1150,1,1151,1,1151,1,1151,5,1151, +20133,8,1151,10,1151,12,1151,20136,9,1151,1,1152,1,1152,1,1152,5,1152,20141, +8,1152,10,1152,12,1152,20144,9,1152,1,1153,1,1153,1,1153,5,1153,20149,8, +1153,10,1153,12,1153,20152,9,1153,1,1154,1,1154,1,1154,3,1154,20157,8,1154, +1,1155,1,1155,1,1155,3,1155,20162,8,1155,1,1156,1,1156,1,1156,3,1156,20167, +8,1156,1,1157,1,1157,3,1157,20171,8,1157,1,1157,1,1157,1,1157,3,1157,20176, +8,1157,1,1157,3,1157,20179,8,1157,1,1158,1,1158,1,1158,3,1158,20184,8,1158, +1,1159,1,1159,3,1159,20188,8,1159,1,1160,1,1160,3,1160,20192,8,1160,1,1161, +1,1161,1,1161,5,1161,20197,8,1161,10,1161,12,1161,20200,9,1161,1,1161,1, +1161,3,1161,20204,8,1161,1,1162,1,1162,1,1163,1,1163,1,1164,1,1164,1,1164, +5,1164,20213,8,1164,10,1164,12,1164,20216,9,1164,1,1165,1,1165,1,1165,3, +1165,20221,8,1165,1,1165,1,1165,1,1165,3,1165,20226,8,1165,1,1165,1,1165, +3,1165,20230,8,1165,3,1165,20232,8,1165,1,1166,1,1166,1,1166,1,1166,1,1166, +3,1166,20239,8,1166,1,1166,1,1166,3,1166,20243,8,1166,1,1166,1,1166,1,1166, +1,1166,5,1166,20249,8,1166,10,1166,12,1166,20252,9,1166,3,1166,20254,8,1166, +1,1166,1,1166,1,1166,3,1166,20259,8,1166,1,1167,1,1167,1,1167,5,1167,20264, +8,1167,10,1167,12,1167,20267,9,1167,1,1168,1,1168,1,1169,1,1169,1,1170,1, +1170,1,1171,1,1171,1,1172,1,1172,1,1172,1,1172,1,1172,5,1172,20282,8,1172, +10,1172,12,1172,20285,9,1172,1,1172,1,1172,1,1172,1,1172,1,1172,1,1172,1, +1172,1,1172,1,1172,1,1172,1,1172,1,1172,1,1172,1,1172,3,1172,20301,8,1172, +1,1173,1,1173,1,1173,5,1173,20306,8,1173,10,1173,12,1173,20309,9,1173,1, +1174,1,1174,1,1174,1,1174,1,1175,1,1175,1,1175,1,1175,1,1175,1,1175,3,1175, +20321,8,1175,1,1175,1,1175,3,1175,20325,8,1175,1,1176,1,1176,1,1176,1,1176, +5,1176,20331,8,1176,10,1176,12,1176,20334,9,1176,3,1176,20336,8,1176,1,1176, +1,1176,3,1176,20340,8,1176,1,1177,1,1177,1,1177,3,1177,20345,8,1177,1,1177, +1,1177,1,1177,3,1177,20350,8,1177,5,1177,20352,8,1177,10,1177,12,1177,20355, +9,1177,3,1177,20357,8,1177,1,1177,1,1177,3,1177,20361,8,1177,1,1178,1,1178, +1,1178,1,1178,1,1178,3,1178,20368,8,1178,1,1178,1,1178,1,1178,3,1178,20373, +8,1178,3,1178,20375,8,1178,3,1178,20377,8,1178,1,1178,1,1178,1,1178,1,1178, +1,1178,1,1178,1,1178,1,1178,3,1178,20387,8,1178,1,1178,1,1178,1,1178,3,1178, +20392,8,1178,5,1178,20394,8,1178,10,1178,12,1178,20397,9,1178,3,1178,20399, +8,1178,1,1178,1,1178,3,1178,20403,8,1178,1,1179,1,1179,1,1179,1,1180,1,1180, +1,1180,1,1180,3,1180,20412,8,1180,1,1180,1,1180,1,1181,1,1181,3,1181,20418, +8,1181,1,1181,1,1181,3,1181,20422,8,1181,3,1181,20424,8,1181,1,1182,1,1182, +3,1182,20428,8,1182,1,1182,1,1182,3,1182,20432,8,1182,1,1182,1,1182,1,1182, +1,1182,1,1182,3,1182,20439,8,1182,1,1182,1,1182,1,1182,1,1182,1,1182,1,1182, +3,1182,20447,8,1182,1,1182,1,1182,1,1182,1,1182,1,1182,1,1182,3,1182,20455, +8,1182,3,1182,20457,8,1182,1,1183,1,1183,1,1183,3,1183,20462,8,1183,1,1183, +1,1183,1,1183,3,1183,20467,8,1183,3,1183,20469,8,1183,1,1183,3,1183,20472, +8,1183,1,1183,1,1183,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1, +1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184, +1,1184,1,1184,3,1184,20496,8,1184,1,1184,1,1184,1,1184,1,1184,1,1184,3,1184, +20503,8,1184,1,1184,1,1184,1,1184,3,1184,20508,8,1184,1,1184,1,1184,1,1184, +1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1, +1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184, +1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,1,1184,3,1184,20541,8,1184,1,1185, +1,1185,1,1185,3,1185,20546,8,1185,1,1185,3,1185,20549,8,1185,1,1185,1,1185, +1,1185,3,1185,20554,8,1185,3,1185,20556,8,1185,1,1185,1,1185,5,1185,20560, +8,1185,10,1185,12,1185,20563,9,1185,1,1186,1,1186,1,1186,1,1186,1,1186,1, +1186,3,1186,20571,8,1186,1,1186,1,1186,1,1186,4,1186,20576,8,1186,11,1186, +12,1186,20577,5,1186,20580,8,1186,10,1186,12,1186,20583,9,1186,1,1187,1, +1187,3,1187,20587,8,1187,1,1187,1,1187,1,1187,3,1187,20592,8,1187,1,1187, +5,1187,20595,8,1187,10,1187,12,1187,20598,9,1187,1,1188,1,1188,3,1188,20602, +8,1188,1,1188,1,1188,1,1188,5,1188,20607,8,1188,10,1188,12,1188,20610,9, +1188,1,1189,1,1189,3,1189,20614,8,1189,1,1189,1,1189,1,1189,1,1189,1,1189, +1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1, +1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,1,1189, +1,1189,1,1189,1,1189,1,1189,1,1189,1,1189,3,1189,20648,8,1189,1,1190,1,1190, +1,1190,1,1190,1,1190,3,1190,20655,8,1190,1,1190,1,1190,1,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20670,8,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1, +1190,1,1190,1,1190,1,1190,3,1190,20686,8,1190,1,1190,1,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1, +1190,1,1190,1,1190,3,1190,20705,8,1190,1,1190,1,1190,1,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3, +1190,20722,8,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20729,8,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20737,8,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20750, +8,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20759,8,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20768,8,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20777,8,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20787,8,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,3,1190,20795,8,1190,1,1190,1,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,3,1190,20805,8,1190,1,1190,1,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,3,1190,20815,8,1190,1,1190,1,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20827,8,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1, +1190,1,1190,3,1190,20843,8,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3, +1190,20861,8,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,3,1190,20874,8,1190,1,1190,1,1190,1,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20889,8,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20900, +8,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20910, +8,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3, +1190,20921,8,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190, +3,1190,20931,8,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,3,1190,20948,8,1190,1,1190, +1,1190,1,1190,1,1190,3,1190,20954,8,1190,1,1190,1,1190,1,1190,1,1190,1,1190, +1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1,1190,1, +1190,1,1190,1,1190,1,1190,1,1190,3,1190,20976,8,1190,1,1191,1,1191,1,1191, +3,1191,20981,8,1191,1,1191,1,1191,1,1191,1,1191,3,1191,20987,8,1191,1,1191, +1,1191,1,1191,1,1191,3,1191,20993,8,1191,1,1191,1,1191,1,1191,1,1191,3,1191, +20999,8,1191,1,1191,1,1191,1,1191,3,1191,21004,8,1191,3,1191,21006,8,1191, +1,1191,3,1191,21009,8,1191,1,1191,1,1191,1,1191,1,1191,1,1191,1,1191,1,1191, +1,1191,1,1191,3,1191,21020,8,1191,1,1191,3,1191,21023,8,1191,3,1191,21025, +8,1191,3,1191,21027,8,1191,1,1191,1,1191,1,1191,1,1191,1,1191,1,1191,1,1191, +1,1191,1,1191,1,1191,1,1191,1,1191,3,1191,21041,8,1191,1,1192,1,1192,3,1192, +21045,8,1192,1,1192,3,1192,21048,8,1192,1,1193,1,1193,1,1193,1,1194,1,1194, +1,1195,1,1195,3,1195,21057,8,1195,1,1195,1,1195,1,1196,1,1196,3,1196,21063, +8,1196,1,1197,1,1197,1,1198,1,1198,1,1198,1,1198,1,1199,1,1199,1,1199,1, +1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199, +1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1, +1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199, +1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1, +1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199, +1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1, +1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199, +1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1, +1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199, +1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1,1199,1, +1199,1,1199,3,1199,21181,8,1199,1,1200,1,1200,1,1201,1,1201,1,1202,1,1202, +1,1202,1,3822,8,1244,2074,2082,2084,2094,2106,2208,2372,1203,0,2,4,6,8,10, +12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58, +60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104, +106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140, +142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176, +178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212, +214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248, +250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284, +286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320, +322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356, +358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392, +394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428, +430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464, +466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500, +502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536, +538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572, +574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608, +610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644, +646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680, +682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716, +718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752, +754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788, +790,792,794,796,798,800,802,804,806,808,810,812,814,816,818,820,822,824, +826,828,830,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860, +862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892,894,896, +898,900,902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932, +934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,964,966,968, +970,972,974,976,978,980,982,984,986,988,990,992,994,996,998,1000,1002,1004, +1006,1008,1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034, +1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1064, +1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088,1090,1092,1094, +1096,1098,1100,1102,1104,1106,1108,1110,1112,1114,1116,1118,1120,1122,1124, +1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1154, +1156,1158,1160,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184, +1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214, +1216,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238,1240,1242,1244, +1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274, +1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304, +1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328,1330,1332,1334, +1336,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356,1358,1360,1362,1364, +1366,1368,1370,1372,1374,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394, +1396,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,1420,1422,1424, +1426,1428,1430,1432,1434,1436,1438,1440,1442,1444,1446,1448,1450,1452,1454, +1456,1458,1460,1462,1464,1466,1468,1470,1472,1474,1476,1478,1480,1482,1484, +1486,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512,1514, +1516,1518,1520,1522,1524,1526,1528,1530,1532,1534,1536,1538,1540,1542,1544, +1546,1548,1550,1552,1554,1556,1558,1560,1562,1564,1566,1568,1570,1572,1574, +1576,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596,1598,1600,1602,1604, +1606,1608,1610,1612,1614,1616,1618,1620,1622,1624,1626,1628,1630,1632,1634, +1636,1638,1640,1642,1644,1646,1648,1650,1652,1654,1656,1658,1660,1662,1664, +1666,1668,1670,1672,1674,1676,1678,1680,1682,1684,1686,1688,1690,1692,1694, +1696,1698,1700,1702,1704,1706,1708,1710,1712,1714,1716,1718,1720,1722,1724, +1726,1728,1730,1732,1734,1736,1738,1740,1742,1744,1746,1748,1750,1752,1754, +1756,1758,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778,1780,1782,1784, +1786,1788,1790,1792,1794,1796,1798,1800,1802,1804,1806,1808,1810,1812,1814, +1816,1818,1820,1822,1824,1826,1828,1830,1832,1834,1836,1838,1840,1842,1844, +1846,1848,1850,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872,1874, +1876,1878,1880,1882,1884,1886,1888,1890,1892,1894,1896,1898,1900,1902,1904, +1906,1908,1910,1912,1914,1916,1918,1920,1922,1924,1926,1928,1930,1932,1934, +1936,1938,1940,1942,1944,1946,1948,1950,1952,1954,1956,1958,1960,1962,1964, +1966,1968,1970,1972,1974,1976,1978,1980,1982,1984,1986,1988,1990,1992,1994, +1996,1998,2000,2002,2004,2006,2008,2010,2012,2014,2016,2018,2020,2022,2024, +2026,2028,2030,2032,2034,2036,2038,2040,2042,2044,2046,2048,2050,2052,2054, +2056,2058,2060,2062,2064,2066,2068,2070,2072,2074,2076,2078,2080,2082,2084, +2086,2088,2090,2092,2094,2096,2098,2100,2102,2104,2106,2108,2110,2112,2114, +2116,2118,2120,2122,2124,2126,2128,2130,2132,2134,2136,2138,2140,2142,2144, +2146,2148,2150,2152,2154,2156,2158,2160,2162,2164,2166,2168,2170,2172,2174, +2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204, +2206,2208,2210,2212,2214,2216,2218,2220,2222,2224,2226,2228,2230,2232,2234, +2236,2238,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264, +2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290,2292,2294, +2296,2298,2300,2302,2304,2306,2308,2310,2312,2314,2316,2318,2320,2322,2324, +2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2350,2352,2354, +2356,2358,2360,2362,2364,2366,2368,2370,2372,2374,2376,2378,2380,2382,2384, +2386,2388,2390,2392,2394,2396,2398,2400,2402,2404,0,302,2,0,1217,1217,2291, +2291,2,0,682,682,899,899,2,0,2304,2304,2306,2306,2,0,1169,1169,1558,1558, +2,0,21,21,978,978,5,0,463,463,673,673,961,961,1338,1338,2194,2194,2,0,230, +230,594,594,2,0,614,614,1102,1102,2,0,810,810,899,899,2,0,21,21,467,467, +3,0,647,647,1308,1308,1323,1323,2,0,1256,1256,2311,2311,2,0,647,647,1323, +1323,4,0,91,91,673,673,895,895,2404,2404,3,0,220,220,348,348,2289,2289,2, +0,1487,1487,1546,1546,2,0,1176,1176,1574,1574,2,0,427,427,497,497,2,0,206, +206,1711,1711,2,0,2442,2442,2448,2448,2,0,480,480,1130,1130,2,0,946,946, +1131,1131,2,0,69,69,783,783,3,0,658,658,860,860,1493,1493,2,0,387,387,614, +614,2,0,1604,1604,2081,2081,5,0,630,630,1327,1327,1459,1459,2155,2155,2164, +2164,2,0,220,220,1301,1301,2,0,1453,1453,1471,1471,3,0,38,38,244,244,871, +871,2,0,930,930,958,958,3,0,147,147,1327,1327,1713,1713,2,0,35,35,1392,1392, +4,0,279,279,317,317,885,885,1454,1454,2,0,146,146,1697,1697,2,0,33,33,112, +112,3,0,401,401,754,754,2205,2205,3,0,1019,1019,1248,1248,1335,1335,2,0, +614,614,2251,2251,2,0,147,147,1713,1713,3,0,344,344,1277,1277,1717,1717, +2,0,908,908,1301,1301,2,0,934,934,1743,1743,3,0,593,593,759,759,1322,1322, +3,0,242,242,1199,1199,1594,1594,3,0,374,374,447,447,1482,1482,2,0,14,14, +38,38,3,0,349,349,946,946,1131,1131,2,0,1098,1098,2427,2427,2,0,1168,1168, +1552,1552,2,0,1728,1728,2110,2110,10,0,364,364,656,656,678,678,957,957,985, +985,1480,1480,1635,1635,1728,1728,2294,2294,2355,2355,2,0,2404,2404,2407, +2407,2,0,70,70,412,412,2,0,596,596,823,823,3,0,757,757,1665,1665,1741,1741, +14,0,42,42,85,85,241,241,401,401,540,540,603,603,645,645,715,715,754,754, +879,879,1503,1503,1557,1557,1645,1645,2205,2205,3,0,42,42,319,319,467,467, +3,0,540,540,1503,1503,2311,2311,4,0,357,357,423,423,1250,1250,2353,2353, +3,0,87,87,632,632,679,679,2,0,1171,1171,1563,1563,5,0,478,478,633,633,899, +899,1326,1326,2075,2075,3,0,363,363,983,983,2356,2356,6,0,408,408,669,669, +784,784,845,845,935,938,1336,1337,2,0,137,137,2181,2181,2,0,2201,2201,2213, +2213,2,0,393,393,696,696,2,0,780,780,2288,2288,2,0,981,981,1125,1125,2,0, +21,21,1556,1556,2,0,559,559,641,641,2,0,387,387,2090,2090,2,0,879,879,2185, +2185,2,0,21,21,2205,2205,2,0,1376,1376,1605,1605,2,0,1241,1241,1254,1254, +2,0,1947,1947,2235,2235,2,0,160,160,532,532,2,0,4,4,1665,1665,2,0,38,38, +334,334,2,0,1625,1625,2106,2106,2,0,715,715,2081,2081,2,0,26,26,399,399, +2,0,1568,1568,1711,1711,3,0,630,630,1327,1327,1459,1459,3,0,206,206,1568, +1568,1711,1711,2,0,249,249,1566,1566,3,0,119,119,142,142,215,215,2,0,179, +179,1576,1576,2,0,339,339,396,396,2,0,289,289,291,291,2,0,684,684,687,687, +1,0,284,285,2,0,1213,1213,2251,2251,2,0,869,869,2079,2079,2,0,350,350,2087, +2087,3,0,696,696,1176,1176,2090,2090,2,0,1242,1242,1257,1257,2,0,122,122, +1703,1703,3,0,591,591,882,882,1117,1117,2,0,91,91,907,907,2,0,653,653,1106, +1106,2,0,673,673,895,895,2,0,387,387,2439,2439,2,0,242,242,404,404,2,0,509, +509,2159,2159,2,0,166,166,1064,1064,2,0,538,538,703,703,2,0,79,79,1792,1792, +3,0,249,249,576,576,614,614,3,0,250,250,576,576,614,614,2,0,871,871,911, +911,2,0,1178,1178,1597,1597,6,0,256,256,279,279,316,317,688,688,884,885, +1666,1666,3,0,387,387,2183,2183,2439,2439,4,0,569,569,700,700,1351,1353, +1355,1356,2,0,640,640,1453,1453,2,0,401,401,1445,1445,2,0,107,107,1638,1638, +2,0,467,467,1445,1445,2,0,768,768,857,857,2,0,1135,1135,2358,2358,2,0,558, +558,776,776,6,0,478,478,633,633,810,810,899,899,1326,1326,2075,2075,2,0, +64,64,1482,1482,2,0,29,29,106,106,2,0,176,176,1482,1482,5,0,324,324,673, +673,895,895,933,933,1131,1131,2,0,2183,2183,2439,2439,3,0,387,387,812,812, +1517,1517,3,0,387,387,812,812,1131,1131,3,0,401,401,427,427,497,497,2,0, +237,237,1604,1604,2,0,4,4,976,976,2,0,647,647,1643,1643,4,0,363,364,983, +983,985,985,2355,2356,1,0,2378,2381,2,0,261,261,867,867,1,0,2449,2450,2, +0,379,379,2362,2362,2,0,2258,2259,2261,2262,4,0,832,832,897,898,1201,1201, +1607,1607,2,0,365,365,2357,2357,2,0,388,388,1225,1225,2,0,49,49,1305,1305, +2,0,121,121,861,861,2,0,200,200,1065,1065,2,0,164,164,194,194,2,0,422,422, +1086,1086,1,0,449,450,3,0,1058,1058,1087,1087,1116,1116,3,0,105,105,436, +436,880,880,2,0,359,359,2106,2106,2,0,2460,2460,2469,2469,2,0,428,428,497, +497,4,0,106,106,673,673,895,895,933,933,2,0,428,428,498,498,2,0,2466,2466, +2469,2469,2,0,951,951,1121,1121,2,0,1445,1445,1473,1473,2,0,467,467,812, +812,2,0,49,49,812,812,2,0,40,40,433,433,3,0,249,249,480,480,1130,1130,2, +0,467,467,1585,1585,2,0,216,216,1732,1732,2,0,464,464,2209,2209,2,0,113, +113,506,506,2,0,883,883,1390,1390,3,0,98,98,1383,1383,1467,1467,2,0,242, +242,1439,1439,2,0,1,1,1759,1759,2,0,1390,1390,1705,1705,3,0,38,38,1131,1131, +1732,1732,3,0,673,673,961,961,2194,2194,4,0,427,427,497,497,1556,1556,1788, +1788,2,0,573,573,2156,2156,2,0,1556,1556,1669,1669,2,0,1795,1795,1947,1947, +2,0,920,920,923,923,1,0,924,926,2,0,38,38,833,833,2,0,503,503,1548,1548, +3,0,385,385,503,503,1548,1548,2,0,1503,1503,2311,2311,2,0,1346,1346,1773, +1773,2,0,1346,1346,1348,1348,1,0,1772,1773,2,0,778,778,2205,2205,2,0,1186, +1186,1707,1707,2,0,875,875,2256,2256,2,0,624,624,1371,1371,2,0,386,386,811, +811,3,0,673,673,895,895,933,933,2,0,334,334,1226,1226,2,0,640,640,871,871, +2,0,467,467,814,814,1,0,2431,2432,4,0,736,736,748,748,1078,1078,1316,1316, +2,0,387,387,2454,2454,1,1,2467,2467,1,0,1583,1584,2,0,108,108,696,696,2, +0,401,401,2427,2427,2,0,152,152,408,408,3,0,38,38,443,443,2181,2181,2,0, +325,325,1002,1002,2,0,325,325,1311,1311,3,0,628,628,837,837,1590,1590,3, +0,1625,1625,1705,1705,2106,2106,2,0,537,537,701,701,2,0,330,330,1596,1596, +2,0,690,690,812,812,2,0,38,38,2204,2204,2,0,95,95,1653,1653,1,0,1604,1605, +2,0,596,596,1023,1023,2,0,38,38,596,596,2,0,2081,2081,2098,2098,2,0,827, +827,1764,1764,2,0,934,934,1770,1770,3,0,532,532,773,773,2179,2179,2,0,38, +38,443,443,2,0,851,853,855,855,1,0,2464,2465,2,0,518,518,2157,2157,3,0,979, +979,2448,2448,2452,2452,4,0,363,363,983,983,1634,1634,2356,2356,2,0,384, +384,705,705,4,0,311,311,596,596,823,823,856,856,3,0,543,543,1023,1023,1452, +1452,1,0,521,522,4,0,38,38,55,55,543,543,1706,1706,3,0,149,149,836,836,2144, +2144,2,0,3,3,1226,1226,2,0,163,163,196,196,2,0,68,68,1236,1236,2,0,783,783, +2256,2256,2,0,518,518,1226,1226,2,0,495,495,1226,1226,2,0,518,518,690,690, +3,0,518,518,690,690,1560,1560,4,0,518,518,690,690,1226,1226,1556,1556,3, +0,319,319,518,518,690,690,3,0,518,518,690,690,1226,1226,2,0,263,263,2174, +2174,2,0,181,181,2319,2319,2,0,443,443,2181,2181,2,0,1373,1375,1378,1378, +2,0,175,175,248,248,2,0,599,599,824,824,2,0,2400,2400,2403,2403,3,0,2123, +2124,2132,2132,2135,2136,2,0,2127,2127,2140,2140,2,0,197,197,1005,1005,2, +0,2321,2321,2329,2329,2,0,513,513,1094,1094,2,0,527,527,995,995,2,0,292, +292,453,453,2,0,668,668,1681,1681,10,0,1224,1224,2263,2263,2396,2398,2401, +2402,2404,2405,2407,2408,2410,2411,2413,2413,2417,2420,2433,2433,2,0,2389, +2390,2392,2395,1,0,2363,2368,2,0,1493,1493,1605,1605,2,0,611,611,1434,1434, +2,0,1180,1180,1622,1622,2,0,516,516,520,520,1,0,1720,1721,2,0,1307,1307, +1718,1718,2,0,242,242,1594,1594,3,0,242,242,1131,1131,1594,1594,2,0,690, +690,1569,1569,1,0,1379,1380,2,0,363,363,2356,2356,2,0,983,983,1634,1634, +2,0,42,42,467,467,2,0,319,319,467,467,2,0,42,42,319,319,3,0,42,42,467,467, +540,540,2,0,55,55,558,558,2,0,206,206,1462,1462,4,0,42,42,241,241,467,467, +1645,1645,4,0,42,42,467,467,1645,1645,2205,2205,3,0,401,401,467,467,754, +754,6,0,42,42,401,401,467,467,754,754,1645,1645,2205,2205,2,0,467,467,2205, +2205,3,0,42,42,467,467,645,645,3,0,42,42,467,467,1645,1645,3,0,42,42,319, +319,1574,1574,3,0,42,42,467,467,2239,2239,10,0,42,42,102,102,241,241,401, +401,467,467,754,754,879,879,1503,1503,1645,1645,2205,2205,5,0,42,42,319, +319,467,467,903,903,2183,2183,4,0,42,42,467,467,540,540,2175,2175,3,0,467, +467,944,944,2175,2175,2,0,46,46,85,85,2,0,419,419,2145,2145,6,0,363,363, +677,677,956,956,983,983,1634,1634,2356,2356,2,0,2434,2434,2441,2441,1,0, +2429,2430,256,0,6,6,8,8,10,12,14,14,16,16,19,20,29,29,32,32,43,43,45,45, +47,47,52,53,60,60,62,63,65,65,74,74,76,76,94,94,97,97,99,100,103,103,109, +110,114,114,117,117,136,136,154,154,170,172,176,177,184,184,207,211,214, +214,221,222,224,224,244,245,252,253,262,264,267,269,288,291,297,297,299, +301,320,320,323,324,329,329,332,332,353,353,355,355,357,358,364,364,372, +372,382,382,390,391,395,395,399,400,413,414,421,421,426,426,430,430,435, +435,446,446,473,474,480,480,485,485,491,491,496,496,499,499,515,515,526, +526,528,528,542,542,554,554,560,560,566,566,571,572,574,575,577,577,579, +580,584,584,588,589,601,601,607,607,619,619,632,632,634,634,639,639,656, +656,669,670,678,679,682,682,695,695,699,700,716,716,735,735,744,744,746, +746,749,749,768,768,779,779,784,784,793,807,809,809,818,818,820,820,827, +827,834,835,845,845,848,848,857,857,876,876,878,878,887,887,893,893,906, +906,908,908,913,916,927,927,935,939,946,946,957,957,970,970,974,974,976, +976,980,980,985,985,991,991,1010,1010,1053,1054,1059,1059,1061,1061,1069, +1069,1071,1071,1078,1078,1083,1084,1090,1090,1104,1104,1110,1112,1130,1130, +1137,1137,1148,1150,1153,1153,1155,1157,1162,1162,1167,1167,1170,1170,1177, +1177,1187,1187,1205,1205,1212,1212,1214,1216,1223,1223,1237,1237,1243,1243, +1250,1250,1252,1253,1274,1276,1288,1293,1298,1298,1336,1337,1340,1340,1342, +1343,1357,1357,1359,1360,1362,1362,1364,1364,1384,1384,1387,1388,1407,1407, +1411,1415,1423,1423,1425,1426,1429,1430,1438,1438,1446,1446,1448,1448,1450, +1451,1455,1455,1465,1465,1468,1470,1476,1476,1480,1480,1489,1489,1506,1506, +1519,1519,1551,1551,1554,1554,1570,1570,1592,1592,1598,1598,1610,1610,1615, +1615,1627,1627,1630,1630,1635,1636,1659,1659,1661,1661,1663,1663,1679,1680, +1686,1686,1709,1710,1724,1724,1728,1729,1731,1731,1741,1742,1763,1763,1776, +1777,1785,1785,1795,1795,1799,1799,1801,1801,1807,1807,1825,1825,1830,1831, +1835,1836,1858,1858,1870,1870,1873,1877,1902,1902,1930,1930,1941,1941,2072, +2074,2083,2083,2094,2094,2102,2103,2122,2122,2146,2146,2152,2152,2160,2160, +2168,2168,2174,2174,2186,2186,2193,2193,2199,2199,2213,2213,2217,2217,2221, +2221,2228,2228,2234,2234,2240,2240,2242,2243,2245,2250,2252,2252,2254,2254, +2270,2273,2285,2285,2287,2287,2294,2295,2305,2305,2310,2310,2353,2353,2355, +2355,2360,2360,2369,2381,2383,2383,2385,2385,2387,2388,2406,2406,2438,2438, +392,0,1,2,4,5,7,7,9,9,13,13,15,15,17,18,21,28,30,31,33,33,37,37,39,41,44, +44,46,46,48,48,50,50,54,54,56,59,61,61,64,64,66,66,68,68,71,73,75,75,77, +84,86,91,93,93,95,95,98,98,102,102,106,108,111,113,115,116,119,120,122,122, +124,130,132,135,137,140,142,147,149,153,155,159,161,163,166,169,173,174, +178,181,183,183,185,190,192,193,197,199,201,206,212,212,215,219,223,223, +225,233,235,243,246,246,248,251,254,257,260,261,265,266,270,277,279,285, +287,287,292,296,298,298,302,311,313,318,321,322,325,327,330,331,333,343, +345,351,354,354,356,356,362,363,366,371,373,378,380,381,383,386,389,389, +392,394,396,398,402,402,404,406,408,411,415,415,417,417,419,420,423,425, +427,427,431,434,437,439,441,442,444,445,447,448,452,453,460,466,468,468, +470,471,475,477,479,479,481,484,486,488,493,495,497,497,500,500,502,504, +507,507,509,514,517,520,523,523,525,525,527,527,529,532,535,538,540,541, +544,544,546,553,555,559,561,565,567,570,573,573,576,576,578,578,581,583, +587,587,591,599,602,604,606,606,608,612,614,617,620,625,627,631,635,638, +640,643,646,646,648,654,657,660,662,668,672,677,680,681,684,690,692,694, +696,698,701,714,717,731,733,734,737,743,745,745,747,747,751,753,755,766, +769,772,774,775,778,778,780,781,785,786,788,792,811,817,819,819,822,825, +828,831,833,833,836,844,846,847,849,854,856,856,859,860,863,866,868,875, +877,877,880,886,888,890,894,896,898,898,900,905,907,907,909,909,911,912, +917,926,928,934,940,945,947,953,955,956,958,961,964,969,971,973,977,979, +981,984,986,987,989,990,992,1002,1004,1009,1011,1019,1021,1052,1055,1057, +1060,1060,1062,1064,1066,1068,1070,1070,1073,1077,1079,1082,1085,1085,1088, +1089,1091,1097,1099,1103,1105,1109,1113,1114,1117,1129,1131,1131,1133,1136, +1138,1147,1151,1152,1154,1154,1158,1161,1163,1166,1168,1169,1171,1176,1178, +1178,1180,1184,1186,1186,1188,1200,1203,1204,1206,1211,1213,1213,1218,1222, +1224,1225,1227,1227,1229,1236,1238,1242,1245,1249,1251,1251,1254,1254,1256, +1256,1258,1269,1272,1273,1281,1287,1294,1297,1299,1300,1302,1304,1306,1306, +1308,1313,1315,1315,1317,1320,1323,1325,1327,1328,1330,1331,1333,1335,1338, +1338,1341,1341,1344,1356,1358,1358,1361,1361,1363,1363,1365,1366,1368,1372, +1376,1377,1383,1383,1385,1386,1389,1391,1394,1400,1402,1406,1409,1410,1416, +1416,1419,1422,1424,1424,1427,1428,1432,1437,1439,1439,1441,1445,1447,1447, +1449,1449,1453,1454,1456,1464,1466,1467,1472,1475,1477,1479,1481,1488,1491, +1495,1497,1500,1502,1504,1507,1509,1512,1518,1520,1549,1552,1553,1555,1556, +1558,1567,1569,1569,1571,1574,1576,1577,1579,1586,1588,1591,1593,1597,1599, +1609,1611,1614,1616,1626,1628,1629,1632,1634,1637,1644,1647,1651,1653,1653, +1657,1657,1660,1660,1662,1662,1664,1668,1670,1673,1676,1677,1681,1685,1687, +1689,1692,1696,1699,1703,1705,1708,1711,1716,1719,1720,1722,1723,1725,1727, +1730,1730,1732,1734,1737,1740,1743,1762,1764,1775,1778,1782,1784,1784,1786, +1793,1795,1798,1800,1800,1802,1806,1808,1824,1826,1829,1832,1834,1837,1857, +1859,1869,1871,1872,1878,1901,1903,1929,1931,1940,1942,2071,2076,2082,2084, +2091,2093,2093,2096,2098,2100,2101,2104,2104,2106,2106,2109,2118,2120,2121, +2123,2138,2140,2145,2148,2151,2153,2154,2156,2159,2161,2167,2170,2173,2175, +2178,2182,2185,2187,2192,2194,2197,2200,2204,2206,2212,2214,2216,2218,2220, +2222,2227,2229,2233,2235,2239,2241,2241,2244,2244,2251,2251,2253,2253,2256, +2256,2263,2269,2274,2283,2286,2286,2288,2292,2296,2298,2301,2304,2307,2307, +2309,2309,2311,2312,2314,2316,2318,2329,2331,2345,2347,2352,2356,2356,2358, +2358,2361,2361,2363,2368,2386,2386,2389,2397,2400,2400,2403,2410,2412,2418, +2420,2423,24461,0,2407,1,0,0,0,2,2581,1,0,0,0,4,2583,1,0,0,0,6,2640,1,0, +0,0,8,2665,1,0,0,0,10,2706,1,0,0,0,12,2712,1,0,0,0,14,2739,1,0,0,0,16,2741, +1,0,0,0,18,2760,1,0,0,0,20,2801,1,0,0,0,22,2833,1,0,0,0,24,2838,1,0,0,0, +26,2860,1,0,0,0,28,2862,1,0,0,0,30,2892,1,0,0,0,32,2894,1,0,0,0,34,2904, +1,0,0,0,36,2906,1,0,0,0,38,2908,1,0,0,0,40,2951,1,0,0,0,42,2953,1,0,0,0, +44,2993,1,0,0,0,46,3006,1,0,0,0,48,3008,1,0,0,0,50,3026,1,0,0,0,52,3037, +1,0,0,0,54,3043,1,0,0,0,56,3053,1,0,0,0,58,3087,1,0,0,0,60,3126,1,0,0,0, +62,3128,1,0,0,0,64,3160,1,0,0,0,66,3184,1,0,0,0,68,3234,1,0,0,0,70,3236, +1,0,0,0,72,3238,1,0,0,0,74,3244,1,0,0,0,76,3246,1,0,0,0,78,3265,1,0,0,0, +80,3273,1,0,0,0,82,3280,1,0,0,0,84,3286,1,0,0,0,86,3288,1,0,0,0,88,3302, +1,0,0,0,90,3304,1,0,0,0,92,3317,1,0,0,0,94,3321,1,0,0,0,96,3356,1,0,0,0, +98,3370,1,0,0,0,100,3391,1,0,0,0,102,3426,1,0,0,0,104,3428,1,0,0,0,106,3486, +1,0,0,0,108,3494,1,0,0,0,110,3498,1,0,0,0,112,3512,1,0,0,0,114,3522,1,0, +0,0,116,3535,1,0,0,0,118,3539,1,0,0,0,120,3543,1,0,0,0,122,3551,1,0,0,0, +124,3554,1,0,0,0,126,3566,1,0,0,0,128,3571,1,0,0,0,130,3592,1,0,0,0,132, +3594,1,0,0,0,134,3608,1,0,0,0,136,3626,1,0,0,0,138,3644,1,0,0,0,140,3667, +1,0,0,0,142,3689,1,0,0,0,144,3724,1,0,0,0,146,3726,1,0,0,0,148,3734,1,0, +0,0,150,3736,1,0,0,0,152,3741,1,0,0,0,154,3753,1,0,0,0,156,3773,1,0,0,0, +158,3802,1,0,0,0,160,3849,1,0,0,0,162,3851,1,0,0,0,164,3875,1,0,0,0,166, +3915,1,0,0,0,168,3917,1,0,0,0,170,3939,1,0,0,0,172,3953,1,0,0,0,174,3957, +1,0,0,0,176,3974,1,0,0,0,178,4020,1,0,0,0,180,4056,1,0,0,0,182,4094,1,0, +0,0,184,4103,1,0,0,0,186,4107,1,0,0,0,188,4121,1,0,0,0,190,4131,1,0,0,0, +192,4136,1,0,0,0,194,4140,1,0,0,0,196,4159,1,0,0,0,198,4161,1,0,0,0,200, +4163,1,0,0,0,202,4178,1,0,0,0,204,4182,1,0,0,0,206,4205,1,0,0,0,208,4228, +1,0,0,0,210,4237,1,0,0,0,212,4246,1,0,0,0,214,4255,1,0,0,0,216,4259,1,0, +0,0,218,4264,1,0,0,0,220,4287,1,0,0,0,222,4289,1,0,0,0,224,4339,1,0,0,0, +226,4367,1,0,0,0,228,4369,1,0,0,0,230,4383,1,0,0,0,232,4388,1,0,0,0,234, +4396,1,0,0,0,236,4404,1,0,0,0,238,4407,1,0,0,0,240,4416,1,0,0,0,242,4430, +1,0,0,0,244,4447,1,0,0,0,246,4464,1,0,0,0,248,4472,1,0,0,0,250,4477,1,0, +0,0,252,4501,1,0,0,0,254,4504,1,0,0,0,256,4510,1,0,0,0,258,4523,1,0,0,0, +260,4535,1,0,0,0,262,4563,1,0,0,0,264,4569,1,0,0,0,266,4572,1,0,0,0,268, +4579,1,0,0,0,270,4587,1,0,0,0,272,4600,1,0,0,0,274,4602,1,0,0,0,276,4606, +1,0,0,0,278,4612,1,0,0,0,280,4637,1,0,0,0,282,4668,1,0,0,0,284,4713,1,0, +0,0,286,4723,1,0,0,0,288,4725,1,0,0,0,290,4730,1,0,0,0,292,4744,1,0,0,0, +294,4746,1,0,0,0,296,4751,1,0,0,0,298,4755,1,0,0,0,300,4793,1,0,0,0,302, +4809,1,0,0,0,304,4842,1,0,0,0,306,4877,1,0,0,0,308,4881,1,0,0,0,310,4896, +1,0,0,0,312,4898,1,0,0,0,314,4901,1,0,0,0,316,4905,1,0,0,0,318,4913,1,0, +0,0,320,4976,1,0,0,0,322,4978,1,0,0,0,324,5028,1,0,0,0,326,5030,1,0,0,0, +328,5034,1,0,0,0,330,5107,1,0,0,0,332,5109,1,0,0,0,334,5112,1,0,0,0,336, +5115,1,0,0,0,338,5127,1,0,0,0,340,5129,1,0,0,0,342,5145,1,0,0,0,344,5158, +1,0,0,0,346,5224,1,0,0,0,348,5236,1,0,0,0,350,5248,1,0,0,0,352,5260,1,0, +0,0,354,5265,1,0,0,0,356,5270,1,0,0,0,358,5274,1,0,0,0,360,5279,1,0,0,0, +362,5283,1,0,0,0,364,5288,1,0,0,0,366,5297,1,0,0,0,368,5320,1,0,0,0,370, +5333,1,0,0,0,372,5358,1,0,0,0,374,5360,1,0,0,0,376,5379,1,0,0,0,378,5385, +1,0,0,0,380,5427,1,0,0,0,382,5445,1,0,0,0,384,5457,1,0,0,0,386,5463,1,0, +0,0,388,5474,1,0,0,0,390,5485,1,0,0,0,392,5500,1,0,0,0,394,5515,1,0,0,0, +396,5586,1,0,0,0,398,5601,1,0,0,0,400,5604,1,0,0,0,402,5612,1,0,0,0,404, +5632,1,0,0,0,406,5660,1,0,0,0,408,5672,1,0,0,0,410,5676,1,0,0,0,412,5685, +1,0,0,0,414,5717,1,0,0,0,416,5719,1,0,0,0,418,5728,1,0,0,0,420,5730,1,0, +0,0,422,5760,1,0,0,0,424,5762,1,0,0,0,426,5771,1,0,0,0,428,5829,1,0,0,0, +430,5831,1,0,0,0,432,5852,1,0,0,0,434,5858,1,0,0,0,436,5860,1,0,0,0,438, +5912,1,0,0,0,440,5924,1,0,0,0,442,5933,1,0,0,0,444,5954,1,0,0,0,446,5958, +1,0,0,0,448,5962,1,0,0,0,450,5996,1,0,0,0,452,6004,1,0,0,0,454,6016,1,0, +0,0,456,6022,1,0,0,0,458,6029,1,0,0,0,460,6031,1,0,0,0,462,6055,1,0,0,0, +464,6063,1,0,0,0,466,6067,1,0,0,0,468,6090,1,0,0,0,470,6136,1,0,0,0,472, +6151,1,0,0,0,474,6153,1,0,0,0,476,6167,1,0,0,0,478,6199,1,0,0,0,480,6208, +1,0,0,0,482,6224,1,0,0,0,484,6266,1,0,0,0,486,6297,1,0,0,0,488,6299,1,0, +0,0,490,6306,1,0,0,0,492,6317,1,0,0,0,494,6328,1,0,0,0,496,6366,1,0,0,0, +498,6368,1,0,0,0,500,6395,1,0,0,0,502,6408,1,0,0,0,504,6449,1,0,0,0,506, +6451,1,0,0,0,508,6465,1,0,0,0,510,6470,1,0,0,0,512,6474,1,0,0,0,514,6487, +1,0,0,0,516,6512,1,0,0,0,518,6514,1,0,0,0,520,6516,1,0,0,0,522,6518,1,0, +0,0,524,6552,1,0,0,0,526,6554,1,0,0,0,528,6571,1,0,0,0,530,6586,1,0,0,0, +532,6591,1,0,0,0,534,6617,1,0,0,0,536,6619,1,0,0,0,538,6629,1,0,0,0,540, +6633,1,0,0,0,542,6659,1,0,0,0,544,6679,1,0,0,0,546,6687,1,0,0,0,548,6689, +1,0,0,0,550,6691,1,0,0,0,552,6693,1,0,0,0,554,6716,1,0,0,0,556,6765,1,0, +0,0,558,6767,1,0,0,0,560,6777,1,0,0,0,562,6782,1,0,0,0,564,6786,1,0,0,0, +566,6792,1,0,0,0,568,6796,1,0,0,0,570,6804,1,0,0,0,572,6830,1,0,0,0,574, +6832,1,0,0,0,576,6838,1,0,0,0,578,6841,1,0,0,0,580,6844,1,0,0,0,582,6847, +1,0,0,0,584,6901,1,0,0,0,586,6903,1,0,0,0,588,6914,1,0,0,0,590,6922,1,0, +0,0,592,6933,1,0,0,0,594,6935,1,0,0,0,596,6953,1,0,0,0,598,6955,1,0,0,0, +600,6972,1,0,0,0,602,6982,1,0,0,0,604,6985,1,0,0,0,606,6994,1,0,0,0,608, +7008,1,0,0,0,610,7022,1,0,0,0,612,7040,1,0,0,0,614,7055,1,0,0,0,616,7072, +1,0,0,0,618,7096,1,0,0,0,620,7098,1,0,0,0,622,7127,1,0,0,0,624,7156,1,0, +0,0,626,7158,1,0,0,0,628,7160,1,0,0,0,630,7176,1,0,0,0,632,7188,1,0,0,0, +634,7221,1,0,0,0,636,7238,1,0,0,0,638,7255,1,0,0,0,640,7271,1,0,0,0,642, +7310,1,0,0,0,644,7317,1,0,0,0,646,7321,1,0,0,0,648,7329,1,0,0,0,650,7331, +1,0,0,0,652,7349,1,0,0,0,654,7361,1,0,0,0,656,7378,1,0,0,0,658,7393,1,0, +0,0,660,7403,1,0,0,0,662,7409,1,0,0,0,664,7413,1,0,0,0,666,7415,1,0,0,0, +668,7417,1,0,0,0,670,7432,1,0,0,0,672,7500,1,0,0,0,674,7531,1,0,0,0,676, +7533,1,0,0,0,678,7541,1,0,0,0,680,7591,1,0,0,0,682,7593,1,0,0,0,684,7600, +1,0,0,0,686,7605,1,0,0,0,688,7607,1,0,0,0,690,7617,1,0,0,0,692,7678,1,0, +0,0,694,7693,1,0,0,0,696,7695,1,0,0,0,698,7700,1,0,0,0,700,7702,1,0,0,0, +702,7712,1,0,0,0,704,7714,1,0,0,0,706,7716,1,0,0,0,708,7718,1,0,0,0,710, +7722,1,0,0,0,712,7724,1,0,0,0,714,7730,1,0,0,0,716,7777,1,0,0,0,718,7779, +1,0,0,0,720,7806,1,0,0,0,722,7810,1,0,0,0,724,7851,1,0,0,0,726,7853,1,0, +0,0,728,7862,1,0,0,0,730,7873,1,0,0,0,732,7877,1,0,0,0,734,7879,1,0,0,0, +736,7897,1,0,0,0,738,7904,1,0,0,0,740,7911,1,0,0,0,742,7985,1,0,0,0,744, +7987,1,0,0,0,746,7994,1,0,0,0,748,8121,1,0,0,0,750,8132,1,0,0,0,752,8143, +1,0,0,0,754,8174,1,0,0,0,756,8182,1,0,0,0,758,8198,1,0,0,0,760,8222,1,0, +0,0,762,8227,1,0,0,0,764,8280,1,0,0,0,766,8284,1,0,0,0,768,8299,1,0,0,0, +770,8306,1,0,0,0,772,8323,1,0,0,0,774,8346,1,0,0,0,776,8402,1,0,0,0,778, +8413,1,0,0,0,780,8421,1,0,0,0,782,8436,1,0,0,0,784,8451,1,0,0,0,786,8453, +1,0,0,0,788,8455,1,0,0,0,790,8492,1,0,0,0,792,8501,1,0,0,0,794,8521,1,0, +0,0,796,8531,1,0,0,0,798,8535,1,0,0,0,800,8607,1,0,0,0,802,8618,1,0,0,0, +804,8636,1,0,0,0,806,8640,1,0,0,0,808,8643,1,0,0,0,810,8646,1,0,0,0,812, +8652,1,0,0,0,814,8657,1,0,0,0,816,8661,1,0,0,0,818,8710,1,0,0,0,820,8740, +1,0,0,0,822,8762,1,0,0,0,824,8771,1,0,0,0,826,8775,1,0,0,0,828,8798,1,0, +0,0,830,8800,1,0,0,0,832,8837,1,0,0,0,834,8840,1,0,0,0,836,8904,1,0,0,0, +838,8909,1,0,0,0,840,8911,1,0,0,0,842,8931,1,0,0,0,844,8985,1,0,0,0,846, +9014,1,0,0,0,848,9051,1,0,0,0,850,9055,1,0,0,0,852,9106,1,0,0,0,854,9110, +1,0,0,0,856,9134,1,0,0,0,858,9161,1,0,0,0,860,9163,1,0,0,0,862,9165,1,0, +0,0,864,9248,1,0,0,0,866,9256,1,0,0,0,868,9258,1,0,0,0,870,9264,1,0,0,0, +872,9275,1,0,0,0,874,9277,1,0,0,0,876,9280,1,0,0,0,878,9282,1,0,0,0,880, +9291,1,0,0,0,882,9321,1,0,0,0,884,9324,1,0,0,0,886,9326,1,0,0,0,888,9337, +1,0,0,0,890,9342,1,0,0,0,892,9359,1,0,0,0,894,9376,1,0,0,0,896,9379,1,0, +0,0,898,9430,1,0,0,0,900,9432,1,0,0,0,902,9440,1,0,0,0,904,9456,1,0,0,0, +906,9469,1,0,0,0,908,9471,1,0,0,0,910,9510,1,0,0,0,912,9512,1,0,0,0,914, +9518,1,0,0,0,916,9525,1,0,0,0,918,9549,1,0,0,0,920,9562,1,0,0,0,922,9574, +1,0,0,0,924,9579,1,0,0,0,926,9597,1,0,0,0,928,9599,1,0,0,0,930,9602,1,0, +0,0,932,9653,1,0,0,0,934,9655,1,0,0,0,936,9686,1,0,0,0,938,9688,1,0,0,0, +940,9698,1,0,0,0,942,9723,1,0,0,0,944,9728,1,0,0,0,946,9733,1,0,0,0,948, +9771,1,0,0,0,950,9833,1,0,0,0,952,9837,1,0,0,0,954,9842,1,0,0,0,956,9866, +1,0,0,0,958,9879,1,0,0,0,960,9884,1,0,0,0,962,9910,1,0,0,0,964,9914,1,0, +0,0,966,9919,1,0,0,0,968,9924,1,0,0,0,970,9932,1,0,0,0,972,9938,1,0,0,0, +974,9941,1,0,0,0,976,9949,1,0,0,0,978,9955,1,0,0,0,980,9976,1,0,0,0,982, +9999,1,0,0,0,984,10007,1,0,0,0,986,10009,1,0,0,0,988,10017,1,0,0,0,990,10029, +1,0,0,0,992,10046,1,0,0,0,994,10049,1,0,0,0,996,10064,1,0,0,0,998,10147, +1,0,0,0,1000,10162,1,0,0,0,1002,10207,1,0,0,0,1004,10209,1,0,0,0,1006,10217, +1,0,0,0,1008,10228,1,0,0,0,1010,10248,1,0,0,0,1012,10250,1,0,0,0,1014,10302, +1,0,0,0,1016,10326,1,0,0,0,1018,10345,1,0,0,0,1020,10347,1,0,0,0,1022,10355, +1,0,0,0,1024,10358,1,0,0,0,1026,10361,1,0,0,0,1028,10389,1,0,0,0,1030,10414, +1,0,0,0,1032,10423,1,0,0,0,1034,10475,1,0,0,0,1036,10511,1,0,0,0,1038,10533, +1,0,0,0,1040,10575,1,0,0,0,1042,10579,1,0,0,0,1044,10593,1,0,0,0,1046,10634, +1,0,0,0,1048,10636,1,0,0,0,1050,10650,1,0,0,0,1052,10681,1,0,0,0,1054,10684, +1,0,0,0,1056,10702,1,0,0,0,1058,10708,1,0,0,0,1060,10727,1,0,0,0,1062,10731, +1,0,0,0,1064,10733,1,0,0,0,1066,10742,1,0,0,0,1068,10757,1,0,0,0,1070,10761, +1,0,0,0,1072,10770,1,0,0,0,1074,10785,1,0,0,0,1076,10791,1,0,0,0,1078,10823, +1,0,0,0,1080,10825,1,0,0,0,1082,10828,1,0,0,0,1084,10831,1,0,0,0,1086,10857, +1,0,0,0,1088,10868,1,0,0,0,1090,10880,1,0,0,0,1092,10882,1,0,0,0,1094,10901, +1,0,0,0,1096,10903,1,0,0,0,1098,10914,1,0,0,0,1100,10928,1,0,0,0,1102,10949, +1,0,0,0,1104,10951,1,0,0,0,1106,10959,1,0,0,0,1108,10969,1,0,0,0,1110,10971, +1,0,0,0,1112,11027,1,0,0,0,1114,11055,1,0,0,0,1116,11072,1,0,0,0,1118,11095, +1,0,0,0,1120,11132,1,0,0,0,1122,11134,1,0,0,0,1124,11184,1,0,0,0,1126,11206, +1,0,0,0,1128,11226,1,0,0,0,1130,11245,1,0,0,0,1132,11251,1,0,0,0,1134,11266, +1,0,0,0,1136,11308,1,0,0,0,1138,11350,1,0,0,0,1140,11384,1,0,0,0,1142,11386, +1,0,0,0,1144,11402,1,0,0,0,1146,11411,1,0,0,0,1148,11444,1,0,0,0,1150,11446, +1,0,0,0,1152,11454,1,0,0,0,1154,11462,1,0,0,0,1156,11469,1,0,0,0,1158,11486, +1,0,0,0,1160,11511,1,0,0,0,1162,11513,1,0,0,0,1164,11539,1,0,0,0,1166,11598, +1,0,0,0,1168,11602,1,0,0,0,1170,11626,1,0,0,0,1172,11671,1,0,0,0,1174,11692, +1,0,0,0,1176,11698,1,0,0,0,1178,11713,1,0,0,0,1180,11715,1,0,0,0,1182,11718, +1,0,0,0,1184,11745,1,0,0,0,1186,11753,1,0,0,0,1188,11769,1,0,0,0,1190,11773, +1,0,0,0,1192,11808,1,0,0,0,1194,11823,1,0,0,0,1196,11870,1,0,0,0,1198,11872, +1,0,0,0,1200,11887,1,0,0,0,1202,11908,1,0,0,0,1204,11910,1,0,0,0,1206,11938, +1,0,0,0,1208,11940,1,0,0,0,1210,11952,1,0,0,0,1212,11959,1,0,0,0,1214,11963, +1,0,0,0,1216,11971,1,0,0,0,1218,11992,1,0,0,0,1220,11997,1,0,0,0,1222,12054, +1,0,0,0,1224,12056,1,0,0,0,1226,12094,1,0,0,0,1228,12105,1,0,0,0,1230,12113, +1,0,0,0,1232,12124,1,0,0,0,1234,12235,1,0,0,0,1236,12262,1,0,0,0,1238,12264, +1,0,0,0,1240,12267,1,0,0,0,1242,12285,1,0,0,0,1244,12288,1,0,0,0,1246,12310, +1,0,0,0,1248,12355,1,0,0,0,1250,12394,1,0,0,0,1252,12402,1,0,0,0,1254,12404, +1,0,0,0,1256,12522,1,0,0,0,1258,12524,1,0,0,0,1260,12621,1,0,0,0,1262,12659, +1,0,0,0,1264,12676,1,0,0,0,1266,12679,1,0,0,0,1268,12692,1,0,0,0,1270,12696, +1,0,0,0,1272,12738,1,0,0,0,1274,12740,1,0,0,0,1276,12763,1,0,0,0,1278,12786, +1,0,0,0,1280,12802,1,0,0,0,1282,12808,1,0,0,0,1284,12820,1,0,0,0,1286,12824, +1,0,0,0,1288,12833,1,0,0,0,1290,12857,1,0,0,0,1292,12882,1,0,0,0,1294,12898, +1,0,0,0,1296,12905,1,0,0,0,1298,12915,1,0,0,0,1300,12926,1,0,0,0,1302,12933, +1,0,0,0,1304,12935,1,0,0,0,1306,12937,1,0,0,0,1308,12997,1,0,0,0,1310,12999, +1,0,0,0,1312,13013,1,0,0,0,1314,13032,1,0,0,0,1316,13034,1,0,0,0,1318,13036, +1,0,0,0,1320,13043,1,0,0,0,1322,13051,1,0,0,0,1324,13068,1,0,0,0,1326,13098, +1,0,0,0,1328,13102,1,0,0,0,1330,13110,1,0,0,0,1332,13132,1,0,0,0,1334,13147, +1,0,0,0,1336,13197,1,0,0,0,1338,13213,1,0,0,0,1340,13223,1,0,0,0,1342,13233, +1,0,0,0,1344,13238,1,0,0,0,1346,13243,1,0,0,0,1348,13254,1,0,0,0,1350,13258, +1,0,0,0,1352,13262,1,0,0,0,1354,13275,1,0,0,0,1356,13281,1,0,0,0,1358,13288, +1,0,0,0,1360,13290,1,0,0,0,1362,13292,1,0,0,0,1364,13312,1,0,0,0,1366,13337, +1,0,0,0,1368,13339,1,0,0,0,1370,13341,1,0,0,0,1372,13348,1,0,0,0,1374,13350, +1,0,0,0,1376,13352,1,0,0,0,1378,13385,1,0,0,0,1380,13430,1,0,0,0,1382,13432, +1,0,0,0,1384,13463,1,0,0,0,1386,13500,1,0,0,0,1388,13519,1,0,0,0,1390,13521, +1,0,0,0,1392,13541,1,0,0,0,1394,13569,1,0,0,0,1396,13594,1,0,0,0,1398,13676, +1,0,0,0,1400,13678,1,0,0,0,1402,13722,1,0,0,0,1404,13726,1,0,0,0,1406,13750, +1,0,0,0,1408,13757,1,0,0,0,1410,13765,1,0,0,0,1412,13767,1,0,0,0,1414,13786, +1,0,0,0,1416,13809,1,0,0,0,1418,13811,1,0,0,0,1420,13829,1,0,0,0,1422,13834, +1,0,0,0,1424,13844,1,0,0,0,1426,13851,1,0,0,0,1428,13859,1,0,0,0,1430,13892, +1,0,0,0,1432,13915,1,0,0,0,1434,13920,1,0,0,0,1436,13971,1,0,0,0,1438,13973, +1,0,0,0,1440,13978,1,0,0,0,1442,13982,1,0,0,0,1444,13985,1,0,0,0,1446,13987, +1,0,0,0,1448,13989,1,0,0,0,1450,13991,1,0,0,0,1452,13993,1,0,0,0,1454,13995, +1,0,0,0,1456,14009,1,0,0,0,1458,14014,1,0,0,0,1460,14021,1,0,0,0,1462,14023, +1,0,0,0,1464,14028,1,0,0,0,1466,14033,1,0,0,0,1468,14039,1,0,0,0,1470,14043, +1,0,0,0,1472,14069,1,0,0,0,1474,14071,1,0,0,0,1476,14078,1,0,0,0,1478,14090, +1,0,0,0,1480,14150,1,0,0,0,1482,14154,1,0,0,0,1484,14176,1,0,0,0,1486,14178, +1,0,0,0,1488,14198,1,0,0,0,1490,14214,1,0,0,0,1492,14219,1,0,0,0,1494,14227, +1,0,0,0,1496,14231,1,0,0,0,1498,14242,1,0,0,0,1500,14270,1,0,0,0,1502,14286, +1,0,0,0,1504,14295,1,0,0,0,1506,14327,1,0,0,0,1508,14335,1,0,0,0,1510,14368, +1,0,0,0,1512,14370,1,0,0,0,1514,14397,1,0,0,0,1516,14416,1,0,0,0,1518,14442, +1,0,0,0,1520,14444,1,0,0,0,1522,14476,1,0,0,0,1524,14494,1,0,0,0,1526,14506, +1,0,0,0,1528,14508,1,0,0,0,1530,14527,1,0,0,0,1532,14538,1,0,0,0,1534,14547, +1,0,0,0,1536,14572,1,0,0,0,1538,14626,1,0,0,0,1540,14650,1,0,0,0,1542,14664, +1,0,0,0,1544,14674,1,0,0,0,1546,14683,1,0,0,0,1548,14712,1,0,0,0,1550,14716, +1,0,0,0,1552,14753,1,0,0,0,1554,14806,1,0,0,0,1556,14817,1,0,0,0,1558,14819, +1,0,0,0,1560,14835,1,0,0,0,1562,14837,1,0,0,0,1564,14862,1,0,0,0,1566,14864, +1,0,0,0,1568,14868,1,0,0,0,1570,14876,1,0,0,0,1572,14890,1,0,0,0,1574,14901, +1,0,0,0,1576,14916,1,0,0,0,1578,14951,1,0,0,0,1580,14973,1,0,0,0,1582,14977, +1,0,0,0,1584,14979,1,0,0,0,1586,14983,1,0,0,0,1588,15018,1,0,0,0,1590,15023, +1,0,0,0,1592,15028,1,0,0,0,1594,15032,1,0,0,0,1596,15042,1,0,0,0,1598,15044, +1,0,0,0,1600,15052,1,0,0,0,1602,15054,1,0,0,0,1604,15060,1,0,0,0,1606,15062, +1,0,0,0,1608,15068,1,0,0,0,1610,15134,1,0,0,0,1612,15136,1,0,0,0,1614,15164, +1,0,0,0,1616,15193,1,0,0,0,1618,15196,1,0,0,0,1620,15208,1,0,0,0,1622,15235, +1,0,0,0,1624,15244,1,0,0,0,1626,15260,1,0,0,0,1628,15265,1,0,0,0,1630,15274, +1,0,0,0,1632,15276,1,0,0,0,1634,15323,1,0,0,0,1636,15356,1,0,0,0,1638,15385, +1,0,0,0,1640,15389,1,0,0,0,1642,15396,1,0,0,0,1644,15398,1,0,0,0,1646,15408, +1,0,0,0,1648,15424,1,0,0,0,1650,15429,1,0,0,0,1652,15458,1,0,0,0,1654,15462, +1,0,0,0,1656,15497,1,0,0,0,1658,15509,1,0,0,0,1660,15511,1,0,0,0,1662,15513, +1,0,0,0,1664,15554,1,0,0,0,1666,15556,1,0,0,0,1668,15584,1,0,0,0,1670,15614, +1,0,0,0,1672,15616,1,0,0,0,1674,15678,1,0,0,0,1676,15680,1,0,0,0,1678,15703, +1,0,0,0,1680,15708,1,0,0,0,1682,15716,1,0,0,0,1684,15753,1,0,0,0,1686,15774, +1,0,0,0,1688,15778,1,0,0,0,1690,15780,1,0,0,0,1692,15786,1,0,0,0,1694,15844, +1,0,0,0,1696,15846,1,0,0,0,1698,15848,1,0,0,0,1700,15850,1,0,0,0,1702,15879, +1,0,0,0,1704,15886,1,0,0,0,1706,15893,1,0,0,0,1708,15907,1,0,0,0,1710,15916, +1,0,0,0,1712,15930,1,0,0,0,1714,15935,1,0,0,0,1716,15937,1,0,0,0,1718,15945, +1,0,0,0,1720,15970,1,0,0,0,1722,15976,1,0,0,0,1724,16008,1,0,0,0,1726,16019, +1,0,0,0,1728,16021,1,0,0,0,1730,16034,1,0,0,0,1732,16038,1,0,0,0,1734,16053, +1,0,0,0,1736,16055,1,0,0,0,1738,16071,1,0,0,0,1740,16088,1,0,0,0,1742,16113, +1,0,0,0,1744,16123,1,0,0,0,1746,16127,1,0,0,0,1748,16172,1,0,0,0,1750,16184, +1,0,0,0,1752,16195,1,0,0,0,1754,16201,1,0,0,0,1756,16212,1,0,0,0,1758,16224, +1,0,0,0,1760,16234,1,0,0,0,1762,16256,1,0,0,0,1764,16260,1,0,0,0,1766,16283, +1,0,0,0,1768,16287,1,0,0,0,1770,16292,1,0,0,0,1772,16300,1,0,0,0,1774,16308, +1,0,0,0,1776,16311,1,0,0,0,1778,16327,1,0,0,0,1780,16332,1,0,0,0,1782,16336, +1,0,0,0,1784,16376,1,0,0,0,1786,16378,1,0,0,0,1788,16401,1,0,0,0,1790,16403, +1,0,0,0,1792,16408,1,0,0,0,1794,16410,1,0,0,0,1796,16412,1,0,0,0,1798,16414, +1,0,0,0,1800,16418,1,0,0,0,1802,16423,1,0,0,0,1804,16443,1,0,0,0,1806,16449, +1,0,0,0,1808,16466,1,0,0,0,1810,16480,1,0,0,0,1812,16484,1,0,0,0,1814,16498, +1,0,0,0,1816,16517,1,0,0,0,1818,16524,1,0,0,0,1820,16536,1,0,0,0,1822,16545, +1,0,0,0,1824,16547,1,0,0,0,1826,16561,1,0,0,0,1828,16571,1,0,0,0,1830,16577, +1,0,0,0,1832,16579,1,0,0,0,1834,16582,1,0,0,0,1836,16591,1,0,0,0,1838,16624, +1,0,0,0,1840,16626,1,0,0,0,1842,16641,1,0,0,0,1844,16643,1,0,0,0,1846,16664, +1,0,0,0,1848,16679,1,0,0,0,1850,16704,1,0,0,0,1852,16712,1,0,0,0,1854,16725, +1,0,0,0,1856,16728,1,0,0,0,1858,16753,1,0,0,0,1860,16774,1,0,0,0,1862,16778, +1,0,0,0,1864,16821,1,0,0,0,1866,16825,1,0,0,0,1868,16827,1,0,0,0,1870,16844, +1,0,0,0,1872,16887,1,0,0,0,1874,16896,1,0,0,0,1876,16904,1,0,0,0,1878,16915, +1,0,0,0,1880,16927,1,0,0,0,1882,16942,1,0,0,0,1884,16947,1,0,0,0,1886,16960, +1,0,0,0,1888,16966,1,0,0,0,1890,16978,1,0,0,0,1892,16986,1,0,0,0,1894,16990, +1,0,0,0,1896,17032,1,0,0,0,1898,17034,1,0,0,0,1900,17045,1,0,0,0,1902,17047, +1,0,0,0,1904,17055,1,0,0,0,1906,17066,1,0,0,0,1908,17099,1,0,0,0,1910,17126, +1,0,0,0,1912,17128,1,0,0,0,1914,17131,1,0,0,0,1916,17134,1,0,0,0,1918,17138, +1,0,0,0,1920,17174,1,0,0,0,1922,17176,1,0,0,0,1924,17201,1,0,0,0,1926,17206, +1,0,0,0,1928,17211,1,0,0,0,1930,17234,1,0,0,0,1932,17244,1,0,0,0,1934,17246, +1,0,0,0,1936,17262,1,0,0,0,1938,17276,1,0,0,0,1940,17312,1,0,0,0,1942,17314, +1,0,0,0,1944,17344,1,0,0,0,1946,17349,1,0,0,0,1948,17351,1,0,0,0,1950,17363, +1,0,0,0,1952,17383,1,0,0,0,1954,17385,1,0,0,0,1956,17388,1,0,0,0,1958,17414, +1,0,0,0,1960,17416,1,0,0,0,1962,17420,1,0,0,0,1964,17435,1,0,0,0,1966,17447, +1,0,0,0,1968,17455,1,0,0,0,1970,17459,1,0,0,0,1972,17472,1,0,0,0,1974,17478, +1,0,0,0,1976,17493,1,0,0,0,1978,17513,1,0,0,0,1980,17522,1,0,0,0,1982,17524, +1,0,0,0,1984,17531,1,0,0,0,1986,17536,1,0,0,0,1988,17549,1,0,0,0,1990,17557, +1,0,0,0,1992,17561,1,0,0,0,1994,17575,1,0,0,0,1996,17583,1,0,0,0,1998,17591, +1,0,0,0,2000,17593,1,0,0,0,2002,17605,1,0,0,0,2004,17631,1,0,0,0,2006,17633, +1,0,0,0,2008,17647,1,0,0,0,2010,17652,1,0,0,0,2012,17670,1,0,0,0,2014,17674, +1,0,0,0,2016,17682,1,0,0,0,2018,17692,1,0,0,0,2020,17700,1,0,0,0,2022,17706, +1,0,0,0,2024,17711,1,0,0,0,2026,17720,1,0,0,0,2028,17745,1,0,0,0,2030,17764, +1,0,0,0,2032,17768,1,0,0,0,2034,17771,1,0,0,0,2036,17793,1,0,0,0,2038,17798, +1,0,0,0,2040,17817,1,0,0,0,2042,17819,1,0,0,0,2044,17835,1,0,0,0,2046,17843, +1,0,0,0,2048,17848,1,0,0,0,2050,17852,1,0,0,0,2052,17863,1,0,0,0,2054,17866, +1,0,0,0,2056,17908,1,0,0,0,2058,17910,1,0,0,0,2060,17923,1,0,0,0,2062,17934, +1,0,0,0,2064,17948,1,0,0,0,2066,17959,1,0,0,0,2068,17961,1,0,0,0,2070,17978, +1,0,0,0,2072,17980,1,0,0,0,2074,17985,1,0,0,0,2076,18000,1,0,0,0,2078,18006, +1,0,0,0,2080,18050,1,0,0,0,2082,18052,1,0,0,0,2084,18076,1,0,0,0,2086,18094, +1,0,0,0,2088,18126,1,0,0,0,2090,18146,1,0,0,0,2092,18148,1,0,0,0,2094,18152, +1,0,0,0,2096,18217,1,0,0,0,2098,18219,1,0,0,0,2100,18249,1,0,0,0,2102,18251, +1,0,0,0,2104,18272,1,0,0,0,2106,18304,1,0,0,0,2108,18321,1,0,0,0,2110,18340, +1,0,0,0,2112,18353,1,0,0,0,2114,18356,1,0,0,0,2116,18376,1,0,0,0,2118,18394, +1,0,0,0,2120,18399,1,0,0,0,2122,18404,1,0,0,0,2124,18406,1,0,0,0,2126,18420, +1,0,0,0,2128,18433,1,0,0,0,2130,18438,1,0,0,0,2132,18461,1,0,0,0,2134,18463, +1,0,0,0,2136,18567,1,0,0,0,2138,18573,1,0,0,0,2140,18763,1,0,0,0,2142,18774, +1,0,0,0,2144,18804,1,0,0,0,2146,18810,1,0,0,0,2148,18841,1,0,0,0,2150,18847, +1,0,0,0,2152,18851,1,0,0,0,2154,18952,1,0,0,0,2156,18954,1,0,0,0,2158,19019, +1,0,0,0,2160,19023,1,0,0,0,2162,19042,1,0,0,0,2164,19057,1,0,0,0,2166,19066, +1,0,0,0,2168,19078,1,0,0,0,2170,19083,1,0,0,0,2172,19126,1,0,0,0,2174,19128, +1,0,0,0,2176,19146,1,0,0,0,2178,19148,1,0,0,0,2180,19211,1,0,0,0,2182,19213, +1,0,0,0,2184,19644,1,0,0,0,2186,19646,1,0,0,0,2188,19648,1,0,0,0,2190,19650, +1,0,0,0,2192,19652,1,0,0,0,2194,19678,1,0,0,0,2196,19687,1,0,0,0,2198,19696, +1,0,0,0,2200,19698,1,0,0,0,2202,19715,1,0,0,0,2204,19719,1,0,0,0,2206,19736, +1,0,0,0,2208,19746,1,0,0,0,2210,19757,1,0,0,0,2212,19781,1,0,0,0,2214,19800, +1,0,0,0,2216,19818,1,0,0,0,2218,19839,1,0,0,0,2220,19852,1,0,0,0,2222,19855, +1,0,0,0,2224,19865,1,0,0,0,2226,19871,1,0,0,0,2228,19879,1,0,0,0,2230,19882, +1,0,0,0,2232,19893,1,0,0,0,2234,19895,1,0,0,0,2236,19914,1,0,0,0,2238,19924, +1,0,0,0,2240,19928,1,0,0,0,2242,19939,1,0,0,0,2244,19941,1,0,0,0,2246,19946, +1,0,0,0,2248,19965,1,0,0,0,2250,19983,1,0,0,0,2252,20001,1,0,0,0,2254,20003, +1,0,0,0,2256,20021,1,0,0,0,2258,20025,1,0,0,0,2260,20027,1,0,0,0,2262,20036, +1,0,0,0,2264,20055,1,0,0,0,2266,20057,1,0,0,0,2268,20059,1,0,0,0,2270,20061, +1,0,0,0,2272,20063,1,0,0,0,2274,20065,1,0,0,0,2276,20067,1,0,0,0,2278,20079, +1,0,0,0,2280,20081,1,0,0,0,2282,20086,1,0,0,0,2284,20088,1,0,0,0,2286,20090, +1,0,0,0,2288,20092,1,0,0,0,2290,20097,1,0,0,0,2292,20105,1,0,0,0,2294,20107, +1,0,0,0,2296,20113,1,0,0,0,2298,20115,1,0,0,0,2300,20127,1,0,0,0,2302,20129, +1,0,0,0,2304,20137,1,0,0,0,2306,20145,1,0,0,0,2308,20153,1,0,0,0,2310,20158, +1,0,0,0,2312,20163,1,0,0,0,2314,20178,1,0,0,0,2316,20180,1,0,0,0,2318,20187, +1,0,0,0,2320,20191,1,0,0,0,2322,20193,1,0,0,0,2324,20205,1,0,0,0,2326,20207, +1,0,0,0,2328,20209,1,0,0,0,2330,20231,1,0,0,0,2332,20233,1,0,0,0,2334,20260, +1,0,0,0,2336,20268,1,0,0,0,2338,20270,1,0,0,0,2340,20272,1,0,0,0,2342,20274, +1,0,0,0,2344,20300,1,0,0,0,2346,20302,1,0,0,0,2348,20310,1,0,0,0,2350,20314, +1,0,0,0,2352,20326,1,0,0,0,2354,20341,1,0,0,0,2356,20362,1,0,0,0,2358,20404, +1,0,0,0,2360,20411,1,0,0,0,2362,20423,1,0,0,0,2364,20456,1,0,0,0,2366,20458, +1,0,0,0,2368,20540,1,0,0,0,2370,20545,1,0,0,0,2372,20570,1,0,0,0,2374,20586, +1,0,0,0,2376,20601,1,0,0,0,2378,20647,1,0,0,0,2380,20975,1,0,0,0,2382,21040, +1,0,0,0,2384,21047,1,0,0,0,2386,21049,1,0,0,0,2388,21052,1,0,0,0,2390,21056, +1,0,0,0,2392,21062,1,0,0,0,2394,21064,1,0,0,0,2396,21066,1,0,0,0,2398,21180, +1,0,0,0,2400,21182,1,0,0,0,2402,21184,1,0,0,0,2404,21186,1,0,0,0,2406,2408, +3,2240,1120,0,2407,2406,1,0,0,0,2407,2408,1,0,0,0,2408,2436,1,0,0,0,2409, +2411,3,2242,1121,0,2410,2412,5,2467,0,0,2411,2410,1,0,0,0,2411,2412,1,0, +0,0,2412,2414,1,0,0,0,2413,2415,5,2452,0,0,2414,2413,1,0,0,0,2414,2415,1, +0,0,0,2415,2422,1,0,0,0,2416,2417,3,2,1,0,2417,2419,5,2467,0,0,2418,2420, +5,2452,0,0,2419,2418,1,0,0,0,2419,2420,1,0,0,0,2420,2422,1,0,0,0,2421,2409, +1,0,0,0,2421,2416,1,0,0,0,2422,2425,1,0,0,0,2423,2421,1,0,0,0,2423,2424, +1,0,0,0,2424,2428,1,0,0,0,2425,2423,1,0,0,0,2426,2429,3,2242,1121,0,2427, +2429,3,2,1,0,2428,2426,1,0,0,0,2428,2427,1,0,0,0,2429,2431,1,0,0,0,2430, +2432,5,2467,0,0,2431,2430,1,0,0,0,2431,2432,1,0,0,0,2432,2434,1,0,0,0,2433, +2435,5,2452,0,0,2434,2433,1,0,0,0,2434,2435,1,0,0,0,2435,2437,1,0,0,0,2436, +2423,1,0,0,0,2436,2437,1,0,0,0,2437,2438,1,0,0,0,2438,2439,5,0,0,1,2439, +1,1,0,0,0,2440,2582,3,1322,661,0,2441,2582,3,1332,666,0,2442,2582,3,1334, +667,0,2443,2582,3,1336,668,0,2444,2582,3,1362,681,0,2445,2582,3,1470,735, +0,2446,2582,3,816,408,0,2447,2582,3,4,2,0,2448,2582,3,94,47,0,2449,2582, +3,98,49,0,2450,2582,3,96,48,0,2451,2582,3,512,256,0,2452,2582,3,552,276, +0,2453,2582,3,100,50,0,2454,2582,3,792,396,0,2455,2582,3,132,66,0,2456,2582, +3,930,465,0,2457,2582,3,940,470,0,2458,2582,3,956,478,0,2459,2582,3,974, +487,0,2460,2582,3,128,64,0,2461,2582,3,154,77,0,2462,2582,3,168,84,0,2463, +2582,3,174,87,0,2464,2582,3,182,91,0,2465,2582,3,1516,758,0,2466,2582,3, +186,93,0,2467,2582,3,316,158,0,2468,2582,3,318,159,0,2469,2582,3,1306,653, +0,2470,2582,3,1520,760,0,2471,2582,3,862,431,0,2472,2582,3,1508,754,0,2473, +2582,3,204,102,0,2474,2582,3,240,120,0,2475,2582,3,556,278,0,2476,2582,3, +830,415,0,2477,2582,3,1710,855,0,2478,2582,3,1802,901,0,2479,2582,3,328, +164,0,2480,2582,3,378,189,0,2481,2582,3,404,202,0,2482,2582,3,1012,506,0, +2483,2582,3,1008,504,0,2484,2582,3,426,213,0,2485,2582,3,1476,738,0,2486, +2582,3,1478,739,0,2487,2582,3,1504,752,0,2488,2582,3,780,390,0,2489,2582, +3,782,391,0,2490,2582,3,436,218,0,2491,2582,3,440,220,0,2492,2582,3,442, +221,0,2493,2582,3,104,52,0,2494,2582,3,448,224,0,2495,2582,3,460,230,0,2496, +2582,3,788,394,0,2497,2582,3,798,399,0,2498,2582,3,800,400,0,2499,2582,3, +1020,510,0,2500,2582,3,996,498,0,2501,2582,3,948,474,0,2502,2582,3,954,477, +0,2503,2582,3,978,489,0,2504,2582,3,1026,513,0,2505,2582,3,156,78,0,2506, +2582,3,158,79,0,2507,2582,3,194,97,0,2508,2582,3,180,90,0,2509,2582,3,1014, +507,0,2510,2582,3,1028,514,0,2511,2582,3,1030,515,0,2512,2582,3,200,100, +0,2513,2582,3,322,161,0,2514,2582,3,1312,656,0,2515,2582,3,1308,654,0,2516, +2582,3,1032,516,0,2517,2582,3,878,439,0,2518,2582,3,896,448,0,2519,2582, +3,206,103,0,2520,2582,3,256,128,0,2521,2582,3,554,277,0,2522,2582,3,834, +417,0,2523,2582,3,1338,669,0,2524,2582,3,1340,670,0,2525,2582,3,1342,671, +0,2526,2582,3,1346,673,0,2527,2582,3,1348,674,0,2528,2582,3,1502,751,0,2529, +2582,3,1506,753,0,2530,2582,3,1350,675,0,2531,2582,3,1352,676,0,2532,2582, +3,1354,677,0,2533,2582,3,1344,672,0,2534,2582,3,92,46,0,2535,2582,3,790, +395,0,2536,2582,3,744,372,0,2537,2582,3,748,374,0,2538,2582,3,750,375,0, +2539,2582,3,794,397,0,2540,2582,3,796,398,0,2541,2582,3,150,75,0,2542,2582, +3,1004,502,0,2543,2582,3,1006,503,0,2544,2582,3,958,479,0,2545,2582,3,976, +488,0,2546,2582,3,184,92,0,2547,2582,3,152,76,0,2548,2582,3,170,85,0,2549, +2582,3,172,86,0,2550,2582,3,188,94,0,2551,2582,3,192,96,0,2552,2582,3,190, +95,0,2553,2582,3,314,157,0,2554,2582,3,1310,655,0,2555,2582,3,1290,645,0, +2556,2582,3,1292,646,0,2557,2582,3,1294,647,0,2558,2582,3,202,101,0,2559, +2582,3,238,119,0,2560,2582,3,558,279,0,2561,2582,3,1298,649,0,2562,2582, +3,594,297,0,2563,2582,3,670,335,0,2564,2582,3,688,344,0,2565,2582,3,718, +359,0,2566,2582,3,1300,650,0,2567,2582,3,1320,660,0,2568,2582,3,1318,659, +0,2569,2582,3,1828,914,0,2570,2582,3,746,373,0,2571,2582,3,752,376,0,2572, +2582,3,762,381,0,2573,2582,3,758,379,0,2574,2582,3,756,378,0,2575,2582,3, +760,380,0,2576,2582,3,766,383,0,2577,2582,3,1842,921,0,2578,2582,3,1356, +678,0,2579,2582,3,1288,644,0,2580,2582,3,714,357,0,2581,2440,1,0,0,0,2581, +2441,1,0,0,0,2581,2442,1,0,0,0,2581,2443,1,0,0,0,2581,2444,1,0,0,0,2581, +2445,1,0,0,0,2581,2446,1,0,0,0,2581,2447,1,0,0,0,2581,2448,1,0,0,0,2581, +2449,1,0,0,0,2581,2450,1,0,0,0,2581,2451,1,0,0,0,2581,2452,1,0,0,0,2581, +2453,1,0,0,0,2581,2454,1,0,0,0,2581,2455,1,0,0,0,2581,2456,1,0,0,0,2581, +2457,1,0,0,0,2581,2458,1,0,0,0,2581,2459,1,0,0,0,2581,2460,1,0,0,0,2581, +2461,1,0,0,0,2581,2462,1,0,0,0,2581,2463,1,0,0,0,2581,2464,1,0,0,0,2581, +2465,1,0,0,0,2581,2466,1,0,0,0,2581,2467,1,0,0,0,2581,2468,1,0,0,0,2581, +2469,1,0,0,0,2581,2470,1,0,0,0,2581,2471,1,0,0,0,2581,2472,1,0,0,0,2581, +2473,1,0,0,0,2581,2474,1,0,0,0,2581,2475,1,0,0,0,2581,2476,1,0,0,0,2581, +2477,1,0,0,0,2581,2478,1,0,0,0,2581,2479,1,0,0,0,2581,2480,1,0,0,0,2581, +2481,1,0,0,0,2581,2482,1,0,0,0,2581,2483,1,0,0,0,2581,2484,1,0,0,0,2581, +2485,1,0,0,0,2581,2486,1,0,0,0,2581,2487,1,0,0,0,2581,2488,1,0,0,0,2581, +2489,1,0,0,0,2581,2490,1,0,0,0,2581,2491,1,0,0,0,2581,2492,1,0,0,0,2581, +2493,1,0,0,0,2581,2494,1,0,0,0,2581,2495,1,0,0,0,2581,2496,1,0,0,0,2581, +2497,1,0,0,0,2581,2498,1,0,0,0,2581,2499,1,0,0,0,2581,2500,1,0,0,0,2581, +2501,1,0,0,0,2581,2502,1,0,0,0,2581,2503,1,0,0,0,2581,2504,1,0,0,0,2581, +2505,1,0,0,0,2581,2506,1,0,0,0,2581,2507,1,0,0,0,2581,2508,1,0,0,0,2581, +2509,1,0,0,0,2581,2510,1,0,0,0,2581,2511,1,0,0,0,2581,2512,1,0,0,0,2581, +2513,1,0,0,0,2581,2514,1,0,0,0,2581,2515,1,0,0,0,2581,2516,1,0,0,0,2581, +2517,1,0,0,0,2581,2518,1,0,0,0,2581,2519,1,0,0,0,2581,2520,1,0,0,0,2581, +2521,1,0,0,0,2581,2522,1,0,0,0,2581,2523,1,0,0,0,2581,2524,1,0,0,0,2581, +2525,1,0,0,0,2581,2526,1,0,0,0,2581,2527,1,0,0,0,2581,2528,1,0,0,0,2581, +2529,1,0,0,0,2581,2530,1,0,0,0,2581,2531,1,0,0,0,2581,2532,1,0,0,0,2581, +2533,1,0,0,0,2581,2534,1,0,0,0,2581,2535,1,0,0,0,2581,2536,1,0,0,0,2581, +2537,1,0,0,0,2581,2538,1,0,0,0,2581,2539,1,0,0,0,2581,2540,1,0,0,0,2581, +2541,1,0,0,0,2581,2542,1,0,0,0,2581,2543,1,0,0,0,2581,2544,1,0,0,0,2581, +2545,1,0,0,0,2581,2546,1,0,0,0,2581,2547,1,0,0,0,2581,2548,1,0,0,0,2581, +2549,1,0,0,0,2581,2550,1,0,0,0,2581,2551,1,0,0,0,2581,2552,1,0,0,0,2581, +2553,1,0,0,0,2581,2554,1,0,0,0,2581,2555,1,0,0,0,2581,2556,1,0,0,0,2581, +2557,1,0,0,0,2581,2558,1,0,0,0,2581,2559,1,0,0,0,2581,2560,1,0,0,0,2581, +2561,1,0,0,0,2581,2562,1,0,0,0,2581,2563,1,0,0,0,2581,2564,1,0,0,0,2581, +2565,1,0,0,0,2581,2566,1,0,0,0,2581,2567,1,0,0,0,2581,2568,1,0,0,0,2581, +2569,1,0,0,0,2581,2570,1,0,0,0,2581,2571,1,0,0,0,2581,2572,1,0,0,0,2581, +2573,1,0,0,0,2581,2574,1,0,0,0,2581,2575,1,0,0,0,2581,2576,1,0,0,0,2581, +2577,1,0,0,0,2581,2578,1,0,0,0,2581,2579,1,0,0,0,2581,2580,1,0,0,0,2582, +3,1,0,0,0,2583,2584,5,42,0,0,2584,2638,5,439,0,0,2585,2620,3,2392,1196,0, +2586,2589,3,6,3,0,2587,2589,3,8,4,0,2588,2586,1,0,0,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,10,5,0,2593,2588,1,0,0,0,2593,2592,1,0,0,0,2594,2596,1,0,0,0, +2595,2597,3,24,12,0,2596,2595,1,0,0,0,2596,2597,1,0,0,0,2597,2621,1,0,0, +0,2598,2619,3,12,6,0,2599,2619,3,16,8,0,2600,2619,3,18,9,0,2601,2619,3,20, +10,0,2602,2619,3,24,12,0,2603,2619,3,28,14,0,2604,2619,3,30,15,0,2605,2619, +3,40,20,0,2606,2619,3,44,22,0,2607,2619,3,46,23,0,2608,2619,3,52,26,0,2609, +2619,3,54,27,0,2610,2619,3,56,28,0,2611,2619,3,58,29,0,2612,2619,3,60,30, +0,2613,2619,3,62,31,0,2614,2619,3,64,32,0,2615,2619,3,66,33,0,2616,2619, +3,68,34,0,2617,2619,3,74,37,0,2618,2598,1,0,0,0,2618,2599,1,0,0,0,2618,2600, +1,0,0,0,2618,2601,1,0,0,0,2618,2602,1,0,0,0,2618,2603,1,0,0,0,2618,2604, +1,0,0,0,2618,2605,1,0,0,0,2618,2606,1,0,0,0,2618,2607,1,0,0,0,2618,2608, +1,0,0,0,2618,2609,1,0,0,0,2618,2610,1,0,0,0,2618,2611,1,0,0,0,2618,2612, +1,0,0,0,2618,2613,1,0,0,0,2618,2614,1,0,0,0,2618,2615,1,0,0,0,2618,2616, +1,0,0,0,2618,2617,1,0,0,0,2619,2621,1,0,0,0,2620,2593,1,0,0,0,2620,2618, +1,0,0,0,2621,2639,1,0,0,0,2622,2627,3,2392,1196,0,2623,2624,5,2451,0,0,2624, +2626,3,2392,1196,0,2625,2623,1,0,0,0,2626,2629,1,0,0,0,2627,2625,1,0,0,0, +2627,2628,1,0,0,0,2628,2632,1,0,0,0,2629,2627,1,0,0,0,2630,2632,5,38,0,0, +2631,2622,1,0,0,0,2631,2630,1,0,0,0,2632,2636,1,0,0,0,2633,2637,3,86,43, +0,2634,2637,3,88,44,0,2635,2637,3,90,45,0,2636,2633,1,0,0,0,2636,2634,1, +0,0,0,2636,2635,1,0,0,0,2637,2639,1,0,0,0,2638,2585,1,0,0,0,2638,2631,1, +0,0,0,2639,5,1,0,0,0,2640,2661,5,21,0,0,2641,2642,5,1686,0,0,2642,2644,3, +2392,1196,0,2643,2641,1,0,0,0,2643,2644,1,0,0,0,2644,2646,1,0,0,0,2645,2647, +3,84,42,0,2646,2645,1,0,0,0,2646,2647,1,0,0,0,2647,2650,1,0,0,0,2648,2649, +5,570,0,0,2649,2651,3,2392,1196,0,2650,2648,1,0,0,0,2650,2651,1,0,0,0,2651, +2652,1,0,0,0,2652,2653,5,438,0,0,2653,2658,3,438,219,0,2654,2655,5,2451, +0,0,2655,2657,3,438,219,0,2656,2654,1,0,0,0,2657,2660,1,0,0,0,2658,2656, +1,0,0,0,2658,2659,1,0,0,0,2659,2662,1,0,0,0,2660,2658,1,0,0,0,2661,2643, +1,0,0,0,2662,2663,1,0,0,0,2663,2661,1,0,0,0,2663,2664,1,0,0,0,2664,7,1,0, +0,0,2665,2704,5,467,0,0,2666,2668,3,84,42,0,2667,2666,1,0,0,0,2667,2668, +1,0,0,0,2668,2669,1,0,0,0,2669,2670,5,438,0,0,2670,2672,3,2392,1196,0,2671, +2673,3,38,19,0,2672,2671,1,0,0,0,2672,2673,1,0,0,0,2673,2681,1,0,0,0,2674, +2675,5,2451,0,0,2675,2677,3,2392,1196,0,2676,2678,3,38,19,0,2677,2676,1, +0,0,0,2677,2678,1,0,0,0,2678,2680,1,0,0,0,2679,2674,1,0,0,0,2680,2683,1, +0,0,0,2681,2679,1,0,0,0,2681,2682,1,0,0,0,2682,2705,1,0,0,0,2683,2681,1, +0,0,0,2684,2685,5,441,0,0,2685,2687,5,736,0,0,2686,2688,3,84,42,0,2687,2686, +1,0,0,0,2687,2688,1,0,0,0,2688,2689,1,0,0,0,2689,2690,5,570,0,0,2690,2692, +3,2392,1196,0,2691,2693,3,38,19,0,2692,2691,1,0,0,0,2692,2693,1,0,0,0,2693, +2701,1,0,0,0,2694,2695,5,2451,0,0,2695,2697,3,2392,1196,0,2696,2698,3,38, +19,0,2697,2696,1,0,0,0,2697,2698,1,0,0,0,2698,2700,1,0,0,0,2699,2694,1,0, +0,0,2700,2703,1,0,0,0,2701,2699,1,0,0,0,2701,2702,1,0,0,0,2702,2705,1,0, +0,0,2703,2701,1,0,0,0,2704,2667,1,0,0,0,2704,2684,1,0,0,0,2705,9,1,0,0,0, +2706,2707,5,1565,0,0,2707,2710,5,38,0,0,2708,2709,5,1697,0,0,2709,2711,3, +1170,585,0,2710,2708,1,0,0,0,2710,2711,1,0,0,0,2711,11,1,0,0,0,2712,2713, +5,1560,0,0,2713,2714,5,438,0,0,2714,2715,3,2392,1196,0,2715,2716,5,2306, +0,0,2716,2718,5,2441,0,0,2717,2719,3,38,19,0,2718,2717,1,0,0,0,2718,2719, +1,0,0,0,2719,2729,1,0,0,0,2720,2721,5,2451,0,0,2721,2722,3,2392,1196,0,2722, +2723,5,2306,0,0,2723,2725,5,2441,0,0,2724,2726,3,38,19,0,2725,2724,1,0,0, +0,2725,2726,1,0,0,0,2726,2728,1,0,0,0,2727,2720,1,0,0,0,2728,2731,1,0,0, +0,2729,2727,1,0,0,0,2729,2730,1,0,0,0,2730,2734,1,0,0,0,2731,2729,1,0,0, +0,2732,2733,5,1422,0,0,2733,2735,3,2384,1192,0,2734,2732,1,0,0,0,2734,2735, +1,0,0,0,2735,2737,1,0,0,0,2736,2738,3,14,7,0,2737,2736,1,0,0,0,2737,2738, +1,0,0,0,2738,13,1,0,0,0,2739,2740,7,0,0,0,2740,15,1,0,0,0,2741,2758,5,1557, +0,0,2742,2743,5,438,0,0,2743,2744,3,2392,1196,0,2744,2745,5,2139,0,0,2745, +2753,3,2392,1196,0,2746,2747,5,2451,0,0,2747,2748,3,2392,1196,0,2748,2749, +5,2139,0,0,2749,2750,3,2392,1196,0,2750,2752,1,0,0,0,2751,2746,1,0,0,0,2752, +2755,1,0,0,0,2753,2751,1,0,0,0,2753,2754,1,0,0,0,2754,2759,1,0,0,0,2755, +2753,1,0,0,0,2756,2757,5,441,0,0,2757,2759,5,38,0,0,2758,2742,1,0,0,0,2758, +2756,1,0,0,0,2759,17,1,0,0,0,2760,2792,5,1254,0,0,2761,2763,3,84,42,0,2762, +2761,1,0,0,0,2762,2763,1,0,0,0,2763,2764,1,0,0,0,2764,2765,5,438,0,0,2765, +2770,3,2392,1196,0,2766,2767,5,2451,0,0,2767,2769,3,2392,1196,0,2768,2766, +1,0,0,0,2769,2772,1,0,0,0,2770,2768,1,0,0,0,2770,2771,1,0,0,0,2771,2788, +1,0,0,0,2772,2770,1,0,0,0,2773,2774,5,441,0,0,2774,2776,5,736,0,0,2775,2777, +3,84,42,0,2776,2775,1,0,0,0,2776,2777,1,0,0,0,2777,2778,1,0,0,0,2778,2779, +5,570,0,0,2779,2784,3,2392,1196,0,2780,2781,5,2451,0,0,2781,2783,3,2392, +1196,0,2782,2780,1,0,0,0,2783,2786,1,0,0,0,2784,2782,1,0,0,0,2784,2785,1, +0,0,0,2785,2788,1,0,0,0,2786,2784,1,0,0,0,2787,2762,1,0,0,0,2787,2773,1, +0,0,0,2788,2789,1,0,0,0,2789,2787,1,0,0,0,2789,2790,1,0,0,0,2790,2793,1, +0,0,0,2791,2793,5,38,0,0,2792,2787,1,0,0,0,2792,2791,1,0,0,0,2793,2796,1, +0,0,0,2794,2795,5,1422,0,0,2795,2797,3,2384,1192,0,2796,2794,1,0,0,0,2796, +2797,1,0,0,0,2797,2799,1,0,0,0,2798,2800,3,14,7,0,2799,2798,1,0,0,0,2799, +2800,1,0,0,0,2800,19,1,0,0,0,2801,2828,5,1241,0,0,2802,2804,3,84,42,0,2803, +2802,1,0,0,0,2803,2804,1,0,0,0,2804,2805,1,0,0,0,2805,2806,5,438,0,0,2806, +2811,3,2392,1196,0,2807,2808,5,2451,0,0,2808,2810,3,2392,1196,0,2809,2807, +1,0,0,0,2810,2813,1,0,0,0,2811,2809,1,0,0,0,2811,2812,1,0,0,0,2812,2829, +1,0,0,0,2813,2811,1,0,0,0,2814,2815,5,441,0,0,2815,2817,5,736,0,0,2816,2818, +3,84,42,0,2817,2816,1,0,0,0,2817,2818,1,0,0,0,2818,2819,1,0,0,0,2819,2820, +5,570,0,0,2820,2825,3,2392,1196,0,2821,2822,5,2451,0,0,2822,2824,3,2392, +1196,0,2823,2821,1,0,0,0,2824,2827,1,0,0,0,2825,2823,1,0,0,0,2825,2826,1, +0,0,0,2826,2829,1,0,0,0,2827,2825,1,0,0,0,2828,2803,1,0,0,0,2828,2814,1, +0,0,0,2829,2831,1,0,0,0,2830,2832,3,22,11,0,2831,2830,1,0,0,0,2831,2832, +1,0,0,0,2832,21,1,0,0,0,2833,2834,5,467,0,0,2834,2835,5,33,0,0,2835,2836, +3,2384,1192,0,2836,2837,7,1,0,0,2837,23,1,0,0,0,2838,2858,5,1508,0,0,2839, +2841,7,2,0,0,2840,2842,3,26,13,0,2841,2840,1,0,0,0,2842,2843,1,0,0,0,2843, +2841,1,0,0,0,2843,2844,1,0,0,0,2844,2846,1,0,0,0,2845,2839,1,0,0,0,2845, +2846,1,0,0,0,2846,2847,1,0,0,0,2847,2848,5,1422,0,0,2848,2849,3,2384,1192, +0,2849,2851,1,0,0,0,2850,2852,7,0,0,0,2851,2850,1,0,0,0,2851,2852,1,0,0, +0,2852,2859,1,0,0,0,2853,2854,5,978,0,0,2854,2856,5,1422,0,0,2855,2857,3, +2384,1192,0,2856,2855,1,0,0,0,2856,2857,1,0,0,0,2857,2859,1,0,0,0,2858,2845, +1,0,0,0,2858,2853,1,0,0,0,2859,25,1,0,0,0,2860,2861,3,2392,1196,0,2861,27, +1,0,0,0,2862,2864,5,200,0,0,2863,2865,5,38,0,0,2864,2863,1,0,0,0,2864,2865, +1,0,0,0,2865,2867,1,0,0,0,2866,2868,7,3,0,0,2867,2866,1,0,0,0,2867,2868, +1,0,0,0,2868,29,1,0,0,0,2869,2870,7,4,0,0,2870,2871,5,2088,0,0,2871,2872, +3,2392,1196,0,2872,2879,3,32,16,0,2873,2874,5,2451,0,0,2874,2875,3,2392, +1196,0,2875,2876,3,32,16,0,2876,2878,1,0,0,0,2877,2873,1,0,0,0,2878,2881, +1,0,0,0,2879,2877,1,0,0,0,2879,2880,1,0,0,0,2880,2893,1,0,0,0,2881,2879, +1,0,0,0,2882,2883,5,467,0,0,2883,2884,5,2088,0,0,2884,2889,3,2392,1196,0, +2885,2886,5,2451,0,0,2886,2888,3,2392,1196,0,2887,2885,1,0,0,0,2888,2891, +1,0,0,0,2889,2887,1,0,0,0,2889,2890,1,0,0,0,2890,2893,1,0,0,0,2891,2889, +1,0,0,0,2892,2869,1,0,0,0,2892,2882,1,0,0,0,2893,31,1,0,0,0,2894,2895,5, +84,0,0,2895,2897,5,2445,0,0,2896,2898,3,34,17,0,2897,2896,1,0,0,0,2897,2898, +1,0,0,0,2898,2900,1,0,0,0,2899,2901,3,36,18,0,2900,2899,1,0,0,0,2900,2901, +1,0,0,0,2901,2902,1,0,0,0,2902,2903,5,2446,0,0,2903,33,1,0,0,0,2904,2905, +7,5,0,0,2905,35,1,0,0,0,2906,2907,7,6,0,0,2907,37,1,0,0,0,2908,2909,7,7, +0,0,2909,39,1,0,0,0,2910,2911,5,21,0,0,2911,2912,5,424,0,0,2912,2917,3,1452, +726,0,2913,2914,5,2451,0,0,2914,2916,3,1452,726,0,2915,2913,1,0,0,0,2916, +2919,1,0,0,0,2917,2915,1,0,0,0,2917,2918,1,0,0,0,2918,2952,1,0,0,0,2919, +2917,1,0,0,0,2920,2921,5,467,0,0,2921,2922,5,424,0,0,2922,2924,3,1452,726, +0,2923,2925,3,38,19,0,2924,2923,1,0,0,0,2924,2925,1,0,0,0,2925,2933,1,0, +0,0,2926,2927,5,2451,0,0,2927,2929,3,1452,726,0,2928,2930,3,38,19,0,2929, +2928,1,0,0,0,2929,2930,1,0,0,0,2930,2932,1,0,0,0,2931,2926,1,0,0,0,2932, +2935,1,0,0,0,2933,2931,1,0,0,0,2933,2934,1,0,0,0,2934,2952,1,0,0,0,2935, +2933,1,0,0,0,2936,2937,5,1557,0,0,2937,2938,5,424,0,0,2938,2939,3,42,21, +0,2939,2940,5,2139,0,0,2940,2948,3,42,21,0,2941,2942,5,2451,0,0,2942,2943, +3,42,21,0,2943,2944,5,2139,0,0,2944,2945,3,42,21,0,2945,2947,1,0,0,0,2946, +2941,1,0,0,0,2947,2950,1,0,0,0,2948,2946,1,0,0,0,2948,2949,1,0,0,0,2949, +2952,1,0,0,0,2950,2948,1,0,0,0,2951,2910,1,0,0,0,2951,2920,1,0,0,0,2951, +2936,1,0,0,0,2952,41,1,0,0,0,2953,2954,5,2441,0,0,2954,43,1,0,0,0,2955,2956, +5,21,0,0,2956,2957,5,37,0,0,2957,2958,5,2441,0,0,2958,2959,5,618,0,0,2959, +2966,5,2441,0,0,2960,2961,5,2451,0,0,2961,2962,5,2441,0,0,2962,2963,5,618, +0,0,2963,2965,5,2441,0,0,2964,2960,1,0,0,0,2965,2968,1,0,0,0,2966,2964,1, +0,0,0,2966,2967,1,0,0,0,2967,2994,1,0,0,0,2968,2966,1,0,0,0,2969,2970,5, +467,0,0,2970,2971,5,37,0,0,2971,2976,5,2441,0,0,2972,2973,5,2451,0,0,2973, +2975,5,2441,0,0,2974,2972,1,0,0,0,2975,2978,1,0,0,0,2976,2974,1,0,0,0,2976, +2977,1,0,0,0,2977,2994,1,0,0,0,2978,2976,1,0,0,0,2979,2980,5,1557,0,0,2980, +2981,5,37,0,0,2981,2982,5,2441,0,0,2982,2983,5,2139,0,0,2983,2990,5,2441, +0,0,2984,2985,5,2451,0,0,2985,2986,5,2441,0,0,2986,2987,5,2139,0,0,2987, +2989,5,2441,0,0,2988,2984,1,0,0,0,2989,2992,1,0,0,0,2990,2988,1,0,0,0,2990, +2991,1,0,0,0,2991,2994,1,0,0,0,2992,2990,1,0,0,0,2993,2955,1,0,0,0,2993, +2969,1,0,0,0,2993,2979,1,0,0,0,2994,45,1,0,0,0,2995,3007,3,48,24,0,2996, +3007,3,50,25,0,2997,2998,5,1565,0,0,2998,2999,5,2289,0,0,2999,3000,3,2392, +1196,0,3000,3001,5,1697,0,0,3001,3002,3,1170,585,0,3002,3007,1,0,0,0,3003, +3004,5,467,0,0,3004,3005,5,2289,0,0,3005,3007,3,2392,1196,0,3006,2995,1, +0,0,0,3006,2996,1,0,0,0,3006,2997,1,0,0,0,3006,3003,1,0,0,0,3007,47,1,0, +0,0,3008,3009,5,21,0,0,3009,3010,5,2289,0,0,3010,3011,3,2392,1196,0,3011, +3012,5,1697,0,0,3012,3014,3,1170,585,0,3013,3015,3,34,17,0,3014,3013,1,0, +0,0,3014,3015,1,0,0,0,3015,3020,1,0,0,0,3016,3017,5,1767,0,0,3017,3018,3, +2384,1192,0,3018,3019,7,8,0,0,3019,3021,1,0,0,0,3020,3016,1,0,0,0,3020,3021, +1,0,0,0,3021,3024,1,0,0,0,3022,3023,5,1766,0,0,3023,3025,3,2384,1192,0,3024, +3022,1,0,0,0,3024,3025,1,0,0,0,3025,49,1,0,0,0,3026,3027,5,978,0,0,3027, +3028,5,2289,0,0,3028,3031,3,2392,1196,0,3029,3030,5,987,0,0,3030,3032,5, +2441,0,0,3031,3029,1,0,0,0,3031,3032,1,0,0,0,3032,3035,1,0,0,0,3033,3034, +5,2214,0,0,3034,3036,5,2441,0,0,3035,3033,1,0,0,0,3035,3036,1,0,0,0,3036, +51,1,0,0,0,3037,3038,5,1669,0,0,3038,3039,5,83,0,0,3039,3040,5,2441,0,0, +3040,3041,5,2469,0,0,3041,3042,5,2441,0,0,3042,53,1,0,0,0,3043,3044,5,467, +0,0,3044,3045,5,587,0,0,3045,3050,3,1452,726,0,3046,3047,5,2451,0,0,3047, +3049,3,1452,726,0,3048,3046,1,0,0,0,3049,3052,1,0,0,0,3050,3048,1,0,0,0, +3050,3051,1,0,0,0,3051,55,1,0,0,0,3052,3050,1,0,0,0,3053,3054,5,298,0,0, +3054,3055,5,1522,0,0,3055,3056,5,2139,0,0,3056,3057,5,607,0,0,3057,57,1, +0,0,0,3058,3059,5,21,0,0,3059,3060,5,2231,0,0,3060,3061,5,2441,0,0,3061, +3062,5,2306,0,0,3062,3063,5,934,0,0,3063,3068,5,2441,0,0,3064,3065,5,2451, +0,0,3065,3067,5,2441,0,0,3066,3064,1,0,0,0,3067,3070,1,0,0,0,3068,3066,1, +0,0,0,3068,3069,1,0,0,0,3069,3088,1,0,0,0,3070,3068,1,0,0,0,3071,3072,5, +978,0,0,3072,3073,5,2231,0,0,3073,3074,5,2441,0,0,3074,3075,7,9,0,0,3075, +3076,5,934,0,0,3076,3081,5,2441,0,0,3077,3078,5,2451,0,0,3078,3080,5,2441, +0,0,3079,3077,1,0,0,0,3080,3083,1,0,0,0,3081,3079,1,0,0,0,3081,3082,1,0, +0,0,3082,3088,1,0,0,0,3083,3081,1,0,0,0,3084,3085,5,467,0,0,3085,3086,5, +2231,0,0,3086,3088,5,2441,0,0,3087,3058,1,0,0,0,3087,3071,1,0,0,0,3087,3084, +1,0,0,0,3088,59,1,0,0,0,3089,3090,5,21,0,0,3090,3091,5,2235,0,0,3091,3096, +5,2441,0,0,3092,3093,5,2451,0,0,3093,3095,5,2441,0,0,3094,3092,1,0,0,0,3095, +3098,1,0,0,0,3096,3094,1,0,0,0,3096,3097,1,0,0,0,3097,3127,1,0,0,0,3098, +3096,1,0,0,0,3099,3100,5,467,0,0,3100,3101,5,2235,0,0,3101,3106,5,2441,0, +0,3102,3103,5,2451,0,0,3103,3105,5,2441,0,0,3104,3102,1,0,0,0,3105,3108, +1,0,0,0,3106,3104,1,0,0,0,3106,3107,1,0,0,0,3107,3110,1,0,0,0,3108,3106, +1,0,0,0,3109,3111,5,179,0,0,3110,3109,1,0,0,0,3110,3111,1,0,0,0,3111,3127, +1,0,0,0,3112,3113,5,1560,0,0,3113,3114,5,2235,0,0,3114,3115,5,2441,0,0,3115, +3116,5,2306,0,0,3116,3123,5,2441,0,0,3117,3118,5,2451,0,0,3118,3119,5,2441, +0,0,3119,3120,5,2306,0,0,3120,3122,5,2441,0,0,3121,3117,1,0,0,0,3122,3125, +1,0,0,0,3123,3121,1,0,0,0,3123,3124,1,0,0,0,3124,3127,1,0,0,0,3125,3123, +1,0,0,0,3126,3089,1,0,0,0,3126,3099,1,0,0,0,3126,3112,1,0,0,0,3127,61,1, +0,0,0,3128,3129,5,1669,0,0,3129,3130,5,1386,0,0,3130,3131,7,10,0,0,3131, +3135,5,2469,0,0,3132,3136,5,1131,0,0,3133,3134,5,1503,0,0,3134,3136,7,11, +0,0,3135,3132,1,0,0,0,3135,3133,1,0,0,0,3136,3147,1,0,0,0,3137,3138,5,2451, +0,0,3138,3139,7,10,0,0,3139,3143,5,2469,0,0,3140,3144,5,1131,0,0,3141,3142, +5,1503,0,0,3142,3144,7,11,0,0,3143,3140,1,0,0,0,3143,3141,1,0,0,0,3144,3146, +1,0,0,0,3145,3137,1,0,0,0,3146,3149,1,0,0,0,3147,3145,1,0,0,0,3147,3148, +1,0,0,0,3148,3150,1,0,0,0,3149,3147,1,0,0,0,3150,3151,5,618,0,0,3151,3152, +5,587,0,0,3152,3157,5,2441,0,0,3153,3154,5,2451,0,0,3154,3156,5,2441,0,0, +3155,3153,1,0,0,0,3156,3159,1,0,0,0,3157,3155,1,0,0,0,3157,3158,1,0,0,0, +3158,63,1,0,0,0,3159,3157,1,0,0,0,3160,3161,5,1669,0,0,3161,3162,5,1324, +0,0,3162,3163,7,12,0,0,3163,3164,5,2469,0,0,3164,3171,5,2441,0,0,3165,3166, +5,2451,0,0,3166,3167,7,12,0,0,3167,3168,5,2469,0,0,3168,3170,5,2441,0,0, +3169,3165,1,0,0,0,3170,3173,1,0,0,0,3171,3169,1,0,0,0,3171,3172,1,0,0,0, +3172,3174,1,0,0,0,3173,3171,1,0,0,0,3174,3175,5,618,0,0,3175,3176,5,587, +0,0,3176,3181,5,2441,0,0,3177,3178,5,2451,0,0,3178,3180,5,2441,0,0,3179, +3177,1,0,0,0,3180,3183,1,0,0,0,3181,3179,1,0,0,0,3181,3182,1,0,0,0,3182, +65,1,0,0,0,3183,3181,1,0,0,0,3184,3189,5,1627,0,0,3185,3186,5,587,0,0,3186, +3190,5,2441,0,0,3187,3188,5,438,0,0,3188,3190,3,2392,1196,0,3189,3185,1, +0,0,0,3189,3187,1,0,0,0,3189,3190,1,0,0,0,3190,3192,1,0,0,0,3191,3193,7, +3,0,0,3192,3191,1,0,0,0,3192,3193,1,0,0,0,3193,3196,1,0,0,0,3194,3195,5, +1422,0,0,3195,3197,7,13,0,0,3196,3194,1,0,0,0,3196,3197,1,0,0,0,3197,3199, +1,0,0,0,3198,3200,3,14,7,0,3199,3198,1,0,0,0,3199,3200,1,0,0,0,3200,3202, +1,0,0,0,3201,3203,3,38,19,0,3202,3201,1,0,0,0,3202,3203,1,0,0,0,3203,3205, +1,0,0,0,3204,3206,5,1759,0,0,3205,3204,1,0,0,0,3205,3206,1,0,0,0,3206,67, +1,0,0,0,3207,3208,5,21,0,0,3208,3209,5,1489,0,0,3209,3215,3,2392,1196,0, +3210,3211,5,1669,0,0,3211,3212,3,70,35,0,3212,3213,5,2469,0,0,3213,3214, +3,72,36,0,3214,3216,1,0,0,0,3215,3210,1,0,0,0,3215,3216,1,0,0,0,3216,3235, +1,0,0,0,3217,3218,5,978,0,0,3218,3219,5,1489,0,0,3219,3220,3,2392,1196,0, +3220,3221,5,1669,0,0,3221,3222,3,70,35,0,3222,3223,5,2469,0,0,3223,3224, +3,72,36,0,3224,3235,1,0,0,0,3225,3226,5,990,0,0,3226,3227,5,1489,0,0,3227, +3228,3,2392,1196,0,3228,3229,5,2139,0,0,3229,3230,3,2392,1196,0,3230,3235, +1,0,0,0,3231,3232,5,467,0,0,3232,3233,5,1489,0,0,3233,3235,3,2392,1196,0, +3234,3207,1,0,0,0,3234,3217,1,0,0,0,3234,3225,1,0,0,0,3234,3231,1,0,0,0, +3235,69,1,0,0,0,3236,3237,3,2392,1196,0,3237,71,1,0,0,0,3238,3239,3,2392, +1196,0,3239,73,1,0,0,0,3240,3245,3,76,38,0,3241,3245,3,78,39,0,3242,3245, +3,80,40,0,3243,3245,3,82,41,0,3244,3240,1,0,0,0,3244,3241,1,0,0,0,3244,3242, +1,0,0,0,3244,3243,1,0,0,0,3245,75,1,0,0,0,3246,3247,5,21,0,0,3247,3248,5, +589,0,0,3248,3252,3,2392,1196,0,3249,3250,7,14,0,0,3250,3253,3,2392,1196, +0,3251,3253,5,2088,0,0,3252,3249,1,0,0,0,3252,3251,1,0,0,0,3253,3257,1,0, +0,0,3254,3255,5,626,0,0,3255,3256,5,2088,0,0,3256,3258,3,2392,1196,0,3257, +3254,1,0,0,0,3257,3258,1,0,0,0,3258,3263,1,0,0,0,3259,3260,5,1669,0,0,3260, +3261,5,2441,0,0,3261,3262,5,2469,0,0,3262,3264,5,2441,0,0,3263,3259,1,0, +0,0,3263,3264,1,0,0,0,3264,77,1,0,0,0,3265,3266,5,978,0,0,3266,3267,5,589, +0,0,3267,3268,3,2392,1196,0,3268,3269,5,1669,0,0,3269,3270,5,2441,0,0,3270, +3271,5,2469,0,0,3271,3272,5,2441,0,0,3272,79,1,0,0,0,3273,3274,5,990,0,0, +3274,3275,5,587,0,0,3275,3276,5,2441,0,0,3276,3277,5,2139,0,0,3277,3278, +5,589,0,0,3278,3279,3,2392,1196,0,3279,81,1,0,0,0,3280,3281,5,467,0,0,3281, +3282,5,589,0,0,3282,3284,3,2392,1196,0,3283,3285,5,179,0,0,3284,3283,1,0, +0,0,3284,3285,1,0,0,0,3285,83,1,0,0,0,3286,3287,7,15,0,0,3287,85,1,0,0,0, +3288,3289,5,2177,0,0,3289,3290,5,441,0,0,3290,87,1,0,0,0,3291,3293,5,986, +0,0,3292,3294,7,16,0,0,3293,3292,1,0,0,0,3293,3294,1,0,0,0,3294,3296,1,0, +0,0,3295,3297,7,7,0,0,3296,3295,1,0,0,0,3296,3297,1,0,0,0,3297,3303,1,0, +0,0,3298,3300,5,442,0,0,3299,3301,7,7,0,0,3300,3299,1,0,0,0,3300,3301,1, +0,0,0,3301,3303,1,0,0,0,3302,3291,1,0,0,0,3302,3298,1,0,0,0,3303,89,1,0, +0,0,3304,3305,7,17,0,0,3305,3315,5,2289,0,0,3306,3311,3,2392,1196,0,3307, +3308,5,2451,0,0,3308,3310,3,2392,1196,0,3309,3307,1,0,0,0,3310,3313,1,0, +0,0,3311,3309,1,0,0,0,3311,3312,1,0,0,0,3312,3316,1,0,0,0,3313,3311,1,0, +0,0,3314,3316,5,38,0,0,3315,3306,1,0,0,0,3315,3314,1,0,0,0,3316,91,1,0,0, +0,3317,3318,5,467,0,0,3318,3319,5,630,0,0,3319,3320,3,2308,1154,0,3320,93, +1,0,0,0,3321,3322,5,42,0,0,3322,3323,5,603,0,0,3323,3324,5,64,0,0,3324,3354, +3,2392,1196,0,3325,3326,5,1669,0,0,3326,3355,5,387,0,0,3327,3328,7,4,0,0, +3328,3329,5,2078,0,0,3329,3331,3,2392,1196,0,3330,3332,3,444,222,0,3331, +3330,1,0,0,0,3331,3332,1,0,0,0,3332,3355,1,0,0,0,3333,3334,5,1556,0,0,3334, +3335,5,2078,0,0,3335,3355,3,2392,1196,0,3336,3337,5,978,0,0,3337,3355,3, +446,223,0,3338,3347,5,1473,0,0,3339,3348,5,38,0,0,3340,3345,5,112,0,0,3341, +3342,5,1625,0,0,3342,3346,3,2070,1035,0,3343,3344,5,2106,0,0,3344,3346,3, +2070,1035,0,3345,3341,1,0,0,0,3345,3343,1,0,0,0,3346,3348,1,0,0,0,3347,3339, +1,0,0,0,3347,3340,1,0,0,0,3348,3355,1,0,0,0,3349,3351,5,1135,0,0,3350,3349, +1,0,0,0,3350,3351,1,0,0,0,3351,3352,1,0,0,0,3352,3353,5,1267,0,0,3353,3355, +5,349,0,0,3354,3325,1,0,0,0,3354,3327,1,0,0,0,3354,3333,1,0,0,0,3354,3336, +1,0,0,0,3354,3338,1,0,0,0,3354,3350,1,0,0,0,3355,95,1,0,0,0,3356,3357,5, +42,0,0,3357,3361,5,672,0,0,3358,3359,3,2274,1137,0,3359,3360,5,2438,0,0, +3360,3362,1,0,0,0,3361,3358,1,0,0,0,3361,3362,1,0,0,0,3362,3363,1,0,0,0, +3363,3368,3,2392,1196,0,3364,3365,5,1557,0,0,3365,3366,5,2139,0,0,3366,3369, +3,2392,1196,0,3367,3369,5,249,0,0,3368,3364,1,0,0,0,3368,3367,1,0,0,0,3369, +97,1,0,0,0,3370,3371,5,42,0,0,3371,3372,5,630,0,0,3372,3389,3,2308,1154, +0,3373,3390,5,480,0,0,3374,3390,5,1130,0,0,3375,3377,5,249,0,0,3376,3378, +5,376,0,0,3377,3376,1,0,0,0,3377,3378,1,0,0,0,3378,3382,1,0,0,0,3379,3381, +3,810,405,0,3380,3379,1,0,0,0,3381,3384,1,0,0,0,3382,3380,1,0,0,0,3382,3383, +1,0,0,0,3383,3387,1,0,0,0,3384,3382,1,0,0,0,3385,3386,5,1585,0,0,3386,3388, +5,1671,0,0,3387,3385,1,0,0,0,3387,3388,1,0,0,0,3388,3390,1,0,0,0,3389,3373, +1,0,0,0,3389,3374,1,0,0,0,3389,3375,1,0,0,0,3390,99,1,0,0,0,3391,3392,5, +42,0,0,3392,3393,5,790,0,0,3393,3397,7,18,0,0,3394,3395,3,2274,1137,0,3395, +3396,5,2438,0,0,3396,3398,1,0,0,0,3397,3394,1,0,0,0,3397,3398,1,0,0,0,3398, +3399,1,0,0,0,3399,3419,3,2392,1196,0,3400,3401,5,1567,0,0,3401,3413,5,2445, +0,0,3402,3403,5,2445,0,0,3403,3405,3,102,51,0,3404,3406,5,2451,0,0,3405, +3404,1,0,0,0,3405,3406,1,0,0,0,3406,3409,1,0,0,0,3407,3410,3,2274,1137,0, +3408,3410,5,2450,0,0,3409,3407,1,0,0,0,3409,3408,1,0,0,0,3410,3411,1,0,0, +0,3411,3412,5,2446,0,0,3412,3414,1,0,0,0,3413,3402,1,0,0,0,3414,3415,1,0, +0,0,3415,3413,1,0,0,0,3415,3416,1,0,0,0,3416,3417,1,0,0,0,3417,3418,5,2446, +0,0,3418,3420,1,0,0,0,3419,3400,1,0,0,0,3419,3420,1,0,0,0,3420,3424,1,0, +0,0,3421,3425,5,249,0,0,3422,3425,5,1566,0,0,3423,3425,3,1712,856,0,3424, +3421,1,0,0,0,3424,3422,1,0,0,0,3424,3423,1,0,0,0,3425,101,1,0,0,0,3426,3427, +7,19,0,0,3427,103,1,0,0,0,3428,3431,5,319,0,0,3429,3430,5,1305,0,0,3430, +3432,5,1560,0,0,3431,3429,1,0,0,0,3431,3432,1,0,0,0,3432,3434,1,0,0,0,3433, +3435,7,20,0,0,3434,3433,1,0,0,0,3434,3435,1,0,0,0,3435,3436,1,0,0,0,3436, +3437,5,630,0,0,3437,3449,3,2308,1154,0,3438,3439,5,2445,0,0,3439,3444,3, +1728,864,0,3440,3441,5,2451,0,0,3441,3443,3,1728,864,0,3442,3440,1,0,0,0, +3443,3446,1,0,0,0,3444,3442,1,0,0,0,3444,3445,1,0,0,0,3445,3447,1,0,0,0, +3446,3444,1,0,0,0,3447,3448,5,2446,0,0,3448,3450,1,0,0,0,3449,3438,1,0,0, +0,3449,3450,1,0,0,0,3450,3451,1,0,0,0,3451,3452,5,1584,0,0,3452,3456,3,2362, +1181,0,3453,3454,5,1679,0,0,3454,3455,5,2469,0,0,3455,3457,7,21,0,0,3456, +3453,1,0,0,0,3456,3457,1,0,0,0,3457,3467,1,0,0,0,3458,3466,3,1712,856,0, +3459,3466,3,114,57,0,3460,3466,3,116,58,0,3461,3466,3,108,54,0,3462,3466, +3,112,56,0,3463,3466,5,1392,0,0,3464,3466,5,418,0,0,3465,3458,1,0,0,0,3465, +3459,1,0,0,0,3465,3460,1,0,0,0,3465,3461,1,0,0,0,3465,3462,1,0,0,0,3465, +3463,1,0,0,0,3465,3464,1,0,0,0,3466,3469,1,0,0,0,3467,3465,1,0,0,0,3467, +3468,1,0,0,0,3468,3484,1,0,0,0,3469,3467,1,0,0,0,3470,3479,7,22,0,0,3471, +3473,5,380,0,0,3472,3471,1,0,0,0,3472,3473,1,0,0,0,3473,3475,1,0,0,0,3474, +3476,3,1732,866,0,3475,3474,1,0,0,0,3475,3476,1,0,0,0,3476,3477,1,0,0,0, +3477,3480,3,1812,906,0,3478,3480,3,1714,857,0,3479,3472,1,0,0,0,3479,3478, +1,0,0,0,3480,3485,1,0,0,0,3481,3485,3,118,59,0,3482,3485,3,120,60,0,3483, +3485,3,106,53,0,3484,3470,1,0,0,0,3484,3481,1,0,0,0,3484,3482,1,0,0,0,3484, +3483,1,0,0,0,3485,105,1,0,0,0,3486,3487,5,1722,0,0,3487,3488,5,783,0,0,3488, +3489,5,113,0,0,3489,3490,5,1584,0,0,3490,3491,3,2388,1194,0,3491,3492,5, +2467,0,0,3492,3493,5,506,0,0,3493,107,1,0,0,0,3494,3496,5,1329,0,0,3495, +3497,3,110,55,0,3496,3495,1,0,0,0,3496,3497,1,0,0,0,3497,109,1,0,0,0,3498, +3499,5,2445,0,0,3499,3500,5,1346,0,0,3500,3501,3,2070,1035,0,3501,3505,5, +160,0,0,3502,3506,5,55,0,0,3503,3504,7,23,0,0,3504,3506,3,2348,1174,0,3505, +3502,1,0,0,0,3505,3503,1,0,0,0,3506,3508,1,0,0,0,3507,3509,3,126,63,0,3508, +3507,1,0,0,0,3508,3509,1,0,0,0,3509,3510,1,0,0,0,3510,3511,5,2446,0,0,3511, +111,1,0,0,0,3512,3514,5,1577,0,0,3513,3515,3,124,62,0,3514,3513,1,0,0,0, +3514,3515,1,0,0,0,3515,3520,1,0,0,0,3516,3517,5,2445,0,0,3517,3518,5,975, +0,0,3518,3519,7,24,0,0,3519,3521,5,2446,0,0,3520,3516,1,0,0,0,3520,3521, +1,0,0,0,3521,113,1,0,0,0,3522,3523,5,6,0,0,3523,3524,5,160,0,0,3524,3525, +5,2445,0,0,3525,3530,3,122,61,0,3526,3527,5,2451,0,0,3527,3529,3,122,61, +0,3528,3526,1,0,0,0,3529,3532,1,0,0,0,3530,3528,1,0,0,0,3530,3531,1,0,0, +0,3531,3533,1,0,0,0,3532,3530,1,0,0,0,3533,3534,5,2446,0,0,3534,115,1,0, +0,0,3535,3536,5,387,0,0,3536,3537,5,2371,0,0,3537,3538,5,2243,0,0,3538,117, +1,0,0,0,3539,3540,5,35,0,0,3540,3541,5,2244,0,0,3541,3542,3,2280,1140,0, +3542,119,1,0,0,0,3543,3546,5,1392,0,0,3544,3545,7,25,0,0,3545,3547,5,2430, +0,0,3546,3544,1,0,0,0,3546,3547,1,0,0,0,3547,3548,1,0,0,0,3548,3549,5,2244, +0,0,3549,3550,3,2280,1140,0,3550,121,1,0,0,0,3551,3552,7,26,0,0,3552,3553, +3,2308,1154,0,3553,123,1,0,0,0,3554,3555,5,1550,0,0,3555,3556,5,2445,0,0, +3556,3561,3,2330,1165,0,3557,3558,5,2451,0,0,3558,3560,3,2330,1165,0,3559, +3557,1,0,0,0,3560,3563,1,0,0,0,3561,3559,1,0,0,0,3561,3562,1,0,0,0,3562, +3564,1,0,0,0,3563,3561,1,0,0,0,3564,3565,5,2446,0,0,3565,125,1,0,0,0,3566, +3567,7,27,0,0,3567,3568,3,2070,1035,0,3568,3569,5,160,0,0,3569,3570,3,2348, +1174,0,3570,127,1,0,0,0,3571,3572,5,42,0,0,3572,3574,5,1313,0,0,3573,3575, +7,28,0,0,3574,3573,1,0,0,0,3574,3575,1,0,0,0,3575,3576,1,0,0,0,3576,3578, +3,2392,1196,0,3577,3579,3,130,65,0,3578,3577,1,0,0,0,3579,3580,1,0,0,0,3580, +3578,1,0,0,0,3580,3581,1,0,0,0,3581,129,1,0,0,0,3582,3593,5,1509,0,0,3583, +3584,5,1557,0,0,3584,3585,5,2139,0,0,3585,3593,3,2392,1196,0,3586,3587,5, +190,0,0,3587,3588,5,183,0,0,3588,3589,5,2139,0,0,3589,3593,3,2392,1196,0, +3590,3593,5,497,0,0,3591,3593,5,427,0,0,3592,3582,1,0,0,0,3592,3583,1,0, +0,0,3592,3586,1,0,0,0,3592,3590,1,0,0,0,3592,3591,1,0,0,0,3593,131,1,0,0, +0,3594,3595,5,42,0,0,3595,3596,5,876,0,0,3596,3597,5,1461,0,0,3597,3601, +3,2392,1196,0,3598,3602,3,134,67,0,3599,3602,3,136,68,0,3600,3602,3,138, +69,0,3601,3598,1,0,0,0,3601,3599,1,0,0,0,3601,3600,1,0,0,0,3602,3606,1,0, +0,0,3603,3604,5,2233,0,0,3604,3605,5,2469,0,0,3605,3607,7,29,0,0,3606,3603, +1,0,0,0,3606,3607,1,0,0,0,3607,133,1,0,0,0,3608,3609,3,148,74,0,3609,3624, +5,579,0,0,3610,3611,5,2469,0,0,3611,3612,5,2445,0,0,3612,3613,3,146,73,0, +3613,3614,5,2446,0,0,3614,3625,1,0,0,0,3615,3622,5,38,0,0,3616,3617,5,532, +0,0,3617,3618,5,2469,0,0,3618,3619,5,2445,0,0,3619,3620,3,146,73,0,3620, +3621,5,2446,0,0,3621,3623,1,0,0,0,3622,3616,1,0,0,0,3622,3623,1,0,0,0,3623, +3625,1,0,0,0,3624,3610,1,0,0,0,3624,3615,1,0,0,0,3625,135,1,0,0,0,3626,3627, +3,148,74,0,3627,3642,5,1270,0,0,3628,3629,5,2469,0,0,3629,3630,5,2445,0, +0,3630,3631,3,146,73,0,3631,3632,5,2446,0,0,3632,3643,1,0,0,0,3633,3640, +5,38,0,0,3634,3635,5,532,0,0,3635,3636,5,2469,0,0,3636,3637,5,2445,0,0,3637, +3638,3,146,73,0,3638,3639,5,2446,0,0,3639,3641,1,0,0,0,3640,3634,1,0,0,0, +3640,3641,1,0,0,0,3641,3643,1,0,0,0,3642,3628,1,0,0,0,3642,3633,1,0,0,0, +3643,137,1,0,0,0,3644,3645,3,148,74,0,3645,3665,5,1741,0,0,3646,3647,5,2469, +0,0,3647,3648,5,2445,0,0,3648,3649,3,146,73,0,3649,3650,5,2446,0,0,3650, +3666,1,0,0,0,3651,3652,5,2469,0,0,3652,3653,5,2445,0,0,3653,3654,5,2441, +0,0,3654,3655,5,2446,0,0,3655,3666,3,140,70,0,3656,3663,5,38,0,0,3657,3658, +5,532,0,0,3658,3659,5,2469,0,0,3659,3660,5,2445,0,0,3660,3661,3,146,73,0, +3661,3662,5,2446,0,0,3662,3664,1,0,0,0,3663,3657,1,0,0,0,3663,3664,1,0,0, +0,3664,3666,1,0,0,0,3665,3646,1,0,0,0,3665,3651,1,0,0,0,3665,3656,1,0,0, +0,3666,139,1,0,0,0,3667,3687,5,209,0,0,3668,3669,5,2469,0,0,3669,3670,5, +2445,0,0,3670,3671,3,146,73,0,3671,3672,5,2446,0,0,3672,3688,1,0,0,0,3673, +3674,5,2469,0,0,3674,3675,5,2445,0,0,3675,3676,5,2441,0,0,3676,3677,5,2446, +0,0,3677,3688,3,142,71,0,3678,3685,5,38,0,0,3679,3680,5,532,0,0,3680,3681, +5,2469,0,0,3681,3682,5,2445,0,0,3682,3683,3,146,73,0,3683,3684,5,2446,0, +0,3684,3686,1,0,0,0,3685,3679,1,0,0,0,3685,3686,1,0,0,0,3686,3688,1,0,0, +0,3687,3668,1,0,0,0,3687,3673,1,0,0,0,3687,3678,1,0,0,0,3688,141,1,0,0,0, +3689,3713,5,1270,0,0,3690,3691,5,2469,0,0,3691,3692,5,2445,0,0,3692,3693, +3,146,73,0,3693,3694,5,2446,0,0,3694,3714,1,0,0,0,3695,3696,5,2469,0,0,3696, +3697,5,2445,0,0,3697,3698,5,2441,0,0,3698,3700,5,2446,0,0,3699,3701,3,144, +72,0,3700,3699,1,0,0,0,3701,3702,1,0,0,0,3702,3700,1,0,0,0,3702,3703,1,0, +0,0,3703,3714,1,0,0,0,3704,3711,5,38,0,0,3705,3706,5,532,0,0,3706,3707,5, +2469,0,0,3707,3708,5,2445,0,0,3708,3709,3,146,73,0,3709,3710,5,2446,0,0, +3710,3712,1,0,0,0,3711,3705,1,0,0,0,3711,3712,1,0,0,0,3712,3714,1,0,0,0, +3713,3690,1,0,0,0,3713,3695,1,0,0,0,3713,3704,1,0,0,0,3714,143,1,0,0,0,3715, +3716,5,2256,0,0,3716,3717,5,2469,0,0,3717,3718,5,2445,0,0,3718,3719,3,146, +73,0,3719,3720,5,2446,0,0,3720,3725,1,0,0,0,3721,3722,7,30,0,0,3722,3723, +5,2469,0,0,3723,3725,5,2441,0,0,3724,3715,1,0,0,0,3724,3721,1,0,0,0,3725, +145,1,0,0,0,3726,3731,5,2441,0,0,3727,3728,5,2451,0,0,3728,3730,5,2441,0, +0,3729,3727,1,0,0,0,3730,3733,1,0,0,0,3731,3729,1,0,0,0,3731,3732,1,0,0, +0,3732,147,1,0,0,0,3733,3731,1,0,0,0,3734,3735,7,17,0,0,3735,149,1,0,0,0, +3736,3737,5,467,0,0,3737,3738,5,876,0,0,3738,3739,5,1461,0,0,3739,3740,3, +2392,1196,0,3740,151,1,0,0,0,3741,3742,5,467,0,0,3742,3744,5,1327,0,0,3743, +3745,5,147,0,0,3744,3743,1,0,0,0,3744,3745,1,0,0,0,3745,3749,1,0,0,0,3746, +3747,3,2338,1169,0,3747,3748,5,2438,0,0,3748,3750,1,0,0,0,3749,3746,1,0, +0,0,3749,3750,1,0,0,0,3750,3751,1,0,0,0,3751,3752,3,2278,1139,0,3752,153, +1,0,0,0,3753,3754,5,42,0,0,3754,3755,5,1327,0,0,3755,3756,3,2278,1139,0, +3756,3758,5,249,0,0,3757,3759,5,376,0,0,3758,3757,1,0,0,0,3758,3759,1,0, +0,0,3759,3761,1,0,0,0,3760,3762,7,31,0,0,3761,3760,1,0,0,0,3761,3762,1,0, +0,0,3762,3766,1,0,0,0,3763,3765,3,810,405,0,3764,3763,1,0,0,0,3765,3768, +1,0,0,0,3766,3764,1,0,0,0,3766,3767,1,0,0,0,3767,3771,1,0,0,0,3768,3766, +1,0,0,0,3769,3770,5,1585,0,0,3770,3772,5,1671,0,0,3771,3769,1,0,0,0,3771, +3772,1,0,0,0,3772,155,1,0,0,0,3773,3776,5,319,0,0,3774,3775,5,1305,0,0,3775, +3777,5,1560,0,0,3776,3774,1,0,0,0,3776,3777,1,0,0,0,3777,3779,1,0,0,0,3778, +3780,7,20,0,0,3779,3778,1,0,0,0,3779,3780,1,0,0,0,3780,3781,1,0,0,0,3781, +3785,5,1327,0,0,3782,3783,3,2338,1169,0,3783,3784,5,2438,0,0,3784,3786,1, +0,0,0,3785,3782,1,0,0,0,3785,3786,1,0,0,0,3786,3787,1,0,0,0,3787,3789,3, +2278,1139,0,3788,3790,3,1712,856,0,3789,3788,1,0,0,0,3789,3790,1,0,0,0,3790, +3791,1,0,0,0,3791,3795,7,22,0,0,3792,3794,3,160,80,0,3793,3792,1,0,0,0,3794, +3797,1,0,0,0,3795,3793,1,0,0,0,3795,3796,1,0,0,0,3796,3798,1,0,0,0,3797, +3795,1,0,0,0,3798,3800,5,506,0,0,3799,3801,3,2278,1139,0,3800,3799,1,0,0, +0,3800,3801,1,0,0,0,3801,157,1,0,0,0,3802,3805,5,319,0,0,3803,3804,5,1305, +0,0,3804,3806,5,1560,0,0,3805,3803,1,0,0,0,3805,3806,1,0,0,0,3806,3808,1, +0,0,0,3807,3809,7,20,0,0,3808,3807,1,0,0,0,3808,3809,1,0,0,0,3809,3810,1, +0,0,0,3810,3811,5,1327,0,0,3811,3815,5,147,0,0,3812,3813,3,2338,1169,0,3813, +3814,5,2438,0,0,3814,3816,1,0,0,0,3815,3812,1,0,0,0,3815,3816,1,0,0,0,3816, +3817,1,0,0,0,3817,3818,3,2278,1139,0,3818,3822,7,22,0,0,3819,3821,3,166, +83,0,3820,3819,1,0,0,0,3821,3824,1,0,0,0,3822,3823,1,0,0,0,3822,3820,1,0, +0,0,3823,3835,1,0,0,0,3824,3822,1,0,0,0,3825,3826,5,113,0,0,3826,3833,3, +1762,881,0,3827,3829,5,533,0,0,3828,3830,3,1814,907,0,3829,3828,1,0,0,0, +3830,3831,1,0,0,0,3831,3829,1,0,0,0,3831,3832,1,0,0,0,3832,3834,1,0,0,0, +3833,3827,1,0,0,0,3833,3834,1,0,0,0,3834,3836,1,0,0,0,3835,3825,1,0,0,0, +3835,3836,1,0,0,0,3836,3837,1,0,0,0,3837,3839,5,506,0,0,3838,3840,3,2278, +1139,0,3839,3838,1,0,0,0,3839,3840,1,0,0,0,3840,159,1,0,0,0,3841,3850,3, +1746,873,0,3842,3850,3,1744,872,0,3843,3850,3,162,81,0,3844,3850,3,164,82, +0,3845,3850,3,1736,868,0,3846,3850,3,1738,869,0,3847,3850,3,1740,870,0,3848, +3850,3,1754,877,0,3849,3841,1,0,0,0,3849,3842,1,0,0,0,3849,3843,1,0,0,0, +3849,3844,1,0,0,0,3849,3845,1,0,0,0,3849,3846,1,0,0,0,3849,3847,1,0,0,0, +3849,3848,1,0,0,0,3850,161,1,0,0,0,3851,3852,5,1459,0,0,3852,3864,3,2390, +1195,0,3853,3854,5,2445,0,0,3854,3859,3,1728,864,0,3855,3856,5,2451,0,0, +3856,3858,3,1728,864,0,3857,3855,1,0,0,0,3858,3861,1,0,0,0,3859,3857,1,0, +0,0,3859,3860,1,0,0,0,3860,3862,1,0,0,0,3861,3859,1,0,0,0,3862,3863,5,2446, +0,0,3863,3865,1,0,0,0,3864,3853,1,0,0,0,3864,3865,1,0,0,0,3865,3870,1,0, +0,0,3866,3869,3,114,57,0,3867,3869,5,1329,0,0,3868,3866,1,0,0,0,3868,3867, +1,0,0,0,3869,3872,1,0,0,0,3870,3868,1,0,0,0,3870,3871,1,0,0,0,3871,3873, +1,0,0,0,3872,3870,1,0,0,0,3873,3874,5,2467,0,0,3874,163,1,0,0,0,3875,3876, +5,630,0,0,3876,3888,3,2390,1195,0,3877,3878,5,2445,0,0,3878,3883,3,1728, +864,0,3879,3880,5,2451,0,0,3880,3882,3,1728,864,0,3881,3879,1,0,0,0,3882, +3885,1,0,0,0,3883,3881,1,0,0,0,3883,3884,1,0,0,0,3884,3886,1,0,0,0,3885, +3883,1,0,0,0,3886,3887,5,2446,0,0,3887,3889,1,0,0,0,3888,3877,1,0,0,0,3888, +3889,1,0,0,0,3889,3890,1,0,0,0,3890,3891,5,1584,0,0,3891,3899,3,2362,1181, +0,3892,3898,5,418,0,0,3893,3898,5,1392,0,0,3894,3898,3,108,54,0,3895,3898, +5,1577,0,0,3896,3898,3,126,63,0,3897,3892,1,0,0,0,3897,3893,1,0,0,0,3897, +3894,1,0,0,0,3897,3895,1,0,0,0,3897,3896,1,0,0,0,3898,3901,1,0,0,0,3899, +3897,1,0,0,0,3899,3900,1,0,0,0,3900,3902,1,0,0,0,3901,3899,1,0,0,0,3902, +3903,5,2467,0,0,3903,165,1,0,0,0,3904,3916,3,1746,873,0,3905,3916,3,1744, +872,0,3906,3916,3,162,81,0,3907,3916,3,164,82,0,3908,3916,3,1738,869,0,3909, +3916,3,1740,870,0,3910,3916,3,1736,868,0,3911,3916,3,1754,877,0,3912,3916, +3,178,89,0,3913,3916,3,176,88,0,3914,3916,3,1806,903,0,3915,3904,1,0,0,0, +3915,3905,1,0,0,0,3915,3906,1,0,0,0,3915,3907,1,0,0,0,3915,3908,1,0,0,0, +3915,3909,1,0,0,0,3915,3910,1,0,0,0,3915,3911,1,0,0,0,3915,3912,1,0,0,0, +3915,3913,1,0,0,0,3915,3914,1,0,0,0,3916,167,1,0,0,0,3917,3918,5,42,0,0, +3918,3919,5,1408,0,0,3919,3920,5,590,0,0,3920,3937,3,2392,1196,0,3921,3922, +5,1565,0,0,3922,3938,3,1170,585,0,3923,3938,3,920,460,0,3924,3927,5,986, +0,0,3925,3926,5,988,0,0,3926,3928,3,198,99,0,3927,3925,1,0,0,0,3927,3928, +1,0,0,0,3928,3931,1,0,0,0,3929,3930,5,101,0,0,3930,3932,3,1452,726,0,3931, +3929,1,0,0,0,3931,3932,1,0,0,0,3932,3934,1,0,0,0,3933,3935,5,614,0,0,3934, +3933,1,0,0,0,3934,3935,1,0,0,0,3935,3938,1,0,0,0,3936,3938,5,442,0,0,3937, +3921,1,0,0,0,3937,3923,1,0,0,0,3937,3924,1,0,0,0,3937,3936,1,0,0,0,3938, +169,1,0,0,0,3939,3940,5,467,0,0,3940,3941,5,1408,0,0,3941,3942,5,590,0,0, +3942,3951,3,2392,1196,0,3943,3945,5,614,0,0,3944,3943,1,0,0,0,3944,3945, +1,0,0,0,3945,3946,1,0,0,0,3946,3949,5,703,0,0,3947,3949,5,538,0,0,3948,3944, +1,0,0,0,3948,3947,1,0,0,0,3949,3950,1,0,0,0,3950,3952,5,293,0,0,3951,3948, +1,0,0,0,3951,3952,1,0,0,0,3952,171,1,0,0,0,3953,3954,5,467,0,0,3954,3955, +5,1459,0,0,3955,3956,3,2310,1155,0,3956,173,1,0,0,0,3957,3958,5,42,0,0,3958, +3959,5,1459,0,0,3959,3960,3,2310,1155,0,3960,3962,5,249,0,0,3961,3963,5, +376,0,0,3962,3961,1,0,0,0,3962,3963,1,0,0,0,3963,3967,1,0,0,0,3964,3966, +3,810,405,0,3965,3964,1,0,0,0,3966,3969,1,0,0,0,3967,3965,1,0,0,0,3967,3968, +1,0,0,0,3968,3972,1,0,0,0,3969,3967,1,0,0,0,3970,3971,5,1585,0,0,3971,3973, +5,1671,0,0,3972,3970,1,0,0,0,3972,3973,1,0,0,0,3973,175,1,0,0,0,3974,3975, +5,630,0,0,3975,3987,3,2390,1195,0,3976,3977,5,2445,0,0,3977,3982,3,1728, +864,0,3978,3979,5,2451,0,0,3979,3981,3,1728,864,0,3980,3978,1,0,0,0,3981, +3984,1,0,0,0,3982,3980,1,0,0,0,3982,3983,1,0,0,0,3983,3985,1,0,0,0,3984, +3982,1,0,0,0,3985,3986,5,2446,0,0,3986,3988,1,0,0,0,3987,3976,1,0,0,0,3987, +3988,1,0,0,0,3988,3989,1,0,0,0,3989,3990,5,1584,0,0,3990,3999,3,2362,1181, +0,3991,3998,5,1392,0,0,3992,3998,5,418,0,0,3993,3998,3,1712,856,0,3994,3998, +3,108,54,0,3995,3998,3,112,56,0,3996,3998,3,126,63,0,3997,3991,1,0,0,0,3997, +3992,1,0,0,0,3997,3993,1,0,0,0,3997,3994,1,0,0,0,3997,3995,1,0,0,0,3997, +3996,1,0,0,0,3998,4001,1,0,0,0,3999,3997,1,0,0,0,3999,4000,1,0,0,0,4000, +4016,1,0,0,0,4001,3999,1,0,0,0,4002,4011,7,22,0,0,4003,4005,5,380,0,0,4004, +4003,1,0,0,0,4004,4005,1,0,0,0,4005,4007,1,0,0,0,4006,4008,3,1732,866,0, +4007,4006,1,0,0,0,4007,4008,1,0,0,0,4008,4009,1,0,0,0,4009,4012,3,1812,906, +0,4010,4012,3,1714,857,0,4011,4004,1,0,0,0,4011,4010,1,0,0,0,4012,4017,1, +0,0,0,4013,4014,7,32,0,0,4014,4015,5,2244,0,0,4015,4017,3,2280,1140,0,4016, +4002,1,0,0,0,4016,4013,1,0,0,0,4017,4018,1,0,0,0,4018,4019,5,2467,0,0,4019, +177,1,0,0,0,4020,4021,5,1459,0,0,4021,4033,3,2390,1195,0,4022,4023,5,2445, +0,0,4023,4028,3,1728,864,0,4024,4025,5,2451,0,0,4025,4027,3,1728,864,0,4026, +4024,1,0,0,0,4027,4030,1,0,0,0,4028,4026,1,0,0,0,4028,4029,1,0,0,0,4029, +4031,1,0,0,0,4030,4028,1,0,0,0,4031,4032,5,2446,0,0,4032,4034,1,0,0,0,4033, +4022,1,0,0,0,4033,4034,1,0,0,0,4034,4039,1,0,0,0,4035,4038,3,114,57,0,4036, +4038,5,1329,0,0,4037,4035,1,0,0,0,4037,4036,1,0,0,0,4038,4041,1,0,0,0,4039, +4037,1,0,0,0,4039,4040,1,0,0,0,4040,4042,1,0,0,0,4041,4039,1,0,0,0,4042, +4052,7,22,0,0,4043,4045,5,380,0,0,4044,4043,1,0,0,0,4044,4045,1,0,0,0,4045, +4047,1,0,0,0,4046,4048,3,1732,866,0,4047,4046,1,0,0,0,4047,4048,1,0,0,0, +4048,4049,1,0,0,0,4049,4053,3,1812,906,0,4050,4053,3,1714,857,0,4051,4053, +5,558,0,0,4052,4044,1,0,0,0,4052,4050,1,0,0,0,4052,4051,1,0,0,0,4053,4054, +1,0,0,0,4054,4055,5,2467,0,0,4055,179,1,0,0,0,4056,4059,5,319,0,0,4057,4058, +5,1305,0,0,4058,4060,5,1560,0,0,4059,4057,1,0,0,0,4059,4060,1,0,0,0,4060, +4061,1,0,0,0,4061,4062,5,1459,0,0,4062,4074,3,2310,1155,0,4063,4064,5,2445, +0,0,4064,4069,3,1728,864,0,4065,4066,5,2451,0,0,4066,4068,3,1728,864,0,4067, +4065,1,0,0,0,4068,4071,1,0,0,0,4069,4067,1,0,0,0,4069,4070,1,0,0,0,4070, +4072,1,0,0,0,4071,4069,1,0,0,0,4072,4073,5,2446,0,0,4073,4075,1,0,0,0,4074, +4063,1,0,0,0,4074,4075,1,0,0,0,4075,4077,1,0,0,0,4076,4078,3,1712,856,0, +4077,4076,1,0,0,0,4077,4078,1,0,0,0,4078,4080,1,0,0,0,4079,4081,5,1329,0, +0,4080,4079,1,0,0,0,4080,4081,1,0,0,0,4081,4082,1,0,0,0,4082,4092,7,22,0, +0,4083,4085,5,380,0,0,4084,4083,1,0,0,0,4084,4085,1,0,0,0,4085,4087,1,0, +0,0,4086,4088,3,1732,866,0,4087,4086,1,0,0,0,4087,4088,1,0,0,0,4088,4089, +1,0,0,0,4089,4093,3,1812,906,0,4090,4093,3,1714,857,0,4091,4093,5,558,0, +0,4092,4084,1,0,0,0,4092,4090,1,0,0,0,4092,4091,1,0,0,0,4093,181,1,0,0,0, +4094,4095,5,42,0,0,4095,4096,5,1568,0,0,4096,4099,5,309,0,0,4097,4098,7, +33,0,0,4098,4100,5,2439,0,0,4099,4097,1,0,0,0,4100,4101,1,0,0,0,4101,4099, +1,0,0,0,4101,4102,1,0,0,0,4102,183,1,0,0,0,4103,4104,5,467,0,0,4104,4105, +5,1313,0,0,4105,4106,3,2392,1196,0,4106,185,1,0,0,0,4107,4108,5,42,0,0,4108, +4109,5,1594,0,0,4109,4110,5,1643,0,0,4110,4119,3,2272,1136,0,4111,4120,5, +1254,0,0,4112,4120,5,1241,0,0,4113,4120,3,1190,595,0,4114,4117,5,1682,0, +0,4115,4116,5,2139,0,0,4116,4118,3,1170,585,0,4117,4115,1,0,0,0,4117,4118, +1,0,0,0,4118,4120,1,0,0,0,4119,4111,1,0,0,0,4119,4112,1,0,0,0,4119,4113, +1,0,0,0,4119,4114,1,0,0,0,4120,187,1,0,0,0,4121,4122,5,467,0,0,4122,4123, +5,1572,0,0,4123,4124,5,1409,0,0,4124,4129,3,2392,1196,0,4125,4126,5,618, +0,0,4126,4127,5,1407,0,0,4127,4128,5,348,0,0,4128,4130,3,2392,1196,0,4129, +4125,1,0,0,0,4129,4130,1,0,0,0,4130,189,1,0,0,0,4131,4132,5,467,0,0,4132, +4133,5,1594,0,0,4133,4134,5,1643,0,0,4134,4135,3,2272,1136,0,4135,191,1, +0,0,0,4136,4137,5,467,0,0,4137,4138,5,1591,0,0,4138,4139,3,2296,1148,0,4139, +193,1,0,0,0,4140,4141,5,319,0,0,4141,4142,5,1408,0,0,4142,4143,5,590,0,0, +4143,4145,3,2392,1196,0,4144,4146,3,196,98,0,4145,4144,1,0,0,0,4146,4147, +1,0,0,0,4147,4145,1,0,0,0,4147,4148,1,0,0,0,4148,195,1,0,0,0,4149,4150,5, +988,0,0,4150,4160,3,198,99,0,4151,4152,5,101,0,0,4152,4154,3,1452,726,0, +4153,4155,5,1585,0,0,4154,4153,1,0,0,0,4154,4155,1,0,0,0,4155,4160,1,0,0, +0,4156,4157,7,34,0,0,4157,4160,3,1170,585,0,4158,4160,3,920,460,0,4159,4149, +1,0,0,0,4159,4151,1,0,0,0,4159,4156,1,0,0,0,4159,4158,1,0,0,0,4160,197,1, +0,0,0,4161,4162,5,2441,0,0,4162,199,1,0,0,0,4163,4165,5,319,0,0,4164,4166, +5,1471,0,0,4165,4164,1,0,0,0,4165,4166,1,0,0,0,4166,4167,1,0,0,0,4167,4168, +5,1594,0,0,4168,4169,5,1643,0,0,4169,4175,3,2272,1136,0,4170,4171,5,2078, +0,0,4171,4174,3,1648,824,0,4172,4174,3,1190,595,0,4173,4170,1,0,0,0,4173, +4172,1,0,0,0,4174,4177,1,0,0,0,4175,4173,1,0,0,0,4175,4176,1,0,0,0,4176, +201,1,0,0,0,4177,4175,1,0,0,0,4178,4179,5,467,0,0,4179,4180,5,2155,0,0,4180, +4181,3,2312,1156,0,4181,203,1,0,0,0,4182,4183,5,42,0,0,4183,4184,5,2155, +0,0,4184,4203,3,2312,1156,0,4185,4204,7,17,0,0,4186,4187,5,1557,0,0,4187, +4188,5,2139,0,0,4188,4204,3,2312,1156,0,4189,4191,5,249,0,0,4190,4192,5, +376,0,0,4191,4190,1,0,0,0,4191,4192,1,0,0,0,4192,4196,1,0,0,0,4193,4195, +3,810,405,0,4194,4193,1,0,0,0,4195,4198,1,0,0,0,4196,4194,1,0,0,0,4196,4197, +1,0,0,0,4197,4201,1,0,0,0,4198,4196,1,0,0,0,4199,4200,5,1585,0,0,4200,4202, +5,1671,0,0,4201,4199,1,0,0,0,4201,4202,1,0,0,0,4202,4204,1,0,0,0,4203,4185, +1,0,0,0,4203,4186,1,0,0,0,4203,4189,1,0,0,0,4204,205,1,0,0,0,4205,4208,5, +319,0,0,4206,4207,5,1305,0,0,4207,4209,5,1560,0,0,4208,4206,1,0,0,0,4208, +4209,1,0,0,0,4209,4210,1,0,0,0,4210,4211,5,2155,0,0,4211,4215,3,2312,1156, +0,4212,4216,3,212,106,0,4213,4216,3,216,108,0,4214,4216,3,218,109,0,4215, +4212,1,0,0,0,4215,4213,1,0,0,0,4215,4214,1,0,0,0,4216,4218,1,0,0,0,4217, +4219,3,208,104,0,4218,4217,1,0,0,0,4218,4219,1,0,0,0,4219,4221,1,0,0,0,4220, +4222,7,17,0,0,4221,4220,1,0,0,0,4221,4222,1,0,0,0,4222,4224,1,0,0,0,4223, +4225,3,210,105,0,4224,4223,1,0,0,0,4224,4225,1,0,0,0,4225,4226,1,0,0,0,4226, +4227,3,220,110,0,4227,207,1,0,0,0,4228,4229,5,612,0,0,4229,4234,3,2312,1156, +0,4230,4231,5,2451,0,0,4231,4233,3,2312,1156,0,4232,4230,1,0,0,0,4233,4236, +1,0,0,0,4234,4232,1,0,0,0,4234,4235,1,0,0,0,4235,209,1,0,0,0,4236,4234,1, +0,0,0,4237,4238,5,2298,0,0,4238,4239,5,2445,0,0,4239,4240,3,2066,1033,0, +4240,4241,5,2446,0,0,4241,211,1,0,0,0,4242,4247,5,112,0,0,4243,4247,5,33, +0,0,4244,4245,5,761,0,0,4245,4247,5,1244,0,0,4246,4242,1,0,0,0,4246,4243, +1,0,0,0,4246,4244,1,0,0,0,4247,4248,1,0,0,0,4248,4250,3,228,114,0,4249,4251, +3,234,117,0,4250,4249,1,0,0,0,4250,4251,1,0,0,0,4251,4253,1,0,0,0,4252,4254, +3,214,107,0,4253,4252,1,0,0,0,4253,4254,1,0,0,0,4254,213,1,0,0,0,4255,4256, +5,618,0,0,4256,4257,5,479,0,0,4257,4258,5,1604,0,0,4258,215,1,0,0,0,4259, +4260,5,618,0,0,4260,4262,3,228,114,0,4261,4263,3,234,117,0,4262,4261,1,0, +0,0,4262,4263,1,0,0,0,4263,217,1,0,0,0,4264,4265,7,35,0,0,4265,4270,3,226, +113,0,4266,4267,5,1305,0,0,4267,4269,3,226,113,0,4268,4266,1,0,0,0,4269, +4272,1,0,0,0,4270,4268,1,0,0,0,4270,4271,1,0,0,0,4271,4273,1,0,0,0,4272, +4270,1,0,0,0,4273,4281,5,1257,0,0,4274,4282,5,348,0,0,4275,4276,3,2274,1137, +0,4276,4277,5,2438,0,0,4277,4279,1,0,0,0,4278,4275,1,0,0,0,4278,4279,1,0, +0,0,4279,4280,1,0,0,0,4280,4282,5,1623,0,0,4281,4274,1,0,0,0,4281,4278,1, +0,0,0,4282,219,1,0,0,0,4283,4288,3,222,111,0,4284,4285,5,173,0,0,4285,4288, +3,2390,1195,0,4286,4288,3,1816,908,0,4287,4283,1,0,0,0,4287,4284,1,0,0,0, +4287,4286,1,0,0,0,4288,221,1,0,0,0,4289,4290,5,257,0,0,4290,4292,5,2155, +0,0,4291,4293,3,1732,866,0,4292,4291,1,0,0,0,4292,4293,1,0,0,0,4293,4295, +1,0,0,0,4294,4296,3,224,112,0,4295,4294,1,0,0,0,4296,4297,1,0,0,0,4297,4295, +1,0,0,0,4297,4298,1,0,0,0,4298,4299,1,0,0,0,4299,4301,5,506,0,0,4300,4302, +3,2312,1156,0,4301,4300,1,0,0,0,4301,4302,1,0,0,0,4302,223,1,0,0,0,4303, +4304,5,112,0,0,4304,4305,5,1741,0,0,4305,4306,5,783,0,0,4306,4307,3,1818, +909,0,4307,4308,5,112,0,0,4308,4309,5,1741,0,0,4309,4310,5,2467,0,0,4310, +4340,1,0,0,0,4311,4312,5,112,0,0,4312,4313,5,479,0,0,4313,4314,5,1604,0, +0,4314,4315,5,783,0,0,4315,4316,3,1818,909,0,4316,4317,5,112,0,0,4317,4318, +5,479,0,0,4318,4319,5,1604,0,0,4319,4320,5,2467,0,0,4320,4340,1,0,0,0,4321, +4322,5,33,0,0,4322,4323,5,1741,0,0,4323,4324,5,783,0,0,4324,4325,3,1818, +909,0,4325,4326,5,33,0,0,4326,4327,5,1741,0,0,4327,4328,5,2467,0,0,4328, +4340,1,0,0,0,4329,4330,5,33,0,0,4330,4331,5,479,0,0,4331,4332,5,1604,0,0, +4332,4333,5,783,0,0,4333,4334,3,1818,909,0,4334,4335,5,33,0,0,4335,4336, +5,479,0,0,4336,4337,5,1604,0,0,4337,4338,5,2467,0,0,4338,4340,1,0,0,0,4339, +4303,1,0,0,0,4339,4311,1,0,0,0,4339,4321,1,0,0,0,4339,4329,1,0,0,0,4340, +225,1,0,0,0,4341,4368,5,42,0,0,4342,4368,5,46,0,0,4343,4344,5,77,0,0,4344, +4368,5,1744,0,0,4345,4368,5,85,0,0,4346,4368,5,241,0,0,4347,4368,5,319,0, +0,4348,4349,5,434,0,0,4349,4368,5,1744,0,0,4350,4368,5,467,0,0,4351,4368, +5,645,0,0,4352,4368,5,1057,0,0,4353,4368,5,1557,0,0,4354,4368,5,1587,0,0, +4355,4368,5,2157,0,0,4356,4368,5,374,0,0,4357,4368,5,1737,0,0,4358,4368, +5,1683,0,0,4359,4368,5,370,0,0,4360,4368,5,889,0,0,4361,4368,5,888,0,0,4362, +4368,5,1660,0,0,4363,4368,5,1788,0,0,4364,4368,5,348,0,0,4365,4368,5,1623, +0,0,4366,4368,5,612,0,0,4367,4341,1,0,0,0,4367,4342,1,0,0,0,4367,4343,1, +0,0,0,4367,4345,1,0,0,0,4367,4346,1,0,0,0,4367,4347,1,0,0,0,4367,4348,1, +0,0,0,4367,4350,1,0,0,0,4367,4351,1,0,0,0,4367,4352,1,0,0,0,4367,4353,1, +0,0,0,4367,4354,1,0,0,0,4367,4355,1,0,0,0,4367,4356,1,0,0,0,4367,4357,1, +0,0,0,4367,4358,1,0,0,0,4367,4359,1,0,0,0,4367,4360,1,0,0,0,4367,4361,1, +0,0,0,4367,4362,1,0,0,0,4367,4363,1,0,0,0,4367,4364,1,0,0,0,4367,4365,1, +0,0,0,4367,4366,1,0,0,0,4368,227,1,0,0,0,4369,4374,3,230,115,0,4370,4371, +5,1305,0,0,4371,4373,3,230,115,0,4372,4370,1,0,0,0,4373,4376,1,0,0,0,4374, +4372,1,0,0,0,4374,4375,1,0,0,0,4375,4377,1,0,0,0,4376,4374,1,0,0,0,4377, +4379,5,1257,0,0,4378,4380,3,232,116,0,4379,4378,1,0,0,0,4379,4380,1,0,0, +0,4380,4381,1,0,0,0,4381,4382,3,2330,1165,0,4382,229,1,0,0,0,4383,4386,7, +36,0,0,4384,4385,5,1244,0,0,4385,4387,3,2346,1173,0,4386,4384,1,0,0,0,4386, +4387,1,0,0,0,4387,231,1,0,0,0,4388,4389,5,1011,0,0,4389,4390,5,2081,0,0, +4390,4391,3,2330,1165,0,4391,4392,5,1244,0,0,4392,233,1,0,0,0,4393,4394, +5,1527,0,0,4394,4397,3,236,118,0,4395,4397,5,1526,0,0,4396,4393,1,0,0,0, +4396,4395,1,0,0,0,4397,4401,1,0,0,0,4398,4400,3,236,118,0,4399,4398,1,0, +0,0,4400,4403,1,0,0,0,4401,4399,1,0,0,0,4401,4402,1,0,0,0,4402,235,1,0,0, +0,4403,4401,1,0,0,0,4404,4405,7,37,0,0,4405,4406,3,2256,1128,0,4406,237, +1,0,0,0,4407,4408,5,467,0,0,4408,4410,5,2164,0,0,4409,4411,5,147,0,0,4410, +4409,1,0,0,0,4410,4411,1,0,0,0,4411,4412,1,0,0,0,4412,4414,3,2302,1151,0, +4413,4415,7,38,0,0,4414,4413,1,0,0,0,4414,4415,1,0,0,0,4415,239,1,0,0,0, +4416,4417,5,42,0,0,4417,4418,5,2164,0,0,4418,4425,3,2302,1151,0,4419,4426, +3,242,121,0,4420,4426,3,244,122,0,4421,4426,3,246,123,0,4422,4426,3,250, +125,0,4423,4426,3,284,142,0,4424,4426,3,296,148,0,4425,4419,1,0,0,0,4425, +4420,1,0,0,0,4425,4421,1,0,0,0,4425,4422,1,0,0,0,4425,4423,1,0,0,0,4425, +4424,1,0,0,0,4426,4428,1,0,0,0,4427,4429,3,252,126,0,4428,4427,1,0,0,0,4428, +4429,1,0,0,0,4429,241,1,0,0,0,4430,4432,5,249,0,0,4431,4433,5,376,0,0,4432, +4431,1,0,0,0,4432,4433,1,0,0,0,4433,4435,1,0,0,0,4434,4436,7,39,0,0,4435, +4434,1,0,0,0,4435,4436,1,0,0,0,4436,4440,1,0,0,0,4437,4439,3,810,405,0,4438, +4437,1,0,0,0,4439,4442,1,0,0,0,4440,4438,1,0,0,0,4440,4441,1,0,0,0,4441, +4445,1,0,0,0,4442,4440,1,0,0,0,4443,4444,5,1585,0,0,4444,4446,5,1671,0,0, +4445,4443,1,0,0,0,4445,4446,1,0,0,0,4446,243,1,0,0,0,4447,4449,5,1560,0, +0,4448,4450,3,1712,856,0,4449,4448,1,0,0,0,4449,4450,1,0,0,0,4450,4451,1, +0,0,0,4451,4452,5,69,0,0,4452,4453,5,1236,0,0,4453,4454,5,2445,0,0,4454, +4459,3,286,143,0,4455,4456,5,2451,0,0,4456,4458,3,286,143,0,4457,4455,1, +0,0,0,4458,4461,1,0,0,0,4459,4457,1,0,0,0,4459,4460,1,0,0,0,4460,4462,1, +0,0,0,4461,4459,1,0,0,0,4462,4463,5,2446,0,0,4463,245,1,0,0,0,4464,4469, +3,248,124,0,4465,4466,5,2451,0,0,4466,4468,3,248,124,0,4467,4465,1,0,0,0, +4468,4471,1,0,0,0,4469,4467,1,0,0,0,4469,4470,1,0,0,0,4470,247,1,0,0,0,4471, +4469,1,0,0,0,4472,4475,7,9,0,0,4473,4476,3,306,153,0,4474,4476,3,294,147, +0,4475,4473,1,0,0,0,4475,4474,1,0,0,0,4476,249,1,0,0,0,4477,4483,5,978,0, +0,4478,4479,5,856,0,0,4479,4484,3,2070,1035,0,4480,4481,5,484,0,0,4481,4482, +5,2164,0,0,4482,4484,3,2362,1181,0,4483,4478,1,0,0,0,4483,4480,1,0,0,0,4484, +251,1,0,0,0,4485,4502,5,778,0,0,4486,4496,5,179,0,0,4487,4488,5,298,0,0, +4488,4489,5,2139,0,0,4489,4497,5,1778,0,0,4490,4492,5,1202,0,0,4491,4490, +1,0,0,0,4491,4492,1,0,0,0,4492,4493,1,0,0,0,4493,4494,5,703,0,0,4494,4495, +5,2081,0,0,4495,4497,5,349,0,0,4496,4487,1,0,0,0,4496,4491,1,0,0,0,4496, +4497,1,0,0,0,4497,4499,1,0,0,0,4498,4500,3,254,127,0,4499,4498,1,0,0,0,4499, +4500,1,0,0,0,4500,4502,1,0,0,0,4501,4485,1,0,0,0,4501,4486,1,0,0,0,4502, +253,1,0,0,0,4503,4505,5,614,0,0,4504,4503,1,0,0,0,4504,4505,1,0,0,0,4505, +4506,1,0,0,0,4506,4507,5,535,0,0,4507,4508,5,777,0,0,4508,4509,3,2330,1165, +0,4509,255,1,0,0,0,4510,4513,5,319,0,0,4511,4512,5,1305,0,0,4512,4514,5, +1560,0,0,4513,4511,1,0,0,0,4513,4514,1,0,0,0,4514,4516,1,0,0,0,4515,4517, +7,20,0,0,4516,4515,1,0,0,0,4516,4517,1,0,0,0,4517,4518,1,0,0,0,4518,4521, +5,2164,0,0,4519,4522,3,258,129,0,4520,4522,3,270,135,0,4521,4519,1,0,0,0, +4521,4520,1,0,0,0,4522,257,1,0,0,0,4523,4526,3,2302,1151,0,4524,4525,5,1246, +0,0,4525,4527,5,2441,0,0,4526,4524,1,0,0,0,4526,4527,1,0,0,0,4527,4529,1, +0,0,0,4528,4530,5,614,0,0,4529,4528,1,0,0,0,4529,4530,1,0,0,0,4530,4532, +1,0,0,0,4531,4533,3,260,130,0,4532,4531,1,0,0,0,4532,4533,1,0,0,0,4533,259, +1,0,0,0,4534,4536,3,1712,856,0,4535,4534,1,0,0,0,4535,4536,1,0,0,0,4536, +4539,1,0,0,0,4537,4540,3,262,131,0,4538,4540,3,264,132,0,4539,4537,1,0,0, +0,4539,4538,1,0,0,0,4540,4542,1,0,0,0,4541,4543,3,268,134,0,4542,4541,1, +0,0,0,4542,4543,1,0,0,0,4543,4555,1,0,0,0,4544,4545,5,2445,0,0,4545,4550, +3,286,143,0,4546,4547,5,2451,0,0,4547,4549,3,286,143,0,4548,4546,1,0,0,0, +4549,4552,1,0,0,0,4550,4548,1,0,0,0,4550,4551,1,0,0,0,4551,4553,1,0,0,0, +4552,4550,1,0,0,0,4553,4554,5,2446,0,0,4554,4556,1,0,0,0,4555,4544,1,0,0, +0,4555,4556,1,0,0,0,4556,4560,1,0,0,0,4557,4559,3,284,142,0,4558,4557,1, +0,0,0,4559,4562,1,0,0,0,4560,4558,1,0,0,0,4560,4561,1,0,0,0,4561,261,1,0, +0,0,4562,4560,1,0,0,0,4563,4567,7,22,0,0,4564,4568,5,1236,0,0,4565,4568, +3,1760,880,0,4566,4568,3,266,133,0,4567,4564,1,0,0,0,4567,4565,1,0,0,0,4567, +4566,1,0,0,0,4568,263,1,0,0,0,4569,4570,5,2175,0,0,4570,4571,3,2362,1181, +0,4571,265,1,0,0,0,4572,4573,5,2081,0,0,4573,4574,5,1244,0,0,4574,4577,3, +2362,1181,0,4575,4576,5,1202,0,0,4576,4578,5,1226,0,0,4577,4575,1,0,0,0, +4577,4578,1,0,0,0,4578,267,1,0,0,0,4579,4580,5,558,0,0,4580,4581,5,995,0, +0,4581,4582,3,2070,1035,0,4582,4583,5,821,0,0,4583,4584,5,790,0,0,4584,4585, +5,2244,0,0,4585,4586,7,40,0,0,4586,269,1,0,0,0,4587,4588,5,147,0,0,4588, +4589,3,2302,1151,0,4589,4591,7,22,0,0,4590,4592,3,272,136,0,4591,4590,1, +0,0,0,4592,4593,1,0,0,0,4593,4591,1,0,0,0,4593,4594,1,0,0,0,4594,4595,1, +0,0,0,4595,4596,5,506,0,0,4596,271,1,0,0,0,4597,4601,3,274,137,0,4598,4601, +3,276,138,0,4599,4601,3,296,148,0,4600,4597,1,0,0,0,4600,4598,1,0,0,0,4600, +4599,1,0,0,0,4601,273,1,0,0,0,4602,4603,7,41,0,0,4603,4604,5,934,0,0,4604, +4605,3,280,140,0,4605,275,1,0,0,0,4606,4610,7,42,0,0,4607,4611,3,278,139, +0,4608,4611,3,280,140,0,4609,4611,3,282,141,0,4610,4607,1,0,0,0,4610,4608, +1,0,0,0,4610,4609,1,0,0,0,4611,277,1,0,0,0,4612,4613,5,1459,0,0,4613,4614, +3,2310,1155,0,4614,4615,5,2445,0,0,4615,4620,3,312,156,0,4616,4617,5,2451, +0,0,4617,4619,3,312,156,0,4618,4616,1,0,0,0,4619,4622,1,0,0,0,4620,4618, +1,0,0,0,4620,4621,1,0,0,0,4621,4623,1,0,0,0,4622,4620,1,0,0,0,4623,4624, +5,2446,0,0,4624,4635,7,22,0,0,4625,4636,3,1714,857,0,4626,4628,5,380,0,0, +4627,4626,1,0,0,0,4627,4628,1,0,0,0,4628,4630,1,0,0,0,4629,4631,3,1732,866, +0,4630,4629,1,0,0,0,4630,4631,1,0,0,0,4631,4632,1,0,0,0,4632,4633,3,1812, +906,0,4633,4634,5,2467,0,0,4634,4636,1,0,0,0,4635,4625,1,0,0,0,4635,4627, +1,0,0,0,4636,279,1,0,0,0,4637,4638,5,630,0,0,4638,4650,3,2308,1154,0,4639, +4640,5,2445,0,0,4640,4645,3,312,156,0,4641,4642,5,2451,0,0,4642,4644,3,312, +156,0,4643,4641,1,0,0,0,4644,4647,1,0,0,0,4645,4643,1,0,0,0,4645,4646,1, +0,0,0,4646,4648,1,0,0,0,4647,4645,1,0,0,0,4648,4649,5,2446,0,0,4649,4651, +1,0,0,0,4650,4639,1,0,0,0,4650,4651,1,0,0,0,4651,4652,1,0,0,0,4652,4653, +5,1584,0,0,4653,4654,3,2362,1181,0,4654,4665,7,22,0,0,4655,4666,3,1714,857, +0,4656,4658,5,380,0,0,4657,4656,1,0,0,0,4657,4658,1,0,0,0,4658,4660,1,0, +0,0,4659,4661,3,1732,866,0,4660,4659,1,0,0,0,4660,4661,1,0,0,0,4661,4662, +1,0,0,0,4662,4663,3,1812,906,0,4663,4664,5,2467,0,0,4664,4666,1,0,0,0,4665, +4655,1,0,0,0,4665,4657,1,0,0,0,4666,281,1,0,0,0,4667,4669,5,593,0,0,4668, +4667,1,0,0,0,4668,4669,1,0,0,0,4669,4671,1,0,0,0,4670,4672,5,759,0,0,4671, +4670,1,0,0,0,4671,4672,1,0,0,0,4672,4673,1,0,0,0,4673,4674,5,286,0,0,4674, +4675,5,630,0,0,4675,4693,3,2362,1181,0,4676,4677,5,2445,0,0,4677,4678,5, +1646,0,0,4678,4679,5,736,0,0,4679,4680,5,1316,0,0,4680,4681,3,2362,1181, +0,4681,4682,5,2451,0,0,4682,4683,1,0,0,0,4683,4688,3,312,156,0,4684,4685, +5,2451,0,0,4685,4687,3,312,156,0,4686,4684,1,0,0,0,4687,4690,1,0,0,0,4688, +4686,1,0,0,0,4688,4689,1,0,0,0,4689,4691,1,0,0,0,4690,4688,1,0,0,0,4691, +4692,5,2446,0,0,4692,4694,1,0,0,0,4693,4676,1,0,0,0,4693,4694,1,0,0,0,4694, +4695,1,0,0,0,4695,4696,5,1584,0,0,4696,4697,5,1646,0,0,4697,4698,5,69,0, +0,4698,4699,5,1578,0,0,4699,4710,7,22,0,0,4700,4711,3,1714,857,0,4701,4703, +5,380,0,0,4702,4701,1,0,0,0,4702,4703,1,0,0,0,4703,4705,1,0,0,0,4704,4706, +3,1732,866,0,4705,4704,1,0,0,0,4705,4706,1,0,0,0,4706,4707,1,0,0,0,4707, +4708,3,1812,906,0,4708,4709,5,2467,0,0,4709,4711,1,0,0,0,4710,4700,1,0,0, +0,4710,4702,1,0,0,0,4711,283,1,0,0,0,4712,4714,5,1202,0,0,4713,4712,1,0, +0,0,4713,4714,1,0,0,0,4714,4715,1,0,0,0,4715,4716,7,43,0,0,4716,285,1,0, +0,0,4717,4718,3,2390,1195,0,4718,4720,3,2362,1181,0,4719,4721,3,288,144, +0,4720,4719,1,0,0,0,4720,4721,1,0,0,0,4721,4724,1,0,0,0,4722,4724,3,290, +145,0,4723,4717,1,0,0,0,4723,4722,1,0,0,0,4724,287,1,0,0,0,4725,4726,5,558, +0,0,4726,4727,5,995,0,0,4727,4728,3,2070,1035,0,4728,289,1,0,0,0,4729,4731, +3,284,142,0,4730,4729,1,0,0,0,4730,4731,1,0,0,0,4731,4733,1,0,0,0,4732,4734, +3,292,146,0,4733,4732,1,0,0,0,4734,4735,1,0,0,0,4735,4733,1,0,0,0,4735,4736, +1,0,0,0,4736,4739,1,0,0,0,4737,4738,5,2451,0,0,4738,4740,3,308,154,0,4739, +4737,1,0,0,0,4739,4740,1,0,0,0,4740,291,1,0,0,0,4741,4745,3,294,147,0,4742, +4745,3,304,152,0,4743,4745,3,306,153,0,4744,4741,1,0,0,0,4744,4742,1,0,0, +0,4744,4743,1,0,0,0,4745,293,1,0,0,0,4746,4749,7,42,0,0,4747,4750,3,300, +150,0,4748,4750,3,302,151,0,4749,4747,1,0,0,0,4749,4748,1,0,0,0,4750,295, +1,0,0,0,4751,4752,5,1322,0,0,4752,4753,5,934,0,0,4753,4754,3,298,149,0,4754, +297,1,0,0,0,4755,4756,5,630,0,0,4756,4768,3,2308,1154,0,4757,4758,5,2445, +0,0,4758,4763,3,312,156,0,4759,4760,5,2451,0,0,4760,4762,3,312,156,0,4761, +4759,1,0,0,0,4762,4765,1,0,0,0,4763,4761,1,0,0,0,4763,4764,1,0,0,0,4764, +4766,1,0,0,0,4765,4763,1,0,0,0,4766,4767,5,2446,0,0,4767,4769,1,0,0,0,4768, +4757,1,0,0,0,4768,4769,1,0,0,0,4769,4770,1,0,0,0,4770,4775,5,1584,0,0,4771, +4776,3,2362,1181,0,4772,4773,5,1646,0,0,4773,4774,5,69,0,0,4774,4776,5,1578, +0,0,4775,4771,1,0,0,0,4775,4772,1,0,0,0,4776,4788,1,0,0,0,4777,4779,5,1392, +0,0,4778,4777,1,0,0,0,4778,4779,1,0,0,0,4779,4780,1,0,0,0,4780,4782,7,22, +0,0,4781,4783,5,380,0,0,4782,4781,1,0,0,0,4782,4783,1,0,0,0,4783,4785,1, +0,0,0,4784,4786,3,1732,866,0,4785,4784,1,0,0,0,4785,4786,1,0,0,0,4786,4787, +1,0,0,0,4787,4789,3,1812,906,0,4788,4778,1,0,0,0,4788,4789,1,0,0,0,4789, +4791,1,0,0,0,4790,4792,5,2467,0,0,4791,4790,1,0,0,0,4791,4792,1,0,0,0,4792, +299,1,0,0,0,4793,4794,5,1459,0,0,4794,4795,3,2310,1155,0,4795,4796,5,2445, +0,0,4796,4801,3,312,156,0,4797,4798,5,2451,0,0,4798,4800,3,312,156,0,4799, +4797,1,0,0,0,4800,4803,1,0,0,0,4801,4799,1,0,0,0,4801,4802,1,0,0,0,4802, +4804,1,0,0,0,4803,4801,1,0,0,0,4804,4807,5,2446,0,0,4805,4806,7,22,0,0,4806, +4808,3,1714,857,0,4807,4805,1,0,0,0,4807,4808,1,0,0,0,4808,301,1,0,0,0,4809, +4810,5,630,0,0,4810,4822,3,2308,1154,0,4811,4812,5,2445,0,0,4812,4817,3, +312,156,0,4813,4814,5,2451,0,0,4814,4816,3,312,156,0,4815,4813,1,0,0,0,4816, +4819,1,0,0,0,4817,4815,1,0,0,0,4817,4818,1,0,0,0,4818,4820,1,0,0,0,4819, +4817,1,0,0,0,4820,4821,5,2446,0,0,4821,4823,1,0,0,0,4822,4811,1,0,0,0,4822, +4823,1,0,0,0,4823,4824,1,0,0,0,4824,4829,5,1584,0,0,4825,4830,3,2362,1181, +0,4826,4827,5,1646,0,0,4827,4828,5,69,0,0,4828,4830,5,1578,0,0,4829,4825, +1,0,0,0,4829,4826,1,0,0,0,4830,4839,1,0,0,0,4831,4832,7,22,0,0,4832,4840, +3,1714,857,0,4833,4835,5,558,0,0,4834,4836,5,2260,0,0,4835,4834,1,0,0,0, +4835,4836,1,0,0,0,4836,4837,1,0,0,0,4837,4838,5,995,0,0,4838,4840,3,2070, +1035,0,4839,4831,1,0,0,0,4839,4833,1,0,0,0,4839,4840,1,0,0,0,4840,303,1, +0,0,0,4841,4843,5,593,0,0,4842,4841,1,0,0,0,4842,4843,1,0,0,0,4843,4845, +1,0,0,0,4844,4846,5,759,0,0,4845,4844,1,0,0,0,4845,4846,1,0,0,0,4846,4847, +1,0,0,0,4847,4848,5,286,0,0,4848,4849,5,630,0,0,4849,4867,3,2362,1181,0, +4850,4851,5,2445,0,0,4851,4852,5,1646,0,0,4852,4853,5,736,0,0,4853,4854, +5,1316,0,0,4854,4855,3,2362,1181,0,4855,4856,5,2451,0,0,4856,4857,1,0,0, +0,4857,4862,3,312,156,0,4858,4859,5,2451,0,0,4859,4861,3,312,156,0,4860, +4858,1,0,0,0,4861,4864,1,0,0,0,4862,4860,1,0,0,0,4862,4863,1,0,0,0,4863, +4865,1,0,0,0,4864,4862,1,0,0,0,4865,4866,5,2446,0,0,4866,4868,1,0,0,0,4867, +4850,1,0,0,0,4867,4868,1,0,0,0,4868,4869,1,0,0,0,4869,4870,5,1584,0,0,4870, +4871,5,1646,0,0,4871,4872,5,69,0,0,4872,4875,5,1578,0,0,4873,4874,7,22,0, +0,4874,4876,3,1714,857,0,4875,4873,1,0,0,0,4875,4876,1,0,0,0,4876,305,1, +0,0,0,4877,4878,7,41,0,0,4878,4879,5,934,0,0,4879,4880,3,302,151,0,4880, +307,1,0,0,0,4881,4882,5,1431,0,0,4882,4883,5,1575,0,0,4883,4884,5,2445,0, +0,4884,4889,3,310,155,0,4885,4886,5,2451,0,0,4886,4888,3,310,155,0,4887, +4885,1,0,0,0,4888,4891,1,0,0,0,4889,4887,1,0,0,0,4889,4890,1,0,0,0,4890, +4892,1,0,0,0,4891,4889,1,0,0,0,4892,4893,5,2446,0,0,4893,309,1,0,0,0,4894, +4897,3,2390,1195,0,4895,4897,5,387,0,0,4896,4894,1,0,0,0,4896,4895,1,0,0, +0,4897,311,1,0,0,0,4898,4899,3,2282,1141,0,4899,4900,3,2362,1181,0,4900, +313,1,0,0,0,4901,4902,5,467,0,0,4902,4903,5,1651,0,0,4903,4904,3,2304,1152, +0,4904,315,1,0,0,0,4905,4906,5,42,0,0,4906,4907,5,1651,0,0,4907,4909,3,2304, +1152,0,4908,4910,3,324,162,0,4909,4908,1,0,0,0,4910,4911,1,0,0,0,4911,4909, +1,0,0,0,4911,4912,1,0,0,0,4912,317,1,0,0,0,4913,4914,5,42,0,0,4914,4944, +5,1665,0,0,4915,4916,5,30,0,0,4916,4945,7,44,0,0,4917,4918,5,218,0,0,4918, +4919,5,348,0,0,4919,4920,5,859,0,0,4920,4945,3,2282,1141,0,4921,4922,3,1302, +651,0,4922,4923,5,242,0,0,4923,4924,5,736,0,0,4924,4925,5,1459,0,0,4925, +4945,1,0,0,0,4926,4927,3,1302,651,0,4927,4928,5,654,0,0,4928,4945,1,0,0, +0,4929,4932,3,1302,651,0,4930,4932,5,614,0,0,4931,4929,1,0,0,0,4931,4930, +1,0,0,0,4932,4933,1,0,0,0,4933,4934,5,1331,0,0,4934,4940,7,45,0,0,4935,4938, +5,1331,0,0,4936,4939,3,2176,1088,0,4937,4939,3,2282,1141,0,4938,4936,1,0, +0,0,4938,4937,1,0,0,0,4939,4941,1,0,0,0,4940,4935,1,0,0,0,4940,4941,1,0, +0,0,4941,4945,1,0,0,0,4942,4943,5,1669,0,0,4943,4945,3,320,160,0,4944,4915, +1,0,0,0,4944,4917,1,0,0,0,4944,4921,1,0,0,0,4944,4926,1,0,0,0,4944,4931, +1,0,0,0,4944,4942,1,0,0,0,4945,319,1,0,0,0,4946,4947,3,2282,1141,0,4947, +4948,5,2469,0,0,4948,4949,3,812,406,0,4949,4951,1,0,0,0,4950,4946,1,0,0, +0,4951,4952,1,0,0,0,4952,4950,1,0,0,0,4952,4953,1,0,0,0,4953,4977,1,0,0, +0,4954,4955,5,481,0,0,4955,4956,5,2469,0,0,4956,4977,3,2392,1196,0,4957, +4958,5,287,0,0,4958,4959,5,2469,0,0,4959,4963,3,2392,1196,0,4960,4961,5, +1662,0,0,4961,4962,5,2469,0,0,4962,4964,3,2392,1196,0,4963,4960,1,0,0,0, +4963,4964,1,0,0,0,4964,4977,1,0,0,0,4965,4966,5,1604,0,0,4966,4967,5,63, +0,0,4967,4968,5,2287,0,0,4968,4969,5,2469,0,0,4969,4977,7,46,0,0,4970,4971, +5,390,0,0,4971,4974,5,2469,0,0,4972,4975,3,2392,1196,0,4973,4975,5,1131, +0,0,4974,4972,1,0,0,0,4974,4973,1,0,0,0,4975,4977,1,0,0,0,4976,4950,1,0, +0,0,4976,4954,1,0,0,0,4976,4957,1,0,0,0,4976,4965,1,0,0,0,4976,4970,1,0, +0,0,4977,321,1,0,0,0,4978,4979,5,319,0,0,4979,4983,5,1651,0,0,4980,4981, +5,689,0,0,4981,4982,5,1202,0,0,4982,4984,5,543,0,0,4983,4980,1,0,0,0,4983, +4984,1,0,0,0,4984,4985,1,0,0,0,4985,4989,3,2304,1152,0,4986,4988,3,324,162, +0,4987,4986,1,0,0,0,4988,4991,1,0,0,0,4989,4987,1,0,0,0,4989,4990,1,0,0, +0,4990,4995,1,0,0,0,4991,4989,1,0,0,0,4992,4993,5,1679,0,0,4993,4994,5,2469, +0,0,4994,4996,7,47,0,0,4995,4992,1,0,0,0,4995,4996,1,0,0,0,4996,323,1,0, +0,0,4997,4998,5,705,0,0,4998,4999,5,160,0,0,4999,5029,5,2439,0,0,5000,5029, +3,326,163,0,5001,5002,5,930,0,0,5002,5029,5,2439,0,0,5003,5029,5,1119,0, +0,5004,5005,5,958,0,0,5005,5029,5,2439,0,0,5006,5029,5,1122,0,0,5007,5029, +5,346,0,0,5008,5029,5,1082,0,0,5009,5010,5,166,0,0,5010,5029,5,2439,0,0, +5011,5029,5,1064,0,0,5012,5029,5,1301,0,0,5013,5029,5,1138,0,0,5014,5029, +5,812,0,0,5015,5029,5,1112,0,0,5016,5018,5,1618,0,0,5017,5019,7,48,0,0,5018, +5017,1,0,0,0,5018,5019,1,0,0,0,5019,5029,1,0,0,0,5020,5029,5,1179,0,0,5021, +5023,5,1674,0,0,5022,5024,7,48,0,0,5023,5022,1,0,0,0,5023,5024,1,0,0,0,5024, +5029,1,0,0,0,5025,5029,5,1185,0,0,5026,5029,5,1665,0,0,5027,5029,5,640,0, +0,5028,4997,1,0,0,0,5028,5000,1,0,0,0,5028,5001,1,0,0,0,5028,5003,1,0,0, +0,5028,5004,1,0,0,0,5028,5006,1,0,0,0,5028,5007,1,0,0,0,5028,5008,1,0,0, +0,5028,5009,1,0,0,0,5028,5011,1,0,0,0,5028,5012,1,0,0,0,5028,5013,1,0,0, +0,5028,5014,1,0,0,0,5028,5015,1,0,0,0,5028,5016,1,0,0,0,5028,5020,1,0,0, +0,5028,5021,1,0,0,0,5028,5025,1,0,0,0,5028,5026,1,0,0,0,5028,5027,1,0,0, +0,5029,325,1,0,0,0,5030,5031,5,1735,0,0,5031,5032,5,2306,0,0,5032,5033,5, +2439,0,0,5033,327,1,0,0,0,5034,5037,5,319,0,0,5035,5036,5,1305,0,0,5036, +5038,5,1560,0,0,5037,5035,1,0,0,0,5037,5038,1,0,0,0,5038,5040,1,0,0,0,5039, +5041,7,7,0,0,5040,5039,1,0,0,0,5040,5041,1,0,0,0,5041,5042,1,0,0,0,5042, +5043,5,45,0,0,5043,5044,5,2284,0,0,5044,5048,3,2392,1196,0,5045,5046,5,1679, +0,0,5046,5047,5,2469,0,0,5047,5049,7,21,0,0,5048,5045,1,0,0,0,5048,5049, +1,0,0,0,5049,5053,1,0,0,0,5050,5052,3,330,165,0,5051,5050,1,0,0,0,5052,5055, +1,0,0,0,5053,5051,1,0,0,0,5053,5054,1,0,0,0,5054,5057,1,0,0,0,5055,5053, +1,0,0,0,5056,5058,3,340,170,0,5057,5056,1,0,0,0,5057,5058,1,0,0,0,5058,5060, +1,0,0,0,5059,5061,3,342,171,0,5060,5059,1,0,0,0,5060,5061,1,0,0,0,5061,5063, +1,0,0,0,5062,5064,3,350,175,0,5063,5062,1,0,0,0,5063,5064,1,0,0,0,5064,5066, +1,0,0,0,5065,5067,3,360,180,0,5066,5065,1,0,0,0,5066,5067,1,0,0,0,5067,5069, +1,0,0,0,5068,5070,3,362,181,0,5069,5068,1,0,0,0,5069,5070,1,0,0,0,5070,5072, +1,0,0,0,5071,5073,3,364,182,0,5072,5071,1,0,0,0,5072,5073,1,0,0,0,5073,5075, +1,0,0,0,5074,5076,3,374,187,0,5075,5074,1,0,0,0,5075,5076,1,0,0,0,5076,5078, +1,0,0,0,5077,5079,3,376,188,0,5078,5077,1,0,0,0,5078,5079,1,0,0,0,5079,329, +1,0,0,0,5080,5082,3,332,166,0,5081,5083,3,334,167,0,5082,5081,1,0,0,0,5082, +5083,1,0,0,0,5083,5089,1,0,0,0,5084,5086,3,332,166,0,5085,5084,1,0,0,0,5085, +5086,1,0,0,0,5086,5087,1,0,0,0,5087,5089,3,334,167,0,5088,5080,1,0,0,0,5088, +5085,1,0,0,0,5089,5093,1,0,0,0,5090,5092,3,336,168,0,5091,5090,1,0,0,0,5092, +5095,1,0,0,0,5093,5091,1,0,0,0,5093,5094,1,0,0,0,5094,5108,1,0,0,0,5095, +5093,1,0,0,0,5096,5098,3,332,166,0,5097,5096,1,0,0,0,5097,5098,1,0,0,0,5098, +5100,1,0,0,0,5099,5101,3,334,167,0,5100,5099,1,0,0,0,5100,5101,1,0,0,0,5101, +5103,1,0,0,0,5102,5104,3,336,168,0,5103,5102,1,0,0,0,5104,5105,1,0,0,0,5105, +5103,1,0,0,0,5105,5106,1,0,0,0,5106,5108,1,0,0,0,5107,5088,1,0,0,0,5107, +5097,1,0,0,0,5108,331,1,0,0,0,5109,5110,5,177,0,0,5110,5111,3,2388,1194, +0,5111,333,1,0,0,0,5112,5113,5,413,0,0,5113,5114,3,2388,1194,0,5114,335, +1,0,0,0,5115,5116,5,207,0,0,5116,5119,3,2392,1196,0,5117,5118,5,2256,0,0, +5118,5120,3,2388,1194,0,5119,5117,1,0,0,0,5119,5120,1,0,0,0,5120,5123,1, +0,0,0,5121,5122,5,821,0,0,5122,5124,3,338,169,0,5123,5121,1,0,0,0,5123,5124, +1,0,0,0,5124,337,1,0,0,0,5125,5128,5,1226,0,0,5126,5128,3,2392,1196,0,5127, +5125,1,0,0,0,5127,5126,1,0,0,0,5128,339,1,0,0,0,5129,5133,5,2244,0,0,5130, +5131,3,2274,1137,0,5131,5132,5,2438,0,0,5132,5134,1,0,0,0,5133,5130,1,0, +0,0,5133,5134,1,0,0,0,5134,5135,1,0,0,0,5135,5137,3,2392,1196,0,5136,5138, +5,1554,0,0,5137,5136,1,0,0,0,5137,5138,1,0,0,0,5138,5143,1,0,0,0,5139,5141, +5,69,0,0,5140,5139,1,0,0,0,5140,5141,1,0,0,0,5141,5142,1,0,0,0,5142,5144, +3,2392,1196,0,5143,5140,1,0,0,0,5143,5144,1,0,0,0,5144,341,1,0,0,0,5145, +5146,5,420,0,0,5146,5147,5,160,0,0,5147,5148,5,2445,0,0,5148,5153,3,344, +172,0,5149,5150,5,2451,0,0,5150,5152,3,344,172,0,5151,5149,1,0,0,0,5152, +5155,1,0,0,0,5153,5151,1,0,0,0,5153,5154,1,0,0,0,5154,5156,1,0,0,0,5155, +5153,1,0,0,0,5156,5157,5,2446,0,0,5157,343,1,0,0,0,5158,5162,3,346,173,0, +5159,5161,3,330,165,0,5160,5159,1,0,0,0,5161,5164,1,0,0,0,5162,5160,1,0, +0,0,5162,5163,1,0,0,0,5163,5165,1,0,0,0,5164,5162,1,0,0,0,5165,5193,5,814, +0,0,5166,5170,5,2445,0,0,5167,5168,3,2392,1196,0,5168,5169,5,2438,0,0,5169, +5171,1,0,0,0,5170,5167,1,0,0,0,5170,5171,1,0,0,0,5171,5172,1,0,0,0,5172, +5182,3,2328,1164,0,5173,5177,5,2451,0,0,5174,5175,3,2392,1196,0,5175,5176, +5,2438,0,0,5176,5178,1,0,0,0,5177,5174,1,0,0,0,5177,5178,1,0,0,0,5178,5179, +1,0,0,0,5179,5181,3,2328,1164,0,5180,5173,1,0,0,0,5181,5184,1,0,0,0,5182, +5180,1,0,0,0,5182,5183,1,0,0,0,5183,5185,1,0,0,0,5184,5182,1,0,0,0,5185, +5186,5,2446,0,0,5186,5194,1,0,0,0,5187,5188,3,2392,1196,0,5188,5189,5,2438, +0,0,5189,5191,1,0,0,0,5190,5187,1,0,0,0,5190,5191,1,0,0,0,5191,5192,1,0, +0,0,5192,5194,3,2328,1164,0,5193,5166,1,0,0,0,5193,5190,1,0,0,0,5194,5195, +1,0,0,0,5195,5197,5,1526,0,0,5196,5198,5,443,0,0,5197,5196,1,0,0,0,5197, +5198,1,0,0,0,5198,5207,1,0,0,0,5199,5200,5,2445,0,0,5200,5201,3,2268,1134, +0,5201,5202,5,2451,0,0,5202,5203,3,2268,1134,0,5203,5204,1,0,0,0,5204,5205, +5,2446,0,0,5205,5208,1,0,0,0,5206,5208,3,2268,1134,0,5207,5199,1,0,0,0,5207, +5206,1,0,0,0,5208,5209,1,0,0,0,5209,5210,5,671,0,0,5210,5211,5,2445,0,0, +5211,5216,3,348,174,0,5212,5213,5,2451,0,0,5213,5215,3,348,174,0,5214,5212, +1,0,0,0,5215,5218,1,0,0,0,5216,5214,1,0,0,0,5216,5217,1,0,0,0,5217,5219, +1,0,0,0,5218,5216,1,0,0,0,5219,5220,5,2446,0,0,5220,345,1,0,0,0,5221,5222, +3,2274,1137,0,5222,5223,5,2438,0,0,5223,5225,1,0,0,0,5224,5221,1,0,0,0,5224, +5225,1,0,0,0,5225,5226,1,0,0,0,5226,5231,3,2392,1196,0,5227,5229,5,69,0, +0,5228,5227,1,0,0,0,5228,5229,1,0,0,0,5229,5230,1,0,0,0,5230,5232,3,2392, +1196,0,5231,5228,1,0,0,0,5231,5232,1,0,0,0,5232,347,1,0,0,0,5233,5234,3, +2274,1137,0,5234,5235,5,2438,0,0,5235,5237,1,0,0,0,5236,5233,1,0,0,0,5236, +5237,1,0,0,0,5237,5238,1,0,0,0,5238,5243,3,2392,1196,0,5239,5241,5,69,0, +0,5240,5239,1,0,0,0,5240,5241,1,0,0,0,5241,5242,1,0,0,0,5242,5244,3,2392, +1196,0,5243,5240,1,0,0,0,5243,5244,1,0,0,0,5244,5246,1,0,0,0,5245,5247,5, +387,0,0,5246,5245,1,0,0,0,5246,5247,1,0,0,0,5247,349,1,0,0,0,5248,5249,5, +932,0,0,5249,5250,5,2445,0,0,5250,5255,3,352,176,0,5251,5252,5,2451,0,0, +5252,5254,3,352,176,0,5253,5251,1,0,0,0,5254,5257,1,0,0,0,5255,5253,1,0, +0,0,5255,5256,1,0,0,0,5256,5258,1,0,0,0,5257,5255,1,0,0,0,5258,5259,5,2446, +0,0,5259,351,1,0,0,0,5260,5263,3,2392,1196,0,5261,5264,3,354,177,0,5262, +5264,3,358,179,0,5263,5261,1,0,0,0,5263,5262,1,0,0,0,5263,5264,1,0,0,0,5264, +353,1,0,0,0,5265,5266,5,565,0,0,5266,5268,3,2392,1196,0,5267,5269,3,356, +178,0,5268,5267,1,0,0,0,5268,5269,1,0,0,0,5269,355,1,0,0,0,5270,5271,5,35, +0,0,5271,5272,5,160,0,0,5272,5273,3,2290,1145,0,5273,357,1,0,0,0,5274,5275, +5,69,0,0,5275,5276,5,2445,0,0,5276,5277,3,2070,1035,0,5277,5278,5,2446,0, +0,5278,359,1,0,0,0,5279,5280,5,387,0,0,5280,5281,5,931,0,0,5281,5282,3,2392, +1196,0,5282,361,1,0,0,0,5283,5284,5,387,0,0,5284,5285,5,35,0,0,5285,5286, +5,160,0,0,5286,5287,3,2290,1145,0,5287,363,1,0,0,0,5288,5289,5,166,0,0,5289, +5294,3,366,183,0,5290,5291,5,2451,0,0,5291,5293,3,366,183,0,5292,5290,1, +0,0,0,5293,5296,1,0,0,0,5294,5292,1,0,0,0,5294,5295,1,0,0,0,5295,365,1,0, +0,0,5296,5294,1,0,0,0,5297,5298,5,931,0,0,5298,5318,5,647,0,0,5299,5319, +5,38,0,0,5300,5301,5,2445,0,0,5301,5306,3,2392,1196,0,5302,5303,5,2451,0, +0,5303,5305,3,2392,1196,0,5304,5302,1,0,0,0,5305,5308,1,0,0,0,5306,5304, +1,0,0,0,5306,5307,1,0,0,0,5307,5309,1,0,0,0,5308,5306,1,0,0,0,5309,5310, +5,2446,0,0,5310,5315,3,368,184,0,5311,5312,5,2451,0,0,5312,5314,3,368,184, +0,5313,5311,1,0,0,0,5314,5317,1,0,0,0,5315,5313,1,0,0,0,5315,5316,1,0,0, +0,5316,5319,1,0,0,0,5317,5315,1,0,0,0,5318,5299,1,0,0,0,5318,5300,1,0,0, +0,5319,367,1,0,0,0,5320,5321,5,846,0,0,5321,5322,5,2445,0,0,5322,5327,3, +370,185,0,5323,5324,5,2451,0,0,5324,5326,3,370,185,0,5325,5323,1,0,0,0,5326, +5329,1,0,0,0,5327,5325,1,0,0,0,5327,5328,1,0,0,0,5328,5330,1,0,0,0,5329, +5327,1,0,0,0,5330,5331,5,2446,0,0,5331,5332,3,372,186,0,5332,369,1,0,0,0, +5333,5342,5,2445,0,0,5334,5335,3,2392,1196,0,5335,5336,5,2438,0,0,5336,5338, +1,0,0,0,5337,5334,1,0,0,0,5337,5338,1,0,0,0,5338,5339,1,0,0,0,5339,5340, +3,2392,1196,0,5340,5341,5,2438,0,0,5341,5343,1,0,0,0,5342,5337,1,0,0,0,5342, +5343,1,0,0,0,5343,5344,1,0,0,0,5344,5345,3,2392,1196,0,5345,5346,5,2446, +0,0,5346,371,1,0,0,0,5347,5359,5,475,0,0,5348,5356,5,917,0,0,5349,5353,5, +2244,0,0,5350,5351,3,2274,1137,0,5351,5352,5,2438,0,0,5352,5354,1,0,0,0, +5353,5350,1,0,0,0,5353,5354,1,0,0,0,5354,5355,1,0,0,0,5355,5357,3,2392,1196, +0,5356,5349,1,0,0,0,5356,5357,1,0,0,0,5357,5359,1,0,0,0,5358,5347,1,0,0, +0,5358,5348,1,0,0,0,5359,373,1,0,0,0,5360,5361,5,565,0,0,5361,5362,5,237, +0,0,5362,5377,3,2328,1164,0,5363,5365,5,69,0,0,5364,5363,1,0,0,0,5364,5365, +1,0,0,0,5365,5366,1,0,0,0,5366,5374,3,2392,1196,0,5367,5369,5,2451,0,0,5368, +5370,5,69,0,0,5369,5368,1,0,0,0,5369,5370,1,0,0,0,5370,5371,1,0,0,0,5371, +5373,3,2392,1196,0,5372,5367,1,0,0,0,5373,5376,1,0,0,0,5374,5372,1,0,0,0, +5374,5375,1,0,0,0,5375,5378,1,0,0,0,5376,5374,1,0,0,0,5377,5364,1,0,0,0, +5377,5378,1,0,0,0,5378,375,1,0,0,0,5379,5380,5,497,0,0,5380,5381,5,1482, +0,0,5381,5383,5,2146,0,0,5382,5384,7,49,0,0,5383,5382,1,0,0,0,5383,5384, +1,0,0,0,5384,377,1,0,0,0,5385,5388,5,319,0,0,5386,5387,5,1305,0,0,5387,5389, +5,1560,0,0,5388,5386,1,0,0,0,5388,5389,1,0,0,0,5389,5391,1,0,0,0,5390,5392, +7,7,0,0,5391,5390,1,0,0,0,5391,5392,1,0,0,0,5392,5393,1,0,0,0,5393,5394, +5,83,0,0,5394,5398,5,420,0,0,5395,5396,3,2274,1137,0,5396,5397,5,2438,0, +0,5397,5399,1,0,0,0,5398,5395,1,0,0,0,5398,5399,1,0,0,0,5399,5400,1,0,0, +0,5400,5404,3,2392,1196,0,5401,5402,5,1679,0,0,5402,5403,5,2469,0,0,5403, +5405,7,21,0,0,5404,5401,1,0,0,0,5404,5405,1,0,0,0,5405,5409,1,0,0,0,5406, +5408,3,330,165,0,5407,5406,1,0,0,0,5408,5411,1,0,0,0,5409,5407,1,0,0,0,5409, +5410,1,0,0,0,5410,5415,1,0,0,0,5411,5409,1,0,0,0,5412,5413,5,420,0,0,5413, +5414,5,2164,0,0,5414,5416,7,50,0,0,5415,5412,1,0,0,0,5415,5416,1,0,0,0,5416, +5417,1,0,0,0,5417,5418,3,380,190,0,5418,5420,3,390,195,0,5419,5421,3,394, +197,0,5420,5419,1,0,0,0,5421,5422,1,0,0,0,5422,5420,1,0,0,0,5422,5423,1, +0,0,0,5423,5425,1,0,0,0,5424,5426,3,402,201,0,5425,5424,1,0,0,0,5425,5426, +1,0,0,0,5426,379,1,0,0,0,5427,5428,5,2244,0,0,5428,5433,3,382,191,0,5429, +5430,5,2451,0,0,5430,5432,3,382,191,0,5431,5429,1,0,0,0,5432,5435,1,0,0, +0,5433,5431,1,0,0,0,5433,5434,1,0,0,0,5434,5439,1,0,0,0,5435,5433,1,0,0, +0,5436,5438,3,384,192,0,5437,5436,1,0,0,0,5438,5441,1,0,0,0,5439,5437,1, +0,0,0,5439,5440,1,0,0,0,5440,381,1,0,0,0,5441,5439,1,0,0,0,5442,5443,3,2274, +1137,0,5443,5444,5,2438,0,0,5444,5446,1,0,0,0,5445,5442,1,0,0,0,5445,5446, +1,0,0,0,5446,5447,1,0,0,0,5447,5449,3,2392,1196,0,5448,5450,5,1554,0,0,5449, +5448,1,0,0,0,5449,5450,1,0,0,0,5450,5455,1,0,0,0,5451,5453,5,69,0,0,5452, +5451,1,0,0,0,5452,5453,1,0,0,0,5453,5454,1,0,0,0,5454,5456,3,2392,1196,0, +5455,5452,1,0,0,0,5455,5456,1,0,0,0,5456,383,1,0,0,0,5457,5458,5,792,0,0, +5458,5459,5,1361,0,0,5459,5460,3,2392,1196,0,5460,5461,5,1257,0,0,5461,5462, +3,386,193,0,5462,385,1,0,0,0,5463,5468,3,388,194,0,5464,5465,5,49,0,0,5465, +5467,3,388,194,0,5466,5464,1,0,0,0,5467,5470,1,0,0,0,5468,5466,1,0,0,0,5468, +5469,1,0,0,0,5469,387,1,0,0,0,5470,5468,1,0,0,0,5471,5472,3,2392,1196,0, +5472,5473,5,2438,0,0,5473,5475,1,0,0,0,5474,5471,1,0,0,0,5474,5475,1,0,0, +0,5475,5476,1,0,0,0,5476,5477,3,2328,1164,0,5477,5481,5,2469,0,0,5478,5479, +3,2392,1196,0,5479,5480,5,2438,0,0,5480,5482,1,0,0,0,5481,5478,1,0,0,0,5481, +5482,1,0,0,0,5482,5483,1,0,0,0,5483,5484,3,2328,1164,0,5484,389,1,0,0,0, +5485,5486,5,84,0,0,5486,5487,5,2445,0,0,5487,5492,3,392,196,0,5488,5489, +5,2451,0,0,5489,5491,3,392,196,0,5490,5488,1,0,0,0,5491,5494,1,0,0,0,5492, +5490,1,0,0,0,5492,5493,1,0,0,0,5493,5495,1,0,0,0,5494,5492,1,0,0,0,5495, +5496,5,2446,0,0,5496,391,1,0,0,0,5497,5498,3,2392,1196,0,5498,5499,5,2438, +0,0,5499,5501,1,0,0,0,5500,5497,1,0,0,0,5500,5501,1,0,0,0,5501,5502,1,0, +0,0,5502,5507,3,2328,1164,0,5503,5505,5,69,0,0,5504,5503,1,0,0,0,5504,5505, +1,0,0,0,5505,5506,1,0,0,0,5506,5508,3,2392,1196,0,5507,5504,1,0,0,0,5507, +5508,1,0,0,0,5508,5512,1,0,0,0,5509,5511,3,330,165,0,5510,5509,1,0,0,0,5511, +5514,1,0,0,0,5512,5510,1,0,0,0,5512,5513,1,0,0,0,5513,393,1,0,0,0,5514,5512, +1,0,0,0,5515,5516,5,844,0,0,5516,5522,3,2392,1196,0,5517,5518,5,1202,0,0, +5518,5523,5,1226,0,0,5519,5520,5,1700,0,0,5520,5521,5,2298,0,0,5521,5523, +5,1226,0,0,5522,5517,1,0,0,0,5522,5519,1,0,0,0,5522,5523,1,0,0,0,5523,5527, +1,0,0,0,5524,5525,5,844,0,0,5525,5526,5,2164,0,0,5526,5528,7,51,0,0,5527, +5524,1,0,0,0,5527,5528,1,0,0,0,5528,5532,1,0,0,0,5529,5531,3,330,165,0,5530, +5529,1,0,0,0,5531,5534,1,0,0,0,5532,5530,1,0,0,0,5532,5533,1,0,0,0,5533, +5535,1,0,0,0,5534,5532,1,0,0,0,5535,5537,3,396,198,0,5536,5538,3,398,199, +0,5537,5536,1,0,0,0,5537,5538,1,0,0,0,5538,5542,1,0,0,0,5539,5540,5,934, +0,0,5540,5541,5,995,0,0,5541,5543,3,2070,1035,0,5542,5539,1,0,0,0,5542,5543, +1,0,0,0,5543,5547,1,0,0,0,5544,5545,5,934,0,0,5545,5546,5,177,0,0,5546,5548, +3,2070,1035,0,5547,5544,1,0,0,0,5547,5548,1,0,0,0,5548,5552,1,0,0,0,5549, +5550,5,934,0,0,5550,5551,5,413,0,0,5551,5553,3,2070,1035,0,5552,5549,1,0, +0,0,5552,5553,1,0,0,0,5553,5570,1,0,0,0,5554,5555,5,1301,0,0,5555,5557,5, +160,0,0,5556,5558,7,52,0,0,5557,5556,1,0,0,0,5557,5558,1,0,0,0,5558,5559, +1,0,0,0,5559,5567,3,400,200,0,5560,5562,5,2451,0,0,5561,5563,7,52,0,0,5562, +5561,1,0,0,0,5562,5563,1,0,0,0,5563,5564,1,0,0,0,5564,5566,3,400,200,0,5565, +5560,1,0,0,0,5566,5569,1,0,0,0,5567,5565,1,0,0,0,5567,5568,1,0,0,0,5568, +5571,1,0,0,0,5569,5567,1,0,0,0,5570,5554,1,0,0,0,5570,5571,1,0,0,0,5571, +5584,1,0,0,0,5572,5573,5,417,0,0,5573,5574,5,2445,0,0,5574,5579,3,2392,1196, +0,5575,5576,5,2451,0,0,5576,5578,3,2392,1196,0,5577,5575,1,0,0,0,5578,5581, +1,0,0,0,5579,5577,1,0,0,0,5579,5580,1,0,0,0,5580,5582,1,0,0,0,5581,5579, +1,0,0,0,5582,5583,5,2446,0,0,5583,5585,1,0,0,0,5584,5572,1,0,0,0,5584,5585, +1,0,0,0,5585,395,1,0,0,0,5586,5599,5,814,0,0,5587,5600,3,2392,1196,0,5588, +5589,5,2445,0,0,5589,5594,3,2392,1196,0,5590,5591,5,2451,0,0,5591,5593,3, +2392,1196,0,5592,5590,1,0,0,0,5593,5596,1,0,0,0,5594,5592,1,0,0,0,5594,5595, +1,0,0,0,5595,5597,1,0,0,0,5596,5594,1,0,0,0,5597,5598,5,2446,0,0,5598,5600, +1,0,0,0,5599,5587,1,0,0,0,5599,5588,1,0,0,0,5600,397,1,0,0,0,5601,5602,5, +43,0,0,5602,5603,3,396,198,0,5603,399,1,0,0,0,5604,5606,3,2392,1196,0,5605, +5607,7,53,0,0,5606,5605,1,0,0,0,5606,5607,1,0,0,0,5607,5610,1,0,0,0,5608, +5609,5,1227,0,0,5609,5611,7,54,0,0,5610,5608,1,0,0,0,5610,5611,1,0,0,0,5611, +401,1,0,0,0,5612,5613,5,38,0,0,5613,5630,5,934,0,0,5614,5615,5,995,0,0,5615, +5619,3,2070,1035,0,5616,5617,5,934,0,0,5617,5618,5,177,0,0,5618,5620,3,2070, +1035,0,5619,5616,1,0,0,0,5619,5620,1,0,0,0,5620,5631,1,0,0,0,5621,5622,5, +177,0,0,5622,5626,3,2070,1035,0,5623,5624,5,934,0,0,5624,5625,5,413,0,0, +5625,5627,3,2070,1035,0,5626,5623,1,0,0,0,5626,5627,1,0,0,0,5627,5631,1, +0,0,0,5628,5629,5,413,0,0,5629,5631,3,2070,1035,0,5630,5614,1,0,0,0,5630, +5621,1,0,0,0,5630,5628,1,0,0,0,5631,403,1,0,0,0,5632,5633,5,319,0,0,5633, +5634,5,85,0,0,5634,5635,5,1410,0,0,5635,5637,3,2392,1196,0,5636,5638,3,406, +203,0,5637,5636,1,0,0,0,5637,5638,1,0,0,0,5638,5640,1,0,0,0,5639,5641,3, +408,204,0,5640,5639,1,0,0,0,5640,5641,1,0,0,0,5641,5643,1,0,0,0,5642,5644, +3,424,212,0,5643,5642,1,0,0,0,5643,5644,1,0,0,0,5644,5651,1,0,0,0,5645,5646, +5,2298,0,0,5646,5647,3,2388,1194,0,5647,5648,5,528,0,0,5648,5649,5,1388, +0,0,5649,5650,7,55,0,0,5650,5652,1,0,0,0,5651,5645,1,0,0,0,5651,5652,1,0, +0,0,5652,5655,1,0,0,0,5653,5654,5,1256,0,0,5654,5656,5,2133,0,0,5655,5653, +1,0,0,0,5655,5656,1,0,0,0,5656,5658,1,0,0,0,5657,5659,3,764,382,0,5658,5657, +1,0,0,0,5658,5659,1,0,0,0,5659,405,1,0,0,0,5660,5661,5,1457,0,0,5661,5666, +3,2380,1190,0,5662,5663,5,2451,0,0,5663,5665,3,2380,1190,0,5664,5662,1,0, +0,0,5665,5668,1,0,0,0,5666,5664,1,0,0,0,5666,5667,1,0,0,0,5667,407,1,0,0, +0,5668,5666,1,0,0,0,5669,5673,3,412,206,0,5670,5673,3,420,210,0,5671,5673, +3,410,205,0,5672,5669,1,0,0,0,5672,5670,1,0,0,0,5672,5671,1,0,0,0,5673,5674, +1,0,0,0,5674,5672,1,0,0,0,5674,5675,1,0,0,0,5675,409,1,0,0,0,5676,5677,5, +12,0,0,5677,5682,3,2380,1190,0,5678,5679,5,2451,0,0,5679,5681,3,2380,1190, +0,5680,5678,1,0,0,0,5681,5684,1,0,0,0,5682,5680,1,0,0,0,5682,5683,1,0,0, +0,5683,411,1,0,0,0,5684,5682,1,0,0,0,5685,5686,5,12,0,0,5686,5691,3,414, +207,0,5687,5688,5,2451,0,0,5688,5690,3,414,207,0,5689,5687,1,0,0,0,5690, +5693,1,0,0,0,5691,5689,1,0,0,0,5691,5692,1,0,0,0,5692,413,1,0,0,0,5693,5691, +1,0,0,0,5694,5697,3,416,208,0,5695,5697,5,38,0,0,5696,5694,1,0,0,0,5696, +5695,1,0,0,0,5697,5698,1,0,0,0,5698,5711,5,1257,0,0,5699,5700,5,424,0,0, +5700,5712,3,784,392,0,5701,5702,5,953,0,0,5702,5704,5,969,0,0,5703,5701, +1,0,0,0,5703,5704,1,0,0,0,5704,5708,1,0,0,0,5705,5706,3,2274,1137,0,5706, +5707,5,2438,0,0,5707,5709,1,0,0,0,5708,5705,1,0,0,0,5708,5709,1,0,0,0,5709, +5710,1,0,0,0,5710,5712,3,2392,1196,0,5711,5699,1,0,0,0,5711,5703,1,0,0,0, +5712,5718,1,0,0,0,5713,5716,3,418,209,0,5714,5716,5,38,0,0,5715,5713,1,0, +0,0,5715,5714,1,0,0,0,5716,5718,1,0,0,0,5717,5696,1,0,0,0,5717,5715,1,0, +0,0,5718,415,1,0,0,0,5719,5720,7,56,0,0,5720,417,1,0,0,0,5721,5729,3,2392, +1196,0,5722,5723,7,57,0,0,5723,5729,5,790,0,0,5724,5725,5,879,0,0,5725,5729, +5,2081,0,0,5726,5727,7,58,0,0,5727,5729,5,424,0,0,5728,5721,1,0,0,0,5728, +5722,1,0,0,0,5728,5724,1,0,0,0,5728,5726,1,0,0,0,5729,419,1,0,0,0,5730,5731, +5,12,0,0,5731,5732,5,252,0,0,5732,5758,5,2469,0,0,5733,5734,7,59,0,0,5734, +5739,3,422,211,0,5735,5736,5,2451,0,0,5736,5738,3,422,211,0,5737,5735,1, +0,0,0,5738,5741,1,0,0,0,5739,5737,1,0,0,0,5739,5740,1,0,0,0,5740,5759,1, +0,0,0,5741,5739,1,0,0,0,5742,5743,5,474,0,0,5743,5744,3,422,211,0,5744,5745, +5,1257,0,0,5745,5753,3,2392,1196,0,5746,5747,5,2451,0,0,5747,5748,3,422, +211,0,5748,5749,5,1257,0,0,5749,5750,3,2392,1196,0,5750,5752,1,0,0,0,5751, +5746,1,0,0,0,5752,5755,1,0,0,0,5753,5751,1,0,0,0,5753,5754,1,0,0,0,5754, +5759,1,0,0,0,5755,5753,1,0,0,0,5756,5757,5,1468,0,0,5757,5759,7,60,0,0,5758, +5733,1,0,0,0,5758,5742,1,0,0,0,5758,5756,1,0,0,0,5759,421,1,0,0,0,5760,5761, +3,2392,1196,0,5761,423,1,0,0,0,5762,5763,5,1593,0,0,5763,5768,3,2296,1148, +0,5764,5765,5,2451,0,0,5765,5767,3,2296,1148,0,5766,5764,1,0,0,0,5767,5770, +1,0,0,0,5768,5766,1,0,0,0,5768,5769,1,0,0,0,5769,425,1,0,0,0,5770,5768,1, +0,0,0,5771,5772,5,319,0,0,5772,5774,5,296,0,0,5773,5775,5,1585,0,0,5774, +5773,1,0,0,0,5774,5775,1,0,0,0,5775,5777,1,0,0,0,5776,5778,5,1669,0,0,5777, +5776,1,0,0,0,5777,5778,1,0,0,0,5778,5779,1,0,0,0,5779,5780,5,348,0,0,5780, +5782,3,2392,1196,0,5781,5783,3,430,215,0,5782,5781,1,0,0,0,5782,5783,1,0, +0,0,5783,5784,1,0,0,0,5784,5794,7,61,0,0,5785,5786,5,350,0,0,5786,5791,3, +434,217,0,5787,5788,5,2451,0,0,5788,5790,3,434,217,0,5789,5787,1,0,0,0,5790, +5793,1,0,0,0,5791,5789,1,0,0,0,5791,5792,1,0,0,0,5792,5795,1,0,0,0,5793, +5791,1,0,0,0,5794,5785,1,0,0,0,5794,5795,1,0,0,0,5795,5799,1,0,0,0,5796, +5798,3,428,214,0,5797,5796,1,0,0,0,5798,5801,1,0,0,0,5799,5797,1,0,0,0,5799, +5800,1,0,0,0,5800,5803,1,0,0,0,5801,5799,1,0,0,0,5802,5804,3,432,216,0,5803, +5802,1,0,0,0,5803,5804,1,0,0,0,5804,427,1,0,0,0,5805,5806,5,924,0,0,5806, +5830,3,2384,1192,0,5807,5808,5,926,0,0,5808,5830,3,2384,1192,0,5809,5810, +5,925,0,0,5810,5830,3,2384,1192,0,5811,5812,5,920,0,0,5812,5830,3,2384,1192, +0,5813,5814,5,923,0,0,5814,5830,3,2384,1192,0,5815,5830,5,66,0,0,5816,5830, +5,1056,0,0,5817,5818,5,614,0,0,5818,5830,5,882,0,0,5819,5820,5,1669,0,0, +5820,5821,5,1732,0,0,5821,5822,5,1117,0,0,5822,5827,5,618,0,0,5823,5824, +5,349,0,0,5824,5828,5,98,0,0,5825,5826,5,865,0,0,5826,5828,5,1383,0,0,5827, +5823,1,0,0,0,5827,5825,1,0,0,0,5828,5830,1,0,0,0,5829,5805,1,0,0,0,5829, +5807,1,0,0,0,5829,5809,1,0,0,0,5829,5811,1,0,0,0,5829,5813,1,0,0,0,5829, +5815,1,0,0,0,5829,5816,1,0,0,0,5829,5817,1,0,0,0,5829,5819,1,0,0,0,5830, +429,1,0,0,0,5831,5836,5,880,0,0,5832,5834,5,647,0,0,5833,5832,1,0,0,0,5833, +5834,1,0,0,0,5834,5835,1,0,0,0,5835,5837,3,2384,1192,0,5836,5833,1,0,0,0, +5836,5837,1,0,0,0,5837,5838,1,0,0,0,5838,5849,3,434,217,0,5839,5844,5,2451, +0,0,5840,5842,5,647,0,0,5841,5840,1,0,0,0,5841,5842,1,0,0,0,5842,5843,1, +0,0,0,5843,5845,3,2384,1192,0,5844,5841,1,0,0,0,5844,5845,1,0,0,0,5845,5846, +1,0,0,0,5846,5848,3,434,217,0,5847,5839,1,0,0,0,5848,5851,1,0,0,0,5849,5847, +1,0,0,0,5849,5850,1,0,0,0,5850,431,1,0,0,0,5851,5849,1,0,0,0,5852,5853,5, +193,0,0,5853,5854,5,1669,0,0,5854,5855,3,2392,1196,0,5855,433,1,0,0,0,5856, +5859,3,916,458,0,5857,5859,3,918,459,0,5858,5856,1,0,0,0,5858,5857,1,0,0, +0,5859,435,1,0,0,0,5860,5861,5,319,0,0,5861,5862,5,439,0,0,5862,5875,3,2392, +1196,0,5863,5873,5,673,0,0,5864,5873,5,1176,0,0,5865,5873,5,607,0,0,5866, +5869,5,2374,0,0,5867,5868,5,1686,0,0,5868,5870,3,2392,1196,0,5869,5867,1, +0,0,0,5869,5870,1,0,0,0,5870,5873,1,0,0,0,5871,5873,5,558,0,0,5872,5863, +1,0,0,0,5872,5864,1,0,0,0,5872,5865,1,0,0,0,5872,5866,1,0,0,0,5872,5871, +1,0,0,0,5873,5874,1,0,0,0,5874,5876,5,1522,0,0,5875,5872,1,0,0,0,5875,5876, +1,0,0,0,5876,5893,1,0,0,0,5877,5879,3,84,42,0,5878,5877,1,0,0,0,5878,5879, +1,0,0,0,5879,5882,1,0,0,0,5880,5881,5,570,0,0,5881,5883,3,2392,1196,0,5882, +5880,1,0,0,0,5882,5883,1,0,0,0,5883,5884,1,0,0,0,5884,5885,5,438,0,0,5885, +5890,3,438,219,0,5886,5887,5,2451,0,0,5887,5889,3,438,219,0,5888,5886,1, +0,0,0,5889,5892,1,0,0,0,5890,5888,1,0,0,0,5890,5891,1,0,0,0,5891,5894,1, +0,0,0,5892,5890,1,0,0,0,5893,5878,1,0,0,0,5894,5895,1,0,0,0,5895,5893,1, +0,0,0,5895,5896,1,0,0,0,5896,5910,1,0,0,0,5897,5898,5,83,0,0,5898,5899,5, +2441,0,0,5899,5900,5,2469,0,0,5900,5907,5,2441,0,0,5901,5902,5,2451,0,0, +5902,5903,5,2441,0,0,5903,5904,5,2469,0,0,5904,5906,5,2441,0,0,5905,5901, +1,0,0,0,5906,5909,1,0,0,0,5907,5905,1,0,0,0,5907,5908,1,0,0,0,5908,5911, +1,0,0,0,5909,5907,1,0,0,0,5910,5897,1,0,0,0,5910,5911,1,0,0,0,5911,437,1, +0,0,0,5912,5915,5,2441,0,0,5913,5914,5,995,0,0,5914,5916,3,2392,1196,0,5915, +5913,1,0,0,0,5915,5916,1,0,0,0,5916,5919,1,0,0,0,5917,5918,5,1697,0,0,5918, +5920,3,1170,585,0,5919,5917,1,0,0,0,5919,5920,1,0,0,0,5920,5922,1,0,0,0, +5921,5923,3,38,19,0,5922,5921,1,0,0,0,5922,5923,1,0,0,0,5923,439,1,0,0,0, +5924,5925,5,319,0,0,5925,5926,5,481,0,0,5926,5931,3,2392,1196,0,5927,5928, +5,69,0,0,5928,5929,5,202,0,0,5929,5930,5,1244,0,0,5930,5932,3,2392,1196, +0,5931,5927,1,0,0,0,5931,5932,1,0,0,0,5932,441,1,0,0,0,5933,5934,5,319,0, +0,5934,5935,5,603,0,0,5935,5937,5,64,0,0,5936,5938,5,387,0,0,5937,5936,1, +0,0,0,5937,5938,1,0,0,0,5938,5939,1,0,0,0,5939,5940,3,2392,1196,0,5940,5941, +5,2078,0,0,5941,5943,3,2392,1196,0,5942,5944,3,444,222,0,5943,5942,1,0,0, +0,5943,5944,1,0,0,0,5944,5950,1,0,0,0,5945,5947,5,1135,0,0,5946,5945,1,0, +0,0,5946,5947,1,0,0,0,5947,5948,1,0,0,0,5948,5949,5,1267,0,0,5949,5951,5, +349,0,0,5950,5946,1,0,0,0,5950,5951,1,0,0,0,5951,5952,1,0,0,0,5952,5953, +3,446,223,0,5953,443,1,0,0,0,5954,5955,5,1488,0,0,5955,5956,5,2439,0,0,5956, +5957,7,62,0,0,5957,445,1,0,0,0,5958,5959,5,1581,0,0,5959,5960,5,2439,0,0, +5960,5961,7,63,0,0,5961,447,1,0,0,0,5962,5965,5,319,0,0,5963,5964,5,1305, +0,0,5964,5966,5,1560,0,0,5965,5963,1,0,0,0,5965,5966,1,0,0,0,5966,5971,1, +0,0,0,5967,5969,5,1135,0,0,5968,5967,1,0,0,0,5968,5969,1,0,0,0,5969,5970, +1,0,0,0,5970,5972,5,614,0,0,5971,5968,1,0,0,0,5971,5972,1,0,0,0,5972,5973, +1,0,0,0,5973,5977,5,672,0,0,5974,5975,3,2274,1137,0,5975,5976,5,2438,0,0, +5976,5978,1,0,0,0,5977,5974,1,0,0,0,5977,5978,1,0,0,0,5978,5979,1,0,0,0, +5979,5983,3,2392,1196,0,5980,5981,5,1679,0,0,5981,5982,5,2469,0,0,5982,5984, +7,21,0,0,5983,5980,1,0,0,0,5983,5984,1,0,0,0,5984,5988,1,0,0,0,5985,5987, +3,330,165,0,5986,5985,1,0,0,0,5987,5990,1,0,0,0,5988,5986,1,0,0,0,5988,5989, +1,0,0,0,5989,5991,1,0,0,0,5990,5988,1,0,0,0,5991,5992,3,450,225,0,5992,5994, +3,452,226,0,5993,5995,3,454,227,0,5994,5993,1,0,0,0,5994,5995,1,0,0,0,5995, +449,1,0,0,0,5996,6000,5,2244,0,0,5997,5998,3,2274,1137,0,5998,5999,5,2438, +0,0,5999,6001,1,0,0,0,6000,5997,1,0,0,0,6000,6001,1,0,0,0,6001,6002,1,0, +0,0,6002,6003,3,2392,1196,0,6003,451,1,0,0,0,6004,6010,5,2445,0,0,6005,6008, +3,2392,1196,0,6006,6007,5,202,0,0,6007,6009,5,1244,0,0,6008,6006,1,0,0,0, +6008,6009,1,0,0,0,6009,6011,1,0,0,0,6010,6005,1,0,0,0,6011,6012,1,0,0,0, +6012,6010,1,0,0,0,6012,6013,1,0,0,0,6013,6014,1,0,0,0,6014,6015,5,2446,0, +0,6015,453,1,0,0,0,6016,6017,5,670,0,0,6017,6018,5,84,0,0,6018,6019,5,2445, +0,0,6019,6020,3,456,228,0,6020,6021,5,2446,0,0,6021,455,1,0,0,0,6022,6026, +3,458,229,0,6023,6025,3,330,165,0,6024,6023,1,0,0,0,6025,6028,1,0,0,0,6026, +6024,1,0,0,0,6026,6027,1,0,0,0,6027,457,1,0,0,0,6028,6026,1,0,0,0,6029,6030, +7,64,0,0,6030,459,1,0,0,0,6031,6033,5,319,0,0,6032,6034,7,65,0,0,6033,6032, +1,0,0,0,6033,6034,1,0,0,0,6034,6035,1,0,0,0,6035,6036,5,715,0,0,6036,6040, +3,2316,1158,0,6037,6038,5,689,0,0,6038,6039,5,1202,0,0,6039,6041,5,543,0, +0,6040,6037,1,0,0,0,6040,6041,1,0,0,0,6041,6042,1,0,0,0,6042,6046,5,1257, +0,0,6043,6047,3,462,231,0,6044,6047,3,466,233,0,6045,6047,3,468,234,0,6046, +6043,1,0,0,0,6046,6044,1,0,0,0,6046,6045,1,0,0,0,6047,6049,1,0,0,0,6048, +6050,7,66,0,0,6049,6048,1,0,0,0,6049,6050,1,0,0,0,6050,6053,1,0,0,0,6051, +6052,7,67,0,0,6052,6054,5,779,0,0,6053,6051,1,0,0,0,6053,6054,1,0,0,0,6054, +461,1,0,0,0,6055,6056,5,220,0,0,6056,6058,3,464,232,0,6057,6059,3,1580,790, +0,6058,6057,1,0,0,0,6058,6059,1,0,0,0,6059,463,1,0,0,0,6060,6061,3,2392, +1196,0,6061,6062,5,2438,0,0,6062,6064,1,0,0,0,6063,6060,1,0,0,0,6063,6064, +1,0,0,0,6064,6065,1,0,0,0,6065,6066,3,2392,1196,0,6066,465,1,0,0,0,6067, +6069,3,2330,1165,0,6068,6070,3,2258,1129,0,6069,6068,1,0,0,0,6069,6070,1, +0,0,0,6070,6071,1,0,0,0,6071,6072,5,2445,0,0,6072,6074,3,470,235,0,6073, +6075,7,53,0,0,6074,6073,1,0,0,0,6074,6075,1,0,0,0,6075,6083,1,0,0,0,6076, +6077,5,2451,0,0,6077,6079,3,470,235,0,6078,6080,7,53,0,0,6079,6078,1,0,0, +0,6079,6080,1,0,0,0,6080,6082,1,0,0,0,6081,6076,1,0,0,0,6082,6085,1,0,0, +0,6083,6081,1,0,0,0,6083,6084,1,0,0,0,6084,6086,1,0,0,0,6085,6083,1,0,0, +0,6086,6088,5,2446,0,0,6087,6089,3,472,236,0,6088,6087,1,0,0,0,6088,6089, +1,0,0,0,6089,467,1,0,0,0,6090,6091,3,2330,1165,0,6091,6094,5,2445,0,0,6092, +6095,3,2330,1165,0,6093,6095,3,2258,1129,0,6094,6092,1,0,0,0,6094,6093,1, +0,0,0,6094,6095,1,0,0,0,6095,6096,1,0,0,0,6096,6098,3,2328,1164,0,6097,6099, +7,53,0,0,6098,6097,1,0,0,0,6098,6099,1,0,0,0,6099,6111,1,0,0,0,6100,6103, +5,2451,0,0,6101,6104,3,2330,1165,0,6102,6104,3,2258,1129,0,6103,6101,1,0, +0,0,6103,6102,1,0,0,0,6103,6104,1,0,0,0,6104,6105,1,0,0,0,6105,6107,3,2328, +1164,0,6106,6108,7,53,0,0,6107,6106,1,0,0,0,6107,6108,1,0,0,0,6108,6110, +1,0,0,0,6109,6100,1,0,0,0,6110,6113,1,0,0,0,6111,6109,1,0,0,0,6111,6112, +1,0,0,0,6112,6114,1,0,0,0,6113,6111,1,0,0,0,6114,6115,5,2446,0,0,6115,6116, +5,626,0,0,6116,6117,3,2330,1165,0,6117,6124,3,2258,1129,0,6118,6119,5,2451, +0,0,6119,6120,3,2330,1165,0,6120,6121,3,2258,1129,0,6121,6123,1,0,0,0,6122, +6118,1,0,0,0,6123,6126,1,0,0,0,6124,6122,1,0,0,0,6124,6125,1,0,0,0,6125, +6127,1,0,0,0,6126,6124,1,0,0,0,6127,6129,3,2260,1130,0,6128,6130,3,488,244, +0,6129,6128,1,0,0,0,6129,6130,1,0,0,0,6130,6132,1,0,0,0,6131,6133,3,1580, +790,0,6132,6131,1,0,0,0,6132,6133,1,0,0,0,6133,469,1,0,0,0,6134,6137,3,2328, +1164,0,6135,6137,3,2070,1035,0,6136,6134,1,0,0,0,6136,6135,1,0,0,0,6137, +471,1,0,0,0,6138,6142,3,482,241,0,6139,6142,3,488,244,0,6140,6142,3,1580, +790,0,6141,6138,1,0,0,0,6141,6139,1,0,0,0,6141,6140,1,0,0,0,6142,6143,1, +0,0,0,6143,6141,1,0,0,0,6143,6144,1,0,0,0,6144,6152,1,0,0,0,6145,6146,5, +729,0,0,6146,6149,5,783,0,0,6147,6150,3,474,237,0,6148,6150,3,478,239,0, +6149,6147,1,0,0,0,6149,6148,1,0,0,0,6150,6152,1,0,0,0,6151,6141,1,0,0,0, +6151,6145,1,0,0,0,6152,473,1,0,0,0,6153,6155,3,510,255,0,6154,6156,3,476, +238,0,6155,6154,1,0,0,0,6155,6156,1,0,0,0,6156,6158,1,0,0,0,6157,6159,3, +926,463,0,6158,6157,1,0,0,0,6158,6159,1,0,0,0,6159,6165,1,0,0,0,6160,6161, +5,1333,0,0,6161,6162,5,2445,0,0,6162,6163,3,508,254,0,6163,6164,5,2446,0, +0,6164,6166,1,0,0,0,6165,6160,1,0,0,0,6165,6166,1,0,0,0,6166,475,1,0,0,0, +6167,6195,5,871,0,0,6168,6169,5,2445,0,0,6169,6170,5,1346,0,0,6170,6176, +3,1688,844,0,6171,6172,5,1333,0,0,6172,6173,5,2445,0,0,6173,6174,3,508,254, +0,6174,6175,5,2446,0,0,6175,6177,1,0,0,0,6176,6171,1,0,0,0,6176,6177,1,0, +0,0,6177,6190,1,0,0,0,6178,6179,5,2451,0,0,6179,6180,5,1346,0,0,6180,6186, +3,1688,844,0,6181,6182,5,1333,0,0,6182,6183,5,2445,0,0,6183,6184,3,508,254, +0,6184,6185,5,2446,0,0,6185,6187,1,0,0,0,6186,6181,1,0,0,0,6186,6187,1,0, +0,0,6187,6189,1,0,0,0,6188,6178,1,0,0,0,6189,6192,1,0,0,0,6190,6188,1,0, +0,0,6190,6191,1,0,0,0,6191,6193,1,0,0,0,6192,6190,1,0,0,0,6193,6194,5,2446, +0,0,6194,6196,1,0,0,0,6195,6168,1,0,0,0,6195,6196,1,0,0,0,6196,477,1,0,0, +0,6197,6198,5,2313,0,0,6198,6200,5,2438,0,0,6199,6197,1,0,0,0,6199,6200, +1,0,0,0,6200,6201,1,0,0,0,6201,6203,5,2330,0,0,6202,6204,3,480,240,0,6203, +6202,1,0,0,0,6203,6204,1,0,0,0,6204,6206,1,0,0,0,6205,6207,3,926,463,0,6206, +6205,1,0,0,0,6206,6207,1,0,0,0,6207,479,1,0,0,0,6208,6222,5,871,0,0,6209, +6210,5,2445,0,0,6210,6211,5,1346,0,0,6211,6217,3,1688,844,0,6212,6213,5, +2451,0,0,6213,6214,5,1346,0,0,6214,6216,3,1688,844,0,6215,6212,1,0,0,0,6216, +6219,1,0,0,0,6217,6215,1,0,0,0,6217,6218,1,0,0,0,6218,6220,1,0,0,0,6219, +6217,1,0,0,0,6220,6221,5,2446,0,0,6221,6223,1,0,0,0,6222,6209,1,0,0,0,6222, +6223,1,0,0,0,6223,481,1,0,0,0,6224,6225,5,640,0,0,6225,6226,5,1346,0,0,6226, +6264,5,160,0,0,6227,6228,5,1493,0,0,6228,6229,5,2445,0,0,6229,6234,3,2328, +1164,0,6230,6231,5,2451,0,0,6231,6233,3,2328,1164,0,6232,6230,1,0,0,0,6233, +6236,1,0,0,0,6234,6232,1,0,0,0,6234,6235,1,0,0,0,6235,6237,1,0,0,0,6236, +6234,1,0,0,0,6237,6238,5,2446,0,0,6238,6239,5,2445,0,0,6239,6244,3,484,242, +0,6240,6241,5,2451,0,0,6241,6243,3,484,242,0,6242,6240,1,0,0,0,6243,6246, +1,0,0,0,6244,6242,1,0,0,0,6244,6245,1,0,0,0,6245,6247,1,0,0,0,6246,6244, +1,0,0,0,6247,6248,5,2446,0,0,6248,6265,1,0,0,0,6249,6250,5,658,0,0,6250, +6251,5,2445,0,0,6251,6256,3,2328,1164,0,6252,6253,5,2451,0,0,6253,6255,3, +2328,1164,0,6254,6252,1,0,0,0,6255,6258,1,0,0,0,6256,6254,1,0,0,0,6256,6257, +1,0,0,0,6257,6259,1,0,0,0,6258,6256,1,0,0,0,6259,6262,5,2446,0,0,6260,6263, +3,1116,558,0,6261,6263,3,1118,559,0,6262,6260,1,0,0,0,6262,6261,1,0,0,0, +6263,6265,1,0,0,0,6264,6227,1,0,0,0,6264,6249,1,0,0,0,6265,483,1,0,0,0,6266, +6268,5,1346,0,0,6267,6269,3,1688,844,0,6268,6267,1,0,0,0,6268,6269,1,0,0, +0,6269,6270,1,0,0,0,6270,6271,5,2255,0,0,6271,6272,5,843,0,0,6272,6273,5, +2096,0,0,6273,6274,5,2445,0,0,6274,6275,3,486,243,0,6275,6277,5,2446,0,0, +6276,6278,3,1194,597,0,6277,6276,1,0,0,0,6277,6278,1,0,0,0,6278,485,1,0, +0,0,6279,6284,3,2176,1088,0,6280,6281,5,2451,0,0,6281,6283,3,2176,1088,0, +6282,6280,1,0,0,0,6283,6286,1,0,0,0,6284,6282,1,0,0,0,6284,6285,1,0,0,0, +6285,6298,1,0,0,0,6286,6284,1,0,0,0,6287,6288,5,2106,0,0,6288,6294,3,2176, +1088,0,6289,6290,5,2451,0,0,6290,6291,5,2106,0,0,6291,6293,3,2176,1088,0, +6292,6289,1,0,0,0,6293,6296,1,0,0,0,6294,6292,1,0,0,0,6294,6295,1,0,0,0, +6295,6298,1,0,0,0,6296,6294,1,0,0,0,6297,6279,1,0,0,0,6297,6287,1,0,0,0, +6298,487,1,0,0,0,6299,6304,5,871,0,0,6300,6305,3,490,245,0,6301,6305,3,492, +246,0,6302,6305,3,496,248,0,6303,6305,3,500,250,0,6304,6300,1,0,0,0,6304, +6301,1,0,0,0,6304,6302,1,0,0,0,6304,6303,1,0,0,0,6304,6305,1,0,0,0,6305, +489,1,0,0,0,6306,6307,5,2445,0,0,6307,6312,3,494,247,0,6308,6309,5,2451, +0,0,6309,6311,3,494,247,0,6310,6308,1,0,0,0,6311,6314,1,0,0,0,6312,6310, +1,0,0,0,6312,6313,1,0,0,0,6313,6315,1,0,0,0,6314,6312,1,0,0,0,6315,6316, +5,2446,0,0,6316,491,1,0,0,0,6317,6318,5,2445,0,0,6318,6323,3,494,247,0,6319, +6320,5,2451,0,0,6320,6322,3,494,247,0,6321,6319,1,0,0,0,6322,6325,1,0,0, +0,6323,6321,1,0,0,0,6323,6324,1,0,0,0,6324,6326,1,0,0,0,6325,6323,1,0,0, +0,6326,6327,5,2446,0,0,6327,493,1,0,0,0,6328,6330,5,1346,0,0,6329,6331,3, +1688,844,0,6330,6329,1,0,0,0,6330,6331,1,0,0,0,6331,6336,1,0,0,0,6332,6335, +3,1194,597,0,6333,6335,3,1592,796,0,6334,6332,1,0,0,0,6334,6333,1,0,0,0, +6335,6338,1,0,0,0,6336,6334,1,0,0,0,6336,6337,1,0,0,0,6337,6340,1,0,0,0, +6338,6336,1,0,0,0,6339,6341,5,2201,0,0,6340,6339,1,0,0,0,6340,6341,1,0,0, +0,6341,495,1,0,0,0,6342,6343,5,1761,0,0,6343,6344,5,736,0,0,6344,6345,5, +2445,0,0,6345,6350,3,1648,824,0,6346,6347,5,2451,0,0,6347,6349,3,1648,824, +0,6348,6346,1,0,0,0,6349,6352,1,0,0,0,6350,6348,1,0,0,0,6350,6351,1,0,0, +0,6351,6353,1,0,0,0,6352,6350,1,0,0,0,6353,6354,5,2446,0,0,6354,6367,1,0, +0,0,6355,6356,5,2445,0,0,6356,6361,3,498,249,0,6357,6358,5,2451,0,0,6358, +6360,3,498,249,0,6359,6357,1,0,0,0,6360,6363,1,0,0,0,6361,6359,1,0,0,0,6361, +6362,1,0,0,0,6362,6364,1,0,0,0,6363,6361,1,0,0,0,6364,6365,5,2446,0,0,6365, +6367,1,0,0,0,6366,6342,1,0,0,0,6366,6355,1,0,0,0,6367,497,1,0,0,0,6368,6370, +5,1346,0,0,6369,6371,3,1688,844,0,6370,6369,1,0,0,0,6370,6371,1,0,0,0,6371, +6374,1,0,0,0,6372,6373,5,2078,0,0,6373,6375,3,1648,824,0,6374,6372,1,0,0, +0,6374,6375,1,0,0,0,6375,6377,1,0,0,0,6376,6378,3,1592,796,0,6377,6376,1, +0,0,0,6377,6378,1,0,0,0,6378,6380,1,0,0,0,6379,6381,5,2201,0,0,6380,6379, +1,0,0,0,6380,6381,1,0,0,0,6381,499,1,0,0,0,6382,6383,5,1761,0,0,6383,6384, +5,736,0,0,6384,6385,5,2445,0,0,6385,6390,3,1648,824,0,6386,6387,5,2451,0, +0,6387,6389,3,1648,824,0,6388,6386,1,0,0,0,6389,6392,1,0,0,0,6390,6388,1, +0,0,0,6390,6391,1,0,0,0,6391,6393,1,0,0,0,6392,6390,1,0,0,0,6393,6394,5, +2446,0,0,6394,6396,1,0,0,0,6395,6382,1,0,0,0,6395,6396,1,0,0,0,6396,6397, +1,0,0,0,6397,6398,5,2445,0,0,6398,6403,3,502,251,0,6399,6400,5,2451,0,0, +6400,6402,3,502,251,0,6401,6399,1,0,0,0,6402,6405,1,0,0,0,6403,6401,1,0, +0,0,6403,6404,1,0,0,0,6404,6406,1,0,0,0,6405,6403,1,0,0,0,6406,6407,5,2446, +0,0,6407,501,1,0,0,0,6408,6410,5,1346,0,0,6409,6411,3,1688,844,0,6410,6409, +1,0,0,0,6410,6411,1,0,0,0,6411,6416,1,0,0,0,6412,6415,3,1194,597,0,6413, +6415,3,1592,796,0,6414,6412,1,0,0,0,6414,6413,1,0,0,0,6415,6418,1,0,0,0, +6416,6414,1,0,0,0,6416,6417,1,0,0,0,6417,6420,1,0,0,0,6418,6416,1,0,0,0, +6419,6421,5,2201,0,0,6420,6419,1,0,0,0,6420,6421,1,0,0,0,6421,6423,1,0,0, +0,6422,6424,3,504,252,0,6423,6422,1,0,0,0,6423,6424,1,0,0,0,6424,503,1,0, +0,0,6425,6426,5,1761,0,0,6426,6427,5,736,0,0,6427,6428,5,2445,0,0,6428,6433, +3,1648,824,0,6429,6430,5,2451,0,0,6430,6432,3,1648,824,0,6431,6429,1,0,0, +0,6432,6435,1,0,0,0,6433,6431,1,0,0,0,6433,6434,1,0,0,0,6434,6436,1,0,0, +0,6435,6433,1,0,0,0,6436,6437,5,2446,0,0,6437,6450,1,0,0,0,6438,6439,5,2445, +0,0,6439,6444,3,506,253,0,6440,6441,5,2451,0,0,6441,6443,3,506,253,0,6442, +6440,1,0,0,0,6443,6446,1,0,0,0,6444,6442,1,0,0,0,6444,6445,1,0,0,0,6445, +6447,1,0,0,0,6446,6444,1,0,0,0,6447,6448,5,2446,0,0,6448,6450,1,0,0,0,6449, +6425,1,0,0,0,6449,6438,1,0,0,0,6450,505,1,0,0,0,6451,6453,5,1773,0,0,6452, +6454,3,1148,574,0,6453,6452,1,0,0,0,6453,6454,1,0,0,0,6454,6457,1,0,0,0, +6455,6456,5,2078,0,0,6456,6458,3,1648,824,0,6457,6455,1,0,0,0,6457,6458, +1,0,0,0,6458,6460,1,0,0,0,6459,6461,3,1592,796,0,6460,6459,1,0,0,0,6460, +6461,1,0,0,0,6461,6463,1,0,0,0,6462,6464,5,2201,0,0,6463,6462,1,0,0,0,6463, +6464,1,0,0,0,6464,507,1,0,0,0,6465,6466,5,2441,0,0,6466,509,1,0,0,0,6467, +6468,3,2392,1196,0,6468,6469,5,2438,0,0,6469,6471,1,0,0,0,6470,6467,1,0, +0,0,6470,6471,1,0,0,0,6471,6472,1,0,0,0,6472,6473,3,2392,1196,0,6473,511, +1,0,0,0,6474,6475,5,42,0,0,6475,6476,5,715,0,0,6476,6479,3,2316,1158,0,6477, +6480,3,514,257,0,6478,6480,3,516,258,0,6479,6477,1,0,0,0,6479,6478,1,0,0, +0,6480,513,1,0,0,0,6481,6488,3,1280,640,0,6482,6488,3,1278,639,0,6483,6488, +3,1282,641,0,6484,6488,3,926,463,0,6485,6488,3,1188,594,0,6486,6488,3,884, +442,0,6487,6481,1,0,0,0,6487,6482,1,0,0,0,6487,6483,1,0,0,0,6487,6484,1, +0,0,0,6487,6485,1,0,0,0,6487,6486,1,0,0,0,6488,6489,1,0,0,0,6489,6487,1, +0,0,0,6489,6490,1,0,0,0,6490,515,1,0,0,0,6491,6513,3,522,261,0,6492,6493, +5,1333,0,0,6493,6494,5,2445,0,0,6494,6495,3,508,254,0,6495,6496,5,2446,0, +0,6496,6513,1,0,0,0,6497,6513,5,249,0,0,6498,6513,3,1302,651,0,6499,6513, +5,2201,0,0,6500,6513,3,518,259,0,6501,6502,5,1557,0,0,6502,6503,5,2139,0, +0,6503,6513,3,550,275,0,6504,6513,5,228,0,0,6505,6506,3,520,260,0,6506,6507, +5,2214,0,0,6507,6513,1,0,0,0,6508,6509,5,2205,0,0,6509,6510,5,143,0,0,6510, +6513,5,1526,0,0,6511,6513,3,524,262,0,6512,6491,1,0,0,0,6512,6492,1,0,0, +0,6512,6497,1,0,0,0,6512,6498,1,0,0,0,6512,6499,1,0,0,0,6512,6500,1,0,0, +0,6512,6501,1,0,0,0,6512,6504,1,0,0,0,6512,6505,1,0,0,0,6512,6508,1,0,0, +0,6512,6511,1,0,0,0,6513,517,1,0,0,0,6514,6515,7,68,0,0,6515,519,1,0,0,0, +6516,6517,7,69,0,0,6517,521,1,0,0,0,6518,6525,5,1509,0,0,6519,6520,5,1346, +0,0,6520,6526,3,1688,844,0,6521,6522,5,1773,0,0,6522,6526,3,1148,574,0,6523, +6526,5,1586,0,0,6524,6526,5,1173,0,0,6525,6519,1,0,0,0,6525,6521,1,0,0,0, +6525,6523,1,0,0,0,6525,6524,1,0,0,0,6525,6526,1,0,0,0,6526,6541,1,0,0,0, +6527,6540,3,926,463,0,6528,6529,5,2078,0,0,6529,6540,3,1648,824,0,6530,6531, +5,1333,0,0,6531,6532,5,2445,0,0,6532,6533,3,508,254,0,6533,6534,5,2446,0, +0,6534,6540,1,0,0,0,6535,6540,5,1254,0,0,6536,6540,3,1188,594,0,6537,6540, +3,1592,796,0,6538,6540,3,884,442,0,6539,6527,1,0,0,0,6539,6528,1,0,0,0,6539, +6530,1,0,0,0,6539,6535,1,0,0,0,6539,6536,1,0,0,0,6539,6537,1,0,0,0,6539, +6538,1,0,0,0,6540,6543,1,0,0,0,6541,6539,1,0,0,0,6541,6542,1,0,0,0,6542, +523,1,0,0,0,6543,6541,1,0,0,0,6544,6553,3,526,263,0,6545,6553,3,528,264, +0,6546,6553,3,532,266,0,6547,6553,3,536,268,0,6548,6553,3,538,269,0,6549, +6553,3,540,270,0,6550,6553,3,530,265,0,6551,6553,3,544,272,0,6552,6544,1, +0,0,0,6552,6545,1,0,0,0,6552,6546,1,0,0,0,6552,6547,1,0,0,0,6552,6548,1, +0,0,0,6552,6549,1,0,0,0,6552,6550,1,0,0,0,6552,6551,1,0,0,0,6553,525,1,0, +0,0,6554,6555,5,978,0,0,6555,6556,5,387,0,0,6556,6560,5,84,0,0,6557,6558, +5,618,0,0,6558,6559,5,1346,0,0,6559,6561,3,1688,844,0,6560,6557,1,0,0,0, +6560,6561,1,0,0,0,6561,6569,1,0,0,0,6562,6570,3,1188,594,0,6563,6566,5,2078, +0,0,6564,6567,3,1648,824,0,6565,6567,5,387,0,0,6566,6564,1,0,0,0,6566,6565, +1,0,0,0,6567,6570,1,0,0,0,6568,6570,3,884,442,0,6569,6562,1,0,0,0,6569,6563, +1,0,0,0,6569,6568,1,0,0,0,6570,527,1,0,0,0,6571,6572,5,21,0,0,6572,6574, +5,1346,0,0,6573,6575,3,1688,844,0,6574,6573,1,0,0,0,6574,6575,1,0,0,0,6575, +6578,1,0,0,0,6576,6577,5,2078,0,0,6577,6579,3,1648,824,0,6578,6576,1,0,0, +0,6578,6579,1,0,0,0,6579,6581,1,0,0,0,6580,6582,3,1592,796,0,6581,6580,1, +0,0,0,6581,6582,1,0,0,0,6582,6584,1,0,0,0,6583,6585,3,926,463,0,6584,6583, +1,0,0,0,6584,6585,1,0,0,0,6585,529,1,0,0,0,6586,6587,5,228,0,0,6587,6589, +5,1346,0,0,6588,6590,3,926,463,0,6589,6588,1,0,0,0,6589,6590,1,0,0,0,6590, +531,1,0,0,0,6591,6592,5,978,0,0,6592,6593,5,1346,0,0,6593,6609,3,1688,844, +0,6594,6596,3,534,267,0,6595,6594,1,0,0,0,6596,6597,1,0,0,0,6597,6595,1, +0,0,0,6597,6598,1,0,0,0,6598,6610,1,0,0,0,6599,6600,5,1333,0,0,6600,6601, +5,2445,0,0,6601,6602,3,508,254,0,6602,6603,5,2446,0,0,6603,6610,1,0,0,0, +6604,6610,5,228,0,0,6605,6606,5,2205,0,0,6606,6607,5,143,0,0,6607,6610,5, +1526,0,0,6608,6610,5,2201,0,0,6609,6595,1,0,0,0,6609,6599,1,0,0,0,6609,6604, +1,0,0,0,6609,6605,1,0,0,0,6609,6608,1,0,0,0,6610,533,1,0,0,0,6611,6618,3, +1280,640,0,6612,6618,3,1278,639,0,6613,6618,3,1188,594,0,6614,6618,3,884, +442,0,6615,6618,3,1592,796,0,6616,6618,3,1282,641,0,6617,6611,1,0,0,0,6617, +6612,1,0,0,0,6617,6613,1,0,0,0,6617,6614,1,0,0,0,6617,6615,1,0,0,0,6617, +6616,1,0,0,0,6618,535,1,0,0,0,6619,6624,5,1557,0,0,6620,6621,5,1346,0,0, +6621,6625,3,1688,844,0,6622,6623,5,1773,0,0,6623,6625,3,1148,574,0,6624, +6620,1,0,0,0,6624,6622,1,0,0,0,6625,6626,1,0,0,0,6626,6627,5,2139,0,0,6627, +6628,3,548,274,0,6628,537,1,0,0,0,6629,6630,5,467,0,0,6630,6631,5,1346,0, +0,6631,6632,3,1688,844,0,6632,539,1,0,0,0,6633,6634,5,1715,0,0,6634,6635, +5,1346,0,0,6635,6636,3,546,273,0,6636,6637,5,82,0,0,6637,6638,5,2445,0,0, +6638,6643,3,2176,1088,0,6639,6640,5,2451,0,0,6640,6642,3,2176,1088,0,6641, +6639,1,0,0,0,6642,6645,1,0,0,0,6643,6641,1,0,0,0,6643,6644,1,0,0,0,6644, +6646,1,0,0,0,6645,6643,1,0,0,0,6646,6654,5,2446,0,0,6647,6648,5,777,0,0, +6648,6649,5,2445,0,0,6649,6650,3,542,271,0,6650,6651,5,2451,0,0,6651,6652, +3,542,271,0,6652,6653,5,2446,0,0,6653,6655,1,0,0,0,6654,6647,1,0,0,0,6654, +6655,1,0,0,0,6655,6657,1,0,0,0,6656,6658,3,926,463,0,6657,6656,1,0,0,0,6657, +6658,1,0,0,0,6658,541,1,0,0,0,6659,6677,5,1346,0,0,6660,6672,3,1688,844, +0,6661,6664,3,1194,597,0,6662,6664,3,1592,796,0,6663,6661,1,0,0,0,6663,6662, +1,0,0,0,6664,6665,1,0,0,0,6665,6663,1,0,0,0,6665,6666,1,0,0,0,6666,6673, +1,0,0,0,6667,6668,5,1333,0,0,6668,6669,5,2445,0,0,6669,6670,3,508,254,0, +6670,6671,5,2446,0,0,6671,6673,1,0,0,0,6672,6663,1,0,0,0,6672,6667,1,0,0, +0,6673,6675,1,0,0,0,6674,6676,5,2201,0,0,6675,6674,1,0,0,0,6675,6676,1,0, +0,0,6676,6678,1,0,0,0,6677,6660,1,0,0,0,6677,6678,1,0,0,0,6678,543,1,0,0, +0,6679,6680,5,978,0,0,6680,6681,5,1773,0,0,6681,6685,3,1148,574,0,6682,6686, +5,2201,0,0,6683,6686,3,1278,639,0,6684,6686,3,1280,640,0,6685,6682,1,0,0, +0,6685,6683,1,0,0,0,6685,6684,1,0,0,0,6686,545,1,0,0,0,6687,6688,3,1688, +844,0,6688,547,1,0,0,0,6689,6690,3,1688,844,0,6690,549,1,0,0,0,6691,6692, +3,2316,1158,0,6692,551,1,0,0,0,6693,6694,5,42,0,0,6694,6695,5,744,0,0,6695, +6696,5,792,0,0,6696,6700,5,647,0,0,6697,6698,3,2274,1137,0,6698,6699,5,2438, +0,0,6699,6701,1,0,0,0,6700,6697,1,0,0,0,6700,6701,1,0,0,0,6701,6702,1,0, +0,0,6702,6703,3,2392,1196,0,6703,6704,7,70,0,0,6704,6708,5,2445,0,0,6705, +6706,3,2274,1137,0,6706,6707,5,2438,0,0,6707,6709,1,0,0,0,6708,6705,1,0, +0,0,6708,6709,1,0,0,0,6709,6710,1,0,0,0,6710,6711,3,2392,1196,0,6711,6712, +5,2445,0,0,6712,6713,3,2392,1196,0,6713,6714,5,2446,0,0,6714,6715,5,2446, +0,0,6715,553,1,0,0,0,6716,6717,5,319,0,0,6717,6718,5,2235,0,0,6718,6722, +3,2342,1171,0,6719,6720,5,689,0,0,6720,6721,5,1202,0,0,6721,6723,5,543,0, +0,6722,6719,1,0,0,0,6722,6723,1,0,0,0,6723,6733,1,0,0,0,6724,6734,3,562, +281,0,6725,6734,3,564,282,0,6726,6734,3,566,283,0,6727,6734,3,568,284,0, +6728,6734,3,570,285,0,6729,6734,3,576,288,0,6730,6734,3,578,289,0,6731,6734, +3,580,290,0,6732,6734,3,764,382,0,6733,6724,1,0,0,0,6733,6725,1,0,0,0,6733, +6726,1,0,0,0,6733,6727,1,0,0,0,6733,6728,1,0,0,0,6733,6729,1,0,0,0,6733, +6730,1,0,0,0,6733,6731,1,0,0,0,6733,6732,1,0,0,0,6734,6735,1,0,0,0,6735, +6733,1,0,0,0,6735,6736,1,0,0,0,6736,555,1,0,0,0,6737,6738,5,42,0,0,6738, +6739,5,2235,0,0,6739,6751,3,2342,1171,0,6740,6752,3,560,280,0,6741,6752, +3,564,282,0,6742,6752,3,566,283,0,6743,6752,3,568,284,0,6744,6752,3,570, +285,0,6745,6752,3,574,287,0,6746,6752,3,576,288,0,6747,6752,3,578,289,0, +6748,6752,3,582,291,0,6749,6752,3,764,382,0,6750,6752,3,592,296,0,6751,6740, +1,0,0,0,6751,6741,1,0,0,0,6751,6742,1,0,0,0,6751,6743,1,0,0,0,6751,6744, +1,0,0,0,6751,6745,1,0,0,0,6751,6746,1,0,0,0,6751,6747,1,0,0,0,6751,6748, +1,0,0,0,6751,6749,1,0,0,0,6751,6750,1,0,0,0,6752,6753,1,0,0,0,6753,6751, +1,0,0,0,6753,6754,1,0,0,0,6754,6766,1,0,0,0,6755,6760,3,2342,1171,0,6756, +6757,5,2451,0,0,6757,6759,3,2342,1171,0,6758,6756,1,0,0,0,6759,6762,1,0, +0,0,6760,6758,1,0,0,0,6760,6761,1,0,0,0,6761,6763,1,0,0,0,6762,6760,1,0, +0,0,6763,6764,3,584,292,0,6764,6766,1,0,0,0,6765,6737,1,0,0,0,6765,6755, +1,0,0,0,6766,557,1,0,0,0,6767,6768,5,467,0,0,6768,6769,5,2235,0,0,6769,6772, +3,2342,1171,0,6770,6771,5,689,0,0,6771,6773,5,543,0,0,6772,6770,1,0,0,0, +6772,6773,1,0,0,0,6773,6775,1,0,0,0,6774,6776,5,179,0,0,6775,6774,1,0,0, +0,6775,6776,1,0,0,0,6776,559,1,0,0,0,6777,6780,3,562,281,0,6778,6779,5,1560, +0,0,6779,6781,3,2392,1196,0,6780,6778,1,0,0,0,6780,6781,1,0,0,0,6781,561, +1,0,0,0,6782,6783,5,683,0,0,6783,6784,5,160,0,0,6784,6785,3,2392,1196,0, +6785,563,1,0,0,0,6786,6787,5,683,0,0,6787,6790,7,71,0,0,6788,6789,5,69,0, +0,6789,6791,3,2388,1194,0,6790,6788,1,0,0,0,6790,6791,1,0,0,0,6791,565,1, +0,0,0,6792,6793,7,72,0,0,6793,6794,5,2078,0,0,6794,6795,3,2392,1196,0,6795, +567,1,0,0,0,6796,6799,5,1488,0,0,6797,6800,3,1170,585,0,6798,6800,5,2183, +0,0,6799,6797,1,0,0,0,6799,6798,1,0,0,0,6800,6801,1,0,0,0,6801,6802,5,1257, +0,0,6802,6803,3,2392,1196,0,6803,569,1,0,0,0,6804,6805,5,1461,0,0,6805,6806, +3,2392,1196,0,6806,571,1,0,0,0,6807,6812,3,2296,1148,0,6808,6809,5,2451, +0,0,6809,6811,3,2296,1148,0,6810,6808,1,0,0,0,6811,6814,1,0,0,0,6812,6810, +1,0,0,0,6812,6813,1,0,0,0,6813,6831,1,0,0,0,6814,6812,1,0,0,0,6815,6827, +5,38,0,0,6816,6817,5,532,0,0,6817,6822,3,2296,1148,0,6818,6819,5,2451,0, +0,6819,6821,3,2296,1148,0,6820,6818,1,0,0,0,6821,6824,1,0,0,0,6822,6820, +1,0,0,0,6822,6823,1,0,0,0,6823,6826,1,0,0,0,6824,6822,1,0,0,0,6825,6816, +1,0,0,0,6826,6829,1,0,0,0,6827,6825,1,0,0,0,6827,6828,1,0,0,0,6828,6831, +1,0,0,0,6829,6827,1,0,0,0,6830,6807,1,0,0,0,6830,6815,1,0,0,0,6831,573,1, +0,0,0,6832,6833,5,387,0,0,6833,6836,5,1591,0,0,6834,6837,5,1131,0,0,6835, +6837,3,572,286,0,6836,6834,1,0,0,0,6836,6835,1,0,0,0,6837,575,1,0,0,0,6838, +6839,5,1354,0,0,6839,6840,5,549,0,0,6840,577,1,0,0,0,6841,6842,5,7,0,0,6842, +6843,7,73,0,0,6843,579,1,0,0,0,6844,6845,5,497,0,0,6845,6846,5,483,0,0,6846, +581,1,0,0,0,6847,6857,3,580,290,0,6848,6849,5,618,0,0,6849,6854,3,2398,1199, +0,6850,6851,5,2451,0,0,6851,6853,3,2398,1199,0,6852,6850,1,0,0,0,6853,6856, +1,0,0,0,6854,6852,1,0,0,0,6854,6855,1,0,0,0,6855,6858,1,0,0,0,6856,6854, +1,0,0,0,6857,6848,1,0,0,0,6857,6858,1,0,0,0,6858,6860,1,0,0,0,6859,6861, +5,614,0,0,6860,6859,1,0,0,0,6860,6861,1,0,0,0,6861,583,1,0,0,0,6862,6863, +5,1587,0,0,6863,6864,5,278,0,0,6864,6868,5,2101,0,0,6865,6866,5,512,0,0, +6866,6869,5,2233,0,0,6867,6869,3,2342,1171,0,6868,6865,1,0,0,0,6868,6867, +1,0,0,0,6869,6902,1,0,0,0,6870,6871,5,645,0,0,6871,6872,5,278,0,0,6872,6899, +5,2101,0,0,6873,6874,5,512,0,0,6874,6900,5,2233,0,0,6875,6883,3,2342,1171, +0,6876,6881,5,2306,0,0,6877,6878,5,1135,0,0,6878,6882,5,1593,0,0,6879,6880, +5,1591,0,0,6880,6882,3,572,286,0,6881,6877,1,0,0,0,6881,6879,1,0,0,0,6882, +6884,1,0,0,0,6883,6876,1,0,0,0,6883,6884,1,0,0,0,6884,6887,1,0,0,0,6885, +6886,5,87,0,0,6886,6888,5,1562,0,0,6887,6885,1,0,0,0,6887,6888,1,0,0,0,6888, +6897,1,0,0,0,6889,6890,5,86,0,0,6890,6895,5,2244,0,0,6891,6896,5,1354,0, +0,6892,6896,5,187,0,0,6893,6894,5,444,0,0,6894,6896,5,995,0,0,6895,6891, +1,0,0,0,6895,6892,1,0,0,0,6895,6893,1,0,0,0,6896,6898,1,0,0,0,6897,6889, +1,0,0,0,6897,6898,1,0,0,0,6898,6900,1,0,0,0,6899,6873,1,0,0,0,6899,6875, +1,0,0,0,6900,6902,1,0,0,0,6901,6862,1,0,0,0,6901,6870,1,0,0,0,6902,585,1, +0,0,0,6903,6904,5,2445,0,0,6904,6909,3,2392,1196,0,6905,6906,5,2451,0,0, +6906,6908,3,2392,1196,0,6907,6905,1,0,0,0,6908,6911,1,0,0,0,6909,6907,1, +0,0,0,6909,6910,1,0,0,0,6910,6912,1,0,0,0,6911,6909,1,0,0,0,6912,6913,5, +2446,0,0,6913,587,1,0,0,0,6914,6915,5,1669,0,0,6915,6916,5,290,0,0,6916, +6920,5,2469,0,0,6917,6921,5,38,0,0,6918,6921,5,387,0,0,6919,6921,3,586,293, +0,6920,6917,1,0,0,0,6920,6918,1,0,0,0,6920,6919,1,0,0,0,6921,589,1,0,0,0, +6922,6923,7,70,0,0,6923,6924,5,290,0,0,6924,6925,5,2469,0,0,6925,6926,3, +586,293,0,6926,591,1,0,0,0,6927,6934,3,588,294,0,6928,6931,3,590,295,0,6929, +6930,5,618,0,0,6930,6932,3,2288,1144,0,6931,6929,1,0,0,0,6931,6932,1,0,0, +0,6932,6934,1,0,0,0,6933,6927,1,0,0,0,6933,6928,1,0,0,0,6934,593,1,0,0,0, +6935,6936,5,27,0,0,6936,6937,5,814,0,0,6937,6942,5,904,0,0,6938,6943,3,596, +298,0,6939,6943,3,618,309,0,6940,6943,3,648,324,0,6941,6943,3,658,329,0, +6942,6938,1,0,0,0,6942,6939,1,0,0,0,6942,6940,1,0,0,0,6942,6941,1,0,0,0, +6943,595,1,0,0,0,6944,6954,3,598,299,0,6945,6954,3,600,300,0,6946,6954,3, +604,302,0,6947,6954,3,606,303,0,6948,6954,3,608,304,0,6949,6954,3,610,305, +0,6950,6954,3,612,306,0,6951,6954,3,614,307,0,6952,6954,3,616,308,0,6953, +6944,1,0,0,0,6953,6945,1,0,0,0,6953,6946,1,0,0,0,6953,6947,1,0,0,0,6953, +6948,1,0,0,0,6953,6949,1,0,0,0,6953,6950,1,0,0,0,6953,6951,1,0,0,0,6953, +6952,1,0,0,0,6954,597,1,0,0,0,6955,6966,5,319,0,0,6956,6957,5,818,0,0,6957, +6967,5,2441,0,0,6958,6960,5,871,0,0,6959,6958,1,0,0,0,6959,6960,1,0,0,0, +6960,6961,1,0,0,0,6961,6962,5,94,0,0,6962,6963,5,818,0,0,6963,6964,5,626, +0,0,6964,6965,5,818,0,0,6965,6967,5,2441,0,0,6966,6956,1,0,0,0,6966,6959, +1,0,0,0,6967,6968,1,0,0,0,6968,6969,5,683,0,0,6969,6970,5,160,0,0,6970,6971, +3,664,332,0,6971,599,1,0,0,0,6972,6973,5,1669,0,0,6973,6974,5,818,0,0,6974, +6976,5,1262,0,0,6975,6977,3,602,301,0,6976,6975,1,0,0,0,6976,6977,1,0,0, +0,6977,6978,1,0,0,0,6978,6980,3,642,321,0,6979,6981,3,764,382,0,6980,6979, +1,0,0,0,6980,6981,1,0,0,0,6981,601,1,0,0,0,6982,6983,5,614,0,0,6983,6984, +5,818,0,0,6984,603,1,0,0,0,6985,6986,5,1669,0,0,6986,6987,5,818,0,0,6987, +6989,5,218,0,0,6988,6990,3,642,321,0,6989,6988,1,0,0,0,6989,6990,1,0,0,0, +6990,6992,1,0,0,0,6991,6993,3,764,382,0,6992,6991,1,0,0,0,6992,6993,1,0, +0,0,6993,605,1,0,0,0,6994,6995,5,102,0,0,6995,6998,5,818,0,0,6996,6997,5, +2244,0,0,6997,6999,5,2441,0,0,6998,6996,1,0,0,0,6998,6999,1,0,0,0,6999,7001, +1,0,0,0,7000,7002,3,602,301,0,7001,7000,1,0,0,0,7001,7002,1,0,0,0,7002,7003, +1,0,0,0,7003,7006,3,642,321,0,7004,7005,5,2139,0,0,7005,7007,5,2441,0,0, +7006,7004,1,0,0,0,7006,7007,1,0,0,0,7007,607,1,0,0,0,7008,7009,5,42,0,0, +7009,7010,5,818,0,0,7010,7012,5,1354,0,0,7011,7013,3,602,301,0,7012,7011, +1,0,0,0,7012,7013,1,0,0,0,7013,7014,1,0,0,0,7014,7015,5,683,0,0,7015,7016, +5,160,0,0,7016,7017,3,664,332,0,7017,7018,5,1669,0,0,7018,7020,3,664,332, +0,7019,7021,3,660,330,0,7020,7019,1,0,0,0,7020,7021,1,0,0,0,7021,609,1,0, +0,0,7022,7023,5,944,0,0,7023,7024,5,818,0,0,7024,7026,5,2441,0,0,7025,7027, +3,662,331,0,7026,7025,1,0,0,0,7026,7027,1,0,0,0,7027,7028,1,0,0,0,7028,7029, +5,49,0,0,7029,7030,5,818,0,0,7030,7032,5,2441,0,0,7031,7033,3,662,331,0, +7032,7031,1,0,0,0,7032,7033,1,0,0,0,7033,7034,1,0,0,0,7034,7035,5,777,0, +0,7035,7036,5,1019,0,0,7036,7037,5,818,0,0,7037,7038,5,2441,0,0,7038,7039, +3,662,331,0,7039,611,1,0,0,0,7040,7041,5,944,0,0,7041,7042,5,818,0,0,7042, +7044,5,2441,0,0,7043,7045,3,662,331,0,7044,7043,1,0,0,0,7044,7045,1,0,0, +0,7045,7046,1,0,0,0,7046,7047,5,777,0,0,7047,7048,5,542,0,0,7048,7049,5, +818,0,0,7049,7050,5,2441,0,0,7050,7052,3,662,331,0,7051,7053,3,660,330,0, +7052,7051,1,0,0,0,7052,7053,1,0,0,0,7053,613,1,0,0,0,7054,7056,5,614,0,0, +7055,7054,1,0,0,0,7055,7056,1,0,0,0,7056,7057,1,0,0,0,7057,7058,5,2385,0, +0,7058,7059,5,818,0,0,7059,7060,5,683,0,0,7060,7061,5,160,0,0,7061,7062, +3,664,332,0,7062,7063,5,626,0,0,7063,7064,5,2386,0,0,7064,7066,5,818,0,0, +7065,7067,3,602,301,0,7066,7065,1,0,0,0,7066,7067,1,0,0,0,7067,7068,1,0, +0,0,7068,7070,3,642,321,0,7069,7071,3,660,330,0,7070,7069,1,0,0,0,7070,7071, +1,0,0,0,7071,615,1,0,0,0,7072,7073,5,2387,0,0,7073,7074,5,818,0,0,7074,7075, +5,683,0,0,7075,7076,5,160,0,0,7076,7077,3,664,332,0,7077,7078,5,2306,0,0, +7078,7079,5,2386,0,0,7079,7081,5,818,0,0,7080,7082,3,602,301,0,7081,7080, +1,0,0,0,7081,7082,1,0,0,0,7082,7083,1,0,0,0,7083,7085,3,642,321,0,7084,7086, +3,660,330,0,7085,7084,1,0,0,0,7085,7086,1,0,0,0,7086,617,1,0,0,0,7087,7097, +3,620,310,0,7088,7097,3,622,311,0,7089,7097,3,628,314,0,7090,7097,3,630, +315,0,7091,7097,3,632,316,0,7092,7097,3,634,317,0,7093,7097,3,636,318,0, +7094,7097,3,638,319,0,7095,7097,3,640,320,0,7096,7087,1,0,0,0,7096,7088, +1,0,0,0,7096,7089,1,0,0,0,7096,7090,1,0,0,0,7096,7091,1,0,0,0,7096,7092, +1,0,0,0,7096,7093,1,0,0,0,7096,7094,1,0,0,0,7096,7095,1,0,0,0,7097,619,1, +0,0,0,7098,7100,5,1669,0,0,7099,7101,5,504,0,0,7100,7099,1,0,0,0,7100,7101, +1,0,0,0,7101,7102,1,0,0,0,7102,7109,5,814,0,0,7103,7104,3,624,312,0,7104, +7105,5,2466,0,0,7105,7107,1,0,0,0,7106,7103,1,0,0,0,7106,7107,1,0,0,0,7107, +7108,1,0,0,0,7108,7110,3,626,313,0,7109,7106,1,0,0,0,7109,7110,1,0,0,0,7110, +7112,1,0,0,0,7111,7113,3,646,323,0,7112,7111,1,0,0,0,7112,7113,1,0,0,0,7113, +7115,1,0,0,0,7114,7116,3,644,322,0,7115,7114,1,0,0,0,7115,7116,1,0,0,0,7116, +7118,1,0,0,0,7117,7119,3,602,301,0,7118,7117,1,0,0,0,7118,7119,1,0,0,0,7119, +7120,1,0,0,0,7120,7122,3,642,321,0,7121,7123,3,660,330,0,7122,7121,1,0,0, +0,7122,7123,1,0,0,0,7123,7125,1,0,0,0,7124,7126,3,764,382,0,7125,7124,1, +0,0,0,7125,7126,1,0,0,0,7126,621,1,0,0,0,7127,7129,5,319,0,0,7128,7130,5, +504,0,0,7129,7128,1,0,0,0,7129,7130,1,0,0,0,7130,7131,1,0,0,0,7131,7138, +5,814,0,0,7132,7133,3,624,312,0,7133,7134,5,2466,0,0,7134,7136,1,0,0,0,7135, +7132,1,0,0,0,7135,7136,1,0,0,0,7136,7137,1,0,0,0,7137,7139,3,626,313,0,7138, +7135,1,0,0,0,7138,7139,1,0,0,0,7139,7141,1,0,0,0,7140,7142,3,646,323,0,7141, +7140,1,0,0,0,7141,7142,1,0,0,0,7142,7144,1,0,0,0,7143,7145,3,644,322,0,7144, +7143,1,0,0,0,7144,7145,1,0,0,0,7145,7147,1,0,0,0,7146,7148,3,602,301,0,7147, +7146,1,0,0,0,7147,7148,1,0,0,0,7148,7149,1,0,0,0,7149,7151,3,642,321,0,7150, +7152,3,660,330,0,7151,7150,1,0,0,0,7151,7152,1,0,0,0,7152,7154,1,0,0,0,7153, +7155,3,764,382,0,7154,7153,1,0,0,0,7154,7155,1,0,0,0,7155,623,1,0,0,0,7156, +7157,5,2441,0,0,7157,625,1,0,0,0,7158,7159,5,2441,0,0,7159,627,1,0,0,0,7160, +7162,5,2239,0,0,7161,7163,5,504,0,0,7162,7161,1,0,0,0,7162,7163,1,0,0,0, +7163,7164,1,0,0,0,7164,7165,5,814,0,0,7165,7167,5,2441,0,0,7166,7168,3,646, +323,0,7167,7166,1,0,0,0,7167,7168,1,0,0,0,7168,7170,1,0,0,0,7169,7171,3, +602,301,0,7170,7169,1,0,0,0,7170,7171,1,0,0,0,7171,7172,1,0,0,0,7172,7174, +3,642,321,0,7173,7175,3,660,330,0,7174,7173,1,0,0,0,7174,7175,1,0,0,0,7175, +629,1,0,0,0,7176,7177,5,1669,0,0,7177,7178,5,2083,0,0,7178,7179,5,2441,0, +0,7179,7180,5,618,0,0,7180,7182,5,2441,0,0,7181,7183,3,602,301,0,7182,7181, +1,0,0,0,7182,7183,1,0,0,0,7183,7184,1,0,0,0,7184,7186,3,642,321,0,7185,7187, +3,660,330,0,7186,7185,1,0,0,0,7186,7187,1,0,0,0,7187,631,1,0,0,0,7188,7190, +5,552,0,0,7189,7191,5,504,0,0,7190,7189,1,0,0,0,7190,7191,1,0,0,0,7191,7192, +1,0,0,0,7192,7193,5,817,0,0,7193,7194,5,2306,0,0,7194,7195,5,1636,0,0,7195, +7196,3,668,334,0,7196,7197,5,2139,0,0,7197,7199,3,1452,726,0,7198,7200,3, +602,301,0,7199,7198,1,0,0,0,7199,7200,1,0,0,0,7200,7201,1,0,0,0,7201,7219, +3,642,321,0,7202,7203,5,2306,0,0,7203,7204,5,684,0,0,7204,7217,5,736,0,0, +7205,7210,5,2441,0,0,7206,7207,5,2451,0,0,7207,7209,5,2441,0,0,7208,7206, +1,0,0,0,7209,7212,1,0,0,0,7210,7208,1,0,0,0,7210,7211,1,0,0,0,7211,7218, +1,0,0,0,7212,7210,1,0,0,0,7213,7214,5,2445,0,0,7214,7215,3,1888,944,0,7215, +7216,5,2446,0,0,7216,7218,1,0,0,0,7217,7205,1,0,0,0,7217,7213,1,0,0,0,7218, +7220,1,0,0,0,7219,7202,1,0,0,0,7219,7220,1,0,0,0,7220,633,1,0,0,0,7221,7223, +5,698,0,0,7222,7224,5,504,0,0,7223,7222,1,0,0,0,7223,7224,1,0,0,0,7224,7225, +1,0,0,0,7225,7226,5,817,0,0,7226,7227,5,2306,0,0,7227,7228,5,1636,0,0,7228, +7229,3,668,334,0,7229,7230,5,626,0,0,7230,7232,3,1452,726,0,7231,7233,3, +602,301,0,7232,7231,1,0,0,0,7232,7233,1,0,0,0,7233,7234,1,0,0,0,7234,7236, +3,642,321,0,7235,7237,3,660,330,0,7236,7235,1,0,0,0,7236,7237,1,0,0,0,7237, +635,1,0,0,0,7238,7240,5,1669,0,0,7239,7241,5,504,0,0,7240,7239,1,0,0,0,7240, +7241,1,0,0,0,7241,7242,1,0,0,0,7242,7243,5,814,0,0,7243,7244,5,683,0,0,7244, +7245,5,160,0,0,7245,7247,3,668,334,0,7246,7248,3,602,301,0,7247,7246,1,0, +0,0,7247,7248,1,0,0,0,7248,7249,1,0,0,0,7249,7250,5,948,0,0,7250,7251,5, +2244,0,0,7251,7253,3,664,332,0,7252,7254,3,660,330,0,7253,7252,1,0,0,0,7253, +7254,1,0,0,0,7254,637,1,0,0,0,7255,7257,5,1669,0,0,7256,7258,5,504,0,0,7257, +7256,1,0,0,0,7257,7258,1,0,0,0,7258,7259,1,0,0,0,7259,7260,5,814,0,0,7260, +7261,5,683,0,0,7261,7262,5,160,0,0,7262,7264,3,668,334,0,7263,7265,3,602, +301,0,7264,7263,1,0,0,0,7264,7265,1,0,0,0,7265,7266,1,0,0,0,7266,7267,5, +1586,0,0,7267,7268,5,948,0,0,7268,7269,5,2244,0,0,7269,7270,3,668,334,0, +7270,639,1,0,0,0,7271,7273,5,990,0,0,7272,7274,5,504,0,0,7273,7272,1,0,0, +0,7273,7274,1,0,0,0,7274,7275,1,0,0,0,7275,7276,5,817,0,0,7276,7277,5,2139, +0,0,7277,7278,5,1019,0,0,7278,7279,5,818,0,0,7279,7280,5,2441,0,0,7280,7281, +5,683,0,0,7281,7282,5,160,0,0,7282,7283,3,664,332,0,7283,7285,5,626,0,0, +7284,7286,5,614,0,0,7285,7284,1,0,0,0,7285,7286,1,0,0,0,7286,7287,1,0,0, +0,7287,7288,5,818,0,0,7288,7289,5,683,0,0,7289,7290,5,160,0,0,7290,7305, +3,664,332,0,7291,7292,5,2306,0,0,7292,7293,5,684,0,0,7293,7303,5,736,0,0, +7294,7299,5,2441,0,0,7295,7296,5,2451,0,0,7296,7298,5,2441,0,0,7297,7295, +1,0,0,0,7298,7301,1,0,0,0,7299,7297,1,0,0,0,7299,7300,1,0,0,0,7300,7304, +1,0,0,0,7301,7299,1,0,0,0,7302,7304,3,1888,944,0,7303,7294,1,0,0,0,7303, +7302,1,0,0,0,7304,7306,1,0,0,0,7305,7291,1,0,0,0,7305,7306,1,0,0,0,7306, +7308,1,0,0,0,7307,7309,3,660,330,0,7308,7307,1,0,0,0,7308,7309,1,0,0,0,7309, +641,1,0,0,0,7310,7311,5,683,0,0,7311,7315,5,160,0,0,7312,7313,5,558,0,0, +7313,7316,5,1761,0,0,7314,7316,3,664,332,0,7315,7312,1,0,0,0,7315,7314,1, +0,0,0,7316,643,1,0,0,0,7317,7318,5,2244,0,0,7318,7319,5,2388,0,0,7319,7320, +5,2441,0,0,7320,645,1,0,0,0,7321,7322,5,2244,0,0,7322,7323,5,2083,0,0,7323, +7324,5,2441,0,0,7324,647,1,0,0,0,7325,7330,3,650,325,0,7326,7330,3,652,326, +0,7327,7330,3,654,327,0,7328,7330,3,656,328,0,7329,7325,1,0,0,0,7329,7326, +1,0,0,0,7329,7327,1,0,0,0,7329,7328,1,0,0,0,7330,649,1,0,0,0,7331,7332,7, +74,0,0,7332,7333,5,1636,0,0,7333,7334,5,2441,0,0,7334,7335,5,618,0,0,7335, +7336,5,214,0,0,7336,7338,5,2441,0,0,7337,7339,3,646,323,0,7338,7337,1,0, +0,0,7338,7339,1,0,0,0,7339,7341,1,0,0,0,7340,7342,3,602,301,0,7341,7340, +1,0,0,0,7341,7342,1,0,0,0,7342,7344,1,0,0,0,7343,7345,3,642,321,0,7344,7343, +1,0,0,0,7344,7345,1,0,0,0,7345,7347,1,0,0,0,7346,7348,3,660,330,0,7347,7346, +1,0,0,0,7347,7348,1,0,0,0,7348,651,1,0,0,0,7349,7350,5,401,0,0,7350,7351, +5,1636,0,0,7351,7352,5,618,0,0,7352,7353,5,214,0,0,7353,7355,5,2441,0,0, +7354,7356,3,602,301,0,7355,7354,1,0,0,0,7355,7356,1,0,0,0,7356,7357,1,0, +0,0,7357,7359,3,642,321,0,7358,7360,3,660,330,0,7359,7358,1,0,0,0,7359,7360, +1,0,0,0,7360,653,1,0,0,0,7361,7362,7,74,0,0,7362,7363,5,1636,0,0,7363,7364, +5,2441,0,0,7364,7365,5,618,0,0,7365,7366,5,214,0,0,7366,7368,5,2441,0,0, +7367,7369,3,646,323,0,7368,7367,1,0,0,0,7368,7369,1,0,0,0,7369,7370,1,0, +0,0,7370,7372,5,2139,0,0,7371,7373,5,871,0,0,7372,7371,1,0,0,0,7372,7373, +1,0,0,0,7373,7374,1,0,0,0,7374,7375,5,94,0,0,7375,7376,5,818,0,0,7376,7377, +3,786,393,0,7377,655,1,0,0,0,7378,7379,5,401,0,0,7379,7380,5,1636,0,0,7380, +7381,5,2441,0,0,7381,7382,5,2458,0,0,7382,7383,5,618,0,0,7383,7384,5,214, +0,0,7384,7385,5,2441,0,0,7385,7387,5,626,0,0,7386,7388,5,871,0,0,7387,7386, +1,0,0,0,7387,7388,1,0,0,0,7388,7389,1,0,0,0,7389,7390,5,94,0,0,7390,7391, +5,818,0,0,7391,7392,3,786,393,0,7392,657,1,0,0,0,7393,7395,5,1790,0,0,7394, +7396,5,2139,0,0,7395,7394,1,0,0,0,7395,7396,1,0,0,0,7396,7397,1,0,0,0,7397, +7398,5,847,0,0,7398,7399,3,666,333,0,7399,7400,5,618,0,0,7400,7401,5,38, +0,0,7401,7402,5,288,0,0,7402,659,1,0,0,0,7403,7404,5,2306,0,0,7404,7407, +5,102,0,0,7405,7406,5,2244,0,0,7406,7408,5,2441,0,0,7407,7405,1,0,0,0,7407, +7408,1,0,0,0,7408,661,1,0,0,0,7409,7410,5,683,0,0,7410,7411,5,160,0,0,7411, +7412,3,664,332,0,7412,663,1,0,0,0,7413,7414,5,2442,0,0,7414,665,1,0,0,0, +7415,7416,5,2441,0,0,7416,667,1,0,0,0,7417,7418,5,2442,0,0,7418,669,1,0, +0,0,7419,7424,5,46,0,0,7420,7421,5,2081,0,0,7421,7425,3,2330,1165,0,7422, +7423,5,715,0,0,7423,7425,3,2316,1158,0,7424,7420,1,0,0,0,7424,7422,1,0,0, +0,7425,7427,1,0,0,0,7426,7428,3,672,336,0,7427,7426,1,0,0,0,7427,7428,1, +0,0,0,7428,7433,1,0,0,0,7429,7430,5,46,0,0,7430,7431,5,220,0,0,7431,7433, +3,464,232,0,7432,7419,1,0,0,0,7432,7429,1,0,0,0,7433,7460,1,0,0,0,7434,7461, +3,674,337,0,7435,7461,3,676,338,0,7436,7438,5,525,0,0,7437,7439,5,1947,0, +0,7438,7437,1,0,0,0,7438,7439,1,0,0,0,7439,7440,1,0,0,0,7440,7442,5,1744, +0,0,7441,7443,3,678,339,0,7442,7441,1,0,0,0,7442,7443,1,0,0,0,7443,7447, +1,0,0,0,7444,7445,5,1612,0,0,7445,7446,5,2439,0,0,7446,7448,7,75,0,0,7447, +7444,1,0,0,0,7447,7448,1,0,0,0,7448,7461,1,0,0,0,7449,7450,5,860,0,0,7450, +7451,5,189,0,0,7451,7453,5,1605,0,0,7452,7454,3,682,341,0,7453,7452,1,0, +0,0,7453,7454,1,0,0,0,7454,7461,1,0,0,0,7455,7457,5,401,0,0,7456,7458,5, +1947,0,0,7457,7456,1,0,0,0,7457,7458,1,0,0,0,7458,7459,1,0,0,0,7459,7461, +5,1744,0,0,7460,7434,1,0,0,0,7460,7435,1,0,0,0,7460,7436,1,0,0,0,7460,7449, +1,0,0,0,7460,7455,1,0,0,0,7461,671,1,0,0,0,7462,7479,5,1346,0,0,7463,7464, +5,2445,0,0,7464,7465,3,1688,844,0,7465,7466,5,2446,0,0,7466,7480,1,0,0,0, +7467,7468,5,618,0,0,7468,7469,5,2445,0,0,7469,7474,3,684,342,0,7470,7471, +5,2451,0,0,7471,7473,3,684,342,0,7472,7470,1,0,0,0,7473,7476,1,0,0,0,7474, +7472,1,0,0,0,7474,7475,1,0,0,0,7475,7477,1,0,0,0,7476,7474,1,0,0,0,7477, +7478,5,2446,0,0,7478,7480,1,0,0,0,7479,7463,1,0,0,0,7479,7467,1,0,0,0,7480, +7501,1,0,0,0,7481,7498,5,1773,0,0,7482,7483,5,2445,0,0,7483,7484,3,1148, +574,0,7484,7485,5,2446,0,0,7485,7499,1,0,0,0,7486,7487,5,618,0,0,7487,7488, +5,2445,0,0,7488,7493,3,686,343,0,7489,7490,5,2451,0,0,7490,7492,3,686,343, +0,7491,7489,1,0,0,0,7492,7495,1,0,0,0,7493,7491,1,0,0,0,7493,7494,1,0,0, +0,7494,7496,1,0,0,0,7495,7493,1,0,0,0,7496,7497,5,2446,0,0,7497,7499,1,0, +0,0,7498,7482,1,0,0,0,7498,7486,1,0,0,0,7499,7501,1,0,0,0,7500,7462,1,0, +0,0,7500,7481,1,0,0,0,7501,673,1,0,0,0,7502,7503,5,2251,0,0,7503,7504,5, +1528,0,0,7504,7509,5,2205,0,0,7505,7506,5,1669,0,0,7506,7507,5,347,0,0,7507, +7508,5,2139,0,0,7508,7510,5,1226,0,0,7509,7505,1,0,0,0,7509,7510,1,0,0,0, +7510,7532,1,0,0,0,7511,7512,5,2251,0,0,7512,7523,5,1769,0,0,7513,7514,5, +179,0,0,7514,7524,5,576,0,0,7515,7517,5,179,0,0,7516,7518,3,680,340,0,7517, +7516,1,0,0,0,7517,7518,1,0,0,0,7518,7520,1,0,0,0,7519,7521,3,2262,1131,0, +7520,7519,1,0,0,0,7520,7521,1,0,0,0,7521,7524,1,0,0,0,7522,7524,5,179,0, +0,7523,7513,1,0,0,0,7523,7515,1,0,0,0,7523,7522,1,0,0,0,7523,7524,1,0,0, +0,7524,7526,1,0,0,0,7525,7527,3,680,340,0,7526,7525,1,0,0,0,7526,7527,1, +0,0,0,7527,7529,1,0,0,0,7528,7530,3,2262,1131,0,7529,7528,1,0,0,0,7529,7530, +1,0,0,0,7530,7532,1,0,0,0,7531,7502,1,0,0,0,7531,7511,1,0,0,0,7532,675,1, +0,0,0,7533,7535,5,260,0,0,7534,7536,5,1947,0,0,7535,7534,1,0,0,0,7535,7536, +1,0,0,0,7536,7537,1,0,0,0,7537,7539,5,1744,0,0,7538,7540,3,678,339,0,7539, +7538,1,0,0,0,7539,7540,1,0,0,0,7540,677,1,0,0,0,7541,7589,5,618,0,0,7542, +7546,5,2081,0,0,7543,7545,3,678,339,0,7544,7543,1,0,0,0,7545,7548,1,0,0, +0,7546,7544,1,0,0,0,7546,7547,1,0,0,0,7547,7590,1,0,0,0,7548,7546,1,0,0, +0,7549,7568,5,38,0,0,7550,7552,5,711,0,0,7551,7550,1,0,0,0,7551,7552,1,0, +0,0,7552,7553,1,0,0,0,7553,7556,5,238,0,0,7554,7555,5,1697,0,0,7555,7557, +5,2439,0,0,7556,7554,1,0,0,0,7556,7557,1,0,0,0,7557,7561,1,0,0,0,7558,7560, +3,678,339,0,7559,7558,1,0,0,0,7560,7563,1,0,0,0,7561,7559,1,0,0,0,7561,7562, +1,0,0,0,7562,7569,1,0,0,0,7563,7561,1,0,0,0,7564,7566,5,871,0,0,7565,7564, +1,0,0,0,7565,7566,1,0,0,0,7566,7567,1,0,0,0,7567,7569,5,712,0,0,7568,7551, +1,0,0,0,7568,7565,1,0,0,0,7569,7590,1,0,0,0,7570,7573,5,238,0,0,7571,7572, +5,1697,0,0,7572,7574,5,2439,0,0,7573,7571,1,0,0,0,7573,7574,1,0,0,0,7574, +7579,1,0,0,0,7575,7576,3,2328,1164,0,7576,7577,5,1697,0,0,7577,7578,5,2439, +0,0,7578,7580,1,0,0,0,7579,7575,1,0,0,0,7580,7581,1,0,0,0,7581,7579,1,0, +0,0,7581,7582,1,0,0,0,7582,7586,1,0,0,0,7583,7585,3,678,339,0,7584,7583, +1,0,0,0,7585,7588,1,0,0,0,7586,7584,1,0,0,0,7586,7587,1,0,0,0,7587,7590, +1,0,0,0,7588,7586,1,0,0,0,7589,7542,1,0,0,0,7589,7549,1,0,0,0,7589,7570, +1,0,0,0,7590,679,1,0,0,0,7591,7592,7,76,0,0,7592,681,1,0,0,0,7593,7595,5, +777,0,0,7594,7596,3,2330,1165,0,7595,7594,1,0,0,0,7595,7596,1,0,0,0,7596, +683,1,0,0,0,7597,7601,3,2176,1088,0,7598,7599,5,2106,0,0,7599,7601,3,2388, +1194,0,7600,7597,1,0,0,0,7600,7598,1,0,0,0,7601,685,1,0,0,0,7602,7606,3, +2176,1088,0,7603,7604,5,2106,0,0,7604,7606,3,2388,1194,0,7605,7602,1,0,0, +0,7605,7603,1,0,0,0,7606,687,1,0,0,0,7607,7608,5,77,0,0,7608,7609,5,1744, +0,0,7609,7612,5,2306,0,0,7610,7613,3,690,345,0,7611,7613,3,692,346,0,7612, +7610,1,0,0,0,7612,7611,1,0,0,0,7613,7615,1,0,0,0,7614,7616,3,712,356,0,7615, +7614,1,0,0,0,7615,7616,1,0,0,0,7616,689,1,0,0,0,7617,7618,5,238,0,0,7618, +7619,3,2330,1165,0,7619,7620,5,2438,0,0,7620,7628,3,2328,1164,0,7621,7622, +5,2451,0,0,7622,7623,3,2330,1165,0,7623,7624,5,2438,0,0,7624,7625,3,2328, +1164,0,7625,7627,1,0,0,0,7626,7621,1,0,0,0,7627,7630,1,0,0,0,7628,7626,1, +0,0,0,7628,7629,1,0,0,0,7629,7631,1,0,0,0,7630,7628,1,0,0,0,7631,7632,3, +696,348,0,7632,691,1,0,0,0,7633,7634,5,631,0,0,7634,7639,3,2308,1154,0,7635, +7636,5,2451,0,0,7636,7638,3,2308,1154,0,7637,7635,1,0,0,0,7638,7641,1,0, +0,0,7639,7637,1,0,0,0,7639,7640,1,0,0,0,7640,7679,1,0,0,0,7641,7639,1,0, +0,0,7642,7643,5,1328,0,0,7643,7648,3,2278,1139,0,7644,7645,5,2451,0,0,7645, +7647,3,2278,1139,0,7646,7644,1,0,0,0,7647,7650,1,0,0,0,7648,7646,1,0,0,0, +7648,7649,1,0,0,0,7649,7679,1,0,0,0,7650,7648,1,0,0,0,7651,7652,5,2163,0, +0,7652,7657,3,2302,1151,0,7653,7654,5,2451,0,0,7654,7656,3,2302,1151,0,7655, +7653,1,0,0,0,7656,7659,1,0,0,0,7657,7655,1,0,0,0,7657,7658,1,0,0,0,7658, +7679,1,0,0,0,7659,7657,1,0,0,0,7660,7661,5,712,0,0,7661,7666,3,2316,1158, +0,7662,7663,5,2451,0,0,7663,7665,3,2316,1158,0,7664,7662,1,0,0,0,7665,7668, +1,0,0,0,7666,7664,1,0,0,0,7666,7667,1,0,0,0,7667,7679,1,0,0,0,7668,7666, +1,0,0,0,7669,7670,5,730,0,0,7670,7675,3,694,347,0,7671,7672,5,2451,0,0,7672, +7674,3,694,347,0,7673,7671,1,0,0,0,7674,7677,1,0,0,0,7675,7673,1,0,0,0,7675, +7676,1,0,0,0,7676,7679,1,0,0,0,7677,7675,1,0,0,0,7678,7633,1,0,0,0,7678, +7642,1,0,0,0,7678,7651,1,0,0,0,7678,7660,1,0,0,0,7678,7669,1,0,0,0,7679, +7691,1,0,0,0,7680,7692,3,696,348,0,7681,7684,3,700,350,0,7682,7683,5,2451, +0,0,7683,7685,3,708,354,0,7684,7682,1,0,0,0,7684,7685,1,0,0,0,7685,7692, +1,0,0,0,7686,7689,3,708,354,0,7687,7688,5,2451,0,0,7688,7690,3,700,350,0, +7689,7687,1,0,0,0,7689,7690,1,0,0,0,7690,7692,1,0,0,0,7691,7680,1,0,0,0, +7691,7681,1,0,0,0,7691,7686,1,0,0,0,7692,693,1,0,0,0,7693,7694,3,2392,1196, +0,7694,695,1,0,0,0,7695,7698,5,2244,0,0,7696,7699,3,698,349,0,7697,7699, +5,1226,0,0,7698,7696,1,0,0,0,7698,7697,1,0,0,0,7699,697,1,0,0,0,7700,7701, +3,2398,1199,0,7701,699,1,0,0,0,7702,7703,5,387,0,0,7703,7704,5,309,0,0,7704, +7705,5,2445,0,0,7705,7706,3,702,351,0,7706,7707,5,2451,0,0,7707,7708,3,704, +352,0,7708,7709,5,2451,0,0,7709,7710,3,706,353,0,7710,7711,5,2446,0,0,7711, +701,1,0,0,0,7712,7713,5,2439,0,0,7713,703,1,0,0,0,7714,7715,5,2439,0,0,7715, +705,1,0,0,0,7716,7717,5,2439,0,0,7717,707,1,0,0,0,7718,7719,5,387,0,0,7719, +7720,5,1644,0,0,7720,7721,3,710,355,0,7721,709,1,0,0,0,7722,7723,5,2439, +0,0,7723,711,1,0,0,0,7724,7725,5,2306,0,0,7725,7726,7,77,0,0,7726,7727,5, +902,0,0,7727,7728,5,1760,0,0,7728,7729,5,2079,0,0,7729,713,1,0,0,0,7730, +7731,4,357,0,0,7731,7775,5,85,0,0,7732,7733,5,1410,0,0,7733,7743,3,716,358, +0,7734,7735,7,78,0,0,7735,7740,3,728,364,0,7736,7737,5,2451,0,0,7737,7739, +3,728,364,0,7738,7736,1,0,0,0,7739,7742,1,0,0,0,7740,7738,1,0,0,0,7740,7741, +1,0,0,0,7741,7744,1,0,0,0,7742,7740,1,0,0,0,7743,7734,1,0,0,0,7743,7744, +1,0,0,0,7744,7750,1,0,0,0,7745,7747,5,2297,0,0,7746,7748,5,1202,0,0,7747, +7746,1,0,0,0,7747,7748,1,0,0,0,7748,7749,1,0,0,0,7749,7751,5,1784,0,0,7750, +7745,1,0,0,0,7750,7751,1,0,0,0,7751,7776,1,0,0,0,7752,7753,5,294,0,0,7753, +7754,5,996,0,0,7754,7755,3,1010,505,0,7755,7756,5,84,0,0,7756,7761,3,2268, +1134,0,7757,7758,5,2451,0,0,7758,7760,3,2268,1134,0,7759,7757,1,0,0,0,7760, +7763,1,0,0,0,7761,7759,1,0,0,0,7761,7762,1,0,0,0,7762,7773,1,0,0,0,7763, +7761,1,0,0,0,7764,7765,5,160,0,0,7765,7770,3,728,364,0,7766,7767,5,2451, +0,0,7767,7769,3,728,364,0,7768,7766,1,0,0,0,7769,7772,1,0,0,0,7770,7768, +1,0,0,0,7770,7771,1,0,0,0,7771,7774,1,0,0,0,7772,7770,1,0,0,0,7773,7764, +1,0,0,0,7773,7774,1,0,0,0,7774,7776,1,0,0,0,7775,7732,1,0,0,0,7775,7752, +1,0,0,0,7776,715,1,0,0,0,7777,7778,3,2390,1195,0,7778,717,1,0,0,0,7779,7790, +5,85,0,0,7780,7785,3,724,362,0,7781,7786,3,726,363,0,7782,7783,5,736,0,0, +7783,7784,5,1665,0,0,7784,7786,5,334,0,0,7785,7781,1,0,0,0,7785,7782,1,0, +0,0,7785,7786,1,0,0,0,7786,7791,1,0,0,0,7787,7791,3,730,365,0,7788,7791, +5,1017,0,0,7789,7791,3,720,360,0,7790,7780,1,0,0,0,7790,7787,1,0,0,0,7790, +7788,1,0,0,0,7790,7789,1,0,0,0,7791,7794,1,0,0,0,7792,7793,5,160,0,0,7793, +7795,7,79,0,0,7794,7792,1,0,0,0,7794,7795,1,0,0,0,7795,7801,1,0,0,0,7796, +7798,5,2297,0,0,7797,7799,5,1202,0,0,7798,7797,1,0,0,0,7798,7799,1,0,0,0, +7799,7800,1,0,0,0,7800,7802,5,1784,0,0,7801,7796,1,0,0,0,7801,7802,1,0,0, +0,7802,7804,1,0,0,0,7803,7805,3,722,361,0,7804,7803,1,0,0,0,7804,7805,1, +0,0,0,7805,719,1,0,0,0,7806,7807,4,360,1,0,7807,7808,5,425,0,0,7808,7809, +3,726,363,0,7809,721,1,0,0,0,7810,7811,4,361,2,0,7811,7812,5,287,0,0,7812, +7813,5,2469,0,0,7813,7814,7,80,0,0,7814,723,1,0,0,0,7815,7821,3,742,371, +0,7816,7818,5,38,0,0,7817,7819,5,1740,0,0,7818,7817,1,0,0,0,7818,7819,1, +0,0,0,7819,7821,1,0,0,0,7820,7815,1,0,0,0,7820,7816,1,0,0,0,7821,7832,1, +0,0,0,7822,7828,5,2451,0,0,7823,7829,3,742,371,0,7824,7826,5,38,0,0,7825, +7827,5,1740,0,0,7826,7825,1,0,0,0,7826,7827,1,0,0,0,7827,7829,1,0,0,0,7828, +7823,1,0,0,0,7828,7824,1,0,0,0,7829,7831,1,0,0,0,7830,7822,1,0,0,0,7831, +7834,1,0,0,0,7832,7830,1,0,0,0,7832,7833,1,0,0,0,7833,7852,1,0,0,0,7834, +7832,1,0,0,0,7835,7839,3,2380,1190,0,7836,7837,5,38,0,0,7837,7839,5,1457, +0,0,7838,7835,1,0,0,0,7838,7836,1,0,0,0,7839,7848,1,0,0,0,7840,7844,5,2451, +0,0,7841,7845,3,2380,1190,0,7842,7843,5,38,0,0,7843,7845,5,1457,0,0,7844, +7841,1,0,0,0,7844,7842,1,0,0,0,7845,7847,1,0,0,0,7846,7840,1,0,0,0,7847, +7850,1,0,0,0,7848,7846,1,0,0,0,7848,7849,1,0,0,0,7849,7852,1,0,0,0,7850, +7848,1,0,0,0,7851,7820,1,0,0,0,7851,7838,1,0,0,0,7852,725,1,0,0,0,7853,7854, +5,160,0,0,7854,7859,3,728,364,0,7855,7856,5,2451,0,0,7856,7858,3,728,364, +0,7857,7855,1,0,0,0,7858,7861,1,0,0,0,7859,7857,1,0,0,0,7859,7860,1,0,0, +0,7860,727,1,0,0,0,7861,7859,1,0,0,0,7862,7863,3,2398,1199,0,7863,729,1, +0,0,0,7864,7869,3,732,366,0,7865,7866,5,2451,0,0,7866,7868,3,732,366,0,7867, +7865,1,0,0,0,7868,7871,1,0,0,0,7869,7867,1,0,0,0,7869,7870,1,0,0,0,7870, +7874,1,0,0,0,7871,7869,1,0,0,0,7872,7874,5,38,0,0,7873,7864,1,0,0,0,7873, +7872,1,0,0,0,7874,7875,1,0,0,0,7875,7876,3,734,367,0,7876,731,1,0,0,0,7877, +7878,7,56,0,0,7878,733,1,0,0,0,7879,7892,5,1257,0,0,7880,7893,3,738,369, +0,7881,7882,5,424,0,0,7882,7893,3,2398,1199,0,7883,7884,5,953,0,0,7884,7885, +5,969,0,0,7885,7893,3,736,368,0,7886,7887,4,367,3,0,7887,7888,5,1720,0,0, +7888,7889,5,2152,0,0,7889,7890,5,1461,0,0,7890,7893,3,740,370,0,7891,7893, +5,387,0,0,7892,7880,1,0,0,0,7892,7881,1,0,0,0,7892,7883,1,0,0,0,7892,7886, +1,0,0,0,7892,7891,1,0,0,0,7893,735,1,0,0,0,7894,7895,3,2392,1196,0,7895, +7896,5,2438,0,0,7896,7898,1,0,0,0,7897,7894,1,0,0,0,7897,7898,1,0,0,0,7898, +7899,1,0,0,0,7899,7900,3,2392,1196,0,7900,737,1,0,0,0,7901,7902,3,2392,1196, +0,7902,7903,5,2438,0,0,7903,7905,1,0,0,0,7904,7901,1,0,0,0,7904,7905,1,0, +0,0,7905,7906,1,0,0,0,7906,7907,3,2392,1196,0,7907,739,1,0,0,0,7908,7909, +3,2392,1196,0,7909,7910,5,2438,0,0,7910,7912,1,0,0,0,7911,7908,1,0,0,0,7911, +7912,1,0,0,0,7912,7913,1,0,0,0,7913,7914,3,2392,1196,0,7914,741,1,0,0,0, +7915,7916,5,42,0,0,7916,7986,5,1947,0,0,7917,7986,5,220,0,0,7918,7986,5, +294,0,0,7919,7920,5,348,0,0,7920,7986,5,859,0,0,7921,7986,5,420,0,0,7922, +7986,5,424,0,0,7923,7986,5,715,0,0,7924,7925,5,917,0,0,7925,7986,5,2284, +0,0,7926,7927,5,1202,0,0,7927,7986,5,543,0,0,7928,7986,5,1313,0,0,7929,7930, +4,371,4,0,7930,7931,5,1407,0,0,7931,7986,5,348,0,0,7932,7986,5,1459,0,0, +7933,7986,5,1461,0,0,7934,7935,5,1471,0,0,7935,7936,5,348,0,0,7936,7986, +5,859,0,0,7937,7938,5,1471,0,0,7938,7986,5,1794,0,0,7939,7986,5,1591,0,0, +7940,7941,5,1594,0,0,7941,7986,5,1643,0,0,7942,7986,5,1651,0,0,7943,7986, +5,1665,0,0,7944,7986,5,1794,0,0,7945,7946,5,1947,0,0,7946,7986,5,85,0,0, +7947,7948,5,1947,0,0,7948,7986,5,645,0,0,7949,7986,5,2081,0,0,7950,7986, +5,2078,0,0,7951,7986,5,2155,0,0,7952,7986,5,2164,0,0,7953,7986,5,2235,0, +0,7954,7986,5,2284,0,0,7955,7956,5,42,0,0,7956,7986,5,1651,0,0,7957,7958, +5,42,0,0,7958,7986,5,2081,0,0,7959,7960,5,241,0,0,7960,7986,5,2081,0,0,7961, +7962,5,401,0,0,7962,7986,5,2081,0,0,7963,7964,5,540,0,0,7964,7986,5,1459, +0,0,7965,7966,5,645,0,0,7966,7986,5,424,0,0,7967,7968,5,645,0,0,7968,7986, +5,1459,0,0,7969,7970,5,645,0,0,7970,7986,5,1651,0,0,7971,7972,5,645,0,0, +7972,7986,5,2081,0,0,7973,7974,5,645,0,0,7974,7986,5,2164,0,0,7975,7976, +5,754,0,0,7976,7986,5,2081,0,0,7977,7978,5,879,0,0,7978,7986,5,2081,0,0, +7979,7980,5,1645,0,0,7980,7986,5,1651,0,0,7981,7982,5,1645,0,0,7982,7986, +5,2081,0,0,7983,7984,5,2205,0,0,7984,7986,5,2081,0,0,7985,7915,1,0,0,0,7985, +7917,1,0,0,0,7985,7918,1,0,0,0,7985,7919,1,0,0,0,7985,7921,1,0,0,0,7985, +7922,1,0,0,0,7985,7923,1,0,0,0,7985,7924,1,0,0,0,7985,7926,1,0,0,0,7985, +7928,1,0,0,0,7985,7929,1,0,0,0,7985,7932,1,0,0,0,7985,7933,1,0,0,0,7985, +7934,1,0,0,0,7985,7937,1,0,0,0,7985,7939,1,0,0,0,7985,7940,1,0,0,0,7985, +7942,1,0,0,0,7985,7943,1,0,0,0,7985,7944,1,0,0,0,7985,7945,1,0,0,0,7985, +7947,1,0,0,0,7985,7949,1,0,0,0,7985,7950,1,0,0,0,7985,7951,1,0,0,0,7985, +7952,1,0,0,0,7985,7953,1,0,0,0,7985,7954,1,0,0,0,7985,7955,1,0,0,0,7985, +7957,1,0,0,0,7985,7959,1,0,0,0,7985,7961,1,0,0,0,7985,7963,1,0,0,0,7985, +7965,1,0,0,0,7985,7967,1,0,0,0,7985,7969,1,0,0,0,7985,7971,1,0,0,0,7985, +7973,1,0,0,0,7985,7975,1,0,0,0,7985,7977,1,0,0,0,7985,7979,1,0,0,0,7985, +7981,1,0,0,0,7985,7983,1,0,0,0,7986,743,1,0,0,0,7987,7988,5,467,0,0,7988, +7989,5,715,0,0,7989,7992,3,2316,1158,0,7990,7991,5,689,0,0,7991,7993,5,543, +0,0,7992,7990,1,0,0,0,7992,7993,1,0,0,0,7993,745,1,0,0,0,7994,7995,5,434, +0,0,7995,7996,5,1744,0,0,7996,8116,5,626,0,0,7997,8001,5,238,0,0,7998,7999, +3,2274,1137,0,7999,8000,5,2438,0,0,8000,8002,1,0,0,0,8001,7998,1,0,0,0,8001, +8002,1,0,0,0,8002,8003,1,0,0,0,8003,8004,3,2392,1196,0,8004,8005,5,2438, +0,0,8005,8018,3,2392,1196,0,8006,8010,5,2451,0,0,8007,8008,3,2274,1137,0, +8008,8009,5,2438,0,0,8009,8011,1,0,0,0,8010,8007,1,0,0,0,8010,8011,1,0,0, +0,8011,8012,1,0,0,0,8012,8013,3,2392,1196,0,8013,8014,5,2438,0,0,8014,8015, +3,2392,1196,0,8015,8017,1,0,0,0,8016,8006,1,0,0,0,8017,8020,1,0,0,0,8018, +8016,1,0,0,0,8018,8019,1,0,0,0,8019,8117,1,0,0,0,8020,8018,1,0,0,0,8021, +8025,5,631,0,0,8022,8023,3,2274,1137,0,8023,8024,5,2438,0,0,8024,8026,1, +0,0,0,8025,8022,1,0,0,0,8025,8026,1,0,0,0,8026,8027,1,0,0,0,8027,8037,3, +2392,1196,0,8028,8032,5,2451,0,0,8029,8030,3,2274,1137,0,8030,8031,5,2438, +0,0,8031,8033,1,0,0,0,8032,8029,1,0,0,0,8032,8033,1,0,0,0,8033,8034,1,0, +0,0,8034,8036,3,2392,1196,0,8035,8028,1,0,0,0,8036,8039,1,0,0,0,8037,8035, +1,0,0,0,8037,8038,1,0,0,0,8038,8117,1,0,0,0,8039,8037,1,0,0,0,8040,8044, +5,1328,0,0,8041,8042,3,2274,1137,0,8042,8043,5,2438,0,0,8043,8045,1,0,0, +0,8044,8041,1,0,0,0,8044,8045,1,0,0,0,8045,8046,1,0,0,0,8046,8056,3,2392, +1196,0,8047,8051,5,2451,0,0,8048,8049,3,2274,1137,0,8049,8050,5,2438,0,0, +8050,8052,1,0,0,0,8051,8048,1,0,0,0,8051,8052,1,0,0,0,8052,8053,1,0,0,0, +8053,8055,3,2392,1196,0,8054,8047,1,0,0,0,8055,8058,1,0,0,0,8056,8054,1, +0,0,0,8056,8057,1,0,0,0,8057,8117,1,0,0,0,8058,8056,1,0,0,0,8059,8063,5, +2163,0,0,8060,8061,3,2274,1137,0,8061,8062,5,2438,0,0,8062,8064,1,0,0,0, +8063,8060,1,0,0,0,8063,8064,1,0,0,0,8064,8065,1,0,0,0,8065,8075,3,2392,1196, +0,8066,8070,5,2451,0,0,8067,8068,3,2274,1137,0,8068,8069,5,2438,0,0,8069, +8071,1,0,0,0,8070,8067,1,0,0,0,8070,8071,1,0,0,0,8071,8072,1,0,0,0,8072, +8074,3,2392,1196,0,8073,8066,1,0,0,0,8074,8077,1,0,0,0,8075,8073,1,0,0,0, +8075,8076,1,0,0,0,8076,8117,1,0,0,0,8077,8075,1,0,0,0,8078,8082,5,712,0, +0,8079,8080,3,2274,1137,0,8080,8081,5,2438,0,0,8081,8083,1,0,0,0,8082,8079, +1,0,0,0,8082,8083,1,0,0,0,8083,8084,1,0,0,0,8084,8094,3,2392,1196,0,8085, +8089,5,2451,0,0,8086,8087,3,2274,1137,0,8087,8088,5,2438,0,0,8088,8090,1, +0,0,0,8089,8086,1,0,0,0,8089,8090,1,0,0,0,8090,8091,1,0,0,0,8091,8093,3, +2392,1196,0,8092,8085,1,0,0,0,8093,8096,1,0,0,0,8094,8092,1,0,0,0,8094,8095, +1,0,0,0,8095,8117,1,0,0,0,8096,8094,1,0,0,0,8097,8101,5,730,0,0,8098,8099, +3,2274,1137,0,8099,8100,5,2438,0,0,8100,8102,1,0,0,0,8101,8098,1,0,0,0,8101, +8102,1,0,0,0,8102,8103,1,0,0,0,8103,8113,3,2392,1196,0,8104,8108,5,2451, +0,0,8105,8106,3,2274,1137,0,8106,8107,5,2438,0,0,8107,8109,1,0,0,0,8108, +8105,1,0,0,0,8108,8109,1,0,0,0,8109,8110,1,0,0,0,8110,8112,3,2392,1196,0, +8111,8104,1,0,0,0,8112,8115,1,0,0,0,8113,8111,1,0,0,0,8113,8114,1,0,0,0, +8114,8117,1,0,0,0,8115,8113,1,0,0,0,8116,7997,1,0,0,0,8116,8021,1,0,0,0, +8116,8040,1,0,0,0,8116,8059,1,0,0,0,8116,8078,1,0,0,0,8116,8097,1,0,0,0, +8117,8119,1,0,0,0,8118,8120,5,614,0,0,8119,8118,1,0,0,0,8119,8120,1,0,0, +0,8120,747,1,0,0,0,8121,8122,5,467,0,0,8122,8126,5,729,0,0,8123,8124,3,2274, +1137,0,8124,8125,5,2438,0,0,8125,8127,1,0,0,0,8126,8123,1,0,0,0,8126,8127, +1,0,0,0,8127,8128,1,0,0,0,8128,8130,3,2392,1196,0,8129,8131,5,614,0,0,8130, +8129,1,0,0,0,8130,8131,1,0,0,0,8131,749,1,0,0,0,8132,8133,5,467,0,0,8133, +8134,5,744,0,0,8134,8135,5,792,0,0,8135,8139,5,647,0,0,8136,8137,3,2274, +1137,0,8137,8138,5,2438,0,0,8138,8140,1,0,0,0,8139,8136,1,0,0,0,8139,8140, +1,0,0,0,8140,8141,1,0,0,0,8141,8142,3,2392,1196,0,8142,751,1,0,0,0,8143, +8144,5,603,0,0,8144,8145,5,2081,0,0,8145,8150,3,2330,1165,0,8146,8147,5, +2451,0,0,8147,8149,3,2330,1165,0,8148,8146,1,0,0,0,8149,8152,1,0,0,0,8150, +8148,1,0,0,0,8150,8151,1,0,0,0,8151,8153,1,0,0,0,8152,8150,1,0,0,0,8153, +8172,5,2139,0,0,8154,8155,7,81,0,0,8155,8160,3,2070,1035,0,8156,8157,5,1572, +0,0,8157,8158,5,1409,0,0,8158,8160,3,754,377,0,8159,8154,1,0,0,0,8159,8156, +1,0,0,0,8160,8163,1,0,0,0,8161,8162,7,17,0,0,8162,8164,5,2154,0,0,8163,8161, +1,0,0,0,8163,8164,1,0,0,0,8164,8173,1,0,0,0,8165,8166,5,112,0,0,8166,8170, +5,467,0,0,8167,8168,5,1557,0,0,8168,8169,5,2139,0,0,8169,8171,3,2330,1165, +0,8170,8167,1,0,0,0,8170,8171,1,0,0,0,8171,8173,1,0,0,0,8172,8159,1,0,0, +0,8172,8165,1,0,0,0,8173,753,1,0,0,0,8174,8179,3,2390,1195,0,8175,8176,5, +2438,0,0,8176,8178,3,2392,1196,0,8177,8175,1,0,0,0,8178,8181,1,0,0,0,8179, +8177,1,0,0,0,8179,8180,1,0,0,0,8180,755,1,0,0,0,8181,8179,1,0,0,0,8182,8196, +5,1473,0,0,8183,8184,7,82,0,0,8184,8197,3,2392,1196,0,8185,8187,5,2078,0, +0,8186,8188,5,1669,0,0,8187,8186,1,0,0,0,8187,8188,1,0,0,0,8188,8189,1,0, +0,0,8189,8192,3,2392,1196,0,8190,8191,5,2235,0,0,8191,8193,3,2392,1196,0, +8192,8190,1,0,0,0,8192,8193,1,0,0,0,8193,8197,1,0,0,0,8194,8197,5,1516,0, +0,8195,8197,5,367,0,0,8196,8183,1,0,0,0,8196,8185,1,0,0,0,8196,8194,1,0, +0,0,8196,8195,1,0,0,0,8197,757,1,0,0,0,8198,8210,5,1057,0,0,8199,8201,3, +724,362,0,8200,8202,3,726,363,0,8201,8200,1,0,0,0,8201,8202,1,0,0,0,8202, +8211,1,0,0,0,8203,8211,3,730,365,0,8204,8211,5,1017,0,0,8205,8206,5,425, +0,0,8206,8208,5,865,0,0,8207,8209,3,726,363,0,8208,8207,1,0,0,0,8208,8209, +1,0,0,0,8209,8211,1,0,0,0,8210,8199,1,0,0,0,8210,8203,1,0,0,0,8210,8204, +1,0,0,0,8210,8205,1,0,0,0,8211,8217,1,0,0,0,8212,8214,5,2297,0,0,8213,8215, +5,1202,0,0,8214,8213,1,0,0,0,8214,8215,1,0,0,0,8215,8216,1,0,0,0,8216,8218, +5,1784,0,0,8217,8212,1,0,0,0,8217,8218,1,0,0,0,8218,8220,1,0,0,0,8219,8221, +3,764,382,0,8220,8219,1,0,0,0,8220,8221,1,0,0,0,8221,759,1,0,0,0,8222,8223, +5,1557,0,0,8223,8224,3,738,369,0,8224,8225,5,2139,0,0,8225,8226,3,738,369, +0,8226,761,1,0,0,0,8227,8239,5,645,0,0,8228,8230,5,2451,0,0,8229,8228,1, +0,0,0,8229,8230,1,0,0,0,8230,8237,1,0,0,0,8231,8238,3,2296,1148,0,8232,8238, +3,2380,1190,0,8233,8235,3,2378,1189,0,8234,8236,3,2348,1174,0,8235,8234, +1,0,0,0,8235,8236,1,0,0,0,8236,8238,1,0,0,0,8237,8231,1,0,0,0,8237,8232, +1,0,0,0,8237,8233,1,0,0,0,8238,8240,1,0,0,0,8239,8229,1,0,0,0,8240,8241, +1,0,0,0,8241,8239,1,0,0,0,8241,8242,1,0,0,0,8242,8245,1,0,0,0,8243,8244, +5,1257,0,0,8244,8246,3,2344,1172,0,8245,8243,1,0,0,0,8245,8246,1,0,0,0,8246, +8247,1,0,0,0,8247,8250,5,2139,0,0,8248,8251,3,2294,1147,0,8249,8251,5,1471, +0,0,8250,8248,1,0,0,0,8250,8249,1,0,0,0,8251,8259,1,0,0,0,8252,8255,5,2451, +0,0,8253,8256,3,2294,1147,0,8254,8256,5,1471,0,0,8255,8253,1,0,0,0,8255, +8254,1,0,0,0,8256,8258,1,0,0,0,8257,8252,1,0,0,0,8258,8261,1,0,0,0,8259, +8257,1,0,0,0,8259,8260,1,0,0,0,8260,8265,1,0,0,0,8261,8259,1,0,0,0,8262, +8263,5,2306,0,0,8263,8264,7,83,0,0,8264,8266,5,1270,0,0,8265,8262,1,0,0, +0,8265,8266,1,0,0,0,8266,8270,1,0,0,0,8267,8268,5,2306,0,0,8268,8269,5,672, +0,0,8269,8271,5,1270,0,0,8270,8267,1,0,0,0,8270,8271,1,0,0,0,8271,8275,1, +0,0,0,8272,8273,5,2306,0,0,8273,8274,5,645,0,0,8274,8276,5,1270,0,0,8275, +8272,1,0,0,0,8275,8276,1,0,0,0,8276,8278,1,0,0,0,8277,8279,3,764,382,0,8278, +8277,1,0,0,0,8278,8279,1,0,0,0,8279,763,1,0,0,0,8280,8281,5,287,0,0,8281, +8282,5,2469,0,0,8282,8283,7,80,0,0,8283,765,1,0,0,0,8284,8293,5,1587,0,0, +8285,8288,3,768,384,0,8286,8288,3,772,386,0,8287,8285,1,0,0,0,8287,8286, +1,0,0,0,8288,8290,1,0,0,0,8289,8291,3,764,382,0,8290,8289,1,0,0,0,8290,8291, +1,0,0,0,8291,8294,1,0,0,0,8292,8294,3,776,388,0,8293,8287,1,0,0,0,8293,8292, +1,0,0,0,8294,767,1,0,0,0,8295,8300,3,2380,1190,0,8296,8300,3,2296,1148,0, +8297,8298,5,38,0,0,8298,8300,5,1457,0,0,8299,8295,1,0,0,0,8299,8296,1,0, +0,0,8299,8297,1,0,0,0,8300,8301,1,0,0,0,8301,8302,5,626,0,0,8302,8303,3, +770,385,0,8303,769,1,0,0,0,8304,8307,3,2392,1196,0,8305,8307,5,1471,0,0, +8306,8304,1,0,0,0,8306,8305,1,0,0,0,8307,8315,1,0,0,0,8308,8311,5,2451,0, +0,8309,8312,3,2392,1196,0,8310,8312,5,1471,0,0,8311,8309,1,0,0,0,8311,8310, +1,0,0,0,8312,8314,1,0,0,0,8313,8308,1,0,0,0,8314,8317,1,0,0,0,8315,8313, +1,0,0,0,8315,8316,1,0,0,0,8316,771,1,0,0,0,8317,8315,1,0,0,0,8318,8324,3, +2378,1189,0,8319,8321,5,38,0,0,8320,8322,5,1457,0,0,8321,8320,1,0,0,0,8321, +8322,1,0,0,0,8322,8324,1,0,0,0,8323,8318,1,0,0,0,8323,8319,1,0,0,0,8324, +8335,1,0,0,0,8325,8331,5,2451,0,0,8326,8332,3,2378,1189,0,8327,8329,5,38, +0,0,8328,8330,5,1457,0,0,8329,8328,1,0,0,0,8329,8330,1,0,0,0,8330,8332,1, +0,0,0,8331,8326,1,0,0,0,8331,8327,1,0,0,0,8332,8334,1,0,0,0,8333,8325,1, +0,0,0,8334,8337,1,0,0,0,8335,8333,1,0,0,0,8335,8336,1,0,0,0,8336,8338,1, +0,0,0,8337,8335,1,0,0,0,8338,8339,3,774,387,0,8339,8340,5,626,0,0,8340,8344, +3,770,385,0,8341,8342,5,179,0,0,8342,8345,5,285,0,0,8343,8345,5,614,0,0, +8344,8341,1,0,0,0,8344,8343,1,0,0,0,8344,8345,1,0,0,0,8345,773,1,0,0,0,8346, +8391,5,1257,0,0,8347,8348,3,2274,1137,0,8348,8349,5,2438,0,0,8349,8351,1, +0,0,0,8350,8347,1,0,0,0,8350,8351,1,0,0,0,8351,8352,1,0,0,0,8352,8392,3, +2392,1196,0,8353,8354,5,2235,0,0,8354,8359,3,2392,1196,0,8355,8356,5,2451, +0,0,8356,8358,3,2392,1196,0,8357,8355,1,0,0,0,8358,8361,1,0,0,0,8359,8357, +1,0,0,0,8359,8360,1,0,0,0,8360,8392,1,0,0,0,8361,8359,1,0,0,0,8362,8363, +5,424,0,0,8363,8392,3,784,392,0,8364,8365,5,481,0,0,8365,8392,3,1448,724, +0,8366,8367,5,953,0,0,8367,8371,5,969,0,0,8368,8369,3,2274,1137,0,8369,8370, +5,2438,0,0,8370,8372,1,0,0,0,8371,8368,1,0,0,0,8371,8372,1,0,0,0,8372,8373, +1,0,0,0,8373,8392,3,2392,1196,0,8374,8375,5,790,0,0,8375,8379,7,84,0,0,8376, +8377,3,2274,1137,0,8377,8378,5,2438,0,0,8378,8380,1,0,0,0,8379,8376,1,0, +0,0,8379,8380,1,0,0,0,8380,8381,1,0,0,0,8381,8392,3,2392,1196,0,8382,8383, +5,1720,0,0,8383,8384,5,2152,0,0,8384,8388,5,1461,0,0,8385,8386,3,2274,1137, +0,8386,8387,5,2438,0,0,8387,8389,1,0,0,0,8388,8385,1,0,0,0,8388,8389,1,0, +0,0,8389,8390,1,0,0,0,8390,8392,3,2392,1196,0,8391,8350,1,0,0,0,8391,8353, +1,0,0,0,8391,8362,1,0,0,0,8391,8364,1,0,0,0,8391,8366,1,0,0,0,8391,8374, +1,0,0,0,8391,8382,1,0,0,0,8392,775,1,0,0,0,8393,8398,3,2296,1148,0,8394, +8395,5,2451,0,0,8395,8397,3,2296,1148,0,8396,8394,1,0,0,0,8397,8400,1,0, +0,0,8398,8396,1,0,0,0,8398,8399,1,0,0,0,8399,8403,1,0,0,0,8400,8398,1,0, +0,0,8401,8403,5,38,0,0,8402,8393,1,0,0,0,8402,8401,1,0,0,0,8403,8404,1,0, +0,0,8404,8405,5,626,0,0,8405,8410,3,778,389,0,8406,8407,5,2451,0,0,8407, +8409,3,778,389,0,8408,8406,1,0,0,0,8409,8412,1,0,0,0,8410,8408,1,0,0,0,8410, +8411,1,0,0,0,8411,777,1,0,0,0,8412,8410,1,0,0,0,8413,8417,7,85,0,0,8414, +8415,3,2274,1137,0,8415,8416,5,2438,0,0,8416,8418,1,0,0,0,8417,8414,1,0, +0,0,8417,8418,1,0,0,0,8418,8419,1,0,0,0,8419,8420,3,2392,1196,0,8420,779, +1,0,0,0,8421,8422,5,319,0,0,8422,8423,5,420,0,0,8423,8425,3,2390,1195,0, +8424,8426,3,818,409,0,8425,8424,1,0,0,0,8426,8427,1,0,0,0,8427,8425,1,0, +0,0,8427,8428,1,0,0,0,8428,8432,1,0,0,0,8429,8433,3,820,410,0,8430,8433, +3,824,412,0,8431,8433,3,826,413,0,8432,8429,1,0,0,0,8432,8430,1,0,0,0,8432, +8431,1,0,0,0,8433,8434,1,0,0,0,8434,8432,1,0,0,0,8434,8435,1,0,0,0,8435, +781,1,0,0,0,8436,8439,5,319,0,0,8437,8438,5,1305,0,0,8438,8440,5,1560,0, +0,8439,8437,1,0,0,0,8439,8440,1,0,0,0,8440,8441,1,0,0,0,8441,8442,5,424, +0,0,8442,8446,3,784,392,0,8443,8444,5,1679,0,0,8444,8445,5,2469,0,0,8445, +8447,7,21,0,0,8446,8443,1,0,0,0,8446,8447,1,0,0,0,8447,8448,1,0,0,0,8448, +8449,5,69,0,0,8449,8450,3,786,393,0,8450,783,1,0,0,0,8451,8452,3,2398,1199, +0,8452,785,1,0,0,0,8453,8454,5,2441,0,0,8454,787,1,0,0,0,8455,8456,5,319, +0,0,8456,8457,5,744,0,0,8457,8458,5,792,0,0,8458,8462,5,647,0,0,8459,8460, +3,2274,1137,0,8460,8461,5,2438,0,0,8461,8463,1,0,0,0,8462,8459,1,0,0,0,8462, +8463,1,0,0,0,8463,8464,1,0,0,0,8464,8465,3,2392,1196,0,8465,8469,5,2445, +0,0,8466,8467,3,2274,1137,0,8467,8468,5,2438,0,0,8468,8470,1,0,0,0,8469, +8466,1,0,0,0,8469,8470,1,0,0,0,8470,8471,1,0,0,0,8471,8472,3,2392,1196,0, +8472,8473,5,2445,0,0,8473,8474,3,2392,1196,0,8474,8486,5,2446,0,0,8475,8479, +5,2451,0,0,8476,8477,3,2274,1137,0,8477,8478,5,2438,0,0,8478,8480,1,0,0, +0,8479,8476,1,0,0,0,8479,8480,1,0,0,0,8480,8481,1,0,0,0,8481,8482,3,2392, +1196,0,8482,8483,5,2445,0,0,8483,8484,3,2392,1196,0,8484,8485,5,2446,0,0, +8485,8487,1,0,0,0,8486,8475,1,0,0,0,8487,8488,1,0,0,0,8488,8486,1,0,0,0, +8488,8489,1,0,0,0,8489,8490,1,0,0,0,8490,8491,5,2446,0,0,8491,789,1,0,0, +0,8492,8493,5,467,0,0,8493,8497,5,672,0,0,8494,8495,3,2274,1137,0,8495,8496, +5,2438,0,0,8496,8498,1,0,0,0,8497,8494,1,0,0,0,8497,8498,1,0,0,0,8498,8499, +1,0,0,0,8499,8500,3,2392,1196,0,8500,791,1,0,0,0,8501,8502,5,42,0,0,8502, +8503,5,847,0,0,8503,8519,3,814,407,0,8504,8506,5,249,0,0,8505,8507,3,808, +404,0,8506,8505,1,0,0,0,8506,8507,1,0,0,0,8507,8511,1,0,0,0,8508,8510,3, +810,405,0,8509,8508,1,0,0,0,8510,8513,1,0,0,0,8511,8509,1,0,0,0,8511,8512, +1,0,0,0,8512,8516,1,0,0,0,8513,8511,1,0,0,0,8514,8515,5,1585,0,0,8515,8517, +5,1671,0,0,8516,8514,1,0,0,0,8516,8517,1,0,0,0,8517,8520,1,0,0,0,8518,8520, +3,806,403,0,8519,8504,1,0,0,0,8519,8518,1,0,0,0,8520,793,1,0,0,0,8521,8522, +5,467,0,0,8522,8523,5,790,0,0,8523,8527,7,86,0,0,8524,8525,3,2274,1137,0, +8525,8526,5,2438,0,0,8526,8528,1,0,0,0,8527,8524,1,0,0,0,8527,8528,1,0,0, +0,8528,8529,1,0,0,0,8529,8530,3,2392,1196,0,8530,795,1,0,0,0,8531,8532,5, +467,0,0,8532,8533,5,847,0,0,8533,8534,3,814,407,0,8534,797,1,0,0,0,8535, +8538,5,319,0,0,8536,8537,5,1305,0,0,8537,8539,5,1560,0,0,8538,8536,1,0,0, +0,8538,8539,1,0,0,0,8539,8542,1,0,0,0,8540,8541,5,49,0,0,8541,8543,7,87, +0,0,8542,8540,1,0,0,0,8542,8543,1,0,0,0,8543,8545,1,0,0,0,8544,8546,5,1102, +0,0,8545,8544,1,0,0,0,8545,8546,1,0,0,0,8546,8547,1,0,0,0,8547,8561,5,790, +0,0,8548,8549,7,84,0,0,8549,8553,5,994,0,0,8550,8551,3,2274,1137,0,8551, +8552,5,2438,0,0,8552,8554,1,0,0,0,8553,8550,1,0,0,0,8553,8554,1,0,0,0,8554, +8555,1,0,0,0,8555,8562,3,2392,1196,0,8556,8559,5,206,0,0,8557,8558,5,1623, +0,0,8558,8560,3,2392,1196,0,8559,8557,1,0,0,0,8559,8560,1,0,0,0,8560,8562, +1,0,0,0,8561,8548,1,0,0,0,8561,8556,1,0,0,0,8562,8566,1,0,0,0,8563,8564, +5,1679,0,0,8564,8565,5,2469,0,0,8565,8567,7,21,0,0,8566,8563,1,0,0,0,8566, +8567,1,0,0,0,8567,8569,1,0,0,0,8568,8570,3,1712,856,0,8569,8568,1,0,0,0, +8569,8570,1,0,0,0,8570,8588,1,0,0,0,8571,8572,5,1567,0,0,8572,8583,5,2445, +0,0,8573,8574,5,2445,0,0,8574,8576,5,2441,0,0,8575,8577,5,2451,0,0,8576, +8575,1,0,0,0,8576,8577,1,0,0,0,8577,8580,1,0,0,0,8578,8581,3,2392,1196,0, +8579,8581,5,2450,0,0,8580,8578,1,0,0,0,8580,8579,1,0,0,0,8581,8582,1,0,0, +0,8582,8584,5,2446,0,0,8583,8573,1,0,0,0,8584,8585,1,0,0,0,8585,8583,1,0, +0,0,8585,8586,1,0,0,0,8586,8587,1,0,0,0,8587,8589,5,2446,0,0,8588,8571,1, +0,0,0,8588,8589,1,0,0,0,8589,8605,1,0,0,0,8590,8601,5,2244,0,0,8591,8592, +5,119,0,0,8592,8593,5,2445,0,0,8593,8594,3,2392,1196,0,8594,8595,5,2451, +0,0,8595,8596,3,1452,726,0,8596,8597,5,2446,0,0,8597,8602,1,0,0,0,8598,8599, +7,88,0,0,8599,8602,3,1888,944,0,8600,8602,5,2441,0,0,8601,8591,1,0,0,0,8601, +8598,1,0,0,0,8601,8600,1,0,0,0,8602,8606,1,0,0,0,8603,8604,5,69,0,0,8604, +8606,5,2441,0,0,8605,8590,1,0,0,0,8605,8603,1,0,0,0,8606,799,1,0,0,0,8607, +8610,5,319,0,0,8608,8609,5,1305,0,0,8609,8611,5,1560,0,0,8610,8608,1,0,0, +0,8610,8611,1,0,0,0,8611,8613,1,0,0,0,8612,8614,7,20,0,0,8613,8612,1,0,0, +0,8613,8614,1,0,0,0,8614,8615,1,0,0,0,8615,8616,5,847,0,0,8616,8617,3,802, +401,0,8617,801,1,0,0,0,8618,8619,3,814,407,0,8619,8620,7,22,0,0,8620,8623, +3,2388,1194,0,8621,8622,5,736,0,0,8622,8624,3,784,392,0,8623,8621,1,0,0, +0,8623,8624,1,0,0,0,8624,8627,1,0,0,0,8625,8626,5,34,0,0,8626,8628,3,2388, +1194,0,8627,8625,1,0,0,0,8627,8628,1,0,0,0,8628,8631,1,0,0,0,8629,8630,5, +323,0,0,8630,8632,3,804,402,0,8631,8629,1,0,0,0,8631,8632,1,0,0,0,8632,803, +1,0,0,0,8633,8634,3,2392,1196,0,8634,8635,5,2438,0,0,8635,8637,1,0,0,0,8636, +8633,1,0,0,0,8636,8637,1,0,0,0,8637,8638,1,0,0,0,8638,8639,3,2392,1196,0, +8639,805,1,0,0,0,8640,8641,4,403,5,0,8641,8642,7,20,0,0,8642,807,1,0,0,0, +8643,8644,4,404,6,0,8644,8645,5,376,0,0,8645,809,1,0,0,0,8646,8647,3,2282, +1141,0,8647,8648,5,2469,0,0,8648,8649,3,812,406,0,8649,811,1,0,0,0,8650, +8653,3,2398,1199,0,8651,8653,5,2441,0,0,8652,8650,1,0,0,0,8652,8651,1,0, +0,0,8653,813,1,0,0,0,8654,8655,3,2398,1199,0,8655,8656,5,2438,0,0,8656,8658, +1,0,0,0,8657,8654,1,0,0,0,8657,8658,1,0,0,0,8658,8659,1,0,0,0,8659,8660, +3,2398,1199,0,8660,815,1,0,0,0,8661,8662,5,42,0,0,8662,8663,5,420,0,0,8663, +8708,3,2390,1195,0,8664,8669,5,21,0,0,8665,8670,3,818,409,0,8666,8670,3, +820,410,0,8667,8670,3,824,412,0,8668,8670,3,826,413,0,8669,8665,1,0,0,0, +8669,8666,1,0,0,0,8669,8667,1,0,0,0,8669,8668,1,0,0,0,8670,8672,1,0,0,0, +8671,8664,1,0,0,0,8672,8673,1,0,0,0,8673,8671,1,0,0,0,8673,8674,1,0,0,0, +8674,8709,1,0,0,0,8675,8701,5,467,0,0,8676,8677,5,844,0,0,8677,8679,3,2390, +1195,0,8678,8680,7,89,0,0,8679,8678,1,0,0,0,8679,8680,1,0,0,0,8680,8702, +1,0,0,0,8681,8682,5,672,0,0,8682,8702,3,2390,1195,0,8683,8684,5,83,0,0,8684, +8699,3,2390,1195,0,8685,8686,5,844,0,0,8686,8697,3,2390,1195,0,8687,8688, +5,237,0,0,8688,8694,3,2328,1164,0,8689,8690,5,2451,0,0,8690,8691,5,237,0, +0,8691,8693,3,2328,1164,0,8692,8689,1,0,0,0,8693,8696,1,0,0,0,8694,8692, +1,0,0,0,8694,8695,1,0,0,0,8695,8698,1,0,0,0,8696,8694,1,0,0,0,8697,8687, +1,0,0,0,8697,8698,1,0,0,0,8698,8700,1,0,0,0,8699,8685,1,0,0,0,8699,8700, +1,0,0,0,8700,8702,1,0,0,0,8701,8676,1,0,0,0,8701,8681,1,0,0,0,8701,8683, +1,0,0,0,8702,8704,1,0,0,0,8703,8675,1,0,0,0,8704,8705,1,0,0,0,8705,8703, +1,0,0,0,8705,8706,1,0,0,0,8706,8709,1,0,0,0,8707,8709,5,249,0,0,8708,8671, +1,0,0,0,8708,8703,1,0,0,0,8708,8707,1,0,0,0,8709,817,1,0,0,0,8710,8711,5, +844,0,0,8711,8712,3,2390,1195,0,8712,8733,5,783,0,0,8713,8714,3,1104,552, +0,8714,8715,5,2438,0,0,8715,8716,3,2328,1164,0,8716,8734,1,0,0,0,8717,8718, +5,2445,0,0,8718,8719,3,1104,552,0,8719,8720,5,2438,0,0,8720,8728,3,2328, +1164,0,8721,8722,5,2451,0,0,8722,8723,3,1104,552,0,8723,8724,5,2438,0,0, +8724,8725,3,2328,1164,0,8725,8727,1,0,0,0,8726,8721,1,0,0,0,8727,8730,1, +0,0,0,8728,8726,1,0,0,0,8728,8729,1,0,0,0,8729,8731,1,0,0,0,8730,8728,1, +0,0,0,8731,8732,5,2446,0,0,8732,8734,1,0,0,0,8733,8713,1,0,0,0,8733,8717, +1,0,0,0,8734,8738,1,0,0,0,8735,8736,5,1700,0,0,8736,8737,5,2298,0,0,8737, +8739,5,1226,0,0,8738,8735,1,0,0,0,8738,8739,1,0,0,0,8739,819,1,0,0,0,8740, +8741,5,672,0,0,8741,8742,3,2390,1195,0,8742,8743,5,2445,0,0,8743,8747,3, +2390,1195,0,8744,8745,5,202,0,0,8745,8746,5,1244,0,0,8746,8748,3,2390,1195, +0,8747,8744,1,0,0,0,8748,8749,1,0,0,0,8749,8747,1,0,0,0,8749,8750,1,0,0, +0,8750,8752,1,0,0,0,8751,8753,3,822,411,0,8752,8751,1,0,0,0,8752,8753,1, +0,0,0,8753,8754,1,0,0,0,8754,8755,5,2446,0,0,8755,821,1,0,0,0,8756,8757, +5,792,0,0,8757,8758,5,814,0,0,8758,8759,3,828,414,0,8759,8760,5,1526,0,0, +8760,8761,3,2390,1195,0,8761,8763,1,0,0,0,8762,8756,1,0,0,0,8763,8764,1, +0,0,0,8764,8762,1,0,0,0,8764,8765,1,0,0,0,8765,823,1,0,0,0,8766,8767,5,83, +0,0,8767,8768,3,2390,1195,0,8768,8769,5,417,0,0,8769,8770,3,828,414,0,8770, +8772,1,0,0,0,8771,8766,1,0,0,0,8772,8773,1,0,0,0,8773,8771,1,0,0,0,8773, +8774,1,0,0,0,8774,825,1,0,0,0,8775,8776,5,83,0,0,8776,8782,3,2390,1195,0, +8777,8778,5,844,0,0,8778,8779,3,2390,1195,0,8779,8780,5,417,0,0,8780,8781, +3,828,414,0,8781,8783,1,0,0,0,8782,8777,1,0,0,0,8783,8784,1,0,0,0,8784,8782, +1,0,0,0,8784,8785,1,0,0,0,8785,827,1,0,0,0,8786,8799,3,2328,1164,0,8787, +8788,5,2445,0,0,8788,8793,3,2328,1164,0,8789,8790,5,2451,0,0,8790,8792,3, +2328,1164,0,8791,8789,1,0,0,0,8792,8795,1,0,0,0,8793,8791,1,0,0,0,8793,8794, +1,0,0,0,8794,8796,1,0,0,0,8795,8793,1,0,0,0,8796,8797,5,2446,0,0,8797,8799, +1,0,0,0,8798,8786,1,0,0,0,8798,8787,1,0,0,0,8799,829,1,0,0,0,8800,8801,5, +42,0,0,8801,8802,5,2284,0,0,8802,8835,3,2330,1165,0,8803,8804,5,21,0,0,8804, +8836,3,850,425,0,8805,8806,5,978,0,0,8806,8807,5,284,0,0,8807,8808,3,2298, +1149,0,8808,8809,7,49,0,0,8809,8836,1,0,0,0,8810,8827,5,467,0,0,8811,8812, +5,284,0,0,8812,8828,3,2298,1149,0,8813,8814,5,1449,0,0,8814,8828,5,814,0, +0,8815,8816,5,2181,0,0,8816,8817,5,2445,0,0,8817,8822,3,2328,1164,0,8818, +8819,5,2451,0,0,8819,8821,3,2328,1164,0,8820,8818,1,0,0,0,8821,8824,1,0, +0,0,8822,8820,1,0,0,0,8822,8823,1,0,0,0,8823,8825,1,0,0,0,8824,8822,1,0, +0,0,8825,8826,5,2446,0,0,8826,8828,1,0,0,0,8827,8811,1,0,0,0,8827,8813,1, +0,0,0,8827,8815,1,0,0,0,8828,8836,1,0,0,0,8829,8836,5,249,0,0,8830,8831, +5,1503,0,0,8831,8836,7,11,0,0,8832,8834,3,832,416,0,8833,8832,1,0,0,0,8833, +8834,1,0,0,0,8834,8836,1,0,0,0,8835,8803,1,0,0,0,8835,8805,1,0,0,0,8835, +8810,1,0,0,0,8835,8829,1,0,0,0,8835,8830,1,0,0,0,8835,8833,1,0,0,0,8836, +831,1,0,0,0,8837,8838,4,416,7,0,8838,8839,7,20,0,0,8839,833,1,0,0,0,8840, +8843,5,319,0,0,8841,8842,5,1305,0,0,8842,8844,5,1560,0,0,8843,8841,1,0,0, +0,8843,8844,1,0,0,0,8844,8849,1,0,0,0,8845,8847,5,1135,0,0,8846,8845,1,0, +0,0,8846,8847,1,0,0,0,8847,8848,1,0,0,0,8848,8850,5,614,0,0,8849,8846,1, +0,0,0,8849,8850,1,0,0,0,8850,8852,1,0,0,0,8851,8853,3,836,418,0,8852,8851, +1,0,0,0,8852,8853,1,0,0,0,8853,8854,1,0,0,0,8854,8858,5,2284,0,0,8855,8856, +3,2274,1137,0,8856,8857,5,2438,0,0,8857,8859,1,0,0,0,8858,8855,1,0,0,0,8858, +8859,1,0,0,0,8859,8860,1,0,0,0,8860,8864,3,2392,1196,0,8861,8862,5,689,0, +0,8862,8863,5,1202,0,0,8863,8865,5,543,0,0,8864,8861,1,0,0,0,8864,8865,1, +0,0,0,8865,8876,1,0,0,0,8866,8867,5,1679,0,0,8867,8874,5,2469,0,0,8868,8875, +5,946,0,0,8869,8871,5,2374,0,0,8870,8869,1,0,0,0,8870,8871,1,0,0,0,8871, +8872,1,0,0,0,8872,8875,5,349,0,0,8873,8875,5,1131,0,0,8874,8868,1,0,0,0, +8874,8870,1,0,0,0,8874,8873,1,0,0,0,8875,8877,1,0,0,0,8876,8866,1,0,0,0, +8876,8877,1,0,0,0,8877,8879,1,0,0,0,8878,8880,3,838,419,0,8879,8878,1,0, +0,0,8879,8880,1,0,0,0,8880,8884,1,0,0,0,8881,8882,5,387,0,0,8882,8883,5, +2371,0,0,8883,8885,3,2392,1196,0,8884,8881,1,0,0,0,8884,8885,1,0,0,0,8885, +8888,1,0,0,0,8886,8887,5,117,0,0,8887,8889,7,90,0,0,8888,8886,1,0,0,0,8888, +8889,1,0,0,0,8889,8890,1,0,0,0,8890,8891,5,69,0,0,8891,8893,3,1860,930,0, +8892,8894,3,2060,1030,0,8893,8892,1,0,0,0,8893,8894,1,0,0,0,8894,8896,1, +0,0,0,8895,8897,7,91,0,0,8896,8895,1,0,0,0,8896,8897,1,0,0,0,8897,835,1, +0,0,0,8898,8905,5,482,0,0,8899,8901,5,480,0,0,8900,8902,5,482,0,0,8901,8900, +1,0,0,0,8901,8902,1,0,0,0,8902,8905,1,0,0,0,8903,8905,5,1130,0,0,8904,8898, +1,0,0,0,8904,8899,1,0,0,0,8904,8903,1,0,0,0,8905,837,1,0,0,0,8906,8910,3, +840,420,0,8907,8910,3,842,421,0,8908,8910,3,854,427,0,8909,8906,1,0,0,0, +8909,8907,1,0,0,0,8909,8908,1,0,0,0,8910,839,1,0,0,0,8911,8925,5,2445,0, +0,8912,8914,5,2451,0,0,8913,8912,1,0,0,0,8913,8914,1,0,0,0,8914,8923,1,0, +0,0,8915,8919,3,2258,1129,0,8916,8918,3,844,422,0,8917,8916,1,0,0,0,8918, +8921,1,0,0,0,8919,8917,1,0,0,0,8919,8920,1,0,0,0,8920,8924,1,0,0,0,8921, +8919,1,0,0,0,8922,8924,3,850,425,0,8923,8915,1,0,0,0,8923,8922,1,0,0,0,8924, +8926,1,0,0,0,8925,8913,1,0,0,0,8926,8927,1,0,0,0,8927,8925,1,0,0,0,8927, +8928,1,0,0,0,8928,8929,1,0,0,0,8929,8930,5,2446,0,0,8930,841,1,0,0,0,8931, +8935,5,1244,0,0,8932,8933,3,2274,1137,0,8933,8934,5,2438,0,0,8934,8936,1, +0,0,0,8935,8932,1,0,0,0,8935,8936,1,0,0,0,8936,8937,1,0,0,0,8937,8961,3, +2392,1196,0,8938,8939,5,2306,0,0,8939,8940,5,1236,0,0,8940,8952,7,92,0,0, +8941,8953,5,387,0,0,8942,8943,5,2445,0,0,8943,8948,5,2478,0,0,8944,8945, +5,2451,0,0,8945,8947,5,2478,0,0,8946,8944,1,0,0,0,8947,8950,1,0,0,0,8948, +8946,1,0,0,0,8948,8949,1,0,0,0,8949,8951,1,0,0,0,8950,8948,1,0,0,0,8951, +8953,5,2446,0,0,8952,8941,1,0,0,0,8952,8942,1,0,0,0,8953,8962,1,0,0,0,8954, +8958,5,2175,0,0,8955,8956,3,2274,1137,0,8956,8957,5,2438,0,0,8957,8959,1, +0,0,0,8958,8955,1,0,0,0,8958,8959,1,0,0,0,8959,8960,1,0,0,0,8960,8962,3, +2392,1196,0,8961,8938,1,0,0,0,8961,8954,1,0,0,0,8962,8980,1,0,0,0,8963,8972, +5,2445,0,0,8964,8966,5,2451,0,0,8965,8964,1,0,0,0,8965,8966,1,0,0,0,8966, +8970,1,0,0,0,8967,8971,3,850,425,0,8968,8969,5,2478,0,0,8969,8971,3,844, +422,0,8970,8967,1,0,0,0,8970,8968,1,0,0,0,8971,8973,1,0,0,0,8972,8965,1, +0,0,0,8973,8974,1,0,0,0,8974,8972,1,0,0,0,8974,8975,1,0,0,0,8975,8976,1, +0,0,0,8976,8977,5,2446,0,0,8977,8979,1,0,0,0,8978,8963,1,0,0,0,8979,8982, +1,0,0,0,8980,8978,1,0,0,0,8980,8981,1,0,0,0,8981,843,1,0,0,0,8982,8980,1, +0,0,0,8983,8984,5,284,0,0,8984,8986,3,2298,1149,0,8985,8983,1,0,0,0,8985, +8986,1,0,0,0,8986,8996,1,0,0,0,8987,8989,5,1202,0,0,8988,8987,1,0,0,0,8988, +8989,1,0,0,0,8989,8990,1,0,0,0,8990,8997,5,1226,0,0,8991,8997,5,2181,0,0, +8992,8993,5,1449,0,0,8993,8997,5,814,0,0,8994,8997,3,1706,853,0,8995,8997, +3,1702,851,0,8996,8988,1,0,0,0,8996,8991,1,0,0,0,8996,8992,1,0,0,0,8996, +8994,1,0,0,0,8996,8995,1,0,0,0,8997,8999,1,0,0,0,8998,9000,3,852,426,0,8999, +8998,1,0,0,0,8999,9000,1,0,0,0,9000,845,1,0,0,0,9001,9002,5,1626,0,0,9002, +9003,5,783,0,0,9003,9015,3,2330,1165,0,9004,9005,5,2306,0,0,9005,9015,5, +1599,0,0,9006,9007,5,284,0,0,9007,9009,3,2298,1149,0,9008,9006,1,0,0,0,9008, +9009,1,0,0,0,9009,9010,1,0,0,0,9010,9012,3,1706,853,0,9011,9013,3,852,426, +0,9012,9011,1,0,0,0,9012,9013,1,0,0,0,9013,9015,1,0,0,0,9014,9001,1,0,0, +0,9014,9004,1,0,0,0,9014,9008,1,0,0,0,9015,847,1,0,0,0,9016,9017,5,1626, +0,0,9017,9018,5,618,0,0,9018,9019,5,2445,0,0,9019,9020,3,2398,1199,0,9020, +9021,5,2446,0,0,9021,9022,5,783,0,0,9022,9023,3,2330,1165,0,9023,9052,1, +0,0,0,9024,9025,5,1528,0,0,9025,9026,5,2445,0,0,9026,9027,3,2398,1199,0, +9027,9028,5,2446,0,0,9028,9029,5,2306,0,0,9029,9030,5,1599,0,0,9030,9052, +1,0,0,0,9031,9032,5,284,0,0,9032,9034,3,2298,1149,0,9033,9031,1,0,0,0,9033, +9034,1,0,0,0,9034,9035,1,0,0,0,9035,9036,5,616,0,0,9036,9037,5,814,0,0,9037, +9042,5,2445,0,0,9038,9040,5,2451,0,0,9039,9038,1,0,0,0,9039,9040,1,0,0,0, +9040,9041,1,0,0,0,9041,9043,3,2398,1199,0,9042,9039,1,0,0,0,9043,9044,1, +0,0,0,9044,9042,1,0,0,0,9044,9045,1,0,0,0,9045,9046,1,0,0,0,9046,9047,5, +2446,0,0,9047,9049,3,1706,853,0,9048,9050,3,852,426,0,9049,9048,1,0,0,0, +9049,9050,1,0,0,0,9050,9052,1,0,0,0,9051,9016,1,0,0,0,9051,9024,1,0,0,0, +9051,9033,1,0,0,0,9052,849,1,0,0,0,9053,9054,7,93,0,0,9054,9056,3,2298,1149, +0,9055,9053,1,0,0,0,9055,9056,1,0,0,0,9056,9088,1,0,0,0,9057,9058,5,2181, +0,0,9058,9059,5,2445,0,0,9059,9064,3,2328,1164,0,9060,9061,5,2451,0,0,9061, +9063,3,2328,1164,0,9062,9060,1,0,0,0,9063,9066,1,0,0,0,9064,9062,1,0,0,0, +9064,9065,1,0,0,0,9065,9067,1,0,0,0,9066,9064,1,0,0,0,9067,9068,5,2446,0, +0,9068,9089,1,0,0,0,9069,9070,5,1449,0,0,9070,9071,5,814,0,0,9071,9072,5, +2445,0,0,9072,9077,3,2328,1164,0,9073,9074,5,2451,0,0,9074,9076,3,2328,1164, +0,9075,9073,1,0,0,0,9076,9079,1,0,0,0,9077,9075,1,0,0,0,9077,9078,1,0,0, +0,9078,9080,1,0,0,0,9079,9077,1,0,0,0,9080,9081,5,2446,0,0,9081,9089,1,0, +0,0,9082,9089,3,1704,852,0,9083,9084,5,200,0,0,9084,9085,5,2445,0,0,9085, +9086,3,2066,1033,0,9086,9087,5,2446,0,0,9087,9089,1,0,0,0,9088,9057,1,0, +0,0,9088,9069,1,0,0,0,9088,9082,1,0,0,0,9088,9083,1,0,0,0,9089,9091,1,0, +0,0,9090,9092,3,852,426,0,9091,9090,1,0,0,0,9091,9092,1,0,0,0,9092,9094, +1,0,0,0,9093,9095,3,926,463,0,9094,9093,1,0,0,0,9094,9095,1,0,0,0,9095,851, +1,0,0,0,9096,9098,5,1202,0,0,9097,9096,1,0,0,0,9097,9098,1,0,0,0,9098,9099, +1,0,0,0,9099,9107,5,392,0,0,9100,9101,5,740,0,0,9101,9107,7,67,0,0,9102, +9107,7,49,0,0,9103,9107,7,17,0,0,9104,9107,7,94,0,0,9105,9107,3,1578,789, +0,9106,9097,1,0,0,0,9106,9100,1,0,0,0,9106,9102,1,0,0,0,9106,9103,1,0,0, +0,9106,9104,1,0,0,0,9106,9105,1,0,0,0,9107,9108,1,0,0,0,9108,9106,1,0,0, +0,9108,9109,1,0,0,0,9109,853,1,0,0,0,9110,9111,5,1244,0,0,9111,9113,5,2349, +0,0,9112,9114,3,856,428,0,9113,9112,1,0,0,0,9113,9114,1,0,0,0,9114,9115, +1,0,0,0,9115,9116,5,2306,0,0,9116,9117,5,1236,0,0,9117,9130,7,92,0,0,9118, +9131,5,387,0,0,9119,9120,5,2445,0,0,9120,9125,3,2070,1035,0,9121,9122,5, +2451,0,0,9122,9124,3,2070,1035,0,9123,9121,1,0,0,0,9124,9127,1,0,0,0,9125, +9123,1,0,0,0,9125,9126,1,0,0,0,9126,9128,1,0,0,0,9127,9125,1,0,0,0,9128, +9129,5,2446,0,0,9129,9131,1,0,0,0,9130,9118,1,0,0,0,9130,9119,1,0,0,0,9131, +855,1,0,0,0,9132,9133,5,2343,0,0,9133,9135,3,858,429,0,9134,9132,1,0,0,0, +9134,9135,1,0,0,0,9135,9136,1,0,0,0,9136,9142,5,484,0,0,9137,9143,3,860, +430,0,9138,9139,3,858,429,0,9139,9140,5,2455,0,0,9140,9141,3,860,430,0,9141, +9143,1,0,0,0,9142,9137,1,0,0,0,9142,9138,1,0,0,0,9143,9149,1,0,0,0,9144, +9145,5,1761,0,0,9145,9146,5,38,0,0,9146,9147,5,2264,0,0,9147,9148,5,69,0, +0,9148,9150,7,95,0,0,9149,9144,1,0,0,0,9149,9150,1,0,0,0,9150,9154,1,0,0, +0,9151,9152,3,1304,652,0,9152,9153,5,1136,0,0,9153,9155,1,0,0,0,9154,9151, +1,0,0,0,9154,9155,1,0,0,0,9155,9159,1,0,0,0,9156,9157,3,1304,652,0,9157, +9158,5,56,0,0,9158,9160,1,0,0,0,9159,9156,1,0,0,0,9159,9160,1,0,0,0,9160, +857,1,0,0,0,9161,9162,5,2442,0,0,9162,859,1,0,0,0,9163,9164,5,2442,0,0,9164, +861,1,0,0,0,9165,9166,5,42,0,0,9166,9167,5,2078,0,0,9167,9200,3,1648,824, +0,9168,9170,5,387,0,0,9169,9171,3,1172,586,0,9170,9169,1,0,0,0,9170,9171, +1,0,0,0,9171,9173,1,0,0,0,9172,9174,3,1190,595,0,9173,9172,1,0,0,0,9173, +9174,1,0,0,0,9174,9201,1,0,0,0,9175,9176,5,952,0,0,9176,9177,5,556,0,0,9177, +9201,3,1170,585,0,9178,9179,5,1565,0,0,9179,9201,3,1170,585,0,9180,9201, +5,228,0,0,9181,9182,5,1682,0,0,9182,9185,5,1712,0,0,9183,9184,5,812,0,0, +9184,9186,3,1170,585,0,9185,9183,1,0,0,0,9185,9186,1,0,0,0,9186,9201,1,0, +0,0,9187,9188,5,1557,0,0,9188,9189,5,2139,0,0,9189,9201,3,876,438,0,9190, +9191,3,1374,687,0,9191,9192,5,102,0,0,9192,9201,1,0,0,0,9193,9201,3,864, +432,0,9194,9201,3,866,433,0,9195,9201,3,868,434,0,9196,9201,3,872,436,0, +9197,9201,3,920,460,0,9198,9201,3,874,437,0,9199,9201,3,894,447,0,9200,9168, +1,0,0,0,9200,9175,1,0,0,0,9200,9178,1,0,0,0,9200,9180,1,0,0,0,9200,9181, +1,0,0,0,9200,9187,1,0,0,0,9200,9190,1,0,0,0,9200,9193,1,0,0,0,9200,9194, +1,0,0,0,9200,9195,1,0,0,0,9200,9196,1,0,0,0,9200,9197,1,0,0,0,9200,9198, +1,0,0,0,9200,9199,1,0,0,0,9201,863,1,0,0,0,9202,9205,5,21,0,0,9203,9206, +3,912,456,0,9204,9206,3,914,457,0,9205,9203,1,0,0,0,9205,9204,1,0,0,0,9206, +9249,1,0,0,0,9207,9208,5,467,0,0,9208,9211,7,96,0,0,9209,9212,3,1452,726, +0,9210,9212,5,2439,0,0,9211,9209,1,0,0,0,9211,9210,1,0,0,0,9212,9215,1,0, +0,0,9213,9214,5,812,0,0,9214,9216,3,1170,585,0,9215,9213,1,0,0,0,9215,9216, +1,0,0,0,9216,9249,1,0,0,0,9217,9218,5,1682,0,0,9218,9221,5,2087,0,0,9219, +9222,3,1452,726,0,9220,9222,5,2439,0,0,9221,9219,1,0,0,0,9221,9220,1,0,0, +0,9222,9225,1,0,0,0,9223,9224,5,812,0,0,9224,9226,3,1170,585,0,9225,9223, +1,0,0,0,9225,9226,1,0,0,0,9226,9249,1,0,0,0,9227,9228,5,1557,0,0,9228,9229, +5,350,0,0,9229,9234,3,1452,726,0,9230,9231,5,2451,0,0,9231,9233,3,1452,726, +0,9232,9230,1,0,0,0,9233,9236,1,0,0,0,9234,9232,1,0,0,0,9234,9235,1,0,0, +0,9235,9237,1,0,0,0,9236,9234,1,0,0,0,9237,9238,5,2139,0,0,9238,9243,3,1452, +726,0,9239,9240,5,2451,0,0,9240,9242,3,1452,726,0,9241,9239,1,0,0,0,9242, +9245,1,0,0,0,9243,9241,1,0,0,0,9243,9244,1,0,0,0,9244,9249,1,0,0,0,9245, +9243,1,0,0,0,9246,9247,7,96,0,0,9247,9249,3,680,340,0,9248,9202,1,0,0,0, +9248,9207,1,0,0,0,9248,9217,1,0,0,0,9248,9227,1,0,0,0,9248,9246,1,0,0,0, +9249,865,1,0,0,0,9250,9257,3,884,442,0,9251,9253,5,1135,0,0,9252,9251,1, +0,0,0,9252,9253,1,0,0,0,9253,9254,1,0,0,0,9254,9255,5,614,0,0,9255,9257, +5,882,0,0,9256,9250,1,0,0,0,9256,9252,1,0,0,0,9257,867,1,0,0,0,9258,9259, +5,2078,0,0,9259,9262,5,647,0,0,9260,9263,3,870,435,0,9261,9263,5,2441,0, +0,9262,9260,1,0,0,0,9262,9261,1,0,0,0,9263,869,1,0,0,0,9264,9265,3,2398, +1199,0,9265,871,1,0,0,0,9266,9276,5,1254,0,0,9267,9269,5,1241,0,0,9268,9270, +7,97,0,0,9269,9268,1,0,0,0,9269,9270,1,0,0,0,9270,9276,1,0,0,0,9271,9272, +5,1503,0,0,9272,9276,7,11,0,0,9273,9276,5,1385,0,0,9274,9276,5,2090,0,0, +9275,9266,1,0,0,0,9275,9267,1,0,0,0,9275,9271,1,0,0,0,9275,9273,1,0,0,0, +9275,9274,1,0,0,0,9276,873,1,0,0,0,9277,9278,5,603,0,0,9278,9279,7,98,0, +0,9279,875,1,0,0,0,9280,9281,3,1648,824,0,9281,877,1,0,0,0,9282,9284,5,319, +0,0,9283,9285,7,99,0,0,9284,9283,1,0,0,0,9284,9285,1,0,0,0,9285,9289,1,0, +0,0,9286,9290,3,880,440,0,9287,9290,3,890,445,0,9288,9290,3,892,446,0,9289, +9286,1,0,0,0,9289,9287,1,0,0,0,9289,9288,1,0,0,0,9290,879,1,0,0,0,9291,9292, +5,2078,0,0,9292,9296,3,2392,1196,0,9293,9294,5,689,0,0,9294,9295,5,1202, +0,0,9295,9297,5,543,0,0,9296,9293,1,0,0,0,9296,9297,1,0,0,0,9297,9299,1, +0,0,0,9298,9300,3,912,456,0,9299,9298,1,0,0,0,9299,9300,1,0,0,0,9300,9318, +1,0,0,0,9301,9302,5,952,0,0,9302,9303,5,556,0,0,9303,9317,3,1170,585,0,9304, +9305,5,146,0,0,9305,9317,3,1170,585,0,9306,9317,3,884,442,0,9307,9308,5, +614,0,0,9308,9317,5,882,0,0,9309,9317,7,76,0,0,9310,9311,5,504,0,0,9311, +9317,3,882,441,0,9312,9317,5,387,0,0,9313,9317,3,886,443,0,9314,9317,3,888, +444,0,9315,9317,3,874,437,0,9316,9301,1,0,0,0,9316,9304,1,0,0,0,9316,9306, +1,0,0,0,9316,9307,1,0,0,0,9316,9309,1,0,0,0,9316,9310,1,0,0,0,9316,9312, +1,0,0,0,9316,9313,1,0,0,0,9316,9314,1,0,0,0,9316,9315,1,0,0,0,9317,9320, +1,0,0,0,9318,9316,1,0,0,0,9318,9319,1,0,0,0,9319,881,1,0,0,0,9320,9318,1, +0,0,0,9321,9322,5,2244,0,0,9322,9323,5,2441,0,0,9323,883,1,0,0,0,9324,9325, +7,100,0,0,9325,885,1,0,0,0,9326,9327,5,556,0,0,9327,9328,5,904,0,0,9328, +9335,5,871,0,0,9329,9336,5,90,0,0,9330,9333,5,2178,0,0,9331,9332,5,1697, +0,0,9332,9334,3,1170,585,0,9333,9331,1,0,0,0,9333,9334,1,0,0,0,9334,9336, +1,0,0,0,9335,9329,1,0,0,0,9335,9330,1,0,0,0,9335,9336,1,0,0,0,9336,887,1, +0,0,0,9337,9338,5,1643,0,0,9338,9339,5,1712,0,0,9339,9340,5,904,0,0,9340, +9341,7,101,0,0,9341,889,1,0,0,0,9342,9343,5,2090,0,0,9343,9344,5,2078,0, +0,9344,9348,3,2392,1196,0,9345,9346,5,689,0,0,9346,9347,5,1202,0,0,9347, +9349,5,543,0,0,9348,9345,1,0,0,0,9348,9349,1,0,0,0,9349,9351,1,0,0,0,9350, +9352,3,914,457,0,9351,9350,1,0,0,0,9351,9352,1,0,0,0,9352,9354,1,0,0,0,9353, +9355,3,868,434,0,9354,9353,1,0,0,0,9354,9355,1,0,0,0,9355,9357,1,0,0,0,9356, +9358,3,886,443,0,9357,9356,1,0,0,0,9357,9358,1,0,0,0,9358,891,1,0,0,0,9359, +9360,5,2176,0,0,9360,9361,5,2078,0,0,9361,9365,3,2392,1196,0,9362,9363,5, +689,0,0,9363,9364,5,1202,0,0,9364,9366,5,543,0,0,9365,9362,1,0,0,0,9365, +9366,1,0,0,0,9366,9368,1,0,0,0,9367,9369,3,912,456,0,9368,9367,1,0,0,0,9368, +9369,1,0,0,0,9369,9371,1,0,0,0,9370,9372,3,886,443,0,9371,9370,1,0,0,0,9371, +9372,1,0,0,0,9372,9374,1,0,0,0,9373,9375,3,894,447,0,9374,9373,1,0,0,0,9374, +9375,1,0,0,0,9375,893,1,0,0,0,9376,9377,5,1581,0,0,9377,9378,7,102,0,0,9378, +895,1,0,0,0,9379,9380,5,319,0,0,9380,9381,5,2078,0,0,9381,9382,5,1669,0, +0,9382,9386,3,2392,1196,0,9383,9384,5,736,0,0,9384,9385,5,1675,0,0,9385, +9387,3,2392,1196,0,9386,9383,1,0,0,0,9386,9387,1,0,0,0,9387,9409,1,0,0,0, +9388,9389,5,2244,0,0,9389,9390,5,2088,0,0,9390,9400,5,2445,0,0,9391,9392, +5,350,0,0,9392,9397,3,434,217,0,9393,9394,5,2451,0,0,9394,9396,3,434,217, +0,9395,9393,1,0,0,0,9396,9399,1,0,0,0,9397,9395,1,0,0,0,9397,9398,1,0,0, +0,9398,9401,1,0,0,0,9399,9397,1,0,0,0,9400,9391,1,0,0,0,9400,9401,1,0,0, +0,9401,9403,1,0,0,0,9402,9404,3,898,449,0,9403,9402,1,0,0,0,9404,9405,1, +0,0,0,9405,9403,1,0,0,0,9405,9406,1,0,0,0,9406,9407,1,0,0,0,9407,9408,5, +2446,0,0,9408,9410,1,0,0,0,9409,9388,1,0,0,0,9409,9410,1,0,0,0,9410,897, +1,0,0,0,9411,9412,5,952,0,0,9412,9413,5,556,0,0,9413,9431,3,1170,585,0,9414, +9415,5,146,0,0,9415,9417,3,2384,1192,0,9416,9418,5,810,0,0,9417,9416,1,0, +0,0,9417,9418,1,0,0,0,9418,9431,1,0,0,0,9419,9431,3,884,442,0,9420,9421, +5,614,0,0,9421,9431,5,882,0,0,9422,9431,3,900,450,0,9423,9431,3,902,451, +0,9424,9431,5,1254,0,0,9425,9431,5,1241,0,0,9426,9431,3,886,443,0,9427,9431, +3,888,444,0,9428,9431,3,874,437,0,9429,9431,3,1458,729,0,9430,9411,1,0,0, +0,9430,9414,1,0,0,0,9430,9419,1,0,0,0,9430,9420,1,0,0,0,9430,9422,1,0,0, +0,9430,9423,1,0,0,0,9430,9424,1,0,0,0,9430,9425,1,0,0,0,9430,9426,1,0,0, +0,9430,9427,1,0,0,0,9430,9428,1,0,0,0,9430,9429,1,0,0,0,9431,899,1,0,0,0, +9432,9438,5,504,0,0,9433,9435,3,882,441,0,9434,9433,1,0,0,0,9434,9435,1, +0,0,0,9435,9436,1,0,0,0,9436,9439,5,503,0,0,9437,9439,5,385,0,0,9438,9434, +1,0,0,0,9438,9437,1,0,0,0,9439,901,1,0,0,0,9440,9442,5,387,0,0,9441,9443, +3,904,452,0,9442,9441,1,0,0,0,9442,9443,1,0,0,0,9443,9445,1,0,0,0,9444,9446, +3,908,454,0,9445,9444,1,0,0,0,9445,9446,1,0,0,0,9446,9448,1,0,0,0,9447,9449, +3,910,455,0,9448,9447,1,0,0,0,9448,9449,1,0,0,0,9449,9451,1,0,0,0,9450,9452, +3,1198,599,0,9451,9450,1,0,0,0,9451,9452,1,0,0,0,9452,9454,1,0,0,0,9453, +9455,3,1190,595,0,9454,9453,1,0,0,0,9454,9455,1,0,0,0,9455,903,1,0,0,0,9456, +9467,5,2081,0,0,9457,9458,5,258,0,0,9458,9464,5,618,0,0,9459,9465,5,1251, +0,0,9460,9461,5,1482,0,0,9461,9465,3,906,453,0,9462,9463,5,64,0,0,9463,9465, +3,906,453,0,9464,9459,1,0,0,0,9464,9460,1,0,0,0,9464,9462,1,0,0,0,9465,9468, +1,0,0,0,9466,9468,5,1072,0,0,9467,9457,1,0,0,0,9467,9466,1,0,0,0,9468,905, +1,0,0,0,9469,9470,7,103,0,0,9470,907,1,0,0,0,9471,9476,5,715,0,0,9472,9473, +5,258,0,0,9473,9474,5,29,0,0,9474,9477,3,906,453,0,9475,9477,5,1072,0,0, +9476,9472,1,0,0,0,9476,9475,1,0,0,0,9477,909,1,0,0,0,9478,9480,5,744,0,0, +9479,9481,3,1176,588,0,9480,9479,1,0,0,0,9480,9481,1,0,0,0,9481,9506,1,0, +0,0,9482,9504,5,2094,0,0,9483,9488,3,2328,1164,0,9484,9485,5,2451,0,0,9485, +9487,3,2328,1164,0,9486,9484,1,0,0,0,9487,9490,1,0,0,0,9488,9486,1,0,0,0, +9488,9489,1,0,0,0,9489,9505,1,0,0,0,9490,9488,1,0,0,0,9491,9492,3,2328,1164, +0,9492,9493,5,2244,0,0,9493,9501,3,716,358,0,9494,9495,5,2451,0,0,9495,9496, +3,2328,1164,0,9496,9497,5,2244,0,0,9497,9498,3,716,358,0,9498,9500,1,0,0, +0,9499,9494,1,0,0,0,9500,9503,1,0,0,0,9501,9499,1,0,0,0,9501,9502,1,0,0, +0,9502,9505,1,0,0,0,9503,9501,1,0,0,0,9504,9483,1,0,0,0,9504,9491,1,0,0, +0,9505,9507,1,0,0,0,9506,9482,1,0,0,0,9506,9507,1,0,0,0,9507,9511,1,0,0, +0,9508,9509,5,1135,0,0,9509,9511,5,744,0,0,9510,9478,1,0,0,0,9510,9508,1, +0,0,0,9511,911,1,0,0,0,9512,9514,5,350,0,0,9513,9515,5,2451,0,0,9514,9513, +1,0,0,0,9514,9515,1,0,0,0,9515,9516,1,0,0,0,9516,9517,3,916,458,0,9517,913, +1,0,0,0,9518,9520,5,2087,0,0,9519,9521,5,2451,0,0,9520,9519,1,0,0,0,9520, +9521,1,0,0,0,9521,9522,1,0,0,0,9522,9523,3,916,458,0,9523,915,1,0,0,0,9524, +9526,5,2441,0,0,9525,9524,1,0,0,0,9525,9526,1,0,0,0,9526,9529,1,0,0,0,9527, +9528,5,1697,0,0,9528,9530,3,1170,585,0,9529,9527,1,0,0,0,9529,9530,1,0,0, +0,9530,9532,1,0,0,0,9531,9533,5,1585,0,0,9532,9531,1,0,0,0,9532,9533,1,0, +0,0,9533,9535,1,0,0,0,9534,9536,3,920,460,0,9535,9534,1,0,0,0,9535,9536, +1,0,0,0,9536,917,1,0,0,0,9537,9550,3,1452,726,0,9538,9539,5,2445,0,0,9539, +9544,3,1452,726,0,9540,9541,5,2451,0,0,9541,9543,3,1452,726,0,9542,9540, +1,0,0,0,9543,9546,1,0,0,0,9544,9542,1,0,0,0,9544,9545,1,0,0,0,9545,9547, +1,0,0,0,9546,9544,1,0,0,0,9547,9548,5,2446,0,0,9548,9550,1,0,0,0,9549,9537, +1,0,0,0,9549,9538,1,0,0,0,9550,9553,1,0,0,0,9551,9552,5,1697,0,0,9552,9554, +3,1170,585,0,9553,9551,1,0,0,0,9553,9554,1,0,0,0,9554,9557,1,0,0,0,9555, +9556,5,146,0,0,9556,9558,3,1170,585,0,9557,9555,1,0,0,0,9557,9558,1,0,0, +0,9558,9560,1,0,0,0,9559,9561,5,1585,0,0,9560,9559,1,0,0,0,9560,9561,1,0, +0,0,9561,919,1,0,0,0,9562,9572,5,93,0,0,9563,9573,5,1242,0,0,9564,9567,5, +1257,0,0,9565,9566,5,1023,0,0,9566,9568,3,1170,585,0,9567,9565,1,0,0,0,9567, +9568,1,0,0,0,9568,9570,1,0,0,0,9569,9571,3,922,461,0,9570,9569,1,0,0,0,9570, +9571,1,0,0,0,9571,9573,1,0,0,0,9572,9563,1,0,0,0,9572,9564,1,0,0,0,9573, +921,1,0,0,0,9574,9577,5,928,0,0,9575,9578,5,2183,0,0,9576,9578,3,1170,585, +0,9577,9575,1,0,0,0,9577,9576,1,0,0,0,9578,923,1,0,0,0,9579,9580,5,158,0, +0,9580,9581,7,67,0,0,9581,925,1,0,0,0,9582,9598,5,1146,0,0,9583,9595,5,1331, +0,0,9584,9586,5,2439,0,0,9585,9587,3,928,464,0,9586,9585,1,0,0,0,9586,9587, +1,0,0,0,9587,9596,1,0,0,0,9588,9589,5,2445,0,0,9589,9590,5,397,0,0,9590, +9592,5,2439,0,0,9591,9593,3,928,464,0,9592,9591,1,0,0,0,9592,9593,1,0,0, +0,9593,9594,1,0,0,0,9594,9596,5,2446,0,0,9595,9584,1,0,0,0,9595,9588,1,0, +0,0,9595,9596,1,0,0,0,9596,9598,1,0,0,0,9597,9582,1,0,0,0,9597,9583,1,0, +0,0,9598,927,1,0,0,0,9599,9600,5,758,0,0,9600,9601,7,104,0,0,9601,929,1, +0,0,0,9602,9603,5,42,0,0,9603,9604,5,917,0,0,9604,9605,5,2284,0,0,9605,9631, +3,2330,1165,0,9606,9632,3,1188,594,0,9607,9632,3,938,469,0,9608,9632,3,1172, +586,0,9609,9614,3,1632,816,0,9610,9611,5,2451,0,0,9611,9613,3,1632,816,0, +9612,9610,1,0,0,0,9613,9616,1,0,0,0,9614,9612,1,0,0,0,9614,9615,1,0,0,0, +9615,9632,1,0,0,0,9616,9614,1,0,0,0,9617,9622,3,1634,817,0,9618,9619,5,2451, +0,0,9619,9621,3,1634,817,0,9620,9618,1,0,0,0,9621,9624,1,0,0,0,9622,9620, +1,0,0,0,9622,9623,1,0,0,0,9623,9632,1,0,0,0,9624,9622,1,0,0,0,9625,9632, +3,926,463,0,9626,9632,3,884,442,0,9627,9632,3,1278,639,0,9628,9632,3,1280, +640,0,9629,9632,3,1282,641,0,9630,9632,3,1358,679,0,9631,9606,1,0,0,0,9631, +9607,1,0,0,0,9631,9608,1,0,0,0,9631,9609,1,0,0,0,9631,9617,1,0,0,0,9631, +9625,1,0,0,0,9631,9626,1,0,0,0,9631,9627,1,0,0,0,9631,9628,1,0,0,0,9631, +9629,1,0,0,0,9631,9630,1,0,0,0,9631,9632,1,0,0,0,9632,9634,1,0,0,0,9633, +9635,3,1556,778,0,9634,9633,1,0,0,0,9634,9635,1,0,0,0,9635,9639,1,0,0,0, +9636,9637,5,2244,0,0,9637,9638,5,715,0,0,9638,9640,3,1188,594,0,9639,9636, +1,0,0,0,9639,9640,1,0,0,0,9640,9642,1,0,0,0,9641,9643,3,932,466,0,9642,9641, +1,0,0,0,9642,9643,1,0,0,0,9643,9651,1,0,0,0,9644,9645,3,1302,651,0,9645, +9646,5,1482,0,0,9646,9647,5,1589,0,0,9647,9652,1,0,0,0,9648,9652,5,249,0, +0,9649,9650,5,280,0,0,9650,9652,5,625,0,0,9651,9644,1,0,0,0,9651,9648,1, +0,0,0,9651,9649,1,0,0,0,9651,9652,1,0,0,0,9652,931,1,0,0,0,9653,9654,3,934, +467,0,9654,933,1,0,0,0,9655,9682,5,1529,0,0,9656,9683,5,576,0,0,9657,9683, +5,250,0,0,9658,9683,5,614,0,0,9659,9660,5,1257,0,0,9660,9683,7,105,0,0,9661, +9662,5,1735,0,0,9662,9663,5,2306,0,0,9663,9683,3,2070,1035,0,9664,9665,5, +1023,0,0,9665,9683,3,2070,1035,0,9666,9667,5,2306,0,0,9667,9668,5,1449,0, +0,9668,9683,5,814,0,0,9669,9671,5,2244,0,0,9670,9672,5,387,0,0,9671,9670, +1,0,0,0,9671,9672,1,0,0,0,9672,9673,1,0,0,0,9673,9674,5,911,0,0,9674,9675, +5,1594,0,0,9675,9677,5,1643,0,0,9676,9678,3,936,468,0,9677,9676,1,0,0,0, +9677,9678,1,0,0,0,9678,9683,1,0,0,0,9679,9680,5,2244,0,0,9680,9681,7,106, +0,0,9681,9683,5,285,0,0,9682,9656,1,0,0,0,9682,9657,1,0,0,0,9682,9658,1, +0,0,0,9682,9659,1,0,0,0,9682,9661,1,0,0,0,9682,9664,1,0,0,0,9682,9666,1, +0,0,0,9682,9669,1,0,0,0,9682,9679,1,0,0,0,9683,9684,1,0,0,0,9684,9682,1, +0,0,0,9684,9685,1,0,0,0,9685,935,1,0,0,0,9686,9687,3,2398,1199,0,9687,937, +1,0,0,0,9688,9689,5,978,0,0,9689,9690,5,2445,0,0,9690,9694,3,2328,1164,0, +9691,9692,5,503,0,0,9692,9695,3,1646,823,0,9693,9695,5,385,0,0,9694,9691, +1,0,0,0,9694,9693,1,0,0,0,9694,9695,1,0,0,0,9695,9696,1,0,0,0,9696,9697, +5,2446,0,0,9697,939,1,0,0,0,9698,9699,5,42,0,0,9699,9700,5,917,0,0,9700, +9701,5,2284,0,0,9701,9703,5,886,0,0,9702,9704,5,614,0,0,9703,9702,1,0,0, +0,9703,9704,1,0,0,0,9704,9705,1,0,0,0,9705,9706,5,1257,0,0,9706,9715,3,2330, +1165,0,9707,9716,3,1188,594,0,9708,9716,3,942,471,0,9709,9716,3,926,463, +0,9710,9716,3,884,442,0,9711,9716,3,1278,639,0,9712,9716,3,1282,641,0,9713, +9716,3,944,472,0,9714,9716,3,1358,679,0,9715,9707,1,0,0,0,9715,9708,1,0, +0,0,9715,9709,1,0,0,0,9715,9710,1,0,0,0,9715,9711,1,0,0,0,9715,9712,1,0, +0,0,9715,9713,1,0,0,0,9715,9714,1,0,0,0,9715,9716,1,0,0,0,9716,9718,1,0, +0,0,9717,9719,3,946,473,0,9718,9717,1,0,0,0,9718,9719,1,0,0,0,9719,9721, +1,0,0,0,9720,9722,3,952,476,0,9721,9720,1,0,0,0,9721,9722,1,0,0,0,9722,941, +1,0,0,0,9723,9724,5,21,0,0,9724,9725,5,2445,0,0,9725,9726,3,2328,1164,0, +9726,9727,5,2446,0,0,9727,943,1,0,0,0,9728,9729,5,990,0,0,9729,9731,3,1194, +597,0,9730,9732,3,926,463,0,9731,9730,1,0,0,0,9731,9732,1,0,0,0,9732,945, +1,0,0,0,9733,9766,5,21,0,0,9734,9735,5,1236,0,0,9735,9741,5,687,0,0,9736, +9737,5,1449,0,0,9737,9741,5,814,0,0,9738,9741,5,1599,0,0,9739,9741,5,1651, +0,0,9740,9734,1,0,0,0,9740,9736,1,0,0,0,9740,9738,1,0,0,0,9740,9739,1,0, +0,0,9741,9753,1,0,0,0,9742,9743,5,2445,0,0,9743,9748,3,2328,1164,0,9744, +9745,5,2451,0,0,9745,9747,3,2328,1164,0,9746,9744,1,0,0,0,9747,9750,1,0, +0,0,9748,9746,1,0,0,0,9748,9749,1,0,0,0,9749,9751,1,0,0,0,9750,9748,1,0, +0,0,9751,9752,5,2446,0,0,9752,9754,1,0,0,0,9753,9742,1,0,0,0,9753,9754,1, +0,0,0,9754,9767,1,0,0,0,9755,9756,5,2445,0,0,9756,9761,3,2328,1164,0,9757, +9758,5,2451,0,0,9758,9760,3,2328,1164,0,9759,9757,1,0,0,0,9760,9763,1,0, +0,0,9761,9759,1,0,0,0,9761,9762,1,0,0,0,9762,9764,1,0,0,0,9763,9761,1,0, +0,0,9764,9765,5,2446,0,0,9765,9767,1,0,0,0,9766,9740,1,0,0,0,9766,9755,1, +0,0,0,9767,9769,1,0,0,0,9768,9770,3,950,475,0,9769,9768,1,0,0,0,9769,9770, +1,0,0,0,9770,947,1,0,0,0,9771,9772,5,319,0,0,9772,9773,5,917,0,0,9773,9774, +5,2284,0,0,9774,9775,5,886,0,0,9775,9776,5,1257,0,0,9776,9786,3,2330,1165, +0,9777,9783,3,1188,594,0,9778,9779,5,2078,0,0,9779,9783,3,2392,1196,0,9780, +9783,3,884,442,0,9781,9783,7,107,0,0,9782,9777,1,0,0,0,9782,9778,1,0,0,0, +9782,9780,1,0,0,0,9782,9781,1,0,0,0,9783,9784,1,0,0,0,9784,9782,1,0,0,0, +9784,9785,1,0,0,0,9785,9787,1,0,0,0,9786,9782,1,0,0,0,9786,9787,1,0,0,0, +9787,9789,1,0,0,0,9788,9790,3,926,463,0,9789,9788,1,0,0,0,9789,9790,1,0, +0,0,9790,9830,1,0,0,0,9791,9807,5,2306,0,0,9792,9794,5,2451,0,0,9793,9792, +1,0,0,0,9793,9794,1,0,0,0,9794,9803,1,0,0,0,9795,9796,5,1236,0,0,9796,9804, +5,687,0,0,9797,9798,5,1449,0,0,9798,9804,5,814,0,0,9799,9804,5,1599,0,0, +9800,9804,5,1651,0,0,9801,9802,5,242,0,0,9802,9804,5,1625,0,0,9803,9795, +1,0,0,0,9803,9797,1,0,0,0,9803,9799,1,0,0,0,9803,9800,1,0,0,0,9803,9801, +1,0,0,0,9804,9806,1,0,0,0,9805,9793,1,0,0,0,9806,9809,1,0,0,0,9807,9805, +1,0,0,0,9807,9808,1,0,0,0,9808,9823,1,0,0,0,9809,9807,1,0,0,0,9810,9815, +5,2445,0,0,9811,9813,5,2451,0,0,9812,9811,1,0,0,0,9812,9813,1,0,0,0,9813, +9814,1,0,0,0,9814,9816,3,2398,1199,0,9815,9812,1,0,0,0,9816,9817,1,0,0,0, +9817,9815,1,0,0,0,9817,9818,1,0,0,0,9818,9819,1,0,0,0,9819,9821,5,2446,0, +0,9820,9822,3,950,475,0,9821,9820,1,0,0,0,9821,9822,1,0,0,0,9822,9824,1, +0,0,0,9823,9810,1,0,0,0,9823,9824,1,0,0,0,9824,9826,1,0,0,0,9825,9827,3, +952,476,0,9826,9825,1,0,0,0,9826,9827,1,0,0,0,9827,9829,1,0,0,0,9828,9791, +1,0,0,0,9829,9832,1,0,0,0,9830,9828,1,0,0,0,9830,9831,1,0,0,0,9831,949,1, +0,0,0,9832,9830,1,0,0,0,9833,9834,7,108,0,0,9834,9835,5,1019,0,0,9835,9836, +5,2255,0,0,9836,951,1,0,0,0,9837,9838,5,1473,0,0,9838,9840,5,696,0,0,9839, +9841,7,109,0,0,9840,9839,1,0,0,0,9840,9841,1,0,0,0,9841,953,1,0,0,0,9842, +9843,5,319,0,0,9843,9844,5,917,0,0,9844,9845,5,2360,0,0,9845,9850,3,964, +482,0,9846,9847,5,2445,0,0,9847,9848,3,2346,1173,0,9848,9849,5,2446,0,0, +9849,9851,1,0,0,0,9850,9846,1,0,0,0,9850,9851,1,0,0,0,9851,9853,1,0,0,0, +9852,9854,3,962,481,0,9853,9852,1,0,0,0,9853,9854,1,0,0,0,9854,9856,1,0, +0,0,9855,9857,3,960,480,0,9856,9855,1,0,0,0,9856,9857,1,0,0,0,9857,9860, +1,0,0,0,9858,9859,7,17,0,0,9859,9861,5,1470,0,0,9860,9858,1,0,0,0,9860,9861, +1,0,0,0,9861,9864,1,0,0,0,9862,9865,3,970,485,0,9863,9865,3,972,486,0,9864, +9862,1,0,0,0,9864,9863,1,0,0,0,9865,955,1,0,0,0,9866,9867,5,42,0,0,9867, +9868,5,917,0,0,9868,9869,5,2360,0,0,9869,9877,3,964,482,0,9870,9878,3,962, +481,0,9871,9878,3,960,480,0,9872,9873,7,17,0,0,9873,9878,5,1470,0,0,9874, +9878,5,249,0,0,9875,9878,5,1509,0,0,9876,9878,5,2201,0,0,9877,9870,1,0,0, +0,9877,9871,1,0,0,0,9877,9872,1,0,0,0,9877,9874,1,0,0,0,9877,9875,1,0,0, +0,9877,9876,1,0,0,0,9878,957,1,0,0,0,9879,9880,5,467,0,0,9880,9881,5,917, +0,0,9881,9882,5,2360,0,0,9882,9883,3,964,482,0,9883,959,1,0,0,0,9884,9886, +5,1529,0,0,9885,9887,7,110,0,0,9886,9885,1,0,0,0,9886,9887,1,0,0,0,9887, +9899,1,0,0,0,9888,9897,5,1257,0,0,9889,9898,5,404,0,0,9890,9898,5,242,0, +0,9891,9898,5,865,0,0,9892,9893,5,349,0,0,9893,9898,5,989,0,0,9894,9895, +5,865,0,0,9895,9896,5,349,0,0,9896,9898,5,989,0,0,9897,9889,1,0,0,0,9897, +9890,1,0,0,0,9897,9891,1,0,0,0,9897,9892,1,0,0,0,9897,9894,1,0,0,0,9898, +9900,1,0,0,0,9899,9888,1,0,0,0,9899,9900,1,0,0,0,9900,961,1,0,0,0,9901,9902, +5,1367,0,0,9902,9911,3,2384,1192,0,9903,9904,5,1370,0,0,9904,9911,3,2384, +1192,0,9905,9906,5,1618,0,0,9906,9911,3,2384,1192,0,9907,9908,5,2078,0,0, +9908,9911,3,1648,824,0,9909,9911,7,107,0,0,9910,9901,1,0,0,0,9910,9903,1, +0,0,0,9910,9905,1,0,0,0,9910,9907,1,0,0,0,9910,9909,1,0,0,0,9911,9912,1, +0,0,0,9912,9910,1,0,0,0,9912,9913,1,0,0,0,9913,963,1,0,0,0,9914,9917,3,2390, +1195,0,9915,9916,5,2438,0,0,9916,9918,3,2392,1196,0,9917,9915,1,0,0,0,9917, +9918,1,0,0,0,9918,965,1,0,0,0,9919,9922,3,2390,1195,0,9920,9921,5,2438,0, +0,9921,9923,3,2392,1196,0,9922,9920,1,0,0,0,9922,9923,1,0,0,0,9923,967,1, +0,0,0,9924,9929,3,2390,1195,0,9925,9926,5,2438,0,0,9926,9928,3,2392,1196, +0,9927,9925,1,0,0,0,9928,9931,1,0,0,0,9929,9927,1,0,0,0,9929,9930,1,0,0, +0,9930,969,1,0,0,0,9931,9929,1,0,0,0,9932,9933,5,1257,0,0,9933,9934,3,2330, +1165,0,9934,9935,5,2445,0,0,9935,9936,3,2346,1173,0,9936,9937,5,2446,0,0, +9937,971,1,0,0,0,9938,9939,5,69,0,0,9939,9940,3,1888,944,0,9940,973,1,0, +0,0,9941,9942,5,42,0,0,9942,9943,5,1264,0,0,9943,9947,3,966,483,0,9944,9948, +3,982,491,0,9945,9948,3,994,497,0,9946,9948,5,249,0,0,9947,9944,1,0,0,0, +9947,9945,1,0,0,0,9947,9946,1,0,0,0,9948,975,1,0,0,0,9949,9950,5,467,0,0, +9950,9951,5,1264,0,0,9951,9953,3,966,483,0,9952,9954,5,614,0,0,9953,9952, +1,0,0,0,9953,9954,1,0,0,0,9954,977,1,0,0,0,9955,9958,5,319,0,0,9956,9957, +5,1305,0,0,9957,9959,5,1560,0,0,9958,9956,1,0,0,0,9958,9959,1,0,0,0,9959, +9960,1,0,0,0,9960,9961,5,1264,0,0,9961,9962,3,966,483,0,9962,9963,5,133, +0,0,9963,9968,3,980,490,0,9964,9965,5,2451,0,0,9965,9967,3,980,490,0,9966, +9964,1,0,0,0,9967,9970,1,0,0,0,9968,9966,1,0,0,0,9968,9969,1,0,0,0,9969, +9974,1,0,0,0,9970,9968,1,0,0,0,9971,9972,5,1679,0,0,9972,9973,5,2469,0,0, +9973,9975,7,21,0,0,9974,9971,1,0,0,0,9974,9975,1,0,0,0,9975,979,1,0,0,0, +9976,9977,5,2445,0,0,9977,9982,3,2364,1182,0,9978,9979,5,2451,0,0,9979,9981, +3,2364,1182,0,9980,9978,1,0,0,0,9981,9984,1,0,0,0,9982,9980,1,0,0,0,9982, +9983,1,0,0,0,9983,9985,1,0,0,0,9984,9982,1,0,0,0,9985,9986,5,2446,0,0,9986, +9988,5,1584,0,0,9987,9989,5,2445,0,0,9988,9987,1,0,0,0,9988,9989,1,0,0,0, +9989,9990,1,0,0,0,9990,9992,3,2364,1182,0,9991,9993,5,2446,0,0,9992,9991, +1,0,0,0,9992,9993,1,0,0,0,9993,9995,1,0,0,0,9994,9996,3,984,492,0,9995,9994, +1,0,0,0,9995,9996,1,0,0,0,9996,9997,1,0,0,0,9997,9998,3,992,496,0,9998,981, +1,0,0,0,9999,10000,5,21,0,0,10000,10001,5,133,0,0,10001,10002,3,980,490, +0,10002,983,1,0,0,0,10003,10004,5,48,0,0,10004,10005,5,2139,0,0,10005,10008, +3,986,493,0,10006,10008,3,990,495,0,10007,10003,1,0,0,0,10007,10006,1,0, +0,0,10008,985,1,0,0,0,10009,10014,3,988,494,0,10010,10011,5,2451,0,0,10011, +10013,3,988,494,0,10012,10010,1,0,0,0,10013,10016,1,0,0,0,10014,10012,1, +0,0,0,10014,10015,1,0,0,0,10015,987,1,0,0,0,10016,10014,1,0,0,0,10017,10018, +3,2338,1169,0,10018,10019,5,2445,0,0,10019,10024,3,2364,1182,0,10020,10021, +5,2451,0,0,10021,10023,3,2364,1182,0,10022,10020,1,0,0,0,10023,10026,1,0, +0,0,10024,10022,1,0,0,0,10024,10025,1,0,0,0,10025,10027,1,0,0,0,10026,10024, +1,0,0,0,10027,10028,5,2446,0,0,10028,989,1,0,0,0,10029,10030,5,2306,0,0, +10030,10031,5,715,0,0,10031,10032,5,294,0,0,10032,10033,5,2451,0,0,10033, +10034,5,1620,0,0,10034,10035,5,294,0,0,10035,10039,3,2280,1140,0,10036,10037, +5,260,0,0,10037,10038,5,48,0,0,10038,10040,5,349,0,0,10039,10036,1,0,0,0, +10039,10040,1,0,0,0,10040,10044,1,0,0,0,10041,10042,5,2306,0,0,10042,10043, +5,237,0,0,10043,10045,5,294,0,0,10044,10041,1,0,0,0,10044,10045,1,0,0,0, +10045,991,1,0,0,0,10046,10047,5,2244,0,0,10047,10048,3,968,484,0,10048,993, +1,0,0,0,10049,10050,5,467,0,0,10050,10051,5,133,0,0,10051,10052,5,2445,0, +0,10052,10057,3,2364,1182,0,10053,10054,5,2451,0,0,10054,10056,3,2364,1182, +0,10055,10053,1,0,0,0,10056,10059,1,0,0,0,10057,10055,1,0,0,0,10057,10058, +1,0,0,0,10058,10060,1,0,0,0,10059,10057,1,0,0,0,10060,10062,5,2446,0,0,10061, +10063,5,614,0,0,10062,10061,1,0,0,0,10062,10063,1,0,0,0,10063,995,1,0,0, +0,10064,10065,5,319,0,0,10065,10066,5,917,0,0,10066,10067,5,2284,0,0,10067, +10070,3,2330,1165,0,10068,10069,5,1244,0,0,10069,10071,3,2302,1151,0,10070, +10068,1,0,0,0,10070,10071,1,0,0,0,10071,10089,1,0,0,0,10072,10075,5,2445, +0,0,10073,10076,3,998,499,0,10074,10076,3,1000,500,0,10075,10073,1,0,0,0, +10075,10074,1,0,0,0,10076,10084,1,0,0,0,10077,10080,5,2451,0,0,10078,10081, +3,998,499,0,10079,10081,3,1000,500,0,10080,10078,1,0,0,0,10080,10079,1,0, +0,0,10081,10083,1,0,0,0,10082,10077,1,0,0,0,10083,10086,1,0,0,0,10084,10082, +1,0,0,0,10084,10085,1,0,0,0,10085,10087,1,0,0,0,10086,10084,1,0,0,0,10087, +10088,5,2446,0,0,10088,10090,1,0,0,0,10089,10072,1,0,0,0,10089,10090,1,0, +0,0,10090,10111,1,0,0,0,10091,10092,5,1257,0,0,10092,10093,5,1432,0,0,10093, +10097,5,2081,0,0,10094,10095,7,2,0,0,10095,10096,5,1521,0,0,10096,10098, +5,1435,0,0,10097,10094,1,0,0,0,10097,10098,1,0,0,0,10098,10112,1,0,0,0,10099, +10101,3,1196,598,0,10100,10099,1,0,0,0,10100,10101,1,0,0,0,10101,10103,1, +0,0,0,10102,10104,7,107,0,0,10103,10102,1,0,0,0,10103,10104,1,0,0,0,10104, +10106,1,0,0,0,10105,10107,3,926,463,0,10106,10105,1,0,0,0,10106,10107,1, +0,0,0,10107,10109,1,0,0,0,10108,10110,3,924,462,0,10109,10108,1,0,0,0,10109, +10110,1,0,0,0,10110,10112,1,0,0,0,10111,10091,1,0,0,0,10111,10100,1,0,0, +0,10112,10130,1,0,0,0,10113,10114,5,2244,0,0,10114,10124,5,715,0,0,10115, +10119,3,1188,594,0,10116,10117,5,2078,0,0,10117,10119,3,2392,1196,0,10118, +10115,1,0,0,0,10118,10116,1,0,0,0,10119,10120,1,0,0,0,10120,10118,1,0,0, +0,10120,10121,1,0,0,0,10121,10123,1,0,0,0,10122,10118,1,0,0,0,10123,10126, +1,0,0,0,10124,10122,1,0,0,0,10124,10125,1,0,0,0,10125,10131,1,0,0,0,10126, +10124,1,0,0,0,10127,10128,5,2244,0,0,10128,10129,5,1135,0,0,10129,10131, +5,715,0,0,10130,10113,1,0,0,0,10130,10127,1,0,0,0,10130,10131,1,0,0,0,10131, +10133,1,0,0,0,10132,10134,3,1002,501,0,10133,10132,1,0,0,0,10133,10134,1, +0,0,0,10134,10137,1,0,0,0,10135,10136,5,618,0,0,10136,10138,5,2205,0,0,10137, +10135,1,0,0,0,10137,10138,1,0,0,0,10138,10142,1,0,0,0,10139,10140,7,17,0, +0,10140,10141,5,1482,0,0,10141,10143,5,1589,0,0,10142,10139,1,0,0,0,10142, +10143,1,0,0,0,10143,10144,1,0,0,0,10144,10145,5,69,0,0,10145,10146,3,1860, +930,0,10146,997,1,0,0,0,10147,10148,5,1626,0,0,10148,10149,5,618,0,0,10149, +10150,5,2445,0,0,10150,10151,3,2390,1195,0,10151,10152,5,2446,0,0,10152, +10156,5,783,0,0,10153,10154,3,2274,1137,0,10154,10155,5,2438,0,0,10155,10157, +1,0,0,0,10156,10153,1,0,0,0,10156,10157,1,0,0,0,10157,10158,1,0,0,0,10158, +10159,3,2390,1195,0,10159,999,1,0,0,0,10160,10163,3,2390,1195,0,10161,10163, +3,2388,1194,0,10162,10160,1,0,0,0,10162,10161,1,0,0,0,10163,10166,1,0,0, +0,10164,10165,5,503,0,0,10165,10167,3,1646,823,0,10166,10164,1,0,0,0,10166, +10167,1,0,0,0,10167,1001,1,0,0,0,10168,10169,5,1018,0,0,10169,10208,5,1529, +0,0,10170,10203,5,1529,0,0,10171,10204,7,111,0,0,10172,10173,5,1257,0,0, +10173,10204,7,105,0,0,10174,10175,5,1735,0,0,10175,10178,5,2306,0,0,10176, +10178,5,1023,0,0,10177,10174,1,0,0,0,10177,10176,1,0,0,0,10178,10204,1,0, +0,0,10179,10183,5,2306,0,0,10180,10181,5,1449,0,0,10181,10184,5,814,0,0, +10182,10184,5,1599,0,0,10183,10180,1,0,0,0,10183,10182,1,0,0,0,10184,10204, +1,0,0,0,10185,10198,5,2244,0,0,10186,10188,5,387,0,0,10187,10189,7,112,0, +0,10188,10187,1,0,0,0,10188,10189,1,0,0,0,10189,10190,1,0,0,0,10190,10191, +5,1594,0,0,10191,10199,5,1643,0,0,10192,10194,7,112,0,0,10193,10192,1,0, +0,0,10193,10194,1,0,0,0,10194,10195,1,0,0,0,10195,10196,5,1594,0,0,10196, +10197,5,1643,0,0,10197,10199,5,2478,0,0,10198,10186,1,0,0,0,10198,10193, +1,0,0,0,10199,10204,1,0,0,0,10200,10201,5,2244,0,0,10201,10202,7,106,0,0, +10202,10204,5,285,0,0,10203,10171,1,0,0,0,10203,10172,1,0,0,0,10203,10177, +1,0,0,0,10203,10179,1,0,0,0,10203,10185,1,0,0,0,10203,10200,1,0,0,0,10204, +10205,1,0,0,0,10205,10203,1,0,0,0,10205,10206,1,0,0,0,10206,10208,1,0,0, +0,10207,10168,1,0,0,0,10207,10170,1,0,0,0,10208,1003,1,0,0,0,10209,10210, +5,467,0,0,10210,10211,5,917,0,0,10211,10212,5,2284,0,0,10212,10215,3,2330, +1165,0,10213,10214,5,1445,0,0,10214,10216,5,2081,0,0,10215,10213,1,0,0,0, +10215,10216,1,0,0,0,10216,1005,1,0,0,0,10217,10218,5,467,0,0,10218,10219, +5,917,0,0,10219,10220,5,2284,0,0,10220,10223,5,886,0,0,10221,10222,5,689, +0,0,10222,10224,5,543,0,0,10223,10221,1,0,0,0,10223,10224,1,0,0,0,10224, +10225,1,0,0,0,10225,10226,5,1257,0,0,10226,10227,3,2330,1165,0,10227,1007, +1,0,0,0,10228,10231,5,319,0,0,10229,10230,5,1305,0,0,10230,10232,5,1560, +0,0,10231,10229,1,0,0,0,10231,10232,1,0,0,0,10232,10233,1,0,0,0,10233,10234, +5,294,0,0,10234,10235,3,1010,505,0,10235,10239,5,2244,0,0,10236,10237,3, +2338,1169,0,10237,10238,5,2438,0,0,10238,10240,1,0,0,0,10239,10236,1,0,0, +0,10239,10240,1,0,0,0,10240,10241,1,0,0,0,10241,10246,3,2278,1139,0,10242, +10243,5,739,0,0,10243,10247,7,71,0,0,10244,10245,5,5,0,0,10245,10247,5,641, +0,0,10246,10242,1,0,0,0,10246,10244,1,0,0,0,10246,10247,1,0,0,0,10247,1009, +1,0,0,0,10248,10249,3,2392,1196,0,10249,1011,1,0,0,0,10250,10251,5,319,0, +0,10251,10252,5,220,0,0,10252,10253,3,464,232,0,10253,10254,5,2445,0,0,10254, +10255,3,2328,1164,0,10255,10257,3,2364,1182,0,10256,10258,5,1707,0,0,10257, +10256,1,0,0,0,10257,10258,1,0,0,0,10258,10267,1,0,0,0,10259,10260,5,2451, +0,0,10260,10261,3,2328,1164,0,10261,10263,3,2364,1182,0,10262,10264,5,1707, +0,0,10263,10262,1,0,0,0,10263,10264,1,0,0,0,10264,10266,1,0,0,0,10265,10259, +1,0,0,0,10266,10269,1,0,0,0,10267,10265,1,0,0,0,10267,10268,1,0,0,0,10268, +10270,1,0,0,0,10269,10267,1,0,0,0,10270,10290,5,2446,0,0,10271,10289,3,1188, +594,0,10272,10273,5,1697,0,0,10273,10289,3,1170,585,0,10274,10275,5,2078, +0,0,10275,10289,3,1648,824,0,10276,10289,5,715,0,0,10277,10278,5,1693,0, +0,10278,10280,5,2081,0,0,10279,10277,1,0,0,0,10279,10280,1,0,0,0,10280,10281, +1,0,0,0,10281,10282,5,659,0,0,10282,10286,5,2439,0,0,10283,10284,5,658,0, +0,10284,10285,5,783,0,0,10285,10287,3,2070,1035,0,10286,10283,1,0,0,0,10286, +10287,1,0,0,0,10287,10289,1,0,0,0,10288,10271,1,0,0,0,10288,10272,1,0,0, +0,10288,10274,1,0,0,0,10288,10276,1,0,0,0,10288,10279,1,0,0,0,10289,10292, +1,0,0,0,10290,10288,1,0,0,0,10290,10291,1,0,0,0,10291,10294,1,0,0,0,10292, +10290,1,0,0,0,10293,10295,3,926,463,0,10294,10293,1,0,0,0,10294,10295,1, +0,0,0,10295,10297,1,0,0,0,10296,10298,7,113,0,0,10297,10296,1,0,0,0,10297, +10298,1,0,0,0,10298,10300,1,0,0,0,10299,10301,7,107,0,0,10300,10299,1,0, +0,0,10300,10301,1,0,0,0,10301,1013,1,0,0,0,10302,10304,5,319,0,0,10303,10305, +5,906,0,0,10304,10303,1,0,0,0,10304,10305,1,0,0,0,10305,10306,1,0,0,0,10306, +10307,5,1461,0,0,10307,10308,3,2392,1196,0,10308,10311,5,856,0,0,10309,10312, +3,1016,508,0,10310,10312,3,1018,509,0,10311,10309,1,0,0,0,10311,10310,1, +0,0,0,10312,10313,1,0,0,0,10313,10311,1,0,0,0,10313,10314,1,0,0,0,10314, +10316,1,0,0,0,10315,10317,3,764,382,0,10316,10315,1,0,0,0,10316,10317,1, +0,0,0,10317,1015,1,0,0,0,10318,10319,7,114,0,0,10319,10327,7,115,0,0,10320, +10324,5,1454,0,0,10321,10325,3,1170,585,0,10322,10325,5,2183,0,0,10323,10325, +5,387,0,0,10324,10321,1,0,0,0,10324,10322,1,0,0,0,10324,10323,1,0,0,0,10325, +10327,1,0,0,0,10326,10318,1,0,0,0,10326,10320,1,0,0,0,10327,1017,1,0,0,0, +10328,10332,7,116,0,0,10329,10333,3,2070,1035,0,10330,10333,5,2183,0,0,10331, +10333,5,387,0,0,10332,10329,1,0,0,0,10332,10330,1,0,0,0,10332,10331,1,0, +0,0,10333,10346,1,0,0,0,10334,10338,5,1358,0,0,10335,10339,3,2308,1154,0, +10336,10339,5,1226,0,0,10337,10339,5,387,0,0,10338,10335,1,0,0,0,10338,10336, +1,0,0,0,10338,10337,1,0,0,0,10339,10346,1,0,0,0,10340,10343,5,1357,0,0,10341, +10344,3,2070,1035,0,10342,10344,5,387,0,0,10343,10341,1,0,0,0,10343,10342, +1,0,0,0,10344,10346,1,0,0,0,10345,10328,1,0,0,0,10345,10334,1,0,0,0,10345, +10340,1,0,0,0,10346,1019,1,0,0,0,10347,10348,5,319,0,0,10348,10349,5,876, +0,0,10349,10350,5,1461,0,0,10350,10353,3,2392,1196,0,10351,10354,3,1022, +511,0,10352,10354,3,1024,512,0,10353,10351,1,0,0,0,10353,10352,1,0,0,0,10353, +10354,1,0,0,0,10354,1021,1,0,0,0,10355,10356,5,626,0,0,10356,10357,3,2392, +1196,0,10357,1023,1,0,0,0,10358,10359,5,703,0,0,10359,10360,3,2392,1196, +0,10360,1025,1,0,0,0,10361,10364,5,319,0,0,10362,10363,5,1305,0,0,10363, +10365,5,1560,0,0,10364,10362,1,0,0,0,10364,10365,1,0,0,0,10365,10367,1,0, +0,0,10366,10368,7,28,0,0,10367,10366,1,0,0,0,10367,10368,1,0,0,0,10368,10369, +1,0,0,0,10369,10371,5,1313,0,0,10370,10372,3,2392,1196,0,10371,10370,1,0, +0,0,10371,10372,1,0,0,0,10372,10378,1,0,0,0,10373,10375,5,626,0,0,10374, +10376,7,28,0,0,10375,10374,1,0,0,0,10375,10376,1,0,0,0,10376,10377,1,0,0, +0,10377,10379,3,2392,1196,0,10378,10373,1,0,0,0,10378,10379,1,0,0,0,10379, +10383,1,0,0,0,10380,10381,5,618,0,0,10381,10382,5,183,0,0,10382,10384,3, +2392,1196,0,10383,10380,1,0,0,0,10383,10384,1,0,0,0,10384,10387,1,0,0,0, +10385,10386,5,1257,0,0,10386,10388,3,1766,883,0,10387,10385,1,0,0,0,10387, +10388,1,0,0,0,10388,1027,1,0,0,0,10389,10391,5,319,0,0,10390,10392,5,210, +0,0,10391,10390,1,0,0,0,10391,10392,1,0,0,0,10392,10393,1,0,0,0,10393,10394, +5,1572,0,0,10394,10395,5,1409,0,0,10395,10400,3,2392,1196,0,10396,10397, +5,618,0,0,10397,10398,5,1407,0,0,10398,10399,5,348,0,0,10399,10401,3,2392, +1196,0,10400,10396,1,0,0,0,10400,10401,1,0,0,0,10401,10406,1,0,0,0,10402, +10403,5,69,0,0,10403,10404,5,1244,0,0,10404,10405,7,81,0,0,10405,10407,3, +2070,1035,0,10406,10402,1,0,0,0,10406,10407,1,0,0,0,10407,10412,1,0,0,0, +10408,10413,5,1445,0,0,10409,10410,5,653,0,0,10410,10411,5,603,0,0,10411, +10413,5,348,0,0,10412,10408,1,0,0,0,10412,10409,1,0,0,0,10412,10413,1,0, +0,0,10413,1029,1,0,0,0,10414,10415,5,319,0,0,10415,10416,5,1591,0,0,10416, +10418,3,2296,1148,0,10417,10419,3,1518,759,0,10418,10417,1,0,0,0,10418,10419, +1,0,0,0,10419,10421,1,0,0,0,10420,10422,3,764,382,0,10421,10420,1,0,0,0, +10421,10422,1,0,0,0,10422,1031,1,0,0,0,10423,10433,5,319,0,0,10424,10425, +7,117,0,0,10425,10434,5,2090,0,0,10426,10434,5,2383,0,0,10427,10434,5,2373, +0,0,10428,10430,5,2377,0,0,10429,10428,1,0,0,0,10429,10430,1,0,0,0,10430, +10431,1,0,0,0,10431,10434,5,2369,0,0,10432,10434,5,2377,0,0,10433,10424, +1,0,0,0,10433,10426,1,0,0,0,10433,10427,1,0,0,0,10433,10429,1,0,0,0,10433, +10432,1,0,0,0,10433,10434,1,0,0,0,10434,10435,1,0,0,0,10435,10439,5,2081, +0,0,10436,10437,3,2274,1137,0,10437,10438,5,2438,0,0,10438,10440,1,0,0,0, +10439,10436,1,0,0,0,10439,10440,1,0,0,0,10440,10441,1,0,0,0,10441,10445, +3,1104,552,0,10442,10443,5,689,0,0,10443,10444,5,1202,0,0,10444,10446,5, +543,0,0,10445,10442,1,0,0,0,10445,10446,1,0,0,0,10446,10457,1,0,0,0,10447, +10448,5,1679,0,0,10448,10455,5,2469,0,0,10449,10456,5,946,0,0,10450,10452, +5,2374,0,0,10451,10450,1,0,0,0,10451,10452,1,0,0,0,10452,10453,1,0,0,0,10453, +10456,5,349,0,0,10454,10456,5,1131,0,0,10455,10449,1,0,0,0,10455,10451,1, +0,0,0,10455,10454,1,0,0,0,10456,10458,1,0,0,0,10457,10447,1,0,0,0,10457, +10458,1,0,0,0,10458,10462,1,0,0,0,10459,10463,3,1056,528,0,10460,10463,3, +1034,517,0,10461,10463,3,1044,522,0,10462,10459,1,0,0,0,10462,10460,1,0, +0,0,10462,10461,1,0,0,0,10463,10465,1,0,0,0,10464,10466,3,1522,761,0,10465, +10464,1,0,0,0,10465,10466,1,0,0,0,10466,10469,1,0,0,0,10467,10468,5,1335, +0,0,10468,10470,3,2330,1165,0,10469,10467,1,0,0,0,10469,10470,1,0,0,0,10470, +10473,1,0,0,0,10471,10472,5,2214,0,0,10472,10474,5,1484,0,0,10473,10471, +1,0,0,0,10473,10474,1,0,0,0,10474,1033,1,0,0,0,10475,10476,5,1244,0,0,10476, +10481,5,2349,0,0,10477,10478,5,2445,0,0,10478,10479,3,1052,526,0,10479,10480, +5,2446,0,0,10480,10482,1,0,0,0,10481,10477,1,0,0,0,10481,10482,1,0,0,0,10482, +10485,1,0,0,0,10483,10484,5,2349,0,0,10484,10486,3,1040,520,0,10485,10483, +1,0,0,0,10485,10486,1,0,0,0,10486,10488,1,0,0,0,10487,10489,3,1042,521,0, +10488,10487,1,0,0,0,10488,10489,1,0,0,0,10489,10491,1,0,0,0,10490,10492, +3,1036,518,0,10491,10490,1,0,0,0,10491,10492,1,0,0,0,10492,10497,1,0,0,0, +10493,10494,5,1257,0,0,10494,10495,5,242,0,0,10495,10496,7,118,0,0,10496, +10498,5,1605,0,0,10497,10493,1,0,0,0,10497,10498,1,0,0,0,10498,10500,1,0, +0,0,10499,10501,3,1050,525,0,10500,10499,1,0,0,0,10500,10501,1,0,0,0,10501, +10503,1,0,0,0,10502,10504,3,1048,524,0,10503,10502,1,0,0,0,10503,10504,1, +0,0,0,10504,10506,1,0,0,0,10505,10507,3,1196,598,0,10506,10505,1,0,0,0,10506, +10507,1,0,0,0,10507,10509,1,0,0,0,10508,10510,3,1078,539,0,10509,10508,1, +0,0,0,10509,10510,1,0,0,0,10510,1035,1,0,0,0,10511,10512,5,2286,0,0,10512, +10513,5,238,0,0,10513,10514,5,2445,0,0,10514,10515,3,2328,1164,0,10515,10516, +5,69,0,0,10516,10517,5,2445,0,0,10517,10518,3,2070,1035,0,10518,10528,5, +2446,0,0,10519,10520,5,2451,0,0,10520,10521,3,2328,1164,0,10521,10522,5, +69,0,0,10522,10523,5,2445,0,0,10523,10524,3,2070,1035,0,10524,10525,5,2446, +0,0,10525,10527,1,0,0,0,10526,10519,1,0,0,0,10527,10530,1,0,0,0,10528,10526, +1,0,0,0,10528,10529,1,0,0,0,10529,10531,1,0,0,0,10530,10528,1,0,0,0,10531, +10532,5,2446,0,0,10532,1037,1,0,0,0,10533,10535,5,2349,0,0,10534,10536,5, +237,0,0,10535,10534,1,0,0,0,10535,10536,1,0,0,0,10536,10537,1,0,0,0,10537, +10539,3,2328,1164,0,10538,10540,3,1040,520,0,10539,10538,1,0,0,0,10539,10540, +1,0,0,0,10540,10542,1,0,0,0,10541,10543,3,1042,521,0,10542,10541,1,0,0,0, +10542,10543,1,0,0,0,10543,1039,1,0,0,0,10544,10545,5,1761,0,0,10545,10569, +5,69,0,0,10546,10547,5,1236,0,0,10547,10570,5,1549,0,0,10548,10550,7,119, +0,0,10549,10548,1,0,0,0,10549,10550,1,0,0,0,10550,10554,1,0,0,0,10551,10555, +5,215,0,0,10552,10553,5,124,0,0,10553,10555,5,2350,0,0,10554,10551,1,0,0, +0,10554,10552,1,0,0,0,10555,10567,1,0,0,0,10556,10561,3,1626,813,0,10557, +10558,5,2445,0,0,10558,10559,3,1638,819,0,10559,10560,5,2446,0,0,10560,10562, +1,0,0,0,10561,10557,1,0,0,0,10561,10562,1,0,0,0,10562,10568,1,0,0,0,10563, +10564,5,2445,0,0,10564,10565,3,1638,819,0,10565,10566,5,2446,0,0,10566,10568, +1,0,0,0,10567,10556,1,0,0,0,10567,10563,1,0,0,0,10567,10568,1,0,0,0,10568, +10570,1,0,0,0,10569,10546,1,0,0,0,10569,10549,1,0,0,0,10570,10576,1,0,0, +0,10571,10572,5,1761,0,0,10572,10573,5,2264,0,0,10573,10574,5,69,0,0,10574, +10576,7,95,0,0,10575,10544,1,0,0,0,10575,10571,1,0,0,0,10576,1041,1,0,0, +0,10577,10578,5,2343,0,0,10578,10580,5,2442,0,0,10579,10577,1,0,0,0,10579, +10580,1,0,0,0,10580,10581,1,0,0,0,10581,10582,5,484,0,0,10582,10586,5,2442, +0,0,10583,10584,3,1304,652,0,10584,10585,5,1136,0,0,10585,10587,1,0,0,0, +10586,10583,1,0,0,0,10586,10587,1,0,0,0,10587,10591,1,0,0,0,10588,10589, +3,1304,652,0,10589,10590,5,56,0,0,10590,10592,1,0,0,0,10591,10588,1,0,0, +0,10591,10592,1,0,0,0,10592,1043,1,0,0,0,10593,10597,5,1244,0,0,10594,10595, +3,2274,1137,0,10595,10596,5,2438,0,0,10596,10598,1,0,0,0,10597,10594,1,0, +0,0,10597,10598,1,0,0,0,10598,10599,1,0,0,0,10599,10601,3,1046,523,0,10600, +10602,3,1054,527,0,10601,10600,1,0,0,0,10601,10602,1,0,0,0,10602,10614,1, +0,0,0,10603,10604,5,2445,0,0,10604,10609,3,1052,526,0,10605,10606,5,2451, +0,0,10606,10608,3,1052,526,0,10607,10605,1,0,0,0,10608,10611,1,0,0,0,10609, +10607,1,0,0,0,10609,10610,1,0,0,0,10610,10612,1,0,0,0,10611,10609,1,0,0, +0,10612,10613,5,2446,0,0,10613,10615,1,0,0,0,10614,10603,1,0,0,0,10614,10615, +1,0,0,0,10615,10620,1,0,0,0,10616,10617,5,1257,0,0,10617,10618,5,242,0,0, +10618,10619,7,118,0,0,10619,10621,5,1605,0,0,10620,10616,1,0,0,0,10620,10621, +1,0,0,0,10621,10623,1,0,0,0,10622,10624,3,1050,525,0,10623,10622,1,0,0,0, +10623,10624,1,0,0,0,10624,10626,1,0,0,0,10625,10627,3,1048,524,0,10626,10625, +1,0,0,0,10626,10627,1,0,0,0,10627,10629,1,0,0,0,10628,10630,3,1196,598,0, +10629,10628,1,0,0,0,10629,10630,1,0,0,0,10630,10632,1,0,0,0,10631,10633, +3,1078,539,0,10632,10631,1,0,0,0,10632,10633,1,0,0,0,10633,1045,1,0,0,0, +10634,10635,3,2398,1199,0,10635,1047,1,0,0,0,10636,10638,5,1245,0,0,10637, +10639,3,2316,1158,0,10638,10637,1,0,0,0,10638,10639,1,0,0,0,10639,10640, +1,0,0,0,10640,10644,5,2445,0,0,10641,10645,3,1188,594,0,10642,10643,5,2078, +0,0,10643,10645,3,1648,824,0,10644,10641,1,0,0,0,10644,10642,1,0,0,0,10645, +10646,1,0,0,0,10646,10644,1,0,0,0,10646,10647,1,0,0,0,10647,10648,1,0,0, +0,10648,10649,5,2446,0,0,10649,1049,1,0,0,0,10650,10651,5,1236,0,0,10651, +10652,5,684,0,0,10652,10657,5,783,0,0,10653,10654,5,1947,0,0,10654,10658, +5,638,0,0,10655,10656,5,1449,0,0,10656,10658,5,814,0,0,10657,10653,1,0,0, +0,10657,10655,1,0,0,0,10658,1051,1,0,0,0,10659,10662,3,2328,1164,0,10660, +10662,3,2268,1134,0,10661,10659,1,0,0,0,10661,10660,1,0,0,0,10662,10665, +1,0,0,0,10663,10664,5,387,0,0,10664,10666,3,2070,1035,0,10665,10663,1,0, +0,0,10665,10666,1,0,0,0,10666,10676,1,0,0,0,10667,10672,3,844,422,0,10668, +10669,5,2451,0,0,10669,10671,3,844,422,0,10670,10668,1,0,0,0,10671,10674, +1,0,0,0,10672,10670,1,0,0,0,10672,10673,1,0,0,0,10673,10677,1,0,0,0,10674, +10672,1,0,0,0,10675,10677,3,846,423,0,10676,10667,1,0,0,0,10676,10675,1, +0,0,0,10676,10677,1,0,0,0,10677,10682,1,0,0,0,10678,10682,3,850,425,0,10679, +10682,3,848,424,0,10680,10682,3,1690,845,0,10681,10661,1,0,0,0,10681,10678, +1,0,0,0,10681,10679,1,0,0,0,10681,10680,1,0,0,0,10682,1053,1,0,0,0,10683, +10685,5,1202,0,0,10684,10683,1,0,0,0,10684,10685,1,0,0,0,10685,10686,1,0, +0,0,10686,10687,5,1778,0,0,10687,10688,5,82,0,0,10688,10689,5,38,0,0,10689, +10690,5,846,0,0,10690,1055,1,0,0,0,10691,10692,5,2445,0,0,10692,10697,3, +1106,553,0,10693,10694,5,2451,0,0,10694,10696,3,1106,553,0,10695,10693,1, +0,0,0,10696,10699,1,0,0,0,10697,10695,1,0,0,0,10697,10698,1,0,0,0,10698, +10700,1,0,0,0,10699,10697,1,0,0,0,10700,10701,5,2446,0,0,10701,10703,1,0, +0,0,10702,10691,1,0,0,0,10702,10703,1,0,0,0,10703,10705,1,0,0,0,10704,10706, +3,1058,529,0,10705,10704,1,0,0,0,10705,10706,1,0,0,0,10706,1057,1,0,0,0, +10707,10709,3,1060,530,0,10708,10707,1,0,0,0,10709,10710,1,0,0,0,10710,10708, +1,0,0,0,10710,10711,1,0,0,0,10711,1059,1,0,0,0,10712,10728,3,1062,531,0, +10713,10728,3,1068,534,0,10714,10715,5,387,0,0,10715,10716,5,2371,0,0,10716, +10728,3,1076,538,0,10717,10718,5,1257,0,0,10718,10723,5,242,0,0,10719,10720, +7,120,0,0,10720,10724,5,2372,0,0,10721,10722,7,118,0,0,10722,10724,5,1605, +0,0,10723,10719,1,0,0,0,10723,10721,1,0,0,0,10724,10728,1,0,0,0,10725,10728, +3,1196,598,0,10726,10728,3,1078,539,0,10727,10712,1,0,0,0,10727,10713,1, +0,0,0,10727,10714,1,0,0,0,10727,10717,1,0,0,0,10727,10725,1,0,0,0,10727, +10726,1,0,0,0,10728,1061,1,0,0,0,10729,10732,3,1064,532,0,10730,10732,3, +1066,533,0,10731,10729,1,0,0,0,10731,10730,1,0,0,0,10732,1063,1,0,0,0,10733, +10734,5,1135,0,0,10734,10740,5,467,0,0,10735,10736,5,2200,0,0,10736,10737, +3,2384,1192,0,10737,10738,5,364,0,0,10738,10739,5,2376,0,0,10739,10741,1, +0,0,0,10740,10735,1,0,0,0,10740,10741,1,0,0,0,10741,1065,1,0,0,0,10742,10743, +5,1135,0,0,10743,10755,5,401,0,0,10744,10746,5,877,0,0,10745,10744,1,0,0, +0,10745,10746,1,0,0,0,10746,10756,1,0,0,0,10747,10748,5,2200,0,0,10748,10749, +3,2384,1192,0,10749,10750,5,364,0,0,10750,10751,5,33,0,0,10751,10753,5,754, +0,0,10752,10754,5,877,0,0,10753,10752,1,0,0,0,10753,10754,1,0,0,0,10754, +10756,1,0,0,0,10755,10745,1,0,0,0,10755,10747,1,0,0,0,10756,1067,1,0,0,0, +10757,10758,3,1070,535,0,10758,10759,3,1072,536,0,10759,10760,3,1074,537, +0,10760,1069,1,0,0,0,10761,10762,5,1135,0,0,10762,10768,5,467,0,0,10763, +10764,5,2200,0,0,10764,10765,3,2384,1192,0,10765,10766,5,364,0,0,10766,10767, +5,2376,0,0,10767,10769,1,0,0,0,10768,10763,1,0,0,0,10768,10769,1,0,0,0,10769, +1071,1,0,0,0,10770,10771,5,1135,0,0,10771,10783,5,401,0,0,10772,10774,5, +877,0,0,10773,10772,1,0,0,0,10773,10774,1,0,0,0,10774,10784,1,0,0,0,10775, +10776,5,2200,0,0,10776,10777,3,2384,1192,0,10777,10778,5,364,0,0,10778,10779, +5,33,0,0,10779,10781,5,754,0,0,10780,10782,5,877,0,0,10781,10780,1,0,0,0, +10781,10782,1,0,0,0,10782,10784,1,0,0,0,10783,10773,1,0,0,0,10783,10775, +1,0,0,0,10784,1073,1,0,0,0,10785,10786,5,2375,0,0,10786,10787,5,2244,0,0, +10787,10788,5,2382,0,0,10788,10789,5,2283,0,0,10789,10790,5,2384,0,0,10790, +1075,1,0,0,0,10791,10792,3,2390,1195,0,10792,1077,1,0,0,0,10793,10824,3, +1652,826,0,10794,10824,3,1080,540,0,10795,10824,3,1082,541,0,10796,10824, +3,1108,554,0,10797,10824,3,1084,542,0,10798,10824,7,107,0,0,10799,10824, +3,112,56,0,10800,10824,3,926,463,0,10801,10824,3,520,260,0,10802,10824,7, +113,0,0,10803,10824,3,1576,788,0,10804,10824,3,1266,633,0,10805,10824,3, +1102,551,0,10806,10824,3,1268,634,0,10807,10824,3,1196,598,0,10808,10809, +5,1604,0,0,10809,10824,5,63,0,0,10810,10811,5,69,0,0,10811,10824,3,1860, +930,0,10812,10813,5,618,0,0,10813,10814,5,536,0,0,10814,10815,5,2306,0,0, +10815,10819,5,2081,0,0,10816,10817,3,2274,1137,0,10817,10818,5,2438,0,0, +10818,10820,1,0,0,0,10819,10816,1,0,0,0,10819,10820,1,0,0,0,10820,10821, +1,0,0,0,10821,10824,3,1104,552,0,10822,10824,3,2234,1117,0,10823,10793,1, +0,0,0,10823,10794,1,0,0,0,10823,10795,1,0,0,0,10823,10796,1,0,0,0,10823, +10797,1,0,0,0,10823,10798,1,0,0,0,10823,10799,1,0,0,0,10823,10800,1,0,0, +0,10823,10801,1,0,0,0,10823,10802,1,0,0,0,10823,10803,1,0,0,0,10823,10804, +1,0,0,0,10823,10805,1,0,0,0,10823,10806,1,0,0,0,10823,10807,1,0,0,0,10823, +10808,1,0,0,0,10823,10810,1,0,0,0,10823,10812,1,0,0,0,10823,10822,1,0,0, +0,10824,1079,1,0,0,0,10825,10826,5,1503,0,0,10826,10827,7,11,0,0,10827,1081, +1,0,0,0,10828,10829,5,716,0,0,10829,10830,7,98,0,0,10830,1083,1,0,0,0,10831, +10833,5,224,0,0,10832,10834,3,1086,543,0,10833,10832,1,0,0,0,10833,10834, +1,0,0,0,10834,10835,1,0,0,0,10835,10841,3,1092,546,0,10836,10838,3,1098, +549,0,10837,10836,1,0,0,0,10837,10838,1,0,0,0,10838,10839,1,0,0,0,10839, +10840,5,1257,0,0,10840,10842,5,865,0,0,10841,10837,1,0,0,0,10841,10842,1, +0,0,0,10842,10849,1,0,0,0,10843,10845,3,1098,549,0,10844,10843,1,0,0,0,10844, +10845,1,0,0,0,10845,10846,1,0,0,0,10846,10847,5,1257,0,0,10847,10848,5,349, +0,0,10848,10850,5,989,0,0,10849,10844,1,0,0,0,10849,10850,1,0,0,0,10850, +10852,1,0,0,0,10851,10853,3,1100,550,0,10852,10851,1,0,0,0,10852,10853,1, +0,0,0,10853,1085,1,0,0,0,10854,10855,3,2274,1137,0,10855,10856,5,2438,0, +0,10856,10858,1,0,0,0,10857,10854,1,0,0,0,10857,10858,1,0,0,0,10858,10859, +1,0,0,0,10859,10860,3,1104,552,0,10860,10865,3,1088,544,0,10861,10862,5, +2451,0,0,10862,10864,3,1088,544,0,10863,10861,1,0,0,0,10864,10867,1,0,0, +0,10865,10863,1,0,0,0,10865,10866,1,0,0,0,10866,1087,1,0,0,0,10867,10865, +1,0,0,0,10868,10872,5,792,0,0,10869,10870,3,2274,1137,0,10870,10871,5,2438, +0,0,10871,10873,1,0,0,0,10872,10869,1,0,0,0,10872,10873,1,0,0,0,10873,10874, +1,0,0,0,10874,10875,3,1104,552,0,10875,10876,5,1257,0,0,10876,10877,5,2445, +0,0,10877,10878,3,1090,545,0,10878,10879,5,2446,0,0,10879,1089,1,0,0,0,10880, +10881,3,2070,1035,0,10881,1091,1,0,0,0,10882,10884,5,160,0,0,10883,10885, +7,121,0,0,10884,10883,1,0,0,0,10884,10885,1,0,0,0,10885,10886,1,0,0,0,10886, +10887,5,1301,0,0,10887,10888,3,1094,547,0,10888,1093,1,0,0,0,10889,10902, +3,1096,548,0,10890,10891,5,2445,0,0,10891,10896,3,1096,548,0,10892,10893, +5,2451,0,0,10893,10895,3,1096,548,0,10894,10892,1,0,0,0,10895,10898,1,0, +0,0,10896,10894,1,0,0,0,10896,10897,1,0,0,0,10897,10899,1,0,0,0,10898,10896, +1,0,0,0,10899,10900,5,2446,0,0,10900,10902,1,0,0,0,10901,10889,1,0,0,0,10901, +10890,1,0,0,0,10902,1095,1,0,0,0,10903,10904,5,2445,0,0,10904,10909,3,2328, +1164,0,10905,10906,5,2451,0,0,10906,10908,3,2328,1164,0,10907,10905,1,0, +0,0,10908,10911,1,0,0,0,10909,10907,1,0,0,0,10909,10910,1,0,0,0,10910,10912, +1,0,0,0,10911,10909,1,0,0,0,10912,10913,5,2446,0,0,10913,1097,1,0,0,0,10914, +10915,7,122,0,0,10915,1099,1,0,0,0,10916,10917,5,2306,0,0,10917,10918,5, +917,0,0,10918,10923,5,2360,0,0,10919,10920,5,2445,0,0,10920,10921,3,964, +482,0,10921,10922,5,2446,0,0,10922,10924,1,0,0,0,10923,10919,1,0,0,0,10923, +10924,1,0,0,0,10924,10929,1,0,0,0,10925,10926,5,2304,0,0,10926,10927,5,917, +0,0,10927,10929,5,2360,0,0,10928,10916,1,0,0,0,10928,10925,1,0,0,0,10929, +1101,1,0,0,0,10930,10931,5,427,0,0,10931,10932,5,883,0,0,10932,10950,5,1561, +0,0,10933,10934,5,497,0,0,10934,10935,5,883,0,0,10935,10947,5,1561,0,0,10936, +10940,5,38,0,0,10937,10938,5,40,0,0,10938,10940,5,1213,0,0,10939,10936,1, +0,0,0,10939,10937,1,0,0,0,10940,10941,1,0,0,0,10941,10948,5,817,0,0,10942, +10944,5,1135,0,0,10943,10942,1,0,0,0,10943,10944,1,0,0,0,10944,10945,1,0, +0,0,10945,10946,5,1342,0,0,10946,10948,5,799,0,0,10947,10939,1,0,0,0,10947, +10943,1,0,0,0,10947,10948,1,0,0,0,10948,10950,1,0,0,0,10949,10930,1,0,0, +0,10949,10933,1,0,0,0,10950,1103,1,0,0,0,10951,10952,3,2390,1195,0,10952, +1105,1,0,0,0,10953,10960,3,850,425,0,10954,10960,3,848,424,0,10955,10960, +3,1662,831,0,10956,10960,3,1672,836,0,10957,10960,3,1656,828,0,10958,10960, +3,1690,845,0,10959,10953,1,0,0,0,10959,10954,1,0,0,0,10959,10955,1,0,0,0, +10959,10956,1,0,0,0,10959,10957,1,0,0,0,10959,10958,1,0,0,0,10960,1107,1, +0,0,0,10961,10970,3,1110,555,0,10962,10970,3,1112,556,0,10963,10970,3,1114, +557,0,10964,10970,3,1122,561,0,10965,10970,3,1124,562,0,10966,10970,3,1126, +563,0,10967,10970,3,1128,564,0,10968,10970,3,1132,566,0,10969,10961,1,0, +0,0,10969,10962,1,0,0,0,10969,10963,1,0,0,0,10969,10964,1,0,0,0,10969,10965, +1,0,0,0,10969,10966,1,0,0,0,10969,10967,1,0,0,0,10969,10968,1,0,0,0,10970, +1109,1,0,0,0,10971,10972,5,1346,0,0,10972,10973,5,160,0,0,10973,10974,5, +1493,0,0,10974,10975,5,2445,0,0,10975,10980,3,2328,1164,0,10976,10977,5, +2451,0,0,10977,10979,3,2328,1164,0,10978,10976,1,0,0,0,10979,10982,1,0,0, +0,10980,10978,1,0,0,0,10980,10981,1,0,0,0,10981,10983,1,0,0,0,10982,10980, +1,0,0,0,10983,11003,5,2446,0,0,10984,10985,5,774,0,0,10985,10986,5,2445, +0,0,10986,10987,3,2070,1035,0,10987,11001,5,2446,0,0,10988,10989,5,1761, +0,0,10989,10990,5,736,0,0,10990,10991,5,2445,0,0,10991,10996,3,1648,824, +0,10992,10993,5,2451,0,0,10993,10995,3,1648,824,0,10994,10992,1,0,0,0,10995, +10998,1,0,0,0,10996,10994,1,0,0,0,10996,10997,1,0,0,0,10997,10999,1,0,0, +0,10998,10996,1,0,0,0,10999,11000,5,2446,0,0,11000,11002,1,0,0,0,11001,10988, +1,0,0,0,11001,11002,1,0,0,0,11002,11004,1,0,0,0,11003,10984,1,0,0,0,11003, +11004,1,0,0,0,11004,11005,1,0,0,0,11005,11006,5,2445,0,0,11006,11008,5,1346, +0,0,11007,11009,3,1688,844,0,11008,11007,1,0,0,0,11008,11009,1,0,0,0,11009, +11010,1,0,0,0,11010,11011,3,1158,579,0,11011,11022,3,1164,582,0,11012,11013, +5,2451,0,0,11013,11015,5,1346,0,0,11014,11016,3,1688,844,0,11015,11014,1, +0,0,0,11015,11016,1,0,0,0,11016,11017,1,0,0,0,11017,11018,3,1158,579,0,11018, +11019,3,1164,582,0,11019,11021,1,0,0,0,11020,11012,1,0,0,0,11021,11024,1, +0,0,0,11022,11020,1,0,0,0,11022,11023,1,0,0,0,11023,11025,1,0,0,0,11024, +11022,1,0,0,0,11025,11026,5,2446,0,0,11026,1111,1,0,0,0,11027,11028,5,1346, +0,0,11028,11029,5,160,0,0,11029,11030,5,860,0,0,11030,11031,5,2445,0,0,11031, +11032,3,2328,1164,0,11032,11033,5,2446,0,0,11033,11034,5,2445,0,0,11034, +11036,5,1346,0,0,11035,11037,3,1688,844,0,11036,11035,1,0,0,0,11036,11037, +1,0,0,0,11037,11038,1,0,0,0,11038,11039,3,1162,581,0,11039,11050,3,1164, +582,0,11040,11041,5,2451,0,0,11041,11043,5,1346,0,0,11042,11044,3,1688,844, +0,11043,11042,1,0,0,0,11043,11044,1,0,0,0,11044,11045,1,0,0,0,11045,11046, +3,1162,581,0,11046,11047,3,1164,582,0,11047,11049,1,0,0,0,11048,11040,1, +0,0,0,11049,11052,1,0,0,0,11050,11048,1,0,0,0,11050,11051,1,0,0,0,11051, +11053,1,0,0,0,11052,11050,1,0,0,0,11053,11054,5,2446,0,0,11054,1113,1,0, +0,0,11055,11056,5,1346,0,0,11056,11057,5,160,0,0,11057,11058,5,658,0,0,11058, +11059,5,2445,0,0,11059,11064,3,2328,1164,0,11060,11061,5,2451,0,0,11061, +11063,3,2328,1164,0,11062,11060,1,0,0,0,11063,11066,1,0,0,0,11064,11062, +1,0,0,0,11064,11065,1,0,0,0,11065,11067,1,0,0,0,11066,11064,1,0,0,0,11067, +11070,5,2446,0,0,11068,11071,3,1116,558,0,11069,11071,3,1118,559,0,11070, +11068,1,0,0,0,11070,11069,1,0,0,0,11071,1115,1,0,0,0,11072,11073,5,2445, +0,0,11073,11075,5,1346,0,0,11074,11076,3,1688,844,0,11075,11074,1,0,0,0, +11075,11076,1,0,0,0,11076,11078,1,0,0,0,11077,11079,3,1166,583,0,11078,11077, +1,0,0,0,11078,11079,1,0,0,0,11079,11090,1,0,0,0,11080,11081,5,2451,0,0,11081, +11083,5,1346,0,0,11082,11084,3,1688,844,0,11083,11082,1,0,0,0,11083,11084, +1,0,0,0,11084,11086,1,0,0,0,11085,11087,3,1166,583,0,11086,11085,1,0,0,0, +11086,11087,1,0,0,0,11087,11089,1,0,0,0,11088,11080,1,0,0,0,11089,11092, +1,0,0,0,11090,11088,1,0,0,0,11090,11091,1,0,0,0,11091,11093,1,0,0,0,11092, +11090,1,0,0,0,11093,11094,5,2446,0,0,11094,1117,1,0,0,0,11095,11096,5,1348, +0,0,11096,11110,3,1120,560,0,11097,11098,5,1761,0,0,11098,11099,5,736,0, +0,11099,11100,5,2445,0,0,11100,11105,3,1648,824,0,11101,11102,5,2451,0,0, +11102,11104,3,1648,824,0,11103,11101,1,0,0,0,11104,11107,1,0,0,0,11105,11103, +1,0,0,0,11105,11106,1,0,0,0,11106,11108,1,0,0,0,11107,11105,1,0,0,0,11108, +11109,5,2446,0,0,11109,11111,1,0,0,0,11110,11097,1,0,0,0,11110,11111,1,0, +0,0,11111,11114,1,0,0,0,11112,11115,3,1172,586,0,11113,11115,3,1592,796, +0,11114,11112,1,0,0,0,11114,11113,1,0,0,0,11114,11115,1,0,0,0,11115,11130, +1,0,0,0,11116,11117,5,1318,0,0,11117,11118,5,1761,0,0,11118,11119,5,736, +0,0,11119,11120,5,2445,0,0,11120,11125,3,1648,824,0,11121,11122,5,2451,0, +0,11122,11124,3,1648,824,0,11123,11121,1,0,0,0,11124,11127,1,0,0,0,11125, +11123,1,0,0,0,11125,11126,1,0,0,0,11126,11128,1,0,0,0,11127,11125,1,0,0, +0,11128,11129,5,2446,0,0,11129,11131,1,0,0,0,11130,11116,1,0,0,0,11130,11131, +1,0,0,0,11131,1119,1,0,0,0,11132,11133,5,2439,0,0,11133,1121,1,0,0,0,11134, +11135,5,1346,0,0,11135,11136,5,160,0,0,11136,11137,5,1493,0,0,11137,11138, +5,2445,0,0,11138,11143,3,2328,1164,0,11139,11140,5,2451,0,0,11140,11142, +3,2328,1164,0,11141,11139,1,0,0,0,11142,11145,1,0,0,0,11143,11141,1,0,0, +0,11143,11144,1,0,0,0,11144,11146,1,0,0,0,11145,11143,1,0,0,0,11146,11166, +5,2446,0,0,11147,11148,5,774,0,0,11148,11149,5,2445,0,0,11149,11150,3,2070, +1035,0,11150,11164,5,2446,0,0,11151,11152,5,1761,0,0,11152,11153,5,736,0, +0,11153,11154,5,2445,0,0,11154,11159,3,1648,824,0,11155,11156,5,2451,0,0, +11156,11158,3,1648,824,0,11157,11155,1,0,0,0,11158,11161,1,0,0,0,11159,11157, +1,0,0,0,11159,11160,1,0,0,0,11160,11162,1,0,0,0,11161,11159,1,0,0,0,11162, +11163,5,2446,0,0,11163,11165,1,0,0,0,11164,11151,1,0,0,0,11164,11165,1,0, +0,0,11165,11167,1,0,0,0,11166,11147,1,0,0,0,11166,11167,1,0,0,0,11167,11171, +1,0,0,0,11168,11172,3,1142,571,0,11169,11172,3,1144,572,0,11170,11172,3, +1146,573,0,11171,11168,1,0,0,0,11171,11169,1,0,0,0,11171,11170,1,0,0,0,11172, +11173,1,0,0,0,11173,11174,5,2445,0,0,11174,11179,3,1134,567,0,11175,11176, +5,2451,0,0,11176,11178,3,1134,567,0,11177,11175,1,0,0,0,11178,11181,1,0, +0,0,11179,11177,1,0,0,0,11179,11180,1,0,0,0,11180,11182,1,0,0,0,11181,11179, +1,0,0,0,11182,11183,5,2446,0,0,11183,1123,1,0,0,0,11184,11185,5,1346,0,0, +11185,11186,5,160,0,0,11186,11187,5,860,0,0,11187,11188,5,2445,0,0,11188, +11189,3,2328,1164,0,11189,11193,5,2446,0,0,11190,11194,3,1142,571,0,11191, +11194,3,1144,572,0,11192,11194,3,1146,573,0,11193,11190,1,0,0,0,11193,11191, +1,0,0,0,11193,11192,1,0,0,0,11194,11195,1,0,0,0,11195,11196,5,2445,0,0,11196, +11201,3,1136,568,0,11197,11198,5,2451,0,0,11198,11200,3,1136,568,0,11199, +11197,1,0,0,0,11200,11203,1,0,0,0,11201,11199,1,0,0,0,11201,11202,1,0,0, +0,11202,11204,1,0,0,0,11203,11201,1,0,0,0,11204,11205,5,2446,0,0,11205,1125, +1,0,0,0,11206,11207,5,1346,0,0,11207,11208,5,160,0,0,11208,11209,5,658,0, +0,11209,11212,5,2445,0,0,11210,11211,5,2451,0,0,11211,11213,3,2328,1164, +0,11212,11210,1,0,0,0,11213,11214,1,0,0,0,11214,11212,1,0,0,0,11214,11215, +1,0,0,0,11215,11216,1,0,0,0,11216,11220,5,2446,0,0,11217,11221,3,1142,571, +0,11218,11221,3,1144,572,0,11219,11221,3,1146,573,0,11220,11217,1,0,0,0, +11220,11218,1,0,0,0,11220,11219,1,0,0,0,11221,11224,1,0,0,0,11222,11225, +3,1116,558,0,11223,11225,3,1118,559,0,11224,11222,1,0,0,0,11224,11223,1, +0,0,0,11225,1127,1,0,0,0,11226,11227,5,1346,0,0,11227,11228,5,160,0,0,11228, +11229,5,1525,0,0,11229,11230,5,2445,0,0,11230,11231,3,2298,1149,0,11231, +11243,5,2446,0,0,11232,11233,5,2445,0,0,11233,11238,3,1130,565,0,11234,11235, +5,2451,0,0,11235,11237,3,1130,565,0,11236,11234,1,0,0,0,11237,11240,1,0, +0,0,11238,11236,1,0,0,0,11238,11239,1,0,0,0,11239,11241,1,0,0,0,11240,11238, +1,0,0,0,11241,11242,5,2446,0,0,11242,11244,1,0,0,0,11243,11232,1,0,0,0,11243, +11244,1,0,0,0,11244,1129,1,0,0,0,11245,11247,5,1346,0,0,11246,11248,3,1688, +844,0,11247,11246,1,0,0,0,11247,11248,1,0,0,0,11248,11249,1,0,0,0,11249, +11250,3,1164,582,0,11250,1131,1,0,0,0,11251,11252,5,1346,0,0,11252,11253, +5,160,0,0,11253,11264,5,1947,0,0,11254,11255,5,1348,0,0,11255,11265,5,2439, +0,0,11256,11261,3,1130,565,0,11257,11258,5,2451,0,0,11258,11260,3,1130,565, +0,11259,11257,1,0,0,0,11260,11263,1,0,0,0,11261,11259,1,0,0,0,11261,11262, +1,0,0,0,11262,11265,1,0,0,0,11263,11261,1,0,0,0,11264,11254,1,0,0,0,11264, +11256,1,0,0,0,11264,11265,1,0,0,0,11265,1133,1,0,0,0,11266,11268,5,1346, +0,0,11267,11269,3,1688,844,0,11268,11267,1,0,0,0,11268,11269,1,0,0,0,11269, +11271,1,0,0,0,11270,11272,3,1158,579,0,11271,11270,1,0,0,0,11271,11272,1, +0,0,0,11272,11273,1,0,0,0,11273,11306,3,1164,582,0,11274,11299,5,2445,0, +0,11275,11280,3,1150,575,0,11276,11277,5,2451,0,0,11277,11279,3,1150,575, +0,11278,11276,1,0,0,0,11279,11282,1,0,0,0,11280,11278,1,0,0,0,11280,11281, +1,0,0,0,11281,11300,1,0,0,0,11282,11280,1,0,0,0,11283,11288,3,1152,576,0, +11284,11285,5,2451,0,0,11285,11287,3,1152,576,0,11286,11284,1,0,0,0,11287, +11290,1,0,0,0,11288,11286,1,0,0,0,11288,11289,1,0,0,0,11289,11300,1,0,0, +0,11290,11288,1,0,0,0,11291,11296,3,1154,577,0,11292,11293,5,2451,0,0,11293, +11295,3,1154,577,0,11294,11292,1,0,0,0,11295,11298,1,0,0,0,11296,11294,1, +0,0,0,11296,11297,1,0,0,0,11297,11300,1,0,0,0,11298,11296,1,0,0,0,11299, +11275,1,0,0,0,11299,11283,1,0,0,0,11299,11291,1,0,0,0,11300,11301,1,0,0, +0,11301,11302,5,2446,0,0,11302,11305,1,0,0,0,11303,11305,3,1156,578,0,11304, +11274,1,0,0,0,11304,11303,1,0,0,0,11305,11307,1,0,0,0,11306,11304,1,0,0, +0,11306,11307,1,0,0,0,11307,1135,1,0,0,0,11308,11310,5,1346,0,0,11309,11311, +3,1688,844,0,11310,11309,1,0,0,0,11310,11311,1,0,0,0,11311,11313,1,0,0,0, +11312,11314,3,1162,581,0,11313,11312,1,0,0,0,11313,11314,1,0,0,0,11314,11315, +1,0,0,0,11315,11348,3,1164,582,0,11316,11341,5,2445,0,0,11317,11322,3,1150, +575,0,11318,11319,5,2451,0,0,11319,11321,3,1150,575,0,11320,11318,1,0,0, +0,11321,11324,1,0,0,0,11322,11320,1,0,0,0,11322,11323,1,0,0,0,11323,11342, +1,0,0,0,11324,11322,1,0,0,0,11325,11330,3,1152,576,0,11326,11327,5,2451, +0,0,11327,11329,3,1152,576,0,11328,11326,1,0,0,0,11329,11332,1,0,0,0,11330, +11328,1,0,0,0,11330,11331,1,0,0,0,11331,11342,1,0,0,0,11332,11330,1,0,0, +0,11333,11338,3,1154,577,0,11334,11335,5,2451,0,0,11335,11337,3,1154,577, +0,11336,11334,1,0,0,0,11337,11340,1,0,0,0,11338,11336,1,0,0,0,11338,11339, +1,0,0,0,11339,11342,1,0,0,0,11340,11338,1,0,0,0,11341,11317,1,0,0,0,11341, +11325,1,0,0,0,11341,11333,1,0,0,0,11342,11343,1,0,0,0,11343,11344,5,2446, +0,0,11344,11347,1,0,0,0,11345,11347,3,1156,578,0,11346,11316,1,0,0,0,11346, +11345,1,0,0,0,11347,11349,1,0,0,0,11348,11346,1,0,0,0,11348,11349,1,0,0, +0,11349,1137,1,0,0,0,11350,11351,5,1773,0,0,11351,11382,5,2088,0,0,11352, +11377,5,2445,0,0,11353,11358,3,1150,575,0,11354,11355,5,2451,0,0,11355,11357, +3,1150,575,0,11356,11354,1,0,0,0,11357,11360,1,0,0,0,11358,11356,1,0,0,0, +11358,11359,1,0,0,0,11359,11378,1,0,0,0,11360,11358,1,0,0,0,11361,11366, +3,1152,576,0,11362,11363,5,2451,0,0,11363,11365,3,1152,576,0,11364,11362, +1,0,0,0,11365,11368,1,0,0,0,11366,11364,1,0,0,0,11366,11367,1,0,0,0,11367, +11378,1,0,0,0,11368,11366,1,0,0,0,11369,11374,3,1154,577,0,11370,11371,5, +2451,0,0,11371,11373,3,1154,577,0,11372,11370,1,0,0,0,11373,11376,1,0,0, +0,11374,11372,1,0,0,0,11374,11375,1,0,0,0,11375,11378,1,0,0,0,11376,11374, +1,0,0,0,11377,11353,1,0,0,0,11377,11361,1,0,0,0,11377,11369,1,0,0,0,11378, +11379,1,0,0,0,11379,11380,5,2446,0,0,11380,11383,1,0,0,0,11381,11383,3,1140, +570,0,11382,11352,1,0,0,0,11382,11381,1,0,0,0,11383,1139,1,0,0,0,11384,11385, +5,2439,0,0,11385,1141,1,0,0,0,11386,11387,5,1773,0,0,11387,11388,5,160,0, +0,11388,11389,5,1493,0,0,11389,11390,5,2445,0,0,11390,11395,3,2328,1164, +0,11391,11392,5,2451,0,0,11392,11394,3,2328,1164,0,11393,11391,1,0,0,0,11394, +11397,1,0,0,0,11395,11393,1,0,0,0,11395,11396,1,0,0,0,11396,11398,1,0,0, +0,11397,11395,1,0,0,0,11398,11400,5,2446,0,0,11399,11401,3,1138,569,0,11400, +11399,1,0,0,0,11400,11401,1,0,0,0,11401,1143,1,0,0,0,11402,11403,5,1773, +0,0,11403,11404,5,160,0,0,11404,11405,5,860,0,0,11405,11406,5,2445,0,0,11406, +11407,3,2328,1164,0,11407,11409,5,2446,0,0,11408,11410,3,1138,569,0,11409, +11408,1,0,0,0,11409,11410,1,0,0,0,11410,1145,1,0,0,0,11411,11412,5,1773, +0,0,11412,11413,5,160,0,0,11413,11414,5,658,0,0,11414,11415,5,2445,0,0,11415, +11420,3,2328,1164,0,11416,11417,5,2451,0,0,11417,11419,3,2328,1164,0,11418, +11416,1,0,0,0,11419,11422,1,0,0,0,11420,11418,1,0,0,0,11420,11421,1,0,0, +0,11421,11423,1,0,0,0,11422,11420,1,0,0,0,11423,11442,5,2446,0,0,11424,11425, +5,1772,0,0,11425,11439,5,2439,0,0,11426,11427,5,1761,0,0,11427,11428,5,736, +0,0,11428,11429,5,2445,0,0,11429,11434,3,1648,824,0,11430,11431,5,2451,0, +0,11431,11433,3,1648,824,0,11432,11430,1,0,0,0,11433,11436,1,0,0,0,11434, +11432,1,0,0,0,11434,11435,1,0,0,0,11435,11437,1,0,0,0,11436,11434,1,0,0, +0,11437,11438,5,2446,0,0,11438,11440,1,0,0,0,11439,11426,1,0,0,0,11439,11440, +1,0,0,0,11440,11443,1,0,0,0,11441,11443,3,1138,569,0,11442,11424,1,0,0,0, +11442,11441,1,0,0,0,11442,11443,1,0,0,0,11443,1147,1,0,0,0,11444,11445,3, +1688,844,0,11445,1149,1,0,0,0,11446,11448,5,1773,0,0,11447,11449,3,1148, +574,0,11448,11447,1,0,0,0,11448,11449,1,0,0,0,11449,11450,1,0,0,0,11450, +11452,3,1158,579,0,11451,11453,3,1166,583,0,11452,11451,1,0,0,0,11452,11453, +1,0,0,0,11453,1151,1,0,0,0,11454,11456,5,1773,0,0,11455,11457,3,1148,574, +0,11456,11455,1,0,0,0,11456,11457,1,0,0,0,11457,11458,1,0,0,0,11458,11460, +3,1162,581,0,11459,11461,3,1166,583,0,11460,11459,1,0,0,0,11460,11461,1, +0,0,0,11461,1153,1,0,0,0,11462,11464,5,1773,0,0,11463,11465,3,1148,574,0, +11464,11463,1,0,0,0,11464,11465,1,0,0,0,11465,11467,1,0,0,0,11466,11468, +3,1166,583,0,11467,11466,1,0,0,0,11467,11468,1,0,0,0,11468,1155,1,0,0,0, +11469,11470,5,1772,0,0,11470,11484,5,2439,0,0,11471,11472,5,1761,0,0,11472, +11473,5,736,0,0,11473,11474,5,2445,0,0,11474,11479,3,1648,824,0,11475,11476, +5,2451,0,0,11476,11478,3,1648,824,0,11477,11475,1,0,0,0,11478,11481,1,0, +0,0,11479,11477,1,0,0,0,11479,11480,1,0,0,0,11480,11482,1,0,0,0,11481,11479, +1,0,0,0,11482,11483,5,2446,0,0,11483,11485,1,0,0,0,11484,11471,1,0,0,0,11484, +11485,1,0,0,0,11485,1157,1,0,0,0,11486,11487,5,2255,0,0,11487,11488,5,843, +0,0,11488,11489,5,2096,0,0,11489,11490,5,2445,0,0,11490,11491,3,1160,580, +0,11491,11492,5,2446,0,0,11492,1159,1,0,0,0,11493,11498,3,2176,1088,0,11494, +11495,5,2451,0,0,11495,11497,3,2176,1088,0,11496,11494,1,0,0,0,11497,11500, +1,0,0,0,11498,11496,1,0,0,0,11498,11499,1,0,0,0,11499,11512,1,0,0,0,11500, +11498,1,0,0,0,11501,11502,5,2106,0,0,11502,11508,3,2176,1088,0,11503,11504, +5,2451,0,0,11504,11505,5,2106,0,0,11505,11507,3,2176,1088,0,11506,11503, +1,0,0,0,11507,11510,1,0,0,0,11508,11506,1,0,0,0,11508,11509,1,0,0,0,11509, +11512,1,0,0,0,11510,11508,1,0,0,0,11511,11493,1,0,0,0,11511,11501,1,0,0, +0,11512,1161,1,0,0,0,11513,11514,5,2255,0,0,11514,11534,5,2445,0,0,11515, +11520,3,2176,1088,0,11516,11517,5,2451,0,0,11517,11519,3,2176,1088,0,11518, +11516,1,0,0,0,11519,11522,1,0,0,0,11520,11518,1,0,0,0,11520,11521,1,0,0, +0,11521,11535,1,0,0,0,11522,11520,1,0,0,0,11523,11524,5,2106,0,0,11524,11530, +3,2176,1088,0,11525,11526,5,2451,0,0,11526,11527,5,2106,0,0,11527,11529, +3,2176,1088,0,11528,11525,1,0,0,0,11529,11532,1,0,0,0,11530,11528,1,0,0, +0,11530,11531,1,0,0,0,11531,11535,1,0,0,0,11532,11530,1,0,0,0,11533,11535, +5,387,0,0,11534,11515,1,0,0,0,11534,11523,1,0,0,0,11534,11533,1,0,0,0,11535, +11536,1,0,0,0,11536,11537,5,2446,0,0,11537,1163,1,0,0,0,11538,11540,7,123, +0,0,11539,11538,1,0,0,0,11539,11540,1,0,0,0,11540,11542,1,0,0,0,11541,11543, +3,1192,596,0,11542,11541,1,0,0,0,11542,11543,1,0,0,0,11543,11545,1,0,0,0, +11544,11546,3,1080,540,0,11545,11544,1,0,0,0,11545,11546,1,0,0,0,11546,11548, +1,0,0,0,11547,11549,3,1082,541,0,11548,11547,1,0,0,0,11548,11549,1,0,0,0, +11549,11551,1,0,0,0,11550,11552,3,1194,597,0,11551,11550,1,0,0,0,11551,11552, +1,0,0,0,11552,11555,1,0,0,0,11553,11556,3,1172,586,0,11554,11556,3,1592, +796,0,11555,11553,1,0,0,0,11555,11554,1,0,0,0,11555,11556,1,0,0,0,11556, +11558,1,0,0,0,11557,11559,3,1174,587,0,11558,11557,1,0,0,0,11558,11559,1, +0,0,0,11559,11561,1,0,0,0,11560,11562,3,1198,599,0,11561,11560,1,0,0,0,11561, +11562,1,0,0,0,11562,11567,1,0,0,0,11563,11565,5,1318,0,0,11564,11566,3,1194, +597,0,11565,11564,1,0,0,0,11565,11566,1,0,0,0,11566,11568,1,0,0,0,11567, +11563,1,0,0,0,11567,11568,1,0,0,0,11568,11574,1,0,0,0,11569,11573,3,1632, +816,0,11570,11573,3,1622,811,0,11571,11573,3,1682,841,0,11572,11569,1,0, +0,0,11572,11570,1,0,0,0,11572,11571,1,0,0,0,11573,11576,1,0,0,0,11574,11572, +1,0,0,0,11574,11575,1,0,0,0,11575,1165,1,0,0,0,11576,11574,1,0,0,0,11577, +11578,5,2078,0,0,11578,11599,3,1648,824,0,11579,11582,5,1318,0,0,11580,11581, +5,2078,0,0,11581,11583,3,1648,824,0,11582,11580,1,0,0,0,11582,11583,1,0, +0,0,11583,11599,1,0,0,0,11584,11599,3,1172,586,0,11585,11599,3,1592,796, +0,11586,11599,3,1174,587,0,11587,11599,3,1168,584,0,11588,11589,5,2265,0, +0,11589,11590,3,1650,825,0,11590,11591,5,1761,0,0,11591,11593,5,69,0,0,11592, +11594,7,119,0,0,11593,11592,1,0,0,0,11593,11594,1,0,0,0,11594,11595,1,0, +0,0,11595,11596,5,866,0,0,11596,11597,3,1626,813,0,11597,11599,1,0,0,0,11598, +11577,1,0,0,0,11598,11579,1,0,0,0,11598,11584,1,0,0,0,11598,11585,1,0,0, +0,11598,11586,1,0,0,0,11598,11587,1,0,0,0,11598,11588,1,0,0,0,11599,11600, +1,0,0,0,11600,11598,1,0,0,0,11600,11601,1,0,0,0,11601,1167,1,0,0,0,11602, +11603,5,866,0,0,11603,11604,5,2445,0,0,11604,11605,3,1628,814,0,11605,11606, +5,2446,0,0,11606,11607,5,1761,0,0,11607,11609,5,69,0,0,11608,11610,7,119, +0,0,11609,11608,1,0,0,0,11609,11610,1,0,0,0,11610,11624,1,0,0,0,11611,11617, +3,1626,813,0,11612,11613,5,2445,0,0,11613,11614,5,2078,0,0,11614,11615,3, +1648,824,0,11615,11616,5,2446,0,0,11616,11618,1,0,0,0,11617,11612,1,0,0, +0,11617,11618,1,0,0,0,11618,11625,1,0,0,0,11619,11620,5,2445,0,0,11620,11621, +5,2078,0,0,11621,11622,3,1648,824,0,11622,11623,5,2446,0,0,11623,11625,1, +0,0,0,11624,11611,1,0,0,0,11624,11619,1,0,0,0,11625,1169,1,0,0,0,11626,11628, +5,2439,0,0,11627,11629,7,124,0,0,11628,11627,1,0,0,0,11628,11629,1,0,0,0, +11629,1171,1,0,0,0,11630,11644,5,258,0,0,11631,11645,5,106,0,0,11632,11642, +5,618,0,0,11633,11643,5,1251,0,0,11634,11636,7,125,0,0,11635,11637,7,103, +0,0,11636,11635,1,0,0,0,11636,11637,1,0,0,0,11637,11643,1,0,0,0,11638,11639, +5,38,0,0,11639,11643,5,1263,0,0,11640,11641,5,423,0,0,11641,11643,5,1263, +0,0,11642,11633,1,0,0,0,11642,11634,1,0,0,0,11642,11638,1,0,0,0,11642,11640, +1,0,0,0,11643,11645,1,0,0,0,11644,11631,1,0,0,0,11644,11632,1,0,0,0,11644, +11645,1,0,0,0,11645,11672,1,0,0,0,11646,11647,5,1604,0,0,11647,11648,5,1761, +0,0,11648,11650,5,258,0,0,11649,11651,7,126,0,0,11650,11649,1,0,0,0,11650, +11651,1,0,0,0,11651,11672,1,0,0,0,11652,11653,5,237,0,0,11653,11654,5,1761, +0,0,11654,11660,5,258,0,0,11655,11656,5,618,0,0,11656,11658,7,125,0,0,11657, +11659,7,103,0,0,11658,11657,1,0,0,0,11658,11659,1,0,0,0,11659,11661,1,0, +0,0,11660,11655,1,0,0,0,11660,11661,1,0,0,0,11661,11668,1,0,0,0,11662,11664, +5,1135,0,0,11663,11662,1,0,0,0,11663,11664,1,0,0,0,11664,11665,1,0,0,0,11665, +11666,5,1604,0,0,11666,11667,5,844,0,0,11667,11669,5,878,0,0,11668,11663, +1,0,0,0,11668,11669,1,0,0,0,11669,11672,1,0,0,0,11670,11672,5,1072,0,0,11671, +11630,1,0,0,0,11671,11646,1,0,0,0,11671,11652,1,0,0,0,11671,11670,1,0,0, +0,11672,1173,1,0,0,0,11673,11675,3,1186,593,0,11674,11673,1,0,0,0,11675, +11676,1,0,0,0,11676,11674,1,0,0,0,11676,11677,1,0,0,0,11677,11693,1,0,0, +0,11678,11680,5,744,0,0,11679,11681,3,1176,588,0,11680,11679,1,0,0,0,11680, +11681,1,0,0,0,11681,11685,1,0,0,0,11682,11683,5,1135,0,0,11683,11685,5,744, +0,0,11684,11678,1,0,0,0,11684,11682,1,0,0,0,11685,11689,1,0,0,0,11686,11688, +3,1186,593,0,11687,11686,1,0,0,0,11688,11691,1,0,0,0,11689,11687,1,0,0,0, +11689,11690,1,0,0,0,11690,11693,1,0,0,0,11691,11689,1,0,0,0,11692,11674, +1,0,0,0,11692,11684,1,0,0,0,11693,1175,1,0,0,0,11694,11699,3,1178,589,0, +11695,11699,3,1180,590,0,11696,11699,3,1182,591,0,11697,11699,3,1184,592, +0,11698,11694,1,0,0,0,11698,11695,1,0,0,0,11698,11696,1,0,0,0,11698,11697, +1,0,0,0,11699,11700,1,0,0,0,11700,11698,1,0,0,0,11700,11701,1,0,0,0,11701, +1177,1,0,0,0,11702,11703,5,939,0,0,11703,11709,5,618,0,0,11704,11710,5,447, +0,0,11705,11707,7,127,0,0,11706,11708,7,103,0,0,11707,11706,1,0,0,0,11707, +11708,1,0,0,0,11708,11710,1,0,0,0,11709,11704,1,0,0,0,11709,11705,1,0,0, +0,11710,11714,1,0,0,0,11711,11712,5,1135,0,0,11712,11714,5,939,0,0,11713, +11702,1,0,0,0,11713,11711,1,0,0,0,11714,1179,1,0,0,0,11715,11716,5,1451, +0,0,11716,11717,7,128,0,0,11717,1181,1,0,0,0,11718,11727,5,446,0,0,11719, +11728,5,91,0,0,11720,11725,5,160,0,0,11721,11722,5,1599,0,0,11722,11726, +5,1493,0,0,11723,11726,5,1346,0,0,11724,11726,5,1773,0,0,11725,11721,1,0, +0,0,11725,11723,1,0,0,0,11725,11724,1,0,0,0,11726,11728,1,0,0,0,11727,11719, +1,0,0,0,11727,11720,1,0,0,0,11727,11728,1,0,0,0,11728,11737,1,0,0,0,11729, +11730,5,618,0,0,11730,11735,5,1662,0,0,11731,11736,5,387,0,0,11732,11736, +5,38,0,0,11733,11736,3,2390,1195,0,11734,11736,5,1131,0,0,11735,11731,1, +0,0,0,11735,11732,1,0,0,0,11735,11733,1,0,0,0,11735,11734,1,0,0,0,11736, +11738,1,0,0,0,11737,11729,1,0,0,0,11737,11738,1,0,0,0,11738,1183,1,0,0,0, +11739,11741,5,473,0,0,11740,11742,5,38,0,0,11741,11740,1,0,0,0,11741,11742, +1,0,0,0,11742,11746,1,0,0,0,11743,11744,5,1135,0,0,11744,11746,5,473,0,0, +11745,11739,1,0,0,0,11745,11743,1,0,0,0,11746,1185,1,0,0,0,11747,11749,5, +744,0,0,11748,11750,3,1178,589,0,11749,11748,1,0,0,0,11749,11750,1,0,0,0, +11750,11754,1,0,0,0,11751,11752,5,1135,0,0,11752,11754,5,744,0,0,11753,11747, +1,0,0,0,11753,11751,1,0,0,0,11754,11755,1,0,0,0,11755,11756,5,2445,0,0,11756, +11757,3,2346,1173,0,11757,11758,5,2446,0,0,11758,1187,1,0,0,0,11759,11760, +5,1367,0,0,11760,11770,5,2439,0,0,11761,11762,5,1370,0,0,11762,11770,5,2439, +0,0,11763,11764,5,741,0,0,11764,11770,5,2439,0,0,11765,11766,5,929,0,0,11766, +11770,5,2439,0,0,11767,11770,3,1190,595,0,11768,11770,3,676,338,0,11769, +11759,1,0,0,0,11769,11761,1,0,0,0,11769,11763,1,0,0,0,11769,11765,1,0,0, +0,11769,11767,1,0,0,0,11769,11768,1,0,0,0,11770,11771,1,0,0,0,11771,11769, +1,0,0,0,11771,11772,1,0,0,0,11772,1189,1,0,0,0,11773,11774,5,1760,0,0,11774, +11802,5,2445,0,0,11775,11776,5,738,0,0,11776,11803,3,1170,585,0,11777,11778, +5,1023,0,0,11778,11803,3,1170,585,0,11779,11780,5,950,0,0,11780,11803,7, +129,0,0,11781,11782,5,921,0,0,11782,11803,7,129,0,0,11783,11784,5,1368,0, +0,11784,11803,5,2439,0,0,11785,11786,5,623,0,0,11786,11803,5,2439,0,0,11787, +11788,5,622,0,0,11788,11789,5,651,0,0,11789,11803,5,2439,0,0,11790,11793, +5,1266,0,0,11791,11794,3,1170,585,0,11792,11794,5,1226,0,0,11793,11791,1, +0,0,0,11793,11792,1,0,0,0,11794,11803,1,0,0,0,11795,11796,5,157,0,0,11796, +11803,7,130,0,0,11797,11798,5,604,0,0,11798,11803,7,131,0,0,11799,11800, +5,186,0,0,11800,11803,7,131,0,0,11801,11803,5,503,0,0,11802,11775,1,0,0, +0,11802,11777,1,0,0,0,11802,11779,1,0,0,0,11802,11781,1,0,0,0,11802,11783, +1,0,0,0,11802,11785,1,0,0,0,11802,11787,1,0,0,0,11802,11790,1,0,0,0,11802, +11795,1,0,0,0,11802,11797,1,0,0,0,11802,11799,1,0,0,0,11802,11801,1,0,0, +0,11803,11804,1,0,0,0,11804,11802,1,0,0,0,11804,11805,1,0,0,0,11805,11806, +1,0,0,0,11806,11807,5,2446,0,0,11807,1191,1,0,0,0,11808,11809,5,1643,0,0, +11809,11810,5,322,0,0,11810,11811,7,67,0,0,11811,1193,1,0,0,0,11812,11824, +3,1188,594,0,11813,11819,5,2078,0,0,11814,11820,3,2392,1196,0,11815,11817, +5,1669,0,0,11816,11815,1,0,0,0,11816,11817,1,0,0,0,11817,11818,1,0,0,0,11818, +11820,3,2390,1195,0,11819,11814,1,0,0,0,11819,11816,1,0,0,0,11820,11824, +1,0,0,0,11821,11824,3,1172,586,0,11822,11824,3,884,442,0,11823,11812,1,0, +0,0,11823,11813,1,0,0,0,11823,11821,1,0,0,0,11823,11822,1,0,0,0,11824,11825, +1,0,0,0,11825,11823,1,0,0,0,11825,11826,1,0,0,0,11826,1195,1,0,0,0,11827, +11871,3,1192,596,0,11828,11871,3,1194,597,0,11829,11871,3,1172,586,0,11830, +11871,3,1174,587,0,11831,11871,3,1198,599,0,11832,11847,5,1304,0,0,11833, +11835,5,663,0,0,11834,11836,3,1194,597,0,11835,11834,1,0,0,0,11835,11836, +1,0,0,0,11836,11837,1,0,0,0,11837,11848,3,1214,607,0,11838,11840,5,715,0, +0,11839,11841,3,1194,597,0,11840,11839,1,0,0,0,11840,11841,1,0,0,0,11841, +11843,1,0,0,0,11842,11844,3,1588,794,0,11843,11842,1,0,0,0,11843,11844,1, +0,0,0,11844,11848,1,0,0,0,11845,11846,5,558,0,0,11846,11848,3,1216,608,0, +11847,11833,1,0,0,0,11847,11838,1,0,0,0,11847,11845,1,0,0,0,11848,11871, +1,0,0,0,11849,11850,5,558,0,0,11850,11851,5,1346,0,0,11851,11852,5,84,0, +0,11852,11855,3,1216,608,0,11853,11854,5,1547,0,0,11854,11856,5,856,0,0, +11855,11853,1,0,0,0,11855,11856,1,0,0,0,11856,11871,1,0,0,0,11857,11858, +5,220,0,0,11858,11859,3,464,232,0,11859,11860,5,2445,0,0,11860,11865,3,2328, +1164,0,11861,11862,5,2451,0,0,11862,11864,3,2328,1164,0,11863,11861,1,0, +0,0,11864,11867,1,0,0,0,11865,11863,1,0,0,0,11865,11866,1,0,0,0,11866,11868, +1,0,0,0,11867,11865,1,0,0,0,11868,11869,5,2446,0,0,11869,11871,1,0,0,0,11870, +11827,1,0,0,0,11870,11828,1,0,0,0,11870,11829,1,0,0,0,11870,11830,1,0,0, +0,11870,11831,1,0,0,0,11870,11832,1,0,0,0,11870,11849,1,0,0,0,11870,11857, +1,0,0,0,11871,1197,1,0,0,0,11872,11882,5,695,0,0,11873,11874,5,21,0,0,11874, +11875,5,1410,0,0,11875,11883,3,1200,600,0,11876,11877,7,132,0,0,11877,11878, +5,1410,0,0,11878,11883,3,1200,600,0,11879,11883,5,400,0,0,11880,11883,5, +496,0,0,11881,11883,5,426,0,0,11882,11873,1,0,0,0,11882,11876,1,0,0,0,11882, +11879,1,0,0,0,11882,11880,1,0,0,0,11882,11881,1,0,0,0,11883,1199,1,0,0,0, +11884,11888,3,1202,601,0,11885,11888,3,1204,602,0,11886,11888,3,1210,605, +0,11887,11884,1,0,0,0,11887,11885,1,0,0,0,11887,11886,1,0,0,0,11888,1201, +1,0,0,0,11889,11890,3,1172,586,0,11890,11891,3,1208,604,0,11891,11892,3, +1206,603,0,11892,11909,1,0,0,0,11893,11894,7,133,0,0,11894,11895,5,1761, +0,0,11895,11899,5,258,0,0,11896,11900,5,29,0,0,11897,11898,5,618,0,0,11898, +11900,5,1482,0,0,11899,11896,1,0,0,0,11899,11897,1,0,0,0,11900,11901,1,0, +0,0,11901,11902,5,1604,0,0,11902,11903,5,33,0,0,11903,11904,3,1212,606,0, +11904,11905,5,1244,0,0,11905,11906,5,1135,0,0,11906,11907,5,976,0,0,11907, +11909,1,0,0,0,11908,11889,1,0,0,0,11908,11893,1,0,0,0,11909,1203,1,0,0,0, +11910,11911,5,2102,0,0,11911,11912,5,2139,0,0,11912,11926,3,1648,824,0,11913, +11915,3,1208,604,0,11914,11913,1,0,0,0,11914,11915,1,0,0,0,11915,11918,1, +0,0,0,11916,11917,5,1257,0,0,11917,11919,3,2308,1154,0,11918,11916,1,0,0, +0,11918,11919,1,0,0,0,11919,11927,1,0,0,0,11920,11921,5,1503,0,0,11921,11923, +5,1256,0,0,11922,11924,3,1208,604,0,11923,11922,1,0,0,0,11923,11924,1,0, +0,0,11924,11925,1,0,0,0,11925,11927,3,1206,603,0,11926,11914,1,0,0,0,11926, +11920,1,0,0,0,11927,1205,1,0,0,0,11928,11929,5,33,0,0,11929,11930,3,1212, +606,0,11930,11934,5,1244,0,0,11931,11932,5,1135,0,0,11932,11935,7,134,0, +0,11933,11935,5,322,0,0,11934,11931,1,0,0,0,11934,11933,1,0,0,0,11935,11939, +1,0,0,0,11936,11937,5,1257,0,0,11937,11939,3,2308,1154,0,11938,11928,1,0, +0,0,11938,11936,1,0,0,0,11939,1207,1,0,0,0,11940,11941,7,135,0,0,11941,1209, +1,0,0,0,11942,11943,5,1669,0,0,11943,11945,5,744,0,0,11944,11946,3,1176, +588,0,11945,11944,1,0,0,0,11945,11946,1,0,0,0,11946,11953,1,0,0,0,11947, +11948,5,978,0,0,11948,11949,5,744,0,0,11949,11953,3,1178,589,0,11950,11951, +5,1135,0,0,11951,11953,5,744,0,0,11952,11942,1,0,0,0,11952,11947,1,0,0,0, +11952,11950,1,0,0,0,11953,11955,1,0,0,0,11954,11956,5,1643,0,0,11955,11954, +1,0,0,0,11955,11956,1,0,0,0,11956,11957,1,0,0,0,11957,11958,3,1206,603,0, +11958,1211,1,0,0,0,11959,11960,3,2384,1192,0,11960,11961,7,136,0,0,11961, +1213,1,0,0,0,11962,11964,3,1172,586,0,11963,11962,1,0,0,0,11963,11964,1, +0,0,0,11964,11966,1,0,0,0,11965,11967,3,1174,587,0,11966,11965,1,0,0,0,11966, +11967,1,0,0,0,11967,11969,1,0,0,0,11968,11970,3,1198,599,0,11969,11968,1, +0,0,0,11969,11970,1,0,0,0,11970,1215,1,0,0,0,11971,11974,5,2445,0,0,11972, +11973,5,2164,0,0,11973,11975,3,1218,609,0,11974,11972,1,0,0,0,11974,11975, +1,0,0,0,11975,11976,1,0,0,0,11976,11977,3,1220,610,0,11977,11979,5,2446, +0,0,11978,11980,3,926,463,0,11979,11978,1,0,0,0,11979,11980,1,0,0,0,11980, +11987,1,0,0,0,11981,11982,5,1547,0,0,11982,11985,5,856,0,0,11983,11986,3, +2384,1192,0,11984,11986,5,2183,0,0,11985,11983,1,0,0,0,11985,11984,1,0,0, +0,11986,11988,1,0,0,0,11987,11981,1,0,0,0,11987,11988,1,0,0,0,11988,11990, +1,0,0,0,11989,11991,3,1174,587,0,11990,11989,1,0,0,0,11990,11991,1,0,0,0, +11991,1217,1,0,0,0,11992,11993,7,137,0,0,11993,1219,1,0,0,0,11994,11995, +5,387,0,0,11995,11996,5,424,0,0,11996,11998,3,1264,632,0,11997,11994,1,0, +0,0,11997,11998,1,0,0,0,11998,12017,1,0,0,0,11999,12000,5,4,0,0,12000,12015, +5,1333,0,0,12001,12002,5,2445,0,0,12002,12003,5,2441,0,0,12003,12016,5,2446, +0,0,12004,12006,5,2445,0,0,12005,12007,3,1222,611,0,12006,12005,1,0,0,0, +12007,12008,1,0,0,0,12008,12006,1,0,0,0,12008,12009,1,0,0,0,12009,12010, +1,0,0,0,12010,12011,5,2446,0,0,12011,12016,1,0,0,0,12012,12013,5,2244,0, +0,12013,12014,5,215,0,0,12014,12016,3,1860,930,0,12015,12001,1,0,0,0,12015, +12004,1,0,0,0,12015,12012,1,0,0,0,12016,12018,1,0,0,0,12017,11999,1,0,0, +0,12017,12018,1,0,0,0,12018,12031,1,0,0,0,12019,12020,5,874,0,0,12020,12021, +5,2445,0,0,12021,12026,3,1264,632,0,12022,12023,5,2451,0,0,12023,12025,3, +1264,632,0,12024,12022,1,0,0,0,12025,12028,1,0,0,0,12026,12024,1,0,0,0,12026, +12027,1,0,0,0,12027,12029,1,0,0,0,12028,12026,1,0,0,0,12029,12030,5,2446, +0,0,12030,12032,1,0,0,0,12031,12019,1,0,0,0,12031,12032,1,0,0,0,12032,1221, +1,0,0,0,12033,12034,5,1511,0,0,12034,12035,5,403,0,0,12035,12036,5,160,0, +0,12036,12055,5,1020,0,0,12037,12038,5,237,0,0,12038,12039,5,2147,0,0,12039, +12040,5,2445,0,0,12040,12045,3,1224,612,0,12041,12042,5,2451,0,0,12042,12044, +3,1224,612,0,12043,12041,1,0,0,0,12044,12047,1,0,0,0,12045,12043,1,0,0,0, +12045,12046,1,0,0,0,12046,12048,1,0,0,0,12047,12045,1,0,0,0,12048,12049, +5,2446,0,0,12049,12055,1,0,0,0,12050,12055,3,1248,624,0,12051,12055,3,1254, +627,0,12052,12055,3,1256,628,0,12053,12055,3,1258,629,0,12054,12033,1,0, +0,0,12054,12037,1,0,0,0,12054,12050,1,0,0,0,12054,12051,1,0,0,0,12054,12052, +1,0,0,0,12054,12053,1,0,0,0,12055,1223,1,0,0,0,12056,12057,3,2328,1164,0, +12057,12092,5,626,0,0,12058,12093,5,1226,0,0,12059,12060,5,282,0,0,12060, +12093,3,2388,1194,0,12061,12065,7,138,0,0,12062,12066,3,1226,613,0,12063, +12064,5,282,0,0,12064,12066,3,2388,1194,0,12065,12062,1,0,0,0,12065,12063, +1,0,0,0,12066,12093,1,0,0,0,12067,12068,5,626,0,0,12068,12069,5,2445,0,0, +12069,12074,3,1264,632,0,12070,12071,5,2451,0,0,12071,12073,3,1264,632,0, +12072,12070,1,0,0,0,12073,12076,1,0,0,0,12074,12072,1,0,0,0,12074,12075, +1,0,0,0,12075,12077,1,0,0,0,12076,12074,1,0,0,0,12077,12078,5,2446,0,0,12078, +12085,1,0,0,0,12079,12085,5,215,0,0,12080,12085,5,142,0,0,12081,12082,5, +195,0,0,12082,12083,5,2469,0,0,12083,12085,3,2334,1167,0,12084,12067,1,0, +0,0,12084,12079,1,0,0,0,12084,12080,1,0,0,0,12084,12081,1,0,0,0,12085,12093, +1,0,0,0,12086,12087,5,1736,0,0,12087,12088,3,1228,614,0,12088,12089,5,2445, +0,0,12089,12090,5,2439,0,0,12090,12091,5,2446,0,0,12091,12093,1,0,0,0,12092, +12058,1,0,0,0,12092,12059,1,0,0,0,12092,12061,1,0,0,0,12092,12084,1,0,0, +0,12092,12086,1,0,0,0,12093,1225,1,0,0,0,12094,12096,3,2328,1164,0,12095, +12097,3,2302,1151,0,12096,12095,1,0,0,0,12096,12097,1,0,0,0,12097,12100, +1,0,0,0,12098,12099,5,1202,0,0,12099,12101,5,1226,0,0,12100,12098,1,0,0, +0,12100,12101,1,0,0,0,12101,12103,1,0,0,0,12102,12104,3,1730,865,0,12103, +12102,1,0,0,0,12103,12104,1,0,0,0,12104,1227,1,0,0,0,12105,12110,3,1230, +615,0,12106,12107,5,2451,0,0,12107,12109,3,1230,615,0,12108,12106,1,0,0, +0,12109,12112,1,0,0,0,12110,12108,1,0,0,0,12110,12111,1,0,0,0,12111,1229, +1,0,0,0,12112,12110,1,0,0,0,12113,12120,3,1226,613,0,12114,12119,3,1232, +616,0,12115,12119,3,1234,617,0,12116,12119,3,1242,621,0,12117,12119,3,1246, +623,0,12118,12114,1,0,0,0,12118,12115,1,0,0,0,12118,12116,1,0,0,0,12118, +12117,1,0,0,0,12119,12122,1,0,0,0,12120,12118,1,0,0,0,12120,12121,1,0,0, +0,12121,1231,1,0,0,0,12122,12120,1,0,0,0,12123,12125,5,1416,0,0,12124,12123, +1,0,0,0,12124,12125,1,0,0,0,12125,12126,1,0,0,0,12126,12128,5,2445,0,0,12127, +12129,5,2448,0,0,12128,12127,1,0,0,0,12128,12129,1,0,0,0,12129,12131,1,0, +0,0,12130,12132,7,139,0,0,12131,12130,1,0,0,0,12131,12132,1,0,0,0,12132, +12134,1,0,0,0,12133,12135,5,2439,0,0,12134,12133,1,0,0,0,12134,12135,1,0, +0,0,12135,12142,1,0,0,0,12136,12143,5,2459,0,0,12137,12139,5,2466,0,0,12138, +12140,7,139,0,0,12139,12138,1,0,0,0,12139,12140,1,0,0,0,12140,12141,1,0, +0,0,12141,12143,5,2439,0,0,12142,12136,1,0,0,0,12142,12137,1,0,0,0,12143, +12144,1,0,0,0,12144,12145,5,2446,0,0,12145,1233,1,0,0,0,12146,12148,5,2198, +0,0,12147,12146,1,0,0,0,12147,12148,1,0,0,0,12148,12149,1,0,0,0,12149,12151, +5,767,0,0,12150,12152,5,558,0,0,12151,12150,1,0,0,0,12151,12152,1,0,0,0, +12152,12154,1,0,0,0,12153,12155,5,2439,0,0,12154,12153,1,0,0,0,12154,12155, +1,0,0,0,12155,12157,1,0,0,0,12156,12158,3,1236,618,0,12157,12156,1,0,0,0, +12157,12158,1,0,0,0,12158,12236,1,0,0,0,12159,12176,7,140,0,0,12160,12161, +5,2445,0,0,12161,12164,5,2439,0,0,12162,12163,5,2451,0,0,12163,12165,5,2439, +0,0,12164,12162,1,0,0,0,12164,12165,1,0,0,0,12165,12166,1,0,0,0,12166,12177, +5,2446,0,0,12167,12171,5,558,0,0,12168,12169,5,2445,0,0,12169,12170,5,2439, +0,0,12170,12172,5,2446,0,0,12171,12168,1,0,0,0,12171,12172,1,0,0,0,12172, +12174,1,0,0,0,12173,12175,3,1236,618,0,12174,12173,1,0,0,0,12174,12175,1, +0,0,0,12175,12177,1,0,0,0,12176,12160,1,0,0,0,12176,12167,1,0,0,0,12177, +12236,1,0,0,0,12178,12236,5,1279,0,0,12179,12181,5,1280,0,0,12180,12182, +5,312,0,0,12181,12180,1,0,0,0,12181,12182,1,0,0,0,12182,12236,1,0,0,0,12183, +12185,5,605,0,0,12184,12186,5,558,0,0,12185,12184,1,0,0,0,12185,12186,1, +0,0,0,12186,12188,1,0,0,0,12187,12189,5,2439,0,0,12188,12187,1,0,0,0,12188, +12189,1,0,0,0,12189,12191,1,0,0,0,12190,12192,3,1236,618,0,12191,12190,1, +0,0,0,12191,12192,1,0,0,0,12192,12236,1,0,0,0,12193,12236,5,463,0,0,12194, +12196,5,128,0,0,12195,12197,5,558,0,0,12196,12195,1,0,0,0,12196,12197,1, +0,0,0,12197,12199,1,0,0,0,12198,12200,5,2439,0,0,12199,12198,1,0,0,0,12199, +12200,1,0,0,0,12200,12202,1,0,0,0,12201,12203,3,1236,618,0,12202,12201,1, +0,0,0,12202,12203,1,0,0,0,12203,12236,1,0,0,0,12204,12236,5,125,0,0,12205, +12207,5,1496,0,0,12206,12208,5,2439,0,0,12207,12206,1,0,0,0,12207,12208, +1,0,0,0,12208,12236,1,0,0,0,12209,12211,5,196,0,0,12210,12212,5,558,0,0, +12211,12210,1,0,0,0,12211,12212,1,0,0,0,12212,12216,1,0,0,0,12213,12214, +5,2445,0,0,12214,12215,5,2439,0,0,12215,12217,5,2446,0,0,12216,12213,1,0, +0,0,12216,12217,1,0,0,0,12217,12219,1,0,0,0,12218,12220,3,1236,618,0,12219, +12218,1,0,0,0,12219,12220,1,0,0,0,12220,12222,1,0,0,0,12221,12223,3,1238, +619,0,12222,12221,1,0,0,0,12222,12223,1,0,0,0,12223,12225,1,0,0,0,12224, +12226,3,1240,620,0,12225,12224,1,0,0,0,12225,12226,1,0,0,0,12226,12236,1, +0,0,0,12227,12228,7,141,0,0,12228,12231,5,2445,0,0,12229,12230,5,2439,0, +0,12230,12232,5,2451,0,0,12231,12229,1,0,0,0,12231,12232,1,0,0,0,12232,12233, +1,0,0,0,12233,12234,5,2439,0,0,12234,12236,5,2446,0,0,12235,12147,1,0,0, +0,12235,12159,1,0,0,0,12235,12178,1,0,0,0,12235,12179,1,0,0,0,12235,12183, +1,0,0,0,12235,12193,1,0,0,0,12235,12194,1,0,0,0,12235,12204,1,0,0,0,12235, +12205,1,0,0,0,12235,12209,1,0,0,0,12235,12227,1,0,0,0,12236,1235,1,0,0,0, +12237,12238,5,501,0,0,12238,12239,5,160,0,0,12239,12242,3,2388,1194,0,12240, +12241,5,49,0,0,12241,12243,3,2388,1194,0,12242,12240,1,0,0,0,12242,12243, +1,0,0,0,12243,12263,1,0,0,0,12244,12245,5,2092,0,0,12245,12248,5,160,0,0, +12246,12249,3,2388,1194,0,12247,12249,5,2301,0,0,12248,12246,1,0,0,0,12248, +12247,1,0,0,0,12249,12260,1,0,0,0,12250,12252,5,1271,0,0,12251,12250,1,0, +0,0,12251,12252,1,0,0,0,12252,12253,1,0,0,0,12253,12254,5,501,0,0,12254, +12255,5,160,0,0,12255,12258,3,2388,1194,0,12256,12257,5,49,0,0,12257,12259, +3,2388,1194,0,12258,12256,1,0,0,0,12258,12259,1,0,0,0,12259,12261,1,0,0, +0,12260,12251,1,0,0,0,12260,12261,1,0,0,0,12261,12263,1,0,0,0,12262,12237, +1,0,0,0,12262,12244,1,0,0,0,12263,1237,1,0,0,0,12264,12265,7,142,0,0,12265, +1239,1,0,0,0,12266,12268,5,361,0,0,12267,12266,1,0,0,0,12267,12268,1,0,0, +0,12268,12283,1,0,0,0,12269,12284,5,359,0,0,12270,12277,5,2106,0,0,12271, +12273,5,2306,0,0,12272,12274,5,871,0,0,12273,12272,1,0,0,0,12273,12274,1, +0,0,0,12274,12275,1,0,0,0,12275,12276,5,2110,0,0,12276,12278,5,2361,0,0, +12277,12271,1,0,0,0,12277,12278,1,0,0,0,12278,12279,1,0,0,0,12279,12280, +5,910,0,0,12280,12284,3,2388,1194,0,12281,12282,5,774,0,0,12282,12284,7, +143,0,0,12283,12269,1,0,0,0,12283,12270,1,0,0,0,12283,12281,1,0,0,0,12284, +1241,1,0,0,0,12285,12286,7,144,0,0,12286,12287,3,1244,622,0,12287,1243,1, +0,0,0,12288,12294,6,622,-1,0,12289,12295,3,1750,875,0,12290,12291,5,2445, +0,0,12291,12292,5,2439,0,0,12292,12293,5,2459,0,0,12293,12295,5,2446,0,0, +12294,12289,1,0,0,0,12294,12290,1,0,0,0,12295,12296,1,0,0,0,12296,12300, +3,2088,1044,0,12297,12301,3,2388,1194,0,12298,12301,5,2436,0,0,12299,12301, +5,141,0,0,12300,12297,1,0,0,0,12300,12298,1,0,0,0,12300,12299,1,0,0,0,12301, +12307,1,0,0,0,12302,12303,10,1,0,0,12303,12304,7,145,0,0,12304,12306,3,1244, +622,2,12305,12302,1,0,0,0,12306,12309,1,0,0,0,12307,12305,1,0,0,0,12307, +12308,1,0,0,0,12308,1245,1,0,0,0,12309,12307,1,0,0,0,12310,12311,5,862,0, +0,12311,12312,3,1264,632,0,12312,1247,1,0,0,0,12313,12342,5,1511,0,0,12314, +12315,5,600,0,0,12315,12343,5,2439,0,0,12316,12317,5,2260,0,0,12317,12343, +5,2439,0,0,12318,12319,5,403,0,0,12319,12325,5,160,0,0,12320,12322,5,416, +0,0,12321,12320,1,0,0,0,12321,12322,1,0,0,0,12322,12323,1,0,0,0,12323,12326, +5,1020,0,0,12324,12326,3,2388,1194,0,12325,12321,1,0,0,0,12325,12324,1,0, +0,0,12326,12343,1,0,0,0,12327,12329,5,2346,0,0,12328,12330,5,2445,0,0,12329, +12328,1,0,0,0,12329,12330,1,0,0,0,12330,12331,1,0,0,0,12331,12336,3,2392, +1196,0,12332,12333,5,2451,0,0,12333,12335,3,2392,1196,0,12334,12332,1,0, +0,0,12335,12338,1,0,0,0,12336,12334,1,0,0,0,12336,12337,1,0,0,0,12337,12340, +1,0,0,0,12338,12336,1,0,0,0,12339,12341,5,2446,0,0,12340,12339,1,0,0,0,12340, +12341,1,0,0,0,12341,12343,1,0,0,0,12342,12314,1,0,0,0,12342,12316,1,0,0, +0,12342,12318,1,0,0,0,12342,12327,1,0,0,0,12343,12347,1,0,0,0,12344,12346, +3,1250,625,0,12345,12344,1,0,0,0,12346,12349,1,0,0,0,12347,12345,1,0,0,0, +12347,12348,1,0,0,0,12348,12356,1,0,0,0,12349,12347,1,0,0,0,12350,12352, +3,1250,625,0,12351,12350,1,0,0,0,12352,12353,1,0,0,0,12353,12351,1,0,0,0, +12353,12354,1,0,0,0,12354,12356,1,0,0,0,12355,12313,1,0,0,0,12355,12351, +1,0,0,0,12356,1249,1,0,0,0,12357,12358,5,195,0,0,12358,12395,3,2334,1167, +0,12359,12360,5,558,0,0,12360,12361,5,2260,0,0,12361,12395,5,349,0,0,12362, +12363,5,1440,0,0,12363,12395,3,1264,632,0,12364,12365,5,349,0,0,12365,12366, +5,783,0,0,12366,12367,7,146,0,0,12367,12395,5,508,0,0,12368,12369,5,165, +0,0,12369,12395,7,147,0,0,12370,12371,5,1765,0,0,12371,12372,5,1698,0,0, +12372,12373,5,67,0,0,12373,12374,5,736,0,0,12374,12395,7,148,0,0,12375,12376, +5,865,0,0,12376,12377,5,2298,0,0,12377,12395,3,1244,622,0,12378,12395,3, +1252,626,0,12379,12381,5,1505,0,0,12380,12382,5,2469,0,0,12381,12380,1,0, +0,0,12381,12382,1,0,0,0,12382,12383,1,0,0,0,12383,12395,5,2439,0,0,12384, +12395,5,429,0,0,12385,12386,5,360,0,0,12386,12395,5,2439,0,0,12387,12388, +5,1700,0,0,12388,12395,5,2439,0,0,12389,12390,5,782,0,0,12390,12395,7,149, +0,0,12391,12395,7,150,0,0,12392,12393,5,451,0,0,12393,12395,5,2439,0,0,12394, +12357,1,0,0,0,12394,12359,1,0,0,0,12394,12362,1,0,0,0,12394,12364,1,0,0, +0,12394,12368,1,0,0,0,12394,12370,1,0,0,0,12394,12375,1,0,0,0,12394,12378, +1,0,0,0,12394,12379,1,0,0,0,12394,12384,1,0,0,0,12394,12385,1,0,0,0,12394, +12387,1,0,0,0,12394,12389,1,0,0,0,12394,12391,1,0,0,0,12394,12392,1,0,0, +0,12395,1251,1,0,0,0,12396,12403,7,151,0,0,12397,12399,7,152,0,0,12398,12400, +3,1264,632,0,12399,12398,1,0,0,0,12399,12400,1,0,0,0,12400,12401,1,0,0,0, +12401,12403,3,1452,726,0,12402,12396,1,0,0,0,12402,12397,1,0,0,0,12403,1253, +1,0,0,0,12404,12406,5,586,0,0,12405,12407,5,691,0,0,12406,12405,1,0,0,0, +12406,12407,1,0,0,0,12407,12411,1,0,0,0,12408,12409,5,328,0,0,12409,12410, +7,2,0,0,12410,12412,5,492,0,0,12411,12408,1,0,0,0,12411,12412,1,0,0,0,12412, +12414,1,0,0,0,12413,12415,3,1236,618,0,12414,12413,1,0,0,0,12414,12415,1, +0,0,0,12415,12417,1,0,0,0,12416,12418,3,1238,619,0,12417,12416,1,0,0,0,12417, +12418,1,0,0,0,12418,12424,1,0,0,0,12419,12420,5,38,0,0,12420,12421,5,586, +0,0,12421,12422,5,1321,0,0,12422,12423,5,2099,0,0,12423,12425,5,586,0,0, +12424,12419,1,0,0,0,12424,12425,1,0,0,0,12425,12431,1,0,0,0,12426,12427, +5,962,0,0,12427,12428,5,585,0,0,12428,12429,5,2255,0,0,12429,12430,5,67, +0,0,12430,12432,5,1226,0,0,12431,12426,1,0,0,0,12431,12432,1,0,0,0,12432, +12439,1,0,0,0,12433,12434,5,1547,0,0,12434,12435,5,1605,0,0,12435,12436, +5,2306,0,0,12436,12437,5,38,0,0,12437,12438,5,1226,0,0,12438,12440,5,586, +0,0,12439,12433,1,0,0,0,12439,12440,1,0,0,0,12440,12445,1,0,0,0,12441,12442, +5,361,0,0,12442,12443,7,153,0,0,12443,12444,5,910,0,0,12444,12446,3,2388, +1194,0,12445,12441,1,0,0,0,12445,12446,1,0,0,0,12446,12455,1,0,0,0,12447, +12448,5,1225,0,0,12448,12452,7,154,0,0,12449,12453,3,2388,1194,0,12450,12453, +5,2436,0,0,12451,12453,5,141,0,0,12452,12449,1,0,0,0,12452,12450,1,0,0,0, +12452,12451,1,0,0,0,12453,12456,1,0,0,0,12454,12456,5,1132,0,0,12455,12447, +1,0,0,0,12455,12454,1,0,0,0,12455,12456,1,0,0,0,12456,12458,1,0,0,0,12457, +12459,5,2445,0,0,12458,12457,1,0,0,0,12458,12459,1,0,0,0,12459,12461,1,0, +0,0,12460,12462,3,1228,614,0,12461,12460,1,0,0,0,12461,12462,1,0,0,0,12462, +12464,1,0,0,0,12463,12465,5,2446,0,0,12464,12463,1,0,0,0,12464,12465,1,0, +0,0,12465,1255,1,0,0,0,12466,12467,5,504,0,0,12467,12523,7,155,0,0,12468, +12523,5,1116,0,0,12469,12471,5,880,0,0,12470,12472,3,1264,632,0,12471,12470, +1,0,0,0,12471,12472,1,0,0,0,12472,12473,1,0,0,0,12473,12523,3,1452,726,0, +12474,12480,5,259,0,0,12475,12477,5,498,0,0,12476,12478,7,156,0,0,12477, +12476,1,0,0,0,12477,12478,1,0,0,0,12478,12481,1,0,0,0,12479,12481,5,428, +0,0,12480,12475,1,0,0,0,12480,12479,1,0,0,0,12480,12481,1,0,0,0,12481,12523, +1,0,0,0,12482,12483,5,655,0,0,12483,12484,7,157,0,0,12484,12488,5,2283,0, +0,12485,12489,5,247,0,0,12486,12489,5,826,0,0,12487,12489,3,2388,1194,0, +12488,12485,1,0,0,0,12488,12486,1,0,0,0,12488,12487,1,0,0,0,12489,12523, +1,0,0,0,12490,12523,5,1115,0,0,12491,12492,5,376,0,0,12492,12493,5,2469, +0,0,12493,12494,5,2445,0,0,12494,12495,5,2439,0,0,12495,12496,5,2451,0,0, +12496,12497,5,2439,0,0,12497,12523,5,2446,0,0,12498,12499,5,357,0,0,12499, +12500,5,776,0,0,12500,12501,5,2081,0,0,12501,12523,3,2330,1165,0,12502,12503, +5,2089,0,0,12503,12523,3,2330,1165,0,12504,12505,5,791,0,0,12505,12506,5, +2445,0,0,12506,12507,3,2274,1137,0,12507,12508,5,2451,0,0,12508,12509,3, +2330,1165,0,12509,12510,5,2451,0,0,12510,12511,5,2439,0,0,12511,12512,5, +2446,0,0,12512,12523,1,0,0,0,12513,12514,5,2308,0,0,12514,12523,5,2439,0, +0,12515,12516,5,1331,0,0,12516,12523,5,2439,0,0,12517,12518,5,2283,0,0,12518, +12523,3,2388,1194,0,12519,12523,5,505,0,0,12520,12521,5,368,0,0,12521,12523, +3,2388,1194,0,12522,12466,1,0,0,0,12522,12468,1,0,0,0,12522,12469,1,0,0, +0,12522,12474,1,0,0,0,12522,12482,1,0,0,0,12522,12490,1,0,0,0,12522,12491, +1,0,0,0,12522,12498,1,0,0,0,12522,12502,1,0,0,0,12522,12504,1,0,0,0,12522, +12513,1,0,0,0,12522,12515,1,0,0,0,12522,12517,1,0,0,0,12522,12519,1,0,0, +0,12522,12520,1,0,0,0,12523,1257,1,0,0,0,12524,12529,3,2392,1196,0,12525, +12526,5,2438,0,0,12526,12528,3,2392,1196,0,12527,12525,1,0,0,0,12528,12531, +1,0,0,0,12529,12527,1,0,0,0,12529,12530,1,0,0,0,12530,12532,1,0,0,0,12531, +12529,1,0,0,0,12532,12616,7,158,0,0,12533,12617,3,2330,1165,0,12534,12617, +3,1260,630,0,12535,12536,5,2470,0,0,12536,12541,3,1260,630,0,12537,12538, +5,2451,0,0,12538,12540,3,1260,630,0,12539,12537,1,0,0,0,12540,12543,1,0, +0,0,12541,12539,1,0,0,0,12541,12542,1,0,0,0,12542,12544,1,0,0,0,12543,12541, +1,0,0,0,12544,12545,5,2471,0,0,12545,12617,1,0,0,0,12546,12547,3,1226,613, +0,12547,12550,3,2364,1182,0,12548,12549,5,241,0,0,12549,12551,3,2388,1194, +0,12550,12548,1,0,0,0,12550,12551,1,0,0,0,12551,12557,1,0,0,0,12552,12553, +5,2451,0,0,12553,12554,5,241,0,0,12554,12556,3,2388,1194,0,12555,12552,1, +0,0,0,12556,12559,1,0,0,0,12557,12555,1,0,0,0,12557,12558,1,0,0,0,12558, +12617,1,0,0,0,12559,12557,1,0,0,0,12560,12617,5,1652,0,0,12561,12617,5,2095, +0,0,12562,12617,5,1501,0,0,12563,12617,5,1278,0,0,12564,12617,5,1339,0,0, +12565,12566,5,750,0,0,12566,12567,3,2388,1194,0,12567,12568,5,1314,0,0,12568, +12569,3,2388,1194,0,12569,12617,1,0,0,0,12570,12617,3,1264,632,0,12571,12573, +5,403,0,0,12572,12571,1,0,0,0,12572,12573,1,0,0,0,12573,12595,1,0,0,0,12574, +12575,5,586,0,0,12575,12576,5,2092,0,0,12576,12577,5,160,0,0,12577,12578, +5,193,0,0,12578,12579,5,524,0,0,12579,12580,5,160,0,0,12580,12596,5,193, +0,0,12581,12582,5,234,0,0,12582,12587,5,787,0,0,12583,12584,5,908,0,0,12584, +12587,5,817,0,0,12585,12587,5,858,0,0,12586,12581,1,0,0,0,12586,12583,1, +0,0,0,12586,12585,1,0,0,0,12587,12588,1,0,0,0,12588,12589,5,2092,0,0,12589, +12590,5,160,0,0,12590,12596,5,193,0,0,12591,12592,5,1226,0,0,12592,12593, +5,394,0,0,12593,12594,5,69,0,0,12594,12596,5,193,0,0,12595,12574,1,0,0,0, +12595,12586,1,0,0,0,12595,12591,1,0,0,0,12596,12617,1,0,0,0,12597,12598, +5,1655,0,0,12598,12614,3,2388,1194,0,12599,12600,5,2306,0,0,12600,12601, +5,1656,0,0,12601,12602,3,2388,1194,0,12602,12603,5,2469,0,0,12603,12611, +3,2388,1194,0,12604,12605,5,2451,0,0,12605,12606,3,2388,1194,0,12606,12607, +5,2469,0,0,12607,12608,3,2388,1194,0,12608,12610,1,0,0,0,12609,12604,1,0, +0,0,12610,12613,1,0,0,0,12611,12609,1,0,0,0,12611,12612,1,0,0,0,12612,12615, +1,0,0,0,12613,12611,1,0,0,0,12614,12599,1,0,0,0,12614,12615,1,0,0,0,12615, +12617,1,0,0,0,12616,12533,1,0,0,0,12616,12534,1,0,0,0,12616,12535,1,0,0, +0,12616,12546,1,0,0,0,12616,12560,1,0,0,0,12616,12561,1,0,0,0,12616,12562, +1,0,0,0,12616,12563,1,0,0,0,12616,12564,1,0,0,0,12616,12565,1,0,0,0,12616, +12570,1,0,0,0,12616,12572,1,0,0,0,12616,12597,1,0,0,0,12617,12619,1,0,0, +0,12618,12620,3,1258,629,0,12619,12618,1,0,0,0,12619,12620,1,0,0,0,12620, +1259,1,0,0,0,12621,12622,5,2456,0,0,12622,12627,3,1262,631,0,12623,12624, +5,2451,0,0,12624,12626,3,1262,631,0,12625,12623,1,0,0,0,12626,12629,1,0, +0,0,12627,12625,1,0,0,0,12627,12628,1,0,0,0,12628,12630,1,0,0,0,12629,12627, +1,0,0,0,12630,12631,5,2457,0,0,12631,1261,1,0,0,0,12632,12633,3,2392,1196, +0,12633,12634,5,2459,0,0,12634,12660,1,0,0,0,12635,12636,3,2392,1196,0,12636, +12637,5,2466,0,0,12637,12638,5,2470,0,0,12638,12643,3,2392,1196,0,12639, +12640,5,2451,0,0,12640,12642,3,2392,1196,0,12641,12639,1,0,0,0,12642,12645, +1,0,0,0,12643,12641,1,0,0,0,12643,12644,1,0,0,0,12644,12646,1,0,0,0,12645, +12643,1,0,0,0,12646,12647,5,2471,0,0,12647,12660,1,0,0,0,12648,12649,5,2470, +0,0,12649,12654,3,2392,1196,0,12650,12651,5,2451,0,0,12651,12653,3,2392, +1196,0,12652,12650,1,0,0,0,12653,12656,1,0,0,0,12654,12652,1,0,0,0,12654, +12655,1,0,0,0,12655,12657,1,0,0,0,12656,12654,1,0,0,0,12657,12658,5,2471, +0,0,12658,12660,1,0,0,0,12659,12632,1,0,0,0,12659,12635,1,0,0,0,12659,12648, +1,0,0,0,12660,1263,1,0,0,0,12661,12662,3,784,392,0,12662,12663,5,2466,0, +0,12663,12664,5,2441,0,0,12664,12677,1,0,0,0,12665,12667,3,784,392,0,12666, +12668,3,738,369,0,12667,12666,1,0,0,0,12667,12668,1,0,0,0,12668,12669,1, +0,0,0,12669,12670,5,2466,0,0,12670,12672,1,0,0,0,12671,12665,1,0,0,0,12671, +12672,1,0,0,0,12672,12673,1,0,0,0,12673,12677,5,2441,0,0,12674,12677,3,2388, +1194,0,12675,12677,3,2314,1157,0,12676,12661,1,0,0,0,12676,12671,1,0,0,0, +12676,12674,1,0,0,0,12676,12675,1,0,0,0,12677,1265,1,0,0,0,12678,12680,7, +17,0,0,12679,12678,1,0,0,0,12679,12680,1,0,0,0,12680,12681,1,0,0,0,12681, +12682,5,1604,0,0,12682,12683,5,989,0,0,12683,1267,1,0,0,0,12684,12685,5, +603,0,0,12685,12687,5,64,0,0,12686,12688,3,2392,1196,0,12687,12686,1,0,0, +0,12687,12688,1,0,0,0,12688,12693,1,0,0,0,12689,12690,5,1135,0,0,12690,12691, +5,603,0,0,12691,12693,5,64,0,0,12692,12684,1,0,0,0,12692,12689,1,0,0,0,12693, +1269,1,0,0,0,12694,12697,5,2439,0,0,12695,12697,3,2390,1195,0,12696,12694, +1,0,0,0,12696,12695,1,0,0,0,12697,1271,1,0,0,0,12698,12699,5,21,0,0,12699, +12700,5,1787,0,0,12700,12703,5,886,0,0,12701,12704,3,1274,637,0,12702,12704, +3,1276,638,0,12703,12701,1,0,0,0,12703,12702,1,0,0,0,12704,12714,1,0,0,0, +12705,12706,5,2451,0,0,12706,12707,5,1787,0,0,12707,12710,5,886,0,0,12708, +12711,3,1274,637,0,12709,12711,3,1276,638,0,12710,12708,1,0,0,0,12710,12709, +1,0,0,0,12711,12713,1,0,0,0,12712,12705,1,0,0,0,12713,12716,1,0,0,0,12714, +12712,1,0,0,0,12714,12715,1,0,0,0,12715,12739,1,0,0,0,12716,12714,1,0,0, +0,12717,12718,5,467,0,0,12718,12719,5,1787,0,0,12719,12723,5,886,0,0,12720, +12724,3,1276,638,0,12721,12722,5,647,0,0,12722,12724,3,1270,635,0,12723, +12720,1,0,0,0,12723,12721,1,0,0,0,12724,12735,1,0,0,0,12725,12726,5,2451, +0,0,12726,12727,5,1787,0,0,12727,12731,5,886,0,0,12728,12732,3,1276,638, +0,12729,12730,5,647,0,0,12730,12732,3,1270,635,0,12731,12728,1,0,0,0,12731, +12729,1,0,0,0,12732,12734,1,0,0,0,12733,12725,1,0,0,0,12734,12737,1,0,0, +0,12735,12733,1,0,0,0,12735,12736,1,0,0,0,12736,12739,1,0,0,0,12737,12735, +1,0,0,0,12738,12698,1,0,0,0,12738,12717,1,0,0,0,12739,1273,1,0,0,0,12740, +12741,5,647,0,0,12741,12742,3,1270,635,0,12742,12743,5,2445,0,0,12743,12746, +3,2328,1164,0,12744,12745,5,1135,0,0,12745,12747,5,886,0,0,12746,12744,1, +0,0,0,12746,12747,1,0,0,0,12747,12756,1,0,0,0,12748,12749,5,2451,0,0,12749, +12752,3,2328,1164,0,12750,12751,5,1135,0,0,12751,12753,5,886,0,0,12752,12750, +1,0,0,0,12752,12753,1,0,0,0,12753,12755,1,0,0,0,12754,12748,1,0,0,0,12755, +12758,1,0,0,0,12756,12754,1,0,0,0,12756,12757,1,0,0,0,12757,12759,1,0,0, +0,12758,12756,1,0,0,0,12759,12761,5,2446,0,0,12760,12762,5,44,0,0,12761, +12760,1,0,0,0,12761,12762,1,0,0,0,12762,1275,1,0,0,0,12763,12764,5,349,0, +0,12764,12779,5,2445,0,0,12765,12767,5,2451,0,0,12766,12765,1,0,0,0,12766, +12767,1,0,0,0,12767,12777,1,0,0,0,12768,12778,5,38,0,0,12769,12770,5,1449, +0,0,12770,12778,5,814,0,0,12771,12773,5,2181,0,0,12772,12774,5,715,0,0,12773, +12772,1,0,0,0,12773,12774,1,0,0,0,12774,12778,1,0,0,0,12775,12776,5,616, +0,0,12776,12778,5,814,0,0,12777,12768,1,0,0,0,12777,12769,1,0,0,0,12777, +12771,1,0,0,0,12777,12775,1,0,0,0,12778,12780,1,0,0,0,12779,12766,1,0,0, +0,12780,12781,1,0,0,0,12781,12779,1,0,0,0,12781,12782,1,0,0,0,12782,12783, +1,0,0,0,12783,12784,5,2446,0,0,12784,12785,5,238,0,0,12785,1277,1,0,0,0, +12786,12787,5,39,0,0,12787,12800,5,556,0,0,12788,12795,5,2445,0,0,12789, +12790,5,1697,0,0,12790,12796,3,1170,585,0,12791,12792,5,350,0,0,12792,12796, +5,2441,0,0,12793,12794,5,757,0,0,12794,12796,5,2439,0,0,12795,12789,1,0, +0,0,12795,12791,1,0,0,0,12795,12793,1,0,0,0,12796,12797,1,0,0,0,12797,12795, +1,0,0,0,12797,12798,1,0,0,0,12798,12799,1,0,0,0,12799,12801,5,2446,0,0,12800, +12788,1,0,0,0,12800,12801,1,0,0,0,12801,1279,1,0,0,0,12802,12803,5,375,0, +0,12803,12806,5,2202,0,0,12804,12805,5,812,0,0,12805,12807,3,1170,585,0, +12806,12804,1,0,0,0,12806,12807,1,0,0,0,12807,1281,1,0,0,0,12808,12809,5, +1682,0,0,12809,12811,5,1712,0,0,12810,12812,5,246,0,0,12811,12810,1,0,0, +0,12811,12812,1,0,0,0,12812,12814,1,0,0,0,12813,12815,5,179,0,0,12814,12813, +1,0,0,0,12814,12815,1,0,0,0,12815,12817,1,0,0,0,12816,12818,5,200,0,0,12817, +12816,1,0,0,0,12817,12818,1,0,0,0,12818,1283,1,0,0,0,12819,12821,7,159,0, +0,12820,12819,1,0,0,0,12820,12821,1,0,0,0,12821,12822,1,0,0,0,12822,12823, +5,1512,0,0,12823,1285,1,0,0,0,12824,12826,5,2209,0,0,12825,12827,5,1202, +0,0,12826,12825,1,0,0,0,12826,12827,1,0,0,0,12827,12828,1,0,0,0,12828,12829, +5,703,0,0,12829,12830,5,349,0,0,12830,12831,1,0,0,0,12831,12832,3,1652,826, +0,12832,1287,1,0,0,0,12833,12834,5,2157,0,0,12834,12835,5,2081,0,0,12835, +12842,3,2330,1165,0,12836,12840,7,160,0,0,12837,12838,5,917,0,0,12838,12839, +5,2284,0,0,12839,12841,5,886,0,0,12840,12837,1,0,0,0,12840,12841,1,0,0,0, +12841,12843,1,0,0,0,12842,12836,1,0,0,0,12842,12843,1,0,0,0,12843,12852, +1,0,0,0,12844,12846,5,467,0,0,12845,12847,5,38,0,0,12846,12845,1,0,0,0,12846, +12847,1,0,0,0,12847,12850,1,0,0,0,12848,12850,5,1585,0,0,12849,12844,1,0, +0,0,12849,12848,1,0,0,0,12850,12851,1,0,0,0,12851,12853,5,1760,0,0,12852, +12849,1,0,0,0,12852,12853,1,0,0,0,12853,12855,1,0,0,0,12854,12856,5,179, +0,0,12855,12854,1,0,0,0,12855,12856,1,0,0,0,12856,1289,1,0,0,0,12857,12858, +5,467,0,0,12858,12859,5,2081,0,0,12859,12862,3,2330,1165,0,12860,12861,5, +689,0,0,12861,12863,5,543,0,0,12862,12860,1,0,0,0,12862,12863,1,0,0,0,12863, +12866,1,0,0,0,12864,12865,5,69,0,0,12865,12867,3,2330,1165,0,12866,12864, +1,0,0,0,12866,12867,1,0,0,0,12867,12870,1,0,0,0,12868,12869,5,179,0,0,12869, +12871,7,93,0,0,12870,12868,1,0,0,0,12870,12871,1,0,0,0,12871,12873,1,0,0, +0,12872,12874,5,1473,0,0,12873,12872,1,0,0,0,12873,12874,1,0,0,0,12874,12877, +1,0,0,0,12875,12876,5,69,0,0,12876,12878,3,2258,1129,0,12877,12875,1,0,0, +0,12877,12878,1,0,0,0,12878,12880,1,0,0,0,12879,12881,5,614,0,0,12880,12879, +1,0,0,0,12880,12881,1,0,0,0,12881,1291,1,0,0,0,12882,12883,5,467,0,0,12883, +12884,5,2078,0,0,12884,12887,3,2392,1196,0,12885,12886,5,689,0,0,12886,12888, +5,543,0,0,12887,12885,1,0,0,0,12887,12888,1,0,0,0,12888,12893,1,0,0,0,12889, +12891,7,161,0,0,12890,12892,5,1488,0,0,12891,12890,1,0,0,0,12891,12892,1, +0,0,0,12892,12894,1,0,0,0,12893,12889,1,0,0,0,12893,12894,1,0,0,0,12894, +12896,1,0,0,0,12895,12897,3,1296,648,0,12896,12895,1,0,0,0,12896,12897,1, +0,0,0,12897,1293,1,0,0,0,12898,12899,5,467,0,0,12899,12900,5,2078,0,0,12900, +12901,5,1669,0,0,12901,12903,3,2392,1196,0,12902,12904,3,1296,648,0,12903, +12902,1,0,0,0,12903,12904,1,0,0,0,12904,1295,1,0,0,0,12905,12906,5,703,0, +0,12906,12909,5,293,0,0,12907,12908,7,162,0,0,12908,12910,5,351,0,0,12909, +12907,1,0,0,0,12909,12910,1,0,0,0,12910,12913,1,0,0,0,12911,12912,5,179, +0,0,12912,12914,5,285,0,0,12913,12911,1,0,0,0,12913,12914,1,0,0,0,12914, +1297,1,0,0,0,12915,12916,5,467,0,0,12916,12917,5,2284,0,0,12917,12920,3, +2330,1165,0,12918,12919,5,689,0,0,12919,12921,5,543,0,0,12920,12918,1,0, +0,0,12920,12921,1,0,0,0,12921,12924,1,0,0,0,12922,12923,5,179,0,0,12923, +12925,5,284,0,0,12924,12922,1,0,0,0,12924,12925,1,0,0,0,12925,1299,1,0,0, +0,12926,12927,5,241,0,0,12927,12928,5,1257,0,0,12928,12929,5,237,0,0,12929, +12930,3,2328,1164,0,12930,12931,5,783,0,0,12931,12932,3,2388,1194,0,12932, +1301,1,0,0,0,12933,12934,7,17,0,0,12934,1303,1,0,0,0,12935,12936,7,163,0, +0,12936,1305,1,0,0,0,12937,12939,5,42,0,0,12938,12940,5,1471,0,0,12939,12938, +1,0,0,0,12939,12940,1,0,0,0,12940,12941,1,0,0,0,12941,12945,5,1794,0,0,12942, +12943,3,2274,1137,0,12943,12944,5,2438,0,0,12944,12946,1,0,0,0,12945,12942, +1,0,0,0,12945,12946,1,0,0,0,12946,12947,1,0,0,0,12947,12948,3,2336,1168, +0,12948,12949,7,164,0,0,12949,1307,1,0,0,0,12950,12953,5,319,0,0,12951,12952, +5,1305,0,0,12952,12954,5,1560,0,0,12953,12951,1,0,0,0,12953,12954,1,0,0, +0,12954,12955,1,0,0,0,12955,12956,5,1471,0,0,12956,12957,5,1794,0,0,12957, +12958,3,2336,1168,0,12958,12962,5,618,0,0,12959,12960,3,2274,1137,0,12960, +12961,5,2438,0,0,12961,12963,1,0,0,0,12962,12959,1,0,0,0,12962,12963,1,0, +0,0,12963,12964,1,0,0,0,12964,12967,3,2338,1169,0,12965,12966,5,2453,0,0, +12966,12968,3,2322,1161,0,12967,12965,1,0,0,0,12967,12968,1,0,0,0,12968, +12998,1,0,0,0,12969,12972,5,319,0,0,12970,12971,5,1305,0,0,12971,12973,5, +1560,0,0,12972,12970,1,0,0,0,12972,12973,1,0,0,0,12973,12974,1,0,0,0,12974, +12978,5,1794,0,0,12975,12976,3,2274,1137,0,12976,12977,5,2438,0,0,12977, +12979,1,0,0,0,12978,12975,1,0,0,0,12978,12979,1,0,0,0,12979,12980,1,0,0, +0,12980,12981,3,2336,1168,0,12981,12985,5,618,0,0,12982,12983,3,2274,1137, +0,12983,12984,5,2438,0,0,12984,12986,1,0,0,0,12985,12982,1,0,0,0,12985,12986, +1,0,0,0,12986,12987,1,0,0,0,12987,12995,3,2338,1169,0,12988,12992,5,2453, +0,0,12989,12990,3,2274,1137,0,12990,12991,5,2438,0,0,12991,12993,1,0,0,0, +12992,12989,1,0,0,0,12992,12993,1,0,0,0,12993,12994,1,0,0,0,12994,12996, +3,2322,1161,0,12995,12988,1,0,0,0,12995,12996,1,0,0,0,12996,12998,1,0,0, +0,12997,12950,1,0,0,0,12997,12969,1,0,0,0,12998,1309,1,0,0,0,12999,13001, +5,467,0,0,13000,13002,5,1471,0,0,13001,13000,1,0,0,0,13001,13002,1,0,0,0, +13002,13003,1,0,0,0,13003,13007,5,1794,0,0,13004,13005,3,2274,1137,0,13005, +13006,5,2438,0,0,13006,13008,1,0,0,0,13007,13004,1,0,0,0,13007,13008,1,0, +0,0,13008,13009,1,0,0,0,13009,13011,3,2336,1168,0,13010,13012,5,614,0,0, +13011,13010,1,0,0,0,13011,13012,1,0,0,0,13012,1311,1,0,0,0,13013,13014,5, +319,0,0,13014,13017,5,1714,0,0,13015,13016,5,2469,0,0,13016,13018,3,1314, +657,0,13017,13015,1,0,0,0,13017,13018,1,0,0,0,13018,13019,1,0,0,0,13019, +13030,5,626,0,0,13020,13023,5,1389,0,0,13021,13022,5,2469,0,0,13022,13024, +3,1316,658,0,13023,13021,1,0,0,0,13023,13024,1,0,0,0,13024,13027,1,0,0,0, +13025,13026,5,69,0,0,13026,13028,5,301,0,0,13027,13025,1,0,0,0,13027,13028, +1,0,0,0,13028,13031,1,0,0,0,13029,13031,5,940,0,0,13030,13020,1,0,0,0,13030, +13029,1,0,0,0,13031,1313,1,0,0,0,13032,13033,5,2441,0,0,13033,1315,1,0,0, +0,13034,13035,5,2441,0,0,13035,1317,1,0,0,0,13036,13037,5,241,0,0,13037, +13038,5,1257,0,0,13038,13039,5,2081,0,0,13039,13040,3,2330,1165,0,13040, +13041,5,783,0,0,13041,13042,3,2388,1194,0,13042,1319,1,0,0,0,13043,13044, +5,241,0,0,13044,13045,5,1257,0,0,13045,13046,5,917,0,0,13046,13047,5,2284, +0,0,13047,13048,3,2330,1165,0,13048,13049,5,783,0,0,13049,13050,3,2388,1194, +0,13050,1321,1,0,0,0,13051,13052,5,42,0,0,13052,13053,5,45,0,0,13053,13057, +5,2284,0,0,13054,13055,3,2274,1137,0,13055,13056,5,2438,0,0,13056,13058, +1,0,0,0,13057,13054,1,0,0,0,13057,13058,1,0,0,0,13058,13059,1,0,0,0,13059, +13066,3,2392,1196,0,13060,13061,5,1557,0,0,13061,13062,5,2139,0,0,13062, +13067,3,2392,1196,0,13063,13067,5,249,0,0,13064,13067,3,1324,662,0,13065, +13067,3,1330,665,0,13066,13060,1,0,0,0,13066,13063,1,0,0,0,13066,13064,1, +0,0,0,13066,13065,1,0,0,0,13067,1323,1,0,0,0,13068,13069,5,21,0,0,13069, +13070,5,166,0,0,13070,13071,5,931,0,0,13071,13072,5,647,0,0,13072,13075, +5,2445,0,0,13073,13076,5,38,0,0,13074,13076,3,1328,664,0,13075,13073,1,0, +0,0,13075,13074,1,0,0,0,13075,13076,1,0,0,0,13076,13077,1,0,0,0,13077,13078, +5,2446,0,0,13078,13079,5,846,0,0,13079,13080,5,2445,0,0,13080,13085,3,1326, +663,0,13081,13082,5,2451,0,0,13082,13084,3,1326,663,0,13083,13081,1,0,0, +0,13084,13087,1,0,0,0,13085,13083,1,0,0,0,13085,13086,1,0,0,0,13086,13088, +1,0,0,0,13087,13085,1,0,0,0,13088,13089,5,2446,0,0,13089,1325,1,0,0,0,13090, +13091,3,2392,1196,0,13091,13092,5,2438,0,0,13092,13094,1,0,0,0,13093,13090, +1,0,0,0,13093,13094,1,0,0,0,13094,13095,1,0,0,0,13095,13096,3,2392,1196, +0,13096,13097,5,2438,0,0,13097,13099,1,0,0,0,13098,13093,1,0,0,0,13098,13099, +1,0,0,0,13099,13100,1,0,0,0,13100,13101,3,2392,1196,0,13101,1327,1,0,0,0, +13102,13107,3,2392,1196,0,13103,13104,5,2451,0,0,13104,13106,3,2392,1196, +0,13105,13103,1,0,0,0,13106,13109,1,0,0,0,13107,13105,1,0,0,0,13107,13108, +1,0,0,0,13108,1329,1,0,0,0,13109,13107,1,0,0,0,13110,13111,5,467,0,0,13111, +13112,5,166,0,0,13112,13113,5,931,0,0,13113,13114,5,647,0,0,13114,13117, +5,2445,0,0,13115,13118,5,38,0,0,13116,13118,3,1328,664,0,13117,13115,1,0, +0,0,13117,13116,1,0,0,0,13117,13118,1,0,0,0,13118,13119,1,0,0,0,13119,13120, +5,2446,0,0,13120,13121,5,846,0,0,13121,13122,5,2445,0,0,13122,13127,3,1326, +663,0,13123,13124,5,2451,0,0,13124,13126,3,1326,663,0,13125,13123,1,0,0, +0,13126,13129,1,0,0,0,13127,13125,1,0,0,0,13127,13128,1,0,0,0,13128,13130, +1,0,0,0,13129,13127,1,0,0,0,13130,13131,5,2446,0,0,13131,1331,1,0,0,0,13132, +13133,5,42,0,0,13133,13134,5,83,0,0,13134,13138,5,420,0,0,13135,13136,3, +2274,1137,0,13136,13137,5,2438,0,0,13137,13139,1,0,0,0,13138,13135,1,0,0, +0,13138,13139,1,0,0,0,13139,13140,1,0,0,0,13140,13145,3,2392,1196,0,13141, +13142,5,1557,0,0,13142,13143,5,2139,0,0,13143,13146,3,2392,1196,0,13144, +13146,5,249,0,0,13145,13141,1,0,0,0,13145,13144,1,0,0,0,13146,1333,1,0,0, +0,13147,13148,5,42,0,0,13148,13149,5,85,0,0,13149,13150,5,1410,0,0,13150, +13152,3,2392,1196,0,13151,13153,5,21,0,0,13152,13151,1,0,0,0,13152,13153, +1,0,0,0,13153,13167,1,0,0,0,13154,13156,3,406,203,0,13155,13154,1,0,0,0, +13155,13156,1,0,0,0,13156,13158,1,0,0,0,13157,13159,3,408,204,0,13158,13157, +1,0,0,0,13158,13159,1,0,0,0,13159,13161,1,0,0,0,13160,13162,3,424,212,0, +13161,13160,1,0,0,0,13161,13162,1,0,0,0,13162,13168,1,0,0,0,13163,13164, +5,1256,0,0,13164,13166,5,2133,0,0,13165,13163,1,0,0,0,13165,13166,1,0,0, +0,13166,13168,1,0,0,0,13167,13155,1,0,0,0,13167,13165,1,0,0,0,13168,13170, +1,0,0,0,13169,13171,5,467,0,0,13170,13169,1,0,0,0,13170,13171,1,0,0,0,13171, +13185,1,0,0,0,13172,13174,3,406,203,0,13173,13172,1,0,0,0,13173,13174,1, +0,0,0,13174,13176,1,0,0,0,13175,13177,3,408,204,0,13176,13175,1,0,0,0,13176, +13177,1,0,0,0,13177,13179,1,0,0,0,13178,13180,3,424,212,0,13179,13178,1, +0,0,0,13179,13180,1,0,0,0,13180,13186,1,0,0,0,13181,13182,5,1256,0,0,13182, +13184,5,2133,0,0,13183,13181,1,0,0,0,13183,13184,1,0,0,0,13184,13186,1,0, +0,0,13185,13173,1,0,0,0,13185,13183,1,0,0,0,13186,13195,1,0,0,0,13187,13193, +5,264,0,0,13188,13194,5,467,0,0,13189,13190,5,2441,0,0,13190,13191,5,528, +0,0,13191,13192,5,1388,0,0,13192,13194,7,55,0,0,13193,13188,1,0,0,0,13193, +13189,1,0,0,0,13194,13196,1,0,0,0,13195,13187,1,0,0,0,13195,13196,1,0,0, +0,13196,1335,1,0,0,0,13197,13198,5,42,0,0,13198,13199,5,220,0,0,13199,13206, +3,464,232,0,13200,13207,3,1188,594,0,13201,13202,5,1697,0,0,13202,13207, +3,1170,585,0,13203,13207,3,1278,639,0,13204,13207,3,1280,640,0,13205,13207, +3,1358,679,0,13206,13200,1,0,0,0,13206,13201,1,0,0,0,13206,13203,1,0,0,0, +13206,13204,1,0,0,0,13206,13205,1,0,0,0,13207,13208,1,0,0,0,13208,13206, +1,0,0,0,13208,13209,1,0,0,0,13209,13211,1,0,0,0,13210,13212,3,926,463,0, +13211,13210,1,0,0,0,13211,13212,1,0,0,0,13212,1337,1,0,0,0,13213,13214,5, +467,0,0,13214,13215,5,45,0,0,13215,13219,5,2284,0,0,13216,13217,3,2274,1137, +0,13217,13218,5,2438,0,0,13218,13220,1,0,0,0,13219,13216,1,0,0,0,13219,13220, +1,0,0,0,13220,13221,1,0,0,0,13221,13222,3,2392,1196,0,13222,1339,1,0,0,0, +13223,13224,5,467,0,0,13224,13225,5,83,0,0,13225,13229,5,420,0,0,13226,13227, +3,2274,1137,0,13227,13228,5,2438,0,0,13228,13230,1,0,0,0,13229,13226,1,0, +0,0,13229,13230,1,0,0,0,13230,13231,1,0,0,0,13231,13232,3,2392,1196,0,13232, +1341,1,0,0,0,13233,13234,5,467,0,0,13234,13235,5,85,0,0,13235,13236,5,1410, +0,0,13236,13237,3,2392,1196,0,13237,1343,1,0,0,0,13238,13239,5,467,0,0,13239, +13240,5,603,0,0,13240,13241,5,64,0,0,13241,13242,3,2392,1196,0,13242,1345, +1,0,0,0,13243,13244,5,467,0,0,13244,13245,5,220,0,0,13245,13252,3,464,232, +0,13246,13247,5,703,0,0,13247,13250,5,2079,0,0,13248,13249,5,179,0,0,13249, +13251,5,285,0,0,13250,13248,1,0,0,0,13250,13251,1,0,0,0,13251,13253,1,0, +0,0,13252,13246,1,0,0,0,13252,13253,1,0,0,0,13253,1347,1,0,0,0,13254,13255, +5,467,0,0,13255,13256,5,294,0,0,13256,13257,3,2392,1196,0,13257,1349,1,0, +0,0,13258,13259,5,467,0,0,13259,13260,5,424,0,0,13260,13261,3,2392,1196, +0,13261,1351,1,0,0,0,13262,13263,5,467,0,0,13263,13264,5,439,0,0,13264,13273, +3,2392,1196,0,13265,13267,5,614,0,0,13266,13265,1,0,0,0,13266,13267,1,0, +0,0,13267,13268,1,0,0,0,13268,13271,5,703,0,0,13269,13271,5,538,0,0,13270, +13266,1,0,0,0,13270,13269,1,0,0,0,13271,13272,1,0,0,0,13272,13274,5,293, +0,0,13273,13270,1,0,0,0,13273,13274,1,0,0,0,13274,1353,1,0,0,0,13275,13276, +5,467,0,0,13276,13277,5,481,0,0,13277,13279,3,2392,1196,0,13278,13280,5, +179,0,0,13279,13278,1,0,0,0,13279,13280,1,0,0,0,13280,1355,1,0,0,0,13281, +13282,5,2157,0,0,13282,13283,5,220,0,0,13283,13286,3,464,232,0,13284,13285, +7,165,0,0,13285,13287,5,1760,0,0,13286,13284,1,0,0,0,13286,13287,1,0,0,0, +13287,1357,1,0,0,0,13288,13289,7,107,0,0,13289,1359,1,0,0,0,13290,13291, +3,2392,1196,0,13291,1361,1,0,0,0,13292,13293,5,42,0,0,13293,13309,3,1364, +682,0,13294,13310,3,1366,683,0,13295,13310,3,1372,686,0,13296,13310,3,1388, +694,0,13297,13310,3,1398,699,0,13298,13310,3,1416,708,0,13299,13310,3,1420, +710,0,13300,13310,3,1436,718,0,13301,13310,3,1440,720,0,13302,13310,3,1442, +721,0,13303,13310,3,1454,727,0,13304,13310,3,1456,728,0,13305,13310,3,1458, +729,0,13306,13310,3,1460,730,0,13307,13310,3,1466,733,0,13308,13310,3,1468, +734,0,13309,13294,1,0,0,0,13309,13295,1,0,0,0,13309,13296,1,0,0,0,13309, +13297,1,0,0,0,13309,13298,1,0,0,0,13309,13299,1,0,0,0,13309,13300,1,0,0, +0,13309,13301,1,0,0,0,13309,13302,1,0,0,0,13309,13303,1,0,0,0,13309,13304, +1,0,0,0,13309,13305,1,0,0,0,13309,13306,1,0,0,0,13309,13307,1,0,0,0,13309, +13308,1,0,0,0,13310,1363,1,0,0,0,13311,13313,5,1407,0,0,13312,13311,1,0, +0,0,13312,13313,1,0,0,0,13313,13314,1,0,0,0,13314,13316,5,348,0,0,13315, +13317,3,1360,680,0,13316,13315,1,0,0,0,13316,13317,1,0,0,0,13317,1365,1, +0,0,0,13318,13321,5,986,0,0,13319,13320,7,166,0,0,13320,13322,5,348,0,0, +13321,13319,1,0,0,0,13321,13322,1,0,0,0,13322,13338,1,0,0,0,13323,13326, +5,1262,0,0,13324,13325,5,1503,0,0,13325,13327,5,2311,0,0,13326,13324,1,0, +0,0,13326,13327,1,0,0,0,13327,13329,1,0,0,0,13328,13330,3,1368,684,0,13329, +13328,1,0,0,0,13329,13330,1,0,0,0,13330,13332,1,0,0,0,13331,13333,3,1370, +685,0,13332,13331,1,0,0,0,13332,13333,1,0,0,0,13333,13338,1,0,0,0,13334, +13335,5,1262,0,0,13335,13336,5,1503,0,0,13336,13338,5,1256,0,0,13337,13318, +1,0,0,0,13337,13323,1,0,0,0,13337,13334,1,0,0,0,13338,1367,1,0,0,0,13339, +13340,7,61,0,0,13340,1369,1,0,0,0,13341,13342,7,167,0,0,13342,1371,1,0,0, +0,13343,13349,3,1376,688,0,13344,13349,3,1384,692,0,13345,13346,3,1374,687, +0,13346,13347,5,102,0,0,13347,13349,1,0,0,0,13348,13343,1,0,0,0,13348,13344, +1,0,0,0,13348,13345,1,0,0,0,13349,1373,1,0,0,0,13350,13351,7,168,0,0,13351, +1375,1,0,0,0,13352,13354,5,1514,0,0,13353,13355,5,95,0,0,13354,13353,1,0, +0,0,13354,13355,1,0,0,0,13355,13358,1,0,0,0,13356,13357,5,626,0,0,13357, +13359,5,2441,0,0,13358,13356,1,0,0,0,13358,13359,1,0,0,0,13359,13382,1,0, +0,0,13360,13365,3,1378,689,0,13361,13365,3,1380,690,0,13362,13363,5,880, +0,0,13363,13365,5,2441,0,0,13364,13360,1,0,0,0,13364,13361,1,0,0,0,13364, +13362,1,0,0,0,13364,13365,1,0,0,0,13365,13375,1,0,0,0,13366,13372,5,2093, +0,0,13367,13368,5,40,0,0,13368,13369,5,2439,0,0,13369,13372,5,304,0,0,13370, +13372,3,926,463,0,13371,13366,1,0,0,0,13371,13367,1,0,0,0,13371,13370,1, +0,0,0,13372,13373,1,0,0,0,13373,13371,1,0,0,0,13373,13374,1,0,0,0,13374, +13376,1,0,0,0,13375,13371,1,0,0,0,13375,13376,1,0,0,0,13376,13383,1,0,0, +0,13377,13379,5,295,0,0,13378,13380,5,387,0,0,13379,13378,1,0,0,0,13379, +13380,1,0,0,0,13380,13383,1,0,0,0,13381,13383,5,174,0,0,13382,13364,1,0, +0,0,13382,13377,1,0,0,0,13382,13381,1,0,0,0,13383,1377,1,0,0,0,13384,13386, +5,1732,0,0,13385,13384,1,0,0,0,13385,13386,1,0,0,0,13386,13387,1,0,0,0,13387, +13407,5,348,0,0,13388,13395,5,2200,0,0,13389,13396,5,174,0,0,13390,13391, +5,2110,0,0,13391,13396,5,2441,0,0,13392,13393,5,190,0,0,13393,13396,5,2439, +0,0,13394,13396,5,281,0,0,13395,13389,1,0,0,0,13395,13390,1,0,0,0,13395, +13392,1,0,0,0,13395,13394,1,0,0,0,13396,13404,1,0,0,0,13397,13398,5,2244, +0,0,13398,13399,5,102,0,0,13399,13404,5,296,0,0,13400,13401,5,1705,0,0,13401, +13402,5,2110,0,0,13402,13404,5,2441,0,0,13403,13388,1,0,0,0,13403,13397, +1,0,0,0,13403,13400,1,0,0,0,13404,13405,1,0,0,0,13405,13403,1,0,0,0,13405, +13406,1,0,0,0,13406,13408,1,0,0,0,13407,13403,1,0,0,0,13407,13408,1,0,0, +0,13408,1379,1,0,0,0,13409,13410,5,2078,0,0,13410,13415,3,1648,824,0,13411, +13412,5,2451,0,0,13412,13414,3,1648,824,0,13413,13411,1,0,0,0,13414,13417, +1,0,0,0,13415,13413,1,0,0,0,13415,13416,1,0,0,0,13416,13431,1,0,0,0,13417, +13415,1,0,0,0,13418,13419,5,350,0,0,13419,13431,5,2441,0,0,13420,13426,3, +1450,725,0,13421,13422,5,2451,0,0,13422,13425,5,2441,0,0,13423,13425,3,1450, +725,0,13424,13421,1,0,0,0,13424,13423,1,0,0,0,13425,13428,1,0,0,0,13426, +13424,1,0,0,0,13426,13427,1,0,0,0,13427,13431,1,0,0,0,13428,13426,1,0,0, +0,13429,13431,3,1382,691,0,13430,13409,1,0,0,0,13430,13418,1,0,0,0,13430, +13420,1,0,0,0,13430,13429,1,0,0,0,13431,1381,1,0,0,0,13432,13433,4,691,9, +0,13433,13454,5,1732,0,0,13434,13435,5,2078,0,0,13435,13440,3,1648,824,0, +13436,13437,5,2451,0,0,13437,13439,3,1648,824,0,13438,13436,1,0,0,0,13439, +13442,1,0,0,0,13440,13438,1,0,0,0,13440,13441,1,0,0,0,13441,13455,1,0,0, +0,13442,13440,1,0,0,0,13443,13444,5,350,0,0,13444,13455,5,2441,0,0,13445, +13451,3,1450,725,0,13446,13447,5,2451,0,0,13447,13450,5,2441,0,0,13448,13450, +3,1450,725,0,13449,13446,1,0,0,0,13449,13448,1,0,0,0,13450,13453,1,0,0,0, +13451,13449,1,0,0,0,13451,13452,1,0,0,0,13452,13455,1,0,0,0,13453,13451, +1,0,0,0,13454,13434,1,0,0,0,13454,13443,1,0,0,0,13454,13445,1,0,0,0,13455, +13456,1,0,0,0,13456,13459,5,2200,0,0,13457,13458,5,281,0,0,13458,13460,5, +2306,0,0,13459,13457,1,0,0,0,13459,13460,1,0,0,0,13460,13461,1,0,0,0,13461, +13462,5,296,0,0,13462,1383,1,0,0,0,13463,13498,5,1514,0,0,13464,13465,5, +902,0,0,13465,13466,5,1732,0,0,13466,13488,5,348,0,0,13467,13468,5,2244, +0,0,13468,13469,5,334,0,0,13469,13483,5,880,0,0,13470,13473,5,437,0,0,13471, +13472,5,626,0,0,13472,13474,5,1665,0,0,13473,13471,1,0,0,0,13473,13474,1, +0,0,0,13474,13483,1,0,0,0,13475,13483,5,1085,0,0,13476,13477,5,2200,0,0, +13477,13478,5,190,0,0,13478,13483,5,2439,0,0,13479,13480,5,2200,0,0,13480, +13483,5,281,0,0,13481,13483,3,926,463,0,13482,13467,1,0,0,0,13482,13470, +1,0,0,0,13482,13475,1,0,0,0,13482,13476,1,0,0,0,13482,13479,1,0,0,0,13482, +13481,1,0,0,0,13483,13484,1,0,0,0,13484,13482,1,0,0,0,13484,13485,1,0,0, +0,13485,13489,1,0,0,0,13486,13489,5,595,0,0,13487,13489,5,174,0,0,13488, +13482,1,0,0,0,13488,13486,1,0,0,0,13488,13487,1,0,0,0,13488,13489,1,0,0, +0,13489,13499,1,0,0,0,13490,13491,5,2139,0,0,13491,13492,5,883,0,0,13492, +13496,5,1732,0,0,13493,13497,3,1386,693,0,13494,13495,5,812,0,0,13495,13497, +5,685,0,0,13496,13493,1,0,0,0,13496,13494,1,0,0,0,13497,13499,1,0,0,0,13498, +13464,1,0,0,0,13498,13490,1,0,0,0,13499,1385,1,0,0,0,13500,13501,3,2398, +1199,0,13501,1387,1,0,0,0,13502,13503,5,1557,0,0,13503,13504,5,587,0,0,13504, +13509,3,1452,726,0,13505,13506,5,2451,0,0,13506,13508,3,1452,726,0,13507, +13505,1,0,0,0,13508,13511,1,0,0,0,13509,13507,1,0,0,0,13509,13510,1,0,0, +0,13510,13512,1,0,0,0,13511,13509,1,0,0,0,13512,13513,5,2139,0,0,13513,13514, +3,1452,726,0,13514,13520,1,0,0,0,13515,13520,3,1390,695,0,13516,13520,3, +1392,696,0,13517,13520,3,1394,697,0,13518,13520,3,1396,698,0,13519,13502, +1,0,0,0,13519,13515,1,0,0,0,13519,13516,1,0,0,0,13519,13517,1,0,0,0,13519, +13518,1,0,0,0,13520,1389,1,0,0,0,13521,13522,5,319,0,0,13522,13525,5,350, +0,0,13523,13526,3,1452,726,0,13524,13526,3,1450,725,0,13525,13523,1,0,0, +0,13525,13524,1,0,0,0,13526,13534,1,0,0,0,13527,13530,5,2451,0,0,13528,13531, +3,1452,726,0,13529,13531,3,1450,725,0,13530,13528,1,0,0,0,13530,13529,1, +0,0,0,13531,13533,1,0,0,0,13532,13527,1,0,0,0,13533,13536,1,0,0,0,13534, +13532,1,0,0,0,13534,13535,1,0,0,0,13535,13539,1,0,0,0,13536,13534,1,0,0, +0,13537,13538,5,69,0,0,13538,13540,5,1019,0,0,13539,13537,1,0,0,0,13539, +13540,1,0,0,0,13540,1391,1,0,0,0,13541,13544,5,350,0,0,13542,13545,3,1452, +726,0,13543,13545,3,1450,725,0,13544,13542,1,0,0,0,13544,13543,1,0,0,0,13545, +13553,1,0,0,0,13546,13549,5,2451,0,0,13547,13550,3,1452,726,0,13548,13550, +3,1450,725,0,13549,13547,1,0,0,0,13549,13548,1,0,0,0,13550,13552,1,0,0,0, +13551,13546,1,0,0,0,13552,13555,1,0,0,0,13553,13551,1,0,0,0,13553,13554, +1,0,0,0,13554,13567,1,0,0,0,13555,13553,1,0,0,0,13556,13568,5,1254,0,0,13557, +13560,5,1241,0,0,13558,13559,5,618,0,0,13559,13561,5,467,0,0,13560,13558, +1,0,0,0,13560,13561,1,0,0,0,13561,13568,1,0,0,0,13562,13563,5,1565,0,0,13563, +13568,3,1170,585,0,13564,13568,3,920,460,0,13565,13566,5,506,0,0,13566,13568, +5,102,0,0,13567,13556,1,0,0,0,13567,13557,1,0,0,0,13567,13562,1,0,0,0,13567, +13564,1,0,0,0,13567,13565,1,0,0,0,13568,1393,1,0,0,0,13569,13572,5,2087, +0,0,13570,13573,3,1452,726,0,13571,13573,3,1450,725,0,13572,13570,1,0,0, +0,13572,13571,1,0,0,0,13573,13581,1,0,0,0,13574,13577,5,2451,0,0,13575,13578, +3,1452,726,0,13576,13578,3,1450,725,0,13577,13575,1,0,0,0,13577,13576,1, +0,0,0,13578,13580,1,0,0,0,13579,13574,1,0,0,0,13580,13583,1,0,0,0,13581, +13579,1,0,0,0,13581,13582,1,0,0,0,13582,13592,1,0,0,0,13583,13581,1,0,0, +0,13584,13585,5,1565,0,0,13585,13593,3,1170,585,0,13586,13593,3,920,460, +0,13587,13588,5,467,0,0,13588,13589,5,703,0,0,13589,13593,5,351,0,0,13590, +13593,5,1254,0,0,13591,13593,5,1241,0,0,13592,13584,1,0,0,0,13592,13586, +1,0,0,0,13592,13587,1,0,0,0,13592,13590,1,0,0,0,13592,13591,1,0,0,0,13593, +1395,1,0,0,0,13594,13595,5,990,0,0,13595,13598,5,350,0,0,13596,13599,3,1452, +726,0,13597,13599,3,1450,725,0,13598,13596,1,0,0,0,13598,13597,1,0,0,0,13599, +13607,1,0,0,0,13600,13603,5,2451,0,0,13601,13604,3,1452,726,0,13602,13604, +3,1450,725,0,13603,13601,1,0,0,0,13603,13602,1,0,0,0,13604,13606,1,0,0,0, +13605,13600,1,0,0,0,13606,13609,1,0,0,0,13607,13605,1,0,0,0,13607,13608, +1,0,0,0,13608,13612,1,0,0,0,13609,13607,1,0,0,0,13610,13611,5,2139,0,0,13611, +13613,3,1452,726,0,13612,13610,1,0,0,0,13612,13613,1,0,0,0,13613,13615,1, +0,0,0,13614,13616,5,1585,0,0,13615,13614,1,0,0,0,13615,13616,1,0,0,0,13616, +13618,1,0,0,0,13617,13619,5,812,0,0,13618,13617,1,0,0,0,13618,13619,1,0, +0,0,13619,1397,1,0,0,0,13620,13622,5,66,0,0,13621,13623,5,907,0,0,13622, +13621,1,0,0,0,13622,13623,1,0,0,0,13623,13626,1,0,0,0,13624,13626,5,1056, +0,0,13625,13620,1,0,0,0,13625,13624,1,0,0,0,13626,13677,1,0,0,0,13627,13629, +5,1135,0,0,13628,13627,1,0,0,0,13628,13629,1,0,0,0,13629,13630,1,0,0,0,13630, +13631,5,614,0,0,13631,13677,5,882,0,0,13632,13633,5,1669,0,0,13633,13634, +5,1732,0,0,13634,13635,5,1117,0,0,13635,13640,5,618,0,0,13636,13637,5,349, +0,0,13637,13641,5,98,0,0,13638,13639,5,865,0,0,13639,13641,5,1383,0,0,13640, +13636,1,0,0,0,13640,13638,1,0,0,0,13641,13677,1,0,0,0,13642,13643,5,1557, +0,0,13643,13644,5,587,0,0,13644,13649,3,1452,726,0,13645,13646,5,2451,0, +0,13646,13648,3,1452,726,0,13647,13645,1,0,0,0,13648,13651,1,0,0,0,13649, +13647,1,0,0,0,13649,13650,1,0,0,0,13650,13652,1,0,0,0,13651,13649,1,0,0, +0,13652,13653,5,2139,0,0,13653,13654,3,1452,726,0,13654,13677,1,0,0,0,13655, +13657,5,212,0,0,13656,13658,5,2171,0,0,13657,13656,1,0,0,0,13657,13658,1, +0,0,0,13658,13659,1,0,0,0,13659,13660,5,880,0,0,13660,13665,3,1414,707,0, +13661,13662,5,2451,0,0,13662,13664,3,1414,707,0,13663,13661,1,0,0,0,13664, +13667,1,0,0,0,13665,13663,1,0,0,0,13665,13666,1,0,0,0,13666,13670,1,0,0, +0,13667,13665,1,0,0,0,13668,13669,5,2196,0,0,13669,13671,5,350,0,0,13670, +13668,1,0,0,0,13670,13671,1,0,0,0,13671,13677,1,0,0,0,13672,13677,3,1400, +700,0,13673,13677,3,1404,702,0,13674,13677,3,1406,703,0,13675,13677,3,1408, +704,0,13676,13625,1,0,0,0,13676,13628,1,0,0,0,13676,13632,1,0,0,0,13676, +13642,1,0,0,0,13676,13655,1,0,0,0,13676,13672,1,0,0,0,13676,13673,1,0,0, +0,13676,13674,1,0,0,0,13676,13675,1,0,0,0,13677,1399,1,0,0,0,13678,13680, +5,21,0,0,13679,13681,5,1732,0,0,13680,13679,1,0,0,0,13680,13681,1,0,0,0, +13681,13682,1,0,0,0,13682,13718,5,880,0,0,13683,13684,5,757,0,0,13684,13688, +5,2441,0,0,13685,13686,5,2100,0,0,13686,13688,5,2439,0,0,13687,13683,1,0, +0,0,13687,13685,1,0,0,0,13687,13688,1,0,0,0,13688,13690,1,0,0,0,13689,13691, +3,1402,701,0,13690,13689,1,0,0,0,13691,13692,1,0,0,0,13692,13690,1,0,0,0, +13692,13693,1,0,0,0,13693,13719,1,0,0,0,13694,13695,5,934,0,0,13695,13697, +3,1452,726,0,13696,13698,5,1585,0,0,13697,13696,1,0,0,0,13697,13698,1,0, +0,0,13698,13706,1,0,0,0,13699,13700,5,2451,0,0,13700,13702,3,1452,726,0, +13701,13703,5,1585,0,0,13702,13701,1,0,0,0,13702,13703,1,0,0,0,13703,13705, +1,0,0,0,13704,13699,1,0,0,0,13705,13708,1,0,0,0,13706,13704,1,0,0,0,13706, +13707,1,0,0,0,13707,13709,1,0,0,0,13708,13706,1,0,0,0,13709,13710,5,2139, +0,0,13710,13715,3,1414,707,0,13711,13712,5,2451,0,0,13712,13714,3,1414,707, +0,13713,13711,1,0,0,0,13714,13717,1,0,0,0,13715,13713,1,0,0,0,13715,13716, +1,0,0,0,13716,13719,1,0,0,0,13717,13715,1,0,0,0,13718,13687,1,0,0,0,13718, +13694,1,0,0,0,13719,1401,1,0,0,0,13720,13721,5,647,0,0,13721,13723,5,2439, +0,0,13722,13720,1,0,0,0,13722,13723,1,0,0,0,13723,13724,1,0,0,0,13724,13725, +3,918,459,0,13725,1403,1,0,0,0,13726,13728,5,467,0,0,13727,13729,5,1732, +0,0,13728,13727,1,0,0,0,13728,13729,1,0,0,0,13729,13730,1,0,0,0,13730,13748, +5,880,0,0,13731,13736,3,1414,707,0,13732,13733,5,2451,0,0,13733,13735,3, +1414,707,0,13734,13732,1,0,0,0,13735,13738,1,0,0,0,13736,13734,1,0,0,0,13736, +13737,1,0,0,0,13737,13749,1,0,0,0,13738,13736,1,0,0,0,13739,13740,5,934, +0,0,13740,13745,3,1452,726,0,13741,13742,5,2451,0,0,13742,13744,3,1452,726, +0,13743,13741,1,0,0,0,13744,13747,1,0,0,0,13745,13743,1,0,0,0,13745,13746, +1,0,0,0,13746,13749,1,0,0,0,13747,13745,1,0,0,0,13748,13731,1,0,0,0,13748, +13739,1,0,0,0,13749,1405,1,0,0,0,13750,13751,5,1791,0,0,13751,13752,5,38, +0,0,13752,13753,5,881,0,0,13753,13754,5,2139,0,0,13754,13755,5,146,0,0,13755, +13756,5,2439,0,0,13756,1407,1,0,0,0,13757,13758,3,1410,705,0,13758,13759, +5,1787,0,0,13759,13763,5,886,0,0,13760,13764,5,349,0,0,13761,13764,3,1276, +638,0,13762,13764,3,1412,706,0,13763,13760,1,0,0,0,13763,13761,1,0,0,0,13763, +13762,1,0,0,0,13764,1409,1,0,0,0,13765,13766,7,9,0,0,13766,1411,1,0,0,0, +13767,13768,5,349,0,0,13768,13769,5,618,0,0,13769,13770,5,1458,0,0,13770, +13771,5,1561,0,0,13771,1413,1,0,0,0,13772,13773,5,647,0,0,13773,13787,5, +2439,0,0,13774,13775,5,2445,0,0,13775,13780,3,1452,726,0,13776,13777,5,2451, +0,0,13777,13779,3,1452,726,0,13778,13776,1,0,0,0,13779,13782,1,0,0,0,13780, +13778,1,0,0,0,13780,13781,1,0,0,0,13781,13783,1,0,0,0,13782,13780,1,0,0, +0,13783,13784,5,2446,0,0,13784,13787,1,0,0,0,13785,13787,3,1452,726,0,13786, +13772,1,0,0,0,13786,13774,1,0,0,0,13786,13785,1,0,0,0,13787,1415,1,0,0,0, +13788,13790,5,319,0,0,13789,13791,7,169,0,0,13790,13789,1,0,0,0,13790,13791, +1,0,0,0,13791,13792,1,0,0,0,13792,13793,5,1732,0,0,13793,13794,5,296,0,0, +13794,13795,5,69,0,0,13795,13797,3,1452,726,0,13796,13798,5,1585,0,0,13797, +13796,1,0,0,0,13797,13798,1,0,0,0,13798,13810,1,0,0,0,13799,13800,5,102, +0,0,13800,13801,5,296,0,0,13801,13807,5,2139,0,0,13802,13804,3,1452,726, +0,13803,13805,5,1585,0,0,13804,13803,1,0,0,0,13804,13805,1,0,0,0,13805,13808, +1,0,0,0,13806,13808,3,1418,709,0,13807,13802,1,0,0,0,13807,13806,1,0,0,0, +13808,13810,1,0,0,0,13809,13788,1,0,0,0,13809,13799,1,0,0,0,13810,1417,1, +0,0,0,13811,13817,5,2141,0,0,13812,13813,5,69,0,0,13813,13815,3,1452,726, +0,13814,13816,5,1585,0,0,13815,13814,1,0,0,0,13815,13816,1,0,0,0,13816,13818, +1,0,0,0,13817,13812,1,0,0,0,13817,13818,1,0,0,0,13818,13820,1,0,0,0,13819, +13821,7,61,0,0,13820,13819,1,0,0,0,13820,13821,1,0,0,0,13821,1419,1,0,0, +0,13822,13830,3,1422,711,0,13823,13830,3,1424,712,0,13824,13830,3,1426,713, +0,13825,13830,3,1428,714,0,13826,13830,3,1430,715,0,13827,13830,3,1432,716, +0,13828,13830,3,1434,717,0,13829,13822,1,0,0,0,13829,13823,1,0,0,0,13829, +13824,1,0,0,0,13829,13825,1,0,0,0,13829,13826,1,0,0,0,13829,13827,1,0,0, +0,13829,13828,1,0,0,0,13830,13832,1,0,0,0,13831,13833,3,926,463,0,13832, +13831,1,0,0,0,13832,13833,1,0,0,0,13833,1421,1,0,0,0,13834,13836,5,13,0, +0,13835,13837,7,169,0,0,13836,13835,1,0,0,0,13836,13837,1,0,0,0,13837,13838, +1,0,0,0,13838,13839,5,1732,0,0,13839,13842,5,348,0,0,13840,13841,5,595,0, +0,13841,13843,5,61,0,0,13842,13840,1,0,0,0,13842,13843,1,0,0,0,13843,1423, +1,0,0,0,13844,13845,5,1669,0,0,13845,13846,5,1732,0,0,13846,13847,5,348, +0,0,13847,13848,5,2139,0,0,13848,13849,5,922,0,0,13849,13850,7,170,0,0,13850, +1425,1,0,0,0,13851,13854,5,1536,0,0,13852,13853,5,1305,0,0,13853,13855,5, +1560,0,0,13854,13852,1,0,0,0,13854,13855,1,0,0,0,13855,13856,1,0,0,0,13856, +13857,7,169,0,0,13857,13858,5,880,0,0,13858,1427,1,0,0,0,13859,13860,7,171, +0,0,13860,13861,5,2139,0,0,13861,13890,5,1790,0,0,13862,13883,5,2139,0,0, +13863,13865,7,169,0,0,13864,13863,1,0,0,0,13864,13865,1,0,0,0,13865,13866, +1,0,0,0,13866,13872,5,1449,0,0,13867,13869,5,1390,0,0,13868,13867,1,0,0, +0,13868,13869,1,0,0,0,13869,13870,1,0,0,0,13870,13872,5,1732,0,0,13871,13864, +1,0,0,0,13871,13868,1,0,0,0,13872,13879,1,0,0,0,13873,13875,7,2,0,0,13874, +13873,1,0,0,0,13874,13875,1,0,0,0,13875,13876,1,0,0,0,13876,13877,5,1665, +0,0,13877,13878,5,1683,0,0,13878,13880,7,0,0,0,13879,13874,1,0,0,0,13879, +13880,1,0,0,0,13880,13884,1,0,0,0,13881,13882,5,883,0,0,13882,13884,5,1732, +0,0,13883,13871,1,0,0,0,13883,13881,1,0,0,0,13884,13888,1,0,0,0,13885,13886, +5,883,0,0,13886,13888,5,1732,0,0,13887,13862,1,0,0,0,13887,13885,1,0,0,0, +13888,13891,1,0,0,0,13889,13891,5,174,0,0,13890,13887,1,0,0,0,13890,13889, +1,0,0,0,13890,13891,1,0,0,0,13891,1429,1,0,0,0,13892,13893,5,1735,0,0,13893, +13894,5,883,0,0,13894,13895,5,1732,0,0,13895,13897,5,61,0,0,13896,13898, +5,696,0,0,13897,13896,1,0,0,0,13897,13898,1,0,0,0,13898,13900,1,0,0,0,13899, +13901,5,1085,0,0,13900,13899,1,0,0,0,13900,13901,1,0,0,0,13901,13913,1,0, +0,0,13902,13903,5,1019,0,0,13903,13904,5,1449,0,0,13904,13914,3,2398,1199, +0,13905,13907,5,738,0,0,13906,13908,5,2439,0,0,13907,13906,1,0,0,0,13907, +13908,1,0,0,0,13908,13914,1,0,0,0,13909,13910,5,1700,0,0,13910,13911,5,568, +0,0,13911,13914,5,2145,0,0,13912,13914,5,595,0,0,13913,13902,1,0,0,0,13913, +13905,1,0,0,0,13913,13909,1,0,0,0,13913,13912,1,0,0,0,13913,13914,1,0,0, +0,13914,1431,1,0,0,0,13915,13916,7,172,0,0,13916,13917,5,883,0,0,13917,13918, +5,1732,0,0,13918,13919,5,61,0,0,13919,1433,1,0,0,0,13920,13921,5,298,0,0, +13921,13922,5,2139,0,0,13922,13923,7,173,0,0,13923,13924,5,1732,0,0,13924, +1435,1,0,0,0,13925,13926,5,387,0,0,13926,13927,5,481,0,0,13927,13928,5,2469, +0,0,13928,13972,3,1448,724,0,13929,13930,5,1669,0,0,13930,13931,5,387,0, +0,13931,13932,7,99,0,0,13932,13972,5,2078,0,0,13933,13934,5,387,0,0,13934, +13935,5,2078,0,0,13935,13972,3,1648,824,0,13936,13937,5,387,0,0,13937,13938, +5,2090,0,0,13938,13941,5,2078,0,0,13939,13942,3,1648,824,0,13940,13942,3, +870,435,0,13941,13939,1,0,0,0,13941,13940,1,0,0,0,13942,13972,1,0,0,0,13943, +13944,5,1557,0,0,13944,13945,5,642,0,0,13945,13946,5,2139,0,0,13946,13949, +3,1446,723,0,13947,13948,5,2438,0,0,13948,13950,3,1444,722,0,13949,13947, +1,0,0,0,13950,13951,1,0,0,0,13951,13949,1,0,0,0,13951,13952,1,0,0,0,13952, +13972,1,0,0,0,13953,13954,5,497,0,0,13954,13955,5,143,0,0,13955,13956,5, +190,0,0,13956,13963,5,2143,0,0,13957,13958,5,2244,0,0,13958,13959,5,587, +0,0,13959,13961,3,1452,726,0,13960,13962,5,1585,0,0,13961,13960,1,0,0,0, +13961,13962,1,0,0,0,13962,13964,1,0,0,0,13963,13957,1,0,0,0,13963,13964, +1,0,0,0,13964,13972,1,0,0,0,13965,13966,5,427,0,0,13966,13967,5,143,0,0, +13967,13968,5,190,0,0,13968,13972,5,2143,0,0,13969,13972,3,874,437,0,13970, +13972,3,1438,719,0,13971,13925,1,0,0,0,13971,13929,1,0,0,0,13971,13933,1, +0,0,0,13971,13936,1,0,0,0,13971,13943,1,0,0,0,13971,13953,1,0,0,0,13971, +13965,1,0,0,0,13971,13969,1,0,0,0,13971,13970,1,0,0,0,13972,1437,1,0,0,0, +13973,13974,5,1669,0,0,13974,13975,5,2111,0,0,13975,13976,5,2469,0,0,13976, +13977,5,2441,0,0,13977,1439,1,0,0,0,13978,13979,3,1302,651,0,13979,13980, +5,757,0,0,13980,13981,5,2441,0,0,13981,1441,1,0,0,0,13982,13983,5,654,0, +0,13983,13984,7,174,0,0,13984,1443,1,0,0,0,13985,13986,3,2392,1196,0,13986, +1445,1,0,0,0,13987,13988,3,2392,1196,0,13988,1447,1,0,0,0,13989,13990,3, +2398,1199,0,13990,1449,1,0,0,0,13991,13992,5,2439,0,0,13992,1451,1,0,0,0, +13993,13994,5,2441,0,0,13994,1453,1,0,0,0,13995,13996,5,1439,0,0,13996,13997, +5,961,0,0,13997,13998,5,301,0,0,13998,14002,3,2392,1196,0,13999,14000,5, +2306,0,0,14000,14001,7,175,0,0,14001,14003,5,1522,0,0,14002,13999,1,0,0, +0,14002,14003,1,0,0,0,14003,14007,1,0,0,0,14004,14005,5,618,0,0,14005,14006, +5,348,0,0,14006,14008,3,2392,1196,0,14007,14004,1,0,0,0,14007,14008,1,0, +0,0,14008,1455,1,0,0,0,14009,14010,5,467,0,0,14010,14011,5,961,0,0,14011, +14012,5,301,0,0,14012,14013,3,2392,1196,0,14013,1457,1,0,0,0,14014,14015, +7,176,0,0,14015,14016,5,893,0,0,14016,14017,5,2311,0,0,14017,14018,5,1467, +0,0,14018,1459,1,0,0,0,14019,14022,3,1462,731,0,14020,14022,3,1464,732,0, +14021,14019,1,0,0,0,14021,14020,1,0,0,0,14022,1461,1,0,0,0,14023,14024,5, +1669,0,0,14024,14025,5,834,0,0,14025,14026,5,2469,0,0,14026,14027,7,177, +0,0,14027,1463,1,0,0,0,14028,14029,5,1669,0,0,14029,14030,5,835,0,0,14030, +14031,5,2469,0,0,14031,14032,5,2441,0,0,14032,1465,1,0,0,0,14033,14034,5, +1465,0,0,14034,14035,7,178,0,0,14035,14036,5,391,0,0,14036,14037,5,2469, +0,0,14037,14038,3,2392,1196,0,14038,1467,1,0,0,0,14039,14040,5,2209,0,0, +14040,14041,5,1793,0,0,14041,14042,7,98,0,0,14042,1469,1,0,0,0,14043,14045, +5,42,0,0,14044,14046,5,1677,0,0,14045,14044,1,0,0,0,14045,14046,1,0,0,0, +14046,14048,1,0,0,0,14047,14049,5,1471,0,0,14048,14047,1,0,0,0,14048,14049, +1,0,0,0,14049,14050,1,0,0,0,14050,14051,5,348,0,0,14051,14052,5,859,0,0, +14052,14063,3,2324,1162,0,14053,14054,5,278,0,0,14054,14055,5,2139,0,0,14055, +14056,3,2342,1171,0,14056,14057,5,683,0,0,14057,14058,5,160,0,0,14058,14060, +3,1472,736,0,14059,14061,3,1474,737,0,14060,14059,1,0,0,0,14060,14061,1, +0,0,0,14061,14064,1,0,0,0,14062,14064,3,1474,737,0,14063,14053,1,0,0,0,14063, +14062,1,0,0,0,14064,1471,1,0,0,0,14065,14070,3,2392,1196,0,14066,14070,3, +2384,1192,0,14067,14068,5,2255,0,0,14068,14070,5,2441,0,0,14069,14065,1, +0,0,0,14069,14066,1,0,0,0,14069,14067,1,0,0,0,14070,1473,1,0,0,0,14071,14072, +5,86,0,0,14072,14073,5,160,0,0,14073,14074,3,2342,1171,0,14074,14075,5,683, +0,0,14075,14076,5,160,0,0,14076,14077,3,1472,736,0,14077,1475,1,0,0,0,14078, +14079,5,319,0,0,14079,14080,5,1623,0,0,14080,14081,5,89,0,0,14081,14087, +3,2274,1137,0,14082,14086,3,1032,516,0,14083,14086,3,834,417,0,14084,14086, +3,762,381,0,14085,14082,1,0,0,0,14085,14083,1,0,0,0,14085,14084,1,0,0,0, +14086,14089,1,0,0,0,14087,14085,1,0,0,0,14087,14088,1,0,0,0,14088,1477,1, +0,0,0,14089,14087,1,0,0,0,14090,14091,5,319,0,0,14091,14092,5,348,0,0,14092, +14131,3,1360,680,0,14093,14094,5,2235,0,0,14094,14095,7,179,0,0,14095,14096, +5,683,0,0,14096,14097,5,160,0,0,14097,14132,3,1472,736,0,14098,14099,5,296, +0,0,14099,14132,5,1585,0,0,14100,14101,7,180,0,0,14101,14132,5,2439,0,0, +14102,14104,5,999,0,0,14103,14102,1,0,0,0,14103,14104,1,0,0,0,14104,14105, +1,0,0,0,14105,14106,5,193,0,0,14106,14107,5,1669,0,0,14107,14132,3,2334, +1167,0,14108,14109,5,1669,0,0,14109,14110,5,387,0,0,14110,14111,7,99,0,0, +14111,14132,5,2078,0,0,14112,14132,3,1480,740,0,14113,14132,3,1484,742,0, +14114,14132,3,1438,719,0,14115,14117,7,99,0,0,14116,14115,1,0,0,0,14116, +14117,1,0,0,0,14117,14118,1,0,0,0,14118,14119,5,2228,0,0,14119,14120,5,2078, +0,0,14120,14121,3,870,435,0,14121,14122,5,350,0,0,14122,14127,3,916,458, +0,14123,14124,5,2451,0,0,14124,14126,3,916,458,0,14125,14123,1,0,0,0,14126, +14129,1,0,0,0,14127,14125,1,0,0,0,14127,14128,1,0,0,0,14128,14132,1,0,0, +0,14129,14127,1,0,0,0,14130,14132,3,1486,743,0,14131,14093,1,0,0,0,14131, +14098,1,0,0,0,14131,14100,1,0,0,0,14131,14103,1,0,0,0,14131,14108,1,0,0, +0,14131,14112,1,0,0,0,14131,14113,1,0,0,0,14131,14114,1,0,0,0,14131,14116, +1,0,0,0,14131,14130,1,0,0,0,14132,14133,1,0,0,0,14133,14131,1,0,0,0,14133, +14134,1,0,0,0,14134,1479,1,0,0,0,14135,14136,5,880,0,0,14136,14141,3,1482, +741,0,14137,14138,5,2451,0,0,14138,14140,3,1482,741,0,14139,14137,1,0,0, +0,14140,14143,1,0,0,0,14141,14139,1,0,0,0,14141,14142,1,0,0,0,14142,14151, +1,0,0,0,14143,14141,1,0,0,0,14144,14145,7,181,0,0,14145,14151,5,2439,0,0, +14146,14151,5,66,0,0,14147,14151,5,1056,0,0,14148,14149,5,614,0,0,14149, +14151,5,882,0,0,14150,14135,1,0,0,0,14150,14144,1,0,0,0,14150,14146,1,0, +0,0,14150,14147,1,0,0,0,14150,14148,1,0,0,0,14151,1481,1,0,0,0,14152,14153, +5,647,0,0,14153,14155,5,2439,0,0,14154,14152,1,0,0,0,14154,14155,1,0,0,0, +14155,14156,1,0,0,0,14156,14157,3,434,217,0,14157,1483,1,0,0,0,14158,14159, +5,556,0,0,14159,14160,5,904,0,0,14160,14177,5,871,0,0,14161,14163,5,1798, +0,0,14162,14161,1,0,0,0,14162,14163,1,0,0,0,14163,14164,1,0,0,0,14164,14165, +5,350,0,0,14165,14170,3,434,217,0,14166,14167,5,2451,0,0,14167,14169,3,434, +217,0,14168,14166,1,0,0,0,14169,14172,1,0,0,0,14170,14168,1,0,0,0,14170, +14171,1,0,0,0,14171,14177,1,0,0,0,14172,14170,1,0,0,0,14173,14177,3,1496, +748,0,14174,14177,3,1498,749,0,14175,14177,3,1500,750,0,14176,14158,1,0, +0,0,14176,14162,1,0,0,0,14176,14173,1,0,0,0,14176,14174,1,0,0,0,14176,14175, +1,0,0,0,14177,1485,1,0,0,0,14178,14179,5,497,0,0,14179,14180,5,1407,0,0, +14180,14193,5,348,0,0,14181,14183,5,1640,0,0,14182,14184,3,1488,744,0,14183, +14182,1,0,0,0,14183,14184,1,0,0,0,14184,14187,1,0,0,0,14185,14186,5,1947, +0,0,14186,14188,3,1492,746,0,14187,14185,1,0,0,0,14187,14188,1,0,0,0,14188, +14191,1,0,0,0,14189,14190,5,1798,0,0,14190,14192,3,1492,746,0,14191,14189, +1,0,0,0,14191,14192,1,0,0,0,14192,14194,1,0,0,0,14193,14181,1,0,0,0,14193, +14194,1,0,0,0,14194,14196,1,0,0,0,14195,14197,3,1494,747,0,14196,14195,1, +0,0,0,14196,14197,1,0,0,0,14197,1487,1,0,0,0,14198,14199,5,588,0,0,14199, +14212,5,2469,0,0,14200,14201,5,2445,0,0,14201,14206,3,1490,745,0,14202,14203, +5,2451,0,0,14203,14205,3,1490,745,0,14204,14202,1,0,0,0,14205,14208,1,0, +0,0,14206,14204,1,0,0,0,14206,14207,1,0,0,0,14207,14209,1,0,0,0,14208,14206, +1,0,0,0,14209,14210,5,2446,0,0,14210,14213,1,0,0,0,14211,14213,5,1131,0, +0,14212,14200,1,0,0,0,14212,14211,1,0,0,0,14213,1489,1,0,0,0,14214,14217, +5,2441,0,0,14215,14216,5,2451,0,0,14216,14218,5,2441,0,0,14217,14215,1,0, +0,0,14217,14218,1,0,0,0,14218,1491,1,0,0,0,14219,14223,5,351,0,0,14220,14221, +5,1697,0,0,14221,14224,3,1170,585,0,14222,14224,3,920,460,0,14223,14220, +1,0,0,0,14223,14222,1,0,0,0,14224,14225,1,0,0,0,14225,14223,1,0,0,0,14225, +14226,1,0,0,0,14226,1493,1,0,0,0,14227,14228,5,871,0,0,14228,14229,5,2176, +0,0,14229,14230,7,98,0,0,14230,1495,1,0,0,0,14231,14232,5,387,0,0,14232, +14233,5,2078,0,0,14233,14236,3,1648,824,0,14234,14235,5,350,0,0,14235,14237, +3,916,458,0,14236,14234,1,0,0,0,14236,14237,1,0,0,0,14237,14239,1,0,0,0, +14238,14240,3,886,443,0,14239,14238,1,0,0,0,14239,14240,1,0,0,0,14240,1497, +1,0,0,0,14241,14243,7,99,0,0,14242,14241,1,0,0,0,14242,14243,1,0,0,0,14243, +14244,1,0,0,0,14244,14252,5,387,0,0,14245,14246,5,2090,0,0,14246,14253,5, +2078,0,0,14247,14248,5,871,0,0,14248,14249,5,2090,0,0,14249,14250,5,2078, +0,0,14250,14251,5,618,0,0,14251,14253,7,182,0,0,14252,14245,1,0,0,0,14252, +14247,1,0,0,0,14253,14254,1,0,0,0,14254,14264,3,1648,824,0,14255,14256,5, +2087,0,0,14256,14261,3,434,217,0,14257,14258,5,2451,0,0,14258,14260,3,434, +217,0,14259,14257,1,0,0,0,14260,14263,1,0,0,0,14261,14259,1,0,0,0,14261, +14262,1,0,0,0,14262,14265,1,0,0,0,14263,14261,1,0,0,0,14264,14255,1,0,0, +0,14264,14265,1,0,0,0,14265,14267,1,0,0,0,14266,14268,3,886,443,0,14267, +14266,1,0,0,0,14267,14268,1,0,0,0,14268,1499,1,0,0,0,14269,14271,7,99,0, +0,14270,14269,1,0,0,0,14270,14271,1,0,0,0,14271,14272,1,0,0,0,14272,14273, +5,2176,0,0,14273,14274,5,2078,0,0,14274,14284,3,1648,824,0,14275,14276,5, +350,0,0,14276,14281,3,434,217,0,14277,14278,5,2451,0,0,14278,14280,3,434, +217,0,14279,14277,1,0,0,0,14280,14283,1,0,0,0,14281,14279,1,0,0,0,14281, +14282,1,0,0,0,14282,14285,1,0,0,0,14283,14281,1,0,0,0,14284,14275,1,0,0, +0,14284,14285,1,0,0,0,14285,1501,1,0,0,0,14286,14287,5,467,0,0,14287,14290, +5,348,0,0,14288,14289,5,703,0,0,14289,14291,5,103,0,0,14290,14288,1,0,0, +0,14290,14291,1,0,0,0,14291,14293,1,0,0,0,14292,14294,5,1155,0,0,14293,14292, +1,0,0,0,14293,14294,1,0,0,0,14294,1503,1,0,0,0,14295,14297,5,319,0,0,14296, +14298,5,1677,0,0,14297,14296,1,0,0,0,14297,14298,1,0,0,0,14298,14300,1,0, +0,0,14299,14301,5,1471,0,0,14300,14299,1,0,0,0,14300,14301,1,0,0,0,14301, +14302,1,0,0,0,14302,14303,5,348,0,0,14303,14304,5,859,0,0,14304,14320,3, +2322,1161,0,14305,14306,5,278,0,0,14306,14315,5,2139,0,0,14307,14316,5,339, +0,0,14308,14309,3,2342,1171,0,14309,14310,5,683,0,0,14310,14311,5,160,0, +0,14311,14313,3,1472,736,0,14312,14314,3,1474,737,0,14313,14312,1,0,0,0, +14313,14314,1,0,0,0,14314,14316,1,0,0,0,14315,14307,1,0,0,0,14315,14308, +1,0,0,0,14316,14319,1,0,0,0,14317,14319,3,1474,737,0,14318,14305,1,0,0,0, +14318,14317,1,0,0,0,14319,14322,1,0,0,0,14320,14318,1,0,0,0,14320,14321, +1,0,0,0,14321,14325,1,0,0,0,14322,14320,1,0,0,0,14323,14324,5,2244,0,0,14324, +14326,5,2441,0,0,14325,14323,1,0,0,0,14325,14326,1,0,0,0,14326,1505,1,0, +0,0,14327,14329,5,467,0,0,14328,14330,5,1471,0,0,14329,14328,1,0,0,0,14329, +14330,1,0,0,0,14330,14331,1,0,0,0,14331,14332,5,348,0,0,14332,14333,5,859, +0,0,14333,14334,3,2322,1161,0,14334,1507,1,0,0,0,14335,14336,5,42,0,0,14336, +14337,5,2078,0,0,14337,14338,5,1669,0,0,14338,14339,3,2392,1196,0,14339, +14340,3,1510,755,0,14340,1509,1,0,0,0,14341,14369,3,902,451,0,14342,14343, +5,952,0,0,14343,14344,5,556,0,0,14344,14369,3,1170,585,0,14345,14346,5,1565, +0,0,14346,14369,3,1170,585,0,14347,14369,5,228,0,0,14348,14349,5,1682,0, +0,14349,14352,5,1712,0,0,14350,14351,5,812,0,0,14351,14353,3,1170,585,0, +14352,14350,1,0,0,0,14352,14353,1,0,0,0,14353,14369,1,0,0,0,14354,14355, +5,1557,0,0,14355,14356,5,2139,0,0,14356,14369,3,2392,1196,0,14357,14358, +7,168,0,0,14358,14369,5,102,0,0,14359,14369,3,864,432,0,14360,14369,3,866, +433,0,14361,14369,3,868,434,0,14362,14369,3,872,436,0,14363,14369,3,920, +460,0,14364,14369,3,874,437,0,14365,14369,3,894,447,0,14366,14369,3,1512, +756,0,14367,14369,3,1458,729,0,14368,14341,1,0,0,0,14368,14342,1,0,0,0,14368, +14345,1,0,0,0,14368,14347,1,0,0,0,14368,14348,1,0,0,0,14368,14354,1,0,0, +0,14368,14357,1,0,0,0,14368,14359,1,0,0,0,14368,14360,1,0,0,0,14368,14361, +1,0,0,0,14368,14362,1,0,0,0,14368,14363,1,0,0,0,14368,14364,1,0,0,0,14368, +14365,1,0,0,0,14368,14366,1,0,0,0,14368,14367,1,0,0,0,14369,1511,1,0,0,0, +14370,14395,5,504,0,0,14371,14377,5,1241,0,0,14372,14374,3,882,441,0,14373, +14372,1,0,0,0,14373,14374,1,0,0,0,14374,14375,1,0,0,0,14375,14378,5,503, +0,0,14376,14378,5,385,0,0,14377,14373,1,0,0,0,14377,14376,1,0,0,0,14378, +14396,1,0,0,0,14379,14385,5,1254,0,0,14380,14382,3,882,441,0,14381,14380, +1,0,0,0,14381,14382,1,0,0,0,14382,14383,1,0,0,0,14383,14386,7,183,0,0,14384, +14386,5,385,0,0,14385,14381,1,0,0,0,14385,14384,1,0,0,0,14386,14388,1,0, +0,0,14387,14389,3,1514,757,0,14388,14387,1,0,0,0,14388,14389,1,0,0,0,14389, +14396,1,0,0,0,14390,14391,5,595,0,0,14391,14393,7,184,0,0,14392,14394,3, +1514,757,0,14393,14392,1,0,0,0,14393,14394,1,0,0,0,14394,14396,1,0,0,0,14395, +14371,1,0,0,0,14395,14379,1,0,0,0,14395,14390,1,0,0,0,14396,1513,1,0,0,0, +14397,14398,5,588,0,0,14398,14399,5,2469,0,0,14399,14400,5,2445,0,0,14400, +14401,5,2441,0,0,14401,14402,5,2451,0,0,14402,14409,5,2441,0,0,14403,14404, +5,2451,0,0,14404,14405,5,2441,0,0,14405,14406,5,2451,0,0,14406,14408,5,2441, +0,0,14407,14403,1,0,0,0,14408,14411,1,0,0,0,14409,14407,1,0,0,0,14409,14410, +1,0,0,0,14410,14412,1,0,0,0,14411,14409,1,0,0,0,14412,14414,5,2446,0,0,14413, +14415,5,812,0,0,14414,14413,1,0,0,0,14414,14415,1,0,0,0,14415,1515,1,0,0, +0,14416,14417,5,42,0,0,14417,14418,5,1591,0,0,14418,14419,3,2296,1148,0, +14419,14421,3,1518,759,0,14420,14422,3,764,382,0,14421,14420,1,0,0,0,14421, +14422,1,0,0,0,14422,1517,1,0,0,0,14423,14424,5,1202,0,0,14424,14443,5,683, +0,0,14425,14440,5,683,0,0,14426,14427,5,160,0,0,14427,14441,3,2390,1195, +0,14428,14429,5,2244,0,0,14429,14432,3,2390,1195,0,14430,14431,5,2438,0, +0,14431,14433,3,2392,1196,0,14432,14430,1,0,0,0,14432,14433,1,0,0,0,14433, +14441,1,0,0,0,14434,14441,5,559,0,0,14435,14438,5,641,0,0,14436,14437,5, +69,0,0,14437,14439,5,2441,0,0,14438,14436,1,0,0,0,14438,14439,1,0,0,0,14439, +14441,1,0,0,0,14440,14426,1,0,0,0,14440,14428,1,0,0,0,14440,14434,1,0,0, +0,14440,14435,1,0,0,0,14441,14443,1,0,0,0,14442,14423,1,0,0,0,14442,14425, +1,0,0,0,14443,1519,1,0,0,0,14444,14445,5,42,0,0,14445,14446,5,2081,0,0,14446, +14450,3,2330,1165,0,14447,14449,3,1522,761,0,14448,14447,1,0,0,0,14449,14452, +1,0,0,0,14450,14448,1,0,0,0,14450,14451,1,0,0,0,14451,14459,1,0,0,0,14452, +14450,1,0,0,0,14453,14460,1,0,0,0,14454,14460,3,1524,762,0,14455,14460,3, +1694,847,0,14456,14460,3,1596,798,0,14457,14460,3,1526,763,0,14458,14460, +3,1586,793,0,14459,14453,1,0,0,0,14459,14454,1,0,0,0,14459,14455,1,0,0,0, +14459,14456,1,0,0,0,14459,14457,1,0,0,0,14459,14458,1,0,0,0,14460,14473, +1,0,0,0,14461,14470,3,1576,788,0,14462,14467,3,1302,651,0,14463,14464,5, +2081,0,0,14464,14468,5,879,0,0,14465,14466,5,38,0,0,14466,14468,5,2154,0, +0,14467,14463,1,0,0,0,14467,14465,1,0,0,0,14468,14470,1,0,0,0,14469,14461, +1,0,0,0,14469,14462,1,0,0,0,14470,14471,1,0,0,0,14471,14469,1,0,0,0,14471, +14472,1,0,0,0,14472,14474,1,0,0,0,14473,14469,1,0,0,0,14473,14474,1,0,0, +0,14474,1521,1,0,0,0,14475,14477,5,1135,0,0,14476,14475,1,0,0,0,14476,14477, +1,0,0,0,14477,14478,1,0,0,0,14478,14479,5,2406,0,0,14479,14480,5,618,0,0, +14480,14481,7,185,0,0,14481,1523,1,0,0,0,14482,14495,3,1554,777,0,14483, +14484,5,1557,0,0,14484,14485,5,2139,0,0,14485,14495,3,2330,1165,0,14486, +14495,3,1282,641,0,14487,14488,5,1503,0,0,14488,14495,5,1256,0,0,14489,14490, +5,1503,0,0,14490,14495,5,2311,0,0,14491,14492,5,1548,0,0,14492,14495,5,2441, +0,0,14493,14495,3,2234,1117,0,14494,14482,1,0,0,0,14494,14483,1,0,0,0,14494, +14486,1,0,0,0,14494,14487,1,0,0,0,14494,14489,1,0,0,0,14494,14491,1,0,0, +0,14494,14493,1,0,0,0,14495,1525,1,0,0,0,14496,14507,3,1528,764,0,14497, +14507,3,1530,765,0,14498,14507,3,1532,766,0,14499,14507,3,1534,767,0,14500, +14507,3,1536,768,0,14501,14507,3,1538,769,0,14502,14507,3,1540,770,0,14503, +14507,3,1542,771,0,14504,14507,3,1544,772,0,14505,14507,3,1546,773,0,14506, +14496,1,0,0,0,14506,14497,1,0,0,0,14506,14498,1,0,0,0,14506,14499,1,0,0, +0,14506,14500,1,0,0,0,14506,14501,1,0,0,0,14506,14502,1,0,0,0,14506,14503, +1,0,0,0,14506,14504,1,0,0,0,14506,14505,1,0,0,0,14507,1527,1,0,0,0,14508, +14525,5,21,0,0,14509,14526,3,1134,567,0,14510,14526,3,1136,568,0,14511,14513, +5,1346,0,0,14512,14514,3,1688,844,0,14513,14512,1,0,0,0,14513,14514,1,0, +0,0,14514,14517,1,0,0,0,14515,14516,5,2078,0,0,14516,14518,3,1648,824,0, +14517,14515,1,0,0,0,14517,14518,1,0,0,0,14518,14520,1,0,0,0,14519,14521, +3,1592,796,0,14520,14519,1,0,0,0,14520,14521,1,0,0,0,14521,14523,1,0,0,0, +14522,14524,5,2201,0,0,14523,14522,1,0,0,0,14523,14524,1,0,0,0,14524,14526, +1,0,0,0,14525,14509,1,0,0,0,14525,14510,1,0,0,0,14525,14511,1,0,0,0,14526, +1529,1,0,0,0,14527,14530,5,467,0,0,14528,14531,3,1550,775,0,14529,14531, +3,1552,776,0,14530,14528,1,0,0,0,14530,14529,1,0,0,0,14531,14536,1,0,0,0, +14532,14534,3,1564,782,0,14533,14535,3,926,463,0,14534,14533,1,0,0,0,14534, +14535,1,0,0,0,14535,14537,1,0,0,0,14536,14532,1,0,0,0,14536,14537,1,0,0, +0,14537,1531,1,0,0,0,14538,14539,5,944,0,0,14539,14540,5,1346,0,0,14540, +14541,3,1688,844,0,14541,14542,5,49,0,0,14542,14543,3,1688,844,0,14543,14544, +5,777,0,0,14544,14545,5,1346,0,0,14545,14546,3,1688,844,0,14546,1533,1,0, +0,0,14547,14570,5,978,0,0,14548,14549,7,186,0,0,14549,14552,3,1688,844,0, +14550,14551,7,9,0,0,14551,14553,3,1162,581,0,14552,14550,1,0,0,0,14552,14553, +1,0,0,0,14553,14556,1,0,0,0,14554,14555,5,21,0,0,14555,14557,3,1150,575, +0,14556,14554,1,0,0,0,14556,14557,1,0,0,0,14557,14564,1,0,0,0,14558,14560, +5,1509,0,0,14559,14558,1,0,0,0,14559,14560,1,0,0,0,14560,14561,1,0,0,0,14561, +14562,5,2201,0,0,14562,14563,5,871,0,0,14563,14565,5,712,0,0,14564,14559, +1,0,0,0,14564,14565,1,0,0,0,14565,14567,1,0,0,0,14566,14568,3,1282,641,0, +14567,14566,1,0,0,0,14567,14568,1,0,0,0,14568,14571,1,0,0,0,14569,14571, +3,1110,555,0,14570,14548,1,0,0,0,14570,14569,1,0,0,0,14571,1535,1,0,0,0, +14572,14573,5,1715,0,0,14573,14619,3,1550,775,0,14574,14575,5,82,0,0,14575, +14576,5,2445,0,0,14576,14581,3,2176,1088,0,14577,14578,5,2451,0,0,14578, +14580,3,2176,1088,0,14579,14577,1,0,0,0,14580,14583,1,0,0,0,14581,14579, +1,0,0,0,14581,14582,1,0,0,0,14582,14584,1,0,0,0,14583,14581,1,0,0,0,14584, +14585,5,2446,0,0,14585,14586,5,777,0,0,14586,14587,5,2445,0,0,14587,14592, +3,1134,567,0,14588,14589,5,2451,0,0,14589,14591,3,1134,567,0,14590,14588, +1,0,0,0,14591,14594,1,0,0,0,14592,14590,1,0,0,0,14592,14593,1,0,0,0,14593, +14595,1,0,0,0,14594,14592,1,0,0,0,14595,14596,5,2446,0,0,14596,14620,1,0, +0,0,14597,14598,5,777,0,0,14598,14615,5,2445,0,0,14599,14604,3,1134,567, +0,14600,14601,5,2451,0,0,14601,14603,3,1134,567,0,14602,14600,1,0,0,0,14603, +14606,1,0,0,0,14604,14602,1,0,0,0,14604,14605,1,0,0,0,14605,14616,1,0,0, +0,14606,14604,1,0,0,0,14607,14612,3,1136,568,0,14608,14609,5,2451,0,0,14609, +14611,3,1136,568,0,14610,14608,1,0,0,0,14611,14614,1,0,0,0,14612,14610,1, +0,0,0,14612,14613,1,0,0,0,14613,14616,1,0,0,0,14614,14612,1,0,0,0,14615, +14599,1,0,0,0,14615,14607,1,0,0,0,14616,14617,1,0,0,0,14617,14618,5,2446, +0,0,14618,14620,1,0,0,0,14619,14574,1,0,0,0,14619,14597,1,0,0,0,14620,14624, +1,0,0,0,14621,14625,3,1566,783,0,14622,14625,3,1564,782,0,14623,14625,5, +1254,0,0,14624,14621,1,0,0,0,14624,14622,1,0,0,0,14624,14623,1,0,0,0,14624, +14625,1,0,0,0,14625,1537,1,0,0,0,14626,14629,5,2157,0,0,14627,14630,3,1550, +775,0,14628,14630,3,1552,776,0,14629,14627,1,0,0,0,14629,14628,1,0,0,0,14630, +14639,1,0,0,0,14631,14633,5,467,0,0,14632,14634,5,38,0,0,14633,14632,1,0, +0,0,14633,14634,1,0,0,0,14634,14637,1,0,0,0,14635,14637,5,1585,0,0,14636, +14631,1,0,0,0,14636,14635,1,0,0,0,14636,14637,1,0,0,0,14637,14638,1,0,0, +0,14638,14640,5,1760,0,0,14639,14636,1,0,0,0,14639,14640,1,0,0,0,14640,14642, +1,0,0,0,14641,14643,5,179,0,0,14642,14641,1,0,0,0,14642,14643,1,0,0,0,14643, +14648,1,0,0,0,14644,14646,3,1564,782,0,14645,14647,3,926,463,0,14646,14645, +1,0,0,0,14646,14647,1,0,0,0,14647,14649,1,0,0,0,14648,14644,1,0,0,0,14648, +14649,1,0,0,0,14649,1539,1,0,0,0,14650,14651,5,536,0,0,14651,14652,5,1346, +0,0,14652,14653,3,1688,844,0,14653,14654,5,2306,0,0,14654,14655,5,2081,0, +0,14655,14658,3,2330,1165,0,14656,14657,7,108,0,0,14657,14659,5,712,0,0, +14658,14656,1,0,0,0,14658,14659,1,0,0,0,14659,14662,1,0,0,0,14660,14661, +7,2,0,0,14661,14663,5,2253,0,0,14662,14660,1,0,0,0,14662,14663,1,0,0,0,14663, +1541,1,0,0,0,14664,14665,5,228,0,0,14665,14667,5,1346,0,0,14666,14668,3, +926,463,0,14667,14666,1,0,0,0,14667,14668,1,0,0,0,14668,14672,1,0,0,0,14669, +14670,3,1304,652,0,14670,14671,5,224,0,0,14671,14673,1,0,0,0,14672,14669, +1,0,0,0,14672,14673,1,0,0,0,14673,1543,1,0,0,0,14674,14675,5,1669,0,0,14675, +14676,5,774,0,0,14676,14679,5,2445,0,0,14677,14680,3,2382,1191,0,14678,14680, +3,2070,1035,0,14679,14677,1,0,0,0,14679,14678,1,0,0,0,14679,14680,1,0,0, +0,14680,14681,1,0,0,0,14681,14682,5,2446,0,0,14682,1545,1,0,0,0,14683,14698, +5,990,0,0,14684,14687,3,1550,775,0,14685,14686,5,909,0,0,14686,14688,5,2081, +0,0,14687,14685,1,0,0,0,14687,14688,1,0,0,0,14688,14689,1,0,0,0,14689,14690, +3,1164,582,0,14690,14699,1,0,0,0,14691,14693,3,1552,776,0,14692,14694,3, +1082,541,0,14693,14692,1,0,0,0,14693,14694,1,0,0,0,14694,14696,1,0,0,0,14695, +14697,3,1166,583,0,14696,14695,1,0,0,0,14696,14697,1,0,0,0,14697,14699,1, +0,0,0,14698,14684,1,0,0,0,14698,14691,1,0,0,0,14699,14709,1,0,0,0,14700, +14708,3,1548,774,0,14701,14708,3,1564,782,0,14702,14708,3,926,463,0,14703, +14704,3,1304,652,0,14704,14705,5,224,0,0,14705,14708,1,0,0,0,14706,14708, +5,1254,0,0,14707,14700,1,0,0,0,14707,14701,1,0,0,0,14707,14702,1,0,0,0,14707, +14703,1,0,0,0,14707,14706,1,0,0,0,14708,14711,1,0,0,0,14709,14707,1,0,0, +0,14709,14710,1,0,0,0,14710,1547,1,0,0,0,14711,14709,1,0,0,0,14712,14713, +5,703,0,0,14713,14714,5,1605,0,0,14714,14715,3,2260,1130,0,14715,1549,1, +0,0,0,14716,14751,7,187,0,0,14717,14722,3,1688,844,0,14718,14719,5,2451, +0,0,14719,14721,3,1688,844,0,14720,14718,1,0,0,0,14721,14724,1,0,0,0,14722, +14720,1,0,0,0,14722,14723,1,0,0,0,14723,14752,1,0,0,0,14724,14722,1,0,0, +0,14725,14726,5,2445,0,0,14726,14731,3,1688,844,0,14727,14728,5,2451,0,0, +14728,14730,3,1688,844,0,14729,14727,1,0,0,0,14730,14733,1,0,0,0,14731,14729, +1,0,0,0,14731,14732,1,0,0,0,14732,14734,1,0,0,0,14733,14731,1,0,0,0,14734, +14735,5,2446,0,0,14735,14752,1,0,0,0,14736,14738,5,618,0,0,14737,14739,5, +2445,0,0,14738,14737,1,0,0,0,14738,14739,1,0,0,0,14739,14740,1,0,0,0,14740, +14745,3,684,342,0,14741,14742,5,2451,0,0,14742,14744,3,684,342,0,14743,14741, +1,0,0,0,14744,14747,1,0,0,0,14745,14743,1,0,0,0,14745,14746,1,0,0,0,14746, +14749,1,0,0,0,14747,14745,1,0,0,0,14748,14750,5,2446,0,0,14749,14748,1,0, +0,0,14749,14750,1,0,0,0,14750,14752,1,0,0,0,14751,14717,1,0,0,0,14751,14725, +1,0,0,0,14751,14736,1,0,0,0,14752,1551,1,0,0,0,14753,14785,7,188,0,0,14754, +14757,3,1688,844,0,14755,14756,5,2205,0,0,14756,14758,5,712,0,0,14757,14755, +1,0,0,0,14757,14758,1,0,0,0,14758,14786,1,0,0,0,14759,14760,5,2445,0,0,14760, +14765,3,1688,844,0,14761,14762,5,2451,0,0,14762,14764,3,1688,844,0,14763, +14761,1,0,0,0,14764,14767,1,0,0,0,14765,14763,1,0,0,0,14765,14766,1,0,0, +0,14766,14768,1,0,0,0,14767,14765,1,0,0,0,14768,14769,5,2446,0,0,14769,14786, +1,0,0,0,14770,14772,5,618,0,0,14771,14773,5,2445,0,0,14772,14771,1,0,0,0, +14772,14773,1,0,0,0,14773,14774,1,0,0,0,14774,14779,3,686,343,0,14775,14776, +5,2451,0,0,14776,14778,3,686,343,0,14777,14775,1,0,0,0,14778,14781,1,0,0, +0,14779,14777,1,0,0,0,14779,14780,1,0,0,0,14780,14783,1,0,0,0,14781,14779, +1,0,0,0,14782,14784,5,2446,0,0,14783,14782,1,0,0,0,14783,14784,1,0,0,0,14784, +14786,1,0,0,0,14785,14754,1,0,0,0,14785,14759,1,0,0,0,14785,14770,1,0,0, +0,14786,1553,1,0,0,0,14787,14807,3,1188,594,0,14788,14807,3,884,442,0,14789, +14807,3,1172,586,0,14790,14807,3,1174,587,0,14791,14807,3,1272,636,0,14792, +14807,3,1278,639,0,14793,14807,3,1280,640,0,14794,14807,7,107,0,0,14795, +14796,5,1577,0,0,14796,14797,5,2445,0,0,14797,14798,5,975,0,0,14798,14799, +7,24,0,0,14799,14807,5,2446,0,0,14800,14807,3,1286,643,0,14801,14807,3,1284, +642,0,14802,14807,3,926,463,0,14803,14807,3,1266,633,0,14804,14807,3,1102, +551,0,14805,14807,3,1268,634,0,14806,14787,1,0,0,0,14806,14788,1,0,0,0,14806, +14789,1,0,0,0,14806,14790,1,0,0,0,14806,14791,1,0,0,0,14806,14792,1,0,0, +0,14806,14793,1,0,0,0,14806,14794,1,0,0,0,14806,14795,1,0,0,0,14806,14800, +1,0,0,0,14806,14801,1,0,0,0,14806,14802,1,0,0,0,14806,14803,1,0,0,0,14806, +14804,1,0,0,0,14806,14805,1,0,0,0,14807,14808,1,0,0,0,14808,14806,1,0,0, +0,14808,14809,1,0,0,0,14809,14811,1,0,0,0,14810,14812,3,1556,778,0,14811, +14810,1,0,0,0,14811,14812,1,0,0,0,14812,1555,1,0,0,0,14813,14818,3,1588, +794,0,14814,14818,3,1560,780,0,14815,14818,3,1558,779,0,14816,14818,5,228, +0,0,14817,14813,1,0,0,0,14817,14814,1,0,0,0,14817,14815,1,0,0,0,14817,14816, +1,0,0,0,14818,1557,1,0,0,0,14819,14820,5,909,0,0,14820,14823,5,2081,0,0, +14821,14824,3,1278,639,0,14822,14824,3,1280,640,0,14823,14821,1,0,0,0,14823, +14822,1,0,0,0,14824,1559,1,0,0,0,14825,14836,3,1562,781,0,14826,14831,5, +1318,0,0,14827,14832,3,1194,597,0,14828,14832,3,1278,639,0,14829,14832,3, +1282,641,0,14830,14832,3,1280,640,0,14831,14827,1,0,0,0,14831,14828,1,0, +0,0,14831,14829,1,0,0,0,14831,14830,1,0,0,0,14832,14833,1,0,0,0,14833,14831, +1,0,0,0,14833,14834,1,0,0,0,14834,14836,1,0,0,0,14835,14825,1,0,0,0,14835, +14826,1,0,0,0,14836,1561,1,0,0,0,14837,14838,5,21,0,0,14838,14840,5,1318, +0,0,14839,14841,3,1194,597,0,14840,14839,1,0,0,0,14840,14841,1,0,0,0,14841, +14858,1,0,0,0,14842,14843,5,2445,0,0,14843,14845,5,1346,0,0,14844,14846, +3,1194,597,0,14845,14844,1,0,0,0,14845,14846,1,0,0,0,14846,14854,1,0,0,0, +14847,14848,5,2451,0,0,14848,14850,5,1346,0,0,14849,14851,3,1194,597,0,14850, +14849,1,0,0,0,14850,14851,1,0,0,0,14851,14853,1,0,0,0,14852,14847,1,0,0, +0,14853,14856,1,0,0,0,14854,14852,1,0,0,0,14854,14855,1,0,0,0,14855,14857, +1,0,0,0,14856,14854,1,0,0,0,14857,14859,5,2446,0,0,14858,14842,1,0,0,0,14858, +14859,1,0,0,0,14859,1563,1,0,0,0,14860,14863,3,1566,783,0,14861,14863,3, +1568,784,0,14862,14860,1,0,0,0,14862,14861,1,0,0,0,14863,1565,1,0,0,0,14864, +14865,7,189,0,0,14865,14866,5,640,0,0,14866,14867,5,712,0,0,14867,1567,1, +0,0,0,14868,14869,5,2205,0,0,14869,14874,5,712,0,0,14870,14871,5,2445,0, +0,14871,14872,3,1570,785,0,14872,14873,5,2446,0,0,14873,14875,1,0,0,0,14874, +14870,1,0,0,0,14874,14875,1,0,0,0,14875,1569,1,0,0,0,14876,14877,3,2316, +1158,0,14877,14880,5,2445,0,0,14878,14881,3,1572,786,0,14879,14881,3,1574, +787,0,14880,14878,1,0,0,0,14880,14879,1,0,0,0,14881,14882,1,0,0,0,14882, +14887,5,2446,0,0,14883,14884,5,2451,0,0,14884,14886,3,1568,784,0,14885,14883, +1,0,0,0,14886,14889,1,0,0,0,14887,14885,1,0,0,0,14887,14888,1,0,0,0,14888, +1571,1,0,0,0,14889,14887,1,0,0,0,14890,14892,3,542,271,0,14891,14893,3,504, +252,0,14892,14891,1,0,0,0,14892,14893,1,0,0,0,14893,14898,1,0,0,0,14894, +14895,5,2451,0,0,14895,14897,3,1572,786,0,14896,14894,1,0,0,0,14897,14900, +1,0,0,0,14898,14896,1,0,0,0,14898,14899,1,0,0,0,14899,1573,1,0,0,0,14900, +14898,1,0,0,0,14901,14903,5,1773,0,0,14902,14904,3,1148,574,0,14903,14902, +1,0,0,0,14903,14904,1,0,0,0,14904,14907,1,0,0,0,14905,14906,5,2078,0,0,14906, +14908,3,1648,824,0,14907,14905,1,0,0,0,14907,14908,1,0,0,0,14908,14913,1, +0,0,0,14909,14910,5,2451,0,0,14910,14912,3,1574,787,0,14911,14909,1,0,0, +0,14912,14915,1,0,0,0,14913,14911,1,0,0,0,14913,14914,1,0,0,0,14914,1575, +1,0,0,0,14915,14913,1,0,0,0,14916,14918,7,17,0,0,14917,14919,7,94,0,0,14918, +14917,1,0,0,0,14918,14919,1,0,0,0,14919,14936,1,0,0,0,14920,14921,5,2181, +0,0,14921,14922,5,2445,0,0,14922,14927,3,2328,1164,0,14923,14924,5,2451, +0,0,14924,14926,3,2328,1164,0,14925,14923,1,0,0,0,14926,14929,1,0,0,0,14927, +14925,1,0,0,0,14927,14928,1,0,0,0,14928,14930,1,0,0,0,14929,14927,1,0,0, +0,14930,14931,5,2446,0,0,14931,14937,1,0,0,0,14932,14933,5,1449,0,0,14933, +14937,5,814,0,0,14934,14935,5,284,0,0,14935,14937,3,2298,1149,0,14936,14920, +1,0,0,0,14936,14932,1,0,0,0,14936,14934,1,0,0,0,14937,14939,1,0,0,0,14938, +14940,3,1578,789,0,14939,14938,1,0,0,0,14939,14940,1,0,0,0,14940,14942,1, +0,0,0,14941,14943,3,1584,792,0,14942,14941,1,0,0,0,14942,14943,1,0,0,0,14943, +14945,1,0,0,0,14944,14946,5,179,0,0,14945,14944,1,0,0,0,14945,14946,1,0, +0,0,14946,14949,1,0,0,0,14947,14948,7,161,0,0,14948,14950,5,715,0,0,14949, +14947,1,0,0,0,14949,14950,1,0,0,0,14950,1577,1,0,0,0,14951,14952,5,2244, +0,0,14952,14959,5,715,0,0,14953,14960,3,2316,1158,0,14954,14955,5,2445,0, +0,14955,14956,3,460,230,0,14956,14957,5,2446,0,0,14957,14960,1,0,0,0,14958, +14960,3,472,236,0,14959,14953,1,0,0,0,14959,14954,1,0,0,0,14959,14958,1, +0,0,0,14960,1579,1,0,0,0,14961,14974,3,1188,594,0,14962,14974,3,884,442, +0,14963,14966,5,2078,0,0,14964,14967,3,1648,824,0,14965,14967,5,387,0,0, +14966,14964,1,0,0,0,14966,14965,1,0,0,0,14967,14974,1,0,0,0,14968,14974, +3,1592,796,0,14969,14974,3,1582,791,0,14970,14974,5,1586,0,0,14971,14974, +3,518,259,0,14972,14974,3,926,463,0,14973,14961,1,0,0,0,14973,14962,1,0, +0,0,14973,14963,1,0,0,0,14973,14968,1,0,0,0,14973,14969,1,0,0,0,14973,14970, +1,0,0,0,14973,14971,1,0,0,0,14973,14972,1,0,0,0,14974,14975,1,0,0,0,14975, +14973,1,0,0,0,14975,14976,1,0,0,0,14976,1581,1,0,0,0,14977,14978,7,190,0, +0,14978,1583,1,0,0,0,14979,14980,5,535,0,0,14980,14981,5,777,0,0,14981,14982, +3,2330,1165,0,14982,1585,1,0,0,0,14983,14985,5,990,0,0,14984,14986,5,1254, +0,0,14985,14984,1,0,0,0,14985,14986,1,0,0,0,14986,14988,1,0,0,0,14987,14989, +3,1194,597,0,14988,14987,1,0,0,0,14988,14989,1,0,0,0,14989,14991,1,0,0,0, +14990,14992,3,1172,586,0,14991,14990,1,0,0,0,14991,14992,1,0,0,0,14992,14994, +1,0,0,0,14993,14995,3,1588,794,0,14994,14993,1,0,0,0,14994,14995,1,0,0,0, +14995,15000,1,0,0,0,14996,14999,3,1632,816,0,14997,14999,3,1622,811,0,14998, +14996,1,0,0,0,14998,14997,1,0,0,0,14999,15002,1,0,0,0,15000,14998,1,0,0, +0,15000,15001,1,0,0,0,15001,15004,1,0,0,0,15002,15000,1,0,0,0,15003,15005, +3,926,463,0,15004,15003,1,0,0,0,15004,15005,1,0,0,0,15005,1587,1,0,0,0,15006, +15011,3,1590,795,0,15007,15008,5,1369,0,0,15008,15011,5,2439,0,0,15009,15011, +3,1592,796,0,15010,15006,1,0,0,0,15010,15007,1,0,0,0,15010,15009,1,0,0,0, +15011,15012,1,0,0,0,15012,15010,1,0,0,0,15012,15013,1,0,0,0,15013,15015, +1,0,0,0,15014,15016,3,1594,797,0,15015,15014,1,0,0,0,15015,15016,1,0,0,0, +15016,15019,1,0,0,0,15017,15019,3,1594,797,0,15018,15010,1,0,0,0,15018,15017, +1,0,0,0,15019,1589,1,0,0,0,15020,15021,5,909,0,0,15021,15024,5,2081,0,0, +15022,15024,5,1118,0,0,15023,15020,1,0,0,0,15023,15022,1,0,0,0,15024,1591, +1,0,0,0,15025,15029,5,1072,0,0,15026,15027,5,258,0,0,15027,15029,5,2439, +0,0,15028,15025,1,0,0,0,15028,15026,1,0,0,0,15029,1593,1,0,0,0,15030,15031, +5,703,0,0,15031,15033,3,2328,1164,0,15032,15030,1,0,0,0,15032,15033,1,0, +0,0,15033,15034,1,0,0,0,15034,15036,5,1318,0,0,15035,15037,3,1194,597,0, +15036,15035,1,0,0,0,15036,15037,1,0,0,0,15037,1595,1,0,0,0,15038,15043,3, +1608,804,0,15039,15043,3,1602,801,0,15040,15043,3,1598,799,0,15041,15043, +3,1634,817,0,15042,15038,1,0,0,0,15042,15039,1,0,0,0,15042,15040,1,0,0,0, +15042,15041,1,0,0,0,15043,1597,1,0,0,0,15044,15045,5,978,0,0,15045,15046, +5,1011,0,0,15046,15047,5,2081,0,0,15047,15048,3,1600,800,0,15048,15049,5, +1584,0,0,15049,15050,5,69,0,0,15050,15051,7,191,0,0,15051,1599,1,0,0,0,15052, +15053,3,2330,1165,0,15053,1601,1,0,0,0,15054,15055,5,1557,0,0,15055,15056, +5,237,0,0,15056,15057,3,1604,802,0,15057,15058,5,2139,0,0,15058,15059,3, +1606,803,0,15059,1603,1,0,0,0,15060,15061,3,2328,1164,0,15061,1605,1,0,0, +0,15062,15063,3,2328,1164,0,15063,1607,1,0,0,0,15064,15069,3,1694,847,0, +15065,15069,3,1620,810,0,15066,15069,3,1612,806,0,15067,15069,3,1610,805, +0,15068,15064,1,0,0,0,15068,15065,1,0,0,0,15068,15066,1,0,0,0,15068,15067, +1,0,0,0,15069,15070,1,0,0,0,15070,15068,1,0,0,0,15070,15071,1,0,0,0,15071, +1609,1,0,0,0,15072,15073,5,1669,0,0,15073,15087,5,2202,0,0,15074,15075,5, +237,0,0,15075,15088,3,2328,1164,0,15076,15077,5,2445,0,0,15077,15082,3,2328, +1164,0,15078,15079,5,2451,0,0,15079,15081,3,2328,1164,0,15080,15078,1,0, +0,0,15081,15084,1,0,0,0,15082,15080,1,0,0,0,15082,15083,1,0,0,0,15083,15085, +1,0,0,0,15084,15082,1,0,0,0,15085,15086,5,2446,0,0,15086,15088,1,0,0,0,15087, +15074,1,0,0,0,15087,15076,1,0,0,0,15088,15094,1,0,0,0,15089,15090,5,179, +0,0,15090,15093,5,285,0,0,15091,15093,5,778,0,0,15092,15089,1,0,0,0,15092, +15091,1,0,0,0,15093,15096,1,0,0,0,15094,15092,1,0,0,0,15094,15095,1,0,0, +0,15095,15135,1,0,0,0,15096,15094,1,0,0,0,15097,15111,5,467,0,0,15098,15099, +5,237,0,0,15099,15112,3,2328,1164,0,15100,15101,5,2445,0,0,15101,15106,3, +2328,1164,0,15102,15103,5,2451,0,0,15103,15105,3,2328,1164,0,15104,15102, +1,0,0,0,15105,15108,1,0,0,0,15106,15104,1,0,0,0,15106,15107,1,0,0,0,15107, +15109,1,0,0,0,15108,15106,1,0,0,0,15109,15110,5,2446,0,0,15110,15112,1,0, +0,0,15111,15098,1,0,0,0,15111,15100,1,0,0,0,15112,15118,1,0,0,0,15113,15114, +5,179,0,0,15114,15117,5,285,0,0,15115,15117,5,778,0,0,15116,15113,1,0,0, +0,15116,15115,1,0,0,0,15117,15120,1,0,0,0,15118,15116,1,0,0,0,15118,15119, +1,0,0,0,15119,15123,1,0,0,0,15120,15118,1,0,0,0,15121,15122,5,201,0,0,15122, +15124,5,2439,0,0,15123,15121,1,0,0,0,15123,15124,1,0,0,0,15124,15135,1,0, +0,0,15125,15130,5,467,0,0,15126,15127,5,2202,0,0,15127,15131,5,238,0,0,15128, +15129,5,238,0,0,15129,15131,5,295,0,0,15130,15126,1,0,0,0,15130,15128,1, +0,0,0,15131,15132,1,0,0,0,15132,15133,5,201,0,0,15133,15135,5,2439,0,0,15134, +15072,1,0,0,0,15134,15097,1,0,0,0,15134,15125,1,0,0,0,15135,1611,1,0,0,0, +15136,15162,5,978,0,0,15137,15138,5,2445,0,0,15138,15143,3,1614,807,0,15139, +15140,5,2451,0,0,15140,15142,3,1614,807,0,15141,15139,1,0,0,0,15142,15145, +1,0,0,0,15143,15141,1,0,0,0,15143,15144,1,0,0,0,15144,15146,1,0,0,0,15145, +15143,1,0,0,0,15146,15147,5,2446,0,0,15147,15163,1,0,0,0,15148,15149,5,2445, +0,0,15149,15154,3,1616,808,0,15150,15151,5,2451,0,0,15151,15153,3,1616,808, +0,15152,15150,1,0,0,0,15153,15156,1,0,0,0,15154,15152,1,0,0,0,15154,15155, +1,0,0,0,15155,15157,1,0,0,0,15156,15154,1,0,0,0,15157,15158,5,2446,0,0,15158, +15163,1,0,0,0,15159,15163,3,1614,807,0,15160,15163,3,1616,808,0,15161,15163, +3,1618,809,0,15162,15137,1,0,0,0,15162,15148,1,0,0,0,15162,15159,1,0,0,0, +15162,15160,1,0,0,0,15162,15161,1,0,0,0,15163,1613,1,0,0,0,15164,15166,3, +2328,1164,0,15165,15167,3,2364,1182,0,15166,15165,1,0,0,0,15166,15167,1, +0,0,0,15167,15174,1,0,0,0,15168,15171,5,387,0,0,15169,15170,5,1257,0,0,15170, +15172,5,1226,0,0,15171,15169,1,0,0,0,15171,15172,1,0,0,0,15172,15173,1,0, +0,0,15173,15175,3,2070,1035,0,15174,15168,1,0,0,0,15174,15175,1,0,0,0,15175, +15179,1,0,0,0,15176,15177,5,503,0,0,15177,15180,3,1646,823,0,15178,15180, +5,385,0,0,15179,15176,1,0,0,0,15179,15178,1,0,0,0,15179,15180,1,0,0,0,15180, +15184,1,0,0,0,15181,15183,3,844,422,0,15182,15181,1,0,0,0,15183,15186,1, +0,0,0,15184,15182,1,0,0,0,15184,15185,1,0,0,0,15185,15188,1,0,0,0,15186, +15184,1,0,0,0,15187,15189,3,1632,816,0,15188,15187,1,0,0,0,15188,15189,1, +0,0,0,15189,15191,1,0,0,0,15190,15192,3,2234,1117,0,15191,15190,1,0,0,0, +15191,15192,1,0,0,0,15192,1615,1,0,0,0,15193,15194,3,2328,1164,0,15194,15195, +7,68,0,0,15195,1617,1,0,0,0,15196,15197,5,237,0,0,15197,15199,3,2328,1164, +0,15198,15200,5,1202,0,0,15199,15198,1,0,0,0,15199,15200,1,0,0,0,15200,15201, +1,0,0,0,15201,15202,5,1778,0,0,15202,15203,5,82,0,0,15203,15204,5,38,0,0, +15204,15206,5,846,0,0,15205,15207,5,614,0,0,15206,15205,1,0,0,0,15206,15207, +1,0,0,0,15207,1619,1,0,0,0,15208,15230,5,21,0,0,15209,15212,5,2445,0,0,15210, +15213,3,1662,831,0,15211,15213,3,1672,836,0,15212,15210,1,0,0,0,15212,15211, +1,0,0,0,15213,15221,1,0,0,0,15214,15217,5,2451,0,0,15215,15218,3,1662,831, +0,15216,15218,3,1672,836,0,15217,15215,1,0,0,0,15217,15216,1,0,0,0,15218, +15220,1,0,0,0,15219,15214,1,0,0,0,15220,15223,1,0,0,0,15221,15219,1,0,0, +0,15221,15222,1,0,0,0,15222,15224,1,0,0,0,15223,15221,1,0,0,0,15224,15225, +5,2446,0,0,15225,15231,1,0,0,0,15226,15229,3,1662,831,0,15227,15229,3,1672, +836,0,15228,15226,1,0,0,0,15228,15227,1,0,0,0,15229,15231,1,0,0,0,15230, +15209,1,0,0,0,15230,15228,1,0,0,0,15231,15233,1,0,0,0,15232,15234,3,1652, +826,0,15233,15232,1,0,0,0,15233,15234,1,0,0,0,15234,1621,1,0,0,0,15235,15236, +5,2265,0,0,15236,15242,3,1650,825,0,15237,15239,3,1686,843,0,15238,15237, +1,0,0,0,15238,15239,1,0,0,0,15239,15240,1,0,0,0,15240,15243,3,1624,812,0, +15241,15243,3,1686,843,0,15242,15238,1,0,0,0,15242,15241,1,0,0,0,15243,1623, +1,0,0,0,15244,15245,5,1761,0,0,15245,15247,5,69,0,0,15246,15248,7,119,0, +0,15247,15246,1,0,0,0,15247,15248,1,0,0,0,15248,15249,1,0,0,0,15249,15258, +5,866,0,0,15250,15252,3,1626,813,0,15251,15250,1,0,0,0,15251,15252,1,0,0, +0,15252,15253,1,0,0,0,15253,15254,5,2445,0,0,15254,15255,3,1630,815,0,15255, +15256,5,2446,0,0,15256,15259,1,0,0,0,15257,15259,3,1626,813,0,15258,15251, +1,0,0,0,15258,15257,1,0,0,0,15258,15259,1,0,0,0,15259,1625,1,0,0,0,15260, +15261,3,2398,1199,0,15261,1627,1,0,0,0,15262,15266,3,2398,1199,0,15263,15266, +3,2388,1194,0,15264,15266,5,2442,0,0,15265,15262,1,0,0,0,15265,15263,1,0, +0,0,15265,15264,1,0,0,0,15266,1629,1,0,0,0,15267,15268,5,2078,0,0,15268, +15275,3,2392,1196,0,15269,15271,3,1638,819,0,15270,15272,3,1190,595,0,15271, +15270,1,0,0,0,15271,15272,1,0,0,0,15272,15275,1,0,0,0,15273,15275,3,1190, +595,0,15274,15267,1,0,0,0,15274,15269,1,0,0,0,15274,15273,1,0,0,0,15275, +1631,1,0,0,0,15276,15321,5,866,0,0,15277,15278,5,2445,0,0,15278,15283,3, +1628,814,0,15279,15280,5,2451,0,0,15280,15282,3,1628,814,0,15281,15279,1, +0,0,0,15282,15285,1,0,0,0,15283,15281,1,0,0,0,15283,15284,1,0,0,0,15284, +15286,1,0,0,0,15285,15283,1,0,0,0,15286,15287,5,2446,0,0,15287,15288,5,1761, +0,0,15288,15298,5,69,0,0,15289,15299,7,119,0,0,15290,15294,5,2445,0,0,15291, +15293,3,1630,815,0,15292,15291,1,0,0,0,15293,15296,1,0,0,0,15294,15292,1, +0,0,0,15294,15295,1,0,0,0,15295,15297,1,0,0,0,15296,15294,1,0,0,0,15297, +15299,5,2446,0,0,15298,15289,1,0,0,0,15298,15290,1,0,0,0,15299,15300,1,0, +0,0,15300,15298,1,0,0,0,15300,15301,1,0,0,0,15301,15322,1,0,0,0,15302,15303, +5,2445,0,0,15303,15304,3,1628,814,0,15304,15305,5,2446,0,0,15305,15306,5, +1761,0,0,15306,15317,5,69,0,0,15307,15318,7,119,0,0,15308,15318,3,1626,813, +0,15309,15313,5,2445,0,0,15310,15312,3,1630,815,0,15311,15310,1,0,0,0,15312, +15315,1,0,0,0,15313,15311,1,0,0,0,15313,15314,1,0,0,0,15314,15316,1,0,0, +0,15315,15313,1,0,0,0,15316,15318,5,2446,0,0,15317,15307,1,0,0,0,15317,15308, +1,0,0,0,15317,15309,1,0,0,0,15318,15319,1,0,0,0,15319,15317,1,0,0,0,15319, +15320,1,0,0,0,15320,15322,1,0,0,0,15321,15277,1,0,0,0,15321,15302,1,0,0, +0,15322,1633,1,0,0,0,15323,15324,5,978,0,0,15324,15325,5,866,0,0,15325,15326, +5,2445,0,0,15326,15327,3,1628,814,0,15327,15328,5,2446,0,0,15328,15329,5, +2445,0,0,15329,15330,3,1636,818,0,15330,15331,5,2446,0,0,15331,1635,1,0, +0,0,15332,15357,3,1190,595,0,15333,15334,7,192,0,0,15334,15357,5,2439,0, +0,15335,15336,5,1509,0,0,15336,15357,5,624,0,0,15337,15357,3,1644,822,0, +15338,15357,3,1640,820,0,15339,15357,3,1642,821,0,15340,15341,5,503,0,0, +15341,15357,3,1646,823,0,15342,15357,5,385,0,0,15343,15357,5,166,0,0,15344, +15349,5,166,0,0,15345,15349,5,1064,0,0,15346,15347,5,166,0,0,15347,15349, +5,1504,0,0,15348,15344,1,0,0,0,15348,15345,1,0,0,0,15348,15346,1,0,0,0,15349, +15351,1,0,0,0,15350,15352,3,884,442,0,15351,15350,1,0,0,0,15351,15352,1, +0,0,0,15352,15357,1,0,0,0,15353,15357,3,1278,639,0,15354,15357,3,1282,641, +0,15355,15357,3,1280,640,0,15356,15332,1,0,0,0,15356,15333,1,0,0,0,15356, +15335,1,0,0,0,15356,15337,1,0,0,0,15356,15338,1,0,0,0,15356,15339,1,0,0, +0,15356,15340,1,0,0,0,15356,15342,1,0,0,0,15356,15343,1,0,0,0,15356,15348, +1,0,0,0,15356,15353,1,0,0,0,15356,15354,1,0,0,0,15356,15355,1,0,0,0,15357, +15358,1,0,0,0,15358,15356,1,0,0,0,15358,15359,1,0,0,0,15359,1637,1,0,0,0, +15360,15361,7,17,0,0,15361,15362,5,1760,0,0,15362,15363,5,736,0,0,15363, +15386,5,1604,0,0,15364,15365,5,205,0,0,15365,15386,5,2439,0,0,15366,15367, +5,1371,0,0,15367,15386,5,2439,0,0,15368,15369,5,624,0,0,15369,15386,5,2439, +0,0,15370,15386,3,1644,822,0,15371,15386,3,1640,820,0,15372,15386,3,1642, +821,0,15373,15374,5,503,0,0,15374,15386,3,1646,823,0,15375,15386,5,385,0, +0,15376,15381,5,166,0,0,15377,15381,5,1064,0,0,15378,15379,5,166,0,0,15379, +15381,5,1504,0,0,15380,15376,1,0,0,0,15380,15377,1,0,0,0,15380,15378,1,0, +0,0,15381,15383,1,0,0,0,15382,15384,3,884,442,0,15383,15382,1,0,0,0,15383, +15384,1,0,0,0,15384,15386,1,0,0,0,15385,15360,1,0,0,0,15385,15364,1,0,0, +0,15385,15366,1,0,0,0,15385,15368,1,0,0,0,15385,15370,1,0,0,0,15385,15371, +1,0,0,0,15385,15372,1,0,0,0,15385,15373,1,0,0,0,15385,15375,1,0,0,0,15385, +15380,1,0,0,0,15386,15387,1,0,0,0,15387,15385,1,0,0,0,15387,15388,1,0,0, +0,15388,1639,1,0,0,0,15389,15390,7,193,0,0,15390,1641,1,0,0,0,15391,15397, +5,1072,0,0,15392,15394,5,258,0,0,15393,15395,7,194,0,0,15394,15393,1,0,0, +0,15394,15395,1,0,0,0,15395,15397,1,0,0,0,15396,15391,1,0,0,0,15396,15392, +1,0,0,0,15397,1643,1,0,0,0,15398,15404,5,1581,0,0,15399,15405,5,2404,0,0, +15400,15401,5,2407,0,0,15401,15405,5,2439,0,0,15402,15405,5,91,0,0,15403, +15405,5,1131,0,0,15404,15399,1,0,0,0,15404,15400,1,0,0,0,15404,15402,1,0, +0,0,15404,15403,1,0,0,0,15404,15405,1,0,0,0,15405,1645,1,0,0,0,15406,15407, +5,2244,0,0,15407,15409,5,2441,0,0,15408,15406,1,0,0,0,15408,15409,1,0,0, +0,15409,15413,1,0,0,0,15410,15411,5,683,0,0,15411,15412,5,160,0,0,15412, +15414,5,2478,0,0,15413,15410,1,0,0,0,15413,15414,1,0,0,0,15414,15416,1,0, +0,0,15415,15417,5,2441,0,0,15416,15415,1,0,0,0,15416,15417,1,0,0,0,15417, +15422,1,0,0,0,15418,15420,5,1135,0,0,15419,15418,1,0,0,0,15419,15420,1,0, +0,0,15420,15421,1,0,0,0,15421,15423,5,1611,0,0,15422,15419,1,0,0,0,15422, +15423,1,0,0,0,15423,1647,1,0,0,0,15424,15425,3,2392,1196,0,15425,1649,1, +0,0,0,15426,15427,3,2392,1196,0,15427,15428,5,2438,0,0,15428,15430,1,0,0, +0,15429,15426,1,0,0,0,15429,15430,1,0,0,0,15430,15434,1,0,0,0,15431,15432, +3,2392,1196,0,15432,15433,5,2438,0,0,15433,15435,1,0,0,0,15434,15431,1,0, +0,0,15434,15435,1,0,0,0,15435,15436,1,0,0,0,15436,15437,3,2392,1196,0,15437, +1651,1,0,0,0,15438,15459,3,1692,846,0,15439,15459,3,1682,841,0,15440,15443, +3,1622,811,0,15441,15443,3,1632,816,0,15442,15440,1,0,0,0,15442,15441,1, +0,0,0,15443,15455,1,0,0,0,15444,15445,5,2445,0,0,15445,15450,3,1654,827, +0,15446,15447,5,2451,0,0,15447,15449,3,1654,827,0,15448,15446,1,0,0,0,15449, +15452,1,0,0,0,15450,15448,1,0,0,0,15450,15451,1,0,0,0,15451,15453,1,0,0, +0,15452,15450,1,0,0,0,15453,15454,5,2446,0,0,15454,15456,1,0,0,0,15455,15444, +1,0,0,0,15455,15456,1,0,0,0,15456,15459,1,0,0,0,15457,15459,3,1038,519,0, +15458,15438,1,0,0,0,15458,15439,1,0,0,0,15458,15442,1,0,0,0,15458,15457, +1,0,0,0,15459,15460,1,0,0,0,15460,15458,1,0,0,0,15460,15461,1,0,0,0,15461, +1653,1,0,0,0,15462,15495,5,866,0,0,15463,15464,5,2445,0,0,15464,15465,3, +1628,814,0,15465,15466,5,2451,0,0,15466,15467,3,1628,814,0,15467,15468,1, +0,0,0,15468,15469,5,2446,0,0,15469,15470,5,1761,0,0,15470,15476,5,69,0,0, +15471,15477,7,119,0,0,15472,15473,5,2445,0,0,15473,15474,3,1630,815,0,15474, +15475,5,2446,0,0,15475,15477,1,0,0,0,15476,15471,1,0,0,0,15476,15472,1,0, +0,0,15477,15478,1,0,0,0,15478,15476,1,0,0,0,15478,15479,1,0,0,0,15479,15496, +1,0,0,0,15480,15481,5,2445,0,0,15481,15482,3,1628,814,0,15482,15483,5,2446, +0,0,15483,15484,5,1761,0,0,15484,15491,5,69,0,0,15485,15492,7,119,0,0,15486, +15492,3,1626,813,0,15487,15488,5,2445,0,0,15488,15489,3,1630,815,0,15489, +15490,5,2446,0,0,15490,15492,1,0,0,0,15491,15485,1,0,0,0,15491,15486,1,0, +0,0,15491,15487,1,0,0,0,15492,15493,1,0,0,0,15493,15491,1,0,0,0,15493,15494, +1,0,0,0,15494,15496,1,0,0,0,15495,15463,1,0,0,0,15495,15480,1,0,0,0,15496, +1655,1,0,0,0,15497,15498,4,828,10,0,15498,15499,5,2438,0,0,15499,15500,5, +618,0,0,15500,15507,3,2328,1164,0,15501,15502,5,2445,0,0,15502,15503,3,1658, +829,0,15503,15504,5,2451,0,0,15504,15505,3,1660,830,0,15505,15506,5,2446, +0,0,15506,15508,1,0,0,0,15507,15501,1,0,0,0,15507,15508,1,0,0,0,15508,1657, +1,0,0,0,15509,15510,3,2328,1164,0,15510,1659,1,0,0,0,15511,15512,3,2328, +1164,0,15512,1661,1,0,0,0,15513,15522,3,2328,1164,0,15514,15517,3,2364,1182, +0,15515,15517,3,2302,1151,0,15516,15514,1,0,0,0,15516,15515,1,0,0,0,15517, +15520,1,0,0,0,15518,15519,5,2370,0,0,15519,15521,3,1664,832,0,15520,15518, +1,0,0,0,15520,15521,1,0,0,0,15521,15523,1,0,0,0,15522,15516,1,0,0,0,15522, +15523,1,0,0,0,15523,15525,1,0,0,0,15524,15526,5,1707,0,0,15525,15524,1,0, +0,0,15525,15526,1,0,0,0,15526,15528,1,0,0,0,15527,15529,7,68,0,0,15528,15527, +1,0,0,0,15528,15529,1,0,0,0,15529,15537,1,0,0,0,15530,15533,5,387,0,0,15531, +15532,5,1257,0,0,15532,15534,5,1226,0,0,15533,15531,1,0,0,0,15533,15534, +1,0,0,0,15534,15535,1,0,0,0,15535,15538,3,2070,1035,0,15536,15538,3,1666, +833,0,15537,15530,1,0,0,0,15537,15536,1,0,0,0,15537,15538,1,0,0,0,15538, +15541,1,0,0,0,15539,15540,5,503,0,0,15540,15542,3,1646,823,0,15541,15539, +1,0,0,0,15541,15542,1,0,0,0,15542,15549,1,0,0,0,15543,15545,3,844,422,0, +15544,15543,1,0,0,0,15545,15546,1,0,0,0,15546,15544,1,0,0,0,15546,15547, +1,0,0,0,15547,15550,1,0,0,0,15548,15550,3,846,423,0,15549,15544,1,0,0,0, +15549,15548,1,0,0,0,15549,15550,1,0,0,0,15550,15552,1,0,0,0,15551,15553, +3,2234,1117,0,15552,15551,1,0,0,0,15552,15553,1,0,0,0,15553,1663,1,0,0,0, +15554,15555,3,2392,1196,0,15555,1665,1,0,0,0,15556,15564,5,638,0,0,15557, +15565,5,44,0,0,15558,15559,5,160,0,0,15559,15562,5,387,0,0,15560,15561,5, +1257,0,0,15561,15563,5,1226,0,0,15562,15560,1,0,0,0,15562,15563,1,0,0,0, +15563,15565,1,0,0,0,15564,15557,1,0,0,0,15564,15558,1,0,0,0,15564,15565, +1,0,0,0,15565,15566,1,0,0,0,15566,15567,5,69,0,0,15567,15569,5,685,0,0,15568, +15570,3,1668,834,0,15569,15568,1,0,0,0,15569,15570,1,0,0,0,15570,1667,1, +0,0,0,15571,15573,3,1670,835,0,15572,15571,1,0,0,0,15573,15574,1,0,0,0,15574, +15572,1,0,0,0,15574,15575,1,0,0,0,15575,15585,1,0,0,0,15576,15578,5,2445, +0,0,15577,15579,3,1670,835,0,15578,15577,1,0,0,0,15579,15580,1,0,0,0,15580, +15578,1,0,0,0,15580,15581,1,0,0,0,15581,15582,1,0,0,0,15582,15583,5,2446, +0,0,15583,15585,1,0,0,0,15584,15572,1,0,0,0,15584,15576,1,0,0,0,15585,1669, +1,0,0,0,15586,15587,5,1735,0,0,15587,15591,5,2306,0,0,15588,15592,3,2384, +1192,0,15589,15590,5,856,0,0,15590,15592,5,2256,0,0,15591,15588,1,0,0,0, +15591,15589,1,0,0,0,15592,15615,1,0,0,0,15593,15594,5,705,0,0,15594,15595, +5,160,0,0,15595,15615,3,2384,1192,0,15596,15597,5,930,0,0,15597,15615,3, +2384,1192,0,15598,15615,5,1119,0,0,15599,15600,5,958,0,0,15600,15615,3,2384, +1192,0,15601,15615,5,1122,0,0,15602,15615,5,346,0,0,15603,15615,5,1082,0, +0,15604,15605,5,166,0,0,15605,15615,3,2384,1192,0,15606,15615,5,1064,0,0, +15607,15615,5,1301,0,0,15608,15615,5,1138,0,0,15609,15610,5,1618,0,0,15610, +15615,7,48,0,0,15611,15615,5,1179,0,0,15612,15615,5,812,0,0,15613,15615, +5,1112,0,0,15614,15586,1,0,0,0,15614,15593,1,0,0,0,15614,15596,1,0,0,0,15614, +15598,1,0,0,0,15614,15599,1,0,0,0,15614,15601,1,0,0,0,15614,15602,1,0,0, +0,15614,15603,1,0,0,0,15614,15604,1,0,0,0,15614,15606,1,0,0,0,15614,15607, +1,0,0,0,15614,15608,1,0,0,0,15614,15609,1,0,0,0,15614,15611,1,0,0,0,15614, +15612,1,0,0,0,15614,15613,1,0,0,0,15615,1671,1,0,0,0,15616,15622,3,2328, +1164,0,15617,15620,3,2364,1182,0,15618,15619,5,2370,0,0,15619,15621,3,1664, +832,0,15620,15618,1,0,0,0,15620,15621,1,0,0,0,15621,15623,1,0,0,0,15622, +15617,1,0,0,0,15622,15623,1,0,0,0,15623,15625,1,0,0,0,15624,15626,7,68,0, +0,15625,15624,1,0,0,0,15625,15626,1,0,0,0,15626,15628,1,0,0,0,15627,15629, +3,1674,837,0,15628,15627,1,0,0,0,15628,15629,1,0,0,0,15629,15631,1,0,0,0, +15630,15632,5,2286,0,0,15631,15630,1,0,0,0,15631,15632,1,0,0,0,15632,15634, +1,0,0,0,15633,15635,3,1680,840,0,15634,15633,1,0,0,0,15634,15635,1,0,0,0, +15635,15644,1,0,0,0,15636,15637,5,2201,0,0,15637,15642,5,112,0,0,15638,15639, +5,334,0,0,15639,15643,5,481,0,0,15640,15641,5,481,0,0,15641,15643,3,1448, +724,0,15642,15638,1,0,0,0,15642,15640,1,0,0,0,15643,15645,1,0,0,0,15644, +15636,1,0,0,0,15644,15645,1,0,0,0,15645,15655,1,0,0,0,15646,15647,5,2201, +0,0,15647,15648,5,114,0,0,15648,15653,5,2306,0,0,15649,15650,7,195,0,0,15650, +15654,5,481,0,0,15651,15652,5,481,0,0,15652,15654,3,1448,724,0,15653,15649, +1,0,0,0,15653,15651,1,0,0,0,15654,15656,1,0,0,0,15655,15646,1,0,0,0,15655, +15656,1,0,0,0,15656,15660,1,0,0,0,15657,15659,3,844,422,0,15658,15657,1, +0,0,0,15659,15662,1,0,0,0,15660,15658,1,0,0,0,15660,15661,1,0,0,0,15661, +15664,1,0,0,0,15662,15660,1,0,0,0,15663,15665,3,1678,839,0,15664,15663,1, +0,0,0,15664,15665,1,0,0,0,15665,1673,1,0,0,0,15666,15679,3,1676,838,0,15667, +15669,5,638,0,0,15668,15670,5,44,0,0,15669,15668,1,0,0,0,15669,15670,1,0, +0,0,15670,15672,1,0,0,0,15671,15667,1,0,0,0,15671,15672,1,0,0,0,15672,15673, +1,0,0,0,15673,15674,5,69,0,0,15674,15675,5,2445,0,0,15675,15676,3,2070,1035, +0,15676,15677,5,2446,0,0,15677,15679,1,0,0,0,15678,15666,1,0,0,0,15678,15671, +1,0,0,0,15679,1675,1,0,0,0,15680,15688,5,638,0,0,15681,15689,5,44,0,0,15682, +15683,5,160,0,0,15683,15686,5,387,0,0,15684,15685,5,1257,0,0,15685,15687, +5,1226,0,0,15686,15684,1,0,0,0,15686,15687,1,0,0,0,15687,15689,1,0,0,0,15688, +15681,1,0,0,0,15688,15682,1,0,0,0,15688,15689,1,0,0,0,15689,15690,1,0,0, +0,15690,15691,5,69,0,0,15691,15701,5,685,0,0,15692,15697,5,2445,0,0,15693, +15696,3,326,163,0,15694,15696,3,324,162,0,15695,15693,1,0,0,0,15695,15694, +1,0,0,0,15696,15699,1,0,0,0,15697,15695,1,0,0,0,15697,15698,1,0,0,0,15698, +15700,1,0,0,0,15699,15697,1,0,0,0,15700,15702,5,2446,0,0,15701,15692,1,0, +0,0,15701,15702,1,0,0,0,15702,1677,1,0,0,0,15703,15704,5,160,0,0,15704,15705, +5,2235,0,0,15705,15706,5,618,0,0,15706,15707,5,1744,0,0,15707,1679,1,0,0, +0,15708,15709,5,528,0,0,15709,15714,5,2244,0,0,15710,15711,7,195,0,0,15711, +15715,5,481,0,0,15712,15713,5,481,0,0,15713,15715,3,1448,724,0,15714,15710, +1,0,0,0,15714,15712,1,0,0,0,15715,1681,1,0,0,0,15716,15717,5,1011,0,0,15717, +15720,5,2081,0,0,15718,15721,3,1684,842,0,15719,15721,5,240,0,0,15720,15718, +1,0,0,0,15720,15719,1,0,0,0,15721,15723,1,0,0,0,15722,15724,3,1686,843,0, +15723,15722,1,0,0,0,15723,15724,1,0,0,0,15724,15726,1,0,0,0,15725,15727, +7,196,0,0,15726,15725,1,0,0,0,15726,15727,1,0,0,0,15727,15728,1,0,0,0,15728, +15729,5,1761,0,0,15729,15730,5,69,0,0,15730,15744,3,2330,1165,0,15731,15738, +5,2445,0,0,15732,15733,5,2445,0,0,15733,15734,3,1052,526,0,15734,15735,5, +2446,0,0,15735,15739,1,0,0,0,15736,15739,3,1196,598,0,15737,15739,3,1652, +826,0,15738,15732,1,0,0,0,15738,15736,1,0,0,0,15738,15737,1,0,0,0,15739, +15740,1,0,0,0,15740,15738,1,0,0,0,15740,15741,1,0,0,0,15741,15742,1,0,0, +0,15742,15743,5,2446,0,0,15743,15745,1,0,0,0,15744,15731,1,0,0,0,15744,15745, +1,0,0,0,15745,15751,1,0,0,0,15746,15748,5,1584,0,0,15747,15749,5,69,0,0, +15748,15747,1,0,0,0,15748,15749,1,0,0,0,15749,15750,1,0,0,0,15750,15752, +7,191,0,0,15751,15746,1,0,0,0,15751,15752,1,0,0,0,15752,1683,1,0,0,0,15753, +15754,3,2398,1199,0,15754,1685,1,0,0,0,15755,15757,5,484,0,0,15756,15755, +1,0,0,0,15756,15757,1,0,0,0,15757,15758,1,0,0,0,15758,15759,5,783,0,0,15759, +15761,5,1244,0,0,15760,15762,5,2164,0,0,15761,15760,1,0,0,0,15761,15762, +1,0,0,0,15762,15763,1,0,0,0,15763,15764,5,2445,0,0,15764,15765,3,2302,1151, +0,15765,15766,5,2446,0,0,15766,15775,1,0,0,0,15767,15769,5,1202,0,0,15768, +15767,1,0,0,0,15768,15769,1,0,0,0,15769,15770,1,0,0,0,15770,15771,5,1778, +0,0,15771,15772,5,82,0,0,15772,15773,5,38,0,0,15773,15775,5,846,0,0,15774, +15756,1,0,0,0,15774,15768,1,0,0,0,15775,1687,1,0,0,0,15776,15779,3,2398, +1199,0,15777,15779,5,2442,0,0,15778,15776,1,0,0,0,15778,15777,1,0,0,0,15779, +1689,1,0,0,0,15780,15781,5,1787,0,0,15781,15784,5,886,0,0,15782,15785,3, +1274,637,0,15783,15785,3,1276,638,0,15784,15782,1,0,0,0,15784,15783,1,0, +0,0,15785,1691,1,0,0,0,15786,15787,5,237,0,0,15787,15788,3,2398,1199,0,15788, +15789,3,1686,843,0,15789,1693,1,0,0,0,15790,15791,5,21,0,0,15791,15801,5, +2445,0,0,15792,15797,3,850,425,0,15793,15794,5,2451,0,0,15794,15796,3,850, +425,0,15795,15793,1,0,0,0,15796,15799,1,0,0,0,15797,15795,1,0,0,0,15797, +15798,1,0,0,0,15798,15802,1,0,0,0,15799,15797,1,0,0,0,15800,15802,3,848, +424,0,15801,15792,1,0,0,0,15801,15800,1,0,0,0,15802,15803,1,0,0,0,15803, +15804,5,2446,0,0,15804,15845,1,0,0,0,15805,15808,5,21,0,0,15806,15809,3, +850,425,0,15807,15809,3,848,424,0,15808,15806,1,0,0,0,15808,15807,1,0,0, +0,15809,15845,1,0,0,0,15810,15827,5,978,0,0,15811,15812,5,284,0,0,15812, +15828,3,2298,1149,0,15813,15814,5,1449,0,0,15814,15828,5,814,0,0,15815,15816, +5,2181,0,0,15816,15817,5,2445,0,0,15817,15822,3,2328,1164,0,15818,15819, +5,2451,0,0,15819,15821,3,2328,1164,0,15820,15818,1,0,0,0,15821,15824,1,0, +0,0,15822,15820,1,0,0,0,15822,15823,1,0,0,0,15823,15825,1,0,0,0,15824,15822, +1,0,0,0,15825,15826,5,2446,0,0,15826,15828,1,0,0,0,15827,15811,1,0,0,0,15827, +15813,1,0,0,0,15827,15815,1,0,0,0,15828,15829,1,0,0,0,15829,15831,3,852, +426,0,15830,15832,5,179,0,0,15831,15830,1,0,0,0,15831,15832,1,0,0,0,15832, +15845,1,0,0,0,15833,15834,5,1557,0,0,15834,15835,5,284,0,0,15835,15836,3, +1696,848,0,15836,15837,5,2139,0,0,15837,15838,3,1698,849,0,15838,15845,1, +0,0,0,15839,15841,3,1700,850,0,15840,15839,1,0,0,0,15841,15842,1,0,0,0,15842, +15840,1,0,0,0,15842,15843,1,0,0,0,15843,15845,1,0,0,0,15844,15790,1,0,0, +0,15844,15805,1,0,0,0,15844,15810,1,0,0,0,15844,15833,1,0,0,0,15844,15840, +1,0,0,0,15845,1695,1,0,0,0,15846,15847,3,2298,1149,0,15847,1697,1,0,0,0, +15848,15849,3,2298,1149,0,15849,1699,1,0,0,0,15850,15867,5,467,0,0,15851, +15852,5,1449,0,0,15852,15868,5,814,0,0,15853,15854,5,2181,0,0,15854,15855, +5,2445,0,0,15855,15860,3,2328,1164,0,15856,15857,5,2451,0,0,15857,15859, +3,2328,1164,0,15858,15856,1,0,0,0,15859,15862,1,0,0,0,15860,15858,1,0,0, +0,15860,15861,1,0,0,0,15861,15863,1,0,0,0,15862,15860,1,0,0,0,15863,15864, +5,2446,0,0,15864,15868,1,0,0,0,15865,15866,5,284,0,0,15866,15868,3,2298, +1149,0,15867,15851,1,0,0,0,15867,15853,1,0,0,0,15867,15865,1,0,0,0,15868, +15870,1,0,0,0,15869,15871,5,179,0,0,15870,15869,1,0,0,0,15870,15871,1,0, +0,0,15871,15874,1,0,0,0,15872,15873,7,197,0,0,15873,15875,5,715,0,0,15874, +15872,1,0,0,0,15874,15875,1,0,0,0,15875,15877,1,0,0,0,15876,15878,5,1254, +0,0,15877,15876,1,0,0,0,15877,15878,1,0,0,0,15878,1701,1,0,0,0,15879,15880, +5,200,0,0,15880,15881,5,2445,0,0,15881,15882,3,2066,1033,0,15882,15884,5, +2446,0,0,15883,15885,5,427,0,0,15884,15883,1,0,0,0,15884,15885,1,0,0,0,15885, +1703,1,0,0,0,15886,15887,5,616,0,0,15887,15888,5,814,0,0,15888,15889,3,2348, +1174,0,15889,15891,3,1706,853,0,15890,15892,3,1708,854,0,15891,15890,1,0, +0,0,15891,15892,1,0,0,0,15892,1705,1,0,0,0,15893,15894,5,1526,0,0,15894, +15896,3,2330,1165,0,15895,15897,3,2348,1174,0,15896,15895,1,0,0,0,15896, +15897,1,0,0,0,15897,15905,1,0,0,0,15898,15899,5,1257,0,0,15899,15903,5,401, +0,0,15900,15904,5,179,0,0,15901,15902,5,1669,0,0,15902,15904,5,1226,0,0, +15903,15900,1,0,0,0,15903,15901,1,0,0,0,15904,15906,1,0,0,0,15905,15898, +1,0,0,0,15905,15906,1,0,0,0,15906,1707,1,0,0,0,15907,15908,5,1257,0,0,15908, +15912,5,401,0,0,15909,15913,5,179,0,0,15910,15911,5,1669,0,0,15911,15913, +5,1226,0,0,15912,15909,1,0,0,0,15912,15910,1,0,0,0,15913,1709,1,0,0,0,15914, +15915,5,380,0,0,15915,15917,3,1732,866,0,15916,15914,1,0,0,0,15916,15917, +1,0,0,0,15917,15918,1,0,0,0,15918,15919,5,113,0,0,15919,15926,3,1762,881, +0,15920,15922,5,533,0,0,15921,15923,3,1814,907,0,15922,15921,1,0,0,0,15923, +15924,1,0,0,0,15924,15922,1,0,0,0,15924,15925,1,0,0,0,15925,15927,1,0,0, +0,15926,15920,1,0,0,0,15926,15927,1,0,0,0,15927,15928,1,0,0,0,15928,15929, +5,506,0,0,15929,1711,1,0,0,0,15930,15931,5,88,0,0,15931,15932,7,90,0,0,15932, +1713,1,0,0,0,15933,15936,3,1716,858,0,15934,15936,3,1718,859,0,15935,15933, +1,0,0,0,15935,15934,1,0,0,0,15936,1715,1,0,0,0,15937,15938,5,821,0,0,15938, +15939,5,790,0,0,15939,15940,5,995,0,0,15940,15941,5,2441,0,0,15941,1717, +1,0,0,0,15942,15943,5,821,0,0,15943,15946,5,213,0,0,15944,15946,5,558,0, +0,15945,15942,1,0,0,0,15945,15944,1,0,0,0,15946,15958,1,0,0,0,15947,15948, +5,995,0,0,15948,15949,3,2392,1196,0,15949,15950,5,847,0,0,15950,15951,3, +2390,1195,0,15951,15959,1,0,0,0,15952,15953,5,847,0,0,15953,15956,3,2390, +1195,0,15954,15955,5,995,0,0,15955,15957,3,2392,1196,0,15956,15954,1,0,0, +0,15956,15957,1,0,0,0,15957,15959,1,0,0,0,15958,15947,1,0,0,0,15958,15952, +1,0,0,0,15959,15961,1,0,0,0,15960,15962,3,1720,860,0,15961,15960,1,0,0,0, +15961,15962,1,0,0,0,15962,15965,1,0,0,0,15963,15964,5,2306,0,0,15964,15966, +5,294,0,0,15965,15963,1,0,0,0,15965,15966,1,0,0,0,15966,15968,1,0,0,0,15967, +15969,3,1722,861,0,15968,15967,1,0,0,0,15968,15969,1,0,0,0,15969,1719,1, +0,0,0,15970,15971,5,34,0,0,15971,15972,5,736,0,0,15972,15973,5,2445,0,0, +15973,15974,3,2068,1034,0,15974,15975,5,2446,0,0,15975,1721,1,0,0,0,15976, +15977,5,1333,0,0,15977,15978,5,2445,0,0,15978,15983,3,1724,862,0,15979,15980, +5,2451,0,0,15980,15982,3,1724,862,0,15981,15979,1,0,0,0,15982,15985,1,0, +0,0,15983,15981,1,0,0,0,15983,15984,1,0,0,0,15984,15986,1,0,0,0,15985,15983, +1,0,0,0,15986,15987,5,2446,0,0,15987,1723,1,0,0,0,15988,16009,5,294,0,0, +15989,15992,5,1646,0,0,15990,15993,5,2432,0,0,15991,15993,3,1726,863,0,15992, +15990,1,0,0,0,15992,15991,1,0,0,0,15992,15993,1,0,0,0,15993,16009,1,0,0, +0,15994,15997,3,2282,1141,0,15995,15997,5,1584,0,0,15996,15994,1,0,0,0,15996, +15995,1,0,0,0,15997,15999,1,0,0,0,15998,16000,3,1726,863,0,15999,15998,1, +0,0,0,15999,16000,1,0,0,0,16000,16003,1,0,0,0,16001,16002,5,160,0,0,16002, +16004,5,1525,0,0,16003,16001,1,0,0,0,16003,16004,1,0,0,0,16004,16006,1,0, +0,0,16005,16007,3,2398,1199,0,16006,16005,1,0,0,0,16006,16007,1,0,0,0,16007, +16009,1,0,0,0,16008,15988,1,0,0,0,16008,15989,1,0,0,0,16008,15996,1,0,0, +0,16009,1725,1,0,0,0,16010,16012,5,731,0,0,16011,16013,7,198,0,0,16012,16011, +1,0,0,0,16012,16013,1,0,0,0,16013,16020,1,0,0,0,16014,16020,5,842,0,0,16015, +16020,5,2426,0,0,16016,16020,5,2428,0,0,16017,16020,5,2424,0,0,16018,16020, +5,2425,0,0,16019,16010,1,0,0,0,16019,16014,1,0,0,0,16019,16015,1,0,0,0,16019, +16016,1,0,0,0,16019,16017,1,0,0,0,16019,16018,1,0,0,0,16020,1727,1,0,0,0, +16021,16025,3,2282,1141,0,16022,16024,7,199,0,0,16023,16022,1,0,0,0,16024, +16027,1,0,0,0,16025,16023,1,0,0,0,16025,16026,1,0,0,0,16026,16029,1,0,0, +0,16027,16025,1,0,0,0,16028,16030,3,2362,1181,0,16029,16028,1,0,0,0,16029, +16030,1,0,0,0,16030,16032,1,0,0,0,16031,16033,3,1730,865,0,16032,16031,1, +0,0,0,16032,16033,1,0,0,0,16033,1729,1,0,0,0,16034,16035,7,200,0,0,16035, +16036,3,2070,1035,0,16036,1731,1,0,0,0,16037,16039,3,1734,867,0,16038,16037, +1,0,0,0,16039,16040,1,0,0,0,16040,16038,1,0,0,0,16040,16041,1,0,0,0,16041, +1733,1,0,0,0,16042,16054,3,1746,873,0,16043,16054,3,1744,872,0,16044,16054, +3,162,81,0,16045,16054,3,164,82,0,16046,16054,3,1736,868,0,16047,16054,3, +1738,869,0,16048,16054,3,1740,870,0,16049,16054,3,1754,877,0,16050,16054, +3,178,89,0,16051,16054,3,176,88,0,16052,16054,3,1806,903,0,16053,16042,1, +0,0,0,16053,16043,1,0,0,0,16053,16044,1,0,0,0,16053,16045,1,0,0,0,16053, +16046,1,0,0,0,16053,16047,1,0,0,0,16053,16048,1,0,0,0,16053,16049,1,0,0, +0,16053,16050,1,0,0,0,16053,16051,1,0,0,0,16053,16052,1,0,0,0,16054,1735, +1,0,0,0,16055,16057,3,2390,1195,0,16056,16058,5,282,0,0,16057,16056,1,0, +0,0,16057,16058,1,0,0,0,16058,16059,1,0,0,0,16059,16064,3,2362,1181,0,16060, +16062,5,1202,0,0,16061,16060,1,0,0,0,16061,16062,1,0,0,0,16062,16063,1,0, +0,0,16063,16065,5,1226,0,0,16064,16061,1,0,0,0,16064,16065,1,0,0,0,16065, +16067,1,0,0,0,16066,16068,3,1730,865,0,16067,16066,1,0,0,0,16067,16068,1, +0,0,0,16068,16069,1,0,0,0,16069,16070,5,2467,0,0,16070,1737,1,0,0,0,16071, +16072,5,1783,0,0,16072,16073,3,2390,1195,0,16073,16074,5,783,0,0,16074,16080, +3,2362,1181,0,16075,16076,5,1493,0,0,16076,16077,3,2070,1035,0,16077,16078, +5,2437,0,0,16078,16079,3,2070,1035,0,16079,16081,1,0,0,0,16080,16075,1,0, +0,0,16080,16081,1,0,0,0,16081,16084,1,0,0,0,16082,16083,5,1202,0,0,16083, +16085,5,1226,0,0,16084,16082,1,0,0,0,16084,16085,1,0,0,0,16085,16086,1,0, +0,0,16086,16087,5,2467,0,0,16087,1739,1,0,0,0,16088,16089,5,341,0,0,16089, +16101,3,2390,1195,0,16090,16091,5,2445,0,0,16091,16096,3,1742,871,0,16092, +16093,5,2451,0,0,16093,16095,3,1742,871,0,16094,16092,1,0,0,0,16095,16098, +1,0,0,0,16096,16094,1,0,0,0,16096,16097,1,0,0,0,16097,16099,1,0,0,0,16098, +16096,1,0,0,0,16099,16100,5,2446,0,0,16100,16102,1,0,0,0,16101,16090,1,0, +0,0,16101,16102,1,0,0,0,16102,16105,1,0,0,0,16103,16104,5,1584,0,0,16104, +16106,3,2362,1181,0,16105,16103,1,0,0,0,16105,16106,1,0,0,0,16106,16109, +1,0,0,0,16107,16108,5,783,0,0,16108,16110,3,1862,931,0,16109,16107,1,0,0, +0,16109,16110,1,0,0,0,16110,16111,1,0,0,0,16111,16112,5,2467,0,0,16112,1741, +1,0,0,0,16113,16118,3,2282,1141,0,16114,16116,5,736,0,0,16115,16114,1,0, +0,0,16115,16116,1,0,0,0,16116,16117,1,0,0,0,16117,16119,3,2362,1181,0,16118, +16115,1,0,0,0,16118,16119,1,0,0,0,16119,16121,1,0,0,0,16120,16122,3,1730, +865,0,16121,16120,1,0,0,0,16121,16122,1,0,0,0,16122,1743,1,0,0,0,16123,16124, +3,2390,1195,0,16124,16125,5,533,0,0,16125,16126,5,2467,0,0,16126,1745,1, +0,0,0,16127,16168,5,1431,0,0,16128,16169,5,1658,0,0,16129,16169,5,96,0,0, +16130,16131,5,534,0,0,16131,16132,5,2445,0,0,16132,16133,3,2306,1153,0,16133, +16134,5,2451,0,0,16134,16135,3,2386,1193,0,16135,16136,5,2446,0,0,16136, +16169,1,0,0,0,16137,16138,5,742,0,0,16138,16139,5,2445,0,0,16139,16140,3, +2390,1195,0,16140,16141,5,2451,0,0,16141,16142,3,2070,1035,0,16142,16143, +5,2446,0,0,16143,16169,1,0,0,0,16144,16145,5,1575,0,0,16145,16148,5,2445, +0,0,16146,16149,3,2390,1195,0,16147,16149,5,387,0,0,16148,16146,1,0,0,0, +16148,16147,1,0,0,0,16149,16152,1,0,0,0,16150,16151,5,2451,0,0,16151,16153, +3,2390,1195,0,16152,16150,1,0,0,0,16153,16154,1,0,0,0,16154,16152,1,0,0, +0,16154,16155,1,0,0,0,16155,16156,1,0,0,0,16156,16157,5,2446,0,0,16157,16169, +1,0,0,0,16158,16159,5,407,0,0,16159,16160,5,2445,0,0,16160,16163,3,2390, +1195,0,16161,16162,5,2451,0,0,16162,16164,5,2441,0,0,16163,16161,1,0,0,0, +16163,16164,1,0,0,0,16164,16165,1,0,0,0,16165,16166,5,2446,0,0,16166,16169, +1,0,0,0,16167,16169,5,2169,0,0,16168,16128,1,0,0,0,16168,16129,1,0,0,0,16168, +16130,1,0,0,0,16168,16137,1,0,0,0,16168,16144,1,0,0,0,16168,16158,1,0,0, +0,16168,16167,1,0,0,0,16169,16170,1,0,0,0,16170,16171,5,2467,0,0,16171,1747, +1,0,0,0,16172,16173,5,1510,0,0,16173,16174,5,2445,0,0,16174,16179,3,1750, +875,0,16175,16176,5,2451,0,0,16176,16178,3,1750,875,0,16177,16175,1,0,0, +0,16178,16181,1,0,0,0,16179,16177,1,0,0,0,16179,16180,1,0,0,0,16180,16182, +1,0,0,0,16181,16179,1,0,0,0,16182,16183,5,2446,0,0,16183,1749,1,0,0,0,16184, +16186,3,2328,1164,0,16185,16187,3,2362,1181,0,16186,16185,1,0,0,0,16186, +16187,1,0,0,0,16187,16190,1,0,0,0,16188,16189,5,1202,0,0,16189,16191,5,1226, +0,0,16190,16188,1,0,0,0,16190,16191,1,0,0,0,16191,16193,1,0,0,0,16192,16194, +3,1730,865,0,16193,16192,1,0,0,0,16193,16194,1,0,0,0,16194,1751,1,0,0,0, +16195,16196,5,1528,0,0,16196,16199,5,341,0,0,16197,16198,5,1584,0,0,16198, +16200,3,2362,1181,0,16199,16197,1,0,0,0,16199,16200,1,0,0,0,16200,1753,1, +0,0,0,16201,16202,5,2164,0,0,16202,16203,3,2390,1195,0,16203,16208,5,783, +0,0,16204,16209,3,1756,878,0,16205,16209,3,1760,880,0,16206,16209,3,1748, +874,0,16207,16209,3,1752,876,0,16208,16204,1,0,0,0,16208,16205,1,0,0,0,16208, +16206,1,0,0,0,16208,16207,1,0,0,0,16209,16210,1,0,0,0,16210,16211,5,2467, +0,0,16211,1755,1,0,0,0,16212,16213,5,2081,0,0,16213,16214,5,1244,0,0,16214, +16217,3,2362,1181,0,16215,16216,5,1202,0,0,16216,16218,5,1226,0,0,16217, +16215,1,0,0,0,16217,16218,1,0,0,0,16218,16220,1,0,0,0,16219,16221,3,1758, +879,0,16220,16219,1,0,0,0,16220,16221,1,0,0,0,16221,1757,1,0,0,0,16222,16225, +5,711,0,0,16223,16225,5,715,0,0,16224,16222,1,0,0,0,16224,16223,1,0,0,0, +16225,16226,1,0,0,0,16226,16227,5,160,0,0,16227,16228,3,2362,1181,0,16228, +1759,1,0,0,0,16229,16235,5,2265,0,0,16230,16232,5,2267,0,0,16231,16230,1, +0,0,0,16231,16232,1,0,0,0,16232,16233,1,0,0,0,16233,16235,5,68,0,0,16234, +16229,1,0,0,0,16234,16231,1,0,0,0,16235,16236,1,0,0,0,16236,16237,5,2445, +0,0,16237,16238,3,2070,1035,0,16238,16239,5,2446,0,0,16239,16240,5,1244, +0,0,16240,16243,3,2362,1181,0,16241,16242,5,1202,0,0,16242,16244,5,1226, +0,0,16243,16241,1,0,0,0,16243,16244,1,0,0,0,16244,1761,1,0,0,0,16245,16247, +3,1746,873,0,16246,16245,1,0,0,0,16247,16250,1,0,0,0,16248,16246,1,0,0,0, +16248,16249,1,0,0,0,16249,16251,1,0,0,0,16250,16248,1,0,0,0,16251,16252, +3,1766,883,0,16252,16253,7,201,0,0,16253,16257,1,0,0,0,16254,16257,3,1764, +882,0,16255,16257,3,1806,903,0,16256,16248,1,0,0,0,16256,16254,1,0,0,0,16256, +16255,1,0,0,0,16257,16258,1,0,0,0,16258,16256,1,0,0,0,16258,16259,1,0,0, +0,16259,1763,1,0,0,0,16260,16261,5,2465,0,0,16261,16262,5,2465,0,0,16262, +16263,3,2300,1150,0,16263,16264,5,2464,0,0,16264,16265,5,2464,0,0,16265, +1765,1,0,0,0,16266,16284,3,1812,906,0,16267,16284,3,1820,910,0,16268,16284, +3,1768,884,0,16269,16284,3,1770,885,0,16270,16284,3,1772,886,0,16271,16284, +3,1774,887,0,16272,16284,3,1776,888,0,16273,16284,3,1782,891,0,16274,16284, +3,1786,893,0,16275,16284,3,1796,898,0,16276,16284,3,1798,899,0,16277,16284, +3,1800,900,0,16278,16284,3,2112,1056,0,16279,16284,3,1822,911,0,16280,16284, +3,1802,901,0,16281,16284,3,1804,902,0,16282,16284,3,762,381,0,16283,16266, +1,0,0,0,16283,16267,1,0,0,0,16283,16268,1,0,0,0,16283,16269,1,0,0,0,16283, +16270,1,0,0,0,16283,16271,1,0,0,0,16283,16272,1,0,0,0,16283,16273,1,0,0, +0,16283,16274,1,0,0,0,16283,16275,1,0,0,0,16283,16276,1,0,0,0,16283,16277, +1,0,0,0,16283,16278,1,0,0,0,16283,16279,1,0,0,0,16283,16280,1,0,0,0,16283, +16281,1,0,0,0,16283,16282,1,0,0,0,16284,1767,1,0,0,0,16285,16288,3,2372, +1186,0,16286,16288,3,2370,1185,0,16287,16285,1,0,0,0,16287,16286,1,0,0,0, +16288,16289,1,0,0,0,16289,16290,5,2454,0,0,16290,16291,3,2070,1035,0,16291, +1769,1,0,0,0,16292,16294,5,295,0,0,16293,16295,3,2300,1150,0,16294,16293, +1,0,0,0,16294,16295,1,0,0,0,16295,16298,1,0,0,0,16296,16297,5,2298,0,0,16297, +16299,3,2066,1033,0,16298,16296,1,0,0,0,16298,16299,1,0,0,0,16299,1771,1, +0,0,0,16300,16302,5,545,0,0,16301,16303,3,2300,1150,0,16302,16301,1,0,0, +0,16302,16303,1,0,0,0,16303,16306,1,0,0,0,16304,16305,5,2298,0,0,16305,16307, +3,2066,1033,0,16306,16304,1,0,0,0,16306,16307,1,0,0,0,16307,1773,1,0,0,0, +16308,16309,5,644,0,0,16309,16310,3,2300,1150,0,16310,1775,1,0,0,0,16311, +16312,5,689,0,0,16312,16313,3,2066,1033,0,16313,16314,5,2097,0,0,16314,16318, +3,1762,881,0,16315,16317,3,1778,889,0,16316,16315,1,0,0,0,16317,16320,1, +0,0,0,16318,16316,1,0,0,0,16318,16319,1,0,0,0,16319,16322,1,0,0,0,16320, +16318,1,0,0,0,16321,16323,3,1780,890,0,16322,16321,1,0,0,0,16322,16323,1, +0,0,0,16323,16324,1,0,0,0,16324,16325,5,506,0,0,16325,16326,5,689,0,0,16326, +1777,1,0,0,0,16327,16328,5,490,0,0,16328,16329,3,2066,1033,0,16329,16330, +5,2097,0,0,16330,16331,3,1762,881,0,16331,1779,1,0,0,0,16332,16333,5,489, +0,0,16333,16334,3,1762,881,0,16334,1781,1,0,0,0,16335,16337,3,1764,882,0, +16336,16335,1,0,0,0,16336,16337,1,0,0,0,16337,16342,1,0,0,0,16338,16339, +5,2300,0,0,16339,16343,3,2066,1033,0,16340,16341,5,618,0,0,16341,16343,3, +1784,892,0,16342,16338,1,0,0,0,16342,16340,1,0,0,0,16342,16343,1,0,0,0,16343, +16344,1,0,0,0,16344,16345,5,892,0,0,16345,16346,3,1762,881,0,16346,16347, +5,506,0,0,16347,16349,5,892,0,0,16348,16350,3,2300,1150,0,16349,16348,1, +0,0,0,16349,16350,1,0,0,0,16350,1783,1,0,0,0,16351,16352,3,2316,1158,0,16352, +16354,5,736,0,0,16353,16355,5,1586,0,0,16354,16353,1,0,0,0,16354,16355,1, +0,0,0,16355,16356,1,0,0,0,16356,16357,3,1792,896,0,16357,16358,5,2437,0, +0,16358,16359,3,1794,897,0,16359,16377,1,0,0,0,16360,16361,3,2320,1160,0, +16361,16374,5,736,0,0,16362,16368,3,2318,1159,0,16363,16365,5,2445,0,0,16364, +16366,3,2068,1034,0,16365,16364,1,0,0,0,16365,16366,1,0,0,0,16366,16367, +1,0,0,0,16367,16369,5,2446,0,0,16368,16363,1,0,0,0,16368,16369,1,0,0,0,16369, +16375,1,0,0,0,16370,16371,5,2445,0,0,16371,16372,3,1862,931,0,16372,16373, +5,2446,0,0,16373,16375,1,0,0,0,16374,16362,1,0,0,0,16374,16370,1,0,0,0,16375, +16377,1,0,0,0,16376,16351,1,0,0,0,16376,16360,1,0,0,0,16377,1785,1,0,0,0, +16378,16379,5,613,0,0,16379,16380,3,2316,1158,0,16380,16381,5,736,0,0,16381, +16384,3,1788,894,0,16382,16383,5,1615,0,0,16383,16385,5,535,0,0,16384,16382, +1,0,0,0,16384,16385,1,0,0,0,16385,16386,1,0,0,0,16386,16387,3,1828,914,0, +16387,1787,1,0,0,0,16388,16389,3,1792,896,0,16389,16390,5,2437,0,0,16390, +16391,3,1794,897,0,16391,16402,1,0,0,0,16392,16393,5,732,0,0,16393,16394, +5,1244,0,0,16394,16396,3,2372,1186,0,16395,16397,3,1790,895,0,16396,16395, +1,0,0,0,16396,16397,1,0,0,0,16397,16402,1,0,0,0,16398,16399,5,2255,0,0,16399, +16400,5,1244,0,0,16400,16402,3,2316,1158,0,16401,16388,1,0,0,0,16401,16392, +1,0,0,0,16401,16398,1,0,0,0,16402,1789,1,0,0,0,16403,16404,5,118,0,0,16404, +16405,3,1792,896,0,16405,16406,5,49,0,0,16406,16407,3,1794,897,0,16407,1791, +1,0,0,0,16408,16409,3,2094,1047,0,16409,1793,1,0,0,0,16410,16411,3,2094, +1047,0,16411,1795,1,0,0,0,16412,16413,5,1226,0,0,16413,1797,1,0,0,0,16414, +16416,5,1490,0,0,16415,16417,3,2306,1153,0,16416,16415,1,0,0,0,16416,16417, +1,0,0,0,16417,1799,1,0,0,0,16418,16420,5,1584,0,0,16419,16421,3,2070,1035, +0,16420,16419,1,0,0,0,16420,16421,1,0,0,0,16421,1801,1,0,0,0,16422,16424, +5,173,0,0,16423,16422,1,0,0,0,16423,16424,1,0,0,0,16424,16425,1,0,0,0,16425, +16427,3,2276,1138,0,16426,16428,3,2352,1176,0,16427,16426,1,0,0,0,16427, +16428,1,0,0,0,16428,16436,1,0,0,0,16429,16430,5,2438,0,0,16430,16432,3,2276, +1138,0,16431,16433,3,2352,1176,0,16432,16431,1,0,0,0,16432,16433,1,0,0,0, +16433,16435,1,0,0,0,16434,16429,1,0,0,0,16435,16438,1,0,0,0,16436,16434, +1,0,0,0,16436,16437,1,0,0,0,16437,16441,1,0,0,0,16438,16436,1,0,0,0,16439, +16440,5,777,0,0,16440,16442,3,2370,1185,0,16441,16439,1,0,0,0,16441,16442, +1,0,0,0,16442,1803,1,0,0,0,16443,16444,5,1393,0,0,16444,16445,5,1604,0,0, +16445,16446,5,2445,0,0,16446,16447,3,2070,1035,0,16447,16448,5,2446,0,0, +16448,1805,1,0,0,0,16449,16450,5,458,0,0,16450,16451,3,2066,1033,0,16451, +16452,5,459,0,0,16452,16457,3,1810,905,0,16453,16454,5,455,0,0,16454,16456, +3,1810,905,0,16455,16453,1,0,0,0,16456,16459,1,0,0,0,16457,16455,1,0,0,0, +16457,16458,1,0,0,0,16458,16462,1,0,0,0,16459,16457,1,0,0,0,16460,16461, +5,454,0,0,16461,16463,3,1810,905,0,16462,16460,1,0,0,0,16462,16463,1,0,0, +0,16463,16464,1,0,0,0,16464,16465,5,456,0,0,16465,1807,1,0,0,0,16466,16467, +5,457,0,0,16467,16468,3,2094,1047,0,16468,16469,5,456,0,0,16469,1809,1,0, +0,0,16470,16472,3,1746,873,0,16471,16470,1,0,0,0,16471,16472,1,0,0,0,16472, +16473,1,0,0,0,16473,16474,3,1766,883,0,16474,16475,5,2467,0,0,16475,16481, +1,0,0,0,16476,16481,3,1736,868,0,16477,16481,3,1808,904,0,16478,16481,3, +176,88,0,16479,16481,3,178,89,0,16480,16471,1,0,0,0,16480,16476,1,0,0,0, +16480,16477,1,0,0,0,16480,16478,1,0,0,0,16480,16479,1,0,0,0,16481,16482, +1,0,0,0,16482,16480,1,0,0,0,16482,16483,1,0,0,0,16483,1811,1,0,0,0,16484, +16485,5,113,0,0,16485,16492,3,1762,881,0,16486,16488,5,533,0,0,16487,16489, +3,1814,907,0,16488,16487,1,0,0,0,16489,16490,1,0,0,0,16490,16488,1,0,0,0, +16490,16491,1,0,0,0,16491,16493,1,0,0,0,16492,16486,1,0,0,0,16492,16493, +1,0,0,0,16493,16494,1,0,0,0,16494,16496,5,506,0,0,16495,16497,3,2300,1150, +0,16496,16495,1,0,0,0,16496,16497,1,0,0,0,16497,1813,1,0,0,0,16498,16499, +5,2298,0,0,16499,16504,3,2306,1153,0,16500,16501,5,1305,0,0,16501,16503, +3,2306,1153,0,16502,16500,1,0,0,0,16503,16506,1,0,0,0,16504,16502,1,0,0, +0,16504,16505,1,0,0,0,16505,16507,1,0,0,0,16506,16504,1,0,0,0,16507,16508, +5,2097,0,0,16508,16509,3,1762,881,0,16509,1815,1,0,0,0,16510,16514,5,380, +0,0,16511,16513,3,1734,867,0,16512,16511,1,0,0,0,16513,16516,1,0,0,0,16514, +16512,1,0,0,0,16514,16515,1,0,0,0,16515,16518,1,0,0,0,16516,16514,1,0,0, +0,16517,16510,1,0,0,0,16517,16518,1,0,0,0,16518,16519,1,0,0,0,16519,16520, +3,1812,906,0,16520,1817,1,0,0,0,16521,16523,3,1734,867,0,16522,16521,1,0, +0,0,16523,16526,1,0,0,0,16524,16522,1,0,0,0,16524,16525,1,0,0,0,16525,16527, +1,0,0,0,16526,16524,1,0,0,0,16527,16528,3,1812,906,0,16528,1819,1,0,0,0, +16529,16533,5,380,0,0,16530,16532,3,1734,867,0,16531,16530,1,0,0,0,16532, +16535,1,0,0,0,16533,16531,1,0,0,0,16533,16534,1,0,0,0,16534,16537,1,0,0, +0,16535,16533,1,0,0,0,16536,16529,1,0,0,0,16536,16537,1,0,0,0,16537,16538, +1,0,0,0,16538,16539,3,1812,906,0,16539,1821,1,0,0,0,16540,16546,3,1824,912, +0,16541,16546,3,1828,914,0,16542,16546,3,1830,915,0,16543,16546,3,1842,921, +0,16544,16546,3,1856,928,0,16545,16540,1,0,0,0,16545,16541,1,0,0,0,16545, +16542,1,0,0,0,16545,16543,1,0,0,0,16545,16544,1,0,0,0,16546,1823,1,0,0,0, +16547,16548,5,540,0,0,16548,16549,5,696,0,0,16549,16559,3,2070,1035,0,16550, +16552,3,2262,1131,0,16551,16553,3,2200,1100,0,16552,16551,1,0,0,0,16552, +16553,1,0,0,0,16553,16560,1,0,0,0,16554,16556,3,2200,1100,0,16555,16557, +3,1826,913,0,16556,16555,1,0,0,0,16556,16557,1,0,0,0,16557,16560,1,0,0,0, +16558,16560,3,1826,913,0,16559,16550,1,0,0,0,16559,16554,1,0,0,0,16559,16558, +1,0,0,0,16559,16560,1,0,0,0,16560,1825,1,0,0,0,16561,16562,7,202,0,0,16562, +16563,3,2262,1131,0,16563,1827,1,0,0,0,16564,16572,3,2026,1013,0,16565,16572, +3,2038,1019,0,16566,16572,3,1862,931,0,16567,16572,3,2000,1000,0,16568,16572, +3,2006,1003,0,16569,16572,3,2008,1004,0,16570,16572,3,1858,929,0,16571,16564, +1,0,0,0,16571,16565,1,0,0,0,16571,16566,1,0,0,0,16571,16567,1,0,0,0,16571, +16568,1,0,0,0,16571,16569,1,0,0,0,16571,16570,1,0,0,0,16572,1829,1,0,0,0, +16573,16578,3,1832,916,0,16574,16578,3,1834,917,0,16575,16578,3,1836,918, +0,16576,16578,3,1840,920,0,16577,16573,1,0,0,0,16577,16574,1,0,0,0,16577, +16575,1,0,0,0,16577,16576,1,0,0,0,16578,1831,1,0,0,0,16579,16580,5,218,0, +0,16580,16581,3,2318,1159,0,16581,1833,1,0,0,0,16582,16583,5,1262,0,0,16583, +16589,3,2318,1159,0,16584,16586,5,2445,0,0,16585,16587,3,2068,1034,0,16586, +16585,1,0,0,0,16586,16587,1,0,0,0,16587,16588,1,0,0,0,16588,16590,5,2446, +0,0,16589,16584,1,0,0,0,16589,16590,1,0,0,0,16590,1835,1,0,0,0,16591,16592, +5,584,0,0,16592,16620,3,2318,1159,0,16593,16594,5,777,0,0,16594,16599,3, +1838,919,0,16595,16596,5,2451,0,0,16596,16598,3,1838,919,0,16597,16595,1, +0,0,0,16598,16601,1,0,0,0,16599,16597,1,0,0,0,16599,16600,1,0,0,0,16600, +16621,1,0,0,0,16601,16599,1,0,0,0,16602,16603,5,159,0,0,16603,16604,5,233, +0,0,16604,16605,5,777,0,0,16605,16610,3,1838,919,0,16606,16607,5,2451,0, +0,16607,16609,3,1838,919,0,16608,16606,1,0,0,0,16609,16612,1,0,0,0,16610, +16608,1,0,0,0,16610,16611,1,0,0,0,16611,16618,1,0,0,0,16612,16610,1,0,0, +0,16613,16616,5,856,0,0,16614,16617,3,2384,1192,0,16615,16617,3,1838,919, +0,16616,16614,1,0,0,0,16616,16615,1,0,0,0,16617,16619,1,0,0,0,16618,16613, +1,0,0,0,16618,16619,1,0,0,0,16619,16621,1,0,0,0,16620,16593,1,0,0,0,16620, +16602,1,0,0,0,16621,1837,1,0,0,0,16622,16625,3,2314,1157,0,16623,16625,3, +2110,1055,0,16624,16622,1,0,0,0,16624,16623,1,0,0,0,16625,1839,1,0,0,0,16626, +16627,5,1262,0,0,16627,16628,3,2314,1157,0,16628,16631,5,618,0,0,16629,16632, +3,1862,931,0,16630,16632,3,2070,1035,0,16631,16629,1,0,0,0,16631,16630,1, +0,0,0,16632,16634,1,0,0,0,16633,16635,3,2200,1100,0,16634,16633,1,0,0,0, +16634,16635,1,0,0,0,16635,1841,1,0,0,0,16636,16642,3,1844,922,0,16637,16642, +3,1846,923,0,16638,16642,3,1848,924,0,16639,16642,3,1852,926,0,16640,16642, +3,1854,927,0,16641,16636,1,0,0,0,16641,16637,1,0,0,0,16641,16638,1,0,0,0, +16641,16639,1,0,0,0,16641,16640,1,0,0,0,16642,1843,1,0,0,0,16643,16644,5, +1669,0,0,16644,16658,5,2145,0,0,16645,16646,5,1503,0,0,16646,16659,7,11, +0,0,16647,16648,5,785,0,0,16648,16652,5,844,0,0,16649,16653,5,1657,0,0,16650, +16651,5,1503,0,0,16651,16653,5,243,0,0,16652,16649,1,0,0,0,16652,16650,1, +0,0,0,16653,16659,1,0,0,0,16654,16655,5,2239,0,0,16655,16656,5,1594,0,0, +16656,16657,5,1643,0,0,16657,16659,3,2272,1136,0,16658,16645,1,0,0,0,16658, +16647,1,0,0,0,16658,16654,1,0,0,0,16658,16659,1,0,0,0,16659,16662,1,0,0, +0,16660,16661,5,995,0,0,16661,16663,3,2388,1194,0,16662,16660,1,0,0,0,16662, +16663,1,0,0,0,16663,1845,1,0,0,0,16664,16665,5,1669,0,0,16665,16675,7,93, +0,0,16666,16676,5,38,0,0,16667,16672,3,2298,1149,0,16668,16669,5,2451,0, +0,16669,16671,3,2298,1149,0,16670,16668,1,0,0,0,16671,16674,1,0,0,0,16672, +16670,1,0,0,0,16672,16673,1,0,0,0,16673,16676,1,0,0,0,16674,16672,1,0,0, +0,16675,16666,1,0,0,0,16675,16667,1,0,0,0,16676,16677,1,0,0,0,16677,16678, +7,67,0,0,16678,1847,1,0,0,0,16679,16681,5,242,0,0,16680,16682,5,2307,0,0, +16681,16680,1,0,0,0,16681,16682,1,0,0,0,16682,16684,1,0,0,0,16683,16685, +3,1850,925,0,16684,16683,1,0,0,0,16684,16685,1,0,0,0,16685,16702,1,0,0,0, +16686,16687,5,241,0,0,16687,16689,5,2441,0,0,16688,16690,3,1850,925,0,16689, +16688,1,0,0,0,16689,16690,1,0,0,0,16690,16703,1,0,0,0,16691,16700,5,614, +0,0,16692,16695,5,2441,0,0,16693,16694,5,2451,0,0,16694,16696,3,2384,1192, +0,16695,16693,1,0,0,0,16695,16696,1,0,0,0,16696,16701,1,0,0,0,16697,16698, +5,306,0,0,16698,16701,5,2441,0,0,16699,16701,5,305,0,0,16700,16692,1,0,0, +0,16700,16697,1,0,0,0,16700,16699,1,0,0,0,16701,16703,1,0,0,0,16702,16686, +1,0,0,0,16702,16691,1,0,0,0,16702,16703,1,0,0,0,16703,1849,1,0,0,0,16704, +16709,5,2311,0,0,16705,16708,7,203,0,0,16706,16708,7,0,0,0,16707,16705,1, +0,0,0,16707,16706,1,0,0,0,16708,16711,1,0,0,0,16709,16707,1,0,0,0,16709, +16710,1,0,0,0,16710,1851,1,0,0,0,16711,16709,1,0,0,0,16712,16714,5,1594, +0,0,16713,16715,5,2307,0,0,16714,16713,1,0,0,0,16714,16715,1,0,0,0,16715, +16723,1,0,0,0,16716,16718,5,2139,0,0,16717,16719,5,1614,0,0,16718,16717, +1,0,0,0,16718,16719,1,0,0,0,16719,16720,1,0,0,0,16720,16724,3,2270,1135, +0,16721,16722,5,614,0,0,16722,16724,3,2388,1194,0,16723,16716,1,0,0,0,16723, +16721,1,0,0,0,16723,16724,1,0,0,0,16724,1853,1,0,0,0,16725,16726,5,1614, +0,0,16726,16727,3,2270,1135,0,16727,1855,1,0,0,0,16728,16729,3,2070,1035, +0,16729,16751,5,2438,0,0,16730,16742,7,204,0,0,16731,16732,5,2445,0,0,16732, +16737,3,2070,1035,0,16733,16734,5,2451,0,0,16734,16736,3,2070,1035,0,16735, +16733,1,0,0,0,16736,16739,1,0,0,0,16737,16735,1,0,0,0,16737,16738,1,0,0, +0,16738,16740,1,0,0,0,16739,16737,1,0,0,0,16740,16741,5,2446,0,0,16741,16743, +1,0,0,0,16742,16731,1,0,0,0,16742,16743,1,0,0,0,16743,16752,1,0,0,0,16744, +16749,5,2416,0,0,16745,16746,5,2445,0,0,16746,16747,3,2070,1035,0,16747, +16748,5,2446,0,0,16748,16750,1,0,0,0,16749,16745,1,0,0,0,16749,16750,1,0, +0,0,16750,16752,1,0,0,0,16751,16730,1,0,0,0,16751,16744,1,0,0,0,16752,1857, +1,0,0,0,16753,16754,5,550,0,0,16754,16759,5,1399,0,0,16755,16756,5,1669, +0,0,16756,16757,5,1738,0,0,16757,16758,5,2469,0,0,16758,16760,3,2388,1194, +0,16759,16755,1,0,0,0,16759,16760,1,0,0,0,16760,16763,1,0,0,0,16761,16762, +5,777,0,0,16762,16764,3,2330,1165,0,16763,16761,1,0,0,0,16763,16764,1,0, +0,0,16764,16765,1,0,0,0,16765,16771,5,618,0,0,16766,16772,3,1862,931,0,16767, +16772,3,2000,1000,0,16768,16772,3,2006,1003,0,16769,16772,3,2008,1004,0, +16770,16772,3,2026,1013,0,16771,16766,1,0,0,0,16771,16767,1,0,0,0,16771, +16768,1,0,0,0,16771,16769,1,0,0,0,16771,16770,1,0,0,0,16772,1859,1,0,0,0, +16773,16775,3,1864,932,0,16774,16773,1,0,0,0,16774,16775,1,0,0,0,16775,16776, +1,0,0,0,16776,16777,3,1888,944,0,16777,1861,1,0,0,0,16778,16785,3,1860,930, +0,16779,16784,3,1994,997,0,16780,16784,3,1986,993,0,16781,16784,3,1990,995, +0,16782,16784,3,1992,996,0,16783,16779,1,0,0,0,16783,16780,1,0,0,0,16783, +16781,1,0,0,0,16783,16782,1,0,0,0,16784,16787,1,0,0,0,16785,16783,1,0,0, +0,16785,16786,1,0,0,0,16786,1863,1,0,0,0,16787,16785,1,0,0,0,16788,16793, +5,2306,0,0,16789,16792,3,176,88,0,16790,16792,3,178,89,0,16791,16789,1,0, +0,0,16791,16790,1,0,0,0,16792,16795,1,0,0,0,16793,16791,1,0,0,0,16793,16794, +1,0,0,0,16794,16796,1,0,0,0,16795,16793,1,0,0,0,16796,16801,3,1866,933,0, +16797,16798,5,2451,0,0,16798,16800,3,1866,933,0,16799,16797,1,0,0,0,16800, +16803,1,0,0,0,16801,16799,1,0,0,0,16801,16802,1,0,0,0,16802,16822,1,0,0, +0,16803,16801,1,0,0,0,16804,16807,5,2306,0,0,16805,16808,3,176,88,0,16806, +16808,3,178,89,0,16807,16805,1,0,0,0,16807,16806,1,0,0,0,16808,16809,1,0, +0,0,16809,16807,1,0,0,0,16809,16810,1,0,0,0,16810,16819,1,0,0,0,16811,16816, +3,1866,933,0,16812,16813,5,2451,0,0,16813,16815,3,1866,933,0,16814,16812, +1,0,0,0,16815,16818,1,0,0,0,16816,16814,1,0,0,0,16816,16817,1,0,0,0,16817, +16820,1,0,0,0,16818,16816,1,0,0,0,16819,16811,1,0,0,0,16819,16820,1,0,0, +0,16820,16822,1,0,0,0,16821,16788,1,0,0,0,16821,16804,1,0,0,0,16822,1865, +1,0,0,0,16823,16826,3,1868,934,0,16824,16826,3,1874,937,0,16825,16823,1, +0,0,0,16825,16824,1,0,0,0,16826,1867,1,0,0,0,16827,16829,3,2292,1146,0,16828, +16830,3,2348,1174,0,16829,16828,1,0,0,0,16829,16830,1,0,0,0,16830,16831, +1,0,0,0,16831,16832,5,69,0,0,16832,16833,5,2445,0,0,16833,16835,3,1888,944, +0,16834,16836,3,1986,993,0,16835,16834,1,0,0,0,16835,16836,1,0,0,0,16836, +16837,1,0,0,0,16837,16839,5,2446,0,0,16838,16840,3,1870,935,0,16839,16838, +1,0,0,0,16839,16840,1,0,0,0,16840,16842,1,0,0,0,16841,16843,3,1872,936,0, +16842,16841,1,0,0,0,16842,16843,1,0,0,0,16843,1869,1,0,0,0,16844,16845,5, +1633,0,0,16845,16846,7,205,0,0,16846,16847,5,596,0,0,16847,16848,5,160,0, +0,16848,16850,3,2328,1164,0,16849,16851,5,70,0,0,16850,16849,1,0,0,0,16850, +16851,1,0,0,0,16851,16853,1,0,0,0,16852,16854,5,412,0,0,16853,16852,1,0, +0,0,16853,16854,1,0,0,0,16854,16857,1,0,0,0,16855,16856,5,1227,0,0,16856, +16858,5,596,0,0,16857,16855,1,0,0,0,16857,16858,1,0,0,0,16858,16861,1,0, +0,0,16859,16860,5,1227,0,0,16860,16862,5,823,0,0,16861,16859,1,0,0,0,16861, +16862,1,0,0,0,16862,16881,1,0,0,0,16863,16864,5,2451,0,0,16864,16866,3,2328, +1164,0,16865,16867,5,70,0,0,16866,16865,1,0,0,0,16866,16867,1,0,0,0,16867, +16869,1,0,0,0,16868,16870,5,412,0,0,16869,16868,1,0,0,0,16869,16870,1,0, +0,0,16870,16873,1,0,0,0,16871,16872,5,1227,0,0,16872,16874,5,596,0,0,16873, +16871,1,0,0,0,16873,16874,1,0,0,0,16874,16877,1,0,0,0,16875,16876,5,1227, +0,0,16876,16878,5,823,0,0,16877,16875,1,0,0,0,16877,16878,1,0,0,0,16878, +16880,1,0,0,0,16879,16863,1,0,0,0,16880,16883,1,0,0,0,16881,16879,1,0,0, +0,16881,16882,1,0,0,0,16882,16884,1,0,0,0,16883,16881,1,0,0,0,16884,16885, +5,1669,0,0,16885,16886,3,2328,1164,0,16886,1871,1,0,0,0,16887,16888,5,346, +0,0,16888,16889,3,2346,1173,0,16889,16890,5,1669,0,0,16890,16891,3,2328, +1164,0,16891,16892,5,2139,0,0,16892,16893,3,2070,1035,0,16893,16894,5,387, +0,0,16894,16895,3,2070,1035,0,16895,1873,1,0,0,0,16896,16897,3,2392,1196, +0,16897,16898,5,45,0,0,16898,16899,5,2284,0,0,16899,16900,5,69,0,0,16900, +16901,5,2445,0,0,16901,16902,3,1876,938,0,16902,16903,5,2446,0,0,16903,1875, +1,0,0,0,16904,16905,5,2244,0,0,16905,16907,3,738,369,0,16906,16908,3,1878, +939,0,16907,16906,1,0,0,0,16907,16908,1,0,0,0,16908,16910,1,0,0,0,16909, +16911,3,1880,940,0,16910,16909,1,0,0,0,16910,16911,1,0,0,0,16911,16913,1, +0,0,0,16912,16914,3,1884,942,0,16913,16912,1,0,0,0,16913,16914,1,0,0,0,16914, +1877,1,0,0,0,16915,16916,5,671,0,0,16916,16917,5,2445,0,0,16917,16922,3, +738,369,0,16918,16919,5,2451,0,0,16919,16921,3,738,369,0,16920,16918,1,0, +0,0,16921,16924,1,0,0,0,16922,16920,1,0,0,0,16922,16923,1,0,0,0,16923,16925, +1,0,0,0,16924,16922,1,0,0,0,16925,16926,5,2446,0,0,16926,1879,1,0,0,0,16927, +16928,5,592,0,0,16928,16929,5,565,0,0,16929,16930,5,2445,0,0,16930,16935, +3,1882,941,0,16931,16932,5,2451,0,0,16932,16934,3,1882,941,0,16933,16931, +1,0,0,0,16934,16937,1,0,0,0,16935,16933,1,0,0,0,16935,16936,1,0,0,0,16936, +16938,1,0,0,0,16937,16935,1,0,0,0,16938,16939,5,2446,0,0,16939,1881,1,0, +0,0,16940,16943,5,932,0,0,16941,16943,3,738,369,0,16942,16940,1,0,0,0,16942, +16941,1,0,0,0,16943,16944,1,0,0,0,16944,16945,5,2139,0,0,16945,16946,3,2066, +1033,0,16946,1883,1,0,0,0,16947,16948,5,21,0,0,16948,16949,5,932,0,0,16949, +16950,5,2445,0,0,16950,16955,3,1886,943,0,16951,16952,5,2451,0,0,16952,16954, +3,1886,943,0,16953,16951,1,0,0,0,16954,16957,1,0,0,0,16955,16953,1,0,0,0, +16955,16956,1,0,0,0,16956,16958,1,0,0,0,16957,16955,1,0,0,0,16958,16959, +5,2446,0,0,16959,1885,1,0,0,0,16960,16961,3,2392,1196,0,16961,16962,5,69, +0,0,16962,16963,5,2445,0,0,16963,16964,3,2070,1035,0,16964,16965,5,2446, +0,0,16965,1887,1,0,0,0,16966,16970,3,1890,945,0,16967,16969,3,1892,946,0, +16968,16967,1,0,0,0,16969,16972,1,0,0,0,16970,16968,1,0,0,0,16970,16971, +1,0,0,0,16971,1889,1,0,0,0,16972,16970,1,0,0,0,16973,16979,3,1894,947,0, +16974,16975,5,2445,0,0,16975,16976,3,1888,944,0,16976,16977,5,2446,0,0,16977, +16979,1,0,0,0,16978,16973,1,0,0,0,16978,16974,1,0,0,0,16979,1891,1,0,0,0, +16980,16982,5,2179,0,0,16981,16983,5,38,0,0,16982,16981,1,0,0,0,16982,16983, +1,0,0,0,16983,16987,1,0,0,0,16984,16987,5,773,0,0,16985,16987,5,954,0,0, +16986,16980,1,0,0,0,16986,16984,1,0,0,0,16986,16985,1,0,0,0,16987,16988, +1,0,0,0,16988,16989,3,1890,945,0,16989,1893,1,0,0,0,16990,16992,5,1645,0, +0,16991,16993,7,206,0,0,16992,16991,1,0,0,0,16992,16993,1,0,0,0,16993,16994, +1,0,0,0,16994,16996,3,1896,948,0,16995,16997,3,2262,1131,0,16996,16995,1, +0,0,0,16996,16997,1,0,0,0,16997,16999,1,0,0,0,16998,17000,3,1898,949,0,16999, +16998,1,0,0,0,16999,17000,1,0,0,0,17000,17002,1,0,0,0,17001,17003,3,2260, +1130,0,17002,17001,1,0,0,0,17002,17003,1,0,0,0,17003,17008,1,0,0,0,17004, +17007,3,1940,970,0,17005,17007,3,1944,972,0,17006,17004,1,0,0,0,17006,17005, +1,0,0,0,17007,17010,1,0,0,0,17008,17006,1,0,0,0,17008,17009,1,0,0,0,17009, +17012,1,0,0,0,17010,17008,1,0,0,0,17011,17013,3,1956,978,0,17012,17011,1, +0,0,0,17012,17013,1,0,0,0,17013,17015,1,0,0,0,17014,17016,3,1986,993,0,17015, +17014,1,0,0,0,17015,17016,1,0,0,0,17016,17018,1,0,0,0,17017,17019,3,1990, +995,0,17018,17017,1,0,0,0,17018,17019,1,0,0,0,17019,17021,1,0,0,0,17020, +17022,3,1992,996,0,17021,17020,1,0,0,0,17021,17022,1,0,0,0,17022,1895,1, +0,0,0,17023,17033,5,2448,0,0,17024,17029,3,1900,950,0,17025,17026,5,2451, +0,0,17026,17028,3,1900,950,0,17027,17025,1,0,0,0,17028,17031,1,0,0,0,17029, +17027,1,0,0,0,17029,17030,1,0,0,0,17030,17033,1,0,0,0,17031,17029,1,0,0, +0,17032,17023,1,0,0,0,17032,17024,1,0,0,0,17033,1897,1,0,0,0,17034,17035, +5,626,0,0,17035,17036,3,1902,951,0,17036,1899,1,0,0,0,17037,17038,3,2330, +1165,0,17038,17039,5,2438,0,0,17039,17040,5,2448,0,0,17040,17046,1,0,0,0, +17041,17043,3,2070,1035,0,17042,17044,3,2256,1128,0,17043,17042,1,0,0,0, +17043,17044,1,0,0,0,17044,17046,1,0,0,0,17045,17037,1,0,0,0,17045,17041, +1,0,0,0,17046,1901,1,0,0,0,17047,17052,3,1904,952,0,17048,17049,5,2451,0, +0,17049,17051,3,1904,952,0,17050,17048,1,0,0,0,17051,17054,1,0,0,0,17052, +17050,1,0,0,0,17052,17053,1,0,0,0,17053,1903,1,0,0,0,17054,17052,1,0,0,0, +17055,17059,3,1906,953,0,17056,17058,3,1910,955,0,17057,17056,1,0,0,0,17058, +17061,1,0,0,0,17059,17057,1,0,0,0,17059,17060,1,0,0,0,17060,17064,1,0,0, +0,17061,17059,1,0,0,0,17062,17065,3,1922,961,0,17063,17065,3,1934,967,0, +17064,17062,1,0,0,0,17064,17063,1,0,0,0,17064,17065,1,0,0,0,17065,1905,1, +0,0,0,17066,17070,3,1908,954,0,17067,17069,3,1920,960,0,17068,17067,1,0, +0,0,17069,17072,1,0,0,0,17070,17068,1,0,0,0,17070,17071,1,0,0,0,17071,17074, +1,0,0,0,17072,17070,1,0,0,0,17073,17075,3,2258,1129,0,17074,17073,1,0,0, +0,17074,17075,1,0,0,0,17075,1907,1,0,0,0,17076,17079,3,2056,1028,0,17077, +17080,3,1922,961,0,17078,17080,3,1934,967,0,17079,17077,1,0,0,0,17079,17078, +1,0,0,0,17079,17080,1,0,0,0,17080,17100,1,0,0,0,17081,17082,5,2445,0,0,17082, +17086,3,1904,952,0,17083,17085,3,1892,946,0,17084,17083,1,0,0,0,17085,17088, +1,0,0,0,17086,17084,1,0,0,0,17086,17087,1,0,0,0,17087,17089,1,0,0,0,17088, +17086,1,0,0,0,17089,17092,5,2446,0,0,17090,17093,3,1922,961,0,17091,17093, +3,1934,967,0,17092,17090,1,0,0,0,17092,17091,1,0,0,0,17092,17093,1,0,0,0, +17093,17100,1,0,0,0,17094,17095,5,1256,0,0,17095,17096,5,2445,0,0,17096, +17097,3,2056,1028,0,17097,17098,5,2446,0,0,17098,17100,1,0,0,0,17099,17076, +1,0,0,0,17099,17081,1,0,0,0,17099,17094,1,0,0,0,17100,1909,1,0,0,0,17101, +17103,3,1918,959,0,17102,17101,1,0,0,0,17102,17103,1,0,0,0,17103,17105,1, +0,0,0,17104,17106,7,207,0,0,17105,17104,1,0,0,0,17105,17106,1,0,0,0,17106, +17109,1,0,0,0,17107,17110,5,747,0,0,17108,17110,3,1916,958,0,17109,17107, +1,0,0,0,17109,17108,1,0,0,0,17109,17110,1,0,0,0,17110,17111,1,0,0,0,17111, +17112,5,792,0,0,17112,17114,3,1906,953,0,17113,17115,3,1918,959,0,17114, +17113,1,0,0,0,17114,17115,1,0,0,0,17115,17120,1,0,0,0,17116,17119,3,1912, +956,0,17117,17119,3,1914,957,0,17118,17116,1,0,0,0,17118,17117,1,0,0,0,17119, +17122,1,0,0,0,17120,17118,1,0,0,0,17120,17121,1,0,0,0,17121,17127,1,0,0, +0,17122,17120,1,0,0,0,17123,17124,7,208,0,0,17124,17125,5,61,0,0,17125,17127, +3,1906,953,0,17126,17102,1,0,0,0,17126,17123,1,0,0,0,17127,1911,1,0,0,0, +17128,17129,5,1257,0,0,17129,17130,3,2066,1033,0,17130,1913,1,0,0,0,17131, +17132,5,2244,0,0,17132,17133,3,2348,1174,0,17133,1915,1,0,0,0,17134,17136, +7,209,0,0,17135,17137,5,1311,0,0,17136,17135,1,0,0,0,17136,17137,1,0,0,0, +17137,1917,1,0,0,0,17138,17139,5,1346,0,0,17139,17147,5,160,0,0,17140,17143, +5,2445,0,0,17141,17144,3,1888,944,0,17142,17144,3,2068,1034,0,17143,17141, +1,0,0,0,17143,17142,1,0,0,0,17143,17144,1,0,0,0,17144,17145,1,0,0,0,17145, +17148,5,2446,0,0,17146,17148,3,2068,1034,0,17147,17140,1,0,0,0,17147,17146, +1,0,0,0,17148,1919,1,0,0,0,17149,17157,5,2281,0,0,17150,17151,5,1384,0,0, +17151,17152,5,618,0,0,17152,17153,3,2328,1164,0,17153,17154,5,118,0,0,17154, +17158,1,0,0,0,17155,17156,5,118,0,0,17156,17158,7,81,0,0,17157,17150,1,0, +0,0,17157,17155,1,0,0,0,17158,17159,1,0,0,0,17159,17160,3,2070,1035,0,17160, +17161,5,49,0,0,17161,17162,3,2070,1035,0,17162,17175,1,0,0,0,17163,17164, +5,69,0,0,17164,17172,5,1244,0,0,17165,17166,7,210,0,0,17166,17173,3,2070, +1035,0,17167,17168,5,1384,0,0,17168,17169,5,618,0,0,17169,17170,3,2328,1164, +0,17170,17171,3,2070,1035,0,17171,17173,1,0,0,0,17172,17165,1,0,0,0,17172, +17167,1,0,0,0,17173,17175,1,0,0,0,17174,17149,1,0,0,0,17174,17163,1,0,0, +0,17175,1921,1,0,0,0,17176,17178,5,1395,0,0,17177,17179,5,2350,0,0,17178, +17177,1,0,0,0,17178,17179,1,0,0,0,17179,17180,1,0,0,0,17180,17181,5,2445, +0,0,17181,17186,3,1924,962,0,17182,17183,5,2451,0,0,17183,17185,3,1924,962, +0,17184,17182,1,0,0,0,17185,17188,1,0,0,0,17186,17184,1,0,0,0,17186,17187, +1,0,0,0,17187,17189,1,0,0,0,17188,17186,1,0,0,0,17189,17190,3,1926,963,0, +17190,17191,3,1928,964,0,17191,17193,5,2446,0,0,17192,17194,3,2258,1129, +0,17193,17192,1,0,0,0,17193,17194,1,0,0,0,17194,1923,1,0,0,0,17195,17202, +3,2180,1090,0,17196,17197,3,2290,1145,0,17197,17198,5,2445,0,0,17198,17199, +3,2070,1035,0,17199,17200,5,2446,0,0,17200,17202,1,0,0,0,17201,17195,1,0, +0,0,17201,17196,1,0,0,0,17202,17204,1,0,0,0,17203,17205,3,2256,1128,0,17204, +17203,1,0,0,0,17204,17205,1,0,0,0,17205,1925,1,0,0,0,17206,17209,5,618,0, +0,17207,17210,3,2328,1164,0,17208,17210,3,2348,1174,0,17209,17207,1,0,0, +0,17209,17208,1,0,0,0,17210,1927,1,0,0,0,17211,17212,5,736,0,0,17212,17230, +5,2445,0,0,17213,17231,3,1888,944,0,17214,17219,5,55,0,0,17215,17216,5,2451, +0,0,17216,17218,5,55,0,0,17217,17215,1,0,0,0,17218,17221,1,0,0,0,17219,17217, +1,0,0,0,17219,17220,1,0,0,0,17220,17231,1,0,0,0,17221,17219,1,0,0,0,17222, +17227,3,1930,965,0,17223,17224,5,2451,0,0,17224,17226,3,1930,965,0,17225, +17223,1,0,0,0,17226,17229,1,0,0,0,17227,17225,1,0,0,0,17227,17228,1,0,0, +0,17228,17231,1,0,0,0,17229,17227,1,0,0,0,17230,17213,1,0,0,0,17230,17214, +1,0,0,0,17230,17222,1,0,0,0,17231,17232,1,0,0,0,17232,17233,5,2446,0,0,17233, +1929,1,0,0,0,17234,17236,3,1932,966,0,17235,17237,3,2256,1128,0,17236,17235, +1,0,0,0,17236,17237,1,0,0,0,17237,1931,1,0,0,0,17238,17245,3,2070,1035,0, +17239,17241,5,2445,0,0,17240,17242,3,2068,1034,0,17241,17240,1,0,0,0,17241, +17242,1,0,0,0,17242,17243,1,0,0,0,17243,17245,5,2446,0,0,17244,17238,1,0, +0,0,17244,17239,1,0,0,0,17245,1933,1,0,0,0,17246,17249,5,2192,0,0,17247, +17248,7,211,0,0,17248,17250,5,1227,0,0,17249,17247,1,0,0,0,17249,17250,1, +0,0,0,17250,17251,1,0,0,0,17251,17254,5,2445,0,0,17252,17255,3,2328,1164, +0,17253,17255,3,2348,1174,0,17254,17252,1,0,0,0,17254,17253,1,0,0,0,17255, +17256,1,0,0,0,17256,17257,3,1926,963,0,17257,17258,3,1936,968,0,17258,17260, +5,2446,0,0,17259,17261,3,2258,1129,0,17260,17259,1,0,0,0,17260,17261,1,0, +0,0,17261,1935,1,0,0,0,17262,17263,5,736,0,0,17263,17264,5,2445,0,0,17264, +17269,3,1938,969,0,17265,17266,5,2451,0,0,17266,17268,3,1938,969,0,17267, +17265,1,0,0,0,17268,17271,1,0,0,0,17269,17267,1,0,0,0,17269,17270,1,0,0, +0,17270,17272,1,0,0,0,17271,17269,1,0,0,0,17272,17273,5,2446,0,0,17273,1937, +1,0,0,0,17274,17277,3,2328,1164,0,17275,17277,3,2348,1174,0,17276,17274, +1,0,0,0,17276,17275,1,0,0,0,17277,17293,1,0,0,0,17278,17291,5,69,0,0,17279, +17292,3,2382,1191,0,17280,17281,5,2445,0,0,17281,17286,3,2382,1191,0,17282, +17283,5,2451,0,0,17283,17285,3,2382,1191,0,17284,17282,1,0,0,0,17285,17288, +1,0,0,0,17286,17284,1,0,0,0,17286,17287,1,0,0,0,17287,17289,1,0,0,0,17288, +17286,1,0,0,0,17289,17290,5,2446,0,0,17290,17292,1,0,0,0,17291,17279,1,0, +0,0,17291,17280,1,0,0,0,17292,17294,1,0,0,0,17293,17278,1,0,0,0,17293,17294, +1,0,0,0,17294,1939,1,0,0,0,17295,17296,5,278,0,0,17296,17298,5,160,0,0,17297, +17299,5,1082,0,0,17298,17297,1,0,0,0,17298,17299,1,0,0,0,17299,17300,1,0, +0,0,17300,17302,3,2066,1033,0,17301,17303,3,1942,971,0,17302,17301,1,0,0, +0,17302,17303,1,0,0,0,17303,17313,1,0,0,0,17304,17305,3,1942,971,0,17305, +17306,5,278,0,0,17306,17308,5,160,0,0,17307,17309,5,1082,0,0,17308,17307, +1,0,0,0,17308,17309,1,0,0,0,17309,17310,1,0,0,0,17310,17311,3,2066,1033, +0,17311,17313,1,0,0,0,17312,17295,1,0,0,0,17312,17304,1,0,0,0,17313,1941, +1,0,0,0,17314,17315,5,1735,0,0,17315,17316,5,2306,0,0,17316,17317,3,2066, +1033,0,17317,1943,1,0,0,0,17318,17319,5,647,0,0,17319,17320,5,160,0,0,17320, +17325,3,1946,973,0,17321,17322,5,2451,0,0,17322,17324,3,1946,973,0,17323, +17321,1,0,0,0,17324,17327,1,0,0,0,17325,17323,1,0,0,0,17325,17326,1,0,0, +0,17326,17329,1,0,0,0,17327,17325,1,0,0,0,17328,17330,3,1954,977,0,17329, +17328,1,0,0,0,17329,17330,1,0,0,0,17330,17345,1,0,0,0,17331,17342,3,1954, +977,0,17332,17333,5,647,0,0,17333,17334,5,160,0,0,17334,17339,3,1946,973, +0,17335,17336,5,2451,0,0,17336,17338,3,1946,973,0,17337,17335,1,0,0,0,17338, +17341,1,0,0,0,17339,17337,1,0,0,0,17339,17340,1,0,0,0,17340,17343,1,0,0, +0,17341,17339,1,0,0,0,17342,17332,1,0,0,0,17342,17343,1,0,0,0,17343,17345, +1,0,0,0,17344,17318,1,0,0,0,17344,17331,1,0,0,0,17345,1945,1,0,0,0,17346, +17350,3,1950,975,0,17347,17350,3,1948,974,0,17348,17350,3,2070,1035,0,17349, +17346,1,0,0,0,17349,17347,1,0,0,0,17349,17348,1,0,0,0,17350,1947,1,0,0,0, +17351,17352,7,212,0,0,17352,17353,5,2445,0,0,17353,17358,3,1952,976,0,17354, +17355,5,2451,0,0,17355,17357,3,1952,976,0,17356,17354,1,0,0,0,17357,17360, +1,0,0,0,17358,17356,1,0,0,0,17358,17359,1,0,0,0,17359,17361,1,0,0,0,17360, +17358,1,0,0,0,17361,17362,5,2446,0,0,17362,1949,1,0,0,0,17363,17364,5,649, +0,0,17364,17365,5,1670,0,0,17365,17366,5,2445,0,0,17366,17371,3,1952,976, +0,17367,17368,5,2451,0,0,17368,17370,3,1952,976,0,17369,17367,1,0,0,0,17370, +17373,1,0,0,0,17371,17369,1,0,0,0,17371,17372,1,0,0,0,17372,17374,1,0,0, +0,17373,17371,1,0,0,0,17374,17375,5,2446,0,0,17375,1951,1,0,0,0,17376,17384, +3,1948,974,0,17377,17379,5,2445,0,0,17378,17380,3,2068,1034,0,17379,17378, +1,0,0,0,17379,17380,1,0,0,0,17380,17381,1,0,0,0,17381,17384,5,2446,0,0,17382, +17384,3,2070,1035,0,17383,17376,1,0,0,0,17383,17377,1,0,0,0,17383,17382, +1,0,0,0,17384,1953,1,0,0,0,17385,17386,5,661,0,0,17386,17387,3,2066,1033, +0,17387,1955,1,0,0,0,17388,17392,5,969,0,0,17389,17391,3,1958,979,0,17390, +17389,1,0,0,0,17391,17394,1,0,0,0,17392,17390,1,0,0,0,17392,17393,1,0,0, +0,17393,17396,1,0,0,0,17394,17392,1,0,0,0,17395,17397,3,1960,980,0,17396, +17395,1,0,0,0,17396,17397,1,0,0,0,17397,17401,1,0,0,0,17398,17400,3,1962, +981,0,17399,17398,1,0,0,0,17400,17403,1,0,0,0,17401,17399,1,0,0,0,17401, +17402,1,0,0,0,17402,17404,1,0,0,0,17403,17401,1,0,0,0,17404,17405,3,1964, +982,0,17405,1957,1,0,0,0,17406,17407,7,213,0,0,17407,17415,5,1004,0,0,17408, +17412,5,2181,0,0,17409,17413,5,420,0,0,17410,17411,5,1693,0,0,17411,17413, +5,1525,0,0,17412,17409,1,0,0,0,17412,17410,1,0,0,0,17413,17415,1,0,0,0,17414, +17406,1,0,0,0,17414,17408,1,0,0,0,17415,1959,1,0,0,0,17416,17417,5,1584, +0,0,17417,17418,7,214,0,0,17418,17419,5,1605,0,0,17419,1961,1,0,0,0,17420, +17421,5,1525,0,0,17421,17422,3,2284,1142,0,17422,17423,5,1257,0,0,17423, +17424,5,2445,0,0,17424,17425,3,1888,944,0,17425,17426,5,2446,0,0,17426,17430, +3,1966,983,0,17427,17429,3,1958,979,0,17428,17427,1,0,0,0,17429,17432,1, +0,0,0,17430,17428,1,0,0,0,17430,17431,1,0,0,0,17431,1963,1,0,0,0,17432,17430, +1,0,0,0,17433,17434,5,900,0,0,17434,17436,3,2286,1143,0,17435,17433,1,0, +0,0,17435,17436,1,0,0,0,17436,17437,1,0,0,0,17437,17441,3,1966,983,0,17438, +17440,3,1958,979,0,17439,17438,1,0,0,0,17440,17443,1,0,0,0,17441,17439,1, +0,0,0,17441,17442,1,0,0,0,17442,17444,1,0,0,0,17443,17441,1,0,0,0,17444, +17445,3,1974,987,0,17445,1965,1,0,0,0,17446,17448,3,1968,984,0,17447,17446, +1,0,0,0,17447,17448,1,0,0,0,17448,17449,1,0,0,0,17449,17450,5,420,0,0,17450, +17451,5,160,0,0,17451,17452,3,1970,985,0,17452,17453,5,932,0,0,17453,17454, +3,1970,985,0,17454,1967,1,0,0,0,17455,17456,5,1346,0,0,17456,17457,5,160, +0,0,17457,17458,3,1970,985,0,17458,1969,1,0,0,0,17459,17460,5,2445,0,0,17460, +17465,3,1972,986,0,17461,17462,5,2451,0,0,17462,17464,3,1972,986,0,17463, +17461,1,0,0,0,17464,17467,1,0,0,0,17465,17463,1,0,0,0,17465,17466,1,0,0, +0,17466,17468,1,0,0,0,17467,17465,1,0,0,0,17468,17469,5,2446,0,0,17469,1971, +1,0,0,0,17470,17473,3,2070,1035,0,17471,17473,3,1894,947,0,17472,17470,1, +0,0,0,17472,17471,1,0,0,0,17473,17475,1,0,0,0,17474,17476,3,2256,1128,0, +17475,17474,1,0,0,0,17475,17476,1,0,0,0,17476,1973,1,0,0,0,17477,17479,3, +1976,988,0,17478,17477,1,0,0,0,17478,17479,1,0,0,0,17479,17480,1,0,0,0,17480, +17489,5,2445,0,0,17481,17486,3,1978,989,0,17482,17483,5,2451,0,0,17483,17485, +3,1978,989,0,17484,17482,1,0,0,0,17485,17488,1,0,0,0,17486,17484,1,0,0,0, +17486,17487,1,0,0,0,17487,17490,1,0,0,0,17488,17486,1,0,0,0,17489,17481, +1,0,0,0,17489,17490,1,0,0,0,17490,17491,1,0,0,0,17491,17492,5,2446,0,0,17492, +1975,1,0,0,0,17493,17499,5,1609,0,0,17494,17500,5,2205,0,0,17495,17497,5, +2211,0,0,17496,17498,5,38,0,0,17497,17496,1,0,0,0,17497,17498,1,0,0,0,17498, +17500,1,0,0,0,17499,17494,1,0,0,0,17499,17495,1,0,0,0,17499,17500,1,0,0, +0,17500,17503,1,0,0,0,17501,17502,7,215,0,0,17502,17504,5,1301,0,0,17503, +17501,1,0,0,0,17503,17504,1,0,0,0,17504,17506,1,0,0,0,17505,17507,3,1982, +991,0,17506,17505,1,0,0,0,17506,17507,1,0,0,0,17507,1977,1,0,0,0,17508,17514, +5,2205,0,0,17509,17511,5,2211,0,0,17510,17512,5,38,0,0,17511,17510,1,0,0, +0,17511,17512,1,0,0,0,17512,17514,1,0,0,0,17513,17508,1,0,0,0,17513,17509, +1,0,0,0,17513,17514,1,0,0,0,17514,17515,1,0,0,0,17515,17517,3,1980,990,0, +17516,17518,3,1986,993,0,17517,17516,1,0,0,0,17517,17518,1,0,0,0,17518,17519, +1,0,0,0,17519,17520,5,2469,0,0,17520,17521,3,2070,1035,0,17521,1979,1,0, +0,0,17522,17523,3,2098,1049,0,17523,1981,1,0,0,0,17524,17525,5,788,0,0,17525, +17526,5,2445,0,0,17526,17527,3,2070,1035,0,17527,17529,5,2446,0,0,17528, +17530,3,1984,992,0,17529,17528,1,0,0,0,17529,17530,1,0,0,0,17530,1983,1, +0,0,0,17531,17532,5,2200,0,0,17532,17533,5,2445,0,0,17533,17534,3,2066,1033, +0,17534,17535,5,2446,0,0,17535,1985,1,0,0,0,17536,17538,5,1301,0,0,17537, +17539,5,1684,0,0,17538,17537,1,0,0,0,17538,17539,1,0,0,0,17539,17540,1,0, +0,0,17540,17541,5,160,0,0,17541,17546,3,1988,994,0,17542,17543,5,2451,0, +0,17543,17545,3,1988,994,0,17544,17542,1,0,0,0,17545,17548,1,0,0,0,17546, +17544,1,0,0,0,17546,17547,1,0,0,0,17547,1987,1,0,0,0,17548,17546,1,0,0,0, +17549,17551,3,2070,1035,0,17550,17552,7,53,0,0,17551,17550,1,0,0,0,17551, +17552,1,0,0,0,17552,17555,1,0,0,0,17553,17554,5,1227,0,0,17554,17556,7,54, +0,0,17555,17553,1,0,0,0,17555,17556,1,0,0,0,17556,1989,1,0,0,0,17557,17558, +5,1243,0,0,17558,17559,3,2070,1035,0,17559,17560,7,216,0,0,17560,1991,1, +0,0,0,17561,17562,5,584,0,0,17562,17567,7,217,0,0,17563,17565,3,2070,1035, +0,17564,17566,5,1376,0,0,17565,17564,1,0,0,0,17565,17566,1,0,0,0,17566,17568, +1,0,0,0,17567,17563,1,0,0,0,17567,17568,1,0,0,0,17568,17569,1,0,0,0,17569, +17573,7,216,0,0,17570,17574,5,1256,0,0,17571,17572,5,2306,0,0,17572,17574, +5,2103,0,0,17573,17570,1,0,0,0,17573,17571,1,0,0,0,17574,1993,1,0,0,0,17575, +17576,5,618,0,0,17576,17578,5,2205,0,0,17577,17579,3,1996,998,0,17578,17577, +1,0,0,0,17578,17579,1,0,0,0,17579,17581,1,0,0,0,17580,17582,3,1998,999,0, +17581,17580,1,0,0,0,17581,17582,1,0,0,0,17582,1995,1,0,0,0,17583,17584,5, +1244,0,0,17584,17585,3,2346,1173,0,17585,1997,1,0,0,0,17586,17587,5,1700, +0,0,17587,17592,5,877,0,0,17588,17592,5,1217,0,0,17589,17590,5,2291,0,0, +17590,17592,3,2070,1035,0,17591,17586,1,0,0,0,17591,17588,1,0,0,0,17591, +17589,1,0,0,0,17592,1999,1,0,0,0,17593,17594,5,2205,0,0,17594,17595,3,2046, +1023,0,17595,17597,3,2002,1001,0,17596,17598,3,2260,1130,0,17597,17596,1, +0,0,0,17597,17598,1,0,0,0,17598,17600,1,0,0,0,17599,17601,3,2048,1024,0, +17600,17599,1,0,0,0,17600,17601,1,0,0,0,17601,17603,1,0,0,0,17602,17604, +3,2050,1025,0,17603,17602,1,0,0,0,17603,17604,1,0,0,0,17604,2001,1,0,0,0, +17605,17621,5,1669,0,0,17606,17611,3,2004,1002,0,17607,17608,5,2451,0,0, +17608,17610,3,2004,1002,0,17609,17607,1,0,0,0,17610,17613,1,0,0,0,17611, +17609,1,0,0,0,17611,17612,1,0,0,0,17612,17622,1,0,0,0,17613,17611,1,0,0, +0,17614,17615,5,2256,0,0,17615,17616,5,2445,0,0,17616,17617,3,2390,1195, +0,17617,17618,5,2446,0,0,17618,17619,5,2469,0,0,17619,17620,3,2070,1035, +0,17620,17622,1,0,0,0,17621,17606,1,0,0,0,17621,17614,1,0,0,0,17622,2003, +1,0,0,0,17623,17624,3,2328,1164,0,17624,17625,5,2469,0,0,17625,17626,3,2070, +1035,0,17626,17632,1,0,0,0,17627,17628,3,2348,1174,0,17628,17629,5,2469, +0,0,17629,17630,3,1888,944,0,17630,17632,1,0,0,0,17631,17623,1,0,0,0,17631, +17627,1,0,0,0,17632,2005,1,0,0,0,17633,17635,5,401,0,0,17634,17636,5,626, +0,0,17635,17634,1,0,0,0,17635,17636,1,0,0,0,17636,17637,1,0,0,0,17637,17639, +3,2046,1023,0,17638,17640,3,2260,1130,0,17639,17638,1,0,0,0,17639,17640, +1,0,0,0,17640,17642,1,0,0,0,17641,17643,3,2048,1024,0,17642,17641,1,0,0, +0,17642,17643,1,0,0,0,17643,17645,1,0,0,0,17644,17646,3,2050,1025,0,17645, +17644,1,0,0,0,17645,17646,1,0,0,0,17646,2007,1,0,0,0,17647,17650,5,754,0, +0,17648,17651,3,2010,1005,0,17649,17651,3,2012,1006,0,17650,17648,1,0,0, +0,17650,17649,1,0,0,0,17651,2009,1,0,0,0,17652,17658,3,2022,1011,0,17653, +17655,3,2024,1012,0,17654,17656,3,2048,1024,0,17655,17654,1,0,0,0,17655, +17656,1,0,0,0,17656,17659,1,0,0,0,17657,17659,3,1862,931,0,17658,17653,1, +0,0,0,17658,17657,1,0,0,0,17659,17661,1,0,0,0,17660,17662,3,2050,1025,0, +17661,17660,1,0,0,0,17661,17662,1,0,0,0,17662,2011,1,0,0,0,17663,17665,5, +38,0,0,17664,17666,3,2014,1007,0,17665,17664,1,0,0,0,17666,17667,1,0,0,0, +17667,17665,1,0,0,0,17667,17668,1,0,0,0,17668,17671,1,0,0,0,17669,17671, +3,2016,1008,0,17670,17663,1,0,0,0,17670,17669,1,0,0,0,17671,17672,1,0,0, +0,17672,17673,3,1862,931,0,17673,2013,1,0,0,0,17674,17676,3,2022,1011,0, +17675,17677,3,2024,1012,0,17676,17675,1,0,0,0,17676,17677,1,0,0,0,17677, +17679,1,0,0,0,17678,17680,3,2050,1025,0,17679,17678,1,0,0,0,17679,17680, +1,0,0,0,17680,2015,1,0,0,0,17681,17683,7,218,0,0,17682,17681,1,0,0,0,17682, +17683,1,0,0,0,17683,17685,1,0,0,0,17684,17686,3,2018,1009,0,17685,17684, +1,0,0,0,17686,17687,1,0,0,0,17687,17685,1,0,0,0,17687,17688,1,0,0,0,17688, +17690,1,0,0,0,17689,17691,3,2020,1010,0,17690,17689,1,0,0,0,17690,17691, +1,0,0,0,17691,2017,1,0,0,0,17692,17693,5,2298,0,0,17693,17694,3,2066,1033, +0,17694,17696,5,2097,0,0,17695,17697,3,2014,1007,0,17696,17695,1,0,0,0,17697, +17698,1,0,0,0,17698,17696,1,0,0,0,17698,17699,1,0,0,0,17699,2019,1,0,0,0, +17700,17702,5,489,0,0,17701,17703,3,2014,1007,0,17702,17701,1,0,0,0,17703, +17704,1,0,0,0,17704,17702,1,0,0,0,17704,17705,1,0,0,0,17705,2021,1,0,0,0, +17706,17707,5,777,0,0,17707,17709,3,2046,1023,0,17708,17710,3,2348,1174, +0,17709,17708,1,0,0,0,17709,17710,1,0,0,0,17710,2023,1,0,0,0,17711,17718, +5,2255,0,0,17712,17719,5,2478,0,0,17713,17714,5,2445,0,0,17714,17715,3,2068, +1034,0,17715,17716,5,2446,0,0,17716,17719,1,0,0,0,17717,17719,3,2110,1055, +0,17718,17712,1,0,0,0,17718,17713,1,0,0,0,17718,17717,1,0,0,0,17719,2025, +1,0,0,0,17720,17721,5,944,0,0,17721,17722,5,777,0,0,17722,17724,3,2330,1165, +0,17723,17725,3,2258,1129,0,17724,17723,1,0,0,0,17724,17725,1,0,0,0,17725, +17726,1,0,0,0,17726,17727,5,2244,0,0,17727,17728,3,2036,1018,0,17728,17729, +5,1257,0,0,17729,17730,5,2445,0,0,17730,17731,3,2066,1033,0,17731,17740, +5,2446,0,0,17732,17734,3,2028,1014,0,17733,17735,3,2034,1017,0,17734,17733, +1,0,0,0,17734,17735,1,0,0,0,17735,17741,1,0,0,0,17736,17738,3,2034,1017, +0,17737,17739,3,2028,1014,0,17738,17737,1,0,0,0,17738,17739,1,0,0,0,17739, +17741,1,0,0,0,17740,17732,1,0,0,0,17740,17736,1,0,0,0,17740,17741,1,0,0, +0,17741,17743,1,0,0,0,17742,17744,3,2050,1025,0,17743,17742,1,0,0,0,17743, +17744,1,0,0,0,17744,2027,1,0,0,0,17745,17746,5,2298,0,0,17746,17747,5,912, +0,0,17747,17748,5,2097,0,0,17748,17749,5,2205,0,0,17749,17750,5,1669,0,0, +17750,17755,3,2030,1015,0,17751,17752,5,2451,0,0,17752,17754,3,2030,1015, +0,17753,17751,1,0,0,0,17754,17757,1,0,0,0,17755,17753,1,0,0,0,17755,17756, +1,0,0,0,17756,17759,1,0,0,0,17757,17755,1,0,0,0,17758,17760,3,2260,1130, +0,17759,17758,1,0,0,0,17759,17760,1,0,0,0,17760,17762,1,0,0,0,17761,17763, +3,2032,1016,0,17762,17761,1,0,0,0,17762,17763,1,0,0,0,17763,2029,1,0,0,0, +17764,17765,3,2328,1164,0,17765,17766,5,2469,0,0,17766,17767,3,2070,1035, +0,17767,2031,1,0,0,0,17768,17769,5,401,0,0,17769,17770,3,2260,1130,0,17770, +2033,1,0,0,0,17771,17772,5,2298,0,0,17772,17773,5,1202,0,0,17773,17774,5, +912,0,0,17774,17775,5,2097,0,0,17775,17777,5,754,0,0,17776,17778,3,2348, +1174,0,17777,17776,1,0,0,0,17777,17778,1,0,0,0,17778,17779,1,0,0,0,17779, +17781,3,2024,1012,0,17780,17782,3,2260,1130,0,17781,17780,1,0,0,0,17781, +17782,1,0,0,0,17782,2035,1,0,0,0,17783,17794,3,2330,1165,0,17784,17785,5, +2445,0,0,17785,17786,3,1862,931,0,17786,17787,5,2446,0,0,17787,17794,1,0, +0,0,17788,17794,3,2058,1029,0,17789,17790,5,2445,0,0,17790,17791,3,2058, +1029,0,17791,17792,5,2446,0,0,17792,17794,1,0,0,0,17793,17783,1,0,0,0,17793, +17784,1,0,0,0,17793,17788,1,0,0,0,17793,17789,1,0,0,0,17794,17796,1,0,0, +0,17795,17797,3,2258,1129,0,17796,17795,1,0,0,0,17796,17797,1,0,0,0,17797, +2037,1,0,0,0,17798,17799,5,879,0,0,17799,17800,5,2081,0,0,17800,17805,3, +2042,1021,0,17801,17802,5,2451,0,0,17802,17804,3,2042,1021,0,17803,17801, +1,0,0,0,17804,17807,1,0,0,0,17805,17803,1,0,0,0,17805,17806,1,0,0,0,17806, +17808,1,0,0,0,17807,17805,1,0,0,0,17808,17809,5,736,0,0,17809,17810,3,2044, +1022,0,17810,17812,5,975,0,0,17811,17813,3,2040,1020,0,17812,17811,1,0,0, +0,17812,17813,1,0,0,0,17813,2039,1,0,0,0,17814,17815,5,2291,0,0,17815,17818, +3,2070,1035,0,17816,17818,5,1217,0,0,17817,17814,1,0,0,0,17817,17816,1,0, +0,0,17818,2041,1,0,0,0,17819,17821,3,2330,1165,0,17820,17822,3,2254,1127, +0,17821,17820,1,0,0,0,17821,17822,1,0,0,0,17822,2043,1,0,0,0,17823,17824, +5,1604,0,0,17824,17836,5,1678,0,0,17825,17826,5,1604,0,0,17826,17836,5,539, +0,0,17827,17829,5,1678,0,0,17828,17830,5,2205,0,0,17829,17828,1,0,0,0,17829, +17830,1,0,0,0,17830,17836,1,0,0,0,17831,17832,5,1678,0,0,17832,17833,5,1604, +0,0,17833,17836,5,539,0,0,17834,17836,5,539,0,0,17835,17823,1,0,0,0,17835, +17825,1,0,0,0,17835,17827,1,0,0,0,17835,17831,1,0,0,0,17835,17834,1,0,0, +0,17836,2045,1,0,0,0,17837,17844,3,2056,1028,0,17838,17839,5,1256,0,0,17839, +17840,5,2445,0,0,17840,17841,3,2056,1028,0,17841,17842,5,2446,0,0,17842, +17844,1,0,0,0,17843,17837,1,0,0,0,17843,17838,1,0,0,0,17844,17846,1,0,0, +0,17845,17847,3,2258,1129,0,17846,17845,1,0,0,0,17846,17847,1,0,0,0,17847, +2047,1,0,0,0,17848,17849,7,202,0,0,17849,17850,3,2068,1034,0,17850,17851, +3,2262,1131,0,17851,2049,1,0,0,0,17852,17853,5,886,0,0,17853,17855,5,520, +0,0,17854,17856,3,2052,1026,0,17855,17854,1,0,0,0,17855,17856,1,0,0,0,17856, +17858,1,0,0,0,17857,17859,3,2070,1035,0,17858,17857,1,0,0,0,17858,17859, +1,0,0,0,17859,17861,1,0,0,0,17860,17862,3,2054,1027,0,17861,17860,1,0,0, +0,17861,17862,1,0,0,0,17862,2051,1,0,0,0,17863,17864,5,777,0,0,17864,17865, +3,2330,1165,0,17865,2053,1,0,0,0,17866,17867,5,1547,0,0,17867,17870,5,856, +0,0,17868,17871,5,2183,0,0,17869,17871,3,2070,1035,0,17870,17868,1,0,0,0, +17870,17869,1,0,0,0,17871,2055,1,0,0,0,17872,17909,3,2058,1029,0,17873,17874, +5,2445,0,0,17874,17876,3,1862,931,0,17875,17877,3,2060,1030,0,17876,17875, +1,0,0,0,17876,17877,1,0,0,0,17877,17878,1,0,0,0,17878,17879,5,2446,0,0,17879, +17909,1,0,0,0,17880,17882,3,2330,1165,0,17881,17883,3,1878,939,0,17882,17881, +1,0,0,0,17882,17883,1,0,0,0,17883,17885,1,0,0,0,17884,17886,3,2062,1031, +0,17885,17884,1,0,0,0,17885,17886,1,0,0,0,17886,17909,1,0,0,0,17887,17890, +3,2146,1073,0,17888,17889,5,69,0,0,17889,17891,3,2390,1195,0,17890,17888, +1,0,0,0,17890,17891,1,0,0,0,17891,17909,1,0,0,0,17892,17893,5,825,0,0,17893, +17894,5,2445,0,0,17894,17896,3,1888,944,0,17895,17897,3,2060,1030,0,17896, +17895,1,0,0,0,17896,17897,1,0,0,0,17897,17898,1,0,0,0,17898,17899,5,2446, +0,0,17899,17909,1,0,0,0,17900,17901,4,1028,11,0,17901,17902,5,1549,0,0,17902, +17903,5,2445,0,0,17903,17904,3,2330,1165,0,17904,17905,5,1202,0,0,17905, +17906,5,2349,0,0,17906,17907,5,2446,0,0,17907,17909,1,0,0,0,17908,17872, +1,0,0,0,17908,17873,1,0,0,0,17908,17880,1,0,0,0,17908,17887,1,0,0,0,17908, +17892,1,0,0,0,17908,17900,1,0,0,0,17909,2057,1,0,0,0,17910,17921,7,219,0, +0,17911,17912,5,2445,0,0,17912,17913,3,1888,944,0,17913,17914,5,2446,0,0, +17914,17922,1,0,0,0,17915,17916,5,2445,0,0,17916,17917,3,2070,1035,0,17917, +17919,5,2446,0,0,17918,17920,3,2396,1198,0,17919,17918,1,0,0,0,17919,17920, +1,0,0,0,17920,17922,1,0,0,0,17921,17911,1,0,0,0,17921,17915,1,0,0,0,17922, +2059,1,0,0,0,17923,17932,5,2306,0,0,17924,17925,5,1503,0,0,17925,17933,5, +1256,0,0,17926,17927,5,200,0,0,17927,17930,5,1270,0,0,17928,17929,5,284, +0,0,17929,17931,3,2298,1149,0,17930,17928,1,0,0,0,17930,17931,1,0,0,0,17931, +17933,1,0,0,0,17932,17924,1,0,0,0,17932,17926,1,0,0,0,17933,2061,1,0,0,0, +17934,17936,5,1612,0,0,17935,17937,5,143,0,0,17936,17935,1,0,0,0,17936,17937, +1,0,0,0,17937,17938,1,0,0,0,17938,17939,5,2445,0,0,17939,17942,3,2070,1035, +0,17940,17941,5,2451,0,0,17941,17943,3,2070,1035,0,17942,17940,1,0,0,0,17942, +17943,1,0,0,0,17943,17944,1,0,0,0,17944,17946,5,2446,0,0,17945,17947,3,2064, +1032,0,17946,17945,1,0,0,0,17946,17947,1,0,0,0,17947,2063,1,0,0,0,17948, +17949,5,1640,0,0,17949,17950,5,2445,0,0,17950,17951,3,2070,1035,0,17951, +17952,5,2446,0,0,17952,2065,1,0,0,0,17953,17960,3,2070,1035,0,17954,17955, +5,795,0,0,17955,17956,5,2445,0,0,17956,17957,3,2068,1034,0,17957,17958,5, +2446,0,0,17958,17960,1,0,0,0,17959,17953,1,0,0,0,17959,17954,1,0,0,0,17960, +2067,1,0,0,0,17961,17966,3,2070,1035,0,17962,17963,5,2451,0,0,17963,17965, +3,2070,1035,0,17964,17962,1,0,0,0,17965,17968,1,0,0,0,17966,17964,1,0,0, +0,17966,17967,1,0,0,0,17967,2069,1,0,0,0,17968,17966,1,0,0,0,17969,17979, +5,2441,0,0,17970,17979,5,1226,0,0,17971,17979,5,2156,0,0,17972,17979,5,573, +0,0,17973,17979,5,2440,0,0,17974,17979,5,2439,0,0,17975,17979,3,2328,1164, +0,17976,17979,3,2072,1036,0,17977,17979,3,2074,1037,0,17978,17969,1,0,0, +0,17978,17970,1,0,0,0,17978,17971,1,0,0,0,17978,17972,1,0,0,0,17978,17973, +1,0,0,0,17978,17974,1,0,0,0,17978,17975,1,0,0,0,17978,17976,1,0,0,0,17978, +17977,1,0,0,0,17979,2071,1,0,0,0,17980,17981,5,341,0,0,17981,17982,5,2445, +0,0,17982,17983,3,1888,944,0,17983,17984,5,2446,0,0,17984,2073,1,0,0,0,17985, +17986,6,1037,-1,0,17986,17987,3,2076,1038,0,17987,17996,1,0,0,0,17988,17989, +10,2,0,0,17989,17990,5,49,0,0,17990,17995,3,2074,1037,3,17991,17992,10,1, +0,0,17992,17993,5,1305,0,0,17993,17995,3,2074,1037,2,17994,17988,1,0,0,0, +17994,17991,1,0,0,0,17995,17998,1,0,0,0,17996,17994,1,0,0,0,17996,17997, +1,0,0,0,17997,2075,1,0,0,0,17998,17996,1,0,0,0,17999,18001,5,1202,0,0,18000, +17999,1,0,0,0,18000,18001,1,0,0,0,18001,18002,1,0,0,0,18002,18004,3,2082, +1041,0,18003,18005,3,2078,1039,0,18004,18003,1,0,0,0,18004,18005,1,0,0,0, +18005,2077,1,0,0,0,18006,18008,5,783,0,0,18007,18009,5,1202,0,0,18008,18007, +1,0,0,0,18008,18009,1,0,0,0,18009,18010,1,0,0,0,18010,18011,3,2080,1040, +0,18011,2079,1,0,0,0,18012,18051,5,1226,0,0,18013,18051,5,997,0,0,18014, +18051,5,1442,0,0,18015,18051,5,733,0,0,18016,18017,5,36,0,0,18017,18051, +5,1669,0,0,18018,18051,5,495,0,0,18019,18021,5,1244,0,0,18020,18022,5,2164, +0,0,18021,18020,1,0,0,0,18021,18022,1,0,0,0,18022,18023,1,0,0,0,18023,18025, +5,2445,0,0,18024,18026,5,1256,0,0,18025,18024,1,0,0,0,18025,18026,1,0,0, +0,18026,18027,1,0,0,0,18027,18032,3,2362,1181,0,18028,18029,5,2451,0,0,18029, +18031,3,2362,1181,0,18030,18028,1,0,0,0,18031,18034,1,0,0,0,18032,18030, +1,0,0,0,18032,18033,1,0,0,0,18033,18035,1,0,0,0,18034,18032,1,0,0,0,18035, +18036,5,2446,0,0,18036,18051,1,0,0,0,18037,18040,5,799,0,0,18038,18039,5, +619,0,0,18039,18041,5,799,0,0,18040,18038,1,0,0,0,18040,18041,1,0,0,0,18041, +18043,1,0,0,0,18042,18044,7,220,0,0,18043,18042,1,0,0,0,18043,18044,1,0, +0,0,18044,18048,1,0,0,0,18045,18046,7,2,0,0,18046,18047,5,2181,0,0,18047, +18049,5,817,0,0,18048,18045,1,0,0,0,18048,18049,1,0,0,0,18049,18051,1,0, +0,0,18050,18012,1,0,0,0,18050,18013,1,0,0,0,18050,18014,1,0,0,0,18050,18015, +1,0,0,0,18050,18016,1,0,0,0,18050,18018,1,0,0,0,18050,18019,1,0,0,0,18050, +18037,1,0,0,0,18051,2081,1,0,0,0,18052,18053,6,1041,-1,0,18053,18062,3,2084, +1042,0,18054,18056,5,1202,0,0,18055,18054,1,0,0,0,18055,18056,1,0,0,0,18056, +18057,1,0,0,0,18057,18059,7,221,0,0,18058,18060,5,1244,0,0,18059,18058,1, +0,0,0,18059,18060,1,0,0,0,18060,18061,1,0,0,0,18061,18063,3,2094,1047,0, +18062,18055,1,0,0,0,18062,18063,1,0,0,0,18063,18073,1,0,0,0,18064,18065, +10,1,0,0,18065,18066,5,992,0,0,18066,18068,7,222,0,0,18067,18069,7,223,0, +0,18068,18067,1,0,0,0,18068,18069,1,0,0,0,18069,18070,1,0,0,0,18070,18072, +3,2084,1042,0,18071,18064,1,0,0,0,18072,18075,1,0,0,0,18073,18071,1,0,0, +0,18073,18074,1,0,0,0,18074,2083,1,0,0,0,18075,18073,1,0,0,0,18076,18077, +6,1042,-1,0,18077,18078,3,2086,1043,0,18078,18091,1,0,0,0,18079,18080,10, +3,0,0,18080,18081,3,2088,1044,0,18081,18082,3,2084,1042,4,18082,18090,1, +0,0,0,18083,18085,10,2,0,0,18084,18086,5,1202,0,0,18085,18084,1,0,0,0,18085, +18086,1,0,0,0,18086,18087,1,0,0,0,18087,18088,5,736,0,0,18088,18090,3,2090, +1045,0,18089,18079,1,0,0,0,18089,18083,1,0,0,0,18090,18093,1,0,0,0,18091, +18089,1,0,0,0,18091,18092,1,0,0,0,18092,2085,1,0,0,0,18093,18091,1,0,0,0, +18094,18110,3,2094,1047,0,18095,18097,5,1202,0,0,18096,18095,1,0,0,0,18096, +18097,1,0,0,0,18097,18108,1,0,0,0,18098,18099,5,736,0,0,18099,18109,3,2090, +1045,0,18100,18101,5,118,0,0,18101,18109,3,2092,1046,0,18102,18103,7,224, +0,0,18103,18106,3,2094,1047,0,18104,18105,5,523,0,0,18105,18107,3,2094,1047, +0,18106,18104,1,0,0,0,18106,18107,1,0,0,0,18107,18109,1,0,0,0,18108,18098, +1,0,0,0,18108,18100,1,0,0,0,18108,18102,1,0,0,0,18109,18111,1,0,0,0,18110, +18096,1,0,0,0,18110,18111,1,0,0,0,18111,2087,1,0,0,0,18112,18127,5,2469, +0,0,18113,18121,5,2460,0,0,18114,18115,5,2465,0,0,18115,18121,5,2464,0,0, +18116,18117,5,2463,0,0,18117,18121,5,2469,0,0,18118,18119,5,2461,0,0,18119, +18121,5,2469,0,0,18120,18113,1,0,0,0,18120,18114,1,0,0,0,18120,18116,1,0, +0,0,18120,18118,1,0,0,0,18121,18127,1,0,0,0,18122,18124,7,225,0,0,18123, +18125,5,2469,0,0,18124,18123,1,0,0,0,18124,18125,1,0,0,0,18125,18127,1,0, +0,0,18126,18112,1,0,0,0,18126,18120,1,0,0,0,18126,18122,1,0,0,0,18127,2089, +1,0,0,0,18128,18129,5,2445,0,0,18129,18130,3,1888,944,0,18130,18131,5,2446, +0,0,18131,18147,1,0,0,0,18132,18133,5,2445,0,0,18133,18138,3,2094,1047,0, +18134,18135,5,2451,0,0,18135,18137,3,2094,1047,0,18136,18134,1,0,0,0,18137, +18140,1,0,0,0,18138,18136,1,0,0,0,18138,18139,1,0,0,0,18139,18141,1,0,0, +0,18140,18138,1,0,0,0,18141,18142,5,2446,0,0,18142,18147,1,0,0,0,18143,18147, +3,2382,1191,0,18144,18147,3,2370,1185,0,18145,18147,3,2372,1186,0,18146, +18128,1,0,0,0,18146,18132,1,0,0,0,18146,18143,1,0,0,0,18146,18144,1,0,0, +0,18146,18145,1,0,0,0,18147,2091,1,0,0,0,18148,18149,3,2094,1047,0,18149, +18150,5,49,0,0,18150,18151,3,2094,1047,0,18151,2093,1,0,0,0,18152,18153, +6,1047,-1,0,18153,18162,3,2098,1049,0,18154,18159,5,82,0,0,18155,18160,5, +871,0,0,18156,18157,5,2110,0,0,18157,18158,5,2361,0,0,18158,18160,3,2094, +1047,0,18159,18155,1,0,0,0,18159,18156,1,0,0,0,18160,18163,1,0,0,0,18161, +18163,3,2096,1048,0,18162,18154,1,0,0,0,18162,18161,1,0,0,0,18162,18163, +1,0,0,0,18163,18167,1,0,0,0,18164,18165,5,1257,0,0,18165,18166,5,1318,0, +0,18166,18168,7,226,0,0,18167,18164,1,0,0,0,18167,18168,1,0,0,0,18168,18187, +1,0,0,0,18169,18170,10,5,0,0,18170,18171,5,2447,0,0,18171,18186,3,2094,1047, +6,18172,18173,10,4,0,0,18173,18174,7,227,0,0,18174,18186,3,2094,1047,5,18175, +18176,10,3,0,0,18176,18177,7,139,0,0,18177,18186,3,2094,1047,4,18178,18179, +10,2,0,0,18179,18180,5,2468,0,0,18180,18181,5,2468,0,0,18181,18186,3,2094, +1047,3,18182,18183,10,1,0,0,18183,18184,5,2370,0,0,18184,18186,3,1664,832, +0,18185,18169,1,0,0,0,18185,18172,1,0,0,0,18185,18175,1,0,0,0,18185,18178, +1,0,0,0,18185,18182,1,0,0,0,18186,18189,1,0,0,0,18187,18185,1,0,0,0,18187, +18188,1,0,0,0,18188,2095,1,0,0,0,18189,18187,1,0,0,0,18190,18195,5,363,0, +0,18191,18192,5,2445,0,0,18192,18193,3,2094,1047,0,18193,18194,5,2446,0, +0,18194,18196,1,0,0,0,18195,18191,1,0,0,0,18195,18196,1,0,0,0,18196,18197, +1,0,0,0,18197,18198,5,2139,0,0,18198,18203,5,1634,0,0,18199,18200,5,2445, +0,0,18200,18201,3,2094,1047,0,18201,18202,5,2446,0,0,18202,18204,1,0,0,0, +18203,18199,1,0,0,0,18203,18204,1,0,0,0,18204,18218,1,0,0,0,18205,18210, +5,2356,0,0,18206,18207,5,2445,0,0,18207,18208,3,2094,1047,0,18208,18209, +5,2446,0,0,18209,18211,1,0,0,0,18210,18206,1,0,0,0,18210,18211,1,0,0,0,18211, +18212,1,0,0,0,18212,18213,5,2139,0,0,18213,18218,5,983,0,0,18214,18215,3, +2094,1047,0,18215,18216,7,228,0,0,18216,18218,1,0,0,0,18217,18190,1,0,0, +0,18217,18205,1,0,0,0,18217,18214,1,0,0,0,18218,2097,1,0,0,0,18219,18224, +3,2106,1053,0,18220,18221,5,2470,0,0,18221,18222,3,2100,1050,0,18222,18223, +5,2471,0,0,18223,18225,1,0,0,0,18224,18220,1,0,0,0,18224,18225,1,0,0,0,18225, +2099,1,0,0,0,18226,18229,5,55,0,0,18227,18229,3,2070,1035,0,18228,18226, +1,0,0,0,18228,18227,1,0,0,0,18229,18237,1,0,0,0,18230,18233,5,2451,0,0,18231, +18234,5,55,0,0,18232,18234,3,2070,1035,0,18233,18231,1,0,0,0,18233,18232, +1,0,0,0,18234,18236,1,0,0,0,18235,18230,1,0,0,0,18236,18239,1,0,0,0,18237, +18235,1,0,0,0,18237,18238,1,0,0,0,18238,18250,1,0,0,0,18239,18237,1,0,0, +0,18240,18245,3,2102,1051,0,18241,18242,5,2451,0,0,18242,18244,3,2102,1051, +0,18243,18241,1,0,0,0,18244,18247,1,0,0,0,18245,18243,1,0,0,0,18245,18246, +1,0,0,0,18246,18250,1,0,0,0,18247,18245,1,0,0,0,18248,18250,3,2104,1052, +0,18249,18228,1,0,0,0,18249,18240,1,0,0,0,18249,18248,1,0,0,0,18250,2101, +1,0,0,0,18251,18252,5,618,0,0,18252,18270,3,2328,1164,0,18253,18254,5,736, +0,0,18254,18256,5,2445,0,0,18255,18257,3,2068,1034,0,18256,18255,1,0,0,0, +18256,18257,1,0,0,0,18257,18258,1,0,0,0,18258,18271,5,2446,0,0,18259,18260, +5,855,0,0,18260,18262,3,2070,1035,0,18261,18259,1,0,0,0,18261,18262,1,0, +0,0,18262,18263,1,0,0,0,18263,18264,5,626,0,0,18264,18265,3,2070,1035,0, +18265,18266,5,2139,0,0,18266,18267,3,2070,1035,0,18267,18268,7,229,0,0,18268, +18269,3,2070,1035,0,18269,18271,1,0,0,0,18270,18253,1,0,0,0,18270,18261, +1,0,0,0,18271,2103,1,0,0,0,18272,18273,5,618,0,0,18273,18274,3,2348,1174, +0,18274,18275,5,736,0,0,18275,18282,5,2445,0,0,18276,18283,3,1888,944,0, +18277,18279,5,2445,0,0,18278,18280,3,2068,1034,0,18279,18278,1,0,0,0,18279, +18280,1,0,0,0,18280,18281,1,0,0,0,18281,18283,5,2446,0,0,18282,18276,1,0, +0,0,18282,18277,1,0,0,0,18283,18284,1,0,0,0,18284,18285,5,2446,0,0,18285, +2105,1,0,0,0,18286,18287,6,1053,-1,0,18287,18288,7,139,0,0,18288,18305,3, +2106,1053,12,18289,18290,5,1452,0,0,18290,18305,3,2106,1053,11,18291,18292, +5,277,0,0,18292,18305,3,2106,1053,10,18293,18294,5,1019,0,0,18294,18305, +3,2106,1053,9,18295,18296,5,443,0,0,18296,18305,3,2106,1053,8,18297,18298, +5,38,0,0,18298,18305,3,2106,1053,7,18299,18305,3,2122,1061,0,18300,18305, +3,2134,1067,0,18301,18305,3,2138,1069,0,18302,18305,3,2132,1066,0,18303, +18305,3,2108,1054,0,18304,18286,1,0,0,0,18304,18289,1,0,0,0,18304,18291, +1,0,0,0,18304,18293,1,0,0,0,18304,18295,1,0,0,0,18304,18297,1,0,0,0,18304, +18299,1,0,0,0,18304,18300,1,0,0,0,18304,18301,1,0,0,0,18304,18302,1,0,0, +0,18304,18303,1,0,0,0,18305,18318,1,0,0,0,18306,18307,10,5,0,0,18307,18314, +5,2438,0,0,18308,18315,7,230,0,0,18309,18310,7,231,0,0,18310,18311,5,2445, +0,0,18311,18312,3,2070,1035,0,18312,18313,5,2446,0,0,18313,18315,1,0,0,0, +18314,18308,1,0,0,0,18314,18309,1,0,0,0,18315,18317,1,0,0,0,18316,18306, +1,0,0,0,18317,18320,1,0,0,0,18318,18316,1,0,0,0,18318,18319,1,0,0,0,18319, +2107,1,0,0,0,18320,18318,1,0,0,0,18321,18338,5,1720,0,0,18322,18323,5,1382, +0,0,18323,18324,5,2445,0,0,18324,18325,3,2070,1035,0,18325,18326,5,2446, +0,0,18326,18339,1,0,0,0,18327,18336,5,1381,0,0,18328,18329,5,2438,0,0,18329, +18337,5,311,0,0,18330,18331,5,2445,0,0,18331,18332,3,2070,1035,0,18332,18333, +5,2446,0,0,18333,18334,5,2438,0,0,18334,18335,7,232,0,0,18335,18337,1,0, +0,0,18336,18328,1,0,0,0,18336,18330,1,0,0,0,18337,18339,1,0,0,0,18338,18322, +1,0,0,0,18338,18327,1,0,0,0,18339,2109,1,0,0,0,18340,18341,3,1076,538,0, +18341,18342,5,2445,0,0,18342,18343,3,2070,1035,0,18343,18348,5,2446,0,0, +18344,18345,5,2438,0,0,18345,18347,3,2374,1187,0,18346,18344,1,0,0,0,18347, +18350,1,0,0,0,18348,18346,1,0,0,0,18348,18349,1,0,0,0,18349,2111,1,0,0,0, +18350,18348,1,0,0,0,18351,18354,3,2116,1058,0,18352,18354,3,2114,1057,0, +18353,18351,1,0,0,0,18353,18352,1,0,0,0,18354,2113,1,0,0,0,18355,18357,3, +1764,882,0,18356,18355,1,0,0,0,18356,18357,1,0,0,0,18357,18358,1,0,0,0,18358, +18359,5,180,0,0,18359,18361,3,2070,1035,0,18360,18362,3,2118,1059,0,18361, +18360,1,0,0,0,18362,18363,1,0,0,0,18363,18361,1,0,0,0,18363,18364,1,0,0, +0,18364,18366,1,0,0,0,18365,18367,3,2120,1060,0,18366,18365,1,0,0,0,18366, +18367,1,0,0,0,18367,18368,1,0,0,0,18368,18370,5,506,0,0,18369,18371,5,180, +0,0,18370,18369,1,0,0,0,18370,18371,1,0,0,0,18371,18373,1,0,0,0,18372,18374, +3,2300,1150,0,18373,18372,1,0,0,0,18373,18374,1,0,0,0,18374,2115,1,0,0,0, +18375,18377,3,1764,882,0,18376,18375,1,0,0,0,18376,18377,1,0,0,0,18377,18378, +1,0,0,0,18378,18380,5,180,0,0,18379,18381,3,2118,1059,0,18380,18379,1,0, +0,0,18381,18382,1,0,0,0,18382,18380,1,0,0,0,18382,18383,1,0,0,0,18383,18385, +1,0,0,0,18384,18386,3,2120,1060,0,18385,18384,1,0,0,0,18385,18386,1,0,0, +0,18386,18387,1,0,0,0,18387,18389,5,506,0,0,18388,18390,5,180,0,0,18389, +18388,1,0,0,0,18389,18390,1,0,0,0,18390,18392,1,0,0,0,18391,18393,3,2300, +1150,0,18392,18391,1,0,0,0,18392,18393,1,0,0,0,18393,2117,1,0,0,0,18394, +18395,5,2298,0,0,18395,18396,3,2070,1035,0,18396,18397,5,2097,0,0,18397, +18398,3,1762,881,0,18398,2119,1,0,0,0,18399,18400,5,489,0,0,18400,18401, +3,1762,881,0,18401,2121,1,0,0,0,18402,18405,3,2126,1063,0,18403,18405,3, +2124,1062,0,18404,18402,1,0,0,0,18404,18403,1,0,0,0,18405,2123,1,0,0,0,18406, +18407,5,180,0,0,18407,18409,3,2070,1035,0,18408,18410,3,2128,1064,0,18409, +18408,1,0,0,0,18410,18411,1,0,0,0,18411,18409,1,0,0,0,18411,18412,1,0,0, +0,18412,18414,1,0,0,0,18413,18415,3,2130,1065,0,18414,18413,1,0,0,0,18414, +18415,1,0,0,0,18415,18416,1,0,0,0,18416,18418,5,506,0,0,18417,18419,5,180, +0,0,18418,18417,1,0,0,0,18418,18419,1,0,0,0,18419,2125,1,0,0,0,18420,18422, +5,180,0,0,18421,18423,3,2128,1064,0,18422,18421,1,0,0,0,18423,18424,1,0, +0,0,18424,18422,1,0,0,0,18424,18425,1,0,0,0,18425,18427,1,0,0,0,18426,18428, +3,2130,1065,0,18427,18426,1,0,0,0,18427,18428,1,0,0,0,18428,18429,1,0,0, +0,18429,18431,5,506,0,0,18430,18432,5,180,0,0,18431,18430,1,0,0,0,18431, +18432,1,0,0,0,18432,2127,1,0,0,0,18433,18434,5,2298,0,0,18434,18435,3,2070, +1035,0,18435,18436,5,2097,0,0,18436,18437,3,2070,1035,0,18437,2129,1,0,0, +0,18438,18439,5,489,0,0,18439,18440,3,2070,1035,0,18440,2131,1,0,0,0,18441, +18462,3,2370,1185,0,18442,18462,3,2382,1191,0,18443,18462,3,2394,1197,0, +18444,18446,3,2372,1186,0,18445,18447,3,2396,1198,0,18446,18445,1,0,0,0, +18446,18447,1,0,0,0,18447,18462,1,0,0,0,18448,18449,5,2445,0,0,18449,18450, +3,1888,944,0,18450,18454,5,2446,0,0,18451,18453,3,1892,946,0,18452,18451, +1,0,0,0,18453,18456,1,0,0,0,18454,18452,1,0,0,0,18454,18455,1,0,0,0,18455, +18462,1,0,0,0,18456,18454,1,0,0,0,18457,18458,5,2445,0,0,18458,18459,3,2068, +1034,0,18459,18460,5,2446,0,0,18460,18462,1,0,0,0,18461,18441,1,0,0,0,18461, +18442,1,0,0,0,18461,18443,1,0,0,0,18461,18444,1,0,0,0,18461,18448,1,0,0, +0,18461,18457,1,0,0,0,18462,2133,1,0,0,0,18463,18479,7,233,0,0,18464,18465, +5,2445,0,0,18465,18466,3,1860,930,0,18466,18467,5,2446,0,0,18467,18480,1, +0,0,0,18468,18469,5,2445,0,0,18469,18474,3,2070,1035,0,18470,18471,5,2451, +0,0,18471,18473,3,2070,1035,0,18472,18470,1,0,0,0,18473,18476,1,0,0,0,18474, +18472,1,0,0,0,18474,18475,1,0,0,0,18475,18477,1,0,0,0,18476,18474,1,0,0, +0,18477,18478,5,2446,0,0,18478,18480,1,0,0,0,18479,18464,1,0,0,0,18479,18468, +1,0,0,0,18480,2135,1,0,0,0,18481,18482,5,2414,0,0,18482,18483,5,2445,0,0, +18483,18484,3,2070,1035,0,18484,18485,5,2451,0,0,18485,18488,3,2070,1035, +0,18486,18487,5,2451,0,0,18487,18489,3,2070,1035,0,18488,18486,1,0,0,0,18488, +18489,1,0,0,0,18489,18490,1,0,0,0,18490,18491,5,2446,0,0,18491,18568,1,0, +0,0,18492,18493,5,2415,0,0,18493,18497,5,2445,0,0,18494,18498,3,2376,1188, +0,18495,18498,3,2138,1069,0,18496,18498,3,2070,1035,0,18497,18494,1,0,0, +0,18497,18495,1,0,0,0,18497,18496,1,0,0,0,18498,18501,1,0,0,0,18499,18500, +5,2451,0,0,18500,18502,3,2388,1194,0,18501,18499,1,0,0,0,18501,18502,1,0, +0,0,18502,18505,1,0,0,0,18503,18504,5,2451,0,0,18504,18506,3,2388,1194,0, +18505,18503,1,0,0,0,18505,18506,1,0,0,0,18506,18507,1,0,0,0,18507,18508, +5,2446,0,0,18508,18568,1,0,0,0,18509,18510,5,2399,0,0,18510,18511,5,2445, +0,0,18511,18512,3,2068,1034,0,18512,18513,5,2446,0,0,18513,18568,1,0,0,0, +18514,18515,5,204,0,0,18515,18516,5,2445,0,0,18516,18517,3,2094,1047,0,18517, +18518,5,2244,0,0,18518,18519,5,1005,0,0,18519,18520,5,2446,0,0,18520,18568, +1,0,0,0,18521,18522,5,2409,0,0,18522,18523,5,2445,0,0,18523,18524,3,2070, +1035,0,18524,18525,5,2451,0,0,18525,18526,3,2070,1035,0,18526,18527,5,2446, +0,0,18527,18568,1,0,0,0,18528,18529,5,2416,0,0,18529,18537,5,2445,0,0,18530, +18532,7,234,0,0,18531,18530,1,0,0,0,18531,18532,1,0,0,0,18532,18534,1,0, +0,0,18533,18535,3,2070,1035,0,18534,18533,1,0,0,0,18534,18535,1,0,0,0,18535, +18536,1,0,0,0,18536,18538,5,626,0,0,18537,18531,1,0,0,0,18537,18538,1,0, +0,0,18538,18539,1,0,0,0,18539,18540,3,2094,1047,0,18540,18541,5,2446,0,0, +18541,18568,1,0,0,0,18542,18543,5,2423,0,0,18543,18547,5,2445,0,0,18544, +18548,3,2376,1188,0,18545,18548,3,2138,1069,0,18546,18548,3,2070,1035,0, +18547,18544,1,0,0,0,18547,18545,1,0,0,0,18547,18546,1,0,0,0,18548,18555, +1,0,0,0,18549,18550,5,387,0,0,18550,18551,3,2094,1047,0,18551,18552,5,1257, +0,0,18552,18553,5,299,0,0,18553,18554,5,518,0,0,18554,18556,1,0,0,0,18555, +18549,1,0,0,0,18555,18556,1,0,0,0,18556,18563,1,0,0,0,18557,18558,5,2451, +0,0,18558,18561,3,2388,1194,0,18559,18560,5,2451,0,0,18560,18562,3,2388, +1194,0,18561,18559,1,0,0,0,18561,18562,1,0,0,0,18562,18564,1,0,0,0,18563, +18557,1,0,0,0,18563,18564,1,0,0,0,18564,18565,1,0,0,0,18565,18566,5,2446, +0,0,18566,18568,1,0,0,0,18567,18481,1,0,0,0,18567,18492,1,0,0,0,18567,18509, +1,0,0,0,18567,18514,1,0,0,0,18567,18521,1,0,0,0,18567,18528,1,0,0,0,18567, +18542,1,0,0,0,18568,2137,1,0,0,0,18569,18574,3,2136,1068,0,18570,18574,3, +2178,1089,0,18571,18574,3,2140,1070,0,18572,18574,3,2184,1092,0,18573,18569, +1,0,0,0,18573,18570,1,0,0,0,18573,18571,1,0,0,0,18573,18572,1,0,0,0,18574, +2139,1,0,0,0,18575,18576,5,794,0,0,18576,18577,5,2445,0,0,18577,18582,3, +2148,1074,0,18578,18579,5,2451,0,0,18579,18581,3,2148,1074,0,18580,18578, +1,0,0,0,18581,18584,1,0,0,0,18582,18580,1,0,0,0,18582,18583,1,0,0,0,18583, +18586,1,0,0,0,18584,18582,1,0,0,0,18585,18587,3,2150,1075,0,18586,18585, +1,0,0,0,18586,18587,1,0,0,0,18587,18589,1,0,0,0,18588,18590,3,2152,1076, +0,18589,18588,1,0,0,0,18589,18590,1,0,0,0,18590,18592,1,0,0,0,18591,18593, +5,1764,0,0,18592,18591,1,0,0,0,18592,18593,1,0,0,0,18593,18594,1,0,0,0,18594, +18595,5,2446,0,0,18595,18764,1,0,0,0,18596,18597,5,793,0,0,18597,18598,5, +2445,0,0,18598,18601,3,2070,1035,0,18599,18600,5,619,0,0,18600,18602,5,799, +0,0,18601,18599,1,0,0,0,18601,18602,1,0,0,0,18602,18604,1,0,0,0,18603,18605, +3,1986,993,0,18604,18603,1,0,0,0,18604,18605,1,0,0,0,18605,18607,1,0,0,0, +18606,18608,3,2150,1075,0,18607,18606,1,0,0,0,18607,18608,1,0,0,0,18608, +18610,1,0,0,0,18609,18611,3,2152,1076,0,18610,18609,1,0,0,0,18610,18611, +1,0,0,0,18611,18613,1,0,0,0,18612,18614,5,1764,0,0,18613,18612,1,0,0,0,18613, +18614,1,0,0,0,18614,18615,1,0,0,0,18615,18616,5,2446,0,0,18616,18764,1,0, +0,0,18617,18618,5,801,0,0,18618,18619,5,2445,0,0,18619,18620,3,2142,1071, +0,18620,18621,5,2446,0,0,18621,18764,1,0,0,0,18622,18623,5,800,0,0,18623, +18625,5,2445,0,0,18624,18626,5,814,0,0,18625,18624,1,0,0,0,18625,18626,1, +0,0,0,18626,18627,1,0,0,0,18627,18628,3,2070,1035,0,18628,18629,5,2256,0, +0,18629,18633,3,2070,1035,0,18630,18631,7,235,0,0,18631,18632,5,1257,0,0, +18632,18634,5,1226,0,0,18633,18630,1,0,0,0,18633,18634,1,0,0,0,18634,18649, +1,0,0,0,18635,18647,5,1583,0,0,18636,18643,5,2257,0,0,18637,18638,5,2445, +0,0,18638,18640,5,2439,0,0,18639,18641,7,236,0,0,18640,18639,1,0,0,0,18640, +18641,1,0,0,0,18641,18642,1,0,0,0,18642,18644,5,2446,0,0,18643,18637,1,0, +0,0,18643,18644,1,0,0,0,18644,18648,1,0,0,0,18645,18648,5,215,0,0,18646, +18648,5,142,0,0,18647,18636,1,0,0,0,18647,18645,1,0,0,0,18647,18646,1,0, +0,0,18648,18650,1,0,0,0,18649,18635,1,0,0,0,18649,18650,1,0,0,0,18650,18652, +1,0,0,0,18651,18653,5,1764,0,0,18652,18651,1,0,0,0,18652,18653,1,0,0,0,18653, +18657,1,0,0,0,18654,18655,5,2306,0,0,18655,18656,5,2181,0,0,18656,18658, +5,817,0,0,18657,18654,1,0,0,0,18657,18658,1,0,0,0,18658,18659,1,0,0,0,18659, +18660,5,2446,0,0,18660,18764,1,0,0,0,18661,18662,5,803,0,0,18662,18663,5, +2445,0,0,18663,18666,3,2070,1035,0,18664,18665,5,619,0,0,18665,18667,5,799, +0,0,18666,18664,1,0,0,0,18666,18667,1,0,0,0,18667,18668,1,0,0,0,18668,18669, +5,2451,0,0,18669,18670,5,2441,0,0,18670,18672,3,2160,1080,0,18671,18673, +3,2164,1082,0,18672,18671,1,0,0,0,18672,18673,1,0,0,0,18673,18675,1,0,0, +0,18674,18676,3,2166,1083,0,18675,18674,1,0,0,0,18675,18676,1,0,0,0,18676, +18678,1,0,0,0,18677,18679,3,2168,1084,0,18678,18677,1,0,0,0,18678,18679, +1,0,0,0,18679,18680,1,0,0,0,18680,18681,5,2446,0,0,18681,18764,1,0,0,0,18682, +18683,5,804,0,0,18683,18684,5,2445,0,0,18684,18687,5,2441,0,0,18685,18686, +5,1583,0,0,18686,18688,3,2162,1081,0,18687,18685,1,0,0,0,18687,18688,1,0, +0,0,18688,18690,1,0,0,0,18689,18691,5,1446,0,0,18690,18689,1,0,0,0,18690, +18691,1,0,0,0,18691,18693,1,0,0,0,18692,18694,5,71,0,0,18693,18692,1,0,0, +0,18693,18694,1,0,0,0,18694,18696,1,0,0,0,18695,18697,5,2157,0,0,18696,18695, +1,0,0,0,18696,18697,1,0,0,0,18697,18706,1,0,0,0,18698,18703,5,1226,0,0,18699, +18703,5,518,0,0,18700,18701,5,495,0,0,18701,18703,7,237,0,0,18702,18698, +1,0,0,0,18702,18699,1,0,0,0,18702,18700,1,0,0,0,18703,18704,1,0,0,0,18704, +18705,5,1257,0,0,18705,18707,5,518,0,0,18706,18702,1,0,0,0,18706,18707,1, +0,0,0,18707,18708,1,0,0,0,18708,18764,5,2446,0,0,18709,18710,5,808,0,0,18710, +18711,5,2445,0,0,18711,18712,3,2070,1035,0,18712,18713,5,2451,0,0,18713, +18718,3,2154,1077,0,18714,18715,5,2451,0,0,18715,18717,3,2154,1077,0,18716, +18714,1,0,0,0,18717,18720,1,0,0,0,18718,18716,1,0,0,0,18718,18719,1,0,0, +0,18719,18721,1,0,0,0,18720,18718,1,0,0,0,18721,18722,5,2446,0,0,18722,18764, +1,0,0,0,18723,18724,5,809,0,0,18724,18725,5,2445,0,0,18725,18728,3,2070, +1035,0,18726,18727,5,619,0,0,18727,18729,5,799,0,0,18728,18726,1,0,0,0,18728, +18729,1,0,0,0,18729,18761,1,0,0,0,18730,18732,5,2451,0,0,18731,18733,5,2441, +0,0,18732,18731,1,0,0,0,18732,18733,1,0,0,0,18733,18735,1,0,0,0,18734,18736, +3,2170,1085,0,18735,18734,1,0,0,0,18735,18736,1,0,0,0,18736,18745,1,0,0, +0,18737,18742,5,518,0,0,18738,18742,5,1226,0,0,18739,18740,5,387,0,0,18740, +18742,3,2176,1088,0,18741,18737,1,0,0,0,18741,18738,1,0,0,0,18741,18739, +1,0,0,0,18741,18742,1,0,0,0,18742,18743,1,0,0,0,18743,18744,5,1257,0,0,18744, +18746,5,518,0,0,18745,18741,1,0,0,0,18745,18746,1,0,0,0,18746,18755,1,0, +0,0,18747,18752,5,518,0,0,18748,18752,5,1226,0,0,18749,18750,5,387,0,0,18750, +18752,3,2176,1088,0,18751,18747,1,0,0,0,18751,18748,1,0,0,0,18751,18749, +1,0,0,0,18751,18752,1,0,0,0,18752,18753,1,0,0,0,18753,18754,5,1257,0,0,18754, +18756,5,495,0,0,18755,18751,1,0,0,0,18755,18756,1,0,0,0,18756,18758,1,0, +0,0,18757,18759,3,2174,1087,0,18758,18757,1,0,0,0,18758,18759,1,0,0,0,18759, +18760,1,0,0,0,18760,18762,5,2446,0,0,18761,18730,1,0,0,0,18761,18762,1,0, +0,0,18762,18764,1,0,0,0,18763,18575,1,0,0,0,18763,18596,1,0,0,0,18763,18617, +1,0,0,0,18763,18622,1,0,0,0,18763,18661,1,0,0,0,18763,18682,1,0,0,0,18763, +18709,1,0,0,0,18763,18723,1,0,0,0,18764,2141,1,0,0,0,18765,18770,3,2144, +1072,0,18766,18767,5,2451,0,0,18767,18769,3,2144,1072,0,18768,18766,1,0, +0,0,18769,18772,1,0,0,0,18770,18768,1,0,0,0,18770,18771,1,0,0,0,18771,18775, +1,0,0,0,18772,18770,1,0,0,0,18773,18775,5,2448,0,0,18774,18765,1,0,0,0,18774, +18773,1,0,0,0,18775,18777,1,0,0,0,18776,18778,3,2150,1075,0,18777,18776, +1,0,0,0,18777,18778,1,0,0,0,18778,18780,1,0,0,0,18779,18781,3,2152,1076, +0,18780,18779,1,0,0,0,18780,18781,1,0,0,0,18781,18783,1,0,0,0,18782,18784, +5,1764,0,0,18783,18782,1,0,0,0,18783,18784,1,0,0,0,18784,18788,1,0,0,0,18785, +18786,5,2306,0,0,18786,18787,5,2181,0,0,18787,18789,5,817,0,0,18788,18785, +1,0,0,0,18788,18789,1,0,0,0,18789,2143,1,0,0,0,18790,18792,5,814,0,0,18791, +18790,1,0,0,0,18791,18792,1,0,0,0,18792,18793,1,0,0,0,18793,18795,3,2070, +1035,0,18794,18796,7,238,0,0,18795,18794,1,0,0,0,18795,18796,1,0,0,0,18796, +18797,1,0,0,0,18797,18798,3,2070,1035,0,18798,18805,1,0,0,0,18799,18800, +3,2070,1035,0,18800,18801,5,2466,0,0,18801,18802,3,2070,1035,0,18802,18805, +1,0,0,0,18803,18805,3,2390,1195,0,18804,18791,1,0,0,0,18804,18799,1,0,0, +0,18804,18803,1,0,0,0,18805,18808,1,0,0,0,18806,18807,5,619,0,0,18807,18809, +5,799,0,0,18808,18806,1,0,0,0,18808,18809,1,0,0,0,18809,2145,1,0,0,0,18810, +18811,5,805,0,0,18811,18812,5,2445,0,0,18812,18815,3,2070,1035,0,18813,18814, +5,619,0,0,18814,18816,5,799,0,0,18815,18813,1,0,0,0,18815,18816,1,0,0,0, +18816,18819,1,0,0,0,18817,18818,5,2451,0,0,18818,18820,5,2441,0,0,18819, +18817,1,0,0,0,18819,18820,1,0,0,0,18820,18824,1,0,0,0,18821,18822,7,239, +0,0,18822,18823,5,1257,0,0,18823,18825,5,518,0,0,18824,18821,1,0,0,0,18824, +18825,1,0,0,0,18825,18829,1,0,0,0,18826,18827,7,240,0,0,18827,18828,5,1257, +0,0,18828,18830,5,495,0,0,18829,18826,1,0,0,0,18829,18830,1,0,0,0,18830, +18832,1,0,0,0,18831,18833,3,2156,1078,0,18832,18831,1,0,0,0,18832,18833, +1,0,0,0,18833,18834,1,0,0,0,18834,18835,5,2446,0,0,18835,2147,1,0,0,0,18836, +18842,3,2070,1035,0,18837,18842,5,2441,0,0,18838,18842,5,1226,0,0,18839, +18842,5,2439,0,0,18840,18842,3,2140,1070,0,18841,18836,1,0,0,0,18841,18837, +1,0,0,0,18841,18838,1,0,0,0,18841,18839,1,0,0,0,18841,18840,1,0,0,0,18842, +18845,1,0,0,0,18843,18844,5,619,0,0,18844,18846,5,799,0,0,18845,18843,1, +0,0,0,18845,18846,1,0,0,0,18846,2149,1,0,0,0,18847,18848,7,235,0,0,18848, +18849,5,1257,0,0,18849,18850,5,1226,0,0,18850,2151,1,0,0,0,18851,18863,5, +1583,0,0,18852,18859,5,2257,0,0,18853,18854,5,2445,0,0,18854,18856,5,2439, +0,0,18855,18857,7,236,0,0,18856,18855,1,0,0,0,18856,18857,1,0,0,0,18857, +18858,1,0,0,0,18858,18860,5,2446,0,0,18859,18853,1,0,0,0,18859,18860,1,0, +0,0,18860,18864,1,0,0,0,18861,18864,5,215,0,0,18862,18864,5,142,0,0,18863, +18852,1,0,0,0,18863,18861,1,0,0,0,18863,18862,1,0,0,0,18864,2153,1,0,0,0, +18865,18866,5,1556,0,0,18866,18872,5,2441,0,0,18867,18869,7,241,0,0,18868, +18867,1,0,0,0,18868,18869,1,0,0,0,18869,18870,1,0,0,0,18870,18871,5,1257, +0,0,18871,18873,5,962,0,0,18872,18868,1,0,0,0,18872,18873,1,0,0,0,18873, +18953,1,0,0,0,18874,18875,5,754,0,0,18875,18876,5,2441,0,0,18876,18877,5, +2469,0,0,18877,18881,5,2441,0,0,18878,18879,7,242,0,0,18879,18880,5,1257, +0,0,18880,18882,5,542,0,0,18881,18878,1,0,0,0,18881,18882,1,0,0,0,18882, +18888,1,0,0,0,18883,18885,7,243,0,0,18884,18883,1,0,0,0,18884,18885,1,0, +0,0,18885,18886,1,0,0,0,18886,18887,5,1257,0,0,18887,18889,5,1226,0,0,18888, +18884,1,0,0,0,18888,18889,1,0,0,0,18889,18953,1,0,0,0,18890,18891,5,1560, +0,0,18891,18892,5,2441,0,0,18892,18893,5,2469,0,0,18893,18897,5,2441,0,0, +18894,18895,7,244,0,0,18895,18896,5,1257,0,0,18896,18898,5,962,0,0,18897, +18894,1,0,0,0,18897,18898,1,0,0,0,18898,18904,1,0,0,0,18899,18901,7,245, +0,0,18900,18899,1,0,0,0,18900,18901,1,0,0,0,18901,18902,1,0,0,0,18902,18903, +5,1257,0,0,18903,18905,5,1226,0,0,18904,18900,1,0,0,0,18904,18905,1,0,0, +0,18905,18953,1,0,0,0,18906,18909,3,2070,1035,0,18907,18908,5,619,0,0,18908, +18910,5,799,0,0,18909,18907,1,0,0,0,18909,18910,1,0,0,0,18910,18953,1,0, +0,0,18911,18912,5,57,0,0,18912,18913,5,2441,0,0,18913,18914,5,2469,0,0,18914, +18918,5,2441,0,0,18915,18916,7,244,0,0,18916,18917,5,1257,0,0,18917,18919, +5,962,0,0,18918,18915,1,0,0,0,18918,18919,1,0,0,0,18919,18925,1,0,0,0,18920, +18922,7,245,0,0,18921,18920,1,0,0,0,18921,18922,1,0,0,0,18922,18923,1,0, +0,0,18923,18924,5,1257,0,0,18924,18926,5,1226,0,0,18925,18921,1,0,0,0,18925, +18926,1,0,0,0,18926,18953,1,0,0,0,18927,18928,5,1669,0,0,18928,18929,5,2441, +0,0,18929,18930,5,2469,0,0,18930,18933,3,2070,1035,0,18931,18932,5,619,0, +0,18932,18934,5,799,0,0,18933,18931,1,0,0,0,18933,18934,1,0,0,0,18934,18938, +1,0,0,0,18935,18936,7,242,0,0,18936,18937,5,1257,0,0,18937,18939,5,542,0, +0,18938,18935,1,0,0,0,18938,18939,1,0,0,0,18939,18943,1,0,0,0,18940,18941, +7,244,0,0,18941,18942,5,1257,0,0,18942,18944,5,962,0,0,18943,18940,1,0,0, +0,18943,18944,1,0,0,0,18944,18950,1,0,0,0,18945,18947,7,245,0,0,18946,18945, +1,0,0,0,18946,18947,1,0,0,0,18947,18948,1,0,0,0,18948,18949,5,1257,0,0,18949, +18951,5,1226,0,0,18950,18946,1,0,0,0,18950,18951,1,0,0,0,18951,18953,1,0, +0,0,18952,18865,1,0,0,0,18952,18874,1,0,0,0,18952,18890,1,0,0,0,18952,18906, +1,0,0,0,18952,18911,1,0,0,0,18952,18927,1,0,0,0,18953,2155,1,0,0,0,18954, +18955,5,238,0,0,18955,18956,5,2445,0,0,18956,18961,3,2158,1079,0,18957,18958, +5,2451,0,0,18958,18960,3,2158,1079,0,18959,18957,1,0,0,0,18960,18963,1,0, +0,0,18961,18959,1,0,0,0,18961,18962,1,0,0,0,18962,18964,1,0,0,0,18963,18961, +1,0,0,0,18964,18965,5,2446,0,0,18965,2157,1,0,0,0,18966,18968,3,2070,1035, +0,18967,18969,3,2172,1086,0,18968,18967,1,0,0,0,18968,18969,1,0,0,0,18969, +18980,1,0,0,0,18970,18972,5,543,0,0,18971,18970,1,0,0,0,18971,18972,1,0, +0,0,18972,18973,1,0,0,0,18973,18974,5,1361,0,0,18974,18981,5,2441,0,0,18975, +18978,5,2157,0,0,18976,18977,5,1361,0,0,18977,18979,5,2441,0,0,18978,18976, +1,0,0,0,18978,18979,1,0,0,0,18979,18981,1,0,0,0,18980,18971,1,0,0,0,18980, +18975,1,0,0,0,18980,18981,1,0,0,0,18981,18983,1,0,0,0,18982,18984,3,2166, +1083,0,18983,18982,1,0,0,0,18983,18984,1,0,0,0,18984,18986,1,0,0,0,18985, +18987,3,2168,1084,0,18986,18985,1,0,0,0,18986,18987,1,0,0,0,18987,19020, +1,0,0,0,18988,18990,3,2070,1035,0,18989,18991,3,2162,1081,0,18990,18989, +1,0,0,0,18990,18991,1,0,0,0,18991,18993,1,0,0,0,18992,18994,5,2157,0,0,18993, +18992,1,0,0,0,18993,18994,1,0,0,0,18994,18995,1,0,0,0,18995,18996,5,619, +0,0,18996,18998,5,799,0,0,18997,18999,3,2164,1082,0,18998,18997,1,0,0,0, +18998,18999,1,0,0,0,18999,19000,1,0,0,0,19000,19001,5,1361,0,0,19001,19002, +5,2441,0,0,19002,19020,1,0,0,0,19003,19005,5,1011,0,0,19004,19006,5,1361, +0,0,19005,19004,1,0,0,0,19005,19006,1,0,0,0,19006,19007,1,0,0,0,19007,19011, +3,2070,1035,0,19008,19009,5,2470,0,0,19009,19010,5,2448,0,0,19010,19012, +5,2471,0,0,19011,19008,1,0,0,0,19011,19012,1,0,0,0,19012,19013,1,0,0,0,19013, +19014,3,2156,1078,0,19014,19020,1,0,0,0,19015,19016,3,2070,1035,0,19016, +19017,5,618,0,0,19017,19018,5,1302,0,0,19018,19020,1,0,0,0,19019,18966,1, +0,0,0,19019,18988,1,0,0,0,19019,19003,1,0,0,0,19019,19015,1,0,0,0,19020, +2159,1,0,0,0,19021,19022,5,1583,0,0,19022,19024,3,2162,1081,0,19023,19021, +1,0,0,0,19023,19024,1,0,0,0,19024,19026,1,0,0,0,19025,19027,5,1446,0,0,19026, +19025,1,0,0,0,19026,19027,1,0,0,0,19027,19029,1,0,0,0,19028,19030,5,71,0, +0,19029,19028,1,0,0,0,19029,19030,1,0,0,0,19030,2161,1,0,0,0,19031,19038, +5,2257,0,0,19032,19033,5,2445,0,0,19033,19035,5,2439,0,0,19034,19036,7,236, +0,0,19035,19034,1,0,0,0,19035,19036,1,0,0,0,19036,19037,1,0,0,0,19037,19039, +5,2446,0,0,19038,19032,1,0,0,0,19038,19039,1,0,0,0,19039,19043,1,0,0,0,19040, +19043,5,215,0,0,19041,19043,5,142,0,0,19042,19031,1,0,0,0,19042,19040,1, +0,0,0,19042,19041,1,0,0,0,19043,2163,1,0,0,0,19044,19046,5,2304,0,0,19045, +19047,5,68,0,0,19046,19045,1,0,0,0,19046,19047,1,0,0,0,19047,19048,1,0,0, +0,19048,19058,5,2310,0,0,19049,19051,5,2306,0,0,19050,19052,7,246,0,0,19051, +19050,1,0,0,0,19051,19052,1,0,0,0,19052,19054,1,0,0,0,19053,19055,5,68,0, +0,19054,19053,1,0,0,0,19054,19055,1,0,0,0,19055,19056,1,0,0,0,19056,19058, +5,2310,0,0,19057,19044,1,0,0,0,19057,19049,1,0,0,0,19058,2165,1,0,0,0,19059, +19067,5,518,0,0,19060,19067,5,1226,0,0,19061,19067,5,495,0,0,19062,19063, +5,495,0,0,19063,19067,5,68,0,0,19064,19065,5,495,0,0,19065,19067,5,1236, +0,0,19066,19059,1,0,0,0,19066,19060,1,0,0,0,19066,19061,1,0,0,0,19066,19062, +1,0,0,0,19066,19064,1,0,0,0,19066,19067,1,0,0,0,19067,19068,1,0,0,0,19068, +19069,5,1257,0,0,19069,19070,5,518,0,0,19070,2167,1,0,0,0,19071,19079,5, +518,0,0,19072,19079,5,1226,0,0,19073,19079,5,495,0,0,19074,19075,5,495,0, +0,19075,19079,5,68,0,0,19076,19077,5,495,0,0,19077,19079,5,1236,0,0,19078, +19071,1,0,0,0,19078,19072,1,0,0,0,19078,19073,1,0,0,0,19078,19074,1,0,0, +0,19078,19076,1,0,0,0,19078,19079,1,0,0,0,19079,19080,1,0,0,0,19080,19081, +5,1257,0,0,19081,19082,5,495,0,0,19082,2169,1,0,0,0,19083,19085,5,1583,0, +0,19084,19086,3,2172,1086,0,19085,19084,1,0,0,0,19085,19086,1,0,0,0,19086, +19088,1,0,0,0,19087,19089,5,71,0,0,19088,19087,1,0,0,0,19088,19089,1,0,0, +0,19089,2171,1,0,0,0,19090,19097,5,2257,0,0,19091,19092,5,2445,0,0,19092, +19094,5,2439,0,0,19093,19095,7,236,0,0,19094,19093,1,0,0,0,19094,19095,1, +0,0,0,19095,19096,1,0,0,0,19096,19098,5,2446,0,0,19097,19091,1,0,0,0,19097, +19098,1,0,0,0,19098,19100,1,0,0,0,19099,19101,5,2157,0,0,19100,19099,1,0, +0,0,19100,19101,1,0,0,0,19101,19127,1,0,0,0,19102,19127,5,215,0,0,19103, +19127,5,359,0,0,19104,19112,5,1228,0,0,19105,19106,5,2445,0,0,19106,19109, +5,767,0,0,19107,19108,5,2451,0,0,19108,19110,5,767,0,0,19109,19107,1,0,0, +0,19109,19110,1,0,0,0,19110,19111,1,0,0,0,19111,19113,5,2446,0,0,19112,19105, +1,0,0,0,19112,19113,1,0,0,0,19113,19127,1,0,0,0,19114,19117,5,2106,0,0,19115, +19116,5,2306,0,0,19116,19118,5,2111,0,0,19117,19115,1,0,0,0,19117,19118, +1,0,0,0,19118,19127,1,0,0,0,19119,19127,5,1631,0,0,19120,19124,3,2070,1035, +0,19121,19122,5,2244,0,0,19122,19123,5,182,0,0,19123,19125,5,909,0,0,19124, +19121,1,0,0,0,19124,19125,1,0,0,0,19125,19127,1,0,0,0,19126,19090,1,0,0, +0,19126,19102,1,0,0,0,19126,19103,1,0,0,0,19126,19104,1,0,0,0,19126,19114, +1,0,0,0,19126,19119,1,0,0,0,19126,19120,1,0,0,0,19127,2173,1,0,0,0,19128, +19129,7,245,0,0,19129,19130,5,1257,0,0,19130,19139,5,963,0,0,19131,19132, +5,2445,0,0,19132,19133,5,962,0,0,19133,19140,5,349,0,0,19134,19135,5,563, +0,0,19135,19140,5,349,0,0,19136,19137,5,2164,0,0,19137,19138,5,518,0,0,19138, +19140,5,2446,0,0,19139,19131,1,0,0,0,19139,19134,1,0,0,0,19139,19136,1,0, +0,0,19139,19140,1,0,0,0,19140,2175,1,0,0,0,19141,19147,5,2441,0,0,19142, +19147,3,2136,1068,0,19143,19147,3,2384,1192,0,19144,19147,3,2386,1193,0, +19145,19147,5,930,0,0,19146,19141,1,0,0,0,19146,19142,1,0,0,0,19146,19143, +1,0,0,0,19146,19144,1,0,0,0,19146,19145,1,0,0,0,19147,2177,1,0,0,0,19148, +19151,3,2180,1090,0,19149,19152,3,2102,1051,0,19150,19152,3,2104,1052,0, +19151,19149,1,0,0,0,19151,19150,1,0,0,0,19151,19152,1,0,0,0,19152,2179,1, +0,0,0,19153,19154,5,2417,0,0,19154,19156,5,2445,0,0,19155,19157,7,223,0, +0,19156,19155,1,0,0,0,19156,19157,1,0,0,0,19157,19158,1,0,0,0,19158,19159, +3,2070,1035,0,19159,19160,5,2446,0,0,19160,19212,1,0,0,0,19161,19162,5,311, +0,0,19162,19170,5,2445,0,0,19163,19171,5,2448,0,0,19164,19166,7,206,0,0, +19165,19164,1,0,0,0,19165,19166,1,0,0,0,19166,19167,1,0,0,0,19167,19169, +3,2094,1047,0,19168,19165,1,0,0,0,19168,19169,1,0,0,0,19169,19171,1,0,0, +0,19170,19163,1,0,0,0,19170,19168,1,0,0,0,19171,19172,1,0,0,0,19172,19174, +5,2446,0,0,19173,19175,3,2192,1096,0,19174,19173,1,0,0,0,19174,19175,1,0, +0,0,19175,19212,1,0,0,0,19176,19177,5,2412,0,0,19177,19178,5,2445,0,0,19178, +19181,3,2070,1035,0,19179,19180,5,2451,0,0,19180,19182,5,2439,0,0,19181, +19179,1,0,0,0,19181,19182,1,0,0,0,19182,19183,1,0,0,0,19183,19184,5,2446, +0,0,19184,19212,1,0,0,0,19185,19186,5,2396,0,0,19186,19188,5,2445,0,0,19187, +19189,7,223,0,0,19188,19187,1,0,0,0,19188,19189,1,0,0,0,19189,19190,1,0, +0,0,19190,19191,3,2070,1035,0,19191,19192,5,2446,0,0,19192,19212,1,0,0,0, +19193,19194,5,2404,0,0,19194,19196,5,2445,0,0,19195,19197,7,223,0,0,19196, +19195,1,0,0,0,19196,19197,1,0,0,0,19197,19198,1,0,0,0,19198,19199,3,2070, +1035,0,19199,19200,5,2446,0,0,19200,19212,1,0,0,0,19201,19202,5,2421,0,0, +19202,19203,5,2445,0,0,19203,19204,3,2068,1034,0,19204,19205,5,2446,0,0, +19205,19212,1,0,0,0,19206,19207,5,2422,0,0,19207,19208,5,2445,0,0,19208, +19209,3,2068,1034,0,19209,19210,5,2446,0,0,19210,19212,1,0,0,0,19211,19153, +1,0,0,0,19211,19161,1,0,0,0,19211,19176,1,0,0,0,19211,19185,1,0,0,0,19211, +19193,1,0,0,0,19211,19201,1,0,0,0,19211,19206,1,0,0,0,19212,2181,1,0,0,0, +19213,19214,5,1257,0,0,19214,19215,5,1318,0,0,19215,19217,7,226,0,0,19216, +19218,5,2441,0,0,19217,19216,1,0,0,0,19217,19218,1,0,0,0,19218,19221,1,0, +0,0,19219,19220,7,2,0,0,19220,19222,5,311,0,0,19221,19219,1,0,0,0,19221, +19222,1,0,0,0,19222,2183,1,0,0,0,19223,19224,3,2186,1093,0,19224,19226,3, +2354,1177,0,19225,19227,3,2192,1096,0,19226,19225,1,0,0,0,19226,19227,1, +0,0,0,19227,19645,1,0,0,0,19228,19229,3,2398,1199,0,19229,19231,3,2356,1178, +0,19230,19232,3,2200,1100,0,19231,19230,1,0,0,0,19231,19232,1,0,0,0,19232, +19645,1,0,0,0,19233,19234,5,311,0,0,19234,19240,5,2445,0,0,19235,19241,5, +2448,0,0,19236,19238,7,206,0,0,19237,19236,1,0,0,0,19237,19238,1,0,0,0,19238, +19239,1,0,0,0,19239,19241,3,2094,1047,0,19240,19235,1,0,0,0,19240,19237, +1,0,0,0,19241,19242,1,0,0,0,19242,19244,5,2446,0,0,19243,19245,3,2192,1096, +0,19244,19243,1,0,0,0,19244,19245,1,0,0,0,19245,19645,1,0,0,0,19246,19247, +7,247,0,0,19247,19254,5,2445,0,0,19248,19249,5,992,0,0,19249,19250,5,2445, +0,0,19250,19251,3,1888,944,0,19251,19252,5,2446,0,0,19252,19255,1,0,0,0, +19253,19255,3,2094,1047,0,19254,19248,1,0,0,0,19254,19253,1,0,0,0,19255, +19256,1,0,0,0,19256,19257,5,69,0,0,19257,19264,3,2362,1181,0,19258,19259, +5,387,0,0,19259,19260,3,2094,1047,0,19260,19261,5,1257,0,0,19261,19262,5, +299,0,0,19262,19263,5,518,0,0,19263,19265,1,0,0,0,19264,19258,1,0,0,0,19264, +19265,1,0,0,0,19265,19272,1,0,0,0,19266,19267,5,2451,0,0,19267,19270,3,2388, +1194,0,19268,19269,5,2451,0,0,19269,19271,3,2388,1194,0,19270,19268,1,0, +0,0,19270,19271,1,0,0,0,19271,19273,1,0,0,0,19272,19266,1,0,0,0,19272,19273, +1,0,0,0,19273,19274,1,0,0,0,19274,19275,5,2446,0,0,19275,19645,1,0,0,0,19276, +19277,5,228,0,0,19277,19278,5,2445,0,0,19278,19284,3,2376,1188,0,19279,19282, +5,2451,0,0,19280,19283,3,2384,1192,0,19281,19283,3,2388,1194,0,19282,19280, +1,0,0,0,19282,19281,1,0,0,0,19283,19285,1,0,0,0,19284,19279,1,0,0,0,19284, +19285,1,0,0,0,19285,19286,1,0,0,0,19286,19287,5,2446,0,0,19287,19645,1,0, +0,0,19288,19289,5,233,0,0,19289,19291,5,2445,0,0,19290,19292,7,248,0,0,19291, +19290,1,0,0,0,19291,19292,1,0,0,0,19292,19293,1,0,0,0,19293,19295,3,2094, +1047,0,19294,19296,3,2204,1102,0,19295,19294,1,0,0,0,19295,19296,1,0,0,0, +19296,19297,1,0,0,0,19297,19298,5,2446,0,0,19298,19645,1,0,0,0,19299,19300, +3,2188,1094,0,19300,19302,3,2352,1176,0,19301,19303,3,2206,1103,0,19302, +19301,1,0,0,0,19303,19304,1,0,0,0,19304,19302,1,0,0,0,19304,19305,1,0,0, +0,19305,19645,1,0,0,0,19306,19307,5,2391,0,0,19307,19309,5,2445,0,0,19308, +19310,7,206,0,0,19309,19308,1,0,0,0,19309,19310,1,0,0,0,19310,19311,1,0, +0,0,19311,19314,3,2360,1180,0,19312,19313,5,2451,0,0,19313,19315,3,2070, +1035,0,19314,19312,1,0,0,0,19314,19315,1,0,0,0,19315,19317,1,0,0,0,19316, +19318,3,2182,1091,0,19317,19316,1,0,0,0,19317,19318,1,0,0,0,19318,19319, +1,0,0,0,19319,19326,5,2446,0,0,19320,19321,5,2303,0,0,19321,19322,5,647, +0,0,19322,19323,5,2445,0,0,19323,19324,3,1986,993,0,19324,19325,5,2446,0, +0,19325,19327,1,0,0,0,19326,19320,1,0,0,0,19326,19327,1,0,0,0,19327,19329, +1,0,0,0,19328,19330,3,2192,1096,0,19329,19328,1,0,0,0,19329,19330,1,0,0, +0,19330,19645,1,0,0,0,19331,19332,3,2318,1159,0,19332,19333,7,249,0,0,19333, +19645,1,0,0,0,19334,19335,5,381,0,0,19335,19336,5,2445,0,0,19336,19338,3, +2094,1047,0,19337,19339,7,250,0,0,19338,19337,1,0,0,0,19338,19339,1,0,0, +0,19339,19340,1,0,0,0,19340,19341,5,2446,0,0,19341,19645,1,0,0,0,19342,19343, +5,561,0,0,19343,19344,5,2445,0,0,19344,19345,3,2398,1199,0,19345,19346,5, +626,0,0,19346,19347,3,2094,1047,0,19347,19348,5,2446,0,0,19348,19645,1,0, +0,0,19349,19350,7,251,0,0,19350,19352,3,2354,1177,0,19351,19353,3,2358,1179, +0,19352,19351,1,0,0,0,19352,19353,1,0,0,0,19353,19354,1,0,0,0,19354,19355, +3,2192,1096,0,19355,19645,1,0,0,0,19356,19357,7,252,0,0,19357,19359,3,2354, +1177,0,19358,19360,3,2358,1179,0,19359,19358,1,0,0,0,19359,19360,1,0,0,0, +19360,19361,1,0,0,0,19361,19362,3,2192,1096,0,19362,19645,1,0,0,0,19363, +19364,3,2190,1095,0,19364,19365,5,2445,0,0,19365,19367,3,2068,1034,0,19366, +19368,3,2210,1105,0,19367,19366,1,0,0,0,19367,19368,1,0,0,0,19368,19370, +1,0,0,0,19369,19371,3,2200,1100,0,19370,19369,1,0,0,0,19370,19371,1,0,0, +0,19371,19372,1,0,0,0,19372,19373,5,2446,0,0,19373,19645,1,0,0,0,19374,19375, +7,253,0,0,19375,19376,5,2445,0,0,19376,19383,3,2094,1047,0,19377,19378,5, +387,0,0,19378,19379,3,2094,1047,0,19379,19380,5,1257,0,0,19380,19381,5,299, +0,0,19381,19382,5,518,0,0,19382,19384,1,0,0,0,19383,19377,1,0,0,0,19383, +19384,1,0,0,0,19384,19391,1,0,0,0,19385,19386,5,2451,0,0,19386,19389,3,2388, +1194,0,19387,19388,5,2451,0,0,19388,19390,3,2388,1194,0,19389,19387,1,0, +0,0,19389,19390,1,0,0,0,19390,19392,1,0,0,0,19391,19385,1,0,0,0,19391,19392, +1,0,0,0,19392,19393,1,0,0,0,19393,19394,5,2446,0,0,19394,19645,1,0,0,0,19395, +19396,7,254,0,0,19396,19397,5,2445,0,0,19397,19404,3,2094,1047,0,19398,19399, +5,387,0,0,19399,19400,3,2094,1047,0,19400,19401,5,1257,0,0,19401,19402,5, +299,0,0,19402,19403,5,518,0,0,19403,19405,1,0,0,0,19404,19398,1,0,0,0,19404, +19405,1,0,0,0,19405,19406,1,0,0,0,19406,19407,5,2446,0,0,19407,19645,1,0, +0,0,19408,19409,5,2151,0,0,19409,19410,5,2445,0,0,19410,19413,3,2070,1035, +0,19411,19412,5,2244,0,0,19412,19414,7,255,0,0,19413,19411,1,0,0,0,19413, +19414,1,0,0,0,19414,19419,1,0,0,0,19415,19416,5,2451,0,0,19416,19418,3,2070, +1035,0,19417,19415,1,0,0,0,19418,19421,1,0,0,0,19419,19417,1,0,0,0,19419, +19420,1,0,0,0,19420,19422,1,0,0,0,19421,19419,1,0,0,0,19422,19423,5,2446, +0,0,19423,19645,1,0,0,0,19424,19425,5,2153,0,0,19425,19426,5,2445,0,0,19426, +19427,3,2070,1035,0,19427,19429,5,69,0,0,19428,19430,5,1528,0,0,19429,19428, +1,0,0,0,19429,19430,1,0,0,0,19430,19431,1,0,0,0,19431,19432,3,2362,1181, +0,19432,19437,5,2446,0,0,19433,19434,5,2438,0,0,19434,19436,3,2374,1187, +0,19435,19433,1,0,0,0,19436,19439,1,0,0,0,19437,19435,1,0,0,0,19437,19438, +1,0,0,0,19438,19645,1,0,0,0,19439,19437,1,0,0,0,19440,19441,5,2416,0,0,19441, +19449,5,2445,0,0,19442,19444,7,234,0,0,19443,19442,1,0,0,0,19443,19444,1, +0,0,0,19444,19446,1,0,0,0,19445,19447,3,2388,1194,0,19446,19445,1,0,0,0, +19446,19447,1,0,0,0,19447,19448,1,0,0,0,19448,19450,5,626,0,0,19449,19443, +1,0,0,0,19449,19450,1,0,0,0,19450,19451,1,0,0,0,19451,19452,3,2094,1047, +0,19452,19453,5,2446,0,0,19453,19645,1,0,0,0,19454,19455,5,2252,0,0,19455, +19456,5,2445,0,0,19456,19457,3,2094,1047,0,19457,19458,5,69,0,0,19458,19465, +3,2362,1181,0,19459,19460,5,2451,0,0,19460,19463,3,2388,1194,0,19461,19462, +5,2451,0,0,19462,19464,3,2388,1194,0,19463,19461,1,0,0,0,19463,19464,1,0, +0,0,19464,19466,1,0,0,0,19465,19459,1,0,0,0,19465,19466,1,0,0,0,19466,19467, +1,0,0,0,19467,19468,5,2446,0,0,19468,19645,1,0,0,0,19469,19470,5,2317,0, +0,19470,19471,5,2445,0,0,19471,19473,3,2070,1035,0,19472,19474,3,1986,993, +0,19473,19472,1,0,0,0,19473,19474,1,0,0,0,19474,19475,1,0,0,0,19475,19480, +5,2446,0,0,19476,19477,5,2438,0,0,19477,19479,3,2374,1187,0,19478,19476, +1,0,0,0,19479,19482,1,0,0,0,19480,19478,1,0,0,0,19480,19481,1,0,0,0,19481, +19645,1,0,0,0,19482,19480,1,0,0,0,19483,19484,7,256,0,0,19484,19485,5,2445, +0,0,19485,19490,3,2222,1111,0,19486,19487,5,2451,0,0,19487,19489,3,2222, +1111,0,19488,19486,1,0,0,0,19489,19492,1,0,0,0,19490,19488,1,0,0,0,19490, +19491,1,0,0,0,19491,19493,1,0,0,0,19492,19490,1,0,0,0,19493,19498,5,2446, +0,0,19494,19495,5,2438,0,0,19495,19497,3,2374,1187,0,19496,19494,1,0,0,0, +19497,19500,1,0,0,0,19498,19496,1,0,0,0,19498,19499,1,0,0,0,19499,19645, +1,0,0,0,19500,19498,1,0,0,0,19501,19502,5,2326,0,0,19502,19504,5,2445,0, +0,19503,19505,7,257,0,0,19504,19503,1,0,0,0,19504,19505,1,0,0,0,19505,19507, +1,0,0,0,19506,19508,7,258,0,0,19507,19506,1,0,0,0,19507,19508,1,0,0,0,19508, +19509,1,0,0,0,19509,19512,3,2070,1035,0,19510,19511,5,2451,0,0,19511,19513, +3,2214,1107,0,19512,19510,1,0,0,0,19512,19513,1,0,0,0,19513,19521,1,0,0, +0,19514,19515,5,2451,0,0,19515,19517,3,2070,1035,0,19516,19518,3,2256,1128, +0,19517,19516,1,0,0,0,19517,19518,1,0,0,0,19518,19520,1,0,0,0,19519,19514, +1,0,0,0,19520,19523,1,0,0,0,19521,19519,1,0,0,0,19521,19522,1,0,0,0,19522, +19524,1,0,0,0,19523,19521,1,0,0,0,19524,19529,5,2446,0,0,19525,19526,5,2438, +0,0,19526,19528,3,2374,1187,0,19527,19525,1,0,0,0,19528,19531,1,0,0,0,19529, +19527,1,0,0,0,19529,19530,1,0,0,0,19530,19645,1,0,0,0,19531,19529,1,0,0, +0,19532,19533,5,2328,0,0,19533,19534,5,2445,0,0,19534,19536,3,2070,1035, +0,19535,19537,3,2212,1106,0,19536,19535,1,0,0,0,19536,19537,1,0,0,0,19537, +19538,1,0,0,0,19538,19539,5,2446,0,0,19539,19645,1,0,0,0,19540,19541,5,2337, +0,0,19541,19542,5,2445,0,0,19542,19543,7,259,0,0,19543,19545,3,2094,1047, +0,19544,19546,5,2296,0,0,19545,19544,1,0,0,0,19545,19546,1,0,0,0,19546,19547, +1,0,0,0,19547,19552,5,2446,0,0,19548,19549,5,2438,0,0,19549,19551,3,2374, +1187,0,19550,19548,1,0,0,0,19551,19554,1,0,0,0,19552,19550,1,0,0,0,19552, +19553,1,0,0,0,19553,19645,1,0,0,0,19554,19552,1,0,0,0,19555,19556,5,2339, +0,0,19556,19561,5,2445,0,0,19557,19558,5,995,0,0,19558,19562,3,2390,1195, +0,19559,19560,5,527,0,0,19560,19562,3,2094,1047,0,19561,19557,1,0,0,0,19561, +19559,1,0,0,0,19562,19565,1,0,0,0,19563,19564,5,2451,0,0,19564,19566,3,2094, +1047,0,19565,19563,1,0,0,0,19565,19566,1,0,0,0,19566,19567,1,0,0,0,19567, +19572,5,2446,0,0,19568,19569,5,2438,0,0,19569,19571,3,2374,1187,0,19570, +19568,1,0,0,0,19571,19574,1,0,0,0,19572,19570,1,0,0,0,19572,19573,1,0,0, +0,19573,19645,1,0,0,0,19574,19572,1,0,0,0,19575,19576,5,2341,0,0,19576,19577, +5,2445,0,0,19577,19579,3,2094,1047,0,19578,19580,3,2212,1106,0,19579,19578, +1,0,0,0,19579,19580,1,0,0,0,19580,19581,1,0,0,0,19581,19582,5,1583,0,0,19582, +19586,5,292,0,0,19583,19584,5,1226,0,0,19584,19585,5,1257,0,0,19585,19587, +5,495,0,0,19586,19583,1,0,0,0,19586,19587,1,0,0,0,19587,19588,1,0,0,0,19588, +19593,5,2446,0,0,19589,19590,5,2438,0,0,19590,19592,3,2374,1187,0,19591, +19589,1,0,0,0,19592,19595,1,0,0,0,19593,19591,1,0,0,0,19593,19594,1,0,0, +0,19594,19645,1,0,0,0,19595,19593,1,0,0,0,19596,19597,5,2342,0,0,19597,19598, +5,2445,0,0,19598,19601,3,2094,1047,0,19599,19600,5,2451,0,0,19600,19602, +3,2224,1112,0,19601,19599,1,0,0,0,19601,19602,1,0,0,0,19602,19605,1,0,0, +0,19603,19604,5,2451,0,0,19604,19606,3,2226,1113,0,19605,19603,1,0,0,0,19605, +19606,1,0,0,0,19606,19607,1,0,0,0,19607,19612,5,2446,0,0,19608,19609,5,2438, +0,0,19609,19611,3,2374,1187,0,19610,19608,1,0,0,0,19611,19614,1,0,0,0,19612, +19610,1,0,0,0,19612,19613,1,0,0,0,19613,19645,1,0,0,0,19614,19612,1,0,0, +0,19615,19616,5,2344,0,0,19616,19617,5,2445,0,0,19617,19618,7,259,0,0,19618, +19621,3,2094,1047,0,19619,19620,5,69,0,0,19620,19622,3,2362,1181,0,19621, +19619,1,0,0,0,19621,19622,1,0,0,0,19622,19624,1,0,0,0,19623,19625,3,2228, +1114,0,19624,19623,1,0,0,0,19624,19625,1,0,0,0,19625,19627,1,0,0,0,19626, +19628,3,2230,1115,0,19627,19626,1,0,0,0,19627,19628,1,0,0,0,19628,19630, +1,0,0,0,19629,19631,3,2232,1116,0,19630,19629,1,0,0,0,19630,19631,1,0,0, +0,19631,19634,1,0,0,0,19632,19633,7,260,0,0,19633,19635,5,389,0,0,19634, +19632,1,0,0,0,19634,19635,1,0,0,0,19635,19636,1,0,0,0,19636,19639,5,2446, +0,0,19637,19638,5,2438,0,0,19638,19640,3,2374,1187,0,19639,19637,1,0,0,0, +19639,19640,1,0,0,0,19640,19645,1,0,0,0,19641,19642,5,2110,0,0,19642,19645, +5,2441,0,0,19643,19645,3,2332,1166,0,19644,19223,1,0,0,0,19644,19228,1,0, +0,0,19644,19233,1,0,0,0,19644,19246,1,0,0,0,19644,19276,1,0,0,0,19644,19288, +1,0,0,0,19644,19299,1,0,0,0,19644,19306,1,0,0,0,19644,19331,1,0,0,0,19644, +19334,1,0,0,0,19644,19342,1,0,0,0,19644,19349,1,0,0,0,19644,19356,1,0,0, +0,19644,19363,1,0,0,0,19644,19374,1,0,0,0,19644,19395,1,0,0,0,19644,19408, +1,0,0,0,19644,19424,1,0,0,0,19644,19440,1,0,0,0,19644,19454,1,0,0,0,19644, +19469,1,0,0,0,19644,19483,1,0,0,0,19644,19501,1,0,0,0,19644,19532,1,0,0, +0,19644,19540,1,0,0,0,19644,19555,1,0,0,0,19644,19575,1,0,0,0,19644,19596, +1,0,0,0,19644,19615,1,0,0,0,19644,19641,1,0,0,0,19644,19643,1,0,0,0,19645, +2185,1,0,0,0,19646,19647,7,261,0,0,19647,2187,1,0,0,0,19648,19649,7,262, +0,0,19649,2189,1,0,0,0,19650,19651,7,263,0,0,19651,2191,1,0,0,0,19652,19653, +5,1320,0,0,19653,19674,5,2445,0,0,19654,19656,3,1918,959,0,19655,19654,1, +0,0,0,19655,19656,1,0,0,0,19656,19661,1,0,0,0,19657,19659,3,1986,993,0,19658, +19660,3,2194,1097,0,19659,19658,1,0,0,0,19659,19660,1,0,0,0,19660,19662, +1,0,0,0,19661,19657,1,0,0,0,19661,19662,1,0,0,0,19662,19675,1,0,0,0,19663, +19664,5,672,0,0,19664,19665,3,2392,1196,0,19665,19666,5,1243,0,0,19666,19672, +3,2384,1192,0,19667,19668,5,10,0,0,19668,19669,5,47,0,0,19669,19670,5,82, +0,0,19670,19671,5,844,0,0,19671,19673,3,2392,1196,0,19672,19667,1,0,0,0, +19672,19673,1,0,0,0,19673,19675,1,0,0,0,19674,19655,1,0,0,0,19674,19663, +1,0,0,0,19675,19676,1,0,0,0,19676,19677,5,2446,0,0,19677,2193,1,0,0,0,19678, +19685,3,2196,1098,0,19679,19680,5,118,0,0,19680,19681,3,2198,1099,0,19681, +19682,5,49,0,0,19682,19683,3,2198,1099,0,19683,19686,1,0,0,0,19684,19686, +3,2198,1099,0,19685,19679,1,0,0,0,19685,19684,1,0,0,0,19686,2195,1,0,0,0, +19687,19688,7,264,0,0,19688,2197,1,0,0,0,19689,19690,5,2172,0,0,19690,19697, +5,1434,0,0,19691,19692,5,334,0,0,19692,19697,5,1604,0,0,19693,19694,3,2094, +1047,0,19694,19695,7,265,0,0,19695,19697,1,0,0,0,19696,19689,1,0,0,0,19696, +19691,1,0,0,0,19696,19693,1,0,0,0,19697,2199,1,0,0,0,19698,19708,5,2244, +0,0,19699,19709,5,2448,0,0,19700,19705,3,2202,1101,0,19701,19702,5,2451, +0,0,19702,19704,3,2202,1101,0,19703,19701,1,0,0,0,19704,19707,1,0,0,0,19705, +19703,1,0,0,0,19705,19706,1,0,0,0,19706,19709,1,0,0,0,19707,19705,1,0,0, +0,19708,19699,1,0,0,0,19708,19700,1,0,0,0,19709,2201,1,0,0,0,19710,19712, +5,736,0,0,19711,19713,5,1316,0,0,19712,19711,1,0,0,0,19712,19713,1,0,0,0, +19713,19716,1,0,0,0,19714,19716,5,1316,0,0,19715,19710,1,0,0,0,19715,19714, +1,0,0,0,19715,19716,1,0,0,0,19716,19717,1,0,0,0,19717,19718,3,1900,950,0, +19718,2203,1,0,0,0,19719,19720,5,1301,0,0,19720,19721,5,160,0,0,19721,19726, +3,2094,1047,0,19722,19723,5,2451,0,0,19723,19725,3,2094,1047,0,19724,19722, +1,0,0,0,19725,19728,1,0,0,0,19726,19724,1,0,0,0,19726,19727,1,0,0,0,19727, +2205,1,0,0,0,19728,19726,1,0,0,0,19729,19730,5,2303,0,0,19730,19731,5,647, +0,0,19731,19732,5,2445,0,0,19732,19733,3,1986,993,0,19733,19734,5,2446,0, +0,19734,19737,1,0,0,0,19735,19737,3,2192,1096,0,19736,19729,1,0,0,0,19736, +19735,1,0,0,0,19737,2207,1,0,0,0,19738,19739,6,1104,-1,0,19739,19747,5,2441, +0,0,19740,19747,3,2136,1068,0,19741,19742,5,2445,0,0,19742,19743,3,2208, +1104,0,19743,19744,5,2446,0,0,19744,19747,1,0,0,0,19745,19747,3,2392,1196, +0,19746,19738,1,0,0,0,19746,19740,1,0,0,0,19746,19741,1,0,0,0,19746,19745, +1,0,0,0,19747,19754,1,0,0,0,19748,19749,10,3,0,0,19749,19750,5,2468,0,0, +19750,19751,5,2468,0,0,19751,19753,3,2208,1104,4,19752,19748,1,0,0,0,19753, +19756,1,0,0,0,19754,19752,1,0,0,0,19754,19755,1,0,0,0,19755,2209,1,0,0,0, +19756,19754,1,0,0,0,19757,19779,5,309,0,0,19758,19760,5,969,0,0,19759,19761, +5,91,0,0,19760,19759,1,0,0,0,19760,19761,1,0,0,0,19761,19780,1,0,0,0,19762, +19763,5,2445,0,0,19763,19768,3,2266,1133,0,19764,19765,5,2451,0,0,19765, +19767,3,2266,1133,0,19766,19764,1,0,0,0,19767,19770,1,0,0,0,19768,19766, +1,0,0,0,19768,19769,1,0,0,0,19769,19771,1,0,0,0,19770,19768,1,0,0,0,19771, +19772,5,2446,0,0,19772,19773,5,2255,0,0,19773,19775,5,2445,0,0,19774,19776, +3,2068,1034,0,19775,19774,1,0,0,0,19775,19776,1,0,0,0,19776,19777,1,0,0, +0,19777,19778,5,2446,0,0,19778,19780,1,0,0,0,19779,19758,1,0,0,0,19779,19762, +1,0,0,0,19780,2211,1,0,0,0,19781,19784,5,1350,0,0,19782,19783,5,160,0,0, +19783,19785,5,2256,0,0,19784,19782,1,0,0,0,19784,19785,1,0,0,0,19785,19786, +1,0,0,0,19786,19788,3,2070,1035,0,19787,19789,3,2256,1128,0,19788,19787, +1,0,0,0,19788,19789,1,0,0,0,19789,19797,1,0,0,0,19790,19791,5,2451,0,0,19791, +19793,3,2070,1035,0,19792,19794,3,2256,1128,0,19793,19792,1,0,0,0,19793, +19794,1,0,0,0,19794,19796,1,0,0,0,19795,19790,1,0,0,0,19796,19799,1,0,0, +0,19797,19795,1,0,0,0,19797,19798,1,0,0,0,19798,2213,1,0,0,0,19799,19797, +1,0,0,0,19800,19801,5,2318,0,0,19801,19803,5,2445,0,0,19802,19804,7,257, +0,0,19803,19802,1,0,0,0,19803,19804,1,0,0,0,19804,19806,1,0,0,0,19805,19807, +7,266,0,0,19806,19805,1,0,0,0,19806,19807,1,0,0,0,19807,19808,1,0,0,0,19808, +19813,3,2222,1111,0,19809,19810,5,2451,0,0,19810,19812,3,2222,1111,0,19811, +19809,1,0,0,0,19812,19815,1,0,0,0,19813,19811,1,0,0,0,19813,19814,1,0,0, +0,19814,19816,1,0,0,0,19815,19813,1,0,0,0,19816,19817,5,2446,0,0,19817,2215, +1,0,0,0,19818,19819,5,2336,0,0,19819,19823,5,2445,0,0,19820,19821,3,2094, +1047,0,19821,19822,3,2256,1128,0,19822,19824,1,0,0,0,19823,19820,1,0,0,0, +19823,19824,1,0,0,0,19824,19831,1,0,0,0,19825,19826,5,2451,0,0,19826,19827, +3,2094,1047,0,19827,19828,3,2256,1128,0,19828,19830,1,0,0,0,19829,19825, +1,0,0,0,19830,19833,1,0,0,0,19831,19829,1,0,0,0,19831,19832,1,0,0,0,19832, +19835,1,0,0,0,19833,19831,1,0,0,0,19834,19836,3,2220,1110,0,19835,19834, +1,0,0,0,19835,19836,1,0,0,0,19836,19837,1,0,0,0,19837,19838,5,2446,0,0,19838, +2217,1,0,0,0,19839,19850,3,2264,1132,0,19840,19841,5,618,0,0,19841,19851, +5,1302,0,0,19842,19845,3,2362,1181,0,19843,19844,5,1361,0,0,19844,19846, +3,2094,1047,0,19845,19843,1,0,0,0,19845,19846,1,0,0,0,19846,19848,1,0,0, +0,19847,19849,3,2220,1110,0,19848,19847,1,0,0,0,19848,19849,1,0,0,0,19849, +19851,1,0,0,0,19850,19840,1,0,0,0,19850,19842,1,0,0,0,19851,2219,1,0,0,0, +19852,19853,5,387,0,0,19853,19854,3,2094,1047,0,19854,2221,1,0,0,0,19855, +19863,3,2070,1035,0,19856,19858,5,69,0,0,19857,19856,1,0,0,0,19857,19858, +1,0,0,0,19858,19859,1,0,0,0,19859,19864,3,2392,1196,0,19860,19861,5,69,0, +0,19861,19862,5,527,0,0,19862,19864,3,2070,1035,0,19863,19857,1,0,0,0,19863, +19860,1,0,0,0,19863,19864,1,0,0,0,19864,2223,1,0,0,0,19865,19869,5,2283, +0,0,19866,19867,5,1135,0,0,19867,19870,5,2256,0,0,19868,19870,3,2070,1035, +0,19869,19866,1,0,0,0,19869,19868,1,0,0,0,19870,2225,1,0,0,0,19871,19877, +5,1727,0,0,19872,19878,5,2358,0,0,19873,19875,5,1135,0,0,19874,19876,5,2256, +0,0,19875,19874,1,0,0,0,19875,19876,1,0,0,0,19876,19878,1,0,0,0,19877,19872, +1,0,0,0,19877,19873,1,0,0,0,19878,2227,1,0,0,0,19879,19880,5,502,0,0,19880, +19881,3,2094,1047,0,19881,2229,1,0,0,0,19882,19883,5,2283,0,0,19883,19884, +3,2094,1047,0,19884,2231,1,0,0,0,19885,19886,5,1135,0,0,19886,19894,5,707, +0,0,19887,19891,5,707,0,0,19888,19889,5,1697,0,0,19889,19890,5,2469,0,0, +19890,19892,3,2094,1047,0,19891,19888,1,0,0,0,19891,19892,1,0,0,0,19892, +19894,1,0,0,0,19893,19885,1,0,0,0,19893,19887,1,0,0,0,19894,2233,1,0,0,0, +19895,19896,5,51,0,0,19896,19897,5,2445,0,0,19897,19898,3,2236,1118,0,19898, +19899,5,2446,0,0,19899,2235,1,0,0,0,19900,19906,5,21,0,0,19901,19902,5,689, +0,0,19902,19903,5,1202,0,0,19903,19907,5,543,0,0,19904,19905,5,1305,0,0, +19905,19907,5,1560,0,0,19906,19901,1,0,0,0,19906,19904,1,0,0,0,19906,19907, +1,0,0,0,19907,19915,1,0,0,0,19908,19911,5,467,0,0,19909,19910,5,689,0,0, +19910,19912,5,543,0,0,19911,19909,1,0,0,0,19911,19912,1,0,0,0,19912,19915, +1,0,0,0,19913,19915,5,1560,0,0,19914,19900,1,0,0,0,19914,19908,1,0,0,0,19914, +19913,1,0,0,0,19914,19915,1,0,0,0,19915,19916,1,0,0,0,19916,19921,3,2238, +1119,0,19917,19918,5,2451,0,0,19918,19920,3,2236,1118,0,19919,19917,1,0, +0,0,19920,19923,1,0,0,0,19921,19919,1,0,0,0,19921,19922,1,0,0,0,19922,2237, +1,0,0,0,19923,19921,1,0,0,0,19924,19926,3,2390,1195,0,19925,19927,5,2441, +0,0,19926,19925,1,0,0,0,19926,19927,1,0,0,0,19927,2239,1,0,0,0,19928,19929, +3,2248,1124,0,19929,2241,1,0,0,0,19930,19940,5,545,0,0,19931,19940,5,2476, +0,0,19932,19933,5,1681,0,0,19933,19940,7,267,0,0,19934,19940,3,2246,1123, +0,19935,19940,3,2250,1125,0,19936,19940,3,2244,1122,0,19937,19940,3,2248, +1124,0,19938,19940,3,2252,1126,0,19939,19930,1,0,0,0,19939,19931,1,0,0,0, +19939,19932,1,0,0,0,19939,19934,1,0,0,0,19939,19935,1,0,0,0,19939,19936, +1,0,0,0,19939,19937,1,0,0,0,19939,19938,1,0,0,0,19940,2243,1,0,0,0,19941, +19942,5,2477,0,0,19942,19943,3,2392,1196,0,19943,19944,5,2438,0,0,19944, +19945,7,268,0,0,19945,2245,1,0,0,0,19946,19947,5,2297,0,0,19947,19963,7, +269,0,0,19948,19954,5,545,0,0,19949,19955,5,1785,0,0,19950,19955,5,572,0, +0,19951,19955,5,2293,0,0,19952,19955,3,2314,1157,0,19953,19955,3,2384,1192, +0,19954,19949,1,0,0,0,19954,19950,1,0,0,0,19954,19951,1,0,0,0,19954,19952, +1,0,0,0,19954,19953,1,0,0,0,19955,19957,1,0,0,0,19956,19958,7,270,0,0,19957, +19956,1,0,0,0,19957,19958,1,0,0,0,19958,19964,1,0,0,0,19959,19961,5,295, +0,0,19960,19962,7,271,0,0,19961,19960,1,0,0,0,19961,19962,1,0,0,0,19962, +19964,1,0,0,0,19963,19948,1,0,0,0,19963,19959,1,0,0,0,19964,2247,1,0,0,0, +19965,19981,5,1669,0,0,19966,19967,3,2398,1199,0,19967,19968,7,98,0,0,19968, +19970,1,0,0,0,19969,19966,1,0,0,0,19970,19971,1,0,0,0,19971,19969,1,0,0, +0,19971,19972,1,0,0,0,19972,19982,1,0,0,0,19973,19979,3,2398,1199,0,19974, +19980,5,2441,0,0,19975,19980,5,1257,0,0,19976,19980,5,1242,0,0,19977,19980, +3,2384,1192,0,19978,19980,3,2398,1199,0,19979,19974,1,0,0,0,19979,19975, +1,0,0,0,19979,19976,1,0,0,0,19979,19977,1,0,0,0,19979,19978,1,0,0,0,19980, +19982,1,0,0,0,19981,19969,1,0,0,0,19981,19973,1,0,0,0,19982,2249,1,0,0,0, +19983,19993,5,2118,0,0,19984,19988,5,1735,0,0,19985,19987,3,2392,1196,0, +19986,19985,1,0,0,0,19987,19990,1,0,0,0,19988,19986,1,0,0,0,19988,19989, +1,0,0,0,19989,19994,1,0,0,0,19990,19988,1,0,0,0,19991,19994,5,1681,0,0,19992, +19994,5,1759,0,0,19993,19984,1,0,0,0,19993,19991,1,0,0,0,19993,19992,1,0, +0,0,19993,19994,1,0,0,0,19994,2251,1,0,0,0,19995,19997,5,212,0,0,19996,19998, +5,237,0,0,19997,19996,1,0,0,0,19997,19998,1,0,0,0,19998,19999,1,0,0,0,19999, +20002,3,2398,1199,0,20000,20002,5,38,0,0,20001,19995,1,0,0,0,20001,20000, +1,0,0,0,20002,2253,1,0,0,0,20003,20005,7,186,0,0,20004,20006,5,618,0,0,20005, +20004,1,0,0,0,20005,20006,1,0,0,0,20006,20007,1,0,0,0,20007,20009,5,2445, +0,0,20008,20010,3,2068,1034,0,20009,20008,1,0,0,0,20009,20010,1,0,0,0,20010, +20011,1,0,0,0,20011,20012,5,2446,0,0,20012,2255,1,0,0,0,20013,20015,5,69, +0,0,20014,20013,1,0,0,0,20014,20015,1,0,0,0,20015,20018,1,0,0,0,20016,20019, +3,2390,1195,0,20017,20019,3,2388,1194,0,20018,20016,1,0,0,0,20018,20017, +1,0,0,0,20019,20022,1,0,0,0,20020,20022,5,69,0,0,20021,20014,1,0,0,0,20021, +20020,1,0,0,0,20022,2257,1,0,0,0,20023,20026,3,2390,1195,0,20024,20026,3, +2388,1194,0,20025,20023,1,0,0,0,20025,20024,1,0,0,0,20026,2259,1,0,0,0,20027, +20032,5,2299,0,0,20028,20029,5,334,0,0,20029,20030,5,1244,0,0,20030,20033, +3,2318,1159,0,20031,20033,3,2066,1033,0,20032,20028,1,0,0,0,20032,20031, +1,0,0,0,20033,2261,1,0,0,0,20034,20035,5,159,0,0,20035,20037,5,233,0,0,20036, +20034,1,0,0,0,20036,20037,1,0,0,0,20037,20038,1,0,0,0,20038,20041,5,777, +0,0,20039,20042,3,2372,1186,0,20040,20042,3,2370,1185,0,20041,20039,1,0, +0,0,20041,20040,1,0,0,0,20042,20050,1,0,0,0,20043,20046,5,2451,0,0,20044, +20047,3,2372,1186,0,20045,20047,3,2370,1185,0,20046,20044,1,0,0,0,20046, +20045,1,0,0,0,20047,20049,1,0,0,0,20048,20043,1,0,0,0,20049,20052,1,0,0, +0,20050,20048,1,0,0,0,20050,20051,1,0,0,0,20051,2263,1,0,0,0,20052,20050, +1,0,0,0,20053,20056,3,2390,1195,0,20054,20056,3,2388,1194,0,20055,20053, +1,0,0,0,20055,20054,1,0,0,0,20056,2265,1,0,0,0,20057,20058,3,2390,1195,0, +20058,2267,1,0,0,0,20059,20060,3,2390,1195,0,20060,2269,1,0,0,0,20061,20062, +3,2390,1195,0,20062,2271,1,0,0,0,20063,20064,3,2390,1195,0,20064,2273,1, +0,0,0,20065,20066,3,2390,1195,0,20066,2275,1,0,0,0,20067,20072,3,2390,1195, +0,20068,20069,5,2438,0,0,20069,20071,3,2392,1196,0,20070,20068,1,0,0,0,20071, +20074,1,0,0,0,20072,20070,1,0,0,0,20072,20073,1,0,0,0,20073,20077,1,0,0, +0,20074,20072,1,0,0,0,20075,20076,5,2453,0,0,20076,20078,3,2322,1161,0,20077, +20075,1,0,0,0,20077,20078,1,0,0,0,20078,2277,1,0,0,0,20079,20080,3,2390, +1195,0,20080,2279,1,0,0,0,20081,20084,3,2390,1195,0,20082,20083,5,2438,0, +0,20083,20085,3,2392,1196,0,20084,20082,1,0,0,0,20084,20085,1,0,0,0,20085, +2281,1,0,0,0,20086,20087,3,2390,1195,0,20087,2283,1,0,0,0,20088,20089,3, +2390,1195,0,20089,2285,1,0,0,0,20090,20091,3,2390,1195,0,20091,2287,1,0, +0,0,20092,20095,3,2390,1195,0,20093,20094,5,2438,0,0,20094,20096,3,2392, +1196,0,20095,20093,1,0,0,0,20095,20096,1,0,0,0,20096,2289,1,0,0,0,20097, +20102,3,2390,1195,0,20098,20099,5,2438,0,0,20099,20101,3,2392,1196,0,20100, +20098,1,0,0,0,20101,20104,1,0,0,0,20102,20100,1,0,0,0,20102,20103,1,0,0, +0,20103,2291,1,0,0,0,20104,20102,1,0,0,0,20105,20106,3,2390,1195,0,20106, +2293,1,0,0,0,20107,20109,3,2392,1196,0,20108,20110,3,562,281,0,20109,20108, +1,0,0,0,20109,20110,1,0,0,0,20110,2295,1,0,0,0,20111,20114,3,2392,1196,0, +20112,20114,5,278,0,0,20113,20111,1,0,0,0,20113,20112,1,0,0,0,20114,2297, +1,0,0,0,20115,20120,3,2390,1195,0,20116,20117,5,2438,0,0,20117,20119,3,2392, +1196,0,20118,20116,1,0,0,0,20119,20122,1,0,0,0,20120,20118,1,0,0,0,20120, +20121,1,0,0,0,20121,20125,1,0,0,0,20122,20120,1,0,0,0,20123,20124,5,2453, +0,0,20124,20126,3,2322,1161,0,20125,20123,1,0,0,0,20125,20126,1,0,0,0,20126, +2299,1,0,0,0,20127,20128,3,2392,1196,0,20128,2301,1,0,0,0,20129,20134,3, +2392,1196,0,20130,20131,5,2438,0,0,20131,20133,3,2392,1196,0,20132,20130, +1,0,0,0,20133,20136,1,0,0,0,20134,20132,1,0,0,0,20134,20135,1,0,0,0,20135, +2303,1,0,0,0,20136,20134,1,0,0,0,20137,20142,3,2392,1196,0,20138,20139,5, +2438,0,0,20139,20141,3,2392,1196,0,20140,20138,1,0,0,0,20141,20144,1,0,0, +0,20142,20140,1,0,0,0,20142,20143,1,0,0,0,20143,2305,1,0,0,0,20144,20142, +1,0,0,0,20145,20150,3,2390,1195,0,20146,20147,5,2438,0,0,20147,20149,3,2392, +1196,0,20148,20146,1,0,0,0,20149,20152,1,0,0,0,20150,20148,1,0,0,0,20150, +20151,1,0,0,0,20151,2307,1,0,0,0,20152,20150,1,0,0,0,20153,20156,3,2390, +1195,0,20154,20155,5,2438,0,0,20155,20157,3,2392,1196,0,20156,20154,1,0, +0,0,20156,20157,1,0,0,0,20157,2309,1,0,0,0,20158,20161,3,2390,1195,0,20159, +20160,5,2438,0,0,20160,20162,3,2392,1196,0,20161,20159,1,0,0,0,20161,20162, +1,0,0,0,20162,2311,1,0,0,0,20163,20166,3,2390,1195,0,20164,20165,5,2438, +0,0,20165,20167,3,2392,1196,0,20166,20164,1,0,0,0,20166,20167,1,0,0,0,20167, +2313,1,0,0,0,20168,20169,5,2472,0,0,20169,20171,3,2334,1167,0,20170,20168, +1,0,0,0,20170,20171,1,0,0,0,20171,20172,1,0,0,0,20172,20175,3,2392,1196, +0,20173,20174,5,2438,0,0,20174,20176,3,2392,1196,0,20175,20173,1,0,0,0,20175, +20176,1,0,0,0,20176,20179,1,0,0,0,20177,20179,3,2370,1185,0,20178,20170, +1,0,0,0,20178,20177,1,0,0,0,20179,2315,1,0,0,0,20180,20183,3,2390,1195,0, +20181,20182,5,2438,0,0,20182,20184,3,2392,1196,0,20183,20181,1,0,0,0,20183, +20184,1,0,0,0,20184,2317,1,0,0,0,20185,20188,3,2372,1186,0,20186,20188,3, +2370,1185,0,20187,20185,1,0,0,0,20187,20186,1,0,0,0,20188,2319,1,0,0,0,20189, +20192,3,2390,1195,0,20190,20192,3,2370,1185,0,20191,20189,1,0,0,0,20191, +20190,1,0,0,0,20192,2321,1,0,0,0,20193,20198,3,1446,723,0,20194,20195,5, +2438,0,0,20195,20197,3,1444,722,0,20196,20194,1,0,0,0,20197,20200,1,0,0, +0,20198,20196,1,0,0,0,20198,20199,1,0,0,0,20199,20203,1,0,0,0,20200,20198, +1,0,0,0,20201,20202,5,2453,0,0,20202,20204,3,2326,1163,0,20203,20201,1,0, +0,0,20203,20204,1,0,0,0,20204,2323,1,0,0,0,20205,20206,3,2390,1195,0,20206, +2325,1,0,0,0,20207,20208,3,2390,1195,0,20208,2327,1,0,0,0,20209,20214,3, +2390,1195,0,20210,20211,5,2438,0,0,20211,20213,3,2392,1196,0,20212,20210, +1,0,0,0,20213,20216,1,0,0,0,20214,20212,1,0,0,0,20214,20215,1,0,0,0,20215, +2329,1,0,0,0,20216,20214,1,0,0,0,20217,20220,3,2390,1195,0,20218,20219,5, +2438,0,0,20219,20221,3,2392,1196,0,20220,20218,1,0,0,0,20220,20221,1,0,0, +0,20221,20225,1,0,0,0,20222,20223,5,2453,0,0,20223,20226,3,2322,1161,0,20224, +20226,3,2254,1127,0,20225,20222,1,0,0,0,20225,20224,1,0,0,0,20225,20226, +1,0,0,0,20226,20232,1,0,0,0,20227,20229,3,2332,1166,0,20228,20230,3,2396, +1198,0,20229,20228,1,0,0,0,20229,20230,1,0,0,0,20230,20232,1,0,0,0,20231, +20217,1,0,0,0,20231,20227,1,0,0,0,20232,2331,1,0,0,0,20233,20234,5,2345, +0,0,20234,20238,5,2445,0,0,20235,20236,3,2216,1108,0,20236,20237,5,2451, +0,0,20237,20239,1,0,0,0,20238,20235,1,0,0,0,20238,20239,1,0,0,0,20239,20240, +1,0,0,0,20240,20242,3,2094,1047,0,20241,20243,3,2212,1106,0,20242,20241, +1,0,0,0,20242,20243,1,0,0,0,20243,20253,1,0,0,0,20244,20245,5,238,0,0,20245, +20250,3,2218,1109,0,20246,20247,5,2451,0,0,20247,20249,3,2218,1109,0,20248, +20246,1,0,0,0,20249,20252,1,0,0,0,20250,20248,1,0,0,0,20250,20251,1,0,0, +0,20251,20254,1,0,0,0,20252,20250,1,0,0,0,20253,20244,1,0,0,0,20253,20254, +1,0,0,0,20254,20255,1,0,0,0,20255,20258,5,2446,0,0,20256,20257,5,2438,0, +0,20257,20259,3,2374,1187,0,20258,20256,1,0,0,0,20258,20259,1,0,0,0,20259, +2333,1,0,0,0,20260,20265,3,2392,1196,0,20261,20262,5,2438,0,0,20262,20264, +3,2392,1196,0,20263,20261,1,0,0,0,20264,20267,1,0,0,0,20265,20263,1,0,0, +0,20265,20266,1,0,0,0,20266,2335,1,0,0,0,20267,20265,1,0,0,0,20268,20269, +3,2390,1195,0,20269,2337,1,0,0,0,20270,20271,3,2392,1196,0,20271,2339,1, +0,0,0,20272,20273,3,2392,1196,0,20273,2341,1,0,0,0,20274,20275,3,2392,1196, +0,20275,2343,1,0,0,0,20276,20301,3,2330,1165,0,20277,20278,5,2235,0,0,20278, +20283,3,2342,1171,0,20279,20280,5,2451,0,0,20280,20282,3,2342,1171,0,20281, +20279,1,0,0,0,20282,20285,1,0,0,0,20283,20281,1,0,0,0,20283,20284,1,0,0, +0,20284,20301,1,0,0,0,20285,20283,1,0,0,0,20286,20287,5,424,0,0,20287,20301, +3,2340,1170,0,20288,20289,5,481,0,0,20289,20301,3,2338,1169,0,20290,20291, +5,953,0,0,20291,20292,5,969,0,0,20292,20301,3,2338,1169,0,20293,20294,5, +790,0,0,20294,20295,7,84,0,0,20295,20301,3,2338,1169,0,20296,20297,5,1720, +0,0,20297,20298,5,2152,0,0,20298,20299,5,1461,0,0,20299,20301,3,2338,1169, +0,20300,20276,1,0,0,0,20300,20277,1,0,0,0,20300,20286,1,0,0,0,20300,20288, +1,0,0,0,20300,20290,1,0,0,0,20300,20293,1,0,0,0,20300,20296,1,0,0,0,20301, +2345,1,0,0,0,20302,20307,3,2328,1164,0,20303,20304,5,2451,0,0,20304,20306, +3,2328,1164,0,20305,20303,1,0,0,0,20306,20309,1,0,0,0,20307,20305,1,0,0, +0,20307,20308,1,0,0,0,20308,2347,1,0,0,0,20309,20307,1,0,0,0,20310,20311, +5,2445,0,0,20311,20312,3,2346,1173,0,20312,20313,5,2446,0,0,20313,2349,1, +0,0,0,20314,20315,5,812,0,0,20315,20316,5,2445,0,0,20316,20317,5,2390,0, +0,20317,20320,7,54,0,0,20318,20321,3,1918,959,0,20319,20321,3,1986,993,0, +20320,20318,1,0,0,0,20320,20319,1,0,0,0,20321,20322,1,0,0,0,20322,20324, +5,2446,0,0,20323,20325,3,2192,1096,0,20324,20323,1,0,0,0,20324,20325,1,0, +0,0,20325,2351,1,0,0,0,20326,20335,5,2445,0,0,20327,20332,3,2360,1180,0, +20328,20329,5,2451,0,0,20329,20331,3,2360,1180,0,20330,20328,1,0,0,0,20331, +20334,1,0,0,0,20332,20330,1,0,0,0,20332,20333,1,0,0,0,20333,20336,1,0,0, +0,20334,20332,1,0,0,0,20335,20327,1,0,0,0,20335,20336,1,0,0,0,20336,20337, +1,0,0,0,20337,20339,5,2446,0,0,20338,20340,3,2350,1175,0,20339,20338,1,0, +0,0,20339,20340,1,0,0,0,20340,2353,1,0,0,0,20341,20356,5,2445,0,0,20342, +20344,3,2360,1180,0,20343,20345,3,2358,1179,0,20344,20343,1,0,0,0,20344, +20345,1,0,0,0,20345,20353,1,0,0,0,20346,20347,5,2451,0,0,20347,20349,3,2360, +1180,0,20348,20350,3,2358,1179,0,20349,20348,1,0,0,0,20349,20350,1,0,0,0, +20350,20352,1,0,0,0,20351,20346,1,0,0,0,20352,20355,1,0,0,0,20353,20351, +1,0,0,0,20353,20354,1,0,0,0,20354,20357,1,0,0,0,20355,20353,1,0,0,0,20356, +20342,1,0,0,0,20356,20357,1,0,0,0,20357,20358,1,0,0,0,20358,20360,5,2446, +0,0,20359,20361,3,2350,1175,0,20360,20359,1,0,0,0,20360,20361,1,0,0,0,20361, +2355,1,0,0,0,20362,20363,5,2445,0,0,20363,20376,3,2328,1164,0,20364,20367, +5,2451,0,0,20365,20368,3,2384,1192,0,20366,20368,5,1226,0,0,20367,20365, +1,0,0,0,20367,20366,1,0,0,0,20368,20374,1,0,0,0,20369,20372,5,2451,0,0,20370, +20373,3,2384,1192,0,20371,20373,5,1226,0,0,20372,20370,1,0,0,0,20372,20371, +1,0,0,0,20373,20375,1,0,0,0,20374,20369,1,0,0,0,20374,20375,1,0,0,0,20375, +20377,1,0,0,0,20376,20364,1,0,0,0,20376,20377,1,0,0,0,20377,20378,1,0,0, +0,20378,20398,5,2244,0,0,20379,20380,3,2330,1165,0,20380,20381,5,2438,0, +0,20381,20382,5,2448,0,0,20382,20399,1,0,0,0,20383,20399,5,2448,0,0,20384, +20386,3,2070,1035,0,20385,20387,3,2256,1128,0,20386,20385,1,0,0,0,20386, +20387,1,0,0,0,20387,20395,1,0,0,0,20388,20389,5,2451,0,0,20389,20391,3,2070, +1035,0,20390,20392,3,2256,1128,0,20391,20390,1,0,0,0,20391,20392,1,0,0,0, +20392,20394,1,0,0,0,20393,20388,1,0,0,0,20394,20397,1,0,0,0,20395,20393, +1,0,0,0,20395,20396,1,0,0,0,20396,20399,1,0,0,0,20397,20395,1,0,0,0,20398, +20379,1,0,0,0,20398,20383,1,0,0,0,20398,20384,1,0,0,0,20399,20400,1,0,0, +0,20400,20402,5,2446,0,0,20401,20403,3,2350,1175,0,20402,20401,1,0,0,0,20402, +20403,1,0,0,0,20403,2357,1,0,0,0,20404,20405,7,272,0,0,20405,20406,5,1227, +0,0,20406,2359,1,0,0,0,20407,20408,3,2390,1195,0,20408,20409,5,2469,0,0, +20409,20410,5,2464,0,0,20410,20412,1,0,0,0,20411,20407,1,0,0,0,20411,20412, +1,0,0,0,20412,20413,1,0,0,0,20413,20414,3,2070,1035,0,20414,2361,1,0,0,0, +20415,20424,3,2364,1182,0,20416,20418,5,1528,0,0,20417,20416,1,0,0,0,20417, +20418,1,0,0,0,20418,20419,1,0,0,0,20419,20421,3,2302,1151,0,20420,20422, +7,273,0,0,20421,20420,1,0,0,0,20421,20422,1,0,0,0,20422,20424,1,0,0,0,20423, +20415,1,0,0,0,20423,20417,1,0,0,0,20424,2363,1,0,0,0,20425,20427,3,2368, +1184,0,20426,20428,3,2366,1183,0,20427,20426,1,0,0,0,20427,20428,1,0,0,0, +20428,20438,1,0,0,0,20429,20431,5,2306,0,0,20430,20432,5,871,0,0,20431,20430, +1,0,0,0,20431,20432,1,0,0,0,20432,20433,1,0,0,0,20433,20434,5,2110,0,0,20434, +20439,5,2361,0,0,20435,20436,5,193,0,0,20436,20437,5,1669,0,0,20437,20439, +3,2334,1167,0,20438,20429,1,0,0,0,20438,20435,1,0,0,0,20438,20439,1,0,0, +0,20439,20457,1,0,0,0,20440,20441,5,774,0,0,20441,20446,7,274,0,0,20442, +20443,5,2445,0,0,20443,20444,3,2070,1035,0,20444,20445,5,2446,0,0,20445, +20447,1,0,0,0,20446,20442,1,0,0,0,20446,20447,1,0,0,0,20447,20448,1,0,0, +0,20448,20449,5,2139,0,0,20449,20454,7,275,0,0,20450,20451,5,2445,0,0,20451, +20452,3,2070,1035,0,20452,20453,5,2446,0,0,20453,20455,1,0,0,0,20454,20450, +1,0,0,0,20454,20455,1,0,0,0,20455,20457,1,0,0,0,20456,20425,1,0,0,0,20456, +20440,1,0,0,0,20457,2365,1,0,0,0,20458,20461,5,2445,0,0,20459,20462,3,2384, +1192,0,20460,20462,5,2448,0,0,20461,20459,1,0,0,0,20461,20460,1,0,0,0,20462, +20468,1,0,0,0,20463,20466,5,2451,0,0,20464,20467,3,2384,1192,0,20465,20467, +3,2386,1193,0,20466,20464,1,0,0,0,20466,20465,1,0,0,0,20467,20469,1,0,0, +0,20468,20463,1,0,0,0,20468,20469,1,0,0,0,20469,20471,1,0,0,0,20470,20472, +7,236,0,0,20471,20470,1,0,0,0,20471,20472,1,0,0,0,20472,20473,1,0,0,0,20473, +20474,5,2446,0,0,20474,2367,1,0,0,0,20475,20541,5,131,0,0,20476,20541,5, +1401,0,0,20477,20541,5,1002,0,0,20478,20541,5,128,0,0,20479,20541,5,125, +0,0,20480,20541,5,1003,0,0,20481,20541,5,1418,0,0,20482,20541,5,1417,0,0, +20483,20541,5,1690,0,0,20484,20541,5,1691,0,0,20485,20541,5,1233,0,0,20486, +20541,5,378,0,0,20487,20541,5,767,0,0,20488,20541,5,775,0,0,20489,20541, +5,1229,0,0,20490,20541,5,1704,0,0,20491,20541,5,1228,0,0,20492,20541,5,379, +0,0,20493,20495,5,463,0,0,20494,20496,5,1435,0,0,20495,20494,1,0,0,0,20495, +20496,1,0,0,0,20496,20541,1,0,0,0,20497,20541,5,605,0,0,20498,20541,5,1507, +0,0,20499,20541,5,1006,0,0,20500,20502,5,891,0,0,20501,20503,5,1496,0,0, +20502,20501,1,0,0,0,20502,20503,1,0,0,0,20503,20541,1,0,0,0,20504,20541, +5,196,0,0,20505,20507,5,193,0,0,20506,20508,5,2267,0,0,20507,20506,1,0,0, +0,20507,20508,1,0,0,0,20508,20541,1,0,0,0,20509,20541,5,2257,0,0,20510,20541, +5,2258,0,0,20511,20541,5,1765,0,0,20512,20541,5,1496,0,0,20513,20541,5,148, +0,0,20514,20541,5,359,0,0,20515,20541,5,1599,0,0,20516,20541,5,2212,0,0, +20517,20541,5,2356,0,0,20518,20541,5,983,0,0,20519,20541,5,363,0,0,20520, +20541,5,677,0,0,20521,20541,5,956,0,0,20522,20541,5,1634,0,0,20523,20541, +5,1631,0,0,20524,20541,5,2113,0,0,20525,20541,5,2114,0,0,20526,20541,5,2116, +0,0,20527,20541,5,2112,0,0,20528,20541,5,2106,0,0,20529,20541,5,2108,0,0, +20530,20541,5,2107,0,0,20531,20541,5,2105,0,0,20532,20541,5,2359,0,0,20533, +20541,5,469,0,0,20534,20541,5,119,0,0,20535,20541,5,142,0,0,20536,20541, +5,215,0,0,20537,20541,5,1008,0,0,20538,20541,5,964,0,0,20539,20541,5,2349, +0,0,20540,20475,1,0,0,0,20540,20476,1,0,0,0,20540,20477,1,0,0,0,20540,20478, +1,0,0,0,20540,20479,1,0,0,0,20540,20480,1,0,0,0,20540,20481,1,0,0,0,20540, +20482,1,0,0,0,20540,20483,1,0,0,0,20540,20484,1,0,0,0,20540,20485,1,0,0, +0,20540,20486,1,0,0,0,20540,20487,1,0,0,0,20540,20488,1,0,0,0,20540,20489, +1,0,0,0,20540,20490,1,0,0,0,20540,20491,1,0,0,0,20540,20492,1,0,0,0,20540, +20493,1,0,0,0,20540,20497,1,0,0,0,20540,20498,1,0,0,0,20540,20499,1,0,0, +0,20540,20500,1,0,0,0,20540,20504,1,0,0,0,20540,20505,1,0,0,0,20540,20509, +1,0,0,0,20540,20510,1,0,0,0,20540,20511,1,0,0,0,20540,20512,1,0,0,0,20540, +20513,1,0,0,0,20540,20514,1,0,0,0,20540,20515,1,0,0,0,20540,20516,1,0,0, +0,20540,20517,1,0,0,0,20540,20518,1,0,0,0,20540,20519,1,0,0,0,20540,20520, +1,0,0,0,20540,20521,1,0,0,0,20540,20522,1,0,0,0,20540,20523,1,0,0,0,20540, +20524,1,0,0,0,20540,20525,1,0,0,0,20540,20526,1,0,0,0,20540,20527,1,0,0, +0,20540,20528,1,0,0,0,20540,20529,1,0,0,0,20540,20530,1,0,0,0,20540,20531, +1,0,0,0,20540,20532,1,0,0,0,20540,20533,1,0,0,0,20540,20534,1,0,0,0,20540, +20535,1,0,0,0,20540,20536,1,0,0,0,20540,20537,1,0,0,0,20540,20538,1,0,0, +0,20540,20539,1,0,0,0,20541,2369,1,0,0,0,20542,20546,5,2459,0,0,20543,20544, +5,2466,0,0,20544,20546,5,2439,0,0,20545,20542,1,0,0,0,20545,20543,1,0,0, +0,20546,20555,1,0,0,0,20547,20549,5,731,0,0,20548,20547,1,0,0,0,20548,20549, +1,0,0,0,20549,20553,1,0,0,0,20550,20554,5,2459,0,0,20551,20552,5,2466,0, +0,20552,20554,5,2439,0,0,20553,20550,1,0,0,0,20553,20551,1,0,0,0,20554,20556, +1,0,0,0,20555,20548,1,0,0,0,20555,20556,1,0,0,0,20556,20561,1,0,0,0,20557, +20558,5,2438,0,0,20558,20560,3,2374,1187,0,20559,20557,1,0,0,0,20560,20563, +1,0,0,0,20561,20559,1,0,0,0,20561,20562,1,0,0,0,20562,2371,1,0,0,0,20563, +20561,1,0,0,0,20564,20565,6,1186,-1,0,20565,20571,3,2374,1187,0,20566,20567, +5,2445,0,0,20567,20568,3,2372,1186,0,20568,20569,5,2446,0,0,20569,20571, +1,0,0,0,20570,20564,1,0,0,0,20570,20566,1,0,0,0,20571,20581,1,0,0,0,20572, +20575,10,2,0,0,20573,20574,5,2438,0,0,20574,20576,3,2374,1187,0,20575,20573, +1,0,0,0,20576,20577,1,0,0,0,20577,20575,1,0,0,0,20577,20578,1,0,0,0,20578, +20580,1,0,0,0,20579,20572,1,0,0,0,20580,20583,1,0,0,0,20581,20579,1,0,0, +0,20581,20582,1,0,0,0,20582,2373,1,0,0,0,20583,20581,1,0,0,0,20584,20585, +5,2472,0,0,20585,20587,3,2334,1167,0,20586,20584,1,0,0,0,20586,20587,1,0, +0,0,20587,20588,1,0,0,0,20588,20591,3,2392,1196,0,20589,20590,5,2453,0,0, +20590,20592,3,2322,1161,0,20591,20589,1,0,0,0,20591,20592,1,0,0,0,20592, +20596,1,0,0,0,20593,20595,3,2352,1176,0,20594,20593,1,0,0,0,20595,20598, +1,0,0,0,20596,20594,1,0,0,0,20596,20597,1,0,0,0,20597,2375,1,0,0,0,20598, +20596,1,0,0,0,20599,20600,5,2472,0,0,20600,20602,3,2334,1167,0,20601,20599, +1,0,0,0,20601,20602,1,0,0,0,20602,20603,1,0,0,0,20603,20608,3,2392,1196, +0,20604,20605,5,2438,0,0,20605,20607,3,2392,1196,0,20606,20604,1,0,0,0,20607, +20610,1,0,0,0,20608,20606,1,0,0,0,20608,20609,1,0,0,0,20609,2377,1,0,0,0, +20610,20608,1,0,0,0,20611,20613,5,38,0,0,20612,20614,5,1457,0,0,20613,20612, +1,0,0,0,20613,20614,1,0,0,0,20614,20648,1,0,0,0,20615,20648,5,42,0,0,20616, +20648,5,376,0,0,20617,20648,5,401,0,0,20618,20648,5,540,0,0,20619,20648, +5,603,0,0,20620,20621,5,603,0,0,20621,20648,5,64,0,0,20622,20648,5,715,0, +0,20623,20624,5,735,0,0,20624,20648,5,1457,0,0,20625,20626,5,735,0,0,20626, +20627,5,1554,0,0,20627,20648,5,1457,0,0,20628,20648,5,754,0,0,20629,20630, +5,812,0,0,20630,20648,5,1651,0,0,20631,20632,5,944,0,0,20632,20648,5,2284, +0,0,20633,20634,5,1257,0,0,20634,20635,5,242,0,0,20635,20648,5,1529,0,0, +20636,20637,5,1482,0,0,20637,20648,5,1589,0,0,20638,20648,5,1503,0,0,20639, +20648,5,1526,0,0,20640,20648,5,1645,0,0,20641,20642,5,2151,0,0,20642,20648, +5,1720,0,0,20643,20648,5,2175,0,0,20644,20648,5,2205,0,0,20645,20648,5,2239, +0,0,20646,20648,5,2311,0,0,20647,20611,1,0,0,0,20647,20615,1,0,0,0,20647, +20616,1,0,0,0,20647,20617,1,0,0,0,20647,20618,1,0,0,0,20647,20619,1,0,0, +0,20647,20620,1,0,0,0,20647,20622,1,0,0,0,20647,20623,1,0,0,0,20647,20625, +1,0,0,0,20647,20628,1,0,0,0,20647,20629,1,0,0,0,20647,20631,1,0,0,0,20647, +20633,1,0,0,0,20647,20636,1,0,0,0,20647,20638,1,0,0,0,20647,20639,1,0,0, +0,20647,20640,1,0,0,0,20647,20641,1,0,0,0,20647,20643,1,0,0,0,20647,20644, +1,0,0,0,20647,20645,1,0,0,0,20647,20646,1,0,0,0,20648,2379,1,0,0,0,20649, +20650,5,38,0,0,20650,20976,5,1457,0,0,20651,20976,5,31,0,0,20652,20654,5, +27,0,0,20653,20655,5,55,0,0,20654,20653,1,0,0,0,20654,20655,1,0,0,0,20655, +20656,1,0,0,0,20656,20657,5,1720,0,0,20657,20658,5,2161,0,0,20658,20976, +5,1669,0,0,20659,20660,7,57,0,0,20660,20661,5,55,0,0,20661,20662,5,1720, +0,0,20662,20976,5,1461,0,0,20663,20664,5,27,0,0,20664,20665,5,1720,0,0,20665, +20666,5,904,0,0,20666,20976,5,1236,0,0,20667,20669,5,319,0,0,20668,20670, +5,55,0,0,20669,20668,1,0,0,0,20669,20670,1,0,0,0,20670,20671,1,0,0,0,20671, +20976,5,220,0,0,20672,20673,7,276,0,0,20673,20674,5,55,0,0,20674,20976,5, +220,0,0,20675,20676,7,277,0,0,20676,20677,5,55,0,0,20677,20976,5,294,0,0, +20678,20679,5,541,0,0,20679,20680,5,1518,0,0,20680,20976,5,1410,0,0,20681, +20682,5,42,0,0,20682,20976,5,348,0,0,20683,20685,7,278,0,0,20684,20686,5, +1471,0,0,20685,20684,1,0,0,0,20685,20686,1,0,0,0,20686,20687,1,0,0,0,20687, +20688,5,348,0,0,20688,20976,5,859,0,0,20689,20690,5,467,0,0,20690,20691, +5,1471,0,0,20691,20692,5,348,0,0,20692,20976,5,859,0,0,20693,20694,5,376, +0,0,20694,20695,5,278,0,0,20695,20976,5,1665,0,0,20696,20697,5,376,0,0,20697, +20698,5,55,0,0,20698,20976,5,1459,0,0,20699,20700,5,46,0,0,20700,20701,5, +55,0,0,20701,20976,5,419,0,0,20702,20704,5,319,0,0,20703,20705,5,55,0,0, +20704,20703,1,0,0,0,20704,20705,1,0,0,0,20705,20706,1,0,0,0,20706,20976, +5,420,0,0,20707,20708,7,276,0,0,20708,20709,5,55,0,0,20709,20976,5,420,0, +0,20710,20711,7,277,0,0,20711,20712,5,55,0,0,20712,20976,5,424,0,0,20713, +20714,7,277,0,0,20714,20715,5,55,0,0,20715,20976,5,481,0,0,20716,20721,5, +603,0,0,20717,20718,5,64,0,0,20718,20722,5,27,0,0,20719,20720,5,55,0,0,20720, +20722,5,2081,0,0,20721,20717,1,0,0,0,20721,20719,1,0,0,0,20722,20976,1,0, +0,0,20723,20724,7,57,0,0,20724,20725,5,55,0,0,20725,20976,5,715,0,0,20726, +20728,5,319,0,0,20727,20729,5,55,0,0,20728,20727,1,0,0,0,20728,20729,1,0, +0,0,20729,20730,1,0,0,0,20730,20976,5,729,0,0,20731,20732,7,279,0,0,20732, +20733,5,55,0,0,20733,20976,5,729,0,0,20734,20736,5,319,0,0,20735,20737,7, +280,0,0,20736,20735,1,0,0,0,20736,20737,1,0,0,0,20737,20738,1,0,0,0,20738, +20976,5,791,0,0,20739,20740,5,540,0,0,20740,20741,5,55,0,0,20741,20976,7, +281,0,0,20742,20743,5,903,0,0,20743,20976,5,1621,0,0,20744,20745,5,27,0, +0,20745,20746,5,814,0,0,20746,20976,5,904,0,0,20747,20749,5,319,0,0,20748, +20750,5,55,0,0,20749,20748,1,0,0,0,20749,20750,1,0,0,0,20750,20751,1,0,0, +0,20751,20976,5,847,0,0,20752,20753,7,279,0,0,20753,20754,5,55,0,0,20754, +20976,5,847,0,0,20755,20976,5,887,0,0,20756,20758,5,319,0,0,20757,20759, +5,55,0,0,20758,20757,1,0,0,0,20758,20759,1,0,0,0,20759,20760,1,0,0,0,20760, +20761,5,917,0,0,20761,20976,5,2284,0,0,20762,20763,7,276,0,0,20763,20764, +5,55,0,0,20764,20765,5,917,0,0,20765,20976,5,2284,0,0,20766,20768,5,640, +0,0,20767,20766,1,0,0,0,20767,20768,1,0,0,0,20768,20769,1,0,0,0,20769,20770, +5,1482,0,0,20770,20976,5,1589,0,0,20771,20772,5,1257,0,0,20772,20773,5,242, +0,0,20773,20976,5,1529,0,0,20774,20776,5,319,0,0,20775,20777,5,55,0,0,20776, +20775,1,0,0,0,20776,20777,1,0,0,0,20777,20778,1,0,0,0,20778,20779,5,953, +0,0,20779,20976,5,969,0,0,20780,20781,7,282,0,0,20781,20782,5,55,0,0,20782, +20783,5,953,0,0,20783,20976,5,969,0,0,20784,20786,5,319,0,0,20785,20787, +5,55,0,0,20786,20785,1,0,0,0,20786,20787,1,0,0,0,20787,20788,1,0,0,0,20788, +20976,5,330,0,0,20789,20790,7,283,0,0,20790,20791,5,55,0,0,20791,20976,5, +330,0,0,20792,20794,5,319,0,0,20793,20795,5,55,0,0,20794,20793,1,0,0,0,20794, +20795,1,0,0,0,20795,20796,1,0,0,0,20796,20797,5,931,0,0,20797,20976,5,610, +0,0,20798,20799,7,284,0,0,20799,20800,5,55,0,0,20800,20801,5,931,0,0,20801, +20976,5,610,0,0,20802,20804,5,319,0,0,20803,20805,5,55,0,0,20804,20803,1, +0,0,0,20804,20805,1,0,0,0,20805,20806,1,0,0,0,20806,20807,5,330,0,0,20807, +20976,5,420,0,0,20808,20809,7,285,0,0,20809,20810,5,55,0,0,20810,20811,5, +330,0,0,20811,20976,5,420,0,0,20812,20814,5,319,0,0,20813,20815,5,55,0,0, +20814,20813,1,0,0,0,20814,20815,1,0,0,0,20815,20816,1,0,0,0,20816,20817, +5,330,0,0,20817,20818,5,158,0,0,20818,20976,5,1460,0,0,20819,20820,7,286, +0,0,20820,20821,5,55,0,0,20821,20822,5,330,0,0,20822,20823,5,158,0,0,20823, +20976,5,1460,0,0,20824,20826,5,319,0,0,20825,20827,5,55,0,0,20826,20825, +1,0,0,0,20826,20827,1,0,0,0,20827,20828,1,0,0,0,20828,20976,5,1264,0,0,20829, +20830,7,279,0,0,20830,20831,5,55,0,0,20831,20976,5,1264,0,0,20832,20833, +7,57,0,0,20833,20834,5,55,0,0,20834,20976,5,1313,0,0,20835,20836,5,319,0, +0,20836,20837,5,1407,0,0,20837,20976,5,348,0,0,20838,20839,5,1669,0,0,20839, +20976,5,287,0,0,20840,20842,5,319,0,0,20841,20843,5,55,0,0,20842,20841,1, +0,0,0,20842,20843,1,0,0,0,20843,20844,1,0,0,0,20844,20976,5,1459,0,0,20845, +20846,7,279,0,0,20846,20847,5,55,0,0,20847,20976,5,1459,0,0,20848,20849, +7,57,0,0,20849,20976,5,1461,0,0,20850,20851,5,319,0,0,20851,20976,5,1591, +0,0,20852,20853,7,287,0,0,20853,20854,5,55,0,0,20854,20976,5,1591,0,0,20855, +20856,7,57,0,0,20856,20857,5,1594,0,0,20857,20976,5,1643,0,0,20858,20860, +5,319,0,0,20859,20861,5,55,0,0,20860,20859,1,0,0,0,20860,20861,1,0,0,0,20861, +20862,1,0,0,0,20862,20976,5,1651,0,0,20863,20864,7,288,0,0,20864,20865,5, +55,0,0,20865,20976,5,1651,0,0,20866,20867,7,289,0,0,20867,20976,5,1665,0, +0,20868,20869,5,42,0,0,20869,20870,5,1568,0,0,20870,20976,5,309,0,0,20871, +20873,5,319,0,0,20872,20874,5,55,0,0,20873,20872,1,0,0,0,20873,20874,1,0, +0,0,20874,20875,1,0,0,0,20875,20876,5,1720,0,0,20876,20877,5,2152,0,0,20877, +20976,5,1461,0,0,20878,20879,7,290,0,0,20879,20880,5,55,0,0,20880,20881, +5,1720,0,0,20881,20882,5,2152,0,0,20882,20976,5,1461,0,0,20883,20884,5,2151, +0,0,20884,20885,5,55,0,0,20885,20976,5,1720,0,0,20886,20888,5,319,0,0,20887, +20889,5,55,0,0,20888,20887,1,0,0,0,20888,20889,1,0,0,0,20889,20890,1,0,0, +0,20890,20976,5,1794,0,0,20891,20892,5,467,0,0,20892,20893,5,55,0,0,20893, +20976,5,1794,0,0,20894,20895,7,277,0,0,20895,20896,5,1471,0,0,20896,20976, +5,1794,0,0,20897,20899,5,319,0,0,20898,20900,5,55,0,0,20899,20898,1,0,0, +0,20899,20900,1,0,0,0,20900,20901,1,0,0,0,20901,20976,5,2081,0,0,20902,20903, +7,291,0,0,20903,20904,5,55,0,0,20904,20976,5,2081,0,0,20905,20906,7,292, +0,0,20906,20976,5,2078,0,0,20907,20909,5,319,0,0,20908,20910,5,55,0,0,20909, +20908,1,0,0,0,20909,20910,1,0,0,0,20910,20911,1,0,0,0,20911,20976,5,2155, +0,0,20912,20913,7,276,0,0,20913,20914,5,55,0,0,20914,20976,5,2155,0,0,20915, +20916,5,27,0,0,20916,20917,5,348,0,0,20917,20976,5,2155,0,0,20918,20920, +5,319,0,0,20919,20921,5,55,0,0,20920,20919,1,0,0,0,20920,20921,1,0,0,0,20921, +20922,1,0,0,0,20922,20976,5,2164,0,0,20923,20924,7,293,0,0,20924,20925,5, +55,0,0,20925,20976,5,2164,0,0,20926,20927,7,57,0,0,20927,20976,5,2235,0, +0,20928,20930,5,319,0,0,20929,20931,5,55,0,0,20930,20929,1,0,0,0,20930,20931, +1,0,0,0,20931,20932,1,0,0,0,20932,20976,5,2284,0,0,20933,20934,7,294,0,0, +20934,20935,5,55,0,0,20935,20976,5,2284,0,0,20936,20937,7,295,0,0,20937, +20976,5,55,0,0,20938,20939,5,111,0,0,20939,20976,5,2235,0,0,20940,20941, +5,190,0,0,20941,20976,5,1200,0,0,20942,20943,5,541,0,0,20943,20944,5,4,0, +0,20944,20976,5,1410,0,0,20945,20947,5,614,0,0,20946,20948,5,55,0,0,20947, +20946,1,0,0,0,20947,20948,1,0,0,0,20948,20949,1,0,0,0,20949,20976,5,2145, +0,0,20950,20951,5,645,0,0,20951,20953,5,55,0,0,20952,20954,5,1236,0,0,20953, +20952,1,0,0,0,20953,20954,1,0,0,0,20954,20955,1,0,0,0,20955,20976,5,1456, +0,0,20956,20957,5,735,0,0,20957,20958,5,55,0,0,20958,20976,5,1457,0,0,20959, +20960,5,812,0,0,20960,20961,5,359,0,0,20961,20976,5,2110,0,0,20962,20963, +5,812,0,0,20963,20976,5,1830,0,0,20964,20965,5,1473,0,0,20965,20976,5,367, +0,0,20966,20976,5,1579,0,0,20967,20968,5,1645,0,0,20968,20969,5,55,0,0,20969, +20976,7,296,0,0,20970,20976,5,1799,0,0,20971,20976,5,1805,0,0,20972,20976, +5,1807,0,0,20973,20976,5,1831,0,0,20974,20976,5,1866,0,0,20975,20649,1,0, +0,0,20975,20651,1,0,0,0,20975,20652,1,0,0,0,20975,20659,1,0,0,0,20975,20663, +1,0,0,0,20975,20667,1,0,0,0,20975,20672,1,0,0,0,20975,20675,1,0,0,0,20975, +20678,1,0,0,0,20975,20681,1,0,0,0,20975,20683,1,0,0,0,20975,20689,1,0,0, +0,20975,20693,1,0,0,0,20975,20696,1,0,0,0,20975,20699,1,0,0,0,20975,20702, +1,0,0,0,20975,20707,1,0,0,0,20975,20710,1,0,0,0,20975,20713,1,0,0,0,20975, +20716,1,0,0,0,20975,20723,1,0,0,0,20975,20726,1,0,0,0,20975,20731,1,0,0, +0,20975,20734,1,0,0,0,20975,20739,1,0,0,0,20975,20742,1,0,0,0,20975,20744, +1,0,0,0,20975,20747,1,0,0,0,20975,20752,1,0,0,0,20975,20755,1,0,0,0,20975, +20756,1,0,0,0,20975,20762,1,0,0,0,20975,20767,1,0,0,0,20975,20771,1,0,0, +0,20975,20774,1,0,0,0,20975,20780,1,0,0,0,20975,20784,1,0,0,0,20975,20789, +1,0,0,0,20975,20792,1,0,0,0,20975,20798,1,0,0,0,20975,20802,1,0,0,0,20975, +20808,1,0,0,0,20975,20812,1,0,0,0,20975,20819,1,0,0,0,20975,20824,1,0,0, +0,20975,20829,1,0,0,0,20975,20832,1,0,0,0,20975,20835,1,0,0,0,20975,20838, +1,0,0,0,20975,20840,1,0,0,0,20975,20845,1,0,0,0,20975,20848,1,0,0,0,20975, +20850,1,0,0,0,20975,20852,1,0,0,0,20975,20855,1,0,0,0,20975,20858,1,0,0, +0,20975,20863,1,0,0,0,20975,20866,1,0,0,0,20975,20868,1,0,0,0,20975,20871, +1,0,0,0,20975,20878,1,0,0,0,20975,20883,1,0,0,0,20975,20886,1,0,0,0,20975, +20891,1,0,0,0,20975,20894,1,0,0,0,20975,20897,1,0,0,0,20975,20902,1,0,0, +0,20975,20905,1,0,0,0,20975,20907,1,0,0,0,20975,20912,1,0,0,0,20975,20915, +1,0,0,0,20975,20918,1,0,0,0,20975,20923,1,0,0,0,20975,20926,1,0,0,0,20975, +20928,1,0,0,0,20975,20933,1,0,0,0,20975,20936,1,0,0,0,20975,20938,1,0,0, +0,20975,20940,1,0,0,0,20975,20942,1,0,0,0,20975,20945,1,0,0,0,20975,20950, +1,0,0,0,20975,20956,1,0,0,0,20975,20959,1,0,0,0,20975,20962,1,0,0,0,20975, +20964,1,0,0,0,20975,20966,1,0,0,0,20975,20967,1,0,0,0,20975,20970,1,0,0, +0,20975,20971,1,0,0,0,20975,20972,1,0,0,0,20975,20973,1,0,0,0,20975,20974, +1,0,0,0,20976,2381,1,0,0,0,20977,20980,5,2106,0,0,20978,20981,3,2388,1194, +0,20979,20981,3,2370,1185,0,20980,20978,1,0,0,0,20980,20979,1,0,0,0,20981, +20986,1,0,0,0,20982,20983,5,82,0,0,20983,20984,5,2110,0,0,20984,20985,5, +2361,0,0,20985,20987,3,2388,1194,0,20986,20982,1,0,0,0,20986,20987,1,0,0, +0,20987,21041,1,0,0,0,20988,20992,5,774,0,0,20989,20993,3,2388,1194,0,20990, +20993,3,2370,1185,0,20991,20993,3,2374,1187,0,20992,20989,1,0,0,0,20992, +20990,1,0,0,0,20992,20991,1,0,0,0,20993,20994,1,0,0,0,20994,21008,7,297, +0,0,20995,20998,5,2445,0,0,20996,20999,5,2439,0,0,20997,20999,3,2370,1185, +0,20998,20996,1,0,0,0,20998,20997,1,0,0,0,20999,21005,1,0,0,0,21000,21003, +5,2451,0,0,21001,21004,5,2439,0,0,21002,21004,3,2370,1185,0,21003,21001, +1,0,0,0,21003,21002,1,0,0,0,21004,21006,1,0,0,0,21005,21000,1,0,0,0,21005, +21006,1,0,0,0,21006,21007,1,0,0,0,21007,21009,5,2446,0,0,21008,20995,1,0, +0,0,21008,21009,1,0,0,0,21009,21026,1,0,0,0,21010,21024,5,2139,0,0,21011, +21025,5,983,0,0,21012,21025,5,363,0,0,21013,21025,5,677,0,0,21014,21025, +5,956,0,0,21015,21022,5,1634,0,0,21016,21019,5,2445,0,0,21017,21020,5,2439, +0,0,21018,21020,3,2370,1185,0,21019,21017,1,0,0,0,21019,21018,1,0,0,0,21020, +21021,1,0,0,0,21021,21023,5,2446,0,0,21022,21016,1,0,0,0,21022,21023,1,0, +0,0,21023,21025,1,0,0,0,21024,21011,1,0,0,0,21024,21012,1,0,0,0,21024,21013, +1,0,0,0,21024,21014,1,0,0,0,21024,21015,1,0,0,0,21025,21027,1,0,0,0,21026, +21010,1,0,0,0,21026,21027,1,0,0,0,21027,21041,1,0,0,0,21028,21041,3,2384, +1192,0,21029,21030,5,359,0,0,21030,21041,3,2388,1194,0,21031,21041,3,2388, +1194,0,21032,21041,5,1226,0,0,21033,21041,5,2156,0,0,21034,21041,5,573,0, +0,21035,21041,5,371,0,0,21036,21041,5,1667,0,0,21037,21041,5,958,0,0,21038, +21041,5,930,0,0,21039,21041,5,387,0,0,21040,20977,1,0,0,0,21040,20988,1, +0,0,0,21040,21028,1,0,0,0,21040,21029,1,0,0,0,21040,21031,1,0,0,0,21040, +21032,1,0,0,0,21040,21033,1,0,0,0,21040,21034,1,0,0,0,21040,21035,1,0,0, +0,21040,21036,1,0,0,0,21040,21037,1,0,0,0,21040,21038,1,0,0,0,21040,21039, +1,0,0,0,21041,2383,1,0,0,0,21042,21044,5,2439,0,0,21043,21045,5,2438,0,0, +21044,21043,1,0,0,0,21044,21045,1,0,0,0,21045,21048,1,0,0,0,21046,21048, +5,2440,0,0,21047,21042,1,0,0,0,21047,21046,1,0,0,0,21048,2385,1,0,0,0,21049, +21050,5,2450,0,0,21050,21051,3,2384,1192,0,21051,2387,1,0,0,0,21052,21053, +7,298,0,0,21053,2389,1,0,0,0,21054,21055,5,2472,0,0,21055,21057,3,2334,1167, +0,21056,21054,1,0,0,0,21056,21057,1,0,0,0,21057,21058,1,0,0,0,21058,21059, +3,2392,1196,0,21059,2391,1,0,0,0,21060,21063,3,2398,1199,0,21061,21063,5, +2442,0,0,21062,21060,1,0,0,0,21062,21061,1,0,0,0,21063,2393,1,0,0,0,21064, +21065,5,2479,0,0,21065,2395,1,0,0,0,21066,21067,5,2445,0,0,21067,21068,5, +2449,0,0,21068,21069,5,2446,0,0,21069,2397,1,0,0,0,21070,21181,3,2404,1202, +0,21071,21181,3,2402,1201,0,21072,21181,3,2400,1200,0,21073,21181,5,2478, +0,0,21074,21181,5,3,0,0,21075,21181,5,36,0,0,21076,21181,5,34,0,0,21077, +21181,5,35,0,0,21078,21181,5,46,0,0,21079,21181,5,96,0,0,21080,21181,5,101, +0,0,21081,21181,5,108,0,0,21082,21181,5,131,0,0,21083,21181,5,148,0,0,21084, +21181,5,213,0,0,21085,21181,5,196,0,0,21086,21181,5,2424,0,0,21087,21181, +5,2425,0,0,21088,21181,5,220,0,0,21089,21181,5,286,0,0,21090,21181,5,344, +0,0,21091,21181,5,182,0,0,21092,21181,5,379,0,0,21093,21181,5,401,0,0,21094, +21181,5,407,0,0,21095,21181,5,418,0,0,21096,21181,5,469,0,0,21097,21181, +5,2426,0,0,21098,21181,5,478,0,0,21099,21181,5,498,0,0,21100,21181,5,521, +0,0,21101,21181,5,522,0,0,21102,21181,5,516,0,0,21103,21181,5,533,0,0,21104, +21181,5,534,0,0,21105,21181,5,535,0,0,21106,21181,5,543,0,0,21107,21181, +5,545,0,0,21108,21181,5,2427,0,0,21109,21181,5,590,0,0,21110,21181,5,605, +0,0,21111,21181,5,613,0,0,21112,21181,5,633,0,0,21113,21181,5,732,0,0,21114, +21181,5,748,0,0,21115,21181,5,767,0,0,21116,21181,5,808,0,0,21117,21181, +5,810,0,0,21118,21181,5,821,0,0,21119,21181,5,891,0,0,21120,21181,5,892, +0,0,21121,21181,5,2428,0,0,21122,21181,5,988,0,0,21123,21181,5,899,0,0,21124, +21181,5,962,0,0,21125,21181,5,963,0,0,21126,21181,5,1228,0,0,21127,21181, +5,1277,0,0,21128,21181,5,1307,0,0,21129,21181,5,1316,0,0,21130,21181,5,1322, +0,0,21131,21181,5,1326,0,0,21132,21181,5,1329,0,0,21133,21181,5,1392,0,0, +21134,21181,5,1401,0,0,21135,21181,5,1408,0,0,21136,21181,5,1418,0,0,21137, +21181,5,1417,0,0,21138,21181,5,1431,0,0,21139,21181,5,1471,0,0,21140,21181, +5,1490,0,0,21141,21181,5,1496,0,0,21142,21181,5,1510,0,0,21143,21181,5,1528, +0,0,21144,21181,5,1557,0,0,21145,21181,5,1575,0,0,21146,21181,5,1578,0,0, +21147,21181,5,1631,0,0,21148,21181,5,1646,0,0,21149,21181,5,1658,0,0,21150, +21181,5,1669,0,0,21151,21181,5,1654,0,0,21152,21181,5,1675,0,0,21153,21181, +5,1690,0,0,21154,21181,5,1691,0,0,21155,21181,5,1704,0,0,21156,21181,5,2431, +0,0,21157,21181,5,1717,0,0,21158,21181,5,1718,0,0,21159,21181,5,1783,0,0, +21160,21181,5,2075,0,0,21161,21181,5,2432,0,0,21162,21181,5,2105,0,0,21163, +21181,5,2107,0,0,21164,21181,5,2108,0,0,21165,21181,5,2111,0,0,21166,21181, +5,2155,0,0,21167,21181,5,2169,0,0,21168,21181,5,2258,0,0,21169,21181,5,2257, +0,0,21170,21181,5,2260,0,0,21171,21181,5,2293,0,0,21172,21181,5,2300,0,0, +21173,21181,5,2433,0,0,21174,21181,5,2317,0,0,21175,21181,5,2359,0,0,21176, +21181,5,2411,0,0,21177,21181,5,2419,0,0,21178,21181,5,2256,0,0,21179,21181, +5,2398,0,0,21180,21070,1,0,0,0,21180,21071,1,0,0,0,21180,21072,1,0,0,0,21180, +21073,1,0,0,0,21180,21074,1,0,0,0,21180,21075,1,0,0,0,21180,21076,1,0,0, +0,21180,21077,1,0,0,0,21180,21078,1,0,0,0,21180,21079,1,0,0,0,21180,21080, +1,0,0,0,21180,21081,1,0,0,0,21180,21082,1,0,0,0,21180,21083,1,0,0,0,21180, +21084,1,0,0,0,21180,21085,1,0,0,0,21180,21086,1,0,0,0,21180,21087,1,0,0, +0,21180,21088,1,0,0,0,21180,21089,1,0,0,0,21180,21090,1,0,0,0,21180,21091, +1,0,0,0,21180,21092,1,0,0,0,21180,21093,1,0,0,0,21180,21094,1,0,0,0,21180, +21095,1,0,0,0,21180,21096,1,0,0,0,21180,21097,1,0,0,0,21180,21098,1,0,0, +0,21180,21099,1,0,0,0,21180,21100,1,0,0,0,21180,21101,1,0,0,0,21180,21102, +1,0,0,0,21180,21103,1,0,0,0,21180,21104,1,0,0,0,21180,21105,1,0,0,0,21180, +21106,1,0,0,0,21180,21107,1,0,0,0,21180,21108,1,0,0,0,21180,21109,1,0,0, +0,21180,21110,1,0,0,0,21180,21111,1,0,0,0,21180,21112,1,0,0,0,21180,21113, +1,0,0,0,21180,21114,1,0,0,0,21180,21115,1,0,0,0,21180,21116,1,0,0,0,21180, +21117,1,0,0,0,21180,21118,1,0,0,0,21180,21119,1,0,0,0,21180,21120,1,0,0, +0,21180,21121,1,0,0,0,21180,21122,1,0,0,0,21180,21123,1,0,0,0,21180,21124, +1,0,0,0,21180,21125,1,0,0,0,21180,21126,1,0,0,0,21180,21127,1,0,0,0,21180, +21128,1,0,0,0,21180,21129,1,0,0,0,21180,21130,1,0,0,0,21180,21131,1,0,0, +0,21180,21132,1,0,0,0,21180,21133,1,0,0,0,21180,21134,1,0,0,0,21180,21135, +1,0,0,0,21180,21136,1,0,0,0,21180,21137,1,0,0,0,21180,21138,1,0,0,0,21180, +21139,1,0,0,0,21180,21140,1,0,0,0,21180,21141,1,0,0,0,21180,21142,1,0,0, +0,21180,21143,1,0,0,0,21180,21144,1,0,0,0,21180,21145,1,0,0,0,21180,21146, +1,0,0,0,21180,21147,1,0,0,0,21180,21148,1,0,0,0,21180,21149,1,0,0,0,21180, +21150,1,0,0,0,21180,21151,1,0,0,0,21180,21152,1,0,0,0,21180,21153,1,0,0, +0,21180,21154,1,0,0,0,21180,21155,1,0,0,0,21180,21156,1,0,0,0,21180,21157, +1,0,0,0,21180,21158,1,0,0,0,21180,21159,1,0,0,0,21180,21160,1,0,0,0,21180, +21161,1,0,0,0,21180,21162,1,0,0,0,21180,21163,1,0,0,0,21180,21164,1,0,0, +0,21180,21165,1,0,0,0,21180,21166,1,0,0,0,21180,21167,1,0,0,0,21180,21168, +1,0,0,0,21180,21169,1,0,0,0,21180,21170,1,0,0,0,21180,21171,1,0,0,0,21180, +21172,1,0,0,0,21180,21173,1,0,0,0,21180,21174,1,0,0,0,21180,21175,1,0,0, +0,21180,21176,1,0,0,0,21180,21177,1,0,0,0,21180,21178,1,0,0,0,21180,21179, +1,0,0,0,21181,2399,1,0,0,0,21182,21183,7,299,0,0,21183,2401,1,0,0,0,21184, +21185,7,300,0,0,21185,2403,1,0,0,0,21186,21187,7,301,0,0,21187,2405,1,0, +0,0,2968,2407,2411,2414,2419,2421,2423,2428,2431,2434,2436,2581,2588,2590, +2593,2596,2618,2620,2627,2631,2636,2638,2643,2646,2650,2658,2663,2667,2672, +2677,2681,2687,2692,2697,2701,2704,2710,2718,2725,2729,2734,2737,2753,2758, +2762,2770,2776,2784,2787,2789,2792,2796,2799,2803,2811,2817,2825,2828,2831, +2843,2845,2851,2856,2858,2864,2867,2879,2889,2892,2897,2900,2917,2924,2929, +2933,2948,2951,2966,2976,2990,2993,3006,3014,3020,3024,3031,3035,3050,3068, +3081,3087,3096,3106,3110,3123,3126,3135,3143,3147,3157,3171,3181,3189,3192, +3196,3199,3202,3205,3215,3234,3244,3252,3257,3263,3284,3293,3296,3300,3302, +3311,3315,3331,3345,3347,3350,3354,3361,3368,3377,3382,3387,3389,3397,3405, +3409,3415,3419,3424,3431,3434,3444,3449,3456,3465,3467,3472,3475,3479,3484, +3496,3505,3508,3514,3520,3530,3546,3561,3574,3580,3592,3601,3606,3622,3624, +3640,3642,3663,3665,3685,3687,3702,3711,3713,3724,3731,3744,3749,3758,3761, +3766,3771,3776,3779,3785,3789,3795,3800,3805,3808,3815,3822,3831,3833,3835, +3839,3849,3859,3864,3868,3870,3883,3888,3897,3899,3915,3927,3931,3934,3937, +3944,3948,3951,3962,3967,3972,3982,3987,3997,3999,4004,4007,4011,4016,4028, +4033,4037,4039,4044,4047,4052,4059,4069,4074,4077,4080,4084,4087,4092,4101, +4117,4119,4129,4147,4154,4159,4165,4173,4175,4191,4196,4201,4203,4208,4215, +4218,4221,4224,4234,4246,4250,4253,4262,4270,4278,4281,4287,4292,4297,4301, +4339,4367,4374,4379,4386,4396,4401,4410,4414,4425,4428,4432,4435,4440,4445, +4449,4459,4469,4475,4483,4491,4496,4499,4501,4504,4513,4516,4521,4526,4529, +4532,4535,4539,4542,4550,4555,4560,4567,4577,4593,4600,4610,4620,4627,4630, +4635,4645,4650,4657,4660,4665,4668,4671,4688,4693,4702,4705,4710,4713,4720, +4723,4730,4735,4739,4744,4749,4763,4768,4775,4778,4782,4785,4788,4791,4801, +4807,4817,4822,4829,4835,4839,4842,4845,4862,4867,4875,4889,4896,4911,4931, +4938,4940,4944,4952,4963,4974,4976,4983,4989,4995,5018,5023,5028,5037,5040, +5048,5053,5057,5060,5063,5066,5069,5072,5075,5078,5082,5085,5088,5093,5097, +5100,5105,5107,5119,5123,5127,5133,5137,5140,5143,5153,5162,5170,5177,5182, +5190,5193,5197,5207,5216,5224,5228,5231,5236,5240,5243,5246,5255,5263,5268, +5294,5306,5315,5318,5327,5337,5342,5353,5356,5358,5364,5369,5374,5377,5383, +5388,5391,5398,5404,5409,5415,5422,5425,5433,5439,5445,5449,5452,5455,5468, +5474,5481,5492,5500,5504,5507,5512,5522,5527,5532,5537,5542,5547,5552,5557, +5562,5567,5570,5579,5584,5594,5599,5606,5610,5619,5626,5630,5637,5640,5643, +5651,5655,5658,5666,5672,5674,5682,5691,5696,5703,5708,5711,5715,5717,5728, +5739,5753,5758,5768,5774,5777,5782,5791,5794,5799,5803,5827,5829,5833,5836, +5841,5844,5849,5858,5869,5872,5875,5878,5882,5890,5895,5907,5910,5915,5919, +5922,5931,5937,5943,5946,5950,5965,5968,5971,5977,5983,5988,5994,6000,6008, +6012,6026,6033,6040,6046,6049,6053,6058,6063,6069,6074,6079,6083,6088,6094, +6098,6103,6107,6111,6124,6129,6132,6136,6141,6143,6149,6151,6155,6158,6165, +6176,6186,6190,6195,6199,6203,6206,6217,6222,6234,6244,6256,6262,6264,6268, +6277,6284,6294,6297,6304,6312,6323,6330,6334,6336,6340,6350,6361,6366,6370, +6374,6377,6380,6390,6395,6403,6410,6414,6416,6420,6423,6433,6444,6449,6453, +6457,6460,6463,6470,6479,6487,6489,6512,6525,6539,6541,6552,6560,6566,6569, +6574,6578,6581,6584,6589,6597,6609,6617,6624,6643,6654,6657,6663,6665,6672, +6675,6677,6685,6700,6708,6722,6733,6735,6751,6753,6760,6765,6772,6775,6780, +6790,6799,6812,6822,6827,6830,6836,6854,6857,6860,6868,6881,6883,6887,6895, +6897,6899,6901,6909,6920,6931,6933,6942,6953,6959,6966,6976,6980,6989,6992, +6998,7001,7006,7012,7020,7026,7032,7044,7052,7055,7066,7070,7081,7085,7096, +7100,7106,7109,7112,7115,7118,7122,7125,7129,7135,7138,7141,7144,7147,7151, +7154,7162,7167,7170,7174,7182,7186,7190,7199,7210,7217,7219,7223,7232,7236, +7240,7247,7253,7257,7264,7273,7285,7299,7303,7305,7308,7315,7329,7338,7341, +7344,7347,7355,7359,7368,7372,7387,7395,7407,7424,7427,7432,7438,7442,7447, +7453,7457,7460,7474,7479,7493,7498,7500,7509,7517,7520,7523,7526,7529,7531, +7535,7539,7546,7551,7556,7561,7565,7568,7573,7581,7586,7589,7595,7600,7605, +7612,7615,7628,7639,7648,7657,7666,7675,7678,7684,7689,7691,7698,7740,7743, +7747,7750,7761,7770,7773,7775,7785,7790,7794,7798,7801,7804,7818,7820,7826, +7828,7832,7838,7844,7848,7851,7859,7869,7873,7892,7897,7904,7911,7985,7992, +8001,8010,8018,8025,8032,8037,8044,8051,8056,8063,8070,8075,8082,8089,8094, +8101,8108,8113,8116,8119,8126,8130,8139,8150,8159,8163,8170,8172,8179,8187, +8192,8196,8201,8208,8210,8214,8217,8220,8229,8235,8237,8241,8245,8250,8255, +8259,8265,8270,8275,8278,8287,8290,8293,8299,8306,8311,8315,8321,8323,8329, +8331,8335,8344,8350,8359,8371,8379,8388,8391,8398,8402,8410,8417,8427,8432, +8434,8439,8446,8462,8469,8479,8488,8497,8506,8511,8516,8519,8527,8538,8542, +8545,8553,8559,8561,8566,8569,8576,8580,8585,8588,8601,8605,8610,8613,8623, +8627,8631,8636,8652,8657,8669,8673,8679,8694,8697,8699,8701,8705,8708,8728, +8733,8738,8749,8752,8764,8773,8784,8793,8798,8822,8827,8833,8835,8843,8846, +8849,8852,8858,8864,8870,8874,8876,8879,8884,8888,8893,8896,8901,8904,8909, +8913,8919,8923,8927,8935,8948,8952,8958,8961,8965,8970,8974,8980,8985,8988, +8996,8999,9008,9012,9014,9033,9039,9044,9049,9051,9055,9064,9077,9088,9091, +9094,9097,9106,9108,9113,9125,9130,9134,9142,9149,9154,9159,9170,9173,9185, +9200,9205,9211,9215,9221,9225,9234,9243,9248,9252,9256,9262,9269,9275,9284, +9289,9296,9299,9316,9318,9333,9335,9348,9351,9354,9357,9365,9368,9371,9374, +9386,9397,9400,9405,9409,9417,9430,9434,9438,9442,9445,9448,9451,9454,9464, +9467,9476,9480,9488,9501,9504,9506,9510,9514,9520,9525,9529,9532,9535,9544, +9549,9553,9557,9560,9567,9570,9572,9577,9586,9592,9595,9597,9614,9622,9631, +9634,9639,9642,9651,9671,9677,9682,9684,9694,9703,9715,9718,9721,9731,9740, +9748,9753,9761,9766,9769,9782,9784,9786,9789,9793,9803,9807,9812,9817,9821, +9823,9826,9830,9840,9850,9853,9856,9860,9864,9877,9886,9897,9899,9910,9912, +9917,9922,9929,9947,9953,9958,9968,9974,9982,9988,9992,9995,10007,10014, +10024,10039,10044,10057,10062,10070,10075,10080,10084,10089,10097,10100, +10103,10106,10109,10111,10118,10120,10124,10130,10133,10137,10142,10156, +10162,10166,10177,10183,10188,10193,10198,10203,10205,10207,10215,10223, +10231,10239,10246,10257,10263,10267,10279,10286,10288,10290,10294,10297, +10300,10304,10311,10313,10316,10324,10326,10332,10338,10343,10345,10353, +10364,10367,10371,10375,10378,10383,10387,10391,10400,10406,10412,10418, +10421,10429,10433,10439,10445,10451,10455,10457,10462,10465,10469,10473, +10481,10485,10488,10491,10497,10500,10503,10506,10509,10528,10535,10539, +10542,10549,10554,10561,10567,10569,10575,10579,10586,10591,10597,10601, +10609,10614,10620,10623,10626,10629,10632,10638,10644,10646,10657,10661, +10665,10672,10676,10681,10684,10697,10702,10705,10710,10723,10727,10731, +10740,10745,10753,10755,10768,10773,10781,10783,10819,10823,10833,10837, +10841,10844,10849,10852,10857,10865,10872,10884,10896,10901,10909,10923, +10928,10939,10943,10947,10949,10959,10969,10980,10996,11001,11003,11008, +11015,11022,11036,11043,11050,11064,11070,11075,11078,11083,11086,11090, +11105,11110,11114,11125,11130,11143,11159,11164,11166,11171,11179,11193, +11201,11214,11220,11224,11238,11243,11247,11261,11264,11268,11271,11280, +11288,11296,11299,11304,11306,11310,11313,11322,11330,11338,11341,11346, +11348,11358,11366,11374,11377,11382,11395,11400,11409,11420,11434,11439, +11442,11448,11452,11456,11460,11464,11467,11479,11484,11498,11508,11511, +11520,11530,11534,11539,11542,11545,11548,11551,11555,11558,11561,11565, +11567,11572,11574,11582,11593,11598,11600,11609,11617,11624,11628,11636, +11642,11644,11650,11658,11660,11663,11668,11671,11676,11680,11684,11689, +11692,11698,11700,11707,11709,11713,11725,11727,11735,11737,11741,11745, +11749,11753,11769,11771,11793,11802,11804,11816,11819,11823,11825,11835, +11840,11843,11847,11855,11865,11870,11882,11887,11899,11908,11914,11918, +11923,11926,11934,11938,11945,11952,11955,11963,11966,11969,11974,11979, +11985,11987,11990,11997,12008,12015,12017,12026,12031,12045,12054,12065, +12074,12084,12092,12096,12100,12103,12110,12118,12120,12124,12128,12131, +12134,12139,12142,12147,12151,12154,12157,12164,12171,12174,12176,12181, +12185,12188,12191,12196,12199,12202,12207,12211,12216,12219,12222,12225, +12231,12235,12242,12248,12251,12258,12260,12262,12267,12273,12277,12283, +12294,12300,12307,12321,12325,12329,12336,12340,12342,12347,12353,12355, +12381,12394,12399,12402,12406,12411,12414,12417,12424,12431,12439,12445, +12452,12455,12458,12461,12464,12471,12477,12480,12488,12522,12529,12541, +12550,12557,12572,12586,12595,12611,12614,12616,12619,12627,12643,12654, +12659,12667,12671,12676,12679,12687,12692,12696,12703,12710,12714,12723, +12731,12735,12738,12746,12752,12756,12761,12766,12773,12777,12781,12795, +12797,12800,12806,12811,12814,12817,12820,12826,12840,12842,12846,12849, +12852,12855,12862,12866,12870,12873,12877,12880,12887,12891,12893,12896, +12903,12909,12913,12920,12924,12939,12945,12953,12962,12967,12972,12978, +12985,12992,12995,12997,13001,13007,13011,13017,13023,13027,13030,13057, +13066,13075,13085,13093,13098,13107,13117,13127,13138,13145,13152,13155, +13158,13161,13165,13167,13170,13173,13176,13179,13183,13185,13193,13195, +13206,13208,13211,13219,13229,13250,13252,13266,13270,13273,13279,13286, +13309,13312,13316,13321,13326,13329,13332,13337,13348,13354,13358,13364, +13371,13373,13375,13379,13382,13385,13395,13403,13405,13407,13415,13424, +13426,13430,13440,13449,13451,13454,13459,13473,13482,13484,13488,13496, +13498,13509,13519,13525,13530,13534,13539,13544,13549,13553,13560,13567, +13572,13577,13581,13592,13598,13603,13607,13612,13615,13618,13622,13625, +13628,13640,13649,13657,13665,13670,13676,13680,13687,13692,13697,13702, +13706,13715,13718,13722,13728,13736,13745,13748,13763,13780,13786,13790, +13797,13804,13807,13809,13815,13817,13820,13829,13832,13836,13842,13854, +13864,13868,13871,13874,13879,13883,13887,13890,13897,13900,13907,13913, +13941,13951,13961,13963,13971,14002,14007,14021,14045,14048,14060,14063, +14069,14085,14087,14103,14116,14127,14131,14133,14141,14150,14154,14162, +14170,14176,14183,14187,14191,14193,14196,14206,14212,14217,14223,14225, +14236,14239,14242,14252,14261,14264,14267,14270,14281,14284,14290,14293, +14297,14300,14313,14315,14318,14320,14325,14329,14352,14368,14373,14377, +14381,14385,14388,14393,14395,14409,14414,14421,14432,14438,14440,14442, +14450,14459,14467,14469,14471,14473,14476,14494,14506,14513,14517,14520, +14523,14525,14530,14534,14536,14552,14556,14559,14564,14567,14570,14581, +14592,14604,14612,14615,14619,14624,14629,14633,14636,14639,14642,14646, +14648,14658,14662,14667,14672,14679,14687,14693,14696,14698,14707,14709, +14722,14731,14738,14745,14749,14751,14757,14765,14772,14779,14783,14785, +14806,14808,14811,14817,14823,14831,14833,14835,14840,14845,14850,14854, +14858,14862,14874,14880,14887,14892,14898,14903,14907,14913,14918,14927, +14936,14939,14942,14945,14949,14959,14966,14973,14975,14985,14988,14991, +14994,14998,15000,15004,15010,15012,15015,15018,15023,15028,15032,15036, +15042,15068,15070,15082,15087,15092,15094,15106,15111,15116,15118,15123, +15130,15134,15143,15154,15162,15166,15171,15174,15179,15184,15188,15191, +15199,15206,15212,15217,15221,15228,15230,15233,15238,15242,15247,15251, +15258,15265,15271,15274,15283,15294,15298,15300,15313,15317,15319,15321, +15348,15351,15356,15358,15380,15383,15385,15387,15394,15396,15404,15408, +15413,15416,15419,15422,15429,15434,15442,15450,15455,15458,15460,15476, +15478,15491,15493,15495,15507,15516,15520,15522,15525,15528,15533,15537, +15541,15546,15549,15552,15562,15564,15569,15574,15580,15584,15591,15614, +15620,15622,15625,15628,15631,15634,15642,15644,15653,15655,15660,15664, +15669,15671,15678,15686,15688,15695,15697,15701,15714,15720,15723,15726, +15738,15740,15744,15748,15751,15756,15761,15768,15774,15778,15784,15797, +15801,15808,15822,15827,15831,15842,15844,15860,15867,15870,15874,15877, +15884,15891,15896,15903,15905,15912,15916,15924,15926,15935,15945,15956, +15958,15961,15965,15968,15983,15992,15996,15999,16003,16006,16008,16012, +16019,16025,16029,16032,16040,16053,16057,16061,16064,16067,16080,16084, +16096,16101,16105,16109,16115,16118,16121,16148,16154,16163,16168,16179, +16186,16190,16193,16199,16208,16217,16220,16224,16231,16234,16243,16248, +16256,16258,16283,16287,16294,16298,16302,16306,16318,16322,16336,16342, +16349,16354,16365,16368,16374,16376,16384,16396,16401,16416,16420,16423, +16427,16432,16436,16441,16457,16462,16471,16480,16482,16490,16492,16496, +16504,16514,16517,16524,16533,16536,16545,16552,16556,16559,16571,16577, +16586,16589,16599,16610,16616,16618,16620,16624,16631,16634,16641,16652, +16658,16662,16672,16675,16681,16684,16689,16695,16700,16702,16707,16709, +16714,16718,16723,16737,16742,16749,16751,16759,16763,16771,16774,16783, +16785,16791,16793,16801,16807,16809,16816,16819,16821,16825,16829,16835, +16839,16842,16850,16853,16857,16861,16866,16869,16873,16877,16881,16907, +16910,16913,16922,16935,16942,16955,16970,16978,16982,16986,16992,16996, +16999,17002,17006,17008,17012,17015,17018,17021,17029,17032,17043,17045, +17052,17059,17064,17070,17074,17079,17086,17092,17099,17102,17105,17109, +17114,17118,17120,17126,17136,17143,17147,17157,17172,17174,17178,17186, +17193,17201,17204,17209,17219,17227,17230,17236,17241,17244,17249,17254, +17260,17269,17276,17286,17291,17293,17298,17302,17308,17312,17325,17329, +17339,17342,17344,17349,17358,17371,17379,17383,17392,17396,17401,17412, +17414,17430,17435,17441,17447,17465,17472,17475,17478,17486,17489,17497, +17499,17503,17506,17511,17513,17517,17529,17538,17546,17551,17555,17565, +17567,17573,17578,17581,17591,17597,17600,17603,17611,17621,17631,17635, +17639,17642,17645,17650,17655,17658,17661,17667,17670,17676,17679,17682, +17687,17690,17698,17704,17709,17718,17724,17734,17738,17740,17743,17755, +17759,17762,17777,17781,17793,17796,17805,17812,17817,17821,17829,17835, +17843,17846,17855,17858,17861,17870,17876,17882,17885,17890,17896,17908, +17919,17921,17930,17932,17936,17942,17946,17959,17966,17978,17994,17996, +18000,18004,18008,18021,18025,18032,18040,18043,18048,18050,18055,18059, +18062,18068,18073,18085,18089,18091,18096,18106,18108,18110,18120,18124, +18126,18138,18146,18159,18162,18167,18185,18187,18195,18203,18210,18217, +18224,18228,18233,18237,18245,18249,18256,18261,18270,18279,18282,18304, +18314,18318,18336,18338,18348,18353,18356,18363,18366,18370,18373,18376, +18382,18385,18389,18392,18404,18411,18414,18418,18424,18427,18431,18446, +18454,18461,18474,18479,18488,18497,18501,18505,18531,18534,18537,18547, +18555,18561,18563,18567,18573,18582,18586,18589,18592,18601,18604,18607, +18610,18613,18625,18633,18640,18643,18647,18649,18652,18657,18666,18672, +18675,18678,18687,18690,18693,18696,18702,18706,18718,18728,18732,18735, +18741,18745,18751,18755,18758,18761,18763,18770,18774,18777,18780,18783, +18788,18791,18795,18804,18808,18815,18819,18824,18829,18832,18841,18845, +18856,18859,18863,18868,18872,18881,18884,18888,18897,18900,18904,18909, +18918,18921,18925,18933,18938,18943,18946,18950,18952,18961,18968,18971, +18978,18980,18983,18986,18990,18993,18998,19005,19011,19019,19023,19026, +19029,19035,19038,19042,19046,19051,19054,19057,19066,19078,19085,19088, +19094,19097,19100,19109,19112,19117,19124,19126,19139,19146,19151,19156, +19165,19168,19170,19174,19181,19188,19196,19211,19217,19221,19226,19231, +19237,19240,19244,19254,19264,19270,19272,19282,19284,19291,19295,19304, +19309,19314,19317,19326,19329,19338,19352,19359,19367,19370,19383,19389, +19391,19404,19413,19419,19429,19437,19443,19446,19449,19463,19465,19473, +19480,19490,19498,19504,19507,19512,19517,19521,19529,19536,19545,19552, +19561,19565,19572,19579,19586,19593,19601,19605,19612,19621,19624,19627, +19630,19634,19639,19644,19655,19659,19661,19672,19674,19685,19696,19705, +19708,19712,19715,19726,19736,19746,19754,19760,19768,19775,19779,19784, +19788,19793,19797,19803,19806,19813,19823,19831,19835,19845,19848,19850, +19857,19863,19869,19875,19877,19891,19893,19906,19911,19914,19921,19926, +19939,19954,19957,19961,19963,19971,19979,19981,19988,19993,19997,20001, +20005,20009,20014,20018,20021,20025,20032,20036,20041,20046,20050,20055, +20072,20077,20084,20095,20102,20109,20113,20120,20125,20134,20142,20150, +20156,20161,20166,20170,20175,20178,20183,20187,20191,20198,20203,20214, +20220,20225,20229,20231,20238,20242,20250,20253,20258,20265,20283,20300, +20307,20320,20324,20332,20335,20339,20344,20349,20353,20356,20360,20367, +20372,20374,20376,20386,20391,20395,20398,20402,20411,20417,20421,20423, +20427,20431,20438,20446,20454,20456,20461,20466,20468,20471,20495,20502, +20507,20540,20545,20548,20553,20555,20561,20570,20577,20581,20586,20591, +20596,20601,20608,20613,20647,20654,20669,20685,20704,20721,20728,20736, +20749,20758,20767,20776,20786,20794,20804,20814,20826,20842,20860,20873, +20888,20899,20909,20920,20930,20947,20953,20975,20980,20986,20992,20998, +21003,21005,21008,21019,21022,21024,21026,21040,21044,21047,21056,21062, +21180]; + + +const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); + +const sharedContextCache = new antlr4.atn.PredictionContextCache(); + +export default class OracleSqlParser extends OracleSqlParserBase { + + static grammarFileName = "OracleSqlParser.g4"; + static literalNames = [ null, "'ABORT'", "'ABS'", "'ABSENT'", "'ACCESS'", + "'ACCESSED'", "'ACCESSIBLE'", "'ACCOUNT'", "'ACL'", + "'ACOS'", "'ACROSS'", "'ACTION'", "'ACTIONS'", + "'ACTIVATE'", "'ACTIVE'", "'ACTIVE_COMPONENT'", + "'ACTIVE_DATA'", "'ACTIVE_FUNCTION'", "'ACTIVE_TAG'", + "'ACTIVITY'", "'ADAPTIVE_PLAN'", "'ADD'", "'ADD_COLUMN'", + "'ADD_GROUP'", "'ADD_MONTHS'", "'ADJ_DATE'", + "'ADMIN'", "'ADMINISTER'", "'ADMINISTRATOR'", + "'ADVANCED'", "'ADVISE'", "'ADVISOR'", "'AFD_DISKSTRING'", + "'AFTER'", "'AGENT'", "'AGGREGATE'", "'A'", + "'ALIAS'", "'ALL'", "'ALLOCATE'", "'ALLOW'", + "'ALL_ROWS'", "'ALTER'", "'ALTERNATE'", "'ALWAYS'", + "'ANALYTIC'", "'ANALYZE'", "'ANCESTOR'", "'ANCILLARY'", + "'AND'", "'AND_EQUAL'", "'ANNOTATIONS'", "'ANOMALY'", + "'ANSI_REARCH'", "'ANTIJOIN'", "'ANY'", "'ANYSCHEMA'", + "'APPEND'", "'APPENDCHILDXML'", "'APPEND_VALUES'", + "'APPLICATION'", "'APPLY'", "'APPROX_COUNT_DISTINCT'", + "'ARCHIVAL'", "'ARCHIVE'", "'ARCHIVED'", "'ARCHIVELOG'", + "'ARE'", "'ARRAY'", "'AS'", "'ASC'", "'ASCII'", + "'ASCIISTR'", "'ASIN'", "'ASIS'", "'ASSEMBLY'", + "'ASSIGN'", "'ASSOCIATE'", "'ASYNC'", "'ASYNCHRONOUS'", + "'ATAN2'", "'ATAN'", "'AT'", "'ATTRIBUTE'", + "'ATTRIBUTES'", "'AUDIT'", "'AUTHENTICATED'", + "'AUTHENTICATION'", "'AUTHID'", "'AUTHORIZATION'", + "'AUTOALLOCATE'", "'AUTO'", "'AUTOBACKUP'", + "'AUTOEXTEND'", "'AUTO_LOGIN'", "'AUTOMATIC'", + "'AUTONOMOUS_TRANSACTION'", "'AUTO_REOPTIMIZE'", + "'AVAILABILITY'", "'AVRO'", "'BACKGROUND'", + "'BACKINGFILE'", "'BACKUP'", "'BACKUPS'", "'BACKUPSET'", + "'BADFILE'", "'BASIC'", "'BASICFILE'", "'BATCH'", + "'BATCHSIZE'", "'BATCH_TABLE_ACCESS_BY_ROWID'", + "'BECOME'", "'BEFORE'", "'BEGIN'", "'BEGINNING'", + "'BEGIN_OUTLINE_DATA'", "'BEHALF'", "'BEQUEATH'", + "'BETWEEN'", "'BFILE'", "'BFILENAME'", "'BIG'", + "'BIGFILE'", "'BIGINT'", "'BINARY'", "'BINARY_DOUBLE'", + "'BINARY_DOUBLE_INFINITY'", "'BINARY_DOUBLE_NAN'", + "'BINARY_FLOAT'", "'BINARY_FLOAT_INFINITY'", + "'BINARY_FLOAT_NAN'", "'BINARY_INTEGER'", "'BIND_AWARE'", + "'BINDING'", "'BIN_TO_NUM'", "'BITAND'", "'BITMAP_AND'", + "'BITMAP'", "'BITMAPS'", "'BITMAP_TREE'", "'BITS'", + "'BLANKS'", "'BLOB'", "'BLOCK'", "'BLOCK_RANGE'", + "'BLOCKS'", "'BLOCKSIZE'", "'BODY'", "'BOOLEAN'", + "'BOTH'", "'BOUND'", "'BRANCH'", "'BREADTH'", + "'BROADCAST'", "'BSON'", "'BUFFER'", "'BUFFER_CACHE'", + "'BUFFER_POOL'", "'BUILD'", "'BULK'", "'BY'", + "'BYPASS_RECURSIVE_CHECK'", "'BYPASS_UJVC'", + "'BYTE'", "'BYTES'", "'BYTEORDERMARK'", "'CACHE'", + "'CACHE_CB'", "'CACHE_INSTANCES'", "'CACHE_TEMP_TABLE'", + "'CACHING'", "'CALCULATED'", "'CALLBACK'", "'CALL'", + "'CANCEL'", "'CANONICAL'", "'CAPACITY'", "'CAPTION'", + "'CARDINALITY'", "'CASCADE'", "'CASE'", "'CAST'", + "'CASE-SENSITIVE'", "'CATEGORY'", "'CDB$DEFAULT'", + "'CEIL'", "'CELL_FLASH_CACHE'", "'CERTIFICATE'", + "'CFILE'", "'CHAINED'", "'CHANGE'", "'CHANGETRACKING'", + "'CHANGE_DUPKEY_ERROR_INDEX'", "'CHARACTER'", + "'CHARACTERS'", "'CHARACTERSET'", "'CHAR'", + "'CHAR_CS'", "'CHARTOROWID'", "'CHECK_ACL_REWRITE'", + "'CHECK'", "'CHECKPOINT'", "'CHILD'", "'CHOOSE'", + "'CHR'", "'CHUNK'", "'CLASS'", "'CLASSIFICATION'", + "'CLASSIFIER'", "'CLAUSE'", "'CLEAN'", "'CLEANUP'", + "'CLEAR'", "'C'", "'CLIENT'", "'CLOB'", "'CLONE'", + "'CLOSE_CACHED_OPEN_CURSORS'", "'CLOSE'", "'CLUSTER_BY_ROWID'", + "'CLUSTER'", "'CLUSTER_DETAILS'", "'CLUSTER_DISTANCE'", + "'CLUSTER_ID'", "'CLUSTERING'", "'CLUSTERING_FACTOR'", + "'CLUSTER_PROBABILITY'", "'CLUSTER_SET'", "'COALESCE'", + "'COALESCE_SQ'", "'COARSE'", "'CO_AUTH_IND'", + "'COLD'", "'COLLECT'", "'COLLECTION'", "'COLUMNAR'", + "'COLUMN_AUTH_INDICATOR'", "'COLUMN'", "'COLUMNS'", + "'COLUMN_STATS'", "'COLUMN_VALUE'", "'COMMENT'", + "'COMMIT'", "'COMMITTED'", "'COMMON'", "'COMMON_DATA'", + "'COMPACT'", "'COMPATIBLE'", "'COMPATIBILITY'", + "'COMPILE'", "'COMPLETE'", "'COMPLIANCE'", "'COMPONENT'", + "'COMPONENTS'", "'COMPOSE'", "'COMPOSITE'", + "'COMPOSITE_LIMIT'", "'COMPOUND'", "'COMPRESS'", + "'COMPRESSION'", "'COMPUTE'", "'CONCAT'", "'CON_DBID_TO_ID'", + "'CONDITIONAL'", "'CONDITION'", "'CONFIRM'", + "'CONFORMING'", "'CON_GUID_TO_ID'", "'CON_ID'", + "'CON_NAME_TO_ID'", "'CONNECT_BY_CB_WHR_ONLY'", + "'CONNECT_BY_COMBINE_SW'", "'CONNECT_BY_COST_BASED'", + "'CONNECT_BY_ELIM_DUPS'", "'CONNECT_BY_FILTERING'", + "'CONNECT_BY_ISCYCLE'", "'CONNECT_BY_ISLEAF'", + "'CONNECT_BY_ROOT'", "'CONNECT'", "'CONNECT_TIME'", + "'CONSIDER'", "'CONSISTENT'", "'CONSTANT'", + "'CONST'", "'CONSTRAINT'", "'CONSTRAINTS'", + "'CONSTRUCTOR'", "'CONTAINER'", "'CONTAINERS'", + "'CONTAINERS_DEFAULT'", "'CONTAINER_DATA'", + "'CONTAINER_MAP'", "'CONTENT'", "'CONTENTS'", + "'CONTEXT'", "'CONTINUE'", "'CONTROLFILE'", + "'CON_UID_TO_ID'", "'CONVERT'", "'CONVERSION'", + "'COOKIE'", "'COPY'", "'CORR_K'", "'CORR_S'", + "'CORRUPTION'", "'CORRUPT_XID_ALL'", "'CORRUPT_XID'", + "'COS'", "'COSH'", "'COST'", "'COST_XML_QUERY_REWRITE'", + "'COUNT'", "'COUNTED'", "'COVAR_POP'", "'COVAR_SAMP'", + "'CPU_COSTING'", "'CPU_PER_CALL'", "'CPU_PER_SESSION'", + "'CRASH'", "'CREATE'", "'CREATE_FILE_DEST'", + "'CREATE_STORED_OUTLINES'", "'CREATION'", "'CREDENTIAL'", + "'CRITICAL'", "'CROSS'", "'CROSSEDITION'", "'CSCONVERT'", + "'CSV'", "'CUBE_AJ'", "'CUBE'", "'CUBE_GB'", + "'CUBE_SJ'", "'CUME_DISTM'", "'CURRENT'", "'CURRENT_DATE'", + "'CURRENT_SCHEMA'", "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", + "'CURRENT_USER'", "'CURRENTV'", "'CURSOR'", + "'CURSOR_SHARING_EXACT'", "'CURSOR_SPECIFIC_SEGMENT'", + "'CUSTOMDATUM'", "'CV'", "'CYCLE'", "'DANGLING'", + "'DATABASE'", "'DATA'", "'DATAFILE'", "'DATAFILES'", + "'DATAGUARDCONFIG'", "'DATAMOVEMENT'", "'DATAOBJNO'", + "'DATAOBJ_TO_MAT_PARTITION'", "'DATAOBJ_TO_PARTITION'", + "'DATAPUMP'", "'DATA_SECURITY_REWRITE_LIMIT'", + "'DATE'", "'DATE_CACHE'", "'DATE_FORMAT'", "'DATE_MODE'", + "'DAY'", "'DAYS'", "'DAY_TO_SECOND'", "'DBA'", + "'DBA_RECYCLEBIN'", "'DBLINK'", "'DBMS_STATS'", + "'DB_ROLE_CHANGE'", "'DBTIMEZONE'", "'DB_UNIQUE_NAME'", + "'DB_VERSION'", "'DDL'", "'DEALLOCATE'", "'DEBUG'", + "'DEBUGGER'", "'DEC'", "'DECIMAL'", "'DECLARE'", + "'DECOMPOSE'", "'DECORRELATE'", "'DECR'", "'DECREMENT'", + "'DECRYPT'", "'DEDUPLICATE'", "'DEFAULT'", "'DEFAULTIF'", + "'DEFAULTS'", "'DEFAULT_COLLATION'", "'DEFAULT_CREDENTIAL'", + "'DEFERRABLE'", "'DEFERRED'", "'DEFINED'", "'DEFINE'", + "'DEFINER'", "'DEGREE'", "'DELAY'", "'DELEGATE'", + "'DELETE_ALL'", "'DELETE'", "'DELETEXML'", "'DELIMITED'", + "'DEMAND'", "'DENSE_RANKM'", "'DEPENDENT'", + "'DEPRECATE'", "'DEPTH'", "'DEQUEUE'", "'DEREF'", + "'DEREF_NO_REWRITE'", "'DESC'", "'DESCRIPTION'", + "'DESTROY'", "'DETACHED'", "'DETECTED'", "'DETERMINES'", + "'DETERMINISTIC'", "'DICTIONARY'", "'DIMENSION'", + "'DIMENSIONS'", "'DIRECTIO'", "'DIRECT_LOAD'", + "'DIRECTORY'", "'DIRECT_PATH'", "'DISABLE_ALL'", + "'DISABLE'", "'DISABLED'", "'DISABLE_DIRECTORY_LINK_CHECK'", + "'DISABLE_PARALLEL_DML'", "'DISABLE_PRESET'", + "'DISABLE_RPKE'", "'DISALLOW'", "'DISASSOCIATE'", + "'DISCARD'", "'DISCARDFILE'", "'DISCONNECT'", + "'DISK'", "'DISKGROUP'", "''+ DISKGROUP'", "'DISKS'", + "'DISMOUNT'", "'DISTINCT'", "'DISTINGUISHED'", + "'DISTRIBUTED'", "'DISTRIBUTE'", "'DML'", "'DML_UPDATE'", + "'DNFS_DISABLE'", "'DNFS_ENABLE'", "'DNFS_READBUFFERS'", + "'DOCFIDELITY'", "'DOCUMENT'", "'$ELSE'", "'$ELSIF'", + "'$END'", "'$ERROR'", "'$IF'", "'$THEN'", "'DOMAIN_INDEX_FILTER'", + "'DOMAIN_INDEX_NO_SORT'", "'DOMAIN_INDEX_SORT'", + "'DOUBLE'", "'DOWNGRADE'", "'DRIVING_SITE'", + "'DROP_COLUMN'", "'DROP'", "'DROP_GROUP'", "'DSINTERVAL_UNCONSTRAINED'", + "'DST_UPGRADE_INSERT_CONV'", "'DUMP'", "'DUMPSET'", + "'DUPLICATE'", "'DV'", "'DYNAMIC'", "'DYNAMIC_SAMPLING'", + "'DYNAMIC_SAMPLING_EST_CDN'", "'E'", "'EACH'", + "'EDITIONABLE'", "'EDITION'", "'EDITIONING'", + "'EDITIONS'", "'ELEMENT'", "'ELIM_GROUPBY'", + "'ELIMINATE_JOIN'", "'ELIMINATE_OBY'", "'ELIMINATE_OUTER_JOIN'", + "'ELSE'", "'ELSIF'", "'EM'", "'EMBEDDED'", "'EMPTY_BLOB'", + "'EMPTY_CLOB'", "'EMPTY'", "'ENABLE_ALL'", "'ENABLE'", + "'ENABLED'", "'ENABLE_PARALLEL_DML'", "'ENABLE_PRESET'", + "'ENCLOSED'", "'ENCODING'", "'ENCRYPT'", "'ENCRYPTION'", + "'ENCRYPTPASSWORDISNULL'", "'END'", "'END_OUTLINE_DATA'", + "'ENDIAN'", "'ENFORCED'", "'ENFORCE'", "'ENQUEUE'", + "'ENTERPRISE'", "'ENTITYESCAPING'", "'ENTRY'", + "'EQUIPART'", "'ERR'", "'ERROR_ARGUMENT'", "'ERROR'", + "'ERROR_ON_OVERLAP_TIME'", "'ERRORS'", "'ERROR_INDEX'", + "'ERROR_CODE'", "'ESCAPE'", "'ESCAPED'", "'ESTIMATE'", + "'EVAL'", "'EVALNAME'", "'EVALUATE'", "'EVALUATION'", + "'EVENTS'", "'EVERY'", "'EXCEPT'", "'EXCEPTION'", + "'EXCEPTION_INIT'", "'EXCEPTIONS'", "'EXCHANGE'", + "'EXCLUDE'", "'EXCLUDING'", "'EXCLUSIVE'", "'EXECUTE'", + "'EXEMPT'", "'EXISTING'", "'EXISTS'", "'EXISTSNODE'", + "'EXIT'", "'EXPAND_GSET_TO_UNION'", "'EXPAND_TABLE'", + "'EXP'", "'EXPIRE'", "'EXPLAIN'", "'EXPLOSION'", + "'EXPORT'", "'EXPR_CORR_CHECK'", "'EXPRESS'", + "'EXTENDS'", "'EXTENT'", "'EXTENTS'", "'EXTERNAL'", + "'EXTERNALLY'", "'EXTRACTCLOBXML'", "'EXTRACT'", + "'EXTRACTVALUE'", "'EXTRA'", "'FACILITY'", "'FACT'", + "'FACTOR'", "'FACTORIZE_JOIN'", "'FAILED'", + "'FAILED_LOGIN_ATTEMPTS'", "'FAILGROUP'", "'FAILOVER'", + "'FAILURE'", "'FALSE'", "'FAMILY'", "'FAR'", + "'FAST'", "'FASTSTART'", "'FBTSCAN'", "'FEATURE'", + "'FEATURE_DETAILS'", "'FEATURE_ID'", "'FEATURE_SET'", + "'FEATURE_VALUE'", "'FETCH'", "'FIELD'", "'FIELDS'", + "'FILE'", "'FILE_NAME_CONVERT'", "'FILEGROUP'", + "'FILESTORE'", "'FILESYSTEM_LIKE_LOGGING'", + "'FILTER'", "'FINAL'", "'FINE'", "'FINISH'", + "'FIRST'", "'FIRSTM'", "'FIRST_ROWS'", "'FIRST_VALUE'", + "'FIXED'", "'FIXED_VIEW_DATA'", "'FLAGGER'", + "'FLASHBACK'", "'FLASH_CACHE'", "'FLOAT'", "'FLOB'", + "'FLEX'", "'FLOOR'", "'FLUSH'", "'FOLDER'", + "'FOLLOWING'", "'FOLLOWS'", "'FORALL'", "'FORCE'", + "'FORCE_XML_QUERY_REWRITE'", "'FOREIGN'", "'FOREVER'", + "'FOR'", "'FORMAT'", "'FORWARD'", "'FRAGMENT_NUMBER'", + "'FREELIST'", "'FREELISTS'", "'FREEPOOLS'", + "'FRESH'", "'FROM'", "'FROM_TZ'", "'FULL'", + "'FULL_OUTER_JOIN_TO_OUTER'", "'FUNCTION'", + "'FUNCTIONS'", "'FTP'", "'G'", "'GATHER_OPTIMIZER_STATISTICS'", + "'GATHER_PLAN_STATISTICS'", "'GBY_CONC_ROLLUP'", + "'GBY_PUSHDOWN'", "'GENERATED'", "'GET'", "'GLOBAL'", + "'GLOBALLY'", "'GLOBAL_NAME'", "'GLOBAL_TOPIC_ENABLED'", + "'GOTO'", "'GRANT'", "'GROUP_BY'", "'GROUP'", + "'GROUP_ID'", "'GROUPING'", "'GROUPING_ID'", + "'GROUPS'", "'GUARANTEED'", "'GUARANTEE'", "'GUARD'", + "'HADOOP_TRAILERS'", "'HALF_YEARS'", "'HASH_AJ'", + "'HASH'", "'HASHKEYS'", "'HASH_SJ'", "'HAVING'", + "'HEADER'", "'HEAP'", "'HELP'", "'HEXTORAW'", + "'HEXTOREF'", "'HIDDEN'", "'HIDE'", "'HIER_ORDER'", + "'HIERARCHICAL'", "'HIERARCHIES'", "'HIERARCHY'", + "'HIGH'", "'HINTSET_BEGIN'", "'HINTSET_END'", + "'HOT'", "'HOUR'", "'HOURS'", "'HTTP'", "'HWM_BROKERED'", + "'HYBRID'", "'H'", "'IDENTIFIED'", "'IDENTIFIER'", + "'IDENTITY'", "'IDGENERATORS'", "'ID'", "'IDLE_TIME'", + "'IF'", "'IGNORE'", "'IGNORE_CHARS_AFTER_EOR'", + "'IGNORE_OPTIM_EMBEDDED_HINTS'", "'IGNORE_ROW_ON_DUPKEY_INDEX'", + "'IGNORE_WHERE_CLAUSE'", "'ILM'", "'IMMEDIATE'", + "'IMPACT'", "'IMPORT'", "'INACTIVE'", "'INACTIVE_ACCOUNT_TIME'", + "'INCLUDE'", "'INCLUDE_VERSION'", "'INCLUDING'", + "'INCREMENTAL'", "'INCREMENT'", "'INCR'", "'INDENT'", + "'INDEX_ASC'", "'INDEX_COMBINE'", "'INDEX_DESC'", + "'INDEXED'", "'INDEXES'", "'INDEX_FFS'", "'INDEX_FILTER'", + "'INDEX'", "'INDEXING'", "'INDEX_JOIN'", "'INDEX_ROWS'", + "'INDEX_RRS'", "'INDEX_RS_ASC'", "'INDEX_RS_DESC'", + "'INDEX_RS'", "'INDEX_SCAN'", "'INDEX_SKIP_SCAN'", + "'INDEX_SS_ASC'", "'INDEX_SS_DESC'", "'INDEX_SS'", + "'INDEX_STATS'", "'INDEXTYPE'", "'INDEXTYPES'", + "'INDICATOR'", "'INDICES'", "'INFINITE'", "'INFORMATIONAL'", + "'INHERIT'", "'IN'", "'INITCAP'", "'INITIAL'", + "'INITIALIZED'", "'INITIALLY'", "'INITRANS'", + "'INLINE'", "'INLINE_XMLTYPE_NT'", "'INMEMORY'", + "'IN_MEMORY_METADATA'", "'INMEMORY_PRUNING'", + "'INNER'", "'INOUT'", "'INPLACE'", "'INPUTFORMAT'", + "'INSERTCHILDXMLAFTER'", "'INSERTCHILDXMLBEFORE'", + "'INSERTCHILDXML'", "'INSERT'", "'INSERTXMLAFTER'", + "'INSERTXMLBEFORE'", "'INSTANCE'", "'INSTANCES'", + "'INSTANTIABLE'", "'INSTANTLY'", "'INSTEAD'", + "'INSTR2'", "'INSTR4'", "'INSTRB'", "'INSTRC'", + "'INSTR'", "'INTEGER'", "'INTERLEAVED'", "'INTERMEDIATE'", + "'INTERNAL_CONVERT'", "'INTERNAL_USE'", "'INTERPRETED'", + "'INTERSECT'", "'INTERVAL'", "'INT'", "'INTERNAL'", + "'INTO'", "'INVALIDATE'", "'INVALIDATION'", + "'INVISIBLE'", "'IN_XQUERY'", "'IO_OPTIONS'", + "'IS'", "'IS_LEAF'", "'ISOLATION'", "'ISOLATION_LEVEL'", + "'ITEMS'", "'ITERATE'", "'ITERATION_NUMBER'", + "'JAVA'", "'JOB'", "'JOIN'", "'JSON_ARRAYAGG'", + "'JSON_ARRAY'", "'JSON_EQUAL'", "'JSON_EXISTS2'", + "'JSON_EXISTS'", "'JSONGET'", "'JSON'", "'JSON_OBJECTAGG'", + "'JSON_OBJECT'", "'JSONPARSE'", "'JSON_QUERY'", + "'JSON_SERIALIZE'", "'JSON_TABLE'", "'JSON_TEXTCONTAINS2'", + "'JSON_TEXTCONTAINS'", "'JSON_TRANSFORM'", "'JSON_VALUE'", + "'K'", "'KEEP_DUPLICATES'", "'KEEP'", "'KERBEROS'", + "'KEY'", "'KEY_LENGTH'", "'KEYSIZE'", "'KEYS'", + "'KEYSTORE'", "'KILL'", "'LABEL'", "'LANGUAGE'", + "'LAST_DAY'", "'LAST'", "'LAST_VALUE'", "'LATERAL'", + "'LATEST'", "'LAX'", "'LAYER'", "'LDAP_REGISTRATION_ENABLED'", + "'LDAP_REGISTRATION'", "'LDAP_REG_SYNC_INTERVAL'", + "'LDRTRIM'", "'LEAF'", "'LEAD_CDB'", "'LEAD_CDB_URI'", + "'LEADING'", "'LEFT'", "'LENGTH2'", "'LENGTH4'", + "'LENGTHB'", "'LENGTHC'", "'LENGTH'", "'LESS'", + "'LEVEL'", "'LEVEL_NAME'", "'LEVELS'", "'LIBRARY'", + "'LIFECYCLE'", "'LIFE'", "'LIFETIME'", "'LIKE2'", + "'LIKE4'", "'LIKEC'", "'LIKE_EXPAND'", "'LIKE'", + "'LIMIT'", "'LINEAR'", "'LINES'", "'LINK'", + "'LIST'", "'LITTLE'", "'LLS'", "'LN'", "'LNNVL'", + "'LOAD'", "'LOB'", "'LOBFILE'", "'LOBNVL'", + "'LOBS'", "'LOCAL_INDEXES'", "'LOCAL'", "'LOCALTIME'", + "'LOCALTIMESTAMP'", "'LOCATION'", "'LOCATOR'", + "'LOCKDOWN'", "'LOCKED'", "'LOCKING'", "'LOCK'", + "'LOGFILE'", "'LOGFILES'", "'LOGGING'", "'LOGICAL'", + "'LOGICAL_READS_PER_CALL'", "'LOGICAL_READS_PER_SESSION'", + "'LOG'", "'LOGMINING'", "'LOGOFF'", "'LOGON'", + "'LOG_READ_ONLY_VIOLATIONS'", "'LONG'", "'LOOP'", + "'LOST'", "'LOWER'", "'LOW'", "'LPAD'", "'LRTRIM'", + "'LTRIM'", "'M'", "'MAIN'", "'MAKE_REF'", "'MANAGED'", + "'MANAGE'", "'MANAGEMENT'", "'MANAGER'", "'MANDATORY'", + "'MANUAL'", "'MAP'", "'MAPPING'", "'MASK'", + "'MASTER'", "'MATCHED'", "'MATCHES'", "'MATCH'", + "'MATCH_NUMBER'", "'MATCH_RECOGNIZE'", "'MATERIALIZED'", + "'MATERIALIZE'", "'MAXARCHLOGS'", "'MAXDATAFILES'", + "'MAXEXTENTS'", "'MAXIMIZE'", "'MAXINSTANCES'", + "'MAXLOGFILES'", "'MAXLOGHISTORY'", "'MAXLOGMEMBERS'", + "'MAX_SHARED_TEMP_SIZE'", "'MAXSIZE'", "'MAXTRANS'", + "'MAXVALUE'", "'MEASURE'", "'MEASURES'", "'MEDIUM'", + "'MEMBER'", "'MEMBER_CAPTION'", "'MEMBER_DESCRIPTION'", + "'MEMBER_NAME'", "'MEMBER_UNIQUE_NAME'", "'MEMCOMPRESS'", + "'MEMORY'", "'MERGE$ACTIONS'", "'MERGE_AJ'", + "'MERGE_CONST_ON'", "'MERGE'", "'MERGE_SJ'", + "'METADATA'", "'METHOD'", "'MIGRATE'", "'MIGRATION'", + "'MINEXTENTS'", "'MINIMIZE'", "'MINIMUM'", "'MINING'", + "'MINUS'", "'MINUS_NULL'", "'MINUTE'", "'MINUTES'", + "'MINVALUE'", "'MIRRORCOLD'", "'MIRRORHOT'", + "'MIRROR'", "'MISSING'", "'MISMATCH'", "'MLSLABEL'", + "'MODEL_COMPILE_SUBQUERY'", "'MODEL_DONTVERIFY_UNIQUENESS'", + "'MODEL_DYNAMIC_SUBQUERY'", "'MODEL_MIN_ANALYSIS'", + "'MODEL'", "'MODEL_NB'", "'MODEL_NO_ANALYSIS'", + "'MODEL_PBY'", "'MODEL_PUSH_REF'", "'MODEL_SV'", + "'MODE'", "'MODIFICATION'", "'MODIFY_COLUMN_TYPE'", + "'MODIFY'", "'MOD'", "'MODULE'", "'MONITORING'", + "'MONITOR'", "'MONTH'", "'MONTHS_BETWEEN'", + "'MONTHS'", "'MOUNT'", "'MOUNTPATH'", "'MOUNTPOINT'", + "'MOVEMENT'", "'MOVE'", "'MULTIDIMENSIONAL'", + "'MULTISET'", "'MV_MERGE'", "'NAMED'", "'NAME'", + "'NAMESPACE'", "'NAN'", "'NANVL'", "'NATIONAL'", + "'NATIVE_FULL_OUTER_JOIN'", "'NATIVE'", "'NATURAL'", + "'NATURALN'", "'NAV'", "'NCHAR_CS'", "'NCHAR'", + "'NCHR'", "'NCLOB'", "'NEEDED'", "'NEG'", "'NESTED'", + "'NESTED_TABLE_FAST_INSERT'", "'NESTED_TABLE_GET_REFS'", + "'NESTED_TABLE_ID'", "'NESTED_TABLE_SET_REFS'", + "'NESTED_TABLE_SET_SETID'", "'NETWORK'", "'NEVER'", + "'NEW'", "'NEWLINE'", "'NEW_TIME'", "'NEXT_DAY'", + "'NEXT'", "'NL_AJ'", "'NLJ_BATCHING'", "'NLJ_INDEX_FILTER'", + "'NLJ_INDEX_SCAN'", "'NLJ_PREFETCH'", "'NLS_CALENDAR'", + "'NLS_CHARACTERSET'", "'NLS_CHARSET_DECL_LEN'", + "'NLS_CHARSET_ID'", "'NLS_CHARSET_NAME'", "'NLS_COMP'", + "'NLS_CURRENCY'", "'NLS_DATE_FORMAT'", "'NLS_DATE_LANGUAGE'", + "'NLS_INITCAP'", "'NLS_ISO_CURRENCY'", "'NL_SJ'", + "'NLS_LANG'", "'NLS_LANGUAGE'", "'NLS_LENGTH_SEMANTICS'", + "'NLS_LOWER'", "'NLS_NCHAR_CONV_EXCP'", "'NLS_NUMERIC_CHARACTERS'", + "'NLS_SORT'", "'NLSSORT'", "'NLS_SPECIAL_CHARS'", + "'NLS_TERRITORY'", "'NLS_UPPER'", "'NO_ACCESS'", + "'NO_ADAPTIVE_PLAN'", "'NO_ANSI_REARCH'", "'NOAPPEND'", + "'NOARCHIVELOG'", "'NOAUDIT'", "'NOBADFILE'", + "'NO_AUTO_REOPTIMIZE'", "'NO_BASETABLE_MULTIMV_REWRITE'", + "'NO_BATCH_TABLE_ACCESS_BY_ROWID'", "'NO_BIND_AWARE'", + "'NO_BUFFER'", "'NOCACHE'", "'NOCHECK'", "'NO_CARTESIAN'", + "'NO_CHECK_ACL_REWRITE'", "'NO_CLUSTER_BY_ROWID'", + "'NO_CLUSTERING'", "'NO_COALESCE_SQ'", "'NO_COMMON_DATA'", + "'NOCOMPRESS'", "'NO_CONNECT_BY_CB_WHR_ONLY'", + "'NO_CONNECT_BY_COMBINE_SW'", "'NO_CONNECT_BY_COST_BASED'", + "'NO_CONNECT_BY_ELIM_DUPS'", "'NO_CONNECT_BY_FILTERING'", + "'NOCOPY'", "'NO_COST_XML_QUERY_REWRITE'", "'NO_CPU_COSTING'", + "'NOCPU_COSTING'", "'NOCYCLE'", "'NO_DATA_SECURITY_REWRITE'", + "'NO_DECORRELATE'", "'NODELAY'", "'NODIRECTIO'", + "'NODISCARDFILE'", "'NO_DOMAIN_INDEX_FILTER'", + "'NO_DST_UPGRADE_INSERT_CONV'", "'NO_ELIM_GROUPBY'", + "'NO_ELIMINATE_JOIN'", "'NO_ELIMINATE_OBY'", + "'NO_ELIMINATE_OUTER_JOIN'", "'NOENTITYESCAPING'", + "'NO_EXPAND_GSET_TO_UNION'", "'NO_EXPAND'", + "'NO_EXPAND_TABLE'", "'NOEXTEND'", "'NO_FACT'", + "'NO_FACTORIZE_JOIN'", "'NO_FILTERING'", "'NOFORCE'", + "'NO_FULL_OUTER_JOIN_TO_OUTER'", "'NO_GATHER_OPTIMIZER_STATISTICS'", + "'NO_GBY_PUSHDOWN'", "'NOGUARANTEE'", "'NO_INDEX_FFS'", + "'NO_INDEX'", "'NO_INDEX_SS'", "'NO_INMEMORY'", + "'NO_INMEMORY_PRUNING'", "'NOKEEP'", "'NO_LOAD'", + "'NOLOCAL'", "'NOLOG'", "'NOLOGFILE'", "'NOLOGGING'", + "'NOMAPPING'", "'NOMAXVALUE'", "'NO_MERGE'", + "'NOMINIMIZE'", "'NOMINVALUE'", "'NO_MODEL_PUSH_REF'", + "'NO_MONITORING'", "'NOMONITORING'", "'NO_MONITOR'", + "'NO_MULTIMV_REWRITE'", "'NO_NATIVE_FULL_OUTER_JOIN'", + "'NONBLOCKING'", "'NONEDITIONABLE'", "'NONE'", + "'NONULLIF'", "'NO_NLJ_BATCHING'", "'NO_NLJ_PREFETCH'", + "'NO'", "'NONSCHEMA'", "'NO_OBJECT_LINK'", "'NOORDER'", + "'NO_ORDER_ROLLUPS'", "'NO_OUTER_JOIN_TO_ANTI'", + "'NO_OUTER_JOIN_TO_INNER'", "'NOOVERRIDE'", + "'NO_PARALLEL_INDEX'", "'NOPARALLEL_INDEX'", + "'NO_PARALLEL'", "'NOPARALLEL'", "'NO_PARTIAL_COMMIT'", + "'NO_PARTIAL_JOIN'", "'NO_PARTIAL_ROLLUP_PUSHDOWN'", + "'NOPARTITION'", "'NO_PLACE_DISTINCT'", "'NO_PLACE_GROUP_BY'", + "'NO_PQ_CONCURRENT_UNION'", "'NO_PQ_MAP'", "'NOPROMPT'", + "'NO_PQ_REPLICATE'", "'NO_PQ_SKEW'", "'NO_PRUNE_GSETS'", + "'NO_PULL_PRED'", "'NO_PUSH_PRED'", "'NO_PUSH_SUBQ'", + "'NO_PX_FAULT_TOLERANCE'", "'NO_PX_JOIN_FILTER'", + "'NO_QKN_BUFF'", "'NO_QUERY_TRANSFORMATION'", + "'NO_REF_CASCADE'", "'NORELOCATE'", "'NORELY'", + "'NOREPAIR'", "'NOREPLAY'", "'NORESETLOGS'", + "'NO_RESULT_CACHE'", "'NOREVERSE'", "'NO_REWRITE'", + "'NOREWRITE'", "'NORMAL'", "'NO_ROOT_SW_FOR_LOCAL'", + "'NOROWDEPENDENCIES'", "'NOSCALE'", "'NOSCHEMACHECK'", + "'NOSEGMENT'", "'NO_SEMIJOIN'", "'NO_SEMI_TO_INNER'", + "'NO_SET_TO_JOIN'", "'NOSHARD'", "'NOSORT'", + "'NO_SQL_TRANSLATION'", "'NO_SQL_TUNE'", "'NO_STAR_TRANSFORMATION'", + "'NO_STATEMENT_QUEUING'", "'NO_STATS_GSETS'", + "'NOSTRICT'", "'NO_SUBQUERY_PRUNING'", "'NO_SUBSTRB_PAD'", + "'NO_SWAP_JOIN_INPUTS'", "'NOSWITCH'", "'NO_TABLE_LOOKUP_BY_NL'", + "'NO_TEMP_TABLE'", "'NOTHING'", "'NOTIFICATION'", + "'NOTRIM'", "'NOT'", "'NO_TRANSFORM_DISTINCT_AGG'", + "'NO_UNNEST'", "'NO_USE_CUBE'", "'NO_USE_HASH_AGGREGATION'", + "'NO_USE_HASH_GBY_FOR_PUSHDOWN'", "'NO_USE_HASH'", + "'NO_USE_INVISIBLE_INDEXES'", "'NO_USE_MERGE'", + "'NO_USE_NL'", "'NO_USE_VECTOR_AGGREGATION'", + "'NOVALIDATE'", "'NO_VECTOR_TRANSFORM_DIMS'", + "'NO_VECTOR_TRANSFORM_FACT'", "'NO_VECTOR_TRANSFORM'", + "'NOWAIT'", "'NO_XDB_FASTPATH_INSERT'", "'NO_XML_DML_REWRITE'", + "'NO_XMLINDEX_REWRITE_IN_SELECT'", "'NO_XMLINDEX_REWRITE'", + "'NO_XML_QUERY_REWRITE'", "'NO_ZONEMAP'", "'NTH_VALUE'", + "'NULLIF'", "'NULL'", "'NULLS'", "'NUMBER'", + "'NUMERIC'", "'NUM_INDEX_KEYS'", "'NUMTODSINTERVAL'", + "'NUMTOYMINTERVAL'", "'NVARCHAR2'", "'NVL2'", + "'OBJECT2XML'", "'OBJECT'", "'OBJ_ID'", "'OBJNO'", + "'OBJNO_REUSE'", "'OCCURENCES'", "'OFFLINE'", + "'OFF'", "'OFFSET'", "'OF'", "'OIDINDEX'", "'OID'", + "'OLAP'", "'OLD'", "'OLD_PUSH_PRED'", "'OLS'", + "'OLTP'", "'OMIT'", "'ONE'", "'ONLINE'", "'ONLINELOG'", + "'ONLY'", "'ON'", "'OPAQUE'", "'OPAQUE_TRANSFORM'", + "'OPAQUE_XCANONICAL'", "'OPCODE'", "'OPEN'", + "'OPERATIONS'", "'OPERATOR'", "'OPT_ESTIMATE'", + "'OPTIMAL'", "'OPTIMIZE'", "'OPTIMIZER_FEATURES_ENABLE'", + "'OPTIMIZER_GOAL'", "'OPTION'", "'OPTIONALLY'", + "'OPT_PARAM'", "'ORA_BRANCH'", "'ORA_CHECK_ACL'", + "'ORA_CHECK_PRIVILEGE'", "'ORA_CLUSTERING'", + "'ORADATA'", "'ORC'", "'ORACLE_DATE'", "'ORACLE_NUMBER'", + "'ORADEBUG'", "'ORA_DST_AFFECTED'", "'ORA_DST_CONVERT'", + "'ORA_DST_ERROR'", "'ORA_GET_ACLIDS'", "'ORA_GET_PRIVILEGES'", + "'ORA_HASH'", "'ORA_INVOKING_USERID'", "'ORA_INVOKING_USER'", + "'ORA_INVOKING_XS_USER_GUID'", "'ORA_INVOKING_XS_USER'", + "'ORA_RAWCOMPARE'", "'ORA_RAWCONCAT'", "'ORA_ROWSCN'", + "'ORA_ROWSCN_RAW'", "'ORA_ROWVERSION'", "'ORA_TABVERSION'", + "'ORA_WRITE_TIME'", "'ORDERED'", "'ORDERED_PREDICATES'", + "'ORDER'", "'ORDINALITY'", "'OR_EXPAND'", "'ORGANIZATION'", + "'OR'", "'OR_PREDICATES'", "'OSERROR'", "'OTHER'", + "'OUTER_JOIN_TO_ANTI'", "'OUTER_JOIN_TO_INNER'", + "'OUTER'", "'OUTLINE_LEAF'", "'OUTLINE'", "'OUTPUTFORMAT'", + "'OUT_OF_LINE'", "'OUT'", "'OVERFLOW_NOMOVE'", + "'OVERFLOW'", "'OVERLAPS'", "'OVER'", "'OVERRIDE'", + "'OVERRIDING'", "'OWNER'", "'OWNERSHIP'", "'OWN'", + "'P'", "'PACKAGE'", "'PACKAGES'", "'PARALLEL_ENABLE'", + "'PARALLEL_INDEX'", "'PARALLEL'", "'PARAMETERFILE'", + "'PARAMETERS'", "'PARAM'", "'PARENT'", "'PARENT_LEVEL_NAME'", + "'PARENT_UNIQUE_NAME'", "'PARITY'", "'PARQUET'", + "'PARTIAL_JOIN'", "'PARTIALLY'", "'PARTIAL'", + "'PARTIAL_ROLLUP_PUSHDOWN'", "'PARTITION_HASH'", + "'PARTITION_LIST'", "'PARTITION'", "'PARTITION_RANGE'", + "'PARTITIONS'", "'PART$NUM$INST'", "'PASSING'", + "'PASSWORD_GRACE_TIME'", "'PASSWORD_LIFE_TIME'", + "'PASSWORD_LOCK_TIME'", "'PASSWORD'", "'PASSWORD_REUSE_MAX'", + "'PASSWORD_REUSE_TIME'", "'PASSWORD_ROLLOVER_TIME'", + "'PASSWORD_VERIFY_FUNCTION'", "'PAST'", "'PATCH'", + "'PATH'", "'PATH_PREFIX'", "'PATHS'", "'PATTERN'", + "'PBL_HS_BEGIN'", "'PBL_HS_END'", "'PCTFREE'", + "'PCTINCREASE'", "'PCTTHRESHOLD'", "'PCTUSED'", + "'PCTVERSION'", "'PENDING'", null, null, null, + "'PERCENT'", "'PERCENT_RANKM'", null, null, + null, null, null, "'PERFORMANCE'", "'PERIOD'", + "'PERMANENT'", "'PERMISSION'", "'PERMUTE'", + "'PER'", "'PFILE'", "'PHYSICAL'", "'PIKEY'", + "'PIPELINED'", "'PIPE'", "'PIV_GB'", "'PIVOT'", + "'PIV_SSF'", "'PLACE_DISTINCT'", "'PLACE_GROUP_BY'", + "'PLAN'", "'PLSCOPE_SETTINGS'", "'PLS_INTEGER'", + "'PLSQL_CCFLAGS'", "'PLSQL_CODE_TYPE'", "'PLSQL_DEBUG'", + "'PLSQL_OPTIMIZE_LEVEL'", "'PLSQL_WARNINGS'", + "'PLUGGABLE'", "'PMEM'", "'POINT'", "'POLICY'", + "'POOL_16K'", "'POOL_2K'", "'POOL_32K'", "'POOL_4K'", + "'POOL_8K'", "'POSITION'", "'POSITIVEN'", "'POSITIVE'", + "'POST_TRANSACTION'", "'POWERMULTISET_BY_CARDINALITY'", + "'POWERMULTISET'", "'POWER'", "'PQ_CONCURRENT_UNION'", + "'PQ_DISTRIBUTE'", "'PQ_DISTRIBUTE_WINDOW'", + "'PQ_FILTER'", "'PQ_MAP'", "'PQ_NOMAP'", "'PQ_REPLICATE'", + "'PQ_SKEW'", "'PRAGMA'", "'PREBUILT'", "'PRECEDES'", + "'PRECEDING'", "'PRECISION'", "'PRECOMPUTE_SUBQUERY'", + "'PREDICATE_REORDERS'", "'PRELOAD'", "'PREPARE'", + "'PREPROCESSOR'", "'PRESENTNNV'", "'PRESENT'", + "'PRESENTV'", "'PRESERVE_OID'", "'PRESERVE'", + "'PRETTY'", "'PREVIOUS'", "'PREV'", "'PRIMARY'", + "'PRINTBLOBTOCLOB'", "'PRIORITY'", "'PRIOR'", + "'PRIVATE'", "'PRIVATE_SGA'", "'PRIVILEGED'", + "'PRIVILEGE'", "'PRIVILEGES'", "'PROCEDURAL'", + "'PROCEDURE'", "'PROCESS'", "'PROFILE'", "'PROGRAM'", + "'PROJECT'", "'PROPAGATE'", "'PROPERTY'", "'PROTECTED'", + "'PROTECTION'", "'PROTOCOL'", "'PROXY'", "'PRUNING'", + "'PUBLIC'", "'PULL_PRED'", "'PURGE'", "'PUSH_PRED'", + "'PUSH_SUBQ'", "'PX_FAULT_TOLERANCE'", "'PX_GRANULE'", + "'PX_JOIN_FILTER'", "'QB_NAME'", "'QUARTERS'", + "'QUERY_BLOCK'", "'QUERY'", "'QUEUE_CURR'", + "'QUEUE'", "'QUEUE_ROWP'", "'QUIESCE'", "'QUORUM'", + "'QUOTA'", "'QUOTAGROUP'", "'RAISE'", "'RANDOM_LOCAL'", + "'RANDOM'", "'RANGE'", "'RANKM'", "'RAPIDLY'", + "'RAW'", "'RAWTOHEX'", "'RAWTONHEX'", "'RBA'", + "'RBO_OUTLINE'", "'RCFILE'", "'RDBA'", "'READ'", + "'READS'", "'READSIZE'", "'REALM'", "'REAL'", + "'REBALANCE'", "'REBUILD'", "'RECORD'", "'RECORDS'", + "'RECORDS_PER_BLOCK'", "'RECOVERABLE'", "'RECOVER'", + "'RECOVERY'", "'RECYCLEBIN'", "'RECYCLE'", "'REDACTION'", + "'REDEFINE'", "'REDO'", "'REDUCED'", "'REDUNDANCY'", + "'REF_CASCADE_CURSOR'", "'REFERENCED'", "'REFERENCE'", + "'REFERENCES'", "'REFERENCING'", "'REF'", "'REFRESH'", + "'REFTOHEX'", "'REGEXP_COUNT'", "'REGEXP_INSTR'", + "'REGEXP_LIKE'", "'REGEXP_REPLACE'", "'REGEXP_SUBSTR'", + "'REGISTER'", "'REGR_AVGX'", "'REGR_AVGY'", + "'REGR_COUNT'", "'REGR_INTERCEPT'", "'REGR_R2'", + "'REGR_SLOPE'", "'REGR_SXX'", "'REGR_SXY'", + "'REGR_SYY'", "'REGULAR'", "'REJECT'", "'REKEY'", + "'RELATIONAL'", "'RELIES_ON'", "'RELOCATE'", + "'RELY'", "'REMAINDER'", "'REMOTE'", "'REMOTE_MAPPED'", + "'REMOVE'", "'RENAME'", "'REPAIR'", "'REPEAT'", + "'REPLACE'", "'REPLICATION'", "'REQUIRED'", + "'RESETLOGS'", "'RESET'", "'RESIZE'", "'RESOLVE'", + "'RESOLVER'", "'RESOURCE'", "'RESPECT'", "'RESTART'", + "'RESTORE_AS_INTERVALS'", "'RESTORE'", "'RESTRICT_ALL_REF_CONS'", + "'RESTRICTED'", "'RESTRICT_REFERENCES'", "'RESTRICT'", + "'RESULT_CACHE'", "'RESULT'", "'RESUMABLE'", + "'RESUME'", "'RETENTION'", "'RETRY_ON_ROW_CHANGE'", + "'RETURNING'", "'RETURN'", "'REUSE'", "'REVERSE'", + "'REVOKE'", "'REWRITE_OR_ERROR'", "'REWRITE'", + "'RIGHT'", "'ROLE'", "'ROLESET'", "'ROLES'", + "'ROLLBACK'", "'ROLLING'", "'ROLLUP'", "'ROWDEPENDENCIES'", + "'ROWID_MAPPING_TABLE'", "'ROWID'", "'ROWIDTOCHAR'", + "'ROWIDTONCHAR'", "'ROW_LENGTH'", "'ROWNUM'", + "'ROW'", "'ROWS'", "'RPAD'", "'RTRIM'", "'RULE'", + "'RULES'", "'RUNNING'", "'SALT'", "'SAMPLE'", + "'SAVE_AS_INTERVALS'", "'SAVEPOINT'", "'SAVE'", + "'SB4'", "'SCALE_ROWS'", "'SCALE'", "'SCAN_INSTANCES'", + "'SCAN'", "'SCHEDULER'", "'SCHEMACHECK'", "'SCHEMA'", + "'SCN_ASCENDING'", "'SCN'", "'SCOPE'", "'SCRUB'", + "'SD_ALL'", "'SD_INHIBIT'", "'SDO_GEOM_MBR'", + "'SDO_GEOMETRY'", "'SD_SHOW'", "'SEARCH'", "'SECOND'", + "'SECONDS'", "'SECRET'", "'SECUREFILE_DBA'", + "'SECUREFILE'", "'SECURITY'", "'SEED'", "'SEG_BLOCK'", + "'SEG_FILE'", "'SEGMENT'", "'SELECTIVITY'", + "'SELECT'", "'SELF'", "'SEMIJOIN_DRIVER'", "'SEMIJOIN'", + "'SEMI_TO_INNER'", "'SEQUENCED'", "'SEQUENCE'", + "'SEQUENCEFILE'", "'SEQUENTIAL'", "'SEQ'", "'SERDE'", + "'SERDEPROPERTIES'", "'SERIALIZABLE'", "'SERIALLY_REUSABLE'", + "'SERIAL'", "'SERVERERROR'", "'SERVICE_NAME_CONVERT'", + "'SERVICE'", "'SERVICES'", "'SESSION_CACHED_CURSORS'", + "'SESSION'", "'SESSIONS_PER_USER'", "'SESSIONTIMEZONE'", + "'SESSIONTZNAME'", "'SET'", "'SETS'", "'SETTINGS'", + "'SET_TO_JOIN'", "'SEVERE'", "'SHARD'", "'SHARDSPACE'", + "'SHARED_POOL'", "'SHARED'", "'SHARE'", "'SHARING'", + "'SHELFLIFE'", "'SHOW'", "'SHRINK'", "'SHUTDOWN'", + "'SIBLINGS'", "'SID'", "'SITE'", "'SIGNAL_COMPONENT'", + "'SIGNAL_FUNCTION'", "'SIGN'", "'SIGNTYPE'", + "'SIMPLE_INTEGER'", "'SIMPLE'", "'SINGLE'", + "'SINGLETASK'", "'SINH'", "'SIN'", "'SIZE'", + "'SIZES'", "'SKIP_EXT_OPTIMIZER'", "'SKIP'", + "'SKIP_UNQ_UNUSABLE_IDX'", "'SKIP_UNUSABLE_INDEXES'", + "'SMALLFILE'", "'SMALLINT'", "'SNAPSHOT'", "'SOME'", + "'SORT'", "'SOUNDEX'", "'SOURCE_FILE_DIRECTORY'", + "'SOURCE_FILE_NAME_CONVERT'", "'SOURCE'", "'SPACE'", + "'SPECIFICATION'", "'SPFILE'", "'SPLIT'", "'SPREADSHEET'", + "'SQLDATA'", "'SQLERROR'", "'SQLLDR'", "'SQL'", + null, "'SQL_MACRO'", "'SQL_TRACE'", "'SQL_TRANSLATION_PROFILE'", + "'SQRT'", "'STALE'", "'STANDALONE'", "'STANDARD'", + "'STANDARD_HASH'", "'STANDBY_MAX_DATA_DELAY'", + "'STANDBYS'", "'STANDBY'", "'STAR'", "'STAR_TRANSFORMATION'", + "'START'", "'STARTOF'", "'STARTUP'", "'STATEMENT_ID'", + "'STATEMENT_QUEUING'", "'STATEMENTS'", "'STATEMENT'", + "'STATE'", "'STATIC'", "'STATISTICS'", "'STATS_BINOMIAL_TEST'", + "'STATS_CROSSTAB'", "'STATS_F_TEST'", "'STATS_KS_TEST'", + "'STATS_MODE'", "'STATS_MW_TEST'", "'STATS_ONE_WAY_ANOVA'", + "'STATS_T_TEST_INDEP'", "'STATS_T_TEST_INDEPU'", + "'STATS_T_TEST_ONE'", "'STATS_T_TEST_PAIRED'", + "'STATS_WSR_TEST'", "'STDDEV_POP'", "'STDDEV_SAMP'", + "'STOP'", "'STORAGE'", "'STORE'", "'STREAMS'", + "'STREAM'", "'STRICT'", "'STRING'", "'STRIPE_COLUMNS'", + "'STRIPE_WIDTH'", "'STRIP'", "'STRUCTURE'", + "'SUBMULTISET'", "'SUBPARTITION_REL'", "'SUBPARTITIONS'", + "'SUBPARTITION'", "'SUBQUERIES'", "'SUBQUERY_PRUNING'", + "'SUBSCRIBE'", "'SUBSET'", "'SUBSTITUTABLE'", + "'SUBSTR2'", "'SUBSTR4'", "'SUBSTRB'", "'SUBSTRC'", + "'SUBTYPE'", "'SUCCESSFUL'", "'SUCCESS'", "'SUMMARY'", + "'SUPPLEMENTAL'", "'SUSPEND'", "'SWAP_JOIN_INPUTS'", + "'SWITCHOVER'", "'SWITCH'", "'SYNCHRONOUS'", + "'SYNC'", "'SYNONYM'", "'SYS'", "'SYSASM'", + "'SYS_AUDIT'", "'SYSAUX'", "'SYSBACKUP'", "'SYS_CHECKACL'", + "'SYS_CHECK_PRIVILEGE'", "'SYS_CONNECT_BY_PATH'", + "'SYS_CONTEXT'", "'SYSDATE'", "'SYSDBA'", "'SYS_DBURIGEN'", + "'SYSDG'", "'SYS_DL_CURSOR'", "'SYS_DM_RXFORM_CHR'", + "'SYS_DM_RXFORM_NUM'", "'SYS_DOM_COMPARE'", + "'SYS_DST_PRIM2SEC'", "'SYS_DST_SEC2PRIM'", + "'SYS_ET_BFILE_TO_RAW'", "'SYS_ET_BLOB_TO_IMAGE'", + "'SYS_ET_IMAGE_TO_BLOB'", "'SYS_ET_RAW_TO_BFILE'", + "'SYS_EXTPDTXT'", "'SYS_EXTRACT_UTC'", "'SYS_FBT_INSDEL'", + "'SYS_FILTER_ACLS'", "'SYS_FNMATCHES'", "'SYS_FNREPLACE'", + "'SYS_GET_ACLIDS'", "'SYS_GET_COL_ACLIDS'", + "'SYS_GET_PRIVILEGES'", "'SYS_GETTOKENID'", + "'SYS_GETXTIVAL'", "'SYS_GUID'", "'SYSGUID'", + "'SYSKM'", "'SYS_MAKE_XMLNODEID'", "'SYS_MAKEXML'", + "'SYS_MKXMLATTR'", "'SYS_MKXTI'", "'SYSOBJ'", + "'SYS_OP_ADT2BIN'", "'SYS_OP_ADTCONS'", "'SYS_OP_ALSCRVAL'", + "'SYS_OP_ATG'", "'SYS_OP_BIN2ADT'", "'SYS_OP_BITVEC'", + "'SYS_OP_BL2R'", "'SYS_OP_BLOOM_FILTER_LIST'", + "'SYS_OP_BLOOM_FILTER'", "'SYS_OP_C2C'", "'SYS_OP_CAST'", + "'SYS_OP_CEG'", "'SYS_OP_CL2C'", "'SYS_OP_COMBINED_HASH'", + "'SYS_OP_COMP'", "'SYS_OP_CONVERT'", "'SYS_OP_COUNTCHG'", + "'SYS_OP_CSCONV'", "'SYS_OP_CSCONVTEST'", "'SYS_OP_CSR'", + "'SYS_OP_CSX_PATCH'", "'SYS_OP_CYCLED_SEQ'", + "'SYS_OP_DECOMP'", "'SYS_OP_DESCEND'", "'SYS_OP_DISTINCT'", + "'SYS_OP_DRA'", "'SYS_OP_DUMP'", "'SYS_OP_DV_CHECK'", + "'SYS_OP_ENFORCE_NOT_NULL$'", "'SYSOPER'", "'SYS_OP_EXTRACT'", + "'SYS_OP_GROUPING'", "'SYS_OP_GUID'", "'SYS_OP_HASH'", + "'SYS_OP_IIX'", "'SYS_OP_ITR'", "'SYS_OP_KEY_VECTOR_CREATE'", + "'SYS_OP_KEY_VECTOR_FILTER_LIST'", "'SYS_OP_KEY_VECTOR_FILTER'", + "'SYS_OP_KEY_VECTOR_SUCCEEDED'", "'SYS_OP_KEY_VECTOR_USE'", + "'SYS_OP_LBID'", "'SYS_OP_LOBLOC2BLOB'", "'SYS_OP_LOBLOC2CLOB'", + "'SYS_OP_LOBLOC2ID'", "'SYS_OP_LOBLOC2NCLOB'", + "'SYS_OP_LOBLOC2TYP'", "'SYS_OP_LSVI'", "'SYS_OP_LVL'", + "'SYS_OP_MAKEOID'", "'SYS_OP_MAP_NONNULL'", + "'SYS_OP_MSR'", "'SYS_OP_NICOMBINE'", "'SYS_OP_NIEXTRACT'", + "'SYS_OP_NII'", "'SYS_OP_NIX'", "'SYS_OP_NOEXPAND'", + "'SYS_OP_NTCIMG$'", "'SYS_OP_NUMTORAW'", "'SYS_OP_OIDVALUE'", + "'SYS_OP_OPNSIZE'", "'SYS_OP_PAR_1'", "'SYS_OP_PARGID_1'", + "'SYS_OP_PARGID'", "'SYS_OP_PAR'", "'SYS_OP_PART_ID'", + "'SYS_OP_PIVOT'", "'SYS_OP_R2O'", "'SYS_OP_RAWTONUM'", + "'SYS_OP_RDTM'", "'SYS_OP_REF'", "'SYS_OP_RMTD'", + "'SYS_OP_ROWIDTOOBJ'", "'SYS_OP_RPB'", "'SYS_OPTLOBPRBSC'", + "'SYS_OP_TOSETID'", "'SYS_OP_TPR'", "'SYS_OP_TRTB'", + "'SYS_OPTXICMP'", "'SYS_OPTXQCASTASNQ'", "'SYS_OP_UNDESCEND'", + "'SYS_OP_VECAND'", "'SYS_OP_VECBIT'", "'SYS_OP_VECOR'", + "'SYS_OP_VECXOR'", "'SYS_OP_VERSION'", "'SYS_OP_VREF'", + "'SYS_OP_VVD'", "'SYS_OP_XMLCONS_FOR_CSX'", + "'SYS_OP_XPTHATG'", "'SYS_OP_XPTHIDX'", "'SYS_OP_XPTHOP'", + "'SYS_OP_XTXT2SQLT'", "'SYS_OP_ZONE_ID'", "'SYS_ORDERKEY_DEPTH'", + "'SYS_ORDERKEY_MAXCHILD'", "'SYS_ORDERKEY_PARENT'", + "'SYS_PARALLEL_TXN'", "'SYS_PATHID_IS_ATTR'", + "'SYS_PATHID_IS_NMSPC'", "'SYS_PATHID_LASTNAME'", + "'SYS_PATHID_LASTNMSPC'", "'SYS_PATH_REVERSE'", + "'SYS_PXQEXTRACT'", "'SYS_RAW_TO_XSID'", "'SYS_RID_ORDER'", + "'SYS_ROW_DELTA'", "'SYS_SC_2_XMLT'", "'SYS_SYNRCIREDO'", + "'SYSTEM_DEFINED'", "'SYSTEM'", "'SYSTIMESTAMP'", + "'SYS_TYPEID'", "'SYS_UMAKEXML'", "'SYS_XMLANALYZE'", + "'SYS_XMLCONTAINS'", "'SYS_XMLCONV'", "'SYS_XMLEXNSURI'", + "'SYS_XMLGEN'", "'SYS_XMLI_LOC_ISNODE'", "'SYS_XMLI_LOC_ISTEXT'", + "'SYS_XMLINSTR'", "'SYS_XMLLOCATOR_GETSVAL'", + "'SYS_XMLNODEID_GETCID'", "'SYS_XMLNODEID_GETLOCATOR'", + "'SYS_XMLNODEID_GETOKEY'", "'SYS_XMLNODEID_GETPATHID'", + "'SYS_XMLNODEID_GETPTRID'", "'SYS_XMLNODEID_GETRID'", + "'SYS_XMLNODEID_GETSVAL'", "'SYS_XMLNODEID_GETTID'", + "'SYS_XMLNODEID'", "'SYS_XMLT_2_SC'", "'SYS_XMLTRANSLATE'", + "'SYS_XMLTYPE2SQL'", "'SYS_XQ_ASQLCNV'", "'SYS_XQ_ATOMCNVCHK'", + "'SYS_XQBASEURI'", "'SYS_XQCASTABLEERRH'", "'SYS_XQCODEP2STR'", + "'SYS_XQCODEPEQ'", "'SYS_XQCON2SEQ'", "'SYS_XQCONCAT'", + "'SYS_XQDELETE'", "'SYS_XQDFLTCOLATION'", "'SYS_XQDOC'", + "'SYS_XQDOCURI'", "'SYS_XQDURDIV'", "'SYS_XQED4URI'", + "'SYS_XQENDSWITH'", "'SYS_XQERRH'", "'SYS_XQERR'", + "'SYS_XQESHTMLURI'", "'SYS_XQEXLOBVAL'", "'SYS_XQEXSTWRP'", + "'SYS_XQEXTRACT'", "'SYS_XQEXTRREF'", "'SYS_XQEXVAL'", + "'SYS_XQFB2STR'", "'SYS_XQFNBOOL'", "'SYS_XQFNCMP'", + "'SYS_XQFNDATIM'", "'SYS_XQFNLNAME'", "'SYS_XQFNNM'", + "'SYS_XQFNNSURI'", "'SYS_XQFNPREDTRUTH'", "'SYS_XQFNQNM'", + "'SYS_XQFNROOT'", "'SYS_XQFORMATNUM'", "'SYS_XQFTCONTAIN'", + "'SYS_XQFUNCR'", "'SYS_XQGETCONTENT'", "'SYS_XQINDXOF'", + "'SYS_XQINSERT'", "'SYS_XQINSPFX'", "'SYS_XQIRI2URI'", + "'SYS_XQLANG'", "'SYS_XQLLNMFRMQNM'", "'SYS_XQMKNODEREF'", + "'SYS_XQNILLED'", "'SYS_XQNODENAME'", "'SYS_XQNORMSPACE'", + "'SYS_XQNORMUCODE'", "'SYS_XQ_NRNG'", "'SYS_XQNSP4PFX'", + "'SYS_XQNSPFRMQNM'", "'SYS_XQPFXFRMQNM'", "'SYS_XQ_PKSQL2XML'", + "'SYS_XQPOLYABS'", "'SYS_XQPOLYADD'", "'SYS_XQPOLYCEL'", + "'SYS_XQPOLYCSTBL'", "'SYS_XQPOLYCST'", "'SYS_XQPOLYDIV'", + "'SYS_XQPOLYFLR'", "'SYS_XQPOLYMOD'", "'SYS_XQPOLYMUL'", + "'SYS_XQPOLYRND'", "'SYS_XQPOLYSQRT'", "'SYS_XQPOLYSUB'", + "'SYS_XQPOLYUMUS'", "'SYS_XQPOLYUPLS'", "'SYS_XQPOLYVEQ'", + "'SYS_XQPOLYVGE'", "'SYS_XQPOLYVGT'", "'SYS_XQPOLYVLE'", + "'SYS_XQPOLYVLT'", "'SYS_XQPOLYVNE'", "'SYS_XQREF2VAL'", + "'SYS_XQRENAME'", "'SYS_XQREPLACE'", "'SYS_XQRESVURI'", + "'SYS_XQRNDHALF2EVN'", "'SYS_XQRSLVQNM'", "'SYS_XQRYENVPGET'", + "'SYS_XQRYVARGET'", "'SYS_XQRYWRP'", "'SYS_XQSEQ2CON4XC'", + "'SYS_XQSEQ2CON'", "'SYS_XQSEQDEEPEQ'", "'SYS_XQSEQINSB'", + "'SYS_XQSEQRM'", "'SYS_XQSEQRVS'", "'SYS_XQSEQSUB'", + "'SYS_XQSEQTYPMATCH'", "'SYS_XQSTARTSWITH'", + "'SYS_XQSTATBURI'", "'SYS_XQSTR2CODEP'", "'SYS_XQSTRJOIN'", + "'SYS_XQSUBSTRAFT'", "'SYS_XQSUBSTRBEF'", "'SYS_XQTOKENIZE'", + "'SYS_XQTREATAS'", "'SYS_XQ_UPKXML2SQL'", "'SYS_XQXFORM'", + "'SYS_XSID_TO_RAW'", "'SYS_ZMAP_FILTER'", "'SYS_ZMAP_REFRESH'", + "'T'", "'TABLE_LOOKUP_BY_NL'", "'TABLESPACE_NO'", + "'TABLESPACE'", "'TABLES'", "'TABLE_STATS'", + "'TABLE'", "'TABNO'", "'TAG'", "'TANH'", "'TAN'", + "'TBL$OR$IDX$PART$NUM'", "'TEMPFILE'", "'TEMPLATE'", + "'TEMPLATE_TABLE'", "'TEMPORARY'", "'TEMP_TABLE'", + "'TERMINATED'", "'TEST'", "'TEXT'", "'TEXTFILE'", + "'THAN'", "'THEN'", "'THE'", "'THESE'", "'THREAD'", + "'THROUGH'", "'TIER'", "'TIES'", "'TIMEOUT'", + "'TIMESTAMP_LTZ_UNCONSTRAINED'", "'TIMESTAMP'", + "'TIMESTAMP_TZ_UNCONSTRAINED'", "'TIMESTAMP_UNCONSTRAINED'", + "'TIMES'", "'TIME'", "'TIMEZONE'", "'TIMEZONE_ABBR'", + "'TIMEZONE_HOUR'", "'TIMEZONE_MINUTE'", "'TIMEZONE_OFFSET'", + "'TIMEZONE_REGION'", "'TIME_ZONE'", "'TIMING'", + "'TINYINT'", "'TIV_GB'", "'TIV_SSF'", "'TO_ACLID'", + "'TO_BINARY_DOUBLE'", "'TO_BINARY_FLOAT'", "'TO_BLOB'", + "'TO_CLOB'", "'TO_DSINTERVAL'", "'TO_LOB'", + "'TO_MULTI_BYTE'", "'TO_NCHAR'", "'TO_NCLOB'", + "'TO_NUMBER'", "'TOPLEVEL'", "'TO_SINGLE_BYTE'", + "'TO_TIMESTAMP'", "'TO_TIMESTAMP_TZ'", "'TO_TIME'", + "'TO_TIME_TZ'", "'TO'", "'TO_YMINTERVAL'", "'TRACE'", + "'TRACING'", "'TRACKING'", "'TRAILING'", "'TRANSACTION'", + "'TRANSFORM'", "'TRANSFORMS'", "'TRANSFORM_DISTINCT_AGG'", + "'TRANSITIONAL'", "'TRANSITION'", "'TRANSLATE'", + "'TRANSLATION'", "'TREAT'", "'TRIGGERS'", "'TRIGGER'", + "'TRUE'", "'TRUNCATE'", "'TRUNC'", "'TRUSTED'", + "'TRUST'", "'TUNING'", "'TX'", "'TYPES'", "'TYPE'", + "'TZ_OFFSET'", "'UB2'", "'UBA'", "'UCS2'", "'UDF'", + "'UID'", "'UNARCHIVED'", "'UNBOUNDED'", "'UNBOUND'", + "'UNCONDITIONAL'", "'UNDER'", "'UNDO'", "'UNDROP'", + "'UNIFORM'", "'UNION'", "'UNIONTYPE'", "'UNIQUE'", + "'UNISTR'", "'UNLIMITED'", "'UNLOAD'", "'UNLOCK'", + "'UNMATCHED'", "'UNNEST_INNERJ_DISTINCT_VIEW'", + "'UNNEST_NOSEMIJ_NODISTINCTVIEW'", "'UNNEST_SEMIJ_VIEW'", + "'UNNEST'", "'UNPACKED'", "'UNPIVOT'", "'UNPLUG'", + "'UNPROTECTED'", "'UNQUIESCE'", "'UNRECOVERABLE'", + "'UNRESTRICTED'", "'UNSIGNED'", "'UNSUBSCRIBE'", + "'UNTIL'", "'UNUSABLE'", "'UNUSED'", "'UPDATABLE'", + "'UPDATED'", "'UPDATE'", "'UPDATEXML'", "'UPD_INDEXES'", + "'UPD_JOININDEX'", "'UPGRADE'", "'UPPER'", "'UPSERT'", + "'UROWID'", "'USABLE'", "'USAGE'", "'USE_ANTI'", + "'USE_CONCAT'", "'USE_CUBE'", "'USE_HASH_AGGREGATION'", + "'USE_HASH_GBY_FOR_PUSHDOWN'", "'USE_HASH'", + "'USE_HIDDEN_PARTITIONS'", "'USE_INVISIBLE_INDEXES'", + "'USE_MERGE_CARTESIAN'", "'USE_MERGE'", "'USE_NL'", + "'USE_NL_WITH_INDEX'", "'USE_PRIVATE_OUTLINES'", + "'USER_DATA'", "'USER_DEFINED'", "'USERENV'", + "'USERGROUP'", "'USER_RECYCLEBIN'", "'USERS'", + "'USER_TABLESPACES'", "'USER'", "'USE_SEMI'", + "'USE_STORED_OUTLINES'", "'USE_TTT_FOR_GSETS'", + "'USE'", "'USE_VECTOR_AGGREGATION'", "'USE_WEAK_NAME_RESL'", + "'USING_NO_EXPAND'", "'USING_NLS_COMP'", "'USING'", + "'UTF16BE'", "'UTF16LE'", "'UTF32'", "'UTF8'", + "'V1'", "'V2'", "'VALIDATE'", "'VALIDATE_CONVERSION'", + "'VALIDATION'", "'VALID_TIME_END'", "'VALUES'", + "'VALUE'", "'VARCHAR2'", "'VARCHAR'", "'VARCHARC'", + "'VARIABLE'", "'VARRAW'", "'VARRAWC'", "'VAR_POP'", + "'VARRAYS'", "'VARRAY'", "'VAR_SAMP'", "'VARYING'", + "'VECTOR_READ_TRACE'", "'VECTOR_READ'", "'VECTOR_TRANSFORM_DIMS'", + "'VECTOR_TRANSFORM_FACT'", "'VECTOR_TRANSFORM'", + "'VERIFIER'", "'VERIFY'", "'VERSIONING'", "'VERSIONS_ENDSCN'", + "'VERSIONS_ENDTIME'", "'VERSIONS_OPERATION'", + "'VERSIONS_STARTSCN'", "'VERSIONS_STARTTIME'", + "'VERSIONS'", "'VERSIONS_XID'", "'VERSION'", + "'VIEW'", "'VIOLATION'", "'VIRTUAL'", "'VISIBILITY'", + "'VISIBLE'", "'VOLUME'", "'VSIZE'", "'WAIT'", + "'WALLET'", "'WARNING'", "'WEEKS'", "'WEEK'", + "'WELLFORMED'", "'WHENEVER'", "'WHEN'", "'WHERE'", + "'WHILE'", "'WHITESPACE'", "'WIDTH_BUCKET'", + "'WITHIN'", "'WITHOUT'", "'WITH_PLSQL'", "'WITH'", + "'WORK'", "'WORKERID'", "'WRAPPED'", "'WRAPPER'", + "'WRITE'", "'XDB_FASTPATH_INSERT'", "'XDB'", + "'X_DYN_PRUNE'", "'XID'", "'XML2OBJECT'", "'XMLAGG'", + "'XMLATTRIBUTES'", "'XMLCAST'", "'XMLCDATA'", + "'XMLCOLATTVAL'", "'XMLCOMMENT'", "'XMLCONCAT'", + "'XMLDIFF'", "'XML_DML_RWT_STMT'", "'XMLELEMENT'", + "'XMLEXISTS2'", "'XMLEXISTS'", "'XMLFOREST'", + "'XMLINDEX'", "'XMLINDEX_REWRITE_IN_SELECT'", + "'XMLINDEX_REWRITE'", "'XMLINDEX_SEL_IDX_TBL'", + "'XMLISNODE'", "'XMLISVALID'", "'XMLNAMESPACES'", + "'XMLPARSE'", "'XMLPATCH'", "'XMLPI'", "'XMLQUERYVAL'", + "'XMLQUERY'", "'XMLROOT'", "'XMLSCHEMA'", "'XMLSERIALIZE'", + "'XMLTABLE'", "'XMLTAG'", "'XMLTRANSFORMBLOB'", + "'XMLTRANSFORM'", "'XMLTYPE'", "'XML'", "'XPATHTABLE'", + "'XS_SYS_CONTEXT'", "'XS'", "'XTRANSPORT'", + "'YEARS'", "'YEAR'", "'YEAR_TO_MONTH'", "'YES'", + "'YMINTERVAL_UNCONSTRAINED'", "'ZONEMAP'", "'ZONE'", + "'ZONED'", "'PREDICTION'", "'PREDICTION_BOUNDS'", + "'PREDICTION_COST'", "'PREDICTION_DETAILS'", + "'PREDICTION_PROBABILITY'", "'PREDICTION_SET'", + "'BLOCKCHAIN'", "'COLLATE'", "'COLLATION'", + "'DEFINITION'", "'DUPLICATED'", "'EXTENDED'", + "'HASHING'", "'IDLE'", "'IMMUTABLE'", "'ORACLE_DATAPUMP'", + "'ORACLE_HDFS'", "'ORACLE_HIVE'", "'ORACLE_LOADER'", + "'\"SHA2_512\"'", "'SHARDED'", "'\"V1\"'", "'ISOLATE'", + "'ROOT'", "'UNITE'", "'ALGORITHM'", "'CUME_DIST'", + "'DENSE_RANK'", "'LISTAGG'", "'PERCENT_RANK'", + "'PERCENTILE_CONT'", "'PERCENTILE_DISC'", "'RANK'", + "'AVG'", "'CORR'", "'COVAR_'", "'DECODE'", "'LAG'", + "'LAG_DIFF'", "'LAG_DIFF_PERCENT'", "'LEAD'", + "'MAX'", "'MEDIAN'", "'MEMOPTIMIZE'", "'MIN'", + "'NTILE'", "'NVL'", "'RATIO_TO_REPORT'", "'REGR_'", + "'ROUND'", "'ROW_NUMBER'", "'SUBSTR'", "'TO_CHAR'", + "'TRIM'", "'SUM'", "'STDDEV'", "'VAR_'", "'VARIANCE'", + "'LEAST'", "'GREATEST'", "'TO_DATE'", "'CHARSETID'", + "'CHARSETFORM'", "'DURATION'", "'EXTEND'", "'MAXLEN'", + "'PERSISTABLE'", "'POLYMORPHIC'", "'STRUCT'", + "'TDO'", "'WM_CONCAT'", null, null, null, "'..'", + "'.'", null, null, null, null, "'%'", "'&'", + "'('", "')'", "'**'", "'*'", "'+'", "'-'", "','", + "'/'", "'@'", "':='", "'#'", "'{'", "'}'", "'''", + null, null, "'^'", "'~'", "'!'", "'>'", "'<'", + "':'", "';'", "'|'", "'='", "'['", "']'", "'_'" ]; + static symbolicNames = [ null, "ABORT", "ABS", "ABSENT", "ACCESS", "ACCESSED", + "ACCESSIBLE", "ACCOUNT", "ACL", "ACOS", "ACROSS", + "ACTION", "ACTIONS", "ACTIVATE", "ACTIVE", + "ACTIVE_COMPONENT", "ACTIVE_DATA", "ACTIVE_FUNCTION", + "ACTIVE_TAG", "ACTIVITY", "ADAPTIVE_PLAN", + "ADD", "ADD_COLUMN", "ADD_GROUP", "ADD_MONTHS", + "ADJ_DATE", "ADMIN", "ADMINISTER", "ADMINISTRATOR", + "ADVANCED", "ADVISE", "ADVISOR", "AFD_DISKSTRING", + "AFTER", "AGENT", "AGGREGATE", "A_LETTER", + "ALIAS", "ALL", "ALLOCATE", "ALLOW", "ALL_ROWS", + "ALTER", "ALTERNATE", "ALWAYS", "ANALYTIC", + "ANALYZE", "ANCESTOR", "ANCILLARY", "AND", + "AND_EQUAL", "ANNOTATIONS", "ANOMALY", "ANSI_REARCH", + "ANTIJOIN", "ANY", "ANYSCHEMA", "APPEND", "APPENDCHILDXML", + "APPEND_VALUES", "APPLICATION", "APPLY", "APPROX_COUNT_DISTINCT", + "ARCHIVAL", "ARCHIVE", "ARCHIVED", "ARCHIVELOG", + "ARE", "ARRAY", "AS", "ASC", "ASCII", "ASCIISTR", + "ASIN", "ASIS", "ASSEMBLY", "ASSIGN", "ASSOCIATE", + "ASYNC", "ASYNCHRONOUS", "ATAN2", "ATAN", "AT", + "ATTRIBUTE", "ATTRIBUTES", "AUDIT", "AUTHENTICATED", + "AUTHENTICATION", "AUTHID", "AUTHORIZATION", + "AUTOALLOCATE", "AUTO", "AUTOBACKUP", "AUTOEXTEND", + "AUTO_LOGIN", "AUTOMATIC", "AUTONOMOUS_TRANSACTION", + "AUTO_REOPTIMIZE", "AVAILABILITY", "AVRO", + "BACKGROUND", "BACKINGFILE", "BACKUP", "BACKUPS", + "BACKUPSET", "BADFILE", "BASIC", "BASICFILE", + "BATCH", "BATCHSIZE", "BATCH_TABLE_ACCESS_BY_ROWID", + "BECOME", "BEFORE", "BEGIN", "BEGINNING", "BEGIN_OUTLINE_DATA", + "BEHALF", "BEQUEATH", "BETWEEN", "BFILE", "BFILENAME", + "BIG", "BIGFILE", "BIGINT", "BINARY", "BINARY_DOUBLE", + "BINARY_DOUBLE_INFINITY", "BINARY_DOUBLE_NAN", + "BINARY_FLOAT", "BINARY_FLOAT_INFINITY", "BINARY_FLOAT_NAN", + "BINARY_INTEGER", "BIND_AWARE", "BINDING", + "BIN_TO_NUM", "BITAND", "BITMAP_AND", "BITMAP", + "BITMAPS", "BITMAP_TREE", "BITS", "BLANKS", + "BLOB", "BLOCK", "BLOCK_RANGE", "BLOCKS", "BLOCKSIZE", + "BODY", "BOOLEAN", "BOTH", "BOUND", "BRANCH", + "BREADTH", "BROADCAST", "BSON", "BUFFER", "BUFFER_CACHE", + "BUFFER_POOL", "BUILD", "BULK", "BY", "BYPASS_RECURSIVE_CHECK", + "BYPASS_UJVC", "BYTE", "BYTES", "BYTEORDERMARK", + "CACHE", "CACHE_CB", "CACHE_INSTANCES", "CACHE_TEMP_TABLE", + "CACHING", "CALCULATED", "CALLBACK", "CALL", + "CANCEL", "CANONICAL", "CAPACITY", "CAPTION", + "CARDINALITY", "CASCADE", "CASE", "CAST", "CASESENSITIVE", + "CATEGORY", "CDBDEFAULT", "CEIL", "CELL_FLASH_CACHE", + "CERTIFICATE", "CFILE", "CHAINED", "CHANGE", + "CHANGETRACKING", "CHANGE_DUPKEY_ERROR_INDEX", + "CHARACTER", "CHARACTERS", "CHARACTERSET", + "CHAR", "CHAR_CS", "CHARTOROWID", "CHECK_ACL_REWRITE", + "CHECK", "CHECKPOINT", "CHILD", "CHOOSE", "CHR", + "CHUNK", "CLASS", "CLASSIFICATION", "CLASSIFIER", + "CLAUSE", "CLEAN", "CLEANUP", "CLEAR", "C_LETTER", + "CLIENT", "CLOB", "CLONE", "CLOSE_CACHED_OPEN_CURSORS", + "CLOSE", "CLUSTER_BY_ROWID", "CLUSTER", "CLUSTER_DETAILS", + "CLUSTER_DISTANCE", "CLUSTER_ID", "CLUSTERING", + "CLUSTERING_FACTOR", "CLUSTER_PROBABILITY", + "CLUSTER_SET", "COALESCE", "COALESCE_SQ", "COARSE", + "CO_AUTH_IND", "COLD", "COLLECT", "COLLECTION", + "COLUMNAR", "COLUMN_AUTH_INDICATOR", "COLUMN", + "COLUMNS", "COLUMN_STATS", "COLUMN_VALUE", + "COMMENT", "COMMIT", "COMMITTED", "COMMON", + "COMMON_DATA", "COMPACT", "COMPATIBLE", "COMPATIBILITY", + "COMPILE", "COMPLETE", "COMPLIANCE", "COMPONENT", + "COMPONENTS", "COMPOSE", "COMPOSITE", "COMPOSITE_LIMIT", + "COMPOUND", "COMPRESS", "COMPRESSION", "COMPUTE", + "CONCAT", "CON_DBID_TO_ID", "CONDITIONAL", + "CONDITION", "CONFIRM", "CONFORMING", "CON_GUID_TO_ID", + "CON_ID", "CON_NAME_TO_ID", "CONNECT_BY_CB_WHR_ONLY", + "CONNECT_BY_COMBINE_SW", "CONNECT_BY_COST_BASED", + "CONNECT_BY_ELIM_DUPS", "CONNECT_BY_FILTERING", + "CONNECT_BY_ISCYCLE", "CONNECT_BY_ISLEAF", + "CONNECT_BY_ROOT", "CONNECT", "CONNECT_TIME", + "CONSIDER", "CONSISTENT", "CONSTANT", "CONST", + "CONSTRAINT", "CONSTRAINTS", "CONSTRUCTOR", + "CONTAINER", "CONTAINERS", "CONTAINERS_DEFAULT", + "CONTAINER_DATA", "CONTAINER_MAP", "CONTENT", + "CONTENTS", "CONTEXT", "CONTINUE", "CONTROLFILE", + "CON_UID_TO_ID", "CONVERT", "CONVERSION", "COOKIE", + "COPY", "CORR_K", "CORR_S", "CORRUPTION", "CORRUPT_XID_ALL", + "CORRUPT_XID", "COS", "COSH", "COST", "COST_XML_QUERY_REWRITE", + "COUNT", "COUNTED", "COVAR_POP", "COVAR_SAMP", + "CPU_COSTING", "CPU_PER_CALL", "CPU_PER_SESSION", + "CRASH", "CREATE", "CREATE_FILE_DEST", "CREATE_STORED_OUTLINES", + "CREATION", "CREDENTIAL", "CRITICAL", "CROSS", + "CROSSEDITION", "CSCONVERT", "CSV", "CUBE_AJ", + "CUBE", "CUBE_GB", "CUBE_SJ", "CUME_DISTM", + "CURRENT", "CURRENT_DATE", "CURRENT_SCHEMA", + "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", + "CURRENTV", "CURSOR", "CURSOR_SHARING_EXACT", + "CURSOR_SPECIFIC_SEGMENT", "CUSTOMDATUM", "CV", + "CYCLE", "DANGLING", "DATABASE", "DATA", "DATAFILE", + "DATAFILES", "DATAGUARDCONFIG", "DATAMOVEMENT", + "DATAOBJNO", "DATAOBJ_TO_MAT_PARTITION", "DATAOBJ_TO_PARTITION", + "DATAPUMP", "DATA_SECURITY_REWRITE_LIMIT", + "DATE", "DATE_CACHE", "DATE_FORMAT", "DATE_MODE", + "DAY", "DAYS", "DAY_TO_SECOND", "DBA", "DBA_RECYCLEBIN", + "DBLINK", "DBMS_STATS", "DB_ROLE_CHANGE", "DBTIMEZONE", + "DB_UNIQUE_NAME", "DB_VERSION", "DDL", "DEALLOCATE", + "DEBUG", "DEBUGGER", "DEC", "DECIMAL", "DECLARE", + "DECOMPOSE", "DECORRELATE", "DECR", "DECREMENT", + "DECRYPT", "DEDUPLICATE", "DEFAULT", "DEFAULTIF", + "DEFAULTS", "DEFAULT_COLLATION", "DEFAULT_CREDENTIAL", + "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINE", + "DEFINER", "DEGREE", "DELAY", "DELEGATE", "DELETE_ALL", + "DELETE", "DELETEXML", "DELIMITED", "DEMAND", + "DENSE_RANKM", "DEPENDENT", "DEPRECATE", "DEPTH", + "DEQUEUE", "DEREF", "DEREF_NO_REWRITE", "DESC", + "DESCRIPTION", "DESTROY", "DETACHED", "DETECTED", + "DETERMINES", "DETERMINISTIC", "DICTIONARY", + "DIMENSION", "DIMENSIONS", "DIRECTIO", "DIRECT_LOAD", + "DIRECTORY", "DIRECT_PATH", "DISABLE_ALL", + "DISABLE", "DISABLED", "DISABLE_DIRECTORY_LINK_CHECK", + "DISABLE_PARALLEL_DML", "DISABLE_PRESET", "DISABLE_RPKE", + "DISALLOW", "DISASSOCIATE", "DISCARD", "DISCARDFILE", + "DISCONNECT", "DISK", "DISKGROUP", "DISKGROUP_PLUS", + "DISKS", "DISMOUNT", "DISTINCT", "DISTINGUISHED", + "DISTRIBUTED", "DISTRIBUTE", "DML", "DML_UPDATE", + "DNFS_DISABLE", "DNFS_ENABLE", "DNFS_READBUFFERS", + "DOCFIDELITY", "DOCUMENT", "DOLLAR_ELSE", "DOLLAR_ELSIF", + "DOLLAR_END", "DOLLAR_ERROR", "DOLLAR_IF", + "DOLLAR_THEN", "DOMAIN_INDEX_FILTER", "DOMAIN_INDEX_NO_SORT", + "DOMAIN_INDEX_SORT", "DOUBLE", "DOWNGRADE", + "DRIVING_SITE", "DROP_COLUMN", "DROP", "DROP_GROUP", + "DSINTERVAL_UNCONSTRAINED", "DST_UPGRADE_INSERT_CONV", + "DUMP", "DUMPSET", "DUPLICATE", "DV", "DYNAMIC", + "DYNAMIC_SAMPLING", "DYNAMIC_SAMPLING_EST_CDN", + "E_LETTER", "EACH", "EDITIONABLE", "EDITION", + "EDITIONING", "EDITIONS", "ELEMENT", "ELIM_GROUPBY", + "ELIMINATE_JOIN", "ELIMINATE_OBY", "ELIMINATE_OUTER_JOIN", + "ELSE", "ELSIF", "EM", "EMBEDDED", "EMPTY_BLOB", + "EMPTY_CLOB", "EMPTY_", "ENABLE_ALL", "ENABLE", + "ENABLED", "ENABLE_PARALLEL_DML", "ENABLE_PRESET", + "ENCLOSED", "ENCODING", "ENCRYPT", "ENCRYPTION", + "ENCRYPTPASSWORDISNULL", "END", "END_OUTLINE_DATA", + "ENDIAN", "ENFORCED", "ENFORCE", "ENQUEUE", + "ENTERPRISE", "ENTITYESCAPING", "ENTRY", "EQUIPART", + "ERR", "ERROR_ARGUMENT", "ERROR", "ERROR_ON_OVERLAP_TIME", + "ERRORS", "ERROR_INDEX", "ERROR_CODE", "ESCAPE", + "ESCAPED", "ESTIMATE", "EVAL", "EVALNAME", + "EVALUATE", "EVALUATION", "EVENTS", "EVERY", + "EXCEPT", "EXCEPTION", "EXCEPTION_INIT", "EXCEPTIONS", + "EXCHANGE", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", + "EXECUTE", "EXEMPT", "EXISTING", "EXISTS", + "EXISTSNODE", "EXIT", "EXPAND_GSET_TO_UNION", + "EXPAND_TABLE", "EXP", "EXPIRE", "EXPLAIN", + "EXPLOSION", "EXPORT", "EXPR_CORR_CHECK", "EXPRESS", + "EXTENDS", "EXTENT", "EXTENTS", "EXTERNAL", + "EXTERNALLY", "EXTRACTCLOBXML", "EXTRACT", + "EXTRACTVALUE", "EXTRA", "FACILITY", "FACT", + "FACTOR", "FACTORIZE_JOIN", "FAILED", "FAILED_LOGIN_ATTEMPTS", + "FAILGROUP", "FAILOVER", "FAILURE", "FALSE", + "FAMILY", "FAR", "FAST", "FASTSTART", "FBTSCAN", + "FEATURE", "FEATURE_DETAILS", "FEATURE_ID", + "FEATURE_SET", "FEATURE_VALUE", "FETCH", "FIELD", + "FIELDS", "FILE", "FILE_NAME_CONVERT", "FILEGROUP", + "FILESTORE", "FILESYSTEM_LIKE_LOGGING", "FILTER", + "FINAL", "FINE", "FINISH", "FIRST", "FIRSTM", + "FIRST_ROWS", "FIRST_VALUE", "FIXED", "FIXED_VIEW_DATA", + "FLAGGER", "FLASHBACK", "FLASH_CACHE", "FLOAT", + "FLOB", "FLEX", "FLOOR", "FLUSH", "FOLDER", + "FOLLOWING", "FOLLOWS", "FORALL", "FORCE", + "FORCE_XML_QUERY_REWRITE", "FOREIGN", "FOREVER", + "FOR", "FORMAT", "FORWARD", "FRAGMENT_NUMBER", + "FREELIST", "FREELISTS", "FREEPOOLS", "FRESH", + "FROM", "FROM_TZ", "FULL", "FULL_OUTER_JOIN_TO_OUTER", + "FUNCTION", "FUNCTIONS", "FTP", "G_LETTER", + "GATHER_OPTIMIZER_STATISTICS", "GATHER_PLAN_STATISTICS", + "GBY_CONC_ROLLUP", "GBY_PUSHDOWN", "GENERATED", + "GET", "GLOBAL", "GLOBALLY", "GLOBAL_NAME", + "GLOBAL_TOPIC_ENABLED", "GOTO", "GRANT", "GROUP_BY", + "GROUP", "GROUP_ID", "GROUPING", "GROUPING_ID", + "GROUPS", "GUARANTEED", "GUARANTEE", "GUARD", + "HADOOP_TRAILERS", "HALF_YEARS", "HASH_AJ", + "HASH", "HASHKEYS", "HASH_SJ", "HAVING", "HEADER", + "HEAP", "HELP", "HEXTORAW", "HEXTOREF", "HIDDEN_KEYWORD", + "HIDE", "HIER_ORDER", "HIERARCHICAL", "HIERARCHIES", + "HIERARCHY", "HIGH", "HINTSET_BEGIN", "HINTSET_END", + "HOT", "HOUR", "HOURS", "HTTP", "HWM_BROKERED", + "HYBRID", "H_LETTER", "IDENTIFIED", "IDENTIFIER", + "IDENTITY", "IDGENERATORS", "ID", "IDLE_TIME", + "IF", "IGNORE", "IGNORE_CHARS_AFTER_EOR", "IGNORE_OPTIM_EMBEDDED_HINTS", + "IGNORE_ROW_ON_DUPKEY_INDEX", "IGNORE_WHERE_CLAUSE", + "ILM", "IMMEDIATE", "IMPACT", "IMPORT", "INACTIVE", + "INACTIVE_ACCOUNT_TIME", "INCLUDE", "INCLUDE_VERSION", + "INCLUDING", "INCREMENTAL", "INCREMENT", "INCR", + "INDENT", "INDEX_ASC", "INDEX_COMBINE", "INDEX_DESC", + "INDEXED", "INDEXES", "INDEX_FFS", "INDEX_FILTER", + "INDEX", "INDEXING", "INDEX_JOIN", "INDEX_ROWS", + "INDEX_RRS", "INDEX_RS_ASC", "INDEX_RS_DESC", + "INDEX_RS", "INDEX_SCAN", "INDEX_SKIP_SCAN", + "INDEX_SS_ASC", "INDEX_SS_DESC", "INDEX_SS", + "INDEX_STATS", "INDEXTYPE", "INDEXTYPES", "INDICATOR", + "INDICES", "INFINITE", "INFORMATIONAL", "INHERIT", + "IN", "INITCAP", "INITIAL", "INITIALIZED", + "INITIALLY", "INITRANS", "INLINE", "INLINE_XMLTYPE_NT", + "INMEMORY", "IN_MEMORY_METADATA", "INMEMORY_PRUNING", + "INNER", "INOUT", "INPLACE", "INPUTFORMAT", + "INSERTCHILDXMLAFTER", "INSERTCHILDXMLBEFORE", + "INSERTCHILDXML", "INSERT", "INSERTXMLAFTER", + "INSERTXMLBEFORE", "INSTANCE", "INSTANCES", + "INSTANTIABLE", "INSTANTLY", "INSTEAD", "INSTR2", + "INSTR4", "INSTRB", "INSTRC", "INSTR", "INTEGER", + "INTERLEAVED", "INTERMEDIATE", "INTERNAL_CONVERT", + "INTERNAL_USE", "INTERPRETED", "INTERSECT", + "INTERVAL", "INT", "INTERNAL", "INTO", "INVALIDATE", + "INVALIDATION", "INVISIBLE", "IN_XQUERY", "IO_OPTIONS", + "IS", "IS_LEAF", "ISOLATION", "ISOLATION_LEVEL", + "ITEMS", "ITERATE", "ITERATION_NUMBER", "JAVA", + "JOB", "JOIN", "JSON_ARRAYAGG", "JSON_ARRAY", + "JSON_EQUAL", "JSON_EXISTS2", "JSON_EXISTS", + "JSONGET", "JSON", "JSON_OBJECTAGG", "JSON_OBJECT", + "JSONPARSE", "JSON_QUERY", "JSON_SERIALIZE", + "JSON_TABLE", "JSON_TEXTCONTAINS2", "JSON_TEXTCONTAINS", + "JSON_TRANSFORM", "JSON_VALUE", "K_LETTER", + "KEEP_DUPLICATES", "KEEP", "KERBEROS", "KEY", + "KEY_LENGTH", "KEYSIZE", "KEYS", "KEYSTORE", + "KILL", "LABEL", "LANGUAGE", "LAST_DAY", "LAST", + "LAST_VALUE", "LATERAL", "LATEST", "LAX", "LAYER", + "LDAP_REGISTRATION_ENABLED", "LDAP_REGISTRATION", + "LDAP_REG_SYNC_INTERVAL", "LDRTRIM", "LEAF", + "LEAD_CDB", "LEAD_CDB_URI", "LEADING", "LEFT", + "LENGTH2", "LENGTH4", "LENGTHB", "LENGTHC", + "LENGTH", "LESS", "LEVEL", "LEVEL_NAME", "LEVELS", + "LIBRARY", "LIFECYCLE", "LIFE", "LIFETIME", + "LIKE2", "LIKE4", "LIKEC", "LIKE_EXPAND", "LIKE", + "LIMIT", "LINEAR", "LINES", "LINK", "LIST", + "LITTLE", "LLS", "LN", "LNNVL", "LOAD", "LOB", + "LOBFILE", "LOBNVL", "LOBS", "LOCAL_INDEXES", + "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATION", + "LOCATOR", "LOCKDOWN", "LOCKED", "LOCKING", + "LOCK", "LOGFILE", "LOGFILES", "LOGGING", "LOGICAL", + "LOGICAL_READS_PER_CALL", "LOGICAL_READS_PER_SESSION", + "LOG", "LOGMINING", "LOGOFF", "LOGON", "LOG_READ_ONLY_VIOLATIONS", + "LONG", "LOOP", "LOST", "LOWER", "LOW", "LPAD", + "LRTRIM", "LTRIM", "M_LETTER", "MAIN", "MAKE_REF", + "MANAGED", "MANAGE", "MANAGEMENT", "MANAGER", + "MANDATORY", "MANUAL", "MAP", "MAPPING", "MASK", + "MASTER", "MATCHED", "MATCHES", "MATCH", "MATCH_NUMBER", + "MATCH_RECOGNIZE", "MATERIALIZED", "MATERIALIZE", + "MAXARCHLOGS", "MAXDATAFILES", "MAXEXTENTS", + "MAXIMIZE", "MAXINSTANCES", "MAXLOGFILES", + "MAXLOGHISTORY", "MAXLOGMEMBERS", "MAX_SHARED_TEMP_SIZE", + "MAXSIZE", "MAXTRANS", "MAXVALUE", "MEASURE", + "MEASURES", "MEDIUM", "MEMBER", "MEMBER_CAPTION", + "MEMBER_DESCRIPTION", "MEMBER_NAME", "MEMBER_UNIQUE_NAME", + "MEMCOMPRESS", "MEMORY", "MERGEACTIONS", "MERGE_AJ", + "MERGE_CONST_ON", "MERGE", "MERGE_SJ", "METADATA", + "METHOD", "MIGRATE", "MIGRATION", "MINEXTENTS", + "MINIMIZE", "MINIMUM", "MINING", "MINUS", "MINUS_NULL", + "MINUTE", "MINUTES", "MINVALUE", "MIRRORCOLD", + "MIRRORHOT", "MIRROR", "MISSING", "MISMATCH", + "MLSLABEL", "MODEL_COMPILE_SUBQUERY", "MODEL_DONTVERIFY_UNIQUENESS", + "MODEL_DYNAMIC_SUBQUERY", "MODEL_MIN_ANALYSIS", + "MODEL", "MODEL_NB", "MODEL_NO_ANALYSIS", "MODEL_PBY", + "MODEL_PUSH_REF", "MODEL_SV", "MODE", "MODIFICATION", + "MODIFY_COLUMN_TYPE", "MODIFY", "MOD", "MODULE", + "MONITORING", "MONITOR", "MONTH", "MONTHS_BETWEEN", + "MONTHS", "MOUNT", "MOUNTPATH", "MOUNTPOINT", + "MOVEMENT", "MOVE", "MULTIDIMENSIONAL", "MULTISET", + "MV_MERGE", "NAMED", "NAME", "NAMESPACE", "NAN_", + "NANVL", "NATIONAL", "NATIVE_FULL_OUTER_JOIN", + "NATIVE", "NATURAL", "NATURALN", "NAV", "NCHAR_CS", + "NCHAR", "NCHR", "NCLOB", "NEEDED", "NEG", + "NESTED", "NESTED_TABLE_FAST_INSERT", "NESTED_TABLE_GET_REFS", + "NESTED_TABLE_ID", "NESTED_TABLE_SET_REFS", + "NESTED_TABLE_SET_SETID", "NETWORK", "NEVER", + "NEW", "NEWLINE_", "NEW_TIME", "NEXT_DAY", + "NEXT", "NL_AJ", "NLJ_BATCHING", "NLJ_INDEX_FILTER", + "NLJ_INDEX_SCAN", "NLJ_PREFETCH", "NLS_CALENDAR", + "NLS_CHARACTERSET", "NLS_CHARSET_DECL_LEN", + "NLS_CHARSET_ID", "NLS_CHARSET_NAME", "NLS_COMP", + "NLS_CURRENCY", "NLS_DATE_FORMAT", "NLS_DATE_LANGUAGE", + "NLS_INITCAP", "NLS_ISO_CURRENCY", "NL_SJ", + "NLS_LANG", "NLS_LANGUAGE", "NLS_LENGTH_SEMANTICS", + "NLS_LOWER", "NLS_NCHAR_CONV_EXCP", "NLS_NUMERIC_CHARACTERS", + "NLS_SORT", "NLSSORT", "NLS_SPECIAL_CHARS", + "NLS_TERRITORY", "NLS_UPPER", "NO_ACCESS", + "NO_ADAPTIVE_PLAN", "NO_ANSI_REARCH", "NOAPPEND", + "NOARCHIVELOG", "NOAUDIT", "NOBADFILE", "NO_AUTO_REOPTIMIZE", + "NO_BASETABLE_MULTIMV_REWRITE", "NO_BATCH_TABLE_ACCESS_BY_ROWID", + "NO_BIND_AWARE", "NO_BUFFER", "NOCACHE", "NOCHECK", + "NO_CARTESIAN", "NO_CHECK_ACL_REWRITE", "NO_CLUSTER_BY_ROWID", + "NO_CLUSTERING", "NO_COALESCE_SQ", "NO_COMMON_DATA", + "NOCOMPRESS", "NO_CONNECT_BY_CB_WHR_ONLY", + "NO_CONNECT_BY_COMBINE_SW", "NO_CONNECT_BY_COST_BASED", + "NO_CONNECT_BY_ELIM_DUPS", "NO_CONNECT_BY_FILTERING", + "NOCOPY", "NO_COST_XML_QUERY_REWRITE", "NO_CPU_COSTING", + "NOCPU_COSTING", "NOCYCLE", "NO_DATA_SECURITY_REWRITE", + "NO_DECORRELATE", "NODELAY", "NODIRECTIO", + "NODISCARDFILE", "NO_DOMAIN_INDEX_FILTER", + "NO_DST_UPGRADE_INSERT_CONV", "NO_ELIM_GROUPBY", + "NO_ELIMINATE_JOIN", "NO_ELIMINATE_OBY", "NO_ELIMINATE_OUTER_JOIN", + "NOENTITYESCAPING", "NO_EXPAND_GSET_TO_UNION", + "NO_EXPAND", "NO_EXPAND_TABLE", "NOEXTEND", + "NO_FACT", "NO_FACTORIZE_JOIN", "NO_FILTERING", + "NOFORCE", "NO_FULL_OUTER_JOIN_TO_OUTER", "NO_GATHER_OPTIMIZER_STATISTICS", + "NO_GBY_PUSHDOWN", "NOGUARANTEE", "NO_INDEX_FFS", + "NO_INDEX", "NO_INDEX_SS", "NO_INMEMORY", "NO_INMEMORY_PRUNING", + "NOKEEP", "NO_LOAD", "NOLOCAL", "NOLOG", "NOLOGFILE", + "NOLOGGING", "NOMAPPING", "NOMAXVALUE", "NO_MERGE", + "NOMINIMIZE", "NOMINVALUE", "NO_MODEL_PUSH_REF", + "NO_MONITORING", "NOMONITORING", "NO_MONITOR", + "NO_MULTIMV_REWRITE", "NO_NATIVE_FULL_OUTER_JOIN", + "NONBLOCKING", "NONEDITIONABLE", "NONE", "NONULLIF", + "NO_NLJ_BATCHING", "NO_NLJ_PREFETCH", "NO", + "NONSCHEMA", "NO_OBJECT_LINK", "NOORDER", "NO_ORDER_ROLLUPS", + "NO_OUTER_JOIN_TO_ANTI", "NO_OUTER_JOIN_TO_INNER", + "NOOVERRIDE", "NO_PARALLEL_INDEX", "NOPARALLEL_INDEX", + "NO_PARALLEL", "NOPARALLEL", "NO_PARTIAL_COMMIT", + "NO_PARTIAL_JOIN", "NO_PARTIAL_ROLLUP_PUSHDOWN", + "NOPARTITION", "NO_PLACE_DISTINCT", "NO_PLACE_GROUP_BY", + "NO_PQ_CONCURRENT_UNION", "NO_PQ_MAP", "NOPROMPT", + "NO_PQ_REPLICATE", "NO_PQ_SKEW", "NO_PRUNE_GSETS", + "NO_PULL_PRED", "NO_PUSH_PRED", "NO_PUSH_SUBQ", + "NO_PX_FAULT_TOLERANCE", "NO_PX_JOIN_FILTER", + "NO_QKN_BUFF", "NO_QUERY_TRANSFORMATION", "NO_REF_CASCADE", + "NORELOCATE", "NORELY", "NOREPAIR", "NOREPLAY", + "NORESETLOGS", "NO_RESULT_CACHE", "NOREVERSE", + "NO_REWRITE", "NOREWRITE", "NORMAL", "NO_ROOT_SW_FOR_LOCAL", + "NOROWDEPENDENCIES", "NOSCALE", "NOSCHEMACHECK", + "NOSEGMENT", "NO_SEMIJOIN", "NO_SEMI_TO_INNER", + "NO_SET_TO_JOIN", "NOSHARD", "NOSORT", "NO_SQL_TRANSLATION", + "NO_SQL_TUNE", "NO_STAR_TRANSFORMATION", "NO_STATEMENT_QUEUING", + "NO_STATS_GSETS", "NOSTRICT", "NO_SUBQUERY_PRUNING", + "NO_SUBSTRB_PAD", "NO_SWAP_JOIN_INPUTS", "NOSWITCH", + "NO_TABLE_LOOKUP_BY_NL", "NO_TEMP_TABLE", "NOTHING", + "NOTIFICATION", "NOTRIM", "NOT", "NO_TRANSFORM_DISTINCT_AGG", + "NO_UNNEST", "NO_USE_CUBE", "NO_USE_HASH_AGGREGATION", + "NO_USE_HASH_GBY_FOR_PUSHDOWN", "NO_USE_HASH", + "NO_USE_INVISIBLE_INDEXES", "NO_USE_MERGE", + "NO_USE_NL", "NO_USE_VECTOR_AGGREGATION", "NOVALIDATE", + "NO_VECTOR_TRANSFORM_DIMS", "NO_VECTOR_TRANSFORM_FACT", + "NO_VECTOR_TRANSFORM", "NOWAIT", "NO_XDB_FASTPATH_INSERT", + "NO_XML_DML_REWRITE", "NO_XMLINDEX_REWRITE_IN_SELECT", + "NO_XMLINDEX_REWRITE", "NO_XML_QUERY_REWRITE", + "NO_ZONEMAP", "NTH_VALUE", "NULLIF", "NULL_", + "NULLS", "NUMBER", "NUMERIC", "NUM_INDEX_KEYS", + "NUMTODSINTERVAL", "NUMTOYMINTERVAL", "NVARCHAR2", + "NVL2", "OBJECT2XML", "OBJECT", "OBJ_ID", "OBJNO", + "OBJNO_REUSE", "OCCURENCES", "OFFLINE", "OFF", + "OFFSET", "OF", "OIDINDEX", "OID", "OLAP", + "OLD", "OLD_PUSH_PRED", "OLS", "OLTP", "OMIT", + "ONE", "ONLINE", "ONLINELOG", "ONLY", "ON", + "OPAQUE", "OPAQUE_TRANSFORM", "OPAQUE_XCANONICAL", + "OPCODE", "OPEN", "OPERATIONS", "OPERATOR", + "OPT_ESTIMATE", "OPTIMAL", "OPTIMIZE", "OPTIMIZER_FEATURES_ENABLE", + "OPTIMIZER_GOAL", "OPTION", "OPTIONALLY", "OPT_PARAM", + "ORA_BRANCH", "ORA_CHECK_ACL", "ORA_CHECK_PRIVILEGE", + "ORA_CLUSTERING", "ORADATA", "ORC", "ORACLE_DATE", + "ORACLE_NUMBER", "ORADEBUG", "ORA_DST_AFFECTED", + "ORA_DST_CONVERT", "ORA_DST_ERROR", "ORA_GET_ACLIDS", + "ORA_GET_PRIVILEGES", "ORA_HASH", "ORA_INVOKING_USERID", + "ORA_INVOKING_USER", "ORA_INVOKING_XS_USER_GUID", + "ORA_INVOKING_XS_USER", "ORA_RAWCOMPARE", "ORA_RAWCONCAT", + "ORA_ROWSCN", "ORA_ROWSCN_RAW", "ORA_ROWVERSION", + "ORA_TABVERSION", "ORA_WRITE_TIME", "ORDERED", + "ORDERED_PREDICATES", "ORDER", "ORDINALITY", + "OR_EXPAND", "ORGANIZATION", "OR", "OR_PREDICATES", + "OSERROR", "OTHER", "OUTER_JOIN_TO_ANTI", "OUTER_JOIN_TO_INNER", + "OUTER", "OUTLINE_LEAF", "OUTLINE", "OUTPUTFORMAT", + "OUT_OF_LINE", "OUT", "OVERFLOW_NOMOVE", "OVERFLOW_", + "OVERLAPS", "OVER", "OVERRIDE", "OVERRIDING", + "OWNER", "OWNERSHIP", "OWN", "P_LETTER", "PACKAGE", + "PACKAGES", "PARALLEL_ENABLE", "PARALLEL_INDEX", + "PARALLEL", "PARAMETERFILE", "PARAMETERS", + "PARAM", "PARENT", "PARENT_LEVEL_NAME", "PARENT_UNIQUE_NAME", + "PARITY", "PARQUET", "PARTIAL_JOIN", "PARTIALLY", + "PARTIAL", "PARTIAL_ROLLUP_PUSHDOWN", "PARTITION_HASH", + "PARTITION_LIST", "PARTITION", "PARTITION_RANGE", + "PARTITIONS", "PARTNUMINST", "PASSING", "PASSWORD_GRACE_TIME", + "PASSWORD_LIFE_TIME", "PASSWORD_LOCK_TIME", + "PASSWORD", "PASSWORD_REUSE_MAX", "PASSWORD_REUSE_TIME", + "PASSWORD_ROLLOVER_TIME", "PASSWORD_VERIFY_FUNCTION", + "PAST", "PATCH", "PATH", "PATH_PREFIX", "PATHS", + "PATTERN", "PBL_HS_BEGIN", "PBL_HS_END", "PCTFREE", + "PCTINCREASE", "PCTTHRESHOLD", "PCTUSED", "PCTVERSION", + "PENDING", "PERCENT_FOUND", "PERCENT_ISOPEN", + "PERCENT_NOTFOUND", "PERCENT_KEYWORD", "PERCENT_RANKM", + "PERCENT_ROWCOUNT", "PERCENT_ROWTYPE", "PERCENT_TYPE", + "PERCENT_BULK_EXCEPTIONS", "PERCENT_BULK_ROWCOUNT", + "PERFORMANCE", "PERIOD_KEYWORD", "PERMANENT", + "PERMISSION", "PERMUTE", "PER", "PFILE", "PHYSICAL", + "PIKEY", "PIPELINED", "PIPE", "PIV_GB", "PIVOT", + "PIV_SSF", "PLACE_DISTINCT", "PLACE_GROUP_BY", + "PLAN", "PLSCOPE_SETTINGS", "PLS_INTEGER", + "PLSQL_CCFLAGS", "PLSQL_CODE_TYPE", "PLSQL_DEBUG", + "PLSQL_OPTIMIZE_LEVEL", "PLSQL_WARNINGS", "PLUGGABLE", + "PMEM", "POINT", "POLICY", "POOL_16K", "POOL_2K", + "POOL_32K", "POOL_4K", "POOL_8K", "POSITION", + "POSITIVEN", "POSITIVE", "POST_TRANSACTION", + "POWERMULTISET_BY_CARDINALITY", "POWERMULTISET", + "POWER", "PQ_CONCURRENT_UNION", "PQ_DISTRIBUTE", + "PQ_DISTRIBUTE_WINDOW", "PQ_FILTER", "PQ_MAP", + "PQ_NOMAP", "PQ_REPLICATE", "PQ_SKEW", "PRAGMA", + "PREBUILT", "PRECEDES", "PRECEDING", "PRECISION", + "PRECOMPUTE_SUBQUERY", "PREDICATE_REORDERS", + "PRELOAD", "PREPARE", "PREPROCESSOR", "PRESENTNNV", + "PRESENT", "PRESENTV", "PRESERVE_OID", "PRESERVE", + "PRETTY", "PREVIOUS", "PREV", "PRIMARY", "PRINTBLOBTOCLOB", + "PRIORITY", "PRIOR", "PRIVATE", "PRIVATE_SGA", + "PRIVILEGED", "PRIVILEGE", "PRIVILEGES", "PROCEDURAL", + "PROCEDURE", "PROCESS", "PROFILE", "PROGRAM", + "PROJECT", "PROPAGATE", "PROPERTY", "PROTECTED", + "PROTECTION", "PROTOCOL", "PROXY", "PRUNING", + "PUBLIC", "PULL_PRED", "PURGE", "PUSH_PRED", + "PUSH_SUBQ", "PX_FAULT_TOLERANCE", "PX_GRANULE", + "PX_JOIN_FILTER", "QB_NAME", "QUARTERS", "QUERY_BLOCK", + "QUERY", "QUEUE_CURR", "QUEUE", "QUEUE_ROWP", + "QUIESCE", "QUORUM", "QUOTA", "QUOTAGROUP", + "RAISE", "RANDOM_LOCAL", "RANDOM", "RANGE", + "RANKM", "RAPIDLY", "RAW", "RAWTOHEX", "RAWTONHEX", + "RBA", "RBO_OUTLINE", "RCFILE", "RDBA", "READ", + "READS", "READSIZE", "REALM", "REAL", "REBALANCE", + "REBUILD", "RECORD", "RECORDS", "RECORDS_PER_BLOCK", + "RECOVERABLE", "RECOVER", "RECOVERY", "RECYCLEBIN", + "RECYCLE", "REDACTION", "REDEFINE", "REDO", + "REDUCED", "REDUNDANCY", "REF_CASCADE_CURSOR", + "REFERENCED", "REFERENCE", "REFERENCES", "REFERENCING", + "REF", "REFRESH", "REFTOHEX", "REGEXP_COUNT", + "REGEXP_INSTR", "REGEXP_LIKE", "REGEXP_REPLACE", + "REGEXP_SUBSTR", "REGISTER", "REGR_AVGX", "REGR_AVGY", + "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", + "REGR_SLOPE", "REGR_SXX", "REGR_SXY", "REGR_SYY", + "REGULAR", "REJECT", "REKEY", "RELATIONAL", + "RELIES_ON", "RELOCATE", "RELY", "REMAINDER", + "REMOTE", "REMOTE_MAPPED", "REMOVE", "RENAME", + "REPAIR", "REPEAT", "REPLACE", "REPLICATION", + "REQUIRED", "RESETLOGS", "RESET", "RESIZE", + "RESOLVE", "RESOLVER", "RESOURCE", "RESPECT", + "RESTART", "RESTORE_AS_INTERVALS", "RESTORE", + "RESTRICT_ALL_REF_CONS", "RESTRICTED", "RESTRICT_REFERENCES", + "RESTRICT", "RESULT_CACHE", "RESULT", "RESUMABLE", + "RESUME", "RETENTION", "RETRY_ON_ROW_CHANGE", + "RETURNING", "RETURN", "REUSE", "REVERSE", + "REVOKE", "REWRITE_OR_ERROR", "REWRITE", "RIGHT", + "ROLE", "ROLESET", "ROLES", "ROLLBACK", "ROLLING", + "ROLLUP", "ROWDEPENDENCIES", "ROWID_MAPPING_TABLE", + "ROWID", "ROWIDTOCHAR", "ROWIDTONCHAR", "ROW_LENGTH", + "ROWNUM", "ROW", "ROWS", "RPAD", "RTRIM", "RULE", + "RULES", "RUNNING", "SALT", "SAMPLE", "SAVE_AS_INTERVALS", + "SAVEPOINT", "SAVE", "SB4", "SCALE_ROWS", "SCALE", + "SCAN_INSTANCES", "SCAN", "SCHEDULER", "SCHEMACHECK", + "SCHEMA", "SCN_ASCENDING", "SCN", "SCOPE", + "SCRUB", "SD_ALL", "SD_INHIBIT", "SDO_GEOM_MBR", + "SDO_GEOMETRY", "SD_SHOW", "SEARCH", "SECOND", + "SECONDS", "SECRET", "SECUREFILE_DBA", "SECUREFILE", + "SECURITY", "SEED", "SEG_BLOCK", "SEG_FILE", + "SEGMENT", "SELECTIVITY", "SELECT", "SELF", + "SEMIJOIN_DRIVER", "SEMIJOIN", "SEMI_TO_INNER", + "SEQUENCED", "SEQUENCE", "SEQUENCEFILE", "SEQUENTIAL", + "SEQ", "SERDE", "SERDEPROPERTIES", "SERIALIZABLE", + "SERIALLY_REUSABLE", "SERIAL", "SERVERERROR", + "SERVICE_NAME_CONVERT", "SERVICE", "SERVICES", + "SESSION_CACHED_CURSORS", "SESSION", "SESSIONS_PER_USER", + "SESSIONTIMEZONE", "SESSIONTZNAME", "SET", + "SETS", "SETTINGS", "SET_TO_JOIN", "SEVERE", + "SHARD", "SHARDSPACE", "SHARED_POOL", "SHARED", + "SHARE", "SHARING", "SHELFLIFE", "SHOW", "SHRINK", + "SHUTDOWN", "SIBLINGS", "SID", "SITE", "SIGNAL_COMPONENT", + "SIGNAL_FUNCTION", "SIGN", "SIGNTYPE", "SIMPLE_INTEGER", + "SIMPLE", "SINGLE", "SINGLETASK", "SINH", "SIN", + "SIZE", "SIZES", "SKIP_EXT_OPTIMIZER", "SKIP_", + "SKIP_UNQ_UNUSABLE_IDX", "SKIP_UNUSABLE_INDEXES", + "SMALLFILE", "SMALLINT", "SNAPSHOT", "SOME", + "SORT", "SOUNDEX", "SOURCE_FILE_DIRECTORY", + "SOURCE_FILE_NAME_CONVERT", "SOURCE", "SPACE_KEYWORD", + "SPECIFICATION", "SPFILE", "SPLIT", "SPREADSHEET", + "SQLDATA", "SQLERROR", "SQLLDR", "SQL", "FILE_EXT", + "SQL_MACRO", "SQL_TRACE", "SQL_TRANSLATION_PROFILE", + "SQRT", "STALE", "STANDALONE", "STANDARD", + "STANDARD_HASH", "STANDBY_MAX_DATA_DELAY", + "STANDBYS", "STANDBY", "STAR", "STAR_TRANSFORMATION", + "START", "STARTOF", "STARTUP", "STATEMENT_ID", + "STATEMENT_QUEUING", "STATEMENTS", "STATEMENT", + "STATE", "STATIC", "STATISTICS", "STATS_BINOMIAL_TEST", + "STATS_CROSSTAB", "STATS_F_TEST", "STATS_KS_TEST", + "STATS_MODE", "STATS_MW_TEST", "STATS_ONE_WAY_ANOVA", + "STATS_T_TEST_INDEP", "STATS_T_TEST_INDEPU", + "STATS_T_TEST_ONE", "STATS_T_TEST_PAIRED", + "STATS_WSR_TEST", "STDDEV_POP", "STDDEV_SAMP", + "STOP", "STORAGE", "STORE", "STREAMS", "STREAM", + "STRICT", "STRING", "STRIPE_COLUMNS", "STRIPE_WIDTH", + "STRIP", "STRUCTURE", "SUBMULTISET", "SUBPARTITION_REL", + "SUBPARTITIONS", "SUBPARTITION", "SUBQUERIES", + "SUBQUERY_PRUNING", "SUBSCRIBE", "SUBSET", + "SUBSTITUTABLE", "SUBSTR2", "SUBSTR4", "SUBSTRB", + "SUBSTRC", "SUBTYPE", "SUCCESSFUL", "SUCCESS", + "SUMMARY", "SUPPLEMENTAL", "SUSPEND", "SWAP_JOIN_INPUTS", + "SWITCHOVER", "SWITCH", "SYNCHRONOUS", "SYNC", + "SYNONYM", "SYS", "SYSASM", "SYS_AUDIT", "SYSAUX", + "SYSBACKUP", "SYS_CHECKACL", "SYS_CHECK_PRIVILEGE", + "SYS_CONNECT_BY_PATH", "SYS_CONTEXT", "SYSDATE", + "SYSDBA", "SYS_DBURIGEN", "SYSDG", "SYS_DL_CURSOR", + "SYS_DM_RXFORM_CHR", "SYS_DM_RXFORM_NUM", "SYS_DOM_COMPARE", + "SYS_DST_PRIM2SEC", "SYS_DST_SEC2PRIM", "SYS_ET_BFILE_TO_RAW", + "SYS_ET_BLOB_TO_IMAGE", "SYS_ET_IMAGE_TO_BLOB", + "SYS_ET_RAW_TO_BFILE", "SYS_EXTPDTXT", "SYS_EXTRACT_UTC", + "SYS_FBT_INSDEL", "SYS_FILTER_ACLS", "SYS_FNMATCHES", + "SYS_FNREPLACE", "SYS_GET_ACLIDS", "SYS_GET_COL_ACLIDS", + "SYS_GET_PRIVILEGES", "SYS_GETTOKENID", "SYS_GETXTIVAL", + "SYS_GUID", "SYSGUID", "SYSKM", "SYS_MAKE_XMLNODEID", + "SYS_MAKEXML", "SYS_MKXMLATTR", "SYS_MKXTI", + "SYSOBJ", "SYS_OP_ADT2BIN", "SYS_OP_ADTCONS", + "SYS_OP_ALSCRVAL", "SYS_OP_ATG", "SYS_OP_BIN2ADT", + "SYS_OP_BITVEC", "SYS_OP_BL2R", "SYS_OP_BLOOM_FILTER_LIST", + "SYS_OP_BLOOM_FILTER", "SYS_OP_C2C", "SYS_OP_CAST", + "SYS_OP_CEG", "SYS_OP_CL2C", "SYS_OP_COMBINED_HASH", + "SYS_OP_COMP", "SYS_OP_CONVERT", "SYS_OP_COUNTCHG", + "SYS_OP_CSCONV", "SYS_OP_CSCONVTEST", "SYS_OP_CSR", + "SYS_OP_CSX_PATCH", "SYS_OP_CYCLED_SEQ", "SYS_OP_DECOMP", + "SYS_OP_DESCEND", "SYS_OP_DISTINCT", "SYS_OP_DRA", + "SYS_OP_DUMP", "SYS_OP_DV_CHECK", "SYS_OP_ENFORCE_NOT_NULL", + "SYSOPER", "SYS_OP_EXTRACT", "SYS_OP_GROUPING", + "SYS_OP_GUID", "SYS_OP_HASH", "SYS_OP_IIX", + "SYS_OP_ITR", "SYS_OP_KEY_VECTOR_CREATE", "SYS_OP_KEY_VECTOR_FILTER_LIST", + "SYS_OP_KEY_VECTOR_FILTER", "SYS_OP_KEY_VECTOR_SUCCEEDED", + "SYS_OP_KEY_VECTOR_USE", "SYS_OP_LBID", "SYS_OP_LOBLOC2BLOB", + "SYS_OP_LOBLOC2CLOB", "SYS_OP_LOBLOC2ID", "SYS_OP_LOBLOC2NCLOB", + "SYS_OP_LOBLOC2TYP", "SYS_OP_LSVI", "SYS_OP_LVL", + "SYS_OP_MAKEOID", "SYS_OP_MAP_NONNULL", "SYS_OP_MSR", + "SYS_OP_NICOMBINE", "SYS_OP_NIEXTRACT", "SYS_OP_NII", + "SYS_OP_NIX", "SYS_OP_NOEXPAND", "SYS_OP_NTCIMG", + "SYS_OP_NUMTORAW", "SYS_OP_OIDVALUE", "SYS_OP_OPNSIZE", + "SYS_OP_PAR_1", "SYS_OP_PARGID_1", "SYS_OP_PARGID", + "SYS_OP_PAR", "SYS_OP_PART_ID", "SYS_OP_PIVOT", + "SYS_OP_R2O", "SYS_OP_RAWTONUM", "SYS_OP_RDTM", + "SYS_OP_REF", "SYS_OP_RMTD", "SYS_OP_ROWIDTOOBJ", + "SYS_OP_RPB", "SYS_OPTLOBPRBSC", "SYS_OP_TOSETID", + "SYS_OP_TPR", "SYS_OP_TRTB", "SYS_OPTXICMP", + "SYS_OPTXQCASTASNQ", "SYS_OP_UNDESCEND", "SYS_OP_VECAND", + "SYS_OP_VECBIT", "SYS_OP_VECOR", "SYS_OP_VECXOR", + "SYS_OP_VERSION", "SYS_OP_VREF", "SYS_OP_VVD", + "SYS_OP_XMLCONS_FOR_CSX", "SYS_OP_XPTHATG", + "SYS_OP_XPTHIDX", "SYS_OP_XPTHOP", "SYS_OP_XTXT2SQLT", + "SYS_OP_ZONE_ID", "SYS_ORDERKEY_DEPTH", "SYS_ORDERKEY_MAXCHILD", + "SYS_ORDERKEY_PARENT", "SYS_PARALLEL_TXN", + "SYS_PATHID_IS_ATTR", "SYS_PATHID_IS_NMSPC", + "SYS_PATHID_LASTNAME", "SYS_PATHID_LASTNMSPC", + "SYS_PATH_REVERSE", "SYS_PXQEXTRACT", "SYS_RAW_TO_XSID", + "SYS_RID_ORDER", "SYS_ROW_DELTA", "SYS_SC_2_XMLT", + "SYS_SYNRCIREDO", "SYSTEM_DEFINED", "SYSTEM", + "SYSTIMESTAMP", "SYS_TYPEID", "SYS_UMAKEXML", + "SYS_XMLANALYZE", "SYS_XMLCONTAINS", "SYS_XMLCONV", + "SYS_XMLEXNSURI", "SYS_XMLGEN", "SYS_XMLI_LOC_ISNODE", + "SYS_XMLI_LOC_ISTEXT", "SYS_XMLINSTR", "SYS_XMLLOCATOR_GETSVAL", + "SYS_XMLNODEID_GETCID", "SYS_XMLNODEID_GETLOCATOR", + "SYS_XMLNODEID_GETOKEY", "SYS_XMLNODEID_GETPATHID", + "SYS_XMLNODEID_GETPTRID", "SYS_XMLNODEID_GETRID", + "SYS_XMLNODEID_GETSVAL", "SYS_XMLNODEID_GETTID", + "SYS_XMLNODEID", "SYS_XMLT_2_SC", "SYS_XMLTRANSLATE", + "SYS_XMLTYPE2SQL", "SYS_XQ_ASQLCNV", "SYS_XQ_ATOMCNVCHK", + "SYS_XQBASEURI", "SYS_XQCASTABLEERRH", "SYS_XQCODEP2STR", + "SYS_XQCODEPEQ", "SYS_XQCON2SEQ", "SYS_XQCONCAT", + "SYS_XQDELETE", "SYS_XQDFLTCOLATION", "SYS_XQDOC", + "SYS_XQDOCURI", "SYS_XQDURDIV", "SYS_XQED4URI", + "SYS_XQENDSWITH", "SYS_XQERRH", "SYS_XQERR", + "SYS_XQESHTMLURI", "SYS_XQEXLOBVAL", "SYS_XQEXSTWRP", + "SYS_XQEXTRACT", "SYS_XQEXTRREF", "SYS_XQEXVAL", + "SYS_XQFB2STR", "SYS_XQFNBOOL", "SYS_XQFNCMP", + "SYS_XQFNDATIM", "SYS_XQFNLNAME", "SYS_XQFNNM", + "SYS_XQFNNSURI", "SYS_XQFNPREDTRUTH", "SYS_XQFNQNM", + "SYS_XQFNROOT", "SYS_XQFORMATNUM", "SYS_XQFTCONTAIN", + "SYS_XQFUNCR", "SYS_XQGETCONTENT", "SYS_XQINDXOF", + "SYS_XQINSERT", "SYS_XQINSPFX", "SYS_XQIRI2URI", + "SYS_XQLANG", "SYS_XQLLNMFRMQNM", "SYS_XQMKNODEREF", + "SYS_XQNILLED", "SYS_XQNODENAME", "SYS_XQNORMSPACE", + "SYS_XQNORMUCODE", "SYS_XQ_NRNG", "SYS_XQNSP4PFX", + "SYS_XQNSPFRMQNM", "SYS_XQPFXFRMQNM", "SYS_XQ_PKSQL2XML", + "SYS_XQPOLYABS", "SYS_XQPOLYADD", "SYS_XQPOLYCEL", + "SYS_XQPOLYCSTBL", "SYS_XQPOLYCST", "SYS_XQPOLYDIV", + "SYS_XQPOLYFLR", "SYS_XQPOLYMOD", "SYS_XQPOLYMUL", + "SYS_XQPOLYRND", "SYS_XQPOLYSQRT", "SYS_XQPOLYSUB", + "SYS_XQPOLYUMUS", "SYS_XQPOLYUPLS", "SYS_XQPOLYVEQ", + "SYS_XQPOLYVGE", "SYS_XQPOLYVGT", "SYS_XQPOLYVLE", + "SYS_XQPOLYVLT", "SYS_XQPOLYVNE", "SYS_XQREF2VAL", + "SYS_XQRENAME", "SYS_XQREPLACE", "SYS_XQRESVURI", + "SYS_XQRNDHALF2EVN", "SYS_XQRSLVQNM", "SYS_XQRYENVPGET", + "SYS_XQRYVARGET", "SYS_XQRYWRP", "SYS_XQSEQ2CON4XC", + "SYS_XQSEQ2CON", "SYS_XQSEQDEEPEQ", "SYS_XQSEQINSB", + "SYS_XQSEQRM", "SYS_XQSEQRVS", "SYS_XQSEQSUB", + "SYS_XQSEQTYPMATCH", "SYS_XQSTARTSWITH", "SYS_XQSTATBURI", + "SYS_XQSTR2CODEP", "SYS_XQSTRJOIN", "SYS_XQSUBSTRAFT", + "SYS_XQSUBSTRBEF", "SYS_XQTOKENIZE", "SYS_XQTREATAS", + "SYS_XQ_UPKXML2SQL", "SYS_XQXFORM", "SYS_XSID_TO_RAW", + "SYS_ZMAP_FILTER", "SYS_ZMAP_REFRESH", "T_LETTER", + "TABLE_LOOKUP_BY_NL", "TABLESPACE_NO", "TABLESPACE", + "TABLES", "TABLE_STATS", "TABLE", "TABNO", + "TAG", "TANH", "TAN", "TBLORIDXPARTNUM", "TEMPFILE", + "TEMPLATE", "TEMPLATE_TABLE", "TEMPORARY", + "TEMP_TABLE", "TERMINATED", "TEST", "TEXT", + "TEXTFILE", "THAN", "THEN", "THE", "THESE", + "THREAD", "THROUGH", "TIER", "TIES", "TIMEOUT", + "TIMESTAMP_LTZ_UNCONSTRAINED", "TIMESTAMP", + "TIMESTAMP_TZ_UNCONSTRAINED", "TIMESTAMP_UNCONSTRAINED", + "TIMES", "TIME", "TIMEZONE", "TIMEZONE_ABBR", + "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TIMEZONE_OFFSET", + "TIMEZONE_REGION", "TIME_ZONE", "TIMING", "TINYINT", + "TIV_GB", "TIV_SSF", "TO_ACLID", "TO_BINARY_DOUBLE", + "TO_BINARY_FLOAT", "TO_BLOB", "TO_CLOB", "TO_DSINTERVAL", + "TO_LOB", "TO_MULTI_BYTE", "TO_NCHAR", "TO_NCLOB", + "TO_NUMBER", "TOPLEVEL", "TO_SINGLE_BYTE", + "TO_TIMESTAMP", "TO_TIMESTAMP_TZ", "TO_TIME", + "TO_TIME_TZ", "TO", "TO_YMINTERVAL", "TRACE", + "TRACING", "TRACKING", "TRAILING", "TRANSACTION", + "TRANSFORM", "TRANSFORMS", "TRANSFORM_DISTINCT_AGG", + "TRANSITIONAL", "TRANSITION", "TRANSLATE", + "TRANSLATION", "TREAT", "TRIGGERS", "TRIGGER", + "TRUE", "TRUNCATE", "TRUNC", "TRUSTED", "TRUST", + "TUNING", "TX", "TYPES", "TYPE", "TZ_OFFSET", + "UB2", "UBA", "UCS2", "UDF", "UID", "UNARCHIVED", + "UNBOUNDED", "UNBOUND", "UNCONDITIONAL", "UNDER", + "UNDO", "UNDROP", "UNIFORM", "UNION", "UNIONTYPE", + "UNIQUE", "UNISTR", "UNLIMITED", "UNLOAD", + "UNLOCK", "UNMATCHED", "UNNEST_INNERJ_DISTINCT_VIEW", + "UNNEST_NOSEMIJ_NODISTINCTVIEW", "UNNEST_SEMIJ_VIEW", + "UNNEST", "UNPACKED", "UNPIVOT", "UNPLUG", + "UNPROTECTED", "UNQUIESCE", "UNRECOVERABLE", + "UNRESTRICTED", "UNSIGNED", "UNSUBSCRIBE", + "UNTIL", "UNUSABLE", "UNUSED", "UPDATABLE", + "UPDATED", "UPDATE", "UPDATEXML", "UPD_INDEXES", + "UPD_JOININDEX", "UPGRADE", "UPPER", "UPSERT", + "UROWID", "USABLE", "USAGE", "USE_ANTI", "USE_CONCAT", + "USE_CUBE", "USE_HASH_AGGREGATION", "USE_HASH_GBY_FOR_PUSHDOWN", + "USE_HASH", "USE_HIDDEN_PARTITIONS", "USE_INVISIBLE_INDEXES", + "USE_MERGE_CARTESIAN", "USE_MERGE", "USE_NL", + "USE_NL_WITH_INDEX", "USE_PRIVATE_OUTLINES", + "USER_DATA", "USER_DEFINED", "USERENV", "USERGROUP", + "USER_RECYCLEBIN", "USERS", "USER_TABLESPACES", + "USER", "USE_SEMI", "USE_STORED_OUTLINES", + "USE_TTT_FOR_GSETS", "USE", "USE_VECTOR_AGGREGATION", + "USE_WEAK_NAME_RESL", "USING_NO_EXPAND", "USING_NLS_COMP", + "USING", "UTF16BE", "UTF16LE", "UTF32", "UTF8", + "V1", "V2", "VALIDATE", "VALIDATE_CONVERSION", + "VALIDATION", "VALID_TIME_END", "VALUES", "VALUE", + "VARCHAR2", "VARCHAR", "VARCHARC", "VARIABLE", + "VARRAW", "VARRAWC", "VAR_POP", "VARRAYS", + "VARRAY", "VAR_SAMP", "VARYING", "VECTOR_READ_TRACE", + "VECTOR_READ", "VECTOR_TRANSFORM_DIMS", "VECTOR_TRANSFORM_FACT", + "VECTOR_TRANSFORM", "VERIFIER", "VERIFY", "VERSIONING", + "VERSIONS_ENDSCN", "VERSIONS_ENDTIME", "VERSIONS_OPERATION", + "VERSIONS_STARTSCN", "VERSIONS_STARTTIME", + "VERSIONS", "VERSIONS_XID", "VERSION", "VIEW", + "VIOLATION", "VIRTUAL", "VISIBILITY", "VISIBLE", + "VOLUME", "VSIZE", "WAIT", "WALLET", "WARNING", + "WEEKS", "WEEK", "WELLFORMED", "WHENEVER", + "WHEN", "WHERE", "WHILE", "WHITESPACE", "WIDTH_BUCKET", + "WITHIN", "WITHOUT", "WITH_PLSQL", "WITH", + "WORK", "WORKERID", "WRAPPED", "WRAPPER", "WRITE", + "XDB_FASTPATH_INSERT", "XDB", "X_DYN_PRUNE", + "XID", "XML2OBJECT", "XMLAGG", "XMLATTRIBUTES", + "XMLCAST", "XMLCDATA", "XMLCOLATTVAL", "XMLCOMMENT", + "XMLCONCAT", "XMLDIFF", "XML_DML_RWT_STMT", + "XMLELEMENT", "XMLEXISTS2", "XMLEXISTS", "XMLFOREST", + "XMLINDEX", "XMLINDEX_REWRITE_IN_SELECT", "XMLINDEX_REWRITE", + "XMLINDEX_SEL_IDX_TBL", "XMLISNODE", "XMLISVALID", + "XMLNAMESPACES", "XMLPARSE", "XMLPATCH", "XMLPI", + "XMLQUERYVAL", "XMLQUERY", "XMLROOT", "XMLSCHEMA", + "XMLSERIALIZE", "XMLTABLE", "XMLTAG", "XMLTRANSFORMBLOB", + "XMLTRANSFORM", "XMLTYPE", "XML", "XPATHTABLE", + "XS_SYS_CONTEXT", "XS", "XTRANSPORT", "YEARS", + "YEAR", "YEAR_TO_MONTH", "YES", "YMINTERVAL_UNCONSTRAINED", + "ZONEMAP", "ZONE", "ZONED", "PREDICTION", "PREDICTION_BOUNDS", + "PREDICTION_COST", "PREDICTION_DETAILS", "PREDICTION_PROBABILITY", + "PREDICTION_SET", "BLOCKCHAIN", "COLLATE", + "COLLATION", "DEFINITION", "DUPLICATED", "EXTENDED", + "HASHING", "IDLE", "IMMUTABLE", "ORACLE_DATAPUMP", + "ORACLE_HDFS", "ORACLE_HIVE", "ORACLE_LOADER", + "SHA2_512_Q", "SHARDED", "V1_Q", "ISOLATE", + "ROOT", "UNITE", "ALGORITHM", "CUME_DIST", + "DENSE_RANK", "LISTAGG", "PERCENT_RANK", "PERCENTILE_CONT", + "PERCENTILE_DISC", "RANK", "AVG", "CORR", "COVAR_", + "DECODE", "LAG", "LAG_DIFF", "LAG_DIFF_PERCENT", + "LEAD", "MAX", "MEDIAN", "MEMOPTIMIZE", "MIN", + "NTILE", "NVL", "RATIO_TO_REPORT", "REGR_", + "ROUND", "ROW_NUMBER", "SUBSTR", "TO_CHAR", + "TRIM", "SUM", "STDDEV", "VAR_", "VARIANCE", + "LEAST", "GREATEST", "TO_DATE", "CHARSETID", + "CHARSETFORM", "DURATION", "EXTEND", "MAXLEN", + "PERSISTABLE", "POLYMORPHIC", "STRUCT", "TDO", + "WM_CONCAT", "NATIONAL_CHAR_STRING_LIT", "BIT_STRING_LIT", + "HEX_STRING_LIT", "DOUBLE_PERIOD", "PERIOD", + "UNSIGNED_INTEGER", "APPROXIMATE_NUM_LIT", + "CHAR_STRING", "DELIMITED_ID", "PERCENT", "AMPERSAND", + "LEFT_PAREN", "RIGHT_PAREN", "DOUBLE_ASTERISK", + "ASTERISK", "PLUS_SIGN", "MINUS_SIGN", "COMMA", + "SOLIDUS", "AT_SIGN", "ASSIGN_OP", "HASH_OP", + "LEFT_CURLY_PAREN", "RIGHT_CURLY_PAREN", "SQ", + "BINDVAR", "NOT_EQUAL_OP", "CARRET_OPERATOR_PART", + "TILDE_OPERATOR_PART", "EXCLAMATION_OPERATOR_PART", + "GREATER_THAN_OP", "LESS_THAN_OP", "COLON", + "SEMICOLON", "BAR", "EQUALS_OP", "LEFT_BRACKET", + "RIGHT_BRACKET", "INTRODUCER", "SINGLE_LINE_COMMENT", + "MULTI_LINE_COMMENT", "REMARK_COMMENT", "PROMPT_MESSAGE", + "START_CMD", "REGULAR_ID", "INQUIRY_DIRECTIVE", + "SPACES" ]; + static ruleNames = [ "sql_script", "unit_statement", "alter_diskgroup", + "add_disk_clause", "drop_disk_clause", "resize_disk_clause", + "replace_disk_clause", "wait_nowait", "rename_disk_clause", + "disk_online_clause", "disk_offline_clause", "timeout_clause", + "rebalance_diskgroup_clause", "phase", "check_diskgroup_clause", + "diskgroup_template_clauses", "qualified_template_clause", + "redundancy_clause", "striping_clause", "force_noforce", + "diskgroup_directory_clauses", "dir_name", "diskgroup_alias_clauses", + "diskgroup_volume_clauses", "add_volume_clause", + "modify_volume_clause", "diskgroup_attributes", + "drop_diskgroup_file_clause", "convert_redundancy_clause", + "usergroup_clauses", "user_clauses", "file_permissions_clause", + "file_owner_clause", "scrub_clause", "quotagroup_clauses", + "property_name", "property_value", "filegroup_clauses", + "add_filegroup_clause", "modify_filegroup_clause", + "move_to_filegroup_clause", "drop_filegroup_clause", + "quorum_regular", "undrop_disk_clause", "diskgroup_availability", + "enable_disable_volume", "drop_function", "alter_flashback_archive", + "alter_hierarchy", "alter_function", "alter_java", + "match_string", "create_function_body", "sql_macro_body", + "parallel_enable_clause", "partition_by_clause", + "result_cache_clause", "accessible_by_clause", + "default_collation_clause", "aggregate_clause", + "pipelined_using_clause", "accessor", "relies_on_part", + "streaming_clause", "alter_outline", "outline_options", + "alter_lockdown_profile", "lockdown_feature", "lockdown_options", + "lockdown_statements", "statement_clauses", "clause_options", + "option_values", "string_list", "disable_enable", + "drop_lockdown_profile", "drop_package", "alter_package", + "create_package", "create_package_body", "package_obj_spec", + "procedure_spec", "function_spec", "package_obj_body", + "alter_pmem_filestore", "drop_pmem_filestore", + "drop_procedure", "alter_procedure", "function_body", + "procedure_body", "create_procedure_body", "alter_resource_cost", + "drop_outline", "alter_rollback_segment", "drop_restore_point", + "drop_rollback_segment", "drop_role", "create_pmem_filestore", + "pmem_filestore_options", "file_path", "create_rollback_segment", + "drop_trigger", "alter_trigger", "create_trigger", + "trigger_follows_clause", "trigger_when_clause", + "simple_dml_trigger", "for_each_row", "compound_dml_trigger", + "non_dml_trigger", "trigger_body", "compound_trigger_block", + "timing_point_section", "non_dml_event", "dml_event_clause", + "dml_event_element", "dml_event_nested_clause", + "referencing_clause", "referencing_element", "drop_type", + "alter_type", "compile_type_clause", "replace_type_clause", + "alter_method_spec", "alter_method_element", "alter_collection_clauses", + "dependent_handling_clause", "dependent_exceptions_part", + "create_type", "type_definition", "object_type_def", + "object_as_part", "object_under_part", "nested_table_type_def", + "sqlj_object_type", "type_body", "type_body_elements", + "map_order_func_declaration", "subprog_decl_in_type", + "proc_decl_in_type", "func_decl_in_type", "constructor_declaration", + "modifier_clause", "object_member_spec", "sqlj_object_type_attr", + "element_spec", "element_spec_options", "subprogram_spec", + "overriding_subprogram_spec", "overriding_function_spec", + "type_procedure_spec", "type_function_spec", "constructor_spec", + "map_order_function_spec", "pragma_clause", "pragma_elements", + "type_elements_parameter", "drop_sequence", "alter_sequence", + "alter_session", "alter_session_set_clause", "create_sequence", + "sequence_spec", "sequence_start_clause", "create_analytic_view", + "classification_clause", "caption_clause", "description_clause", + "classification_item", "language", "cav_using_clause", + "dim_by_clause", "dim_key", "dim_ref", "hier_ref", + "measures_clause", "av_measure", "base_meas_clause", + "meas_aggregate_clause", "calc_meas_clause", "default_measure_clause", + "default_aggregate_clause", "cache_clause", "cache_specification", + "levels_clause", "level_specification", "level_group_type", + "fact_columns_clause", "qry_transform_clause", + "create_attribute_dimension", "ad_using_clause", + "source_clause", "join_path_clause", "join_condition", + "join_condition_item", "attributes_clause", "ad_attributes_clause", + "ad_level_clause", "key_clause", "alternate_key_clause", + "dim_order_clause", "all_clause", "create_audit_policy", + "privilege_audit_clause", "action_audit_clause", + "system_actions", "standard_actions", "actions_clause", + "object_action", "system_action", "component_actions", + "component_action", "role_audit_clause", "create_controlfile", + "controlfile_options", "logfile_clause", "character_set_clause", + "file_specification", "create_diskgroup", "qualified_disk_clause", + "create_edition", "create_flashback_archive", "flashback_archive_quota", + "flashback_archive_retention", "create_hierarchy", + "hier_using_clause", "level_hier_clause", "hier_attrs_clause", + "hier_attr_clause", "hier_attr_name", "create_index", + "cluster_index_clause", "cluster_name", "table_index_clause", + "bitmap_join_index_clause", "index_expr", "index_properties", + "domain_index_clause", "local_domain_index_clause", + "xmlindex_clause", "local_xmlindex_clause", "global_partitioned_index", + "index_partitioning_clause", "index_partitioning_values_list", + "local_partitioned_index", "on_range_partitioned_table", + "on_list_partitioned_table", "partitioned_table", + "on_hash_partitioned_table", "on_hash_partitioned_clause", + "on_comp_partitioned_table", "on_comp_partitioned_clause", + "index_subpartition_clause", "index_subpartition_subclause", + "odci_parameters", "indextype", "alter_index", + "alter_index_ops_set1", "alter_index_ops_set2", + "visible_or_invisible", "monitoring_nomonitoring", + "rebuild_clause", "alter_index_partitioning", "modify_index_default_attrs", + "add_hash_index_partition", "coalesce_index_partition", + "modify_index_partition", "modify_index_partitions_ops", + "rename_index_partition", "drop_index_partition", + "split_index_partition", "index_partition_description", + "modify_index_subpartition", "partition_name_old", + "new_partition_name", "new_index_name", "alter_inmemory_join_group", + "create_user", "alter_user", "drop_user", "alter_identified_by", + "identified_by", "identified_other_clause", "user_tablespace_clause", + "quota_clause", "profile_clause", "role_clause", + "user_default_role_clause", "password_expire_clause", + "user_lock_clause", "user_editions_clause", "alter_user_editions_clause", + "proxy_clause", "container_names", "set_container_data", + "add_rem_container_data", "container_data_clause", + "administer_key_management", "keystore_management_clauses", + "create_keystore", "open_keystore", "force_keystore", + "close_keystore", "backup_keystore", "alter_keystore_password", + "merge_into_new_keystore", "merge_into_existing_keystore", + "isolate_keystore", "unite_keystore", "key_management_clauses", + "set_key", "create_key", "mkid", "mk", "use_key", + "set_key_tag", "export_keys", "import_keys", "migrate_keys", + "reverse_migrate_keys", "move_keys", "identified_by_store", + "using_algorithm_clause", "using_tag_clause", "secret_management_clauses", + "add_update_secret", "delete_secret", "add_update_secret_seps", + "delete_secret_seps", "zero_downtime_software_patching_clauses", + "with_backup_clause", "identified_by_password_clause", + "keystore_password", "path", "secret", "analyze", + "partition_extention_clause", "validation_clauses", + "compute_clauses", "for_clause", "online_or_offline", + "into_clause1", "partition_key_value", "subpartition_key_value", + "associate_statistics", "column_association", "function_association", + "indextype_name", "using_statistics_type", "statistics_type_name", + "default_cost_clause", "cpu_cost", "io_cost", "network_cost", + "default_selectivity_clause", "default_selectivity", + "storage_table_clause", "unified_auditing", "policy_name", + "audit_traditional", "audit_direct_path", "audit_container_clause", + "audit_operation_clause", "auditing_by_clause", + "audit_user", "audit_schema_object_clause", "sql_operation", + "auditing_on_clause", "model_name", "object_name", + "profile_name", "sql_statement_shortcut", "drop_index", + "disassociate_statistics", "drop_indextype", "drop_inmemory_join_group", + "flashback_table", "restore_point", "purge_statement", + "noaudit_statement", "rename_object", "grant_statement", + "container_clause", "revoke_statement", "revoke_system_privilege", + "revokee_clause", "revoke_object_privileges", "on_object_clause", + "revoke_roles_from_programs", "program_unit", "create_dimension", + "create_directory", "directory_name", "directory_path", + "create_inmemory_join_group", "drop_hierarchy", + "alter_library", "drop_java", "drop_library", "create_java", + "create_library", "plsql_library_source", "credential_name", + "library_editionable", "library_debug", "compiler_parameters_clause", + "parameter_value", "library_name", "alter_dimension", + "level_clause", "hierarchy_clause", "dimension_join_clause", + "attribute_clause", "extended_attribute_clause", + "column_one_or_more_sub_clause", "alter_view", + "alter_view_editionable", "create_view", "editioning_clause", + "view_options", "view_alias_constraint", "object_view_clause", + "inline_constraint", "inline_ref_constraint", "out_of_line_ref_constraint", + "out_of_line_constraint", "constraint_state", "xmltype_view_clause", + "xml_schema_spec", "xml_schema_url", "element", + "alter_tablespace", "datafile_tempfile_clauses", + "tablespace_logging_clauses", "tablespace_group_clause", + "tablespace_group_name", "tablespace_state_clauses", + "flashback_mode_clause", "new_tablespace_name", + "create_tablespace", "permanent_tablespace_clause", + "tablespace_encryption_spec", "logging_clause", + "extent_management_clause", "segment_management_clause", + "temporary_tablespace_clause", "undo_tablespace_clause", + "tablespace_retention_clause", "create_tablespace_set", + "permanent_tablespace_attrs", "tablespace_encryption_clause", + "default_tablespace_params", "default_table_compression", + "low_high", "default_index_compression", "inmmemory_clause", + "datafile_specification", "tempfile_specification", + "datafile_tempfile_spec", "redo_log_file_spec", + "autoextend_clause", "maxsize_clause", "build_clause", + "parallel_clause", "parallel_instances_clause", + "alter_materialized_view", "alter_mv_option1", + "alter_mv_refresh", "rollback_segment", "modify_mv_column_clause", + "alter_materialized_view_log", "add_mv_log_column_clause", + "move_mv_log_clause", "mv_log_augmentation", "create_materialized_view_log", + "new_values_clause", "mv_log_purge_clause", "create_materialized_zonemap", + "alter_materialized_zonemap", "drop_materialized_zonemap", + "zonemap_refresh_clause", "zonemap_attributes", + "zonemap_name", "operator_name", "operator_function_name", + "create_zonemap_on_table", "create_zonemap_as_subquery", + "alter_operator", "drop_operator", "create_operator", + "binding_clause", "add_binding_clause", "implementation_clause", + "primary_operator_list", "primary_operator_item", + "operator_context_clause", "using_function_clause", + "drop_binding_clause", "create_materialized_view", + "scoped_table_ref_constraint", "mv_column_alias", + "create_mv_refresh", "drop_materialized_view", + "drop_materialized_view_log", "create_context", + "oracle_namespace", "create_cluster", "create_profile", + "resource_parameters", "password_parameters", "create_lockdown_profile", + "static_base_profile", "dynamic_base_profile", + "create_outline", "create_restore_point", "create_role", + "create_table", "xmltype_table", "xmltype_virtual_columns", + "xmltype_column_properties", "xmltype_storage", + "xmlschema_spec", "object_table", "object_type", + "oid_index_clause", "oid_clause", "object_properties", + "object_table_substitution", "relational_table", + "relational_table_properties", "relational_table_property", + "immutable_table_clauses", "immutable_table_no_drop_clause", + "immutable_table_no_delete_clause", "blockchain_table_clauses", + "blockchain_drop_table_clause", "blockchain_row_retention_clause", + "blockchain_hash_and_data_format_clause", "collation_name", + "table_properties", "read_only_clause", "indexing_clause", + "attribute_clustering_clause", "clustering_join", + "clustering_join_item", "equijoin_condition", "cluster_clause", + "clustering_columns", "clustering_column_group", + "yes_no", "zonemap_clause", "logical_replication_clause", + "table_name", "relational_property", "table_partitioning_clauses", + "range_partitions", "list_partitions", "hash_partitions", + "individual_hash_partitions", "hash_partitions_by_quantity", + "hash_partition_quantity", "composite_range_partitions", + "composite_list_partitions", "composite_hash_partitions", + "reference_partitioning", "reference_partition_desc", + "system_partitioning", "range_partition_desc", + "list_partition_desc", "subpartition_template", + "hash_subpartition_quantity", "subpartition_by_range", + "subpartition_by_list", "subpartition_by_hash", + "subpartition_name", "range_subpartition_desc", + "list_subpartition_desc", "individual_hash_subparts", + "hash_subparts_by_quantity", "range_values_clause", + "range_values_list", "list_values_clause", "table_partition_description", + "partitioning_storage_clause", "lob_partitioning_storage", + "size_clause", "table_compression", "inmemory_table_clause", + "inmemory_attributes", "inmemory_memcompress", + "inmemory_priority", "inmemory_distribute", "inmemory_duplicate", + "inmemory_column_clause", "physical_attributes_clause", + "storage_clause", "deferred_segment_creation", + "segment_attributes_clause", "physical_properties", + "ilm_clause", "ilm_policy_clause", "ilm_compression_policy", + "ilm_tiering_policy", "ilm_after_on", "segment_group", + "ilm_inmemory_policy", "ilm_time_period", "heap_org_table_clause", + "external_table_clause", "access_driver_type", + "external_table_data_props", "external_table_data_format", + "external_table_transform", "external_table_field", + "external_table_field_list", "external_table_fields_clause", + "external_table_position_clause", "external_table_datatype_clause", + "external_table_delimit_clause", "external_table_trim_clause", + "external_table_date_format_clause", "external_table_init_clause", + "external_table_condition_clause", "external_table_lls_clause", + "external_table_records", "external_table_record_options_clause", + "external_table_output_files", "external_table_fields", + "external_table_datapump", "external_table_hive", + "external_table_hive_parameter_map", "external_table_hive_parameter_map_entry", + "external_table_directory", "row_movement_clause", + "flashback_archive_clause", "log_grp", "supplemental_table_logging", + "supplemental_log_grp_clause", "supplemental_id_key_clause", + "allocate_extent_clause", "deallocate_unused_clause", + "shrink_clause", "records_per_block_clause", "upgrade_table_clause", + "truncate_table", "drop_table", "drop_tablespace", + "drop_tablespace_set", "including_contents_clause", + "drop_view", "comment_on_column", "enable_or_disable", + "allow_or_disallow", "alter_synonym", "create_synonym", + "drop_synonym", "create_spfile", "spfile_name", + "pfile_name", "comment_on_table", "comment_on_materialized", + "alter_analytic_view", "alter_add_cache_clause", + "levels_item", "measure_list", "alter_drop_cache_clause", + "alter_attribute_dimension", "alter_audit_policy", + "alter_cluster", "drop_analytic_view", "drop_attribute_dimension", + "drop_audit_policy", "drop_flashback_archive", + "drop_cluster", "drop_context", "drop_directory", + "drop_diskgroup", "drop_edition", "truncate_cluster", + "cache_or_nocache", "database_name", "alter_database", + "database_clause", "startup_clauses", "resetlogs_or_noresetlogs", + "upgrade_or_downgrade", "recovery_clauses", "begin_or_end", + "general_recovery", "full_database_recovery", "partial_database_recovery", + "partial_database_recovery_10g", "managed_standby_recovery", + "db_name", "database_file_clauses", "create_datafile_clause", + "alter_datafile_clause", "alter_tempfile_clause", + "move_datafile_clause", "logfile_clauses", "add_logfile_clauses", + "group_redo_logfile", "drop_logfile_clauses", "switch_logfile_clause", + "supplemental_db_logging", "add_or_drop", "supplemental_plsql_clause", + "logfile_descriptor", "controlfile_clauses", "trace_file_clause", + "standby_database_clauses", "activate_standby_db_clause", + "maximize_standby_db_clause", "register_logfile_clause", + "commit_switchover_clause", "start_standby_clause", + "stop_standby_clause", "convert_database_clause", + "default_settings_clause", "set_time_zone_clause", + "instance_clauses", "security_clause", "domain", + "database", "edition_name", "filenumber", "filename", + "prepare_clause", "drop_mirror_clause", "lost_write_protection", + "cdb_fleet_clauses", "lead_cdb_clause", "lead_cdb_uri_clause", + "property_clauses", "replay_upgrade_clauses", "alter_database_link", + "password_value", "link_authentication", "create_schema", + "create_database", "database_logging_clauses", + "database_logging_sub_clause", "tablespace_clauses", + "enable_pluggable_database", "file_name_convert", + "filename_convert_sub_clause", "tablespace_datafile_clauses", + "undo_mode_clause", "default_tablespace", "default_temp_tablespace", + "undo_tablespace", "drop_database", "create_database_link", + "drop_database_link", "alter_tablespace_set", "alter_tablespace_attrs", + "alter_tablespace_encryption", "ts_file_name_convert", + "alter_role", "role_identified_clause", "alter_table", + "memoptimize_read_write_clause", "alter_table_properties", + "alter_table_partitioning", "add_table_partition", + "drop_table_partition", "merge_table_partition", + "modify_table_partition", "split_table_partition", + "truncate_table_partition", "exchange_table_partition", + "coalesce_table_partition", "alter_interval_partition", + "move_table_partition", "filter_condition", "partition_extended_names", + "subpartition_extended_names", "alter_table_properties_1", + "alter_iot_clauses", "alter_mapping_table_clause", + "alter_overflow_clause", "add_overflow_clause", + "update_index_clauses", "update_global_index_clause", + "update_all_indexes_clause", "update_all_indexes_index_clause", + "update_index_partition", "update_index_subpartition", + "enable_disable_clause", "using_index_clause", + "index_attributes", "sort_or_nosort", "exceptions_clause", + "move_table_clause", "index_org_table_clause", + "mapping_table_clause", "key_compression", "index_org_overflow_clause", + "column_clauses", "modify_collection_retrieval", + "collection_item", "rename_column_clause", "old_column_name", + "new_column_name", "add_modify_drop_column_clauses", + "drop_column_clause", "modify_column_clauses", + "modify_col_properties", "modify_col_visibility", + "modify_col_substitutable", "add_column_clause", + "varray_col_properties", "varray_storage_clause", + "lob_segname", "lob_item", "lob_storage_parameters", + "lob_storage_clause", "modify_lob_storage_clause", + "modify_lob_parameters", "lob_parameters", "lob_deduplicate_clause", + "lob_compression_clause", "lob_retention_clause", + "encryption_spec", "tablespace", "varray_item", + "column_properties", "lob_partition_storage", "period_definition", + "start_time_column", "end_time_column", "column_definition", + "column_collation_name", "identity_clause", "identity_options_parentheses", + "identity_options", "virtual_column_definition", + "virtual_column_expression", "autogenerated_sequence_definition", + "by_user_for_statistics_clause", "evaluation_edition_clause", + "nested_table_col_properties", "nested_item", "substitutable_column_clause", + "partition_name", "supplemental_logging_props", + "object_type_col_properties", "constraint_clauses", + "old_constraint_name", "new_constraint_name", "drop_constraint_clause", + "check_constraint", "foreign_key_clause", "references_clause", + "on_delete_clause", "anonymous_block", "invoker_rights_clause", + "call_spec", "java_spec", "c_spec", "c_agent_in_clause", + "c_parameters_clause", "c_external_parameter", + "c_property", "parameter", "default_value_part", + "seq_of_declare_specs", "declare_spec", "variable_declaration", + "subtype_declaration", "cursor_declaration", "parameter_spec", + "exception_declaration", "pragma_declaration", + "record_type_def", "field_spec", "ref_cursor_type_def", + "type_declaration", "table_type_def", "table_indexed_by_part", + "varray_type_def", "seq_of_statements", "label_declaration", + "statement", "assignment_statement", "continue_statement", + "exit_statement", "goto_statement", "if_statement", + "elsif_part", "else_part", "loop_statement", "cursor_loop_param", + "forall_statement", "bounds_clause", "between_bound", + "lower_bound", "upper_bound", "null_statement", + "raise_statement", "return_statement", "call_statement", + "pipe_row_statement", "selection_directive", "error_directive", + "selection_directive_body", "body", "exception_handler", + "trigger_block", "tps_block", "block", "sql_statement", + "execute_immediate", "dynamic_returning_clause", + "data_manipulation_language_statements", "cursor_manipulation_statements", + "close_statement", "open_statement", "fetch_statement", + "variable_or_collection", "open_for_statement", + "transaction_control_statements", "set_transaction_command", + "set_constraint_command", "commit_statement", "write_clause", + "rollback_statement", "savepoint_statement", "collection_method_call", + "explain_statement", "select_only_statement", "select_statement", + "with_clause", "with_factoring_clause", "subquery_factoring_clause", + "search_clause", "cycle_clause", "subav_factoring_clause", + "subav_clause", "hierarchies_clause", "filter_clauses", + "filter_clause", "add_calcs_clause", "add_calc_meas_clause", + "subquery", "subquery_basic_elements", "subquery_operation_part", + "query_block", "selected_list", "from_clause", + "select_list_elements", "table_ref_list", "table_ref", + "table_ref_aux", "table_ref_aux_internal", "join_clause", + "join_on_part", "join_using_part", "outer_join_type", + "query_partition_clause", "flashback_query_clause", + "pivot_clause", "pivot_element", "pivot_for_clause", + "pivot_in_clause", "pivot_in_clause_element", "pivot_in_clause_elements", + "unpivot_clause", "unpivot_in_clause", "unpivot_in_elements", + "hierarchical_query_clause", "start_part", "group_by_clause", + "group_by_elements", "rollup_cube_clause", "grouping_sets_clause", + "grouping_sets_elements", "having_clause", "model_clause", + "cell_reference_options", "return_rows_clause", + "reference_model", "main_model", "model_column_clauses", + "model_column_partition_part", "model_column_list", + "model_column", "model_rules_clause", "model_rules_part", + "model_rules_element", "cell_assignment", "model_iterate_clause", + "until_part", "order_by_clause", "order_by_elements", + "offset_clause", "fetch_clause", "for_update_clause", + "for_update_of_part", "for_update_options", "update_statement", + "update_set_clause", "column_based_update_set_clause", + "delete_statement", "insert_statement", "single_table_insert", + "multi_table_insert", "multi_table_element", "conditional_insert_clause", + "conditional_insert_when_part", "conditional_insert_else_part", + "insert_into_clause", "values_clause", "merge_statement", + "merge_update_clause", "merge_element", "merge_update_delete_part", + "merge_insert_clause", "selected_tableview", "lock_table_statement", + "wait_nowait_part", "lock_table_element", "lock_mode", + "general_table_ref", "static_returning_clause", + "error_logging_clause", "error_logging_into_part", + "error_logging_reject_part", "dml_table_expression_clause", + "table_collection_expression", "subquery_restriction_clause", + "sample_clause", "seed_part", "condition", "expressions_", + "expression", "cursor_expression", "logical_expression", + "unary_logical_expression", "unary_logical_operation", + "logical_operation", "multiset_expression", "relational_expression", + "compound_expression", "relational_operator", "in_elements", + "between_elements", "concatenation", "interval_expression", + "model_expression", "model_expression_element", + "single_column_for_loop", "multi_column_for_loop", + "unary_expression", "implicit_cursor_expression", + "collection_expression", "case_statement", "simple_case_statement", + "searched_case_statement", "case_when_part_statement", + "case_else_part_statement", "case_expression", + "simple_case_expression", "searched_case_expression", + "case_when_part_expression", "case_else_part_expression", + "atom", "quantified_expression", "string_function", + "standard_function", "json_function", "json_object_content", + "json_object_entry", "json_table_clause", "json_array_element", + "json_on_null_clause", "json_return_clause", "json_transform_op", + "json_column_clause", "json_column_definition", + "json_query_returning_clause", "json_query_return_type", + "json_query_wrapper_clause", "json_query_on_error_clause", + "json_query_on_empty_clause", "json_value_return_clause", + "json_value_return_type", "json_value_on_mismatch_clause", + "literal", "numeric_function_wrapper", "numeric_function", + "listagg_overflow_clause", "other_function", "over_clause_keyword", + "within_or_over_clause_keyword", "standard_prediction_function_keyword", + "over_clause", "windowing_clause", "windowing_type", + "windowing_elements", "using_clause", "using_element", + "collect_order_by_part", "within_or_over_part", + "string_delimiter", "cost_matrix_clause", "xml_passing_clause", + "xml_attributes_clause", "xml_namespaces_clause", + "xml_table_column", "xml_general_default_part", + "xml_multiuse_expression_element", "xmlroot_param_version_part", + "xmlroot_param_standalone_part", "xmlserialize_param_enconding_part", + "xmlserialize_param_version_part", "xmlserialize_param_ident_part", + "annotations_clause", "annotations_list", "annotation", + "sql_plus_command_no_semicolon", "sql_plus_command", + "start_command", "whenever_command", "set_command", + "timing_command", "clear_command", "partition_extension_clause", + "column_alias", "table_alias", "where_clause", + "into_clause", "xml_column_name", "cost_class_name", + "attribute_name", "savepoint_name", "rollback_segment_name", + "schema_name", "routine_name", "package_name", + "implementation_type_name", "parameter_name", "reference_model_name", + "main_model_name", "container_tableview_name", + "aggregate_function_name", "query_name", "grantee_name", + "role_name", "constraint_name", "label_name", "type_name", + "sequence_name", "exception_name", "function_name", + "procedure_name", "trigger_name", "variable_name", + "index_name", "cursor_name", "record_name", "link_name", + "local_link_name", "connection_qualifier", "column_name", + "tableview_name", "xmltable", "char_set_name", + "synonym_name", "schema_object_name", "dir_object_name", + "user_object_name", "grant_object_name", "column_list", + "paren_column_list", "keep_clause", "function_argument", + "function_argument_analytic", "function_argument_modeling", + "respect_or_ignore_nulls", "argument", "type_spec", + "datatype", "precision_part", "native_datatype_element", + "bind_variable", "general_element", "general_element_part", + "table_element", "object_privilege", "system_privilege", + "constant", "numeric", "numeric_negative", "quoted_string", + "identifier", "id_expression", "inquiry_directive", + "outer_join_sign", "regular_id", "non_reserved_keywords_in_18c", + "non_reserved_keywords_in_12c", "non_reserved_keywords_pre12c" ]; + + constructor(input) { + super(input); + this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); + this.ruleNames = OracleSqlParser.ruleNames; + this.literalNames = OracleSqlParser.literalNames; + this.symbolicNames = OracleSqlParser.symbolicNames; + } + + sempred(localctx, ruleIndex, predIndex) { + switch(ruleIndex) { + case 357: + return this.unified_auditing_sempred(localctx, predIndex); + case 360: + return this.audit_direct_path_sempred(localctx, predIndex); + case 361: + return this.audit_container_clause_sempred(localctx, predIndex); + case 367: + return this.auditing_on_clause_sempred(localctx, predIndex); + case 371: + return this.sql_statement_shortcut_sempred(localctx, predIndex); + case 403: + return this.library_editionable_sempred(localctx, predIndex); + case 404: + return this.library_debug_sempred(localctx, predIndex); + case 416: + return this.alter_view_editionable_sempred(localctx, predIndex); + case 622: + return this.external_table_condition_clause_sempred(localctx, predIndex); + case 691: + return this.partial_database_recovery_10g_sempred(localctx, predIndex); + case 828: + return this.period_definition_sempred(localctx, predIndex); + case 1028: + return this.dml_table_expression_clause_sempred(localctx, predIndex); + case 1037: + return this.logical_expression_sempred(localctx, predIndex); + case 1041: + return this.multiset_expression_sempred(localctx, predIndex); + case 1042: + return this.relational_expression_sempred(localctx, predIndex); + case 1047: + return this.concatenation_sempred(localctx, predIndex); + case 1053: + return this.unary_expression_sempred(localctx, predIndex); + case 1104: + return this.string_delimiter_sempred(localctx, predIndex); + case 1186: + return this.general_element_sempred(localctx, predIndex); + default: + throw "No predicate with index:" + ruleIndex; + } + } + + unified_auditing_sempred(localctx, predIndex) { + switch(predIndex) { + case 0: + return this.isVersion12(); + default: + throw "No predicate with index:" + predIndex; + } + }; + + audit_direct_path_sempred(localctx, predIndex) { + switch(predIndex) { + case 1: + return this.isVersion12(); + default: + throw "No predicate with index:" + predIndex; + } + }; + + audit_container_clause_sempred(localctx, predIndex) { + switch(predIndex) { + case 2: + return this.isVersion12(); + default: + throw "No predicate with index:" + predIndex; + } + }; + + auditing_on_clause_sempred(localctx, predIndex) { + switch(predIndex) { + case 3: + return this.isVersion12(); + default: + throw "No predicate with index:" + predIndex; + } + }; + + sql_statement_shortcut_sempred(localctx, predIndex) { + switch(predIndex) { + case 4: + return this.isVersion12(); + default: + throw "No predicate with index:" + predIndex; + } + }; + + library_editionable_sempred(localctx, predIndex) { + switch(predIndex) { + case 5: + return this.isVersion12(); + default: + throw "No predicate with index:" + predIndex; + } + }; + + library_debug_sempred(localctx, predIndex) { + switch(predIndex) { + case 6: + return this.isVersion12(); + default: + throw "No predicate with index:" + predIndex; + } + }; + + alter_view_editionable_sempred(localctx, predIndex) { + switch(predIndex) { + case 7: + return this.isVersion12(); + default: + throw "No predicate with index:" + predIndex; + } + }; + + external_table_condition_clause_sempred(localctx, predIndex) { + switch(predIndex) { + case 8: + return this.precpred(this._ctx, 1); + default: + throw "No predicate with index:" + predIndex; + } + }; + + partial_database_recovery_10g_sempred(localctx, predIndex) { + switch(predIndex) { + case 9: + return this.isVersion10(); + default: + throw "No predicate with index:" + predIndex; + } + }; + + period_definition_sempred(localctx, predIndex) { + switch(predIndex) { + case 10: + return this.isVersion12(); + default: + throw "No predicate with index:" + predIndex; + } + }; + + dml_table_expression_clause_sempred(localctx, predIndex) { + switch(predIndex) { + case 11: + return this.isVersion11(); + default: + throw "No predicate with index:" + predIndex; + } + }; + + logical_expression_sempred(localctx, predIndex) { + switch(predIndex) { + case 12: + return this.precpred(this._ctx, 2); + case 13: + return this.precpred(this._ctx, 1); + default: + throw "No predicate with index:" + predIndex; + } + }; + + multiset_expression_sempred(localctx, predIndex) { + switch(predIndex) { + case 14: + return this.precpred(this._ctx, 1); + default: + throw "No predicate with index:" + predIndex; + } + }; + + relational_expression_sempred(localctx, predIndex) { + switch(predIndex) { + case 15: + return this.precpred(this._ctx, 3); + case 16: + return this.precpred(this._ctx, 2); + default: + throw "No predicate with index:" + predIndex; + } + }; + + concatenation_sempred(localctx, predIndex) { + switch(predIndex) { + case 17: + return this.precpred(this._ctx, 5); + case 18: + return this.precpred(this._ctx, 4); + case 19: + return this.precpred(this._ctx, 3); + case 20: + return this.precpred(this._ctx, 2); + case 21: + return this.precpred(this._ctx, 1); + default: + throw "No predicate with index:" + predIndex; + } + }; + + unary_expression_sempred(localctx, predIndex) { + switch(predIndex) { + case 22: + return this.precpred(this._ctx, 5); + default: + throw "No predicate with index:" + predIndex; + } + }; + + string_delimiter_sempred(localctx, predIndex) { + switch(predIndex) { + case 23: + return this.precpred(this._ctx, 3); + default: + throw "No predicate with index:" + predIndex; + } + }; + + general_element_sempred(localctx, predIndex) { + switch(predIndex) { + case 24: + return this.precpred(this._ctx, 2); + default: + throw "No predicate with index:" + predIndex; + } + }; + + + + + sql_script() { + let localctx = new Sql_scriptContext(this, this._ctx, this.state); + this.enterRule(localctx, 0, OracleSqlParser.RULE_sql_script); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2407; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,0,this._ctx); + if(la_===1) { + this.state = 2406; + this.sql_plus_command_no_semicolon(); + + } + this.state = 2436; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,9,this._ctx); + if(la_===1) { + this.state = 2423; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,5,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 2421; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,4,this._ctx); + switch(la_) { + case 1: + this.state = 2409; + this.sql_plus_command(); + this.state = 2411; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1,this._ctx); + if(la_===1) { + this.state = 2410; + this.match(OracleSqlParser.SEMICOLON); + + } + this.state = 2414; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2,this._ctx); + if(la_===1) { + this.state = 2413; + this.match(OracleSqlParser.SOLIDUS); + + } + break; + + case 2: + this.state = 2416; + this.unit_statement(); + this.state = 2417; + this.match(OracleSqlParser.SEMICOLON); + this.state = 2419; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,3,this._ctx); + if(la_===1) { + this.state = 2418; + this.match(OracleSqlParser.SOLIDUS); + + } + break; + + } + } + this.state = 2425; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,5,this._ctx); + } + + this.state = 2428; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,6,this._ctx); + switch(la_) { + case 1: + this.state = 2426; + this.sql_plus_command(); + break; + + case 2: + this.state = 2427; + this.unit_statement(); + break; + + } + this.state = 2431; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2467) { + this.state = 2430; + this.match(OracleSqlParser.SEMICOLON); + } + + this.state = 2434; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2452) { + this.state = 2433; + this.match(OracleSqlParser.SOLIDUS); + } + + + } + this.state = 2438; + this.match(OracleSqlParser.EOF); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + unit_statement() { + let localctx = new Unit_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2, OracleSqlParser.RULE_unit_statement); + try { + this.state = 2581; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,10,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 2440; + this.alter_analytic_view(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 2441; + this.alter_attribute_dimension(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 2442; + this.alter_audit_policy(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 2443; + this.alter_cluster(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 2444; + this.alter_database(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 2445; + this.alter_database_link(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 2446; + this.alter_dimension(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 2447; + this.alter_diskgroup(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 2448; + this.alter_flashback_archive(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 2449; + this.alter_function(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 2450; + this.alter_hierarchy(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 2451; + this.alter_index(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 2452; + this.alter_inmemory_join_group(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 2453; + this.alter_java(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 2454; + this.alter_library(); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 2455; + this.alter_lockdown_profile(); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 2456; + this.alter_materialized_view(); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 2457; + this.alter_materialized_view_log(); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 2458; + this.alter_materialized_zonemap(); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 2459; + this.alter_operator(); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 2460; + this.alter_outline(); + break; + + case 22: + this.enterOuterAlt(localctx, 22); + this.state = 2461; + this.alter_package(); + break; + + case 23: + this.enterOuterAlt(localctx, 23); + this.state = 2462; + this.alter_pmem_filestore(); + break; + + case 24: + this.enterOuterAlt(localctx, 24); + this.state = 2463; + this.alter_procedure(); + break; + + case 25: + this.enterOuterAlt(localctx, 25); + this.state = 2464; + this.alter_resource_cost(); + break; + + case 26: + this.enterOuterAlt(localctx, 26); + this.state = 2465; + this.alter_role(); + break; + + case 27: + this.enterOuterAlt(localctx, 27); + this.state = 2466; + this.alter_rollback_segment(); + break; + + case 28: + this.enterOuterAlt(localctx, 28); + this.state = 2467; + this.alter_sequence(); + break; + + case 29: + this.enterOuterAlt(localctx, 29); + this.state = 2468; + this.alter_session(); + break; + + case 30: + this.enterOuterAlt(localctx, 30); + this.state = 2469; + this.alter_synonym(); + break; + + case 31: + this.enterOuterAlt(localctx, 31); + this.state = 2470; + this.alter_table(); + break; + + case 32: + this.enterOuterAlt(localctx, 32); + this.state = 2471; + this.alter_tablespace(); + break; + + case 33: + this.enterOuterAlt(localctx, 33); + this.state = 2472; + this.alter_tablespace_set(); + break; + + case 34: + this.enterOuterAlt(localctx, 34); + this.state = 2473; + this.alter_trigger(); + break; + + case 35: + this.enterOuterAlt(localctx, 35); + this.state = 2474; + this.alter_type(); + break; + + case 36: + this.enterOuterAlt(localctx, 36); + this.state = 2475; + this.alter_user(); + break; + + case 37: + this.enterOuterAlt(localctx, 37); + this.state = 2476; + this.alter_view(); + break; + + case 38: + this.enterOuterAlt(localctx, 38); + this.state = 2477; + this.anonymous_block(); + break; + + case 39: + this.enterOuterAlt(localctx, 39); + this.state = 2478; + this.call_statement(); + break; + + case 40: + this.enterOuterAlt(localctx, 40); + this.state = 2479; + this.create_analytic_view(); + break; + + case 41: + this.enterOuterAlt(localctx, 41); + this.state = 2480; + this.create_attribute_dimension(); + break; + + case 42: + this.enterOuterAlt(localctx, 42); + this.state = 2481; + this.create_audit_policy(); + break; + + case 43: + this.enterOuterAlt(localctx, 43); + this.state = 2482; + this.create_cluster(); + break; + + case 44: + this.enterOuterAlt(localctx, 44); + this.state = 2483; + this.create_context(); + break; + + case 45: + this.enterOuterAlt(localctx, 45); + this.state = 2484; + this.create_controlfile(); + break; + + case 46: + this.enterOuterAlt(localctx, 46); + this.state = 2485; + this.create_schema(); + break; + + case 47: + this.enterOuterAlt(localctx, 47); + this.state = 2486; + this.create_database(); + break; + + case 48: + this.enterOuterAlt(localctx, 48); + this.state = 2487; + this.create_database_link(); + break; + + case 49: + this.enterOuterAlt(localctx, 49); + this.state = 2488; + this.create_dimension(); + break; + + case 50: + this.enterOuterAlt(localctx, 50); + this.state = 2489; + this.create_directory(); + break; + + case 51: + this.enterOuterAlt(localctx, 51); + this.state = 2490; + this.create_diskgroup(); + break; + + case 52: + this.enterOuterAlt(localctx, 52); + this.state = 2491; + this.create_edition(); + break; + + case 53: + this.enterOuterAlt(localctx, 53); + this.state = 2492; + this.create_flashback_archive(); + break; + + case 54: + this.enterOuterAlt(localctx, 54); + this.state = 2493; + this.create_function_body(); + break; + + case 55: + this.enterOuterAlt(localctx, 55); + this.state = 2494; + this.create_hierarchy(); + break; + + case 56: + this.enterOuterAlt(localctx, 56); + this.state = 2495; + this.create_index(); + break; + + case 57: + this.enterOuterAlt(localctx, 57); + this.state = 2496; + this.create_inmemory_join_group(); + break; + + case 58: + this.enterOuterAlt(localctx, 58); + this.state = 2497; + this.create_java(); + break; + + case 59: + this.enterOuterAlt(localctx, 59); + this.state = 2498; + this.create_library(); + break; + + case 60: + this.enterOuterAlt(localctx, 60); + this.state = 2499; + this.create_lockdown_profile(); + break; + + case 61: + this.enterOuterAlt(localctx, 61); + this.state = 2500; + this.create_materialized_view(); + break; + + case 62: + this.enterOuterAlt(localctx, 62); + this.state = 2501; + this.create_materialized_view_log(); + break; + + case 63: + this.enterOuterAlt(localctx, 63); + this.state = 2502; + this.create_materialized_zonemap(); + break; + + case 64: + this.enterOuterAlt(localctx, 64); + this.state = 2503; + this.create_operator(); + break; + + case 65: + this.enterOuterAlt(localctx, 65); + this.state = 2504; + this.create_outline(); + break; + + case 66: + this.enterOuterAlt(localctx, 66); + this.state = 2505; + this.create_package(); + break; + + case 67: + this.enterOuterAlt(localctx, 67); + this.state = 2506; + this.create_package_body(); + break; + + case 68: + this.enterOuterAlt(localctx, 68); + this.state = 2507; + this.create_pmem_filestore(); + break; + + case 69: + this.enterOuterAlt(localctx, 69); + this.state = 2508; + this.create_procedure_body(); + break; + + case 70: + this.enterOuterAlt(localctx, 70); + this.state = 2509; + this.create_profile(); + break; + + case 71: + this.enterOuterAlt(localctx, 71); + this.state = 2510; + this.create_restore_point(); + break; + + case 72: + this.enterOuterAlt(localctx, 72); + this.state = 2511; + this.create_role(); + break; + + case 73: + this.enterOuterAlt(localctx, 73); + this.state = 2512; + this.create_rollback_segment(); + break; + + case 74: + this.enterOuterAlt(localctx, 74); + this.state = 2513; + this.create_sequence(); + break; + + case 75: + this.enterOuterAlt(localctx, 75); + this.state = 2514; + this.create_spfile(); + break; + + case 76: + this.enterOuterAlt(localctx, 76); + this.state = 2515; + this.create_synonym(); + break; + + case 77: + this.enterOuterAlt(localctx, 77); + this.state = 2516; + this.create_table(); + break; + + case 78: + this.enterOuterAlt(localctx, 78); + this.state = 2517; + this.create_tablespace(); + break; + + case 79: + this.enterOuterAlt(localctx, 79); + this.state = 2518; + this.create_tablespace_set(); + break; + + case 80: + this.enterOuterAlt(localctx, 80); + this.state = 2519; + this.create_trigger(); + break; + + case 81: + this.enterOuterAlt(localctx, 81); + this.state = 2520; + this.create_type(); + break; + + case 82: + this.enterOuterAlt(localctx, 82); + this.state = 2521; + this.create_user(); + break; + + case 83: + this.enterOuterAlt(localctx, 83); + this.state = 2522; + this.create_view(); + break; + + case 84: + this.enterOuterAlt(localctx, 84); + this.state = 2523; + this.drop_analytic_view(); + break; + + case 85: + this.enterOuterAlt(localctx, 85); + this.state = 2524; + this.drop_attribute_dimension(); + break; + + case 86: + this.enterOuterAlt(localctx, 86); + this.state = 2525; + this.drop_audit_policy(); + break; + + case 87: + this.enterOuterAlt(localctx, 87); + this.state = 2526; + this.drop_cluster(); + break; + + case 88: + this.enterOuterAlt(localctx, 88); + this.state = 2527; + this.drop_context(); + break; + + case 89: + this.enterOuterAlt(localctx, 89); + this.state = 2528; + this.drop_database(); + break; + + case 90: + this.enterOuterAlt(localctx, 90); + this.state = 2529; + this.drop_database_link(); + break; + + case 91: + this.enterOuterAlt(localctx, 91); + this.state = 2530; + this.drop_directory(); + break; + + case 92: + this.enterOuterAlt(localctx, 92); + this.state = 2531; + this.drop_diskgroup(); + break; + + case 93: + this.enterOuterAlt(localctx, 93); + this.state = 2532; + this.drop_edition(); + break; + + case 94: + this.enterOuterAlt(localctx, 94); + this.state = 2533; + this.drop_flashback_archive(); + break; + + case 95: + this.enterOuterAlt(localctx, 95); + this.state = 2534; + this.drop_function(); + break; + + case 96: + this.enterOuterAlt(localctx, 96); + this.state = 2535; + this.drop_hierarchy(); + break; + + case 97: + this.enterOuterAlt(localctx, 97); + this.state = 2536; + this.drop_index(); + break; + + case 98: + this.enterOuterAlt(localctx, 98); + this.state = 2537; + this.drop_indextype(); + break; + + case 99: + this.enterOuterAlt(localctx, 99); + this.state = 2538; + this.drop_inmemory_join_group(); + break; + + case 100: + this.enterOuterAlt(localctx, 100); + this.state = 2539; + this.drop_java(); + break; + + case 101: + this.enterOuterAlt(localctx, 101); + this.state = 2540; + this.drop_library(); + break; + + case 102: + this.enterOuterAlt(localctx, 102); + this.state = 2541; + this.drop_lockdown_profile(); + break; + + case 103: + this.enterOuterAlt(localctx, 103); + this.state = 2542; + this.drop_materialized_view(); + break; + + case 104: + this.enterOuterAlt(localctx, 104); + this.state = 2543; + this.drop_materialized_view_log(); + break; + + case 105: + this.enterOuterAlt(localctx, 105); + this.state = 2544; + this.drop_materialized_zonemap(); + break; + + case 106: + this.enterOuterAlt(localctx, 106); + this.state = 2545; + this.drop_operator(); + break; + + case 107: + this.enterOuterAlt(localctx, 107); + this.state = 2546; + this.drop_outline(); + break; + + case 108: + this.enterOuterAlt(localctx, 108); + this.state = 2547; + this.drop_package(); + break; + + case 109: + this.enterOuterAlt(localctx, 109); + this.state = 2548; + this.drop_pmem_filestore(); + break; + + case 110: + this.enterOuterAlt(localctx, 110); + this.state = 2549; + this.drop_procedure(); + break; + + case 111: + this.enterOuterAlt(localctx, 111); + this.state = 2550; + this.drop_restore_point(); + break; + + case 112: + this.enterOuterAlt(localctx, 112); + this.state = 2551; + this.drop_role(); + break; + + case 113: + this.enterOuterAlt(localctx, 113); + this.state = 2552; + this.drop_rollback_segment(); + break; + + case 114: + this.enterOuterAlt(localctx, 114); + this.state = 2553; + this.drop_sequence(); + break; + + case 115: + this.enterOuterAlt(localctx, 115); + this.state = 2554; + this.drop_synonym(); + break; + + case 116: + this.enterOuterAlt(localctx, 116); + this.state = 2555; + this.drop_table(); + break; + + case 117: + this.enterOuterAlt(localctx, 117); + this.state = 2556; + this.drop_tablespace(); + break; + + case 118: + this.enterOuterAlt(localctx, 118); + this.state = 2557; + this.drop_tablespace_set(); + break; + + case 119: + this.enterOuterAlt(localctx, 119); + this.state = 2558; + this.drop_trigger(); + break; + + case 120: + this.enterOuterAlt(localctx, 120); + this.state = 2559; + this.drop_type(); + break; + + case 121: + this.enterOuterAlt(localctx, 121); + this.state = 2560; + this.drop_user(); + break; + + case 122: + this.enterOuterAlt(localctx, 122); + this.state = 2561; + this.drop_view(); + break; + + case 123: + this.enterOuterAlt(localctx, 123); + this.state = 2562; + this.administer_key_management(); + break; + + case 124: + this.enterOuterAlt(localctx, 124); + this.state = 2563; + this.analyze(); + break; + + case 125: + this.enterOuterAlt(localctx, 125); + this.state = 2564; + this.associate_statistics(); + break; + + case 126: + this.enterOuterAlt(localctx, 126); + this.state = 2565; + this.audit_traditional(); + break; + + case 127: + this.enterOuterAlt(localctx, 127); + this.state = 2566; + this.comment_on_column(); + break; + + case 128: + this.enterOuterAlt(localctx, 128); + this.state = 2567; + this.comment_on_materialized(); + break; + + case 129: + this.enterOuterAlt(localctx, 129); + this.state = 2568; + this.comment_on_table(); + break; + + case 130: + this.enterOuterAlt(localctx, 130); + this.state = 2569; + this.data_manipulation_language_statements(); + break; + + case 131: + this.enterOuterAlt(localctx, 131); + this.state = 2570; + this.disassociate_statistics(); + break; + + case 132: + this.enterOuterAlt(localctx, 132); + this.state = 2571; + this.flashback_table(); + break; + + case 133: + this.enterOuterAlt(localctx, 133); + this.state = 2572; + this.grant_statement(); + break; + + case 134: + this.enterOuterAlt(localctx, 134); + this.state = 2573; + this.noaudit_statement(); + break; + + case 135: + this.enterOuterAlt(localctx, 135); + this.state = 2574; + this.purge_statement(); + break; + + case 136: + this.enterOuterAlt(localctx, 136); + this.state = 2575; + this.rename_object(); + break; + + case 137: + this.enterOuterAlt(localctx, 137); + this.state = 2576; + this.revoke_statement(); + break; + + case 138: + this.enterOuterAlt(localctx, 138); + this.state = 2577; + this.transaction_control_statements(); + break; + + case 139: + this.enterOuterAlt(localctx, 139); + this.state = 2578; + this.truncate_cluster(); + break; + + case 140: + this.enterOuterAlt(localctx, 140); + this.state = 2579; + this.truncate_table(); + break; + + case 141: + this.enterOuterAlt(localctx, 141); + this.state = 2580; + this.unified_auditing(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_diskgroup() { + let localctx = new Alter_diskgroupContext(this, this._ctx, this.state); + this.enterRule(localctx, 4, OracleSqlParser.RULE_alter_diskgroup); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2583; + this.match(OracleSqlParser.ALTER); + this.state = 2584; + this.match(OracleSqlParser.DISKGROUP); + this.state = 2638; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,20,this._ctx); + switch(la_) { + case 1: + this.state = 2585; + this.id_expression(); + this.state = 2620; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,16,this._ctx); + switch(la_) { + case 1: + this.state = 2593; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + case 467: + this.state = 2588; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2588; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.state = 2586; + this.add_disk_clause(); + break; + case 467: + this.state = 2587; + this.drop_disk_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2590; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===21 || _la===467); + break; + case 1565: + this.state = 2592; + this.resize_disk_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2596; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1508) { + this.state = 2595; + this.rebalance_diskgroup_clause(); + } + + break; + + case 2: + this.state = 2618; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,15,this._ctx); + switch(la_) { + case 1: + this.state = 2598; + this.replace_disk_clause(); + break; + + case 2: + this.state = 2599; + this.rename_disk_clause(); + break; + + case 3: + this.state = 2600; + this.disk_online_clause(); + break; + + case 4: + this.state = 2601; + this.disk_offline_clause(); + break; + + case 5: + this.state = 2602; + this.rebalance_diskgroup_clause(); + break; + + case 6: + this.state = 2603; + this.check_diskgroup_clause(); + break; + + case 7: + this.state = 2604; + this.diskgroup_template_clauses(); + break; + + case 8: + this.state = 2605; + this.diskgroup_directory_clauses(); + break; + + case 9: + this.state = 2606; + this.diskgroup_alias_clauses(); + break; + + case 10: + this.state = 2607; + this.diskgroup_volume_clauses(); + break; + + case 11: + this.state = 2608; + this.diskgroup_attributes(); + break; + + case 12: + this.state = 2609; + this.drop_diskgroup_file_clause(); + break; + + case 13: + this.state = 2610; + this.convert_redundancy_clause(); + break; + + case 14: + this.state = 2611; + this.usergroup_clauses(); + break; + + case 15: + this.state = 2612; + this.user_clauses(); + break; + + case 16: + this.state = 2613; + this.file_permissions_clause(); + break; + + case 17: + this.state = 2614; + this.file_owner_clause(); + break; + + case 18: + this.state = 2615; + this.scrub_clause(); + break; + + case 19: + this.state = 2616; + this.quotagroup_clauses(); + break; + + case 20: + this.state = 2617; + this.filegroup_clauses(); + break; + + } + break; + + } + break; + + case 2: + this.state = 2631; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 2622; + this.id_expression(); + this.state = 2627; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2623; + this.match(OracleSqlParser.COMMA); + this.state = 2624; + this.id_expression(); + this.state = 2629; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 38: + this.state = 2630; + this.match(OracleSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2636; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2177: + this.state = 2633; + this.undrop_disk_clause(); + break; + case 442: + case 986: + this.state = 2634; + this.diskgroup_availability(); + break; + case 427: + case 497: + this.state = 2635; + this.enable_disable_volume(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_disk_clause() { + let localctx = new Add_disk_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 6, OracleSqlParser.RULE_add_disk_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2640; + this.match(OracleSqlParser.ADD); + this.state = 2661; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2643; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1686) { + this.state = 2641; + this.match(OracleSqlParser.SITE); + this.state = 2642; + localctx.sn = this.id_expression(); + } + + this.state = 2646; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1487 || _la===1546) { + this.state = 2645; + this.quorum_regular(); + } + + this.state = 2650; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===570) { + this.state = 2648; + this.match(OracleSqlParser.FAILGROUP); + this.state = 2649; + localctx.fgn = this.id_expression(); + } + + this.state = 2652; + this.match(OracleSqlParser.DISK); + this.state = 2653; + this.qualified_disk_clause(); + this.state = 2658; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2654; + this.match(OracleSqlParser.COMMA); + this.state = 2655; + this.qualified_disk_clause(); + this.state = 2660; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2663; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===438 || _la===570 || _la===1487 || _la===1546 || _la===1686); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_disk_clause() { + let localctx = new Drop_disk_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 8, OracleSqlParser.RULE_drop_disk_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2665; + this.match(OracleSqlParser.DROP); + this.state = 2704; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 438: + case 1487: + case 1546: + this.state = 2667; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1487 || _la===1546) { + this.state = 2666; + this.quorum_regular(); + } + + this.state = 2669; + this.match(OracleSqlParser.DISK); + this.state = 2670; + this.id_expression(); + this.state = 2672; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 2671; + this.force_noforce(); + } + + this.state = 2681; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2674; + this.match(OracleSqlParser.COMMA); + this.state = 2675; + this.id_expression(); + this.state = 2677; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 2676; + this.force_noforce(); + } + + this.state = 2683; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 441: + this.state = 2684; + this.match(OracleSqlParser.DISKS); + this.state = 2685; + this.match(OracleSqlParser.IN); + this.state = 2687; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1487 || _la===1546) { + this.state = 2686; + this.quorum_regular(); + } + + this.state = 2689; + this.match(OracleSqlParser.FAILGROUP); + this.state = 2690; + this.id_expression(); + this.state = 2692; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 2691; + this.force_noforce(); + } + + this.state = 2701; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2694; + this.match(OracleSqlParser.COMMA); + this.state = 2695; + this.id_expression(); + this.state = 2697; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 2696; + this.force_noforce(); + } + + this.state = 2703; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + resize_disk_clause() { + let localctx = new Resize_disk_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 10, OracleSqlParser.RULE_resize_disk_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2706; + this.match(OracleSqlParser.RESIZE); + this.state = 2707; + this.match(OracleSqlParser.ALL); + this.state = 2710; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1697) { + this.state = 2708; + this.match(OracleSqlParser.SIZE); + this.state = 2709; + this.size_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + replace_disk_clause() { + let localctx = new Replace_disk_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 12, OracleSqlParser.RULE_replace_disk_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2712; + this.match(OracleSqlParser.REPLACE); + this.state = 2713; + this.match(OracleSqlParser.DISK); + this.state = 2714; + this.id_expression(); + this.state = 2715; + this.match(OracleSqlParser.WITH); + this.state = 2716; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 2718; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 2717; + this.force_noforce(); + } + + this.state = 2729; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2720; + this.match(OracleSqlParser.COMMA); + this.state = 2721; + this.id_expression(); + this.state = 2722; + this.match(OracleSqlParser.WITH); + this.state = 2723; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 2725; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 2724; + this.force_noforce(); + } + + this.state = 2731; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2734; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1422) { + this.state = 2732; + this.match(OracleSqlParser.POWER); + this.state = 2733; + this.numeric(); + } + + this.state = 2737; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1217 || _la===2291) { + this.state = 2736; + this.wait_nowait(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + wait_nowait() { + let localctx = new Wait_nowaitContext(this, this._ctx, this.state); + this.enterRule(localctx, 14, OracleSqlParser.RULE_wait_nowait); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2739; + _la = this._input.LA(1); + if(!(_la===1217 || _la===2291)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + rename_disk_clause() { + let localctx = new Rename_disk_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 16, OracleSqlParser.RULE_rename_disk_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2741; + this.match(OracleSqlParser.RENAME); + this.state = 2758; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 438: + this.state = 2742; + this.match(OracleSqlParser.DISK); + this.state = 2743; + this.id_expression(); + this.state = 2744; + this.match(OracleSqlParser.TO); + this.state = 2745; + this.id_expression(); + this.state = 2753; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2746; + this.match(OracleSqlParser.COMMA); + this.state = 2747; + this.id_expression(); + this.state = 2748; + this.match(OracleSqlParser.TO); + this.state = 2749; + this.id_expression(); + this.state = 2755; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 441: + this.state = 2756; + this.match(OracleSqlParser.DISKS); + this.state = 2757; + this.match(OracleSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + disk_online_clause() { + let localctx = new Disk_online_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 18, OracleSqlParser.RULE_disk_online_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2760; + this.match(OracleSqlParser.ONLINE); + this.state = 2792; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 438: + case 441: + case 1487: + case 1546: + this.state = 2787; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2787; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 438: + case 1487: + case 1546: + this.state = 2762; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1487 || _la===1546) { + this.state = 2761; + this.quorum_regular(); + } + + this.state = 2764; + this.match(OracleSqlParser.DISK); + this.state = 2765; + this.id_expression(); + this.state = 2770; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2766; + this.match(OracleSqlParser.COMMA); + this.state = 2767; + this.id_expression(); + this.state = 2772; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 441: + this.state = 2773; + this.match(OracleSqlParser.DISKS); + this.state = 2774; + this.match(OracleSqlParser.IN); + this.state = 2776; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1487 || _la===1546) { + this.state = 2775; + this.quorum_regular(); + } + + this.state = 2778; + this.match(OracleSqlParser.FAILGROUP); + this.state = 2779; + this.id_expression(); + this.state = 2784; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2780; + this.match(OracleSqlParser.COMMA); + this.state = 2781; + this.id_expression(); + this.state = 2786; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2789; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===438 || _la===441 || _la===1487 || _la===1546); + break; + case 38: + this.state = 2791; + this.match(OracleSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2796; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1422) { + this.state = 2794; + this.match(OracleSqlParser.POWER); + this.state = 2795; + this.numeric(); + } + + this.state = 2799; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1217 || _la===2291) { + this.state = 2798; + this.wait_nowait(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + disk_offline_clause() { + let localctx = new Disk_offline_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 20, OracleSqlParser.RULE_disk_offline_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2801; + this.match(OracleSqlParser.OFFLINE); + this.state = 2828; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 438: + case 1487: + case 1546: + this.state = 2803; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1487 || _la===1546) { + this.state = 2802; + this.quorum_regular(); + } + + this.state = 2805; + this.match(OracleSqlParser.DISK); + this.state = 2806; + this.id_expression(); + this.state = 2811; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2807; + this.match(OracleSqlParser.COMMA); + this.state = 2808; + this.id_expression(); + this.state = 2813; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 441: + this.state = 2814; + this.match(OracleSqlParser.DISKS); + this.state = 2815; + this.match(OracleSqlParser.IN); + this.state = 2817; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1487 || _la===1546) { + this.state = 2816; + this.quorum_regular(); + } + + this.state = 2819; + this.match(OracleSqlParser.FAILGROUP); + this.state = 2820; + this.id_expression(); + this.state = 2825; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2821; + this.match(OracleSqlParser.COMMA); + this.state = 2822; + this.id_expression(); + this.state = 2827; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2831; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===467) { + this.state = 2830; + this.timeout_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + timeout_clause() { + let localctx = new Timeout_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 22, OracleSqlParser.RULE_timeout_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2833; + this.match(OracleSqlParser.DROP); + this.state = 2834; + this.match(OracleSqlParser.AFTER); + this.state = 2835; + this.numeric(); + this.state = 2836; + _la = this._input.LA(1); + if(!(_la===682 || _la===899)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + rebalance_diskgroup_clause() { + let localctx = new Rebalance_diskgroup_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 24, OracleSqlParser.RULE_rebalance_diskgroup_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2838; + this.match(OracleSqlParser.REBALANCE); + this.state = 2858; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1422: + case 2304: + case 2306: + this.state = 2845; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2304 || _la===2306) { + this.state = 2839; + _la = this._input.LA(1); + if(!(_la===2304 || _la===2306)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2841; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 2840; + this.phase(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2843; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,58, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } + + this.state = 2847; + this.match(OracleSqlParser.POWER); + this.state = 2848; + this.numeric(); + this.state = 2851; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1217 || _la===2291) { + this.state = 2850; + _la = this._input.LA(1); + if(!(_la===1217 || _la===2291)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + case 978: + this.state = 2853; + this.match(OracleSqlParser.MODIFY); + this.state = 2854; + this.match(OracleSqlParser.POWER); + this.state = 2856; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2439 || _la===2440) { + this.state = 2855; + this.numeric(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + phase() { + let localctx = new PhaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 26, OracleSqlParser.RULE_phase); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2860; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + check_diskgroup_clause() { + let localctx = new Check_diskgroup_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 28, OracleSqlParser.RULE_check_diskgroup_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2862; + this.match(OracleSqlParser.CHECK); + this.state = 2864; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===38) { + this.state = 2863; + this.match(OracleSqlParser.ALL); + } + + this.state = 2867; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1169 || _la===1558) { + this.state = 2866; + _la = this._input.LA(1); + if(!(_la===1169 || _la===1558)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + diskgroup_template_clauses() { + let localctx = new Diskgroup_template_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 30, OracleSqlParser.RULE_diskgroup_template_clauses); + var _la = 0; + try { + this.state = 2892; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + case 978: + this.enterOuterAlt(localctx, 1); + this.state = 2869; + _la = this._input.LA(1); + if(!(_la===21 || _la===978)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2870; + this.match(OracleSqlParser.TEMPLATE); + this.state = 2871; + this.id_expression(); + this.state = 2872; + this.qualified_template_clause(); + this.state = 2879; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2873; + this.match(OracleSqlParser.COMMA); + this.state = 2874; + this.id_expression(); + this.state = 2875; + this.qualified_template_clause(); + this.state = 2881; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 467: + this.enterOuterAlt(localctx, 2); + this.state = 2882; + this.match(OracleSqlParser.DROP); + this.state = 2883; + this.match(OracleSqlParser.TEMPLATE); + this.state = 2884; + this.id_expression(); + this.state = 2889; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2885; + this.match(OracleSqlParser.COMMA); + this.state = 2886; + this.id_expression(); + this.state = 2891; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + qualified_template_clause() { + let localctx = new Qualified_template_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 32, OracleSqlParser.RULE_qualified_template_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2894; + this.match(OracleSqlParser.ATTRIBUTES); + this.state = 2895; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 2897; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===463 || _la===673 || _la===961 || _la===1338 || _la===2194) { + this.state = 2896; + this.redundancy_clause(); + } + + this.state = 2900; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===230 || _la===594) { + this.state = 2899; + this.striping_clause(); + } + + this.state = 2902; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + redundancy_clause() { + let localctx = new Redundancy_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 34, OracleSqlParser.RULE_redundancy_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2904; + _la = this._input.LA(1); + if(!(_la===463 || _la===673 || _la===961 || _la===1338 || _la===2194)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + striping_clause() { + let localctx = new Striping_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 36, OracleSqlParser.RULE_striping_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2906; + _la = this._input.LA(1); + if(!(_la===230 || _la===594)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + force_noforce() { + let localctx = new Force_noforceContext(this, this._ctx, this.state); + this.enterRule(localctx, 38, OracleSqlParser.RULE_force_noforce); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 2908; + _la = this._input.LA(1); + if(!(_la===614 || _la===1102)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + diskgroup_directory_clauses() { + let localctx = new Diskgroup_directory_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 40, OracleSqlParser.RULE_diskgroup_directory_clauses); + var _la = 0; + try { + this.state = 2951; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.enterOuterAlt(localctx, 1); + this.state = 2910; + this.match(OracleSqlParser.ADD); + this.state = 2911; + this.match(OracleSqlParser.DIRECTORY); + this.state = 2912; + this.filename(); + this.state = 2917; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2913; + this.match(OracleSqlParser.COMMA); + this.state = 2914; + this.filename(); + this.state = 2919; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 467: + this.enterOuterAlt(localctx, 2); + this.state = 2920; + this.match(OracleSqlParser.DROP); + this.state = 2921; + this.match(OracleSqlParser.DIRECTORY); + this.state = 2922; + this.filename(); + this.state = 2924; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 2923; + this.force_noforce(); + } + + this.state = 2933; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2926; + this.match(OracleSqlParser.COMMA); + this.state = 2927; + this.filename(); + this.state = 2929; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 2928; + this.force_noforce(); + } + + this.state = 2935; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 1557: + this.enterOuterAlt(localctx, 3); + this.state = 2936; + this.match(OracleSqlParser.RENAME); + this.state = 2937; + this.match(OracleSqlParser.DIRECTORY); + this.state = 2938; + this.dir_name(); + this.state = 2939; + this.match(OracleSqlParser.TO); + this.state = 2940; + this.dir_name(); + this.state = 2948; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2941; + this.match(OracleSqlParser.COMMA); + this.state = 2942; + this.dir_name(); + this.state = 2943; + this.match(OracleSqlParser.TO); + this.state = 2944; + this.dir_name(); + this.state = 2950; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dir_name() { + let localctx = new Dir_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 42, OracleSqlParser.RULE_dir_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2953; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + diskgroup_alias_clauses() { + let localctx = new Diskgroup_alias_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 44, OracleSqlParser.RULE_diskgroup_alias_clauses); + var _la = 0; + try { + this.state = 2993; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.enterOuterAlt(localctx, 1); + this.state = 2955; + this.match(OracleSqlParser.ADD); + this.state = 2956; + this.match(OracleSqlParser.ALIAS); + this.state = 2957; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 2958; + this.match(OracleSqlParser.FOR); + this.state = 2959; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 2966; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2960; + this.match(OracleSqlParser.COMMA); + this.state = 2961; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 2962; + this.match(OracleSqlParser.FOR); + this.state = 2963; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 2968; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 467: + this.enterOuterAlt(localctx, 2); + this.state = 2969; + this.match(OracleSqlParser.DROP); + this.state = 2970; + this.match(OracleSqlParser.ALIAS); + this.state = 2971; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 2976; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2972; + this.match(OracleSqlParser.COMMA); + this.state = 2973; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 2978; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 1557: + this.enterOuterAlt(localctx, 3); + this.state = 2979; + this.match(OracleSqlParser.RENAME); + this.state = 2980; + this.match(OracleSqlParser.ALIAS); + this.state = 2981; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 2982; + this.match(OracleSqlParser.TO); + this.state = 2983; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 2990; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 2984; + this.match(OracleSqlParser.COMMA); + this.state = 2985; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 2986; + this.match(OracleSqlParser.TO); + this.state = 2987; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 2992; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + diskgroup_volume_clauses() { + let localctx = new Diskgroup_volume_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 46, OracleSqlParser.RULE_diskgroup_volume_clauses); + try { + this.state = 3006; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.enterOuterAlt(localctx, 1); + this.state = 2995; + this.add_volume_clause(); + break; + case 978: + this.enterOuterAlt(localctx, 2); + this.state = 2996; + this.modify_volume_clause(); + break; + case 1565: + this.enterOuterAlt(localctx, 3); + this.state = 2997; + this.match(OracleSqlParser.RESIZE); + this.state = 2998; + this.match(OracleSqlParser.VOLUME); + this.state = 2999; + this.id_expression(); + this.state = 3000; + this.match(OracleSqlParser.SIZE); + this.state = 3001; + this.size_clause(); + break; + case 467: + this.enterOuterAlt(localctx, 4); + this.state = 3003; + this.match(OracleSqlParser.DROP); + this.state = 3004; + this.match(OracleSqlParser.VOLUME); + this.state = 3005; + this.id_expression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_volume_clause() { + let localctx = new Add_volume_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 48, OracleSqlParser.RULE_add_volume_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3008; + this.match(OracleSqlParser.ADD); + this.state = 3009; + this.match(OracleSqlParser.VOLUME); + this.state = 3010; + this.id_expression(); + this.state = 3011; + this.match(OracleSqlParser.SIZE); + this.state = 3012; + this.size_clause(); + this.state = 3014; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===463 || _la===673 || _la===961 || _la===1338 || _la===2194) { + this.state = 3013; + this.redundancy_clause(); + } + + this.state = 3020; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1767) { + this.state = 3016; + this.match(OracleSqlParser.STRIPE_WIDTH); + this.state = 3017; + this.numeric(); + this.state = 3018; + _la = this._input.LA(1); + if(!(_la===810 || _la===899)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3024; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1766) { + this.state = 3022; + this.match(OracleSqlParser.STRIPE_COLUMNS); + this.state = 3023; + this.numeric(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_volume_clause() { + let localctx = new Modify_volume_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 50, OracleSqlParser.RULE_modify_volume_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3026; + this.match(OracleSqlParser.MODIFY); + this.state = 3027; + this.match(OracleSqlParser.VOLUME); + this.state = 3028; + this.id_expression(); + this.state = 3031; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===987) { + this.state = 3029; + this.match(OracleSqlParser.MOUNTPATH); + this.state = 3030; + this.match(OracleSqlParser.CHAR_STRING); + } + + this.state = 3035; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2214) { + this.state = 3033; + this.match(OracleSqlParser.USAGE); + this.state = 3034; + this.match(OracleSqlParser.CHAR_STRING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + diskgroup_attributes() { + let localctx = new Diskgroup_attributesContext(this, this._ctx, this.state); + this.enterRule(localctx, 52, OracleSqlParser.RULE_diskgroup_attributes); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3037; + this.match(OracleSqlParser.SET); + this.state = 3038; + this.match(OracleSqlParser.ATTRIBUTE); + this.state = 3039; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3040; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3041; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_diskgroup_file_clause() { + let localctx = new Drop_diskgroup_file_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 54, OracleSqlParser.RULE_drop_diskgroup_file_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3043; + this.match(OracleSqlParser.DROP); + this.state = 3044; + this.match(OracleSqlParser.FILE); + this.state = 3045; + this.filename(); + this.state = 3050; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3046; + this.match(OracleSqlParser.COMMA); + this.state = 3047; + this.filename(); + this.state = 3052; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + convert_redundancy_clause() { + let localctx = new Convert_redundancy_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 56, OracleSqlParser.RULE_convert_redundancy_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3053; + this.match(OracleSqlParser.CONVERT); + this.state = 3054; + this.match(OracleSqlParser.REDUNDANCY); + this.state = 3055; + this.match(OracleSqlParser.TO); + this.state = 3056; + this.match(OracleSqlParser.FLEX); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + usergroup_clauses() { + let localctx = new Usergroup_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 58, OracleSqlParser.RULE_usergroup_clauses); + var _la = 0; + try { + this.state = 3087; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.enterOuterAlt(localctx, 1); + this.state = 3058; + this.match(OracleSqlParser.ADD); + this.state = 3059; + this.match(OracleSqlParser.USERGROUP); + this.state = 3060; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3061; + this.match(OracleSqlParser.WITH); + this.state = 3062; + this.match(OracleSqlParser.MEMBER); + this.state = 3063; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3068; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3064; + this.match(OracleSqlParser.COMMA); + this.state = 3065; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3070; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 978: + this.enterOuterAlt(localctx, 2); + this.state = 3071; + this.match(OracleSqlParser.MODIFY); + this.state = 3072; + this.match(OracleSqlParser.USERGROUP); + this.state = 3073; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3074; + _la = this._input.LA(1); + if(!(_la===21 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3075; + this.match(OracleSqlParser.MEMBER); + this.state = 3076; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3081; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3077; + this.match(OracleSqlParser.COMMA); + this.state = 3078; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3083; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 467: + this.enterOuterAlt(localctx, 3); + this.state = 3084; + this.match(OracleSqlParser.DROP); + this.state = 3085; + this.match(OracleSqlParser.USERGROUP); + this.state = 3086; + this.match(OracleSqlParser.CHAR_STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + user_clauses() { + let localctx = new User_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 60, OracleSqlParser.RULE_user_clauses); + var _la = 0; + try { + this.state = 3126; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.enterOuterAlt(localctx, 1); + this.state = 3089; + this.match(OracleSqlParser.ADD); + this.state = 3090; + this.match(OracleSqlParser.USER); + this.state = 3091; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3096; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3092; + this.match(OracleSqlParser.COMMA); + this.state = 3093; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3098; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 467: + this.enterOuterAlt(localctx, 2); + this.state = 3099; + this.match(OracleSqlParser.DROP); + this.state = 3100; + this.match(OracleSqlParser.USER); + this.state = 3101; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3106; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3102; + this.match(OracleSqlParser.COMMA); + this.state = 3103; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3108; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3110; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 3109; + this.match(OracleSqlParser.CASCADE); + } + + break; + case 1560: + this.enterOuterAlt(localctx, 3); + this.state = 3112; + this.match(OracleSqlParser.REPLACE); + this.state = 3113; + this.match(OracleSqlParser.USER); + this.state = 3114; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3115; + this.match(OracleSqlParser.WITH); + this.state = 3116; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3123; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3117; + this.match(OracleSqlParser.COMMA); + this.state = 3118; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3119; + this.match(OracleSqlParser.WITH); + this.state = 3120; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3125; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + file_permissions_clause() { + let localctx = new File_permissions_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 62, OracleSqlParser.RULE_file_permissions_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3128; + this.match(OracleSqlParser.SET); + this.state = 3129; + this.match(OracleSqlParser.PERMISSION); + this.state = 3130; + _la = this._input.LA(1); + if(!(_la===647 || _la===1308 || _la===1323)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3131; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3135; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1131: + this.state = 3132; + this.match(OracleSqlParser.NONE); + break; + case 1503: + this.state = 3133; + this.match(OracleSqlParser.READ); + this.state = 3134; + _la = this._input.LA(1); + if(!(_la===1256 || _la===2311)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3147; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3137; + this.match(OracleSqlParser.COMMA); + this.state = 3138; + _la = this._input.LA(1); + if(!(_la===647 || _la===1308 || _la===1323)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3139; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3143; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1131: + this.state = 3140; + this.match(OracleSqlParser.NONE); + break; + case 1503: + this.state = 3141; + this.match(OracleSqlParser.READ); + this.state = 3142; + _la = this._input.LA(1); + if(!(_la===1256 || _la===2311)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3149; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3150; + this.match(OracleSqlParser.FOR); + this.state = 3151; + this.match(OracleSqlParser.FILE); + this.state = 3152; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3157; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3153; + this.match(OracleSqlParser.COMMA); + this.state = 3154; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3159; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + file_owner_clause() { + let localctx = new File_owner_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 64, OracleSqlParser.RULE_file_owner_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3160; + this.match(OracleSqlParser.SET); + this.state = 3161; + this.match(OracleSqlParser.OWNERSHIP); + this.state = 3162; + _la = this._input.LA(1); + if(!(_la===647 || _la===1323)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3163; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3164; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3171; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3165; + this.match(OracleSqlParser.COMMA); + this.state = 3166; + _la = this._input.LA(1); + if(!(_la===647 || _la===1323)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3167; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3168; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3173; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3174; + this.match(OracleSqlParser.FOR); + this.state = 3175; + this.match(OracleSqlParser.FILE); + this.state = 3176; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3181; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3177; + this.match(OracleSqlParser.COMMA); + this.state = 3178; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3183; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + scrub_clause() { + let localctx = new Scrub_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 66, OracleSqlParser.RULE_scrub_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3184; + this.match(OracleSqlParser.SCRUB); + this.state = 3189; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 587: + this.state = 3185; + this.match(OracleSqlParser.FILE); + this.state = 3186; + this.match(OracleSqlParser.CHAR_STRING); + break; + case 438: + this.state = 3187; + this.match(OracleSqlParser.DISK); + this.state = 3188; + this.id_expression(); + break; + case -1: + case 614: + case 1102: + case 1169: + case 1217: + case 1422: + case 1558: + case 1759: + case 2291: + case 2452: + case 2467: + break; + default: + break; + } + this.state = 3192; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1169 || _la===1558) { + this.state = 3191; + _la = this._input.LA(1); + if(!(_la===1169 || _la===1558)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3196; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1422) { + this.state = 3194; + this.match(OracleSqlParser.POWER); + this.state = 3195; + _la = this._input.LA(1); + if(!(_la===91 || _la===673 || _la===895 || _la===2404)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3199; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1217 || _la===2291) { + this.state = 3198; + this.wait_nowait(); + } + + this.state = 3202; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 3201; + this.force_noforce(); + } + + this.state = 3205; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1759) { + this.state = 3204; + this.match(OracleSqlParser.STOP); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + quotagroup_clauses() { + let localctx = new Quotagroup_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 68, OracleSqlParser.RULE_quotagroup_clauses); + var _la = 0; + try { + this.state = 3234; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.enterOuterAlt(localctx, 1); + this.state = 3207; + this.match(OracleSqlParser.ADD); + this.state = 3208; + this.match(OracleSqlParser.QUOTAGROUP); + this.state = 3209; + this.id_expression(); + this.state = 3215; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1669) { + this.state = 3210; + this.match(OracleSqlParser.SET); + this.state = 3211; + this.property_name(); + this.state = 3212; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3213; + this.property_value(); + } + + break; + case 978: + this.enterOuterAlt(localctx, 2); + this.state = 3217; + this.match(OracleSqlParser.MODIFY); + this.state = 3218; + this.match(OracleSqlParser.QUOTAGROUP); + this.state = 3219; + this.id_expression(); + this.state = 3220; + this.match(OracleSqlParser.SET); + this.state = 3221; + this.property_name(); + this.state = 3222; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3223; + this.property_value(); + break; + case 990: + this.enterOuterAlt(localctx, 3); + this.state = 3225; + this.match(OracleSqlParser.MOVE); + this.state = 3226; + this.match(OracleSqlParser.QUOTAGROUP); + this.state = 3227; + this.id_expression(); + this.state = 3228; + this.match(OracleSqlParser.TO); + this.state = 3229; + this.id_expression(); + break; + case 467: + this.enterOuterAlt(localctx, 4); + this.state = 3231; + this.match(OracleSqlParser.DROP); + this.state = 3232; + this.match(OracleSqlParser.QUOTAGROUP); + this.state = 3233; + this.id_expression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + property_name() { + let localctx = new Property_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 70, OracleSqlParser.RULE_property_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3236; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + property_value() { + let localctx = new Property_valueContext(this, this._ctx, this.state); + this.enterRule(localctx, 72, OracleSqlParser.RULE_property_value); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3238; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + filegroup_clauses() { + let localctx = new Filegroup_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 74, OracleSqlParser.RULE_filegroup_clauses); + try { + this.state = 3244; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.enterOuterAlt(localctx, 1); + this.state = 3240; + this.add_filegroup_clause(); + break; + case 978: + this.enterOuterAlt(localctx, 2); + this.state = 3241; + this.modify_filegroup_clause(); + break; + case 990: + this.enterOuterAlt(localctx, 3); + this.state = 3242; + this.move_to_filegroup_clause(); + break; + case 467: + this.enterOuterAlt(localctx, 4); + this.state = 3243; + this.drop_filegroup_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_filegroup_clause() { + let localctx = new Add_filegroup_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 76, OracleSqlParser.RULE_add_filegroup_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3246; + this.match(OracleSqlParser.ADD); + this.state = 3247; + this.match(OracleSqlParser.FILEGROUP); + this.state = 3248; + this.id_expression(); + this.state = 3252; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 220: + case 348: + case 2289: + this.state = 3249; + _la = this._input.LA(1); + if(!(_la===220 || _la===348 || _la===2289)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3250; + this.id_expression(); + break; + case 2088: + this.state = 3251; + this.match(OracleSqlParser.TEMPLATE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3257; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===626) { + this.state = 3254; + this.match(OracleSqlParser.FROM); + this.state = 3255; + this.match(OracleSqlParser.TEMPLATE); + this.state = 3256; + this.id_expression(); + } + + this.state = 3263; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1669) { + this.state = 3259; + this.match(OracleSqlParser.SET); + this.state = 3260; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3261; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3262; + this.match(OracleSqlParser.CHAR_STRING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_filegroup_clause() { + let localctx = new Modify_filegroup_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 78, OracleSqlParser.RULE_modify_filegroup_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3265; + this.match(OracleSqlParser.MODIFY); + this.state = 3266; + this.match(OracleSqlParser.FILEGROUP); + this.state = 3267; + this.id_expression(); + this.state = 3268; + this.match(OracleSqlParser.SET); + this.state = 3269; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3270; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3271; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + move_to_filegroup_clause() { + let localctx = new Move_to_filegroup_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 80, OracleSqlParser.RULE_move_to_filegroup_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3273; + this.match(OracleSqlParser.MOVE); + this.state = 3274; + this.match(OracleSqlParser.FILE); + this.state = 3275; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3276; + this.match(OracleSqlParser.TO); + this.state = 3277; + this.match(OracleSqlParser.FILEGROUP); + this.state = 3278; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_filegroup_clause() { + let localctx = new Drop_filegroup_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 82, OracleSqlParser.RULE_drop_filegroup_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3280; + this.match(OracleSqlParser.DROP); + this.state = 3281; + this.match(OracleSqlParser.FILEGROUP); + this.state = 3282; + this.id_expression(); + this.state = 3284; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 3283; + this.match(OracleSqlParser.CASCADE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + quorum_regular() { + let localctx = new Quorum_regularContext(this, this._ctx, this.state); + this.enterRule(localctx, 84, OracleSqlParser.RULE_quorum_regular); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3286; + _la = this._input.LA(1); + if(!(_la===1487 || _la===1546)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + undrop_disk_clause() { + let localctx = new Undrop_disk_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 86, OracleSqlParser.RULE_undrop_disk_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3288; + this.match(OracleSqlParser.UNDROP); + this.state = 3289; + this.match(OracleSqlParser.DISKS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + diskgroup_availability() { + let localctx = new Diskgroup_availabilityContext(this, this._ctx, this.state); + this.enterRule(localctx, 88, OracleSqlParser.RULE_diskgroup_availability); + var _la = 0; + try { + this.state = 3302; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 986: + this.enterOuterAlt(localctx, 1); + this.state = 3291; + this.match(OracleSqlParser.MOUNT); + this.state = 3293; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1176 || _la===1574) { + this.state = 3292; + _la = this._input.LA(1); + if(!(_la===1176 || _la===1574)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3296; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 3295; + _la = this._input.LA(1); + if(!(_la===614 || _la===1102)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + case 442: + this.enterOuterAlt(localctx, 2); + this.state = 3298; + this.match(OracleSqlParser.DISMOUNT); + this.state = 3300; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 3299; + _la = this._input.LA(1); + if(!(_la===614 || _la===1102)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + enable_disable_volume() { + let localctx = new Enable_disable_volumeContext(this, this._ctx, this.state); + this.enterRule(localctx, 90, OracleSqlParser.RULE_enable_disable_volume); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3304; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3305; + this.match(OracleSqlParser.VOLUME); + this.state = 3315; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 3306; + this.id_expression(); + this.state = 3311; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3307; + this.match(OracleSqlParser.COMMA); + this.state = 3308; + this.id_expression(); + this.state = 3313; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 38: + this.state = 3314; + this.match(OracleSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_function() { + let localctx = new Drop_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 92, OracleSqlParser.RULE_drop_function); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3317; + this.match(OracleSqlParser.DROP); + this.state = 3318; + this.match(OracleSqlParser.FUNCTION); + this.state = 3319; + this.function_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_flashback_archive() { + let localctx = new Alter_flashback_archiveContext(this, this._ctx, this.state); + this.enterRule(localctx, 94, OracleSqlParser.RULE_alter_flashback_archive); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3321; + this.match(OracleSqlParser.ALTER); + this.state = 3322; + this.match(OracleSqlParser.FLASHBACK); + this.state = 3323; + this.match(OracleSqlParser.ARCHIVE); + this.state = 3324; + localctx.fa = this.id_expression(); + this.state = 3354; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,124,this._ctx); + switch(la_) { + case 1: + this.state = 3325; + this.match(OracleSqlParser.SET); + this.state = 3326; + this.match(OracleSqlParser.DEFAULT); + break; + + case 2: + this.state = 3327; + _la = this._input.LA(1); + if(!(_la===21 || _la===978)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3328; + this.match(OracleSqlParser.TABLESPACE); + this.state = 3329; + localctx.ts = this.id_expression(); + this.state = 3331; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1488) { + this.state = 3330; + this.flashback_archive_quota(); + } + + break; + + case 3: + this.state = 3333; + this.match(OracleSqlParser.REMOVE); + this.state = 3334; + this.match(OracleSqlParser.TABLESPACE); + this.state = 3335; + localctx.rts = this.id_expression(); + break; + + case 4: + this.state = 3336; + this.match(OracleSqlParser.MODIFY); + this.state = 3337; + this.flashback_archive_retention(); + break; + + case 5: + this.state = 3338; + this.match(OracleSqlParser.PURGE); + this.state = 3347; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 38: + this.state = 3339; + this.match(OracleSqlParser.ALL); + break; + case 112: + this.state = 3340; + this.match(OracleSqlParser.BEFORE); + this.state = 3345; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1625: + this.state = 3341; + this.match(OracleSqlParser.SCN); + this.state = 3342; + this.expression(); + break; + case 2106: + this.state = 3343; + this.match(OracleSqlParser.TIMESTAMP); + this.state = 3344; + this.expression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 6: + this.state = 3350; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135) { + this.state = 3349; + this.match(OracleSqlParser.NO); + } + + this.state = 3352; + this.match(OracleSqlParser.OPTIMIZE); + this.state = 3353; + this.match(OracleSqlParser.DATA); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_hierarchy() { + let localctx = new Alter_hierarchyContext(this, this._ctx, this.state); + this.enterRule(localctx, 96, OracleSqlParser.RULE_alter_hierarchy); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3356; + this.match(OracleSqlParser.ALTER); + this.state = 3357; + this.match(OracleSqlParser.HIERARCHY); + this.state = 3361; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,125,this._ctx); + if(la_===1) { + this.state = 3358; + this.schema_name(); + this.state = 3359; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 3363; + localctx.hn = this.id_expression(); + this.state = 3368; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1557: + this.state = 3364; + this.match(OracleSqlParser.RENAME); + this.state = 3365; + this.match(OracleSqlParser.TO); + this.state = 3366; + localctx.nhn = this.id_expression(); + break; + case 249: + this.state = 3367; + this.match(OracleSqlParser.COMPILE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_function() { + let localctx = new Alter_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 98, OracleSqlParser.RULE_alter_function); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3370; + this.match(OracleSqlParser.ALTER); + this.state = 3371; + this.match(OracleSqlParser.FUNCTION); + this.state = 3372; + this.function_name(); + this.state = 3389; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 480: + this.state = 3373; + this.match(OracleSqlParser.EDITIONABLE); + break; + case 1130: + this.state = 3374; + this.match(OracleSqlParser.NONEDITIONABLE); + break; + case 249: + this.state = 3375; + this.match(OracleSqlParser.COMPILE); + this.state = 3377; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,127,this._ctx); + if(la_===1) { + this.state = 3376; + this.match(OracleSqlParser.DEBUG); + + } + this.state = 3382; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,128,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3379; + this.compiler_parameters_clause(); + } + this.state = 3384; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,128,this._ctx); + } + + this.state = 3387; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 3385; + this.match(OracleSqlParser.REUSE); + this.state = 3386; + this.match(OracleSqlParser.SETTINGS); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_java() { + let localctx = new Alter_javaContext(this, this._ctx, this.state); + this.enterRule(localctx, 100, OracleSqlParser.RULE_alter_java); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3391; + this.match(OracleSqlParser.ALTER); + this.state = 3392; + this.match(OracleSqlParser.JAVA); + this.state = 3393; + _la = this._input.LA(1); + if(!(_la===206 || _la===1711)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3397; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,131,this._ctx); + if(la_===1) { + this.state = 3394; + this.schema_name(); + this.state = 3395; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 3399; + localctx.o = this.id_expression(); + this.state = 3419; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1567) { + this.state = 3400; + this.match(OracleSqlParser.RESOLVER); + this.state = 3401; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3413; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3402; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3403; + this.match_string(); + this.state = 3405; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 3404; + this.match(OracleSqlParser.COMMA); + } + + this.state = 3409; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 3407; + this.schema_name(); + break; + case 2450: + this.state = 3408; + this.match(OracleSqlParser.MINUS_SIGN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3411; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 3415; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2445); + this.state = 3417; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 3424; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 249: + this.state = 3421; + this.match(OracleSqlParser.COMPILE); + break; + case 1566: + this.state = 3422; + this.match(OracleSqlParser.RESOLVE); + break; + case 88: + this.state = 3423; + this.invoker_rights_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + match_string() { + let localctx = new Match_stringContext(this, this._ctx, this.state); + this.enterRule(localctx, 102, OracleSqlParser.RULE_match_string); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3426; + _la = this._input.LA(1); + if(!(_la===2442 || _la===2448)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_function_body() { + let localctx = new Create_function_bodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 104, OracleSqlParser.RULE_create_function_body); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3428; + this.match(OracleSqlParser.CREATE); + this.state = 3431; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 3429; + this.match(OracleSqlParser.OR); + this.state = 3430; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 3434; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===480 || _la===1130) { + this.state = 3433; + _la = this._input.LA(1); + if(!(_la===480 || _la===1130)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3436; + this.match(OracleSqlParser.FUNCTION); + this.state = 3437; + this.function_name(); + this.state = 3449; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 3438; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3439; + this.parameter(); + this.state = 3444; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3440; + this.match(OracleSqlParser.COMMA); + this.state = 3441; + this.parameter(); + this.state = 3446; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3447; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 3451; + this.match(OracleSqlParser.RETURN); + this.state = 3452; + this.type_spec(); + this.state = 3456; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1679) { + this.state = 3453; + this.match(OracleSqlParser.SHARING); + this.state = 3454; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3455; + _la = this._input.LA(1); + if(!(_la===946 || _la===1131)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3467; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,143,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3465; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 88: + this.state = 3458; + this.invoker_rights_clause(); + break; + case 6: + this.state = 3459; + this.accessible_by_clause(); + break; + case 387: + this.state = 3460; + this.default_collation_clause(); + break; + case 1329: + this.state = 3461; + this.parallel_enable_clause(); + break; + case 1577: + this.state = 3462; + this.result_cache_clause(); + break; + case 1392: + this.state = 3463; + this.match(OracleSqlParser.PIPELINED); + break; + case 418: + this.state = 3464; + this.match(OracleSqlParser.DETERMINISTIC); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 3469; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,143,this._ctx); + } + + this.state = 3484; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 69: + case 783: + this.state = 3470; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3479; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,146,this._ctx); + switch(la_) { + case 1: + this.state = 3472; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,144,this._ctx); + if(la_===1) { + this.state = 3471; + this.match(OracleSqlParser.DECLARE); + + } + this.state = 3475; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,145,this._ctx); + if(la_===1) { + this.state = 3474; + this.seq_of_declare_specs(); + + } + this.state = 3477; + this.body(); + break; + + case 2: + this.state = 3478; + this.call_spec(); + break; + + } + break; + case 35: + this.state = 3481; + this.aggregate_clause(); + break; + case 1392: + this.state = 3482; + this.pipelined_using_clause(); + break; + case 1722: + this.state = 3483; + this.sql_macro_body(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sql_macro_body() { + let localctx = new Sql_macro_bodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 106, OracleSqlParser.RULE_sql_macro_body); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3486; + this.match(OracleSqlParser.SQL_MACRO); + this.state = 3487; + this.match(OracleSqlParser.IS); + this.state = 3488; + this.match(OracleSqlParser.BEGIN); + this.state = 3489; + this.match(OracleSqlParser.RETURN); + this.state = 3490; + this.quoted_string(); + this.state = 3491; + this.match(OracleSqlParser.SEMICOLON); + this.state = 3492; + this.match(OracleSqlParser.END); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + parallel_enable_clause() { + let localctx = new Parallel_enable_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 108, OracleSqlParser.RULE_parallel_enable_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3494; + this.match(OracleSqlParser.PARALLEL_ENABLE); + this.state = 3496; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 3495; + this.partition_by_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + partition_by_clause() { + let localctx = new Partition_by_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 110, OracleSqlParser.RULE_partition_by_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3498; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3499; + this.match(OracleSqlParser.PARTITION); + this.state = 3500; + this.expression(); + this.state = 3501; + this.match(OracleSqlParser.BY); + this.state = 3505; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 55: + this.state = 3502; + this.match(OracleSqlParser.ANY); + break; + case 658: + case 860: + case 1493: + this.state = 3503; + _la = this._input.LA(1); + if(!(_la===658 || _la===860 || _la===1493)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3504; + this.paren_column_list(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3508; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===220 || _la===1301) { + this.state = 3507; + this.streaming_clause(); + } + + this.state = 3510; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + result_cache_clause() { + let localctx = new Result_cache_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 112, OracleSqlParser.RULE_result_cache_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3512; + this.match(OracleSqlParser.RESULT_CACHE); + this.state = 3514; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1550) { + this.state = 3513; + this.relies_on_part(); + } + + this.state = 3520; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 3516; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3517; + this.match(OracleSqlParser.MODE); + this.state = 3518; + _la = this._input.LA(1); + if(!(_la===387 || _la===614)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3519; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + accessible_by_clause() { + let localctx = new Accessible_by_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 114, OracleSqlParser.RULE_accessible_by_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3522; + this.match(OracleSqlParser.ACCESSIBLE); + this.state = 3523; + this.match(OracleSqlParser.BY); + this.state = 3524; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3525; + this.accessor(); + this.state = 3530; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3526; + this.match(OracleSqlParser.COMMA); + this.state = 3527; + this.accessor(); + this.state = 3532; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3533; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_collation_clause() { + let localctx = new Default_collation_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 116, OracleSqlParser.RULE_default_collation_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3535; + this.match(OracleSqlParser.DEFAULT); + this.state = 3536; + this.match(OracleSqlParser.COLLATION); + this.state = 3537; + this.match(OracleSqlParser.USING_NLS_COMP); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + aggregate_clause() { + let localctx = new Aggregate_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 118, OracleSqlParser.RULE_aggregate_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3539; + this.match(OracleSqlParser.AGGREGATE); + this.state = 3540; + this.match(OracleSqlParser.USING); + this.state = 3541; + this.implementation_type_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pipelined_using_clause() { + let localctx = new Pipelined_using_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 120, OracleSqlParser.RULE_pipelined_using_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3543; + this.match(OracleSqlParser.PIPELINED); + this.state = 3546; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1604 || _la===2081) { + this.state = 3544; + _la = this._input.LA(1); + if(!(_la===1604 || _la===2081)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3545; + this.match(OracleSqlParser.POLYMORPHIC); + } + + this.state = 3548; + this.match(OracleSqlParser.USING); + this.state = 3549; + this.implementation_type_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + accessor() { + let localctx = new AccessorContext(this, this._ctx, this.state); + this.enterRule(localctx, 122, OracleSqlParser.RULE_accessor); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3551; + localctx.unitKind = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===630 || _la===1327 || _la===1459 || _la===2155 || _la===2164)) { + localctx.unitKind = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3552; + this.function_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + relies_on_part() { + let localctx = new Relies_on_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 124, OracleSqlParser.RULE_relies_on_part); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3554; + this.match(OracleSqlParser.RELIES_ON); + this.state = 3555; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3556; + this.tableview_name(); + this.state = 3561; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3557; + this.match(OracleSqlParser.COMMA); + this.state = 3558; + this.tableview_name(); + this.state = 3563; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3564; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + streaming_clause() { + let localctx = new Streaming_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 126, OracleSqlParser.RULE_streaming_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3566; + _la = this._input.LA(1); + if(!(_la===220 || _la===1301)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3567; + this.expression(); + this.state = 3568; + this.match(OracleSqlParser.BY); + this.state = 3569; + this.paren_column_list(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_outline() { + let localctx = new Alter_outlineContext(this, this._ctx, this.state); + this.enterRule(localctx, 128, OracleSqlParser.RULE_alter_outline); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3571; + this.match(OracleSqlParser.ALTER); + this.state = 3572; + this.match(OracleSqlParser.OUTLINE); + this.state = 3574; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,156,this._ctx); + if(la_===1) { + this.state = 3573; + _la = this._input.LA(1); + if(!(_la===1453 || _la===1471)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3576; + localctx.o = this.id_expression(); + this.state = 3578; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3577; + this.outline_options(); + this.state = 3580; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===190 || _la===427 || _la===497 || _la===1509 || _la===1557); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + outline_options() { + let localctx = new Outline_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 130, OracleSqlParser.RULE_outline_options); + try { + this.state = 3592; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1509: + this.enterOuterAlt(localctx, 1); + this.state = 3582; + this.match(OracleSqlParser.REBUILD); + break; + case 1557: + this.enterOuterAlt(localctx, 2); + this.state = 3583; + this.match(OracleSqlParser.RENAME); + this.state = 3584; + this.match(OracleSqlParser.TO); + this.state = 3585; + localctx.non = this.id_expression(); + break; + case 190: + this.enterOuterAlt(localctx, 3); + this.state = 3586; + this.match(OracleSqlParser.CHANGE); + this.state = 3587; + this.match(OracleSqlParser.CATEGORY); + this.state = 3588; + this.match(OracleSqlParser.TO); + this.state = 3589; + localctx.ncn = this.id_expression(); + break; + case 497: + this.enterOuterAlt(localctx, 4); + this.state = 3590; + this.match(OracleSqlParser.ENABLE); + break; + case 427: + this.enterOuterAlt(localctx, 5); + this.state = 3591; + this.match(OracleSqlParser.DISABLE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_lockdown_profile() { + let localctx = new Alter_lockdown_profileContext(this, this._ctx, this.state); + this.enterRule(localctx, 132, OracleSqlParser.RULE_alter_lockdown_profile); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3594; + this.match(OracleSqlParser.ALTER); + this.state = 3595; + this.match(OracleSqlParser.LOCKDOWN); + this.state = 3596; + this.match(OracleSqlParser.PROFILE); + this.state = 3597; + this.id_expression(); + this.state = 3601; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,159,this._ctx); + switch(la_) { + case 1: + this.state = 3598; + this.lockdown_feature(); + break; + + case 2: + this.state = 3599; + this.lockdown_options(); + break; + + case 3: + this.state = 3600; + this.lockdown_statements(); + break; + + } + this.state = 3606; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2233) { + this.state = 3603; + this.match(OracleSqlParser.USERS); + this.state = 3604; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3605; + _la = this._input.LA(1); + if(!(_la===38 || _la===244 || _la===871)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lockdown_feature() { + let localctx = new Lockdown_featureContext(this, this._ctx, this.state); + this.enterRule(localctx, 134, OracleSqlParser.RULE_lockdown_feature); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3608; + this.disable_enable(); + this.state = 3609; + this.match(OracleSqlParser.FEATURE); + this.state = 3624; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2469: + this.state = 3610; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3611; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3612; + this.string_list(); + this.state = 3613; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 38: + this.state = 3615; + this.match(OracleSqlParser.ALL); + this.state = 3622; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===532) { + this.state = 3616; + this.match(OracleSqlParser.EXCEPT); + this.state = 3617; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3618; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3619; + this.string_list(); + this.state = 3620; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lockdown_options() { + let localctx = new Lockdown_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 136, OracleSqlParser.RULE_lockdown_options); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3626; + this.disable_enable(); + this.state = 3627; + this.match(OracleSqlParser.OPTION); + this.state = 3642; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2469: + this.state = 3628; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3629; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3630; + this.string_list(); + this.state = 3631; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 38: + this.state = 3633; + this.match(OracleSqlParser.ALL); + this.state = 3640; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===532) { + this.state = 3634; + this.match(OracleSqlParser.EXCEPT); + this.state = 3635; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3636; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3637; + this.string_list(); + this.state = 3638; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lockdown_statements() { + let localctx = new Lockdown_statementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 138, OracleSqlParser.RULE_lockdown_statements); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3644; + this.disable_enable(); + this.state = 3645; + this.match(OracleSqlParser.STATEMENT); + this.state = 3665; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,166,this._ctx); + switch(la_) { + case 1: + this.state = 3646; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3647; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3648; + this.string_list(); + this.state = 3649; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.state = 3651; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3652; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3653; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3654; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 3655; + this.statement_clauses(); + break; + + case 3: + this.state = 3656; + this.match(OracleSqlParser.ALL); + this.state = 3663; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===532) { + this.state = 3657; + this.match(OracleSqlParser.EXCEPT); + this.state = 3658; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3659; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3660; + this.string_list(); + this.state = 3661; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + statement_clauses() { + let localctx = new Statement_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 140, OracleSqlParser.RULE_statement_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3667; + this.match(OracleSqlParser.CLAUSE); + this.state = 3687; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,168,this._ctx); + switch(la_) { + case 1: + this.state = 3668; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3669; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3670; + this.string_list(); + this.state = 3671; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.state = 3673; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3674; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3675; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3676; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 3677; + this.clause_options(); + break; + + case 3: + this.state = 3678; + this.match(OracleSqlParser.ALL); + this.state = 3685; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===532) { + this.state = 3679; + this.match(OracleSqlParser.EXCEPT); + this.state = 3680; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3681; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3682; + this.string_list(); + this.state = 3683; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + clause_options() { + let localctx = new Clause_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 142, OracleSqlParser.RULE_clause_options); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3689; + this.match(OracleSqlParser.OPTION); + this.state = 3713; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,171,this._ctx); + switch(la_) { + case 1: + this.state = 3690; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3691; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3692; + this.string_list(); + this.state = 3693; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.state = 3695; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3696; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3697; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3698; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 3700; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3699; + this.option_values(); + this.state = 3702; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===930 || _la===958 || _la===2256); + break; + + case 3: + this.state = 3704; + this.match(OracleSqlParser.ALL); + this.state = 3711; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===532) { + this.state = 3705; + this.match(OracleSqlParser.EXCEPT); + this.state = 3706; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3707; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3708; + this.string_list(); + this.state = 3709; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + option_values() { + let localctx = new Option_valuesContext(this, this._ctx, this.state); + this.enterRule(localctx, 144, OracleSqlParser.RULE_option_values); + var _la = 0; + try { + this.state = 3724; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2256: + this.enterOuterAlt(localctx, 1); + this.state = 3715; + this.match(OracleSqlParser.VALUE); + this.state = 3716; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3717; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3718; + this.string_list(); + this.state = 3719; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 930: + case 958: + this.enterOuterAlt(localctx, 2); + this.state = 3721; + _la = this._input.LA(1); + if(!(_la===930 || _la===958)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3722; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 3723; + this.match(OracleSqlParser.CHAR_STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + string_list() { + let localctx = new String_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 146, OracleSqlParser.RULE_string_list); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3726; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3731; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3727; + this.match(OracleSqlParser.COMMA); + this.state = 3728; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 3733; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + disable_enable() { + let localctx = new Disable_enableContext(this, this._ctx, this.state); + this.enterRule(localctx, 148, OracleSqlParser.RULE_disable_enable); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3734; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_lockdown_profile() { + let localctx = new Drop_lockdown_profileContext(this, this._ctx, this.state); + this.enterRule(localctx, 150, OracleSqlParser.RULE_drop_lockdown_profile); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3736; + this.match(OracleSqlParser.DROP); + this.state = 3737; + this.match(OracleSqlParser.LOCKDOWN); + this.state = 3738; + this.match(OracleSqlParser.PROFILE); + this.state = 3739; + localctx.p = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_package() { + let localctx = new Drop_packageContext(this, this._ctx, this.state); + this.enterRule(localctx, 152, OracleSqlParser.RULE_drop_package); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3741; + this.match(OracleSqlParser.DROP); + this.state = 3742; + this.match(OracleSqlParser.PACKAGE); + this.state = 3744; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,174,this._ctx); + if(la_===1) { + this.state = 3743; + this.match(OracleSqlParser.BODY); + + } + this.state = 3749; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,175,this._ctx); + if(la_===1) { + this.state = 3746; + this.schema_object_name(); + this.state = 3747; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 3751; + this.package_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_package() { + let localctx = new Alter_packageContext(this, this._ctx, this.state); + this.enterRule(localctx, 154, OracleSqlParser.RULE_alter_package); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3753; + this.match(OracleSqlParser.ALTER); + this.state = 3754; + this.match(OracleSqlParser.PACKAGE); + this.state = 3755; + this.package_name(); + this.state = 3756; + this.match(OracleSqlParser.COMPILE); + this.state = 3758; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,176,this._ctx); + if(la_===1) { + this.state = 3757; + this.match(OracleSqlParser.DEBUG); + + } + this.state = 3761; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,177,this._ctx); + if(la_===1) { + this.state = 3760; + _la = this._input.LA(1); + if(!(_la===147 || _la===1327 || _la===1713)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3766; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,178,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3763; + this.compiler_parameters_clause(); + } + this.state = 3768; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,178,this._ctx); + } + + this.state = 3771; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 3769; + this.match(OracleSqlParser.REUSE); + this.state = 3770; + this.match(OracleSqlParser.SETTINGS); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_package() { + let localctx = new Create_packageContext(this, this._ctx, this.state); + this.enterRule(localctx, 156, OracleSqlParser.RULE_create_package); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3773; + this.match(OracleSqlParser.CREATE); + this.state = 3776; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 3774; + this.match(OracleSqlParser.OR); + this.state = 3775; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 3779; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===480 || _la===1130) { + this.state = 3778; + _la = this._input.LA(1); + if(!(_la===480 || _la===1130)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3781; + this.match(OracleSqlParser.PACKAGE); + this.state = 3785; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,182,this._ctx); + if(la_===1) { + this.state = 3782; + this.schema_object_name(); + this.state = 3783; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 3787; + this.package_name(); + this.state = 3789; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===88) { + this.state = 3788; + this.invoker_rights_clause(); + } + + this.state = 3791; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3795; + this._errHandler.sync(this); + _la = this._input.LA(1); + while((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2472 || _la===2478) { + this.state = 3792; + this.package_obj_spec(); + this.state = 3797; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3798; + this.match(OracleSqlParser.END); + this.state = 3800; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2472 || _la===2478) { + this.state = 3799; + this.package_name(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_package_body() { + let localctx = new Create_package_bodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 158, OracleSqlParser.RULE_create_package_body); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3802; + this.match(OracleSqlParser.CREATE); + this.state = 3805; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 3803; + this.match(OracleSqlParser.OR); + this.state = 3804; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 3808; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===480 || _la===1130) { + this.state = 3807; + _la = this._input.LA(1); + if(!(_la===480 || _la===1130)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3810; + this.match(OracleSqlParser.PACKAGE); + this.state = 3811; + this.match(OracleSqlParser.BODY); + this.state = 3815; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,188,this._ctx); + if(la_===1) { + this.state = 3812; + this.schema_object_name(); + this.state = 3813; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 3817; + this.package_name(); + this.state = 3818; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3822; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,189,this._ctx) + while(_alt!=1 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1+1) { + this.state = 3819; + this.package_obj_body(); + } + this.state = 3824; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,189,this._ctx); + } + + this.state = 3835; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===113) { + this.state = 3825; + this.match(OracleSqlParser.BEGIN); + this.state = 3826; + this.seq_of_statements(); + this.state = 3833; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===533) { + this.state = 3827; + this.match(OracleSqlParser.EXCEPTION); + this.state = 3829; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3828; + this.exception_handler(); + this.state = 3831; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2298); + } + + } + + this.state = 3837; + this.match(OracleSqlParser.END); + this.state = 3839; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2472 || _la===2478) { + this.state = 3838; + this.package_name(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + package_obj_spec() { + let localctx = new Package_obj_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 160, OracleSqlParser.RULE_package_obj_spec); + try { + this.state = 3849; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,194,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3841; + this.pragma_declaration(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3842; + this.exception_declaration(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 3843; + this.procedure_spec(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 3844; + this.function_spec(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 3845; + this.variable_declaration(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 3846; + this.subtype_declaration(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 3847; + this.cursor_declaration(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 3848; + this.type_declaration(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + procedure_spec() { + let localctx = new Procedure_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 162, OracleSqlParser.RULE_procedure_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3851; + this.match(OracleSqlParser.PROCEDURE); + this.state = 3852; + this.identifier(); + this.state = 3864; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 3853; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3854; + this.parameter(); + this.state = 3859; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3855; + this.match(OracleSqlParser.COMMA); + this.state = 3856; + this.parameter(); + this.state = 3861; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3862; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 3870; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===6 || _la===1329) { + this.state = 3868; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 6: + this.state = 3866; + this.accessible_by_clause(); + break; + case 1329: + this.state = 3867; + this.match(OracleSqlParser.PARALLEL_ENABLE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3872; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3873; + this.match(OracleSqlParser.SEMICOLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + function_spec() { + let localctx = new Function_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 164, OracleSqlParser.RULE_function_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3875; + this.match(OracleSqlParser.FUNCTION); + this.state = 3876; + this.identifier(); + this.state = 3888; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 3877; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3878; + this.parameter(); + this.state = 3883; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3879; + this.match(OracleSqlParser.COMMA); + this.state = 3880; + this.parameter(); + this.state = 3885; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3886; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 3890; + this.match(OracleSqlParser.RETURN); + this.state = 3891; + this.type_spec(); + this.state = 3899; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===220 || _la===418 || _la===1301 || _la===1329 || _la===1392 || _la===1577) { + this.state = 3897; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 418: + this.state = 3892; + this.match(OracleSqlParser.DETERMINISTIC); + break; + case 1392: + this.state = 3893; + this.match(OracleSqlParser.PIPELINED); + break; + case 1329: + this.state = 3894; + this.parallel_enable_clause(); + break; + case 1577: + this.state = 3895; + this.match(OracleSqlParser.RESULT_CACHE); + break; + case 220: + case 1301: + this.state = 3896; + this.streaming_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3901; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3902; + this.match(OracleSqlParser.SEMICOLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + package_obj_body() { + let localctx = new Package_obj_bodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 166, OracleSqlParser.RULE_package_obj_body); + try { + this.state = 3915; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,203,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3904; + this.pragma_declaration(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3905; + this.exception_declaration(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 3906; + this.procedure_spec(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 3907; + this.function_spec(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 3908; + this.subtype_declaration(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 3909; + this.cursor_declaration(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 3910; + this.variable_declaration(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 3911; + this.type_declaration(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 3912; + this.procedure_body(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 3913; + this.function_body(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 3914; + this.selection_directive(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_pmem_filestore() { + let localctx = new Alter_pmem_filestoreContext(this, this._ctx, this.state); + this.enterRule(localctx, 168, OracleSqlParser.RULE_alter_pmem_filestore); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3917; + this.match(OracleSqlParser.ALTER); + this.state = 3918; + this.match(OracleSqlParser.PMEM); + this.state = 3919; + this.match(OracleSqlParser.FILESTORE); + this.state = 3920; + localctx.fsn = this.id_expression(); + this.state = 3937; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1565: + this.state = 3921; + this.match(OracleSqlParser.RESIZE); + this.state = 3922; + this.size_clause(); + break; + case 93: + this.state = 3923; + this.autoextend_clause(); + break; + case 986: + this.state = 3924; + this.match(OracleSqlParser.MOUNT); + this.state = 3927; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===988) { + this.state = 3925; + this.match(OracleSqlParser.MOUNTPOINT); + this.state = 3926; + this.file_path(); + } + + this.state = 3931; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===101) { + this.state = 3929; + this.match(OracleSqlParser.BACKINGFILE); + this.state = 3930; + this.filename(); + } + + this.state = 3934; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 3933; + this.match(OracleSqlParser.FORCE); + } + + break; + case 442: + this.state = 3936; + this.match(OracleSqlParser.DISMOUNT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_pmem_filestore() { + let localctx = new Drop_pmem_filestoreContext(this, this._ctx, this.state); + this.enterRule(localctx, 170, OracleSqlParser.RULE_drop_pmem_filestore); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3939; + this.match(OracleSqlParser.DROP); + this.state = 3940; + this.match(OracleSqlParser.PMEM); + this.state = 3941; + this.match(OracleSqlParser.FILESTORE); + this.state = 3942; + localctx.fsn = this.id_expression(); + this.state = 3951; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===538 || _la===614 || _la===703) { + this.state = 3948; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 614: + case 703: + this.state = 3944; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 3943; + this.match(OracleSqlParser.FORCE); + } + + this.state = 3946; + this.match(OracleSqlParser.INCLUDING); + break; + case 538: + this.state = 3947; + this.match(OracleSqlParser.EXCLUDING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3950; + this.match(OracleSqlParser.CONTENTS); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_procedure() { + let localctx = new Drop_procedureContext(this, this._ctx, this.state); + this.enterRule(localctx, 172, OracleSqlParser.RULE_drop_procedure); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3953; + this.match(OracleSqlParser.DROP); + this.state = 3954; + this.match(OracleSqlParser.PROCEDURE); + this.state = 3955; + this.procedure_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_procedure() { + let localctx = new Alter_procedureContext(this, this._ctx, this.state); + this.enterRule(localctx, 174, OracleSqlParser.RULE_alter_procedure); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3957; + this.match(OracleSqlParser.ALTER); + this.state = 3958; + this.match(OracleSqlParser.PROCEDURE); + this.state = 3959; + this.procedure_name(); + this.state = 3960; + this.match(OracleSqlParser.COMPILE); + this.state = 3962; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,211,this._ctx); + if(la_===1) { + this.state = 3961; + this.match(OracleSqlParser.DEBUG); + + } + this.state = 3967; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,212,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3964; + this.compiler_parameters_clause(); + } + this.state = 3969; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,212,this._ctx); + } + + this.state = 3972; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 3970; + this.match(OracleSqlParser.REUSE); + this.state = 3971; + this.match(OracleSqlParser.SETTINGS); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + function_body() { + let localctx = new Function_bodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 176, OracleSqlParser.RULE_function_body); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 3974; + this.match(OracleSqlParser.FUNCTION); + this.state = 3975; + this.identifier(); + this.state = 3987; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 3976; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 3977; + this.parameter(); + this.state = 3982; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 3978; + this.match(OracleSqlParser.COMMA); + this.state = 3979; + this.parameter(); + this.state = 3984; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3985; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 3989; + this.match(OracleSqlParser.RETURN); + this.state = 3990; + this.type_spec(); + this.state = 3999; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,217,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3997; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1392: + this.state = 3991; + this.match(OracleSqlParser.PIPELINED); + break; + case 418: + this.state = 3992; + this.match(OracleSqlParser.DETERMINISTIC); + break; + case 88: + this.state = 3993; + this.invoker_rights_clause(); + break; + case 1329: + this.state = 3994; + this.parallel_enable_clause(); + break; + case 1577: + this.state = 3995; + this.result_cache_clause(); + break; + case 220: + case 1301: + this.state = 3996; + this.streaming_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 4001; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,217,this._ctx); + } + + this.state = 4016; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 69: + case 783: + this.state = 4002; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4011; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,220,this._ctx); + switch(la_) { + case 1: + this.state = 4004; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,218,this._ctx); + if(la_===1) { + this.state = 4003; + this.match(OracleSqlParser.DECLARE); + + } + this.state = 4007; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,219,this._ctx); + if(la_===1) { + this.state = 4006; + this.seq_of_declare_specs(); + + } + this.state = 4009; + this.body(); + break; + + case 2: + this.state = 4010; + this.call_spec(); + break; + + } + break; + case 35: + case 1392: + this.state = 4013; + _la = this._input.LA(1); + if(!(_la===35 || _la===1392)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4014; + this.match(OracleSqlParser.USING); + this.state = 4015; + this.implementation_type_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4018; + this.match(OracleSqlParser.SEMICOLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + procedure_body() { + let localctx = new Procedure_bodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 178, OracleSqlParser.RULE_procedure_body); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4020; + this.match(OracleSqlParser.PROCEDURE); + this.state = 4021; + this.identifier(); + this.state = 4033; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 4022; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 4023; + this.parameter(); + this.state = 4028; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4024; + this.match(OracleSqlParser.COMMA); + this.state = 4025; + this.parameter(); + this.state = 4030; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4031; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 4039; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===6 || _la===1329) { + this.state = 4037; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 6: + this.state = 4035; + this.accessible_by_clause(); + break; + case 1329: + this.state = 4036; + this.match(OracleSqlParser.PARALLEL_ENABLE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4041; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4042; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4052; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,228,this._ctx); + switch(la_) { + case 1: + this.state = 4044; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,226,this._ctx); + if(la_===1) { + this.state = 4043; + this.match(OracleSqlParser.DECLARE); + + } + this.state = 4047; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,227,this._ctx); + if(la_===1) { + this.state = 4046; + this.seq_of_declare_specs(); + + } + this.state = 4049; + this.body(); + break; + + case 2: + this.state = 4050; + this.call_spec(); + break; + + case 3: + this.state = 4051; + this.match(OracleSqlParser.EXTERNAL); + break; + + } + this.state = 4054; + this.match(OracleSqlParser.SEMICOLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_procedure_body() { + let localctx = new Create_procedure_bodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 180, OracleSqlParser.RULE_create_procedure_body); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4056; + this.match(OracleSqlParser.CREATE); + this.state = 4059; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 4057; + this.match(OracleSqlParser.OR); + this.state = 4058; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 4061; + this.match(OracleSqlParser.PROCEDURE); + this.state = 4062; + this.procedure_name(); + this.state = 4074; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 4063; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 4064; + this.parameter(); + this.state = 4069; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4065; + this.match(OracleSqlParser.COMMA); + this.state = 4066; + this.parameter(); + this.state = 4071; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4072; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 4077; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===88) { + this.state = 4076; + this.invoker_rights_clause(); + } + + this.state = 4080; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1329) { + this.state = 4079; + this.match(OracleSqlParser.PARALLEL_ENABLE); + } + + this.state = 4082; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4092; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,236,this._ctx); + switch(la_) { + case 1: + this.state = 4084; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,234,this._ctx); + if(la_===1) { + this.state = 4083; + this.match(OracleSqlParser.DECLARE); + + } + this.state = 4087; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,235,this._ctx); + if(la_===1) { + this.state = 4086; + this.seq_of_declare_specs(); + + } + this.state = 4089; + this.body(); + break; + + case 2: + this.state = 4090; + this.call_spec(); + break; + + case 3: + this.state = 4091; + this.match(OracleSqlParser.EXTERNAL); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_resource_cost() { + let localctx = new Alter_resource_costContext(this, this._ctx, this.state); + this.enterRule(localctx, 182, OracleSqlParser.RULE_alter_resource_cost); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4094; + this.match(OracleSqlParser.ALTER); + this.state = 4095; + this.match(OracleSqlParser.RESOURCE); + this.state = 4096; + this.match(OracleSqlParser.COST); + this.state = 4099; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4097; + _la = this._input.LA(1); + if(!(_la===279 || _la===317 || _la===885 || _la===1454)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4098; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 4101; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===279 || _la===317 || _la===885 || _la===1454); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_outline() { + let localctx = new Drop_outlineContext(this, this._ctx, this.state); + this.enterRule(localctx, 184, OracleSqlParser.RULE_drop_outline); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4103; + this.match(OracleSqlParser.DROP); + this.state = 4104; + this.match(OracleSqlParser.OUTLINE); + this.state = 4105; + localctx.o = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_rollback_segment() { + let localctx = new Alter_rollback_segmentContext(this, this._ctx, this.state); + this.enterRule(localctx, 186, OracleSqlParser.RULE_alter_rollback_segment); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4107; + this.match(OracleSqlParser.ALTER); + this.state = 4108; + this.match(OracleSqlParser.ROLLBACK); + this.state = 4109; + this.match(OracleSqlParser.SEGMENT); + this.state = 4110; + this.rollback_segment_name(); + this.state = 4119; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1254: + this.state = 4111; + this.match(OracleSqlParser.ONLINE); + break; + case 1241: + this.state = 4112; + this.match(OracleSqlParser.OFFLINE); + break; + case 1760: + this.state = 4113; + this.storage_clause(); + break; + case 1682: + this.state = 4114; + this.match(OracleSqlParser.SHRINK); + this.state = 4117; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2139) { + this.state = 4115; + this.match(OracleSqlParser.TO); + this.state = 4116; + this.size_clause(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_restore_point() { + let localctx = new Drop_restore_pointContext(this, this._ctx, this.state); + this.enterRule(localctx, 188, OracleSqlParser.RULE_drop_restore_point); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4121; + this.match(OracleSqlParser.DROP); + this.state = 4122; + this.match(OracleSqlParser.RESTORE); + this.state = 4123; + this.match(OracleSqlParser.POINT); + this.state = 4124; + localctx.rp = this.id_expression(); + this.state = 4129; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===618) { + this.state = 4125; + this.match(OracleSqlParser.FOR); + this.state = 4126; + this.match(OracleSqlParser.PLUGGABLE); + this.state = 4127; + this.match(OracleSqlParser.DATABASE); + this.state = 4128; + localctx.pdb = this.id_expression(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_rollback_segment() { + let localctx = new Drop_rollback_segmentContext(this, this._ctx, this.state); + this.enterRule(localctx, 190, OracleSqlParser.RULE_drop_rollback_segment); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4131; + this.match(OracleSqlParser.DROP); + this.state = 4132; + this.match(OracleSqlParser.ROLLBACK); + this.state = 4133; + this.match(OracleSqlParser.SEGMENT); + this.state = 4134; + this.rollback_segment_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_role() { + let localctx = new Drop_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 192, OracleSqlParser.RULE_drop_role); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4136; + this.match(OracleSqlParser.DROP); + this.state = 4137; + this.match(OracleSqlParser.ROLE); + this.state = 4138; + this.role_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_pmem_filestore() { + let localctx = new Create_pmem_filestoreContext(this, this._ctx, this.state); + this.enterRule(localctx, 194, OracleSqlParser.RULE_create_pmem_filestore); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4140; + this.match(OracleSqlParser.CREATE); + this.state = 4141; + this.match(OracleSqlParser.PMEM); + this.state = 4142; + this.match(OracleSqlParser.FILESTORE); + this.state = 4143; + localctx.fsn = this.id_expression(); + this.state = 4145; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4144; + this.pmem_filestore_options(); + this.state = 4147; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===93 || _la===101 || _la===146 || _la===988 || _la===1697); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pmem_filestore_options() { + let localctx = new Pmem_filestore_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 196, OracleSqlParser.RULE_pmem_filestore_options); + var _la = 0; + try { + this.state = 4159; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 988: + this.enterOuterAlt(localctx, 1); + this.state = 4149; + this.match(OracleSqlParser.MOUNTPOINT); + this.state = 4150; + this.file_path(); + break; + case 101: + this.enterOuterAlt(localctx, 2); + this.state = 4151; + this.match(OracleSqlParser.BACKINGFILE); + this.state = 4152; + this.filename(); + this.state = 4154; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 4153; + this.match(OracleSqlParser.REUSE); + } + + break; + case 146: + case 1697: + this.enterOuterAlt(localctx, 3); + this.state = 4156; + _la = this._input.LA(1); + if(!(_la===146 || _la===1697)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4157; + this.size_clause(); + break; + case 93: + this.enterOuterAlt(localctx, 4); + this.state = 4158; + this.autoextend_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + file_path() { + let localctx = new File_pathContext(this, this._ctx, this.state); + this.enterRule(localctx, 198, OracleSqlParser.RULE_file_path); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4161; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_rollback_segment() { + let localctx = new Create_rollback_segmentContext(this, this._ctx, this.state); + this.enterRule(localctx, 200, OracleSqlParser.RULE_create_rollback_segment); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4163; + this.match(OracleSqlParser.CREATE); + this.state = 4165; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1471) { + this.state = 4164; + this.match(OracleSqlParser.PUBLIC); + } + + this.state = 4167; + this.match(OracleSqlParser.ROLLBACK); + this.state = 4168; + this.match(OracleSqlParser.SEGMENT); + this.state = 4169; + this.rollback_segment_name(); + this.state = 4175; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===1760 || _la===2078) { + this.state = 4173; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2078: + this.state = 4170; + this.match(OracleSqlParser.TABLESPACE); + this.state = 4171; + this.tablespace(); + break; + case 1760: + this.state = 4172; + this.storage_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4177; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_trigger() { + let localctx = new Drop_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 202, OracleSqlParser.RULE_drop_trigger); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4178; + this.match(OracleSqlParser.DROP); + this.state = 4179; + this.match(OracleSqlParser.TRIGGER); + this.state = 4180; + this.trigger_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_trigger() { + let localctx = new Alter_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 204, OracleSqlParser.RULE_alter_trigger); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4182; + this.match(OracleSqlParser.ALTER); + this.state = 4183; + this.match(OracleSqlParser.TRIGGER); + this.state = 4184; + localctx.alter_trigger_name = this.trigger_name(); + this.state = 4203; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 427: + case 497: + this.state = 4185; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 1557: + this.state = 4186; + this.match(OracleSqlParser.RENAME); + this.state = 4187; + this.match(OracleSqlParser.TO); + this.state = 4188; + localctx.rename_trigger_name = this.trigger_name(); + break; + case 249: + this.state = 4189; + this.match(OracleSqlParser.COMPILE); + this.state = 4191; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,247,this._ctx); + if(la_===1) { + this.state = 4190; + this.match(OracleSqlParser.DEBUG); + + } + this.state = 4196; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,248,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4193; + this.compiler_parameters_clause(); + } + this.state = 4198; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,248,this._ctx); + } + + this.state = 4201; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 4199; + this.match(OracleSqlParser.REUSE); + this.state = 4200; + this.match(OracleSqlParser.SETTINGS); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_trigger() { + let localctx = new Create_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 206, OracleSqlParser.RULE_create_trigger); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4205; + this.match(OracleSqlParser.CREATE); + this.state = 4208; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 4206; + this.match(OracleSqlParser.OR); + this.state = 4207; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 4210; + this.match(OracleSqlParser.TRIGGER); + this.state = 4211; + this.trigger_name(); + this.state = 4215; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,252,this._ctx); + switch(la_) { + case 1: + this.state = 4212; + this.simple_dml_trigger(); + break; + + case 2: + this.state = 4213; + this.compound_dml_trigger(); + break; + + case 3: + this.state = 4214; + this.non_dml_trigger(); + break; + + } + this.state = 4218; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===612) { + this.state = 4217; + this.trigger_follows_clause(); + } + + this.state = 4221; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===427 || _la===497) { + this.state = 4220; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 4224; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2298) { + this.state = 4223; + this.trigger_when_clause(); + } + + this.state = 4226; + this.trigger_body(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + trigger_follows_clause() { + let localctx = new Trigger_follows_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 208, OracleSqlParser.RULE_trigger_follows_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4228; + this.match(OracleSqlParser.FOLLOWS); + this.state = 4229; + this.trigger_name(); + this.state = 4234; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4230; + this.match(OracleSqlParser.COMMA); + this.state = 4231; + this.trigger_name(); + this.state = 4236; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + trigger_when_clause() { + let localctx = new Trigger_when_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 210, OracleSqlParser.RULE_trigger_when_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4237; + this.match(OracleSqlParser.WHEN); + this.state = 4238; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 4239; + this.condition(); + this.state = 4240; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + simple_dml_trigger() { + let localctx = new Simple_dml_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 212, OracleSqlParser.RULE_simple_dml_trigger); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4246; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 112: + this.state = 4242; + this.match(OracleSqlParser.BEFORE); + break; + case 33: + this.state = 4243; + this.match(OracleSqlParser.AFTER); + break; + case 761: + this.state = 4244; + this.match(OracleSqlParser.INSTEAD); + this.state = 4245; + this.match(OracleSqlParser.OF); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4248; + this.dml_event_clause(); + this.state = 4250; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1526 || _la===1527) { + this.state = 4249; + this.referencing_clause(); + } + + this.state = 4253; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===618) { + this.state = 4252; + this.for_each_row(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + for_each_row() { + let localctx = new For_each_rowContext(this, this._ctx, this.state); + this.enterRule(localctx, 214, OracleSqlParser.RULE_for_each_row); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4255; + this.match(OracleSqlParser.FOR); + this.state = 4256; + this.match(OracleSqlParser.EACH); + this.state = 4257; + this.match(OracleSqlParser.ROW); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + compound_dml_trigger() { + let localctx = new Compound_dml_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 216, OracleSqlParser.RULE_compound_dml_trigger); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4259; + this.match(OracleSqlParser.FOR); + this.state = 4260; + this.dml_event_clause(); + this.state = 4262; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1526 || _la===1527) { + this.state = 4261; + this.referencing_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + non_dml_trigger() { + let localctx = new Non_dml_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 218, OracleSqlParser.RULE_non_dml_trigger); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4264; + _la = this._input.LA(1); + if(!(_la===33 || _la===112)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4265; + this.non_dml_event(); + this.state = 4270; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===1305) { + this.state = 4266; + this.match(OracleSqlParser.OR); + this.state = 4267; + this.non_dml_event(); + this.state = 4272; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4273; + this.match(OracleSqlParser.ON); + this.state = 4281; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,263,this._ctx); + switch(la_) { + case 1: + this.state = 4274; + this.match(OracleSqlParser.DATABASE); + break; + + case 2: + this.state = 4278; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,262,this._ctx); + if(la_===1) { + this.state = 4275; + this.schema_name(); + this.state = 4276; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 4280; + this.match(OracleSqlParser.SCHEMA); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + trigger_body() { + let localctx = new Trigger_bodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 220, OracleSqlParser.RULE_trigger_body); + try { + this.state = 4287; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 257: + this.enterOuterAlt(localctx, 1); + this.state = 4283; + this.compound_trigger_block(); + break; + case 173: + this.enterOuterAlt(localctx, 2); + this.state = 4284; + this.match(OracleSqlParser.CALL); + this.state = 4285; + this.identifier(); + break; + case 113: + case 380: + this.enterOuterAlt(localctx, 3); + this.state = 4286; + this.trigger_block(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + compound_trigger_block() { + let localctx = new Compound_trigger_blockContext(this, this._ctx, this.state); + this.enterRule(localctx, 222, OracleSqlParser.RULE_compound_trigger_block); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4289; + this.match(OracleSqlParser.COMPOUND); + this.state = 4290; + this.match(OracleSqlParser.TRIGGER); + this.state = 4292; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,265,this._ctx); + if(la_===1) { + this.state = 4291; + this.seq_of_declare_specs(); + + } + this.state = 4295; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4294; + this.timing_point_section(); + this.state = 4297; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===33 || _la===112); + this.state = 4299; + this.match(OracleSqlParser.END); + this.state = 4301; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2472 || _la===2478) { + this.state = 4300; + this.trigger_name(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + timing_point_section() { + let localctx = new Timing_point_sectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 224, OracleSqlParser.RULE_timing_point_section); + try { + this.state = 4339; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,268,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 4303; + localctx.bk = this.match(OracleSqlParser.BEFORE); + this.state = 4304; + this.match(OracleSqlParser.STATEMENT); + this.state = 4305; + this.match(OracleSqlParser.IS); + this.state = 4306; + this.tps_block(); + this.state = 4307; + this.match(OracleSqlParser.BEFORE); + this.state = 4308; + this.match(OracleSqlParser.STATEMENT); + this.state = 4309; + this.match(OracleSqlParser.SEMICOLON); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 4311; + localctx.bk = this.match(OracleSqlParser.BEFORE); + this.state = 4312; + this.match(OracleSqlParser.EACH); + this.state = 4313; + this.match(OracleSqlParser.ROW); + this.state = 4314; + this.match(OracleSqlParser.IS); + this.state = 4315; + this.tps_block(); + this.state = 4316; + this.match(OracleSqlParser.BEFORE); + this.state = 4317; + this.match(OracleSqlParser.EACH); + this.state = 4318; + this.match(OracleSqlParser.ROW); + this.state = 4319; + this.match(OracleSqlParser.SEMICOLON); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 4321; + localctx.ak = this.match(OracleSqlParser.AFTER); + this.state = 4322; + this.match(OracleSqlParser.STATEMENT); + this.state = 4323; + this.match(OracleSqlParser.IS); + this.state = 4324; + this.tps_block(); + this.state = 4325; + this.match(OracleSqlParser.AFTER); + this.state = 4326; + this.match(OracleSqlParser.STATEMENT); + this.state = 4327; + this.match(OracleSqlParser.SEMICOLON); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 4329; + localctx.ak = this.match(OracleSqlParser.AFTER); + this.state = 4330; + this.match(OracleSqlParser.EACH); + this.state = 4331; + this.match(OracleSqlParser.ROW); + this.state = 4332; + this.match(OracleSqlParser.IS); + this.state = 4333; + this.tps_block(); + this.state = 4334; + this.match(OracleSqlParser.AFTER); + this.state = 4335; + this.match(OracleSqlParser.EACH); + this.state = 4336; + this.match(OracleSqlParser.ROW); + this.state = 4337; + this.match(OracleSqlParser.SEMICOLON); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + non_dml_event() { + let localctx = new Non_dml_eventContext(this, this._ctx, this.state); + this.enterRule(localctx, 226, OracleSqlParser.RULE_non_dml_event); + try { + this.state = 4367; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 42: + this.enterOuterAlt(localctx, 1); + this.state = 4341; + this.match(OracleSqlParser.ALTER); + break; + case 46: + this.enterOuterAlt(localctx, 2); + this.state = 4342; + this.match(OracleSqlParser.ANALYZE); + break; + case 77: + this.enterOuterAlt(localctx, 3); + this.state = 4343; + this.match(OracleSqlParser.ASSOCIATE); + this.state = 4344; + this.match(OracleSqlParser.STATISTICS); + break; + case 85: + this.enterOuterAlt(localctx, 4); + this.state = 4345; + this.match(OracleSqlParser.AUDIT); + break; + case 241: + this.enterOuterAlt(localctx, 5); + this.state = 4346; + this.match(OracleSqlParser.COMMENT); + break; + case 319: + this.enterOuterAlt(localctx, 6); + this.state = 4347; + this.match(OracleSqlParser.CREATE); + break; + case 434: + this.enterOuterAlt(localctx, 7); + this.state = 4348; + this.match(OracleSqlParser.DISASSOCIATE); + this.state = 4349; + this.match(OracleSqlParser.STATISTICS); + break; + case 467: + this.enterOuterAlt(localctx, 8); + this.state = 4350; + this.match(OracleSqlParser.DROP); + break; + case 645: + this.enterOuterAlt(localctx, 9); + this.state = 4351; + this.match(OracleSqlParser.GRANT); + break; + case 1057: + this.enterOuterAlt(localctx, 10); + this.state = 4352; + this.match(OracleSqlParser.NOAUDIT); + break; + case 1557: + this.enterOuterAlt(localctx, 11); + this.state = 4353; + this.match(OracleSqlParser.RENAME); + break; + case 1587: + this.enterOuterAlt(localctx, 12); + this.state = 4354; + this.match(OracleSqlParser.REVOKE); + break; + case 2157: + this.enterOuterAlt(localctx, 13); + this.state = 4355; + this.match(OracleSqlParser.TRUNCATE); + break; + case 374: + this.enterOuterAlt(localctx, 14); + this.state = 4356; + this.match(OracleSqlParser.DDL); + break; + case 1737: + this.enterOuterAlt(localctx, 15); + this.state = 4357; + this.match(OracleSqlParser.STARTUP); + break; + case 1683: + this.enterOuterAlt(localctx, 16); + this.state = 4358; + this.match(OracleSqlParser.SHUTDOWN); + break; + case 370: + this.enterOuterAlt(localctx, 17); + this.state = 4359; + this.match(OracleSqlParser.DB_ROLE_CHANGE); + break; + case 889: + this.enterOuterAlt(localctx, 18); + this.state = 4360; + this.match(OracleSqlParser.LOGON); + break; + case 888: + this.enterOuterAlt(localctx, 19); + this.state = 4361; + this.match(OracleSqlParser.LOGOFF); + break; + case 1660: + this.enterOuterAlt(localctx, 20); + this.state = 4362; + this.match(OracleSqlParser.SERVERERROR); + break; + case 1788: + this.enterOuterAlt(localctx, 21); + this.state = 4363; + this.match(OracleSqlParser.SUSPEND); + break; + case 348: + this.enterOuterAlt(localctx, 22); + this.state = 4364; + this.match(OracleSqlParser.DATABASE); + break; + case 1623: + this.enterOuterAlt(localctx, 23); + this.state = 4365; + this.match(OracleSqlParser.SCHEMA); + break; + case 612: + this.enterOuterAlt(localctx, 24); + this.state = 4366; + this.match(OracleSqlParser.FOLLOWS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dml_event_clause() { + let localctx = new Dml_event_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 228, OracleSqlParser.RULE_dml_event_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4369; + this.dml_event_element(); + this.state = 4374; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===1305) { + this.state = 4370; + this.match(OracleSqlParser.OR); + this.state = 4371; + this.dml_event_element(); + this.state = 4376; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4377; + this.match(OracleSqlParser.ON); + this.state = 4379; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,271,this._ctx); + if(la_===1) { + this.state = 4378; + this.dml_event_nested_clause(); + + } + this.state = 4381; + this.tableview_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dml_event_element() { + let localctx = new Dml_event_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 230, OracleSqlParser.RULE_dml_event_element); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4383; + _la = this._input.LA(1); + if(!(_la===401 || _la===754 || _la===2205)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4386; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1244) { + this.state = 4384; + this.match(OracleSqlParser.OF); + this.state = 4385; + this.column_list(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dml_event_nested_clause() { + let localctx = new Dml_event_nested_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 232, OracleSqlParser.RULE_dml_event_nested_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4388; + this.match(OracleSqlParser.NESTED); + this.state = 4389; + this.match(OracleSqlParser.TABLE); + this.state = 4390; + this.tableview_name(); + this.state = 4391; + this.match(OracleSqlParser.OF); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + referencing_clause() { + let localctx = new Referencing_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 234, OracleSqlParser.RULE_referencing_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4396; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1527: + this.state = 4393; + this.match(OracleSqlParser.REFERENCING); + this.state = 4394; + this.referencing_element(); + break; + case 1526: + this.state = 4395; + this.match(OracleSqlParser.REFERENCES); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4401; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===1019 || _la===1248 || _la===1335) { + this.state = 4398; + this.referencing_element(); + this.state = 4403; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + referencing_element() { + let localctx = new Referencing_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 236, OracleSqlParser.RULE_referencing_element); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4404; + _la = this._input.LA(1); + if(!(_la===1019 || _la===1248 || _la===1335)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4405; + this.column_alias(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_type() { + let localctx = new Drop_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 238, OracleSqlParser.RULE_drop_type); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4407; + this.match(OracleSqlParser.DROP); + this.state = 4408; + this.match(OracleSqlParser.TYPE); + this.state = 4410; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,275,this._ctx); + if(la_===1) { + this.state = 4409; + this.match(OracleSqlParser.BODY); + + } + this.state = 4412; + this.type_name(); + this.state = 4414; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===2251) { + this.state = 4413; + _la = this._input.LA(1); + if(!(_la===614 || _la===2251)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_type() { + let localctx = new Alter_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 240, OracleSqlParser.RULE_alter_type); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4416; + this.match(OracleSqlParser.ALTER); + this.state = 4417; + this.match(OracleSqlParser.TYPE); + this.state = 4418; + this.type_name(); + this.state = 4425; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,277,this._ctx); + switch(la_) { + case 1: + this.state = 4419; + this.compile_type_clause(); + break; + + case 2: + this.state = 4420; + this.replace_type_clause(); + break; + + case 3: + this.state = 4421; + this.alter_method_spec(); + break; + + case 4: + this.state = 4422; + this.alter_collection_clauses(); + break; + + case 5: + this.state = 4423; + this.modifier_clause(); + break; + + case 6: + this.state = 4424; + this.overriding_subprogram_spec(); + break; + + } + this.state = 4428; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179 || _la===778) { + this.state = 4427; + this.dependent_handling_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + compile_type_clause() { + let localctx = new Compile_type_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 242, OracleSqlParser.RULE_compile_type_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4430; + this.match(OracleSqlParser.COMPILE); + this.state = 4432; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,279,this._ctx); + if(la_===1) { + this.state = 4431; + this.match(OracleSqlParser.DEBUG); + + } + this.state = 4435; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,280,this._ctx); + if(la_===1) { + this.state = 4434; + _la = this._input.LA(1); + if(!(_la===147 || _la===1713)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 4440; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,281,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4437; + this.compiler_parameters_clause(); + } + this.state = 4442; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,281,this._ctx); + } + + this.state = 4445; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 4443; + this.match(OracleSqlParser.REUSE); + this.state = 4444; + this.match(OracleSqlParser.SETTINGS); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + replace_type_clause() { + let localctx = new Replace_type_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 244, OracleSqlParser.RULE_replace_type_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4447; + this.match(OracleSqlParser.REPLACE); + this.state = 4449; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===88) { + this.state = 4448; + this.invoker_rights_clause(); + } + + this.state = 4451; + this.match(OracleSqlParser.AS); + this.state = 4452; + this.match(OracleSqlParser.OBJECT); + this.state = 4453; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 4454; + this.object_member_spec(); + this.state = 4459; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4455; + this.match(OracleSqlParser.COMMA); + this.state = 4456; + this.object_member_spec(); + this.state = 4461; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4462; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_method_spec() { + let localctx = new Alter_method_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 246, OracleSqlParser.RULE_alter_method_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4464; + this.alter_method_element(); + this.state = 4469; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4465; + this.match(OracleSqlParser.COMMA); + this.state = 4466; + this.alter_method_element(); + this.state = 4471; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_method_element() { + let localctx = new Alter_method_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 248, OracleSqlParser.RULE_alter_method_element); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4472; + _la = this._input.LA(1); + if(!(_la===21 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4475; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 908: + case 1301: + this.state = 4473; + this.map_order_function_spec(); + break; + case 934: + case 1743: + this.state = 4474; + this.subprogram_spec(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_collection_clauses() { + let localctx = new Alter_collection_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 250, OracleSqlParser.RULE_alter_collection_clauses); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4477; + this.match(OracleSqlParser.MODIFY); + this.state = 4483; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 856: + this.state = 4478; + this.match(OracleSqlParser.LIMIT); + this.state = 4479; + this.expression(); + break; + case 484: + this.state = 4480; + this.match(OracleSqlParser.ELEMENT); + this.state = 4481; + this.match(OracleSqlParser.TYPE); + this.state = 4482; + this.type_spec(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dependent_handling_clause() { + let localctx = new Dependent_handling_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 252, OracleSqlParser.RULE_dependent_handling_clause); + var _la = 0; + try { + this.state = 4501; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 778: + this.enterOuterAlt(localctx, 1); + this.state = 4485; + this.match(OracleSqlParser.INVALIDATE); + break; + case 179: + this.enterOuterAlt(localctx, 2); + this.state = 4486; + this.match(OracleSqlParser.CASCADE); + this.state = 4496; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 298: + this.state = 4487; + this.match(OracleSqlParser.CONVERT); + this.state = 4488; + this.match(OracleSqlParser.TO); + this.state = 4489; + this.match(OracleSqlParser.SUBSTITUTABLE); + break; + case 703: + case 1202: + this.state = 4491; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 4490; + this.match(OracleSqlParser.NOT); + } + + this.state = 4493; + this.match(OracleSqlParser.INCLUDING); + this.state = 4494; + this.match(OracleSqlParser.TABLE); + this.state = 4495; + this.match(OracleSqlParser.DATA); + break; + case -1: + case 535: + case 614: + case 2452: + case 2467: + break; + default: + break; + } + this.state = 4499; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===535 || _la===614) { + this.state = 4498; + this.dependent_exceptions_part(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dependent_exceptions_part() { + let localctx = new Dependent_exceptions_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 254, OracleSqlParser.RULE_dependent_exceptions_part); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4504; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 4503; + this.match(OracleSqlParser.FORCE); + } + + this.state = 4506; + this.match(OracleSqlParser.EXCEPTIONS); + this.state = 4507; + this.match(OracleSqlParser.INTO); + this.state = 4508; + this.tableview_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_type() { + let localctx = new Create_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 256, OracleSqlParser.RULE_create_type); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4510; + this.match(OracleSqlParser.CREATE); + this.state = 4513; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 4511; + this.match(OracleSqlParser.OR); + this.state = 4512; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 4516; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===480 || _la===1130) { + this.state = 4515; + _la = this._input.LA(1); + if(!(_la===480 || _la===1130)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 4518; + this.match(OracleSqlParser.TYPE); + this.state = 4521; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,295,this._ctx); + switch(la_) { + case 1: + this.state = 4519; + this.type_definition(); + break; + + case 2: + this.state = 4520; + this.type_body(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + type_definition() { + let localctx = new Type_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 258, OracleSqlParser.RULE_type_definition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4523; + this.type_name(); + this.state = 4526; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1246) { + this.state = 4524; + this.match(OracleSqlParser.OID); + this.state = 4525; + this.match(OracleSqlParser.CHAR_STRING); + } + + this.state = 4529; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 4528; + this.match(OracleSqlParser.FORCE); + } + + this.state = 4532; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69 || _la===88 || _la===783 || _la===2175) { + this.state = 4531; + this.object_type_def(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_type_def() { + let localctx = new Object_type_defContext(this, this._ctx, this.state); + this.enterRule(localctx, 260, OracleSqlParser.RULE_object_type_def); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4535; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===88) { + this.state = 4534; + this.invoker_rights_clause(); + } + + this.state = 4539; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 69: + case 783: + this.state = 4537; + this.object_as_part(); + break; + case 2175: + this.state = 4538; + this.object_under_part(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4542; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===558) { + this.state = 4541; + this.sqlj_object_type(); + } + + this.state = 4555; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 4544; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 4545; + this.object_member_spec(); + this.state = 4550; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4546; + this.match(OracleSqlParser.COMMA); + this.state = 4547; + this.object_member_spec(); + this.state = 4552; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4553; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 4560; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===593 || _la===759 || _la===1202 || _la===1322) { + this.state = 4557; + this.modifier_clause(); + this.state = 4562; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_as_part() { + let localctx = new Object_as_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 262, OracleSqlParser.RULE_object_as_part); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4563; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4567; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1236: + this.state = 4564; + this.match(OracleSqlParser.OBJECT); + break; + case 68: + case 2265: + case 2267: + this.state = 4565; + this.varray_type_def(); + break; + case 2081: + this.state = 4566; + this.nested_table_type_def(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_under_part() { + let localctx = new Object_under_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 264, OracleSqlParser.RULE_object_under_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4569; + this.match(OracleSqlParser.UNDER); + this.state = 4570; + this.type_spec(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + nested_table_type_def() { + let localctx = new Nested_table_type_defContext(this, this._ctx, this.state); + this.enterRule(localctx, 266, OracleSqlParser.RULE_nested_table_type_def); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4572; + this.match(OracleSqlParser.TABLE); + this.state = 4573; + this.match(OracleSqlParser.OF); + this.state = 4574; + this.type_spec(); + this.state = 4577; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,306,this._ctx); + if(la_===1) { + this.state = 4575; + this.match(OracleSqlParser.NOT); + this.state = 4576; + this.match(OracleSqlParser.NULL_); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sqlj_object_type() { + let localctx = new Sqlj_object_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 268, OracleSqlParser.RULE_sqlj_object_type); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4579; + this.match(OracleSqlParser.EXTERNAL); + this.state = 4580; + this.match(OracleSqlParser.NAME); + this.state = 4581; + this.expression(); + this.state = 4582; + this.match(OracleSqlParser.LANGUAGE); + this.state = 4583; + this.match(OracleSqlParser.JAVA); + this.state = 4584; + this.match(OracleSqlParser.USING); + this.state = 4585; + _la = this._input.LA(1); + if(!(_la===344 || _la===1277 || _la===1717)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + type_body() { + let localctx = new Type_bodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 270, OracleSqlParser.RULE_type_body); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4587; + this.match(OracleSqlParser.BODY); + this.state = 4588; + this.type_name(); + this.state = 4589; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4591; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4590; + this.type_body_elements(); + this.state = 4593; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===908 || _la===934 || _la===1301 || _la===1322 || _la===1743); + this.state = 4595; + this.match(OracleSqlParser.END); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + type_body_elements() { + let localctx = new Type_body_elementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 272, OracleSqlParser.RULE_type_body_elements); + try { + this.state = 4600; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 908: + case 1301: + this.enterOuterAlt(localctx, 1); + this.state = 4597; + this.map_order_func_declaration(); + break; + case 934: + case 1743: + this.enterOuterAlt(localctx, 2); + this.state = 4598; + this.subprog_decl_in_type(); + break; + case 1322: + this.enterOuterAlt(localctx, 3); + this.state = 4599; + this.overriding_subprogram_spec(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + map_order_func_declaration() { + let localctx = new Map_order_func_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 274, OracleSqlParser.RULE_map_order_func_declaration); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4602; + _la = this._input.LA(1); + if(!(_la===908 || _la===1301)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4603; + this.match(OracleSqlParser.MEMBER); + this.state = 4604; + this.func_decl_in_type(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subprog_decl_in_type() { + let localctx = new Subprog_decl_in_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 276, OracleSqlParser.RULE_subprog_decl_in_type); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4606; + _la = this._input.LA(1); + if(!(_la===934 || _la===1743)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4610; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1459: + this.state = 4607; + this.proc_decl_in_type(); + break; + case 630: + this.state = 4608; + this.func_decl_in_type(); + break; + case 286: + case 593: + case 759: + this.state = 4609; + this.constructor_declaration(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + proc_decl_in_type() { + let localctx = new Proc_decl_in_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 278, OracleSqlParser.RULE_proc_decl_in_type); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4612; + this.match(OracleSqlParser.PROCEDURE); + this.state = 4613; + this.procedure_name(); + this.state = 4614; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 4615; + this.type_elements_parameter(); + this.state = 4620; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4616; + this.match(OracleSqlParser.COMMA); + this.state = 4617; + this.type_elements_parameter(); + this.state = 4622; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4623; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 4624; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4635; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,313,this._ctx); + switch(la_) { + case 1: + this.state = 4625; + this.call_spec(); + break; + + case 2: + this.state = 4627; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,311,this._ctx); + if(la_===1) { + this.state = 4626; + this.match(OracleSqlParser.DECLARE); + + } + this.state = 4630; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,312,this._ctx); + if(la_===1) { + this.state = 4629; + this.seq_of_declare_specs(); + + } + this.state = 4632; + this.body(); + this.state = 4633; + this.match(OracleSqlParser.SEMICOLON); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + func_decl_in_type() { + let localctx = new Func_decl_in_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 280, OracleSqlParser.RULE_func_decl_in_type); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4637; + this.match(OracleSqlParser.FUNCTION); + this.state = 4638; + this.function_name(); + this.state = 4650; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 4639; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 4640; + this.type_elements_parameter(); + this.state = 4645; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4641; + this.match(OracleSqlParser.COMMA); + this.state = 4642; + this.type_elements_parameter(); + this.state = 4647; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4648; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 4652; + this.match(OracleSqlParser.RETURN); + this.state = 4653; + this.type_spec(); + this.state = 4654; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4665; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,318,this._ctx); + switch(la_) { + case 1: + this.state = 4655; + this.call_spec(); + break; + + case 2: + this.state = 4657; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,316,this._ctx); + if(la_===1) { + this.state = 4656; + this.match(OracleSqlParser.DECLARE); + + } + this.state = 4660; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,317,this._ctx); + if(la_===1) { + this.state = 4659; + this.seq_of_declare_specs(); + + } + this.state = 4662; + this.body(); + this.state = 4663; + this.match(OracleSqlParser.SEMICOLON); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + constructor_declaration() { + let localctx = new Constructor_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 282, OracleSqlParser.RULE_constructor_declaration); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4668; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===593) { + this.state = 4667; + this.match(OracleSqlParser.FINAL); + } + + this.state = 4671; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===759) { + this.state = 4670; + this.match(OracleSqlParser.INSTANTIABLE); + } + + this.state = 4673; + this.match(OracleSqlParser.CONSTRUCTOR); + this.state = 4674; + this.match(OracleSqlParser.FUNCTION); + this.state = 4675; + this.type_spec(); + this.state = 4693; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 4676; + this.match(OracleSqlParser.LEFT_PAREN); + + this.state = 4677; + this.match(OracleSqlParser.SELF); + this.state = 4678; + this.match(OracleSqlParser.IN); + this.state = 4679; + this.match(OracleSqlParser.OUT); + this.state = 4680; + this.type_spec(); + this.state = 4681; + this.match(OracleSqlParser.COMMA); + this.state = 4683; + this.type_elements_parameter(); + this.state = 4688; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4684; + this.match(OracleSqlParser.COMMA); + this.state = 4685; + this.type_elements_parameter(); + this.state = 4690; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4691; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 4695; + this.match(OracleSqlParser.RETURN); + this.state = 4696; + this.match(OracleSqlParser.SELF); + this.state = 4697; + this.match(OracleSqlParser.AS); + this.state = 4698; + this.match(OracleSqlParser.RESULT); + this.state = 4699; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4710; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,325,this._ctx); + switch(la_) { + case 1: + this.state = 4700; + this.call_spec(); + break; + + case 2: + this.state = 4702; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,323,this._ctx); + if(la_===1) { + this.state = 4701; + this.match(OracleSqlParser.DECLARE); + + } + this.state = 4705; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,324,this._ctx); + if(la_===1) { + this.state = 4704; + this.seq_of_declare_specs(); + + } + this.state = 4707; + this.body(); + this.state = 4708; + this.match(OracleSqlParser.SEMICOLON); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modifier_clause() { + let localctx = new Modifier_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 284, OracleSqlParser.RULE_modifier_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4713; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 4712; + this.match(OracleSqlParser.NOT); + } + + this.state = 4715; + _la = this._input.LA(1); + if(!(_la===593 || _la===759 || _la===1322)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_member_spec() { + let localctx = new Object_member_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 286, OracleSqlParser.RULE_object_member_spec); + var _la = 0; + try { + this.state = 4723; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,328,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 4717; + this.identifier(); + this.state = 4718; + this.type_spec(); + this.state = 4720; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===558) { + this.state = 4719; + this.sqlj_object_type_attr(); + } + + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 4722; + this.element_spec(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sqlj_object_type_attr() { + let localctx = new Sqlj_object_type_attrContext(this, this._ctx, this.state); + this.enterRule(localctx, 288, OracleSqlParser.RULE_sqlj_object_type_attr); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4725; + this.match(OracleSqlParser.EXTERNAL); + this.state = 4726; + this.match(OracleSqlParser.NAME); + this.state = 4727; + this.expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + element_spec() { + let localctx = new Element_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 290, OracleSqlParser.RULE_element_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4730; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,329,this._ctx); + if(la_===1) { + this.state = 4729; + this.modifier_clause(); + + } + this.state = 4733; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4732; + this.element_spec_options(); + this.state = 4735; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===286 || _la===593 || _la===759 || _la===908 || _la===934 || _la===1301 || _la===1743); + this.state = 4739; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,331,this._ctx); + if(la_===1) { + this.state = 4737; + this.match(OracleSqlParser.COMMA); + this.state = 4738; + this.pragma_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + element_spec_options() { + let localctx = new Element_spec_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 292, OracleSqlParser.RULE_element_spec_options); + try { + this.state = 4744; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 934: + case 1743: + this.enterOuterAlt(localctx, 1); + this.state = 4741; + this.subprogram_spec(); + break; + case 286: + case 593: + case 759: + this.enterOuterAlt(localctx, 2); + this.state = 4742; + this.constructor_spec(); + break; + case 908: + case 1301: + this.enterOuterAlt(localctx, 3); + this.state = 4743; + this.map_order_function_spec(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subprogram_spec() { + let localctx = new Subprogram_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 294, OracleSqlParser.RULE_subprogram_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4746; + _la = this._input.LA(1); + if(!(_la===934 || _la===1743)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4749; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1459: + this.state = 4747; + this.type_procedure_spec(); + break; + case 630: + this.state = 4748; + this.type_function_spec(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + overriding_subprogram_spec() { + let localctx = new Overriding_subprogram_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 296, OracleSqlParser.RULE_overriding_subprogram_spec); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4751; + this.match(OracleSqlParser.OVERRIDING); + this.state = 4752; + this.match(OracleSqlParser.MEMBER); + this.state = 4753; + this.overriding_function_spec(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + overriding_function_spec() { + let localctx = new Overriding_function_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 298, OracleSqlParser.RULE_overriding_function_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4755; + this.match(OracleSqlParser.FUNCTION); + this.state = 4756; + this.function_name(); + this.state = 4768; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 4757; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 4758; + this.type_elements_parameter(); + this.state = 4763; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4759; + this.match(OracleSqlParser.COMMA); + this.state = 4760; + this.type_elements_parameter(); + this.state = 4765; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4766; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 4770; + this.match(OracleSqlParser.RETURN); + this.state = 4775; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,336,this._ctx); + switch(la_) { + case 1: + this.state = 4771; + this.type_spec(); + break; + + case 2: + this.state = 4772; + this.match(OracleSqlParser.SELF); + this.state = 4773; + this.match(OracleSqlParser.AS); + this.state = 4774; + this.match(OracleSqlParser.RESULT); + break; + + } + this.state = 4788; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69 || _la===783 || _la===1392) { + this.state = 4778; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1392) { + this.state = 4777; + this.match(OracleSqlParser.PIPELINED); + } + + this.state = 4780; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + this.state = 4782; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,338,this._ctx); + if(la_===1) { + this.state = 4781; + this.match(OracleSqlParser.DECLARE); + + } + this.state = 4785; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,339,this._ctx); + if(la_===1) { + this.state = 4784; + this.seq_of_declare_specs(); + + } + this.state = 4787; + this.body(); + } + + this.state = 4791; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,341,this._ctx); + if(la_===1) { + this.state = 4790; + this.match(OracleSqlParser.SEMICOLON); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + type_procedure_spec() { + let localctx = new Type_procedure_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 300, OracleSqlParser.RULE_type_procedure_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4793; + this.match(OracleSqlParser.PROCEDURE); + this.state = 4794; + this.procedure_name(); + this.state = 4795; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 4796; + this.type_elements_parameter(); + this.state = 4801; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4797; + this.match(OracleSqlParser.COMMA); + this.state = 4798; + this.type_elements_parameter(); + this.state = 4803; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4804; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 4807; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69 || _la===783) { + this.state = 4805; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4806; + this.call_spec(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + type_function_spec() { + let localctx = new Type_function_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 302, OracleSqlParser.RULE_type_function_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4809; + this.match(OracleSqlParser.FUNCTION); + this.state = 4810; + this.function_name(); + this.state = 4822; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 4811; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 4812; + this.type_elements_parameter(); + this.state = 4817; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4813; + this.match(OracleSqlParser.COMMA); + this.state = 4814; + this.type_elements_parameter(); + this.state = 4819; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4820; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 4824; + this.match(OracleSqlParser.RETURN); + this.state = 4829; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,346,this._ctx); + switch(la_) { + case 1: + this.state = 4825; + this.type_spec(); + break; + + case 2: + this.state = 4826; + this.match(OracleSqlParser.SELF); + this.state = 4827; + this.match(OracleSqlParser.AS); + this.state = 4828; + this.match(OracleSqlParser.RESULT); + break; + + } + this.state = 4839; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 69: + case 783: + this.state = 4831; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4832; + this.call_spec(); + break; + case 558: + this.state = 4833; + this.match(OracleSqlParser.EXTERNAL); + this.state = 4835; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2260) { + this.state = 4834; + this.match(OracleSqlParser.VARIABLE); + } + + this.state = 4837; + this.match(OracleSqlParser.NAME); + this.state = 4838; + this.expression(); + break; + case -1: + case 179: + case 286: + case 593: + case 759: + case 778: + case 908: + case 934: + case 1301: + case 1743: + case 2446: + case 2451: + case 2452: + case 2467: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + constructor_spec() { + let localctx = new Constructor_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 304, OracleSqlParser.RULE_constructor_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4842; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===593) { + this.state = 4841; + this.match(OracleSqlParser.FINAL); + } + + this.state = 4845; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===759) { + this.state = 4844; + this.match(OracleSqlParser.INSTANTIABLE); + } + + this.state = 4847; + this.match(OracleSqlParser.CONSTRUCTOR); + this.state = 4848; + this.match(OracleSqlParser.FUNCTION); + this.state = 4849; + this.type_spec(); + this.state = 4867; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 4850; + this.match(OracleSqlParser.LEFT_PAREN); + + this.state = 4851; + this.match(OracleSqlParser.SELF); + this.state = 4852; + this.match(OracleSqlParser.IN); + this.state = 4853; + this.match(OracleSqlParser.OUT); + this.state = 4854; + this.type_spec(); + this.state = 4855; + this.match(OracleSqlParser.COMMA); + this.state = 4857; + this.type_elements_parameter(); + this.state = 4862; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4858; + this.match(OracleSqlParser.COMMA); + this.state = 4859; + this.type_elements_parameter(); + this.state = 4864; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4865; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 4869; + this.match(OracleSqlParser.RETURN); + this.state = 4870; + this.match(OracleSqlParser.SELF); + this.state = 4871; + this.match(OracleSqlParser.AS); + this.state = 4872; + this.match(OracleSqlParser.RESULT); + this.state = 4875; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69 || _la===783) { + this.state = 4873; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4874; + this.call_spec(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + map_order_function_spec() { + let localctx = new Map_order_function_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 306, OracleSqlParser.RULE_map_order_function_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4877; + _la = this._input.LA(1); + if(!(_la===908 || _la===1301)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4878; + this.match(OracleSqlParser.MEMBER); + this.state = 4879; + this.type_function_spec(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pragma_clause() { + let localctx = new Pragma_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 308, OracleSqlParser.RULE_pragma_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4881; + this.match(OracleSqlParser.PRAGMA); + this.state = 4882; + this.match(OracleSqlParser.RESTRICT_REFERENCES); + this.state = 4883; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 4884; + this.pragma_elements(); + this.state = 4889; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 4885; + this.match(OracleSqlParser.COMMA); + this.state = 4886; + this.pragma_elements(); + this.state = 4891; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4892; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pragma_elements() { + let localctx = new Pragma_elementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 310, OracleSqlParser.RULE_pragma_elements); + try { + this.state = 4896; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 4894; + this.identifier(); + break; + case 387: + this.enterOuterAlt(localctx, 2); + this.state = 4895; + this.match(OracleSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + type_elements_parameter() { + let localctx = new Type_elements_parameterContext(this, this._ctx, this.state); + this.enterRule(localctx, 312, OracleSqlParser.RULE_type_elements_parameter); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4898; + this.parameter_name(); + this.state = 4899; + this.type_spec(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_sequence() { + let localctx = new Drop_sequenceContext(this, this._ctx, this.state); + this.enterRule(localctx, 314, OracleSqlParser.RULE_drop_sequence); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4901; + this.match(OracleSqlParser.DROP); + this.state = 4902; + this.match(OracleSqlParser.SEQUENCE); + this.state = 4903; + this.sequence_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_sequence() { + let localctx = new Alter_sequenceContext(this, this._ctx, this.state); + this.enterRule(localctx, 316, OracleSqlParser.RULE_alter_sequence); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4905; + this.match(OracleSqlParser.ALTER); + this.state = 4906; + this.match(OracleSqlParser.SEQUENCE); + this.state = 4907; + this.sequence_name(); + this.state = 4909; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4908; + this.sequence_spec(); + this.state = 4911; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===166 || _la===346 || _la===640 || _la===705 || _la===812 || _la===930 || _la===958 || _la===1064 || _la===1082 || ((((_la - 1112)) & ~0x1f) === 0 && ((1 << (_la - 1112)) & 67110017) !== 0) || _la===1179 || _la===1185 || _la===1301 || _la===1618 || _la===1665 || _la===1674 || _la===1735); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_session() { + let localctx = new Alter_sessionContext(this, this._ctx, this.state); + this.enterRule(localctx, 318, OracleSqlParser.RULE_alter_session); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4913; + this.match(OracleSqlParser.ALTER); + this.state = 4914; + this.match(OracleSqlParser.SESSION); + this.state = 4944; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,360,this._ctx); + switch(la_) { + case 1: + this.state = 4915; + this.match(OracleSqlParser.ADVISE); + this.state = 4916; + _la = this._input.LA(1); + if(!(_la===242 || _la===1199 || _la===1594)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 4917; + this.match(OracleSqlParser.CLOSE); + this.state = 4918; + this.match(OracleSqlParser.DATABASE); + this.state = 4919; + this.match(OracleSqlParser.LINK); + this.state = 4920; + this.parameter_name(); + break; + + case 3: + this.state = 4921; + this.enable_or_disable(); + this.state = 4922; + this.match(OracleSqlParser.COMMIT); + this.state = 4923; + this.match(OracleSqlParser.IN); + this.state = 4924; + this.match(OracleSqlParser.PROCEDURE); + break; + + case 4: + this.state = 4926; + this.enable_or_disable(); + this.state = 4927; + this.match(OracleSqlParser.GUARD); + break; + + case 5: + this.state = 4931; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 427: + case 497: + this.state = 4929; + this.enable_or_disable(); + break; + case 614: + this.state = 4930; + this.match(OracleSqlParser.FORCE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4933; + this.match(OracleSqlParser.PARALLEL); + this.state = 4934; + _la = this._input.LA(1); + if(!(_la===374 || _la===447 || _la===1482)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4940; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1331) { + this.state = 4935; + this.match(OracleSqlParser.PARALLEL); + this.state = 4938; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,358,this._ctx); + switch(la_) { + case 1: + this.state = 4936; + this.literal(); + break; + + case 2: + this.state = 4937; + this.parameter_name(); + break; + + } + } + + break; + + case 6: + this.state = 4942; + this.match(OracleSqlParser.SET); + this.state = 4943; + this.alter_session_set_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_session_set_clause() { + let localctx = new Alter_session_set_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 320, OracleSqlParser.RULE_alter_session_set_clause); + var _la = 0; + try { + this.state = 4976; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,364,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 4950; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4946; + this.parameter_name(); + this.state = 4947; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 4948; + this.parameter_value(); + this.state = 4952; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2472 || _la===2478); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 4954; + this.match(OracleSqlParser.EDITION); + this.state = 4955; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 4956; + localctx.en = this.id_expression(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 4957; + this.match(OracleSqlParser.CONTAINER); + this.state = 4958; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 4959; + localctx.cn = this.id_expression(); + this.state = 4963; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1662) { + this.state = 4960; + this.match(OracleSqlParser.SERVICE); + this.state = 4961; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 4962; + localctx.sn = this.id_expression(); + } + + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 4965; + this.match(OracleSqlParser.ROW); + this.state = 4966; + this.match(OracleSqlParser.ARCHIVAL); + this.state = 4967; + this.match(OracleSqlParser.VISIBILITY); + this.state = 4968; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 4969; + _la = this._input.LA(1); + if(!(_la===14 || _la===38)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 4970; + this.match(OracleSqlParser.DEFAULT_COLLATION); + this.state = 4971; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 4974; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,363,this._ctx); + switch(la_) { + case 1: + this.state = 4972; + localctx.c = this.id_expression(); + break; + + case 2: + this.state = 4973; + this.match(OracleSqlParser.NONE); + break; + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_sequence() { + let localctx = new Create_sequenceContext(this, this._ctx, this.state); + this.enterRule(localctx, 322, OracleSqlParser.RULE_create_sequence); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 4978; + this.match(OracleSqlParser.CREATE); + this.state = 4979; + this.match(OracleSqlParser.SEQUENCE); + this.state = 4983; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,365,this._ctx); + if(la_===1) { + this.state = 4980; + this.match(OracleSqlParser.IF); + this.state = 4981; + this.match(OracleSqlParser.NOT); + this.state = 4982; + this.match(OracleSqlParser.EXISTS); + + } + this.state = 4985; + this.sequence_name(); + this.state = 4989; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===166 || _la===346 || _la===640 || _la===705 || _la===812 || _la===930 || _la===958 || _la===1064 || _la===1082 || ((((_la - 1112)) & ~0x1f) === 0 && ((1 << (_la - 1112)) & 67110017) !== 0) || _la===1179 || _la===1185 || _la===1301 || _la===1618 || _la===1665 || _la===1674 || _la===1735) { + this.state = 4986; + this.sequence_spec(); + this.state = 4991; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4995; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1679) { + this.state = 4992; + this.match(OracleSqlParser.SHARING); + this.state = 4993; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 4994; + _la = this._input.LA(1); + if(!(_la===349 || _la===946 || _la===1131)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sequence_spec() { + let localctx = new Sequence_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 324, OracleSqlParser.RULE_sequence_spec); + var _la = 0; + try { + this.state = 5028; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 705: + this.enterOuterAlt(localctx, 1); + this.state = 4997; + this.match(OracleSqlParser.INCREMENT); + this.state = 4998; + this.match(OracleSqlParser.BY); + this.state = 4999; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 1735: + this.enterOuterAlt(localctx, 2); + this.state = 5000; + this.sequence_start_clause(); + break; + case 930: + this.enterOuterAlt(localctx, 3); + this.state = 5001; + this.match(OracleSqlParser.MAXVALUE); + this.state = 5002; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 1119: + this.enterOuterAlt(localctx, 4); + this.state = 5003; + this.match(OracleSqlParser.NOMAXVALUE); + break; + case 958: + this.enterOuterAlt(localctx, 5); + this.state = 5004; + this.match(OracleSqlParser.MINVALUE); + this.state = 5005; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 1122: + this.enterOuterAlt(localctx, 6); + this.state = 5006; + this.match(OracleSqlParser.NOMINVALUE); + break; + case 346: + this.enterOuterAlt(localctx, 7); + this.state = 5007; + this.match(OracleSqlParser.CYCLE); + break; + case 1082: + this.enterOuterAlt(localctx, 8); + this.state = 5008; + this.match(OracleSqlParser.NOCYCLE); + break; + case 166: + this.enterOuterAlt(localctx, 9); + this.state = 5009; + this.match(OracleSqlParser.CACHE); + this.state = 5010; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 1064: + this.enterOuterAlt(localctx, 10); + this.state = 5011; + this.match(OracleSqlParser.NOCACHE); + break; + case 1301: + this.enterOuterAlt(localctx, 11); + this.state = 5012; + this.match(OracleSqlParser.ORDER); + break; + case 1138: + this.enterOuterAlt(localctx, 12); + this.state = 5013; + this.match(OracleSqlParser.NOORDER); + break; + case 812: + this.enterOuterAlt(localctx, 13); + this.state = 5014; + this.match(OracleSqlParser.KEEP); + break; + case 1112: + this.enterOuterAlt(localctx, 14); + this.state = 5015; + this.match(OracleSqlParser.NOKEEP); + break; + case 1618: + this.enterOuterAlt(localctx, 15); + this.state = 5016; + this.match(OracleSqlParser.SCALE); + this.state = 5018; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1098 || _la===2427) { + this.state = 5017; + _la = this._input.LA(1); + if(!(_la===1098 || _la===2427)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + case 1179: + this.enterOuterAlt(localctx, 16); + this.state = 5020; + this.match(OracleSqlParser.NOSCALE); + break; + case 1674: + this.enterOuterAlt(localctx, 17); + this.state = 5021; + this.match(OracleSqlParser.SHARD); + this.state = 5023; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1098 || _la===2427) { + this.state = 5022; + _la = this._input.LA(1); + if(!(_la===1098 || _la===2427)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + case 1185: + this.enterOuterAlt(localctx, 18); + this.state = 5025; + this.match(OracleSqlParser.NOSHARD); + break; + case 1665: + this.enterOuterAlt(localctx, 19); + this.state = 5026; + this.match(OracleSqlParser.SESSION); + break; + case 640: + this.enterOuterAlt(localctx, 20); + this.state = 5027; + this.match(OracleSqlParser.GLOBAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sequence_start_clause() { + let localctx = new Sequence_start_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 326, OracleSqlParser.RULE_sequence_start_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5030; + this.match(OracleSqlParser.START); + this.state = 5031; + this.match(OracleSqlParser.WITH); + this.state = 5032; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_analytic_view() { + let localctx = new Create_analytic_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 328, OracleSqlParser.RULE_create_analytic_view); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5034; + this.match(OracleSqlParser.CREATE); + this.state = 5037; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 5035; + this.match(OracleSqlParser.OR); + this.state = 5036; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 5040; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 5039; + _la = this._input.LA(1); + if(!(_la===614 || _la===1102)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5042; + this.match(OracleSqlParser.ANALYTIC); + this.state = 5043; + this.match(OracleSqlParser.VIEW); + this.state = 5044; + localctx.av = this.id_expression(); + this.state = 5048; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1679) { + this.state = 5045; + this.match(OracleSqlParser.SHARING); + this.state = 5046; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 5047; + _la = this._input.LA(1); + if(!(_la===946 || _la===1131)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5053; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===177 || _la===207 || _la===413) { + this.state = 5050; + this.classification_clause(); + this.state = 5055; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5057; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 5056; + this.cav_using_clause(); + } + + this.state = 5060; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===420) { + this.state = 5059; + this.dim_by_clause(); + } + + this.state = 5063; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===932) { + this.state = 5062; + this.measures_clause(); + } + + this.state = 5066; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,378,this._ctx); + if(la_===1) { + this.state = 5065; + this.default_measure_clause(); + + } + this.state = 5069; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 5068; + this.default_aggregate_clause(); + } + + this.state = 5072; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===166) { + this.state = 5071; + this.cache_clause(); + } + + this.state = 5075; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===565) { + this.state = 5074; + this.fact_columns_clause(); + } + + this.state = 5078; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===497) { + this.state = 5077; + this.qry_transform_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + classification_clause() { + let localctx = new Classification_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 330, OracleSqlParser.RULE_classification_clause); + var _la = 0; + try { + this.state = 5107; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,390,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5088; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,385,this._ctx); + switch(la_) { + case 1: + this.state = 5080; + this.caption_clause(); + this.state = 5082; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,383,this._ctx); + if(la_===1) { + this.state = 5081; + this.description_clause(); + + } + break; + + case 2: + this.state = 5085; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===177) { + this.state = 5084; + this.caption_clause(); + } + + this.state = 5087; + this.description_clause(); + break; + + } + this.state = 5093; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,386,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5090; + this.classification_item(); + } + this.state = 5095; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,386,this._ctx); + } + + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5097; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===177) { + this.state = 5096; + this.caption_clause(); + } + + this.state = 5100; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===413) { + this.state = 5099; + this.description_clause(); + } + + this.state = 5103; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 5102; + this.classification_item(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5105; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,389, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + caption_clause() { + let localctx = new Caption_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 332, OracleSqlParser.RULE_caption_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5109; + this.match(OracleSqlParser.CAPTION); + this.state = 5110; + localctx.c = this.quoted_string(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + description_clause() { + let localctx = new Description_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 334, OracleSqlParser.RULE_description_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5112; + this.match(OracleSqlParser.DESCRIPTION); + this.state = 5113; + localctx.d = this.quoted_string(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + classification_item() { + let localctx = new Classification_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 336, OracleSqlParser.RULE_classification_item); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5115; + this.match(OracleSqlParser.CLASSIFICATION); + this.state = 5116; + localctx.cn = this.id_expression(); + this.state = 5119; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2256) { + this.state = 5117; + this.match(OracleSqlParser.VALUE); + this.state = 5118; + localctx.cv = this.quoted_string(); + } + + this.state = 5123; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===821) { + this.state = 5121; + this.match(OracleSqlParser.LANGUAGE); + this.state = 5122; + this.language(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + language() { + let localctx = new LanguageContext(this, this._ctx, this.state); + this.enterRule(localctx, 338, OracleSqlParser.RULE_language); + try { + this.state = 5127; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1226: + this.enterOuterAlt(localctx, 1); + this.state = 5125; + this.match(OracleSqlParser.NULL_); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.enterOuterAlt(localctx, 2); + this.state = 5126; + localctx.nls = this.id_expression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cav_using_clause() { + let localctx = new Cav_using_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 340, OracleSqlParser.RULE_cav_using_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5129; + this.match(OracleSqlParser.USING); + this.state = 5133; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,394,this._ctx); + if(la_===1) { + this.state = 5130; + this.schema_name(); + this.state = 5131; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5135; + localctx.t = this.id_expression(); + this.state = 5137; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,395,this._ctx); + if(la_===1) { + this.state = 5136; + this.match(OracleSqlParser.REMOTE); + + } + this.state = 5143; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,397,this._ctx); + if(la_===1) { + this.state = 5140; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 5139; + this.match(OracleSqlParser.AS); + } + + this.state = 5142; + localctx.ta = this.id_expression(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dim_by_clause() { + let localctx = new Dim_by_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 342, OracleSqlParser.RULE_dim_by_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5145; + this.match(OracleSqlParser.DIMENSION); + this.state = 5146; + this.match(OracleSqlParser.BY); + this.state = 5147; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 5148; + this.dim_key(); + this.state = 5153; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5149; + this.match(OracleSqlParser.COMMA); + this.state = 5150; + this.dim_key(); + this.state = 5155; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5156; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dim_key() { + let localctx = new Dim_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 344, OracleSqlParser.RULE_dim_key); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5158; + this.dim_ref(); + this.state = 5162; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===177 || _la===207 || _la===413) { + this.state = 5159; + this.classification_clause(); + this.state = 5164; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5165; + this.match(OracleSqlParser.KEY); + this.state = 5193; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 5166; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 5170; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,400,this._ctx); + if(la_===1) { + this.state = 5167; + localctx.a = this.id_expression(); + this.state = 5168; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5172; + localctx.f = this.column_name(); + this.state = 5182; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5173; + this.match(OracleSqlParser.COMMA); + this.state = 5177; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,401,this._ctx); + if(la_===1) { + this.state = 5174; + localctx.a = this.id_expression(); + this.state = 5175; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5179; + localctx.f = this.column_name(); + this.state = 5184; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5185; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 5190; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,403,this._ctx); + if(la_===1) { + this.state = 5187; + localctx.a = this.id_expression(); + this.state = 5188; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5192; + localctx.f = this.column_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5195; + this.match(OracleSqlParser.REFERENCES); + this.state = 5197; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===443) { + this.state = 5196; + this.match(OracleSqlParser.DISTINCT); + } + + this.state = 5207; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 5199; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 5200; + this.attribute_name(); + + this.state = 5201; + this.match(OracleSqlParser.COMMA); + this.state = 5202; + this.attribute_name(); + this.state = 5204; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 5206; + this.attribute_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5209; + this.match(OracleSqlParser.HIERARCHIES); + this.state = 5210; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 5211; + this.hier_ref(); + this.state = 5216; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5212; + this.match(OracleSqlParser.COMMA); + this.state = 5213; + this.hier_ref(); + this.state = 5218; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5219; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dim_ref() { + let localctx = new Dim_refContext(this, this._ctx, this.state); + this.enterRule(localctx, 346, OracleSqlParser.RULE_dim_ref); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5224; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,408,this._ctx); + if(la_===1) { + this.state = 5221; + this.schema_name(); + this.state = 5222; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5226; + localctx.ad = this.id_expression(); + this.state = 5231; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,410,this._ctx); + if(la_===1) { + this.state = 5228; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 5227; + this.match(OracleSqlParser.AS); + } + + this.state = 5230; + localctx.da = this.id_expression(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hier_ref() { + let localctx = new Hier_refContext(this, this._ctx, this.state); + this.enterRule(localctx, 348, OracleSqlParser.RULE_hier_ref); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5236; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,411,this._ctx); + if(la_===1) { + this.state = 5233; + this.schema_name(); + this.state = 5234; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5238; + localctx.h = this.id_expression(); + this.state = 5243; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434615) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 5240; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 5239; + this.match(OracleSqlParser.AS); + } + + this.state = 5242; + localctx.ha = this.id_expression(); + } + + this.state = 5246; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 5245; + this.match(OracleSqlParser.DEFAULT); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + measures_clause() { + let localctx = new Measures_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 350, OracleSqlParser.RULE_measures_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5248; + this.match(OracleSqlParser.MEASURES); + this.state = 5249; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 5250; + this.av_measure(); + this.state = 5255; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5251; + this.match(OracleSqlParser.COMMA); + this.state = 5252; + this.av_measure(); + this.state = 5257; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5258; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + av_measure() { + let localctx = new Av_measureContext(this, this._ctx, this.state); + this.enterRule(localctx, 352, OracleSqlParser.RULE_av_measure); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5260; + localctx.mn = this.id_expression(); + this.state = 5263; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 565: + this.state = 5261; + this.base_meas_clause(); + break; + case 69: + this.state = 5262; + this.calc_meas_clause(); + break; + case 2446: + case 2451: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + base_meas_clause() { + let localctx = new Base_meas_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 354, OracleSqlParser.RULE_base_meas_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5265; + this.match(OracleSqlParser.FACT); + this.state = 5266; + localctx.bm = this.id_expression(); + this.state = 5268; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===35) { + this.state = 5267; + this.meas_aggregate_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + meas_aggregate_clause() { + let localctx = new Meas_aggregate_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 356, OracleSqlParser.RULE_meas_aggregate_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5270; + this.match(OracleSqlParser.AGGREGATE); + this.state = 5271; + this.match(OracleSqlParser.BY); + this.state = 5272; + this.aggregate_function_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + calc_meas_clause() { + let localctx = new Calc_meas_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 358, OracleSqlParser.RULE_calc_meas_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5274; + this.match(OracleSqlParser.AS); + this.state = 5275; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 5276; + this.expression(); + this.state = 5277; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_measure_clause() { + let localctx = new Default_measure_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 360, OracleSqlParser.RULE_default_measure_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5279; + this.match(OracleSqlParser.DEFAULT); + this.state = 5280; + this.match(OracleSqlParser.MEASURE); + this.state = 5281; + localctx.m = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_aggregate_clause() { + let localctx = new Default_aggregate_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 362, OracleSqlParser.RULE_default_aggregate_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5283; + this.match(OracleSqlParser.DEFAULT); + this.state = 5284; + this.match(OracleSqlParser.AGGREGATE); + this.state = 5285; + this.match(OracleSqlParser.BY); + this.state = 5286; + this.aggregate_function_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cache_clause() { + let localctx = new Cache_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 364, OracleSqlParser.RULE_cache_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5288; + this.match(OracleSqlParser.CACHE); + this.state = 5289; + this.cache_specification(); + this.state = 5294; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5290; + this.match(OracleSqlParser.COMMA); + this.state = 5291; + this.cache_specification(); + this.state = 5296; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cache_specification() { + let localctx = new Cache_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 366, OracleSqlParser.RULE_cache_specification); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5297; + this.match(OracleSqlParser.MEASURE); + this.state = 5298; + this.match(OracleSqlParser.GROUP); + this.state = 5318; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 38: + this.state = 5299; + this.match(OracleSqlParser.ALL); + break; + case 2445: + this.state = 5300; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 5301; + this.id_expression(); + this.state = 5306; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5302; + this.match(OracleSqlParser.COMMA); + this.state = 5303; + this.id_expression(); + this.state = 5308; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5309; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 5310; + this.levels_clause(); + this.state = 5315; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,420,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5311; + this.match(OracleSqlParser.COMMA); + this.state = 5312; + this.levels_clause(); + } + this.state = 5317; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,420,this._ctx); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + levels_clause() { + let localctx = new Levels_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 368, OracleSqlParser.RULE_levels_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5320; + this.match(OracleSqlParser.LEVELS); + this.state = 5321; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 5322; + this.level_specification(); + this.state = 5327; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5323; + this.match(OracleSqlParser.COMMA); + this.state = 5324; + this.level_specification(); + this.state = 5329; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5330; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 5331; + this.level_group_type(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + level_specification() { + let localctx = new Level_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 370, OracleSqlParser.RULE_level_specification); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5333; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 5342; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,424,this._ctx); + if(la_===1) { + this.state = 5337; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,423,this._ctx); + if(la_===1) { + this.state = 5334; + localctx.d = this.id_expression(); + this.state = 5335; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5339; + localctx.h = this.id_expression(); + this.state = 5340; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5344; + localctx.l = this.id_expression(); + this.state = 5345; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + level_group_type() { + let localctx = new Level_group_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 372, OracleSqlParser.RULE_level_group_type); + var _la = 0; + try { + this.state = 5358; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 475: + this.enterOuterAlt(localctx, 1); + this.state = 5347; + this.match(OracleSqlParser.DYNAMIC); + break; + case 917: + this.enterOuterAlt(localctx, 2); + this.state = 5348; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 5356; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 5349; + this.match(OracleSqlParser.USING); + this.state = 5353; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,425,this._ctx); + if(la_===1) { + this.state = 5350; + this.schema_name(); + this.state = 5351; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5355; + localctx.t = this.id_expression(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + fact_columns_clause() { + let localctx = new Fact_columns_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 374, OracleSqlParser.RULE_fact_columns_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5360; + this.match(OracleSqlParser.FACT); + this.state = 5361; + this.match(OracleSqlParser.COLUMN); + this.state = 5362; + localctx.f = this.column_name(); + this.state = 5377; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,431,this._ctx); + if(la_===1) { + this.state = 5364; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 5363; + this.match(OracleSqlParser.AS); + } + + this.state = 5366; + localctx.fa = this.id_expression(); + this.state = 5374; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5367; + this.match(OracleSqlParser.COMMA); + this.state = 5369; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 5368; + this.match(OracleSqlParser.AS); + } + + this.state = 5371; + localctx.fa = this.id_expression(); + this.state = 5376; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + qry_transform_clause() { + let localctx = new Qry_transform_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 376, OracleSqlParser.RULE_qry_transform_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5379; + this.match(OracleSqlParser.ENABLE); + this.state = 5380; + this.match(OracleSqlParser.QUERY); + this.state = 5381; + this.match(OracleSqlParser.TRANSFORM); + this.state = 5383; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1168 || _la===1552) { + this.state = 5382; + _la = this._input.LA(1); + if(!(_la===1168 || _la===1552)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_attribute_dimension() { + let localctx = new Create_attribute_dimensionContext(this, this._ctx, this.state); + this.enterRule(localctx, 378, OracleSqlParser.RULE_create_attribute_dimension); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5385; + this.match(OracleSqlParser.CREATE); + this.state = 5388; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 5386; + this.match(OracleSqlParser.OR); + this.state = 5387; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 5391; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 5390; + _la = this._input.LA(1); + if(!(_la===614 || _la===1102)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5393; + this.match(OracleSqlParser.ATTRIBUTE); + this.state = 5394; + this.match(OracleSqlParser.DIMENSION); + this.state = 5398; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,435,this._ctx); + if(la_===1) { + this.state = 5395; + this.schema_name(); + this.state = 5396; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5400; + localctx.ad = this.id_expression(); + this.state = 5404; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1679) { + this.state = 5401; + this.match(OracleSqlParser.SHARING); + this.state = 5402; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 5403; + _la = this._input.LA(1); + if(!(_la===946 || _la===1131)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5409; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===177 || _la===207 || _la===413) { + this.state = 5406; + this.classification_clause(); + this.state = 5411; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5415; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===420) { + this.state = 5412; + this.match(OracleSqlParser.DIMENSION); + this.state = 5413; + this.match(OracleSqlParser.TYPE); + this.state = 5414; + _la = this._input.LA(1); + if(!(_la===1728 || _la===2110)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5417; + this.ad_using_clause(); + this.state = 5418; + this.attributes_clause(); + this.state = 5420; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5419; + this.ad_level_clause(); + this.state = 5422; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===844); + this.state = 5425; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===38) { + this.state = 5424; + this.all_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + ad_using_clause() { + let localctx = new Ad_using_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 380, OracleSqlParser.RULE_ad_using_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5427; + this.match(OracleSqlParser.USING); + this.state = 5428; + this.source_clause(); + this.state = 5433; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5429; + this.match(OracleSqlParser.COMMA); + this.state = 5430; + this.source_clause(); + this.state = 5435; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5439; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===792) { + this.state = 5436; + this.join_path_clause(); + this.state = 5441; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + source_clause() { + let localctx = new Source_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 382, OracleSqlParser.RULE_source_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5445; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,443,this._ctx); + if(la_===1) { + this.state = 5442; + this.schema_name(); + this.state = 5443; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5447; + localctx.ftov = this.id_expression(); + this.state = 5449; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,444,this._ctx); + if(la_===1) { + this.state = 5448; + this.match(OracleSqlParser.REMOTE); + + } + this.state = 5455; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,446,this._ctx); + if(la_===1) { + this.state = 5452; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 5451; + this.match(OracleSqlParser.AS); + } + + this.state = 5454; + localctx.a = this.id_expression(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + join_path_clause() { + let localctx = new Join_path_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 384, OracleSqlParser.RULE_join_path_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5457; + this.match(OracleSqlParser.JOIN); + this.state = 5458; + this.match(OracleSqlParser.PATH); + this.state = 5459; + localctx.jpn = this.id_expression(); + this.state = 5460; + this.match(OracleSqlParser.ON); + this.state = 5461; + this.join_condition(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + join_condition() { + let localctx = new Join_conditionContext(this, this._ctx, this.state); + this.enterRule(localctx, 386, OracleSqlParser.RULE_join_condition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5463; + this.join_condition_item(); + this.state = 5468; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===49) { + this.state = 5464; + this.match(OracleSqlParser.AND); + this.state = 5465; + this.join_condition_item(); + this.state = 5470; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + join_condition_item() { + let localctx = new Join_condition_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 388, OracleSqlParser.RULE_join_condition_item); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5474; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,448,this._ctx); + if(la_===1) { + this.state = 5471; + localctx.a = this.id_expression(); + this.state = 5472; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5476; + this.column_name(); + this.state = 5477; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 5481; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,449,this._ctx); + if(la_===1) { + this.state = 5478; + localctx.b = this.id_expression(); + this.state = 5479; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5483; + this.column_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + attributes_clause() { + let localctx = new Attributes_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 390, OracleSqlParser.RULE_attributes_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5485; + this.match(OracleSqlParser.ATTRIBUTES); + this.state = 5486; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 5487; + this.ad_attributes_clause(); + this.state = 5492; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5488; + this.match(OracleSqlParser.COMMA); + this.state = 5489; + this.ad_attributes_clause(); + this.state = 5494; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5495; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + ad_attributes_clause() { + let localctx = new Ad_attributes_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 392, OracleSqlParser.RULE_ad_attributes_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5500; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,451,this._ctx); + if(la_===1) { + this.state = 5497; + localctx.a = this.id_expression(); + this.state = 5498; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5502; + this.column_name(); + this.state = 5507; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,453,this._ctx); + if(la_===1) { + this.state = 5504; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 5503; + this.match(OracleSqlParser.AS); + } + + this.state = 5506; + localctx.an = this.id_expression(); + + } + this.state = 5512; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===177 || _la===207 || _la===413) { + this.state = 5509; + this.classification_clause(); + this.state = 5514; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + ad_level_clause() { + let localctx = new Ad_level_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 394, OracleSqlParser.RULE_ad_level_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5515; + this.match(OracleSqlParser.LEVEL); + this.state = 5516; + localctx.l = this.id_expression(); + this.state = 5522; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 1202: + this.state = 5517; + this.match(OracleSqlParser.NOT); + this.state = 5518; + this.match(OracleSqlParser.NULL_); + break; + case 1700: + this.state = 5519; + this.match(OracleSqlParser.SKIP_); + this.state = 5520; + this.match(OracleSqlParser.WHEN); + this.state = 5521; + this.match(OracleSqlParser.NULL_); + break; + case 177: + case 207: + case 413: + case 814: + case 844: + break; + default: + break; + } + this.state = 5527; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===844) { + this.state = 5524; + this.match(OracleSqlParser.LEVEL); + this.state = 5525; + this.match(OracleSqlParser.TYPE); + this.state = 5526; + _la = this._input.LA(1); + if(!(_la===364 || _la===656 || _la===678 || _la===957 || _la===985 || _la===1480 || _la===1635 || _la===1728 || _la===2294 || _la===2355)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5532; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===177 || _la===207 || _la===413) { + this.state = 5529; + this.classification_clause(); + this.state = 5534; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5535; + this.key_clause(); + this.state = 5537; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===43) { + this.state = 5536; + this.alternate_key_clause(); + } + + this.state = 5542; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,459,this._ctx); + if(la_===1) { + this.state = 5539; + this.match(OracleSqlParser.MEMBER); + this.state = 5540; + this.match(OracleSqlParser.NAME); + this.state = 5541; + this.expression(); + + } + this.state = 5547; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,460,this._ctx); + if(la_===1) { + this.state = 5544; + this.match(OracleSqlParser.MEMBER); + this.state = 5545; + this.match(OracleSqlParser.CAPTION); + this.state = 5546; + this.expression(); + + } + this.state = 5552; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===934) { + this.state = 5549; + this.match(OracleSqlParser.MEMBER); + this.state = 5550; + this.match(OracleSqlParser.DESCRIPTION); + this.state = 5551; + this.expression(); + } + + this.state = 5570; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1301) { + this.state = 5554; + this.match(OracleSqlParser.ORDER); + this.state = 5555; + this.match(OracleSqlParser.BY); + this.state = 5557; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,462,this._ctx); + if(la_===1) { + this.state = 5556; + _la = this._input.LA(1); + if(!(_la===2404 || _la===2407)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 5559; + this.dim_order_clause(); + this.state = 5567; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5560; + this.match(OracleSqlParser.COMMA); + this.state = 5562; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,463,this._ctx); + if(la_===1) { + this.state = 5561; + _la = this._input.LA(1); + if(!(_la===2404 || _la===2407)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 5564; + this.dim_order_clause(); + this.state = 5569; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 5584; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===417) { + this.state = 5572; + this.match(OracleSqlParser.DETERMINES); + this.state = 5573; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 5574; + this.id_expression(); + this.state = 5579; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5575; + this.match(OracleSqlParser.COMMA); + this.state = 5576; + this.id_expression(); + this.state = 5581; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5582; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + key_clause() { + let localctx = new Key_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 396, OracleSqlParser.RULE_key_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5586; + this.match(OracleSqlParser.KEY); + this.state = 5599; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 5587; + localctx.a = this.id_expression(); + break; + case 2445: + this.state = 5588; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 5589; + this.id_expression(); + this.state = 5594; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5590; + this.match(OracleSqlParser.COMMA); + this.state = 5591; + this.id_expression(); + this.state = 5596; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5597; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alternate_key_clause() { + let localctx = new Alternate_key_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 398, OracleSqlParser.RULE_alternate_key_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5601; + this.match(OracleSqlParser.ALTERNATE); + this.state = 5602; + this.key_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dim_order_clause() { + let localctx = new Dim_order_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 400, OracleSqlParser.RULE_dim_order_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5604; + localctx.a = this.id_expression(); + this.state = 5606; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===70 || _la===412) { + this.state = 5605; + _la = this._input.LA(1); + if(!(_la===70 || _la===412)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5610; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1227) { + this.state = 5608; + this.match(OracleSqlParser.NULLS); + this.state = 5609; + _la = this._input.LA(1); + if(!(_la===596 || _la===823)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + all_clause() { + let localctx = new All_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 402, OracleSqlParser.RULE_all_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5612; + this.match(OracleSqlParser.ALL); + this.state = 5613; + this.match(OracleSqlParser.MEMBER); + this.state = 5630; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 995: + this.state = 5614; + this.match(OracleSqlParser.NAME); + this.state = 5615; + this.expression(); + this.state = 5619; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===934) { + this.state = 5616; + this.match(OracleSqlParser.MEMBER); + this.state = 5617; + this.match(OracleSqlParser.CAPTION); + this.state = 5618; + this.expression(); + } + + break; + case 177: + this.state = 5621; + this.match(OracleSqlParser.CAPTION); + this.state = 5622; + this.expression(); + this.state = 5626; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===934) { + this.state = 5623; + this.match(OracleSqlParser.MEMBER); + this.state = 5624; + this.match(OracleSqlParser.DESCRIPTION); + this.state = 5625; + this.expression(); + } + + break; + case 413: + this.state = 5628; + this.match(OracleSqlParser.DESCRIPTION); + this.state = 5629; + this.expression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_audit_policy() { + let localctx = new Create_audit_policyContext(this, this._ctx, this.state); + this.enterRule(localctx, 404, OracleSqlParser.RULE_create_audit_policy); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5632; + this.match(OracleSqlParser.CREATE); + this.state = 5633; + this.match(OracleSqlParser.AUDIT); + this.state = 5634; + this.match(OracleSqlParser.POLICY); + this.state = 5635; + localctx.p = this.id_expression(); + this.state = 5637; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1457) { + this.state = 5636; + this.privilege_audit_clause(); + } + + this.state = 5640; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===12) { + this.state = 5639; + this.action_audit_clause(); + } + + this.state = 5643; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1593) { + this.state = 5642; + this.role_audit_clause(); + } + + this.state = 5651; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2298) { + this.state = 5645; + this.match(OracleSqlParser.WHEN); + this.state = 5646; + this.quoted_string(); + this.state = 5647; + this.match(OracleSqlParser.EVALUATE); + this.state = 5648; + this.match(OracleSqlParser.PER); + this.state = 5649; + _la = this._input.LA(1); + if(!(_la===757 || _la===1665 || _la===1741)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5655; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1256) { + this.state = 5653; + this.match(OracleSqlParser.ONLY); + this.state = 5654; + this.match(OracleSqlParser.TOPLEVEL); + } + + this.state = 5658; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===287) { + this.state = 5657; + this.container_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + privilege_audit_clause() { + let localctx = new Privilege_audit_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 406, OracleSqlParser.RULE_privilege_audit_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5660; + this.match(OracleSqlParser.PRIVILEGES); + this.state = 5661; + this.system_privilege(); + this.state = 5666; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5662; + this.match(OracleSqlParser.COMMA); + this.state = 5663; + this.system_privilege(); + this.state = 5668; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + action_audit_clause() { + let localctx = new Action_audit_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 408, OracleSqlParser.RULE_action_audit_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5672; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 5672; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,482,this._ctx); + switch(la_) { + case 1: + this.state = 5669; + this.standard_actions(); + break; + + case 2: + this.state = 5670; + this.component_actions(); + break; + + case 3: + this.state = 5671; + this.system_actions(); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5674; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,483, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + system_actions() { + let localctx = new System_actionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 410, OracleSqlParser.RULE_system_actions); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5676; + this.match(OracleSqlParser.ACTIONS); + this.state = 5677; + this.system_privilege(); + this.state = 5682; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5678; + this.match(OracleSqlParser.COMMA); + this.state = 5679; + this.system_privilege(); + this.state = 5684; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + standard_actions() { + let localctx = new Standard_actionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 412, OracleSqlParser.RULE_standard_actions); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5685; + this.match(OracleSqlParser.ACTIONS); + this.state = 5686; + this.actions_clause(); + this.state = 5691; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5687; + this.match(OracleSqlParser.COMMA); + this.state = 5688; + this.actions_clause(); + this.state = 5693; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + actions_clause() { + let localctx = new Actions_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 414, OracleSqlParser.RULE_actions_clause); + try { + this.state = 5717; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,491,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5696; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 42: + case 85: + case 241: + case 401: + case 540: + case 603: + case 645: + case 715: + case 754: + case 879: + case 1503: + case 1557: + case 1645: + case 2205: + this.state = 5694; + this.object_action(); + break; + case 38: + this.state = 5695; + this.match(OracleSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5698; + this.match(OracleSqlParser.ON); + this.state = 5711; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,489,this._ctx); + switch(la_) { + case 1: + this.state = 5699; + this.match(OracleSqlParser.DIRECTORY); + this.state = 5700; + this.directory_name(); + break; + + case 2: + this.state = 5703; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,487,this._ctx); + if(la_===1) { + this.state = 5701; + this.match(OracleSqlParser.MINING); + this.state = 5702; + this.match(OracleSqlParser.MODEL); + + } + this.state = 5708; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,488,this._ctx); + if(la_===1) { + this.state = 5705; + this.schema_name(); + this.state = 5706; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5710; + this.id_expression(); + break; + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5715; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 319: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 467: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 879: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 5713; + this.system_action(); + break; + case 38: + this.state = 5714; + this.match(OracleSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_action() { + let localctx = new Object_actionContext(this, this._ctx, this.state); + this.enterRule(localctx, 416, OracleSqlParser.RULE_object_action); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5719; + _la = this._input.LA(1); + if(!(_la===42 || _la===85 || _la===241 || _la===401 || _la===540 || _la===603 || _la===645 || _la===715 || _la===754 || _la===879 || _la===1503 || _la===1557 || _la===1645 || _la===2205)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + system_action() { + let localctx = new System_actionContext(this, this._ctx, this.state); + this.enterRule(localctx, 418, OracleSqlParser.RULE_system_action); + var _la = 0; + try { + this.state = 5728; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,492,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5721; + this.id_expression(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5722; + _la = this._input.LA(1); + if(!(_la===42 || _la===319 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5723; + this.match(OracleSqlParser.JAVA); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5724; + this.match(OracleSqlParser.LOCK); + this.state = 5725; + this.match(OracleSqlParser.TABLE); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 5726; + _la = this._input.LA(1); + if(!(_la===540 || _la===1503 || _la===2311)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5727; + this.match(OracleSqlParser.DIRECTORY); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + component_actions() { + let localctx = new Component_actionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 420, OracleSqlParser.RULE_component_actions); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5730; + this.match(OracleSqlParser.ACTIONS); + this.state = 5731; + this.match(OracleSqlParser.COMPONENT); + this.state = 5732; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 5758; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 357: + case 423: + case 1250: + case 2353: + this.state = 5733; + _la = this._input.LA(1); + if(!(_la===357 || _la===423 || _la===1250 || _la===2353)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5734; + this.component_action(); + this.state = 5739; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5735; + this.match(OracleSqlParser.COMMA); + this.state = 5736; + this.component_action(); + this.state = 5741; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 474: + this.state = 5742; + this.match(OracleSqlParser.DV); + this.state = 5743; + this.component_action(); + this.state = 5744; + this.match(OracleSqlParser.ON); + this.state = 5745; + this.id_expression(); + this.state = 5753; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5746; + this.match(OracleSqlParser.COMMA); + this.state = 5747; + this.component_action(); + this.state = 5748; + this.match(OracleSqlParser.ON); + this.state = 5749; + this.id_expression(); + this.state = 5755; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 1468: + this.state = 5756; + this.match(OracleSqlParser.PROTOCOL); + this.state = 5757; + _la = this._input.LA(1); + if(!(_la===87 || _la===632 || _la===679)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + component_action() { + let localctx = new Component_actionContext(this, this._ctx, this.state); + this.enterRule(localctx, 422, OracleSqlParser.RULE_component_action); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5760; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + role_audit_clause() { + let localctx = new Role_audit_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 424, OracleSqlParser.RULE_role_audit_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5762; + this.match(OracleSqlParser.ROLES); + this.state = 5763; + this.role_name(); + this.state = 5768; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5764; + this.match(OracleSqlParser.COMMA); + this.state = 5765; + this.role_name(); + this.state = 5770; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_controlfile() { + let localctx = new Create_controlfileContext(this, this._ctx, this.state); + this.enterRule(localctx, 426, OracleSqlParser.RULE_create_controlfile); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5771; + this.match(OracleSqlParser.CREATE); + this.state = 5772; + this.match(OracleSqlParser.CONTROLFILE); + this.state = 5774; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 5773; + this.match(OracleSqlParser.REUSE); + } + + this.state = 5777; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1669) { + this.state = 5776; + this.match(OracleSqlParser.SET); + } + + this.state = 5779; + this.match(OracleSqlParser.DATABASE); + this.state = 5780; + localctx.d = this.id_expression(); + this.state = 5782; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===880) { + this.state = 5781; + this.logfile_clause(); + } + + this.state = 5784; + _la = this._input.LA(1); + if(!(_la===1171 || _la===1563)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5794; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===350) { + this.state = 5785; + this.match(OracleSqlParser.DATAFILE); + this.state = 5786; + this.file_specification(); + this.state = 5791; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5787; + this.match(OracleSqlParser.COMMA); + this.state = 5788; + this.file_specification(); + this.state = 5793; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 5799; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===66 || _la===614 || ((((_la - 920)) & ~0x1f) === 0 && ((1 << (_la - 920)) & 121) !== 0) || _la===1056 || _la===1669) { + this.state = 5796; + this.controlfile_options(); + this.state = 5801; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5803; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===193) { + this.state = 5802; + this.character_set_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + controlfile_options() { + let localctx = new Controlfile_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 428, OracleSqlParser.RULE_controlfile_options); + try { + this.state = 5829; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 924: + this.enterOuterAlt(localctx, 1); + this.state = 5805; + this.match(OracleSqlParser.MAXLOGFILES); + this.state = 5806; + this.numeric(); + break; + case 926: + this.enterOuterAlt(localctx, 2); + this.state = 5807; + this.match(OracleSqlParser.MAXLOGMEMBERS); + this.state = 5808; + this.numeric(); + break; + case 925: + this.enterOuterAlt(localctx, 3); + this.state = 5809; + this.match(OracleSqlParser.MAXLOGHISTORY); + this.state = 5810; + this.numeric(); + break; + case 920: + this.enterOuterAlt(localctx, 4); + this.state = 5811; + this.match(OracleSqlParser.MAXDATAFILES); + this.state = 5812; + this.numeric(); + break; + case 923: + this.enterOuterAlt(localctx, 5); + this.state = 5813; + this.match(OracleSqlParser.MAXINSTANCES); + this.state = 5814; + this.numeric(); + break; + case 66: + this.enterOuterAlt(localctx, 6); + this.state = 5815; + this.match(OracleSqlParser.ARCHIVELOG); + break; + case 1056: + this.enterOuterAlt(localctx, 7); + this.state = 5816; + this.match(OracleSqlParser.NOARCHIVELOG); + break; + case 614: + this.enterOuterAlt(localctx, 8); + this.state = 5817; + this.match(OracleSqlParser.FORCE); + this.state = 5818; + this.match(OracleSqlParser.LOGGING); + break; + case 1669: + this.enterOuterAlt(localctx, 9); + this.state = 5819; + this.match(OracleSqlParser.SET); + this.state = 5820; + this.match(OracleSqlParser.STANDBY); + this.state = 5821; + this.match(OracleSqlParser.NOLOGGING); + this.state = 5822; + this.match(OracleSqlParser.FOR); + this.state = 5827; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 349: + this.state = 5823; + this.match(OracleSqlParser.DATA); + this.state = 5824; + this.match(OracleSqlParser.AVAILABILITY); + break; + case 865: + this.state = 5825; + this.match(OracleSqlParser.LOAD); + this.state = 5826; + this.match(OracleSqlParser.PERFORMANCE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + logfile_clause() { + let localctx = new Logfile_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 430, OracleSqlParser.RULE_logfile_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5831; + this.match(OracleSqlParser.LOGFILE); + this.state = 5836; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===647 || _la===2439 || _la===2440) { + this.state = 5833; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===647) { + this.state = 5832; + this.match(OracleSqlParser.GROUP); + } + + this.state = 5835; + this.numeric(); + } + + this.state = 5838; + this.file_specification(); + this.state = 5849; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5839; + this.match(OracleSqlParser.COMMA); + this.state = 5844; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===647 || _la===2439 || _la===2440) { + this.state = 5841; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===647) { + this.state = 5840; + this.match(OracleSqlParser.GROUP); + } + + this.state = 5843; + this.numeric(); + } + + this.state = 5846; + this.file_specification(); + this.state = 5851; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + character_set_clause() { + let localctx = new Character_set_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 432, OracleSqlParser.RULE_character_set_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5852; + this.match(OracleSqlParser.CHARACTER); + this.state = 5853; + this.match(OracleSqlParser.SET); + this.state = 5854; + localctx.cs = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + file_specification() { + let localctx = new File_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 434, OracleSqlParser.RULE_file_specification); + try { + this.state = 5858; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,511,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5856; + this.datafile_tempfile_spec(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5857; + this.redo_log_file_spec(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_diskgroup() { + let localctx = new Create_diskgroupContext(this, this._ctx, this.state); + this.enterRule(localctx, 436, OracleSqlParser.RULE_create_diskgroup); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5860; + this.match(OracleSqlParser.CREATE); + this.state = 5861; + this.match(OracleSqlParser.DISKGROUP); + this.state = 5862; + this.id_expression(); + this.state = 5875; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===558 || _la===607 || _la===673 || _la===1176 || _la===2374) { + this.state = 5872; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 673: + this.state = 5863; + this.match(OracleSqlParser.HIGH); + break; + case 1176: + this.state = 5864; + this.match(OracleSqlParser.NORMAL); + break; + case 607: + this.state = 5865; + this.match(OracleSqlParser.FLEX); + break; + case 2374: + this.state = 5866; + this.match(OracleSqlParser.EXTENDED); + this.state = 5869; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1686) { + this.state = 5867; + this.match(OracleSqlParser.SITE); + this.state = 5868; + localctx.sn = this.id_expression(); + } + + break; + case 558: + this.state = 5871; + this.match(OracleSqlParser.EXTERNAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5874; + this.match(OracleSqlParser.REDUNDANCY); + } + + this.state = 5893; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5878; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1487 || _la===1546) { + this.state = 5877; + this.quorum_regular(); + } + + this.state = 5882; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===570) { + this.state = 5880; + this.match(OracleSqlParser.FAILGROUP); + this.state = 5881; + localctx.fg = this.id_expression(); + } + + this.state = 5884; + this.match(OracleSqlParser.DISK); + this.state = 5885; + this.qualified_disk_clause(); + this.state = 5890; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5886; + this.match(OracleSqlParser.COMMA); + this.state = 5887; + this.qualified_disk_clause(); + this.state = 5892; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5895; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===438 || _la===570 || _la===1487 || _la===1546); + this.state = 5910; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===83) { + this.state = 5897; + this.match(OracleSqlParser.ATTRIBUTE); + this.state = 5898; + localctx.an = this.match(OracleSqlParser.CHAR_STRING); + this.state = 5899; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 5900; + localctx.av = this.match(OracleSqlParser.CHAR_STRING); + this.state = 5907; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 5901; + this.match(OracleSqlParser.COMMA); + this.state = 5902; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 5903; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 5904; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 5909; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + qualified_disk_clause() { + let localctx = new Qualified_disk_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 438, OracleSqlParser.RULE_qualified_disk_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5912; + localctx.ss = this.match(OracleSqlParser.CHAR_STRING); + this.state = 5915; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===995) { + this.state = 5913; + this.match(OracleSqlParser.NAME); + this.state = 5914; + localctx.dn = this.id_expression(); + } + + this.state = 5919; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1697) { + this.state = 5917; + this.match(OracleSqlParser.SIZE); + this.state = 5918; + this.size_clause(); + } + + this.state = 5922; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1102) { + this.state = 5921; + this.force_noforce(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_edition() { + let localctx = new Create_editionContext(this, this._ctx, this.state); + this.enterRule(localctx, 440, OracleSqlParser.RULE_create_edition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5924; + this.match(OracleSqlParser.CREATE); + this.state = 5925; + this.match(OracleSqlParser.EDITION); + this.state = 5926; + localctx.e = this.id_expression(); + this.state = 5931; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 5927; + this.match(OracleSqlParser.AS); + this.state = 5928; + this.match(OracleSqlParser.CHILD); + this.state = 5929; + this.match(OracleSqlParser.OF); + this.state = 5930; + localctx.pe = this.id_expression(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_flashback_archive() { + let localctx = new Create_flashback_archiveContext(this, this._ctx, this.state); + this.enterRule(localctx, 442, OracleSqlParser.RULE_create_flashback_archive); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5933; + this.match(OracleSqlParser.CREATE); + this.state = 5934; + this.match(OracleSqlParser.FLASHBACK); + this.state = 5935; + this.match(OracleSqlParser.ARCHIVE); + this.state = 5937; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 5936; + this.match(OracleSqlParser.DEFAULT); + } + + this.state = 5939; + localctx.fa = this.id_expression(); + this.state = 5940; + this.match(OracleSqlParser.TABLESPACE); + this.state = 5941; + localctx.ts = this.id_expression(); + this.state = 5943; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1488) { + this.state = 5942; + this.flashback_archive_quota(); + } + + this.state = 5950; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135 || _la===1267) { + this.state = 5946; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135) { + this.state = 5945; + this.match(OracleSqlParser.NO); + } + + this.state = 5948; + this.match(OracleSqlParser.OPTIMIZE); + this.state = 5949; + this.match(OracleSqlParser.DATA); + } + + this.state = 5952; + this.flashback_archive_retention(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + flashback_archive_quota() { + let localctx = new Flashback_archive_quotaContext(this, this._ctx, this.state); + this.enterRule(localctx, 444, OracleSqlParser.RULE_flashback_archive_quota); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5954; + this.match(OracleSqlParser.QUOTA); + this.state = 5955; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 5956; + _la = this._input.LA(1); + if(!(_la===478 || _la===633 || _la===899 || _la===1326 || _la===2075)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + flashback_archive_retention() { + let localctx = new Flashback_archive_retentionContext(this, this._ctx, this.state); + this.enterRule(localctx, 446, OracleSqlParser.RULE_flashback_archive_retention); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5958; + this.match(OracleSqlParser.RETENTION); + this.state = 5959; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 5960; + _la = this._input.LA(1); + if(!(_la===363 || _la===983 || _la===2356)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_hierarchy() { + let localctx = new Create_hierarchyContext(this, this._ctx, this.state); + this.enterRule(localctx, 448, OracleSqlParser.RULE_create_hierarchy); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 5962; + this.match(OracleSqlParser.CREATE); + this.state = 5965; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 5963; + this.match(OracleSqlParser.OR); + this.state = 5964; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 5971; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1135) { + this.state = 5968; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135) { + this.state = 5967; + this.match(OracleSqlParser.NO); + } + + this.state = 5970; + this.match(OracleSqlParser.FORCE); + } + + this.state = 5973; + this.match(OracleSqlParser.HIERARCHY); + this.state = 5977; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,532,this._ctx); + if(la_===1) { + this.state = 5974; + this.schema_name(); + this.state = 5975; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 5979; + localctx.h = this.id_expression(); + this.state = 5983; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1679) { + this.state = 5980; + this.match(OracleSqlParser.SHARING); + this.state = 5981; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 5982; + _la = this._input.LA(1); + if(!(_la===946 || _la===1131)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5988; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===177 || _la===207 || _la===413) { + this.state = 5985; + this.classification_clause(); + this.state = 5990; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5991; + this.hier_using_clause(); + this.state = 5992; + this.level_hier_clause(); + this.state = 5994; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===670) { + this.state = 5993; + this.hier_attrs_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hier_using_clause() { + let localctx = new Hier_using_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 450, OracleSqlParser.RULE_hier_using_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5996; + this.match(OracleSqlParser.USING); + this.state = 6000; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,536,this._ctx); + if(la_===1) { + this.state = 5997; + this.schema_name(); + this.state = 5998; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 6002; + localctx.ad = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + level_hier_clause() { + let localctx = new Level_hier_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 452, OracleSqlParser.RULE_level_hier_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6004; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6010; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 6005; + localctx.l = this.id_expression(); + this.state = 6008; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,537,this._ctx); + if(la_===1) { + this.state = 6006; + this.match(OracleSqlParser.CHILD); + this.state = 6007; + this.match(OracleSqlParser.OF); + + } + this.state = 6012; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478); + this.state = 6014; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hier_attrs_clause() { + let localctx = new Hier_attrs_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 454, OracleSqlParser.RULE_hier_attrs_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6016; + this.match(OracleSqlParser.HIERARCHICAL); + this.state = 6017; + this.match(OracleSqlParser.ATTRIBUTES); + this.state = 6018; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6019; + this.hier_attr_clause(); + this.state = 6020; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hier_attr_clause() { + let localctx = new Hier_attr_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 456, OracleSqlParser.RULE_hier_attr_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6022; + this.hier_attr_name(); + this.state = 6026; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===177 || _la===207 || _la===413) { + this.state = 6023; + this.classification_clause(); + this.state = 6028; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hier_attr_name() { + let localctx = new Hier_attr_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 458, OracleSqlParser.RULE_hier_attr_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6029; + _la = this._input.LA(1); + if(!(_la===408 || _la===669 || _la===784 || _la===845 || ((((_la - 935)) & ~0x1f) === 0 && ((1 << (_la - 935)) & 15) !== 0) || _la===1336 || _la===1337)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_index() { + let localctx = new Create_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 460, OracleSqlParser.RULE_create_index); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6031; + this.match(OracleSqlParser.CREATE); + this.state = 6033; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===137 || _la===2181) { + this.state = 6032; + _la = this._input.LA(1); + if(!(_la===137 || _la===2181)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6035; + this.match(OracleSqlParser.INDEX); + this.state = 6036; + this.index_name(); + this.state = 6040; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 6037; + this.match(OracleSqlParser.IF); + this.state = 6038; + this.match(OracleSqlParser.NOT); + this.state = 6039; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 6042; + this.match(OracleSqlParser.ON); + this.state = 6046; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,542,this._ctx); + switch(la_) { + case 1: + this.state = 6043; + this.cluster_index_clause(); + break; + + case 2: + this.state = 6044; + this.table_index_clause(); + break; + + case 3: + this.state = 6045; + this.bitmap_join_index_clause(); + break; + + } + this.state = 6049; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2201 || _la===2213) { + this.state = 6048; + _la = this._input.LA(1); + if(!(_la===2201 || _la===2213)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6053; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===393 || _la===696) { + this.state = 6051; + _la = this._input.LA(1); + if(!(_la===393 || _la===696)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6052; + this.match(OracleSqlParser.INVALIDATION); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cluster_index_clause() { + let localctx = new Cluster_index_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 462, OracleSqlParser.RULE_cluster_index_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6055; + this.match(OracleSqlParser.CLUSTER); + this.state = 6056; + this.cluster_name(); + this.state = 6058; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===258 || _la===260 || _la===591 || _la===741 || _la===780 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1146 || _la===1186 || _la===1331 || _la===1367 || _la===1370 || _la===1586 || _la===1707 || _la===1760 || _la===2078 || _la===2288) { + this.state = 6057; + this.index_attributes(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cluster_name() { + let localctx = new Cluster_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 464, OracleSqlParser.RULE_cluster_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6063; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,546,this._ctx); + if(la_===1) { + this.state = 6060; + this.id_expression(); + this.state = 6061; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 6065; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_index_clause() { + let localctx = new Table_index_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 466, OracleSqlParser.RULE_table_index_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6067; + this.tableview_name(); + this.state = 6069; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 3372220415) !== 0) || _la===2472 || _la===2478) { + this.state = 6068; + this.table_alias(); + } + + this.state = 6071; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6072; + this.index_expr(); + this.state = 6074; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===70 || _la===412) { + this.state = 6073; + _la = this._input.LA(1); + if(!(_la===70 || _la===412)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6083; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6076; + this.match(OracleSqlParser.COMMA); + this.state = 6077; + this.index_expr(); + this.state = 6079; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===70 || _la===412) { + this.state = 6078; + _la = this._input.LA(1); + if(!(_la===70 || _la===412)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6085; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6086; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 6088; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===258 || _la===260 || _la===591 || _la===640 || _la===729 || _la===741 || _la===780 || _la===871 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1146 || _la===1186 || _la===1331 || _la===1367 || _la===1370 || _la===1586 || _la===1707 || _la===1760 || _la===2078 || _la===2288) { + this.state = 6087; + this.index_properties(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + bitmap_join_index_clause() { + let localctx = new Bitmap_join_index_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 468, OracleSqlParser.RULE_bitmap_join_index_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6090; + this.tableview_name(); + this.state = 6091; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6094; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,552,this._ctx); + if(la_===1) { + this.state = 6092; + this.tableview_name(); + + } else if(la_===2) { + this.state = 6093; + this.table_alias(); + + } + this.state = 6096; + this.column_name(); + this.state = 6098; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===70 || _la===412) { + this.state = 6097; + _la = this._input.LA(1); + if(!(_la===70 || _la===412)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6111; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6100; + this.match(OracleSqlParser.COMMA); + this.state = 6103; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,554,this._ctx); + if(la_===1) { + this.state = 6101; + this.tableview_name(); + + } else if(la_===2) { + this.state = 6102; + this.table_alias(); + + } + this.state = 6105; + this.column_name(); + this.state = 6107; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===70 || _la===412) { + this.state = 6106; + _la = this._input.LA(1); + if(!(_la===70 || _la===412)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6113; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6114; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 6115; + this.match(OracleSqlParser.FROM); + this.state = 6116; + this.tableview_name(); + this.state = 6117; + this.table_alias(); + this.state = 6124; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6118; + this.match(OracleSqlParser.COMMA); + this.state = 6119; + this.tableview_name(); + this.state = 6120; + this.table_alias(); + this.state = 6126; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6127; + this.where_clause(); + this.state = 6129; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===871) { + this.state = 6128; + this.local_partitioned_index(); + } + + this.state = 6132; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===258 || _la===260 || _la===591 || _la===741 || _la===780 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1146 || _la===1186 || _la===1331 || _la===1367 || _la===1370 || _la===1586 || _la===1707 || _la===1760 || _la===2078 || _la===2288) { + this.state = 6131; + this.index_attributes(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + index_expr() { + let localctx = new Index_exprContext(this, this._ctx, this.state); + this.enterRule(localctx, 470, OracleSqlParser.RULE_index_expr); + try { + this.state = 6136; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,560,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6134; + this.column_name(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6135; + this.expression(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + index_properties() { + let localctx = new Index_propertiesContext(this, this._ctx, this.state); + this.enterRule(localctx, 472, OracleSqlParser.RULE_index_properties); + try { + this.state = 6151; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 258: + case 260: + case 591: + case 640: + case 741: + case 780: + case 871: + case 882: + case 929: + case 1072: + case 1117: + case 1146: + case 1186: + case 1331: + case 1367: + case 1370: + case 1586: + case 1707: + case 1760: + case 2078: + case 2288: + this.enterOuterAlt(localctx, 1); + this.state = 6141; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 6141; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 640: + this.state = 6138; + this.global_partitioned_index(); + break; + case 871: + this.state = 6139; + this.local_partitioned_index(); + break; + case 258: + case 260: + case 591: + case 741: + case 780: + case 882: + case 929: + case 1072: + case 1117: + case 1146: + case 1186: + case 1331: + case 1367: + case 1370: + case 1586: + case 1707: + case 1760: + case 2078: + case 2288: + this.state = 6140; + this.index_attributes(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6143; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,562, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + case 729: + this.enterOuterAlt(localctx, 2); + this.state = 6145; + this.match(OracleSqlParser.INDEXTYPE); + this.state = 6146; + this.match(OracleSqlParser.IS); + this.state = 6149; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 6147; + this.domain_index_clause(); + break; + case 2313: + case 2330: + this.state = 6148; + this.xmlindex_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + domain_index_clause() { + let localctx = new Domain_index_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 474, OracleSqlParser.RULE_domain_index_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6153; + this.indextype(); + this.state = 6155; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,565,this._ctx); + if(la_===1) { + this.state = 6154; + this.local_domain_index_clause(); + + } + this.state = 6158; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,566,this._ctx); + if(la_===1) { + this.state = 6157; + this.parallel_clause(); + + } + this.state = 6165; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,567,this._ctx); + if(la_===1) { + this.state = 6160; + this.match(OracleSqlParser.PARAMETERS); + this.state = 6161; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6162; + this.odci_parameters(); + this.state = 6163; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + local_domain_index_clause() { + let localctx = new Local_domain_index_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 476, OracleSqlParser.RULE_local_domain_index_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6167; + this.match(OracleSqlParser.LOCAL); + this.state = 6195; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 6168; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6169; + this.match(OracleSqlParser.PARTITION); + this.state = 6170; + this.partition_name(); + this.state = 6176; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1333) { + this.state = 6171; + this.match(OracleSqlParser.PARAMETERS); + this.state = 6172; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6173; + this.odci_parameters(); + this.state = 6174; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 6190; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6178; + this.match(OracleSqlParser.COMMA); + this.state = 6179; + this.match(OracleSqlParser.PARTITION); + this.state = 6180; + this.partition_name(); + this.state = 6186; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1333) { + this.state = 6181; + this.match(OracleSqlParser.PARAMETERS); + this.state = 6182; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6183; + this.odci_parameters(); + this.state = 6184; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 6192; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6193; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmlindex_clause() { + let localctx = new Xmlindex_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 478, OracleSqlParser.RULE_xmlindex_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6199; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2313) { + this.state = 6197; + this.match(OracleSqlParser.XDB); + this.state = 6198; + this.match(OracleSqlParser.PERIOD); + } + + this.state = 6201; + this.match(OracleSqlParser.XMLINDEX); + this.state = 6203; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,573,this._ctx); + if(la_===1) { + this.state = 6202; + this.local_xmlindex_clause(); + + } + this.state = 6206; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,574,this._ctx); + if(la_===1) { + this.state = 6205; + this.parallel_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + local_xmlindex_clause() { + let localctx = new Local_xmlindex_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 480, OracleSqlParser.RULE_local_xmlindex_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6208; + this.match(OracleSqlParser.LOCAL); + this.state = 6222; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 6209; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6210; + this.match(OracleSqlParser.PARTITION); + this.state = 6211; + this.partition_name(); + this.state = 6217; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6212; + this.match(OracleSqlParser.COMMA); + this.state = 6213; + this.match(OracleSqlParser.PARTITION); + this.state = 6214; + this.partition_name(); + this.state = 6219; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6220; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + global_partitioned_index() { + let localctx = new Global_partitioned_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 482, OracleSqlParser.RULE_global_partitioned_index); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6224; + this.match(OracleSqlParser.GLOBAL); + this.state = 6225; + this.match(OracleSqlParser.PARTITION); + this.state = 6226; + this.match(OracleSqlParser.BY); + this.state = 6264; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1493: + this.state = 6227; + this.match(OracleSqlParser.RANGE); + this.state = 6228; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6229; + this.column_name(); + this.state = 6234; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6230; + this.match(OracleSqlParser.COMMA); + this.state = 6231; + this.column_name(); + this.state = 6236; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6237; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 6238; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6239; + this.index_partitioning_clause(); + this.state = 6244; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6240; + this.match(OracleSqlParser.COMMA); + this.state = 6241; + this.index_partitioning_clause(); + this.state = 6246; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6247; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 658: + this.state = 6249; + this.match(OracleSqlParser.HASH); + this.state = 6250; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6251; + this.column_name(); + this.state = 6256; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6252; + this.match(OracleSqlParser.COMMA); + this.state = 6253; + this.column_name(); + this.state = 6258; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6259; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 6262; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 6260; + this.individual_hash_partitions(); + break; + case 1348: + this.state = 6261; + this.hash_partitions_by_quantity(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + index_partitioning_clause() { + let localctx = new Index_partitioning_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 484, OracleSqlParser.RULE_index_partitioning_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6266; + this.match(OracleSqlParser.PARTITION); + this.state = 6268; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 6267; + this.partition_name(); + } + + this.state = 6270; + this.match(OracleSqlParser.VALUES); + this.state = 6271; + this.match(OracleSqlParser.LESS); + this.state = 6272; + this.match(OracleSqlParser.THAN); + this.state = 6273; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6274; + this.index_partitioning_values_list(); + this.state = 6275; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 6277; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 237)) & ~0x1f) === 0 && ((1 << (_la - 237)) & 10485761) !== 0) || _la===591 || _la===741 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1367 || _la===1370 || _la===1604 || _la===1760 || _la===2078) { + this.state = 6276; + this.segment_attributes_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + index_partitioning_values_list() { + let localctx = new Index_partitioning_values_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 486, OracleSqlParser.RULE_index_partitioning_values_list); + var _la = 0; + try { + this.state = 6297; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 204: + case 930: + case 2399: + case 2409: + case 2414: + case 2415: + case 2416: + case 2423: + case 2439: + case 2440: + case 2441: + case 2450: + this.enterOuterAlt(localctx, 1); + this.state = 6279; + this.literal(); + this.state = 6284; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6280; + this.match(OracleSqlParser.COMMA); + this.state = 6281; + this.literal(); + this.state = 6286; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 2106: + this.enterOuterAlt(localctx, 2); + this.state = 6287; + this.match(OracleSqlParser.TIMESTAMP); + this.state = 6288; + this.literal(); + this.state = 6294; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6289; + this.match(OracleSqlParser.COMMA); + this.state = 6290; + this.match(OracleSqlParser.TIMESTAMP); + this.state = 6291; + this.literal(); + this.state = 6296; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + local_partitioned_index() { + let localctx = new Local_partitioned_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 488, OracleSqlParser.RULE_local_partitioned_index); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6299; + this.match(OracleSqlParser.LOCAL); + this.state = 6304; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,587,this._ctx); + if(la_===1) { + this.state = 6300; + this.on_range_partitioned_table(); + + } else if(la_===2) { + this.state = 6301; + this.on_list_partitioned_table(); + + } else if(la_===3) { + this.state = 6302; + this.on_hash_partitioned_table(); + + } else if(la_===4) { + this.state = 6303; + this.on_comp_partitioned_table(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + on_range_partitioned_table() { + let localctx = new On_range_partitioned_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 490, OracleSqlParser.RULE_on_range_partitioned_table); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6306; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6307; + this.partitioned_table(); + this.state = 6312; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6308; + this.match(OracleSqlParser.COMMA); + this.state = 6309; + this.partitioned_table(); + this.state = 6314; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6315; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + on_list_partitioned_table() { + let localctx = new On_list_partitioned_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 492, OracleSqlParser.RULE_on_list_partitioned_table); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6317; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6318; + this.partitioned_table(); + this.state = 6323; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6319; + this.match(OracleSqlParser.COMMA); + this.state = 6320; + this.partitioned_table(); + this.state = 6325; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6326; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + partitioned_table() { + let localctx = new Partitioned_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 494, OracleSqlParser.RULE_partitioned_table); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6328; + this.match(OracleSqlParser.PARTITION); + this.state = 6330; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,590,this._ctx); + if(la_===1) { + this.state = 6329; + this.partition_name(); + + } + this.state = 6336; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(((((_la - 237)) & ~0x1f) === 0 && ((1 << (_la - 237)) & 10485761) !== 0) || _la===591 || _la===741 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1367 || _la===1370 || _la===1604 || _la===1760 || _la===2078) { + this.state = 6334; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,591,this._ctx); + switch(la_) { + case 1: + this.state = 6332; + this.segment_attributes_clause(); + break; + + case 2: + this.state = 6333; + this.key_compression(); + break; + + } + this.state = 6338; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6340; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2201) { + this.state = 6339; + this.match(OracleSqlParser.UNUSABLE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + on_hash_partitioned_table() { + let localctx = new On_hash_partitioned_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 496, OracleSqlParser.RULE_on_hash_partitioned_table); + var _la = 0; + try { + this.state = 6366; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1761: + this.enterOuterAlt(localctx, 1); + this.state = 6342; + this.match(OracleSqlParser.STORE); + this.state = 6343; + this.match(OracleSqlParser.IN); + this.state = 6344; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6345; + this.tablespace(); + this.state = 6350; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6346; + this.match(OracleSqlParser.COMMA); + this.state = 6347; + this.tablespace(); + this.state = 6352; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6353; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2445: + this.enterOuterAlt(localctx, 2); + this.state = 6355; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6356; + this.on_hash_partitioned_clause(); + this.state = 6361; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6357; + this.match(OracleSqlParser.COMMA); + this.state = 6358; + this.on_hash_partitioned_clause(); + this.state = 6363; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6364; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + on_hash_partitioned_clause() { + let localctx = new On_hash_partitioned_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 498, OracleSqlParser.RULE_on_hash_partitioned_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6368; + this.match(OracleSqlParser.PARTITION); + this.state = 6370; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,597,this._ctx); + if(la_===1) { + this.state = 6369; + this.partition_name(); + + } + this.state = 6374; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2078) { + this.state = 6372; + this.match(OracleSqlParser.TABLESPACE); + this.state = 6373; + this.tablespace(); + } + + this.state = 6377; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===258 || _la===1072) { + this.state = 6376; + this.key_compression(); + } + + this.state = 6380; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2201) { + this.state = 6379; + this.match(OracleSqlParser.UNUSABLE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + on_comp_partitioned_table() { + let localctx = new On_comp_partitioned_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 500, OracleSqlParser.RULE_on_comp_partitioned_table); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6395; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1761) { + this.state = 6382; + this.match(OracleSqlParser.STORE); + this.state = 6383; + this.match(OracleSqlParser.IN); + this.state = 6384; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6385; + this.tablespace(); + this.state = 6390; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6386; + this.match(OracleSqlParser.COMMA); + this.state = 6387; + this.tablespace(); + this.state = 6392; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6393; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 6397; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6398; + this.on_comp_partitioned_clause(); + this.state = 6403; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6399; + this.match(OracleSqlParser.COMMA); + this.state = 6400; + this.on_comp_partitioned_clause(); + this.state = 6405; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6406; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + on_comp_partitioned_clause() { + let localctx = new On_comp_partitioned_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 502, OracleSqlParser.RULE_on_comp_partitioned_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6408; + this.match(OracleSqlParser.PARTITION); + this.state = 6410; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,604,this._ctx); + if(la_===1) { + this.state = 6409; + this.partition_name(); + + } + this.state = 6416; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(((((_la - 237)) & ~0x1f) === 0 && ((1 << (_la - 237)) & 10485761) !== 0) || _la===591 || _la===741 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1367 || _la===1370 || _la===1604 || _la===1760 || _la===2078) { + this.state = 6414; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,605,this._ctx); + switch(la_) { + case 1: + this.state = 6412; + this.segment_attributes_clause(); + break; + + case 2: + this.state = 6413; + this.key_compression(); + break; + + } + this.state = 6418; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6420; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2201) { + this.state = 6419; + this.match(OracleSqlParser.UNUSABLE); + } + + this.state = 6423; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1761 || _la===2445) { + this.state = 6422; + this.index_subpartition_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + index_subpartition_clause() { + let localctx = new Index_subpartition_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 504, OracleSqlParser.RULE_index_subpartition_clause); + var _la = 0; + try { + this.state = 6449; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1761: + this.enterOuterAlt(localctx, 1); + this.state = 6425; + this.match(OracleSqlParser.STORE); + this.state = 6426; + this.match(OracleSqlParser.IN); + this.state = 6427; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6428; + this.tablespace(); + this.state = 6433; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6429; + this.match(OracleSqlParser.COMMA); + this.state = 6430; + this.tablespace(); + this.state = 6435; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6436; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2445: + this.enterOuterAlt(localctx, 2); + this.state = 6438; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6439; + this.index_subpartition_subclause(); + this.state = 6444; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6440; + this.match(OracleSqlParser.COMMA); + this.state = 6441; + this.index_subpartition_subclause(); + this.state = 6446; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6447; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + index_subpartition_subclause() { + let localctx = new Index_subpartition_subclauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 506, OracleSqlParser.RULE_index_subpartition_subclause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6451; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 6453; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,612,this._ctx); + if(la_===1) { + this.state = 6452; + this.subpartition_name(); + + } + this.state = 6457; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2078) { + this.state = 6455; + this.match(OracleSqlParser.TABLESPACE); + this.state = 6456; + this.tablespace(); + } + + this.state = 6460; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===258 || _la===1072) { + this.state = 6459; + this.key_compression(); + } + + this.state = 6463; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2201) { + this.state = 6462; + this.match(OracleSqlParser.UNUSABLE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + odci_parameters() { + let localctx = new Odci_parametersContext(this, this._ctx, this.state); + this.enterRule(localctx, 508, OracleSqlParser.RULE_odci_parameters); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6465; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + indextype() { + let localctx = new IndextypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 510, OracleSqlParser.RULE_indextype); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6470; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,616,this._ctx); + if(la_===1) { + this.state = 6467; + this.id_expression(); + this.state = 6468; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 6472; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_index() { + let localctx = new Alter_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 512, OracleSqlParser.RULE_alter_index); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6474; + this.match(OracleSqlParser.ALTER); + this.state = 6475; + this.match(OracleSqlParser.INDEX); + this.state = 6476; + this.index_name(); + this.state = 6479; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 39: + case 260: + case 375: + case 591: + case 741: + case 882: + case 929: + case 1117: + case 1146: + case 1331: + case 1367: + case 1370: + case 1682: + case 1760: + this.state = 6477; + this.alter_index_ops_set1(); + break; + case 21: + case 228: + case 249: + case 427: + case 467: + case 497: + case 780: + case 978: + case 981: + case 1125: + case 1333: + case 1509: + case 1557: + case 1715: + case 2201: + case 2205: + case 2288: + this.state = 6478; + this.alter_index_ops_set2(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_index_ops_set1() { + let localctx = new Alter_index_ops_set1Context(this, this._ctx, this.state); + this.enterRule(localctx, 514, OracleSqlParser.RULE_alter_index_ops_set1); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6487; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 6487; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 375: + this.state = 6481; + this.deallocate_unused_clause(); + break; + case 39: + this.state = 6482; + this.allocate_extent_clause(); + break; + case 1682: + this.state = 6483; + this.shrink_clause(); + break; + case 1146: + case 1331: + this.state = 6484; + this.parallel_clause(); + break; + case 260: + case 741: + case 929: + case 1367: + case 1370: + case 1760: + this.state = 6485; + this.physical_attributes_clause(); + break; + case 591: + case 882: + case 1117: + this.state = 6486; + this.logging_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6489; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===39 || _la===260 || _la===375 || _la===591 || _la===741 || _la===882 || _la===929 || _la===1117 || _la===1146 || _la===1331 || _la===1367 || _la===1370 || _la===1682 || _la===1760); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_index_ops_set2() { + let localctx = new Alter_index_ops_set2Context(this, this._ctx, this.state); + this.enterRule(localctx, 516, OracleSqlParser.RULE_alter_index_ops_set2); + try { + this.state = 6512; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,620,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6491; + this.rebuild_clause(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6492; + this.match(OracleSqlParser.PARAMETERS); + this.state = 6493; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6494; + this.odci_parameters(); + this.state = 6495; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 6497; + this.match(OracleSqlParser.COMPILE); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 6498; + this.enable_or_disable(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 6499; + this.match(OracleSqlParser.UNUSABLE); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 6500; + this.visible_or_invisible(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 6501; + this.match(OracleSqlParser.RENAME); + this.state = 6502; + this.match(OracleSqlParser.TO); + this.state = 6503; + this.new_index_name(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 6504; + this.match(OracleSqlParser.COALESCE); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 6505; + this.monitoring_nomonitoring(); + this.state = 6506; + this.match(OracleSqlParser.USAGE); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 6508; + this.match(OracleSqlParser.UPDATE); + this.state = 6509; + this.match(OracleSqlParser.BLOCK); + this.state = 6510; + this.match(OracleSqlParser.REFERENCES); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 6511; + this.alter_index_partitioning(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + visible_or_invisible() { + let localctx = new Visible_or_invisibleContext(this, this._ctx, this.state); + this.enterRule(localctx, 518, OracleSqlParser.RULE_visible_or_invisible); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6514; + _la = this._input.LA(1); + if(!(_la===780 || _la===2288)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + monitoring_nomonitoring() { + let localctx = new Monitoring_nomonitoringContext(this, this._ctx, this.state); + this.enterRule(localctx, 520, OracleSqlParser.RULE_monitoring_nomonitoring); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6516; + _la = this._input.LA(1); + if(!(_la===981 || _la===1125)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + rebuild_clause() { + let localctx = new Rebuild_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 522, OracleSqlParser.RULE_rebuild_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6518; + this.match(OracleSqlParser.REBUILD); + this.state = 6525; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 1346: + this.state = 6519; + this.match(OracleSqlParser.PARTITION); + this.state = 6520; + this.partition_name(); + break; + case 1773: + this.state = 6521; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 6522; + this.subpartition_name(); + break; + case 1586: + this.state = 6523; + this.match(OracleSqlParser.REVERSE); + break; + case 1173: + this.state = 6524; + this.match(OracleSqlParser.NOREVERSE); + break; + case -1: + case 258: + case 260: + case 591: + case 741: + case 882: + case 929: + case 1072: + case 1117: + case 1146: + case 1254: + case 1331: + case 1333: + case 1367: + case 1370: + case 1760: + case 2078: + case 2452: + case 2467: + break; + default: + break; + } + this.state = 6541; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===258 || _la===260 || _la===591 || _la===741 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1146 || _la===1254 || _la===1331 || _la===1333 || _la===1367 || _la===1370 || _la===1760 || _la===2078) { + this.state = 6539; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1146: + case 1331: + this.state = 6527; + this.parallel_clause(); + break; + case 2078: + this.state = 6528; + this.match(OracleSqlParser.TABLESPACE); + this.state = 6529; + this.tablespace(); + break; + case 1333: + this.state = 6530; + this.match(OracleSqlParser.PARAMETERS); + this.state = 6531; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6532; + this.odci_parameters(); + this.state = 6533; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1254: + this.state = 6535; + this.match(OracleSqlParser.ONLINE); + break; + case 260: + case 741: + case 929: + case 1367: + case 1370: + case 1760: + this.state = 6536; + this.physical_attributes_clause(); + break; + case 258: + case 1072: + this.state = 6537; + this.key_compression(); + break; + case 591: + case 882: + case 1117: + this.state = 6538; + this.logging_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6543; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_index_partitioning() { + let localctx = new Alter_index_partitioningContext(this, this._ctx, this.state); + this.enterRule(localctx, 524, OracleSqlParser.RULE_alter_index_partitioning); + try { + this.state = 6552; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,624,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6544; + this.modify_index_default_attrs(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6545; + this.add_hash_index_partition(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 6546; + this.modify_index_partition(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 6547; + this.rename_index_partition(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 6548; + this.drop_index_partition(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 6549; + this.split_index_partition(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 6550; + this.coalesce_index_partition(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 6551; + this.modify_index_subpartition(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_index_default_attrs() { + let localctx = new Modify_index_default_attrsContext(this, this._ctx, this.state); + this.enterRule(localctx, 526, OracleSqlParser.RULE_modify_index_default_attrs); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6554; + this.match(OracleSqlParser.MODIFY); + this.state = 6555; + this.match(OracleSqlParser.DEFAULT); + this.state = 6556; + this.match(OracleSqlParser.ATTRIBUTES); + this.state = 6560; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===618) { + this.state = 6557; + this.match(OracleSqlParser.FOR); + this.state = 6558; + this.match(OracleSqlParser.PARTITION); + this.state = 6559; + this.partition_name(); + } + + this.state = 6569; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 260: + case 741: + case 929: + case 1367: + case 1370: + case 1760: + this.state = 6562; + this.physical_attributes_clause(); + break; + case 2078: + this.state = 6563; + this.match(OracleSqlParser.TABLESPACE); + this.state = 6566; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 6564; + this.tablespace(); + break; + case 387: + this.state = 6565; + this.match(OracleSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 591: + case 882: + case 1117: + this.state = 6568; + this.logging_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_hash_index_partition() { + let localctx = new Add_hash_index_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 528, OracleSqlParser.RULE_add_hash_index_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6571; + this.match(OracleSqlParser.ADD); + this.state = 6572; + this.match(OracleSqlParser.PARTITION); + this.state = 6574; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,628,this._ctx); + if(la_===1) { + this.state = 6573; + this.partition_name(); + + } + this.state = 6578; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2078) { + this.state = 6576; + this.match(OracleSqlParser.TABLESPACE); + this.state = 6577; + this.tablespace(); + } + + this.state = 6581; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===258 || _la===1072) { + this.state = 6580; + this.key_compression(); + } + + this.state = 6584; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 6583; + this.parallel_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + coalesce_index_partition() { + let localctx = new Coalesce_index_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 530, OracleSqlParser.RULE_coalesce_index_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6586; + this.match(OracleSqlParser.COALESCE); + this.state = 6587; + this.match(OracleSqlParser.PARTITION); + this.state = 6589; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 6588; + this.parallel_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_index_partition() { + let localctx = new Modify_index_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 532, OracleSqlParser.RULE_modify_index_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6591; + this.match(OracleSqlParser.MODIFY); + this.state = 6592; + this.match(OracleSqlParser.PARTITION); + this.state = 6593; + this.partition_name(); + this.state = 6609; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 39: + case 258: + case 260: + case 375: + case 591: + case 741: + case 882: + case 929: + case 1072: + case 1117: + case 1367: + case 1370: + case 1682: + case 1760: + this.state = 6595; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 6594; + this.modify_index_partitions_ops(); + this.state = 6597; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===39 || _la===258 || _la===260 || _la===375 || _la===591 || _la===741 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1367 || _la===1370 || _la===1682 || _la===1760); + break; + case 1333: + this.state = 6599; + this.match(OracleSqlParser.PARAMETERS); + this.state = 6600; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6601; + this.odci_parameters(); + this.state = 6602; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 228: + this.state = 6604; + this.match(OracleSqlParser.COALESCE); + break; + case 2205: + this.state = 6605; + this.match(OracleSqlParser.UPDATE); + this.state = 6606; + this.match(OracleSqlParser.BLOCK); + this.state = 6607; + this.match(OracleSqlParser.REFERENCES); + break; + case 2201: + this.state = 6608; + this.match(OracleSqlParser.UNUSABLE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_index_partitions_ops() { + let localctx = new Modify_index_partitions_opsContext(this, this._ctx, this.state); + this.enterRule(localctx, 534, OracleSqlParser.RULE_modify_index_partitions_ops); + try { + this.state = 6617; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 375: + this.enterOuterAlt(localctx, 1); + this.state = 6611; + this.deallocate_unused_clause(); + break; + case 39: + this.enterOuterAlt(localctx, 2); + this.state = 6612; + this.allocate_extent_clause(); + break; + case 260: + case 741: + case 929: + case 1367: + case 1370: + case 1760: + this.enterOuterAlt(localctx, 3); + this.state = 6613; + this.physical_attributes_clause(); + break; + case 591: + case 882: + case 1117: + this.enterOuterAlt(localctx, 4); + this.state = 6614; + this.logging_clause(); + break; + case 258: + case 1072: + this.enterOuterAlt(localctx, 5); + this.state = 6615; + this.key_compression(); + break; + case 1682: + this.enterOuterAlt(localctx, 6); + this.state = 6616; + this.shrink_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + rename_index_partition() { + let localctx = new Rename_index_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 536, OracleSqlParser.RULE_rename_index_partition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6619; + this.match(OracleSqlParser.RENAME); + this.state = 6624; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1346: + this.state = 6620; + this.match(OracleSqlParser.PARTITION); + this.state = 6621; + this.partition_name(); + break; + case 1773: + this.state = 6622; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 6623; + this.subpartition_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6626; + this.match(OracleSqlParser.TO); + this.state = 6627; + this.new_partition_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_index_partition() { + let localctx = new Drop_index_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 538, OracleSqlParser.RULE_drop_index_partition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6629; + this.match(OracleSqlParser.DROP); + this.state = 6630; + this.match(OracleSqlParser.PARTITION); + this.state = 6631; + this.partition_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + split_index_partition() { + let localctx = new Split_index_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 540, OracleSqlParser.RULE_split_index_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6633; + this.match(OracleSqlParser.SPLIT); + this.state = 6634; + this.match(OracleSqlParser.PARTITION); + this.state = 6635; + this.partition_name_old(); + this.state = 6636; + this.match(OracleSqlParser.AT); + this.state = 6637; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6638; + this.literal(); + this.state = 6643; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6639; + this.match(OracleSqlParser.COMMA); + this.state = 6640; + this.literal(); + this.state = 6645; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6646; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 6654; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===777) { + this.state = 6647; + this.match(OracleSqlParser.INTO); + this.state = 6648; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6649; + this.index_partition_description(); + this.state = 6650; + this.match(OracleSqlParser.COMMA); + this.state = 6651; + this.index_partition_description(); + this.state = 6652; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 6657; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 6656; + this.parallel_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + index_partition_description() { + let localctx = new Index_partition_descriptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 542, OracleSqlParser.RULE_index_partition_description); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6659; + this.match(OracleSqlParser.PARTITION); + this.state = 6677; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,644,this._ctx); + if(la_===1) { + this.state = 6660; + this.partition_name(); + this.state = 6672; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 237: + case 258: + case 260: + case 591: + case 741: + case 882: + case 929: + case 1072: + case 1117: + case 1367: + case 1370: + case 1604: + case 1760: + case 2078: + this.state = 6663; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 6663; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,640,this._ctx); + switch(la_) { + case 1: + this.state = 6661; + this.segment_attributes_clause(); + break; + + case 2: + this.state = 6662; + this.key_compression(); + break; + + } + this.state = 6665; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(((((_la - 237)) & ~0x1f) === 0 && ((1 << (_la - 237)) & 10485761) !== 0) || _la===591 || _la===741 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1367 || _la===1370 || _la===1604 || _la===1760 || _la===2078); + break; + case 1333: + this.state = 6667; + this.match(OracleSqlParser.PARAMETERS); + this.state = 6668; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6669; + this.odci_parameters(); + this.state = 6670; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6675; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2201) { + this.state = 6674; + this.match(OracleSqlParser.UNUSABLE); + } + + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_index_subpartition() { + let localctx = new Modify_index_subpartitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 544, OracleSqlParser.RULE_modify_index_subpartition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6679; + this.match(OracleSqlParser.MODIFY); + this.state = 6680; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 6681; + this.subpartition_name(); + this.state = 6685; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2201: + this.state = 6682; + this.match(OracleSqlParser.UNUSABLE); + break; + case 39: + this.state = 6683; + this.allocate_extent_clause(); + break; + case 375: + this.state = 6684; + this.deallocate_unused_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + partition_name_old() { + let localctx = new Partition_name_oldContext(this, this._ctx, this.state); + this.enterRule(localctx, 546, OracleSqlParser.RULE_partition_name_old); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6687; + this.partition_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + new_partition_name() { + let localctx = new New_partition_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 548, OracleSqlParser.RULE_new_partition_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6689; + this.partition_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + new_index_name() { + let localctx = new New_index_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 550, OracleSqlParser.RULE_new_index_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6691; + this.index_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_inmemory_join_group() { + let localctx = new Alter_inmemory_join_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 552, OracleSqlParser.RULE_alter_inmemory_join_group); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6693; + this.match(OracleSqlParser.ALTER); + this.state = 6694; + this.match(OracleSqlParser.INMEMORY); + this.state = 6695; + this.match(OracleSqlParser.JOIN); + this.state = 6696; + this.match(OracleSqlParser.GROUP); + this.state = 6700; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,646,this._ctx); + if(la_===1) { + this.state = 6697; + this.schema_name(); + this.state = 6698; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 6702; + localctx.jg = this.id_expression(); + this.state = 6703; + _la = this._input.LA(1); + if(!(_la===21 || _la===1556)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6704; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6708; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,647,this._ctx); + if(la_===1) { + this.state = 6705; + this.schema_name(); + this.state = 6706; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 6710; + localctx.t = this.id_expression(); + this.state = 6711; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6712; + localctx.c = this.id_expression(); + this.state = 6713; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 6714; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_user() { + let localctx = new Create_userContext(this, this._ctx, this.state); + this.enterRule(localctx, 554, OracleSqlParser.RULE_create_user); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6716; + this.match(OracleSqlParser.CREATE); + this.state = 6717; + this.match(OracleSqlParser.USER); + this.state = 6718; + this.user_object_name(); + this.state = 6722; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 6719; + this.match(OracleSqlParser.IF); + this.state = 6720; + this.match(OracleSqlParser.NOT); + this.state = 6721; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 6733; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 6733; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,649,this._ctx); + switch(la_) { + case 1: + this.state = 6724; + this.identified_by(); + break; + + case 2: + this.state = 6725; + this.identified_other_clause(); + break; + + case 3: + this.state = 6726; + this.user_tablespace_clause(); + break; + + case 4: + this.state = 6727; + this.quota_clause(); + break; + + case 5: + this.state = 6728; + this.profile_clause(); + break; + + case 6: + this.state = 6729; + this.password_expire_clause(); + break; + + case 7: + this.state = 6730; + this.user_lock_clause(); + break; + + case 8: + this.state = 6731; + this.user_editions_clause(); + break; + + case 9: + this.state = 6732; + this.container_clause(); + break; + + } + this.state = 6735; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===7 || _la===287 || _la===387 || _la===497 || _la===683 || _la===1354 || _la===1461 || _la===1488 || _la===2090); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_user() { + let localctx = new Alter_userContext(this, this._ctx, this.state); + this.enterRule(localctx, 556, OracleSqlParser.RULE_alter_user); + var _la = 0; + try { + this.state = 6765; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 42: + this.enterOuterAlt(localctx, 1); + this.state = 6737; + this.match(OracleSqlParser.ALTER); + this.state = 6738; + this.match(OracleSqlParser.USER); + this.state = 6739; + this.user_object_name(); + this.state = 6751; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 6751; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,651,this._ctx); + switch(la_) { + case 1: + this.state = 6740; + this.alter_identified_by(); + break; + + case 2: + this.state = 6741; + this.identified_other_clause(); + break; + + case 3: + this.state = 6742; + this.user_tablespace_clause(); + break; + + case 4: + this.state = 6743; + this.quota_clause(); + break; + + case 5: + this.state = 6744; + this.profile_clause(); + break; + + case 6: + this.state = 6745; + this.user_default_role_clause(); + break; + + case 7: + this.state = 6746; + this.password_expire_clause(); + break; + + case 8: + this.state = 6747; + this.user_lock_clause(); + break; + + case 9: + this.state = 6748; + this.alter_user_editions_clause(); + break; + + case 10: + this.state = 6749; + this.container_clause(); + break; + + case 11: + this.state = 6750; + this.container_data_clause(); + break; + + } + this.state = 6753; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===7 || _la===21 || _la===287 || _la===387 || _la===497 || _la===683 || _la===1354 || _la===1461 || _la===1488 || _la===1556 || _la===1669 || _la===2090); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.enterOuterAlt(localctx, 2); + this.state = 6755; + this.user_object_name(); + this.state = 6760; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6756; + this.match(OracleSqlParser.COMMA); + this.state = 6757; + this.user_object_name(); + this.state = 6762; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6763; + this.proxy_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_user() { + let localctx = new Drop_userContext(this, this._ctx, this.state); + this.enterRule(localctx, 558, OracleSqlParser.RULE_drop_user); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6767; + this.match(OracleSqlParser.DROP); + this.state = 6768; + this.match(OracleSqlParser.USER); + this.state = 6769; + this.user_object_name(); + this.state = 6772; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 6770; + this.match(OracleSqlParser.IF); + this.state = 6771; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 6775; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 6774; + this.match(OracleSqlParser.CASCADE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_identified_by() { + let localctx = new Alter_identified_byContext(this, this._ctx, this.state); + this.enterRule(localctx, 560, OracleSqlParser.RULE_alter_identified_by); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6777; + this.identified_by(); + this.state = 6780; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1560) { + this.state = 6778; + this.match(OracleSqlParser.REPLACE); + this.state = 6779; + this.id_expression(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + identified_by() { + let localctx = new Identified_byContext(this, this._ctx, this.state); + this.enterRule(localctx, 562, OracleSqlParser.RULE_identified_by); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6782; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 6783; + this.match(OracleSqlParser.BY); + this.state = 6784; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + identified_other_clause() { + let localctx = new Identified_other_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 564, OracleSqlParser.RULE_identified_other_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6786; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 6787; + _la = this._input.LA(1); + if(!(_la===559 || _la===641)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6790; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 6788; + this.match(OracleSqlParser.AS); + this.state = 6789; + this.quoted_string(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + user_tablespace_clause() { + let localctx = new User_tablespace_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 566, OracleSqlParser.RULE_user_tablespace_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6792; + _la = this._input.LA(1); + if(!(_la===387 || _la===2090)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6793; + this.match(OracleSqlParser.TABLESPACE); + this.state = 6794; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + quota_clause() { + let localctx = new Quota_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 568, OracleSqlParser.RULE_quota_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6796; + this.match(OracleSqlParser.QUOTA); + this.state = 6799; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + this.state = 6797; + this.size_clause(); + break; + case 2183: + this.state = 6798; + this.match(OracleSqlParser.UNLIMITED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6801; + this.match(OracleSqlParser.ON); + this.state = 6802; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + profile_clause() { + let localctx = new Profile_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 570, OracleSqlParser.RULE_profile_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6804; + this.match(OracleSqlParser.PROFILE); + this.state = 6805; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + role_clause() { + let localctx = new Role_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 572, OracleSqlParser.RULE_role_clause); + var _la = 0; + try { + this.state = 6830; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 278: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 6807; + this.role_name(); + this.state = 6812; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6808; + this.match(OracleSqlParser.COMMA); + this.state = 6809; + this.role_name(); + this.state = 6814; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 38: + this.enterOuterAlt(localctx, 2); + this.state = 6815; + this.match(OracleSqlParser.ALL); + this.state = 6827; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===532) { + this.state = 6816; + this.match(OracleSqlParser.EXCEPT); + this.state = 6817; + this.role_name(); + this.state = 6822; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6818; + this.match(OracleSqlParser.COMMA); + this.state = 6819; + this.role_name(); + this.state = 6824; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6829; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + user_default_role_clause() { + let localctx = new User_default_role_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 574, OracleSqlParser.RULE_user_default_role_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6832; + this.match(OracleSqlParser.DEFAULT); + this.state = 6833; + this.match(OracleSqlParser.ROLE); + this.state = 6836; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,664,this._ctx); + switch(la_) { + case 1: + this.state = 6834; + this.match(OracleSqlParser.NONE); + break; + + case 2: + this.state = 6835; + this.role_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + password_expire_clause() { + let localctx = new Password_expire_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 576, OracleSqlParser.RULE_password_expire_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6838; + this.match(OracleSqlParser.PASSWORD); + this.state = 6839; + this.match(OracleSqlParser.EXPIRE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + user_lock_clause() { + let localctx = new User_lock_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 578, OracleSqlParser.RULE_user_lock_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6841; + this.match(OracleSqlParser.ACCOUNT); + this.state = 6842; + _la = this._input.LA(1); + if(!(_la===879 || _la===2185)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + user_editions_clause() { + let localctx = new User_editions_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 580, OracleSqlParser.RULE_user_editions_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6844; + this.match(OracleSqlParser.ENABLE); + this.state = 6845; + this.match(OracleSqlParser.EDITIONS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_user_editions_clause() { + let localctx = new Alter_user_editions_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 582, OracleSqlParser.RULE_alter_user_editions_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6847; + this.user_editions_clause(); + this.state = 6857; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===618) { + this.state = 6848; + this.match(OracleSqlParser.FOR); + this.state = 6849; + this.regular_id(); + this.state = 6854; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6850; + this.match(OracleSqlParser.COMMA); + this.state = 6851; + this.regular_id(); + this.state = 6856; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6860; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 6859; + this.match(OracleSqlParser.FORCE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + proxy_clause() { + let localctx = new Proxy_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 584, OracleSqlParser.RULE_proxy_clause); + var _la = 0; + try { + this.state = 6901; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1587: + this.enterOuterAlt(localctx, 1); + this.state = 6862; + this.match(OracleSqlParser.REVOKE); + this.state = 6863; + this.match(OracleSqlParser.CONNECT); + this.state = 6864; + this.match(OracleSqlParser.THROUGH); + this.state = 6868; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,668,this._ctx); + switch(la_) { + case 1: + this.state = 6865; + this.match(OracleSqlParser.ENTERPRISE); + this.state = 6866; + this.match(OracleSqlParser.USERS); + break; + + case 2: + this.state = 6867; + this.user_object_name(); + break; + + } + break; + case 645: + this.enterOuterAlt(localctx, 2); + this.state = 6870; + this.match(OracleSqlParser.GRANT); + this.state = 6871; + this.match(OracleSqlParser.CONNECT); + this.state = 6872; + this.match(OracleSqlParser.THROUGH); + this.state = 6899; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,674,this._ctx); + switch(la_) { + case 1: + this.state = 6873; + this.match(OracleSqlParser.ENTERPRISE); + this.state = 6874; + this.match(OracleSqlParser.USERS); + break; + + case 2: + this.state = 6875; + this.user_object_name(); + this.state = 6883; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 6876; + this.match(OracleSqlParser.WITH); + this.state = 6881; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1135: + this.state = 6877; + this.match(OracleSqlParser.NO); + this.state = 6878; + this.match(OracleSqlParser.ROLES); + break; + case 1591: + this.state = 6879; + this.match(OracleSqlParser.ROLE); + this.state = 6880; + this.role_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 6887; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===87) { + this.state = 6885; + this.match(OracleSqlParser.AUTHENTICATION); + this.state = 6886; + this.match(OracleSqlParser.REQUIRED); + } + + this.state = 6897; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===86) { + this.state = 6889; + this.match(OracleSqlParser.AUTHENTICATED); + this.state = 6890; + this.match(OracleSqlParser.USING); + this.state = 6895; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1354: + this.state = 6891; + this.match(OracleSqlParser.PASSWORD); + break; + case 187: + this.state = 6892; + this.match(OracleSqlParser.CERTIFICATE); + break; + case 444: + this.state = 6893; + this.match(OracleSqlParser.DISTINGUISHED); + this.state = 6894; + this.match(OracleSqlParser.NAME); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + container_names() { + let localctx = new Container_namesContext(this, this._ctx, this.state); + this.enterRule(localctx, 586, OracleSqlParser.RULE_container_names); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6903; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 6904; + this.id_expression(); + this.state = 6909; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 6905; + this.match(OracleSqlParser.COMMA); + this.state = 6906; + this.id_expression(); + this.state = 6911; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6912; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + set_container_data() { + let localctx = new Set_container_dataContext(this, this._ctx, this.state); + this.enterRule(localctx, 588, OracleSqlParser.RULE_set_container_data); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6914; + this.match(OracleSqlParser.SET); + this.state = 6915; + this.match(OracleSqlParser.CONTAINER_DATA); + this.state = 6916; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 6920; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 38: + this.state = 6917; + this.match(OracleSqlParser.ALL); + break; + case 387: + this.state = 6918; + this.match(OracleSqlParser.DEFAULT); + break; + case 2445: + this.state = 6919; + this.container_names(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_rem_container_data() { + let localctx = new Add_rem_container_dataContext(this, this._ctx, this.state); + this.enterRule(localctx, 590, OracleSqlParser.RULE_add_rem_container_data); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6922; + _la = this._input.LA(1); + if(!(_la===21 || _la===1556)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6923; + this.match(OracleSqlParser.CONTAINER_DATA); + this.state = 6924; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 6925; + this.container_names(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + container_data_clause() { + let localctx = new Container_data_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 592, OracleSqlParser.RULE_container_data_clause); + var _la = 0; + try { + this.state = 6933; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1669: + this.enterOuterAlt(localctx, 1); + this.state = 6927; + this.set_container_data(); + break; + case 21: + case 1556: + this.enterOuterAlt(localctx, 2); + this.state = 6928; + this.add_rem_container_data(); + this.state = 6931; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===618) { + this.state = 6929; + this.match(OracleSqlParser.FOR); + this.state = 6930; + this.container_tableview_name(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + administer_key_management() { + let localctx = new Administer_key_managementContext(this, this._ctx, this.state); + this.enterRule(localctx, 594, OracleSqlParser.RULE_administer_key_management); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6935; + this.match(OracleSqlParser.ADMINISTER); + this.state = 6936; + this.match(OracleSqlParser.KEY); + this.state = 6937; + this.match(OracleSqlParser.MANAGEMENT); + this.state = 6942; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,680,this._ctx); + switch(la_) { + case 1: + this.state = 6938; + this.keystore_management_clauses(); + break; + + case 2: + this.state = 6939; + this.key_management_clauses(); + break; + + case 3: + this.state = 6940; + this.secret_management_clauses(); + break; + + case 4: + this.state = 6941; + this.zero_downtime_software_patching_clauses(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + keystore_management_clauses() { + let localctx = new Keystore_management_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 596, OracleSqlParser.RULE_keystore_management_clauses); + try { + this.state = 6953; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,681,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6944; + this.create_keystore(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6945; + this.open_keystore(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 6946; + this.close_keystore(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 6947; + this.backup_keystore(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 6948; + this.alter_keystore_password(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 6949; + this.merge_into_new_keystore(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 6950; + this.merge_into_existing_keystore(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 6951; + this.isolate_keystore(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 6952; + this.unite_keystore(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_keystore() { + let localctx = new Create_keystoreContext(this, this._ctx, this.state); + this.enterRule(localctx, 598, OracleSqlParser.RULE_create_keystore); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6955; + this.match(OracleSqlParser.CREATE); + this.state = 6966; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 818: + this.state = 6956; + this.match(OracleSqlParser.KEYSTORE); + this.state = 6957; + localctx.ksl = this.match(OracleSqlParser.CHAR_STRING); + break; + case 94: + case 871: + this.state = 6959; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===871) { + this.state = 6958; + this.match(OracleSqlParser.LOCAL); + } + + this.state = 6961; + this.match(OracleSqlParser.AUTO_LOGIN); + this.state = 6962; + this.match(OracleSqlParser.KEYSTORE); + this.state = 6963; + this.match(OracleSqlParser.FROM); + this.state = 6964; + this.match(OracleSqlParser.KEYSTORE); + this.state = 6965; + localctx.ksl = this.match(OracleSqlParser.CHAR_STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6968; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 6969; + this.match(OracleSqlParser.BY); + this.state = 6970; + this.keystore_password(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + open_keystore() { + let localctx = new Open_keystoreContext(this, this._ctx, this.state); + this.enterRule(localctx, 600, OracleSqlParser.RULE_open_keystore); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6972; + this.match(OracleSqlParser.SET); + this.state = 6973; + this.match(OracleSqlParser.KEYSTORE); + this.state = 6974; + this.match(OracleSqlParser.OPEN); + this.state = 6976; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 6975; + this.force_keystore(); + } + + this.state = 6978; + this.identified_by_store(); + this.state = 6980; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===287) { + this.state = 6979; + this.container_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + force_keystore() { + let localctx = new Force_keystoreContext(this, this._ctx, this.state); + this.enterRule(localctx, 602, OracleSqlParser.RULE_force_keystore); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6982; + this.match(OracleSqlParser.FORCE); + this.state = 6983; + this.match(OracleSqlParser.KEYSTORE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + close_keystore() { + let localctx = new Close_keystoreContext(this, this._ctx, this.state); + this.enterRule(localctx, 604, OracleSqlParser.RULE_close_keystore); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6985; + this.match(OracleSqlParser.SET); + this.state = 6986; + this.match(OracleSqlParser.KEYSTORE); + this.state = 6987; + this.match(OracleSqlParser.CLOSE); + this.state = 6989; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===683) { + this.state = 6988; + this.identified_by_store(); + } + + this.state = 6992; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===287) { + this.state = 6991; + this.container_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + backup_keystore() { + let localctx = new Backup_keystoreContext(this, this._ctx, this.state); + this.enterRule(localctx, 606, OracleSqlParser.RULE_backup_keystore); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 6994; + this.match(OracleSqlParser.BACKUP); + this.state = 6995; + this.match(OracleSqlParser.KEYSTORE); + this.state = 6998; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 6996; + this.match(OracleSqlParser.USING); + this.state = 6997; + localctx.bi = this.match(OracleSqlParser.CHAR_STRING); + } + + this.state = 7001; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7000; + this.force_keystore(); + } + + this.state = 7003; + this.identified_by_store(); + this.state = 7006; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2139) { + this.state = 7004; + this.match(OracleSqlParser.TO); + this.state = 7005; + localctx.ksl = this.match(OracleSqlParser.CHAR_STRING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_keystore_password() { + let localctx = new Alter_keystore_passwordContext(this, this._ctx, this.state); + this.enterRule(localctx, 608, OracleSqlParser.RULE_alter_keystore_password); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7008; + this.match(OracleSqlParser.ALTER); + this.state = 7009; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7010; + this.match(OracleSqlParser.PASSWORD); + this.state = 7012; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7011; + this.force_keystore(); + } + + this.state = 7014; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 7015; + this.match(OracleSqlParser.BY); + this.state = 7016; + localctx.o = this.keystore_password(); + this.state = 7017; + this.match(OracleSqlParser.SET); + this.state = 7018; + localctx.n = this.keystore_password(); + this.state = 7020; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7019; + this.with_backup_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + merge_into_new_keystore() { + let localctx = new Merge_into_new_keystoreContext(this, this._ctx, this.state); + this.enterRule(localctx, 610, OracleSqlParser.RULE_merge_into_new_keystore); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7022; + this.match(OracleSqlParser.MERGE); + this.state = 7023; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7024; + localctx.ksl1 = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7026; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===683) { + this.state = 7025; + this.identified_by_password_clause(); + } + + this.state = 7028; + this.match(OracleSqlParser.AND); + this.state = 7029; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7030; + localctx.ksl2 = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7032; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===683) { + this.state = 7031; + this.identified_by_password_clause(); + } + + this.state = 7034; + this.match(OracleSqlParser.INTO); + this.state = 7035; + this.match(OracleSqlParser.NEW); + this.state = 7036; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7037; + localctx.ksl2 = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7038; + this.identified_by_password_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + merge_into_existing_keystore() { + let localctx = new Merge_into_existing_keystoreContext(this, this._ctx, this.state); + this.enterRule(localctx, 612, OracleSqlParser.RULE_merge_into_existing_keystore); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7040; + this.match(OracleSqlParser.MERGE); + this.state = 7041; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7042; + localctx.ksl1 = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7044; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===683) { + this.state = 7043; + this.identified_by_password_clause(); + } + + this.state = 7046; + this.match(OracleSqlParser.INTO); + this.state = 7047; + this.match(OracleSqlParser.EXISTING); + this.state = 7048; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7049; + localctx.ksl2 = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7050; + this.identified_by_password_clause(); + this.state = 7052; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7051; + this.with_backup_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + isolate_keystore() { + let localctx = new Isolate_keystoreContext(this, this._ctx, this.state); + this.enterRule(localctx, 614, OracleSqlParser.RULE_isolate_keystore); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7055; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7054; + this.match(OracleSqlParser.FORCE); + } + + this.state = 7057; + this.match(OracleSqlParser.ISOLATE); + this.state = 7058; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7059; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 7060; + this.match(OracleSqlParser.BY); + this.state = 7061; + localctx.i = this.keystore_password(); + this.state = 7062; + this.match(OracleSqlParser.FROM); + this.state = 7063; + this.match(OracleSqlParser.ROOT); + this.state = 7064; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7066; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7065; + this.force_keystore(); + } + + this.state = 7068; + this.identified_by_store(); + this.state = 7070; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7069; + this.with_backup_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + unite_keystore() { + let localctx = new Unite_keystoreContext(this, this._ctx, this.state); + this.enterRule(localctx, 616, OracleSqlParser.RULE_unite_keystore); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7072; + this.match(OracleSqlParser.UNITE); + this.state = 7073; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7074; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 7075; + this.match(OracleSqlParser.BY); + this.state = 7076; + localctx.i = this.keystore_password(); + this.state = 7077; + this.match(OracleSqlParser.WITH); + this.state = 7078; + this.match(OracleSqlParser.ROOT); + this.state = 7079; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7081; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7080; + this.force_keystore(); + } + + this.state = 7083; + this.identified_by_store(); + this.state = 7085; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7084; + this.with_backup_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + key_management_clauses() { + let localctx = new Key_management_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 618, OracleSqlParser.RULE_key_management_clauses); + try { + this.state = 7096; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,702,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 7087; + this.set_key(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 7088; + this.create_key(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 7089; + this.use_key(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 7090; + this.set_key_tag(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 7091; + this.export_keys(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 7092; + this.import_keys(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 7093; + this.migrate_keys(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 7094; + this.reverse_migrate_keys(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 7095; + this.move_keys(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + set_key() { + let localctx = new Set_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 620, OracleSqlParser.RULE_set_key); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7098; + this.match(OracleSqlParser.SET); + this.state = 7100; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===504) { + this.state = 7099; + this.match(OracleSqlParser.ENCRYPTION); + } + + this.state = 7102; + this.match(OracleSqlParser.KEY); + this.state = 7109; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2441) { + this.state = 7106; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,704,this._ctx); + if(la_===1) { + this.state = 7103; + this.mkid(); + this.state = 7104; + this.match(OracleSqlParser.COLON); + + } + this.state = 7108; + this.mk(); + } + + this.state = 7112; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,706,this._ctx); + if(la_===1) { + this.state = 7111; + this.using_tag_clause(); + + } + this.state = 7115; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 7114; + this.using_algorithm_clause(); + } + + this.state = 7118; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7117; + this.force_keystore(); + } + + this.state = 7120; + this.identified_by_store(); + this.state = 7122; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7121; + this.with_backup_clause(); + } + + this.state = 7125; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===287) { + this.state = 7124; + this.container_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_key() { + let localctx = new Create_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 622, OracleSqlParser.RULE_create_key); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7127; + this.match(OracleSqlParser.CREATE); + this.state = 7129; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===504) { + this.state = 7128; + this.match(OracleSqlParser.ENCRYPTION); + } + + this.state = 7131; + this.match(OracleSqlParser.KEY); + this.state = 7138; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2441) { + this.state = 7135; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,712,this._ctx); + if(la_===1) { + this.state = 7132; + this.mkid(); + this.state = 7133; + this.match(OracleSqlParser.COLON); + + } + this.state = 7137; + this.mk(); + } + + this.state = 7141; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,714,this._ctx); + if(la_===1) { + this.state = 7140; + this.using_tag_clause(); + + } + this.state = 7144; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 7143; + this.using_algorithm_clause(); + } + + this.state = 7147; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7146; + this.force_keystore(); + } + + this.state = 7149; + this.identified_by_store(); + this.state = 7151; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7150; + this.with_backup_clause(); + } + + this.state = 7154; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===287) { + this.state = 7153; + this.container_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + mkid() { + let localctx = new MkidContext(this, this._ctx, this.state); + this.enterRule(localctx, 624, OracleSqlParser.RULE_mkid); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7156; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + mk() { + let localctx = new MkContext(this, this._ctx, this.state); + this.enterRule(localctx, 626, OracleSqlParser.RULE_mk); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7158; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + use_key() { + let localctx = new Use_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 628, OracleSqlParser.RULE_use_key); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7160; + this.match(OracleSqlParser.USE); + this.state = 7162; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===504) { + this.state = 7161; + this.match(OracleSqlParser.ENCRYPTION); + } + + this.state = 7164; + this.match(OracleSqlParser.KEY); + this.state = 7165; + localctx.k = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7167; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 7166; + this.using_tag_clause(); + } + + this.state = 7170; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7169; + this.force_keystore(); + } + + this.state = 7172; + this.identified_by_store(); + this.state = 7174; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7173; + this.with_backup_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + set_key_tag() { + let localctx = new Set_key_tagContext(this, this._ctx, this.state); + this.enterRule(localctx, 630, OracleSqlParser.RULE_set_key_tag); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7176; + this.match(OracleSqlParser.SET); + this.state = 7177; + this.match(OracleSqlParser.TAG); + this.state = 7178; + localctx.t = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7179; + this.match(OracleSqlParser.FOR); + this.state = 7180; + localctx.k = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7182; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7181; + this.force_keystore(); + } + + this.state = 7184; + this.identified_by_store(); + this.state = 7186; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7185; + this.with_backup_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + export_keys() { + let localctx = new Export_keysContext(this, this._ctx, this.state); + this.enterRule(localctx, 632, OracleSqlParser.RULE_export_keys); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7188; + this.match(OracleSqlParser.EXPORT); + this.state = 7190; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===504) { + this.state = 7189; + this.match(OracleSqlParser.ENCRYPTION); + } + + this.state = 7192; + this.match(OracleSqlParser.KEYS); + this.state = 7193; + this.match(OracleSqlParser.WITH); + this.state = 7194; + this.match(OracleSqlParser.SECRET); + this.state = 7195; + this.secret(); + this.state = 7196; + this.match(OracleSqlParser.TO); + this.state = 7197; + this.filename(); + this.state = 7199; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7198; + this.force_keystore(); + } + + this.state = 7201; + this.identified_by_store(); + this.state = 7219; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7202; + this.match(OracleSqlParser.WITH); + this.state = 7203; + this.match(OracleSqlParser.IDENTIFIER); + this.state = 7204; + this.match(OracleSqlParser.IN); + this.state = 7217; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 7205; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 7210; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7206; + this.match(OracleSqlParser.COMMA); + this.state = 7207; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 7212; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 2445: + this.state = 7213; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 7214; + this.subquery(); + this.state = 7215; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + import_keys() { + let localctx = new Import_keysContext(this, this._ctx, this.state); + this.enterRule(localctx, 634, OracleSqlParser.RULE_import_keys); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7221; + this.match(OracleSqlParser.IMPORT); + this.state = 7223; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===504) { + this.state = 7222; + this.match(OracleSqlParser.ENCRYPTION); + } + + this.state = 7225; + this.match(OracleSqlParser.KEYS); + this.state = 7226; + this.match(OracleSqlParser.WITH); + this.state = 7227; + this.match(OracleSqlParser.SECRET); + this.state = 7228; + this.secret(); + this.state = 7229; + this.match(OracleSqlParser.FROM); + this.state = 7230; + this.filename(); + this.state = 7232; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7231; + this.force_keystore(); + } + + this.state = 7234; + this.identified_by_store(); + this.state = 7236; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7235; + this.with_backup_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + migrate_keys() { + let localctx = new Migrate_keysContext(this, this._ctx, this.state); + this.enterRule(localctx, 636, OracleSqlParser.RULE_migrate_keys); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7238; + this.match(OracleSqlParser.SET); + this.state = 7240; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===504) { + this.state = 7239; + this.match(OracleSqlParser.ENCRYPTION); + } + + this.state = 7242; + this.match(OracleSqlParser.KEY); + this.state = 7243; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 7244; + this.match(OracleSqlParser.BY); + this.state = 7245; + localctx.hsm = this.secret(); + this.state = 7247; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7246; + this.force_keystore(); + } + + this.state = 7249; + this.match(OracleSqlParser.MIGRATE); + this.state = 7250; + this.match(OracleSqlParser.USING); + this.state = 7251; + this.keystore_password(); + this.state = 7253; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7252; + this.with_backup_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + reverse_migrate_keys() { + let localctx = new Reverse_migrate_keysContext(this, this._ctx, this.state); + this.enterRule(localctx, 638, OracleSqlParser.RULE_reverse_migrate_keys); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7255; + this.match(OracleSqlParser.SET); + this.state = 7257; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===504) { + this.state = 7256; + this.match(OracleSqlParser.ENCRYPTION); + } + + this.state = 7259; + this.match(OracleSqlParser.KEY); + this.state = 7260; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 7261; + this.match(OracleSqlParser.BY); + this.state = 7262; + localctx.s = this.secret(); + this.state = 7264; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7263; + this.force_keystore(); + } + + this.state = 7266; + this.match(OracleSqlParser.REVERSE); + this.state = 7267; + this.match(OracleSqlParser.MIGRATE); + this.state = 7268; + this.match(OracleSqlParser.USING); + this.state = 7269; + localctx.hsm = this.secret(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + move_keys() { + let localctx = new Move_keysContext(this, this._ctx, this.state); + this.enterRule(localctx, 640, OracleSqlParser.RULE_move_keys); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7271; + this.match(OracleSqlParser.MOVE); + this.state = 7273; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===504) { + this.state = 7272; + this.match(OracleSqlParser.ENCRYPTION); + } + + this.state = 7275; + this.match(OracleSqlParser.KEYS); + this.state = 7276; + this.match(OracleSqlParser.TO); + this.state = 7277; + this.match(OracleSqlParser.NEW); + this.state = 7278; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7279; + localctx.ksl1 = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7280; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 7281; + this.match(OracleSqlParser.BY); + this.state = 7282; + localctx.ksp1 = this.keystore_password(); + this.state = 7283; + this.match(OracleSqlParser.FROM); + this.state = 7285; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7284; + this.match(OracleSqlParser.FORCE); + } + + this.state = 7287; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7288; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 7289; + this.match(OracleSqlParser.BY); + this.state = 7290; + localctx.ksp = this.keystore_password(); + this.state = 7305; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,742,this._ctx); + if(la_===1) { + this.state = 7291; + this.match(OracleSqlParser.WITH); + this.state = 7292; + this.match(OracleSqlParser.IDENTIFIER); + this.state = 7293; + this.match(OracleSqlParser.IN); + this.state = 7303; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 7294; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 7299; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7295; + this.match(OracleSqlParser.COMMA); + this.state = 7296; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 7301; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 1645: + case 2445: + this.state = 7302; + this.subquery(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + this.state = 7308; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7307; + this.with_backup_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + identified_by_store() { + let localctx = new Identified_by_storeContext(this, this._ctx, this.state); + this.enterRule(localctx, 642, OracleSqlParser.RULE_identified_by_store); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7310; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 7311; + this.match(OracleSqlParser.BY); + this.state = 7315; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 558: + this.state = 7312; + this.match(OracleSqlParser.EXTERNAL); + this.state = 7313; + this.match(OracleSqlParser.STORE); + break; + case 2442: + this.state = 7314; + this.keystore_password(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + using_algorithm_clause() { + let localctx = new Using_algorithm_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 644, OracleSqlParser.RULE_using_algorithm_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7317; + this.match(OracleSqlParser.USING); + this.state = 7318; + this.match(OracleSqlParser.ALGORITHM); + this.state = 7319; + localctx.ea = this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + using_tag_clause() { + let localctx = new Using_tag_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 646, OracleSqlParser.RULE_using_tag_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7321; + this.match(OracleSqlParser.USING); + this.state = 7322; + this.match(OracleSqlParser.TAG); + this.state = 7323; + localctx.t = this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + secret_management_clauses() { + let localctx = new Secret_management_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 648, OracleSqlParser.RULE_secret_management_clauses); + try { + this.state = 7329; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,745,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 7325; + this.add_update_secret(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 7326; + this.delete_secret(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 7327; + this.add_update_secret_seps(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 7328; + this.delete_secret_seps(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_update_secret() { + let localctx = new Add_update_secretContext(this, this._ctx, this.state); + this.enterRule(localctx, 650, OracleSqlParser.RULE_add_update_secret); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7331; + _la = this._input.LA(1); + if(!(_la===21 || _la===2205)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7332; + this.match(OracleSqlParser.SECRET); + this.state = 7333; + localctx.s = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7334; + this.match(OracleSqlParser.FOR); + this.state = 7335; + this.match(OracleSqlParser.CLIENT); + this.state = 7336; + localctx.ci = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7338; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 7337; + this.using_tag_clause(); + } + + this.state = 7341; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7340; + this.force_keystore(); + } + + this.state = 7344; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===683) { + this.state = 7343; + this.identified_by_store(); + } + + this.state = 7347; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7346; + this.with_backup_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + delete_secret() { + let localctx = new Delete_secretContext(this, this._ctx, this.state); + this.enterRule(localctx, 652, OracleSqlParser.RULE_delete_secret); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7349; + this.match(OracleSqlParser.DELETE); + this.state = 7350; + this.match(OracleSqlParser.SECRET); + this.state = 7351; + this.match(OracleSqlParser.FOR); + this.state = 7352; + this.match(OracleSqlParser.CLIENT); + this.state = 7353; + localctx.ci = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7355; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 7354; + this.force_keystore(); + } + + this.state = 7357; + this.identified_by_store(); + this.state = 7359; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7358; + this.with_backup_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_update_secret_seps() { + let localctx = new Add_update_secret_sepsContext(this, this._ctx, this.state); + this.enterRule(localctx, 654, OracleSqlParser.RULE_add_update_secret_seps); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7361; + _la = this._input.LA(1); + if(!(_la===21 || _la===2205)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7362; + this.match(OracleSqlParser.SECRET); + this.state = 7363; + localctx.s = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7364; + this.match(OracleSqlParser.FOR); + this.state = 7365; + this.match(OracleSqlParser.CLIENT); + this.state = 7366; + localctx.ci = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7368; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 7367; + this.using_tag_clause(); + } + + this.state = 7370; + this.match(OracleSqlParser.TO); + this.state = 7372; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===871) { + this.state = 7371; + this.match(OracleSqlParser.LOCAL); + } + + this.state = 7374; + this.match(OracleSqlParser.AUTO_LOGIN); + this.state = 7375; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7376; + this.directory_path(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + delete_secret_seps() { + let localctx = new Delete_secret_sepsContext(this, this._ctx, this.state); + this.enterRule(localctx, 656, OracleSqlParser.RULE_delete_secret_seps); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7378; + this.match(OracleSqlParser.DELETE); + this.state = 7379; + this.match(OracleSqlParser.SECRET); + this.state = 7380; + localctx.s = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7381; + this.match(OracleSqlParser.SQ); + this.state = 7382; + this.match(OracleSqlParser.FOR); + this.state = 7383; + this.match(OracleSqlParser.CLIENT); + this.state = 7384; + localctx.ci = this.match(OracleSqlParser.CHAR_STRING); + this.state = 7385; + this.match(OracleSqlParser.FROM); + this.state = 7387; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===871) { + this.state = 7386; + this.match(OracleSqlParser.LOCAL); + } + + this.state = 7389; + this.match(OracleSqlParser.AUTO_LOGIN); + this.state = 7390; + this.match(OracleSqlParser.KEYSTORE); + this.state = 7391; + this.directory_path(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + zero_downtime_software_patching_clauses() { + let localctx = new Zero_downtime_software_patching_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 658, OracleSqlParser.RULE_zero_downtime_software_patching_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7393; + this.match(OracleSqlParser.SWITCHOVER); + this.state = 7395; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2139) { + this.state = 7394; + this.match(OracleSqlParser.TO); + } + + this.state = 7397; + this.match(OracleSqlParser.LIBRARY); + this.state = 7398; + this.path(); + this.state = 7399; + this.match(OracleSqlParser.FOR); + this.state = 7400; + this.match(OracleSqlParser.ALL); + this.state = 7401; + this.match(OracleSqlParser.CONTAINERS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + with_backup_clause() { + let localctx = new With_backup_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 660, OracleSqlParser.RULE_with_backup_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7403; + this.match(OracleSqlParser.WITH); + this.state = 7404; + this.match(OracleSqlParser.BACKUP); + this.state = 7407; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 7405; + this.match(OracleSqlParser.USING); + this.state = 7406; + localctx.bi = this.match(OracleSqlParser.CHAR_STRING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + identified_by_password_clause() { + let localctx = new Identified_by_password_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 662, OracleSqlParser.RULE_identified_by_password_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7409; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 7410; + this.match(OracleSqlParser.BY); + this.state = 7411; + this.keystore_password(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + keystore_password() { + let localctx = new Keystore_passwordContext(this, this._ctx, this.state); + this.enterRule(localctx, 664, OracleSqlParser.RULE_keystore_password); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7413; + this.match(OracleSqlParser.DELIMITED_ID); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + path() { + let localctx = new PathContext(this, this._ctx, this.state); + this.enterRule(localctx, 666, OracleSqlParser.RULE_path); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7415; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + secret() { + let localctx = new SecretContext(this, this._ctx, this.state); + this.enterRule(localctx, 668, OracleSqlParser.RULE_secret); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7417; + this.match(OracleSqlParser.DELIMITED_ID); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + analyze() { + let localctx = new AnalyzeContext(this, this._ctx, this.state); + this.enterRule(localctx, 670, OracleSqlParser.RULE_analyze); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7432; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,759,this._ctx); + switch(la_) { + case 1: + this.state = 7419; + this.match(OracleSqlParser.ANALYZE); + this.state = 7424; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2081: + this.state = 7420; + this.match(OracleSqlParser.TABLE); + this.state = 7421; + this.tableview_name(); + break; + case 715: + this.state = 7422; + this.match(OracleSqlParser.INDEX); + this.state = 7423; + this.index_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7427; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1346 || _la===1773) { + this.state = 7426; + this.partition_extention_clause(); + } + + break; + + case 2: + this.state = 7429; + this.match(OracleSqlParser.ANALYZE); + this.state = 7430; + this.match(OracleSqlParser.CLUSTER); + this.state = 7431; + this.cluster_name(); + break; + + } + this.state = 7460; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2251: + this.state = 7434; + this.validation_clauses(); + break; + case 260: + this.state = 7435; + this.compute_clauses(); + break; + case 525: + this.state = 7436; + this.match(OracleSqlParser.ESTIMATE); + this.state = 7438; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1947) { + this.state = 7437; + this.match(OracleSqlParser.SYSTEM); + } + + this.state = 7440; + this.match(OracleSqlParser.STATISTICS); + this.state = 7442; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===618) { + this.state = 7441; + this.for_clause(); + } + + this.state = 7447; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1612) { + this.state = 7444; + this.match(OracleSqlParser.SAMPLE); + this.state = 7445; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 7446; + _la = this._input.LA(1); + if(!(_la===1376 || _la===1605)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + case 860: + this.state = 7449; + this.match(OracleSqlParser.LIST); + this.state = 7450; + this.match(OracleSqlParser.CHAINED); + this.state = 7451; + this.match(OracleSqlParser.ROWS); + this.state = 7453; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===777) { + this.state = 7452; + this.into_clause1(); + } + + break; + case 401: + this.state = 7455; + this.match(OracleSqlParser.DELETE); + this.state = 7457; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1947) { + this.state = 7456; + this.match(OracleSqlParser.SYSTEM); + } + + this.state = 7459; + this.match(OracleSqlParser.STATISTICS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + partition_extention_clause() { + let localctx = new Partition_extention_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 672, OracleSqlParser.RULE_partition_extention_clause); + var _la = 0; + try { + this.state = 7500; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1346: + this.enterOuterAlt(localctx, 1); + this.state = 7462; + this.match(OracleSqlParser.PARTITION); + this.state = 7479; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 7463; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 7464; + this.partition_name(); + this.state = 7465; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 618: + this.state = 7467; + this.match(OracleSqlParser.FOR); + this.state = 7468; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 7469; + this.partition_key_value(); + this.state = 7474; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7470; + this.match(OracleSqlParser.COMMA); + this.state = 7471; + this.partition_key_value(); + this.state = 7476; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7477; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 1773: + this.enterOuterAlt(localctx, 2); + this.state = 7481; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 7498; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 7482; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 7483; + this.subpartition_name(); + this.state = 7484; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 618: + this.state = 7486; + this.match(OracleSqlParser.FOR); + this.state = 7487; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 7488; + this.subpartition_key_value(); + this.state = 7493; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7489; + this.match(OracleSqlParser.COMMA); + this.state = 7490; + this.subpartition_key_value(); + this.state = 7495; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7496; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + validation_clauses() { + let localctx = new Validation_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 674, OracleSqlParser.RULE_validation_clauses); + var _la = 0; + try { + this.state = 7531; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,777,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 7502; + this.match(OracleSqlParser.VALIDATE); + this.state = 7503; + this.match(OracleSqlParser.REF); + this.state = 7504; + this.match(OracleSqlParser.UPDATE); + this.state = 7509; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1669) { + this.state = 7505; + this.match(OracleSqlParser.SET); + this.state = 7506; + this.match(OracleSqlParser.DANGLING); + this.state = 7507; + this.match(OracleSqlParser.TO); + this.state = 7508; + this.match(OracleSqlParser.NULL_); + } + + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 7511; + this.match(OracleSqlParser.VALIDATE); + this.state = 7512; + this.match(OracleSqlParser.STRUCTURE); + this.state = 7523; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,774,this._ctx); + if(la_===1) { + this.state = 7513; + this.match(OracleSqlParser.CASCADE); + this.state = 7514; + this.match(OracleSqlParser.FAST); + + } else if(la_===2) { + this.state = 7515; + this.match(OracleSqlParser.CASCADE); + this.state = 7517; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,772,this._ctx); + if(la_===1) { + this.state = 7516; + this.online_or_offline(); + + } + this.state = 7520; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,773,this._ctx); + if(la_===1) { + this.state = 7519; + this.into_clause(); + + } + + } else if(la_===3) { + this.state = 7522; + this.match(OracleSqlParser.CASCADE); + + } + this.state = 7526; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1241 || _la===1254) { + this.state = 7525; + this.online_or_offline(); + } + + this.state = 7529; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===159 || _la===777) { + this.state = 7528; + this.into_clause(); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + compute_clauses() { + let localctx = new Compute_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 676, OracleSqlParser.RULE_compute_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7533; + this.match(OracleSqlParser.COMPUTE); + this.state = 7535; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1947) { + this.state = 7534; + this.match(OracleSqlParser.SYSTEM); + } + + this.state = 7537; + this.match(OracleSqlParser.STATISTICS); + this.state = 7539; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,779,this._ctx); + if(la_===1) { + this.state = 7538; + this.for_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + for_clause() { + let localctx = new For_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 678, OracleSqlParser.RULE_for_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7541; + this.match(OracleSqlParser.FOR); + this.state = 7589; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2081: + this.state = 7542; + this.match(OracleSqlParser.TABLE); + this.state = 7546; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,780,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 7543; + this.for_clause(); + } + this.state = 7548; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,780,this._ctx); + } + + break; + case 38: + this.state = 7549; + this.match(OracleSqlParser.ALL); + this.state = 7568; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 238: + case 711: + this.state = 7551; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===711) { + this.state = 7550; + this.match(OracleSqlParser.INDEXED); + } + + this.state = 7553; + this.match(OracleSqlParser.COLUMNS); + this.state = 7556; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,782,this._ctx); + if(la_===1) { + this.state = 7554; + this.match(OracleSqlParser.SIZE); + this.state = 7555; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + + } + this.state = 7561; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,783,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 7558; + this.for_clause(); + } + this.state = 7563; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,783,this._ctx); + } + + break; + case 712: + case 871: + this.state = 7565; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===871) { + this.state = 7564; + this.match(OracleSqlParser.LOCAL); + } + + this.state = 7567; + this.match(OracleSqlParser.INDEXES); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 238: + this.state = 7570; + this.match(OracleSqlParser.COLUMNS); + this.state = 7573; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1697) { + this.state = 7571; + this.match(OracleSqlParser.SIZE); + this.state = 7572; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } + + this.state = 7579; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 7575; + this.column_name(); + this.state = 7576; + this.match(OracleSqlParser.SIZE); + this.state = 7577; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7581; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,787, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 7586; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,788,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 7583; + this.for_clause(); + } + this.state = 7588; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,788,this._ctx); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + online_or_offline() { + let localctx = new Online_or_offlineContext(this, this._ctx, this.state); + this.enterRule(localctx, 680, OracleSqlParser.RULE_online_or_offline); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7591; + _la = this._input.LA(1); + if(!(_la===1241 || _la===1254)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + into_clause1() { + let localctx = new Into_clause1Context(this, this._ctx, this.state); + this.enterRule(localctx, 682, OracleSqlParser.RULE_into_clause1); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7593; + this.match(OracleSqlParser.INTO); + this.state = 7595; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2472 || _la===2478) { + this.state = 7594; + this.tableview_name(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + partition_key_value() { + let localctx = new Partition_key_valueContext(this, this._ctx, this.state); + this.enterRule(localctx, 684, OracleSqlParser.RULE_partition_key_value); + try { + this.state = 7600; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 204: + case 930: + case 2399: + case 2409: + case 2414: + case 2415: + case 2416: + case 2423: + case 2439: + case 2440: + case 2441: + case 2450: + this.enterOuterAlt(localctx, 1); + this.state = 7597; + this.literal(); + break; + case 2106: + this.enterOuterAlt(localctx, 2); + this.state = 7598; + this.match(OracleSqlParser.TIMESTAMP); + this.state = 7599; + this.quoted_string(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subpartition_key_value() { + let localctx = new Subpartition_key_valueContext(this, this._ctx, this.state); + this.enterRule(localctx, 686, OracleSqlParser.RULE_subpartition_key_value); + try { + this.state = 7605; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 204: + case 930: + case 2399: + case 2409: + case 2414: + case 2415: + case 2416: + case 2423: + case 2439: + case 2440: + case 2441: + case 2450: + this.enterOuterAlt(localctx, 1); + this.state = 7602; + this.literal(); + break; + case 2106: + this.enterOuterAlt(localctx, 2); + this.state = 7603; + this.match(OracleSqlParser.TIMESTAMP); + this.state = 7604; + this.quoted_string(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + associate_statistics() { + let localctx = new Associate_statisticsContext(this, this._ctx, this.state); + this.enterRule(localctx, 688, OracleSqlParser.RULE_associate_statistics); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7607; + this.match(OracleSqlParser.ASSOCIATE); + this.state = 7608; + this.match(OracleSqlParser.STATISTICS); + this.state = 7609; + this.match(OracleSqlParser.WITH); + this.state = 7612; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 238: + this.state = 7610; + this.column_association(); + break; + case 631: + case 712: + case 730: + case 1328: + case 2163: + this.state = 7611; + this.function_association(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7615; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 7614; + this.storage_table_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + column_association() { + let localctx = new Column_associationContext(this, this._ctx, this.state); + this.enterRule(localctx, 690, OracleSqlParser.RULE_column_association); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7617; + this.match(OracleSqlParser.COLUMNS); + this.state = 7618; + this.tableview_name(); + this.state = 7619; + this.match(OracleSqlParser.PERIOD); + this.state = 7620; + this.column_name(); + this.state = 7628; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7621; + this.match(OracleSqlParser.COMMA); + this.state = 7622; + this.tableview_name(); + this.state = 7623; + this.match(OracleSqlParser.PERIOD); + this.state = 7624; + this.column_name(); + this.state = 7630; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7631; + this.using_statistics_type(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + function_association() { + let localctx = new Function_associationContext(this, this._ctx, this.state); + this.enterRule(localctx, 692, OracleSqlParser.RULE_function_association); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7678; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 631: + this.state = 7633; + this.match(OracleSqlParser.FUNCTIONS); + this.state = 7634; + this.function_name(); + this.state = 7639; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7635; + this.match(OracleSqlParser.COMMA); + this.state = 7636; + this.function_name(); + this.state = 7641; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 1328: + this.state = 7642; + this.match(OracleSqlParser.PACKAGES); + this.state = 7643; + this.package_name(); + this.state = 7648; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7644; + this.match(OracleSqlParser.COMMA); + this.state = 7645; + this.package_name(); + this.state = 7650; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 2163: + this.state = 7651; + this.match(OracleSqlParser.TYPES); + this.state = 7652; + this.type_name(); + this.state = 7657; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7653; + this.match(OracleSqlParser.COMMA); + this.state = 7654; + this.type_name(); + this.state = 7659; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 712: + this.state = 7660; + this.match(OracleSqlParser.INDEXES); + this.state = 7661; + this.index_name(); + this.state = 7666; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7662; + this.match(OracleSqlParser.COMMA); + this.state = 7663; + this.index_name(); + this.state = 7668; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 730: + this.state = 7669; + this.match(OracleSqlParser.INDEXTYPES); + this.state = 7670; + this.indextype_name(); + this.state = 7675; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7671; + this.match(OracleSqlParser.COMMA); + this.state = 7672; + this.indextype_name(); + this.state = 7677; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7691; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,804,this._ctx); + switch(la_) { + case 1: + this.state = 7680; + this.using_statistics_type(); + break; + + case 2: + this.state = 7681; + this.default_cost_clause(); + this.state = 7684; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 7682; + this.match(OracleSqlParser.COMMA); + this.state = 7683; + this.default_selectivity_clause(); + } + + break; + + case 3: + this.state = 7686; + this.default_selectivity_clause(); + this.state = 7689; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 7687; + this.match(OracleSqlParser.COMMA); + this.state = 7688; + this.default_cost_clause(); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + indextype_name() { + let localctx = new Indextype_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 694, OracleSqlParser.RULE_indextype_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7693; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + using_statistics_type() { + let localctx = new Using_statistics_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 696, OracleSqlParser.RULE_using_statistics_type); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7695; + this.match(OracleSqlParser.USING); + this.state = 7698; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2478: + this.state = 7696; + this.statistics_type_name(); + break; + case 1226: + this.state = 7697; + this.match(OracleSqlParser.NULL_); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + statistics_type_name() { + let localctx = new Statistics_type_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 698, OracleSqlParser.RULE_statistics_type_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7700; + this.regular_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_cost_clause() { + let localctx = new Default_cost_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 700, OracleSqlParser.RULE_default_cost_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7702; + this.match(OracleSqlParser.DEFAULT); + this.state = 7703; + this.match(OracleSqlParser.COST); + this.state = 7704; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 7705; + this.cpu_cost(); + this.state = 7706; + this.match(OracleSqlParser.COMMA); + this.state = 7707; + this.io_cost(); + this.state = 7708; + this.match(OracleSqlParser.COMMA); + this.state = 7709; + this.network_cost(); + this.state = 7710; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cpu_cost() { + let localctx = new Cpu_costContext(this, this._ctx, this.state); + this.enterRule(localctx, 702, OracleSqlParser.RULE_cpu_cost); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7712; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + io_cost() { + let localctx = new Io_costContext(this, this._ctx, this.state); + this.enterRule(localctx, 704, OracleSqlParser.RULE_io_cost); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7714; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + network_cost() { + let localctx = new Network_costContext(this, this._ctx, this.state); + this.enterRule(localctx, 706, OracleSqlParser.RULE_network_cost); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7716; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_selectivity_clause() { + let localctx = new Default_selectivity_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 708, OracleSqlParser.RULE_default_selectivity_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7718; + this.match(OracleSqlParser.DEFAULT); + this.state = 7719; + this.match(OracleSqlParser.SELECTIVITY); + this.state = 7720; + this.default_selectivity(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_selectivity() { + let localctx = new Default_selectivityContext(this, this._ctx, this.state); + this.enterRule(localctx, 710, OracleSqlParser.RULE_default_selectivity); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7722; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + storage_table_clause() { + let localctx = new Storage_table_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 712, OracleSqlParser.RULE_storage_table_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7724; + this.match(OracleSqlParser.WITH); + this.state = 7725; + _la = this._input.LA(1); + if(!(_la===1947 || _la===2235)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7726; + this.match(OracleSqlParser.MANAGED); + this.state = 7727; + this.match(OracleSqlParser.STORAGE); + this.state = 7728; + this.match(OracleSqlParser.TABLES); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + unified_auditing() { + let localctx = new Unified_auditingContext(this, this._ctx, this.state); + this.enterRule(localctx, 714, OracleSqlParser.RULE_unified_auditing); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7730; + if (!( this.isVersion12())) { + throw new antlr4.error.FailedPredicateException(this, "this.isVersion12()"); + } + this.state = 7731; + this.match(OracleSqlParser.AUDIT); + this.state = 7775; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1410: + this.state = 7732; + this.match(OracleSqlParser.POLICY); + this.state = 7733; + this.policy_name(); + this.state = 7743; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===160 || _la===532) { + this.state = 7734; + _la = this._input.LA(1); + if(!(_la===160 || _la===532)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7735; + this.audit_user(); + this.state = 7740; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7736; + this.match(OracleSqlParser.COMMA); + this.state = 7737; + this.audit_user(); + this.state = 7742; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 7750; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2297) { + this.state = 7745; + this.match(OracleSqlParser.WHENEVER); + this.state = 7747; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 7746; + this.match(OracleSqlParser.NOT); + } + + this.state = 7749; + this.match(OracleSqlParser.SUCCESSFUL); + } + + break; + case 294: + this.state = 7752; + this.match(OracleSqlParser.CONTEXT); + this.state = 7753; + this.match(OracleSqlParser.NAMESPACE); + this.state = 7754; + this.oracle_namespace(); + this.state = 7755; + this.match(OracleSqlParser.ATTRIBUTES); + this.state = 7756; + this.attribute_name(); + this.state = 7761; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7757; + this.match(OracleSqlParser.COMMA); + this.state = 7758; + this.attribute_name(); + this.state = 7763; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7773; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===160) { + this.state = 7764; + this.match(OracleSqlParser.BY); + this.state = 7765; + this.audit_user(); + this.state = 7770; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7766; + this.match(OracleSqlParser.COMMA); + this.state = 7767; + this.audit_user(); + this.state = 7772; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + policy_name() { + let localctx = new Policy_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 716, OracleSqlParser.RULE_policy_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7777; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + audit_traditional() { + let localctx = new Audit_traditionalContext(this, this._ctx, this.state); + this.enterRule(localctx, 718, OracleSqlParser.RULE_audit_traditional); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7779; + this.match(OracleSqlParser.AUDIT); + this.state = 7790; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,815,this._ctx); + switch(la_) { + case 1: + this.state = 7780; + this.audit_operation_clause(); + this.state = 7785; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,814,this._ctx); + if(la_===1) { + this.state = 7781; + this.auditing_by_clause(); + + } else if(la_===2) { + this.state = 7782; + this.match(OracleSqlParser.IN); + this.state = 7783; + this.match(OracleSqlParser.SESSION); + this.state = 7784; + this.match(OracleSqlParser.CURRENT); + + } + break; + + case 2: + this.state = 7787; + this.audit_schema_object_clause(); + break; + + case 3: + this.state = 7788; + this.match(OracleSqlParser.NETWORK); + break; + + case 4: + this.state = 7789; + this.audit_direct_path(); + break; + + } + this.state = 7794; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,816,this._ctx); + if(la_===1) { + this.state = 7792; + this.match(OracleSqlParser.BY); + this.state = 7793; + _la = this._input.LA(1); + if(!(_la===4 || _la===1665)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 7801; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,818,this._ctx); + if(la_===1) { + this.state = 7796; + this.match(OracleSqlParser.WHENEVER); + this.state = 7798; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 7797; + this.match(OracleSqlParser.NOT); + } + + this.state = 7800; + this.match(OracleSqlParser.SUCCESSFUL); + + } + this.state = 7804; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,819,this._ctx); + if(la_===1) { + this.state = 7803; + this.audit_container_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + audit_direct_path() { + let localctx = new Audit_direct_pathContext(this, this._ctx, this.state); + this.enterRule(localctx, 720, OracleSqlParser.RULE_audit_direct_path); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7806; + if (!( this.isVersion12())) { + throw new antlr4.error.FailedPredicateException(this, "this.isVersion12()"); + } + this.state = 7807; + this.match(OracleSqlParser.DIRECT_PATH); + this.state = 7808; + this.auditing_by_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + audit_container_clause() { + let localctx = new Audit_container_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 722, OracleSqlParser.RULE_audit_container_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7810; + if (!( this.isVersion12())) { + throw new antlr4.error.FailedPredicateException(this, "this.isVersion12()"); + } + + this.state = 7811; + this.match(OracleSqlParser.CONTAINER); + this.state = 7812; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 7813; + _la = this._input.LA(1); + if(!(_la===38 || _la===334)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + audit_operation_clause() { + let localctx = new Audit_operation_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 724, OracleSqlParser.RULE_audit_operation_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7851; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,828,this._ctx); + switch(la_) { + case 1: + this.state = 7820; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,821,this._ctx); + switch(la_) { + case 1: + this.state = 7815; + this.sql_statement_shortcut(); + break; + + case 2: + this.state = 7816; + this.match(OracleSqlParser.ALL); + this.state = 7818; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,820,this._ctx); + if(la_===1) { + this.state = 7817; + this.match(OracleSqlParser.STATEMENTS); + + } + break; + + } + this.state = 7832; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,824,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 7822; + this.match(OracleSqlParser.COMMA); + this.state = 7828; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,823,this._ctx); + switch(la_) { + case 1: + this.state = 7823; + this.sql_statement_shortcut(); + break; + + case 2: + this.state = 7824; + this.match(OracleSqlParser.ALL); + this.state = 7826; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,822,this._ctx); + if(la_===1) { + this.state = 7825; + this.match(OracleSqlParser.STATEMENTS); + + } + break; + + } + } + this.state = 7834; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,824,this._ctx); + } + + break; + + case 2: + this.state = 7838; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,825,this._ctx); + switch(la_) { + case 1: + this.state = 7835; + this.system_privilege(); + break; + + case 2: + this.state = 7836; + this.match(OracleSqlParser.ALL); + this.state = 7837; + this.match(OracleSqlParser.PRIVILEGES); + break; + + } + this.state = 7848; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,827,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 7840; + this.match(OracleSqlParser.COMMA); + this.state = 7844; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,826,this._ctx); + switch(la_) { + case 1: + this.state = 7841; + this.system_privilege(); + break; + + case 2: + this.state = 7842; + this.match(OracleSqlParser.ALL); + this.state = 7843; + this.match(OracleSqlParser.PRIVILEGES); + break; + + } + } + this.state = 7850; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,827,this._ctx); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + auditing_by_clause() { + let localctx = new Auditing_by_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 726, OracleSqlParser.RULE_auditing_by_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7853; + this.match(OracleSqlParser.BY); + this.state = 7854; + this.audit_user(); + this.state = 7859; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,829,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 7855; + this.match(OracleSqlParser.COMMA); + this.state = 7856; + this.audit_user(); + } + this.state = 7861; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,829,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + audit_user() { + let localctx = new Audit_userContext(this, this._ctx, this.state); + this.enterRule(localctx, 728, OracleSqlParser.RULE_audit_user); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7862; + this.regular_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + audit_schema_object_clause() { + let localctx = new Audit_schema_object_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 730, OracleSqlParser.RULE_audit_schema_object_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7873; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 42: + case 85: + case 241: + case 401: + case 540: + case 603: + case 645: + case 715: + case 754: + case 879: + case 1503: + case 1557: + case 1645: + case 2205: + this.state = 7864; + this.sql_operation(); + this.state = 7869; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 7865; + this.match(OracleSqlParser.COMMA); + this.state = 7866; + this.sql_operation(); + this.state = 7871; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 38: + this.state = 7872; + this.match(OracleSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7875; + this.auditing_on_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sql_operation() { + let localctx = new Sql_operationContext(this, this._ctx, this.state); + this.enterRule(localctx, 732, OracleSqlParser.RULE_sql_operation); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7877; + _la = this._input.LA(1); + if(!(_la===42 || _la===85 || _la===241 || _la===401 || _la===540 || _la===603 || _la===645 || _la===715 || _la===754 || _la===879 || _la===1503 || _la===1557 || _la===1645 || _la===2205)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + auditing_on_clause() { + let localctx = new Auditing_on_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 734, OracleSqlParser.RULE_auditing_on_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7879; + this.match(OracleSqlParser.ON); + this.state = 7892; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,832,this._ctx); + switch(la_) { + case 1: + this.state = 7880; + this.object_name(); + break; + + case 2: + this.state = 7881; + this.match(OracleSqlParser.DIRECTORY); + this.state = 7882; + this.regular_id(); + break; + + case 3: + this.state = 7883; + this.match(OracleSqlParser.MINING); + this.state = 7884; + this.match(OracleSqlParser.MODEL); + this.state = 7885; + this.model_name(); + break; + + case 4: + this.state = 7886; + if (!( this.isVersion12())) { + throw new antlr4.error.FailedPredicateException(this, "this.isVersion12()"); + } + this.state = 7887; + this.match(OracleSqlParser.SQL); + this.state = 7888; + this.match(OracleSqlParser.TRANSLATION); + this.state = 7889; + this.match(OracleSqlParser.PROFILE); + this.state = 7890; + this.profile_name(); + break; + + case 5: + this.state = 7891; + this.match(OracleSqlParser.DEFAULT); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + model_name() { + let localctx = new Model_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 736, OracleSqlParser.RULE_model_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7897; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,833,this._ctx); + if(la_===1) { + this.state = 7894; + this.id_expression(); + this.state = 7895; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 7899; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_name() { + let localctx = new Object_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 738, OracleSqlParser.RULE_object_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7904; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,834,this._ctx); + if(la_===1) { + this.state = 7901; + this.id_expression(); + this.state = 7902; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 7906; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + profile_name() { + let localctx = new Profile_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 740, OracleSqlParser.RULE_profile_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7911; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,835,this._ctx); + if(la_===1) { + this.state = 7908; + this.id_expression(); + this.state = 7909; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 7913; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sql_statement_shortcut() { + let localctx = new Sql_statement_shortcutContext(this, this._ctx, this.state); + this.enterRule(localctx, 742, OracleSqlParser.RULE_sql_statement_shortcut); + try { + this.state = 7985; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,836,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 7915; + this.match(OracleSqlParser.ALTER); + this.state = 7916; + this.match(OracleSqlParser.SYSTEM); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 7917; + this.match(OracleSqlParser.CLUSTER); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 7918; + this.match(OracleSqlParser.CONTEXT); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 7919; + this.match(OracleSqlParser.DATABASE); + this.state = 7920; + this.match(OracleSqlParser.LINK); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 7921; + this.match(OracleSqlParser.DIMENSION); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 7922; + this.match(OracleSqlParser.DIRECTORY); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 7923; + this.match(OracleSqlParser.INDEX); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 7924; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 7925; + this.match(OracleSqlParser.VIEW); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 7926; + this.match(OracleSqlParser.NOT); + this.state = 7927; + this.match(OracleSqlParser.EXISTS); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 7928; + this.match(OracleSqlParser.OUTLINE); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 7929; + if (!( this.isVersion12())) { + throw new antlr4.error.FailedPredicateException(this, "this.isVersion12()"); + } + this.state = 7930; + this.match(OracleSqlParser.PLUGGABLE); + this.state = 7931; + this.match(OracleSqlParser.DATABASE); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 7932; + this.match(OracleSqlParser.PROCEDURE); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 7933; + this.match(OracleSqlParser.PROFILE); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 7934; + this.match(OracleSqlParser.PUBLIC); + this.state = 7935; + this.match(OracleSqlParser.DATABASE); + this.state = 7936; + this.match(OracleSqlParser.LINK); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 7937; + this.match(OracleSqlParser.PUBLIC); + this.state = 7938; + this.match(OracleSqlParser.SYNONYM); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 7939; + this.match(OracleSqlParser.ROLE); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 7940; + this.match(OracleSqlParser.ROLLBACK); + this.state = 7941; + this.match(OracleSqlParser.SEGMENT); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 7942; + this.match(OracleSqlParser.SEQUENCE); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 7943; + this.match(OracleSqlParser.SESSION); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 7944; + this.match(OracleSqlParser.SYNONYM); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 7945; + this.match(OracleSqlParser.SYSTEM); + this.state = 7946; + this.match(OracleSqlParser.AUDIT); + break; + + case 22: + this.enterOuterAlt(localctx, 22); + this.state = 7947; + this.match(OracleSqlParser.SYSTEM); + this.state = 7948; + this.match(OracleSqlParser.GRANT); + break; + + case 23: + this.enterOuterAlt(localctx, 23); + this.state = 7949; + this.match(OracleSqlParser.TABLE); + break; + + case 24: + this.enterOuterAlt(localctx, 24); + this.state = 7950; + this.match(OracleSqlParser.TABLESPACE); + break; + + case 25: + this.enterOuterAlt(localctx, 25); + this.state = 7951; + this.match(OracleSqlParser.TRIGGER); + break; + + case 26: + this.enterOuterAlt(localctx, 26); + this.state = 7952; + this.match(OracleSqlParser.TYPE); + break; + + case 27: + this.enterOuterAlt(localctx, 27); + this.state = 7953; + this.match(OracleSqlParser.USER); + break; + + case 28: + this.enterOuterAlt(localctx, 28); + this.state = 7954; + this.match(OracleSqlParser.VIEW); + break; + + case 29: + this.enterOuterAlt(localctx, 29); + this.state = 7955; + this.match(OracleSqlParser.ALTER); + this.state = 7956; + this.match(OracleSqlParser.SEQUENCE); + break; + + case 30: + this.enterOuterAlt(localctx, 30); + this.state = 7957; + this.match(OracleSqlParser.ALTER); + this.state = 7958; + this.match(OracleSqlParser.TABLE); + break; + + case 31: + this.enterOuterAlt(localctx, 31); + this.state = 7959; + this.match(OracleSqlParser.COMMENT); + this.state = 7960; + this.match(OracleSqlParser.TABLE); + break; + + case 32: + this.enterOuterAlt(localctx, 32); + this.state = 7961; + this.match(OracleSqlParser.DELETE); + this.state = 7962; + this.match(OracleSqlParser.TABLE); + break; + + case 33: + this.enterOuterAlt(localctx, 33); + this.state = 7963; + this.match(OracleSqlParser.EXECUTE); + this.state = 7964; + this.match(OracleSqlParser.PROCEDURE); + break; + + case 34: + this.enterOuterAlt(localctx, 34); + this.state = 7965; + this.match(OracleSqlParser.GRANT); + this.state = 7966; + this.match(OracleSqlParser.DIRECTORY); + break; + + case 35: + this.enterOuterAlt(localctx, 35); + this.state = 7967; + this.match(OracleSqlParser.GRANT); + this.state = 7968; + this.match(OracleSqlParser.PROCEDURE); + break; + + case 36: + this.enterOuterAlt(localctx, 36); + this.state = 7969; + this.match(OracleSqlParser.GRANT); + this.state = 7970; + this.match(OracleSqlParser.SEQUENCE); + break; + + case 37: + this.enterOuterAlt(localctx, 37); + this.state = 7971; + this.match(OracleSqlParser.GRANT); + this.state = 7972; + this.match(OracleSqlParser.TABLE); + break; + + case 38: + this.enterOuterAlt(localctx, 38); + this.state = 7973; + this.match(OracleSqlParser.GRANT); + this.state = 7974; + this.match(OracleSqlParser.TYPE); + break; + + case 39: + this.enterOuterAlt(localctx, 39); + this.state = 7975; + this.match(OracleSqlParser.INSERT); + this.state = 7976; + this.match(OracleSqlParser.TABLE); + break; + + case 40: + this.enterOuterAlt(localctx, 40); + this.state = 7977; + this.match(OracleSqlParser.LOCK); + this.state = 7978; + this.match(OracleSqlParser.TABLE); + break; + + case 41: + this.enterOuterAlt(localctx, 41); + this.state = 7979; + this.match(OracleSqlParser.SELECT); + this.state = 7980; + this.match(OracleSqlParser.SEQUENCE); + break; + + case 42: + this.enterOuterAlt(localctx, 42); + this.state = 7981; + this.match(OracleSqlParser.SELECT); + this.state = 7982; + this.match(OracleSqlParser.TABLE); + break; + + case 43: + this.enterOuterAlt(localctx, 43); + this.state = 7983; + this.match(OracleSqlParser.UPDATE); + this.state = 7984; + this.match(OracleSqlParser.TABLE); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_index() { + let localctx = new Drop_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 744, OracleSqlParser.RULE_drop_index); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7987; + this.match(OracleSqlParser.DROP); + this.state = 7988; + this.match(OracleSqlParser.INDEX); + this.state = 7989; + this.index_name(); + this.state = 7992; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 7990; + this.match(OracleSqlParser.IF); + this.state = 7991; + this.match(OracleSqlParser.EXISTS); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + disassociate_statistics() { + let localctx = new Disassociate_statisticsContext(this, this._ctx, this.state); + this.enterRule(localctx, 746, OracleSqlParser.RULE_disassociate_statistics); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 7994; + this.match(OracleSqlParser.DISASSOCIATE); + this.state = 7995; + this.match(OracleSqlParser.STATISTICS); + this.state = 7996; + this.match(OracleSqlParser.FROM); + this.state = 8116; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 238: + this.state = 7997; + this.match(OracleSqlParser.COLUMNS); + this.state = 8001; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,838,this._ctx); + if(la_===1) { + this.state = 7998; + this.schema_name(); + this.state = 7999; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8003; + localctx.tb = this.id_expression(); + this.state = 8004; + this.match(OracleSqlParser.PERIOD); + this.state = 8005; + localctx.c = this.id_expression(); + this.state = 8018; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8006; + this.match(OracleSqlParser.COMMA); + this.state = 8010; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,839,this._ctx); + if(la_===1) { + this.state = 8007; + this.schema_name(); + this.state = 8008; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8012; + localctx.tb = this.id_expression(); + this.state = 8013; + this.match(OracleSqlParser.PERIOD); + this.state = 8014; + localctx.c = this.id_expression(); + this.state = 8020; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 631: + this.state = 8021; + this.match(OracleSqlParser.FUNCTIONS); + this.state = 8025; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,841,this._ctx); + if(la_===1) { + this.state = 8022; + this.schema_name(); + this.state = 8023; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8027; + localctx.fn = this.id_expression(); + this.state = 8037; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8028; + this.match(OracleSqlParser.COMMA); + this.state = 8032; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,842,this._ctx); + if(la_===1) { + this.state = 8029; + this.schema_name(); + this.state = 8030; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8034; + localctx.fn = this.id_expression(); + this.state = 8039; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 1328: + this.state = 8040; + this.match(OracleSqlParser.PACKAGES); + this.state = 8044; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,844,this._ctx); + if(la_===1) { + this.state = 8041; + this.schema_name(); + this.state = 8042; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8046; + localctx.pkg = this.id_expression(); + this.state = 8056; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8047; + this.match(OracleSqlParser.COMMA); + this.state = 8051; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,845,this._ctx); + if(la_===1) { + this.state = 8048; + this.schema_name(); + this.state = 8049; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8053; + localctx.pkg = this.id_expression(); + this.state = 8058; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 2163: + this.state = 8059; + this.match(OracleSqlParser.TYPES); + this.state = 8063; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,847,this._ctx); + if(la_===1) { + this.state = 8060; + this.schema_name(); + this.state = 8061; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8065; + localctx.t = this.id_expression(); + this.state = 8075; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8066; + this.match(OracleSqlParser.COMMA); + this.state = 8070; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,848,this._ctx); + if(la_===1) { + this.state = 8067; + this.schema_name(); + this.state = 8068; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8072; + localctx.t = this.id_expression(); + this.state = 8077; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 712: + this.state = 8078; + this.match(OracleSqlParser.INDEXES); + this.state = 8082; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,850,this._ctx); + if(la_===1) { + this.state = 8079; + this.schema_name(); + this.state = 8080; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8084; + localctx.ix = this.id_expression(); + this.state = 8094; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8085; + this.match(OracleSqlParser.COMMA); + this.state = 8089; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,851,this._ctx); + if(la_===1) { + this.state = 8086; + this.schema_name(); + this.state = 8087; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8091; + localctx.ix = this.id_expression(); + this.state = 8096; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 730: + this.state = 8097; + this.match(OracleSqlParser.INDEXTYPES); + this.state = 8101; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,853,this._ctx); + if(la_===1) { + this.state = 8098; + this.schema_name(); + this.state = 8099; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8103; + localctx.it = this.id_expression(); + this.state = 8113; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8104; + this.match(OracleSqlParser.COMMA); + this.state = 8108; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,854,this._ctx); + if(la_===1) { + this.state = 8105; + this.schema_name(); + this.state = 8106; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8110; + localctx.it = this.id_expression(); + this.state = 8115; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8119; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 8118; + this.match(OracleSqlParser.FORCE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_indextype() { + let localctx = new Drop_indextypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 748, OracleSqlParser.RULE_drop_indextype); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8121; + this.match(OracleSqlParser.DROP); + this.state = 8122; + this.match(OracleSqlParser.INDEXTYPE); + this.state = 8126; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,858,this._ctx); + if(la_===1) { + this.state = 8123; + this.schema_name(); + this.state = 8124; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8128; + localctx.it = this.id_expression(); + this.state = 8130; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 8129; + this.match(OracleSqlParser.FORCE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_inmemory_join_group() { + let localctx = new Drop_inmemory_join_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 750, OracleSqlParser.RULE_drop_inmemory_join_group); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8132; + this.match(OracleSqlParser.DROP); + this.state = 8133; + this.match(OracleSqlParser.INMEMORY); + this.state = 8134; + this.match(OracleSqlParser.JOIN); + this.state = 8135; + this.match(OracleSqlParser.GROUP); + this.state = 8139; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,860,this._ctx); + if(la_===1) { + this.state = 8136; + this.schema_name(); + this.state = 8137; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8141; + localctx.jg = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + flashback_table() { + let localctx = new Flashback_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 752, OracleSqlParser.RULE_flashback_table); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8143; + this.match(OracleSqlParser.FLASHBACK); + this.state = 8144; + this.match(OracleSqlParser.TABLE); + this.state = 8145; + this.tableview_name(); + this.state = 8150; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8146; + this.match(OracleSqlParser.COMMA); + this.state = 8147; + this.tableview_name(); + this.state = 8152; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8153; + this.match(OracleSqlParser.TO); + this.state = 8172; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1572: + case 1625: + case 2106: + this.state = 8159; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1625: + case 2106: + this.state = 8154; + _la = this._input.LA(1); + if(!(_la===1625 || _la===2106)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8155; + this.expression(); + break; + case 1572: + this.state = 8156; + this.match(OracleSqlParser.RESTORE); + this.state = 8157; + this.match(OracleSqlParser.POINT); + this.state = 8158; + this.restore_point(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8163; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===427 || _la===497) { + this.state = 8161; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8162; + this.match(OracleSqlParser.TRIGGERS); + } + + break; + case 112: + this.state = 8165; + this.match(OracleSqlParser.BEFORE); + this.state = 8166; + this.match(OracleSqlParser.DROP); + this.state = 8170; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1557) { + this.state = 8167; + this.match(OracleSqlParser.RENAME); + this.state = 8168; + this.match(OracleSqlParser.TO); + this.state = 8169; + this.tableview_name(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + restore_point() { + let localctx = new Restore_pointContext(this, this._ctx, this.state); + this.enterRule(localctx, 754, OracleSqlParser.RULE_restore_point); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8174; + this.identifier(); + this.state = 8179; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2438) { + this.state = 8175; + this.match(OracleSqlParser.PERIOD); + this.state = 8176; + this.id_expression(); + this.state = 8181; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + purge_statement() { + let localctx = new Purge_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 756, OracleSqlParser.RULE_purge_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8182; + this.match(OracleSqlParser.PURGE); + this.state = 8196; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 715: + case 2081: + this.state = 8183; + _la = this._input.LA(1); + if(!(_la===715 || _la===2081)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8184; + this.id_expression(); + break; + case 2078: + this.state = 8185; + this.match(OracleSqlParser.TABLESPACE); + this.state = 8187; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,867,this._ctx); + if(la_===1) { + this.state = 8186; + this.match(OracleSqlParser.SET); + + } + this.state = 8189; + localctx.ts = this.id_expression(); + this.state = 8192; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2235) { + this.state = 8190; + this.match(OracleSqlParser.USER); + this.state = 8191; + localctx.u = this.id_expression(); + } + + break; + case 1516: + this.state = 8194; + this.match(OracleSqlParser.RECYCLEBIN); + break; + case 367: + this.state = 8195; + this.match(OracleSqlParser.DBA_RECYCLEBIN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + noaudit_statement() { + let localctx = new Noaudit_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 758, OracleSqlParser.RULE_noaudit_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8198; + this.match(OracleSqlParser.NOAUDIT); + this.state = 8210; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,872,this._ctx); + switch(la_) { + case 1: + this.state = 8199; + this.audit_operation_clause(); + this.state = 8201; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===160) { + this.state = 8200; + this.auditing_by_clause(); + } + + break; + + case 2: + this.state = 8203; + this.audit_schema_object_clause(); + break; + + case 3: + this.state = 8204; + this.match(OracleSqlParser.NETWORK); + break; + + case 4: + this.state = 8205; + this.match(OracleSqlParser.DIRECT_PATH); + this.state = 8206; + this.match(OracleSqlParser.LOAD); + this.state = 8208; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===160) { + this.state = 8207; + this.auditing_by_clause(); + } + + break; + + } + this.state = 8217; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2297) { + this.state = 8212; + this.match(OracleSqlParser.WHENEVER); + this.state = 8214; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 8213; + this.match(OracleSqlParser.NOT); + } + + this.state = 8216; + this.match(OracleSqlParser.SUCCESSFUL); + } + + this.state = 8220; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===287) { + this.state = 8219; + this.container_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + rename_object() { + let localctx = new Rename_objectContext(this, this._ctx, this.state); + this.enterRule(localctx, 760, OracleSqlParser.RULE_rename_object); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8222; + this.match(OracleSqlParser.RENAME); + this.state = 8223; + this.object_name(); + this.state = 8224; + this.match(OracleSqlParser.TO); + this.state = 8225; + this.object_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + grant_statement() { + let localctx = new Grant_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 762, OracleSqlParser.RULE_grant_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8227; + this.match(OracleSqlParser.GRANT); + this.state = 8239; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 8229; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 8228; + this.match(OracleSqlParser.COMMA); + } + + this.state = 8237; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,878,this._ctx); + switch(la_) { + case 1: + this.state = 8231; + this.role_name(); + break; + + case 2: + this.state = 8232; + this.system_privilege(); + break; + + case 3: + this.state = 8233; + this.object_privilege(); + this.state = 8235; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 8234; + this.paren_column_list(); + } + + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8241; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,879, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 8245; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1257) { + this.state = 8243; + this.match(OracleSqlParser.ON); + this.state = 8244; + this.grant_object_name(); + } + + this.state = 8247; + this.match(OracleSqlParser.TO); + this.state = 8250; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,881,this._ctx); + switch(la_) { + case 1: + this.state = 8248; + this.grantee_name(); + break; + + case 2: + this.state = 8249; + this.match(OracleSqlParser.PUBLIC); + break; + + } + this.state = 8259; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8252; + this.match(OracleSqlParser.COMMA); + this.state = 8255; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,882,this._ctx); + switch(la_) { + case 1: + this.state = 8253; + this.grantee_name(); + break; + + case 2: + this.state = 8254; + this.match(OracleSqlParser.PUBLIC); + break; + + } + this.state = 8261; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8265; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,884,this._ctx); + if(la_===1) { + this.state = 8262; + this.match(OracleSqlParser.WITH); + this.state = 8263; + _la = this._input.LA(1); + if(!(_la===26 || _la===399)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8264; + this.match(OracleSqlParser.OPTION); + + } + this.state = 8270; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,885,this._ctx); + if(la_===1) { + this.state = 8267; + this.match(OracleSqlParser.WITH); + this.state = 8268; + this.match(OracleSqlParser.HIERARCHY); + this.state = 8269; + this.match(OracleSqlParser.OPTION); + + } + this.state = 8275; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 8272; + this.match(OracleSqlParser.WITH); + this.state = 8273; + this.match(OracleSqlParser.GRANT); + this.state = 8274; + this.match(OracleSqlParser.OPTION); + } + + this.state = 8278; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===287) { + this.state = 8277; + this.container_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + container_clause() { + let localctx = new Container_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 764, OracleSqlParser.RULE_container_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8280; + this.match(OracleSqlParser.CONTAINER); + this.state = 8281; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 8282; + _la = this._input.LA(1); + if(!(_la===38 || _la===334)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + revoke_statement() { + let localctx = new Revoke_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 766, OracleSqlParser.RULE_revoke_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8284; + this.match(OracleSqlParser.REVOKE); + this.state = 8293; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,890,this._ctx); + switch(la_) { + case 1: + this.state = 8287; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,888,this._ctx); + switch(la_) { + case 1: + this.state = 8285; + this.revoke_system_privilege(); + break; + + case 2: + this.state = 8286; + this.revoke_object_privileges(); + break; + + } + this.state = 8290; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===287) { + this.state = 8289; + this.container_clause(); + } + + break; + + case 2: + this.state = 8292; + this.revoke_roles_from_programs(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + revoke_system_privilege() { + let localctx = new Revoke_system_privilegeContext(this, this._ctx, this.state); + this.enterRule(localctx, 768, OracleSqlParser.RULE_revoke_system_privilege); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8299; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,891,this._ctx); + switch(la_) { + case 1: + this.state = 8295; + this.system_privilege(); + break; + + case 2: + this.state = 8296; + this.role_name(); + break; + + case 3: + this.state = 8297; + this.match(OracleSqlParser.ALL); + this.state = 8298; + this.match(OracleSqlParser.PRIVILEGES); + break; + + } + this.state = 8301; + this.match(OracleSqlParser.FROM); + this.state = 8302; + this.revokee_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + revokee_clause() { + let localctx = new Revokee_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 770, OracleSqlParser.RULE_revokee_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8306; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,892,this._ctx); + switch(la_) { + case 1: + this.state = 8304; + this.id_expression(); + break; + + case 2: + this.state = 8305; + this.match(OracleSqlParser.PUBLIC); + break; + + } + this.state = 8315; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8308; + this.match(OracleSqlParser.COMMA); + this.state = 8311; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,893,this._ctx); + switch(la_) { + case 1: + this.state = 8309; + this.id_expression(); + break; + + case 2: + this.state = 8310; + this.match(OracleSqlParser.PUBLIC); + break; + + } + this.state = 8317; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + revoke_object_privileges() { + let localctx = new Revoke_object_privilegesContext(this, this._ctx, this.state); + this.enterRule(localctx, 772, OracleSqlParser.RULE_revoke_object_privileges); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8323; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,896,this._ctx); + switch(la_) { + case 1: + this.state = 8318; + this.object_privilege(); + break; + + case 2: + this.state = 8319; + this.match(OracleSqlParser.ALL); + this.state = 8321; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1457) { + this.state = 8320; + this.match(OracleSqlParser.PRIVILEGES); + } + + break; + + } + this.state = 8335; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8325; + this.match(OracleSqlParser.COMMA); + this.state = 8331; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,898,this._ctx); + switch(la_) { + case 1: + this.state = 8326; + this.object_privilege(); + break; + + case 2: + this.state = 8327; + this.match(OracleSqlParser.ALL); + this.state = 8329; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1457) { + this.state = 8328; + this.match(OracleSqlParser.PRIVILEGES); + } + + break; + + } + this.state = 8337; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8338; + this.on_object_clause(); + this.state = 8339; + this.match(OracleSqlParser.FROM); + this.state = 8340; + this.revokee_clause(); + this.state = 8344; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 179: + this.state = 8341; + this.match(OracleSqlParser.CASCADE); + this.state = 8342; + this.match(OracleSqlParser.CONSTRAINTS); + break; + case 614: + this.state = 8343; + this.match(OracleSqlParser.FORCE); + break; + case -1: + case 287: + case 2452: + case 2467: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + on_object_clause() { + let localctx = new On_object_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 774, OracleSqlParser.RULE_on_object_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8346; + this.match(OracleSqlParser.ON); + this.state = 8391; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,906,this._ctx); + switch(la_) { + case 1: + this.state = 8350; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,901,this._ctx); + if(la_===1) { + this.state = 8347; + this.schema_name(); + this.state = 8348; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8352; + localctx.o = this.id_expression(); + break; + + case 2: + this.state = 8353; + this.match(OracleSqlParser.USER); + this.state = 8354; + this.id_expression(); + this.state = 8359; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8355; + this.match(OracleSqlParser.COMMA); + this.state = 8356; + this.id_expression(); + this.state = 8361; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 3: + this.state = 8362; + this.match(OracleSqlParser.DIRECTORY); + this.state = 8363; + this.directory_name(); + break; + + case 4: + this.state = 8364; + this.match(OracleSqlParser.EDITION); + this.state = 8365; + this.edition_name(); + break; + + case 5: + this.state = 8366; + this.match(OracleSqlParser.MINING); + this.state = 8367; + this.match(OracleSqlParser.MODEL); + this.state = 8371; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,903,this._ctx); + if(la_===1) { + this.state = 8368; + this.schema_name(); + this.state = 8369; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8373; + localctx.mmn = this.id_expression(); + break; + + case 6: + this.state = 8374; + this.match(OracleSqlParser.JAVA); + this.state = 8375; + _la = this._input.LA(1); + if(!(_la===1568 || _la===1711)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8379; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,904,this._ctx); + if(la_===1) { + this.state = 8376; + this.schema_name(); + this.state = 8377; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8381; + localctx.o2 = this.id_expression(); + break; + + case 7: + this.state = 8382; + this.match(OracleSqlParser.SQL); + this.state = 8383; + this.match(OracleSqlParser.TRANSLATION); + this.state = 8384; + this.match(OracleSqlParser.PROFILE); + this.state = 8388; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,905,this._ctx); + if(la_===1) { + this.state = 8385; + this.schema_name(); + this.state = 8386; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8390; + localctx.p = this.id_expression(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + revoke_roles_from_programs() { + let localctx = new Revoke_roles_from_programsContext(this, this._ctx, this.state); + this.enterRule(localctx, 776, OracleSqlParser.RULE_revoke_roles_from_programs); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8402; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 278: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 8393; + this.role_name(); + this.state = 8398; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8394; + this.match(OracleSqlParser.COMMA); + this.state = 8395; + this.role_name(); + this.state = 8400; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 38: + this.state = 8401; + this.match(OracleSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8404; + this.match(OracleSqlParser.FROM); + this.state = 8405; + this.program_unit(); + this.state = 8410; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8406; + this.match(OracleSqlParser.COMMA); + this.state = 8407; + this.program_unit(); + this.state = 8412; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + program_unit() { + let localctx = new Program_unitContext(this, this._ctx, this.state); + this.enterRule(localctx, 778, OracleSqlParser.RULE_program_unit); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8413; + _la = this._input.LA(1); + if(!(_la===630 || _la===1327 || _la===1459)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8417; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,910,this._ctx); + if(la_===1) { + this.state = 8414; + this.schema_name(); + this.state = 8415; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8419; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_dimension() { + let localctx = new Create_dimensionContext(this, this._ctx, this.state); + this.enterRule(localctx, 780, OracleSqlParser.RULE_create_dimension); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8421; + this.match(OracleSqlParser.CREATE); + this.state = 8422; + this.match(OracleSqlParser.DIMENSION); + this.state = 8423; + this.identifier(); + this.state = 8425; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8424; + this.level_clause(); + this.state = 8427; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===844); + this.state = 8432; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8432; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,912,this._ctx); + switch(la_) { + case 1: + this.state = 8429; + this.hierarchy_clause(); + break; + + case 2: + this.state = 8430; + this.attribute_clause(); + break; + + case 3: + this.state = 8431; + this.extended_attribute_clause(); + break; + + } + this.state = 8434; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===83 || _la===672); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_directory() { + let localctx = new Create_directoryContext(this, this._ctx, this.state); + this.enterRule(localctx, 782, OracleSqlParser.RULE_create_directory); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8436; + this.match(OracleSqlParser.CREATE); + this.state = 8439; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 8437; + this.match(OracleSqlParser.OR); + this.state = 8438; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 8441; + this.match(OracleSqlParser.DIRECTORY); + this.state = 8442; + this.directory_name(); + this.state = 8446; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1679) { + this.state = 8443; + this.match(OracleSqlParser.SHARING); + this.state = 8444; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 8445; + _la = this._input.LA(1); + if(!(_la===946 || _la===1131)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 8448; + this.match(OracleSqlParser.AS); + this.state = 8449; + this.directory_path(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + directory_name() { + let localctx = new Directory_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 784, OracleSqlParser.RULE_directory_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8451; + this.regular_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + directory_path() { + let localctx = new Directory_pathContext(this, this._ctx, this.state); + this.enterRule(localctx, 786, OracleSqlParser.RULE_directory_path); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8453; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_inmemory_join_group() { + let localctx = new Create_inmemory_join_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 788, OracleSqlParser.RULE_create_inmemory_join_group); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8455; + this.match(OracleSqlParser.CREATE); + this.state = 8456; + this.match(OracleSqlParser.INMEMORY); + this.state = 8457; + this.match(OracleSqlParser.JOIN); + this.state = 8458; + this.match(OracleSqlParser.GROUP); + this.state = 8462; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,916,this._ctx); + if(la_===1) { + this.state = 8459; + this.schema_name(); + this.state = 8460; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8464; + localctx.jg = this.id_expression(); + this.state = 8465; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8469; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,917,this._ctx); + if(la_===1) { + this.state = 8466; + this.schema_name(); + this.state = 8467; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8471; + localctx.t = this.id_expression(); + this.state = 8472; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8473; + localctx.c = this.id_expression(); + this.state = 8474; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 8486; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8475; + this.match(OracleSqlParser.COMMA); + this.state = 8479; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,918,this._ctx); + if(la_===1) { + this.state = 8476; + this.schema_name(); + this.state = 8477; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8481; + localctx.t = this.id_expression(); + this.state = 8482; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8483; + localctx.c = this.id_expression(); + this.state = 8484; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 8488; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2451); + this.state = 8490; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_hierarchy() { + let localctx = new Drop_hierarchyContext(this, this._ctx, this.state); + this.enterRule(localctx, 790, OracleSqlParser.RULE_drop_hierarchy); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8492; + this.match(OracleSqlParser.DROP); + this.state = 8493; + this.match(OracleSqlParser.HIERARCHY); + this.state = 8497; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,920,this._ctx); + if(la_===1) { + this.state = 8494; + this.schema_name(); + this.state = 8495; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8499; + localctx.hn = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_library() { + let localctx = new Alter_libraryContext(this, this._ctx, this.state); + this.enterRule(localctx, 792, OracleSqlParser.RULE_alter_library); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8501; + this.match(OracleSqlParser.ALTER); + this.state = 8502; + this.match(OracleSqlParser.LIBRARY); + this.state = 8503; + this.library_name(); + this.state = 8519; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,924,this._ctx); + switch(la_) { + case 1: + this.state = 8504; + this.match(OracleSqlParser.COMPILE); + this.state = 8506; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,921,this._ctx); + if(la_===1) { + this.state = 8505; + this.library_debug(); + + } + this.state = 8511; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,922,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 8508; + this.compiler_parameters_clause(); + } + this.state = 8513; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,922,this._ctx); + } + + this.state = 8516; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 8514; + this.match(OracleSqlParser.REUSE); + this.state = 8515; + this.match(OracleSqlParser.SETTINGS); + } + + break; + + case 2: + this.state = 8518; + this.library_editionable(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_java() { + let localctx = new Drop_javaContext(this, this._ctx, this.state); + this.enterRule(localctx, 794, OracleSqlParser.RULE_drop_java); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8521; + this.match(OracleSqlParser.DROP); + this.state = 8522; + this.match(OracleSqlParser.JAVA); + this.state = 8523; + _la = this._input.LA(1); + if(!(_la===206 || _la===1568 || _la===1711)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8527; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,925,this._ctx); + if(la_===1) { + this.state = 8524; + this.schema_name(); + this.state = 8525; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8529; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_library() { + let localctx = new Drop_libraryContext(this, this._ctx, this.state); + this.enterRule(localctx, 796, OracleSqlParser.RULE_drop_library); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8531; + this.match(OracleSqlParser.DROP); + this.state = 8532; + this.match(OracleSqlParser.LIBRARY); + this.state = 8533; + this.library_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_java() { + let localctx = new Create_javaContext(this, this._ctx, this.state); + this.enterRule(localctx, 798, OracleSqlParser.RULE_create_java); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8535; + this.match(OracleSqlParser.CREATE); + this.state = 8538; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 8536; + this.match(OracleSqlParser.OR); + this.state = 8537; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 8542; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===49) { + this.state = 8540; + this.match(OracleSqlParser.AND); + this.state = 8541; + _la = this._input.LA(1); + if(!(_la===249 || _la===1566)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 8545; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1102) { + this.state = 8544; + this.match(OracleSqlParser.NOFORCE); + } + + this.state = 8547; + this.match(OracleSqlParser.JAVA); + this.state = 8561; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1568: + case 1711: + this.state = 8548; + _la = this._input.LA(1); + if(!(_la===1568 || _la===1711)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8549; + this.match(OracleSqlParser.NAMED); + this.state = 8553; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,929,this._ctx); + if(la_===1) { + this.state = 8550; + this.schema_name(); + this.state = 8551; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8555; + localctx.pn = this.id_expression(); + break; + case 206: + this.state = 8556; + this.match(OracleSqlParser.CLASS); + this.state = 8559; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1623) { + this.state = 8557; + this.match(OracleSqlParser.SCHEMA); + this.state = 8558; + this.id_expression(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8566; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1679) { + this.state = 8563; + this.match(OracleSqlParser.SHARING); + this.state = 8564; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 8565; + _la = this._input.LA(1); + if(!(_la===946 || _la===1131)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 8569; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===88) { + this.state = 8568; + this.invoker_rights_clause(); + } + + this.state = 8588; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1567) { + this.state = 8571; + this.match(OracleSqlParser.RESOLVER); + this.state = 8572; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8583; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8573; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8574; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 8576; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 8575; + this.match(OracleSqlParser.COMMA); + } + + this.state = 8580; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 8578; + localctx.sn = this.id_expression(); + break; + case 2450: + this.state = 8579; + this.match(OracleSqlParser.MINUS_SIGN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8582; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 8585; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2445); + this.state = 8587; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 8605; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2244: + this.state = 8590; + this.match(OracleSqlParser.USING); + this.state = 8601; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,938,this._ctx); + switch(la_) { + case 1: + this.state = 8591; + this.match(OracleSqlParser.BFILE); + this.state = 8592; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8593; + localctx.d = this.id_expression(); + this.state = 8594; + this.match(OracleSqlParser.COMMA); + this.state = 8595; + this.filename(); + this.state = 8596; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.state = 8598; + _la = this._input.LA(1); + if(!(_la===119 || _la===142 || _la===215)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8599; + this.subquery(); + break; + + case 3: + this.state = 8600; + this.match(OracleSqlParser.CHAR_STRING); + break; + + } + break; + case 69: + this.state = 8603; + this.match(OracleSqlParser.AS); + this.state = 8604; + this.match(OracleSqlParser.CHAR_STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_library() { + let localctx = new Create_libraryContext(this, this._ctx, this.state); + this.enterRule(localctx, 800, OracleSqlParser.RULE_create_library); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8607; + this.match(OracleSqlParser.CREATE); + this.state = 8610; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 8608; + this.match(OracleSqlParser.OR); + this.state = 8609; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 8613; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===480 || _la===1130) { + this.state = 8612; + _la = this._input.LA(1); + if(!(_la===480 || _la===1130)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 8615; + this.match(OracleSqlParser.LIBRARY); + this.state = 8616; + this.plsql_library_source(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + plsql_library_source() { + let localctx = new Plsql_library_sourceContext(this, this._ctx, this.state); + this.enterRule(localctx, 802, OracleSqlParser.RULE_plsql_library_source); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8618; + this.library_name(); + this.state = 8619; + _la = this._input.LA(1); + if(!(_la===69 || _la===783)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8620; + this.quoted_string(); + this.state = 8623; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===736) { + this.state = 8621; + this.match(OracleSqlParser.IN); + this.state = 8622; + this.directory_name(); + } + + this.state = 8627; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===34) { + this.state = 8625; + this.match(OracleSqlParser.AGENT); + this.state = 8626; + this.quoted_string(); + } + + this.state = 8631; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===323) { + this.state = 8629; + this.match(OracleSqlParser.CREDENTIAL); + this.state = 8630; + this.credential_name(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + credential_name() { + let localctx = new Credential_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 804, OracleSqlParser.RULE_credential_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8636; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,945,this._ctx); + if(la_===1) { + this.state = 8633; + this.id_expression(); + this.state = 8634; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8638; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + library_editionable() { + let localctx = new Library_editionableContext(this, this._ctx, this.state); + this.enterRule(localctx, 806, OracleSqlParser.RULE_library_editionable); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8640; + if (!( this.isVersion12())) { + throw new antlr4.error.FailedPredicateException(this, "this.isVersion12()"); + } + this.state = 8641; + _la = this._input.LA(1); + if(!(_la===480 || _la===1130)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + library_debug() { + let localctx = new Library_debugContext(this, this._ctx, this.state); + this.enterRule(localctx, 808, OracleSqlParser.RULE_library_debug); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8643; + if (!( this.isVersion12())) { + throw new antlr4.error.FailedPredicateException(this, "this.isVersion12()"); + } + this.state = 8644; + this.match(OracleSqlParser.DEBUG); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + compiler_parameters_clause() { + let localctx = new Compiler_parameters_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 810, OracleSqlParser.RULE_compiler_parameters_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8646; + this.parameter_name(); + this.state = 8647; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 8648; + this.parameter_value(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + parameter_value() { + let localctx = new Parameter_valueContext(this, this._ctx, this.state); + this.enterRule(localctx, 812, OracleSqlParser.RULE_parameter_value); + try { + this.state = 8652; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 8650; + this.regular_id(); + break; + case 2441: + this.enterOuterAlt(localctx, 2); + this.state = 8651; + this.match(OracleSqlParser.CHAR_STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + library_name() { + let localctx = new Library_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 814, OracleSqlParser.RULE_library_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8657; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,947,this._ctx); + if(la_===1) { + this.state = 8654; + this.regular_id(); + this.state = 8655; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8659; + this.regular_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_dimension() { + let localctx = new Alter_dimensionContext(this, this._ctx, this.state); + this.enterRule(localctx, 816, OracleSqlParser.RULE_alter_dimension); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8661; + this.match(OracleSqlParser.ALTER); + this.state = 8662; + this.match(OracleSqlParser.DIMENSION); + this.state = 8663; + this.identifier(); + this.state = 8708; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.state = 8671; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8664; + this.match(OracleSqlParser.ADD); + this.state = 8669; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,948,this._ctx); + switch(la_) { + case 1: + this.state = 8665; + this.level_clause(); + break; + + case 2: + this.state = 8666; + this.hierarchy_clause(); + break; + + case 3: + this.state = 8667; + this.attribute_clause(); + break; + + case 4: + this.state = 8668; + this.extended_attribute_clause(); + break; + + } + this.state = 8673; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===21); + break; + case 467: + this.state = 8703; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8675; + this.match(OracleSqlParser.DROP); + this.state = 8701; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 844: + this.state = 8676; + this.match(OracleSqlParser.LEVEL); + this.state = 8677; + this.identifier(); + this.state = 8679; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179 || _la===1576) { + this.state = 8678; + _la = this._input.LA(1); + if(!(_la===179 || _la===1576)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + case 672: + this.state = 8681; + this.match(OracleSqlParser.HIERARCHY); + this.state = 8682; + this.identifier(); + break; + case 83: + this.state = 8683; + this.match(OracleSqlParser.ATTRIBUTE); + this.state = 8684; + this.identifier(); + this.state = 8699; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===844) { + this.state = 8685; + this.match(OracleSqlParser.LEVEL); + this.state = 8686; + this.identifier(); + this.state = 8697; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===237) { + this.state = 8687; + this.match(OracleSqlParser.COLUMN); + this.state = 8688; + this.column_name(); + this.state = 8694; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8689; + this.match(OracleSqlParser.COMMA); + this.state = 8690; + this.match(OracleSqlParser.COLUMN); + this.state = 8691; + this.column_name(); + this.state = 8696; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8705; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===467); + break; + case 249: + this.state = 8707; + this.match(OracleSqlParser.COMPILE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + level_clause() { + let localctx = new Level_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 818, OracleSqlParser.RULE_level_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8710; + this.match(OracleSqlParser.LEVEL); + this.state = 8711; + this.identifier(); + this.state = 8712; + this.match(OracleSqlParser.IS); + this.state = 8733; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 8713; + this.table_name(); + this.state = 8714; + this.match(OracleSqlParser.PERIOD); + this.state = 8715; + this.column_name(); + break; + case 2445: + this.state = 8717; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8718; + this.table_name(); + this.state = 8719; + this.match(OracleSqlParser.PERIOD); + this.state = 8720; + this.column_name(); + this.state = 8728; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8721; + this.match(OracleSqlParser.COMMA); + this.state = 8722; + this.table_name(); + this.state = 8723; + this.match(OracleSqlParser.PERIOD); + this.state = 8724; + this.column_name(); + this.state = 8730; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8731; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8738; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1700) { + this.state = 8735; + this.match(OracleSqlParser.SKIP_); + this.state = 8736; + this.match(OracleSqlParser.WHEN); + this.state = 8737; + this.match(OracleSqlParser.NULL_); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hierarchy_clause() { + let localctx = new Hierarchy_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 820, OracleSqlParser.RULE_hierarchy_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8740; + this.match(OracleSqlParser.HIERARCHY); + this.state = 8741; + this.identifier(); + this.state = 8742; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8743; + this.identifier(); + this.state = 8747; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8744; + this.match(OracleSqlParser.CHILD); + this.state = 8745; + this.match(OracleSqlParser.OF); + this.state = 8746; + this.identifier(); + this.state = 8749; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===202); + this.state = 8752; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===792) { + this.state = 8751; + this.dimension_join_clause(); + } + + this.state = 8754; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dimension_join_clause() { + let localctx = new Dimension_join_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 822, OracleSqlParser.RULE_dimension_join_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8762; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8756; + this.match(OracleSqlParser.JOIN); + this.state = 8757; + this.match(OracleSqlParser.KEY); + this.state = 8758; + this.column_one_or_more_sub_clause(); + this.state = 8759; + this.match(OracleSqlParser.REFERENCES); + this.state = 8760; + this.identifier(); + this.state = 8764; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===792); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + attribute_clause() { + let localctx = new Attribute_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 824, OracleSqlParser.RULE_attribute_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8771; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 8766; + this.match(OracleSqlParser.ATTRIBUTE); + this.state = 8767; + this.identifier(); + this.state = 8768; + this.match(OracleSqlParser.DETERMINES); + this.state = 8769; + this.column_one_or_more_sub_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8773; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,963, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + extended_attribute_clause() { + let localctx = new Extended_attribute_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 826, OracleSqlParser.RULE_extended_attribute_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8775; + this.match(OracleSqlParser.ATTRIBUTE); + this.state = 8776; + this.identifier(); + this.state = 8782; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8777; + this.match(OracleSqlParser.LEVEL); + this.state = 8778; + this.identifier(); + this.state = 8779; + this.match(OracleSqlParser.DETERMINES); + this.state = 8780; + this.column_one_or_more_sub_clause(); + this.state = 8784; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===844); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + column_one_or_more_sub_clause() { + let localctx = new Column_one_or_more_sub_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 828, OracleSqlParser.RULE_column_one_or_more_sub_clause); + var _la = 0; + try { + this.state = 8798; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 8786; + this.column_name(); + break; + case 2445: + this.enterOuterAlt(localctx, 2); + this.state = 8787; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8788; + this.column_name(); + this.state = 8793; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8789; + this.match(OracleSqlParser.COMMA); + this.state = 8790; + this.column_name(); + this.state = 8795; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8796; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_view() { + let localctx = new Alter_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 830, OracleSqlParser.RULE_alter_view); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8800; + this.match(OracleSqlParser.ALTER); + this.state = 8801; + this.match(OracleSqlParser.VIEW); + this.state = 8802; + this.tableview_name(); + this.state = 8835; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,970,this._ctx); + switch(la_) { + case 1: + this.state = 8803; + this.match(OracleSqlParser.ADD); + this.state = 8804; + this.out_of_line_constraint(); + break; + + case 2: + this.state = 8805; + this.match(OracleSqlParser.MODIFY); + this.state = 8806; + this.match(OracleSqlParser.CONSTRAINT); + this.state = 8807; + this.constraint_name(); + this.state = 8808; + _la = this._input.LA(1); + if(!(_la===1168 || _la===1552)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 3: + this.state = 8810; + this.match(OracleSqlParser.DROP); + this.state = 8827; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 284: + this.state = 8811; + this.match(OracleSqlParser.CONSTRAINT); + this.state = 8812; + this.constraint_name(); + break; + case 1449: + this.state = 8813; + this.match(OracleSqlParser.PRIMARY); + this.state = 8814; + this.match(OracleSqlParser.KEY); + break; + case 2181: + this.state = 8815; + this.match(OracleSqlParser.UNIQUE); + this.state = 8816; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8817; + this.column_name(); + this.state = 8822; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8818; + this.match(OracleSqlParser.COMMA); + this.state = 8819; + this.column_name(); + this.state = 8824; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8825; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 4: + this.state = 8829; + this.match(OracleSqlParser.COMPILE); + break; + + case 5: + this.state = 8830; + this.match(OracleSqlParser.READ); + this.state = 8831; + _la = this._input.LA(1); + if(!(_la===1256 || _la===2311)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 6: + this.state = 8833; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,969,this._ctx); + if(la_===1) { + this.state = 8832; + this.alter_view_editionable(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_view_editionable() { + let localctx = new Alter_view_editionableContext(this, this._ctx, this.state); + this.enterRule(localctx, 832, OracleSqlParser.RULE_alter_view_editionable); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8837; + if (!( this.isVersion12())) { + throw new antlr4.error.FailedPredicateException(this, "this.isVersion12()"); + } + this.state = 8838; + _la = this._input.LA(1); + if(!(_la===480 || _la===1130)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_view() { + let localctx = new Create_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 834, OracleSqlParser.RULE_create_view); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8840; + this.match(OracleSqlParser.CREATE); + this.state = 8843; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 8841; + this.match(OracleSqlParser.OR); + this.state = 8842; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 8849; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614 || _la===1135) { + this.state = 8846; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135) { + this.state = 8845; + this.match(OracleSqlParser.NO); + } + + this.state = 8848; + this.match(OracleSqlParser.FORCE); + } + + this.state = 8852; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===480 || _la===482 || _la===1130) { + this.state = 8851; + this.editioning_clause(); + } + + this.state = 8854; + this.match(OracleSqlParser.VIEW); + this.state = 8858; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,975,this._ctx); + if(la_===1) { + this.state = 8855; + this.schema_name(); + this.state = 8856; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8860; + localctx.v = this.id_expression(); + this.state = 8864; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 8861; + this.match(OracleSqlParser.IF); + this.state = 8862; + this.match(OracleSqlParser.NOT); + this.state = 8863; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 8876; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1679) { + this.state = 8866; + this.match(OracleSqlParser.SHARING); + this.state = 8867; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 8874; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 946: + this.state = 8868; + this.match(OracleSqlParser.METADATA); + break; + case 349: + case 2374: + this.state = 8870; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2374) { + this.state = 8869; + this.match(OracleSqlParser.EXTENDED); + } + + this.state = 8872; + this.match(OracleSqlParser.DATA); + break; + case 1131: + this.state = 8873; + this.match(OracleSqlParser.NONE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 8879; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1244 || _la===2445) { + this.state = 8878; + this.view_options(); + } + + this.state = 8884; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 8881; + this.match(OracleSqlParser.DEFAULT); + this.state = 8882; + this.match(OracleSqlParser.COLLATION); + this.state = 8883; + localctx.cn = this.id_expression(); + } + + this.state = 8888; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===117) { + this.state = 8886; + this.match(OracleSqlParser.BEQUEATH); + this.state = 8887; + _la = this._input.LA(1); + if(!(_la===339 || _la===396)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 8890; + this.match(OracleSqlParser.AS); + this.state = 8891; + this.select_only_statement(); + this.state = 8893; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 8892; + this.subquery_restriction_clause(); + } + + this.state = 8896; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===289 || _la===291) { + this.state = 8895; + _la = this._input.LA(1); + if(!(_la===289 || _la===291)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + editioning_clause() { + let localctx = new Editioning_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 836, OracleSqlParser.RULE_editioning_clause); + var _la = 0; + try { + this.state = 8904; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 482: + this.enterOuterAlt(localctx, 1); + this.state = 8898; + this.match(OracleSqlParser.EDITIONING); + break; + case 480: + this.enterOuterAlt(localctx, 2); + this.state = 8899; + this.match(OracleSqlParser.EDITIONABLE); + this.state = 8901; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===482) { + this.state = 8900; + this.match(OracleSqlParser.EDITIONING); + } + + break; + case 1130: + this.enterOuterAlt(localctx, 3); + this.state = 8903; + this.match(OracleSqlParser.NONEDITIONABLE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + view_options() { + let localctx = new View_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 838, OracleSqlParser.RULE_view_options); + try { + this.state = 8909; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,987,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8906; + this.view_alias_constraint(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8907; + this.object_view_clause(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8908; + this.xmltype_view_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + view_alias_constraint() { + let localctx = new View_alias_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 840, OracleSqlParser.RULE_view_alias_constraint); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8911; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8925; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8913; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 8912; + this.match(OracleSqlParser.COMMA); + } + + this.state = 8923; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,990,this._ctx); + switch(la_) { + case 1: + this.state = 8915; + this.table_alias(); + this.state = 8919; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,989,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 8916; + this.inline_constraint(); + } + this.state = 8921; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,989,this._ctx); + } + + break; + + case 2: + this.state = 8922; + this.out_of_line_constraint(); + break; + + } + this.state = 8927; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967289) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 4093640703) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 3372220415) !== 0) || ((((_la - 2451)) & ~0x1f) === 0 && ((1 << (_la - 2451)) & 136314881) !== 0)); + this.state = 8929; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_view_clause() { + let localctx = new Object_view_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 842, OracleSqlParser.RULE_object_view_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8931; + this.match(OracleSqlParser.OF); + this.state = 8935; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,992,this._ctx); + if(la_===1) { + this.state = 8932; + this.schema_name(); + this.state = 8933; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8937; + localctx.tn = this.id_expression(); + this.state = 8961; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2306: + this.state = 8938; + this.match(OracleSqlParser.WITH); + this.state = 8939; + this.match(OracleSqlParser.OBJECT); + this.state = 8940; + _la = this._input.LA(1); + if(!(_la===684 || _la===687)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8952; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 387: + this.state = 8941; + this.match(OracleSqlParser.DEFAULT); + break; + case 2445: + this.state = 8942; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8943; + this.match(OracleSqlParser.REGULAR_ID); + this.state = 8948; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 8944; + this.match(OracleSqlParser.COMMA); + this.state = 8945; + this.match(OracleSqlParser.REGULAR_ID); + this.state = 8950; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8951; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 2175: + this.state = 8954; + this.match(OracleSqlParser.UNDER); + this.state = 8958; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,995,this._ctx); + if(la_===1) { + this.state = 8955; + this.schema_name(); + this.state = 8956; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 8960; + localctx.sv = this.id_expression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8980; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2445) { + this.state = 8963; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 8972; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8965; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 8964; + this.match(OracleSqlParser.COMMA); + } + + this.state = 8970; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 200: + case 284: + case 285: + case 616: + case 1449: + case 2181: + this.state = 8967; + this.out_of_line_constraint(); + break; + case 2478: + this.state = 8968; + this.match(OracleSqlParser.REGULAR_ID); + this.state = 8969; + this.inline_constraint(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8974; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===200 || _la===284 || _la===285 || _la===616 || _la===1449 || _la===2181 || _la===2451 || _la===2478); + this.state = 8976; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 8982; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + inline_constraint() { + let localctx = new Inline_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 844, OracleSqlParser.RULE_inline_constraint); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 8985; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===284) { + this.state = 8983; + this.match(OracleSqlParser.CONSTRAINT); + this.state = 8984; + this.constraint_name(); + } + + this.state = 8996; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1202: + case 1226: + this.state = 8988; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 8987; + this.match(OracleSqlParser.NOT); + } + + this.state = 8990; + this.match(OracleSqlParser.NULL_); + break; + case 2181: + this.state = 8991; + this.match(OracleSqlParser.UNIQUE); + break; + case 1449: + this.state = 8992; + this.match(OracleSqlParser.PRIMARY); + this.state = 8993; + this.match(OracleSqlParser.KEY); + break; + case 1526: + this.state = 8994; + this.references_clause(); + break; + case 200: + this.state = 8995; + this.check_constraint(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8999; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1004,this._ctx); + if(la_===1) { + this.state = 8998; + this.constraint_state(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + inline_ref_constraint() { + let localctx = new Inline_ref_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 846, OracleSqlParser.RULE_inline_ref_constraint); + var _la = 0; + try { + this.state = 9014; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1626: + this.enterOuterAlt(localctx, 1); + this.state = 9001; + this.match(OracleSqlParser.SCOPE); + this.state = 9002; + this.match(OracleSqlParser.IS); + this.state = 9003; + this.tableview_name(); + break; + case 2306: + this.enterOuterAlt(localctx, 2); + this.state = 9004; + this.match(OracleSqlParser.WITH); + this.state = 9005; + this.match(OracleSqlParser.ROWID); + break; + case 284: + case 1526: + this.enterOuterAlt(localctx, 3); + this.state = 9008; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===284) { + this.state = 9006; + this.match(OracleSqlParser.CONSTRAINT); + this.state = 9007; + this.constraint_name(); + } + + this.state = 9010; + this.references_clause(); + this.state = 9012; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1006,this._ctx); + if(la_===1) { + this.state = 9011; + this.constraint_state(); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + out_of_line_ref_constraint() { + let localctx = new Out_of_line_ref_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 848, OracleSqlParser.RULE_out_of_line_ref_constraint); + var _la = 0; + try { + this.state = 9051; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1626: + this.enterOuterAlt(localctx, 1); + this.state = 9016; + this.match(OracleSqlParser.SCOPE); + this.state = 9017; + this.match(OracleSqlParser.FOR); + this.state = 9018; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9019; + localctx.ref_col_or_attr = this.regular_id(); + this.state = 9020; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 9021; + this.match(OracleSqlParser.IS); + this.state = 9022; + this.tableview_name(); + break; + case 1528: + this.enterOuterAlt(localctx, 2); + this.state = 9024; + this.match(OracleSqlParser.REF); + this.state = 9025; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9026; + localctx.ref_col_or_attr = this.regular_id(); + this.state = 9027; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 9028; + this.match(OracleSqlParser.WITH); + this.state = 9029; + this.match(OracleSqlParser.ROWID); + break; + case 284: + case 616: + this.enterOuterAlt(localctx, 3); + this.state = 9033; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===284) { + this.state = 9031; + this.match(OracleSqlParser.CONSTRAINT); + this.state = 9032; + this.constraint_name(); + } + + this.state = 9035; + this.match(OracleSqlParser.FOREIGN); + this.state = 9036; + this.match(OracleSqlParser.KEY); + this.state = 9037; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9042; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 9039; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 9038; + this.match(OracleSqlParser.COMMA); + } + + this.state = 9041; + localctx.ref_col_or_attr = this.regular_id(); + this.state = 9044; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 142606335) !== 0) || _la===2451 || _la===2478); + this.state = 9046; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 9047; + this.references_clause(); + this.state = 9049; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1011,this._ctx); + if(la_===1) { + this.state = 9048; + this.constraint_state(); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + out_of_line_constraint() { + let localctx = new Out_of_line_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 850, OracleSqlParser.RULE_out_of_line_constraint); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9055; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===284 || _la===285) { + this.state = 9053; + _la = this._input.LA(1); + if(!(_la===284 || _la===285)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9054; + this.constraint_name(); + } + + this.state = 9088; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2181: + this.state = 9057; + this.match(OracleSqlParser.UNIQUE); + this.state = 9058; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9059; + this.column_name(); + this.state = 9064; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9060; + this.match(OracleSqlParser.COMMA); + this.state = 9061; + this.column_name(); + this.state = 9066; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9067; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1449: + this.state = 9069; + this.match(OracleSqlParser.PRIMARY); + this.state = 9070; + this.match(OracleSqlParser.KEY); + this.state = 9071; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9072; + this.column_name(); + this.state = 9077; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9073; + this.match(OracleSqlParser.COMMA); + this.state = 9074; + this.column_name(); + this.state = 9079; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9080; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 616: + this.state = 9082; + this.foreign_key_clause(); + break; + case 200: + this.state = 9083; + this.match(OracleSqlParser.CHECK); + this.state = 9084; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9085; + this.condition(); + this.state = 9086; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9091; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1017,this._ctx); + if(la_===1) { + this.state = 9090; + this.constraint_state(); + + } + this.state = 9094; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1018,this._ctx); + if(la_===1) { + this.state = 9093; + this.parallel_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + constraint_state() { + let localctx = new Constraint_stateContext(this, this._ctx, this.state); + this.enterRule(localctx, 852, OracleSqlParser.RULE_constraint_state); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9106; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 9106; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 392: + case 1202: + this.state = 9097; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 9096; + this.match(OracleSqlParser.NOT); + } + + this.state = 9099; + this.match(OracleSqlParser.DEFERRABLE); + break; + case 740: + this.state = 9100; + this.match(OracleSqlParser.INITIALLY); + this.state = 9101; + _la = this._input.LA(1); + if(!(_la===393 || _la===696)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 1168: + case 1552: + this.state = 9102; + _la = this._input.LA(1); + if(!(_la===1168 || _la===1552)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 427: + case 497: + this.state = 9103; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 1213: + case 2251: + this.state = 9104; + _la = this._input.LA(1); + if(!(_la===1213 || _la===2251)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 2244: + this.state = 9105; + this.using_index_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9108; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1021, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmltype_view_clause() { + let localctx = new Xmltype_view_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 854, OracleSqlParser.RULE_xmltype_view_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9110; + this.match(OracleSqlParser.OF); + this.state = 9111; + this.match(OracleSqlParser.XMLTYPE); + this.state = 9113; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===484 || _la===2343) { + this.state = 9112; + this.xml_schema_spec(); + } + + this.state = 9115; + this.match(OracleSqlParser.WITH); + this.state = 9116; + this.match(OracleSqlParser.OBJECT); + this.state = 9117; + _la = this._input.LA(1); + if(!(_la===684 || _la===687)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9130; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 387: + this.state = 9118; + this.match(OracleSqlParser.DEFAULT); + break; + case 2445: + this.state = 9119; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9120; + this.expression(); + this.state = 9125; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9121; + this.match(OracleSqlParser.COMMA); + this.state = 9122; + this.expression(); + this.state = 9127; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9128; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xml_schema_spec() { + let localctx = new Xml_schema_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 856, OracleSqlParser.RULE_xml_schema_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9134; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2343) { + this.state = 9132; + this.match(OracleSqlParser.XMLSCHEMA); + this.state = 9133; + this.xml_schema_url(); + } + + this.state = 9136; + this.match(OracleSqlParser.ELEMENT); + this.state = 9142; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1026,this._ctx); + switch(la_) { + case 1: + this.state = 9137; + this.element(); + break; + + case 2: + this.state = 9138; + this.xml_schema_url(); + this.state = 9139; + this.match(OracleSqlParser.HASH_OP); + this.state = 9140; + this.element(); + break; + + } + this.state = 9149; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1761) { + this.state = 9144; + this.match(OracleSqlParser.STORE); + this.state = 9145; + this.match(OracleSqlParser.ALL); + this.state = 9146; + this.match(OracleSqlParser.VARRAYS); + this.state = 9147; + this.match(OracleSqlParser.AS); + this.state = 9148; + _la = this._input.LA(1); + if(!(_la===869 || _la===2079)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 9154; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1028,this._ctx); + if(la_===1) { + this.state = 9151; + this.allow_or_disallow(); + this.state = 9152; + this.match(OracleSqlParser.NONSCHEMA); + + } + this.state = 9159; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===40 || _la===433) { + this.state = 9156; + this.allow_or_disallow(); + this.state = 9157; + this.match(OracleSqlParser.ANYSCHEMA); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xml_schema_url() { + let localctx = new Xml_schema_urlContext(this, this._ctx, this.state); + this.enterRule(localctx, 858, OracleSqlParser.RULE_xml_schema_url); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9161; + this.match(OracleSqlParser.DELIMITED_ID); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + element() { + let localctx = new ElementContext(this, this._ctx, this.state); + this.enterRule(localctx, 860, OracleSqlParser.RULE_element); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9163; + this.match(OracleSqlParser.DELIMITED_ID); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_tablespace() { + let localctx = new Alter_tablespaceContext(this, this._ctx, this.state); + this.enterRule(localctx, 862, OracleSqlParser.RULE_alter_tablespace); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9165; + this.match(OracleSqlParser.ALTER); + this.state = 9166; + this.match(OracleSqlParser.TABLESPACE); + this.state = 9167; + this.tablespace(); + this.state = 9200; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1033,this._ctx); + switch(la_) { + case 1: + this.state = 9168; + this.match(OracleSqlParser.DEFAULT); + this.state = 9170; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===237 || _la===258 || _la===1072 || _la===1604) { + this.state = 9169; + this.table_compression(); + } + + this.state = 9173; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1760) { + this.state = 9172; + this.storage_clause(); + } + + break; + + case 2: + this.state = 9175; + this.match(OracleSqlParser.MINIMUM); + this.state = 9176; + this.match(OracleSqlParser.EXTENT); + this.state = 9177; + this.size_clause(); + break; + + case 3: + this.state = 9178; + this.match(OracleSqlParser.RESIZE); + this.state = 9179; + this.size_clause(); + break; + + case 4: + this.state = 9180; + this.match(OracleSqlParser.COALESCE); + break; + + case 5: + this.state = 9181; + this.match(OracleSqlParser.SHRINK); + this.state = 9182; + this.match(OracleSqlParser.SPACE_KEYWORD); + this.state = 9185; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===812) { + this.state = 9183; + this.match(OracleSqlParser.KEEP); + this.state = 9184; + this.size_clause(); + } + + break; + + case 6: + this.state = 9187; + this.match(OracleSqlParser.RENAME); + this.state = 9188; + this.match(OracleSqlParser.TO); + this.state = 9189; + this.new_tablespace_name(); + break; + + case 7: + this.state = 9190; + this.begin_or_end(); + this.state = 9191; + this.match(OracleSqlParser.BACKUP); + break; + + case 8: + this.state = 9193; + this.datafile_tempfile_clauses(); + break; + + case 9: + this.state = 9194; + this.tablespace_logging_clauses(); + break; + + case 10: + this.state = 9195; + this.tablespace_group_clause(); + break; + + case 11: + this.state = 9196; + this.tablespace_state_clauses(); + break; + + case 12: + this.state = 9197; + this.autoextend_clause(); + break; + + case 13: + this.state = 9198; + this.flashback_mode_clause(); + break; + + case 14: + this.state = 9199; + this.tablespace_retention_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + datafile_tempfile_clauses() { + let localctx = new Datafile_tempfile_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 864, OracleSqlParser.RULE_datafile_tempfile_clauses); + var _la = 0; + try { + this.state = 9248; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.enterOuterAlt(localctx, 1); + this.state = 9202; + this.match(OracleSqlParser.ADD); + this.state = 9205; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 350: + this.state = 9203; + this.datafile_specification(); + break; + case 2087: + this.state = 9204; + this.tempfile_specification(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 467: + this.enterOuterAlt(localctx, 2); + this.state = 9207; + this.match(OracleSqlParser.DROP); + this.state = 9208; + _la = this._input.LA(1); + if(!(_la===350 || _la===2087)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9211; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 9209; + this.filename(); + break; + case 2439: + this.state = 9210; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9215; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===812) { + this.state = 9213; + this.match(OracleSqlParser.KEEP); + this.state = 9214; + this.size_clause(); + } + + break; + case 1682: + this.enterOuterAlt(localctx, 3); + this.state = 9217; + this.match(OracleSqlParser.SHRINK); + this.state = 9218; + this.match(OracleSqlParser.TEMPFILE); + this.state = 9221; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 9219; + this.filename(); + break; + case 2439: + this.state = 9220; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9225; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===812) { + this.state = 9223; + this.match(OracleSqlParser.KEEP); + this.state = 9224; + this.size_clause(); + } + + break; + case 1557: + this.enterOuterAlt(localctx, 4); + this.state = 9227; + this.match(OracleSqlParser.RENAME); + this.state = 9228; + this.match(OracleSqlParser.DATAFILE); + this.state = 9229; + this.filename(); + this.state = 9234; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9230; + this.match(OracleSqlParser.COMMA); + this.state = 9231; + this.filename(); + this.state = 9236; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9237; + this.match(OracleSqlParser.TO); + this.state = 9238; + this.filename(); + this.state = 9243; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9239; + this.match(OracleSqlParser.COMMA); + this.state = 9240; + this.filename(); + this.state = 9245; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 350: + case 2087: + this.enterOuterAlt(localctx, 5); + this.state = 9246; + _la = this._input.LA(1); + if(!(_la===350 || _la===2087)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + this.state = 9247; + this.online_or_offline(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tablespace_logging_clauses() { + let localctx = new Tablespace_logging_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 866, OracleSqlParser.RULE_tablespace_logging_clauses); + var _la = 0; + try { + this.state = 9256; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 591: + case 882: + case 1117: + this.enterOuterAlt(localctx, 1); + this.state = 9250; + this.logging_clause(); + break; + case 614: + case 1135: + this.enterOuterAlt(localctx, 2); + this.state = 9252; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135) { + this.state = 9251; + this.match(OracleSqlParser.NO); + } + + this.state = 9254; + this.match(OracleSqlParser.FORCE); + this.state = 9255; + this.match(OracleSqlParser.LOGGING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tablespace_group_clause() { + let localctx = new Tablespace_group_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 868, OracleSqlParser.RULE_tablespace_group_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9258; + this.match(OracleSqlParser.TABLESPACE); + this.state = 9259; + this.match(OracleSqlParser.GROUP); + this.state = 9262; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2478: + this.state = 9260; + this.tablespace_group_name(); + break; + case 2441: + this.state = 9261; + this.match(OracleSqlParser.CHAR_STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tablespace_group_name() { + let localctx = new Tablespace_group_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 870, OracleSqlParser.RULE_tablespace_group_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9264; + this.regular_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tablespace_state_clauses() { + let localctx = new Tablespace_state_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 872, OracleSqlParser.RULE_tablespace_state_clauses); + var _la = 0; + try { + this.state = 9275; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1254: + this.enterOuterAlt(localctx, 1); + this.state = 9266; + this.match(OracleSqlParser.ONLINE); + break; + case 1241: + this.enterOuterAlt(localctx, 2); + this.state = 9267; + this.match(OracleSqlParser.OFFLINE); + this.state = 9269; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===696 || _la===1176 || _la===2090) { + this.state = 9268; + _la = this._input.LA(1); + if(!(_la===696 || _la===1176 || _la===2090)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + case 1503: + this.enterOuterAlt(localctx, 3); + this.state = 9271; + this.match(OracleSqlParser.READ); + this.state = 9272; + _la = this._input.LA(1); + if(!(_la===1256 || _la===2311)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 1385: + this.enterOuterAlt(localctx, 4); + this.state = 9273; + this.match(OracleSqlParser.PERMANENT); + break; + case 2090: + this.enterOuterAlt(localctx, 5); + this.state = 9274; + this.match(OracleSqlParser.TEMPORARY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + flashback_mode_clause() { + let localctx = new Flashback_mode_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 874, OracleSqlParser.RULE_flashback_mode_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9277; + this.match(OracleSqlParser.FLASHBACK); + this.state = 9278; + _la = this._input.LA(1); + if(!(_la===1242 || _la===1257)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + new_tablespace_name() { + let localctx = new New_tablespace_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 876, OracleSqlParser.RULE_new_tablespace_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9280; + this.tablespace(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_tablespace() { + let localctx = new Create_tablespaceContext(this, this._ctx, this.state); + this.enterRule(localctx, 878, OracleSqlParser.RULE_create_tablespace); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9282; + this.match(OracleSqlParser.CREATE); + this.state = 9284; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===122 || _la===1703) { + this.state = 9283; + _la = this._input.LA(1); + if(!(_la===122 || _la===1703)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 9289; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2078: + this.state = 9286; + this.permanent_tablespace_clause(); + break; + case 2090: + this.state = 9287; + this.temporary_tablespace_clause(); + break; + case 2176: + this.state = 9288; + this.undo_tablespace_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + permanent_tablespace_clause() { + let localctx = new Permanent_tablespace_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 880, OracleSqlParser.RULE_permanent_tablespace_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9291; + this.match(OracleSqlParser.TABLESPACE); + this.state = 9292; + this.id_expression(); + this.state = 9296; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 9293; + this.match(OracleSqlParser.IF); + this.state = 9294; + this.match(OracleSqlParser.NOT); + this.state = 9295; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 9299; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===350) { + this.state = 9298; + this.datafile_specification(); + } + + this.state = 9318; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===146 || _la===387 || _la===504 || _la===556 || ((((_la - 591)) & ~0x1f) === 0 && ((1 << (_la - 591)) & 8392705) !== 0) || _la===882 || _la===952 || _la===1117 || _la===1241 || _la===1254 || _la===1643) { + this.state = 9316; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 952: + this.state = 9301; + this.match(OracleSqlParser.MINIMUM); + this.state = 9302; + this.match(OracleSqlParser.EXTENT); + this.state = 9303; + this.size_clause(); + break; + case 146: + this.state = 9304; + this.match(OracleSqlParser.BLOCKSIZE); + this.state = 9305; + this.size_clause(); + break; + case 591: + case 882: + case 1117: + this.state = 9306; + this.logging_clause(); + break; + case 614: + this.state = 9307; + this.match(OracleSqlParser.FORCE); + this.state = 9308; + this.match(OracleSqlParser.LOGGING); + break; + case 1241: + case 1254: + this.state = 9309; + _la = this._input.LA(1); + if(!(_la===1241 || _la===1254)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 504: + this.state = 9310; + this.match(OracleSqlParser.ENCRYPTION); + this.state = 9311; + this.tablespace_encryption_spec(); + break; + case 387: + this.state = 9312; + this.match(OracleSqlParser.DEFAULT); + break; + case 556: + this.state = 9313; + this.extent_management_clause(); + break; + case 1643: + this.state = 9314; + this.segment_management_clause(); + break; + case 603: + this.state = 9315; + this.flashback_mode_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9320; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tablespace_encryption_spec() { + let localctx = new Tablespace_encryption_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 882, OracleSqlParser.RULE_tablespace_encryption_spec); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9321; + this.match(OracleSqlParser.USING); + this.state = 9322; + localctx.encrypt_algorithm = this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + logging_clause() { + let localctx = new Logging_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 884, OracleSqlParser.RULE_logging_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9324; + _la = this._input.LA(1); + if(!(_la===591 || _la===882 || _la===1117)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + extent_management_clause() { + let localctx = new Extent_management_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 886, OracleSqlParser.RULE_extent_management_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9326; + this.match(OracleSqlParser.EXTENT); + this.state = 9327; + this.match(OracleSqlParser.MANAGEMENT); + this.state = 9328; + this.match(OracleSqlParser.LOCAL); + this.state = 9335; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 90: + this.state = 9329; + this.match(OracleSqlParser.AUTOALLOCATE); + break; + case 2178: + this.state = 9330; + this.match(OracleSqlParser.UNIFORM); + this.state = 9333; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1697) { + this.state = 9331; + this.match(OracleSqlParser.SIZE); + this.state = 9332; + this.size_clause(); + } + + break; + case -1: + case 66: + case 122: + case 146: + case 193: + case 296: + case 350: + case 387: + case 427: + case 497: + case 504: + case 556: + case 591: + case 603: + case 614: + case 880: + case 882: + case 920: + case 923: + case 924: + case 925: + case 926: + case 952: + case 999: + case 1056: + case 1117: + case 1241: + case 1254: + case 1556: + case 1581: + case 1643: + case 1669: + case 1703: + case 1788: + case 1798: + case 2176: + case 2228: + case 2235: + case 2446: + case 2452: + case 2467: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + segment_management_clause() { + let localctx = new Segment_management_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 888, OracleSqlParser.RULE_segment_management_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9337; + this.match(OracleSqlParser.SEGMENT); + this.state = 9338; + this.match(OracleSqlParser.SPACE_KEYWORD); + this.state = 9339; + this.match(OracleSqlParser.MANAGEMENT); + this.state = 9340; + _la = this._input.LA(1); + if(!(_la===91 || _la===907)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + temporary_tablespace_clause() { + let localctx = new Temporary_tablespace_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 890, OracleSqlParser.RULE_temporary_tablespace_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9342; + this.match(OracleSqlParser.TEMPORARY); + this.state = 9343; + this.match(OracleSqlParser.TABLESPACE); + this.state = 9344; + localctx.tablespace_name = this.id_expression(); + this.state = 9348; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 9345; + this.match(OracleSqlParser.IF); + this.state = 9346; + this.match(OracleSqlParser.NOT); + this.state = 9347; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 9351; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2087) { + this.state = 9350; + this.tempfile_specification(); + } + + this.state = 9354; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2078) { + this.state = 9353; + this.tablespace_group_clause(); + } + + this.state = 9357; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===556) { + this.state = 9356; + this.extent_management_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + undo_tablespace_clause() { + let localctx = new Undo_tablespace_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 892, OracleSqlParser.RULE_undo_tablespace_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9359; + this.match(OracleSqlParser.UNDO); + this.state = 9360; + this.match(OracleSqlParser.TABLESPACE); + this.state = 9361; + localctx.tablespace_name = this.id_expression(); + this.state = 9365; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 9362; + this.match(OracleSqlParser.IF); + this.state = 9363; + this.match(OracleSqlParser.NOT); + this.state = 9364; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 9368; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===350) { + this.state = 9367; + this.datafile_specification(); + } + + this.state = 9371; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===556) { + this.state = 9370; + this.extent_management_clause(); + } + + this.state = 9374; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1581) { + this.state = 9373; + this.tablespace_retention_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tablespace_retention_clause() { + let localctx = new Tablespace_retention_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 894, OracleSqlParser.RULE_tablespace_retention_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9376; + this.match(OracleSqlParser.RETENTION); + this.state = 9377; + _la = this._input.LA(1); + if(!(_la===653 || _la===1106)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_tablespace_set() { + let localctx = new Create_tablespace_setContext(this, this._ctx, this.state); + this.enterRule(localctx, 896, OracleSqlParser.RULE_create_tablespace_set); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9379; + this.match(OracleSqlParser.CREATE); + this.state = 9380; + this.match(OracleSqlParser.TABLESPACE); + this.state = 9381; + this.match(OracleSqlParser.SET); + this.state = 9382; + localctx.tss = this.id_expression(); + this.state = 9386; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===736) { + this.state = 9383; + this.match(OracleSqlParser.IN); + this.state = 9384; + this.match(OracleSqlParser.SHARDSPACE); + this.state = 9385; + localctx.ss = this.id_expression(); + } + + this.state = 9409; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 9388; + this.match(OracleSqlParser.USING); + this.state = 9389; + this.match(OracleSqlParser.TEMPLATE); + this.state = 9390; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9400; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===350) { + this.state = 9391; + this.match(OracleSqlParser.DATAFILE); + this.state = 9392; + this.file_specification(); + this.state = 9397; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9393; + this.match(OracleSqlParser.COMMA); + this.state = 9394; + this.file_specification(); + this.state = 9399; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 9403; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 9402; + this.permanent_tablespace_attrs(); + this.state = 9405; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===146 || _la===387 || _la===427 || _la===497 || _la===504 || _la===556 || ((((_la - 591)) & ~0x1f) === 0 && ((1 << (_la - 591)) & 8392705) !== 0) || _la===882 || _la===952 || _la===1117 || _la===1241 || _la===1254 || _la===1556 || _la===1643 || _la===1788); + this.state = 9407; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + permanent_tablespace_attrs() { + let localctx = new Permanent_tablespace_attrsContext(this, this._ctx, this.state); + this.enterRule(localctx, 898, OracleSqlParser.RULE_permanent_tablespace_attrs); + var _la = 0; + try { + this.state = 9430; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 952: + this.enterOuterAlt(localctx, 1); + this.state = 9411; + this.match(OracleSqlParser.MINIMUM); + this.state = 9412; + this.match(OracleSqlParser.EXTENT); + this.state = 9413; + this.size_clause(); + break; + case 146: + this.enterOuterAlt(localctx, 2); + this.state = 9414; + this.match(OracleSqlParser.BLOCKSIZE); + this.state = 9415; + this.numeric(); + this.state = 9417; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===810) { + this.state = 9416; + this.match(OracleSqlParser.K_LETTER); + } + + break; + case 591: + case 882: + case 1117: + this.enterOuterAlt(localctx, 3); + this.state = 9419; + this.logging_clause(); + break; + case 614: + this.enterOuterAlt(localctx, 4); + this.state = 9420; + this.match(OracleSqlParser.FORCE); + this.state = 9421; + this.match(OracleSqlParser.LOGGING); + break; + case 504: + this.enterOuterAlt(localctx, 5); + this.state = 9422; + this.tablespace_encryption_clause(); + break; + case 387: + this.enterOuterAlt(localctx, 6); + this.state = 9423; + this.default_tablespace_params(); + break; + case 1254: + this.enterOuterAlt(localctx, 7); + this.state = 9424; + this.match(OracleSqlParser.ONLINE); + break; + case 1241: + this.enterOuterAlt(localctx, 8); + this.state = 9425; + this.match(OracleSqlParser.OFFLINE); + break; + case 556: + this.enterOuterAlt(localctx, 9); + this.state = 9426; + this.extent_management_clause(); + break; + case 1643: + this.enterOuterAlt(localctx, 10); + this.state = 9427; + this.segment_management_clause(); + break; + case 603: + this.enterOuterAlt(localctx, 11); + this.state = 9428; + this.flashback_mode_clause(); + break; + case 427: + case 497: + case 1556: + case 1788: + this.enterOuterAlt(localctx, 12); + this.state = 9429; + this.lost_write_protection(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tablespace_encryption_clause() { + let localctx = new Tablespace_encryption_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 900, OracleSqlParser.RULE_tablespace_encryption_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9432; + this.match(OracleSqlParser.ENCRYPTION); + this.state = 9438; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 503: + case 2244: + this.state = 9434; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 9433; + this.tablespace_encryption_spec(); + } + + this.state = 9436; + this.match(OracleSqlParser.ENCRYPT); + break; + case 385: + this.state = 9437; + this.match(OracleSqlParser.DECRYPT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_tablespace_params() { + let localctx = new Default_tablespace_paramsContext(this, this._ctx, this.state); + this.enterRule(localctx, 902, OracleSqlParser.RULE_default_tablespace_params); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9440; + this.match(OracleSqlParser.DEFAULT); + this.state = 9442; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2081) { + this.state = 9441; + this.default_table_compression(); + } + + this.state = 9445; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===715) { + this.state = 9444; + this.default_index_compression(); + } + + this.state = 9448; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===744 || _la===1135) { + this.state = 9447; + this.inmmemory_clause(); + } + + this.state = 9451; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===695) { + this.state = 9450; + this.ilm_clause(); + } + + this.state = 9454; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1760) { + this.state = 9453; + this.storage_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_table_compression() { + let localctx = new Default_table_compressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 904, OracleSqlParser.RULE_default_table_compression); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9456; + this.match(OracleSqlParser.TABLE); + this.state = 9467; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 258: + this.state = 9457; + this.match(OracleSqlParser.COMPRESS); + this.state = 9458; + this.match(OracleSqlParser.FOR); + this.state = 9464; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1251: + this.state = 9459; + this.match(OracleSqlParser.OLTP); + break; + case 1482: + this.state = 9460; + this.match(OracleSqlParser.QUERY); + this.state = 9461; + this.low_high(); + break; + case 64: + this.state = 9462; + this.match(OracleSqlParser.ARCHIVE); + this.state = 9463; + this.low_high(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 1072: + this.state = 9466; + this.match(OracleSqlParser.NOCOMPRESS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + low_high() { + let localctx = new Low_highContext(this, this._ctx, this.state); + this.enterRule(localctx, 906, OracleSqlParser.RULE_low_high); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9469; + _la = this._input.LA(1); + if(!(_la===673 || _la===895)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_index_compression() { + let localctx = new Default_index_compressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 908, OracleSqlParser.RULE_default_index_compression); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9471; + this.match(OracleSqlParser.INDEX); + this.state = 9476; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 258: + this.state = 9472; + this.match(OracleSqlParser.COMPRESS); + this.state = 9473; + this.match(OracleSqlParser.ADVANCED); + this.state = 9474; + this.low_high(); + break; + case 1072: + this.state = 9475; + this.match(OracleSqlParser.NOCOMPRESS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + inmmemory_clause() { + let localctx = new Inmmemory_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 910, OracleSqlParser.RULE_inmmemory_clause); + var _la = 0; + try { + this.state = 9510; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 744: + this.enterOuterAlt(localctx, 1); + this.state = 9478; + this.match(OracleSqlParser.INMEMORY); + this.state = 9480; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===446 || _la===473 || _la===939 || _la===1135 || _la===1451) { + this.state = 9479; + this.inmemory_attributes(); + } + + this.state = 9506; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2094) { + this.state = 9482; + this.match(OracleSqlParser.TEXT); + this.state = 9504; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1083,this._ctx); + switch(la_) { + case 1: + this.state = 9483; + this.column_name(); + this.state = 9488; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9484; + this.match(OracleSqlParser.COMMA); + this.state = 9485; + this.column_name(); + this.state = 9490; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.state = 9491; + this.column_name(); + this.state = 9492; + this.match(OracleSqlParser.USING); + this.state = 9493; + this.policy_name(); + this.state = 9501; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9494; + this.match(OracleSqlParser.COMMA); + this.state = 9495; + this.column_name(); + this.state = 9496; + this.match(OracleSqlParser.USING); + this.state = 9497; + this.policy_name(); + this.state = 9503; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + } + + break; + case 1135: + this.enterOuterAlt(localctx, 2); + this.state = 9508; + this.match(OracleSqlParser.NO); + this.state = 9509; + this.match(OracleSqlParser.INMEMORY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + datafile_specification() { + let localctx = new Datafile_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 912, OracleSqlParser.RULE_datafile_specification); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9512; + this.match(OracleSqlParser.DATAFILE); + + this.state = 9514; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 9513; + this.match(OracleSqlParser.COMMA); + } + + this.state = 9516; + this.datafile_tempfile_spec(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tempfile_specification() { + let localctx = new Tempfile_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 914, OracleSqlParser.RULE_tempfile_specification); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9518; + this.match(OracleSqlParser.TEMPFILE); + + this.state = 9520; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 9519; + this.match(OracleSqlParser.COMMA); + } + + this.state = 9522; + this.datafile_tempfile_spec(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + datafile_tempfile_spec() { + let localctx = new Datafile_tempfile_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 916, OracleSqlParser.RULE_datafile_tempfile_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9525; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2441) { + this.state = 9524; + this.match(OracleSqlParser.CHAR_STRING); + } + + this.state = 9529; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1697) { + this.state = 9527; + this.match(OracleSqlParser.SIZE); + this.state = 9528; + this.size_clause(); + } + + this.state = 9532; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 9531; + this.match(OracleSqlParser.REUSE); + } + + this.state = 9535; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===93) { + this.state = 9534; + this.autoextend_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + redo_log_file_spec() { + let localctx = new Redo_log_file_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 918, OracleSqlParser.RULE_redo_log_file_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9549; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 9537; + this.filename(); + break; + case 2445: + this.state = 9538; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9539; + this.filename(); + this.state = 9544; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9540; + this.match(OracleSqlParser.COMMA); + this.state = 9541; + this.filename(); + this.state = 9546; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9547; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9553; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1697) { + this.state = 9551; + this.match(OracleSqlParser.SIZE); + this.state = 9552; + this.size_clause(); + } + + this.state = 9557; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1095,this._ctx); + if(la_===1) { + this.state = 9555; + this.match(OracleSqlParser.BLOCKSIZE); + this.state = 9556; + this.size_clause(); + + } + this.state = 9560; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 9559; + this.match(OracleSqlParser.REUSE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + autoextend_clause() { + let localctx = new Autoextend_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 920, OracleSqlParser.RULE_autoextend_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9562; + this.match(OracleSqlParser.AUTOEXTEND); + this.state = 9572; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1242: + this.state = 9563; + this.match(OracleSqlParser.OFF); + break; + case 1257: + this.state = 9564; + this.match(OracleSqlParser.ON); + this.state = 9567; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1023) { + this.state = 9565; + this.match(OracleSqlParser.NEXT); + this.state = 9566; + this.size_clause(); + } + + this.state = 9570; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===928) { + this.state = 9569; + this.maxsize_clause(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + maxsize_clause() { + let localctx = new Maxsize_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 922, OracleSqlParser.RULE_maxsize_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9574; + this.match(OracleSqlParser.MAXSIZE); + this.state = 9577; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2183: + this.state = 9575; + this.match(OracleSqlParser.UNLIMITED); + break; + case 2439: + this.state = 9576; + this.size_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + build_clause() { + let localctx = new Build_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 924, OracleSqlParser.RULE_build_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9579; + this.match(OracleSqlParser.BUILD); + this.state = 9580; + _la = this._input.LA(1); + if(!(_la===393 || _la===696)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + parallel_clause() { + let localctx = new Parallel_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 926, OracleSqlParser.RULE_parallel_clause); + var _la = 0; + try { + this.state = 9597; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1146: + this.enterOuterAlt(localctx, 1); + this.state = 9582; + this.match(OracleSqlParser.NOPARALLEL); + break; + case 1331: + this.enterOuterAlt(localctx, 2); + this.state = 9583; + this.match(OracleSqlParser.PARALLEL); + this.state = 9595; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1103,this._ctx); + if(la_===1) { + this.state = 9584; + localctx.parallel_count = this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 9586; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1101,this._ctx); + if(la_===1) { + this.state = 9585; + this.parallel_instances_clause(); + + } + + } else if(la_===2) { + this.state = 9588; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9589; + this.match(OracleSqlParser.DEGREE); + this.state = 9590; + localctx.parallel_count = this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 9592; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===758) { + this.state = 9591; + this.parallel_instances_clause(); + } + + this.state = 9594; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + parallel_instances_clause() { + let localctx = new Parallel_instances_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 928, OracleSqlParser.RULE_parallel_instances_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9599; + this.match(OracleSqlParser.INSTANCES); + this.state = 9600; + _la = this._input.LA(1); + if(!(_la===387 || _la===2439)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_materialized_view() { + let localctx = new Alter_materialized_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 930, OracleSqlParser.RULE_alter_materialized_view); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9602; + this.match(OracleSqlParser.ALTER); + this.state = 9603; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 9604; + this.match(OracleSqlParser.VIEW); + this.state = 9605; + this.tableview_name(); + this.state = 9631; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1107,this._ctx); + if(la_===1) { + this.state = 9606; + this.physical_attributes_clause(); + + } else if(la_===2) { + this.state = 9607; + this.modify_mv_column_clause(); + + } else if(la_===3) { + this.state = 9608; + this.table_compression(); + + } else if(la_===4) { + this.state = 9609; + this.lob_storage_clause(); + this.state = 9614; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9610; + this.match(OracleSqlParser.COMMA); + this.state = 9611; + this.lob_storage_clause(); + this.state = 9616; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } else if(la_===5) { + this.state = 9617; + this.modify_lob_storage_clause(); + this.state = 9622; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9618; + this.match(OracleSqlParser.COMMA); + this.state = 9619; + this.modify_lob_storage_clause(); + this.state = 9624; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } else if(la_===6) { + this.state = 9625; + this.parallel_clause(); + + } else if(la_===7) { + this.state = 9626; + this.logging_clause(); + + } else if(la_===8) { + this.state = 9627; + this.allocate_extent_clause(); + + } else if(la_===9) { + this.state = 9628; + this.deallocate_unused_clause(); + + } else if(la_===10) { + this.state = 9629; + this.shrink_clause(); + + } else if(la_===11) { + this.state = 9630; + this.cache_or_nocache(); + + } + this.state = 9634; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===21 || _la===228 || _la===258 || _la===703 || _la===909 || _la===1072 || _la===1118 || _la===1318 || _la===1369) { + this.state = 9633; + this.alter_iot_clauses(); + } + + this.state = 9639; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 9636; + this.match(OracleSqlParser.USING); + this.state = 9637; + this.match(OracleSqlParser.INDEX); + this.state = 9638; + this.physical_attributes_clause(); + } + + this.state = 9642; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1529) { + this.state = 9641; + this.alter_mv_option1(); + } + + this.state = 9651; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 427: + case 497: + this.state = 9644; + this.enable_or_disable(); + this.state = 9645; + this.match(OracleSqlParser.QUERY); + this.state = 9646; + this.match(OracleSqlParser.REWRITE); + break; + case 249: + this.state = 9648; + this.match(OracleSqlParser.COMPILE); + break; + case 280: + this.state = 9649; + this.match(OracleSqlParser.CONSIDER); + this.state = 9650; + this.match(OracleSqlParser.FRESH); + break; + case -1: + case 2452: + case 2467: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_mv_option1() { + let localctx = new Alter_mv_option1Context(this, this._ctx, this.state); + this.enterRule(localctx, 932, OracleSqlParser.RULE_alter_mv_option1); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9653; + this.alter_mv_refresh(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_mv_refresh() { + let localctx = new Alter_mv_refreshContext(this, this._ctx, this.state); + this.enterRule(localctx, 934, OracleSqlParser.RULE_alter_mv_refresh); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9655; + this.match(OracleSqlParser.REFRESH); + this.state = 9682; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 9682; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1114,this._ctx); + switch(la_) { + case 1: + this.state = 9656; + this.match(OracleSqlParser.FAST); + break; + + case 2: + this.state = 9657; + this.match(OracleSqlParser.COMPLETE); + break; + + case 3: + this.state = 9658; + this.match(OracleSqlParser.FORCE); + break; + + case 4: + this.state = 9659; + this.match(OracleSqlParser.ON); + this.state = 9660; + _la = this._input.LA(1); + if(!(_la===242 || _la===404)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 5: + this.state = 9661; + this.match(OracleSqlParser.START); + this.state = 9662; + this.match(OracleSqlParser.WITH); + this.state = 9663; + this.expression(); + break; + + case 6: + this.state = 9664; + this.match(OracleSqlParser.NEXT); + this.state = 9665; + this.expression(); + break; + + case 7: + this.state = 9666; + this.match(OracleSqlParser.WITH); + this.state = 9667; + this.match(OracleSqlParser.PRIMARY); + this.state = 9668; + this.match(OracleSqlParser.KEY); + break; + + case 8: + this.state = 9669; + this.match(OracleSqlParser.USING); + this.state = 9671; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 9670; + this.match(OracleSqlParser.DEFAULT); + } + + this.state = 9673; + this.match(OracleSqlParser.MASTER); + this.state = 9674; + this.match(OracleSqlParser.ROLLBACK); + this.state = 9675; + this.match(OracleSqlParser.SEGMENT); + this.state = 9677; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1113,this._ctx); + if(la_===1) { + this.state = 9676; + this.rollback_segment(); + + } + break; + + case 9: + this.state = 9679; + this.match(OracleSqlParser.USING); + this.state = 9680; + _la = this._input.LA(1); + if(!(_la===509 || _la===2159)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9681; + this.match(OracleSqlParser.CONSTRAINTS); + break; + + } + this.state = 9684; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===250 || _la===576 || _la===614 || _la===1023 || _la===1257 || _la===1735 || _la===2244 || _la===2306); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + rollback_segment() { + let localctx = new Rollback_segmentContext(this, this._ctx, this.state); + this.enterRule(localctx, 936, OracleSqlParser.RULE_rollback_segment); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9686; + this.regular_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_mv_column_clause() { + let localctx = new Modify_mv_column_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 938, OracleSqlParser.RULE_modify_mv_column_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9688; + this.match(OracleSqlParser.MODIFY); + this.state = 9689; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9690; + this.column_name(); + this.state = 9694; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 503: + this.state = 9691; + this.match(OracleSqlParser.ENCRYPT); + this.state = 9692; + this.encryption_spec(); + break; + case 385: + this.state = 9693; + this.match(OracleSqlParser.DECRYPT); + break; + case 2446: + break; + default: + break; + } + this.state = 9696; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_materialized_view_log() { + let localctx = new Alter_materialized_view_logContext(this, this._ctx, this.state); + this.enterRule(localctx, 940, OracleSqlParser.RULE_alter_materialized_view_log); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9698; + this.match(OracleSqlParser.ALTER); + this.state = 9699; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 9700; + this.match(OracleSqlParser.VIEW); + this.state = 9701; + this.match(OracleSqlParser.LOG); + this.state = 9703; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 9702; + this.match(OracleSqlParser.FORCE); + } + + this.state = 9705; + this.match(OracleSqlParser.ON); + this.state = 9706; + this.tableview_name(); + this.state = 9715; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1118,this._ctx); + if(la_===1) { + this.state = 9707; + this.physical_attributes_clause(); + + } else if(la_===2) { + this.state = 9708; + this.add_mv_log_column_clause(); + + } else if(la_===3) { + this.state = 9709; + this.parallel_clause(); + + } else if(la_===4) { + this.state = 9710; + this.logging_clause(); + + } else if(la_===5) { + this.state = 9711; + this.allocate_extent_clause(); + + } else if(la_===6) { + this.state = 9712; + this.shrink_clause(); + + } else if(la_===7) { + this.state = 9713; + this.move_mv_log_clause(); + + } else if(la_===8) { + this.state = 9714; + this.cache_or_nocache(); + + } + this.state = 9718; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===21) { + this.state = 9717; + this.mv_log_augmentation(); + } + + this.state = 9721; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1473) { + this.state = 9720; + this.mv_log_purge_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_mv_log_column_clause() { + let localctx = new Add_mv_log_column_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 942, OracleSqlParser.RULE_add_mv_log_column_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9723; + this.match(OracleSqlParser.ADD); + this.state = 9724; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9725; + this.column_name(); + this.state = 9726; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + move_mv_log_clause() { + let localctx = new Move_mv_log_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 944, OracleSqlParser.RULE_move_mv_log_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9728; + this.match(OracleSqlParser.MOVE); + this.state = 9729; + this.segment_attributes_clause(); + this.state = 9731; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 9730; + this.parallel_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + mv_log_augmentation() { + let localctx = new Mv_log_augmentationContext(this, this._ctx, this.state); + this.enterRule(localctx, 946, OracleSqlParser.RULE_mv_log_augmentation); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9733; + this.match(OracleSqlParser.ADD); + this.state = 9766; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1236: + case 1449: + case 1599: + case 1651: + this.state = 9740; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1236: + this.state = 9734; + this.match(OracleSqlParser.OBJECT); + this.state = 9735; + this.match(OracleSqlParser.ID); + break; + case 1449: + this.state = 9736; + this.match(OracleSqlParser.PRIMARY); + this.state = 9737; + this.match(OracleSqlParser.KEY); + break; + case 1599: + this.state = 9738; + this.match(OracleSqlParser.ROWID); + break; + case 1651: + this.state = 9739; + this.match(OracleSqlParser.SEQUENCE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9753; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 9742; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9743; + this.column_name(); + this.state = 9748; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9744; + this.match(OracleSqlParser.COMMA); + this.state = 9745; + this.column_name(); + this.state = 9750; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9751; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + case 2445: + this.state = 9755; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9756; + this.column_name(); + this.state = 9761; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9757; + this.match(OracleSqlParser.COMMA); + this.state = 9758; + this.column_name(); + this.state = 9763; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9764; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9769; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===538 || _la===703) { + this.state = 9768; + this.new_values_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_materialized_view_log() { + let localctx = new Create_materialized_view_logContext(this, this._ctx, this.state); + this.enterRule(localctx, 948, OracleSqlParser.RULE_create_materialized_view_log); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9771; + this.match(OracleSqlParser.CREATE); + this.state = 9772; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 9773; + this.match(OracleSqlParser.VIEW); + this.state = 9774; + this.match(OracleSqlParser.LOG); + this.state = 9775; + this.match(OracleSqlParser.ON); + this.state = 9776; + this.tableview_name(); + this.state = 9786; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===166 || _la===260 || _la===591 || _la===741 || _la===882 || _la===929 || _la===1064 || _la===1117 || _la===1367 || _la===1370 || _la===1760 || _la===2078) { + this.state = 9782; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 9782; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 260: + case 741: + case 929: + case 1367: + case 1370: + case 1760: + this.state = 9777; + this.physical_attributes_clause(); + break; + case 2078: + this.state = 9778; + this.match(OracleSqlParser.TABLESPACE); + this.state = 9779; + localctx.tablespace_name = this.id_expression(); + break; + case 591: + case 882: + case 1117: + this.state = 9780; + this.logging_clause(); + break; + case 166: + case 1064: + this.state = 9781; + _la = this._input.LA(1); + if(!(_la===166 || _la===1064)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9784; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===166 || _la===260 || _la===591 || _la===741 || _la===882 || _la===929 || _la===1064 || _la===1117 || _la===1367 || _la===1370 || _la===1760 || _la===2078); + } + + this.state = 9789; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 9788; + this.parallel_clause(); + } + + this.state = 9830; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2306) { + this.state = 9791; + this.match(OracleSqlParser.WITH); + this.state = 9807; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===242 || _la===1236 || _la===1449 || _la===1599 || _la===1651 || _la===2451) { + this.state = 9793; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 9792; + this.match(OracleSqlParser.COMMA); + } + + this.state = 9803; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1236: + this.state = 9795; + this.match(OracleSqlParser.OBJECT); + this.state = 9796; + this.match(OracleSqlParser.ID); + break; + case 1449: + this.state = 9797; + this.match(OracleSqlParser.PRIMARY); + this.state = 9798; + this.match(OracleSqlParser.KEY); + break; + case 1599: + this.state = 9799; + this.match(OracleSqlParser.ROWID); + break; + case 1651: + this.state = 9800; + this.match(OracleSqlParser.SEQUENCE); + break; + case 242: + this.state = 9801; + this.match(OracleSqlParser.COMMIT); + this.state = 9802; + this.match(OracleSqlParser.SCN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9809; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9823; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 9810; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9815; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 9812; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 9811; + this.match(OracleSqlParser.COMMA); + } + + this.state = 9814; + this.regular_id(); + this.state = 9817; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 142606335) !== 0) || _la===2451 || _la===2478); + this.state = 9819; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 9821; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===538 || _la===703) { + this.state = 9820; + this.new_values_clause(); + } + + } + + this.state = 9826; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1473) { + this.state = 9825; + this.mv_log_purge_clause(); + } + + this.state = 9832; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + new_values_clause() { + let localctx = new New_values_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 950, OracleSqlParser.RULE_new_values_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9833; + _la = this._input.LA(1); + if(!(_la===538 || _la===703)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9834; + this.match(OracleSqlParser.NEW); + this.state = 9835; + this.match(OracleSqlParser.VALUES); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + mv_log_purge_clause() { + let localctx = new Mv_log_purge_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 952, OracleSqlParser.RULE_mv_log_purge_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9837; + this.match(OracleSqlParser.PURGE); + + this.state = 9838; + this.match(OracleSqlParser.IMMEDIATE); + this.state = 9840; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===79 || _la===1792) { + this.state = 9839; + _la = this._input.LA(1); + if(!(_la===79 || _la===1792)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_materialized_zonemap() { + let localctx = new Create_materialized_zonemapContext(this, this._ctx, this.state); + this.enterRule(localctx, 954, OracleSqlParser.RULE_create_materialized_zonemap); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9842; + this.match(OracleSqlParser.CREATE); + this.state = 9843; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 9844; + this.match(OracleSqlParser.ZONEMAP); + this.state = 9845; + this.zonemap_name(); + this.state = 9850; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 9846; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9847; + this.column_list(); + this.state = 9848; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 9853; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===166 || _la===1064 || _la===1367 || _la===1370 || _la===1618 || _la===2078) { + this.state = 9852; + this.zonemap_attributes(); + } + + this.state = 9856; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1529) { + this.state = 9855; + this.zonemap_refresh_clause(); + } + + this.state = 9860; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===427 || _la===497) { + this.state = 9858; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9859; + this.match(OracleSqlParser.PRUNING); + } + + this.state = 9864; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1257: + this.state = 9862; + this.create_zonemap_on_table(); + break; + case 69: + this.state = 9863; + this.create_zonemap_as_subquery(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_materialized_zonemap() { + let localctx = new Alter_materialized_zonemapContext(this, this._ctx, this.state); + this.enterRule(localctx, 956, OracleSqlParser.RULE_alter_materialized_zonemap); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9866; + this.match(OracleSqlParser.ALTER); + this.state = 9867; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 9868; + this.match(OracleSqlParser.ZONEMAP); + this.state = 9869; + this.zonemap_name(); + this.state = 9877; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 166: + case 1064: + case 1367: + case 1370: + case 1618: + case 2078: + this.state = 9870; + this.zonemap_attributes(); + break; + case 1529: + this.state = 9871; + this.zonemap_refresh_clause(); + break; + case 427: + case 497: + this.state = 9872; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9873; + this.match(OracleSqlParser.PRUNING); + break; + case 249: + this.state = 9874; + this.match(OracleSqlParser.COMPILE); + break; + case 1509: + this.state = 9875; + this.match(OracleSqlParser.REBUILD); + break; + case 2201: + this.state = 9876; + this.match(OracleSqlParser.UNUSABLE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_materialized_zonemap() { + let localctx = new Drop_materialized_zonemapContext(this, this._ctx, this.state); + this.enterRule(localctx, 958, OracleSqlParser.RULE_drop_materialized_zonemap); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9879; + this.match(OracleSqlParser.DROP); + this.state = 9880; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 9881; + this.match(OracleSqlParser.ZONEMAP); + this.state = 9882; + this.zonemap_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + zonemap_refresh_clause() { + let localctx = new Zonemap_refresh_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 960, OracleSqlParser.RULE_zonemap_refresh_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9884; + this.match(OracleSqlParser.REFRESH); + this.state = 9886; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===249 || _la===576 || _la===614) { + this.state = 9885; + _la = this._input.LA(1); + if(!(_la===249 || _la===576 || _la===614)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 9899; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1150,this._ctx); + if(la_===1) { + this.state = 9888; + this.match(OracleSqlParser.ON); + this.state = 9897; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1149,this._ctx); + switch(la_) { + case 1: + this.state = 9889; + this.match(OracleSqlParser.DEMAND); + break; + + case 2: + this.state = 9890; + this.match(OracleSqlParser.COMMIT); + break; + + case 3: + this.state = 9891; + this.match(OracleSqlParser.LOAD); + break; + + case 4: + this.state = 9892; + this.match(OracleSqlParser.DATA); + this.state = 9893; + this.match(OracleSqlParser.MOVEMENT); + break; + + case 5: + this.state = 9894; + this.match(OracleSqlParser.LOAD); + this.state = 9895; + this.match(OracleSqlParser.DATA); + this.state = 9896; + this.match(OracleSqlParser.MOVEMENT); + break; + + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + zonemap_attributes() { + let localctx = new Zonemap_attributesContext(this, this._ctx, this.state); + this.enterRule(localctx, 962, OracleSqlParser.RULE_zonemap_attributes); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9910; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 9910; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1367: + this.state = 9901; + this.match(OracleSqlParser.PCTFREE); + this.state = 9902; + this.numeric(); + break; + case 1370: + this.state = 9903; + this.match(OracleSqlParser.PCTUSED); + this.state = 9904; + this.numeric(); + break; + case 1618: + this.state = 9905; + this.match(OracleSqlParser.SCALE); + this.state = 9906; + this.numeric(); + break; + case 2078: + this.state = 9907; + this.match(OracleSqlParser.TABLESPACE); + this.state = 9908; + this.tablespace(); + break; + case 166: + case 1064: + this.state = 9909; + _la = this._input.LA(1); + if(!(_la===166 || _la===1064)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9912; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===166 || _la===1064 || _la===1367 || _la===1370 || _la===1618 || _la===2078); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + zonemap_name() { + let localctx = new Zonemap_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 964, OracleSqlParser.RULE_zonemap_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9914; + this.identifier(); + this.state = 9917; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2438) { + this.state = 9915; + this.match(OracleSqlParser.PERIOD); + this.state = 9916; + this.id_expression(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + operator_name() { + let localctx = new Operator_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 966, OracleSqlParser.RULE_operator_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9919; + this.identifier(); + this.state = 9922; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2438) { + this.state = 9920; + this.match(OracleSqlParser.PERIOD); + this.state = 9921; + this.id_expression(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + operator_function_name() { + let localctx = new Operator_function_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 968, OracleSqlParser.RULE_operator_function_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9924; + this.identifier(); + this.state = 9929; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2438) { + this.state = 9925; + this.match(OracleSqlParser.PERIOD); + this.state = 9926; + this.id_expression(); + this.state = 9931; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_zonemap_on_table() { + let localctx = new Create_zonemap_on_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 970, OracleSqlParser.RULE_create_zonemap_on_table); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9932; + this.match(OracleSqlParser.ON); + this.state = 9933; + this.tableview_name(); + this.state = 9934; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9935; + this.column_list(); + this.state = 9936; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_zonemap_as_subquery() { + let localctx = new Create_zonemap_as_subqueryContext(this, this._ctx, this.state); + this.enterRule(localctx, 972, OracleSqlParser.RULE_create_zonemap_as_subquery); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9938; + this.match(OracleSqlParser.AS); + this.state = 9939; + this.subquery(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_operator() { + let localctx = new Alter_operatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 974, OracleSqlParser.RULE_alter_operator); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9941; + this.match(OracleSqlParser.ALTER); + this.state = 9942; + this.match(OracleSqlParser.OPERATOR); + this.state = 9943; + this.operator_name(); + this.state = 9947; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.state = 9944; + this.add_binding_clause(); + break; + case 467: + this.state = 9945; + this.drop_binding_clause(); + break; + case 249: + this.state = 9946; + this.match(OracleSqlParser.COMPILE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_operator() { + let localctx = new Drop_operatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 976, OracleSqlParser.RULE_drop_operator); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9949; + this.match(OracleSqlParser.DROP); + this.state = 9950; + this.match(OracleSqlParser.OPERATOR); + this.state = 9951; + this.operator_name(); + this.state = 9953; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 9952; + this.match(OracleSqlParser.FORCE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_operator() { + let localctx = new Create_operatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 978, OracleSqlParser.RULE_create_operator); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9955; + this.match(OracleSqlParser.CREATE); + this.state = 9958; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 9956; + this.match(OracleSqlParser.OR); + this.state = 9957; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 9960; + this.match(OracleSqlParser.OPERATOR); + this.state = 9961; + this.operator_name(); + this.state = 9962; + this.match(OracleSqlParser.BINDING); + this.state = 9963; + this.binding_clause(); + this.state = 9968; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9964; + this.match(OracleSqlParser.COMMA); + this.state = 9965; + this.binding_clause(); + this.state = 9970; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9974; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1679) { + this.state = 9971; + this.match(OracleSqlParser.SHARING); + this.state = 9972; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 9973; + _la = this._input.LA(1); + if(!(_la===946 || _la===1131)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + binding_clause() { + let localctx = new Binding_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 980, OracleSqlParser.RULE_binding_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 9976; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 9977; + this.datatype(); + this.state = 9982; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 9978; + this.match(OracleSqlParser.COMMA); + this.state = 9979; + this.datatype(); + this.state = 9984; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9985; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 9986; + this.match(OracleSqlParser.RETURN); + this.state = 9988; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 9987; + this.match(OracleSqlParser.LEFT_PAREN); + } + + this.state = 9990; + this.datatype(); + this.state = 9992; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2446) { + this.state = 9991; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 9995; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===48 || _la===2306) { + this.state = 9994; + this.implementation_clause(); + } + + this.state = 9997; + this.using_function_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_binding_clause() { + let localctx = new Add_binding_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 982, OracleSqlParser.RULE_add_binding_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9999; + this.match(OracleSqlParser.ADD); + this.state = 10000; + this.match(OracleSqlParser.BINDING); + this.state = 10001; + this.binding_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + implementation_clause() { + let localctx = new Implementation_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 984, OracleSqlParser.RULE_implementation_clause); + try { + this.state = 10007; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 48: + this.enterOuterAlt(localctx, 1); + this.state = 10003; + this.match(OracleSqlParser.ANCILLARY); + this.state = 10004; + this.match(OracleSqlParser.TO); + this.state = 10005; + this.primary_operator_list(); + break; + case 2306: + this.enterOuterAlt(localctx, 2); + this.state = 10006; + this.operator_context_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + primary_operator_list() { + let localctx = new Primary_operator_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 986, OracleSqlParser.RULE_primary_operator_list); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10009; + this.primary_operator_item(); + this.state = 10014; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10010; + this.match(OracleSqlParser.COMMA); + this.state = 10011; + this.primary_operator_item(); + this.state = 10016; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + primary_operator_item() { + let localctx = new Primary_operator_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 988, OracleSqlParser.RULE_primary_operator_item); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10017; + this.schema_object_name(); + this.state = 10018; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10019; + this.datatype(); + this.state = 10024; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10020; + this.match(OracleSqlParser.COMMA); + this.state = 10021; + this.datatype(); + this.state = 10026; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10027; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + operator_context_clause() { + let localctx = new Operator_context_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 990, OracleSqlParser.RULE_operator_context_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10029; + this.match(OracleSqlParser.WITH); + this.state = 10030; + this.match(OracleSqlParser.INDEX); + this.state = 10031; + this.match(OracleSqlParser.CONTEXT); + this.state = 10032; + this.match(OracleSqlParser.COMMA); + this.state = 10033; + this.match(OracleSqlParser.SCAN); + this.state = 10034; + this.match(OracleSqlParser.CONTEXT); + this.state = 10035; + this.implementation_type_name(); + this.state = 10039; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===260) { + this.state = 10036; + this.match(OracleSqlParser.COMPUTE); + this.state = 10037; + this.match(OracleSqlParser.ANCILLARY); + this.state = 10038; + this.match(OracleSqlParser.DATA); + } + + this.state = 10044; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 10041; + this.match(OracleSqlParser.WITH); + this.state = 10042; + this.match(OracleSqlParser.COLUMN); + this.state = 10043; + this.match(OracleSqlParser.CONTEXT); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + using_function_clause() { + let localctx = new Using_function_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 992, OracleSqlParser.RULE_using_function_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10046; + this.match(OracleSqlParser.USING); + this.state = 10047; + this.operator_function_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_binding_clause() { + let localctx = new Drop_binding_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 994, OracleSqlParser.RULE_drop_binding_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10049; + this.match(OracleSqlParser.DROP); + this.state = 10050; + this.match(OracleSqlParser.BINDING); + this.state = 10051; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10052; + this.datatype(); + this.state = 10057; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10053; + this.match(OracleSqlParser.COMMA); + this.state = 10054; + this.datatype(); + this.state = 10059; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10060; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 10062; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 10061; + this.match(OracleSqlParser.FORCE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_materialized_view() { + let localctx = new Create_materialized_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 996, OracleSqlParser.RULE_create_materialized_view); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10064; + this.match(OracleSqlParser.CREATE); + this.state = 10065; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 10066; + this.match(OracleSqlParser.VIEW); + this.state = 10067; + this.tableview_name(); + this.state = 10070; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1244) { + this.state = 10068; + this.match(OracleSqlParser.OF); + this.state = 10069; + this.type_name(); + } + + this.state = 10089; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 10072; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10075; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1173,this._ctx); + switch(la_) { + case 1: + this.state = 10073; + this.scoped_table_ref_constraint(); + break; + + case 2: + this.state = 10074; + this.mv_column_alias(); + break; + + } + this.state = 10084; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10077; + this.match(OracleSqlParser.COMMA); + this.state = 10080; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1174,this._ctx); + switch(la_) { + case 1: + this.state = 10078; + this.scoped_table_ref_constraint(); + break; + + case 2: + this.state = 10079; + this.mv_column_alias(); + break; + + } + this.state = 10086; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10087; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 10111; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1257: + this.state = 10091; + this.match(OracleSqlParser.ON); + this.state = 10092; + this.match(OracleSqlParser.PREBUILT); + this.state = 10093; + this.match(OracleSqlParser.TABLE); + this.state = 10097; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2304 || _la===2306) { + this.state = 10094; + _la = this._input.LA(1); + if(!(_la===2304 || _la===2306)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10095; + this.match(OracleSqlParser.REDUCED); + this.state = 10096; + this.match(OracleSqlParser.PRECISION); + } + + break; + case 69: + case 158: + case 166: + case 220: + case 237: + case 258: + case 260: + case 427: + case 497: + case 558: + case 591: + case 618: + case 695: + case 741: + case 744: + case 882: + case 929: + case 1018: + case 1064: + case 1072: + case 1117: + case 1135: + case 1146: + case 1304: + case 1331: + case 1367: + case 1370: + case 1529: + case 1604: + case 1643: + case 1760: + case 2078: + case 2244: + this.state = 10100; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===220 || _la===237 || _la===258 || _la===260 || _la===558 || _la===591 || _la===695 || _la===741 || _la===744 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1135 || _la===1304 || _la===1367 || _la===1370 || _la===1604 || _la===1643 || _la===1760 || _la===2078) { + this.state = 10099; + this.physical_properties(); + } + + this.state = 10103; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===166 || _la===1064) { + this.state = 10102; + _la = this._input.LA(1); + if(!(_la===166 || _la===1064)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10106; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 10105; + this.parallel_clause(); + } + + this.state = 10109; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===158) { + this.state = 10108; + this.build_clause(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10130; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1186,this._ctx); + if(la_===1) { + this.state = 10113; + this.match(OracleSqlParser.USING); + this.state = 10114; + this.match(OracleSqlParser.INDEX); + this.state = 10124; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===260 || _la===741 || _la===929 || _la===1367 || _la===1370 || _la===1760 || _la===2078) { + this.state = 10118; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 10118; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 260: + case 741: + case 929: + case 1367: + case 1370: + case 1760: + this.state = 10115; + this.physical_attributes_clause(); + break; + case 2078: + this.state = 10116; + this.match(OracleSqlParser.TABLESPACE); + this.state = 10117; + localctx.mv_tablespace = this.id_expression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10120; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1184, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 10126; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } else if(la_===2) { + this.state = 10127; + this.match(OracleSqlParser.USING); + this.state = 10128; + this.match(OracleSqlParser.NO); + this.state = 10129; + this.match(OracleSqlParser.INDEX); + + } + this.state = 10133; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1018 || _la===1529) { + this.state = 10132; + this.create_mv_refresh(); + } + + this.state = 10137; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===618) { + this.state = 10135; + this.match(OracleSqlParser.FOR); + this.state = 10136; + this.match(OracleSqlParser.UPDATE); + } + + this.state = 10142; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===427 || _la===497) { + this.state = 10139; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10140; + this.match(OracleSqlParser.QUERY); + this.state = 10141; + this.match(OracleSqlParser.REWRITE); + } + + this.state = 10144; + this.match(OracleSqlParser.AS); + this.state = 10145; + this.select_only_statement(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + scoped_table_ref_constraint() { + let localctx = new Scoped_table_ref_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 998, OracleSqlParser.RULE_scoped_table_ref_constraint); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10147; + this.match(OracleSqlParser.SCOPE); + this.state = 10148; + this.match(OracleSqlParser.FOR); + this.state = 10149; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10150; + localctx.ref_column_or_attribute = this.identifier(); + this.state = 10151; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 10152; + this.match(OracleSqlParser.IS); + this.state = 10156; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1190,this._ctx); + if(la_===1) { + this.state = 10153; + this.schema_name(); + this.state = 10154; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 10158; + localctx.scope_table_name_or_c_alias = this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + mv_column_alias() { + let localctx = new Mv_column_aliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 1000, OracleSqlParser.RULE_mv_column_alias); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10162; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 10160; + this.identifier(); + break; + case 2434: + case 2441: + this.state = 10161; + this.quoted_string(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10166; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===503) { + this.state = 10164; + this.match(OracleSqlParser.ENCRYPT); + this.state = 10165; + this.encryption_spec(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_mv_refresh() { + let localctx = new Create_mv_refreshContext(this, this._ctx, this.state); + this.enterRule(localctx, 1002, OracleSqlParser.RULE_create_mv_refresh); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10207; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1018: + this.state = 10168; + this.match(OracleSqlParser.NEVER); + this.state = 10169; + this.match(OracleSqlParser.REFRESH); + break; + case 1529: + this.state = 10170; + this.match(OracleSqlParser.REFRESH); + this.state = 10203; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 10203; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1198,this._ctx); + switch(la_) { + case 1: + this.state = 10171; + _la = this._input.LA(1); + if(!(_la===250 || _la===576 || _la===614)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 10172; + this.match(OracleSqlParser.ON); + this.state = 10173; + _la = this._input.LA(1); + if(!(_la===242 || _la===404)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 3: + this.state = 10177; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1735: + this.state = 10174; + this.match(OracleSqlParser.START); + this.state = 10175; + this.match(OracleSqlParser.WITH); + break; + case 1023: + this.state = 10176; + this.match(OracleSqlParser.NEXT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 4: + this.state = 10179; + this.match(OracleSqlParser.WITH); + this.state = 10183; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1449: + this.state = 10180; + this.match(OracleSqlParser.PRIMARY); + this.state = 10181; + this.match(OracleSqlParser.KEY); + break; + case 1599: + this.state = 10182; + this.match(OracleSqlParser.ROWID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 5: + this.state = 10185; + this.match(OracleSqlParser.USING); + this.state = 10198; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 387: + this.state = 10186; + this.match(OracleSqlParser.DEFAULT); + this.state = 10188; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===871 || _la===911) { + this.state = 10187; + _la = this._input.LA(1); + if(!(_la===871 || _la===911)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10190; + this.match(OracleSqlParser.ROLLBACK); + this.state = 10191; + this.match(OracleSqlParser.SEGMENT); + break; + case 871: + case 911: + case 1594: + this.state = 10193; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===871 || _la===911) { + this.state = 10192; + _la = this._input.LA(1); + if(!(_la===871 || _la===911)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10195; + this.match(OracleSqlParser.ROLLBACK); + this.state = 10196; + this.match(OracleSqlParser.SEGMENT); + this.state = 10197; + localctx.rb_segment = this.match(OracleSqlParser.REGULAR_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 6: + this.state = 10200; + this.match(OracleSqlParser.USING); + this.state = 10201; + _la = this._input.LA(1); + if(!(_la===509 || _la===2159)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10202; + this.match(OracleSqlParser.CONSTRAINTS); + break; + + } + this.state = 10205; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===250 || _la===576 || _la===614 || _la===1023 || _la===1257 || _la===1735 || _la===2244 || _la===2306); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_materialized_view() { + let localctx = new Drop_materialized_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 1004, OracleSqlParser.RULE_drop_materialized_view); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10209; + this.match(OracleSqlParser.DROP); + this.state = 10210; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 10211; + this.match(OracleSqlParser.VIEW); + this.state = 10212; + this.tableview_name(); + this.state = 10215; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1445) { + this.state = 10213; + this.match(OracleSqlParser.PRESERVE); + this.state = 10214; + this.match(OracleSqlParser.TABLE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_materialized_view_log() { + let localctx = new Drop_materialized_view_logContext(this, this._ctx, this.state); + this.enterRule(localctx, 1006, OracleSqlParser.RULE_drop_materialized_view_log); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10217; + this.match(OracleSqlParser.DROP); + this.state = 10218; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 10219; + this.match(OracleSqlParser.VIEW); + this.state = 10220; + this.match(OracleSqlParser.LOG); + this.state = 10223; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 10221; + this.match(OracleSqlParser.IF); + this.state = 10222; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 10225; + this.match(OracleSqlParser.ON); + this.state = 10226; + this.tableview_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_context() { + let localctx = new Create_contextContext(this, this._ctx, this.state); + this.enterRule(localctx, 1008, OracleSqlParser.RULE_create_context); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10228; + this.match(OracleSqlParser.CREATE); + this.state = 10231; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 10229; + this.match(OracleSqlParser.OR); + this.state = 10230; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 10233; + this.match(OracleSqlParser.CONTEXT); + this.state = 10234; + this.oracle_namespace(); + this.state = 10235; + this.match(OracleSqlParser.USING); + this.state = 10239; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1204,this._ctx); + if(la_===1) { + this.state = 10236; + this.schema_object_name(); + this.state = 10237; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 10241; + this.package_name(); + this.state = 10246; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 739: + this.state = 10242; + this.match(OracleSqlParser.INITIALIZED); + this.state = 10243; + _la = this._input.LA(1); + if(!(_la===559 || _la===641)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 5: + this.state = 10244; + this.match(OracleSqlParser.ACCESSED); + this.state = 10245; + this.match(OracleSqlParser.GLOBALLY); + break; + case -1: + case 2452: + case 2467: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + oracle_namespace() { + let localctx = new Oracle_namespaceContext(this, this._ctx, this.state); + this.enterRule(localctx, 1010, OracleSqlParser.RULE_oracle_namespace); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10248; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_cluster() { + let localctx = new Create_clusterContext(this, this._ctx, this.state); + this.enterRule(localctx, 1012, OracleSqlParser.RULE_create_cluster); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10250; + this.match(OracleSqlParser.CREATE); + this.state = 10251; + this.match(OracleSqlParser.CLUSTER); + this.state = 10252; + this.cluster_name(); + this.state = 10253; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10254; + this.column_name(); + this.state = 10255; + this.datatype(); + this.state = 10257; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1707) { + this.state = 10256; + this.match(OracleSqlParser.SORT); + } + + this.state = 10267; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10259; + this.match(OracleSqlParser.COMMA); + this.state = 10260; + this.column_name(); + this.state = 10261; + this.datatype(); + this.state = 10263; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1707) { + this.state = 10262; + this.match(OracleSqlParser.SORT); + } + + this.state = 10269; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10270; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 10290; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===260 || _la===659 || _la===715 || _la===741 || _la===929 || _la===1367 || _la===1370 || _la===1693 || _la===1697 || _la===1760 || _la===2078) { + this.state = 10288; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 260: + case 741: + case 929: + case 1367: + case 1370: + case 1760: + this.state = 10271; + this.physical_attributes_clause(); + break; + case 1697: + this.state = 10272; + this.match(OracleSqlParser.SIZE); + this.state = 10273; + this.size_clause(); + break; + case 2078: + this.state = 10274; + this.match(OracleSqlParser.TABLESPACE); + this.state = 10275; + this.tablespace(); + break; + case 715: + this.state = 10276; + this.match(OracleSqlParser.INDEX); + break; + case 659: + case 1693: + this.state = 10279; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1693) { + this.state = 10277; + this.match(OracleSqlParser.SINGLE); + this.state = 10278; + this.match(OracleSqlParser.TABLE); + } + + this.state = 10281; + this.match(OracleSqlParser.HASHKEYS); + this.state = 10282; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 10286; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===658) { + this.state = 10283; + this.match(OracleSqlParser.HASH); + this.state = 10284; + this.match(OracleSqlParser.IS); + this.state = 10285; + this.expression(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10292; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10294; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 10293; + this.parallel_clause(); + } + + this.state = 10297; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1178 || _la===1597) { + this.state = 10296; + _la = this._input.LA(1); + if(!(_la===1178 || _la===1597)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10300; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===166 || _la===1064) { + this.state = 10299; + _la = this._input.LA(1); + if(!(_la===166 || _la===1064)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_profile() { + let localctx = new Create_profileContext(this, this._ctx, this.state); + this.enterRule(localctx, 1014, OracleSqlParser.RULE_create_profile); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10302; + this.match(OracleSqlParser.CREATE); + this.state = 10304; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===906) { + this.state = 10303; + this.match(OracleSqlParser.MANDATORY); + } + + this.state = 10306; + this.match(OracleSqlParser.PROFILE); + this.state = 10307; + localctx.p = this.id_expression(); + this.state = 10308; + this.match(OracleSqlParser.LIMIT); + this.state = 10311; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 10311; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 256: + case 279: + case 316: + case 317: + case 688: + case 884: + case 885: + case 1454: + case 1666: + this.state = 10309; + this.resource_parameters(); + break; + case 569: + case 700: + case 1351: + case 1352: + case 1353: + case 1355: + case 1356: + case 1357: + case 1358: + this.state = 10310; + this.password_parameters(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10313; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===256 || _la===279 || _la===316 || _la===317 || _la===569 || _la===688 || _la===700 || _la===884 || _la===885 || ((((_la - 1351)) & ~0x1f) === 0 && ((1 << (_la - 1351)) & 247) !== 0) || _la===1454 || _la===1666); + this.state = 10316; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===287) { + this.state = 10315; + this.container_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + resource_parameters() { + let localctx = new Resource_parametersContext(this, this._ctx, this.state); + this.enterRule(localctx, 1016, OracleSqlParser.RULE_resource_parameters); + var _la = 0; + try { + this.state = 10326; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 256: + case 279: + case 316: + case 317: + case 688: + case 884: + case 885: + case 1666: + this.enterOuterAlt(localctx, 1); + this.state = 10318; + _la = this._input.LA(1); + if(!(_la===256 || _la===279 || _la===316 || _la===317 || _la===688 || _la===884 || _la===885 || _la===1666)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10319; + _la = this._input.LA(1); + if(!(_la===387 || _la===2183 || _la===2439)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 1454: + this.enterOuterAlt(localctx, 2); + this.state = 10320; + this.match(OracleSqlParser.PRIVATE_SGA); + this.state = 10324; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + this.state = 10321; + this.size_clause(); + break; + case 2183: + this.state = 10322; + this.match(OracleSqlParser.UNLIMITED); + break; + case 387: + this.state = 10323; + this.match(OracleSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + password_parameters() { + let localctx = new Password_parametersContext(this, this._ctx, this.state); + this.enterRule(localctx, 1018, OracleSqlParser.RULE_password_parameters); + var _la = 0; + try { + this.state = 10345; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 569: + case 700: + case 1351: + case 1352: + case 1353: + case 1355: + case 1356: + this.enterOuterAlt(localctx, 1); + this.state = 10328; + _la = this._input.LA(1); + if(!(_la===569 || _la===700 || ((((_la - 1351)) & ~0x1f) === 0 && ((1 << (_la - 1351)) & 55) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10332; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1222,this._ctx); + switch(la_) { + case 1: + this.state = 10329; + this.expression(); + break; + + case 2: + this.state = 10330; + this.match(OracleSqlParser.UNLIMITED); + break; + + case 3: + this.state = 10331; + this.match(OracleSqlParser.DEFAULT); + break; + + } + break; + case 1358: + this.enterOuterAlt(localctx, 2); + this.state = 10334; + this.match(OracleSqlParser.PASSWORD_VERIFY_FUNCTION); + this.state = 10338; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 10335; + this.function_name(); + break; + case 1226: + this.state = 10336; + this.match(OracleSqlParser.NULL_); + break; + case 387: + this.state = 10337; + this.match(OracleSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 1357: + this.enterOuterAlt(localctx, 3); + this.state = 10340; + this.match(OracleSqlParser.PASSWORD_ROLLOVER_TIME); + this.state = 10343; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1224,this._ctx); + switch(la_) { + case 1: + this.state = 10341; + this.expression(); + break; + + case 2: + this.state = 10342; + this.match(OracleSqlParser.DEFAULT); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_lockdown_profile() { + let localctx = new Create_lockdown_profileContext(this, this._ctx, this.state); + this.enterRule(localctx, 1020, OracleSqlParser.RULE_create_lockdown_profile); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10347; + this.match(OracleSqlParser.CREATE); + this.state = 10348; + this.match(OracleSqlParser.LOCKDOWN); + this.state = 10349; + this.match(OracleSqlParser.PROFILE); + this.state = 10350; + this.id_expression(); + this.state = 10353; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 626: + this.state = 10351; + this.static_base_profile(); + break; + case 703: + this.state = 10352; + this.dynamic_base_profile(); + break; + case -1: + case 2452: + case 2467: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + static_base_profile() { + let localctx = new Static_base_profileContext(this, this._ctx, this.state); + this.enterRule(localctx, 1022, OracleSqlParser.RULE_static_base_profile); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10355; + this.match(OracleSqlParser.FROM); + this.state = 10356; + localctx.bp = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dynamic_base_profile() { + let localctx = new Dynamic_base_profileContext(this, this._ctx, this.state); + this.enterRule(localctx, 1024, OracleSqlParser.RULE_dynamic_base_profile); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10358; + this.match(OracleSqlParser.INCLUDING); + this.state = 10359; + localctx.bp = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_outline() { + let localctx = new Create_outlineContext(this, this._ctx, this.state); + this.enterRule(localctx, 1026, OracleSqlParser.RULE_create_outline); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10361; + this.match(OracleSqlParser.CREATE); + this.state = 10364; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 10362; + this.match(OracleSqlParser.OR); + this.state = 10363; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 10367; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1453 || _la===1471) { + this.state = 10366; + _la = this._input.LA(1); + if(!(_la===1453 || _la===1471)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10369; + this.match(OracleSqlParser.OUTLINE); + this.state = 10371; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 10370; + localctx.o = this.id_expression(); + } + + this.state = 10378; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===626) { + this.state = 10373; + this.match(OracleSqlParser.FROM); + this.state = 10375; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1230,this._ctx); + if(la_===1) { + this.state = 10374; + _la = this._input.LA(1); + if(!(_la===1453 || _la===1471)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 10377; + localctx.so = this.id_expression(); + } + + this.state = 10383; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===618) { + this.state = 10380; + this.match(OracleSqlParser.FOR); + this.state = 10381; + this.match(OracleSqlParser.CATEGORY); + this.state = 10382; + localctx.c = this.id_expression(); + } + + this.state = 10387; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1257) { + this.state = 10385; + this.match(OracleSqlParser.ON); + this.state = 10386; + this.statement(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_restore_point() { + let localctx = new Create_restore_pointContext(this, this._ctx, this.state); + this.enterRule(localctx, 1028, OracleSqlParser.RULE_create_restore_point); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10389; + this.match(OracleSqlParser.CREATE); + this.state = 10391; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===210) { + this.state = 10390; + this.match(OracleSqlParser.CLEAN); + } + + this.state = 10393; + this.match(OracleSqlParser.RESTORE); + this.state = 10394; + this.match(OracleSqlParser.POINT); + this.state = 10395; + localctx.rp = this.id_expression(); + this.state = 10400; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===618) { + this.state = 10396; + this.match(OracleSqlParser.FOR); + this.state = 10397; + this.match(OracleSqlParser.PLUGGABLE); + this.state = 10398; + this.match(OracleSqlParser.DATABASE); + this.state = 10399; + localctx.pdb = this.id_expression(); + } + + this.state = 10406; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 10402; + this.match(OracleSqlParser.AS); + this.state = 10403; + this.match(OracleSqlParser.OF); + this.state = 10404; + _la = this._input.LA(1); + if(!(_la===1625 || _la===2106)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10405; + this.expression(); + } + + this.state = 10412; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 1445: + this.state = 10408; + this.match(OracleSqlParser.PRESERVE); + break; + case 653: + this.state = 10409; + this.match(OracleSqlParser.GUARANTEE); + this.state = 10410; + this.match(OracleSqlParser.FLASHBACK); + this.state = 10411; + this.match(OracleSqlParser.DATABASE); + break; + case -1: + case 2452: + case 2467: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_role() { + let localctx = new Create_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 1030, OracleSqlParser.RULE_create_role); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10414; + this.match(OracleSqlParser.CREATE); + this.state = 10415; + this.match(OracleSqlParser.ROLE); + this.state = 10416; + this.role_name(); + this.state = 10418; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===683 || _la===1202) { + this.state = 10417; + this.role_identified_clause(); + } + + this.state = 10421; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===287) { + this.state = 10420; + this.container_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_table() { + let localctx = new Create_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 1032, OracleSqlParser.RULE_create_table); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10423; + this.match(OracleSqlParser.CREATE); + this.state = 10433; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1241,this._ctx); + if(la_===1) { + this.state = 10424; + _la = this._input.LA(1); + if(!(_la===640 || _la===1453)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10425; + this.match(OracleSqlParser.TEMPORARY); + + } else if(la_===2) { + this.state = 10426; + this.match(OracleSqlParser.SHARDED); + + } else if(la_===3) { + this.state = 10427; + this.match(OracleSqlParser.DUPLICATED); + + } else if(la_===4) { + this.state = 10429; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2377) { + this.state = 10428; + this.match(OracleSqlParser.IMMUTABLE); + } + + this.state = 10431; + this.match(OracleSqlParser.BLOCKCHAIN); + + } else if(la_===5) { + this.state = 10432; + this.match(OracleSqlParser.IMMUTABLE); + + } + this.state = 10435; + this.match(OracleSqlParser.TABLE); + this.state = 10439; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1242,this._ctx); + if(la_===1) { + this.state = 10436; + this.schema_name(); + this.state = 10437; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 10441; + this.table_name(); + this.state = 10445; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 10442; + this.match(OracleSqlParser.IF); + this.state = 10443; + this.match(OracleSqlParser.NOT); + this.state = 10444; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 10457; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1679) { + this.state = 10447; + this.match(OracleSqlParser.SHARING); + this.state = 10448; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 10455; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 946: + this.state = 10449; + this.match(OracleSqlParser.METADATA); + break; + case 349: + case 2374: + this.state = 10451; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2374) { + this.state = 10450; + this.match(OracleSqlParser.EXTENDED); + } + + this.state = 10453; + this.match(OracleSqlParser.DATA); + break; + case 1131: + this.state = 10454; + this.match(OracleSqlParser.NONE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 10462; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1247,this._ctx); + switch(la_) { + case 1: + this.state = 10459; + this.relational_table(); + break; + + case 2: + this.state = 10460; + this.xmltype_table(); + break; + + case 3: + this.state = 10461; + this.object_table(); + break; + + } + this.state = 10465; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135 || _la===2406) { + this.state = 10464; + this.memoptimize_read_write_clause(); + } + + this.state = 10469; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1335) { + this.state = 10467; + this.match(OracleSqlParser.PARENT); + this.state = 10468; + this.tableview_name(); + } + + this.state = 10473; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2214) { + this.state = 10471; + this.match(OracleSqlParser.USAGE); + this.state = 10472; + this.match(OracleSqlParser.QUEUE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmltype_table() { + let localctx = new Xmltype_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 1034, OracleSqlParser.RULE_xmltype_table); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10475; + this.match(OracleSqlParser.OF); + this.state = 10476; + this.match(OracleSqlParser.XMLTYPE); + this.state = 10481; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 10477; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10478; + this.object_properties(); + this.state = 10479; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 10485; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1252,this._ctx); + if(la_===1) { + this.state = 10483; + this.match(OracleSqlParser.XMLTYPE); + this.state = 10484; + this.xmltype_storage(); + + } + this.state = 10488; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===484 || _la===2343) { + this.state = 10487; + this.xmlschema_spec(); + } + + this.state = 10491; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2286) { + this.state = 10490; + this.xmltype_virtual_columns(); + } + + this.state = 10497; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1257) { + this.state = 10493; + this.match(OracleSqlParser.ON); + this.state = 10494; + this.match(OracleSqlParser.COMMIT); + this.state = 10495; + _la = this._input.LA(1); + if(!(_la===401 || _la===1445)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10496; + this.match(OracleSqlParser.ROWS); + } + + this.state = 10500; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1236) { + this.state = 10499; + this.oid_clause(); + } + + this.state = 10503; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1245) { + this.state = 10502; + this.oid_index_clause(); + } + + this.state = 10506; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1258,this._ctx); + if(la_===1) { + this.state = 10505; + this.physical_properties(); + + } + this.state = 10509; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1259,this._ctx); + if(la_===1) { + this.state = 10508; + this.table_properties(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmltype_virtual_columns() { + let localctx = new Xmltype_virtual_columnsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1036, OracleSqlParser.RULE_xmltype_virtual_columns); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10511; + this.match(OracleSqlParser.VIRTUAL); + this.state = 10512; + this.match(OracleSqlParser.COLUMNS); + this.state = 10513; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10514; + this.column_name(); + this.state = 10515; + this.match(OracleSqlParser.AS); + this.state = 10516; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10517; + this.expression(); + this.state = 10518; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 10528; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10519; + this.match(OracleSqlParser.COMMA); + this.state = 10520; + this.column_name(); + this.state = 10521; + this.match(OracleSqlParser.AS); + this.state = 10522; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10523; + this.expression(); + this.state = 10524; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 10530; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10531; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmltype_column_properties() { + let localctx = new Xmltype_column_propertiesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1038, OracleSqlParser.RULE_xmltype_column_properties); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10533; + this.match(OracleSqlParser.XMLTYPE); + this.state = 10535; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1261,this._ctx); + if(la_===1) { + this.state = 10534; + this.match(OracleSqlParser.COLUMN); + + } + this.state = 10537; + this.column_name(); + this.state = 10539; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1761) { + this.state = 10538; + this.xmltype_storage(); + } + + this.state = 10542; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===484 || _la===2343) { + this.state = 10541; + this.xmlschema_spec(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmltype_storage() { + let localctx = new Xmltype_storageContext(this, this._ctx, this.state); + this.enterRule(localctx, 1040, OracleSqlParser.RULE_xmltype_storage); + var _la = 0; + try { + this.state = 10575; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1269,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10544; + this.match(OracleSqlParser.STORE); + this.state = 10545; + this.match(OracleSqlParser.AS); + this.state = 10569; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1236: + this.state = 10546; + this.match(OracleSqlParser.OBJECT); + this.state = 10547; + this.match(OracleSqlParser.RELATIONAL); + break; + case 107: + case 124: + case 215: + case 1638: + this.state = 10549; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===107 || _la===1638) { + this.state = 10548; + _la = this._input.LA(1); + if(!(_la===107 || _la===1638)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10554; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 215: + this.state = 10551; + this.match(OracleSqlParser.CLOB); + break; + case 124: + this.state = 10552; + this.match(OracleSqlParser.BINARY); + this.state = 10553; + this.match(OracleSqlParser.XML); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10567; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1267,this._ctx); + if(la_===1) { + this.state = 10556; + this.lob_segname(); + this.state = 10561; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1266,this._ctx); + if(la_===1) { + this.state = 10557; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10558; + this.lob_parameters(); + this.state = 10559; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + + } else if(la_===2) { + this.state = 10563; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10564; + this.lob_parameters(); + this.state = 10565; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10571; + this.match(OracleSqlParser.STORE); + this.state = 10572; + this.match(OracleSqlParser.VARRAYS); + this.state = 10573; + this.match(OracleSqlParser.AS); + this.state = 10574; + _la = this._input.LA(1); + if(!(_la===869 || _la===2079)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmlschema_spec() { + let localctx = new Xmlschema_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 1042, OracleSqlParser.RULE_xmlschema_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10579; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2343) { + this.state = 10577; + this.match(OracleSqlParser.XMLSCHEMA); + this.state = 10578; + this.match(OracleSqlParser.DELIMITED_ID); + } + + this.state = 10581; + this.match(OracleSqlParser.ELEMENT); + this.state = 10582; + this.match(OracleSqlParser.DELIMITED_ID); + this.state = 10586; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1271,this._ctx); + if(la_===1) { + this.state = 10583; + this.allow_or_disallow(); + this.state = 10584; + this.match(OracleSqlParser.NONSCHEMA); + + } + this.state = 10591; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===40 || _la===433) { + this.state = 10588; + this.allow_or_disallow(); + this.state = 10589; + this.match(OracleSqlParser.ANYSCHEMA); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_table() { + let localctx = new Object_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 1044, OracleSqlParser.RULE_object_table); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10593; + this.match(OracleSqlParser.OF); + this.state = 10597; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1273,this._ctx); + if(la_===1) { + this.state = 10594; + this.schema_name(); + this.state = 10595; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 10599; + this.object_type(); + this.state = 10601; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202 || _la===1778) { + this.state = 10600; + this.object_table_substitution(); + } + + this.state = 10614; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 10603; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10604; + this.object_properties(); + this.state = 10609; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10605; + this.match(OracleSqlParser.COMMA); + this.state = 10606; + this.object_properties(); + this.state = 10611; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10612; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 10620; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1257) { + this.state = 10616; + this.match(OracleSqlParser.ON); + this.state = 10617; + this.match(OracleSqlParser.COMMIT); + this.state = 10618; + _la = this._input.LA(1); + if(!(_la===401 || _la===1445)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10619; + this.match(OracleSqlParser.ROWS); + } + + this.state = 10623; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1236) { + this.state = 10622; + this.oid_clause(); + } + + this.state = 10626; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1245) { + this.state = 10625; + this.oid_index_clause(); + } + + this.state = 10629; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1280,this._ctx); + if(la_===1) { + this.state = 10628; + this.physical_properties(); + + } + this.state = 10632; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1281,this._ctx); + if(la_===1) { + this.state = 10631; + this.table_properties(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_type() { + let localctx = new Object_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 1046, OracleSqlParser.RULE_object_type); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10634; + this.regular_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + oid_index_clause() { + let localctx = new Oid_index_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1048, OracleSqlParser.RULE_oid_index_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10636; + this.match(OracleSqlParser.OIDINDEX); + this.state = 10638; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2472 || _la===2478) { + this.state = 10637; + this.index_name(); + } + + this.state = 10640; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10644; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 10644; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 260: + case 741: + case 929: + case 1367: + case 1370: + case 1760: + this.state = 10641; + this.physical_attributes_clause(); + break; + case 2078: + this.state = 10642; + this.match(OracleSqlParser.TABLESPACE); + this.state = 10643; + this.tablespace(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10646; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===260 || _la===741 || _la===929 || _la===1367 || _la===1370 || _la===1760 || _la===2078); + this.state = 10648; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + oid_clause() { + let localctx = new Oid_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1050, OracleSqlParser.RULE_oid_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10650; + this.match(OracleSqlParser.OBJECT); + this.state = 10651; + this.match(OracleSqlParser.IDENTIFIER); + this.state = 10652; + this.match(OracleSqlParser.IS); + this.state = 10657; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1947: + this.state = 10653; + this.match(OracleSqlParser.SYSTEM); + this.state = 10654; + this.match(OracleSqlParser.GENERATED); + break; + case 1449: + this.state = 10655; + this.match(OracleSqlParser.PRIMARY); + this.state = 10656; + this.match(OracleSqlParser.KEY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_properties() { + let localctx = new Object_propertiesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1052, OracleSqlParser.RULE_object_properties); + var _la = 0; + try { + this.state = 10681; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1290,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10661; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1286,this._ctx); + switch(la_) { + case 1: + this.state = 10659; + this.column_name(); + break; + + case 2: + this.state = 10660; + this.attribute_name(); + break; + + } + this.state = 10665; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 10663; + this.match(OracleSqlParser.DEFAULT); + this.state = 10664; + this.expression(); + } + + this.state = 10676; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1289,this._ctx); + if(la_===1) { + this.state = 10667; + this.inline_constraint(); + this.state = 10672; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1288,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 10668; + this.match(OracleSqlParser.COMMA); + this.state = 10669; + this.inline_constraint(); + } + this.state = 10674; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1288,this._ctx); + } + + + } else if(la_===2) { + this.state = 10675; + this.inline_ref_constraint(); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10678; + this.out_of_line_constraint(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10679; + this.out_of_line_ref_constraint(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10680; + this.supplemental_logging_props(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_table_substitution() { + let localctx = new Object_table_substitutionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1054, OracleSqlParser.RULE_object_table_substitution); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10684; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 10683; + this.match(OracleSqlParser.NOT); + } + + this.state = 10686; + this.match(OracleSqlParser.SUBSTITUTABLE); + this.state = 10687; + this.match(OracleSqlParser.AT); + this.state = 10688; + this.match(OracleSqlParser.ALL); + this.state = 10689; + this.match(OracleSqlParser.LEVELS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + relational_table() { + let localctx = new Relational_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 1056, OracleSqlParser.RULE_relational_table); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10702; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 10691; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10692; + this.relational_property(); + this.state = 10697; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10693; + this.match(OracleSqlParser.COMMA); + this.state = 10694; + this.relational_property(); + this.state = 10699; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10700; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 10705; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1294,this._ctx); + if(la_===1) { + this.state = 10704; + this.relational_table_properties(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + relational_table_properties() { + let localctx = new Relational_table_propertiesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1058, OracleSqlParser.RULE_relational_table_properties); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10708; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 10707; + this.relational_table_property(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10710; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1295, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + relational_table_property() { + let localctx = new Relational_table_propertyContext(this, this._ctx, this.state); + this.enterRule(localctx, 1060, OracleSqlParser.RULE_relational_table_property); + var _la = 0; + try { + this.state = 10727; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1297,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10712; + this.immutable_table_clauses(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10713; + this.blockchain_table_clauses(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10714; + this.match(OracleSqlParser.DEFAULT); + this.state = 10715; + this.match(OracleSqlParser.COLLATION); + this.state = 10716; + this.collation_name(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10717; + this.match(OracleSqlParser.ON); + this.state = 10718; + this.match(OracleSqlParser.COMMIT); + this.state = 10723; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1296,this._ctx); + switch(la_) { + case 1: + this.state = 10719; + _la = this._input.LA(1); + if(!(_la===467 || _la===1445)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10720; + this.match(OracleSqlParser.DEFINITION); + break; + + case 2: + this.state = 10721; + _la = this._input.LA(1); + if(!(_la===401 || _la===1445)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10722; + this.match(OracleSqlParser.ROWS); + break; + + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10725; + this.physical_properties(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 10726; + this.table_properties(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + immutable_table_clauses() { + let localctx = new Immutable_table_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1062, OracleSqlParser.RULE_immutable_table_clauses); + try { + this.state = 10731; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1298,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10729; + this.immutable_table_no_drop_clause(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10730; + this.immutable_table_no_delete_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + immutable_table_no_drop_clause() { + let localctx = new Immutable_table_no_drop_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1064, OracleSqlParser.RULE_immutable_table_no_drop_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10733; + this.match(OracleSqlParser.NO); + this.state = 10734; + this.match(OracleSqlParser.DROP); + this.state = 10740; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2200) { + this.state = 10735; + this.match(OracleSqlParser.UNTIL); + this.state = 10736; + this.numeric(); + this.state = 10737; + this.match(OracleSqlParser.DAYS); + this.state = 10738; + this.match(OracleSqlParser.IDLE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + immutable_table_no_delete_clause() { + let localctx = new Immutable_table_no_delete_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1066, OracleSqlParser.RULE_immutable_table_no_delete_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10742; + this.match(OracleSqlParser.NO); + this.state = 10743; + this.match(OracleSqlParser.DELETE); + this.state = 10755; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case -1: + case 51: + case 69: + case 166: + case 220: + case 224: + case 237: + case 258: + case 260: + case 319: + case 387: + case 427: + case 497: + case 558: + case 591: + case 603: + case 618: + case 645: + case 695: + case 716: + case 741: + case 744: + case 866: + case 877: + case 882: + case 929: + case 981: + case 1011: + case 1064: + case 1072: + case 1117: + case 1125: + case 1135: + case 1146: + case 1178: + case 1257: + case 1304: + case 1331: + case 1335: + case 1346: + case 1367: + case 1370: + case 1503: + case 1577: + case 1597: + case 1604: + case 1643: + case 1760: + case 2078: + case 2214: + case 2265: + case 2349: + case 2406: + case 2452: + case 2467: + this.state = 10745; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===877) { + this.state = 10744; + this.match(OracleSqlParser.LOCKED); + } + + break; + case 2200: + this.state = 10747; + this.match(OracleSqlParser.UNTIL); + this.state = 10748; + this.numeric(); + this.state = 10749; + this.match(OracleSqlParser.DAYS); + this.state = 10750; + this.match(OracleSqlParser.AFTER); + this.state = 10751; + this.match(OracleSqlParser.INSERT); + this.state = 10753; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===877) { + this.state = 10752; + this.match(OracleSqlParser.LOCKED); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + blockchain_table_clauses() { + let localctx = new Blockchain_table_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1068, OracleSqlParser.RULE_blockchain_table_clauses); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10757; + this.blockchain_drop_table_clause(); + this.state = 10758; + this.blockchain_row_retention_clause(); + this.state = 10759; + this.blockchain_hash_and_data_format_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + blockchain_drop_table_clause() { + let localctx = new Blockchain_drop_table_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1070, OracleSqlParser.RULE_blockchain_drop_table_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10761; + this.match(OracleSqlParser.NO); + this.state = 10762; + this.match(OracleSqlParser.DROP); + this.state = 10768; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2200) { + this.state = 10763; + this.match(OracleSqlParser.UNTIL); + this.state = 10764; + this.numeric(); + this.state = 10765; + this.match(OracleSqlParser.DAYS); + this.state = 10766; + this.match(OracleSqlParser.IDLE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + blockchain_row_retention_clause() { + let localctx = new Blockchain_row_retention_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1072, OracleSqlParser.RULE_blockchain_row_retention_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10770; + this.match(OracleSqlParser.NO); + this.state = 10771; + this.match(OracleSqlParser.DELETE); + this.state = 10783; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 877: + case 2375: + this.state = 10773; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===877) { + this.state = 10772; + this.match(OracleSqlParser.LOCKED); + } + + break; + case 2200: + this.state = 10775; + this.match(OracleSqlParser.UNTIL); + this.state = 10776; + this.numeric(); + this.state = 10777; + this.match(OracleSqlParser.DAYS); + this.state = 10778; + this.match(OracleSqlParser.AFTER); + this.state = 10779; + this.match(OracleSqlParser.INSERT); + this.state = 10781; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===877) { + this.state = 10780; + this.match(OracleSqlParser.LOCKED); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + blockchain_hash_and_data_format_clause() { + let localctx = new Blockchain_hash_and_data_format_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1074, OracleSqlParser.RULE_blockchain_hash_and_data_format_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10785; + this.match(OracleSqlParser.HASHING); + this.state = 10786; + this.match(OracleSqlParser.USING); + this.state = 10787; + this.match(OracleSqlParser.SHA2_512_Q); + this.state = 10788; + this.match(OracleSqlParser.VERSION); + this.state = 10789; + this.match(OracleSqlParser.V1_Q); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + collation_name() { + let localctx = new Collation_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1076, OracleSqlParser.RULE_collation_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10791; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_properties() { + let localctx = new Table_propertiesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1078, OracleSqlParser.RULE_table_properties); + var _la = 0; + try { + this.state = 10823; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1308,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10793; + this.column_properties(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10794; + this.read_only_clause(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10795; + this.indexing_clause(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10796; + this.table_partitioning_clauses(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10797; + this.attribute_clustering_clause(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 10798; + _la = this._input.LA(1); + if(!(_la===166 || _la===1064)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 10799; + this.result_cache_clause(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 10800; + this.parallel_clause(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 10801; + this.monitoring_nomonitoring(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 10802; + _la = this._input.LA(1); + if(!(_la===1178 || _la===1597)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 10803; + this.enable_disable_clause(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 10804; + this.row_movement_clause(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 10805; + this.logical_replication_clause(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 10806; + this.flashback_archive_clause(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 10807; + this.physical_properties(); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 10808; + this.match(OracleSqlParser.ROW); + this.state = 10809; + this.match(OracleSqlParser.ARCHIVAL); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 10810; + this.match(OracleSqlParser.AS); + this.state = 10811; + this.select_only_statement(); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 10812; + this.match(OracleSqlParser.FOR); + this.state = 10813; + this.match(OracleSqlParser.EXCHANGE); + this.state = 10814; + this.match(OracleSqlParser.WITH); + this.state = 10815; + this.match(OracleSqlParser.TABLE); + this.state = 10819; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1307,this._ctx); + if(la_===1) { + this.state = 10816; + this.schema_name(); + this.state = 10817; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 10821; + this.table_name(); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 10822; + this.annotations_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + read_only_clause() { + let localctx = new Read_only_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1080, OracleSqlParser.RULE_read_only_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10825; + this.match(OracleSqlParser.READ); + this.state = 10826; + _la = this._input.LA(1); + if(!(_la===1256 || _la===2311)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + indexing_clause() { + let localctx = new Indexing_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1082, OracleSqlParser.RULE_indexing_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10828; + this.match(OracleSqlParser.INDEXING); + this.state = 10829; + _la = this._input.LA(1); + if(!(_la===1242 || _la===1257)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + attribute_clustering_clause() { + let localctx = new Attribute_clustering_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1084, OracleSqlParser.RULE_attribute_clustering_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10831; + this.match(OracleSqlParser.CLUSTERING); + this.state = 10833; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2472 || _la===2478) { + this.state = 10832; + this.clustering_join(); + } + + this.state = 10835; + this.cluster_clause(); + this.state = 10841; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1311,this._ctx); + if(la_===1) { + this.state = 10837; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135 || _la===2358) { + this.state = 10836; + this.yes_no(); + } + + this.state = 10839; + this.match(OracleSqlParser.ON); + this.state = 10840; + this.match(OracleSqlParser.LOAD); + + } + this.state = 10849; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1313,this._ctx); + if(la_===1) { + this.state = 10844; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135 || _la===2358) { + this.state = 10843; + this.yes_no(); + } + + this.state = 10846; + this.match(OracleSqlParser.ON); + this.state = 10847; + this.match(OracleSqlParser.DATA); + this.state = 10848; + this.match(OracleSqlParser.MOVEMENT); + + } + this.state = 10852; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2304 || _la===2306) { + this.state = 10851; + this.zonemap_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + clustering_join() { + let localctx = new Clustering_joinContext(this, this._ctx, this.state); + this.enterRule(localctx, 1086, OracleSqlParser.RULE_clustering_join); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10857; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1315,this._ctx); + if(la_===1) { + this.state = 10854; + this.schema_name(); + this.state = 10855; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 10859; + this.table_name(); + this.state = 10860; + this.clustering_join_item(); + this.state = 10865; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10861; + this.match(OracleSqlParser.COMMA); + this.state = 10862; + this.clustering_join_item(); + this.state = 10867; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + clustering_join_item() { + let localctx = new Clustering_join_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 1088, OracleSqlParser.RULE_clustering_join_item); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10868; + this.match(OracleSqlParser.JOIN); + this.state = 10872; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1317,this._ctx); + if(la_===1) { + this.state = 10869; + this.schema_name(); + this.state = 10870; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 10874; + this.table_name(); + this.state = 10875; + this.match(OracleSqlParser.ON); + this.state = 10876; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10877; + this.equijoin_condition(); + this.state = 10878; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + equijoin_condition() { + let localctx = new Equijoin_conditionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1090, OracleSqlParser.RULE_equijoin_condition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10880; + this.expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cluster_clause() { + let localctx = new Cluster_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1092, OracleSqlParser.RULE_cluster_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10882; + this.match(OracleSqlParser.BY); + this.state = 10884; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===768 || _la===857) { + this.state = 10883; + _la = this._input.LA(1); + if(!(_la===768 || _la===857)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10886; + this.match(OracleSqlParser.ORDER); + this.state = 10887; + this.clustering_columns(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + clustering_columns() { + let localctx = new Clustering_columnsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1094, OracleSqlParser.RULE_clustering_columns); + var _la = 0; + try { + this.state = 10901; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1320,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10889; + this.clustering_column_group(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10890; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10891; + this.clustering_column_group(); + this.state = 10896; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10892; + this.match(OracleSqlParser.COMMA); + this.state = 10893; + this.clustering_column_group(); + this.state = 10898; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10899; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + clustering_column_group() { + let localctx = new Clustering_column_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 1096, OracleSqlParser.RULE_clustering_column_group); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10903; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10904; + this.column_name(); + this.state = 10909; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10905; + this.match(OracleSqlParser.COMMA); + this.state = 10906; + this.column_name(); + this.state = 10911; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10912; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + yes_no() { + let localctx = new Yes_noContext(this, this._ctx, this.state); + this.enterRule(localctx, 1098, OracleSqlParser.RULE_yes_no); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10914; + _la = this._input.LA(1); + if(!(_la===1135 || _la===2358)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + zonemap_clause() { + let localctx = new Zonemap_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1100, OracleSqlParser.RULE_zonemap_clause); + var _la = 0; + try { + this.state = 10928; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2306: + this.enterOuterAlt(localctx, 1); + this.state = 10916; + this.match(OracleSqlParser.WITH); + this.state = 10917; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 10918; + this.match(OracleSqlParser.ZONEMAP); + this.state = 10923; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 10919; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10920; + this.zonemap_name(); + this.state = 10921; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + case 2304: + this.enterOuterAlt(localctx, 2); + this.state = 10925; + this.match(OracleSqlParser.WITHOUT); + this.state = 10926; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 10927; + this.match(OracleSqlParser.ZONEMAP); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + logical_replication_clause() { + let localctx = new Logical_replication_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1102, OracleSqlParser.RULE_logical_replication_clause); + var _la = 0; + try { + this.state = 10949; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 427: + this.enterOuterAlt(localctx, 1); + this.state = 10930; + this.match(OracleSqlParser.DISABLE); + this.state = 10931; + this.match(OracleSqlParser.LOGICAL); + this.state = 10932; + this.match(OracleSqlParser.REPLICATION); + break; + case 497: + this.enterOuterAlt(localctx, 2); + this.state = 10933; + this.match(OracleSqlParser.ENABLE); + this.state = 10934; + this.match(OracleSqlParser.LOGICAL); + this.state = 10935; + this.match(OracleSqlParser.REPLICATION); + this.state = 10947; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1326,this._ctx); + if(la_===1) { + this.state = 10939; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 38: + this.state = 10936; + this.match(OracleSqlParser.ALL); + break; + case 40: + this.state = 10937; + this.match(OracleSqlParser.ALLOW); + this.state = 10938; + this.match(OracleSqlParser.NOVALIDATE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10941; + this.match(OracleSqlParser.KEYS); + + } else if(la_===2) { + this.state = 10943; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135) { + this.state = 10942; + this.match(OracleSqlParser.NO); + } + + this.state = 10945; + this.match(OracleSqlParser.PARTIAL); + this.state = 10946; + this.match(OracleSqlParser.JSON); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_name() { + let localctx = new Table_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1104, OracleSqlParser.RULE_table_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10951; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + relational_property() { + let localctx = new Relational_propertyContext(this, this._ctx, this.state); + this.enterRule(localctx, 1106, OracleSqlParser.RULE_relational_property); + try { + this.state = 10959; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1328,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10953; + this.out_of_line_constraint(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10954; + this.out_of_line_ref_constraint(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10955; + this.column_definition(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10956; + this.virtual_column_definition(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10957; + this.period_definition(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 10958; + this.supplemental_logging_props(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_partitioning_clauses() { + let localctx = new Table_partitioning_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1108, OracleSqlParser.RULE_table_partitioning_clauses); + try { + this.state = 10969; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1329,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10961; + this.range_partitions(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10962; + this.list_partitions(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10963; + this.hash_partitions(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10964; + this.composite_range_partitions(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10965; + this.composite_list_partitions(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 10966; + this.composite_hash_partitions(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 10967; + this.reference_partitioning(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 10968; + this.system_partitioning(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + range_partitions() { + let localctx = new Range_partitionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1110, OracleSqlParser.RULE_range_partitions); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 10971; + this.match(OracleSqlParser.PARTITION); + this.state = 10972; + this.match(OracleSqlParser.BY); + this.state = 10973; + this.match(OracleSqlParser.RANGE); + this.state = 10974; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10975; + this.column_name(); + this.state = 10980; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10976; + this.match(OracleSqlParser.COMMA); + this.state = 10977; + this.column_name(); + this.state = 10982; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10983; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11003; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===774) { + this.state = 10984; + this.match(OracleSqlParser.INTERVAL); + this.state = 10985; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10986; + this.expression(); + this.state = 10987; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11001; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1761) { + this.state = 10988; + this.match(OracleSqlParser.STORE); + this.state = 10989; + this.match(OracleSqlParser.IN); + this.state = 10990; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 10991; + this.tablespace(); + this.state = 10996; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 10992; + this.match(OracleSqlParser.COMMA); + this.state = 10993; + this.tablespace(); + this.state = 10998; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10999; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } + + this.state = 11005; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11006; + this.match(OracleSqlParser.PARTITION); + this.state = 11008; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 11007; + this.partition_name(); + } + + this.state = 11010; + this.range_values_clause(); + this.state = 11011; + this.table_partition_description(); + this.state = 11022; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11012; + this.match(OracleSqlParser.COMMA); + this.state = 11013; + this.match(OracleSqlParser.PARTITION); + this.state = 11015; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 11014; + this.partition_name(); + } + + this.state = 11017; + this.range_values_clause(); + this.state = 11018; + this.table_partition_description(); + this.state = 11024; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11025; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + list_partitions() { + let localctx = new List_partitionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1112, OracleSqlParser.RULE_list_partitions); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11027; + this.match(OracleSqlParser.PARTITION); + this.state = 11028; + this.match(OracleSqlParser.BY); + this.state = 11029; + this.match(OracleSqlParser.LIST); + this.state = 11030; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11031; + this.column_name(); + this.state = 11032; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11033; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11034; + this.match(OracleSqlParser.PARTITION); + this.state = 11036; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 11035; + this.partition_name(); + } + + this.state = 11038; + this.list_values_clause(); + this.state = 11039; + this.table_partition_description(); + this.state = 11050; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11040; + this.match(OracleSqlParser.COMMA); + this.state = 11041; + this.match(OracleSqlParser.PARTITION); + this.state = 11043; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 11042; + this.partition_name(); + } + + this.state = 11045; + this.list_values_clause(); + this.state = 11046; + this.table_partition_description(); + this.state = 11052; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11053; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hash_partitions() { + let localctx = new Hash_partitionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1114, OracleSqlParser.RULE_hash_partitions); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11055; + this.match(OracleSqlParser.PARTITION); + this.state = 11056; + this.match(OracleSqlParser.BY); + this.state = 11057; + this.match(OracleSqlParser.HASH); + this.state = 11058; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11059; + this.column_name(); + this.state = 11064; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11060; + this.match(OracleSqlParser.COMMA); + this.state = 11061; + this.column_name(); + this.state = 11066; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11067; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11070; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 11068; + this.individual_hash_partitions(); + break; + case 1348: + this.state = 11069; + this.hash_partitions_by_quantity(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + individual_hash_partitions() { + let localctx = new Individual_hash_partitionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1116, OracleSqlParser.RULE_individual_hash_partitions); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11072; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11073; + this.match(OracleSqlParser.PARTITION); + this.state = 11075; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1342,this._ctx); + if(la_===1) { + this.state = 11074; + this.partition_name(); + + } + this.state = 11078; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===237 || _la===258 || _la===744 || _la===866 || _la===1072 || _la===1135 || _la===1318 || _la===1604 || _la===2078 || _la===2265) { + this.state = 11077; + this.partitioning_storage_clause(); + } + + this.state = 11090; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11080; + this.match(OracleSqlParser.COMMA); + this.state = 11081; + this.match(OracleSqlParser.PARTITION); + this.state = 11083; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1344,this._ctx); + if(la_===1) { + this.state = 11082; + this.partition_name(); + + } + this.state = 11086; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===237 || _la===258 || _la===744 || _la===866 || _la===1072 || _la===1135 || _la===1318 || _la===1604 || _la===2078 || _la===2265) { + this.state = 11085; + this.partitioning_storage_clause(); + } + + this.state = 11092; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11093; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hash_partitions_by_quantity() { + let localctx = new Hash_partitions_by_quantityContext(this, this._ctx, this.state); + this.enterRule(localctx, 1118, OracleSqlParser.RULE_hash_partitions_by_quantity); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11095; + this.match(OracleSqlParser.PARTITIONS); + this.state = 11096; + this.hash_partition_quantity(); + this.state = 11110; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1348,this._ctx); + if(la_===1) { + this.state = 11097; + this.match(OracleSqlParser.STORE); + this.state = 11098; + this.match(OracleSqlParser.IN); + this.state = 11099; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11100; + this.tablespace(); + this.state = 11105; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11101; + this.match(OracleSqlParser.COMMA); + this.state = 11102; + this.tablespace(); + this.state = 11107; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11108; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + this.state = 11114; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1349,this._ctx); + if(la_===1) { + this.state = 11112; + this.table_compression(); + + } else if(la_===2) { + this.state = 11113; + this.key_compression(); + + } + this.state = 11130; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1351,this._ctx); + if(la_===1) { + this.state = 11116; + this.match(OracleSqlParser.OVERFLOW_); + this.state = 11117; + this.match(OracleSqlParser.STORE); + this.state = 11118; + this.match(OracleSqlParser.IN); + this.state = 11119; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11120; + this.tablespace(); + this.state = 11125; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11121; + this.match(OracleSqlParser.COMMA); + this.state = 11122; + this.tablespace(); + this.state = 11127; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11128; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hash_partition_quantity() { + let localctx = new Hash_partition_quantityContext(this, this._ctx, this.state); + this.enterRule(localctx, 1120, OracleSqlParser.RULE_hash_partition_quantity); + try { + this.enterOuterAlt(localctx, 1); + this.state = 11132; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + composite_range_partitions() { + let localctx = new Composite_range_partitionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1122, OracleSqlParser.RULE_composite_range_partitions); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11134; + this.match(OracleSqlParser.PARTITION); + this.state = 11135; + this.match(OracleSqlParser.BY); + this.state = 11136; + this.match(OracleSqlParser.RANGE); + this.state = 11137; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11138; + this.column_name(); + this.state = 11143; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11139; + this.match(OracleSqlParser.COMMA); + this.state = 11140; + this.column_name(); + this.state = 11145; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11146; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11166; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===774) { + this.state = 11147; + this.match(OracleSqlParser.INTERVAL); + this.state = 11148; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11149; + this.expression(); + this.state = 11150; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11164; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1761) { + this.state = 11151; + this.match(OracleSqlParser.STORE); + this.state = 11152; + this.match(OracleSqlParser.IN); + this.state = 11153; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11154; + this.tablespace(); + this.state = 11159; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11155; + this.match(OracleSqlParser.COMMA); + this.state = 11156; + this.tablespace(); + this.state = 11161; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11162; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } + + this.state = 11171; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1356,this._ctx); + switch(la_) { + case 1: + this.state = 11168; + this.subpartition_by_range(); + break; + + case 2: + this.state = 11169; + this.subpartition_by_list(); + break; + + case 3: + this.state = 11170; + this.subpartition_by_hash(); + break; + + } + this.state = 11173; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11174; + this.range_partition_desc(); + this.state = 11179; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11175; + this.match(OracleSqlParser.COMMA); + this.state = 11176; + this.range_partition_desc(); + this.state = 11181; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11182; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + composite_list_partitions() { + let localctx = new Composite_list_partitionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1124, OracleSqlParser.RULE_composite_list_partitions); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11184; + this.match(OracleSqlParser.PARTITION); + this.state = 11185; + this.match(OracleSqlParser.BY); + this.state = 11186; + this.match(OracleSqlParser.LIST); + this.state = 11187; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11188; + this.column_name(); + this.state = 11189; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11193; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1358,this._ctx); + switch(la_) { + case 1: + this.state = 11190; + this.subpartition_by_range(); + break; + + case 2: + this.state = 11191; + this.subpartition_by_list(); + break; + + case 3: + this.state = 11192; + this.subpartition_by_hash(); + break; + + } + this.state = 11195; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11196; + this.list_partition_desc(); + this.state = 11201; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11197; + this.match(OracleSqlParser.COMMA); + this.state = 11198; + this.list_partition_desc(); + this.state = 11203; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11204; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + composite_hash_partitions() { + let localctx = new Composite_hash_partitionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1126, OracleSqlParser.RULE_composite_hash_partitions); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11206; + this.match(OracleSqlParser.PARTITION); + this.state = 11207; + this.match(OracleSqlParser.BY); + this.state = 11208; + this.match(OracleSqlParser.HASH); + this.state = 11209; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11212; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 11210; + this.match(OracleSqlParser.COMMA); + this.state = 11211; + this.column_name(); + this.state = 11214; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2451); + this.state = 11216; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11220; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1361,this._ctx); + switch(la_) { + case 1: + this.state = 11217; + this.subpartition_by_range(); + break; + + case 2: + this.state = 11218; + this.subpartition_by_list(); + break; + + case 3: + this.state = 11219; + this.subpartition_by_hash(); + break; + + } + this.state = 11224; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 11222; + this.individual_hash_partitions(); + break; + case 1348: + this.state = 11223; + this.hash_partitions_by_quantity(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + reference_partitioning() { + let localctx = new Reference_partitioningContext(this, this._ctx, this.state); + this.enterRule(localctx, 1128, OracleSqlParser.RULE_reference_partitioning); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11226; + this.match(OracleSqlParser.PARTITION); + this.state = 11227; + this.match(OracleSqlParser.BY); + this.state = 11228; + this.match(OracleSqlParser.REFERENCE); + this.state = 11229; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11230; + this.constraint_name(); + this.state = 11231; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11243; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 11232; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11233; + this.reference_partition_desc(); + this.state = 11238; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11234; + this.match(OracleSqlParser.COMMA); + this.state = 11235; + this.reference_partition_desc(); + this.state = 11240; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11241; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + reference_partition_desc() { + let localctx = new Reference_partition_descContext(this, this._ctx, this.state); + this.enterRule(localctx, 1130, OracleSqlParser.RULE_reference_partition_desc); + try { + this.enterOuterAlt(localctx, 1); + this.state = 11245; + this.match(OracleSqlParser.PARTITION); + this.state = 11247; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1365,this._ctx); + if(la_===1) { + this.state = 11246; + this.partition_name(); + + } + this.state = 11249; + this.table_partition_description(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + system_partitioning() { + let localctx = new System_partitioningContext(this, this._ctx, this.state); + this.enterRule(localctx, 1132, OracleSqlParser.RULE_system_partitioning); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11251; + this.match(OracleSqlParser.PARTITION); + this.state = 11252; + this.match(OracleSqlParser.BY); + this.state = 11253; + this.match(OracleSqlParser.SYSTEM); + this.state = 11264; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1367,this._ctx); + if(la_===1) { + this.state = 11254; + this.match(OracleSqlParser.PARTITIONS); + this.state = 11255; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + + } else if(la_===2) { + this.state = 11256; + this.reference_partition_desc(); + this.state = 11261; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11257; + this.match(OracleSqlParser.COMMA); + this.state = 11258; + this.reference_partition_desc(); + this.state = 11263; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + range_partition_desc() { + let localctx = new Range_partition_descContext(this, this._ctx, this.state); + this.enterRule(localctx, 1134, OracleSqlParser.RULE_range_partition_desc); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11266; + this.match(OracleSqlParser.PARTITION); + this.state = 11268; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1368,this._ctx); + if(la_===1) { + this.state = 11267; + this.partition_name(); + + } + this.state = 11271; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2255) { + this.state = 11270; + this.range_values_clause(); + } + + this.state = 11273; + this.table_partition_description(); + this.state = 11306; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1772 || _la===2445) { + this.state = 11304; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 11274; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11299; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1373,this._ctx); + switch(la_) { + case 1: + this.state = 11275; + this.range_subpartition_desc(); + this.state = 11280; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11276; + this.match(OracleSqlParser.COMMA); + this.state = 11277; + this.range_subpartition_desc(); + this.state = 11282; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.state = 11283; + this.list_subpartition_desc(); + this.state = 11288; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11284; + this.match(OracleSqlParser.COMMA); + this.state = 11285; + this.list_subpartition_desc(); + this.state = 11290; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 3: + this.state = 11291; + this.individual_hash_subparts(); + this.state = 11296; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11292; + this.match(OracleSqlParser.COMMA); + this.state = 11293; + this.individual_hash_subparts(); + this.state = 11298; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + this.state = 11301; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1772: + this.state = 11303; + this.hash_subparts_by_quantity(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + list_partition_desc() { + let localctx = new List_partition_descContext(this, this._ctx, this.state); + this.enterRule(localctx, 1136, OracleSqlParser.RULE_list_partition_desc); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11308; + this.match(OracleSqlParser.PARTITION); + this.state = 11310; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1376,this._ctx); + if(la_===1) { + this.state = 11309; + this.partition_name(); + + } + this.state = 11313; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2255) { + this.state = 11312; + this.list_values_clause(); + } + + this.state = 11315; + this.table_partition_description(); + this.state = 11348; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1772 || _la===2445) { + this.state = 11346; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 11316; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11341; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1381,this._ctx); + switch(la_) { + case 1: + this.state = 11317; + this.range_subpartition_desc(); + this.state = 11322; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11318; + this.match(OracleSqlParser.COMMA); + this.state = 11319; + this.range_subpartition_desc(); + this.state = 11324; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.state = 11325; + this.list_subpartition_desc(); + this.state = 11330; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11326; + this.match(OracleSqlParser.COMMA); + this.state = 11327; + this.list_subpartition_desc(); + this.state = 11332; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 3: + this.state = 11333; + this.individual_hash_subparts(); + this.state = 11338; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11334; + this.match(OracleSqlParser.COMMA); + this.state = 11335; + this.individual_hash_subparts(); + this.state = 11340; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + this.state = 11343; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1772: + this.state = 11345; + this.hash_subparts_by_quantity(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subpartition_template() { + let localctx = new Subpartition_templateContext(this, this._ctx, this.state); + this.enterRule(localctx, 1138, OracleSqlParser.RULE_subpartition_template); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11350; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 11351; + this.match(OracleSqlParser.TEMPLATE); + + this.state = 11382; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 11352; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11377; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1387,this._ctx); + switch(la_) { + case 1: + this.state = 11353; + this.range_subpartition_desc(); + this.state = 11358; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11354; + this.match(OracleSqlParser.COMMA); + this.state = 11355; + this.range_subpartition_desc(); + this.state = 11360; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.state = 11361; + this.list_subpartition_desc(); + this.state = 11366; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11362; + this.match(OracleSqlParser.COMMA); + this.state = 11363; + this.list_subpartition_desc(); + this.state = 11368; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 3: + this.state = 11369; + this.individual_hash_subparts(); + this.state = 11374; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11370; + this.match(OracleSqlParser.COMMA); + this.state = 11371; + this.individual_hash_subparts(); + this.state = 11376; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + this.state = 11379; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2439: + this.state = 11381; + this.hash_subpartition_quantity(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hash_subpartition_quantity() { + let localctx = new Hash_subpartition_quantityContext(this, this._ctx, this.state); + this.enterRule(localctx, 1140, OracleSqlParser.RULE_hash_subpartition_quantity); + try { + this.enterOuterAlt(localctx, 1); + this.state = 11384; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subpartition_by_range() { + let localctx = new Subpartition_by_rangeContext(this, this._ctx, this.state); + this.enterRule(localctx, 1142, OracleSqlParser.RULE_subpartition_by_range); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11386; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 11387; + this.match(OracleSqlParser.BY); + this.state = 11388; + this.match(OracleSqlParser.RANGE); + this.state = 11389; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11390; + this.column_name(); + this.state = 11395; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11391; + this.match(OracleSqlParser.COMMA); + this.state = 11392; + this.column_name(); + this.state = 11397; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11398; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11400; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1773) { + this.state = 11399; + this.subpartition_template(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subpartition_by_list() { + let localctx = new Subpartition_by_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 1144, OracleSqlParser.RULE_subpartition_by_list); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11402; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 11403; + this.match(OracleSqlParser.BY); + this.state = 11404; + this.match(OracleSqlParser.LIST); + this.state = 11405; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11406; + this.column_name(); + this.state = 11407; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11409; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1773) { + this.state = 11408; + this.subpartition_template(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subpartition_by_hash() { + let localctx = new Subpartition_by_hashContext(this, this._ctx, this.state); + this.enterRule(localctx, 1146, OracleSqlParser.RULE_subpartition_by_hash); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11411; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 11412; + this.match(OracleSqlParser.BY); + this.state = 11413; + this.match(OracleSqlParser.HASH); + this.state = 11414; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11415; + this.column_name(); + this.state = 11420; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11416; + this.match(OracleSqlParser.COMMA); + this.state = 11417; + this.column_name(); + this.state = 11422; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11423; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11442; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 1772: + this.state = 11424; + this.match(OracleSqlParser.SUBPARTITIONS); + this.state = 11425; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 11439; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1761) { + this.state = 11426; + this.match(OracleSqlParser.STORE); + this.state = 11427; + this.match(OracleSqlParser.IN); + this.state = 11428; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11429; + this.tablespace(); + this.state = 11434; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11430; + this.match(OracleSqlParser.COMMA); + this.state = 11431; + this.tablespace(); + this.state = 11436; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11437; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + case 1773: + this.state = 11441; + this.subpartition_template(); + break; + case 1348: + case 2445: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subpartition_name() { + let localctx = new Subpartition_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1148, OracleSqlParser.RULE_subpartition_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 11444; + this.partition_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + range_subpartition_desc() { + let localctx = new Range_subpartition_descContext(this, this._ctx, this.state); + this.enterRule(localctx, 1150, OracleSqlParser.RULE_range_subpartition_desc); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11446; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 11448; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 11447; + this.subpartition_name(); + } + + this.state = 11450; + this.range_values_clause(); + this.state = 11452; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===237 || _la===258 || _la===744 || _la===866 || _la===1072 || _la===1135 || _la===1318 || _la===1604 || _la===2078 || _la===2265) { + this.state = 11451; + this.partitioning_storage_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + list_subpartition_desc() { + let localctx = new List_subpartition_descContext(this, this._ctx, this.state); + this.enterRule(localctx, 1152, OracleSqlParser.RULE_list_subpartition_desc); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11454; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 11456; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 11455; + this.subpartition_name(); + } + + this.state = 11458; + this.list_values_clause(); + this.state = 11460; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===237 || _la===258 || _la===744 || _la===866 || _la===1072 || _la===1135 || _la===1318 || _la===1604 || _la===2078 || _la===2265) { + this.state = 11459; + this.partitioning_storage_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + individual_hash_subparts() { + let localctx = new Individual_hash_subpartsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1154, OracleSqlParser.RULE_individual_hash_subparts); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11462; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 11464; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1400,this._ctx); + if(la_===1) { + this.state = 11463; + this.subpartition_name(); + + } + this.state = 11467; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===237 || _la===258 || _la===744 || _la===866 || _la===1072 || _la===1135 || _la===1318 || _la===1604 || _la===2078 || _la===2265) { + this.state = 11466; + this.partitioning_storage_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hash_subparts_by_quantity() { + let localctx = new Hash_subparts_by_quantityContext(this, this._ctx, this.state); + this.enterRule(localctx, 1156, OracleSqlParser.RULE_hash_subparts_by_quantity); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11469; + this.match(OracleSqlParser.SUBPARTITIONS); + this.state = 11470; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 11484; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1761) { + this.state = 11471; + this.match(OracleSqlParser.STORE); + this.state = 11472; + this.match(OracleSqlParser.IN); + this.state = 11473; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11474; + this.tablespace(); + this.state = 11479; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11475; + this.match(OracleSqlParser.COMMA); + this.state = 11476; + this.tablespace(); + this.state = 11481; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11482; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + range_values_clause() { + let localctx = new Range_values_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1158, OracleSqlParser.RULE_range_values_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 11486; + this.match(OracleSqlParser.VALUES); + this.state = 11487; + this.match(OracleSqlParser.LESS); + this.state = 11488; + this.match(OracleSqlParser.THAN); + this.state = 11489; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11490; + this.range_values_list(); + this.state = 11491; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + range_values_list() { + let localctx = new Range_values_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 1160, OracleSqlParser.RULE_range_values_list); + var _la = 0; + try { + this.state = 11511; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 204: + case 930: + case 2399: + case 2409: + case 2414: + case 2415: + case 2416: + case 2423: + case 2439: + case 2440: + case 2441: + case 2450: + this.enterOuterAlt(localctx, 1); + this.state = 11493; + this.literal(); + this.state = 11498; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11494; + this.match(OracleSqlParser.COMMA); + this.state = 11495; + this.literal(); + this.state = 11500; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 2106: + this.enterOuterAlt(localctx, 2); + this.state = 11501; + this.match(OracleSqlParser.TIMESTAMP); + this.state = 11502; + this.literal(); + this.state = 11508; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11503; + this.match(OracleSqlParser.COMMA); + this.state = 11504; + this.match(OracleSqlParser.TIMESTAMP); + this.state = 11505; + this.literal(); + this.state = 11510; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + list_values_clause() { + let localctx = new List_values_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1162, OracleSqlParser.RULE_list_values_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11513; + this.match(OracleSqlParser.VALUES); + this.state = 11514; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11534; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 204: + case 930: + case 2399: + case 2409: + case 2414: + case 2415: + case 2416: + case 2423: + case 2439: + case 2440: + case 2441: + case 2450: + this.state = 11515; + this.literal(); + this.state = 11520; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11516; + this.match(OracleSqlParser.COMMA); + this.state = 11517; + this.literal(); + this.state = 11522; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 2106: + this.state = 11523; + this.match(OracleSqlParser.TIMESTAMP); + this.state = 11524; + this.literal(); + this.state = 11530; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11525; + this.match(OracleSqlParser.COMMA); + this.state = 11526; + this.match(OracleSqlParser.TIMESTAMP); + this.state = 11527; + this.literal(); + this.state = 11532; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 387: + this.state = 11533; + this.match(OracleSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 11536; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_partition_description() { + let localctx = new Table_partition_descriptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1164, OracleSqlParser.RULE_table_partition_description); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11539; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1410,this._ctx); + if(la_===1) { + this.state = 11538; + _la = this._input.LA(1); + if(!(_la===558 || _la===776)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 11542; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1411,this._ctx); + if(la_===1) { + this.state = 11541; + this.deferred_segment_creation(); + + } + this.state = 11545; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1412,this._ctx); + if(la_===1) { + this.state = 11544; + this.read_only_clause(); + + } + this.state = 11548; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1413,this._ctx); + if(la_===1) { + this.state = 11547; + this.indexing_clause(); + + } + this.state = 11551; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1414,this._ctx); + if(la_===1) { + this.state = 11550; + this.segment_attributes_clause(); + + } + this.state = 11555; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1415,this._ctx); + if(la_===1) { + this.state = 11553; + this.table_compression(); + + } else if(la_===2) { + this.state = 11554; + this.key_compression(); + + } + this.state = 11558; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1416,this._ctx); + if(la_===1) { + this.state = 11557; + this.inmemory_table_clause(); + + } + this.state = 11561; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1417,this._ctx); + if(la_===1) { + this.state = 11560; + this.ilm_clause(); + + } + this.state = 11567; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1318) { + this.state = 11563; + this.match(OracleSqlParser.OVERFLOW_); + this.state = 11565; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1418,this._ctx); + if(la_===1) { + this.state = 11564; + this.segment_attributes_clause(); + + } + } + + this.state = 11574; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1421,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 11572; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 866: + this.state = 11569; + this.lob_storage_clause(); + break; + case 2265: + this.state = 11570; + this.varray_col_properties(); + break; + case 1011: + this.state = 11571; + this.nested_table_col_properties(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 11576; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1421,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + partitioning_storage_clause() { + let localctx = new Partitioning_storage_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1166, OracleSqlParser.RULE_partitioning_storage_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11598; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 11598; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1424,this._ctx); + switch(la_) { + case 1: + this.state = 11577; + this.match(OracleSqlParser.TABLESPACE); + this.state = 11578; + this.tablespace(); + break; + + case 2: + this.state = 11579; + this.match(OracleSqlParser.OVERFLOW_); + this.state = 11582; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1422,this._ctx); + if(la_===1) { + this.state = 11580; + this.match(OracleSqlParser.TABLESPACE); + this.state = 11581; + this.tablespace(); + + } + break; + + case 3: + this.state = 11584; + this.table_compression(); + break; + + case 4: + this.state = 11585; + this.key_compression(); + break; + + case 5: + this.state = 11586; + this.inmemory_table_clause(); + break; + + case 6: + this.state = 11587; + this.lob_partitioning_storage(); + break; + + case 7: + this.state = 11588; + this.match(OracleSqlParser.VARRAY); + this.state = 11589; + this.varray_item(); + this.state = 11590; + this.match(OracleSqlParser.STORE); + this.state = 11591; + this.match(OracleSqlParser.AS); + this.state = 11593; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===107 || _la===1638) { + this.state = 11592; + _la = this._input.LA(1); + if(!(_la===107 || _la===1638)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 11595; + this.match(OracleSqlParser.LOB); + this.state = 11596; + this.lob_segname(); + break; + + } + this.state = 11600; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===237 || _la===258 || _la===744 || _la===866 || _la===1072 || _la===1135 || _la===1318 || _la===1604 || _la===2078 || _la===2265); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lob_partitioning_storage() { + let localctx = new Lob_partitioning_storageContext(this, this._ctx, this.state); + this.enterRule(localctx, 1168, OracleSqlParser.RULE_lob_partitioning_storage); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11602; + this.match(OracleSqlParser.LOB); + this.state = 11603; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11604; + this.lob_item(); + this.state = 11605; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11606; + this.match(OracleSqlParser.STORE); + this.state = 11607; + this.match(OracleSqlParser.AS); + this.state = 11609; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1426,this._ctx); + if(la_===1) { + this.state = 11608; + _la = this._input.LA(1); + if(!(_la===107 || _la===1638)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 11624; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2478: + this.state = 11611; + this.lob_segname(); + this.state = 11617; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 11612; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11613; + this.match(OracleSqlParser.TABLESPACE); + this.state = 11614; + this.tablespace(); + this.state = 11615; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + case 2445: + this.state = 11619; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11620; + this.match(OracleSqlParser.TABLESPACE); + this.state = 11621; + this.tablespace(); + this.state = 11622; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + size_clause() { + let localctx = new Size_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1170, OracleSqlParser.RULE_size_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11626; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 11628; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===478 || _la===633 || _la===810 || _la===899 || _la===1326 || _la===2075) { + this.state = 11627; + _la = this._input.LA(1); + if(!(_la===478 || _la===633 || _la===810 || _la===899 || _la===1326 || _la===2075)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_compression() { + let localctx = new Table_compressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1172, OracleSqlParser.RULE_table_compression); + var _la = 0; + try { + this.state = 11671; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 258: + this.enterOuterAlt(localctx, 1); + this.state = 11630; + this.match(OracleSqlParser.COMPRESS); + this.state = 11644; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1432,this._ctx); + if(la_===1) { + this.state = 11631; + this.match(OracleSqlParser.BASIC); + + } else if(la_===2) { + this.state = 11632; + this.match(OracleSqlParser.FOR); + this.state = 11642; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1251: + this.state = 11633; + this.match(OracleSqlParser.OLTP); + break; + case 64: + case 1482: + this.state = 11634; + _la = this._input.LA(1); + if(!(_la===64 || _la===1482)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 11636; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1430,this._ctx); + if(la_===1) { + this.state = 11635; + _la = this._input.LA(1); + if(!(_la===673 || _la===895)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + case 38: + this.state = 11638; + this.match(OracleSqlParser.ALL); + this.state = 11639; + this.match(OracleSqlParser.OPERATIONS); + break; + case 423: + this.state = 11640; + this.match(OracleSqlParser.DIRECT_LOAD); + this.state = 11641; + this.match(OracleSqlParser.OPERATIONS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + break; + case 1604: + this.enterOuterAlt(localctx, 2); + this.state = 11646; + this.match(OracleSqlParser.ROW); + this.state = 11647; + this.match(OracleSqlParser.STORE); + this.state = 11648; + this.match(OracleSqlParser.COMPRESS); + this.state = 11650; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1433,this._ctx); + if(la_===1) { + this.state = 11649; + _la = this._input.LA(1); + if(!(_la===29 || _la===106)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + case 237: + this.enterOuterAlt(localctx, 3); + this.state = 11652; + this.match(OracleSqlParser.COLUMN); + this.state = 11653; + this.match(OracleSqlParser.STORE); + this.state = 11654; + this.match(OracleSqlParser.COMPRESS); + this.state = 11660; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1435,this._ctx); + if(la_===1) { + this.state = 11655; + this.match(OracleSqlParser.FOR); + this.state = 11656; + _la = this._input.LA(1); + if(!(_la===64 || _la===1482)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 11658; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1434,this._ctx); + if(la_===1) { + this.state = 11657; + _la = this._input.LA(1); + if(!(_la===673 || _la===895)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + + } + this.state = 11668; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1437,this._ctx); + if(la_===1) { + this.state = 11663; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135) { + this.state = 11662; + this.match(OracleSqlParser.NO); + } + + this.state = 11665; + this.match(OracleSqlParser.ROW); + this.state = 11666; + this.match(OracleSqlParser.LEVEL); + this.state = 11667; + this.match(OracleSqlParser.LOCKING); + + } + break; + case 1072: + this.enterOuterAlt(localctx, 4); + this.state = 11670; + this.match(OracleSqlParser.NOCOMPRESS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + inmemory_table_clause() { + let localctx = new Inmemory_table_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1174, OracleSqlParser.RULE_inmemory_table_clause); + try { + this.state = 11692; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1443,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 11674; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 11673; + this.inmemory_column_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 11676; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1439, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 11684; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 744: + this.state = 11678; + this.match(OracleSqlParser.INMEMORY); + this.state = 11680; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1440,this._ctx); + if(la_===1) { + this.state = 11679; + this.inmemory_attributes(); + + } + break; + case 1135: + this.state = 11682; + this.match(OracleSqlParser.NO); + this.state = 11683; + this.match(OracleSqlParser.INMEMORY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 11689; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1442,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 11686; + this.inmemory_column_clause(); + } + this.state = 11691; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1442,this._ctx); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + inmemory_attributes() { + let localctx = new Inmemory_attributesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1176, OracleSqlParser.RULE_inmemory_attributes); + try { + this.enterOuterAlt(localctx, 1); + this.state = 11698; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 11698; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1444,this._ctx); + switch(la_) { + case 1: + this.state = 11694; + this.inmemory_memcompress(); + break; + + case 2: + this.state = 11695; + this.inmemory_priority(); + break; + + case 3: + this.state = 11696; + this.inmemory_distribute(); + break; + + case 4: + this.state = 11697; + this.inmemory_duplicate(); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 11700; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1445, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + inmemory_memcompress() { + let localctx = new Inmemory_memcompressContext(this, this._ctx, this.state); + this.enterRule(localctx, 1178, OracleSqlParser.RULE_inmemory_memcompress); + var _la = 0; + try { + this.state = 11713; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 939: + this.enterOuterAlt(localctx, 1); + this.state = 11702; + this.match(OracleSqlParser.MEMCOMPRESS); + this.state = 11703; + this.match(OracleSqlParser.FOR); + this.state = 11709; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 447: + this.state = 11704; + this.match(OracleSqlParser.DML); + break; + case 176: + case 1482: + this.state = 11705; + _la = this._input.LA(1); + if(!(_la===176 || _la===1482)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 11707; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===673 || _la===895) { + this.state = 11706; + _la = this._input.LA(1); + if(!(_la===673 || _la===895)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 1135: + this.enterOuterAlt(localctx, 2); + this.state = 11711; + this.match(OracleSqlParser.NO); + this.state = 11712; + this.match(OracleSqlParser.MEMCOMPRESS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + inmemory_priority() { + let localctx = new Inmemory_priorityContext(this, this._ctx, this.state); + this.enterRule(localctx, 1180, OracleSqlParser.RULE_inmemory_priority); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11715; + this.match(OracleSqlParser.PRIORITY); + this.state = 11716; + _la = this._input.LA(1); + if(!(_la===324 || _la===673 || _la===895 || _la===933 || _la===1131)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + inmemory_distribute() { + let localctx = new Inmemory_distributeContext(this, this._ctx, this.state); + this.enterRule(localctx, 1182, OracleSqlParser.RULE_inmemory_distribute); + try { + this.enterOuterAlt(localctx, 1); + this.state = 11718; + this.match(OracleSqlParser.DISTRIBUTE); + this.state = 11727; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 91: + this.state = 11719; + this.match(OracleSqlParser.AUTO); + break; + case 160: + this.state = 11720; + this.match(OracleSqlParser.BY); + this.state = 11725; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1599: + this.state = 11721; + this.match(OracleSqlParser.ROWID); + this.state = 11722; + this.match(OracleSqlParser.RANGE); + break; + case 1346: + this.state = 11723; + this.match(OracleSqlParser.PARTITION); + break; + case 1773: + this.state = 11724; + this.match(OracleSqlParser.SUBPARTITION); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case -1: + case 21: + case 33: + case 39: + case 40: + case 51: + case 69: + case 146: + case 158: + case 166: + case 220: + case 224: + case 228: + case 237: + case 258: + case 260: + case 319: + case 375: + case 387: + case 427: + case 433: + case 446: + case 467: + case 473: + case 497: + case 504: + case 556: + case 558: + case 591: + case 603: + case 614: + case 618: + case 645: + case 695: + case 703: + case 716: + case 741: + case 744: + case 778: + case 866: + case 882: + case 909: + case 929: + case 939: + case 951: + case 952: + case 981: + case 1011: + case 1018: + case 1064: + case 1072: + case 1117: + case 1118: + case 1121: + case 1125: + case 1135: + case 1146: + case 1178: + case 1241: + case 1254: + case 1257: + case 1304: + case 1318: + case 1331: + case 1335: + case 1346: + case 1367: + case 1369: + case 1370: + case 1451: + case 1503: + case 1509: + case 1512: + case 1529: + case 1547: + case 1556: + case 1577: + case 1597: + case 1604: + case 1643: + case 1682: + case 1760: + case 1772: + case 1788: + case 2078: + case 2094: + case 2201: + case 2205: + case 2209: + case 2214: + case 2244: + case 2265: + case 2349: + case 2406: + case 2445: + case 2446: + case 2451: + case 2452: + case 2467: + break; + default: + break; + } + this.state = 11737; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1452,this._ctx); + if(la_===1) { + this.state = 11729; + this.match(OracleSqlParser.FOR); + this.state = 11730; + this.match(OracleSqlParser.SERVICE); + this.state = 11735; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1451,this._ctx); + switch(la_) { + case 1: + this.state = 11731; + this.match(OracleSqlParser.DEFAULT); + break; + + case 2: + this.state = 11732; + this.match(OracleSqlParser.ALL); + break; + + case 3: + this.state = 11733; + this.identifier(); + break; + + case 4: + this.state = 11734; + this.match(OracleSqlParser.NONE); + break; + + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + inmemory_duplicate() { + let localctx = new Inmemory_duplicateContext(this, this._ctx, this.state); + this.enterRule(localctx, 1184, OracleSqlParser.RULE_inmemory_duplicate); + var _la = 0; + try { + this.state = 11745; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 473: + this.enterOuterAlt(localctx, 1); + this.state = 11739; + this.match(OracleSqlParser.DUPLICATE); + this.state = 11741; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===38) { + this.state = 11740; + this.match(OracleSqlParser.ALL); + } + + break; + case 1135: + this.enterOuterAlt(localctx, 2); + this.state = 11743; + this.match(OracleSqlParser.NO); + this.state = 11744; + this.match(OracleSqlParser.DUPLICATE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + inmemory_column_clause() { + let localctx = new Inmemory_column_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1186, OracleSqlParser.RULE_inmemory_column_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11753; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 744: + this.state = 11747; + this.match(OracleSqlParser.INMEMORY); + this.state = 11749; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===939 || _la===1135) { + this.state = 11748; + this.inmemory_memcompress(); + } + + break; + case 1135: + this.state = 11751; + this.match(OracleSqlParser.NO); + this.state = 11752; + this.match(OracleSqlParser.INMEMORY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 11755; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11756; + this.column_list(); + this.state = 11757; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + physical_attributes_clause() { + let localctx = new Physical_attributes_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1188, OracleSqlParser.RULE_physical_attributes_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 11769; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 11769; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1367: + this.state = 11759; + this.match(OracleSqlParser.PCTFREE); + this.state = 11760; + localctx.pctfree = this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 1370: + this.state = 11761; + this.match(OracleSqlParser.PCTUSED); + this.state = 11762; + localctx.pctused = this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 741: + this.state = 11763; + this.match(OracleSqlParser.INITRANS); + this.state = 11764; + localctx.inittrans = this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 929: + this.state = 11765; + this.match(OracleSqlParser.MAXTRANS); + this.state = 11766; + localctx.maxtrans = this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 1760: + this.state = 11767; + this.storage_clause(); + break; + case 260: + this.state = 11768; + this.compute_clauses(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 11771; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1458, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + storage_clause() { + let localctx = new Storage_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1190, OracleSqlParser.RULE_storage_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11773; + this.match(OracleSqlParser.STORAGE); + this.state = 11774; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11802; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 11802; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 738: + this.state = 11775; + this.match(OracleSqlParser.INITIAL); + this.state = 11776; + localctx.initial_size = this.size_clause(); + break; + case 1023: + this.state = 11777; + this.match(OracleSqlParser.NEXT); + this.state = 11778; + localctx.next_size = this.size_clause(); + break; + case 950: + this.state = 11779; + this.match(OracleSqlParser.MINEXTENTS); + this.state = 11780; + localctx.minextents = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===2183 || _la===2439)) { + localctx.minextents = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 921: + this.state = 11781; + this.match(OracleSqlParser.MAXEXTENTS); + this.state = 11782; + localctx.minextents = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===2183 || _la===2439)) { + localctx.minextents = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 1368: + this.state = 11783; + this.match(OracleSqlParser.PCTINCREASE); + this.state = 11784; + localctx.pctincrease = this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 623: + this.state = 11785; + this.match(OracleSqlParser.FREELISTS); + this.state = 11786; + localctx.freelists = this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 622: + this.state = 11787; + this.match(OracleSqlParser.FREELIST); + this.state = 11788; + this.match(OracleSqlParser.GROUPS); + this.state = 11789; + localctx.freelist_groups = this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 1266: + this.state = 11790; + this.match(OracleSqlParser.OPTIMAL); + this.state = 11793; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + this.state = 11791; + this.size_clause(); + break; + case 1226: + this.state = 11792; + this.match(OracleSqlParser.NULL_); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 157: + this.state = 11795; + this.match(OracleSqlParser.BUFFER_POOL); + this.state = 11796; + _la = this._input.LA(1); + if(!(_la===387 || _la===812 || _la===1517)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 604: + this.state = 11797; + this.match(OracleSqlParser.FLASH_CACHE); + this.state = 11798; + _la = this._input.LA(1); + if(!(_la===387 || _la===812 || _la===1131)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 186: + this.state = 11799; + this.match(OracleSqlParser.CELL_FLASH_CACHE); + this.state = 11800; + _la = this._input.LA(1); + if(!(_la===387 || _la===812 || _la===1131)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 503: + this.state = 11801; + this.match(OracleSqlParser.ENCRYPT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 11804; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===157 || _la===186 || _la===503 || ((((_la - 604)) & ~0x1f) === 0 && ((1 << (_la - 604)) & 786433) !== 0) || _la===738 || _la===921 || _la===950 || _la===1023 || _la===1266 || _la===1368); + this.state = 11806; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + deferred_segment_creation() { + let localctx = new Deferred_segment_creationContext(this, this._ctx, this.state); + this.enterRule(localctx, 1192, OracleSqlParser.RULE_deferred_segment_creation); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11808; + this.match(OracleSqlParser.SEGMENT); + this.state = 11809; + this.match(OracleSqlParser.CREATION); + this.state = 11810; + _la = this._input.LA(1); + if(!(_la===393 || _la===696)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + segment_attributes_clause() { + let localctx = new Segment_attributes_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1194, OracleSqlParser.RULE_segment_attributes_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 11823; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 11823; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 260: + case 741: + case 929: + case 1367: + case 1370: + case 1760: + this.state = 11812; + this.physical_attributes_clause(); + break; + case 2078: + this.state = 11813; + this.match(OracleSqlParser.TABLESPACE); + this.state = 11819; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1463,this._ctx); + switch(la_) { + case 1: + this.state = 11814; + localctx.tablespace_name = this.id_expression(); + break; + + case 2: + this.state = 11816; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1462,this._ctx); + if(la_===1) { + this.state = 11815; + this.match(OracleSqlParser.SET); + + } + this.state = 11818; + this.identifier(); + break; + + } + break; + case 237: + case 258: + case 1072: + case 1604: + this.state = 11821; + this.table_compression(); + break; + case 591: + case 882: + case 1117: + this.state = 11822; + this.logging_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 11825; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1465, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + physical_properties() { + let localctx = new Physical_propertiesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1196, OracleSqlParser.RULE_physical_properties); + var _la = 0; + try { + this.state = 11870; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1472,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 11827; + this.deferred_segment_creation(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 11828; + this.segment_attributes_clause(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 11829; + this.table_compression(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 11830; + this.inmemory_table_clause(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 11831; + this.ilm_clause(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 11832; + this.match(OracleSqlParser.ORGANIZATION); + this.state = 11847; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 663: + this.state = 11833; + this.match(OracleSqlParser.HEAP); + this.state = 11835; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1466,this._ctx); + if(la_===1) { + this.state = 11834; + this.segment_attributes_clause(); + + } + this.state = 11837; + this.heap_org_table_clause(); + break; + case 715: + this.state = 11838; + this.match(OracleSqlParser.INDEX); + this.state = 11840; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1467,this._ctx); + if(la_===1) { + this.state = 11839; + this.segment_attributes_clause(); + + } + this.state = 11843; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1468,this._ctx); + if(la_===1) { + this.state = 11842; + this.index_org_table_clause(); + + } + break; + case 558: + this.state = 11845; + this.match(OracleSqlParser.EXTERNAL); + this.state = 11846; + this.external_table_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 11849; + this.match(OracleSqlParser.EXTERNAL); + this.state = 11850; + this.match(OracleSqlParser.PARTITION); + this.state = 11851; + this.match(OracleSqlParser.ATTRIBUTES); + this.state = 11852; + this.external_table_clause(); + this.state = 11855; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1547) { + this.state = 11853; + this.match(OracleSqlParser.REJECT); + this.state = 11854; + this.match(OracleSqlParser.LIMIT); + } + + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 11857; + this.match(OracleSqlParser.CLUSTER); + this.state = 11858; + this.cluster_name(); + this.state = 11859; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11860; + this.column_name(); + this.state = 11865; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 11861; + this.match(OracleSqlParser.COMMA); + this.state = 11862; + this.column_name(); + this.state = 11867; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 11868; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + ilm_clause() { + let localctx = new Ilm_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1198, OracleSqlParser.RULE_ilm_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11872; + this.match(OracleSqlParser.ILM); + this.state = 11882; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.state = 11873; + this.match(OracleSqlParser.ADD); + this.state = 11874; + this.match(OracleSqlParser.POLICY); + this.state = 11875; + this.ilm_policy_clause(); + break; + case 401: + case 427: + case 497: + this.state = 11876; + _la = this._input.LA(1); + if(!(_la===401 || _la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 11877; + this.match(OracleSqlParser.POLICY); + this.state = 11878; + this.ilm_policy_clause(); + break; + case 400: + this.state = 11879; + this.match(OracleSqlParser.DELETE_ALL); + break; + case 496: + this.state = 11880; + this.match(OracleSqlParser.ENABLE_ALL); + break; + case 426: + this.state = 11881; + this.match(OracleSqlParser.DISABLE_ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + ilm_policy_clause() { + let localctx = new Ilm_policy_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1200, OracleSqlParser.RULE_ilm_policy_clause); + try { + this.state = 11887; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 237: + case 258: + case 1072: + case 1604: + this.enterOuterAlt(localctx, 1); + this.state = 11884; + this.ilm_compression_policy(); + break; + case 2102: + this.enterOuterAlt(localctx, 2); + this.state = 11885; + this.ilm_tiering_policy(); + break; + case 978: + case 1135: + case 1669: + this.enterOuterAlt(localctx, 3); + this.state = 11886; + this.ilm_inmemory_policy(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + ilm_compression_policy() { + let localctx = new Ilm_compression_policyContext(this, this._ctx, this.state); + this.enterRule(localctx, 1202, OracleSqlParser.RULE_ilm_compression_policy); + var _la = 0; + try { + this.state = 11908; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1476,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 11889; + this.table_compression(); + this.state = 11890; + this.segment_group(); + this.state = 11891; + this.ilm_after_on(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 11893; + _la = this._input.LA(1); + if(!(_la===237 || _la===1604)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 11894; + this.match(OracleSqlParser.STORE); + this.state = 11895; + this.match(OracleSqlParser.COMPRESS); + this.state = 11899; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 29: + this.state = 11896; + this.match(OracleSqlParser.ADVANCED); + break; + case 618: + this.state = 11897; + this.match(OracleSqlParser.FOR); + this.state = 11898; + this.match(OracleSqlParser.QUERY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 11901; + this.match(OracleSqlParser.ROW); + this.state = 11902; + this.match(OracleSqlParser.AFTER); + this.state = 11903; + this.ilm_time_period(); + this.state = 11904; + this.match(OracleSqlParser.OF); + this.state = 11905; + this.match(OracleSqlParser.NO); + this.state = 11906; + this.match(OracleSqlParser.MODIFICATION); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + ilm_tiering_policy() { + let localctx = new Ilm_tiering_policyContext(this, this._ctx, this.state); + this.enterRule(localctx, 1204, OracleSqlParser.RULE_ilm_tiering_policy); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11910; + this.match(OracleSqlParser.TIER); + this.state = 11911; + this.match(OracleSqlParser.TO); + this.state = 11912; + this.tablespace(); + this.state = 11926; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1480,this._ctx); + switch(la_) { + case 1: + this.state = 11914; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1477,this._ctx); + if(la_===1) { + this.state = 11913; + this.segment_group(); + + } + this.state = 11918; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1478,this._ctx); + if(la_===1) { + this.state = 11916; + this.match(OracleSqlParser.ON); + this.state = 11917; + this.function_name(); + + } + break; + + case 2: + this.state = 11920; + this.match(OracleSqlParser.READ); + this.state = 11921; + this.match(OracleSqlParser.ONLY); + this.state = 11923; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===647 || _la===1643) { + this.state = 11922; + this.segment_group(); + } + + this.state = 11925; + this.ilm_after_on(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + ilm_after_on() { + let localctx = new Ilm_after_onContext(this, this._ctx, this.state); + this.enterRule(localctx, 1206, OracleSqlParser.RULE_ilm_after_on); + var _la = 0; + try { + this.state = 11938; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 33: + this.enterOuterAlt(localctx, 1); + this.state = 11928; + this.match(OracleSqlParser.AFTER); + this.state = 11929; + this.ilm_time_period(); + this.state = 11930; + this.match(OracleSqlParser.OF); + this.state = 11934; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1135: + this.state = 11931; + this.match(OracleSqlParser.NO); + this.state = 11932; + _la = this._input.LA(1); + if(!(_la===4 || _la===976)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 322: + this.state = 11933; + this.match(OracleSqlParser.CREATION); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 1257: + this.enterOuterAlt(localctx, 2); + this.state = 11936; + this.match(OracleSqlParser.ON); + this.state = 11937; + this.function_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + segment_group() { + let localctx = new Segment_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 1208, OracleSqlParser.RULE_segment_group); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11940; + _la = this._input.LA(1); + if(!(_la===647 || _la===1643)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + ilm_inmemory_policy() { + let localctx = new Ilm_inmemory_policyContext(this, this._ctx, this.state); + this.enterRule(localctx, 1210, OracleSqlParser.RULE_ilm_inmemory_policy); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11952; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1669: + this.state = 11942; + this.match(OracleSqlParser.SET); + this.state = 11943; + this.match(OracleSqlParser.INMEMORY); + this.state = 11945; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===446 || _la===473 || _la===939 || _la===1135 || _la===1451) { + this.state = 11944; + this.inmemory_attributes(); + } + + break; + case 978: + this.state = 11947; + this.match(OracleSqlParser.MODIFY); + this.state = 11948; + this.match(OracleSqlParser.INMEMORY); + this.state = 11949; + this.inmemory_memcompress(); + break; + case 1135: + this.state = 11950; + this.match(OracleSqlParser.NO); + this.state = 11951; + this.match(OracleSqlParser.INMEMORY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 11955; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1643) { + this.state = 11954; + this.match(OracleSqlParser.SEGMENT); + } + + this.state = 11957; + this.ilm_after_on(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + ilm_time_period() { + let localctx = new Ilm_time_periodContext(this, this._ctx, this.state); + this.enterRule(localctx, 1212, OracleSqlParser.RULE_ilm_time_period); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11959; + this.numeric(); + this.state = 11960; + _la = this._input.LA(1); + if(!(_la===363 || _la===364 || _la===983 || _la===985 || _la===2355 || _la===2356)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + heap_org_table_clause() { + let localctx = new Heap_org_table_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1214, OracleSqlParser.RULE_heap_org_table_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 11963; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1486,this._ctx); + if(la_===1) { + this.state = 11962; + this.table_compression(); + + } + this.state = 11966; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1487,this._ctx); + if(la_===1) { + this.state = 11965; + this.inmemory_table_clause(); + + } + this.state = 11969; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1488,this._ctx); + if(la_===1) { + this.state = 11968; + this.ilm_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_clause() { + let localctx = new External_table_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1216, OracleSqlParser.RULE_external_table_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11971; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 11974; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2164) { + this.state = 11972; + this.match(OracleSqlParser.TYPE); + this.state = 11973; + this.access_driver_type(); + } + + this.state = 11976; + this.external_table_data_props(); + this.state = 11977; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 11979; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1490,this._ctx); + if(la_===1) { + this.state = 11978; + this.parallel_clause(); + + } + this.state = 11987; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1492,this._ctx); + if(la_===1) { + this.state = 11981; + this.match(OracleSqlParser.REJECT); + this.state = 11982; + this.match(OracleSqlParser.LIMIT); + this.state = 11985; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + case 2440: + this.state = 11983; + this.numeric(); + break; + case 2183: + this.state = 11984; + this.match(OracleSqlParser.UNLIMITED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + this.state = 11990; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1493,this._ctx); + if(la_===1) { + this.state = 11989; + this.inmemory_table_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + access_driver_type() { + let localctx = new Access_driver_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 1218, OracleSqlParser.RULE_access_driver_type); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11992; + _la = this._input.LA(1); + if(!(((((_la - 2378)) & ~0x1f) === 0 && ((1 << (_la - 2378)) & 15) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_data_props() { + let localctx = new External_table_data_propsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1220, OracleSqlParser.RULE_external_table_data_props); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 11997; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 11994; + this.match(OracleSqlParser.DEFAULT); + this.state = 11995; + this.match(OracleSqlParser.DIRECTORY); + this.state = 11996; + this.external_table_directory(); + } + + this.state = 12017; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===4) { + this.state = 11999; + this.match(OracleSqlParser.ACCESS); + this.state = 12000; + this.match(OracleSqlParser.PARAMETERS); + this.state = 12015; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1496,this._ctx); + switch(la_) { + case 1: + this.state = 12001; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12002; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 12003; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.state = 12004; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12006; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 12005; + this.external_table_data_format(); + this.state = 12008; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000575) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209079) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967165) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870141) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962879) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4219467743) !== 0) || ((((_la - 449)) & ~0x1f) === 0 && ((1 << (_la - 449)) & 4286314527) !== 0) || ((((_la - 481)) & ~0x1f) === 0 && ((1 << (_la - 481)) & 4126143743) !== 0) || ((((_la - 513)) & ~0x1f) === 0 && ((1 << (_la - 513)) & 4227856383) !== 0) || ((((_la - 545)) & ~0x1f) === 0 && ((1 << (_la - 545)) & 4294967295) !== 0) || ((((_la - 577)) & ~0x1f) === 0 && ((1 << (_la - 577)) & 4286578431) !== 0) || ((((_la - 609)) & ~0x1f) === 0 && ((1 << (_la - 609)) & 4294835711) !== 0) || ((((_la - 641)) & ~0x1f) === 0 && ((1 << (_la - 641)) & 3220176807) !== 0) || ((((_la - 673)) & ~0x1f) === 0 && ((1 << (_la - 673)) & 4294704127) !== 0) || ((((_la - 705)) & ~0x1f) === 0 && ((1 << (_la - 705)) & 2147482623) !== 0) || ((((_la - 737)) & ~0x1f) === 0 && ((1 << (_la - 737)) & 4294828031) !== 0) || ((((_la - 769)) & ~0x1f) === 0 && ((1 << (_la - 769)) & 4294688367) !== 0) || ((((_la - 801)) & ~0x1f) === 0 && ((1 << (_la - 801)) & 2113929215) !== 0) || ((((_la - 833)) & ~0x1f) === 0 && ((1 << (_la - 833)) & 3451912191) !== 0) || ((((_la - 865)) & ~0x1f) === 0 && ((1 << (_la - 865)) & 4294950907) !== 0) || ((((_la - 898)) & ~0x1f) === 0 && ((1 << (_la - 898)) & 4294963199) !== 0) || ((((_la - 930)) & ~0x1f) === 0 && ((1 << (_la - 930)) & 4278190079) !== 0) || ((((_la - 962)) & ~0x1f) === 0 && ((1 << (_la - 962)) & 4294959103) !== 0) || ((((_la - 994)) & ~0x1f) === 0 && ((1 << (_la - 994)) & 4227857919) !== 0) || ((((_la - 1026)) & ~0x1f) === 0 && ((1 << (_la - 1026)) & 4294967295) !== 0) || ((((_la - 1058)) & ~0x1f) === 0 && ((1 << (_la - 1058)) & 4026515327) !== 0) || ((((_la - 1090)) & ~0x1f) === 0 && ((1 << (_la - 1090)) & 4294967039) !== 0) || ((((_la - 1122)) & ~0x1f) === 0 && ((1 << (_la - 1122)) & 4294966271) !== 0) || ((((_la - 1154)) & ~0x1f) === 0 && ((1 << (_la - 1154)) & 2113929215) !== 0) || ((((_la - 1186)) & ~0x1f) === 0 && ((1 << (_la - 1186)) & 2147385343) !== 0) || ((((_la - 1218)) & ~0x1f) === 0 && ((1 << (_la - 1218)) & 4227858175) !== 0) || ((((_la - 1250)) & ~0x1f) === 0 && ((1 << (_la - 1250)) & 2412773215) !== 0) || ((((_la - 1282)) & ~0x1f) === 0 && ((1 << (_la - 1282)) & 4286054399) !== 0) || ((((_la - 1315)) & ~0x1f) === 0 && ((1 << (_la - 1315)) & 4278058943) !== 0) || ((((_la - 1347)) & ~0x1f) === 0 && ((1 << (_la - 1347)) & 1676673023) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4294967295) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4290772991) !== 0) || ((((_la - 1511)) & ~0x1f) === 0 && ((1 << (_la - 1511)) & 4294967295) !== 0) || ((((_la - 1543)) & ~0x1f) === 0 && ((1 << (_la - 1543)) & 4261412735) !== 0) || ((((_la - 1575)) & ~0x1f) === 0 && ((1 << (_la - 1575)) & 4294963199) !== 0) || ((((_la - 1607)) & ~0x1f) === 0 && ((1 << (_la - 1607)) & 4294967295) !== 0) || ((((_la - 1639)) & ~0x1f) === 0 && ((1 << (_la - 1639)) & 4294762431) !== 0) || ((((_la - 1671)) & ~0x1f) === 0 && ((1 << (_la - 1671)) & 4093640567) !== 0) || ((((_la - 1703)) & ~0x1f) === 0 && ((1 << (_la - 1703)) & 4294705151) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4261150711) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478); + this.state = 12010; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 3: + this.state = 12012; + this.match(OracleSqlParser.USING); + this.state = 12013; + this.match(OracleSqlParser.CLOB); + this.state = 12014; + this.select_only_statement(); + break; + + } + } + + this.state = 12031; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===874) { + this.state = 12019; + this.match(OracleSqlParser.LOCATION); + this.state = 12020; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12021; + this.external_table_directory(); + this.state = 12026; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12022; + this.match(OracleSqlParser.COMMA); + this.state = 12023; + this.external_table_directory(); + this.state = 12028; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 12029; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_data_format() { + let localctx = new External_table_data_formatContext(this, this._ctx, this.state); + this.enterRule(localctx, 1222, OracleSqlParser.RULE_external_table_data_format); + var _la = 0; + try { + this.state = 12054; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1501,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 12033; + this.match(OracleSqlParser.RECORDS); + this.state = 12034; + this.match(OracleSqlParser.DELIMITED); + this.state = 12035; + this.match(OracleSqlParser.BY); + this.state = 12036; + this.match(OracleSqlParser.NEWLINE_); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 12037; + this.match(OracleSqlParser.COLUMN); + this.state = 12038; + this.match(OracleSqlParser.TRANSFORMS); + this.state = 12039; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12040; + this.external_table_transform(); + this.state = 12045; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12041; + this.match(OracleSqlParser.COMMA); + this.state = 12042; + this.external_table_transform(); + this.state = 12047; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 12048; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 12050; + this.external_table_records(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 12051; + this.external_table_fields(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 12052; + this.external_table_datapump(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 12053; + this.external_table_hive(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_transform() { + let localctx = new External_table_transformContext(this, this._ctx, this.state); + this.enterRule(localctx, 1224, OracleSqlParser.RULE_external_table_transform); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12056; + this.column_name(); + this.state = 12057; + this.match(OracleSqlParser.FROM); + this.state = 12092; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1226: + this.state = 12058; + this.match(OracleSqlParser.NULL_); + break; + case 282: + this.state = 12059; + this.match(OracleSqlParser.CONSTANT); + this.state = 12060; + this.quoted_string(); + break; + case 261: + case 867: + this.state = 12061; + _la = this._input.LA(1); + if(!(_la===261 || _la===867)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12065; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1502,this._ctx); + switch(la_) { + case 1: + this.state = 12062; + this.external_table_field(); + break; + + case 2: + this.state = 12063; + this.match(OracleSqlParser.CONSTANT); + this.state = 12064; + this.quoted_string(); + break; + + } + break; + case 142: + case 195: + case 215: + case 626: + this.state = 12084; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 626: + this.state = 12067; + this.match(OracleSqlParser.FROM); + this.state = 12068; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12069; + this.external_table_directory(); + this.state = 12074; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12070; + this.match(OracleSqlParser.COMMA); + this.state = 12071; + this.external_table_directory(); + this.state = 12076; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 12077; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 215: + this.state = 12079; + this.match(OracleSqlParser.CLOB); + break; + case 142: + this.state = 12080; + this.match(OracleSqlParser.BLOB); + break; + case 195: + this.state = 12081; + this.match(OracleSqlParser.CHARACTERSET); + this.state = 12082; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 12083; + this.char_set_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 1736: + this.state = 12086; + this.match(OracleSqlParser.STARTOF); + this.state = 12087; + this.external_table_field_list(); + this.state = 12088; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12089; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 12090; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_field() { + let localctx = new External_table_fieldContext(this, this._ctx, this.state); + this.enterRule(localctx, 1226, OracleSqlParser.RULE_external_table_field); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12094; + this.column_name(); + this.state = 12096; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1506,this._ctx); + if(la_===1) { + this.state = 12095; + this.type_name(); + + } + this.state = 12100; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 12098; + this.match(OracleSqlParser.NOT); + this.state = 12099; + this.match(OracleSqlParser.NULL_); + } + + this.state = 12103; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387 || _la===2454) { + this.state = 12102; + this.default_value_part(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_field_list() { + let localctx = new External_table_field_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 1228, OracleSqlParser.RULE_external_table_field_list); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12105; + this.external_table_fields_clause(); + this.state = 12110; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12106; + this.match(OracleSqlParser.COMMA); + this.state = 12107; + this.external_table_fields_clause(); + this.state = 12112; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_fields_clause() { + let localctx = new External_table_fields_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1230, OracleSqlParser.RULE_external_table_fields_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 12113; + this.external_table_field(); + this.state = 12120; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1511,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 12118; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1416: + case 2445: + this.state = 12114; + this.external_table_position_clause(); + break; + case 125: + case 128: + case 196: + case 379: + case 463: + case 605: + case 767: + case 1279: + case 1280: + case 1496: + case 2198: + case 2258: + case 2259: + case 2261: + case 2262: + case 2362: + this.state = 12115; + this.external_table_datatype_clause(); + break; + case 388: + case 1225: + this.state = 12116; + this.external_table_init_clause(); + break; + case 862: + this.state = 12117; + this.external_table_lls_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 12122; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1511,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_position_clause() { + let localctx = new External_table_position_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1232, OracleSqlParser.RULE_external_table_position_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12124; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1416) { + this.state = 12123; + this.match(OracleSqlParser.POSITION); + } + + this.state = 12126; + this.match(OracleSqlParser.LEFT_PAREN); + + this.state = 12128; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2448) { + this.state = 12127; + this.match(OracleSqlParser.ASTERISK); + } + + this.state = 12131; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2449 || _la===2450) { + this.state = 12130; + _la = this._input.LA(1); + if(!(_la===2449 || _la===2450)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 12134; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2439) { + this.state = 12133; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } + + this.state = 12142; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2459: + this.state = 12136; + this.match(OracleSqlParser.BINDVAR); + break; + case 2466: + this.state = 12137; + this.match(OracleSqlParser.COLON); + this.state = 12139; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2449 || _la===2450) { + this.state = 12138; + _la = this._input.LA(1); + if(!(_la===2449 || _la===2450)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 12141; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12144; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_datatype_clause() { + let localctx = new External_table_datatype_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1234, OracleSqlParser.RULE_external_table_datatype_clause); + var _la = 0; + try { + this.state = 12235; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 767: + case 2198: + this.enterOuterAlt(localctx, 1); + this.state = 12147; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2198) { + this.state = 12146; + this.match(OracleSqlParser.UNSIGNED); + } + + this.state = 12149; + this.match(OracleSqlParser.INTEGER); + this.state = 12151; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1519,this._ctx); + if(la_===1) { + this.state = 12150; + this.match(OracleSqlParser.EXTERNAL); + + } + this.state = 12154; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2439) { + this.state = 12153; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } + + this.state = 12157; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===501 || _la===2092) { + this.state = 12156; + this.external_table_delimit_clause(); + } + + break; + case 379: + case 2362: + this.enterOuterAlt(localctx, 2); + this.state = 12159; + _la = this._input.LA(1); + if(!(_la===379 || _la===2362)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12176; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 12160; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12161; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 12164; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 12162; + this.match(OracleSqlParser.COMMA); + this.state = 12163; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } + + this.state = 12166; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 558: + this.state = 12167; + this.match(OracleSqlParser.EXTERNAL); + this.state = 12171; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1523,this._ctx); + if(la_===1) { + this.state = 12168; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12169; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 12170; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + this.state = 12174; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===501 || _la===2092) { + this.state = 12173; + this.external_table_delimit_clause(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 1279: + this.enterOuterAlt(localctx, 3); + this.state = 12178; + this.match(OracleSqlParser.ORACLE_DATE); + break; + case 1280: + this.enterOuterAlt(localctx, 4); + this.state = 12179; + this.match(OracleSqlParser.ORACLE_NUMBER); + this.state = 12181; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===312) { + this.state = 12180; + this.match(OracleSqlParser.COUNTED); + } + + break; + case 605: + this.enterOuterAlt(localctx, 5); + this.state = 12183; + this.match(OracleSqlParser.FLOAT); + this.state = 12185; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1527,this._ctx); + if(la_===1) { + this.state = 12184; + this.match(OracleSqlParser.EXTERNAL); + + } + this.state = 12188; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2439) { + this.state = 12187; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } + + this.state = 12191; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===501 || _la===2092) { + this.state = 12190; + this.external_table_delimit_clause(); + } + + break; + case 463: + this.enterOuterAlt(localctx, 6); + this.state = 12193; + this.match(OracleSqlParser.DOUBLE); + break; + case 128: + this.enterOuterAlt(localctx, 7); + this.state = 12194; + this.match(OracleSqlParser.BINARY_FLOAT); + this.state = 12196; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1530,this._ctx); + if(la_===1) { + this.state = 12195; + this.match(OracleSqlParser.EXTERNAL); + + } + this.state = 12199; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2439) { + this.state = 12198; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } + + this.state = 12202; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===501 || _la===2092) { + this.state = 12201; + this.external_table_delimit_clause(); + } + + break; + case 125: + this.enterOuterAlt(localctx, 8); + this.state = 12204; + this.match(OracleSqlParser.BINARY_DOUBLE); + break; + case 1496: + this.enterOuterAlt(localctx, 9); + this.state = 12205; + this.match(OracleSqlParser.RAW); + this.state = 12207; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2439) { + this.state = 12206; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } + + break; + case 196: + this.enterOuterAlt(localctx, 10); + this.state = 12209; + this.match(OracleSqlParser.CHAR); + this.state = 12211; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1534,this._ctx); + if(la_===1) { + this.state = 12210; + this.match(OracleSqlParser.EXTERNAL); + + } + this.state = 12216; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1535,this._ctx); + if(la_===1) { + this.state = 12213; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12214; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 12215; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + this.state = 12219; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===501 || _la===2092) { + this.state = 12218; + this.external_table_delimit_clause(); + } + + this.state = 12222; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1537,this._ctx); + if(la_===1) { + this.state = 12221; + this.external_table_trim_clause(); + + } + this.state = 12225; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1538,this._ctx); + if(la_===1) { + this.state = 12224; + this.external_table_date_format_clause(); + + } + break; + case 2258: + case 2259: + case 2261: + case 2262: + this.enterOuterAlt(localctx, 11); + this.state = 12227; + _la = this._input.LA(1); + if(!(((((_la - 2258)) & ~0x1f) === 0 && ((1 << (_la - 2258)) & 27) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12228; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12231; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1539,this._ctx); + if(la_===1) { + this.state = 12229; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 12230; + this.match(OracleSqlParser.COMMA); + + } + this.state = 12233; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 12234; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_delimit_clause() { + let localctx = new External_table_delimit_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1236, OracleSqlParser.RULE_external_table_delimit_clause); + var _la = 0; + try { + this.state = 12262; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 501: + this.enterOuterAlt(localctx, 1); + this.state = 12237; + this.match(OracleSqlParser.ENCLOSED); + this.state = 12238; + this.match(OracleSqlParser.BY); + this.state = 12239; + this.quoted_string(); + this.state = 12242; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===49) { + this.state = 12240; + this.match(OracleSqlParser.AND); + this.state = 12241; + this.quoted_string(); + } + + break; + case 2092: + this.enterOuterAlt(localctx, 2); + this.state = 12244; + this.match(OracleSqlParser.TERMINATED); + this.state = 12245; + this.match(OracleSqlParser.BY); + this.state = 12248; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2434: + case 2441: + this.state = 12246; + this.quoted_string(); + break; + case 2301: + this.state = 12247; + this.match(OracleSqlParser.WHITESPACE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12260; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===501 || _la===1271) { + this.state = 12251; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1271) { + this.state = 12250; + this.match(OracleSqlParser.OPTIONALLY); + } + + this.state = 12253; + this.match(OracleSqlParser.ENCLOSED); + this.state = 12254; + this.match(OracleSqlParser.BY); + this.state = 12255; + this.quoted_string(); + this.state = 12258; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===49) { + this.state = 12256; + this.match(OracleSqlParser.AND); + this.state = 12257; + this.quoted_string(); + } + + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_trim_clause() { + let localctx = new External_table_trim_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1238, OracleSqlParser.RULE_external_table_trim_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12264; + _la = this._input.LA(1); + if(!(_la===832 || _la===897 || _la===898 || _la===1201 || _la===1607)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_date_format_clause() { + let localctx = new External_table_date_format_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1240, OracleSqlParser.RULE_external_table_date_format_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12267; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===361) { + this.state = 12266; + this.match(OracleSqlParser.DATE_FORMAT); + } + + this.state = 12283; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 359: + this.state = 12269; + this.match(OracleSqlParser.DATE); + break; + case 2106: + this.state = 12270; + this.match(OracleSqlParser.TIMESTAMP); + this.state = 12277; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 12271; + this.match(OracleSqlParser.WITH); + this.state = 12273; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===871) { + this.state = 12272; + this.match(OracleSqlParser.LOCAL); + } + + this.state = 12275; + this.match(OracleSqlParser.TIME); + this.state = 12276; + this.match(OracleSqlParser.ZONE); + } + + this.state = 12279; + this.match(OracleSqlParser.MASK); + this.state = 12280; + this.quoted_string(); + break; + case 774: + this.state = 12281; + this.match(OracleSqlParser.INTERVAL); + this.state = 12282; + _la = this._input.LA(1); + if(!(_la===365 || _la===2357)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_init_clause() { + let localctx = new External_table_init_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1242, OracleSqlParser.RULE_external_table_init_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12285; + _la = this._input.LA(1); + if(!(_la===388 || _la===1225)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12286; + this.external_table_condition_clause(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + external_table_condition_clause(_p) { + if(_p===undefined) { + _p = 0; + } + const _parentctx = this._ctx; + const _parentState = this.state; + let localctx = new External_table_condition_clauseContext(this, this._ctx, _parentState); + let _prevctx = localctx; + const _startState = 1244; + this.enterRecursionRule(localctx, 1244, OracleSqlParser.RULE_external_table_condition_clause, _p); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12294; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 12289; + this.field_spec(); + break; + case 2445: + this.state = 12290; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12291; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 12292; + this.match(OracleSqlParser.BINDVAR); + this.state = 12293; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12296; + this.relational_operator(); + this.state = 12300; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2434: + case 2441: + this.state = 12297; + this.quoted_string(); + break; + case 2436: + this.state = 12298; + this.match(OracleSqlParser.HEX_STRING_LIT); + break; + case 141: + this.state = 12299; + this.match(OracleSqlParser.BLANKS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this._ctx.stop = this._input.LT(-1); + this.state = 12307; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1553,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + localctx = new External_table_condition_clauseContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_external_table_condition_clause); + this.state = 12302; + if (!( this.precpred(this._ctx, 1))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + } + this.state = 12303; + _la = this._input.LA(1); + if(!(_la===49 || _la===1305)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12304; + this.external_table_condition_clause(2); + } + this.state = 12309; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1553,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; + } + + + + external_table_lls_clause() { + let localctx = new External_table_lls_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1246, OracleSqlParser.RULE_external_table_lls_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 12310; + this.match(OracleSqlParser.LLS); + this.state = 12311; + this.external_table_directory(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_records() { + let localctx = new External_table_recordsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1248, OracleSqlParser.RULE_external_table_records); + var _la = 0; + try { + this.state = 12355; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1511: + this.enterOuterAlt(localctx, 1); + this.state = 12313; + this.match(OracleSqlParser.RECORDS); + this.state = 12342; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 600: + this.state = 12314; + this.match(OracleSqlParser.FIXED); + this.state = 12315; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 2260: + this.state = 12316; + this.match(OracleSqlParser.VARIABLE); + this.state = 12317; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 403: + this.state = 12318; + this.match(OracleSqlParser.DELIMITED); + this.state = 12319; + this.match(OracleSqlParser.BY); + this.state = 12325; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 416: + case 1020: + this.state = 12321; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===416) { + this.state = 12320; + this.match(OracleSqlParser.DETECTED); + } + + this.state = 12323; + this.match(OracleSqlParser.NEWLINE_); + break; + case 2434: + case 2441: + this.state = 12324; + this.quoted_string(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 2346: + this.state = 12327; + this.match(OracleSqlParser.XMLTAG); + this.state = 12329; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 12328; + this.match(OracleSqlParser.LEFT_PAREN); + } + + this.state = 12331; + this.id_expression(); + this.state = 12336; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12332; + this.match(OracleSqlParser.COMMA); + this.state = 12333; + this.id_expression(); + this.state = 12338; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 12340; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1558,this._ctx); + if(la_===1) { + this.state = 12339; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12347; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1560,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 12344; + this.external_table_record_options_clause(); + } + this.state = 12349; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1560,this._ctx); + } + + break; + case 105: + case 165: + case 195: + case 349: + case 360: + case 429: + case 436: + case 449: + case 450: + case 451: + case 558: + case 782: + case 865: + case 880: + case 1058: + case 1087: + case 1116: + case 1440: + case 1505: + case 1700: + case 1765: + this.enterOuterAlt(localctx, 2); + this.state = 12351; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 12350; + this.external_table_record_options_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12353; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1561, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_record_options_clause() { + let localctx = new External_table_record_options_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1250, OracleSqlParser.RULE_external_table_record_options_clause); + var _la = 0; + try { + this.state = 12394; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 195: + this.enterOuterAlt(localctx, 1); + this.state = 12357; + this.match(OracleSqlParser.CHARACTERSET); + this.state = 12358; + this.char_set_name(); + break; + case 558: + this.enterOuterAlt(localctx, 2); + this.state = 12359; + this.match(OracleSqlParser.EXTERNAL); + this.state = 12360; + this.match(OracleSqlParser.VARIABLE); + this.state = 12361; + this.match(OracleSqlParser.DATA); + break; + case 1440: + this.enterOuterAlt(localctx, 3); + this.state = 12362; + this.match(OracleSqlParser.PREPROCESSOR); + this.state = 12363; + this.external_table_directory(); + break; + case 349: + this.enterOuterAlt(localctx, 4); + this.state = 12364; + this.match(OracleSqlParser.DATA); + this.state = 12365; + this.match(OracleSqlParser.IS); + this.state = 12366; + _la = this._input.LA(1); + if(!(_la===121 || _la===861)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12367; + this.match(OracleSqlParser.ENDIAN); + break; + case 165: + this.enterOuterAlt(localctx, 5); + this.state = 12368; + this.match(OracleSqlParser.BYTEORDERMARK); + this.state = 12369; + _la = this._input.LA(1); + if(!(_la===200 || _la===1065)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 1765: + this.enterOuterAlt(localctx, 6); + this.state = 12370; + this.match(OracleSqlParser.STRING); + this.state = 12371; + this.match(OracleSqlParser.SIZES); + this.state = 12372; + this.match(OracleSqlParser.ARE); + this.state = 12373; + this.match(OracleSqlParser.IN); + this.state = 12374; + _la = this._input.LA(1); + if(!(_la===164 || _la===194)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 865: + this.enterOuterAlt(localctx, 7); + this.state = 12375; + this.match(OracleSqlParser.LOAD); + this.state = 12376; + this.match(OracleSqlParser.WHEN); + this.state = 12377; + this.external_table_condition_clause(0); + break; + case 105: + case 436: + case 880: + case 1058: + case 1087: + case 1116: + this.enterOuterAlt(localctx, 8); + this.state = 12378; + this.external_table_output_files(); + break; + case 1505: + this.enterOuterAlt(localctx, 9); + this.state = 12379; + this.match(OracleSqlParser.READSIZE); + this.state = 12381; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2469) { + this.state = 12380; + this.match(OracleSqlParser.EQUALS_OP); + } + + this.state = 12383; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 429: + this.enterOuterAlt(localctx, 10); + this.state = 12384; + this.match(OracleSqlParser.DISABLE_DIRECTORY_LINK_CHECK); + break; + case 360: + this.enterOuterAlt(localctx, 11); + this.state = 12385; + this.match(OracleSqlParser.DATE_CACHE); + this.state = 12386; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 1700: + this.enterOuterAlt(localctx, 12); + this.state = 12387; + this.match(OracleSqlParser.SKIP_); + this.state = 12388; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 782: + this.enterOuterAlt(localctx, 13); + this.state = 12389; + this.match(OracleSqlParser.IO_OPTIONS); + this.state = 12390; + _la = this._input.LA(1); + if(!(_la===422 || _la===1086)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 449: + case 450: + this.enterOuterAlt(localctx, 14); + this.state = 12391; + _la = this._input.LA(1); + if(!(_la===449 || _la===450)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 451: + this.enterOuterAlt(localctx, 15); + this.state = 12392; + this.match(OracleSqlParser.DNFS_READBUFFERS); + this.state = 12393; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_output_files() { + let localctx = new External_table_output_filesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1252, OracleSqlParser.RULE_external_table_output_files); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12402; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1058: + case 1087: + case 1116: + this.state = 12396; + _la = this._input.LA(1); + if(!(_la===1058 || _la===1087 || _la===1116)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 105: + case 436: + case 880: + this.state = 12397; + _la = this._input.LA(1); + if(!(_la===105 || _la===436 || _la===880)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12399; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1565,this._ctx); + if(la_===1) { + this.state = 12398; + this.external_table_directory(); + + } + this.state = 12401; + this.filename(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_fields() { + let localctx = new External_table_fieldsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1254, OracleSqlParser.RULE_external_table_fields); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12404; + this.match(OracleSqlParser.FIELDS); + this.state = 12406; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===691) { + this.state = 12405; + this.match(OracleSqlParser.IGNORE_CHARS_AFTER_EOR); + } + + this.state = 12411; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===328) { + this.state = 12408; + this.match(OracleSqlParser.CSV); + this.state = 12409; + _la = this._input.LA(1); + if(!(_la===2304 || _la===2306)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12410; + this.match(OracleSqlParser.EMBEDDED); + } + + this.state = 12414; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===501 || _la===2092) { + this.state = 12413; + this.external_table_delimit_clause(); + } + + this.state = 12417; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1570,this._ctx); + if(la_===1) { + this.state = 12416; + this.external_table_trim_clause(); + + } + this.state = 12424; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===38) { + this.state = 12419; + this.match(OracleSqlParser.ALL); + this.state = 12420; + this.match(OracleSqlParser.FIELDS); + this.state = 12421; + this.match(OracleSqlParser.OVERRIDE); + this.state = 12422; + this.match(OracleSqlParser.THESE); + this.state = 12423; + this.match(OracleSqlParser.FIELDS); + } + + this.state = 12431; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1572,this._ctx); + if(la_===1) { + this.state = 12426; + this.match(OracleSqlParser.MISSING); + this.state = 12427; + this.match(OracleSqlParser.FIELD); + this.state = 12428; + this.match(OracleSqlParser.VALUES); + this.state = 12429; + this.match(OracleSqlParser.ARE); + this.state = 12430; + this.match(OracleSqlParser.NULL_); + + } + this.state = 12439; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1573,this._ctx); + if(la_===1) { + this.state = 12433; + this.match(OracleSqlParser.REJECT); + this.state = 12434; + this.match(OracleSqlParser.ROWS); + this.state = 12435; + this.match(OracleSqlParser.WITH); + this.state = 12436; + this.match(OracleSqlParser.ALL); + this.state = 12437; + this.match(OracleSqlParser.NULL_); + this.state = 12438; + this.match(OracleSqlParser.FIELDS); + + } + this.state = 12445; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===361) { + this.state = 12441; + this.match(OracleSqlParser.DATE_FORMAT); + this.state = 12442; + _la = this._input.LA(1); + if(!(_la===359 || _la===2106)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12443; + this.match(OracleSqlParser.MASK); + this.state = 12444; + this.quoted_string(); + } + + this.state = 12455; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1576,this._ctx); + if(la_===1) { + this.state = 12447; + this.match(OracleSqlParser.NULLIF); + this.state = 12448; + _la = this._input.LA(1); + if(!(_la===2460 || _la===2469)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12452; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2434: + case 2441: + this.state = 12449; + this.quoted_string(); + break; + case 2436: + this.state = 12450; + this.match(OracleSqlParser.HEX_STRING_LIT); + break; + case 141: + this.state = 12451; + this.match(OracleSqlParser.BLANKS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } else if(la_===2) { + this.state = 12454; + this.match(OracleSqlParser.NONULLIF); + + } + this.state = 12458; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 12457; + this.match(OracleSqlParser.LEFT_PAREN); + } + + this.state = 12461; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1578,this._ctx); + if(la_===1) { + this.state = 12460; + this.external_table_field_list(); + + } + this.state = 12464; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1579,this._ctx); + if(la_===1) { + this.state = 12463; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_datapump() { + let localctx = new External_table_datapumpContext(this, this._ctx, this.state); + this.enterRule(localctx, 1256, OracleSqlParser.RULE_external_table_datapump); + var _la = 0; + try { + this.state = 12522; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 504: + this.enterOuterAlt(localctx, 1); + this.state = 12466; + this.match(OracleSqlParser.ENCRYPTION); + this.state = 12467; + _la = this._input.LA(1); + if(!(_la===428 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 1116: + this.enterOuterAlt(localctx, 2); + this.state = 12468; + this.match(OracleSqlParser.NOLOGFILE); + break; + case 880: + this.enterOuterAlt(localctx, 3); + this.state = 12469; + this.match(OracleSqlParser.LOGFILE); + this.state = 12471; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1580,this._ctx); + if(la_===1) { + this.state = 12470; + this.external_table_directory(); + + } + this.state = 12473; + this.filename(); + break; + case 259: + this.enterOuterAlt(localctx, 4); + this.state = 12474; + this.match(OracleSqlParser.COMPRESSION); + this.state = 12480; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1582,this._ctx); + if(la_===1) { + this.state = 12475; + this.match(OracleSqlParser.ENABLED); + this.state = 12477; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1581,this._ctx); + if(la_===1) { + this.state = 12476; + _la = this._input.LA(1); + if(!(_la===106 || _la===673 || _la===895 || _la===933)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + + } else if(la_===2) { + this.state = 12479; + this.match(OracleSqlParser.DISABLED); + + } + break; + case 655: + this.enterOuterAlt(localctx, 5); + this.state = 12482; + this.match(OracleSqlParser.HADOOP_TRAILERS); + this.state = 12483; + _la = this._input.LA(1); + if(!(_la===428 || _la===498)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12484; + this.match(OracleSqlParser.VERSION); + this.state = 12488; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 247: + this.state = 12485; + this.match(OracleSqlParser.COMPATIBLE); + break; + case 826: + this.state = 12486; + this.match(OracleSqlParser.LATEST); + break; + case 2434: + case 2441: + this.state = 12487; + this.quoted_string(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 1115: + this.enterOuterAlt(localctx, 6); + this.state = 12490; + this.match(OracleSqlParser.NOLOG); + break; + case 376: + this.enterOuterAlt(localctx, 7); + this.state = 12491; + this.match(OracleSqlParser.DEBUG); + this.state = 12492; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 12493; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12494; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 12495; + this.match(OracleSqlParser.COMMA); + this.state = 12496; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 12497; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 357: + this.enterOuterAlt(localctx, 8); + this.state = 12498; + this.match(OracleSqlParser.DATAPUMP); + this.state = 12499; + this.match(OracleSqlParser.INTERNAL); + this.state = 12500; + this.match(OracleSqlParser.TABLE); + this.state = 12501; + this.tableview_name(); + break; + case 2089: + this.enterOuterAlt(localctx, 9); + this.state = 12502; + this.match(OracleSqlParser.TEMPLATE_TABLE); + this.state = 12503; + this.tableview_name(); + break; + case 791: + this.enterOuterAlt(localctx, 10); + this.state = 12504; + this.match(OracleSqlParser.JOB); + this.state = 12505; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12506; + this.schema_name(); + this.state = 12507; + this.match(OracleSqlParser.COMMA); + this.state = 12508; + this.tableview_name(); + this.state = 12509; + this.match(OracleSqlParser.COMMA); + this.state = 12510; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 12511; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2308: + this.enterOuterAlt(localctx, 11); + this.state = 12513; + this.match(OracleSqlParser.WORKERID); + this.state = 12514; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 1331: + this.enterOuterAlt(localctx, 12); + this.state = 12515; + this.match(OracleSqlParser.PARALLEL); + this.state = 12516; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 2283: + this.enterOuterAlt(localctx, 13); + this.state = 12517; + this.match(OracleSqlParser.VERSION); + this.state = 12518; + this.quoted_string(); + break; + case 505: + this.enterOuterAlt(localctx, 14); + this.state = 12519; + this.match(OracleSqlParser.ENCRYPTPASSWORDISNULL); + break; + case 368: + this.enterOuterAlt(localctx, 15); + this.state = 12520; + this.match(OracleSqlParser.DBLINK); + this.state = 12521; + this.quoted_string(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_hive() { + let localctx = new External_table_hiveContext(this, this._ctx, this.state); + this.enterRule(localctx, 1258, OracleSqlParser.RULE_external_table_hive); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12524; + this.id_expression(); + this.state = 12529; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2438) { + this.state = 12525; + this.match(OracleSqlParser.PERIOD); + this.state = 12526; + this.id_expression(); + this.state = 12531; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 12532; + _la = this._input.LA(1); + if(!(_la===2466 || _la===2469)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12616; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1594,this._ctx); + switch(la_) { + case 1: + this.state = 12533; + this.tableview_name(); + break; + + case 2: + this.state = 12534; + this.external_table_hive_parameter_map(); + break; + + case 3: + this.state = 12535; + this.match(OracleSqlParser.LEFT_BRACKET); + this.state = 12536; + this.external_table_hive_parameter_map(); + this.state = 12541; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12537; + this.match(OracleSqlParser.COMMA); + this.state = 12538; + this.external_table_hive_parameter_map(); + this.state = 12543; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 12544; + this.match(OracleSqlParser.RIGHT_BRACKET); + break; + + case 4: + this.state = 12546; + this.external_table_field(); + this.state = 12547; + this.datatype(); + this.state = 12550; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1587,this._ctx); + if(la_===1) { + this.state = 12548; + this.match(OracleSqlParser.COMMENT); + this.state = 12549; + this.quoted_string(); + + } + this.state = 12557; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12552; + this.match(OracleSqlParser.COMMA); + this.state = 12553; + this.match(OracleSqlParser.COMMENT); + this.state = 12554; + this.quoted_string(); + this.state = 12559; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 5: + this.state = 12560; + this.match(OracleSqlParser.SEQUENCEFILE); + break; + + case 6: + this.state = 12561; + this.match(OracleSqlParser.TEXTFILE); + break; + + case 7: + this.state = 12562; + this.match(OracleSqlParser.RCFILE); + break; + + case 8: + this.state = 12563; + this.match(OracleSqlParser.ORC); + break; + + case 9: + this.state = 12564; + this.match(OracleSqlParser.PARQUET); + break; + + case 10: + this.state = 12565; + this.match(OracleSqlParser.INPUTFORMAT); + this.state = 12566; + this.quoted_string(); + this.state = 12567; + this.match(OracleSqlParser.OUTPUTFORMAT); + this.state = 12568; + this.quoted_string(); + break; + + case 11: + this.state = 12570; + this.external_table_directory(); + break; + + case 12: + this.state = 12572; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===403) { + this.state = 12571; + this.match(OracleSqlParser.DELIMITED); + } + + this.state = 12595; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 586: + this.state = 12574; + this.match(OracleSqlParser.FIELDS); + this.state = 12575; + this.match(OracleSqlParser.TERMINATED); + this.state = 12576; + this.match(OracleSqlParser.BY); + this.state = 12577; + this.match(OracleSqlParser.CHARACTER); + + this.state = 12578; + this.match(OracleSqlParser.ESCAPED); + this.state = 12579; + this.match(OracleSqlParser.BY); + this.state = 12580; + this.match(OracleSqlParser.CHARACTER); + break; + case 234: + case 858: + case 908: + this.state = 12586; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 234: + this.state = 12581; + this.match(OracleSqlParser.COLLECTION); + this.state = 12582; + this.match(OracleSqlParser.ITEMS); + break; + case 908: + this.state = 12583; + this.match(OracleSqlParser.MAP); + this.state = 12584; + this.match(OracleSqlParser.KEYS); + break; + case 858: + this.state = 12585; + this.match(OracleSqlParser.LINES); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12588; + this.match(OracleSqlParser.TERMINATED); + this.state = 12589; + this.match(OracleSqlParser.BY); + this.state = 12590; + this.match(OracleSqlParser.CHARACTER); + break; + case 1226: + this.state = 12591; + this.match(OracleSqlParser.NULL_); + this.state = 12592; + this.match(OracleSqlParser.DEFINED); + this.state = 12593; + this.match(OracleSqlParser.AS); + this.state = 12594; + this.match(OracleSqlParser.CHARACTER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 13: + this.state = 12597; + this.match(OracleSqlParser.SERDE); + this.state = 12598; + this.quoted_string(); + this.state = 12614; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 12599; + this.match(OracleSqlParser.WITH); + this.state = 12600; + this.match(OracleSqlParser.SERDEPROPERTIES); + + this.state = 12601; + this.quoted_string(); + this.state = 12602; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 12603; + this.quoted_string(); + this.state = 12611; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12604; + this.match(OracleSqlParser.COMMA); + this.state = 12605; + this.quoted_string(); + this.state = 12606; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 12607; + this.quoted_string(); + this.state = 12613; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + break; + + } + this.state = 12619; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1595,this._ctx); + if(la_===1) { + this.state = 12618; + this.external_table_hive(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_hive_parameter_map() { + let localctx = new External_table_hive_parameter_mapContext(this, this._ctx, this.state); + this.enterRule(localctx, 1260, OracleSqlParser.RULE_external_table_hive_parameter_map); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12621; + this.match(OracleSqlParser.LEFT_CURLY_PAREN); + + this.state = 12622; + this.external_table_hive_parameter_map_entry(); + this.state = 12627; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12623; + this.match(OracleSqlParser.COMMA); + this.state = 12624; + this.external_table_hive_parameter_map_entry(); + this.state = 12629; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 12630; + this.match(OracleSqlParser.RIGHT_CURLY_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_hive_parameter_map_entry() { + let localctx = new External_table_hive_parameter_map_entryContext(this, this._ctx, this.state); + this.enterRule(localctx, 1262, OracleSqlParser.RULE_external_table_hive_parameter_map_entry); + var _la = 0; + try { + this.state = 12659; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1599,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 12632; + this.id_expression(); + this.state = 12633; + this.match(OracleSqlParser.BINDVAR); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 12635; + this.id_expression(); + this.state = 12636; + this.match(OracleSqlParser.COLON); + this.state = 12637; + this.match(OracleSqlParser.LEFT_BRACKET); + this.state = 12638; + this.id_expression(); + this.state = 12643; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12639; + this.match(OracleSqlParser.COMMA); + this.state = 12640; + this.id_expression(); + this.state = 12645; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 12646; + this.match(OracleSqlParser.RIGHT_BRACKET); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 12648; + this.match(OracleSqlParser.LEFT_BRACKET); + this.state = 12649; + this.id_expression(); + this.state = 12654; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12650; + this.match(OracleSqlParser.COMMA); + this.state = 12651; + this.id_expression(); + this.state = 12656; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 12657; + this.match(OracleSqlParser.RIGHT_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + external_table_directory() { + let localctx = new External_table_directoryContext(this, this._ctx, this.state); + this.enterRule(localctx, 1264, OracleSqlParser.RULE_external_table_directory); + var _la = 0; + try { + this.state = 12676; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1602,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 12661; + this.directory_name(); + this.state = 12662; + this.match(OracleSqlParser.COLON); + this.state = 12663; + this.match(OracleSqlParser.CHAR_STRING); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 12671; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 142606335) !== 0) || _la===2478) { + this.state = 12665; + this.directory_name(); + this.state = 12667; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 12666; + this.object_name(); + } + + this.state = 12669; + this.match(OracleSqlParser.COLON); + } + + this.state = 12673; + this.match(OracleSqlParser.CHAR_STRING); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 12674; + this.quoted_string(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 12675; + this.variable_name(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + row_movement_clause() { + let localctx = new Row_movement_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1266, OracleSqlParser.RULE_row_movement_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12679; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===427 || _la===497) { + this.state = 12678; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 12681; + this.match(OracleSqlParser.ROW); + this.state = 12682; + this.match(OracleSqlParser.MOVEMENT); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + flashback_archive_clause() { + let localctx = new Flashback_archive_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1268, OracleSqlParser.RULE_flashback_archive_clause); + try { + this.state = 12692; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 603: + this.enterOuterAlt(localctx, 1); + this.state = 12684; + this.match(OracleSqlParser.FLASHBACK); + this.state = 12685; + this.match(OracleSqlParser.ARCHIVE); + this.state = 12687; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1604,this._ctx); + if(la_===1) { + this.state = 12686; + localctx.fa = this.id_expression(); + + } + break; + case 1135: + this.enterOuterAlt(localctx, 2); + this.state = 12689; + this.match(OracleSqlParser.NO); + this.state = 12690; + this.match(OracleSqlParser.FLASHBACK); + this.state = 12691; + this.match(OracleSqlParser.ARCHIVE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + log_grp() { + let localctx = new Log_grpContext(this, this._ctx, this.state); + this.enterRule(localctx, 1270, OracleSqlParser.RULE_log_grp); + try { + this.state = 12696; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + this.enterOuterAlt(localctx, 1); + this.state = 12694; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.enterOuterAlt(localctx, 2); + this.state = 12695; + this.identifier(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + supplemental_table_logging() { + let localctx = new Supplemental_table_loggingContext(this, this._ctx, this.state); + this.enterRule(localctx, 1272, OracleSqlParser.RULE_supplemental_table_logging); + var _la = 0; + try { + this.state = 12738; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.enterOuterAlt(localctx, 1); + this.state = 12698; + this.match(OracleSqlParser.ADD); + this.state = 12699; + this.match(OracleSqlParser.SUPPLEMENTAL); + this.state = 12700; + this.match(OracleSqlParser.LOG); + this.state = 12703; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 647: + this.state = 12701; + this.supplemental_log_grp_clause(); + break; + case 349: + this.state = 12702; + this.supplemental_id_key_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12714; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12705; + this.match(OracleSqlParser.COMMA); + this.state = 12706; + this.match(OracleSqlParser.SUPPLEMENTAL); + this.state = 12707; + this.match(OracleSqlParser.LOG); + this.state = 12710; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 647: + this.state = 12708; + this.supplemental_log_grp_clause(); + break; + case 349: + this.state = 12709; + this.supplemental_id_key_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12716; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 467: + this.enterOuterAlt(localctx, 2); + this.state = 12717; + this.match(OracleSqlParser.DROP); + this.state = 12718; + this.match(OracleSqlParser.SUPPLEMENTAL); + this.state = 12719; + this.match(OracleSqlParser.LOG); + this.state = 12723; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 349: + this.state = 12720; + this.supplemental_id_key_clause(); + break; + case 647: + this.state = 12721; + this.match(OracleSqlParser.GROUP); + this.state = 12722; + this.log_grp(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12735; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12725; + this.match(OracleSqlParser.COMMA); + this.state = 12726; + this.match(OracleSqlParser.SUPPLEMENTAL); + this.state = 12727; + this.match(OracleSqlParser.LOG); + this.state = 12731; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 349: + this.state = 12728; + this.supplemental_id_key_clause(); + break; + case 647: + this.state = 12729; + this.match(OracleSqlParser.GROUP); + this.state = 12730; + this.log_grp(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12737; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + supplemental_log_grp_clause() { + let localctx = new Supplemental_log_grp_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1274, OracleSqlParser.RULE_supplemental_log_grp_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12740; + this.match(OracleSqlParser.GROUP); + this.state = 12741; + this.log_grp(); + this.state = 12742; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12743; + this.column_name(); + this.state = 12746; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135) { + this.state = 12744; + this.match(OracleSqlParser.NO); + this.state = 12745; + this.match(OracleSqlParser.LOG); + } + + this.state = 12756; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 12748; + this.match(OracleSqlParser.COMMA); + this.state = 12749; + this.column_name(); + this.state = 12752; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135) { + this.state = 12750; + this.match(OracleSqlParser.NO); + this.state = 12751; + this.match(OracleSqlParser.LOG); + } + + this.state = 12758; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 12759; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 12761; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===44) { + this.state = 12760; + this.match(OracleSqlParser.ALWAYS); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + supplemental_id_key_clause() { + let localctx = new Supplemental_id_key_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1276, OracleSqlParser.RULE_supplemental_id_key_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12763; + this.match(OracleSqlParser.DATA); + this.state = 12764; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12779; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 12766; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 12765; + this.match(OracleSqlParser.COMMA); + } + + this.state = 12777; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 38: + this.state = 12768; + this.match(OracleSqlParser.ALL); + break; + case 1449: + this.state = 12769; + this.match(OracleSqlParser.PRIMARY); + this.state = 12770; + this.match(OracleSqlParser.KEY); + break; + case 2181: + this.state = 12771; + this.match(OracleSqlParser.UNIQUE); + this.state = 12773; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===715) { + this.state = 12772; + this.match(OracleSqlParser.INDEX); + } + + break; + case 616: + this.state = 12775; + this.match(OracleSqlParser.FOREIGN); + this.state = 12776; + this.match(OracleSqlParser.KEY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12781; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===38 || _la===616 || _la===1449 || _la===2181 || _la===2451); + this.state = 12783; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 12784; + this.match(OracleSqlParser.COLUMNS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + allocate_extent_clause() { + let localctx = new Allocate_extent_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1278, OracleSqlParser.RULE_allocate_extent_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12786; + this.match(OracleSqlParser.ALLOCATE); + this.state = 12787; + this.match(OracleSqlParser.EXTENT); + this.state = 12800; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 12788; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 12795; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 12795; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1697: + this.state = 12789; + this.match(OracleSqlParser.SIZE); + this.state = 12790; + this.size_clause(); + break; + case 350: + this.state = 12791; + this.match(OracleSqlParser.DATAFILE); + this.state = 12792; + localctx.datafile = this.match(OracleSqlParser.CHAR_STRING); + break; + case 757: + this.state = 12793; + this.match(OracleSqlParser.INSTANCE); + this.state = 12794; + localctx.inst_num = this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12797; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===350 || _la===757 || _la===1697); + this.state = 12799; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + deallocate_unused_clause() { + let localctx = new Deallocate_unused_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1280, OracleSqlParser.RULE_deallocate_unused_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12802; + this.match(OracleSqlParser.DEALLOCATE); + this.state = 12803; + this.match(OracleSqlParser.UNUSED); + this.state = 12806; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===812) { + this.state = 12804; + this.match(OracleSqlParser.KEEP); + this.state = 12805; + this.size_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + shrink_clause() { + let localctx = new Shrink_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1282, OracleSqlParser.RULE_shrink_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12808; + this.match(OracleSqlParser.SHRINK); + this.state = 12809; + this.match(OracleSqlParser.SPACE_KEYWORD); + this.state = 12811; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===246) { + this.state = 12810; + this.match(OracleSqlParser.COMPACT); + } + + this.state = 12814; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 12813; + this.match(OracleSqlParser.CASCADE); + } + + this.state = 12817; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===200) { + this.state = 12816; + this.match(OracleSqlParser.CHECK); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + records_per_block_clause() { + let localctx = new Records_per_block_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1284, OracleSqlParser.RULE_records_per_block_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12820; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===951 || _la===1121) { + this.state = 12819; + _la = this._input.LA(1); + if(!(_la===951 || _la===1121)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 12822; + this.match(OracleSqlParser.RECORDS_PER_BLOCK); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + upgrade_table_clause() { + let localctx = new Upgrade_table_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1286, OracleSqlParser.RULE_upgrade_table_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12824; + this.match(OracleSqlParser.UPGRADE); + + this.state = 12826; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 12825; + this.match(OracleSqlParser.NOT); + } + + this.state = 12828; + this.match(OracleSqlParser.INCLUDING); + this.state = 12829; + this.match(OracleSqlParser.DATA); + this.state = 12831; + this.column_properties(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + truncate_table() { + let localctx = new Truncate_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 1288, OracleSqlParser.RULE_truncate_table); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12833; + this.match(OracleSqlParser.TRUNCATE); + this.state = 12834; + this.match(OracleSqlParser.TABLE); + this.state = 12835; + this.tableview_name(); + this.state = 12842; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1445 || _la===1473) { + this.state = 12836; + _la = this._input.LA(1); + if(!(_la===1445 || _la===1473)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12840; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===917) { + this.state = 12837; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 12838; + this.match(OracleSqlParser.VIEW); + this.state = 12839; + this.match(OracleSqlParser.LOG); + } + + } + + this.state = 12852; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===467 || _la===1585) { + this.state = 12849; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 467: + this.state = 12844; + this.match(OracleSqlParser.DROP); + this.state = 12846; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===38) { + this.state = 12845; + this.match(OracleSqlParser.ALL); + } + + break; + case 1585: + this.state = 12848; + this.match(OracleSqlParser.REUSE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 12851; + this.match(OracleSqlParser.STORAGE); + } + + this.state = 12855; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 12854; + this.match(OracleSqlParser.CASCADE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_table() { + let localctx = new Drop_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 1290, OracleSqlParser.RULE_drop_table); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12857; + this.match(OracleSqlParser.DROP); + this.state = 12858; + this.match(OracleSqlParser.TABLE); + this.state = 12859; + this.tableview_name(); + this.state = 12862; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 12860; + this.match(OracleSqlParser.IF); + this.state = 12861; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 12866; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1638,this._ctx); + if(la_===1) { + this.state = 12864; + this.match(OracleSqlParser.AS); + this.state = 12865; + this.tableview_name(); + + } + this.state = 12870; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 12868; + this.match(OracleSqlParser.CASCADE); + this.state = 12869; + _la = this._input.LA(1); + if(!(_la===284 || _la===285)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 12873; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1473) { + this.state = 12872; + this.match(OracleSqlParser.PURGE); + } + + this.state = 12877; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 12875; + this.match(OracleSqlParser.AS); + this.state = 12876; + this.table_alias(); + } + + this.state = 12880; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 12879; + this.match(OracleSqlParser.FORCE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_tablespace() { + let localctx = new Drop_tablespaceContext(this, this._ctx, this.state); + this.enterRule(localctx, 1292, OracleSqlParser.RULE_drop_tablespace); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12882; + this.match(OracleSqlParser.DROP); + this.state = 12883; + this.match(OracleSqlParser.TABLESPACE); + this.state = 12884; + localctx.ts = this.id_expression(); + this.state = 12887; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 12885; + this.match(OracleSqlParser.IF); + this.state = 12886; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 12893; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===467 || _la===812) { + this.state = 12889; + _la = this._input.LA(1); + if(!(_la===467 || _la===812)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12891; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1488) { + this.state = 12890; + this.match(OracleSqlParser.QUOTA); + } + + } + + this.state = 12896; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===703) { + this.state = 12895; + this.including_contents_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_tablespace_set() { + let localctx = new Drop_tablespace_setContext(this, this._ctx, this.state); + this.enterRule(localctx, 1294, OracleSqlParser.RULE_drop_tablespace_set); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12898; + this.match(OracleSqlParser.DROP); + this.state = 12899; + this.match(OracleSqlParser.TABLESPACE); + this.state = 12900; + this.match(OracleSqlParser.SET); + this.state = 12901; + localctx.tss = this.id_expression(); + this.state = 12903; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===703) { + this.state = 12902; + this.including_contents_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + including_contents_clause() { + let localctx = new Including_contents_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1296, OracleSqlParser.RULE_including_contents_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12905; + this.match(OracleSqlParser.INCLUDING); + this.state = 12906; + this.match(OracleSqlParser.CONTENTS); + this.state = 12909; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===49 || _la===812) { + this.state = 12907; + _la = this._input.LA(1); + if(!(_la===49 || _la===812)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 12908; + this.match(OracleSqlParser.DATAFILES); + } + + this.state = 12913; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 12911; + this.match(OracleSqlParser.CASCADE); + this.state = 12912; + this.match(OracleSqlParser.CONSTRAINTS); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_view() { + let localctx = new Drop_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 1298, OracleSqlParser.RULE_drop_view); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12915; + this.match(OracleSqlParser.DROP); + this.state = 12916; + this.match(OracleSqlParser.VIEW); + this.state = 12917; + this.tableview_name(); + this.state = 12920; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===689) { + this.state = 12918; + this.match(OracleSqlParser.IF); + this.state = 12919; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 12924; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 12922; + this.match(OracleSqlParser.CASCADE); + this.state = 12923; + this.match(OracleSqlParser.CONSTRAINT); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + comment_on_column() { + let localctx = new Comment_on_columnContext(this, this._ctx, this.state); + this.enterRule(localctx, 1300, OracleSqlParser.RULE_comment_on_column); + try { + this.enterOuterAlt(localctx, 1); + this.state = 12926; + this.match(OracleSqlParser.COMMENT); + this.state = 12927; + this.match(OracleSqlParser.ON); + this.state = 12928; + this.match(OracleSqlParser.COLUMN); + this.state = 12929; + this.column_name(); + this.state = 12930; + this.match(OracleSqlParser.IS); + this.state = 12931; + this.quoted_string(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + enable_or_disable() { + let localctx = new Enable_or_disableContext(this, this._ctx, this.state); + this.enterRule(localctx, 1302, OracleSqlParser.RULE_enable_or_disable); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12933; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + allow_or_disallow() { + let localctx = new Allow_or_disallowContext(this, this._ctx, this.state); + this.enterRule(localctx, 1304, OracleSqlParser.RULE_allow_or_disallow); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12935; + _la = this._input.LA(1); + if(!(_la===40 || _la===433)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_synonym() { + let localctx = new Alter_synonymContext(this, this._ctx, this.state); + this.enterRule(localctx, 1306, OracleSqlParser.RULE_alter_synonym); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12937; + this.match(OracleSqlParser.ALTER); + this.state = 12939; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1471) { + this.state = 12938; + this.match(OracleSqlParser.PUBLIC); + } + + this.state = 12941; + this.match(OracleSqlParser.SYNONYM); + this.state = 12945; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1653,this._ctx); + if(la_===1) { + this.state = 12942; + this.schema_name(); + this.state = 12943; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 12947; + this.synonym_name(); + this.state = 12948; + _la = this._input.LA(1); + if(!(_la===249 || _la===480 || _la===1130)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_synonym() { + let localctx = new Create_synonymContext(this, this._ctx, this.state); + this.enterRule(localctx, 1308, OracleSqlParser.RULE_create_synonym); + var _la = 0; + try { + this.state = 12997; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1662,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 12950; + this.match(OracleSqlParser.CREATE); + this.state = 12953; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 12951; + this.match(OracleSqlParser.OR); + this.state = 12952; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 12955; + this.match(OracleSqlParser.PUBLIC); + this.state = 12956; + this.match(OracleSqlParser.SYNONYM); + this.state = 12957; + this.synonym_name(); + this.state = 12958; + this.match(OracleSqlParser.FOR); + this.state = 12962; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1655,this._ctx); + if(la_===1) { + this.state = 12959; + this.schema_name(); + this.state = 12960; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 12964; + this.schema_object_name(); + this.state = 12967; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2453) { + this.state = 12965; + this.match(OracleSqlParser.AT_SIGN); + this.state = 12966; + this.link_name(); + } + + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 12969; + this.match(OracleSqlParser.CREATE); + this.state = 12972; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 12970; + this.match(OracleSqlParser.OR); + this.state = 12971; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 12974; + this.match(OracleSqlParser.SYNONYM); + this.state = 12978; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1658,this._ctx); + if(la_===1) { + this.state = 12975; + this.schema_name(); + this.state = 12976; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 12980; + this.synonym_name(); + this.state = 12981; + this.match(OracleSqlParser.FOR); + this.state = 12985; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1659,this._ctx); + if(la_===1) { + this.state = 12982; + this.schema_name(); + this.state = 12983; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 12987; + this.schema_object_name(); + this.state = 12995; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2453) { + this.state = 12988; + this.match(OracleSqlParser.AT_SIGN); + this.state = 12992; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1660,this._ctx); + if(la_===1) { + this.state = 12989; + this.schema_name(); + this.state = 12990; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 12994; + this.link_name(); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_synonym() { + let localctx = new Drop_synonymContext(this, this._ctx, this.state); + this.enterRule(localctx, 1310, OracleSqlParser.RULE_drop_synonym); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 12999; + this.match(OracleSqlParser.DROP); + this.state = 13001; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1471) { + this.state = 13000; + this.match(OracleSqlParser.PUBLIC); + } + + this.state = 13003; + this.match(OracleSqlParser.SYNONYM); + this.state = 13007; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1664,this._ctx); + if(la_===1) { + this.state = 13004; + this.schema_name(); + this.state = 13005; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 13009; + this.synonym_name(); + this.state = 13011; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 13010; + this.match(OracleSqlParser.FORCE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_spfile() { + let localctx = new Create_spfileContext(this, this._ctx, this.state); + this.enterRule(localctx, 1312, OracleSqlParser.RULE_create_spfile); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13013; + this.match(OracleSqlParser.CREATE); + this.state = 13014; + this.match(OracleSqlParser.SPFILE); + this.state = 13017; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2469) { + this.state = 13015; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 13016; + this.spfile_name(); + } + + this.state = 13019; + this.match(OracleSqlParser.FROM); + this.state = 13030; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1389: + this.state = 13020; + this.match(OracleSqlParser.PFILE); + this.state = 13023; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2469) { + this.state = 13021; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 13022; + this.pfile_name(); + } + + this.state = 13027; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 13025; + this.match(OracleSqlParser.AS); + this.state = 13026; + this.match(OracleSqlParser.COPY); + } + + break; + case 940: + this.state = 13029; + this.match(OracleSqlParser.MEMORY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + spfile_name() { + let localctx = new Spfile_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1314, OracleSqlParser.RULE_spfile_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13032; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pfile_name() { + let localctx = new Pfile_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1316, OracleSqlParser.RULE_pfile_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13034; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + comment_on_table() { + let localctx = new Comment_on_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 1318, OracleSqlParser.RULE_comment_on_table); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13036; + this.match(OracleSqlParser.COMMENT); + this.state = 13037; + this.match(OracleSqlParser.ON); + this.state = 13038; + this.match(OracleSqlParser.TABLE); + this.state = 13039; + this.tableview_name(); + this.state = 13040; + this.match(OracleSqlParser.IS); + this.state = 13041; + this.quoted_string(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + comment_on_materialized() { + let localctx = new Comment_on_materializedContext(this, this._ctx, this.state); + this.enterRule(localctx, 1320, OracleSqlParser.RULE_comment_on_materialized); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13043; + this.match(OracleSqlParser.COMMENT); + this.state = 13044; + this.match(OracleSqlParser.ON); + this.state = 13045; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 13046; + this.match(OracleSqlParser.VIEW); + this.state = 13047; + this.tableview_name(); + this.state = 13048; + this.match(OracleSqlParser.IS); + this.state = 13049; + this.quoted_string(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_analytic_view() { + let localctx = new Alter_analytic_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 1322, OracleSqlParser.RULE_alter_analytic_view); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13051; + this.match(OracleSqlParser.ALTER); + this.state = 13052; + this.match(OracleSqlParser.ANALYTIC); + this.state = 13053; + this.match(OracleSqlParser.VIEW); + this.state = 13057; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1670,this._ctx); + if(la_===1) { + this.state = 13054; + this.schema_name(); + this.state = 13055; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 13059; + localctx.av = this.id_expression(); + this.state = 13066; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1557: + this.state = 13060; + this.match(OracleSqlParser.RENAME); + this.state = 13061; + this.match(OracleSqlParser.TO); + this.state = 13062; + this.id_expression(); + break; + case 249: + this.state = 13063; + this.match(OracleSqlParser.COMPILE); + break; + case 21: + this.state = 13064; + this.alter_add_cache_clause(); + break; + case 467: + this.state = 13065; + this.alter_drop_cache_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_add_cache_clause() { + let localctx = new Alter_add_cache_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1324, OracleSqlParser.RULE_alter_add_cache_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13068; + this.match(OracleSqlParser.ADD); + this.state = 13069; + this.match(OracleSqlParser.CACHE); + this.state = 13070; + this.match(OracleSqlParser.MEASURE); + this.state = 13071; + this.match(OracleSqlParser.GROUP); + this.state = 13072; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 13075; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 38: + this.state = 13073; + this.match(OracleSqlParser.ALL); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 13074; + this.measure_list(); + break; + case 2446: + break; + default: + break; + } + this.state = 13077; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 13078; + this.match(OracleSqlParser.LEVELS); + this.state = 13079; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 13080; + this.levels_item(); + this.state = 13085; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13081; + this.match(OracleSqlParser.COMMA); + this.state = 13082; + this.levels_item(); + this.state = 13087; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 13088; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + levels_item() { + let localctx = new Levels_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 1326, OracleSqlParser.RULE_levels_item); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13098; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1675,this._ctx); + if(la_===1) { + this.state = 13093; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1674,this._ctx); + if(la_===1) { + this.state = 13090; + localctx.d = this.id_expression(); + this.state = 13091; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 13095; + localctx.h = this.id_expression(); + this.state = 13096; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 13100; + localctx.l = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + measure_list() { + let localctx = new Measure_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 1328, OracleSqlParser.RULE_measure_list); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13102; + this.id_expression(); + this.state = 13107; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13103; + this.match(OracleSqlParser.COMMA); + this.state = 13104; + this.id_expression(); + this.state = 13109; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_drop_cache_clause() { + let localctx = new Alter_drop_cache_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1330, OracleSqlParser.RULE_alter_drop_cache_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13110; + this.match(OracleSqlParser.DROP); + this.state = 13111; + this.match(OracleSqlParser.CACHE); + this.state = 13112; + this.match(OracleSqlParser.MEASURE); + this.state = 13113; + this.match(OracleSqlParser.GROUP); + this.state = 13114; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 13117; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 38: + this.state = 13115; + this.match(OracleSqlParser.ALL); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 13116; + this.measure_list(); + break; + case 2446: + break; + default: + break; + } + this.state = 13119; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 13120; + this.match(OracleSqlParser.LEVELS); + this.state = 13121; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 13122; + this.levels_item(); + this.state = 13127; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13123; + this.match(OracleSqlParser.COMMA); + this.state = 13124; + this.levels_item(); + this.state = 13129; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 13130; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_attribute_dimension() { + let localctx = new Alter_attribute_dimensionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1332, OracleSqlParser.RULE_alter_attribute_dimension); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13132; + this.match(OracleSqlParser.ALTER); + this.state = 13133; + this.match(OracleSqlParser.ATTRIBUTE); + this.state = 13134; + this.match(OracleSqlParser.DIMENSION); + this.state = 13138; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1679,this._ctx); + if(la_===1) { + this.state = 13135; + this.schema_name(); + this.state = 13136; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 13140; + localctx.ad = this.id_expression(); + this.state = 13145; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1557: + this.state = 13141; + this.match(OracleSqlParser.RENAME); + this.state = 13142; + this.match(OracleSqlParser.TO); + this.state = 13143; + localctx.nad = this.id_expression(); + break; + case 249: + this.state = 13144; + this.match(OracleSqlParser.COMPILE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_audit_policy() { + let localctx = new Alter_audit_policyContext(this, this._ctx, this.state); + this.enterRule(localctx, 1334, OracleSqlParser.RULE_alter_audit_policy); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13147; + this.match(OracleSqlParser.ALTER); + this.state = 13148; + this.match(OracleSqlParser.AUDIT); + this.state = 13149; + this.match(OracleSqlParser.POLICY); + this.state = 13150; + localctx.p = this.id_expression(); + this.state = 13152; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===21) { + this.state = 13151; + this.match(OracleSqlParser.ADD); + } + + this.state = 13167; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1686,this._ctx); + switch(la_) { + case 1: + this.state = 13155; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1682,this._ctx); + if(la_===1) { + this.state = 13154; + this.privilege_audit_clause(); + + } + this.state = 13158; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1683,this._ctx); + if(la_===1) { + this.state = 13157; + this.action_audit_clause(); + + } + this.state = 13161; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1684,this._ctx); + if(la_===1) { + this.state = 13160; + this.role_audit_clause(); + + } + break; + + case 2: + this.state = 13165; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1685,this._ctx); + if(la_===1) { + this.state = 13163; + this.match(OracleSqlParser.ONLY); + this.state = 13164; + this.match(OracleSqlParser.TOPLEVEL); + + } + break; + + } + this.state = 13170; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===467) { + this.state = 13169; + this.match(OracleSqlParser.DROP); + } + + this.state = 13185; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1692,this._ctx); + switch(la_) { + case 1: + this.state = 13173; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1457) { + this.state = 13172; + this.privilege_audit_clause(); + } + + this.state = 13176; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===12) { + this.state = 13175; + this.action_audit_clause(); + } + + this.state = 13179; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1593) { + this.state = 13178; + this.role_audit_clause(); + } + + break; + + case 2: + this.state = 13183; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1256) { + this.state = 13181; + this.match(OracleSqlParser.ONLY); + this.state = 13182; + this.match(OracleSqlParser.TOPLEVEL); + } + + break; + + } + this.state = 13195; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===264) { + this.state = 13187; + this.match(OracleSqlParser.CONDITION); + this.state = 13193; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 467: + this.state = 13188; + this.match(OracleSqlParser.DROP); + break; + case 2441: + this.state = 13189; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 13190; + this.match(OracleSqlParser.EVALUATE); + this.state = 13191; + this.match(OracleSqlParser.PER); + this.state = 13192; + _la = this._input.LA(1); + if(!(_la===757 || _la===1665 || _la===1741)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_cluster() { + let localctx = new Alter_clusterContext(this, this._ctx, this.state); + this.enterRule(localctx, 1336, OracleSqlParser.RULE_alter_cluster); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13197; + this.match(OracleSqlParser.ALTER); + this.state = 13198; + this.match(OracleSqlParser.CLUSTER); + this.state = 13199; + this.cluster_name(); + this.state = 13206; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 13206; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 260: + case 741: + case 929: + case 1367: + case 1370: + case 1760: + this.state = 13200; + this.physical_attributes_clause(); + break; + case 1697: + this.state = 13201; + this.match(OracleSqlParser.SIZE); + this.state = 13202; + this.size_clause(); + break; + case 39: + this.state = 13203; + this.allocate_extent_clause(); + break; + case 375: + this.state = 13204; + this.deallocate_unused_clause(); + break; + case 166: + case 1064: + this.state = 13205; + this.cache_or_nocache(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13208; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===39 || _la===166 || _la===260 || _la===375 || _la===741 || _la===929 || _la===1064 || _la===1367 || _la===1370 || _la===1697 || _la===1760); + this.state = 13211; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 13210; + this.parallel_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_analytic_view() { + let localctx = new Drop_analytic_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 1338, OracleSqlParser.RULE_drop_analytic_view); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13213; + this.match(OracleSqlParser.DROP); + this.state = 13214; + this.match(OracleSqlParser.ANALYTIC); + this.state = 13215; + this.match(OracleSqlParser.VIEW); + this.state = 13219; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1698,this._ctx); + if(la_===1) { + this.state = 13216; + this.schema_name(); + this.state = 13217; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 13221; + localctx.av = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_attribute_dimension() { + let localctx = new Drop_attribute_dimensionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1340, OracleSqlParser.RULE_drop_attribute_dimension); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13223; + this.match(OracleSqlParser.DROP); + this.state = 13224; + this.match(OracleSqlParser.ATTRIBUTE); + this.state = 13225; + this.match(OracleSqlParser.DIMENSION); + this.state = 13229; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1699,this._ctx); + if(la_===1) { + this.state = 13226; + this.schema_name(); + this.state = 13227; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 13231; + localctx.ad = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_audit_policy() { + let localctx = new Drop_audit_policyContext(this, this._ctx, this.state); + this.enterRule(localctx, 1342, OracleSqlParser.RULE_drop_audit_policy); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13233; + this.match(OracleSqlParser.DROP); + this.state = 13234; + this.match(OracleSqlParser.AUDIT); + this.state = 13235; + this.match(OracleSqlParser.POLICY); + this.state = 13236; + localctx.p = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_flashback_archive() { + let localctx = new Drop_flashback_archiveContext(this, this._ctx, this.state); + this.enterRule(localctx, 1344, OracleSqlParser.RULE_drop_flashback_archive); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13238; + this.match(OracleSqlParser.DROP); + this.state = 13239; + this.match(OracleSqlParser.FLASHBACK); + this.state = 13240; + this.match(OracleSqlParser.ARCHIVE); + this.state = 13241; + localctx.fa = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_cluster() { + let localctx = new Drop_clusterContext(this, this._ctx, this.state); + this.enterRule(localctx, 1346, OracleSqlParser.RULE_drop_cluster); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13243; + this.match(OracleSqlParser.DROP); + this.state = 13244; + this.match(OracleSqlParser.CLUSTER); + this.state = 13245; + this.cluster_name(); + this.state = 13252; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===703) { + this.state = 13246; + this.match(OracleSqlParser.INCLUDING); + this.state = 13247; + this.match(OracleSqlParser.TABLES); + this.state = 13250; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 13248; + this.match(OracleSqlParser.CASCADE); + this.state = 13249; + this.match(OracleSqlParser.CONSTRAINTS); + } + + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_context() { + let localctx = new Drop_contextContext(this, this._ctx, this.state); + this.enterRule(localctx, 1348, OracleSqlParser.RULE_drop_context); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13254; + this.match(OracleSqlParser.DROP); + this.state = 13255; + this.match(OracleSqlParser.CONTEXT); + this.state = 13256; + localctx.ns = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_directory() { + let localctx = new Drop_directoryContext(this, this._ctx, this.state); + this.enterRule(localctx, 1350, OracleSqlParser.RULE_drop_directory); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13258; + this.match(OracleSqlParser.DROP); + this.state = 13259; + this.match(OracleSqlParser.DIRECTORY); + this.state = 13260; + localctx.dn = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_diskgroup() { + let localctx = new Drop_diskgroupContext(this, this._ctx, this.state); + this.enterRule(localctx, 1352, OracleSqlParser.RULE_drop_diskgroup); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13262; + this.match(OracleSqlParser.DROP); + this.state = 13263; + this.match(OracleSqlParser.DISKGROUP); + this.state = 13264; + localctx.dgn = this.id_expression(); + this.state = 13273; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===538 || _la===614 || _la===703) { + this.state = 13270; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 614: + case 703: + this.state = 13266; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 13265; + this.match(OracleSqlParser.FORCE); + } + + this.state = 13268; + this.match(OracleSqlParser.INCLUDING); + break; + case 538: + this.state = 13269; + this.match(OracleSqlParser.EXCLUDING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13272; + this.match(OracleSqlParser.CONTENTS); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_edition() { + let localctx = new Drop_editionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1354, OracleSqlParser.RULE_drop_edition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13275; + this.match(OracleSqlParser.DROP); + this.state = 13276; + this.match(OracleSqlParser.EDITION); + this.state = 13277; + localctx.e = this.id_expression(); + this.state = 13279; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 13278; + this.match(OracleSqlParser.CASCADE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + truncate_cluster() { + let localctx = new Truncate_clusterContext(this, this._ctx, this.state); + this.enterRule(localctx, 1356, OracleSqlParser.RULE_truncate_cluster); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13281; + this.match(OracleSqlParser.TRUNCATE); + this.state = 13282; + this.match(OracleSqlParser.CLUSTER); + this.state = 13283; + this.cluster_name(); + this.state = 13286; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===467 || _la===1585) { + this.state = 13284; + _la = this._input.LA(1); + if(!(_la===467 || _la===1585)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 13285; + this.match(OracleSqlParser.STORAGE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cache_or_nocache() { + let localctx = new Cache_or_nocacheContext(this, this._ctx, this.state); + this.enterRule(localctx, 1358, OracleSqlParser.RULE_cache_or_nocache); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13288; + _la = this._input.LA(1); + if(!(_la===166 || _la===1064)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + database_name() { + let localctx = new Database_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1360, OracleSqlParser.RULE_database_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13290; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_database() { + let localctx = new Alter_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1362, OracleSqlParser.RULE_alter_database); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13292; + this.match(OracleSqlParser.ALTER); + this.state = 13293; + this.database_clause(); + this.state = 13309; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1707,this._ctx); + switch(la_) { + case 1: + this.state = 13294; + this.startup_clauses(); + break; + + case 2: + this.state = 13295; + this.recovery_clauses(); + break; + + case 3: + this.state = 13296; + this.database_file_clauses(); + break; + + case 4: + this.state = 13297; + this.logfile_clauses(); + break; + + case 5: + this.state = 13298; + this.controlfile_clauses(); + break; + + case 6: + this.state = 13299; + this.standby_database_clauses(); + break; + + case 7: + this.state = 13300; + this.default_settings_clause(); + break; + + case 8: + this.state = 13301; + this.instance_clauses(); + break; + + case 9: + this.state = 13302; + this.security_clause(); + break; + + case 10: + this.state = 13303; + this.prepare_clause(); + break; + + case 11: + this.state = 13304; + this.drop_mirror_clause(); + break; + + case 12: + this.state = 13305; + this.lost_write_protection(); + break; + + case 13: + this.state = 13306; + this.cdb_fleet_clauses(); + break; + + case 14: + this.state = 13307; + this.property_clauses(); + break; + + case 15: + this.state = 13308; + this.replay_upgrade_clauses(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + database_clause() { + let localctx = new Database_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1364, OracleSqlParser.RULE_database_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13312; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1407) { + this.state = 13311; + this.match(OracleSqlParser.PLUGGABLE); + } + + this.state = 13314; + this.match(OracleSqlParser.DATABASE); + this.state = 13316; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1709,this._ctx); + if(la_===1) { + this.state = 13315; + this.database_name(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + startup_clauses() { + let localctx = new Startup_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1366, OracleSqlParser.RULE_startup_clauses); + var _la = 0; + try { + this.state = 13337; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1714,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 13318; + this.match(OracleSqlParser.MOUNT); + this.state = 13321; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===216 || _la===1732) { + this.state = 13319; + _la = this._input.LA(1); + if(!(_la===216 || _la===1732)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 13320; + this.match(OracleSqlParser.DATABASE); + } + + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 13323; + this.match(OracleSqlParser.OPEN); + this.state = 13326; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1503) { + this.state = 13324; + this.match(OracleSqlParser.READ); + this.state = 13325; + this.match(OracleSqlParser.WRITE); + } + + this.state = 13329; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1171 || _la===1563) { + this.state = 13328; + this.resetlogs_or_noresetlogs(); + } + + this.state = 13332; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===464 || _la===2209) { + this.state = 13331; + this.upgrade_or_downgrade(); + } + + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 13334; + this.match(OracleSqlParser.OPEN); + this.state = 13335; + this.match(OracleSqlParser.READ); + this.state = 13336; + this.match(OracleSqlParser.ONLY); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + resetlogs_or_noresetlogs() { + let localctx = new Resetlogs_or_noresetlogsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1368, OracleSqlParser.RULE_resetlogs_or_noresetlogs); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13339; + _la = this._input.LA(1); + if(!(_la===1171 || _la===1563)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + upgrade_or_downgrade() { + let localctx = new Upgrade_or_downgradeContext(this, this._ctx, this.state); + this.enterRule(localctx, 1370, OracleSqlParser.RULE_upgrade_or_downgrade); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13341; + _la = this._input.LA(1); + if(!(_la===464 || _la===2209)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + recovery_clauses() { + let localctx = new Recovery_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1372, OracleSqlParser.RULE_recovery_clauses); + try { + this.state = 13348; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1715,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 13343; + this.general_recovery(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 13344; + this.managed_standby_recovery(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 13345; + this.begin_or_end(); + this.state = 13346; + this.match(OracleSqlParser.BACKUP); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + begin_or_end() { + let localctx = new Begin_or_endContext(this, this._ctx, this.state); + this.enterRule(localctx, 1374, OracleSqlParser.RULE_begin_or_end); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13350; + _la = this._input.LA(1); + if(!(_la===113 || _la===506)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + general_recovery() { + let localctx = new General_recoveryContext(this, this._ctx, this.state); + this.enterRule(localctx, 1376, OracleSqlParser.RULE_general_recovery); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13352; + this.match(OracleSqlParser.RECOVER); + this.state = 13354; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1716,this._ctx); + if(la_===1) { + this.state = 13353; + this.match(OracleSqlParser.AUTOMATIC); + + } + this.state = 13358; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1717,this._ctx); + if(la_===1) { + this.state = 13356; + this.match(OracleSqlParser.FROM); + this.state = 13357; + this.match(OracleSqlParser.CHAR_STRING); + + } + this.state = 13382; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1723,this._ctx); + switch(la_) { + case 1: + this.state = 13364; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1718,this._ctx); + if(la_===1) { + this.state = 13360; + this.full_database_recovery(); + + } else if(la_===2) { + this.state = 13361; + this.partial_database_recovery(); + + } else if(la_===3) { + this.state = 13362; + this.match(OracleSqlParser.LOGFILE); + this.state = 13363; + this.match(OracleSqlParser.CHAR_STRING); + + } + this.state = 13375; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===40 || _la===1146 || _la===1331 || _la===2093) { + this.state = 13371; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 13371; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2093: + this.state = 13366; + this.match(OracleSqlParser.TEST); + break; + case 40: + this.state = 13367; + this.match(OracleSqlParser.ALLOW); + this.state = 13368; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 13369; + this.match(OracleSqlParser.CORRUPTION); + break; + case 1146: + case 1331: + this.state = 13370; + this.parallel_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13373; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===40 || _la===1146 || _la===1331 || _la===2093); + } + + break; + + case 2: + this.state = 13377; + this.match(OracleSqlParser.CONTINUE); + this.state = 13379; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 13378; + this.match(OracleSqlParser.DEFAULT); + } + + break; + + case 3: + this.state = 13381; + this.match(OracleSqlParser.CANCEL); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + full_database_recovery() { + let localctx = new Full_database_recoveryContext(this, this._ctx, this.state); + this.enterRule(localctx, 1378, OracleSqlParser.RULE_full_database_recovery); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13385; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1732) { + this.state = 13384; + this.match(OracleSqlParser.STANDBY); + } + + this.state = 13387; + this.match(OracleSqlParser.DATABASE); + this.state = 13407; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1705 || _la===2200 || _la===2244) { + this.state = 13403; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 13403; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2200: + this.state = 13388; + this.match(OracleSqlParser.UNTIL); + this.state = 13395; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 174: + this.state = 13389; + this.match(OracleSqlParser.CANCEL); + break; + case 2110: + this.state = 13390; + this.match(OracleSqlParser.TIME); + this.state = 13391; + this.match(OracleSqlParser.CHAR_STRING); + break; + case 190: + this.state = 13392; + this.match(OracleSqlParser.CHANGE); + this.state = 13393; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 281: + this.state = 13394; + this.match(OracleSqlParser.CONSISTENT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 2244: + this.state = 13397; + this.match(OracleSqlParser.USING); + this.state = 13398; + this.match(OracleSqlParser.BACKUP); + this.state = 13399; + this.match(OracleSqlParser.CONTROLFILE); + break; + case 1705: + this.state = 13400; + this.match(OracleSqlParser.SNAPSHOT); + this.state = 13401; + this.match(OracleSqlParser.TIME); + this.state = 13402; + this.match(OracleSqlParser.CHAR_STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13405; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===1705 || _la===2200 || _la===2244); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + partial_database_recovery() { + let localctx = new Partial_database_recoveryContext(this, this._ctx, this.state); + this.enterRule(localctx, 1380, OracleSqlParser.RULE_partial_database_recovery); + var _la = 0; + try { + this.state = 13430; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1732,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 13409; + this.match(OracleSqlParser.TABLESPACE); + this.state = 13410; + this.tablespace(); + this.state = 13415; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13411; + this.match(OracleSqlParser.COMMA); + this.state = 13412; + this.tablespace(); + this.state = 13417; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 13418; + this.match(OracleSqlParser.DATAFILE); + this.state = 13419; + this.match(OracleSqlParser.CHAR_STRING); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 13420; + this.filenumber(); + this.state = 13426; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2439 || _la===2451) { + this.state = 13424; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2451: + this.state = 13421; + this.match(OracleSqlParser.COMMA); + this.state = 13422; + this.match(OracleSqlParser.CHAR_STRING); + break; + case 2439: + this.state = 13423; + this.filenumber(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13428; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 13429; + this.partial_database_recovery_10g(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + partial_database_recovery_10g() { + let localctx = new Partial_database_recovery_10gContext(this, this._ctx, this.state); + this.enterRule(localctx, 1382, OracleSqlParser.RULE_partial_database_recovery_10g); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13432; + if (!( this.isVersion10())) { + throw new antlr4.error.FailedPredicateException(this, "this.isVersion10()"); + } + this.state = 13433; + this.match(OracleSqlParser.STANDBY); + this.state = 13454; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2078: + this.state = 13434; + this.match(OracleSqlParser.TABLESPACE); + this.state = 13435; + this.tablespace(); + this.state = 13440; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13436; + this.match(OracleSqlParser.COMMA); + this.state = 13437; + this.tablespace(); + this.state = 13442; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 350: + this.state = 13443; + this.match(OracleSqlParser.DATAFILE); + this.state = 13444; + this.match(OracleSqlParser.CHAR_STRING); + break; + case 2439: + this.state = 13445; + this.filenumber(); + this.state = 13451; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2439 || _la===2451) { + this.state = 13449; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2451: + this.state = 13446; + this.match(OracleSqlParser.COMMA); + this.state = 13447; + this.match(OracleSqlParser.CHAR_STRING); + break; + case 2439: + this.state = 13448; + this.filenumber(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13453; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13456; + this.match(OracleSqlParser.UNTIL); + this.state = 13459; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===281) { + this.state = 13457; + this.match(OracleSqlParser.CONSISTENT); + this.state = 13458; + this.match(OracleSqlParser.WITH); + } + + this.state = 13461; + this.match(OracleSqlParser.CONTROLFILE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + managed_standby_recovery() { + let localctx = new Managed_standby_recoveryContext(this, this._ctx, this.state); + this.enterRule(localctx, 1384, OracleSqlParser.RULE_managed_standby_recovery); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13463; + this.match(OracleSqlParser.RECOVER); + this.state = 13498; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 902: + this.state = 13464; + this.match(OracleSqlParser.MANAGED); + this.state = 13465; + this.match(OracleSqlParser.STANDBY); + this.state = 13466; + this.match(OracleSqlParser.DATABASE); + this.state = 13488; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 437: + case 1085: + case 1146: + case 1331: + case 2200: + case 2244: + this.state = 13482; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 13482; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1739,this._ctx); + switch(la_) { + case 1: + this.state = 13467; + this.match(OracleSqlParser.USING); + this.state = 13468; + this.match(OracleSqlParser.CURRENT); + this.state = 13469; + this.match(OracleSqlParser.LOGFILE); + break; + + case 2: + this.state = 13470; + this.match(OracleSqlParser.DISCONNECT); + this.state = 13473; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===626) { + this.state = 13471; + this.match(OracleSqlParser.FROM); + this.state = 13472; + this.match(OracleSqlParser.SESSION); + } + + break; + + case 3: + this.state = 13475; + this.match(OracleSqlParser.NODELAY); + break; + + case 4: + this.state = 13476; + this.match(OracleSqlParser.UNTIL); + this.state = 13477; + this.match(OracleSqlParser.CHANGE); + this.state = 13478; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + + case 5: + this.state = 13479; + this.match(OracleSqlParser.UNTIL); + this.state = 13480; + this.match(OracleSqlParser.CONSISTENT); + break; + + case 6: + this.state = 13481; + this.parallel_clause(); + break; + + } + this.state = 13484; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===437 || _la===1085 || _la===1146 || _la===1331 || _la===2200 || _la===2244); + break; + case 595: + this.state = 13486; + this.match(OracleSqlParser.FINISH); + break; + case 174: + this.state = 13487; + this.match(OracleSqlParser.CANCEL); + break; + case -1: + case 2452: + case 2467: + break; + default: + break; + } + break; + case 2139: + this.state = 13490; + this.match(OracleSqlParser.TO); + this.state = 13491; + this.match(OracleSqlParser.LOGICAL); + this.state = 13492; + this.match(OracleSqlParser.STANDBY); + this.state = 13496; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1742,this._ctx); + switch(la_) { + case 1: + this.state = 13493; + this.db_name(); + break; + + case 2: + this.state = 13494; + this.match(OracleSqlParser.KEEP); + this.state = 13495; + this.match(OracleSqlParser.IDENTITY); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + db_name() { + let localctx = new Db_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1386, OracleSqlParser.RULE_db_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13500; + this.regular_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + database_file_clauses() { + let localctx = new Database_file_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1388, OracleSqlParser.RULE_database_file_clauses); + var _la = 0; + try { + this.state = 13519; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1557: + this.enterOuterAlt(localctx, 1); + this.state = 13502; + this.match(OracleSqlParser.RENAME); + this.state = 13503; + this.match(OracleSqlParser.FILE); + this.state = 13504; + this.filename(); + this.state = 13509; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13505; + this.match(OracleSqlParser.COMMA); + this.state = 13506; + this.filename(); + this.state = 13511; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 13512; + this.match(OracleSqlParser.TO); + this.state = 13513; + this.filename(); + break; + case 319: + this.enterOuterAlt(localctx, 2); + this.state = 13515; + this.create_datafile_clause(); + break; + case 350: + this.enterOuterAlt(localctx, 3); + this.state = 13516; + this.alter_datafile_clause(); + break; + case 2087: + this.enterOuterAlt(localctx, 4); + this.state = 13517; + this.alter_tempfile_clause(); + break; + case 990: + this.enterOuterAlt(localctx, 5); + this.state = 13518; + this.move_datafile_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_datafile_clause() { + let localctx = new Create_datafile_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1390, OracleSqlParser.RULE_create_datafile_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13521; + this.match(OracleSqlParser.CREATE); + this.state = 13522; + this.match(OracleSqlParser.DATAFILE); + this.state = 13525; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 13523; + this.filename(); + break; + case 2439: + this.state = 13524; + this.filenumber(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13534; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13527; + this.match(OracleSqlParser.COMMA); + this.state = 13530; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 13528; + this.filename(); + break; + case 2439: + this.state = 13529; + this.filenumber(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13536; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 13539; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 13537; + this.match(OracleSqlParser.AS); + + this.state = 13538; + this.match(OracleSqlParser.NEW); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_datafile_clause() { + let localctx = new Alter_datafile_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1392, OracleSqlParser.RULE_alter_datafile_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13541; + this.match(OracleSqlParser.DATAFILE); + this.state = 13544; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 13542; + this.filename(); + break; + case 2439: + this.state = 13543; + this.filenumber(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13553; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13546; + this.match(OracleSqlParser.COMMA); + this.state = 13549; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 13547; + this.filename(); + break; + case 2439: + this.state = 13548; + this.filenumber(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13555; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 13567; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1254: + this.state = 13556; + this.match(OracleSqlParser.ONLINE); + break; + case 1241: + this.state = 13557; + this.match(OracleSqlParser.OFFLINE); + this.state = 13560; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===618) { + this.state = 13558; + this.match(OracleSqlParser.FOR); + this.state = 13559; + this.match(OracleSqlParser.DROP); + } + + break; + case 1565: + this.state = 13562; + this.match(OracleSqlParser.RESIZE); + this.state = 13563; + this.size_clause(); + break; + case 93: + this.state = 13564; + this.autoextend_clause(); + break; + case 506: + this.state = 13565; + this.match(OracleSqlParser.END); + this.state = 13566; + this.match(OracleSqlParser.BACKUP); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_tempfile_clause() { + let localctx = new Alter_tempfile_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1394, OracleSqlParser.RULE_alter_tempfile_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13569; + this.match(OracleSqlParser.TEMPFILE); + this.state = 13572; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 13570; + this.filename(); + break; + case 2439: + this.state = 13571; + this.filenumber(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13581; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13574; + this.match(OracleSqlParser.COMMA); + this.state = 13577; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 13575; + this.filename(); + break; + case 2439: + this.state = 13576; + this.filenumber(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13583; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 13592; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1565: + this.state = 13584; + this.match(OracleSqlParser.RESIZE); + this.state = 13585; + this.size_clause(); + break; + case 93: + this.state = 13586; + this.autoextend_clause(); + break; + case 467: + this.state = 13587; + this.match(OracleSqlParser.DROP); + + this.state = 13588; + this.match(OracleSqlParser.INCLUDING); + this.state = 13589; + this.match(OracleSqlParser.DATAFILES); + break; + case 1254: + this.state = 13590; + this.match(OracleSqlParser.ONLINE); + break; + case 1241: + this.state = 13591; + this.match(OracleSqlParser.OFFLINE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + move_datafile_clause() { + let localctx = new Move_datafile_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1396, OracleSqlParser.RULE_move_datafile_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13594; + this.match(OracleSqlParser.MOVE); + this.state = 13595; + this.match(OracleSqlParser.DATAFILE); + this.state = 13598; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 13596; + this.filename(); + break; + case 2439: + this.state = 13597; + this.filenumber(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13607; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13600; + this.match(OracleSqlParser.COMMA); + this.state = 13603; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 13601; + this.filename(); + break; + case 2439: + this.state = 13602; + this.filenumber(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13609; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 13612; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2139) { + this.state = 13610; + this.match(OracleSqlParser.TO); + this.state = 13611; + this.filename(); + } + + this.state = 13615; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 13614; + this.match(OracleSqlParser.REUSE); + } + + this.state = 13618; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===812) { + this.state = 13617; + this.match(OracleSqlParser.KEEP); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + logfile_clauses() { + let localctx = new Logfile_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1398, OracleSqlParser.RULE_logfile_clauses); + var _la = 0; + try { + this.state = 13676; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1773,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 13625; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 66: + this.state = 13620; + this.match(OracleSqlParser.ARCHIVELOG); + this.state = 13622; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===907) { + this.state = 13621; + this.match(OracleSqlParser.MANUAL); + } + + break; + case 1056: + this.state = 13624; + this.match(OracleSqlParser.NOARCHIVELOG); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 13628; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135) { + this.state = 13627; + this.match(OracleSqlParser.NO); + } + + this.state = 13630; + this.match(OracleSqlParser.FORCE); + this.state = 13631; + this.match(OracleSqlParser.LOGGING); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 13632; + this.match(OracleSqlParser.SET); + this.state = 13633; + this.match(OracleSqlParser.STANDBY); + this.state = 13634; + this.match(OracleSqlParser.NOLOGGING); + this.state = 13635; + this.match(OracleSqlParser.FOR); + this.state = 13640; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 349: + this.state = 13636; + this.match(OracleSqlParser.DATA); + this.state = 13637; + this.match(OracleSqlParser.AVAILABILITY); + break; + case 865: + this.state = 13638; + this.match(OracleSqlParser.LOAD); + this.state = 13639; + this.match(OracleSqlParser.PERFORMANCE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 13642; + this.match(OracleSqlParser.RENAME); + this.state = 13643; + this.match(OracleSqlParser.FILE); + this.state = 13644; + this.filename(); + this.state = 13649; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13645; + this.match(OracleSqlParser.COMMA); + this.state = 13646; + this.filename(); + this.state = 13651; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 13652; + this.match(OracleSqlParser.TO); + this.state = 13653; + this.filename(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 13655; + this.match(OracleSqlParser.CLEAR); + this.state = 13657; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2171) { + this.state = 13656; + this.match(OracleSqlParser.UNARCHIVED); + } + + this.state = 13659; + this.match(OracleSqlParser.LOGFILE); + this.state = 13660; + this.logfile_descriptor(); + this.state = 13665; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13661; + this.match(OracleSqlParser.COMMA); + this.state = 13662; + this.logfile_descriptor(); + this.state = 13667; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 13670; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2196) { + this.state = 13668; + this.match(OracleSqlParser.UNRECOVERABLE); + this.state = 13669; + this.match(OracleSqlParser.DATAFILE); + } + + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 13672; + this.add_logfile_clauses(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 13673; + this.drop_logfile_clauses(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 13674; + this.switch_logfile_clause(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 13675; + this.supplemental_db_logging(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_logfile_clauses() { + let localctx = new Add_logfile_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1400, OracleSqlParser.RULE_add_logfile_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13678; + this.match(OracleSqlParser.ADD); + this.state = 13680; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1732) { + this.state = 13679; + this.match(OracleSqlParser.STANDBY); + } + + this.state = 13682; + this.match(OracleSqlParser.LOGFILE); + this.state = 13718; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 647: + case 757: + case 2100: + case 2441: + case 2445: + this.state = 13687; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 757: + this.state = 13683; + this.match(OracleSqlParser.INSTANCE); + this.state = 13684; + this.match(OracleSqlParser.CHAR_STRING); + break; + case 2100: + this.state = 13685; + this.match(OracleSqlParser.THREAD); + this.state = 13686; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 647: + case 2441: + case 2445: + break; + default: + break; + } + this.state = 13690; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 13689; + this.group_redo_logfile(); + this.state = 13692; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===647 || _la===2441 || _la===2445); + break; + case 934: + this.state = 13694; + this.match(OracleSqlParser.MEMBER); + this.state = 13695; + this.filename(); + this.state = 13697; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 13696; + this.match(OracleSqlParser.REUSE); + } + + this.state = 13706; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13699; + this.match(OracleSqlParser.COMMA); + this.state = 13700; + this.filename(); + this.state = 13702; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 13701; + this.match(OracleSqlParser.REUSE); + } + + this.state = 13708; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 13709; + this.match(OracleSqlParser.TO); + this.state = 13710; + this.logfile_descriptor(); + this.state = 13715; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13711; + this.match(OracleSqlParser.COMMA); + this.state = 13712; + this.logfile_descriptor(); + this.state = 13717; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + group_redo_logfile() { + let localctx = new Group_redo_logfileContext(this, this._ctx, this.state); + this.enterRule(localctx, 1402, OracleSqlParser.RULE_group_redo_logfile); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13722; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===647) { + this.state = 13720; + this.match(OracleSqlParser.GROUP); + this.state = 13721; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } + + this.state = 13724; + this.redo_log_file_spec(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_logfile_clauses() { + let localctx = new Drop_logfile_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1404, OracleSqlParser.RULE_drop_logfile_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13726; + this.match(OracleSqlParser.DROP); + this.state = 13728; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1732) { + this.state = 13727; + this.match(OracleSqlParser.STANDBY); + } + + this.state = 13730; + this.match(OracleSqlParser.LOGFILE); + this.state = 13748; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 647: + case 2441: + case 2445: + this.state = 13731; + this.logfile_descriptor(); + this.state = 13736; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13732; + this.match(OracleSqlParser.COMMA); + this.state = 13733; + this.logfile_descriptor(); + this.state = 13738; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 934: + this.state = 13739; + this.match(OracleSqlParser.MEMBER); + this.state = 13740; + this.filename(); + this.state = 13745; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13741; + this.match(OracleSqlParser.COMMA); + this.state = 13742; + this.filename(); + this.state = 13747; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + switch_logfile_clause() { + let localctx = new Switch_logfile_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1406, OracleSqlParser.RULE_switch_logfile_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13750; + this.match(OracleSqlParser.SWITCH); + this.state = 13751; + this.match(OracleSqlParser.ALL); + this.state = 13752; + this.match(OracleSqlParser.LOGFILES); + this.state = 13753; + this.match(OracleSqlParser.TO); + this.state = 13754; + this.match(OracleSqlParser.BLOCKSIZE); + this.state = 13755; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + supplemental_db_logging() { + let localctx = new Supplemental_db_loggingContext(this, this._ctx, this.state); + this.enterRule(localctx, 1408, OracleSqlParser.RULE_supplemental_db_logging); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13757; + this.add_or_drop(); + this.state = 13758; + this.match(OracleSqlParser.SUPPLEMENTAL); + this.state = 13759; + this.match(OracleSqlParser.LOG); + this.state = 13763; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1787,this._ctx); + switch(la_) { + case 1: + this.state = 13760; + this.match(OracleSqlParser.DATA); + break; + + case 2: + this.state = 13761; + this.supplemental_id_key_clause(); + break; + + case 3: + this.state = 13762; + this.supplemental_plsql_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_or_drop() { + let localctx = new Add_or_dropContext(this, this._ctx, this.state); + this.enterRule(localctx, 1410, OracleSqlParser.RULE_add_or_drop); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13765; + _la = this._input.LA(1); + if(!(_la===21 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + supplemental_plsql_clause() { + let localctx = new Supplemental_plsql_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1412, OracleSqlParser.RULE_supplemental_plsql_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13767; + this.match(OracleSqlParser.DATA); + this.state = 13768; + this.match(OracleSqlParser.FOR); + this.state = 13769; + this.match(OracleSqlParser.PROCEDURAL); + this.state = 13770; + this.match(OracleSqlParser.REPLICATION); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + logfile_descriptor() { + let localctx = new Logfile_descriptorContext(this, this._ctx, this.state); + this.enterRule(localctx, 1414, OracleSqlParser.RULE_logfile_descriptor); + var _la = 0; + try { + this.state = 13786; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 647: + this.enterOuterAlt(localctx, 1); + this.state = 13772; + this.match(OracleSqlParser.GROUP); + this.state = 13773; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 2445: + this.enterOuterAlt(localctx, 2); + this.state = 13774; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 13775; + this.filename(); + this.state = 13780; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 13776; + this.match(OracleSqlParser.COMMA); + this.state = 13777; + this.filename(); + this.state = 13782; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 13783; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2441: + this.enterOuterAlt(localctx, 3); + this.state = 13785; + this.filename(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + controlfile_clauses() { + let localctx = new Controlfile_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1416, OracleSqlParser.RULE_controlfile_clauses); + var _la = 0; + try { + this.state = 13809; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 319: + this.enterOuterAlt(localctx, 1); + this.state = 13788; + this.match(OracleSqlParser.CREATE); + this.state = 13790; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===883 || _la===1390) { + this.state = 13789; + _la = this._input.LA(1); + if(!(_la===883 || _la===1390)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 13792; + this.match(OracleSqlParser.STANDBY); + this.state = 13793; + this.match(OracleSqlParser.CONTROLFILE); + this.state = 13794; + this.match(OracleSqlParser.AS); + this.state = 13795; + this.filename(); + this.state = 13797; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 13796; + this.match(OracleSqlParser.REUSE); + } + + break; + case 102: + this.enterOuterAlt(localctx, 2); + this.state = 13799; + this.match(OracleSqlParser.BACKUP); + this.state = 13800; + this.match(OracleSqlParser.CONTROLFILE); + this.state = 13801; + this.match(OracleSqlParser.TO); + this.state = 13807; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 13802; + this.filename(); + this.state = 13804; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 13803; + this.match(OracleSqlParser.REUSE); + } + + break; + case 2141: + this.state = 13806; + this.trace_file_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + trace_file_clause() { + let localctx = new Trace_file_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1418, OracleSqlParser.RULE_trace_file_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13811; + this.match(OracleSqlParser.TRACE); + this.state = 13817; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 13812; + this.match(OracleSqlParser.AS); + this.state = 13813; + this.filename(); + this.state = 13815; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 13814; + this.match(OracleSqlParser.REUSE); + } + + } + + this.state = 13820; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1171 || _la===1563) { + this.state = 13819; + _la = this._input.LA(1); + if(!(_la===1171 || _la===1563)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + standby_database_clauses() { + let localctx = new Standby_database_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1420, OracleSqlParser.RULE_standby_database_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13829; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 13: + this.state = 13822; + this.activate_standby_db_clause(); + break; + case 1669: + this.state = 13823; + this.maximize_standby_db_clause(); + break; + case 1536: + this.state = 13824; + this.register_logfile_clause(); + break; + case 242: + case 1439: + this.state = 13825; + this.commit_switchover_clause(); + break; + case 1735: + this.state = 13826; + this.start_standby_clause(); + break; + case 1: + case 1759: + this.state = 13827; + this.stop_standby_clause(); + break; + case 298: + this.state = 13828; + this.convert_database_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 13832; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 13831; + this.parallel_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + activate_standby_db_clause() { + let localctx = new Activate_standby_db_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1422, OracleSqlParser.RULE_activate_standby_db_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13834; + this.match(OracleSqlParser.ACTIVATE); + this.state = 13836; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===883 || _la===1390) { + this.state = 13835; + _la = this._input.LA(1); + if(!(_la===883 || _la===1390)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 13838; + this.match(OracleSqlParser.STANDBY); + this.state = 13839; + this.match(OracleSqlParser.DATABASE); + this.state = 13842; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===595) { + this.state = 13840; + this.match(OracleSqlParser.FINISH); + this.state = 13841; + this.match(OracleSqlParser.APPLY); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + maximize_standby_db_clause() { + let localctx = new Maximize_standby_db_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1424, OracleSqlParser.RULE_maximize_standby_db_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13844; + this.match(OracleSqlParser.SET); + this.state = 13845; + this.match(OracleSqlParser.STANDBY); + this.state = 13846; + this.match(OracleSqlParser.DATABASE); + this.state = 13847; + this.match(OracleSqlParser.TO); + this.state = 13848; + this.match(OracleSqlParser.MAXIMIZE); + this.state = 13849; + _la = this._input.LA(1); + if(!(_la===98 || _la===1383 || _la===1467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + register_logfile_clause() { + let localctx = new Register_logfile_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1426, OracleSqlParser.RULE_register_logfile_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13851; + this.match(OracleSqlParser.REGISTER); + this.state = 13854; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1305) { + this.state = 13852; + this.match(OracleSqlParser.OR); + this.state = 13853; + this.match(OracleSqlParser.REPLACE); + } + + this.state = 13856; + _la = this._input.LA(1); + if(!(_la===883 || _la===1390)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 13857; + this.match(OracleSqlParser.LOGFILE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + commit_switchover_clause() { + let localctx = new Commit_switchover_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1428, OracleSqlParser.RULE_commit_switchover_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13859; + _la = this._input.LA(1); + if(!(_la===242 || _la===1439)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 13860; + this.match(OracleSqlParser.TO); + this.state = 13861; + this.match(OracleSqlParser.SWITCHOVER); + this.state = 13890; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 883: + case 2139: + this.state = 13887; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2139: + this.state = 13862; + this.match(OracleSqlParser.TO); + this.state = 13883; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1808,this._ctx); + switch(la_) { + case 1: + this.state = 13871; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1805,this._ctx); + switch(la_) { + case 1: + this.state = 13864; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===883 || _la===1390) { + this.state = 13863; + _la = this._input.LA(1); + if(!(_la===883 || _la===1390)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 13866; + this.match(OracleSqlParser.PRIMARY); + break; + + case 2: + this.state = 13868; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1390) { + this.state = 13867; + this.match(OracleSqlParser.PHYSICAL); + } + + this.state = 13870; + this.match(OracleSqlParser.STANDBY); + break; + + } + this.state = 13879; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1665 || _la===2304 || _la===2306) { + this.state = 13874; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2304 || _la===2306) { + this.state = 13873; + _la = this._input.LA(1); + if(!(_la===2304 || _la===2306)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 13876; + this.match(OracleSqlParser.SESSION); + this.state = 13877; + this.match(OracleSqlParser.SHUTDOWN); + this.state = 13878; + _la = this._input.LA(1); + if(!(_la===1217 || _la===2291)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + + case 2: + this.state = 13881; + this.match(OracleSqlParser.LOGICAL); + this.state = 13882; + this.match(OracleSqlParser.STANDBY); + break; + + } + break; + case 883: + this.state = 13885; + this.match(OracleSqlParser.LOGICAL); + this.state = 13886; + this.match(OracleSqlParser.STANDBY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 174: + this.state = 13889; + this.match(OracleSqlParser.CANCEL); + break; + case -1: + case 1146: + case 1331: + case 2452: + case 2467: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + start_standby_clause() { + let localctx = new Start_standby_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1430, OracleSqlParser.RULE_start_standby_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13892; + this.match(OracleSqlParser.START); + this.state = 13893; + this.match(OracleSqlParser.LOGICAL); + this.state = 13894; + this.match(OracleSqlParser.STANDBY); + this.state = 13895; + this.match(OracleSqlParser.APPLY); + this.state = 13897; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===696) { + this.state = 13896; + this.match(OracleSqlParser.IMMEDIATE); + } + + this.state = 13900; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1085) { + this.state = 13899; + this.match(OracleSqlParser.NODELAY); + } + + this.state = 13913; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 1019: + this.state = 13902; + this.match(OracleSqlParser.NEW); + this.state = 13903; + this.match(OracleSqlParser.PRIMARY); + this.state = 13904; + this.regular_id(); + break; + case 738: + this.state = 13905; + this.match(OracleSqlParser.INITIAL); + this.state = 13907; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2439) { + this.state = 13906; + localctx.scn_value = this.match(OracleSqlParser.UNSIGNED_INTEGER); + } + + break; + case 1700: + this.state = 13909; + this.match(OracleSqlParser.SKIP_); + this.state = 13910; + this.match(OracleSqlParser.FAILED); + this.state = 13911; + this.match(OracleSqlParser.TRANSACTION); + break; + case 595: + this.state = 13912; + this.match(OracleSqlParser.FINISH); + break; + case -1: + case 1146: + case 1331: + case 2452: + case 2467: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + stop_standby_clause() { + let localctx = new Stop_standby_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1432, OracleSqlParser.RULE_stop_standby_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13915; + _la = this._input.LA(1); + if(!(_la===1 || _la===1759)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 13916; + this.match(OracleSqlParser.LOGICAL); + this.state = 13917; + this.match(OracleSqlParser.STANDBY); + this.state = 13918; + this.match(OracleSqlParser.APPLY); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + convert_database_clause() { + let localctx = new Convert_database_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1434, OracleSqlParser.RULE_convert_database_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13920; + this.match(OracleSqlParser.CONVERT); + this.state = 13921; + this.match(OracleSqlParser.TO); + this.state = 13922; + _la = this._input.LA(1); + if(!(_la===1390 || _la===1705)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 13923; + this.match(OracleSqlParser.STANDBY); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_settings_clause() { + let localctx = new Default_settings_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1436, OracleSqlParser.RULE_default_settings_clause); + var _la = 0; + try { + this.state = 13971; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1819,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 13925; + this.match(OracleSqlParser.DEFAULT); + this.state = 13926; + this.match(OracleSqlParser.EDITION); + this.state = 13927; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 13928; + this.edition_name(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 13929; + this.match(OracleSqlParser.SET); + this.state = 13930; + this.match(OracleSqlParser.DEFAULT); + this.state = 13931; + _la = this._input.LA(1); + if(!(_la===122 || _la===1703)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 13932; + this.match(OracleSqlParser.TABLESPACE); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 13933; + this.match(OracleSqlParser.DEFAULT); + this.state = 13934; + this.match(OracleSqlParser.TABLESPACE); + this.state = 13935; + this.tablespace(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 13936; + this.match(OracleSqlParser.DEFAULT); + this.state = 13937; + this.match(OracleSqlParser.TEMPORARY); + this.state = 13938; + this.match(OracleSqlParser.TABLESPACE); + this.state = 13941; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1815,this._ctx); + switch(la_) { + case 1: + this.state = 13939; + this.tablespace(); + break; + + case 2: + this.state = 13940; + this.tablespace_group_name(); + break; + + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 13943; + this.match(OracleSqlParser.RENAME); + this.state = 13944; + this.match(OracleSqlParser.GLOBAL_NAME); + this.state = 13945; + this.match(OracleSqlParser.TO); + this.state = 13946; + this.database(); + this.state = 13949; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 13947; + this.match(OracleSqlParser.PERIOD); + this.state = 13948; + this.domain(); + this.state = 13951; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2438); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 13953; + this.match(OracleSqlParser.ENABLE); + this.state = 13954; + this.match(OracleSqlParser.BLOCK); + this.state = 13955; + this.match(OracleSqlParser.CHANGE); + this.state = 13956; + this.match(OracleSqlParser.TRACKING); + this.state = 13963; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 13957; + this.match(OracleSqlParser.USING); + this.state = 13958; + this.match(OracleSqlParser.FILE); + this.state = 13959; + this.filename(); + this.state = 13961; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1585) { + this.state = 13960; + this.match(OracleSqlParser.REUSE); + } + + } + + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 13965; + this.match(OracleSqlParser.DISABLE); + this.state = 13966; + this.match(OracleSqlParser.BLOCK); + this.state = 13967; + this.match(OracleSqlParser.CHANGE); + this.state = 13968; + this.match(OracleSqlParser.TRACKING); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 13969; + this.flashback_mode_clause(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 13970; + this.set_time_zone_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + set_time_zone_clause() { + let localctx = new Set_time_zone_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1438, OracleSqlParser.RULE_set_time_zone_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13973; + this.match(OracleSqlParser.SET); + this.state = 13974; + this.match(OracleSqlParser.TIMEZONE); + this.state = 13975; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 13976; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + instance_clauses() { + let localctx = new Instance_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1440, OracleSqlParser.RULE_instance_clauses); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13978; + this.enable_or_disable(); + this.state = 13979; + this.match(OracleSqlParser.INSTANCE); + this.state = 13980; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + security_clause() { + let localctx = new Security_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1442, OracleSqlParser.RULE_security_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13982; + this.match(OracleSqlParser.GUARD); + this.state = 13983; + _la = this._input.LA(1); + if(!(_la===38 || _la===1131 || _la===1732)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + domain() { + let localctx = new DomainContext(this, this._ctx, this.state); + this.enterRule(localctx, 1444, OracleSqlParser.RULE_domain); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13985; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + database() { + let localctx = new DatabaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1446, OracleSqlParser.RULE_database); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13987; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + edition_name() { + let localctx = new Edition_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1448, OracleSqlParser.RULE_edition_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13989; + this.regular_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + filenumber() { + let localctx = new FilenumberContext(this, this._ctx, this.state); + this.enterRule(localctx, 1450, OracleSqlParser.RULE_filenumber); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13991; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + filename() { + let localctx = new FilenameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1452, OracleSqlParser.RULE_filename); + try { + this.enterOuterAlt(localctx, 1); + this.state = 13993; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + prepare_clause() { + let localctx = new Prepare_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1454, OracleSqlParser.RULE_prepare_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 13995; + this.match(OracleSqlParser.PREPARE); + this.state = 13996; + this.match(OracleSqlParser.MIRROR); + this.state = 13997; + this.match(OracleSqlParser.COPY); + this.state = 13998; + localctx.c = this.id_expression(); + this.state = 14002; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 13999; + this.match(OracleSqlParser.WITH); + this.state = 14000; + _la = this._input.LA(1); + if(!(_la===673 || _la===961 || _la===2194)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14001; + this.match(OracleSqlParser.REDUNDANCY); + } + + this.state = 14007; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===618) { + this.state = 14004; + this.match(OracleSqlParser.FOR); + this.state = 14005; + this.match(OracleSqlParser.DATABASE); + this.state = 14006; + this.id_expression(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_mirror_clause() { + let localctx = new Drop_mirror_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1456, OracleSqlParser.RULE_drop_mirror_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14009; + this.match(OracleSqlParser.DROP); + this.state = 14010; + this.match(OracleSqlParser.MIRROR); + this.state = 14011; + this.match(OracleSqlParser.COPY); + this.state = 14012; + localctx.mn = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lost_write_protection() { + let localctx = new Lost_write_protectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1458, OracleSqlParser.RULE_lost_write_protection); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14014; + _la = this._input.LA(1); + if(!(_la===427 || _la===497 || _la===1556 || _la===1788)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14015; + this.match(OracleSqlParser.LOST); + this.state = 14016; + this.match(OracleSqlParser.WRITE); + this.state = 14017; + this.match(OracleSqlParser.PROTECTION); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cdb_fleet_clauses() { + let localctx = new Cdb_fleet_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1460, OracleSqlParser.RULE_cdb_fleet_clauses); + try { + this.state = 14021; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1822,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 14019; + this.lead_cdb_clause(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 14020; + this.lead_cdb_uri_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lead_cdb_clause() { + let localctx = new Lead_cdb_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1462, OracleSqlParser.RULE_lead_cdb_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14023; + this.match(OracleSqlParser.SET); + this.state = 14024; + this.match(OracleSqlParser.LEAD_CDB); + this.state = 14025; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 14026; + _la = this._input.LA(1); + if(!(_la===573 || _la===2156)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lead_cdb_uri_clause() { + let localctx = new Lead_cdb_uri_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1464, OracleSqlParser.RULE_lead_cdb_uri_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14028; + this.match(OracleSqlParser.SET); + this.state = 14029; + this.match(OracleSqlParser.LEAD_CDB_URI); + this.state = 14030; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 14031; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + property_clauses() { + let localctx = new Property_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1466, OracleSqlParser.RULE_property_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14033; + this.match(OracleSqlParser.PROPERTY); + this.state = 14034; + _la = this._input.LA(1); + if(!(_la===1556 || _la===1669)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14035; + this.match(OracleSqlParser.DEFAULT_CREDENTIAL); + this.state = 14036; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 14037; + localctx.qcn = this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + replay_upgrade_clauses() { + let localctx = new Replay_upgrade_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1468, OracleSqlParser.RULE_replay_upgrade_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14039; + this.match(OracleSqlParser.UPGRADE); + this.state = 14040; + this.match(OracleSqlParser.SYNC); + this.state = 14041; + _la = this._input.LA(1); + if(!(_la===1242 || _la===1257)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_database_link() { + let localctx = new Alter_database_linkContext(this, this._ctx, this.state); + this.enterRule(localctx, 1470, OracleSqlParser.RULE_alter_database_link); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14043; + this.match(OracleSqlParser.ALTER); + this.state = 14045; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1677) { + this.state = 14044; + this.match(OracleSqlParser.SHARED); + } + + this.state = 14048; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1471) { + this.state = 14047; + this.match(OracleSqlParser.PUBLIC); + } + + this.state = 14050; + this.match(OracleSqlParser.DATABASE); + this.state = 14051; + this.match(OracleSqlParser.LINK); + this.state = 14052; + this.local_link_name(); + this.state = 14063; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 278: + this.state = 14053; + this.match(OracleSqlParser.CONNECT); + this.state = 14054; + this.match(OracleSqlParser.TO); + this.state = 14055; + this.user_object_name(); + this.state = 14056; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 14057; + this.match(OracleSqlParser.BY); + this.state = 14058; + this.password_value(); + this.state = 14060; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===86) { + this.state = 14059; + this.link_authentication(); + } + + break; + case 86: + this.state = 14062; + this.link_authentication(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + password_value() { + let localctx = new Password_valueContext(this, this._ctx, this.state); + this.enterRule(localctx, 1472, OracleSqlParser.RULE_password_value); + try { + this.state = 14069; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 14065; + this.id_expression(); + break; + case 2439: + case 2440: + this.enterOuterAlt(localctx, 2); + this.state = 14066; + this.numeric(); + break; + case 2255: + this.enterOuterAlt(localctx, 3); + this.state = 14067; + this.match(OracleSqlParser.VALUES); + this.state = 14068; + this.match(OracleSqlParser.CHAR_STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + link_authentication() { + let localctx = new Link_authenticationContext(this, this._ctx, this.state); + this.enterRule(localctx, 1474, OracleSqlParser.RULE_link_authentication); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14071; + this.match(OracleSqlParser.AUTHENTICATED); + this.state = 14072; + this.match(OracleSqlParser.BY); + this.state = 14073; + this.user_object_name(); + this.state = 14074; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 14075; + this.match(OracleSqlParser.BY); + this.state = 14076; + this.password_value(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_schema() { + let localctx = new Create_schemaContext(this, this._ctx, this.state); + this.enterRule(localctx, 1476, OracleSqlParser.RULE_create_schema); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14078; + this.match(OracleSqlParser.CREATE); + this.state = 14079; + this.match(OracleSqlParser.SCHEMA); + this.state = 14080; + this.match(OracleSqlParser.AUTHORIZATION); + this.state = 14081; + this.schema_name(); + this.state = 14087; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===319 || _la===645) { + this.state = 14085; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1828,this._ctx); + switch(la_) { + case 1: + this.state = 14082; + this.create_table(); + break; + + case 2: + this.state = 14083; + this.create_view(); + break; + + case 3: + this.state = 14084; + this.grant_statement(); + break; + + } + this.state = 14089; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_database() { + let localctx = new Create_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1478, OracleSqlParser.RULE_create_database); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14090; + this.match(OracleSqlParser.CREATE); + this.state = 14091; + this.match(OracleSqlParser.DATABASE); + this.state = 14092; + this.database_name(); + this.state = 14131; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 14131; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1833,this._ctx); + switch(la_) { + case 1: + this.state = 14093; + this.match(OracleSqlParser.USER); + this.state = 14094; + _la = this._input.LA(1); + if(!(_la===1795 || _la===1947)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14095; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 14096; + this.match(OracleSqlParser.BY); + this.state = 14097; + this.password_value(); + break; + + case 2: + this.state = 14098; + this.match(OracleSqlParser.CONTROLFILE); + this.state = 14099; + this.match(OracleSqlParser.REUSE); + break; + + case 3: + this.state = 14100; + _la = this._input.LA(1); + if(!(_la===920 || _la===923)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14101; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + + case 4: + this.state = 14103; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===999) { + this.state = 14102; + this.match(OracleSqlParser.NATIONAL); + } + + this.state = 14105; + this.match(OracleSqlParser.CHARACTER); + this.state = 14106; + this.match(OracleSqlParser.SET); + this.state = 14107; + this.char_set_name(); + break; + + case 5: + this.state = 14108; + this.match(OracleSqlParser.SET); + this.state = 14109; + this.match(OracleSqlParser.DEFAULT); + this.state = 14110; + _la = this._input.LA(1); + if(!(_la===122 || _la===1703)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14111; + this.match(OracleSqlParser.TABLESPACE); + break; + + case 6: + this.state = 14112; + this.database_logging_clauses(); + break; + + case 7: + this.state = 14113; + this.tablespace_clauses(); + break; + + case 8: + this.state = 14114; + this.set_time_zone_clause(); + break; + + case 9: + this.state = 14116; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===122 || _la===1703) { + this.state = 14115; + _la = this._input.LA(1); + if(!(_la===122 || _la===1703)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 14118; + this.match(OracleSqlParser.USER_DATA); + this.state = 14119; + this.match(OracleSqlParser.TABLESPACE); + this.state = 14120; + this.tablespace_group_name(); + this.state = 14121; + this.match(OracleSqlParser.DATAFILE); + this.state = 14122; + this.datafile_tempfile_spec(); + this.state = 14127; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14123; + this.match(OracleSqlParser.COMMA); + this.state = 14124; + this.datafile_tempfile_spec(); + this.state = 14129; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 10: + this.state = 14130; + this.enable_pluggable_database(); + break; + + } + this.state = 14133; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===66 || _la===122 || _la===193 || _la===296 || _la===350 || _la===387 || _la===497 || _la===556 || _la===614 || _la===880 || ((((_la - 920)) & ~0x1f) === 0 && ((1 << (_la - 920)) & 121) !== 0) || _la===999 || _la===1056 || _la===1669 || _la===1703 || _la===1798 || _la===2176 || _la===2228 || _la===2235); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + database_logging_clauses() { + let localctx = new Database_logging_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1480, OracleSqlParser.RULE_database_logging_clauses); + var _la = 0; + try { + this.state = 14150; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 880: + this.enterOuterAlt(localctx, 1); + this.state = 14135; + this.match(OracleSqlParser.LOGFILE); + this.state = 14136; + this.database_logging_sub_clause(); + this.state = 14141; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14137; + this.match(OracleSqlParser.COMMA); + this.state = 14138; + this.database_logging_sub_clause(); + this.state = 14143; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 924: + case 925: + case 926: + this.enterOuterAlt(localctx, 2); + this.state = 14144; + _la = this._input.LA(1); + if(!(((((_la - 924)) & ~0x1f) === 0 && ((1 << (_la - 924)) & 7) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14145; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 66: + this.enterOuterAlt(localctx, 3); + this.state = 14146; + this.match(OracleSqlParser.ARCHIVELOG); + break; + case 1056: + this.enterOuterAlt(localctx, 4); + this.state = 14147; + this.match(OracleSqlParser.NOARCHIVELOG); + break; + case 614: + this.enterOuterAlt(localctx, 5); + this.state = 14148; + this.match(OracleSqlParser.FORCE); + this.state = 14149; + this.match(OracleSqlParser.LOGGING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + database_logging_sub_clause() { + let localctx = new Database_logging_sub_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1482, OracleSqlParser.RULE_database_logging_sub_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14154; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===647) { + this.state = 14152; + this.match(OracleSqlParser.GROUP); + this.state = 14153; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } + + this.state = 14156; + this.file_specification(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tablespace_clauses() { + let localctx = new Tablespace_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1484, OracleSqlParser.RULE_tablespace_clauses); + var _la = 0; + try { + this.state = 14176; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1840,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 14158; + this.match(OracleSqlParser.EXTENT); + this.state = 14159; + this.match(OracleSqlParser.MANAGEMENT); + this.state = 14160; + this.match(OracleSqlParser.LOCAL); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 14162; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1798) { + this.state = 14161; + this.match(OracleSqlParser.SYSAUX); + } + + this.state = 14164; + this.match(OracleSqlParser.DATAFILE); + this.state = 14165; + this.file_specification(); + this.state = 14170; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14166; + this.match(OracleSqlParser.COMMA); + this.state = 14167; + this.file_specification(); + this.state = 14172; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 14173; + this.default_tablespace(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 14174; + this.default_temp_tablespace(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 14175; + this.undo_tablespace(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + enable_pluggable_database() { + let localctx = new Enable_pluggable_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1486, OracleSqlParser.RULE_enable_pluggable_database); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14178; + this.match(OracleSqlParser.ENABLE); + this.state = 14179; + this.match(OracleSqlParser.PLUGGABLE); + this.state = 14180; + this.match(OracleSqlParser.DATABASE); + this.state = 14193; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1640) { + this.state = 14181; + this.match(OracleSqlParser.SEED); + this.state = 14183; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===588) { + this.state = 14182; + this.file_name_convert(); + } + + this.state = 14187; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1947) { + this.state = 14185; + this.match(OracleSqlParser.SYSTEM); + this.state = 14186; + this.tablespace_datafile_clauses(); + } + + this.state = 14191; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1843,this._ctx); + if(la_===1) { + this.state = 14189; + this.match(OracleSqlParser.SYSAUX); + this.state = 14190; + this.tablespace_datafile_clauses(); + + } + } + + this.state = 14196; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===871) { + this.state = 14195; + this.undo_mode_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + file_name_convert() { + let localctx = new File_name_convertContext(this, this._ctx, this.state); + this.enterRule(localctx, 1488, OracleSqlParser.RULE_file_name_convert); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14198; + this.match(OracleSqlParser.FILE_NAME_CONVERT); + this.state = 14199; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 14212; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 14200; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14201; + this.filename_convert_sub_clause(); + this.state = 14206; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14202; + this.match(OracleSqlParser.COMMA); + this.state = 14203; + this.filename_convert_sub_clause(); + this.state = 14208; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 14209; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1131: + this.state = 14211; + this.match(OracleSqlParser.NONE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + filename_convert_sub_clause() { + let localctx = new Filename_convert_sub_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1490, OracleSqlParser.RULE_filename_convert_sub_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14214; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 14217; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1848,this._ctx); + if(la_===1) { + this.state = 14215; + this.match(OracleSqlParser.COMMA); + this.state = 14216; + this.match(OracleSqlParser.CHAR_STRING); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tablespace_datafile_clauses() { + let localctx = new Tablespace_datafile_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1492, OracleSqlParser.RULE_tablespace_datafile_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14219; + this.match(OracleSqlParser.DATAFILES); + this.state = 14223; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 14223; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1697: + this.state = 14220; + this.match(OracleSqlParser.SIZE); + this.state = 14221; + this.size_clause(); + break; + case 93: + this.state = 14222; + this.autoextend_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14225; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===93 || _la===1697); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + undo_mode_clause() { + let localctx = new Undo_mode_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1494, OracleSqlParser.RULE_undo_mode_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14227; + this.match(OracleSqlParser.LOCAL); + this.state = 14228; + this.match(OracleSqlParser.UNDO); + this.state = 14229; + _la = this._input.LA(1); + if(!(_la===1242 || _la===1257)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_tablespace() { + let localctx = new Default_tablespaceContext(this, this._ctx, this.state); + this.enterRule(localctx, 1496, OracleSqlParser.RULE_default_tablespace); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14231; + this.match(OracleSqlParser.DEFAULT); + this.state = 14232; + this.match(OracleSqlParser.TABLESPACE); + this.state = 14233; + this.tablespace(); + this.state = 14236; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1851,this._ctx); + if(la_===1) { + this.state = 14234; + this.match(OracleSqlParser.DATAFILE); + this.state = 14235; + this.datafile_tempfile_spec(); + + } + this.state = 14239; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1852,this._ctx); + if(la_===1) { + this.state = 14238; + this.extent_management_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_temp_tablespace() { + let localctx = new Default_temp_tablespaceContext(this, this._ctx, this.state); + this.enterRule(localctx, 1498, OracleSqlParser.RULE_default_temp_tablespace); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14242; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===122 || _la===1703) { + this.state = 14241; + _la = this._input.LA(1); + if(!(_la===122 || _la===1703)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 14244; + this.match(OracleSqlParser.DEFAULT); + this.state = 14252; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2090: + this.state = 14245; + this.match(OracleSqlParser.TEMPORARY); + this.state = 14246; + this.match(OracleSqlParser.TABLESPACE); + break; + case 871: + this.state = 14247; + this.match(OracleSqlParser.LOCAL); + this.state = 14248; + this.match(OracleSqlParser.TEMPORARY); + this.state = 14249; + this.match(OracleSqlParser.TABLESPACE); + this.state = 14250; + this.match(OracleSqlParser.FOR); + this.state = 14251; + _la = this._input.LA(1); + if(!(_la===38 || _la===833)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14254; + this.tablespace(); + this.state = 14264; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2087) { + this.state = 14255; + this.match(OracleSqlParser.TEMPFILE); + this.state = 14256; + this.file_specification(); + this.state = 14261; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14257; + this.match(OracleSqlParser.COMMA); + this.state = 14258; + this.file_specification(); + this.state = 14263; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 14267; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1857,this._ctx); + if(la_===1) { + this.state = 14266; + this.extent_management_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + undo_tablespace() { + let localctx = new Undo_tablespaceContext(this, this._ctx, this.state); + this.enterRule(localctx, 1500, OracleSqlParser.RULE_undo_tablespace); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14270; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===122 || _la===1703) { + this.state = 14269; + _la = this._input.LA(1); + if(!(_la===122 || _la===1703)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 14272; + this.match(OracleSqlParser.UNDO); + this.state = 14273; + this.match(OracleSqlParser.TABLESPACE); + this.state = 14274; + this.tablespace(); + this.state = 14284; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1860,this._ctx); + if(la_===1) { + this.state = 14275; + this.match(OracleSqlParser.DATAFILE); + this.state = 14276; + this.file_specification(); + this.state = 14281; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14277; + this.match(OracleSqlParser.COMMA); + this.state = 14278; + this.file_specification(); + this.state = 14283; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_database() { + let localctx = new Drop_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1502, OracleSqlParser.RULE_drop_database); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14286; + this.match(OracleSqlParser.DROP); + this.state = 14287; + this.match(OracleSqlParser.DATABASE); + this.state = 14290; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===703) { + this.state = 14288; + this.match(OracleSqlParser.INCLUDING); + this.state = 14289; + this.match(OracleSqlParser.BACKUPS); + } + + this.state = 14293; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1155) { + this.state = 14292; + this.match(OracleSqlParser.NOPROMPT); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + create_database_link() { + let localctx = new Create_database_linkContext(this, this._ctx, this.state); + this.enterRule(localctx, 1504, OracleSqlParser.RULE_create_database_link); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14295; + this.match(OracleSqlParser.CREATE); + this.state = 14297; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1677) { + this.state = 14296; + this.match(OracleSqlParser.SHARED); + } + + this.state = 14300; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1471) { + this.state = 14299; + this.match(OracleSqlParser.PUBLIC); + } + + this.state = 14302; + this.match(OracleSqlParser.DATABASE); + this.state = 14303; + this.match(OracleSqlParser.LINK); + this.state = 14304; + this.link_name(); + this.state = 14320; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===86 || _la===278) { + this.state = 14318; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 278: + this.state = 14305; + this.match(OracleSqlParser.CONNECT); + this.state = 14306; + this.match(OracleSqlParser.TO); + this.state = 14315; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1866,this._ctx); + switch(la_) { + case 1: + this.state = 14307; + this.match(OracleSqlParser.CURRENT_USER); + break; + + case 2: + this.state = 14308; + this.user_object_name(); + this.state = 14309; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 14310; + this.match(OracleSqlParser.BY); + this.state = 14311; + this.password_value(); + this.state = 14313; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1865,this._ctx); + if(la_===1) { + this.state = 14312; + this.link_authentication(); + + } + break; + + } + break; + case 86: + this.state = 14317; + this.link_authentication(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14322; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 14325; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 14323; + this.match(OracleSqlParser.USING); + this.state = 14324; + this.match(OracleSqlParser.CHAR_STRING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_database_link() { + let localctx = new Drop_database_linkContext(this, this._ctx, this.state); + this.enterRule(localctx, 1506, OracleSqlParser.RULE_drop_database_link); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14327; + this.match(OracleSqlParser.DROP); + this.state = 14329; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1471) { + this.state = 14328; + this.match(OracleSqlParser.PUBLIC); + } + + this.state = 14331; + this.match(OracleSqlParser.DATABASE); + this.state = 14332; + this.match(OracleSqlParser.LINK); + this.state = 14333; + this.link_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_tablespace_set() { + let localctx = new Alter_tablespace_setContext(this, this._ctx, this.state); + this.enterRule(localctx, 1508, OracleSqlParser.RULE_alter_tablespace_set); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14335; + this.match(OracleSqlParser.ALTER); + this.state = 14336; + this.match(OracleSqlParser.TABLESPACE); + this.state = 14337; + this.match(OracleSqlParser.SET); + this.state = 14338; + localctx.tss = this.id_expression(); + this.state = 14339; + this.alter_tablespace_attrs(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_tablespace_attrs() { + let localctx = new Alter_tablespace_attrsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1510, OracleSqlParser.RULE_alter_tablespace_attrs); + var _la = 0; + try { + this.state = 14368; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1872,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 14341; + this.default_tablespace_params(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 14342; + this.match(OracleSqlParser.MINIMUM); + this.state = 14343; + this.match(OracleSqlParser.EXTENT); + this.state = 14344; + this.size_clause(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 14345; + this.match(OracleSqlParser.RESIZE); + this.state = 14346; + this.size_clause(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 14347; + this.match(OracleSqlParser.COALESCE); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 14348; + this.match(OracleSqlParser.SHRINK); + this.state = 14349; + this.match(OracleSqlParser.SPACE_KEYWORD); + this.state = 14352; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===812) { + this.state = 14350; + this.match(OracleSqlParser.KEEP); + this.state = 14351; + this.size_clause(); + } + + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 14354; + this.match(OracleSqlParser.RENAME); + this.state = 14355; + this.match(OracleSqlParser.TO); + this.state = 14356; + localctx.nts = this.id_expression(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 14357; + _la = this._input.LA(1); + if(!(_la===113 || _la===506)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14358; + this.match(OracleSqlParser.BACKUP); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 14359; + this.datafile_tempfile_clauses(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 14360; + this.tablespace_logging_clauses(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 14361; + this.tablespace_group_clause(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 14362; + this.tablespace_state_clauses(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 14363; + this.autoextend_clause(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 14364; + this.flashback_mode_clause(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 14365; + this.tablespace_retention_clause(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 14366; + this.alter_tablespace_encryption(); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 14367; + this.lost_write_protection(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_tablespace_encryption() { + let localctx = new Alter_tablespace_encryptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1512, OracleSqlParser.RULE_alter_tablespace_encryption); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14370; + this.match(OracleSqlParser.ENCRYPTION); + this.state = 14395; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1241: + this.state = 14371; + this.match(OracleSqlParser.OFFLINE); + this.state = 14377; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 503: + case 2244: + this.state = 14373; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 14372; + this.tablespace_encryption_spec(); + } + + this.state = 14375; + this.match(OracleSqlParser.ENCRYPT); + break; + case 385: + this.state = 14376; + this.match(OracleSqlParser.DECRYPT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 1254: + this.state = 14379; + this.match(OracleSqlParser.ONLINE); + this.state = 14385; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 503: + case 1548: + case 2244: + this.state = 14381; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 14380; + this.tablespace_encryption_spec(); + } + + this.state = 14383; + _la = this._input.LA(1); + if(!(_la===503 || _la===1548)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 385: + this.state = 14384; + this.match(OracleSqlParser.DECRYPT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14388; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===588) { + this.state = 14387; + this.ts_file_name_convert(); + } + + break; + case 595: + this.state = 14390; + this.match(OracleSqlParser.FINISH); + this.state = 14391; + _la = this._input.LA(1); + if(!(_la===385 || _la===503 || _la===1548)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14393; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===588) { + this.state = 14392; + this.ts_file_name_convert(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + ts_file_name_convert() { + let localctx = new Ts_file_name_convertContext(this, this._ctx, this.state); + this.enterRule(localctx, 1514, OracleSqlParser.RULE_ts_file_name_convert); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14397; + this.match(OracleSqlParser.FILE_NAME_CONVERT); + this.state = 14398; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 14399; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14400; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 14401; + this.match(OracleSqlParser.COMMA); + this.state = 14402; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 14409; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14403; + this.match(OracleSqlParser.COMMA); + this.state = 14404; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 14405; + this.match(OracleSqlParser.COMMA); + this.state = 14406; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 14411; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 14412; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 14414; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===812) { + this.state = 14413; + this.match(OracleSqlParser.KEEP); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_role() { + let localctx = new Alter_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 1516, OracleSqlParser.RULE_alter_role); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14416; + this.match(OracleSqlParser.ALTER); + this.state = 14417; + this.match(OracleSqlParser.ROLE); + this.state = 14418; + this.role_name(); + this.state = 14419; + this.role_identified_clause(); + this.state = 14421; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===287) { + this.state = 14420; + this.container_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + role_identified_clause() { + let localctx = new Role_identified_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1518, OracleSqlParser.RULE_role_identified_clause); + var _la = 0; + try { + this.state = 14442; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1202: + this.enterOuterAlt(localctx, 1); + this.state = 14423; + this.match(OracleSqlParser.NOT); + this.state = 14424; + this.match(OracleSqlParser.IDENTIFIED); + break; + case 683: + this.enterOuterAlt(localctx, 2); + this.state = 14425; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 14440; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 160: + this.state = 14426; + this.match(OracleSqlParser.BY); + this.state = 14427; + this.identifier(); + break; + case 2244: + this.state = 14428; + this.match(OracleSqlParser.USING); + this.state = 14429; + this.identifier(); + this.state = 14432; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2438) { + this.state = 14430; + this.match(OracleSqlParser.PERIOD); + this.state = 14431; + this.id_expression(); + } + + break; + case 559: + this.state = 14434; + this.match(OracleSqlParser.EXTERNALLY); + break; + case 641: + this.state = 14435; + this.match(OracleSqlParser.GLOBALLY); + this.state = 14438; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 14436; + this.match(OracleSqlParser.AS); + this.state = 14437; + this.match(OracleSqlParser.CHAR_STRING); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_table() { + let localctx = new Alter_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 1520, OracleSqlParser.RULE_alter_table); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14444; + this.match(OracleSqlParser.ALTER); + this.state = 14445; + this.match(OracleSqlParser.TABLE); + this.state = 14446; + this.tableview_name(); + this.state = 14450; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1887,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 14447; + this.memoptimize_read_write_clause(); + } + this.state = 14452; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1887,this._ctx); + } + + this.state = 14459; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1888,this._ctx); + switch(la_) { + case 1: + break; + + case 2: + this.state = 14454; + this.alter_table_properties(); + break; + + case 3: + this.state = 14455; + this.constraint_clauses(); + break; + + case 4: + this.state = 14456; + this.column_clauses(); + break; + + case 5: + this.state = 14457; + this.alter_table_partitioning(); + break; + + case 6: + this.state = 14458; + this.move_table_clause(); + break; + + } + this.state = 14473; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===427 || _la===497) { + this.state = 14469; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 14469; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1890,this._ctx); + switch(la_) { + case 1: + this.state = 14461; + this.enable_disable_clause(); + break; + + case 2: + this.state = 14462; + this.enable_or_disable(); + this.state = 14467; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2081: + this.state = 14463; + this.match(OracleSqlParser.TABLE); + this.state = 14464; + this.match(OracleSqlParser.LOCK); + break; + case 38: + this.state = 14465; + this.match(OracleSqlParser.ALL); + this.state = 14466; + this.match(OracleSqlParser.TRIGGERS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + } + this.state = 14471; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===427 || _la===497); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + memoptimize_read_write_clause() { + let localctx = new Memoptimize_read_write_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1522, OracleSqlParser.RULE_memoptimize_read_write_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14476; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135) { + this.state = 14475; + this.match(OracleSqlParser.NO); + } + + this.state = 14478; + this.match(OracleSqlParser.MEMOPTIMIZE); + this.state = 14479; + this.match(OracleSqlParser.FOR); + this.state = 14480; + _la = this._input.LA(1); + if(!(_la===1503 || _la===2311)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_table_properties() { + let localctx = new Alter_table_propertiesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1524, OracleSqlParser.RULE_alter_table_properties); + try { + this.state = 14494; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1894,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 14482; + this.alter_table_properties_1(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 14483; + this.match(OracleSqlParser.RENAME); + this.state = 14484; + this.match(OracleSqlParser.TO); + this.state = 14485; + this.tableview_name(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 14486; + this.shrink_clause(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 14487; + this.match(OracleSqlParser.READ); + this.state = 14488; + this.match(OracleSqlParser.ONLY); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 14489; + this.match(OracleSqlParser.READ); + this.state = 14490; + this.match(OracleSqlParser.WRITE); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 14491; + this.match(OracleSqlParser.REKEY); + this.state = 14492; + this.match(OracleSqlParser.CHAR_STRING); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 14493; + this.annotations_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_table_partitioning() { + let localctx = new Alter_table_partitioningContext(this, this._ctx, this.state); + this.enterRule(localctx, 1526, OracleSqlParser.RULE_alter_table_partitioning); + try { + this.state = 14506; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.enterOuterAlt(localctx, 1); + this.state = 14496; + this.add_table_partition(); + break; + case 467: + this.enterOuterAlt(localctx, 2); + this.state = 14497; + this.drop_table_partition(); + break; + case 944: + this.enterOuterAlt(localctx, 3); + this.state = 14498; + this.merge_table_partition(); + break; + case 978: + this.enterOuterAlt(localctx, 4); + this.state = 14499; + this.modify_table_partition(); + break; + case 1715: + this.enterOuterAlt(localctx, 5); + this.state = 14500; + this.split_table_partition(); + break; + case 2157: + this.enterOuterAlt(localctx, 6); + this.state = 14501; + this.truncate_table_partition(); + break; + case 536: + this.enterOuterAlt(localctx, 7); + this.state = 14502; + this.exchange_table_partition(); + break; + case 228: + this.enterOuterAlt(localctx, 8); + this.state = 14503; + this.coalesce_table_partition(); + break; + case 1669: + this.enterOuterAlt(localctx, 9); + this.state = 14504; + this.alter_interval_partition(); + break; + case 990: + this.enterOuterAlt(localctx, 10); + this.state = 14505; + this.move_table_partition(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_table_partition() { + let localctx = new Add_table_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1528, OracleSqlParser.RULE_add_table_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14508; + this.match(OracleSqlParser.ADD); + this.state = 14525; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1900,this._ctx); + switch(la_) { + case 1: + this.state = 14509; + this.range_partition_desc(); + break; + + case 2: + this.state = 14510; + this.list_partition_desc(); + break; + + case 3: + this.state = 14511; + this.match(OracleSqlParser.PARTITION); + this.state = 14513; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1896,this._ctx); + if(la_===1) { + this.state = 14512; + this.partition_name(); + + } + this.state = 14517; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2078) { + this.state = 14515; + this.match(OracleSqlParser.TABLESPACE); + this.state = 14516; + this.tablespace(); + } + + this.state = 14520; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===258 || _la===1072) { + this.state = 14519; + this.key_compression(); + } + + this.state = 14523; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2201) { + this.state = 14522; + this.match(OracleSqlParser.UNUSABLE); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_table_partition() { + let localctx = new Drop_table_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1530, OracleSqlParser.RULE_drop_table_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14527; + this.match(OracleSqlParser.DROP); + this.state = 14530; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1346: + case 1348: + this.state = 14528; + this.partition_extended_names(); + break; + case 1772: + case 1773: + this.state = 14529; + this.subpartition_extended_names(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14536; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===778 || _la===2205) { + this.state = 14532; + this.update_index_clauses(); + this.state = 14534; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 14533; + this.parallel_clause(); + } + + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + merge_table_partition() { + let localctx = new Merge_table_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1532, OracleSqlParser.RULE_merge_table_partition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14538; + this.match(OracleSqlParser.MERGE); + this.state = 14539; + this.match(OracleSqlParser.PARTITION); + this.state = 14540; + this.partition_name(); + this.state = 14541; + this.match(OracleSqlParser.AND); + this.state = 14542; + this.partition_name(); + this.state = 14543; + this.match(OracleSqlParser.INTO); + this.state = 14544; + this.match(OracleSqlParser.PARTITION); + this.state = 14545; + this.partition_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_table_partition() { + let localctx = new Modify_table_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1534, OracleSqlParser.RULE_modify_table_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14547; + this.match(OracleSqlParser.MODIFY); + this.state = 14570; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1909,this._ctx); + switch(la_) { + case 1: + this.state = 14548; + _la = this._input.LA(1); + if(!(_la===1346 || _la===1773)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14549; + this.partition_name(); + this.state = 14552; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1904,this._ctx); + if(la_===1) { + this.state = 14550; + _la = this._input.LA(1); + if(!(_la===21 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14551; + this.list_values_clause(); + + } + this.state = 14556; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===21) { + this.state = 14554; + this.match(OracleSqlParser.ADD); + this.state = 14555; + this.range_subpartition_desc(); + } + + this.state = 14564; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1509 || _la===2201) { + this.state = 14559; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1509) { + this.state = 14558; + this.match(OracleSqlParser.REBUILD); + } + + this.state = 14561; + this.match(OracleSqlParser.UNUSABLE); + this.state = 14562; + this.match(OracleSqlParser.LOCAL); + this.state = 14563; + this.match(OracleSqlParser.INDEXES); + } + + this.state = 14567; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1682) { + this.state = 14566; + this.shrink_clause(); + } + + break; + + case 2: + this.state = 14569; + this.range_partitions(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + split_table_partition() { + let localctx = new Split_table_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1536, OracleSqlParser.RULE_split_table_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14572; + this.match(OracleSqlParser.SPLIT); + this.state = 14573; + this.partition_extended_names(); + this.state = 14619; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 82: + this.state = 14574; + this.match(OracleSqlParser.AT); + this.state = 14575; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14576; + this.literal(); + this.state = 14581; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14577; + this.match(OracleSqlParser.COMMA); + this.state = 14578; + this.literal(); + this.state = 14583; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 14584; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 14585; + this.match(OracleSqlParser.INTO); + this.state = 14586; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14587; + this.range_partition_desc(); + this.state = 14592; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14588; + this.match(OracleSqlParser.COMMA); + this.state = 14589; + this.range_partition_desc(); + this.state = 14594; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 14595; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 777: + this.state = 14597; + this.match(OracleSqlParser.INTO); + this.state = 14598; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14615; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1914,this._ctx); + switch(la_) { + case 1: + this.state = 14599; + this.range_partition_desc(); + this.state = 14604; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14600; + this.match(OracleSqlParser.COMMA); + this.state = 14601; + this.range_partition_desc(); + this.state = 14606; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.state = 14607; + this.list_partition_desc(); + this.state = 14612; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14608; + this.match(OracleSqlParser.COMMA); + this.state = 14609; + this.list_partition_desc(); + this.state = 14614; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + this.state = 14617; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14624; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1916,this._ctx); + if(la_===1) { + this.state = 14621; + this.update_global_index_clause(); + + } else if(la_===2) { + this.state = 14622; + this.update_index_clauses(); + + } else if(la_===3) { + this.state = 14623; + this.match(OracleSqlParser.ONLINE); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + truncate_table_partition() { + let localctx = new Truncate_table_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1538, OracleSqlParser.RULE_truncate_table_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14626; + this.match(OracleSqlParser.TRUNCATE); + this.state = 14629; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1346: + case 1348: + this.state = 14627; + this.partition_extended_names(); + break; + case 1772: + case 1773: + this.state = 14628; + this.subpartition_extended_names(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14639; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===467 || _la===1585 || _la===1760) { + this.state = 14636; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 467: + this.state = 14631; + this.match(OracleSqlParser.DROP); + this.state = 14633; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===38) { + this.state = 14632; + this.match(OracleSqlParser.ALL); + } + + break; + case 1585: + this.state = 14635; + this.match(OracleSqlParser.REUSE); + break; + case 1760: + break; + default: + break; + } + this.state = 14638; + this.match(OracleSqlParser.STORAGE); + } + + this.state = 14642; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 14641; + this.match(OracleSqlParser.CASCADE); + } + + this.state = 14648; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===778 || _la===2205) { + this.state = 14644; + this.update_index_clauses(); + this.state = 14646; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 14645; + this.parallel_clause(); + } + + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + exchange_table_partition() { + let localctx = new Exchange_table_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1540, OracleSqlParser.RULE_exchange_table_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14650; + this.match(OracleSqlParser.EXCHANGE); + this.state = 14651; + this.match(OracleSqlParser.PARTITION); + this.state = 14652; + this.partition_name(); + this.state = 14653; + this.match(OracleSqlParser.WITH); + this.state = 14654; + this.match(OracleSqlParser.TABLE); + this.state = 14655; + this.tableview_name(); + this.state = 14658; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===538 || _la===703) { + this.state = 14656; + _la = this._input.LA(1); + if(!(_la===538 || _la===703)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14657; + this.match(OracleSqlParser.INDEXES); + } + + this.state = 14662; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2304 || _la===2306) { + this.state = 14660; + _la = this._input.LA(1); + if(!(_la===2304 || _la===2306)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14661; + this.match(OracleSqlParser.VALIDATION); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + coalesce_table_partition() { + let localctx = new Coalesce_table_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1542, OracleSqlParser.RULE_coalesce_table_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14664; + this.match(OracleSqlParser.COALESCE); + this.state = 14665; + this.match(OracleSqlParser.PARTITION); + this.state = 14667; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 14666; + this.parallel_clause(); + } + + this.state = 14672; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===40 || _la===433) { + this.state = 14669; + this.allow_or_disallow(); + this.state = 14670; + this.match(OracleSqlParser.CLUSTERING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_interval_partition() { + let localctx = new Alter_interval_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1544, OracleSqlParser.RULE_alter_interval_partition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14674; + this.match(OracleSqlParser.SET); + this.state = 14675; + this.match(OracleSqlParser.INTERVAL); + this.state = 14676; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14679; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1928,this._ctx); + if(la_===1) { + this.state = 14677; + this.constant(); + + } else if(la_===2) { + this.state = 14678; + this.expression(); + + } + this.state = 14681; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + move_table_partition() { + let localctx = new Move_table_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1546, OracleSqlParser.RULE_move_table_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14683; + this.match(OracleSqlParser.MOVE); + this.state = 14698; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1346: + case 1348: + this.state = 14684; + this.partition_extended_names(); + this.state = 14687; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===909) { + this.state = 14685; + this.match(OracleSqlParser.MAPPING); + this.state = 14686; + this.match(OracleSqlParser.TABLE); + } + + this.state = 14689; + this.table_partition_description(); + break; + case 1772: + case 1773: + this.state = 14691; + this.subpartition_extended_names(); + this.state = 14693; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===716) { + this.state = 14692; + this.indexing_clause(); + } + + this.state = 14696; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===237 || _la===258 || _la===744 || _la===866 || _la===1072 || _la===1135 || _la===1318 || _la===1604 || _la===2078 || _la===2265) { + this.state = 14695; + this.partitioning_storage_clause(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14709; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===40 || _la===433 || _la===703 || _la===778 || _la===1146 || _la===1254 || _la===1331 || _la===2205) { + this.state = 14707; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 703: + this.state = 14700; + this.filter_condition(); + break; + case 778: + case 2205: + this.state = 14701; + this.update_index_clauses(); + break; + case 1146: + case 1331: + this.state = 14702; + this.parallel_clause(); + break; + case 40: + case 433: + this.state = 14703; + this.allow_or_disallow(); + this.state = 14704; + this.match(OracleSqlParser.CLUSTERING); + break; + case 1254: + this.state = 14706; + this.match(OracleSqlParser.ONLINE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14711; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + filter_condition() { + let localctx = new Filter_conditionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1548, OracleSqlParser.RULE_filter_condition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14712; + this.match(OracleSqlParser.INCLUDING); + this.state = 14713; + this.match(OracleSqlParser.ROWS); + this.state = 14714; + this.where_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + partition_extended_names() { + let localctx = new Partition_extended_namesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1550, OracleSqlParser.RULE_partition_extended_names); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14716; + _la = this._input.LA(1); + if(!(_la===1346 || _la===1348)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14751; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 14717; + this.partition_name(); + this.state = 14722; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14718; + this.match(OracleSqlParser.COMMA); + this.state = 14719; + this.partition_name(); + this.state = 14724; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 2445: + this.state = 14725; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14726; + this.partition_name(); + this.state = 14731; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14727; + this.match(OracleSqlParser.COMMA); + this.state = 14728; + this.partition_name(); + this.state = 14733; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 14734; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 618: + this.state = 14736; + this.match(OracleSqlParser.FOR); + this.state = 14738; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 14737; + this.match(OracleSqlParser.LEFT_PAREN); + } + + this.state = 14740; + this.partition_key_value(); + this.state = 14745; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14741; + this.match(OracleSqlParser.COMMA); + this.state = 14742; + this.partition_key_value(); + this.state = 14747; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 14749; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2446) { + this.state = 14748; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subpartition_extended_names() { + let localctx = new Subpartition_extended_namesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1552, OracleSqlParser.RULE_subpartition_extended_names); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14753; + _la = this._input.LA(1); + if(!(_la===1772 || _la===1773)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14785; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 14754; + this.partition_name(); + this.state = 14757; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1941,this._ctx); + if(la_===1) { + this.state = 14755; + this.match(OracleSqlParser.UPDATE); + this.state = 14756; + this.match(OracleSqlParser.INDEXES); + + } + break; + case 2445: + this.state = 14759; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14760; + this.partition_name(); + this.state = 14765; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14761; + this.match(OracleSqlParser.COMMA); + this.state = 14762; + this.partition_name(); + this.state = 14767; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 14768; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 618: + this.state = 14770; + this.match(OracleSqlParser.FOR); + this.state = 14772; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 14771; + this.match(OracleSqlParser.LEFT_PAREN); + } + + this.state = 14774; + this.subpartition_key_value(); + this.state = 14779; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14775; + this.match(OracleSqlParser.COMMA); + this.state = 14776; + this.subpartition_key_value(); + this.state = 14781; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 14783; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2446) { + this.state = 14782; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_table_properties_1() { + let localctx = new Alter_table_properties_1Context(this, this._ctx, this.state); + this.enterRule(localctx, 1554, OracleSqlParser.RULE_alter_table_properties_1); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14806; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 14806; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1947,this._ctx); + switch(la_) { + case 1: + this.state = 14787; + this.physical_attributes_clause(); + break; + + case 2: + this.state = 14788; + this.logging_clause(); + break; + + case 3: + this.state = 14789; + this.table_compression(); + break; + + case 4: + this.state = 14790; + this.inmemory_table_clause(); + break; + + case 5: + this.state = 14791; + this.supplemental_table_logging(); + break; + + case 6: + this.state = 14792; + this.allocate_extent_clause(); + break; + + case 7: + this.state = 14793; + this.deallocate_unused_clause(); + break; + + case 8: + this.state = 14794; + _la = this._input.LA(1); + if(!(_la===166 || _la===1064)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 9: + this.state = 14795; + this.match(OracleSqlParser.RESULT_CACHE); + this.state = 14796; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14797; + this.match(OracleSqlParser.MODE); + this.state = 14798; + _la = this._input.LA(1); + if(!(_la===387 || _la===614)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14799; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 10: + this.state = 14800; + this.upgrade_table_clause(); + break; + + case 11: + this.state = 14801; + this.records_per_block_clause(); + break; + + case 12: + this.state = 14802; + this.parallel_clause(); + break; + + case 13: + this.state = 14803; + this.row_movement_clause(); + break; + + case 14: + this.state = 14804; + this.logical_replication_clause(); + break; + + case 15: + this.state = 14805; + this.flashback_archive_clause(); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14808; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1948, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 14811; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===21 || _la===228 || _la===258 || _la===703 || _la===909 || _la===1072 || _la===1118 || _la===1318 || _la===1369) { + this.state = 14810; + this.alter_iot_clauses(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_iot_clauses() { + let localctx = new Alter_iot_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1556, OracleSqlParser.RULE_alter_iot_clauses); + try { + this.state = 14817; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1950,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 14813; + this.index_org_table_clause(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 14814; + this.alter_overflow_clause(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 14815; + this.alter_mapping_table_clause(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 14816; + this.match(OracleSqlParser.COALESCE); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_mapping_table_clause() { + let localctx = new Alter_mapping_table_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1558, OracleSqlParser.RULE_alter_mapping_table_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14819; + this.match(OracleSqlParser.MAPPING); + this.state = 14820; + this.match(OracleSqlParser.TABLE); + this.state = 14823; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 39: + this.state = 14821; + this.allocate_extent_clause(); + break; + case 375: + this.state = 14822; + this.deallocate_unused_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + alter_overflow_clause() { + let localctx = new Alter_overflow_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1560, OracleSqlParser.RULE_alter_overflow_clause); + var _la = 0; + try { + this.state = 14835; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 21: + this.enterOuterAlt(localctx, 1); + this.state = 14825; + this.add_overflow_clause(); + break; + case 1318: + this.enterOuterAlt(localctx, 2); + this.state = 14826; + this.match(OracleSqlParser.OVERFLOW_); + this.state = 14831; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 14831; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 237: + case 258: + case 260: + case 591: + case 741: + case 882: + case 929: + case 1072: + case 1117: + case 1367: + case 1370: + case 1604: + case 1760: + case 2078: + this.state = 14827; + this.segment_attributes_clause(); + break; + case 39: + this.state = 14828; + this.allocate_extent_clause(); + break; + case 1682: + this.state = 14829; + this.shrink_clause(); + break; + case 375: + this.state = 14830; + this.deallocate_unused_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14833; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===39 || ((((_la - 237)) & ~0x1f) === 0 && ((1 << (_la - 237)) & 10485761) !== 0) || _la===375 || _la===591 || _la===741 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1367 || _la===1370 || _la===1604 || _la===1682 || _la===1760 || _la===2078); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_overflow_clause() { + let localctx = new Add_overflow_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1562, OracleSqlParser.RULE_add_overflow_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14837; + this.match(OracleSqlParser.ADD); + this.state = 14838; + this.match(OracleSqlParser.OVERFLOW_); + this.state = 14840; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 237)) & ~0x1f) === 0 && ((1 << (_la - 237)) & 10485761) !== 0) || _la===591 || _la===741 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1367 || _la===1370 || _la===1604 || _la===1760 || _la===2078) { + this.state = 14839; + this.segment_attributes_clause(); + } + + this.state = 14858; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 14842; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14843; + this.match(OracleSqlParser.PARTITION); + this.state = 14845; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 237)) & ~0x1f) === 0 && ((1 << (_la - 237)) & 10485761) !== 0) || _la===591 || _la===741 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1367 || _la===1370 || _la===1604 || _la===1760 || _la===2078) { + this.state = 14844; + this.segment_attributes_clause(); + } + + this.state = 14854; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14847; + this.match(OracleSqlParser.COMMA); + this.state = 14848; + this.match(OracleSqlParser.PARTITION); + this.state = 14850; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 237)) & ~0x1f) === 0 && ((1 << (_la - 237)) & 10485761) !== 0) || _la===591 || _la===741 || _la===882 || _la===929 || _la===1072 || _la===1117 || _la===1367 || _la===1370 || _la===1604 || _la===1760 || _la===2078) { + this.state = 14849; + this.segment_attributes_clause(); + } + + this.state = 14856; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 14857; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + update_index_clauses() { + let localctx = new Update_index_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1564, OracleSqlParser.RULE_update_index_clauses); + try { + this.state = 14862; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1960,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 14860; + this.update_global_index_clause(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 14861; + this.update_all_indexes_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + update_global_index_clause() { + let localctx = new Update_global_index_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1566, OracleSqlParser.RULE_update_global_index_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14864; + _la = this._input.LA(1); + if(!(_la===778 || _la===2205)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14865; + this.match(OracleSqlParser.GLOBAL); + this.state = 14866; + this.match(OracleSqlParser.INDEXES); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + update_all_indexes_clause() { + let localctx = new Update_all_indexes_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1568, OracleSqlParser.RULE_update_all_indexes_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14868; + this.match(OracleSqlParser.UPDATE); + this.state = 14869; + this.match(OracleSqlParser.INDEXES); + this.state = 14874; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 14870; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14871; + this.update_all_indexes_index_clause(); + this.state = 14872; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + update_all_indexes_index_clause() { + let localctx = new Update_all_indexes_index_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1570, OracleSqlParser.RULE_update_all_indexes_index_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14876; + this.index_name(); + this.state = 14877; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14880; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1346: + this.state = 14878; + this.update_index_partition(); + break; + case 1773: + this.state = 14879; + this.update_index_subpartition(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14882; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 14887; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14883; + this.match(OracleSqlParser.COMMA); + this.state = 14884; + this.update_all_indexes_clause(); + this.state = 14889; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + update_index_partition() { + let localctx = new Update_index_partitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1572, OracleSqlParser.RULE_update_index_partition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14890; + this.index_partition_description(); + this.state = 14892; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1761 || _la===2445) { + this.state = 14891; + this.index_subpartition_clause(); + } + + this.state = 14898; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1965,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 14894; + this.match(OracleSqlParser.COMMA); + this.state = 14895; + this.update_index_partition(); + } + this.state = 14900; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1965,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + update_index_subpartition() { + let localctx = new Update_index_subpartitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1574, OracleSqlParser.RULE_update_index_subpartition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14901; + this.match(OracleSqlParser.SUBPARTITION); + this.state = 14903; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1966,this._ctx); + if(la_===1) { + this.state = 14902; + this.subpartition_name(); + + } + this.state = 14907; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2078) { + this.state = 14905; + this.match(OracleSqlParser.TABLESPACE); + this.state = 14906; + this.tablespace(); + } + + this.state = 14913; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1968,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 14909; + this.match(OracleSqlParser.COMMA); + this.state = 14910; + this.update_index_subpartition(); + } + this.state = 14915; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1968,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + enable_disable_clause() { + let localctx = new Enable_disable_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1576, OracleSqlParser.RULE_enable_disable_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14916; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14918; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1213 || _la===2251) { + this.state = 14917; + _la = this._input.LA(1); + if(!(_la===1213 || _la===2251)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 14936; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2181: + this.state = 14920; + this.match(OracleSqlParser.UNIQUE); + this.state = 14921; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14922; + this.column_name(); + this.state = 14927; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 14923; + this.match(OracleSqlParser.COMMA); + this.state = 14924; + this.column_name(); + this.state = 14929; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 14930; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1449: + this.state = 14932; + this.match(OracleSqlParser.PRIMARY); + this.state = 14933; + this.match(OracleSqlParser.KEY); + break; + case 284: + this.state = 14934; + this.match(OracleSqlParser.CONSTRAINT); + this.state = 14935; + this.constraint_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14939; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 14938; + this.using_index_clause(); + } + + this.state = 14942; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===535) { + this.state = 14941; + this.exceptions_clause(); + } + + this.state = 14945; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 14944; + this.match(OracleSqlParser.CASCADE); + } + + this.state = 14949; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===467 || _la===812) { + this.state = 14947; + _la = this._input.LA(1); + if(!(_la===467 || _la===812)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 14948; + this.match(OracleSqlParser.INDEX); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + using_index_clause() { + let localctx = new Using_index_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1578, OracleSqlParser.RULE_using_index_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14951; + this.match(OracleSqlParser.USING); + this.state = 14952; + this.match(OracleSqlParser.INDEX); + this.state = 14959; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1976,this._ctx); + switch(la_) { + case 1: + this.state = 14953; + this.index_name(); + break; + + case 2: + this.state = 14954; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 14955; + this.create_index(); + this.state = 14956; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 3: + this.state = 14958; + this.index_properties(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + index_attributes() { + let localctx = new Index_attributesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1580, OracleSqlParser.RULE_index_attributes); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14973; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 14973; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 260: + case 741: + case 929: + case 1367: + case 1370: + case 1760: + this.state = 14961; + this.physical_attributes_clause(); + break; + case 591: + case 882: + case 1117: + this.state = 14962; + this.logging_clause(); + break; + case 2078: + this.state = 14963; + this.match(OracleSqlParser.TABLESPACE); + this.state = 14966; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 14964; + this.tablespace(); + break; + case 387: + this.state = 14965; + this.match(OracleSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 258: + case 1072: + this.state = 14968; + this.key_compression(); + break; + case 1186: + case 1707: + this.state = 14969; + this.sort_or_nosort(); + break; + case 1586: + this.state = 14970; + this.match(OracleSqlParser.REVERSE); + break; + case 780: + case 2288: + this.state = 14971; + this.visible_or_invisible(); + break; + case 1146: + case 1331: + this.state = 14972; + this.parallel_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 14975; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1979, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sort_or_nosort() { + let localctx = new Sort_or_nosortContext(this, this._ctx, this.state); + this.enterRule(localctx, 1582, OracleSqlParser.RULE_sort_or_nosort); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14977; + _la = this._input.LA(1); + if(!(_la===1186 || _la===1707)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + exceptions_clause() { + let localctx = new Exceptions_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1584, OracleSqlParser.RULE_exceptions_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 14979; + this.match(OracleSqlParser.EXCEPTIONS); + this.state = 14980; + this.match(OracleSqlParser.INTO); + this.state = 14981; + this.tableview_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + move_table_clause() { + let localctx = new Move_table_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1586, OracleSqlParser.RULE_move_table_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 14983; + this.match(OracleSqlParser.MOVE); + this.state = 14985; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1254) { + this.state = 14984; + this.match(OracleSqlParser.ONLINE); + } + + this.state = 14988; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1981,this._ctx); + if(la_===1) { + this.state = 14987; + this.segment_attributes_clause(); + + } + this.state = 14991; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1982,this._ctx); + if(la_===1) { + this.state = 14990; + this.table_compression(); + + } + this.state = 14994; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===258 || _la===703 || _la===909 || _la===1072 || _la===1118 || _la===1318 || _la===1369) { + this.state = 14993; + this.index_org_table_clause(); + } + + this.state = 15000; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===866 || _la===2265) { + this.state = 14998; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 866: + this.state = 14996; + this.lob_storage_clause(); + break; + case 2265: + this.state = 14997; + this.varray_col_properties(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15002; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15004; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1146 || _la===1331) { + this.state = 15003; + this.parallel_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + index_org_table_clause() { + let localctx = new Index_org_table_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1588, OracleSqlParser.RULE_index_org_table_clause); + var _la = 0; + try { + this.state = 15018; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 258: + case 909: + case 1072: + case 1118: + case 1369: + this.enterOuterAlt(localctx, 1); + this.state = 15010; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 15010; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 909: + case 1118: + this.state = 15006; + this.mapping_table_clause(); + break; + case 1369: + this.state = 15007; + this.match(OracleSqlParser.PCTTHRESHOLD); + this.state = 15008; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 258: + case 1072: + this.state = 15009; + this.key_compression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15012; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1988, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 15015; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===703 || _la===1318) { + this.state = 15014; + this.index_org_overflow_clause(); + } + + break; + case 703: + case 1318: + this.enterOuterAlt(localctx, 2); + this.state = 15017; + this.index_org_overflow_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + mapping_table_clause() { + let localctx = new Mapping_table_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1590, OracleSqlParser.RULE_mapping_table_clause); + try { + this.state = 15023; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 909: + this.enterOuterAlt(localctx, 1); + this.state = 15020; + this.match(OracleSqlParser.MAPPING); + this.state = 15021; + this.match(OracleSqlParser.TABLE); + break; + case 1118: + this.enterOuterAlt(localctx, 2); + this.state = 15022; + this.match(OracleSqlParser.NOMAPPING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + key_compression() { + let localctx = new Key_compressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1592, OracleSqlParser.RULE_key_compression); + try { + this.state = 15028; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1072: + this.enterOuterAlt(localctx, 1); + this.state = 15025; + this.match(OracleSqlParser.NOCOMPRESS); + break; + case 258: + this.enterOuterAlt(localctx, 2); + this.state = 15026; + this.match(OracleSqlParser.COMPRESS); + this.state = 15027; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + index_org_overflow_clause() { + let localctx = new Index_org_overflow_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1594, OracleSqlParser.RULE_index_org_overflow_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15032; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===703) { + this.state = 15030; + this.match(OracleSqlParser.INCLUDING); + this.state = 15031; + this.column_name(); + } + + this.state = 15034; + this.match(OracleSqlParser.OVERFLOW_); + this.state = 15036; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1994,this._ctx); + if(la_===1) { + this.state = 15035; + this.segment_attributes_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + column_clauses() { + let localctx = new Column_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1596, OracleSqlParser.RULE_column_clauses); + try { + this.state = 15042; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1995,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 15038; + this.add_modify_drop_column_clauses(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 15039; + this.rename_column_clause(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 15040; + this.modify_collection_retrieval(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 15041; + this.modify_lob_storage_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_collection_retrieval() { + let localctx = new Modify_collection_retrievalContext(this, this._ctx, this.state); + this.enterRule(localctx, 1598, OracleSqlParser.RULE_modify_collection_retrieval); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15044; + this.match(OracleSqlParser.MODIFY); + this.state = 15045; + this.match(OracleSqlParser.NESTED); + this.state = 15046; + this.match(OracleSqlParser.TABLE); + this.state = 15047; + this.collection_item(); + this.state = 15048; + this.match(OracleSqlParser.RETURN); + this.state = 15049; + this.match(OracleSqlParser.AS); + this.state = 15050; + _la = this._input.LA(1); + if(!(_la===875 || _la===2256)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + collection_item() { + let localctx = new Collection_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 1600, OracleSqlParser.RULE_collection_item); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15052; + this.tableview_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + rename_column_clause() { + let localctx = new Rename_column_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1602, OracleSqlParser.RULE_rename_column_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15054; + this.match(OracleSqlParser.RENAME); + this.state = 15055; + this.match(OracleSqlParser.COLUMN); + this.state = 15056; + this.old_column_name(); + this.state = 15057; + this.match(OracleSqlParser.TO); + this.state = 15058; + this.new_column_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + old_column_name() { + let localctx = new Old_column_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1604, OracleSqlParser.RULE_old_column_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15060; + this.column_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + new_column_name() { + let localctx = new New_column_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1606, OracleSqlParser.RULE_new_column_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15062; + this.column_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_modify_drop_column_clauses() { + let localctx = new Add_modify_drop_column_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1608, OracleSqlParser.RULE_add_modify_drop_column_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15068; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 15068; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1996,this._ctx); + switch(la_) { + case 1: + this.state = 15064; + this.constraint_clauses(); + break; + + case 2: + this.state = 15065; + this.add_column_clause(); + break; + + case 3: + this.state = 15066; + this.modify_column_clauses(); + break; + + case 4: + this.state = 15067; + this.drop_column_clause(); + break; + + } + this.state = 15070; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===21 || _la===467 || _la===978 || _la===1557 || _la===1669); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_column_clause() { + let localctx = new Drop_column_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1610, OracleSqlParser.RULE_drop_column_clause); + var _la = 0; + try { + this.state = 15134; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2008,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 15072; + this.match(OracleSqlParser.SET); + this.state = 15073; + this.match(OracleSqlParser.UNUSED); + this.state = 15087; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 237: + this.state = 15074; + this.match(OracleSqlParser.COLUMN); + this.state = 15075; + this.column_name(); + break; + case 2445: + this.state = 15076; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15077; + this.column_name(); + this.state = 15082; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 15078; + this.match(OracleSqlParser.COMMA); + this.state = 15079; + this.column_name(); + this.state = 15084; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15085; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15094; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===179 || _la===778) { + this.state = 15092; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 179: + this.state = 15089; + this.match(OracleSqlParser.CASCADE); + this.state = 15090; + this.match(OracleSqlParser.CONSTRAINTS); + break; + case 778: + this.state = 15091; + this.match(OracleSqlParser.INVALIDATE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15096; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 15097; + this.match(OracleSqlParser.DROP); + this.state = 15111; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 237: + this.state = 15098; + this.match(OracleSqlParser.COLUMN); + this.state = 15099; + this.column_name(); + break; + case 2445: + this.state = 15100; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15101; + this.column_name(); + this.state = 15106; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 15102; + this.match(OracleSqlParser.COMMA); + this.state = 15103; + this.column_name(); + this.state = 15108; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15109; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15118; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===179 || _la===778) { + this.state = 15116; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 179: + this.state = 15113; + this.match(OracleSqlParser.CASCADE); + this.state = 15114; + this.match(OracleSqlParser.CONSTRAINTS); + break; + case 778: + this.state = 15115; + this.match(OracleSqlParser.INVALIDATE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15120; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15123; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===201) { + this.state = 15121; + this.match(OracleSqlParser.CHECKPOINT); + this.state = 15122; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } + + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 15125; + this.match(OracleSqlParser.DROP); + this.state = 15130; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2202: + this.state = 15126; + this.match(OracleSqlParser.UNUSED); + this.state = 15127; + this.match(OracleSqlParser.COLUMNS); + break; + case 238: + this.state = 15128; + this.match(OracleSqlParser.COLUMNS); + this.state = 15129; + this.match(OracleSqlParser.CONTINUE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + this.state = 15132; + this.match(OracleSqlParser.CHECKPOINT); + this.state = 15133; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_column_clauses() { + let localctx = new Modify_column_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1612, OracleSqlParser.RULE_modify_column_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15136; + this.match(OracleSqlParser.MODIFY); + this.state = 15162; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2011,this._ctx); + switch(la_) { + case 1: + this.state = 15137; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15138; + this.modify_col_properties(); + this.state = 15143; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 15139; + this.match(OracleSqlParser.COMMA); + this.state = 15140; + this.modify_col_properties(); + this.state = 15145; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15146; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.state = 15148; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15149; + this.modify_col_visibility(); + this.state = 15154; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 15150; + this.match(OracleSqlParser.COMMA); + this.state = 15151; + this.modify_col_visibility(); + this.state = 15156; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15157; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 3: + this.state = 15159; + this.modify_col_properties(); + break; + + case 4: + this.state = 15160; + this.modify_col_visibility(); + break; + + case 5: + this.state = 15161; + this.modify_col_substitutable(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_col_properties() { + let localctx = new Modify_col_propertiesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1614, OracleSqlParser.RULE_modify_col_properties); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15164; + this.column_name(); + this.state = 15166; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 119)) & ~0x1f) === 0 && ((1 << (_la - 119)) & 545264193) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4194313) !== 0) || ((((_la - 359)) & ~0x1f) === 0 && ((1 << (_la - 359)) & 1572881) !== 0) || _la===463 || _la===469 || _la===605 || _la===677 || ((((_la - 767)) & ~0x1f) === 0 && ((1 << (_la - 767)) & 385) !== 0) || _la===891 || ((((_la - 956)) & ~0x1f) === 0 && ((1 << (_la - 956)) & 134217985) !== 0) || ((((_la - 1002)) & ~0x1f) === 0 && ((1 << (_la - 1002)) & 83) !== 0) || ((((_la - 1228)) & ~0x1f) === 0 && ((1 << (_la - 1228)) & 35) !== 0) || ((((_la - 1401)) & ~0x1f) === 0 && ((1 << (_la - 1401)) & 196609) !== 0) || _la===1496 || _la===1507 || _la===1599 || _la===1631 || _la===1634 || ((((_la - 1690)) & ~0x1f) === 0 && ((1 << (_la - 1690)) & 16387) !== 0) || _la===1765 || ((((_la - 2105)) & ~0x1f) === 0 && ((1 << (_la - 2105)) & 2959) !== 0) || _la===2212 || _la===2257 || _la===2258 || ((((_la - 2349)) & ~0x1f) === 0 && ((1 << (_la - 2349)) & 1153) !== 0)) { + this.state = 15165; + this.datatype(); + } + + this.state = 15174; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 15168; + this.match(OracleSqlParser.DEFAULT); + this.state = 15171; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1257) { + this.state = 15169; + this.match(OracleSqlParser.ON); + this.state = 15170; + this.match(OracleSqlParser.NULL_); + } + + this.state = 15173; + this.expression(); + } + + this.state = 15179; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 503: + this.state = 15176; + this.match(OracleSqlParser.ENCRYPT); + this.state = 15177; + this.encryption_spec(); + break; + case 385: + this.state = 15178; + this.match(OracleSqlParser.DECRYPT); + break; + case -1: + case 21: + case 51: + case 200: + case 284: + case 427: + case 467: + case 497: + case 866: + case 978: + case 1202: + case 1226: + case 1449: + case 1526: + case 1557: + case 1669: + case 2181: + case 2446: + case 2451: + case 2452: + case 2467: + break; + default: + break; + } + this.state = 15184; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===200 || _la===284 || _la===1202 || _la===1226 || _la===1449 || _la===1526 || _la===2181) { + this.state = 15181; + this.inline_constraint(); + this.state = 15186; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15188; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===866) { + this.state = 15187; + this.lob_storage_clause(); + } + + this.state = 15191; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===51) { + this.state = 15190; + this.annotations_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_col_visibility() { + let localctx = new Modify_col_visibilityContext(this, this._ctx, this.state); + this.enterRule(localctx, 1616, OracleSqlParser.RULE_modify_col_visibility); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15193; + this.column_name(); + this.state = 15194; + _la = this._input.LA(1); + if(!(_la===780 || _la===2288)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_col_substitutable() { + let localctx = new Modify_col_substitutableContext(this, this._ctx, this.state); + this.enterRule(localctx, 1618, OracleSqlParser.RULE_modify_col_substitutable); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15196; + this.match(OracleSqlParser.COLUMN); + this.state = 15197; + this.column_name(); + this.state = 15199; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 15198; + this.match(OracleSqlParser.NOT); + } + + this.state = 15201; + this.match(OracleSqlParser.SUBSTITUTABLE); + this.state = 15202; + this.match(OracleSqlParser.AT); + this.state = 15203; + this.match(OracleSqlParser.ALL); + this.state = 15204; + this.match(OracleSqlParser.LEVELS); + this.state = 15206; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===614) { + this.state = 15205; + this.match(OracleSqlParser.FORCE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_column_clause() { + let localctx = new Add_column_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1620, OracleSqlParser.RULE_add_column_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15208; + this.match(OracleSqlParser.ADD); + this.state = 15230; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2445: + this.state = 15209; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15212; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2021,this._ctx); + switch(la_) { + case 1: + this.state = 15210; + this.column_definition(); + break; + + case 2: + this.state = 15211; + this.virtual_column_definition(); + break; + + } + this.state = 15221; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 15214; + this.match(OracleSqlParser.COMMA); + this.state = 15217; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2022,this._ctx); + switch(la_) { + case 1: + this.state = 15215; + this.column_definition(); + break; + + case 2: + this.state = 15216; + this.virtual_column_definition(); + break; + + } + this.state = 15223; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15224; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 15228; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2024,this._ctx); + switch(la_) { + case 1: + this.state = 15226; + this.column_definition(); + break; + + case 2: + this.state = 15227; + this.virtual_column_definition(); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15233; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===237 || _la===866 || _la===1011 || _la===2265 || _la===2349) { + this.state = 15232; + this.column_properties(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + varray_col_properties() { + let localctx = new Varray_col_propertiesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1622, OracleSqlParser.RULE_varray_col_properties); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15235; + this.match(OracleSqlParser.VARRAY); + this.state = 15236; + this.varray_item(); + this.state = 15242; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2028,this._ctx); + switch(la_) { + case 1: + this.state = 15238; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===484 || _la===783 || _la===1202 || _la===1778) { + this.state = 15237; + this.substitutable_column_clause(); + } + + this.state = 15240; + this.varray_storage_clause(); + break; + + case 2: + this.state = 15241; + this.substitutable_column_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + varray_storage_clause() { + let localctx = new Varray_storage_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1624, OracleSqlParser.RULE_varray_storage_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15244; + this.match(OracleSqlParser.STORE); + this.state = 15245; + this.match(OracleSqlParser.AS); + this.state = 15247; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===107 || _la===1638) { + this.state = 15246; + _la = this._input.LA(1); + if(!(_la===107 || _la===1638)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 15249; + this.match(OracleSqlParser.LOB); + this.state = 15258; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2031,this._ctx); + if(la_===1) { + this.state = 15251; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 142606335) !== 0) || _la===2478) { + this.state = 15250; + this.lob_segname(); + } + + this.state = 15253; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15254; + this.lob_storage_parameters(); + this.state = 15255; + this.match(OracleSqlParser.RIGHT_PAREN); + + } else if(la_===2) { + this.state = 15257; + this.lob_segname(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lob_segname() { + let localctx = new Lob_segnameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1626, OracleSqlParser.RULE_lob_segname); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15260; + this.regular_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lob_item() { + let localctx = new Lob_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 1628, OracleSqlParser.RULE_lob_item); + try { + this.state = 15265; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 15262; + this.regular_id(); + break; + case 2434: + case 2441: + this.enterOuterAlt(localctx, 2); + this.state = 15263; + this.quoted_string(); + break; + case 2442: + this.enterOuterAlt(localctx, 3); + this.state = 15264; + this.match(OracleSqlParser.DELIMITED_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lob_storage_parameters() { + let localctx = new Lob_storage_parametersContext(this, this._ctx, this.state); + this.enterRule(localctx, 1630, OracleSqlParser.RULE_lob_storage_parameters); + try { + this.state = 15274; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2078: + this.enterOuterAlt(localctx, 1); + this.state = 15267; + this.match(OracleSqlParser.TABLESPACE); + this.state = 15268; + localctx.tablespace_name = this.id_expression(); + break; + case 166: + case 205: + case 258: + case 385: + case 386: + case 427: + case 497: + case 503: + case 624: + case 811: + case 1064: + case 1072: + case 1371: + case 1581: + this.enterOuterAlt(localctx, 2); + this.state = 15269; + this.lob_parameters(); + this.state = 15271; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2033,this._ctx); + if(la_===1) { + this.state = 15270; + this.storage_clause(); + + } + break; + case 1760: + this.enterOuterAlt(localctx, 3); + this.state = 15273; + this.storage_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lob_storage_clause() { + let localctx = new Lob_storage_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1632, OracleSqlParser.RULE_lob_storage_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15276; + this.match(OracleSqlParser.LOB); + this.state = 15321; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2042,this._ctx); + switch(la_) { + case 1: + this.state = 15277; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15278; + this.lob_item(); + this.state = 15283; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 15279; + this.match(OracleSqlParser.COMMA); + this.state = 15280; + this.lob_item(); + this.state = 15285; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15286; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 15287; + this.match(OracleSqlParser.STORE); + this.state = 15288; + this.match(OracleSqlParser.AS); + this.state = 15298; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 15298; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 107: + case 1638: + this.state = 15289; + _la = this._input.LA(1); + if(!(_la===107 || _la===1638)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 2445: + this.state = 15290; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15294; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===166 || _la===205 || _la===258 || _la===385 || _la===386 || _la===427 || _la===497 || _la===503 || _la===624 || _la===811 || _la===1064 || _la===1072 || _la===1371 || _la===1581 || _la===1760 || _la===2078) { + this.state = 15291; + this.lob_storage_parameters(); + this.state = 15296; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15297; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15300; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2038, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 2: + this.state = 15302; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15303; + this.lob_item(); + this.state = 15304; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 15305; + this.match(OracleSqlParser.STORE); + this.state = 15306; + this.match(OracleSqlParser.AS); + this.state = 15317; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 15317; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2040,this._ctx); + switch(la_) { + case 1: + this.state = 15307; + _la = this._input.LA(1); + if(!(_la===107 || _la===1638)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 15308; + this.lob_segname(); + break; + + case 3: + this.state = 15309; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15313; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===166 || _la===205 || _la===258 || _la===385 || _la===386 || _la===427 || _la===497 || _la===503 || _la===624 || _la===811 || _la===1064 || _la===1072 || _la===1371 || _la===1581 || _la===1760 || _la===2078) { + this.state = 15310; + this.lob_storage_parameters(); + this.state = 15315; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15316; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15319; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2041, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_lob_storage_clause() { + let localctx = new Modify_lob_storage_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1634, OracleSqlParser.RULE_modify_lob_storage_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15323; + this.match(OracleSqlParser.MODIFY); + this.state = 15324; + this.match(OracleSqlParser.LOB); + this.state = 15325; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15326; + this.lob_item(); + this.state = 15327; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 15328; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15329; + this.modify_lob_parameters(); + this.state = 15330; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + modify_lob_parameters() { + let localctx = new Modify_lob_parametersContext(this, this._ctx, this.state); + this.enterRule(localctx, 1636, OracleSqlParser.RULE_modify_lob_parameters); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15356; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 15356; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2045,this._ctx); + switch(la_) { + case 1: + this.state = 15332; + this.storage_clause(); + break; + + case 2: + this.state = 15333; + _la = this._input.LA(1); + if(!(_la===624 || _la===1371)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 15334; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + + case 3: + this.state = 15335; + this.match(OracleSqlParser.REBUILD); + this.state = 15336; + this.match(OracleSqlParser.FREEPOOLS); + break; + + case 4: + this.state = 15337; + this.lob_retention_clause(); + break; + + case 5: + this.state = 15338; + this.lob_deduplicate_clause(); + break; + + case 6: + this.state = 15339; + this.lob_compression_clause(); + break; + + case 7: + this.state = 15340; + this.match(OracleSqlParser.ENCRYPT); + this.state = 15341; + this.encryption_spec(); + break; + + case 8: + this.state = 15342; + this.match(OracleSqlParser.DECRYPT); + break; + + case 9: + this.state = 15343; + this.match(OracleSqlParser.CACHE); + break; + + case 10: + this.state = 15348; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2043,this._ctx); + switch(la_) { + case 1: + this.state = 15344; + this.match(OracleSqlParser.CACHE); + break; + + case 2: + this.state = 15345; + this.match(OracleSqlParser.NOCACHE); + break; + + case 3: + this.state = 15346; + this.match(OracleSqlParser.CACHE); + this.state = 15347; + this.match(OracleSqlParser.READS); + break; + + } + this.state = 15351; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===591 || _la===882 || _la===1117) { + this.state = 15350; + this.logging_clause(); + } + + break; + + case 11: + this.state = 15353; + this.allocate_extent_clause(); + break; + + case 12: + this.state = 15354; + this.shrink_clause(); + break; + + case 13: + this.state = 15355; + this.deallocate_unused_clause(); + break; + + } + this.state = 15358; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===39 || _la===166 || _la===258 || ((((_la - 375)) & ~0x1f) === 0 && ((1 << (_la - 375)) & 3073) !== 0) || _la===503 || _la===624 || _la===811 || _la===1064 || _la===1072 || _la===1371 || _la===1509 || _la===1581 || _la===1682 || _la===1760); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lob_parameters() { + let localctx = new Lob_parametersContext(this, this._ctx, this.state); + this.enterRule(localctx, 1638, OracleSqlParser.RULE_lob_parameters); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15385; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 15385; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 427: + case 497: + this.state = 15360; + _la = this._input.LA(1); + if(!(_la===427 || _la===497)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 15361; + this.match(OracleSqlParser.STORAGE); + this.state = 15362; + this.match(OracleSqlParser.IN); + this.state = 15363; + this.match(OracleSqlParser.ROW); + break; + case 205: + this.state = 15364; + this.match(OracleSqlParser.CHUNK); + this.state = 15365; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 1371: + this.state = 15366; + this.match(OracleSqlParser.PCTVERSION); + this.state = 15367; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 624: + this.state = 15368; + this.match(OracleSqlParser.FREEPOOLS); + this.state = 15369; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 1581: + this.state = 15370; + this.lob_retention_clause(); + break; + case 386: + case 811: + this.state = 15371; + this.lob_deduplicate_clause(); + break; + case 258: + case 1072: + this.state = 15372; + this.lob_compression_clause(); + break; + case 503: + this.state = 15373; + this.match(OracleSqlParser.ENCRYPT); + this.state = 15374; + this.encryption_spec(); + break; + case 385: + this.state = 15375; + this.match(OracleSqlParser.DECRYPT); + break; + case 166: + case 1064: + this.state = 15380; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2047,this._ctx); + switch(la_) { + case 1: + this.state = 15376; + this.match(OracleSqlParser.CACHE); + break; + + case 2: + this.state = 15377; + this.match(OracleSqlParser.NOCACHE); + break; + + case 3: + this.state = 15378; + this.match(OracleSqlParser.CACHE); + this.state = 15379; + this.match(OracleSqlParser.READS); + break; + + } + this.state = 15383; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===591 || _la===882 || _la===1117) { + this.state = 15382; + this.logging_clause(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15387; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2050, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lob_deduplicate_clause() { + let localctx = new Lob_deduplicate_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1640, OracleSqlParser.RULE_lob_deduplicate_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15389; + _la = this._input.LA(1); + if(!(_la===386 || _la===811)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lob_compression_clause() { + let localctx = new Lob_compression_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1642, OracleSqlParser.RULE_lob_compression_clause); + var _la = 0; + try { + this.state = 15396; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1072: + this.enterOuterAlt(localctx, 1); + this.state = 15391; + this.match(OracleSqlParser.NOCOMPRESS); + break; + case 258: + this.enterOuterAlt(localctx, 2); + this.state = 15392; + this.match(OracleSqlParser.COMPRESS); + this.state = 15394; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===673 || _la===895 || _la===933) { + this.state = 15393; + _la = this._input.LA(1); + if(!(_la===673 || _la===895 || _la===933)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lob_retention_clause() { + let localctx = new Lob_retention_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1644, OracleSqlParser.RULE_lob_retention_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15398; + this.match(OracleSqlParser.RETENTION); + this.state = 15404; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 2404: + this.state = 15399; + this.match(OracleSqlParser.MAX); + break; + case 2407: + this.state = 15400; + this.match(OracleSqlParser.MIN); + this.state = 15401; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 91: + this.state = 15402; + this.match(OracleSqlParser.AUTO); + break; + case 1131: + this.state = 15403; + this.match(OracleSqlParser.NONE); + break; + case 39: + case 166: + case 205: + case 258: + case 375: + case 385: + case 386: + case 427: + case 497: + case 503: + case 624: + case 811: + case 1064: + case 1072: + case 1371: + case 1509: + case 1581: + case 1682: + case 1760: + case 2078: + case 2446: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + encryption_spec() { + let localctx = new Encryption_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 1646, OracleSqlParser.RULE_encryption_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15408; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 15406; + this.match(OracleSqlParser.USING); + this.state = 15407; + this.match(OracleSqlParser.CHAR_STRING); + } + + this.state = 15413; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===683) { + this.state = 15410; + this.match(OracleSqlParser.IDENTIFIED); + this.state = 15411; + this.match(OracleSqlParser.BY); + this.state = 15412; + this.match(OracleSqlParser.REGULAR_ID); + } + + this.state = 15416; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2441) { + this.state = 15415; + this.match(OracleSqlParser.CHAR_STRING); + } + + this.state = 15422; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135 || _la===1611) { + this.state = 15419; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1135) { + this.state = 15418; + this.match(OracleSqlParser.NO); + } + + this.state = 15421; + this.match(OracleSqlParser.SALT); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tablespace() { + let localctx = new TablespaceContext(this, this._ctx, this.state); + this.enterRule(localctx, 1648, OracleSqlParser.RULE_tablespace); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15424; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + varray_item() { + let localctx = new Varray_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 1650, OracleSqlParser.RULE_varray_item); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15429; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2059,this._ctx); + if(la_===1) { + this.state = 15426; + this.id_expression(); + this.state = 15427; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 15434; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2060,this._ctx); + if(la_===1) { + this.state = 15431; + this.id_expression(); + this.state = 15432; + this.match(OracleSqlParser.PERIOD); + + } + this.state = 15436; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + column_properties() { + let localctx = new Column_propertiesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1652, OracleSqlParser.RULE_column_properties); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15458; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 15458; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 237: + this.state = 15438; + this.object_type_col_properties(); + break; + case 1011: + this.state = 15439; + this.nested_table_col_properties(); + break; + case 866: + case 2265: + this.state = 15442; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2265: + this.state = 15440; + this.varray_col_properties(); + break; + case 866: + this.state = 15441; + this.lob_storage_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15455; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2063,this._ctx); + if(la_===1) { + this.state = 15444; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15445; + this.lob_partition_storage(); + this.state = 15450; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 15446; + this.match(OracleSqlParser.COMMA); + this.state = 15447; + this.lob_partition_storage(); + this.state = 15452; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15453; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + break; + case 2349: + this.state = 15457; + this.xmltype_column_properties(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15460; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2065, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lob_partition_storage() { + let localctx = new Lob_partition_storageContext(this, this._ctx, this.state); + this.enterRule(localctx, 1654, OracleSqlParser.RULE_lob_partition_storage); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15462; + this.match(OracleSqlParser.LOB); + this.state = 15495; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2070,this._ctx); + switch(la_) { + case 1: + this.state = 15463; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15464; + this.lob_item(); + + this.state = 15465; + this.match(OracleSqlParser.COMMA); + this.state = 15466; + this.lob_item(); + this.state = 15468; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 15469; + this.match(OracleSqlParser.STORE); + this.state = 15470; + this.match(OracleSqlParser.AS); + this.state = 15476; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 15476; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 107: + case 1638: + this.state = 15471; + _la = this._input.LA(1); + if(!(_la===107 || _la===1638)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 2445: + this.state = 15472; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15473; + this.lob_storage_parameters(); + this.state = 15474; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15478; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===107 || _la===1638 || _la===2445); + break; + + case 2: + this.state = 15480; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15481; + this.lob_item(); + this.state = 15482; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 15483; + this.match(OracleSqlParser.STORE); + this.state = 15484; + this.match(OracleSqlParser.AS); + this.state = 15491; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 15491; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2068,this._ctx); + switch(la_) { + case 1: + this.state = 15485; + _la = this._input.LA(1); + if(!(_la===107 || _la===1638)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 15486; + this.lob_segname(); + break; + + case 3: + this.state = 15487; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15488; + this.lob_storage_parameters(); + this.state = 15489; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + this.state = 15493; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 142606335) !== 0) || _la===2445 || _la===2478); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + period_definition() { + let localctx = new Period_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1656, OracleSqlParser.RULE_period_definition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15497; + if (!( this.isVersion12())) { + throw new antlr4.error.FailedPredicateException(this, "this.isVersion12()"); + } + this.state = 15498; + this.match(OracleSqlParser.PERIOD); + this.state = 15499; + this.match(OracleSqlParser.FOR); + this.state = 15500; + this.column_name(); + this.state = 15507; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 15501; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15502; + this.start_time_column(); + this.state = 15503; + this.match(OracleSqlParser.COMMA); + this.state = 15504; + this.end_time_column(); + this.state = 15505; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + start_time_column() { + let localctx = new Start_time_columnContext(this, this._ctx, this.state); + this.enterRule(localctx, 1658, OracleSqlParser.RULE_start_time_column); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15509; + this.column_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + end_time_column() { + let localctx = new End_time_columnContext(this, this._ctx, this.state); + this.enterRule(localctx, 1660, OracleSqlParser.RULE_end_time_column); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15511; + this.column_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + column_definition() { + let localctx = new Column_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1662, OracleSqlParser.RULE_column_definition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15513; + this.column_name(); + this.state = 15522; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2074,this._ctx); + if(la_===1) { + this.state = 15516; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2072,this._ctx); + switch(la_) { + case 1: + this.state = 15514; + this.datatype(); + break; + + case 2: + this.state = 15515; + this.type_name(); + break; + + } + this.state = 15520; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2370) { + this.state = 15518; + this.match(OracleSqlParser.COLLATE); + this.state = 15519; + this.column_collation_name(); + } + + + } + this.state = 15525; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1707) { + this.state = 15524; + this.match(OracleSqlParser.SORT); + } + + this.state = 15528; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===780 || _la===2288) { + this.state = 15527; + _la = this._input.LA(1); + if(!(_la===780 || _la===2288)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 15537; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 387: + this.state = 15530; + this.match(OracleSqlParser.DEFAULT); + this.state = 15533; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1257) { + this.state = 15531; + this.match(OracleSqlParser.ON); + this.state = 15532; + this.match(OracleSqlParser.NULL_); + } + + this.state = 15535; + this.expression(); + break; + case 638: + this.state = 15536; + this.identity_clause(); + break; + case -1: + case 21: + case 51: + case 200: + case 237: + case 284: + case 427: + case 467: + case 497: + case 503: + case 866: + case 978: + case 1011: + case 1202: + case 1226: + case 1449: + case 1526: + case 1557: + case 1626: + case 1669: + case 2181: + case 2265: + case 2306: + case 2349: + case 2446: + case 2451: + case 2452: + case 2467: + break; + default: + break; + } + this.state = 15541; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===503) { + this.state = 15539; + this.match(OracleSqlParser.ENCRYPT); + this.state = 15540; + this.encryption_spec(); + } + + this.state = 15549; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2081,this._ctx); + if(la_===1) { + this.state = 15544; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 15543; + this.inline_constraint(); + this.state = 15546; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===200 || _la===284 || _la===1202 || _la===1226 || _la===1449 || _la===1526 || _la===2181); + + } else if(la_===2) { + this.state = 15548; + this.inline_ref_constraint(); + + } + this.state = 15552; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===51) { + this.state = 15551; + this.annotations_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + column_collation_name() { + let localctx = new Column_collation_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1664, OracleSqlParser.RULE_column_collation_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15554; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + identity_clause() { + let localctx = new Identity_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1666, OracleSqlParser.RULE_identity_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15556; + this.match(OracleSqlParser.GENERATED); + this.state = 15564; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 44: + this.state = 15557; + this.match(OracleSqlParser.ALWAYS); + break; + case 160: + this.state = 15558; + this.match(OracleSqlParser.BY); + this.state = 15559; + this.match(OracleSqlParser.DEFAULT); + this.state = 15562; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1257) { + this.state = 15560; + this.match(OracleSqlParser.ON); + this.state = 15561; + this.match(OracleSqlParser.NULL_); + } + + break; + case 69: + break; + default: + break; + } + this.state = 15566; + this.match(OracleSqlParser.AS); + this.state = 15567; + this.match(OracleSqlParser.IDENTITY); + this.state = 15569; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===166 || _la===346 || _la===705 || _la===812 || _la===930 || _la===958 || _la===1064 || _la===1082 || ((((_la - 1112)) & ~0x1f) === 0 && ((1 << (_la - 1112)) & 67110017) !== 0) || _la===1179 || _la===1301 || _la===1618 || _la===1735 || _la===2445) { + this.state = 15568; + this.identity_options_parentheses(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + identity_options_parentheses() { + let localctx = new Identity_options_parenthesesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1668, OracleSqlParser.RULE_identity_options_parentheses); + var _la = 0; + try { + this.state = 15584; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 166: + case 346: + case 705: + case 812: + case 930: + case 958: + case 1064: + case 1082: + case 1112: + case 1119: + case 1122: + case 1138: + case 1179: + case 1301: + case 1618: + case 1735: + this.enterOuterAlt(localctx, 1); + this.state = 15572; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 15571; + this.identity_options(); + this.state = 15574; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===166 || _la===346 || _la===705 || _la===812 || _la===930 || _la===958 || _la===1064 || _la===1082 || ((((_la - 1112)) & ~0x1f) === 0 && ((1 << (_la - 1112)) & 67110017) !== 0) || _la===1179 || _la===1301 || _la===1618 || _la===1735); + break; + case 2445: + this.enterOuterAlt(localctx, 2); + this.state = 15576; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15578; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 15577; + this.identity_options(); + this.state = 15580; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===166 || _la===346 || _la===705 || _la===812 || _la===930 || _la===958 || _la===1064 || _la===1082 || ((((_la - 1112)) & ~0x1f) === 0 && ((1 << (_la - 1112)) & 67110017) !== 0) || _la===1179 || _la===1301 || _la===1618 || _la===1735); + this.state = 15582; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + identity_options() { + let localctx = new Identity_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1670, OracleSqlParser.RULE_identity_options); + var _la = 0; + try { + this.state = 15614; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1735: + this.enterOuterAlt(localctx, 1); + this.state = 15586; + this.match(OracleSqlParser.START); + this.state = 15587; + this.match(OracleSqlParser.WITH); + this.state = 15591; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + case 2440: + this.state = 15588; + this.numeric(); + break; + case 856: + this.state = 15589; + this.match(OracleSqlParser.LIMIT); + this.state = 15590; + this.match(OracleSqlParser.VALUE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 705: + this.enterOuterAlt(localctx, 2); + this.state = 15593; + this.match(OracleSqlParser.INCREMENT); + this.state = 15594; + this.match(OracleSqlParser.BY); + this.state = 15595; + this.numeric(); + break; + case 930: + this.enterOuterAlt(localctx, 3); + this.state = 15596; + this.match(OracleSqlParser.MAXVALUE); + this.state = 15597; + this.numeric(); + break; + case 1119: + this.enterOuterAlt(localctx, 4); + this.state = 15598; + this.match(OracleSqlParser.NOMAXVALUE); + break; + case 958: + this.enterOuterAlt(localctx, 5); + this.state = 15599; + this.match(OracleSqlParser.MINVALUE); + this.state = 15600; + this.numeric(); + break; + case 1122: + this.enterOuterAlt(localctx, 6); + this.state = 15601; + this.match(OracleSqlParser.NOMINVALUE); + break; + case 346: + this.enterOuterAlt(localctx, 7); + this.state = 15602; + this.match(OracleSqlParser.CYCLE); + break; + case 1082: + this.enterOuterAlt(localctx, 8); + this.state = 15603; + this.match(OracleSqlParser.NOCYCLE); + break; + case 166: + this.enterOuterAlt(localctx, 9); + this.state = 15604; + this.match(OracleSqlParser.CACHE); + this.state = 15605; + this.numeric(); + break; + case 1064: + this.enterOuterAlt(localctx, 10); + this.state = 15606; + this.match(OracleSqlParser.NOCACHE); + break; + case 1301: + this.enterOuterAlt(localctx, 11); + this.state = 15607; + this.match(OracleSqlParser.ORDER); + break; + case 1138: + this.enterOuterAlt(localctx, 12); + this.state = 15608; + this.match(OracleSqlParser.NOORDER); + break; + case 1618: + this.enterOuterAlt(localctx, 13); + this.state = 15609; + this.match(OracleSqlParser.SCALE); + this.state = 15610; + _la = this._input.LA(1); + if(!(_la===1098 || _la===2427)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 1179: + this.enterOuterAlt(localctx, 14); + this.state = 15611; + this.match(OracleSqlParser.NOSCALE); + break; + case 812: + this.enterOuterAlt(localctx, 15); + this.state = 15612; + this.match(OracleSqlParser.KEEP); + break; + case 1112: + this.enterOuterAlt(localctx, 16); + this.state = 15613; + this.match(OracleSqlParser.NOKEEP); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + virtual_column_definition() { + let localctx = new Virtual_column_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1672, OracleSqlParser.RULE_virtual_column_definition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15616; + this.column_name(); + this.state = 15622; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2092,this._ctx); + if(la_===1) { + this.state = 15617; + this.datatype(); + this.state = 15620; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2370) { + this.state = 15618; + this.match(OracleSqlParser.COLLATE); + this.state = 15619; + this.column_collation_name(); + } + + + } + this.state = 15625; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===780 || _la===2288) { + this.state = 15624; + _la = this._input.LA(1); + if(!(_la===780 || _la===2288)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 15628; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69 || _la===638) { + this.state = 15627; + this.virtual_column_expression(); + } + + this.state = 15631; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2286) { + this.state = 15630; + this.match(OracleSqlParser.VIRTUAL); + } + + this.state = 15634; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===528) { + this.state = 15633; + this.evaluation_edition_clause(); + } + + this.state = 15644; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2098,this._ctx); + if(la_===1) { + this.state = 15636; + this.match(OracleSqlParser.UNUSABLE); + this.state = 15637; + this.match(OracleSqlParser.BEFORE); + this.state = 15642; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 334: + this.state = 15638; + this.match(OracleSqlParser.CURRENT); + this.state = 15639; + this.match(OracleSqlParser.EDITION); + break; + case 481: + this.state = 15640; + this.match(OracleSqlParser.EDITION); + this.state = 15641; + this.edition_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + this.state = 15655; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2201) { + this.state = 15646; + this.match(OracleSqlParser.UNUSABLE); + this.state = 15647; + this.match(OracleSqlParser.BEGINNING); + this.state = 15648; + this.match(OracleSqlParser.WITH); + this.state = 15653; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 334: + case 1226: + this.state = 15649; + _la = this._input.LA(1); + if(!(_la===334 || _la===1226)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 15650; + this.match(OracleSqlParser.EDITION); + break; + case 481: + this.state = 15651; + this.match(OracleSqlParser.EDITION); + this.state = 15652; + this.edition_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 15660; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===200 || _la===284 || _la===1202 || _la===1226 || _la===1449 || _la===1526 || _la===2181) { + this.state = 15657; + this.inline_constraint(); + this.state = 15662; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15664; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===160) { + this.state = 15663; + this.by_user_for_statistics_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + virtual_column_expression() { + let localctx = new Virtual_column_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1674, OracleSqlParser.RULE_virtual_column_expression); + var _la = 0; + try { + this.state = 15678; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2105,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 15666; + this.autogenerated_sequence_definition(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 15671; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===638) { + this.state = 15667; + this.match(OracleSqlParser.GENERATED); + this.state = 15669; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===44) { + this.state = 15668; + this.match(OracleSqlParser.ALWAYS); + } + + } + + this.state = 15673; + this.match(OracleSqlParser.AS); + this.state = 15674; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15675; + this.expression(); + this.state = 15676; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + autogenerated_sequence_definition() { + let localctx = new Autogenerated_sequence_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1676, OracleSqlParser.RULE_autogenerated_sequence_definition); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15680; + this.match(OracleSqlParser.GENERATED); + this.state = 15688; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 44: + this.state = 15681; + this.match(OracleSqlParser.ALWAYS); + break; + case 160: + this.state = 15682; + this.match(OracleSqlParser.BY); + this.state = 15683; + this.match(OracleSqlParser.DEFAULT); + this.state = 15686; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1257) { + this.state = 15684; + this.match(OracleSqlParser.ON); + this.state = 15685; + this.match(OracleSqlParser.NULL_); + } + + break; + case 69: + break; + default: + break; + } + this.state = 15690; + this.match(OracleSqlParser.AS); + this.state = 15691; + this.match(OracleSqlParser.IDENTITY); + this.state = 15701; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 15692; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15697; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===166 || _la===346 || _la===640 || _la===705 || _la===812 || _la===930 || _la===958 || _la===1064 || _la===1082 || ((((_la - 1112)) & ~0x1f) === 0 && ((1 << (_la - 1112)) & 67110017) !== 0) || _la===1179 || _la===1185 || _la===1301 || _la===1618 || _la===1665 || _la===1674 || _la===1735) { + this.state = 15695; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2108,this._ctx); + switch(la_) { + case 1: + this.state = 15693; + this.sequence_start_clause(); + break; + + case 2: + this.state = 15694; + this.sequence_spec(); + break; + + } + this.state = 15699; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15700; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + by_user_for_statistics_clause() { + let localctx = new By_user_for_statistics_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1678, OracleSqlParser.RULE_by_user_for_statistics_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15703; + this.match(OracleSqlParser.BY); + this.state = 15704; + this.match(OracleSqlParser.USER); + this.state = 15705; + this.match(OracleSqlParser.FOR); + this.state = 15706; + this.match(OracleSqlParser.STATISTICS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + evaluation_edition_clause() { + let localctx = new Evaluation_edition_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1680, OracleSqlParser.RULE_evaluation_edition_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15708; + this.match(OracleSqlParser.EVALUATE); + this.state = 15709; + this.match(OracleSqlParser.USING); + this.state = 15714; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 334: + case 1226: + this.state = 15710; + _la = this._input.LA(1); + if(!(_la===334 || _la===1226)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 15711; + this.match(OracleSqlParser.EDITION); + break; + case 481: + this.state = 15712; + this.match(OracleSqlParser.EDITION); + this.state = 15713; + this.edition_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + nested_table_col_properties() { + let localctx = new Nested_table_col_propertiesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1682, OracleSqlParser.RULE_nested_table_col_properties); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15716; + this.match(OracleSqlParser.NESTED); + this.state = 15717; + this.match(OracleSqlParser.TABLE); + this.state = 15720; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2112,this._ctx); + switch(la_) { + case 1: + this.state = 15718; + this.nested_item(); + break; + + case 2: + this.state = 15719; + this.match(OracleSqlParser.COLUMN_VALUE); + break; + + } + this.state = 15723; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===484 || _la===783 || _la===1202 || _la===1778) { + this.state = 15722; + this.substitutable_column_clause(); + } + + this.state = 15726; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===640 || _la===871) { + this.state = 15725; + _la = this._input.LA(1); + if(!(_la===640 || _la===871)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 15728; + this.match(OracleSqlParser.STORE); + this.state = 15729; + this.match(OracleSqlParser.AS); + this.state = 15730; + this.tableview_name(); + this.state = 15744; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2117,this._ctx); + if(la_===1) { + this.state = 15731; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15738; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 15738; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2115,this._ctx); + switch(la_) { + case 1: + this.state = 15732; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15733; + this.object_properties(); + this.state = 15734; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.state = 15736; + this.physical_properties(); + break; + + case 3: + this.state = 15737; + this.column_properties(); + break; + + } + this.state = 15740; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===220 || _la===237 || _la===258 || _la===260 || _la===558 || _la===591 || _la===695 || _la===741 || _la===744 || _la===866 || _la===882 || _la===929 || _la===1011 || _la===1072 || _la===1117 || _la===1135 || _la===1304 || _la===1367 || _la===1370 || _la===1604 || _la===1643 || _la===1760 || _la===2078 || _la===2265 || _la===2349 || _la===2445); + this.state = 15742; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + this.state = 15751; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1584) { + this.state = 15746; + this.match(OracleSqlParser.RETURN); + this.state = 15748; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 15747; + this.match(OracleSqlParser.AS); + } + + this.state = 15750; + _la = this._input.LA(1); + if(!(_la===875 || _la===2256)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + nested_item() { + let localctx = new Nested_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 1684, OracleSqlParser.RULE_nested_item); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15753; + this.regular_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + substitutable_column_clause() { + let localctx = new Substitutable_column_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1686, OracleSqlParser.RULE_substitutable_column_clause); + var _la = 0; + try { + this.state = 15774; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 484: + case 783: + this.enterOuterAlt(localctx, 1); + this.state = 15756; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===484) { + this.state = 15755; + this.match(OracleSqlParser.ELEMENT); + } + + this.state = 15758; + this.match(OracleSqlParser.IS); + this.state = 15759; + this.match(OracleSqlParser.OF); + this.state = 15761; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2164) { + this.state = 15760; + this.match(OracleSqlParser.TYPE); + } + + this.state = 15763; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15764; + this.type_name(); + this.state = 15765; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1202: + case 1778: + this.enterOuterAlt(localctx, 2); + this.state = 15768; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 15767; + this.match(OracleSqlParser.NOT); + } + + this.state = 15770; + this.match(OracleSqlParser.SUBSTITUTABLE); + this.state = 15771; + this.match(OracleSqlParser.AT); + this.state = 15772; + this.match(OracleSqlParser.ALL); + this.state = 15773; + this.match(OracleSqlParser.LEVELS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + partition_name() { + let localctx = new Partition_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1688, OracleSqlParser.RULE_partition_name); + try { + this.state = 15778; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 15776; + this.regular_id(); + break; + case 2442: + this.enterOuterAlt(localctx, 2); + this.state = 15777; + this.match(OracleSqlParser.DELIMITED_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + supplemental_logging_props() { + let localctx = new Supplemental_logging_propsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1690, OracleSqlParser.RULE_supplemental_logging_props); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15780; + this.match(OracleSqlParser.SUPPLEMENTAL); + this.state = 15781; + this.match(OracleSqlParser.LOG); + this.state = 15784; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 647: + this.state = 15782; + this.supplemental_log_grp_clause(); + break; + case 349: + this.state = 15783; + this.supplemental_id_key_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_type_col_properties() { + let localctx = new Object_type_col_propertiesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1692, OracleSqlParser.RULE_object_type_col_properties); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15786; + this.match(OracleSqlParser.COLUMN); + this.state = 15787; + localctx.column = this.regular_id(); + this.state = 15788; + this.substitutable_column_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + constraint_clauses() { + let localctx = new Constraint_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1694, OracleSqlParser.RULE_constraint_clauses); + var _la = 0; + try { + this.state = 15844; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2133,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 15790; + this.match(OracleSqlParser.ADD); + this.state = 15791; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15801; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2127,this._ctx); + switch(la_) { + case 1: + this.state = 15792; + this.out_of_line_constraint(); + this.state = 15797; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 15793; + this.match(OracleSqlParser.COMMA); + this.state = 15794; + this.out_of_line_constraint(); + this.state = 15799; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.state = 15800; + this.out_of_line_ref_constraint(); + break; + + } + this.state = 15803; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 15805; + this.match(OracleSqlParser.ADD); + this.state = 15808; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2128,this._ctx); + switch(la_) { + case 1: + this.state = 15806; + this.out_of_line_constraint(); + break; + + case 2: + this.state = 15807; + this.out_of_line_ref_constraint(); + break; + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 15810; + this.match(OracleSqlParser.MODIFY); + this.state = 15827; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 284: + this.state = 15811; + this.match(OracleSqlParser.CONSTRAINT); + this.state = 15812; + this.constraint_name(); + break; + case 1449: + this.state = 15813; + this.match(OracleSqlParser.PRIMARY); + this.state = 15814; + this.match(OracleSqlParser.KEY); + break; + case 2181: + this.state = 15815; + this.match(OracleSqlParser.UNIQUE); + this.state = 15816; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15817; + this.column_name(); + this.state = 15822; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 15818; + this.match(OracleSqlParser.COMMA); + this.state = 15819; + this.column_name(); + this.state = 15824; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15825; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15829; + this.constraint_state(); + this.state = 15831; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 15830; + this.match(OracleSqlParser.CASCADE); + } + + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 15833; + this.match(OracleSqlParser.RENAME); + this.state = 15834; + this.match(OracleSqlParser.CONSTRAINT); + this.state = 15835; + this.old_constraint_name(); + this.state = 15836; + this.match(OracleSqlParser.TO); + this.state = 15837; + this.new_constraint_name(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 15840; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 15839; + this.drop_constraint_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15842; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2132, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + old_constraint_name() { + let localctx = new Old_constraint_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1696, OracleSqlParser.RULE_old_constraint_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15846; + this.constraint_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + new_constraint_name() { + let localctx = new New_constraint_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 1698, OracleSqlParser.RULE_new_constraint_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15848; + this.constraint_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + drop_constraint_clause() { + let localctx = new Drop_constraint_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1700, OracleSqlParser.RULE_drop_constraint_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15850; + this.match(OracleSqlParser.DROP); + this.state = 15867; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1449: + this.state = 15851; + this.match(OracleSqlParser.PRIMARY); + this.state = 15852; + this.match(OracleSqlParser.KEY); + break; + case 2181: + this.state = 15853; + this.match(OracleSqlParser.UNIQUE); + this.state = 15854; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15855; + this.column_name(); + this.state = 15860; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 15856; + this.match(OracleSqlParser.COMMA); + this.state = 15857; + this.column_name(); + this.state = 15862; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15863; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 284: + this.state = 15865; + this.match(OracleSqlParser.CONSTRAINT); + this.state = 15866; + this.constraint_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15870; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===179) { + this.state = 15869; + this.match(OracleSqlParser.CASCADE); + } + + this.state = 15874; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2137,this._ctx); + if(la_===1) { + this.state = 15872; + _la = this._input.LA(1); + if(!(_la===467 || _la===814)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 15873; + this.match(OracleSqlParser.INDEX); + + } + this.state = 15877; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1254) { + this.state = 15876; + this.match(OracleSqlParser.ONLINE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + check_constraint() { + let localctx = new Check_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 1702, OracleSqlParser.RULE_check_constraint); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15879; + this.match(OracleSqlParser.CHECK); + this.state = 15880; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15881; + this.condition(); + this.state = 15882; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 15884; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2139,this._ctx); + if(la_===1) { + this.state = 15883; + this.match(OracleSqlParser.DISABLE); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + foreign_key_clause() { + let localctx = new Foreign_key_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1704, OracleSqlParser.RULE_foreign_key_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15886; + this.match(OracleSqlParser.FOREIGN); + this.state = 15887; + this.match(OracleSqlParser.KEY); + this.state = 15888; + this.paren_column_list(); + this.state = 15889; + this.references_clause(); + this.state = 15891; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1257) { + this.state = 15890; + this.on_delete_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + references_clause() { + let localctx = new References_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1706, OracleSqlParser.RULE_references_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15893; + this.match(OracleSqlParser.REFERENCES); + this.state = 15894; + this.tableview_name(); + this.state = 15896; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 15895; + this.paren_column_list(); + } + + this.state = 15905; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2143,this._ctx); + if(la_===1) { + this.state = 15898; + this.match(OracleSqlParser.ON); + this.state = 15899; + this.match(OracleSqlParser.DELETE); + this.state = 15903; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 179: + this.state = 15900; + this.match(OracleSqlParser.CASCADE); + break; + case 1669: + this.state = 15901; + this.match(OracleSqlParser.SET); + this.state = 15902; + this.match(OracleSqlParser.NULL_); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + on_delete_clause() { + let localctx = new On_delete_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1708, OracleSqlParser.RULE_on_delete_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15907; + this.match(OracleSqlParser.ON); + this.state = 15908; + this.match(OracleSqlParser.DELETE); + this.state = 15912; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 179: + this.state = 15909; + this.match(OracleSqlParser.CASCADE); + break; + case 1669: + this.state = 15910; + this.match(OracleSqlParser.SET); + this.state = 15911; + this.match(OracleSqlParser.NULL_); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + anonymous_block() { + let localctx = new Anonymous_blockContext(this, this._ctx, this.state); + this.enterRule(localctx, 1710, OracleSqlParser.RULE_anonymous_block); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15916; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===380) { + this.state = 15914; + this.match(OracleSqlParser.DECLARE); + this.state = 15915; + this.seq_of_declare_specs(); + } + + this.state = 15918; + this.match(OracleSqlParser.BEGIN); + this.state = 15919; + this.seq_of_statements(); + this.state = 15926; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===533) { + this.state = 15920; + this.match(OracleSqlParser.EXCEPTION); + this.state = 15922; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 15921; + this.exception_handler(); + this.state = 15924; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2298); + } + + this.state = 15928; + this.match(OracleSqlParser.END); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + invoker_rights_clause() { + let localctx = new Invoker_rights_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1712, OracleSqlParser.RULE_invoker_rights_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15930; + this.match(OracleSqlParser.AUTHID); + this.state = 15931; + _la = this._input.LA(1); + if(!(_la===339 || _la===396)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + call_spec() { + let localctx = new Call_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 1714, OracleSqlParser.RULE_call_spec); + try { + this.state = 15935; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2148,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 15933; + this.java_spec(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 15934; + this.c_spec(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + java_spec() { + let localctx = new Java_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 1716, OracleSqlParser.RULE_java_spec); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15937; + this.match(OracleSqlParser.LANGUAGE); + this.state = 15938; + this.match(OracleSqlParser.JAVA); + this.state = 15939; + this.match(OracleSqlParser.NAME); + this.state = 15940; + this.match(OracleSqlParser.CHAR_STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + c_spec() { + let localctx = new C_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 1718, OracleSqlParser.RULE_c_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15945; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 821: + this.state = 15942; + this.match(OracleSqlParser.LANGUAGE); + this.state = 15943; + this.match(OracleSqlParser.C_LETTER); + break; + case 558: + this.state = 15944; + this.match(OracleSqlParser.EXTERNAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15958; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 995: + this.state = 15947; + this.match(OracleSqlParser.NAME); + this.state = 15948; + this.id_expression(); + this.state = 15949; + this.match(OracleSqlParser.LIBRARY); + this.state = 15950; + this.identifier(); + break; + case 847: + this.state = 15952; + this.match(OracleSqlParser.LIBRARY); + this.state = 15953; + this.identifier(); + this.state = 15956; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===995) { + this.state = 15954; + this.match(OracleSqlParser.NAME); + this.state = 15955; + this.id_expression(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 15961; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===34) { + this.state = 15960; + this.c_agent_in_clause(); + } + + this.state = 15965; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 15963; + this.match(OracleSqlParser.WITH); + this.state = 15964; + this.match(OracleSqlParser.CONTEXT); + } + + this.state = 15968; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1333) { + this.state = 15967; + this.c_parameters_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + c_agent_in_clause() { + let localctx = new C_agent_in_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1720, OracleSqlParser.RULE_c_agent_in_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 15970; + this.match(OracleSqlParser.AGENT); + this.state = 15971; + this.match(OracleSqlParser.IN); + this.state = 15972; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15973; + this.expressions_(); + this.state = 15974; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + c_parameters_clause() { + let localctx = new C_parameters_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1722, OracleSqlParser.RULE_c_parameters_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 15976; + this.match(OracleSqlParser.PARAMETERS); + this.state = 15977; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 15978; + this.c_external_parameter(); + this.state = 15983; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 15979; + this.match(OracleSqlParser.COMMA); + this.state = 15980; + this.c_external_parameter(); + this.state = 15985; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 15986; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + c_external_parameter() { + let localctx = new C_external_parameterContext(this, this._ctx, this.state); + this.enterRule(localctx, 1724, OracleSqlParser.RULE_c_external_parameter); + var _la = 0; + try { + this.state = 16008; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2161,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 15988; + this.match(OracleSqlParser.CONTEXT); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 15989; + this.match(OracleSqlParser.SELF); + this.state = 15992; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 2432: + this.state = 15990; + this.match(OracleSqlParser.TDO); + break; + case 731: + case 842: + case 2424: + case 2425: + case 2426: + case 2428: + this.state = 15991; + this.c_property(); + break; + case 2446: + case 2451: + break; + default: + break; + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 15996; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2157,this._ctx); + switch(la_) { + case 1: + this.state = 15994; + this.parameter_name(); + break; + + case 2: + this.state = 15995; + this.match(OracleSqlParser.RETURN); + break; + + } + this.state = 15999; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2158,this._ctx); + if(la_===1) { + this.state = 15998; + this.c_property(); + + } + this.state = 16003; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===160) { + this.state = 16001; + this.match(OracleSqlParser.BY); + this.state = 16002; + this.match(OracleSqlParser.REFERENCE); + } + + this.state = 16006; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 142606335) !== 0) || _la===2478) { + this.state = 16005; + localctx.external_datatype = this.regular_id(); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + c_property() { + let localctx = new C_propertyContext(this, this._ctx, this.state); + this.enterRule(localctx, 1726, OracleSqlParser.RULE_c_property); + var _la = 0; + try { + this.state = 16019; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 731: + this.enterOuterAlt(localctx, 1); + this.state = 16010; + this.match(OracleSqlParser.INDICATOR); + this.state = 16012; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2162,this._ctx); + if(la_===1) { + this.state = 16011; + _la = this._input.LA(1); + if(!(_la===2431 || _la===2432)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + case 842: + this.enterOuterAlt(localctx, 2); + this.state = 16014; + this.match(OracleSqlParser.LENGTH); + break; + case 2426: + this.enterOuterAlt(localctx, 3); + this.state = 16015; + this.match(OracleSqlParser.DURATION); + break; + case 2428: + this.enterOuterAlt(localctx, 4); + this.state = 16016; + this.match(OracleSqlParser.MAXLEN); + break; + case 2424: + this.enterOuterAlt(localctx, 5); + this.state = 16017; + this.match(OracleSqlParser.CHARSETID); + break; + case 2425: + this.enterOuterAlt(localctx, 6); + this.state = 16018; + this.match(OracleSqlParser.CHARSETFORM); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + parameter() { + let localctx = new ParameterContext(this, this._ctx, this.state); + this.enterRule(localctx, 1728, OracleSqlParser.RULE_parameter); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16021; + this.parameter_name(); + this.state = 16025; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2164,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 16022; + _la = this._input.LA(1); + if(!(_la===736 || _la===748 || _la===1078 || _la===1316)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + this.state = 16027; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2164,this._ctx); + } + + this.state = 16029; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772991) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 16028; + this.type_spec(); + } + + this.state = 16032; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387 || _la===2454) { + this.state = 16031; + this.default_value_part(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + default_value_part() { + let localctx = new Default_value_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 1730, OracleSqlParser.RULE_default_value_part); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16034; + _la = this._input.LA(1); + if(!(_la===387 || _la===2454)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 16035; + this.expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + seq_of_declare_specs() { + let localctx = new Seq_of_declare_specsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1732, OracleSqlParser.RULE_seq_of_declare_specs); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16038; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 16037; + this.declare_spec(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16040; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2167, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + declare_spec() { + let localctx = new Declare_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 1734, OracleSqlParser.RULE_declare_spec); + try { + this.state = 16053; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2168,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 16042; + this.pragma_declaration(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 16043; + this.exception_declaration(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 16044; + this.procedure_spec(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 16045; + this.function_spec(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 16046; + this.variable_declaration(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 16047; + this.subtype_declaration(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 16048; + this.cursor_declaration(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 16049; + this.type_declaration(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 16050; + this.procedure_body(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 16051; + this.function_body(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 16052; + this.selection_directive(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + variable_declaration() { + let localctx = new Variable_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 1736, OracleSqlParser.RULE_variable_declaration); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16055; + this.identifier(); + this.state = 16057; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2169,this._ctx); + if(la_===1) { + this.state = 16056; + this.match(OracleSqlParser.CONSTANT); + + } + this.state = 16059; + this.type_spec(); + this.state = 16064; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202 || _la===1226) { + this.state = 16061; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 16060; + this.match(OracleSqlParser.NOT); + } + + this.state = 16063; + this.match(OracleSqlParser.NULL_); + } + + this.state = 16067; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387 || _la===2454) { + this.state = 16066; + this.default_value_part(); + } + + this.state = 16069; + this.match(OracleSqlParser.SEMICOLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subtype_declaration() { + let localctx = new Subtype_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 1738, OracleSqlParser.RULE_subtype_declaration); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16071; + this.match(OracleSqlParser.SUBTYPE); + this.state = 16072; + this.identifier(); + this.state = 16073; + this.match(OracleSqlParser.IS); + this.state = 16074; + this.type_spec(); + this.state = 16080; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1493) { + this.state = 16075; + this.match(OracleSqlParser.RANGE); + this.state = 16076; + this.expression(); + this.state = 16077; + this.match(OracleSqlParser.DOUBLE_PERIOD); + this.state = 16078; + this.expression(); + } + + this.state = 16084; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 16082; + this.match(OracleSqlParser.NOT); + this.state = 16083; + this.match(OracleSqlParser.NULL_); + } + + this.state = 16086; + this.match(OracleSqlParser.SEMICOLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cursor_declaration() { + let localctx = new Cursor_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 1740, OracleSqlParser.RULE_cursor_declaration); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16088; + this.match(OracleSqlParser.CURSOR); + this.state = 16089; + this.identifier(); + this.state = 16101; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 16090; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16091; + this.parameter_spec(); + this.state = 16096; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 16092; + this.match(OracleSqlParser.COMMA); + this.state = 16093; + this.parameter_spec(); + this.state = 16098; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 16099; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 16105; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1584) { + this.state = 16103; + this.match(OracleSqlParser.RETURN); + this.state = 16104; + this.type_spec(); + } + + this.state = 16109; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===783) { + this.state = 16107; + this.match(OracleSqlParser.IS); + this.state = 16108; + this.select_statement(); + } + + this.state = 16111; + this.match(OracleSqlParser.SEMICOLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + parameter_spec() { + let localctx = new Parameter_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 1742, OracleSqlParser.RULE_parameter_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16113; + this.parameter_name(); + this.state = 16118; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4294967263) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772991) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 16115; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===736) { + this.state = 16114; + this.match(OracleSqlParser.IN); + } + + this.state = 16117; + this.type_spec(); + } + + this.state = 16121; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387 || _la===2454) { + this.state = 16120; + this.default_value_part(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + exception_declaration() { + let localctx = new Exception_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 1744, OracleSqlParser.RULE_exception_declaration); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16123; + this.identifier(); + this.state = 16124; + this.match(OracleSqlParser.EXCEPTION); + this.state = 16125; + this.match(OracleSqlParser.SEMICOLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pragma_declaration() { + let localctx = new Pragma_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 1746, OracleSqlParser.RULE_pragma_declaration); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16127; + this.match(OracleSqlParser.PRAGMA); + this.state = 16168; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1658: + this.state = 16128; + this.match(OracleSqlParser.SERIALLY_REUSABLE); + break; + case 96: + this.state = 16129; + this.match(OracleSqlParser.AUTONOMOUS_TRANSACTION); + break; + case 534: + this.state = 16130; + this.match(OracleSqlParser.EXCEPTION_INIT); + this.state = 16131; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16132; + this.exception_name(); + this.state = 16133; + this.match(OracleSqlParser.COMMA); + this.state = 16134; + this.numeric_negative(); + this.state = 16135; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 742: + this.state = 16137; + this.match(OracleSqlParser.INLINE); + this.state = 16138; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16139; + localctx.id1 = this.identifier(); + this.state = 16140; + this.match(OracleSqlParser.COMMA); + this.state = 16141; + this.expression(); + this.state = 16142; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1575: + this.state = 16144; + this.match(OracleSqlParser.RESTRICT_REFERENCES); + this.state = 16145; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16148; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 16146; + this.identifier(); + break; + case 387: + this.state = 16147; + this.match(OracleSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16152; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 16150; + this.match(OracleSqlParser.COMMA); + this.state = 16151; + this.identifier(); + this.state = 16154; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2451); + this.state = 16156; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 407: + this.state = 16158; + this.match(OracleSqlParser.DEPRECATE); + this.state = 16159; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16160; + this.identifier(); + this.state = 16163; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 16161; + this.match(OracleSqlParser.COMMA); + this.state = 16162; + this.match(OracleSqlParser.CHAR_STRING); + } + + this.state = 16165; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2169: + this.state = 16167; + this.match(OracleSqlParser.UDF); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16170; + this.match(OracleSqlParser.SEMICOLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + record_type_def() { + let localctx = new Record_type_defContext(this, this._ctx, this.state); + this.enterRule(localctx, 1748, OracleSqlParser.RULE_record_type_def); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16172; + this.match(OracleSqlParser.RECORD); + this.state = 16173; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16174; + this.field_spec(); + this.state = 16179; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 16175; + this.match(OracleSqlParser.COMMA); + this.state = 16176; + this.field_spec(); + this.state = 16181; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 16182; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + field_spec() { + let localctx = new Field_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 1750, OracleSqlParser.RULE_field_spec); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16184; + this.column_name(); + this.state = 16186; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772991) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 16185; + this.type_spec(); + } + + this.state = 16190; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 16188; + this.match(OracleSqlParser.NOT); + this.state = 16189; + this.match(OracleSqlParser.NULL_); + } + + this.state = 16193; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387 || _la===2454) { + this.state = 16192; + this.default_value_part(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + ref_cursor_type_def() { + let localctx = new Ref_cursor_type_defContext(this, this._ctx, this.state); + this.enterRule(localctx, 1752, OracleSqlParser.RULE_ref_cursor_type_def); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16195; + this.match(OracleSqlParser.REF); + this.state = 16196; + this.match(OracleSqlParser.CURSOR); + this.state = 16199; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1584) { + this.state = 16197; + this.match(OracleSqlParser.RETURN); + this.state = 16198; + this.type_spec(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + type_declaration() { + let localctx = new Type_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 1754, OracleSqlParser.RULE_type_declaration); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16201; + this.match(OracleSqlParser.TYPE); + this.state = 16202; + this.identifier(); + this.state = 16203; + this.match(OracleSqlParser.IS); + this.state = 16208; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2081: + this.state = 16204; + this.table_type_def(); + break; + case 68: + case 2265: + case 2267: + this.state = 16205; + this.varray_type_def(); + break; + case 1510: + this.state = 16206; + this.record_type_def(); + break; + case 1528: + this.state = 16207; + this.ref_cursor_type_def(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16210; + this.match(OracleSqlParser.SEMICOLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_type_def() { + let localctx = new Table_type_defContext(this, this._ctx, this.state); + this.enterRule(localctx, 1756, OracleSqlParser.RULE_table_type_def); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16212; + this.match(OracleSqlParser.TABLE); + this.state = 16213; + this.match(OracleSqlParser.OF); + this.state = 16214; + this.type_spec(); + this.state = 16217; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 16215; + this.match(OracleSqlParser.NOT); + this.state = 16216; + this.match(OracleSqlParser.NULL_); + } + + this.state = 16220; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===711 || _la===715) { + this.state = 16219; + this.table_indexed_by_part(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_indexed_by_part() { + let localctx = new Table_indexed_by_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 1758, OracleSqlParser.RULE_table_indexed_by_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16224; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 711: + this.state = 16222; + localctx.idx1 = this.match(OracleSqlParser.INDEXED); + break; + case 715: + this.state = 16223; + localctx.idx2 = this.match(OracleSqlParser.INDEX); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16226; + this.match(OracleSqlParser.BY); + this.state = 16227; + this.type_spec(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + varray_type_def() { + let localctx = new Varray_type_defContext(this, this._ctx, this.state); + this.enterRule(localctx, 1760, OracleSqlParser.RULE_varray_type_def); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16234; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2265: + this.state = 16229; + this.match(OracleSqlParser.VARRAY); + break; + case 68: + case 2267: + this.state = 16231; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2267) { + this.state = 16230; + this.match(OracleSqlParser.VARYING); + } + + this.state = 16233; + this.match(OracleSqlParser.ARRAY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16236; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16237; + this.expression(); + this.state = 16238; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 16239; + this.match(OracleSqlParser.OF); + this.state = 16240; + this.type_spec(); + this.state = 16243; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2197,this._ctx); + if(la_===1) { + this.state = 16241; + this.match(OracleSqlParser.NOT); + this.state = 16242; + this.match(OracleSqlParser.NULL_); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + seq_of_statements() { + let localctx = new Seq_of_statementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1762, OracleSqlParser.RULE_seq_of_statements); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16256; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 16256; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2199,this._ctx); + switch(la_) { + case 1: + this.state = 16248; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2198,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 16245; + this.pragma_declaration(); + } + this.state = 16250; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2198,this._ctx); + } + + this.state = 16251; + this.statement(); + this.state = 16252; + _la = this._input.LA(1); + if(!(_la===-1 || _la===2467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 16254; + this.label_declaration(); + break; + + case 3: + this.state = 16255; + this.selection_directive(); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16258; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2200, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + label_declaration() { + let localctx = new Label_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 1764, OracleSqlParser.RULE_label_declaration); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16260; + localctx.ltp1 = this.match(OracleSqlParser.LESS_THAN_OP); + this.state = 16261; + this.match(OracleSqlParser.LESS_THAN_OP); + this.state = 16262; + this.label_name(); + this.state = 16263; + this.match(OracleSqlParser.GREATER_THAN_OP); + this.state = 16264; + this.match(OracleSqlParser.GREATER_THAN_OP); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + statement() { + let localctx = new StatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1766, OracleSqlParser.RULE_statement); + try { + this.state = 16283; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2201,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 16266; + this.body(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 16267; + this.block(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 16268; + this.assignment_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 16269; + this.continue_statement(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 16270; + this.exit_statement(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 16271; + this.goto_statement(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 16272; + this.if_statement(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 16273; + this.loop_statement(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 16274; + this.forall_statement(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 16275; + this.null_statement(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 16276; + this.raise_statement(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 16277; + this.return_statement(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 16278; + this.case_statement(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 16279; + this.sql_statement(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 16280; + this.call_statement(); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 16281; + this.pipe_row_statement(); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 16282; + this.grant_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + assignment_statement() { + let localctx = new Assignment_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1768, OracleSqlParser.RULE_assignment_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16287; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2445: + case 2472: + case 2478: + this.state = 16285; + this.general_element(0); + break; + case 2459: + case 2466: + this.state = 16286; + this.bind_variable(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16289; + this.match(OracleSqlParser.ASSIGN_OP); + this.state = 16290; + this.expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + continue_statement() { + let localctx = new Continue_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1770, OracleSqlParser.RULE_continue_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16292; + this.match(OracleSqlParser.CONTINUE); + this.state = 16294; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2203,this._ctx); + if(la_===1) { + this.state = 16293; + this.label_name(); + + } + this.state = 16298; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2298) { + this.state = 16296; + this.match(OracleSqlParser.WHEN); + this.state = 16297; + this.condition(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + exit_statement() { + let localctx = new Exit_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1772, OracleSqlParser.RULE_exit_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16300; + this.match(OracleSqlParser.EXIT); + this.state = 16302; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2205,this._ctx); + if(la_===1) { + this.state = 16301; + this.label_name(); + + } + this.state = 16306; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2298) { + this.state = 16304; + this.match(OracleSqlParser.WHEN); + this.state = 16305; + this.condition(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + goto_statement() { + let localctx = new Goto_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1774, OracleSqlParser.RULE_goto_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16308; + this.match(OracleSqlParser.GOTO); + this.state = 16309; + this.label_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + if_statement() { + let localctx = new If_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1776, OracleSqlParser.RULE_if_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16311; + this.match(OracleSqlParser.IF); + this.state = 16312; + this.condition(); + this.state = 16313; + this.match(OracleSqlParser.THEN); + this.state = 16314; + this.seq_of_statements(); + this.state = 16318; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===490) { + this.state = 16315; + this.elsif_part(); + this.state = 16320; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 16322; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===489) { + this.state = 16321; + this.else_part(); + } + + this.state = 16324; + this.match(OracleSqlParser.END); + this.state = 16325; + this.match(OracleSqlParser.IF); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + elsif_part() { + let localctx = new Elsif_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 1778, OracleSqlParser.RULE_elsif_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16327; + this.match(OracleSqlParser.ELSIF); + this.state = 16328; + this.condition(); + this.state = 16329; + this.match(OracleSqlParser.THEN); + this.state = 16330; + this.seq_of_statements(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + else_part() { + let localctx = new Else_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 1780, OracleSqlParser.RULE_else_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16332; + this.match(OracleSqlParser.ELSE); + this.state = 16333; + this.seq_of_statements(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + loop_statement() { + let localctx = new Loop_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1782, OracleSqlParser.RULE_loop_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16336; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2465) { + this.state = 16335; + this.label_declaration(); + } + + this.state = 16342; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 2300: + this.state = 16338; + this.match(OracleSqlParser.WHILE); + this.state = 16339; + this.condition(); + break; + case 618: + this.state = 16340; + this.match(OracleSqlParser.FOR); + this.state = 16341; + this.cursor_loop_param(); + break; + case 892: + break; + default: + break; + } + this.state = 16344; + this.match(OracleSqlParser.LOOP); + this.state = 16345; + this.seq_of_statements(); + this.state = 16346; + this.match(OracleSqlParser.END); + this.state = 16347; + this.match(OracleSqlParser.LOOP); + this.state = 16349; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 16348; + this.label_name(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cursor_loop_param() { + let localctx = new Cursor_loop_paramContext(this, this._ctx, this.state); + this.enterRule(localctx, 1784, OracleSqlParser.RULE_cursor_loop_param); + var _la = 0; + try { + this.state = 16376; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2216,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 16351; + this.index_name(); + this.state = 16352; + this.match(OracleSqlParser.IN); + this.state = 16354; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2212,this._ctx); + if(la_===1) { + this.state = 16353; + this.match(OracleSqlParser.REVERSE); + + } + this.state = 16356; + this.lower_bound(); + this.state = 16357; + localctx.range_separator = this.match(OracleSqlParser.DOUBLE_PERIOD); + this.state = 16358; + this.upper_bound(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 16360; + this.record_name(); + this.state = 16361; + this.match(OracleSqlParser.IN); + this.state = 16374; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2215,this._ctx); + switch(la_) { + case 1: + this.state = 16362; + this.cursor_name(); + this.state = 16368; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 16363; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16365; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160747519) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 16364; + this.expressions_(); + } + + this.state = 16367; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + + case 2: + this.state = 16370; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16371; + this.select_statement(); + this.state = 16372; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + forall_statement() { + let localctx = new Forall_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1786, OracleSqlParser.RULE_forall_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16378; + this.match(OracleSqlParser.FORALL); + this.state = 16379; + this.index_name(); + this.state = 16380; + this.match(OracleSqlParser.IN); + this.state = 16381; + this.bounds_clause(); + this.state = 16384; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1615) { + this.state = 16382; + this.match(OracleSqlParser.SAVE); + this.state = 16383; + this.match(OracleSqlParser.EXCEPTIONS); + } + + this.state = 16386; + this.data_manipulation_language_statements(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + bounds_clause() { + let localctx = new Bounds_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1788, OracleSqlParser.RULE_bounds_clause); + var _la = 0; + try { + this.state = 16401; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2219,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 16388; + this.lower_bound(); + this.state = 16389; + this.match(OracleSqlParser.DOUBLE_PERIOD); + this.state = 16390; + this.upper_bound(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 16392; + this.match(OracleSqlParser.INDICES); + this.state = 16393; + this.match(OracleSqlParser.OF); + this.state = 16394; + this.general_element(0); + this.state = 16396; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===118) { + this.state = 16395; + this.between_bound(); + } + + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 16398; + this.match(OracleSqlParser.VALUES); + this.state = 16399; + this.match(OracleSqlParser.OF); + this.state = 16400; + this.index_name(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + between_bound() { + let localctx = new Between_boundContext(this, this._ctx, this.state); + this.enterRule(localctx, 1790, OracleSqlParser.RULE_between_bound); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16403; + this.match(OracleSqlParser.BETWEEN); + this.state = 16404; + this.lower_bound(); + this.state = 16405; + this.match(OracleSqlParser.AND); + this.state = 16406; + this.upper_bound(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lower_bound() { + let localctx = new Lower_boundContext(this, this._ctx, this.state); + this.enterRule(localctx, 1792, OracleSqlParser.RULE_lower_bound); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16408; + this.concatenation(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + upper_bound() { + let localctx = new Upper_boundContext(this, this._ctx, this.state); + this.enterRule(localctx, 1794, OracleSqlParser.RULE_upper_bound); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16410; + this.concatenation(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + null_statement() { + let localctx = new Null_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1796, OracleSqlParser.RULE_null_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16412; + this.match(OracleSqlParser.NULL_); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + raise_statement() { + let localctx = new Raise_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1798, OracleSqlParser.RULE_raise_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16414; + this.match(OracleSqlParser.RAISE); + this.state = 16416; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2472 || _la===2478) { + this.state = 16415; + this.exception_name(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + return_statement() { + let localctx = new Return_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1800, OracleSqlParser.RULE_return_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16418; + this.match(OracleSqlParser.RETURN); + this.state = 16420; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160747519) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 16419; + this.expression(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + call_statement() { + let localctx = new Call_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1802, OracleSqlParser.RULE_call_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16423; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2222,this._ctx); + if(la_===1) { + this.state = 16422; + this.match(OracleSqlParser.CALL); + + } + this.state = 16425; + this.routine_name(); + this.state = 16427; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 16426; + this.function_argument(); + } + + this.state = 16436; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2438) { + this.state = 16429; + this.match(OracleSqlParser.PERIOD); + this.state = 16430; + this.routine_name(); + this.state = 16432; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 16431; + this.function_argument(); + } + + this.state = 16438; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 16441; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===777) { + this.state = 16439; + this.match(OracleSqlParser.INTO); + this.state = 16440; + this.bind_variable(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pipe_row_statement() { + let localctx = new Pipe_row_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1804, OracleSqlParser.RULE_pipe_row_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16443; + this.match(OracleSqlParser.PIPE); + this.state = 16444; + this.match(OracleSqlParser.ROW); + this.state = 16445; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16446; + this.expression(); + this.state = 16447; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + selection_directive() { + let localctx = new Selection_directiveContext(this, this._ctx, this.state); + this.enterRule(localctx, 1806, OracleSqlParser.RULE_selection_directive); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16449; + this.match(OracleSqlParser.DOLLAR_IF); + this.state = 16450; + this.condition(); + this.state = 16451; + this.match(OracleSqlParser.DOLLAR_THEN); + this.state = 16452; + this.selection_directive_body(); + this.state = 16457; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===455) { + this.state = 16453; + this.match(OracleSqlParser.DOLLAR_ELSIF); + this.state = 16454; + this.selection_directive_body(); + this.state = 16459; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 16462; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===454) { + this.state = 16460; + this.match(OracleSqlParser.DOLLAR_ELSE); + this.state = 16461; + this.selection_directive_body(); + } + + this.state = 16464; + this.match(OracleSqlParser.DOLLAR_END); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + error_directive() { + let localctx = new Error_directiveContext(this, this._ctx, this.state); + this.enterRule(localctx, 1808, OracleSqlParser.RULE_error_directive); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16466; + this.match(OracleSqlParser.DOLLAR_ERROR); + this.state = 16467; + this.concatenation(0); + this.state = 16468; + this.match(OracleSqlParser.DOLLAR_END); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + selection_directive_body() { + let localctx = new Selection_directive_bodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 1810, OracleSqlParser.RULE_selection_directive_body); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16480; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 16480; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2230,this._ctx); + switch(la_) { + case 1: + this.state = 16471; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2229,this._ctx); + if(la_===1) { + this.state = 16470; + this.pragma_declaration(); + + } + this.state = 16473; + this.statement(); + this.state = 16474; + this.match(OracleSqlParser.SEMICOLON); + break; + + case 2: + this.state = 16476; + this.variable_declaration(); + break; + + case 3: + this.state = 16477; + this.error_directive(); + break; + + case 4: + this.state = 16478; + this.function_body(); + break; + + case 5: + this.state = 16479; + this.procedure_body(); + break; + + } + this.state = 16482; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885731) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950911) !== 0) || ((((_la - 644)) & ~0x1f) === 0 && ((1 << (_la - 644)) & 4160616439) !== 0) || ((((_la - 676)) & ~0x1f) === 0 && ((1 << (_la - 676)) & 4294934399) !== 0) || ((((_la - 708)) & ~0x1f) === 0 && ((1 << (_la - 708)) & 4026531711) !== 0) || ((((_la - 740)) & ~0x1f) === 0 && ((1 << (_la - 740)) & 4294966271) !== 0) || ((((_la - 772)) & ~0x1f) === 0 && ((1 << (_la - 772)) & 4294931405) !== 0) || ((((_la - 804)) & ~0x1f) === 0 && ((1 << (_la - 804)) & 4022337535) !== 0) || ((((_la - 836)) & ~0x1f) === 0 && ((1 << (_la - 836)) & 2042101759) !== 0) || ((((_la - 868)) & ~0x1f) === 0 && ((1 << (_la - 868)) & 3758096383) !== 0) || ((((_la - 900)) & ~0x1f) === 0 && ((1 << (_la - 900)) & 4294966271) !== 0) || ((((_la - 932)) & ~0x1f) === 0 && ((1 << (_la - 932)) & 4290772991) !== 0) || ((((_la - 964)) & ~0x1f) === 0 && ((1 << (_la - 964)) & 4294965247) !== 0) || ((((_la - 996)) & ~0x1f) === 0 && ((1 << (_la - 996)) & 4278189951) !== 0) || ((((_la - 1028)) & ~0x1f) === 0 && ((1 << (_la - 1028)) & 3221225471) !== 0) || ((((_la - 1060)) & ~0x1f) === 0 && ((1 << (_la - 1060)) & 4093636575) !== 0) || ((((_la - 1092)) & ~0x1f) === 0 && ((1 << (_la - 1092)) & 4269801407) !== 0) || ((((_la - 1124)) & ~0x1f) === 0 && ((1 << (_la - 1124)) & 4294967039) !== 0) || ((((_la - 1156)) & ~0x1f) === 0 && ((1 << (_la - 1156)) & 3749707775) !== 0) || ((((_la - 1188)) & ~0x1f) === 0 && ((1 << (_la - 1188)) & 3758088191) !== 0) || ((((_la - 1220)) & ~0x1f) === 0 && ((1 << (_la - 1220)) & 4278190079) !== 0) || ((((_la - 1252)) & ~0x1f) === 0 && ((1 << (_la - 1252)) & 3824418775) !== 0) || ((((_la - 1284)) & ~0x1f) === 0 && ((1 << (_la - 1284)) & 3218997247) !== 0) || ((((_la - 1316)) & ~0x1f) === 0 && ((1 << (_la - 1316)) & 4286513119) !== 0) || ((((_la - 1348)) & ~0x1f) === 0 && ((1 << (_la - 1348)) & 838336511) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294967295) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864895) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4294959103) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4160487415) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 137379889) !== 0) || _la===2478 || _la===2479); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + body() { + let localctx = new BodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 1812, OracleSqlParser.RULE_body); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16484; + this.match(OracleSqlParser.BEGIN); + this.state = 16485; + this.seq_of_statements(); + this.state = 16492; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===533) { + this.state = 16486; + this.match(OracleSqlParser.EXCEPTION); + this.state = 16488; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 16487; + this.exception_handler(); + this.state = 16490; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2298); + } + + this.state = 16494; + this.match(OracleSqlParser.END); + this.state = 16496; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2234,this._ctx); + if(la_===1) { + this.state = 16495; + this.label_name(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + exception_handler() { + let localctx = new Exception_handlerContext(this, this._ctx, this.state); + this.enterRule(localctx, 1814, OracleSqlParser.RULE_exception_handler); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16498; + this.match(OracleSqlParser.WHEN); + this.state = 16499; + this.exception_name(); + this.state = 16504; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===1305) { + this.state = 16500; + this.match(OracleSqlParser.OR); + this.state = 16501; + this.exception_name(); + this.state = 16506; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 16507; + this.match(OracleSqlParser.THEN); + this.state = 16508; + this.seq_of_statements(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + trigger_block() { + let localctx = new Trigger_blockContext(this, this._ctx, this.state); + this.enterRule(localctx, 1816, OracleSqlParser.RULE_trigger_block); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16517; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===380) { + this.state = 16510; + this.match(OracleSqlParser.DECLARE); + this.state = 16514; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2236,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 16511; + this.declare_spec(); + } + this.state = 16516; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2236,this._ctx); + } + + } + + this.state = 16519; + this.body(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tps_block() { + let localctx = new Tps_blockContext(this, this._ctx, this.state); + this.enterRule(localctx, 1818, OracleSqlParser.RULE_tps_block); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16524; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2238,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 16521; + this.declare_spec(); + } + this.state = 16526; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2238,this._ctx); + } + + this.state = 16527; + this.body(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + block() { + let localctx = new BlockContext(this, this._ctx, this.state); + this.enterRule(localctx, 1820, OracleSqlParser.RULE_block); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16536; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===380) { + this.state = 16529; + this.match(OracleSqlParser.DECLARE); + this.state = 16533; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2239,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 16530; + this.declare_spec(); + } + this.state = 16535; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2239,this._ctx); + } + + } + + this.state = 16538; + this.body(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sql_statement() { + let localctx = new Sql_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1822, OracleSqlParser.RULE_sql_statement); + try { + this.state = 16545; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2241,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 16540; + this.execute_immediate(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 16541; + this.data_manipulation_language_statements(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 16542; + this.cursor_manipulation_statements(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 16543; + this.transaction_control_statements(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 16544; + this.collection_method_call(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + execute_immediate() { + let localctx = new Execute_immediateContext(this, this._ctx, this.state); + this.enterRule(localctx, 1824, OracleSqlParser.RULE_execute_immediate); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16547; + this.match(OracleSqlParser.EXECUTE); + this.state = 16548; + this.match(OracleSqlParser.IMMEDIATE); + this.state = 16549; + this.expression(); + this.state = 16559; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 159: + case 777: + this.state = 16550; + this.into_clause(); + this.state = 16552; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 16551; + this.using_clause(); + } + + break; + case 2244: + this.state = 16554; + this.using_clause(); + this.state = 16556; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1583 || _la===1584) { + this.state = 16555; + this.dynamic_returning_clause(); + } + + break; + case 1583: + case 1584: + this.state = 16558; + this.dynamic_returning_clause(); + break; + case -1: + case 2452: + case 2467: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dynamic_returning_clause() { + let localctx = new Dynamic_returning_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1826, OracleSqlParser.RULE_dynamic_returning_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16561; + _la = this._input.LA(1); + if(!(_la===1583 || _la===1584)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 16562; + this.into_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + data_manipulation_language_statements() { + let localctx = new Data_manipulation_language_statementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1828, OracleSqlParser.RULE_data_manipulation_language_statements); + try { + this.state = 16571; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 944: + this.enterOuterAlt(localctx, 1); + this.state = 16564; + this.merge_statement(); + break; + case 879: + this.enterOuterAlt(localctx, 2); + this.state = 16565; + this.lock_table_statement(); + break; + case 1645: + case 2306: + case 2445: + this.enterOuterAlt(localctx, 3); + this.state = 16566; + this.select_statement(); + break; + case 2205: + this.enterOuterAlt(localctx, 4); + this.state = 16567; + this.update_statement(); + break; + case 401: + this.enterOuterAlt(localctx, 5); + this.state = 16568; + this.delete_statement(); + break; + case 754: + this.enterOuterAlt(localctx, 6); + this.state = 16569; + this.insert_statement(); + break; + case 550: + this.enterOuterAlt(localctx, 7); + this.state = 16570; + this.explain_statement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cursor_manipulation_statements() { + let localctx = new Cursor_manipulation_statementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1830, OracleSqlParser.RULE_cursor_manipulation_statements); + try { + this.state = 16577; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2246,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 16573; + this.close_statement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 16574; + this.open_statement(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 16575; + this.fetch_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 16576; + this.open_for_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + close_statement() { + let localctx = new Close_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1832, OracleSqlParser.RULE_close_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16579; + this.match(OracleSqlParser.CLOSE); + this.state = 16580; + this.cursor_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + open_statement() { + let localctx = new Open_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1834, OracleSqlParser.RULE_open_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16582; + this.match(OracleSqlParser.OPEN); + this.state = 16583; + this.cursor_name(); + this.state = 16589; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 16584; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16586; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160747519) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 16585; + this.expressions_(); + } + + this.state = 16588; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + fetch_statement() { + let localctx = new Fetch_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1836, OracleSqlParser.RULE_fetch_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16591; + this.match(OracleSqlParser.FETCH); + this.state = 16592; + this.cursor_name(); + this.state = 16620; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 777: + this.state = 16593; + localctx.it1 = this.match(OracleSqlParser.INTO); + this.state = 16594; + this.variable_or_collection(); + this.state = 16599; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 16595; + this.match(OracleSqlParser.COMMA); + this.state = 16596; + this.variable_or_collection(); + this.state = 16601; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 159: + this.state = 16602; + this.match(OracleSqlParser.BULK); + this.state = 16603; + this.match(OracleSqlParser.COLLECT); + this.state = 16604; + this.match(OracleSqlParser.INTO); + this.state = 16605; + this.variable_or_collection(); + this.state = 16610; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 16606; + this.match(OracleSqlParser.COMMA); + this.state = 16607; + this.variable_or_collection(); + this.state = 16612; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 16618; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===856) { + this.state = 16613; + this.match(OracleSqlParser.LIMIT); + this.state = 16616; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + case 2440: + this.state = 16614; + this.numeric(); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2459: + case 2466: + case 2472: + case 2478: + this.state = 16615; + this.variable_or_collection(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + variable_or_collection() { + let localctx = new Variable_or_collectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 1838, OracleSqlParser.RULE_variable_or_collection); + try { + this.state = 16624; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2254,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 16622; + this.variable_name(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 16623; + this.collection_expression(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + open_for_statement() { + let localctx = new Open_for_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1840, OracleSqlParser.RULE_open_for_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16626; + this.match(OracleSqlParser.OPEN); + this.state = 16627; + this.variable_name(); + this.state = 16628; + this.match(OracleSqlParser.FOR); + this.state = 16631; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2255,this._ctx); + switch(la_) { + case 1: + this.state = 16629; + this.select_statement(); + break; + + case 2: + this.state = 16630; + this.expression(); + break; + + } + this.state = 16634; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 16633; + this.using_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + transaction_control_statements() { + let localctx = new Transaction_control_statementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1842, OracleSqlParser.RULE_transaction_control_statements); + try { + this.state = 16641; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2257,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 16636; + this.set_transaction_command(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 16637; + this.set_constraint_command(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 16638; + this.commit_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 16639; + this.rollback_statement(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 16640; + this.savepoint_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + set_transaction_command() { + let localctx = new Set_transaction_commandContext(this, this._ctx, this.state); + this.enterRule(localctx, 1844, OracleSqlParser.RULE_set_transaction_command); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16643; + this.match(OracleSqlParser.SET); + this.state = 16644; + this.match(OracleSqlParser.TRANSACTION); + this.state = 16658; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 1503: + this.state = 16645; + this.match(OracleSqlParser.READ); + this.state = 16646; + _la = this._input.LA(1); + if(!(_la===1256 || _la===2311)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 785: + this.state = 16647; + this.match(OracleSqlParser.ISOLATION); + this.state = 16648; + this.match(OracleSqlParser.LEVEL); + this.state = 16652; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1657: + this.state = 16649; + this.match(OracleSqlParser.SERIALIZABLE); + break; + case 1503: + this.state = 16650; + this.match(OracleSqlParser.READ); + this.state = 16651; + this.match(OracleSqlParser.COMMITTED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case 2239: + this.state = 16654; + this.match(OracleSqlParser.USE); + this.state = 16655; + this.match(OracleSqlParser.ROLLBACK); + this.state = 16656; + this.match(OracleSqlParser.SEGMENT); + this.state = 16657; + this.rollback_segment_name(); + break; + case -1: + case 995: + case 2452: + case 2467: + break; + default: + break; + } + this.state = 16662; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===995) { + this.state = 16660; + this.match(OracleSqlParser.NAME); + this.state = 16661; + this.quoted_string(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + set_constraint_command() { + let localctx = new Set_constraint_commandContext(this, this._ctx, this.state); + this.enterRule(localctx, 1846, OracleSqlParser.RULE_set_constraint_command); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16664; + this.match(OracleSqlParser.SET); + this.state = 16665; + _la = this._input.LA(1); + if(!(_la===284 || _la===285)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 16675; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 38: + this.state = 16666; + this.match(OracleSqlParser.ALL); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 16667; + this.constraint_name(); + this.state = 16672; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 16668; + this.match(OracleSqlParser.COMMA); + this.state = 16669; + this.constraint_name(); + this.state = 16674; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16677; + _la = this._input.LA(1); + if(!(_la===393 || _la===696)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + commit_statement() { + let localctx = new Commit_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1848, OracleSqlParser.RULE_commit_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16679; + this.match(OracleSqlParser.COMMIT); + this.state = 16681; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2307) { + this.state = 16680; + this.match(OracleSqlParser.WORK); + } + + this.state = 16684; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2311) { + this.state = 16683; + this.write_clause(); + } + + this.state = 16702; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 241: + this.state = 16686; + this.match(OracleSqlParser.COMMENT); + this.state = 16687; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 16689; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2311) { + this.state = 16688; + this.write_clause(); + } + + break; + case 614: + this.state = 16691; + this.match(OracleSqlParser.FORCE); + this.state = 16700; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.state = 16692; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 16695; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 16693; + this.match(OracleSqlParser.COMMA); + this.state = 16694; + this.numeric(); + } + + break; + case 306: + this.state = 16697; + this.match(OracleSqlParser.CORRUPT_XID); + this.state = 16698; + this.match(OracleSqlParser.CHAR_STRING); + break; + case 305: + this.state = 16699; + this.match(OracleSqlParser.CORRUPT_XID_ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case -1: + case 2452: + case 2467: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + write_clause() { + let localctx = new Write_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1850, OracleSqlParser.RULE_write_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16704; + this.match(OracleSqlParser.WRITE); + this.state = 16709; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===108 || _la===696 || _la===1217 || _la===2291) { + this.state = 16707; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 108: + case 696: + this.state = 16705; + _la = this._input.LA(1); + if(!(_la===108 || _la===696)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 1217: + case 2291: + this.state = 16706; + _la = this._input.LA(1); + if(!(_la===1217 || _la===2291)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16711; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + rollback_statement() { + let localctx = new Rollback_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1852, OracleSqlParser.RULE_rollback_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16712; + this.match(OracleSqlParser.ROLLBACK); + this.state = 16714; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2307) { + this.state = 16713; + this.match(OracleSqlParser.WORK); + } + + this.state = 16723; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 2139: + this.state = 16716; + this.match(OracleSqlParser.TO); + this.state = 16718; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2272,this._ctx); + if(la_===1) { + this.state = 16717; + this.match(OracleSqlParser.SAVEPOINT); + + } + this.state = 16720; + this.savepoint_name(); + break; + case 614: + this.state = 16721; + this.match(OracleSqlParser.FORCE); + this.state = 16722; + this.quoted_string(); + break; + case -1: + case 2452: + case 2467: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + savepoint_statement() { + let localctx = new Savepoint_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1854, OracleSqlParser.RULE_savepoint_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16725; + this.match(OracleSqlParser.SAVEPOINT); + this.state = 16726; + this.savepoint_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + collection_method_call() { + let localctx = new Collection_method_callContext(this, this._ctx, this.state); + this.enterRule(localctx, 1856, OracleSqlParser.RULE_collection_method_call); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16728; + this.expression(); + this.state = 16729; + this.match(OracleSqlParser.PERIOD); + this.state = 16751; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 401: + case 2427: + this.state = 16730; + _la = this._input.LA(1); + if(!(_la===401 || _la===2427)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 16742; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 16731; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16732; + localctx._expression = this.expression(); + localctx.index.push(localctx._expression); + this.state = 16737; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 16733; + this.match(OracleSqlParser.COMMA); + this.state = 16734; + localctx._expression = this.expression(); + localctx.index.push(localctx._expression); + this.state = 16739; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 16740; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + case 2416: + this.state = 16744; + this.match(OracleSqlParser.TRIM); + this.state = 16749; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 16745; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16746; + localctx._expression = this.expression(); + localctx.index.push(localctx._expression); + this.state = 16747; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + explain_statement() { + let localctx = new Explain_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1858, OracleSqlParser.RULE_explain_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16753; + this.match(OracleSqlParser.EXPLAIN); + this.state = 16754; + this.match(OracleSqlParser.PLAN); + this.state = 16759; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1669) { + this.state = 16755; + this.match(OracleSqlParser.SET); + this.state = 16756; + this.match(OracleSqlParser.STATEMENT_ID); + this.state = 16757; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 16758; + this.quoted_string(); + } + + this.state = 16763; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===777) { + this.state = 16761; + this.match(OracleSqlParser.INTO); + this.state = 16762; + this.tableview_name(); + } + + this.state = 16765; + this.match(OracleSqlParser.FOR); + this.state = 16771; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1645: + case 2306: + case 2445: + this.state = 16766; + this.select_statement(); + break; + case 2205: + this.state = 16767; + this.update_statement(); + break; + case 401: + this.state = 16768; + this.delete_statement(); + break; + case 754: + this.state = 16769; + this.insert_statement(); + break; + case 944: + this.state = 16770; + this.merge_statement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + select_only_statement() { + let localctx = new Select_only_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1860, OracleSqlParser.RULE_select_only_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16774; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 16773; + this.with_clause(); + } + + this.state = 16776; + this.subquery(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + select_statement() { + let localctx = new Select_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1862, OracleSqlParser.RULE_select_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16778; + this.select_only_statement(); + this.state = 16785; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===584 || _la===618 || _la===1243 || _la===1301) { + this.state = 16783; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 618: + this.state = 16779; + this.for_update_clause(); + break; + case 1301: + this.state = 16780; + this.order_by_clause(); + break; + case 1243: + this.state = 16781; + this.offset_clause(); + break; + case 584: + this.state = 16782; + this.fetch_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16787; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + with_clause() { + let localctx = new With_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1864, OracleSqlParser.RULE_with_clause); + var _la = 0; + try { + this.state = 16821; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2291,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 16788; + this.match(OracleSqlParser.WITH); + this.state = 16793; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2285,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 16791; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 630: + this.state = 16789; + this.function_body(); + break; + case 1459: + this.state = 16790; + this.procedure_body(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 16795; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2285,this._ctx); + } + + this.state = 16796; + this.with_factoring_clause(); + this.state = 16801; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 16797; + this.match(OracleSqlParser.COMMA); + this.state = 16798; + this.with_factoring_clause(); + this.state = 16803; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 16804; + this.match(OracleSqlParser.WITH); + this.state = 16807; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 16807; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 630: + this.state = 16805; + this.function_body(); + break; + case 1459: + this.state = 16806; + this.procedure_body(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16809; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2288, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 16819; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2472 || _la===2478) { + this.state = 16811; + this.with_factoring_clause(); + this.state = 16816; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 16812; + this.match(OracleSqlParser.COMMA); + this.state = 16813; + this.with_factoring_clause(); + this.state = 16818; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + with_factoring_clause() { + let localctx = new With_factoring_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1866, OracleSqlParser.RULE_with_factoring_clause); + try { + this.state = 16825; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2292,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 16823; + this.subquery_factoring_clause(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 16824; + this.subav_factoring_clause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subquery_factoring_clause() { + let localctx = new Subquery_factoring_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1868, OracleSqlParser.RULE_subquery_factoring_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16827; + this.query_name(); + this.state = 16829; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 16828; + this.paren_column_list(); + } + + this.state = 16831; + this.match(OracleSqlParser.AS); + this.state = 16832; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16833; + this.subquery(); + this.state = 16835; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1301) { + this.state = 16834; + this.order_by_clause(); + } + + this.state = 16837; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 16839; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1633) { + this.state = 16838; + this.search_clause(); + } + + this.state = 16842; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===346) { + this.state = 16841; + this.cycle_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + search_clause() { + let localctx = new Search_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1870, OracleSqlParser.RULE_search_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16844; + this.match(OracleSqlParser.SEARCH); + this.state = 16845; + _la = this._input.LA(1); + if(!(_la===152 || _la===408)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 16846; + this.match(OracleSqlParser.FIRST); + this.state = 16847; + this.match(OracleSqlParser.BY); + this.state = 16848; + this.column_name(); + this.state = 16850; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===70) { + this.state = 16849; + this.match(OracleSqlParser.ASC); + } + + this.state = 16853; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===412) { + this.state = 16852; + this.match(OracleSqlParser.DESC); + } + + this.state = 16857; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2299,this._ctx); + if(la_===1) { + this.state = 16855; + this.match(OracleSqlParser.NULLS); + this.state = 16856; + this.match(OracleSqlParser.FIRST); + + } + this.state = 16861; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1227) { + this.state = 16859; + this.match(OracleSqlParser.NULLS); + this.state = 16860; + this.match(OracleSqlParser.LAST); + } + + this.state = 16881; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 16863; + this.match(OracleSqlParser.COMMA); + this.state = 16864; + this.column_name(); + this.state = 16866; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===70) { + this.state = 16865; + this.match(OracleSqlParser.ASC); + } + + this.state = 16869; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===412) { + this.state = 16868; + this.match(OracleSqlParser.DESC); + } + + this.state = 16873; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2303,this._ctx); + if(la_===1) { + this.state = 16871; + this.match(OracleSqlParser.NULLS); + this.state = 16872; + this.match(OracleSqlParser.FIRST); + + } + this.state = 16877; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1227) { + this.state = 16875; + this.match(OracleSqlParser.NULLS); + this.state = 16876; + this.match(OracleSqlParser.LAST); + } + + this.state = 16883; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 16884; + this.match(OracleSqlParser.SET); + this.state = 16885; + this.column_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cycle_clause() { + let localctx = new Cycle_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1872, OracleSqlParser.RULE_cycle_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16887; + this.match(OracleSqlParser.CYCLE); + this.state = 16888; + this.column_list(); + this.state = 16889; + this.match(OracleSqlParser.SET); + this.state = 16890; + this.column_name(); + this.state = 16891; + this.match(OracleSqlParser.TO); + this.state = 16892; + this.expression(); + this.state = 16893; + this.match(OracleSqlParser.DEFAULT); + this.state = 16894; + this.expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subav_factoring_clause() { + let localctx = new Subav_factoring_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1874, OracleSqlParser.RULE_subav_factoring_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16896; + localctx.subav_name = this.id_expression(); + this.state = 16897; + this.match(OracleSqlParser.ANALYTIC); + this.state = 16898; + this.match(OracleSqlParser.VIEW); + this.state = 16899; + this.match(OracleSqlParser.AS); + this.state = 16900; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16901; + this.subav_clause(); + this.state = 16902; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subav_clause() { + let localctx = new Subav_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1876, OracleSqlParser.RULE_subav_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16904; + this.match(OracleSqlParser.USING); + this.state = 16905; + localctx.subav_name = this.object_name(); + this.state = 16907; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===671) { + this.state = 16906; + this.hierarchies_clause(); + } + + this.state = 16910; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===592) { + this.state = 16909; + this.filter_clauses(); + } + + this.state = 16913; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===21) { + this.state = 16912; + this.add_calcs_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hierarchies_clause() { + let localctx = new Hierarchies_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1878, OracleSqlParser.RULE_hierarchies_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16915; + this.match(OracleSqlParser.HIERARCHIES); + this.state = 16916; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16917; + localctx._object_name = this.object_name(); + localctx.hier_alias.push(localctx._object_name); + this.state = 16922; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 16918; + this.match(OracleSqlParser.COMMA); + this.state = 16919; + localctx._object_name = this.object_name(); + localctx.hier_alias.push(localctx._object_name); + this.state = 16924; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 16925; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + filter_clauses() { + let localctx = new Filter_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1880, OracleSqlParser.RULE_filter_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16927; + this.match(OracleSqlParser.FILTER); + this.state = 16928; + this.match(OracleSqlParser.FACT); + this.state = 16929; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16930; + this.filter_clause(); + this.state = 16935; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 16931; + this.match(OracleSqlParser.COMMA); + this.state = 16932; + this.filter_clause(); + this.state = 16937; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 16938; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + filter_clause() { + let localctx = new Filter_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1882, OracleSqlParser.RULE_filter_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16942; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2311,this._ctx); + switch(la_) { + case 1: + this.state = 16940; + this.match(OracleSqlParser.MEASURES); + break; + + case 2: + this.state = 16941; + localctx.hier_alias = this.object_name(); + break; + + } + this.state = 16944; + this.match(OracleSqlParser.TO); + this.state = 16945; + this.condition(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_calcs_clause() { + let localctx = new Add_calcs_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1884, OracleSqlParser.RULE_add_calcs_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16947; + this.match(OracleSqlParser.ADD); + this.state = 16948; + this.match(OracleSqlParser.MEASURES); + this.state = 16949; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16950; + this.add_calc_meas_clause(); + this.state = 16955; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 16951; + this.match(OracleSqlParser.COMMA); + this.state = 16952; + this.add_calc_meas_clause(); + this.state = 16957; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 16958; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + add_calc_meas_clause() { + let localctx = new Add_calc_meas_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1886, OracleSqlParser.RULE_add_calc_meas_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 16960; + localctx.meas_name = this.id_expression(); + this.state = 16961; + this.match(OracleSqlParser.AS); + this.state = 16962; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16963; + this.expression(); + this.state = 16964; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subquery() { + let localctx = new SubqueryContext(this, this._ctx, this.state); + this.enterRule(localctx, 1888, OracleSqlParser.RULE_subquery); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16966; + this.subquery_basic_elements(); + this.state = 16970; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===773 || _la===954 || _la===2179) { + this.state = 16967; + this.subquery_operation_part(); + this.state = 16972; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subquery_basic_elements() { + let localctx = new Subquery_basic_elementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1890, OracleSqlParser.RULE_subquery_basic_elements); + try { + this.state = 16978; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1645: + this.enterOuterAlt(localctx, 1); + this.state = 16973; + this.query_block(); + break; + case 2445: + this.enterOuterAlt(localctx, 2); + this.state = 16974; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 16975; + this.subquery(); + this.state = 16976; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subquery_operation_part() { + let localctx = new Subquery_operation_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 1892, OracleSqlParser.RULE_subquery_operation_part); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16986; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2179: + this.state = 16980; + this.match(OracleSqlParser.UNION); + this.state = 16982; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===38) { + this.state = 16981; + this.match(OracleSqlParser.ALL); + } + + break; + case 773: + this.state = 16984; + this.match(OracleSqlParser.INTERSECT); + break; + case 954: + this.state = 16985; + this.match(OracleSqlParser.MINUS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 16988; + this.subquery_basic_elements(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + query_block() { + let localctx = new Query_blockContext(this, this._ctx, this.state); + this.enterRule(localctx, 1894, OracleSqlParser.RULE_query_block); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 16990; + this.match(OracleSqlParser.SELECT); + this.state = 16992; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2317,this._ctx); + if(la_===1) { + this.state = 16991; + _la = this._input.LA(1); + if(!(_la===38 || _la===443 || _la===2181)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 16994; + this.selected_list(); + this.state = 16996; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2318,this._ctx); + if(la_===1) { + this.state = 16995; + this.into_clause(); + + } + this.state = 16999; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2319,this._ctx); + if(la_===1) { + this.state = 16998; + this.from_clause(); + + } + this.state = 17002; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2320,this._ctx); + if(la_===1) { + this.state = 17001; + this.where_clause(); + + } + this.state = 17008; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2322,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 17006; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 278: + case 1735: + this.state = 17004; + this.hierarchical_query_clause(); + break; + case 647: + case 661: + this.state = 17005; + this.group_by_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 17010; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2322,this._ctx); + } + + this.state = 17012; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2323,this._ctx); + if(la_===1) { + this.state = 17011; + this.model_clause(); + + } + this.state = 17015; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2324,this._ctx); + if(la_===1) { + this.state = 17014; + this.order_by_clause(); + + } + this.state = 17018; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2325,this._ctx); + if(la_===1) { + this.state = 17017; + this.offset_clause(); + + } + this.state = 17021; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2326,this._ctx); + if(la_===1) { + this.state = 17020; + this.fetch_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + selected_list() { + let localctx = new Selected_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 1896, OracleSqlParser.RULE_selected_list); + try { + this.state = 17032; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2448: + this.enterOuterAlt(localctx, 1); + this.state = 17023; + this.match(OracleSqlParser.ASTERISK); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 359: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 387: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 443: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1202: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1226: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1452: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2399: + case 2400: + case 2401: + case 2402: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2434: + case 2438: + case 2439: + case 2440: + case 2441: + case 2442: + case 2445: + case 2449: + case 2450: + case 2459: + case 2466: + case 2472: + case 2478: + case 2479: + this.enterOuterAlt(localctx, 2); + this.state = 17024; + this.select_list_elements(); + this.state = 17029; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2327,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 17025; + this.match(OracleSqlParser.COMMA); + this.state = 17026; + this.select_list_elements(); + } + this.state = 17031; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2327,this._ctx); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + from_clause() { + let localctx = new From_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1898, OracleSqlParser.RULE_from_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17034; + this.match(OracleSqlParser.FROM); + this.state = 17035; + this.table_ref_list(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + select_list_elements() { + let localctx = new Select_list_elementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1900, OracleSqlParser.RULE_select_list_elements); + try { + this.state = 17045; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2330,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 17037; + this.tableview_name(); + this.state = 17038; + this.match(OracleSqlParser.PERIOD); + this.state = 17039; + this.match(OracleSqlParser.ASTERISK); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 17041; + this.expression(); + this.state = 17043; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2329,this._ctx); + if(la_===1) { + this.state = 17042; + this.column_alias(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_ref_list() { + let localctx = new Table_ref_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 1902, OracleSqlParser.RULE_table_ref_list); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17047; + this.table_ref(); + this.state = 17052; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2331,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 17048; + this.match(OracleSqlParser.COMMA); + this.state = 17049; + this.table_ref(); + } + this.state = 17054; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2331,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_ref() { + let localctx = new Table_refContext(this, this._ctx, this.state); + this.enterRule(localctx, 1904, OracleSqlParser.RULE_table_ref); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17055; + this.table_ref_aux(); + this.state = 17059; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2332,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 17056; + this.join_clause(); + } + this.state = 17061; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2332,this._ctx); + } + + this.state = 17064; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2333,this._ctx); + if(la_===1) { + this.state = 17062; + this.pivot_clause(); + + } else if(la_===2) { + this.state = 17063; + this.unpivot_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_ref_aux() { + let localctx = new Table_ref_auxContext(this, this._ctx, this.state); + this.enterRule(localctx, 1906, OracleSqlParser.RULE_table_ref_aux); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17066; + this.table_ref_aux_internal(); + this.state = 17070; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2334,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 17067; + this.flashback_query_clause(); + } + this.state = 17072; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2334,this._ctx); + } + + this.state = 17074; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2335,this._ctx); + if(la_===1) { + this.state = 17073; + this.table_alias(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_ref_aux_internal() { + let localctx = new Table_ref_aux_internalContext(this, this._ctx, this.state); + this.enterRule(localctx, 1908, OracleSqlParser.RULE_table_ref_aux_internal); + var _la = 0; + try { + this.state = 17099; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2339,this._ctx); + switch(la_) { + case 1: + localctx = new Table_ref_aux_internal_oneContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 17076; + this.dml_table_expression_clause(); + this.state = 17079; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2336,this._ctx); + if(la_===1) { + this.state = 17077; + this.pivot_clause(); + + } else if(la_===2) { + this.state = 17078; + this.unpivot_clause(); + + } + break; + + case 2: + localctx = new Table_ref_aux_internal_twoContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 17081; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17082; + this.table_ref(); + this.state = 17086; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===773 || _la===954 || _la===2179) { + this.state = 17083; + this.subquery_operation_part(); + this.state = 17088; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 17089; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 17092; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2338,this._ctx); + if(la_===1) { + this.state = 17090; + this.pivot_clause(); + + } else if(la_===2) { + this.state = 17091; + this.unpivot_clause(); + + } + break; + + case 3: + localctx = new Table_ref_aux_internal_threContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 17094; + this.match(OracleSqlParser.ONLY); + this.state = 17095; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17096; + this.dml_table_expression_clause(); + this.state = 17097; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + join_clause() { + let localctx = new Join_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1910, OracleSqlParser.RULE_join_clause); + var _la = 0; + try { + this.state = 17126; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2346,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 17102; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1346) { + this.state = 17101; + this.query_partition_clause(); + } + + this.state = 17105; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===325 || _la===1002) { + this.state = 17104; + _la = this._input.LA(1); + if(!(_la===325 || _la===1002)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 17109; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 747: + this.state = 17107; + this.match(OracleSqlParser.INNER); + break; + case 628: + case 837: + case 1590: + this.state = 17108; + this.outer_join_type(); + break; + case 792: + break; + default: + break; + } + this.state = 17111; + this.match(OracleSqlParser.JOIN); + this.state = 17112; + this.table_ref_aux(); + this.state = 17114; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2343,this._ctx); + if(la_===1) { + this.state = 17113; + this.query_partition_clause(); + + } + this.state = 17120; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2345,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 17118; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1257: + this.state = 17116; + this.join_on_part(); + break; + case 2244: + this.state = 17117; + this.join_using_part(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 17122; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2345,this._ctx); + } + + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 17123; + _la = this._input.LA(1); + if(!(_la===325 || _la===1311)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 17124; + this.match(OracleSqlParser.APPLY); + this.state = 17125; + this.table_ref_aux(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + join_on_part() { + let localctx = new Join_on_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 1912, OracleSqlParser.RULE_join_on_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17128; + this.match(OracleSqlParser.ON); + this.state = 17129; + this.condition(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + join_using_part() { + let localctx = new Join_using_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 1914, OracleSqlParser.RULE_join_using_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17131; + this.match(OracleSqlParser.USING); + this.state = 17132; + this.paren_column_list(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + outer_join_type() { + let localctx = new Outer_join_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 1916, OracleSqlParser.RULE_outer_join_type); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17134; + _la = this._input.LA(1); + if(!(_la===628 || _la===837 || _la===1590)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 17136; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1311) { + this.state = 17135; + this.match(OracleSqlParser.OUTER); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + query_partition_clause() { + let localctx = new Query_partition_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1918, OracleSqlParser.RULE_query_partition_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17138; + this.match(OracleSqlParser.PARTITION); + this.state = 17139; + this.match(OracleSqlParser.BY); + this.state = 17147; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2349,this._ctx); + switch(la_) { + case 1: + this.state = 17140; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17143; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2348,this._ctx); + if(la_===1) { + this.state = 17141; + this.subquery(); + + } else if(la_===2) { + this.state = 17142; + this.expressions_(); + + } + this.state = 17145; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.state = 17146; + this.expressions_(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + flashback_query_clause() { + let localctx = new Flashback_query_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1920, OracleSqlParser.RULE_flashback_query_clause); + var _la = 0; + try { + this.state = 17174; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2281: + this.enterOuterAlt(localctx, 1); + this.state = 17149; + this.match(OracleSqlParser.VERSIONS); + this.state = 17157; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1384: + this.state = 17150; + this.match(OracleSqlParser.PERIOD_KEYWORD); + this.state = 17151; + this.match(OracleSqlParser.FOR); + this.state = 17152; + this.column_name(); + this.state = 17153; + this.match(OracleSqlParser.BETWEEN); + break; + case 118: + this.state = 17155; + this.match(OracleSqlParser.BETWEEN); + this.state = 17156; + _la = this._input.LA(1); + if(!(_la===1625 || _la===2106)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 17159; + this.expression(); + this.state = 17160; + this.match(OracleSqlParser.AND); + this.state = 17161; + this.expression(); + break; + case 69: + this.enterOuterAlt(localctx, 2); + this.state = 17163; + this.match(OracleSqlParser.AS); + this.state = 17164; + this.match(OracleSqlParser.OF); + this.state = 17172; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1625: + case 1705: + case 2106: + this.state = 17165; + _la = this._input.LA(1); + if(!(_la===1625 || _la===1705 || _la===2106)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 17166; + this.expression(); + break; + case 1384: + this.state = 17167; + this.match(OracleSqlParser.PERIOD_KEYWORD); + this.state = 17168; + this.match(OracleSqlParser.FOR); + this.state = 17169; + this.column_name(); + this.state = 17170; + this.expression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pivot_clause() { + let localctx = new Pivot_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1922, OracleSqlParser.RULE_pivot_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17176; + this.match(OracleSqlParser.PIVOT); + this.state = 17178; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2350) { + this.state = 17177; + this.match(OracleSqlParser.XML); + } + + this.state = 17180; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17181; + this.pivot_element(); + this.state = 17186; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 17182; + this.match(OracleSqlParser.COMMA); + this.state = 17183; + this.pivot_element(); + this.state = 17188; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 17189; + this.pivot_for_clause(); + this.state = 17190; + this.pivot_in_clause(); + this.state = 17191; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 17193; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2355,this._ctx); + if(la_===1) { + this.state = 17192; + this.table_alias(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pivot_element() { + let localctx = new Pivot_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1924, OracleSqlParser.RULE_pivot_element); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17201; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2356,this._ctx); + switch(la_) { + case 1: + this.state = 17195; + this.numeric_function(); + break; + + case 2: + this.state = 17196; + this.aggregate_function_name(); + this.state = 17197; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17198; + this.expression(); + this.state = 17199; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + this.state = 17204; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434615) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 3372220415) !== 0) || _la===2472 || _la===2478) { + this.state = 17203; + this.column_alias(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pivot_for_clause() { + let localctx = new Pivot_for_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1926, OracleSqlParser.RULE_pivot_for_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17206; + this.match(OracleSqlParser.FOR); + this.state = 17209; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 17207; + this.column_name(); + break; + case 2445: + this.state = 17208; + this.paren_column_list(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pivot_in_clause() { + let localctx = new Pivot_in_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1928, OracleSqlParser.RULE_pivot_in_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17211; + this.match(OracleSqlParser.IN); + this.state = 17212; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17230; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2361,this._ctx); + switch(la_) { + case 1: + this.state = 17213; + this.subquery(); + break; + + case 2: + this.state = 17214; + this.match(OracleSqlParser.ANY); + this.state = 17219; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 17215; + this.match(OracleSqlParser.COMMA); + this.state = 17216; + this.match(OracleSqlParser.ANY); + this.state = 17221; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 3: + this.state = 17222; + this.pivot_in_clause_element(); + this.state = 17227; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 17223; + this.match(OracleSqlParser.COMMA); + this.state = 17224; + this.pivot_in_clause_element(); + this.state = 17229; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + this.state = 17232; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pivot_in_clause_element() { + let localctx = new Pivot_in_clause_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1930, OracleSqlParser.RULE_pivot_in_clause_element); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17234; + this.pivot_in_clause_elements(); + this.state = 17236; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434615) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 3372220415) !== 0) || _la===2472 || _la===2478) { + this.state = 17235; + this.column_alias(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + pivot_in_clause_elements() { + let localctx = new Pivot_in_clause_elementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1932, OracleSqlParser.RULE_pivot_in_clause_elements); + var _la = 0; + try { + this.state = 17244; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2364,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 17238; + this.expression(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 17239; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17241; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160747519) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 17240; + this.expressions_(); + } + + this.state = 17243; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + unpivot_clause() { + let localctx = new Unpivot_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1934, OracleSqlParser.RULE_unpivot_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17246; + this.match(OracleSqlParser.UNPIVOT); + this.state = 17249; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===537 || _la===701) { + this.state = 17247; + _la = this._input.LA(1); + if(!(_la===537 || _la===701)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 17248; + this.match(OracleSqlParser.NULLS); + } + + this.state = 17251; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17254; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 17252; + this.column_name(); + break; + case 2445: + this.state = 17253; + this.paren_column_list(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 17256; + this.pivot_for_clause(); + this.state = 17257; + this.unpivot_in_clause(); + this.state = 17258; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 17260; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2367,this._ctx); + if(la_===1) { + this.state = 17259; + this.table_alias(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + unpivot_in_clause() { + let localctx = new Unpivot_in_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1936, OracleSqlParser.RULE_unpivot_in_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17262; + this.match(OracleSqlParser.IN); + this.state = 17263; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17264; + this.unpivot_in_elements(); + this.state = 17269; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 17265; + this.match(OracleSqlParser.COMMA); + this.state = 17266; + this.unpivot_in_elements(); + this.state = 17271; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 17272; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + unpivot_in_elements() { + let localctx = new Unpivot_in_elementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1938, OracleSqlParser.RULE_unpivot_in_elements); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17276; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 17274; + this.column_name(); + break; + case 2445: + this.state = 17275; + this.paren_column_list(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 17293; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 17278; + this.match(OracleSqlParser.AS); + this.state = 17291; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 359: + case 371: + case 387: + case 573: + case 774: + case 930: + case 958: + case 1226: + case 1667: + case 2106: + case 2156: + case 2434: + case 2439: + case 2440: + case 2441: + this.state = 17279; + this.constant(); + break; + case 2445: + this.state = 17280; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17281; + this.constant(); + this.state = 17286; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 17282; + this.match(OracleSqlParser.COMMA); + this.state = 17283; + this.constant(); + this.state = 17288; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 17289; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + hierarchical_query_clause() { + let localctx = new Hierarchical_query_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1940, OracleSqlParser.RULE_hierarchical_query_clause); + try { + this.state = 17312; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 278: + this.enterOuterAlt(localctx, 1); + this.state = 17295; + this.match(OracleSqlParser.CONNECT); + this.state = 17296; + this.match(OracleSqlParser.BY); + this.state = 17298; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2373,this._ctx); + if(la_===1) { + this.state = 17297; + this.match(OracleSqlParser.NOCYCLE); + + } + this.state = 17300; + this.condition(); + this.state = 17302; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2374,this._ctx); + if(la_===1) { + this.state = 17301; + this.start_part(); + + } + break; + case 1735: + this.enterOuterAlt(localctx, 2); + this.state = 17304; + this.start_part(); + this.state = 17305; + this.match(OracleSqlParser.CONNECT); + this.state = 17306; + this.match(OracleSqlParser.BY); + this.state = 17308; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2375,this._ctx); + if(la_===1) { + this.state = 17307; + this.match(OracleSqlParser.NOCYCLE); + + } + this.state = 17310; + this.condition(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + start_part() { + let localctx = new Start_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 1942, OracleSqlParser.RULE_start_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17314; + this.match(OracleSqlParser.START); + this.state = 17315; + this.match(OracleSqlParser.WITH); + this.state = 17316; + this.condition(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + group_by_clause() { + let localctx = new Group_by_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1944, OracleSqlParser.RULE_group_by_clause); + try { + this.state = 17344; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 647: + this.enterOuterAlt(localctx, 1); + this.state = 17318; + this.match(OracleSqlParser.GROUP); + this.state = 17319; + this.match(OracleSqlParser.BY); + this.state = 17320; + this.group_by_elements(); + this.state = 17325; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2377,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 17321; + this.match(OracleSqlParser.COMMA); + this.state = 17322; + this.group_by_elements(); + } + this.state = 17327; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2377,this._ctx); + } + + this.state = 17329; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2378,this._ctx); + if(la_===1) { + this.state = 17328; + this.having_clause(); + + } + break; + case 661: + this.enterOuterAlt(localctx, 2); + this.state = 17331; + this.having_clause(); + this.state = 17342; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2380,this._ctx); + if(la_===1) { + this.state = 17332; + this.match(OracleSqlParser.GROUP); + this.state = 17333; + this.match(OracleSqlParser.BY); + this.state = 17334; + this.group_by_elements(); + this.state = 17339; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2379,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 17335; + this.match(OracleSqlParser.COMMA); + this.state = 17336; + this.group_by_elements(); + } + this.state = 17341; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2379,this._ctx); + } + + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + group_by_elements() { + let localctx = new Group_by_elementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1946, OracleSqlParser.RULE_group_by_elements); + try { + this.state = 17349; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2382,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 17346; + this.grouping_sets_clause(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 17347; + this.rollup_cube_clause(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 17348; + this.expression(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + rollup_cube_clause() { + let localctx = new Rollup_cube_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1948, OracleSqlParser.RULE_rollup_cube_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17351; + _la = this._input.LA(1); + if(!(_la===330 || _la===1596)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 17352; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17353; + this.grouping_sets_elements(); + this.state = 17358; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 17354; + this.match(OracleSqlParser.COMMA); + this.state = 17355; + this.grouping_sets_elements(); + this.state = 17360; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 17361; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + grouping_sets_clause() { + let localctx = new Grouping_sets_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1950, OracleSqlParser.RULE_grouping_sets_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17363; + this.match(OracleSqlParser.GROUPING); + this.state = 17364; + this.match(OracleSqlParser.SETS); + this.state = 17365; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17366; + this.grouping_sets_elements(); + this.state = 17371; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 17367; + this.match(OracleSqlParser.COMMA); + this.state = 17368; + this.grouping_sets_elements(); + this.state = 17373; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 17374; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + grouping_sets_elements() { + let localctx = new Grouping_sets_elementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1952, OracleSqlParser.RULE_grouping_sets_elements); + var _la = 0; + try { + this.state = 17383; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2386,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 17376; + this.rollup_cube_clause(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 17377; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17379; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160747519) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 17378; + this.expressions_(); + } + + this.state = 17381; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 17382; + this.expression(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + having_clause() { + let localctx = new Having_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1954, OracleSqlParser.RULE_having_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17385; + this.match(OracleSqlParser.HAVING); + this.state = 17386; + this.condition(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + model_clause() { + let localctx = new Model_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1956, OracleSqlParser.RULE_model_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17388; + this.match(OracleSqlParser.MODEL); + this.state = 17392; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===690 || _la===812 || _la===2181) { + this.state = 17389; + this.cell_reference_options(); + this.state = 17394; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 17396; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1584) { + this.state = 17395; + this.return_rows_clause(); + } + + this.state = 17401; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===1525) { + this.state = 17398; + this.reference_model(); + this.state = 17403; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 17404; + this.main_model(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cell_reference_options() { + let localctx = new Cell_reference_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1958, OracleSqlParser.RULE_cell_reference_options); + var _la = 0; + try { + this.state = 17414; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 690: + case 812: + this.enterOuterAlt(localctx, 1); + this.state = 17406; + _la = this._input.LA(1); + if(!(_la===690 || _la===812)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 17407; + this.match(OracleSqlParser.NAV); + break; + case 2181: + this.enterOuterAlt(localctx, 2); + this.state = 17408; + this.match(OracleSqlParser.UNIQUE); + this.state = 17412; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 420: + this.state = 17409; + this.match(OracleSqlParser.DIMENSION); + break; + case 1693: + this.state = 17410; + this.match(OracleSqlParser.SINGLE); + this.state = 17411; + this.match(OracleSqlParser.REFERENCE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + return_rows_clause() { + let localctx = new Return_rows_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1960, OracleSqlParser.RULE_return_rows_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17416; + this.match(OracleSqlParser.RETURN); + this.state = 17417; + _la = this._input.LA(1); + if(!(_la===38 || _la===2204)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 17418; + this.match(OracleSqlParser.ROWS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + reference_model() { + let localctx = new Reference_modelContext(this, this._ctx, this.state); + this.enterRule(localctx, 1962, OracleSqlParser.RULE_reference_model); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17420; + this.match(OracleSqlParser.REFERENCE); + this.state = 17421; + this.reference_model_name(); + this.state = 17422; + this.match(OracleSqlParser.ON); + this.state = 17423; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17424; + this.subquery(); + this.state = 17425; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 17426; + this.model_column_clauses(); + this.state = 17430; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===690 || _la===812 || _la===2181) { + this.state = 17427; + this.cell_reference_options(); + this.state = 17432; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + main_model() { + let localctx = new Main_modelContext(this, this._ctx, this.state); + this.enterRule(localctx, 1964, OracleSqlParser.RULE_main_model); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17435; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===900) { + this.state = 17433; + this.match(OracleSqlParser.MAIN); + this.state = 17434; + this.main_model_name(); + } + + this.state = 17437; + this.model_column_clauses(); + this.state = 17441; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===690 || _la===812 || _la===2181) { + this.state = 17438; + this.cell_reference_options(); + this.state = 17443; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 17444; + this.model_rules_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + model_column_clauses() { + let localctx = new Model_column_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 1966, OracleSqlParser.RULE_model_column_clauses); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17447; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1346) { + this.state = 17446; + this.model_column_partition_part(); + } + + this.state = 17449; + this.match(OracleSqlParser.DIMENSION); + this.state = 17450; + this.match(OracleSqlParser.BY); + this.state = 17451; + this.model_column_list(); + this.state = 17452; + this.match(OracleSqlParser.MEASURES); + this.state = 17453; + this.model_column_list(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + model_column_partition_part() { + let localctx = new Model_column_partition_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 1968, OracleSqlParser.RULE_model_column_partition_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17455; + this.match(OracleSqlParser.PARTITION); + this.state = 17456; + this.match(OracleSqlParser.BY); + this.state = 17457; + this.model_column_list(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + model_column_list() { + let localctx = new Model_column_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 1970, OracleSqlParser.RULE_model_column_list); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17459; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17460; + this.model_column(); + this.state = 17465; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 17461; + this.match(OracleSqlParser.COMMA); + this.state = 17462; + this.model_column(); + this.state = 17467; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 17468; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + model_column() { + let localctx = new Model_columnContext(this, this._ctx, this.state); + this.enterRule(localctx, 1972, OracleSqlParser.RULE_model_column); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17472; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 359: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 387: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 443: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1202: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1226: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1452: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2399: + case 2400: + case 2401: + case 2402: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2434: + case 2438: + case 2439: + case 2440: + case 2441: + case 2442: + case 2445: + case 2449: + case 2450: + case 2459: + case 2466: + case 2472: + case 2478: + case 2479: + this.state = 17470; + this.expression(); + break; + case 1645: + this.state = 17471; + this.query_block(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 17475; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434615) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 3372220415) !== 0) || _la===2472 || _la===2478) { + this.state = 17474; + this.column_alias(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + model_rules_clause() { + let localctx = new Model_rules_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1974, OracleSqlParser.RULE_model_rules_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17478; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1609) { + this.state = 17477; + this.model_rules_part(); + } + + this.state = 17480; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17489; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4294959103) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 17481; + this.model_rules_element(); + this.state = 17486; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 17482; + this.match(OracleSqlParser.COMMA); + this.state = 17483; + this.model_rules_element(); + this.state = 17488; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 17491; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + model_rules_part() { + let localctx = new Model_rules_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 1976, OracleSqlParser.RULE_model_rules_part); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17493; + this.match(OracleSqlParser.RULES); + this.state = 17499; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 2205: + this.state = 17494; + this.match(OracleSqlParser.UPDATE); + break; + case 2211: + this.state = 17495; + this.match(OracleSqlParser.UPSERT); + this.state = 17497; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===38) { + this.state = 17496; + this.match(OracleSqlParser.ALL); + } + + break; + case 95: + case 788: + case 1653: + case 2445: + break; + default: + break; + } + this.state = 17503; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===95 || _la===1653) { + this.state = 17501; + _la = this._input.LA(1); + if(!(_la===95 || _la===1653)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 17502; + this.match(OracleSqlParser.ORDER); + } + + this.state = 17506; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===788) { + this.state = 17505; + this.model_iterate_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + model_rules_element() { + let localctx = new Model_rules_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 1978, OracleSqlParser.RULE_model_rules_element); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17513; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2407,this._ctx); + if(la_===1) { + this.state = 17508; + this.match(OracleSqlParser.UPDATE); + + } else if(la_===2) { + this.state = 17509; + this.match(OracleSqlParser.UPSERT); + this.state = 17511; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2406,this._ctx); + if(la_===1) { + this.state = 17510; + this.match(OracleSqlParser.ALL); + + } + + } + this.state = 17515; + this.cell_assignment(); + this.state = 17517; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1301) { + this.state = 17516; + this.order_by_clause(); + } + + this.state = 17519; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 17520; + this.expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cell_assignment() { + let localctx = new Cell_assignmentContext(this, this._ctx, this.state); + this.enterRule(localctx, 1980, OracleSqlParser.RULE_cell_assignment); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17522; + this.model_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + model_iterate_clause() { + let localctx = new Model_iterate_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1982, OracleSqlParser.RULE_model_iterate_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17524; + this.match(OracleSqlParser.ITERATE); + this.state = 17525; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17526; + this.expression(); + this.state = 17527; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 17529; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2200) { + this.state = 17528; + this.until_part(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + until_part() { + let localctx = new Until_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 1984, OracleSqlParser.RULE_until_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17531; + this.match(OracleSqlParser.UNTIL); + this.state = 17532; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17533; + this.condition(); + this.state = 17534; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + order_by_clause() { + let localctx = new Order_by_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1986, OracleSqlParser.RULE_order_by_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17536; + this.match(OracleSqlParser.ORDER); + this.state = 17538; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1684) { + this.state = 17537; + this.match(OracleSqlParser.SIBLINGS); + } + + this.state = 17540; + this.match(OracleSqlParser.BY); + this.state = 17541; + this.order_by_elements(); + this.state = 17546; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2411,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 17542; + this.match(OracleSqlParser.COMMA); + this.state = 17543; + this.order_by_elements(); + } + this.state = 17548; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2411,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + order_by_elements() { + let localctx = new Order_by_elementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1988, OracleSqlParser.RULE_order_by_elements); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17549; + this.expression(); + this.state = 17551; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2412,this._ctx); + if(la_===1) { + this.state = 17550; + _la = this._input.LA(1); + if(!(_la===70 || _la===412)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 17555; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2413,this._ctx); + if(la_===1) { + this.state = 17553; + this.match(OracleSqlParser.NULLS); + this.state = 17554; + _la = this._input.LA(1); + if(!(_la===596 || _la===823)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + offset_clause() { + let localctx = new Offset_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1990, OracleSqlParser.RULE_offset_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17557; + this.match(OracleSqlParser.OFFSET); + this.state = 17558; + this.expression(); + this.state = 17559; + _la = this._input.LA(1); + if(!(_la===1604 || _la===1605)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + fetch_clause() { + let localctx = new Fetch_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1992, OracleSqlParser.RULE_fetch_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17561; + this.match(OracleSqlParser.FETCH); + this.state = 17562; + _la = this._input.LA(1); + if(!(_la===596 || _la===1023)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 17567; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2415,this._ctx); + if(la_===1) { + this.state = 17563; + this.expression(); + this.state = 17565; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1376) { + this.state = 17564; + this.match(OracleSqlParser.PERCENT_KEYWORD); + } + + + } + this.state = 17569; + _la = this._input.LA(1); + if(!(_la===1604 || _la===1605)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 17573; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1256: + this.state = 17570; + this.match(OracleSqlParser.ONLY); + break; + case 2306: + this.state = 17571; + this.match(OracleSqlParser.WITH); + this.state = 17572; + this.match(OracleSqlParser.TIES); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + for_update_clause() { + let localctx = new For_update_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 1994, OracleSqlParser.RULE_for_update_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17575; + this.match(OracleSqlParser.FOR); + this.state = 17576; + this.match(OracleSqlParser.UPDATE); + this.state = 17578; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1244) { + this.state = 17577; + this.for_update_of_part(); + } + + this.state = 17581; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1217 || _la===1700 || _la===2291) { + this.state = 17580; + this.for_update_options(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + for_update_of_part() { + let localctx = new For_update_of_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 1996, OracleSqlParser.RULE_for_update_of_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17583; + this.match(OracleSqlParser.OF); + this.state = 17584; + this.column_list(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + for_update_options() { + let localctx = new For_update_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 1998, OracleSqlParser.RULE_for_update_options); + try { + this.state = 17591; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1700: + this.enterOuterAlt(localctx, 1); + this.state = 17586; + this.match(OracleSqlParser.SKIP_); + this.state = 17587; + this.match(OracleSqlParser.LOCKED); + break; + case 1217: + this.enterOuterAlt(localctx, 2); + this.state = 17588; + this.match(OracleSqlParser.NOWAIT); + break; + case 2291: + this.enterOuterAlt(localctx, 3); + this.state = 17589; + this.match(OracleSqlParser.WAIT); + this.state = 17590; + this.expression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + update_statement() { + let localctx = new Update_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2000, OracleSqlParser.RULE_update_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17593; + this.match(OracleSqlParser.UPDATE); + this.state = 17594; + this.general_table_ref(); + this.state = 17595; + this.update_set_clause(); + this.state = 17597; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2299) { + this.state = 17596; + this.where_clause(); + } + + this.state = 17600; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1583 || _la===1584) { + this.state = 17599; + this.static_returning_clause(); + } + + this.state = 17603; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===886) { + this.state = 17602; + this.error_logging_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + update_set_clause() { + let localctx = new Update_set_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2002, OracleSqlParser.RULE_update_set_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17605; + this.match(OracleSqlParser.SET); + this.state = 17621; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2424,this._ctx); + switch(la_) { + case 1: + this.state = 17606; + this.column_based_update_set_clause(); + this.state = 17611; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 17607; + this.match(OracleSqlParser.COMMA); + this.state = 17608; + this.column_based_update_set_clause(); + this.state = 17613; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.state = 17614; + this.match(OracleSqlParser.VALUE); + this.state = 17615; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17616; + this.identifier(); + this.state = 17617; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 17618; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 17619; + this.expression(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + column_based_update_set_clause() { + let localctx = new Column_based_update_set_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2004, OracleSqlParser.RULE_column_based_update_set_clause); + try { + this.state = 17631; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 17623; + this.column_name(); + this.state = 17624; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 17625; + this.expression(); + break; + case 2445: + this.enterOuterAlt(localctx, 2); + this.state = 17627; + this.paren_column_list(); + this.state = 17628; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 17629; + this.subquery(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + delete_statement() { + let localctx = new Delete_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2006, OracleSqlParser.RULE_delete_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17633; + this.match(OracleSqlParser.DELETE); + this.state = 17635; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2426,this._ctx); + if(la_===1) { + this.state = 17634; + this.match(OracleSqlParser.FROM); + + } + this.state = 17637; + this.general_table_ref(); + this.state = 17639; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2299) { + this.state = 17638; + this.where_clause(); + } + + this.state = 17642; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1583 || _la===1584) { + this.state = 17641; + this.static_returning_clause(); + } + + this.state = 17645; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===886) { + this.state = 17644; + this.error_logging_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + insert_statement() { + let localctx = new Insert_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2008, OracleSqlParser.RULE_insert_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17647; + this.match(OracleSqlParser.INSERT); + this.state = 17650; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 777: + this.state = 17648; + this.single_table_insert(); + break; + case 38: + case 596: + case 2298: + this.state = 17649; + this.multi_table_insert(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + single_table_insert() { + let localctx = new Single_table_insertContext(this, this._ctx, this.state); + this.enterRule(localctx, 2010, OracleSqlParser.RULE_single_table_insert); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17652; + this.insert_into_clause(); + this.state = 17658; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2255: + this.state = 17653; + this.values_clause(); + this.state = 17655; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1583 || _la===1584) { + this.state = 17654; + this.static_returning_clause(); + } + + break; + case 1645: + case 2306: + case 2445: + this.state = 17657; + this.select_statement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 17661; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===886) { + this.state = 17660; + this.error_logging_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + multi_table_insert() { + let localctx = new Multi_table_insertContext(this, this._ctx, this.state); + this.enterRule(localctx, 2012, OracleSqlParser.RULE_multi_table_insert); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17670; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2435,this._ctx); + switch(la_) { + case 1: + this.state = 17663; + this.match(OracleSqlParser.ALL); + this.state = 17665; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 17664; + this.multi_table_element(); + this.state = 17667; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===777); + break; + + case 2: + this.state = 17669; + this.conditional_insert_clause(); + break; + + } + this.state = 17672; + this.select_statement(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + multi_table_element() { + let localctx = new Multi_table_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2014, OracleSqlParser.RULE_multi_table_element); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17674; + this.insert_into_clause(); + this.state = 17676; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2255) { + this.state = 17675; + this.values_clause(); + } + + this.state = 17679; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===886) { + this.state = 17678; + this.error_logging_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + conditional_insert_clause() { + let localctx = new Conditional_insert_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2016, OracleSqlParser.RULE_conditional_insert_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17682; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===38 || _la===596) { + this.state = 17681; + _la = this._input.LA(1); + if(!(_la===38 || _la===596)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 17685; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 17684; + this.conditional_insert_when_part(); + this.state = 17687; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2298); + this.state = 17690; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===489) { + this.state = 17689; + this.conditional_insert_else_part(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + conditional_insert_when_part() { + let localctx = new Conditional_insert_when_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2018, OracleSqlParser.RULE_conditional_insert_when_part); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17692; + this.match(OracleSqlParser.WHEN); + this.state = 17693; + this.condition(); + this.state = 17694; + this.match(OracleSqlParser.THEN); + this.state = 17696; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 17695; + this.multi_table_element(); + this.state = 17698; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===777); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + conditional_insert_else_part() { + let localctx = new Conditional_insert_else_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2020, OracleSqlParser.RULE_conditional_insert_else_part); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17700; + this.match(OracleSqlParser.ELSE); + this.state = 17702; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 17701; + this.multi_table_element(); + this.state = 17704; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===777); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + insert_into_clause() { + let localctx = new Insert_into_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2022, OracleSqlParser.RULE_insert_into_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17706; + this.match(OracleSqlParser.INTO); + this.state = 17707; + this.general_table_ref(); + this.state = 17709; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2443,this._ctx); + if(la_===1) { + this.state = 17708; + this.paren_column_list(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + values_clause() { + let localctx = new Values_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2024, OracleSqlParser.RULE_values_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17711; + this.match(OracleSqlParser.VALUES); + this.state = 17718; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2444,this._ctx); + switch(la_) { + case 1: + this.state = 17712; + this.match(OracleSqlParser.REGULAR_ID); + break; + + case 2: + this.state = 17713; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17714; + this.expressions_(); + this.state = 17715; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 3: + this.state = 17717; + this.collection_expression(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + merge_statement() { + let localctx = new Merge_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2026, OracleSqlParser.RULE_merge_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17720; + this.match(OracleSqlParser.MERGE); + this.state = 17721; + this.match(OracleSqlParser.INTO); + this.state = 17722; + this.tableview_name(); + this.state = 17724; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2445,this._ctx); + if(la_===1) { + this.state = 17723; + this.table_alias(); + + } + this.state = 17726; + this.match(OracleSqlParser.USING); + this.state = 17727; + this.selected_tableview(); + this.state = 17728; + this.match(OracleSqlParser.ON); + this.state = 17729; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17730; + this.condition(); + this.state = 17731; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 17740; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2448,this._ctx); + if(la_===1) { + this.state = 17732; + this.merge_update_clause(); + this.state = 17734; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2298) { + this.state = 17733; + this.merge_insert_clause(); + } + + + } else if(la_===2) { + this.state = 17736; + this.merge_insert_clause(); + this.state = 17738; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2298) { + this.state = 17737; + this.merge_update_clause(); + } + + + } + this.state = 17743; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===886) { + this.state = 17742; + this.error_logging_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + merge_update_clause() { + let localctx = new Merge_update_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2028, OracleSqlParser.RULE_merge_update_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17745; + this.match(OracleSqlParser.WHEN); + this.state = 17746; + this.match(OracleSqlParser.MATCHED); + this.state = 17747; + this.match(OracleSqlParser.THEN); + this.state = 17748; + this.match(OracleSqlParser.UPDATE); + this.state = 17749; + this.match(OracleSqlParser.SET); + this.state = 17750; + this.merge_element(); + this.state = 17755; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 17751; + this.match(OracleSqlParser.COMMA); + this.state = 17752; + this.merge_element(); + this.state = 17757; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 17759; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2299) { + this.state = 17758; + this.where_clause(); + } + + this.state = 17762; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===401) { + this.state = 17761; + this.merge_update_delete_part(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + merge_element() { + let localctx = new Merge_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2030, OracleSqlParser.RULE_merge_element); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17764; + this.column_name(); + this.state = 17765; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 17766; + this.expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + merge_update_delete_part() { + let localctx = new Merge_update_delete_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2032, OracleSqlParser.RULE_merge_update_delete_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17768; + this.match(OracleSqlParser.DELETE); + this.state = 17769; + this.where_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + merge_insert_clause() { + let localctx = new Merge_insert_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2034, OracleSqlParser.RULE_merge_insert_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17771; + this.match(OracleSqlParser.WHEN); + this.state = 17772; + this.match(OracleSqlParser.NOT); + this.state = 17773; + this.match(OracleSqlParser.MATCHED); + this.state = 17774; + this.match(OracleSqlParser.THEN); + this.state = 17775; + this.match(OracleSqlParser.INSERT); + this.state = 17777; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 17776; + this.paren_column_list(); + } + + this.state = 17779; + this.values_clause(); + this.state = 17781; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2299) { + this.state = 17780; + this.where_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + selected_tableview() { + let localctx = new Selected_tableviewContext(this, this._ctx, this.state); + this.enterRule(localctx, 2036, OracleSqlParser.RULE_selected_tableview); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17793; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2455,this._ctx); + switch(la_) { + case 1: + this.state = 17783; + this.tableview_name(); + break; + + case 2: + this.state = 17784; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17785; + this.select_statement(); + this.state = 17786; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 3: + this.state = 17788; + this.table_collection_expression(); + break; + + case 4: + this.state = 17789; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17790; + this.table_collection_expression(); + this.state = 17791; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + this.state = 17796; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 3372220415) !== 0) || _la===2472 || _la===2478) { + this.state = 17795; + this.table_alias(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lock_table_statement() { + let localctx = new Lock_table_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2038, OracleSqlParser.RULE_lock_table_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17798; + this.match(OracleSqlParser.LOCK); + this.state = 17799; + this.match(OracleSqlParser.TABLE); + this.state = 17800; + this.lock_table_element(); + this.state = 17805; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 17801; + this.match(OracleSqlParser.COMMA); + this.state = 17802; + this.lock_table_element(); + this.state = 17807; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 17808; + this.match(OracleSqlParser.IN); + this.state = 17809; + this.lock_mode(); + this.state = 17810; + this.match(OracleSqlParser.MODE); + this.state = 17812; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1217 || _la===2291) { + this.state = 17811; + this.wait_nowait_part(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + wait_nowait_part() { + let localctx = new Wait_nowait_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2040, OracleSqlParser.RULE_wait_nowait_part); + try { + this.state = 17817; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2291: + this.enterOuterAlt(localctx, 1); + this.state = 17814; + this.match(OracleSqlParser.WAIT); + this.state = 17815; + this.expression(); + break; + case 1217: + this.enterOuterAlt(localctx, 2); + this.state = 17816; + this.match(OracleSqlParser.NOWAIT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lock_table_element() { + let localctx = new Lock_table_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2042, OracleSqlParser.RULE_lock_table_element); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17819; + this.tableview_name(); + this.state = 17821; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1346 || _la===1773) { + this.state = 17820; + this.partition_extension_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + lock_mode() { + let localctx = new Lock_modeContext(this, this._ctx, this.state); + this.enterRule(localctx, 2044, OracleSqlParser.RULE_lock_mode); + var _la = 0; + try { + this.state = 17835; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2462,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 17823; + this.match(OracleSqlParser.ROW); + this.state = 17824; + this.match(OracleSqlParser.SHARE); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 17825; + this.match(OracleSqlParser.ROW); + this.state = 17826; + this.match(OracleSqlParser.EXCLUSIVE); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 17827; + this.match(OracleSqlParser.SHARE); + this.state = 17829; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2205) { + this.state = 17828; + this.match(OracleSqlParser.UPDATE); + } + + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 17831; + this.match(OracleSqlParser.SHARE); + this.state = 17832; + this.match(OracleSqlParser.ROW); + this.state = 17833; + this.match(OracleSqlParser.EXCLUSIVE); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 17834; + this.match(OracleSqlParser.EXCLUSIVE); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + general_table_ref() { + let localctx = new General_table_refContext(this, this._ctx, this.state); + this.enterRule(localctx, 2046, OracleSqlParser.RULE_general_table_ref); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17843; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2463,this._ctx); + switch(la_) { + case 1: + this.state = 17837; + this.dml_table_expression_clause(); + break; + + case 2: + this.state = 17838; + this.match(OracleSqlParser.ONLY); + this.state = 17839; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17840; + this.dml_table_expression_clause(); + this.state = 17841; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + this.state = 17846; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2464,this._ctx); + if(la_===1) { + this.state = 17845; + this.table_alias(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + static_returning_clause() { + let localctx = new Static_returning_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2048, OracleSqlParser.RULE_static_returning_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17848; + _la = this._input.LA(1); + if(!(_la===1583 || _la===1584)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 17849; + this.expressions_(); + this.state = 17850; + this.into_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + error_logging_clause() { + let localctx = new Error_logging_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2050, OracleSqlParser.RULE_error_logging_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17852; + this.match(OracleSqlParser.LOG); + this.state = 17853; + this.match(OracleSqlParser.ERRORS); + this.state = 17855; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2465,this._ctx); + if(la_===1) { + this.state = 17854; + this.error_logging_into_part(); + + } + this.state = 17858; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2466,this._ctx); + if(la_===1) { + this.state = 17857; + this.expression(); + + } + this.state = 17861; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1547) { + this.state = 17860; + this.error_logging_reject_part(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + error_logging_into_part() { + let localctx = new Error_logging_into_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2052, OracleSqlParser.RULE_error_logging_into_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17863; + this.match(OracleSqlParser.INTO); + this.state = 17864; + this.tableview_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + error_logging_reject_part() { + let localctx = new Error_logging_reject_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2054, OracleSqlParser.RULE_error_logging_reject_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17866; + this.match(OracleSqlParser.REJECT); + this.state = 17867; + this.match(OracleSqlParser.LIMIT); + this.state = 17870; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2468,this._ctx); + switch(la_) { + case 1: + this.state = 17868; + this.match(OracleSqlParser.UNLIMITED); + break; + + case 2: + this.state = 17869; + this.expression(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dml_table_expression_clause() { + let localctx = new Dml_table_expression_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2056, OracleSqlParser.RULE_dml_table_expression_clause); + var _la = 0; + try { + this.state = 17908; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2474,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 17872; + this.table_collection_expression(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 17873; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17874; + this.select_statement(); + this.state = 17876; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 17875; + this.subquery_restriction_clause(); + } + + this.state = 17878; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 17880; + this.tableview_name(); + this.state = 17882; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2470,this._ctx); + if(la_===1) { + this.state = 17881; + this.hierarchies_clause(); + + } + this.state = 17885; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2471,this._ctx); + if(la_===1) { + this.state = 17884; + this.sample_clause(); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 17887; + this.json_table_clause(); + this.state = 17890; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2472,this._ctx); + if(la_===1) { + this.state = 17888; + this.match(OracleSqlParser.AS); + this.state = 17889; + this.identifier(); + + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 17892; + this.match(OracleSqlParser.LATERAL); + this.state = 17893; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17894; + this.subquery(); + this.state = 17896; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 17895; + this.subquery_restriction_clause(); + } + + this.state = 17898; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 17900; + if (!( this.isVersion11())) { + throw new antlr4.error.FailedPredicateException(this, "this.isVersion11()"); + } + + this.state = 17901; + this.match(OracleSqlParser.RELATIONAL); + this.state = 17902; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17903; + this.tableview_name(); + this.state = 17904; + this.match(OracleSqlParser.NOT); + this.state = 17905; + this.match(OracleSqlParser.XMLTYPE); + this.state = 17906; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_collection_expression() { + let localctx = new Table_collection_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2058, OracleSqlParser.RULE_table_collection_expression); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17910; + _la = this._input.LA(1); + if(!(_la===2081 || _la===2098)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 17921; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2476,this._ctx); + switch(la_) { + case 1: + this.state = 17911; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17912; + this.subquery(); + this.state = 17913; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.state = 17915; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17916; + this.expression(); + this.state = 17917; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 17919; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2475,this._ctx); + if(la_===1) { + this.state = 17918; + this.outer_join_sign(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + subquery_restriction_clause() { + let localctx = new Subquery_restriction_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2060, OracleSqlParser.RULE_subquery_restriction_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17923; + this.match(OracleSqlParser.WITH); + this.state = 17932; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1503: + this.state = 17924; + this.match(OracleSqlParser.READ); + this.state = 17925; + this.match(OracleSqlParser.ONLY); + break; + case 200: + this.state = 17926; + this.match(OracleSqlParser.CHECK); + this.state = 17927; + this.match(OracleSqlParser.OPTION); + this.state = 17930; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===284) { + this.state = 17928; + this.match(OracleSqlParser.CONSTRAINT); + this.state = 17929; + this.constraint_name(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sample_clause() { + let localctx = new Sample_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2062, OracleSqlParser.RULE_sample_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 17934; + this.match(OracleSqlParser.SAMPLE); + this.state = 17936; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===143) { + this.state = 17935; + this.match(OracleSqlParser.BLOCK); + } + + this.state = 17938; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17939; + this.expression(); + this.state = 17942; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 17940; + this.match(OracleSqlParser.COMMA); + this.state = 17941; + this.expression(); + } + + this.state = 17944; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 17946; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2481,this._ctx); + if(la_===1) { + this.state = 17945; + this.seed_part(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + seed_part() { + let localctx = new Seed_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2064, OracleSqlParser.RULE_seed_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17948; + this.match(OracleSqlParser.SEED); + this.state = 17949; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17950; + this.expression(); + this.state = 17951; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + condition() { + let localctx = new ConditionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2066, OracleSqlParser.RULE_condition); + try { + this.state = 17959; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2482,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 17953; + this.expression(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 17954; + this.match(OracleSqlParser.JSON_EQUAL); + this.state = 17955; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17956; + this.expressions_(); + this.state = 17957; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + expressions_() { + let localctx = new Expressions_Context(this, this._ctx, this.state); + this.enterRule(localctx, 2068, OracleSqlParser.RULE_expressions_); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17961; + this.expression(); + this.state = 17966; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2483,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 17962; + this.match(OracleSqlParser.COMMA); + this.state = 17963; + this.expression(); + } + this.state = 17968; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2483,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + expression() { + let localctx = new ExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2070, OracleSqlParser.RULE_expression); + try { + this.state = 17978; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2484,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 17969; + this.match(OracleSqlParser.CHAR_STRING); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 17970; + this.match(OracleSqlParser.NULL_); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 17971; + this.match(OracleSqlParser.TRUE); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 17972; + this.match(OracleSqlParser.FALSE); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 17973; + this.match(OracleSqlParser.APPROXIMATE_NUM_LIT); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 17974; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 17975; + this.column_name(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 17976; + this.cursor_expression(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 17977; + this.logical_expression(0); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cursor_expression() { + let localctx = new Cursor_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2072, OracleSqlParser.RULE_cursor_expression); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17980; + this.match(OracleSqlParser.CURSOR); + this.state = 17981; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 17982; + this.subquery(); + this.state = 17983; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + logical_expression(_p) { + if(_p===undefined) { + _p = 0; + } + const _parentctx = this._ctx; + const _parentState = this.state; + let localctx = new Logical_expressionContext(this, this._ctx, _parentState); + let _prevctx = localctx; + const _startState = 2074; + this.enterRecursionRule(localctx, 2074, OracleSqlParser.RULE_logical_expression, _p); + try { + this.enterOuterAlt(localctx, 1); + this.state = 17986; + this.unary_logical_expression(); + this._ctx.stop = this._input.LT(-1); + this.state = 17996; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2486,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + this.state = 17994; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2485,this._ctx); + switch(la_) { + case 1: + localctx = new Logical_expressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_logical_expression); + this.state = 17988; + if (!( this.precpred(this._ctx, 2))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); + } + this.state = 17989; + this.match(OracleSqlParser.AND); + this.state = 17990; + this.logical_expression(3); + break; + + case 2: + localctx = new Logical_expressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_logical_expression); + this.state = 17991; + if (!( this.precpred(this._ctx, 1))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + } + this.state = 17992; + this.match(OracleSqlParser.OR); + this.state = 17993; + this.logical_expression(2); + break; + + } + } + this.state = 17998; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2486,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; + } + + + + unary_logical_expression() { + let localctx = new Unary_logical_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2076, OracleSqlParser.RULE_unary_logical_expression); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18000; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 17999; + this.match(OracleSqlParser.NOT); + } + + this.state = 18002; + this.multiset_expression(0); + this.state = 18004; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2488,this._ctx); + if(la_===1) { + this.state = 18003; + this.unary_logical_operation(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + unary_logical_operation() { + let localctx = new Unary_logical_operationContext(this, this._ctx, this.state); + this.enterRule(localctx, 2078, OracleSqlParser.RULE_unary_logical_operation); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18006; + this.match(OracleSqlParser.IS); + this.state = 18008; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 18007; + this.match(OracleSqlParser.NOT); + } + + this.state = 18010; + this.logical_operation(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + logical_operation() { + let localctx = new Logical_operationContext(this, this._ctx, this.state); + this.enterRule(localctx, 2080, OracleSqlParser.RULE_logical_operation); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18050; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1226: + this.state = 18012; + this.match(OracleSqlParser.NULL_); + break; + case 997: + this.state = 18013; + this.match(OracleSqlParser.NAN_); + break; + case 1442: + this.state = 18014; + this.match(OracleSqlParser.PRESENT); + break; + case 733: + this.state = 18015; + this.match(OracleSqlParser.INFINITE); + break; + case 36: + this.state = 18016; + this.match(OracleSqlParser.A_LETTER); + this.state = 18017; + this.match(OracleSqlParser.SET); + break; + case 495: + this.state = 18018; + this.match(OracleSqlParser.EMPTY_); + break; + case 1244: + this.state = 18019; + this.match(OracleSqlParser.OF); + this.state = 18021; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2164) { + this.state = 18020; + this.match(OracleSqlParser.TYPE); + } + + this.state = 18023; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18025; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2491,this._ctx); + if(la_===1) { + this.state = 18024; + this.match(OracleSqlParser.ONLY); + + } + this.state = 18027; + this.type_spec(); + this.state = 18032; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 18028; + this.match(OracleSqlParser.COMMA); + this.state = 18029; + this.type_spec(); + this.state = 18034; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 18035; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 799: + this.state = 18037; + this.match(OracleSqlParser.JSON); + this.state = 18040; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2493,this._ctx); + if(la_===1) { + this.state = 18038; + this.match(OracleSqlParser.FORMAT); + this.state = 18039; + this.match(OracleSqlParser.JSON); + + } + this.state = 18043; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2494,this._ctx); + if(la_===1) { + this.state = 18042; + _la = this._input.LA(1); + if(!(_la===827 || _la===1764)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 18048; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2495,this._ctx); + if(la_===1) { + this.state = 18045; + _la = this._input.LA(1); + if(!(_la===2304 || _la===2306)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18046; + this.match(OracleSqlParser.UNIQUE); + this.state = 18047; + this.match(OracleSqlParser.KEYS); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + multiset_expression(_p) { + if(_p===undefined) { + _p = 0; + } + const _parentctx = this._ctx; + const _parentState = this.state; + let localctx = new Multiset_expressionContext(this, this._ctx, _parentState); + let _prevctx = localctx; + const _startState = 2082; + this.enterRecursionRule(localctx, 2082, OracleSqlParser.RULE_multiset_expression, _p); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18053; + this.relational_expression(0); + this.state = 18062; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2499,this._ctx); + if(la_===1) { + this.state = 18055; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 18054; + localctx.multiset_type = this.match(OracleSqlParser.NOT); + } + + this.state = 18057; + _la = this._input.LA(1); + if(!(_la===934 || _la===1770)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18059; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1244) { + this.state = 18058; + this.match(OracleSqlParser.OF); + } + + this.state = 18061; + this.concatenation(0); + + } + this._ctx.stop = this._input.LT(-1); + this.state = 18073; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2501,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + localctx = new Multiset_expressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_multiset_expression); + this.state = 18064; + if (!( this.precpred(this._ctx, 1))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + } + this.state = 18065; + this.match(OracleSqlParser.MULTISET); + this.state = 18066; + localctx.multiset_operator = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===532 || _la===773 || _la===2179)) { + localctx.multiset_operator = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18068; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2500,this._ctx); + if(la_===1) { + this.state = 18067; + _la = this._input.LA(1); + if(!(_la===38 || _la===443)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 18070; + this.relational_expression(0); + } + this.state = 18075; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2501,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; + } + + + relational_expression(_p) { + if(_p===undefined) { + _p = 0; + } + const _parentctx = this._ctx; + const _parentState = this.state; + let localctx = new Relational_expressionContext(this, this._ctx, _parentState); + let _prevctx = localctx; + const _startState = 2084; + this.enterRecursionRule(localctx, 2084, OracleSqlParser.RULE_relational_expression, _p); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18077; + this.compound_expression(); + this._ctx.stop = this._input.LT(-1); + this.state = 18091; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2504,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + this.state = 18089; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2503,this._ctx); + switch(la_) { + case 1: + localctx = new Relational_expressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_relational_expression); + this.state = 18079; + if (!( this.precpred(this._ctx, 3))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); + } + this.state = 18080; + this.relational_operator(); + this.state = 18081; + this.relational_expression(4); + break; + + case 2: + localctx = new Relational_expressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_relational_expression); + this.state = 18083; + if (!( this.precpred(this._ctx, 2))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); + } + this.state = 18085; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 18084; + this.match(OracleSqlParser.NOT); + } + + this.state = 18087; + this.match(OracleSqlParser.IN); + this.state = 18088; + this.in_elements(); + break; + + } + } + this.state = 18093; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2504,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; + } + + + + compound_expression() { + let localctx = new Compound_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2086, OracleSqlParser.RULE_compound_expression); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18094; + this.concatenation(0); + this.state = 18110; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2508,this._ctx); + if(la_===1) { + this.state = 18096; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1202) { + this.state = 18095; + this.match(OracleSqlParser.NOT); + } + + this.state = 18108; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 736: + this.state = 18098; + this.match(OracleSqlParser.IN); + this.state = 18099; + this.in_elements(); + break; + case 118: + this.state = 18100; + this.match(OracleSqlParser.BETWEEN); + this.state = 18101; + this.between_elements(); + break; + case 851: + case 852: + case 853: + case 855: + this.state = 18102; + localctx.like_type = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 851)) & ~0x1f) === 0 && ((1 << (_la - 851)) & 23) !== 0))) { + localctx.like_type = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18103; + this.concatenation(0); + this.state = 18106; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2506,this._ctx); + if(la_===1) { + this.state = 18104; + this.match(OracleSqlParser.ESCAPE); + this.state = 18105; + this.concatenation(0); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + relational_operator() { + let localctx = new Relational_operatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 2088, OracleSqlParser.RULE_relational_operator); + var _la = 0; + try { + this.state = 18126; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2511,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 18112; + this.match(OracleSqlParser.EQUALS_OP); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 18120; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2460: + this.state = 18113; + this.match(OracleSqlParser.NOT_EQUAL_OP); + break; + case 2465: + this.state = 18114; + this.match(OracleSqlParser.LESS_THAN_OP); + this.state = 18115; + this.match(OracleSqlParser.GREATER_THAN_OP); + break; + case 2463: + this.state = 18116; + this.match(OracleSqlParser.EXCLAMATION_OPERATOR_PART); + this.state = 18117; + this.match(OracleSqlParser.EQUALS_OP); + break; + case 2461: + this.state = 18118; + this.match(OracleSqlParser.CARRET_OPERATOR_PART); + this.state = 18119; + this.match(OracleSqlParser.EQUALS_OP); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 18122; + _la = this._input.LA(1); + if(!(_la===2464 || _la===2465)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18124; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2469) { + this.state = 18123; + this.match(OracleSqlParser.EQUALS_OP); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + in_elements() { + let localctx = new In_elementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 2090, OracleSqlParser.RULE_in_elements); + var _la = 0; + try { + this.state = 18146; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2513,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 18128; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18129; + this.subquery(); + this.state = 18130; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 18132; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18133; + this.concatenation(0); + this.state = 18138; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 18134; + this.match(OracleSqlParser.COMMA); + this.state = 18135; + this.concatenation(0); + this.state = 18140; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 18141; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 18143; + this.constant(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 18144; + this.bind_variable(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 18145; + this.general_element(0); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + between_elements() { + let localctx = new Between_elementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 2092, OracleSqlParser.RULE_between_elements); + try { + this.enterOuterAlt(localctx, 1); + this.state = 18148; + this.concatenation(0); + this.state = 18149; + this.match(OracleSqlParser.AND); + this.state = 18150; + this.concatenation(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + concatenation(_p) { + if(_p===undefined) { + _p = 0; + } + const _parentctx = this._ctx; + const _parentState = this.state; + let localctx = new ConcatenationContext(this, this._ctx, _parentState); + let _prevctx = localctx; + const _startState = 2094; + this.enterRecursionRule(localctx, 2094, OracleSqlParser.RULE_concatenation, _p); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18153; + this.model_expression(); + this.state = 18162; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2515,this._ctx); + if(la_===1) { + this.state = 18154; + this.match(OracleSqlParser.AT); + this.state = 18159; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 871: + this.state = 18155; + this.match(OracleSqlParser.LOCAL); + break; + case 2110: + this.state = 18156; + this.match(OracleSqlParser.TIME); + this.state = 18157; + this.match(OracleSqlParser.ZONE); + this.state = 18158; + this.concatenation(0); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } else if(la_===2) { + this.state = 18161; + this.interval_expression(); + + } + this.state = 18167; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2516,this._ctx); + if(la_===1) { + this.state = 18164; + this.match(OracleSqlParser.ON); + this.state = 18165; + this.match(OracleSqlParser.OVERFLOW_); + this.state = 18166; + _la = this._input.LA(1); + if(!(_la===518 || _la===2157)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this._ctx.stop = this._input.LT(-1); + this.state = 18187; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2518,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + this.state = 18185; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2517,this._ctx); + switch(la_) { + case 1: + localctx = new ConcatenationContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_concatenation); + this.state = 18169; + if (!( this.precpred(this._ctx, 5))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)"); + } + this.state = 18170; + localctx.op = this.match(OracleSqlParser.DOUBLE_ASTERISK); + this.state = 18171; + this.concatenation(6); + break; + + case 2: + localctx = new ConcatenationContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_concatenation); + this.state = 18172; + if (!( this.precpred(this._ctx, 4))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 4)"); + } + this.state = 18173; + localctx.op = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===979 || _la===2448 || _la===2452)) { + localctx.op = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18174; + this.concatenation(5); + break; + + case 3: + localctx = new ConcatenationContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_concatenation); + this.state = 18175; + if (!( this.precpred(this._ctx, 3))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); + } + this.state = 18176; + localctx.op = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===2449 || _la===2450)) { + localctx.op = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18177; + this.concatenation(4); + break; + + case 4: + localctx = new ConcatenationContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_concatenation); + this.state = 18178; + if (!( this.precpred(this._ctx, 2))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); + } + this.state = 18179; + this.match(OracleSqlParser.BAR); + this.state = 18180; + this.match(OracleSqlParser.BAR); + this.state = 18181; + this.concatenation(3); + break; + + case 5: + localctx = new ConcatenationContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_concatenation); + this.state = 18182; + if (!( this.precpred(this._ctx, 1))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + } + this.state = 18183; + this.match(OracleSqlParser.COLLATE); + this.state = 18184; + this.column_collation_name(); + break; + + } + } + this.state = 18189; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2518,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; + } + + + + interval_expression() { + let localctx = new Interval_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2096, OracleSqlParser.RULE_interval_expression); + var _la = 0; + try { + this.state = 18217; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2522,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 18190; + this.match(OracleSqlParser.DAY); + this.state = 18195; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 18191; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18192; + this.concatenation(0); + this.state = 18193; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 18197; + this.match(OracleSqlParser.TO); + this.state = 18198; + this.match(OracleSqlParser.SECOND); + this.state = 18203; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2520,this._ctx); + if(la_===1) { + this.state = 18199; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18200; + this.concatenation(0); + this.state = 18201; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 18205; + this.match(OracleSqlParser.YEAR); + this.state = 18210; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 18206; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18207; + this.concatenation(0); + this.state = 18208; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 18212; + this.match(OracleSqlParser.TO); + this.state = 18213; + this.match(OracleSqlParser.MONTH); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 18214; + this.concatenation(0); + this.state = 18215; + _la = this._input.LA(1); + if(!(_la===363 || _la===983 || _la===1634 || _la===2356)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + model_expression() { + let localctx = new Model_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2098, OracleSqlParser.RULE_model_expression); + try { + this.enterOuterAlt(localctx, 1); + this.state = 18219; + this.unary_expression(0); + this.state = 18224; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2523,this._ctx); + if(la_===1) { + this.state = 18220; + this.match(OracleSqlParser.LEFT_BRACKET); + this.state = 18221; + this.model_expression_element(); + this.state = 18222; + this.match(OracleSqlParser.RIGHT_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + model_expression_element() { + let localctx = new Model_expression_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2100, OracleSqlParser.RULE_model_expression_element); + var _la = 0; + try { + this.state = 18249; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2528,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 18228; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2524,this._ctx); + switch(la_) { + case 1: + this.state = 18226; + this.match(OracleSqlParser.ANY); + break; + + case 2: + this.state = 18227; + this.expression(); + break; + + } + this.state = 18237; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 18230; + this.match(OracleSqlParser.COMMA); + this.state = 18233; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2525,this._ctx); + switch(la_) { + case 1: + this.state = 18231; + this.match(OracleSqlParser.ANY); + break; + + case 2: + this.state = 18232; + this.expression(); + break; + + } + this.state = 18239; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 18240; + this.single_column_for_loop(); + this.state = 18245; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 18241; + this.match(OracleSqlParser.COMMA); + this.state = 18242; + this.single_column_for_loop(); + this.state = 18247; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 18248; + this.multi_column_for_loop(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + single_column_for_loop() { + let localctx = new Single_column_for_loopContext(this, this._ctx, this.state); + this.enterRule(localctx, 2102, OracleSqlParser.RULE_single_column_for_loop); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18251; + this.match(OracleSqlParser.FOR); + this.state = 18252; + this.column_name(); + this.state = 18270; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 736: + this.state = 18253; + this.match(OracleSqlParser.IN); + this.state = 18254; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18256; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160747519) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 18255; + this.expressions_(); + } + + this.state = 18258; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 626: + case 855: + this.state = 18261; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===855) { + this.state = 18259; + this.match(OracleSqlParser.LIKE); + this.state = 18260; + this.expression(); + } + + this.state = 18263; + this.match(OracleSqlParser.FROM); + this.state = 18264; + localctx.fromExpr = this.expression(); + this.state = 18265; + this.match(OracleSqlParser.TO); + this.state = 18266; + localctx.toExpr = this.expression(); + this.state = 18267; + localctx.action_type = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===384 || _la===705)) { + localctx.action_type = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18268; + localctx.action_expr = this.expression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + multi_column_for_loop() { + let localctx = new Multi_column_for_loopContext(this, this._ctx, this.state); + this.enterRule(localctx, 2104, OracleSqlParser.RULE_multi_column_for_loop); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18272; + this.match(OracleSqlParser.FOR); + this.state = 18273; + this.paren_column_list(); + this.state = 18274; + this.match(OracleSqlParser.IN); + this.state = 18275; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18282; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2533,this._ctx); + switch(la_) { + case 1: + this.state = 18276; + this.subquery(); + break; + + case 2: + this.state = 18277; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18279; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160747519) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 18278; + this.expressions_(); + } + + this.state = 18281; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + this.state = 18284; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + unary_expression(_p) { + if(_p===undefined) { + _p = 0; + } + const _parentctx = this._ctx; + const _parentState = this.state; + let localctx = new Unary_expressionContext(this, this._ctx, _parentState); + let _prevctx = localctx; + const _startState = 2106; + this.enterRecursionRule(localctx, 2106, OracleSqlParser.RULE_unary_expression, _p); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18304; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2534,this._ctx); + switch(la_) { + case 1: + this.state = 18287; + _la = this._input.LA(1); + if(!(_la===2449 || _la===2450)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18288; + this.unary_expression(12); + break; + + case 2: + this.state = 18289; + this.match(OracleSqlParser.PRIOR); + this.state = 18290; + this.unary_expression(11); + break; + + case 3: + this.state = 18291; + this.match(OracleSqlParser.CONNECT_BY_ROOT); + this.state = 18292; + this.unary_expression(10); + break; + + case 4: + this.state = 18293; + this.match(OracleSqlParser.NEW); + this.state = 18294; + this.unary_expression(9); + break; + + case 5: + this.state = 18295; + this.match(OracleSqlParser.DISTINCT); + this.state = 18296; + this.unary_expression(8); + break; + + case 6: + this.state = 18297; + this.match(OracleSqlParser.ALL); + this.state = 18298; + this.unary_expression(7); + break; + + case 7: + this.state = 18299; + this.case_expression(); + break; + + case 8: + this.state = 18300; + this.quantified_expression(); + break; + + case 9: + this.state = 18301; + this.standard_function(); + break; + + case 10: + this.state = 18302; + this.atom(); + break; + + case 11: + this.state = 18303; + this.implicit_cursor_expression(); + break; + + } + this._ctx.stop = this._input.LT(-1); + this.state = 18318; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2536,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + localctx = new Unary_expressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_unary_expression); + this.state = 18306; + if (!( this.precpred(this._ctx, 5))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)"); + } + this.state = 18307; + this.match(OracleSqlParser.PERIOD); + this.state = 18314; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 311: + case 596: + case 823: + case 856: + this.state = 18308; + _la = this._input.LA(1); + if(!(_la===311 || _la===596 || _la===823 || _la===856)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 543: + case 1023: + case 1452: + this.state = 18309; + _la = this._input.LA(1); + if(!(_la===543 || _la===1023 || _la===1452)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18310; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18311; + localctx._expression = this.expression(); + localctx.index.push(localctx._expression); + this.state = 18312; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 18320; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2536,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; + } + + + + implicit_cursor_expression() { + let localctx = new Implicit_cursor_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2108, OracleSqlParser.RULE_implicit_cursor_expression); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18321; + this.match(OracleSqlParser.SQL); + this.state = 18338; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1382: + this.state = 18322; + this.match(OracleSqlParser.PERCENT_BULK_ROWCOUNT); + this.state = 18323; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18324; + localctx.index = this.expression(); + this.state = 18325; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1381: + this.state = 18327; + this.match(OracleSqlParser.PERCENT_BULK_EXCEPTIONS); + this.state = 18336; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2438: + this.state = 18328; + this.match(OracleSqlParser.PERIOD); + this.state = 18329; + this.match(OracleSqlParser.COUNT); + break; + case 2445: + this.state = 18330; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18331; + this.expression(); + this.state = 18332; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 18333; + this.match(OracleSqlParser.PERIOD); + this.state = 18334; + _la = this._input.LA(1); + if(!(_la===521 || _la===522)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + collection_expression() { + let localctx = new Collection_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2110, OracleSqlParser.RULE_collection_expression); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18340; + this.collation_name(); + this.state = 18341; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18342; + this.expression(); + this.state = 18343; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 18348; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2438) { + this.state = 18344; + this.match(OracleSqlParser.PERIOD); + this.state = 18345; + this.general_element_part(); + this.state = 18350; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + case_statement() { + let localctx = new Case_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2112, OracleSqlParser.RULE_case_statement); + try { + this.state = 18353; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2540,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 18351; + this.searched_case_statement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 18352; + this.simple_case_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + simple_case_statement() { + let localctx = new Simple_case_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2114, OracleSqlParser.RULE_simple_case_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18356; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2465) { + this.state = 18355; + this.label_declaration(); + } + + this.state = 18358; + localctx.ck1 = this.match(OracleSqlParser.CASE); + this.state = 18359; + this.expression(); + this.state = 18361; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 18360; + this.case_when_part_statement(); + this.state = 18363; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2298); + this.state = 18366; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===489) { + this.state = 18365; + this.case_else_part_statement(); + } + + this.state = 18368; + this.match(OracleSqlParser.END); + this.state = 18370; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2544,this._ctx); + if(la_===1) { + this.state = 18369; + this.match(OracleSqlParser.CASE); + + } + this.state = 18373; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 18372; + this.label_name(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + searched_case_statement() { + let localctx = new Searched_case_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2116, OracleSqlParser.RULE_searched_case_statement); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18376; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2465) { + this.state = 18375; + this.label_declaration(); + } + + this.state = 18378; + localctx.ck1 = this.match(OracleSqlParser.CASE); + this.state = 18380; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 18379; + this.case_when_part_statement(); + this.state = 18382; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2298); + this.state = 18385; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===489) { + this.state = 18384; + this.case_else_part_statement(); + } + + this.state = 18387; + this.match(OracleSqlParser.END); + this.state = 18389; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2549,this._ctx); + if(la_===1) { + this.state = 18388; + this.match(OracleSqlParser.CASE); + + } + this.state = 18392; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 2290089983) !== 0) || _la===2478) { + this.state = 18391; + this.label_name(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + case_when_part_statement() { + let localctx = new Case_when_part_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2118, OracleSqlParser.RULE_case_when_part_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 18394; + this.match(OracleSqlParser.WHEN); + this.state = 18395; + this.expression(); + this.state = 18396; + this.match(OracleSqlParser.THEN); + this.state = 18397; + this.seq_of_statements(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + case_else_part_statement() { + let localctx = new Case_else_part_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2120, OracleSqlParser.RULE_case_else_part_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 18399; + this.match(OracleSqlParser.ELSE); + this.state = 18400; + this.seq_of_statements(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + case_expression() { + let localctx = new Case_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2122, OracleSqlParser.RULE_case_expression); + try { + this.state = 18404; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2551,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 18402; + this.searched_case_expression(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 18403; + this.simple_case_expression(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + simple_case_expression() { + let localctx = new Simple_case_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2124, OracleSqlParser.RULE_simple_case_expression); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18406; + localctx.ck1 = this.match(OracleSqlParser.CASE); + this.state = 18407; + this.expression(); + this.state = 18409; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 18408; + this.case_when_part_expression(); + this.state = 18411; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2298); + this.state = 18414; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===489) { + this.state = 18413; + this.case_else_part_expression(); + } + + this.state = 18416; + this.match(OracleSqlParser.END); + this.state = 18418; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2554,this._ctx); + if(la_===1) { + this.state = 18417; + this.match(OracleSqlParser.CASE); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + searched_case_expression() { + let localctx = new Searched_case_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2126, OracleSqlParser.RULE_searched_case_expression); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18420; + localctx.ck1 = this.match(OracleSqlParser.CASE); + this.state = 18422; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 18421; + this.case_when_part_expression(); + this.state = 18424; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===2298); + this.state = 18427; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===489) { + this.state = 18426; + this.case_else_part_expression(); + } + + this.state = 18429; + this.match(OracleSqlParser.END); + this.state = 18431; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2557,this._ctx); + if(la_===1) { + this.state = 18430; + this.match(OracleSqlParser.CASE); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + case_when_part_expression() { + let localctx = new Case_when_part_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2128, OracleSqlParser.RULE_case_when_part_expression); + try { + this.enterOuterAlt(localctx, 1); + this.state = 18433; + this.match(OracleSqlParser.WHEN); + this.state = 18434; + this.expression(); + this.state = 18435; + this.match(OracleSqlParser.THEN); + this.state = 18436; + this.expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + case_else_part_expression() { + let localctx = new Case_else_part_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2130, OracleSqlParser.RULE_case_else_part_expression); + try { + this.enterOuterAlt(localctx, 1); + this.state = 18438; + this.match(OracleSqlParser.ELSE); + this.state = 18439; + this.expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + atom() { + let localctx = new AtomContext(this, this._ctx, this.state); + this.enterRule(localctx, 2132, OracleSqlParser.RULE_atom); + try { + this.state = 18461; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2560,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 18441; + this.bind_variable(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 18442; + this.constant(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 18443; + this.inquiry_directive(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 18444; + this.general_element(0); + this.state = 18446; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2558,this._ctx); + if(la_===1) { + this.state = 18445; + this.outer_join_sign(); + + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 18448; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18449; + this.subquery(); + this.state = 18450; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 18454; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2559,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 18451; + this.subquery_operation_part(); + } + this.state = 18456; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2559,this._ctx); + } + + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 18457; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18458; + this.expressions_(); + this.state = 18459; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + quantified_expression() { + let localctx = new Quantified_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2134, OracleSqlParser.RULE_quantified_expression); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18463; + _la = this._input.LA(1); + if(!(_la===38 || _la===55 || _la===543 || _la===1706)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18479; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2562,this._ctx); + switch(la_) { + case 1: + this.state = 18464; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18465; + this.select_only_statement(); + this.state = 18466; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.state = 18468; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18469; + this.expression(); + this.state = 18474; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 18470; + this.match(OracleSqlParser.COMMA); + this.state = 18471; + this.expression(); + this.state = 18476; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 18477; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + string_function() { + let localctx = new String_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2136, OracleSqlParser.RULE_string_function); + var _la = 0; + try { + this.state = 18567; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2414: + this.enterOuterAlt(localctx, 1); + this.state = 18481; + this.match(OracleSqlParser.SUBSTR); + this.state = 18482; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18483; + this.expression(); + this.state = 18484; + this.match(OracleSqlParser.COMMA); + this.state = 18485; + this.expression(); + this.state = 18488; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 18486; + this.match(OracleSqlParser.COMMA); + this.state = 18487; + this.expression(); + } + + this.state = 18490; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2415: + this.enterOuterAlt(localctx, 2); + this.state = 18492; + this.match(OracleSqlParser.TO_CHAR); + this.state = 18493; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18497; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2564,this._ctx); + switch(la_) { + case 1: + this.state = 18494; + this.table_element(); + break; + + case 2: + this.state = 18495; + this.standard_function(); + break; + + case 3: + this.state = 18496; + this.expression(); + break; + + } + this.state = 18501; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2565,this._ctx); + if(la_===1) { + this.state = 18499; + this.match(OracleSqlParser.COMMA); + this.state = 18500; + this.quoted_string(); + + } + this.state = 18505; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 18503; + this.match(OracleSqlParser.COMMA); + this.state = 18504; + this.quoted_string(); + } + + this.state = 18507; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2399: + this.enterOuterAlt(localctx, 3); + this.state = 18509; + this.match(OracleSqlParser.DECODE); + this.state = 18510; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18511; + this.expressions_(); + this.state = 18512; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 204: + this.enterOuterAlt(localctx, 4); + this.state = 18514; + this.match(OracleSqlParser.CHR); + this.state = 18515; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18516; + this.concatenation(0); + this.state = 18517; + this.match(OracleSqlParser.USING); + this.state = 18518; + this.match(OracleSqlParser.NCHAR_CS); + this.state = 18519; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2409: + this.enterOuterAlt(localctx, 5); + this.state = 18521; + this.match(OracleSqlParser.NVL); + this.state = 18522; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18523; + this.expression(); + this.state = 18524; + this.match(OracleSqlParser.COMMA); + this.state = 18525; + this.expression(); + this.state = 18526; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2416: + this.enterOuterAlt(localctx, 6); + this.state = 18528; + this.match(OracleSqlParser.TRIM); + this.state = 18529; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18537; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2569,this._ctx); + if(la_===1) { + this.state = 18531; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2567,this._ctx); + if(la_===1) { + this.state = 18530; + _la = this._input.LA(1); + if(!(_la===149 || _la===836 || _la===2144)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 18534; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160747519) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 18533; + this.expression(); + } + + this.state = 18536; + this.match(OracleSqlParser.FROM); + + } + this.state = 18539; + this.concatenation(0); + this.state = 18540; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2423: + this.enterOuterAlt(localctx, 7); + this.state = 18542; + this.match(OracleSqlParser.TO_DATE); + this.state = 18543; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18547; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2570,this._ctx); + switch(la_) { + case 1: + this.state = 18544; + this.table_element(); + break; + + case 2: + this.state = 18545; + this.standard_function(); + break; + + case 3: + this.state = 18546; + this.expression(); + break; + + } + this.state = 18555; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 18549; + this.match(OracleSqlParser.DEFAULT); + this.state = 18550; + this.concatenation(0); + this.state = 18551; + this.match(OracleSqlParser.ON); + this.state = 18552; + this.match(OracleSqlParser.CONVERSION); + this.state = 18553; + this.match(OracleSqlParser.ERROR); + } + + this.state = 18563; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 18557; + this.match(OracleSqlParser.COMMA); + this.state = 18558; + this.quoted_string(); + this.state = 18561; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 18559; + this.match(OracleSqlParser.COMMA); + this.state = 18560; + this.quoted_string(); + } + + } + + this.state = 18565; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + standard_function() { + let localctx = new Standard_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2138, OracleSqlParser.RULE_standard_function); + try { + this.state = 18573; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2575,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 18569; + this.string_function(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 18570; + this.numeric_function_wrapper(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 18571; + this.json_function(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 18572; + this.other_function(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_function() { + let localctx = new Json_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2140, OracleSqlParser.RULE_json_function); + var _la = 0; + try { + this.state = 18763; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 794: + this.enterOuterAlt(localctx, 1); + this.state = 18575; + this.match(OracleSqlParser.JSON_ARRAY); + this.state = 18576; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18577; + this.json_array_element(); + this.state = 18582; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 18578; + this.match(OracleSqlParser.COMMA); + this.state = 18579; + this.json_array_element(); + this.state = 18584; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 18586; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===3 || _la===1226) { + this.state = 18585; + this.json_on_null_clause(); + } + + this.state = 18589; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1583) { + this.state = 18588; + this.json_return_clause(); + } + + this.state = 18592; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1764) { + this.state = 18591; + this.match(OracleSqlParser.STRICT); + } + + this.state = 18594; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 793: + this.enterOuterAlt(localctx, 2); + this.state = 18596; + this.match(OracleSqlParser.JSON_ARRAYAGG); + this.state = 18597; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18598; + this.expression(); + this.state = 18601; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===619) { + this.state = 18599; + this.match(OracleSqlParser.FORMAT); + this.state = 18600; + this.match(OracleSqlParser.JSON); + } + + this.state = 18604; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1301) { + this.state = 18603; + this.order_by_clause(); + } + + this.state = 18607; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===3 || _la===1226) { + this.state = 18606; + this.json_on_null_clause(); + } + + this.state = 18610; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1583) { + this.state = 18609; + this.json_return_clause(); + } + + this.state = 18613; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1764) { + this.state = 18612; + this.match(OracleSqlParser.STRICT); + } + + this.state = 18615; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 801: + this.enterOuterAlt(localctx, 3); + this.state = 18617; + this.match(OracleSqlParser.JSON_OBJECT); + this.state = 18618; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18619; + this.json_object_content(); + this.state = 18620; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 800: + this.enterOuterAlt(localctx, 4); + this.state = 18622; + this.match(OracleSqlParser.JSON_OBJECTAGG); + this.state = 18623; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18625; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2585,this._ctx); + if(la_===1) { + this.state = 18624; + this.match(OracleSqlParser.KEY); + + } + this.state = 18627; + this.expression(); + this.state = 18628; + this.match(OracleSqlParser.VALUE); + this.state = 18629; + this.expression(); + this.state = 18633; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===3 || _la===1226) { + this.state = 18630; + _la = this._input.LA(1); + if(!(_la===3 || _la===1226)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18631; + this.match(OracleSqlParser.ON); + this.state = 18632; + this.match(OracleSqlParser.NULL_); + } + + this.state = 18649; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1583) { + this.state = 18635; + this.match(OracleSqlParser.RETURNING); + this.state = 18647; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2257: + this.state = 18636; + this.match(OracleSqlParser.VARCHAR2); + this.state = 18643; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 18637; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18638; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 18640; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===163 || _la===196) { + this.state = 18639; + _la = this._input.LA(1); + if(!(_la===163 || _la===196)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 18642; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + case 215: + this.state = 18645; + this.match(OracleSqlParser.CLOB); + break; + case 142: + this.state = 18646; + this.match(OracleSqlParser.BLOB); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 18652; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1764) { + this.state = 18651; + this.match(OracleSqlParser.STRICT); + } + + this.state = 18657; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 18654; + this.match(OracleSqlParser.WITH); + this.state = 18655; + this.match(OracleSqlParser.UNIQUE); + this.state = 18656; + this.match(OracleSqlParser.KEYS); + } + + this.state = 18659; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 803: + this.enterOuterAlt(localctx, 5); + this.state = 18661; + this.match(OracleSqlParser.JSON_QUERY); + this.state = 18662; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18663; + this.expression(); + this.state = 18666; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===619) { + this.state = 18664; + this.match(OracleSqlParser.FORMAT); + this.state = 18665; + this.match(OracleSqlParser.JSON); + } + + this.state = 18668; + this.match(OracleSqlParser.COMMA); + this.state = 18669; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 18670; + this.json_query_returning_clause(); + this.state = 18672; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2304 || _la===2306) { + this.state = 18671; + this.json_query_wrapper_clause(); + } + + this.state = 18675; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2595,this._ctx); + if(la_===1) { + this.state = 18674; + this.json_query_on_error_clause(); + + } + this.state = 18678; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===495 || _la===518 || _la===1226 || _la===1257) { + this.state = 18677; + this.json_query_on_empty_clause(); + } + + this.state = 18680; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 804: + this.enterOuterAlt(localctx, 6); + this.state = 18682; + this.match(OracleSqlParser.JSON_SERIALIZE); + this.state = 18683; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18684; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 18687; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1583) { + this.state = 18685; + this.match(OracleSqlParser.RETURNING); + this.state = 18686; + this.json_query_return_type(); + } + + this.state = 18690; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1446) { + this.state = 18689; + this.match(OracleSqlParser.PRETTY); + } + + this.state = 18693; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===71) { + this.state = 18692; + this.match(OracleSqlParser.ASCII); + } + + this.state = 18696; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2157) { + this.state = 18695; + this.match(OracleSqlParser.TRUNCATE); + } + + this.state = 18706; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===495 || _la===518 || _la===1226) { + this.state = 18702; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1226: + this.state = 18698; + this.match(OracleSqlParser.NULL_); + break; + case 518: + this.state = 18699; + this.match(OracleSqlParser.ERROR); + break; + case 495: + this.state = 18700; + this.match(OracleSqlParser.EMPTY_); + this.state = 18701; + _la = this._input.LA(1); + if(!(_la===68 || _la===1236)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 18704; + this.match(OracleSqlParser.ON); + this.state = 18705; + this.match(OracleSqlParser.ERROR); + } + + this.state = 18708; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 808: + this.enterOuterAlt(localctx, 7); + this.state = 18709; + this.match(OracleSqlParser.JSON_TRANSFORM); + this.state = 18710; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18711; + this.expression(); + this.state = 18712; + this.match(OracleSqlParser.COMMA); + this.state = 18713; + this.json_transform_op(); + this.state = 18718; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 18714; + this.match(OracleSqlParser.COMMA); + this.state = 18715; + this.json_transform_op(); + this.state = 18720; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 18721; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 809: + this.enterOuterAlt(localctx, 8); + this.state = 18723; + this.match(OracleSqlParser.JSON_VALUE); + this.state = 18724; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18725; + this.expression(); + this.state = 18728; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2604,this._ctx); + if(la_===1) { + this.state = 18726; + this.match(OracleSqlParser.FORMAT); + this.state = 18727; + this.match(OracleSqlParser.JSON); + + } + this.state = 18761; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2612,this._ctx); + if(la_===1) { + this.state = 18730; + this.match(OracleSqlParser.COMMA); + this.state = 18732; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2441) { + this.state = 18731; + this.match(OracleSqlParser.CHAR_STRING); + } + + this.state = 18735; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1583) { + this.state = 18734; + this.json_value_return_clause(); + } + + this.state = 18745; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2608,this._ctx); + if(la_===1) { + this.state = 18741; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 518: + this.state = 18737; + this.match(OracleSqlParser.ERROR); + break; + case 1226: + this.state = 18738; + this.match(OracleSqlParser.NULL_); + break; + case 387: + this.state = 18739; + this.match(OracleSqlParser.DEFAULT); + this.state = 18740; + this.literal(); + break; + case 1257: + break; + default: + break; + } + this.state = 18743; + this.match(OracleSqlParser.ON); + this.state = 18744; + this.match(OracleSqlParser.ERROR); + + } + this.state = 18755; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2610,this._ctx); + if(la_===1) { + this.state = 18751; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 518: + this.state = 18747; + this.match(OracleSqlParser.ERROR); + break; + case 1226: + this.state = 18748; + this.match(OracleSqlParser.NULL_); + break; + case 387: + this.state = 18749; + this.match(OracleSqlParser.DEFAULT); + this.state = 18750; + this.literal(); + break; + case 1257: + break; + default: + break; + } + this.state = 18753; + this.match(OracleSqlParser.ON); + this.state = 18754; + this.match(OracleSqlParser.EMPTY_); + + } + this.state = 18758; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===518 || _la===690 || _la===1226) { + this.state = 18757; + this.json_value_on_mismatch_clause(); + } + + this.state = 18760; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_object_content() { + let localctx = new Json_object_contentContext(this, this._ctx, this.state); + this.enterRule(localctx, 2142, OracleSqlParser.RULE_json_object_content); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18774; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 359: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 387: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 443: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1202: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1226: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1452: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2399: + case 2400: + case 2401: + case 2402: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2434: + case 2438: + case 2439: + case 2440: + case 2441: + case 2442: + case 2445: + case 2449: + case 2450: + case 2459: + case 2466: + case 2472: + case 2478: + case 2479: + this.state = 18765; + this.json_object_entry(); + this.state = 18770; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 18766; + this.match(OracleSqlParser.COMMA); + this.state = 18767; + this.json_object_entry(); + this.state = 18772; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case 2448: + this.state = 18773; + this.match(OracleSqlParser.ASTERISK); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 18777; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===3 || _la===1226) { + this.state = 18776; + this.json_on_null_clause(); + } + + this.state = 18780; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1583) { + this.state = 18779; + this.json_return_clause(); + } + + this.state = 18783; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1764) { + this.state = 18782; + this.match(OracleSqlParser.STRICT); + } + + this.state = 18788; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 18785; + this.match(OracleSqlParser.WITH); + this.state = 18786; + this.match(OracleSqlParser.UNIQUE); + this.state = 18787; + this.match(OracleSqlParser.KEYS); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_object_entry() { + let localctx = new Json_object_entryContext(this, this._ctx, this.state); + this.enterRule(localctx, 2144, OracleSqlParser.RULE_json_object_entry); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18804; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2622,this._ctx); + switch(la_) { + case 1: + this.state = 18791; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2620,this._ctx); + if(la_===1) { + this.state = 18790; + this.match(OracleSqlParser.KEY); + + } + this.state = 18793; + this.expression(); + this.state = 18795; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2621,this._ctx); + if(la_===1) { + this.state = 18794; + _la = this._input.LA(1); + if(!(_la===783 || _la===2256)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 18797; + this.expression(); + break; + + case 2: + this.state = 18799; + this.expression(); + this.state = 18800; + this.match(OracleSqlParser.COLON); + this.state = 18801; + this.expression(); + break; + + case 3: + this.state = 18803; + this.identifier(); + break; + + } + this.state = 18808; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===619) { + this.state = 18806; + this.match(OracleSqlParser.FORMAT); + this.state = 18807; + this.match(OracleSqlParser.JSON); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_table_clause() { + let localctx = new Json_table_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2146, OracleSqlParser.RULE_json_table_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18810; + this.match(OracleSqlParser.JSON_TABLE); + this.state = 18811; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18812; + this.expression(); + this.state = 18815; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===619) { + this.state = 18813; + this.match(OracleSqlParser.FORMAT); + this.state = 18814; + this.match(OracleSqlParser.JSON); + } + + this.state = 18819; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 18817; + this.match(OracleSqlParser.COMMA); + this.state = 18818; + this.match(OracleSqlParser.CHAR_STRING); + } + + this.state = 18824; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2626,this._ctx); + if(la_===1) { + this.state = 18821; + _la = this._input.LA(1); + if(!(_la===518 || _la===1226)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18822; + this.match(OracleSqlParser.ON); + this.state = 18823; + this.match(OracleSqlParser.ERROR); + + } + this.state = 18829; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===495 || _la===1226) { + this.state = 18826; + _la = this._input.LA(1); + if(!(_la===495 || _la===1226)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18827; + this.match(OracleSqlParser.ON); + this.state = 18828; + this.match(OracleSqlParser.EMPTY_); + } + + this.state = 18832; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===238) { + this.state = 18831; + this.json_column_clause(); + } + + this.state = 18834; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_array_element() { + let localctx = new Json_array_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2148, OracleSqlParser.RULE_json_array_element); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18841; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2629,this._ctx); + switch(la_) { + case 1: + this.state = 18836; + this.expression(); + break; + + case 2: + this.state = 18837; + this.match(OracleSqlParser.CHAR_STRING); + break; + + case 3: + this.state = 18838; + this.match(OracleSqlParser.NULL_); + break; + + case 4: + this.state = 18839; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + + case 5: + this.state = 18840; + this.json_function(); + break; + + } + this.state = 18845; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===619) { + this.state = 18843; + this.match(OracleSqlParser.FORMAT); + this.state = 18844; + this.match(OracleSqlParser.JSON); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_on_null_clause() { + let localctx = new Json_on_null_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2150, OracleSqlParser.RULE_json_on_null_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18847; + _la = this._input.LA(1); + if(!(_la===3 || _la===1226)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18848; + this.match(OracleSqlParser.ON); + this.state = 18849; + this.match(OracleSqlParser.NULL_); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_return_clause() { + let localctx = new Json_return_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2152, OracleSqlParser.RULE_json_return_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18851; + this.match(OracleSqlParser.RETURNING); + this.state = 18863; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2257: + this.state = 18852; + this.match(OracleSqlParser.VARCHAR2); + this.state = 18859; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 18853; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18854; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 18856; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===163 || _la===196) { + this.state = 18855; + _la = this._input.LA(1); + if(!(_la===163 || _la===196)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 18858; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + case 215: + this.state = 18861; + this.match(OracleSqlParser.CLOB); + break; + case 142: + this.state = 18862; + this.match(OracleSqlParser.BLOB); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_transform_op() { + let localctx = new Json_transform_opContext(this, this._ctx, this.state); + this.enterRule(localctx, 2154, OracleSqlParser.RULE_json_transform_op); + var _la = 0; + try { + this.state = 18952; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2651,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 18865; + this.match(OracleSqlParser.REMOVE); + this.state = 18866; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 18872; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===518 || _la===690 || _la===1257) { + this.state = 18868; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===518 || _la===690) { + this.state = 18867; + _la = this._input.LA(1); + if(!(_la===518 || _la===690)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 18870; + this.match(OracleSqlParser.ON); + this.state = 18871; + this.match(OracleSqlParser.MISSING); + } + + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 18874; + this.match(OracleSqlParser.INSERT); + this.state = 18875; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 18876; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 18877; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 18881; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2636,this._ctx); + if(la_===1) { + this.state = 18878; + _la = this._input.LA(1); + if(!(_la===518 || _la===690 || _la===1560)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18879; + this.match(OracleSqlParser.ON); + this.state = 18880; + this.match(OracleSqlParser.EXISTING); + + } + this.state = 18888; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===518 || _la===690 || _la===1226 || _la===1257 || _la===1556) { + this.state = 18884; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===518 || _la===690 || _la===1226 || _la===1556) { + this.state = 18883; + _la = this._input.LA(1); + if(!(_la===518 || _la===690 || _la===1226 || _la===1556)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 18886; + this.match(OracleSqlParser.ON); + this.state = 18887; + this.match(OracleSqlParser.NULL_); + } + + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 18890; + this.match(OracleSqlParser.REPLACE); + this.state = 18891; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 18892; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 18893; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 18897; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2639,this._ctx); + if(la_===1) { + this.state = 18894; + _la = this._input.LA(1); + if(!(_la===319 || _la===518 || _la===690)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18895; + this.match(OracleSqlParser.ON); + this.state = 18896; + this.match(OracleSqlParser.MISSING); + + } + this.state = 18904; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===518 || _la===690 || _la===1226 || _la===1257) { + this.state = 18900; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===518 || _la===690 || _la===1226) { + this.state = 18899; + _la = this._input.LA(1); + if(!(_la===518 || _la===690 || _la===1226)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 18902; + this.match(OracleSqlParser.ON); + this.state = 18903; + this.match(OracleSqlParser.NULL_); + } + + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 18906; + this.expression(); + this.state = 18909; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===619) { + this.state = 18907; + this.match(OracleSqlParser.FORMAT); + this.state = 18908; + this.match(OracleSqlParser.JSON); + } + + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 18911; + this.match(OracleSqlParser.APPEND); + this.state = 18912; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 18913; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 18914; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 18918; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2643,this._ctx); + if(la_===1) { + this.state = 18915; + _la = this._input.LA(1); + if(!(_la===319 || _la===518 || _la===690)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18916; + this.match(OracleSqlParser.ON); + this.state = 18917; + this.match(OracleSqlParser.MISSING); + + } + this.state = 18925; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===518 || _la===690 || _la===1226 || _la===1257) { + this.state = 18921; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===518 || _la===690 || _la===1226) { + this.state = 18920; + _la = this._input.LA(1); + if(!(_la===518 || _la===690 || _la===1226)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 18923; + this.match(OracleSqlParser.ON); + this.state = 18924; + this.match(OracleSqlParser.NULL_); + } + + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 18927; + this.match(OracleSqlParser.SET); + this.state = 18928; + this.match(OracleSqlParser.CHAR_STRING); + this.state = 18929; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 18930; + this.expression(); + this.state = 18933; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===619) { + this.state = 18931; + this.match(OracleSqlParser.FORMAT); + this.state = 18932; + this.match(OracleSqlParser.JSON); + } + + this.state = 18938; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2647,this._ctx); + if(la_===1) { + this.state = 18935; + _la = this._input.LA(1); + if(!(_la===518 || _la===690 || _la===1560)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18936; + this.match(OracleSqlParser.ON); + this.state = 18937; + this.match(OracleSqlParser.EXISTING); + + } + this.state = 18943; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2648,this._ctx); + if(la_===1) { + this.state = 18940; + _la = this._input.LA(1); + if(!(_la===319 || _la===518 || _la===690)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 18941; + this.match(OracleSqlParser.ON); + this.state = 18942; + this.match(OracleSqlParser.MISSING); + + } + this.state = 18950; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===518 || _la===690 || _la===1226 || _la===1257) { + this.state = 18946; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===518 || _la===690 || _la===1226) { + this.state = 18945; + _la = this._input.LA(1); + if(!(_la===518 || _la===690 || _la===1226)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 18948; + this.match(OracleSqlParser.ON); + this.state = 18949; + this.match(OracleSqlParser.NULL_); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_column_clause() { + let localctx = new Json_column_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2156, OracleSqlParser.RULE_json_column_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 18954; + this.match(OracleSqlParser.COLUMNS); + this.state = 18955; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 18956; + this.json_column_definition(); + this.state = 18961; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 18957; + this.match(OracleSqlParser.COMMA); + this.state = 18958; + this.json_column_definition(); + this.state = 18963; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 18964; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_column_definition() { + let localctx = new Json_column_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2158, OracleSqlParser.RULE_json_column_definition); + var _la = 0; + try { + this.state = 19019; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2664,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 18966; + this.expression(); + this.state = 18968; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2653,this._ctx); + if(la_===1) { + this.state = 18967; + this.json_value_return_type(); + + } + this.state = 18980; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 543: + case 1361: + this.state = 18971; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===543) { + this.state = 18970; + this.match(OracleSqlParser.EXISTS); + } + + this.state = 18973; + this.match(OracleSqlParser.PATH); + this.state = 18974; + this.match(OracleSqlParser.CHAR_STRING); + break; + case 2157: + this.state = 18975; + this.match(OracleSqlParser.TRUNCATE); + this.state = 18978; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1361) { + this.state = 18976; + this.match(OracleSqlParser.PATH); + this.state = 18977; + this.match(OracleSqlParser.CHAR_STRING); + } + + break; + case 495: + case 518: + case 1226: + case 1257: + case 2446: + case 2451: + break; + default: + break; + } + this.state = 18983; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2657,this._ctx); + if(la_===1) { + this.state = 18982; + this.json_query_on_error_clause(); + + } + this.state = 18986; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===495 || _la===518 || _la===1226 || _la===1257) { + this.state = 18985; + this.json_query_on_empty_clause(); + } + + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 18988; + this.expression(); + this.state = 18990; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===142 || _la===215 || _la===2257) { + this.state = 18989; + this.json_query_return_type(); + } + + this.state = 18993; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2157) { + this.state = 18992; + this.match(OracleSqlParser.TRUNCATE); + } + + this.state = 18995; + this.match(OracleSqlParser.FORMAT); + this.state = 18996; + this.match(OracleSqlParser.JSON); + this.state = 18998; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2304 || _la===2306) { + this.state = 18997; + this.json_query_wrapper_clause(); + } + + this.state = 19000; + this.match(OracleSqlParser.PATH); + this.state = 19001; + this.match(OracleSqlParser.CHAR_STRING); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 19003; + this.match(OracleSqlParser.NESTED); + this.state = 19005; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2662,this._ctx); + if(la_===1) { + this.state = 19004; + this.match(OracleSqlParser.PATH); + + } + this.state = 19007; + this.expression(); + this.state = 19011; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2470) { + this.state = 19008; + this.match(OracleSqlParser.LEFT_BRACKET); + this.state = 19009; + this.match(OracleSqlParser.ASTERISK); + this.state = 19010; + this.match(OracleSqlParser.RIGHT_BRACKET); + } + + this.state = 19013; + this.json_column_clause(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 19015; + this.expression(); + this.state = 19016; + this.match(OracleSqlParser.FOR); + this.state = 19017; + this.match(OracleSqlParser.ORDINALITY); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_query_returning_clause() { + let localctx = new Json_query_returning_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2160, OracleSqlParser.RULE_json_query_returning_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19023; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1583) { + this.state = 19021; + this.match(OracleSqlParser.RETURNING); + this.state = 19022; + this.json_query_return_type(); + } + + this.state = 19026; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1446) { + this.state = 19025; + this.match(OracleSqlParser.PRETTY); + } + + this.state = 19029; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===71) { + this.state = 19028; + this.match(OracleSqlParser.ASCII); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_query_return_type() { + let localctx = new Json_query_return_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 2162, OracleSqlParser.RULE_json_query_return_type); + var _la = 0; + try { + this.state = 19042; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2257: + this.enterOuterAlt(localctx, 1); + this.state = 19031; + this.match(OracleSqlParser.VARCHAR2); + this.state = 19038; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 19032; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19033; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 19035; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===163 || _la===196) { + this.state = 19034; + _la = this._input.LA(1); + if(!(_la===163 || _la===196)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 19037; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + case 215: + this.enterOuterAlt(localctx, 2); + this.state = 19040; + this.match(OracleSqlParser.CLOB); + break; + case 142: + this.enterOuterAlt(localctx, 3); + this.state = 19041; + this.match(OracleSqlParser.BLOB); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_query_wrapper_clause() { + let localctx = new Json_query_wrapper_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2164, OracleSqlParser.RULE_json_query_wrapper_clause); + var _la = 0; + try { + this.state = 19057; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2304: + this.enterOuterAlt(localctx, 1); + this.state = 19044; + this.match(OracleSqlParser.WITHOUT); + this.state = 19046; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===68) { + this.state = 19045; + this.match(OracleSqlParser.ARRAY); + } + + this.state = 19048; + this.match(OracleSqlParser.WRAPPER); + break; + case 2306: + this.enterOuterAlt(localctx, 2); + this.state = 19049; + this.match(OracleSqlParser.WITH); + this.state = 19051; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===263 || _la===2174) { + this.state = 19050; + _la = this._input.LA(1); + if(!(_la===263 || _la===2174)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 19054; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===68) { + this.state = 19053; + this.match(OracleSqlParser.ARRAY); + } + + this.state = 19056; + this.match(OracleSqlParser.WRAPPER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_query_on_error_clause() { + let localctx = new Json_query_on_error_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2166, OracleSqlParser.RULE_json_query_on_error_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19066; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2675,this._ctx); + if(la_===1) { + this.state = 19059; + this.match(OracleSqlParser.ERROR); + + } else if(la_===2) { + this.state = 19060; + this.match(OracleSqlParser.NULL_); + + } else if(la_===3) { + this.state = 19061; + this.match(OracleSqlParser.EMPTY_); + + } else if(la_===4) { + this.state = 19062; + this.match(OracleSqlParser.EMPTY_); + this.state = 19063; + this.match(OracleSqlParser.ARRAY); + + } else if(la_===5) { + this.state = 19064; + this.match(OracleSqlParser.EMPTY_); + this.state = 19065; + this.match(OracleSqlParser.OBJECT); + + } + this.state = 19068; + this.match(OracleSqlParser.ON); + this.state = 19069; + this.match(OracleSqlParser.ERROR); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_query_on_empty_clause() { + let localctx = new Json_query_on_empty_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2168, OracleSqlParser.RULE_json_query_on_empty_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19078; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2676,this._ctx); + if(la_===1) { + this.state = 19071; + this.match(OracleSqlParser.ERROR); + + } else if(la_===2) { + this.state = 19072; + this.match(OracleSqlParser.NULL_); + + } else if(la_===3) { + this.state = 19073; + this.match(OracleSqlParser.EMPTY_); + + } else if(la_===4) { + this.state = 19074; + this.match(OracleSqlParser.EMPTY_); + this.state = 19075; + this.match(OracleSqlParser.ARRAY); + + } else if(la_===5) { + this.state = 19076; + this.match(OracleSqlParser.EMPTY_); + this.state = 19077; + this.match(OracleSqlParser.OBJECT); + + } + this.state = 19080; + this.match(OracleSqlParser.ON); + this.state = 19081; + this.match(OracleSqlParser.EMPTY_); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_value_return_clause() { + let localctx = new Json_value_return_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2170, OracleSqlParser.RULE_json_value_return_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19083; + this.match(OracleSqlParser.RETURNING); + this.state = 19085; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2677,this._ctx); + if(la_===1) { + this.state = 19084; + this.json_value_return_type(); + + } + this.state = 19088; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===71) { + this.state = 19087; + this.match(OracleSqlParser.ASCII); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_value_return_type() { + let localctx = new Json_value_return_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 2172, OracleSqlParser.RULE_json_value_return_type); + var _la = 0; + try { + this.state = 19126; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2686,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 19090; + this.match(OracleSqlParser.VARCHAR2); + this.state = 19097; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 19091; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19092; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 19094; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===163 || _la===196) { + this.state = 19093; + _la = this._input.LA(1); + if(!(_la===163 || _la===196)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 19096; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 19100; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2681,this._ctx); + if(la_===1) { + this.state = 19099; + this.match(OracleSqlParser.TRUNCATE); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 19102; + this.match(OracleSqlParser.CLOB); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 19103; + this.match(OracleSqlParser.DATE); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 19104; + this.match(OracleSqlParser.NUMBER); + this.state = 19112; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 19105; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19106; + this.match(OracleSqlParser.INTEGER); + this.state = 19109; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 19107; + this.match(OracleSqlParser.COMMA); + this.state = 19108; + this.match(OracleSqlParser.INTEGER); + } + + this.state = 19111; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 19114; + this.match(OracleSqlParser.TIMESTAMP); + this.state = 19117; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2306) { + this.state = 19115; + this.match(OracleSqlParser.WITH); + this.state = 19116; + this.match(OracleSqlParser.TIMEZONE); + } + + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 19119; + this.match(OracleSqlParser.SDO_GEOMETRY); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 19120; + this.expression(); + this.state = 19124; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 19121; + this.match(OracleSqlParser.USING); + this.state = 19122; + this.match(OracleSqlParser.CASESENSITIVE); + this.state = 19123; + this.match(OracleSqlParser.MAPPING); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + json_value_on_mismatch_clause() { + let localctx = new Json_value_on_mismatch_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2174, OracleSqlParser.RULE_json_value_on_mismatch_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19128; + _la = this._input.LA(1); + if(!(_la===518 || _la===690 || _la===1226)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19129; + this.match(OracleSqlParser.ON); + this.state = 19130; + this.match(OracleSqlParser.MISMATCH); + this.state = 19139; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case 2445: + this.state = 19131; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19132; + this.match(OracleSqlParser.MISSING); + this.state = 19133; + this.match(OracleSqlParser.DATA); + break; + case 563: + this.state = 19134; + this.match(OracleSqlParser.EXTRA); + this.state = 19135; + this.match(OracleSqlParser.DATA); + break; + case 2164: + this.state = 19136; + this.match(OracleSqlParser.TYPE); + this.state = 19137; + this.match(OracleSqlParser.ERROR); + this.state = 19138; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2446: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + literal() { + let localctx = new LiteralContext(this, this._ctx, this.state); + this.enterRule(localctx, 2176, OracleSqlParser.RULE_literal); + try { + this.state = 19146; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2441: + this.enterOuterAlt(localctx, 1); + this.state = 19141; + this.match(OracleSqlParser.CHAR_STRING); + break; + case 204: + case 2399: + case 2409: + case 2414: + case 2415: + case 2416: + case 2423: + this.enterOuterAlt(localctx, 2); + this.state = 19142; + this.string_function(); + break; + case 2439: + case 2440: + this.enterOuterAlt(localctx, 3); + this.state = 19143; + this.numeric(); + break; + case 2450: + this.enterOuterAlt(localctx, 4); + this.state = 19144; + this.numeric_negative(); + break; + case 930: + this.enterOuterAlt(localctx, 5); + this.state = 19145; + this.match(OracleSqlParser.MAXVALUE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + numeric_function_wrapper() { + let localctx = new Numeric_function_wrapperContext(this, this._ctx, this.state); + this.enterRule(localctx, 2178, OracleSqlParser.RULE_numeric_function_wrapper); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19148; + this.numeric_function(); + this.state = 19151; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2689,this._ctx); + if(la_===1) { + this.state = 19149; + this.single_column_for_loop(); + + } else if(la_===2) { + this.state = 19150; + this.multi_column_for_loop(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + numeric_function() { + let localctx = new Numeric_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2180, OracleSqlParser.RULE_numeric_function); + var _la = 0; + try { + this.state = 19211; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2417: + this.enterOuterAlt(localctx, 1); + this.state = 19153; + this.match(OracleSqlParser.SUM); + this.state = 19154; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19156; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2690,this._ctx); + if(la_===1) { + this.state = 19155; + _la = this._input.LA(1); + if(!(_la===38 || _la===443)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 19158; + this.expression(); + this.state = 19159; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 311: + this.enterOuterAlt(localctx, 2); + this.state = 19161; + this.match(OracleSqlParser.COUNT); + this.state = 19162; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19170; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2448: + this.state = 19163; + this.match(OracleSqlParser.ASTERISK); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 359: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 387: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 443: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1226: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1452: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2181: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2399: + case 2400: + case 2401: + case 2402: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2434: + case 2438: + case 2439: + case 2440: + case 2441: + case 2442: + case 2445: + case 2446: + case 2449: + case 2450: + case 2459: + case 2466: + case 2472: + case 2478: + case 2479: + this.state = 19168; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 4093640703) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 19165; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2691,this._ctx); + if(la_===1) { + this.state = 19164; + _la = this._input.LA(1); + if(!(_la===38 || _la===443 || _la===2181)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 19167; + this.concatenation(0); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 19172; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19174; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2694,this._ctx); + if(la_===1) { + this.state = 19173; + this.over_clause(); + + } + break; + case 2412: + this.enterOuterAlt(localctx, 3); + this.state = 19176; + this.match(OracleSqlParser.ROUND); + this.state = 19177; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19178; + this.expression(); + this.state = 19181; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 19179; + this.match(OracleSqlParser.COMMA); + this.state = 19180; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + } + + this.state = 19183; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2396: + this.enterOuterAlt(localctx, 4); + this.state = 19185; + this.match(OracleSqlParser.AVG); + this.state = 19186; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19188; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2696,this._ctx); + if(la_===1) { + this.state = 19187; + _la = this._input.LA(1); + if(!(_la===38 || _la===443)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 19190; + this.expression(); + this.state = 19191; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2404: + this.enterOuterAlt(localctx, 5); + this.state = 19193; + this.match(OracleSqlParser.MAX); + this.state = 19194; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19196; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2697,this._ctx); + if(la_===1) { + this.state = 19195; + _la = this._input.LA(1); + if(!(_la===38 || _la===443)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 19198; + this.expression(); + this.state = 19199; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2421: + this.enterOuterAlt(localctx, 6); + this.state = 19201; + this.match(OracleSqlParser.LEAST); + this.state = 19202; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19203; + this.expressions_(); + this.state = 19204; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 2422: + this.enterOuterAlt(localctx, 7); + this.state = 19206; + this.match(OracleSqlParser.GREATEST); + this.state = 19207; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19208; + this.expressions_(); + this.state = 19209; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + listagg_overflow_clause() { + let localctx = new Listagg_overflow_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2182, OracleSqlParser.RULE_listagg_overflow_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19213; + this.match(OracleSqlParser.ON); + this.state = 19214; + this.match(OracleSqlParser.OVERFLOW_); + this.state = 19215; + _la = this._input.LA(1); + if(!(_la===518 || _la===2157)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19217; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2441) { + this.state = 19216; + this.match(OracleSqlParser.CHAR_STRING); + } + + this.state = 19221; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2304 || _la===2306) { + this.state = 19219; + _la = this._input.LA(1); + if(!(_la===2304 || _la===2306)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19220; + this.match(OracleSqlParser.COUNT); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + other_function() { + let localctx = new Other_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2184, OracleSqlParser.RULE_other_function); + var _la = 0; + try { + this.state = 19644; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2766,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 19223; + this.over_clause_keyword(); + this.state = 19224; + this.function_argument_analytic(); + this.state = 19226; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2701,this._ctx); + if(la_===1) { + this.state = 19225; + this.over_clause(); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 19228; + this.regular_id(); + this.state = 19229; + this.function_argument_modeling(); + this.state = 19231; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2702,this._ctx); + if(la_===1) { + this.state = 19230; + this.using_clause(); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 19233; + this.match(OracleSqlParser.COUNT); + this.state = 19234; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19240; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2448: + this.state = 19235; + this.match(OracleSqlParser.ASTERISK); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 359: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 387: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 443: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1226: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1452: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2181: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2399: + case 2400: + case 2401: + case 2402: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2434: + case 2438: + case 2439: + case 2440: + case 2441: + case 2442: + case 2445: + case 2449: + case 2450: + case 2459: + case 2466: + case 2472: + case 2478: + case 2479: + this.state = 19237; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2703,this._ctx); + if(la_===1) { + this.state = 19236; + _la = this._input.LA(1); + if(!(_la===38 || _la===443 || _la===2181)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 19239; + this.concatenation(0); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 19242; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19244; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2705,this._ctx); + if(la_===1) { + this.state = 19243; + this.over_clause(); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 19246; + _la = this._input.LA(1); + if(!(_la===181 || _la===2319)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19247; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19254; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2706,this._ctx); + switch(la_) { + case 1: + this.state = 19248; + this.match(OracleSqlParser.MULTISET); + this.state = 19249; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19250; + this.subquery(); + this.state = 19251; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 2: + this.state = 19253; + this.concatenation(0); + break; + + } + this.state = 19256; + this.match(OracleSqlParser.AS); + this.state = 19257; + this.type_spec(); + this.state = 19264; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 19258; + this.match(OracleSqlParser.DEFAULT); + this.state = 19259; + this.concatenation(0); + this.state = 19260; + this.match(OracleSqlParser.ON); + this.state = 19261; + this.match(OracleSqlParser.CONVERSION); + this.state = 19262; + this.match(OracleSqlParser.ERROR); + } + + this.state = 19272; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 19266; + this.match(OracleSqlParser.COMMA); + this.state = 19267; + this.quoted_string(); + this.state = 19270; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 19268; + this.match(OracleSqlParser.COMMA); + this.state = 19269; + this.quoted_string(); + } + + } + + this.state = 19274; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 19276; + this.match(OracleSqlParser.COALESCE); + this.state = 19277; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19278; + this.table_element(); + this.state = 19284; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 19279; + this.match(OracleSqlParser.COMMA); + this.state = 19282; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + case 2440: + this.state = 19280; + this.numeric(); + break; + case 2434: + case 2441: + this.state = 19281; + this.quoted_string(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 19286; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 19288; + this.match(OracleSqlParser.COLLECT); + this.state = 19289; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19291; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2712,this._ctx); + if(la_===1) { + this.state = 19290; + _la = this._input.LA(1); + if(!(_la===443 || _la===2181)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 19293; + this.concatenation(0); + this.state = 19295; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1301) { + this.state = 19294; + this.collect_order_by_part(); + } + + this.state = 19297; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 19299; + this.within_or_over_clause_keyword(); + this.state = 19300; + this.function_argument(); + this.state = 19302; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 19301; + this.within_or_over_part(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 19304; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2714, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 19306; + this.match(OracleSqlParser.LISTAGG); + this.state = 19307; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19309; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2715,this._ctx); + if(la_===1) { + this.state = 19308; + _la = this._input.LA(1); + if(!(_la===38 || _la===443 || _la===2181)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 19311; + this.argument(); + this.state = 19314; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 19312; + this.match(OracleSqlParser.COMMA); + this.state = 19313; + this.expression(); + } + + this.state = 19317; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1257) { + this.state = 19316; + this.listagg_overflow_clause(); + } + + this.state = 19319; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19326; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2718,this._ctx); + if(la_===1) { + this.state = 19320; + this.match(OracleSqlParser.WITHIN); + this.state = 19321; + this.match(OracleSqlParser.GROUP); + this.state = 19322; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19323; + this.order_by_clause(); + this.state = 19324; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + this.state = 19329; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2719,this._ctx); + if(la_===1) { + this.state = 19328; + this.over_clause(); + + } + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 19331; + this.cursor_name(); + this.state = 19332; + _la = this._input.LA(1); + if(!(((((_la - 1373)) & ~0x1f) === 0 && ((1 << (_la - 1373)) & 39) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 19334; + this.match(OracleSqlParser.DECOMPOSE); + this.state = 19335; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19336; + this.concatenation(0); + this.state = 19338; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===175 || _la===248) { + this.state = 19337; + _la = this._input.LA(1); + if(!(_la===175 || _la===248)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 19340; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 19342; + this.match(OracleSqlParser.EXTRACT); + this.state = 19343; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19344; + this.regular_id(); + this.state = 19345; + this.match(OracleSqlParser.FROM); + this.state = 19346; + this.concatenation(0); + this.state = 19347; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 19349; + _la = this._input.LA(1); + if(!(_la===599 || _la===824)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19350; + this.function_argument_analytic(); + this.state = 19352; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===690 || _la===1569) { + this.state = 19351; + this.respect_or_ignore_nulls(); + } + + this.state = 19354; + this.over_clause(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 19356; + _la = this._input.LA(1); + if(!(_la===2400 || _la===2403)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19357; + this.function_argument_analytic(); + this.state = 19359; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===690 || _la===1569) { + this.state = 19358; + this.respect_or_ignore_nulls(); + } + + this.state = 19361; + this.over_clause(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 19363; + this.standard_prediction_function_keyword(); + this.state = 19364; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19365; + this.expressions_(); + this.state = 19367; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===309) { + this.state = 19366; + this.cost_matrix_clause(); + } + + this.state = 19370; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 19369; + this.using_clause(); + } + + this.state = 19372; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 19374; + _la = this._input.LA(1); + if(!(((((_la - 2123)) & ~0x1f) === 0 && ((1 << (_la - 2123)) & 12803) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19375; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19376; + this.concatenation(0); + this.state = 19383; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 19377; + this.match(OracleSqlParser.DEFAULT); + this.state = 19378; + this.concatenation(0); + this.state = 19379; + this.match(OracleSqlParser.ON); + this.state = 19380; + this.match(OracleSqlParser.CONVERSION); + this.state = 19381; + this.match(OracleSqlParser.ERROR); + } + + this.state = 19391; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 19385; + this.match(OracleSqlParser.COMMA); + this.state = 19386; + this.quoted_string(); + this.state = 19389; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 19387; + this.match(OracleSqlParser.COMMA); + this.state = 19388; + this.quoted_string(); + } + + } + + this.state = 19393; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 19395; + _la = this._input.LA(1); + if(!(_la===2127 || _la===2140)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19396; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19397; + this.concatenation(0); + this.state = 19404; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 19398; + this.match(OracleSqlParser.DEFAULT); + this.state = 19399; + this.concatenation(0); + this.state = 19400; + this.match(OracleSqlParser.ON); + this.state = 19401; + this.match(OracleSqlParser.CONVERSION); + this.state = 19402; + this.match(OracleSqlParser.ERROR); + } + + this.state = 19406; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 19408; + this.match(OracleSqlParser.TRANSLATE); + this.state = 19409; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19410; + this.expression(); + this.state = 19413; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2244) { + this.state = 19411; + this.match(OracleSqlParser.USING); + this.state = 19412; + _la = this._input.LA(1); + if(!(_la===197 || _la===1005)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 19419; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 19415; + this.match(OracleSqlParser.COMMA); + this.state = 19416; + this.expression(); + this.state = 19421; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 19422; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 19424; + this.match(OracleSqlParser.TREAT); + this.state = 19425; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19426; + this.expression(); + this.state = 19427; + this.match(OracleSqlParser.AS); + this.state = 19429; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2731,this._ctx); + if(la_===1) { + this.state = 19428; + this.match(OracleSqlParser.REF); + + } + this.state = 19431; + this.type_spec(); + this.state = 19432; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19437; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2732,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 19433; + this.match(OracleSqlParser.PERIOD); + this.state = 19434; + this.general_element_part(); + } + this.state = 19439; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2732,this._ctx); + } + + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 19440; + this.match(OracleSqlParser.TRIM); + this.state = 19441; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19449; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2735,this._ctx); + if(la_===1) { + this.state = 19443; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===149 || _la===836 || _la===2144) { + this.state = 19442; + _la = this._input.LA(1); + if(!(_la===149 || _la===836 || _la===2144)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 19446; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2434 || _la===2441) { + this.state = 19445; + this.quoted_string(); + } + + this.state = 19448; + this.match(OracleSqlParser.FROM); + + } + this.state = 19451; + this.concatenation(0); + this.state = 19452; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 19454; + this.match(OracleSqlParser.VALIDATE_CONVERSION); + this.state = 19455; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19456; + this.concatenation(0); + this.state = 19457; + this.match(OracleSqlParser.AS); + this.state = 19458; + this.type_spec(); + this.state = 19465; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 19459; + this.match(OracleSqlParser.COMMA); + this.state = 19460; + this.quoted_string(); + this.state = 19463; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 19461; + this.match(OracleSqlParser.COMMA); + this.state = 19462; + this.quoted_string(); + } + + } + + this.state = 19467; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 19469; + this.match(OracleSqlParser.XMLAGG); + this.state = 19470; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19471; + this.expression(); + this.state = 19473; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1301) { + this.state = 19472; + this.order_by_clause(); + } + + this.state = 19475; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19480; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2739,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 19476; + this.match(OracleSqlParser.PERIOD); + this.state = 19477; + this.general_element_part(); + } + this.state = 19482; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2739,this._ctx); + } + + break; + + case 22: + this.enterOuterAlt(localctx, 22); + this.state = 19483; + _la = this._input.LA(1); + if(!(_la===2321 || _la===2329)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19484; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19485; + this.xml_multiuse_expression_element(); + this.state = 19490; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 19486; + this.match(OracleSqlParser.COMMA); + this.state = 19487; + this.xml_multiuse_expression_element(); + this.state = 19492; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 19493; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19498; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2741,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 19494; + this.match(OracleSqlParser.PERIOD); + this.state = 19495; + this.general_element_part(); + } + this.state = 19500; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2741,this._ctx); + } + + break; + + case 23: + this.enterOuterAlt(localctx, 23); + this.state = 19501; + this.match(OracleSqlParser.XMLELEMENT); + this.state = 19502; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19504; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2742,this._ctx); + if(la_===1) { + this.state = 19503; + _la = this._input.LA(1); + if(!(_la===513 || _la===1094)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 19507; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2743,this._ctx); + if(la_===1) { + this.state = 19506; + _la = this._input.LA(1); + if(!(_la===527 || _la===995)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 19509; + this.expression(); + this.state = 19512; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2744,this._ctx); + if(la_===1) { + this.state = 19510; + this.match(OracleSqlParser.COMMA); + this.state = 19511; + this.xml_attributes_clause(); + + } + this.state = 19521; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 19514; + this.match(OracleSqlParser.COMMA); + this.state = 19515; + this.expression(); + this.state = 19517; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434615) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 3372220415) !== 0) || _la===2472 || _la===2478) { + this.state = 19516; + this.column_alias(); + } + + this.state = 19523; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 19524; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19529; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2747,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 19525; + this.match(OracleSqlParser.PERIOD); + this.state = 19526; + this.general_element_part(); + } + this.state = 19531; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2747,this._ctx); + } + + break; + + case 24: + this.enterOuterAlt(localctx, 24); + this.state = 19532; + this.match(OracleSqlParser.XMLEXISTS); + this.state = 19533; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19534; + this.expression(); + this.state = 19536; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1350) { + this.state = 19535; + this.xml_passing_clause(); + } + + this.state = 19538; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 25: + this.enterOuterAlt(localctx, 25); + this.state = 19540; + this.match(OracleSqlParser.XMLPARSE); + this.state = 19541; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19542; + _la = this._input.LA(1); + if(!(_la===292 || _la===453)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19543; + this.concatenation(0); + this.state = 19545; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2296) { + this.state = 19544; + this.match(OracleSqlParser.WELLFORMED); + } + + this.state = 19547; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19552; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2750,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 19548; + this.match(OracleSqlParser.PERIOD); + this.state = 19549; + this.general_element_part(); + } + this.state = 19554; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2750,this._ctx); + } + + break; + + case 26: + this.enterOuterAlt(localctx, 26); + this.state = 19555; + this.match(OracleSqlParser.XMLPI); + this.state = 19556; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19561; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 995: + this.state = 19557; + this.match(OracleSqlParser.NAME); + this.state = 19558; + this.identifier(); + break; + case 527: + this.state = 19559; + this.match(OracleSqlParser.EVALNAME); + this.state = 19560; + this.concatenation(0); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 19565; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 19563; + this.match(OracleSqlParser.COMMA); + this.state = 19564; + this.concatenation(0); + } + + this.state = 19567; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19572; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2753,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 19568; + this.match(OracleSqlParser.PERIOD); + this.state = 19569; + this.general_element_part(); + } + this.state = 19574; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2753,this._ctx); + } + + break; + + case 27: + this.enterOuterAlt(localctx, 27); + this.state = 19575; + this.match(OracleSqlParser.XMLQUERY); + this.state = 19576; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19577; + this.concatenation(0); + this.state = 19579; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1350) { + this.state = 19578; + this.xml_passing_clause(); + } + + this.state = 19581; + this.match(OracleSqlParser.RETURNING); + this.state = 19582; + this.match(OracleSqlParser.CONTENT); + this.state = 19586; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1226) { + this.state = 19583; + this.match(OracleSqlParser.NULL_); + this.state = 19584; + this.match(OracleSqlParser.ON); + this.state = 19585; + this.match(OracleSqlParser.EMPTY_); + } + + this.state = 19588; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19593; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2756,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 19589; + this.match(OracleSqlParser.PERIOD); + this.state = 19590; + this.general_element_part(); + } + this.state = 19595; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2756,this._ctx); + } + + break; + + case 28: + this.enterOuterAlt(localctx, 28); + this.state = 19596; + this.match(OracleSqlParser.XMLROOT); + this.state = 19597; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19598; + this.concatenation(0); + this.state = 19601; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2757,this._ctx); + if(la_===1) { + this.state = 19599; + this.match(OracleSqlParser.COMMA); + this.state = 19600; + this.xmlroot_param_version_part(); + + } + this.state = 19605; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 19603; + this.match(OracleSqlParser.COMMA); + this.state = 19604; + this.xmlroot_param_standalone_part(); + } + + this.state = 19607; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19612; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2759,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 19608; + this.match(OracleSqlParser.PERIOD); + this.state = 19609; + this.general_element_part(); + } + this.state = 19614; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2759,this._ctx); + } + + break; + + case 29: + this.enterOuterAlt(localctx, 29); + this.state = 19615; + this.match(OracleSqlParser.XMLSERIALIZE); + this.state = 19616; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19617; + _la = this._input.LA(1); + if(!(_la===292 || _la===453)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19618; + this.concatenation(0); + this.state = 19621; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 19619; + this.match(OracleSqlParser.AS); + this.state = 19620; + this.type_spec(); + } + + this.state = 19624; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===502) { + this.state = 19623; + this.xmlserialize_param_enconding_part(); + } + + this.state = 19627; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2283) { + this.state = 19626; + this.xmlserialize_param_version_part(); + } + + this.state = 19630; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===707 || _la===1135) { + this.state = 19629; + this.xmlserialize_param_ident_part(); + } + + this.state = 19634; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===668 || _la===1681) { + this.state = 19632; + _la = this._input.LA(1); + if(!(_la===668 || _la===1681)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19633; + this.match(OracleSqlParser.DEFAULTS); + } + + this.state = 19636; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19639; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2765,this._ctx); + if(la_===1) { + this.state = 19637; + this.match(OracleSqlParser.PERIOD); + this.state = 19638; + this.general_element_part(); + + } + break; + + case 30: + this.enterOuterAlt(localctx, 30); + this.state = 19641; + this.match(OracleSqlParser.TIME); + this.state = 19642; + this.match(OracleSqlParser.CHAR_STRING); + break; + + case 31: + this.enterOuterAlt(localctx, 31); + this.state = 19643; + this.xmltable(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + over_clause_keyword() { + let localctx = new Over_clause_keywordContext(this, this._ctx, this.state); + this.enterRule(localctx, 2186, OracleSqlParser.RULE_over_clause_keyword); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19646; + _la = this._input.LA(1); + if(!(_la===1224 || _la===2263 || ((((_la - 2396)) & ~0x1f) === 0 && ((1 << (_la - 2396)) & 31644519) !== 0) || _la===2433)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + within_or_over_clause_keyword() { + let localctx = new Within_or_over_clause_keywordContext(this, this._ctx, this.state); + this.enterRule(localctx, 2188, OracleSqlParser.RULE_within_or_over_clause_keyword); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19648; + _la = this._input.LA(1); + if(!(((((_la - 2389)) & ~0x1f) === 0 && ((1 << (_la - 2389)) & 123) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + standard_prediction_function_keyword() { + let localctx = new Standard_prediction_function_keywordContext(this, this._ctx, this.state); + this.enterRule(localctx, 2190, OracleSqlParser.RULE_standard_prediction_function_keyword); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19650; + _la = this._input.LA(1); + if(!(((((_la - 2363)) & ~0x1f) === 0 && ((1 << (_la - 2363)) & 63) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + over_clause() { + let localctx = new Over_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2192, OracleSqlParser.RULE_over_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19652; + this.match(OracleSqlParser.OVER); + this.state = 19653; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19674; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1301: + case 1346: + case 2446: + this.state = 19655; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1346) { + this.state = 19654; + this.query_partition_clause(); + } + + this.state = 19661; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1301) { + this.state = 19657; + this.order_by_clause(); + this.state = 19659; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1493 || _la===1605) { + this.state = 19658; + this.windowing_clause(); + } + + } + + break; + case 672: + this.state = 19663; + this.match(OracleSqlParser.HIERARCHY); + this.state = 19664; + localctx.th = this.id_expression(); + this.state = 19665; + this.match(OracleSqlParser.OFFSET); + this.state = 19666; + this.numeric(); + this.state = 19672; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===10) { + this.state = 19667; + this.match(OracleSqlParser.ACROSS); + this.state = 19668; + this.match(OracleSqlParser.ANCESTOR); + this.state = 19669; + this.match(OracleSqlParser.AT); + this.state = 19670; + this.match(OracleSqlParser.LEVEL); + this.state = 19671; + this.id_expression(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 19676; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + windowing_clause() { + let localctx = new Windowing_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2194, OracleSqlParser.RULE_windowing_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19678; + this.windowing_type(); + this.state = 19685; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 118: + this.state = 19679; + this.match(OracleSqlParser.BETWEEN); + this.state = 19680; + this.windowing_elements(); + this.state = 19681; + this.match(OracleSqlParser.AND); + this.state = 19682; + this.windowing_elements(); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 359: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 387: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 443: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1226: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1452: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2399: + case 2400: + case 2401: + case 2402: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2434: + case 2438: + case 2439: + case 2440: + case 2441: + case 2442: + case 2445: + case 2449: + case 2450: + case 2459: + case 2466: + case 2472: + case 2478: + case 2479: + this.state = 19684; + this.windowing_elements(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + windowing_type() { + let localctx = new Windowing_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 2196, OracleSqlParser.RULE_windowing_type); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19687; + _la = this._input.LA(1); + if(!(_la===1493 || _la===1605)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + windowing_elements() { + let localctx = new Windowing_elementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 2198, OracleSqlParser.RULE_windowing_elements); + var _la = 0; + try { + this.state = 19696; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2773,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 19689; + this.match(OracleSqlParser.UNBOUNDED); + this.state = 19690; + this.match(OracleSqlParser.PRECEDING); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 19691; + this.match(OracleSqlParser.CURRENT); + this.state = 19692; + this.match(OracleSqlParser.ROW); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 19693; + this.concatenation(0); + this.state = 19694; + _la = this._input.LA(1); + if(!(_la===611 || _la===1434)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + using_clause() { + let localctx = new Using_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2200, OracleSqlParser.RULE_using_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19698; + this.match(OracleSqlParser.USING); + this.state = 19708; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2448: + this.state = 19699; + this.match(OracleSqlParser.ASTERISK); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 359: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 387: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 443: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 736: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1202: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1226: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1452: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2399: + case 2400: + case 2401: + case 2402: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2434: + case 2438: + case 2439: + case 2440: + case 2441: + case 2442: + case 2445: + case 2449: + case 2450: + case 2459: + case 2466: + case 2472: + case 2478: + case 2479: + this.state = 19700; + this.using_element(); + this.state = 19705; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2774,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 19701; + this.match(OracleSqlParser.COMMA); + this.state = 19702; + this.using_element(); + } + this.state = 19707; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2774,this._ctx); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + using_element() { + let localctx = new Using_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2202, OracleSqlParser.RULE_using_element); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19715; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2777,this._ctx); + if(la_===1) { + this.state = 19710; + this.match(OracleSqlParser.IN); + this.state = 19712; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2776,this._ctx); + if(la_===1) { + this.state = 19711; + this.match(OracleSqlParser.OUT); + + } + + } else if(la_===2) { + this.state = 19714; + this.match(OracleSqlParser.OUT); + + } + this.state = 19717; + this.select_list_elements(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + collect_order_by_part() { + let localctx = new Collect_order_by_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2204, OracleSqlParser.RULE_collect_order_by_part); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19719; + this.match(OracleSqlParser.ORDER); + this.state = 19720; + this.match(OracleSqlParser.BY); + this.state = 19721; + this.concatenation(0); + this.state = 19726; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 19722; + this.match(OracleSqlParser.COMMA); + this.state = 19723; + this.concatenation(0); + this.state = 19728; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + within_or_over_part() { + let localctx = new Within_or_over_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2206, OracleSqlParser.RULE_within_or_over_part); + try { + this.state = 19736; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2303: + this.enterOuterAlt(localctx, 1); + this.state = 19729; + this.match(OracleSqlParser.WITHIN); + this.state = 19730; + this.match(OracleSqlParser.GROUP); + this.state = 19731; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19732; + this.order_by_clause(); + this.state = 19733; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + case 1320: + this.enterOuterAlt(localctx, 2); + this.state = 19735; + this.over_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + string_delimiter(_p) { + if(_p===undefined) { + _p = 0; + } + const _parentctx = this._ctx; + const _parentState = this.state; + let localctx = new String_delimiterContext(this, this._ctx, _parentState); + let _prevctx = localctx; + const _startState = 2208; + this.enterRecursionRule(localctx, 2208, OracleSqlParser.RULE_string_delimiter, _p); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19746; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2780,this._ctx); + switch(la_) { + case 1: + this.state = 19739; + this.match(OracleSqlParser.CHAR_STRING); + break; + + case 2: + this.state = 19740; + this.string_function(); + break; + + case 3: + this.state = 19741; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19742; + this.string_delimiter(0); + this.state = 19743; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + + case 4: + this.state = 19745; + this.id_expression(); + break; + + } + this._ctx.stop = this._input.LT(-1); + this.state = 19754; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2781,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + localctx = new String_delimiterContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_string_delimiter); + this.state = 19748; + if (!( this.precpred(this._ctx, 3))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); + } + this.state = 19749; + this.match(OracleSqlParser.BAR); + this.state = 19750; + this.match(OracleSqlParser.BAR); + this.state = 19751; + this.string_delimiter(4); + } + this.state = 19756; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2781,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; + } + + + + cost_matrix_clause() { + let localctx = new Cost_matrix_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2210, OracleSqlParser.RULE_cost_matrix_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19757; + this.match(OracleSqlParser.COST); + this.state = 19779; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 969: + this.state = 19758; + this.match(OracleSqlParser.MODEL); + this.state = 19760; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===91) { + this.state = 19759; + this.match(OracleSqlParser.AUTO); + } + + break; + case 2445: + this.state = 19762; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19763; + this.cost_class_name(); + this.state = 19768; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 19764; + this.match(OracleSqlParser.COMMA); + this.state = 19765; + this.cost_class_name(); + this.state = 19770; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 19771; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 19772; + this.match(OracleSqlParser.VALUES); + this.state = 19773; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19775; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160747519) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 19774; + this.expressions_(); + } + + this.state = 19777; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xml_passing_clause() { + let localctx = new Xml_passing_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2212, OracleSqlParser.RULE_xml_passing_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19781; + this.match(OracleSqlParser.PASSING); + this.state = 19784; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===160) { + this.state = 19782; + this.match(OracleSqlParser.BY); + this.state = 19783; + this.match(OracleSqlParser.VALUE); + } + + this.state = 19786; + this.expression(); + this.state = 19788; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2787,this._ctx); + if(la_===1) { + this.state = 19787; + this.column_alias(); + + } + this.state = 19797; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 19790; + this.match(OracleSqlParser.COMMA); + this.state = 19791; + this.expression(); + this.state = 19793; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2788,this._ctx); + if(la_===1) { + this.state = 19792; + this.column_alias(); + + } + this.state = 19799; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xml_attributes_clause() { + let localctx = new Xml_attributes_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2214, OracleSqlParser.RULE_xml_attributes_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19800; + this.match(OracleSqlParser.XMLATTRIBUTES); + this.state = 19801; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19803; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2790,this._ctx); + if(la_===1) { + this.state = 19802; + _la = this._input.LA(1); + if(!(_la===513 || _la===1094)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 19806; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2791,this._ctx); + if(la_===1) { + this.state = 19805; + _la = this._input.LA(1); + if(!(_la===1180 || _la===1622)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 19808; + this.xml_multiuse_expression_element(); + this.state = 19813; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 19809; + this.match(OracleSqlParser.COMMA); + this.state = 19810; + this.xml_multiuse_expression_element(); + this.state = 19815; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 19816; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xml_namespaces_clause() { + let localctx = new Xml_namespaces_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2216, OracleSqlParser.RULE_xml_namespaces_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19818; + this.match(OracleSqlParser.XMLNAMESPACES); + this.state = 19819; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19823; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2793,this._ctx); + if(la_===1) { + this.state = 19820; + this.concatenation(0); + this.state = 19821; + this.column_alias(); + + } + this.state = 19831; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 19825; + this.match(OracleSqlParser.COMMA); + this.state = 19826; + this.concatenation(0); + this.state = 19827; + this.column_alias(); + this.state = 19833; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 19835; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 19834; + this.xml_general_default_part(); + } + + this.state = 19837; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xml_table_column() { + let localctx = new Xml_table_columnContext(this, this._ctx, this.state); + this.enterRule(localctx, 2218, OracleSqlParser.RULE_xml_table_column); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19839; + this.xml_column_name(); + this.state = 19850; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 618: + this.state = 19840; + this.match(OracleSqlParser.FOR); + this.state = 19841; + this.match(OracleSqlParser.ORDINALITY); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 359: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1003: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.state = 19842; + this.type_spec(); + this.state = 19845; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1361) { + this.state = 19843; + this.match(OracleSqlParser.PATH); + this.state = 19844; + this.concatenation(0); + } + + this.state = 19848; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===387) { + this.state = 19847; + this.xml_general_default_part(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xml_general_default_part() { + let localctx = new Xml_general_default_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2220, OracleSqlParser.RULE_xml_general_default_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19852; + this.match(OracleSqlParser.DEFAULT); + this.state = 19853; + this.concatenation(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xml_multiuse_expression_element() { + let localctx = new Xml_multiuse_expression_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2222, OracleSqlParser.RULE_xml_multiuse_expression_element); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19855; + this.expression(); + this.state = 19863; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2800,this._ctx); + if(la_===1) { + this.state = 19857; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 19856; + this.match(OracleSqlParser.AS); + } + + this.state = 19859; + this.id_expression(); + + } else if(la_===2) { + this.state = 19860; + this.match(OracleSqlParser.AS); + this.state = 19861; + this.match(OracleSqlParser.EVALNAME); + this.state = 19862; + this.expression(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmlroot_param_version_part() { + let localctx = new Xmlroot_param_version_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2224, OracleSqlParser.RULE_xmlroot_param_version_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19865; + this.match(OracleSqlParser.VERSION); + this.state = 19869; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2801,this._ctx); + switch(la_) { + case 1: + this.state = 19866; + this.match(OracleSqlParser.NO); + this.state = 19867; + this.match(OracleSqlParser.VALUE); + break; + + case 2: + this.state = 19868; + this.expression(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmlroot_param_standalone_part() { + let localctx = new Xmlroot_param_standalone_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2226, OracleSqlParser.RULE_xmlroot_param_standalone_part); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19871; + this.match(OracleSqlParser.STANDALONE); + this.state = 19877; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2358: + this.state = 19872; + this.match(OracleSqlParser.YES); + break; + case 1135: + this.state = 19873; + this.match(OracleSqlParser.NO); + this.state = 19875; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2256) { + this.state = 19874; + this.match(OracleSqlParser.VALUE); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmlserialize_param_enconding_part() { + let localctx = new Xmlserialize_param_enconding_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2228, OracleSqlParser.RULE_xmlserialize_param_enconding_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19879; + this.match(OracleSqlParser.ENCODING); + this.state = 19880; + this.concatenation(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmlserialize_param_version_part() { + let localctx = new Xmlserialize_param_version_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2230, OracleSqlParser.RULE_xmlserialize_param_version_part); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19882; + this.match(OracleSqlParser.VERSION); + this.state = 19883; + this.concatenation(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmlserialize_param_ident_part() { + let localctx = new Xmlserialize_param_ident_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2232, OracleSqlParser.RULE_xmlserialize_param_ident_part); + var _la = 0; + try { + this.state = 19893; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1135: + this.enterOuterAlt(localctx, 1); + this.state = 19885; + this.match(OracleSqlParser.NO); + this.state = 19886; + this.match(OracleSqlParser.INDENT); + break; + case 707: + this.enterOuterAlt(localctx, 2); + this.state = 19887; + this.match(OracleSqlParser.INDENT); + this.state = 19891; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1697) { + this.state = 19888; + this.match(OracleSqlParser.SIZE); + this.state = 19889; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 19890; + this.concatenation(0); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + annotations_clause() { + let localctx = new Annotations_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2234, OracleSqlParser.RULE_annotations_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19895; + this.match(OracleSqlParser.ANNOTATIONS); + this.state = 19896; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 19897; + this.annotations_list(); + this.state = 19898; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + annotations_list() { + let localctx = new Annotations_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 2236, OracleSqlParser.RULE_annotations_list); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19914; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2808,this._ctx); + if(la_===1) { + this.state = 19900; + this.match(OracleSqlParser.ADD); + this.state = 19906; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2806,this._ctx); + if(la_===1) { + this.state = 19901; + this.match(OracleSqlParser.IF); + this.state = 19902; + this.match(OracleSqlParser.NOT); + this.state = 19903; + this.match(OracleSqlParser.EXISTS); + + } else if(la_===2) { + this.state = 19904; + this.match(OracleSqlParser.OR); + this.state = 19905; + this.match(OracleSqlParser.REPLACE); + + } + + } else if(la_===2) { + this.state = 19908; + this.match(OracleSqlParser.DROP); + this.state = 19911; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2807,this._ctx); + if(la_===1) { + this.state = 19909; + this.match(OracleSqlParser.IF); + this.state = 19910; + this.match(OracleSqlParser.EXISTS); + + } + + } else if(la_===3) { + this.state = 19913; + this.match(OracleSqlParser.REPLACE); + + } + this.state = 19916; + this.annotation(); + this.state = 19921; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2809,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 19917; + this.match(OracleSqlParser.COMMA); + this.state = 19918; + this.annotations_list(); + } + this.state = 19923; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2809,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + annotation() { + let localctx = new AnnotationContext(this, this._ctx, this.state); + this.enterRule(localctx, 2238, OracleSqlParser.RULE_annotation); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19924; + this.identifier(); + this.state = 19926; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2441) { + this.state = 19925; + this.match(OracleSqlParser.CHAR_STRING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sql_plus_command_no_semicolon() { + let localctx = new Sql_plus_command_no_semicolonContext(this, this._ctx, this.state); + this.enterRule(localctx, 2240, OracleSqlParser.RULE_sql_plus_command_no_semicolon); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19928; + this.set_command(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sql_plus_command() { + let localctx = new Sql_plus_commandContext(this, this._ctx, this.state); + this.enterRule(localctx, 2242, OracleSqlParser.RULE_sql_plus_command); + var _la = 0; + try { + this.state = 19939; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 545: + this.enterOuterAlt(localctx, 1); + this.state = 19930; + this.match(OracleSqlParser.EXIT); + break; + case 2476: + this.enterOuterAlt(localctx, 2); + this.state = 19931; + this.match(OracleSqlParser.PROMPT_MESSAGE); + break; + case 1681: + this.enterOuterAlt(localctx, 3); + this.state = 19932; + this.match(OracleSqlParser.SHOW); + this.state = 19933; + _la = this._input.LA(1); + if(!(_la===516 || _la===520)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case 2297: + this.enterOuterAlt(localctx, 4); + this.state = 19934; + this.whenever_command(); + break; + case 2118: + this.enterOuterAlt(localctx, 5); + this.state = 19935; + this.timing_command(); + break; + case 2477: + this.enterOuterAlt(localctx, 6); + this.state = 19936; + this.start_command(); + break; + case 1669: + this.enterOuterAlt(localctx, 7); + this.state = 19937; + this.set_command(); + break; + case 38: + case 212: + this.enterOuterAlt(localctx, 8); + this.state = 19938; + this.clear_command(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + start_command() { + let localctx = new Start_commandContext(this, this._ctx, this.state); + this.enterRule(localctx, 2244, OracleSqlParser.RULE_start_command); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19941; + this.match(OracleSqlParser.START_CMD); + this.state = 19942; + this.id_expression(); + this.state = 19943; + this.match(OracleSqlParser.PERIOD); + this.state = 19944; + _la = this._input.LA(1); + if(!(_la===1720 || _la===1721)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + whenever_command() { + let localctx = new Whenever_commandContext(this, this._ctx, this.state); + this.enterRule(localctx, 2246, OracleSqlParser.RULE_whenever_command); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19946; + this.match(OracleSqlParser.WHENEVER); + this.state = 19947; + _la = this._input.LA(1); + if(!(_la===1307 || _la===1718)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 19963; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 545: + this.state = 19948; + this.match(OracleSqlParser.EXIT); + this.state = 19954; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2812,this._ctx); + switch(la_) { + case 1: + this.state = 19949; + this.match(OracleSqlParser.SUCCESS); + break; + + case 2: + this.state = 19950; + this.match(OracleSqlParser.FAILURE); + break; + + case 3: + this.state = 19951; + this.match(OracleSqlParser.WARNING); + break; + + case 4: + this.state = 19952; + this.variable_name(); + break; + + case 5: + this.state = 19953; + this.numeric(); + break; + + } + this.state = 19957; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2813,this._ctx); + if(la_===1) { + this.state = 19956; + _la = this._input.LA(1); + if(!(_la===242 || _la===1594)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + case 295: + this.state = 19959; + this.match(OracleSqlParser.CONTINUE); + this.state = 19961; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2814,this._ctx); + if(la_===1) { + this.state = 19960; + _la = this._input.LA(1); + if(!(_la===242 || _la===1131 || _la===1594)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + set_command() { + let localctx = new Set_commandContext(this, this._ctx, this.state); + this.enterRule(localctx, 2248, OracleSqlParser.RULE_set_command); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 19965; + this.match(OracleSqlParser.SET); + this.state = 19981; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2818,this._ctx); + switch(la_) { + case 1: + this.state = 19969; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 19966; + this.regular_id(); + this.state = 19967; + _la = this._input.LA(1); + if(!(_la===1242 || _la===1257)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 19971; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2816, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 2: + this.state = 19973; + this.regular_id(); + this.state = 19979; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2817,this._ctx); + switch(la_) { + case 1: + this.state = 19974; + this.match(OracleSqlParser.CHAR_STRING); + break; + + case 2: + this.state = 19975; + this.match(OracleSqlParser.ON); + break; + + case 3: + this.state = 19976; + this.match(OracleSqlParser.OFF); + break; + + case 4: + this.state = 19977; + this.numeric(); + break; + + case 5: + this.state = 19978; + this.regular_id(); + break; + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + timing_command() { + let localctx = new Timing_commandContext(this, this._ctx, this.state); + this.enterRule(localctx, 2250, OracleSqlParser.RULE_timing_command); + try { + this.enterOuterAlt(localctx, 1); + this.state = 19983; + this.match(OracleSqlParser.TIMING); + this.state = 19993; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2820,this._ctx); + if(la_===1) { + this.state = 19984; + this.match(OracleSqlParser.START); + this.state = 19988; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2819,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 19985; + localctx.timing_text = this.id_expression(); + } + this.state = 19990; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2819,this._ctx); + } + + + } else if(la_===2) { + this.state = 19991; + this.match(OracleSqlParser.SHOW); + + } else if(la_===3) { + this.state = 19992; + this.match(OracleSqlParser.STOP); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + clear_command() { + let localctx = new Clear_commandContext(this, this._ctx, this.state); + this.enterRule(localctx, 2252, OracleSqlParser.RULE_clear_command); + try { + this.state = 20001; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 212: + this.enterOuterAlt(localctx, 1); + this.state = 19995; + this.match(OracleSqlParser.CLEAR); + + this.state = 19997; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2821,this._ctx); + if(la_===1) { + this.state = 19996; + this.match(OracleSqlParser.COLUMN); + + } + this.state = 19999; + this.regular_id(); + break; + case 38: + this.enterOuterAlt(localctx, 2); + this.state = 20000; + this.match(OracleSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + partition_extension_clause() { + let localctx = new Partition_extension_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2254, OracleSqlParser.RULE_partition_extension_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20003; + _la = this._input.LA(1); + if(!(_la===1346 || _la===1773)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20005; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===618) { + this.state = 20004; + this.match(OracleSqlParser.FOR); + } + + this.state = 20007; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 20009; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160747519) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 20008; + this.expressions_(); + } + + this.state = 20011; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + column_alias() { + let localctx = new Column_aliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 2256, OracleSqlParser.RULE_column_alias); + var _la = 0; + try { + this.state = 20021; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2827,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 20014; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===69) { + this.state = 20013; + this.match(OracleSqlParser.AS); + } + + this.state = 20018; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 20016; + this.identifier(); + break; + case 2434: + case 2441: + this.state = 20017; + this.quoted_string(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 20020; + this.match(OracleSqlParser.AS); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_alias() { + let localctx = new Table_aliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 2258, OracleSqlParser.RULE_table_alias); + try { + this.state = 20025; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 20023; + this.identifier(); + break; + case 2434: + case 2441: + this.enterOuterAlt(localctx, 2); + this.state = 20024; + this.quoted_string(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + where_clause() { + let localctx = new Where_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2260, OracleSqlParser.RULE_where_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20027; + this.match(OracleSqlParser.WHERE); + this.state = 20032; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2829,this._ctx); + switch(la_) { + case 1: + this.state = 20028; + this.match(OracleSqlParser.CURRENT); + this.state = 20029; + this.match(OracleSqlParser.OF); + this.state = 20030; + this.cursor_name(); + break; + + case 2: + this.state = 20031; + this.condition(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + into_clause() { + let localctx = new Into_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2262, OracleSqlParser.RULE_into_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20036; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===159) { + this.state = 20034; + this.match(OracleSqlParser.BULK); + this.state = 20035; + this.match(OracleSqlParser.COLLECT); + } + + this.state = 20038; + this.match(OracleSqlParser.INTO); + this.state = 20041; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2445: + case 2472: + case 2478: + this.state = 20039; + this.general_element(0); + break; + case 2459: + case 2466: + this.state = 20040; + this.bind_variable(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 20050; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2833,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 20043; + this.match(OracleSqlParser.COMMA); + this.state = 20046; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2445: + case 2472: + case 2478: + this.state = 20044; + this.general_element(0); + break; + case 2459: + case 2466: + this.state = 20045; + this.bind_variable(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 20052; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2833,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xml_column_name() { + let localctx = new Xml_column_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2264, OracleSqlParser.RULE_xml_column_name); + try { + this.state = 20055; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 20053; + this.identifier(); + break; + case 2434: + case 2441: + this.enterOuterAlt(localctx, 2); + this.state = 20054; + this.quoted_string(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cost_class_name() { + let localctx = new Cost_class_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2266, OracleSqlParser.RULE_cost_class_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20057; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + attribute_name() { + let localctx = new Attribute_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2268, OracleSqlParser.RULE_attribute_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20059; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + savepoint_name() { + let localctx = new Savepoint_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2270, OracleSqlParser.RULE_savepoint_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20061; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + rollback_segment_name() { + let localctx = new Rollback_segment_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2272, OracleSqlParser.RULE_rollback_segment_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20063; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + schema_name() { + let localctx = new Schema_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2274, OracleSqlParser.RULE_schema_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20065; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + routine_name() { + let localctx = new Routine_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2276, OracleSqlParser.RULE_routine_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20067; + this.identifier(); + this.state = 20072; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2835,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 20068; + this.match(OracleSqlParser.PERIOD); + this.state = 20069; + this.id_expression(); + } + this.state = 20074; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2835,this._ctx); + } + + this.state = 20077; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2453) { + this.state = 20075; + this.match(OracleSqlParser.AT_SIGN); + this.state = 20076; + this.link_name(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + package_name() { + let localctx = new Package_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2278, OracleSqlParser.RULE_package_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20079; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + implementation_type_name() { + let localctx = new Implementation_type_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2280, OracleSqlParser.RULE_implementation_type_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20081; + this.identifier(); + this.state = 20084; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2438) { + this.state = 20082; + this.match(OracleSqlParser.PERIOD); + this.state = 20083; + this.id_expression(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + parameter_name() { + let localctx = new Parameter_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2282, OracleSqlParser.RULE_parameter_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20086; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + reference_model_name() { + let localctx = new Reference_model_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2284, OracleSqlParser.RULE_reference_model_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20088; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + main_model_name() { + let localctx = new Main_model_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2286, OracleSqlParser.RULE_main_model_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20090; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + container_tableview_name() { + let localctx = new Container_tableview_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2288, OracleSqlParser.RULE_container_tableview_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20092; + this.identifier(); + this.state = 20095; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2438) { + this.state = 20093; + this.match(OracleSqlParser.PERIOD); + this.state = 20094; + this.id_expression(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + aggregate_function_name() { + let localctx = new Aggregate_function_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2290, OracleSqlParser.RULE_aggregate_function_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20097; + this.identifier(); + this.state = 20102; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2438) { + this.state = 20098; + this.match(OracleSqlParser.PERIOD); + this.state = 20099; + this.id_expression(); + this.state = 20104; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + query_name() { + let localctx = new Query_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2292, OracleSqlParser.RULE_query_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20105; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + grantee_name() { + let localctx = new Grantee_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2294, OracleSqlParser.RULE_grantee_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20107; + this.id_expression(); + this.state = 20109; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===683) { + this.state = 20108; + this.identified_by(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + role_name() { + let localctx = new Role_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2296, OracleSqlParser.RULE_role_name); + try { + this.state = 20113; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 20111; + this.id_expression(); + break; + case 278: + this.enterOuterAlt(localctx, 2); + this.state = 20112; + this.match(OracleSqlParser.CONNECT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + constraint_name() { + let localctx = new Constraint_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2298, OracleSqlParser.RULE_constraint_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20115; + this.identifier(); + this.state = 20120; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2438) { + this.state = 20116; + this.match(OracleSqlParser.PERIOD); + this.state = 20117; + this.id_expression(); + this.state = 20122; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 20125; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2453) { + this.state = 20123; + this.match(OracleSqlParser.AT_SIGN); + this.state = 20124; + this.link_name(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + label_name() { + let localctx = new Label_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2300, OracleSqlParser.RULE_label_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20127; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + type_name() { + let localctx = new Type_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2302, OracleSqlParser.RULE_type_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20129; + this.id_expression(); + this.state = 20134; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2844,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 20130; + this.match(OracleSqlParser.PERIOD); + this.state = 20131; + this.id_expression(); + } + this.state = 20136; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2844,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + sequence_name() { + let localctx = new Sequence_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2304, OracleSqlParser.RULE_sequence_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20137; + this.id_expression(); + this.state = 20142; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2438) { + this.state = 20138; + this.match(OracleSqlParser.PERIOD); + this.state = 20139; + this.id_expression(); + this.state = 20144; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + exception_name() { + let localctx = new Exception_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2306, OracleSqlParser.RULE_exception_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20145; + this.identifier(); + this.state = 20150; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2438) { + this.state = 20146; + this.match(OracleSqlParser.PERIOD); + this.state = 20147; + this.id_expression(); + this.state = 20152; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + function_name() { + let localctx = new Function_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2308, OracleSqlParser.RULE_function_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20153; + this.identifier(); + this.state = 20156; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2438) { + this.state = 20154; + this.match(OracleSqlParser.PERIOD); + this.state = 20155; + this.id_expression(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + procedure_name() { + let localctx = new Procedure_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2310, OracleSqlParser.RULE_procedure_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20158; + this.identifier(); + this.state = 20161; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2438) { + this.state = 20159; + this.match(OracleSqlParser.PERIOD); + this.state = 20160; + this.id_expression(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + trigger_name() { + let localctx = new Trigger_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2312, OracleSqlParser.RULE_trigger_name); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20163; + this.identifier(); + this.state = 20166; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2438) { + this.state = 20164; + this.match(OracleSqlParser.PERIOD); + this.state = 20165; + this.id_expression(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + variable_name() { + let localctx = new Variable_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2314, OracleSqlParser.RULE_variable_name); + var _la = 0; + try { + this.state = 20178; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 20170; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2472) { + this.state = 20168; + this.match(OracleSqlParser.INTRODUCER); + this.state = 20169; + this.char_set_name(); + } + + this.state = 20172; + this.id_expression(); + this.state = 20175; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2851,this._ctx); + if(la_===1) { + this.state = 20173; + this.match(OracleSqlParser.PERIOD); + this.state = 20174; + this.id_expression(); + + } + break; + case 2459: + case 2466: + this.enterOuterAlt(localctx, 2); + this.state = 20177; + this.bind_variable(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + index_name() { + let localctx = new Index_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2316, OracleSqlParser.RULE_index_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20180; + this.identifier(); + this.state = 20183; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2853,this._ctx); + if(la_===1) { + this.state = 20181; + this.match(OracleSqlParser.PERIOD); + this.state = 20182; + this.id_expression(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + cursor_name() { + let localctx = new Cursor_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2318, OracleSqlParser.RULE_cursor_name); + try { + this.state = 20187; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2445: + case 2472: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 20185; + this.general_element(0); + break; + case 2459: + case 2466: + this.enterOuterAlt(localctx, 2); + this.state = 20186; + this.bind_variable(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + record_name() { + let localctx = new Record_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2320, OracleSqlParser.RULE_record_name); + try { + this.state = 20191; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 20189; + this.identifier(); + break; + case 2459: + case 2466: + this.enterOuterAlt(localctx, 2); + this.state = 20190; + this.bind_variable(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + link_name() { + let localctx = new Link_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2322, OracleSqlParser.RULE_link_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20193; + this.database(); + this.state = 20198; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2856,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 20194; + this.match(OracleSqlParser.PERIOD); + this.state = 20195; + this.domain(); + } + this.state = 20200; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2856,this._ctx); + } + + this.state = 20203; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2857,this._ctx); + if(la_===1) { + this.state = 20201; + this.match(OracleSqlParser.AT_SIGN); + this.state = 20202; + this.connection_qualifier(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + local_link_name() { + let localctx = new Local_link_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2324, OracleSqlParser.RULE_local_link_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20205; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + connection_qualifier() { + let localctx = new Connection_qualifierContext(this, this._ctx, this.state); + this.enterRule(localctx, 2326, OracleSqlParser.RULE_connection_qualifier); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20207; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + column_name() { + let localctx = new Column_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2328, OracleSqlParser.RULE_column_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20209; + this.identifier(); + this.state = 20214; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2858,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 20210; + this.match(OracleSqlParser.PERIOD); + this.state = 20211; + this.id_expression(); + } + this.state = 20216; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2858,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tableview_name() { + let localctx = new Tableview_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2330, OracleSqlParser.RULE_tableview_name); + try { + this.state = 20231; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2862,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 20217; + this.identifier(); + this.state = 20220; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2859,this._ctx); + if(la_===1) { + this.state = 20218; + this.match(OracleSqlParser.PERIOD); + this.state = 20219; + this.id_expression(); + + } + this.state = 20225; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2860,this._ctx); + if(la_===1) { + this.state = 20222; + this.match(OracleSqlParser.AT_SIGN); + this.state = 20223; + this.link_name(); + + } else if(la_===2) { + this.state = 20224; + this.partition_extension_clause(); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 20227; + this.xmltable(); + this.state = 20229; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2861,this._ctx); + if(la_===1) { + this.state = 20228; + this.outer_join_sign(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + xmltable() { + let localctx = new XmltableContext(this, this._ctx, this.state); + this.enterRule(localctx, 2332, OracleSqlParser.RULE_xmltable); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20233; + this.match(OracleSqlParser.XMLTABLE); + this.state = 20234; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 20238; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2863,this._ctx); + if(la_===1) { + this.state = 20235; + this.xml_namespaces_clause(); + this.state = 20236; + this.match(OracleSqlParser.COMMA); + + } + this.state = 20240; + this.concatenation(0); + this.state = 20242; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1350) { + this.state = 20241; + this.xml_passing_clause(); + } + + this.state = 20253; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===238) { + this.state = 20244; + this.match(OracleSqlParser.COLUMNS); + this.state = 20245; + this.xml_table_column(); + this.state = 20250; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 20246; + this.match(OracleSqlParser.COMMA); + this.state = 20247; + this.xml_table_column(); + this.state = 20252; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 20255; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 20258; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2867,this._ctx); + if(la_===1) { + this.state = 20256; + this.match(OracleSqlParser.PERIOD); + this.state = 20257; + this.general_element_part(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + char_set_name() { + let localctx = new Char_set_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2334, OracleSqlParser.RULE_char_set_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20260; + this.id_expression(); + this.state = 20265; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2868,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 20261; + this.match(OracleSqlParser.PERIOD); + this.state = 20262; + this.id_expression(); + } + this.state = 20267; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2868,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + synonym_name() { + let localctx = new Synonym_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2336, OracleSqlParser.RULE_synonym_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20268; + this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + schema_object_name() { + let localctx = new Schema_object_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2338, OracleSqlParser.RULE_schema_object_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20270; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + dir_object_name() { + let localctx = new Dir_object_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2340, OracleSqlParser.RULE_dir_object_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20272; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + user_object_name() { + let localctx = new User_object_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2342, OracleSqlParser.RULE_user_object_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20274; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + grant_object_name() { + let localctx = new Grant_object_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2344, OracleSqlParser.RULE_grant_object_name); + var _la = 0; + try { + this.state = 20300; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2870,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 20276; + this.tableview_name(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 20277; + this.match(OracleSqlParser.USER); + this.state = 20278; + this.user_object_name(); + this.state = 20283; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 20279; + this.match(OracleSqlParser.COMMA); + this.state = 20280; + this.user_object_name(); + this.state = 20285; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 20286; + this.match(OracleSqlParser.DIRECTORY); + this.state = 20287; + this.dir_object_name(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 20288; + this.match(OracleSqlParser.EDITION); + this.state = 20289; + this.schema_object_name(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 20290; + this.match(OracleSqlParser.MINING); + this.state = 20291; + this.match(OracleSqlParser.MODEL); + this.state = 20292; + this.schema_object_name(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 20293; + this.match(OracleSqlParser.JAVA); + this.state = 20294; + _la = this._input.LA(1); + if(!(_la===1568 || _la===1711)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20295; + this.schema_object_name(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 20296; + this.match(OracleSqlParser.SQL); + this.state = 20297; + this.match(OracleSqlParser.TRANSLATION); + this.state = 20298; + this.match(OracleSqlParser.PROFILE); + this.state = 20299; + this.schema_object_name(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + column_list() { + let localctx = new Column_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 2346, OracleSqlParser.RULE_column_list); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20302; + this.column_name(); + this.state = 20307; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 20303; + this.match(OracleSqlParser.COMMA); + this.state = 20304; + this.column_name(); + this.state = 20309; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + paren_column_list() { + let localctx = new Paren_column_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 2348, OracleSqlParser.RULE_paren_column_list); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20310; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 20311; + this.column_list(); + this.state = 20312; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + keep_clause() { + let localctx = new Keep_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 2350, OracleSqlParser.RULE_keep_clause); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20314; + this.match(OracleSqlParser.KEEP); + this.state = 20315; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 20316; + this.match(OracleSqlParser.DENSE_RANK); + this.state = 20317; + _la = this._input.LA(1); + if(!(_la===596 || _la===823)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20320; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1346: + this.state = 20318; + this.query_partition_clause(); + break; + case 1301: + this.state = 20319; + this.order_by_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 20322; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 20324; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2873,this._ctx); + if(la_===1) { + this.state = 20323; + this.over_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + function_argument() { + let localctx = new Function_argumentContext(this, this._ctx, this.state); + this.enterRule(localctx, 2352, OracleSqlParser.RULE_function_argument); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20326; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 20335; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160747519) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 20327; + this.argument(); + this.state = 20332; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 20328; + this.match(OracleSqlParser.COMMA); + this.state = 20329; + this.argument(); + this.state = 20334; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 20337; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 20339; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2876,this._ctx); + if(la_===1) { + this.state = 20338; + this.keep_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + function_argument_analytic() { + let localctx = new Function_argument_analyticContext(this, this._ctx, this.state); + this.enterRule(localctx, 2354, OracleSqlParser.RULE_function_argument_analytic); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20341; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 20356; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4294310911) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434583) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962815) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003767) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4286048223) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160747519) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772991) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967295) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4294967255) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 4177526783) !== 0) || ((((_la - 2445)) & ~0x1f) === 0 && ((1 << (_la - 2445)) & 136331313) !== 0) || _la===2478 || _la===2479) { + this.state = 20342; + this.argument(); + this.state = 20344; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===690 || _la===1569) { + this.state = 20343; + this.respect_or_ignore_nulls(); + } + + this.state = 20353; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 20346; + this.match(OracleSqlParser.COMMA); + this.state = 20347; + this.argument(); + this.state = 20349; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===690 || _la===1569) { + this.state = 20348; + this.respect_or_ignore_nulls(); + } + + this.state = 20355; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 20358; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 20360; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2881,this._ctx); + if(la_===1) { + this.state = 20359; + this.keep_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + function_argument_modeling() { + let localctx = new Function_argument_modelingContext(this, this._ctx, this.state); + this.enterRule(localctx, 2356, OracleSqlParser.RULE_function_argument_modeling); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20362; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 20363; + this.column_name(); + this.state = 20376; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 20364; + this.match(OracleSqlParser.COMMA); + this.state = 20367; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + case 2440: + this.state = 20365; + this.numeric(); + break; + case 1226: + this.state = 20366; + this.match(OracleSqlParser.NULL_); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 20374; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 20369; + this.match(OracleSqlParser.COMMA); + this.state = 20372; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + case 2440: + this.state = 20370; + this.numeric(); + break; + case 1226: + this.state = 20371; + this.match(OracleSqlParser.NULL_); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + } + + this.state = 20378; + this.match(OracleSqlParser.USING); + this.state = 20398; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2889,this._ctx); + switch(la_) { + case 1: + this.state = 20379; + this.tableview_name(); + this.state = 20380; + this.match(OracleSqlParser.PERIOD); + this.state = 20381; + this.match(OracleSqlParser.ASTERISK); + break; + + case 2: + this.state = 20383; + this.match(OracleSqlParser.ASTERISK); + break; + + case 3: + this.state = 20384; + this.expression(); + this.state = 20386; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434615) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 3372220415) !== 0) || _la===2472 || _la===2478) { + this.state = 20385; + this.column_alias(); + } + + this.state = 20395; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2451) { + this.state = 20388; + this.match(OracleSqlParser.COMMA); + this.state = 20389; + this.expression(); + this.state = 20391; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1f) === 0 && ((1 << (_la - 32)) & 4285922239) !== 0) || ((((_la - 64)) & ~0x1f) === 0 && ((1 << (_la - 64)) & 4024434615) !== 0) || ((((_la - 96)) & ~0x1f) === 0 && ((1 << (_la - 96)) & 4123000063) !== 0) || ((((_la - 128)) & ~0x1f) === 0 && ((1 << (_la - 128)) & 4294959103) !== 0) || ((((_la - 161)) & ~0x1f) === 0 && ((1 << (_la - 161)) & 3221209063) !== 0) || ((((_la - 193)) & ~0x1f) === 0 && ((1 << (_la - 193)) & 4294967161) !== 0) || ((((_la - 225)) & ~0x1f) === 0 && ((1 << (_la - 225)) & 4290772479) !== 0) || ((((_la - 257)) & ~0x1f) === 0 && ((1 << (_la - 257)) & 4292870137) !== 0) || ((((_la - 289)) & ~0x1f) === 0 && ((1 << (_la - 289)) & 3212836863) !== 0) || ((((_la - 321)) & ~0x1f) === 0 && ((1 << (_la - 321)) & 2147483519) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 4294962751) !== 0) || ((((_la - 385)) & ~0x1f) === 0 && ((1 << (_la - 385)) & 2013003763) !== 0) || ((((_la - 417)) & ~0x1f) === 0 && ((1 << (_la - 417)) & 4218939359) !== 0) || ((((_la - 452)) & ~0x1f) === 0 && ((1 << (_la - 452)) & 4293885699) !== 0) || ((((_la - 484)) & ~0x1f) === 0 && ((1 << (_la - 484)) & 4271767199) !== 0) || ((((_la - 516)) & ~0x1f) === 0 && ((1 << (_la - 516)) & 4286578431) !== 0) || ((((_la - 548)) & ~0x1f) === 0 && ((1 << (_la - 548)) & 4294967295) !== 0) || ((((_la - 580)) & ~0x1f) === 0 && ((1 << (_la - 580)) & 4293918623) !== 0) || ((((_la - 612)) & ~0x1f) === 0 && ((1 << (_la - 612)) & 4294950847) !== 0) || ((((_la - 646)) & ~0x1f) === 0 && ((1 << (_la - 646)) & 4261379581) !== 0) || ((((_la - 678)) & ~0x1f) === 0 && ((1 << (_la - 678)) & 4294959071) !== 0) || ((((_la - 710)) & ~0x1f) === 0 && ((1 << (_la - 710)) & 4227858399) !== 0) || ((((_la - 742)) & ~0x1f) === 0 && ((1 << (_la - 742)) & 2147479295) !== 0) || ((((_la - 774)) & ~0x1f) === 0 && ((1 << (_la - 774)) & 4294958323) !== 0) || ((((_la - 806)) & ~0x1f) === 0 && ((1 << (_la - 806)) & 4226809855) !== 0) || ((((_la - 838)) & ~0x1f) === 0 && ((1 << (_la - 838)) & 3731750911) !== 0) || ((((_la - 870)) & ~0x1f) === 0 && ((1 << (_la - 870)) & 4160749055) !== 0) || ((((_la - 902)) & ~0x1f) === 0 && ((1 << (_la - 902)) & 4294967039) !== 0) || ((((_la - 934)) & ~0x1f) === 0 && ((1 << (_la - 934)) & 4293918719) !== 0) || ((((_la - 966)) & ~0x1f) === 0 && ((1 << (_la - 966)) & 4294966783) !== 0) || ((((_la - 998)) & ~0x1f) === 0 && ((1 << (_la - 998)) & 4290772959) !== 0) || ((((_la - 1030)) & ~0x1f) === 0 && ((1 << (_la - 1030)) & 4026531839) !== 0) || ((((_la - 1062)) & ~0x1f) === 0 && ((1 << (_la - 1062)) & 4244634615) !== 0) || ((((_la - 1094)) & ~0x1f) === 0 && ((1 << (_la - 1094)) & 4288675823) !== 0) || ((((_la - 1126)) & ~0x1f) === 0 && ((1 << (_la - 1126)) & 4294967231) !== 0) || ((((_la - 1158)) & ~0x1f) === 0 && ((1 << (_la - 1158)) & 4158652415) !== 0) || ((((_la - 1190)) & ~0x1f) === 0 && ((1 << (_la - 1190)) & 4160743423) !== 0) || ((((_la - 1222)) & ~0x1f) === 0 && ((1 << (_la - 1222)) & 4290772975) !== 0) || ((((_la - 1254)) & ~0x1f) === 0 && ((1 << (_la - 1254)) & 4177330165) !== 0) || ((((_la - 1286)) & ~0x1f) === 0 && ((1 << (_la - 1286)) & 4025974783) !== 0) || ((((_la - 1318)) & ~0x1f) === 0 && ((1 << (_la - 1318)) & 4292853751) !== 0) || ((((_la - 1350)) & ~0x1f) === 0 && ((1 << (_la - 1350)) & 209584127) !== 0) || ((((_la - 1383)) & ~0x1f) === 0 && ((1 << (_la - 1383)) & 4294966271) !== 0) || ((((_la - 1415)) & ~0x1f) === 0 && ((1 << (_la - 1415)) & 4261412863) !== 0) || ((((_la - 1447)) & ~0x1f) === 0 && ((1 << (_la - 1447)) & 4294967263) !== 0) || ((((_la - 1479)) & ~0x1f) === 0 && ((1 << (_la - 1479)) & 4223664127) !== 0) || ((((_la - 1512)) & ~0x1f) === 0 && ((1 << (_la - 1512)) & 4294967295) !== 0) || ((((_la - 1544)) & ~0x1f) === 0 && ((1 << (_la - 1544)) & 4278190015) !== 0) || ((((_la - 1576)) & ~0x1f) === 0 && ((1 << (_la - 1576)) & 4294965247) !== 0) || ((((_la - 1608)) & ~0x1f) === 0 && ((1 << (_la - 1608)) & 4294967295) !== 0) || ((((_la - 1640)) & ~0x1f) === 0 && ((1 << (_la - 1640)) & 4294864863) !== 0) || ((((_la - 1672)) & ~0x1f) === 0 && ((1 << (_la - 1672)) & 4194303931) !== 0) || ((((_la - 1704)) & ~0x1f) === 0 && ((1 << (_la - 1704)) & 2147352575) !== 0) || ((((_la - 1737)) & ~0x1f) === 0 && ((1 << (_la - 1737)) & 4294967295) !== 0) || ((((_la - 1769)) & ~0x1f) === 0 && ((1 << (_la - 1769)) & 4261412863) !== 0) || ((((_la - 1801)) & ~0x1f) === 0 && ((1 << (_la - 1801)) & 4294967295) !== 0) || ((((_la - 1833)) & ~0x1f) === 0 && ((1 << (_la - 1833)) & 4294967295) !== 0) || ((((_la - 1865)) & ~0x1f) === 0 && ((1 << (_la - 1865)) & 4294967295) !== 0) || ((((_la - 1897)) & ~0x1f) === 0 && ((1 << (_la - 1897)) & 4294967295) !== 0) || ((((_la - 1929)) & ~0x1f) === 0 && ((1 << (_la - 1929)) & 4294967295) !== 0) || ((((_la - 1961)) & ~0x1f) === 0 && ((1 << (_la - 1961)) & 4294967295) !== 0) || ((((_la - 1993)) & ~0x1f) === 0 && ((1 << (_la - 1993)) & 4294967295) !== 0) || ((((_la - 2025)) & ~0x1f) === 0 && ((1 << (_la - 2025)) & 4294967295) !== 0) || ((((_la - 2057)) & ~0x1f) === 0 && ((1 << (_la - 2057)) & 4294967295) !== 0) || ((((_la - 2089)) & ~0x1f) === 0 && ((1 << (_la - 2089)) & 3221224375) !== 0) || ((((_la - 2121)) & ~0x1f) === 0 && ((1 << (_la - 2121)) & 4227596287) !== 0) || ((((_la - 2153)) & ~0x1f) === 0 && ((1 << (_la - 2153)) & 3825205247) !== 0) || ((((_la - 2185)) & ~0x1f) === 0 && ((1 << (_la - 2185)) & 4293910527) !== 0) || ((((_la - 2217)) & ~0x1f) === 0 && ((1 << (_la - 2217)) & 4294967295) !== 0) || ((((_la - 2249)) & ~0x1f) === 0 && ((1 << (_la - 2249)) & 4294953919) !== 0) || ((((_la - 2281)) & ~0x1f) === 0 && ((1 << (_la - 2281)) & 4126932983) !== 0) || ((((_la - 2314)) & ~0x1f) === 0 && ((1 << (_la - 2314)) & 4294901759) !== 0) || ((((_la - 2347)) & ~0x1f) === 0 && ((1 << (_la - 2347)) & 4294933375) !== 0) || ((((_la - 2379)) & ~0x1f) === 0 && ((1 << (_la - 2379)) & 4281335767) !== 0) || ((((_la - 2411)) & ~0x1f) === 0 && ((1 << (_la - 2411)) & 3372220415) !== 0) || _la===2472 || _la===2478) { + this.state = 20390; + this.column_alias(); + } + + this.state = 20397; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + this.state = 20400; + this.match(OracleSqlParser.RIGHT_PAREN); + this.state = 20402; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2890,this._ctx); + if(la_===1) { + this.state = 20401; + this.keep_clause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + respect_or_ignore_nulls() { + let localctx = new Respect_or_ignore_nullsContext(this, this._ctx, this.state); + this.enterRule(localctx, 2358, OracleSqlParser.RULE_respect_or_ignore_nulls); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20404; + _la = this._input.LA(1); + if(!(_la===690 || _la===1569)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20405; + this.match(OracleSqlParser.NULLS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + argument() { + let localctx = new ArgumentContext(this, this._ctx, this.state); + this.enterRule(localctx, 2360, OracleSqlParser.RULE_argument); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20411; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2891,this._ctx); + if(la_===1) { + this.state = 20407; + this.identifier(); + this.state = 20408; + this.match(OracleSqlParser.EQUALS_OP); + this.state = 20409; + this.match(OracleSqlParser.GREATER_THAN_OP); + + } + this.state = 20413; + this.expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + type_spec() { + let localctx = new Type_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 2362, OracleSqlParser.RULE_type_spec); + var _la = 0; + try { + this.state = 20423; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2894,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 20415; + this.datatype(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 20417; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2892,this._ctx); + if(la_===1) { + this.state = 20416; + this.match(OracleSqlParser.REF); + + } + this.state = 20419; + this.type_name(); + this.state = 20421; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1379 || _la===1380) { + this.state = 20420; + _la = this._input.LA(1); + if(!(_la===1379 || _la===1380)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + datatype() { + let localctx = new DatatypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 2364, OracleSqlParser.RULE_datatype); + var _la = 0; + try { + this.state = 20456; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 119: + case 125: + case 128: + case 131: + case 142: + case 148: + case 193: + case 196: + case 215: + case 359: + case 363: + case 378: + case 379: + case 463: + case 469: + case 605: + case 677: + case 767: + case 775: + case 891: + case 956: + case 964: + case 983: + case 1002: + case 1003: + case 1006: + case 1008: + case 1228: + case 1229: + case 1233: + case 1401: + case 1417: + case 1418: + case 1496: + case 1507: + case 1599: + case 1631: + case 1634: + case 1690: + case 1691: + case 1704: + case 1765: + case 2105: + case 2106: + case 2107: + case 2108: + case 2112: + case 2113: + case 2114: + case 2116: + case 2212: + case 2257: + case 2258: + case 2349: + case 2356: + case 2359: + this.enterOuterAlt(localctx, 1); + this.state = 20425; + this.native_datatype_element(); + this.state = 20427; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2895,this._ctx); + if(la_===1) { + this.state = 20426; + this.precision_part(); + + } + this.state = 20438; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2897,this._ctx); + if(la_===1) { + this.state = 20429; + this.match(OracleSqlParser.WITH); + this.state = 20431; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===871) { + this.state = 20430; + this.match(OracleSqlParser.LOCAL); + } + + this.state = 20433; + this.match(OracleSqlParser.TIME); + this.state = 20434; + this.match(OracleSqlParser.ZONE); + + } else if(la_===2) { + this.state = 20435; + this.match(OracleSqlParser.CHARACTER); + this.state = 20436; + this.match(OracleSqlParser.SET); + this.state = 20437; + this.char_set_name(); + + } + break; + case 774: + this.enterOuterAlt(localctx, 2); + this.state = 20440; + this.match(OracleSqlParser.INTERVAL); + this.state = 20441; + _la = this._input.LA(1); + if(!(_la===363 || _la===2356)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20446; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2445) { + this.state = 20442; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 20443; + this.expression(); + this.state = 20444; + this.match(OracleSqlParser.RIGHT_PAREN); + } + + this.state = 20448; + this.match(OracleSqlParser.TO); + this.state = 20449; + _la = this._input.LA(1); + if(!(_la===983 || _la===1634)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20454; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2899,this._ctx); + if(la_===1) { + this.state = 20450; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 20451; + this.expression(); + this.state = 20452; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + precision_part() { + let localctx = new Precision_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2366, OracleSqlParser.RULE_precision_part); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20458; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 20461; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + case 2440: + this.state = 20459; + this.numeric(); + break; + case 2448: + this.state = 20460; + this.match(OracleSqlParser.ASTERISK); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 20468; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 20463; + this.match(OracleSqlParser.COMMA); + this.state = 20466; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + case 2440: + this.state = 20464; + this.numeric(); + break; + case 2450: + this.state = 20465; + this.numeric_negative(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 20471; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===163 || _la===196) { + this.state = 20470; + _la = this._input.LA(1); + if(!(_la===163 || _la===196)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 20473; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + native_datatype_element() { + let localctx = new Native_datatype_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2368, OracleSqlParser.RULE_native_datatype_element); + try { + this.state = 20540; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 131: + this.enterOuterAlt(localctx, 1); + this.state = 20475; + this.match(OracleSqlParser.BINARY_INTEGER); + break; + case 1401: + this.enterOuterAlt(localctx, 2); + this.state = 20476; + this.match(OracleSqlParser.PLS_INTEGER); + break; + case 1002: + this.enterOuterAlt(localctx, 3); + this.state = 20477; + this.match(OracleSqlParser.NATURAL); + break; + case 128: + this.enterOuterAlt(localctx, 4); + this.state = 20478; + this.match(OracleSqlParser.BINARY_FLOAT); + break; + case 125: + this.enterOuterAlt(localctx, 5); + this.state = 20479; + this.match(OracleSqlParser.BINARY_DOUBLE); + break; + case 1003: + this.enterOuterAlt(localctx, 6); + this.state = 20480; + this.match(OracleSqlParser.NATURALN); + break; + case 1418: + this.enterOuterAlt(localctx, 7); + this.state = 20481; + this.match(OracleSqlParser.POSITIVE); + break; + case 1417: + this.enterOuterAlt(localctx, 8); + this.state = 20482; + this.match(OracleSqlParser.POSITIVEN); + break; + case 1690: + this.enterOuterAlt(localctx, 9); + this.state = 20483; + this.match(OracleSqlParser.SIGNTYPE); + break; + case 1691: + this.enterOuterAlt(localctx, 10); + this.state = 20484; + this.match(OracleSqlParser.SIMPLE_INTEGER); + break; + case 1233: + this.enterOuterAlt(localctx, 11); + this.state = 20485; + this.match(OracleSqlParser.NVARCHAR2); + break; + case 378: + this.enterOuterAlt(localctx, 12); + this.state = 20486; + this.match(OracleSqlParser.DEC); + break; + case 767: + this.enterOuterAlt(localctx, 13); + this.state = 20487; + this.match(OracleSqlParser.INTEGER); + break; + case 775: + this.enterOuterAlt(localctx, 14); + this.state = 20488; + this.match(OracleSqlParser.INT); + break; + case 1229: + this.enterOuterAlt(localctx, 15); + this.state = 20489; + this.match(OracleSqlParser.NUMERIC); + break; + case 1704: + this.enterOuterAlt(localctx, 16); + this.state = 20490; + this.match(OracleSqlParser.SMALLINT); + break; + case 1228: + this.enterOuterAlt(localctx, 17); + this.state = 20491; + this.match(OracleSqlParser.NUMBER); + break; + case 379: + this.enterOuterAlt(localctx, 18); + this.state = 20492; + this.match(OracleSqlParser.DECIMAL); + break; + case 463: + this.enterOuterAlt(localctx, 19); + this.state = 20493; + this.match(OracleSqlParser.DOUBLE); + this.state = 20495; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2905,this._ctx); + if(la_===1) { + this.state = 20494; + this.match(OracleSqlParser.PRECISION); + + } + break; + case 605: + this.enterOuterAlt(localctx, 20); + this.state = 20497; + this.match(OracleSqlParser.FLOAT); + break; + case 1507: + this.enterOuterAlt(localctx, 21); + this.state = 20498; + this.match(OracleSqlParser.REAL); + break; + case 1006: + this.enterOuterAlt(localctx, 22); + this.state = 20499; + this.match(OracleSqlParser.NCHAR); + break; + case 891: + this.enterOuterAlt(localctx, 23); + this.state = 20500; + this.match(OracleSqlParser.LONG); + this.state = 20502; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2906,this._ctx); + if(la_===1) { + this.state = 20501; + this.match(OracleSqlParser.RAW); + + } + break; + case 196: + this.enterOuterAlt(localctx, 24); + this.state = 20504; + this.match(OracleSqlParser.CHAR); + break; + case 193: + this.enterOuterAlt(localctx, 25); + this.state = 20505; + this.match(OracleSqlParser.CHARACTER); + this.state = 20507; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2907,this._ctx); + if(la_===1) { + this.state = 20506; + this.match(OracleSqlParser.VARYING); + + } + break; + case 2257: + this.enterOuterAlt(localctx, 26); + this.state = 20509; + this.match(OracleSqlParser.VARCHAR2); + break; + case 2258: + this.enterOuterAlt(localctx, 27); + this.state = 20510; + this.match(OracleSqlParser.VARCHAR); + break; + case 1765: + this.enterOuterAlt(localctx, 28); + this.state = 20511; + this.match(OracleSqlParser.STRING); + break; + case 1496: + this.enterOuterAlt(localctx, 29); + this.state = 20512; + this.match(OracleSqlParser.RAW); + break; + case 148: + this.enterOuterAlt(localctx, 30); + this.state = 20513; + this.match(OracleSqlParser.BOOLEAN); + break; + case 359: + this.enterOuterAlt(localctx, 31); + this.state = 20514; + this.match(OracleSqlParser.DATE); + break; + case 1599: + this.enterOuterAlt(localctx, 32); + this.state = 20515; + this.match(OracleSqlParser.ROWID); + break; + case 2212: + this.enterOuterAlt(localctx, 33); + this.state = 20516; + this.match(OracleSqlParser.UROWID); + break; + case 2356: + this.enterOuterAlt(localctx, 34); + this.state = 20517; + this.match(OracleSqlParser.YEAR); + break; + case 983: + this.enterOuterAlt(localctx, 35); + this.state = 20518; + this.match(OracleSqlParser.MONTH); + break; + case 363: + this.enterOuterAlt(localctx, 36); + this.state = 20519; + this.match(OracleSqlParser.DAY); + break; + case 677: + this.enterOuterAlt(localctx, 37); + this.state = 20520; + this.match(OracleSqlParser.HOUR); + break; + case 956: + this.enterOuterAlt(localctx, 38); + this.state = 20521; + this.match(OracleSqlParser.MINUTE); + break; + case 1634: + this.enterOuterAlt(localctx, 39); + this.state = 20522; + this.match(OracleSqlParser.SECOND); + break; + case 1631: + this.enterOuterAlt(localctx, 40); + this.state = 20523; + this.match(OracleSqlParser.SDO_GEOMETRY); + break; + case 2113: + this.enterOuterAlt(localctx, 41); + this.state = 20524; + this.match(OracleSqlParser.TIMEZONE_HOUR); + break; + case 2114: + this.enterOuterAlt(localctx, 42); + this.state = 20525; + this.match(OracleSqlParser.TIMEZONE_MINUTE); + break; + case 2116: + this.enterOuterAlt(localctx, 43); + this.state = 20526; + this.match(OracleSqlParser.TIMEZONE_REGION); + break; + case 2112: + this.enterOuterAlt(localctx, 44); + this.state = 20527; + this.match(OracleSqlParser.TIMEZONE_ABBR); + break; + case 2106: + this.enterOuterAlt(localctx, 45); + this.state = 20528; + this.match(OracleSqlParser.TIMESTAMP); + break; + case 2108: + this.enterOuterAlt(localctx, 46); + this.state = 20529; + this.match(OracleSqlParser.TIMESTAMP_UNCONSTRAINED); + break; + case 2107: + this.enterOuterAlt(localctx, 47); + this.state = 20530; + this.match(OracleSqlParser.TIMESTAMP_TZ_UNCONSTRAINED); + break; + case 2105: + this.enterOuterAlt(localctx, 48); + this.state = 20531; + this.match(OracleSqlParser.TIMESTAMP_LTZ_UNCONSTRAINED); + break; + case 2359: + this.enterOuterAlt(localctx, 49); + this.state = 20532; + this.match(OracleSqlParser.YMINTERVAL_UNCONSTRAINED); + break; + case 469: + this.enterOuterAlt(localctx, 50); + this.state = 20533; + this.match(OracleSqlParser.DSINTERVAL_UNCONSTRAINED); + break; + case 119: + this.enterOuterAlt(localctx, 51); + this.state = 20534; + this.match(OracleSqlParser.BFILE); + break; + case 142: + this.enterOuterAlt(localctx, 52); + this.state = 20535; + this.match(OracleSqlParser.BLOB); + break; + case 215: + this.enterOuterAlt(localctx, 53); + this.state = 20536; + this.match(OracleSqlParser.CLOB); + break; + case 1008: + this.enterOuterAlt(localctx, 54); + this.state = 20537; + this.match(OracleSqlParser.NCLOB); + break; + case 964: + this.enterOuterAlt(localctx, 55); + this.state = 20538; + this.match(OracleSqlParser.MLSLABEL); + break; + case 2349: + this.enterOuterAlt(localctx, 56); + this.state = 20539; + this.match(OracleSqlParser.XMLTYPE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + bind_variable() { + let localctx = new Bind_variableContext(this, this._ctx, this.state); + this.enterRule(localctx, 2370, OracleSqlParser.RULE_bind_variable); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20545; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2459: + this.state = 20542; + this.match(OracleSqlParser.BINDVAR); + break; + case 2466: + this.state = 20543; + this.match(OracleSqlParser.COLON); + this.state = 20544; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 20555; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2912,this._ctx); + if(la_===1) { + this.state = 20548; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===731) { + this.state = 20547; + this.match(OracleSqlParser.INDICATOR); + } + + this.state = 20553; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2459: + this.state = 20550; + this.match(OracleSqlParser.BINDVAR); + break; + case 2466: + this.state = 20551; + this.match(OracleSqlParser.COLON); + this.state = 20552; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + this.state = 20561; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2913,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 20557; + this.match(OracleSqlParser.PERIOD); + this.state = 20558; + this.general_element_part(); + } + this.state = 20563; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2913,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + general_element(_p) { + if(_p===undefined) { + _p = 0; + } + const _parentctx = this._ctx; + const _parentState = this.state; + let localctx = new General_elementContext(this, this._ctx, _parentState); + let _prevctx = localctx; + const _startState = 2372; + this.enterRecursionRule(localctx, 2372, OracleSqlParser.RULE_general_element, _p); + try { + this.enterOuterAlt(localctx, 1); + this.state = 20570; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 20565; + this.general_element_part(); + break; + case 2445: + this.state = 20566; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 20567; + this.general_element(0); + this.state = 20568; + this.match(OracleSqlParser.RIGHT_PAREN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this._ctx.stop = this._input.LT(-1); + this.state = 20581; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2916,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + localctx = new General_elementContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, OracleSqlParser.RULE_general_element); + this.state = 20572; + if (!( this.precpred(this._ctx, 2))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); + } + this.state = 20575; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 20573; + this.match(OracleSqlParser.PERIOD); + this.state = 20574; + this.general_element_part(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 20577; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2915, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } + this.state = 20583; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2916,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; + } + + + + general_element_part() { + let localctx = new General_element_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 2374, OracleSqlParser.RULE_general_element_part); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20586; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2472) { + this.state = 20584; + this.match(OracleSqlParser.INTRODUCER); + this.state = 20585; + this.char_set_name(); + } + + this.state = 20588; + this.id_expression(); + this.state = 20591; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2918,this._ctx); + if(la_===1) { + this.state = 20589; + this.match(OracleSqlParser.AT_SIGN); + this.state = 20590; + this.link_name(); + + } + this.state = 20596; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,2919,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 20593; + this.function_argument(); + } + this.state = 20598; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,2919,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + table_element() { + let localctx = new Table_elementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2376, OracleSqlParser.RULE_table_element); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 20601; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2472) { + this.state = 20599; + this.match(OracleSqlParser.INTRODUCER); + this.state = 20600; + this.char_set_name(); + } + + this.state = 20603; + this.id_expression(); + this.state = 20608; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===2438) { + this.state = 20604; + this.match(OracleSqlParser.PERIOD); + this.state = 20605; + this.id_expression(); + this.state = 20610; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + object_privilege() { + let localctx = new Object_privilegeContext(this, this._ctx, this.state); + this.enterRule(localctx, 2378, OracleSqlParser.RULE_object_privilege); + try { + this.state = 20647; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2923,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 20611; + this.match(OracleSqlParser.ALL); + this.state = 20613; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2922,this._ctx); + if(la_===1) { + this.state = 20612; + this.match(OracleSqlParser.PRIVILEGES); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 20615; + this.match(OracleSqlParser.ALTER); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 20616; + this.match(OracleSqlParser.DEBUG); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 20617; + this.match(OracleSqlParser.DELETE); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 20618; + this.match(OracleSqlParser.EXECUTE); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 20619; + this.match(OracleSqlParser.FLASHBACK); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 20620; + this.match(OracleSqlParser.FLASHBACK); + this.state = 20621; + this.match(OracleSqlParser.ARCHIVE); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 20622; + this.match(OracleSqlParser.INDEX); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 20623; + this.match(OracleSqlParser.INHERIT); + this.state = 20624; + this.match(OracleSqlParser.PRIVILEGES); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 20625; + this.match(OracleSqlParser.INHERIT); + this.state = 20626; + this.match(OracleSqlParser.REMOTE); + this.state = 20627; + this.match(OracleSqlParser.PRIVILEGES); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 20628; + this.match(OracleSqlParser.INSERT); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 20629; + this.match(OracleSqlParser.KEEP); + this.state = 20630; + this.match(OracleSqlParser.SEQUENCE); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 20631; + this.match(OracleSqlParser.MERGE); + this.state = 20632; + this.match(OracleSqlParser.VIEW); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 20633; + this.match(OracleSqlParser.ON); + this.state = 20634; + this.match(OracleSqlParser.COMMIT); + this.state = 20635; + this.match(OracleSqlParser.REFRESH); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 20636; + this.match(OracleSqlParser.QUERY); + this.state = 20637; + this.match(OracleSqlParser.REWRITE); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 20638; + this.match(OracleSqlParser.READ); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 20639; + this.match(OracleSqlParser.REFERENCES); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 20640; + this.match(OracleSqlParser.SELECT); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 20641; + this.match(OracleSqlParser.TRANSLATE); + this.state = 20642; + this.match(OracleSqlParser.SQL); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 20643; + this.match(OracleSqlParser.UNDER); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 20644; + this.match(OracleSqlParser.UPDATE); + break; + + case 22: + this.enterOuterAlt(localctx, 22); + this.state = 20645; + this.match(OracleSqlParser.USE); + break; + + case 23: + this.enterOuterAlt(localctx, 23); + this.state = 20646; + this.match(OracleSqlParser.WRITE); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + system_privilege() { + let localctx = new System_privilegeContext(this, this._ctx, this.state); + this.enterRule(localctx, 2380, OracleSqlParser.RULE_system_privilege); + var _la = 0; + try { + this.state = 20975; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2950,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 20649; + this.match(OracleSqlParser.ALL); + this.state = 20650; + this.match(OracleSqlParser.PRIVILEGES); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 20651; + this.match(OracleSqlParser.ADVISOR); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 20652; + this.match(OracleSqlParser.ADMINISTER); + this.state = 20654; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20653; + this.match(OracleSqlParser.ANY); + } + + this.state = 20656; + this.match(OracleSqlParser.SQL); + this.state = 20657; + this.match(OracleSqlParser.TUNING); + this.state = 20658; + this.match(OracleSqlParser.SET); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 20659; + _la = this._input.LA(1); + if(!(_la===42 || _la===319 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20660; + this.match(OracleSqlParser.ANY); + this.state = 20661; + this.match(OracleSqlParser.SQL); + this.state = 20662; + this.match(OracleSqlParser.PROFILE); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 20663; + this.match(OracleSqlParser.ADMINISTER); + this.state = 20664; + this.match(OracleSqlParser.SQL); + this.state = 20665; + this.match(OracleSqlParser.MANAGEMENT); + this.state = 20666; + this.match(OracleSqlParser.OBJECT); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 20667; + this.match(OracleSqlParser.CREATE); + this.state = 20669; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20668; + this.match(OracleSqlParser.ANY); + } + + this.state = 20671; + this.match(OracleSqlParser.CLUSTER); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 20672; + _la = this._input.LA(1); + if(!(_la===42 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20673; + this.match(OracleSqlParser.ANY); + this.state = 20674; + this.match(OracleSqlParser.CLUSTER); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 20675; + _la = this._input.LA(1); + if(!(_la===319 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20676; + this.match(OracleSqlParser.ANY); + this.state = 20677; + this.match(OracleSqlParser.CONTEXT); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 20678; + this.match(OracleSqlParser.EXEMPT); + this.state = 20679; + this.match(OracleSqlParser.REDACTION); + this.state = 20680; + this.match(OracleSqlParser.POLICY); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 20681; + this.match(OracleSqlParser.ALTER); + this.state = 20682; + this.match(OracleSqlParser.DATABASE); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 20683; + _la = this._input.LA(1); + if(!(_la===42 || _la===319)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20685; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1471) { + this.state = 20684; + this.match(OracleSqlParser.PUBLIC); + } + + this.state = 20687; + this.match(OracleSqlParser.DATABASE); + this.state = 20688; + this.match(OracleSqlParser.LINK); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 20689; + this.match(OracleSqlParser.DROP); + this.state = 20690; + this.match(OracleSqlParser.PUBLIC); + this.state = 20691; + this.match(OracleSqlParser.DATABASE); + this.state = 20692; + this.match(OracleSqlParser.LINK); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 20693; + this.match(OracleSqlParser.DEBUG); + this.state = 20694; + this.match(OracleSqlParser.CONNECT); + this.state = 20695; + this.match(OracleSqlParser.SESSION); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 20696; + this.match(OracleSqlParser.DEBUG); + this.state = 20697; + this.match(OracleSqlParser.ANY); + this.state = 20698; + this.match(OracleSqlParser.PROCEDURE); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 20699; + this.match(OracleSqlParser.ANALYZE); + this.state = 20700; + this.match(OracleSqlParser.ANY); + this.state = 20701; + this.match(OracleSqlParser.DICTIONARY); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 20702; + this.match(OracleSqlParser.CREATE); + this.state = 20704; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20703; + this.match(OracleSqlParser.ANY); + } + + this.state = 20706; + this.match(OracleSqlParser.DIMENSION); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 20707; + _la = this._input.LA(1); + if(!(_la===42 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20708; + this.match(OracleSqlParser.ANY); + this.state = 20709; + this.match(OracleSqlParser.DIMENSION); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 20710; + _la = this._input.LA(1); + if(!(_la===319 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20711; + this.match(OracleSqlParser.ANY); + this.state = 20712; + this.match(OracleSqlParser.DIRECTORY); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 20713; + _la = this._input.LA(1); + if(!(_la===319 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20714; + this.match(OracleSqlParser.ANY); + this.state = 20715; + this.match(OracleSqlParser.EDITION); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 20716; + this.match(OracleSqlParser.FLASHBACK); + this.state = 20721; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 64: + this.state = 20717; + this.match(OracleSqlParser.ARCHIVE); + this.state = 20718; + this.match(OracleSqlParser.ADMINISTER); + break; + case 55: + this.state = 20719; + this.match(OracleSqlParser.ANY); + this.state = 20720; + this.match(OracleSqlParser.TABLE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 20723; + _la = this._input.LA(1); + if(!(_la===42 || _la===319 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20724; + this.match(OracleSqlParser.ANY); + this.state = 20725; + this.match(OracleSqlParser.INDEX); + break; + + case 22: + this.enterOuterAlt(localctx, 22); + this.state = 20726; + this.match(OracleSqlParser.CREATE); + this.state = 20728; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20727; + this.match(OracleSqlParser.ANY); + } + + this.state = 20730; + this.match(OracleSqlParser.INDEXTYPE); + break; + + case 23: + this.enterOuterAlt(localctx, 23); + this.state = 20731; + _la = this._input.LA(1); + if(!(_la===42 || _la===467 || _la===540)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20732; + this.match(OracleSqlParser.ANY); + this.state = 20733; + this.match(OracleSqlParser.INDEXTYPE); + break; + + case 24: + this.enterOuterAlt(localctx, 24); + this.state = 20734; + this.match(OracleSqlParser.CREATE); + this.state = 20736; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55 || _la===558) { + this.state = 20735; + _la = this._input.LA(1); + if(!(_la===55 || _la===558)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 20738; + this.match(OracleSqlParser.JOB); + break; + + case 25: + this.enterOuterAlt(localctx, 25); + this.state = 20739; + this.match(OracleSqlParser.EXECUTE); + this.state = 20740; + this.match(OracleSqlParser.ANY); + this.state = 20741; + _la = this._input.LA(1); + if(!(_la===206 || _la===1462)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 26: + this.enterOuterAlt(localctx, 26); + this.state = 20742; + this.match(OracleSqlParser.MANAGE); + this.state = 20743; + this.match(OracleSqlParser.SCHEDULER); + break; + + case 27: + this.enterOuterAlt(localctx, 27); + this.state = 20744; + this.match(OracleSqlParser.ADMINISTER); + this.state = 20745; + this.match(OracleSqlParser.KEY); + this.state = 20746; + this.match(OracleSqlParser.MANAGEMENT); + break; + + case 28: + this.enterOuterAlt(localctx, 28); + this.state = 20747; + this.match(OracleSqlParser.CREATE); + this.state = 20749; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20748; + this.match(OracleSqlParser.ANY); + } + + this.state = 20751; + this.match(OracleSqlParser.LIBRARY); + break; + + case 29: + this.enterOuterAlt(localctx, 29); + this.state = 20752; + _la = this._input.LA(1); + if(!(_la===42 || _la===467 || _la===540)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20753; + this.match(OracleSqlParser.ANY); + this.state = 20754; + this.match(OracleSqlParser.LIBRARY); + break; + + case 30: + this.enterOuterAlt(localctx, 30); + this.state = 20755; + this.match(OracleSqlParser.LOGMINING); + break; + + case 31: + this.enterOuterAlt(localctx, 31); + this.state = 20756; + this.match(OracleSqlParser.CREATE); + this.state = 20758; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20757; + this.match(OracleSqlParser.ANY); + } + + this.state = 20760; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 20761; + this.match(OracleSqlParser.VIEW); + break; + + case 32: + this.enterOuterAlt(localctx, 32); + this.state = 20762; + _la = this._input.LA(1); + if(!(_la===42 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20763; + this.match(OracleSqlParser.ANY); + this.state = 20764; + this.match(OracleSqlParser.MATERIALIZED); + this.state = 20765; + this.match(OracleSqlParser.VIEW); + break; + + case 33: + this.enterOuterAlt(localctx, 33); + this.state = 20767; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===640) { + this.state = 20766; + this.match(OracleSqlParser.GLOBAL); + } + + this.state = 20769; + this.match(OracleSqlParser.QUERY); + this.state = 20770; + this.match(OracleSqlParser.REWRITE); + break; + + case 34: + this.enterOuterAlt(localctx, 34); + this.state = 20771; + this.match(OracleSqlParser.ON); + this.state = 20772; + this.match(OracleSqlParser.COMMIT); + this.state = 20773; + this.match(OracleSqlParser.REFRESH); + break; + + case 35: + this.enterOuterAlt(localctx, 35); + this.state = 20774; + this.match(OracleSqlParser.CREATE); + this.state = 20776; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20775; + this.match(OracleSqlParser.ANY); + } + + this.state = 20778; + this.match(OracleSqlParser.MINING); + this.state = 20779; + this.match(OracleSqlParser.MODEL); + break; + + case 36: + this.enterOuterAlt(localctx, 36); + this.state = 20780; + _la = this._input.LA(1); + if(!(_la===42 || _la===241 || _la===467 || _la===1645)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20781; + this.match(OracleSqlParser.ANY); + this.state = 20782; + this.match(OracleSqlParser.MINING); + this.state = 20783; + this.match(OracleSqlParser.MODEL); + break; + + case 37: + this.enterOuterAlt(localctx, 37); + this.state = 20784; + this.match(OracleSqlParser.CREATE); + this.state = 20786; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20785; + this.match(OracleSqlParser.ANY); + } + + this.state = 20788; + this.match(OracleSqlParser.CUBE); + break; + + case 38: + this.enterOuterAlt(localctx, 38); + this.state = 20789; + _la = this._input.LA(1); + if(!(_la===42 || _la===467 || _la===1645 || _la===2205)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20790; + this.match(OracleSqlParser.ANY); + this.state = 20791; + this.match(OracleSqlParser.CUBE); + break; + + case 39: + this.enterOuterAlt(localctx, 39); + this.state = 20792; + this.match(OracleSqlParser.CREATE); + this.state = 20794; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20793; + this.match(OracleSqlParser.ANY); + } + + this.state = 20796; + this.match(OracleSqlParser.MEASURE); + this.state = 20797; + this.match(OracleSqlParser.FOLDER); + break; + + case 40: + this.enterOuterAlt(localctx, 40); + this.state = 20798; + _la = this._input.LA(1); + if(!(_la===401 || _la===467 || _la===754)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20799; + this.match(OracleSqlParser.ANY); + this.state = 20800; + this.match(OracleSqlParser.MEASURE); + this.state = 20801; + this.match(OracleSqlParser.FOLDER); + break; + + case 41: + this.enterOuterAlt(localctx, 41); + this.state = 20802; + this.match(OracleSqlParser.CREATE); + this.state = 20804; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20803; + this.match(OracleSqlParser.ANY); + } + + this.state = 20806; + this.match(OracleSqlParser.CUBE); + this.state = 20807; + this.match(OracleSqlParser.DIMENSION); + break; + + case 42: + this.enterOuterAlt(localctx, 42); + this.state = 20808; + _la = this._input.LA(1); + if(!(_la===42 || _la===401 || _la===467 || _la===754 || _la===1645 || _la===2205)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20809; + this.match(OracleSqlParser.ANY); + this.state = 20810; + this.match(OracleSqlParser.CUBE); + this.state = 20811; + this.match(OracleSqlParser.DIMENSION); + break; + + case 43: + this.enterOuterAlt(localctx, 43); + this.state = 20812; + this.match(OracleSqlParser.CREATE); + this.state = 20814; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20813; + this.match(OracleSqlParser.ANY); + } + + this.state = 20816; + this.match(OracleSqlParser.CUBE); + this.state = 20817; + this.match(OracleSqlParser.BUILD); + this.state = 20818; + this.match(OracleSqlParser.PROCESS); + break; + + case 44: + this.enterOuterAlt(localctx, 44); + this.state = 20819; + _la = this._input.LA(1); + if(!(_la===467 || _la===2205)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20820; + this.match(OracleSqlParser.ANY); + this.state = 20821; + this.match(OracleSqlParser.CUBE); + this.state = 20822; + this.match(OracleSqlParser.BUILD); + this.state = 20823; + this.match(OracleSqlParser.PROCESS); + break; + + case 45: + this.enterOuterAlt(localctx, 45); + this.state = 20824; + this.match(OracleSqlParser.CREATE); + this.state = 20826; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20825; + this.match(OracleSqlParser.ANY); + } + + this.state = 20828; + this.match(OracleSqlParser.OPERATOR); + break; + + case 46: + this.enterOuterAlt(localctx, 46); + this.state = 20829; + _la = this._input.LA(1); + if(!(_la===42 || _la===467 || _la===540)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20830; + this.match(OracleSqlParser.ANY); + this.state = 20831; + this.match(OracleSqlParser.OPERATOR); + break; + + case 47: + this.enterOuterAlt(localctx, 47); + this.state = 20832; + _la = this._input.LA(1); + if(!(_la===42 || _la===319 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20833; + this.match(OracleSqlParser.ANY); + this.state = 20834; + this.match(OracleSqlParser.OUTLINE); + break; + + case 48: + this.enterOuterAlt(localctx, 48); + this.state = 20835; + this.match(OracleSqlParser.CREATE); + this.state = 20836; + this.match(OracleSqlParser.PLUGGABLE); + this.state = 20837; + this.match(OracleSqlParser.DATABASE); + break; + + case 49: + this.enterOuterAlt(localctx, 49); + this.state = 20838; + this.match(OracleSqlParser.SET); + this.state = 20839; + this.match(OracleSqlParser.CONTAINER); + break; + + case 50: + this.enterOuterAlt(localctx, 50); + this.state = 20840; + this.match(OracleSqlParser.CREATE); + this.state = 20842; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20841; + this.match(OracleSqlParser.ANY); + } + + this.state = 20844; + this.match(OracleSqlParser.PROCEDURE); + break; + + case 51: + this.enterOuterAlt(localctx, 51); + this.state = 20845; + _la = this._input.LA(1); + if(!(_la===42 || _la===467 || _la===540)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20846; + this.match(OracleSqlParser.ANY); + this.state = 20847; + this.match(OracleSqlParser.PROCEDURE); + break; + + case 52: + this.enterOuterAlt(localctx, 52); + this.state = 20848; + _la = this._input.LA(1); + if(!(_la===42 || _la===319 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20849; + this.match(OracleSqlParser.PROFILE); + break; + + case 53: + this.enterOuterAlt(localctx, 53); + this.state = 20850; + this.match(OracleSqlParser.CREATE); + this.state = 20851; + this.match(OracleSqlParser.ROLE); + break; + + case 54: + this.enterOuterAlt(localctx, 54); + this.state = 20852; + _la = this._input.LA(1); + if(!(_la===42 || _la===467 || _la===645)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20853; + this.match(OracleSqlParser.ANY); + this.state = 20854; + this.match(OracleSqlParser.ROLE); + break; + + case 55: + this.enterOuterAlt(localctx, 55); + this.state = 20855; + _la = this._input.LA(1); + if(!(_la===42 || _la===319 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20856; + this.match(OracleSqlParser.ROLLBACK); + this.state = 20857; + this.match(OracleSqlParser.SEGMENT); + break; + + case 56: + this.enterOuterAlt(localctx, 56); + this.state = 20858; + this.match(OracleSqlParser.CREATE); + this.state = 20860; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20859; + this.match(OracleSqlParser.ANY); + } + + this.state = 20862; + this.match(OracleSqlParser.SEQUENCE); + break; + + case 57: + this.enterOuterAlt(localctx, 57); + this.state = 20863; + _la = this._input.LA(1); + if(!(_la===42 || _la===467 || _la===1645)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20864; + this.match(OracleSqlParser.ANY); + this.state = 20865; + this.match(OracleSqlParser.SEQUENCE); + break; + + case 58: + this.enterOuterAlt(localctx, 58); + this.state = 20866; + _la = this._input.LA(1); + if(!(_la===42 || _la===319 || _la===1574)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20867; + this.match(OracleSqlParser.SESSION); + break; + + case 59: + this.enterOuterAlt(localctx, 59); + this.state = 20868; + this.match(OracleSqlParser.ALTER); + this.state = 20869; + this.match(OracleSqlParser.RESOURCE); + this.state = 20870; + this.match(OracleSqlParser.COST); + break; + + case 60: + this.enterOuterAlt(localctx, 60); + this.state = 20871; + this.match(OracleSqlParser.CREATE); + this.state = 20873; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20872; + this.match(OracleSqlParser.ANY); + } + + this.state = 20875; + this.match(OracleSqlParser.SQL); + this.state = 20876; + this.match(OracleSqlParser.TRANSLATION); + this.state = 20877; + this.match(OracleSqlParser.PROFILE); + break; + + case 61: + this.enterOuterAlt(localctx, 61); + this.state = 20878; + _la = this._input.LA(1); + if(!(_la===42 || _la===467 || _la===2239)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20879; + this.match(OracleSqlParser.ANY); + this.state = 20880; + this.match(OracleSqlParser.SQL); + this.state = 20881; + this.match(OracleSqlParser.TRANSLATION); + this.state = 20882; + this.match(OracleSqlParser.PROFILE); + break; + + case 62: + this.enterOuterAlt(localctx, 62); + this.state = 20883; + this.match(OracleSqlParser.TRANSLATE); + this.state = 20884; + this.match(OracleSqlParser.ANY); + this.state = 20885; + this.match(OracleSqlParser.SQL); + break; + + case 63: + this.enterOuterAlt(localctx, 63); + this.state = 20886; + this.match(OracleSqlParser.CREATE); + this.state = 20888; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20887; + this.match(OracleSqlParser.ANY); + } + + this.state = 20890; + this.match(OracleSqlParser.SYNONYM); + break; + + case 64: + this.enterOuterAlt(localctx, 64); + this.state = 20891; + this.match(OracleSqlParser.DROP); + this.state = 20892; + this.match(OracleSqlParser.ANY); + this.state = 20893; + this.match(OracleSqlParser.SYNONYM); + break; + + case 65: + this.enterOuterAlt(localctx, 65); + this.state = 20894; + _la = this._input.LA(1); + if(!(_la===319 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20895; + this.match(OracleSqlParser.PUBLIC); + this.state = 20896; + this.match(OracleSqlParser.SYNONYM); + break; + + case 66: + this.enterOuterAlt(localctx, 66); + this.state = 20897; + this.match(OracleSqlParser.CREATE); + this.state = 20899; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20898; + this.match(OracleSqlParser.ANY); + } + + this.state = 20901; + this.match(OracleSqlParser.TABLE); + break; + + case 67: + this.enterOuterAlt(localctx, 67); + this.state = 20902; + _la = this._input.LA(1); + if(!(_la===42 || _la===102 || _la===241 || _la===401 || _la===467 || _la===754 || _la===879 || _la===1503 || _la===1645 || _la===2205)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20903; + this.match(OracleSqlParser.ANY); + this.state = 20904; + this.match(OracleSqlParser.TABLE); + break; + + case 68: + this.enterOuterAlt(localctx, 68); + this.state = 20905; + _la = this._input.LA(1); + if(!(_la===42 || _la===319 || _la===467 || _la===903 || _la===2183)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20906; + this.match(OracleSqlParser.TABLESPACE); + break; + + case 69: + this.enterOuterAlt(localctx, 69); + this.state = 20907; + this.match(OracleSqlParser.CREATE); + this.state = 20909; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20908; + this.match(OracleSqlParser.ANY); + } + + this.state = 20911; + this.match(OracleSqlParser.TRIGGER); + break; + + case 70: + this.enterOuterAlt(localctx, 70); + this.state = 20912; + _la = this._input.LA(1); + if(!(_la===42 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20913; + this.match(OracleSqlParser.ANY); + this.state = 20914; + this.match(OracleSqlParser.TRIGGER); + break; + + case 71: + this.enterOuterAlt(localctx, 71); + this.state = 20915; + this.match(OracleSqlParser.ADMINISTER); + this.state = 20916; + this.match(OracleSqlParser.DATABASE); + this.state = 20917; + this.match(OracleSqlParser.TRIGGER); + break; + + case 72: + this.enterOuterAlt(localctx, 72); + this.state = 20918; + this.match(OracleSqlParser.CREATE); + this.state = 20920; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20919; + this.match(OracleSqlParser.ANY); + } + + this.state = 20922; + this.match(OracleSqlParser.TYPE); + break; + + case 73: + this.enterOuterAlt(localctx, 73); + this.state = 20923; + _la = this._input.LA(1); + if(!(_la===42 || _la===467 || _la===540 || _la===2175)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20924; + this.match(OracleSqlParser.ANY); + this.state = 20925; + this.match(OracleSqlParser.TYPE); + break; + + case 74: + this.enterOuterAlt(localctx, 74); + this.state = 20926; + _la = this._input.LA(1); + if(!(_la===42 || _la===319 || _la===467)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20927; + this.match(OracleSqlParser.USER); + break; + + case 75: + this.enterOuterAlt(localctx, 75); + this.state = 20928; + this.match(OracleSqlParser.CREATE); + this.state = 20930; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20929; + this.match(OracleSqlParser.ANY); + } + + this.state = 20932; + this.match(OracleSqlParser.VIEW); + break; + + case 76: + this.enterOuterAlt(localctx, 76); + this.state = 20933; + _la = this._input.LA(1); + if(!(_la===467 || _la===944 || _la===2175)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20934; + this.match(OracleSqlParser.ANY); + this.state = 20935; + this.match(OracleSqlParser.VIEW); + break; + + case 77: + this.enterOuterAlt(localctx, 77); + this.state = 20936; + _la = this._input.LA(1); + if(!(_la===46 || _la===85)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 20937; + this.match(OracleSqlParser.ANY); + break; + + case 78: + this.enterOuterAlt(localctx, 78); + this.state = 20938; + this.match(OracleSqlParser.BECOME); + this.state = 20939; + this.match(OracleSqlParser.USER); + break; + + case 79: + this.enterOuterAlt(localctx, 79); + this.state = 20940; + this.match(OracleSqlParser.CHANGE); + this.state = 20941; + this.match(OracleSqlParser.NOTIFICATION); + break; + + case 80: + this.enterOuterAlt(localctx, 80); + this.state = 20942; + this.match(OracleSqlParser.EXEMPT); + this.state = 20943; + this.match(OracleSqlParser.ACCESS); + this.state = 20944; + this.match(OracleSqlParser.POLICY); + break; + + case 81: + this.enterOuterAlt(localctx, 81); + this.state = 20945; + this.match(OracleSqlParser.FORCE); + this.state = 20947; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===55) { + this.state = 20946; + this.match(OracleSqlParser.ANY); + } + + this.state = 20949; + this.match(OracleSqlParser.TRANSACTION); + break; + + case 82: + this.enterOuterAlt(localctx, 82); + this.state = 20950; + this.match(OracleSqlParser.GRANT); + this.state = 20951; + this.match(OracleSqlParser.ANY); + this.state = 20953; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===1236) { + this.state = 20952; + this.match(OracleSqlParser.OBJECT); + } + + this.state = 20955; + this.match(OracleSqlParser.PRIVILEGE); + break; + + case 83: + this.enterOuterAlt(localctx, 83); + this.state = 20956; + this.match(OracleSqlParser.INHERIT); + this.state = 20957; + this.match(OracleSqlParser.ANY); + this.state = 20958; + this.match(OracleSqlParser.PRIVILEGES); + break; + + case 84: + this.enterOuterAlt(localctx, 84); + this.state = 20959; + this.match(OracleSqlParser.KEEP); + this.state = 20960; + this.match(OracleSqlParser.DATE); + this.state = 20961; + this.match(OracleSqlParser.TIME); + break; + + case 85: + this.enterOuterAlt(localctx, 85); + this.state = 20962; + this.match(OracleSqlParser.KEEP); + this.state = 20963; + this.match(OracleSqlParser.SYSGUID); + break; + + case 86: + this.enterOuterAlt(localctx, 86); + this.state = 20964; + this.match(OracleSqlParser.PURGE); + this.state = 20965; + this.match(OracleSqlParser.DBA_RECYCLEBIN); + break; + + case 87: + this.enterOuterAlt(localctx, 87); + this.state = 20966; + this.match(OracleSqlParser.RESUMABLE); + break; + + case 88: + this.enterOuterAlt(localctx, 88); + this.state = 20967; + this.match(OracleSqlParser.SELECT); + this.state = 20968; + this.match(OracleSqlParser.ANY); + this.state = 20969; + _la = this._input.LA(1); + if(!(_la===419 || _la===2145)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 89: + this.enterOuterAlt(localctx, 89); + this.state = 20970; + this.match(OracleSqlParser.SYSBACKUP); + break; + + case 90: + this.enterOuterAlt(localctx, 90); + this.state = 20971; + this.match(OracleSqlParser.SYSDBA); + break; + + case 91: + this.enterOuterAlt(localctx, 91); + this.state = 20972; + this.match(OracleSqlParser.SYSDG); + break; + + case 92: + this.enterOuterAlt(localctx, 92); + this.state = 20973; + this.match(OracleSqlParser.SYSKM); + break; + + case 93: + this.enterOuterAlt(localctx, 93); + this.state = 20974; + this.match(OracleSqlParser.SYSOPER); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + constant() { + let localctx = new ConstantContext(this, this._ctx, this.state); + this.enterRule(localctx, 2382, OracleSqlParser.RULE_constant); + var _la = 0; + try { + this.state = 21040; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2106: + this.enterOuterAlt(localctx, 1); + this.state = 20977; + this.match(OracleSqlParser.TIMESTAMP); + this.state = 20980; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2434: + case 2441: + this.state = 20978; + this.quoted_string(); + break; + case 2459: + case 2466: + this.state = 20979; + this.bind_variable(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 20986; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2952,this._ctx); + if(la_===1) { + this.state = 20982; + this.match(OracleSqlParser.AT); + this.state = 20983; + this.match(OracleSqlParser.TIME); + this.state = 20984; + this.match(OracleSqlParser.ZONE); + this.state = 20985; + this.quoted_string(); + + } + break; + case 774: + this.enterOuterAlt(localctx, 2); + this.state = 20988; + this.match(OracleSqlParser.INTERVAL); + this.state = 20992; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2434: + case 2441: + this.state = 20989; + this.quoted_string(); + break; + case 2459: + case 2466: + this.state = 20990; + this.bind_variable(); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2442: + case 2472: + case 2478: + this.state = 20991; + this.general_element_part(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 20994; + _la = this._input.LA(1); + if(!(_la===363 || _la===677 || _la===956 || _la===983 || _la===1634 || _la===2356)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 21008; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2957,this._ctx); + if(la_===1) { + this.state = 20995; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 20998; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + this.state = 20996; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 2459: + case 2466: + this.state = 20997; + this.bind_variable(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 21005; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2451) { + this.state = 21000; + this.match(OracleSqlParser.COMMA); + this.state = 21003; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + this.state = 21001; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 2459: + case 2466: + this.state = 21002; + this.bind_variable(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 21007; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + this.state = 21026; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2961,this._ctx); + if(la_===1) { + this.state = 21010; + this.match(OracleSqlParser.TO); + this.state = 21024; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 983: + this.state = 21011; + this.match(OracleSqlParser.MONTH); + break; + case 363: + this.state = 21012; + this.match(OracleSqlParser.DAY); + break; + case 677: + this.state = 21013; + this.match(OracleSqlParser.HOUR); + break; + case 956: + this.state = 21014; + this.match(OracleSqlParser.MINUTE); + break; + case 1634: + this.state = 21015; + this.match(OracleSqlParser.SECOND); + this.state = 21022; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2959,this._ctx); + if(la_===1) { + this.state = 21016; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 21019; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + this.state = 21017; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + break; + case 2459: + case 2466: + this.state = 21018; + this.bind_variable(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 21021; + this.match(OracleSqlParser.RIGHT_PAREN); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + break; + case 2439: + case 2440: + this.enterOuterAlt(localctx, 3); + this.state = 21028; + this.numeric(); + break; + case 359: + this.enterOuterAlt(localctx, 4); + this.state = 21029; + this.match(OracleSqlParser.DATE); + this.state = 21030; + this.quoted_string(); + break; + case 2434: + case 2441: + this.enterOuterAlt(localctx, 5); + this.state = 21031; + this.quoted_string(); + break; + case 1226: + this.enterOuterAlt(localctx, 6); + this.state = 21032; + this.match(OracleSqlParser.NULL_); + break; + case 2156: + this.enterOuterAlt(localctx, 7); + this.state = 21033; + this.match(OracleSqlParser.TRUE); + break; + case 573: + this.enterOuterAlt(localctx, 8); + this.state = 21034; + this.match(OracleSqlParser.FALSE); + break; + case 371: + this.enterOuterAlt(localctx, 9); + this.state = 21035; + this.match(OracleSqlParser.DBTIMEZONE); + break; + case 1667: + this.enterOuterAlt(localctx, 10); + this.state = 21036; + this.match(OracleSqlParser.SESSIONTIMEZONE); + break; + case 958: + this.enterOuterAlt(localctx, 11); + this.state = 21037; + this.match(OracleSqlParser.MINVALUE); + break; + case 930: + this.enterOuterAlt(localctx, 12); + this.state = 21038; + this.match(OracleSqlParser.MAXVALUE); + break; + case 387: + this.enterOuterAlt(localctx, 13); + this.state = 21039; + this.match(OracleSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + numeric() { + let localctx = new NumericContext(this, this._ctx, this.state); + this.enterRule(localctx, 2384, OracleSqlParser.RULE_numeric); + try { + this.state = 21047; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 2439: + this.enterOuterAlt(localctx, 1); + this.state = 21042; + this.match(OracleSqlParser.UNSIGNED_INTEGER); + this.state = 21044; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2963,this._ctx); + if(la_===1) { + this.state = 21043; + this.match(OracleSqlParser.PERIOD); + + } + break; + case 2440: + this.enterOuterAlt(localctx, 2); + this.state = 21046; + this.match(OracleSqlParser.APPROXIMATE_NUM_LIT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + numeric_negative() { + let localctx = new Numeric_negativeContext(this, this._ctx, this.state); + this.enterRule(localctx, 2386, OracleSqlParser.RULE_numeric_negative); + try { + this.enterOuterAlt(localctx, 1); + this.state = 21049; + this.match(OracleSqlParser.MINUS_SIGN); + this.state = 21050; + this.numeric(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + quoted_string() { + let localctx = new Quoted_stringContext(this, this._ctx, this.state); + this.enterRule(localctx, 2388, OracleSqlParser.RULE_quoted_string); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 21052; + _la = this._input.LA(1); + if(!(_la===2434 || _la===2441)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + identifier() { + let localctx = new IdentifierContext(this, this._ctx, this.state); + this.enterRule(localctx, 2390, OracleSqlParser.RULE_identifier); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 21056; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===2472) { + this.state = 21054; + this.match(OracleSqlParser.INTRODUCER); + this.state = 21055; + this.char_set_name(); + } + + this.state = 21058; + this.id_expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + id_expression() { + let localctx = new Id_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 2392, OracleSqlParser.RULE_id_expression); + try { + this.state = 21062; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 50: + case 52: + case 53: + case 54: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 68: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 119: + case 120: + case 122: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 161: + case 162: + case 163: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 192: + case 193: + case 196: + case 197: + case 198: + case 199: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 362: + case 363: + case 364: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 376: + case 377: + case 378: + case 379: + case 380: + case 381: + case 382: + case 383: + case 384: + case 385: + case 386: + case 389: + case 390: + case 391: + case 392: + case 393: + case 394: + case 395: + case 396: + case 397: + case 398: + case 399: + case 400: + case 401: + case 402: + case 404: + case 405: + case 406: + case 407: + case 408: + case 409: + case 410: + case 411: + case 413: + case 414: + case 415: + case 417: + case 418: + case 419: + case 420: + case 421: + case 423: + case 424: + case 425: + case 426: + case 427: + case 430: + case 431: + case 432: + case 433: + case 434: + case 435: + case 437: + case 438: + case 439: + case 441: + case 442: + case 444: + case 445: + case 446: + case 447: + case 448: + case 452: + case 453: + case 460: + case 461: + case 462: + case 463: + case 464: + case 465: + case 466: + case 468: + case 469: + case 470: + case 471: + case 473: + case 474: + case 475: + case 476: + case 477: + case 478: + case 479: + case 480: + case 481: + case 482: + case 483: + case 484: + case 485: + case 486: + case 487: + case 488: + case 491: + case 493: + case 494: + case 495: + case 496: + case 497: + case 498: + case 499: + case 500: + case 502: + case 503: + case 504: + case 507: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: + case 568: + case 569: + case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: + case 577: + case 578: + case 579: + case 580: + case 581: + case 582: + case 583: + case 584: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: + case 636: + case 637: + case 638: + case 639: + case 640: + case 641: + case 642: + case 643: + case 646: + case 648: + case 649: + case 650: + case 651: + case 652: + case 653: + case 654: + case 656: + case 657: + case 658: + case 659: + case 660: + case 662: + case 663: + case 664: + case 665: + case 666: + case 667: + case 668: + case 669: + case 670: + case 672: + case 673: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 680: + case 681: + case 682: + case 684: + case 685: + case 686: + case 687: + case 688: + case 689: + case 690: + case 692: + case 693: + case 694: + case 695: + case 696: + case 697: + case 698: + case 699: + case 700: + case 701: + case 702: + case 703: + case 704: + case 705: + case 706: + case 707: + case 708: + case 709: + case 710: + case 711: + case 712: + case 713: + case 714: + case 716: + case 717: + case 718: + case 719: + case 720: + case 721: + case 722: + case 723: + case 724: + case 725: + case 726: + case 727: + case 728: + case 729: + case 730: + case 731: + case 732: + case 733: + case 734: + case 735: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: + case 751: + case 752: + case 753: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 774: + case 775: + case 778: + case 779: + case 780: + case 781: + case 784: + case 785: + case 786: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 827: + case 828: + case 829: + case 830: + case 831: + case 833: + case 834: + case 835: + case 836: + case 837: + case 838: + case 839: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 856: + case 857: + case 859: + case 860: + case 863: + case 864: + case 865: + case 866: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 898: + case 899: + case 900: + case 901: + case 902: + case 903: + case 904: + case 905: + case 906: + case 907: + case 908: + case 909: + case 911: + case 912: + case 913: + case 914: + case 915: + case 916: + case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 930: + case 931: + case 932: + case 933: + case 934: + case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 946: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 953: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1018: + case 1019: + case 1021: + case 1022: + case 1023: + case 1024: + case 1025: + case 1026: + case 1027: + case 1028: + case 1029: + case 1030: + case 1031: + case 1032: + case 1033: + case 1034: + case 1035: + case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: + case 1042: + case 1043: + case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: + case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: + case 1059: + case 1060: + case 1061: + case 1062: + case 1063: + case 1064: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + case 1071: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1088: + case 1089: + case 1090: + case 1091: + case 1092: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1099: + case 1100: + case 1101: + case 1102: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1150: + case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1218: + case 1219: + case 1220: + case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + case 1252: + case 1253: + case 1254: + case 1256: + case 1258: + case 1259: + case 1260: + case 1261: + case 1262: + case 1263: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1272: + case 1273: + case 1274: + case 1275: + case 1276: + case 1277: + case 1281: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1292: + case 1293: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: + case 1302: + case 1303: + case 1304: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1315: + case 1316: + case 1317: + case 1318: + case 1319: + case 1320: + case 1322: + case 1323: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1376: + case 1377: + case 1383: + case 1384: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1390: + case 1391: + case 1392: + case 1394: + case 1395: + case 1396: + case 1397: + case 1398: + case 1399: + case 1400: + case 1401: + case 1402: + case 1403: + case 1404: + case 1405: + case 1406: + case 1407: + case 1408: + case 1409: + case 1410: + case 1411: + case 1412: + case 1413: + case 1414: + case 1415: + case 1416: + case 1417: + case 1418: + case 1419: + case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1425: + case 1426: + case 1427: + case 1428: + case 1429: + case 1430: + case 1431: + case 1432: + case 1433: + case 1434: + case 1435: + case 1436: + case 1437: + case 1438: + case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: + case 1446: + case 1447: + case 1448: + case 1449: + case 1450: + case 1451: + case 1453: + case 1454: + case 1455: + case 1456: + case 1457: + case 1458: + case 1459: + case 1460: + case 1461: + case 1462: + case 1463: + case 1464: + case 1465: + case 1466: + case 1467: + case 1468: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1485: + case 1486: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1497: + case 1498: + case 1499: + case 1500: + case 1502: + case 1503: + case 1504: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1518: + case 1519: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1529: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: + case 1535: + case 1536: + case 1537: + case 1538: + case 1539: + case 1540: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1547: + case 1548: + case 1549: + case 1551: + case 1552: + case 1553: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1560: + case 1561: + case 1562: + case 1563: + case 1564: + case 1565: + case 1566: + case 1567: + case 1569: + case 1570: + case 1571: + case 1572: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1579: + case 1580: + case 1581: + case 1582: + case 1583: + case 1584: + case 1585: + case 1586: + case 1588: + case 1589: + case 1590: + case 1591: + case 1592: + case 1593: + case 1594: + case 1595: + case 1596: + case 1597: + case 1598: + case 1599: + case 1600: + case 1601: + case 1602: + case 1603: + case 1604: + case 1605: + case 1606: + case 1607: + case 1608: + case 1609: + case 1610: + case 1611: + case 1612: + case 1613: + case 1614: + case 1615: + case 1616: + case 1617: + case 1618: + case 1619: + case 1620: + case 1621: + case 1622: + case 1623: + case 1624: + case 1625: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1632: + case 1633: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1642: + case 1643: + case 1644: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: + case 1651: + case 1653: + case 1654: + case 1657: + case 1658: + case 1659: + case 1660: + case 1661: + case 1662: + case 1663: + case 1664: + case 1665: + case 1666: + case 1667: + case 1668: + case 1669: + case 1670: + case 1671: + case 1672: + case 1673: + case 1675: + case 1676: + case 1677: + case 1679: + case 1680: + case 1681: + case 1682: + case 1683: + case 1684: + case 1685: + case 1686: + case 1687: + case 1688: + case 1689: + case 1690: + case 1691: + case 1692: + case 1693: + case 1694: + case 1695: + case 1696: + case 1699: + case 1700: + case 1701: + case 1702: + case 1703: + case 1704: + case 1705: + case 1706: + case 1707: + case 1708: + case 1709: + case 1710: + case 1711: + case 1712: + case 1713: + case 1714: + case 1715: + case 1716: + case 1717: + case 1718: + case 1719: + case 1720: + case 1722: + case 1723: + case 1724: + case 1725: + case 1726: + case 1727: + case 1728: + case 1729: + case 1730: + case 1731: + case 1732: + case 1733: + case 1734: + case 1737: + case 1738: + case 1739: + case 1740: + case 1741: + case 1742: + case 1743: + case 1744: + case 1745: + case 1746: + case 1747: + case 1748: + case 1749: + case 1750: + case 1751: + case 1752: + case 1753: + case 1754: + case 1755: + case 1756: + case 1757: + case 1758: + case 1759: + case 1760: + case 1761: + case 1762: + case 1763: + case 1764: + case 1765: + case 1766: + case 1767: + case 1768: + case 1769: + case 1770: + case 1771: + case 1772: + case 1773: + case 1774: + case 1775: + case 1776: + case 1777: + case 1778: + case 1779: + case 1780: + case 1781: + case 1782: + case 1783: + case 1784: + case 1785: + case 1786: + case 1787: + case 1788: + case 1789: + case 1790: + case 1791: + case 1792: + case 1793: + case 1795: + case 1796: + case 1797: + case 1798: + case 1799: + case 1800: + case 1801: + case 1802: + case 1803: + case 1804: + case 1805: + case 1806: + case 1807: + case 1808: + case 1809: + case 1810: + case 1811: + case 1812: + case 1813: + case 1814: + case 1815: + case 1816: + case 1817: + case 1818: + case 1819: + case 1820: + case 1821: + case 1822: + case 1823: + case 1824: + case 1825: + case 1826: + case 1827: + case 1828: + case 1829: + case 1830: + case 1831: + case 1832: + case 1833: + case 1834: + case 1835: + case 1836: + case 1837: + case 1838: + case 1839: + case 1840: + case 1841: + case 1842: + case 1843: + case 1844: + case 1845: + case 1846: + case 1847: + case 1848: + case 1849: + case 1850: + case 1851: + case 1852: + case 1853: + case 1854: + case 1855: + case 1856: + case 1857: + case 1858: + case 1859: + case 1860: + case 1861: + case 1862: + case 1863: + case 1864: + case 1865: + case 1866: + case 1867: + case 1868: + case 1869: + case 1870: + case 1871: + case 1872: + case 1873: + case 1874: + case 1875: + case 1876: + case 1877: + case 1878: + case 1879: + case 1880: + case 1881: + case 1882: + case 1883: + case 1884: + case 1885: + case 1886: + case 1887: + case 1888: + case 1889: + case 1890: + case 1891: + case 1892: + case 1893: + case 1894: + case 1895: + case 1896: + case 1897: + case 1898: + case 1899: + case 1900: + case 1901: + case 1902: + case 1903: + case 1904: + case 1905: + case 1906: + case 1907: + case 1908: + case 1909: + case 1910: + case 1911: + case 1912: + case 1913: + case 1914: + case 1915: + case 1916: + case 1917: + case 1918: + case 1919: + case 1920: + case 1921: + case 1922: + case 1923: + case 1924: + case 1925: + case 1926: + case 1927: + case 1928: + case 1929: + case 1930: + case 1931: + case 1932: + case 1933: + case 1934: + case 1935: + case 1936: + case 1937: + case 1938: + case 1939: + case 1940: + case 1941: + case 1942: + case 1943: + case 1944: + case 1945: + case 1946: + case 1947: + case 1948: + case 1949: + case 1950: + case 1951: + case 1952: + case 1953: + case 1954: + case 1955: + case 1956: + case 1957: + case 1958: + case 1959: + case 1960: + case 1961: + case 1962: + case 1963: + case 1964: + case 1965: + case 1966: + case 1967: + case 1968: + case 1969: + case 1970: + case 1971: + case 1972: + case 1973: + case 1974: + case 1975: + case 1976: + case 1977: + case 1978: + case 1979: + case 1980: + case 1981: + case 1982: + case 1983: + case 1984: + case 1985: + case 1986: + case 1987: + case 1988: + case 1989: + case 1990: + case 1991: + case 1992: + case 1993: + case 1994: + case 1995: + case 1996: + case 1997: + case 1998: + case 1999: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 2046: + case 2047: + case 2048: + case 2049: + case 2050: + case 2051: + case 2052: + case 2053: + case 2054: + case 2055: + case 2056: + case 2057: + case 2058: + case 2059: + case 2060: + case 2061: + case 2062: + case 2063: + case 2064: + case 2065: + case 2066: + case 2067: + case 2068: + case 2069: + case 2070: + case 2071: + case 2072: + case 2073: + case 2074: + case 2075: + case 2076: + case 2077: + case 2078: + case 2079: + case 2080: + case 2081: + case 2082: + case 2083: + case 2084: + case 2085: + case 2086: + case 2087: + case 2088: + case 2089: + case 2090: + case 2091: + case 2093: + case 2094: + case 2096: + case 2097: + case 2098: + case 2100: + case 2101: + case 2102: + case 2103: + case 2104: + case 2105: + case 2106: + case 2107: + case 2108: + case 2109: + case 2110: + case 2111: + case 2112: + case 2113: + case 2114: + case 2115: + case 2116: + case 2117: + case 2118: + case 2120: + case 2121: + case 2122: + case 2123: + case 2124: + case 2125: + case 2126: + case 2127: + case 2128: + case 2129: + case 2130: + case 2131: + case 2132: + case 2133: + case 2134: + case 2135: + case 2136: + case 2137: + case 2138: + case 2140: + case 2141: + case 2142: + case 2143: + case 2144: + case 2145: + case 2146: + case 2148: + case 2149: + case 2150: + case 2151: + case 2152: + case 2153: + case 2154: + case 2155: + case 2156: + case 2157: + case 2158: + case 2159: + case 2160: + case 2161: + case 2162: + case 2163: + case 2164: + case 2165: + case 2166: + case 2167: + case 2168: + case 2169: + case 2170: + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2199: + case 2200: + case 2201: + case 2202: + case 2203: + case 2204: + case 2206: + case 2207: + case 2208: + case 2209: + case 2210: + case 2211: + case 2212: + case 2213: + case 2214: + case 2215: + case 2216: + case 2217: + case 2218: + case 2219: + case 2220: + case 2221: + case 2222: + case 2223: + case 2224: + case 2225: + case 2226: + case 2227: + case 2228: + case 2229: + case 2230: + case 2231: + case 2232: + case 2233: + case 2234: + case 2235: + case 2236: + case 2237: + case 2238: + case 2239: + case 2240: + case 2241: + case 2242: + case 2243: + case 2244: + case 2245: + case 2246: + case 2247: + case 2248: + case 2249: + case 2250: + case 2251: + case 2252: + case 2253: + case 2254: + case 2256: + case 2257: + case 2258: + case 2260: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + case 2281: + case 2282: + case 2283: + case 2285: + case 2286: + case 2287: + case 2288: + case 2289: + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2307: + case 2309: + case 2310: + case 2311: + case 2312: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + case 2320: + case 2321: + case 2322: + case 2323: + case 2324: + case 2325: + case 2326: + case 2327: + case 2328: + case 2329: + case 2331: + case 2332: + case 2333: + case 2334: + case 2335: + case 2336: + case 2337: + case 2338: + case 2339: + case 2340: + case 2341: + case 2342: + case 2343: + case 2344: + case 2345: + case 2347: + case 2348: + case 2349: + case 2350: + case 2351: + case 2352: + case 2353: + case 2355: + case 2356: + case 2358: + case 2359: + case 2360: + case 2361: + case 2363: + case 2364: + case 2365: + case 2366: + case 2367: + case 2368: + case 2369: + case 2370: + case 2371: + case 2372: + case 2373: + case 2374: + case 2375: + case 2376: + case 2377: + case 2378: + case 2379: + case 2380: + case 2381: + case 2383: + case 2385: + case 2386: + case 2387: + case 2388: + case 2389: + case 2390: + case 2391: + case 2392: + case 2393: + case 2394: + case 2395: + case 2396: + case 2397: + case 2398: + case 2400: + case 2403: + case 2404: + case 2405: + case 2406: + case 2407: + case 2408: + case 2409: + case 2410: + case 2411: + case 2412: + case 2413: + case 2414: + case 2415: + case 2416: + case 2417: + case 2418: + case 2419: + case 2420: + case 2421: + case 2422: + case 2423: + case 2424: + case 2425: + case 2426: + case 2427: + case 2428: + case 2429: + case 2430: + case 2431: + case 2432: + case 2433: + case 2438: + case 2478: + this.enterOuterAlt(localctx, 1); + this.state = 21060; + this.regular_id(); + break; + case 2442: + this.enterOuterAlt(localctx, 2); + this.state = 21061; + this.match(OracleSqlParser.DELIMITED_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + inquiry_directive() { + let localctx = new Inquiry_directiveContext(this, this._ctx, this.state); + this.enterRule(localctx, 2394, OracleSqlParser.RULE_inquiry_directive); + try { + this.enterOuterAlt(localctx, 1); + this.state = 21064; + this.match(OracleSqlParser.INQUIRY_DIRECTIVE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + outer_join_sign() { + let localctx = new Outer_join_signContext(this, this._ctx, this.state); + this.enterRule(localctx, 2396, OracleSqlParser.RULE_outer_join_sign); + try { + this.enterOuterAlt(localctx, 1); + this.state = 21066; + this.match(OracleSqlParser.LEFT_PAREN); + this.state = 21067; + this.match(OracleSqlParser.PLUS_SIGN); + this.state = 21068; + this.match(OracleSqlParser.RIGHT_PAREN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + regular_id() { + let localctx = new Regular_idContext(this, this._ctx, this.state); + this.enterRule(localctx, 2398, OracleSqlParser.RULE_regular_id); + try { + this.state = 21180; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2967,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 21070; + this.non_reserved_keywords_pre12c(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 21071; + this.non_reserved_keywords_in_12c(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 21072; + this.non_reserved_keywords_in_18c(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 21073; + this.match(OracleSqlParser.REGULAR_ID); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 21074; + this.match(OracleSqlParser.ABSENT); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 21075; + this.match(OracleSqlParser.A_LETTER); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 21076; + this.match(OracleSqlParser.AGENT); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 21077; + this.match(OracleSqlParser.AGGREGATE); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 21078; + this.match(OracleSqlParser.ANALYZE); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 21079; + this.match(OracleSqlParser.AUTONOMOUS_TRANSACTION); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 21080; + this.match(OracleSqlParser.BACKINGFILE); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 21081; + this.match(OracleSqlParser.BATCH); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 21082; + this.match(OracleSqlParser.BINARY_INTEGER); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 21083; + this.match(OracleSqlParser.BOOLEAN); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 21084; + this.match(OracleSqlParser.C_LETTER); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 21085; + this.match(OracleSqlParser.CHAR); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 21086; + this.match(OracleSqlParser.CHARSETID); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 21087; + this.match(OracleSqlParser.CHARSETFORM); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 21088; + this.match(OracleSqlParser.CLUSTER); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 21089; + this.match(OracleSqlParser.CONSTRUCTOR); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 21090; + this.match(OracleSqlParser.CUSTOMDATUM); + break; + + case 22: + this.enterOuterAlt(localctx, 22); + this.state = 21091; + this.match(OracleSqlParser.CASESENSITIVE); + break; + + case 23: + this.enterOuterAlt(localctx, 23); + this.state = 21092; + this.match(OracleSqlParser.DECIMAL); + break; + + case 24: + this.enterOuterAlt(localctx, 24); + this.state = 21093; + this.match(OracleSqlParser.DELETE); + break; + + case 25: + this.enterOuterAlt(localctx, 25); + this.state = 21094; + this.match(OracleSqlParser.DEPRECATE); + break; + + case 26: + this.enterOuterAlt(localctx, 26); + this.state = 21095; + this.match(OracleSqlParser.DETERMINISTIC); + break; + + case 27: + this.enterOuterAlt(localctx, 27); + this.state = 21096; + this.match(OracleSqlParser.DSINTERVAL_UNCONSTRAINED); + break; + + case 28: + this.enterOuterAlt(localctx, 28); + this.state = 21097; + this.match(OracleSqlParser.DURATION); + break; + + case 29: + this.enterOuterAlt(localctx, 29); + this.state = 21098; + this.match(OracleSqlParser.E_LETTER); + break; + + case 30: + this.enterOuterAlt(localctx, 30); + this.state = 21099; + this.match(OracleSqlParser.ENABLED); + break; + + case 31: + this.enterOuterAlt(localctx, 31); + this.state = 21100; + this.match(OracleSqlParser.ERROR_INDEX); + break; + + case 32: + this.enterOuterAlt(localctx, 32); + this.state = 21101; + this.match(OracleSqlParser.ERROR_CODE); + break; + + case 33: + this.enterOuterAlt(localctx, 33); + this.state = 21102; + this.match(OracleSqlParser.ERR); + break; + + case 34: + this.enterOuterAlt(localctx, 34); + this.state = 21103; + this.match(OracleSqlParser.EXCEPTION); + break; + + case 35: + this.enterOuterAlt(localctx, 35); + this.state = 21104; + this.match(OracleSqlParser.EXCEPTION_INIT); + break; + + case 36: + this.enterOuterAlt(localctx, 36); + this.state = 21105; + this.match(OracleSqlParser.EXCEPTIONS); + break; + + case 37: + this.enterOuterAlt(localctx, 37); + this.state = 21106; + this.match(OracleSqlParser.EXISTS); + break; + + case 38: + this.enterOuterAlt(localctx, 38); + this.state = 21107; + this.match(OracleSqlParser.EXIT); + break; + + case 39: + this.enterOuterAlt(localctx, 39); + this.state = 21108; + this.match(OracleSqlParser.EXTEND); + break; + + case 40: + this.enterOuterAlt(localctx, 40); + this.state = 21109; + this.match(OracleSqlParser.FILESTORE); + break; + + case 41: + this.enterOuterAlt(localctx, 41); + this.state = 21110; + this.match(OracleSqlParser.FLOAT); + break; + + case 42: + this.enterOuterAlt(localctx, 42); + this.state = 21111; + this.match(OracleSqlParser.FORALL); + break; + + case 43: + this.enterOuterAlt(localctx, 43); + this.state = 21112; + this.match(OracleSqlParser.G_LETTER); + break; + + case 44: + this.enterOuterAlt(localctx, 44); + this.state = 21113; + this.match(OracleSqlParser.INDICES); + break; + + case 45: + this.enterOuterAlt(localctx, 45); + this.state = 21114; + this.match(OracleSqlParser.INOUT); + break; + + case 46: + this.enterOuterAlt(localctx, 46); + this.state = 21115; + this.match(OracleSqlParser.INTEGER); + break; + + case 47: + this.enterOuterAlt(localctx, 47); + this.state = 21116; + this.match(OracleSqlParser.JSON_TRANSFORM); + break; + + case 48: + this.enterOuterAlt(localctx, 48); + this.state = 21117; + this.match(OracleSqlParser.K_LETTER); + break; + + case 49: + this.enterOuterAlt(localctx, 49); + this.state = 21118; + this.match(OracleSqlParser.LANGUAGE); + break; + + case 50: + this.enterOuterAlt(localctx, 50); + this.state = 21119; + this.match(OracleSqlParser.LONG); + break; + + case 51: + this.enterOuterAlt(localctx, 51); + this.state = 21120; + this.match(OracleSqlParser.LOOP); + break; + + case 52: + this.enterOuterAlt(localctx, 52); + this.state = 21121; + this.match(OracleSqlParser.MAXLEN); + break; + + case 53: + this.enterOuterAlt(localctx, 53); + this.state = 21122; + this.match(OracleSqlParser.MOUNTPOINT); + break; + + case 54: + this.enterOuterAlt(localctx, 54); + this.state = 21123; + this.match(OracleSqlParser.M_LETTER); + break; + + case 55: + this.enterOuterAlt(localctx, 55); + this.state = 21124; + this.match(OracleSqlParser.MISSING); + break; + + case 56: + this.enterOuterAlt(localctx, 56); + this.state = 21125; + this.match(OracleSqlParser.MISMATCH); + break; + + case 57: + this.enterOuterAlt(localctx, 57); + this.state = 21126; + this.match(OracleSqlParser.NUMBER); + break; + + case 58: + this.enterOuterAlt(localctx, 58); + this.state = 21127; + this.match(OracleSqlParser.ORADATA); + break; + + case 59: + this.enterOuterAlt(localctx, 59); + this.state = 21128; + this.match(OracleSqlParser.OSERROR); + break; + + case 60: + this.enterOuterAlt(localctx, 60); + this.state = 21129; + this.match(OracleSqlParser.OUT); + break; + + case 61: + this.enterOuterAlt(localctx, 61); + this.state = 21130; + this.match(OracleSqlParser.OVERRIDING); + break; + + case 62: + this.enterOuterAlt(localctx, 62); + this.state = 21131; + this.match(OracleSqlParser.P_LETTER); + break; + + case 63: + this.enterOuterAlt(localctx, 63); + this.state = 21132; + this.match(OracleSqlParser.PARALLEL_ENABLE); + break; + + case 64: + this.enterOuterAlt(localctx, 64); + this.state = 21133; + this.match(OracleSqlParser.PIPELINED); + break; + + case 65: + this.enterOuterAlt(localctx, 65); + this.state = 21134; + this.match(OracleSqlParser.PLS_INTEGER); + break; + + case 66: + this.enterOuterAlt(localctx, 66); + this.state = 21135; + this.match(OracleSqlParser.PMEM); + break; + + case 67: + this.enterOuterAlt(localctx, 67); + this.state = 21136; + this.match(OracleSqlParser.POSITIVE); + break; + + case 68: + this.enterOuterAlt(localctx, 68); + this.state = 21137; + this.match(OracleSqlParser.POSITIVEN); + break; + + case 69: + this.enterOuterAlt(localctx, 69); + this.state = 21138; + this.match(OracleSqlParser.PRAGMA); + break; + + case 70: + this.enterOuterAlt(localctx, 70); + this.state = 21139; + this.match(OracleSqlParser.PUBLIC); + break; + + case 71: + this.enterOuterAlt(localctx, 71); + this.state = 21140; + this.match(OracleSqlParser.RAISE); + break; + + case 72: + this.enterOuterAlt(localctx, 72); + this.state = 21141; + this.match(OracleSqlParser.RAW); + break; + + case 73: + this.enterOuterAlt(localctx, 73); + this.state = 21142; + this.match(OracleSqlParser.RECORD); + break; + + case 74: + this.enterOuterAlt(localctx, 74); + this.state = 21143; + this.match(OracleSqlParser.REF); + break; + + case 75: + this.enterOuterAlt(localctx, 75); + this.state = 21144; + this.match(OracleSqlParser.RENAME); + break; + + case 76: + this.enterOuterAlt(localctx, 76); + this.state = 21145; + this.match(OracleSqlParser.RESTRICT_REFERENCES); + break; + + case 77: + this.enterOuterAlt(localctx, 77); + this.state = 21146; + this.match(OracleSqlParser.RESULT); + break; + + case 78: + this.enterOuterAlt(localctx, 78); + this.state = 21147; + this.match(OracleSqlParser.SDO_GEOMETRY); + break; + + case 79: + this.enterOuterAlt(localctx, 79); + this.state = 21148; + this.match(OracleSqlParser.SELF); + break; + + case 80: + this.enterOuterAlt(localctx, 80); + this.state = 21149; + this.match(OracleSqlParser.SERIALLY_REUSABLE); + break; + + case 81: + this.enterOuterAlt(localctx, 81); + this.state = 21150; + this.match(OracleSqlParser.SET); + break; + + case 82: + this.enterOuterAlt(localctx, 82); + this.state = 21151; + this.match(OracleSqlParser.SEQ); + break; + + case 83: + this.enterOuterAlt(localctx, 83); + this.state = 21152; + this.match(OracleSqlParser.SHARDSPACE); + break; + + case 84: + this.enterOuterAlt(localctx, 84); + this.state = 21153; + this.match(OracleSqlParser.SIGNTYPE); + break; + + case 85: + this.enterOuterAlt(localctx, 85); + this.state = 21154; + this.match(OracleSqlParser.SIMPLE_INTEGER); + break; + + case 86: + this.enterOuterAlt(localctx, 86); + this.state = 21155; + this.match(OracleSqlParser.SMALLINT); + break; + + case 87: + this.enterOuterAlt(localctx, 87); + this.state = 21156; + this.match(OracleSqlParser.STRUCT); + break; + + case 88: + this.enterOuterAlt(localctx, 88); + this.state = 21157; + this.match(OracleSqlParser.SQLDATA); + break; + + case 89: + this.enterOuterAlt(localctx, 89); + this.state = 21158; + this.match(OracleSqlParser.SQLERROR); + break; + + case 90: + this.enterOuterAlt(localctx, 90); + this.state = 21159; + this.match(OracleSqlParser.SUBTYPE); + break; + + case 91: + this.enterOuterAlt(localctx, 91); + this.state = 21160; + this.match(OracleSqlParser.T_LETTER); + break; + + case 92: + this.enterOuterAlt(localctx, 92); + this.state = 21161; + this.match(OracleSqlParser.TDO); + break; + + case 93: + this.enterOuterAlt(localctx, 93); + this.state = 21162; + this.match(OracleSqlParser.TIMESTAMP_LTZ_UNCONSTRAINED); + break; + + case 94: + this.enterOuterAlt(localctx, 94); + this.state = 21163; + this.match(OracleSqlParser.TIMESTAMP_TZ_UNCONSTRAINED); + break; + + case 95: + this.enterOuterAlt(localctx, 95); + this.state = 21164; + this.match(OracleSqlParser.TIMESTAMP_UNCONSTRAINED); + break; + + case 96: + this.enterOuterAlt(localctx, 96); + this.state = 21165; + this.match(OracleSqlParser.TIMEZONE); + break; + + case 97: + this.enterOuterAlt(localctx, 97); + this.state = 21166; + this.match(OracleSqlParser.TRIGGER); + break; + + case 98: + this.enterOuterAlt(localctx, 98); + this.state = 21167; + this.match(OracleSqlParser.UDF); + break; + + case 99: + this.enterOuterAlt(localctx, 99); + this.state = 21168; + this.match(OracleSqlParser.VARCHAR); + break; + + case 100: + this.enterOuterAlt(localctx, 100); + this.state = 21169; + this.match(OracleSqlParser.VARCHAR2); + break; + + case 101: + this.enterOuterAlt(localctx, 101); + this.state = 21170; + this.match(OracleSqlParser.VARIABLE); + break; + + case 102: + this.enterOuterAlt(localctx, 102); + this.state = 21171; + this.match(OracleSqlParser.WARNING); + break; + + case 103: + this.enterOuterAlt(localctx, 103); + this.state = 21172; + this.match(OracleSqlParser.WHILE); + break; + + case 104: + this.enterOuterAlt(localctx, 104); + this.state = 21173; + this.match(OracleSqlParser.WM_CONCAT); + break; + + case 105: + this.enterOuterAlt(localctx, 105); + this.state = 21174; + this.match(OracleSqlParser.XMLAGG); + break; + + case 106: + this.enterOuterAlt(localctx, 106); + this.state = 21175; + this.match(OracleSqlParser.YMINTERVAL_UNCONSTRAINED); + break; + + case 107: + this.enterOuterAlt(localctx, 107); + this.state = 21176; + this.match(OracleSqlParser.REGR_); + break; + + case 108: + this.enterOuterAlt(localctx, 108); + this.state = 21177; + this.match(OracleSqlParser.VAR_); + break; + + case 109: + this.enterOuterAlt(localctx, 109); + this.state = 21178; + this.match(OracleSqlParser.VALUE); + break; + + case 110: + this.enterOuterAlt(localctx, 110); + this.state = 21179; + this.match(OracleSqlParser.COVAR_); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + non_reserved_keywords_in_18c() { + let localctx = new Non_reserved_keywords_in_18cContext(this, this._ctx, this.state); + this.enterRule(localctx, 2400, OracleSqlParser.RULE_non_reserved_keywords_in_18c); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 21182; + _la = this._input.LA(1); + if(!(_la===2429 || _la===2430)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + non_reserved_keywords_in_12c() { + let localctx = new Non_reserved_keywords_in_12cContext(this, this._ctx, this.state); + this.enterRule(localctx, 2402, OracleSqlParser.RULE_non_reserved_keywords_in_12c); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 21184; + _la = this._input.LA(1); + if(!(((((_la - 6)) & ~0x1f) === 0 && ((1 << (_la - 6)) & 75523445) !== 0) || ((((_la - 43)) & ~0x1f) === 0 && ((1 << (_la - 43)) & 2153383445) !== 0) || ((((_la - 76)) & ~0x1f) === 0 && ((1 << (_la - 76)) & 161742849) !== 0) || ((((_la - 109)) & ~0x1f) === 0 && ((1 << (_la - 109)) & 134218019) !== 0) || ((((_la - 154)) & ~0x1f) === 0 && ((1 << (_la - 154)) & 1086783489) !== 0) || ((((_la - 207)) & ~0x1f) === 0 && ((1 << (_la - 207)) & 180383) !== 0) || ((((_la - 244)) & ~0x1f) === 0 && ((1 << (_la - 244)) & 60556035) !== 0) || ((((_la - 288)) & ~0x1f) === 0 && ((1 << (_la - 288)) & 14863) !== 0) || ((((_la - 320)) & ~0x1f) === 0 && ((1 << (_la - 320)) & 4633) !== 0) || ((((_la - 353)) & ~0x1f) === 0 && ((1 << (_la - 353)) & 537397301) !== 0) || ((((_la - 390)) & ~0x1f) === 0 && ((1 << (_la - 390)) & 2172651043) !== 0) || ((((_la - 426)) & ~0x1f) === 0 && ((1 << (_la - 426)) & 1049105) !== 0) || ((((_la - 473)) & ~0x1f) === 0 && ((1 << (_la - 473)) & 75763843) !== 0) || ((((_la - 515)) & ~0x1f) === 0 && ((1 << (_la - 515)) & 134227969) !== 0) || ((((_la - 554)) & ~0x1f) === 0 && ((1 << (_la - 554)) & 1186336833) !== 0) || ((((_la - 588)) & ~0x1f) === 0 && ((1 << (_la - 588)) & 2148016131) !== 0) || ((((_la - 632)) & ~0x1f) === 0 && ((1 << (_la - 632)) & 16777349) !== 0) || ((((_la - 669)) & ~0x1f) === 0 && ((1 << (_la - 669)) & 3288344067) !== 0) || ((((_la - 716)) & ~0x1f) === 0 && ((1 << (_la - 716)) & 1342701569) !== 0) || ((((_la - 749)) & ~0x1f) === 0 && ((1 << (_la - 749)) & 1074266113) !== 0) || ((((_la - 784)) & ~0x1f) === 0 && ((1 << (_la - 784)) & 50331137) !== 0) || ((((_la - 818)) & ~0x1f) === 0 && ((1 << (_la - 818)) & 1208156677) !== 0) || ((((_la - 857)) & ~0x1f) === 0 && ((1 << (_la - 857)) & 1076363265) !== 0) || ((((_la - 893)) & ~0x1f) === 0 && ((1 << (_la - 893)) & 15769601) !== 0) || ((((_la - 927)) & ~0x1f) === 0 && ((1 << (_la - 927)) & 1074274049) !== 0) || ((((_la - 970)) & ~0x1f) === 0 && ((1 << (_la - 970)) & 2131025) !== 0) || _la===1010 || ((((_la - 1053)) & ~0x1f) === 0 && ((1 << (_la - 1053)) & 3255107907) !== 0) || ((((_la - 1090)) & ~0x1f) === 0 && ((1 << (_la - 1090)) & 7356417) !== 0) || ((((_la - 1130)) & ~0x1f) === 0 && ((1 << (_la - 1130)) & 245104769) !== 0) || ((((_la - 1162)) & ~0x1f) === 0 && ((1 << (_la - 1162)) & 33587489) !== 0) || ((((_la - 1205)) & ~0x1f) === 0 && ((1 << (_la - 1205)) & 265857) !== 0) || ((((_la - 1237)) & ~0x1f) === 0 && ((1 << (_la - 1237)) & 106561) !== 0) || ((((_la - 1274)) & ~0x1f) === 0 && ((1 << (_la - 1274)) & 17809415) !== 0) || ((((_la - 1336)) & ~0x1f) === 0 && ((1 << (_la - 1336)) & 362807507) !== 0) || ((((_la - 1384)) & ~0x1f) === 0 && ((1 << (_la - 1384)) & 4169138201) !== 0) || ((((_la - 1423)) & ~0x1f) === 0 && ((1 << (_la - 1423)) & 444629197) !== 0) || ((((_la - 1455)) & ~0x1f) === 0 && ((1 << (_la - 1455)) & 35709953) !== 0) || ((((_la - 1489)) & ~0x1f) === 0 && ((1 << (_la - 1489)) & 1073872897) !== 0) || ((((_la - 1551)) & ~0x1f) === 0 && ((1 << (_la - 1551)) & 524297) !== 0) || ((((_la - 1592)) & ~0x1f) === 0 && ((1 << (_la - 1592)) & 8650817) !== 0) || ((((_la - 1627)) & ~0x1f) === 0 && ((1 << (_la - 1627)) & 777) !== 0) || ((((_la - 1659)) & ~0x1f) === 0 && ((1 << (_la - 1659)) & 137363477) !== 0) || ((((_la - 1709)) & ~0x1f) === 0 && ((1 << (_la - 1709)) & 5799939) !== 0) || ((((_la - 1741)) & ~0x1f) === 0 && ((1 << (_la - 1741)) & 4194307) !== 0) || ((((_la - 1776)) & ~0x1f) === 0 && ((1 << (_la - 1776)) & 2189951491) !== 0) || ((((_la - 1825)) & ~0x1f) === 0 && ((1 << (_la - 1825)) & 3169) !== 0) || ((((_la - 1858)) & ~0x1f) === 0 && ((1 << (_la - 1858)) & 1019905) !== 0) || _la===1902 || _la===1930 || _la===1941 || ((((_la - 2072)) & ~0x1f) === 0 && ((1 << (_la - 2072)) & 3225421831) !== 0) || ((((_la - 2122)) & ~0x1f) === 0 && ((1 << (_la - 2122)) & 1090519041) !== 0) || ((((_la - 2160)) & ~0x1f) === 0 && ((1 << (_la - 2160)) & 67125505) !== 0) || ((((_la - 2193)) & ~0x1f) === 0 && ((1 << (_la - 2193)) & 286261313) !== 0) || ((((_la - 2228)) & ~0x1f) === 0 && ((1 << (_la - 2228)) & 92196929) !== 0) || ((((_la - 2270)) & ~0x1f) === 0 && ((1 << (_la - 2270)) & 50495503) !== 0) || _la===2305 || _la===2310 || ((((_la - 2353)) & ~0x1f) === 0 && ((1 << (_la - 2353)) & 1610547333) !== 0) || ((((_la - 2385)) & ~0x1f) === 0 && ((1 << (_la - 2385)) & 2097165) !== 0) || _la===2438)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + non_reserved_keywords_pre12c() { + let localctx = new Non_reserved_keywords_pre12cContext(this, this._ctx, this.state); + this.enterRule(localctx, 2404, OracleSqlParser.RULE_non_reserved_keywords_pre12c); + var _la = 0; + try { + this.enterOuterAlt(localctx, 1); + this.state = 21186; + _la = this._input.LA(1); + if(!((((_la) & ~0x1f) === 0 && ((1 << _la) & 3756434102) !== 0) || ((((_la - 33)) & ~0x1f) === 0 && ((1 << (_la - 33)) & 2544019921) !== 0) || ((((_la - 66)) & ~0x1f) === 0 && ((1 << (_la - 66)) & 737671909) !== 0) || ((((_la - 98)) & ~0x1f) === 0 && ((1 << (_la - 98)) & 4251379473) !== 0) || ((((_la - 130)) & ~0x1f) === 0 && ((1 << (_la - 130)) & 3204183997) !== 0) || ((((_la - 162)) & ~0x1f) === 0 && ((1 << (_la - 162)) & 3752794355) !== 0) || ((((_la - 197)) & ~0x1f) === 0 && ((1 << (_la - 197)) & 4101800951) !== 0) || ((((_la - 229)) & ~0x1f) === 0 && ((1 << (_la - 229)) & 2658828255) !== 0) || ((((_la - 261)) & ~0x1f) === 0 && ((1 << (_la - 261)) & 2248015409) !== 0) || ((((_la - 293)) & ~0x1f) === 0 && ((1 << (_la - 293)) & 871890479) !== 0) || ((((_la - 325)) & ~0x1f) === 0 && ((1 << (_la - 325)) & 2818047847) !== 0) || ((((_la - 362)) & ~0x1f) === 0 && ((1 << (_la - 362)) & 3387816947) !== 0) || ((((_la - 394)) & ~0x1f) === 0 && ((1 << (_la - 394)) & 3869498653) !== 0) || ((((_la - 427)) & ~0x1f) === 0 && ((1 << (_la - 427)) & 104258801) !== 0) || ((((_la - 460)) & ~0x1f) === 0 && ((1 << (_la - 460)) & 501976447) !== 0) || ((((_la - 493)) & ~0x1f) === 0 && ((1 << (_la - 493)) & 1329548951) !== 0) || ((((_la - 525)) & ~0x1f) === 0 && ((1 << (_la - 525)) & 3756637429) !== 0) || ((((_la - 557)) & ~0x1f) === 0 && ((1 << (_la - 557)) & 1193885175) !== 0) || ((((_la - 591)) & ~0x1f) === 0 && ((1 << (_la - 591)) & 3888036351) !== 0) || ((((_la - 623)) & ~0x1f) === 0 && ((1 << (_la - 623)) & 4271829495) !== 0) || ((((_la - 657)) & ~0x1f) === 0 && ((1 << (_la - 657)) & 4187983855) !== 0) || ((((_la - 689)) & ~0x1f) === 0 && ((1 << (_la - 689)) & 4093637563) !== 0) || ((((_la - 721)) & ~0x1f) === 0 && ((1 << (_la - 721)) & 3313448959) !== 0) || ((((_la - 753)) & ~0x1f) === 0 && ((1 << (_la - 753)) & 443498493) !== 0) || ((((_la - 785)) & ~0x1f) === 0 && ((1 << (_la - 785)) & 4227858683) !== 0) || ((((_la - 817)) & ~0x1f) === 0 && ((1 << (_la - 817)) & 1878620645) !== 0) || ((((_la - 849)) & ~0x1f) === 0 && ((1 << (_la - 849)) & 2549861567) !== 0) || ((((_la - 881)) & ~0x1f) === 0 && ((1 << (_la - 881)) & 3589989311) !== 0) || ((((_la - 917)) & ~0x1f) === 0 && ((1 << (_la - 917)) & 3749968895) !== 0) || ((((_la - 949)) & ~0x1f) === 0 && ((1 << (_la - 949)) & 1910480607) !== 0) || ((((_la - 981)) & ~0x1f) === 0 && ((1 << (_la - 981)) & 3753900911) !== 0) || ((((_la - 1013)) & ~0x1f) === 0 && ((1 << (_la - 1013)) & 4294967167) !== 0) || ((((_la - 1045)) & ~0x1f) === 0 && ((1 << (_la - 1045)) & 4075724031) !== 0) || ((((_la - 1077)) & ~0x1f) === 0 && ((1 << (_la - 1077)) & 4158642493) !== 0) || ((((_la - 1109)) & ~0x1f) === 0 && ((1 << (_la - 1109)) & 4016045873) !== 0) || ((((_la - 1141)) & ~0x1f) === 0 && ((1 << (_la - 1141)) & 3688770687) !== 0) || ((((_la - 1173)) & ~0x1f) === 0 && ((1 << (_la - 1173)) & 3489640367) !== 0) || ((((_la - 1206)) & ~0x1f) === 0 && ((1 << (_la - 1206)) & 2142105791) !== 0) || ((((_la - 1238)) & ~0x1f) === 0 && ((1 << (_la - 1238)) & 4294258591) !== 0) || ((((_la - 1272)) & ~0x1f) === 0 && ((1 << (_la - 1272)) & 3686858243) !== 0) || ((((_la - 1304)) & ~0x1f) === 0 && ((1 << (_la - 1304)) & 3988384757) !== 0) || ((((_la - 1338)) & ~0x1f) === 0 && ((1 << (_la - 1338)) & 3667394505) !== 0) || ((((_la - 1370)) & ~0x1f) === 0 && ((1 << (_la - 1370)) & 2134483143) !== 0) || ((((_la - 1402)) & ~0x1f) === 0 && ((1 << (_la - 1402)) & 3328065951) !== 0) || ((((_la - 1434)) & ~0x1f) === 0 && ((1 << (_la - 1434)) & 2144907183) !== 0) || ((((_la - 1466)) & ~0x1f) === 0 && ((1 << (_la - 1466)) & 3196042179) !== 0) || ((((_la - 1498)) & ~0x1f) === 0 && ((1 << (_la - 1498)) & 4292857463) !== 0) || ((((_la - 1530)) & ~0x1f) === 0 && ((1 << (_la - 1530)) & 4140826623) !== 0) || ((((_la - 1562)) & ~0x1f) === 0 && ((1 << (_la - 1562)) & 3187596991) !== 0) || ((((_la - 1594)) & ~0x1f) === 0 && ((1 << (_la - 1594)) & 4292804591) !== 0) || ((((_la - 1626)) & ~0x1f) === 0 && ((1 << (_la - 1626)) & 2347235789) !== 0) || ((((_la - 1660)) & ~0x1f) === 0 && ((1 << (_la - 1660)) & 1004748277) !== 0) || ((((_la - 1692)) & ~0x1f) === 0 && ((1 << (_la - 1692)) & 3657035679) !== 0) || ((((_la - 1725)) & ~0x1f) === 0 && ((1 << (_la - 1725)) & 4294767527) !== 0) || ((((_la - 1757)) & ~0x1f) === 0 && ((1 << (_la - 1757)) & 3957850047) !== 0) || ((((_la - 1789)) & ~0x1f) === 0 && ((1 << (_la - 1789)) & 4294699999) !== 0) || ((((_la - 1821)) & ~0x1f) === 0 && ((1 << (_la - 1821)) & 4294916591) !== 0) || ((((_la - 1853)) & ~0x1f) === 0 && ((1 << (_la - 1853)) & 4262330335) !== 0) || ((((_la - 1885)) & ~0x1f) === 0 && ((1 << (_la - 1885)) & 4294836223) !== 0) || ((((_la - 1917)) & ~0x1f) === 0 && ((1 << (_la - 1917)) & 4278181887) !== 0) || ((((_la - 1949)) & ~0x1f) === 0 && ((1 << (_la - 1949)) & 4294967295) !== 0) || ((((_la - 1981)) & ~0x1f) === 0 && ((1 << (_la - 1981)) & 4294967295) !== 0) || ((((_la - 2013)) & ~0x1f) === 0 && ((1 << (_la - 2013)) & 4294967295) !== 0) || ((((_la - 2045)) & ~0x1f) === 0 && ((1 << (_la - 2045)) & 2281701375) !== 0) || ((((_la - 2077)) & ~0x1f) === 0 && ((1 << (_la - 2077)) & 700022719) !== 0) || ((((_la - 2109)) & ~0x1f) === 0 && ((1 << (_la - 2109)) & 3221216255) !== 0) || ((((_la - 2141)) & ~0x1f) === 0 && ((1 << (_la - 2141)) & 3891771295) !== 0) || ((((_la - 2173)) & ~0x1f) === 0 && ((1 << (_la - 2173)) & 4193246781) !== 0) || ((((_la - 2206)) & ~0x1f) === 0 && ((1 << (_la - 2206)) & 4022302591) !== 0) || ((((_la - 2238)) & ~0x1f) === 0 && ((1 << (_la - 2238)) & 4261716043) !== 0) || ((((_la - 2274)) & ~0x1f) === 0 && ((1 << (_la - 2274)) & 2043139071) !== 0) || ((((_la - 2307)) & ~0x1f) === 0 && ((1 << (_la - 2307)) & 4286577589) !== 0) || ((((_la - 2339)) & ~0x1f) === 0 && ((1 << (_la - 2339)) & 1061830527) !== 0) || ((((_la - 2386)) & ~0x1f) === 0 && ((1 << (_la - 2386)) & 4261302265) !== 0) || ((((_la - 2418)) & ~0x1f) === 0 && ((1 << (_la - 2418)) & 61) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + +} + +OracleSqlParser.EOF = antlr4.Token.EOF; +OracleSqlParser.ABORT = 1; +OracleSqlParser.ABS = 2; +OracleSqlParser.ABSENT = 3; +OracleSqlParser.ACCESS = 4; +OracleSqlParser.ACCESSED = 5; +OracleSqlParser.ACCESSIBLE = 6; +OracleSqlParser.ACCOUNT = 7; +OracleSqlParser.ACL = 8; +OracleSqlParser.ACOS = 9; +OracleSqlParser.ACROSS = 10; +OracleSqlParser.ACTION = 11; +OracleSqlParser.ACTIONS = 12; +OracleSqlParser.ACTIVATE = 13; +OracleSqlParser.ACTIVE = 14; +OracleSqlParser.ACTIVE_COMPONENT = 15; +OracleSqlParser.ACTIVE_DATA = 16; +OracleSqlParser.ACTIVE_FUNCTION = 17; +OracleSqlParser.ACTIVE_TAG = 18; +OracleSqlParser.ACTIVITY = 19; +OracleSqlParser.ADAPTIVE_PLAN = 20; +OracleSqlParser.ADD = 21; +OracleSqlParser.ADD_COLUMN = 22; +OracleSqlParser.ADD_GROUP = 23; +OracleSqlParser.ADD_MONTHS = 24; +OracleSqlParser.ADJ_DATE = 25; +OracleSqlParser.ADMIN = 26; +OracleSqlParser.ADMINISTER = 27; +OracleSqlParser.ADMINISTRATOR = 28; +OracleSqlParser.ADVANCED = 29; +OracleSqlParser.ADVISE = 30; +OracleSqlParser.ADVISOR = 31; +OracleSqlParser.AFD_DISKSTRING = 32; +OracleSqlParser.AFTER = 33; +OracleSqlParser.AGENT = 34; +OracleSqlParser.AGGREGATE = 35; +OracleSqlParser.A_LETTER = 36; +OracleSqlParser.ALIAS = 37; +OracleSqlParser.ALL = 38; +OracleSqlParser.ALLOCATE = 39; +OracleSqlParser.ALLOW = 40; +OracleSqlParser.ALL_ROWS = 41; +OracleSqlParser.ALTER = 42; +OracleSqlParser.ALTERNATE = 43; +OracleSqlParser.ALWAYS = 44; +OracleSqlParser.ANALYTIC = 45; +OracleSqlParser.ANALYZE = 46; +OracleSqlParser.ANCESTOR = 47; +OracleSqlParser.ANCILLARY = 48; +OracleSqlParser.AND = 49; +OracleSqlParser.AND_EQUAL = 50; +OracleSqlParser.ANNOTATIONS = 51; +OracleSqlParser.ANOMALY = 52; +OracleSqlParser.ANSI_REARCH = 53; +OracleSqlParser.ANTIJOIN = 54; +OracleSqlParser.ANY = 55; +OracleSqlParser.ANYSCHEMA = 56; +OracleSqlParser.APPEND = 57; +OracleSqlParser.APPENDCHILDXML = 58; +OracleSqlParser.APPEND_VALUES = 59; +OracleSqlParser.APPLICATION = 60; +OracleSqlParser.APPLY = 61; +OracleSqlParser.APPROX_COUNT_DISTINCT = 62; +OracleSqlParser.ARCHIVAL = 63; +OracleSqlParser.ARCHIVE = 64; +OracleSqlParser.ARCHIVED = 65; +OracleSqlParser.ARCHIVELOG = 66; +OracleSqlParser.ARE = 67; +OracleSqlParser.ARRAY = 68; +OracleSqlParser.AS = 69; +OracleSqlParser.ASC = 70; +OracleSqlParser.ASCII = 71; +OracleSqlParser.ASCIISTR = 72; +OracleSqlParser.ASIN = 73; +OracleSqlParser.ASIS = 74; +OracleSqlParser.ASSEMBLY = 75; +OracleSqlParser.ASSIGN = 76; +OracleSqlParser.ASSOCIATE = 77; +OracleSqlParser.ASYNC = 78; +OracleSqlParser.ASYNCHRONOUS = 79; +OracleSqlParser.ATAN2 = 80; +OracleSqlParser.ATAN = 81; +OracleSqlParser.AT = 82; +OracleSqlParser.ATTRIBUTE = 83; +OracleSqlParser.ATTRIBUTES = 84; +OracleSqlParser.AUDIT = 85; +OracleSqlParser.AUTHENTICATED = 86; +OracleSqlParser.AUTHENTICATION = 87; +OracleSqlParser.AUTHID = 88; +OracleSqlParser.AUTHORIZATION = 89; +OracleSqlParser.AUTOALLOCATE = 90; +OracleSqlParser.AUTO = 91; +OracleSqlParser.AUTOBACKUP = 92; +OracleSqlParser.AUTOEXTEND = 93; +OracleSqlParser.AUTO_LOGIN = 94; +OracleSqlParser.AUTOMATIC = 95; +OracleSqlParser.AUTONOMOUS_TRANSACTION = 96; +OracleSqlParser.AUTO_REOPTIMIZE = 97; +OracleSqlParser.AVAILABILITY = 98; +OracleSqlParser.AVRO = 99; +OracleSqlParser.BACKGROUND = 100; +OracleSqlParser.BACKINGFILE = 101; +OracleSqlParser.BACKUP = 102; +OracleSqlParser.BACKUPS = 103; +OracleSqlParser.BACKUPSET = 104; +OracleSqlParser.BADFILE = 105; +OracleSqlParser.BASIC = 106; +OracleSqlParser.BASICFILE = 107; +OracleSqlParser.BATCH = 108; +OracleSqlParser.BATCHSIZE = 109; +OracleSqlParser.BATCH_TABLE_ACCESS_BY_ROWID = 110; +OracleSqlParser.BECOME = 111; +OracleSqlParser.BEFORE = 112; +OracleSqlParser.BEGIN = 113; +OracleSqlParser.BEGINNING = 114; +OracleSqlParser.BEGIN_OUTLINE_DATA = 115; +OracleSqlParser.BEHALF = 116; +OracleSqlParser.BEQUEATH = 117; +OracleSqlParser.BETWEEN = 118; +OracleSqlParser.BFILE = 119; +OracleSqlParser.BFILENAME = 120; +OracleSqlParser.BIG = 121; +OracleSqlParser.BIGFILE = 122; +OracleSqlParser.BIGINT = 123; +OracleSqlParser.BINARY = 124; +OracleSqlParser.BINARY_DOUBLE = 125; +OracleSqlParser.BINARY_DOUBLE_INFINITY = 126; +OracleSqlParser.BINARY_DOUBLE_NAN = 127; +OracleSqlParser.BINARY_FLOAT = 128; +OracleSqlParser.BINARY_FLOAT_INFINITY = 129; +OracleSqlParser.BINARY_FLOAT_NAN = 130; +OracleSqlParser.BINARY_INTEGER = 131; +OracleSqlParser.BIND_AWARE = 132; +OracleSqlParser.BINDING = 133; +OracleSqlParser.BIN_TO_NUM = 134; +OracleSqlParser.BITAND = 135; +OracleSqlParser.BITMAP_AND = 136; +OracleSqlParser.BITMAP = 137; +OracleSqlParser.BITMAPS = 138; +OracleSqlParser.BITMAP_TREE = 139; +OracleSqlParser.BITS = 140; +OracleSqlParser.BLANKS = 141; +OracleSqlParser.BLOB = 142; +OracleSqlParser.BLOCK = 143; +OracleSqlParser.BLOCK_RANGE = 144; +OracleSqlParser.BLOCKS = 145; +OracleSqlParser.BLOCKSIZE = 146; +OracleSqlParser.BODY = 147; +OracleSqlParser.BOOLEAN = 148; +OracleSqlParser.BOTH = 149; +OracleSqlParser.BOUND = 150; +OracleSqlParser.BRANCH = 151; +OracleSqlParser.BREADTH = 152; +OracleSqlParser.BROADCAST = 153; +OracleSqlParser.BSON = 154; +OracleSqlParser.BUFFER = 155; +OracleSqlParser.BUFFER_CACHE = 156; +OracleSqlParser.BUFFER_POOL = 157; +OracleSqlParser.BUILD = 158; +OracleSqlParser.BULK = 159; +OracleSqlParser.BY = 160; +OracleSqlParser.BYPASS_RECURSIVE_CHECK = 161; +OracleSqlParser.BYPASS_UJVC = 162; +OracleSqlParser.BYTE = 163; +OracleSqlParser.BYTES = 164; +OracleSqlParser.BYTEORDERMARK = 165; +OracleSqlParser.CACHE = 166; +OracleSqlParser.CACHE_CB = 167; +OracleSqlParser.CACHE_INSTANCES = 168; +OracleSqlParser.CACHE_TEMP_TABLE = 169; +OracleSqlParser.CACHING = 170; +OracleSqlParser.CALCULATED = 171; +OracleSqlParser.CALLBACK = 172; +OracleSqlParser.CALL = 173; +OracleSqlParser.CANCEL = 174; +OracleSqlParser.CANONICAL = 175; +OracleSqlParser.CAPACITY = 176; +OracleSqlParser.CAPTION = 177; +OracleSqlParser.CARDINALITY = 178; +OracleSqlParser.CASCADE = 179; +OracleSqlParser.CASE = 180; +OracleSqlParser.CAST = 181; +OracleSqlParser.CASESENSITIVE = 182; +OracleSqlParser.CATEGORY = 183; +OracleSqlParser.CDBDEFAULT = 184; +OracleSqlParser.CEIL = 185; +OracleSqlParser.CELL_FLASH_CACHE = 186; +OracleSqlParser.CERTIFICATE = 187; +OracleSqlParser.CFILE = 188; +OracleSqlParser.CHAINED = 189; +OracleSqlParser.CHANGE = 190; +OracleSqlParser.CHANGETRACKING = 191; +OracleSqlParser.CHANGE_DUPKEY_ERROR_INDEX = 192; +OracleSqlParser.CHARACTER = 193; +OracleSqlParser.CHARACTERS = 194; +OracleSqlParser.CHARACTERSET = 195; +OracleSqlParser.CHAR = 196; +OracleSqlParser.CHAR_CS = 197; +OracleSqlParser.CHARTOROWID = 198; +OracleSqlParser.CHECK_ACL_REWRITE = 199; +OracleSqlParser.CHECK = 200; +OracleSqlParser.CHECKPOINT = 201; +OracleSqlParser.CHILD = 202; +OracleSqlParser.CHOOSE = 203; +OracleSqlParser.CHR = 204; +OracleSqlParser.CHUNK = 205; +OracleSqlParser.CLASS = 206; +OracleSqlParser.CLASSIFICATION = 207; +OracleSqlParser.CLASSIFIER = 208; +OracleSqlParser.CLAUSE = 209; +OracleSqlParser.CLEAN = 210; +OracleSqlParser.CLEANUP = 211; +OracleSqlParser.CLEAR = 212; +OracleSqlParser.C_LETTER = 213; +OracleSqlParser.CLIENT = 214; +OracleSqlParser.CLOB = 215; +OracleSqlParser.CLONE = 216; +OracleSqlParser.CLOSE_CACHED_OPEN_CURSORS = 217; +OracleSqlParser.CLOSE = 218; +OracleSqlParser.CLUSTER_BY_ROWID = 219; +OracleSqlParser.CLUSTER = 220; +OracleSqlParser.CLUSTER_DETAILS = 221; +OracleSqlParser.CLUSTER_DISTANCE = 222; +OracleSqlParser.CLUSTER_ID = 223; +OracleSqlParser.CLUSTERING = 224; +OracleSqlParser.CLUSTERING_FACTOR = 225; +OracleSqlParser.CLUSTER_PROBABILITY = 226; +OracleSqlParser.CLUSTER_SET = 227; +OracleSqlParser.COALESCE = 228; +OracleSqlParser.COALESCE_SQ = 229; +OracleSqlParser.COARSE = 230; +OracleSqlParser.CO_AUTH_IND = 231; +OracleSqlParser.COLD = 232; +OracleSqlParser.COLLECT = 233; +OracleSqlParser.COLLECTION = 234; +OracleSqlParser.COLUMNAR = 235; +OracleSqlParser.COLUMN_AUTH_INDICATOR = 236; +OracleSqlParser.COLUMN = 237; +OracleSqlParser.COLUMNS = 238; +OracleSqlParser.COLUMN_STATS = 239; +OracleSqlParser.COLUMN_VALUE = 240; +OracleSqlParser.COMMENT = 241; +OracleSqlParser.COMMIT = 242; +OracleSqlParser.COMMITTED = 243; +OracleSqlParser.COMMON = 244; +OracleSqlParser.COMMON_DATA = 245; +OracleSqlParser.COMPACT = 246; +OracleSqlParser.COMPATIBLE = 247; +OracleSqlParser.COMPATIBILITY = 248; +OracleSqlParser.COMPILE = 249; +OracleSqlParser.COMPLETE = 250; +OracleSqlParser.COMPLIANCE = 251; +OracleSqlParser.COMPONENT = 252; +OracleSqlParser.COMPONENTS = 253; +OracleSqlParser.COMPOSE = 254; +OracleSqlParser.COMPOSITE = 255; +OracleSqlParser.COMPOSITE_LIMIT = 256; +OracleSqlParser.COMPOUND = 257; +OracleSqlParser.COMPRESS = 258; +OracleSqlParser.COMPRESSION = 259; +OracleSqlParser.COMPUTE = 260; +OracleSqlParser.CONCAT = 261; +OracleSqlParser.CON_DBID_TO_ID = 262; +OracleSqlParser.CONDITIONAL = 263; +OracleSqlParser.CONDITION = 264; +OracleSqlParser.CONFIRM = 265; +OracleSqlParser.CONFORMING = 266; +OracleSqlParser.CON_GUID_TO_ID = 267; +OracleSqlParser.CON_ID = 268; +OracleSqlParser.CON_NAME_TO_ID = 269; +OracleSqlParser.CONNECT_BY_CB_WHR_ONLY = 270; +OracleSqlParser.CONNECT_BY_COMBINE_SW = 271; +OracleSqlParser.CONNECT_BY_COST_BASED = 272; +OracleSqlParser.CONNECT_BY_ELIM_DUPS = 273; +OracleSqlParser.CONNECT_BY_FILTERING = 274; +OracleSqlParser.CONNECT_BY_ISCYCLE = 275; +OracleSqlParser.CONNECT_BY_ISLEAF = 276; +OracleSqlParser.CONNECT_BY_ROOT = 277; +OracleSqlParser.CONNECT = 278; +OracleSqlParser.CONNECT_TIME = 279; +OracleSqlParser.CONSIDER = 280; +OracleSqlParser.CONSISTENT = 281; +OracleSqlParser.CONSTANT = 282; +OracleSqlParser.CONST = 283; +OracleSqlParser.CONSTRAINT = 284; +OracleSqlParser.CONSTRAINTS = 285; +OracleSqlParser.CONSTRUCTOR = 286; +OracleSqlParser.CONTAINER = 287; +OracleSqlParser.CONTAINERS = 288; +OracleSqlParser.CONTAINERS_DEFAULT = 289; +OracleSqlParser.CONTAINER_DATA = 290; +OracleSqlParser.CONTAINER_MAP = 291; +OracleSqlParser.CONTENT = 292; +OracleSqlParser.CONTENTS = 293; +OracleSqlParser.CONTEXT = 294; +OracleSqlParser.CONTINUE = 295; +OracleSqlParser.CONTROLFILE = 296; +OracleSqlParser.CON_UID_TO_ID = 297; +OracleSqlParser.CONVERT = 298; +OracleSqlParser.CONVERSION = 299; +OracleSqlParser.COOKIE = 300; +OracleSqlParser.COPY = 301; +OracleSqlParser.CORR_K = 302; +OracleSqlParser.CORR_S = 303; +OracleSqlParser.CORRUPTION = 304; +OracleSqlParser.CORRUPT_XID_ALL = 305; +OracleSqlParser.CORRUPT_XID = 306; +OracleSqlParser.COS = 307; +OracleSqlParser.COSH = 308; +OracleSqlParser.COST = 309; +OracleSqlParser.COST_XML_QUERY_REWRITE = 310; +OracleSqlParser.COUNT = 311; +OracleSqlParser.COUNTED = 312; +OracleSqlParser.COVAR_POP = 313; +OracleSqlParser.COVAR_SAMP = 314; +OracleSqlParser.CPU_COSTING = 315; +OracleSqlParser.CPU_PER_CALL = 316; +OracleSqlParser.CPU_PER_SESSION = 317; +OracleSqlParser.CRASH = 318; +OracleSqlParser.CREATE = 319; +OracleSqlParser.CREATE_FILE_DEST = 320; +OracleSqlParser.CREATE_STORED_OUTLINES = 321; +OracleSqlParser.CREATION = 322; +OracleSqlParser.CREDENTIAL = 323; +OracleSqlParser.CRITICAL = 324; +OracleSqlParser.CROSS = 325; +OracleSqlParser.CROSSEDITION = 326; +OracleSqlParser.CSCONVERT = 327; +OracleSqlParser.CSV = 328; +OracleSqlParser.CUBE_AJ = 329; +OracleSqlParser.CUBE = 330; +OracleSqlParser.CUBE_GB = 331; +OracleSqlParser.CUBE_SJ = 332; +OracleSqlParser.CUME_DISTM = 333; +OracleSqlParser.CURRENT = 334; +OracleSqlParser.CURRENT_DATE = 335; +OracleSqlParser.CURRENT_SCHEMA = 336; +OracleSqlParser.CURRENT_TIME = 337; +OracleSqlParser.CURRENT_TIMESTAMP = 338; +OracleSqlParser.CURRENT_USER = 339; +OracleSqlParser.CURRENTV = 340; +OracleSqlParser.CURSOR = 341; +OracleSqlParser.CURSOR_SHARING_EXACT = 342; +OracleSqlParser.CURSOR_SPECIFIC_SEGMENT = 343; +OracleSqlParser.CUSTOMDATUM = 344; +OracleSqlParser.CV = 345; +OracleSqlParser.CYCLE = 346; +OracleSqlParser.DANGLING = 347; +OracleSqlParser.DATABASE = 348; +OracleSqlParser.DATA = 349; +OracleSqlParser.DATAFILE = 350; +OracleSqlParser.DATAFILES = 351; +OracleSqlParser.DATAGUARDCONFIG = 352; +OracleSqlParser.DATAMOVEMENT = 353; +OracleSqlParser.DATAOBJNO = 354; +OracleSqlParser.DATAOBJ_TO_MAT_PARTITION = 355; +OracleSqlParser.DATAOBJ_TO_PARTITION = 356; +OracleSqlParser.DATAPUMP = 357; +OracleSqlParser.DATA_SECURITY_REWRITE_LIMIT = 358; +OracleSqlParser.DATE = 359; +OracleSqlParser.DATE_CACHE = 360; +OracleSqlParser.DATE_FORMAT = 361; +OracleSqlParser.DATE_MODE = 362; +OracleSqlParser.DAY = 363; +OracleSqlParser.DAYS = 364; +OracleSqlParser.DAY_TO_SECOND = 365; +OracleSqlParser.DBA = 366; +OracleSqlParser.DBA_RECYCLEBIN = 367; +OracleSqlParser.DBLINK = 368; +OracleSqlParser.DBMS_STATS = 369; +OracleSqlParser.DB_ROLE_CHANGE = 370; +OracleSqlParser.DBTIMEZONE = 371; +OracleSqlParser.DB_UNIQUE_NAME = 372; +OracleSqlParser.DB_VERSION = 373; +OracleSqlParser.DDL = 374; +OracleSqlParser.DEALLOCATE = 375; +OracleSqlParser.DEBUG = 376; +OracleSqlParser.DEBUGGER = 377; +OracleSqlParser.DEC = 378; +OracleSqlParser.DECIMAL = 379; +OracleSqlParser.DECLARE = 380; +OracleSqlParser.DECOMPOSE = 381; +OracleSqlParser.DECORRELATE = 382; +OracleSqlParser.DECR = 383; +OracleSqlParser.DECREMENT = 384; +OracleSqlParser.DECRYPT = 385; +OracleSqlParser.DEDUPLICATE = 386; +OracleSqlParser.DEFAULT = 387; +OracleSqlParser.DEFAULTIF = 388; +OracleSqlParser.DEFAULTS = 389; +OracleSqlParser.DEFAULT_COLLATION = 390; +OracleSqlParser.DEFAULT_CREDENTIAL = 391; +OracleSqlParser.DEFERRABLE = 392; +OracleSqlParser.DEFERRED = 393; +OracleSqlParser.DEFINED = 394; +OracleSqlParser.DEFINE = 395; +OracleSqlParser.DEFINER = 396; +OracleSqlParser.DEGREE = 397; +OracleSqlParser.DELAY = 398; +OracleSqlParser.DELEGATE = 399; +OracleSqlParser.DELETE_ALL = 400; +OracleSqlParser.DELETE = 401; +OracleSqlParser.DELETEXML = 402; +OracleSqlParser.DELIMITED = 403; +OracleSqlParser.DEMAND = 404; +OracleSqlParser.DENSE_RANKM = 405; +OracleSqlParser.DEPENDENT = 406; +OracleSqlParser.DEPRECATE = 407; +OracleSqlParser.DEPTH = 408; +OracleSqlParser.DEQUEUE = 409; +OracleSqlParser.DEREF = 410; +OracleSqlParser.DEREF_NO_REWRITE = 411; +OracleSqlParser.DESC = 412; +OracleSqlParser.DESCRIPTION = 413; +OracleSqlParser.DESTROY = 414; +OracleSqlParser.DETACHED = 415; +OracleSqlParser.DETECTED = 416; +OracleSqlParser.DETERMINES = 417; +OracleSqlParser.DETERMINISTIC = 418; +OracleSqlParser.DICTIONARY = 419; +OracleSqlParser.DIMENSION = 420; +OracleSqlParser.DIMENSIONS = 421; +OracleSqlParser.DIRECTIO = 422; +OracleSqlParser.DIRECT_LOAD = 423; +OracleSqlParser.DIRECTORY = 424; +OracleSqlParser.DIRECT_PATH = 425; +OracleSqlParser.DISABLE_ALL = 426; +OracleSqlParser.DISABLE = 427; +OracleSqlParser.DISABLED = 428; +OracleSqlParser.DISABLE_DIRECTORY_LINK_CHECK = 429; +OracleSqlParser.DISABLE_PARALLEL_DML = 430; +OracleSqlParser.DISABLE_PRESET = 431; +OracleSqlParser.DISABLE_RPKE = 432; +OracleSqlParser.DISALLOW = 433; +OracleSqlParser.DISASSOCIATE = 434; +OracleSqlParser.DISCARD = 435; +OracleSqlParser.DISCARDFILE = 436; +OracleSqlParser.DISCONNECT = 437; +OracleSqlParser.DISK = 438; +OracleSqlParser.DISKGROUP = 439; +OracleSqlParser.DISKGROUP_PLUS = 440; +OracleSqlParser.DISKS = 441; +OracleSqlParser.DISMOUNT = 442; +OracleSqlParser.DISTINCT = 443; +OracleSqlParser.DISTINGUISHED = 444; +OracleSqlParser.DISTRIBUTED = 445; +OracleSqlParser.DISTRIBUTE = 446; +OracleSqlParser.DML = 447; +OracleSqlParser.DML_UPDATE = 448; +OracleSqlParser.DNFS_DISABLE = 449; +OracleSqlParser.DNFS_ENABLE = 450; +OracleSqlParser.DNFS_READBUFFERS = 451; +OracleSqlParser.DOCFIDELITY = 452; +OracleSqlParser.DOCUMENT = 453; +OracleSqlParser.DOLLAR_ELSE = 454; +OracleSqlParser.DOLLAR_ELSIF = 455; +OracleSqlParser.DOLLAR_END = 456; +OracleSqlParser.DOLLAR_ERROR = 457; +OracleSqlParser.DOLLAR_IF = 458; +OracleSqlParser.DOLLAR_THEN = 459; +OracleSqlParser.DOMAIN_INDEX_FILTER = 460; +OracleSqlParser.DOMAIN_INDEX_NO_SORT = 461; +OracleSqlParser.DOMAIN_INDEX_SORT = 462; +OracleSqlParser.DOUBLE = 463; +OracleSqlParser.DOWNGRADE = 464; +OracleSqlParser.DRIVING_SITE = 465; +OracleSqlParser.DROP_COLUMN = 466; +OracleSqlParser.DROP = 467; +OracleSqlParser.DROP_GROUP = 468; +OracleSqlParser.DSINTERVAL_UNCONSTRAINED = 469; +OracleSqlParser.DST_UPGRADE_INSERT_CONV = 470; +OracleSqlParser.DUMP = 471; +OracleSqlParser.DUMPSET = 472; +OracleSqlParser.DUPLICATE = 473; +OracleSqlParser.DV = 474; +OracleSqlParser.DYNAMIC = 475; +OracleSqlParser.DYNAMIC_SAMPLING = 476; +OracleSqlParser.DYNAMIC_SAMPLING_EST_CDN = 477; +OracleSqlParser.E_LETTER = 478; +OracleSqlParser.EACH = 479; +OracleSqlParser.EDITIONABLE = 480; +OracleSqlParser.EDITION = 481; +OracleSqlParser.EDITIONING = 482; +OracleSqlParser.EDITIONS = 483; +OracleSqlParser.ELEMENT = 484; +OracleSqlParser.ELIM_GROUPBY = 485; +OracleSqlParser.ELIMINATE_JOIN = 486; +OracleSqlParser.ELIMINATE_OBY = 487; +OracleSqlParser.ELIMINATE_OUTER_JOIN = 488; +OracleSqlParser.ELSE = 489; +OracleSqlParser.ELSIF = 490; +OracleSqlParser.EM = 491; +OracleSqlParser.EMBEDDED = 492; +OracleSqlParser.EMPTY_BLOB = 493; +OracleSqlParser.EMPTY_CLOB = 494; +OracleSqlParser.EMPTY_ = 495; +OracleSqlParser.ENABLE_ALL = 496; +OracleSqlParser.ENABLE = 497; +OracleSqlParser.ENABLED = 498; +OracleSqlParser.ENABLE_PARALLEL_DML = 499; +OracleSqlParser.ENABLE_PRESET = 500; +OracleSqlParser.ENCLOSED = 501; +OracleSqlParser.ENCODING = 502; +OracleSqlParser.ENCRYPT = 503; +OracleSqlParser.ENCRYPTION = 504; +OracleSqlParser.ENCRYPTPASSWORDISNULL = 505; +OracleSqlParser.END = 506; +OracleSqlParser.END_OUTLINE_DATA = 507; +OracleSqlParser.ENDIAN = 508; +OracleSqlParser.ENFORCED = 509; +OracleSqlParser.ENFORCE = 510; +OracleSqlParser.ENQUEUE = 511; +OracleSqlParser.ENTERPRISE = 512; +OracleSqlParser.ENTITYESCAPING = 513; +OracleSqlParser.ENTRY = 514; +OracleSqlParser.EQUIPART = 515; +OracleSqlParser.ERR = 516; +OracleSqlParser.ERROR_ARGUMENT = 517; +OracleSqlParser.ERROR = 518; +OracleSqlParser.ERROR_ON_OVERLAP_TIME = 519; +OracleSqlParser.ERRORS = 520; +OracleSqlParser.ERROR_INDEX = 521; +OracleSqlParser.ERROR_CODE = 522; +OracleSqlParser.ESCAPE = 523; +OracleSqlParser.ESCAPED = 524; +OracleSqlParser.ESTIMATE = 525; +OracleSqlParser.EVAL = 526; +OracleSqlParser.EVALNAME = 527; +OracleSqlParser.EVALUATE = 528; +OracleSqlParser.EVALUATION = 529; +OracleSqlParser.EVENTS = 530; +OracleSqlParser.EVERY = 531; +OracleSqlParser.EXCEPT = 532; +OracleSqlParser.EXCEPTION = 533; +OracleSqlParser.EXCEPTION_INIT = 534; +OracleSqlParser.EXCEPTIONS = 535; +OracleSqlParser.EXCHANGE = 536; +OracleSqlParser.EXCLUDE = 537; +OracleSqlParser.EXCLUDING = 538; +OracleSqlParser.EXCLUSIVE = 539; +OracleSqlParser.EXECUTE = 540; +OracleSqlParser.EXEMPT = 541; +OracleSqlParser.EXISTING = 542; +OracleSqlParser.EXISTS = 543; +OracleSqlParser.EXISTSNODE = 544; +OracleSqlParser.EXIT = 545; +OracleSqlParser.EXPAND_GSET_TO_UNION = 546; +OracleSqlParser.EXPAND_TABLE = 547; +OracleSqlParser.EXP = 548; +OracleSqlParser.EXPIRE = 549; +OracleSqlParser.EXPLAIN = 550; +OracleSqlParser.EXPLOSION = 551; +OracleSqlParser.EXPORT = 552; +OracleSqlParser.EXPR_CORR_CHECK = 553; +OracleSqlParser.EXPRESS = 554; +OracleSqlParser.EXTENDS = 555; +OracleSqlParser.EXTENT = 556; +OracleSqlParser.EXTENTS = 557; +OracleSqlParser.EXTERNAL = 558; +OracleSqlParser.EXTERNALLY = 559; +OracleSqlParser.EXTRACTCLOBXML = 560; +OracleSqlParser.EXTRACT = 561; +OracleSqlParser.EXTRACTVALUE = 562; +OracleSqlParser.EXTRA = 563; +OracleSqlParser.FACILITY = 564; +OracleSqlParser.FACT = 565; +OracleSqlParser.FACTOR = 566; +OracleSqlParser.FACTORIZE_JOIN = 567; +OracleSqlParser.FAILED = 568; +OracleSqlParser.FAILED_LOGIN_ATTEMPTS = 569; +OracleSqlParser.FAILGROUP = 570; +OracleSqlParser.FAILOVER = 571; +OracleSqlParser.FAILURE = 572; +OracleSqlParser.FALSE = 573; +OracleSqlParser.FAMILY = 574; +OracleSqlParser.FAR = 575; +OracleSqlParser.FAST = 576; +OracleSqlParser.FASTSTART = 577; +OracleSqlParser.FBTSCAN = 578; +OracleSqlParser.FEATURE = 579; +OracleSqlParser.FEATURE_DETAILS = 580; +OracleSqlParser.FEATURE_ID = 581; +OracleSqlParser.FEATURE_SET = 582; +OracleSqlParser.FEATURE_VALUE = 583; +OracleSqlParser.FETCH = 584; +OracleSqlParser.FIELD = 585; +OracleSqlParser.FIELDS = 586; +OracleSqlParser.FILE = 587; +OracleSqlParser.FILE_NAME_CONVERT = 588; +OracleSqlParser.FILEGROUP = 589; +OracleSqlParser.FILESTORE = 590; +OracleSqlParser.FILESYSTEM_LIKE_LOGGING = 591; +OracleSqlParser.FILTER = 592; +OracleSqlParser.FINAL = 593; +OracleSqlParser.FINE = 594; +OracleSqlParser.FINISH = 595; +OracleSqlParser.FIRST = 596; +OracleSqlParser.FIRSTM = 597; +OracleSqlParser.FIRST_ROWS = 598; +OracleSqlParser.FIRST_VALUE = 599; +OracleSqlParser.FIXED = 600; +OracleSqlParser.FIXED_VIEW_DATA = 601; +OracleSqlParser.FLAGGER = 602; +OracleSqlParser.FLASHBACK = 603; +OracleSqlParser.FLASH_CACHE = 604; +OracleSqlParser.FLOAT = 605; +OracleSqlParser.FLOB = 606; +OracleSqlParser.FLEX = 607; +OracleSqlParser.FLOOR = 608; +OracleSqlParser.FLUSH = 609; +OracleSqlParser.FOLDER = 610; +OracleSqlParser.FOLLOWING = 611; +OracleSqlParser.FOLLOWS = 612; +OracleSqlParser.FORALL = 613; +OracleSqlParser.FORCE = 614; +OracleSqlParser.FORCE_XML_QUERY_REWRITE = 615; +OracleSqlParser.FOREIGN = 616; +OracleSqlParser.FOREVER = 617; +OracleSqlParser.FOR = 618; +OracleSqlParser.FORMAT = 619; +OracleSqlParser.FORWARD = 620; +OracleSqlParser.FRAGMENT_NUMBER = 621; +OracleSqlParser.FREELIST = 622; +OracleSqlParser.FREELISTS = 623; +OracleSqlParser.FREEPOOLS = 624; +OracleSqlParser.FRESH = 625; +OracleSqlParser.FROM = 626; +OracleSqlParser.FROM_TZ = 627; +OracleSqlParser.FULL = 628; +OracleSqlParser.FULL_OUTER_JOIN_TO_OUTER = 629; +OracleSqlParser.FUNCTION = 630; +OracleSqlParser.FUNCTIONS = 631; +OracleSqlParser.FTP = 632; +OracleSqlParser.G_LETTER = 633; +OracleSqlParser.GATHER_OPTIMIZER_STATISTICS = 634; +OracleSqlParser.GATHER_PLAN_STATISTICS = 635; +OracleSqlParser.GBY_CONC_ROLLUP = 636; +OracleSqlParser.GBY_PUSHDOWN = 637; +OracleSqlParser.GENERATED = 638; +OracleSqlParser.GET = 639; +OracleSqlParser.GLOBAL = 640; +OracleSqlParser.GLOBALLY = 641; +OracleSqlParser.GLOBAL_NAME = 642; +OracleSqlParser.GLOBAL_TOPIC_ENABLED = 643; +OracleSqlParser.GOTO = 644; +OracleSqlParser.GRANT = 645; +OracleSqlParser.GROUP_BY = 646; +OracleSqlParser.GROUP = 647; +OracleSqlParser.GROUP_ID = 648; +OracleSqlParser.GROUPING = 649; +OracleSqlParser.GROUPING_ID = 650; +OracleSqlParser.GROUPS = 651; +OracleSqlParser.GUARANTEED = 652; +OracleSqlParser.GUARANTEE = 653; +OracleSqlParser.GUARD = 654; +OracleSqlParser.HADOOP_TRAILERS = 655; +OracleSqlParser.HALF_YEARS = 656; +OracleSqlParser.HASH_AJ = 657; +OracleSqlParser.HASH = 658; +OracleSqlParser.HASHKEYS = 659; +OracleSqlParser.HASH_SJ = 660; +OracleSqlParser.HAVING = 661; +OracleSqlParser.HEADER = 662; +OracleSqlParser.HEAP = 663; +OracleSqlParser.HELP = 664; +OracleSqlParser.HEXTORAW = 665; +OracleSqlParser.HEXTOREF = 666; +OracleSqlParser.HIDDEN_KEYWORD = 667; +OracleSqlParser.HIDE = 668; +OracleSqlParser.HIER_ORDER = 669; +OracleSqlParser.HIERARCHICAL = 670; +OracleSqlParser.HIERARCHIES = 671; +OracleSqlParser.HIERARCHY = 672; +OracleSqlParser.HIGH = 673; +OracleSqlParser.HINTSET_BEGIN = 674; +OracleSqlParser.HINTSET_END = 675; +OracleSqlParser.HOT = 676; +OracleSqlParser.HOUR = 677; +OracleSqlParser.HOURS = 678; +OracleSqlParser.HTTP = 679; +OracleSqlParser.HWM_BROKERED = 680; +OracleSqlParser.HYBRID = 681; +OracleSqlParser.H_LETTER = 682; +OracleSqlParser.IDENTIFIED = 683; +OracleSqlParser.IDENTIFIER = 684; +OracleSqlParser.IDENTITY = 685; +OracleSqlParser.IDGENERATORS = 686; +OracleSqlParser.ID = 687; +OracleSqlParser.IDLE_TIME = 688; +OracleSqlParser.IF = 689; +OracleSqlParser.IGNORE = 690; +OracleSqlParser.IGNORE_CHARS_AFTER_EOR = 691; +OracleSqlParser.IGNORE_OPTIM_EMBEDDED_HINTS = 692; +OracleSqlParser.IGNORE_ROW_ON_DUPKEY_INDEX = 693; +OracleSqlParser.IGNORE_WHERE_CLAUSE = 694; +OracleSqlParser.ILM = 695; +OracleSqlParser.IMMEDIATE = 696; +OracleSqlParser.IMPACT = 697; +OracleSqlParser.IMPORT = 698; +OracleSqlParser.INACTIVE = 699; +OracleSqlParser.INACTIVE_ACCOUNT_TIME = 700; +OracleSqlParser.INCLUDE = 701; +OracleSqlParser.INCLUDE_VERSION = 702; +OracleSqlParser.INCLUDING = 703; +OracleSqlParser.INCREMENTAL = 704; +OracleSqlParser.INCREMENT = 705; +OracleSqlParser.INCR = 706; +OracleSqlParser.INDENT = 707; +OracleSqlParser.INDEX_ASC = 708; +OracleSqlParser.INDEX_COMBINE = 709; +OracleSqlParser.INDEX_DESC = 710; +OracleSqlParser.INDEXED = 711; +OracleSqlParser.INDEXES = 712; +OracleSqlParser.INDEX_FFS = 713; +OracleSqlParser.INDEX_FILTER = 714; +OracleSqlParser.INDEX = 715; +OracleSqlParser.INDEXING = 716; +OracleSqlParser.INDEX_JOIN = 717; +OracleSqlParser.INDEX_ROWS = 718; +OracleSqlParser.INDEX_RRS = 719; +OracleSqlParser.INDEX_RS_ASC = 720; +OracleSqlParser.INDEX_RS_DESC = 721; +OracleSqlParser.INDEX_RS = 722; +OracleSqlParser.INDEX_SCAN = 723; +OracleSqlParser.INDEX_SKIP_SCAN = 724; +OracleSqlParser.INDEX_SS_ASC = 725; +OracleSqlParser.INDEX_SS_DESC = 726; +OracleSqlParser.INDEX_SS = 727; +OracleSqlParser.INDEX_STATS = 728; +OracleSqlParser.INDEXTYPE = 729; +OracleSqlParser.INDEXTYPES = 730; +OracleSqlParser.INDICATOR = 731; +OracleSqlParser.INDICES = 732; +OracleSqlParser.INFINITE = 733; +OracleSqlParser.INFORMATIONAL = 734; +OracleSqlParser.INHERIT = 735; +OracleSqlParser.IN = 736; +OracleSqlParser.INITCAP = 737; +OracleSqlParser.INITIAL = 738; +OracleSqlParser.INITIALIZED = 739; +OracleSqlParser.INITIALLY = 740; +OracleSqlParser.INITRANS = 741; +OracleSqlParser.INLINE = 742; +OracleSqlParser.INLINE_XMLTYPE_NT = 743; +OracleSqlParser.INMEMORY = 744; +OracleSqlParser.IN_MEMORY_METADATA = 745; +OracleSqlParser.INMEMORY_PRUNING = 746; +OracleSqlParser.INNER = 747; +OracleSqlParser.INOUT = 748; +OracleSqlParser.INPLACE = 749; +OracleSqlParser.INPUTFORMAT = 750; +OracleSqlParser.INSERTCHILDXMLAFTER = 751; +OracleSqlParser.INSERTCHILDXMLBEFORE = 752; +OracleSqlParser.INSERTCHILDXML = 753; +OracleSqlParser.INSERT = 754; +OracleSqlParser.INSERTXMLAFTER = 755; +OracleSqlParser.INSERTXMLBEFORE = 756; +OracleSqlParser.INSTANCE = 757; +OracleSqlParser.INSTANCES = 758; +OracleSqlParser.INSTANTIABLE = 759; +OracleSqlParser.INSTANTLY = 760; +OracleSqlParser.INSTEAD = 761; +OracleSqlParser.INSTR2 = 762; +OracleSqlParser.INSTR4 = 763; +OracleSqlParser.INSTRB = 764; +OracleSqlParser.INSTRC = 765; +OracleSqlParser.INSTR = 766; +OracleSqlParser.INTEGER = 767; +OracleSqlParser.INTERLEAVED = 768; +OracleSqlParser.INTERMEDIATE = 769; +OracleSqlParser.INTERNAL_CONVERT = 770; +OracleSqlParser.INTERNAL_USE = 771; +OracleSqlParser.INTERPRETED = 772; +OracleSqlParser.INTERSECT = 773; +OracleSqlParser.INTERVAL = 774; +OracleSqlParser.INT = 775; +OracleSqlParser.INTERNAL = 776; +OracleSqlParser.INTO = 777; +OracleSqlParser.INVALIDATE = 778; +OracleSqlParser.INVALIDATION = 779; +OracleSqlParser.INVISIBLE = 780; +OracleSqlParser.IN_XQUERY = 781; +OracleSqlParser.IO_OPTIONS = 782; +OracleSqlParser.IS = 783; +OracleSqlParser.IS_LEAF = 784; +OracleSqlParser.ISOLATION = 785; +OracleSqlParser.ISOLATION_LEVEL = 786; +OracleSqlParser.ITEMS = 787; +OracleSqlParser.ITERATE = 788; +OracleSqlParser.ITERATION_NUMBER = 789; +OracleSqlParser.JAVA = 790; +OracleSqlParser.JOB = 791; +OracleSqlParser.JOIN = 792; +OracleSqlParser.JSON_ARRAYAGG = 793; +OracleSqlParser.JSON_ARRAY = 794; +OracleSqlParser.JSON_EQUAL = 795; +OracleSqlParser.JSON_EXISTS2 = 796; +OracleSqlParser.JSON_EXISTS = 797; +OracleSqlParser.JSONGET = 798; +OracleSqlParser.JSON = 799; +OracleSqlParser.JSON_OBJECTAGG = 800; +OracleSqlParser.JSON_OBJECT = 801; +OracleSqlParser.JSONPARSE = 802; +OracleSqlParser.JSON_QUERY = 803; +OracleSqlParser.JSON_SERIALIZE = 804; +OracleSqlParser.JSON_TABLE = 805; +OracleSqlParser.JSON_TEXTCONTAINS2 = 806; +OracleSqlParser.JSON_TEXTCONTAINS = 807; +OracleSqlParser.JSON_TRANSFORM = 808; +OracleSqlParser.JSON_VALUE = 809; +OracleSqlParser.K_LETTER = 810; +OracleSqlParser.KEEP_DUPLICATES = 811; +OracleSqlParser.KEEP = 812; +OracleSqlParser.KERBEROS = 813; +OracleSqlParser.KEY = 814; +OracleSqlParser.KEY_LENGTH = 815; +OracleSqlParser.KEYSIZE = 816; +OracleSqlParser.KEYS = 817; +OracleSqlParser.KEYSTORE = 818; +OracleSqlParser.KILL = 819; +OracleSqlParser.LABEL = 820; +OracleSqlParser.LANGUAGE = 821; +OracleSqlParser.LAST_DAY = 822; +OracleSqlParser.LAST = 823; +OracleSqlParser.LAST_VALUE = 824; +OracleSqlParser.LATERAL = 825; +OracleSqlParser.LATEST = 826; +OracleSqlParser.LAX = 827; +OracleSqlParser.LAYER = 828; +OracleSqlParser.LDAP_REGISTRATION_ENABLED = 829; +OracleSqlParser.LDAP_REGISTRATION = 830; +OracleSqlParser.LDAP_REG_SYNC_INTERVAL = 831; +OracleSqlParser.LDRTRIM = 832; +OracleSqlParser.LEAF = 833; +OracleSqlParser.LEAD_CDB = 834; +OracleSqlParser.LEAD_CDB_URI = 835; +OracleSqlParser.LEADING = 836; +OracleSqlParser.LEFT = 837; +OracleSqlParser.LENGTH2 = 838; +OracleSqlParser.LENGTH4 = 839; +OracleSqlParser.LENGTHB = 840; +OracleSqlParser.LENGTHC = 841; +OracleSqlParser.LENGTH = 842; +OracleSqlParser.LESS = 843; +OracleSqlParser.LEVEL = 844; +OracleSqlParser.LEVEL_NAME = 845; +OracleSqlParser.LEVELS = 846; +OracleSqlParser.LIBRARY = 847; +OracleSqlParser.LIFECYCLE = 848; +OracleSqlParser.LIFE = 849; +OracleSqlParser.LIFETIME = 850; +OracleSqlParser.LIKE2 = 851; +OracleSqlParser.LIKE4 = 852; +OracleSqlParser.LIKEC = 853; +OracleSqlParser.LIKE_EXPAND = 854; +OracleSqlParser.LIKE = 855; +OracleSqlParser.LIMIT = 856; +OracleSqlParser.LINEAR = 857; +OracleSqlParser.LINES = 858; +OracleSqlParser.LINK = 859; +OracleSqlParser.LIST = 860; +OracleSqlParser.LITTLE = 861; +OracleSqlParser.LLS = 862; +OracleSqlParser.LN = 863; +OracleSqlParser.LNNVL = 864; +OracleSqlParser.LOAD = 865; +OracleSqlParser.LOB = 866; +OracleSqlParser.LOBFILE = 867; +OracleSqlParser.LOBNVL = 868; +OracleSqlParser.LOBS = 869; +OracleSqlParser.LOCAL_INDEXES = 870; +OracleSqlParser.LOCAL = 871; +OracleSqlParser.LOCALTIME = 872; +OracleSqlParser.LOCALTIMESTAMP = 873; +OracleSqlParser.LOCATION = 874; +OracleSqlParser.LOCATOR = 875; +OracleSqlParser.LOCKDOWN = 876; +OracleSqlParser.LOCKED = 877; +OracleSqlParser.LOCKING = 878; +OracleSqlParser.LOCK = 879; +OracleSqlParser.LOGFILE = 880; +OracleSqlParser.LOGFILES = 881; +OracleSqlParser.LOGGING = 882; +OracleSqlParser.LOGICAL = 883; +OracleSqlParser.LOGICAL_READS_PER_CALL = 884; +OracleSqlParser.LOGICAL_READS_PER_SESSION = 885; +OracleSqlParser.LOG = 886; +OracleSqlParser.LOGMINING = 887; +OracleSqlParser.LOGOFF = 888; +OracleSqlParser.LOGON = 889; +OracleSqlParser.LOG_READ_ONLY_VIOLATIONS = 890; +OracleSqlParser.LONG = 891; +OracleSqlParser.LOOP = 892; +OracleSqlParser.LOST = 893; +OracleSqlParser.LOWER = 894; +OracleSqlParser.LOW = 895; +OracleSqlParser.LPAD = 896; +OracleSqlParser.LRTRIM = 897; +OracleSqlParser.LTRIM = 898; +OracleSqlParser.M_LETTER = 899; +OracleSqlParser.MAIN = 900; +OracleSqlParser.MAKE_REF = 901; +OracleSqlParser.MANAGED = 902; +OracleSqlParser.MANAGE = 903; +OracleSqlParser.MANAGEMENT = 904; +OracleSqlParser.MANAGER = 905; +OracleSqlParser.MANDATORY = 906; +OracleSqlParser.MANUAL = 907; +OracleSqlParser.MAP = 908; +OracleSqlParser.MAPPING = 909; +OracleSqlParser.MASK = 910; +OracleSqlParser.MASTER = 911; +OracleSqlParser.MATCHED = 912; +OracleSqlParser.MATCHES = 913; +OracleSqlParser.MATCH = 914; +OracleSqlParser.MATCH_NUMBER = 915; +OracleSqlParser.MATCH_RECOGNIZE = 916; +OracleSqlParser.MATERIALIZED = 917; +OracleSqlParser.MATERIALIZE = 918; +OracleSqlParser.MAXARCHLOGS = 919; +OracleSqlParser.MAXDATAFILES = 920; +OracleSqlParser.MAXEXTENTS = 921; +OracleSqlParser.MAXIMIZE = 922; +OracleSqlParser.MAXINSTANCES = 923; +OracleSqlParser.MAXLOGFILES = 924; +OracleSqlParser.MAXLOGHISTORY = 925; +OracleSqlParser.MAXLOGMEMBERS = 926; +OracleSqlParser.MAX_SHARED_TEMP_SIZE = 927; +OracleSqlParser.MAXSIZE = 928; +OracleSqlParser.MAXTRANS = 929; +OracleSqlParser.MAXVALUE = 930; +OracleSqlParser.MEASURE = 931; +OracleSqlParser.MEASURES = 932; +OracleSqlParser.MEDIUM = 933; +OracleSqlParser.MEMBER = 934; +OracleSqlParser.MEMBER_CAPTION = 935; +OracleSqlParser.MEMBER_DESCRIPTION = 936; +OracleSqlParser.MEMBER_NAME = 937; +OracleSqlParser.MEMBER_UNIQUE_NAME = 938; +OracleSqlParser.MEMCOMPRESS = 939; +OracleSqlParser.MEMORY = 940; +OracleSqlParser.MERGEACTIONS = 941; +OracleSqlParser.MERGE_AJ = 942; +OracleSqlParser.MERGE_CONST_ON = 943; +OracleSqlParser.MERGE = 944; +OracleSqlParser.MERGE_SJ = 945; +OracleSqlParser.METADATA = 946; +OracleSqlParser.METHOD = 947; +OracleSqlParser.MIGRATE = 948; +OracleSqlParser.MIGRATION = 949; +OracleSqlParser.MINEXTENTS = 950; +OracleSqlParser.MINIMIZE = 951; +OracleSqlParser.MINIMUM = 952; +OracleSqlParser.MINING = 953; +OracleSqlParser.MINUS = 954; +OracleSqlParser.MINUS_NULL = 955; +OracleSqlParser.MINUTE = 956; +OracleSqlParser.MINUTES = 957; +OracleSqlParser.MINVALUE = 958; +OracleSqlParser.MIRRORCOLD = 959; +OracleSqlParser.MIRRORHOT = 960; +OracleSqlParser.MIRROR = 961; +OracleSqlParser.MISSING = 962; +OracleSqlParser.MISMATCH = 963; +OracleSqlParser.MLSLABEL = 964; +OracleSqlParser.MODEL_COMPILE_SUBQUERY = 965; +OracleSqlParser.MODEL_DONTVERIFY_UNIQUENESS = 966; +OracleSqlParser.MODEL_DYNAMIC_SUBQUERY = 967; +OracleSqlParser.MODEL_MIN_ANALYSIS = 968; +OracleSqlParser.MODEL = 969; +OracleSqlParser.MODEL_NB = 970; +OracleSqlParser.MODEL_NO_ANALYSIS = 971; +OracleSqlParser.MODEL_PBY = 972; +OracleSqlParser.MODEL_PUSH_REF = 973; +OracleSqlParser.MODEL_SV = 974; +OracleSqlParser.MODE = 975; +OracleSqlParser.MODIFICATION = 976; +OracleSqlParser.MODIFY_COLUMN_TYPE = 977; +OracleSqlParser.MODIFY = 978; +OracleSqlParser.MOD = 979; +OracleSqlParser.MODULE = 980; +OracleSqlParser.MONITORING = 981; +OracleSqlParser.MONITOR = 982; +OracleSqlParser.MONTH = 983; +OracleSqlParser.MONTHS_BETWEEN = 984; +OracleSqlParser.MONTHS = 985; +OracleSqlParser.MOUNT = 986; +OracleSqlParser.MOUNTPATH = 987; +OracleSqlParser.MOUNTPOINT = 988; +OracleSqlParser.MOVEMENT = 989; +OracleSqlParser.MOVE = 990; +OracleSqlParser.MULTIDIMENSIONAL = 991; +OracleSqlParser.MULTISET = 992; +OracleSqlParser.MV_MERGE = 993; +OracleSqlParser.NAMED = 994; +OracleSqlParser.NAME = 995; +OracleSqlParser.NAMESPACE = 996; +OracleSqlParser.NAN_ = 997; +OracleSqlParser.NANVL = 998; +OracleSqlParser.NATIONAL = 999; +OracleSqlParser.NATIVE_FULL_OUTER_JOIN = 1000; +OracleSqlParser.NATIVE = 1001; +OracleSqlParser.NATURAL = 1002; +OracleSqlParser.NATURALN = 1003; +OracleSqlParser.NAV = 1004; +OracleSqlParser.NCHAR_CS = 1005; +OracleSqlParser.NCHAR = 1006; +OracleSqlParser.NCHR = 1007; +OracleSqlParser.NCLOB = 1008; +OracleSqlParser.NEEDED = 1009; +OracleSqlParser.NEG = 1010; +OracleSqlParser.NESTED = 1011; +OracleSqlParser.NESTED_TABLE_FAST_INSERT = 1012; +OracleSqlParser.NESTED_TABLE_GET_REFS = 1013; +OracleSqlParser.NESTED_TABLE_ID = 1014; +OracleSqlParser.NESTED_TABLE_SET_REFS = 1015; +OracleSqlParser.NESTED_TABLE_SET_SETID = 1016; +OracleSqlParser.NETWORK = 1017; +OracleSqlParser.NEVER = 1018; +OracleSqlParser.NEW = 1019; +OracleSqlParser.NEWLINE_ = 1020; +OracleSqlParser.NEW_TIME = 1021; +OracleSqlParser.NEXT_DAY = 1022; +OracleSqlParser.NEXT = 1023; +OracleSqlParser.NL_AJ = 1024; +OracleSqlParser.NLJ_BATCHING = 1025; +OracleSqlParser.NLJ_INDEX_FILTER = 1026; +OracleSqlParser.NLJ_INDEX_SCAN = 1027; +OracleSqlParser.NLJ_PREFETCH = 1028; +OracleSqlParser.NLS_CALENDAR = 1029; +OracleSqlParser.NLS_CHARACTERSET = 1030; +OracleSqlParser.NLS_CHARSET_DECL_LEN = 1031; +OracleSqlParser.NLS_CHARSET_ID = 1032; +OracleSqlParser.NLS_CHARSET_NAME = 1033; +OracleSqlParser.NLS_COMP = 1034; +OracleSqlParser.NLS_CURRENCY = 1035; +OracleSqlParser.NLS_DATE_FORMAT = 1036; +OracleSqlParser.NLS_DATE_LANGUAGE = 1037; +OracleSqlParser.NLS_INITCAP = 1038; +OracleSqlParser.NLS_ISO_CURRENCY = 1039; +OracleSqlParser.NL_SJ = 1040; +OracleSqlParser.NLS_LANG = 1041; +OracleSqlParser.NLS_LANGUAGE = 1042; +OracleSqlParser.NLS_LENGTH_SEMANTICS = 1043; +OracleSqlParser.NLS_LOWER = 1044; +OracleSqlParser.NLS_NCHAR_CONV_EXCP = 1045; +OracleSqlParser.NLS_NUMERIC_CHARACTERS = 1046; +OracleSqlParser.NLS_SORT = 1047; +OracleSqlParser.NLSSORT = 1048; +OracleSqlParser.NLS_SPECIAL_CHARS = 1049; +OracleSqlParser.NLS_TERRITORY = 1050; +OracleSqlParser.NLS_UPPER = 1051; +OracleSqlParser.NO_ACCESS = 1052; +OracleSqlParser.NO_ADAPTIVE_PLAN = 1053; +OracleSqlParser.NO_ANSI_REARCH = 1054; +OracleSqlParser.NOAPPEND = 1055; +OracleSqlParser.NOARCHIVELOG = 1056; +OracleSqlParser.NOAUDIT = 1057; +OracleSqlParser.NOBADFILE = 1058; +OracleSqlParser.NO_AUTO_REOPTIMIZE = 1059; +OracleSqlParser.NO_BASETABLE_MULTIMV_REWRITE = 1060; +OracleSqlParser.NO_BATCH_TABLE_ACCESS_BY_ROWID = 1061; +OracleSqlParser.NO_BIND_AWARE = 1062; +OracleSqlParser.NO_BUFFER = 1063; +OracleSqlParser.NOCACHE = 1064; +OracleSqlParser.NOCHECK = 1065; +OracleSqlParser.NO_CARTESIAN = 1066; +OracleSqlParser.NO_CHECK_ACL_REWRITE = 1067; +OracleSqlParser.NO_CLUSTER_BY_ROWID = 1068; +OracleSqlParser.NO_CLUSTERING = 1069; +OracleSqlParser.NO_COALESCE_SQ = 1070; +OracleSqlParser.NO_COMMON_DATA = 1071; +OracleSqlParser.NOCOMPRESS = 1072; +OracleSqlParser.NO_CONNECT_BY_CB_WHR_ONLY = 1073; +OracleSqlParser.NO_CONNECT_BY_COMBINE_SW = 1074; +OracleSqlParser.NO_CONNECT_BY_COST_BASED = 1075; +OracleSqlParser.NO_CONNECT_BY_ELIM_DUPS = 1076; +OracleSqlParser.NO_CONNECT_BY_FILTERING = 1077; +OracleSqlParser.NOCOPY = 1078; +OracleSqlParser.NO_COST_XML_QUERY_REWRITE = 1079; +OracleSqlParser.NO_CPU_COSTING = 1080; +OracleSqlParser.NOCPU_COSTING = 1081; +OracleSqlParser.NOCYCLE = 1082; +OracleSqlParser.NO_DATA_SECURITY_REWRITE = 1083; +OracleSqlParser.NO_DECORRELATE = 1084; +OracleSqlParser.NODELAY = 1085; +OracleSqlParser.NODIRECTIO = 1086; +OracleSqlParser.NODISCARDFILE = 1087; +OracleSqlParser.NO_DOMAIN_INDEX_FILTER = 1088; +OracleSqlParser.NO_DST_UPGRADE_INSERT_CONV = 1089; +OracleSqlParser.NO_ELIM_GROUPBY = 1090; +OracleSqlParser.NO_ELIMINATE_JOIN = 1091; +OracleSqlParser.NO_ELIMINATE_OBY = 1092; +OracleSqlParser.NO_ELIMINATE_OUTER_JOIN = 1093; +OracleSqlParser.NOENTITYESCAPING = 1094; +OracleSqlParser.NO_EXPAND_GSET_TO_UNION = 1095; +OracleSqlParser.NO_EXPAND = 1096; +OracleSqlParser.NO_EXPAND_TABLE = 1097; +OracleSqlParser.NOEXTEND = 1098; +OracleSqlParser.NO_FACT = 1099; +OracleSqlParser.NO_FACTORIZE_JOIN = 1100; +OracleSqlParser.NO_FILTERING = 1101; +OracleSqlParser.NOFORCE = 1102; +OracleSqlParser.NO_FULL_OUTER_JOIN_TO_OUTER = 1103; +OracleSqlParser.NO_GATHER_OPTIMIZER_STATISTICS = 1104; +OracleSqlParser.NO_GBY_PUSHDOWN = 1105; +OracleSqlParser.NOGUARANTEE = 1106; +OracleSqlParser.NO_INDEX_FFS = 1107; +OracleSqlParser.NO_INDEX = 1108; +OracleSqlParser.NO_INDEX_SS = 1109; +OracleSqlParser.NO_INMEMORY = 1110; +OracleSqlParser.NO_INMEMORY_PRUNING = 1111; +OracleSqlParser.NOKEEP = 1112; +OracleSqlParser.NO_LOAD = 1113; +OracleSqlParser.NOLOCAL = 1114; +OracleSqlParser.NOLOG = 1115; +OracleSqlParser.NOLOGFILE = 1116; +OracleSqlParser.NOLOGGING = 1117; +OracleSqlParser.NOMAPPING = 1118; +OracleSqlParser.NOMAXVALUE = 1119; +OracleSqlParser.NO_MERGE = 1120; +OracleSqlParser.NOMINIMIZE = 1121; +OracleSqlParser.NOMINVALUE = 1122; +OracleSqlParser.NO_MODEL_PUSH_REF = 1123; +OracleSqlParser.NO_MONITORING = 1124; +OracleSqlParser.NOMONITORING = 1125; +OracleSqlParser.NO_MONITOR = 1126; +OracleSqlParser.NO_MULTIMV_REWRITE = 1127; +OracleSqlParser.NO_NATIVE_FULL_OUTER_JOIN = 1128; +OracleSqlParser.NONBLOCKING = 1129; +OracleSqlParser.NONEDITIONABLE = 1130; +OracleSqlParser.NONE = 1131; +OracleSqlParser.NONULLIF = 1132; +OracleSqlParser.NO_NLJ_BATCHING = 1133; +OracleSqlParser.NO_NLJ_PREFETCH = 1134; +OracleSqlParser.NO = 1135; +OracleSqlParser.NONSCHEMA = 1136; +OracleSqlParser.NO_OBJECT_LINK = 1137; +OracleSqlParser.NOORDER = 1138; +OracleSqlParser.NO_ORDER_ROLLUPS = 1139; +OracleSqlParser.NO_OUTER_JOIN_TO_ANTI = 1140; +OracleSqlParser.NO_OUTER_JOIN_TO_INNER = 1141; +OracleSqlParser.NOOVERRIDE = 1142; +OracleSqlParser.NO_PARALLEL_INDEX = 1143; +OracleSqlParser.NOPARALLEL_INDEX = 1144; +OracleSqlParser.NO_PARALLEL = 1145; +OracleSqlParser.NOPARALLEL = 1146; +OracleSqlParser.NO_PARTIAL_COMMIT = 1147; +OracleSqlParser.NO_PARTIAL_JOIN = 1148; +OracleSqlParser.NO_PARTIAL_ROLLUP_PUSHDOWN = 1149; +OracleSqlParser.NOPARTITION = 1150; +OracleSqlParser.NO_PLACE_DISTINCT = 1151; +OracleSqlParser.NO_PLACE_GROUP_BY = 1152; +OracleSqlParser.NO_PQ_CONCURRENT_UNION = 1153; +OracleSqlParser.NO_PQ_MAP = 1154; +OracleSqlParser.NOPROMPT = 1155; +OracleSqlParser.NO_PQ_REPLICATE = 1156; +OracleSqlParser.NO_PQ_SKEW = 1157; +OracleSqlParser.NO_PRUNE_GSETS = 1158; +OracleSqlParser.NO_PULL_PRED = 1159; +OracleSqlParser.NO_PUSH_PRED = 1160; +OracleSqlParser.NO_PUSH_SUBQ = 1161; +OracleSqlParser.NO_PX_FAULT_TOLERANCE = 1162; +OracleSqlParser.NO_PX_JOIN_FILTER = 1163; +OracleSqlParser.NO_QKN_BUFF = 1164; +OracleSqlParser.NO_QUERY_TRANSFORMATION = 1165; +OracleSqlParser.NO_REF_CASCADE = 1166; +OracleSqlParser.NORELOCATE = 1167; +OracleSqlParser.NORELY = 1168; +OracleSqlParser.NOREPAIR = 1169; +OracleSqlParser.NOREPLAY = 1170; +OracleSqlParser.NORESETLOGS = 1171; +OracleSqlParser.NO_RESULT_CACHE = 1172; +OracleSqlParser.NOREVERSE = 1173; +OracleSqlParser.NO_REWRITE = 1174; +OracleSqlParser.NOREWRITE = 1175; +OracleSqlParser.NORMAL = 1176; +OracleSqlParser.NO_ROOT_SW_FOR_LOCAL = 1177; +OracleSqlParser.NOROWDEPENDENCIES = 1178; +OracleSqlParser.NOSCALE = 1179; +OracleSqlParser.NOSCHEMACHECK = 1180; +OracleSqlParser.NOSEGMENT = 1181; +OracleSqlParser.NO_SEMIJOIN = 1182; +OracleSqlParser.NO_SEMI_TO_INNER = 1183; +OracleSqlParser.NO_SET_TO_JOIN = 1184; +OracleSqlParser.NOSHARD = 1185; +OracleSqlParser.NOSORT = 1186; +OracleSqlParser.NO_SQL_TRANSLATION = 1187; +OracleSqlParser.NO_SQL_TUNE = 1188; +OracleSqlParser.NO_STAR_TRANSFORMATION = 1189; +OracleSqlParser.NO_STATEMENT_QUEUING = 1190; +OracleSqlParser.NO_STATS_GSETS = 1191; +OracleSqlParser.NOSTRICT = 1192; +OracleSqlParser.NO_SUBQUERY_PRUNING = 1193; +OracleSqlParser.NO_SUBSTRB_PAD = 1194; +OracleSqlParser.NO_SWAP_JOIN_INPUTS = 1195; +OracleSqlParser.NOSWITCH = 1196; +OracleSqlParser.NO_TABLE_LOOKUP_BY_NL = 1197; +OracleSqlParser.NO_TEMP_TABLE = 1198; +OracleSqlParser.NOTHING = 1199; +OracleSqlParser.NOTIFICATION = 1200; +OracleSqlParser.NOTRIM = 1201; +OracleSqlParser.NOT = 1202; +OracleSqlParser.NO_TRANSFORM_DISTINCT_AGG = 1203; +OracleSqlParser.NO_UNNEST = 1204; +OracleSqlParser.NO_USE_CUBE = 1205; +OracleSqlParser.NO_USE_HASH_AGGREGATION = 1206; +OracleSqlParser.NO_USE_HASH_GBY_FOR_PUSHDOWN = 1207; +OracleSqlParser.NO_USE_HASH = 1208; +OracleSqlParser.NO_USE_INVISIBLE_INDEXES = 1209; +OracleSqlParser.NO_USE_MERGE = 1210; +OracleSqlParser.NO_USE_NL = 1211; +OracleSqlParser.NO_USE_VECTOR_AGGREGATION = 1212; +OracleSqlParser.NOVALIDATE = 1213; +OracleSqlParser.NO_VECTOR_TRANSFORM_DIMS = 1214; +OracleSqlParser.NO_VECTOR_TRANSFORM_FACT = 1215; +OracleSqlParser.NO_VECTOR_TRANSFORM = 1216; +OracleSqlParser.NOWAIT = 1217; +OracleSqlParser.NO_XDB_FASTPATH_INSERT = 1218; +OracleSqlParser.NO_XML_DML_REWRITE = 1219; +OracleSqlParser.NO_XMLINDEX_REWRITE_IN_SELECT = 1220; +OracleSqlParser.NO_XMLINDEX_REWRITE = 1221; +OracleSqlParser.NO_XML_QUERY_REWRITE = 1222; +OracleSqlParser.NO_ZONEMAP = 1223; +OracleSqlParser.NTH_VALUE = 1224; +OracleSqlParser.NULLIF = 1225; +OracleSqlParser.NULL_ = 1226; +OracleSqlParser.NULLS = 1227; +OracleSqlParser.NUMBER = 1228; +OracleSqlParser.NUMERIC = 1229; +OracleSqlParser.NUM_INDEX_KEYS = 1230; +OracleSqlParser.NUMTODSINTERVAL = 1231; +OracleSqlParser.NUMTOYMINTERVAL = 1232; +OracleSqlParser.NVARCHAR2 = 1233; +OracleSqlParser.NVL2 = 1234; +OracleSqlParser.OBJECT2XML = 1235; +OracleSqlParser.OBJECT = 1236; +OracleSqlParser.OBJ_ID = 1237; +OracleSqlParser.OBJNO = 1238; +OracleSqlParser.OBJNO_REUSE = 1239; +OracleSqlParser.OCCURENCES = 1240; +OracleSqlParser.OFFLINE = 1241; +OracleSqlParser.OFF = 1242; +OracleSqlParser.OFFSET = 1243; +OracleSqlParser.OF = 1244; +OracleSqlParser.OIDINDEX = 1245; +OracleSqlParser.OID = 1246; +OracleSqlParser.OLAP = 1247; +OracleSqlParser.OLD = 1248; +OracleSqlParser.OLD_PUSH_PRED = 1249; +OracleSqlParser.OLS = 1250; +OracleSqlParser.OLTP = 1251; +OracleSqlParser.OMIT = 1252; +OracleSqlParser.ONE = 1253; +OracleSqlParser.ONLINE = 1254; +OracleSqlParser.ONLINELOG = 1255; +OracleSqlParser.ONLY = 1256; +OracleSqlParser.ON = 1257; +OracleSqlParser.OPAQUE = 1258; +OracleSqlParser.OPAQUE_TRANSFORM = 1259; +OracleSqlParser.OPAQUE_XCANONICAL = 1260; +OracleSqlParser.OPCODE = 1261; +OracleSqlParser.OPEN = 1262; +OracleSqlParser.OPERATIONS = 1263; +OracleSqlParser.OPERATOR = 1264; +OracleSqlParser.OPT_ESTIMATE = 1265; +OracleSqlParser.OPTIMAL = 1266; +OracleSqlParser.OPTIMIZE = 1267; +OracleSqlParser.OPTIMIZER_FEATURES_ENABLE = 1268; +OracleSqlParser.OPTIMIZER_GOAL = 1269; +OracleSqlParser.OPTION = 1270; +OracleSqlParser.OPTIONALLY = 1271; +OracleSqlParser.OPT_PARAM = 1272; +OracleSqlParser.ORA_BRANCH = 1273; +OracleSqlParser.ORA_CHECK_ACL = 1274; +OracleSqlParser.ORA_CHECK_PRIVILEGE = 1275; +OracleSqlParser.ORA_CLUSTERING = 1276; +OracleSqlParser.ORADATA = 1277; +OracleSqlParser.ORC = 1278; +OracleSqlParser.ORACLE_DATE = 1279; +OracleSqlParser.ORACLE_NUMBER = 1280; +OracleSqlParser.ORADEBUG = 1281; +OracleSqlParser.ORA_DST_AFFECTED = 1282; +OracleSqlParser.ORA_DST_CONVERT = 1283; +OracleSqlParser.ORA_DST_ERROR = 1284; +OracleSqlParser.ORA_GET_ACLIDS = 1285; +OracleSqlParser.ORA_GET_PRIVILEGES = 1286; +OracleSqlParser.ORA_HASH = 1287; +OracleSqlParser.ORA_INVOKING_USERID = 1288; +OracleSqlParser.ORA_INVOKING_USER = 1289; +OracleSqlParser.ORA_INVOKING_XS_USER_GUID = 1290; +OracleSqlParser.ORA_INVOKING_XS_USER = 1291; +OracleSqlParser.ORA_RAWCOMPARE = 1292; +OracleSqlParser.ORA_RAWCONCAT = 1293; +OracleSqlParser.ORA_ROWSCN = 1294; +OracleSqlParser.ORA_ROWSCN_RAW = 1295; +OracleSqlParser.ORA_ROWVERSION = 1296; +OracleSqlParser.ORA_TABVERSION = 1297; +OracleSqlParser.ORA_WRITE_TIME = 1298; +OracleSqlParser.ORDERED = 1299; +OracleSqlParser.ORDERED_PREDICATES = 1300; +OracleSqlParser.ORDER = 1301; +OracleSqlParser.ORDINALITY = 1302; +OracleSqlParser.OR_EXPAND = 1303; +OracleSqlParser.ORGANIZATION = 1304; +OracleSqlParser.OR = 1305; +OracleSqlParser.OR_PREDICATES = 1306; +OracleSqlParser.OSERROR = 1307; +OracleSqlParser.OTHER = 1308; +OracleSqlParser.OUTER_JOIN_TO_ANTI = 1309; +OracleSqlParser.OUTER_JOIN_TO_INNER = 1310; +OracleSqlParser.OUTER = 1311; +OracleSqlParser.OUTLINE_LEAF = 1312; +OracleSqlParser.OUTLINE = 1313; +OracleSqlParser.OUTPUTFORMAT = 1314; +OracleSqlParser.OUT_OF_LINE = 1315; +OracleSqlParser.OUT = 1316; +OracleSqlParser.OVERFLOW_NOMOVE = 1317; +OracleSqlParser.OVERFLOW_ = 1318; +OracleSqlParser.OVERLAPS = 1319; +OracleSqlParser.OVER = 1320; +OracleSqlParser.OVERRIDE = 1321; +OracleSqlParser.OVERRIDING = 1322; +OracleSqlParser.OWNER = 1323; +OracleSqlParser.OWNERSHIP = 1324; +OracleSqlParser.OWN = 1325; +OracleSqlParser.P_LETTER = 1326; +OracleSqlParser.PACKAGE = 1327; +OracleSqlParser.PACKAGES = 1328; +OracleSqlParser.PARALLEL_ENABLE = 1329; +OracleSqlParser.PARALLEL_INDEX = 1330; +OracleSqlParser.PARALLEL = 1331; +OracleSqlParser.PARAMETERFILE = 1332; +OracleSqlParser.PARAMETERS = 1333; +OracleSqlParser.PARAM = 1334; +OracleSqlParser.PARENT = 1335; +OracleSqlParser.PARENT_LEVEL_NAME = 1336; +OracleSqlParser.PARENT_UNIQUE_NAME = 1337; +OracleSqlParser.PARITY = 1338; +OracleSqlParser.PARQUET = 1339; +OracleSqlParser.PARTIAL_JOIN = 1340; +OracleSqlParser.PARTIALLY = 1341; +OracleSqlParser.PARTIAL = 1342; +OracleSqlParser.PARTIAL_ROLLUP_PUSHDOWN = 1343; +OracleSqlParser.PARTITION_HASH = 1344; +OracleSqlParser.PARTITION_LIST = 1345; +OracleSqlParser.PARTITION = 1346; +OracleSqlParser.PARTITION_RANGE = 1347; +OracleSqlParser.PARTITIONS = 1348; +OracleSqlParser.PARTNUMINST = 1349; +OracleSqlParser.PASSING = 1350; +OracleSqlParser.PASSWORD_GRACE_TIME = 1351; +OracleSqlParser.PASSWORD_LIFE_TIME = 1352; +OracleSqlParser.PASSWORD_LOCK_TIME = 1353; +OracleSqlParser.PASSWORD = 1354; +OracleSqlParser.PASSWORD_REUSE_MAX = 1355; +OracleSqlParser.PASSWORD_REUSE_TIME = 1356; +OracleSqlParser.PASSWORD_ROLLOVER_TIME = 1357; +OracleSqlParser.PASSWORD_VERIFY_FUNCTION = 1358; +OracleSqlParser.PAST = 1359; +OracleSqlParser.PATCH = 1360; +OracleSqlParser.PATH = 1361; +OracleSqlParser.PATH_PREFIX = 1362; +OracleSqlParser.PATHS = 1363; +OracleSqlParser.PATTERN = 1364; +OracleSqlParser.PBL_HS_BEGIN = 1365; +OracleSqlParser.PBL_HS_END = 1366; +OracleSqlParser.PCTFREE = 1367; +OracleSqlParser.PCTINCREASE = 1368; +OracleSqlParser.PCTTHRESHOLD = 1369; +OracleSqlParser.PCTUSED = 1370; +OracleSqlParser.PCTVERSION = 1371; +OracleSqlParser.PENDING = 1372; +OracleSqlParser.PERCENT_FOUND = 1373; +OracleSqlParser.PERCENT_ISOPEN = 1374; +OracleSqlParser.PERCENT_NOTFOUND = 1375; +OracleSqlParser.PERCENT_KEYWORD = 1376; +OracleSqlParser.PERCENT_RANKM = 1377; +OracleSqlParser.PERCENT_ROWCOUNT = 1378; +OracleSqlParser.PERCENT_ROWTYPE = 1379; +OracleSqlParser.PERCENT_TYPE = 1380; +OracleSqlParser.PERCENT_BULK_EXCEPTIONS = 1381; +OracleSqlParser.PERCENT_BULK_ROWCOUNT = 1382; +OracleSqlParser.PERFORMANCE = 1383; +OracleSqlParser.PERIOD_KEYWORD = 1384; +OracleSqlParser.PERMANENT = 1385; +OracleSqlParser.PERMISSION = 1386; +OracleSqlParser.PERMUTE = 1387; +OracleSqlParser.PER = 1388; +OracleSqlParser.PFILE = 1389; +OracleSqlParser.PHYSICAL = 1390; +OracleSqlParser.PIKEY = 1391; +OracleSqlParser.PIPELINED = 1392; +OracleSqlParser.PIPE = 1393; +OracleSqlParser.PIV_GB = 1394; +OracleSqlParser.PIVOT = 1395; +OracleSqlParser.PIV_SSF = 1396; +OracleSqlParser.PLACE_DISTINCT = 1397; +OracleSqlParser.PLACE_GROUP_BY = 1398; +OracleSqlParser.PLAN = 1399; +OracleSqlParser.PLSCOPE_SETTINGS = 1400; +OracleSqlParser.PLS_INTEGER = 1401; +OracleSqlParser.PLSQL_CCFLAGS = 1402; +OracleSqlParser.PLSQL_CODE_TYPE = 1403; +OracleSqlParser.PLSQL_DEBUG = 1404; +OracleSqlParser.PLSQL_OPTIMIZE_LEVEL = 1405; +OracleSqlParser.PLSQL_WARNINGS = 1406; +OracleSqlParser.PLUGGABLE = 1407; +OracleSqlParser.PMEM = 1408; +OracleSqlParser.POINT = 1409; +OracleSqlParser.POLICY = 1410; +OracleSqlParser.POOL_16K = 1411; +OracleSqlParser.POOL_2K = 1412; +OracleSqlParser.POOL_32K = 1413; +OracleSqlParser.POOL_4K = 1414; +OracleSqlParser.POOL_8K = 1415; +OracleSqlParser.POSITION = 1416; +OracleSqlParser.POSITIVEN = 1417; +OracleSqlParser.POSITIVE = 1418; +OracleSqlParser.POST_TRANSACTION = 1419; +OracleSqlParser.POWERMULTISET_BY_CARDINALITY = 1420; +OracleSqlParser.POWERMULTISET = 1421; +OracleSqlParser.POWER = 1422; +OracleSqlParser.PQ_CONCURRENT_UNION = 1423; +OracleSqlParser.PQ_DISTRIBUTE = 1424; +OracleSqlParser.PQ_DISTRIBUTE_WINDOW = 1425; +OracleSqlParser.PQ_FILTER = 1426; +OracleSqlParser.PQ_MAP = 1427; +OracleSqlParser.PQ_NOMAP = 1428; +OracleSqlParser.PQ_REPLICATE = 1429; +OracleSqlParser.PQ_SKEW = 1430; +OracleSqlParser.PRAGMA = 1431; +OracleSqlParser.PREBUILT = 1432; +OracleSqlParser.PRECEDES = 1433; +OracleSqlParser.PRECEDING = 1434; +OracleSqlParser.PRECISION = 1435; +OracleSqlParser.PRECOMPUTE_SUBQUERY = 1436; +OracleSqlParser.PREDICATE_REORDERS = 1437; +OracleSqlParser.PRELOAD = 1438; +OracleSqlParser.PREPARE = 1439; +OracleSqlParser.PREPROCESSOR = 1440; +OracleSqlParser.PRESENTNNV = 1441; +OracleSqlParser.PRESENT = 1442; +OracleSqlParser.PRESENTV = 1443; +OracleSqlParser.PRESERVE_OID = 1444; +OracleSqlParser.PRESERVE = 1445; +OracleSqlParser.PRETTY = 1446; +OracleSqlParser.PREVIOUS = 1447; +OracleSqlParser.PREV = 1448; +OracleSqlParser.PRIMARY = 1449; +OracleSqlParser.PRINTBLOBTOCLOB = 1450; +OracleSqlParser.PRIORITY = 1451; +OracleSqlParser.PRIOR = 1452; +OracleSqlParser.PRIVATE = 1453; +OracleSqlParser.PRIVATE_SGA = 1454; +OracleSqlParser.PRIVILEGED = 1455; +OracleSqlParser.PRIVILEGE = 1456; +OracleSqlParser.PRIVILEGES = 1457; +OracleSqlParser.PROCEDURAL = 1458; +OracleSqlParser.PROCEDURE = 1459; +OracleSqlParser.PROCESS = 1460; +OracleSqlParser.PROFILE = 1461; +OracleSqlParser.PROGRAM = 1462; +OracleSqlParser.PROJECT = 1463; +OracleSqlParser.PROPAGATE = 1464; +OracleSqlParser.PROPERTY = 1465; +OracleSqlParser.PROTECTED = 1466; +OracleSqlParser.PROTECTION = 1467; +OracleSqlParser.PROTOCOL = 1468; +OracleSqlParser.PROXY = 1469; +OracleSqlParser.PRUNING = 1470; +OracleSqlParser.PUBLIC = 1471; +OracleSqlParser.PULL_PRED = 1472; +OracleSqlParser.PURGE = 1473; +OracleSqlParser.PUSH_PRED = 1474; +OracleSqlParser.PUSH_SUBQ = 1475; +OracleSqlParser.PX_FAULT_TOLERANCE = 1476; +OracleSqlParser.PX_GRANULE = 1477; +OracleSqlParser.PX_JOIN_FILTER = 1478; +OracleSqlParser.QB_NAME = 1479; +OracleSqlParser.QUARTERS = 1480; +OracleSqlParser.QUERY_BLOCK = 1481; +OracleSqlParser.QUERY = 1482; +OracleSqlParser.QUEUE_CURR = 1483; +OracleSqlParser.QUEUE = 1484; +OracleSqlParser.QUEUE_ROWP = 1485; +OracleSqlParser.QUIESCE = 1486; +OracleSqlParser.QUORUM = 1487; +OracleSqlParser.QUOTA = 1488; +OracleSqlParser.QUOTAGROUP = 1489; +OracleSqlParser.RAISE = 1490; +OracleSqlParser.RANDOM_LOCAL = 1491; +OracleSqlParser.RANDOM = 1492; +OracleSqlParser.RANGE = 1493; +OracleSqlParser.RANKM = 1494; +OracleSqlParser.RAPIDLY = 1495; +OracleSqlParser.RAW = 1496; +OracleSqlParser.RAWTOHEX = 1497; +OracleSqlParser.RAWTONHEX = 1498; +OracleSqlParser.RBA = 1499; +OracleSqlParser.RBO_OUTLINE = 1500; +OracleSqlParser.RCFILE = 1501; +OracleSqlParser.RDBA = 1502; +OracleSqlParser.READ = 1503; +OracleSqlParser.READS = 1504; +OracleSqlParser.READSIZE = 1505; +OracleSqlParser.REALM = 1506; +OracleSqlParser.REAL = 1507; +OracleSqlParser.REBALANCE = 1508; +OracleSqlParser.REBUILD = 1509; +OracleSqlParser.RECORD = 1510; +OracleSqlParser.RECORDS = 1511; +OracleSqlParser.RECORDS_PER_BLOCK = 1512; +OracleSqlParser.RECOVERABLE = 1513; +OracleSqlParser.RECOVER = 1514; +OracleSqlParser.RECOVERY = 1515; +OracleSqlParser.RECYCLEBIN = 1516; +OracleSqlParser.RECYCLE = 1517; +OracleSqlParser.REDACTION = 1518; +OracleSqlParser.REDEFINE = 1519; +OracleSqlParser.REDO = 1520; +OracleSqlParser.REDUCED = 1521; +OracleSqlParser.REDUNDANCY = 1522; +OracleSqlParser.REF_CASCADE_CURSOR = 1523; +OracleSqlParser.REFERENCED = 1524; +OracleSqlParser.REFERENCE = 1525; +OracleSqlParser.REFERENCES = 1526; +OracleSqlParser.REFERENCING = 1527; +OracleSqlParser.REF = 1528; +OracleSqlParser.REFRESH = 1529; +OracleSqlParser.REFTOHEX = 1530; +OracleSqlParser.REGEXP_COUNT = 1531; +OracleSqlParser.REGEXP_INSTR = 1532; +OracleSqlParser.REGEXP_LIKE = 1533; +OracleSqlParser.REGEXP_REPLACE = 1534; +OracleSqlParser.REGEXP_SUBSTR = 1535; +OracleSqlParser.REGISTER = 1536; +OracleSqlParser.REGR_AVGX = 1537; +OracleSqlParser.REGR_AVGY = 1538; +OracleSqlParser.REGR_COUNT = 1539; +OracleSqlParser.REGR_INTERCEPT = 1540; +OracleSqlParser.REGR_R2 = 1541; +OracleSqlParser.REGR_SLOPE = 1542; +OracleSqlParser.REGR_SXX = 1543; +OracleSqlParser.REGR_SXY = 1544; +OracleSqlParser.REGR_SYY = 1545; +OracleSqlParser.REGULAR = 1546; +OracleSqlParser.REJECT = 1547; +OracleSqlParser.REKEY = 1548; +OracleSqlParser.RELATIONAL = 1549; +OracleSqlParser.RELIES_ON = 1550; +OracleSqlParser.RELOCATE = 1551; +OracleSqlParser.RELY = 1552; +OracleSqlParser.REMAINDER = 1553; +OracleSqlParser.REMOTE = 1554; +OracleSqlParser.REMOTE_MAPPED = 1555; +OracleSqlParser.REMOVE = 1556; +OracleSqlParser.RENAME = 1557; +OracleSqlParser.REPAIR = 1558; +OracleSqlParser.REPEAT = 1559; +OracleSqlParser.REPLACE = 1560; +OracleSqlParser.REPLICATION = 1561; +OracleSqlParser.REQUIRED = 1562; +OracleSqlParser.RESETLOGS = 1563; +OracleSqlParser.RESET = 1564; +OracleSqlParser.RESIZE = 1565; +OracleSqlParser.RESOLVE = 1566; +OracleSqlParser.RESOLVER = 1567; +OracleSqlParser.RESOURCE = 1568; +OracleSqlParser.RESPECT = 1569; +OracleSqlParser.RESTART = 1570; +OracleSqlParser.RESTORE_AS_INTERVALS = 1571; +OracleSqlParser.RESTORE = 1572; +OracleSqlParser.RESTRICT_ALL_REF_CONS = 1573; +OracleSqlParser.RESTRICTED = 1574; +OracleSqlParser.RESTRICT_REFERENCES = 1575; +OracleSqlParser.RESTRICT = 1576; +OracleSqlParser.RESULT_CACHE = 1577; +OracleSqlParser.RESULT = 1578; +OracleSqlParser.RESUMABLE = 1579; +OracleSqlParser.RESUME = 1580; +OracleSqlParser.RETENTION = 1581; +OracleSqlParser.RETRY_ON_ROW_CHANGE = 1582; +OracleSqlParser.RETURNING = 1583; +OracleSqlParser.RETURN = 1584; +OracleSqlParser.REUSE = 1585; +OracleSqlParser.REVERSE = 1586; +OracleSqlParser.REVOKE = 1587; +OracleSqlParser.REWRITE_OR_ERROR = 1588; +OracleSqlParser.REWRITE = 1589; +OracleSqlParser.RIGHT = 1590; +OracleSqlParser.ROLE = 1591; +OracleSqlParser.ROLESET = 1592; +OracleSqlParser.ROLES = 1593; +OracleSqlParser.ROLLBACK = 1594; +OracleSqlParser.ROLLING = 1595; +OracleSqlParser.ROLLUP = 1596; +OracleSqlParser.ROWDEPENDENCIES = 1597; +OracleSqlParser.ROWID_MAPPING_TABLE = 1598; +OracleSqlParser.ROWID = 1599; +OracleSqlParser.ROWIDTOCHAR = 1600; +OracleSqlParser.ROWIDTONCHAR = 1601; +OracleSqlParser.ROW_LENGTH = 1602; +OracleSqlParser.ROWNUM = 1603; +OracleSqlParser.ROW = 1604; +OracleSqlParser.ROWS = 1605; +OracleSqlParser.RPAD = 1606; +OracleSqlParser.RTRIM = 1607; +OracleSqlParser.RULE = 1608; +OracleSqlParser.RULES = 1609; +OracleSqlParser.RUNNING = 1610; +OracleSqlParser.SALT = 1611; +OracleSqlParser.SAMPLE = 1612; +OracleSqlParser.SAVE_AS_INTERVALS = 1613; +OracleSqlParser.SAVEPOINT = 1614; +OracleSqlParser.SAVE = 1615; +OracleSqlParser.SB4 = 1616; +OracleSqlParser.SCALE_ROWS = 1617; +OracleSqlParser.SCALE = 1618; +OracleSqlParser.SCAN_INSTANCES = 1619; +OracleSqlParser.SCAN = 1620; +OracleSqlParser.SCHEDULER = 1621; +OracleSqlParser.SCHEMACHECK = 1622; +OracleSqlParser.SCHEMA = 1623; +OracleSqlParser.SCN_ASCENDING = 1624; +OracleSqlParser.SCN = 1625; +OracleSqlParser.SCOPE = 1626; +OracleSqlParser.SCRUB = 1627; +OracleSqlParser.SD_ALL = 1628; +OracleSqlParser.SD_INHIBIT = 1629; +OracleSqlParser.SDO_GEOM_MBR = 1630; +OracleSqlParser.SDO_GEOMETRY = 1631; +OracleSqlParser.SD_SHOW = 1632; +OracleSqlParser.SEARCH = 1633; +OracleSqlParser.SECOND = 1634; +OracleSqlParser.SECONDS = 1635; +OracleSqlParser.SECRET = 1636; +OracleSqlParser.SECUREFILE_DBA = 1637; +OracleSqlParser.SECUREFILE = 1638; +OracleSqlParser.SECURITY = 1639; +OracleSqlParser.SEED = 1640; +OracleSqlParser.SEG_BLOCK = 1641; +OracleSqlParser.SEG_FILE = 1642; +OracleSqlParser.SEGMENT = 1643; +OracleSqlParser.SELECTIVITY = 1644; +OracleSqlParser.SELECT = 1645; +OracleSqlParser.SELF = 1646; +OracleSqlParser.SEMIJOIN_DRIVER = 1647; +OracleSqlParser.SEMIJOIN = 1648; +OracleSqlParser.SEMI_TO_INNER = 1649; +OracleSqlParser.SEQUENCED = 1650; +OracleSqlParser.SEQUENCE = 1651; +OracleSqlParser.SEQUENCEFILE = 1652; +OracleSqlParser.SEQUENTIAL = 1653; +OracleSqlParser.SEQ = 1654; +OracleSqlParser.SERDE = 1655; +OracleSqlParser.SERDEPROPERTIES = 1656; +OracleSqlParser.SERIALIZABLE = 1657; +OracleSqlParser.SERIALLY_REUSABLE = 1658; +OracleSqlParser.SERIAL = 1659; +OracleSqlParser.SERVERERROR = 1660; +OracleSqlParser.SERVICE_NAME_CONVERT = 1661; +OracleSqlParser.SERVICE = 1662; +OracleSqlParser.SERVICES = 1663; +OracleSqlParser.SESSION_CACHED_CURSORS = 1664; +OracleSqlParser.SESSION = 1665; +OracleSqlParser.SESSIONS_PER_USER = 1666; +OracleSqlParser.SESSIONTIMEZONE = 1667; +OracleSqlParser.SESSIONTZNAME = 1668; +OracleSqlParser.SET = 1669; +OracleSqlParser.SETS = 1670; +OracleSqlParser.SETTINGS = 1671; +OracleSqlParser.SET_TO_JOIN = 1672; +OracleSqlParser.SEVERE = 1673; +OracleSqlParser.SHARD = 1674; +OracleSqlParser.SHARDSPACE = 1675; +OracleSqlParser.SHARED_POOL = 1676; +OracleSqlParser.SHARED = 1677; +OracleSqlParser.SHARE = 1678; +OracleSqlParser.SHARING = 1679; +OracleSqlParser.SHELFLIFE = 1680; +OracleSqlParser.SHOW = 1681; +OracleSqlParser.SHRINK = 1682; +OracleSqlParser.SHUTDOWN = 1683; +OracleSqlParser.SIBLINGS = 1684; +OracleSqlParser.SID = 1685; +OracleSqlParser.SITE = 1686; +OracleSqlParser.SIGNAL_COMPONENT = 1687; +OracleSqlParser.SIGNAL_FUNCTION = 1688; +OracleSqlParser.SIGN = 1689; +OracleSqlParser.SIGNTYPE = 1690; +OracleSqlParser.SIMPLE_INTEGER = 1691; +OracleSqlParser.SIMPLE = 1692; +OracleSqlParser.SINGLE = 1693; +OracleSqlParser.SINGLETASK = 1694; +OracleSqlParser.SINH = 1695; +OracleSqlParser.SIN = 1696; +OracleSqlParser.SIZE = 1697; +OracleSqlParser.SIZES = 1698; +OracleSqlParser.SKIP_EXT_OPTIMIZER = 1699; +OracleSqlParser.SKIP_ = 1700; +OracleSqlParser.SKIP_UNQ_UNUSABLE_IDX = 1701; +OracleSqlParser.SKIP_UNUSABLE_INDEXES = 1702; +OracleSqlParser.SMALLFILE = 1703; +OracleSqlParser.SMALLINT = 1704; +OracleSqlParser.SNAPSHOT = 1705; +OracleSqlParser.SOME = 1706; +OracleSqlParser.SORT = 1707; +OracleSqlParser.SOUNDEX = 1708; +OracleSqlParser.SOURCE_FILE_DIRECTORY = 1709; +OracleSqlParser.SOURCE_FILE_NAME_CONVERT = 1710; +OracleSqlParser.SOURCE = 1711; +OracleSqlParser.SPACE_KEYWORD = 1712; +OracleSqlParser.SPECIFICATION = 1713; +OracleSqlParser.SPFILE = 1714; +OracleSqlParser.SPLIT = 1715; +OracleSqlParser.SPREADSHEET = 1716; +OracleSqlParser.SQLDATA = 1717; +OracleSqlParser.SQLERROR = 1718; +OracleSqlParser.SQLLDR = 1719; +OracleSqlParser.SQL = 1720; +OracleSqlParser.FILE_EXT = 1721; +OracleSqlParser.SQL_MACRO = 1722; +OracleSqlParser.SQL_TRACE = 1723; +OracleSqlParser.SQL_TRANSLATION_PROFILE = 1724; +OracleSqlParser.SQRT = 1725; +OracleSqlParser.STALE = 1726; +OracleSqlParser.STANDALONE = 1727; +OracleSqlParser.STANDARD = 1728; +OracleSqlParser.STANDARD_HASH = 1729; +OracleSqlParser.STANDBY_MAX_DATA_DELAY = 1730; +OracleSqlParser.STANDBYS = 1731; +OracleSqlParser.STANDBY = 1732; +OracleSqlParser.STAR = 1733; +OracleSqlParser.STAR_TRANSFORMATION = 1734; +OracleSqlParser.START = 1735; +OracleSqlParser.STARTOF = 1736; +OracleSqlParser.STARTUP = 1737; +OracleSqlParser.STATEMENT_ID = 1738; +OracleSqlParser.STATEMENT_QUEUING = 1739; +OracleSqlParser.STATEMENTS = 1740; +OracleSqlParser.STATEMENT = 1741; +OracleSqlParser.STATE = 1742; +OracleSqlParser.STATIC = 1743; +OracleSqlParser.STATISTICS = 1744; +OracleSqlParser.STATS_BINOMIAL_TEST = 1745; +OracleSqlParser.STATS_CROSSTAB = 1746; +OracleSqlParser.STATS_F_TEST = 1747; +OracleSqlParser.STATS_KS_TEST = 1748; +OracleSqlParser.STATS_MODE = 1749; +OracleSqlParser.STATS_MW_TEST = 1750; +OracleSqlParser.STATS_ONE_WAY_ANOVA = 1751; +OracleSqlParser.STATS_T_TEST_INDEP = 1752; +OracleSqlParser.STATS_T_TEST_INDEPU = 1753; +OracleSqlParser.STATS_T_TEST_ONE = 1754; +OracleSqlParser.STATS_T_TEST_PAIRED = 1755; +OracleSqlParser.STATS_WSR_TEST = 1756; +OracleSqlParser.STDDEV_POP = 1757; +OracleSqlParser.STDDEV_SAMP = 1758; +OracleSqlParser.STOP = 1759; +OracleSqlParser.STORAGE = 1760; +OracleSqlParser.STORE = 1761; +OracleSqlParser.STREAMS = 1762; +OracleSqlParser.STREAM = 1763; +OracleSqlParser.STRICT = 1764; +OracleSqlParser.STRING = 1765; +OracleSqlParser.STRIPE_COLUMNS = 1766; +OracleSqlParser.STRIPE_WIDTH = 1767; +OracleSqlParser.STRIP = 1768; +OracleSqlParser.STRUCTURE = 1769; +OracleSqlParser.SUBMULTISET = 1770; +OracleSqlParser.SUBPARTITION_REL = 1771; +OracleSqlParser.SUBPARTITIONS = 1772; +OracleSqlParser.SUBPARTITION = 1773; +OracleSqlParser.SUBQUERIES = 1774; +OracleSqlParser.SUBQUERY_PRUNING = 1775; +OracleSqlParser.SUBSCRIBE = 1776; +OracleSqlParser.SUBSET = 1777; +OracleSqlParser.SUBSTITUTABLE = 1778; +OracleSqlParser.SUBSTR2 = 1779; +OracleSqlParser.SUBSTR4 = 1780; +OracleSqlParser.SUBSTRB = 1781; +OracleSqlParser.SUBSTRC = 1782; +OracleSqlParser.SUBTYPE = 1783; +OracleSqlParser.SUCCESSFUL = 1784; +OracleSqlParser.SUCCESS = 1785; +OracleSqlParser.SUMMARY = 1786; +OracleSqlParser.SUPPLEMENTAL = 1787; +OracleSqlParser.SUSPEND = 1788; +OracleSqlParser.SWAP_JOIN_INPUTS = 1789; +OracleSqlParser.SWITCHOVER = 1790; +OracleSqlParser.SWITCH = 1791; +OracleSqlParser.SYNCHRONOUS = 1792; +OracleSqlParser.SYNC = 1793; +OracleSqlParser.SYNONYM = 1794; +OracleSqlParser.SYS = 1795; +OracleSqlParser.SYSASM = 1796; +OracleSqlParser.SYS_AUDIT = 1797; +OracleSqlParser.SYSAUX = 1798; +OracleSqlParser.SYSBACKUP = 1799; +OracleSqlParser.SYS_CHECKACL = 1800; +OracleSqlParser.SYS_CHECK_PRIVILEGE = 1801; +OracleSqlParser.SYS_CONNECT_BY_PATH = 1802; +OracleSqlParser.SYS_CONTEXT = 1803; +OracleSqlParser.SYSDATE = 1804; +OracleSqlParser.SYSDBA = 1805; +OracleSqlParser.SYS_DBURIGEN = 1806; +OracleSqlParser.SYSDG = 1807; +OracleSqlParser.SYS_DL_CURSOR = 1808; +OracleSqlParser.SYS_DM_RXFORM_CHR = 1809; +OracleSqlParser.SYS_DM_RXFORM_NUM = 1810; +OracleSqlParser.SYS_DOM_COMPARE = 1811; +OracleSqlParser.SYS_DST_PRIM2SEC = 1812; +OracleSqlParser.SYS_DST_SEC2PRIM = 1813; +OracleSqlParser.SYS_ET_BFILE_TO_RAW = 1814; +OracleSqlParser.SYS_ET_BLOB_TO_IMAGE = 1815; +OracleSqlParser.SYS_ET_IMAGE_TO_BLOB = 1816; +OracleSqlParser.SYS_ET_RAW_TO_BFILE = 1817; +OracleSqlParser.SYS_EXTPDTXT = 1818; +OracleSqlParser.SYS_EXTRACT_UTC = 1819; +OracleSqlParser.SYS_FBT_INSDEL = 1820; +OracleSqlParser.SYS_FILTER_ACLS = 1821; +OracleSqlParser.SYS_FNMATCHES = 1822; +OracleSqlParser.SYS_FNREPLACE = 1823; +OracleSqlParser.SYS_GET_ACLIDS = 1824; +OracleSqlParser.SYS_GET_COL_ACLIDS = 1825; +OracleSqlParser.SYS_GET_PRIVILEGES = 1826; +OracleSqlParser.SYS_GETTOKENID = 1827; +OracleSqlParser.SYS_GETXTIVAL = 1828; +OracleSqlParser.SYS_GUID = 1829; +OracleSqlParser.SYSGUID = 1830; +OracleSqlParser.SYSKM = 1831; +OracleSqlParser.SYS_MAKE_XMLNODEID = 1832; +OracleSqlParser.SYS_MAKEXML = 1833; +OracleSqlParser.SYS_MKXMLATTR = 1834; +OracleSqlParser.SYS_MKXTI = 1835; +OracleSqlParser.SYSOBJ = 1836; +OracleSqlParser.SYS_OP_ADT2BIN = 1837; +OracleSqlParser.SYS_OP_ADTCONS = 1838; +OracleSqlParser.SYS_OP_ALSCRVAL = 1839; +OracleSqlParser.SYS_OP_ATG = 1840; +OracleSqlParser.SYS_OP_BIN2ADT = 1841; +OracleSqlParser.SYS_OP_BITVEC = 1842; +OracleSqlParser.SYS_OP_BL2R = 1843; +OracleSqlParser.SYS_OP_BLOOM_FILTER_LIST = 1844; +OracleSqlParser.SYS_OP_BLOOM_FILTER = 1845; +OracleSqlParser.SYS_OP_C2C = 1846; +OracleSqlParser.SYS_OP_CAST = 1847; +OracleSqlParser.SYS_OP_CEG = 1848; +OracleSqlParser.SYS_OP_CL2C = 1849; +OracleSqlParser.SYS_OP_COMBINED_HASH = 1850; +OracleSqlParser.SYS_OP_COMP = 1851; +OracleSqlParser.SYS_OP_CONVERT = 1852; +OracleSqlParser.SYS_OP_COUNTCHG = 1853; +OracleSqlParser.SYS_OP_CSCONV = 1854; +OracleSqlParser.SYS_OP_CSCONVTEST = 1855; +OracleSqlParser.SYS_OP_CSR = 1856; +OracleSqlParser.SYS_OP_CSX_PATCH = 1857; +OracleSqlParser.SYS_OP_CYCLED_SEQ = 1858; +OracleSqlParser.SYS_OP_DECOMP = 1859; +OracleSqlParser.SYS_OP_DESCEND = 1860; +OracleSqlParser.SYS_OP_DISTINCT = 1861; +OracleSqlParser.SYS_OP_DRA = 1862; +OracleSqlParser.SYS_OP_DUMP = 1863; +OracleSqlParser.SYS_OP_DV_CHECK = 1864; +OracleSqlParser.SYS_OP_ENFORCE_NOT_NULL = 1865; +OracleSqlParser.SYSOPER = 1866; +OracleSqlParser.SYS_OP_EXTRACT = 1867; +OracleSqlParser.SYS_OP_GROUPING = 1868; +OracleSqlParser.SYS_OP_GUID = 1869; +OracleSqlParser.SYS_OP_HASH = 1870; +OracleSqlParser.SYS_OP_IIX = 1871; +OracleSqlParser.SYS_OP_ITR = 1872; +OracleSqlParser.SYS_OP_KEY_VECTOR_CREATE = 1873; +OracleSqlParser.SYS_OP_KEY_VECTOR_FILTER_LIST = 1874; +OracleSqlParser.SYS_OP_KEY_VECTOR_FILTER = 1875; +OracleSqlParser.SYS_OP_KEY_VECTOR_SUCCEEDED = 1876; +OracleSqlParser.SYS_OP_KEY_VECTOR_USE = 1877; +OracleSqlParser.SYS_OP_LBID = 1878; +OracleSqlParser.SYS_OP_LOBLOC2BLOB = 1879; +OracleSqlParser.SYS_OP_LOBLOC2CLOB = 1880; +OracleSqlParser.SYS_OP_LOBLOC2ID = 1881; +OracleSqlParser.SYS_OP_LOBLOC2NCLOB = 1882; +OracleSqlParser.SYS_OP_LOBLOC2TYP = 1883; +OracleSqlParser.SYS_OP_LSVI = 1884; +OracleSqlParser.SYS_OP_LVL = 1885; +OracleSqlParser.SYS_OP_MAKEOID = 1886; +OracleSqlParser.SYS_OP_MAP_NONNULL = 1887; +OracleSqlParser.SYS_OP_MSR = 1888; +OracleSqlParser.SYS_OP_NICOMBINE = 1889; +OracleSqlParser.SYS_OP_NIEXTRACT = 1890; +OracleSqlParser.SYS_OP_NII = 1891; +OracleSqlParser.SYS_OP_NIX = 1892; +OracleSqlParser.SYS_OP_NOEXPAND = 1893; +OracleSqlParser.SYS_OP_NTCIMG = 1894; +OracleSqlParser.SYS_OP_NUMTORAW = 1895; +OracleSqlParser.SYS_OP_OIDVALUE = 1896; +OracleSqlParser.SYS_OP_OPNSIZE = 1897; +OracleSqlParser.SYS_OP_PAR_1 = 1898; +OracleSqlParser.SYS_OP_PARGID_1 = 1899; +OracleSqlParser.SYS_OP_PARGID = 1900; +OracleSqlParser.SYS_OP_PAR = 1901; +OracleSqlParser.SYS_OP_PART_ID = 1902; +OracleSqlParser.SYS_OP_PIVOT = 1903; +OracleSqlParser.SYS_OP_R2O = 1904; +OracleSqlParser.SYS_OP_RAWTONUM = 1905; +OracleSqlParser.SYS_OP_RDTM = 1906; +OracleSqlParser.SYS_OP_REF = 1907; +OracleSqlParser.SYS_OP_RMTD = 1908; +OracleSqlParser.SYS_OP_ROWIDTOOBJ = 1909; +OracleSqlParser.SYS_OP_RPB = 1910; +OracleSqlParser.SYS_OPTLOBPRBSC = 1911; +OracleSqlParser.SYS_OP_TOSETID = 1912; +OracleSqlParser.SYS_OP_TPR = 1913; +OracleSqlParser.SYS_OP_TRTB = 1914; +OracleSqlParser.SYS_OPTXICMP = 1915; +OracleSqlParser.SYS_OPTXQCASTASNQ = 1916; +OracleSqlParser.SYS_OP_UNDESCEND = 1917; +OracleSqlParser.SYS_OP_VECAND = 1918; +OracleSqlParser.SYS_OP_VECBIT = 1919; +OracleSqlParser.SYS_OP_VECOR = 1920; +OracleSqlParser.SYS_OP_VECXOR = 1921; +OracleSqlParser.SYS_OP_VERSION = 1922; +OracleSqlParser.SYS_OP_VREF = 1923; +OracleSqlParser.SYS_OP_VVD = 1924; +OracleSqlParser.SYS_OP_XMLCONS_FOR_CSX = 1925; +OracleSqlParser.SYS_OP_XPTHATG = 1926; +OracleSqlParser.SYS_OP_XPTHIDX = 1927; +OracleSqlParser.SYS_OP_XPTHOP = 1928; +OracleSqlParser.SYS_OP_XTXT2SQLT = 1929; +OracleSqlParser.SYS_OP_ZONE_ID = 1930; +OracleSqlParser.SYS_ORDERKEY_DEPTH = 1931; +OracleSqlParser.SYS_ORDERKEY_MAXCHILD = 1932; +OracleSqlParser.SYS_ORDERKEY_PARENT = 1933; +OracleSqlParser.SYS_PARALLEL_TXN = 1934; +OracleSqlParser.SYS_PATHID_IS_ATTR = 1935; +OracleSqlParser.SYS_PATHID_IS_NMSPC = 1936; +OracleSqlParser.SYS_PATHID_LASTNAME = 1937; +OracleSqlParser.SYS_PATHID_LASTNMSPC = 1938; +OracleSqlParser.SYS_PATH_REVERSE = 1939; +OracleSqlParser.SYS_PXQEXTRACT = 1940; +OracleSqlParser.SYS_RAW_TO_XSID = 1941; +OracleSqlParser.SYS_RID_ORDER = 1942; +OracleSqlParser.SYS_ROW_DELTA = 1943; +OracleSqlParser.SYS_SC_2_XMLT = 1944; +OracleSqlParser.SYS_SYNRCIREDO = 1945; +OracleSqlParser.SYSTEM_DEFINED = 1946; +OracleSqlParser.SYSTEM = 1947; +OracleSqlParser.SYSTIMESTAMP = 1948; +OracleSqlParser.SYS_TYPEID = 1949; +OracleSqlParser.SYS_UMAKEXML = 1950; +OracleSqlParser.SYS_XMLANALYZE = 1951; +OracleSqlParser.SYS_XMLCONTAINS = 1952; +OracleSqlParser.SYS_XMLCONV = 1953; +OracleSqlParser.SYS_XMLEXNSURI = 1954; +OracleSqlParser.SYS_XMLGEN = 1955; +OracleSqlParser.SYS_XMLI_LOC_ISNODE = 1956; +OracleSqlParser.SYS_XMLI_LOC_ISTEXT = 1957; +OracleSqlParser.SYS_XMLINSTR = 1958; +OracleSqlParser.SYS_XMLLOCATOR_GETSVAL = 1959; +OracleSqlParser.SYS_XMLNODEID_GETCID = 1960; +OracleSqlParser.SYS_XMLNODEID_GETLOCATOR = 1961; +OracleSqlParser.SYS_XMLNODEID_GETOKEY = 1962; +OracleSqlParser.SYS_XMLNODEID_GETPATHID = 1963; +OracleSqlParser.SYS_XMLNODEID_GETPTRID = 1964; +OracleSqlParser.SYS_XMLNODEID_GETRID = 1965; +OracleSqlParser.SYS_XMLNODEID_GETSVAL = 1966; +OracleSqlParser.SYS_XMLNODEID_GETTID = 1967; +OracleSqlParser.SYS_XMLNODEID = 1968; +OracleSqlParser.SYS_XMLT_2_SC = 1969; +OracleSqlParser.SYS_XMLTRANSLATE = 1970; +OracleSqlParser.SYS_XMLTYPE2SQL = 1971; +OracleSqlParser.SYS_XQ_ASQLCNV = 1972; +OracleSqlParser.SYS_XQ_ATOMCNVCHK = 1973; +OracleSqlParser.SYS_XQBASEURI = 1974; +OracleSqlParser.SYS_XQCASTABLEERRH = 1975; +OracleSqlParser.SYS_XQCODEP2STR = 1976; +OracleSqlParser.SYS_XQCODEPEQ = 1977; +OracleSqlParser.SYS_XQCON2SEQ = 1978; +OracleSqlParser.SYS_XQCONCAT = 1979; +OracleSqlParser.SYS_XQDELETE = 1980; +OracleSqlParser.SYS_XQDFLTCOLATION = 1981; +OracleSqlParser.SYS_XQDOC = 1982; +OracleSqlParser.SYS_XQDOCURI = 1983; +OracleSqlParser.SYS_XQDURDIV = 1984; +OracleSqlParser.SYS_XQED4URI = 1985; +OracleSqlParser.SYS_XQENDSWITH = 1986; +OracleSqlParser.SYS_XQERRH = 1987; +OracleSqlParser.SYS_XQERR = 1988; +OracleSqlParser.SYS_XQESHTMLURI = 1989; +OracleSqlParser.SYS_XQEXLOBVAL = 1990; +OracleSqlParser.SYS_XQEXSTWRP = 1991; +OracleSqlParser.SYS_XQEXTRACT = 1992; +OracleSqlParser.SYS_XQEXTRREF = 1993; +OracleSqlParser.SYS_XQEXVAL = 1994; +OracleSqlParser.SYS_XQFB2STR = 1995; +OracleSqlParser.SYS_XQFNBOOL = 1996; +OracleSqlParser.SYS_XQFNCMP = 1997; +OracleSqlParser.SYS_XQFNDATIM = 1998; +OracleSqlParser.SYS_XQFNLNAME = 1999; +OracleSqlParser.SYS_XQFNNM = 2000; +OracleSqlParser.SYS_XQFNNSURI = 2001; +OracleSqlParser.SYS_XQFNPREDTRUTH = 2002; +OracleSqlParser.SYS_XQFNQNM = 2003; +OracleSqlParser.SYS_XQFNROOT = 2004; +OracleSqlParser.SYS_XQFORMATNUM = 2005; +OracleSqlParser.SYS_XQFTCONTAIN = 2006; +OracleSqlParser.SYS_XQFUNCR = 2007; +OracleSqlParser.SYS_XQGETCONTENT = 2008; +OracleSqlParser.SYS_XQINDXOF = 2009; +OracleSqlParser.SYS_XQINSERT = 2010; +OracleSqlParser.SYS_XQINSPFX = 2011; +OracleSqlParser.SYS_XQIRI2URI = 2012; +OracleSqlParser.SYS_XQLANG = 2013; +OracleSqlParser.SYS_XQLLNMFRMQNM = 2014; +OracleSqlParser.SYS_XQMKNODEREF = 2015; +OracleSqlParser.SYS_XQNILLED = 2016; +OracleSqlParser.SYS_XQNODENAME = 2017; +OracleSqlParser.SYS_XQNORMSPACE = 2018; +OracleSqlParser.SYS_XQNORMUCODE = 2019; +OracleSqlParser.SYS_XQ_NRNG = 2020; +OracleSqlParser.SYS_XQNSP4PFX = 2021; +OracleSqlParser.SYS_XQNSPFRMQNM = 2022; +OracleSqlParser.SYS_XQPFXFRMQNM = 2023; +OracleSqlParser.SYS_XQ_PKSQL2XML = 2024; +OracleSqlParser.SYS_XQPOLYABS = 2025; +OracleSqlParser.SYS_XQPOLYADD = 2026; +OracleSqlParser.SYS_XQPOLYCEL = 2027; +OracleSqlParser.SYS_XQPOLYCSTBL = 2028; +OracleSqlParser.SYS_XQPOLYCST = 2029; +OracleSqlParser.SYS_XQPOLYDIV = 2030; +OracleSqlParser.SYS_XQPOLYFLR = 2031; +OracleSqlParser.SYS_XQPOLYMOD = 2032; +OracleSqlParser.SYS_XQPOLYMUL = 2033; +OracleSqlParser.SYS_XQPOLYRND = 2034; +OracleSqlParser.SYS_XQPOLYSQRT = 2035; +OracleSqlParser.SYS_XQPOLYSUB = 2036; +OracleSqlParser.SYS_XQPOLYUMUS = 2037; +OracleSqlParser.SYS_XQPOLYUPLS = 2038; +OracleSqlParser.SYS_XQPOLYVEQ = 2039; +OracleSqlParser.SYS_XQPOLYVGE = 2040; +OracleSqlParser.SYS_XQPOLYVGT = 2041; +OracleSqlParser.SYS_XQPOLYVLE = 2042; +OracleSqlParser.SYS_XQPOLYVLT = 2043; +OracleSqlParser.SYS_XQPOLYVNE = 2044; +OracleSqlParser.SYS_XQREF2VAL = 2045; +OracleSqlParser.SYS_XQRENAME = 2046; +OracleSqlParser.SYS_XQREPLACE = 2047; +OracleSqlParser.SYS_XQRESVURI = 2048; +OracleSqlParser.SYS_XQRNDHALF2EVN = 2049; +OracleSqlParser.SYS_XQRSLVQNM = 2050; +OracleSqlParser.SYS_XQRYENVPGET = 2051; +OracleSqlParser.SYS_XQRYVARGET = 2052; +OracleSqlParser.SYS_XQRYWRP = 2053; +OracleSqlParser.SYS_XQSEQ2CON4XC = 2054; +OracleSqlParser.SYS_XQSEQ2CON = 2055; +OracleSqlParser.SYS_XQSEQDEEPEQ = 2056; +OracleSqlParser.SYS_XQSEQINSB = 2057; +OracleSqlParser.SYS_XQSEQRM = 2058; +OracleSqlParser.SYS_XQSEQRVS = 2059; +OracleSqlParser.SYS_XQSEQSUB = 2060; +OracleSqlParser.SYS_XQSEQTYPMATCH = 2061; +OracleSqlParser.SYS_XQSTARTSWITH = 2062; +OracleSqlParser.SYS_XQSTATBURI = 2063; +OracleSqlParser.SYS_XQSTR2CODEP = 2064; +OracleSqlParser.SYS_XQSTRJOIN = 2065; +OracleSqlParser.SYS_XQSUBSTRAFT = 2066; +OracleSqlParser.SYS_XQSUBSTRBEF = 2067; +OracleSqlParser.SYS_XQTOKENIZE = 2068; +OracleSqlParser.SYS_XQTREATAS = 2069; +OracleSqlParser.SYS_XQ_UPKXML2SQL = 2070; +OracleSqlParser.SYS_XQXFORM = 2071; +OracleSqlParser.SYS_XSID_TO_RAW = 2072; +OracleSqlParser.SYS_ZMAP_FILTER = 2073; +OracleSqlParser.SYS_ZMAP_REFRESH = 2074; +OracleSqlParser.T_LETTER = 2075; +OracleSqlParser.TABLE_LOOKUP_BY_NL = 2076; +OracleSqlParser.TABLESPACE_NO = 2077; +OracleSqlParser.TABLESPACE = 2078; +OracleSqlParser.TABLES = 2079; +OracleSqlParser.TABLE_STATS = 2080; +OracleSqlParser.TABLE = 2081; +OracleSqlParser.TABNO = 2082; +OracleSqlParser.TAG = 2083; +OracleSqlParser.TANH = 2084; +OracleSqlParser.TAN = 2085; +OracleSqlParser.TBLORIDXPARTNUM = 2086; +OracleSqlParser.TEMPFILE = 2087; +OracleSqlParser.TEMPLATE = 2088; +OracleSqlParser.TEMPLATE_TABLE = 2089; +OracleSqlParser.TEMPORARY = 2090; +OracleSqlParser.TEMP_TABLE = 2091; +OracleSqlParser.TERMINATED = 2092; +OracleSqlParser.TEST = 2093; +OracleSqlParser.TEXT = 2094; +OracleSqlParser.TEXTFILE = 2095; +OracleSqlParser.THAN = 2096; +OracleSqlParser.THEN = 2097; +OracleSqlParser.THE = 2098; +OracleSqlParser.THESE = 2099; +OracleSqlParser.THREAD = 2100; +OracleSqlParser.THROUGH = 2101; +OracleSqlParser.TIER = 2102; +OracleSqlParser.TIES = 2103; +OracleSqlParser.TIMEOUT = 2104; +OracleSqlParser.TIMESTAMP_LTZ_UNCONSTRAINED = 2105; +OracleSqlParser.TIMESTAMP = 2106; +OracleSqlParser.TIMESTAMP_TZ_UNCONSTRAINED = 2107; +OracleSqlParser.TIMESTAMP_UNCONSTRAINED = 2108; +OracleSqlParser.TIMES = 2109; +OracleSqlParser.TIME = 2110; +OracleSqlParser.TIMEZONE = 2111; +OracleSqlParser.TIMEZONE_ABBR = 2112; +OracleSqlParser.TIMEZONE_HOUR = 2113; +OracleSqlParser.TIMEZONE_MINUTE = 2114; +OracleSqlParser.TIMEZONE_OFFSET = 2115; +OracleSqlParser.TIMEZONE_REGION = 2116; +OracleSqlParser.TIME_ZONE = 2117; +OracleSqlParser.TIMING = 2118; +OracleSqlParser.TINYINT = 2119; +OracleSqlParser.TIV_GB = 2120; +OracleSqlParser.TIV_SSF = 2121; +OracleSqlParser.TO_ACLID = 2122; +OracleSqlParser.TO_BINARY_DOUBLE = 2123; +OracleSqlParser.TO_BINARY_FLOAT = 2124; +OracleSqlParser.TO_BLOB = 2125; +OracleSqlParser.TO_CLOB = 2126; +OracleSqlParser.TO_DSINTERVAL = 2127; +OracleSqlParser.TO_LOB = 2128; +OracleSqlParser.TO_MULTI_BYTE = 2129; +OracleSqlParser.TO_NCHAR = 2130; +OracleSqlParser.TO_NCLOB = 2131; +OracleSqlParser.TO_NUMBER = 2132; +OracleSqlParser.TOPLEVEL = 2133; +OracleSqlParser.TO_SINGLE_BYTE = 2134; +OracleSqlParser.TO_TIMESTAMP = 2135; +OracleSqlParser.TO_TIMESTAMP_TZ = 2136; +OracleSqlParser.TO_TIME = 2137; +OracleSqlParser.TO_TIME_TZ = 2138; +OracleSqlParser.TO = 2139; +OracleSqlParser.TO_YMINTERVAL = 2140; +OracleSqlParser.TRACE = 2141; +OracleSqlParser.TRACING = 2142; +OracleSqlParser.TRACKING = 2143; +OracleSqlParser.TRAILING = 2144; +OracleSqlParser.TRANSACTION = 2145; +OracleSqlParser.TRANSFORM = 2146; +OracleSqlParser.TRANSFORMS = 2147; +OracleSqlParser.TRANSFORM_DISTINCT_AGG = 2148; +OracleSqlParser.TRANSITIONAL = 2149; +OracleSqlParser.TRANSITION = 2150; +OracleSqlParser.TRANSLATE = 2151; +OracleSqlParser.TRANSLATION = 2152; +OracleSqlParser.TREAT = 2153; +OracleSqlParser.TRIGGERS = 2154; +OracleSqlParser.TRIGGER = 2155; +OracleSqlParser.TRUE = 2156; +OracleSqlParser.TRUNCATE = 2157; +OracleSqlParser.TRUNC = 2158; +OracleSqlParser.TRUSTED = 2159; +OracleSqlParser.TRUST = 2160; +OracleSqlParser.TUNING = 2161; +OracleSqlParser.TX = 2162; +OracleSqlParser.TYPES = 2163; +OracleSqlParser.TYPE = 2164; +OracleSqlParser.TZ_OFFSET = 2165; +OracleSqlParser.UB2 = 2166; +OracleSqlParser.UBA = 2167; +OracleSqlParser.UCS2 = 2168; +OracleSqlParser.UDF = 2169; +OracleSqlParser.UID = 2170; +OracleSqlParser.UNARCHIVED = 2171; +OracleSqlParser.UNBOUNDED = 2172; +OracleSqlParser.UNBOUND = 2173; +OracleSqlParser.UNCONDITIONAL = 2174; +OracleSqlParser.UNDER = 2175; +OracleSqlParser.UNDO = 2176; +OracleSqlParser.UNDROP = 2177; +OracleSqlParser.UNIFORM = 2178; +OracleSqlParser.UNION = 2179; +OracleSqlParser.UNIONTYPE = 2180; +OracleSqlParser.UNIQUE = 2181; +OracleSqlParser.UNISTR = 2182; +OracleSqlParser.UNLIMITED = 2183; +OracleSqlParser.UNLOAD = 2184; +OracleSqlParser.UNLOCK = 2185; +OracleSqlParser.UNMATCHED = 2186; +OracleSqlParser.UNNEST_INNERJ_DISTINCT_VIEW = 2187; +OracleSqlParser.UNNEST_NOSEMIJ_NODISTINCTVIEW = 2188; +OracleSqlParser.UNNEST_SEMIJ_VIEW = 2189; +OracleSqlParser.UNNEST = 2190; +OracleSqlParser.UNPACKED = 2191; +OracleSqlParser.UNPIVOT = 2192; +OracleSqlParser.UNPLUG = 2193; +OracleSqlParser.UNPROTECTED = 2194; +OracleSqlParser.UNQUIESCE = 2195; +OracleSqlParser.UNRECOVERABLE = 2196; +OracleSqlParser.UNRESTRICTED = 2197; +OracleSqlParser.UNSIGNED = 2198; +OracleSqlParser.UNSUBSCRIBE = 2199; +OracleSqlParser.UNTIL = 2200; +OracleSqlParser.UNUSABLE = 2201; +OracleSqlParser.UNUSED = 2202; +OracleSqlParser.UPDATABLE = 2203; +OracleSqlParser.UPDATED = 2204; +OracleSqlParser.UPDATE = 2205; +OracleSqlParser.UPDATEXML = 2206; +OracleSqlParser.UPD_INDEXES = 2207; +OracleSqlParser.UPD_JOININDEX = 2208; +OracleSqlParser.UPGRADE = 2209; +OracleSqlParser.UPPER = 2210; +OracleSqlParser.UPSERT = 2211; +OracleSqlParser.UROWID = 2212; +OracleSqlParser.USABLE = 2213; +OracleSqlParser.USAGE = 2214; +OracleSqlParser.USE_ANTI = 2215; +OracleSqlParser.USE_CONCAT = 2216; +OracleSqlParser.USE_CUBE = 2217; +OracleSqlParser.USE_HASH_AGGREGATION = 2218; +OracleSqlParser.USE_HASH_GBY_FOR_PUSHDOWN = 2219; +OracleSqlParser.USE_HASH = 2220; +OracleSqlParser.USE_HIDDEN_PARTITIONS = 2221; +OracleSqlParser.USE_INVISIBLE_INDEXES = 2222; +OracleSqlParser.USE_MERGE_CARTESIAN = 2223; +OracleSqlParser.USE_MERGE = 2224; +OracleSqlParser.USE_NL = 2225; +OracleSqlParser.USE_NL_WITH_INDEX = 2226; +OracleSqlParser.USE_PRIVATE_OUTLINES = 2227; +OracleSqlParser.USER_DATA = 2228; +OracleSqlParser.USER_DEFINED = 2229; +OracleSqlParser.USERENV = 2230; +OracleSqlParser.USERGROUP = 2231; +OracleSqlParser.USER_RECYCLEBIN = 2232; +OracleSqlParser.USERS = 2233; +OracleSqlParser.USER_TABLESPACES = 2234; +OracleSqlParser.USER = 2235; +OracleSqlParser.USE_SEMI = 2236; +OracleSqlParser.USE_STORED_OUTLINES = 2237; +OracleSqlParser.USE_TTT_FOR_GSETS = 2238; +OracleSqlParser.USE = 2239; +OracleSqlParser.USE_VECTOR_AGGREGATION = 2240; +OracleSqlParser.USE_WEAK_NAME_RESL = 2241; +OracleSqlParser.USING_NO_EXPAND = 2242; +OracleSqlParser.USING_NLS_COMP = 2243; +OracleSqlParser.USING = 2244; +OracleSqlParser.UTF16BE = 2245; +OracleSqlParser.UTF16LE = 2246; +OracleSqlParser.UTF32 = 2247; +OracleSqlParser.UTF8 = 2248; +OracleSqlParser.V1 = 2249; +OracleSqlParser.V2 = 2250; +OracleSqlParser.VALIDATE = 2251; +OracleSqlParser.VALIDATE_CONVERSION = 2252; +OracleSqlParser.VALIDATION = 2253; +OracleSqlParser.VALID_TIME_END = 2254; +OracleSqlParser.VALUES = 2255; +OracleSqlParser.VALUE = 2256; +OracleSqlParser.VARCHAR2 = 2257; +OracleSqlParser.VARCHAR = 2258; +OracleSqlParser.VARCHARC = 2259; +OracleSqlParser.VARIABLE = 2260; +OracleSqlParser.VARRAW = 2261; +OracleSqlParser.VARRAWC = 2262; +OracleSqlParser.VAR_POP = 2263; +OracleSqlParser.VARRAYS = 2264; +OracleSqlParser.VARRAY = 2265; +OracleSqlParser.VAR_SAMP = 2266; +OracleSqlParser.VARYING = 2267; +OracleSqlParser.VECTOR_READ_TRACE = 2268; +OracleSqlParser.VECTOR_READ = 2269; +OracleSqlParser.VECTOR_TRANSFORM_DIMS = 2270; +OracleSqlParser.VECTOR_TRANSFORM_FACT = 2271; +OracleSqlParser.VECTOR_TRANSFORM = 2272; +OracleSqlParser.VERIFIER = 2273; +OracleSqlParser.VERIFY = 2274; +OracleSqlParser.VERSIONING = 2275; +OracleSqlParser.VERSIONS_ENDSCN = 2276; +OracleSqlParser.VERSIONS_ENDTIME = 2277; +OracleSqlParser.VERSIONS_OPERATION = 2278; +OracleSqlParser.VERSIONS_STARTSCN = 2279; +OracleSqlParser.VERSIONS_STARTTIME = 2280; +OracleSqlParser.VERSIONS = 2281; +OracleSqlParser.VERSIONS_XID = 2282; +OracleSqlParser.VERSION = 2283; +OracleSqlParser.VIEW = 2284; +OracleSqlParser.VIOLATION = 2285; +OracleSqlParser.VIRTUAL = 2286; +OracleSqlParser.VISIBILITY = 2287; +OracleSqlParser.VISIBLE = 2288; +OracleSqlParser.VOLUME = 2289; +OracleSqlParser.VSIZE = 2290; +OracleSqlParser.WAIT = 2291; +OracleSqlParser.WALLET = 2292; +OracleSqlParser.WARNING = 2293; +OracleSqlParser.WEEKS = 2294; +OracleSqlParser.WEEK = 2295; +OracleSqlParser.WELLFORMED = 2296; +OracleSqlParser.WHENEVER = 2297; +OracleSqlParser.WHEN = 2298; +OracleSqlParser.WHERE = 2299; +OracleSqlParser.WHILE = 2300; +OracleSqlParser.WHITESPACE = 2301; +OracleSqlParser.WIDTH_BUCKET = 2302; +OracleSqlParser.WITHIN = 2303; +OracleSqlParser.WITHOUT = 2304; +OracleSqlParser.WITH_PLSQL = 2305; +OracleSqlParser.WITH = 2306; +OracleSqlParser.WORK = 2307; +OracleSqlParser.WORKERID = 2308; +OracleSqlParser.WRAPPED = 2309; +OracleSqlParser.WRAPPER = 2310; +OracleSqlParser.WRITE = 2311; +OracleSqlParser.XDB_FASTPATH_INSERT = 2312; +OracleSqlParser.XDB = 2313; +OracleSqlParser.X_DYN_PRUNE = 2314; +OracleSqlParser.XID = 2315; +OracleSqlParser.XML2OBJECT = 2316; +OracleSqlParser.XMLAGG = 2317; +OracleSqlParser.XMLATTRIBUTES = 2318; +OracleSqlParser.XMLCAST = 2319; +OracleSqlParser.XMLCDATA = 2320; +OracleSqlParser.XMLCOLATTVAL = 2321; +OracleSqlParser.XMLCOMMENT = 2322; +OracleSqlParser.XMLCONCAT = 2323; +OracleSqlParser.XMLDIFF = 2324; +OracleSqlParser.XML_DML_RWT_STMT = 2325; +OracleSqlParser.XMLELEMENT = 2326; +OracleSqlParser.XMLEXISTS2 = 2327; +OracleSqlParser.XMLEXISTS = 2328; +OracleSqlParser.XMLFOREST = 2329; +OracleSqlParser.XMLINDEX = 2330; +OracleSqlParser.XMLINDEX_REWRITE_IN_SELECT = 2331; +OracleSqlParser.XMLINDEX_REWRITE = 2332; +OracleSqlParser.XMLINDEX_SEL_IDX_TBL = 2333; +OracleSqlParser.XMLISNODE = 2334; +OracleSqlParser.XMLISVALID = 2335; +OracleSqlParser.XMLNAMESPACES = 2336; +OracleSqlParser.XMLPARSE = 2337; +OracleSqlParser.XMLPATCH = 2338; +OracleSqlParser.XMLPI = 2339; +OracleSqlParser.XMLQUERYVAL = 2340; +OracleSqlParser.XMLQUERY = 2341; +OracleSqlParser.XMLROOT = 2342; +OracleSqlParser.XMLSCHEMA = 2343; +OracleSqlParser.XMLSERIALIZE = 2344; +OracleSqlParser.XMLTABLE = 2345; +OracleSqlParser.XMLTAG = 2346; +OracleSqlParser.XMLTRANSFORMBLOB = 2347; +OracleSqlParser.XMLTRANSFORM = 2348; +OracleSqlParser.XMLTYPE = 2349; +OracleSqlParser.XML = 2350; +OracleSqlParser.XPATHTABLE = 2351; +OracleSqlParser.XS_SYS_CONTEXT = 2352; +OracleSqlParser.XS = 2353; +OracleSqlParser.XTRANSPORT = 2354; +OracleSqlParser.YEARS = 2355; +OracleSqlParser.YEAR = 2356; +OracleSqlParser.YEAR_TO_MONTH = 2357; +OracleSqlParser.YES = 2358; +OracleSqlParser.YMINTERVAL_UNCONSTRAINED = 2359; +OracleSqlParser.ZONEMAP = 2360; +OracleSqlParser.ZONE = 2361; +OracleSqlParser.ZONED = 2362; +OracleSqlParser.PREDICTION = 2363; +OracleSqlParser.PREDICTION_BOUNDS = 2364; +OracleSqlParser.PREDICTION_COST = 2365; +OracleSqlParser.PREDICTION_DETAILS = 2366; +OracleSqlParser.PREDICTION_PROBABILITY = 2367; +OracleSqlParser.PREDICTION_SET = 2368; +OracleSqlParser.BLOCKCHAIN = 2369; +OracleSqlParser.COLLATE = 2370; +OracleSqlParser.COLLATION = 2371; +OracleSqlParser.DEFINITION = 2372; +OracleSqlParser.DUPLICATED = 2373; +OracleSqlParser.EXTENDED = 2374; +OracleSqlParser.HASHING = 2375; +OracleSqlParser.IDLE = 2376; +OracleSqlParser.IMMUTABLE = 2377; +OracleSqlParser.ORACLE_DATAPUMP = 2378; +OracleSqlParser.ORACLE_HDFS = 2379; +OracleSqlParser.ORACLE_HIVE = 2380; +OracleSqlParser.ORACLE_LOADER = 2381; +OracleSqlParser.SHA2_512_Q = 2382; +OracleSqlParser.SHARDED = 2383; +OracleSqlParser.V1_Q = 2384; +OracleSqlParser.ISOLATE = 2385; +OracleSqlParser.ROOT = 2386; +OracleSqlParser.UNITE = 2387; +OracleSqlParser.ALGORITHM = 2388; +OracleSqlParser.CUME_DIST = 2389; +OracleSqlParser.DENSE_RANK = 2390; +OracleSqlParser.LISTAGG = 2391; +OracleSqlParser.PERCENT_RANK = 2392; +OracleSqlParser.PERCENTILE_CONT = 2393; +OracleSqlParser.PERCENTILE_DISC = 2394; +OracleSqlParser.RANK = 2395; +OracleSqlParser.AVG = 2396; +OracleSqlParser.CORR = 2397; +OracleSqlParser.COVAR_ = 2398; +OracleSqlParser.DECODE = 2399; +OracleSqlParser.LAG = 2400; +OracleSqlParser.LAG_DIFF = 2401; +OracleSqlParser.LAG_DIFF_PERCENT = 2402; +OracleSqlParser.LEAD = 2403; +OracleSqlParser.MAX = 2404; +OracleSqlParser.MEDIAN = 2405; +OracleSqlParser.MEMOPTIMIZE = 2406; +OracleSqlParser.MIN = 2407; +OracleSqlParser.NTILE = 2408; +OracleSqlParser.NVL = 2409; +OracleSqlParser.RATIO_TO_REPORT = 2410; +OracleSqlParser.REGR_ = 2411; +OracleSqlParser.ROUND = 2412; +OracleSqlParser.ROW_NUMBER = 2413; +OracleSqlParser.SUBSTR = 2414; +OracleSqlParser.TO_CHAR = 2415; +OracleSqlParser.TRIM = 2416; +OracleSqlParser.SUM = 2417; +OracleSqlParser.STDDEV = 2418; +OracleSqlParser.VAR_ = 2419; +OracleSqlParser.VARIANCE = 2420; +OracleSqlParser.LEAST = 2421; +OracleSqlParser.GREATEST = 2422; +OracleSqlParser.TO_DATE = 2423; +OracleSqlParser.CHARSETID = 2424; +OracleSqlParser.CHARSETFORM = 2425; +OracleSqlParser.DURATION = 2426; +OracleSqlParser.EXTEND = 2427; +OracleSqlParser.MAXLEN = 2428; +OracleSqlParser.PERSISTABLE = 2429; +OracleSqlParser.POLYMORPHIC = 2430; +OracleSqlParser.STRUCT = 2431; +OracleSqlParser.TDO = 2432; +OracleSqlParser.WM_CONCAT = 2433; +OracleSqlParser.NATIONAL_CHAR_STRING_LIT = 2434; +OracleSqlParser.BIT_STRING_LIT = 2435; +OracleSqlParser.HEX_STRING_LIT = 2436; +OracleSqlParser.DOUBLE_PERIOD = 2437; +OracleSqlParser.PERIOD = 2438; +OracleSqlParser.UNSIGNED_INTEGER = 2439; +OracleSqlParser.APPROXIMATE_NUM_LIT = 2440; +OracleSqlParser.CHAR_STRING = 2441; +OracleSqlParser.DELIMITED_ID = 2442; +OracleSqlParser.PERCENT = 2443; +OracleSqlParser.AMPERSAND = 2444; +OracleSqlParser.LEFT_PAREN = 2445; +OracleSqlParser.RIGHT_PAREN = 2446; +OracleSqlParser.DOUBLE_ASTERISK = 2447; +OracleSqlParser.ASTERISK = 2448; +OracleSqlParser.PLUS_SIGN = 2449; +OracleSqlParser.MINUS_SIGN = 2450; +OracleSqlParser.COMMA = 2451; +OracleSqlParser.SOLIDUS = 2452; +OracleSqlParser.AT_SIGN = 2453; +OracleSqlParser.ASSIGN_OP = 2454; +OracleSqlParser.HASH_OP = 2455; +OracleSqlParser.LEFT_CURLY_PAREN = 2456; +OracleSqlParser.RIGHT_CURLY_PAREN = 2457; +OracleSqlParser.SQ = 2458; +OracleSqlParser.BINDVAR = 2459; +OracleSqlParser.NOT_EQUAL_OP = 2460; +OracleSqlParser.CARRET_OPERATOR_PART = 2461; +OracleSqlParser.TILDE_OPERATOR_PART = 2462; +OracleSqlParser.EXCLAMATION_OPERATOR_PART = 2463; +OracleSqlParser.GREATER_THAN_OP = 2464; +OracleSqlParser.LESS_THAN_OP = 2465; +OracleSqlParser.COLON = 2466; +OracleSqlParser.SEMICOLON = 2467; +OracleSqlParser.BAR = 2468; +OracleSqlParser.EQUALS_OP = 2469; +OracleSqlParser.LEFT_BRACKET = 2470; +OracleSqlParser.RIGHT_BRACKET = 2471; +OracleSqlParser.INTRODUCER = 2472; +OracleSqlParser.SINGLE_LINE_COMMENT = 2473; +OracleSqlParser.MULTI_LINE_COMMENT = 2474; +OracleSqlParser.REMARK_COMMENT = 2475; +OracleSqlParser.PROMPT_MESSAGE = 2476; +OracleSqlParser.START_CMD = 2477; +OracleSqlParser.REGULAR_ID = 2478; +OracleSqlParser.INQUIRY_DIRECTIVE = 2479; +OracleSqlParser.SPACES = 2480; + +OracleSqlParser.RULE_sql_script = 0; +OracleSqlParser.RULE_unit_statement = 1; +OracleSqlParser.RULE_alter_diskgroup = 2; +OracleSqlParser.RULE_add_disk_clause = 3; +OracleSqlParser.RULE_drop_disk_clause = 4; +OracleSqlParser.RULE_resize_disk_clause = 5; +OracleSqlParser.RULE_replace_disk_clause = 6; +OracleSqlParser.RULE_wait_nowait = 7; +OracleSqlParser.RULE_rename_disk_clause = 8; +OracleSqlParser.RULE_disk_online_clause = 9; +OracleSqlParser.RULE_disk_offline_clause = 10; +OracleSqlParser.RULE_timeout_clause = 11; +OracleSqlParser.RULE_rebalance_diskgroup_clause = 12; +OracleSqlParser.RULE_phase = 13; +OracleSqlParser.RULE_check_diskgroup_clause = 14; +OracleSqlParser.RULE_diskgroup_template_clauses = 15; +OracleSqlParser.RULE_qualified_template_clause = 16; +OracleSqlParser.RULE_redundancy_clause = 17; +OracleSqlParser.RULE_striping_clause = 18; +OracleSqlParser.RULE_force_noforce = 19; +OracleSqlParser.RULE_diskgroup_directory_clauses = 20; +OracleSqlParser.RULE_dir_name = 21; +OracleSqlParser.RULE_diskgroup_alias_clauses = 22; +OracleSqlParser.RULE_diskgroup_volume_clauses = 23; +OracleSqlParser.RULE_add_volume_clause = 24; +OracleSqlParser.RULE_modify_volume_clause = 25; +OracleSqlParser.RULE_diskgroup_attributes = 26; +OracleSqlParser.RULE_drop_diskgroup_file_clause = 27; +OracleSqlParser.RULE_convert_redundancy_clause = 28; +OracleSqlParser.RULE_usergroup_clauses = 29; +OracleSqlParser.RULE_user_clauses = 30; +OracleSqlParser.RULE_file_permissions_clause = 31; +OracleSqlParser.RULE_file_owner_clause = 32; +OracleSqlParser.RULE_scrub_clause = 33; +OracleSqlParser.RULE_quotagroup_clauses = 34; +OracleSqlParser.RULE_property_name = 35; +OracleSqlParser.RULE_property_value = 36; +OracleSqlParser.RULE_filegroup_clauses = 37; +OracleSqlParser.RULE_add_filegroup_clause = 38; +OracleSqlParser.RULE_modify_filegroup_clause = 39; +OracleSqlParser.RULE_move_to_filegroup_clause = 40; +OracleSqlParser.RULE_drop_filegroup_clause = 41; +OracleSqlParser.RULE_quorum_regular = 42; +OracleSqlParser.RULE_undrop_disk_clause = 43; +OracleSqlParser.RULE_diskgroup_availability = 44; +OracleSqlParser.RULE_enable_disable_volume = 45; +OracleSqlParser.RULE_drop_function = 46; +OracleSqlParser.RULE_alter_flashback_archive = 47; +OracleSqlParser.RULE_alter_hierarchy = 48; +OracleSqlParser.RULE_alter_function = 49; +OracleSqlParser.RULE_alter_java = 50; +OracleSqlParser.RULE_match_string = 51; +OracleSqlParser.RULE_create_function_body = 52; +OracleSqlParser.RULE_sql_macro_body = 53; +OracleSqlParser.RULE_parallel_enable_clause = 54; +OracleSqlParser.RULE_partition_by_clause = 55; +OracleSqlParser.RULE_result_cache_clause = 56; +OracleSqlParser.RULE_accessible_by_clause = 57; +OracleSqlParser.RULE_default_collation_clause = 58; +OracleSqlParser.RULE_aggregate_clause = 59; +OracleSqlParser.RULE_pipelined_using_clause = 60; +OracleSqlParser.RULE_accessor = 61; +OracleSqlParser.RULE_relies_on_part = 62; +OracleSqlParser.RULE_streaming_clause = 63; +OracleSqlParser.RULE_alter_outline = 64; +OracleSqlParser.RULE_outline_options = 65; +OracleSqlParser.RULE_alter_lockdown_profile = 66; +OracleSqlParser.RULE_lockdown_feature = 67; +OracleSqlParser.RULE_lockdown_options = 68; +OracleSqlParser.RULE_lockdown_statements = 69; +OracleSqlParser.RULE_statement_clauses = 70; +OracleSqlParser.RULE_clause_options = 71; +OracleSqlParser.RULE_option_values = 72; +OracleSqlParser.RULE_string_list = 73; +OracleSqlParser.RULE_disable_enable = 74; +OracleSqlParser.RULE_drop_lockdown_profile = 75; +OracleSqlParser.RULE_drop_package = 76; +OracleSqlParser.RULE_alter_package = 77; +OracleSqlParser.RULE_create_package = 78; +OracleSqlParser.RULE_create_package_body = 79; +OracleSqlParser.RULE_package_obj_spec = 80; +OracleSqlParser.RULE_procedure_spec = 81; +OracleSqlParser.RULE_function_spec = 82; +OracleSqlParser.RULE_package_obj_body = 83; +OracleSqlParser.RULE_alter_pmem_filestore = 84; +OracleSqlParser.RULE_drop_pmem_filestore = 85; +OracleSqlParser.RULE_drop_procedure = 86; +OracleSqlParser.RULE_alter_procedure = 87; +OracleSqlParser.RULE_function_body = 88; +OracleSqlParser.RULE_procedure_body = 89; +OracleSqlParser.RULE_create_procedure_body = 90; +OracleSqlParser.RULE_alter_resource_cost = 91; +OracleSqlParser.RULE_drop_outline = 92; +OracleSqlParser.RULE_alter_rollback_segment = 93; +OracleSqlParser.RULE_drop_restore_point = 94; +OracleSqlParser.RULE_drop_rollback_segment = 95; +OracleSqlParser.RULE_drop_role = 96; +OracleSqlParser.RULE_create_pmem_filestore = 97; +OracleSqlParser.RULE_pmem_filestore_options = 98; +OracleSqlParser.RULE_file_path = 99; +OracleSqlParser.RULE_create_rollback_segment = 100; +OracleSqlParser.RULE_drop_trigger = 101; +OracleSqlParser.RULE_alter_trigger = 102; +OracleSqlParser.RULE_create_trigger = 103; +OracleSqlParser.RULE_trigger_follows_clause = 104; +OracleSqlParser.RULE_trigger_when_clause = 105; +OracleSqlParser.RULE_simple_dml_trigger = 106; +OracleSqlParser.RULE_for_each_row = 107; +OracleSqlParser.RULE_compound_dml_trigger = 108; +OracleSqlParser.RULE_non_dml_trigger = 109; +OracleSqlParser.RULE_trigger_body = 110; +OracleSqlParser.RULE_compound_trigger_block = 111; +OracleSqlParser.RULE_timing_point_section = 112; +OracleSqlParser.RULE_non_dml_event = 113; +OracleSqlParser.RULE_dml_event_clause = 114; +OracleSqlParser.RULE_dml_event_element = 115; +OracleSqlParser.RULE_dml_event_nested_clause = 116; +OracleSqlParser.RULE_referencing_clause = 117; +OracleSqlParser.RULE_referencing_element = 118; +OracleSqlParser.RULE_drop_type = 119; +OracleSqlParser.RULE_alter_type = 120; +OracleSqlParser.RULE_compile_type_clause = 121; +OracleSqlParser.RULE_replace_type_clause = 122; +OracleSqlParser.RULE_alter_method_spec = 123; +OracleSqlParser.RULE_alter_method_element = 124; +OracleSqlParser.RULE_alter_collection_clauses = 125; +OracleSqlParser.RULE_dependent_handling_clause = 126; +OracleSqlParser.RULE_dependent_exceptions_part = 127; +OracleSqlParser.RULE_create_type = 128; +OracleSqlParser.RULE_type_definition = 129; +OracleSqlParser.RULE_object_type_def = 130; +OracleSqlParser.RULE_object_as_part = 131; +OracleSqlParser.RULE_object_under_part = 132; +OracleSqlParser.RULE_nested_table_type_def = 133; +OracleSqlParser.RULE_sqlj_object_type = 134; +OracleSqlParser.RULE_type_body = 135; +OracleSqlParser.RULE_type_body_elements = 136; +OracleSqlParser.RULE_map_order_func_declaration = 137; +OracleSqlParser.RULE_subprog_decl_in_type = 138; +OracleSqlParser.RULE_proc_decl_in_type = 139; +OracleSqlParser.RULE_func_decl_in_type = 140; +OracleSqlParser.RULE_constructor_declaration = 141; +OracleSqlParser.RULE_modifier_clause = 142; +OracleSqlParser.RULE_object_member_spec = 143; +OracleSqlParser.RULE_sqlj_object_type_attr = 144; +OracleSqlParser.RULE_element_spec = 145; +OracleSqlParser.RULE_element_spec_options = 146; +OracleSqlParser.RULE_subprogram_spec = 147; +OracleSqlParser.RULE_overriding_subprogram_spec = 148; +OracleSqlParser.RULE_overriding_function_spec = 149; +OracleSqlParser.RULE_type_procedure_spec = 150; +OracleSqlParser.RULE_type_function_spec = 151; +OracleSqlParser.RULE_constructor_spec = 152; +OracleSqlParser.RULE_map_order_function_spec = 153; +OracleSqlParser.RULE_pragma_clause = 154; +OracleSqlParser.RULE_pragma_elements = 155; +OracleSqlParser.RULE_type_elements_parameter = 156; +OracleSqlParser.RULE_drop_sequence = 157; +OracleSqlParser.RULE_alter_sequence = 158; +OracleSqlParser.RULE_alter_session = 159; +OracleSqlParser.RULE_alter_session_set_clause = 160; +OracleSqlParser.RULE_create_sequence = 161; +OracleSqlParser.RULE_sequence_spec = 162; +OracleSqlParser.RULE_sequence_start_clause = 163; +OracleSqlParser.RULE_create_analytic_view = 164; +OracleSqlParser.RULE_classification_clause = 165; +OracleSqlParser.RULE_caption_clause = 166; +OracleSqlParser.RULE_description_clause = 167; +OracleSqlParser.RULE_classification_item = 168; +OracleSqlParser.RULE_language = 169; +OracleSqlParser.RULE_cav_using_clause = 170; +OracleSqlParser.RULE_dim_by_clause = 171; +OracleSqlParser.RULE_dim_key = 172; +OracleSqlParser.RULE_dim_ref = 173; +OracleSqlParser.RULE_hier_ref = 174; +OracleSqlParser.RULE_measures_clause = 175; +OracleSqlParser.RULE_av_measure = 176; +OracleSqlParser.RULE_base_meas_clause = 177; +OracleSqlParser.RULE_meas_aggregate_clause = 178; +OracleSqlParser.RULE_calc_meas_clause = 179; +OracleSqlParser.RULE_default_measure_clause = 180; +OracleSqlParser.RULE_default_aggregate_clause = 181; +OracleSqlParser.RULE_cache_clause = 182; +OracleSqlParser.RULE_cache_specification = 183; +OracleSqlParser.RULE_levels_clause = 184; +OracleSqlParser.RULE_level_specification = 185; +OracleSqlParser.RULE_level_group_type = 186; +OracleSqlParser.RULE_fact_columns_clause = 187; +OracleSqlParser.RULE_qry_transform_clause = 188; +OracleSqlParser.RULE_create_attribute_dimension = 189; +OracleSqlParser.RULE_ad_using_clause = 190; +OracleSqlParser.RULE_source_clause = 191; +OracleSqlParser.RULE_join_path_clause = 192; +OracleSqlParser.RULE_join_condition = 193; +OracleSqlParser.RULE_join_condition_item = 194; +OracleSqlParser.RULE_attributes_clause = 195; +OracleSqlParser.RULE_ad_attributes_clause = 196; +OracleSqlParser.RULE_ad_level_clause = 197; +OracleSqlParser.RULE_key_clause = 198; +OracleSqlParser.RULE_alternate_key_clause = 199; +OracleSqlParser.RULE_dim_order_clause = 200; +OracleSqlParser.RULE_all_clause = 201; +OracleSqlParser.RULE_create_audit_policy = 202; +OracleSqlParser.RULE_privilege_audit_clause = 203; +OracleSqlParser.RULE_action_audit_clause = 204; +OracleSqlParser.RULE_system_actions = 205; +OracleSqlParser.RULE_standard_actions = 206; +OracleSqlParser.RULE_actions_clause = 207; +OracleSqlParser.RULE_object_action = 208; +OracleSqlParser.RULE_system_action = 209; +OracleSqlParser.RULE_component_actions = 210; +OracleSqlParser.RULE_component_action = 211; +OracleSqlParser.RULE_role_audit_clause = 212; +OracleSqlParser.RULE_create_controlfile = 213; +OracleSqlParser.RULE_controlfile_options = 214; +OracleSqlParser.RULE_logfile_clause = 215; +OracleSqlParser.RULE_character_set_clause = 216; +OracleSqlParser.RULE_file_specification = 217; +OracleSqlParser.RULE_create_diskgroup = 218; +OracleSqlParser.RULE_qualified_disk_clause = 219; +OracleSqlParser.RULE_create_edition = 220; +OracleSqlParser.RULE_create_flashback_archive = 221; +OracleSqlParser.RULE_flashback_archive_quota = 222; +OracleSqlParser.RULE_flashback_archive_retention = 223; +OracleSqlParser.RULE_create_hierarchy = 224; +OracleSqlParser.RULE_hier_using_clause = 225; +OracleSqlParser.RULE_level_hier_clause = 226; +OracleSqlParser.RULE_hier_attrs_clause = 227; +OracleSqlParser.RULE_hier_attr_clause = 228; +OracleSqlParser.RULE_hier_attr_name = 229; +OracleSqlParser.RULE_create_index = 230; +OracleSqlParser.RULE_cluster_index_clause = 231; +OracleSqlParser.RULE_cluster_name = 232; +OracleSqlParser.RULE_table_index_clause = 233; +OracleSqlParser.RULE_bitmap_join_index_clause = 234; +OracleSqlParser.RULE_index_expr = 235; +OracleSqlParser.RULE_index_properties = 236; +OracleSqlParser.RULE_domain_index_clause = 237; +OracleSqlParser.RULE_local_domain_index_clause = 238; +OracleSqlParser.RULE_xmlindex_clause = 239; +OracleSqlParser.RULE_local_xmlindex_clause = 240; +OracleSqlParser.RULE_global_partitioned_index = 241; +OracleSqlParser.RULE_index_partitioning_clause = 242; +OracleSqlParser.RULE_index_partitioning_values_list = 243; +OracleSqlParser.RULE_local_partitioned_index = 244; +OracleSqlParser.RULE_on_range_partitioned_table = 245; +OracleSqlParser.RULE_on_list_partitioned_table = 246; +OracleSqlParser.RULE_partitioned_table = 247; +OracleSqlParser.RULE_on_hash_partitioned_table = 248; +OracleSqlParser.RULE_on_hash_partitioned_clause = 249; +OracleSqlParser.RULE_on_comp_partitioned_table = 250; +OracleSqlParser.RULE_on_comp_partitioned_clause = 251; +OracleSqlParser.RULE_index_subpartition_clause = 252; +OracleSqlParser.RULE_index_subpartition_subclause = 253; +OracleSqlParser.RULE_odci_parameters = 254; +OracleSqlParser.RULE_indextype = 255; +OracleSqlParser.RULE_alter_index = 256; +OracleSqlParser.RULE_alter_index_ops_set1 = 257; +OracleSqlParser.RULE_alter_index_ops_set2 = 258; +OracleSqlParser.RULE_visible_or_invisible = 259; +OracleSqlParser.RULE_monitoring_nomonitoring = 260; +OracleSqlParser.RULE_rebuild_clause = 261; +OracleSqlParser.RULE_alter_index_partitioning = 262; +OracleSqlParser.RULE_modify_index_default_attrs = 263; +OracleSqlParser.RULE_add_hash_index_partition = 264; +OracleSqlParser.RULE_coalesce_index_partition = 265; +OracleSqlParser.RULE_modify_index_partition = 266; +OracleSqlParser.RULE_modify_index_partitions_ops = 267; +OracleSqlParser.RULE_rename_index_partition = 268; +OracleSqlParser.RULE_drop_index_partition = 269; +OracleSqlParser.RULE_split_index_partition = 270; +OracleSqlParser.RULE_index_partition_description = 271; +OracleSqlParser.RULE_modify_index_subpartition = 272; +OracleSqlParser.RULE_partition_name_old = 273; +OracleSqlParser.RULE_new_partition_name = 274; +OracleSqlParser.RULE_new_index_name = 275; +OracleSqlParser.RULE_alter_inmemory_join_group = 276; +OracleSqlParser.RULE_create_user = 277; +OracleSqlParser.RULE_alter_user = 278; +OracleSqlParser.RULE_drop_user = 279; +OracleSqlParser.RULE_alter_identified_by = 280; +OracleSqlParser.RULE_identified_by = 281; +OracleSqlParser.RULE_identified_other_clause = 282; +OracleSqlParser.RULE_user_tablespace_clause = 283; +OracleSqlParser.RULE_quota_clause = 284; +OracleSqlParser.RULE_profile_clause = 285; +OracleSqlParser.RULE_role_clause = 286; +OracleSqlParser.RULE_user_default_role_clause = 287; +OracleSqlParser.RULE_password_expire_clause = 288; +OracleSqlParser.RULE_user_lock_clause = 289; +OracleSqlParser.RULE_user_editions_clause = 290; +OracleSqlParser.RULE_alter_user_editions_clause = 291; +OracleSqlParser.RULE_proxy_clause = 292; +OracleSqlParser.RULE_container_names = 293; +OracleSqlParser.RULE_set_container_data = 294; +OracleSqlParser.RULE_add_rem_container_data = 295; +OracleSqlParser.RULE_container_data_clause = 296; +OracleSqlParser.RULE_administer_key_management = 297; +OracleSqlParser.RULE_keystore_management_clauses = 298; +OracleSqlParser.RULE_create_keystore = 299; +OracleSqlParser.RULE_open_keystore = 300; +OracleSqlParser.RULE_force_keystore = 301; +OracleSqlParser.RULE_close_keystore = 302; +OracleSqlParser.RULE_backup_keystore = 303; +OracleSqlParser.RULE_alter_keystore_password = 304; +OracleSqlParser.RULE_merge_into_new_keystore = 305; +OracleSqlParser.RULE_merge_into_existing_keystore = 306; +OracleSqlParser.RULE_isolate_keystore = 307; +OracleSqlParser.RULE_unite_keystore = 308; +OracleSqlParser.RULE_key_management_clauses = 309; +OracleSqlParser.RULE_set_key = 310; +OracleSqlParser.RULE_create_key = 311; +OracleSqlParser.RULE_mkid = 312; +OracleSqlParser.RULE_mk = 313; +OracleSqlParser.RULE_use_key = 314; +OracleSqlParser.RULE_set_key_tag = 315; +OracleSqlParser.RULE_export_keys = 316; +OracleSqlParser.RULE_import_keys = 317; +OracleSqlParser.RULE_migrate_keys = 318; +OracleSqlParser.RULE_reverse_migrate_keys = 319; +OracleSqlParser.RULE_move_keys = 320; +OracleSqlParser.RULE_identified_by_store = 321; +OracleSqlParser.RULE_using_algorithm_clause = 322; +OracleSqlParser.RULE_using_tag_clause = 323; +OracleSqlParser.RULE_secret_management_clauses = 324; +OracleSqlParser.RULE_add_update_secret = 325; +OracleSqlParser.RULE_delete_secret = 326; +OracleSqlParser.RULE_add_update_secret_seps = 327; +OracleSqlParser.RULE_delete_secret_seps = 328; +OracleSqlParser.RULE_zero_downtime_software_patching_clauses = 329; +OracleSqlParser.RULE_with_backup_clause = 330; +OracleSqlParser.RULE_identified_by_password_clause = 331; +OracleSqlParser.RULE_keystore_password = 332; +OracleSqlParser.RULE_path = 333; +OracleSqlParser.RULE_secret = 334; +OracleSqlParser.RULE_analyze = 335; +OracleSqlParser.RULE_partition_extention_clause = 336; +OracleSqlParser.RULE_validation_clauses = 337; +OracleSqlParser.RULE_compute_clauses = 338; +OracleSqlParser.RULE_for_clause = 339; +OracleSqlParser.RULE_online_or_offline = 340; +OracleSqlParser.RULE_into_clause1 = 341; +OracleSqlParser.RULE_partition_key_value = 342; +OracleSqlParser.RULE_subpartition_key_value = 343; +OracleSqlParser.RULE_associate_statistics = 344; +OracleSqlParser.RULE_column_association = 345; +OracleSqlParser.RULE_function_association = 346; +OracleSqlParser.RULE_indextype_name = 347; +OracleSqlParser.RULE_using_statistics_type = 348; +OracleSqlParser.RULE_statistics_type_name = 349; +OracleSqlParser.RULE_default_cost_clause = 350; +OracleSqlParser.RULE_cpu_cost = 351; +OracleSqlParser.RULE_io_cost = 352; +OracleSqlParser.RULE_network_cost = 353; +OracleSqlParser.RULE_default_selectivity_clause = 354; +OracleSqlParser.RULE_default_selectivity = 355; +OracleSqlParser.RULE_storage_table_clause = 356; +OracleSqlParser.RULE_unified_auditing = 357; +OracleSqlParser.RULE_policy_name = 358; +OracleSqlParser.RULE_audit_traditional = 359; +OracleSqlParser.RULE_audit_direct_path = 360; +OracleSqlParser.RULE_audit_container_clause = 361; +OracleSqlParser.RULE_audit_operation_clause = 362; +OracleSqlParser.RULE_auditing_by_clause = 363; +OracleSqlParser.RULE_audit_user = 364; +OracleSqlParser.RULE_audit_schema_object_clause = 365; +OracleSqlParser.RULE_sql_operation = 366; +OracleSqlParser.RULE_auditing_on_clause = 367; +OracleSqlParser.RULE_model_name = 368; +OracleSqlParser.RULE_object_name = 369; +OracleSqlParser.RULE_profile_name = 370; +OracleSqlParser.RULE_sql_statement_shortcut = 371; +OracleSqlParser.RULE_drop_index = 372; +OracleSqlParser.RULE_disassociate_statistics = 373; +OracleSqlParser.RULE_drop_indextype = 374; +OracleSqlParser.RULE_drop_inmemory_join_group = 375; +OracleSqlParser.RULE_flashback_table = 376; +OracleSqlParser.RULE_restore_point = 377; +OracleSqlParser.RULE_purge_statement = 378; +OracleSqlParser.RULE_noaudit_statement = 379; +OracleSqlParser.RULE_rename_object = 380; +OracleSqlParser.RULE_grant_statement = 381; +OracleSqlParser.RULE_container_clause = 382; +OracleSqlParser.RULE_revoke_statement = 383; +OracleSqlParser.RULE_revoke_system_privilege = 384; +OracleSqlParser.RULE_revokee_clause = 385; +OracleSqlParser.RULE_revoke_object_privileges = 386; +OracleSqlParser.RULE_on_object_clause = 387; +OracleSqlParser.RULE_revoke_roles_from_programs = 388; +OracleSqlParser.RULE_program_unit = 389; +OracleSqlParser.RULE_create_dimension = 390; +OracleSqlParser.RULE_create_directory = 391; +OracleSqlParser.RULE_directory_name = 392; +OracleSqlParser.RULE_directory_path = 393; +OracleSqlParser.RULE_create_inmemory_join_group = 394; +OracleSqlParser.RULE_drop_hierarchy = 395; +OracleSqlParser.RULE_alter_library = 396; +OracleSqlParser.RULE_drop_java = 397; +OracleSqlParser.RULE_drop_library = 398; +OracleSqlParser.RULE_create_java = 399; +OracleSqlParser.RULE_create_library = 400; +OracleSqlParser.RULE_plsql_library_source = 401; +OracleSqlParser.RULE_credential_name = 402; +OracleSqlParser.RULE_library_editionable = 403; +OracleSqlParser.RULE_library_debug = 404; +OracleSqlParser.RULE_compiler_parameters_clause = 405; +OracleSqlParser.RULE_parameter_value = 406; +OracleSqlParser.RULE_library_name = 407; +OracleSqlParser.RULE_alter_dimension = 408; +OracleSqlParser.RULE_level_clause = 409; +OracleSqlParser.RULE_hierarchy_clause = 410; +OracleSqlParser.RULE_dimension_join_clause = 411; +OracleSqlParser.RULE_attribute_clause = 412; +OracleSqlParser.RULE_extended_attribute_clause = 413; +OracleSqlParser.RULE_column_one_or_more_sub_clause = 414; +OracleSqlParser.RULE_alter_view = 415; +OracleSqlParser.RULE_alter_view_editionable = 416; +OracleSqlParser.RULE_create_view = 417; +OracleSqlParser.RULE_editioning_clause = 418; +OracleSqlParser.RULE_view_options = 419; +OracleSqlParser.RULE_view_alias_constraint = 420; +OracleSqlParser.RULE_object_view_clause = 421; +OracleSqlParser.RULE_inline_constraint = 422; +OracleSqlParser.RULE_inline_ref_constraint = 423; +OracleSqlParser.RULE_out_of_line_ref_constraint = 424; +OracleSqlParser.RULE_out_of_line_constraint = 425; +OracleSqlParser.RULE_constraint_state = 426; +OracleSqlParser.RULE_xmltype_view_clause = 427; +OracleSqlParser.RULE_xml_schema_spec = 428; +OracleSqlParser.RULE_xml_schema_url = 429; +OracleSqlParser.RULE_element = 430; +OracleSqlParser.RULE_alter_tablespace = 431; +OracleSqlParser.RULE_datafile_tempfile_clauses = 432; +OracleSqlParser.RULE_tablespace_logging_clauses = 433; +OracleSqlParser.RULE_tablespace_group_clause = 434; +OracleSqlParser.RULE_tablespace_group_name = 435; +OracleSqlParser.RULE_tablespace_state_clauses = 436; +OracleSqlParser.RULE_flashback_mode_clause = 437; +OracleSqlParser.RULE_new_tablespace_name = 438; +OracleSqlParser.RULE_create_tablespace = 439; +OracleSqlParser.RULE_permanent_tablespace_clause = 440; +OracleSqlParser.RULE_tablespace_encryption_spec = 441; +OracleSqlParser.RULE_logging_clause = 442; +OracleSqlParser.RULE_extent_management_clause = 443; +OracleSqlParser.RULE_segment_management_clause = 444; +OracleSqlParser.RULE_temporary_tablespace_clause = 445; +OracleSqlParser.RULE_undo_tablespace_clause = 446; +OracleSqlParser.RULE_tablespace_retention_clause = 447; +OracleSqlParser.RULE_create_tablespace_set = 448; +OracleSqlParser.RULE_permanent_tablespace_attrs = 449; +OracleSqlParser.RULE_tablespace_encryption_clause = 450; +OracleSqlParser.RULE_default_tablespace_params = 451; +OracleSqlParser.RULE_default_table_compression = 452; +OracleSqlParser.RULE_low_high = 453; +OracleSqlParser.RULE_default_index_compression = 454; +OracleSqlParser.RULE_inmmemory_clause = 455; +OracleSqlParser.RULE_datafile_specification = 456; +OracleSqlParser.RULE_tempfile_specification = 457; +OracleSqlParser.RULE_datafile_tempfile_spec = 458; +OracleSqlParser.RULE_redo_log_file_spec = 459; +OracleSqlParser.RULE_autoextend_clause = 460; +OracleSqlParser.RULE_maxsize_clause = 461; +OracleSqlParser.RULE_build_clause = 462; +OracleSqlParser.RULE_parallel_clause = 463; +OracleSqlParser.RULE_parallel_instances_clause = 464; +OracleSqlParser.RULE_alter_materialized_view = 465; +OracleSqlParser.RULE_alter_mv_option1 = 466; +OracleSqlParser.RULE_alter_mv_refresh = 467; +OracleSqlParser.RULE_rollback_segment = 468; +OracleSqlParser.RULE_modify_mv_column_clause = 469; +OracleSqlParser.RULE_alter_materialized_view_log = 470; +OracleSqlParser.RULE_add_mv_log_column_clause = 471; +OracleSqlParser.RULE_move_mv_log_clause = 472; +OracleSqlParser.RULE_mv_log_augmentation = 473; +OracleSqlParser.RULE_create_materialized_view_log = 474; +OracleSqlParser.RULE_new_values_clause = 475; +OracleSqlParser.RULE_mv_log_purge_clause = 476; +OracleSqlParser.RULE_create_materialized_zonemap = 477; +OracleSqlParser.RULE_alter_materialized_zonemap = 478; +OracleSqlParser.RULE_drop_materialized_zonemap = 479; +OracleSqlParser.RULE_zonemap_refresh_clause = 480; +OracleSqlParser.RULE_zonemap_attributes = 481; +OracleSqlParser.RULE_zonemap_name = 482; +OracleSqlParser.RULE_operator_name = 483; +OracleSqlParser.RULE_operator_function_name = 484; +OracleSqlParser.RULE_create_zonemap_on_table = 485; +OracleSqlParser.RULE_create_zonemap_as_subquery = 486; +OracleSqlParser.RULE_alter_operator = 487; +OracleSqlParser.RULE_drop_operator = 488; +OracleSqlParser.RULE_create_operator = 489; +OracleSqlParser.RULE_binding_clause = 490; +OracleSqlParser.RULE_add_binding_clause = 491; +OracleSqlParser.RULE_implementation_clause = 492; +OracleSqlParser.RULE_primary_operator_list = 493; +OracleSqlParser.RULE_primary_operator_item = 494; +OracleSqlParser.RULE_operator_context_clause = 495; +OracleSqlParser.RULE_using_function_clause = 496; +OracleSqlParser.RULE_drop_binding_clause = 497; +OracleSqlParser.RULE_create_materialized_view = 498; +OracleSqlParser.RULE_scoped_table_ref_constraint = 499; +OracleSqlParser.RULE_mv_column_alias = 500; +OracleSqlParser.RULE_create_mv_refresh = 501; +OracleSqlParser.RULE_drop_materialized_view = 502; +OracleSqlParser.RULE_drop_materialized_view_log = 503; +OracleSqlParser.RULE_create_context = 504; +OracleSqlParser.RULE_oracle_namespace = 505; +OracleSqlParser.RULE_create_cluster = 506; +OracleSqlParser.RULE_create_profile = 507; +OracleSqlParser.RULE_resource_parameters = 508; +OracleSqlParser.RULE_password_parameters = 509; +OracleSqlParser.RULE_create_lockdown_profile = 510; +OracleSqlParser.RULE_static_base_profile = 511; +OracleSqlParser.RULE_dynamic_base_profile = 512; +OracleSqlParser.RULE_create_outline = 513; +OracleSqlParser.RULE_create_restore_point = 514; +OracleSqlParser.RULE_create_role = 515; +OracleSqlParser.RULE_create_table = 516; +OracleSqlParser.RULE_xmltype_table = 517; +OracleSqlParser.RULE_xmltype_virtual_columns = 518; +OracleSqlParser.RULE_xmltype_column_properties = 519; +OracleSqlParser.RULE_xmltype_storage = 520; +OracleSqlParser.RULE_xmlschema_spec = 521; +OracleSqlParser.RULE_object_table = 522; +OracleSqlParser.RULE_object_type = 523; +OracleSqlParser.RULE_oid_index_clause = 524; +OracleSqlParser.RULE_oid_clause = 525; +OracleSqlParser.RULE_object_properties = 526; +OracleSqlParser.RULE_object_table_substitution = 527; +OracleSqlParser.RULE_relational_table = 528; +OracleSqlParser.RULE_relational_table_properties = 529; +OracleSqlParser.RULE_relational_table_property = 530; +OracleSqlParser.RULE_immutable_table_clauses = 531; +OracleSqlParser.RULE_immutable_table_no_drop_clause = 532; +OracleSqlParser.RULE_immutable_table_no_delete_clause = 533; +OracleSqlParser.RULE_blockchain_table_clauses = 534; +OracleSqlParser.RULE_blockchain_drop_table_clause = 535; +OracleSqlParser.RULE_blockchain_row_retention_clause = 536; +OracleSqlParser.RULE_blockchain_hash_and_data_format_clause = 537; +OracleSqlParser.RULE_collation_name = 538; +OracleSqlParser.RULE_table_properties = 539; +OracleSqlParser.RULE_read_only_clause = 540; +OracleSqlParser.RULE_indexing_clause = 541; +OracleSqlParser.RULE_attribute_clustering_clause = 542; +OracleSqlParser.RULE_clustering_join = 543; +OracleSqlParser.RULE_clustering_join_item = 544; +OracleSqlParser.RULE_equijoin_condition = 545; +OracleSqlParser.RULE_cluster_clause = 546; +OracleSqlParser.RULE_clustering_columns = 547; +OracleSqlParser.RULE_clustering_column_group = 548; +OracleSqlParser.RULE_yes_no = 549; +OracleSqlParser.RULE_zonemap_clause = 550; +OracleSqlParser.RULE_logical_replication_clause = 551; +OracleSqlParser.RULE_table_name = 552; +OracleSqlParser.RULE_relational_property = 553; +OracleSqlParser.RULE_table_partitioning_clauses = 554; +OracleSqlParser.RULE_range_partitions = 555; +OracleSqlParser.RULE_list_partitions = 556; +OracleSqlParser.RULE_hash_partitions = 557; +OracleSqlParser.RULE_individual_hash_partitions = 558; +OracleSqlParser.RULE_hash_partitions_by_quantity = 559; +OracleSqlParser.RULE_hash_partition_quantity = 560; +OracleSqlParser.RULE_composite_range_partitions = 561; +OracleSqlParser.RULE_composite_list_partitions = 562; +OracleSqlParser.RULE_composite_hash_partitions = 563; +OracleSqlParser.RULE_reference_partitioning = 564; +OracleSqlParser.RULE_reference_partition_desc = 565; +OracleSqlParser.RULE_system_partitioning = 566; +OracleSqlParser.RULE_range_partition_desc = 567; +OracleSqlParser.RULE_list_partition_desc = 568; +OracleSqlParser.RULE_subpartition_template = 569; +OracleSqlParser.RULE_hash_subpartition_quantity = 570; +OracleSqlParser.RULE_subpartition_by_range = 571; +OracleSqlParser.RULE_subpartition_by_list = 572; +OracleSqlParser.RULE_subpartition_by_hash = 573; +OracleSqlParser.RULE_subpartition_name = 574; +OracleSqlParser.RULE_range_subpartition_desc = 575; +OracleSqlParser.RULE_list_subpartition_desc = 576; +OracleSqlParser.RULE_individual_hash_subparts = 577; +OracleSqlParser.RULE_hash_subparts_by_quantity = 578; +OracleSqlParser.RULE_range_values_clause = 579; +OracleSqlParser.RULE_range_values_list = 580; +OracleSqlParser.RULE_list_values_clause = 581; +OracleSqlParser.RULE_table_partition_description = 582; +OracleSqlParser.RULE_partitioning_storage_clause = 583; +OracleSqlParser.RULE_lob_partitioning_storage = 584; +OracleSqlParser.RULE_size_clause = 585; +OracleSqlParser.RULE_table_compression = 586; +OracleSqlParser.RULE_inmemory_table_clause = 587; +OracleSqlParser.RULE_inmemory_attributes = 588; +OracleSqlParser.RULE_inmemory_memcompress = 589; +OracleSqlParser.RULE_inmemory_priority = 590; +OracleSqlParser.RULE_inmemory_distribute = 591; +OracleSqlParser.RULE_inmemory_duplicate = 592; +OracleSqlParser.RULE_inmemory_column_clause = 593; +OracleSqlParser.RULE_physical_attributes_clause = 594; +OracleSqlParser.RULE_storage_clause = 595; +OracleSqlParser.RULE_deferred_segment_creation = 596; +OracleSqlParser.RULE_segment_attributes_clause = 597; +OracleSqlParser.RULE_physical_properties = 598; +OracleSqlParser.RULE_ilm_clause = 599; +OracleSqlParser.RULE_ilm_policy_clause = 600; +OracleSqlParser.RULE_ilm_compression_policy = 601; +OracleSqlParser.RULE_ilm_tiering_policy = 602; +OracleSqlParser.RULE_ilm_after_on = 603; +OracleSqlParser.RULE_segment_group = 604; +OracleSqlParser.RULE_ilm_inmemory_policy = 605; +OracleSqlParser.RULE_ilm_time_period = 606; +OracleSqlParser.RULE_heap_org_table_clause = 607; +OracleSqlParser.RULE_external_table_clause = 608; +OracleSqlParser.RULE_access_driver_type = 609; +OracleSqlParser.RULE_external_table_data_props = 610; +OracleSqlParser.RULE_external_table_data_format = 611; +OracleSqlParser.RULE_external_table_transform = 612; +OracleSqlParser.RULE_external_table_field = 613; +OracleSqlParser.RULE_external_table_field_list = 614; +OracleSqlParser.RULE_external_table_fields_clause = 615; +OracleSqlParser.RULE_external_table_position_clause = 616; +OracleSqlParser.RULE_external_table_datatype_clause = 617; +OracleSqlParser.RULE_external_table_delimit_clause = 618; +OracleSqlParser.RULE_external_table_trim_clause = 619; +OracleSqlParser.RULE_external_table_date_format_clause = 620; +OracleSqlParser.RULE_external_table_init_clause = 621; +OracleSqlParser.RULE_external_table_condition_clause = 622; +OracleSqlParser.RULE_external_table_lls_clause = 623; +OracleSqlParser.RULE_external_table_records = 624; +OracleSqlParser.RULE_external_table_record_options_clause = 625; +OracleSqlParser.RULE_external_table_output_files = 626; +OracleSqlParser.RULE_external_table_fields = 627; +OracleSqlParser.RULE_external_table_datapump = 628; +OracleSqlParser.RULE_external_table_hive = 629; +OracleSqlParser.RULE_external_table_hive_parameter_map = 630; +OracleSqlParser.RULE_external_table_hive_parameter_map_entry = 631; +OracleSqlParser.RULE_external_table_directory = 632; +OracleSqlParser.RULE_row_movement_clause = 633; +OracleSqlParser.RULE_flashback_archive_clause = 634; +OracleSqlParser.RULE_log_grp = 635; +OracleSqlParser.RULE_supplemental_table_logging = 636; +OracleSqlParser.RULE_supplemental_log_grp_clause = 637; +OracleSqlParser.RULE_supplemental_id_key_clause = 638; +OracleSqlParser.RULE_allocate_extent_clause = 639; +OracleSqlParser.RULE_deallocate_unused_clause = 640; +OracleSqlParser.RULE_shrink_clause = 641; +OracleSqlParser.RULE_records_per_block_clause = 642; +OracleSqlParser.RULE_upgrade_table_clause = 643; +OracleSqlParser.RULE_truncate_table = 644; +OracleSqlParser.RULE_drop_table = 645; +OracleSqlParser.RULE_drop_tablespace = 646; +OracleSqlParser.RULE_drop_tablespace_set = 647; +OracleSqlParser.RULE_including_contents_clause = 648; +OracleSqlParser.RULE_drop_view = 649; +OracleSqlParser.RULE_comment_on_column = 650; +OracleSqlParser.RULE_enable_or_disable = 651; +OracleSqlParser.RULE_allow_or_disallow = 652; +OracleSqlParser.RULE_alter_synonym = 653; +OracleSqlParser.RULE_create_synonym = 654; +OracleSqlParser.RULE_drop_synonym = 655; +OracleSqlParser.RULE_create_spfile = 656; +OracleSqlParser.RULE_spfile_name = 657; +OracleSqlParser.RULE_pfile_name = 658; +OracleSqlParser.RULE_comment_on_table = 659; +OracleSqlParser.RULE_comment_on_materialized = 660; +OracleSqlParser.RULE_alter_analytic_view = 661; +OracleSqlParser.RULE_alter_add_cache_clause = 662; +OracleSqlParser.RULE_levels_item = 663; +OracleSqlParser.RULE_measure_list = 664; +OracleSqlParser.RULE_alter_drop_cache_clause = 665; +OracleSqlParser.RULE_alter_attribute_dimension = 666; +OracleSqlParser.RULE_alter_audit_policy = 667; +OracleSqlParser.RULE_alter_cluster = 668; +OracleSqlParser.RULE_drop_analytic_view = 669; +OracleSqlParser.RULE_drop_attribute_dimension = 670; +OracleSqlParser.RULE_drop_audit_policy = 671; +OracleSqlParser.RULE_drop_flashback_archive = 672; +OracleSqlParser.RULE_drop_cluster = 673; +OracleSqlParser.RULE_drop_context = 674; +OracleSqlParser.RULE_drop_directory = 675; +OracleSqlParser.RULE_drop_diskgroup = 676; +OracleSqlParser.RULE_drop_edition = 677; +OracleSqlParser.RULE_truncate_cluster = 678; +OracleSqlParser.RULE_cache_or_nocache = 679; +OracleSqlParser.RULE_database_name = 680; +OracleSqlParser.RULE_alter_database = 681; +OracleSqlParser.RULE_database_clause = 682; +OracleSqlParser.RULE_startup_clauses = 683; +OracleSqlParser.RULE_resetlogs_or_noresetlogs = 684; +OracleSqlParser.RULE_upgrade_or_downgrade = 685; +OracleSqlParser.RULE_recovery_clauses = 686; +OracleSqlParser.RULE_begin_or_end = 687; +OracleSqlParser.RULE_general_recovery = 688; +OracleSqlParser.RULE_full_database_recovery = 689; +OracleSqlParser.RULE_partial_database_recovery = 690; +OracleSqlParser.RULE_partial_database_recovery_10g = 691; +OracleSqlParser.RULE_managed_standby_recovery = 692; +OracleSqlParser.RULE_db_name = 693; +OracleSqlParser.RULE_database_file_clauses = 694; +OracleSqlParser.RULE_create_datafile_clause = 695; +OracleSqlParser.RULE_alter_datafile_clause = 696; +OracleSqlParser.RULE_alter_tempfile_clause = 697; +OracleSqlParser.RULE_move_datafile_clause = 698; +OracleSqlParser.RULE_logfile_clauses = 699; +OracleSqlParser.RULE_add_logfile_clauses = 700; +OracleSqlParser.RULE_group_redo_logfile = 701; +OracleSqlParser.RULE_drop_logfile_clauses = 702; +OracleSqlParser.RULE_switch_logfile_clause = 703; +OracleSqlParser.RULE_supplemental_db_logging = 704; +OracleSqlParser.RULE_add_or_drop = 705; +OracleSqlParser.RULE_supplemental_plsql_clause = 706; +OracleSqlParser.RULE_logfile_descriptor = 707; +OracleSqlParser.RULE_controlfile_clauses = 708; +OracleSqlParser.RULE_trace_file_clause = 709; +OracleSqlParser.RULE_standby_database_clauses = 710; +OracleSqlParser.RULE_activate_standby_db_clause = 711; +OracleSqlParser.RULE_maximize_standby_db_clause = 712; +OracleSqlParser.RULE_register_logfile_clause = 713; +OracleSqlParser.RULE_commit_switchover_clause = 714; +OracleSqlParser.RULE_start_standby_clause = 715; +OracleSqlParser.RULE_stop_standby_clause = 716; +OracleSqlParser.RULE_convert_database_clause = 717; +OracleSqlParser.RULE_default_settings_clause = 718; +OracleSqlParser.RULE_set_time_zone_clause = 719; +OracleSqlParser.RULE_instance_clauses = 720; +OracleSqlParser.RULE_security_clause = 721; +OracleSqlParser.RULE_domain = 722; +OracleSqlParser.RULE_database = 723; +OracleSqlParser.RULE_edition_name = 724; +OracleSqlParser.RULE_filenumber = 725; +OracleSqlParser.RULE_filename = 726; +OracleSqlParser.RULE_prepare_clause = 727; +OracleSqlParser.RULE_drop_mirror_clause = 728; +OracleSqlParser.RULE_lost_write_protection = 729; +OracleSqlParser.RULE_cdb_fleet_clauses = 730; +OracleSqlParser.RULE_lead_cdb_clause = 731; +OracleSqlParser.RULE_lead_cdb_uri_clause = 732; +OracleSqlParser.RULE_property_clauses = 733; +OracleSqlParser.RULE_replay_upgrade_clauses = 734; +OracleSqlParser.RULE_alter_database_link = 735; +OracleSqlParser.RULE_password_value = 736; +OracleSqlParser.RULE_link_authentication = 737; +OracleSqlParser.RULE_create_schema = 738; +OracleSqlParser.RULE_create_database = 739; +OracleSqlParser.RULE_database_logging_clauses = 740; +OracleSqlParser.RULE_database_logging_sub_clause = 741; +OracleSqlParser.RULE_tablespace_clauses = 742; +OracleSqlParser.RULE_enable_pluggable_database = 743; +OracleSqlParser.RULE_file_name_convert = 744; +OracleSqlParser.RULE_filename_convert_sub_clause = 745; +OracleSqlParser.RULE_tablespace_datafile_clauses = 746; +OracleSqlParser.RULE_undo_mode_clause = 747; +OracleSqlParser.RULE_default_tablespace = 748; +OracleSqlParser.RULE_default_temp_tablespace = 749; +OracleSqlParser.RULE_undo_tablespace = 750; +OracleSqlParser.RULE_drop_database = 751; +OracleSqlParser.RULE_create_database_link = 752; +OracleSqlParser.RULE_drop_database_link = 753; +OracleSqlParser.RULE_alter_tablespace_set = 754; +OracleSqlParser.RULE_alter_tablespace_attrs = 755; +OracleSqlParser.RULE_alter_tablespace_encryption = 756; +OracleSqlParser.RULE_ts_file_name_convert = 757; +OracleSqlParser.RULE_alter_role = 758; +OracleSqlParser.RULE_role_identified_clause = 759; +OracleSqlParser.RULE_alter_table = 760; +OracleSqlParser.RULE_memoptimize_read_write_clause = 761; +OracleSqlParser.RULE_alter_table_properties = 762; +OracleSqlParser.RULE_alter_table_partitioning = 763; +OracleSqlParser.RULE_add_table_partition = 764; +OracleSqlParser.RULE_drop_table_partition = 765; +OracleSqlParser.RULE_merge_table_partition = 766; +OracleSqlParser.RULE_modify_table_partition = 767; +OracleSqlParser.RULE_split_table_partition = 768; +OracleSqlParser.RULE_truncate_table_partition = 769; +OracleSqlParser.RULE_exchange_table_partition = 770; +OracleSqlParser.RULE_coalesce_table_partition = 771; +OracleSqlParser.RULE_alter_interval_partition = 772; +OracleSqlParser.RULE_move_table_partition = 773; +OracleSqlParser.RULE_filter_condition = 774; +OracleSqlParser.RULE_partition_extended_names = 775; +OracleSqlParser.RULE_subpartition_extended_names = 776; +OracleSqlParser.RULE_alter_table_properties_1 = 777; +OracleSqlParser.RULE_alter_iot_clauses = 778; +OracleSqlParser.RULE_alter_mapping_table_clause = 779; +OracleSqlParser.RULE_alter_overflow_clause = 780; +OracleSqlParser.RULE_add_overflow_clause = 781; +OracleSqlParser.RULE_update_index_clauses = 782; +OracleSqlParser.RULE_update_global_index_clause = 783; +OracleSqlParser.RULE_update_all_indexes_clause = 784; +OracleSqlParser.RULE_update_all_indexes_index_clause = 785; +OracleSqlParser.RULE_update_index_partition = 786; +OracleSqlParser.RULE_update_index_subpartition = 787; +OracleSqlParser.RULE_enable_disable_clause = 788; +OracleSqlParser.RULE_using_index_clause = 789; +OracleSqlParser.RULE_index_attributes = 790; +OracleSqlParser.RULE_sort_or_nosort = 791; +OracleSqlParser.RULE_exceptions_clause = 792; +OracleSqlParser.RULE_move_table_clause = 793; +OracleSqlParser.RULE_index_org_table_clause = 794; +OracleSqlParser.RULE_mapping_table_clause = 795; +OracleSqlParser.RULE_key_compression = 796; +OracleSqlParser.RULE_index_org_overflow_clause = 797; +OracleSqlParser.RULE_column_clauses = 798; +OracleSqlParser.RULE_modify_collection_retrieval = 799; +OracleSqlParser.RULE_collection_item = 800; +OracleSqlParser.RULE_rename_column_clause = 801; +OracleSqlParser.RULE_old_column_name = 802; +OracleSqlParser.RULE_new_column_name = 803; +OracleSqlParser.RULE_add_modify_drop_column_clauses = 804; +OracleSqlParser.RULE_drop_column_clause = 805; +OracleSqlParser.RULE_modify_column_clauses = 806; +OracleSqlParser.RULE_modify_col_properties = 807; +OracleSqlParser.RULE_modify_col_visibility = 808; +OracleSqlParser.RULE_modify_col_substitutable = 809; +OracleSqlParser.RULE_add_column_clause = 810; +OracleSqlParser.RULE_varray_col_properties = 811; +OracleSqlParser.RULE_varray_storage_clause = 812; +OracleSqlParser.RULE_lob_segname = 813; +OracleSqlParser.RULE_lob_item = 814; +OracleSqlParser.RULE_lob_storage_parameters = 815; +OracleSqlParser.RULE_lob_storage_clause = 816; +OracleSqlParser.RULE_modify_lob_storage_clause = 817; +OracleSqlParser.RULE_modify_lob_parameters = 818; +OracleSqlParser.RULE_lob_parameters = 819; +OracleSqlParser.RULE_lob_deduplicate_clause = 820; +OracleSqlParser.RULE_lob_compression_clause = 821; +OracleSqlParser.RULE_lob_retention_clause = 822; +OracleSqlParser.RULE_encryption_spec = 823; +OracleSqlParser.RULE_tablespace = 824; +OracleSqlParser.RULE_varray_item = 825; +OracleSqlParser.RULE_column_properties = 826; +OracleSqlParser.RULE_lob_partition_storage = 827; +OracleSqlParser.RULE_period_definition = 828; +OracleSqlParser.RULE_start_time_column = 829; +OracleSqlParser.RULE_end_time_column = 830; +OracleSqlParser.RULE_column_definition = 831; +OracleSqlParser.RULE_column_collation_name = 832; +OracleSqlParser.RULE_identity_clause = 833; +OracleSqlParser.RULE_identity_options_parentheses = 834; +OracleSqlParser.RULE_identity_options = 835; +OracleSqlParser.RULE_virtual_column_definition = 836; +OracleSqlParser.RULE_virtual_column_expression = 837; +OracleSqlParser.RULE_autogenerated_sequence_definition = 838; +OracleSqlParser.RULE_by_user_for_statistics_clause = 839; +OracleSqlParser.RULE_evaluation_edition_clause = 840; +OracleSqlParser.RULE_nested_table_col_properties = 841; +OracleSqlParser.RULE_nested_item = 842; +OracleSqlParser.RULE_substitutable_column_clause = 843; +OracleSqlParser.RULE_partition_name = 844; +OracleSqlParser.RULE_supplemental_logging_props = 845; +OracleSqlParser.RULE_object_type_col_properties = 846; +OracleSqlParser.RULE_constraint_clauses = 847; +OracleSqlParser.RULE_old_constraint_name = 848; +OracleSqlParser.RULE_new_constraint_name = 849; +OracleSqlParser.RULE_drop_constraint_clause = 850; +OracleSqlParser.RULE_check_constraint = 851; +OracleSqlParser.RULE_foreign_key_clause = 852; +OracleSqlParser.RULE_references_clause = 853; +OracleSqlParser.RULE_on_delete_clause = 854; +OracleSqlParser.RULE_anonymous_block = 855; +OracleSqlParser.RULE_invoker_rights_clause = 856; +OracleSqlParser.RULE_call_spec = 857; +OracleSqlParser.RULE_java_spec = 858; +OracleSqlParser.RULE_c_spec = 859; +OracleSqlParser.RULE_c_agent_in_clause = 860; +OracleSqlParser.RULE_c_parameters_clause = 861; +OracleSqlParser.RULE_c_external_parameter = 862; +OracleSqlParser.RULE_c_property = 863; +OracleSqlParser.RULE_parameter = 864; +OracleSqlParser.RULE_default_value_part = 865; +OracleSqlParser.RULE_seq_of_declare_specs = 866; +OracleSqlParser.RULE_declare_spec = 867; +OracleSqlParser.RULE_variable_declaration = 868; +OracleSqlParser.RULE_subtype_declaration = 869; +OracleSqlParser.RULE_cursor_declaration = 870; +OracleSqlParser.RULE_parameter_spec = 871; +OracleSqlParser.RULE_exception_declaration = 872; +OracleSqlParser.RULE_pragma_declaration = 873; +OracleSqlParser.RULE_record_type_def = 874; +OracleSqlParser.RULE_field_spec = 875; +OracleSqlParser.RULE_ref_cursor_type_def = 876; +OracleSqlParser.RULE_type_declaration = 877; +OracleSqlParser.RULE_table_type_def = 878; +OracleSqlParser.RULE_table_indexed_by_part = 879; +OracleSqlParser.RULE_varray_type_def = 880; +OracleSqlParser.RULE_seq_of_statements = 881; +OracleSqlParser.RULE_label_declaration = 882; +OracleSqlParser.RULE_statement = 883; +OracleSqlParser.RULE_assignment_statement = 884; +OracleSqlParser.RULE_continue_statement = 885; +OracleSqlParser.RULE_exit_statement = 886; +OracleSqlParser.RULE_goto_statement = 887; +OracleSqlParser.RULE_if_statement = 888; +OracleSqlParser.RULE_elsif_part = 889; +OracleSqlParser.RULE_else_part = 890; +OracleSqlParser.RULE_loop_statement = 891; +OracleSqlParser.RULE_cursor_loop_param = 892; +OracleSqlParser.RULE_forall_statement = 893; +OracleSqlParser.RULE_bounds_clause = 894; +OracleSqlParser.RULE_between_bound = 895; +OracleSqlParser.RULE_lower_bound = 896; +OracleSqlParser.RULE_upper_bound = 897; +OracleSqlParser.RULE_null_statement = 898; +OracleSqlParser.RULE_raise_statement = 899; +OracleSqlParser.RULE_return_statement = 900; +OracleSqlParser.RULE_call_statement = 901; +OracleSqlParser.RULE_pipe_row_statement = 902; +OracleSqlParser.RULE_selection_directive = 903; +OracleSqlParser.RULE_error_directive = 904; +OracleSqlParser.RULE_selection_directive_body = 905; +OracleSqlParser.RULE_body = 906; +OracleSqlParser.RULE_exception_handler = 907; +OracleSqlParser.RULE_trigger_block = 908; +OracleSqlParser.RULE_tps_block = 909; +OracleSqlParser.RULE_block = 910; +OracleSqlParser.RULE_sql_statement = 911; +OracleSqlParser.RULE_execute_immediate = 912; +OracleSqlParser.RULE_dynamic_returning_clause = 913; +OracleSqlParser.RULE_data_manipulation_language_statements = 914; +OracleSqlParser.RULE_cursor_manipulation_statements = 915; +OracleSqlParser.RULE_close_statement = 916; +OracleSqlParser.RULE_open_statement = 917; +OracleSqlParser.RULE_fetch_statement = 918; +OracleSqlParser.RULE_variable_or_collection = 919; +OracleSqlParser.RULE_open_for_statement = 920; +OracleSqlParser.RULE_transaction_control_statements = 921; +OracleSqlParser.RULE_set_transaction_command = 922; +OracleSqlParser.RULE_set_constraint_command = 923; +OracleSqlParser.RULE_commit_statement = 924; +OracleSqlParser.RULE_write_clause = 925; +OracleSqlParser.RULE_rollback_statement = 926; +OracleSqlParser.RULE_savepoint_statement = 927; +OracleSqlParser.RULE_collection_method_call = 928; +OracleSqlParser.RULE_explain_statement = 929; +OracleSqlParser.RULE_select_only_statement = 930; +OracleSqlParser.RULE_select_statement = 931; +OracleSqlParser.RULE_with_clause = 932; +OracleSqlParser.RULE_with_factoring_clause = 933; +OracleSqlParser.RULE_subquery_factoring_clause = 934; +OracleSqlParser.RULE_search_clause = 935; +OracleSqlParser.RULE_cycle_clause = 936; +OracleSqlParser.RULE_subav_factoring_clause = 937; +OracleSqlParser.RULE_subav_clause = 938; +OracleSqlParser.RULE_hierarchies_clause = 939; +OracleSqlParser.RULE_filter_clauses = 940; +OracleSqlParser.RULE_filter_clause = 941; +OracleSqlParser.RULE_add_calcs_clause = 942; +OracleSqlParser.RULE_add_calc_meas_clause = 943; +OracleSqlParser.RULE_subquery = 944; +OracleSqlParser.RULE_subquery_basic_elements = 945; +OracleSqlParser.RULE_subquery_operation_part = 946; +OracleSqlParser.RULE_query_block = 947; +OracleSqlParser.RULE_selected_list = 948; +OracleSqlParser.RULE_from_clause = 949; +OracleSqlParser.RULE_select_list_elements = 950; +OracleSqlParser.RULE_table_ref_list = 951; +OracleSqlParser.RULE_table_ref = 952; +OracleSqlParser.RULE_table_ref_aux = 953; +OracleSqlParser.RULE_table_ref_aux_internal = 954; +OracleSqlParser.RULE_join_clause = 955; +OracleSqlParser.RULE_join_on_part = 956; +OracleSqlParser.RULE_join_using_part = 957; +OracleSqlParser.RULE_outer_join_type = 958; +OracleSqlParser.RULE_query_partition_clause = 959; +OracleSqlParser.RULE_flashback_query_clause = 960; +OracleSqlParser.RULE_pivot_clause = 961; +OracleSqlParser.RULE_pivot_element = 962; +OracleSqlParser.RULE_pivot_for_clause = 963; +OracleSqlParser.RULE_pivot_in_clause = 964; +OracleSqlParser.RULE_pivot_in_clause_element = 965; +OracleSqlParser.RULE_pivot_in_clause_elements = 966; +OracleSqlParser.RULE_unpivot_clause = 967; +OracleSqlParser.RULE_unpivot_in_clause = 968; +OracleSqlParser.RULE_unpivot_in_elements = 969; +OracleSqlParser.RULE_hierarchical_query_clause = 970; +OracleSqlParser.RULE_start_part = 971; +OracleSqlParser.RULE_group_by_clause = 972; +OracleSqlParser.RULE_group_by_elements = 973; +OracleSqlParser.RULE_rollup_cube_clause = 974; +OracleSqlParser.RULE_grouping_sets_clause = 975; +OracleSqlParser.RULE_grouping_sets_elements = 976; +OracleSqlParser.RULE_having_clause = 977; +OracleSqlParser.RULE_model_clause = 978; +OracleSqlParser.RULE_cell_reference_options = 979; +OracleSqlParser.RULE_return_rows_clause = 980; +OracleSqlParser.RULE_reference_model = 981; +OracleSqlParser.RULE_main_model = 982; +OracleSqlParser.RULE_model_column_clauses = 983; +OracleSqlParser.RULE_model_column_partition_part = 984; +OracleSqlParser.RULE_model_column_list = 985; +OracleSqlParser.RULE_model_column = 986; +OracleSqlParser.RULE_model_rules_clause = 987; +OracleSqlParser.RULE_model_rules_part = 988; +OracleSqlParser.RULE_model_rules_element = 989; +OracleSqlParser.RULE_cell_assignment = 990; +OracleSqlParser.RULE_model_iterate_clause = 991; +OracleSqlParser.RULE_until_part = 992; +OracleSqlParser.RULE_order_by_clause = 993; +OracleSqlParser.RULE_order_by_elements = 994; +OracleSqlParser.RULE_offset_clause = 995; +OracleSqlParser.RULE_fetch_clause = 996; +OracleSqlParser.RULE_for_update_clause = 997; +OracleSqlParser.RULE_for_update_of_part = 998; +OracleSqlParser.RULE_for_update_options = 999; +OracleSqlParser.RULE_update_statement = 1000; +OracleSqlParser.RULE_update_set_clause = 1001; +OracleSqlParser.RULE_column_based_update_set_clause = 1002; +OracleSqlParser.RULE_delete_statement = 1003; +OracleSqlParser.RULE_insert_statement = 1004; +OracleSqlParser.RULE_single_table_insert = 1005; +OracleSqlParser.RULE_multi_table_insert = 1006; +OracleSqlParser.RULE_multi_table_element = 1007; +OracleSqlParser.RULE_conditional_insert_clause = 1008; +OracleSqlParser.RULE_conditional_insert_when_part = 1009; +OracleSqlParser.RULE_conditional_insert_else_part = 1010; +OracleSqlParser.RULE_insert_into_clause = 1011; +OracleSqlParser.RULE_values_clause = 1012; +OracleSqlParser.RULE_merge_statement = 1013; +OracleSqlParser.RULE_merge_update_clause = 1014; +OracleSqlParser.RULE_merge_element = 1015; +OracleSqlParser.RULE_merge_update_delete_part = 1016; +OracleSqlParser.RULE_merge_insert_clause = 1017; +OracleSqlParser.RULE_selected_tableview = 1018; +OracleSqlParser.RULE_lock_table_statement = 1019; +OracleSqlParser.RULE_wait_nowait_part = 1020; +OracleSqlParser.RULE_lock_table_element = 1021; +OracleSqlParser.RULE_lock_mode = 1022; +OracleSqlParser.RULE_general_table_ref = 1023; +OracleSqlParser.RULE_static_returning_clause = 1024; +OracleSqlParser.RULE_error_logging_clause = 1025; +OracleSqlParser.RULE_error_logging_into_part = 1026; +OracleSqlParser.RULE_error_logging_reject_part = 1027; +OracleSqlParser.RULE_dml_table_expression_clause = 1028; +OracleSqlParser.RULE_table_collection_expression = 1029; +OracleSqlParser.RULE_subquery_restriction_clause = 1030; +OracleSqlParser.RULE_sample_clause = 1031; +OracleSqlParser.RULE_seed_part = 1032; +OracleSqlParser.RULE_condition = 1033; +OracleSqlParser.RULE_expressions_ = 1034; +OracleSqlParser.RULE_expression = 1035; +OracleSqlParser.RULE_cursor_expression = 1036; +OracleSqlParser.RULE_logical_expression = 1037; +OracleSqlParser.RULE_unary_logical_expression = 1038; +OracleSqlParser.RULE_unary_logical_operation = 1039; +OracleSqlParser.RULE_logical_operation = 1040; +OracleSqlParser.RULE_multiset_expression = 1041; +OracleSqlParser.RULE_relational_expression = 1042; +OracleSqlParser.RULE_compound_expression = 1043; +OracleSqlParser.RULE_relational_operator = 1044; +OracleSqlParser.RULE_in_elements = 1045; +OracleSqlParser.RULE_between_elements = 1046; +OracleSqlParser.RULE_concatenation = 1047; +OracleSqlParser.RULE_interval_expression = 1048; +OracleSqlParser.RULE_model_expression = 1049; +OracleSqlParser.RULE_model_expression_element = 1050; +OracleSqlParser.RULE_single_column_for_loop = 1051; +OracleSqlParser.RULE_multi_column_for_loop = 1052; +OracleSqlParser.RULE_unary_expression = 1053; +OracleSqlParser.RULE_implicit_cursor_expression = 1054; +OracleSqlParser.RULE_collection_expression = 1055; +OracleSqlParser.RULE_case_statement = 1056; +OracleSqlParser.RULE_simple_case_statement = 1057; +OracleSqlParser.RULE_searched_case_statement = 1058; +OracleSqlParser.RULE_case_when_part_statement = 1059; +OracleSqlParser.RULE_case_else_part_statement = 1060; +OracleSqlParser.RULE_case_expression = 1061; +OracleSqlParser.RULE_simple_case_expression = 1062; +OracleSqlParser.RULE_searched_case_expression = 1063; +OracleSqlParser.RULE_case_when_part_expression = 1064; +OracleSqlParser.RULE_case_else_part_expression = 1065; +OracleSqlParser.RULE_atom = 1066; +OracleSqlParser.RULE_quantified_expression = 1067; +OracleSqlParser.RULE_string_function = 1068; +OracleSqlParser.RULE_standard_function = 1069; +OracleSqlParser.RULE_json_function = 1070; +OracleSqlParser.RULE_json_object_content = 1071; +OracleSqlParser.RULE_json_object_entry = 1072; +OracleSqlParser.RULE_json_table_clause = 1073; +OracleSqlParser.RULE_json_array_element = 1074; +OracleSqlParser.RULE_json_on_null_clause = 1075; +OracleSqlParser.RULE_json_return_clause = 1076; +OracleSqlParser.RULE_json_transform_op = 1077; +OracleSqlParser.RULE_json_column_clause = 1078; +OracleSqlParser.RULE_json_column_definition = 1079; +OracleSqlParser.RULE_json_query_returning_clause = 1080; +OracleSqlParser.RULE_json_query_return_type = 1081; +OracleSqlParser.RULE_json_query_wrapper_clause = 1082; +OracleSqlParser.RULE_json_query_on_error_clause = 1083; +OracleSqlParser.RULE_json_query_on_empty_clause = 1084; +OracleSqlParser.RULE_json_value_return_clause = 1085; +OracleSqlParser.RULE_json_value_return_type = 1086; +OracleSqlParser.RULE_json_value_on_mismatch_clause = 1087; +OracleSqlParser.RULE_literal = 1088; +OracleSqlParser.RULE_numeric_function_wrapper = 1089; +OracleSqlParser.RULE_numeric_function = 1090; +OracleSqlParser.RULE_listagg_overflow_clause = 1091; +OracleSqlParser.RULE_other_function = 1092; +OracleSqlParser.RULE_over_clause_keyword = 1093; +OracleSqlParser.RULE_within_or_over_clause_keyword = 1094; +OracleSqlParser.RULE_standard_prediction_function_keyword = 1095; +OracleSqlParser.RULE_over_clause = 1096; +OracleSqlParser.RULE_windowing_clause = 1097; +OracleSqlParser.RULE_windowing_type = 1098; +OracleSqlParser.RULE_windowing_elements = 1099; +OracleSqlParser.RULE_using_clause = 1100; +OracleSqlParser.RULE_using_element = 1101; +OracleSqlParser.RULE_collect_order_by_part = 1102; +OracleSqlParser.RULE_within_or_over_part = 1103; +OracleSqlParser.RULE_string_delimiter = 1104; +OracleSqlParser.RULE_cost_matrix_clause = 1105; +OracleSqlParser.RULE_xml_passing_clause = 1106; +OracleSqlParser.RULE_xml_attributes_clause = 1107; +OracleSqlParser.RULE_xml_namespaces_clause = 1108; +OracleSqlParser.RULE_xml_table_column = 1109; +OracleSqlParser.RULE_xml_general_default_part = 1110; +OracleSqlParser.RULE_xml_multiuse_expression_element = 1111; +OracleSqlParser.RULE_xmlroot_param_version_part = 1112; +OracleSqlParser.RULE_xmlroot_param_standalone_part = 1113; +OracleSqlParser.RULE_xmlserialize_param_enconding_part = 1114; +OracleSqlParser.RULE_xmlserialize_param_version_part = 1115; +OracleSqlParser.RULE_xmlserialize_param_ident_part = 1116; +OracleSqlParser.RULE_annotations_clause = 1117; +OracleSqlParser.RULE_annotations_list = 1118; +OracleSqlParser.RULE_annotation = 1119; +OracleSqlParser.RULE_sql_plus_command_no_semicolon = 1120; +OracleSqlParser.RULE_sql_plus_command = 1121; +OracleSqlParser.RULE_start_command = 1122; +OracleSqlParser.RULE_whenever_command = 1123; +OracleSqlParser.RULE_set_command = 1124; +OracleSqlParser.RULE_timing_command = 1125; +OracleSqlParser.RULE_clear_command = 1126; +OracleSqlParser.RULE_partition_extension_clause = 1127; +OracleSqlParser.RULE_column_alias = 1128; +OracleSqlParser.RULE_table_alias = 1129; +OracleSqlParser.RULE_where_clause = 1130; +OracleSqlParser.RULE_into_clause = 1131; +OracleSqlParser.RULE_xml_column_name = 1132; +OracleSqlParser.RULE_cost_class_name = 1133; +OracleSqlParser.RULE_attribute_name = 1134; +OracleSqlParser.RULE_savepoint_name = 1135; +OracleSqlParser.RULE_rollback_segment_name = 1136; +OracleSqlParser.RULE_schema_name = 1137; +OracleSqlParser.RULE_routine_name = 1138; +OracleSqlParser.RULE_package_name = 1139; +OracleSqlParser.RULE_implementation_type_name = 1140; +OracleSqlParser.RULE_parameter_name = 1141; +OracleSqlParser.RULE_reference_model_name = 1142; +OracleSqlParser.RULE_main_model_name = 1143; +OracleSqlParser.RULE_container_tableview_name = 1144; +OracleSqlParser.RULE_aggregate_function_name = 1145; +OracleSqlParser.RULE_query_name = 1146; +OracleSqlParser.RULE_grantee_name = 1147; +OracleSqlParser.RULE_role_name = 1148; +OracleSqlParser.RULE_constraint_name = 1149; +OracleSqlParser.RULE_label_name = 1150; +OracleSqlParser.RULE_type_name = 1151; +OracleSqlParser.RULE_sequence_name = 1152; +OracleSqlParser.RULE_exception_name = 1153; +OracleSqlParser.RULE_function_name = 1154; +OracleSqlParser.RULE_procedure_name = 1155; +OracleSqlParser.RULE_trigger_name = 1156; +OracleSqlParser.RULE_variable_name = 1157; +OracleSqlParser.RULE_index_name = 1158; +OracleSqlParser.RULE_cursor_name = 1159; +OracleSqlParser.RULE_record_name = 1160; +OracleSqlParser.RULE_link_name = 1161; +OracleSqlParser.RULE_local_link_name = 1162; +OracleSqlParser.RULE_connection_qualifier = 1163; +OracleSqlParser.RULE_column_name = 1164; +OracleSqlParser.RULE_tableview_name = 1165; +OracleSqlParser.RULE_xmltable = 1166; +OracleSqlParser.RULE_char_set_name = 1167; +OracleSqlParser.RULE_synonym_name = 1168; +OracleSqlParser.RULE_schema_object_name = 1169; +OracleSqlParser.RULE_dir_object_name = 1170; +OracleSqlParser.RULE_user_object_name = 1171; +OracleSqlParser.RULE_grant_object_name = 1172; +OracleSqlParser.RULE_column_list = 1173; +OracleSqlParser.RULE_paren_column_list = 1174; +OracleSqlParser.RULE_keep_clause = 1175; +OracleSqlParser.RULE_function_argument = 1176; +OracleSqlParser.RULE_function_argument_analytic = 1177; +OracleSqlParser.RULE_function_argument_modeling = 1178; +OracleSqlParser.RULE_respect_or_ignore_nulls = 1179; +OracleSqlParser.RULE_argument = 1180; +OracleSqlParser.RULE_type_spec = 1181; +OracleSqlParser.RULE_datatype = 1182; +OracleSqlParser.RULE_precision_part = 1183; +OracleSqlParser.RULE_native_datatype_element = 1184; +OracleSqlParser.RULE_bind_variable = 1185; +OracleSqlParser.RULE_general_element = 1186; +OracleSqlParser.RULE_general_element_part = 1187; +OracleSqlParser.RULE_table_element = 1188; +OracleSqlParser.RULE_object_privilege = 1189; +OracleSqlParser.RULE_system_privilege = 1190; +OracleSqlParser.RULE_constant = 1191; +OracleSqlParser.RULE_numeric = 1192; +OracleSqlParser.RULE_numeric_negative = 1193; +OracleSqlParser.RULE_quoted_string = 1194; +OracleSqlParser.RULE_identifier = 1195; +OracleSqlParser.RULE_id_expression = 1196; +OracleSqlParser.RULE_inquiry_directive = 1197; +OracleSqlParser.RULE_outer_join_sign = 1198; +OracleSqlParser.RULE_regular_id = 1199; +OracleSqlParser.RULE_non_reserved_keywords_in_18c = 1200; +OracleSqlParser.RULE_non_reserved_keywords_in_12c = 1201; +OracleSqlParser.RULE_non_reserved_keywords_pre12c = 1202; + +class Sql_scriptContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sql_script; + } + + EOF() { + return this.getToken(OracleSqlParser.EOF, 0); + }; + + sql_plus_command_no_semicolon() { + return this.getTypedRuleContext(Sql_plus_command_no_semicolonContext,0); + }; + + SEMICOLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SEMICOLON); + } else { + return this.getToken(OracleSqlParser.SEMICOLON, i); + } + }; + + + SOLIDUS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SOLIDUS); + } else { + return this.getToken(OracleSqlParser.SOLIDUS, i); + } + }; + + + sql_plus_command = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_plus_commandContext); + } else { + return this.getTypedRuleContext(Sql_plus_commandContext,i); + } + }; + + unit_statement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Unit_statementContext); + } else { + return this.getTypedRuleContext(Unit_statementContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSql_script(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Unit_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_unit_statement; + } + + alter_analytic_view() { + return this.getTypedRuleContext(Alter_analytic_viewContext,0); + }; + + alter_attribute_dimension() { + return this.getTypedRuleContext(Alter_attribute_dimensionContext,0); + }; + + alter_audit_policy() { + return this.getTypedRuleContext(Alter_audit_policyContext,0); + }; + + alter_cluster() { + return this.getTypedRuleContext(Alter_clusterContext,0); + }; + + alter_database() { + return this.getTypedRuleContext(Alter_databaseContext,0); + }; + + alter_database_link() { + return this.getTypedRuleContext(Alter_database_linkContext,0); + }; + + alter_dimension() { + return this.getTypedRuleContext(Alter_dimensionContext,0); + }; + + alter_diskgroup() { + return this.getTypedRuleContext(Alter_diskgroupContext,0); + }; + + alter_flashback_archive() { + return this.getTypedRuleContext(Alter_flashback_archiveContext,0); + }; + + alter_function() { + return this.getTypedRuleContext(Alter_functionContext,0); + }; + + alter_hierarchy() { + return this.getTypedRuleContext(Alter_hierarchyContext,0); + }; + + alter_index() { + return this.getTypedRuleContext(Alter_indexContext,0); + }; + + alter_inmemory_join_group() { + return this.getTypedRuleContext(Alter_inmemory_join_groupContext,0); + }; + + alter_java() { + return this.getTypedRuleContext(Alter_javaContext,0); + }; + + alter_library() { + return this.getTypedRuleContext(Alter_libraryContext,0); + }; + + alter_lockdown_profile() { + return this.getTypedRuleContext(Alter_lockdown_profileContext,0); + }; + + alter_materialized_view() { + return this.getTypedRuleContext(Alter_materialized_viewContext,0); + }; + + alter_materialized_view_log() { + return this.getTypedRuleContext(Alter_materialized_view_logContext,0); + }; + + alter_materialized_zonemap() { + return this.getTypedRuleContext(Alter_materialized_zonemapContext,0); + }; + + alter_operator() { + return this.getTypedRuleContext(Alter_operatorContext,0); + }; + + alter_outline() { + return this.getTypedRuleContext(Alter_outlineContext,0); + }; + + alter_package() { + return this.getTypedRuleContext(Alter_packageContext,0); + }; + + alter_pmem_filestore() { + return this.getTypedRuleContext(Alter_pmem_filestoreContext,0); + }; + + alter_procedure() { + return this.getTypedRuleContext(Alter_procedureContext,0); + }; + + alter_resource_cost() { + return this.getTypedRuleContext(Alter_resource_costContext,0); + }; + + alter_role() { + return this.getTypedRuleContext(Alter_roleContext,0); + }; + + alter_rollback_segment() { + return this.getTypedRuleContext(Alter_rollback_segmentContext,0); + }; + + alter_sequence() { + return this.getTypedRuleContext(Alter_sequenceContext,0); + }; + + alter_session() { + return this.getTypedRuleContext(Alter_sessionContext,0); + }; + + alter_synonym() { + return this.getTypedRuleContext(Alter_synonymContext,0); + }; + + alter_table() { + return this.getTypedRuleContext(Alter_tableContext,0); + }; + + alter_tablespace() { + return this.getTypedRuleContext(Alter_tablespaceContext,0); + }; + + alter_tablespace_set() { + return this.getTypedRuleContext(Alter_tablespace_setContext,0); + }; + + alter_trigger() { + return this.getTypedRuleContext(Alter_triggerContext,0); + }; + + alter_type() { + return this.getTypedRuleContext(Alter_typeContext,0); + }; + + alter_user() { + return this.getTypedRuleContext(Alter_userContext,0); + }; + + alter_view() { + return this.getTypedRuleContext(Alter_viewContext,0); + }; + + anonymous_block() { + return this.getTypedRuleContext(Anonymous_blockContext,0); + }; + + call_statement() { + return this.getTypedRuleContext(Call_statementContext,0); + }; + + create_analytic_view() { + return this.getTypedRuleContext(Create_analytic_viewContext,0); + }; + + create_attribute_dimension() { + return this.getTypedRuleContext(Create_attribute_dimensionContext,0); + }; + + create_audit_policy() { + return this.getTypedRuleContext(Create_audit_policyContext,0); + }; + + create_cluster() { + return this.getTypedRuleContext(Create_clusterContext,0); + }; + + create_context() { + return this.getTypedRuleContext(Create_contextContext,0); + }; + + create_controlfile() { + return this.getTypedRuleContext(Create_controlfileContext,0); + }; + + create_schema() { + return this.getTypedRuleContext(Create_schemaContext,0); + }; + + create_database() { + return this.getTypedRuleContext(Create_databaseContext,0); + }; + + create_database_link() { + return this.getTypedRuleContext(Create_database_linkContext,0); + }; + + create_dimension() { + return this.getTypedRuleContext(Create_dimensionContext,0); + }; + + create_directory() { + return this.getTypedRuleContext(Create_directoryContext,0); + }; + + create_diskgroup() { + return this.getTypedRuleContext(Create_diskgroupContext,0); + }; + + create_edition() { + return this.getTypedRuleContext(Create_editionContext,0); + }; + + create_flashback_archive() { + return this.getTypedRuleContext(Create_flashback_archiveContext,0); + }; + + create_function_body() { + return this.getTypedRuleContext(Create_function_bodyContext,0); + }; + + create_hierarchy() { + return this.getTypedRuleContext(Create_hierarchyContext,0); + }; + + create_index() { + return this.getTypedRuleContext(Create_indexContext,0); + }; + + create_inmemory_join_group() { + return this.getTypedRuleContext(Create_inmemory_join_groupContext,0); + }; + + create_java() { + return this.getTypedRuleContext(Create_javaContext,0); + }; + + create_library() { + return this.getTypedRuleContext(Create_libraryContext,0); + }; + + create_lockdown_profile() { + return this.getTypedRuleContext(Create_lockdown_profileContext,0); + }; + + create_materialized_view() { + return this.getTypedRuleContext(Create_materialized_viewContext,0); + }; + + create_materialized_view_log() { + return this.getTypedRuleContext(Create_materialized_view_logContext,0); + }; + + create_materialized_zonemap() { + return this.getTypedRuleContext(Create_materialized_zonemapContext,0); + }; + + create_operator() { + return this.getTypedRuleContext(Create_operatorContext,0); + }; + + create_outline() { + return this.getTypedRuleContext(Create_outlineContext,0); + }; + + create_package() { + return this.getTypedRuleContext(Create_packageContext,0); + }; + + create_package_body() { + return this.getTypedRuleContext(Create_package_bodyContext,0); + }; + + create_pmem_filestore() { + return this.getTypedRuleContext(Create_pmem_filestoreContext,0); + }; + + create_procedure_body() { + return this.getTypedRuleContext(Create_procedure_bodyContext,0); + }; + + create_profile() { + return this.getTypedRuleContext(Create_profileContext,0); + }; + + create_restore_point() { + return this.getTypedRuleContext(Create_restore_pointContext,0); + }; + + create_role() { + return this.getTypedRuleContext(Create_roleContext,0); + }; + + create_rollback_segment() { + return this.getTypedRuleContext(Create_rollback_segmentContext,0); + }; + + create_sequence() { + return this.getTypedRuleContext(Create_sequenceContext,0); + }; + + create_spfile() { + return this.getTypedRuleContext(Create_spfileContext,0); + }; + + create_synonym() { + return this.getTypedRuleContext(Create_synonymContext,0); + }; + + create_table() { + return this.getTypedRuleContext(Create_tableContext,0); + }; + + create_tablespace() { + return this.getTypedRuleContext(Create_tablespaceContext,0); + }; + + create_tablespace_set() { + return this.getTypedRuleContext(Create_tablespace_setContext,0); + }; + + create_trigger() { + return this.getTypedRuleContext(Create_triggerContext,0); + }; + + create_type() { + return this.getTypedRuleContext(Create_typeContext,0); + }; + + create_user() { + return this.getTypedRuleContext(Create_userContext,0); + }; + + create_view() { + return this.getTypedRuleContext(Create_viewContext,0); + }; + + drop_analytic_view() { + return this.getTypedRuleContext(Drop_analytic_viewContext,0); + }; + + drop_attribute_dimension() { + return this.getTypedRuleContext(Drop_attribute_dimensionContext,0); + }; + + drop_audit_policy() { + return this.getTypedRuleContext(Drop_audit_policyContext,0); + }; + + drop_cluster() { + return this.getTypedRuleContext(Drop_clusterContext,0); + }; + + drop_context() { + return this.getTypedRuleContext(Drop_contextContext,0); + }; + + drop_database() { + return this.getTypedRuleContext(Drop_databaseContext,0); + }; + + drop_database_link() { + return this.getTypedRuleContext(Drop_database_linkContext,0); + }; + + drop_directory() { + return this.getTypedRuleContext(Drop_directoryContext,0); + }; + + drop_diskgroup() { + return this.getTypedRuleContext(Drop_diskgroupContext,0); + }; + + drop_edition() { + return this.getTypedRuleContext(Drop_editionContext,0); + }; + + drop_flashback_archive() { + return this.getTypedRuleContext(Drop_flashback_archiveContext,0); + }; + + drop_function() { + return this.getTypedRuleContext(Drop_functionContext,0); + }; + + drop_hierarchy() { + return this.getTypedRuleContext(Drop_hierarchyContext,0); + }; + + drop_index() { + return this.getTypedRuleContext(Drop_indexContext,0); + }; + + drop_indextype() { + return this.getTypedRuleContext(Drop_indextypeContext,0); + }; + + drop_inmemory_join_group() { + return this.getTypedRuleContext(Drop_inmemory_join_groupContext,0); + }; + + drop_java() { + return this.getTypedRuleContext(Drop_javaContext,0); + }; + + drop_library() { + return this.getTypedRuleContext(Drop_libraryContext,0); + }; + + drop_lockdown_profile() { + return this.getTypedRuleContext(Drop_lockdown_profileContext,0); + }; + + drop_materialized_view() { + return this.getTypedRuleContext(Drop_materialized_viewContext,0); + }; + + drop_materialized_view_log() { + return this.getTypedRuleContext(Drop_materialized_view_logContext,0); + }; + + drop_materialized_zonemap() { + return this.getTypedRuleContext(Drop_materialized_zonemapContext,0); + }; + + drop_operator() { + return this.getTypedRuleContext(Drop_operatorContext,0); + }; + + drop_outline() { + return this.getTypedRuleContext(Drop_outlineContext,0); + }; + + drop_package() { + return this.getTypedRuleContext(Drop_packageContext,0); + }; + + drop_pmem_filestore() { + return this.getTypedRuleContext(Drop_pmem_filestoreContext,0); + }; + + drop_procedure() { + return this.getTypedRuleContext(Drop_procedureContext,0); + }; + + drop_restore_point() { + return this.getTypedRuleContext(Drop_restore_pointContext,0); + }; + + drop_role() { + return this.getTypedRuleContext(Drop_roleContext,0); + }; + + drop_rollback_segment() { + return this.getTypedRuleContext(Drop_rollback_segmentContext,0); + }; + + drop_sequence() { + return this.getTypedRuleContext(Drop_sequenceContext,0); + }; + + drop_synonym() { + return this.getTypedRuleContext(Drop_synonymContext,0); + }; + + drop_table() { + return this.getTypedRuleContext(Drop_tableContext,0); + }; + + drop_tablespace() { + return this.getTypedRuleContext(Drop_tablespaceContext,0); + }; + + drop_tablespace_set() { + return this.getTypedRuleContext(Drop_tablespace_setContext,0); + }; + + drop_trigger() { + return this.getTypedRuleContext(Drop_triggerContext,0); + }; + + drop_type() { + return this.getTypedRuleContext(Drop_typeContext,0); + }; + + drop_user() { + return this.getTypedRuleContext(Drop_userContext,0); + }; + + drop_view() { + return this.getTypedRuleContext(Drop_viewContext,0); + }; + + administer_key_management() { + return this.getTypedRuleContext(Administer_key_managementContext,0); + }; + + analyze() { + return this.getTypedRuleContext(AnalyzeContext,0); + }; + + associate_statistics() { + return this.getTypedRuleContext(Associate_statisticsContext,0); + }; + + audit_traditional() { + return this.getTypedRuleContext(Audit_traditionalContext,0); + }; + + comment_on_column() { + return this.getTypedRuleContext(Comment_on_columnContext,0); + }; + + comment_on_materialized() { + return this.getTypedRuleContext(Comment_on_materializedContext,0); + }; + + comment_on_table() { + return this.getTypedRuleContext(Comment_on_tableContext,0); + }; + + data_manipulation_language_statements() { + return this.getTypedRuleContext(Data_manipulation_language_statementsContext,0); + }; + + disassociate_statistics() { + return this.getTypedRuleContext(Disassociate_statisticsContext,0); + }; + + flashback_table() { + return this.getTypedRuleContext(Flashback_tableContext,0); + }; + + grant_statement() { + return this.getTypedRuleContext(Grant_statementContext,0); + }; + + noaudit_statement() { + return this.getTypedRuleContext(Noaudit_statementContext,0); + }; + + purge_statement() { + return this.getTypedRuleContext(Purge_statementContext,0); + }; + + rename_object() { + return this.getTypedRuleContext(Rename_objectContext,0); + }; + + revoke_statement() { + return this.getTypedRuleContext(Revoke_statementContext,0); + }; + + transaction_control_statements() { + return this.getTypedRuleContext(Transaction_control_statementsContext,0); + }; + + truncate_cluster() { + return this.getTypedRuleContext(Truncate_clusterContext,0); + }; + + truncate_table() { + return this.getTypedRuleContext(Truncate_tableContext,0); + }; + + unified_auditing() { + return this.getTypedRuleContext(Unified_auditingContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUnit_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_diskgroupContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_diskgroup; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + DISKGROUP() { + return this.getToken(OracleSqlParser.DISKGROUP, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + undrop_disk_clause() { + return this.getTypedRuleContext(Undrop_disk_clauseContext,0); + }; + + diskgroup_availability() { + return this.getTypedRuleContext(Diskgroup_availabilityContext,0); + }; + + enable_disable_volume() { + return this.getTypedRuleContext(Enable_disable_volumeContext,0); + }; + + resize_disk_clause() { + return this.getTypedRuleContext(Resize_disk_clauseContext,0); + }; + + replace_disk_clause() { + return this.getTypedRuleContext(Replace_disk_clauseContext,0); + }; + + rename_disk_clause() { + return this.getTypedRuleContext(Rename_disk_clauseContext,0); + }; + + disk_online_clause() { + return this.getTypedRuleContext(Disk_online_clauseContext,0); + }; + + disk_offline_clause() { + return this.getTypedRuleContext(Disk_offline_clauseContext,0); + }; + + rebalance_diskgroup_clause() { + return this.getTypedRuleContext(Rebalance_diskgroup_clauseContext,0); + }; + + check_diskgroup_clause() { + return this.getTypedRuleContext(Check_diskgroup_clauseContext,0); + }; + + diskgroup_template_clauses() { + return this.getTypedRuleContext(Diskgroup_template_clausesContext,0); + }; + + diskgroup_directory_clauses() { + return this.getTypedRuleContext(Diskgroup_directory_clausesContext,0); + }; + + diskgroup_alias_clauses() { + return this.getTypedRuleContext(Diskgroup_alias_clausesContext,0); + }; + + diskgroup_volume_clauses() { + return this.getTypedRuleContext(Diskgroup_volume_clausesContext,0); + }; + + diskgroup_attributes() { + return this.getTypedRuleContext(Diskgroup_attributesContext,0); + }; + + drop_diskgroup_file_clause() { + return this.getTypedRuleContext(Drop_diskgroup_file_clauseContext,0); + }; + + convert_redundancy_clause() { + return this.getTypedRuleContext(Convert_redundancy_clauseContext,0); + }; + + usergroup_clauses() { + return this.getTypedRuleContext(Usergroup_clausesContext,0); + }; + + user_clauses() { + return this.getTypedRuleContext(User_clausesContext,0); + }; + + file_permissions_clause() { + return this.getTypedRuleContext(File_permissions_clauseContext,0); + }; + + file_owner_clause() { + return this.getTypedRuleContext(File_owner_clauseContext,0); + }; + + scrub_clause() { + return this.getTypedRuleContext(Scrub_clauseContext,0); + }; + + quotagroup_clauses() { + return this.getTypedRuleContext(Quotagroup_clausesContext,0); + }; + + filegroup_clauses() { + return this.getTypedRuleContext(Filegroup_clausesContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + add_disk_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Add_disk_clauseContext); + } else { + return this.getTypedRuleContext(Add_disk_clauseContext,i); + } + }; + + drop_disk_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Drop_disk_clauseContext); + } else { + return this.getTypedRuleContext(Drop_disk_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_diskgroup(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_disk_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_disk_clause; + this.sn = null; + this.fgn = null; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + DISK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DISK); + } else { + return this.getToken(OracleSqlParser.DISK, i); + } + }; + + + qualified_disk_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Qualified_disk_clauseContext); + } else { + return this.getTypedRuleContext(Qualified_disk_clauseContext,i); + } + }; + + SITE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SITE); + } else { + return this.getToken(OracleSqlParser.SITE, i); + } + }; + + + quorum_regular = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Quorum_regularContext); + } else { + return this.getTypedRuleContext(Quorum_regularContext,i); + } + }; + + FAILGROUP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FAILGROUP); + } else { + return this.getToken(OracleSqlParser.FAILGROUP, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_disk_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_disk_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_disk_clause; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + DISK() { + return this.getToken(OracleSqlParser.DISK, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + DISKS() { + return this.getToken(OracleSqlParser.DISKS, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + FAILGROUP() { + return this.getToken(OracleSqlParser.FAILGROUP, 0); + }; + + quorum_regular() { + return this.getTypedRuleContext(Quorum_regularContext,0); + }; + + force_noforce = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Force_noforceContext); + } else { + return this.getTypedRuleContext(Force_noforceContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_disk_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Resize_disk_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_resize_disk_clause; + } + + RESIZE() { + return this.getToken(OracleSqlParser.RESIZE, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + SIZE() { + return this.getToken(OracleSqlParser.SIZE, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitResize_disk_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Replace_disk_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_replace_disk_clause; + } + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + DISK() { + return this.getToken(OracleSqlParser.DISK, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.WITH); + } else { + return this.getToken(OracleSqlParser.WITH, i); + } + }; + + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + force_noforce = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Force_noforceContext); + } else { + return this.getTypedRuleContext(Force_noforceContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + POWER() { + return this.getToken(OracleSqlParser.POWER, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + wait_nowait() { + return this.getTypedRuleContext(Wait_nowaitContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReplace_disk_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Wait_nowaitContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_wait_nowait; + } + + WAIT() { + return this.getToken(OracleSqlParser.WAIT, 0); + }; + + NOWAIT() { + return this.getToken(OracleSqlParser.NOWAIT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWait_nowait(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Rename_disk_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_rename_disk_clause; + } + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + DISK() { + return this.getToken(OracleSqlParser.DISK, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TO); + } else { + return this.getToken(OracleSqlParser.TO, i); + } + }; + + + DISKS() { + return this.getToken(OracleSqlParser.DISKS, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRename_disk_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Disk_online_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_disk_online_clause; + } + + ONLINE() { + return this.getToken(OracleSqlParser.ONLINE, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + POWER() { + return this.getToken(OracleSqlParser.POWER, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + wait_nowait() { + return this.getTypedRuleContext(Wait_nowaitContext,0); + }; + + DISK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DISK); + } else { + return this.getToken(OracleSqlParser.DISK, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + DISKS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DISKS); + } else { + return this.getToken(OracleSqlParser.DISKS, i); + } + }; + + + IN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.IN); + } else { + return this.getToken(OracleSqlParser.IN, i); + } + }; + + + FAILGROUP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FAILGROUP); + } else { + return this.getToken(OracleSqlParser.FAILGROUP, i); + } + }; + + + quorum_regular = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Quorum_regularContext); + } else { + return this.getTypedRuleContext(Quorum_regularContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDisk_online_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Disk_offline_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_disk_offline_clause; + } + + OFFLINE() { + return this.getToken(OracleSqlParser.OFFLINE, 0); + }; + + DISK() { + return this.getToken(OracleSqlParser.DISK, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + DISKS() { + return this.getToken(OracleSqlParser.DISKS, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + FAILGROUP() { + return this.getToken(OracleSqlParser.FAILGROUP, 0); + }; + + timeout_clause() { + return this.getTypedRuleContext(Timeout_clauseContext,0); + }; + + quorum_regular() { + return this.getTypedRuleContext(Quorum_regularContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDisk_offline_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Timeout_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_timeout_clause; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + AFTER() { + return this.getToken(OracleSqlParser.AFTER, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + M_LETTER() { + return this.getToken(OracleSqlParser.M_LETTER, 0); + }; + + H_LETTER() { + return this.getToken(OracleSqlParser.H_LETTER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTimeout_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Rebalance_diskgroup_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_rebalance_diskgroup_clause; + } + + REBALANCE() { + return this.getToken(OracleSqlParser.REBALANCE, 0); + }; + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + POWER() { + return this.getToken(OracleSqlParser.POWER, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + WITHOUT() { + return this.getToken(OracleSqlParser.WITHOUT, 0); + }; + + WAIT() { + return this.getToken(OracleSqlParser.WAIT, 0); + }; + + NOWAIT() { + return this.getToken(OracleSqlParser.NOWAIT, 0); + }; + + phase = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PhaseContext); + } else { + return this.getTypedRuleContext(PhaseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRebalance_diskgroup_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class PhaseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_phase; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPhase(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Check_diskgroup_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_check_diskgroup_clause; + } + + CHECK() { + return this.getToken(OracleSqlParser.CHECK, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + REPAIR() { + return this.getToken(OracleSqlParser.REPAIR, 0); + }; + + NOREPAIR() { + return this.getToken(OracleSqlParser.NOREPAIR, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCheck_diskgroup_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Diskgroup_template_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_diskgroup_template_clauses; + } + + TEMPLATE() { + return this.getToken(OracleSqlParser.TEMPLATE, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + qualified_template_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Qualified_template_clauseContext); + } else { + return this.getTypedRuleContext(Qualified_template_clauseContext,i); + } + }; + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDiskgroup_template_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Qualified_template_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_qualified_template_clause; + } + + ATTRIBUTES() { + return this.getToken(OracleSqlParser.ATTRIBUTES, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + redundancy_clause() { + return this.getTypedRuleContext(Redundancy_clauseContext,0); + }; + + striping_clause() { + return this.getTypedRuleContext(Striping_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitQualified_template_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Redundancy_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_redundancy_clause; + } + + MIRROR() { + return this.getToken(OracleSqlParser.MIRROR, 0); + }; + + HIGH() { + return this.getToken(OracleSqlParser.HIGH, 0); + }; + + UNPROTECTED() { + return this.getToken(OracleSqlParser.UNPROTECTED, 0); + }; + + PARITY() { + return this.getToken(OracleSqlParser.PARITY, 0); + }; + + DOUBLE() { + return this.getToken(OracleSqlParser.DOUBLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRedundancy_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Striping_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_striping_clause; + } + + FINE() { + return this.getToken(OracleSqlParser.FINE, 0); + }; + + COARSE() { + return this.getToken(OracleSqlParser.COARSE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStriping_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Force_noforceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_force_noforce; + } + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + NOFORCE() { + return this.getToken(OracleSqlParser.NOFORCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitForce_noforce(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Diskgroup_directory_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_diskgroup_directory_clauses; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + DIRECTORY() { + return this.getToken(OracleSqlParser.DIRECTORY, 0); + }; + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + force_noforce = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Force_noforceContext); + } else { + return this.getTypedRuleContext(Force_noforceContext,i); + } + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + dir_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Dir_nameContext); + } else { + return this.getTypedRuleContext(Dir_nameContext,i); + } + }; + + TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TO); + } else { + return this.getToken(OracleSqlParser.TO, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDiskgroup_directory_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dir_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dir_name; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDir_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Diskgroup_alias_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_diskgroup_alias_clauses; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + ALIAS() { + return this.getToken(OracleSqlParser.ALIAS, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + FOR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FOR); + } else { + return this.getToken(OracleSqlParser.FOR, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TO); + } else { + return this.getToken(OracleSqlParser.TO, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDiskgroup_alias_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Diskgroup_volume_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_diskgroup_volume_clauses; + } + + add_volume_clause() { + return this.getTypedRuleContext(Add_volume_clauseContext,0); + }; + + modify_volume_clause() { + return this.getTypedRuleContext(Modify_volume_clauseContext,0); + }; + + RESIZE() { + return this.getToken(OracleSqlParser.RESIZE, 0); + }; + + VOLUME() { + return this.getToken(OracleSqlParser.VOLUME, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + SIZE() { + return this.getToken(OracleSqlParser.SIZE, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDiskgroup_volume_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_volume_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_volume_clause; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + VOLUME() { + return this.getToken(OracleSqlParser.VOLUME, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + SIZE() { + return this.getToken(OracleSqlParser.SIZE, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + redundancy_clause() { + return this.getTypedRuleContext(Redundancy_clauseContext,0); + }; + + STRIPE_WIDTH() { + return this.getToken(OracleSqlParser.STRIPE_WIDTH, 0); + }; + + numeric = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(NumericContext); + } else { + return this.getTypedRuleContext(NumericContext,i); + } + }; + + STRIPE_COLUMNS() { + return this.getToken(OracleSqlParser.STRIPE_COLUMNS, 0); + }; + + K_LETTER() { + return this.getToken(OracleSqlParser.K_LETTER, 0); + }; + + M_LETTER() { + return this.getToken(OracleSqlParser.M_LETTER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_volume_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_volume_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_volume_clause; + } + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + VOLUME() { + return this.getToken(OracleSqlParser.VOLUME, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + MOUNTPATH() { + return this.getToken(OracleSqlParser.MOUNTPATH, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + USAGE() { + return this.getToken(OracleSqlParser.USAGE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_volume_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Diskgroup_attributesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_diskgroup_attributes; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + ATTRIBUTE() { + return this.getToken(OracleSqlParser.ATTRIBUTE, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDiskgroup_attributes(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_diskgroup_file_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_diskgroup_file_clause; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + FILE() { + return this.getToken(OracleSqlParser.FILE, 0); + }; + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_diskgroup_file_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Convert_redundancy_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_convert_redundancy_clause; + } + + CONVERT() { + return this.getToken(OracleSqlParser.CONVERT, 0); + }; + + REDUNDANCY() { + return this.getToken(OracleSqlParser.REDUNDANCY, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + FLEX() { + return this.getToken(OracleSqlParser.FLEX, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConvert_redundancy_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Usergroup_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_usergroup_clauses; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + USERGROUP() { + return this.getToken(OracleSqlParser.USERGROUP, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + MEMBER() { + return this.getToken(OracleSqlParser.MEMBER, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUsergroup_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class User_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_user_clauses; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + USER() { + return this.getToken(OracleSqlParser.USER, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.WITH); + } else { + return this.getToken(OracleSqlParser.WITH, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUser_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class File_permissions_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_file_permissions_clause; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + PERMISSION() { + return this.getToken(OracleSqlParser.PERMISSION, 0); + }; + + EQUALS_OP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EQUALS_OP); + } else { + return this.getToken(OracleSqlParser.EQUALS_OP, i); + } + }; + + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + FILE() { + return this.getToken(OracleSqlParser.FILE, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + OWNER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OWNER); + } else { + return this.getToken(OracleSqlParser.OWNER, i); + } + }; + + + GROUP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.GROUP); + } else { + return this.getToken(OracleSqlParser.GROUP, i); + } + }; + + + OTHER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OTHER); + } else { + return this.getToken(OracleSqlParser.OTHER, i); + } + }; + + + NONE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NONE); + } else { + return this.getToken(OracleSqlParser.NONE, i); + } + }; + + + READ = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.READ); + } else { + return this.getToken(OracleSqlParser.READ, i); + } + }; + + + ONLY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ONLY); + } else { + return this.getToken(OracleSqlParser.ONLY, i); + } + }; + + + WRITE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.WRITE); + } else { + return this.getToken(OracleSqlParser.WRITE, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFile_permissions_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class File_owner_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_file_owner_clause; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + OWNERSHIP() { + return this.getToken(OracleSqlParser.OWNERSHIP, 0); + }; + + EQUALS_OP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EQUALS_OP); + } else { + return this.getToken(OracleSqlParser.EQUALS_OP, i); + } + }; + + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + FILE() { + return this.getToken(OracleSqlParser.FILE, 0); + }; + + OWNER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OWNER); + } else { + return this.getToken(OracleSqlParser.OWNER, i); + } + }; + + + GROUP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.GROUP); + } else { + return this.getToken(OracleSqlParser.GROUP, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFile_owner_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Scrub_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_scrub_clause; + } + + SCRUB() { + return this.getToken(OracleSqlParser.SCRUB, 0); + }; + + FILE() { + return this.getToken(OracleSqlParser.FILE, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + DISK() { + return this.getToken(OracleSqlParser.DISK, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + POWER() { + return this.getToken(OracleSqlParser.POWER, 0); + }; + + wait_nowait() { + return this.getTypedRuleContext(Wait_nowaitContext,0); + }; + + force_noforce() { + return this.getTypedRuleContext(Force_noforceContext,0); + }; + + STOP() { + return this.getToken(OracleSqlParser.STOP, 0); + }; + + REPAIR() { + return this.getToken(OracleSqlParser.REPAIR, 0); + }; + + NOREPAIR() { + return this.getToken(OracleSqlParser.NOREPAIR, 0); + }; + + AUTO() { + return this.getToken(OracleSqlParser.AUTO, 0); + }; + + LOW() { + return this.getToken(OracleSqlParser.LOW, 0); + }; + + HIGH() { + return this.getToken(OracleSqlParser.HIGH, 0); + }; + + MAX() { + return this.getToken(OracleSqlParser.MAX, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitScrub_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Quotagroup_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_quotagroup_clauses; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + QUOTAGROUP() { + return this.getToken(OracleSqlParser.QUOTAGROUP, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + property_name() { + return this.getTypedRuleContext(Property_nameContext,0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + property_value() { + return this.getTypedRuleContext(Property_valueContext,0); + }; + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + MOVE() { + return this.getToken(OracleSqlParser.MOVE, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitQuotagroup_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Property_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_property_name; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitProperty_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Property_valueContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_property_value; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitProperty_value(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Filegroup_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_filegroup_clauses; + } + + add_filegroup_clause() { + return this.getTypedRuleContext(Add_filegroup_clauseContext,0); + }; + + modify_filegroup_clause() { + return this.getTypedRuleContext(Modify_filegroup_clauseContext,0); + }; + + move_to_filegroup_clause() { + return this.getTypedRuleContext(Move_to_filegroup_clauseContext,0); + }; + + drop_filegroup_clause() { + return this.getTypedRuleContext(Drop_filegroup_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFilegroup_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_filegroup_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_filegroup_clause; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + FILEGROUP() { + return this.getToken(OracleSqlParser.FILEGROUP, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + TEMPLATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TEMPLATE); + } else { + return this.getToken(OracleSqlParser.TEMPLATE, i); + } + }; + + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + CLUSTER() { + return this.getToken(OracleSqlParser.CLUSTER, 0); + }; + + VOLUME() { + return this.getToken(OracleSqlParser.VOLUME, 0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_filegroup_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_filegroup_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_filegroup_clause; + } + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + FILEGROUP() { + return this.getToken(OracleSqlParser.FILEGROUP, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_filegroup_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Move_to_filegroup_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_move_to_filegroup_clause; + } + + MOVE() { + return this.getToken(OracleSqlParser.MOVE, 0); + }; + + FILE() { + return this.getToken(OracleSqlParser.FILE, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + FILEGROUP() { + return this.getToken(OracleSqlParser.FILEGROUP, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMove_to_filegroup_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_filegroup_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_filegroup_clause; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + FILEGROUP() { + return this.getToken(OracleSqlParser.FILEGROUP, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_filegroup_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Quorum_regularContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_quorum_regular; + } + + QUORUM() { + return this.getToken(OracleSqlParser.QUORUM, 0); + }; + + REGULAR() { + return this.getToken(OracleSqlParser.REGULAR, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitQuorum_regular(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Undrop_disk_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_undrop_disk_clause; + } + + UNDROP() { + return this.getToken(OracleSqlParser.UNDROP, 0); + }; + + DISKS() { + return this.getToken(OracleSqlParser.DISKS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUndrop_disk_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Diskgroup_availabilityContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_diskgroup_availability; + } + + MOUNT() { + return this.getToken(OracleSqlParser.MOUNT, 0); + }; + + RESTRICTED() { + return this.getToken(OracleSqlParser.RESTRICTED, 0); + }; + + NORMAL() { + return this.getToken(OracleSqlParser.NORMAL, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + NOFORCE() { + return this.getToken(OracleSqlParser.NOFORCE, 0); + }; + + DISMOUNT() { + return this.getToken(OracleSqlParser.DISMOUNT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDiskgroup_availability(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Enable_disable_volumeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_enable_disable_volume; + } + + VOLUME() { + return this.getToken(OracleSqlParser.VOLUME, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitEnable_disable_volume(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_functionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_function; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + function_name() { + return this.getTypedRuleContext(Function_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_function(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_flashback_archiveContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_flashback_archive; + this.fa = null; + this.ts = null; + this.rts = null; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + FLASHBACK() { + return this.getToken(OracleSqlParser.FLASHBACK, 0); + }; + + ARCHIVE() { + return this.getToken(OracleSqlParser.ARCHIVE, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + REMOVE() { + return this.getToken(OracleSqlParser.REMOVE, 0); + }; + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + flashback_archive_retention() { + return this.getTypedRuleContext(Flashback_archive_retentionContext,0); + }; + + PURGE() { + return this.getToken(OracleSqlParser.PURGE, 0); + }; + + OPTIMIZE() { + return this.getToken(OracleSqlParser.OPTIMIZE, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + BEFORE() { + return this.getToken(OracleSqlParser.BEFORE, 0); + }; + + flashback_archive_quota() { + return this.getTypedRuleContext(Flashback_archive_quotaContext,0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + SCN() { + return this.getToken(OracleSqlParser.SCN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + TIMESTAMP() { + return this.getToken(OracleSqlParser.TIMESTAMP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_flashback_archive(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_hierarchyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_hierarchy; + this.hn = null; + this.nhn = null; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + HIERARCHY() { + return this.getToken(OracleSqlParser.HIERARCHY, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_hierarchy(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_functionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_function; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + function_name() { + return this.getTypedRuleContext(Function_nameContext,0); + }; + + EDITIONABLE() { + return this.getToken(OracleSqlParser.EDITIONABLE, 0); + }; + + NONEDITIONABLE() { + return this.getToken(OracleSqlParser.NONEDITIONABLE, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + DEBUG() { + return this.getToken(OracleSqlParser.DEBUG, 0); + }; + + compiler_parameters_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Compiler_parameters_clauseContext); + } else { + return this.getTypedRuleContext(Compiler_parameters_clauseContext,i); + } + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + SETTINGS() { + return this.getToken(OracleSqlParser.SETTINGS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_function(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_javaContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_java; + this.o = null; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + JAVA() { + return this.getToken(OracleSqlParser.JAVA, 0); + }; + + SOURCE() { + return this.getToken(OracleSqlParser.SOURCE, 0); + }; + + CLASS() { + return this.getToken(OracleSqlParser.CLASS, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + RESOLVE() { + return this.getToken(OracleSqlParser.RESOLVE, 0); + }; + + invoker_rights_clause() { + return this.getTypedRuleContext(Invoker_rights_clauseContext,0); + }; + + schema_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Schema_nameContext); + } else { + return this.getTypedRuleContext(Schema_nameContext,i); + } + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + RESOLVER() { + return this.getToken(OracleSqlParser.RESOLVER, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + match_string = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Match_stringContext); + } else { + return this.getTypedRuleContext(Match_stringContext,i); + } + }; + + MINUS_SIGN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MINUS_SIGN); + } else { + return this.getToken(OracleSqlParser.MINUS_SIGN, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_java(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Match_stringContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_match_string; + } + + DELIMITED_ID() { + return this.getToken(OracleSqlParser.DELIMITED_ID, 0); + }; + + ASTERISK() { + return this.getToken(OracleSqlParser.ASTERISK, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMatch_string(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_function_bodyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_function_body; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + function_name() { + return this.getTypedRuleContext(Function_nameContext,0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + aggregate_clause() { + return this.getTypedRuleContext(Aggregate_clauseContext,0); + }; + + pipelined_using_clause() { + return this.getTypedRuleContext(Pipelined_using_clauseContext,0); + }; + + sql_macro_body() { + return this.getTypedRuleContext(Sql_macro_bodyContext,0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ParameterContext); + } else { + return this.getTypedRuleContext(ParameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + SHARING() { + return this.getToken(OracleSqlParser.SHARING, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + invoker_rights_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Invoker_rights_clauseContext); + } else { + return this.getTypedRuleContext(Invoker_rights_clauseContext,i); + } + }; + + accessible_by_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Accessible_by_clauseContext); + } else { + return this.getTypedRuleContext(Accessible_by_clauseContext,i); + } + }; + + default_collation_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Default_collation_clauseContext); + } else { + return this.getTypedRuleContext(Default_collation_clauseContext,i); + } + }; + + parallel_enable_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parallel_enable_clauseContext); + } else { + return this.getTypedRuleContext(Parallel_enable_clauseContext,i); + } + }; + + result_cache_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Result_cache_clauseContext); + } else { + return this.getTypedRuleContext(Result_cache_clauseContext,i); + } + }; + + PIPELINED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PIPELINED); + } else { + return this.getToken(OracleSqlParser.PIPELINED, i); + } + }; + + + DETERMINISTIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DETERMINISTIC); + } else { + return this.getToken(OracleSqlParser.DETERMINISTIC, i); + } + }; + + + EDITIONABLE() { + return this.getToken(OracleSqlParser.EDITIONABLE, 0); + }; + + NONEDITIONABLE() { + return this.getToken(OracleSqlParser.NONEDITIONABLE, 0); + }; + + METADATA() { + return this.getToken(OracleSqlParser.METADATA, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + body() { + return this.getTypedRuleContext(BodyContext,0); + }; + + call_spec() { + return this.getTypedRuleContext(Call_specContext,0); + }; + + DECLARE() { + return this.getToken(OracleSqlParser.DECLARE, 0); + }; + + seq_of_declare_specs() { + return this.getTypedRuleContext(Seq_of_declare_specsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_function_body(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sql_macro_bodyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sql_macro_body; + } + + SQL_MACRO() { + return this.getToken(OracleSqlParser.SQL_MACRO, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + BEGIN() { + return this.getToken(OracleSqlParser.BEGIN, 0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSql_macro_body(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Parallel_enable_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_parallel_enable_clause; + } + + PARALLEL_ENABLE() { + return this.getToken(OracleSqlParser.PARALLEL_ENABLE, 0); + }; + + partition_by_clause() { + return this.getTypedRuleContext(Partition_by_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitParallel_enable_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Partition_by_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_partition_by_clause; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + ANY() { + return this.getToken(OracleSqlParser.ANY, 0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + HASH() { + return this.getToken(OracleSqlParser.HASH, 0); + }; + + RANGE() { + return this.getToken(OracleSqlParser.RANGE, 0); + }; + + LIST() { + return this.getToken(OracleSqlParser.LIST, 0); + }; + + streaming_clause() { + return this.getTypedRuleContext(Streaming_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPartition_by_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Result_cache_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_result_cache_clause; + } + + RESULT_CACHE() { + return this.getToken(OracleSqlParser.RESULT_CACHE, 0); + }; + + relies_on_part() { + return this.getTypedRuleContext(Relies_on_partContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + MODE() { + return this.getToken(OracleSqlParser.MODE, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitResult_cache_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Accessible_by_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_accessible_by_clause; + } + + ACCESSIBLE() { + return this.getToken(OracleSqlParser.ACCESSIBLE, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + accessor = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(AccessorContext); + } else { + return this.getTypedRuleContext(AccessorContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAccessible_by_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_collation_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_collation_clause; + } + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + COLLATION() { + return this.getToken(OracleSqlParser.COLLATION, 0); + }; + + USING_NLS_COMP() { + return this.getToken(OracleSqlParser.USING_NLS_COMP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_collation_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Aggregate_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_aggregate_clause; + } + + AGGREGATE() { + return this.getToken(OracleSqlParser.AGGREGATE, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + implementation_type_name() { + return this.getTypedRuleContext(Implementation_type_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAggregate_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pipelined_using_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pipelined_using_clause; + } + + PIPELINED() { + return this.getToken(OracleSqlParser.PIPELINED, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + implementation_type_name() { + return this.getTypedRuleContext(Implementation_type_nameContext,0); + }; + + POLYMORPHIC() { + return this.getToken(OracleSqlParser.POLYMORPHIC, 0); + }; + + ROW() { + return this.getToken(OracleSqlParser.ROW, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPipelined_using_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class AccessorContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_accessor; + this.unitKind = null; + } + + function_name() { + return this.getTypedRuleContext(Function_nameContext,0); + }; + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + PACKAGE() { + return this.getToken(OracleSqlParser.PACKAGE, 0); + }; + + TRIGGER() { + return this.getToken(OracleSqlParser.TRIGGER, 0); + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAccessor(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Relies_on_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_relies_on_part; + } + + RELIES_ON() { + return this.getToken(OracleSqlParser.RELIES_ON, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + tableview_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Tableview_nameContext); + } else { + return this.getTypedRuleContext(Tableview_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRelies_on_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Streaming_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_streaming_clause; + } + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + ORDER() { + return this.getToken(OracleSqlParser.ORDER, 0); + }; + + CLUSTER() { + return this.getToken(OracleSqlParser.CLUSTER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStreaming_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_outlineContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_outline; + this.o = null; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + OUTLINE() { + return this.getToken(OracleSqlParser.OUTLINE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + outline_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Outline_optionsContext); + } else { + return this.getTypedRuleContext(Outline_optionsContext,i); + } + }; + + PUBLIC() { + return this.getToken(OracleSqlParser.PUBLIC, 0); + }; + + PRIVATE() { + return this.getToken(OracleSqlParser.PRIVATE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_outline(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Outline_optionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_outline_options; + this.non = null; + this.ncn = null; + } + + REBUILD() { + return this.getToken(OracleSqlParser.REBUILD, 0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + CHANGE() { + return this.getToken(OracleSqlParser.CHANGE, 0); + }; + + CATEGORY() { + return this.getToken(OracleSqlParser.CATEGORY, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOutline_options(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_lockdown_profileContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_lockdown_profile; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + LOCKDOWN() { + return this.getToken(OracleSqlParser.LOCKDOWN, 0); + }; + + PROFILE() { + return this.getToken(OracleSqlParser.PROFILE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + lockdown_feature() { + return this.getTypedRuleContext(Lockdown_featureContext,0); + }; + + lockdown_options() { + return this.getTypedRuleContext(Lockdown_optionsContext,0); + }; + + lockdown_statements() { + return this.getTypedRuleContext(Lockdown_statementsContext,0); + }; + + USERS() { + return this.getToken(OracleSqlParser.USERS, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + COMMON() { + return this.getToken(OracleSqlParser.COMMON, 0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_lockdown_profile(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lockdown_featureContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lockdown_feature; + } + + disable_enable() { + return this.getTypedRuleContext(Disable_enableContext,0); + }; + + FEATURE() { + return this.getToken(OracleSqlParser.FEATURE, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + string_list() { + return this.getTypedRuleContext(String_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + EXCEPT() { + return this.getToken(OracleSqlParser.EXCEPT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLockdown_feature(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lockdown_optionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lockdown_options; + } + + disable_enable() { + return this.getTypedRuleContext(Disable_enableContext,0); + }; + + OPTION() { + return this.getToken(OracleSqlParser.OPTION, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + string_list() { + return this.getTypedRuleContext(String_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + EXCEPT() { + return this.getToken(OracleSqlParser.EXCEPT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLockdown_options(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lockdown_statementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lockdown_statements; + } + + disable_enable() { + return this.getTypedRuleContext(Disable_enableContext,0); + }; + + STATEMENT() { + return this.getToken(OracleSqlParser.STATEMENT, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + string_list() { + return this.getTypedRuleContext(String_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + statement_clauses() { + return this.getTypedRuleContext(Statement_clausesContext,0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + EXCEPT() { + return this.getToken(OracleSqlParser.EXCEPT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLockdown_statements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Statement_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_statement_clauses; + } + + CLAUSE() { + return this.getToken(OracleSqlParser.CLAUSE, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + string_list() { + return this.getTypedRuleContext(String_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + clause_options() { + return this.getTypedRuleContext(Clause_optionsContext,0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + EXCEPT() { + return this.getToken(OracleSqlParser.EXCEPT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStatement_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Clause_optionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_clause_options; + } + + OPTION() { + return this.getToken(OracleSqlParser.OPTION, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + string_list() { + return this.getTypedRuleContext(String_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + option_values = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Option_valuesContext); + } else { + return this.getTypedRuleContext(Option_valuesContext,i); + } + }; + + EXCEPT() { + return this.getToken(OracleSqlParser.EXCEPT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitClause_options(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Option_valuesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_option_values; + } + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + string_list() { + return this.getTypedRuleContext(String_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + MINVALUE() { + return this.getToken(OracleSqlParser.MINVALUE, 0); + }; + + MAXVALUE() { + return this.getToken(OracleSqlParser.MAXVALUE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOption_values(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class String_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_string_list; + } + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitString_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Disable_enableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_disable_enable; + } + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDisable_enable(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_lockdown_profileContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_lockdown_profile; + this.p = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + LOCKDOWN() { + return this.getToken(OracleSqlParser.LOCKDOWN, 0); + }; + + PROFILE() { + return this.getToken(OracleSqlParser.PROFILE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_lockdown_profile(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_packageContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_package; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + PACKAGE() { + return this.getToken(OracleSqlParser.PACKAGE, 0); + }; + + package_name() { + return this.getTypedRuleContext(Package_nameContext,0); + }; + + BODY() { + return this.getToken(OracleSqlParser.BODY, 0); + }; + + schema_object_name() { + return this.getTypedRuleContext(Schema_object_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_package(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_packageContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_package; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + PACKAGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PACKAGE); + } else { + return this.getToken(OracleSqlParser.PACKAGE, i); + } + }; + + + package_name() { + return this.getTypedRuleContext(Package_nameContext,0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + DEBUG() { + return this.getToken(OracleSqlParser.DEBUG, 0); + }; + + compiler_parameters_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Compiler_parameters_clauseContext); + } else { + return this.getTypedRuleContext(Compiler_parameters_clauseContext,i); + } + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + SETTINGS() { + return this.getToken(OracleSqlParser.SETTINGS, 0); + }; + + BODY() { + return this.getToken(OracleSqlParser.BODY, 0); + }; + + SPECIFICATION() { + return this.getToken(OracleSqlParser.SPECIFICATION, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_package(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_packageContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_package; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + PACKAGE() { + return this.getToken(OracleSqlParser.PACKAGE, 0); + }; + + package_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Package_nameContext); + } else { + return this.getTypedRuleContext(Package_nameContext,i); + } + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + schema_object_name() { + return this.getTypedRuleContext(Schema_object_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + invoker_rights_clause() { + return this.getTypedRuleContext(Invoker_rights_clauseContext,0); + }; + + package_obj_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Package_obj_specContext); + } else { + return this.getTypedRuleContext(Package_obj_specContext,i); + } + }; + + EDITIONABLE() { + return this.getToken(OracleSqlParser.EDITIONABLE, 0); + }; + + NONEDITIONABLE() { + return this.getToken(OracleSqlParser.NONEDITIONABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_package(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_package_bodyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_package_body; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + PACKAGE() { + return this.getToken(OracleSqlParser.PACKAGE, 0); + }; + + BODY() { + return this.getToken(OracleSqlParser.BODY, 0); + }; + + package_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Package_nameContext); + } else { + return this.getTypedRuleContext(Package_nameContext,i); + } + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + schema_object_name() { + return this.getTypedRuleContext(Schema_object_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + package_obj_body = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Package_obj_bodyContext); + } else { + return this.getTypedRuleContext(Package_obj_bodyContext,i); + } + }; + + BEGIN() { + return this.getToken(OracleSqlParser.BEGIN, 0); + }; + + seq_of_statements() { + return this.getTypedRuleContext(Seq_of_statementsContext,0); + }; + + EDITIONABLE() { + return this.getToken(OracleSqlParser.EDITIONABLE, 0); + }; + + NONEDITIONABLE() { + return this.getToken(OracleSqlParser.NONEDITIONABLE, 0); + }; + + EXCEPTION() { + return this.getToken(OracleSqlParser.EXCEPTION, 0); + }; + + exception_handler = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Exception_handlerContext); + } else { + return this.getTypedRuleContext(Exception_handlerContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_package_body(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Package_obj_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_package_obj_spec; + } + + pragma_declaration() { + return this.getTypedRuleContext(Pragma_declarationContext,0); + }; + + exception_declaration() { + return this.getTypedRuleContext(Exception_declarationContext,0); + }; + + procedure_spec() { + return this.getTypedRuleContext(Procedure_specContext,0); + }; + + function_spec() { + return this.getTypedRuleContext(Function_specContext,0); + }; + + variable_declaration() { + return this.getTypedRuleContext(Variable_declarationContext,0); + }; + + subtype_declaration() { + return this.getTypedRuleContext(Subtype_declarationContext,0); + }; + + cursor_declaration() { + return this.getTypedRuleContext(Cursor_declarationContext,0); + }; + + type_declaration() { + return this.getTypedRuleContext(Type_declarationContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPackage_obj_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Procedure_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_procedure_spec; + } + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ParameterContext); + } else { + return this.getTypedRuleContext(ParameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accessible_by_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Accessible_by_clauseContext); + } else { + return this.getTypedRuleContext(Accessible_by_clauseContext,i); + } + }; + + PARALLEL_ENABLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PARALLEL_ENABLE); + } else { + return this.getToken(OracleSqlParser.PARALLEL_ENABLE, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitProcedure_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Function_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_function_spec; + } + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ParameterContext); + } else { + return this.getTypedRuleContext(ParameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + DETERMINISTIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DETERMINISTIC); + } else { + return this.getToken(OracleSqlParser.DETERMINISTIC, i); + } + }; + + + PIPELINED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PIPELINED); + } else { + return this.getToken(OracleSqlParser.PIPELINED, i); + } + }; + + + parallel_enable_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parallel_enable_clauseContext); + } else { + return this.getTypedRuleContext(Parallel_enable_clauseContext,i); + } + }; + + RESULT_CACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RESULT_CACHE); + } else { + return this.getToken(OracleSqlParser.RESULT_CACHE, i); + } + }; + + + streaming_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Streaming_clauseContext); + } else { + return this.getTypedRuleContext(Streaming_clauseContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFunction_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Package_obj_bodyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_package_obj_body; + } + + pragma_declaration() { + return this.getTypedRuleContext(Pragma_declarationContext,0); + }; + + exception_declaration() { + return this.getTypedRuleContext(Exception_declarationContext,0); + }; + + procedure_spec() { + return this.getTypedRuleContext(Procedure_specContext,0); + }; + + function_spec() { + return this.getTypedRuleContext(Function_specContext,0); + }; + + subtype_declaration() { + return this.getTypedRuleContext(Subtype_declarationContext,0); + }; + + cursor_declaration() { + return this.getTypedRuleContext(Cursor_declarationContext,0); + }; + + variable_declaration() { + return this.getTypedRuleContext(Variable_declarationContext,0); + }; + + type_declaration() { + return this.getTypedRuleContext(Type_declarationContext,0); + }; + + procedure_body() { + return this.getTypedRuleContext(Procedure_bodyContext,0); + }; + + function_body() { + return this.getTypedRuleContext(Function_bodyContext,0); + }; + + selection_directive() { + return this.getTypedRuleContext(Selection_directiveContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPackage_obj_body(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_pmem_filestoreContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_pmem_filestore; + this.fsn = null; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + PMEM() { + return this.getToken(OracleSqlParser.PMEM, 0); + }; + + FILESTORE() { + return this.getToken(OracleSqlParser.FILESTORE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + RESIZE() { + return this.getToken(OracleSqlParser.RESIZE, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + autoextend_clause() { + return this.getTypedRuleContext(Autoextend_clauseContext,0); + }; + + MOUNT() { + return this.getToken(OracleSqlParser.MOUNT, 0); + }; + + DISMOUNT() { + return this.getToken(OracleSqlParser.DISMOUNT, 0); + }; + + MOUNTPOINT() { + return this.getToken(OracleSqlParser.MOUNTPOINT, 0); + }; + + file_path() { + return this.getTypedRuleContext(File_pathContext,0); + }; + + BACKINGFILE() { + return this.getToken(OracleSqlParser.BACKINGFILE, 0); + }; + + filename() { + return this.getTypedRuleContext(FilenameContext,0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_pmem_filestore(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_pmem_filestoreContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_pmem_filestore; + this.fsn = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + PMEM() { + return this.getToken(OracleSqlParser.PMEM, 0); + }; + + FILESTORE() { + return this.getToken(OracleSqlParser.FILESTORE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + CONTENTS() { + return this.getToken(OracleSqlParser.CONTENTS, 0); + }; + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + EXCLUDING() { + return this.getToken(OracleSqlParser.EXCLUDING, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_pmem_filestore(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_procedureContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_procedure; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + procedure_name() { + return this.getTypedRuleContext(Procedure_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_procedure(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_procedureContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_procedure; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + procedure_name() { + return this.getTypedRuleContext(Procedure_nameContext,0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + DEBUG() { + return this.getToken(OracleSqlParser.DEBUG, 0); + }; + + compiler_parameters_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Compiler_parameters_clauseContext); + } else { + return this.getTypedRuleContext(Compiler_parameters_clauseContext,i); + } + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + SETTINGS() { + return this.getToken(OracleSqlParser.SETTINGS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_procedure(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Function_bodyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_function_body; + } + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + implementation_type_name() { + return this.getTypedRuleContext(Implementation_type_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ParameterContext); + } else { + return this.getTypedRuleContext(ParameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + PIPELINED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PIPELINED); + } else { + return this.getToken(OracleSqlParser.PIPELINED, i); + } + }; + + + DETERMINISTIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DETERMINISTIC); + } else { + return this.getToken(OracleSqlParser.DETERMINISTIC, i); + } + }; + + + invoker_rights_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Invoker_rights_clauseContext); + } else { + return this.getTypedRuleContext(Invoker_rights_clauseContext,i); + } + }; + + parallel_enable_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parallel_enable_clauseContext); + } else { + return this.getTypedRuleContext(Parallel_enable_clauseContext,i); + } + }; + + result_cache_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Result_cache_clauseContext); + } else { + return this.getTypedRuleContext(Result_cache_clauseContext,i); + } + }; + + streaming_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Streaming_clauseContext); + } else { + return this.getTypedRuleContext(Streaming_clauseContext,i); + } + }; + + AGGREGATE() { + return this.getToken(OracleSqlParser.AGGREGATE, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + body() { + return this.getTypedRuleContext(BodyContext,0); + }; + + call_spec() { + return this.getTypedRuleContext(Call_specContext,0); + }; + + DECLARE() { + return this.getToken(OracleSqlParser.DECLARE, 0); + }; + + seq_of_declare_specs() { + return this.getTypedRuleContext(Seq_of_declare_specsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFunction_body(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Procedure_bodyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_procedure_body; + } + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + body() { + return this.getTypedRuleContext(BodyContext,0); + }; + + call_spec() { + return this.getTypedRuleContext(Call_specContext,0); + }; + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ParameterContext); + } else { + return this.getTypedRuleContext(ParameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accessible_by_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Accessible_by_clauseContext); + } else { + return this.getTypedRuleContext(Accessible_by_clauseContext,i); + } + }; + + PARALLEL_ENABLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PARALLEL_ENABLE); + } else { + return this.getToken(OracleSqlParser.PARALLEL_ENABLE, i); + } + }; + + + DECLARE() { + return this.getToken(OracleSqlParser.DECLARE, 0); + }; + + seq_of_declare_specs() { + return this.getTypedRuleContext(Seq_of_declare_specsContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitProcedure_body(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_procedure_bodyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_procedure_body; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + procedure_name() { + return this.getTypedRuleContext(Procedure_nameContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + body() { + return this.getTypedRuleContext(BodyContext,0); + }; + + call_spec() { + return this.getTypedRuleContext(Call_specContext,0); + }; + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ParameterContext); + } else { + return this.getTypedRuleContext(ParameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + invoker_rights_clause() { + return this.getTypedRuleContext(Invoker_rights_clauseContext,0); + }; + + PARALLEL_ENABLE() { + return this.getToken(OracleSqlParser.PARALLEL_ENABLE, 0); + }; + + DECLARE() { + return this.getToken(OracleSqlParser.DECLARE, 0); + }; + + seq_of_declare_specs() { + return this.getTypedRuleContext(Seq_of_declare_specsContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_procedure_body(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_resource_costContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_resource_cost; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + RESOURCE() { + return this.getToken(OracleSqlParser.RESOURCE, 0); + }; + + COST() { + return this.getToken(OracleSqlParser.COST, 0); + }; + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + CPU_PER_SESSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CPU_PER_SESSION); + } else { + return this.getToken(OracleSqlParser.CPU_PER_SESSION, i); + } + }; + + + CONNECT_TIME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CONNECT_TIME); + } else { + return this.getToken(OracleSqlParser.CONNECT_TIME, i); + } + }; + + + LOGICAL_READS_PER_SESSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LOGICAL_READS_PER_SESSION); + } else { + return this.getToken(OracleSqlParser.LOGICAL_READS_PER_SESSION, i); + } + }; + + + PRIVATE_SGA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PRIVATE_SGA); + } else { + return this.getToken(OracleSqlParser.PRIVATE_SGA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_resource_cost(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_outlineContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_outline; + this.o = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + OUTLINE() { + return this.getToken(OracleSqlParser.OUTLINE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_outline(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_rollback_segmentContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_rollback_segment; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + ROLLBACK() { + return this.getToken(OracleSqlParser.ROLLBACK, 0); + }; + + SEGMENT() { + return this.getToken(OracleSqlParser.SEGMENT, 0); + }; + + rollback_segment_name() { + return this.getTypedRuleContext(Rollback_segment_nameContext,0); + }; + + ONLINE() { + return this.getToken(OracleSqlParser.ONLINE, 0); + }; + + OFFLINE() { + return this.getToken(OracleSqlParser.OFFLINE, 0); + }; + + storage_clause() { + return this.getTypedRuleContext(Storage_clauseContext,0); + }; + + SHRINK() { + return this.getToken(OracleSqlParser.SHRINK, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_rollback_segment(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_restore_pointContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_restore_point; + this.rp = null; + this.pdb = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + RESTORE() { + return this.getToken(OracleSqlParser.RESTORE, 0); + }; + + POINT() { + return this.getToken(OracleSqlParser.POINT, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + PLUGGABLE() { + return this.getToken(OracleSqlParser.PLUGGABLE, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_restore_point(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_rollback_segmentContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_rollback_segment; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + ROLLBACK() { + return this.getToken(OracleSqlParser.ROLLBACK, 0); + }; + + SEGMENT() { + return this.getToken(OracleSqlParser.SEGMENT, 0); + }; + + rollback_segment_name() { + return this.getTypedRuleContext(Rollback_segment_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_rollback_segment(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_roleContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_role; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + ROLE() { + return this.getToken(OracleSqlParser.ROLE, 0); + }; + + role_name() { + return this.getTypedRuleContext(Role_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_role(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_pmem_filestoreContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_pmem_filestore; + this.fsn = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + PMEM() { + return this.getToken(OracleSqlParser.PMEM, 0); + }; + + FILESTORE() { + return this.getToken(OracleSqlParser.FILESTORE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + pmem_filestore_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Pmem_filestore_optionsContext); + } else { + return this.getTypedRuleContext(Pmem_filestore_optionsContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_pmem_filestore(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pmem_filestore_optionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pmem_filestore_options; + } + + MOUNTPOINT() { + return this.getToken(OracleSqlParser.MOUNTPOINT, 0); + }; + + file_path() { + return this.getTypedRuleContext(File_pathContext,0); + }; + + BACKINGFILE() { + return this.getToken(OracleSqlParser.BACKINGFILE, 0); + }; + + filename() { + return this.getTypedRuleContext(FilenameContext,0); + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + SIZE() { + return this.getToken(OracleSqlParser.SIZE, 0); + }; + + BLOCKSIZE() { + return this.getToken(OracleSqlParser.BLOCKSIZE, 0); + }; + + autoextend_clause() { + return this.getTypedRuleContext(Autoextend_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPmem_filestore_options(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class File_pathContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_file_path; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFile_path(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_rollback_segmentContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_rollback_segment; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + ROLLBACK() { + return this.getToken(OracleSqlParser.ROLLBACK, 0); + }; + + SEGMENT() { + return this.getToken(OracleSqlParser.SEGMENT, 0); + }; + + rollback_segment_name() { + return this.getTypedRuleContext(Rollback_segment_nameContext,0); + }; + + PUBLIC() { + return this.getToken(OracleSqlParser.PUBLIC, 0); + }; + + TABLESPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLESPACE); + } else { + return this.getToken(OracleSqlParser.TABLESPACE, i); + } + }; + + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + storage_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Storage_clauseContext); + } else { + return this.getTypedRuleContext(Storage_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_rollback_segment(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_triggerContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_trigger; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + TRIGGER() { + return this.getToken(OracleSqlParser.TRIGGER, 0); + }; + + trigger_name() { + return this.getTypedRuleContext(Trigger_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_trigger(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_triggerContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_trigger; + this.alter_trigger_name = null; + this.rename_trigger_name = null; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + TRIGGER() { + return this.getToken(OracleSqlParser.TRIGGER, 0); + }; + + trigger_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Trigger_nameContext); + } else { + return this.getTypedRuleContext(Trigger_nameContext,i); + } + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + DEBUG() { + return this.getToken(OracleSqlParser.DEBUG, 0); + }; + + compiler_parameters_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Compiler_parameters_clauseContext); + } else { + return this.getTypedRuleContext(Compiler_parameters_clauseContext,i); + } + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + SETTINGS() { + return this.getToken(OracleSqlParser.SETTINGS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_trigger(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_triggerContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_trigger; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + TRIGGER() { + return this.getToken(OracleSqlParser.TRIGGER, 0); + }; + + trigger_name() { + return this.getTypedRuleContext(Trigger_nameContext,0); + }; + + trigger_body() { + return this.getTypedRuleContext(Trigger_bodyContext,0); + }; + + simple_dml_trigger() { + return this.getTypedRuleContext(Simple_dml_triggerContext,0); + }; + + compound_dml_trigger() { + return this.getTypedRuleContext(Compound_dml_triggerContext,0); + }; + + non_dml_trigger() { + return this.getTypedRuleContext(Non_dml_triggerContext,0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + trigger_follows_clause() { + return this.getTypedRuleContext(Trigger_follows_clauseContext,0); + }; + + trigger_when_clause() { + return this.getTypedRuleContext(Trigger_when_clauseContext,0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_trigger(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Trigger_follows_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_trigger_follows_clause; + } + + FOLLOWS() { + return this.getToken(OracleSqlParser.FOLLOWS, 0); + }; + + trigger_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Trigger_nameContext); + } else { + return this.getTypedRuleContext(Trigger_nameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTrigger_follows_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Trigger_when_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_trigger_when_clause; + } + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTrigger_when_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Simple_dml_triggerContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_simple_dml_trigger; + } + + dml_event_clause() { + return this.getTypedRuleContext(Dml_event_clauseContext,0); + }; + + BEFORE() { + return this.getToken(OracleSqlParser.BEFORE, 0); + }; + + AFTER() { + return this.getToken(OracleSqlParser.AFTER, 0); + }; + + INSTEAD() { + return this.getToken(OracleSqlParser.INSTEAD, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + referencing_clause() { + return this.getTypedRuleContext(Referencing_clauseContext,0); + }; + + for_each_row() { + return this.getTypedRuleContext(For_each_rowContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSimple_dml_trigger(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class For_each_rowContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_for_each_row; + } + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + EACH() { + return this.getToken(OracleSqlParser.EACH, 0); + }; + + ROW() { + return this.getToken(OracleSqlParser.ROW, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFor_each_row(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Compound_dml_triggerContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_compound_dml_trigger; + } + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + dml_event_clause() { + return this.getTypedRuleContext(Dml_event_clauseContext,0); + }; + + referencing_clause() { + return this.getTypedRuleContext(Referencing_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCompound_dml_trigger(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Non_dml_triggerContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_non_dml_trigger; + } + + non_dml_event = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Non_dml_eventContext); + } else { + return this.getTypedRuleContext(Non_dml_eventContext,i); + } + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + BEFORE() { + return this.getToken(OracleSqlParser.BEFORE, 0); + }; + + AFTER() { + return this.getToken(OracleSqlParser.AFTER, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + SCHEMA() { + return this.getToken(OracleSqlParser.SCHEMA, 0); + }; + + OR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OR); + } else { + return this.getToken(OracleSqlParser.OR, i); + } + }; + + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNon_dml_trigger(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Trigger_bodyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_trigger_body; + } + + compound_trigger_block() { + return this.getTypedRuleContext(Compound_trigger_blockContext,0); + }; + + CALL() { + return this.getToken(OracleSqlParser.CALL, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + trigger_block() { + return this.getTypedRuleContext(Trigger_blockContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTrigger_body(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Compound_trigger_blockContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_compound_trigger_block; + } + + COMPOUND() { + return this.getToken(OracleSqlParser.COMPOUND, 0); + }; + + TRIGGER() { + return this.getToken(OracleSqlParser.TRIGGER, 0); + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + seq_of_declare_specs() { + return this.getTypedRuleContext(Seq_of_declare_specsContext,0); + }; + + timing_point_section = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Timing_point_sectionContext); + } else { + return this.getTypedRuleContext(Timing_point_sectionContext,i); + } + }; + + trigger_name() { + return this.getTypedRuleContext(Trigger_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCompound_trigger_block(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Timing_point_sectionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_timing_point_section; + this.bk = null; + this.ak = null; + } + + STATEMENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.STATEMENT); + } else { + return this.getToken(OracleSqlParser.STATEMENT, i); + } + }; + + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + tps_block() { + return this.getTypedRuleContext(Tps_blockContext,0); + }; + + BEFORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BEFORE); + } else { + return this.getToken(OracleSqlParser.BEFORE, i); + } + }; + + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + EACH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EACH); + } else { + return this.getToken(OracleSqlParser.EACH, i); + } + }; + + + ROW = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ROW); + } else { + return this.getToken(OracleSqlParser.ROW, i); + } + }; + + + AFTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.AFTER); + } else { + return this.getToken(OracleSqlParser.AFTER, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTiming_point_section(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Non_dml_eventContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_non_dml_event; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + ANALYZE() { + return this.getToken(OracleSqlParser.ANALYZE, 0); + }; + + ASSOCIATE() { + return this.getToken(OracleSqlParser.ASSOCIATE, 0); + }; + + STATISTICS() { + return this.getToken(OracleSqlParser.STATISTICS, 0); + }; + + AUDIT() { + return this.getToken(OracleSqlParser.AUDIT, 0); + }; + + COMMENT() { + return this.getToken(OracleSqlParser.COMMENT, 0); + }; + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + DISASSOCIATE() { + return this.getToken(OracleSqlParser.DISASSOCIATE, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + GRANT() { + return this.getToken(OracleSqlParser.GRANT, 0); + }; + + NOAUDIT() { + return this.getToken(OracleSqlParser.NOAUDIT, 0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + REVOKE() { + return this.getToken(OracleSqlParser.REVOKE, 0); + }; + + TRUNCATE() { + return this.getToken(OracleSqlParser.TRUNCATE, 0); + }; + + DDL() { + return this.getToken(OracleSqlParser.DDL, 0); + }; + + STARTUP() { + return this.getToken(OracleSqlParser.STARTUP, 0); + }; + + SHUTDOWN() { + return this.getToken(OracleSqlParser.SHUTDOWN, 0); + }; + + DB_ROLE_CHANGE() { + return this.getToken(OracleSqlParser.DB_ROLE_CHANGE, 0); + }; + + LOGON() { + return this.getToken(OracleSqlParser.LOGON, 0); + }; + + LOGOFF() { + return this.getToken(OracleSqlParser.LOGOFF, 0); + }; + + SERVERERROR() { + return this.getToken(OracleSqlParser.SERVERERROR, 0); + }; + + SUSPEND() { + return this.getToken(OracleSqlParser.SUSPEND, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + SCHEMA() { + return this.getToken(OracleSqlParser.SCHEMA, 0); + }; + + FOLLOWS() { + return this.getToken(OracleSqlParser.FOLLOWS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNon_dml_event(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dml_event_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dml_event_clause; + } + + dml_event_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Dml_event_elementContext); + } else { + return this.getTypedRuleContext(Dml_event_elementContext,i); + } + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + OR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OR); + } else { + return this.getToken(OracleSqlParser.OR, i); + } + }; + + + dml_event_nested_clause() { + return this.getTypedRuleContext(Dml_event_nested_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDml_event_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dml_event_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dml_event_element; + } + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + INSERT() { + return this.getToken(OracleSqlParser.INSERT, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + column_list() { + return this.getTypedRuleContext(Column_listContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDml_event_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dml_event_nested_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dml_event_nested_clause; + } + + NESTED() { + return this.getToken(OracleSqlParser.NESTED, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDml_event_nested_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Referencing_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_referencing_clause; + } + + REFERENCING() { + return this.getToken(OracleSqlParser.REFERENCING, 0); + }; + + referencing_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Referencing_elementContext); + } else { + return this.getTypedRuleContext(Referencing_elementContext,i); + } + }; + + REFERENCES() { + return this.getToken(OracleSqlParser.REFERENCES, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReferencing_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Referencing_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_referencing_element; + } + + column_alias() { + return this.getTypedRuleContext(Column_aliasContext,0); + }; + + NEW() { + return this.getToken(OracleSqlParser.NEW, 0); + }; + + OLD() { + return this.getToken(OracleSqlParser.OLD, 0); + }; + + PARENT() { + return this.getToken(OracleSqlParser.PARENT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReferencing_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_type; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + type_name() { + return this.getTypedRuleContext(Type_nameContext,0); + }; + + BODY() { + return this.getToken(OracleSqlParser.BODY, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + VALIDATE() { + return this.getToken(OracleSqlParser.VALIDATE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_type; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + type_name() { + return this.getTypedRuleContext(Type_nameContext,0); + }; + + compile_type_clause() { + return this.getTypedRuleContext(Compile_type_clauseContext,0); + }; + + replace_type_clause() { + return this.getTypedRuleContext(Replace_type_clauseContext,0); + }; + + alter_method_spec() { + return this.getTypedRuleContext(Alter_method_specContext,0); + }; + + alter_collection_clauses() { + return this.getTypedRuleContext(Alter_collection_clausesContext,0); + }; + + modifier_clause() { + return this.getTypedRuleContext(Modifier_clauseContext,0); + }; + + overriding_subprogram_spec() { + return this.getTypedRuleContext(Overriding_subprogram_specContext,0); + }; + + dependent_handling_clause() { + return this.getTypedRuleContext(Dependent_handling_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Compile_type_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_compile_type_clause; + } + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + DEBUG() { + return this.getToken(OracleSqlParser.DEBUG, 0); + }; + + compiler_parameters_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Compiler_parameters_clauseContext); + } else { + return this.getTypedRuleContext(Compiler_parameters_clauseContext,i); + } + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + SETTINGS() { + return this.getToken(OracleSqlParser.SETTINGS, 0); + }; + + SPECIFICATION() { + return this.getToken(OracleSqlParser.SPECIFICATION, 0); + }; + + BODY() { + return this.getToken(OracleSqlParser.BODY, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCompile_type_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Replace_type_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_replace_type_clause; + } + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + OBJECT() { + return this.getToken(OracleSqlParser.OBJECT, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + object_member_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Object_member_specContext); + } else { + return this.getTypedRuleContext(Object_member_specContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + invoker_rights_clause() { + return this.getTypedRuleContext(Invoker_rights_clauseContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReplace_type_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_method_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_method_spec; + } + + alter_method_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Alter_method_elementContext); + } else { + return this.getTypedRuleContext(Alter_method_elementContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_method_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_method_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_method_element; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + map_order_function_spec() { + return this.getTypedRuleContext(Map_order_function_specContext,0); + }; + + subprogram_spec() { + return this.getTypedRuleContext(Subprogram_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_method_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_collection_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_collection_clauses; + } + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + LIMIT() { + return this.getToken(OracleSqlParser.LIMIT, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + ELEMENT() { + return this.getToken(OracleSqlParser.ELEMENT, 0); + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_collection_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dependent_handling_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dependent_handling_clause; + } + + INVALIDATE() { + return this.getToken(OracleSqlParser.INVALIDATE, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + CONVERT() { + return this.getToken(OracleSqlParser.CONVERT, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + SUBSTITUTABLE() { + return this.getToken(OracleSqlParser.SUBSTITUTABLE, 0); + }; + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + dependent_exceptions_part() { + return this.getTypedRuleContext(Dependent_exceptions_partContext,0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDependent_handling_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dependent_exceptions_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dependent_exceptions_part; + } + + EXCEPTIONS() { + return this.getToken(OracleSqlParser.EXCEPTIONS, 0); + }; + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDependent_exceptions_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_type; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + type_definition() { + return this.getTypedRuleContext(Type_definitionContext,0); + }; + + type_body() { + return this.getTypedRuleContext(Type_bodyContext,0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + EDITIONABLE() { + return this.getToken(OracleSqlParser.EDITIONABLE, 0); + }; + + NONEDITIONABLE() { + return this.getToken(OracleSqlParser.NONEDITIONABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Type_definitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_type_definition; + } + + type_name() { + return this.getTypedRuleContext(Type_nameContext,0); + }; + + OID() { + return this.getToken(OracleSqlParser.OID, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + object_type_def() { + return this.getTypedRuleContext(Object_type_defContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitType_definition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_type_defContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_type_def; + } + + object_as_part() { + return this.getTypedRuleContext(Object_as_partContext,0); + }; + + object_under_part() { + return this.getTypedRuleContext(Object_under_partContext,0); + }; + + invoker_rights_clause() { + return this.getTypedRuleContext(Invoker_rights_clauseContext,0); + }; + + sqlj_object_type() { + return this.getTypedRuleContext(Sqlj_object_typeContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + object_member_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Object_member_specContext); + } else { + return this.getTypedRuleContext(Object_member_specContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + modifier_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Modifier_clauseContext); + } else { + return this.getTypedRuleContext(Modifier_clauseContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_type_def(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_as_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_as_part; + } + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + OBJECT() { + return this.getToken(OracleSqlParser.OBJECT, 0); + }; + + varray_type_def() { + return this.getTypedRuleContext(Varray_type_defContext,0); + }; + + nested_table_type_def() { + return this.getTypedRuleContext(Nested_table_type_defContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_as_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_under_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_under_part; + } + + UNDER() { + return this.getToken(OracleSqlParser.UNDER, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_under_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Nested_table_type_defContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_nested_table_type_def; + } + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNested_table_type_def(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sqlj_object_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sqlj_object_type; + } + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + NAME() { + return this.getToken(OracleSqlParser.NAME, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + LANGUAGE() { + return this.getToken(OracleSqlParser.LANGUAGE, 0); + }; + + JAVA() { + return this.getToken(OracleSqlParser.JAVA, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + SQLDATA() { + return this.getToken(OracleSqlParser.SQLDATA, 0); + }; + + CUSTOMDATUM() { + return this.getToken(OracleSqlParser.CUSTOMDATUM, 0); + }; + + ORADATA() { + return this.getToken(OracleSqlParser.ORADATA, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSqlj_object_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Type_bodyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_type_body; + } + + BODY() { + return this.getToken(OracleSqlParser.BODY, 0); + }; + + type_name() { + return this.getTypedRuleContext(Type_nameContext,0); + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + type_body_elements = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Type_body_elementsContext); + } else { + return this.getTypedRuleContext(Type_body_elementsContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitType_body(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Type_body_elementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_type_body_elements; + } + + map_order_func_declaration() { + return this.getTypedRuleContext(Map_order_func_declarationContext,0); + }; + + subprog_decl_in_type() { + return this.getTypedRuleContext(Subprog_decl_in_typeContext,0); + }; + + overriding_subprogram_spec() { + return this.getTypedRuleContext(Overriding_subprogram_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitType_body_elements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Map_order_func_declarationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_map_order_func_declaration; + } + + MEMBER() { + return this.getToken(OracleSqlParser.MEMBER, 0); + }; + + func_decl_in_type() { + return this.getTypedRuleContext(Func_decl_in_typeContext,0); + }; + + MAP() { + return this.getToken(OracleSqlParser.MAP, 0); + }; + + ORDER() { + return this.getToken(OracleSqlParser.ORDER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMap_order_func_declaration(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subprog_decl_in_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subprog_decl_in_type; + } + + MEMBER() { + return this.getToken(OracleSqlParser.MEMBER, 0); + }; + + STATIC() { + return this.getToken(OracleSqlParser.STATIC, 0); + }; + + proc_decl_in_type() { + return this.getTypedRuleContext(Proc_decl_in_typeContext,0); + }; + + func_decl_in_type() { + return this.getTypedRuleContext(Func_decl_in_typeContext,0); + }; + + constructor_declaration() { + return this.getTypedRuleContext(Constructor_declarationContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubprog_decl_in_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Proc_decl_in_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_proc_decl_in_type; + } + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + procedure_name() { + return this.getTypedRuleContext(Procedure_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + type_elements_parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Type_elements_parameterContext); + } else { + return this.getTypedRuleContext(Type_elements_parameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + call_spec() { + return this.getTypedRuleContext(Call_specContext,0); + }; + + body() { + return this.getTypedRuleContext(BodyContext,0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + DECLARE() { + return this.getToken(OracleSqlParser.DECLARE, 0); + }; + + seq_of_declare_specs() { + return this.getTypedRuleContext(Seq_of_declare_specsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitProc_decl_in_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Func_decl_in_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_func_decl_in_type; + } + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + function_name() { + return this.getTypedRuleContext(Function_nameContext,0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + call_spec() { + return this.getTypedRuleContext(Call_specContext,0); + }; + + body() { + return this.getTypedRuleContext(BodyContext,0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + type_elements_parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Type_elements_parameterContext); + } else { + return this.getTypedRuleContext(Type_elements_parameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + DECLARE() { + return this.getToken(OracleSqlParser.DECLARE, 0); + }; + + seq_of_declare_specs() { + return this.getTypedRuleContext(Seq_of_declare_specsContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFunc_decl_in_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Constructor_declarationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_constructor_declaration; + } + + CONSTRUCTOR() { + return this.getToken(OracleSqlParser.CONSTRUCTOR, 0); + }; + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + type_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Type_specContext); + } else { + return this.getTypedRuleContext(Type_specContext,i); + } + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + SELF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SELF); + } else { + return this.getToken(OracleSqlParser.SELF, i); + } + }; + + + AS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.AS); + } else { + return this.getToken(OracleSqlParser.AS, i); + } + }; + + + RESULT() { + return this.getToken(OracleSqlParser.RESULT, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + call_spec() { + return this.getTypedRuleContext(Call_specContext,0); + }; + + body() { + return this.getTypedRuleContext(BodyContext,0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + FINAL() { + return this.getToken(OracleSqlParser.FINAL, 0); + }; + + INSTANTIABLE() { + return this.getToken(OracleSqlParser.INSTANTIABLE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + type_elements_parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Type_elements_parameterContext); + } else { + return this.getTypedRuleContext(Type_elements_parameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + OUT() { + return this.getToken(OracleSqlParser.OUT, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + DECLARE() { + return this.getToken(OracleSqlParser.DECLARE, 0); + }; + + seq_of_declare_specs() { + return this.getTypedRuleContext(Seq_of_declare_specsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConstructor_declaration(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modifier_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modifier_clause; + } + + INSTANTIABLE() { + return this.getToken(OracleSqlParser.INSTANTIABLE, 0); + }; + + FINAL() { + return this.getToken(OracleSqlParser.FINAL, 0); + }; + + OVERRIDING() { + return this.getToken(OracleSqlParser.OVERRIDING, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModifier_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_member_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_member_spec; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + sqlj_object_type_attr() { + return this.getTypedRuleContext(Sqlj_object_type_attrContext,0); + }; + + element_spec() { + return this.getTypedRuleContext(Element_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_member_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sqlj_object_type_attrContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sqlj_object_type_attr; + } + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + NAME() { + return this.getToken(OracleSqlParser.NAME, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSqlj_object_type_attr(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Element_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_element_spec; + } + + modifier_clause() { + return this.getTypedRuleContext(Modifier_clauseContext,0); + }; + + element_spec_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Element_spec_optionsContext); + } else { + return this.getTypedRuleContext(Element_spec_optionsContext,i); + } + }; + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + pragma_clause() { + return this.getTypedRuleContext(Pragma_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitElement_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Element_spec_optionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_element_spec_options; + } + + subprogram_spec() { + return this.getTypedRuleContext(Subprogram_specContext,0); + }; + + constructor_spec() { + return this.getTypedRuleContext(Constructor_specContext,0); + }; + + map_order_function_spec() { + return this.getTypedRuleContext(Map_order_function_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitElement_spec_options(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subprogram_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subprogram_spec; + } + + MEMBER() { + return this.getToken(OracleSqlParser.MEMBER, 0); + }; + + STATIC() { + return this.getToken(OracleSqlParser.STATIC, 0); + }; + + type_procedure_spec() { + return this.getTypedRuleContext(Type_procedure_specContext,0); + }; + + type_function_spec() { + return this.getTypedRuleContext(Type_function_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubprogram_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Overriding_subprogram_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_overriding_subprogram_spec; + } + + OVERRIDING() { + return this.getToken(OracleSqlParser.OVERRIDING, 0); + }; + + MEMBER() { + return this.getToken(OracleSqlParser.MEMBER, 0); + }; + + overriding_function_spec() { + return this.getTypedRuleContext(Overriding_function_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOverriding_subprogram_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Overriding_function_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_overriding_function_spec; + } + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + function_name() { + return this.getTypedRuleContext(Function_nameContext,0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + SELF() { + return this.getToken(OracleSqlParser.SELF, 0); + }; + + AS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.AS); + } else { + return this.getToken(OracleSqlParser.AS, i); + } + }; + + + RESULT() { + return this.getToken(OracleSqlParser.RESULT, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + type_elements_parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Type_elements_parameterContext); + } else { + return this.getTypedRuleContext(Type_elements_parameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + body() { + return this.getTypedRuleContext(BodyContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + PIPELINED() { + return this.getToken(OracleSqlParser.PIPELINED, 0); + }; + + DECLARE() { + return this.getToken(OracleSqlParser.DECLARE, 0); + }; + + seq_of_declare_specs() { + return this.getTypedRuleContext(Seq_of_declare_specsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOverriding_function_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Type_procedure_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_type_procedure_spec; + } + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + procedure_name() { + return this.getTypedRuleContext(Procedure_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + type_elements_parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Type_elements_parameterContext); + } else { + return this.getTypedRuleContext(Type_elements_parameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + call_spec() { + return this.getTypedRuleContext(Call_specContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitType_procedure_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Type_function_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_type_function_spec; + } + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + function_name() { + return this.getTypedRuleContext(Function_nameContext,0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + SELF() { + return this.getToken(OracleSqlParser.SELF, 0); + }; + + AS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.AS); + } else { + return this.getToken(OracleSqlParser.AS, i); + } + }; + + + RESULT() { + return this.getToken(OracleSqlParser.RESULT, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + type_elements_parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Type_elements_parameterContext); + } else { + return this.getTypedRuleContext(Type_elements_parameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + call_spec() { + return this.getTypedRuleContext(Call_specContext,0); + }; + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + NAME() { + return this.getToken(OracleSqlParser.NAME, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + VARIABLE() { + return this.getToken(OracleSqlParser.VARIABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitType_function_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Constructor_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_constructor_spec; + } + + CONSTRUCTOR() { + return this.getToken(OracleSqlParser.CONSTRUCTOR, 0); + }; + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + type_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Type_specContext); + } else { + return this.getTypedRuleContext(Type_specContext,i); + } + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + SELF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SELF); + } else { + return this.getToken(OracleSqlParser.SELF, i); + } + }; + + + AS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.AS); + } else { + return this.getToken(OracleSqlParser.AS, i); + } + }; + + + RESULT() { + return this.getToken(OracleSqlParser.RESULT, 0); + }; + + FINAL() { + return this.getToken(OracleSqlParser.FINAL, 0); + }; + + INSTANTIABLE() { + return this.getToken(OracleSqlParser.INSTANTIABLE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + type_elements_parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Type_elements_parameterContext); + } else { + return this.getTypedRuleContext(Type_elements_parameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + call_spec() { + return this.getTypedRuleContext(Call_specContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + OUT() { + return this.getToken(OracleSqlParser.OUT, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConstructor_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Map_order_function_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_map_order_function_spec; + } + + MEMBER() { + return this.getToken(OracleSqlParser.MEMBER, 0); + }; + + type_function_spec() { + return this.getTypedRuleContext(Type_function_specContext,0); + }; + + MAP() { + return this.getToken(OracleSqlParser.MAP, 0); + }; + + ORDER() { + return this.getToken(OracleSqlParser.ORDER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMap_order_function_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pragma_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pragma_clause; + } + + PRAGMA() { + return this.getToken(OracleSqlParser.PRAGMA, 0); + }; + + RESTRICT_REFERENCES() { + return this.getToken(OracleSqlParser.RESTRICT_REFERENCES, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + pragma_elements = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Pragma_elementsContext); + } else { + return this.getTypedRuleContext(Pragma_elementsContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPragma_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pragma_elementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pragma_elements; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPragma_elements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Type_elements_parameterContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_type_elements_parameter; + } + + parameter_name() { + return this.getTypedRuleContext(Parameter_nameContext,0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitType_elements_parameter(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_sequenceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_sequence; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + SEQUENCE() { + return this.getToken(OracleSqlParser.SEQUENCE, 0); + }; + + sequence_name() { + return this.getTypedRuleContext(Sequence_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_sequence(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_sequenceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_sequence; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + SEQUENCE() { + return this.getToken(OracleSqlParser.SEQUENCE, 0); + }; + + sequence_name() { + return this.getTypedRuleContext(Sequence_nameContext,0); + }; + + sequence_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sequence_specContext); + } else { + return this.getTypedRuleContext(Sequence_specContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_sequence(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_sessionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_session; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + SESSION() { + return this.getToken(OracleSqlParser.SESSION, 0); + }; + + ADVISE() { + return this.getToken(OracleSqlParser.ADVISE, 0); + }; + + CLOSE() { + return this.getToken(OracleSqlParser.CLOSE, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + LINK() { + return this.getToken(OracleSqlParser.LINK, 0); + }; + + parameter_name() { + return this.getTypedRuleContext(Parameter_nameContext,0); + }; + + enable_or_disable() { + return this.getTypedRuleContext(Enable_or_disableContext,0); + }; + + COMMIT() { + return this.getToken(OracleSqlParser.COMMIT, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + GUARD() { + return this.getToken(OracleSqlParser.GUARD, 0); + }; + + PARALLEL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PARALLEL); + } else { + return this.getToken(OracleSqlParser.PARALLEL, i); + } + }; + + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + alter_session_set_clause() { + return this.getTypedRuleContext(Alter_session_set_clauseContext,0); + }; + + ROLLBACK() { + return this.getToken(OracleSqlParser.ROLLBACK, 0); + }; + + NOTHING() { + return this.getToken(OracleSqlParser.NOTHING, 0); + }; + + DML() { + return this.getToken(OracleSqlParser.DML, 0); + }; + + DDL() { + return this.getToken(OracleSqlParser.DDL, 0); + }; + + QUERY() { + return this.getToken(OracleSqlParser.QUERY, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + literal() { + return this.getTypedRuleContext(LiteralContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_session(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_session_set_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_session_set_clause; + this.en = null; + this.cn = null; + this.sn = null; + this.c = null; + } + + parameter_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parameter_nameContext); + } else { + return this.getTypedRuleContext(Parameter_nameContext,i); + } + }; + + EQUALS_OP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EQUALS_OP); + } else { + return this.getToken(OracleSqlParser.EQUALS_OP, i); + } + }; + + + parameter_value = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parameter_valueContext); + } else { + return this.getTypedRuleContext(Parameter_valueContext,i); + } + }; + + EDITION() { + return this.getToken(OracleSqlParser.EDITION, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + CONTAINER() { + return this.getToken(OracleSqlParser.CONTAINER, 0); + }; + + SERVICE() { + return this.getToken(OracleSqlParser.SERVICE, 0); + }; + + ROW() { + return this.getToken(OracleSqlParser.ROW, 0); + }; + + ARCHIVAL() { + return this.getToken(OracleSqlParser.ARCHIVAL, 0); + }; + + VISIBILITY() { + return this.getToken(OracleSqlParser.VISIBILITY, 0); + }; + + ACTIVE() { + return this.getToken(OracleSqlParser.ACTIVE, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + DEFAULT_COLLATION() { + return this.getToken(OracleSqlParser.DEFAULT_COLLATION, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_session_set_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_sequenceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_sequence; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + SEQUENCE() { + return this.getToken(OracleSqlParser.SEQUENCE, 0); + }; + + sequence_name() { + return this.getTypedRuleContext(Sequence_nameContext,0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + sequence_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sequence_specContext); + } else { + return this.getTypedRuleContext(Sequence_specContext,i); + } + }; + + SHARING() { + return this.getToken(OracleSqlParser.SHARING, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + METADATA() { + return this.getToken(OracleSqlParser.METADATA, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_sequence(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sequence_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sequence_spec; + } + + INCREMENT() { + return this.getToken(OracleSqlParser.INCREMENT, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + sequence_start_clause() { + return this.getTypedRuleContext(Sequence_start_clauseContext,0); + }; + + MAXVALUE() { + return this.getToken(OracleSqlParser.MAXVALUE, 0); + }; + + NOMAXVALUE() { + return this.getToken(OracleSqlParser.NOMAXVALUE, 0); + }; + + MINVALUE() { + return this.getToken(OracleSqlParser.MINVALUE, 0); + }; + + NOMINVALUE() { + return this.getToken(OracleSqlParser.NOMINVALUE, 0); + }; + + CYCLE() { + return this.getToken(OracleSqlParser.CYCLE, 0); + }; + + NOCYCLE() { + return this.getToken(OracleSqlParser.NOCYCLE, 0); + }; + + CACHE() { + return this.getToken(OracleSqlParser.CACHE, 0); + }; + + NOCACHE() { + return this.getToken(OracleSqlParser.NOCACHE, 0); + }; + + ORDER() { + return this.getToken(OracleSqlParser.ORDER, 0); + }; + + NOORDER() { + return this.getToken(OracleSqlParser.NOORDER, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + NOKEEP() { + return this.getToken(OracleSqlParser.NOKEEP, 0); + }; + + SCALE() { + return this.getToken(OracleSqlParser.SCALE, 0); + }; + + EXTEND() { + return this.getToken(OracleSqlParser.EXTEND, 0); + }; + + NOEXTEND() { + return this.getToken(OracleSqlParser.NOEXTEND, 0); + }; + + NOSCALE() { + return this.getToken(OracleSqlParser.NOSCALE, 0); + }; + + SHARD() { + return this.getToken(OracleSqlParser.SHARD, 0); + }; + + NOSHARD() { + return this.getToken(OracleSqlParser.NOSHARD, 0); + }; + + SESSION() { + return this.getToken(OracleSqlParser.SESSION, 0); + }; + + GLOBAL() { + return this.getToken(OracleSqlParser.GLOBAL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSequence_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sequence_start_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sequence_start_clause; + } + + START() { + return this.getToken(OracleSqlParser.START, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSequence_start_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_analytic_viewContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_analytic_view; + this.av = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + ANALYTIC() { + return this.getToken(OracleSqlParser.ANALYTIC, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + SHARING() { + return this.getToken(OracleSqlParser.SHARING, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + classification_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Classification_clauseContext); + } else { + return this.getTypedRuleContext(Classification_clauseContext,i); + } + }; + + cav_using_clause() { + return this.getTypedRuleContext(Cav_using_clauseContext,0); + }; + + dim_by_clause() { + return this.getTypedRuleContext(Dim_by_clauseContext,0); + }; + + measures_clause() { + return this.getTypedRuleContext(Measures_clauseContext,0); + }; + + default_measure_clause() { + return this.getTypedRuleContext(Default_measure_clauseContext,0); + }; + + default_aggregate_clause() { + return this.getTypedRuleContext(Default_aggregate_clauseContext,0); + }; + + cache_clause() { + return this.getTypedRuleContext(Cache_clauseContext,0); + }; + + fact_columns_clause() { + return this.getTypedRuleContext(Fact_columns_clauseContext,0); + }; + + qry_transform_clause() { + return this.getTypedRuleContext(Qry_transform_clauseContext,0); + }; + + NOFORCE() { + return this.getToken(OracleSqlParser.NOFORCE, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + METADATA() { + return this.getToken(OracleSqlParser.METADATA, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_analytic_view(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Classification_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_classification_clause; + } + + caption_clause() { + return this.getTypedRuleContext(Caption_clauseContext,0); + }; + + description_clause() { + return this.getTypedRuleContext(Description_clauseContext,0); + }; + + classification_item = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Classification_itemContext); + } else { + return this.getTypedRuleContext(Classification_itemContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitClassification_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Caption_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_caption_clause; + this.c = null; + } + + CAPTION() { + return this.getToken(OracleSqlParser.CAPTION, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCaption_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Description_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_description_clause; + this.d = null; + } + + DESCRIPTION() { + return this.getToken(OracleSqlParser.DESCRIPTION, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDescription_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Classification_itemContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_classification_item; + this.cn = null; + this.cv = null; + } + + CLASSIFICATION() { + return this.getToken(OracleSqlParser.CLASSIFICATION, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + LANGUAGE() { + return this.getToken(OracleSqlParser.LANGUAGE, 0); + }; + + language() { + return this.getTypedRuleContext(LanguageContext,0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitClassification_item(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class LanguageContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_language; + this.nls = null; + } + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLanguage(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cav_using_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cav_using_clause; + this.t = null; + this.ta = null; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + REMOTE() { + return this.getToken(OracleSqlParser.REMOTE, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCav_using_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dim_by_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dim_by_clause; + } + + DIMENSION() { + return this.getToken(OracleSqlParser.DIMENSION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + dim_key = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Dim_keyContext); + } else { + return this.getTypedRuleContext(Dim_keyContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDim_by_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dim_keyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dim_key; + this.a = null; + this.f = null; + } + + dim_ref() { + return this.getTypedRuleContext(Dim_refContext,0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + REFERENCES() { + return this.getToken(OracleSqlParser.REFERENCES, 0); + }; + + HIERARCHIES() { + return this.getToken(OracleSqlParser.HIERARCHIES, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + hier_ref = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Hier_refContext); + } else { + return this.getTypedRuleContext(Hier_refContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + attribute_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Attribute_nameContext); + } else { + return this.getTypedRuleContext(Attribute_nameContext,i); + } + }; + + classification_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Classification_clauseContext); + } else { + return this.getTypedRuleContext(Classification_clauseContext,i); + } + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + DISTINCT() { + return this.getToken(OracleSqlParser.DISTINCT, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDim_key(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dim_refContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dim_ref; + this.ad = null; + this.da = null; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDim_ref(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hier_refContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hier_ref; + this.h = null; + this.ha = null; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHier_ref(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Measures_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_measures_clause; + } + + MEASURES() { + return this.getToken(OracleSqlParser.MEASURES, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + av_measure = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Av_measureContext); + } else { + return this.getTypedRuleContext(Av_measureContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMeasures_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Av_measureContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_av_measure; + this.mn = null; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + base_meas_clause() { + return this.getTypedRuleContext(Base_meas_clauseContext,0); + }; + + calc_meas_clause() { + return this.getTypedRuleContext(Calc_meas_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAv_measure(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Base_meas_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_base_meas_clause; + this.bm = null; + } + + FACT() { + return this.getToken(OracleSqlParser.FACT, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + meas_aggregate_clause() { + return this.getTypedRuleContext(Meas_aggregate_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBase_meas_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Meas_aggregate_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_meas_aggregate_clause; + } + + AGGREGATE() { + return this.getToken(OracleSqlParser.AGGREGATE, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + aggregate_function_name() { + return this.getTypedRuleContext(Aggregate_function_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMeas_aggregate_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Calc_meas_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_calc_meas_clause; + } + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCalc_meas_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_measure_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_measure_clause; + this.m = null; + } + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + MEASURE() { + return this.getToken(OracleSqlParser.MEASURE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_measure_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_aggregate_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_aggregate_clause; + } + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + AGGREGATE() { + return this.getToken(OracleSqlParser.AGGREGATE, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + aggregate_function_name() { + return this.getTypedRuleContext(Aggregate_function_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_aggregate_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cache_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cache_clause; + } + + CACHE() { + return this.getToken(OracleSqlParser.CACHE, 0); + }; + + cache_specification = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Cache_specificationContext); + } else { + return this.getTypedRuleContext(Cache_specificationContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCache_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cache_specificationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cache_specification; + } + + MEASURE() { + return this.getToken(OracleSqlParser.MEASURE, 0); + }; + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + levels_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Levels_clauseContext); + } else { + return this.getTypedRuleContext(Levels_clauseContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCache_specification(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Levels_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_levels_clause; + } + + LEVELS() { + return this.getToken(OracleSqlParser.LEVELS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + level_specification = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Level_specificationContext); + } else { + return this.getTypedRuleContext(Level_specificationContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + level_group_type() { + return this.getTypedRuleContext(Level_group_typeContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLevels_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Level_specificationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_level_specification; + this.d = null; + this.h = null; + this.l = null; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLevel_specification(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Level_group_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_level_group_type; + this.t = null; + } + + DYNAMIC() { + return this.getToken(OracleSqlParser.DYNAMIC, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLevel_group_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Fact_columns_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_fact_columns_clause; + this.f = null; + this.fa = null; + } + + FACT() { + return this.getToken(OracleSqlParser.FACT, 0); + }; + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + AS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.AS); + } else { + return this.getToken(OracleSqlParser.AS, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFact_columns_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Qry_transform_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_qry_transform_clause; + } + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + QUERY() { + return this.getToken(OracleSqlParser.QUERY, 0); + }; + + TRANSFORM() { + return this.getToken(OracleSqlParser.TRANSFORM, 0); + }; + + RELY() { + return this.getToken(OracleSqlParser.RELY, 0); + }; + + NORELY() { + return this.getToken(OracleSqlParser.NORELY, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitQry_transform_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_attribute_dimensionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_attribute_dimension; + this.ad = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + ATTRIBUTE() { + return this.getToken(OracleSqlParser.ATTRIBUTE, 0); + }; + + DIMENSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DIMENSION); + } else { + return this.getToken(OracleSqlParser.DIMENSION, i); + } + }; + + + ad_using_clause() { + return this.getTypedRuleContext(Ad_using_clauseContext,0); + }; + + attributes_clause() { + return this.getTypedRuleContext(Attributes_clauseContext,0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + SHARING() { + return this.getToken(OracleSqlParser.SHARING, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + classification_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Classification_clauseContext); + } else { + return this.getTypedRuleContext(Classification_clauseContext,i); + } + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + ad_level_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Ad_level_clauseContext); + } else { + return this.getTypedRuleContext(Ad_level_clauseContext,i); + } + }; + + all_clause() { + return this.getTypedRuleContext(All_clauseContext,0); + }; + + NOFORCE() { + return this.getToken(OracleSqlParser.NOFORCE, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + METADATA() { + return this.getToken(OracleSqlParser.METADATA, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + STANDARD() { + return this.getToken(OracleSqlParser.STANDARD, 0); + }; + + TIME() { + return this.getToken(OracleSqlParser.TIME, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_attribute_dimension(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Ad_using_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_ad_using_clause; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + source_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Source_clauseContext); + } else { + return this.getTypedRuleContext(Source_clauseContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + join_path_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Join_path_clauseContext); + } else { + return this.getTypedRuleContext(Join_path_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAd_using_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Source_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_source_clause; + this.ftov = null; + this.a = null; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + REMOTE() { + return this.getToken(OracleSqlParser.REMOTE, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSource_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Join_path_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_join_path_clause; + this.jpn = null; + } + + JOIN() { + return this.getToken(OracleSqlParser.JOIN, 0); + }; + + PATH() { + return this.getToken(OracleSqlParser.PATH, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + join_condition() { + return this.getTypedRuleContext(Join_conditionContext,0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJoin_path_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Join_conditionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_join_condition; + } + + join_condition_item = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Join_condition_itemContext); + } else { + return this.getTypedRuleContext(Join_condition_itemContext,i); + } + }; + + AND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.AND); + } else { + return this.getToken(OracleSqlParser.AND, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJoin_condition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Join_condition_itemContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_join_condition_item; + this.a = null; + this.b = null; + } + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJoin_condition_item(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Attributes_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_attributes_clause; + } + + ATTRIBUTES() { + return this.getToken(OracleSqlParser.ATTRIBUTES, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + ad_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Ad_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Ad_attributes_clauseContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAttributes_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Ad_attributes_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_ad_attributes_clause; + this.a = null; + this.an = null; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + classification_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Classification_clauseContext); + } else { + return this.getTypedRuleContext(Classification_clauseContext,i); + } + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAd_attributes_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Ad_level_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_ad_level_clause; + this.l = null; + } + + LEVEL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEVEL); + } else { + return this.getToken(OracleSqlParser.LEVEL, i); + } + }; + + + key_clause() { + return this.getTypedRuleContext(Key_clauseContext,0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + SKIP_() { + return this.getToken(OracleSqlParser.SKIP_, 0); + }; + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + classification_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Classification_clauseContext); + } else { + return this.getTypedRuleContext(Classification_clauseContext,i); + } + }; + + alternate_key_clause() { + return this.getTypedRuleContext(Alternate_key_clauseContext,0); + }; + + MEMBER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MEMBER); + } else { + return this.getToken(OracleSqlParser.MEMBER, i); + } + }; + + + NAME() { + return this.getToken(OracleSqlParser.NAME, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + CAPTION() { + return this.getToken(OracleSqlParser.CAPTION, 0); + }; + + DESCRIPTION() { + return this.getToken(OracleSqlParser.DESCRIPTION, 0); + }; + + ORDER() { + return this.getToken(OracleSqlParser.ORDER, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + dim_order_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Dim_order_clauseContext); + } else { + return this.getTypedRuleContext(Dim_order_clauseContext,i); + } + }; + + DETERMINES() { + return this.getToken(OracleSqlParser.DETERMINES, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + STANDARD() { + return this.getToken(OracleSqlParser.STANDARD, 0); + }; + + YEARS() { + return this.getToken(OracleSqlParser.YEARS, 0); + }; + + HALF_YEARS() { + return this.getToken(OracleSqlParser.HALF_YEARS, 0); + }; + + QUARTERS() { + return this.getToken(OracleSqlParser.QUARTERS, 0); + }; + + MONTHS() { + return this.getToken(OracleSqlParser.MONTHS, 0); + }; + + WEEKS() { + return this.getToken(OracleSqlParser.WEEKS, 0); + }; + + DAYS() { + return this.getToken(OracleSqlParser.DAYS, 0); + }; + + HOURS() { + return this.getToken(OracleSqlParser.HOURS, 0); + }; + + MINUTES() { + return this.getToken(OracleSqlParser.MINUTES, 0); + }; + + SECONDS() { + return this.getToken(OracleSqlParser.SECONDS, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + MIN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MIN); + } else { + return this.getToken(OracleSqlParser.MIN, i); + } + }; + + + MAX = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MAX); + } else { + return this.getToken(OracleSqlParser.MAX, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAd_level_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Key_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_key_clause; + this.a = null; + } + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitKey_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alternate_key_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alternate_key_clause; + } + + ALTERNATE() { + return this.getToken(OracleSqlParser.ALTERNATE, 0); + }; + + key_clause() { + return this.getTypedRuleContext(Key_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlternate_key_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dim_order_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dim_order_clause; + this.a = null; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + NULLS() { + return this.getToken(OracleSqlParser.NULLS, 0); + }; + + ASC() { + return this.getToken(OracleSqlParser.ASC, 0); + }; + + DESC() { + return this.getToken(OracleSqlParser.DESC, 0); + }; + + FIRST() { + return this.getToken(OracleSqlParser.FIRST, 0); + }; + + LAST() { + return this.getToken(OracleSqlParser.LAST, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDim_order_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class All_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_all_clause; + } + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + MEMBER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MEMBER); + } else { + return this.getToken(OracleSqlParser.MEMBER, i); + } + }; + + + NAME() { + return this.getToken(OracleSqlParser.NAME, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + CAPTION() { + return this.getToken(OracleSqlParser.CAPTION, 0); + }; + + DESCRIPTION() { + return this.getToken(OracleSqlParser.DESCRIPTION, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAll_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_audit_policyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_audit_policy; + this.p = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + AUDIT() { + return this.getToken(OracleSqlParser.AUDIT, 0); + }; + + POLICY() { + return this.getToken(OracleSqlParser.POLICY, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + privilege_audit_clause() { + return this.getTypedRuleContext(Privilege_audit_clauseContext,0); + }; + + action_audit_clause() { + return this.getTypedRuleContext(Action_audit_clauseContext,0); + }; + + role_audit_clause() { + return this.getTypedRuleContext(Role_audit_clauseContext,0); + }; + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + EVALUATE() { + return this.getToken(OracleSqlParser.EVALUATE, 0); + }; + + PER() { + return this.getToken(OracleSqlParser.PER, 0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + TOPLEVEL() { + return this.getToken(OracleSqlParser.TOPLEVEL, 0); + }; + + container_clause() { + return this.getTypedRuleContext(Container_clauseContext,0); + }; + + STATEMENT() { + return this.getToken(OracleSqlParser.STATEMENT, 0); + }; + + SESSION() { + return this.getToken(OracleSqlParser.SESSION, 0); + }; + + INSTANCE() { + return this.getToken(OracleSqlParser.INSTANCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_audit_policy(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Privilege_audit_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_privilege_audit_clause; + } + + PRIVILEGES() { + return this.getToken(OracleSqlParser.PRIVILEGES, 0); + }; + + system_privilege = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(System_privilegeContext); + } else { + return this.getTypedRuleContext(System_privilegeContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPrivilege_audit_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Action_audit_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_action_audit_clause; + } + + standard_actions = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Standard_actionsContext); + } else { + return this.getTypedRuleContext(Standard_actionsContext,i); + } + }; + + component_actions = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Component_actionsContext); + } else { + return this.getTypedRuleContext(Component_actionsContext,i); + } + }; + + system_actions = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(System_actionsContext); + } else { + return this.getTypedRuleContext(System_actionsContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAction_audit_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class System_actionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_system_actions; + } + + ACTIONS() { + return this.getToken(OracleSqlParser.ACTIONS, 0); + }; + + system_privilege = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(System_privilegeContext); + } else { + return this.getTypedRuleContext(System_privilegeContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSystem_actions(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Standard_actionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_standard_actions; + } + + ACTIONS() { + return this.getToken(OracleSqlParser.ACTIONS, 0); + }; + + actions_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Actions_clauseContext); + } else { + return this.getTypedRuleContext(Actions_clauseContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStandard_actions(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Actions_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_actions_clause; + } + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + object_action() { + return this.getTypedRuleContext(Object_actionContext,0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + DIRECTORY() { + return this.getToken(OracleSqlParser.DIRECTORY, 0); + }; + + directory_name() { + return this.getTypedRuleContext(Directory_nameContext,0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + MINING() { + return this.getToken(OracleSqlParser.MINING, 0); + }; + + MODEL() { + return this.getToken(OracleSqlParser.MODEL, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + system_action() { + return this.getTypedRuleContext(System_actionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitActions_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_actionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_action; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + GRANT() { + return this.getToken(OracleSqlParser.GRANT, 0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + EXECUTE() { + return this.getToken(OracleSqlParser.EXECUTE, 0); + }; + + AUDIT() { + return this.getToken(OracleSqlParser.AUDIT, 0); + }; + + COMMENT() { + return this.getToken(OracleSqlParser.COMMENT, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + INSERT() { + return this.getToken(OracleSqlParser.INSERT, 0); + }; + + LOCK() { + return this.getToken(OracleSqlParser.LOCK, 0); + }; + + SELECT() { + return this.getToken(OracleSqlParser.SELECT, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + FLASHBACK() { + return this.getToken(OracleSqlParser.FLASHBACK, 0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_action(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class System_actionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_system_action; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + JAVA() { + return this.getToken(OracleSqlParser.JAVA, 0); + }; + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + LOCK() { + return this.getToken(OracleSqlParser.LOCK, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + DIRECTORY() { + return this.getToken(OracleSqlParser.DIRECTORY, 0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + WRITE() { + return this.getToken(OracleSqlParser.WRITE, 0); + }; + + EXECUTE() { + return this.getToken(OracleSqlParser.EXECUTE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSystem_action(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Component_actionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_component_actions; + } + + ACTIONS() { + return this.getToken(OracleSqlParser.ACTIONS, 0); + }; + + COMPONENT() { + return this.getToken(OracleSqlParser.COMPONENT, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + component_action = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Component_actionContext); + } else { + return this.getTypedRuleContext(Component_actionContext,i); + } + }; + + DV() { + return this.getToken(OracleSqlParser.DV, 0); + }; + + ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ON); + } else { + return this.getToken(OracleSqlParser.ON, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PROTOCOL() { + return this.getToken(OracleSqlParser.PROTOCOL, 0); + }; + + DATAPUMP() { + return this.getToken(OracleSqlParser.DATAPUMP, 0); + }; + + DIRECT_LOAD() { + return this.getToken(OracleSqlParser.DIRECT_LOAD, 0); + }; + + OLS() { + return this.getToken(OracleSqlParser.OLS, 0); + }; + + XS() { + return this.getToken(OracleSqlParser.XS, 0); + }; + + FTP() { + return this.getToken(OracleSqlParser.FTP, 0); + }; + + HTTP() { + return this.getToken(OracleSqlParser.HTTP, 0); + }; + + AUTHENTICATION() { + return this.getToken(OracleSqlParser.AUTHENTICATION, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitComponent_actions(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Component_actionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_component_action; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitComponent_action(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Role_audit_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_role_audit_clause; + } + + ROLES() { + return this.getToken(OracleSqlParser.ROLES, 0); + }; + + role_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Role_nameContext); + } else { + return this.getTypedRuleContext(Role_nameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRole_audit_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_controlfileContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_controlfile; + this.d = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + CONTROLFILE() { + return this.getToken(OracleSqlParser.CONTROLFILE, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + RESETLOGS() { + return this.getToken(OracleSqlParser.RESETLOGS, 0); + }; + + NORESETLOGS() { + return this.getToken(OracleSqlParser.NORESETLOGS, 0); + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + logfile_clause() { + return this.getTypedRuleContext(Logfile_clauseContext,0); + }; + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + file_specification = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(File_specificationContext); + } else { + return this.getTypedRuleContext(File_specificationContext,i); + } + }; + + controlfile_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Controlfile_optionsContext); + } else { + return this.getTypedRuleContext(Controlfile_optionsContext,i); + } + }; + + character_set_clause() { + return this.getTypedRuleContext(Character_set_clauseContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_controlfile(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Controlfile_optionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_controlfile_options; + } + + MAXLOGFILES() { + return this.getToken(OracleSqlParser.MAXLOGFILES, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + MAXLOGMEMBERS() { + return this.getToken(OracleSqlParser.MAXLOGMEMBERS, 0); + }; + + MAXLOGHISTORY() { + return this.getToken(OracleSqlParser.MAXLOGHISTORY, 0); + }; + + MAXDATAFILES() { + return this.getToken(OracleSqlParser.MAXDATAFILES, 0); + }; + + MAXINSTANCES() { + return this.getToken(OracleSqlParser.MAXINSTANCES, 0); + }; + + ARCHIVELOG() { + return this.getToken(OracleSqlParser.ARCHIVELOG, 0); + }; + + NOARCHIVELOG() { + return this.getToken(OracleSqlParser.NOARCHIVELOG, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + LOGGING() { + return this.getToken(OracleSqlParser.LOGGING, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + NOLOGGING() { + return this.getToken(OracleSqlParser.NOLOGGING, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + AVAILABILITY() { + return this.getToken(OracleSqlParser.AVAILABILITY, 0); + }; + + LOAD() { + return this.getToken(OracleSqlParser.LOAD, 0); + }; + + PERFORMANCE() { + return this.getToken(OracleSqlParser.PERFORMANCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitControlfile_options(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Logfile_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_logfile_clause; + } + + LOGFILE() { + return this.getToken(OracleSqlParser.LOGFILE, 0); + }; + + file_specification = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(File_specificationContext); + } else { + return this.getTypedRuleContext(File_specificationContext,i); + } + }; + + numeric = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(NumericContext); + } else { + return this.getTypedRuleContext(NumericContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + GROUP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.GROUP); + } else { + return this.getToken(OracleSqlParser.GROUP, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLogfile_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Character_set_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_character_set_clause; + this.cs = null; + } + + CHARACTER() { + return this.getToken(OracleSqlParser.CHARACTER, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCharacter_set_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class File_specificationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_file_specification; + } + + datafile_tempfile_spec() { + return this.getTypedRuleContext(Datafile_tempfile_specContext,0); + }; + + redo_log_file_spec() { + return this.getTypedRuleContext(Redo_log_file_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFile_specification(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_diskgroupContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_diskgroup; + this.sn = null; + this.fg = null; + this.an = null; + this.av = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + DISKGROUP() { + return this.getToken(OracleSqlParser.DISKGROUP, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + REDUNDANCY() { + return this.getToken(OracleSqlParser.REDUNDANCY, 0); + }; + + DISK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DISK); + } else { + return this.getToken(OracleSqlParser.DISK, i); + } + }; + + + qualified_disk_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Qualified_disk_clauseContext); + } else { + return this.getTypedRuleContext(Qualified_disk_clauseContext,i); + } + }; + + ATTRIBUTE() { + return this.getToken(OracleSqlParser.ATTRIBUTE, 0); + }; + + EQUALS_OP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EQUALS_OP); + } else { + return this.getToken(OracleSqlParser.EQUALS_OP, i); + } + }; + + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + HIGH() { + return this.getToken(OracleSqlParser.HIGH, 0); + }; + + NORMAL() { + return this.getToken(OracleSqlParser.NORMAL, 0); + }; + + FLEX() { + return this.getToken(OracleSqlParser.FLEX, 0); + }; + + EXTENDED() { + return this.getToken(OracleSqlParser.EXTENDED, 0); + }; + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + quorum_regular = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Quorum_regularContext); + } else { + return this.getTypedRuleContext(Quorum_regularContext,i); + } + }; + + FAILGROUP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FAILGROUP); + } else { + return this.getToken(OracleSqlParser.FAILGROUP, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + SITE() { + return this.getToken(OracleSqlParser.SITE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_diskgroup(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Qualified_disk_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_qualified_disk_clause; + this.ss = null; + this.dn = null; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + NAME() { + return this.getToken(OracleSqlParser.NAME, 0); + }; + + SIZE() { + return this.getToken(OracleSqlParser.SIZE, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + force_noforce() { + return this.getTypedRuleContext(Force_noforceContext,0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitQualified_disk_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_editionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_edition; + this.e = null; + this.pe = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + EDITION() { + return this.getToken(OracleSqlParser.EDITION, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + CHILD() { + return this.getToken(OracleSqlParser.CHILD, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_edition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_flashback_archiveContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_flashback_archive; + this.fa = null; + this.ts = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + FLASHBACK() { + return this.getToken(OracleSqlParser.FLASHBACK, 0); + }; + + ARCHIVE() { + return this.getToken(OracleSqlParser.ARCHIVE, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + flashback_archive_retention() { + return this.getTypedRuleContext(Flashback_archive_retentionContext,0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + flashback_archive_quota() { + return this.getTypedRuleContext(Flashback_archive_quotaContext,0); + }; + + OPTIMIZE() { + return this.getToken(OracleSqlParser.OPTIMIZE, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_flashback_archive(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Flashback_archive_quotaContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_flashback_archive_quota; + } + + QUOTA() { + return this.getToken(OracleSqlParser.QUOTA, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + M_LETTER() { + return this.getToken(OracleSqlParser.M_LETTER, 0); + }; + + G_LETTER() { + return this.getToken(OracleSqlParser.G_LETTER, 0); + }; + + T_LETTER() { + return this.getToken(OracleSqlParser.T_LETTER, 0); + }; + + P_LETTER() { + return this.getToken(OracleSqlParser.P_LETTER, 0); + }; + + E_LETTER() { + return this.getToken(OracleSqlParser.E_LETTER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFlashback_archive_quota(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Flashback_archive_retentionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_flashback_archive_retention; + } + + RETENTION() { + return this.getToken(OracleSqlParser.RETENTION, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + YEAR() { + return this.getToken(OracleSqlParser.YEAR, 0); + }; + + MONTH() { + return this.getToken(OracleSqlParser.MONTH, 0); + }; + + DAY() { + return this.getToken(OracleSqlParser.DAY, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFlashback_archive_retention(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_hierarchyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_hierarchy; + this.h = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + HIERARCHY() { + return this.getToken(OracleSqlParser.HIERARCHY, 0); + }; + + hier_using_clause() { + return this.getTypedRuleContext(Hier_using_clauseContext,0); + }; + + level_hier_clause() { + return this.getTypedRuleContext(Level_hier_clauseContext,0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + SHARING() { + return this.getToken(OracleSqlParser.SHARING, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + classification_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Classification_clauseContext); + } else { + return this.getTypedRuleContext(Classification_clauseContext,i); + } + }; + + hier_attrs_clause() { + return this.getTypedRuleContext(Hier_attrs_clauseContext,0); + }; + + METADATA() { + return this.getToken(OracleSqlParser.METADATA, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_hierarchy(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hier_using_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hier_using_clause; + this.ad = null; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHier_using_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Level_hier_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_level_hier_clause; + this.l = null; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + CHILD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHILD); + } else { + return this.getToken(OracleSqlParser.CHILD, i); + } + }; + + + OF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OF); + } else { + return this.getToken(OracleSqlParser.OF, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLevel_hier_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hier_attrs_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hier_attrs_clause; + } + + HIERARCHICAL() { + return this.getToken(OracleSqlParser.HIERARCHICAL, 0); + }; + + ATTRIBUTES() { + return this.getToken(OracleSqlParser.ATTRIBUTES, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + hier_attr_clause() { + return this.getTypedRuleContext(Hier_attr_clauseContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHier_attrs_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hier_attr_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hier_attr_clause; + } + + hier_attr_name() { + return this.getTypedRuleContext(Hier_attr_nameContext,0); + }; + + classification_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Classification_clauseContext); + } else { + return this.getTypedRuleContext(Classification_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHier_attr_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hier_attr_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hier_attr_name; + } + + MEMBER_NAME() { + return this.getToken(OracleSqlParser.MEMBER_NAME, 0); + }; + + MEMBER_UNIQUE_NAME() { + return this.getToken(OracleSqlParser.MEMBER_UNIQUE_NAME, 0); + }; + + MEMBER_CAPTION() { + return this.getToken(OracleSqlParser.MEMBER_CAPTION, 0); + }; + + MEMBER_DESCRIPTION() { + return this.getToken(OracleSqlParser.MEMBER_DESCRIPTION, 0); + }; + + LEVEL_NAME() { + return this.getToken(OracleSqlParser.LEVEL_NAME, 0); + }; + + HIER_ORDER() { + return this.getToken(OracleSqlParser.HIER_ORDER, 0); + }; + + DEPTH() { + return this.getToken(OracleSqlParser.DEPTH, 0); + }; + + IS_LEAF() { + return this.getToken(OracleSqlParser.IS_LEAF, 0); + }; + + PARENT_LEVEL_NAME() { + return this.getToken(OracleSqlParser.PARENT_LEVEL_NAME, 0); + }; + + PARENT_UNIQUE_NAME() { + return this.getToken(OracleSqlParser.PARENT_UNIQUE_NAME, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHier_attr_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_indexContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_index; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + index_name() { + return this.getTypedRuleContext(Index_nameContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + cluster_index_clause() { + return this.getTypedRuleContext(Cluster_index_clauseContext,0); + }; + + table_index_clause() { + return this.getTypedRuleContext(Table_index_clauseContext,0); + }; + + bitmap_join_index_clause() { + return this.getTypedRuleContext(Bitmap_join_index_clauseContext,0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + INVALIDATION() { + return this.getToken(OracleSqlParser.INVALIDATION, 0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + BITMAP() { + return this.getToken(OracleSqlParser.BITMAP, 0); + }; + + USABLE() { + return this.getToken(OracleSqlParser.USABLE, 0); + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + DEFERRED() { + return this.getToken(OracleSqlParser.DEFERRED, 0); + }; + + IMMEDIATE() { + return this.getToken(OracleSqlParser.IMMEDIATE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_index(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cluster_index_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cluster_index_clause; + } + + CLUSTER() { + return this.getToken(OracleSqlParser.CLUSTER, 0); + }; + + cluster_name() { + return this.getTypedRuleContext(Cluster_nameContext,0); + }; + + index_attributes() { + return this.getTypedRuleContext(Index_attributesContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCluster_index_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cluster_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cluster_name; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCluster_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_index_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_index_clause; + } + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + index_expr = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Index_exprContext); + } else { + return this.getTypedRuleContext(Index_exprContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + table_alias() { + return this.getTypedRuleContext(Table_aliasContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + index_properties() { + return this.getTypedRuleContext(Index_propertiesContext,0); + }; + + ASC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ASC); + } else { + return this.getToken(OracleSqlParser.ASC, i); + } + }; + + + DESC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DESC); + } else { + return this.getToken(OracleSqlParser.DESC, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_index_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Bitmap_join_index_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_bitmap_join_index_clause; + } + + tableview_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Tableview_nameContext); + } else { + return this.getTypedRuleContext(Tableview_nameContext,i); + } + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + table_alias = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_aliasContext); + } else { + return this.getTypedRuleContext(Table_aliasContext,i); + } + }; + + where_clause() { + return this.getTypedRuleContext(Where_clauseContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + local_partitioned_index() { + return this.getTypedRuleContext(Local_partitioned_indexContext,0); + }; + + index_attributes() { + return this.getTypedRuleContext(Index_attributesContext,0); + }; + + ASC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ASC); + } else { + return this.getToken(OracleSqlParser.ASC, i); + } + }; + + + DESC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DESC); + } else { + return this.getToken(OracleSqlParser.DESC, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBitmap_join_index_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Index_exprContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_index_expr; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndex_expr(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Index_propertiesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_index_properties; + } + + global_partitioned_index = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Global_partitioned_indexContext); + } else { + return this.getTypedRuleContext(Global_partitioned_indexContext,i); + } + }; + + local_partitioned_index = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Local_partitioned_indexContext); + } else { + return this.getTypedRuleContext(Local_partitioned_indexContext,i); + } + }; + + index_attributes = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Index_attributesContext); + } else { + return this.getTypedRuleContext(Index_attributesContext,i); + } + }; + + INDEXTYPE() { + return this.getToken(OracleSqlParser.INDEXTYPE, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + domain_index_clause() { + return this.getTypedRuleContext(Domain_index_clauseContext,0); + }; + + xmlindex_clause() { + return this.getTypedRuleContext(Xmlindex_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndex_properties(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Domain_index_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_domain_index_clause; + } + + indextype() { + return this.getTypedRuleContext(IndextypeContext,0); + }; + + local_domain_index_clause() { + return this.getTypedRuleContext(Local_domain_index_clauseContext,0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + PARAMETERS() { + return this.getToken(OracleSqlParser.PARAMETERS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + odci_parameters() { + return this.getTypedRuleContext(Odci_parametersContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDomain_index_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Local_domain_index_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_local_domain_index_clause; + } + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + PARTITION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PARTITION); + } else { + return this.getToken(OracleSqlParser.PARTITION, i); + } + }; + + + partition_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partition_nameContext); + } else { + return this.getTypedRuleContext(Partition_nameContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + PARAMETERS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PARAMETERS); + } else { + return this.getToken(OracleSqlParser.PARAMETERS, i); + } + }; + + + odci_parameters = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Odci_parametersContext); + } else { + return this.getTypedRuleContext(Odci_parametersContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLocal_domain_index_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xmlindex_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmlindex_clause; + } + + XMLINDEX() { + return this.getToken(OracleSqlParser.XMLINDEX, 0); + }; + + XDB() { + return this.getToken(OracleSqlParser.XDB, 0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + local_xmlindex_clause() { + return this.getTypedRuleContext(Local_xmlindex_clauseContext,0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmlindex_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Local_xmlindex_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_local_xmlindex_clause; + } + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + PARTITION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PARTITION); + } else { + return this.getToken(OracleSqlParser.PARTITION, i); + } + }; + + + partition_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partition_nameContext); + } else { + return this.getTypedRuleContext(Partition_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLocal_xmlindex_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Global_partitioned_indexContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_global_partitioned_index; + } + + GLOBAL() { + return this.getToken(OracleSqlParser.GLOBAL, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + RANGE() { + return this.getToken(OracleSqlParser.RANGE, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + index_partitioning_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Index_partitioning_clauseContext); + } else { + return this.getTypedRuleContext(Index_partitioning_clauseContext,i); + } + }; + + HASH() { + return this.getToken(OracleSqlParser.HASH, 0); + }; + + individual_hash_partitions() { + return this.getTypedRuleContext(Individual_hash_partitionsContext,0); + }; + + hash_partitions_by_quantity() { + return this.getTypedRuleContext(Hash_partitions_by_quantityContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGlobal_partitioned_index(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Index_partitioning_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_index_partitioning_clause; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + VALUES() { + return this.getToken(OracleSqlParser.VALUES, 0); + }; + + LESS() { + return this.getToken(OracleSqlParser.LESS, 0); + }; + + THAN() { + return this.getToken(OracleSqlParser.THAN, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + index_partitioning_values_list() { + return this.getTypedRuleContext(Index_partitioning_values_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + segment_attributes_clause() { + return this.getTypedRuleContext(Segment_attributes_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndex_partitioning_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Index_partitioning_values_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_index_partitioning_values_list; + } + + literal = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(LiteralContext); + } else { + return this.getTypedRuleContext(LiteralContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + TIMESTAMP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TIMESTAMP); + } else { + return this.getToken(OracleSqlParser.TIMESTAMP, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndex_partitioning_values_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Local_partitioned_indexContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_local_partitioned_index; + } + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + on_range_partitioned_table() { + return this.getTypedRuleContext(On_range_partitioned_tableContext,0); + }; + + on_list_partitioned_table() { + return this.getTypedRuleContext(On_list_partitioned_tableContext,0); + }; + + on_hash_partitioned_table() { + return this.getTypedRuleContext(On_hash_partitioned_tableContext,0); + }; + + on_comp_partitioned_table() { + return this.getTypedRuleContext(On_comp_partitioned_tableContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLocal_partitioned_index(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class On_range_partitioned_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_on_range_partitioned_table; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + partitioned_table = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partitioned_tableContext); + } else { + return this.getTypedRuleContext(Partitioned_tableContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOn_range_partitioned_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class On_list_partitioned_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_on_list_partitioned_table; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + partitioned_table = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partitioned_tableContext); + } else { + return this.getTypedRuleContext(Partitioned_tableContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOn_list_partitioned_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Partitioned_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_partitioned_table; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + segment_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Segment_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Segment_attributes_clauseContext,i); + } + }; + + key_compression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Key_compressionContext); + } else { + return this.getTypedRuleContext(Key_compressionContext,i); + } + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPartitioned_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class On_hash_partitioned_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_on_hash_partitioned_table; + } + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + on_hash_partitioned_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(On_hash_partitioned_clauseContext); + } else { + return this.getTypedRuleContext(On_hash_partitioned_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOn_hash_partitioned_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class On_hash_partitioned_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_on_hash_partitioned_clause; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + key_compression() { + return this.getTypedRuleContext(Key_compressionContext,0); + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOn_hash_partitioned_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class On_comp_partitioned_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_on_comp_partitioned_table; + } + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + on_comp_partitioned_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(On_comp_partitioned_clauseContext); + } else { + return this.getTypedRuleContext(On_comp_partitioned_clauseContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOn_comp_partitioned_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class On_comp_partitioned_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_on_comp_partitioned_clause; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + segment_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Segment_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Segment_attributes_clauseContext,i); + } + }; + + key_compression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Key_compressionContext); + } else { + return this.getTypedRuleContext(Key_compressionContext,i); + } + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + index_subpartition_clause() { + return this.getTypedRuleContext(Index_subpartition_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOn_comp_partitioned_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Index_subpartition_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_index_subpartition_clause; + } + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + index_subpartition_subclause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Index_subpartition_subclauseContext); + } else { + return this.getTypedRuleContext(Index_subpartition_subclauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndex_subpartition_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Index_subpartition_subclauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_index_subpartition_subclause; + } + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + subpartition_name() { + return this.getTypedRuleContext(Subpartition_nameContext,0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + key_compression() { + return this.getTypedRuleContext(Key_compressionContext,0); + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndex_subpartition_subclause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Odci_parametersContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_odci_parameters; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOdci_parameters(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class IndextypeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_indextype; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndextype(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_indexContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_index; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + index_name() { + return this.getTypedRuleContext(Index_nameContext,0); + }; + + alter_index_ops_set1() { + return this.getTypedRuleContext(Alter_index_ops_set1Context,0); + }; + + alter_index_ops_set2() { + return this.getTypedRuleContext(Alter_index_ops_set2Context,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_index(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_index_ops_set1Context extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_index_ops_set1; + } + + deallocate_unused_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Deallocate_unused_clauseContext); + } else { + return this.getTypedRuleContext(Deallocate_unused_clauseContext,i); + } + }; + + allocate_extent_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Allocate_extent_clauseContext); + } else { + return this.getTypedRuleContext(Allocate_extent_clauseContext,i); + } + }; + + shrink_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Shrink_clauseContext); + } else { + return this.getTypedRuleContext(Shrink_clauseContext,i); + } + }; + + parallel_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parallel_clauseContext); + } else { + return this.getTypedRuleContext(Parallel_clauseContext,i); + } + }; + + physical_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Physical_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Physical_attributes_clauseContext,i); + } + }; + + logging_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logging_clauseContext); + } else { + return this.getTypedRuleContext(Logging_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_index_ops_set1(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_index_ops_set2Context extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_index_ops_set2; + } + + rebuild_clause() { + return this.getTypedRuleContext(Rebuild_clauseContext,0); + }; + + PARAMETERS() { + return this.getToken(OracleSqlParser.PARAMETERS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + odci_parameters() { + return this.getTypedRuleContext(Odci_parametersContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + enable_or_disable() { + return this.getTypedRuleContext(Enable_or_disableContext,0); + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + visible_or_invisible() { + return this.getTypedRuleContext(Visible_or_invisibleContext,0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + new_index_name() { + return this.getTypedRuleContext(New_index_nameContext,0); + }; + + COALESCE() { + return this.getToken(OracleSqlParser.COALESCE, 0); + }; + + monitoring_nomonitoring() { + return this.getTypedRuleContext(Monitoring_nomonitoringContext,0); + }; + + USAGE() { + return this.getToken(OracleSqlParser.USAGE, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + BLOCK() { + return this.getToken(OracleSqlParser.BLOCK, 0); + }; + + REFERENCES() { + return this.getToken(OracleSqlParser.REFERENCES, 0); + }; + + alter_index_partitioning() { + return this.getTypedRuleContext(Alter_index_partitioningContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_index_ops_set2(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Visible_or_invisibleContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_visible_or_invisible; + } + + VISIBLE() { + return this.getToken(OracleSqlParser.VISIBLE, 0); + }; + + INVISIBLE() { + return this.getToken(OracleSqlParser.INVISIBLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitVisible_or_invisible(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Monitoring_nomonitoringContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_monitoring_nomonitoring; + } + + MONITORING() { + return this.getToken(OracleSqlParser.MONITORING, 0); + }; + + NOMONITORING() { + return this.getToken(OracleSqlParser.NOMONITORING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMonitoring_nomonitoring(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Rebuild_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_rebuild_clause; + } + + REBUILD() { + return this.getToken(OracleSqlParser.REBUILD, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + subpartition_name() { + return this.getTypedRuleContext(Subpartition_nameContext,0); + }; + + REVERSE() { + return this.getToken(OracleSqlParser.REVERSE, 0); + }; + + NOREVERSE() { + return this.getToken(OracleSqlParser.NOREVERSE, 0); + }; + + parallel_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parallel_clauseContext); + } else { + return this.getTypedRuleContext(Parallel_clauseContext,i); + } + }; + + TABLESPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLESPACE); + } else { + return this.getToken(OracleSqlParser.TABLESPACE, i); + } + }; + + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + PARAMETERS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PARAMETERS); + } else { + return this.getToken(OracleSqlParser.PARAMETERS, i); + } + }; + + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + odci_parameters = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Odci_parametersContext); + } else { + return this.getTypedRuleContext(Odci_parametersContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + ONLINE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ONLINE); + } else { + return this.getToken(OracleSqlParser.ONLINE, i); + } + }; + + + physical_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Physical_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Physical_attributes_clauseContext,i); + } + }; + + key_compression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Key_compressionContext); + } else { + return this.getTypedRuleContext(Key_compressionContext,i); + } + }; + + logging_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logging_clauseContext); + } else { + return this.getTypedRuleContext(Logging_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRebuild_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_index_partitioningContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_index_partitioning; + } + + modify_index_default_attrs() { + return this.getTypedRuleContext(Modify_index_default_attrsContext,0); + }; + + add_hash_index_partition() { + return this.getTypedRuleContext(Add_hash_index_partitionContext,0); + }; + + modify_index_partition() { + return this.getTypedRuleContext(Modify_index_partitionContext,0); + }; + + rename_index_partition() { + return this.getTypedRuleContext(Rename_index_partitionContext,0); + }; + + drop_index_partition() { + return this.getTypedRuleContext(Drop_index_partitionContext,0); + }; + + split_index_partition() { + return this.getTypedRuleContext(Split_index_partitionContext,0); + }; + + coalesce_index_partition() { + return this.getTypedRuleContext(Coalesce_index_partitionContext,0); + }; + + modify_index_subpartition() { + return this.getTypedRuleContext(Modify_index_subpartitionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_index_partitioning(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_index_default_attrsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_index_default_attrs; + } + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEFAULT); + } else { + return this.getToken(OracleSqlParser.DEFAULT, i); + } + }; + + + ATTRIBUTES() { + return this.getToken(OracleSqlParser.ATTRIBUTES, 0); + }; + + physical_attributes_clause() { + return this.getTypedRuleContext(Physical_attributes_clauseContext,0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + logging_clause() { + return this.getTypedRuleContext(Logging_clauseContext,0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_index_default_attrs(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_hash_index_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_hash_index_partition; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + key_compression() { + return this.getTypedRuleContext(Key_compressionContext,0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_hash_index_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Coalesce_index_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_coalesce_index_partition; + } + + COALESCE() { + return this.getToken(OracleSqlParser.COALESCE, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCoalesce_index_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_index_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_index_partition; + } + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + PARAMETERS() { + return this.getToken(OracleSqlParser.PARAMETERS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + odci_parameters() { + return this.getTypedRuleContext(Odci_parametersContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COALESCE() { + return this.getToken(OracleSqlParser.COALESCE, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + BLOCK() { + return this.getToken(OracleSqlParser.BLOCK, 0); + }; + + REFERENCES() { + return this.getToken(OracleSqlParser.REFERENCES, 0); + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + modify_index_partitions_ops = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Modify_index_partitions_opsContext); + } else { + return this.getTypedRuleContext(Modify_index_partitions_opsContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_index_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_index_partitions_opsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_index_partitions_ops; + } + + deallocate_unused_clause() { + return this.getTypedRuleContext(Deallocate_unused_clauseContext,0); + }; + + allocate_extent_clause() { + return this.getTypedRuleContext(Allocate_extent_clauseContext,0); + }; + + physical_attributes_clause() { + return this.getTypedRuleContext(Physical_attributes_clauseContext,0); + }; + + logging_clause() { + return this.getTypedRuleContext(Logging_clauseContext,0); + }; + + key_compression() { + return this.getTypedRuleContext(Key_compressionContext,0); + }; + + shrink_clause() { + return this.getTypedRuleContext(Shrink_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_index_partitions_ops(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Rename_index_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_rename_index_partition; + } + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + new_partition_name() { + return this.getTypedRuleContext(New_partition_nameContext,0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + subpartition_name() { + return this.getTypedRuleContext(Subpartition_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRename_index_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_index_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_index_partition; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_index_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Split_index_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_split_index_partition; + } + + SPLIT() { + return this.getToken(OracleSqlParser.SPLIT, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name_old() { + return this.getTypedRuleContext(Partition_name_oldContext,0); + }; + + AT() { + return this.getToken(OracleSqlParser.AT, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + literal = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(LiteralContext); + } else { + return this.getTypedRuleContext(LiteralContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + index_partition_description = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Index_partition_descriptionContext); + } else { + return this.getTypedRuleContext(Index_partition_descriptionContext,i); + } + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSplit_index_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Index_partition_descriptionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_index_partition_description; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + PARAMETERS() { + return this.getToken(OracleSqlParser.PARAMETERS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + odci_parameters() { + return this.getTypedRuleContext(Odci_parametersContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + segment_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Segment_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Segment_attributes_clauseContext,i); + } + }; + + key_compression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Key_compressionContext); + } else { + return this.getTypedRuleContext(Key_compressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndex_partition_description(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_index_subpartitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_index_subpartition; + } + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + subpartition_name() { + return this.getTypedRuleContext(Subpartition_nameContext,0); + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + allocate_extent_clause() { + return this.getTypedRuleContext(Allocate_extent_clauseContext,0); + }; + + deallocate_unused_clause() { + return this.getTypedRuleContext(Deallocate_unused_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_index_subpartition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Partition_name_oldContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_partition_name_old; + } + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPartition_name_old(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class New_partition_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_new_partition_name; + } + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNew_partition_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class New_index_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_new_index_name; + } + + index_name() { + return this.getTypedRuleContext(Index_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNew_index_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_inmemory_join_groupContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_inmemory_join_group; + this.jg = null; + this.t = null; + this.c = null; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + INMEMORY() { + return this.getToken(OracleSqlParser.INMEMORY, 0); + }; + + JOIN() { + return this.getToken(OracleSqlParser.JOIN, 0); + }; + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + REMOVE() { + return this.getToken(OracleSqlParser.REMOVE, 0); + }; + + schema_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Schema_nameContext); + } else { + return this.getTypedRuleContext(Schema_nameContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_inmemory_join_group(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_userContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_user; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + USER() { + return this.getToken(OracleSqlParser.USER, 0); + }; + + user_object_name() { + return this.getTypedRuleContext(User_object_nameContext,0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + identified_by = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Identified_byContext); + } else { + return this.getTypedRuleContext(Identified_byContext,i); + } + }; + + identified_other_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Identified_other_clauseContext); + } else { + return this.getTypedRuleContext(Identified_other_clauseContext,i); + } + }; + + user_tablespace_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(User_tablespace_clauseContext); + } else { + return this.getTypedRuleContext(User_tablespace_clauseContext,i); + } + }; + + quota_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Quota_clauseContext); + } else { + return this.getTypedRuleContext(Quota_clauseContext,i); + } + }; + + profile_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Profile_clauseContext); + } else { + return this.getTypedRuleContext(Profile_clauseContext,i); + } + }; + + password_expire_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Password_expire_clauseContext); + } else { + return this.getTypedRuleContext(Password_expire_clauseContext,i); + } + }; + + user_lock_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(User_lock_clauseContext); + } else { + return this.getTypedRuleContext(User_lock_clauseContext,i); + } + }; + + user_editions_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(User_editions_clauseContext); + } else { + return this.getTypedRuleContext(User_editions_clauseContext,i); + } + }; + + container_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Container_clauseContext); + } else { + return this.getTypedRuleContext(Container_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_user(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_userContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_user; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + USER() { + return this.getToken(OracleSqlParser.USER, 0); + }; + + user_object_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(User_object_nameContext); + } else { + return this.getTypedRuleContext(User_object_nameContext,i); + } + }; + + alter_identified_by = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Alter_identified_byContext); + } else { + return this.getTypedRuleContext(Alter_identified_byContext,i); + } + }; + + identified_other_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Identified_other_clauseContext); + } else { + return this.getTypedRuleContext(Identified_other_clauseContext,i); + } + }; + + user_tablespace_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(User_tablespace_clauseContext); + } else { + return this.getTypedRuleContext(User_tablespace_clauseContext,i); + } + }; + + quota_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Quota_clauseContext); + } else { + return this.getTypedRuleContext(Quota_clauseContext,i); + } + }; + + profile_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Profile_clauseContext); + } else { + return this.getTypedRuleContext(Profile_clauseContext,i); + } + }; + + user_default_role_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(User_default_role_clauseContext); + } else { + return this.getTypedRuleContext(User_default_role_clauseContext,i); + } + }; + + password_expire_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Password_expire_clauseContext); + } else { + return this.getTypedRuleContext(Password_expire_clauseContext,i); + } + }; + + user_lock_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(User_lock_clauseContext); + } else { + return this.getTypedRuleContext(User_lock_clauseContext,i); + } + }; + + alter_user_editions_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Alter_user_editions_clauseContext); + } else { + return this.getTypedRuleContext(Alter_user_editions_clauseContext,i); + } + }; + + container_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Container_clauseContext); + } else { + return this.getTypedRuleContext(Container_clauseContext,i); + } + }; + + container_data_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Container_data_clauseContext); + } else { + return this.getTypedRuleContext(Container_data_clauseContext,i); + } + }; + + proxy_clause() { + return this.getTypedRuleContext(Proxy_clauseContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_user(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_userContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_user; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + USER() { + return this.getToken(OracleSqlParser.USER, 0); + }; + + user_object_name() { + return this.getTypedRuleContext(User_object_nameContext,0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_user(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_identified_byContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_identified_by; + } + + identified_by() { + return this.getTypedRuleContext(Identified_byContext,0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_identified_by(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Identified_byContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_identified_by; + } + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIdentified_by(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Identified_other_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_identified_other_clause; + } + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + EXTERNALLY() { + return this.getToken(OracleSqlParser.EXTERNALLY, 0); + }; + + GLOBALLY() { + return this.getToken(OracleSqlParser.GLOBALLY, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIdentified_other_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class User_tablespace_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_user_tablespace_clause; + } + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + TEMPORARY() { + return this.getToken(OracleSqlParser.TEMPORARY, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUser_tablespace_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Quota_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_quota_clause; + } + + QUOTA() { + return this.getToken(OracleSqlParser.QUOTA, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + UNLIMITED() { + return this.getToken(OracleSqlParser.UNLIMITED, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitQuota_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Profile_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_profile_clause; + } + + PROFILE() { + return this.getToken(OracleSqlParser.PROFILE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitProfile_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Role_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_role_clause; + } + + role_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Role_nameContext); + } else { + return this.getTypedRuleContext(Role_nameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + EXCEPT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EXCEPT); + } else { + return this.getToken(OracleSqlParser.EXCEPT, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRole_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class User_default_role_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_user_default_role_clause; + } + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + ROLE() { + return this.getToken(OracleSqlParser.ROLE, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + role_clause() { + return this.getTypedRuleContext(Role_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUser_default_role_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Password_expire_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_password_expire_clause; + } + + PASSWORD() { + return this.getToken(OracleSqlParser.PASSWORD, 0); + }; + + EXPIRE() { + return this.getToken(OracleSqlParser.EXPIRE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPassword_expire_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class User_lock_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_user_lock_clause; + } + + ACCOUNT() { + return this.getToken(OracleSqlParser.ACCOUNT, 0); + }; + + LOCK() { + return this.getToken(OracleSqlParser.LOCK, 0); + }; + + UNLOCK() { + return this.getToken(OracleSqlParser.UNLOCK, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUser_lock_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class User_editions_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_user_editions_clause; + } + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + EDITIONS() { + return this.getToken(OracleSqlParser.EDITIONS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUser_editions_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_user_editions_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_user_editions_clause; + } + + user_editions_clause() { + return this.getTypedRuleContext(User_editions_clauseContext,0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + regular_id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Regular_idContext); + } else { + return this.getTypedRuleContext(Regular_idContext,i); + } + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_user_editions_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Proxy_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_proxy_clause; + } + + REVOKE() { + return this.getToken(OracleSqlParser.REVOKE, 0); + }; + + CONNECT() { + return this.getToken(OracleSqlParser.CONNECT, 0); + }; + + THROUGH() { + return this.getToken(OracleSqlParser.THROUGH, 0); + }; + + ENTERPRISE() { + return this.getToken(OracleSqlParser.ENTERPRISE, 0); + }; + + USERS() { + return this.getToken(OracleSqlParser.USERS, 0); + }; + + user_object_name() { + return this.getTypedRuleContext(User_object_nameContext,0); + }; + + GRANT() { + return this.getToken(OracleSqlParser.GRANT, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + AUTHENTICATION() { + return this.getToken(OracleSqlParser.AUTHENTICATION, 0); + }; + + REQUIRED() { + return this.getToken(OracleSqlParser.REQUIRED, 0); + }; + + AUTHENTICATED() { + return this.getToken(OracleSqlParser.AUTHENTICATED, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + ROLES() { + return this.getToken(OracleSqlParser.ROLES, 0); + }; + + ROLE() { + return this.getToken(OracleSqlParser.ROLE, 0); + }; + + role_clause() { + return this.getTypedRuleContext(Role_clauseContext,0); + }; + + PASSWORD() { + return this.getToken(OracleSqlParser.PASSWORD, 0); + }; + + CERTIFICATE() { + return this.getToken(OracleSqlParser.CERTIFICATE, 0); + }; + + DISTINGUISHED() { + return this.getToken(OracleSqlParser.DISTINGUISHED, 0); + }; + + NAME() { + return this.getToken(OracleSqlParser.NAME, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitProxy_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Container_namesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_container_names; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitContainer_names(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Set_container_dataContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_set_container_data; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + CONTAINER_DATA() { + return this.getToken(OracleSqlParser.CONTAINER_DATA, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + container_names() { + return this.getTypedRuleContext(Container_namesContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSet_container_data(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_rem_container_dataContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_rem_container_data; + } + + CONTAINER_DATA() { + return this.getToken(OracleSqlParser.CONTAINER_DATA, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + container_names() { + return this.getTypedRuleContext(Container_namesContext,0); + }; + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + REMOVE() { + return this.getToken(OracleSqlParser.REMOVE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_rem_container_data(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Container_data_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_container_data_clause; + } + + set_container_data() { + return this.getTypedRuleContext(Set_container_dataContext,0); + }; + + add_rem_container_data() { + return this.getTypedRuleContext(Add_rem_container_dataContext,0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + container_tableview_name() { + return this.getTypedRuleContext(Container_tableview_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitContainer_data_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Administer_key_managementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_administer_key_management; + } + + ADMINISTER() { + return this.getToken(OracleSqlParser.ADMINISTER, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + MANAGEMENT() { + return this.getToken(OracleSqlParser.MANAGEMENT, 0); + }; + + keystore_management_clauses() { + return this.getTypedRuleContext(Keystore_management_clausesContext,0); + }; + + key_management_clauses() { + return this.getTypedRuleContext(Key_management_clausesContext,0); + }; + + secret_management_clauses() { + return this.getTypedRuleContext(Secret_management_clausesContext,0); + }; + + zero_downtime_software_patching_clauses() { + return this.getTypedRuleContext(Zero_downtime_software_patching_clausesContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdminister_key_management(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Keystore_management_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_keystore_management_clauses; + } + + create_keystore() { + return this.getTypedRuleContext(Create_keystoreContext,0); + }; + + open_keystore() { + return this.getTypedRuleContext(Open_keystoreContext,0); + }; + + close_keystore() { + return this.getTypedRuleContext(Close_keystoreContext,0); + }; + + backup_keystore() { + return this.getTypedRuleContext(Backup_keystoreContext,0); + }; + + alter_keystore_password() { + return this.getTypedRuleContext(Alter_keystore_passwordContext,0); + }; + + merge_into_new_keystore() { + return this.getTypedRuleContext(Merge_into_new_keystoreContext,0); + }; + + merge_into_existing_keystore() { + return this.getTypedRuleContext(Merge_into_existing_keystoreContext,0); + }; + + isolate_keystore() { + return this.getTypedRuleContext(Isolate_keystoreContext,0); + }; + + unite_keystore() { + return this.getTypedRuleContext(Unite_keystoreContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitKeystore_management_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_keystoreContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_keystore; + this.ksl = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + keystore_password() { + return this.getTypedRuleContext(Keystore_passwordContext,0); + }; + + KEYSTORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEYSTORE); + } else { + return this.getToken(OracleSqlParser.KEYSTORE, i); + } + }; + + + AUTO_LOGIN() { + return this.getToken(OracleSqlParser.AUTO_LOGIN, 0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_keystore(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Open_keystoreContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_open_keystore; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + KEYSTORE() { + return this.getToken(OracleSqlParser.KEYSTORE, 0); + }; + + OPEN() { + return this.getToken(OracleSqlParser.OPEN, 0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + container_clause() { + return this.getTypedRuleContext(Container_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOpen_keystore(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Force_keystoreContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_force_keystore; + } + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + KEYSTORE() { + return this.getToken(OracleSqlParser.KEYSTORE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitForce_keystore(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Close_keystoreContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_close_keystore; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + KEYSTORE() { + return this.getToken(OracleSqlParser.KEYSTORE, 0); + }; + + CLOSE() { + return this.getToken(OracleSqlParser.CLOSE, 0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + container_clause() { + return this.getTypedRuleContext(Container_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitClose_keystore(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Backup_keystoreContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_backup_keystore; + this.bi = null; + this.ksl = null; + } + + BACKUP() { + return this.getToken(OracleSqlParser.BACKUP, 0); + }; + + KEYSTORE() { + return this.getToken(OracleSqlParser.KEYSTORE, 0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBackup_keystore(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_keystore_passwordContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_keystore_password; + this.o = null; + this.n = null; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + KEYSTORE() { + return this.getToken(OracleSqlParser.KEYSTORE, 0); + }; + + PASSWORD() { + return this.getToken(OracleSqlParser.PASSWORD, 0); + }; + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + keystore_password = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Keystore_passwordContext); + } else { + return this.getTypedRuleContext(Keystore_passwordContext,i); + } + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_keystore_password(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Merge_into_new_keystoreContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_merge_into_new_keystore; + this.ksl1 = null; + this.ksl2 = null; + } + + MERGE() { + return this.getToken(OracleSqlParser.MERGE, 0); + }; + + KEYSTORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEYSTORE); + } else { + return this.getToken(OracleSqlParser.KEYSTORE, i); + } + }; + + + AND() { + return this.getToken(OracleSqlParser.AND, 0); + }; + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + NEW() { + return this.getToken(OracleSqlParser.NEW, 0); + }; + + identified_by_password_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Identified_by_password_clauseContext); + } else { + return this.getTypedRuleContext(Identified_by_password_clauseContext,i); + } + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMerge_into_new_keystore(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Merge_into_existing_keystoreContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_merge_into_existing_keystore; + this.ksl1 = null; + this.ksl2 = null; + } + + MERGE() { + return this.getToken(OracleSqlParser.MERGE, 0); + }; + + KEYSTORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEYSTORE); + } else { + return this.getToken(OracleSqlParser.KEYSTORE, i); + } + }; + + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + EXISTING() { + return this.getToken(OracleSqlParser.EXISTING, 0); + }; + + identified_by_password_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Identified_by_password_clauseContext); + } else { + return this.getTypedRuleContext(Identified_by_password_clauseContext,i); + } + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMerge_into_existing_keystore(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Isolate_keystoreContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_isolate_keystore; + this.i = null; + } + + ISOLATE() { + return this.getToken(OracleSqlParser.ISOLATE, 0); + }; + + KEYSTORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEYSTORE); + } else { + return this.getToken(OracleSqlParser.KEYSTORE, i); + } + }; + + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + ROOT() { + return this.getToken(OracleSqlParser.ROOT, 0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + keystore_password() { + return this.getTypedRuleContext(Keystore_passwordContext,0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIsolate_keystore(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Unite_keystoreContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_unite_keystore; + this.i = null; + } + + UNITE() { + return this.getToken(OracleSqlParser.UNITE, 0); + }; + + KEYSTORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEYSTORE); + } else { + return this.getToken(OracleSqlParser.KEYSTORE, i); + } + }; + + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + ROOT() { + return this.getToken(OracleSqlParser.ROOT, 0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + keystore_password() { + return this.getTypedRuleContext(Keystore_passwordContext,0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUnite_keystore(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Key_management_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_key_management_clauses; + } + + set_key() { + return this.getTypedRuleContext(Set_keyContext,0); + }; + + create_key() { + return this.getTypedRuleContext(Create_keyContext,0); + }; + + use_key() { + return this.getTypedRuleContext(Use_keyContext,0); + }; + + set_key_tag() { + return this.getTypedRuleContext(Set_key_tagContext,0); + }; + + export_keys() { + return this.getTypedRuleContext(Export_keysContext,0); + }; + + import_keys() { + return this.getTypedRuleContext(Import_keysContext,0); + }; + + migrate_keys() { + return this.getTypedRuleContext(Migrate_keysContext,0); + }; + + reverse_migrate_keys() { + return this.getTypedRuleContext(Reverse_migrate_keysContext,0); + }; + + move_keys() { + return this.getTypedRuleContext(Move_keysContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitKey_management_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Set_keyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_set_key; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + ENCRYPTION() { + return this.getToken(OracleSqlParser.ENCRYPTION, 0); + }; + + mk() { + return this.getTypedRuleContext(MkContext,0); + }; + + using_tag_clause() { + return this.getTypedRuleContext(Using_tag_clauseContext,0); + }; + + using_algorithm_clause() { + return this.getTypedRuleContext(Using_algorithm_clauseContext,0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + container_clause() { + return this.getTypedRuleContext(Container_clauseContext,0); + }; + + mkid() { + return this.getTypedRuleContext(MkidContext,0); + }; + + COLON() { + return this.getToken(OracleSqlParser.COLON, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSet_key(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_keyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_key; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + ENCRYPTION() { + return this.getToken(OracleSqlParser.ENCRYPTION, 0); + }; + + mk() { + return this.getTypedRuleContext(MkContext,0); + }; + + using_tag_clause() { + return this.getTypedRuleContext(Using_tag_clauseContext,0); + }; + + using_algorithm_clause() { + return this.getTypedRuleContext(Using_algorithm_clauseContext,0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + container_clause() { + return this.getTypedRuleContext(Container_clauseContext,0); + }; + + mkid() { + return this.getTypedRuleContext(MkidContext,0); + }; + + COLON() { + return this.getToken(OracleSqlParser.COLON, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_key(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class MkidContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_mkid; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMkid(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class MkContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_mk; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMk(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Use_keyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_use_key; + this.k = null; + } + + USE() { + return this.getToken(OracleSqlParser.USE, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + ENCRYPTION() { + return this.getToken(OracleSqlParser.ENCRYPTION, 0); + }; + + using_tag_clause() { + return this.getTypedRuleContext(Using_tag_clauseContext,0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUse_key(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Set_key_tagContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_set_key_tag; + this.t = null; + this.k = null; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + TAG() { + return this.getToken(OracleSqlParser.TAG, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSet_key_tag(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Export_keysContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_export_keys; + } + + EXPORT() { + return this.getToken(OracleSqlParser.EXPORT, 0); + }; + + KEYS() { + return this.getToken(OracleSqlParser.KEYS, 0); + }; + + WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.WITH); + } else { + return this.getToken(OracleSqlParser.WITH, i); + } + }; + + + SECRET() { + return this.getToken(OracleSqlParser.SECRET, 0); + }; + + secret() { + return this.getTypedRuleContext(SecretContext,0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + filename() { + return this.getTypedRuleContext(FilenameContext,0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + ENCRYPTION() { + return this.getToken(OracleSqlParser.ENCRYPTION, 0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + IDENTIFIER() { + return this.getToken(OracleSqlParser.IDENTIFIER, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExport_keys(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Import_keysContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_import_keys; + } + + IMPORT() { + return this.getToken(OracleSqlParser.IMPORT, 0); + }; + + KEYS() { + return this.getToken(OracleSqlParser.KEYS, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + SECRET() { + return this.getToken(OracleSqlParser.SECRET, 0); + }; + + secret() { + return this.getTypedRuleContext(SecretContext,0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + filename() { + return this.getTypedRuleContext(FilenameContext,0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + ENCRYPTION() { + return this.getToken(OracleSqlParser.ENCRYPTION, 0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitImport_keys(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Migrate_keysContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_migrate_keys; + this.hsm = null; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + MIGRATE() { + return this.getToken(OracleSqlParser.MIGRATE, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + keystore_password() { + return this.getTypedRuleContext(Keystore_passwordContext,0); + }; + + secret() { + return this.getTypedRuleContext(SecretContext,0); + }; + + ENCRYPTION() { + return this.getToken(OracleSqlParser.ENCRYPTION, 0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMigrate_keys(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Reverse_migrate_keysContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_reverse_migrate_keys; + this.s = null; + this.hsm = null; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + REVERSE() { + return this.getToken(OracleSqlParser.REVERSE, 0); + }; + + MIGRATE() { + return this.getToken(OracleSqlParser.MIGRATE, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + secret = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SecretContext); + } else { + return this.getTypedRuleContext(SecretContext,i); + } + }; + + ENCRYPTION() { + return this.getToken(OracleSqlParser.ENCRYPTION, 0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReverse_migrate_keys(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Move_keysContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_move_keys; + this.ksl1 = null; + this.ksp1 = null; + this.ksp = null; + } + + MOVE() { + return this.getToken(OracleSqlParser.MOVE, 0); + }; + + KEYS() { + return this.getToken(OracleSqlParser.KEYS, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + NEW() { + return this.getToken(OracleSqlParser.NEW, 0); + }; + + KEYSTORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEYSTORE); + } else { + return this.getToken(OracleSqlParser.KEYSTORE, i); + } + }; + + + IDENTIFIED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.IDENTIFIED); + } else { + return this.getToken(OracleSqlParser.IDENTIFIED, i); + } + }; + + + BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BY); + } else { + return this.getToken(OracleSqlParser.BY, i); + } + }; + + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + keystore_password = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Keystore_passwordContext); + } else { + return this.getTypedRuleContext(Keystore_passwordContext,i); + } + }; + + ENCRYPTION() { + return this.getToken(OracleSqlParser.ENCRYPTION, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + IDENTIFIER() { + return this.getToken(OracleSqlParser.IDENTIFIER, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMove_keys(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Identified_by_storeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_identified_by_store; + } + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + keystore_password() { + return this.getTypedRuleContext(Keystore_passwordContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIdentified_by_store(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Using_algorithm_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_using_algorithm_clause; + this.ea = null; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + ALGORITHM() { + return this.getToken(OracleSqlParser.ALGORITHM, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUsing_algorithm_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Using_tag_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_using_tag_clause; + this.t = null; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + TAG() { + return this.getToken(OracleSqlParser.TAG, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUsing_tag_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Secret_management_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_secret_management_clauses; + } + + add_update_secret() { + return this.getTypedRuleContext(Add_update_secretContext,0); + }; + + delete_secret() { + return this.getTypedRuleContext(Delete_secretContext,0); + }; + + add_update_secret_seps() { + return this.getTypedRuleContext(Add_update_secret_sepsContext,0); + }; + + delete_secret_seps() { + return this.getTypedRuleContext(Delete_secret_sepsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSecret_management_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_update_secretContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_update_secret; + this.s = null; + this.ci = null; + } + + SECRET() { + return this.getToken(OracleSqlParser.SECRET, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + CLIENT() { + return this.getToken(OracleSqlParser.CLIENT, 0); + }; + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + using_tag_clause() { + return this.getTypedRuleContext(Using_tag_clauseContext,0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_update_secret(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Delete_secretContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_delete_secret; + this.ci = null; + } + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + SECRET() { + return this.getToken(OracleSqlParser.SECRET, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + CLIENT() { + return this.getToken(OracleSqlParser.CLIENT, 0); + }; + + identified_by_store() { + return this.getTypedRuleContext(Identified_by_storeContext,0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + force_keystore() { + return this.getTypedRuleContext(Force_keystoreContext,0); + }; + + with_backup_clause() { + return this.getTypedRuleContext(With_backup_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDelete_secret(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_update_secret_sepsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_update_secret_seps; + this.s = null; + this.ci = null; + } + + SECRET() { + return this.getToken(OracleSqlParser.SECRET, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + CLIENT() { + return this.getToken(OracleSqlParser.CLIENT, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + AUTO_LOGIN() { + return this.getToken(OracleSqlParser.AUTO_LOGIN, 0); + }; + + KEYSTORE() { + return this.getToken(OracleSqlParser.KEYSTORE, 0); + }; + + directory_path() { + return this.getTypedRuleContext(Directory_pathContext,0); + }; + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + using_tag_clause() { + return this.getTypedRuleContext(Using_tag_clauseContext,0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_update_secret_seps(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Delete_secret_sepsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_delete_secret_seps; + this.s = null; + this.ci = null; + } + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + SECRET() { + return this.getToken(OracleSqlParser.SECRET, 0); + }; + + SQ() { + return this.getToken(OracleSqlParser.SQ, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + CLIENT() { + return this.getToken(OracleSqlParser.CLIENT, 0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + AUTO_LOGIN() { + return this.getToken(OracleSqlParser.AUTO_LOGIN, 0); + }; + + KEYSTORE() { + return this.getToken(OracleSqlParser.KEYSTORE, 0); + }; + + directory_path() { + return this.getTypedRuleContext(Directory_pathContext,0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDelete_secret_seps(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Zero_downtime_software_patching_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_zero_downtime_software_patching_clauses; + } + + SWITCHOVER() { + return this.getToken(OracleSqlParser.SWITCHOVER, 0); + }; + + LIBRARY() { + return this.getToken(OracleSqlParser.LIBRARY, 0); + }; + + path() { + return this.getTypedRuleContext(PathContext,0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + CONTAINERS() { + return this.getToken(OracleSqlParser.CONTAINERS, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitZero_downtime_software_patching_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class With_backup_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_with_backup_clause; + this.bi = null; + } + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + BACKUP() { + return this.getToken(OracleSqlParser.BACKUP, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWith_backup_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Identified_by_password_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_identified_by_password_clause; + } + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + keystore_password() { + return this.getTypedRuleContext(Keystore_passwordContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIdentified_by_password_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Keystore_passwordContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_keystore_password; + } + + DELIMITED_ID() { + return this.getToken(OracleSqlParser.DELIMITED_ID, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitKeystore_password(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class PathContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_path; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPath(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class SecretContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_secret; + } + + DELIMITED_ID() { + return this.getToken(OracleSqlParser.DELIMITED_ID, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSecret(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class AnalyzeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_analyze; + } + + ANALYZE() { + return this.getToken(OracleSqlParser.ANALYZE, 0); + }; + + CLUSTER() { + return this.getToken(OracleSqlParser.CLUSTER, 0); + }; + + cluster_name() { + return this.getTypedRuleContext(Cluster_nameContext,0); + }; + + validation_clauses() { + return this.getTypedRuleContext(Validation_clausesContext,0); + }; + + compute_clauses() { + return this.getTypedRuleContext(Compute_clausesContext,0); + }; + + ESTIMATE() { + return this.getToken(OracleSqlParser.ESTIMATE, 0); + }; + + STATISTICS() { + return this.getToken(OracleSqlParser.STATISTICS, 0); + }; + + LIST() { + return this.getToken(OracleSqlParser.LIST, 0); + }; + + CHAINED() { + return this.getToken(OracleSqlParser.CHAINED, 0); + }; + + ROWS() { + return this.getToken(OracleSqlParser.ROWS, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + index_name() { + return this.getTypedRuleContext(Index_nameContext,0); + }; + + partition_extention_clause() { + return this.getTypedRuleContext(Partition_extention_clauseContext,0); + }; + + SYSTEM() { + return this.getToken(OracleSqlParser.SYSTEM, 0); + }; + + for_clause() { + return this.getTypedRuleContext(For_clauseContext,0); + }; + + SAMPLE() { + return this.getToken(OracleSqlParser.SAMPLE, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + into_clause1() { + return this.getTypedRuleContext(Into_clause1Context,0); + }; + + PERCENT_KEYWORD() { + return this.getToken(OracleSqlParser.PERCENT_KEYWORD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAnalyze(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Partition_extention_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_partition_extention_clause; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + partition_key_value = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partition_key_valueContext); + } else { + return this.getTypedRuleContext(Partition_key_valueContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + subpartition_name() { + return this.getTypedRuleContext(Subpartition_nameContext,0); + }; + + subpartition_key_value = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Subpartition_key_valueContext); + } else { + return this.getTypedRuleContext(Subpartition_key_valueContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPartition_extention_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Validation_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_validation_clauses; + } + + VALIDATE() { + return this.getToken(OracleSqlParser.VALIDATE, 0); + }; + + REF() { + return this.getToken(OracleSqlParser.REF, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + DANGLING() { + return this.getToken(OracleSqlParser.DANGLING, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + STRUCTURE() { + return this.getToken(OracleSqlParser.STRUCTURE, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + FAST() { + return this.getToken(OracleSqlParser.FAST, 0); + }; + + online_or_offline = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Online_or_offlineContext); + } else { + return this.getTypedRuleContext(Online_or_offlineContext,i); + } + }; + + into_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Into_clauseContext); + } else { + return this.getTypedRuleContext(Into_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitValidation_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Compute_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_compute_clauses; + } + + COMPUTE() { + return this.getToken(OracleSqlParser.COMPUTE, 0); + }; + + STATISTICS() { + return this.getToken(OracleSqlParser.STATISTICS, 0); + }; + + SYSTEM() { + return this.getToken(OracleSqlParser.SYSTEM, 0); + }; + + for_clause() { + return this.getTypedRuleContext(For_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCompute_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class For_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_for_clause; + } + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + COLUMNS() { + return this.getToken(OracleSqlParser.COLUMNS, 0); + }; + + INDEXES() { + return this.getToken(OracleSqlParser.INDEXES, 0); + }; + + for_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(For_clauseContext); + } else { + return this.getTypedRuleContext(For_clauseContext,i); + } + }; + + SIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SIZE); + } else { + return this.getToken(OracleSqlParser.SIZE, i); + } + }; + + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + INDEXED() { + return this.getToken(OracleSqlParser.INDEXED, 0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFor_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Online_or_offlineContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_online_or_offline; + } + + OFFLINE() { + return this.getToken(OracleSqlParser.OFFLINE, 0); + }; + + ONLINE() { + return this.getToken(OracleSqlParser.ONLINE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOnline_or_offline(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Into_clause1Context extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_into_clause1; + } + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInto_clause1(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Partition_key_valueContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_partition_key_value; + } + + literal() { + return this.getTypedRuleContext(LiteralContext,0); + }; + + TIMESTAMP() { + return this.getToken(OracleSqlParser.TIMESTAMP, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPartition_key_value(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subpartition_key_valueContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subpartition_key_value; + } + + literal() { + return this.getTypedRuleContext(LiteralContext,0); + }; + + TIMESTAMP() { + return this.getToken(OracleSqlParser.TIMESTAMP, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubpartition_key_value(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Associate_statisticsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_associate_statistics; + } + + ASSOCIATE() { + return this.getToken(OracleSqlParser.ASSOCIATE, 0); + }; + + STATISTICS() { + return this.getToken(OracleSqlParser.STATISTICS, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + column_association() { + return this.getTypedRuleContext(Column_associationContext,0); + }; + + function_association() { + return this.getTypedRuleContext(Function_associationContext,0); + }; + + storage_table_clause() { + return this.getTypedRuleContext(Storage_table_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAssociate_statistics(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Column_associationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_column_association; + } + + COLUMNS() { + return this.getToken(OracleSqlParser.COLUMNS, 0); + }; + + tableview_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Tableview_nameContext); + } else { + return this.getTypedRuleContext(Tableview_nameContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + using_statistics_type() { + return this.getTypedRuleContext(Using_statistics_typeContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitColumn_association(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Function_associationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_function_association; + } + + FUNCTIONS() { + return this.getToken(OracleSqlParser.FUNCTIONS, 0); + }; + + function_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_nameContext); + } else { + return this.getTypedRuleContext(Function_nameContext,i); + } + }; + + PACKAGES() { + return this.getToken(OracleSqlParser.PACKAGES, 0); + }; + + package_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Package_nameContext); + } else { + return this.getTypedRuleContext(Package_nameContext,i); + } + }; + + TYPES() { + return this.getToken(OracleSqlParser.TYPES, 0); + }; + + type_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Type_nameContext); + } else { + return this.getTypedRuleContext(Type_nameContext,i); + } + }; + + INDEXES() { + return this.getToken(OracleSqlParser.INDEXES, 0); + }; + + index_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Index_nameContext); + } else { + return this.getTypedRuleContext(Index_nameContext,i); + } + }; + + INDEXTYPES() { + return this.getToken(OracleSqlParser.INDEXTYPES, 0); + }; + + indextype_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Indextype_nameContext); + } else { + return this.getTypedRuleContext(Indextype_nameContext,i); + } + }; + + using_statistics_type() { + return this.getTypedRuleContext(Using_statistics_typeContext,0); + }; + + default_cost_clause() { + return this.getTypedRuleContext(Default_cost_clauseContext,0); + }; + + default_selectivity_clause() { + return this.getTypedRuleContext(Default_selectivity_clauseContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFunction_association(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Indextype_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_indextype_name; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndextype_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Using_statistics_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_using_statistics_type; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + statistics_type_name() { + return this.getTypedRuleContext(Statistics_type_nameContext,0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUsing_statistics_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Statistics_type_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_statistics_type_name; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStatistics_type_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_cost_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_cost_clause; + } + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + COST() { + return this.getToken(OracleSqlParser.COST, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + cpu_cost() { + return this.getTypedRuleContext(Cpu_costContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + io_cost() { + return this.getTypedRuleContext(Io_costContext,0); + }; + + network_cost() { + return this.getTypedRuleContext(Network_costContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_cost_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cpu_costContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cpu_cost; + } + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCpu_cost(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Io_costContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_io_cost; + } + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIo_cost(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Network_costContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_network_cost; + } + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNetwork_cost(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_selectivity_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_selectivity_clause; + } + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + SELECTIVITY() { + return this.getToken(OracleSqlParser.SELECTIVITY, 0); + }; + + default_selectivity() { + return this.getTypedRuleContext(Default_selectivityContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_selectivity_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_selectivityContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_selectivity; + } + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_selectivity(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Storage_table_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_storage_table_clause; + } + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + MANAGED() { + return this.getToken(OracleSqlParser.MANAGED, 0); + }; + + STORAGE() { + return this.getToken(OracleSqlParser.STORAGE, 0); + }; + + TABLES() { + return this.getToken(OracleSqlParser.TABLES, 0); + }; + + SYSTEM() { + return this.getToken(OracleSqlParser.SYSTEM, 0); + }; + + USER() { + return this.getToken(OracleSqlParser.USER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStorage_table_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Unified_auditingContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_unified_auditing; + } + + AUDIT() { + return this.getToken(OracleSqlParser.AUDIT, 0); + }; + + POLICY() { + return this.getToken(OracleSqlParser.POLICY, 0); + }; + + policy_name() { + return this.getTypedRuleContext(Policy_nameContext,0); + }; + + CONTEXT() { + return this.getToken(OracleSqlParser.CONTEXT, 0); + }; + + NAMESPACE() { + return this.getToken(OracleSqlParser.NAMESPACE, 0); + }; + + oracle_namespace() { + return this.getTypedRuleContext(Oracle_namespaceContext,0); + }; + + ATTRIBUTES() { + return this.getToken(OracleSqlParser.ATTRIBUTES, 0); + }; + + attribute_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Attribute_nameContext); + } else { + return this.getTypedRuleContext(Attribute_nameContext,i); + } + }; + + audit_user = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Audit_userContext); + } else { + return this.getTypedRuleContext(Audit_userContext,i); + } + }; + + WHENEVER() { + return this.getToken(OracleSqlParser.WHENEVER, 0); + }; + + SUCCESSFUL() { + return this.getToken(OracleSqlParser.SUCCESSFUL, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + EXCEPT() { + return this.getToken(OracleSqlParser.EXCEPT, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUnified_auditing(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Policy_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_policy_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPolicy_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Audit_traditionalContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_audit_traditional; + } + + AUDIT() { + return this.getToken(OracleSqlParser.AUDIT, 0); + }; + + audit_operation_clause() { + return this.getTypedRuleContext(Audit_operation_clauseContext,0); + }; + + audit_schema_object_clause() { + return this.getTypedRuleContext(Audit_schema_object_clauseContext,0); + }; + + NETWORK() { + return this.getToken(OracleSqlParser.NETWORK, 0); + }; + + audit_direct_path() { + return this.getTypedRuleContext(Audit_direct_pathContext,0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + WHENEVER() { + return this.getToken(OracleSqlParser.WHENEVER, 0); + }; + + SUCCESSFUL() { + return this.getToken(OracleSqlParser.SUCCESSFUL, 0); + }; + + audit_container_clause() { + return this.getTypedRuleContext(Audit_container_clauseContext,0); + }; + + SESSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SESSION); + } else { + return this.getToken(OracleSqlParser.SESSION, i); + } + }; + + + ACCESS() { + return this.getToken(OracleSqlParser.ACCESS, 0); + }; + + auditing_by_clause() { + return this.getTypedRuleContext(Auditing_by_clauseContext,0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + CURRENT() { + return this.getToken(OracleSqlParser.CURRENT, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAudit_traditional(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Audit_direct_pathContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_audit_direct_path; + } + + DIRECT_PATH() { + return this.getToken(OracleSqlParser.DIRECT_PATH, 0); + }; + + auditing_by_clause() { + return this.getTypedRuleContext(Auditing_by_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAudit_direct_path(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Audit_container_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_audit_container_clause; + } + + CONTAINER() { + return this.getToken(OracleSqlParser.CONTAINER, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + CURRENT() { + return this.getToken(OracleSqlParser.CURRENT, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAudit_container_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Audit_operation_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_audit_operation_clause; + } + + sql_statement_shortcut = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_statement_shortcutContext); + } else { + return this.getTypedRuleContext(Sql_statement_shortcutContext,i); + } + }; + + ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ALL); + } else { + return this.getToken(OracleSqlParser.ALL, i); + } + }; + + + system_privilege = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(System_privilegeContext); + } else { + return this.getTypedRuleContext(System_privilegeContext,i); + } + }; + + PRIVILEGES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PRIVILEGES); + } else { + return this.getToken(OracleSqlParser.PRIVILEGES, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + STATEMENTS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.STATEMENTS); + } else { + return this.getToken(OracleSqlParser.STATEMENTS, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAudit_operation_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Auditing_by_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_auditing_by_clause; + } + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + audit_user = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Audit_userContext); + } else { + return this.getTypedRuleContext(Audit_userContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAuditing_by_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Audit_userContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_audit_user; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAudit_user(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Audit_schema_object_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_audit_schema_object_clause; + } + + auditing_on_clause() { + return this.getTypedRuleContext(Auditing_on_clauseContext,0); + }; + + sql_operation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_operationContext); + } else { + return this.getTypedRuleContext(Sql_operationContext,i); + } + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAudit_schema_object_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sql_operationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sql_operation; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + AUDIT() { + return this.getToken(OracleSqlParser.AUDIT, 0); + }; + + COMMENT() { + return this.getToken(OracleSqlParser.COMMENT, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + EXECUTE() { + return this.getToken(OracleSqlParser.EXECUTE, 0); + }; + + FLASHBACK() { + return this.getToken(OracleSqlParser.FLASHBACK, 0); + }; + + GRANT() { + return this.getToken(OracleSqlParser.GRANT, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + INSERT() { + return this.getToken(OracleSqlParser.INSERT, 0); + }; + + LOCK() { + return this.getToken(OracleSqlParser.LOCK, 0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + SELECT() { + return this.getToken(OracleSqlParser.SELECT, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSql_operation(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Auditing_on_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_auditing_on_clause; + } + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + object_name() { + return this.getTypedRuleContext(Object_nameContext,0); + }; + + DIRECTORY() { + return this.getToken(OracleSqlParser.DIRECTORY, 0); + }; + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + MINING() { + return this.getToken(OracleSqlParser.MINING, 0); + }; + + MODEL() { + return this.getToken(OracleSqlParser.MODEL, 0); + }; + + model_name() { + return this.getTypedRuleContext(Model_nameContext,0); + }; + + SQL() { + return this.getToken(OracleSqlParser.SQL, 0); + }; + + TRANSLATION() { + return this.getToken(OracleSqlParser.TRANSLATION, 0); + }; + + PROFILE() { + return this.getToken(OracleSqlParser.PROFILE, 0); + }; + + profile_name() { + return this.getTypedRuleContext(Profile_nameContext,0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAuditing_on_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Model_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_model_name; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModel_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_name; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Profile_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_profile_name; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitProfile_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sql_statement_shortcutContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sql_statement_shortcut; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + SYSTEM() { + return this.getToken(OracleSqlParser.SYSTEM, 0); + }; + + CLUSTER() { + return this.getToken(OracleSqlParser.CLUSTER, 0); + }; + + CONTEXT() { + return this.getToken(OracleSqlParser.CONTEXT, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + LINK() { + return this.getToken(OracleSqlParser.LINK, 0); + }; + + DIMENSION() { + return this.getToken(OracleSqlParser.DIMENSION, 0); + }; + + DIRECTORY() { + return this.getToken(OracleSqlParser.DIRECTORY, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + OUTLINE() { + return this.getToken(OracleSqlParser.OUTLINE, 0); + }; + + PLUGGABLE() { + return this.getToken(OracleSqlParser.PLUGGABLE, 0); + }; + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + PROFILE() { + return this.getToken(OracleSqlParser.PROFILE, 0); + }; + + PUBLIC() { + return this.getToken(OracleSqlParser.PUBLIC, 0); + }; + + SYNONYM() { + return this.getToken(OracleSqlParser.SYNONYM, 0); + }; + + ROLE() { + return this.getToken(OracleSqlParser.ROLE, 0); + }; + + ROLLBACK() { + return this.getToken(OracleSqlParser.ROLLBACK, 0); + }; + + SEGMENT() { + return this.getToken(OracleSqlParser.SEGMENT, 0); + }; + + SEQUENCE() { + return this.getToken(OracleSqlParser.SEQUENCE, 0); + }; + + SESSION() { + return this.getToken(OracleSqlParser.SESSION, 0); + }; + + AUDIT() { + return this.getToken(OracleSqlParser.AUDIT, 0); + }; + + GRANT() { + return this.getToken(OracleSqlParser.GRANT, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + TRIGGER() { + return this.getToken(OracleSqlParser.TRIGGER, 0); + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + USER() { + return this.getToken(OracleSqlParser.USER, 0); + }; + + COMMENT() { + return this.getToken(OracleSqlParser.COMMENT, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + EXECUTE() { + return this.getToken(OracleSqlParser.EXECUTE, 0); + }; + + INSERT() { + return this.getToken(OracleSqlParser.INSERT, 0); + }; + + LOCK() { + return this.getToken(OracleSqlParser.LOCK, 0); + }; + + SELECT() { + return this.getToken(OracleSqlParser.SELECT, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSql_statement_shortcut(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_indexContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_index; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + index_name() { + return this.getTypedRuleContext(Index_nameContext,0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_index(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Disassociate_statisticsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_disassociate_statistics; + this.tb = null; + this.c = null; + this.fn = null; + this.pkg = null; + this.t = null; + this.ix = null; + this.it = null; + } + + DISASSOCIATE() { + return this.getToken(OracleSqlParser.DISASSOCIATE, 0); + }; + + STATISTICS() { + return this.getToken(OracleSqlParser.STATISTICS, 0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + COLUMNS() { + return this.getToken(OracleSqlParser.COLUMNS, 0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + FUNCTIONS() { + return this.getToken(OracleSqlParser.FUNCTIONS, 0); + }; + + PACKAGES() { + return this.getToken(OracleSqlParser.PACKAGES, 0); + }; + + TYPES() { + return this.getToken(OracleSqlParser.TYPES, 0); + }; + + INDEXES() { + return this.getToken(OracleSqlParser.INDEXES, 0); + }; + + INDEXTYPES() { + return this.getToken(OracleSqlParser.INDEXTYPES, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + schema_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Schema_nameContext); + } else { + return this.getTypedRuleContext(Schema_nameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDisassociate_statistics(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_indextypeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_indextype; + this.it = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + INDEXTYPE() { + return this.getToken(OracleSqlParser.INDEXTYPE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_indextype(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_inmemory_join_groupContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_inmemory_join_group; + this.jg = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + INMEMORY() { + return this.getToken(OracleSqlParser.INMEMORY, 0); + }; + + JOIN() { + return this.getToken(OracleSqlParser.JOIN, 0); + }; + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_inmemory_join_group(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Flashback_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_flashback_table; + } + + FLASHBACK() { + return this.getToken(OracleSqlParser.FLASHBACK, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + tableview_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Tableview_nameContext); + } else { + return this.getTypedRuleContext(Tableview_nameContext,i); + } + }; + + TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TO); + } else { + return this.getToken(OracleSqlParser.TO, i); + } + }; + + + BEFORE() { + return this.getToken(OracleSqlParser.BEFORE, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RESTORE() { + return this.getToken(OracleSqlParser.RESTORE, 0); + }; + + POINT() { + return this.getToken(OracleSqlParser.POINT, 0); + }; + + restore_point() { + return this.getTypedRuleContext(Restore_pointContext,0); + }; + + SCN() { + return this.getToken(OracleSqlParser.SCN, 0); + }; + + TIMESTAMP() { + return this.getToken(OracleSqlParser.TIMESTAMP, 0); + }; + + TRIGGERS() { + return this.getToken(OracleSqlParser.TRIGGERS, 0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFlashback_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Restore_pointContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_restore_point; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRestore_point(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Purge_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_purge_statement; + this.ts = null; + this.u = null; + } + + PURGE() { + return this.getToken(OracleSqlParser.PURGE, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + RECYCLEBIN() { + return this.getToken(OracleSqlParser.RECYCLEBIN, 0); + }; + + DBA_RECYCLEBIN() { + return this.getToken(OracleSqlParser.DBA_RECYCLEBIN, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + USER() { + return this.getToken(OracleSqlParser.USER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPurge_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Noaudit_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_noaudit_statement; + } + + NOAUDIT() { + return this.getToken(OracleSqlParser.NOAUDIT, 0); + }; + + audit_operation_clause() { + return this.getTypedRuleContext(Audit_operation_clauseContext,0); + }; + + audit_schema_object_clause() { + return this.getTypedRuleContext(Audit_schema_object_clauseContext,0); + }; + + NETWORK() { + return this.getToken(OracleSqlParser.NETWORK, 0); + }; + + DIRECT_PATH() { + return this.getToken(OracleSqlParser.DIRECT_PATH, 0); + }; + + LOAD() { + return this.getToken(OracleSqlParser.LOAD, 0); + }; + + WHENEVER() { + return this.getToken(OracleSqlParser.WHENEVER, 0); + }; + + SUCCESSFUL() { + return this.getToken(OracleSqlParser.SUCCESSFUL, 0); + }; + + container_clause() { + return this.getTypedRuleContext(Container_clauseContext,0); + }; + + auditing_by_clause() { + return this.getTypedRuleContext(Auditing_by_clauseContext,0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNoaudit_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Rename_objectContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_rename_object; + } + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + object_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Object_nameContext); + } else { + return this.getTypedRuleContext(Object_nameContext,i); + } + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRename_object(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Grant_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_grant_statement; + } + + GRANT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.GRANT); + } else { + return this.getToken(OracleSqlParser.GRANT, i); + } + }; + + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + grantee_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Grantee_nameContext); + } else { + return this.getTypedRuleContext(Grantee_nameContext,i); + } + }; + + PUBLIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PUBLIC); + } else { + return this.getToken(OracleSqlParser.PUBLIC, i); + } + }; + + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + grant_object_name() { + return this.getTypedRuleContext(Grant_object_nameContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.WITH); + } else { + return this.getToken(OracleSqlParser.WITH, i); + } + }; + + + OPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OPTION); + } else { + return this.getToken(OracleSqlParser.OPTION, i); + } + }; + + + HIERARCHY() { + return this.getToken(OracleSqlParser.HIERARCHY, 0); + }; + + container_clause() { + return this.getTypedRuleContext(Container_clauseContext,0); + }; + + ADMIN() { + return this.getToken(OracleSqlParser.ADMIN, 0); + }; + + DELEGATE() { + return this.getToken(OracleSqlParser.DELEGATE, 0); + }; + + role_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Role_nameContext); + } else { + return this.getTypedRuleContext(Role_nameContext,i); + } + }; + + system_privilege = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(System_privilegeContext); + } else { + return this.getTypedRuleContext(System_privilegeContext,i); + } + }; + + object_privilege = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Object_privilegeContext); + } else { + return this.getTypedRuleContext(Object_privilegeContext,i); + } + }; + + paren_column_list = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Paren_column_listContext); + } else { + return this.getTypedRuleContext(Paren_column_listContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGrant_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Container_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_container_clause; + } + + CONTAINER() { + return this.getToken(OracleSqlParser.CONTAINER, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + CURRENT() { + return this.getToken(OracleSqlParser.CURRENT, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitContainer_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Revoke_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_revoke_statement; + } + + REVOKE() { + return this.getToken(OracleSqlParser.REVOKE, 0); + }; + + revoke_roles_from_programs() { + return this.getTypedRuleContext(Revoke_roles_from_programsContext,0); + }; + + revoke_system_privilege() { + return this.getTypedRuleContext(Revoke_system_privilegeContext,0); + }; + + revoke_object_privileges() { + return this.getTypedRuleContext(Revoke_object_privilegesContext,0); + }; + + container_clause() { + return this.getTypedRuleContext(Container_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRevoke_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Revoke_system_privilegeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_revoke_system_privilege; + } + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + revokee_clause() { + return this.getTypedRuleContext(Revokee_clauseContext,0); + }; + + system_privilege() { + return this.getTypedRuleContext(System_privilegeContext,0); + }; + + role_name() { + return this.getTypedRuleContext(Role_nameContext,0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + PRIVILEGES() { + return this.getToken(OracleSqlParser.PRIVILEGES, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRevoke_system_privilege(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Revokee_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_revokee_clause; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PUBLIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PUBLIC); + } else { + return this.getToken(OracleSqlParser.PUBLIC, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRevokee_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Revoke_object_privilegesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_revoke_object_privileges; + } + + on_object_clause() { + return this.getTypedRuleContext(On_object_clauseContext,0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + revokee_clause() { + return this.getTypedRuleContext(Revokee_clauseContext,0); + }; + + object_privilege = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Object_privilegeContext); + } else { + return this.getTypedRuleContext(Object_privilegeContext,i); + } + }; + + ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ALL); + } else { + return this.getToken(OracleSqlParser.ALL, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + CONSTRAINTS() { + return this.getToken(OracleSqlParser.CONSTRAINTS, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + PRIVILEGES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PRIVILEGES); + } else { + return this.getToken(OracleSqlParser.PRIVILEGES, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRevoke_object_privileges(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class On_object_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_on_object_clause; + this.o = null; + this.mmn = null; + this.o2 = null; + this.p = null; + } + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + USER() { + return this.getToken(OracleSqlParser.USER, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + DIRECTORY() { + return this.getToken(OracleSqlParser.DIRECTORY, 0); + }; + + directory_name() { + return this.getTypedRuleContext(Directory_nameContext,0); + }; + + EDITION() { + return this.getToken(OracleSqlParser.EDITION, 0); + }; + + edition_name() { + return this.getTypedRuleContext(Edition_nameContext,0); + }; + + MINING() { + return this.getToken(OracleSqlParser.MINING, 0); + }; + + MODEL() { + return this.getToken(OracleSqlParser.MODEL, 0); + }; + + JAVA() { + return this.getToken(OracleSqlParser.JAVA, 0); + }; + + SQL() { + return this.getToken(OracleSqlParser.SQL, 0); + }; + + TRANSLATION() { + return this.getToken(OracleSqlParser.TRANSLATION, 0); + }; + + PROFILE() { + return this.getToken(OracleSqlParser.PROFILE, 0); + }; + + SOURCE() { + return this.getToken(OracleSqlParser.SOURCE, 0); + }; + + RESOURCE() { + return this.getToken(OracleSqlParser.RESOURCE, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOn_object_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Revoke_roles_from_programsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_revoke_roles_from_programs; + } + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + program_unit = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Program_unitContext); + } else { + return this.getTypedRuleContext(Program_unitContext,i); + } + }; + + role_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Role_nameContext); + } else { + return this.getTypedRuleContext(Role_nameContext,i); + } + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRevoke_roles_from_programs(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Program_unitContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_program_unit; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + PACKAGE() { + return this.getToken(OracleSqlParser.PACKAGE, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitProgram_unit(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_dimensionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_dimension; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + DIMENSION() { + return this.getToken(OracleSqlParser.DIMENSION, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + level_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Level_clauseContext); + } else { + return this.getTypedRuleContext(Level_clauseContext,i); + } + }; + + hierarchy_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Hierarchy_clauseContext); + } else { + return this.getTypedRuleContext(Hierarchy_clauseContext,i); + } + }; + + attribute_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Attribute_clauseContext); + } else { + return this.getTypedRuleContext(Attribute_clauseContext,i); + } + }; + + extended_attribute_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Extended_attribute_clauseContext); + } else { + return this.getTypedRuleContext(Extended_attribute_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_dimension(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_directoryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_directory; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + DIRECTORY() { + return this.getToken(OracleSqlParser.DIRECTORY, 0); + }; + + directory_name() { + return this.getTypedRuleContext(Directory_nameContext,0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + directory_path() { + return this.getTypedRuleContext(Directory_pathContext,0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + SHARING() { + return this.getToken(OracleSqlParser.SHARING, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + METADATA() { + return this.getToken(OracleSqlParser.METADATA, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_directory(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Directory_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_directory_name; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDirectory_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Directory_pathContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_directory_path; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDirectory_path(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_inmemory_join_groupContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_inmemory_join_group; + this.jg = null; + this.t = null; + this.c = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + INMEMORY() { + return this.getToken(OracleSqlParser.INMEMORY, 0); + }; + + JOIN() { + return this.getToken(OracleSqlParser.JOIN, 0); + }; + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + schema_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Schema_nameContext); + } else { + return this.getTypedRuleContext(Schema_nameContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_inmemory_join_group(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_hierarchyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_hierarchy; + this.hn = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + HIERARCHY() { + return this.getToken(OracleSqlParser.HIERARCHY, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_hierarchy(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_libraryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_library; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + LIBRARY() { + return this.getToken(OracleSqlParser.LIBRARY, 0); + }; + + library_name() { + return this.getTypedRuleContext(Library_nameContext,0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + library_editionable() { + return this.getTypedRuleContext(Library_editionableContext,0); + }; + + library_debug() { + return this.getTypedRuleContext(Library_debugContext,0); + }; + + compiler_parameters_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Compiler_parameters_clauseContext); + } else { + return this.getTypedRuleContext(Compiler_parameters_clauseContext,i); + } + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + SETTINGS() { + return this.getToken(OracleSqlParser.SETTINGS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_library(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_javaContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_java; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + JAVA() { + return this.getToken(OracleSqlParser.JAVA, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + SOURCE() { + return this.getToken(OracleSqlParser.SOURCE, 0); + }; + + CLASS() { + return this.getToken(OracleSqlParser.CLASS, 0); + }; + + RESOURCE() { + return this.getToken(OracleSqlParser.RESOURCE, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_java(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_libraryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_library; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + LIBRARY() { + return this.getToken(OracleSqlParser.LIBRARY, 0); + }; + + library_name() { + return this.getTypedRuleContext(Library_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_library(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_javaContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_java; + this.pn = null; + this.sn = null; + this.d = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + JAVA() { + return this.getToken(OracleSqlParser.JAVA, 0); + }; + + NAMED() { + return this.getToken(OracleSqlParser.NAMED, 0); + }; + + CLASS() { + return this.getToken(OracleSqlParser.CLASS, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + AND() { + return this.getToken(OracleSqlParser.AND, 0); + }; + + NOFORCE() { + return this.getToken(OracleSqlParser.NOFORCE, 0); + }; + + SOURCE() { + return this.getToken(OracleSqlParser.SOURCE, 0); + }; + + RESOURCE() { + return this.getToken(OracleSqlParser.RESOURCE, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + SHARING() { + return this.getToken(OracleSqlParser.SHARING, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + invoker_rights_clause() { + return this.getTypedRuleContext(Invoker_rights_clauseContext,0); + }; + + RESOLVER() { + return this.getToken(OracleSqlParser.RESOLVER, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + RESOLVE() { + return this.getToken(OracleSqlParser.RESOLVE, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + METADATA() { + return this.getToken(OracleSqlParser.METADATA, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + BFILE() { + return this.getToken(OracleSqlParser.BFILE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + filename() { + return this.getTypedRuleContext(FilenameContext,0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + SCHEMA() { + return this.getToken(OracleSqlParser.SCHEMA, 0); + }; + + CLOB() { + return this.getToken(OracleSqlParser.CLOB, 0); + }; + + BLOB() { + return this.getToken(OracleSqlParser.BLOB, 0); + }; + + MINUS_SIGN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MINUS_SIGN); + } else { + return this.getToken(OracleSqlParser.MINUS_SIGN, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_java(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_libraryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_library; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + LIBRARY() { + return this.getToken(OracleSqlParser.LIBRARY, 0); + }; + + plsql_library_source() { + return this.getTypedRuleContext(Plsql_library_sourceContext,0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + EDITIONABLE() { + return this.getToken(OracleSqlParser.EDITIONABLE, 0); + }; + + NONEDITIONABLE() { + return this.getToken(OracleSqlParser.NONEDITIONABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_library(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Plsql_library_sourceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_plsql_library_source; + } + + library_name() { + return this.getTypedRuleContext(Library_nameContext,0); + }; + + quoted_string = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Quoted_stringContext); + } else { + return this.getTypedRuleContext(Quoted_stringContext,i); + } + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + directory_name() { + return this.getTypedRuleContext(Directory_nameContext,0); + }; + + AGENT() { + return this.getToken(OracleSqlParser.AGENT, 0); + }; + + CREDENTIAL() { + return this.getToken(OracleSqlParser.CREDENTIAL, 0); + }; + + credential_name() { + return this.getTypedRuleContext(Credential_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPlsql_library_source(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Credential_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_credential_name; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCredential_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Library_editionableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_library_editionable; + } + + EDITIONABLE() { + return this.getToken(OracleSqlParser.EDITIONABLE, 0); + }; + + NONEDITIONABLE() { + return this.getToken(OracleSqlParser.NONEDITIONABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLibrary_editionable(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Library_debugContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_library_debug; + } + + DEBUG() { + return this.getToken(OracleSqlParser.DEBUG, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLibrary_debug(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Compiler_parameters_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_compiler_parameters_clause; + } + + parameter_name() { + return this.getTypedRuleContext(Parameter_nameContext,0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + parameter_value() { + return this.getTypedRuleContext(Parameter_valueContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCompiler_parameters_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Parameter_valueContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_parameter_value; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitParameter_value(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Library_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_library_name; + } + + regular_id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Regular_idContext); + } else { + return this.getTypedRuleContext(Regular_idContext,i); + } + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLibrary_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_dimensionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_dimension; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + DIMENSION() { + return this.getToken(OracleSqlParser.DIMENSION, 0); + }; + + identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + ADD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ADD); + } else { + return this.getToken(OracleSqlParser.ADD, i); + } + }; + + + DROP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DROP); + } else { + return this.getToken(OracleSqlParser.DROP, i); + } + }; + + + level_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Level_clauseContext); + } else { + return this.getTypedRuleContext(Level_clauseContext,i); + } + }; + + hierarchy_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Hierarchy_clauseContext); + } else { + return this.getTypedRuleContext(Hierarchy_clauseContext,i); + } + }; + + attribute_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Attribute_clauseContext); + } else { + return this.getTypedRuleContext(Attribute_clauseContext,i); + } + }; + + extended_attribute_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Extended_attribute_clauseContext); + } else { + return this.getTypedRuleContext(Extended_attribute_clauseContext,i); + } + }; + + LEVEL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEVEL); + } else { + return this.getToken(OracleSqlParser.LEVEL, i); + } + }; + + + HIERARCHY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.HIERARCHY); + } else { + return this.getToken(OracleSqlParser.HIERARCHY, i); + } + }; + + + ATTRIBUTE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ATTRIBUTE); + } else { + return this.getToken(OracleSqlParser.ATTRIBUTE, i); + } + }; + + + RESTRICT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RESTRICT); + } else { + return this.getToken(OracleSqlParser.RESTRICT, i); + } + }; + + + CASCADE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CASCADE); + } else { + return this.getToken(OracleSqlParser.CASCADE, i); + } + }; + + + COLUMN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COLUMN); + } else { + return this.getToken(OracleSqlParser.COLUMN, i); + } + }; + + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_dimension(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Level_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_level_clause; + } + + LEVEL() { + return this.getToken(OracleSqlParser.LEVEL, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + table_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_nameContext); + } else { + return this.getTypedRuleContext(Table_nameContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + SKIP_() { + return this.getToken(OracleSqlParser.SKIP_, 0); + }; + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLevel_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hierarchy_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hierarchy_clause; + } + + HIERARCHY() { + return this.getToken(OracleSqlParser.HIERARCHY, 0); + }; + + identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + CHILD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHILD); + } else { + return this.getToken(OracleSqlParser.CHILD, i); + } + }; + + + OF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OF); + } else { + return this.getToken(OracleSqlParser.OF, i); + } + }; + + + dimension_join_clause() { + return this.getTypedRuleContext(Dimension_join_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHierarchy_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dimension_join_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dimension_join_clause; + } + + JOIN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.JOIN); + } else { + return this.getToken(OracleSqlParser.JOIN, i); + } + }; + + + KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEY); + } else { + return this.getToken(OracleSqlParser.KEY, i); + } + }; + + + column_one_or_more_sub_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_one_or_more_sub_clauseContext); + } else { + return this.getTypedRuleContext(Column_one_or_more_sub_clauseContext,i); + } + }; + + REFERENCES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.REFERENCES); + } else { + return this.getToken(OracleSqlParser.REFERENCES, i); + } + }; + + + identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDimension_join_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Attribute_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_attribute_clause; + } + + ATTRIBUTE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ATTRIBUTE); + } else { + return this.getToken(OracleSqlParser.ATTRIBUTE, i); + } + }; + + + identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } + }; + + DETERMINES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DETERMINES); + } else { + return this.getToken(OracleSqlParser.DETERMINES, i); + } + }; + + + column_one_or_more_sub_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_one_or_more_sub_clauseContext); + } else { + return this.getTypedRuleContext(Column_one_or_more_sub_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAttribute_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Extended_attribute_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_extended_attribute_clause; + } + + ATTRIBUTE() { + return this.getToken(OracleSqlParser.ATTRIBUTE, 0); + }; + + identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } + }; + + LEVEL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEVEL); + } else { + return this.getToken(OracleSqlParser.LEVEL, i); + } + }; + + + DETERMINES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DETERMINES); + } else { + return this.getToken(OracleSqlParser.DETERMINES, i); + } + }; + + + column_one_or_more_sub_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_one_or_more_sub_clauseContext); + } else { + return this.getTypedRuleContext(Column_one_or_more_sub_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExtended_attribute_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Column_one_or_more_sub_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_column_one_or_more_sub_clause; + } + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitColumn_one_or_more_sub_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_viewContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_view; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + out_of_line_constraint() { + return this.getTypedRuleContext(Out_of_line_constraintContext,0); + }; + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + constraint_name() { + return this.getTypedRuleContext(Constraint_nameContext,0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + RELY() { + return this.getToken(OracleSqlParser.RELY, 0); + }; + + NORELY() { + return this.getToken(OracleSqlParser.NORELY, 0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + WRITE() { + return this.getToken(OracleSqlParser.WRITE, 0); + }; + + PRIMARY() { + return this.getToken(OracleSqlParser.PRIMARY, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + alter_view_editionable() { + return this.getTypedRuleContext(Alter_view_editionableContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_view(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_view_editionableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_view_editionable; + } + + EDITIONABLE() { + return this.getToken(OracleSqlParser.EDITIONABLE, 0); + }; + + NONEDITIONABLE() { + return this.getToken(OracleSqlParser.NONEDITIONABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_view_editionable(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_viewContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_view; + this.v = null; + this.cn = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + select_only_statement() { + return this.getTypedRuleContext(Select_only_statementContext,0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + editioning_clause() { + return this.getTypedRuleContext(Editioning_clauseContext,0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + SHARING() { + return this.getToken(OracleSqlParser.SHARING, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + view_options() { + return this.getTypedRuleContext(View_optionsContext,0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + COLLATION() { + return this.getToken(OracleSqlParser.COLLATION, 0); + }; + + BEQUEATH() { + return this.getToken(OracleSqlParser.BEQUEATH, 0); + }; + + subquery_restriction_clause() { + return this.getTypedRuleContext(Subquery_restriction_clauseContext,0); + }; + + CURRENT_USER() { + return this.getToken(OracleSqlParser.CURRENT_USER, 0); + }; + + DEFINER() { + return this.getToken(OracleSqlParser.DEFINER, 0); + }; + + CONTAINER_MAP() { + return this.getToken(OracleSqlParser.CONTAINER_MAP, 0); + }; + + CONTAINERS_DEFAULT() { + return this.getToken(OracleSqlParser.CONTAINERS_DEFAULT, 0); + }; + + METADATA() { + return this.getToken(OracleSqlParser.METADATA, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + EXTENDED() { + return this.getToken(OracleSqlParser.EXTENDED, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_view(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Editioning_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_editioning_clause; + } + + EDITIONING() { + return this.getToken(OracleSqlParser.EDITIONING, 0); + }; + + EDITIONABLE() { + return this.getToken(OracleSqlParser.EDITIONABLE, 0); + }; + + NONEDITIONABLE() { + return this.getToken(OracleSqlParser.NONEDITIONABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitEditioning_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class View_optionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_view_options; + } + + view_alias_constraint() { + return this.getTypedRuleContext(View_alias_constraintContext,0); + }; + + object_view_clause() { + return this.getTypedRuleContext(Object_view_clauseContext,0); + }; + + xmltype_view_clause() { + return this.getTypedRuleContext(Xmltype_view_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitView_options(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class View_alias_constraintContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_view_alias_constraint; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + table_alias = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_aliasContext); + } else { + return this.getTypedRuleContext(Table_aliasContext,i); + } + }; + + out_of_line_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Out_of_line_constraintContext); + } else { + return this.getTypedRuleContext(Out_of_line_constraintContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + inline_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inline_constraintContext); + } else { + return this.getTypedRuleContext(Inline_constraintContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitView_alias_constraint(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_view_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_view_clause; + this.tn = null; + this.sv = null; + } + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + OBJECT() { + return this.getToken(OracleSqlParser.OBJECT, 0); + }; + + UNDER() { + return this.getToken(OracleSqlParser.UNDER, 0); + }; + + schema_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Schema_nameContext); + } else { + return this.getTypedRuleContext(Schema_nameContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + IDENTIFIER() { + return this.getToken(OracleSqlParser.IDENTIFIER, 0); + }; + + ID() { + return this.getToken(OracleSqlParser.ID, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + REGULAR_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.REGULAR_ID); + } else { + return this.getToken(OracleSqlParser.REGULAR_ID, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + out_of_line_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Out_of_line_constraintContext); + } else { + return this.getTypedRuleContext(Out_of_line_constraintContext,i); + } + }; + + inline_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inline_constraintContext); + } else { + return this.getTypedRuleContext(Inline_constraintContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_view_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Inline_constraintContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_inline_constraint; + } + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + PRIMARY() { + return this.getToken(OracleSqlParser.PRIMARY, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + references_clause() { + return this.getTypedRuleContext(References_clauseContext,0); + }; + + check_constraint() { + return this.getTypedRuleContext(Check_constraintContext,0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + constraint_name() { + return this.getTypedRuleContext(Constraint_nameContext,0); + }; + + constraint_state() { + return this.getTypedRuleContext(Constraint_stateContext,0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInline_constraint(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Inline_ref_constraintContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_inline_ref_constraint; + } + + SCOPE() { + return this.getToken(OracleSqlParser.SCOPE, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + ROWID() { + return this.getToken(OracleSqlParser.ROWID, 0); + }; + + references_clause() { + return this.getTypedRuleContext(References_clauseContext,0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + constraint_name() { + return this.getTypedRuleContext(Constraint_nameContext,0); + }; + + constraint_state() { + return this.getTypedRuleContext(Constraint_stateContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInline_ref_constraint(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Out_of_line_ref_constraintContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_out_of_line_ref_constraint; + this.ref_col_or_attr = null; + } + + SCOPE() { + return this.getToken(OracleSqlParser.SCOPE, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + regular_id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Regular_idContext); + } else { + return this.getTypedRuleContext(Regular_idContext,i); + } + }; + + REF() { + return this.getToken(OracleSqlParser.REF, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + ROWID() { + return this.getToken(OracleSqlParser.ROWID, 0); + }; + + FOREIGN() { + return this.getToken(OracleSqlParser.FOREIGN, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + references_clause() { + return this.getTypedRuleContext(References_clauseContext,0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + constraint_name() { + return this.getTypedRuleContext(Constraint_nameContext,0); + }; + + constraint_state() { + return this.getTypedRuleContext(Constraint_stateContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOut_of_line_ref_constraint(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Out_of_line_constraintContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_out_of_line_constraint; + } + + constraint_state() { + return this.getTypedRuleContext(Constraint_stateContext,0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + PRIMARY() { + return this.getToken(OracleSqlParser.PRIMARY, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + foreign_key_clause() { + return this.getTypedRuleContext(Foreign_key_clauseContext,0); + }; + + CHECK() { + return this.getToken(OracleSqlParser.CHECK, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + constraint_name() { + return this.getTypedRuleContext(Constraint_nameContext,0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + CONSTRAINTS() { + return this.getToken(OracleSqlParser.CONSTRAINTS, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOut_of_line_constraint(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Constraint_stateContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_constraint_state; + } + + DEFERRABLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEFERRABLE); + } else { + return this.getToken(OracleSqlParser.DEFERRABLE, i); + } + }; + + + INITIALLY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.INITIALLY); + } else { + return this.getToken(OracleSqlParser.INITIALLY, i); + } + }; + + + using_index_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Using_index_clauseContext); + } else { + return this.getTypedRuleContext(Using_index_clauseContext,i); + } + }; + + IMMEDIATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.IMMEDIATE); + } else { + return this.getToken(OracleSqlParser.IMMEDIATE, i); + } + }; + + + DEFERRED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEFERRED); + } else { + return this.getToken(OracleSqlParser.DEFERRED, i); + } + }; + + + RELY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RELY); + } else { + return this.getToken(OracleSqlParser.RELY, i); + } + }; + + + NORELY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NORELY); + } else { + return this.getToken(OracleSqlParser.NORELY, i); + } + }; + + + ENABLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ENABLE); + } else { + return this.getToken(OracleSqlParser.ENABLE, i); + } + }; + + + DISABLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DISABLE); + } else { + return this.getToken(OracleSqlParser.DISABLE, i); + } + }; + + + VALIDATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.VALIDATE); + } else { + return this.getToken(OracleSqlParser.VALIDATE, i); + } + }; + + + NOVALIDATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NOVALIDATE); + } else { + return this.getToken(OracleSqlParser.NOVALIDATE, i); + } + }; + + + NOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NOT); + } else { + return this.getToken(OracleSqlParser.NOT, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConstraint_state(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xmltype_view_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmltype_view_clause; + } + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + XMLTYPE() { + return this.getToken(OracleSqlParser.XMLTYPE, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + OBJECT() { + return this.getToken(OracleSqlParser.OBJECT, 0); + }; + + IDENTIFIER() { + return this.getToken(OracleSqlParser.IDENTIFIER, 0); + }; + + ID() { + return this.getToken(OracleSqlParser.ID, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + xml_schema_spec() { + return this.getTypedRuleContext(Xml_schema_specContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmltype_view_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xml_schema_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xml_schema_spec; + } + + ELEMENT() { + return this.getToken(OracleSqlParser.ELEMENT, 0); + }; + + element() { + return this.getTypedRuleContext(ElementContext,0); + }; + + xml_schema_url = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Xml_schema_urlContext); + } else { + return this.getTypedRuleContext(Xml_schema_urlContext,i); + } + }; + + HASH_OP() { + return this.getToken(OracleSqlParser.HASH_OP, 0); + }; + + XMLSCHEMA() { + return this.getToken(OracleSqlParser.XMLSCHEMA, 0); + }; + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + VARRAYS() { + return this.getToken(OracleSqlParser.VARRAYS, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + allow_or_disallow = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Allow_or_disallowContext); + } else { + return this.getTypedRuleContext(Allow_or_disallowContext,i); + } + }; + + NONSCHEMA() { + return this.getToken(OracleSqlParser.NONSCHEMA, 0); + }; + + ANYSCHEMA() { + return this.getToken(OracleSqlParser.ANYSCHEMA, 0); + }; + + LOBS() { + return this.getToken(OracleSqlParser.LOBS, 0); + }; + + TABLES() { + return this.getToken(OracleSqlParser.TABLES, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXml_schema_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xml_schema_urlContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xml_schema_url; + } + + DELIMITED_ID() { + return this.getToken(OracleSqlParser.DELIMITED_ID, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXml_schema_url(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class ElementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_element; + } + + DELIMITED_ID() { + return this.getToken(OracleSqlParser.DELIMITED_ID, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitElement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_tablespaceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_tablespace; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + MINIMUM() { + return this.getToken(OracleSqlParser.MINIMUM, 0); + }; + + EXTENT() { + return this.getToken(OracleSqlParser.EXTENT, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + RESIZE() { + return this.getToken(OracleSqlParser.RESIZE, 0); + }; + + COALESCE() { + return this.getToken(OracleSqlParser.COALESCE, 0); + }; + + SHRINK() { + return this.getToken(OracleSqlParser.SHRINK, 0); + }; + + SPACE_KEYWORD() { + return this.getToken(OracleSqlParser.SPACE_KEYWORD, 0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + new_tablespace_name() { + return this.getTypedRuleContext(New_tablespace_nameContext,0); + }; + + begin_or_end() { + return this.getTypedRuleContext(Begin_or_endContext,0); + }; + + BACKUP() { + return this.getToken(OracleSqlParser.BACKUP, 0); + }; + + datafile_tempfile_clauses() { + return this.getTypedRuleContext(Datafile_tempfile_clausesContext,0); + }; + + tablespace_logging_clauses() { + return this.getTypedRuleContext(Tablespace_logging_clausesContext,0); + }; + + tablespace_group_clause() { + return this.getTypedRuleContext(Tablespace_group_clauseContext,0); + }; + + tablespace_state_clauses() { + return this.getTypedRuleContext(Tablespace_state_clausesContext,0); + }; + + autoextend_clause() { + return this.getTypedRuleContext(Autoextend_clauseContext,0); + }; + + flashback_mode_clause() { + return this.getTypedRuleContext(Flashback_mode_clauseContext,0); + }; + + tablespace_retention_clause() { + return this.getTypedRuleContext(Tablespace_retention_clauseContext,0); + }; + + table_compression() { + return this.getTypedRuleContext(Table_compressionContext,0); + }; + + storage_clause() { + return this.getTypedRuleContext(Storage_clauseContext,0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_tablespace(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Datafile_tempfile_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_datafile_tempfile_clauses; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + datafile_specification() { + return this.getTypedRuleContext(Datafile_specificationContext,0); + }; + + tempfile_specification() { + return this.getTypedRuleContext(Tempfile_specificationContext,0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + TEMPFILE() { + return this.getToken(OracleSqlParser.TEMPFILE, 0); + }; + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + SHRINK() { + return this.getToken(OracleSqlParser.SHRINK, 0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + online_or_offline() { + return this.getTypedRuleContext(Online_or_offlineContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDatafile_tempfile_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Tablespace_logging_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tablespace_logging_clauses; + } + + logging_clause() { + return this.getTypedRuleContext(Logging_clauseContext,0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + LOGGING() { + return this.getToken(OracleSqlParser.LOGGING, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTablespace_logging_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Tablespace_group_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tablespace_group_clause; + } + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + tablespace_group_name() { + return this.getTypedRuleContext(Tablespace_group_nameContext,0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTablespace_group_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Tablespace_group_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tablespace_group_name; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTablespace_group_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Tablespace_state_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tablespace_state_clauses; + } + + ONLINE() { + return this.getToken(OracleSqlParser.ONLINE, 0); + }; + + OFFLINE() { + return this.getToken(OracleSqlParser.OFFLINE, 0); + }; + + NORMAL() { + return this.getToken(OracleSqlParser.NORMAL, 0); + }; + + TEMPORARY() { + return this.getToken(OracleSqlParser.TEMPORARY, 0); + }; + + IMMEDIATE() { + return this.getToken(OracleSqlParser.IMMEDIATE, 0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + WRITE() { + return this.getToken(OracleSqlParser.WRITE, 0); + }; + + PERMANENT() { + return this.getToken(OracleSqlParser.PERMANENT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTablespace_state_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Flashback_mode_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_flashback_mode_clause; + } + + FLASHBACK() { + return this.getToken(OracleSqlParser.FLASHBACK, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + OFF() { + return this.getToken(OracleSqlParser.OFF, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFlashback_mode_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class New_tablespace_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_new_tablespace_name; + } + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNew_tablespace_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_tablespaceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_tablespace; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + permanent_tablespace_clause() { + return this.getTypedRuleContext(Permanent_tablespace_clauseContext,0); + }; + + temporary_tablespace_clause() { + return this.getTypedRuleContext(Temporary_tablespace_clauseContext,0); + }; + + undo_tablespace_clause() { + return this.getTypedRuleContext(Undo_tablespace_clauseContext,0); + }; + + BIGFILE() { + return this.getToken(OracleSqlParser.BIGFILE, 0); + }; + + SMALLFILE() { + return this.getToken(OracleSqlParser.SMALLFILE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_tablespace(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Permanent_tablespace_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_permanent_tablespace_clause; + } + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + datafile_specification() { + return this.getTypedRuleContext(Datafile_specificationContext,0); + }; + + MINIMUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MINIMUM); + } else { + return this.getToken(OracleSqlParser.MINIMUM, i); + } + }; + + + EXTENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EXTENT); + } else { + return this.getToken(OracleSqlParser.EXTENT, i); + } + }; + + + size_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Size_clauseContext); + } else { + return this.getTypedRuleContext(Size_clauseContext,i); + } + }; + + BLOCKSIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BLOCKSIZE); + } else { + return this.getToken(OracleSqlParser.BLOCKSIZE, i); + } + }; + + + logging_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logging_clauseContext); + } else { + return this.getTypedRuleContext(Logging_clauseContext,i); + } + }; + + FORCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FORCE); + } else { + return this.getToken(OracleSqlParser.FORCE, i); + } + }; + + + LOGGING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LOGGING); + } else { + return this.getToken(OracleSqlParser.LOGGING, i); + } + }; + + + ENCRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ENCRYPTION); + } else { + return this.getToken(OracleSqlParser.ENCRYPTION, i); + } + }; + + + tablespace_encryption_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Tablespace_encryption_specContext); + } else { + return this.getTypedRuleContext(Tablespace_encryption_specContext,i); + } + }; + + DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEFAULT); + } else { + return this.getToken(OracleSqlParser.DEFAULT, i); + } + }; + + + extent_management_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Extent_management_clauseContext); + } else { + return this.getTypedRuleContext(Extent_management_clauseContext,i); + } + }; + + segment_management_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Segment_management_clauseContext); + } else { + return this.getTypedRuleContext(Segment_management_clauseContext,i); + } + }; + + flashback_mode_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Flashback_mode_clauseContext); + } else { + return this.getTypedRuleContext(Flashback_mode_clauseContext,i); + } + }; + + ONLINE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ONLINE); + } else { + return this.getToken(OracleSqlParser.ONLINE, i); + } + }; + + + OFFLINE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OFFLINE); + } else { + return this.getToken(OracleSqlParser.OFFLINE, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPermanent_tablespace_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Tablespace_encryption_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tablespace_encryption_spec; + this.encrypt_algorithm = null; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTablespace_encryption_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Logging_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_logging_clause; + } + + LOGGING() { + return this.getToken(OracleSqlParser.LOGGING, 0); + }; + + NOLOGGING() { + return this.getToken(OracleSqlParser.NOLOGGING, 0); + }; + + FILESYSTEM_LIKE_LOGGING() { + return this.getToken(OracleSqlParser.FILESYSTEM_LIKE_LOGGING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLogging_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Extent_management_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_extent_management_clause; + } + + EXTENT() { + return this.getToken(OracleSqlParser.EXTENT, 0); + }; + + MANAGEMENT() { + return this.getToken(OracleSqlParser.MANAGEMENT, 0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + AUTOALLOCATE() { + return this.getToken(OracleSqlParser.AUTOALLOCATE, 0); + }; + + UNIFORM() { + return this.getToken(OracleSqlParser.UNIFORM, 0); + }; + + SIZE() { + return this.getToken(OracleSqlParser.SIZE, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExtent_management_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Segment_management_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_segment_management_clause; + } + + SEGMENT() { + return this.getToken(OracleSqlParser.SEGMENT, 0); + }; + + SPACE_KEYWORD() { + return this.getToken(OracleSqlParser.SPACE_KEYWORD, 0); + }; + + MANAGEMENT() { + return this.getToken(OracleSqlParser.MANAGEMENT, 0); + }; + + AUTO() { + return this.getToken(OracleSqlParser.AUTO, 0); + }; + + MANUAL() { + return this.getToken(OracleSqlParser.MANUAL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSegment_management_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Temporary_tablespace_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_temporary_tablespace_clause; + this.tablespace_name = null; + } + + TEMPORARY() { + return this.getToken(OracleSqlParser.TEMPORARY, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + tempfile_specification() { + return this.getTypedRuleContext(Tempfile_specificationContext,0); + }; + + tablespace_group_clause() { + return this.getTypedRuleContext(Tablespace_group_clauseContext,0); + }; + + extent_management_clause() { + return this.getTypedRuleContext(Extent_management_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTemporary_tablespace_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Undo_tablespace_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_undo_tablespace_clause; + this.tablespace_name = null; + } + + UNDO() { + return this.getToken(OracleSqlParser.UNDO, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + datafile_specification() { + return this.getTypedRuleContext(Datafile_specificationContext,0); + }; + + extent_management_clause() { + return this.getTypedRuleContext(Extent_management_clauseContext,0); + }; + + tablespace_retention_clause() { + return this.getTypedRuleContext(Tablespace_retention_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUndo_tablespace_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Tablespace_retention_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tablespace_retention_clause; + } + + RETENTION() { + return this.getToken(OracleSqlParser.RETENTION, 0); + }; + + GUARANTEE() { + return this.getToken(OracleSqlParser.GUARANTEE, 0); + }; + + NOGUARANTEE() { + return this.getToken(OracleSqlParser.NOGUARANTEE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTablespace_retention_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_tablespace_setContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_tablespace_set; + this.tss = null; + this.ss = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + SHARDSPACE() { + return this.getToken(OracleSqlParser.SHARDSPACE, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + TEMPLATE() { + return this.getToken(OracleSqlParser.TEMPLATE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + file_specification = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(File_specificationContext); + } else { + return this.getTypedRuleContext(File_specificationContext,i); + } + }; + + permanent_tablespace_attrs = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Permanent_tablespace_attrsContext); + } else { + return this.getTypedRuleContext(Permanent_tablespace_attrsContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_tablespace_set(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Permanent_tablespace_attrsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_permanent_tablespace_attrs; + } + + MINIMUM() { + return this.getToken(OracleSqlParser.MINIMUM, 0); + }; + + EXTENT() { + return this.getToken(OracleSqlParser.EXTENT, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + BLOCKSIZE() { + return this.getToken(OracleSqlParser.BLOCKSIZE, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + K_LETTER() { + return this.getToken(OracleSqlParser.K_LETTER, 0); + }; + + logging_clause() { + return this.getTypedRuleContext(Logging_clauseContext,0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + LOGGING() { + return this.getToken(OracleSqlParser.LOGGING, 0); + }; + + tablespace_encryption_clause() { + return this.getTypedRuleContext(Tablespace_encryption_clauseContext,0); + }; + + default_tablespace_params() { + return this.getTypedRuleContext(Default_tablespace_paramsContext,0); + }; + + ONLINE() { + return this.getToken(OracleSqlParser.ONLINE, 0); + }; + + OFFLINE() { + return this.getToken(OracleSqlParser.OFFLINE, 0); + }; + + extent_management_clause() { + return this.getTypedRuleContext(Extent_management_clauseContext,0); + }; + + segment_management_clause() { + return this.getTypedRuleContext(Segment_management_clauseContext,0); + }; + + flashback_mode_clause() { + return this.getTypedRuleContext(Flashback_mode_clauseContext,0); + }; + + lost_write_protection() { + return this.getTypedRuleContext(Lost_write_protectionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPermanent_tablespace_attrs(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Tablespace_encryption_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tablespace_encryption_clause; + } + + ENCRYPTION() { + return this.getToken(OracleSqlParser.ENCRYPTION, 0); + }; + + ENCRYPT() { + return this.getToken(OracleSqlParser.ENCRYPT, 0); + }; + + DECRYPT() { + return this.getToken(OracleSqlParser.DECRYPT, 0); + }; + + tablespace_encryption_spec() { + return this.getTypedRuleContext(Tablespace_encryption_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTablespace_encryption_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_tablespace_paramsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_tablespace_params; + } + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + default_table_compression() { + return this.getTypedRuleContext(Default_table_compressionContext,0); + }; + + default_index_compression() { + return this.getTypedRuleContext(Default_index_compressionContext,0); + }; + + inmmemory_clause() { + return this.getTypedRuleContext(Inmmemory_clauseContext,0); + }; + + ilm_clause() { + return this.getTypedRuleContext(Ilm_clauseContext,0); + }; + + storage_clause() { + return this.getTypedRuleContext(Storage_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_tablespace_params(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_table_compressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_table_compression; + } + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + COMPRESS() { + return this.getToken(OracleSqlParser.COMPRESS, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + NOCOMPRESS() { + return this.getToken(OracleSqlParser.NOCOMPRESS, 0); + }; + + OLTP() { + return this.getToken(OracleSqlParser.OLTP, 0); + }; + + QUERY() { + return this.getToken(OracleSqlParser.QUERY, 0); + }; + + low_high() { + return this.getTypedRuleContext(Low_highContext,0); + }; + + ARCHIVE() { + return this.getToken(OracleSqlParser.ARCHIVE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_table_compression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Low_highContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_low_high; + } + + LOW() { + return this.getToken(OracleSqlParser.LOW, 0); + }; + + HIGH() { + return this.getToken(OracleSqlParser.HIGH, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLow_high(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_index_compressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_index_compression; + } + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + COMPRESS() { + return this.getToken(OracleSqlParser.COMPRESS, 0); + }; + + ADVANCED() { + return this.getToken(OracleSqlParser.ADVANCED, 0); + }; + + low_high() { + return this.getTypedRuleContext(Low_highContext,0); + }; + + NOCOMPRESS() { + return this.getToken(OracleSqlParser.NOCOMPRESS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_index_compression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Inmmemory_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_inmmemory_clause; + } + + INMEMORY() { + return this.getToken(OracleSqlParser.INMEMORY, 0); + }; + + inmemory_attributes() { + return this.getTypedRuleContext(Inmemory_attributesContext,0); + }; + + TEXT() { + return this.getToken(OracleSqlParser.TEXT, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + USING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.USING); + } else { + return this.getToken(OracleSqlParser.USING, i); + } + }; + + + policy_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Policy_nameContext); + } else { + return this.getTypedRuleContext(Policy_nameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInmmemory_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Datafile_specificationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_datafile_specification; + } + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + datafile_tempfile_spec() { + return this.getTypedRuleContext(Datafile_tempfile_specContext,0); + }; + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDatafile_specification(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Tempfile_specificationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tempfile_specification; + } + + TEMPFILE() { + return this.getToken(OracleSqlParser.TEMPFILE, 0); + }; + + datafile_tempfile_spec() { + return this.getTypedRuleContext(Datafile_tempfile_specContext,0); + }; + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTempfile_specification(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Datafile_tempfile_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_datafile_tempfile_spec; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + SIZE() { + return this.getToken(OracleSqlParser.SIZE, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + autoextend_clause() { + return this.getTypedRuleContext(Autoextend_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDatafile_tempfile_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Redo_log_file_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_redo_log_file_spec; + } + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + SIZE() { + return this.getToken(OracleSqlParser.SIZE, 0); + }; + + size_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Size_clauseContext); + } else { + return this.getTypedRuleContext(Size_clauseContext,i); + } + }; + + BLOCKSIZE() { + return this.getToken(OracleSqlParser.BLOCKSIZE, 0); + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRedo_log_file_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Autoextend_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_autoextend_clause; + } + + AUTOEXTEND() { + return this.getToken(OracleSqlParser.AUTOEXTEND, 0); + }; + + OFF() { + return this.getToken(OracleSqlParser.OFF, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + NEXT() { + return this.getToken(OracleSqlParser.NEXT, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + maxsize_clause() { + return this.getTypedRuleContext(Maxsize_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAutoextend_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Maxsize_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_maxsize_clause; + } + + MAXSIZE() { + return this.getToken(OracleSqlParser.MAXSIZE, 0); + }; + + UNLIMITED() { + return this.getToken(OracleSqlParser.UNLIMITED, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMaxsize_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Build_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_build_clause; + } + + BUILD() { + return this.getToken(OracleSqlParser.BUILD, 0); + }; + + IMMEDIATE() { + return this.getToken(OracleSqlParser.IMMEDIATE, 0); + }; + + DEFERRED() { + return this.getToken(OracleSqlParser.DEFERRED, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBuild_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Parallel_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_parallel_clause; + this.parallel_count = null; + } + + NOPARALLEL() { + return this.getToken(OracleSqlParser.NOPARALLEL, 0); + }; + + PARALLEL() { + return this.getToken(OracleSqlParser.PARALLEL, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + DEGREE() { + return this.getToken(OracleSqlParser.DEGREE, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + parallel_instances_clause() { + return this.getTypedRuleContext(Parallel_instances_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitParallel_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Parallel_instances_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_parallel_instances_clause; + } + + INSTANCES() { + return this.getToken(OracleSqlParser.INSTANCES, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitParallel_instances_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_materialized_viewContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_materialized_view; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + physical_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Physical_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Physical_attributes_clauseContext,i); + } + }; + + modify_mv_column_clause() { + return this.getTypedRuleContext(Modify_mv_column_clauseContext,0); + }; + + table_compression() { + return this.getTypedRuleContext(Table_compressionContext,0); + }; + + lob_storage_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_storage_clauseContext); + } else { + return this.getTypedRuleContext(Lob_storage_clauseContext,i); + } + }; + + modify_lob_storage_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Modify_lob_storage_clauseContext); + } else { + return this.getTypedRuleContext(Modify_lob_storage_clauseContext,i); + } + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + logging_clause() { + return this.getTypedRuleContext(Logging_clauseContext,0); + }; + + allocate_extent_clause() { + return this.getTypedRuleContext(Allocate_extent_clauseContext,0); + }; + + deallocate_unused_clause() { + return this.getTypedRuleContext(Deallocate_unused_clauseContext,0); + }; + + shrink_clause() { + return this.getTypedRuleContext(Shrink_clauseContext,0); + }; + + alter_iot_clauses() { + return this.getTypedRuleContext(Alter_iot_clausesContext,0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + alter_mv_option1() { + return this.getTypedRuleContext(Alter_mv_option1Context,0); + }; + + enable_or_disable() { + return this.getTypedRuleContext(Enable_or_disableContext,0); + }; + + QUERY() { + return this.getToken(OracleSqlParser.QUERY, 0); + }; + + REWRITE() { + return this.getToken(OracleSqlParser.REWRITE, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + CONSIDER() { + return this.getToken(OracleSqlParser.CONSIDER, 0); + }; + + FRESH() { + return this.getToken(OracleSqlParser.FRESH, 0); + }; + + cache_or_nocache() { + return this.getTypedRuleContext(Cache_or_nocacheContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_materialized_view(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_mv_option1Context extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_mv_option1; + } + + alter_mv_refresh() { + return this.getTypedRuleContext(Alter_mv_refreshContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_mv_option1(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_mv_refreshContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_mv_refresh; + } + + REFRESH() { + return this.getToken(OracleSqlParser.REFRESH, 0); + }; + + FAST = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FAST); + } else { + return this.getToken(OracleSqlParser.FAST, i); + } + }; + + + COMPLETE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMPLETE); + } else { + return this.getToken(OracleSqlParser.COMPLETE, i); + } + }; + + + FORCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FORCE); + } else { + return this.getToken(OracleSqlParser.FORCE, i); + } + }; + + + ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ON); + } else { + return this.getToken(OracleSqlParser.ON, i); + } + }; + + + START = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.START); + } else { + return this.getToken(OracleSqlParser.START, i); + } + }; + + + WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.WITH); + } else { + return this.getToken(OracleSqlParser.WITH, i); + } + }; + + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + NEXT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NEXT); + } else { + return this.getToken(OracleSqlParser.NEXT, i); + } + }; + + + PRIMARY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PRIMARY); + } else { + return this.getToken(OracleSqlParser.PRIMARY, i); + } + }; + + + KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEY); + } else { + return this.getToken(OracleSqlParser.KEY, i); + } + }; + + + USING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.USING); + } else { + return this.getToken(OracleSqlParser.USING, i); + } + }; + + + MASTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MASTER); + } else { + return this.getToken(OracleSqlParser.MASTER, i); + } + }; + + + ROLLBACK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ROLLBACK); + } else { + return this.getToken(OracleSqlParser.ROLLBACK, i); + } + }; + + + SEGMENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SEGMENT); + } else { + return this.getToken(OracleSqlParser.SEGMENT, i); + } + }; + + + CONSTRAINTS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CONSTRAINTS); + } else { + return this.getToken(OracleSqlParser.CONSTRAINTS, i); + } + }; + + + DEMAND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEMAND); + } else { + return this.getToken(OracleSqlParser.DEMAND, i); + } + }; + + + COMMIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMIT); + } else { + return this.getToken(OracleSqlParser.COMMIT, i); + } + }; + + + ENFORCED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ENFORCED); + } else { + return this.getToken(OracleSqlParser.ENFORCED, i); + } + }; + + + TRUSTED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TRUSTED); + } else { + return this.getToken(OracleSqlParser.TRUSTED, i); + } + }; + + + DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEFAULT); + } else { + return this.getToken(OracleSqlParser.DEFAULT, i); + } + }; + + + rollback_segment = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Rollback_segmentContext); + } else { + return this.getTypedRuleContext(Rollback_segmentContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_mv_refresh(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Rollback_segmentContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_rollback_segment; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRollback_segment(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_mv_column_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_mv_column_clause; + } + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + ENCRYPT() { + return this.getToken(OracleSqlParser.ENCRYPT, 0); + }; + + encryption_spec() { + return this.getTypedRuleContext(Encryption_specContext,0); + }; + + DECRYPT() { + return this.getToken(OracleSqlParser.DECRYPT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_mv_column_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_materialized_view_logContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_materialized_view_log; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + LOG() { + return this.getToken(OracleSqlParser.LOG, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + physical_attributes_clause() { + return this.getTypedRuleContext(Physical_attributes_clauseContext,0); + }; + + add_mv_log_column_clause() { + return this.getTypedRuleContext(Add_mv_log_column_clauseContext,0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + logging_clause() { + return this.getTypedRuleContext(Logging_clauseContext,0); + }; + + allocate_extent_clause() { + return this.getTypedRuleContext(Allocate_extent_clauseContext,0); + }; + + shrink_clause() { + return this.getTypedRuleContext(Shrink_clauseContext,0); + }; + + move_mv_log_clause() { + return this.getTypedRuleContext(Move_mv_log_clauseContext,0); + }; + + cache_or_nocache() { + return this.getTypedRuleContext(Cache_or_nocacheContext,0); + }; + + mv_log_augmentation() { + return this.getTypedRuleContext(Mv_log_augmentationContext,0); + }; + + mv_log_purge_clause() { + return this.getTypedRuleContext(Mv_log_purge_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_materialized_view_log(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_mv_log_column_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_mv_log_column_clause; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_mv_log_column_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Move_mv_log_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_move_mv_log_clause; + } + + MOVE() { + return this.getToken(OracleSqlParser.MOVE, 0); + }; + + segment_attributes_clause() { + return this.getTypedRuleContext(Segment_attributes_clauseContext,0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMove_mv_log_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Mv_log_augmentationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_mv_log_augmentation; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + new_values_clause() { + return this.getTypedRuleContext(New_values_clauseContext,0); + }; + + OBJECT() { + return this.getToken(OracleSqlParser.OBJECT, 0); + }; + + ID() { + return this.getToken(OracleSqlParser.ID, 0); + }; + + PRIMARY() { + return this.getToken(OracleSqlParser.PRIMARY, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + ROWID() { + return this.getToken(OracleSqlParser.ROWID, 0); + }; + + SEQUENCE() { + return this.getToken(OracleSqlParser.SEQUENCE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMv_log_augmentation(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_materialized_view_logContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_materialized_view_log; + this.tablespace_name = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + LOG() { + return this.getToken(OracleSqlParser.LOG, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.WITH); + } else { + return this.getToken(OracleSqlParser.WITH, i); + } + }; + + + physical_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Physical_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Physical_attributes_clauseContext,i); + } + }; + + TABLESPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLESPACE); + } else { + return this.getToken(OracleSqlParser.TABLESPACE, i); + } + }; + + + logging_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logging_clauseContext); + } else { + return this.getTypedRuleContext(Logging_clauseContext,i); + } + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + mv_log_purge_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Mv_log_purge_clauseContext); + } else { + return this.getTypedRuleContext(Mv_log_purge_clauseContext,i); + } + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + CACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CACHE); + } else { + return this.getToken(OracleSqlParser.CACHE, i); + } + }; + + + NOCACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NOCACHE); + } else { + return this.getToken(OracleSqlParser.NOCACHE, i); + } + }; + + + OBJECT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OBJECT); + } else { + return this.getToken(OracleSqlParser.OBJECT, i); + } + }; + + + ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ID); + } else { + return this.getToken(OracleSqlParser.ID, i); + } + }; + + + PRIMARY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PRIMARY); + } else { + return this.getToken(OracleSqlParser.PRIMARY, i); + } + }; + + + KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEY); + } else { + return this.getToken(OracleSqlParser.KEY, i); + } + }; + + + ROWID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ROWID); + } else { + return this.getToken(OracleSqlParser.ROWID, i); + } + }; + + + SEQUENCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SEQUENCE); + } else { + return this.getToken(OracleSqlParser.SEQUENCE, i); + } + }; + + + COMMIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMIT); + } else { + return this.getToken(OracleSqlParser.COMMIT, i); + } + }; + + + SCN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SCN); + } else { + return this.getToken(OracleSqlParser.SCN, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + regular_id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Regular_idContext); + } else { + return this.getTypedRuleContext(Regular_idContext,i); + } + }; + + new_values_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(New_values_clauseContext); + } else { + return this.getTypedRuleContext(New_values_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_materialized_view_log(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class New_values_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_new_values_clause; + } + + NEW() { + return this.getToken(OracleSqlParser.NEW, 0); + }; + + VALUES() { + return this.getToken(OracleSqlParser.VALUES, 0); + }; + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + EXCLUDING() { + return this.getToken(OracleSqlParser.EXCLUDING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNew_values_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Mv_log_purge_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_mv_log_purge_clause; + } + + PURGE() { + return this.getToken(OracleSqlParser.PURGE, 0); + }; + + IMMEDIATE() { + return this.getToken(OracleSqlParser.IMMEDIATE, 0); + }; + + SYNCHRONOUS() { + return this.getToken(OracleSqlParser.SYNCHRONOUS, 0); + }; + + ASYNCHRONOUS() { + return this.getToken(OracleSqlParser.ASYNCHRONOUS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMv_log_purge_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_materialized_zonemapContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_materialized_zonemap; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + ZONEMAP() { + return this.getToken(OracleSqlParser.ZONEMAP, 0); + }; + + zonemap_name() { + return this.getTypedRuleContext(Zonemap_nameContext,0); + }; + + create_zonemap_on_table() { + return this.getTypedRuleContext(Create_zonemap_on_tableContext,0); + }; + + create_zonemap_as_subquery() { + return this.getTypedRuleContext(Create_zonemap_as_subqueryContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_list() { + return this.getTypedRuleContext(Column_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + zonemap_attributes() { + return this.getTypedRuleContext(Zonemap_attributesContext,0); + }; + + zonemap_refresh_clause() { + return this.getTypedRuleContext(Zonemap_refresh_clauseContext,0); + }; + + PRUNING() { + return this.getToken(OracleSqlParser.PRUNING, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_materialized_zonemap(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_materialized_zonemapContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_materialized_zonemap; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + ZONEMAP() { + return this.getToken(OracleSqlParser.ZONEMAP, 0); + }; + + zonemap_name() { + return this.getTypedRuleContext(Zonemap_nameContext,0); + }; + + zonemap_attributes() { + return this.getTypedRuleContext(Zonemap_attributesContext,0); + }; + + zonemap_refresh_clause() { + return this.getTypedRuleContext(Zonemap_refresh_clauseContext,0); + }; + + PRUNING() { + return this.getToken(OracleSqlParser.PRUNING, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + REBUILD() { + return this.getToken(OracleSqlParser.REBUILD, 0); + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_materialized_zonemap(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_materialized_zonemapContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_materialized_zonemap; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + ZONEMAP() { + return this.getToken(OracleSqlParser.ZONEMAP, 0); + }; + + zonemap_name() { + return this.getTypedRuleContext(Zonemap_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_materialized_zonemap(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Zonemap_refresh_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_zonemap_refresh_clause; + } + + REFRESH() { + return this.getToken(OracleSqlParser.REFRESH, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + FAST() { + return this.getToken(OracleSqlParser.FAST, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + DEMAND() { + return this.getToken(OracleSqlParser.DEMAND, 0); + }; + + COMMIT() { + return this.getToken(OracleSqlParser.COMMIT, 0); + }; + + LOAD() { + return this.getToken(OracleSqlParser.LOAD, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + MOVEMENT() { + return this.getToken(OracleSqlParser.MOVEMENT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitZonemap_refresh_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Zonemap_attributesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_zonemap_attributes; + } + + PCTFREE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PCTFREE); + } else { + return this.getToken(OracleSqlParser.PCTFREE, i); + } + }; + + + numeric = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(NumericContext); + } else { + return this.getTypedRuleContext(NumericContext,i); + } + }; + + PCTUSED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PCTUSED); + } else { + return this.getToken(OracleSqlParser.PCTUSED, i); + } + }; + + + SCALE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SCALE); + } else { + return this.getToken(OracleSqlParser.SCALE, i); + } + }; + + + TABLESPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLESPACE); + } else { + return this.getToken(OracleSqlParser.TABLESPACE, i); + } + }; + + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + CACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CACHE); + } else { + return this.getToken(OracleSqlParser.CACHE, i); + } + }; + + + NOCACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NOCACHE); + } else { + return this.getToken(OracleSqlParser.NOCACHE, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitZonemap_attributes(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Zonemap_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_zonemap_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitZonemap_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Operator_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_operator_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOperator_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Operator_function_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_operator_function_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOperator_function_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_zonemap_on_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_zonemap_on_table; + } + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_list() { + return this.getTypedRuleContext(Column_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_zonemap_on_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_zonemap_as_subqueryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_zonemap_as_subquery; + } + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_zonemap_as_subquery(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_operatorContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_operator; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + OPERATOR() { + return this.getToken(OracleSqlParser.OPERATOR, 0); + }; + + operator_name() { + return this.getTypedRuleContext(Operator_nameContext,0); + }; + + add_binding_clause() { + return this.getTypedRuleContext(Add_binding_clauseContext,0); + }; + + drop_binding_clause() { + return this.getTypedRuleContext(Drop_binding_clauseContext,0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_operator(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_operatorContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_operator; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + OPERATOR() { + return this.getToken(OracleSqlParser.OPERATOR, 0); + }; + + operator_name() { + return this.getTypedRuleContext(Operator_nameContext,0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_operator(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_operatorContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_operator; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + OPERATOR() { + return this.getToken(OracleSqlParser.OPERATOR, 0); + }; + + operator_name() { + return this.getTypedRuleContext(Operator_nameContext,0); + }; + + BINDING() { + return this.getToken(OracleSqlParser.BINDING, 0); + }; + + binding_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Binding_clauseContext); + } else { + return this.getTypedRuleContext(Binding_clauseContext,i); + } + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + SHARING() { + return this.getToken(OracleSqlParser.SHARING, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + METADATA() { + return this.getToken(OracleSqlParser.METADATA, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_operator(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Binding_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_binding_clause; + } + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + datatype = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DatatypeContext); + } else { + return this.getTypedRuleContext(DatatypeContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + using_function_clause() { + return this.getTypedRuleContext(Using_function_clauseContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + implementation_clause() { + return this.getTypedRuleContext(Implementation_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBinding_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_binding_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_binding_clause; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + BINDING() { + return this.getToken(OracleSqlParser.BINDING, 0); + }; + + binding_clause() { + return this.getTypedRuleContext(Binding_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_binding_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Implementation_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_implementation_clause; + } + + ANCILLARY() { + return this.getToken(OracleSqlParser.ANCILLARY, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + primary_operator_list() { + return this.getTypedRuleContext(Primary_operator_listContext,0); + }; + + operator_context_clause() { + return this.getTypedRuleContext(Operator_context_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitImplementation_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Primary_operator_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_primary_operator_list; + } + + primary_operator_item = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Primary_operator_itemContext); + } else { + return this.getTypedRuleContext(Primary_operator_itemContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPrimary_operator_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Primary_operator_itemContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_primary_operator_item; + } + + schema_object_name() { + return this.getTypedRuleContext(Schema_object_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + datatype = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DatatypeContext); + } else { + return this.getTypedRuleContext(DatatypeContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPrimary_operator_item(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Operator_context_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_operator_context_clause; + } + + WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.WITH); + } else { + return this.getToken(OracleSqlParser.WITH, i); + } + }; + + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + CONTEXT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CONTEXT); + } else { + return this.getToken(OracleSqlParser.CONTEXT, i); + } + }; + + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + SCAN() { + return this.getToken(OracleSqlParser.SCAN, 0); + }; + + implementation_type_name() { + return this.getTypedRuleContext(Implementation_type_nameContext,0); + }; + + COMPUTE() { + return this.getToken(OracleSqlParser.COMPUTE, 0); + }; + + ANCILLARY() { + return this.getToken(OracleSqlParser.ANCILLARY, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOperator_context_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Using_function_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_using_function_clause; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + operator_function_name() { + return this.getTypedRuleContext(Operator_function_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUsing_function_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_binding_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_binding_clause; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + BINDING() { + return this.getToken(OracleSqlParser.BINDING, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + datatype = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DatatypeContext); + } else { + return this.getTypedRuleContext(DatatypeContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_binding_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_materialized_viewContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_materialized_view; + this.mv_tablespace = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + select_only_statement() { + return this.getTypedRuleContext(Select_only_statementContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + PREBUILT() { + return this.getToken(OracleSqlParser.PREBUILT, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + type_name() { + return this.getTypedRuleContext(Type_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + create_mv_refresh() { + return this.getTypedRuleContext(Create_mv_refreshContext,0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + QUERY() { + return this.getToken(OracleSqlParser.QUERY, 0); + }; + + REWRITE() { + return this.getToken(OracleSqlParser.REWRITE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + scoped_table_ref_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Scoped_table_ref_constraintContext); + } else { + return this.getTypedRuleContext(Scoped_table_ref_constraintContext,i); + } + }; + + mv_column_alias = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Mv_column_aliasContext); + } else { + return this.getTypedRuleContext(Mv_column_aliasContext,i); + } + }; + + REDUCED() { + return this.getToken(OracleSqlParser.REDUCED, 0); + }; + + PRECISION() { + return this.getToken(OracleSqlParser.PRECISION, 0); + }; + + physical_properties() { + return this.getTypedRuleContext(Physical_propertiesContext,0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + build_clause() { + return this.getTypedRuleContext(Build_clauseContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + WITHOUT() { + return this.getToken(OracleSqlParser.WITHOUT, 0); + }; + + CACHE() { + return this.getToken(OracleSqlParser.CACHE, 0); + }; + + NOCACHE() { + return this.getToken(OracleSqlParser.NOCACHE, 0); + }; + + physical_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Physical_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Physical_attributes_clauseContext,i); + } + }; + + TABLESPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLESPACE); + } else { + return this.getToken(OracleSqlParser.TABLESPACE, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_materialized_view(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Scoped_table_ref_constraintContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_scoped_table_ref_constraint; + this.ref_column_or_attribute = null; + this.scope_table_name_or_c_alias = null; + } + + SCOPE() { + return this.getToken(OracleSqlParser.SCOPE, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitScoped_table_ref_constraint(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Mv_column_aliasContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_mv_column_alias; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + ENCRYPT() { + return this.getToken(OracleSqlParser.ENCRYPT, 0); + }; + + encryption_spec() { + return this.getTypedRuleContext(Encryption_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMv_column_alias(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_mv_refreshContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_mv_refresh; + this.rb_segment = null; + } + + NEVER() { + return this.getToken(OracleSqlParser.NEVER, 0); + }; + + REFRESH() { + return this.getToken(OracleSqlParser.REFRESH, 0); + }; + + ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ON); + } else { + return this.getToken(OracleSqlParser.ON, i); + } + }; + + + WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.WITH); + } else { + return this.getToken(OracleSqlParser.WITH, i); + } + }; + + + USING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.USING); + } else { + return this.getToken(OracleSqlParser.USING, i); + } + }; + + + CONSTRAINTS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CONSTRAINTS); + } else { + return this.getToken(OracleSqlParser.CONSTRAINTS, i); + } + }; + + + FAST = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FAST); + } else { + return this.getToken(OracleSqlParser.FAST, i); + } + }; + + + COMPLETE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMPLETE); + } else { + return this.getToken(OracleSqlParser.COMPLETE, i); + } + }; + + + FORCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FORCE); + } else { + return this.getToken(OracleSqlParser.FORCE, i); + } + }; + + + DEMAND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEMAND); + } else { + return this.getToken(OracleSqlParser.DEMAND, i); + } + }; + + + COMMIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMIT); + } else { + return this.getToken(OracleSqlParser.COMMIT, i); + } + }; + + + ENFORCED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ENFORCED); + } else { + return this.getToken(OracleSqlParser.ENFORCED, i); + } + }; + + + TRUSTED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TRUSTED); + } else { + return this.getToken(OracleSqlParser.TRUSTED, i); + } + }; + + + START = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.START); + } else { + return this.getToken(OracleSqlParser.START, i); + } + }; + + + NEXT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NEXT); + } else { + return this.getToken(OracleSqlParser.NEXT, i); + } + }; + + + PRIMARY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PRIMARY); + } else { + return this.getToken(OracleSqlParser.PRIMARY, i); + } + }; + + + KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEY); + } else { + return this.getToken(OracleSqlParser.KEY, i); + } + }; + + + ROWID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ROWID); + } else { + return this.getToken(OracleSqlParser.ROWID, i); + } + }; + + + DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEFAULT); + } else { + return this.getToken(OracleSqlParser.DEFAULT, i); + } + }; + + + ROLLBACK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ROLLBACK); + } else { + return this.getToken(OracleSqlParser.ROLLBACK, i); + } + }; + + + SEGMENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SEGMENT); + } else { + return this.getToken(OracleSqlParser.SEGMENT, i); + } + }; + + + REGULAR_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.REGULAR_ID); + } else { + return this.getToken(OracleSqlParser.REGULAR_ID, i); + } + }; + + + MASTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MASTER); + } else { + return this.getToken(OracleSqlParser.MASTER, i); + } + }; + + + LOCAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LOCAL); + } else { + return this.getToken(OracleSqlParser.LOCAL, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_mv_refresh(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_materialized_viewContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_materialized_view; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + PRESERVE() { + return this.getToken(OracleSqlParser.PRESERVE, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_materialized_view(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_materialized_view_logContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_materialized_view_log; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + LOG() { + return this.getToken(OracleSqlParser.LOG, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_materialized_view_log(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_contextContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_context; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + CONTEXT() { + return this.getToken(OracleSqlParser.CONTEXT, 0); + }; + + oracle_namespace() { + return this.getTypedRuleContext(Oracle_namespaceContext,0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + package_name() { + return this.getTypedRuleContext(Package_nameContext,0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + schema_object_name() { + return this.getTypedRuleContext(Schema_object_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + INITIALIZED() { + return this.getToken(OracleSqlParser.INITIALIZED, 0); + }; + + ACCESSED() { + return this.getToken(OracleSqlParser.ACCESSED, 0); + }; + + GLOBALLY() { + return this.getToken(OracleSqlParser.GLOBALLY, 0); + }; + + EXTERNALLY() { + return this.getToken(OracleSqlParser.EXTERNALLY, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_context(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Oracle_namespaceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_oracle_namespace; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOracle_namespace(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_clusterContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_cluster; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + CLUSTER() { + return this.getToken(OracleSqlParser.CLUSTER, 0); + }; + + cluster_name() { + return this.getTypedRuleContext(Cluster_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + datatype = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DatatypeContext); + } else { + return this.getTypedRuleContext(DatatypeContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + SORT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SORT); + } else { + return this.getToken(OracleSqlParser.SORT, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + physical_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Physical_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Physical_attributes_clauseContext,i); + } + }; + + SIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SIZE); + } else { + return this.getToken(OracleSqlParser.SIZE, i); + } + }; + + + size_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Size_clauseContext); + } else { + return this.getTypedRuleContext(Size_clauseContext,i); + } + }; + + TABLESPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLESPACE); + } else { + return this.getToken(OracleSqlParser.TABLESPACE, i); + } + }; + + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + INDEX = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.INDEX); + } else { + return this.getToken(OracleSqlParser.INDEX, i); + } + }; + + + HASHKEYS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.HASHKEYS); + } else { + return this.getToken(OracleSqlParser.HASHKEYS, i); + } + }; + + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + ROWDEPENDENCIES() { + return this.getToken(OracleSqlParser.ROWDEPENDENCIES, 0); + }; + + NOROWDEPENDENCIES() { + return this.getToken(OracleSqlParser.NOROWDEPENDENCIES, 0); + }; + + CACHE() { + return this.getToken(OracleSqlParser.CACHE, 0); + }; + + NOCACHE() { + return this.getToken(OracleSqlParser.NOCACHE, 0); + }; + + SINGLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SINGLE); + } else { + return this.getToken(OracleSqlParser.SINGLE, i); + } + }; + + + TABLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLE); + } else { + return this.getToken(OracleSqlParser.TABLE, i); + } + }; + + + HASH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.HASH); + } else { + return this.getToken(OracleSqlParser.HASH, i); + } + }; + + + IS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.IS); + } else { + return this.getToken(OracleSqlParser.IS, i); + } + }; + + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_cluster(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_profileContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_profile; + this.p = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + PROFILE() { + return this.getToken(OracleSqlParser.PROFILE, 0); + }; + + LIMIT() { + return this.getToken(OracleSqlParser.LIMIT, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + MANDATORY() { + return this.getToken(OracleSqlParser.MANDATORY, 0); + }; + + resource_parameters = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Resource_parametersContext); + } else { + return this.getTypedRuleContext(Resource_parametersContext,i); + } + }; + + password_parameters = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Password_parametersContext); + } else { + return this.getTypedRuleContext(Password_parametersContext,i); + } + }; + + container_clause() { + return this.getTypedRuleContext(Container_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_profile(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Resource_parametersContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_resource_parameters; + } + + SESSIONS_PER_USER() { + return this.getToken(OracleSqlParser.SESSIONS_PER_USER, 0); + }; + + CPU_PER_SESSION() { + return this.getToken(OracleSqlParser.CPU_PER_SESSION, 0); + }; + + CPU_PER_CALL() { + return this.getToken(OracleSqlParser.CPU_PER_CALL, 0); + }; + + CONNECT_TIME() { + return this.getToken(OracleSqlParser.CONNECT_TIME, 0); + }; + + IDLE_TIME() { + return this.getToken(OracleSqlParser.IDLE_TIME, 0); + }; + + LOGICAL_READS_PER_SESSION() { + return this.getToken(OracleSqlParser.LOGICAL_READS_PER_SESSION, 0); + }; + + LOGICAL_READS_PER_CALL() { + return this.getToken(OracleSqlParser.LOGICAL_READS_PER_CALL, 0); + }; + + COMPOSITE_LIMIT() { + return this.getToken(OracleSqlParser.COMPOSITE_LIMIT, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + UNLIMITED() { + return this.getToken(OracleSqlParser.UNLIMITED, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + PRIVATE_SGA() { + return this.getToken(OracleSqlParser.PRIVATE_SGA, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitResource_parameters(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Password_parametersContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_password_parameters; + } + + FAILED_LOGIN_ATTEMPTS() { + return this.getToken(OracleSqlParser.FAILED_LOGIN_ATTEMPTS, 0); + }; + + PASSWORD_LIFE_TIME() { + return this.getToken(OracleSqlParser.PASSWORD_LIFE_TIME, 0); + }; + + PASSWORD_REUSE_TIME() { + return this.getToken(OracleSqlParser.PASSWORD_REUSE_TIME, 0); + }; + + PASSWORD_REUSE_MAX() { + return this.getToken(OracleSqlParser.PASSWORD_REUSE_MAX, 0); + }; + + PASSWORD_LOCK_TIME() { + return this.getToken(OracleSqlParser.PASSWORD_LOCK_TIME, 0); + }; + + PASSWORD_GRACE_TIME() { + return this.getToken(OracleSqlParser.PASSWORD_GRACE_TIME, 0); + }; + + INACTIVE_ACCOUNT_TIME() { + return this.getToken(OracleSqlParser.INACTIVE_ACCOUNT_TIME, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + UNLIMITED() { + return this.getToken(OracleSqlParser.UNLIMITED, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + PASSWORD_VERIFY_FUNCTION() { + return this.getToken(OracleSqlParser.PASSWORD_VERIFY_FUNCTION, 0); + }; + + function_name() { + return this.getTypedRuleContext(Function_nameContext,0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + PASSWORD_ROLLOVER_TIME() { + return this.getToken(OracleSqlParser.PASSWORD_ROLLOVER_TIME, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPassword_parameters(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_lockdown_profileContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_lockdown_profile; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + LOCKDOWN() { + return this.getToken(OracleSqlParser.LOCKDOWN, 0); + }; + + PROFILE() { + return this.getToken(OracleSqlParser.PROFILE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + static_base_profile() { + return this.getTypedRuleContext(Static_base_profileContext,0); + }; + + dynamic_base_profile() { + return this.getTypedRuleContext(Dynamic_base_profileContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_lockdown_profile(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Static_base_profileContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_static_base_profile; + this.bp = null; + } + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStatic_base_profile(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dynamic_base_profileContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dynamic_base_profile; + this.bp = null; + } + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDynamic_base_profile(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_outlineContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_outline; + this.o = null; + this.so = null; + this.c = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + OUTLINE() { + return this.getToken(OracleSqlParser.OUTLINE, 0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + CATEGORY() { + return this.getToken(OracleSqlParser.CATEGORY, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + statement() { + return this.getTypedRuleContext(StatementContext,0); + }; + + PUBLIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PUBLIC); + } else { + return this.getToken(OracleSqlParser.PUBLIC, i); + } + }; + + + PRIVATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PRIVATE); + } else { + return this.getToken(OracleSqlParser.PRIVATE, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_outline(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_restore_pointContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_restore_point; + this.rp = null; + this.pdb = null; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + RESTORE() { + return this.getToken(OracleSqlParser.RESTORE, 0); + }; + + POINT() { + return this.getToken(OracleSqlParser.POINT, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + CLEAN() { + return this.getToken(OracleSqlParser.CLEAN, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + PLUGGABLE() { + return this.getToken(OracleSqlParser.PLUGGABLE, 0); + }; + + DATABASE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DATABASE); + } else { + return this.getToken(OracleSqlParser.DATABASE, i); + } + }; + + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + PRESERVE() { + return this.getToken(OracleSqlParser.PRESERVE, 0); + }; + + GUARANTEE() { + return this.getToken(OracleSqlParser.GUARANTEE, 0); + }; + + FLASHBACK() { + return this.getToken(OracleSqlParser.FLASHBACK, 0); + }; + + TIMESTAMP() { + return this.getToken(OracleSqlParser.TIMESTAMP, 0); + }; + + SCN() { + return this.getToken(OracleSqlParser.SCN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_restore_point(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_roleContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_role; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + ROLE() { + return this.getToken(OracleSqlParser.ROLE, 0); + }; + + role_name() { + return this.getTypedRuleContext(Role_nameContext,0); + }; + + role_identified_clause() { + return this.getTypedRuleContext(Role_identified_clauseContext,0); + }; + + container_clause() { + return this.getTypedRuleContext(Container_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_role(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_table; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + table_name() { + return this.getTypedRuleContext(Table_nameContext,0); + }; + + relational_table() { + return this.getTypedRuleContext(Relational_tableContext,0); + }; + + xmltype_table() { + return this.getTypedRuleContext(Xmltype_tableContext,0); + }; + + object_table() { + return this.getTypedRuleContext(Object_tableContext,0); + }; + + TEMPORARY() { + return this.getToken(OracleSqlParser.TEMPORARY, 0); + }; + + SHARDED() { + return this.getToken(OracleSqlParser.SHARDED, 0); + }; + + DUPLICATED() { + return this.getToken(OracleSqlParser.DUPLICATED, 0); + }; + + BLOCKCHAIN() { + return this.getToken(OracleSqlParser.BLOCKCHAIN, 0); + }; + + IMMUTABLE() { + return this.getToken(OracleSqlParser.IMMUTABLE, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + SHARING() { + return this.getToken(OracleSqlParser.SHARING, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + memoptimize_read_write_clause() { + return this.getTypedRuleContext(Memoptimize_read_write_clauseContext,0); + }; + + PARENT() { + return this.getToken(OracleSqlParser.PARENT, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + USAGE() { + return this.getToken(OracleSqlParser.USAGE, 0); + }; + + QUEUE() { + return this.getToken(OracleSqlParser.QUEUE, 0); + }; + + GLOBAL() { + return this.getToken(OracleSqlParser.GLOBAL, 0); + }; + + PRIVATE() { + return this.getToken(OracleSqlParser.PRIVATE, 0); + }; + + METADATA() { + return this.getToken(OracleSqlParser.METADATA, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + EXTENDED() { + return this.getToken(OracleSqlParser.EXTENDED, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xmltype_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmltype_table; + } + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + XMLTYPE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.XMLTYPE); + } else { + return this.getToken(OracleSqlParser.XMLTYPE, i); + } + }; + + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + object_properties() { + return this.getTypedRuleContext(Object_propertiesContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + xmltype_storage() { + return this.getTypedRuleContext(Xmltype_storageContext,0); + }; + + xmlschema_spec() { + return this.getTypedRuleContext(Xmlschema_specContext,0); + }; + + xmltype_virtual_columns() { + return this.getTypedRuleContext(Xmltype_virtual_columnsContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + COMMIT() { + return this.getToken(OracleSqlParser.COMMIT, 0); + }; + + ROWS() { + return this.getToken(OracleSqlParser.ROWS, 0); + }; + + oid_clause() { + return this.getTypedRuleContext(Oid_clauseContext,0); + }; + + oid_index_clause() { + return this.getTypedRuleContext(Oid_index_clauseContext,0); + }; + + physical_properties() { + return this.getTypedRuleContext(Physical_propertiesContext,0); + }; + + table_properties() { + return this.getTypedRuleContext(Table_propertiesContext,0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + PRESERVE() { + return this.getToken(OracleSqlParser.PRESERVE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmltype_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xmltype_virtual_columnsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmltype_virtual_columns; + } + + VIRTUAL() { + return this.getToken(OracleSqlParser.VIRTUAL, 0); + }; + + COLUMNS() { + return this.getToken(OracleSqlParser.COLUMNS, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + AS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.AS); + } else { + return this.getToken(OracleSqlParser.AS, i); + } + }; + + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmltype_virtual_columns(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xmltype_column_propertiesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmltype_column_properties; + } + + XMLTYPE() { + return this.getToken(OracleSqlParser.XMLTYPE, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + xmltype_storage() { + return this.getTypedRuleContext(Xmltype_storageContext,0); + }; + + xmlschema_spec() { + return this.getTypedRuleContext(Xmlschema_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmltype_column_properties(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xmltype_storageContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmltype_storage; + } + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + OBJECT() { + return this.getToken(OracleSqlParser.OBJECT, 0); + }; + + RELATIONAL() { + return this.getToken(OracleSqlParser.RELATIONAL, 0); + }; + + CLOB() { + return this.getToken(OracleSqlParser.CLOB, 0); + }; + + BINARY() { + return this.getToken(OracleSqlParser.BINARY, 0); + }; + + XML() { + return this.getToken(OracleSqlParser.XML, 0); + }; + + lob_segname() { + return this.getTypedRuleContext(Lob_segnameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + lob_parameters() { + return this.getTypedRuleContext(Lob_parametersContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + SECUREFILE() { + return this.getToken(OracleSqlParser.SECUREFILE, 0); + }; + + BASICFILE() { + return this.getToken(OracleSqlParser.BASICFILE, 0); + }; + + VARRAYS() { + return this.getToken(OracleSqlParser.VARRAYS, 0); + }; + + LOBS() { + return this.getToken(OracleSqlParser.LOBS, 0); + }; + + TABLES() { + return this.getToken(OracleSqlParser.TABLES, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmltype_storage(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xmlschema_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmlschema_spec; + } + + ELEMENT() { + return this.getToken(OracleSqlParser.ELEMENT, 0); + }; + + DELIMITED_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DELIMITED_ID); + } else { + return this.getToken(OracleSqlParser.DELIMITED_ID, i); + } + }; + + + XMLSCHEMA() { + return this.getToken(OracleSqlParser.XMLSCHEMA, 0); + }; + + allow_or_disallow = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Allow_or_disallowContext); + } else { + return this.getTypedRuleContext(Allow_or_disallowContext,i); + } + }; + + NONSCHEMA() { + return this.getToken(OracleSqlParser.NONSCHEMA, 0); + }; + + ANYSCHEMA() { + return this.getToken(OracleSqlParser.ANYSCHEMA, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmlschema_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_table; + } + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + object_type() { + return this.getTypedRuleContext(Object_typeContext,0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + object_table_substitution() { + return this.getTypedRuleContext(Object_table_substitutionContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + object_properties = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Object_propertiesContext); + } else { + return this.getTypedRuleContext(Object_propertiesContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + COMMIT() { + return this.getToken(OracleSqlParser.COMMIT, 0); + }; + + ROWS() { + return this.getToken(OracleSqlParser.ROWS, 0); + }; + + oid_clause() { + return this.getTypedRuleContext(Oid_clauseContext,0); + }; + + oid_index_clause() { + return this.getTypedRuleContext(Oid_index_clauseContext,0); + }; + + physical_properties() { + return this.getTypedRuleContext(Physical_propertiesContext,0); + }; + + table_properties() { + return this.getTypedRuleContext(Table_propertiesContext,0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + PRESERVE() { + return this.getToken(OracleSqlParser.PRESERVE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_type; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Oid_index_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_oid_index_clause; + } + + OIDINDEX() { + return this.getToken(OracleSqlParser.OIDINDEX, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + index_name() { + return this.getTypedRuleContext(Index_nameContext,0); + }; + + physical_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Physical_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Physical_attributes_clauseContext,i); + } + }; + + TABLESPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLESPACE); + } else { + return this.getToken(OracleSqlParser.TABLESPACE, i); + } + }; + + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOid_index_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Oid_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_oid_clause; + } + + OBJECT() { + return this.getToken(OracleSqlParser.OBJECT, 0); + }; + + IDENTIFIER() { + return this.getToken(OracleSqlParser.IDENTIFIER, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + SYSTEM() { + return this.getToken(OracleSqlParser.SYSTEM, 0); + }; + + GENERATED() { + return this.getToken(OracleSqlParser.GENERATED, 0); + }; + + PRIMARY() { + return this.getToken(OracleSqlParser.PRIMARY, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOid_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_propertiesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_properties; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + attribute_name() { + return this.getTypedRuleContext(Attribute_nameContext,0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + inline_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inline_constraintContext); + } else { + return this.getTypedRuleContext(Inline_constraintContext,i); + } + }; + + inline_ref_constraint() { + return this.getTypedRuleContext(Inline_ref_constraintContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + out_of_line_constraint() { + return this.getTypedRuleContext(Out_of_line_constraintContext,0); + }; + + out_of_line_ref_constraint() { + return this.getTypedRuleContext(Out_of_line_ref_constraintContext,0); + }; + + supplemental_logging_props() { + return this.getTypedRuleContext(Supplemental_logging_propsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_properties(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_table_substitutionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_table_substitution; + } + + SUBSTITUTABLE() { + return this.getToken(OracleSqlParser.SUBSTITUTABLE, 0); + }; + + AT() { + return this.getToken(OracleSqlParser.AT, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + LEVELS() { + return this.getToken(OracleSqlParser.LEVELS, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_table_substitution(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Relational_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_relational_table; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + relational_property = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Relational_propertyContext); + } else { + return this.getTypedRuleContext(Relational_propertyContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + relational_table_properties() { + return this.getTypedRuleContext(Relational_table_propertiesContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRelational_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Relational_table_propertiesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_relational_table_properties; + } + + relational_table_property = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Relational_table_propertyContext); + } else { + return this.getTypedRuleContext(Relational_table_propertyContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRelational_table_properties(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Relational_table_propertyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_relational_table_property; + } + + immutable_table_clauses() { + return this.getTypedRuleContext(Immutable_table_clausesContext,0); + }; + + blockchain_table_clauses() { + return this.getTypedRuleContext(Blockchain_table_clausesContext,0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + COLLATION() { + return this.getToken(OracleSqlParser.COLLATION, 0); + }; + + collation_name() { + return this.getTypedRuleContext(Collation_nameContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + COMMIT() { + return this.getToken(OracleSqlParser.COMMIT, 0); + }; + + DEFINITION() { + return this.getToken(OracleSqlParser.DEFINITION, 0); + }; + + ROWS() { + return this.getToken(OracleSqlParser.ROWS, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + PRESERVE() { + return this.getToken(OracleSqlParser.PRESERVE, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + physical_properties() { + return this.getTypedRuleContext(Physical_propertiesContext,0); + }; + + table_properties() { + return this.getTypedRuleContext(Table_propertiesContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRelational_table_property(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Immutable_table_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_immutable_table_clauses; + } + + immutable_table_no_drop_clause() { + return this.getTypedRuleContext(Immutable_table_no_drop_clauseContext,0); + }; + + immutable_table_no_delete_clause() { + return this.getTypedRuleContext(Immutable_table_no_delete_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitImmutable_table_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Immutable_table_no_drop_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_immutable_table_no_drop_clause; + } + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + UNTIL() { + return this.getToken(OracleSqlParser.UNTIL, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + DAYS() { + return this.getToken(OracleSqlParser.DAYS, 0); + }; + + IDLE() { + return this.getToken(OracleSqlParser.IDLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitImmutable_table_no_drop_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Immutable_table_no_delete_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_immutable_table_no_delete_clause; + } + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + UNTIL() { + return this.getToken(OracleSqlParser.UNTIL, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + DAYS() { + return this.getToken(OracleSqlParser.DAYS, 0); + }; + + AFTER() { + return this.getToken(OracleSqlParser.AFTER, 0); + }; + + INSERT() { + return this.getToken(OracleSqlParser.INSERT, 0); + }; + + LOCKED() { + return this.getToken(OracleSqlParser.LOCKED, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitImmutable_table_no_delete_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Blockchain_table_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_blockchain_table_clauses; + } + + blockchain_drop_table_clause() { + return this.getTypedRuleContext(Blockchain_drop_table_clauseContext,0); + }; + + blockchain_row_retention_clause() { + return this.getTypedRuleContext(Blockchain_row_retention_clauseContext,0); + }; + + blockchain_hash_and_data_format_clause() { + return this.getTypedRuleContext(Blockchain_hash_and_data_format_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBlockchain_table_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Blockchain_drop_table_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_blockchain_drop_table_clause; + } + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + UNTIL() { + return this.getToken(OracleSqlParser.UNTIL, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + DAYS() { + return this.getToken(OracleSqlParser.DAYS, 0); + }; + + IDLE() { + return this.getToken(OracleSqlParser.IDLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBlockchain_drop_table_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Blockchain_row_retention_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_blockchain_row_retention_clause; + } + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + UNTIL() { + return this.getToken(OracleSqlParser.UNTIL, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + DAYS() { + return this.getToken(OracleSqlParser.DAYS, 0); + }; + + AFTER() { + return this.getToken(OracleSqlParser.AFTER, 0); + }; + + INSERT() { + return this.getToken(OracleSqlParser.INSERT, 0); + }; + + LOCKED() { + return this.getToken(OracleSqlParser.LOCKED, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBlockchain_row_retention_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Blockchain_hash_and_data_format_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_blockchain_hash_and_data_format_clause; + } + + HASHING() { + return this.getToken(OracleSqlParser.HASHING, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + SHA2_512_Q() { + return this.getToken(OracleSqlParser.SHA2_512_Q, 0); + }; + + VERSION() { + return this.getToken(OracleSqlParser.VERSION, 0); + }; + + V1_Q() { + return this.getToken(OracleSqlParser.V1_Q, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBlockchain_hash_and_data_format_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Collation_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_collation_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCollation_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_propertiesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_properties; + } + + column_properties() { + return this.getTypedRuleContext(Column_propertiesContext,0); + }; + + read_only_clause() { + return this.getTypedRuleContext(Read_only_clauseContext,0); + }; + + indexing_clause() { + return this.getTypedRuleContext(Indexing_clauseContext,0); + }; + + table_partitioning_clauses() { + return this.getTypedRuleContext(Table_partitioning_clausesContext,0); + }; + + attribute_clustering_clause() { + return this.getTypedRuleContext(Attribute_clustering_clauseContext,0); + }; + + CACHE() { + return this.getToken(OracleSqlParser.CACHE, 0); + }; + + NOCACHE() { + return this.getToken(OracleSqlParser.NOCACHE, 0); + }; + + result_cache_clause() { + return this.getTypedRuleContext(Result_cache_clauseContext,0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + monitoring_nomonitoring() { + return this.getTypedRuleContext(Monitoring_nomonitoringContext,0); + }; + + ROWDEPENDENCIES() { + return this.getToken(OracleSqlParser.ROWDEPENDENCIES, 0); + }; + + NOROWDEPENDENCIES() { + return this.getToken(OracleSqlParser.NOROWDEPENDENCIES, 0); + }; + + enable_disable_clause() { + return this.getTypedRuleContext(Enable_disable_clauseContext,0); + }; + + row_movement_clause() { + return this.getTypedRuleContext(Row_movement_clauseContext,0); + }; + + logical_replication_clause() { + return this.getTypedRuleContext(Logical_replication_clauseContext,0); + }; + + flashback_archive_clause() { + return this.getTypedRuleContext(Flashback_archive_clauseContext,0); + }; + + physical_properties() { + return this.getTypedRuleContext(Physical_propertiesContext,0); + }; + + ROW() { + return this.getToken(OracleSqlParser.ROW, 0); + }; + + ARCHIVAL() { + return this.getToken(OracleSqlParser.ARCHIVAL, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + select_only_statement() { + return this.getTypedRuleContext(Select_only_statementContext,0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + EXCHANGE() { + return this.getToken(OracleSqlParser.EXCHANGE, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + table_name() { + return this.getTypedRuleContext(Table_nameContext,0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + annotations_clause() { + return this.getTypedRuleContext(Annotations_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_properties(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Read_only_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_read_only_clause; + } + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + WRITE() { + return this.getToken(OracleSqlParser.WRITE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRead_only_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Indexing_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_indexing_clause; + } + + INDEXING() { + return this.getToken(OracleSqlParser.INDEXING, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + OFF() { + return this.getToken(OracleSqlParser.OFF, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndexing_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Attribute_clustering_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_attribute_clustering_clause; + } + + CLUSTERING() { + return this.getToken(OracleSqlParser.CLUSTERING, 0); + }; + + cluster_clause() { + return this.getTypedRuleContext(Cluster_clauseContext,0); + }; + + clustering_join() { + return this.getTypedRuleContext(Clustering_joinContext,0); + }; + + ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ON); + } else { + return this.getToken(OracleSqlParser.ON, i); + } + }; + + + LOAD() { + return this.getToken(OracleSqlParser.LOAD, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + MOVEMENT() { + return this.getToken(OracleSqlParser.MOVEMENT, 0); + }; + + zonemap_clause() { + return this.getTypedRuleContext(Zonemap_clauseContext,0); + }; + + yes_no = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Yes_noContext); + } else { + return this.getTypedRuleContext(Yes_noContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAttribute_clustering_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Clustering_joinContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_clustering_join; + } + + table_name() { + return this.getTypedRuleContext(Table_nameContext,0); + }; + + clustering_join_item = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Clustering_join_itemContext); + } else { + return this.getTypedRuleContext(Clustering_join_itemContext,i); + } + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitClustering_join(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Clustering_join_itemContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_clustering_join_item; + } + + JOIN() { + return this.getToken(OracleSqlParser.JOIN, 0); + }; + + table_name() { + return this.getTypedRuleContext(Table_nameContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + equijoin_condition() { + return this.getTypedRuleContext(Equijoin_conditionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitClustering_join_item(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Equijoin_conditionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_equijoin_condition; + } + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitEquijoin_condition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cluster_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cluster_clause; + } + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + ORDER() { + return this.getToken(OracleSqlParser.ORDER, 0); + }; + + clustering_columns() { + return this.getTypedRuleContext(Clustering_columnsContext,0); + }; + + LINEAR() { + return this.getToken(OracleSqlParser.LINEAR, 0); + }; + + INTERLEAVED() { + return this.getToken(OracleSqlParser.INTERLEAVED, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCluster_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Clustering_columnsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_clustering_columns; + } + + clustering_column_group = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Clustering_column_groupContext); + } else { + return this.getTypedRuleContext(Clustering_column_groupContext,i); + } + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitClustering_columns(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Clustering_column_groupContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_clustering_column_group; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitClustering_column_group(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Yes_noContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_yes_no; + } + + YES() { + return this.getToken(OracleSqlParser.YES, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitYes_no(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Zonemap_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_zonemap_clause; + } + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + ZONEMAP() { + return this.getToken(OracleSqlParser.ZONEMAP, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + zonemap_name() { + return this.getTypedRuleContext(Zonemap_nameContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + WITHOUT() { + return this.getToken(OracleSqlParser.WITHOUT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitZonemap_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Logical_replication_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_logical_replication_clause; + } + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + LOGICAL() { + return this.getToken(OracleSqlParser.LOGICAL, 0); + }; + + REPLICATION() { + return this.getToken(OracleSqlParser.REPLICATION, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + KEYS() { + return this.getToken(OracleSqlParser.KEYS, 0); + }; + + PARTIAL() { + return this.getToken(OracleSqlParser.PARTIAL, 0); + }; + + JSON() { + return this.getToken(OracleSqlParser.JSON, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + ALLOW() { + return this.getToken(OracleSqlParser.ALLOW, 0); + }; + + NOVALIDATE() { + return this.getToken(OracleSqlParser.NOVALIDATE, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLogical_replication_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Relational_propertyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_relational_property; + } + + out_of_line_constraint() { + return this.getTypedRuleContext(Out_of_line_constraintContext,0); + }; + + out_of_line_ref_constraint() { + return this.getTypedRuleContext(Out_of_line_ref_constraintContext,0); + }; + + column_definition() { + return this.getTypedRuleContext(Column_definitionContext,0); + }; + + virtual_column_definition() { + return this.getTypedRuleContext(Virtual_column_definitionContext,0); + }; + + period_definition() { + return this.getTypedRuleContext(Period_definitionContext,0); + }; + + supplemental_logging_props() { + return this.getTypedRuleContext(Supplemental_logging_propsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRelational_property(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_partitioning_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_partitioning_clauses; + } + + range_partitions() { + return this.getTypedRuleContext(Range_partitionsContext,0); + }; + + list_partitions() { + return this.getTypedRuleContext(List_partitionsContext,0); + }; + + hash_partitions() { + return this.getTypedRuleContext(Hash_partitionsContext,0); + }; + + composite_range_partitions() { + return this.getTypedRuleContext(Composite_range_partitionsContext,0); + }; + + composite_list_partitions() { + return this.getTypedRuleContext(Composite_list_partitionsContext,0); + }; + + composite_hash_partitions() { + return this.getTypedRuleContext(Composite_hash_partitionsContext,0); + }; + + reference_partitioning() { + return this.getTypedRuleContext(Reference_partitioningContext,0); + }; + + system_partitioning() { + return this.getTypedRuleContext(System_partitioningContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_partitioning_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Range_partitionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_range_partitions; + } + + PARTITION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PARTITION); + } else { + return this.getToken(OracleSqlParser.PARTITION, i); + } + }; + + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + RANGE() { + return this.getToken(OracleSqlParser.RANGE, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + range_values_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Range_values_clauseContext); + } else { + return this.getTypedRuleContext(Range_values_clauseContext,i); + } + }; + + table_partition_description = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_partition_descriptionContext); + } else { + return this.getTypedRuleContext(Table_partition_descriptionContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + INTERVAL() { + return this.getToken(OracleSqlParser.INTERVAL, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + partition_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partition_nameContext); + } else { + return this.getTypedRuleContext(Partition_nameContext,i); + } + }; + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRange_partitions(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class List_partitionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_list_partitions; + } + + PARTITION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PARTITION); + } else { + return this.getToken(OracleSqlParser.PARTITION, i); + } + }; + + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + LIST() { + return this.getToken(OracleSqlParser.LIST, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + list_values_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(List_values_clauseContext); + } else { + return this.getTypedRuleContext(List_values_clauseContext,i); + } + }; + + table_partition_description = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_partition_descriptionContext); + } else { + return this.getTypedRuleContext(Table_partition_descriptionContext,i); + } + }; + + partition_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partition_nameContext); + } else { + return this.getTypedRuleContext(Partition_nameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitList_partitions(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hash_partitionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hash_partitions; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + HASH() { + return this.getToken(OracleSqlParser.HASH, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + individual_hash_partitions() { + return this.getTypedRuleContext(Individual_hash_partitionsContext,0); + }; + + hash_partitions_by_quantity() { + return this.getTypedRuleContext(Hash_partitions_by_quantityContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHash_partitions(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Individual_hash_partitionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_individual_hash_partitions; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + PARTITION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PARTITION); + } else { + return this.getToken(OracleSqlParser.PARTITION, i); + } + }; + + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + partition_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partition_nameContext); + } else { + return this.getTypedRuleContext(Partition_nameContext,i); + } + }; + + partitioning_storage_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partitioning_storage_clauseContext); + } else { + return this.getTypedRuleContext(Partitioning_storage_clauseContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndividual_hash_partitions(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hash_partitions_by_quantityContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hash_partitions_by_quantity; + } + + PARTITIONS() { + return this.getToken(OracleSqlParser.PARTITIONS, 0); + }; + + hash_partition_quantity() { + return this.getTypedRuleContext(Hash_partition_quantityContext,0); + }; + + STORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.STORE); + } else { + return this.getToken(OracleSqlParser.STORE, i); + } + }; + + + IN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.IN); + } else { + return this.getToken(OracleSqlParser.IN, i); + } + }; + + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + table_compression() { + return this.getTypedRuleContext(Table_compressionContext,0); + }; + + key_compression() { + return this.getTypedRuleContext(Key_compressionContext,0); + }; + + OVERFLOW_() { + return this.getToken(OracleSqlParser.OVERFLOW_, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHash_partitions_by_quantity(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hash_partition_quantityContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hash_partition_quantity; + } + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHash_partition_quantity(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Composite_range_partitionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_composite_range_partitions; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + RANGE() { + return this.getToken(OracleSqlParser.RANGE, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + range_partition_desc = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Range_partition_descContext); + } else { + return this.getTypedRuleContext(Range_partition_descContext,i); + } + }; + + subpartition_by_range() { + return this.getTypedRuleContext(Subpartition_by_rangeContext,0); + }; + + subpartition_by_list() { + return this.getTypedRuleContext(Subpartition_by_listContext,0); + }; + + subpartition_by_hash() { + return this.getTypedRuleContext(Subpartition_by_hashContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + INTERVAL() { + return this.getToken(OracleSqlParser.INTERVAL, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitComposite_range_partitions(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Composite_list_partitionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_composite_list_partitions; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + LIST() { + return this.getToken(OracleSqlParser.LIST, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + list_partition_desc = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(List_partition_descContext); + } else { + return this.getTypedRuleContext(List_partition_descContext,i); + } + }; + + subpartition_by_range() { + return this.getTypedRuleContext(Subpartition_by_rangeContext,0); + }; + + subpartition_by_list() { + return this.getTypedRuleContext(Subpartition_by_listContext,0); + }; + + subpartition_by_hash() { + return this.getTypedRuleContext(Subpartition_by_hashContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitComposite_list_partitions(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Composite_hash_partitionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_composite_hash_partitions; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + HASH() { + return this.getToken(OracleSqlParser.HASH, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + subpartition_by_range() { + return this.getTypedRuleContext(Subpartition_by_rangeContext,0); + }; + + subpartition_by_list() { + return this.getTypedRuleContext(Subpartition_by_listContext,0); + }; + + subpartition_by_hash() { + return this.getTypedRuleContext(Subpartition_by_hashContext,0); + }; + + individual_hash_partitions() { + return this.getTypedRuleContext(Individual_hash_partitionsContext,0); + }; + + hash_partitions_by_quantity() { + return this.getTypedRuleContext(Hash_partitions_by_quantityContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitComposite_hash_partitions(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Reference_partitioningContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_reference_partitioning; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + REFERENCE() { + return this.getToken(OracleSqlParser.REFERENCE, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + constraint_name() { + return this.getTypedRuleContext(Constraint_nameContext,0); + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + reference_partition_desc = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Reference_partition_descContext); + } else { + return this.getTypedRuleContext(Reference_partition_descContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReference_partitioning(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Reference_partition_descContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_reference_partition_desc; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + table_partition_description() { + return this.getTypedRuleContext(Table_partition_descriptionContext,0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReference_partition_desc(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class System_partitioningContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_system_partitioning; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + SYSTEM() { + return this.getToken(OracleSqlParser.SYSTEM, 0); + }; + + PARTITIONS() { + return this.getToken(OracleSqlParser.PARTITIONS, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + reference_partition_desc = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Reference_partition_descContext); + } else { + return this.getTypedRuleContext(Reference_partition_descContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSystem_partitioning(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Range_partition_descContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_range_partition_desc; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + table_partition_description() { + return this.getTypedRuleContext(Table_partition_descriptionContext,0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + range_values_clause() { + return this.getTypedRuleContext(Range_values_clauseContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + hash_subparts_by_quantity() { + return this.getTypedRuleContext(Hash_subparts_by_quantityContext,0); + }; + + range_subpartition_desc = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Range_subpartition_descContext); + } else { + return this.getTypedRuleContext(Range_subpartition_descContext,i); + } + }; + + list_subpartition_desc = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(List_subpartition_descContext); + } else { + return this.getTypedRuleContext(List_subpartition_descContext,i); + } + }; + + individual_hash_subparts = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Individual_hash_subpartsContext); + } else { + return this.getTypedRuleContext(Individual_hash_subpartsContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRange_partition_desc(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class List_partition_descContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_list_partition_desc; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + table_partition_description() { + return this.getTypedRuleContext(Table_partition_descriptionContext,0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + list_values_clause() { + return this.getTypedRuleContext(List_values_clauseContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + hash_subparts_by_quantity() { + return this.getTypedRuleContext(Hash_subparts_by_quantityContext,0); + }; + + range_subpartition_desc = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Range_subpartition_descContext); + } else { + return this.getTypedRuleContext(Range_subpartition_descContext,i); + } + }; + + list_subpartition_desc = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(List_subpartition_descContext); + } else { + return this.getTypedRuleContext(List_subpartition_descContext,i); + } + }; + + individual_hash_subparts = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Individual_hash_subpartsContext); + } else { + return this.getTypedRuleContext(Individual_hash_subpartsContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitList_partition_desc(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subpartition_templateContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subpartition_template; + } + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + TEMPLATE() { + return this.getToken(OracleSqlParser.TEMPLATE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + hash_subpartition_quantity() { + return this.getTypedRuleContext(Hash_subpartition_quantityContext,0); + }; + + range_subpartition_desc = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Range_subpartition_descContext); + } else { + return this.getTypedRuleContext(Range_subpartition_descContext,i); + } + }; + + list_subpartition_desc = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(List_subpartition_descContext); + } else { + return this.getTypedRuleContext(List_subpartition_descContext,i); + } + }; + + individual_hash_subparts = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Individual_hash_subpartsContext); + } else { + return this.getTypedRuleContext(Individual_hash_subpartsContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubpartition_template(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hash_subpartition_quantityContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hash_subpartition_quantity; + } + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHash_subpartition_quantity(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subpartition_by_rangeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subpartition_by_range; + } + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + RANGE() { + return this.getToken(OracleSqlParser.RANGE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + subpartition_template() { + return this.getTypedRuleContext(Subpartition_templateContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubpartition_by_range(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subpartition_by_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subpartition_by_list; + } + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + LIST() { + return this.getToken(OracleSqlParser.LIST, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + subpartition_template() { + return this.getTypedRuleContext(Subpartition_templateContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubpartition_by_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subpartition_by_hashContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subpartition_by_hash; + } + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + HASH() { + return this.getToken(OracleSqlParser.HASH, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + SUBPARTITIONS() { + return this.getToken(OracleSqlParser.SUBPARTITIONS, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + subpartition_template() { + return this.getTypedRuleContext(Subpartition_templateContext,0); + }; + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubpartition_by_hash(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subpartition_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subpartition_name; + } + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubpartition_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Range_subpartition_descContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_range_subpartition_desc; + } + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + range_values_clause() { + return this.getTypedRuleContext(Range_values_clauseContext,0); + }; + + subpartition_name() { + return this.getTypedRuleContext(Subpartition_nameContext,0); + }; + + partitioning_storage_clause() { + return this.getTypedRuleContext(Partitioning_storage_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRange_subpartition_desc(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class List_subpartition_descContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_list_subpartition_desc; + } + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + list_values_clause() { + return this.getTypedRuleContext(List_values_clauseContext,0); + }; + + subpartition_name() { + return this.getTypedRuleContext(Subpartition_nameContext,0); + }; + + partitioning_storage_clause() { + return this.getTypedRuleContext(Partitioning_storage_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitList_subpartition_desc(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Individual_hash_subpartsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_individual_hash_subparts; + } + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + subpartition_name() { + return this.getTypedRuleContext(Subpartition_nameContext,0); + }; + + partitioning_storage_clause() { + return this.getTypedRuleContext(Partitioning_storage_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndividual_hash_subparts(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hash_subparts_by_quantityContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hash_subparts_by_quantity; + } + + SUBPARTITIONS() { + return this.getToken(OracleSqlParser.SUBPARTITIONS, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHash_subparts_by_quantity(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Range_values_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_range_values_clause; + } + + VALUES() { + return this.getToken(OracleSqlParser.VALUES, 0); + }; + + LESS() { + return this.getToken(OracleSqlParser.LESS, 0); + }; + + THAN() { + return this.getToken(OracleSqlParser.THAN, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + range_values_list() { + return this.getTypedRuleContext(Range_values_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRange_values_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Range_values_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_range_values_list; + } + + literal = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(LiteralContext); + } else { + return this.getTypedRuleContext(LiteralContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + TIMESTAMP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TIMESTAMP); + } else { + return this.getToken(OracleSqlParser.TIMESTAMP, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRange_values_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class List_values_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_list_values_clause; + } + + VALUES() { + return this.getToken(OracleSqlParser.VALUES, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + literal = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(LiteralContext); + } else { + return this.getTypedRuleContext(LiteralContext,i); + } + }; + + TIMESTAMP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TIMESTAMP); + } else { + return this.getToken(OracleSqlParser.TIMESTAMP, i); + } + }; + + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitList_values_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_partition_descriptionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_partition_description; + } + + deferred_segment_creation() { + return this.getTypedRuleContext(Deferred_segment_creationContext,0); + }; + + read_only_clause() { + return this.getTypedRuleContext(Read_only_clauseContext,0); + }; + + indexing_clause() { + return this.getTypedRuleContext(Indexing_clauseContext,0); + }; + + segment_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Segment_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Segment_attributes_clauseContext,i); + } + }; + + table_compression() { + return this.getTypedRuleContext(Table_compressionContext,0); + }; + + key_compression() { + return this.getTypedRuleContext(Key_compressionContext,0); + }; + + inmemory_table_clause() { + return this.getTypedRuleContext(Inmemory_table_clauseContext,0); + }; + + ilm_clause() { + return this.getTypedRuleContext(Ilm_clauseContext,0); + }; + + OVERFLOW_() { + return this.getToken(OracleSqlParser.OVERFLOW_, 0); + }; + + lob_storage_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_storage_clauseContext); + } else { + return this.getTypedRuleContext(Lob_storage_clauseContext,i); + } + }; + + varray_col_properties = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Varray_col_propertiesContext); + } else { + return this.getTypedRuleContext(Varray_col_propertiesContext,i); + } + }; + + nested_table_col_properties = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Nested_table_col_propertiesContext); + } else { + return this.getTypedRuleContext(Nested_table_col_propertiesContext,i); + } + }; + + INTERNAL() { + return this.getToken(OracleSqlParser.INTERNAL, 0); + }; + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_partition_description(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Partitioning_storage_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_partitioning_storage_clause; + } + + TABLESPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLESPACE); + } else { + return this.getToken(OracleSqlParser.TABLESPACE, i); + } + }; + + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + OVERFLOW_ = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OVERFLOW_); + } else { + return this.getToken(OracleSqlParser.OVERFLOW_, i); + } + }; + + + table_compression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_compressionContext); + } else { + return this.getTypedRuleContext(Table_compressionContext,i); + } + }; + + key_compression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Key_compressionContext); + } else { + return this.getTypedRuleContext(Key_compressionContext,i); + } + }; + + inmemory_table_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inmemory_table_clauseContext); + } else { + return this.getTypedRuleContext(Inmemory_table_clauseContext,i); + } + }; + + lob_partitioning_storage = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_partitioning_storageContext); + } else { + return this.getTypedRuleContext(Lob_partitioning_storageContext,i); + } + }; + + VARRAY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.VARRAY); + } else { + return this.getToken(OracleSqlParser.VARRAY, i); + } + }; + + + varray_item = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Varray_itemContext); + } else { + return this.getTypedRuleContext(Varray_itemContext,i); + } + }; + + STORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.STORE); + } else { + return this.getToken(OracleSqlParser.STORE, i); + } + }; + + + AS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.AS); + } else { + return this.getToken(OracleSqlParser.AS, i); + } + }; + + + LOB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LOB); + } else { + return this.getToken(OracleSqlParser.LOB, i); + } + }; + + + lob_segname = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_segnameContext); + } else { + return this.getTypedRuleContext(Lob_segnameContext,i); + } + }; + + BASICFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BASICFILE); + } else { + return this.getToken(OracleSqlParser.BASICFILE, i); + } + }; + + + SECUREFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SECUREFILE); + } else { + return this.getToken(OracleSqlParser.SECUREFILE, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPartitioning_storage_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lob_partitioning_storageContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lob_partitioning_storage; + } + + LOB() { + return this.getToken(OracleSqlParser.LOB, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + lob_item() { + return this.getTypedRuleContext(Lob_itemContext,0); + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + lob_segname() { + return this.getTypedRuleContext(Lob_segnameContext,0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + BASICFILE() { + return this.getToken(OracleSqlParser.BASICFILE, 0); + }; + + SECUREFILE() { + return this.getToken(OracleSqlParser.SECUREFILE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLob_partitioning_storage(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Size_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_size_clause; + } + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + K_LETTER() { + return this.getToken(OracleSqlParser.K_LETTER, 0); + }; + + M_LETTER() { + return this.getToken(OracleSqlParser.M_LETTER, 0); + }; + + G_LETTER() { + return this.getToken(OracleSqlParser.G_LETTER, 0); + }; + + T_LETTER() { + return this.getToken(OracleSqlParser.T_LETTER, 0); + }; + + P_LETTER() { + return this.getToken(OracleSqlParser.P_LETTER, 0); + }; + + E_LETTER() { + return this.getToken(OracleSqlParser.E_LETTER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSize_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_compressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_compression; + } + + COMPRESS() { + return this.getToken(OracleSqlParser.COMPRESS, 0); + }; + + BASIC() { + return this.getToken(OracleSqlParser.BASIC, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + OLTP() { + return this.getToken(OracleSqlParser.OLTP, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + OPERATIONS() { + return this.getToken(OracleSqlParser.OPERATIONS, 0); + }; + + DIRECT_LOAD() { + return this.getToken(OracleSqlParser.DIRECT_LOAD, 0); + }; + + QUERY() { + return this.getToken(OracleSqlParser.QUERY, 0); + }; + + ARCHIVE() { + return this.getToken(OracleSqlParser.ARCHIVE, 0); + }; + + LOW() { + return this.getToken(OracleSqlParser.LOW, 0); + }; + + HIGH() { + return this.getToken(OracleSqlParser.HIGH, 0); + }; + + ROW() { + return this.getToken(OracleSqlParser.ROW, 0); + }; + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + ADVANCED() { + return this.getToken(OracleSqlParser.ADVANCED, 0); + }; + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + LEVEL() { + return this.getToken(OracleSqlParser.LEVEL, 0); + }; + + LOCKING() { + return this.getToken(OracleSqlParser.LOCKING, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + NOCOMPRESS() { + return this.getToken(OracleSqlParser.NOCOMPRESS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_compression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Inmemory_table_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_inmemory_table_clause; + } + + inmemory_column_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inmemory_column_clauseContext); + } else { + return this.getTypedRuleContext(Inmemory_column_clauseContext,i); + } + }; + + INMEMORY() { + return this.getToken(OracleSqlParser.INMEMORY, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + inmemory_attributes() { + return this.getTypedRuleContext(Inmemory_attributesContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInmemory_table_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Inmemory_attributesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_inmemory_attributes; + } + + inmemory_memcompress = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inmemory_memcompressContext); + } else { + return this.getTypedRuleContext(Inmemory_memcompressContext,i); + } + }; + + inmemory_priority = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inmemory_priorityContext); + } else { + return this.getTypedRuleContext(Inmemory_priorityContext,i); + } + }; + + inmemory_distribute = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inmemory_distributeContext); + } else { + return this.getTypedRuleContext(Inmemory_distributeContext,i); + } + }; + + inmemory_duplicate = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inmemory_duplicateContext); + } else { + return this.getTypedRuleContext(Inmemory_duplicateContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInmemory_attributes(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Inmemory_memcompressContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_inmemory_memcompress; + } + + MEMCOMPRESS() { + return this.getToken(OracleSqlParser.MEMCOMPRESS, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + DML() { + return this.getToken(OracleSqlParser.DML, 0); + }; + + QUERY() { + return this.getToken(OracleSqlParser.QUERY, 0); + }; + + CAPACITY() { + return this.getToken(OracleSqlParser.CAPACITY, 0); + }; + + LOW() { + return this.getToken(OracleSqlParser.LOW, 0); + }; + + HIGH() { + return this.getToken(OracleSqlParser.HIGH, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInmemory_memcompress(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Inmemory_priorityContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_inmemory_priority; + } + + PRIORITY() { + return this.getToken(OracleSqlParser.PRIORITY, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + LOW() { + return this.getToken(OracleSqlParser.LOW, 0); + }; + + MEDIUM() { + return this.getToken(OracleSqlParser.MEDIUM, 0); + }; + + HIGH() { + return this.getToken(OracleSqlParser.HIGH, 0); + }; + + CRITICAL() { + return this.getToken(OracleSqlParser.CRITICAL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInmemory_priority(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Inmemory_distributeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_inmemory_distribute; + } + + DISTRIBUTE() { + return this.getToken(OracleSqlParser.DISTRIBUTE, 0); + }; + + AUTO() { + return this.getToken(OracleSqlParser.AUTO, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + SERVICE() { + return this.getToken(OracleSqlParser.SERVICE, 0); + }; + + ROWID() { + return this.getToken(OracleSqlParser.ROWID, 0); + }; + + RANGE() { + return this.getToken(OracleSqlParser.RANGE, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInmemory_distribute(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Inmemory_duplicateContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_inmemory_duplicate; + } + + DUPLICATE() { + return this.getToken(OracleSqlParser.DUPLICATE, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInmemory_duplicate(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Inmemory_column_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_inmemory_column_clause; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_list() { + return this.getTypedRuleContext(Column_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + INMEMORY() { + return this.getToken(OracleSqlParser.INMEMORY, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + inmemory_memcompress() { + return this.getTypedRuleContext(Inmemory_memcompressContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInmemory_column_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Physical_attributes_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_physical_attributes_clause; + this.pctfree = null; + this.pctused = null; + this.inittrans = null; + this.maxtrans = null; + } + + PCTFREE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PCTFREE); + } else { + return this.getToken(OracleSqlParser.PCTFREE, i); + } + }; + + + PCTUSED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PCTUSED); + } else { + return this.getToken(OracleSqlParser.PCTUSED, i); + } + }; + + + INITRANS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.INITRANS); + } else { + return this.getToken(OracleSqlParser.INITRANS, i); + } + }; + + + MAXTRANS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MAXTRANS); + } else { + return this.getToken(OracleSqlParser.MAXTRANS, i); + } + }; + + + storage_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Storage_clauseContext); + } else { + return this.getTypedRuleContext(Storage_clauseContext,i); + } + }; + + compute_clauses = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Compute_clausesContext); + } else { + return this.getTypedRuleContext(Compute_clausesContext,i); + } + }; + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPhysical_attributes_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Storage_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_storage_clause; + this.initial_size = null; + this.next_size = null; + this.minextents = null; + this.pctincrease = null; + this.freelists = null; + this.freelist_groups = null; + } + + STORAGE() { + return this.getToken(OracleSqlParser.STORAGE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + INITIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.INITIAL); + } else { + return this.getToken(OracleSqlParser.INITIAL, i); + } + }; + + + NEXT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NEXT); + } else { + return this.getToken(OracleSqlParser.NEXT, i); + } + }; + + + MINEXTENTS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MINEXTENTS); + } else { + return this.getToken(OracleSqlParser.MINEXTENTS, i); + } + }; + + + MAXEXTENTS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MAXEXTENTS); + } else { + return this.getToken(OracleSqlParser.MAXEXTENTS, i); + } + }; + + + PCTINCREASE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PCTINCREASE); + } else { + return this.getToken(OracleSqlParser.PCTINCREASE, i); + } + }; + + + FREELISTS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FREELISTS); + } else { + return this.getToken(OracleSqlParser.FREELISTS, i); + } + }; + + + FREELIST = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FREELIST); + } else { + return this.getToken(OracleSqlParser.FREELIST, i); + } + }; + + + GROUPS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.GROUPS); + } else { + return this.getToken(OracleSqlParser.GROUPS, i); + } + }; + + + OPTIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OPTIMAL); + } else { + return this.getToken(OracleSqlParser.OPTIMAL, i); + } + }; + + + BUFFER_POOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BUFFER_POOL); + } else { + return this.getToken(OracleSqlParser.BUFFER_POOL, i); + } + }; + + + FLASH_CACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FLASH_CACHE); + } else { + return this.getToken(OracleSqlParser.FLASH_CACHE, i); + } + }; + + + CELL_FLASH_CACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CELL_FLASH_CACHE); + } else { + return this.getToken(OracleSqlParser.CELL_FLASH_CACHE, i); + } + }; + + + ENCRYPT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ENCRYPT); + } else { + return this.getToken(OracleSqlParser.ENCRYPT, i); + } + }; + + + size_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Size_clauseContext); + } else { + return this.getTypedRuleContext(Size_clauseContext,i); + } + }; + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + KEEP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEEP); + } else { + return this.getToken(OracleSqlParser.KEEP, i); + } + }; + + + RECYCLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RECYCLE); + } else { + return this.getToken(OracleSqlParser.RECYCLE, i); + } + }; + + + DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEFAULT); + } else { + return this.getToken(OracleSqlParser.DEFAULT, i); + } + }; + + + NONE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NONE); + } else { + return this.getToken(OracleSqlParser.NONE, i); + } + }; + + + UNLIMITED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNLIMITED); + } else { + return this.getToken(OracleSqlParser.UNLIMITED, i); + } + }; + + + NULL_ = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NULL_); + } else { + return this.getToken(OracleSqlParser.NULL_, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStorage_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Deferred_segment_creationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_deferred_segment_creation; + } + + SEGMENT() { + return this.getToken(OracleSqlParser.SEGMENT, 0); + }; + + CREATION() { + return this.getToken(OracleSqlParser.CREATION, 0); + }; + + IMMEDIATE() { + return this.getToken(OracleSqlParser.IMMEDIATE, 0); + }; + + DEFERRED() { + return this.getToken(OracleSqlParser.DEFERRED, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDeferred_segment_creation(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Segment_attributes_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_segment_attributes_clause; + this.tablespace_name = null; + } + + physical_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Physical_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Physical_attributes_clauseContext,i); + } + }; + + TABLESPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLESPACE); + } else { + return this.getToken(OracleSqlParser.TABLESPACE, i); + } + }; + + + table_compression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_compressionContext); + } else { + return this.getTypedRuleContext(Table_compressionContext,i); + } + }; + + logging_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logging_clauseContext); + } else { + return this.getTypedRuleContext(Logging_clauseContext,i); + } + }; + + identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + SET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SET); + } else { + return this.getToken(OracleSqlParser.SET, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSegment_attributes_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Physical_propertiesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_physical_properties; + } + + deferred_segment_creation() { + return this.getTypedRuleContext(Deferred_segment_creationContext,0); + }; + + segment_attributes_clause() { + return this.getTypedRuleContext(Segment_attributes_clauseContext,0); + }; + + table_compression() { + return this.getTypedRuleContext(Table_compressionContext,0); + }; + + inmemory_table_clause() { + return this.getTypedRuleContext(Inmemory_table_clauseContext,0); + }; + + ilm_clause() { + return this.getTypedRuleContext(Ilm_clauseContext,0); + }; + + ORGANIZATION() { + return this.getToken(OracleSqlParser.ORGANIZATION, 0); + }; + + HEAP() { + return this.getToken(OracleSqlParser.HEAP, 0); + }; + + heap_org_table_clause() { + return this.getTypedRuleContext(Heap_org_table_clauseContext,0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + external_table_clause() { + return this.getTypedRuleContext(External_table_clauseContext,0); + }; + + index_org_table_clause() { + return this.getTypedRuleContext(Index_org_table_clauseContext,0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + ATTRIBUTES() { + return this.getToken(OracleSqlParser.ATTRIBUTES, 0); + }; + + REJECT() { + return this.getToken(OracleSqlParser.REJECT, 0); + }; + + LIMIT() { + return this.getToken(OracleSqlParser.LIMIT, 0); + }; + + CLUSTER() { + return this.getToken(OracleSqlParser.CLUSTER, 0); + }; + + cluster_name() { + return this.getTypedRuleContext(Cluster_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPhysical_properties(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Ilm_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_ilm_clause; + } + + ILM() { + return this.getToken(OracleSqlParser.ILM, 0); + }; + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + POLICY() { + return this.getToken(OracleSqlParser.POLICY, 0); + }; + + ilm_policy_clause() { + return this.getTypedRuleContext(Ilm_policy_clauseContext,0); + }; + + DELETE_ALL() { + return this.getToken(OracleSqlParser.DELETE_ALL, 0); + }; + + ENABLE_ALL() { + return this.getToken(OracleSqlParser.ENABLE_ALL, 0); + }; + + DISABLE_ALL() { + return this.getToken(OracleSqlParser.DISABLE_ALL, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIlm_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Ilm_policy_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_ilm_policy_clause; + } + + ilm_compression_policy() { + return this.getTypedRuleContext(Ilm_compression_policyContext,0); + }; + + ilm_tiering_policy() { + return this.getTypedRuleContext(Ilm_tiering_policyContext,0); + }; + + ilm_inmemory_policy() { + return this.getTypedRuleContext(Ilm_inmemory_policyContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIlm_policy_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Ilm_compression_policyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_ilm_compression_policy; + } + + table_compression() { + return this.getTypedRuleContext(Table_compressionContext,0); + }; + + segment_group() { + return this.getTypedRuleContext(Segment_groupContext,0); + }; + + ilm_after_on() { + return this.getTypedRuleContext(Ilm_after_onContext,0); + }; + + ROW = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ROW); + } else { + return this.getToken(OracleSqlParser.ROW, i); + } + }; + + + AFTER() { + return this.getToken(OracleSqlParser.AFTER, 0); + }; + + ilm_time_period() { + return this.getTypedRuleContext(Ilm_time_periodContext,0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + MODIFICATION() { + return this.getToken(OracleSqlParser.MODIFICATION, 0); + }; + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + COMPRESS() { + return this.getToken(OracleSqlParser.COMPRESS, 0); + }; + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + ADVANCED() { + return this.getToken(OracleSqlParser.ADVANCED, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + QUERY() { + return this.getToken(OracleSqlParser.QUERY, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIlm_compression_policy(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Ilm_tiering_policyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_ilm_tiering_policy; + } + + TIER() { + return this.getToken(OracleSqlParser.TIER, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + ilm_after_on() { + return this.getTypedRuleContext(Ilm_after_onContext,0); + }; + + segment_group() { + return this.getTypedRuleContext(Segment_groupContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + function_name() { + return this.getTypedRuleContext(Function_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIlm_tiering_policy(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Ilm_after_onContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_ilm_after_on; + } + + AFTER() { + return this.getToken(OracleSqlParser.AFTER, 0); + }; + + ilm_time_period() { + return this.getTypedRuleContext(Ilm_time_periodContext,0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + CREATION() { + return this.getToken(OracleSqlParser.CREATION, 0); + }; + + ACCESS() { + return this.getToken(OracleSqlParser.ACCESS, 0); + }; + + MODIFICATION() { + return this.getToken(OracleSqlParser.MODIFICATION, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + function_name() { + return this.getTypedRuleContext(Function_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIlm_after_on(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Segment_groupContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_segment_group; + } + + SEGMENT() { + return this.getToken(OracleSqlParser.SEGMENT, 0); + }; + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSegment_group(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Ilm_inmemory_policyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_ilm_inmemory_policy; + } + + ilm_after_on() { + return this.getTypedRuleContext(Ilm_after_onContext,0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + INMEMORY() { + return this.getToken(OracleSqlParser.INMEMORY, 0); + }; + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + inmemory_memcompress() { + return this.getTypedRuleContext(Inmemory_memcompressContext,0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + SEGMENT() { + return this.getToken(OracleSqlParser.SEGMENT, 0); + }; + + inmemory_attributes() { + return this.getTypedRuleContext(Inmemory_attributesContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIlm_inmemory_policy(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Ilm_time_periodContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_ilm_time_period; + } + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + DAY() { + return this.getToken(OracleSqlParser.DAY, 0); + }; + + DAYS() { + return this.getToken(OracleSqlParser.DAYS, 0); + }; + + MONTH() { + return this.getToken(OracleSqlParser.MONTH, 0); + }; + + MONTHS() { + return this.getToken(OracleSqlParser.MONTHS, 0); + }; + + YEAR() { + return this.getToken(OracleSqlParser.YEAR, 0); + }; + + YEARS() { + return this.getToken(OracleSqlParser.YEARS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIlm_time_period(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Heap_org_table_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_heap_org_table_clause; + } + + table_compression() { + return this.getTypedRuleContext(Table_compressionContext,0); + }; + + inmemory_table_clause() { + return this.getTypedRuleContext(Inmemory_table_clauseContext,0); + }; + + ilm_clause() { + return this.getTypedRuleContext(Ilm_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHeap_org_table_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_clause; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + external_table_data_props() { + return this.getTypedRuleContext(External_table_data_propsContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + access_driver_type() { + return this.getTypedRuleContext(Access_driver_typeContext,0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + REJECT() { + return this.getToken(OracleSqlParser.REJECT, 0); + }; + + LIMIT() { + return this.getToken(OracleSqlParser.LIMIT, 0); + }; + + inmemory_table_clause() { + return this.getTypedRuleContext(Inmemory_table_clauseContext,0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + UNLIMITED() { + return this.getToken(OracleSqlParser.UNLIMITED, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Access_driver_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_access_driver_type; + } + + ORACLE_LOADER() { + return this.getToken(OracleSqlParser.ORACLE_LOADER, 0); + }; + + ORACLE_DATAPUMP() { + return this.getToken(OracleSqlParser.ORACLE_DATAPUMP, 0); + }; + + ORACLE_HDFS() { + return this.getToken(OracleSqlParser.ORACLE_HDFS, 0); + }; + + ORACLE_HIVE() { + return this.getToken(OracleSqlParser.ORACLE_HIVE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAccess_driver_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_data_propsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_data_props; + } + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + DIRECTORY() { + return this.getToken(OracleSqlParser.DIRECTORY, 0); + }; + + external_table_directory = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_directoryContext); + } else { + return this.getTypedRuleContext(External_table_directoryContext,i); + } + }; + + ACCESS() { + return this.getToken(OracleSqlParser.ACCESS, 0); + }; + + PARAMETERS() { + return this.getToken(OracleSqlParser.PARAMETERS, 0); + }; + + LOCATION() { + return this.getToken(OracleSqlParser.LOCATION, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + CLOB() { + return this.getToken(OracleSqlParser.CLOB, 0); + }; + + select_only_statement() { + return this.getTypedRuleContext(Select_only_statementContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + external_table_data_format = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_data_formatContext); + } else { + return this.getTypedRuleContext(External_table_data_formatContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_data_props(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_data_formatContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_data_format; + } + + RECORDS() { + return this.getToken(OracleSqlParser.RECORDS, 0); + }; + + DELIMITED() { + return this.getToken(OracleSqlParser.DELIMITED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + NEWLINE_() { + return this.getToken(OracleSqlParser.NEWLINE_, 0); + }; + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + TRANSFORMS() { + return this.getToken(OracleSqlParser.TRANSFORMS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + external_table_transform = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_transformContext); + } else { + return this.getTypedRuleContext(External_table_transformContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + external_table_records() { + return this.getTypedRuleContext(External_table_recordsContext,0); + }; + + external_table_fields() { + return this.getTypedRuleContext(External_table_fieldsContext,0); + }; + + external_table_datapump() { + return this.getTypedRuleContext(External_table_datapumpContext,0); + }; + + external_table_hive() { + return this.getTypedRuleContext(External_table_hiveContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_data_format(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_transformContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_transform; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + FROM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FROM); + } else { + return this.getToken(OracleSqlParser.FROM, i); + } + }; + + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + CONSTANT() { + return this.getToken(OracleSqlParser.CONSTANT, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + STARTOF() { + return this.getToken(OracleSqlParser.STARTOF, 0); + }; + + external_table_field_list() { + return this.getTypedRuleContext(External_table_field_listContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + CONCAT() { + return this.getToken(OracleSqlParser.CONCAT, 0); + }; + + LOBFILE() { + return this.getToken(OracleSqlParser.LOBFILE, 0); + }; + + external_table_field() { + return this.getTypedRuleContext(External_table_fieldContext,0); + }; + + external_table_directory = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_directoryContext); + } else { + return this.getTypedRuleContext(External_table_directoryContext,i); + } + }; + + CLOB() { + return this.getToken(OracleSqlParser.CLOB, 0); + }; + + BLOB() { + return this.getToken(OracleSqlParser.BLOB, 0); + }; + + CHARACTERSET() { + return this.getToken(OracleSqlParser.CHARACTERSET, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + char_set_name() { + return this.getTypedRuleContext(Char_set_nameContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_transform(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_fieldContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_field; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + type_name() { + return this.getTypedRuleContext(Type_nameContext,0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + default_value_part() { + return this.getTypedRuleContext(Default_value_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_field(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_field_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_field_list; + } + + external_table_fields_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_fields_clauseContext); + } else { + return this.getTypedRuleContext(External_table_fields_clauseContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_field_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_fields_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_fields_clause; + } + + external_table_field() { + return this.getTypedRuleContext(External_table_fieldContext,0); + }; + + external_table_position_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_position_clauseContext); + } else { + return this.getTypedRuleContext(External_table_position_clauseContext,i); + } + }; + + external_table_datatype_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_datatype_clauseContext); + } else { + return this.getTypedRuleContext(External_table_datatype_clauseContext,i); + } + }; + + external_table_init_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_init_clauseContext); + } else { + return this.getTypedRuleContext(External_table_init_clauseContext,i); + } + }; + + external_table_lls_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_lls_clauseContext); + } else { + return this.getTypedRuleContext(External_table_lls_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_fields_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_position_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_position_clause; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + BINDVAR() { + return this.getToken(OracleSqlParser.BINDVAR, 0); + }; + + POSITION() { + return this.getToken(OracleSqlParser.POSITION, 0); + }; + + COLON() { + return this.getToken(OracleSqlParser.COLON, 0); + }; + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + ASTERISK() { + return this.getToken(OracleSqlParser.ASTERISK, 0); + }; + + PLUS_SIGN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PLUS_SIGN); + } else { + return this.getToken(OracleSqlParser.PLUS_SIGN, i); + } + }; + + + MINUS_SIGN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MINUS_SIGN); + } else { + return this.getToken(OracleSqlParser.MINUS_SIGN, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_position_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_datatype_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_datatype_clause; + } + + INTEGER() { + return this.getToken(OracleSqlParser.INTEGER, 0); + }; + + UNSIGNED() { + return this.getToken(OracleSqlParser.UNSIGNED, 0); + }; + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + external_table_delimit_clause() { + return this.getTypedRuleContext(External_table_delimit_clauseContext,0); + }; + + DECIMAL() { + return this.getToken(OracleSqlParser.DECIMAL, 0); + }; + + ZONED() { + return this.getToken(OracleSqlParser.ZONED, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + ORACLE_DATE() { + return this.getToken(OracleSqlParser.ORACLE_DATE, 0); + }; + + ORACLE_NUMBER() { + return this.getToken(OracleSqlParser.ORACLE_NUMBER, 0); + }; + + COUNTED() { + return this.getToken(OracleSqlParser.COUNTED, 0); + }; + + FLOAT() { + return this.getToken(OracleSqlParser.FLOAT, 0); + }; + + DOUBLE() { + return this.getToken(OracleSqlParser.DOUBLE, 0); + }; + + BINARY_FLOAT() { + return this.getToken(OracleSqlParser.BINARY_FLOAT, 0); + }; + + BINARY_DOUBLE() { + return this.getToken(OracleSqlParser.BINARY_DOUBLE, 0); + }; + + RAW() { + return this.getToken(OracleSqlParser.RAW, 0); + }; + + CHAR() { + return this.getToken(OracleSqlParser.CHAR, 0); + }; + + external_table_trim_clause() { + return this.getTypedRuleContext(External_table_trim_clauseContext,0); + }; + + external_table_date_format_clause() { + return this.getTypedRuleContext(External_table_date_format_clauseContext,0); + }; + + VARCHAR() { + return this.getToken(OracleSqlParser.VARCHAR, 0); + }; + + VARRAW() { + return this.getToken(OracleSqlParser.VARRAW, 0); + }; + + VARCHARC() { + return this.getToken(OracleSqlParser.VARCHARC, 0); + }; + + VARRAWC() { + return this.getToken(OracleSqlParser.VARRAWC, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_datatype_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_delimit_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_delimit_clause; + } + + ENCLOSED() { + return this.getToken(OracleSqlParser.ENCLOSED, 0); + }; + + BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BY); + } else { + return this.getToken(OracleSqlParser.BY, i); + } + }; + + + quoted_string = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Quoted_stringContext); + } else { + return this.getTypedRuleContext(Quoted_stringContext,i); + } + }; + + AND() { + return this.getToken(OracleSqlParser.AND, 0); + }; + + TERMINATED() { + return this.getToken(OracleSqlParser.TERMINATED, 0); + }; + + WHITESPACE() { + return this.getToken(OracleSqlParser.WHITESPACE, 0); + }; + + OPTIONALLY() { + return this.getToken(OracleSqlParser.OPTIONALLY, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_delimit_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_trim_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_trim_clause; + } + + LRTRIM() { + return this.getToken(OracleSqlParser.LRTRIM, 0); + }; + + NOTRIM() { + return this.getToken(OracleSqlParser.NOTRIM, 0); + }; + + LTRIM() { + return this.getToken(OracleSqlParser.LTRIM, 0); + }; + + RTRIM() { + return this.getToken(OracleSqlParser.RTRIM, 0); + }; + + LDRTRIM() { + return this.getToken(OracleSqlParser.LDRTRIM, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_trim_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_date_format_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_date_format_clause; + } + + DATE() { + return this.getToken(OracleSqlParser.DATE, 0); + }; + + TIMESTAMP() { + return this.getToken(OracleSqlParser.TIMESTAMP, 0); + }; + + MASK() { + return this.getToken(OracleSqlParser.MASK, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + INTERVAL() { + return this.getToken(OracleSqlParser.INTERVAL, 0); + }; + + DATE_FORMAT() { + return this.getToken(OracleSqlParser.DATE_FORMAT, 0); + }; + + YEAR_TO_MONTH() { + return this.getToken(OracleSqlParser.YEAR_TO_MONTH, 0); + }; + + DAY_TO_SECOND() { + return this.getToken(OracleSqlParser.DAY_TO_SECOND, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + TIME() { + return this.getToken(OracleSqlParser.TIME, 0); + }; + + ZONE() { + return this.getToken(OracleSqlParser.ZONE, 0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_date_format_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_init_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_init_clause; + } + + external_table_condition_clause() { + return this.getTypedRuleContext(External_table_condition_clauseContext,0); + }; + + DEFAULTIF() { + return this.getToken(OracleSqlParser.DEFAULTIF, 0); + }; + + NULLIF() { + return this.getToken(OracleSqlParser.NULLIF, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_init_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_condition_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_condition_clause; + } + + relational_operator() { + return this.getTypedRuleContext(Relational_operatorContext,0); + }; + + field_spec() { + return this.getTypedRuleContext(Field_specContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + BINDVAR() { + return this.getToken(OracleSqlParser.BINDVAR, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + HEX_STRING_LIT() { + return this.getToken(OracleSqlParser.HEX_STRING_LIT, 0); + }; + + BLANKS() { + return this.getToken(OracleSqlParser.BLANKS, 0); + }; + + external_table_condition_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_condition_clauseContext); + } else { + return this.getTypedRuleContext(External_table_condition_clauseContext,i); + } + }; + + AND() { + return this.getToken(OracleSqlParser.AND, 0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_condition_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_lls_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_lls_clause; + } + + LLS() { + return this.getToken(OracleSqlParser.LLS, 0); + }; + + external_table_directory() { + return this.getTypedRuleContext(External_table_directoryContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_lls_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_recordsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_records; + } + + RECORDS() { + return this.getToken(OracleSqlParser.RECORDS, 0); + }; + + FIXED() { + return this.getToken(OracleSqlParser.FIXED, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + VARIABLE() { + return this.getToken(OracleSqlParser.VARIABLE, 0); + }; + + DELIMITED() { + return this.getToken(OracleSqlParser.DELIMITED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + XMLTAG() { + return this.getToken(OracleSqlParser.XMLTAG, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + external_table_record_options_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_record_options_clauseContext); + } else { + return this.getTypedRuleContext(External_table_record_options_clauseContext,i); + } + }; + + NEWLINE_() { + return this.getToken(OracleSqlParser.NEWLINE_, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + DETECTED() { + return this.getToken(OracleSqlParser.DETECTED, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_records(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_record_options_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_record_options_clause; + } + + CHARACTERSET() { + return this.getToken(OracleSqlParser.CHARACTERSET, 0); + }; + + char_set_name() { + return this.getTypedRuleContext(Char_set_nameContext,0); + }; + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + VARIABLE() { + return this.getToken(OracleSqlParser.VARIABLE, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + PREPROCESSOR() { + return this.getToken(OracleSqlParser.PREPROCESSOR, 0); + }; + + external_table_directory() { + return this.getTypedRuleContext(External_table_directoryContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + ENDIAN() { + return this.getToken(OracleSqlParser.ENDIAN, 0); + }; + + LITTLE() { + return this.getToken(OracleSqlParser.LITTLE, 0); + }; + + BIG() { + return this.getToken(OracleSqlParser.BIG, 0); + }; + + BYTEORDERMARK() { + return this.getToken(OracleSqlParser.BYTEORDERMARK, 0); + }; + + CHECK() { + return this.getToken(OracleSqlParser.CHECK, 0); + }; + + NOCHECK() { + return this.getToken(OracleSqlParser.NOCHECK, 0); + }; + + STRING() { + return this.getToken(OracleSqlParser.STRING, 0); + }; + + SIZES() { + return this.getToken(OracleSqlParser.SIZES, 0); + }; + + ARE() { + return this.getToken(OracleSqlParser.ARE, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + BYTES() { + return this.getToken(OracleSqlParser.BYTES, 0); + }; + + CHARACTERS() { + return this.getToken(OracleSqlParser.CHARACTERS, 0); + }; + + LOAD() { + return this.getToken(OracleSqlParser.LOAD, 0); + }; + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + external_table_condition_clause() { + return this.getTypedRuleContext(External_table_condition_clauseContext,0); + }; + + external_table_output_files() { + return this.getTypedRuleContext(External_table_output_filesContext,0); + }; + + READSIZE() { + return this.getToken(OracleSqlParser.READSIZE, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + DISABLE_DIRECTORY_LINK_CHECK() { + return this.getToken(OracleSqlParser.DISABLE_DIRECTORY_LINK_CHECK, 0); + }; + + DATE_CACHE() { + return this.getToken(OracleSqlParser.DATE_CACHE, 0); + }; + + SKIP_() { + return this.getToken(OracleSqlParser.SKIP_, 0); + }; + + IO_OPTIONS() { + return this.getToken(OracleSqlParser.IO_OPTIONS, 0); + }; + + DIRECTIO() { + return this.getToken(OracleSqlParser.DIRECTIO, 0); + }; + + NODIRECTIO() { + return this.getToken(OracleSqlParser.NODIRECTIO, 0); + }; + + DNFS_ENABLE() { + return this.getToken(OracleSqlParser.DNFS_ENABLE, 0); + }; + + DNFS_DISABLE() { + return this.getToken(OracleSqlParser.DNFS_DISABLE, 0); + }; + + DNFS_READBUFFERS() { + return this.getToken(OracleSqlParser.DNFS_READBUFFERS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_record_options_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_output_filesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_output_files; + } + + filename() { + return this.getTypedRuleContext(FilenameContext,0); + }; + + NOBADFILE() { + return this.getToken(OracleSqlParser.NOBADFILE, 0); + }; + + NODISCARDFILE() { + return this.getToken(OracleSqlParser.NODISCARDFILE, 0); + }; + + NOLOGFILE() { + return this.getToken(OracleSqlParser.NOLOGFILE, 0); + }; + + BADFILE() { + return this.getToken(OracleSqlParser.BADFILE, 0); + }; + + DISCARDFILE() { + return this.getToken(OracleSqlParser.DISCARDFILE, 0); + }; + + LOGFILE() { + return this.getToken(OracleSqlParser.LOGFILE, 0); + }; + + external_table_directory() { + return this.getTypedRuleContext(External_table_directoryContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_output_files(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_fieldsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_fields; + } + + FIELDS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FIELDS); + } else { + return this.getToken(OracleSqlParser.FIELDS, i); + } + }; + + + IGNORE_CHARS_AFTER_EOR() { + return this.getToken(OracleSqlParser.IGNORE_CHARS_AFTER_EOR, 0); + }; + + CSV() { + return this.getToken(OracleSqlParser.CSV, 0); + }; + + EMBEDDED() { + return this.getToken(OracleSqlParser.EMBEDDED, 0); + }; + + external_table_delimit_clause() { + return this.getTypedRuleContext(External_table_delimit_clauseContext,0); + }; + + external_table_trim_clause() { + return this.getTypedRuleContext(External_table_trim_clauseContext,0); + }; + + ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ALL); + } else { + return this.getToken(OracleSqlParser.ALL, i); + } + }; + + + OVERRIDE() { + return this.getToken(OracleSqlParser.OVERRIDE, 0); + }; + + THESE() { + return this.getToken(OracleSqlParser.THESE, 0); + }; + + MISSING() { + return this.getToken(OracleSqlParser.MISSING, 0); + }; + + FIELD() { + return this.getToken(OracleSqlParser.FIELD, 0); + }; + + VALUES() { + return this.getToken(OracleSqlParser.VALUES, 0); + }; + + ARE() { + return this.getToken(OracleSqlParser.ARE, 0); + }; + + NULL_ = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NULL_); + } else { + return this.getToken(OracleSqlParser.NULL_, i); + } + }; + + + REJECT() { + return this.getToken(OracleSqlParser.REJECT, 0); + }; + + ROWS() { + return this.getToken(OracleSqlParser.ROWS, 0); + }; + + WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.WITH); + } else { + return this.getToken(OracleSqlParser.WITH, i); + } + }; + + + DATE_FORMAT() { + return this.getToken(OracleSqlParser.DATE_FORMAT, 0); + }; + + MASK() { + return this.getToken(OracleSqlParser.MASK, 0); + }; + + quoted_string = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Quoted_stringContext); + } else { + return this.getTypedRuleContext(Quoted_stringContext,i); + } + }; + + NULLIF() { + return this.getToken(OracleSqlParser.NULLIF, 0); + }; + + NONULLIF() { + return this.getToken(OracleSqlParser.NONULLIF, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + external_table_field_list() { + return this.getTypedRuleContext(External_table_field_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + WITHOUT() { + return this.getToken(OracleSqlParser.WITHOUT, 0); + }; + + DATE() { + return this.getToken(OracleSqlParser.DATE, 0); + }; + + TIMESTAMP() { + return this.getToken(OracleSqlParser.TIMESTAMP, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + NOT_EQUAL_OP() { + return this.getToken(OracleSqlParser.NOT_EQUAL_OP, 0); + }; + + HEX_STRING_LIT() { + return this.getToken(OracleSqlParser.HEX_STRING_LIT, 0); + }; + + BLANKS() { + return this.getToken(OracleSqlParser.BLANKS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_fields(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_datapumpContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_datapump; + } + + ENCRYPTION() { + return this.getToken(OracleSqlParser.ENCRYPTION, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLED() { + return this.getToken(OracleSqlParser.DISABLED, 0); + }; + + NOLOGFILE() { + return this.getToken(OracleSqlParser.NOLOGFILE, 0); + }; + + LOGFILE() { + return this.getToken(OracleSqlParser.LOGFILE, 0); + }; + + filename() { + return this.getTypedRuleContext(FilenameContext,0); + }; + + external_table_directory() { + return this.getTypedRuleContext(External_table_directoryContext,0); + }; + + COMPRESSION() { + return this.getToken(OracleSqlParser.COMPRESSION, 0); + }; + + ENABLED() { + return this.getToken(OracleSqlParser.ENABLED, 0); + }; + + BASIC() { + return this.getToken(OracleSqlParser.BASIC, 0); + }; + + LOW() { + return this.getToken(OracleSqlParser.LOW, 0); + }; + + MEDIUM() { + return this.getToken(OracleSqlParser.MEDIUM, 0); + }; + + HIGH() { + return this.getToken(OracleSqlParser.HIGH, 0); + }; + + HADOOP_TRAILERS() { + return this.getToken(OracleSqlParser.HADOOP_TRAILERS, 0); + }; + + VERSION() { + return this.getToken(OracleSqlParser.VERSION, 0); + }; + + COMPATIBLE() { + return this.getToken(OracleSqlParser.COMPATIBLE, 0); + }; + + LATEST() { + return this.getToken(OracleSqlParser.LATEST, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + NOLOG() { + return this.getToken(OracleSqlParser.NOLOG, 0); + }; + + DEBUG() { + return this.getToken(OracleSqlParser.DEBUG, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + DATAPUMP() { + return this.getToken(OracleSqlParser.DATAPUMP, 0); + }; + + INTERNAL() { + return this.getToken(OracleSqlParser.INTERNAL, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + TEMPLATE_TABLE() { + return this.getToken(OracleSqlParser.TEMPLATE_TABLE, 0); + }; + + JOB() { + return this.getToken(OracleSqlParser.JOB, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + WORKERID() { + return this.getToken(OracleSqlParser.WORKERID, 0); + }; + + PARALLEL() { + return this.getToken(OracleSqlParser.PARALLEL, 0); + }; + + ENCRYPTPASSWORDISNULL() { + return this.getToken(OracleSqlParser.ENCRYPTPASSWORDISNULL, 0); + }; + + DBLINK() { + return this.getToken(OracleSqlParser.DBLINK, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_datapump(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_hiveContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_hive; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + EQUALS_OP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EQUALS_OP); + } else { + return this.getToken(OracleSqlParser.EQUALS_OP, i); + } + }; + + + COLON() { + return this.getToken(OracleSqlParser.COLON, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + external_table_hive_parameter_map = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_hive_parameter_mapContext); + } else { + return this.getTypedRuleContext(External_table_hive_parameter_mapContext,i); + } + }; + + LEFT_BRACKET() { + return this.getToken(OracleSqlParser.LEFT_BRACKET, 0); + }; + + RIGHT_BRACKET() { + return this.getToken(OracleSqlParser.RIGHT_BRACKET, 0); + }; + + external_table_field() { + return this.getTypedRuleContext(External_table_fieldContext,0); + }; + + datatype() { + return this.getTypedRuleContext(DatatypeContext,0); + }; + + SEQUENCEFILE() { + return this.getToken(OracleSqlParser.SEQUENCEFILE, 0); + }; + + TEXTFILE() { + return this.getToken(OracleSqlParser.TEXTFILE, 0); + }; + + RCFILE() { + return this.getToken(OracleSqlParser.RCFILE, 0); + }; + + ORC() { + return this.getToken(OracleSqlParser.ORC, 0); + }; + + PARQUET() { + return this.getToken(OracleSqlParser.PARQUET, 0); + }; + + INPUTFORMAT() { + return this.getToken(OracleSqlParser.INPUTFORMAT, 0); + }; + + quoted_string = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Quoted_stringContext); + } else { + return this.getTypedRuleContext(Quoted_stringContext,i); + } + }; + + OUTPUTFORMAT() { + return this.getToken(OracleSqlParser.OUTPUTFORMAT, 0); + }; + + external_table_directory() { + return this.getTypedRuleContext(External_table_directoryContext,0); + }; + + SERDE() { + return this.getToken(OracleSqlParser.SERDE, 0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + external_table_hive() { + return this.getTypedRuleContext(External_table_hiveContext,0); + }; + + FIELDS() { + return this.getToken(OracleSqlParser.FIELDS, 0); + }; + + TERMINATED() { + return this.getToken(OracleSqlParser.TERMINATED, 0); + }; + + BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BY); + } else { + return this.getToken(OracleSqlParser.BY, i); + } + }; + + + CHARACTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHARACTER); + } else { + return this.getToken(OracleSqlParser.CHARACTER, i); + } + }; + + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + DEFINED() { + return this.getToken(OracleSqlParser.DEFINED, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + COMMENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMENT); + } else { + return this.getToken(OracleSqlParser.COMMENT, i); + } + }; + + + DELIMITED() { + return this.getToken(OracleSqlParser.DELIMITED, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + SERDEPROPERTIES() { + return this.getToken(OracleSqlParser.SERDEPROPERTIES, 0); + }; + + ESCAPED() { + return this.getToken(OracleSqlParser.ESCAPED, 0); + }; + + COLLECTION() { + return this.getToken(OracleSqlParser.COLLECTION, 0); + }; + + ITEMS() { + return this.getToken(OracleSqlParser.ITEMS, 0); + }; + + MAP() { + return this.getToken(OracleSqlParser.MAP, 0); + }; + + KEYS() { + return this.getToken(OracleSqlParser.KEYS, 0); + }; + + LINES() { + return this.getToken(OracleSqlParser.LINES, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_hive(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_hive_parameter_mapContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_hive_parameter_map; + } + + LEFT_CURLY_PAREN() { + return this.getToken(OracleSqlParser.LEFT_CURLY_PAREN, 0); + }; + + RIGHT_CURLY_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_CURLY_PAREN, 0); + }; + + external_table_hive_parameter_map_entry = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(External_table_hive_parameter_map_entryContext); + } else { + return this.getTypedRuleContext(External_table_hive_parameter_map_entryContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_hive_parameter_map(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_hive_parameter_map_entryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_hive_parameter_map_entry; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + BINDVAR() { + return this.getToken(OracleSqlParser.BINDVAR, 0); + }; + + COLON() { + return this.getToken(OracleSqlParser.COLON, 0); + }; + + LEFT_BRACKET() { + return this.getToken(OracleSqlParser.LEFT_BRACKET, 0); + }; + + RIGHT_BRACKET() { + return this.getToken(OracleSqlParser.RIGHT_BRACKET, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_hive_parameter_map_entry(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class External_table_directoryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_external_table_directory; + } + + directory_name() { + return this.getTypedRuleContext(Directory_nameContext,0); + }; + + COLON() { + return this.getToken(OracleSqlParser.COLON, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + object_name() { + return this.getTypedRuleContext(Object_nameContext,0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + variable_name() { + return this.getTypedRuleContext(Variable_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExternal_table_directory(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Row_movement_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_row_movement_clause; + } + + ROW() { + return this.getToken(OracleSqlParser.ROW, 0); + }; + + MOVEMENT() { + return this.getToken(OracleSqlParser.MOVEMENT, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRow_movement_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Flashback_archive_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_flashback_archive_clause; + this.fa = null; + } + + FLASHBACK() { + return this.getToken(OracleSqlParser.FLASHBACK, 0); + }; + + ARCHIVE() { + return this.getToken(OracleSqlParser.ARCHIVE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFlashback_archive_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Log_grpContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_log_grp; + } + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLog_grp(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Supplemental_table_loggingContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_supplemental_table_logging; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + SUPPLEMENTAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SUPPLEMENTAL); + } else { + return this.getToken(OracleSqlParser.SUPPLEMENTAL, i); + } + }; + + + LOG = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LOG); + } else { + return this.getToken(OracleSqlParser.LOG, i); + } + }; + + + supplemental_log_grp_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Supplemental_log_grp_clauseContext); + } else { + return this.getTypedRuleContext(Supplemental_log_grp_clauseContext,i); + } + }; + + supplemental_id_key_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Supplemental_id_key_clauseContext); + } else { + return this.getTypedRuleContext(Supplemental_id_key_clauseContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + GROUP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.GROUP); + } else { + return this.getToken(OracleSqlParser.GROUP, i); + } + }; + + + log_grp = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Log_grpContext); + } else { + return this.getTypedRuleContext(Log_grpContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSupplemental_table_logging(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Supplemental_log_grp_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_supplemental_log_grp_clause; + } + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + log_grp() { + return this.getTypedRuleContext(Log_grpContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + NO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NO); + } else { + return this.getToken(OracleSqlParser.NO, i); + } + }; + + + LOG = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LOG); + } else { + return this.getToken(OracleSqlParser.LOG, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + ALWAYS() { + return this.getToken(OracleSqlParser.ALWAYS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSupplemental_log_grp_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Supplemental_id_key_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_supplemental_id_key_clause; + } + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COLUMNS() { + return this.getToken(OracleSqlParser.COLUMNS, 0); + }; + + ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ALL); + } else { + return this.getToken(OracleSqlParser.ALL, i); + } + }; + + + PRIMARY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PRIMARY); + } else { + return this.getToken(OracleSqlParser.PRIMARY, i); + } + }; + + + KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEY); + } else { + return this.getToken(OracleSqlParser.KEY, i); + } + }; + + + UNIQUE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNIQUE); + } else { + return this.getToken(OracleSqlParser.UNIQUE, i); + } + }; + + + FOREIGN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FOREIGN); + } else { + return this.getToken(OracleSqlParser.FOREIGN, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + INDEX = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.INDEX); + } else { + return this.getToken(OracleSqlParser.INDEX, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSupplemental_id_key_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Allocate_extent_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_allocate_extent_clause; + this.datafile = null; + this.inst_num = null; + } + + ALLOCATE() { + return this.getToken(OracleSqlParser.ALLOCATE, 0); + }; + + EXTENT() { + return this.getToken(OracleSqlParser.EXTENT, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + SIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SIZE); + } else { + return this.getToken(OracleSqlParser.SIZE, i); + } + }; + + + size_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Size_clauseContext); + } else { + return this.getTypedRuleContext(Size_clauseContext,i); + } + }; + + DATAFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DATAFILE); + } else { + return this.getToken(OracleSqlParser.DATAFILE, i); + } + }; + + + INSTANCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.INSTANCE); + } else { + return this.getToken(OracleSqlParser.INSTANCE, i); + } + }; + + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAllocate_extent_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Deallocate_unused_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_deallocate_unused_clause; + } + + DEALLOCATE() { + return this.getToken(OracleSqlParser.DEALLOCATE, 0); + }; + + UNUSED() { + return this.getToken(OracleSqlParser.UNUSED, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDeallocate_unused_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Shrink_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_shrink_clause; + } + + SHRINK() { + return this.getToken(OracleSqlParser.SHRINK, 0); + }; + + SPACE_KEYWORD() { + return this.getToken(OracleSqlParser.SPACE_KEYWORD, 0); + }; + + COMPACT() { + return this.getToken(OracleSqlParser.COMPACT, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + CHECK() { + return this.getToken(OracleSqlParser.CHECK, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitShrink_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Records_per_block_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_records_per_block_clause; + } + + RECORDS_PER_BLOCK() { + return this.getToken(OracleSqlParser.RECORDS_PER_BLOCK, 0); + }; + + MINIMIZE() { + return this.getToken(OracleSqlParser.MINIMIZE, 0); + }; + + NOMINIMIZE() { + return this.getToken(OracleSqlParser.NOMINIMIZE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRecords_per_block_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Upgrade_table_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_upgrade_table_clause; + } + + UPGRADE() { + return this.getToken(OracleSqlParser.UPGRADE, 0); + }; + + column_properties() { + return this.getTypedRuleContext(Column_propertiesContext,0); + }; + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUpgrade_table_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Truncate_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_truncate_table; + } + + TRUNCATE() { + return this.getToken(OracleSqlParser.TRUNCATE, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + STORAGE() { + return this.getToken(OracleSqlParser.STORAGE, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + PRESERVE() { + return this.getToken(OracleSqlParser.PRESERVE, 0); + }; + + PURGE() { + return this.getToken(OracleSqlParser.PURGE, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + LOG() { + return this.getToken(OracleSqlParser.LOG, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTruncate_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_table; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + tableview_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Tableview_nameContext); + } else { + return this.getTypedRuleContext(Tableview_nameContext,i); + } + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + AS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.AS); + } else { + return this.getToken(OracleSqlParser.AS, i); + } + }; + + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + PURGE() { + return this.getToken(OracleSqlParser.PURGE, 0); + }; + + table_alias() { + return this.getTypedRuleContext(Table_aliasContext,0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + CONSTRAINTS() { + return this.getToken(OracleSqlParser.CONSTRAINTS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_tablespaceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_tablespace; + this.ts = null; + } + + DROP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DROP); + } else { + return this.getToken(OracleSqlParser.DROP, i); + } + }; + + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + including_contents_clause() { + return this.getTypedRuleContext(Including_contents_clauseContext,0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + QUOTA() { + return this.getToken(OracleSqlParser.QUOTA, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_tablespace(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_tablespace_setContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_tablespace_set; + this.tss = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + including_contents_clause() { + return this.getTypedRuleContext(Including_contents_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_tablespace_set(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Including_contents_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_including_contents_clause; + } + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + CONTENTS() { + return this.getToken(OracleSqlParser.CONTENTS, 0); + }; + + DATAFILES() { + return this.getToken(OracleSqlParser.DATAFILES, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + CONSTRAINTS() { + return this.getToken(OracleSqlParser.CONSTRAINTS, 0); + }; + + AND() { + return this.getToken(OracleSqlParser.AND, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIncluding_contents_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_viewContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_view; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_view(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Comment_on_columnContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_comment_on_column; + } + + COMMENT() { + return this.getToken(OracleSqlParser.COMMENT, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitComment_on_column(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Enable_or_disableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_enable_or_disable; + } + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitEnable_or_disable(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Allow_or_disallowContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_allow_or_disallow; + } + + ALLOW() { + return this.getToken(OracleSqlParser.ALLOW, 0); + }; + + DISALLOW() { + return this.getToken(OracleSqlParser.DISALLOW, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAllow_or_disallow(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_synonymContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_synonym; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + SYNONYM() { + return this.getToken(OracleSqlParser.SYNONYM, 0); + }; + + synonym_name() { + return this.getTypedRuleContext(Synonym_nameContext,0); + }; + + EDITIONABLE() { + return this.getToken(OracleSqlParser.EDITIONABLE, 0); + }; + + NONEDITIONABLE() { + return this.getToken(OracleSqlParser.NONEDITIONABLE, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + PUBLIC() { + return this.getToken(OracleSqlParser.PUBLIC, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_synonym(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_synonymContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_synonym; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + PUBLIC() { + return this.getToken(OracleSqlParser.PUBLIC, 0); + }; + + SYNONYM() { + return this.getToken(OracleSqlParser.SYNONYM, 0); + }; + + synonym_name() { + return this.getTypedRuleContext(Synonym_nameContext,0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + schema_object_name() { + return this.getTypedRuleContext(Schema_object_nameContext,0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + schema_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Schema_nameContext); + } else { + return this.getTypedRuleContext(Schema_nameContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + AT_SIGN() { + return this.getToken(OracleSqlParser.AT_SIGN, 0); + }; + + link_name() { + return this.getTypedRuleContext(Link_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_synonym(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_synonymContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_synonym; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + SYNONYM() { + return this.getToken(OracleSqlParser.SYNONYM, 0); + }; + + synonym_name() { + return this.getTypedRuleContext(Synonym_nameContext,0); + }; + + PUBLIC() { + return this.getToken(OracleSqlParser.PUBLIC, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_synonym(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_spfileContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_spfile; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + SPFILE() { + return this.getToken(OracleSqlParser.SPFILE, 0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + PFILE() { + return this.getToken(OracleSqlParser.PFILE, 0); + }; + + MEMORY() { + return this.getToken(OracleSqlParser.MEMORY, 0); + }; + + EQUALS_OP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EQUALS_OP); + } else { + return this.getToken(OracleSqlParser.EQUALS_OP, i); + } + }; + + + spfile_name() { + return this.getTypedRuleContext(Spfile_nameContext,0); + }; + + pfile_name() { + return this.getTypedRuleContext(Pfile_nameContext,0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + COPY() { + return this.getToken(OracleSqlParser.COPY, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_spfile(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Spfile_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_spfile_name; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSpfile_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pfile_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pfile_name; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPfile_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Comment_on_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_comment_on_table; + } + + COMMENT() { + return this.getToken(OracleSqlParser.COMMENT, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitComment_on_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Comment_on_materializedContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_comment_on_materialized; + } + + COMMENT() { + return this.getToken(OracleSqlParser.COMMENT, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitComment_on_materialized(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_analytic_viewContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_analytic_view; + this.av = null; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + ANALYTIC() { + return this.getToken(OracleSqlParser.ANALYTIC, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + alter_add_cache_clause() { + return this.getTypedRuleContext(Alter_add_cache_clauseContext,0); + }; + + alter_drop_cache_clause() { + return this.getTypedRuleContext(Alter_drop_cache_clauseContext,0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_analytic_view(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_add_cache_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_add_cache_clause; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + CACHE() { + return this.getToken(OracleSqlParser.CACHE, 0); + }; + + MEASURE() { + return this.getToken(OracleSqlParser.MEASURE, 0); + }; + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + LEVELS() { + return this.getToken(OracleSqlParser.LEVELS, 0); + }; + + levels_item = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Levels_itemContext); + } else { + return this.getTypedRuleContext(Levels_itemContext,i); + } + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + measure_list() { + return this.getTypedRuleContext(Measure_listContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_add_cache_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Levels_itemContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_levels_item; + this.d = null; + this.h = null; + this.l = null; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLevels_item(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Measure_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_measure_list; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMeasure_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_drop_cache_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_drop_cache_clause; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + CACHE() { + return this.getToken(OracleSqlParser.CACHE, 0); + }; + + MEASURE() { + return this.getToken(OracleSqlParser.MEASURE, 0); + }; + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + LEVELS() { + return this.getToken(OracleSqlParser.LEVELS, 0); + }; + + levels_item = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Levels_itemContext); + } else { + return this.getTypedRuleContext(Levels_itemContext,i); + } + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + measure_list() { + return this.getTypedRuleContext(Measure_listContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_drop_cache_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_attribute_dimensionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_attribute_dimension; + this.ad = null; + this.nad = null; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + ATTRIBUTE() { + return this.getToken(OracleSqlParser.ATTRIBUTE, 0); + }; + + DIMENSION() { + return this.getToken(OracleSqlParser.DIMENSION, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_attribute_dimension(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_audit_policyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_audit_policy; + this.p = null; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + AUDIT() { + return this.getToken(OracleSqlParser.AUDIT, 0); + }; + + POLICY() { + return this.getToken(OracleSqlParser.POLICY, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + DROP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DROP); + } else { + return this.getToken(OracleSqlParser.DROP, i); + } + }; + + + CONDITION() { + return this.getToken(OracleSqlParser.CONDITION, 0); + }; + + privilege_audit_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Privilege_audit_clauseContext); + } else { + return this.getTypedRuleContext(Privilege_audit_clauseContext,i); + } + }; + + action_audit_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Action_audit_clauseContext); + } else { + return this.getTypedRuleContext(Action_audit_clauseContext,i); + } + }; + + role_audit_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Role_audit_clauseContext); + } else { + return this.getTypedRuleContext(Role_audit_clauseContext,i); + } + }; + + ONLY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ONLY); + } else { + return this.getToken(OracleSqlParser.ONLY, i); + } + }; + + + TOPLEVEL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TOPLEVEL); + } else { + return this.getToken(OracleSqlParser.TOPLEVEL, i); + } + }; + + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + EVALUATE() { + return this.getToken(OracleSqlParser.EVALUATE, 0); + }; + + PER() { + return this.getToken(OracleSqlParser.PER, 0); + }; + + STATEMENT() { + return this.getToken(OracleSqlParser.STATEMENT, 0); + }; + + SESSION() { + return this.getToken(OracleSqlParser.SESSION, 0); + }; + + INSTANCE() { + return this.getToken(OracleSqlParser.INSTANCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_audit_policy(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_clusterContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_cluster; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + CLUSTER() { + return this.getToken(OracleSqlParser.CLUSTER, 0); + }; + + cluster_name() { + return this.getTypedRuleContext(Cluster_nameContext,0); + }; + + physical_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Physical_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Physical_attributes_clauseContext,i); + } + }; + + SIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SIZE); + } else { + return this.getToken(OracleSqlParser.SIZE, i); + } + }; + + + size_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Size_clauseContext); + } else { + return this.getTypedRuleContext(Size_clauseContext,i); + } + }; + + allocate_extent_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Allocate_extent_clauseContext); + } else { + return this.getTypedRuleContext(Allocate_extent_clauseContext,i); + } + }; + + deallocate_unused_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Deallocate_unused_clauseContext); + } else { + return this.getTypedRuleContext(Deallocate_unused_clauseContext,i); + } + }; + + cache_or_nocache = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Cache_or_nocacheContext); + } else { + return this.getTypedRuleContext(Cache_or_nocacheContext,i); + } + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_cluster(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_analytic_viewContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_analytic_view; + this.av = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + ANALYTIC() { + return this.getToken(OracleSqlParser.ANALYTIC, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_analytic_view(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_attribute_dimensionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_attribute_dimension; + this.ad = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + ATTRIBUTE() { + return this.getToken(OracleSqlParser.ATTRIBUTE, 0); + }; + + DIMENSION() { + return this.getToken(OracleSqlParser.DIMENSION, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_attribute_dimension(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_audit_policyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_audit_policy; + this.p = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + AUDIT() { + return this.getToken(OracleSqlParser.AUDIT, 0); + }; + + POLICY() { + return this.getToken(OracleSqlParser.POLICY, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_audit_policy(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_flashback_archiveContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_flashback_archive; + this.fa = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + FLASHBACK() { + return this.getToken(OracleSqlParser.FLASHBACK, 0); + }; + + ARCHIVE() { + return this.getToken(OracleSqlParser.ARCHIVE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_flashback_archive(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_clusterContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_cluster; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + CLUSTER() { + return this.getToken(OracleSqlParser.CLUSTER, 0); + }; + + cluster_name() { + return this.getTypedRuleContext(Cluster_nameContext,0); + }; + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + TABLES() { + return this.getToken(OracleSqlParser.TABLES, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + CONSTRAINTS() { + return this.getToken(OracleSqlParser.CONSTRAINTS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_cluster(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_contextContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_context; + this.ns = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + CONTEXT() { + return this.getToken(OracleSqlParser.CONTEXT, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_context(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_directoryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_directory; + this.dn = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + DIRECTORY() { + return this.getToken(OracleSqlParser.DIRECTORY, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_directory(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_diskgroupContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_diskgroup; + this.dgn = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + DISKGROUP() { + return this.getToken(OracleSqlParser.DISKGROUP, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + CONTENTS() { + return this.getToken(OracleSqlParser.CONTENTS, 0); + }; + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + EXCLUDING() { + return this.getToken(OracleSqlParser.EXCLUDING, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_diskgroup(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_editionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_edition; + this.e = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + EDITION() { + return this.getToken(OracleSqlParser.EDITION, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_edition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Truncate_clusterContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_truncate_cluster; + } + + TRUNCATE() { + return this.getToken(OracleSqlParser.TRUNCATE, 0); + }; + + CLUSTER() { + return this.getToken(OracleSqlParser.CLUSTER, 0); + }; + + cluster_name() { + return this.getTypedRuleContext(Cluster_nameContext,0); + }; + + STORAGE() { + return this.getToken(OracleSqlParser.STORAGE, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTruncate_cluster(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cache_or_nocacheContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cache_or_nocache; + } + + CACHE() { + return this.getToken(OracleSqlParser.CACHE, 0); + }; + + NOCACHE() { + return this.getToken(OracleSqlParser.NOCACHE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCache_or_nocache(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Database_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_database_name; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDatabase_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_databaseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_database; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + database_clause() { + return this.getTypedRuleContext(Database_clauseContext,0); + }; + + startup_clauses() { + return this.getTypedRuleContext(Startup_clausesContext,0); + }; + + recovery_clauses() { + return this.getTypedRuleContext(Recovery_clausesContext,0); + }; + + database_file_clauses() { + return this.getTypedRuleContext(Database_file_clausesContext,0); + }; + + logfile_clauses() { + return this.getTypedRuleContext(Logfile_clausesContext,0); + }; + + controlfile_clauses() { + return this.getTypedRuleContext(Controlfile_clausesContext,0); + }; + + standby_database_clauses() { + return this.getTypedRuleContext(Standby_database_clausesContext,0); + }; + + default_settings_clause() { + return this.getTypedRuleContext(Default_settings_clauseContext,0); + }; + + instance_clauses() { + return this.getTypedRuleContext(Instance_clausesContext,0); + }; + + security_clause() { + return this.getTypedRuleContext(Security_clauseContext,0); + }; + + prepare_clause() { + return this.getTypedRuleContext(Prepare_clauseContext,0); + }; + + drop_mirror_clause() { + return this.getTypedRuleContext(Drop_mirror_clauseContext,0); + }; + + lost_write_protection() { + return this.getTypedRuleContext(Lost_write_protectionContext,0); + }; + + cdb_fleet_clauses() { + return this.getTypedRuleContext(Cdb_fleet_clausesContext,0); + }; + + property_clauses() { + return this.getTypedRuleContext(Property_clausesContext,0); + }; + + replay_upgrade_clauses() { + return this.getTypedRuleContext(Replay_upgrade_clausesContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_database(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Database_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_database_clause; + } + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + PLUGGABLE() { + return this.getToken(OracleSqlParser.PLUGGABLE, 0); + }; + + database_name() { + return this.getTypedRuleContext(Database_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDatabase_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Startup_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_startup_clauses; + } + + MOUNT() { + return this.getToken(OracleSqlParser.MOUNT, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + CLONE() { + return this.getToken(OracleSqlParser.CLONE, 0); + }; + + OPEN() { + return this.getToken(OracleSqlParser.OPEN, 0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + WRITE() { + return this.getToken(OracleSqlParser.WRITE, 0); + }; + + resetlogs_or_noresetlogs() { + return this.getTypedRuleContext(Resetlogs_or_noresetlogsContext,0); + }; + + upgrade_or_downgrade() { + return this.getTypedRuleContext(Upgrade_or_downgradeContext,0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStartup_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Resetlogs_or_noresetlogsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_resetlogs_or_noresetlogs; + } + + RESETLOGS() { + return this.getToken(OracleSqlParser.RESETLOGS, 0); + }; + + NORESETLOGS() { + return this.getToken(OracleSqlParser.NORESETLOGS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitResetlogs_or_noresetlogs(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Upgrade_or_downgradeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_upgrade_or_downgrade; + } + + UPGRADE() { + return this.getToken(OracleSqlParser.UPGRADE, 0); + }; + + DOWNGRADE() { + return this.getToken(OracleSqlParser.DOWNGRADE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUpgrade_or_downgrade(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Recovery_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_recovery_clauses; + } + + general_recovery() { + return this.getTypedRuleContext(General_recoveryContext,0); + }; + + managed_standby_recovery() { + return this.getTypedRuleContext(Managed_standby_recoveryContext,0); + }; + + begin_or_end() { + return this.getTypedRuleContext(Begin_or_endContext,0); + }; + + BACKUP() { + return this.getToken(OracleSqlParser.BACKUP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRecovery_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Begin_or_endContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_begin_or_end; + } + + BEGIN() { + return this.getToken(OracleSqlParser.BEGIN, 0); + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBegin_or_end(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class General_recoveryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_general_recovery; + } + + RECOVER() { + return this.getToken(OracleSqlParser.RECOVER, 0); + }; + + CONTINUE() { + return this.getToken(OracleSqlParser.CONTINUE, 0); + }; + + CANCEL() { + return this.getToken(OracleSqlParser.CANCEL, 0); + }; + + AUTOMATIC() { + return this.getToken(OracleSqlParser.AUTOMATIC, 0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + full_database_recovery() { + return this.getTypedRuleContext(Full_database_recoveryContext,0); + }; + + partial_database_recovery() { + return this.getTypedRuleContext(Partial_database_recoveryContext,0); + }; + + LOGFILE() { + return this.getToken(OracleSqlParser.LOGFILE, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + TEST = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TEST); + } else { + return this.getToken(OracleSqlParser.TEST, i); + } + }; + + + ALLOW = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ALLOW); + } else { + return this.getToken(OracleSqlParser.ALLOW, i); + } + }; + + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + CORRUPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CORRUPTION); + } else { + return this.getToken(OracleSqlParser.CORRUPTION, i); + } + }; + + + parallel_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parallel_clauseContext); + } else { + return this.getTypedRuleContext(Parallel_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGeneral_recovery(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Full_database_recoveryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_full_database_recovery; + } + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + UNTIL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNTIL); + } else { + return this.getToken(OracleSqlParser.UNTIL, i); + } + }; + + + USING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.USING); + } else { + return this.getToken(OracleSqlParser.USING, i); + } + }; + + + BACKUP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BACKUP); + } else { + return this.getToken(OracleSqlParser.BACKUP, i); + } + }; + + + CONTROLFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CONTROLFILE); + } else { + return this.getToken(OracleSqlParser.CONTROLFILE, i); + } + }; + + + SNAPSHOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SNAPSHOT); + } else { + return this.getToken(OracleSqlParser.SNAPSHOT, i); + } + }; + + + TIME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TIME); + } else { + return this.getToken(OracleSqlParser.TIME, i); + } + }; + + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + CANCEL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CANCEL); + } else { + return this.getToken(OracleSqlParser.CANCEL, i); + } + }; + + + CHANGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHANGE); + } else { + return this.getToken(OracleSqlParser.CHANGE, i); + } + }; + + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + CONSISTENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CONSISTENT); + } else { + return this.getToken(OracleSqlParser.CONSISTENT, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFull_database_recovery(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Partial_database_recoveryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_partial_database_recovery; + } + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + filenumber = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenumberContext); + } else { + return this.getTypedRuleContext(FilenumberContext,i); + } + }; + + partial_database_recovery_10g() { + return this.getTypedRuleContext(Partial_database_recovery_10gContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPartial_database_recovery(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Partial_database_recovery_10gContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_partial_database_recovery_10g; + } + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + UNTIL() { + return this.getToken(OracleSqlParser.UNTIL, 0); + }; + + CONTROLFILE() { + return this.getToken(OracleSqlParser.CONTROLFILE, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + filenumber = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenumberContext); + } else { + return this.getTypedRuleContext(FilenumberContext,i); + } + }; + + CONSISTENT() { + return this.getToken(OracleSqlParser.CONSISTENT, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPartial_database_recovery_10g(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Managed_standby_recoveryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_managed_standby_recovery; + } + + RECOVER() { + return this.getToken(OracleSqlParser.RECOVER, 0); + }; + + MANAGED() { + return this.getToken(OracleSqlParser.MANAGED, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + LOGICAL() { + return this.getToken(OracleSqlParser.LOGICAL, 0); + }; + + db_name() { + return this.getTypedRuleContext(Db_nameContext,0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + IDENTITY() { + return this.getToken(OracleSqlParser.IDENTITY, 0); + }; + + FINISH() { + return this.getToken(OracleSqlParser.FINISH, 0); + }; + + CANCEL() { + return this.getToken(OracleSqlParser.CANCEL, 0); + }; + + USING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.USING); + } else { + return this.getToken(OracleSqlParser.USING, i); + } + }; + + + CURRENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CURRENT); + } else { + return this.getToken(OracleSqlParser.CURRENT, i); + } + }; + + + LOGFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LOGFILE); + } else { + return this.getToken(OracleSqlParser.LOGFILE, i); + } + }; + + + DISCONNECT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DISCONNECT); + } else { + return this.getToken(OracleSqlParser.DISCONNECT, i); + } + }; + + + NODELAY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NODELAY); + } else { + return this.getToken(OracleSqlParser.NODELAY, i); + } + }; + + + UNTIL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNTIL); + } else { + return this.getToken(OracleSqlParser.UNTIL, i); + } + }; + + + CHANGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHANGE); + } else { + return this.getToken(OracleSqlParser.CHANGE, i); + } + }; + + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + CONSISTENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CONSISTENT); + } else { + return this.getToken(OracleSqlParser.CONSISTENT, i); + } + }; + + + parallel_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parallel_clauseContext); + } else { + return this.getTypedRuleContext(Parallel_clauseContext,i); + } + }; + + FROM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FROM); + } else { + return this.getToken(OracleSqlParser.FROM, i); + } + }; + + + SESSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SESSION); + } else { + return this.getToken(OracleSqlParser.SESSION, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitManaged_standby_recovery(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Db_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_db_name; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDb_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Database_file_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_database_file_clauses; + } + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + FILE() { + return this.getToken(OracleSqlParser.FILE, 0); + }; + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + create_datafile_clause() { + return this.getTypedRuleContext(Create_datafile_clauseContext,0); + }; + + alter_datafile_clause() { + return this.getTypedRuleContext(Alter_datafile_clauseContext,0); + }; + + alter_tempfile_clause() { + return this.getTypedRuleContext(Alter_tempfile_clauseContext,0); + }; + + move_datafile_clause() { + return this.getTypedRuleContext(Move_datafile_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDatabase_file_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_datafile_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_datafile_clause; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + filenumber = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenumberContext); + } else { + return this.getTypedRuleContext(FilenumberContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + NEW() { + return this.getToken(OracleSqlParser.NEW, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_datafile_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_datafile_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_datafile_clause; + } + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + filenumber = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenumberContext); + } else { + return this.getTypedRuleContext(FilenumberContext,i); + } + }; + + ONLINE() { + return this.getToken(OracleSqlParser.ONLINE, 0); + }; + + OFFLINE() { + return this.getToken(OracleSqlParser.OFFLINE, 0); + }; + + RESIZE() { + return this.getToken(OracleSqlParser.RESIZE, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + autoextend_clause() { + return this.getTypedRuleContext(Autoextend_clauseContext,0); + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + BACKUP() { + return this.getToken(OracleSqlParser.BACKUP, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_datafile_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_tempfile_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_tempfile_clause; + } + + TEMPFILE() { + return this.getToken(OracleSqlParser.TEMPFILE, 0); + }; + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + filenumber = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenumberContext); + } else { + return this.getTypedRuleContext(FilenumberContext,i); + } + }; + + RESIZE() { + return this.getToken(OracleSqlParser.RESIZE, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + autoextend_clause() { + return this.getTypedRuleContext(Autoextend_clauseContext,0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + ONLINE() { + return this.getToken(OracleSqlParser.ONLINE, 0); + }; + + OFFLINE() { + return this.getToken(OracleSqlParser.OFFLINE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + DATAFILES() { + return this.getToken(OracleSqlParser.DATAFILES, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_tempfile_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Move_datafile_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_move_datafile_clause; + } + + MOVE() { + return this.getToken(OracleSqlParser.MOVE, 0); + }; + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + filenumber = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenumberContext); + } else { + return this.getTypedRuleContext(FilenumberContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMove_datafile_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Logfile_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_logfile_clauses; + } + + ARCHIVELOG() { + return this.getToken(OracleSqlParser.ARCHIVELOG, 0); + }; + + NOARCHIVELOG() { + return this.getToken(OracleSqlParser.NOARCHIVELOG, 0); + }; + + MANUAL() { + return this.getToken(OracleSqlParser.MANUAL, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + LOGGING() { + return this.getToken(OracleSqlParser.LOGGING, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + NOLOGGING() { + return this.getToken(OracleSqlParser.NOLOGGING, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + AVAILABILITY() { + return this.getToken(OracleSqlParser.AVAILABILITY, 0); + }; + + LOAD() { + return this.getToken(OracleSqlParser.LOAD, 0); + }; + + PERFORMANCE() { + return this.getToken(OracleSqlParser.PERFORMANCE, 0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + FILE() { + return this.getToken(OracleSqlParser.FILE, 0); + }; + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + CLEAR() { + return this.getToken(OracleSqlParser.CLEAR, 0); + }; + + LOGFILE() { + return this.getToken(OracleSqlParser.LOGFILE, 0); + }; + + logfile_descriptor = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logfile_descriptorContext); + } else { + return this.getTypedRuleContext(Logfile_descriptorContext,i); + } + }; + + UNARCHIVED() { + return this.getToken(OracleSqlParser.UNARCHIVED, 0); + }; + + UNRECOVERABLE() { + return this.getToken(OracleSqlParser.UNRECOVERABLE, 0); + }; + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + add_logfile_clauses() { + return this.getTypedRuleContext(Add_logfile_clausesContext,0); + }; + + drop_logfile_clauses() { + return this.getTypedRuleContext(Drop_logfile_clausesContext,0); + }; + + switch_logfile_clause() { + return this.getTypedRuleContext(Switch_logfile_clauseContext,0); + }; + + supplemental_db_logging() { + return this.getTypedRuleContext(Supplemental_db_loggingContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLogfile_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_logfile_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_logfile_clauses; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + LOGFILE() { + return this.getToken(OracleSqlParser.LOGFILE, 0); + }; + + MEMBER() { + return this.getToken(OracleSqlParser.MEMBER, 0); + }; + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + logfile_descriptor = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logfile_descriptorContext); + } else { + return this.getTypedRuleContext(Logfile_descriptorContext,i); + } + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + INSTANCE() { + return this.getToken(OracleSqlParser.INSTANCE, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + THREAD() { + return this.getToken(OracleSqlParser.THREAD, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + group_redo_logfile = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Group_redo_logfileContext); + } else { + return this.getTypedRuleContext(Group_redo_logfileContext,i); + } + }; + + REUSE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.REUSE); + } else { + return this.getToken(OracleSqlParser.REUSE, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_logfile_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Group_redo_logfileContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_group_redo_logfile; + } + + redo_log_file_spec() { + return this.getTypedRuleContext(Redo_log_file_specContext,0); + }; + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGroup_redo_logfile(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_logfile_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_logfile_clauses; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + LOGFILE() { + return this.getToken(OracleSqlParser.LOGFILE, 0); + }; + + logfile_descriptor = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logfile_descriptorContext); + } else { + return this.getTypedRuleContext(Logfile_descriptorContext,i); + } + }; + + MEMBER() { + return this.getToken(OracleSqlParser.MEMBER, 0); + }; + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_logfile_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Switch_logfile_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_switch_logfile_clause; + } + + SWITCH() { + return this.getToken(OracleSqlParser.SWITCH, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + LOGFILES() { + return this.getToken(OracleSqlParser.LOGFILES, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + BLOCKSIZE() { + return this.getToken(OracleSqlParser.BLOCKSIZE, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSwitch_logfile_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Supplemental_db_loggingContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_supplemental_db_logging; + } + + add_or_drop() { + return this.getTypedRuleContext(Add_or_dropContext,0); + }; + + SUPPLEMENTAL() { + return this.getToken(OracleSqlParser.SUPPLEMENTAL, 0); + }; + + LOG() { + return this.getToken(OracleSqlParser.LOG, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + supplemental_id_key_clause() { + return this.getTypedRuleContext(Supplemental_id_key_clauseContext,0); + }; + + supplemental_plsql_clause() { + return this.getTypedRuleContext(Supplemental_plsql_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSupplemental_db_logging(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_or_dropContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_or_drop; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_or_drop(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Supplemental_plsql_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_supplemental_plsql_clause; + } + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + PROCEDURAL() { + return this.getToken(OracleSqlParser.PROCEDURAL, 0); + }; + + REPLICATION() { + return this.getToken(OracleSqlParser.REPLICATION, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSupplemental_plsql_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Logfile_descriptorContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_logfile_descriptor; + } + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + filename = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FilenameContext); + } else { + return this.getTypedRuleContext(FilenameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLogfile_descriptor(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Controlfile_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_controlfile_clauses; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + CONTROLFILE() { + return this.getToken(OracleSqlParser.CONTROLFILE, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + filename() { + return this.getTypedRuleContext(FilenameContext,0); + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + LOGICAL() { + return this.getToken(OracleSqlParser.LOGICAL, 0); + }; + + PHYSICAL() { + return this.getToken(OracleSqlParser.PHYSICAL, 0); + }; + + BACKUP() { + return this.getToken(OracleSqlParser.BACKUP, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + trace_file_clause() { + return this.getTypedRuleContext(Trace_file_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitControlfile_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Trace_file_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_trace_file_clause; + } + + TRACE() { + return this.getToken(OracleSqlParser.TRACE, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + filename() { + return this.getTypedRuleContext(FilenameContext,0); + }; + + RESETLOGS() { + return this.getToken(OracleSqlParser.RESETLOGS, 0); + }; + + NORESETLOGS() { + return this.getToken(OracleSqlParser.NORESETLOGS, 0); + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTrace_file_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Standby_database_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_standby_database_clauses; + } + + activate_standby_db_clause() { + return this.getTypedRuleContext(Activate_standby_db_clauseContext,0); + }; + + maximize_standby_db_clause() { + return this.getTypedRuleContext(Maximize_standby_db_clauseContext,0); + }; + + register_logfile_clause() { + return this.getTypedRuleContext(Register_logfile_clauseContext,0); + }; + + commit_switchover_clause() { + return this.getTypedRuleContext(Commit_switchover_clauseContext,0); + }; + + start_standby_clause() { + return this.getTypedRuleContext(Start_standby_clauseContext,0); + }; + + stop_standby_clause() { + return this.getTypedRuleContext(Stop_standby_clauseContext,0); + }; + + convert_database_clause() { + return this.getTypedRuleContext(Convert_database_clauseContext,0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStandby_database_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Activate_standby_db_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_activate_standby_db_clause; + } + + ACTIVATE() { + return this.getToken(OracleSqlParser.ACTIVATE, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + FINISH() { + return this.getToken(OracleSqlParser.FINISH, 0); + }; + + APPLY() { + return this.getToken(OracleSqlParser.APPLY, 0); + }; + + PHYSICAL() { + return this.getToken(OracleSqlParser.PHYSICAL, 0); + }; + + LOGICAL() { + return this.getToken(OracleSqlParser.LOGICAL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitActivate_standby_db_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Maximize_standby_db_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_maximize_standby_db_clause; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + MAXIMIZE() { + return this.getToken(OracleSqlParser.MAXIMIZE, 0); + }; + + PROTECTION() { + return this.getToken(OracleSqlParser.PROTECTION, 0); + }; + + AVAILABILITY() { + return this.getToken(OracleSqlParser.AVAILABILITY, 0); + }; + + PERFORMANCE() { + return this.getToken(OracleSqlParser.PERFORMANCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMaximize_standby_db_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Register_logfile_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_register_logfile_clause; + } + + REGISTER() { + return this.getToken(OracleSqlParser.REGISTER, 0); + }; + + LOGFILE() { + return this.getToken(OracleSqlParser.LOGFILE, 0); + }; + + PHYSICAL() { + return this.getToken(OracleSqlParser.PHYSICAL, 0); + }; + + LOGICAL() { + return this.getToken(OracleSqlParser.LOGICAL, 0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRegister_logfile_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Commit_switchover_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_commit_switchover_clause; + } + + TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TO); + } else { + return this.getToken(OracleSqlParser.TO, i); + } + }; + + + SWITCHOVER() { + return this.getToken(OracleSqlParser.SWITCHOVER, 0); + }; + + PREPARE() { + return this.getToken(OracleSqlParser.PREPARE, 0); + }; + + COMMIT() { + return this.getToken(OracleSqlParser.COMMIT, 0); + }; + + CANCEL() { + return this.getToken(OracleSqlParser.CANCEL, 0); + }; + + LOGICAL() { + return this.getToken(OracleSqlParser.LOGICAL, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + PRIMARY() { + return this.getToken(OracleSqlParser.PRIMARY, 0); + }; + + SESSION() { + return this.getToken(OracleSqlParser.SESSION, 0); + }; + + SHUTDOWN() { + return this.getToken(OracleSqlParser.SHUTDOWN, 0); + }; + + WAIT() { + return this.getToken(OracleSqlParser.WAIT, 0); + }; + + NOWAIT() { + return this.getToken(OracleSqlParser.NOWAIT, 0); + }; + + PHYSICAL() { + return this.getToken(OracleSqlParser.PHYSICAL, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + WITHOUT() { + return this.getToken(OracleSqlParser.WITHOUT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCommit_switchover_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Start_standby_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_start_standby_clause; + this.scn_value = null; + } + + START() { + return this.getToken(OracleSqlParser.START, 0); + }; + + LOGICAL() { + return this.getToken(OracleSqlParser.LOGICAL, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + APPLY() { + return this.getToken(OracleSqlParser.APPLY, 0); + }; + + IMMEDIATE() { + return this.getToken(OracleSqlParser.IMMEDIATE, 0); + }; + + NODELAY() { + return this.getToken(OracleSqlParser.NODELAY, 0); + }; + + NEW() { + return this.getToken(OracleSqlParser.NEW, 0); + }; + + PRIMARY() { + return this.getToken(OracleSqlParser.PRIMARY, 0); + }; + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + INITIAL() { + return this.getToken(OracleSqlParser.INITIAL, 0); + }; + + SKIP_() { + return this.getToken(OracleSqlParser.SKIP_, 0); + }; + + FAILED() { + return this.getToken(OracleSqlParser.FAILED, 0); + }; + + TRANSACTION() { + return this.getToken(OracleSqlParser.TRANSACTION, 0); + }; + + FINISH() { + return this.getToken(OracleSqlParser.FINISH, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStart_standby_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Stop_standby_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_stop_standby_clause; + } + + LOGICAL() { + return this.getToken(OracleSqlParser.LOGICAL, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + APPLY() { + return this.getToken(OracleSqlParser.APPLY, 0); + }; + + STOP() { + return this.getToken(OracleSqlParser.STOP, 0); + }; + + ABORT() { + return this.getToken(OracleSqlParser.ABORT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStop_standby_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Convert_database_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_convert_database_clause; + } + + CONVERT() { + return this.getToken(OracleSqlParser.CONVERT, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + PHYSICAL() { + return this.getToken(OracleSqlParser.PHYSICAL, 0); + }; + + SNAPSHOT() { + return this.getToken(OracleSqlParser.SNAPSHOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConvert_database_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_settings_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_settings_clause; + } + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + EDITION() { + return this.getToken(OracleSqlParser.EDITION, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + edition_name() { + return this.getTypedRuleContext(Edition_nameContext,0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + BIGFILE() { + return this.getToken(OracleSqlParser.BIGFILE, 0); + }; + + SMALLFILE() { + return this.getToken(OracleSqlParser.SMALLFILE, 0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + TEMPORARY() { + return this.getToken(OracleSqlParser.TEMPORARY, 0); + }; + + tablespace_group_name() { + return this.getTypedRuleContext(Tablespace_group_nameContext,0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + GLOBAL_NAME() { + return this.getToken(OracleSqlParser.GLOBAL_NAME, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + database() { + return this.getTypedRuleContext(DatabaseContext,0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + domain = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DomainContext); + } else { + return this.getTypedRuleContext(DomainContext,i); + } + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + BLOCK() { + return this.getToken(OracleSqlParser.BLOCK, 0); + }; + + CHANGE() { + return this.getToken(OracleSqlParser.CHANGE, 0); + }; + + TRACKING() { + return this.getToken(OracleSqlParser.TRACKING, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + FILE() { + return this.getToken(OracleSqlParser.FILE, 0); + }; + + filename() { + return this.getTypedRuleContext(FilenameContext,0); + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + flashback_mode_clause() { + return this.getTypedRuleContext(Flashback_mode_clauseContext,0); + }; + + set_time_zone_clause() { + return this.getTypedRuleContext(Set_time_zone_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_settings_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Set_time_zone_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_set_time_zone_clause; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + TIMEZONE() { + return this.getToken(OracleSqlParser.TIMEZONE, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSet_time_zone_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Instance_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_instance_clauses; + } + + enable_or_disable() { + return this.getTypedRuleContext(Enable_or_disableContext,0); + }; + + INSTANCE() { + return this.getToken(OracleSqlParser.INSTANCE, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInstance_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Security_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_security_clause; + } + + GUARD() { + return this.getToken(OracleSqlParser.GUARD, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSecurity_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class DomainContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_domain; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDomain(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class DatabaseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_database; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDatabase(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Edition_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_edition_name; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitEdition_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class FilenumberContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_filenumber; + } + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFilenumber(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class FilenameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_filename; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFilename(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Prepare_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_prepare_clause; + this.c = null; + } + + PREPARE() { + return this.getToken(OracleSqlParser.PREPARE, 0); + }; + + MIRROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MIRROR); + } else { + return this.getToken(OracleSqlParser.MIRROR, i); + } + }; + + + COPY() { + return this.getToken(OracleSqlParser.COPY, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + REDUNDANCY() { + return this.getToken(OracleSqlParser.REDUNDANCY, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + UNPROTECTED() { + return this.getToken(OracleSqlParser.UNPROTECTED, 0); + }; + + HIGH() { + return this.getToken(OracleSqlParser.HIGH, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPrepare_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_mirror_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_mirror_clause; + this.mn = null; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + MIRROR() { + return this.getToken(OracleSqlParser.MIRROR, 0); + }; + + COPY() { + return this.getToken(OracleSqlParser.COPY, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_mirror_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lost_write_protectionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lost_write_protection; + } + + LOST() { + return this.getToken(OracleSqlParser.LOST, 0); + }; + + WRITE() { + return this.getToken(OracleSqlParser.WRITE, 0); + }; + + PROTECTION() { + return this.getToken(OracleSqlParser.PROTECTION, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + REMOVE() { + return this.getToken(OracleSqlParser.REMOVE, 0); + }; + + SUSPEND() { + return this.getToken(OracleSqlParser.SUSPEND, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLost_write_protection(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cdb_fleet_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cdb_fleet_clauses; + } + + lead_cdb_clause() { + return this.getTypedRuleContext(Lead_cdb_clauseContext,0); + }; + + lead_cdb_uri_clause() { + return this.getTypedRuleContext(Lead_cdb_uri_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCdb_fleet_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lead_cdb_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lead_cdb_clause; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + LEAD_CDB() { + return this.getToken(OracleSqlParser.LEAD_CDB, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + TRUE() { + return this.getToken(OracleSqlParser.TRUE, 0); + }; + + FALSE() { + return this.getToken(OracleSqlParser.FALSE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLead_cdb_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lead_cdb_uri_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lead_cdb_uri_clause; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + LEAD_CDB_URI() { + return this.getToken(OracleSqlParser.LEAD_CDB_URI, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLead_cdb_uri_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Property_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_property_clauses; + this.qcn = null; + } + + PROPERTY() { + return this.getToken(OracleSqlParser.PROPERTY, 0); + }; + + DEFAULT_CREDENTIAL() { + return this.getToken(OracleSqlParser.DEFAULT_CREDENTIAL, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + REMOVE() { + return this.getToken(OracleSqlParser.REMOVE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitProperty_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Replay_upgrade_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_replay_upgrade_clauses; + } + + UPGRADE() { + return this.getToken(OracleSqlParser.UPGRADE, 0); + }; + + SYNC() { + return this.getToken(OracleSqlParser.SYNC, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + OFF() { + return this.getToken(OracleSqlParser.OFF, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReplay_upgrade_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_database_linkContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_database_link; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + LINK() { + return this.getToken(OracleSqlParser.LINK, 0); + }; + + local_link_name() { + return this.getTypedRuleContext(Local_link_nameContext,0); + }; + + CONNECT() { + return this.getToken(OracleSqlParser.CONNECT, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + user_object_name() { + return this.getTypedRuleContext(User_object_nameContext,0); + }; + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + password_value() { + return this.getTypedRuleContext(Password_valueContext,0); + }; + + link_authentication() { + return this.getTypedRuleContext(Link_authenticationContext,0); + }; + + SHARED() { + return this.getToken(OracleSqlParser.SHARED, 0); + }; + + PUBLIC() { + return this.getToken(OracleSqlParser.PUBLIC, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_database_link(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Password_valueContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_password_value; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + VALUES() { + return this.getToken(OracleSqlParser.VALUES, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPassword_value(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Link_authenticationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_link_authentication; + } + + AUTHENTICATED() { + return this.getToken(OracleSqlParser.AUTHENTICATED, 0); + }; + + BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BY); + } else { + return this.getToken(OracleSqlParser.BY, i); + } + }; + + + user_object_name() { + return this.getTypedRuleContext(User_object_nameContext,0); + }; + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + password_value() { + return this.getTypedRuleContext(Password_valueContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLink_authentication(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_schemaContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_schema; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + SCHEMA() { + return this.getToken(OracleSqlParser.SCHEMA, 0); + }; + + AUTHORIZATION() { + return this.getToken(OracleSqlParser.AUTHORIZATION, 0); + }; + + schema_name() { + return this.getTypedRuleContext(Schema_nameContext,0); + }; + + create_table = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Create_tableContext); + } else { + return this.getTypedRuleContext(Create_tableContext,i); + } + }; + + create_view = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Create_viewContext); + } else { + return this.getTypedRuleContext(Create_viewContext,i); + } + }; + + grant_statement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Grant_statementContext); + } else { + return this.getTypedRuleContext(Grant_statementContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_schema(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_databaseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_database; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + database_name() { + return this.getTypedRuleContext(Database_nameContext,0); + }; + + USER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.USER); + } else { + return this.getToken(OracleSqlParser.USER, i); + } + }; + + + IDENTIFIED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.IDENTIFIED); + } else { + return this.getToken(OracleSqlParser.IDENTIFIED, i); + } + }; + + + BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BY); + } else { + return this.getToken(OracleSqlParser.BY, i); + } + }; + + + password_value = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Password_valueContext); + } else { + return this.getTypedRuleContext(Password_valueContext,i); + } + }; + + CONTROLFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CONTROLFILE); + } else { + return this.getToken(OracleSqlParser.CONTROLFILE, i); + } + }; + + + REUSE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.REUSE); + } else { + return this.getToken(OracleSqlParser.REUSE, i); + } + }; + + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + CHARACTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHARACTER); + } else { + return this.getToken(OracleSqlParser.CHARACTER, i); + } + }; + + + SET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SET); + } else { + return this.getToken(OracleSqlParser.SET, i); + } + }; + + + char_set_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Char_set_nameContext); + } else { + return this.getTypedRuleContext(Char_set_nameContext,i); + } + }; + + DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEFAULT); + } else { + return this.getToken(OracleSqlParser.DEFAULT, i); + } + }; + + + TABLESPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLESPACE); + } else { + return this.getToken(OracleSqlParser.TABLESPACE, i); + } + }; + + + database_logging_clauses = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Database_logging_clausesContext); + } else { + return this.getTypedRuleContext(Database_logging_clausesContext,i); + } + }; + + tablespace_clauses = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Tablespace_clausesContext); + } else { + return this.getTypedRuleContext(Tablespace_clausesContext,i); + } + }; + + set_time_zone_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Set_time_zone_clauseContext); + } else { + return this.getTypedRuleContext(Set_time_zone_clauseContext,i); + } + }; + + USER_DATA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.USER_DATA); + } else { + return this.getToken(OracleSqlParser.USER_DATA, i); + } + }; + + + tablespace_group_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Tablespace_group_nameContext); + } else { + return this.getTypedRuleContext(Tablespace_group_nameContext,i); + } + }; + + DATAFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DATAFILE); + } else { + return this.getToken(OracleSqlParser.DATAFILE, i); + } + }; + + + datafile_tempfile_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Datafile_tempfile_specContext); + } else { + return this.getTypedRuleContext(Datafile_tempfile_specContext,i); + } + }; + + enable_pluggable_database = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Enable_pluggable_databaseContext); + } else { + return this.getTypedRuleContext(Enable_pluggable_databaseContext,i); + } + }; + + SYS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SYS); + } else { + return this.getToken(OracleSqlParser.SYS, i); + } + }; + + + SYSTEM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SYSTEM); + } else { + return this.getToken(OracleSqlParser.SYSTEM, i); + } + }; + + + MAXDATAFILES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MAXDATAFILES); + } else { + return this.getToken(OracleSqlParser.MAXDATAFILES, i); + } + }; + + + MAXINSTANCES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MAXINSTANCES); + } else { + return this.getToken(OracleSqlParser.MAXINSTANCES, i); + } + }; + + + BIGFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BIGFILE); + } else { + return this.getToken(OracleSqlParser.BIGFILE, i); + } + }; + + + SMALLFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SMALLFILE); + } else { + return this.getToken(OracleSqlParser.SMALLFILE, i); + } + }; + + + NATIONAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NATIONAL); + } else { + return this.getToken(OracleSqlParser.NATIONAL, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_database(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Database_logging_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_database_logging_clauses; + } + + LOGFILE() { + return this.getToken(OracleSqlParser.LOGFILE, 0); + }; + + database_logging_sub_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Database_logging_sub_clauseContext); + } else { + return this.getTypedRuleContext(Database_logging_sub_clauseContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + MAXLOGFILES() { + return this.getToken(OracleSqlParser.MAXLOGFILES, 0); + }; + + MAXLOGMEMBERS() { + return this.getToken(OracleSqlParser.MAXLOGMEMBERS, 0); + }; + + MAXLOGHISTORY() { + return this.getToken(OracleSqlParser.MAXLOGHISTORY, 0); + }; + + ARCHIVELOG() { + return this.getToken(OracleSqlParser.ARCHIVELOG, 0); + }; + + NOARCHIVELOG() { + return this.getToken(OracleSqlParser.NOARCHIVELOG, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + LOGGING() { + return this.getToken(OracleSqlParser.LOGGING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDatabase_logging_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Database_logging_sub_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_database_logging_sub_clause; + } + + file_specification() { + return this.getTypedRuleContext(File_specificationContext,0); + }; + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDatabase_logging_sub_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Tablespace_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tablespace_clauses; + } + + EXTENT() { + return this.getToken(OracleSqlParser.EXTENT, 0); + }; + + MANAGEMENT() { + return this.getToken(OracleSqlParser.MANAGEMENT, 0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + file_specification = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(File_specificationContext); + } else { + return this.getTypedRuleContext(File_specificationContext,i); + } + }; + + SYSAUX() { + return this.getToken(OracleSqlParser.SYSAUX, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + default_tablespace() { + return this.getTypedRuleContext(Default_tablespaceContext,0); + }; + + default_temp_tablespace() { + return this.getTypedRuleContext(Default_temp_tablespaceContext,0); + }; + + undo_tablespace() { + return this.getTypedRuleContext(Undo_tablespaceContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTablespace_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Enable_pluggable_databaseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_enable_pluggable_database; + } + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + PLUGGABLE() { + return this.getToken(OracleSqlParser.PLUGGABLE, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + SEED() { + return this.getToken(OracleSqlParser.SEED, 0); + }; + + undo_mode_clause() { + return this.getTypedRuleContext(Undo_mode_clauseContext,0); + }; + + file_name_convert() { + return this.getTypedRuleContext(File_name_convertContext,0); + }; + + SYSTEM() { + return this.getToken(OracleSqlParser.SYSTEM, 0); + }; + + tablespace_datafile_clauses = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Tablespace_datafile_clausesContext); + } else { + return this.getTypedRuleContext(Tablespace_datafile_clausesContext,i); + } + }; + + SYSAUX() { + return this.getToken(OracleSqlParser.SYSAUX, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitEnable_pluggable_database(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class File_name_convertContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_file_name_convert; + } + + FILE_NAME_CONVERT() { + return this.getToken(OracleSqlParser.FILE_NAME_CONVERT, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + filename_convert_sub_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Filename_convert_sub_clauseContext); + } else { + return this.getTypedRuleContext(Filename_convert_sub_clauseContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFile_name_convert(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Filename_convert_sub_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_filename_convert_sub_clause; + } + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFilename_convert_sub_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Tablespace_datafile_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tablespace_datafile_clauses; + } + + DATAFILES() { + return this.getToken(OracleSqlParser.DATAFILES, 0); + }; + + SIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SIZE); + } else { + return this.getToken(OracleSqlParser.SIZE, i); + } + }; + + + size_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Size_clauseContext); + } else { + return this.getTypedRuleContext(Size_clauseContext,i); + } + }; + + autoextend_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Autoextend_clauseContext); + } else { + return this.getTypedRuleContext(Autoextend_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTablespace_datafile_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Undo_mode_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_undo_mode_clause; + } + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + UNDO() { + return this.getToken(OracleSqlParser.UNDO, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + OFF() { + return this.getToken(OracleSqlParser.OFF, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUndo_mode_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_tablespaceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_tablespace; + } + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + datafile_tempfile_spec() { + return this.getTypedRuleContext(Datafile_tempfile_specContext,0); + }; + + extent_management_clause() { + return this.getTypedRuleContext(Extent_management_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_tablespace(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_temp_tablespaceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_temp_tablespace; + } + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + TEMPORARY() { + return this.getToken(OracleSqlParser.TEMPORARY, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + LEAF() { + return this.getToken(OracleSqlParser.LEAF, 0); + }; + + TEMPFILE() { + return this.getToken(OracleSqlParser.TEMPFILE, 0); + }; + + file_specification = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(File_specificationContext); + } else { + return this.getTypedRuleContext(File_specificationContext,i); + } + }; + + extent_management_clause() { + return this.getTypedRuleContext(Extent_management_clauseContext,0); + }; + + BIGFILE() { + return this.getToken(OracleSqlParser.BIGFILE, 0); + }; + + SMALLFILE() { + return this.getToken(OracleSqlParser.SMALLFILE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_temp_tablespace(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Undo_tablespaceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_undo_tablespace; + } + + UNDO() { + return this.getToken(OracleSqlParser.UNDO, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + file_specification = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(File_specificationContext); + } else { + return this.getTypedRuleContext(File_specificationContext,i); + } + }; + + BIGFILE() { + return this.getToken(OracleSqlParser.BIGFILE, 0); + }; + + SMALLFILE() { + return this.getToken(OracleSqlParser.SMALLFILE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUndo_tablespace(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_databaseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_database; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + BACKUPS() { + return this.getToken(OracleSqlParser.BACKUPS, 0); + }; + + NOPROMPT() { + return this.getToken(OracleSqlParser.NOPROMPT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_database(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Create_database_linkContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_create_database_link; + } + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + LINK() { + return this.getToken(OracleSqlParser.LINK, 0); + }; + + link_name() { + return this.getTypedRuleContext(Link_nameContext,0); + }; + + SHARED() { + return this.getToken(OracleSqlParser.SHARED, 0); + }; + + PUBLIC() { + return this.getToken(OracleSqlParser.PUBLIC, 0); + }; + + CONNECT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CONNECT); + } else { + return this.getToken(OracleSqlParser.CONNECT, i); + } + }; + + + TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TO); + } else { + return this.getToken(OracleSqlParser.TO, i); + } + }; + + + link_authentication = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Link_authenticationContext); + } else { + return this.getTypedRuleContext(Link_authenticationContext,i); + } + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + CURRENT_USER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CURRENT_USER); + } else { + return this.getToken(OracleSqlParser.CURRENT_USER, i); + } + }; + + + user_object_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(User_object_nameContext); + } else { + return this.getTypedRuleContext(User_object_nameContext,i); + } + }; + + IDENTIFIED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.IDENTIFIED); + } else { + return this.getToken(OracleSqlParser.IDENTIFIED, i); + } + }; + + + BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BY); + } else { + return this.getToken(OracleSqlParser.BY, i); + } + }; + + + password_value = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Password_valueContext); + } else { + return this.getTypedRuleContext(Password_valueContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCreate_database_link(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_database_linkContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_database_link; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + LINK() { + return this.getToken(OracleSqlParser.LINK, 0); + }; + + link_name() { + return this.getTypedRuleContext(Link_nameContext,0); + }; + + PUBLIC() { + return this.getToken(OracleSqlParser.PUBLIC, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_database_link(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_tablespace_setContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_tablespace_set; + this.tss = null; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + alter_tablespace_attrs() { + return this.getTypedRuleContext(Alter_tablespace_attrsContext,0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_tablespace_set(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_tablespace_attrsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_tablespace_attrs; + this.nts = null; + } + + default_tablespace_params() { + return this.getTypedRuleContext(Default_tablespace_paramsContext,0); + }; + + MINIMUM() { + return this.getToken(OracleSqlParser.MINIMUM, 0); + }; + + EXTENT() { + return this.getToken(OracleSqlParser.EXTENT, 0); + }; + + size_clause() { + return this.getTypedRuleContext(Size_clauseContext,0); + }; + + RESIZE() { + return this.getToken(OracleSqlParser.RESIZE, 0); + }; + + COALESCE() { + return this.getToken(OracleSqlParser.COALESCE, 0); + }; + + SHRINK() { + return this.getToken(OracleSqlParser.SHRINK, 0); + }; + + SPACE_KEYWORD() { + return this.getToken(OracleSqlParser.SPACE_KEYWORD, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + BACKUP() { + return this.getToken(OracleSqlParser.BACKUP, 0); + }; + + BEGIN() { + return this.getToken(OracleSqlParser.BEGIN, 0); + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + datafile_tempfile_clauses() { + return this.getTypedRuleContext(Datafile_tempfile_clausesContext,0); + }; + + tablespace_logging_clauses() { + return this.getTypedRuleContext(Tablespace_logging_clausesContext,0); + }; + + tablespace_group_clause() { + return this.getTypedRuleContext(Tablespace_group_clauseContext,0); + }; + + tablespace_state_clauses() { + return this.getTypedRuleContext(Tablespace_state_clausesContext,0); + }; + + autoextend_clause() { + return this.getTypedRuleContext(Autoextend_clauseContext,0); + }; + + flashback_mode_clause() { + return this.getTypedRuleContext(Flashback_mode_clauseContext,0); + }; + + tablespace_retention_clause() { + return this.getTypedRuleContext(Tablespace_retention_clauseContext,0); + }; + + alter_tablespace_encryption() { + return this.getTypedRuleContext(Alter_tablespace_encryptionContext,0); + }; + + lost_write_protection() { + return this.getTypedRuleContext(Lost_write_protectionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_tablespace_attrs(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_tablespace_encryptionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_tablespace_encryption; + } + + ENCRYPTION() { + return this.getToken(OracleSqlParser.ENCRYPTION, 0); + }; + + OFFLINE() { + return this.getToken(OracleSqlParser.OFFLINE, 0); + }; + + ONLINE() { + return this.getToken(OracleSqlParser.ONLINE, 0); + }; + + FINISH() { + return this.getToken(OracleSqlParser.FINISH, 0); + }; + + ENCRYPT() { + return this.getToken(OracleSqlParser.ENCRYPT, 0); + }; + + REKEY() { + return this.getToken(OracleSqlParser.REKEY, 0); + }; + + DECRYPT() { + return this.getToken(OracleSqlParser.DECRYPT, 0); + }; + + ts_file_name_convert() { + return this.getTypedRuleContext(Ts_file_name_convertContext,0); + }; + + tablespace_encryption_spec() { + return this.getTypedRuleContext(Tablespace_encryption_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_tablespace_encryption(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Ts_file_name_convertContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_ts_file_name_convert; + } + + FILE_NAME_CONVERT() { + return this.getToken(OracleSqlParser.FILE_NAME_CONVERT, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTs_file_name_convert(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_roleContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_role; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + ROLE() { + return this.getToken(OracleSqlParser.ROLE, 0); + }; + + role_name() { + return this.getTypedRuleContext(Role_nameContext,0); + }; + + role_identified_clause() { + return this.getTypedRuleContext(Role_identified_clauseContext,0); + }; + + container_clause() { + return this.getTypedRuleContext(Container_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_role(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Role_identified_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_role_identified_clause; + } + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + EXTERNALLY() { + return this.getToken(OracleSqlParser.EXTERNALLY, 0); + }; + + GLOBALLY() { + return this.getToken(OracleSqlParser.GLOBALLY, 0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRole_identified_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_tableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_table; + } + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + TABLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLE); + } else { + return this.getToken(OracleSqlParser.TABLE, i); + } + }; + + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + alter_table_properties() { + return this.getTypedRuleContext(Alter_table_propertiesContext,0); + }; + + constraint_clauses() { + return this.getTypedRuleContext(Constraint_clausesContext,0); + }; + + column_clauses() { + return this.getTypedRuleContext(Column_clausesContext,0); + }; + + alter_table_partitioning() { + return this.getTypedRuleContext(Alter_table_partitioningContext,0); + }; + + move_table_clause() { + return this.getTypedRuleContext(Move_table_clauseContext,0); + }; + + memoptimize_read_write_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Memoptimize_read_write_clauseContext); + } else { + return this.getTypedRuleContext(Memoptimize_read_write_clauseContext,i); + } + }; + + enable_disable_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Enable_disable_clauseContext); + } else { + return this.getTypedRuleContext(Enable_disable_clauseContext,i); + } + }; + + enable_or_disable = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Enable_or_disableContext); + } else { + return this.getTypedRuleContext(Enable_or_disableContext,i); + } + }; + + LOCK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LOCK); + } else { + return this.getToken(OracleSqlParser.LOCK, i); + } + }; + + + ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ALL); + } else { + return this.getToken(OracleSqlParser.ALL, i); + } + }; + + + TRIGGERS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TRIGGERS); + } else { + return this.getToken(OracleSqlParser.TRIGGERS, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_table(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Memoptimize_read_write_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_memoptimize_read_write_clause; + } + + MEMOPTIMIZE() { + return this.getToken(OracleSqlParser.MEMOPTIMIZE, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + WRITE() { + return this.getToken(OracleSqlParser.WRITE, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMemoptimize_read_write_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_table_propertiesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_table_properties; + } + + alter_table_properties_1() { + return this.getTypedRuleContext(Alter_table_properties_1Context,0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + shrink_clause() { + return this.getTypedRuleContext(Shrink_clauseContext,0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + WRITE() { + return this.getToken(OracleSqlParser.WRITE, 0); + }; + + REKEY() { + return this.getToken(OracleSqlParser.REKEY, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + annotations_clause() { + return this.getTypedRuleContext(Annotations_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_table_properties(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_table_partitioningContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_table_partitioning; + } + + add_table_partition() { + return this.getTypedRuleContext(Add_table_partitionContext,0); + }; + + drop_table_partition() { + return this.getTypedRuleContext(Drop_table_partitionContext,0); + }; + + merge_table_partition() { + return this.getTypedRuleContext(Merge_table_partitionContext,0); + }; + + modify_table_partition() { + return this.getTypedRuleContext(Modify_table_partitionContext,0); + }; + + split_table_partition() { + return this.getTypedRuleContext(Split_table_partitionContext,0); + }; + + truncate_table_partition() { + return this.getTypedRuleContext(Truncate_table_partitionContext,0); + }; + + exchange_table_partition() { + return this.getTypedRuleContext(Exchange_table_partitionContext,0); + }; + + coalesce_table_partition() { + return this.getTypedRuleContext(Coalesce_table_partitionContext,0); + }; + + alter_interval_partition() { + return this.getTypedRuleContext(Alter_interval_partitionContext,0); + }; + + move_table_partition() { + return this.getTypedRuleContext(Move_table_partitionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_table_partitioning(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_table_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_table_partition; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + range_partition_desc() { + return this.getTypedRuleContext(Range_partition_descContext,0); + }; + + list_partition_desc() { + return this.getTypedRuleContext(List_partition_descContext,0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + key_compression() { + return this.getTypedRuleContext(Key_compressionContext,0); + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_table_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_table_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_table_partition; + } + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + partition_extended_names() { + return this.getTypedRuleContext(Partition_extended_namesContext,0); + }; + + subpartition_extended_names() { + return this.getTypedRuleContext(Subpartition_extended_namesContext,0); + }; + + update_index_clauses() { + return this.getTypedRuleContext(Update_index_clausesContext,0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_table_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Merge_table_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_merge_table_partition; + } + + MERGE() { + return this.getToken(OracleSqlParser.MERGE, 0); + }; + + PARTITION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PARTITION); + } else { + return this.getToken(OracleSqlParser.PARTITION, i); + } + }; + + + partition_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partition_nameContext); + } else { + return this.getTypedRuleContext(Partition_nameContext,i); + } + }; + + AND() { + return this.getToken(OracleSqlParser.AND, 0); + }; + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMerge_table_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_table_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_table_partition; + } + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + range_partitions() { + return this.getTypedRuleContext(Range_partitionsContext,0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + list_values_clause() { + return this.getTypedRuleContext(List_values_clauseContext,0); + }; + + ADD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ADD); + } else { + return this.getToken(OracleSqlParser.ADD, i); + } + }; + + + range_subpartition_desc() { + return this.getTypedRuleContext(Range_subpartition_descContext,0); + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + INDEXES() { + return this.getToken(OracleSqlParser.INDEXES, 0); + }; + + shrink_clause() { + return this.getTypedRuleContext(Shrink_clauseContext,0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + REBUILD() { + return this.getToken(OracleSqlParser.REBUILD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_table_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Split_table_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_split_table_partition; + } + + SPLIT() { + return this.getToken(OracleSqlParser.SPLIT, 0); + }; + + partition_extended_names() { + return this.getTypedRuleContext(Partition_extended_namesContext,0); + }; + + AT() { + return this.getToken(OracleSqlParser.AT, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + literal = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(LiteralContext); + } else { + return this.getTypedRuleContext(LiteralContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + range_partition_desc = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Range_partition_descContext); + } else { + return this.getTypedRuleContext(Range_partition_descContext,i); + } + }; + + update_global_index_clause() { + return this.getTypedRuleContext(Update_global_index_clauseContext,0); + }; + + update_index_clauses() { + return this.getTypedRuleContext(Update_index_clausesContext,0); + }; + + ONLINE() { + return this.getToken(OracleSqlParser.ONLINE, 0); + }; + + list_partition_desc = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(List_partition_descContext); + } else { + return this.getTypedRuleContext(List_partition_descContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSplit_table_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Truncate_table_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_truncate_table_partition; + } + + TRUNCATE() { + return this.getToken(OracleSqlParser.TRUNCATE, 0); + }; + + partition_extended_names() { + return this.getTypedRuleContext(Partition_extended_namesContext,0); + }; + + subpartition_extended_names() { + return this.getTypedRuleContext(Subpartition_extended_namesContext,0); + }; + + STORAGE() { + return this.getToken(OracleSqlParser.STORAGE, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + update_index_clauses() { + return this.getTypedRuleContext(Update_index_clausesContext,0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTruncate_table_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Exchange_table_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_exchange_table_partition; + } + + EXCHANGE() { + return this.getToken(OracleSqlParser.EXCHANGE, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + partition_name() { + return this.getTypedRuleContext(Partition_nameContext,0); + }; + + WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.WITH); + } else { + return this.getToken(OracleSqlParser.WITH, i); + } + }; + + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + INDEXES() { + return this.getToken(OracleSqlParser.INDEXES, 0); + }; + + VALIDATION() { + return this.getToken(OracleSqlParser.VALIDATION, 0); + }; + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + EXCLUDING() { + return this.getToken(OracleSqlParser.EXCLUDING, 0); + }; + + WITHOUT() { + return this.getToken(OracleSqlParser.WITHOUT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExchange_table_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Coalesce_table_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_coalesce_table_partition; + } + + COALESCE() { + return this.getToken(OracleSqlParser.COALESCE, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + allow_or_disallow() { + return this.getTypedRuleContext(Allow_or_disallowContext,0); + }; + + CLUSTERING() { + return this.getToken(OracleSqlParser.CLUSTERING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCoalesce_table_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_interval_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_interval_partition; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + INTERVAL() { + return this.getToken(OracleSqlParser.INTERVAL, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + constant() { + return this.getTypedRuleContext(ConstantContext,0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_interval_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Move_table_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_move_table_partition; + } + + MOVE() { + return this.getToken(OracleSqlParser.MOVE, 0); + }; + + partition_extended_names() { + return this.getTypedRuleContext(Partition_extended_namesContext,0); + }; + + table_partition_description() { + return this.getTypedRuleContext(Table_partition_descriptionContext,0); + }; + + subpartition_extended_names() { + return this.getTypedRuleContext(Subpartition_extended_namesContext,0); + }; + + filter_condition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Filter_conditionContext); + } else { + return this.getTypedRuleContext(Filter_conditionContext,i); + } + }; + + update_index_clauses = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Update_index_clausesContext); + } else { + return this.getTypedRuleContext(Update_index_clausesContext,i); + } + }; + + parallel_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parallel_clauseContext); + } else { + return this.getTypedRuleContext(Parallel_clauseContext,i); + } + }; + + allow_or_disallow = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Allow_or_disallowContext); + } else { + return this.getTypedRuleContext(Allow_or_disallowContext,i); + } + }; + + CLUSTERING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CLUSTERING); + } else { + return this.getToken(OracleSqlParser.CLUSTERING, i); + } + }; + + + ONLINE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ONLINE); + } else { + return this.getToken(OracleSqlParser.ONLINE, i); + } + }; + + + MAPPING() { + return this.getToken(OracleSqlParser.MAPPING, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + indexing_clause() { + return this.getTypedRuleContext(Indexing_clauseContext,0); + }; + + partitioning_storage_clause() { + return this.getTypedRuleContext(Partitioning_storage_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMove_table_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Filter_conditionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_filter_condition; + } + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + ROWS() { + return this.getToken(OracleSqlParser.ROWS, 0); + }; + + where_clause() { + return this.getTypedRuleContext(Where_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFilter_condition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Partition_extended_namesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_partition_extended_names; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + PARTITIONS() { + return this.getToken(OracleSqlParser.PARTITIONS, 0); + }; + + partition_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partition_nameContext); + } else { + return this.getTypedRuleContext(Partition_nameContext,i); + } + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + partition_key_value = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partition_key_valueContext); + } else { + return this.getTypedRuleContext(Partition_key_valueContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPartition_extended_names(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subpartition_extended_namesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subpartition_extended_names; + } + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + SUBPARTITIONS() { + return this.getToken(OracleSqlParser.SUBPARTITIONS, 0); + }; + + partition_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Partition_nameContext); + } else { + return this.getTypedRuleContext(Partition_nameContext,i); + } + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + subpartition_key_value = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Subpartition_key_valueContext); + } else { + return this.getTypedRuleContext(Subpartition_key_valueContext,i); + } + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + INDEXES() { + return this.getToken(OracleSqlParser.INDEXES, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubpartition_extended_names(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_table_properties_1Context extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_table_properties_1; + } + + physical_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Physical_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Physical_attributes_clauseContext,i); + } + }; + + logging_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logging_clauseContext); + } else { + return this.getTypedRuleContext(Logging_clauseContext,i); + } + }; + + table_compression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_compressionContext); + } else { + return this.getTypedRuleContext(Table_compressionContext,i); + } + }; + + inmemory_table_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inmemory_table_clauseContext); + } else { + return this.getTypedRuleContext(Inmemory_table_clauseContext,i); + } + }; + + supplemental_table_logging = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Supplemental_table_loggingContext); + } else { + return this.getTypedRuleContext(Supplemental_table_loggingContext,i); + } + }; + + allocate_extent_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Allocate_extent_clauseContext); + } else { + return this.getTypedRuleContext(Allocate_extent_clauseContext,i); + } + }; + + deallocate_unused_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Deallocate_unused_clauseContext); + } else { + return this.getTypedRuleContext(Deallocate_unused_clauseContext,i); + } + }; + + RESULT_CACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RESULT_CACHE); + } else { + return this.getToken(OracleSqlParser.RESULT_CACHE, i); + } + }; + + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + MODE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MODE); + } else { + return this.getToken(OracleSqlParser.MODE, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + upgrade_table_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Upgrade_table_clauseContext); + } else { + return this.getTypedRuleContext(Upgrade_table_clauseContext,i); + } + }; + + records_per_block_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Records_per_block_clauseContext); + } else { + return this.getTypedRuleContext(Records_per_block_clauseContext,i); + } + }; + + parallel_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parallel_clauseContext); + } else { + return this.getTypedRuleContext(Parallel_clauseContext,i); + } + }; + + row_movement_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Row_movement_clauseContext); + } else { + return this.getTypedRuleContext(Row_movement_clauseContext,i); + } + }; + + logical_replication_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logical_replication_clauseContext); + } else { + return this.getTypedRuleContext(Logical_replication_clauseContext,i); + } + }; + + flashback_archive_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Flashback_archive_clauseContext); + } else { + return this.getTypedRuleContext(Flashback_archive_clauseContext,i); + } + }; + + alter_iot_clauses() { + return this.getTypedRuleContext(Alter_iot_clausesContext,0); + }; + + CACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CACHE); + } else { + return this.getToken(OracleSqlParser.CACHE, i); + } + }; + + + NOCACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NOCACHE); + } else { + return this.getToken(OracleSqlParser.NOCACHE, i); + } + }; + + + DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEFAULT); + } else { + return this.getToken(OracleSqlParser.DEFAULT, i); + } + }; + + + FORCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FORCE); + } else { + return this.getToken(OracleSqlParser.FORCE, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_table_properties_1(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_iot_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_iot_clauses; + } + + index_org_table_clause() { + return this.getTypedRuleContext(Index_org_table_clauseContext,0); + }; + + alter_overflow_clause() { + return this.getTypedRuleContext(Alter_overflow_clauseContext,0); + }; + + alter_mapping_table_clause() { + return this.getTypedRuleContext(Alter_mapping_table_clauseContext,0); + }; + + COALESCE() { + return this.getToken(OracleSqlParser.COALESCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_iot_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_mapping_table_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_mapping_table_clause; + } + + MAPPING() { + return this.getToken(OracleSqlParser.MAPPING, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + allocate_extent_clause() { + return this.getTypedRuleContext(Allocate_extent_clauseContext,0); + }; + + deallocate_unused_clause() { + return this.getTypedRuleContext(Deallocate_unused_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_mapping_table_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Alter_overflow_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_alter_overflow_clause; + } + + add_overflow_clause() { + return this.getTypedRuleContext(Add_overflow_clauseContext,0); + }; + + OVERFLOW_() { + return this.getToken(OracleSqlParser.OVERFLOW_, 0); + }; + + segment_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Segment_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Segment_attributes_clauseContext,i); + } + }; + + allocate_extent_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Allocate_extent_clauseContext); + } else { + return this.getTypedRuleContext(Allocate_extent_clauseContext,i); + } + }; + + shrink_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Shrink_clauseContext); + } else { + return this.getTypedRuleContext(Shrink_clauseContext,i); + } + }; + + deallocate_unused_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Deallocate_unused_clauseContext); + } else { + return this.getTypedRuleContext(Deallocate_unused_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAlter_overflow_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_overflow_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_overflow_clause; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + OVERFLOW_() { + return this.getToken(OracleSqlParser.OVERFLOW_, 0); + }; + + segment_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Segment_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Segment_attributes_clauseContext,i); + } + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + PARTITION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PARTITION); + } else { + return this.getToken(OracleSqlParser.PARTITION, i); + } + }; + + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_overflow_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Update_index_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_update_index_clauses; + } + + update_global_index_clause() { + return this.getTypedRuleContext(Update_global_index_clauseContext,0); + }; + + update_all_indexes_clause() { + return this.getTypedRuleContext(Update_all_indexes_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUpdate_index_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Update_global_index_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_update_global_index_clause; + } + + GLOBAL() { + return this.getToken(OracleSqlParser.GLOBAL, 0); + }; + + INDEXES() { + return this.getToken(OracleSqlParser.INDEXES, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + INVALIDATE() { + return this.getToken(OracleSqlParser.INVALIDATE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUpdate_global_index_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Update_all_indexes_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_update_all_indexes_clause; + } + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + INDEXES() { + return this.getToken(OracleSqlParser.INDEXES, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + update_all_indexes_index_clause() { + return this.getTypedRuleContext(Update_all_indexes_index_clauseContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUpdate_all_indexes_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Update_all_indexes_index_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_update_all_indexes_index_clause; + } + + index_name() { + return this.getTypedRuleContext(Index_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + update_index_partition() { + return this.getTypedRuleContext(Update_index_partitionContext,0); + }; + + update_index_subpartition() { + return this.getTypedRuleContext(Update_index_subpartitionContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + update_all_indexes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Update_all_indexes_clauseContext); + } else { + return this.getTypedRuleContext(Update_all_indexes_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUpdate_all_indexes_index_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Update_index_partitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_update_index_partition; + } + + index_partition_description() { + return this.getTypedRuleContext(Index_partition_descriptionContext,0); + }; + + index_subpartition_clause() { + return this.getTypedRuleContext(Index_subpartition_clauseContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + update_index_partition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Update_index_partitionContext); + } else { + return this.getTypedRuleContext(Update_index_partitionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUpdate_index_partition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Update_index_subpartitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_update_index_subpartition; + } + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + subpartition_name() { + return this.getTypedRuleContext(Subpartition_nameContext,0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + tablespace() { + return this.getTypedRuleContext(TablespaceContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + update_index_subpartition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Update_index_subpartitionContext); + } else { + return this.getTypedRuleContext(Update_index_subpartitionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUpdate_index_subpartition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Enable_disable_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_enable_disable_clause; + } + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + PRIMARY() { + return this.getToken(OracleSqlParser.PRIMARY, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + constraint_name() { + return this.getTypedRuleContext(Constraint_nameContext,0); + }; + + using_index_clause() { + return this.getTypedRuleContext(Using_index_clauseContext,0); + }; + + exceptions_clause() { + return this.getTypedRuleContext(Exceptions_clauseContext,0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + VALIDATE() { + return this.getToken(OracleSqlParser.VALIDATE, 0); + }; + + NOVALIDATE() { + return this.getToken(OracleSqlParser.NOVALIDATE, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitEnable_disable_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Using_index_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_using_index_clause; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + index_name() { + return this.getTypedRuleContext(Index_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + create_index() { + return this.getTypedRuleContext(Create_indexContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + index_properties() { + return this.getTypedRuleContext(Index_propertiesContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUsing_index_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Index_attributesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_index_attributes; + } + + physical_attributes_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Physical_attributes_clauseContext); + } else { + return this.getTypedRuleContext(Physical_attributes_clauseContext,i); + } + }; + + logging_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logging_clauseContext); + } else { + return this.getTypedRuleContext(Logging_clauseContext,i); + } + }; + + TABLESPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.TABLESPACE); + } else { + return this.getToken(OracleSqlParser.TABLESPACE, i); + } + }; + + + key_compression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Key_compressionContext); + } else { + return this.getTypedRuleContext(Key_compressionContext,i); + } + }; + + sort_or_nosort = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sort_or_nosortContext); + } else { + return this.getTypedRuleContext(Sort_or_nosortContext,i); + } + }; + + REVERSE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.REVERSE); + } else { + return this.getToken(OracleSqlParser.REVERSE, i); + } + }; + + + visible_or_invisible = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Visible_or_invisibleContext); + } else { + return this.getTypedRuleContext(Visible_or_invisibleContext,i); + } + }; + + parallel_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parallel_clauseContext); + } else { + return this.getTypedRuleContext(Parallel_clauseContext,i); + } + }; + + tablespace = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablespaceContext); + } else { + return this.getTypedRuleContext(TablespaceContext,i); + } + }; + + DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEFAULT); + } else { + return this.getToken(OracleSqlParser.DEFAULT, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndex_attributes(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sort_or_nosortContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sort_or_nosort; + } + + SORT() { + return this.getToken(OracleSqlParser.SORT, 0); + }; + + NOSORT() { + return this.getToken(OracleSqlParser.NOSORT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSort_or_nosort(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Exceptions_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_exceptions_clause; + } + + EXCEPTIONS() { + return this.getToken(OracleSqlParser.EXCEPTIONS, 0); + }; + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExceptions_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Move_table_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_move_table_clause; + } + + MOVE() { + return this.getToken(OracleSqlParser.MOVE, 0); + }; + + ONLINE() { + return this.getToken(OracleSqlParser.ONLINE, 0); + }; + + segment_attributes_clause() { + return this.getTypedRuleContext(Segment_attributes_clauseContext,0); + }; + + table_compression() { + return this.getTypedRuleContext(Table_compressionContext,0); + }; + + index_org_table_clause() { + return this.getTypedRuleContext(Index_org_table_clauseContext,0); + }; + + lob_storage_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_storage_clauseContext); + } else { + return this.getTypedRuleContext(Lob_storage_clauseContext,i); + } + }; + + varray_col_properties = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Varray_col_propertiesContext); + } else { + return this.getTypedRuleContext(Varray_col_propertiesContext,i); + } + }; + + parallel_clause() { + return this.getTypedRuleContext(Parallel_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMove_table_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Index_org_table_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_index_org_table_clause; + } + + mapping_table_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Mapping_table_clauseContext); + } else { + return this.getTypedRuleContext(Mapping_table_clauseContext,i); + } + }; + + PCTTHRESHOLD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PCTTHRESHOLD); + } else { + return this.getToken(OracleSqlParser.PCTTHRESHOLD, i); + } + }; + + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + key_compression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Key_compressionContext); + } else { + return this.getTypedRuleContext(Key_compressionContext,i); + } + }; + + index_org_overflow_clause() { + return this.getTypedRuleContext(Index_org_overflow_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndex_org_table_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Mapping_table_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_mapping_table_clause; + } + + MAPPING() { + return this.getToken(OracleSqlParser.MAPPING, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + NOMAPPING() { + return this.getToken(OracleSqlParser.NOMAPPING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMapping_table_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Key_compressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_key_compression; + } + + NOCOMPRESS() { + return this.getToken(OracleSqlParser.NOCOMPRESS, 0); + }; + + COMPRESS() { + return this.getToken(OracleSqlParser.COMPRESS, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitKey_compression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Index_org_overflow_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_index_org_overflow_clause; + } + + OVERFLOW_() { + return this.getToken(OracleSqlParser.OVERFLOW_, 0); + }; + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + segment_attributes_clause() { + return this.getTypedRuleContext(Segment_attributes_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndex_org_overflow_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Column_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_column_clauses; + } + + add_modify_drop_column_clauses() { + return this.getTypedRuleContext(Add_modify_drop_column_clausesContext,0); + }; + + rename_column_clause() { + return this.getTypedRuleContext(Rename_column_clauseContext,0); + }; + + modify_collection_retrieval() { + return this.getTypedRuleContext(Modify_collection_retrievalContext,0); + }; + + modify_lob_storage_clause() { + return this.getTypedRuleContext(Modify_lob_storage_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitColumn_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_collection_retrievalContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_collection_retrieval; + } + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + NESTED() { + return this.getToken(OracleSqlParser.NESTED, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + collection_item() { + return this.getTypedRuleContext(Collection_itemContext,0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + LOCATOR() { + return this.getToken(OracleSqlParser.LOCATOR, 0); + }; + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_collection_retrieval(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Collection_itemContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_collection_item; + } + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCollection_item(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Rename_column_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_rename_column_clause; + } + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + old_column_name() { + return this.getTypedRuleContext(Old_column_nameContext,0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + new_column_name() { + return this.getTypedRuleContext(New_column_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRename_column_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Old_column_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_old_column_name; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOld_column_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class New_column_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_new_column_name; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNew_column_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_modify_drop_column_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_modify_drop_column_clauses; + } + + constraint_clauses = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Constraint_clausesContext); + } else { + return this.getTypedRuleContext(Constraint_clausesContext,i); + } + }; + + add_column_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Add_column_clauseContext); + } else { + return this.getTypedRuleContext(Add_column_clauseContext,i); + } + }; + + modify_column_clauses = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Modify_column_clausesContext); + } else { + return this.getTypedRuleContext(Modify_column_clausesContext,i); + } + }; + + drop_column_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Drop_column_clauseContext); + } else { + return this.getTypedRuleContext(Drop_column_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_modify_drop_column_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_column_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_column_clause; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + UNUSED() { + return this.getToken(OracleSqlParser.UNUSED, 0); + }; + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + CASCADE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CASCADE); + } else { + return this.getToken(OracleSqlParser.CASCADE, i); + } + }; + + + CONSTRAINTS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CONSTRAINTS); + } else { + return this.getToken(OracleSqlParser.CONSTRAINTS, i); + } + }; + + + INVALIDATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.INVALIDATE); + } else { + return this.getToken(OracleSqlParser.INVALIDATE, i); + } + }; + + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + CHECKPOINT() { + return this.getToken(OracleSqlParser.CHECKPOINT, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + COLUMNS() { + return this.getToken(OracleSqlParser.COLUMNS, 0); + }; + + CONTINUE() { + return this.getToken(OracleSqlParser.CONTINUE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_column_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_column_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_column_clauses; + } + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + modify_col_properties = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Modify_col_propertiesContext); + } else { + return this.getTypedRuleContext(Modify_col_propertiesContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + modify_col_visibility = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Modify_col_visibilityContext); + } else { + return this.getTypedRuleContext(Modify_col_visibilityContext,i); + } + }; + + modify_col_substitutable() { + return this.getTypedRuleContext(Modify_col_substitutableContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_column_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_col_propertiesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_col_properties; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + datatype() { + return this.getTypedRuleContext(DatatypeContext,0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + ENCRYPT() { + return this.getToken(OracleSqlParser.ENCRYPT, 0); + }; + + encryption_spec() { + return this.getTypedRuleContext(Encryption_specContext,0); + }; + + DECRYPT() { + return this.getToken(OracleSqlParser.DECRYPT, 0); + }; + + inline_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inline_constraintContext); + } else { + return this.getTypedRuleContext(Inline_constraintContext,i); + } + }; + + lob_storage_clause() { + return this.getTypedRuleContext(Lob_storage_clauseContext,0); + }; + + annotations_clause() { + return this.getTypedRuleContext(Annotations_clauseContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_col_properties(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_col_visibilityContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_col_visibility; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + VISIBLE() { + return this.getToken(OracleSqlParser.VISIBLE, 0); + }; + + INVISIBLE() { + return this.getToken(OracleSqlParser.INVISIBLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_col_visibility(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_col_substitutableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_col_substitutable; + } + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + SUBSTITUTABLE() { + return this.getToken(OracleSqlParser.SUBSTITUTABLE, 0); + }; + + AT() { + return this.getToken(OracleSqlParser.AT, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + LEVELS() { + return this.getToken(OracleSqlParser.LEVELS, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_col_substitutable(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_column_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_column_clause; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + column_properties() { + return this.getTypedRuleContext(Column_propertiesContext,0); + }; + + column_definition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_definitionContext); + } else { + return this.getTypedRuleContext(Column_definitionContext,i); + } + }; + + virtual_column_definition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Virtual_column_definitionContext); + } else { + return this.getTypedRuleContext(Virtual_column_definitionContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_column_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Varray_col_propertiesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_varray_col_properties; + } + + VARRAY() { + return this.getToken(OracleSqlParser.VARRAY, 0); + }; + + varray_item() { + return this.getTypedRuleContext(Varray_itemContext,0); + }; + + varray_storage_clause() { + return this.getTypedRuleContext(Varray_storage_clauseContext,0); + }; + + substitutable_column_clause() { + return this.getTypedRuleContext(Substitutable_column_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitVarray_col_properties(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Varray_storage_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_varray_storage_clause; + } + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + LOB() { + return this.getToken(OracleSqlParser.LOB, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + lob_storage_parameters() { + return this.getTypedRuleContext(Lob_storage_parametersContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + lob_segname() { + return this.getTypedRuleContext(Lob_segnameContext,0); + }; + + SECUREFILE() { + return this.getToken(OracleSqlParser.SECUREFILE, 0); + }; + + BASICFILE() { + return this.getToken(OracleSqlParser.BASICFILE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitVarray_storage_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lob_segnameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lob_segname; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLob_segname(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lob_itemContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lob_item; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + DELIMITED_ID() { + return this.getToken(OracleSqlParser.DELIMITED_ID, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLob_item(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lob_storage_parametersContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lob_storage_parameters; + this.tablespace_name = null; + } + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + lob_parameters() { + return this.getTypedRuleContext(Lob_parametersContext,0); + }; + + storage_clause() { + return this.getTypedRuleContext(Storage_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLob_storage_parameters(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lob_storage_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lob_storage_clause; + } + + LOB() { + return this.getToken(OracleSqlParser.LOB, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + lob_item = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_itemContext); + } else { + return this.getTypedRuleContext(Lob_itemContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + lob_segname = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_segnameContext); + } else { + return this.getTypedRuleContext(Lob_segnameContext,i); + } + }; + + SECUREFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SECUREFILE); + } else { + return this.getToken(OracleSqlParser.SECUREFILE, i); + } + }; + + + BASICFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BASICFILE); + } else { + return this.getToken(OracleSqlParser.BASICFILE, i); + } + }; + + + lob_storage_parameters = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_storage_parametersContext); + } else { + return this.getTypedRuleContext(Lob_storage_parametersContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLob_storage_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_lob_storage_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_lob_storage_clause; + } + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + LOB() { + return this.getToken(OracleSqlParser.LOB, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + lob_item() { + return this.getTypedRuleContext(Lob_itemContext,0); + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + modify_lob_parameters() { + return this.getTypedRuleContext(Modify_lob_parametersContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_lob_storage_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Modify_lob_parametersContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_modify_lob_parameters; + } + + storage_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Storage_clauseContext); + } else { + return this.getTypedRuleContext(Storage_clauseContext,i); + } + }; + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + REBUILD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.REBUILD); + } else { + return this.getToken(OracleSqlParser.REBUILD, i); + } + }; + + + FREEPOOLS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FREEPOOLS); + } else { + return this.getToken(OracleSqlParser.FREEPOOLS, i); + } + }; + + + lob_retention_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_retention_clauseContext); + } else { + return this.getTypedRuleContext(Lob_retention_clauseContext,i); + } + }; + + lob_deduplicate_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_deduplicate_clauseContext); + } else { + return this.getTypedRuleContext(Lob_deduplicate_clauseContext,i); + } + }; + + lob_compression_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_compression_clauseContext); + } else { + return this.getTypedRuleContext(Lob_compression_clauseContext,i); + } + }; + + ENCRYPT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ENCRYPT); + } else { + return this.getToken(OracleSqlParser.ENCRYPT, i); + } + }; + + + encryption_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Encryption_specContext); + } else { + return this.getTypedRuleContext(Encryption_specContext,i); + } + }; + + DECRYPT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DECRYPT); + } else { + return this.getToken(OracleSqlParser.DECRYPT, i); + } + }; + + + CACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CACHE); + } else { + return this.getToken(OracleSqlParser.CACHE, i); + } + }; + + + allocate_extent_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Allocate_extent_clauseContext); + } else { + return this.getTypedRuleContext(Allocate_extent_clauseContext,i); + } + }; + + shrink_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Shrink_clauseContext); + } else { + return this.getTypedRuleContext(Shrink_clauseContext,i); + } + }; + + deallocate_unused_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Deallocate_unused_clauseContext); + } else { + return this.getTypedRuleContext(Deallocate_unused_clauseContext,i); + } + }; + + PCTVERSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PCTVERSION); + } else { + return this.getToken(OracleSqlParser.PCTVERSION, i); + } + }; + + + NOCACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NOCACHE); + } else { + return this.getToken(OracleSqlParser.NOCACHE, i); + } + }; + + + READS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.READS); + } else { + return this.getToken(OracleSqlParser.READS, i); + } + }; + + + logging_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logging_clauseContext); + } else { + return this.getTypedRuleContext(Logging_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModify_lob_parameters(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lob_parametersContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lob_parameters; + } + + STORAGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.STORAGE); + } else { + return this.getToken(OracleSqlParser.STORAGE, i); + } + }; + + + IN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.IN); + } else { + return this.getToken(OracleSqlParser.IN, i); + } + }; + + + ROW = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ROW); + } else { + return this.getToken(OracleSqlParser.ROW, i); + } + }; + + + CHUNK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHUNK); + } else { + return this.getToken(OracleSqlParser.CHUNK, i); + } + }; + + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + PCTVERSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PCTVERSION); + } else { + return this.getToken(OracleSqlParser.PCTVERSION, i); + } + }; + + + FREEPOOLS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FREEPOOLS); + } else { + return this.getToken(OracleSqlParser.FREEPOOLS, i); + } + }; + + + lob_retention_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_retention_clauseContext); + } else { + return this.getTypedRuleContext(Lob_retention_clauseContext,i); + } + }; + + lob_deduplicate_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_deduplicate_clauseContext); + } else { + return this.getTypedRuleContext(Lob_deduplicate_clauseContext,i); + } + }; + + lob_compression_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_compression_clauseContext); + } else { + return this.getTypedRuleContext(Lob_compression_clauseContext,i); + } + }; + + ENCRYPT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ENCRYPT); + } else { + return this.getToken(OracleSqlParser.ENCRYPT, i); + } + }; + + + encryption_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Encryption_specContext); + } else { + return this.getTypedRuleContext(Encryption_specContext,i); + } + }; + + DECRYPT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DECRYPT); + } else { + return this.getToken(OracleSqlParser.DECRYPT, i); + } + }; + + + ENABLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ENABLE); + } else { + return this.getToken(OracleSqlParser.ENABLE, i); + } + }; + + + DISABLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DISABLE); + } else { + return this.getToken(OracleSqlParser.DISABLE, i); + } + }; + + + CACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CACHE); + } else { + return this.getToken(OracleSqlParser.CACHE, i); + } + }; + + + NOCACHE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NOCACHE); + } else { + return this.getToken(OracleSqlParser.NOCACHE, i); + } + }; + + + READS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.READS); + } else { + return this.getToken(OracleSqlParser.READS, i); + } + }; + + + logging_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logging_clauseContext); + } else { + return this.getTypedRuleContext(Logging_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLob_parameters(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lob_deduplicate_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lob_deduplicate_clause; + } + + DEDUPLICATE() { + return this.getToken(OracleSqlParser.DEDUPLICATE, 0); + }; + + KEEP_DUPLICATES() { + return this.getToken(OracleSqlParser.KEEP_DUPLICATES, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLob_deduplicate_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lob_compression_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lob_compression_clause; + } + + NOCOMPRESS() { + return this.getToken(OracleSqlParser.NOCOMPRESS, 0); + }; + + COMPRESS() { + return this.getToken(OracleSqlParser.COMPRESS, 0); + }; + + HIGH() { + return this.getToken(OracleSqlParser.HIGH, 0); + }; + + MEDIUM() { + return this.getToken(OracleSqlParser.MEDIUM, 0); + }; + + LOW() { + return this.getToken(OracleSqlParser.LOW, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLob_compression_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lob_retention_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lob_retention_clause; + } + + RETENTION() { + return this.getToken(OracleSqlParser.RETENTION, 0); + }; + + MAX() { + return this.getToken(OracleSqlParser.MAX, 0); + }; + + MIN() { + return this.getToken(OracleSqlParser.MIN, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + AUTO() { + return this.getToken(OracleSqlParser.AUTO, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLob_retention_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Encryption_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_encryption_spec; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + IDENTIFIED() { + return this.getToken(OracleSqlParser.IDENTIFIED, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + REGULAR_ID() { + return this.getToken(OracleSqlParser.REGULAR_ID, 0); + }; + + SALT() { + return this.getToken(OracleSqlParser.SALT, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitEncryption_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class TablespaceContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tablespace; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTablespace(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Varray_itemContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_varray_item; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitVarray_item(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Column_propertiesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_column_properties; + } + + object_type_col_properties = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Object_type_col_propertiesContext); + } else { + return this.getTypedRuleContext(Object_type_col_propertiesContext,i); + } + }; + + nested_table_col_properties = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Nested_table_col_propertiesContext); + } else { + return this.getTypedRuleContext(Nested_table_col_propertiesContext,i); + } + }; + + xmltype_column_properties = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Xmltype_column_propertiesContext); + } else { + return this.getTypedRuleContext(Xmltype_column_propertiesContext,i); + } + }; + + varray_col_properties = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Varray_col_propertiesContext); + } else { + return this.getTypedRuleContext(Varray_col_propertiesContext,i); + } + }; + + lob_storage_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_storage_clauseContext); + } else { + return this.getTypedRuleContext(Lob_storage_clauseContext,i); + } + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + lob_partition_storage = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_partition_storageContext); + } else { + return this.getTypedRuleContext(Lob_partition_storageContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitColumn_properties(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lob_partition_storageContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lob_partition_storage; + } + + LOB() { + return this.getToken(OracleSqlParser.LOB, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + lob_item = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_itemContext); + } else { + return this.getTypedRuleContext(Lob_itemContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + lob_storage_parameters = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_storage_parametersContext); + } else { + return this.getTypedRuleContext(Lob_storage_parametersContext,i); + } + }; + + lob_segname = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lob_segnameContext); + } else { + return this.getTypedRuleContext(Lob_segnameContext,i); + } + }; + + SECUREFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SECUREFILE); + } else { + return this.getToken(OracleSqlParser.SECUREFILE, i); + } + }; + + + BASICFILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BASICFILE); + } else { + return this.getToken(OracleSqlParser.BASICFILE, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLob_partition_storage(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Period_definitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_period_definition; + } + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + start_time_column() { + return this.getTypedRuleContext(Start_time_columnContext,0); + }; + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + end_time_column() { + return this.getTypedRuleContext(End_time_columnContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPeriod_definition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Start_time_columnContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_start_time_column; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStart_time_column(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class End_time_columnContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_end_time_column; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitEnd_time_column(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Column_definitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_column_definition; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + SORT() { + return this.getToken(OracleSqlParser.SORT, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + identity_clause() { + return this.getTypedRuleContext(Identity_clauseContext,0); + }; + + ENCRYPT() { + return this.getToken(OracleSqlParser.ENCRYPT, 0); + }; + + encryption_spec() { + return this.getTypedRuleContext(Encryption_specContext,0); + }; + + inline_ref_constraint() { + return this.getTypedRuleContext(Inline_ref_constraintContext,0); + }; + + annotations_clause() { + return this.getTypedRuleContext(Annotations_clauseContext,0); + }; + + VISIBLE() { + return this.getToken(OracleSqlParser.VISIBLE, 0); + }; + + INVISIBLE() { + return this.getToken(OracleSqlParser.INVISIBLE, 0); + }; + + datatype() { + return this.getTypedRuleContext(DatatypeContext,0); + }; + + type_name() { + return this.getTypedRuleContext(Type_nameContext,0); + }; + + COLLATE() { + return this.getToken(OracleSqlParser.COLLATE, 0); + }; + + column_collation_name() { + return this.getTypedRuleContext(Column_collation_nameContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + inline_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inline_constraintContext); + } else { + return this.getTypedRuleContext(Inline_constraintContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitColumn_definition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Column_collation_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_column_collation_name; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitColumn_collation_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Identity_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_identity_clause; + } + + GENERATED() { + return this.getToken(OracleSqlParser.GENERATED, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + IDENTITY() { + return this.getToken(OracleSqlParser.IDENTITY, 0); + }; + + ALWAYS() { + return this.getToken(OracleSqlParser.ALWAYS, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + identity_options_parentheses() { + return this.getTypedRuleContext(Identity_options_parenthesesContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIdentity_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Identity_options_parenthesesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_identity_options_parentheses; + } + + identity_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Identity_optionsContext); + } else { + return this.getTypedRuleContext(Identity_optionsContext,i); + } + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIdentity_options_parentheses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Identity_optionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_identity_options; + } + + START() { + return this.getToken(OracleSqlParser.START, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + LIMIT() { + return this.getToken(OracleSqlParser.LIMIT, 0); + }; + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + INCREMENT() { + return this.getToken(OracleSqlParser.INCREMENT, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + MAXVALUE() { + return this.getToken(OracleSqlParser.MAXVALUE, 0); + }; + + NOMAXVALUE() { + return this.getToken(OracleSqlParser.NOMAXVALUE, 0); + }; + + MINVALUE() { + return this.getToken(OracleSqlParser.MINVALUE, 0); + }; + + NOMINVALUE() { + return this.getToken(OracleSqlParser.NOMINVALUE, 0); + }; + + CYCLE() { + return this.getToken(OracleSqlParser.CYCLE, 0); + }; + + NOCYCLE() { + return this.getToken(OracleSqlParser.NOCYCLE, 0); + }; + + CACHE() { + return this.getToken(OracleSqlParser.CACHE, 0); + }; + + NOCACHE() { + return this.getToken(OracleSqlParser.NOCACHE, 0); + }; + + ORDER() { + return this.getToken(OracleSqlParser.ORDER, 0); + }; + + NOORDER() { + return this.getToken(OracleSqlParser.NOORDER, 0); + }; + + SCALE() { + return this.getToken(OracleSqlParser.SCALE, 0); + }; + + EXTEND() { + return this.getToken(OracleSqlParser.EXTEND, 0); + }; + + NOEXTEND() { + return this.getToken(OracleSqlParser.NOEXTEND, 0); + }; + + NOSCALE() { + return this.getToken(OracleSqlParser.NOSCALE, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + NOKEEP() { + return this.getToken(OracleSqlParser.NOKEEP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIdentity_options(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Virtual_column_definitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_virtual_column_definition; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + datatype() { + return this.getTypedRuleContext(DatatypeContext,0); + }; + + virtual_column_expression() { + return this.getTypedRuleContext(Virtual_column_expressionContext,0); + }; + + VIRTUAL() { + return this.getToken(OracleSqlParser.VIRTUAL, 0); + }; + + evaluation_edition_clause() { + return this.getTypedRuleContext(Evaluation_edition_clauseContext,0); + }; + + UNUSABLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNUSABLE); + } else { + return this.getToken(OracleSqlParser.UNUSABLE, i); + } + }; + + + BEFORE() { + return this.getToken(OracleSqlParser.BEFORE, 0); + }; + + BEGINNING() { + return this.getToken(OracleSqlParser.BEGINNING, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + inline_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Inline_constraintContext); + } else { + return this.getTypedRuleContext(Inline_constraintContext,i); + } + }; + + by_user_for_statistics_clause() { + return this.getTypedRuleContext(By_user_for_statistics_clauseContext,0); + }; + + VISIBLE() { + return this.getToken(OracleSqlParser.VISIBLE, 0); + }; + + INVISIBLE() { + return this.getToken(OracleSqlParser.INVISIBLE, 0); + }; + + CURRENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CURRENT); + } else { + return this.getToken(OracleSqlParser.CURRENT, i); + } + }; + + + EDITION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EDITION); + } else { + return this.getToken(OracleSqlParser.EDITION, i); + } + }; + + + edition_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Edition_nameContext); + } else { + return this.getTypedRuleContext(Edition_nameContext,i); + } + }; + + COLLATE() { + return this.getToken(OracleSqlParser.COLLATE, 0); + }; + + column_collation_name() { + return this.getTypedRuleContext(Column_collation_nameContext,0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitVirtual_column_definition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Virtual_column_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_virtual_column_expression; + } + + autogenerated_sequence_definition() { + return this.getTypedRuleContext(Autogenerated_sequence_definitionContext,0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + GENERATED() { + return this.getToken(OracleSqlParser.GENERATED, 0); + }; + + ALWAYS() { + return this.getToken(OracleSqlParser.ALWAYS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitVirtual_column_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Autogenerated_sequence_definitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_autogenerated_sequence_definition; + } + + GENERATED() { + return this.getToken(OracleSqlParser.GENERATED, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + IDENTITY() { + return this.getToken(OracleSqlParser.IDENTITY, 0); + }; + + ALWAYS() { + return this.getToken(OracleSqlParser.ALWAYS, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + sequence_start_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sequence_start_clauseContext); + } else { + return this.getTypedRuleContext(Sequence_start_clauseContext,i); + } + }; + + sequence_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sequence_specContext); + } else { + return this.getTypedRuleContext(Sequence_specContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAutogenerated_sequence_definition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class By_user_for_statistics_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_by_user_for_statistics_clause; + } + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + USER() { + return this.getToken(OracleSqlParser.USER, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + STATISTICS() { + return this.getToken(OracleSqlParser.STATISTICS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBy_user_for_statistics_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Evaluation_edition_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_evaluation_edition_clause; + } + + EVALUATE() { + return this.getToken(OracleSqlParser.EVALUATE, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + EDITION() { + return this.getToken(OracleSqlParser.EDITION, 0); + }; + + edition_name() { + return this.getTypedRuleContext(Edition_nameContext,0); + }; + + CURRENT() { + return this.getToken(OracleSqlParser.CURRENT, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitEvaluation_edition_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Nested_table_col_propertiesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_nested_table_col_properties; + } + + NESTED() { + return this.getToken(OracleSqlParser.NESTED, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + AS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.AS); + } else { + return this.getToken(OracleSqlParser.AS, i); + } + }; + + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + nested_item() { + return this.getTypedRuleContext(Nested_itemContext,0); + }; + + COLUMN_VALUE() { + return this.getToken(OracleSqlParser.COLUMN_VALUE, 0); + }; + + substitutable_column_clause() { + return this.getTypedRuleContext(Substitutable_column_clauseContext,0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + GLOBAL() { + return this.getToken(OracleSqlParser.GLOBAL, 0); + }; + + LOCATOR() { + return this.getToken(OracleSqlParser.LOCATOR, 0); + }; + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + object_properties = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Object_propertiesContext); + } else { + return this.getTypedRuleContext(Object_propertiesContext,i); + } + }; + + physical_properties = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Physical_propertiesContext); + } else { + return this.getTypedRuleContext(Physical_propertiesContext,i); + } + }; + + column_properties = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_propertiesContext); + } else { + return this.getTypedRuleContext(Column_propertiesContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNested_table_col_properties(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Nested_itemContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_nested_item; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNested_item(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Substitutable_column_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_substitutable_column_clause; + } + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + type_name() { + return this.getTypedRuleContext(Type_nameContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + ELEMENT() { + return this.getToken(OracleSqlParser.ELEMENT, 0); + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + SUBSTITUTABLE() { + return this.getToken(OracleSqlParser.SUBSTITUTABLE, 0); + }; + + AT() { + return this.getToken(OracleSqlParser.AT, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + LEVELS() { + return this.getToken(OracleSqlParser.LEVELS, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubstitutable_column_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Partition_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_partition_name; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + DELIMITED_ID() { + return this.getToken(OracleSqlParser.DELIMITED_ID, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPartition_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Supplemental_logging_propsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_supplemental_logging_props; + } + + SUPPLEMENTAL() { + return this.getToken(OracleSqlParser.SUPPLEMENTAL, 0); + }; + + LOG() { + return this.getToken(OracleSqlParser.LOG, 0); + }; + + supplemental_log_grp_clause() { + return this.getTypedRuleContext(Supplemental_log_grp_clauseContext,0); + }; + + supplemental_id_key_clause() { + return this.getTypedRuleContext(Supplemental_id_key_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSupplemental_logging_props(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_type_col_propertiesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_type_col_properties; + this.column = null; + } + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + substitutable_column_clause() { + return this.getTypedRuleContext(Substitutable_column_clauseContext,0); + }; + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_type_col_properties(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Constraint_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_constraint_clauses; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + out_of_line_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Out_of_line_constraintContext); + } else { + return this.getTypedRuleContext(Out_of_line_constraintContext,i); + } + }; + + out_of_line_ref_constraint() { + return this.getTypedRuleContext(Out_of_line_ref_constraintContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + constraint_state() { + return this.getTypedRuleContext(Constraint_stateContext,0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + constraint_name() { + return this.getTypedRuleContext(Constraint_nameContext,0); + }; + + PRIMARY() { + return this.getToken(OracleSqlParser.PRIMARY, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + old_constraint_name() { + return this.getTypedRuleContext(Old_constraint_nameContext,0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + new_constraint_name() { + return this.getTypedRuleContext(New_constraint_nameContext,0); + }; + + drop_constraint_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Drop_constraint_clauseContext); + } else { + return this.getTypedRuleContext(Drop_constraint_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConstraint_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Old_constraint_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_old_constraint_name; + } + + constraint_name() { + return this.getTypedRuleContext(Constraint_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOld_constraint_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class New_constraint_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_new_constraint_name; + } + + constraint_name() { + return this.getTypedRuleContext(Constraint_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNew_constraint_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Drop_constraint_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_drop_constraint_clause; + } + + DROP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DROP); + } else { + return this.getToken(OracleSqlParser.DROP, i); + } + }; + + + PRIMARY() { + return this.getToken(OracleSqlParser.PRIMARY, 0); + }; + + KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.KEY); + } else { + return this.getToken(OracleSqlParser.KEY, i); + } + }; + + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + constraint_name() { + return this.getTypedRuleContext(Constraint_nameContext,0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + ONLINE() { + return this.getToken(OracleSqlParser.ONLINE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDrop_constraint_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Check_constraintContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_check_constraint; + } + + CHECK() { + return this.getToken(OracleSqlParser.CHECK, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCheck_constraint(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Foreign_key_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_foreign_key_clause; + } + + FOREIGN() { + return this.getToken(OracleSqlParser.FOREIGN, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + references_clause() { + return this.getTypedRuleContext(References_clauseContext,0); + }; + + on_delete_clause() { + return this.getTypedRuleContext(On_delete_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitForeign_key_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class References_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_references_clause; + } + + REFERENCES() { + return this.getToken(OracleSqlParser.REFERENCES, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReferences_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class On_delete_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_on_delete_clause; + } + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOn_delete_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Anonymous_blockContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_anonymous_block; + } + + BEGIN() { + return this.getToken(OracleSqlParser.BEGIN, 0); + }; + + seq_of_statements() { + return this.getTypedRuleContext(Seq_of_statementsContext,0); + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + DECLARE() { + return this.getToken(OracleSqlParser.DECLARE, 0); + }; + + seq_of_declare_specs() { + return this.getTypedRuleContext(Seq_of_declare_specsContext,0); + }; + + EXCEPTION() { + return this.getToken(OracleSqlParser.EXCEPTION, 0); + }; + + exception_handler = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Exception_handlerContext); + } else { + return this.getTypedRuleContext(Exception_handlerContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAnonymous_block(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Invoker_rights_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_invoker_rights_clause; + } + + AUTHID() { + return this.getToken(OracleSqlParser.AUTHID, 0); + }; + + CURRENT_USER() { + return this.getToken(OracleSqlParser.CURRENT_USER, 0); + }; + + DEFINER() { + return this.getToken(OracleSqlParser.DEFINER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInvoker_rights_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Call_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_call_spec; + } + + java_spec() { + return this.getTypedRuleContext(Java_specContext,0); + }; + + c_spec() { + return this.getTypedRuleContext(C_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCall_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Java_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_java_spec; + } + + LANGUAGE() { + return this.getToken(OracleSqlParser.LANGUAGE, 0); + }; + + JAVA() { + return this.getToken(OracleSqlParser.JAVA, 0); + }; + + NAME() { + return this.getToken(OracleSqlParser.NAME, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJava_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class C_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_c_spec; + } + + LANGUAGE() { + return this.getToken(OracleSqlParser.LANGUAGE, 0); + }; + + C_LETTER() { + return this.getToken(OracleSqlParser.C_LETTER, 0); + }; + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + NAME() { + return this.getToken(OracleSqlParser.NAME, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + LIBRARY() { + return this.getToken(OracleSqlParser.LIBRARY, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + c_agent_in_clause() { + return this.getTypedRuleContext(C_agent_in_clauseContext,0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + CONTEXT() { + return this.getToken(OracleSqlParser.CONTEXT, 0); + }; + + c_parameters_clause() { + return this.getTypedRuleContext(C_parameters_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitC_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class C_agent_in_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_c_agent_in_clause; + } + + AGENT() { + return this.getToken(OracleSqlParser.AGENT, 0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitC_agent_in_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class C_parameters_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_c_parameters_clause; + } + + PARAMETERS() { + return this.getToken(OracleSqlParser.PARAMETERS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + c_external_parameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(C_external_parameterContext); + } else { + return this.getTypedRuleContext(C_external_parameterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitC_parameters_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class C_external_parameterContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_c_external_parameter; + this.external_datatype = null; + } + + CONTEXT() { + return this.getToken(OracleSqlParser.CONTEXT, 0); + }; + + SELF() { + return this.getToken(OracleSqlParser.SELF, 0); + }; + + TDO() { + return this.getToken(OracleSqlParser.TDO, 0); + }; + + c_property() { + return this.getTypedRuleContext(C_propertyContext,0); + }; + + parameter_name() { + return this.getTypedRuleContext(Parameter_nameContext,0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + REFERENCE() { + return this.getToken(OracleSqlParser.REFERENCE, 0); + }; + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitC_external_parameter(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class C_propertyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_c_property; + } + + INDICATOR() { + return this.getToken(OracleSqlParser.INDICATOR, 0); + }; + + STRUCT() { + return this.getToken(OracleSqlParser.STRUCT, 0); + }; + + TDO() { + return this.getToken(OracleSqlParser.TDO, 0); + }; + + LENGTH() { + return this.getToken(OracleSqlParser.LENGTH, 0); + }; + + DURATION() { + return this.getToken(OracleSqlParser.DURATION, 0); + }; + + MAXLEN() { + return this.getToken(OracleSqlParser.MAXLEN, 0); + }; + + CHARSETID() { + return this.getToken(OracleSqlParser.CHARSETID, 0); + }; + + CHARSETFORM() { + return this.getToken(OracleSqlParser.CHARSETFORM, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitC_property(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class ParameterContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_parameter; + } + + parameter_name() { + return this.getTypedRuleContext(Parameter_nameContext,0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + default_value_part() { + return this.getTypedRuleContext(Default_value_partContext,0); + }; + + IN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.IN); + } else { + return this.getToken(OracleSqlParser.IN, i); + } + }; + + + OUT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OUT); + } else { + return this.getToken(OracleSqlParser.OUT, i); + } + }; + + + INOUT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.INOUT); + } else { + return this.getToken(OracleSqlParser.INOUT, i); + } + }; + + + NOCOPY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NOCOPY); + } else { + return this.getToken(OracleSqlParser.NOCOPY, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitParameter(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Default_value_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_default_value_part; + } + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + ASSIGN_OP() { + return this.getToken(OracleSqlParser.ASSIGN_OP, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDefault_value_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Seq_of_declare_specsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_seq_of_declare_specs; + } + + declare_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Declare_specContext); + } else { + return this.getTypedRuleContext(Declare_specContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSeq_of_declare_specs(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Declare_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_declare_spec; + } + + pragma_declaration() { + return this.getTypedRuleContext(Pragma_declarationContext,0); + }; + + exception_declaration() { + return this.getTypedRuleContext(Exception_declarationContext,0); + }; + + procedure_spec() { + return this.getTypedRuleContext(Procedure_specContext,0); + }; + + function_spec() { + return this.getTypedRuleContext(Function_specContext,0); + }; + + variable_declaration() { + return this.getTypedRuleContext(Variable_declarationContext,0); + }; + + subtype_declaration() { + return this.getTypedRuleContext(Subtype_declarationContext,0); + }; + + cursor_declaration() { + return this.getTypedRuleContext(Cursor_declarationContext,0); + }; + + type_declaration() { + return this.getTypedRuleContext(Type_declarationContext,0); + }; + + procedure_body() { + return this.getTypedRuleContext(Procedure_bodyContext,0); + }; + + function_body() { + return this.getTypedRuleContext(Function_bodyContext,0); + }; + + selection_directive() { + return this.getTypedRuleContext(Selection_directiveContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDeclare_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Variable_declarationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_variable_declaration; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + CONSTANT() { + return this.getToken(OracleSqlParser.CONSTANT, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + default_value_part() { + return this.getTypedRuleContext(Default_value_partContext,0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitVariable_declaration(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subtype_declarationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subtype_declaration; + } + + SUBTYPE() { + return this.getToken(OracleSqlParser.SUBTYPE, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + RANGE() { + return this.getToken(OracleSqlParser.RANGE, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + DOUBLE_PERIOD() { + return this.getToken(OracleSqlParser.DOUBLE_PERIOD, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubtype_declaration(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cursor_declarationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cursor_declaration; + } + + CURSOR() { + return this.getToken(OracleSqlParser.CURSOR, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + parameter_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Parameter_specContext); + } else { + return this.getTypedRuleContext(Parameter_specContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + select_statement() { + return this.getTypedRuleContext(Select_statementContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCursor_declaration(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Parameter_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_parameter_spec; + } + + parameter_name() { + return this.getTypedRuleContext(Parameter_nameContext,0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + default_value_part() { + return this.getTypedRuleContext(Default_value_partContext,0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitParameter_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Exception_declarationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_exception_declaration; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + EXCEPTION() { + return this.getToken(OracleSqlParser.EXCEPTION, 0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitException_declaration(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pragma_declarationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pragma_declaration; + this.id1 = null; + } + + PRAGMA() { + return this.getToken(OracleSqlParser.PRAGMA, 0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + SERIALLY_REUSABLE() { + return this.getToken(OracleSqlParser.SERIALLY_REUSABLE, 0); + }; + + AUTONOMOUS_TRANSACTION() { + return this.getToken(OracleSqlParser.AUTONOMOUS_TRANSACTION, 0); + }; + + EXCEPTION_INIT() { + return this.getToken(OracleSqlParser.EXCEPTION_INIT, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + exception_name() { + return this.getTypedRuleContext(Exception_nameContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + numeric_negative() { + return this.getTypedRuleContext(Numeric_negativeContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + INLINE() { + return this.getToken(OracleSqlParser.INLINE, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RESTRICT_REFERENCES() { + return this.getToken(OracleSqlParser.RESTRICT_REFERENCES, 0); + }; + + DEPRECATE() { + return this.getToken(OracleSqlParser.DEPRECATE, 0); + }; + + identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } + }; + + UDF() { + return this.getToken(OracleSqlParser.UDF, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPragma_declaration(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Record_type_defContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_record_type_def; + } + + RECORD() { + return this.getToken(OracleSqlParser.RECORD, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + field_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Field_specContext); + } else { + return this.getTypedRuleContext(Field_specContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRecord_type_def(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Field_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_field_spec; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + default_value_part() { + return this.getTypedRuleContext(Default_value_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitField_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Ref_cursor_type_defContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_ref_cursor_type_def; + } + + REF() { + return this.getToken(OracleSqlParser.REF, 0); + }; + + CURSOR() { + return this.getToken(OracleSqlParser.CURSOR, 0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRef_cursor_type_def(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Type_declarationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_type_declaration; + } + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + SEMICOLON() { + return this.getToken(OracleSqlParser.SEMICOLON, 0); + }; + + table_type_def() { + return this.getTypedRuleContext(Table_type_defContext,0); + }; + + varray_type_def() { + return this.getTypedRuleContext(Varray_type_defContext,0); + }; + + record_type_def() { + return this.getTypedRuleContext(Record_type_defContext,0); + }; + + ref_cursor_type_def() { + return this.getTypedRuleContext(Ref_cursor_type_defContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitType_declaration(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_type_defContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_type_def; + } + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + table_indexed_by_part() { + return this.getTypedRuleContext(Table_indexed_by_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_type_def(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_indexed_by_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_indexed_by_part; + this.idx1 = null; + this.idx2 = null; + } + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + INDEXED() { + return this.getToken(OracleSqlParser.INDEXED, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_indexed_by_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Varray_type_defContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_varray_type_def; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + VARRAY() { + return this.getToken(OracleSqlParser.VARRAY, 0); + }; + + ARRAY() { + return this.getToken(OracleSqlParser.ARRAY, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + VARYING() { + return this.getToken(OracleSqlParser.VARYING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitVarray_type_def(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Seq_of_statementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_seq_of_statements; + } + + statement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(StatementContext); + } else { + return this.getTypedRuleContext(StatementContext,i); + } + }; + + label_declaration = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Label_declarationContext); + } else { + return this.getTypedRuleContext(Label_declarationContext,i); + } + }; + + selection_directive = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Selection_directiveContext); + } else { + return this.getTypedRuleContext(Selection_directiveContext,i); + } + }; + + SEMICOLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SEMICOLON); + } else { + return this.getToken(OracleSqlParser.SEMICOLON, i); + } + }; + + + EOF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EOF); + } else { + return this.getToken(OracleSqlParser.EOF, i); + } + }; + + + pragma_declaration = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Pragma_declarationContext); + } else { + return this.getTypedRuleContext(Pragma_declarationContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSeq_of_statements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Label_declarationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_label_declaration; + this.ltp1 = null; + } + + LESS_THAN_OP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LESS_THAN_OP); + } else { + return this.getToken(OracleSqlParser.LESS_THAN_OP, i); + } + }; + + + label_name() { + return this.getTypedRuleContext(Label_nameContext,0); + }; + + GREATER_THAN_OP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.GREATER_THAN_OP); + } else { + return this.getToken(OracleSqlParser.GREATER_THAN_OP, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLabel_declaration(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class StatementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_statement; + } + + body() { + return this.getTypedRuleContext(BodyContext,0); + }; + + block() { + return this.getTypedRuleContext(BlockContext,0); + }; + + assignment_statement() { + return this.getTypedRuleContext(Assignment_statementContext,0); + }; + + continue_statement() { + return this.getTypedRuleContext(Continue_statementContext,0); + }; + + exit_statement() { + return this.getTypedRuleContext(Exit_statementContext,0); + }; + + goto_statement() { + return this.getTypedRuleContext(Goto_statementContext,0); + }; + + if_statement() { + return this.getTypedRuleContext(If_statementContext,0); + }; + + loop_statement() { + return this.getTypedRuleContext(Loop_statementContext,0); + }; + + forall_statement() { + return this.getTypedRuleContext(Forall_statementContext,0); + }; + + null_statement() { + return this.getTypedRuleContext(Null_statementContext,0); + }; + + raise_statement() { + return this.getTypedRuleContext(Raise_statementContext,0); + }; + + return_statement() { + return this.getTypedRuleContext(Return_statementContext,0); + }; + + case_statement() { + return this.getTypedRuleContext(Case_statementContext,0); + }; + + sql_statement() { + return this.getTypedRuleContext(Sql_statementContext,0); + }; + + call_statement() { + return this.getTypedRuleContext(Call_statementContext,0); + }; + + pipe_row_statement() { + return this.getTypedRuleContext(Pipe_row_statementContext,0); + }; + + grant_statement() { + return this.getTypedRuleContext(Grant_statementContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStatement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Assignment_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_assignment_statement; + } + + ASSIGN_OP() { + return this.getToken(OracleSqlParser.ASSIGN_OP, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + general_element() { + return this.getTypedRuleContext(General_elementContext,0); + }; + + bind_variable() { + return this.getTypedRuleContext(Bind_variableContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAssignment_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Continue_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_continue_statement; + } + + CONTINUE() { + return this.getToken(OracleSqlParser.CONTINUE, 0); + }; + + label_name() { + return this.getTypedRuleContext(Label_nameContext,0); + }; + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitContinue_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Exit_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_exit_statement; + } + + EXIT() { + return this.getToken(OracleSqlParser.EXIT, 0); + }; + + label_name() { + return this.getTypedRuleContext(Label_nameContext,0); + }; + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExit_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Goto_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_goto_statement; + } + + GOTO() { + return this.getToken(OracleSqlParser.GOTO, 0); + }; + + label_name() { + return this.getTypedRuleContext(Label_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGoto_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class If_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_if_statement; + } + + IF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.IF); + } else { + return this.getToken(OracleSqlParser.IF, i); + } + }; + + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + THEN() { + return this.getToken(OracleSqlParser.THEN, 0); + }; + + seq_of_statements() { + return this.getTypedRuleContext(Seq_of_statementsContext,0); + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + elsif_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Elsif_partContext); + } else { + return this.getTypedRuleContext(Elsif_partContext,i); + } + }; + + else_part() { + return this.getTypedRuleContext(Else_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIf_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Elsif_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_elsif_part; + } + + ELSIF() { + return this.getToken(OracleSqlParser.ELSIF, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + THEN() { + return this.getToken(OracleSqlParser.THEN, 0); + }; + + seq_of_statements() { + return this.getTypedRuleContext(Seq_of_statementsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitElsif_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Else_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_else_part; + } + + ELSE() { + return this.getToken(OracleSqlParser.ELSE, 0); + }; + + seq_of_statements() { + return this.getTypedRuleContext(Seq_of_statementsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitElse_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Loop_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_loop_statement; + } + + LOOP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LOOP); + } else { + return this.getToken(OracleSqlParser.LOOP, i); + } + }; + + + seq_of_statements() { + return this.getTypedRuleContext(Seq_of_statementsContext,0); + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + label_declaration() { + return this.getTypedRuleContext(Label_declarationContext,0); + }; + + WHILE() { + return this.getToken(OracleSqlParser.WHILE, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + cursor_loop_param() { + return this.getTypedRuleContext(Cursor_loop_paramContext,0); + }; + + label_name() { + return this.getTypedRuleContext(Label_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLoop_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cursor_loop_paramContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cursor_loop_param; + this.range_separator = null; + } + + index_name() { + return this.getTypedRuleContext(Index_nameContext,0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + lower_bound() { + return this.getTypedRuleContext(Lower_boundContext,0); + }; + + upper_bound() { + return this.getTypedRuleContext(Upper_boundContext,0); + }; + + DOUBLE_PERIOD() { + return this.getToken(OracleSqlParser.DOUBLE_PERIOD, 0); + }; + + REVERSE() { + return this.getToken(OracleSqlParser.REVERSE, 0); + }; + + record_name() { + return this.getTypedRuleContext(Record_nameContext,0); + }; + + cursor_name() { + return this.getTypedRuleContext(Cursor_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + select_statement() { + return this.getTypedRuleContext(Select_statementContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCursor_loop_param(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Forall_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_forall_statement; + } + + FORALL() { + return this.getToken(OracleSqlParser.FORALL, 0); + }; + + index_name() { + return this.getTypedRuleContext(Index_nameContext,0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + bounds_clause() { + return this.getTypedRuleContext(Bounds_clauseContext,0); + }; + + data_manipulation_language_statements() { + return this.getTypedRuleContext(Data_manipulation_language_statementsContext,0); + }; + + SAVE() { + return this.getToken(OracleSqlParser.SAVE, 0); + }; + + EXCEPTIONS() { + return this.getToken(OracleSqlParser.EXCEPTIONS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitForall_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Bounds_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_bounds_clause; + } + + lower_bound() { + return this.getTypedRuleContext(Lower_boundContext,0); + }; + + DOUBLE_PERIOD() { + return this.getToken(OracleSqlParser.DOUBLE_PERIOD, 0); + }; + + upper_bound() { + return this.getTypedRuleContext(Upper_boundContext,0); + }; + + INDICES() { + return this.getToken(OracleSqlParser.INDICES, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + general_element() { + return this.getTypedRuleContext(General_elementContext,0); + }; + + between_bound() { + return this.getTypedRuleContext(Between_boundContext,0); + }; + + VALUES() { + return this.getToken(OracleSqlParser.VALUES, 0); + }; + + index_name() { + return this.getTypedRuleContext(Index_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBounds_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Between_boundContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_between_bound; + } + + BETWEEN() { + return this.getToken(OracleSqlParser.BETWEEN, 0); + }; + + lower_bound() { + return this.getTypedRuleContext(Lower_boundContext,0); + }; + + AND() { + return this.getToken(OracleSqlParser.AND, 0); + }; + + upper_bound() { + return this.getTypedRuleContext(Upper_boundContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBetween_bound(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lower_boundContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lower_bound; + } + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLower_bound(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Upper_boundContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_upper_bound; + } + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUpper_bound(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Null_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_null_statement; + } + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNull_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Raise_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_raise_statement; + } + + RAISE() { + return this.getToken(OracleSqlParser.RAISE, 0); + }; + + exception_name() { + return this.getTypedRuleContext(Exception_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRaise_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Return_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_return_statement; + } + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReturn_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Call_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_call_statement; + } + + routine_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Routine_nameContext); + } else { + return this.getTypedRuleContext(Routine_nameContext,i); + } + }; + + CALL() { + return this.getToken(OracleSqlParser.CALL, 0); + }; + + function_argument = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_argumentContext); + } else { + return this.getTypedRuleContext(Function_argumentContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + bind_variable() { + return this.getTypedRuleContext(Bind_variableContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCall_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pipe_row_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pipe_row_statement; + } + + PIPE() { + return this.getToken(OracleSqlParser.PIPE, 0); + }; + + ROW() { + return this.getToken(OracleSqlParser.ROW, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPipe_row_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Selection_directiveContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_selection_directive; + } + + DOLLAR_IF() { + return this.getToken(OracleSqlParser.DOLLAR_IF, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + DOLLAR_THEN() { + return this.getToken(OracleSqlParser.DOLLAR_THEN, 0); + }; + + selection_directive_body = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Selection_directive_bodyContext); + } else { + return this.getTypedRuleContext(Selection_directive_bodyContext,i); + } + }; + + DOLLAR_END() { + return this.getToken(OracleSqlParser.DOLLAR_END, 0); + }; + + DOLLAR_ELSIF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DOLLAR_ELSIF); + } else { + return this.getToken(OracleSqlParser.DOLLAR_ELSIF, i); + } + }; + + + DOLLAR_ELSE() { + return this.getToken(OracleSqlParser.DOLLAR_ELSE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSelection_directive(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Error_directiveContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_error_directive; + } + + DOLLAR_ERROR() { + return this.getToken(OracleSqlParser.DOLLAR_ERROR, 0); + }; + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + DOLLAR_END() { + return this.getToken(OracleSqlParser.DOLLAR_END, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitError_directive(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Selection_directive_bodyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_selection_directive_body; + } + + statement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(StatementContext); + } else { + return this.getTypedRuleContext(StatementContext,i); + } + }; + + SEMICOLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SEMICOLON); + } else { + return this.getToken(OracleSqlParser.SEMICOLON, i); + } + }; + + + variable_declaration = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Variable_declarationContext); + } else { + return this.getTypedRuleContext(Variable_declarationContext,i); + } + }; + + error_directive = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Error_directiveContext); + } else { + return this.getTypedRuleContext(Error_directiveContext,i); + } + }; + + function_body = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_bodyContext); + } else { + return this.getTypedRuleContext(Function_bodyContext,i); + } + }; + + procedure_body = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Procedure_bodyContext); + } else { + return this.getTypedRuleContext(Procedure_bodyContext,i); + } + }; + + pragma_declaration = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Pragma_declarationContext); + } else { + return this.getTypedRuleContext(Pragma_declarationContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSelection_directive_body(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class BodyContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_body; + } + + BEGIN() { + return this.getToken(OracleSqlParser.BEGIN, 0); + }; + + seq_of_statements() { + return this.getTypedRuleContext(Seq_of_statementsContext,0); + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + EXCEPTION() { + return this.getToken(OracleSqlParser.EXCEPTION, 0); + }; + + label_name() { + return this.getTypedRuleContext(Label_nameContext,0); + }; + + exception_handler = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Exception_handlerContext); + } else { + return this.getTypedRuleContext(Exception_handlerContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBody(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Exception_handlerContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_exception_handler; + } + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + exception_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Exception_nameContext); + } else { + return this.getTypedRuleContext(Exception_nameContext,i); + } + }; + + THEN() { + return this.getToken(OracleSqlParser.THEN, 0); + }; + + seq_of_statements() { + return this.getTypedRuleContext(Seq_of_statementsContext,0); + }; + + OR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OR); + } else { + return this.getToken(OracleSqlParser.OR, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitException_handler(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Trigger_blockContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_trigger_block; + } + + body() { + return this.getTypedRuleContext(BodyContext,0); + }; + + DECLARE() { + return this.getToken(OracleSqlParser.DECLARE, 0); + }; + + declare_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Declare_specContext); + } else { + return this.getTypedRuleContext(Declare_specContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTrigger_block(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Tps_blockContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tps_block; + } + + body() { + return this.getTypedRuleContext(BodyContext,0); + }; + + declare_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Declare_specContext); + } else { + return this.getTypedRuleContext(Declare_specContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTps_block(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class BlockContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_block; + } + + body() { + return this.getTypedRuleContext(BodyContext,0); + }; + + DECLARE() { + return this.getToken(OracleSqlParser.DECLARE, 0); + }; + + declare_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Declare_specContext); + } else { + return this.getTypedRuleContext(Declare_specContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBlock(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sql_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sql_statement; + } + + execute_immediate() { + return this.getTypedRuleContext(Execute_immediateContext,0); + }; + + data_manipulation_language_statements() { + return this.getTypedRuleContext(Data_manipulation_language_statementsContext,0); + }; + + cursor_manipulation_statements() { + return this.getTypedRuleContext(Cursor_manipulation_statementsContext,0); + }; + + transaction_control_statements() { + return this.getTypedRuleContext(Transaction_control_statementsContext,0); + }; + + collection_method_call() { + return this.getTypedRuleContext(Collection_method_callContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSql_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Execute_immediateContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_execute_immediate; + } + + EXECUTE() { + return this.getToken(OracleSqlParser.EXECUTE, 0); + }; + + IMMEDIATE() { + return this.getToken(OracleSqlParser.IMMEDIATE, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + into_clause() { + return this.getTypedRuleContext(Into_clauseContext,0); + }; + + using_clause() { + return this.getTypedRuleContext(Using_clauseContext,0); + }; + + dynamic_returning_clause() { + return this.getTypedRuleContext(Dynamic_returning_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExecute_immediate(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dynamic_returning_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dynamic_returning_clause; + } + + into_clause() { + return this.getTypedRuleContext(Into_clauseContext,0); + }; + + RETURNING() { + return this.getToken(OracleSqlParser.RETURNING, 0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDynamic_returning_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Data_manipulation_language_statementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_data_manipulation_language_statements; + } + + merge_statement() { + return this.getTypedRuleContext(Merge_statementContext,0); + }; + + lock_table_statement() { + return this.getTypedRuleContext(Lock_table_statementContext,0); + }; + + select_statement() { + return this.getTypedRuleContext(Select_statementContext,0); + }; + + update_statement() { + return this.getTypedRuleContext(Update_statementContext,0); + }; + + delete_statement() { + return this.getTypedRuleContext(Delete_statementContext,0); + }; + + insert_statement() { + return this.getTypedRuleContext(Insert_statementContext,0); + }; + + explain_statement() { + return this.getTypedRuleContext(Explain_statementContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitData_manipulation_language_statements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cursor_manipulation_statementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cursor_manipulation_statements; + } + + close_statement() { + return this.getTypedRuleContext(Close_statementContext,0); + }; + + open_statement() { + return this.getTypedRuleContext(Open_statementContext,0); + }; + + fetch_statement() { + return this.getTypedRuleContext(Fetch_statementContext,0); + }; + + open_for_statement() { + return this.getTypedRuleContext(Open_for_statementContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCursor_manipulation_statements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Close_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_close_statement; + } + + CLOSE() { + return this.getToken(OracleSqlParser.CLOSE, 0); + }; + + cursor_name() { + return this.getTypedRuleContext(Cursor_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitClose_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Open_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_open_statement; + } + + OPEN() { + return this.getToken(OracleSqlParser.OPEN, 0); + }; + + cursor_name() { + return this.getTypedRuleContext(Cursor_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOpen_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Fetch_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_fetch_statement; + this.it1 = null; + } + + FETCH() { + return this.getToken(OracleSqlParser.FETCH, 0); + }; + + cursor_name() { + return this.getTypedRuleContext(Cursor_nameContext,0); + }; + + variable_or_collection = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Variable_or_collectionContext); + } else { + return this.getTypedRuleContext(Variable_or_collectionContext,i); + } + }; + + BULK() { + return this.getToken(OracleSqlParser.BULK, 0); + }; + + COLLECT() { + return this.getToken(OracleSqlParser.COLLECT, 0); + }; + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + LIMIT() { + return this.getToken(OracleSqlParser.LIMIT, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFetch_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Variable_or_collectionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_variable_or_collection; + } + + variable_name() { + return this.getTypedRuleContext(Variable_nameContext,0); + }; + + collection_expression() { + return this.getTypedRuleContext(Collection_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitVariable_or_collection(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Open_for_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_open_for_statement; + } + + OPEN() { + return this.getToken(OracleSqlParser.OPEN, 0); + }; + + variable_name() { + return this.getTypedRuleContext(Variable_nameContext,0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + select_statement() { + return this.getTypedRuleContext(Select_statementContext,0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + using_clause() { + return this.getTypedRuleContext(Using_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOpen_for_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Transaction_control_statementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_transaction_control_statements; + } + + set_transaction_command() { + return this.getTypedRuleContext(Set_transaction_commandContext,0); + }; + + set_constraint_command() { + return this.getTypedRuleContext(Set_constraint_commandContext,0); + }; + + commit_statement() { + return this.getTypedRuleContext(Commit_statementContext,0); + }; + + rollback_statement() { + return this.getTypedRuleContext(Rollback_statementContext,0); + }; + + savepoint_statement() { + return this.getTypedRuleContext(Savepoint_statementContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTransaction_control_statements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Set_transaction_commandContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_set_transaction_command; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + TRANSACTION() { + return this.getToken(OracleSqlParser.TRANSACTION, 0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + ISOLATION() { + return this.getToken(OracleSqlParser.ISOLATION, 0); + }; + + LEVEL() { + return this.getToken(OracleSqlParser.LEVEL, 0); + }; + + USE() { + return this.getToken(OracleSqlParser.USE, 0); + }; + + ROLLBACK() { + return this.getToken(OracleSqlParser.ROLLBACK, 0); + }; + + SEGMENT() { + return this.getToken(OracleSqlParser.SEGMENT, 0); + }; + + rollback_segment_name() { + return this.getTypedRuleContext(Rollback_segment_nameContext,0); + }; + + NAME() { + return this.getToken(OracleSqlParser.NAME, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + WRITE() { + return this.getToken(OracleSqlParser.WRITE, 0); + }; + + SERIALIZABLE() { + return this.getToken(OracleSqlParser.SERIALIZABLE, 0); + }; + + COMMITTED() { + return this.getToken(OracleSqlParser.COMMITTED, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSet_transaction_command(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Set_constraint_commandContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_set_constraint_command; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + CONSTRAINTS() { + return this.getToken(OracleSqlParser.CONSTRAINTS, 0); + }; + + IMMEDIATE() { + return this.getToken(OracleSqlParser.IMMEDIATE, 0); + }; + + DEFERRED() { + return this.getToken(OracleSqlParser.DEFERRED, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + constraint_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Constraint_nameContext); + } else { + return this.getTypedRuleContext(Constraint_nameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSet_constraint_command(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Commit_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_commit_statement; + } + + COMMIT() { + return this.getToken(OracleSqlParser.COMMIT, 0); + }; + + WORK() { + return this.getToken(OracleSqlParser.WORK, 0); + }; + + write_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Write_clauseContext); + } else { + return this.getTypedRuleContext(Write_clauseContext,i); + } + }; + + COMMENT() { + return this.getToken(OracleSqlParser.COMMENT, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + CORRUPT_XID() { + return this.getToken(OracleSqlParser.CORRUPT_XID, 0); + }; + + CORRUPT_XID_ALL() { + return this.getToken(OracleSqlParser.CORRUPT_XID_ALL, 0); + }; + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCommit_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Write_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_write_clause; + } + + WRITE() { + return this.getToken(OracleSqlParser.WRITE, 0); + }; + + IMMEDIATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.IMMEDIATE); + } else { + return this.getToken(OracleSqlParser.IMMEDIATE, i); + } + }; + + + BATCH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BATCH); + } else { + return this.getToken(OracleSqlParser.BATCH, i); + } + }; + + + WAIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.WAIT); + } else { + return this.getToken(OracleSqlParser.WAIT, i); + } + }; + + + NOWAIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NOWAIT); + } else { + return this.getToken(OracleSqlParser.NOWAIT, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWrite_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Rollback_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_rollback_statement; + } + + ROLLBACK() { + return this.getToken(OracleSqlParser.ROLLBACK, 0); + }; + + WORK() { + return this.getToken(OracleSqlParser.WORK, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + savepoint_name() { + return this.getTypedRuleContext(Savepoint_nameContext,0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + SAVEPOINT() { + return this.getToken(OracleSqlParser.SAVEPOINT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRollback_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Savepoint_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_savepoint_statement; + } + + SAVEPOINT() { + return this.getToken(OracleSqlParser.SAVEPOINT, 0); + }; + + savepoint_name() { + return this.getTypedRuleContext(Savepoint_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSavepoint_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Collection_method_callContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_collection_method_call; + this._expression = null; + this.index = []; + } + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + TRIM() { + return this.getToken(OracleSqlParser.TRIM, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + EXTEND() { + return this.getToken(OracleSqlParser.EXTEND, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCollection_method_call(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Explain_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_explain_statement; + } + + EXPLAIN() { + return this.getToken(OracleSqlParser.EXPLAIN, 0); + }; + + PLAN() { + return this.getToken(OracleSqlParser.PLAN, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + select_statement() { + return this.getTypedRuleContext(Select_statementContext,0); + }; + + update_statement() { + return this.getTypedRuleContext(Update_statementContext,0); + }; + + delete_statement() { + return this.getTypedRuleContext(Delete_statementContext,0); + }; + + insert_statement() { + return this.getTypedRuleContext(Insert_statementContext,0); + }; + + merge_statement() { + return this.getTypedRuleContext(Merge_statementContext,0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + STATEMENT_ID() { + return this.getToken(OracleSqlParser.STATEMENT_ID, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExplain_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Select_only_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_select_only_statement; + } + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + with_clause() { + return this.getTypedRuleContext(With_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSelect_only_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Select_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_select_statement; + } + + select_only_statement() { + return this.getTypedRuleContext(Select_only_statementContext,0); + }; + + for_update_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(For_update_clauseContext); + } else { + return this.getTypedRuleContext(For_update_clauseContext,i); + } + }; + + order_by_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Order_by_clauseContext); + } else { + return this.getTypedRuleContext(Order_by_clauseContext,i); + } + }; + + offset_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Offset_clauseContext); + } else { + return this.getTypedRuleContext(Offset_clauseContext,i); + } + }; + + fetch_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Fetch_clauseContext); + } else { + return this.getTypedRuleContext(Fetch_clauseContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSelect_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class With_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_with_clause; + } + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + with_factoring_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(With_factoring_clauseContext); + } else { + return this.getTypedRuleContext(With_factoring_clauseContext,i); + } + }; + + function_body = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_bodyContext); + } else { + return this.getTypedRuleContext(Function_bodyContext,i); + } + }; + + procedure_body = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Procedure_bodyContext); + } else { + return this.getTypedRuleContext(Procedure_bodyContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWith_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class With_factoring_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_with_factoring_clause; + } + + subquery_factoring_clause() { + return this.getTypedRuleContext(Subquery_factoring_clauseContext,0); + }; + + subav_factoring_clause() { + return this.getTypedRuleContext(Subav_factoring_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWith_factoring_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subquery_factoring_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subquery_factoring_clause; + } + + query_name() { + return this.getTypedRuleContext(Query_nameContext,0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + order_by_clause() { + return this.getTypedRuleContext(Order_by_clauseContext,0); + }; + + search_clause() { + return this.getTypedRuleContext(Search_clauseContext,0); + }; + + cycle_clause() { + return this.getTypedRuleContext(Cycle_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubquery_factoring_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Search_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_search_clause; + } + + SEARCH() { + return this.getToken(OracleSqlParser.SEARCH, 0); + }; + + FIRST = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.FIRST); + } else { + return this.getToken(OracleSqlParser.FIRST, i); + } + }; + + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + DEPTH() { + return this.getToken(OracleSqlParser.DEPTH, 0); + }; + + BREADTH() { + return this.getToken(OracleSqlParser.BREADTH, 0); + }; + + ASC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ASC); + } else { + return this.getToken(OracleSqlParser.ASC, i); + } + }; + + + DESC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DESC); + } else { + return this.getToken(OracleSqlParser.DESC, i); + } + }; + + + NULLS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NULLS); + } else { + return this.getToken(OracleSqlParser.NULLS, i); + } + }; + + + LAST = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LAST); + } else { + return this.getToken(OracleSqlParser.LAST, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSearch_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cycle_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cycle_clause; + } + + CYCLE() { + return this.getToken(OracleSqlParser.CYCLE, 0); + }; + + column_list() { + return this.getTypedRuleContext(Column_listContext,0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCycle_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subav_factoring_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subav_factoring_clause; + this.subav_name = null; + } + + ANALYTIC() { + return this.getToken(OracleSqlParser.ANALYTIC, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + subav_clause() { + return this.getTypedRuleContext(Subav_clauseContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubav_factoring_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subav_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subav_clause; + this.subav_name = null; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + object_name() { + return this.getTypedRuleContext(Object_nameContext,0); + }; + + hierarchies_clause() { + return this.getTypedRuleContext(Hierarchies_clauseContext,0); + }; + + filter_clauses() { + return this.getTypedRuleContext(Filter_clausesContext,0); + }; + + add_calcs_clause() { + return this.getTypedRuleContext(Add_calcs_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubav_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hierarchies_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hierarchies_clause; + this._object_name = null; + this.hier_alias = []; + } + + HIERARCHIES() { + return this.getToken(OracleSqlParser.HIERARCHIES, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + object_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Object_nameContext); + } else { + return this.getTypedRuleContext(Object_nameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHierarchies_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Filter_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_filter_clauses; + } + + FILTER() { + return this.getToken(OracleSqlParser.FILTER, 0); + }; + + FACT() { + return this.getToken(OracleSqlParser.FACT, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + filter_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Filter_clauseContext); + } else { + return this.getTypedRuleContext(Filter_clauseContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFilter_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Filter_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_filter_clause; + this.hier_alias = null; + } + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + MEASURES() { + return this.getToken(OracleSqlParser.MEASURES, 0); + }; + + object_name() { + return this.getTypedRuleContext(Object_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFilter_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_calcs_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_calcs_clause; + } + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + MEASURES() { + return this.getToken(OracleSqlParser.MEASURES, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + add_calc_meas_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Add_calc_meas_clauseContext); + } else { + return this.getTypedRuleContext(Add_calc_meas_clauseContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_calcs_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Add_calc_meas_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_add_calc_meas_clause; + this.meas_name = null; + } + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAdd_calc_meas_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class SubqueryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subquery; + } + + subquery_basic_elements() { + return this.getTypedRuleContext(Subquery_basic_elementsContext,0); + }; + + subquery_operation_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Subquery_operation_partContext); + } else { + return this.getTypedRuleContext(Subquery_operation_partContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubquery(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subquery_basic_elementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subquery_basic_elements; + } + + query_block() { + return this.getTypedRuleContext(Query_blockContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubquery_basic_elements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subquery_operation_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subquery_operation_part; + } + + subquery_basic_elements() { + return this.getTypedRuleContext(Subquery_basic_elementsContext,0); + }; + + UNION() { + return this.getToken(OracleSqlParser.UNION, 0); + }; + + INTERSECT() { + return this.getToken(OracleSqlParser.INTERSECT, 0); + }; + + MINUS() { + return this.getToken(OracleSqlParser.MINUS, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubquery_operation_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Query_blockContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_query_block; + } + + SELECT() { + return this.getToken(OracleSqlParser.SELECT, 0); + }; + + selected_list() { + return this.getTypedRuleContext(Selected_listContext,0); + }; + + into_clause() { + return this.getTypedRuleContext(Into_clauseContext,0); + }; + + from_clause() { + return this.getTypedRuleContext(From_clauseContext,0); + }; + + where_clause() { + return this.getTypedRuleContext(Where_clauseContext,0); + }; + + hierarchical_query_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Hierarchical_query_clauseContext); + } else { + return this.getTypedRuleContext(Hierarchical_query_clauseContext,i); + } + }; + + group_by_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Group_by_clauseContext); + } else { + return this.getTypedRuleContext(Group_by_clauseContext,i); + } + }; + + model_clause() { + return this.getTypedRuleContext(Model_clauseContext,0); + }; + + order_by_clause() { + return this.getTypedRuleContext(Order_by_clauseContext,0); + }; + + offset_clause() { + return this.getTypedRuleContext(Offset_clauseContext,0); + }; + + fetch_clause() { + return this.getTypedRuleContext(Fetch_clauseContext,0); + }; + + DISTINCT() { + return this.getToken(OracleSqlParser.DISTINCT, 0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitQuery_block(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Selected_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_selected_list; + } + + ASTERISK() { + return this.getToken(OracleSqlParser.ASTERISK, 0); + }; + + select_list_elements = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Select_list_elementsContext); + } else { + return this.getTypedRuleContext(Select_list_elementsContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSelected_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class From_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_from_clause; + } + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + table_ref_list() { + return this.getTypedRuleContext(Table_ref_listContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFrom_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Select_list_elementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_select_list_elements; + } + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + ASTERISK() { + return this.getToken(OracleSqlParser.ASTERISK, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + column_alias() { + return this.getTypedRuleContext(Column_aliasContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSelect_list_elements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_ref_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_ref_list; + } + + table_ref = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_refContext); + } else { + return this.getTypedRuleContext(Table_refContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_ref_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_refContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_ref; + } + + table_ref_aux() { + return this.getTypedRuleContext(Table_ref_auxContext,0); + }; + + join_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Join_clauseContext); + } else { + return this.getTypedRuleContext(Join_clauseContext,i); + } + }; + + pivot_clause() { + return this.getTypedRuleContext(Pivot_clauseContext,0); + }; + + unpivot_clause() { + return this.getTypedRuleContext(Unpivot_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_ref(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_ref_auxContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_ref_aux; + } + + table_ref_aux_internal() { + return this.getTypedRuleContext(Table_ref_aux_internalContext,0); + }; + + flashback_query_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Flashback_query_clauseContext); + } else { + return this.getTypedRuleContext(Flashback_query_clauseContext,i); + } + }; + + table_alias() { + return this.getTypedRuleContext(Table_aliasContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_ref_aux(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_ref_aux_internalContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_ref_aux_internal; + } + + + + copyFrom(ctx) { + super.copyFrom(ctx); + } + +} + + +class Table_ref_aux_internal_oneContext extends Table_ref_aux_internalContext { + + constructor(parser, ctx) { + super(parser); + super.copyFrom(ctx); + } + + dml_table_expression_clause() { + return this.getTypedRuleContext(Dml_table_expression_clauseContext,0); + }; + + pivot_clause() { + return this.getTypedRuleContext(Pivot_clauseContext,0); + }; + + unpivot_clause() { + return this.getTypedRuleContext(Unpivot_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_ref_aux_internal_one(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + +OracleSqlParser.Table_ref_aux_internal_oneContext = Table_ref_aux_internal_oneContext; + +class Table_ref_aux_internal_threContext extends Table_ref_aux_internalContext { + + constructor(parser, ctx) { + super(parser); + super.copyFrom(ctx); + } + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + dml_table_expression_clause() { + return this.getTypedRuleContext(Dml_table_expression_clauseContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_ref_aux_internal_thre(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + +OracleSqlParser.Table_ref_aux_internal_threContext = Table_ref_aux_internal_threContext; + +class Table_ref_aux_internal_twoContext extends Table_ref_aux_internalContext { + + constructor(parser, ctx) { + super(parser); + super.copyFrom(ctx); + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + table_ref() { + return this.getTypedRuleContext(Table_refContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + subquery_operation_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Subquery_operation_partContext); + } else { + return this.getTypedRuleContext(Subquery_operation_partContext,i); + } + }; + + pivot_clause() { + return this.getTypedRuleContext(Pivot_clauseContext,0); + }; + + unpivot_clause() { + return this.getTypedRuleContext(Unpivot_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_ref_aux_internal_two(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + +OracleSqlParser.Table_ref_aux_internal_twoContext = Table_ref_aux_internal_twoContext; + +class Join_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_join_clause; + } + + JOIN() { + return this.getToken(OracleSqlParser.JOIN, 0); + }; + + table_ref_aux() { + return this.getTypedRuleContext(Table_ref_auxContext,0); + }; + + query_partition_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Query_partition_clauseContext); + } else { + return this.getTypedRuleContext(Query_partition_clauseContext,i); + } + }; + + INNER() { + return this.getToken(OracleSqlParser.INNER, 0); + }; + + outer_join_type() { + return this.getTypedRuleContext(Outer_join_typeContext,0); + }; + + join_on_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Join_on_partContext); + } else { + return this.getTypedRuleContext(Join_on_partContext,i); + } + }; + + join_using_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Join_using_partContext); + } else { + return this.getTypedRuleContext(Join_using_partContext,i); + } + }; + + CROSS() { + return this.getToken(OracleSqlParser.CROSS, 0); + }; + + NATURAL() { + return this.getToken(OracleSqlParser.NATURAL, 0); + }; + + APPLY() { + return this.getToken(OracleSqlParser.APPLY, 0); + }; + + OUTER() { + return this.getToken(OracleSqlParser.OUTER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJoin_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Join_on_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_join_on_part; + } + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJoin_on_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Join_using_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_join_using_part; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJoin_using_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Outer_join_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_outer_join_type; + } + + FULL() { + return this.getToken(OracleSqlParser.FULL, 0); + }; + + LEFT() { + return this.getToken(OracleSqlParser.LEFT, 0); + }; + + RIGHT() { + return this.getToken(OracleSqlParser.RIGHT, 0); + }; + + OUTER() { + return this.getToken(OracleSqlParser.OUTER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOuter_join_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Query_partition_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_query_partition_clause; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitQuery_partition_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Flashback_query_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_flashback_query_clause; + } + + VERSIONS() { + return this.getToken(OracleSqlParser.VERSIONS, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + AND() { + return this.getToken(OracleSqlParser.AND, 0); + }; + + PERIOD_KEYWORD() { + return this.getToken(OracleSqlParser.PERIOD_KEYWORD, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + BETWEEN() { + return this.getToken(OracleSqlParser.BETWEEN, 0); + }; + + SCN() { + return this.getToken(OracleSqlParser.SCN, 0); + }; + + TIMESTAMP() { + return this.getToken(OracleSqlParser.TIMESTAMP, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + SNAPSHOT() { + return this.getToken(OracleSqlParser.SNAPSHOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFlashback_query_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pivot_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pivot_clause; + } + + PIVOT() { + return this.getToken(OracleSqlParser.PIVOT, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + pivot_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Pivot_elementContext); + } else { + return this.getTypedRuleContext(Pivot_elementContext,i); + } + }; + + pivot_for_clause() { + return this.getTypedRuleContext(Pivot_for_clauseContext,0); + }; + + pivot_in_clause() { + return this.getTypedRuleContext(Pivot_in_clauseContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + XML() { + return this.getToken(OracleSqlParser.XML, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + table_alias() { + return this.getTypedRuleContext(Table_aliasContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPivot_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pivot_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pivot_element; + } + + numeric_function() { + return this.getTypedRuleContext(Numeric_functionContext,0); + }; + + aggregate_function_name() { + return this.getTypedRuleContext(Aggregate_function_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + column_alias() { + return this.getTypedRuleContext(Column_aliasContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPivot_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pivot_for_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pivot_for_clause; + } + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPivot_for_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pivot_in_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pivot_in_clause; + } + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + ANY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ANY); + } else { + return this.getToken(OracleSqlParser.ANY, i); + } + }; + + + pivot_in_clause_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Pivot_in_clause_elementContext); + } else { + return this.getTypedRuleContext(Pivot_in_clause_elementContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPivot_in_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pivot_in_clause_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pivot_in_clause_element; + } + + pivot_in_clause_elements() { + return this.getTypedRuleContext(Pivot_in_clause_elementsContext,0); + }; + + column_alias() { + return this.getTypedRuleContext(Column_aliasContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPivot_in_clause_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Pivot_in_clause_elementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_pivot_in_clause_elements; + } + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPivot_in_clause_elements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Unpivot_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_unpivot_clause; + } + + UNPIVOT() { + return this.getToken(OracleSqlParser.UNPIVOT, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + pivot_for_clause() { + return this.getTypedRuleContext(Pivot_for_clauseContext,0); + }; + + unpivot_in_clause() { + return this.getTypedRuleContext(Unpivot_in_clauseContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + NULLS() { + return this.getToken(OracleSqlParser.NULLS, 0); + }; + + table_alias() { + return this.getTypedRuleContext(Table_aliasContext,0); + }; + + INCLUDE() { + return this.getToken(OracleSqlParser.INCLUDE, 0); + }; + + EXCLUDE() { + return this.getToken(OracleSqlParser.EXCLUDE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUnpivot_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Unpivot_in_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_unpivot_in_clause; + } + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + unpivot_in_elements = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Unpivot_in_elementsContext); + } else { + return this.getTypedRuleContext(Unpivot_in_elementsContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUnpivot_in_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Unpivot_in_elementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_unpivot_in_elements; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + constant = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConstantContext); + } else { + return this.getTypedRuleContext(ConstantContext,i); + } + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUnpivot_in_elements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Hierarchical_query_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_hierarchical_query_clause; + } + + CONNECT() { + return this.getToken(OracleSqlParser.CONNECT, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + NOCYCLE() { + return this.getToken(OracleSqlParser.NOCYCLE, 0); + }; + + start_part() { + return this.getTypedRuleContext(Start_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHierarchical_query_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Start_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_start_part; + } + + START() { + return this.getToken(OracleSqlParser.START, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStart_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Group_by_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_group_by_clause; + } + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + group_by_elements = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Group_by_elementsContext); + } else { + return this.getTypedRuleContext(Group_by_elementsContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + having_clause() { + return this.getTypedRuleContext(Having_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGroup_by_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Group_by_elementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_group_by_elements; + } + + grouping_sets_clause() { + return this.getTypedRuleContext(Grouping_sets_clauseContext,0); + }; + + rollup_cube_clause() { + return this.getTypedRuleContext(Rollup_cube_clauseContext,0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGroup_by_elements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Rollup_cube_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_rollup_cube_clause; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + grouping_sets_elements = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Grouping_sets_elementsContext); + } else { + return this.getTypedRuleContext(Grouping_sets_elementsContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + ROLLUP() { + return this.getToken(OracleSqlParser.ROLLUP, 0); + }; + + CUBE() { + return this.getToken(OracleSqlParser.CUBE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRollup_cube_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Grouping_sets_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_grouping_sets_clause; + } + + GROUPING() { + return this.getToken(OracleSqlParser.GROUPING, 0); + }; + + SETS() { + return this.getToken(OracleSqlParser.SETS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + grouping_sets_elements = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Grouping_sets_elementsContext); + } else { + return this.getTypedRuleContext(Grouping_sets_elementsContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGrouping_sets_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Grouping_sets_elementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_grouping_sets_elements; + } + + rollup_cube_clause() { + return this.getTypedRuleContext(Rollup_cube_clauseContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGrouping_sets_elements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Having_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_having_clause; + } + + HAVING() { + return this.getToken(OracleSqlParser.HAVING, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitHaving_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Model_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_model_clause; + } + + MODEL() { + return this.getToken(OracleSqlParser.MODEL, 0); + }; + + main_model() { + return this.getTypedRuleContext(Main_modelContext,0); + }; + + cell_reference_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Cell_reference_optionsContext); + } else { + return this.getTypedRuleContext(Cell_reference_optionsContext,i); + } + }; + + return_rows_clause() { + return this.getTypedRuleContext(Return_rows_clauseContext,0); + }; + + reference_model = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Reference_modelContext); + } else { + return this.getTypedRuleContext(Reference_modelContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModel_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cell_reference_optionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cell_reference_options; + } + + NAV() { + return this.getToken(OracleSqlParser.NAV, 0); + }; + + IGNORE() { + return this.getToken(OracleSqlParser.IGNORE, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + DIMENSION() { + return this.getToken(OracleSqlParser.DIMENSION, 0); + }; + + SINGLE() { + return this.getToken(OracleSqlParser.SINGLE, 0); + }; + + REFERENCE() { + return this.getToken(OracleSqlParser.REFERENCE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCell_reference_options(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Return_rows_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_return_rows_clause; + } + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + ROWS() { + return this.getToken(OracleSqlParser.ROWS, 0); + }; + + UPDATED() { + return this.getToken(OracleSqlParser.UPDATED, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReturn_rows_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Reference_modelContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_reference_model; + } + + REFERENCE() { + return this.getToken(OracleSqlParser.REFERENCE, 0); + }; + + reference_model_name() { + return this.getTypedRuleContext(Reference_model_nameContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + model_column_clauses() { + return this.getTypedRuleContext(Model_column_clausesContext,0); + }; + + cell_reference_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Cell_reference_optionsContext); + } else { + return this.getTypedRuleContext(Cell_reference_optionsContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReference_model(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Main_modelContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_main_model; + } + + model_column_clauses() { + return this.getTypedRuleContext(Model_column_clausesContext,0); + }; + + model_rules_clause() { + return this.getTypedRuleContext(Model_rules_clauseContext,0); + }; + + MAIN() { + return this.getToken(OracleSqlParser.MAIN, 0); + }; + + main_model_name() { + return this.getTypedRuleContext(Main_model_nameContext,0); + }; + + cell_reference_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Cell_reference_optionsContext); + } else { + return this.getTypedRuleContext(Cell_reference_optionsContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMain_model(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Model_column_clausesContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_model_column_clauses; + } + + DIMENSION() { + return this.getToken(OracleSqlParser.DIMENSION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + model_column_list = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Model_column_listContext); + } else { + return this.getTypedRuleContext(Model_column_listContext,i); + } + }; + + MEASURES() { + return this.getToken(OracleSqlParser.MEASURES, 0); + }; + + model_column_partition_part() { + return this.getTypedRuleContext(Model_column_partition_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModel_column_clauses(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Model_column_partition_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_model_column_partition_part; + } + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + model_column_list() { + return this.getTypedRuleContext(Model_column_listContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModel_column_partition_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Model_column_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_model_column_list; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + model_column = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Model_columnContext); + } else { + return this.getTypedRuleContext(Model_columnContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModel_column_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Model_columnContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_model_column; + } + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + query_block() { + return this.getTypedRuleContext(Query_blockContext,0); + }; + + column_alias() { + return this.getTypedRuleContext(Column_aliasContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModel_column(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Model_rules_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_model_rules_clause; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + model_rules_part() { + return this.getTypedRuleContext(Model_rules_partContext,0); + }; + + model_rules_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Model_rules_elementContext); + } else { + return this.getTypedRuleContext(Model_rules_elementContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModel_rules_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Model_rules_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_model_rules_part; + } + + RULES() { + return this.getToken(OracleSqlParser.RULES, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + UPSERT() { + return this.getToken(OracleSqlParser.UPSERT, 0); + }; + + ORDER() { + return this.getToken(OracleSqlParser.ORDER, 0); + }; + + model_iterate_clause() { + return this.getTypedRuleContext(Model_iterate_clauseContext,0); + }; + + AUTOMATIC() { + return this.getToken(OracleSqlParser.AUTOMATIC, 0); + }; + + SEQUENTIAL() { + return this.getToken(OracleSqlParser.SEQUENTIAL, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModel_rules_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Model_rules_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_model_rules_element; + } + + cell_assignment() { + return this.getTypedRuleContext(Cell_assignmentContext,0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + UPSERT() { + return this.getToken(OracleSqlParser.UPSERT, 0); + }; + + order_by_clause() { + return this.getTypedRuleContext(Order_by_clauseContext,0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModel_rules_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cell_assignmentContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cell_assignment; + } + + model_expression() { + return this.getTypedRuleContext(Model_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCell_assignment(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Model_iterate_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_model_iterate_clause; + } + + ITERATE() { + return this.getToken(OracleSqlParser.ITERATE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + until_part() { + return this.getTypedRuleContext(Until_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModel_iterate_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Until_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_until_part; + } + + UNTIL() { + return this.getToken(OracleSqlParser.UNTIL, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUntil_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Order_by_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_order_by_clause; + } + + ORDER() { + return this.getToken(OracleSqlParser.ORDER, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + order_by_elements = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Order_by_elementsContext); + } else { + return this.getTypedRuleContext(Order_by_elementsContext,i); + } + }; + + SIBLINGS() { + return this.getToken(OracleSqlParser.SIBLINGS, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOrder_by_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Order_by_elementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_order_by_elements; + } + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + NULLS() { + return this.getToken(OracleSqlParser.NULLS, 0); + }; + + ASC() { + return this.getToken(OracleSqlParser.ASC, 0); + }; + + DESC() { + return this.getToken(OracleSqlParser.DESC, 0); + }; + + FIRST() { + return this.getToken(OracleSqlParser.FIRST, 0); + }; + + LAST() { + return this.getToken(OracleSqlParser.LAST, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOrder_by_elements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Offset_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_offset_clause; + } + + OFFSET() { + return this.getToken(OracleSqlParser.OFFSET, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + ROW() { + return this.getToken(OracleSqlParser.ROW, 0); + }; + + ROWS() { + return this.getToken(OracleSqlParser.ROWS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOffset_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Fetch_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_fetch_clause; + } + + FETCH() { + return this.getToken(OracleSqlParser.FETCH, 0); + }; + + FIRST() { + return this.getToken(OracleSqlParser.FIRST, 0); + }; + + NEXT() { + return this.getToken(OracleSqlParser.NEXT, 0); + }; + + ROW() { + return this.getToken(OracleSqlParser.ROW, 0); + }; + + ROWS() { + return this.getToken(OracleSqlParser.ROWS, 0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + TIES() { + return this.getToken(OracleSqlParser.TIES, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + PERCENT_KEYWORD() { + return this.getToken(OracleSqlParser.PERCENT_KEYWORD, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFetch_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class For_update_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_for_update_clause; + } + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + for_update_of_part() { + return this.getTypedRuleContext(For_update_of_partContext,0); + }; + + for_update_options() { + return this.getTypedRuleContext(For_update_optionsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFor_update_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class For_update_of_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_for_update_of_part; + } + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + column_list() { + return this.getTypedRuleContext(Column_listContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFor_update_of_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class For_update_optionsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_for_update_options; + } + + SKIP_() { + return this.getToken(OracleSqlParser.SKIP_, 0); + }; + + LOCKED() { + return this.getToken(OracleSqlParser.LOCKED, 0); + }; + + NOWAIT() { + return this.getToken(OracleSqlParser.NOWAIT, 0); + }; + + WAIT() { + return this.getToken(OracleSqlParser.WAIT, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFor_update_options(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Update_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_update_statement; + } + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + general_table_ref() { + return this.getTypedRuleContext(General_table_refContext,0); + }; + + update_set_clause() { + return this.getTypedRuleContext(Update_set_clauseContext,0); + }; + + where_clause() { + return this.getTypedRuleContext(Where_clauseContext,0); + }; + + static_returning_clause() { + return this.getTypedRuleContext(Static_returning_clauseContext,0); + }; + + error_logging_clause() { + return this.getTypedRuleContext(Error_logging_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUpdate_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Update_set_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_update_set_clause; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + column_based_update_set_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_based_update_set_clauseContext); + } else { + return this.getTypedRuleContext(Column_based_update_set_clauseContext,i); + } + }; + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUpdate_set_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Column_based_update_set_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_column_based_update_set_clause; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitColumn_based_update_set_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Delete_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_delete_statement; + } + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + general_table_ref() { + return this.getTypedRuleContext(General_table_refContext,0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + where_clause() { + return this.getTypedRuleContext(Where_clauseContext,0); + }; + + static_returning_clause() { + return this.getTypedRuleContext(Static_returning_clauseContext,0); + }; + + error_logging_clause() { + return this.getTypedRuleContext(Error_logging_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDelete_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Insert_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_insert_statement; + } + + INSERT() { + return this.getToken(OracleSqlParser.INSERT, 0); + }; + + single_table_insert() { + return this.getTypedRuleContext(Single_table_insertContext,0); + }; + + multi_table_insert() { + return this.getTypedRuleContext(Multi_table_insertContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInsert_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Single_table_insertContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_single_table_insert; + } + + insert_into_clause() { + return this.getTypedRuleContext(Insert_into_clauseContext,0); + }; + + values_clause() { + return this.getTypedRuleContext(Values_clauseContext,0); + }; + + select_statement() { + return this.getTypedRuleContext(Select_statementContext,0); + }; + + error_logging_clause() { + return this.getTypedRuleContext(Error_logging_clauseContext,0); + }; + + static_returning_clause() { + return this.getTypedRuleContext(Static_returning_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSingle_table_insert(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Multi_table_insertContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_multi_table_insert; + } + + select_statement() { + return this.getTypedRuleContext(Select_statementContext,0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + conditional_insert_clause() { + return this.getTypedRuleContext(Conditional_insert_clauseContext,0); + }; + + multi_table_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Multi_table_elementContext); + } else { + return this.getTypedRuleContext(Multi_table_elementContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMulti_table_insert(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Multi_table_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_multi_table_element; + } + + insert_into_clause() { + return this.getTypedRuleContext(Insert_into_clauseContext,0); + }; + + values_clause() { + return this.getTypedRuleContext(Values_clauseContext,0); + }; + + error_logging_clause() { + return this.getTypedRuleContext(Error_logging_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMulti_table_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Conditional_insert_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_conditional_insert_clause; + } + + conditional_insert_when_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Conditional_insert_when_partContext); + } else { + return this.getTypedRuleContext(Conditional_insert_when_partContext,i); + } + }; + + conditional_insert_else_part() { + return this.getTypedRuleContext(Conditional_insert_else_partContext,0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + FIRST() { + return this.getToken(OracleSqlParser.FIRST, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConditional_insert_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Conditional_insert_when_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_conditional_insert_when_part; + } + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + THEN() { + return this.getToken(OracleSqlParser.THEN, 0); + }; + + multi_table_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Multi_table_elementContext); + } else { + return this.getTypedRuleContext(Multi_table_elementContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConditional_insert_when_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Conditional_insert_else_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_conditional_insert_else_part; + } + + ELSE() { + return this.getToken(OracleSqlParser.ELSE, 0); + }; + + multi_table_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Multi_table_elementContext); + } else { + return this.getTypedRuleContext(Multi_table_elementContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConditional_insert_else_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Insert_into_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_insert_into_clause; + } + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + general_table_ref() { + return this.getTypedRuleContext(General_table_refContext,0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInsert_into_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Values_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_values_clause; + } + + VALUES() { + return this.getToken(OracleSqlParser.VALUES, 0); + }; + + REGULAR_ID() { + return this.getToken(OracleSqlParser.REGULAR_ID, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + collection_expression() { + return this.getTypedRuleContext(Collection_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitValues_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Merge_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_merge_statement; + } + + MERGE() { + return this.getToken(OracleSqlParser.MERGE, 0); + }; + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + selected_tableview() { + return this.getTypedRuleContext(Selected_tableviewContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + table_alias() { + return this.getTypedRuleContext(Table_aliasContext,0); + }; + + merge_update_clause() { + return this.getTypedRuleContext(Merge_update_clauseContext,0); + }; + + merge_insert_clause() { + return this.getTypedRuleContext(Merge_insert_clauseContext,0); + }; + + error_logging_clause() { + return this.getTypedRuleContext(Error_logging_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMerge_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Merge_update_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_merge_update_clause; + } + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + MATCHED() { + return this.getToken(OracleSqlParser.MATCHED, 0); + }; + + THEN() { + return this.getToken(OracleSqlParser.THEN, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + merge_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Merge_elementContext); + } else { + return this.getTypedRuleContext(Merge_elementContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + where_clause() { + return this.getTypedRuleContext(Where_clauseContext,0); + }; + + merge_update_delete_part() { + return this.getTypedRuleContext(Merge_update_delete_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMerge_update_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Merge_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_merge_element; + } + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMerge_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Merge_update_delete_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_merge_update_delete_part; + } + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + where_clause() { + return this.getTypedRuleContext(Where_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMerge_update_delete_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Merge_insert_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_merge_insert_clause; + } + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + MATCHED() { + return this.getToken(OracleSqlParser.MATCHED, 0); + }; + + THEN() { + return this.getToken(OracleSqlParser.THEN, 0); + }; + + INSERT() { + return this.getToken(OracleSqlParser.INSERT, 0); + }; + + values_clause() { + return this.getTypedRuleContext(Values_clauseContext,0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + where_clause() { + return this.getTypedRuleContext(Where_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMerge_insert_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Selected_tableviewContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_selected_tableview; + } + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + select_statement() { + return this.getTypedRuleContext(Select_statementContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + table_collection_expression() { + return this.getTypedRuleContext(Table_collection_expressionContext,0); + }; + + table_alias() { + return this.getTypedRuleContext(Table_aliasContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSelected_tableview(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lock_table_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lock_table_statement; + } + + LOCK() { + return this.getToken(OracleSqlParser.LOCK, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + lock_table_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Lock_table_elementContext); + } else { + return this.getTypedRuleContext(Lock_table_elementContext,i); + } + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + lock_mode() { + return this.getTypedRuleContext(Lock_modeContext,0); + }; + + MODE() { + return this.getToken(OracleSqlParser.MODE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + wait_nowait_part() { + return this.getTypedRuleContext(Wait_nowait_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLock_table_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Wait_nowait_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_wait_nowait_part; + } + + WAIT() { + return this.getToken(OracleSqlParser.WAIT, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + NOWAIT() { + return this.getToken(OracleSqlParser.NOWAIT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWait_nowait_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lock_table_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lock_table_element; + } + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + partition_extension_clause() { + return this.getTypedRuleContext(Partition_extension_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLock_table_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Lock_modeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_lock_mode; + } + + ROW() { + return this.getToken(OracleSqlParser.ROW, 0); + }; + + SHARE() { + return this.getToken(OracleSqlParser.SHARE, 0); + }; + + EXCLUSIVE() { + return this.getToken(OracleSqlParser.EXCLUSIVE, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLock_mode(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class General_table_refContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_general_table_ref; + } + + dml_table_expression_clause() { + return this.getTypedRuleContext(Dml_table_expression_clauseContext,0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + table_alias() { + return this.getTypedRuleContext(Table_aliasContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGeneral_table_ref(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Static_returning_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_static_returning_clause; + } + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + into_clause() { + return this.getTypedRuleContext(Into_clauseContext,0); + }; + + RETURNING() { + return this.getToken(OracleSqlParser.RETURNING, 0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStatic_returning_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Error_logging_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_error_logging_clause; + } + + LOG() { + return this.getToken(OracleSqlParser.LOG, 0); + }; + + ERRORS() { + return this.getToken(OracleSqlParser.ERRORS, 0); + }; + + error_logging_into_part() { + return this.getTypedRuleContext(Error_logging_into_partContext,0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + error_logging_reject_part() { + return this.getTypedRuleContext(Error_logging_reject_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitError_logging_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Error_logging_into_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_error_logging_into_part; + } + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitError_logging_into_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Error_logging_reject_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_error_logging_reject_part; + } + + REJECT() { + return this.getToken(OracleSqlParser.REJECT, 0); + }; + + LIMIT() { + return this.getToken(OracleSqlParser.LIMIT, 0); + }; + + UNLIMITED() { + return this.getToken(OracleSqlParser.UNLIMITED, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitError_logging_reject_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dml_table_expression_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dml_table_expression_clause; + } + + table_collection_expression() { + return this.getTypedRuleContext(Table_collection_expressionContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + select_statement() { + return this.getTypedRuleContext(Select_statementContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + subquery_restriction_clause() { + return this.getTypedRuleContext(Subquery_restriction_clauseContext,0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + hierarchies_clause() { + return this.getTypedRuleContext(Hierarchies_clauseContext,0); + }; + + sample_clause() { + return this.getTypedRuleContext(Sample_clauseContext,0); + }; + + json_table_clause() { + return this.getTypedRuleContext(Json_table_clauseContext,0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + LATERAL() { + return this.getToken(OracleSqlParser.LATERAL, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + RELATIONAL() { + return this.getToken(OracleSqlParser.RELATIONAL, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + XMLTYPE() { + return this.getToken(OracleSqlParser.XMLTYPE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDml_table_expression_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_collection_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_collection_expression; + } + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + THE() { + return this.getToken(OracleSqlParser.THE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + outer_join_sign() { + return this.getTypedRuleContext(Outer_join_signContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_collection_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Subquery_restriction_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_subquery_restriction_clause; + } + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + CHECK() { + return this.getToken(OracleSqlParser.CHECK, 0); + }; + + OPTION() { + return this.getToken(OracleSqlParser.OPTION, 0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + constraint_name() { + return this.getTypedRuleContext(Constraint_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSubquery_restriction_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sample_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sample_clause; + } + + SAMPLE() { + return this.getToken(OracleSqlParser.SAMPLE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + BLOCK() { + return this.getToken(OracleSqlParser.BLOCK, 0); + }; + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + seed_part() { + return this.getTypedRuleContext(Seed_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSample_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Seed_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_seed_part; + } + + SEED() { + return this.getToken(OracleSqlParser.SEED, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSeed_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class ConditionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_condition; + } + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + JSON_EQUAL() { + return this.getToken(OracleSqlParser.JSON_EQUAL, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCondition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Expressions_Context extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_expressions_; + } + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExpressions_(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class ExpressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_expression; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + TRUE() { + return this.getToken(OracleSqlParser.TRUE, 0); + }; + + FALSE() { + return this.getToken(OracleSqlParser.FALSE, 0); + }; + + APPROXIMATE_NUM_LIT() { + return this.getToken(OracleSqlParser.APPROXIMATE_NUM_LIT, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + cursor_expression() { + return this.getTypedRuleContext(Cursor_expressionContext,0); + }; + + logical_expression() { + return this.getTypedRuleContext(Logical_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitExpression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cursor_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cursor_expression; + } + + CURSOR() { + return this.getToken(OracleSqlParser.CURSOR, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCursor_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Logical_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_logical_expression; + } + + unary_logical_expression() { + return this.getTypedRuleContext(Unary_logical_expressionContext,0); + }; + + logical_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Logical_expressionContext); + } else { + return this.getTypedRuleContext(Logical_expressionContext,i); + } + }; + + AND() { + return this.getToken(OracleSqlParser.AND, 0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLogical_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Unary_logical_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_unary_logical_expression; + } + + multiset_expression() { + return this.getTypedRuleContext(Multiset_expressionContext,0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + unary_logical_operation() { + return this.getTypedRuleContext(Unary_logical_operationContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUnary_logical_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Unary_logical_operationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_unary_logical_operation; + } + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + logical_operation() { + return this.getTypedRuleContext(Logical_operationContext,0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUnary_logical_operation(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Logical_operationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_logical_operation; + } + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + NAN_() { + return this.getToken(OracleSqlParser.NAN_, 0); + }; + + PRESENT() { + return this.getToken(OracleSqlParser.PRESENT, 0); + }; + + INFINITE() { + return this.getToken(OracleSqlParser.INFINITE, 0); + }; + + A_LETTER() { + return this.getToken(OracleSqlParser.A_LETTER, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + EMPTY_() { + return this.getToken(OracleSqlParser.EMPTY_, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + type_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Type_specContext); + } else { + return this.getTypedRuleContext(Type_specContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + JSON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.JSON); + } else { + return this.getToken(OracleSqlParser.JSON, i); + } + }; + + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + FORMAT() { + return this.getToken(OracleSqlParser.FORMAT, 0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + KEYS() { + return this.getToken(OracleSqlParser.KEYS, 0); + }; + + STRICT() { + return this.getToken(OracleSqlParser.STRICT, 0); + }; + + LAX() { + return this.getToken(OracleSqlParser.LAX, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + WITHOUT() { + return this.getToken(OracleSqlParser.WITHOUT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLogical_operation(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Multiset_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_multiset_expression; + this.multiset_type = null; + this.multiset_operator = null; + } + + relational_expression() { + return this.getTypedRuleContext(Relational_expressionContext,0); + }; + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + MEMBER() { + return this.getToken(OracleSqlParser.MEMBER, 0); + }; + + SUBMULTISET() { + return this.getToken(OracleSqlParser.SUBMULTISET, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + multiset_expression() { + return this.getTypedRuleContext(Multiset_expressionContext,0); + }; + + MULTISET() { + return this.getToken(OracleSqlParser.MULTISET, 0); + }; + + EXCEPT() { + return this.getToken(OracleSqlParser.EXCEPT, 0); + }; + + INTERSECT() { + return this.getToken(OracleSqlParser.INTERSECT, 0); + }; + + UNION() { + return this.getToken(OracleSqlParser.UNION, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + DISTINCT() { + return this.getToken(OracleSqlParser.DISTINCT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMultiset_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Relational_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_relational_expression; + } + + compound_expression() { + return this.getTypedRuleContext(Compound_expressionContext,0); + }; + + relational_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Relational_expressionContext); + } else { + return this.getTypedRuleContext(Relational_expressionContext,i); + } + }; + + relational_operator() { + return this.getTypedRuleContext(Relational_operatorContext,0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + in_elements() { + return this.getTypedRuleContext(In_elementsContext,0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRelational_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Compound_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_compound_expression; + this.like_type = null; + } + + concatenation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConcatenationContext); + } else { + return this.getTypedRuleContext(ConcatenationContext,i); + } + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + in_elements() { + return this.getTypedRuleContext(In_elementsContext,0); + }; + + BETWEEN() { + return this.getToken(OracleSqlParser.BETWEEN, 0); + }; + + between_elements() { + return this.getTypedRuleContext(Between_elementsContext,0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + LIKE() { + return this.getToken(OracleSqlParser.LIKE, 0); + }; + + LIKEC() { + return this.getToken(OracleSqlParser.LIKEC, 0); + }; + + LIKE2() { + return this.getToken(OracleSqlParser.LIKE2, 0); + }; + + LIKE4() { + return this.getToken(OracleSqlParser.LIKE4, 0); + }; + + ESCAPE() { + return this.getToken(OracleSqlParser.ESCAPE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCompound_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Relational_operatorContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_relational_operator; + } + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + NOT_EQUAL_OP() { + return this.getToken(OracleSqlParser.NOT_EQUAL_OP, 0); + }; + + LESS_THAN_OP() { + return this.getToken(OracleSqlParser.LESS_THAN_OP, 0); + }; + + GREATER_THAN_OP() { + return this.getToken(OracleSqlParser.GREATER_THAN_OP, 0); + }; + + EXCLAMATION_OPERATOR_PART() { + return this.getToken(OracleSqlParser.EXCLAMATION_OPERATOR_PART, 0); + }; + + CARRET_OPERATOR_PART() { + return this.getToken(OracleSqlParser.CARRET_OPERATOR_PART, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRelational_operator(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class In_elementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_in_elements; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + concatenation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConcatenationContext); + } else { + return this.getTypedRuleContext(ConcatenationContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + constant() { + return this.getTypedRuleContext(ConstantContext,0); + }; + + bind_variable() { + return this.getTypedRuleContext(Bind_variableContext,0); + }; + + general_element() { + return this.getTypedRuleContext(General_elementContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIn_elements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Between_elementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_between_elements; + } + + concatenation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConcatenationContext); + } else { + return this.getTypedRuleContext(ConcatenationContext,i); + } + }; + + AND() { + return this.getToken(OracleSqlParser.AND, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBetween_elements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class ConcatenationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_concatenation; + this.op = null; + } + + model_expression() { + return this.getTypedRuleContext(Model_expressionContext,0); + }; + + AT() { + return this.getToken(OracleSqlParser.AT, 0); + }; + + interval_expression() { + return this.getTypedRuleContext(Interval_expressionContext,0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + OVERFLOW_() { + return this.getToken(OracleSqlParser.OVERFLOW_, 0); + }; + + TRUNCATE() { + return this.getToken(OracleSqlParser.TRUNCATE, 0); + }; + + ERROR() { + return this.getToken(OracleSqlParser.ERROR, 0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + TIME() { + return this.getToken(OracleSqlParser.TIME, 0); + }; + + ZONE() { + return this.getToken(OracleSqlParser.ZONE, 0); + }; + + concatenation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConcatenationContext); + } else { + return this.getTypedRuleContext(ConcatenationContext,i); + } + }; + + DOUBLE_ASTERISK() { + return this.getToken(OracleSqlParser.DOUBLE_ASTERISK, 0); + }; + + ASTERISK() { + return this.getToken(OracleSqlParser.ASTERISK, 0); + }; + + SOLIDUS() { + return this.getToken(OracleSqlParser.SOLIDUS, 0); + }; + + MOD() { + return this.getToken(OracleSqlParser.MOD, 0); + }; + + PLUS_SIGN() { + return this.getToken(OracleSqlParser.PLUS_SIGN, 0); + }; + + MINUS_SIGN() { + return this.getToken(OracleSqlParser.MINUS_SIGN, 0); + }; + + BAR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BAR); + } else { + return this.getToken(OracleSqlParser.BAR, i); + } + }; + + + COLLATE() { + return this.getToken(OracleSqlParser.COLLATE, 0); + }; + + column_collation_name() { + return this.getTypedRuleContext(Column_collation_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConcatenation(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Interval_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_interval_expression; + } + + DAY() { + return this.getToken(OracleSqlParser.DAY, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + SECOND() { + return this.getToken(OracleSqlParser.SECOND, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + concatenation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConcatenationContext); + } else { + return this.getTypedRuleContext(ConcatenationContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + YEAR() { + return this.getToken(OracleSqlParser.YEAR, 0); + }; + + MONTH() { + return this.getToken(OracleSqlParser.MONTH, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInterval_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Model_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_model_expression; + } + + unary_expression() { + return this.getTypedRuleContext(Unary_expressionContext,0); + }; + + LEFT_BRACKET() { + return this.getToken(OracleSqlParser.LEFT_BRACKET, 0); + }; + + model_expression_element() { + return this.getTypedRuleContext(Model_expression_elementContext,0); + }; + + RIGHT_BRACKET() { + return this.getToken(OracleSqlParser.RIGHT_BRACKET, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModel_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Model_expression_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_model_expression_element; + } + + ANY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ANY); + } else { + return this.getToken(OracleSqlParser.ANY, i); + } + }; + + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + single_column_for_loop = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Single_column_for_loopContext); + } else { + return this.getTypedRuleContext(Single_column_for_loopContext,i); + } + }; + + multi_column_for_loop() { + return this.getTypedRuleContext(Multi_column_for_loopContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitModel_expression_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Single_column_for_loopContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_single_column_for_loop; + this.fromExpr = null; + this.toExpr = null; + this.action_type = null; + this.action_expr = null; + } + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + INCREMENT() { + return this.getToken(OracleSqlParser.INCREMENT, 0); + }; + + DECREMENT() { + return this.getToken(OracleSqlParser.DECREMENT, 0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + LIKE() { + return this.getToken(OracleSqlParser.LIKE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSingle_column_for_loop(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Multi_column_for_loopContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_multi_column_for_loop; + } + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + paren_column_list() { + return this.getTypedRuleContext(Paren_column_listContext,0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMulti_column_for_loop(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Unary_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_unary_expression; + this._expression = null; + this.index = []; + } + + unary_expression() { + return this.getTypedRuleContext(Unary_expressionContext,0); + }; + + MINUS_SIGN() { + return this.getToken(OracleSqlParser.MINUS_SIGN, 0); + }; + + PLUS_SIGN() { + return this.getToken(OracleSqlParser.PLUS_SIGN, 0); + }; + + PRIOR() { + return this.getToken(OracleSqlParser.PRIOR, 0); + }; + + CONNECT_BY_ROOT() { + return this.getToken(OracleSqlParser.CONNECT_BY_ROOT, 0); + }; + + NEW() { + return this.getToken(OracleSqlParser.NEW, 0); + }; + + DISTINCT() { + return this.getToken(OracleSqlParser.DISTINCT, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + case_expression() { + return this.getTypedRuleContext(Case_expressionContext,0); + }; + + quantified_expression() { + return this.getTypedRuleContext(Quantified_expressionContext,0); + }; + + standard_function() { + return this.getTypedRuleContext(Standard_functionContext,0); + }; + + atom() { + return this.getTypedRuleContext(AtomContext,0); + }; + + implicit_cursor_expression() { + return this.getTypedRuleContext(Implicit_cursor_expressionContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COUNT() { + return this.getToken(OracleSqlParser.COUNT, 0); + }; + + FIRST() { + return this.getToken(OracleSqlParser.FIRST, 0); + }; + + LAST() { + return this.getToken(OracleSqlParser.LAST, 0); + }; + + LIMIT() { + return this.getToken(OracleSqlParser.LIMIT, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + NEXT() { + return this.getToken(OracleSqlParser.NEXT, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUnary_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Implicit_cursor_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_implicit_cursor_expression; + this.index = null; + } + + SQL() { + return this.getToken(OracleSqlParser.SQL, 0); + }; + + PERCENT_BULK_ROWCOUNT() { + return this.getToken(OracleSqlParser.PERCENT_BULK_ROWCOUNT, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + PERCENT_BULK_EXCEPTIONS() { + return this.getToken(OracleSqlParser.PERCENT_BULK_EXCEPTIONS, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + COUNT() { + return this.getToken(OracleSqlParser.COUNT, 0); + }; + + ERROR_INDEX() { + return this.getToken(OracleSqlParser.ERROR_INDEX, 0); + }; + + ERROR_CODE() { + return this.getToken(OracleSqlParser.ERROR_CODE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitImplicit_cursor_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Collection_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_collection_expression; + } + + collation_name() { + return this.getTypedRuleContext(Collation_nameContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + general_element_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(General_element_partContext); + } else { + return this.getTypedRuleContext(General_element_partContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCollection_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Case_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_case_statement; + } + + searched_case_statement() { + return this.getTypedRuleContext(Searched_case_statementContext,0); + }; + + simple_case_statement() { + return this.getTypedRuleContext(Simple_case_statementContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCase_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Simple_case_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_simple_case_statement; + this.ck1 = null; + } + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + CASE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CASE); + } else { + return this.getToken(OracleSqlParser.CASE, i); + } + }; + + + label_declaration() { + return this.getTypedRuleContext(Label_declarationContext,0); + }; + + case_when_part_statement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Case_when_part_statementContext); + } else { + return this.getTypedRuleContext(Case_when_part_statementContext,i); + } + }; + + case_else_part_statement() { + return this.getTypedRuleContext(Case_else_part_statementContext,0); + }; + + label_name() { + return this.getTypedRuleContext(Label_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSimple_case_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Searched_case_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_searched_case_statement; + this.ck1 = null; + } + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + CASE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CASE); + } else { + return this.getToken(OracleSqlParser.CASE, i); + } + }; + + + label_declaration() { + return this.getTypedRuleContext(Label_declarationContext,0); + }; + + case_when_part_statement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Case_when_part_statementContext); + } else { + return this.getTypedRuleContext(Case_when_part_statementContext,i); + } + }; + + case_else_part_statement() { + return this.getTypedRuleContext(Case_else_part_statementContext,0); + }; + + label_name() { + return this.getTypedRuleContext(Label_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSearched_case_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Case_when_part_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_case_when_part_statement; + } + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + THEN() { + return this.getToken(OracleSqlParser.THEN, 0); + }; + + seq_of_statements() { + return this.getTypedRuleContext(Seq_of_statementsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCase_when_part_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Case_else_part_statementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_case_else_part_statement; + } + + ELSE() { + return this.getToken(OracleSqlParser.ELSE, 0); + }; + + seq_of_statements() { + return this.getTypedRuleContext(Seq_of_statementsContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCase_else_part_statement(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Case_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_case_expression; + } + + searched_case_expression() { + return this.getTypedRuleContext(Searched_case_expressionContext,0); + }; + + simple_case_expression() { + return this.getTypedRuleContext(Simple_case_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCase_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Simple_case_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_simple_case_expression; + this.ck1 = null; + } + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + CASE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CASE); + } else { + return this.getToken(OracleSqlParser.CASE, i); + } + }; + + + case_when_part_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Case_when_part_expressionContext); + } else { + return this.getTypedRuleContext(Case_when_part_expressionContext,i); + } + }; + + case_else_part_expression() { + return this.getTypedRuleContext(Case_else_part_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSimple_case_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Searched_case_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_searched_case_expression; + this.ck1 = null; + } + + END() { + return this.getToken(OracleSqlParser.END, 0); + }; + + CASE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CASE); + } else { + return this.getToken(OracleSqlParser.CASE, i); + } + }; + + + case_when_part_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Case_when_part_expressionContext); + } else { + return this.getTypedRuleContext(Case_when_part_expressionContext,i); + } + }; + + case_else_part_expression() { + return this.getTypedRuleContext(Case_else_part_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSearched_case_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Case_when_part_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_case_when_part_expression; + } + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + THEN() { + return this.getToken(OracleSqlParser.THEN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCase_when_part_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Case_else_part_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_case_else_part_expression; + } + + ELSE() { + return this.getToken(OracleSqlParser.ELSE, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCase_else_part_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class AtomContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_atom; + } + + bind_variable() { + return this.getTypedRuleContext(Bind_variableContext,0); + }; + + constant() { + return this.getTypedRuleContext(ConstantContext,0); + }; + + inquiry_directive() { + return this.getTypedRuleContext(Inquiry_directiveContext,0); + }; + + general_element() { + return this.getTypedRuleContext(General_elementContext,0); + }; + + outer_join_sign() { + return this.getTypedRuleContext(Outer_join_signContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + subquery_operation_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Subquery_operation_partContext); + } else { + return this.getTypedRuleContext(Subquery_operation_partContext,i); + } + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAtom(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Quantified_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_quantified_expression; + } + + SOME() { + return this.getToken(OracleSqlParser.SOME, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + ANY() { + return this.getToken(OracleSqlParser.ANY, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + select_only_statement() { + return this.getTypedRuleContext(Select_only_statementContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitQuantified_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class String_functionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_string_function; + } + + SUBSTR() { + return this.getToken(OracleSqlParser.SUBSTR, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + TO_CHAR() { + return this.getToken(OracleSqlParser.TO_CHAR, 0); + }; + + table_element() { + return this.getTypedRuleContext(Table_elementContext,0); + }; + + standard_function() { + return this.getTypedRuleContext(Standard_functionContext,0); + }; + + quoted_string = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Quoted_stringContext); + } else { + return this.getTypedRuleContext(Quoted_stringContext,i); + } + }; + + DECODE() { + return this.getToken(OracleSqlParser.DECODE, 0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + CHR() { + return this.getToken(OracleSqlParser.CHR, 0); + }; + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + NCHAR_CS() { + return this.getToken(OracleSqlParser.NCHAR_CS, 0); + }; + + NVL() { + return this.getToken(OracleSqlParser.NVL, 0); + }; + + TRIM() { + return this.getToken(OracleSqlParser.TRIM, 0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + LEADING() { + return this.getToken(OracleSqlParser.LEADING, 0); + }; + + TRAILING() { + return this.getToken(OracleSqlParser.TRAILING, 0); + }; + + BOTH() { + return this.getToken(OracleSqlParser.BOTH, 0); + }; + + TO_DATE() { + return this.getToken(OracleSqlParser.TO_DATE, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + CONVERSION() { + return this.getToken(OracleSqlParser.CONVERSION, 0); + }; + + ERROR() { + return this.getToken(OracleSqlParser.ERROR, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitString_function(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Standard_functionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_standard_function; + } + + string_function() { + return this.getTypedRuleContext(String_functionContext,0); + }; + + numeric_function_wrapper() { + return this.getTypedRuleContext(Numeric_function_wrapperContext,0); + }; + + json_function() { + return this.getTypedRuleContext(Json_functionContext,0); + }; + + other_function() { + return this.getTypedRuleContext(Other_functionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStandard_function(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_functionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_function; + } + + JSON_ARRAY() { + return this.getToken(OracleSqlParser.JSON_ARRAY, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + json_array_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Json_array_elementContext); + } else { + return this.getTypedRuleContext(Json_array_elementContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + json_on_null_clause() { + return this.getTypedRuleContext(Json_on_null_clauseContext,0); + }; + + json_return_clause() { + return this.getTypedRuleContext(Json_return_clauseContext,0); + }; + + STRICT() { + return this.getToken(OracleSqlParser.STRICT, 0); + }; + + JSON_ARRAYAGG() { + return this.getToken(OracleSqlParser.JSON_ARRAYAGG, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + FORMAT() { + return this.getToken(OracleSqlParser.FORMAT, 0); + }; + + JSON() { + return this.getToken(OracleSqlParser.JSON, 0); + }; + + order_by_clause() { + return this.getTypedRuleContext(Order_by_clauseContext,0); + }; + + JSON_OBJECT() { + return this.getToken(OracleSqlParser.JSON_OBJECT, 0); + }; + + json_object_content() { + return this.getTypedRuleContext(Json_object_contentContext,0); + }; + + JSON_OBJECTAGG() { + return this.getToken(OracleSqlParser.JSON_OBJECTAGG, 0); + }; + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ON); + } else { + return this.getToken(OracleSqlParser.ON, i); + } + }; + + + NULL_ = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NULL_); + } else { + return this.getToken(OracleSqlParser.NULL_, i); + } + }; + + + RETURNING() { + return this.getToken(OracleSqlParser.RETURNING, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + KEYS() { + return this.getToken(OracleSqlParser.KEYS, 0); + }; + + ABSENT() { + return this.getToken(OracleSqlParser.ABSENT, 0); + }; + + VARCHAR2() { + return this.getToken(OracleSqlParser.VARCHAR2, 0); + }; + + CLOB() { + return this.getToken(OracleSqlParser.CLOB, 0); + }; + + BLOB() { + return this.getToken(OracleSqlParser.BLOB, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + BYTE() { + return this.getToken(OracleSqlParser.BYTE, 0); + }; + + CHAR() { + return this.getToken(OracleSqlParser.CHAR, 0); + }; + + JSON_QUERY() { + return this.getToken(OracleSqlParser.JSON_QUERY, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + json_query_returning_clause() { + return this.getTypedRuleContext(Json_query_returning_clauseContext,0); + }; + + json_query_wrapper_clause() { + return this.getTypedRuleContext(Json_query_wrapper_clauseContext,0); + }; + + json_query_on_error_clause() { + return this.getTypedRuleContext(Json_query_on_error_clauseContext,0); + }; + + json_query_on_empty_clause() { + return this.getTypedRuleContext(Json_query_on_empty_clauseContext,0); + }; + + JSON_SERIALIZE() { + return this.getToken(OracleSqlParser.JSON_SERIALIZE, 0); + }; + + json_query_return_type() { + return this.getTypedRuleContext(Json_query_return_typeContext,0); + }; + + PRETTY() { + return this.getToken(OracleSqlParser.PRETTY, 0); + }; + + ASCII() { + return this.getToken(OracleSqlParser.ASCII, 0); + }; + + TRUNCATE() { + return this.getToken(OracleSqlParser.TRUNCATE, 0); + }; + + ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ERROR); + } else { + return this.getToken(OracleSqlParser.ERROR, i); + } + }; + + + EMPTY_() { + return this.getToken(OracleSqlParser.EMPTY_, 0); + }; + + ARRAY() { + return this.getToken(OracleSqlParser.ARRAY, 0); + }; + + OBJECT() { + return this.getToken(OracleSqlParser.OBJECT, 0); + }; + + JSON_TRANSFORM() { + return this.getToken(OracleSqlParser.JSON_TRANSFORM, 0); + }; + + json_transform_op = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Json_transform_opContext); + } else { + return this.getTypedRuleContext(Json_transform_opContext,i); + } + }; + + JSON_VALUE() { + return this.getToken(OracleSqlParser.JSON_VALUE, 0); + }; + + json_value_return_clause() { + return this.getTypedRuleContext(Json_value_return_clauseContext,0); + }; + + json_value_on_mismatch_clause() { + return this.getTypedRuleContext(Json_value_on_mismatch_clauseContext,0); + }; + + DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DEFAULT); + } else { + return this.getToken(OracleSqlParser.DEFAULT, i); + } + }; + + + literal = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(LiteralContext); + } else { + return this.getTypedRuleContext(LiteralContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_function(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_object_contentContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_object_content; + } + + json_object_entry = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Json_object_entryContext); + } else { + return this.getTypedRuleContext(Json_object_entryContext,i); + } + }; + + ASTERISK() { + return this.getToken(OracleSqlParser.ASTERISK, 0); + }; + + json_on_null_clause() { + return this.getTypedRuleContext(Json_on_null_clauseContext,0); + }; + + json_return_clause() { + return this.getTypedRuleContext(Json_return_clauseContext,0); + }; + + STRICT() { + return this.getToken(OracleSqlParser.STRICT, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + KEYS() { + return this.getToken(OracleSqlParser.KEYS, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_object_content(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_object_entryContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_object_entry; + } + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + COLON() { + return this.getToken(OracleSqlParser.COLON, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + FORMAT() { + return this.getToken(OracleSqlParser.FORMAT, 0); + }; + + JSON() { + return this.getToken(OracleSqlParser.JSON, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + IS() { + return this.getToken(OracleSqlParser.IS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_object_entry(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_table_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_table_clause; + } + + JSON_TABLE() { + return this.getToken(OracleSqlParser.JSON_TABLE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + FORMAT() { + return this.getToken(OracleSqlParser.FORMAT, 0); + }; + + JSON() { + return this.getToken(OracleSqlParser.JSON, 0); + }; + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ON); + } else { + return this.getToken(OracleSqlParser.ON, i); + } + }; + + + ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ERROR); + } else { + return this.getToken(OracleSqlParser.ERROR, i); + } + }; + + + EMPTY_ = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EMPTY_); + } else { + return this.getToken(OracleSqlParser.EMPTY_, i); + } + }; + + + json_column_clause() { + return this.getTypedRuleContext(Json_column_clauseContext,0); + }; + + NULL_ = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NULL_); + } else { + return this.getToken(OracleSqlParser.NULL_, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_table_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_array_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_array_element; + } + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + json_function() { + return this.getTypedRuleContext(Json_functionContext,0); + }; + + FORMAT() { + return this.getToken(OracleSqlParser.FORMAT, 0); + }; + + JSON() { + return this.getToken(OracleSqlParser.JSON, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_array_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_on_null_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_on_null_clause; + } + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + NULL_ = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NULL_); + } else { + return this.getToken(OracleSqlParser.NULL_, i); + } + }; + + + ABSENT() { + return this.getToken(OracleSqlParser.ABSENT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_on_null_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_return_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_return_clause; + } + + RETURNING() { + return this.getToken(OracleSqlParser.RETURNING, 0); + }; + + VARCHAR2() { + return this.getToken(OracleSqlParser.VARCHAR2, 0); + }; + + CLOB() { + return this.getToken(OracleSqlParser.CLOB, 0); + }; + + BLOB() { + return this.getToken(OracleSqlParser.BLOB, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + BYTE() { + return this.getToken(OracleSqlParser.BYTE, 0); + }; + + CHAR() { + return this.getToken(OracleSqlParser.CHAR, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_return_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_transform_opContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_transform_op; + } + + REMOVE() { + return this.getToken(OracleSqlParser.REMOVE, 0); + }; + + CHAR_STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.CHAR_STRING); + } else { + return this.getToken(OracleSqlParser.CHAR_STRING, i); + } + }; + + + ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ON); + } else { + return this.getToken(OracleSqlParser.ON, i); + } + }; + + + MISSING() { + return this.getToken(OracleSqlParser.MISSING, 0); + }; + + IGNORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.IGNORE); + } else { + return this.getToken(OracleSqlParser.IGNORE, i); + } + }; + + + ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ERROR); + } else { + return this.getToken(OracleSqlParser.ERROR, i); + } + }; + + + INSERT() { + return this.getToken(OracleSqlParser.INSERT, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + EXISTING() { + return this.getToken(OracleSqlParser.EXISTING, 0); + }; + + NULL_ = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NULL_); + } else { + return this.getToken(OracleSqlParser.NULL_, i); + } + }; + + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + FORMAT() { + return this.getToken(OracleSqlParser.FORMAT, 0); + }; + + JSON() { + return this.getToken(OracleSqlParser.JSON, 0); + }; + + APPEND() { + return this.getToken(OracleSqlParser.APPEND, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_transform_op(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_column_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_column_clause; + } + + COLUMNS() { + return this.getToken(OracleSqlParser.COLUMNS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + json_column_definition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Json_column_definitionContext); + } else { + return this.getTypedRuleContext(Json_column_definitionContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_column_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_column_definitionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_column_definition; + } + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + json_value_return_type() { + return this.getTypedRuleContext(Json_value_return_typeContext,0); + }; + + PATH() { + return this.getToken(OracleSqlParser.PATH, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + TRUNCATE() { + return this.getToken(OracleSqlParser.TRUNCATE, 0); + }; + + json_query_on_error_clause() { + return this.getTypedRuleContext(Json_query_on_error_clauseContext,0); + }; + + json_query_on_empty_clause() { + return this.getTypedRuleContext(Json_query_on_empty_clauseContext,0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + FORMAT() { + return this.getToken(OracleSqlParser.FORMAT, 0); + }; + + JSON() { + return this.getToken(OracleSqlParser.JSON, 0); + }; + + json_query_return_type() { + return this.getTypedRuleContext(Json_query_return_typeContext,0); + }; + + json_query_wrapper_clause() { + return this.getTypedRuleContext(Json_query_wrapper_clauseContext,0); + }; + + NESTED() { + return this.getToken(OracleSqlParser.NESTED, 0); + }; + + json_column_clause() { + return this.getTypedRuleContext(Json_column_clauseContext,0); + }; + + LEFT_BRACKET() { + return this.getToken(OracleSqlParser.LEFT_BRACKET, 0); + }; + + ASTERISK() { + return this.getToken(OracleSqlParser.ASTERISK, 0); + }; + + RIGHT_BRACKET() { + return this.getToken(OracleSqlParser.RIGHT_BRACKET, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + ORDINALITY() { + return this.getToken(OracleSqlParser.ORDINALITY, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_column_definition(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_query_returning_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_query_returning_clause; + } + + RETURNING() { + return this.getToken(OracleSqlParser.RETURNING, 0); + }; + + json_query_return_type() { + return this.getTypedRuleContext(Json_query_return_typeContext,0); + }; + + PRETTY() { + return this.getToken(OracleSqlParser.PRETTY, 0); + }; + + ASCII() { + return this.getToken(OracleSqlParser.ASCII, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_query_returning_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_query_return_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_query_return_type; + } + + VARCHAR2() { + return this.getToken(OracleSqlParser.VARCHAR2, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + BYTE() { + return this.getToken(OracleSqlParser.BYTE, 0); + }; + + CHAR() { + return this.getToken(OracleSqlParser.CHAR, 0); + }; + + CLOB() { + return this.getToken(OracleSqlParser.CLOB, 0); + }; + + BLOB() { + return this.getToken(OracleSqlParser.BLOB, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_query_return_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_query_wrapper_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_query_wrapper_clause; + } + + WITHOUT() { + return this.getToken(OracleSqlParser.WITHOUT, 0); + }; + + WRAPPER() { + return this.getToken(OracleSqlParser.WRAPPER, 0); + }; + + ARRAY() { + return this.getToken(OracleSqlParser.ARRAY, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + UNCONDITIONAL() { + return this.getToken(OracleSqlParser.UNCONDITIONAL, 0); + }; + + CONDITIONAL() { + return this.getToken(OracleSqlParser.CONDITIONAL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_query_wrapper_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_query_on_error_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_query_on_error_clause; + } + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ERROR); + } else { + return this.getToken(OracleSqlParser.ERROR, i); + } + }; + + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + EMPTY_() { + return this.getToken(OracleSqlParser.EMPTY_, 0); + }; + + ARRAY() { + return this.getToken(OracleSqlParser.ARRAY, 0); + }; + + OBJECT() { + return this.getToken(OracleSqlParser.OBJECT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_query_on_error_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_query_on_empty_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_query_on_empty_clause; + } + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + EMPTY_ = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.EMPTY_); + } else { + return this.getToken(OracleSqlParser.EMPTY_, i); + } + }; + + + ERROR() { + return this.getToken(OracleSqlParser.ERROR, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + ARRAY() { + return this.getToken(OracleSqlParser.ARRAY, 0); + }; + + OBJECT() { + return this.getToken(OracleSqlParser.OBJECT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_query_on_empty_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_value_return_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_value_return_clause; + } + + RETURNING() { + return this.getToken(OracleSqlParser.RETURNING, 0); + }; + + json_value_return_type() { + return this.getTypedRuleContext(Json_value_return_typeContext,0); + }; + + ASCII() { + return this.getToken(OracleSqlParser.ASCII, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_value_return_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_value_return_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_value_return_type; + } + + VARCHAR2() { + return this.getToken(OracleSqlParser.VARCHAR2, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + TRUNCATE() { + return this.getToken(OracleSqlParser.TRUNCATE, 0); + }; + + BYTE() { + return this.getToken(OracleSqlParser.BYTE, 0); + }; + + CHAR() { + return this.getToken(OracleSqlParser.CHAR, 0); + }; + + CLOB() { + return this.getToken(OracleSqlParser.CLOB, 0); + }; + + DATE() { + return this.getToken(OracleSqlParser.DATE, 0); + }; + + NUMBER() { + return this.getToken(OracleSqlParser.NUMBER, 0); + }; + + INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.INTEGER); + } else { + return this.getToken(OracleSqlParser.INTEGER, i); + } + }; + + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + TIMESTAMP() { + return this.getToken(OracleSqlParser.TIMESTAMP, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + TIMEZONE() { + return this.getToken(OracleSqlParser.TIMEZONE, 0); + }; + + SDO_GEOMETRY() { + return this.getToken(OracleSqlParser.SDO_GEOMETRY, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + CASESENSITIVE() { + return this.getToken(OracleSqlParser.CASESENSITIVE, 0); + }; + + MAPPING() { + return this.getToken(OracleSqlParser.MAPPING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_value_return_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Json_value_on_mismatch_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_json_value_on_mismatch_clause; + } + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + MISMATCH() { + return this.getToken(OracleSqlParser.MISMATCH, 0); + }; + + IGNORE() { + return this.getToken(OracleSqlParser.IGNORE, 0); + }; + + ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ERROR); + } else { + return this.getToken(OracleSqlParser.ERROR, i); + } + }; + + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + MISSING() { + return this.getToken(OracleSqlParser.MISSING, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + EXTRA() { + return this.getToken(OracleSqlParser.EXTRA, 0); + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitJson_value_on_mismatch_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class LiteralContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_literal; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + string_function() { + return this.getTypedRuleContext(String_functionContext,0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + numeric_negative() { + return this.getTypedRuleContext(Numeric_negativeContext,0); + }; + + MAXVALUE() { + return this.getToken(OracleSqlParser.MAXVALUE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLiteral(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Numeric_function_wrapperContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_numeric_function_wrapper; + } + + numeric_function() { + return this.getTypedRuleContext(Numeric_functionContext,0); + }; + + single_column_for_loop() { + return this.getTypedRuleContext(Single_column_for_loopContext,0); + }; + + multi_column_for_loop() { + return this.getTypedRuleContext(Multi_column_for_loopContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNumeric_function_wrapper(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Numeric_functionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_numeric_function; + } + + SUM() { + return this.getToken(OracleSqlParser.SUM, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + DISTINCT() { + return this.getToken(OracleSqlParser.DISTINCT, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + COUNT() { + return this.getToken(OracleSqlParser.COUNT, 0); + }; + + ASTERISK() { + return this.getToken(OracleSqlParser.ASTERISK, 0); + }; + + over_clause() { + return this.getTypedRuleContext(Over_clauseContext,0); + }; + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + ROUND() { + return this.getToken(OracleSqlParser.ROUND, 0); + }; + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + AVG() { + return this.getToken(OracleSqlParser.AVG, 0); + }; + + MAX() { + return this.getToken(OracleSqlParser.MAX, 0); + }; + + LEAST() { + return this.getToken(OracleSqlParser.LEAST, 0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + GREATEST() { + return this.getToken(OracleSqlParser.GREATEST, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNumeric_function(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Listagg_overflow_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_listagg_overflow_clause; + } + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + OVERFLOW_() { + return this.getToken(OracleSqlParser.OVERFLOW_, 0); + }; + + ERROR() { + return this.getToken(OracleSqlParser.ERROR, 0); + }; + + TRUNCATE() { + return this.getToken(OracleSqlParser.TRUNCATE, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + COUNT() { + return this.getToken(OracleSqlParser.COUNT, 0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + WITHOUT() { + return this.getToken(OracleSqlParser.WITHOUT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitListagg_overflow_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Other_functionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_other_function; + } + + over_clause_keyword() { + return this.getTypedRuleContext(Over_clause_keywordContext,0); + }; + + function_argument_analytic() { + return this.getTypedRuleContext(Function_argument_analyticContext,0); + }; + + over_clause() { + return this.getTypedRuleContext(Over_clauseContext,0); + }; + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + function_argument_modeling() { + return this.getTypedRuleContext(Function_argument_modelingContext,0); + }; + + using_clause() { + return this.getTypedRuleContext(Using_clauseContext,0); + }; + + COUNT() { + return this.getToken(OracleSqlParser.COUNT, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + ASTERISK() { + return this.getToken(OracleSqlParser.ASTERISK, 0); + }; + + concatenation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConcatenationContext); + } else { + return this.getTypedRuleContext(ConcatenationContext,i); + } + }; + + DISTINCT() { + return this.getToken(OracleSqlParser.DISTINCT, 0); + }; + + UNIQUE() { + return this.getToken(OracleSqlParser.UNIQUE, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + CAST() { + return this.getToken(OracleSqlParser.CAST, 0); + }; + + XMLCAST() { + return this.getToken(OracleSqlParser.XMLCAST, 0); + }; + + MULTISET() { + return this.getToken(OracleSqlParser.MULTISET, 0); + }; + + subquery() { + return this.getTypedRuleContext(SubqueryContext,0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + CONVERSION() { + return this.getToken(OracleSqlParser.CONVERSION, 0); + }; + + ERROR() { + return this.getToken(OracleSqlParser.ERROR, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + quoted_string = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Quoted_stringContext); + } else { + return this.getTypedRuleContext(Quoted_stringContext,i); + } + }; + + COALESCE() { + return this.getToken(OracleSqlParser.COALESCE, 0); + }; + + table_element() { + return this.getTypedRuleContext(Table_elementContext,0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + COLLECT() { + return this.getToken(OracleSqlParser.COLLECT, 0); + }; + + collect_order_by_part() { + return this.getTypedRuleContext(Collect_order_by_partContext,0); + }; + + within_or_over_clause_keyword() { + return this.getTypedRuleContext(Within_or_over_clause_keywordContext,0); + }; + + function_argument() { + return this.getTypedRuleContext(Function_argumentContext,0); + }; + + within_or_over_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Within_or_over_partContext); + } else { + return this.getTypedRuleContext(Within_or_over_partContext,i); + } + }; + + LISTAGG() { + return this.getToken(OracleSqlParser.LISTAGG, 0); + }; + + argument() { + return this.getTypedRuleContext(ArgumentContext,0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + listagg_overflow_clause() { + return this.getTypedRuleContext(Listagg_overflow_clauseContext,0); + }; + + WITHIN() { + return this.getToken(OracleSqlParser.WITHIN, 0); + }; + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + order_by_clause() { + return this.getTypedRuleContext(Order_by_clauseContext,0); + }; + + cursor_name() { + return this.getTypedRuleContext(Cursor_nameContext,0); + }; + + PERCENT_ISOPEN() { + return this.getToken(OracleSqlParser.PERCENT_ISOPEN, 0); + }; + + PERCENT_FOUND() { + return this.getToken(OracleSqlParser.PERCENT_FOUND, 0); + }; + + PERCENT_NOTFOUND() { + return this.getToken(OracleSqlParser.PERCENT_NOTFOUND, 0); + }; + + PERCENT_ROWCOUNT() { + return this.getToken(OracleSqlParser.PERCENT_ROWCOUNT, 0); + }; + + DECOMPOSE() { + return this.getToken(OracleSqlParser.DECOMPOSE, 0); + }; + + CANONICAL() { + return this.getToken(OracleSqlParser.CANONICAL, 0); + }; + + COMPATIBILITY() { + return this.getToken(OracleSqlParser.COMPATIBILITY, 0); + }; + + EXTRACT() { + return this.getToken(OracleSqlParser.EXTRACT, 0); + }; + + FROM() { + return this.getToken(OracleSqlParser.FROM, 0); + }; + + FIRST_VALUE() { + return this.getToken(OracleSqlParser.FIRST_VALUE, 0); + }; + + LAST_VALUE() { + return this.getToken(OracleSqlParser.LAST_VALUE, 0); + }; + + respect_or_ignore_nulls() { + return this.getTypedRuleContext(Respect_or_ignore_nullsContext,0); + }; + + LEAD() { + return this.getToken(OracleSqlParser.LEAD, 0); + }; + + LAG() { + return this.getToken(OracleSqlParser.LAG, 0); + }; + + standard_prediction_function_keyword() { + return this.getTypedRuleContext(Standard_prediction_function_keywordContext,0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + cost_matrix_clause() { + return this.getTypedRuleContext(Cost_matrix_clauseContext,0); + }; + + TO_BINARY_DOUBLE() { + return this.getToken(OracleSqlParser.TO_BINARY_DOUBLE, 0); + }; + + TO_BINARY_FLOAT() { + return this.getToken(OracleSqlParser.TO_BINARY_FLOAT, 0); + }; + + TO_NUMBER() { + return this.getToken(OracleSqlParser.TO_NUMBER, 0); + }; + + TO_TIMESTAMP() { + return this.getToken(OracleSqlParser.TO_TIMESTAMP, 0); + }; + + TO_TIMESTAMP_TZ() { + return this.getToken(OracleSqlParser.TO_TIMESTAMP_TZ, 0); + }; + + TO_DSINTERVAL() { + return this.getToken(OracleSqlParser.TO_DSINTERVAL, 0); + }; + + TO_YMINTERVAL() { + return this.getToken(OracleSqlParser.TO_YMINTERVAL, 0); + }; + + TRANSLATE() { + return this.getToken(OracleSqlParser.TRANSLATE, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + CHAR_CS() { + return this.getToken(OracleSqlParser.CHAR_CS, 0); + }; + + NCHAR_CS() { + return this.getToken(OracleSqlParser.NCHAR_CS, 0); + }; + + TREAT() { + return this.getToken(OracleSqlParser.TREAT, 0); + }; + + REF() { + return this.getToken(OracleSqlParser.REF, 0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + general_element_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(General_element_partContext); + } else { + return this.getTypedRuleContext(General_element_partContext,i); + } + }; + + TRIM() { + return this.getToken(OracleSqlParser.TRIM, 0); + }; + + LEADING() { + return this.getToken(OracleSqlParser.LEADING, 0); + }; + + TRAILING() { + return this.getToken(OracleSqlParser.TRAILING, 0); + }; + + BOTH() { + return this.getToken(OracleSqlParser.BOTH, 0); + }; + + VALIDATE_CONVERSION() { + return this.getToken(OracleSqlParser.VALIDATE_CONVERSION, 0); + }; + + XMLAGG() { + return this.getToken(OracleSqlParser.XMLAGG, 0); + }; + + xml_multiuse_expression_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Xml_multiuse_expression_elementContext); + } else { + return this.getTypedRuleContext(Xml_multiuse_expression_elementContext,i); + } + }; + + XMLCOLATTVAL() { + return this.getToken(OracleSqlParser.XMLCOLATTVAL, 0); + }; + + XMLFOREST() { + return this.getToken(OracleSqlParser.XMLFOREST, 0); + }; + + XMLELEMENT() { + return this.getToken(OracleSqlParser.XMLELEMENT, 0); + }; + + xml_attributes_clause() { + return this.getTypedRuleContext(Xml_attributes_clauseContext,0); + }; + + ENTITYESCAPING() { + return this.getToken(OracleSqlParser.ENTITYESCAPING, 0); + }; + + NOENTITYESCAPING() { + return this.getToken(OracleSqlParser.NOENTITYESCAPING, 0); + }; + + NAME() { + return this.getToken(OracleSqlParser.NAME, 0); + }; + + EVALNAME() { + return this.getToken(OracleSqlParser.EVALNAME, 0); + }; + + column_alias = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_aliasContext); + } else { + return this.getTypedRuleContext(Column_aliasContext,i); + } + }; + + XMLEXISTS() { + return this.getToken(OracleSqlParser.XMLEXISTS, 0); + }; + + xml_passing_clause() { + return this.getTypedRuleContext(Xml_passing_clauseContext,0); + }; + + XMLPARSE() { + return this.getToken(OracleSqlParser.XMLPARSE, 0); + }; + + DOCUMENT() { + return this.getToken(OracleSqlParser.DOCUMENT, 0); + }; + + CONTENT() { + return this.getToken(OracleSqlParser.CONTENT, 0); + }; + + WELLFORMED() { + return this.getToken(OracleSqlParser.WELLFORMED, 0); + }; + + XMLPI() { + return this.getToken(OracleSqlParser.XMLPI, 0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + XMLQUERY() { + return this.getToken(OracleSqlParser.XMLQUERY, 0); + }; + + RETURNING() { + return this.getToken(OracleSqlParser.RETURNING, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + EMPTY_() { + return this.getToken(OracleSqlParser.EMPTY_, 0); + }; + + XMLROOT() { + return this.getToken(OracleSqlParser.XMLROOT, 0); + }; + + xmlroot_param_version_part() { + return this.getTypedRuleContext(Xmlroot_param_version_partContext,0); + }; + + xmlroot_param_standalone_part() { + return this.getTypedRuleContext(Xmlroot_param_standalone_partContext,0); + }; + + XMLSERIALIZE() { + return this.getToken(OracleSqlParser.XMLSERIALIZE, 0); + }; + + xmlserialize_param_enconding_part() { + return this.getTypedRuleContext(Xmlserialize_param_enconding_partContext,0); + }; + + xmlserialize_param_version_part() { + return this.getTypedRuleContext(Xmlserialize_param_version_partContext,0); + }; + + xmlserialize_param_ident_part() { + return this.getTypedRuleContext(Xmlserialize_param_ident_partContext,0); + }; + + DEFAULTS() { + return this.getToken(OracleSqlParser.DEFAULTS, 0); + }; + + HIDE() { + return this.getToken(OracleSqlParser.HIDE, 0); + }; + + SHOW() { + return this.getToken(OracleSqlParser.SHOW, 0); + }; + + TIME() { + return this.getToken(OracleSqlParser.TIME, 0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + xmltable() { + return this.getTypedRuleContext(XmltableContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOther_function(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Over_clause_keywordContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_over_clause_keyword; + } + + AVG() { + return this.getToken(OracleSqlParser.AVG, 0); + }; + + CORR() { + return this.getToken(OracleSqlParser.CORR, 0); + }; + + LAG_DIFF() { + return this.getToken(OracleSqlParser.LAG_DIFF, 0); + }; + + LAG_DIFF_PERCENT() { + return this.getToken(OracleSqlParser.LAG_DIFF_PERCENT, 0); + }; + + MAX() { + return this.getToken(OracleSqlParser.MAX, 0); + }; + + MEDIAN() { + return this.getToken(OracleSqlParser.MEDIAN, 0); + }; + + MIN() { + return this.getToken(OracleSqlParser.MIN, 0); + }; + + NTH_VALUE() { + return this.getToken(OracleSqlParser.NTH_VALUE, 0); + }; + + NTILE() { + return this.getToken(OracleSqlParser.NTILE, 0); + }; + + RATIO_TO_REPORT() { + return this.getToken(OracleSqlParser.RATIO_TO_REPORT, 0); + }; + + ROW_NUMBER() { + return this.getToken(OracleSqlParser.ROW_NUMBER, 0); + }; + + SUM() { + return this.getToken(OracleSqlParser.SUM, 0); + }; + + VARIANCE() { + return this.getToken(OracleSqlParser.VARIANCE, 0); + }; + + REGR_() { + return this.getToken(OracleSqlParser.REGR_, 0); + }; + + STDDEV() { + return this.getToken(OracleSqlParser.STDDEV, 0); + }; + + VAR_() { + return this.getToken(OracleSqlParser.VAR_, 0); + }; + + VAR_POP() { + return this.getToken(OracleSqlParser.VAR_POP, 0); + }; + + COVAR_() { + return this.getToken(OracleSqlParser.COVAR_, 0); + }; + + WM_CONCAT() { + return this.getToken(OracleSqlParser.WM_CONCAT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOver_clause_keyword(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Within_or_over_clause_keywordContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_within_or_over_clause_keyword; + } + + CUME_DIST() { + return this.getToken(OracleSqlParser.CUME_DIST, 0); + }; + + DENSE_RANK() { + return this.getToken(OracleSqlParser.DENSE_RANK, 0); + }; + + PERCENT_RANK() { + return this.getToken(OracleSqlParser.PERCENT_RANK, 0); + }; + + PERCENTILE_CONT() { + return this.getToken(OracleSqlParser.PERCENTILE_CONT, 0); + }; + + PERCENTILE_DISC() { + return this.getToken(OracleSqlParser.PERCENTILE_DISC, 0); + }; + + RANK() { + return this.getToken(OracleSqlParser.RANK, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWithin_or_over_clause_keyword(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Standard_prediction_function_keywordContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_standard_prediction_function_keyword; + } + + PREDICTION() { + return this.getToken(OracleSqlParser.PREDICTION, 0); + }; + + PREDICTION_BOUNDS() { + return this.getToken(OracleSqlParser.PREDICTION_BOUNDS, 0); + }; + + PREDICTION_COST() { + return this.getToken(OracleSqlParser.PREDICTION_COST, 0); + }; + + PREDICTION_DETAILS() { + return this.getToken(OracleSqlParser.PREDICTION_DETAILS, 0); + }; + + PREDICTION_PROBABILITY() { + return this.getToken(OracleSqlParser.PREDICTION_PROBABILITY, 0); + }; + + PREDICTION_SET() { + return this.getToken(OracleSqlParser.PREDICTION_SET, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStandard_prediction_function_keyword(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Over_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_over_clause; + this.th = null; + } + + OVER() { + return this.getToken(OracleSqlParser.OVER, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + HIERARCHY() { + return this.getToken(OracleSqlParser.HIERARCHY, 0); + }; + + OFFSET() { + return this.getToken(OracleSqlParser.OFFSET, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + query_partition_clause() { + return this.getTypedRuleContext(Query_partition_clauseContext,0); + }; + + order_by_clause() { + return this.getTypedRuleContext(Order_by_clauseContext,0); + }; + + ACROSS() { + return this.getToken(OracleSqlParser.ACROSS, 0); + }; + + ANCESTOR() { + return this.getToken(OracleSqlParser.ANCESTOR, 0); + }; + + AT() { + return this.getToken(OracleSqlParser.AT, 0); + }; + + LEVEL() { + return this.getToken(OracleSqlParser.LEVEL, 0); + }; + + windowing_clause() { + return this.getTypedRuleContext(Windowing_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOver_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Windowing_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_windowing_clause; + } + + windowing_type() { + return this.getTypedRuleContext(Windowing_typeContext,0); + }; + + BETWEEN() { + return this.getToken(OracleSqlParser.BETWEEN, 0); + }; + + windowing_elements = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Windowing_elementsContext); + } else { + return this.getTypedRuleContext(Windowing_elementsContext,i); + } + }; + + AND() { + return this.getToken(OracleSqlParser.AND, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWindowing_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Windowing_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_windowing_type; + } + + ROWS() { + return this.getToken(OracleSqlParser.ROWS, 0); + }; + + RANGE() { + return this.getToken(OracleSqlParser.RANGE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWindowing_type(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Windowing_elementsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_windowing_elements; + } + + UNBOUNDED() { + return this.getToken(OracleSqlParser.UNBOUNDED, 0); + }; + + PRECEDING() { + return this.getToken(OracleSqlParser.PRECEDING, 0); + }; + + CURRENT() { + return this.getToken(OracleSqlParser.CURRENT, 0); + }; + + ROW() { + return this.getToken(OracleSqlParser.ROW, 0); + }; + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + FOLLOWING() { + return this.getToken(OracleSqlParser.FOLLOWING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWindowing_elements(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Using_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_using_clause; + } + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + ASTERISK() { + return this.getToken(OracleSqlParser.ASTERISK, 0); + }; + + using_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Using_elementContext); + } else { + return this.getTypedRuleContext(Using_elementContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUsing_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Using_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_using_element; + } + + select_list_elements() { + return this.getTypedRuleContext(Select_list_elementsContext,0); + }; + + IN() { + return this.getToken(OracleSqlParser.IN, 0); + }; + + OUT() { + return this.getToken(OracleSqlParser.OUT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUsing_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Collect_order_by_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_collect_order_by_part; + } + + ORDER() { + return this.getToken(OracleSqlParser.ORDER, 0); + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + concatenation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConcatenationContext); + } else { + return this.getTypedRuleContext(ConcatenationContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCollect_order_by_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Within_or_over_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_within_or_over_part; + } + + WITHIN() { + return this.getToken(OracleSqlParser.WITHIN, 0); + }; + + GROUP() { + return this.getToken(OracleSqlParser.GROUP, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + order_by_clause() { + return this.getTypedRuleContext(Order_by_clauseContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + over_clause() { + return this.getTypedRuleContext(Over_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWithin_or_over_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class String_delimiterContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_string_delimiter; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + string_function() { + return this.getTypedRuleContext(String_functionContext,0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + string_delimiter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(String_delimiterContext); + } else { + return this.getTypedRuleContext(String_delimiterContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + BAR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BAR); + } else { + return this.getToken(OracleSqlParser.BAR, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitString_delimiter(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cost_matrix_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cost_matrix_clause; + } + + COST() { + return this.getToken(OracleSqlParser.COST, 0); + }; + + MODEL() { + return this.getToken(OracleSqlParser.MODEL, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + cost_class_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Cost_class_nameContext); + } else { + return this.getTypedRuleContext(Cost_class_nameContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + VALUES() { + return this.getToken(OracleSqlParser.VALUES, 0); + }; + + AUTO() { + return this.getToken(OracleSqlParser.AUTO, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCost_matrix_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xml_passing_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xml_passing_clause; + } + + PASSING() { + return this.getToken(OracleSqlParser.PASSING, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + BY() { + return this.getToken(OracleSqlParser.BY, 0); + }; + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + column_alias = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_aliasContext); + } else { + return this.getTypedRuleContext(Column_aliasContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXml_passing_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xml_attributes_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xml_attributes_clause; + } + + XMLATTRIBUTES() { + return this.getToken(OracleSqlParser.XMLATTRIBUTES, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + xml_multiuse_expression_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Xml_multiuse_expression_elementContext); + } else { + return this.getTypedRuleContext(Xml_multiuse_expression_elementContext,i); + } + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + ENTITYESCAPING() { + return this.getToken(OracleSqlParser.ENTITYESCAPING, 0); + }; + + NOENTITYESCAPING() { + return this.getToken(OracleSqlParser.NOENTITYESCAPING, 0); + }; + + SCHEMACHECK() { + return this.getToken(OracleSqlParser.SCHEMACHECK, 0); + }; + + NOSCHEMACHECK() { + return this.getToken(OracleSqlParser.NOSCHEMACHECK, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXml_attributes_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xml_namespaces_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xml_namespaces_clause; + } + + XMLNAMESPACES() { + return this.getToken(OracleSqlParser.XMLNAMESPACES, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + concatenation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConcatenationContext); + } else { + return this.getTypedRuleContext(ConcatenationContext,i); + } + }; + + column_alias = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_aliasContext); + } else { + return this.getTypedRuleContext(Column_aliasContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + xml_general_default_part() { + return this.getTypedRuleContext(Xml_general_default_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXml_namespaces_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xml_table_columnContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xml_table_column; + } + + xml_column_name() { + return this.getTypedRuleContext(Xml_column_nameContext,0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + ORDINALITY() { + return this.getToken(OracleSqlParser.ORDINALITY, 0); + }; + + type_spec() { + return this.getTypedRuleContext(Type_specContext,0); + }; + + PATH() { + return this.getToken(OracleSqlParser.PATH, 0); + }; + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + xml_general_default_part() { + return this.getTypedRuleContext(Xml_general_default_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXml_table_column(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xml_general_default_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xml_general_default_part; + } + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXml_general_default_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xml_multiuse_expression_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xml_multiuse_expression_element; + } + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + EVALNAME() { + return this.getToken(OracleSqlParser.EVALNAME, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXml_multiuse_expression_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xmlroot_param_version_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmlroot_param_version_part; + } + + VERSION() { + return this.getToken(OracleSqlParser.VERSION, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmlroot_param_version_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xmlroot_param_standalone_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmlroot_param_standalone_part; + } + + STANDALONE() { + return this.getToken(OracleSqlParser.STANDALONE, 0); + }; + + YES() { + return this.getToken(OracleSqlParser.YES, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmlroot_param_standalone_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xmlserialize_param_enconding_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmlserialize_param_enconding_part; + } + + ENCODING() { + return this.getToken(OracleSqlParser.ENCODING, 0); + }; + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmlserialize_param_enconding_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xmlserialize_param_version_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmlserialize_param_version_part; + } + + VERSION() { + return this.getToken(OracleSqlParser.VERSION, 0); + }; + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmlserialize_param_version_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xmlserialize_param_ident_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmlserialize_param_ident_part; + } + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + INDENT() { + return this.getToken(OracleSqlParser.INDENT, 0); + }; + + SIZE() { + return this.getToken(OracleSqlParser.SIZE, 0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmlserialize_param_ident_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Annotations_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_annotations_clause; + } + + ANNOTATIONS() { + return this.getToken(OracleSqlParser.ANNOTATIONS, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + annotations_list() { + return this.getTypedRuleContext(Annotations_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAnnotations_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Annotations_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_annotations_list; + } + + annotation() { + return this.getTypedRuleContext(AnnotationContext,0); + }; + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + annotations_list = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Annotations_listContext); + } else { + return this.getTypedRuleContext(Annotations_listContext,i); + } + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + NOT() { + return this.getToken(OracleSqlParser.NOT, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + OR() { + return this.getToken(OracleSqlParser.OR, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAnnotations_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class AnnotationContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_annotation; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAnnotation(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sql_plus_command_no_semicolonContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sql_plus_command_no_semicolon; + } + + set_command() { + return this.getTypedRuleContext(Set_commandContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSql_plus_command_no_semicolon(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sql_plus_commandContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sql_plus_command; + } + + EXIT() { + return this.getToken(OracleSqlParser.EXIT, 0); + }; + + PROMPT_MESSAGE() { + return this.getToken(OracleSqlParser.PROMPT_MESSAGE, 0); + }; + + SHOW() { + return this.getToken(OracleSqlParser.SHOW, 0); + }; + + ERR() { + return this.getToken(OracleSqlParser.ERR, 0); + }; + + ERRORS() { + return this.getToken(OracleSqlParser.ERRORS, 0); + }; + + whenever_command() { + return this.getTypedRuleContext(Whenever_commandContext,0); + }; + + timing_command() { + return this.getTypedRuleContext(Timing_commandContext,0); + }; + + start_command() { + return this.getTypedRuleContext(Start_commandContext,0); + }; + + set_command() { + return this.getTypedRuleContext(Set_commandContext,0); + }; + + clear_command() { + return this.getTypedRuleContext(Clear_commandContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSql_plus_command(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Start_commandContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_start_command; + } + + START_CMD() { + return this.getToken(OracleSqlParser.START_CMD, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + SQL() { + return this.getToken(OracleSqlParser.SQL, 0); + }; + + FILE_EXT() { + return this.getToken(OracleSqlParser.FILE_EXT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitStart_command(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Whenever_commandContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_whenever_command; + } + + WHENEVER() { + return this.getToken(OracleSqlParser.WHENEVER, 0); + }; + + SQLERROR() { + return this.getToken(OracleSqlParser.SQLERROR, 0); + }; + + OSERROR() { + return this.getToken(OracleSqlParser.OSERROR, 0); + }; + + EXIT() { + return this.getToken(OracleSqlParser.EXIT, 0); + }; + + CONTINUE() { + return this.getToken(OracleSqlParser.CONTINUE, 0); + }; + + SUCCESS() { + return this.getToken(OracleSqlParser.SUCCESS, 0); + }; + + FAILURE() { + return this.getToken(OracleSqlParser.FAILURE, 0); + }; + + WARNING() { + return this.getToken(OracleSqlParser.WARNING, 0); + }; + + variable_name() { + return this.getTypedRuleContext(Variable_nameContext,0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + COMMIT() { + return this.getToken(OracleSqlParser.COMMIT, 0); + }; + + ROLLBACK() { + return this.getToken(OracleSqlParser.ROLLBACK, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWhenever_command(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Set_commandContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_set_command; + } + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + regular_id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Regular_idContext); + } else { + return this.getTypedRuleContext(Regular_idContext,i); + } + }; + + ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.ON); + } else { + return this.getToken(OracleSqlParser.ON, i); + } + }; + + + OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.OFF); + } else { + return this.getToken(OracleSqlParser.OFF, i); + } + }; + + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSet_command(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Timing_commandContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_timing_command; + this.timing_text = null; + } + + TIMING() { + return this.getToken(OracleSqlParser.TIMING, 0); + }; + + START() { + return this.getToken(OracleSqlParser.START, 0); + }; + + SHOW() { + return this.getToken(OracleSqlParser.SHOW, 0); + }; + + STOP() { + return this.getToken(OracleSqlParser.STOP, 0); + }; + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTiming_command(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Clear_commandContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_clear_command; + } + + CLEAR() { + return this.getToken(OracleSqlParser.CLEAR, 0); + }; + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitClear_command(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Partition_extension_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_partition_extension_clause; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + FOR() { + return this.getToken(OracleSqlParser.FOR, 0); + }; + + expressions_() { + return this.getTypedRuleContext(Expressions_Context,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPartition_extension_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Column_aliasContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_column_alias; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + AS() { + return this.getToken(OracleSqlParser.AS, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitColumn_alias(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_aliasContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_alias; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_alias(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Where_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_where_clause; + } + + WHERE() { + return this.getToken(OracleSqlParser.WHERE, 0); + }; + + CURRENT() { + return this.getToken(OracleSqlParser.CURRENT, 0); + }; + + OF() { + return this.getToken(OracleSqlParser.OF, 0); + }; + + cursor_name() { + return this.getTypedRuleContext(Cursor_nameContext,0); + }; + + condition() { + return this.getTypedRuleContext(ConditionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitWhere_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Into_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_into_clause; + } + + INTO() { + return this.getToken(OracleSqlParser.INTO, 0); + }; + + general_element = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(General_elementContext); + } else { + return this.getTypedRuleContext(General_elementContext,i); + } + }; + + bind_variable = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Bind_variableContext); + } else { + return this.getTypedRuleContext(Bind_variableContext,i); + } + }; + + BULK() { + return this.getToken(OracleSqlParser.BULK, 0); + }; + + COLLECT() { + return this.getToken(OracleSqlParser.COLLECT, 0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInto_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Xml_column_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xml_column_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + quoted_string() { + return this.getTypedRuleContext(Quoted_stringContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXml_column_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cost_class_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cost_class_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCost_class_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Attribute_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_attribute_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAttribute_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Savepoint_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_savepoint_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSavepoint_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Rollback_segment_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_rollback_segment_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRollback_segment_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Schema_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_schema_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSchema_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Routine_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_routine_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + AT_SIGN() { + return this.getToken(OracleSqlParser.AT_SIGN, 0); + }; + + link_name() { + return this.getTypedRuleContext(Link_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRoutine_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Package_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_package_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPackage_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Implementation_type_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_implementation_type_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitImplementation_type_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Parameter_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_parameter_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitParameter_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Reference_model_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_reference_model_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitReference_model_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Main_model_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_main_model_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitMain_model_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Container_tableview_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_container_tableview_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitContainer_tableview_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Aggregate_function_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_aggregate_function_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitAggregate_function_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Query_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_query_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitQuery_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Grantee_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_grantee_name; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + identified_by() { + return this.getTypedRuleContext(Identified_byContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGrantee_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Role_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_role_name; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + CONNECT() { + return this.getToken(OracleSqlParser.CONNECT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRole_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Constraint_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_constraint_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + AT_SIGN() { + return this.getToken(OracleSqlParser.AT_SIGN, 0); + }; + + link_name() { + return this.getTypedRuleContext(Link_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConstraint_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Label_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_label_name; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLabel_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Type_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_type_name; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitType_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Sequence_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_sequence_name; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSequence_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Exception_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_exception_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitException_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Function_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_function_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFunction_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Procedure_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_procedure_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitProcedure_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Trigger_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_trigger_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTrigger_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Variable_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_variable_name; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + INTRODUCER() { + return this.getToken(OracleSqlParser.INTRODUCER, 0); + }; + + char_set_name() { + return this.getTypedRuleContext(Char_set_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + bind_variable() { + return this.getTypedRuleContext(Bind_variableContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitVariable_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Index_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_index_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIndex_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Cursor_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_cursor_name; + } + + general_element() { + return this.getTypedRuleContext(General_elementContext,0); + }; + + bind_variable() { + return this.getTypedRuleContext(Bind_variableContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitCursor_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Record_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_record_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + bind_variable() { + return this.getTypedRuleContext(Bind_variableContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRecord_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Link_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_link_name; + } + + database() { + return this.getTypedRuleContext(DatabaseContext,0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + domain = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DomainContext); + } else { + return this.getTypedRuleContext(DomainContext,i); + } + }; + + AT_SIGN() { + return this.getToken(OracleSqlParser.AT_SIGN, 0); + }; + + connection_qualifier() { + return this.getTypedRuleContext(Connection_qualifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLink_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Local_link_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_local_link_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitLocal_link_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Connection_qualifierContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_connection_qualifier; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConnection_qualifier(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Column_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_column_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitColumn_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Tableview_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_tableview_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + AT_SIGN() { + return this.getToken(OracleSqlParser.AT_SIGN, 0); + }; + + link_name() { + return this.getTypedRuleContext(Link_nameContext,0); + }; + + partition_extension_clause() { + return this.getTypedRuleContext(Partition_extension_clauseContext,0); + }; + + xmltable() { + return this.getTypedRuleContext(XmltableContext,0); + }; + + outer_join_sign() { + return this.getTypedRuleContext(Outer_join_signContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTableview_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class XmltableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_xmltable; + } + + XMLTABLE() { + return this.getToken(OracleSqlParser.XMLTABLE, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + concatenation() { + return this.getTypedRuleContext(ConcatenationContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + xml_namespaces_clause() { + return this.getTypedRuleContext(Xml_namespaces_clauseContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + xml_passing_clause() { + return this.getTypedRuleContext(Xml_passing_clauseContext,0); + }; + + COLUMNS() { + return this.getToken(OracleSqlParser.COLUMNS, 0); + }; + + xml_table_column = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Xml_table_columnContext); + } else { + return this.getTypedRuleContext(Xml_table_columnContext,i); + } + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + general_element_part() { + return this.getTypedRuleContext(General_element_partContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitXmltable(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Char_set_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_char_set_name; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitChar_set_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Synonym_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_synonym_name; + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSynonym_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Schema_object_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_schema_object_name; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSchema_object_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Dir_object_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_dir_object_name; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDir_object_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class User_object_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_user_object_name; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitUser_object_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Grant_object_nameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_grant_object_name; + } + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + USER() { + return this.getToken(OracleSqlParser.USER, 0); + }; + + user_object_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(User_object_nameContext); + } else { + return this.getTypedRuleContext(User_object_nameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + DIRECTORY() { + return this.getToken(OracleSqlParser.DIRECTORY, 0); + }; + + dir_object_name() { + return this.getTypedRuleContext(Dir_object_nameContext,0); + }; + + EDITION() { + return this.getToken(OracleSqlParser.EDITION, 0); + }; + + schema_object_name() { + return this.getTypedRuleContext(Schema_object_nameContext,0); + }; + + MINING() { + return this.getToken(OracleSqlParser.MINING, 0); + }; + + MODEL() { + return this.getToken(OracleSqlParser.MODEL, 0); + }; + + JAVA() { + return this.getToken(OracleSqlParser.JAVA, 0); + }; + + SOURCE() { + return this.getToken(OracleSqlParser.SOURCE, 0); + }; + + RESOURCE() { + return this.getToken(OracleSqlParser.RESOURCE, 0); + }; + + SQL() { + return this.getToken(OracleSqlParser.SQL, 0); + }; + + TRANSLATION() { + return this.getToken(OracleSqlParser.TRANSLATION, 0); + }; + + PROFILE() { + return this.getToken(OracleSqlParser.PROFILE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGrant_object_name(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Column_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_column_list; + } + + column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_nameContext); + } else { + return this.getTypedRuleContext(Column_nameContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitColumn_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Paren_column_listContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_paren_column_list; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_list() { + return this.getTypedRuleContext(Column_listContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitParen_column_list(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Keep_clauseContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_keep_clause; + } + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + DENSE_RANK() { + return this.getToken(OracleSqlParser.DENSE_RANK, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + FIRST() { + return this.getToken(OracleSqlParser.FIRST, 0); + }; + + LAST() { + return this.getToken(OracleSqlParser.LAST, 0); + }; + + query_partition_clause() { + return this.getTypedRuleContext(Query_partition_clauseContext,0); + }; + + order_by_clause() { + return this.getTypedRuleContext(Order_by_clauseContext,0); + }; + + over_clause() { + return this.getTypedRuleContext(Over_clauseContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitKeep_clause(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Function_argumentContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_function_argument; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + argument = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ArgumentContext); + } else { + return this.getTypedRuleContext(ArgumentContext,i); + } + }; + + keep_clause() { + return this.getTypedRuleContext(Keep_clauseContext,0); + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFunction_argument(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Function_argument_analyticContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_function_argument_analytic; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + argument = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ArgumentContext); + } else { + return this.getTypedRuleContext(ArgumentContext,i); + } + }; + + keep_clause() { + return this.getTypedRuleContext(Keep_clauseContext,0); + }; + + respect_or_ignore_nulls = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Respect_or_ignore_nullsContext); + } else { + return this.getTypedRuleContext(Respect_or_ignore_nullsContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFunction_argument_analytic(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Function_argument_modelingContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_function_argument_modeling; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + column_name() { + return this.getTypedRuleContext(Column_nameContext,0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + tableview_name() { + return this.getTypedRuleContext(Tableview_nameContext,0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + ASTERISK() { + return this.getToken(OracleSqlParser.ASTERISK, 0); + }; + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COMMA); + } else { + return this.getToken(OracleSqlParser.COMMA, i); + } + }; + + + keep_clause() { + return this.getTypedRuleContext(Keep_clauseContext,0); + }; + + numeric = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(NumericContext); + } else { + return this.getTypedRuleContext(NumericContext,i); + } + }; + + NULL_ = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.NULL_); + } else { + return this.getToken(OracleSqlParser.NULL_, i); + } + }; + + + column_alias = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_aliasContext); + } else { + return this.getTypedRuleContext(Column_aliasContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitFunction_argument_modeling(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Respect_or_ignore_nullsContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_respect_or_ignore_nulls; + } + + NULLS() { + return this.getToken(OracleSqlParser.NULLS, 0); + }; + + RESPECT() { + return this.getToken(OracleSqlParser.RESPECT, 0); + }; + + IGNORE() { + return this.getToken(OracleSqlParser.IGNORE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRespect_or_ignore_nulls(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class ArgumentContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_argument; + } + + expression() { + return this.getTypedRuleContext(ExpressionContext,0); + }; + + identifier() { + return this.getTypedRuleContext(IdentifierContext,0); + }; + + EQUALS_OP() { + return this.getToken(OracleSqlParser.EQUALS_OP, 0); + }; + + GREATER_THAN_OP() { + return this.getToken(OracleSqlParser.GREATER_THAN_OP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitArgument(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Type_specContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_type_spec; + } + + datatype() { + return this.getTypedRuleContext(DatatypeContext,0); + }; + + type_name() { + return this.getTypedRuleContext(Type_nameContext,0); + }; + + REF() { + return this.getToken(OracleSqlParser.REF, 0); + }; + + PERCENT_ROWTYPE() { + return this.getToken(OracleSqlParser.PERCENT_ROWTYPE, 0); + }; + + PERCENT_TYPE() { + return this.getToken(OracleSqlParser.PERCENT_TYPE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitType_spec(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class DatatypeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_datatype; + } + + native_datatype_element() { + return this.getTypedRuleContext(Native_datatype_elementContext,0); + }; + + precision_part() { + return this.getTypedRuleContext(Precision_partContext,0); + }; + + WITH() { + return this.getToken(OracleSqlParser.WITH, 0); + }; + + TIME() { + return this.getToken(OracleSqlParser.TIME, 0); + }; + + ZONE() { + return this.getToken(OracleSqlParser.ZONE, 0); + }; + + CHARACTER() { + return this.getToken(OracleSqlParser.CHARACTER, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + char_set_name() { + return this.getTypedRuleContext(Char_set_nameContext,0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + INTERVAL() { + return this.getToken(OracleSqlParser.INTERVAL, 0); + }; + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + YEAR() { + return this.getToken(OracleSqlParser.YEAR, 0); + }; + + DAY() { + return this.getToken(OracleSqlParser.DAY, 0); + }; + + MONTH() { + return this.getToken(OracleSqlParser.MONTH, 0); + }; + + SECOND() { + return this.getToken(OracleSqlParser.SECOND, 0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } + }; + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitDatatype(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Precision_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_precision_part; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + numeric = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(NumericContext); + } else { + return this.getTypedRuleContext(NumericContext,i); + } + }; + + ASTERISK() { + return this.getToken(OracleSqlParser.ASTERISK, 0); + }; + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + CHAR() { + return this.getToken(OracleSqlParser.CHAR, 0); + }; + + BYTE() { + return this.getToken(OracleSqlParser.BYTE, 0); + }; + + numeric_negative() { + return this.getTypedRuleContext(Numeric_negativeContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitPrecision_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Native_datatype_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_native_datatype_element; + } + + BINARY_INTEGER() { + return this.getToken(OracleSqlParser.BINARY_INTEGER, 0); + }; + + PLS_INTEGER() { + return this.getToken(OracleSqlParser.PLS_INTEGER, 0); + }; + + NATURAL() { + return this.getToken(OracleSqlParser.NATURAL, 0); + }; + + BINARY_FLOAT() { + return this.getToken(OracleSqlParser.BINARY_FLOAT, 0); + }; + + BINARY_DOUBLE() { + return this.getToken(OracleSqlParser.BINARY_DOUBLE, 0); + }; + + NATURALN() { + return this.getToken(OracleSqlParser.NATURALN, 0); + }; + + POSITIVE() { + return this.getToken(OracleSqlParser.POSITIVE, 0); + }; + + POSITIVEN() { + return this.getToken(OracleSqlParser.POSITIVEN, 0); + }; + + SIGNTYPE() { + return this.getToken(OracleSqlParser.SIGNTYPE, 0); + }; + + SIMPLE_INTEGER() { + return this.getToken(OracleSqlParser.SIMPLE_INTEGER, 0); + }; + + NVARCHAR2() { + return this.getToken(OracleSqlParser.NVARCHAR2, 0); + }; + + DEC() { + return this.getToken(OracleSqlParser.DEC, 0); + }; + + INTEGER() { + return this.getToken(OracleSqlParser.INTEGER, 0); + }; + + INT() { + return this.getToken(OracleSqlParser.INT, 0); + }; + + NUMERIC() { + return this.getToken(OracleSqlParser.NUMERIC, 0); + }; + + SMALLINT() { + return this.getToken(OracleSqlParser.SMALLINT, 0); + }; + + NUMBER() { + return this.getToken(OracleSqlParser.NUMBER, 0); + }; + + DECIMAL() { + return this.getToken(OracleSqlParser.DECIMAL, 0); + }; + + DOUBLE() { + return this.getToken(OracleSqlParser.DOUBLE, 0); + }; + + PRECISION() { + return this.getToken(OracleSqlParser.PRECISION, 0); + }; + + FLOAT() { + return this.getToken(OracleSqlParser.FLOAT, 0); + }; + + REAL() { + return this.getToken(OracleSqlParser.REAL, 0); + }; + + NCHAR() { + return this.getToken(OracleSqlParser.NCHAR, 0); + }; + + LONG() { + return this.getToken(OracleSqlParser.LONG, 0); + }; + + RAW() { + return this.getToken(OracleSqlParser.RAW, 0); + }; + + CHAR() { + return this.getToken(OracleSqlParser.CHAR, 0); + }; + + CHARACTER() { + return this.getToken(OracleSqlParser.CHARACTER, 0); + }; + + VARYING() { + return this.getToken(OracleSqlParser.VARYING, 0); + }; + + VARCHAR2() { + return this.getToken(OracleSqlParser.VARCHAR2, 0); + }; + + VARCHAR() { + return this.getToken(OracleSqlParser.VARCHAR, 0); + }; + + STRING() { + return this.getToken(OracleSqlParser.STRING, 0); + }; + + BOOLEAN() { + return this.getToken(OracleSqlParser.BOOLEAN, 0); + }; + + DATE() { + return this.getToken(OracleSqlParser.DATE, 0); + }; + + ROWID() { + return this.getToken(OracleSqlParser.ROWID, 0); + }; + + UROWID() { + return this.getToken(OracleSqlParser.UROWID, 0); + }; + + YEAR() { + return this.getToken(OracleSqlParser.YEAR, 0); + }; + + MONTH() { + return this.getToken(OracleSqlParser.MONTH, 0); + }; + + DAY() { + return this.getToken(OracleSqlParser.DAY, 0); + }; + + HOUR() { + return this.getToken(OracleSqlParser.HOUR, 0); + }; + + MINUTE() { + return this.getToken(OracleSqlParser.MINUTE, 0); + }; + + SECOND() { + return this.getToken(OracleSqlParser.SECOND, 0); + }; + + SDO_GEOMETRY() { + return this.getToken(OracleSqlParser.SDO_GEOMETRY, 0); + }; + + TIMEZONE_HOUR() { + return this.getToken(OracleSqlParser.TIMEZONE_HOUR, 0); + }; + + TIMEZONE_MINUTE() { + return this.getToken(OracleSqlParser.TIMEZONE_MINUTE, 0); + }; + + TIMEZONE_REGION() { + return this.getToken(OracleSqlParser.TIMEZONE_REGION, 0); + }; + + TIMEZONE_ABBR() { + return this.getToken(OracleSqlParser.TIMEZONE_ABBR, 0); + }; + + TIMESTAMP() { + return this.getToken(OracleSqlParser.TIMESTAMP, 0); + }; + + TIMESTAMP_UNCONSTRAINED() { + return this.getToken(OracleSqlParser.TIMESTAMP_UNCONSTRAINED, 0); + }; + + TIMESTAMP_TZ_UNCONSTRAINED() { + return this.getToken(OracleSqlParser.TIMESTAMP_TZ_UNCONSTRAINED, 0); + }; + + TIMESTAMP_LTZ_UNCONSTRAINED() { + return this.getToken(OracleSqlParser.TIMESTAMP_LTZ_UNCONSTRAINED, 0); + }; + + YMINTERVAL_UNCONSTRAINED() { + return this.getToken(OracleSqlParser.YMINTERVAL_UNCONSTRAINED, 0); + }; + + DSINTERVAL_UNCONSTRAINED() { + return this.getToken(OracleSqlParser.DSINTERVAL_UNCONSTRAINED, 0); + }; + + BFILE() { + return this.getToken(OracleSqlParser.BFILE, 0); + }; + + BLOB() { + return this.getToken(OracleSqlParser.BLOB, 0); + }; + + CLOB() { + return this.getToken(OracleSqlParser.CLOB, 0); + }; + + NCLOB() { + return this.getToken(OracleSqlParser.NCLOB, 0); + }; + + MLSLABEL() { + return this.getToken(OracleSqlParser.MLSLABEL, 0); + }; + + XMLTYPE() { + return this.getToken(OracleSqlParser.XMLTYPE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNative_datatype_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Bind_variableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_bind_variable; + } + + BINDVAR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.BINDVAR); + } else { + return this.getToken(OracleSqlParser.BINDVAR, i); + } + }; + + + COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.COLON); + } else { + return this.getToken(OracleSqlParser.COLON, i); + } + }; + + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + general_element_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(General_element_partContext); + } else { + return this.getTypedRuleContext(General_element_partContext,i); + } + }; + + INDICATOR() { + return this.getToken(OracleSqlParser.INDICATOR, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitBind_variable(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class General_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_general_element; + } + + general_element_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(General_element_partContext); + } else { + return this.getTypedRuleContext(General_element_partContext,i); + } + }; + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + general_element() { + return this.getTypedRuleContext(General_elementContext,0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGeneral_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class General_element_partContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_general_element_part; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + INTRODUCER() { + return this.getToken(OracleSqlParser.INTRODUCER, 0); + }; + + char_set_name() { + return this.getTypedRuleContext(Char_set_nameContext,0); + }; + + AT_SIGN() { + return this.getToken(OracleSqlParser.AT_SIGN, 0); + }; + + link_name() { + return this.getTypedRuleContext(Link_nameContext,0); + }; + + function_argument = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_argumentContext); + } else { + return this.getTypedRuleContext(Function_argumentContext,i); + } + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitGeneral_element_part(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Table_elementContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_table_element; + } + + id_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Id_expressionContext); + } else { + return this.getTypedRuleContext(Id_expressionContext,i); + } + }; + + INTRODUCER() { + return this.getToken(OracleSqlParser.INTRODUCER, 0); + }; + + char_set_name() { + return this.getTypedRuleContext(Char_set_nameContext,0); + }; + + PERIOD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.PERIOD); + } else { + return this.getToken(OracleSqlParser.PERIOD, i); + } + }; + + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitTable_element(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Object_privilegeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_object_privilege; + } + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + PRIVILEGES() { + return this.getToken(OracleSqlParser.PRIVILEGES, 0); + }; + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + DEBUG() { + return this.getToken(OracleSqlParser.DEBUG, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + EXECUTE() { + return this.getToken(OracleSqlParser.EXECUTE, 0); + }; + + FLASHBACK() { + return this.getToken(OracleSqlParser.FLASHBACK, 0); + }; + + ARCHIVE() { + return this.getToken(OracleSqlParser.ARCHIVE, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + INHERIT() { + return this.getToken(OracleSqlParser.INHERIT, 0); + }; + + REMOTE() { + return this.getToken(OracleSqlParser.REMOTE, 0); + }; + + INSERT() { + return this.getToken(OracleSqlParser.INSERT, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + SEQUENCE() { + return this.getToken(OracleSqlParser.SEQUENCE, 0); + }; + + MERGE() { + return this.getToken(OracleSqlParser.MERGE, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + COMMIT() { + return this.getToken(OracleSqlParser.COMMIT, 0); + }; + + REFRESH() { + return this.getToken(OracleSqlParser.REFRESH, 0); + }; + + QUERY() { + return this.getToken(OracleSqlParser.QUERY, 0); + }; + + REWRITE() { + return this.getToken(OracleSqlParser.REWRITE, 0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + REFERENCES() { + return this.getToken(OracleSqlParser.REFERENCES, 0); + }; + + SELECT() { + return this.getToken(OracleSqlParser.SELECT, 0); + }; + + TRANSLATE() { + return this.getToken(OracleSqlParser.TRANSLATE, 0); + }; + + SQL() { + return this.getToken(OracleSqlParser.SQL, 0); + }; + + UNDER() { + return this.getToken(OracleSqlParser.UNDER, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + USE() { + return this.getToken(OracleSqlParser.USE, 0); + }; + + WRITE() { + return this.getToken(OracleSqlParser.WRITE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitObject_privilege(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class System_privilegeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_system_privilege; + } + + ALL() { + return this.getToken(OracleSqlParser.ALL, 0); + }; + + PRIVILEGES() { + return this.getToken(OracleSqlParser.PRIVILEGES, 0); + }; + + ADVISOR() { + return this.getToken(OracleSqlParser.ADVISOR, 0); + }; + + ADMINISTER() { + return this.getToken(OracleSqlParser.ADMINISTER, 0); + }; + + SQL() { + return this.getToken(OracleSqlParser.SQL, 0); + }; + + TUNING() { + return this.getToken(OracleSqlParser.TUNING, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + ANY() { + return this.getToken(OracleSqlParser.ANY, 0); + }; + + PROFILE() { + return this.getToken(OracleSqlParser.PROFILE, 0); + }; + + ALTER() { + return this.getToken(OracleSqlParser.ALTER, 0); + }; + + CREATE() { + return this.getToken(OracleSqlParser.CREATE, 0); + }; + + DROP() { + return this.getToken(OracleSqlParser.DROP, 0); + }; + + MANAGEMENT() { + return this.getToken(OracleSqlParser.MANAGEMENT, 0); + }; + + OBJECT() { + return this.getToken(OracleSqlParser.OBJECT, 0); + }; + + CLUSTER() { + return this.getToken(OracleSqlParser.CLUSTER, 0); + }; + + CONTEXT() { + return this.getToken(OracleSqlParser.CONTEXT, 0); + }; + + EXEMPT() { + return this.getToken(OracleSqlParser.EXEMPT, 0); + }; + + REDACTION() { + return this.getToken(OracleSqlParser.REDACTION, 0); + }; + + POLICY() { + return this.getToken(OracleSqlParser.POLICY, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + LINK() { + return this.getToken(OracleSqlParser.LINK, 0); + }; + + PUBLIC() { + return this.getToken(OracleSqlParser.PUBLIC, 0); + }; + + DEBUG() { + return this.getToken(OracleSqlParser.DEBUG, 0); + }; + + CONNECT() { + return this.getToken(OracleSqlParser.CONNECT, 0); + }; + + SESSION() { + return this.getToken(OracleSqlParser.SESSION, 0); + }; + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + ANALYZE() { + return this.getToken(OracleSqlParser.ANALYZE, 0); + }; + + DICTIONARY() { + return this.getToken(OracleSqlParser.DICTIONARY, 0); + }; + + DIMENSION() { + return this.getToken(OracleSqlParser.DIMENSION, 0); + }; + + DIRECTORY() { + return this.getToken(OracleSqlParser.DIRECTORY, 0); + }; + + EDITION() { + return this.getToken(OracleSqlParser.EDITION, 0); + }; + + FLASHBACK() { + return this.getToken(OracleSqlParser.FLASHBACK, 0); + }; + + ARCHIVE() { + return this.getToken(OracleSqlParser.ARCHIVE, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + INDEX() { + return this.getToken(OracleSqlParser.INDEX, 0); + }; + + INDEXTYPE() { + return this.getToken(OracleSqlParser.INDEXTYPE, 0); + }; + + EXECUTE() { + return this.getToken(OracleSqlParser.EXECUTE, 0); + }; + + JOB() { + return this.getToken(OracleSqlParser.JOB, 0); + }; + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + CLASS() { + return this.getToken(OracleSqlParser.CLASS, 0); + }; + + PROGRAM() { + return this.getToken(OracleSqlParser.PROGRAM, 0); + }; + + MANAGE() { + return this.getToken(OracleSqlParser.MANAGE, 0); + }; + + SCHEDULER() { + return this.getToken(OracleSqlParser.SCHEDULER, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + LIBRARY() { + return this.getToken(OracleSqlParser.LIBRARY, 0); + }; + + LOGMINING() { + return this.getToken(OracleSqlParser.LOGMINING, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + VIEW() { + return this.getToken(OracleSqlParser.VIEW, 0); + }; + + QUERY() { + return this.getToken(OracleSqlParser.QUERY, 0); + }; + + REWRITE() { + return this.getToken(OracleSqlParser.REWRITE, 0); + }; + + GLOBAL() { + return this.getToken(OracleSqlParser.GLOBAL, 0); + }; + + ON() { + return this.getToken(OracleSqlParser.ON, 0); + }; + + COMMIT() { + return this.getToken(OracleSqlParser.COMMIT, 0); + }; + + REFRESH() { + return this.getToken(OracleSqlParser.REFRESH, 0); + }; + + MINING() { + return this.getToken(OracleSqlParser.MINING, 0); + }; + + MODEL() { + return this.getToken(OracleSqlParser.MODEL, 0); + }; + + SELECT() { + return this.getToken(OracleSqlParser.SELECT, 0); + }; + + COMMENT() { + return this.getToken(OracleSqlParser.COMMENT, 0); + }; + + CUBE() { + return this.getToken(OracleSqlParser.CUBE, 0); + }; + + UPDATE() { + return this.getToken(OracleSqlParser.UPDATE, 0); + }; + + MEASURE() { + return this.getToken(OracleSqlParser.MEASURE, 0); + }; + + FOLDER() { + return this.getToken(OracleSqlParser.FOLDER, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + INSERT() { + return this.getToken(OracleSqlParser.INSERT, 0); + }; + + BUILD() { + return this.getToken(OracleSqlParser.BUILD, 0); + }; + + PROCESS() { + return this.getToken(OracleSqlParser.PROCESS, 0); + }; + + OPERATOR() { + return this.getToken(OracleSqlParser.OPERATOR, 0); + }; + + OUTLINE() { + return this.getToken(OracleSqlParser.OUTLINE, 0); + }; + + PLUGGABLE() { + return this.getToken(OracleSqlParser.PLUGGABLE, 0); + }; + + CONTAINER() { + return this.getToken(OracleSqlParser.CONTAINER, 0); + }; + + ROLE() { + return this.getToken(OracleSqlParser.ROLE, 0); + }; + + GRANT() { + return this.getToken(OracleSqlParser.GRANT, 0); + }; + + ROLLBACK() { + return this.getToken(OracleSqlParser.ROLLBACK, 0); + }; + + SEGMENT() { + return this.getToken(OracleSqlParser.SEGMENT, 0); + }; + + SEQUENCE() { + return this.getToken(OracleSqlParser.SEQUENCE, 0); + }; + + RESTRICTED() { + return this.getToken(OracleSqlParser.RESTRICTED, 0); + }; + + RESOURCE() { + return this.getToken(OracleSqlParser.RESOURCE, 0); + }; + + COST() { + return this.getToken(OracleSqlParser.COST, 0); + }; + + TRANSLATION() { + return this.getToken(OracleSqlParser.TRANSLATION, 0); + }; + + USE() { + return this.getToken(OracleSqlParser.USE, 0); + }; + + TRANSLATE() { + return this.getToken(OracleSqlParser.TRANSLATE, 0); + }; + + SYNONYM() { + return this.getToken(OracleSqlParser.SYNONYM, 0); + }; + + BACKUP() { + return this.getToken(OracleSqlParser.BACKUP, 0); + }; + + LOCK() { + return this.getToken(OracleSqlParser.LOCK, 0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + UNLIMITED() { + return this.getToken(OracleSqlParser.UNLIMITED, 0); + }; + + TRIGGER() { + return this.getToken(OracleSqlParser.TRIGGER, 0); + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + UNDER() { + return this.getToken(OracleSqlParser.UNDER, 0); + }; + + USER() { + return this.getToken(OracleSqlParser.USER, 0); + }; + + MERGE() { + return this.getToken(OracleSqlParser.MERGE, 0); + }; + + AUDIT() { + return this.getToken(OracleSqlParser.AUDIT, 0); + }; + + BECOME() { + return this.getToken(OracleSqlParser.BECOME, 0); + }; + + CHANGE() { + return this.getToken(OracleSqlParser.CHANGE, 0); + }; + + NOTIFICATION() { + return this.getToken(OracleSqlParser.NOTIFICATION, 0); + }; + + ACCESS() { + return this.getToken(OracleSqlParser.ACCESS, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + TRANSACTION() { + return this.getToken(OracleSqlParser.TRANSACTION, 0); + }; + + PRIVILEGE() { + return this.getToken(OracleSqlParser.PRIVILEGE, 0); + }; + + INHERIT() { + return this.getToken(OracleSqlParser.INHERIT, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + DATE() { + return this.getToken(OracleSqlParser.DATE, 0); + }; + + TIME() { + return this.getToken(OracleSqlParser.TIME, 0); + }; + + SYSGUID() { + return this.getToken(OracleSqlParser.SYSGUID, 0); + }; + + PURGE() { + return this.getToken(OracleSqlParser.PURGE, 0); + }; + + DBA_RECYCLEBIN() { + return this.getToken(OracleSqlParser.DBA_RECYCLEBIN, 0); + }; + + RESUMABLE() { + return this.getToken(OracleSqlParser.RESUMABLE, 0); + }; + + SYSBACKUP() { + return this.getToken(OracleSqlParser.SYSBACKUP, 0); + }; + + SYSDBA() { + return this.getToken(OracleSqlParser.SYSDBA, 0); + }; + + SYSDG() { + return this.getToken(OracleSqlParser.SYSDG, 0); + }; + + SYSKM() { + return this.getToken(OracleSqlParser.SYSKM, 0); + }; + + SYSOPER() { + return this.getToken(OracleSqlParser.SYSOPER, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitSystem_privilege(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class ConstantContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_constant; + } + + TIMESTAMP() { + return this.getToken(OracleSqlParser.TIMESTAMP, 0); + }; + + quoted_string = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Quoted_stringContext); + } else { + return this.getTypedRuleContext(Quoted_stringContext,i); + } + }; + + bind_variable = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Bind_variableContext); + } else { + return this.getTypedRuleContext(Bind_variableContext,i); + } + }; + + AT() { + return this.getToken(OracleSqlParser.AT, 0); + }; + + TIME() { + return this.getToken(OracleSqlParser.TIME, 0); + }; + + ZONE() { + return this.getToken(OracleSqlParser.ZONE, 0); + }; + + INTERVAL() { + return this.getToken(OracleSqlParser.INTERVAL, 0); + }; + + YEAR() { + return this.getToken(OracleSqlParser.YEAR, 0); + }; + + MONTH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MONTH); + } else { + return this.getToken(OracleSqlParser.MONTH, i); + } + }; + + + DAY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.DAY); + } else { + return this.getToken(OracleSqlParser.DAY, i); + } + }; + + + HOUR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.HOUR); + } else { + return this.getToken(OracleSqlParser.HOUR, i); + } + }; + + + MINUTE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.MINUTE); + } else { + return this.getToken(OracleSqlParser.MINUTE, i); + } + }; + + + SECOND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.SECOND); + } else { + return this.getToken(OracleSqlParser.SECOND, i); + } + }; + + + general_element_part() { + return this.getTypedRuleContext(General_element_partContext,0); + }; + + LEFT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.LEFT_PAREN); + } else { + return this.getToken(OracleSqlParser.LEFT_PAREN, i); + } + }; + + + RIGHT_PAREN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.RIGHT_PAREN); + } else { + return this.getToken(OracleSqlParser.RIGHT_PAREN, i); + } + }; + + + TO() { + return this.getToken(OracleSqlParser.TO, 0); + }; + + UNSIGNED_INTEGER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(OracleSqlParser.UNSIGNED_INTEGER); + } else { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, i); + } + }; + + + COMMA() { + return this.getToken(OracleSqlParser.COMMA, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + DATE() { + return this.getToken(OracleSqlParser.DATE, 0); + }; + + NULL_() { + return this.getToken(OracleSqlParser.NULL_, 0); + }; + + TRUE() { + return this.getToken(OracleSqlParser.TRUE, 0); + }; + + FALSE() { + return this.getToken(OracleSqlParser.FALSE, 0); + }; + + DBTIMEZONE() { + return this.getToken(OracleSqlParser.DBTIMEZONE, 0); + }; + + SESSIONTIMEZONE() { + return this.getToken(OracleSqlParser.SESSIONTIMEZONE, 0); + }; + + MINVALUE() { + return this.getToken(OracleSqlParser.MINVALUE, 0); + }; + + MAXVALUE() { + return this.getToken(OracleSqlParser.MAXVALUE, 0); + }; + + DEFAULT() { + return this.getToken(OracleSqlParser.DEFAULT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitConstant(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class NumericContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_numeric; + } + + UNSIGNED_INTEGER() { + return this.getToken(OracleSqlParser.UNSIGNED_INTEGER, 0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + APPROXIMATE_NUM_LIT() { + return this.getToken(OracleSqlParser.APPROXIMATE_NUM_LIT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNumeric(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Numeric_negativeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_numeric_negative; + } + + MINUS_SIGN() { + return this.getToken(OracleSqlParser.MINUS_SIGN, 0); + }; + + numeric() { + return this.getTypedRuleContext(NumericContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNumeric_negative(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Quoted_stringContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_quoted_string; + } + + CHAR_STRING() { + return this.getToken(OracleSqlParser.CHAR_STRING, 0); + }; + + NATIONAL_CHAR_STRING_LIT() { + return this.getToken(OracleSqlParser.NATIONAL_CHAR_STRING_LIT, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitQuoted_string(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class IdentifierContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_identifier; + } + + id_expression() { + return this.getTypedRuleContext(Id_expressionContext,0); + }; + + INTRODUCER() { + return this.getToken(OracleSqlParser.INTRODUCER, 0); + }; + + char_set_name() { + return this.getTypedRuleContext(Char_set_nameContext,0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitIdentifier(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Id_expressionContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_id_expression; + } + + regular_id() { + return this.getTypedRuleContext(Regular_idContext,0); + }; + + DELIMITED_ID() { + return this.getToken(OracleSqlParser.DELIMITED_ID, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitId_expression(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Inquiry_directiveContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_inquiry_directive; + } + + INQUIRY_DIRECTIVE() { + return this.getToken(OracleSqlParser.INQUIRY_DIRECTIVE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitInquiry_directive(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Outer_join_signContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_outer_join_sign; + } + + LEFT_PAREN() { + return this.getToken(OracleSqlParser.LEFT_PAREN, 0); + }; + + PLUS_SIGN() { + return this.getToken(OracleSqlParser.PLUS_SIGN, 0); + }; + + RIGHT_PAREN() { + return this.getToken(OracleSqlParser.RIGHT_PAREN, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitOuter_join_sign(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Regular_idContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_regular_id; + } + + non_reserved_keywords_pre12c() { + return this.getTypedRuleContext(Non_reserved_keywords_pre12cContext,0); + }; + + non_reserved_keywords_in_12c() { + return this.getTypedRuleContext(Non_reserved_keywords_in_12cContext,0); + }; + + non_reserved_keywords_in_18c() { + return this.getTypedRuleContext(Non_reserved_keywords_in_18cContext,0); + }; + + REGULAR_ID() { + return this.getToken(OracleSqlParser.REGULAR_ID, 0); + }; + + ABSENT() { + return this.getToken(OracleSqlParser.ABSENT, 0); + }; + + A_LETTER() { + return this.getToken(OracleSqlParser.A_LETTER, 0); + }; + + AGENT() { + return this.getToken(OracleSqlParser.AGENT, 0); + }; + + AGGREGATE() { + return this.getToken(OracleSqlParser.AGGREGATE, 0); + }; + + ANALYZE() { + return this.getToken(OracleSqlParser.ANALYZE, 0); + }; + + AUTONOMOUS_TRANSACTION() { + return this.getToken(OracleSqlParser.AUTONOMOUS_TRANSACTION, 0); + }; + + BACKINGFILE() { + return this.getToken(OracleSqlParser.BACKINGFILE, 0); + }; + + BATCH() { + return this.getToken(OracleSqlParser.BATCH, 0); + }; + + BINARY_INTEGER() { + return this.getToken(OracleSqlParser.BINARY_INTEGER, 0); + }; + + BOOLEAN() { + return this.getToken(OracleSqlParser.BOOLEAN, 0); + }; + + C_LETTER() { + return this.getToken(OracleSqlParser.C_LETTER, 0); + }; + + CHAR() { + return this.getToken(OracleSqlParser.CHAR, 0); + }; + + CHARSETID() { + return this.getToken(OracleSqlParser.CHARSETID, 0); + }; + + CHARSETFORM() { + return this.getToken(OracleSqlParser.CHARSETFORM, 0); + }; + + CLUSTER() { + return this.getToken(OracleSqlParser.CLUSTER, 0); + }; + + CONSTRUCTOR() { + return this.getToken(OracleSqlParser.CONSTRUCTOR, 0); + }; + + CUSTOMDATUM() { + return this.getToken(OracleSqlParser.CUSTOMDATUM, 0); + }; + + CASESENSITIVE() { + return this.getToken(OracleSqlParser.CASESENSITIVE, 0); + }; + + DECIMAL() { + return this.getToken(OracleSqlParser.DECIMAL, 0); + }; + + DELETE() { + return this.getToken(OracleSqlParser.DELETE, 0); + }; + + DEPRECATE() { + return this.getToken(OracleSqlParser.DEPRECATE, 0); + }; + + DETERMINISTIC() { + return this.getToken(OracleSqlParser.DETERMINISTIC, 0); + }; + + DSINTERVAL_UNCONSTRAINED() { + return this.getToken(OracleSqlParser.DSINTERVAL_UNCONSTRAINED, 0); + }; + + DURATION() { + return this.getToken(OracleSqlParser.DURATION, 0); + }; + + E_LETTER() { + return this.getToken(OracleSqlParser.E_LETTER, 0); + }; + + ENABLED() { + return this.getToken(OracleSqlParser.ENABLED, 0); + }; + + ERROR_INDEX() { + return this.getToken(OracleSqlParser.ERROR_INDEX, 0); + }; + + ERROR_CODE() { + return this.getToken(OracleSqlParser.ERROR_CODE, 0); + }; + + ERR() { + return this.getToken(OracleSqlParser.ERR, 0); + }; + + EXCEPTION() { + return this.getToken(OracleSqlParser.EXCEPTION, 0); + }; + + EXCEPTION_INIT() { + return this.getToken(OracleSqlParser.EXCEPTION_INIT, 0); + }; + + EXCEPTIONS() { + return this.getToken(OracleSqlParser.EXCEPTIONS, 0); + }; + + EXISTS() { + return this.getToken(OracleSqlParser.EXISTS, 0); + }; + + EXIT() { + return this.getToken(OracleSqlParser.EXIT, 0); + }; + + EXTEND() { + return this.getToken(OracleSqlParser.EXTEND, 0); + }; + + FILESTORE() { + return this.getToken(OracleSqlParser.FILESTORE, 0); + }; + + FLOAT() { + return this.getToken(OracleSqlParser.FLOAT, 0); + }; + + FORALL() { + return this.getToken(OracleSqlParser.FORALL, 0); + }; + + G_LETTER() { + return this.getToken(OracleSqlParser.G_LETTER, 0); + }; + + INDICES() { + return this.getToken(OracleSqlParser.INDICES, 0); + }; + + INOUT() { + return this.getToken(OracleSqlParser.INOUT, 0); + }; + + INTEGER() { + return this.getToken(OracleSqlParser.INTEGER, 0); + }; + + JSON_TRANSFORM() { + return this.getToken(OracleSqlParser.JSON_TRANSFORM, 0); + }; + + K_LETTER() { + return this.getToken(OracleSqlParser.K_LETTER, 0); + }; + + LANGUAGE() { + return this.getToken(OracleSqlParser.LANGUAGE, 0); + }; + + LONG() { + return this.getToken(OracleSqlParser.LONG, 0); + }; + + LOOP() { + return this.getToken(OracleSqlParser.LOOP, 0); + }; + + MAXLEN() { + return this.getToken(OracleSqlParser.MAXLEN, 0); + }; + + MOUNTPOINT() { + return this.getToken(OracleSqlParser.MOUNTPOINT, 0); + }; + + M_LETTER() { + return this.getToken(OracleSqlParser.M_LETTER, 0); + }; + + MISSING() { + return this.getToken(OracleSqlParser.MISSING, 0); + }; + + MISMATCH() { + return this.getToken(OracleSqlParser.MISMATCH, 0); + }; + + NUMBER() { + return this.getToken(OracleSqlParser.NUMBER, 0); + }; + + ORADATA() { + return this.getToken(OracleSqlParser.ORADATA, 0); + }; + + OSERROR() { + return this.getToken(OracleSqlParser.OSERROR, 0); + }; + + OUT() { + return this.getToken(OracleSqlParser.OUT, 0); + }; + + OVERRIDING() { + return this.getToken(OracleSqlParser.OVERRIDING, 0); + }; + + P_LETTER() { + return this.getToken(OracleSqlParser.P_LETTER, 0); + }; + + PARALLEL_ENABLE() { + return this.getToken(OracleSqlParser.PARALLEL_ENABLE, 0); + }; + + PIPELINED() { + return this.getToken(OracleSqlParser.PIPELINED, 0); + }; + + PLS_INTEGER() { + return this.getToken(OracleSqlParser.PLS_INTEGER, 0); + }; + + PMEM() { + return this.getToken(OracleSqlParser.PMEM, 0); + }; + + POSITIVE() { + return this.getToken(OracleSqlParser.POSITIVE, 0); + }; + + POSITIVEN() { + return this.getToken(OracleSqlParser.POSITIVEN, 0); + }; + + PRAGMA() { + return this.getToken(OracleSqlParser.PRAGMA, 0); + }; + + PUBLIC() { + return this.getToken(OracleSqlParser.PUBLIC, 0); + }; + + RAISE() { + return this.getToken(OracleSqlParser.RAISE, 0); + }; + + RAW() { + return this.getToken(OracleSqlParser.RAW, 0); + }; + + RECORD() { + return this.getToken(OracleSqlParser.RECORD, 0); + }; + + REF() { + return this.getToken(OracleSqlParser.REF, 0); + }; + + RENAME() { + return this.getToken(OracleSqlParser.RENAME, 0); + }; + + RESTRICT_REFERENCES() { + return this.getToken(OracleSqlParser.RESTRICT_REFERENCES, 0); + }; + + RESULT() { + return this.getToken(OracleSqlParser.RESULT, 0); + }; + + SDO_GEOMETRY() { + return this.getToken(OracleSqlParser.SDO_GEOMETRY, 0); + }; + + SELF() { + return this.getToken(OracleSqlParser.SELF, 0); + }; + + SERIALLY_REUSABLE() { + return this.getToken(OracleSqlParser.SERIALLY_REUSABLE, 0); + }; + + SET() { + return this.getToken(OracleSqlParser.SET, 0); + }; + + SEQ() { + return this.getToken(OracleSqlParser.SEQ, 0); + }; + + SHARDSPACE() { + return this.getToken(OracleSqlParser.SHARDSPACE, 0); + }; + + SIGNTYPE() { + return this.getToken(OracleSqlParser.SIGNTYPE, 0); + }; + + SIMPLE_INTEGER() { + return this.getToken(OracleSqlParser.SIMPLE_INTEGER, 0); + }; + + SMALLINT() { + return this.getToken(OracleSqlParser.SMALLINT, 0); + }; + + STRUCT() { + return this.getToken(OracleSqlParser.STRUCT, 0); + }; + + SQLDATA() { + return this.getToken(OracleSqlParser.SQLDATA, 0); + }; + + SQLERROR() { + return this.getToken(OracleSqlParser.SQLERROR, 0); + }; + + SUBTYPE() { + return this.getToken(OracleSqlParser.SUBTYPE, 0); + }; + + T_LETTER() { + return this.getToken(OracleSqlParser.T_LETTER, 0); + }; + + TDO() { + return this.getToken(OracleSqlParser.TDO, 0); + }; + + TIMESTAMP_LTZ_UNCONSTRAINED() { + return this.getToken(OracleSqlParser.TIMESTAMP_LTZ_UNCONSTRAINED, 0); + }; + + TIMESTAMP_TZ_UNCONSTRAINED() { + return this.getToken(OracleSqlParser.TIMESTAMP_TZ_UNCONSTRAINED, 0); + }; + + TIMESTAMP_UNCONSTRAINED() { + return this.getToken(OracleSqlParser.TIMESTAMP_UNCONSTRAINED, 0); + }; + + TIMEZONE() { + return this.getToken(OracleSqlParser.TIMEZONE, 0); + }; + + TRIGGER() { + return this.getToken(OracleSqlParser.TRIGGER, 0); + }; + + UDF() { + return this.getToken(OracleSqlParser.UDF, 0); + }; + + VARCHAR() { + return this.getToken(OracleSqlParser.VARCHAR, 0); + }; + + VARCHAR2() { + return this.getToken(OracleSqlParser.VARCHAR2, 0); + }; + + VARIABLE() { + return this.getToken(OracleSqlParser.VARIABLE, 0); + }; + + WARNING() { + return this.getToken(OracleSqlParser.WARNING, 0); + }; + + WHILE() { + return this.getToken(OracleSqlParser.WHILE, 0); + }; + + WM_CONCAT() { + return this.getToken(OracleSqlParser.WM_CONCAT, 0); + }; + + XMLAGG() { + return this.getToken(OracleSqlParser.XMLAGG, 0); + }; + + YMINTERVAL_UNCONSTRAINED() { + return this.getToken(OracleSqlParser.YMINTERVAL_UNCONSTRAINED, 0); + }; + + REGR_() { + return this.getToken(OracleSqlParser.REGR_, 0); + }; + + VAR_() { + return this.getToken(OracleSqlParser.VAR_, 0); + }; + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + COVAR_() { + return this.getToken(OracleSqlParser.COVAR_, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitRegular_id(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Non_reserved_keywords_in_18cContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_non_reserved_keywords_in_18c; + } + + PERSISTABLE() { + return this.getToken(OracleSqlParser.PERSISTABLE, 0); + }; + + POLYMORPHIC() { + return this.getToken(OracleSqlParser.POLYMORPHIC, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNon_reserved_keywords_in_18c(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Non_reserved_keywords_in_12cContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_non_reserved_keywords_in_12c; + } + + ACL() { + return this.getToken(OracleSqlParser.ACL, 0); + }; + + ACCESSIBLE() { + return this.getToken(OracleSqlParser.ACCESSIBLE, 0); + }; + + ACROSS() { + return this.getToken(OracleSqlParser.ACROSS, 0); + }; + + ACTION() { + return this.getToken(OracleSqlParser.ACTION, 0); + }; + + ACTIONS() { + return this.getToken(OracleSqlParser.ACTIONS, 0); + }; + + ACTIVE() { + return this.getToken(OracleSqlParser.ACTIVE, 0); + }; + + ACTIVE_DATA() { + return this.getToken(OracleSqlParser.ACTIVE_DATA, 0); + }; + + ACTIVITY() { + return this.getToken(OracleSqlParser.ACTIVITY, 0); + }; + + ADAPTIVE_PLAN() { + return this.getToken(OracleSqlParser.ADAPTIVE_PLAN, 0); + }; + + ADVANCED() { + return this.getToken(OracleSqlParser.ADVANCED, 0); + }; + + AFD_DISKSTRING() { + return this.getToken(OracleSqlParser.AFD_DISKSTRING, 0); + }; + + ALTERNATE() { + return this.getToken(OracleSqlParser.ALTERNATE, 0); + }; + + ALGORITHM() { + return this.getToken(OracleSqlParser.ALGORITHM, 0); + }; + + ANALYTIC() { + return this.getToken(OracleSqlParser.ANALYTIC, 0); + }; + + ANCESTOR() { + return this.getToken(OracleSqlParser.ANCESTOR, 0); + }; + + ANOMALY() { + return this.getToken(OracleSqlParser.ANOMALY, 0); + }; + + ANSI_REARCH() { + return this.getToken(OracleSqlParser.ANSI_REARCH, 0); + }; + + APPLICATION() { + return this.getToken(OracleSqlParser.APPLICATION, 0); + }; + + APPROX_COUNT_DISTINCT() { + return this.getToken(OracleSqlParser.APPROX_COUNT_DISTINCT, 0); + }; + + ARCHIVAL() { + return this.getToken(OracleSqlParser.ARCHIVAL, 0); + }; + + ARCHIVED() { + return this.getToken(OracleSqlParser.ARCHIVED, 0); + }; + + ASIS() { + return this.getToken(OracleSqlParser.ASIS, 0); + }; + + ASSIGN() { + return this.getToken(OracleSqlParser.ASSIGN, 0); + }; + + AUTO_LOGIN() { + return this.getToken(OracleSqlParser.AUTO_LOGIN, 0); + }; + + AUTO_REOPTIMIZE() { + return this.getToken(OracleSqlParser.AUTO_REOPTIMIZE, 0); + }; + + AVRO() { + return this.getToken(OracleSqlParser.AVRO, 0); + }; + + BACKGROUND() { + return this.getToken(OracleSqlParser.BACKGROUND, 0); + }; + + BACKUPS() { + return this.getToken(OracleSqlParser.BACKUPS, 0); + }; + + BATCHSIZE() { + return this.getToken(OracleSqlParser.BATCHSIZE, 0); + }; + + BATCH_TABLE_ACCESS_BY_ROWID() { + return this.getToken(OracleSqlParser.BATCH_TABLE_ACCESS_BY_ROWID, 0); + }; + + BEGINNING() { + return this.getToken(OracleSqlParser.BEGINNING, 0); + }; + + BEQUEATH() { + return this.getToken(OracleSqlParser.BEQUEATH, 0); + }; + + BITMAP_AND() { + return this.getToken(OracleSqlParser.BITMAP_AND, 0); + }; + + BLOCKCHAIN() { + return this.getToken(OracleSqlParser.BLOCKCHAIN, 0); + }; + + BSON() { + return this.getToken(OracleSqlParser.BSON, 0); + }; + + CACHING() { + return this.getToken(OracleSqlParser.CACHING, 0); + }; + + CALCULATED() { + return this.getToken(OracleSqlParser.CALCULATED, 0); + }; + + CALLBACK() { + return this.getToken(OracleSqlParser.CALLBACK, 0); + }; + + CAPACITY() { + return this.getToken(OracleSqlParser.CAPACITY, 0); + }; + + CAPTION() { + return this.getToken(OracleSqlParser.CAPTION, 0); + }; + + CDBDEFAULT() { + return this.getToken(OracleSqlParser.CDBDEFAULT, 0); + }; + + CLASSIFICATION() { + return this.getToken(OracleSqlParser.CLASSIFICATION, 0); + }; + + CLASSIFIER() { + return this.getToken(OracleSqlParser.CLASSIFIER, 0); + }; + + CLAUSE() { + return this.getToken(OracleSqlParser.CLAUSE, 0); + }; + + CLEAN() { + return this.getToken(OracleSqlParser.CLEAN, 0); + }; + + CLEANUP() { + return this.getToken(OracleSqlParser.CLEANUP, 0); + }; + + CLIENT() { + return this.getToken(OracleSqlParser.CLIENT, 0); + }; + + CLUSTERING() { + return this.getToken(OracleSqlParser.CLUSTERING, 0); + }; + + CLUSTER_DETAILS() { + return this.getToken(OracleSqlParser.CLUSTER_DETAILS, 0); + }; + + CLUSTER_DISTANCE() { + return this.getToken(OracleSqlParser.CLUSTER_DISTANCE, 0); + }; + + COLLATE() { + return this.getToken(OracleSqlParser.COLLATE, 0); + }; + + COLLATION() { + return this.getToken(OracleSqlParser.COLLATION, 0); + }; + + COMMON() { + return this.getToken(OracleSqlParser.COMMON, 0); + }; + + COMMON_DATA() { + return this.getToken(OracleSqlParser.COMMON_DATA, 0); + }; + + COMPONENT() { + return this.getToken(OracleSqlParser.COMPONENT, 0); + }; + + COMPONENTS() { + return this.getToken(OracleSqlParser.COMPONENTS, 0); + }; + + CONDITION() { + return this.getToken(OracleSqlParser.CONDITION, 0); + }; + + CONDITIONAL() { + return this.getToken(OracleSqlParser.CONDITIONAL, 0); + }; + + CONTAINERS() { + return this.getToken(OracleSqlParser.CONTAINERS, 0); + }; + + CONTAINERS_DEFAULT() { + return this.getToken(OracleSqlParser.CONTAINERS_DEFAULT, 0); + }; + + CONTAINER_DATA() { + return this.getToken(OracleSqlParser.CONTAINER_DATA, 0); + }; + + CONTAINER_MAP() { + return this.getToken(OracleSqlParser.CONTAINER_MAP, 0); + }; + + CONVERSION() { + return this.getToken(OracleSqlParser.CONVERSION, 0); + }; + + CON_DBID_TO_ID() { + return this.getToken(OracleSqlParser.CON_DBID_TO_ID, 0); + }; + + CON_GUID_TO_ID() { + return this.getToken(OracleSqlParser.CON_GUID_TO_ID, 0); + }; + + CON_ID() { + return this.getToken(OracleSqlParser.CON_ID, 0); + }; + + CON_NAME_TO_ID() { + return this.getToken(OracleSqlParser.CON_NAME_TO_ID, 0); + }; + + CON_UID_TO_ID() { + return this.getToken(OracleSqlParser.CON_UID_TO_ID, 0); + }; + + COOKIE() { + return this.getToken(OracleSqlParser.COOKIE, 0); + }; + + COPY() { + return this.getToken(OracleSqlParser.COPY, 0); + }; + + CREATE_FILE_DEST() { + return this.getToken(OracleSqlParser.CREATE_FILE_DEST, 0); + }; + + CREDENTIAL() { + return this.getToken(OracleSqlParser.CREDENTIAL, 0); + }; + + CRITICAL() { + return this.getToken(OracleSqlParser.CRITICAL, 0); + }; + + CUBE_AJ() { + return this.getToken(OracleSqlParser.CUBE_AJ, 0); + }; + + CUBE_SJ() { + return this.getToken(OracleSqlParser.CUBE_SJ, 0); + }; + + DATAMOVEMENT() { + return this.getToken(OracleSqlParser.DATAMOVEMENT, 0); + }; + + DATAOBJ_TO_MAT_PARTITION() { + return this.getToken(OracleSqlParser.DATAOBJ_TO_MAT_PARTITION, 0); + }; + + DATAPUMP() { + return this.getToken(OracleSqlParser.DATAPUMP, 0); + }; + + DATA_SECURITY_REWRITE_LIMIT() { + return this.getToken(OracleSqlParser.DATA_SECURITY_REWRITE_LIMIT, 0); + }; + + DAYS() { + return this.getToken(OracleSqlParser.DAYS, 0); + }; + + DB_UNIQUE_NAME() { + return this.getToken(OracleSqlParser.DB_UNIQUE_NAME, 0); + }; + + DECORRELATE() { + return this.getToken(OracleSqlParser.DECORRELATE, 0); + }; + + DEFAULT_CREDENTIAL() { + return this.getToken(OracleSqlParser.DEFAULT_CREDENTIAL, 0); + }; + + DEFAULT_COLLATION() { + return this.getToken(OracleSqlParser.DEFAULT_COLLATION, 0); + }; + + DEFINE() { + return this.getToken(OracleSqlParser.DEFINE, 0); + }; + + DEFINITION() { + return this.getToken(OracleSqlParser.DEFINITION, 0); + }; + + DELEGATE() { + return this.getToken(OracleSqlParser.DELEGATE, 0); + }; + + DELETE_ALL() { + return this.getToken(OracleSqlParser.DELETE_ALL, 0); + }; + + DESCRIPTION() { + return this.getToken(OracleSqlParser.DESCRIPTION, 0); + }; + + DESTROY() { + return this.getToken(OracleSqlParser.DESTROY, 0); + }; + + DIMENSIONS() { + return this.getToken(OracleSqlParser.DIMENSIONS, 0); + }; + + DISABLE_ALL() { + return this.getToken(OracleSqlParser.DISABLE_ALL, 0); + }; + + DISABLE_PARALLEL_DML() { + return this.getToken(OracleSqlParser.DISABLE_PARALLEL_DML, 0); + }; + + DISCARD() { + return this.getToken(OracleSqlParser.DISCARD, 0); + }; + + DISTRIBUTE() { + return this.getToken(OracleSqlParser.DISTRIBUTE, 0); + }; + + DUPLICATE() { + return this.getToken(OracleSqlParser.DUPLICATE, 0); + }; + + DUPLICATED() { + return this.getToken(OracleSqlParser.DUPLICATED, 0); + }; + + DV() { + return this.getToken(OracleSqlParser.DV, 0); + }; + + EDITIONABLE() { + return this.getToken(OracleSqlParser.EDITIONABLE, 0); + }; + + ELIM_GROUPBY() { + return this.getToken(OracleSqlParser.ELIM_GROUPBY, 0); + }; + + EM() { + return this.getToken(OracleSqlParser.EM, 0); + }; + + ENABLE_ALL() { + return this.getToken(OracleSqlParser.ENABLE_ALL, 0); + }; + + ENABLE_PARALLEL_DML() { + return this.getToken(OracleSqlParser.ENABLE_PARALLEL_DML, 0); + }; + + EQUIPART() { + return this.getToken(OracleSqlParser.EQUIPART, 0); + }; + + EVAL() { + return this.getToken(OracleSqlParser.EVAL, 0); + }; + + EVALUATE() { + return this.getToken(OracleSqlParser.EVALUATE, 0); + }; + + EXISTING() { + return this.getToken(OracleSqlParser.EXISTING, 0); + }; + + EXPRESS() { + return this.getToken(OracleSqlParser.EXPRESS, 0); + }; + + EXTENDED() { + return this.getToken(OracleSqlParser.EXTENDED, 0); + }; + + EXTRACTCLOBXML() { + return this.getToken(OracleSqlParser.EXTRACTCLOBXML, 0); + }; + + FACTOR() { + return this.getToken(OracleSqlParser.FACTOR, 0); + }; + + FAILOVER() { + return this.getToken(OracleSqlParser.FAILOVER, 0); + }; + + FAILURE() { + return this.getToken(OracleSqlParser.FAILURE, 0); + }; + + FAMILY() { + return this.getToken(OracleSqlParser.FAMILY, 0); + }; + + FAR() { + return this.getToken(OracleSqlParser.FAR, 0); + }; + + FASTSTART() { + return this.getToken(OracleSqlParser.FASTSTART, 0); + }; + + FEATURE() { + return this.getToken(OracleSqlParser.FEATURE, 0); + }; + + FEATURE_DETAILS() { + return this.getToken(OracleSqlParser.FEATURE_DETAILS, 0); + }; + + FETCH() { + return this.getToken(OracleSqlParser.FETCH, 0); + }; + + FILE_NAME_CONVERT() { + return this.getToken(OracleSqlParser.FILE_NAME_CONVERT, 0); + }; + + FILEGROUP() { + return this.getToken(OracleSqlParser.FILEGROUP, 0); + }; + + FIXED_VIEW_DATA() { + return this.getToken(OracleSqlParser.FIXED_VIEW_DATA, 0); + }; + + FLEX() { + return this.getToken(OracleSqlParser.FLEX, 0); + }; + + FORMAT() { + return this.getToken(OracleSqlParser.FORMAT, 0); + }; + + FTP() { + return this.getToken(OracleSqlParser.FTP, 0); + }; + + GATHER_OPTIMIZER_STATISTICS() { + return this.getToken(OracleSqlParser.GATHER_OPTIMIZER_STATISTICS, 0); + }; + + GET() { + return this.getToken(OracleSqlParser.GET, 0); + }; + + HALF_YEARS() { + return this.getToken(OracleSqlParser.HALF_YEARS, 0); + }; + + HASHING() { + return this.getToken(OracleSqlParser.HASHING, 0); + }; + + HIER_ORDER() { + return this.getToken(OracleSqlParser.HIER_ORDER, 0); + }; + + HIERARCHICAL() { + return this.getToken(OracleSqlParser.HIERARCHICAL, 0); + }; + + HOURS() { + return this.getToken(OracleSqlParser.HOURS, 0); + }; + + HTTP() { + return this.getToken(OracleSqlParser.HTTP, 0); + }; + + H_LETTER() { + return this.getToken(OracleSqlParser.H_LETTER, 0); + }; + + IDLE() { + return this.getToken(OracleSqlParser.IDLE, 0); + }; + + ILM() { + return this.getToken(OracleSqlParser.ILM, 0); + }; + + IMMUTABLE() { + return this.getToken(OracleSqlParser.IMMUTABLE, 0); + }; + + INACTIVE() { + return this.getToken(OracleSqlParser.INACTIVE, 0); + }; + + INACTIVE_ACCOUNT_TIME() { + return this.getToken(OracleSqlParser.INACTIVE_ACCOUNT_TIME, 0); + }; + + INDEXING() { + return this.getToken(OracleSqlParser.INDEXING, 0); + }; + + INHERIT() { + return this.getToken(OracleSqlParser.INHERIT, 0); + }; + + INMEMORY() { + return this.getToken(OracleSqlParser.INMEMORY, 0); + }; + + INMEMORY_PRUNING() { + return this.getToken(OracleSqlParser.INMEMORY_PRUNING, 0); + }; + + INPLACE() { + return this.getToken(OracleSqlParser.INPLACE, 0); + }; + + INTERLEAVED() { + return this.getToken(OracleSqlParser.INTERLEAVED, 0); + }; + + INVALIDATION() { + return this.getToken(OracleSqlParser.INVALIDATION, 0); + }; + + ISOLATE() { + return this.getToken(OracleSqlParser.ISOLATE, 0); + }; + + IS_LEAF() { + return this.getToken(OracleSqlParser.IS_LEAF, 0); + }; + + JSON() { + return this.getToken(OracleSqlParser.JSON, 0); + }; + + JSONGET() { + return this.getToken(OracleSqlParser.JSONGET, 0); + }; + + JSONPARSE() { + return this.getToken(OracleSqlParser.JSONPARSE, 0); + }; + + JSON_ARRAY() { + return this.getToken(OracleSqlParser.JSON_ARRAY, 0); + }; + + JSON_ARRAYAGG() { + return this.getToken(OracleSqlParser.JSON_ARRAYAGG, 0); + }; + + JSON_EQUAL() { + return this.getToken(OracleSqlParser.JSON_EQUAL, 0); + }; + + JSON_EXISTS() { + return this.getToken(OracleSqlParser.JSON_EXISTS, 0); + }; + + JSON_EXISTS2() { + return this.getToken(OracleSqlParser.JSON_EXISTS2, 0); + }; + + JSON_OBJECT() { + return this.getToken(OracleSqlParser.JSON_OBJECT, 0); + }; + + JSON_OBJECTAGG() { + return this.getToken(OracleSqlParser.JSON_OBJECTAGG, 0); + }; + + JSON_QUERY() { + return this.getToken(OracleSqlParser.JSON_QUERY, 0); + }; + + JSON_SERIALIZE() { + return this.getToken(OracleSqlParser.JSON_SERIALIZE, 0); + }; + + JSON_TABLE() { + return this.getToken(OracleSqlParser.JSON_TABLE, 0); + }; + + JSON_TEXTCONTAINS() { + return this.getToken(OracleSqlParser.JSON_TEXTCONTAINS, 0); + }; + + JSON_TEXTCONTAINS2() { + return this.getToken(OracleSqlParser.JSON_TEXTCONTAINS2, 0); + }; + + JSON_VALUE() { + return this.getToken(OracleSqlParser.JSON_VALUE, 0); + }; + + KEYSTORE() { + return this.getToken(OracleSqlParser.KEYSTORE, 0); + }; + + LABEL() { + return this.getToken(OracleSqlParser.LABEL, 0); + }; + + LAX() { + return this.getToken(OracleSqlParser.LAX, 0); + }; + + LEAD_CDB() { + return this.getToken(OracleSqlParser.LEAD_CDB, 0); + }; + + LEAD_CDB_URI() { + return this.getToken(OracleSqlParser.LEAD_CDB_URI, 0); + }; + + LEVEL_NAME() { + return this.getToken(OracleSqlParser.LEVEL_NAME, 0); + }; + + LIFECYCLE() { + return this.getToken(OracleSqlParser.LIFECYCLE, 0); + }; + + LINEAR() { + return this.getToken(OracleSqlParser.LINEAR, 0); + }; + + LOCKDOWN() { + return this.getToken(OracleSqlParser.LOCKDOWN, 0); + }; + + LOCKING() { + return this.getToken(OracleSqlParser.LOCKING, 0); + }; + + LOGMINING() { + return this.getToken(OracleSqlParser.LOGMINING, 0); + }; + + LOST() { + return this.getToken(OracleSqlParser.LOST, 0); + }; + + MANDATORY() { + return this.getToken(OracleSqlParser.MANDATORY, 0); + }; + + MAP() { + return this.getToken(OracleSqlParser.MAP, 0); + }; + + MATCH() { + return this.getToken(OracleSqlParser.MATCH, 0); + }; + + MATCHES() { + return this.getToken(OracleSqlParser.MATCHES, 0); + }; + + MATCH_NUMBER() { + return this.getToken(OracleSqlParser.MATCH_NUMBER, 0); + }; + + MATCH_RECOGNIZE() { + return this.getToken(OracleSqlParser.MATCH_RECOGNIZE, 0); + }; + + MAX_SHARED_TEMP_SIZE() { + return this.getToken(OracleSqlParser.MAX_SHARED_TEMP_SIZE, 0); + }; + + MEMCOMPRESS() { + return this.getToken(OracleSqlParser.MEMCOMPRESS, 0); + }; + + METADATA() { + return this.getToken(OracleSqlParser.METADATA, 0); + }; + + MEMBER_CAPTION() { + return this.getToken(OracleSqlParser.MEMBER_CAPTION, 0); + }; + + MEMBER_DESCRIPTION() { + return this.getToken(OracleSqlParser.MEMBER_DESCRIPTION, 0); + }; + + MEMBER_NAME() { + return this.getToken(OracleSqlParser.MEMBER_NAME, 0); + }; + + MEMBER_UNIQUE_NAME() { + return this.getToken(OracleSqlParser.MEMBER_UNIQUE_NAME, 0); + }; + + MEMOPTIMIZE() { + return this.getToken(OracleSqlParser.MEMOPTIMIZE, 0); + }; + + MINUTES() { + return this.getToken(OracleSqlParser.MINUTES, 0); + }; + + MODEL_NB() { + return this.getToken(OracleSqlParser.MODEL_NB, 0); + }; + + MODEL_SV() { + return this.getToken(OracleSqlParser.MODEL_SV, 0); + }; + + MODIFICATION() { + return this.getToken(OracleSqlParser.MODIFICATION, 0); + }; + + MODULE() { + return this.getToken(OracleSqlParser.MODULE, 0); + }; + + MONTHS() { + return this.getToken(OracleSqlParser.MONTHS, 0); + }; + + MULTIDIMENSIONAL() { + return this.getToken(OracleSqlParser.MULTIDIMENSIONAL, 0); + }; + + NEG() { + return this.getToken(OracleSqlParser.NEG, 0); + }; + + NOCOPY() { + return this.getToken(OracleSqlParser.NOCOPY, 0); + }; + + NOKEEP() { + return this.getToken(OracleSqlParser.NOKEEP, 0); + }; + + NONEDITIONABLE() { + return this.getToken(OracleSqlParser.NONEDITIONABLE, 0); + }; + + NOPARTITION() { + return this.getToken(OracleSqlParser.NOPARTITION, 0); + }; + + NORELOCATE() { + return this.getToken(OracleSqlParser.NORELOCATE, 0); + }; + + NOREPLAY() { + return this.getToken(OracleSqlParser.NOREPLAY, 0); + }; + + NO_ADAPTIVE_PLAN() { + return this.getToken(OracleSqlParser.NO_ADAPTIVE_PLAN, 0); + }; + + NO_ANSI_REARCH() { + return this.getToken(OracleSqlParser.NO_ANSI_REARCH, 0); + }; + + NO_AUTO_REOPTIMIZE() { + return this.getToken(OracleSqlParser.NO_AUTO_REOPTIMIZE, 0); + }; + + NO_BATCH_TABLE_ACCESS_BY_ROWID() { + return this.getToken(OracleSqlParser.NO_BATCH_TABLE_ACCESS_BY_ROWID, 0); + }; + + NO_CLUSTERING() { + return this.getToken(OracleSqlParser.NO_CLUSTERING, 0); + }; + + NO_COMMON_DATA() { + return this.getToken(OracleSqlParser.NO_COMMON_DATA, 0); + }; + + NO_DATA_SECURITY_REWRITE() { + return this.getToken(OracleSqlParser.NO_DATA_SECURITY_REWRITE, 0); + }; + + NO_DECORRELATE() { + return this.getToken(OracleSqlParser.NO_DECORRELATE, 0); + }; + + NO_ELIM_GROUPBY() { + return this.getToken(OracleSqlParser.NO_ELIM_GROUPBY, 0); + }; + + NO_GATHER_OPTIMIZER_STATISTICS() { + return this.getToken(OracleSqlParser.NO_GATHER_OPTIMIZER_STATISTICS, 0); + }; + + NO_INMEMORY() { + return this.getToken(OracleSqlParser.NO_INMEMORY, 0); + }; + + NO_INMEMORY_PRUNING() { + return this.getToken(OracleSqlParser.NO_INMEMORY_PRUNING, 0); + }; + + NO_OBJECT_LINK() { + return this.getToken(OracleSqlParser.NO_OBJECT_LINK, 0); + }; + + NO_PARTIAL_JOIN() { + return this.getToken(OracleSqlParser.NO_PARTIAL_JOIN, 0); + }; + + NO_PARTIAL_ROLLUP_PUSHDOWN() { + return this.getToken(OracleSqlParser.NO_PARTIAL_ROLLUP_PUSHDOWN, 0); + }; + + NO_PQ_CONCURRENT_UNION() { + return this.getToken(OracleSqlParser.NO_PQ_CONCURRENT_UNION, 0); + }; + + NO_PQ_REPLICATE() { + return this.getToken(OracleSqlParser.NO_PQ_REPLICATE, 0); + }; + + NO_PQ_SKEW() { + return this.getToken(OracleSqlParser.NO_PQ_SKEW, 0); + }; + + NOPROMPT() { + return this.getToken(OracleSqlParser.NOPROMPT, 0); + }; + + NO_PX_FAULT_TOLERANCE() { + return this.getToken(OracleSqlParser.NO_PX_FAULT_TOLERANCE, 0); + }; + + NO_ROOT_SW_FOR_LOCAL() { + return this.getToken(OracleSqlParser.NO_ROOT_SW_FOR_LOCAL, 0); + }; + + NO_SQL_TRANSLATION() { + return this.getToken(OracleSqlParser.NO_SQL_TRANSLATION, 0); + }; + + NO_USE_CUBE() { + return this.getToken(OracleSqlParser.NO_USE_CUBE, 0); + }; + + NO_USE_VECTOR_AGGREGATION() { + return this.getToken(OracleSqlParser.NO_USE_VECTOR_AGGREGATION, 0); + }; + + NO_VECTOR_TRANSFORM() { + return this.getToken(OracleSqlParser.NO_VECTOR_TRANSFORM, 0); + }; + + NO_VECTOR_TRANSFORM_DIMS() { + return this.getToken(OracleSqlParser.NO_VECTOR_TRANSFORM_DIMS, 0); + }; + + NO_VECTOR_TRANSFORM_FACT() { + return this.getToken(OracleSqlParser.NO_VECTOR_TRANSFORM_FACT, 0); + }; + + NO_ZONEMAP() { + return this.getToken(OracleSqlParser.NO_ZONEMAP, 0); + }; + + OBJ_ID() { + return this.getToken(OracleSqlParser.OBJ_ID, 0); + }; + + OFFSET() { + return this.getToken(OracleSqlParser.OFFSET, 0); + }; + + OLS() { + return this.getToken(OracleSqlParser.OLS, 0); + }; + + OMIT() { + return this.getToken(OracleSqlParser.OMIT, 0); + }; + + ONE() { + return this.getToken(OracleSqlParser.ONE, 0); + }; + + ORACLE_DATAPUMP() { + return this.getToken(OracleSqlParser.ORACLE_DATAPUMP, 0); + }; + + ORACLE_HDFS() { + return this.getToken(OracleSqlParser.ORACLE_HDFS, 0); + }; + + ORACLE_HIVE() { + return this.getToken(OracleSqlParser.ORACLE_HIVE, 0); + }; + + ORACLE_LOADER() { + return this.getToken(OracleSqlParser.ORACLE_LOADER, 0); + }; + + ORA_CHECK_ACL() { + return this.getToken(OracleSqlParser.ORA_CHECK_ACL, 0); + }; + + ORA_CHECK_PRIVILEGE() { + return this.getToken(OracleSqlParser.ORA_CHECK_PRIVILEGE, 0); + }; + + ORA_CLUSTERING() { + return this.getToken(OracleSqlParser.ORA_CLUSTERING, 0); + }; + + ORA_INVOKING_USER() { + return this.getToken(OracleSqlParser.ORA_INVOKING_USER, 0); + }; + + ORA_INVOKING_USERID() { + return this.getToken(OracleSqlParser.ORA_INVOKING_USERID, 0); + }; + + ORA_INVOKING_XS_USER() { + return this.getToken(OracleSqlParser.ORA_INVOKING_XS_USER, 0); + }; + + ORA_INVOKING_XS_USER_GUID() { + return this.getToken(OracleSqlParser.ORA_INVOKING_XS_USER_GUID, 0); + }; + + ORA_RAWCOMPARE() { + return this.getToken(OracleSqlParser.ORA_RAWCOMPARE, 0); + }; + + ORA_RAWCONCAT() { + return this.getToken(OracleSqlParser.ORA_RAWCONCAT, 0); + }; + + ORA_WRITE_TIME() { + return this.getToken(OracleSqlParser.ORA_WRITE_TIME, 0); + }; + + PARENT_LEVEL_NAME() { + return this.getToken(OracleSqlParser.PARENT_LEVEL_NAME, 0); + }; + + PARENT_UNIQUE_NAME() { + return this.getToken(OracleSqlParser.PARENT_UNIQUE_NAME, 0); + }; + + PASSWORD_ROLLOVER_TIME() { + return this.getToken(OracleSqlParser.PASSWORD_ROLLOVER_TIME, 0); + }; + + PARTIAL() { + return this.getToken(OracleSqlParser.PARTIAL, 0); + }; + + PARTIAL_JOIN() { + return this.getToken(OracleSqlParser.PARTIAL_JOIN, 0); + }; + + PARTIAL_ROLLUP_PUSHDOWN() { + return this.getToken(OracleSqlParser.PARTIAL_ROLLUP_PUSHDOWN, 0); + }; + + PAST() { + return this.getToken(OracleSqlParser.PAST, 0); + }; + + PATCH() { + return this.getToken(OracleSqlParser.PATCH, 0); + }; + + PATH_PREFIX() { + return this.getToken(OracleSqlParser.PATH_PREFIX, 0); + }; + + PATTERN() { + return this.getToken(OracleSqlParser.PATTERN, 0); + }; + + PER() { + return this.getToken(OracleSqlParser.PER, 0); + }; + + PERIOD() { + return this.getToken(OracleSqlParser.PERIOD, 0); + }; + + PERIOD_KEYWORD() { + return this.getToken(OracleSqlParser.PERIOD_KEYWORD, 0); + }; + + PERMUTE() { + return this.getToken(OracleSqlParser.PERMUTE, 0); + }; + + PLUGGABLE() { + return this.getToken(OracleSqlParser.PLUGGABLE, 0); + }; + + POOL_16K() { + return this.getToken(OracleSqlParser.POOL_16K, 0); + }; + + POOL_2K() { + return this.getToken(OracleSqlParser.POOL_2K, 0); + }; + + POOL_32K() { + return this.getToken(OracleSqlParser.POOL_32K, 0); + }; + + POOL_4K() { + return this.getToken(OracleSqlParser.POOL_4K, 0); + }; + + POOL_8K() { + return this.getToken(OracleSqlParser.POOL_8K, 0); + }; + + PQ_CONCURRENT_UNION() { + return this.getToken(OracleSqlParser.PQ_CONCURRENT_UNION, 0); + }; + + PQ_DISTRIBUTE_WINDOW() { + return this.getToken(OracleSqlParser.PQ_DISTRIBUTE_WINDOW, 0); + }; + + PQ_FILTER() { + return this.getToken(OracleSqlParser.PQ_FILTER, 0); + }; + + PQ_REPLICATE() { + return this.getToken(OracleSqlParser.PQ_REPLICATE, 0); + }; + + PQ_SKEW() { + return this.getToken(OracleSqlParser.PQ_SKEW, 0); + }; + + PRELOAD() { + return this.getToken(OracleSqlParser.PRELOAD, 0); + }; + + PRETTY() { + return this.getToken(OracleSqlParser.PRETTY, 0); + }; + + PREV() { + return this.getToken(OracleSqlParser.PREV, 0); + }; + + PRINTBLOBTOCLOB() { + return this.getToken(OracleSqlParser.PRINTBLOBTOCLOB, 0); + }; + + PRIORITY() { + return this.getToken(OracleSqlParser.PRIORITY, 0); + }; + + PRIVILEGED() { + return this.getToken(OracleSqlParser.PRIVILEGED, 0); + }; + + PROPERTY() { + return this.getToken(OracleSqlParser.PROPERTY, 0); + }; + + PROTOCOL() { + return this.getToken(OracleSqlParser.PROTOCOL, 0); + }; + + PROXY() { + return this.getToken(OracleSqlParser.PROXY, 0); + }; + + PRUNING() { + return this.getToken(OracleSqlParser.PRUNING, 0); + }; + + PX_FAULT_TOLERANCE() { + return this.getToken(OracleSqlParser.PX_FAULT_TOLERANCE, 0); + }; + + QUARTERS() { + return this.getToken(OracleSqlParser.QUARTERS, 0); + }; + + QUOTAGROUP() { + return this.getToken(OracleSqlParser.QUOTAGROUP, 0); + }; + + REALM() { + return this.getToken(OracleSqlParser.REALM, 0); + }; + + REDEFINE() { + return this.getToken(OracleSqlParser.REDEFINE, 0); + }; + + RELOCATE() { + return this.getToken(OracleSqlParser.RELOCATE, 0); + }; + + REMOTE() { + return this.getToken(OracleSqlParser.REMOTE, 0); + }; + + RESTART() { + return this.getToken(OracleSqlParser.RESTART, 0); + }; + + ROLESET() { + return this.getToken(OracleSqlParser.ROLESET, 0); + }; + + ROWID_MAPPING_TABLE() { + return this.getToken(OracleSqlParser.ROWID_MAPPING_TABLE, 0); + }; + + RUNNING() { + return this.getToken(OracleSqlParser.RUNNING, 0); + }; + + SAVE() { + return this.getToken(OracleSqlParser.SAVE, 0); + }; + + SCRUB() { + return this.getToken(OracleSqlParser.SCRUB, 0); + }; + + SDO_GEOM_MBR() { + return this.getToken(OracleSqlParser.SDO_GEOM_MBR, 0); + }; + + SECONDS() { + return this.getToken(OracleSqlParser.SECONDS, 0); + }; + + SECRET() { + return this.getToken(OracleSqlParser.SECRET, 0); + }; + + SERIAL() { + return this.getToken(OracleSqlParser.SERIAL, 0); + }; + + SERVICES() { + return this.getToken(OracleSqlParser.SERVICES, 0); + }; + + SERVICE_NAME_CONVERT() { + return this.getToken(OracleSqlParser.SERVICE_NAME_CONVERT, 0); + }; + + SHARDED() { + return this.getToken(OracleSqlParser.SHARDED, 0); + }; + + SHARING() { + return this.getToken(OracleSqlParser.SHARING, 0); + }; + + SHELFLIFE() { + return this.getToken(OracleSqlParser.SHELFLIFE, 0); + }; + + SITE() { + return this.getToken(OracleSqlParser.SITE, 0); + }; + + SOURCE_FILE_DIRECTORY() { + return this.getToken(OracleSqlParser.SOURCE_FILE_DIRECTORY, 0); + }; + + SOURCE_FILE_NAME_CONVERT() { + return this.getToken(OracleSqlParser.SOURCE_FILE_NAME_CONVERT, 0); + }; + + SQL_TRANSLATION_PROFILE() { + return this.getToken(OracleSqlParser.SQL_TRANSLATION_PROFILE, 0); + }; + + STANDARD() { + return this.getToken(OracleSqlParser.STANDARD, 0); + }; + + STANDARD_HASH() { + return this.getToken(OracleSqlParser.STANDARD_HASH, 0); + }; + + STANDBYS() { + return this.getToken(OracleSqlParser.STANDBYS, 0); + }; + + STATE() { + return this.getToken(OracleSqlParser.STATE, 0); + }; + + STATEMENT() { + return this.getToken(OracleSqlParser.STATEMENT, 0); + }; + + STREAM() { + return this.getToken(OracleSqlParser.STREAM, 0); + }; + + SUBSCRIBE() { + return this.getToken(OracleSqlParser.SUBSCRIBE, 0); + }; + + SUBSET() { + return this.getToken(OracleSqlParser.SUBSET, 0); + }; + + SUCCESS() { + return this.getToken(OracleSqlParser.SUCCESS, 0); + }; + + SYS() { + return this.getToken(OracleSqlParser.SYS, 0); + }; + + SYSBACKUP() { + return this.getToken(OracleSqlParser.SYSBACKUP, 0); + }; + + SYSDG() { + return this.getToken(OracleSqlParser.SYSDG, 0); + }; + + SYSGUID() { + return this.getToken(OracleSqlParser.SYSGUID, 0); + }; + + SYSKM() { + return this.getToken(OracleSqlParser.SYSKM, 0); + }; + + SYSOBJ() { + return this.getToken(OracleSqlParser.SYSOBJ, 0); + }; + + SYS_CHECK_PRIVILEGE() { + return this.getToken(OracleSqlParser.SYS_CHECK_PRIVILEGE, 0); + }; + + SYS_GET_COL_ACLIDS() { + return this.getToken(OracleSqlParser.SYS_GET_COL_ACLIDS, 0); + }; + + SYS_MKXTI() { + return this.getToken(OracleSqlParser.SYS_MKXTI, 0); + }; + + SYS_OP_CYCLED_SEQ() { + return this.getToken(OracleSqlParser.SYS_OP_CYCLED_SEQ, 0); + }; + + SYS_OP_HASH() { + return this.getToken(OracleSqlParser.SYS_OP_HASH, 0); + }; + + SYS_OP_KEY_VECTOR_CREATE() { + return this.getToken(OracleSqlParser.SYS_OP_KEY_VECTOR_CREATE, 0); + }; + + SYS_OP_KEY_VECTOR_FILTER() { + return this.getToken(OracleSqlParser.SYS_OP_KEY_VECTOR_FILTER, 0); + }; + + SYS_OP_KEY_VECTOR_FILTER_LIST() { + return this.getToken(OracleSqlParser.SYS_OP_KEY_VECTOR_FILTER_LIST, 0); + }; + + SYS_OP_KEY_VECTOR_SUCCEEDED() { + return this.getToken(OracleSqlParser.SYS_OP_KEY_VECTOR_SUCCEEDED, 0); + }; + + SYS_OP_KEY_VECTOR_USE() { + return this.getToken(OracleSqlParser.SYS_OP_KEY_VECTOR_USE, 0); + }; + + SYS_OP_PART_ID() { + return this.getToken(OracleSqlParser.SYS_OP_PART_ID, 0); + }; + + SYS_OP_ZONE_ID() { + return this.getToken(OracleSqlParser.SYS_OP_ZONE_ID, 0); + }; + + SYS_RAW_TO_XSID() { + return this.getToken(OracleSqlParser.SYS_RAW_TO_XSID, 0); + }; + + SYS_XSID_TO_RAW() { + return this.getToken(OracleSqlParser.SYS_XSID_TO_RAW, 0); + }; + + SYS_ZMAP_FILTER() { + return this.getToken(OracleSqlParser.SYS_ZMAP_FILTER, 0); + }; + + SYS_ZMAP_REFRESH() { + return this.getToken(OracleSqlParser.SYS_ZMAP_REFRESH, 0); + }; + + TAG() { + return this.getToken(OracleSqlParser.TAG, 0); + }; + + TEXT() { + return this.getToken(OracleSqlParser.TEXT, 0); + }; + + TIER() { + return this.getToken(OracleSqlParser.TIER, 0); + }; + + TIES() { + return this.getToken(OracleSqlParser.TIES, 0); + }; + + TO_ACLID() { + return this.getToken(OracleSqlParser.TO_ACLID, 0); + }; + + TRANSFORM() { + return this.getToken(OracleSqlParser.TRANSFORM, 0); + }; + + TRANSLATION() { + return this.getToken(OracleSqlParser.TRANSLATION, 0); + }; + + TRUST() { + return this.getToken(OracleSqlParser.TRUST, 0); + }; + + UCS2() { + return this.getToken(OracleSqlParser.UCS2, 0); + }; + + UNCONDITIONAL() { + return this.getToken(OracleSqlParser.UNCONDITIONAL, 0); + }; + + UNITE() { + return this.getToken(OracleSqlParser.UNITE, 0); + }; + + UNMATCHED() { + return this.getToken(OracleSqlParser.UNMATCHED, 0); + }; + + UNPLUG() { + return this.getToken(OracleSqlParser.UNPLUG, 0); + }; + + UNSUBSCRIBE() { + return this.getToken(OracleSqlParser.UNSUBSCRIBE, 0); + }; + + USABLE() { + return this.getToken(OracleSqlParser.USABLE, 0); + }; + + USER_DATA() { + return this.getToken(OracleSqlParser.USER_DATA, 0); + }; + + USER_TABLESPACES() { + return this.getToken(OracleSqlParser.USER_TABLESPACES, 0); + }; + + USE_CUBE() { + return this.getToken(OracleSqlParser.USE_CUBE, 0); + }; + + USE_HIDDEN_PARTITIONS() { + return this.getToken(OracleSqlParser.USE_HIDDEN_PARTITIONS, 0); + }; + + USE_VECTOR_AGGREGATION() { + return this.getToken(OracleSqlParser.USE_VECTOR_AGGREGATION, 0); + }; + + USING_NO_EXPAND() { + return this.getToken(OracleSqlParser.USING_NO_EXPAND, 0); + }; + + USING_NLS_COMP() { + return this.getToken(OracleSqlParser.USING_NLS_COMP, 0); + }; + + UTF16BE() { + return this.getToken(OracleSqlParser.UTF16BE, 0); + }; + + UTF16LE() { + return this.getToken(OracleSqlParser.UTF16LE, 0); + }; + + UTF32() { + return this.getToken(OracleSqlParser.UTF32, 0); + }; + + UTF8() { + return this.getToken(OracleSqlParser.UTF8, 0); + }; + + V1() { + return this.getToken(OracleSqlParser.V1, 0); + }; + + V2() { + return this.getToken(OracleSqlParser.V2, 0); + }; + + VALIDATE_CONVERSION() { + return this.getToken(OracleSqlParser.VALIDATE_CONVERSION, 0); + }; + + VALID_TIME_END() { + return this.getToken(OracleSqlParser.VALID_TIME_END, 0); + }; + + VECTOR_TRANSFORM() { + return this.getToken(OracleSqlParser.VECTOR_TRANSFORM, 0); + }; + + VECTOR_TRANSFORM_DIMS() { + return this.getToken(OracleSqlParser.VECTOR_TRANSFORM_DIMS, 0); + }; + + VECTOR_TRANSFORM_FACT() { + return this.getToken(OracleSqlParser.VECTOR_TRANSFORM_FACT, 0); + }; + + VERIFIER() { + return this.getToken(OracleSqlParser.VERIFIER, 0); + }; + + VIOLATION() { + return this.getToken(OracleSqlParser.VIOLATION, 0); + }; + + VISIBILITY() { + return this.getToken(OracleSqlParser.VISIBILITY, 0); + }; + + WEEK() { + return this.getToken(OracleSqlParser.WEEK, 0); + }; + + WEEKS() { + return this.getToken(OracleSqlParser.WEEKS, 0); + }; + + WITH_PLSQL() { + return this.getToken(OracleSqlParser.WITH_PLSQL, 0); + }; + + WRAPPER() { + return this.getToken(OracleSqlParser.WRAPPER, 0); + }; + + XS() { + return this.getToken(OracleSqlParser.XS, 0); + }; + + YEARS() { + return this.getToken(OracleSqlParser.YEARS, 0); + }; + + ZONEMAP() { + return this.getToken(OracleSqlParser.ZONEMAP, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNon_reserved_keywords_in_12c(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + +class Non_reserved_keywords_pre12cContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = OracleSqlParser.RULE_non_reserved_keywords_pre12c; + } + + ABORT() { + return this.getToken(OracleSqlParser.ABORT, 0); + }; + + ABS() { + return this.getToken(OracleSqlParser.ABS, 0); + }; + + ACCESSED() { + return this.getToken(OracleSqlParser.ACCESSED, 0); + }; + + ACCESS() { + return this.getToken(OracleSqlParser.ACCESS, 0); + }; + + ACCOUNT() { + return this.getToken(OracleSqlParser.ACCOUNT, 0); + }; + + ACOS() { + return this.getToken(OracleSqlParser.ACOS, 0); + }; + + ACTIVATE() { + return this.getToken(OracleSqlParser.ACTIVATE, 0); + }; + + ACTIVE_COMPONENT() { + return this.getToken(OracleSqlParser.ACTIVE_COMPONENT, 0); + }; + + ACTIVE_FUNCTION() { + return this.getToken(OracleSqlParser.ACTIVE_FUNCTION, 0); + }; + + ACTIVE_TAG() { + return this.getToken(OracleSqlParser.ACTIVE_TAG, 0); + }; + + ADD_COLUMN() { + return this.getToken(OracleSqlParser.ADD_COLUMN, 0); + }; + + ADD_GROUP() { + return this.getToken(OracleSqlParser.ADD_GROUP, 0); + }; + + ADD_MONTHS() { + return this.getToken(OracleSqlParser.ADD_MONTHS, 0); + }; + + ADD() { + return this.getToken(OracleSqlParser.ADD, 0); + }; + + ADJ_DATE() { + return this.getToken(OracleSqlParser.ADJ_DATE, 0); + }; + + ADMINISTER() { + return this.getToken(OracleSqlParser.ADMINISTER, 0); + }; + + ADMINISTRATOR() { + return this.getToken(OracleSqlParser.ADMINISTRATOR, 0); + }; + + ADMIN() { + return this.getToken(OracleSqlParser.ADMIN, 0); + }; + + ADVISE() { + return this.getToken(OracleSqlParser.ADVISE, 0); + }; + + ADVISOR() { + return this.getToken(OracleSqlParser.ADVISOR, 0); + }; + + AFTER() { + return this.getToken(OracleSqlParser.AFTER, 0); + }; + + ALIAS() { + return this.getToken(OracleSqlParser.ALIAS, 0); + }; + + ALLOCATE() { + return this.getToken(OracleSqlParser.ALLOCATE, 0); + }; + + ALLOW() { + return this.getToken(OracleSqlParser.ALLOW, 0); + }; + + ALL_ROWS() { + return this.getToken(OracleSqlParser.ALL_ROWS, 0); + }; + + ALWAYS() { + return this.getToken(OracleSqlParser.ALWAYS, 0); + }; + + ANALYZE() { + return this.getToken(OracleSqlParser.ANALYZE, 0); + }; + + ANCILLARY() { + return this.getToken(OracleSqlParser.ANCILLARY, 0); + }; + + AND_EQUAL() { + return this.getToken(OracleSqlParser.AND_EQUAL, 0); + }; + + ANTIJOIN() { + return this.getToken(OracleSqlParser.ANTIJOIN, 0); + }; + + ANYSCHEMA() { + return this.getToken(OracleSqlParser.ANYSCHEMA, 0); + }; + + APPENDCHILDXML() { + return this.getToken(OracleSqlParser.APPENDCHILDXML, 0); + }; + + APPEND() { + return this.getToken(OracleSqlParser.APPEND, 0); + }; + + APPEND_VALUES() { + return this.getToken(OracleSqlParser.APPEND_VALUES, 0); + }; + + APPLY() { + return this.getToken(OracleSqlParser.APPLY, 0); + }; + + ARCHIVELOG() { + return this.getToken(OracleSqlParser.ARCHIVELOG, 0); + }; + + ARCHIVE() { + return this.getToken(OracleSqlParser.ARCHIVE, 0); + }; + + ARRAY() { + return this.getToken(OracleSqlParser.ARRAY, 0); + }; + + ASCII() { + return this.getToken(OracleSqlParser.ASCII, 0); + }; + + ASCIISTR() { + return this.getToken(OracleSqlParser.ASCIISTR, 0); + }; + + ASIN() { + return this.getToken(OracleSqlParser.ASIN, 0); + }; + + ASSEMBLY() { + return this.getToken(OracleSqlParser.ASSEMBLY, 0); + }; + + ASSOCIATE() { + return this.getToken(OracleSqlParser.ASSOCIATE, 0); + }; + + ASYNCHRONOUS() { + return this.getToken(OracleSqlParser.ASYNCHRONOUS, 0); + }; + + ASYNC() { + return this.getToken(OracleSqlParser.ASYNC, 0); + }; + + ATAN2() { + return this.getToken(OracleSqlParser.ATAN2, 0); + }; + + ATAN() { + return this.getToken(OracleSqlParser.ATAN, 0); + }; + + AT() { + return this.getToken(OracleSqlParser.AT, 0); + }; + + ATTRIBUTE() { + return this.getToken(OracleSqlParser.ATTRIBUTE, 0); + }; + + ATTRIBUTES() { + return this.getToken(OracleSqlParser.ATTRIBUTES, 0); + }; + + AUTHENTICATED() { + return this.getToken(OracleSqlParser.AUTHENTICATED, 0); + }; + + AUTHENTICATION() { + return this.getToken(OracleSqlParser.AUTHENTICATION, 0); + }; + + AUTHID() { + return this.getToken(OracleSqlParser.AUTHID, 0); + }; + + AUTHORIZATION() { + return this.getToken(OracleSqlParser.AUTHORIZATION, 0); + }; + + AUTOALLOCATE() { + return this.getToken(OracleSqlParser.AUTOALLOCATE, 0); + }; + + AUTOEXTEND() { + return this.getToken(OracleSqlParser.AUTOEXTEND, 0); + }; + + AUTOMATIC() { + return this.getToken(OracleSqlParser.AUTOMATIC, 0); + }; + + AUTO() { + return this.getToken(OracleSqlParser.AUTO, 0); + }; + + AVAILABILITY() { + return this.getToken(OracleSqlParser.AVAILABILITY, 0); + }; + + AVG() { + return this.getToken(OracleSqlParser.AVG, 0); + }; + + BACKUP() { + return this.getToken(OracleSqlParser.BACKUP, 0); + }; + + BASICFILE() { + return this.getToken(OracleSqlParser.BASICFILE, 0); + }; + + BASIC() { + return this.getToken(OracleSqlParser.BASIC, 0); + }; + + BATCH() { + return this.getToken(OracleSqlParser.BATCH, 0); + }; + + BECOME() { + return this.getToken(OracleSqlParser.BECOME, 0); + }; + + BEFORE() { + return this.getToken(OracleSqlParser.BEFORE, 0); + }; + + BEGIN() { + return this.getToken(OracleSqlParser.BEGIN, 0); + }; + + BEGIN_OUTLINE_DATA() { + return this.getToken(OracleSqlParser.BEGIN_OUTLINE_DATA, 0); + }; + + BEHALF() { + return this.getToken(OracleSqlParser.BEHALF, 0); + }; + + BFILE() { + return this.getToken(OracleSqlParser.BFILE, 0); + }; + + BFILENAME() { + return this.getToken(OracleSqlParser.BFILENAME, 0); + }; + + BIGFILE() { + return this.getToken(OracleSqlParser.BIGFILE, 0); + }; + + BINARY_DOUBLE_INFINITY() { + return this.getToken(OracleSqlParser.BINARY_DOUBLE_INFINITY, 0); + }; + + BINARY_DOUBLE() { + return this.getToken(OracleSqlParser.BINARY_DOUBLE, 0); + }; + + BINARY_DOUBLE_NAN() { + return this.getToken(OracleSqlParser.BINARY_DOUBLE_NAN, 0); + }; + + BINARY_FLOAT_INFINITY() { + return this.getToken(OracleSqlParser.BINARY_FLOAT_INFINITY, 0); + }; + + BINARY_FLOAT() { + return this.getToken(OracleSqlParser.BINARY_FLOAT, 0); + }; + + BINARY_FLOAT_NAN() { + return this.getToken(OracleSqlParser.BINARY_FLOAT_NAN, 0); + }; + + BINARY() { + return this.getToken(OracleSqlParser.BINARY, 0); + }; + + BIND_AWARE() { + return this.getToken(OracleSqlParser.BIND_AWARE, 0); + }; + + BINDING() { + return this.getToken(OracleSqlParser.BINDING, 0); + }; + + BIN_TO_NUM() { + return this.getToken(OracleSqlParser.BIN_TO_NUM, 0); + }; + + BITAND() { + return this.getToken(OracleSqlParser.BITAND, 0); + }; + + BITMAP() { + return this.getToken(OracleSqlParser.BITMAP, 0); + }; + + BITMAPS() { + return this.getToken(OracleSqlParser.BITMAPS, 0); + }; + + BITMAP_TREE() { + return this.getToken(OracleSqlParser.BITMAP_TREE, 0); + }; + + BITS() { + return this.getToken(OracleSqlParser.BITS, 0); + }; + + BLOB() { + return this.getToken(OracleSqlParser.BLOB, 0); + }; + + BLOCK() { + return this.getToken(OracleSqlParser.BLOCK, 0); + }; + + BLOCK_RANGE() { + return this.getToken(OracleSqlParser.BLOCK_RANGE, 0); + }; + + BLOCKSIZE() { + return this.getToken(OracleSqlParser.BLOCKSIZE, 0); + }; + + BLOCKS() { + return this.getToken(OracleSqlParser.BLOCKS, 0); + }; + + BODY() { + return this.getToken(OracleSqlParser.BODY, 0); + }; + + BOTH() { + return this.getToken(OracleSqlParser.BOTH, 0); + }; + + BOUND() { + return this.getToken(OracleSqlParser.BOUND, 0); + }; + + BRANCH() { + return this.getToken(OracleSqlParser.BRANCH, 0); + }; + + BREADTH() { + return this.getToken(OracleSqlParser.BREADTH, 0); + }; + + BROADCAST() { + return this.getToken(OracleSqlParser.BROADCAST, 0); + }; + + BUFFER_CACHE() { + return this.getToken(OracleSqlParser.BUFFER_CACHE, 0); + }; + + BUFFER() { + return this.getToken(OracleSqlParser.BUFFER, 0); + }; + + BUFFER_POOL() { + return this.getToken(OracleSqlParser.BUFFER_POOL, 0); + }; + + BUILD() { + return this.getToken(OracleSqlParser.BUILD, 0); + }; + + BULK() { + return this.getToken(OracleSqlParser.BULK, 0); + }; + + BYPASS_RECURSIVE_CHECK() { + return this.getToken(OracleSqlParser.BYPASS_RECURSIVE_CHECK, 0); + }; + + BYPASS_UJVC() { + return this.getToken(OracleSqlParser.BYPASS_UJVC, 0); + }; + + BYTE() { + return this.getToken(OracleSqlParser.BYTE, 0); + }; + + CACHE_CB() { + return this.getToken(OracleSqlParser.CACHE_CB, 0); + }; + + CACHE_INSTANCES() { + return this.getToken(OracleSqlParser.CACHE_INSTANCES, 0); + }; + + CACHE() { + return this.getToken(OracleSqlParser.CACHE, 0); + }; + + CACHE_TEMP_TABLE() { + return this.getToken(OracleSqlParser.CACHE_TEMP_TABLE, 0); + }; + + CALL() { + return this.getToken(OracleSqlParser.CALL, 0); + }; + + CANCEL() { + return this.getToken(OracleSqlParser.CANCEL, 0); + }; + + CARDINALITY() { + return this.getToken(OracleSqlParser.CARDINALITY, 0); + }; + + CASCADE() { + return this.getToken(OracleSqlParser.CASCADE, 0); + }; + + CASE() { + return this.getToken(OracleSqlParser.CASE, 0); + }; + + CAST() { + return this.getToken(OracleSqlParser.CAST, 0); + }; + + CATEGORY() { + return this.getToken(OracleSqlParser.CATEGORY, 0); + }; + + CEIL() { + return this.getToken(OracleSqlParser.CEIL, 0); + }; + + CELL_FLASH_CACHE() { + return this.getToken(OracleSqlParser.CELL_FLASH_CACHE, 0); + }; + + CERTIFICATE() { + return this.getToken(OracleSqlParser.CERTIFICATE, 0); + }; + + CFILE() { + return this.getToken(OracleSqlParser.CFILE, 0); + }; + + CHAINED() { + return this.getToken(OracleSqlParser.CHAINED, 0); + }; + + CHANGE_DUPKEY_ERROR_INDEX() { + return this.getToken(OracleSqlParser.CHANGE_DUPKEY_ERROR_INDEX, 0); + }; + + CHANGE() { + return this.getToken(OracleSqlParser.CHANGE, 0); + }; + + CHARACTER() { + return this.getToken(OracleSqlParser.CHARACTER, 0); + }; + + CHAR_CS() { + return this.getToken(OracleSqlParser.CHAR_CS, 0); + }; + + CHARTOROWID() { + return this.getToken(OracleSqlParser.CHARTOROWID, 0); + }; + + CHECK_ACL_REWRITE() { + return this.getToken(OracleSqlParser.CHECK_ACL_REWRITE, 0); + }; + + CHECKPOINT() { + return this.getToken(OracleSqlParser.CHECKPOINT, 0); + }; + + CHILD() { + return this.getToken(OracleSqlParser.CHILD, 0); + }; + + CHOOSE() { + return this.getToken(OracleSqlParser.CHOOSE, 0); + }; + + CHR() { + return this.getToken(OracleSqlParser.CHR, 0); + }; + + CHUNK() { + return this.getToken(OracleSqlParser.CHUNK, 0); + }; + + CLASS() { + return this.getToken(OracleSqlParser.CLASS, 0); + }; + + CLEAR() { + return this.getToken(OracleSqlParser.CLEAR, 0); + }; + + CLOB() { + return this.getToken(OracleSqlParser.CLOB, 0); + }; + + CLONE() { + return this.getToken(OracleSqlParser.CLONE, 0); + }; + + CLOSE_CACHED_OPEN_CURSORS() { + return this.getToken(OracleSqlParser.CLOSE_CACHED_OPEN_CURSORS, 0); + }; + + CLOSE() { + return this.getToken(OracleSqlParser.CLOSE, 0); + }; + + CLUSTER_BY_ROWID() { + return this.getToken(OracleSqlParser.CLUSTER_BY_ROWID, 0); + }; + + CLUSTER_ID() { + return this.getToken(OracleSqlParser.CLUSTER_ID, 0); + }; + + CLUSTERING_FACTOR() { + return this.getToken(OracleSqlParser.CLUSTERING_FACTOR, 0); + }; + + CLUSTER_PROBABILITY() { + return this.getToken(OracleSqlParser.CLUSTER_PROBABILITY, 0); + }; + + CLUSTER_SET() { + return this.getToken(OracleSqlParser.CLUSTER_SET, 0); + }; + + COALESCE() { + return this.getToken(OracleSqlParser.COALESCE, 0); + }; + + COALESCE_SQ() { + return this.getToken(OracleSqlParser.COALESCE_SQ, 0); + }; + + COARSE() { + return this.getToken(OracleSqlParser.COARSE, 0); + }; + + CO_AUTH_IND() { + return this.getToken(OracleSqlParser.CO_AUTH_IND, 0); + }; + + COLD() { + return this.getToken(OracleSqlParser.COLD, 0); + }; + + COLLECT() { + return this.getToken(OracleSqlParser.COLLECT, 0); + }; + + COLUMNAR() { + return this.getToken(OracleSqlParser.COLUMNAR, 0); + }; + + COLUMN_AUTH_INDICATOR() { + return this.getToken(OracleSqlParser.COLUMN_AUTH_INDICATOR, 0); + }; + + COLUMN() { + return this.getToken(OracleSqlParser.COLUMN, 0); + }; + + COLUMNS() { + return this.getToken(OracleSqlParser.COLUMNS, 0); + }; + + COLUMN_STATS() { + return this.getToken(OracleSqlParser.COLUMN_STATS, 0); + }; + + COLUMN_VALUE() { + return this.getToken(OracleSqlParser.COLUMN_VALUE, 0); + }; + + COMMENT() { + return this.getToken(OracleSqlParser.COMMENT, 0); + }; + + COMMIT() { + return this.getToken(OracleSqlParser.COMMIT, 0); + }; + + COMMITTED() { + return this.getToken(OracleSqlParser.COMMITTED, 0); + }; + + COMPACT() { + return this.getToken(OracleSqlParser.COMPACT, 0); + }; + + COMPATIBILITY() { + return this.getToken(OracleSqlParser.COMPATIBILITY, 0); + }; + + COMPILE() { + return this.getToken(OracleSqlParser.COMPILE, 0); + }; + + COMPLETE() { + return this.getToken(OracleSqlParser.COMPLETE, 0); + }; + + COMPLIANCE() { + return this.getToken(OracleSqlParser.COMPLIANCE, 0); + }; + + COMPOSE() { + return this.getToken(OracleSqlParser.COMPOSE, 0); + }; + + COMPOSITE_LIMIT() { + return this.getToken(OracleSqlParser.COMPOSITE_LIMIT, 0); + }; + + COMPOSITE() { + return this.getToken(OracleSqlParser.COMPOSITE, 0); + }; + + COMPOUND() { + return this.getToken(OracleSqlParser.COMPOUND, 0); + }; + + COMPUTE() { + return this.getToken(OracleSqlParser.COMPUTE, 0); + }; + + CONCAT() { + return this.getToken(OracleSqlParser.CONCAT, 0); + }; + + CONFIRM() { + return this.getToken(OracleSqlParser.CONFIRM, 0); + }; + + CONFORMING() { + return this.getToken(OracleSqlParser.CONFORMING, 0); + }; + + CONNECT_BY_CB_WHR_ONLY() { + return this.getToken(OracleSqlParser.CONNECT_BY_CB_WHR_ONLY, 0); + }; + + CONNECT_BY_COMBINE_SW() { + return this.getToken(OracleSqlParser.CONNECT_BY_COMBINE_SW, 0); + }; + + CONNECT_BY_COST_BASED() { + return this.getToken(OracleSqlParser.CONNECT_BY_COST_BASED, 0); + }; + + CONNECT_BY_ELIM_DUPS() { + return this.getToken(OracleSqlParser.CONNECT_BY_ELIM_DUPS, 0); + }; + + CONNECT_BY_FILTERING() { + return this.getToken(OracleSqlParser.CONNECT_BY_FILTERING, 0); + }; + + CONNECT_BY_ISCYCLE() { + return this.getToken(OracleSqlParser.CONNECT_BY_ISCYCLE, 0); + }; + + CONNECT_BY_ISLEAF() { + return this.getToken(OracleSqlParser.CONNECT_BY_ISLEAF, 0); + }; + + CONNECT_BY_ROOT() { + return this.getToken(OracleSqlParser.CONNECT_BY_ROOT, 0); + }; + + CONNECT_TIME() { + return this.getToken(OracleSqlParser.CONNECT_TIME, 0); + }; + + CONSIDER() { + return this.getToken(OracleSqlParser.CONSIDER, 0); + }; + + CONSISTENT() { + return this.getToken(OracleSqlParser.CONSISTENT, 0); + }; + + CONSTANT() { + return this.getToken(OracleSqlParser.CONSTANT, 0); + }; + + CONST() { + return this.getToken(OracleSqlParser.CONST, 0); + }; + + CONSTRAINT() { + return this.getToken(OracleSqlParser.CONSTRAINT, 0); + }; + + CONSTRAINTS() { + return this.getToken(OracleSqlParser.CONSTRAINTS, 0); + }; + + CONTAINER() { + return this.getToken(OracleSqlParser.CONTAINER, 0); + }; + + CONTENT() { + return this.getToken(OracleSqlParser.CONTENT, 0); + }; + + CONTENTS() { + return this.getToken(OracleSqlParser.CONTENTS, 0); + }; + + CONTEXT() { + return this.getToken(OracleSqlParser.CONTEXT, 0); + }; + + CONTINUE() { + return this.getToken(OracleSqlParser.CONTINUE, 0); + }; + + CONTROLFILE() { + return this.getToken(OracleSqlParser.CONTROLFILE, 0); + }; + + CONVERT() { + return this.getToken(OracleSqlParser.CONVERT, 0); + }; + + CORR_K() { + return this.getToken(OracleSqlParser.CORR_K, 0); + }; + + CORR() { + return this.getToken(OracleSqlParser.CORR, 0); + }; + + CORR_S() { + return this.getToken(OracleSqlParser.CORR_S, 0); + }; + + CORRUPTION() { + return this.getToken(OracleSqlParser.CORRUPTION, 0); + }; + + CORRUPT_XID_ALL() { + return this.getToken(OracleSqlParser.CORRUPT_XID_ALL, 0); + }; + + CORRUPT_XID() { + return this.getToken(OracleSqlParser.CORRUPT_XID, 0); + }; + + COSH() { + return this.getToken(OracleSqlParser.COSH, 0); + }; + + COS() { + return this.getToken(OracleSqlParser.COS, 0); + }; + + COST() { + return this.getToken(OracleSqlParser.COST, 0); + }; + + COST_XML_QUERY_REWRITE() { + return this.getToken(OracleSqlParser.COST_XML_QUERY_REWRITE, 0); + }; + + COUNT() { + return this.getToken(OracleSqlParser.COUNT, 0); + }; + + COVAR_POP() { + return this.getToken(OracleSqlParser.COVAR_POP, 0); + }; + + COVAR_SAMP() { + return this.getToken(OracleSqlParser.COVAR_SAMP, 0); + }; + + CPU_COSTING() { + return this.getToken(OracleSqlParser.CPU_COSTING, 0); + }; + + CPU_PER_CALL() { + return this.getToken(OracleSqlParser.CPU_PER_CALL, 0); + }; + + CPU_PER_SESSION() { + return this.getToken(OracleSqlParser.CPU_PER_SESSION, 0); + }; + + CRASH() { + return this.getToken(OracleSqlParser.CRASH, 0); + }; + + CREATE_STORED_OUTLINES() { + return this.getToken(OracleSqlParser.CREATE_STORED_OUTLINES, 0); + }; + + CREATION() { + return this.getToken(OracleSqlParser.CREATION, 0); + }; + + CROSSEDITION() { + return this.getToken(OracleSqlParser.CROSSEDITION, 0); + }; + + CROSS() { + return this.getToken(OracleSqlParser.CROSS, 0); + }; + + CSCONVERT() { + return this.getToken(OracleSqlParser.CSCONVERT, 0); + }; + + CUBE_GB() { + return this.getToken(OracleSqlParser.CUBE_GB, 0); + }; + + CUBE() { + return this.getToken(OracleSqlParser.CUBE, 0); + }; + + CUME_DISTM() { + return this.getToken(OracleSqlParser.CUME_DISTM, 0); + }; + + CUME_DIST() { + return this.getToken(OracleSqlParser.CUME_DIST, 0); + }; + + CURRENT_DATE() { + return this.getToken(OracleSqlParser.CURRENT_DATE, 0); + }; + + CURRENT() { + return this.getToken(OracleSqlParser.CURRENT, 0); + }; + + CURRENT_SCHEMA() { + return this.getToken(OracleSqlParser.CURRENT_SCHEMA, 0); + }; + + CURRENT_TIME() { + return this.getToken(OracleSqlParser.CURRENT_TIME, 0); + }; + + CURRENT_TIMESTAMP() { + return this.getToken(OracleSqlParser.CURRENT_TIMESTAMP, 0); + }; + + CURRENT_USER() { + return this.getToken(OracleSqlParser.CURRENT_USER, 0); + }; + + CURRENTV() { + return this.getToken(OracleSqlParser.CURRENTV, 0); + }; + + CURSOR() { + return this.getToken(OracleSqlParser.CURSOR, 0); + }; + + CURSOR_SHARING_EXACT() { + return this.getToken(OracleSqlParser.CURSOR_SHARING_EXACT, 0); + }; + + CURSOR_SPECIFIC_SEGMENT() { + return this.getToken(OracleSqlParser.CURSOR_SPECIFIC_SEGMENT, 0); + }; + + CV() { + return this.getToken(OracleSqlParser.CV, 0); + }; + + CYCLE() { + return this.getToken(OracleSqlParser.CYCLE, 0); + }; + + DANGLING() { + return this.getToken(OracleSqlParser.DANGLING, 0); + }; + + DATABASE() { + return this.getToken(OracleSqlParser.DATABASE, 0); + }; + + DATAFILE() { + return this.getToken(OracleSqlParser.DATAFILE, 0); + }; + + DATAFILES() { + return this.getToken(OracleSqlParser.DATAFILES, 0); + }; + + DATA() { + return this.getToken(OracleSqlParser.DATA, 0); + }; + + DATAOBJNO() { + return this.getToken(OracleSqlParser.DATAOBJNO, 0); + }; + + DATAOBJ_TO_PARTITION() { + return this.getToken(OracleSqlParser.DATAOBJ_TO_PARTITION, 0); + }; + + DATE_MODE() { + return this.getToken(OracleSqlParser.DATE_MODE, 0); + }; + + DAY() { + return this.getToken(OracleSqlParser.DAY, 0); + }; + + DBA() { + return this.getToken(OracleSqlParser.DBA, 0); + }; + + DBA_RECYCLEBIN() { + return this.getToken(OracleSqlParser.DBA_RECYCLEBIN, 0); + }; + + DBLINK() { + return this.getToken(OracleSqlParser.DBLINK, 0); + }; + + DBMS_STATS() { + return this.getToken(OracleSqlParser.DBMS_STATS, 0); + }; + + DB_ROLE_CHANGE() { + return this.getToken(OracleSqlParser.DB_ROLE_CHANGE, 0); + }; + + DBTIMEZONE() { + return this.getToken(OracleSqlParser.DBTIMEZONE, 0); + }; + + DB_VERSION() { + return this.getToken(OracleSqlParser.DB_VERSION, 0); + }; + + DDL() { + return this.getToken(OracleSqlParser.DDL, 0); + }; + + DEALLOCATE() { + return this.getToken(OracleSqlParser.DEALLOCATE, 0); + }; + + DEBUGGER() { + return this.getToken(OracleSqlParser.DEBUGGER, 0); + }; + + DEBUG() { + return this.getToken(OracleSqlParser.DEBUG, 0); + }; + + DECLARE() { + return this.getToken(OracleSqlParser.DECLARE, 0); + }; + + DEC() { + return this.getToken(OracleSqlParser.DEC, 0); + }; + + DECOMPOSE() { + return this.getToken(OracleSqlParser.DECOMPOSE, 0); + }; + + DECREMENT() { + return this.getToken(OracleSqlParser.DECREMENT, 0); + }; + + DECR() { + return this.getToken(OracleSqlParser.DECR, 0); + }; + + DECRYPT() { + return this.getToken(OracleSqlParser.DECRYPT, 0); + }; + + DEDUPLICATE() { + return this.getToken(OracleSqlParser.DEDUPLICATE, 0); + }; + + DEFAULTS() { + return this.getToken(OracleSqlParser.DEFAULTS, 0); + }; + + DEFERRABLE() { + return this.getToken(OracleSqlParser.DEFERRABLE, 0); + }; + + DEFERRED() { + return this.getToken(OracleSqlParser.DEFERRED, 0); + }; + + DEFINED() { + return this.getToken(OracleSqlParser.DEFINED, 0); + }; + + DEFINER() { + return this.getToken(OracleSqlParser.DEFINER, 0); + }; + + DEGREE() { + return this.getToken(OracleSqlParser.DEGREE, 0); + }; + + DELAY() { + return this.getToken(OracleSqlParser.DELAY, 0); + }; + + DELETEXML() { + return this.getToken(OracleSqlParser.DELETEXML, 0); + }; + + DEMAND() { + return this.getToken(OracleSqlParser.DEMAND, 0); + }; + + DENSE_RANKM() { + return this.getToken(OracleSqlParser.DENSE_RANKM, 0); + }; + + DENSE_RANK() { + return this.getToken(OracleSqlParser.DENSE_RANK, 0); + }; + + DEPENDENT() { + return this.getToken(OracleSqlParser.DEPENDENT, 0); + }; + + DEPTH() { + return this.getToken(OracleSqlParser.DEPTH, 0); + }; + + DEQUEUE() { + return this.getToken(OracleSqlParser.DEQUEUE, 0); + }; + + DEREF() { + return this.getToken(OracleSqlParser.DEREF, 0); + }; + + DEREF_NO_REWRITE() { + return this.getToken(OracleSqlParser.DEREF_NO_REWRITE, 0); + }; + + DETACHED() { + return this.getToken(OracleSqlParser.DETACHED, 0); + }; + + DETERMINES() { + return this.getToken(OracleSqlParser.DETERMINES, 0); + }; + + DICTIONARY() { + return this.getToken(OracleSqlParser.DICTIONARY, 0); + }; + + DIMENSION() { + return this.getToken(OracleSqlParser.DIMENSION, 0); + }; + + DIRECT_LOAD() { + return this.getToken(OracleSqlParser.DIRECT_LOAD, 0); + }; + + DIRECTORY() { + return this.getToken(OracleSqlParser.DIRECTORY, 0); + }; + + DIRECT_PATH() { + return this.getToken(OracleSqlParser.DIRECT_PATH, 0); + }; + + DISABLE() { + return this.getToken(OracleSqlParser.DISABLE, 0); + }; + + DISABLE_PRESET() { + return this.getToken(OracleSqlParser.DISABLE_PRESET, 0); + }; + + DISABLE_RPKE() { + return this.getToken(OracleSqlParser.DISABLE_RPKE, 0); + }; + + DISALLOW() { + return this.getToken(OracleSqlParser.DISALLOW, 0); + }; + + DISASSOCIATE() { + return this.getToken(OracleSqlParser.DISASSOCIATE, 0); + }; + + DISCONNECT() { + return this.getToken(OracleSqlParser.DISCONNECT, 0); + }; + + DISKGROUP() { + return this.getToken(OracleSqlParser.DISKGROUP, 0); + }; + + DISK() { + return this.getToken(OracleSqlParser.DISK, 0); + }; + + DISKS() { + return this.getToken(OracleSqlParser.DISKS, 0); + }; + + DISMOUNT() { + return this.getToken(OracleSqlParser.DISMOUNT, 0); + }; + + DISTINGUISHED() { + return this.getToken(OracleSqlParser.DISTINGUISHED, 0); + }; + + DISTRIBUTED() { + return this.getToken(OracleSqlParser.DISTRIBUTED, 0); + }; + + DML() { + return this.getToken(OracleSqlParser.DML, 0); + }; + + DML_UPDATE() { + return this.getToken(OracleSqlParser.DML_UPDATE, 0); + }; + + DOCFIDELITY() { + return this.getToken(OracleSqlParser.DOCFIDELITY, 0); + }; + + DOCUMENT() { + return this.getToken(OracleSqlParser.DOCUMENT, 0); + }; + + DOMAIN_INDEX_FILTER() { + return this.getToken(OracleSqlParser.DOMAIN_INDEX_FILTER, 0); + }; + + DOMAIN_INDEX_NO_SORT() { + return this.getToken(OracleSqlParser.DOMAIN_INDEX_NO_SORT, 0); + }; + + DOMAIN_INDEX_SORT() { + return this.getToken(OracleSqlParser.DOMAIN_INDEX_SORT, 0); + }; + + DOUBLE() { + return this.getToken(OracleSqlParser.DOUBLE, 0); + }; + + DOWNGRADE() { + return this.getToken(OracleSqlParser.DOWNGRADE, 0); + }; + + DRIVING_SITE() { + return this.getToken(OracleSqlParser.DRIVING_SITE, 0); + }; + + DROP_COLUMN() { + return this.getToken(OracleSqlParser.DROP_COLUMN, 0); + }; + + DROP_GROUP() { + return this.getToken(OracleSqlParser.DROP_GROUP, 0); + }; + + DST_UPGRADE_INSERT_CONV() { + return this.getToken(OracleSqlParser.DST_UPGRADE_INSERT_CONV, 0); + }; + + DUMP() { + return this.getToken(OracleSqlParser.DUMP, 0); + }; + + DYNAMIC() { + return this.getToken(OracleSqlParser.DYNAMIC, 0); + }; + + DYNAMIC_SAMPLING_EST_CDN() { + return this.getToken(OracleSqlParser.DYNAMIC_SAMPLING_EST_CDN, 0); + }; + + DYNAMIC_SAMPLING() { + return this.getToken(OracleSqlParser.DYNAMIC_SAMPLING, 0); + }; + + EACH() { + return this.getToken(OracleSqlParser.EACH, 0); + }; + + EDITIONING() { + return this.getToken(OracleSqlParser.EDITIONING, 0); + }; + + EDITION() { + return this.getToken(OracleSqlParser.EDITION, 0); + }; + + EDITIONS() { + return this.getToken(OracleSqlParser.EDITIONS, 0); + }; + + ELEMENT() { + return this.getToken(OracleSqlParser.ELEMENT, 0); + }; + + ELIMINATE_JOIN() { + return this.getToken(OracleSqlParser.ELIMINATE_JOIN, 0); + }; + + ELIMINATE_OBY() { + return this.getToken(OracleSqlParser.ELIMINATE_OBY, 0); + }; + + ELIMINATE_OUTER_JOIN() { + return this.getToken(OracleSqlParser.ELIMINATE_OUTER_JOIN, 0); + }; + + EMPTY_BLOB() { + return this.getToken(OracleSqlParser.EMPTY_BLOB, 0); + }; + + EMPTY_CLOB() { + return this.getToken(OracleSqlParser.EMPTY_CLOB, 0); + }; + + EMPTY_() { + return this.getToken(OracleSqlParser.EMPTY_, 0); + }; + + ENABLE() { + return this.getToken(OracleSqlParser.ENABLE, 0); + }; + + ENABLE_PRESET() { + return this.getToken(OracleSqlParser.ENABLE_PRESET, 0); + }; + + ENCODING() { + return this.getToken(OracleSqlParser.ENCODING, 0); + }; + + ENCRYPTION() { + return this.getToken(OracleSqlParser.ENCRYPTION, 0); + }; + + ENCRYPT() { + return this.getToken(OracleSqlParser.ENCRYPT, 0); + }; + + END_OUTLINE_DATA() { + return this.getToken(OracleSqlParser.END_OUTLINE_DATA, 0); + }; + + ENFORCED() { + return this.getToken(OracleSqlParser.ENFORCED, 0); + }; + + ENFORCE() { + return this.getToken(OracleSqlParser.ENFORCE, 0); + }; + + ENQUEUE() { + return this.getToken(OracleSqlParser.ENQUEUE, 0); + }; + + ENTERPRISE() { + return this.getToken(OracleSqlParser.ENTERPRISE, 0); + }; + + ENTITYESCAPING() { + return this.getToken(OracleSqlParser.ENTITYESCAPING, 0); + }; + + ENTRY() { + return this.getToken(OracleSqlParser.ENTRY, 0); + }; + + ERROR_ARGUMENT() { + return this.getToken(OracleSqlParser.ERROR_ARGUMENT, 0); + }; + + ERROR() { + return this.getToken(OracleSqlParser.ERROR, 0); + }; + + ERROR_ON_OVERLAP_TIME() { + return this.getToken(OracleSqlParser.ERROR_ON_OVERLAP_TIME, 0); + }; + + ERRORS() { + return this.getToken(OracleSqlParser.ERRORS, 0); + }; + + ESCAPE() { + return this.getToken(OracleSqlParser.ESCAPE, 0); + }; + + ESTIMATE() { + return this.getToken(OracleSqlParser.ESTIMATE, 0); + }; + + EVALNAME() { + return this.getToken(OracleSqlParser.EVALNAME, 0); + }; + + EVALUATION() { + return this.getToken(OracleSqlParser.EVALUATION, 0); + }; + + EVENTS() { + return this.getToken(OracleSqlParser.EVENTS, 0); + }; + + EVERY() { + return this.getToken(OracleSqlParser.EVERY, 0); + }; + + EXCEPTIONS() { + return this.getToken(OracleSqlParser.EXCEPTIONS, 0); + }; + + EXCEPT() { + return this.getToken(OracleSqlParser.EXCEPT, 0); + }; + + EXCHANGE() { + return this.getToken(OracleSqlParser.EXCHANGE, 0); + }; + + EXCLUDE() { + return this.getToken(OracleSqlParser.EXCLUDE, 0); + }; + + EXCLUDING() { + return this.getToken(OracleSqlParser.EXCLUDING, 0); + }; + + EXECUTE() { + return this.getToken(OracleSqlParser.EXECUTE, 0); + }; + + EXEMPT() { + return this.getToken(OracleSqlParser.EXEMPT, 0); + }; + + EXISTSNODE() { + return this.getToken(OracleSqlParser.EXISTSNODE, 0); + }; + + EXPAND_GSET_TO_UNION() { + return this.getToken(OracleSqlParser.EXPAND_GSET_TO_UNION, 0); + }; + + EXPAND_TABLE() { + return this.getToken(OracleSqlParser.EXPAND_TABLE, 0); + }; + + EXPIRE() { + return this.getToken(OracleSqlParser.EXPIRE, 0); + }; + + EXPLAIN() { + return this.getToken(OracleSqlParser.EXPLAIN, 0); + }; + + EXPLOSION() { + return this.getToken(OracleSqlParser.EXPLOSION, 0); + }; + + EXP() { + return this.getToken(OracleSqlParser.EXP, 0); + }; + + EXPORT() { + return this.getToken(OracleSqlParser.EXPORT, 0); + }; + + EXPR_CORR_CHECK() { + return this.getToken(OracleSqlParser.EXPR_CORR_CHECK, 0); + }; + + EXTENDS() { + return this.getToken(OracleSqlParser.EXTENDS, 0); + }; + + EXTENT() { + return this.getToken(OracleSqlParser.EXTENT, 0); + }; + + EXTENTS() { + return this.getToken(OracleSqlParser.EXTENTS, 0); + }; + + EXTERNALLY() { + return this.getToken(OracleSqlParser.EXTERNALLY, 0); + }; + + EXTERNAL() { + return this.getToken(OracleSqlParser.EXTERNAL, 0); + }; + + EXTRACT() { + return this.getToken(OracleSqlParser.EXTRACT, 0); + }; + + EXTRACTVALUE() { + return this.getToken(OracleSqlParser.EXTRACTVALUE, 0); + }; + + EXTRA() { + return this.getToken(OracleSqlParser.EXTRA, 0); + }; + + FACILITY() { + return this.getToken(OracleSqlParser.FACILITY, 0); + }; + + FACT() { + return this.getToken(OracleSqlParser.FACT, 0); + }; + + FACTORIZE_JOIN() { + return this.getToken(OracleSqlParser.FACTORIZE_JOIN, 0); + }; + + FAILED_LOGIN_ATTEMPTS() { + return this.getToken(OracleSqlParser.FAILED_LOGIN_ATTEMPTS, 0); + }; + + FAILED() { + return this.getToken(OracleSqlParser.FAILED, 0); + }; + + FAILGROUP() { + return this.getToken(OracleSqlParser.FAILGROUP, 0); + }; + + FALSE() { + return this.getToken(OracleSqlParser.FALSE, 0); + }; + + FAST() { + return this.getToken(OracleSqlParser.FAST, 0); + }; + + FBTSCAN() { + return this.getToken(OracleSqlParser.FBTSCAN, 0); + }; + + FEATURE_ID() { + return this.getToken(OracleSqlParser.FEATURE_ID, 0); + }; + + FEATURE_SET() { + return this.getToken(OracleSqlParser.FEATURE_SET, 0); + }; + + FEATURE_VALUE() { + return this.getToken(OracleSqlParser.FEATURE_VALUE, 0); + }; + + FILE() { + return this.getToken(OracleSqlParser.FILE, 0); + }; + + FILESYSTEM_LIKE_LOGGING() { + return this.getToken(OracleSqlParser.FILESYSTEM_LIKE_LOGGING, 0); + }; + + FILTER() { + return this.getToken(OracleSqlParser.FILTER, 0); + }; + + FINAL() { + return this.getToken(OracleSqlParser.FINAL, 0); + }; + + FINE() { + return this.getToken(OracleSqlParser.FINE, 0); + }; + + FINISH() { + return this.getToken(OracleSqlParser.FINISH, 0); + }; + + FIRSTM() { + return this.getToken(OracleSqlParser.FIRSTM, 0); + }; + + FIRST() { + return this.getToken(OracleSqlParser.FIRST, 0); + }; + + FIRST_ROWS() { + return this.getToken(OracleSqlParser.FIRST_ROWS, 0); + }; + + FIRST_VALUE() { + return this.getToken(OracleSqlParser.FIRST_VALUE, 0); + }; + + FLAGGER() { + return this.getToken(OracleSqlParser.FLAGGER, 0); + }; + + FLASHBACK() { + return this.getToken(OracleSqlParser.FLASHBACK, 0); + }; + + FLASH_CACHE() { + return this.getToken(OracleSqlParser.FLASH_CACHE, 0); + }; + + FLOB() { + return this.getToken(OracleSqlParser.FLOB, 0); + }; + + FLOOR() { + return this.getToken(OracleSqlParser.FLOOR, 0); + }; + + FLUSH() { + return this.getToken(OracleSqlParser.FLUSH, 0); + }; + + FOLDER() { + return this.getToken(OracleSqlParser.FOLDER, 0); + }; + + FOLLOWING() { + return this.getToken(OracleSqlParser.FOLLOWING, 0); + }; + + FOLLOWS() { + return this.getToken(OracleSqlParser.FOLLOWS, 0); + }; + + FORCE() { + return this.getToken(OracleSqlParser.FORCE, 0); + }; + + FORCE_XML_QUERY_REWRITE() { + return this.getToken(OracleSqlParser.FORCE_XML_QUERY_REWRITE, 0); + }; + + FOREIGN() { + return this.getToken(OracleSqlParser.FOREIGN, 0); + }; + + FOREVER() { + return this.getToken(OracleSqlParser.FOREVER, 0); + }; + + FORWARD() { + return this.getToken(OracleSqlParser.FORWARD, 0); + }; + + FRAGMENT_NUMBER() { + return this.getToken(OracleSqlParser.FRAGMENT_NUMBER, 0); + }; + + FREELIST() { + return this.getToken(OracleSqlParser.FREELIST, 0); + }; + + FREELISTS() { + return this.getToken(OracleSqlParser.FREELISTS, 0); + }; + + FREEPOOLS() { + return this.getToken(OracleSqlParser.FREEPOOLS, 0); + }; + + FRESH() { + return this.getToken(OracleSqlParser.FRESH, 0); + }; + + FROM_TZ() { + return this.getToken(OracleSqlParser.FROM_TZ, 0); + }; + + FULL() { + return this.getToken(OracleSqlParser.FULL, 0); + }; + + FULL_OUTER_JOIN_TO_OUTER() { + return this.getToken(OracleSqlParser.FULL_OUTER_JOIN_TO_OUTER, 0); + }; + + FUNCTION() { + return this.getToken(OracleSqlParser.FUNCTION, 0); + }; + + FUNCTIONS() { + return this.getToken(OracleSqlParser.FUNCTIONS, 0); + }; + + GATHER_PLAN_STATISTICS() { + return this.getToken(OracleSqlParser.GATHER_PLAN_STATISTICS, 0); + }; + + GBY_CONC_ROLLUP() { + return this.getToken(OracleSqlParser.GBY_CONC_ROLLUP, 0); + }; + + GBY_PUSHDOWN() { + return this.getToken(OracleSqlParser.GBY_PUSHDOWN, 0); + }; + + GENERATED() { + return this.getToken(OracleSqlParser.GENERATED, 0); + }; + + GLOBALLY() { + return this.getToken(OracleSqlParser.GLOBALLY, 0); + }; + + GLOBAL() { + return this.getToken(OracleSqlParser.GLOBAL, 0); + }; + + GLOBAL_NAME() { + return this.getToken(OracleSqlParser.GLOBAL_NAME, 0); + }; + + GLOBAL_TOPIC_ENABLED() { + return this.getToken(OracleSqlParser.GLOBAL_TOPIC_ENABLED, 0); + }; + + GREATEST() { + return this.getToken(OracleSqlParser.GREATEST, 0); + }; + + GROUP_BY() { + return this.getToken(OracleSqlParser.GROUP_BY, 0); + }; + + GROUP_ID() { + return this.getToken(OracleSqlParser.GROUP_ID, 0); + }; + + GROUPING_ID() { + return this.getToken(OracleSqlParser.GROUPING_ID, 0); + }; + + GROUPING() { + return this.getToken(OracleSqlParser.GROUPING, 0); + }; + + GROUPS() { + return this.getToken(OracleSqlParser.GROUPS, 0); + }; + + GUARANTEED() { + return this.getToken(OracleSqlParser.GUARANTEED, 0); + }; + + GUARANTEE() { + return this.getToken(OracleSqlParser.GUARANTEE, 0); + }; + + GUARD() { + return this.getToken(OracleSqlParser.GUARD, 0); + }; + + HASH_AJ() { + return this.getToken(OracleSqlParser.HASH_AJ, 0); + }; + + HASHKEYS() { + return this.getToken(OracleSqlParser.HASHKEYS, 0); + }; + + HASH() { + return this.getToken(OracleSqlParser.HASH, 0); + }; + + HASH_SJ() { + return this.getToken(OracleSqlParser.HASH_SJ, 0); + }; + + HEADER() { + return this.getToken(OracleSqlParser.HEADER, 0); + }; + + HEAP() { + return this.getToken(OracleSqlParser.HEAP, 0); + }; + + HELP() { + return this.getToken(OracleSqlParser.HELP, 0); + }; + + HEXTORAW() { + return this.getToken(OracleSqlParser.HEXTORAW, 0); + }; + + HEXTOREF() { + return this.getToken(OracleSqlParser.HEXTOREF, 0); + }; + + HIDDEN_KEYWORD() { + return this.getToken(OracleSqlParser.HIDDEN_KEYWORD, 0); + }; + + HIDE() { + return this.getToken(OracleSqlParser.HIDE, 0); + }; + + HIERARCHY() { + return this.getToken(OracleSqlParser.HIERARCHY, 0); + }; + + HIGH() { + return this.getToken(OracleSqlParser.HIGH, 0); + }; + + HINTSET_BEGIN() { + return this.getToken(OracleSqlParser.HINTSET_BEGIN, 0); + }; + + HINTSET_END() { + return this.getToken(OracleSqlParser.HINTSET_END, 0); + }; + + HOT() { + return this.getToken(OracleSqlParser.HOT, 0); + }; + + HOUR() { + return this.getToken(OracleSqlParser.HOUR, 0); + }; + + HWM_BROKERED() { + return this.getToken(OracleSqlParser.HWM_BROKERED, 0); + }; + + HYBRID() { + return this.getToken(OracleSqlParser.HYBRID, 0); + }; + + IDENTIFIER() { + return this.getToken(OracleSqlParser.IDENTIFIER, 0); + }; + + IDENTITY() { + return this.getToken(OracleSqlParser.IDENTITY, 0); + }; + + IDGENERATORS() { + return this.getToken(OracleSqlParser.IDGENERATORS, 0); + }; + + IDLE_TIME() { + return this.getToken(OracleSqlParser.IDLE_TIME, 0); + }; + + ID() { + return this.getToken(OracleSqlParser.ID, 0); + }; + + IF() { + return this.getToken(OracleSqlParser.IF, 0); + }; + + IGNORE() { + return this.getToken(OracleSqlParser.IGNORE, 0); + }; + + IGNORE_OPTIM_EMBEDDED_HINTS() { + return this.getToken(OracleSqlParser.IGNORE_OPTIM_EMBEDDED_HINTS, 0); + }; + + IGNORE_ROW_ON_DUPKEY_INDEX() { + return this.getToken(OracleSqlParser.IGNORE_ROW_ON_DUPKEY_INDEX, 0); + }; + + IGNORE_WHERE_CLAUSE() { + return this.getToken(OracleSqlParser.IGNORE_WHERE_CLAUSE, 0); + }; + + IMMEDIATE() { + return this.getToken(OracleSqlParser.IMMEDIATE, 0); + }; + + IMPACT() { + return this.getToken(OracleSqlParser.IMPACT, 0); + }; + + IMPORT() { + return this.getToken(OracleSqlParser.IMPORT, 0); + }; + + INCLUDE() { + return this.getToken(OracleSqlParser.INCLUDE, 0); + }; + + INCLUDE_VERSION() { + return this.getToken(OracleSqlParser.INCLUDE_VERSION, 0); + }; + + INCLUDING() { + return this.getToken(OracleSqlParser.INCLUDING, 0); + }; + + INCREMENTAL() { + return this.getToken(OracleSqlParser.INCREMENTAL, 0); + }; + + INCREMENT() { + return this.getToken(OracleSqlParser.INCREMENT, 0); + }; + + INCR() { + return this.getToken(OracleSqlParser.INCR, 0); + }; + + INDENT() { + return this.getToken(OracleSqlParser.INDENT, 0); + }; + + INDEX_ASC() { + return this.getToken(OracleSqlParser.INDEX_ASC, 0); + }; + + INDEX_COMBINE() { + return this.getToken(OracleSqlParser.INDEX_COMBINE, 0); + }; + + INDEX_DESC() { + return this.getToken(OracleSqlParser.INDEX_DESC, 0); + }; + + INDEXED() { + return this.getToken(OracleSqlParser.INDEXED, 0); + }; + + INDEXES() { + return this.getToken(OracleSqlParser.INDEXES, 0); + }; + + INDEX_FFS() { + return this.getToken(OracleSqlParser.INDEX_FFS, 0); + }; + + INDEX_FILTER() { + return this.getToken(OracleSqlParser.INDEX_FILTER, 0); + }; + + INDEX_JOIN() { + return this.getToken(OracleSqlParser.INDEX_JOIN, 0); + }; + + INDEX_ROWS() { + return this.getToken(OracleSqlParser.INDEX_ROWS, 0); + }; + + INDEX_RRS() { + return this.getToken(OracleSqlParser.INDEX_RRS, 0); + }; + + INDEX_RS_ASC() { + return this.getToken(OracleSqlParser.INDEX_RS_ASC, 0); + }; + + INDEX_RS_DESC() { + return this.getToken(OracleSqlParser.INDEX_RS_DESC, 0); + }; + + INDEX_RS() { + return this.getToken(OracleSqlParser.INDEX_RS, 0); + }; + + INDEX_SCAN() { + return this.getToken(OracleSqlParser.INDEX_SCAN, 0); + }; + + INDEX_SKIP_SCAN() { + return this.getToken(OracleSqlParser.INDEX_SKIP_SCAN, 0); + }; + + INDEX_SS_ASC() { + return this.getToken(OracleSqlParser.INDEX_SS_ASC, 0); + }; + + INDEX_SS_DESC() { + return this.getToken(OracleSqlParser.INDEX_SS_DESC, 0); + }; + + INDEX_SS() { + return this.getToken(OracleSqlParser.INDEX_SS, 0); + }; + + INDEX_STATS() { + return this.getToken(OracleSqlParser.INDEX_STATS, 0); + }; + + INDEXTYPE() { + return this.getToken(OracleSqlParser.INDEXTYPE, 0); + }; + + INDEXTYPES() { + return this.getToken(OracleSqlParser.INDEXTYPES, 0); + }; + + INDICATOR() { + return this.getToken(OracleSqlParser.INDICATOR, 0); + }; + + INFINITE() { + return this.getToken(OracleSqlParser.INFINITE, 0); + }; + + INFORMATIONAL() { + return this.getToken(OracleSqlParser.INFORMATIONAL, 0); + }; + + INITCAP() { + return this.getToken(OracleSqlParser.INITCAP, 0); + }; + + INITIALIZED() { + return this.getToken(OracleSqlParser.INITIALIZED, 0); + }; + + INITIALLY() { + return this.getToken(OracleSqlParser.INITIALLY, 0); + }; + + INITIAL() { + return this.getToken(OracleSqlParser.INITIAL, 0); + }; + + INITRANS() { + return this.getToken(OracleSqlParser.INITRANS, 0); + }; + + INLINE() { + return this.getToken(OracleSqlParser.INLINE, 0); + }; + + INLINE_XMLTYPE_NT() { + return this.getToken(OracleSqlParser.INLINE_XMLTYPE_NT, 0); + }; + + IN_MEMORY_METADATA() { + return this.getToken(OracleSqlParser.IN_MEMORY_METADATA, 0); + }; + + INNER() { + return this.getToken(OracleSqlParser.INNER, 0); + }; + + INSERTCHILDXMLAFTER() { + return this.getToken(OracleSqlParser.INSERTCHILDXMLAFTER, 0); + }; + + INSERTCHILDXMLBEFORE() { + return this.getToken(OracleSqlParser.INSERTCHILDXMLBEFORE, 0); + }; + + INSERTCHILDXML() { + return this.getToken(OracleSqlParser.INSERTCHILDXML, 0); + }; + + INSERTXMLAFTER() { + return this.getToken(OracleSqlParser.INSERTXMLAFTER, 0); + }; + + INSERTXMLBEFORE() { + return this.getToken(OracleSqlParser.INSERTXMLBEFORE, 0); + }; + + INSTANCE() { + return this.getToken(OracleSqlParser.INSTANCE, 0); + }; + + INSTANCES() { + return this.getToken(OracleSqlParser.INSTANCES, 0); + }; + + INSTANTIABLE() { + return this.getToken(OracleSqlParser.INSTANTIABLE, 0); + }; + + INSTANTLY() { + return this.getToken(OracleSqlParser.INSTANTLY, 0); + }; + + INSTEAD() { + return this.getToken(OracleSqlParser.INSTEAD, 0); + }; + + INSTR2() { + return this.getToken(OracleSqlParser.INSTR2, 0); + }; + + INSTR4() { + return this.getToken(OracleSqlParser.INSTR4, 0); + }; + + INSTRB() { + return this.getToken(OracleSqlParser.INSTRB, 0); + }; + + INSTRC() { + return this.getToken(OracleSqlParser.INSTRC, 0); + }; + + INSTR() { + return this.getToken(OracleSqlParser.INSTR, 0); + }; + + INTERMEDIATE() { + return this.getToken(OracleSqlParser.INTERMEDIATE, 0); + }; + + INTERNAL_CONVERT() { + return this.getToken(OracleSqlParser.INTERNAL_CONVERT, 0); + }; + + INTERNAL_USE() { + return this.getToken(OracleSqlParser.INTERNAL_USE, 0); + }; + + INTERPRETED() { + return this.getToken(OracleSqlParser.INTERPRETED, 0); + }; + + INTERVAL() { + return this.getToken(OracleSqlParser.INTERVAL, 0); + }; + + INT() { + return this.getToken(OracleSqlParser.INT, 0); + }; + + INVALIDATE() { + return this.getToken(OracleSqlParser.INVALIDATE, 0); + }; + + INVISIBLE() { + return this.getToken(OracleSqlParser.INVISIBLE, 0); + }; + + IN_XQUERY() { + return this.getToken(OracleSqlParser.IN_XQUERY, 0); + }; + + ISOLATION_LEVEL() { + return this.getToken(OracleSqlParser.ISOLATION_LEVEL, 0); + }; + + ISOLATION() { + return this.getToken(OracleSqlParser.ISOLATION, 0); + }; + + ITERATE() { + return this.getToken(OracleSqlParser.ITERATE, 0); + }; + + ITERATION_NUMBER() { + return this.getToken(OracleSqlParser.ITERATION_NUMBER, 0); + }; + + JAVA() { + return this.getToken(OracleSqlParser.JAVA, 0); + }; + + JOB() { + return this.getToken(OracleSqlParser.JOB, 0); + }; + + JOIN() { + return this.getToken(OracleSqlParser.JOIN, 0); + }; + + KEEP_DUPLICATES() { + return this.getToken(OracleSqlParser.KEEP_DUPLICATES, 0); + }; + + KEEP() { + return this.getToken(OracleSqlParser.KEEP, 0); + }; + + KERBEROS() { + return this.getToken(OracleSqlParser.KERBEROS, 0); + }; + + KEY_LENGTH() { + return this.getToken(OracleSqlParser.KEY_LENGTH, 0); + }; + + KEY() { + return this.getToken(OracleSqlParser.KEY, 0); + }; + + KEYSIZE() { + return this.getToken(OracleSqlParser.KEYSIZE, 0); + }; + + KEYS() { + return this.getToken(OracleSqlParser.KEYS, 0); + }; + + KILL() { + return this.getToken(OracleSqlParser.KILL, 0); + }; + + LAG() { + return this.getToken(OracleSqlParser.LAG, 0); + }; + + LAST_DAY() { + return this.getToken(OracleSqlParser.LAST_DAY, 0); + }; + + LAST() { + return this.getToken(OracleSqlParser.LAST, 0); + }; + + LAST_VALUE() { + return this.getToken(OracleSqlParser.LAST_VALUE, 0); + }; + + LATERAL() { + return this.getToken(OracleSqlParser.LATERAL, 0); + }; + + LAYER() { + return this.getToken(OracleSqlParser.LAYER, 0); + }; + + LDAP_REGISTRATION_ENABLED() { + return this.getToken(OracleSqlParser.LDAP_REGISTRATION_ENABLED, 0); + }; + + LDAP_REGISTRATION() { + return this.getToken(OracleSqlParser.LDAP_REGISTRATION, 0); + }; + + LDAP_REG_SYNC_INTERVAL() { + return this.getToken(OracleSqlParser.LDAP_REG_SYNC_INTERVAL, 0); + }; + + LEADING() { + return this.getToken(OracleSqlParser.LEADING, 0); + }; + + LEAD() { + return this.getToken(OracleSqlParser.LEAD, 0); + }; + + LEAF() { + return this.getToken(OracleSqlParser.LEAF, 0); + }; + + LEAST() { + return this.getToken(OracleSqlParser.LEAST, 0); + }; + + LEFT() { + return this.getToken(OracleSqlParser.LEFT, 0); + }; + + LENGTH2() { + return this.getToken(OracleSqlParser.LENGTH2, 0); + }; + + LENGTH4() { + return this.getToken(OracleSqlParser.LENGTH4, 0); + }; + + LENGTHB() { + return this.getToken(OracleSqlParser.LENGTHB, 0); + }; + + LENGTHC() { + return this.getToken(OracleSqlParser.LENGTHC, 0); + }; + + LENGTH() { + return this.getToken(OracleSqlParser.LENGTH, 0); + }; + + LESS() { + return this.getToken(OracleSqlParser.LESS, 0); + }; + + LEVEL() { + return this.getToken(OracleSqlParser.LEVEL, 0); + }; + + LEVELS() { + return this.getToken(OracleSqlParser.LEVELS, 0); + }; + + LIBRARY() { + return this.getToken(OracleSqlParser.LIBRARY, 0); + }; + + LIFE() { + return this.getToken(OracleSqlParser.LIFE, 0); + }; + + LIFETIME() { + return this.getToken(OracleSqlParser.LIFETIME, 0); + }; + + LIKE2() { + return this.getToken(OracleSqlParser.LIKE2, 0); + }; + + LIKE4() { + return this.getToken(OracleSqlParser.LIKE4, 0); + }; + + LIKEC() { + return this.getToken(OracleSqlParser.LIKEC, 0); + }; + + LIKE_EXPAND() { + return this.getToken(OracleSqlParser.LIKE_EXPAND, 0); + }; + + LIMIT() { + return this.getToken(OracleSqlParser.LIMIT, 0); + }; + + LINK() { + return this.getToken(OracleSqlParser.LINK, 0); + }; + + LISTAGG() { + return this.getToken(OracleSqlParser.LISTAGG, 0); + }; + + LIST() { + return this.getToken(OracleSqlParser.LIST, 0); + }; + + LN() { + return this.getToken(OracleSqlParser.LN, 0); + }; + + LNNVL() { + return this.getToken(OracleSqlParser.LNNVL, 0); + }; + + LOAD() { + return this.getToken(OracleSqlParser.LOAD, 0); + }; + + LOB() { + return this.getToken(OracleSqlParser.LOB, 0); + }; + + LOBNVL() { + return this.getToken(OracleSqlParser.LOBNVL, 0); + }; + + LOBS() { + return this.getToken(OracleSqlParser.LOBS, 0); + }; + + LOCAL_INDEXES() { + return this.getToken(OracleSqlParser.LOCAL_INDEXES, 0); + }; + + LOCAL() { + return this.getToken(OracleSqlParser.LOCAL, 0); + }; + + LOCALTIME() { + return this.getToken(OracleSqlParser.LOCALTIME, 0); + }; + + LOCALTIMESTAMP() { + return this.getToken(OracleSqlParser.LOCALTIMESTAMP, 0); + }; + + LOCATION() { + return this.getToken(OracleSqlParser.LOCATION, 0); + }; + + LOCATOR() { + return this.getToken(OracleSqlParser.LOCATOR, 0); + }; + + LOCKED() { + return this.getToken(OracleSqlParser.LOCKED, 0); + }; + + LOGFILE() { + return this.getToken(OracleSqlParser.LOGFILE, 0); + }; + + LOGFILES() { + return this.getToken(OracleSqlParser.LOGFILES, 0); + }; + + LOGGING() { + return this.getToken(OracleSqlParser.LOGGING, 0); + }; + + LOGICAL() { + return this.getToken(OracleSqlParser.LOGICAL, 0); + }; + + LOGICAL_READS_PER_CALL() { + return this.getToken(OracleSqlParser.LOGICAL_READS_PER_CALL, 0); + }; + + LOGICAL_READS_PER_SESSION() { + return this.getToken(OracleSqlParser.LOGICAL_READS_PER_SESSION, 0); + }; + + LOG() { + return this.getToken(OracleSqlParser.LOG, 0); + }; + + LOGOFF() { + return this.getToken(OracleSqlParser.LOGOFF, 0); + }; + + LOGON() { + return this.getToken(OracleSqlParser.LOGON, 0); + }; + + LOG_READ_ONLY_VIOLATIONS() { + return this.getToken(OracleSqlParser.LOG_READ_ONLY_VIOLATIONS, 0); + }; + + LOWER() { + return this.getToken(OracleSqlParser.LOWER, 0); + }; + + LOW() { + return this.getToken(OracleSqlParser.LOW, 0); + }; + + LPAD() { + return this.getToken(OracleSqlParser.LPAD, 0); + }; + + LTRIM() { + return this.getToken(OracleSqlParser.LTRIM, 0); + }; + + MAIN() { + return this.getToken(OracleSqlParser.MAIN, 0); + }; + + MAKE_REF() { + return this.getToken(OracleSqlParser.MAKE_REF, 0); + }; + + MANAGED() { + return this.getToken(OracleSqlParser.MANAGED, 0); + }; + + MANAGEMENT() { + return this.getToken(OracleSqlParser.MANAGEMENT, 0); + }; + + MANAGE() { + return this.getToken(OracleSqlParser.MANAGE, 0); + }; + + MANAGER() { + return this.getToken(OracleSqlParser.MANAGER, 0); + }; + + MANUAL() { + return this.getToken(OracleSqlParser.MANUAL, 0); + }; + + MAPPING() { + return this.getToken(OracleSqlParser.MAPPING, 0); + }; + + MASTER() { + return this.getToken(OracleSqlParser.MASTER, 0); + }; + + MATCHED() { + return this.getToken(OracleSqlParser.MATCHED, 0); + }; + + MATERIALIZED() { + return this.getToken(OracleSqlParser.MATERIALIZED, 0); + }; + + MATERIALIZE() { + return this.getToken(OracleSqlParser.MATERIALIZE, 0); + }; + + MAXARCHLOGS() { + return this.getToken(OracleSqlParser.MAXARCHLOGS, 0); + }; + + MAXDATAFILES() { + return this.getToken(OracleSqlParser.MAXDATAFILES, 0); + }; + + MAXEXTENTS() { + return this.getToken(OracleSqlParser.MAXEXTENTS, 0); + }; + + MAXIMIZE() { + return this.getToken(OracleSqlParser.MAXIMIZE, 0); + }; + + MAXINSTANCES() { + return this.getToken(OracleSqlParser.MAXINSTANCES, 0); + }; + + MAXLOGFILES() { + return this.getToken(OracleSqlParser.MAXLOGFILES, 0); + }; + + MAXLOGHISTORY() { + return this.getToken(OracleSqlParser.MAXLOGHISTORY, 0); + }; + + MAXLOGMEMBERS() { + return this.getToken(OracleSqlParser.MAXLOGMEMBERS, 0); + }; + + MAX() { + return this.getToken(OracleSqlParser.MAX, 0); + }; + + MAXSIZE() { + return this.getToken(OracleSqlParser.MAXSIZE, 0); + }; + + MAXTRANS() { + return this.getToken(OracleSqlParser.MAXTRANS, 0); + }; + + MAXVALUE() { + return this.getToken(OracleSqlParser.MAXVALUE, 0); + }; + + MEASURE() { + return this.getToken(OracleSqlParser.MEASURE, 0); + }; + + MEASURES() { + return this.getToken(OracleSqlParser.MEASURES, 0); + }; + + MEDIAN() { + return this.getToken(OracleSqlParser.MEDIAN, 0); + }; + + MEDIUM() { + return this.getToken(OracleSqlParser.MEDIUM, 0); + }; + + MEMBER() { + return this.getToken(OracleSqlParser.MEMBER, 0); + }; + + MEMOPTIMIZE() { + return this.getToken(OracleSqlParser.MEMOPTIMIZE, 0); + }; + + MEMORY() { + return this.getToken(OracleSqlParser.MEMORY, 0); + }; + + MERGEACTIONS() { + return this.getToken(OracleSqlParser.MERGEACTIONS, 0); + }; + + MERGE_AJ() { + return this.getToken(OracleSqlParser.MERGE_AJ, 0); + }; + + MERGE_CONST_ON() { + return this.getToken(OracleSqlParser.MERGE_CONST_ON, 0); + }; + + MERGE() { + return this.getToken(OracleSqlParser.MERGE, 0); + }; + + MERGE_SJ() { + return this.getToken(OracleSqlParser.MERGE_SJ, 0); + }; + + METHOD() { + return this.getToken(OracleSqlParser.METHOD, 0); + }; + + MIGRATE() { + return this.getToken(OracleSqlParser.MIGRATE, 0); + }; + + MIGRATION() { + return this.getToken(OracleSqlParser.MIGRATION, 0); + }; + + MINEXTENTS() { + return this.getToken(OracleSqlParser.MINEXTENTS, 0); + }; + + MINIMIZE() { + return this.getToken(OracleSqlParser.MINIMIZE, 0); + }; + + MINIMUM() { + return this.getToken(OracleSqlParser.MINIMUM, 0); + }; + + MINING() { + return this.getToken(OracleSqlParser.MINING, 0); + }; + + MIN() { + return this.getToken(OracleSqlParser.MIN, 0); + }; + + MINUS_NULL() { + return this.getToken(OracleSqlParser.MINUS_NULL, 0); + }; + + MINUTE() { + return this.getToken(OracleSqlParser.MINUTE, 0); + }; + + MINVALUE() { + return this.getToken(OracleSqlParser.MINVALUE, 0); + }; + + MIRRORCOLD() { + return this.getToken(OracleSqlParser.MIRRORCOLD, 0); + }; + + MIRRORHOT() { + return this.getToken(OracleSqlParser.MIRRORHOT, 0); + }; + + MIRROR() { + return this.getToken(OracleSqlParser.MIRROR, 0); + }; + + MLSLABEL() { + return this.getToken(OracleSqlParser.MLSLABEL, 0); + }; + + MODEL_COMPILE_SUBQUERY() { + return this.getToken(OracleSqlParser.MODEL_COMPILE_SUBQUERY, 0); + }; + + MODEL_DONTVERIFY_UNIQUENESS() { + return this.getToken(OracleSqlParser.MODEL_DONTVERIFY_UNIQUENESS, 0); + }; + + MODEL_DYNAMIC_SUBQUERY() { + return this.getToken(OracleSqlParser.MODEL_DYNAMIC_SUBQUERY, 0); + }; + + MODEL_MIN_ANALYSIS() { + return this.getToken(OracleSqlParser.MODEL_MIN_ANALYSIS, 0); + }; + + MODEL() { + return this.getToken(OracleSqlParser.MODEL, 0); + }; + + MODEL_NO_ANALYSIS() { + return this.getToken(OracleSqlParser.MODEL_NO_ANALYSIS, 0); + }; + + MODEL_PBY() { + return this.getToken(OracleSqlParser.MODEL_PBY, 0); + }; + + MODEL_PUSH_REF() { + return this.getToken(OracleSqlParser.MODEL_PUSH_REF, 0); + }; + + MODIFY_COLUMN_TYPE() { + return this.getToken(OracleSqlParser.MODIFY_COLUMN_TYPE, 0); + }; + + MODIFY() { + return this.getToken(OracleSqlParser.MODIFY, 0); + }; + + MOD() { + return this.getToken(OracleSqlParser.MOD, 0); + }; + + MONITORING() { + return this.getToken(OracleSqlParser.MONITORING, 0); + }; + + MONITOR() { + return this.getToken(OracleSqlParser.MONITOR, 0); + }; + + MONTH() { + return this.getToken(OracleSqlParser.MONTH, 0); + }; + + MONTHS_BETWEEN() { + return this.getToken(OracleSqlParser.MONTHS_BETWEEN, 0); + }; + + MOUNT() { + return this.getToken(OracleSqlParser.MOUNT, 0); + }; + + MOUNTPATH() { + return this.getToken(OracleSqlParser.MOUNTPATH, 0); + }; + + MOVEMENT() { + return this.getToken(OracleSqlParser.MOVEMENT, 0); + }; + + MOVE() { + return this.getToken(OracleSqlParser.MOVE, 0); + }; + + MULTISET() { + return this.getToken(OracleSqlParser.MULTISET, 0); + }; + + MV_MERGE() { + return this.getToken(OracleSqlParser.MV_MERGE, 0); + }; + + NAMED() { + return this.getToken(OracleSqlParser.NAMED, 0); + }; + + NAME() { + return this.getToken(OracleSqlParser.NAME, 0); + }; + + NAMESPACE() { + return this.getToken(OracleSqlParser.NAMESPACE, 0); + }; + + NAN_() { + return this.getToken(OracleSqlParser.NAN_, 0); + }; + + NANVL() { + return this.getToken(OracleSqlParser.NANVL, 0); + }; + + NATIONAL() { + return this.getToken(OracleSqlParser.NATIONAL, 0); + }; + + NATIVE_FULL_OUTER_JOIN() { + return this.getToken(OracleSqlParser.NATIVE_FULL_OUTER_JOIN, 0); + }; + + NATIVE() { + return this.getToken(OracleSqlParser.NATIVE, 0); + }; + + NATURAL() { + return this.getToken(OracleSqlParser.NATURAL, 0); + }; + + NAV() { + return this.getToken(OracleSqlParser.NAV, 0); + }; + + NCHAR_CS() { + return this.getToken(OracleSqlParser.NCHAR_CS, 0); + }; + + NCHAR() { + return this.getToken(OracleSqlParser.NCHAR, 0); + }; + + NCHR() { + return this.getToken(OracleSqlParser.NCHR, 0); + }; + + NCLOB() { + return this.getToken(OracleSqlParser.NCLOB, 0); + }; + + NEEDED() { + return this.getToken(OracleSqlParser.NEEDED, 0); + }; + + NESTED() { + return this.getToken(OracleSqlParser.NESTED, 0); + }; + + NESTED_TABLE_FAST_INSERT() { + return this.getToken(OracleSqlParser.NESTED_TABLE_FAST_INSERT, 0); + }; + + NESTED_TABLE_GET_REFS() { + return this.getToken(OracleSqlParser.NESTED_TABLE_GET_REFS, 0); + }; + + NESTED_TABLE_ID() { + return this.getToken(OracleSqlParser.NESTED_TABLE_ID, 0); + }; + + NESTED_TABLE_SET_REFS() { + return this.getToken(OracleSqlParser.NESTED_TABLE_SET_REFS, 0); + }; + + NESTED_TABLE_SET_SETID() { + return this.getToken(OracleSqlParser.NESTED_TABLE_SET_SETID, 0); + }; + + NETWORK() { + return this.getToken(OracleSqlParser.NETWORK, 0); + }; + + NEVER() { + return this.getToken(OracleSqlParser.NEVER, 0); + }; + + NEW() { + return this.getToken(OracleSqlParser.NEW, 0); + }; + + NEW_TIME() { + return this.getToken(OracleSqlParser.NEW_TIME, 0); + }; + + NEXT_DAY() { + return this.getToken(OracleSqlParser.NEXT_DAY, 0); + }; + + NEXT() { + return this.getToken(OracleSqlParser.NEXT, 0); + }; + + NL_AJ() { + return this.getToken(OracleSqlParser.NL_AJ, 0); + }; + + NLJ_BATCHING() { + return this.getToken(OracleSqlParser.NLJ_BATCHING, 0); + }; + + NLJ_INDEX_FILTER() { + return this.getToken(OracleSqlParser.NLJ_INDEX_FILTER, 0); + }; + + NLJ_INDEX_SCAN() { + return this.getToken(OracleSqlParser.NLJ_INDEX_SCAN, 0); + }; + + NLJ_PREFETCH() { + return this.getToken(OracleSqlParser.NLJ_PREFETCH, 0); + }; + + NLS_CALENDAR() { + return this.getToken(OracleSqlParser.NLS_CALENDAR, 0); + }; + + NLS_CHARACTERSET() { + return this.getToken(OracleSqlParser.NLS_CHARACTERSET, 0); + }; + + NLS_CHARSET_DECL_LEN() { + return this.getToken(OracleSqlParser.NLS_CHARSET_DECL_LEN, 0); + }; + + NLS_CHARSET_ID() { + return this.getToken(OracleSqlParser.NLS_CHARSET_ID, 0); + }; + + NLS_CHARSET_NAME() { + return this.getToken(OracleSqlParser.NLS_CHARSET_NAME, 0); + }; + + NLS_COMP() { + return this.getToken(OracleSqlParser.NLS_COMP, 0); + }; + + NLS_CURRENCY() { + return this.getToken(OracleSqlParser.NLS_CURRENCY, 0); + }; + + NLS_DATE_FORMAT() { + return this.getToken(OracleSqlParser.NLS_DATE_FORMAT, 0); + }; + + NLS_DATE_LANGUAGE() { + return this.getToken(OracleSqlParser.NLS_DATE_LANGUAGE, 0); + }; + + NLS_INITCAP() { + return this.getToken(OracleSqlParser.NLS_INITCAP, 0); + }; + + NLS_ISO_CURRENCY() { + return this.getToken(OracleSqlParser.NLS_ISO_CURRENCY, 0); + }; + + NL_SJ() { + return this.getToken(OracleSqlParser.NL_SJ, 0); + }; + + NLS_LANG() { + return this.getToken(OracleSqlParser.NLS_LANG, 0); + }; + + NLS_LANGUAGE() { + return this.getToken(OracleSqlParser.NLS_LANGUAGE, 0); + }; + + NLS_LENGTH_SEMANTICS() { + return this.getToken(OracleSqlParser.NLS_LENGTH_SEMANTICS, 0); + }; + + NLS_LOWER() { + return this.getToken(OracleSqlParser.NLS_LOWER, 0); + }; + + NLS_NCHAR_CONV_EXCP() { + return this.getToken(OracleSqlParser.NLS_NCHAR_CONV_EXCP, 0); + }; + + NLS_NUMERIC_CHARACTERS() { + return this.getToken(OracleSqlParser.NLS_NUMERIC_CHARACTERS, 0); + }; + + NLS_SORT() { + return this.getToken(OracleSqlParser.NLS_SORT, 0); + }; + + NLSSORT() { + return this.getToken(OracleSqlParser.NLSSORT, 0); + }; + + NLS_SPECIAL_CHARS() { + return this.getToken(OracleSqlParser.NLS_SPECIAL_CHARS, 0); + }; + + NLS_TERRITORY() { + return this.getToken(OracleSqlParser.NLS_TERRITORY, 0); + }; + + NLS_UPPER() { + return this.getToken(OracleSqlParser.NLS_UPPER, 0); + }; + + NO_ACCESS() { + return this.getToken(OracleSqlParser.NO_ACCESS, 0); + }; + + NOAPPEND() { + return this.getToken(OracleSqlParser.NOAPPEND, 0); + }; + + NOARCHIVELOG() { + return this.getToken(OracleSqlParser.NOARCHIVELOG, 0); + }; + + NOAUDIT() { + return this.getToken(OracleSqlParser.NOAUDIT, 0); + }; + + NO_BASETABLE_MULTIMV_REWRITE() { + return this.getToken(OracleSqlParser.NO_BASETABLE_MULTIMV_REWRITE, 0); + }; + + NO_BIND_AWARE() { + return this.getToken(OracleSqlParser.NO_BIND_AWARE, 0); + }; + + NO_BUFFER() { + return this.getToken(OracleSqlParser.NO_BUFFER, 0); + }; + + NOCACHE() { + return this.getToken(OracleSqlParser.NOCACHE, 0); + }; + + NO_CARTESIAN() { + return this.getToken(OracleSqlParser.NO_CARTESIAN, 0); + }; + + NO_CHECK_ACL_REWRITE() { + return this.getToken(OracleSqlParser.NO_CHECK_ACL_REWRITE, 0); + }; + + NO_CLUSTER_BY_ROWID() { + return this.getToken(OracleSqlParser.NO_CLUSTER_BY_ROWID, 0); + }; + + NO_COALESCE_SQ() { + return this.getToken(OracleSqlParser.NO_COALESCE_SQ, 0); + }; + + NO_CONNECT_BY_CB_WHR_ONLY() { + return this.getToken(OracleSqlParser.NO_CONNECT_BY_CB_WHR_ONLY, 0); + }; + + NO_CONNECT_BY_COMBINE_SW() { + return this.getToken(OracleSqlParser.NO_CONNECT_BY_COMBINE_SW, 0); + }; + + NO_CONNECT_BY_COST_BASED() { + return this.getToken(OracleSqlParser.NO_CONNECT_BY_COST_BASED, 0); + }; + + NO_CONNECT_BY_ELIM_DUPS() { + return this.getToken(OracleSqlParser.NO_CONNECT_BY_ELIM_DUPS, 0); + }; + + NO_CONNECT_BY_FILTERING() { + return this.getToken(OracleSqlParser.NO_CONNECT_BY_FILTERING, 0); + }; + + NO_COST_XML_QUERY_REWRITE() { + return this.getToken(OracleSqlParser.NO_COST_XML_QUERY_REWRITE, 0); + }; + + NO_CPU_COSTING() { + return this.getToken(OracleSqlParser.NO_CPU_COSTING, 0); + }; + + NOCPU_COSTING() { + return this.getToken(OracleSqlParser.NOCPU_COSTING, 0); + }; + + NOCYCLE() { + return this.getToken(OracleSqlParser.NOCYCLE, 0); + }; + + NODELAY() { + return this.getToken(OracleSqlParser.NODELAY, 0); + }; + + NO_DOMAIN_INDEX_FILTER() { + return this.getToken(OracleSqlParser.NO_DOMAIN_INDEX_FILTER, 0); + }; + + NO_DST_UPGRADE_INSERT_CONV() { + return this.getToken(OracleSqlParser.NO_DST_UPGRADE_INSERT_CONV, 0); + }; + + NO_ELIMINATE_JOIN() { + return this.getToken(OracleSqlParser.NO_ELIMINATE_JOIN, 0); + }; + + NO_ELIMINATE_OBY() { + return this.getToken(OracleSqlParser.NO_ELIMINATE_OBY, 0); + }; + + NO_ELIMINATE_OUTER_JOIN() { + return this.getToken(OracleSqlParser.NO_ELIMINATE_OUTER_JOIN, 0); + }; + + NOENTITYESCAPING() { + return this.getToken(OracleSqlParser.NOENTITYESCAPING, 0); + }; + + NO_EXPAND_GSET_TO_UNION() { + return this.getToken(OracleSqlParser.NO_EXPAND_GSET_TO_UNION, 0); + }; + + NO_EXPAND() { + return this.getToken(OracleSqlParser.NO_EXPAND, 0); + }; + + NO_EXPAND_TABLE() { + return this.getToken(OracleSqlParser.NO_EXPAND_TABLE, 0); + }; + + NO_FACT() { + return this.getToken(OracleSqlParser.NO_FACT, 0); + }; + + NO_FACTORIZE_JOIN() { + return this.getToken(OracleSqlParser.NO_FACTORIZE_JOIN, 0); + }; + + NO_FILTERING() { + return this.getToken(OracleSqlParser.NO_FILTERING, 0); + }; + + NOFORCE() { + return this.getToken(OracleSqlParser.NOFORCE, 0); + }; + + NO_FULL_OUTER_JOIN_TO_OUTER() { + return this.getToken(OracleSqlParser.NO_FULL_OUTER_JOIN_TO_OUTER, 0); + }; + + NO_GBY_PUSHDOWN() { + return this.getToken(OracleSqlParser.NO_GBY_PUSHDOWN, 0); + }; + + NOGUARANTEE() { + return this.getToken(OracleSqlParser.NOGUARANTEE, 0); + }; + + NO_INDEX_FFS() { + return this.getToken(OracleSqlParser.NO_INDEX_FFS, 0); + }; + + NO_INDEX() { + return this.getToken(OracleSqlParser.NO_INDEX, 0); + }; + + NO_INDEX_SS() { + return this.getToken(OracleSqlParser.NO_INDEX_SS, 0); + }; + + NO_LOAD() { + return this.getToken(OracleSqlParser.NO_LOAD, 0); + }; + + NOLOCAL() { + return this.getToken(OracleSqlParser.NOLOCAL, 0); + }; + + NOLOGGING() { + return this.getToken(OracleSqlParser.NOLOGGING, 0); + }; + + NOMAPPING() { + return this.getToken(OracleSqlParser.NOMAPPING, 0); + }; + + NOMAXVALUE() { + return this.getToken(OracleSqlParser.NOMAXVALUE, 0); + }; + + NO_MERGE() { + return this.getToken(OracleSqlParser.NO_MERGE, 0); + }; + + NOMINIMIZE() { + return this.getToken(OracleSqlParser.NOMINIMIZE, 0); + }; + + NOMINVALUE() { + return this.getToken(OracleSqlParser.NOMINVALUE, 0); + }; + + NO_MODEL_PUSH_REF() { + return this.getToken(OracleSqlParser.NO_MODEL_PUSH_REF, 0); + }; + + NO_MONITORING() { + return this.getToken(OracleSqlParser.NO_MONITORING, 0); + }; + + NOMONITORING() { + return this.getToken(OracleSqlParser.NOMONITORING, 0); + }; + + NO_MONITOR() { + return this.getToken(OracleSqlParser.NO_MONITOR, 0); + }; + + NO_MULTIMV_REWRITE() { + return this.getToken(OracleSqlParser.NO_MULTIMV_REWRITE, 0); + }; + + NO() { + return this.getToken(OracleSqlParser.NO, 0); + }; + + NO_NATIVE_FULL_OUTER_JOIN() { + return this.getToken(OracleSqlParser.NO_NATIVE_FULL_OUTER_JOIN, 0); + }; + + NONBLOCKING() { + return this.getToken(OracleSqlParser.NONBLOCKING, 0); + }; + + NONE() { + return this.getToken(OracleSqlParser.NONE, 0); + }; + + NO_NLJ_BATCHING() { + return this.getToken(OracleSqlParser.NO_NLJ_BATCHING, 0); + }; + + NO_NLJ_PREFETCH() { + return this.getToken(OracleSqlParser.NO_NLJ_PREFETCH, 0); + }; + + NONSCHEMA() { + return this.getToken(OracleSqlParser.NONSCHEMA, 0); + }; + + NOORDER() { + return this.getToken(OracleSqlParser.NOORDER, 0); + }; + + NO_ORDER_ROLLUPS() { + return this.getToken(OracleSqlParser.NO_ORDER_ROLLUPS, 0); + }; + + NO_OUTER_JOIN_TO_ANTI() { + return this.getToken(OracleSqlParser.NO_OUTER_JOIN_TO_ANTI, 0); + }; + + NO_OUTER_JOIN_TO_INNER() { + return this.getToken(OracleSqlParser.NO_OUTER_JOIN_TO_INNER, 0); + }; + + NOOVERRIDE() { + return this.getToken(OracleSqlParser.NOOVERRIDE, 0); + }; + + NO_PARALLEL_INDEX() { + return this.getToken(OracleSqlParser.NO_PARALLEL_INDEX, 0); + }; + + NOPARALLEL_INDEX() { + return this.getToken(OracleSqlParser.NOPARALLEL_INDEX, 0); + }; + + NO_PARALLEL() { + return this.getToken(OracleSqlParser.NO_PARALLEL, 0); + }; + + NOPARALLEL() { + return this.getToken(OracleSqlParser.NOPARALLEL, 0); + }; + + NO_PARTIAL_COMMIT() { + return this.getToken(OracleSqlParser.NO_PARTIAL_COMMIT, 0); + }; + + NO_PLACE_DISTINCT() { + return this.getToken(OracleSqlParser.NO_PLACE_DISTINCT, 0); + }; + + NO_PLACE_GROUP_BY() { + return this.getToken(OracleSqlParser.NO_PLACE_GROUP_BY, 0); + }; + + NO_PQ_MAP() { + return this.getToken(OracleSqlParser.NO_PQ_MAP, 0); + }; + + NO_PRUNE_GSETS() { + return this.getToken(OracleSqlParser.NO_PRUNE_GSETS, 0); + }; + + NO_PULL_PRED() { + return this.getToken(OracleSqlParser.NO_PULL_PRED, 0); + }; + + NO_PUSH_PRED() { + return this.getToken(OracleSqlParser.NO_PUSH_PRED, 0); + }; + + NO_PUSH_SUBQ() { + return this.getToken(OracleSqlParser.NO_PUSH_SUBQ, 0); + }; + + NO_PX_JOIN_FILTER() { + return this.getToken(OracleSqlParser.NO_PX_JOIN_FILTER, 0); + }; + + NO_QKN_BUFF() { + return this.getToken(OracleSqlParser.NO_QKN_BUFF, 0); + }; + + NO_QUERY_TRANSFORMATION() { + return this.getToken(OracleSqlParser.NO_QUERY_TRANSFORMATION, 0); + }; + + NO_REF_CASCADE() { + return this.getToken(OracleSqlParser.NO_REF_CASCADE, 0); + }; + + NORELY() { + return this.getToken(OracleSqlParser.NORELY, 0); + }; + + NOREPAIR() { + return this.getToken(OracleSqlParser.NOREPAIR, 0); + }; + + NORESETLOGS() { + return this.getToken(OracleSqlParser.NORESETLOGS, 0); + }; + + NO_RESULT_CACHE() { + return this.getToken(OracleSqlParser.NO_RESULT_CACHE, 0); + }; + + NOREVERSE() { + return this.getToken(OracleSqlParser.NOREVERSE, 0); + }; + + NO_REWRITE() { + return this.getToken(OracleSqlParser.NO_REWRITE, 0); + }; + + NOREWRITE() { + return this.getToken(OracleSqlParser.NOREWRITE, 0); + }; + + NORMAL() { + return this.getToken(OracleSqlParser.NORMAL, 0); + }; + + NOROWDEPENDENCIES() { + return this.getToken(OracleSqlParser.NOROWDEPENDENCIES, 0); + }; + + NOSCHEMACHECK() { + return this.getToken(OracleSqlParser.NOSCHEMACHECK, 0); + }; + + NOSEGMENT() { + return this.getToken(OracleSqlParser.NOSEGMENT, 0); + }; + + NO_SEMIJOIN() { + return this.getToken(OracleSqlParser.NO_SEMIJOIN, 0); + }; + + NO_SEMI_TO_INNER() { + return this.getToken(OracleSqlParser.NO_SEMI_TO_INNER, 0); + }; + + NO_SET_TO_JOIN() { + return this.getToken(OracleSqlParser.NO_SET_TO_JOIN, 0); + }; + + NOSORT() { + return this.getToken(OracleSqlParser.NOSORT, 0); + }; + + NO_SQL_TUNE() { + return this.getToken(OracleSqlParser.NO_SQL_TUNE, 0); + }; + + NO_STAR_TRANSFORMATION() { + return this.getToken(OracleSqlParser.NO_STAR_TRANSFORMATION, 0); + }; + + NO_STATEMENT_QUEUING() { + return this.getToken(OracleSqlParser.NO_STATEMENT_QUEUING, 0); + }; + + NO_STATS_GSETS() { + return this.getToken(OracleSqlParser.NO_STATS_GSETS, 0); + }; + + NOSTRICT() { + return this.getToken(OracleSqlParser.NOSTRICT, 0); + }; + + NO_SUBQUERY_PRUNING() { + return this.getToken(OracleSqlParser.NO_SUBQUERY_PRUNING, 0); + }; + + NO_SUBSTRB_PAD() { + return this.getToken(OracleSqlParser.NO_SUBSTRB_PAD, 0); + }; + + NO_SWAP_JOIN_INPUTS() { + return this.getToken(OracleSqlParser.NO_SWAP_JOIN_INPUTS, 0); + }; + + NOSWITCH() { + return this.getToken(OracleSqlParser.NOSWITCH, 0); + }; + + NO_TABLE_LOOKUP_BY_NL() { + return this.getToken(OracleSqlParser.NO_TABLE_LOOKUP_BY_NL, 0); + }; + + NO_TEMP_TABLE() { + return this.getToken(OracleSqlParser.NO_TEMP_TABLE, 0); + }; + + NOTHING() { + return this.getToken(OracleSqlParser.NOTHING, 0); + }; + + NOTIFICATION() { + return this.getToken(OracleSqlParser.NOTIFICATION, 0); + }; + + NO_TRANSFORM_DISTINCT_AGG() { + return this.getToken(OracleSqlParser.NO_TRANSFORM_DISTINCT_AGG, 0); + }; + + NO_UNNEST() { + return this.getToken(OracleSqlParser.NO_UNNEST, 0); + }; + + NO_USE_HASH_AGGREGATION() { + return this.getToken(OracleSqlParser.NO_USE_HASH_AGGREGATION, 0); + }; + + NO_USE_HASH_GBY_FOR_PUSHDOWN() { + return this.getToken(OracleSqlParser.NO_USE_HASH_GBY_FOR_PUSHDOWN, 0); + }; + + NO_USE_HASH() { + return this.getToken(OracleSqlParser.NO_USE_HASH, 0); + }; + + NO_USE_INVISIBLE_INDEXES() { + return this.getToken(OracleSqlParser.NO_USE_INVISIBLE_INDEXES, 0); + }; + + NO_USE_MERGE() { + return this.getToken(OracleSqlParser.NO_USE_MERGE, 0); + }; + + NO_USE_NL() { + return this.getToken(OracleSqlParser.NO_USE_NL, 0); + }; + + NOVALIDATE() { + return this.getToken(OracleSqlParser.NOVALIDATE, 0); + }; + + NO_XDB_FASTPATH_INSERT() { + return this.getToken(OracleSqlParser.NO_XDB_FASTPATH_INSERT, 0); + }; + + NO_XML_DML_REWRITE() { + return this.getToken(OracleSqlParser.NO_XML_DML_REWRITE, 0); + }; + + NO_XMLINDEX_REWRITE_IN_SELECT() { + return this.getToken(OracleSqlParser.NO_XMLINDEX_REWRITE_IN_SELECT, 0); + }; + + NO_XMLINDEX_REWRITE() { + return this.getToken(OracleSqlParser.NO_XMLINDEX_REWRITE, 0); + }; + + NO_XML_QUERY_REWRITE() { + return this.getToken(OracleSqlParser.NO_XML_QUERY_REWRITE, 0); + }; + + NTH_VALUE() { + return this.getToken(OracleSqlParser.NTH_VALUE, 0); + }; + + NTILE() { + return this.getToken(OracleSqlParser.NTILE, 0); + }; + + NULLIF() { + return this.getToken(OracleSqlParser.NULLIF, 0); + }; + + NULLS() { + return this.getToken(OracleSqlParser.NULLS, 0); + }; + + NUMERIC() { + return this.getToken(OracleSqlParser.NUMERIC, 0); + }; + + NUM_INDEX_KEYS() { + return this.getToken(OracleSqlParser.NUM_INDEX_KEYS, 0); + }; + + NUMTODSINTERVAL() { + return this.getToken(OracleSqlParser.NUMTODSINTERVAL, 0); + }; + + NUMTOYMINTERVAL() { + return this.getToken(OracleSqlParser.NUMTOYMINTERVAL, 0); + }; + + NVARCHAR2() { + return this.getToken(OracleSqlParser.NVARCHAR2, 0); + }; + + NVL2() { + return this.getToken(OracleSqlParser.NVL2, 0); + }; + + NVL() { + return this.getToken(OracleSqlParser.NVL, 0); + }; + + OBJECT2XML() { + return this.getToken(OracleSqlParser.OBJECT2XML, 0); + }; + + OBJECT() { + return this.getToken(OracleSqlParser.OBJECT, 0); + }; + + OBJNO() { + return this.getToken(OracleSqlParser.OBJNO, 0); + }; + + OBJNO_REUSE() { + return this.getToken(OracleSqlParser.OBJNO_REUSE, 0); + }; + + OCCURENCES() { + return this.getToken(OracleSqlParser.OCCURENCES, 0); + }; + + OFFLINE() { + return this.getToken(OracleSqlParser.OFFLINE, 0); + }; + + OFF() { + return this.getToken(OracleSqlParser.OFF, 0); + }; + + OIDINDEX() { + return this.getToken(OracleSqlParser.OIDINDEX, 0); + }; + + OID() { + return this.getToken(OracleSqlParser.OID, 0); + }; + + OLAP() { + return this.getToken(OracleSqlParser.OLAP, 0); + }; + + OLD() { + return this.getToken(OracleSqlParser.OLD, 0); + }; + + OLD_PUSH_PRED() { + return this.getToken(OracleSqlParser.OLD_PUSH_PRED, 0); + }; + + OLTP() { + return this.getToken(OracleSqlParser.OLTP, 0); + }; + + ONLINE() { + return this.getToken(OracleSqlParser.ONLINE, 0); + }; + + ONLY() { + return this.getToken(OracleSqlParser.ONLY, 0); + }; + + OPAQUE() { + return this.getToken(OracleSqlParser.OPAQUE, 0); + }; + + OPAQUE_TRANSFORM() { + return this.getToken(OracleSqlParser.OPAQUE_TRANSFORM, 0); + }; + + OPAQUE_XCANONICAL() { + return this.getToken(OracleSqlParser.OPAQUE_XCANONICAL, 0); + }; + + OPCODE() { + return this.getToken(OracleSqlParser.OPCODE, 0); + }; + + OPEN() { + return this.getToken(OracleSqlParser.OPEN, 0); + }; + + OPERATIONS() { + return this.getToken(OracleSqlParser.OPERATIONS, 0); + }; + + OPERATOR() { + return this.getToken(OracleSqlParser.OPERATOR, 0); + }; + + OPT_ESTIMATE() { + return this.getToken(OracleSqlParser.OPT_ESTIMATE, 0); + }; + + OPTIMAL() { + return this.getToken(OracleSqlParser.OPTIMAL, 0); + }; + + OPTIMIZE() { + return this.getToken(OracleSqlParser.OPTIMIZE, 0); + }; + + OPTIMIZER_FEATURES_ENABLE() { + return this.getToken(OracleSqlParser.OPTIMIZER_FEATURES_ENABLE, 0); + }; + + OPTIMIZER_GOAL() { + return this.getToken(OracleSqlParser.OPTIMIZER_GOAL, 0); + }; + + OPT_PARAM() { + return this.getToken(OracleSqlParser.OPT_PARAM, 0); + }; + + ORA_BRANCH() { + return this.getToken(OracleSqlParser.ORA_BRANCH, 0); + }; + + ORADEBUG() { + return this.getToken(OracleSqlParser.ORADEBUG, 0); + }; + + ORA_DST_AFFECTED() { + return this.getToken(OracleSqlParser.ORA_DST_AFFECTED, 0); + }; + + ORA_DST_CONVERT() { + return this.getToken(OracleSqlParser.ORA_DST_CONVERT, 0); + }; + + ORA_DST_ERROR() { + return this.getToken(OracleSqlParser.ORA_DST_ERROR, 0); + }; + + ORA_GET_ACLIDS() { + return this.getToken(OracleSqlParser.ORA_GET_ACLIDS, 0); + }; + + ORA_GET_PRIVILEGES() { + return this.getToken(OracleSqlParser.ORA_GET_PRIVILEGES, 0); + }; + + ORA_HASH() { + return this.getToken(OracleSqlParser.ORA_HASH, 0); + }; + + ORA_ROWSCN() { + return this.getToken(OracleSqlParser.ORA_ROWSCN, 0); + }; + + ORA_ROWSCN_RAW() { + return this.getToken(OracleSqlParser.ORA_ROWSCN_RAW, 0); + }; + + ORA_ROWVERSION() { + return this.getToken(OracleSqlParser.ORA_ROWVERSION, 0); + }; + + ORA_TABVERSION() { + return this.getToken(OracleSqlParser.ORA_TABVERSION, 0); + }; + + ORDERED() { + return this.getToken(OracleSqlParser.ORDERED, 0); + }; + + ORDERED_PREDICATES() { + return this.getToken(OracleSqlParser.ORDERED_PREDICATES, 0); + }; + + ORDINALITY() { + return this.getToken(OracleSqlParser.ORDINALITY, 0); + }; + + OR_EXPAND() { + return this.getToken(OracleSqlParser.OR_EXPAND, 0); + }; + + ORGANIZATION() { + return this.getToken(OracleSqlParser.ORGANIZATION, 0); + }; + + OR_PREDICATES() { + return this.getToken(OracleSqlParser.OR_PREDICATES, 0); + }; + + OTHER() { + return this.getToken(OracleSqlParser.OTHER, 0); + }; + + OUTER_JOIN_TO_ANTI() { + return this.getToken(OracleSqlParser.OUTER_JOIN_TO_ANTI, 0); + }; + + OUTER_JOIN_TO_INNER() { + return this.getToken(OracleSqlParser.OUTER_JOIN_TO_INNER, 0); + }; + + OUTER() { + return this.getToken(OracleSqlParser.OUTER, 0); + }; + + OUTLINE_LEAF() { + return this.getToken(OracleSqlParser.OUTLINE_LEAF, 0); + }; + + OUTLINE() { + return this.getToken(OracleSqlParser.OUTLINE, 0); + }; + + OUT_OF_LINE() { + return this.getToken(OracleSqlParser.OUT_OF_LINE, 0); + }; + + OVERFLOW_() { + return this.getToken(OracleSqlParser.OVERFLOW_, 0); + }; + + OVERFLOW_NOMOVE() { + return this.getToken(OracleSqlParser.OVERFLOW_NOMOVE, 0); + }; + + OVERLAPS() { + return this.getToken(OracleSqlParser.OVERLAPS, 0); + }; + + OVER() { + return this.getToken(OracleSqlParser.OVER, 0); + }; + + OWNER() { + return this.getToken(OracleSqlParser.OWNER, 0); + }; + + OWNERSHIP() { + return this.getToken(OracleSqlParser.OWNERSHIP, 0); + }; + + OWN() { + return this.getToken(OracleSqlParser.OWN, 0); + }; + + PACKAGE() { + return this.getToken(OracleSqlParser.PACKAGE, 0); + }; + + PACKAGES() { + return this.getToken(OracleSqlParser.PACKAGES, 0); + }; + + PARALLEL_INDEX() { + return this.getToken(OracleSqlParser.PARALLEL_INDEX, 0); + }; + + PARALLEL() { + return this.getToken(OracleSqlParser.PARALLEL, 0); + }; + + PARAMETERS() { + return this.getToken(OracleSqlParser.PARAMETERS, 0); + }; + + PARAM() { + return this.getToken(OracleSqlParser.PARAM, 0); + }; + + PARENT() { + return this.getToken(OracleSqlParser.PARENT, 0); + }; + + PARITY() { + return this.getToken(OracleSqlParser.PARITY, 0); + }; + + PARTIALLY() { + return this.getToken(OracleSqlParser.PARTIALLY, 0); + }; + + PARTITION_HASH() { + return this.getToken(OracleSqlParser.PARTITION_HASH, 0); + }; + + PARTITION_LIST() { + return this.getToken(OracleSqlParser.PARTITION_LIST, 0); + }; + + PARTITION() { + return this.getToken(OracleSqlParser.PARTITION, 0); + }; + + PARTITION_RANGE() { + return this.getToken(OracleSqlParser.PARTITION_RANGE, 0); + }; + + PARTITIONS() { + return this.getToken(OracleSqlParser.PARTITIONS, 0); + }; + + PARTNUMINST() { + return this.getToken(OracleSqlParser.PARTNUMINST, 0); + }; + + PASSING() { + return this.getToken(OracleSqlParser.PASSING, 0); + }; + + PASSWORD_GRACE_TIME() { + return this.getToken(OracleSqlParser.PASSWORD_GRACE_TIME, 0); + }; + + PASSWORD_LIFE_TIME() { + return this.getToken(OracleSqlParser.PASSWORD_LIFE_TIME, 0); + }; + + PASSWORD_LOCK_TIME() { + return this.getToken(OracleSqlParser.PASSWORD_LOCK_TIME, 0); + }; + + PASSWORD() { + return this.getToken(OracleSqlParser.PASSWORD, 0); + }; + + PASSWORD_REUSE_MAX() { + return this.getToken(OracleSqlParser.PASSWORD_REUSE_MAX, 0); + }; + + PASSWORD_REUSE_TIME() { + return this.getToken(OracleSqlParser.PASSWORD_REUSE_TIME, 0); + }; + + PASSWORD_VERIFY_FUNCTION() { + return this.getToken(OracleSqlParser.PASSWORD_VERIFY_FUNCTION, 0); + }; + + PATH() { + return this.getToken(OracleSqlParser.PATH, 0); + }; + + PATHS() { + return this.getToken(OracleSqlParser.PATHS, 0); + }; + + PBL_HS_BEGIN() { + return this.getToken(OracleSqlParser.PBL_HS_BEGIN, 0); + }; + + PBL_HS_END() { + return this.getToken(OracleSqlParser.PBL_HS_END, 0); + }; + + PCTINCREASE() { + return this.getToken(OracleSqlParser.PCTINCREASE, 0); + }; + + PCTTHRESHOLD() { + return this.getToken(OracleSqlParser.PCTTHRESHOLD, 0); + }; + + PCTUSED() { + return this.getToken(OracleSqlParser.PCTUSED, 0); + }; + + PCTVERSION() { + return this.getToken(OracleSqlParser.PCTVERSION, 0); + }; + + PENDING() { + return this.getToken(OracleSqlParser.PENDING, 0); + }; + + PERCENTILE_CONT() { + return this.getToken(OracleSqlParser.PERCENTILE_CONT, 0); + }; + + PERCENTILE_DISC() { + return this.getToken(OracleSqlParser.PERCENTILE_DISC, 0); + }; + + PERCENT_KEYWORD() { + return this.getToken(OracleSqlParser.PERCENT_KEYWORD, 0); + }; + + PERCENT_RANKM() { + return this.getToken(OracleSqlParser.PERCENT_RANKM, 0); + }; + + PERCENT_RANK() { + return this.getToken(OracleSqlParser.PERCENT_RANK, 0); + }; + + PERFORMANCE() { + return this.getToken(OracleSqlParser.PERFORMANCE, 0); + }; + + PERMANENT() { + return this.getToken(OracleSqlParser.PERMANENT, 0); + }; + + PERMISSION() { + return this.getToken(OracleSqlParser.PERMISSION, 0); + }; + + PFILE() { + return this.getToken(OracleSqlParser.PFILE, 0); + }; + + PHYSICAL() { + return this.getToken(OracleSqlParser.PHYSICAL, 0); + }; + + PIKEY() { + return this.getToken(OracleSqlParser.PIKEY, 0); + }; + + PIV_GB() { + return this.getToken(OracleSqlParser.PIV_GB, 0); + }; + + PIVOT() { + return this.getToken(OracleSqlParser.PIVOT, 0); + }; + + PIV_SSF() { + return this.getToken(OracleSqlParser.PIV_SSF, 0); + }; + + PLACE_DISTINCT() { + return this.getToken(OracleSqlParser.PLACE_DISTINCT, 0); + }; + + PLACE_GROUP_BY() { + return this.getToken(OracleSqlParser.PLACE_GROUP_BY, 0); + }; + + PLAN() { + return this.getToken(OracleSqlParser.PLAN, 0); + }; + + PLSCOPE_SETTINGS() { + return this.getToken(OracleSqlParser.PLSCOPE_SETTINGS, 0); + }; + + PLSQL_CCFLAGS() { + return this.getToken(OracleSqlParser.PLSQL_CCFLAGS, 0); + }; + + PLSQL_CODE_TYPE() { + return this.getToken(OracleSqlParser.PLSQL_CODE_TYPE, 0); + }; + + PLSQL_DEBUG() { + return this.getToken(OracleSqlParser.PLSQL_DEBUG, 0); + }; + + PLSQL_OPTIMIZE_LEVEL() { + return this.getToken(OracleSqlParser.PLSQL_OPTIMIZE_LEVEL, 0); + }; + + PLSQL_WARNINGS() { + return this.getToken(OracleSqlParser.PLSQL_WARNINGS, 0); + }; + + POINT() { + return this.getToken(OracleSqlParser.POINT, 0); + }; + + POLICY() { + return this.getToken(OracleSqlParser.POLICY, 0); + }; + + POST_TRANSACTION() { + return this.getToken(OracleSqlParser.POST_TRANSACTION, 0); + }; + + POWERMULTISET_BY_CARDINALITY() { + return this.getToken(OracleSqlParser.POWERMULTISET_BY_CARDINALITY, 0); + }; + + POWERMULTISET() { + return this.getToken(OracleSqlParser.POWERMULTISET, 0); + }; + + POWER() { + return this.getToken(OracleSqlParser.POWER, 0); + }; + + POSITION() { + return this.getToken(OracleSqlParser.POSITION, 0); + }; + + PQ_DISTRIBUTE() { + return this.getToken(OracleSqlParser.PQ_DISTRIBUTE, 0); + }; + + PQ_MAP() { + return this.getToken(OracleSqlParser.PQ_MAP, 0); + }; + + PQ_NOMAP() { + return this.getToken(OracleSqlParser.PQ_NOMAP, 0); + }; + + PREBUILT() { + return this.getToken(OracleSqlParser.PREBUILT, 0); + }; + + PRECEDES() { + return this.getToken(OracleSqlParser.PRECEDES, 0); + }; + + PRECEDING() { + return this.getToken(OracleSqlParser.PRECEDING, 0); + }; + + PRECISION() { + return this.getToken(OracleSqlParser.PRECISION, 0); + }; + + PRECOMPUTE_SUBQUERY() { + return this.getToken(OracleSqlParser.PRECOMPUTE_SUBQUERY, 0); + }; + + PREDICATE_REORDERS() { + return this.getToken(OracleSqlParser.PREDICATE_REORDERS, 0); + }; + + PREDICTION_BOUNDS() { + return this.getToken(OracleSqlParser.PREDICTION_BOUNDS, 0); + }; + + PREDICTION_COST() { + return this.getToken(OracleSqlParser.PREDICTION_COST, 0); + }; + + PREDICTION_DETAILS() { + return this.getToken(OracleSqlParser.PREDICTION_DETAILS, 0); + }; + + PREDICTION() { + return this.getToken(OracleSqlParser.PREDICTION, 0); + }; + + PREDICTION_PROBABILITY() { + return this.getToken(OracleSqlParser.PREDICTION_PROBABILITY, 0); + }; + + PREDICTION_SET() { + return this.getToken(OracleSqlParser.PREDICTION_SET, 0); + }; + + PREPARE() { + return this.getToken(OracleSqlParser.PREPARE, 0); + }; + + PRESENT() { + return this.getToken(OracleSqlParser.PRESENT, 0); + }; + + PRESENTNNV() { + return this.getToken(OracleSqlParser.PRESENTNNV, 0); + }; + + PRESENTV() { + return this.getToken(OracleSqlParser.PRESENTV, 0); + }; + + PRESERVE() { + return this.getToken(OracleSqlParser.PRESERVE, 0); + }; + + PRESERVE_OID() { + return this.getToken(OracleSqlParser.PRESERVE_OID, 0); + }; + + PREVIOUS() { + return this.getToken(OracleSqlParser.PREVIOUS, 0); + }; + + PRIMARY() { + return this.getToken(OracleSqlParser.PRIMARY, 0); + }; + + PRIVATE() { + return this.getToken(OracleSqlParser.PRIVATE, 0); + }; + + PRIVATE_SGA() { + return this.getToken(OracleSqlParser.PRIVATE_SGA, 0); + }; + + PRIVILEGE() { + return this.getToken(OracleSqlParser.PRIVILEGE, 0); + }; + + PRIVILEGES() { + return this.getToken(OracleSqlParser.PRIVILEGES, 0); + }; + + PROCEDURAL() { + return this.getToken(OracleSqlParser.PROCEDURAL, 0); + }; + + PROCEDURE() { + return this.getToken(OracleSqlParser.PROCEDURE, 0); + }; + + PROCESS() { + return this.getToken(OracleSqlParser.PROCESS, 0); + }; + + PROFILE() { + return this.getToken(OracleSqlParser.PROFILE, 0); + }; + + PROGRAM() { + return this.getToken(OracleSqlParser.PROGRAM, 0); + }; + + PROJECT() { + return this.getToken(OracleSqlParser.PROJECT, 0); + }; + + PROPAGATE() { + return this.getToken(OracleSqlParser.PROPAGATE, 0); + }; + + PROTECTED() { + return this.getToken(OracleSqlParser.PROTECTED, 0); + }; + + PROTECTION() { + return this.getToken(OracleSqlParser.PROTECTION, 0); + }; + + PULL_PRED() { + return this.getToken(OracleSqlParser.PULL_PRED, 0); + }; + + PURGE() { + return this.getToken(OracleSqlParser.PURGE, 0); + }; + + PUSH_PRED() { + return this.getToken(OracleSqlParser.PUSH_PRED, 0); + }; + + PUSH_SUBQ() { + return this.getToken(OracleSqlParser.PUSH_SUBQ, 0); + }; + + PX_GRANULE() { + return this.getToken(OracleSqlParser.PX_GRANULE, 0); + }; + + PX_JOIN_FILTER() { + return this.getToken(OracleSqlParser.PX_JOIN_FILTER, 0); + }; + + QB_NAME() { + return this.getToken(OracleSqlParser.QB_NAME, 0); + }; + + QUERY_BLOCK() { + return this.getToken(OracleSqlParser.QUERY_BLOCK, 0); + }; + + QUERY() { + return this.getToken(OracleSqlParser.QUERY, 0); + }; + + QUEUE_CURR() { + return this.getToken(OracleSqlParser.QUEUE_CURR, 0); + }; + + QUEUE() { + return this.getToken(OracleSqlParser.QUEUE, 0); + }; + + QUEUE_ROWP() { + return this.getToken(OracleSqlParser.QUEUE_ROWP, 0); + }; + + QUIESCE() { + return this.getToken(OracleSqlParser.QUIESCE, 0); + }; + + QUORUM() { + return this.getToken(OracleSqlParser.QUORUM, 0); + }; + + QUOTA() { + return this.getToken(OracleSqlParser.QUOTA, 0); + }; + + RANDOM_LOCAL() { + return this.getToken(OracleSqlParser.RANDOM_LOCAL, 0); + }; + + RANDOM() { + return this.getToken(OracleSqlParser.RANDOM, 0); + }; + + RANGE() { + return this.getToken(OracleSqlParser.RANGE, 0); + }; + + RANKM() { + return this.getToken(OracleSqlParser.RANKM, 0); + }; + + RANK() { + return this.getToken(OracleSqlParser.RANK, 0); + }; + + RAPIDLY() { + return this.getToken(OracleSqlParser.RAPIDLY, 0); + }; + + RATIO_TO_REPORT() { + return this.getToken(OracleSqlParser.RATIO_TO_REPORT, 0); + }; + + RAWTOHEX() { + return this.getToken(OracleSqlParser.RAWTOHEX, 0); + }; + + RAWTONHEX() { + return this.getToken(OracleSqlParser.RAWTONHEX, 0); + }; + + RBA() { + return this.getToken(OracleSqlParser.RBA, 0); + }; + + RBO_OUTLINE() { + return this.getToken(OracleSqlParser.RBO_OUTLINE, 0); + }; + + RDBA() { + return this.getToken(OracleSqlParser.RDBA, 0); + }; + + READ() { + return this.getToken(OracleSqlParser.READ, 0); + }; + + READS() { + return this.getToken(OracleSqlParser.READS, 0); + }; + + REAL() { + return this.getToken(OracleSqlParser.REAL, 0); + }; + + REBALANCE() { + return this.getToken(OracleSqlParser.REBALANCE, 0); + }; + + REBUILD() { + return this.getToken(OracleSqlParser.REBUILD, 0); + }; + + RECORDS_PER_BLOCK() { + return this.getToken(OracleSqlParser.RECORDS_PER_BLOCK, 0); + }; + + RECOVERABLE() { + return this.getToken(OracleSqlParser.RECOVERABLE, 0); + }; + + RECOVER() { + return this.getToken(OracleSqlParser.RECOVER, 0); + }; + + RECOVERY() { + return this.getToken(OracleSqlParser.RECOVERY, 0); + }; + + RECYCLEBIN() { + return this.getToken(OracleSqlParser.RECYCLEBIN, 0); + }; + + RECYCLE() { + return this.getToken(OracleSqlParser.RECYCLE, 0); + }; + + REDACTION() { + return this.getToken(OracleSqlParser.REDACTION, 0); + }; + + REDO() { + return this.getToken(OracleSqlParser.REDO, 0); + }; + + REDUCED() { + return this.getToken(OracleSqlParser.REDUCED, 0); + }; + + REDUNDANCY() { + return this.getToken(OracleSqlParser.REDUNDANCY, 0); + }; + + REF_CASCADE_CURSOR() { + return this.getToken(OracleSqlParser.REF_CASCADE_CURSOR, 0); + }; + + REFERENCED() { + return this.getToken(OracleSqlParser.REFERENCED, 0); + }; + + REFERENCE() { + return this.getToken(OracleSqlParser.REFERENCE, 0); + }; + + REFERENCES() { + return this.getToken(OracleSqlParser.REFERENCES, 0); + }; + + REFERENCING() { + return this.getToken(OracleSqlParser.REFERENCING, 0); + }; + + REF() { + return this.getToken(OracleSqlParser.REF, 0); + }; + + REFRESH() { + return this.getToken(OracleSqlParser.REFRESH, 0); + }; + + REFTOHEX() { + return this.getToken(OracleSqlParser.REFTOHEX, 0); + }; + + REGEXP_COUNT() { + return this.getToken(OracleSqlParser.REGEXP_COUNT, 0); + }; + + REGEXP_INSTR() { + return this.getToken(OracleSqlParser.REGEXP_INSTR, 0); + }; + + REGEXP_LIKE() { + return this.getToken(OracleSqlParser.REGEXP_LIKE, 0); + }; + + REGEXP_REPLACE() { + return this.getToken(OracleSqlParser.REGEXP_REPLACE, 0); + }; + + REGEXP_SUBSTR() { + return this.getToken(OracleSqlParser.REGEXP_SUBSTR, 0); + }; + + REGISTER() { + return this.getToken(OracleSqlParser.REGISTER, 0); + }; + + REGR_AVGX() { + return this.getToken(OracleSqlParser.REGR_AVGX, 0); + }; + + REGR_AVGY() { + return this.getToken(OracleSqlParser.REGR_AVGY, 0); + }; + + REGR_COUNT() { + return this.getToken(OracleSqlParser.REGR_COUNT, 0); + }; + + REGR_INTERCEPT() { + return this.getToken(OracleSqlParser.REGR_INTERCEPT, 0); + }; + + REGR_R2() { + return this.getToken(OracleSqlParser.REGR_R2, 0); + }; + + REGR_SLOPE() { + return this.getToken(OracleSqlParser.REGR_SLOPE, 0); + }; + + REGR_SXX() { + return this.getToken(OracleSqlParser.REGR_SXX, 0); + }; + + REGR_SXY() { + return this.getToken(OracleSqlParser.REGR_SXY, 0); + }; + + REGR_SYY() { + return this.getToken(OracleSqlParser.REGR_SYY, 0); + }; + + REGULAR() { + return this.getToken(OracleSqlParser.REGULAR, 0); + }; + + REJECT() { + return this.getToken(OracleSqlParser.REJECT, 0); + }; + + REKEY() { + return this.getToken(OracleSqlParser.REKEY, 0); + }; + + RELATIONAL() { + return this.getToken(OracleSqlParser.RELATIONAL, 0); + }; + + RELY() { + return this.getToken(OracleSqlParser.RELY, 0); + }; + + REMAINDER() { + return this.getToken(OracleSqlParser.REMAINDER, 0); + }; + + REMOTE_MAPPED() { + return this.getToken(OracleSqlParser.REMOTE_MAPPED, 0); + }; + + REMOVE() { + return this.getToken(OracleSqlParser.REMOVE, 0); + }; + + REPAIR() { + return this.getToken(OracleSqlParser.REPAIR, 0); + }; + + REPEAT() { + return this.getToken(OracleSqlParser.REPEAT, 0); + }; + + REPLACE() { + return this.getToken(OracleSqlParser.REPLACE, 0); + }; + + REPLICATION() { + return this.getToken(OracleSqlParser.REPLICATION, 0); + }; + + REQUIRED() { + return this.getToken(OracleSqlParser.REQUIRED, 0); + }; + + RESETLOGS() { + return this.getToken(OracleSqlParser.RESETLOGS, 0); + }; + + RESET() { + return this.getToken(OracleSqlParser.RESET, 0); + }; + + RESIZE() { + return this.getToken(OracleSqlParser.RESIZE, 0); + }; + + RESOLVE() { + return this.getToken(OracleSqlParser.RESOLVE, 0); + }; + + RESOLVER() { + return this.getToken(OracleSqlParser.RESOLVER, 0); + }; + + RESPECT() { + return this.getToken(OracleSqlParser.RESPECT, 0); + }; + + RESTORE_AS_INTERVALS() { + return this.getToken(OracleSqlParser.RESTORE_AS_INTERVALS, 0); + }; + + RESTORE() { + return this.getToken(OracleSqlParser.RESTORE, 0); + }; + + RESTRICT_ALL_REF_CONS() { + return this.getToken(OracleSqlParser.RESTRICT_ALL_REF_CONS, 0); + }; + + RESTRICTED() { + return this.getToken(OracleSqlParser.RESTRICTED, 0); + }; + + RESTRICT() { + return this.getToken(OracleSqlParser.RESTRICT, 0); + }; + + RESULT_CACHE() { + return this.getToken(OracleSqlParser.RESULT_CACHE, 0); + }; + + RESUMABLE() { + return this.getToken(OracleSqlParser.RESUMABLE, 0); + }; + + RESUME() { + return this.getToken(OracleSqlParser.RESUME, 0); + }; + + RETENTION() { + return this.getToken(OracleSqlParser.RETENTION, 0); + }; + + RETRY_ON_ROW_CHANGE() { + return this.getToken(OracleSqlParser.RETRY_ON_ROW_CHANGE, 0); + }; + + RETURNING() { + return this.getToken(OracleSqlParser.RETURNING, 0); + }; + + RETURN() { + return this.getToken(OracleSqlParser.RETURN, 0); + }; + + REUSE() { + return this.getToken(OracleSqlParser.REUSE, 0); + }; + + REVERSE() { + return this.getToken(OracleSqlParser.REVERSE, 0); + }; + + REWRITE() { + return this.getToken(OracleSqlParser.REWRITE, 0); + }; + + REWRITE_OR_ERROR() { + return this.getToken(OracleSqlParser.REWRITE_OR_ERROR, 0); + }; + + RIGHT() { + return this.getToken(OracleSqlParser.RIGHT, 0); + }; + + ROLE() { + return this.getToken(OracleSqlParser.ROLE, 0); + }; + + ROLES() { + return this.getToken(OracleSqlParser.ROLES, 0); + }; + + ROLLBACK() { + return this.getToken(OracleSqlParser.ROLLBACK, 0); + }; + + ROLLING() { + return this.getToken(OracleSqlParser.ROLLING, 0); + }; + + ROLLUP() { + return this.getToken(OracleSqlParser.ROLLUP, 0); + }; + + ROOT() { + return this.getToken(OracleSqlParser.ROOT, 0); + }; + + ROUND() { + return this.getToken(OracleSqlParser.ROUND, 0); + }; + + ROWDEPENDENCIES() { + return this.getToken(OracleSqlParser.ROWDEPENDENCIES, 0); + }; + + ROWID() { + return this.getToken(OracleSqlParser.ROWID, 0); + }; + + ROWIDTOCHAR() { + return this.getToken(OracleSqlParser.ROWIDTOCHAR, 0); + }; + + ROWIDTONCHAR() { + return this.getToken(OracleSqlParser.ROWIDTONCHAR, 0); + }; + + ROW_LENGTH() { + return this.getToken(OracleSqlParser.ROW_LENGTH, 0); + }; + + ROW() { + return this.getToken(OracleSqlParser.ROW, 0); + }; + + ROW_NUMBER() { + return this.getToken(OracleSqlParser.ROW_NUMBER, 0); + }; + + ROWNUM() { + return this.getToken(OracleSqlParser.ROWNUM, 0); + }; + + ROWS() { + return this.getToken(OracleSqlParser.ROWS, 0); + }; + + RPAD() { + return this.getToken(OracleSqlParser.RPAD, 0); + }; + + RTRIM() { + return this.getToken(OracleSqlParser.RTRIM, 0); + }; + + RULE() { + return this.getToken(OracleSqlParser.RULE, 0); + }; + + RULES() { + return this.getToken(OracleSqlParser.RULES, 0); + }; + + SALT() { + return this.getToken(OracleSqlParser.SALT, 0); + }; + + SAMPLE() { + return this.getToken(OracleSqlParser.SAMPLE, 0); + }; + + SAVE_AS_INTERVALS() { + return this.getToken(OracleSqlParser.SAVE_AS_INTERVALS, 0); + }; + + SAVEPOINT() { + return this.getToken(OracleSqlParser.SAVEPOINT, 0); + }; + + SB4() { + return this.getToken(OracleSqlParser.SB4, 0); + }; + + SCALE() { + return this.getToken(OracleSqlParser.SCALE, 0); + }; + + SCALE_ROWS() { + return this.getToken(OracleSqlParser.SCALE_ROWS, 0); + }; + + SCAN_INSTANCES() { + return this.getToken(OracleSqlParser.SCAN_INSTANCES, 0); + }; + + SCAN() { + return this.getToken(OracleSqlParser.SCAN, 0); + }; + + SCHEDULER() { + return this.getToken(OracleSqlParser.SCHEDULER, 0); + }; + + SCHEMACHECK() { + return this.getToken(OracleSqlParser.SCHEMACHECK, 0); + }; + + SCHEMA() { + return this.getToken(OracleSqlParser.SCHEMA, 0); + }; + + SCN_ASCENDING() { + return this.getToken(OracleSqlParser.SCN_ASCENDING, 0); + }; + + SCN() { + return this.getToken(OracleSqlParser.SCN, 0); + }; + + SCOPE() { + return this.getToken(OracleSqlParser.SCOPE, 0); + }; + + SD_ALL() { + return this.getToken(OracleSqlParser.SD_ALL, 0); + }; + + SD_INHIBIT() { + return this.getToken(OracleSqlParser.SD_INHIBIT, 0); + }; + + SD_SHOW() { + return this.getToken(OracleSqlParser.SD_SHOW, 0); + }; + + SEARCH() { + return this.getToken(OracleSqlParser.SEARCH, 0); + }; + + SECOND() { + return this.getToken(OracleSqlParser.SECOND, 0); + }; + + SECUREFILE_DBA() { + return this.getToken(OracleSqlParser.SECUREFILE_DBA, 0); + }; + + SECUREFILE() { + return this.getToken(OracleSqlParser.SECUREFILE, 0); + }; + + SECURITY() { + return this.getToken(OracleSqlParser.SECURITY, 0); + }; + + SEED() { + return this.getToken(OracleSqlParser.SEED, 0); + }; + + SEG_BLOCK() { + return this.getToken(OracleSqlParser.SEG_BLOCK, 0); + }; + + SEG_FILE() { + return this.getToken(OracleSqlParser.SEG_FILE, 0); + }; + + SEGMENT() { + return this.getToken(OracleSqlParser.SEGMENT, 0); + }; + + SELECTIVITY() { + return this.getToken(OracleSqlParser.SELECTIVITY, 0); + }; + + SEMIJOIN_DRIVER() { + return this.getToken(OracleSqlParser.SEMIJOIN_DRIVER, 0); + }; + + SEMIJOIN() { + return this.getToken(OracleSqlParser.SEMIJOIN, 0); + }; + + SEMI_TO_INNER() { + return this.getToken(OracleSqlParser.SEMI_TO_INNER, 0); + }; + + SEQUENCED() { + return this.getToken(OracleSqlParser.SEQUENCED, 0); + }; + + SEQUENCE() { + return this.getToken(OracleSqlParser.SEQUENCE, 0); + }; + + SEQUENTIAL() { + return this.getToken(OracleSqlParser.SEQUENTIAL, 0); + }; + + SERIALIZABLE() { + return this.getToken(OracleSqlParser.SERIALIZABLE, 0); + }; + + SERVERERROR() { + return this.getToken(OracleSqlParser.SERVERERROR, 0); + }; + + SERVICE() { + return this.getToken(OracleSqlParser.SERVICE, 0); + }; + + SESSION_CACHED_CURSORS() { + return this.getToken(OracleSqlParser.SESSION_CACHED_CURSORS, 0); + }; + + SESSION() { + return this.getToken(OracleSqlParser.SESSION, 0); + }; + + SESSIONS_PER_USER() { + return this.getToken(OracleSqlParser.SESSIONS_PER_USER, 0); + }; + + SESSIONTIMEZONE() { + return this.getToken(OracleSqlParser.SESSIONTIMEZONE, 0); + }; + + SESSIONTZNAME() { + return this.getToken(OracleSqlParser.SESSIONTZNAME, 0); + }; + + SETS() { + return this.getToken(OracleSqlParser.SETS, 0); + }; + + SETTINGS() { + return this.getToken(OracleSqlParser.SETTINGS, 0); + }; + + SET_TO_JOIN() { + return this.getToken(OracleSqlParser.SET_TO_JOIN, 0); + }; + + SEVERE() { + return this.getToken(OracleSqlParser.SEVERE, 0); + }; + + SHARED() { + return this.getToken(OracleSqlParser.SHARED, 0); + }; + + SHARED_POOL() { + return this.getToken(OracleSqlParser.SHARED_POOL, 0); + }; + + SHOW() { + return this.getToken(OracleSqlParser.SHOW, 0); + }; + + SHRINK() { + return this.getToken(OracleSqlParser.SHRINK, 0); + }; + + SHUTDOWN() { + return this.getToken(OracleSqlParser.SHUTDOWN, 0); + }; + + SIBLINGS() { + return this.getToken(OracleSqlParser.SIBLINGS, 0); + }; + + SID() { + return this.getToken(OracleSqlParser.SID, 0); + }; + + SIGNAL_COMPONENT() { + return this.getToken(OracleSqlParser.SIGNAL_COMPONENT, 0); + }; + + SIGNAL_FUNCTION() { + return this.getToken(OracleSqlParser.SIGNAL_FUNCTION, 0); + }; + + SIGN() { + return this.getToken(OracleSqlParser.SIGN, 0); + }; + + SIMPLE() { + return this.getToken(OracleSqlParser.SIMPLE, 0); + }; + + SINGLE() { + return this.getToken(OracleSqlParser.SINGLE, 0); + }; + + SINGLETASK() { + return this.getToken(OracleSqlParser.SINGLETASK, 0); + }; + + SINH() { + return this.getToken(OracleSqlParser.SINH, 0); + }; + + SIN() { + return this.getToken(OracleSqlParser.SIN, 0); + }; + + SKIP_EXT_OPTIMIZER() { + return this.getToken(OracleSqlParser.SKIP_EXT_OPTIMIZER, 0); + }; + + SKIP_() { + return this.getToken(OracleSqlParser.SKIP_, 0); + }; + + SKIP_UNQ_UNUSABLE_IDX() { + return this.getToken(OracleSqlParser.SKIP_UNQ_UNUSABLE_IDX, 0); + }; + + SKIP_UNUSABLE_INDEXES() { + return this.getToken(OracleSqlParser.SKIP_UNUSABLE_INDEXES, 0); + }; + + SMALLFILE() { + return this.getToken(OracleSqlParser.SMALLFILE, 0); + }; + + SNAPSHOT() { + return this.getToken(OracleSqlParser.SNAPSHOT, 0); + }; + + SOME() { + return this.getToken(OracleSqlParser.SOME, 0); + }; + + SORT() { + return this.getToken(OracleSqlParser.SORT, 0); + }; + + SOUNDEX() { + return this.getToken(OracleSqlParser.SOUNDEX, 0); + }; + + SOURCE() { + return this.getToken(OracleSqlParser.SOURCE, 0); + }; + + SPACE_KEYWORD() { + return this.getToken(OracleSqlParser.SPACE_KEYWORD, 0); + }; + + SPECIFICATION() { + return this.getToken(OracleSqlParser.SPECIFICATION, 0); + }; + + SPFILE() { + return this.getToken(OracleSqlParser.SPFILE, 0); + }; + + SPLIT() { + return this.getToken(OracleSqlParser.SPLIT, 0); + }; + + SPREADSHEET() { + return this.getToken(OracleSqlParser.SPREADSHEET, 0); + }; + + SQLLDR() { + return this.getToken(OracleSqlParser.SQLLDR, 0); + }; + + SQL() { + return this.getToken(OracleSqlParser.SQL, 0); + }; + + SQL_TRACE() { + return this.getToken(OracleSqlParser.SQL_TRACE, 0); + }; + + SQL_MACRO() { + return this.getToken(OracleSqlParser.SQL_MACRO, 0); + }; + + SQRT() { + return this.getToken(OracleSqlParser.SQRT, 0); + }; + + STALE() { + return this.getToken(OracleSqlParser.STALE, 0); + }; + + STANDALONE() { + return this.getToken(OracleSqlParser.STANDALONE, 0); + }; + + STANDBY_MAX_DATA_DELAY() { + return this.getToken(OracleSqlParser.STANDBY_MAX_DATA_DELAY, 0); + }; + + STANDBY() { + return this.getToken(OracleSqlParser.STANDBY, 0); + }; + + STAR() { + return this.getToken(OracleSqlParser.STAR, 0); + }; + + STAR_TRANSFORMATION() { + return this.getToken(OracleSqlParser.STAR_TRANSFORMATION, 0); + }; + + STARTUP() { + return this.getToken(OracleSqlParser.STARTUP, 0); + }; + + STATEMENT_ID() { + return this.getToken(OracleSqlParser.STATEMENT_ID, 0); + }; + + STATEMENT_QUEUING() { + return this.getToken(OracleSqlParser.STATEMENT_QUEUING, 0); + }; + + STATEMENTS() { + return this.getToken(OracleSqlParser.STATEMENTS, 0); + }; + + STATIC() { + return this.getToken(OracleSqlParser.STATIC, 0); + }; + + STATISTICS() { + return this.getToken(OracleSqlParser.STATISTICS, 0); + }; + + STATS_BINOMIAL_TEST() { + return this.getToken(OracleSqlParser.STATS_BINOMIAL_TEST, 0); + }; + + STATS_CROSSTAB() { + return this.getToken(OracleSqlParser.STATS_CROSSTAB, 0); + }; + + STATS_F_TEST() { + return this.getToken(OracleSqlParser.STATS_F_TEST, 0); + }; + + STATS_KS_TEST() { + return this.getToken(OracleSqlParser.STATS_KS_TEST, 0); + }; + + STATS_MODE() { + return this.getToken(OracleSqlParser.STATS_MODE, 0); + }; + + STATS_MW_TEST() { + return this.getToken(OracleSqlParser.STATS_MW_TEST, 0); + }; + + STATS_ONE_WAY_ANOVA() { + return this.getToken(OracleSqlParser.STATS_ONE_WAY_ANOVA, 0); + }; + + STATS_T_TEST_INDEP() { + return this.getToken(OracleSqlParser.STATS_T_TEST_INDEP, 0); + }; + + STATS_T_TEST_INDEPU() { + return this.getToken(OracleSqlParser.STATS_T_TEST_INDEPU, 0); + }; + + STATS_T_TEST_ONE() { + return this.getToken(OracleSqlParser.STATS_T_TEST_ONE, 0); + }; + + STATS_T_TEST_PAIRED() { + return this.getToken(OracleSqlParser.STATS_T_TEST_PAIRED, 0); + }; + + STATS_WSR_TEST() { + return this.getToken(OracleSqlParser.STATS_WSR_TEST, 0); + }; + + STDDEV() { + return this.getToken(OracleSqlParser.STDDEV, 0); + }; + + STDDEV_POP() { + return this.getToken(OracleSqlParser.STDDEV_POP, 0); + }; + + STDDEV_SAMP() { + return this.getToken(OracleSqlParser.STDDEV_SAMP, 0); + }; + + STOP() { + return this.getToken(OracleSqlParser.STOP, 0); + }; + + STORAGE() { + return this.getToken(OracleSqlParser.STORAGE, 0); + }; + + STORE() { + return this.getToken(OracleSqlParser.STORE, 0); + }; + + STREAMS() { + return this.getToken(OracleSqlParser.STREAMS, 0); + }; + + STRICT() { + return this.getToken(OracleSqlParser.STRICT, 0); + }; + + STRING() { + return this.getToken(OracleSqlParser.STRING, 0); + }; + + STRIPE_COLUMNS() { + return this.getToken(OracleSqlParser.STRIPE_COLUMNS, 0); + }; + + STRIPE_WIDTH() { + return this.getToken(OracleSqlParser.STRIPE_WIDTH, 0); + }; + + STRIP() { + return this.getToken(OracleSqlParser.STRIP, 0); + }; + + STRUCTURE() { + return this.getToken(OracleSqlParser.STRUCTURE, 0); + }; + + SUBMULTISET() { + return this.getToken(OracleSqlParser.SUBMULTISET, 0); + }; + + SUBPARTITION() { + return this.getToken(OracleSqlParser.SUBPARTITION, 0); + }; + + SUBPARTITION_REL() { + return this.getToken(OracleSqlParser.SUBPARTITION_REL, 0); + }; + + SUBPARTITIONS() { + return this.getToken(OracleSqlParser.SUBPARTITIONS, 0); + }; + + SUBQUERIES() { + return this.getToken(OracleSqlParser.SUBQUERIES, 0); + }; + + SUBQUERY_PRUNING() { + return this.getToken(OracleSqlParser.SUBQUERY_PRUNING, 0); + }; + + SUBSTITUTABLE() { + return this.getToken(OracleSqlParser.SUBSTITUTABLE, 0); + }; + + SUBSTR2() { + return this.getToken(OracleSqlParser.SUBSTR2, 0); + }; + + SUBSTR4() { + return this.getToken(OracleSqlParser.SUBSTR4, 0); + }; + + SUBSTRB() { + return this.getToken(OracleSqlParser.SUBSTRB, 0); + }; + + SUBSTRC() { + return this.getToken(OracleSqlParser.SUBSTRC, 0); + }; + + SUBSTR() { + return this.getToken(OracleSqlParser.SUBSTR, 0); + }; + + SUCCESSFUL() { + return this.getToken(OracleSqlParser.SUCCESSFUL, 0); + }; + + SUMMARY() { + return this.getToken(OracleSqlParser.SUMMARY, 0); + }; + + SUM() { + return this.getToken(OracleSqlParser.SUM, 0); + }; + + SUPPLEMENTAL() { + return this.getToken(OracleSqlParser.SUPPLEMENTAL, 0); + }; + + SUSPEND() { + return this.getToken(OracleSqlParser.SUSPEND, 0); + }; + + SWAP_JOIN_INPUTS() { + return this.getToken(OracleSqlParser.SWAP_JOIN_INPUTS, 0); + }; + + SWITCH() { + return this.getToken(OracleSqlParser.SWITCH, 0); + }; + + SWITCHOVER() { + return this.getToken(OracleSqlParser.SWITCHOVER, 0); + }; + + SYNCHRONOUS() { + return this.getToken(OracleSqlParser.SYNCHRONOUS, 0); + }; + + SYNC() { + return this.getToken(OracleSqlParser.SYNC, 0); + }; + + SYS() { + return this.getToken(OracleSqlParser.SYS, 0); + }; + + SYSASM() { + return this.getToken(OracleSqlParser.SYSASM, 0); + }; + + SYS_AUDIT() { + return this.getToken(OracleSqlParser.SYS_AUDIT, 0); + }; + + SYSAUX() { + return this.getToken(OracleSqlParser.SYSAUX, 0); + }; + + SYS_CHECKACL() { + return this.getToken(OracleSqlParser.SYS_CHECKACL, 0); + }; + + SYS_CONNECT_BY_PATH() { + return this.getToken(OracleSqlParser.SYS_CONNECT_BY_PATH, 0); + }; + + SYS_CONTEXT() { + return this.getToken(OracleSqlParser.SYS_CONTEXT, 0); + }; + + SYSDATE() { + return this.getToken(OracleSqlParser.SYSDATE, 0); + }; + + SYSDBA() { + return this.getToken(OracleSqlParser.SYSDBA, 0); + }; + + SYS_DBURIGEN() { + return this.getToken(OracleSqlParser.SYS_DBURIGEN, 0); + }; + + SYS_DL_CURSOR() { + return this.getToken(OracleSqlParser.SYS_DL_CURSOR, 0); + }; + + SYS_DM_RXFORM_CHR() { + return this.getToken(OracleSqlParser.SYS_DM_RXFORM_CHR, 0); + }; + + SYS_DM_RXFORM_NUM() { + return this.getToken(OracleSqlParser.SYS_DM_RXFORM_NUM, 0); + }; + + SYS_DOM_COMPARE() { + return this.getToken(OracleSqlParser.SYS_DOM_COMPARE, 0); + }; + + SYS_DST_PRIM2SEC() { + return this.getToken(OracleSqlParser.SYS_DST_PRIM2SEC, 0); + }; + + SYS_DST_SEC2PRIM() { + return this.getToken(OracleSqlParser.SYS_DST_SEC2PRIM, 0); + }; + + SYS_ET_BFILE_TO_RAW() { + return this.getToken(OracleSqlParser.SYS_ET_BFILE_TO_RAW, 0); + }; + + SYS_ET_BLOB_TO_IMAGE() { + return this.getToken(OracleSqlParser.SYS_ET_BLOB_TO_IMAGE, 0); + }; + + SYS_ET_IMAGE_TO_BLOB() { + return this.getToken(OracleSqlParser.SYS_ET_IMAGE_TO_BLOB, 0); + }; + + SYS_ET_RAW_TO_BFILE() { + return this.getToken(OracleSqlParser.SYS_ET_RAW_TO_BFILE, 0); + }; + + SYS_EXTPDTXT() { + return this.getToken(OracleSqlParser.SYS_EXTPDTXT, 0); + }; + + SYS_EXTRACT_UTC() { + return this.getToken(OracleSqlParser.SYS_EXTRACT_UTC, 0); + }; + + SYS_FBT_INSDEL() { + return this.getToken(OracleSqlParser.SYS_FBT_INSDEL, 0); + }; + + SYS_FILTER_ACLS() { + return this.getToken(OracleSqlParser.SYS_FILTER_ACLS, 0); + }; + + SYS_FNMATCHES() { + return this.getToken(OracleSqlParser.SYS_FNMATCHES, 0); + }; + + SYS_FNREPLACE() { + return this.getToken(OracleSqlParser.SYS_FNREPLACE, 0); + }; + + SYS_GET_ACLIDS() { + return this.getToken(OracleSqlParser.SYS_GET_ACLIDS, 0); + }; + + SYS_GET_PRIVILEGES() { + return this.getToken(OracleSqlParser.SYS_GET_PRIVILEGES, 0); + }; + + SYS_GETTOKENID() { + return this.getToken(OracleSqlParser.SYS_GETTOKENID, 0); + }; + + SYS_GETXTIVAL() { + return this.getToken(OracleSqlParser.SYS_GETXTIVAL, 0); + }; + + SYS_GUID() { + return this.getToken(OracleSqlParser.SYS_GUID, 0); + }; + + SYS_MAKEXML() { + return this.getToken(OracleSqlParser.SYS_MAKEXML, 0); + }; + + SYS_MAKE_XMLNODEID() { + return this.getToken(OracleSqlParser.SYS_MAKE_XMLNODEID, 0); + }; + + SYS_MKXMLATTR() { + return this.getToken(OracleSqlParser.SYS_MKXMLATTR, 0); + }; + + SYS_OP_ADT2BIN() { + return this.getToken(OracleSqlParser.SYS_OP_ADT2BIN, 0); + }; + + SYS_OP_ADTCONS() { + return this.getToken(OracleSqlParser.SYS_OP_ADTCONS, 0); + }; + + SYS_OP_ALSCRVAL() { + return this.getToken(OracleSqlParser.SYS_OP_ALSCRVAL, 0); + }; + + SYS_OP_ATG() { + return this.getToken(OracleSqlParser.SYS_OP_ATG, 0); + }; + + SYS_OP_BIN2ADT() { + return this.getToken(OracleSqlParser.SYS_OP_BIN2ADT, 0); + }; + + SYS_OP_BITVEC() { + return this.getToken(OracleSqlParser.SYS_OP_BITVEC, 0); + }; + + SYS_OP_BL2R() { + return this.getToken(OracleSqlParser.SYS_OP_BL2R, 0); + }; + + SYS_OP_BLOOM_FILTER_LIST() { + return this.getToken(OracleSqlParser.SYS_OP_BLOOM_FILTER_LIST, 0); + }; + + SYS_OP_BLOOM_FILTER() { + return this.getToken(OracleSqlParser.SYS_OP_BLOOM_FILTER, 0); + }; + + SYS_OP_C2C() { + return this.getToken(OracleSqlParser.SYS_OP_C2C, 0); + }; + + SYS_OP_CAST() { + return this.getToken(OracleSqlParser.SYS_OP_CAST, 0); + }; + + SYS_OP_CEG() { + return this.getToken(OracleSqlParser.SYS_OP_CEG, 0); + }; + + SYS_OP_CL2C() { + return this.getToken(OracleSqlParser.SYS_OP_CL2C, 0); + }; + + SYS_OP_COMBINED_HASH() { + return this.getToken(OracleSqlParser.SYS_OP_COMBINED_HASH, 0); + }; + + SYS_OP_COMP() { + return this.getToken(OracleSqlParser.SYS_OP_COMP, 0); + }; + + SYS_OP_CONVERT() { + return this.getToken(OracleSqlParser.SYS_OP_CONVERT, 0); + }; + + SYS_OP_COUNTCHG() { + return this.getToken(OracleSqlParser.SYS_OP_COUNTCHG, 0); + }; + + SYS_OP_CSCONV() { + return this.getToken(OracleSqlParser.SYS_OP_CSCONV, 0); + }; + + SYS_OP_CSCONVTEST() { + return this.getToken(OracleSqlParser.SYS_OP_CSCONVTEST, 0); + }; + + SYS_OP_CSR() { + return this.getToken(OracleSqlParser.SYS_OP_CSR, 0); + }; + + SYS_OP_CSX_PATCH() { + return this.getToken(OracleSqlParser.SYS_OP_CSX_PATCH, 0); + }; + + SYS_OP_DECOMP() { + return this.getToken(OracleSqlParser.SYS_OP_DECOMP, 0); + }; + + SYS_OP_DESCEND() { + return this.getToken(OracleSqlParser.SYS_OP_DESCEND, 0); + }; + + SYS_OP_DISTINCT() { + return this.getToken(OracleSqlParser.SYS_OP_DISTINCT, 0); + }; + + SYS_OP_DRA() { + return this.getToken(OracleSqlParser.SYS_OP_DRA, 0); + }; + + SYS_OP_DUMP() { + return this.getToken(OracleSqlParser.SYS_OP_DUMP, 0); + }; + + SYS_OP_DV_CHECK() { + return this.getToken(OracleSqlParser.SYS_OP_DV_CHECK, 0); + }; + + SYS_OP_ENFORCE_NOT_NULL() { + return this.getToken(OracleSqlParser.SYS_OP_ENFORCE_NOT_NULL, 0); + }; + + SYSOPER() { + return this.getToken(OracleSqlParser.SYSOPER, 0); + }; + + SYS_OP_EXTRACT() { + return this.getToken(OracleSqlParser.SYS_OP_EXTRACT, 0); + }; + + SYS_OP_GROUPING() { + return this.getToken(OracleSqlParser.SYS_OP_GROUPING, 0); + }; + + SYS_OP_GUID() { + return this.getToken(OracleSqlParser.SYS_OP_GUID, 0); + }; + + SYS_OP_IIX() { + return this.getToken(OracleSqlParser.SYS_OP_IIX, 0); + }; + + SYS_OP_ITR() { + return this.getToken(OracleSqlParser.SYS_OP_ITR, 0); + }; + + SYS_OP_LBID() { + return this.getToken(OracleSqlParser.SYS_OP_LBID, 0); + }; + + SYS_OP_LOBLOC2BLOB() { + return this.getToken(OracleSqlParser.SYS_OP_LOBLOC2BLOB, 0); + }; + + SYS_OP_LOBLOC2CLOB() { + return this.getToken(OracleSqlParser.SYS_OP_LOBLOC2CLOB, 0); + }; + + SYS_OP_LOBLOC2ID() { + return this.getToken(OracleSqlParser.SYS_OP_LOBLOC2ID, 0); + }; + + SYS_OP_LOBLOC2NCLOB() { + return this.getToken(OracleSqlParser.SYS_OP_LOBLOC2NCLOB, 0); + }; + + SYS_OP_LOBLOC2TYP() { + return this.getToken(OracleSqlParser.SYS_OP_LOBLOC2TYP, 0); + }; + + SYS_OP_LSVI() { + return this.getToken(OracleSqlParser.SYS_OP_LSVI, 0); + }; + + SYS_OP_LVL() { + return this.getToken(OracleSqlParser.SYS_OP_LVL, 0); + }; + + SYS_OP_MAKEOID() { + return this.getToken(OracleSqlParser.SYS_OP_MAKEOID, 0); + }; + + SYS_OP_MAP_NONNULL() { + return this.getToken(OracleSqlParser.SYS_OP_MAP_NONNULL, 0); + }; + + SYS_OP_MSR() { + return this.getToken(OracleSqlParser.SYS_OP_MSR, 0); + }; + + SYS_OP_NICOMBINE() { + return this.getToken(OracleSqlParser.SYS_OP_NICOMBINE, 0); + }; + + SYS_OP_NIEXTRACT() { + return this.getToken(OracleSqlParser.SYS_OP_NIEXTRACT, 0); + }; + + SYS_OP_NII() { + return this.getToken(OracleSqlParser.SYS_OP_NII, 0); + }; + + SYS_OP_NIX() { + return this.getToken(OracleSqlParser.SYS_OP_NIX, 0); + }; + + SYS_OP_NOEXPAND() { + return this.getToken(OracleSqlParser.SYS_OP_NOEXPAND, 0); + }; + + SYS_OP_NTCIMG() { + return this.getToken(OracleSqlParser.SYS_OP_NTCIMG, 0); + }; + + SYS_OP_NUMTORAW() { + return this.getToken(OracleSqlParser.SYS_OP_NUMTORAW, 0); + }; + + SYS_OP_OIDVALUE() { + return this.getToken(OracleSqlParser.SYS_OP_OIDVALUE, 0); + }; + + SYS_OP_OPNSIZE() { + return this.getToken(OracleSqlParser.SYS_OP_OPNSIZE, 0); + }; + + SYS_OP_PAR_1() { + return this.getToken(OracleSqlParser.SYS_OP_PAR_1, 0); + }; + + SYS_OP_PARGID_1() { + return this.getToken(OracleSqlParser.SYS_OP_PARGID_1, 0); + }; + + SYS_OP_PARGID() { + return this.getToken(OracleSqlParser.SYS_OP_PARGID, 0); + }; + + SYS_OP_PAR() { + return this.getToken(OracleSqlParser.SYS_OP_PAR, 0); + }; + + SYS_OP_PIVOT() { + return this.getToken(OracleSqlParser.SYS_OP_PIVOT, 0); + }; + + SYS_OP_R2O() { + return this.getToken(OracleSqlParser.SYS_OP_R2O, 0); + }; + + SYS_OP_RAWTONUM() { + return this.getToken(OracleSqlParser.SYS_OP_RAWTONUM, 0); + }; + + SYS_OP_RDTM() { + return this.getToken(OracleSqlParser.SYS_OP_RDTM, 0); + }; + + SYS_OP_REF() { + return this.getToken(OracleSqlParser.SYS_OP_REF, 0); + }; + + SYS_OP_RMTD() { + return this.getToken(OracleSqlParser.SYS_OP_RMTD, 0); + }; + + SYS_OP_ROWIDTOOBJ() { + return this.getToken(OracleSqlParser.SYS_OP_ROWIDTOOBJ, 0); + }; + + SYS_OP_RPB() { + return this.getToken(OracleSqlParser.SYS_OP_RPB, 0); + }; + + SYS_OPTLOBPRBSC() { + return this.getToken(OracleSqlParser.SYS_OPTLOBPRBSC, 0); + }; + + SYS_OP_TOSETID() { + return this.getToken(OracleSqlParser.SYS_OP_TOSETID, 0); + }; + + SYS_OP_TPR() { + return this.getToken(OracleSqlParser.SYS_OP_TPR, 0); + }; + + SYS_OP_TRTB() { + return this.getToken(OracleSqlParser.SYS_OP_TRTB, 0); + }; + + SYS_OPTXICMP() { + return this.getToken(OracleSqlParser.SYS_OPTXICMP, 0); + }; + + SYS_OPTXQCASTASNQ() { + return this.getToken(OracleSqlParser.SYS_OPTXQCASTASNQ, 0); + }; + + SYS_OP_UNDESCEND() { + return this.getToken(OracleSqlParser.SYS_OP_UNDESCEND, 0); + }; + + SYS_OP_VECAND() { + return this.getToken(OracleSqlParser.SYS_OP_VECAND, 0); + }; + + SYS_OP_VECBIT() { + return this.getToken(OracleSqlParser.SYS_OP_VECBIT, 0); + }; + + SYS_OP_VECOR() { + return this.getToken(OracleSqlParser.SYS_OP_VECOR, 0); + }; + + SYS_OP_VECXOR() { + return this.getToken(OracleSqlParser.SYS_OP_VECXOR, 0); + }; + + SYS_OP_VERSION() { + return this.getToken(OracleSqlParser.SYS_OP_VERSION, 0); + }; + + SYS_OP_VREF() { + return this.getToken(OracleSqlParser.SYS_OP_VREF, 0); + }; + + SYS_OP_VVD() { + return this.getToken(OracleSqlParser.SYS_OP_VVD, 0); + }; + + SYS_OP_XMLCONS_FOR_CSX() { + return this.getToken(OracleSqlParser.SYS_OP_XMLCONS_FOR_CSX, 0); + }; + + SYS_OP_XPTHATG() { + return this.getToken(OracleSqlParser.SYS_OP_XPTHATG, 0); + }; + + SYS_OP_XPTHIDX() { + return this.getToken(OracleSqlParser.SYS_OP_XPTHIDX, 0); + }; + + SYS_OP_XPTHOP() { + return this.getToken(OracleSqlParser.SYS_OP_XPTHOP, 0); + }; + + SYS_OP_XTXT2SQLT() { + return this.getToken(OracleSqlParser.SYS_OP_XTXT2SQLT, 0); + }; + + SYS_ORDERKEY_DEPTH() { + return this.getToken(OracleSqlParser.SYS_ORDERKEY_DEPTH, 0); + }; + + SYS_ORDERKEY_MAXCHILD() { + return this.getToken(OracleSqlParser.SYS_ORDERKEY_MAXCHILD, 0); + }; + + SYS_ORDERKEY_PARENT() { + return this.getToken(OracleSqlParser.SYS_ORDERKEY_PARENT, 0); + }; + + SYS_PARALLEL_TXN() { + return this.getToken(OracleSqlParser.SYS_PARALLEL_TXN, 0); + }; + + SYS_PATHID_IS_ATTR() { + return this.getToken(OracleSqlParser.SYS_PATHID_IS_ATTR, 0); + }; + + SYS_PATHID_IS_NMSPC() { + return this.getToken(OracleSqlParser.SYS_PATHID_IS_NMSPC, 0); + }; + + SYS_PATHID_LASTNAME() { + return this.getToken(OracleSqlParser.SYS_PATHID_LASTNAME, 0); + }; + + SYS_PATHID_LASTNMSPC() { + return this.getToken(OracleSqlParser.SYS_PATHID_LASTNMSPC, 0); + }; + + SYS_PATH_REVERSE() { + return this.getToken(OracleSqlParser.SYS_PATH_REVERSE, 0); + }; + + SYS_PXQEXTRACT() { + return this.getToken(OracleSqlParser.SYS_PXQEXTRACT, 0); + }; + + SYS_RID_ORDER() { + return this.getToken(OracleSqlParser.SYS_RID_ORDER, 0); + }; + + SYS_ROW_DELTA() { + return this.getToken(OracleSqlParser.SYS_ROW_DELTA, 0); + }; + + SYS_SC_2_XMLT() { + return this.getToken(OracleSqlParser.SYS_SC_2_XMLT, 0); + }; + + SYS_SYNRCIREDO() { + return this.getToken(OracleSqlParser.SYS_SYNRCIREDO, 0); + }; + + SYSTEM_DEFINED() { + return this.getToken(OracleSqlParser.SYSTEM_DEFINED, 0); + }; + + SYSTEM() { + return this.getToken(OracleSqlParser.SYSTEM, 0); + }; + + SYSTIMESTAMP() { + return this.getToken(OracleSqlParser.SYSTIMESTAMP, 0); + }; + + SYS_TYPEID() { + return this.getToken(OracleSqlParser.SYS_TYPEID, 0); + }; + + SYS_UMAKEXML() { + return this.getToken(OracleSqlParser.SYS_UMAKEXML, 0); + }; + + SYS_XMLANALYZE() { + return this.getToken(OracleSqlParser.SYS_XMLANALYZE, 0); + }; + + SYS_XMLCONTAINS() { + return this.getToken(OracleSqlParser.SYS_XMLCONTAINS, 0); + }; + + SYS_XMLCONV() { + return this.getToken(OracleSqlParser.SYS_XMLCONV, 0); + }; + + SYS_XMLEXNSURI() { + return this.getToken(OracleSqlParser.SYS_XMLEXNSURI, 0); + }; + + SYS_XMLGEN() { + return this.getToken(OracleSqlParser.SYS_XMLGEN, 0); + }; + + SYS_XMLI_LOC_ISNODE() { + return this.getToken(OracleSqlParser.SYS_XMLI_LOC_ISNODE, 0); + }; + + SYS_XMLI_LOC_ISTEXT() { + return this.getToken(OracleSqlParser.SYS_XMLI_LOC_ISTEXT, 0); + }; + + SYS_XMLINSTR() { + return this.getToken(OracleSqlParser.SYS_XMLINSTR, 0); + }; + + SYS_XMLLOCATOR_GETSVAL() { + return this.getToken(OracleSqlParser.SYS_XMLLOCATOR_GETSVAL, 0); + }; + + SYS_XMLNODEID_GETCID() { + return this.getToken(OracleSqlParser.SYS_XMLNODEID_GETCID, 0); + }; + + SYS_XMLNODEID_GETLOCATOR() { + return this.getToken(OracleSqlParser.SYS_XMLNODEID_GETLOCATOR, 0); + }; + + SYS_XMLNODEID_GETOKEY() { + return this.getToken(OracleSqlParser.SYS_XMLNODEID_GETOKEY, 0); + }; + + SYS_XMLNODEID_GETPATHID() { + return this.getToken(OracleSqlParser.SYS_XMLNODEID_GETPATHID, 0); + }; + + SYS_XMLNODEID_GETPTRID() { + return this.getToken(OracleSqlParser.SYS_XMLNODEID_GETPTRID, 0); + }; + + SYS_XMLNODEID_GETRID() { + return this.getToken(OracleSqlParser.SYS_XMLNODEID_GETRID, 0); + }; + + SYS_XMLNODEID_GETSVAL() { + return this.getToken(OracleSqlParser.SYS_XMLNODEID_GETSVAL, 0); + }; + + SYS_XMLNODEID_GETTID() { + return this.getToken(OracleSqlParser.SYS_XMLNODEID_GETTID, 0); + }; + + SYS_XMLNODEID() { + return this.getToken(OracleSqlParser.SYS_XMLNODEID, 0); + }; + + SYS_XMLT_2_SC() { + return this.getToken(OracleSqlParser.SYS_XMLT_2_SC, 0); + }; + + SYS_XMLTRANSLATE() { + return this.getToken(OracleSqlParser.SYS_XMLTRANSLATE, 0); + }; + + SYS_XMLTYPE2SQL() { + return this.getToken(OracleSqlParser.SYS_XMLTYPE2SQL, 0); + }; + + SYS_XQ_ASQLCNV() { + return this.getToken(OracleSqlParser.SYS_XQ_ASQLCNV, 0); + }; + + SYS_XQ_ATOMCNVCHK() { + return this.getToken(OracleSqlParser.SYS_XQ_ATOMCNVCHK, 0); + }; + + SYS_XQBASEURI() { + return this.getToken(OracleSqlParser.SYS_XQBASEURI, 0); + }; + + SYS_XQCASTABLEERRH() { + return this.getToken(OracleSqlParser.SYS_XQCASTABLEERRH, 0); + }; + + SYS_XQCODEP2STR() { + return this.getToken(OracleSqlParser.SYS_XQCODEP2STR, 0); + }; + + SYS_XQCODEPEQ() { + return this.getToken(OracleSqlParser.SYS_XQCODEPEQ, 0); + }; + + SYS_XQCON2SEQ() { + return this.getToken(OracleSqlParser.SYS_XQCON2SEQ, 0); + }; + + SYS_XQCONCAT() { + return this.getToken(OracleSqlParser.SYS_XQCONCAT, 0); + }; + + SYS_XQDELETE() { + return this.getToken(OracleSqlParser.SYS_XQDELETE, 0); + }; + + SYS_XQDFLTCOLATION() { + return this.getToken(OracleSqlParser.SYS_XQDFLTCOLATION, 0); + }; + + SYS_XQDOC() { + return this.getToken(OracleSqlParser.SYS_XQDOC, 0); + }; + + SYS_XQDOCURI() { + return this.getToken(OracleSqlParser.SYS_XQDOCURI, 0); + }; + + SYS_XQDURDIV() { + return this.getToken(OracleSqlParser.SYS_XQDURDIV, 0); + }; + + SYS_XQED4URI() { + return this.getToken(OracleSqlParser.SYS_XQED4URI, 0); + }; + + SYS_XQENDSWITH() { + return this.getToken(OracleSqlParser.SYS_XQENDSWITH, 0); + }; + + SYS_XQERRH() { + return this.getToken(OracleSqlParser.SYS_XQERRH, 0); + }; + + SYS_XQERR() { + return this.getToken(OracleSqlParser.SYS_XQERR, 0); + }; + + SYS_XQESHTMLURI() { + return this.getToken(OracleSqlParser.SYS_XQESHTMLURI, 0); + }; + + SYS_XQEXLOBVAL() { + return this.getToken(OracleSqlParser.SYS_XQEXLOBVAL, 0); + }; + + SYS_XQEXSTWRP() { + return this.getToken(OracleSqlParser.SYS_XQEXSTWRP, 0); + }; + + SYS_XQEXTRACT() { + return this.getToken(OracleSqlParser.SYS_XQEXTRACT, 0); + }; + + SYS_XQEXTRREF() { + return this.getToken(OracleSqlParser.SYS_XQEXTRREF, 0); + }; + + SYS_XQEXVAL() { + return this.getToken(OracleSqlParser.SYS_XQEXVAL, 0); + }; + + SYS_XQFB2STR() { + return this.getToken(OracleSqlParser.SYS_XQFB2STR, 0); + }; + + SYS_XQFNBOOL() { + return this.getToken(OracleSqlParser.SYS_XQFNBOOL, 0); + }; + + SYS_XQFNCMP() { + return this.getToken(OracleSqlParser.SYS_XQFNCMP, 0); + }; + + SYS_XQFNDATIM() { + return this.getToken(OracleSqlParser.SYS_XQFNDATIM, 0); + }; + + SYS_XQFNLNAME() { + return this.getToken(OracleSqlParser.SYS_XQFNLNAME, 0); + }; + + SYS_XQFNNM() { + return this.getToken(OracleSqlParser.SYS_XQFNNM, 0); + }; + + SYS_XQFNNSURI() { + return this.getToken(OracleSqlParser.SYS_XQFNNSURI, 0); + }; + + SYS_XQFNPREDTRUTH() { + return this.getToken(OracleSqlParser.SYS_XQFNPREDTRUTH, 0); + }; + + SYS_XQFNQNM() { + return this.getToken(OracleSqlParser.SYS_XQFNQNM, 0); + }; + + SYS_XQFNROOT() { + return this.getToken(OracleSqlParser.SYS_XQFNROOT, 0); + }; + + SYS_XQFORMATNUM() { + return this.getToken(OracleSqlParser.SYS_XQFORMATNUM, 0); + }; + + SYS_XQFTCONTAIN() { + return this.getToken(OracleSqlParser.SYS_XQFTCONTAIN, 0); + }; + + SYS_XQFUNCR() { + return this.getToken(OracleSqlParser.SYS_XQFUNCR, 0); + }; + + SYS_XQGETCONTENT() { + return this.getToken(OracleSqlParser.SYS_XQGETCONTENT, 0); + }; + + SYS_XQINDXOF() { + return this.getToken(OracleSqlParser.SYS_XQINDXOF, 0); + }; + + SYS_XQINSERT() { + return this.getToken(OracleSqlParser.SYS_XQINSERT, 0); + }; + + SYS_XQINSPFX() { + return this.getToken(OracleSqlParser.SYS_XQINSPFX, 0); + }; + + SYS_XQIRI2URI() { + return this.getToken(OracleSqlParser.SYS_XQIRI2URI, 0); + }; + + SYS_XQLANG() { + return this.getToken(OracleSqlParser.SYS_XQLANG, 0); + }; + + SYS_XQLLNMFRMQNM() { + return this.getToken(OracleSqlParser.SYS_XQLLNMFRMQNM, 0); + }; + + SYS_XQMKNODEREF() { + return this.getToken(OracleSqlParser.SYS_XQMKNODEREF, 0); + }; + + SYS_XQNILLED() { + return this.getToken(OracleSqlParser.SYS_XQNILLED, 0); + }; + + SYS_XQNODENAME() { + return this.getToken(OracleSqlParser.SYS_XQNODENAME, 0); + }; + + SYS_XQNORMSPACE() { + return this.getToken(OracleSqlParser.SYS_XQNORMSPACE, 0); + }; + + SYS_XQNORMUCODE() { + return this.getToken(OracleSqlParser.SYS_XQNORMUCODE, 0); + }; + + SYS_XQ_NRNG() { + return this.getToken(OracleSqlParser.SYS_XQ_NRNG, 0); + }; + + SYS_XQNSP4PFX() { + return this.getToken(OracleSqlParser.SYS_XQNSP4PFX, 0); + }; + + SYS_XQNSPFRMQNM() { + return this.getToken(OracleSqlParser.SYS_XQNSPFRMQNM, 0); + }; + + SYS_XQPFXFRMQNM() { + return this.getToken(OracleSqlParser.SYS_XQPFXFRMQNM, 0); + }; + + SYS_XQ_PKSQL2XML() { + return this.getToken(OracleSqlParser.SYS_XQ_PKSQL2XML, 0); + }; + + SYS_XQPOLYABS() { + return this.getToken(OracleSqlParser.SYS_XQPOLYABS, 0); + }; + + SYS_XQPOLYADD() { + return this.getToken(OracleSqlParser.SYS_XQPOLYADD, 0); + }; + + SYS_XQPOLYCEL() { + return this.getToken(OracleSqlParser.SYS_XQPOLYCEL, 0); + }; + + SYS_XQPOLYCSTBL() { + return this.getToken(OracleSqlParser.SYS_XQPOLYCSTBL, 0); + }; + + SYS_XQPOLYCST() { + return this.getToken(OracleSqlParser.SYS_XQPOLYCST, 0); + }; + + SYS_XQPOLYDIV() { + return this.getToken(OracleSqlParser.SYS_XQPOLYDIV, 0); + }; + + SYS_XQPOLYFLR() { + return this.getToken(OracleSqlParser.SYS_XQPOLYFLR, 0); + }; + + SYS_XQPOLYMOD() { + return this.getToken(OracleSqlParser.SYS_XQPOLYMOD, 0); + }; + + SYS_XQPOLYMUL() { + return this.getToken(OracleSqlParser.SYS_XQPOLYMUL, 0); + }; + + SYS_XQPOLYRND() { + return this.getToken(OracleSqlParser.SYS_XQPOLYRND, 0); + }; + + SYS_XQPOLYSQRT() { + return this.getToken(OracleSqlParser.SYS_XQPOLYSQRT, 0); + }; + + SYS_XQPOLYSUB() { + return this.getToken(OracleSqlParser.SYS_XQPOLYSUB, 0); + }; + + SYS_XQPOLYUMUS() { + return this.getToken(OracleSqlParser.SYS_XQPOLYUMUS, 0); + }; + + SYS_XQPOLYUPLS() { + return this.getToken(OracleSqlParser.SYS_XQPOLYUPLS, 0); + }; + + SYS_XQPOLYVEQ() { + return this.getToken(OracleSqlParser.SYS_XQPOLYVEQ, 0); + }; + + SYS_XQPOLYVGE() { + return this.getToken(OracleSqlParser.SYS_XQPOLYVGE, 0); + }; + + SYS_XQPOLYVGT() { + return this.getToken(OracleSqlParser.SYS_XQPOLYVGT, 0); + }; + + SYS_XQPOLYVLE() { + return this.getToken(OracleSqlParser.SYS_XQPOLYVLE, 0); + }; + + SYS_XQPOLYVLT() { + return this.getToken(OracleSqlParser.SYS_XQPOLYVLT, 0); + }; + + SYS_XQPOLYVNE() { + return this.getToken(OracleSqlParser.SYS_XQPOLYVNE, 0); + }; + + SYS_XQREF2VAL() { + return this.getToken(OracleSqlParser.SYS_XQREF2VAL, 0); + }; + + SYS_XQRENAME() { + return this.getToken(OracleSqlParser.SYS_XQRENAME, 0); + }; + + SYS_XQREPLACE() { + return this.getToken(OracleSqlParser.SYS_XQREPLACE, 0); + }; + + SYS_XQRESVURI() { + return this.getToken(OracleSqlParser.SYS_XQRESVURI, 0); + }; + + SYS_XQRNDHALF2EVN() { + return this.getToken(OracleSqlParser.SYS_XQRNDHALF2EVN, 0); + }; + + SYS_XQRSLVQNM() { + return this.getToken(OracleSqlParser.SYS_XQRSLVQNM, 0); + }; + + SYS_XQRYENVPGET() { + return this.getToken(OracleSqlParser.SYS_XQRYENVPGET, 0); + }; + + SYS_XQRYVARGET() { + return this.getToken(OracleSqlParser.SYS_XQRYVARGET, 0); + }; + + SYS_XQRYWRP() { + return this.getToken(OracleSqlParser.SYS_XQRYWRP, 0); + }; + + SYS_XQSEQ2CON4XC() { + return this.getToken(OracleSqlParser.SYS_XQSEQ2CON4XC, 0); + }; + + SYS_XQSEQ2CON() { + return this.getToken(OracleSqlParser.SYS_XQSEQ2CON, 0); + }; + + SYS_XQSEQDEEPEQ() { + return this.getToken(OracleSqlParser.SYS_XQSEQDEEPEQ, 0); + }; + + SYS_XQSEQINSB() { + return this.getToken(OracleSqlParser.SYS_XQSEQINSB, 0); + }; + + SYS_XQSEQRM() { + return this.getToken(OracleSqlParser.SYS_XQSEQRM, 0); + }; + + SYS_XQSEQRVS() { + return this.getToken(OracleSqlParser.SYS_XQSEQRVS, 0); + }; + + SYS_XQSEQSUB() { + return this.getToken(OracleSqlParser.SYS_XQSEQSUB, 0); + }; + + SYS_XQSEQTYPMATCH() { + return this.getToken(OracleSqlParser.SYS_XQSEQTYPMATCH, 0); + }; + + SYS_XQSTARTSWITH() { + return this.getToken(OracleSqlParser.SYS_XQSTARTSWITH, 0); + }; + + SYS_XQSTATBURI() { + return this.getToken(OracleSqlParser.SYS_XQSTATBURI, 0); + }; + + SYS_XQSTR2CODEP() { + return this.getToken(OracleSqlParser.SYS_XQSTR2CODEP, 0); + }; + + SYS_XQSTRJOIN() { + return this.getToken(OracleSqlParser.SYS_XQSTRJOIN, 0); + }; + + SYS_XQSUBSTRAFT() { + return this.getToken(OracleSqlParser.SYS_XQSUBSTRAFT, 0); + }; + + SYS_XQSUBSTRBEF() { + return this.getToken(OracleSqlParser.SYS_XQSUBSTRBEF, 0); + }; + + SYS_XQTOKENIZE() { + return this.getToken(OracleSqlParser.SYS_XQTOKENIZE, 0); + }; + + SYS_XQTREATAS() { + return this.getToken(OracleSqlParser.SYS_XQTREATAS, 0); + }; + + SYS_XQ_UPKXML2SQL() { + return this.getToken(OracleSqlParser.SYS_XQ_UPKXML2SQL, 0); + }; + + SYS_XQXFORM() { + return this.getToken(OracleSqlParser.SYS_XQXFORM, 0); + }; + + TABLE() { + return this.getToken(OracleSqlParser.TABLE, 0); + }; + + TABLE_LOOKUP_BY_NL() { + return this.getToken(OracleSqlParser.TABLE_LOOKUP_BY_NL, 0); + }; + + TABLES() { + return this.getToken(OracleSqlParser.TABLES, 0); + }; + + TABLESPACE() { + return this.getToken(OracleSqlParser.TABLESPACE, 0); + }; + + TABLESPACE_NO() { + return this.getToken(OracleSqlParser.TABLESPACE_NO, 0); + }; + + TABLE_STATS() { + return this.getToken(OracleSqlParser.TABLE_STATS, 0); + }; + + TABNO() { + return this.getToken(OracleSqlParser.TABNO, 0); + }; + + TANH() { + return this.getToken(OracleSqlParser.TANH, 0); + }; + + TAN() { + return this.getToken(OracleSqlParser.TAN, 0); + }; + + TBLORIDXPARTNUM() { + return this.getToken(OracleSqlParser.TBLORIDXPARTNUM, 0); + }; + + TEMPFILE() { + return this.getToken(OracleSqlParser.TEMPFILE, 0); + }; + + TEMPLATE() { + return this.getToken(OracleSqlParser.TEMPLATE, 0); + }; + + TEMPLATE_TABLE() { + return this.getToken(OracleSqlParser.TEMPLATE_TABLE, 0); + }; + + TEMPORARY() { + return this.getToken(OracleSqlParser.TEMPORARY, 0); + }; + + TEMP_TABLE() { + return this.getToken(OracleSqlParser.TEMP_TABLE, 0); + }; + + TEST() { + return this.getToken(OracleSqlParser.TEST, 0); + }; + + THAN() { + return this.getToken(OracleSqlParser.THAN, 0); + }; + + THE() { + return this.getToken(OracleSqlParser.THE, 0); + }; + + THEN() { + return this.getToken(OracleSqlParser.THEN, 0); + }; + + THREAD() { + return this.getToken(OracleSqlParser.THREAD, 0); + }; + + THROUGH() { + return this.getToken(OracleSqlParser.THROUGH, 0); + }; + + TIME() { + return this.getToken(OracleSqlParser.TIME, 0); + }; + + TIMING() { + return this.getToken(OracleSqlParser.TIMING, 0); + }; + + TIMEOUT() { + return this.getToken(OracleSqlParser.TIMEOUT, 0); + }; + + TIMES() { + return this.getToken(OracleSqlParser.TIMES, 0); + }; + + TIMESTAMP() { + return this.getToken(OracleSqlParser.TIMESTAMP, 0); + }; + + TIMEZONE() { + return this.getToken(OracleSqlParser.TIMEZONE, 0); + }; + + TIMEZONE_ABBR() { + return this.getToken(OracleSqlParser.TIMEZONE_ABBR, 0); + }; + + TIMEZONE_HOUR() { + return this.getToken(OracleSqlParser.TIMEZONE_HOUR, 0); + }; + + TIMEZONE_MINUTE() { + return this.getToken(OracleSqlParser.TIMEZONE_MINUTE, 0); + }; + + TIME_ZONE() { + return this.getToken(OracleSqlParser.TIME_ZONE, 0); + }; + + TIMEZONE_OFFSET() { + return this.getToken(OracleSqlParser.TIMEZONE_OFFSET, 0); + }; + + TIMEZONE_REGION() { + return this.getToken(OracleSqlParser.TIMEZONE_REGION, 0); + }; + + TIV_GB() { + return this.getToken(OracleSqlParser.TIV_GB, 0); + }; + + TIV_SSF() { + return this.getToken(OracleSqlParser.TIV_SSF, 0); + }; + + TO_BINARY_DOUBLE() { + return this.getToken(OracleSqlParser.TO_BINARY_DOUBLE, 0); + }; + + TO_BINARY_FLOAT() { + return this.getToken(OracleSqlParser.TO_BINARY_FLOAT, 0); + }; + + TO_BLOB() { + return this.getToken(OracleSqlParser.TO_BLOB, 0); + }; + + TO_CHAR() { + return this.getToken(OracleSqlParser.TO_CHAR, 0); + }; + + TO_CLOB() { + return this.getToken(OracleSqlParser.TO_CLOB, 0); + }; + + TO_DATE() { + return this.getToken(OracleSqlParser.TO_DATE, 0); + }; + + TO_DSINTERVAL() { + return this.getToken(OracleSqlParser.TO_DSINTERVAL, 0); + }; + + TO_LOB() { + return this.getToken(OracleSqlParser.TO_LOB, 0); + }; + + TO_MULTI_BYTE() { + return this.getToken(OracleSqlParser.TO_MULTI_BYTE, 0); + }; + + TO_NCHAR() { + return this.getToken(OracleSqlParser.TO_NCHAR, 0); + }; + + TO_NCLOB() { + return this.getToken(OracleSqlParser.TO_NCLOB, 0); + }; + + TO_NUMBER() { + return this.getToken(OracleSqlParser.TO_NUMBER, 0); + }; + + TOPLEVEL() { + return this.getToken(OracleSqlParser.TOPLEVEL, 0); + }; + + TO_SINGLE_BYTE() { + return this.getToken(OracleSqlParser.TO_SINGLE_BYTE, 0); + }; + + TO_TIME() { + return this.getToken(OracleSqlParser.TO_TIME, 0); + }; + + TO_TIMESTAMP() { + return this.getToken(OracleSqlParser.TO_TIMESTAMP, 0); + }; + + TO_TIMESTAMP_TZ() { + return this.getToken(OracleSqlParser.TO_TIMESTAMP_TZ, 0); + }; + + TO_TIME_TZ() { + return this.getToken(OracleSqlParser.TO_TIME_TZ, 0); + }; + + TO_YMINTERVAL() { + return this.getToken(OracleSqlParser.TO_YMINTERVAL, 0); + }; + + TRACE() { + return this.getToken(OracleSqlParser.TRACE, 0); + }; + + TRACING() { + return this.getToken(OracleSqlParser.TRACING, 0); + }; + + TRACKING() { + return this.getToken(OracleSqlParser.TRACKING, 0); + }; + + TRAILING() { + return this.getToken(OracleSqlParser.TRAILING, 0); + }; + + TRANSACTION() { + return this.getToken(OracleSqlParser.TRANSACTION, 0); + }; + + TRANSFORM_DISTINCT_AGG() { + return this.getToken(OracleSqlParser.TRANSFORM_DISTINCT_AGG, 0); + }; + + TRANSITIONAL() { + return this.getToken(OracleSqlParser.TRANSITIONAL, 0); + }; + + TRANSITION() { + return this.getToken(OracleSqlParser.TRANSITION, 0); + }; + + TRANSLATE() { + return this.getToken(OracleSqlParser.TRANSLATE, 0); + }; + + TREAT() { + return this.getToken(OracleSqlParser.TREAT, 0); + }; + + TRIGGERS() { + return this.getToken(OracleSqlParser.TRIGGERS, 0); + }; + + TRIM() { + return this.getToken(OracleSqlParser.TRIM, 0); + }; + + TRUE() { + return this.getToken(OracleSqlParser.TRUE, 0); + }; + + TRUNCATE() { + return this.getToken(OracleSqlParser.TRUNCATE, 0); + }; + + TRUNC() { + return this.getToken(OracleSqlParser.TRUNC, 0); + }; + + TRUSTED() { + return this.getToken(OracleSqlParser.TRUSTED, 0); + }; + + TUNING() { + return this.getToken(OracleSqlParser.TUNING, 0); + }; + + TX() { + return this.getToken(OracleSqlParser.TX, 0); + }; + + TYPE() { + return this.getToken(OracleSqlParser.TYPE, 0); + }; + + TYPES() { + return this.getToken(OracleSqlParser.TYPES, 0); + }; + + TZ_OFFSET() { + return this.getToken(OracleSqlParser.TZ_OFFSET, 0); + }; + + UB2() { + return this.getToken(OracleSqlParser.UB2, 0); + }; + + UBA() { + return this.getToken(OracleSqlParser.UBA, 0); + }; + + UID() { + return this.getToken(OracleSqlParser.UID, 0); + }; + + UNARCHIVED() { + return this.getToken(OracleSqlParser.UNARCHIVED, 0); + }; + + UNBOUNDED() { + return this.getToken(OracleSqlParser.UNBOUNDED, 0); + }; + + UNBOUND() { + return this.getToken(OracleSqlParser.UNBOUND, 0); + }; + + UNDER() { + return this.getToken(OracleSqlParser.UNDER, 0); + }; + + UNDO() { + return this.getToken(OracleSqlParser.UNDO, 0); + }; + + UNDROP() { + return this.getToken(OracleSqlParser.UNDROP, 0); + }; + + UNIFORM() { + return this.getToken(OracleSqlParser.UNIFORM, 0); + }; + + UNISTR() { + return this.getToken(OracleSqlParser.UNISTR, 0); + }; + + UNLIMITED() { + return this.getToken(OracleSqlParser.UNLIMITED, 0); + }; + + UNLOAD() { + return this.getToken(OracleSqlParser.UNLOAD, 0); + }; + + UNLOCK() { + return this.getToken(OracleSqlParser.UNLOCK, 0); + }; + + UNNEST_INNERJ_DISTINCT_VIEW() { + return this.getToken(OracleSqlParser.UNNEST_INNERJ_DISTINCT_VIEW, 0); + }; + + UNNEST() { + return this.getToken(OracleSqlParser.UNNEST, 0); + }; + + UNNEST_NOSEMIJ_NODISTINCTVIEW() { + return this.getToken(OracleSqlParser.UNNEST_NOSEMIJ_NODISTINCTVIEW, 0); + }; + + UNNEST_SEMIJ_VIEW() { + return this.getToken(OracleSqlParser.UNNEST_SEMIJ_VIEW, 0); + }; + + UNPACKED() { + return this.getToken(OracleSqlParser.UNPACKED, 0); + }; + + UNPIVOT() { + return this.getToken(OracleSqlParser.UNPIVOT, 0); + }; + + UNPROTECTED() { + return this.getToken(OracleSqlParser.UNPROTECTED, 0); + }; + + UNQUIESCE() { + return this.getToken(OracleSqlParser.UNQUIESCE, 0); + }; + + UNRECOVERABLE() { + return this.getToken(OracleSqlParser.UNRECOVERABLE, 0); + }; + + UNRESTRICTED() { + return this.getToken(OracleSqlParser.UNRESTRICTED, 0); + }; + + UNTIL() { + return this.getToken(OracleSqlParser.UNTIL, 0); + }; + + UNUSABLE() { + return this.getToken(OracleSqlParser.UNUSABLE, 0); + }; + + UNUSED() { + return this.getToken(OracleSqlParser.UNUSED, 0); + }; + + UPDATABLE() { + return this.getToken(OracleSqlParser.UPDATABLE, 0); + }; + + UPDATED() { + return this.getToken(OracleSqlParser.UPDATED, 0); + }; + + UPDATEXML() { + return this.getToken(OracleSqlParser.UPDATEXML, 0); + }; + + UPD_INDEXES() { + return this.getToken(OracleSqlParser.UPD_INDEXES, 0); + }; + + UPD_JOININDEX() { + return this.getToken(OracleSqlParser.UPD_JOININDEX, 0); + }; + + UPGRADE() { + return this.getToken(OracleSqlParser.UPGRADE, 0); + }; + + UPPER() { + return this.getToken(OracleSqlParser.UPPER, 0); + }; + + UPSERT() { + return this.getToken(OracleSqlParser.UPSERT, 0); + }; + + UROWID() { + return this.getToken(OracleSqlParser.UROWID, 0); + }; + + USAGE() { + return this.getToken(OracleSqlParser.USAGE, 0); + }; + + USE_ANTI() { + return this.getToken(OracleSqlParser.USE_ANTI, 0); + }; + + USE_CONCAT() { + return this.getToken(OracleSqlParser.USE_CONCAT, 0); + }; + + USE_HASH_AGGREGATION() { + return this.getToken(OracleSqlParser.USE_HASH_AGGREGATION, 0); + }; + + USE_HASH_GBY_FOR_PUSHDOWN() { + return this.getToken(OracleSqlParser.USE_HASH_GBY_FOR_PUSHDOWN, 0); + }; + + USE_HASH() { + return this.getToken(OracleSqlParser.USE_HASH, 0); + }; + + USE_INVISIBLE_INDEXES() { + return this.getToken(OracleSqlParser.USE_INVISIBLE_INDEXES, 0); + }; + + USE_MERGE_CARTESIAN() { + return this.getToken(OracleSqlParser.USE_MERGE_CARTESIAN, 0); + }; + + USE_MERGE() { + return this.getToken(OracleSqlParser.USE_MERGE, 0); + }; + + USE() { + return this.getToken(OracleSqlParser.USE, 0); + }; + + USE_NL() { + return this.getToken(OracleSqlParser.USE_NL, 0); + }; + + USE_NL_WITH_INDEX() { + return this.getToken(OracleSqlParser.USE_NL_WITH_INDEX, 0); + }; + + USE_PRIVATE_OUTLINES() { + return this.getToken(OracleSqlParser.USE_PRIVATE_OUTLINES, 0); + }; + + USER_DEFINED() { + return this.getToken(OracleSqlParser.USER_DEFINED, 0); + }; + + USERENV() { + return this.getToken(OracleSqlParser.USERENV, 0); + }; + + USERGROUP() { + return this.getToken(OracleSqlParser.USERGROUP, 0); + }; + + USER() { + return this.getToken(OracleSqlParser.USER, 0); + }; + + USER_RECYCLEBIN() { + return this.getToken(OracleSqlParser.USER_RECYCLEBIN, 0); + }; + + USERS() { + return this.getToken(OracleSqlParser.USERS, 0); + }; + + USE_SEMI() { + return this.getToken(OracleSqlParser.USE_SEMI, 0); + }; + + USE_STORED_OUTLINES() { + return this.getToken(OracleSqlParser.USE_STORED_OUTLINES, 0); + }; + + USE_TTT_FOR_GSETS() { + return this.getToken(OracleSqlParser.USE_TTT_FOR_GSETS, 0); + }; + + USE_WEAK_NAME_RESL() { + return this.getToken(OracleSqlParser.USE_WEAK_NAME_RESL, 0); + }; + + USING() { + return this.getToken(OracleSqlParser.USING, 0); + }; + + VALIDATE() { + return this.getToken(OracleSqlParser.VALIDATE, 0); + }; + + VALIDATION() { + return this.getToken(OracleSqlParser.VALIDATION, 0); + }; + + VALUE() { + return this.getToken(OracleSqlParser.VALUE, 0); + }; + + VARIANCE() { + return this.getToken(OracleSqlParser.VARIANCE, 0); + }; + + VAR_POP() { + return this.getToken(OracleSqlParser.VAR_POP, 0); + }; + + VARRAY() { + return this.getToken(OracleSqlParser.VARRAY, 0); + }; + + VARRAYS() { + return this.getToken(OracleSqlParser.VARRAYS, 0); + }; + + VAR_SAMP() { + return this.getToken(OracleSqlParser.VAR_SAMP, 0); + }; + + VARYING() { + return this.getToken(OracleSqlParser.VARYING, 0); + }; + + VECTOR_READ() { + return this.getToken(OracleSqlParser.VECTOR_READ, 0); + }; + + VECTOR_READ_TRACE() { + return this.getToken(OracleSqlParser.VECTOR_READ_TRACE, 0); + }; + + VERIFY() { + return this.getToken(OracleSqlParser.VERIFY, 0); + }; + + VERSIONING() { + return this.getToken(OracleSqlParser.VERSIONING, 0); + }; + + VERSION() { + return this.getToken(OracleSqlParser.VERSION, 0); + }; + + VERSIONS_ENDSCN() { + return this.getToken(OracleSqlParser.VERSIONS_ENDSCN, 0); + }; + + VERSIONS_ENDTIME() { + return this.getToken(OracleSqlParser.VERSIONS_ENDTIME, 0); + }; + + VERSIONS() { + return this.getToken(OracleSqlParser.VERSIONS, 0); + }; + + VERSIONS_OPERATION() { + return this.getToken(OracleSqlParser.VERSIONS_OPERATION, 0); + }; + + VERSIONS_STARTSCN() { + return this.getToken(OracleSqlParser.VERSIONS_STARTSCN, 0); + }; + + VERSIONS_STARTTIME() { + return this.getToken(OracleSqlParser.VERSIONS_STARTTIME, 0); + }; + + VERSIONS_XID() { + return this.getToken(OracleSqlParser.VERSIONS_XID, 0); + }; + + VIRTUAL() { + return this.getToken(OracleSqlParser.VIRTUAL, 0); + }; + + VISIBLE() { + return this.getToken(OracleSqlParser.VISIBLE, 0); + }; + + VOLUME() { + return this.getToken(OracleSqlParser.VOLUME, 0); + }; + + VSIZE() { + return this.getToken(OracleSqlParser.VSIZE, 0); + }; + + WAIT() { + return this.getToken(OracleSqlParser.WAIT, 0); + }; + + WALLET() { + return this.getToken(OracleSqlParser.WALLET, 0); + }; + + WELLFORMED() { + return this.getToken(OracleSqlParser.WELLFORMED, 0); + }; + + WHENEVER() { + return this.getToken(OracleSqlParser.WHENEVER, 0); + }; + + WHEN() { + return this.getToken(OracleSqlParser.WHEN, 0); + }; + + WHITESPACE() { + return this.getToken(OracleSqlParser.WHITESPACE, 0); + }; + + WIDTH_BUCKET() { + return this.getToken(OracleSqlParser.WIDTH_BUCKET, 0); + }; + + WITHIN() { + return this.getToken(OracleSqlParser.WITHIN, 0); + }; + + WITHOUT() { + return this.getToken(OracleSqlParser.WITHOUT, 0); + }; + + WORK() { + return this.getToken(OracleSqlParser.WORK, 0); + }; + + WRAPPED() { + return this.getToken(OracleSqlParser.WRAPPED, 0); + }; + + WRITE() { + return this.getToken(OracleSqlParser.WRITE, 0); + }; + + XDB_FASTPATH_INSERT() { + return this.getToken(OracleSqlParser.XDB_FASTPATH_INSERT, 0); + }; + + X_DYN_PRUNE() { + return this.getToken(OracleSqlParser.X_DYN_PRUNE, 0); + }; + + XID() { + return this.getToken(OracleSqlParser.XID, 0); + }; + + XML2OBJECT() { + return this.getToken(OracleSqlParser.XML2OBJECT, 0); + }; + + XMLATTRIBUTES() { + return this.getToken(OracleSqlParser.XMLATTRIBUTES, 0); + }; + + XMLCAST() { + return this.getToken(OracleSqlParser.XMLCAST, 0); + }; + + XMLCDATA() { + return this.getToken(OracleSqlParser.XMLCDATA, 0); + }; + + XMLCOLATTVAL() { + return this.getToken(OracleSqlParser.XMLCOLATTVAL, 0); + }; + + XMLCOMMENT() { + return this.getToken(OracleSqlParser.XMLCOMMENT, 0); + }; + + XMLCONCAT() { + return this.getToken(OracleSqlParser.XMLCONCAT, 0); + }; + + XMLDIFF() { + return this.getToken(OracleSqlParser.XMLDIFF, 0); + }; + + XML_DML_RWT_STMT() { + return this.getToken(OracleSqlParser.XML_DML_RWT_STMT, 0); + }; + + XMLELEMENT() { + return this.getToken(OracleSqlParser.XMLELEMENT, 0); + }; + + XMLEXISTS2() { + return this.getToken(OracleSqlParser.XMLEXISTS2, 0); + }; + + XMLEXISTS() { + return this.getToken(OracleSqlParser.XMLEXISTS, 0); + }; + + XMLFOREST() { + return this.getToken(OracleSqlParser.XMLFOREST, 0); + }; + + XMLINDEX_REWRITE_IN_SELECT() { + return this.getToken(OracleSqlParser.XMLINDEX_REWRITE_IN_SELECT, 0); + }; + + XMLINDEX_REWRITE() { + return this.getToken(OracleSqlParser.XMLINDEX_REWRITE, 0); + }; + + XMLINDEX_SEL_IDX_TBL() { + return this.getToken(OracleSqlParser.XMLINDEX_SEL_IDX_TBL, 0); + }; + + XMLISNODE() { + return this.getToken(OracleSqlParser.XMLISNODE, 0); + }; + + XMLISVALID() { + return this.getToken(OracleSqlParser.XMLISVALID, 0); + }; + + XML() { + return this.getToken(OracleSqlParser.XML, 0); + }; + + XMLNAMESPACES() { + return this.getToken(OracleSqlParser.XMLNAMESPACES, 0); + }; + + XMLPARSE() { + return this.getToken(OracleSqlParser.XMLPARSE, 0); + }; + + XMLPATCH() { + return this.getToken(OracleSqlParser.XMLPATCH, 0); + }; + + XMLPI() { + return this.getToken(OracleSqlParser.XMLPI, 0); + }; + + XMLQUERY() { + return this.getToken(OracleSqlParser.XMLQUERY, 0); + }; + + XMLQUERYVAL() { + return this.getToken(OracleSqlParser.XMLQUERYVAL, 0); + }; + + XMLROOT() { + return this.getToken(OracleSqlParser.XMLROOT, 0); + }; + + XMLSCHEMA() { + return this.getToken(OracleSqlParser.XMLSCHEMA, 0); + }; + + XMLSERIALIZE() { + return this.getToken(OracleSqlParser.XMLSERIALIZE, 0); + }; + + XMLTABLE() { + return this.getToken(OracleSqlParser.XMLTABLE, 0); + }; + + XMLTRANSFORMBLOB() { + return this.getToken(OracleSqlParser.XMLTRANSFORMBLOB, 0); + }; + + XMLTRANSFORM() { + return this.getToken(OracleSqlParser.XMLTRANSFORM, 0); + }; + + XMLTYPE() { + return this.getToken(OracleSqlParser.XMLTYPE, 0); + }; + + XPATHTABLE() { + return this.getToken(OracleSqlParser.XPATHTABLE, 0); + }; + + XS_SYS_CONTEXT() { + return this.getToken(OracleSqlParser.XS_SYS_CONTEXT, 0); + }; + + YEAR() { + return this.getToken(OracleSqlParser.YEAR, 0); + }; + + YES() { + return this.getToken(OracleSqlParser.YES, 0); + }; + + ZONE() { + return this.getToken(OracleSqlParser.ZONE, 0); + }; + + accept(visitor) { + if ( visitor instanceof OracleSqlParserVisitor ) { + return visitor.visitNon_reserved_keywords_pre12c(this); + } else { + return visitor.visitChildren(this); + } + } + + +} + + + + +OracleSqlParser.Sql_scriptContext = Sql_scriptContext; +OracleSqlParser.Unit_statementContext = Unit_statementContext; +OracleSqlParser.Alter_diskgroupContext = Alter_diskgroupContext; +OracleSqlParser.Add_disk_clauseContext = Add_disk_clauseContext; +OracleSqlParser.Drop_disk_clauseContext = Drop_disk_clauseContext; +OracleSqlParser.Resize_disk_clauseContext = Resize_disk_clauseContext; +OracleSqlParser.Replace_disk_clauseContext = Replace_disk_clauseContext; +OracleSqlParser.Wait_nowaitContext = Wait_nowaitContext; +OracleSqlParser.Rename_disk_clauseContext = Rename_disk_clauseContext; +OracleSqlParser.Disk_online_clauseContext = Disk_online_clauseContext; +OracleSqlParser.Disk_offline_clauseContext = Disk_offline_clauseContext; +OracleSqlParser.Timeout_clauseContext = Timeout_clauseContext; +OracleSqlParser.Rebalance_diskgroup_clauseContext = Rebalance_diskgroup_clauseContext; +OracleSqlParser.PhaseContext = PhaseContext; +OracleSqlParser.Check_diskgroup_clauseContext = Check_diskgroup_clauseContext; +OracleSqlParser.Diskgroup_template_clausesContext = Diskgroup_template_clausesContext; +OracleSqlParser.Qualified_template_clauseContext = Qualified_template_clauseContext; +OracleSqlParser.Redundancy_clauseContext = Redundancy_clauseContext; +OracleSqlParser.Striping_clauseContext = Striping_clauseContext; +OracleSqlParser.Force_noforceContext = Force_noforceContext; +OracleSqlParser.Diskgroup_directory_clausesContext = Diskgroup_directory_clausesContext; +OracleSqlParser.Dir_nameContext = Dir_nameContext; +OracleSqlParser.Diskgroup_alias_clausesContext = Diskgroup_alias_clausesContext; +OracleSqlParser.Diskgroup_volume_clausesContext = Diskgroup_volume_clausesContext; +OracleSqlParser.Add_volume_clauseContext = Add_volume_clauseContext; +OracleSqlParser.Modify_volume_clauseContext = Modify_volume_clauseContext; +OracleSqlParser.Diskgroup_attributesContext = Diskgroup_attributesContext; +OracleSqlParser.Drop_diskgroup_file_clauseContext = Drop_diskgroup_file_clauseContext; +OracleSqlParser.Convert_redundancy_clauseContext = Convert_redundancy_clauseContext; +OracleSqlParser.Usergroup_clausesContext = Usergroup_clausesContext; +OracleSqlParser.User_clausesContext = User_clausesContext; +OracleSqlParser.File_permissions_clauseContext = File_permissions_clauseContext; +OracleSqlParser.File_owner_clauseContext = File_owner_clauseContext; +OracleSqlParser.Scrub_clauseContext = Scrub_clauseContext; +OracleSqlParser.Quotagroup_clausesContext = Quotagroup_clausesContext; +OracleSqlParser.Property_nameContext = Property_nameContext; +OracleSqlParser.Property_valueContext = Property_valueContext; +OracleSqlParser.Filegroup_clausesContext = Filegroup_clausesContext; +OracleSqlParser.Add_filegroup_clauseContext = Add_filegroup_clauseContext; +OracleSqlParser.Modify_filegroup_clauseContext = Modify_filegroup_clauseContext; +OracleSqlParser.Move_to_filegroup_clauseContext = Move_to_filegroup_clauseContext; +OracleSqlParser.Drop_filegroup_clauseContext = Drop_filegroup_clauseContext; +OracleSqlParser.Quorum_regularContext = Quorum_regularContext; +OracleSqlParser.Undrop_disk_clauseContext = Undrop_disk_clauseContext; +OracleSqlParser.Diskgroup_availabilityContext = Diskgroup_availabilityContext; +OracleSqlParser.Enable_disable_volumeContext = Enable_disable_volumeContext; +OracleSqlParser.Drop_functionContext = Drop_functionContext; +OracleSqlParser.Alter_flashback_archiveContext = Alter_flashback_archiveContext; +OracleSqlParser.Alter_hierarchyContext = Alter_hierarchyContext; +OracleSqlParser.Alter_functionContext = Alter_functionContext; +OracleSqlParser.Alter_javaContext = Alter_javaContext; +OracleSqlParser.Match_stringContext = Match_stringContext; +OracleSqlParser.Create_function_bodyContext = Create_function_bodyContext; +OracleSqlParser.Sql_macro_bodyContext = Sql_macro_bodyContext; +OracleSqlParser.Parallel_enable_clauseContext = Parallel_enable_clauseContext; +OracleSqlParser.Partition_by_clauseContext = Partition_by_clauseContext; +OracleSqlParser.Result_cache_clauseContext = Result_cache_clauseContext; +OracleSqlParser.Accessible_by_clauseContext = Accessible_by_clauseContext; +OracleSqlParser.Default_collation_clauseContext = Default_collation_clauseContext; +OracleSqlParser.Aggregate_clauseContext = Aggregate_clauseContext; +OracleSqlParser.Pipelined_using_clauseContext = Pipelined_using_clauseContext; +OracleSqlParser.AccessorContext = AccessorContext; +OracleSqlParser.Relies_on_partContext = Relies_on_partContext; +OracleSqlParser.Streaming_clauseContext = Streaming_clauseContext; +OracleSqlParser.Alter_outlineContext = Alter_outlineContext; +OracleSqlParser.Outline_optionsContext = Outline_optionsContext; +OracleSqlParser.Alter_lockdown_profileContext = Alter_lockdown_profileContext; +OracleSqlParser.Lockdown_featureContext = Lockdown_featureContext; +OracleSqlParser.Lockdown_optionsContext = Lockdown_optionsContext; +OracleSqlParser.Lockdown_statementsContext = Lockdown_statementsContext; +OracleSqlParser.Statement_clausesContext = Statement_clausesContext; +OracleSqlParser.Clause_optionsContext = Clause_optionsContext; +OracleSqlParser.Option_valuesContext = Option_valuesContext; +OracleSqlParser.String_listContext = String_listContext; +OracleSqlParser.Disable_enableContext = Disable_enableContext; +OracleSqlParser.Drop_lockdown_profileContext = Drop_lockdown_profileContext; +OracleSqlParser.Drop_packageContext = Drop_packageContext; +OracleSqlParser.Alter_packageContext = Alter_packageContext; +OracleSqlParser.Create_packageContext = Create_packageContext; +OracleSqlParser.Create_package_bodyContext = Create_package_bodyContext; +OracleSqlParser.Package_obj_specContext = Package_obj_specContext; +OracleSqlParser.Procedure_specContext = Procedure_specContext; +OracleSqlParser.Function_specContext = Function_specContext; +OracleSqlParser.Package_obj_bodyContext = Package_obj_bodyContext; +OracleSqlParser.Alter_pmem_filestoreContext = Alter_pmem_filestoreContext; +OracleSqlParser.Drop_pmem_filestoreContext = Drop_pmem_filestoreContext; +OracleSqlParser.Drop_procedureContext = Drop_procedureContext; +OracleSqlParser.Alter_procedureContext = Alter_procedureContext; +OracleSqlParser.Function_bodyContext = Function_bodyContext; +OracleSqlParser.Procedure_bodyContext = Procedure_bodyContext; +OracleSqlParser.Create_procedure_bodyContext = Create_procedure_bodyContext; +OracleSqlParser.Alter_resource_costContext = Alter_resource_costContext; +OracleSqlParser.Drop_outlineContext = Drop_outlineContext; +OracleSqlParser.Alter_rollback_segmentContext = Alter_rollback_segmentContext; +OracleSqlParser.Drop_restore_pointContext = Drop_restore_pointContext; +OracleSqlParser.Drop_rollback_segmentContext = Drop_rollback_segmentContext; +OracleSqlParser.Drop_roleContext = Drop_roleContext; +OracleSqlParser.Create_pmem_filestoreContext = Create_pmem_filestoreContext; +OracleSqlParser.Pmem_filestore_optionsContext = Pmem_filestore_optionsContext; +OracleSqlParser.File_pathContext = File_pathContext; +OracleSqlParser.Create_rollback_segmentContext = Create_rollback_segmentContext; +OracleSqlParser.Drop_triggerContext = Drop_triggerContext; +OracleSqlParser.Alter_triggerContext = Alter_triggerContext; +OracleSqlParser.Create_triggerContext = Create_triggerContext; +OracleSqlParser.Trigger_follows_clauseContext = Trigger_follows_clauseContext; +OracleSqlParser.Trigger_when_clauseContext = Trigger_when_clauseContext; +OracleSqlParser.Simple_dml_triggerContext = Simple_dml_triggerContext; +OracleSqlParser.For_each_rowContext = For_each_rowContext; +OracleSqlParser.Compound_dml_triggerContext = Compound_dml_triggerContext; +OracleSqlParser.Non_dml_triggerContext = Non_dml_triggerContext; +OracleSqlParser.Trigger_bodyContext = Trigger_bodyContext; +OracleSqlParser.Compound_trigger_blockContext = Compound_trigger_blockContext; +OracleSqlParser.Timing_point_sectionContext = Timing_point_sectionContext; +OracleSqlParser.Non_dml_eventContext = Non_dml_eventContext; +OracleSqlParser.Dml_event_clauseContext = Dml_event_clauseContext; +OracleSqlParser.Dml_event_elementContext = Dml_event_elementContext; +OracleSqlParser.Dml_event_nested_clauseContext = Dml_event_nested_clauseContext; +OracleSqlParser.Referencing_clauseContext = Referencing_clauseContext; +OracleSqlParser.Referencing_elementContext = Referencing_elementContext; +OracleSqlParser.Drop_typeContext = Drop_typeContext; +OracleSqlParser.Alter_typeContext = Alter_typeContext; +OracleSqlParser.Compile_type_clauseContext = Compile_type_clauseContext; +OracleSqlParser.Replace_type_clauseContext = Replace_type_clauseContext; +OracleSqlParser.Alter_method_specContext = Alter_method_specContext; +OracleSqlParser.Alter_method_elementContext = Alter_method_elementContext; +OracleSqlParser.Alter_collection_clausesContext = Alter_collection_clausesContext; +OracleSqlParser.Dependent_handling_clauseContext = Dependent_handling_clauseContext; +OracleSqlParser.Dependent_exceptions_partContext = Dependent_exceptions_partContext; +OracleSqlParser.Create_typeContext = Create_typeContext; +OracleSqlParser.Type_definitionContext = Type_definitionContext; +OracleSqlParser.Object_type_defContext = Object_type_defContext; +OracleSqlParser.Object_as_partContext = Object_as_partContext; +OracleSqlParser.Object_under_partContext = Object_under_partContext; +OracleSqlParser.Nested_table_type_defContext = Nested_table_type_defContext; +OracleSqlParser.Sqlj_object_typeContext = Sqlj_object_typeContext; +OracleSqlParser.Type_bodyContext = Type_bodyContext; +OracleSqlParser.Type_body_elementsContext = Type_body_elementsContext; +OracleSqlParser.Map_order_func_declarationContext = Map_order_func_declarationContext; +OracleSqlParser.Subprog_decl_in_typeContext = Subprog_decl_in_typeContext; +OracleSqlParser.Proc_decl_in_typeContext = Proc_decl_in_typeContext; +OracleSqlParser.Func_decl_in_typeContext = Func_decl_in_typeContext; +OracleSqlParser.Constructor_declarationContext = Constructor_declarationContext; +OracleSqlParser.Modifier_clauseContext = Modifier_clauseContext; +OracleSqlParser.Object_member_specContext = Object_member_specContext; +OracleSqlParser.Sqlj_object_type_attrContext = Sqlj_object_type_attrContext; +OracleSqlParser.Element_specContext = Element_specContext; +OracleSqlParser.Element_spec_optionsContext = Element_spec_optionsContext; +OracleSqlParser.Subprogram_specContext = Subprogram_specContext; +OracleSqlParser.Overriding_subprogram_specContext = Overriding_subprogram_specContext; +OracleSqlParser.Overriding_function_specContext = Overriding_function_specContext; +OracleSqlParser.Type_procedure_specContext = Type_procedure_specContext; +OracleSqlParser.Type_function_specContext = Type_function_specContext; +OracleSqlParser.Constructor_specContext = Constructor_specContext; +OracleSqlParser.Map_order_function_specContext = Map_order_function_specContext; +OracleSqlParser.Pragma_clauseContext = Pragma_clauseContext; +OracleSqlParser.Pragma_elementsContext = Pragma_elementsContext; +OracleSqlParser.Type_elements_parameterContext = Type_elements_parameterContext; +OracleSqlParser.Drop_sequenceContext = Drop_sequenceContext; +OracleSqlParser.Alter_sequenceContext = Alter_sequenceContext; +OracleSqlParser.Alter_sessionContext = Alter_sessionContext; +OracleSqlParser.Alter_session_set_clauseContext = Alter_session_set_clauseContext; +OracleSqlParser.Create_sequenceContext = Create_sequenceContext; +OracleSqlParser.Sequence_specContext = Sequence_specContext; +OracleSqlParser.Sequence_start_clauseContext = Sequence_start_clauseContext; +OracleSqlParser.Create_analytic_viewContext = Create_analytic_viewContext; +OracleSqlParser.Classification_clauseContext = Classification_clauseContext; +OracleSqlParser.Caption_clauseContext = Caption_clauseContext; +OracleSqlParser.Description_clauseContext = Description_clauseContext; +OracleSqlParser.Classification_itemContext = Classification_itemContext; +OracleSqlParser.LanguageContext = LanguageContext; +OracleSqlParser.Cav_using_clauseContext = Cav_using_clauseContext; +OracleSqlParser.Dim_by_clauseContext = Dim_by_clauseContext; +OracleSqlParser.Dim_keyContext = Dim_keyContext; +OracleSqlParser.Dim_refContext = Dim_refContext; +OracleSqlParser.Hier_refContext = Hier_refContext; +OracleSqlParser.Measures_clauseContext = Measures_clauseContext; +OracleSqlParser.Av_measureContext = Av_measureContext; +OracleSqlParser.Base_meas_clauseContext = Base_meas_clauseContext; +OracleSqlParser.Meas_aggregate_clauseContext = Meas_aggregate_clauseContext; +OracleSqlParser.Calc_meas_clauseContext = Calc_meas_clauseContext; +OracleSqlParser.Default_measure_clauseContext = Default_measure_clauseContext; +OracleSqlParser.Default_aggregate_clauseContext = Default_aggregate_clauseContext; +OracleSqlParser.Cache_clauseContext = Cache_clauseContext; +OracleSqlParser.Cache_specificationContext = Cache_specificationContext; +OracleSqlParser.Levels_clauseContext = Levels_clauseContext; +OracleSqlParser.Level_specificationContext = Level_specificationContext; +OracleSqlParser.Level_group_typeContext = Level_group_typeContext; +OracleSqlParser.Fact_columns_clauseContext = Fact_columns_clauseContext; +OracleSqlParser.Qry_transform_clauseContext = Qry_transform_clauseContext; +OracleSqlParser.Create_attribute_dimensionContext = Create_attribute_dimensionContext; +OracleSqlParser.Ad_using_clauseContext = Ad_using_clauseContext; +OracleSqlParser.Source_clauseContext = Source_clauseContext; +OracleSqlParser.Join_path_clauseContext = Join_path_clauseContext; +OracleSqlParser.Join_conditionContext = Join_conditionContext; +OracleSqlParser.Join_condition_itemContext = Join_condition_itemContext; +OracleSqlParser.Attributes_clauseContext = Attributes_clauseContext; +OracleSqlParser.Ad_attributes_clauseContext = Ad_attributes_clauseContext; +OracleSqlParser.Ad_level_clauseContext = Ad_level_clauseContext; +OracleSqlParser.Key_clauseContext = Key_clauseContext; +OracleSqlParser.Alternate_key_clauseContext = Alternate_key_clauseContext; +OracleSqlParser.Dim_order_clauseContext = Dim_order_clauseContext; +OracleSqlParser.All_clauseContext = All_clauseContext; +OracleSqlParser.Create_audit_policyContext = Create_audit_policyContext; +OracleSqlParser.Privilege_audit_clauseContext = Privilege_audit_clauseContext; +OracleSqlParser.Action_audit_clauseContext = Action_audit_clauseContext; +OracleSqlParser.System_actionsContext = System_actionsContext; +OracleSqlParser.Standard_actionsContext = Standard_actionsContext; +OracleSqlParser.Actions_clauseContext = Actions_clauseContext; +OracleSqlParser.Object_actionContext = Object_actionContext; +OracleSqlParser.System_actionContext = System_actionContext; +OracleSqlParser.Component_actionsContext = Component_actionsContext; +OracleSqlParser.Component_actionContext = Component_actionContext; +OracleSqlParser.Role_audit_clauseContext = Role_audit_clauseContext; +OracleSqlParser.Create_controlfileContext = Create_controlfileContext; +OracleSqlParser.Controlfile_optionsContext = Controlfile_optionsContext; +OracleSqlParser.Logfile_clauseContext = Logfile_clauseContext; +OracleSqlParser.Character_set_clauseContext = Character_set_clauseContext; +OracleSqlParser.File_specificationContext = File_specificationContext; +OracleSqlParser.Create_diskgroupContext = Create_diskgroupContext; +OracleSqlParser.Qualified_disk_clauseContext = Qualified_disk_clauseContext; +OracleSqlParser.Create_editionContext = Create_editionContext; +OracleSqlParser.Create_flashback_archiveContext = Create_flashback_archiveContext; +OracleSqlParser.Flashback_archive_quotaContext = Flashback_archive_quotaContext; +OracleSqlParser.Flashback_archive_retentionContext = Flashback_archive_retentionContext; +OracleSqlParser.Create_hierarchyContext = Create_hierarchyContext; +OracleSqlParser.Hier_using_clauseContext = Hier_using_clauseContext; +OracleSqlParser.Level_hier_clauseContext = Level_hier_clauseContext; +OracleSqlParser.Hier_attrs_clauseContext = Hier_attrs_clauseContext; +OracleSqlParser.Hier_attr_clauseContext = Hier_attr_clauseContext; +OracleSqlParser.Hier_attr_nameContext = Hier_attr_nameContext; +OracleSqlParser.Create_indexContext = Create_indexContext; +OracleSqlParser.Cluster_index_clauseContext = Cluster_index_clauseContext; +OracleSqlParser.Cluster_nameContext = Cluster_nameContext; +OracleSqlParser.Table_index_clauseContext = Table_index_clauseContext; +OracleSqlParser.Bitmap_join_index_clauseContext = Bitmap_join_index_clauseContext; +OracleSqlParser.Index_exprContext = Index_exprContext; +OracleSqlParser.Index_propertiesContext = Index_propertiesContext; +OracleSqlParser.Domain_index_clauseContext = Domain_index_clauseContext; +OracleSqlParser.Local_domain_index_clauseContext = Local_domain_index_clauseContext; +OracleSqlParser.Xmlindex_clauseContext = Xmlindex_clauseContext; +OracleSqlParser.Local_xmlindex_clauseContext = Local_xmlindex_clauseContext; +OracleSqlParser.Global_partitioned_indexContext = Global_partitioned_indexContext; +OracleSqlParser.Index_partitioning_clauseContext = Index_partitioning_clauseContext; +OracleSqlParser.Index_partitioning_values_listContext = Index_partitioning_values_listContext; +OracleSqlParser.Local_partitioned_indexContext = Local_partitioned_indexContext; +OracleSqlParser.On_range_partitioned_tableContext = On_range_partitioned_tableContext; +OracleSqlParser.On_list_partitioned_tableContext = On_list_partitioned_tableContext; +OracleSqlParser.Partitioned_tableContext = Partitioned_tableContext; +OracleSqlParser.On_hash_partitioned_tableContext = On_hash_partitioned_tableContext; +OracleSqlParser.On_hash_partitioned_clauseContext = On_hash_partitioned_clauseContext; +OracleSqlParser.On_comp_partitioned_tableContext = On_comp_partitioned_tableContext; +OracleSqlParser.On_comp_partitioned_clauseContext = On_comp_partitioned_clauseContext; +OracleSqlParser.Index_subpartition_clauseContext = Index_subpartition_clauseContext; +OracleSqlParser.Index_subpartition_subclauseContext = Index_subpartition_subclauseContext; +OracleSqlParser.Odci_parametersContext = Odci_parametersContext; +OracleSqlParser.IndextypeContext = IndextypeContext; +OracleSqlParser.Alter_indexContext = Alter_indexContext; +OracleSqlParser.Alter_index_ops_set1Context = Alter_index_ops_set1Context; +OracleSqlParser.Alter_index_ops_set2Context = Alter_index_ops_set2Context; +OracleSqlParser.Visible_or_invisibleContext = Visible_or_invisibleContext; +OracleSqlParser.Monitoring_nomonitoringContext = Monitoring_nomonitoringContext; +OracleSqlParser.Rebuild_clauseContext = Rebuild_clauseContext; +OracleSqlParser.Alter_index_partitioningContext = Alter_index_partitioningContext; +OracleSqlParser.Modify_index_default_attrsContext = Modify_index_default_attrsContext; +OracleSqlParser.Add_hash_index_partitionContext = Add_hash_index_partitionContext; +OracleSqlParser.Coalesce_index_partitionContext = Coalesce_index_partitionContext; +OracleSqlParser.Modify_index_partitionContext = Modify_index_partitionContext; +OracleSqlParser.Modify_index_partitions_opsContext = Modify_index_partitions_opsContext; +OracleSqlParser.Rename_index_partitionContext = Rename_index_partitionContext; +OracleSqlParser.Drop_index_partitionContext = Drop_index_partitionContext; +OracleSqlParser.Split_index_partitionContext = Split_index_partitionContext; +OracleSqlParser.Index_partition_descriptionContext = Index_partition_descriptionContext; +OracleSqlParser.Modify_index_subpartitionContext = Modify_index_subpartitionContext; +OracleSqlParser.Partition_name_oldContext = Partition_name_oldContext; +OracleSqlParser.New_partition_nameContext = New_partition_nameContext; +OracleSqlParser.New_index_nameContext = New_index_nameContext; +OracleSqlParser.Alter_inmemory_join_groupContext = Alter_inmemory_join_groupContext; +OracleSqlParser.Create_userContext = Create_userContext; +OracleSqlParser.Alter_userContext = Alter_userContext; +OracleSqlParser.Drop_userContext = Drop_userContext; +OracleSqlParser.Alter_identified_byContext = Alter_identified_byContext; +OracleSqlParser.Identified_byContext = Identified_byContext; +OracleSqlParser.Identified_other_clauseContext = Identified_other_clauseContext; +OracleSqlParser.User_tablespace_clauseContext = User_tablespace_clauseContext; +OracleSqlParser.Quota_clauseContext = Quota_clauseContext; +OracleSqlParser.Profile_clauseContext = Profile_clauseContext; +OracleSqlParser.Role_clauseContext = Role_clauseContext; +OracleSqlParser.User_default_role_clauseContext = User_default_role_clauseContext; +OracleSqlParser.Password_expire_clauseContext = Password_expire_clauseContext; +OracleSqlParser.User_lock_clauseContext = User_lock_clauseContext; +OracleSqlParser.User_editions_clauseContext = User_editions_clauseContext; +OracleSqlParser.Alter_user_editions_clauseContext = Alter_user_editions_clauseContext; +OracleSqlParser.Proxy_clauseContext = Proxy_clauseContext; +OracleSqlParser.Container_namesContext = Container_namesContext; +OracleSqlParser.Set_container_dataContext = Set_container_dataContext; +OracleSqlParser.Add_rem_container_dataContext = Add_rem_container_dataContext; +OracleSqlParser.Container_data_clauseContext = Container_data_clauseContext; +OracleSqlParser.Administer_key_managementContext = Administer_key_managementContext; +OracleSqlParser.Keystore_management_clausesContext = Keystore_management_clausesContext; +OracleSqlParser.Create_keystoreContext = Create_keystoreContext; +OracleSqlParser.Open_keystoreContext = Open_keystoreContext; +OracleSqlParser.Force_keystoreContext = Force_keystoreContext; +OracleSqlParser.Close_keystoreContext = Close_keystoreContext; +OracleSqlParser.Backup_keystoreContext = Backup_keystoreContext; +OracleSqlParser.Alter_keystore_passwordContext = Alter_keystore_passwordContext; +OracleSqlParser.Merge_into_new_keystoreContext = Merge_into_new_keystoreContext; +OracleSqlParser.Merge_into_existing_keystoreContext = Merge_into_existing_keystoreContext; +OracleSqlParser.Isolate_keystoreContext = Isolate_keystoreContext; +OracleSqlParser.Unite_keystoreContext = Unite_keystoreContext; +OracleSqlParser.Key_management_clausesContext = Key_management_clausesContext; +OracleSqlParser.Set_keyContext = Set_keyContext; +OracleSqlParser.Create_keyContext = Create_keyContext; +OracleSqlParser.MkidContext = MkidContext; +OracleSqlParser.MkContext = MkContext; +OracleSqlParser.Use_keyContext = Use_keyContext; +OracleSqlParser.Set_key_tagContext = Set_key_tagContext; +OracleSqlParser.Export_keysContext = Export_keysContext; +OracleSqlParser.Import_keysContext = Import_keysContext; +OracleSqlParser.Migrate_keysContext = Migrate_keysContext; +OracleSqlParser.Reverse_migrate_keysContext = Reverse_migrate_keysContext; +OracleSqlParser.Move_keysContext = Move_keysContext; +OracleSqlParser.Identified_by_storeContext = Identified_by_storeContext; +OracleSqlParser.Using_algorithm_clauseContext = Using_algorithm_clauseContext; +OracleSqlParser.Using_tag_clauseContext = Using_tag_clauseContext; +OracleSqlParser.Secret_management_clausesContext = Secret_management_clausesContext; +OracleSqlParser.Add_update_secretContext = Add_update_secretContext; +OracleSqlParser.Delete_secretContext = Delete_secretContext; +OracleSqlParser.Add_update_secret_sepsContext = Add_update_secret_sepsContext; +OracleSqlParser.Delete_secret_sepsContext = Delete_secret_sepsContext; +OracleSqlParser.Zero_downtime_software_patching_clausesContext = Zero_downtime_software_patching_clausesContext; +OracleSqlParser.With_backup_clauseContext = With_backup_clauseContext; +OracleSqlParser.Identified_by_password_clauseContext = Identified_by_password_clauseContext; +OracleSqlParser.Keystore_passwordContext = Keystore_passwordContext; +OracleSqlParser.PathContext = PathContext; +OracleSqlParser.SecretContext = SecretContext; +OracleSqlParser.AnalyzeContext = AnalyzeContext; +OracleSqlParser.Partition_extention_clauseContext = Partition_extention_clauseContext; +OracleSqlParser.Validation_clausesContext = Validation_clausesContext; +OracleSqlParser.Compute_clausesContext = Compute_clausesContext; +OracleSqlParser.For_clauseContext = For_clauseContext; +OracleSqlParser.Online_or_offlineContext = Online_or_offlineContext; +OracleSqlParser.Into_clause1Context = Into_clause1Context; +OracleSqlParser.Partition_key_valueContext = Partition_key_valueContext; +OracleSqlParser.Subpartition_key_valueContext = Subpartition_key_valueContext; +OracleSqlParser.Associate_statisticsContext = Associate_statisticsContext; +OracleSqlParser.Column_associationContext = Column_associationContext; +OracleSqlParser.Function_associationContext = Function_associationContext; +OracleSqlParser.Indextype_nameContext = Indextype_nameContext; +OracleSqlParser.Using_statistics_typeContext = Using_statistics_typeContext; +OracleSqlParser.Statistics_type_nameContext = Statistics_type_nameContext; +OracleSqlParser.Default_cost_clauseContext = Default_cost_clauseContext; +OracleSqlParser.Cpu_costContext = Cpu_costContext; +OracleSqlParser.Io_costContext = Io_costContext; +OracleSqlParser.Network_costContext = Network_costContext; +OracleSqlParser.Default_selectivity_clauseContext = Default_selectivity_clauseContext; +OracleSqlParser.Default_selectivityContext = Default_selectivityContext; +OracleSqlParser.Storage_table_clauseContext = Storage_table_clauseContext; +OracleSqlParser.Unified_auditingContext = Unified_auditingContext; +OracleSqlParser.Policy_nameContext = Policy_nameContext; +OracleSqlParser.Audit_traditionalContext = Audit_traditionalContext; +OracleSqlParser.Audit_direct_pathContext = Audit_direct_pathContext; +OracleSqlParser.Audit_container_clauseContext = Audit_container_clauseContext; +OracleSqlParser.Audit_operation_clauseContext = Audit_operation_clauseContext; +OracleSqlParser.Auditing_by_clauseContext = Auditing_by_clauseContext; +OracleSqlParser.Audit_userContext = Audit_userContext; +OracleSqlParser.Audit_schema_object_clauseContext = Audit_schema_object_clauseContext; +OracleSqlParser.Sql_operationContext = Sql_operationContext; +OracleSqlParser.Auditing_on_clauseContext = Auditing_on_clauseContext; +OracleSqlParser.Model_nameContext = Model_nameContext; +OracleSqlParser.Object_nameContext = Object_nameContext; +OracleSqlParser.Profile_nameContext = Profile_nameContext; +OracleSqlParser.Sql_statement_shortcutContext = Sql_statement_shortcutContext; +OracleSqlParser.Drop_indexContext = Drop_indexContext; +OracleSqlParser.Disassociate_statisticsContext = Disassociate_statisticsContext; +OracleSqlParser.Drop_indextypeContext = Drop_indextypeContext; +OracleSqlParser.Drop_inmemory_join_groupContext = Drop_inmemory_join_groupContext; +OracleSqlParser.Flashback_tableContext = Flashback_tableContext; +OracleSqlParser.Restore_pointContext = Restore_pointContext; +OracleSqlParser.Purge_statementContext = Purge_statementContext; +OracleSqlParser.Noaudit_statementContext = Noaudit_statementContext; +OracleSqlParser.Rename_objectContext = Rename_objectContext; +OracleSqlParser.Grant_statementContext = Grant_statementContext; +OracleSqlParser.Container_clauseContext = Container_clauseContext; +OracleSqlParser.Revoke_statementContext = Revoke_statementContext; +OracleSqlParser.Revoke_system_privilegeContext = Revoke_system_privilegeContext; +OracleSqlParser.Revokee_clauseContext = Revokee_clauseContext; +OracleSqlParser.Revoke_object_privilegesContext = Revoke_object_privilegesContext; +OracleSqlParser.On_object_clauseContext = On_object_clauseContext; +OracleSqlParser.Revoke_roles_from_programsContext = Revoke_roles_from_programsContext; +OracleSqlParser.Program_unitContext = Program_unitContext; +OracleSqlParser.Create_dimensionContext = Create_dimensionContext; +OracleSqlParser.Create_directoryContext = Create_directoryContext; +OracleSqlParser.Directory_nameContext = Directory_nameContext; +OracleSqlParser.Directory_pathContext = Directory_pathContext; +OracleSqlParser.Create_inmemory_join_groupContext = Create_inmemory_join_groupContext; +OracleSqlParser.Drop_hierarchyContext = Drop_hierarchyContext; +OracleSqlParser.Alter_libraryContext = Alter_libraryContext; +OracleSqlParser.Drop_javaContext = Drop_javaContext; +OracleSqlParser.Drop_libraryContext = Drop_libraryContext; +OracleSqlParser.Create_javaContext = Create_javaContext; +OracleSqlParser.Create_libraryContext = Create_libraryContext; +OracleSqlParser.Plsql_library_sourceContext = Plsql_library_sourceContext; +OracleSqlParser.Credential_nameContext = Credential_nameContext; +OracleSqlParser.Library_editionableContext = Library_editionableContext; +OracleSqlParser.Library_debugContext = Library_debugContext; +OracleSqlParser.Compiler_parameters_clauseContext = Compiler_parameters_clauseContext; +OracleSqlParser.Parameter_valueContext = Parameter_valueContext; +OracleSqlParser.Library_nameContext = Library_nameContext; +OracleSqlParser.Alter_dimensionContext = Alter_dimensionContext; +OracleSqlParser.Level_clauseContext = Level_clauseContext; +OracleSqlParser.Hierarchy_clauseContext = Hierarchy_clauseContext; +OracleSqlParser.Dimension_join_clauseContext = Dimension_join_clauseContext; +OracleSqlParser.Attribute_clauseContext = Attribute_clauseContext; +OracleSqlParser.Extended_attribute_clauseContext = Extended_attribute_clauseContext; +OracleSqlParser.Column_one_or_more_sub_clauseContext = Column_one_or_more_sub_clauseContext; +OracleSqlParser.Alter_viewContext = Alter_viewContext; +OracleSqlParser.Alter_view_editionableContext = Alter_view_editionableContext; +OracleSqlParser.Create_viewContext = Create_viewContext; +OracleSqlParser.Editioning_clauseContext = Editioning_clauseContext; +OracleSqlParser.View_optionsContext = View_optionsContext; +OracleSqlParser.View_alias_constraintContext = View_alias_constraintContext; +OracleSqlParser.Object_view_clauseContext = Object_view_clauseContext; +OracleSqlParser.Inline_constraintContext = Inline_constraintContext; +OracleSqlParser.Inline_ref_constraintContext = Inline_ref_constraintContext; +OracleSqlParser.Out_of_line_ref_constraintContext = Out_of_line_ref_constraintContext; +OracleSqlParser.Out_of_line_constraintContext = Out_of_line_constraintContext; +OracleSqlParser.Constraint_stateContext = Constraint_stateContext; +OracleSqlParser.Xmltype_view_clauseContext = Xmltype_view_clauseContext; +OracleSqlParser.Xml_schema_specContext = Xml_schema_specContext; +OracleSqlParser.Xml_schema_urlContext = Xml_schema_urlContext; +OracleSqlParser.ElementContext = ElementContext; +OracleSqlParser.Alter_tablespaceContext = Alter_tablespaceContext; +OracleSqlParser.Datafile_tempfile_clausesContext = Datafile_tempfile_clausesContext; +OracleSqlParser.Tablespace_logging_clausesContext = Tablespace_logging_clausesContext; +OracleSqlParser.Tablespace_group_clauseContext = Tablespace_group_clauseContext; +OracleSqlParser.Tablespace_group_nameContext = Tablespace_group_nameContext; +OracleSqlParser.Tablespace_state_clausesContext = Tablespace_state_clausesContext; +OracleSqlParser.Flashback_mode_clauseContext = Flashback_mode_clauseContext; +OracleSqlParser.New_tablespace_nameContext = New_tablespace_nameContext; +OracleSqlParser.Create_tablespaceContext = Create_tablespaceContext; +OracleSqlParser.Permanent_tablespace_clauseContext = Permanent_tablespace_clauseContext; +OracleSqlParser.Tablespace_encryption_specContext = Tablespace_encryption_specContext; +OracleSqlParser.Logging_clauseContext = Logging_clauseContext; +OracleSqlParser.Extent_management_clauseContext = Extent_management_clauseContext; +OracleSqlParser.Segment_management_clauseContext = Segment_management_clauseContext; +OracleSqlParser.Temporary_tablespace_clauseContext = Temporary_tablespace_clauseContext; +OracleSqlParser.Undo_tablespace_clauseContext = Undo_tablespace_clauseContext; +OracleSqlParser.Tablespace_retention_clauseContext = Tablespace_retention_clauseContext; +OracleSqlParser.Create_tablespace_setContext = Create_tablespace_setContext; +OracleSqlParser.Permanent_tablespace_attrsContext = Permanent_tablespace_attrsContext; +OracleSqlParser.Tablespace_encryption_clauseContext = Tablespace_encryption_clauseContext; +OracleSqlParser.Default_tablespace_paramsContext = Default_tablespace_paramsContext; +OracleSqlParser.Default_table_compressionContext = Default_table_compressionContext; +OracleSqlParser.Low_highContext = Low_highContext; +OracleSqlParser.Default_index_compressionContext = Default_index_compressionContext; +OracleSqlParser.Inmmemory_clauseContext = Inmmemory_clauseContext; +OracleSqlParser.Datafile_specificationContext = Datafile_specificationContext; +OracleSqlParser.Tempfile_specificationContext = Tempfile_specificationContext; +OracleSqlParser.Datafile_tempfile_specContext = Datafile_tempfile_specContext; +OracleSqlParser.Redo_log_file_specContext = Redo_log_file_specContext; +OracleSqlParser.Autoextend_clauseContext = Autoextend_clauseContext; +OracleSqlParser.Maxsize_clauseContext = Maxsize_clauseContext; +OracleSqlParser.Build_clauseContext = Build_clauseContext; +OracleSqlParser.Parallel_clauseContext = Parallel_clauseContext; +OracleSqlParser.Parallel_instances_clauseContext = Parallel_instances_clauseContext; +OracleSqlParser.Alter_materialized_viewContext = Alter_materialized_viewContext; +OracleSqlParser.Alter_mv_option1Context = Alter_mv_option1Context; +OracleSqlParser.Alter_mv_refreshContext = Alter_mv_refreshContext; +OracleSqlParser.Rollback_segmentContext = Rollback_segmentContext; +OracleSqlParser.Modify_mv_column_clauseContext = Modify_mv_column_clauseContext; +OracleSqlParser.Alter_materialized_view_logContext = Alter_materialized_view_logContext; +OracleSqlParser.Add_mv_log_column_clauseContext = Add_mv_log_column_clauseContext; +OracleSqlParser.Move_mv_log_clauseContext = Move_mv_log_clauseContext; +OracleSqlParser.Mv_log_augmentationContext = Mv_log_augmentationContext; +OracleSqlParser.Create_materialized_view_logContext = Create_materialized_view_logContext; +OracleSqlParser.New_values_clauseContext = New_values_clauseContext; +OracleSqlParser.Mv_log_purge_clauseContext = Mv_log_purge_clauseContext; +OracleSqlParser.Create_materialized_zonemapContext = Create_materialized_zonemapContext; +OracleSqlParser.Alter_materialized_zonemapContext = Alter_materialized_zonemapContext; +OracleSqlParser.Drop_materialized_zonemapContext = Drop_materialized_zonemapContext; +OracleSqlParser.Zonemap_refresh_clauseContext = Zonemap_refresh_clauseContext; +OracleSqlParser.Zonemap_attributesContext = Zonemap_attributesContext; +OracleSqlParser.Zonemap_nameContext = Zonemap_nameContext; +OracleSqlParser.Operator_nameContext = Operator_nameContext; +OracleSqlParser.Operator_function_nameContext = Operator_function_nameContext; +OracleSqlParser.Create_zonemap_on_tableContext = Create_zonemap_on_tableContext; +OracleSqlParser.Create_zonemap_as_subqueryContext = Create_zonemap_as_subqueryContext; +OracleSqlParser.Alter_operatorContext = Alter_operatorContext; +OracleSqlParser.Drop_operatorContext = Drop_operatorContext; +OracleSqlParser.Create_operatorContext = Create_operatorContext; +OracleSqlParser.Binding_clauseContext = Binding_clauseContext; +OracleSqlParser.Add_binding_clauseContext = Add_binding_clauseContext; +OracleSqlParser.Implementation_clauseContext = Implementation_clauseContext; +OracleSqlParser.Primary_operator_listContext = Primary_operator_listContext; +OracleSqlParser.Primary_operator_itemContext = Primary_operator_itemContext; +OracleSqlParser.Operator_context_clauseContext = Operator_context_clauseContext; +OracleSqlParser.Using_function_clauseContext = Using_function_clauseContext; +OracleSqlParser.Drop_binding_clauseContext = Drop_binding_clauseContext; +OracleSqlParser.Create_materialized_viewContext = Create_materialized_viewContext; +OracleSqlParser.Scoped_table_ref_constraintContext = Scoped_table_ref_constraintContext; +OracleSqlParser.Mv_column_aliasContext = Mv_column_aliasContext; +OracleSqlParser.Create_mv_refreshContext = Create_mv_refreshContext; +OracleSqlParser.Drop_materialized_viewContext = Drop_materialized_viewContext; +OracleSqlParser.Drop_materialized_view_logContext = Drop_materialized_view_logContext; +OracleSqlParser.Create_contextContext = Create_contextContext; +OracleSqlParser.Oracle_namespaceContext = Oracle_namespaceContext; +OracleSqlParser.Create_clusterContext = Create_clusterContext; +OracleSqlParser.Create_profileContext = Create_profileContext; +OracleSqlParser.Resource_parametersContext = Resource_parametersContext; +OracleSqlParser.Password_parametersContext = Password_parametersContext; +OracleSqlParser.Create_lockdown_profileContext = Create_lockdown_profileContext; +OracleSqlParser.Static_base_profileContext = Static_base_profileContext; +OracleSqlParser.Dynamic_base_profileContext = Dynamic_base_profileContext; +OracleSqlParser.Create_outlineContext = Create_outlineContext; +OracleSqlParser.Create_restore_pointContext = Create_restore_pointContext; +OracleSqlParser.Create_roleContext = Create_roleContext; +OracleSqlParser.Create_tableContext = Create_tableContext; +OracleSqlParser.Xmltype_tableContext = Xmltype_tableContext; +OracleSqlParser.Xmltype_virtual_columnsContext = Xmltype_virtual_columnsContext; +OracleSqlParser.Xmltype_column_propertiesContext = Xmltype_column_propertiesContext; +OracleSqlParser.Xmltype_storageContext = Xmltype_storageContext; +OracleSqlParser.Xmlschema_specContext = Xmlschema_specContext; +OracleSqlParser.Object_tableContext = Object_tableContext; +OracleSqlParser.Object_typeContext = Object_typeContext; +OracleSqlParser.Oid_index_clauseContext = Oid_index_clauseContext; +OracleSqlParser.Oid_clauseContext = Oid_clauseContext; +OracleSqlParser.Object_propertiesContext = Object_propertiesContext; +OracleSqlParser.Object_table_substitutionContext = Object_table_substitutionContext; +OracleSqlParser.Relational_tableContext = Relational_tableContext; +OracleSqlParser.Relational_table_propertiesContext = Relational_table_propertiesContext; +OracleSqlParser.Relational_table_propertyContext = Relational_table_propertyContext; +OracleSqlParser.Immutable_table_clausesContext = Immutable_table_clausesContext; +OracleSqlParser.Immutable_table_no_drop_clauseContext = Immutable_table_no_drop_clauseContext; +OracleSqlParser.Immutable_table_no_delete_clauseContext = Immutable_table_no_delete_clauseContext; +OracleSqlParser.Blockchain_table_clausesContext = Blockchain_table_clausesContext; +OracleSqlParser.Blockchain_drop_table_clauseContext = Blockchain_drop_table_clauseContext; +OracleSqlParser.Blockchain_row_retention_clauseContext = Blockchain_row_retention_clauseContext; +OracleSqlParser.Blockchain_hash_and_data_format_clauseContext = Blockchain_hash_and_data_format_clauseContext; +OracleSqlParser.Collation_nameContext = Collation_nameContext; +OracleSqlParser.Table_propertiesContext = Table_propertiesContext; +OracleSqlParser.Read_only_clauseContext = Read_only_clauseContext; +OracleSqlParser.Indexing_clauseContext = Indexing_clauseContext; +OracleSqlParser.Attribute_clustering_clauseContext = Attribute_clustering_clauseContext; +OracleSqlParser.Clustering_joinContext = Clustering_joinContext; +OracleSqlParser.Clustering_join_itemContext = Clustering_join_itemContext; +OracleSqlParser.Equijoin_conditionContext = Equijoin_conditionContext; +OracleSqlParser.Cluster_clauseContext = Cluster_clauseContext; +OracleSqlParser.Clustering_columnsContext = Clustering_columnsContext; +OracleSqlParser.Clustering_column_groupContext = Clustering_column_groupContext; +OracleSqlParser.Yes_noContext = Yes_noContext; +OracleSqlParser.Zonemap_clauseContext = Zonemap_clauseContext; +OracleSqlParser.Logical_replication_clauseContext = Logical_replication_clauseContext; +OracleSqlParser.Table_nameContext = Table_nameContext; +OracleSqlParser.Relational_propertyContext = Relational_propertyContext; +OracleSqlParser.Table_partitioning_clausesContext = Table_partitioning_clausesContext; +OracleSqlParser.Range_partitionsContext = Range_partitionsContext; +OracleSqlParser.List_partitionsContext = List_partitionsContext; +OracleSqlParser.Hash_partitionsContext = Hash_partitionsContext; +OracleSqlParser.Individual_hash_partitionsContext = Individual_hash_partitionsContext; +OracleSqlParser.Hash_partitions_by_quantityContext = Hash_partitions_by_quantityContext; +OracleSqlParser.Hash_partition_quantityContext = Hash_partition_quantityContext; +OracleSqlParser.Composite_range_partitionsContext = Composite_range_partitionsContext; +OracleSqlParser.Composite_list_partitionsContext = Composite_list_partitionsContext; +OracleSqlParser.Composite_hash_partitionsContext = Composite_hash_partitionsContext; +OracleSqlParser.Reference_partitioningContext = Reference_partitioningContext; +OracleSqlParser.Reference_partition_descContext = Reference_partition_descContext; +OracleSqlParser.System_partitioningContext = System_partitioningContext; +OracleSqlParser.Range_partition_descContext = Range_partition_descContext; +OracleSqlParser.List_partition_descContext = List_partition_descContext; +OracleSqlParser.Subpartition_templateContext = Subpartition_templateContext; +OracleSqlParser.Hash_subpartition_quantityContext = Hash_subpartition_quantityContext; +OracleSqlParser.Subpartition_by_rangeContext = Subpartition_by_rangeContext; +OracleSqlParser.Subpartition_by_listContext = Subpartition_by_listContext; +OracleSqlParser.Subpartition_by_hashContext = Subpartition_by_hashContext; +OracleSqlParser.Subpartition_nameContext = Subpartition_nameContext; +OracleSqlParser.Range_subpartition_descContext = Range_subpartition_descContext; +OracleSqlParser.List_subpartition_descContext = List_subpartition_descContext; +OracleSqlParser.Individual_hash_subpartsContext = Individual_hash_subpartsContext; +OracleSqlParser.Hash_subparts_by_quantityContext = Hash_subparts_by_quantityContext; +OracleSqlParser.Range_values_clauseContext = Range_values_clauseContext; +OracleSqlParser.Range_values_listContext = Range_values_listContext; +OracleSqlParser.List_values_clauseContext = List_values_clauseContext; +OracleSqlParser.Table_partition_descriptionContext = Table_partition_descriptionContext; +OracleSqlParser.Partitioning_storage_clauseContext = Partitioning_storage_clauseContext; +OracleSqlParser.Lob_partitioning_storageContext = Lob_partitioning_storageContext; +OracleSqlParser.Size_clauseContext = Size_clauseContext; +OracleSqlParser.Table_compressionContext = Table_compressionContext; +OracleSqlParser.Inmemory_table_clauseContext = Inmemory_table_clauseContext; +OracleSqlParser.Inmemory_attributesContext = Inmemory_attributesContext; +OracleSqlParser.Inmemory_memcompressContext = Inmemory_memcompressContext; +OracleSqlParser.Inmemory_priorityContext = Inmemory_priorityContext; +OracleSqlParser.Inmemory_distributeContext = Inmemory_distributeContext; +OracleSqlParser.Inmemory_duplicateContext = Inmemory_duplicateContext; +OracleSqlParser.Inmemory_column_clauseContext = Inmemory_column_clauseContext; +OracleSqlParser.Physical_attributes_clauseContext = Physical_attributes_clauseContext; +OracleSqlParser.Storage_clauseContext = Storage_clauseContext; +OracleSqlParser.Deferred_segment_creationContext = Deferred_segment_creationContext; +OracleSqlParser.Segment_attributes_clauseContext = Segment_attributes_clauseContext; +OracleSqlParser.Physical_propertiesContext = Physical_propertiesContext; +OracleSqlParser.Ilm_clauseContext = Ilm_clauseContext; +OracleSqlParser.Ilm_policy_clauseContext = Ilm_policy_clauseContext; +OracleSqlParser.Ilm_compression_policyContext = Ilm_compression_policyContext; +OracleSqlParser.Ilm_tiering_policyContext = Ilm_tiering_policyContext; +OracleSqlParser.Ilm_after_onContext = Ilm_after_onContext; +OracleSqlParser.Segment_groupContext = Segment_groupContext; +OracleSqlParser.Ilm_inmemory_policyContext = Ilm_inmemory_policyContext; +OracleSqlParser.Ilm_time_periodContext = Ilm_time_periodContext; +OracleSqlParser.Heap_org_table_clauseContext = Heap_org_table_clauseContext; +OracleSqlParser.External_table_clauseContext = External_table_clauseContext; +OracleSqlParser.Access_driver_typeContext = Access_driver_typeContext; +OracleSqlParser.External_table_data_propsContext = External_table_data_propsContext; +OracleSqlParser.External_table_data_formatContext = External_table_data_formatContext; +OracleSqlParser.External_table_transformContext = External_table_transformContext; +OracleSqlParser.External_table_fieldContext = External_table_fieldContext; +OracleSqlParser.External_table_field_listContext = External_table_field_listContext; +OracleSqlParser.External_table_fields_clauseContext = External_table_fields_clauseContext; +OracleSqlParser.External_table_position_clauseContext = External_table_position_clauseContext; +OracleSqlParser.External_table_datatype_clauseContext = External_table_datatype_clauseContext; +OracleSqlParser.External_table_delimit_clauseContext = External_table_delimit_clauseContext; +OracleSqlParser.External_table_trim_clauseContext = External_table_trim_clauseContext; +OracleSqlParser.External_table_date_format_clauseContext = External_table_date_format_clauseContext; +OracleSqlParser.External_table_init_clauseContext = External_table_init_clauseContext; +OracleSqlParser.External_table_condition_clauseContext = External_table_condition_clauseContext; +OracleSqlParser.External_table_lls_clauseContext = External_table_lls_clauseContext; +OracleSqlParser.External_table_recordsContext = External_table_recordsContext; +OracleSqlParser.External_table_record_options_clauseContext = External_table_record_options_clauseContext; +OracleSqlParser.External_table_output_filesContext = External_table_output_filesContext; +OracleSqlParser.External_table_fieldsContext = External_table_fieldsContext; +OracleSqlParser.External_table_datapumpContext = External_table_datapumpContext; +OracleSqlParser.External_table_hiveContext = External_table_hiveContext; +OracleSqlParser.External_table_hive_parameter_mapContext = External_table_hive_parameter_mapContext; +OracleSqlParser.External_table_hive_parameter_map_entryContext = External_table_hive_parameter_map_entryContext; +OracleSqlParser.External_table_directoryContext = External_table_directoryContext; +OracleSqlParser.Row_movement_clauseContext = Row_movement_clauseContext; +OracleSqlParser.Flashback_archive_clauseContext = Flashback_archive_clauseContext; +OracleSqlParser.Log_grpContext = Log_grpContext; +OracleSqlParser.Supplemental_table_loggingContext = Supplemental_table_loggingContext; +OracleSqlParser.Supplemental_log_grp_clauseContext = Supplemental_log_grp_clauseContext; +OracleSqlParser.Supplemental_id_key_clauseContext = Supplemental_id_key_clauseContext; +OracleSqlParser.Allocate_extent_clauseContext = Allocate_extent_clauseContext; +OracleSqlParser.Deallocate_unused_clauseContext = Deallocate_unused_clauseContext; +OracleSqlParser.Shrink_clauseContext = Shrink_clauseContext; +OracleSqlParser.Records_per_block_clauseContext = Records_per_block_clauseContext; +OracleSqlParser.Upgrade_table_clauseContext = Upgrade_table_clauseContext; +OracleSqlParser.Truncate_tableContext = Truncate_tableContext; +OracleSqlParser.Drop_tableContext = Drop_tableContext; +OracleSqlParser.Drop_tablespaceContext = Drop_tablespaceContext; +OracleSqlParser.Drop_tablespace_setContext = Drop_tablespace_setContext; +OracleSqlParser.Including_contents_clauseContext = Including_contents_clauseContext; +OracleSqlParser.Drop_viewContext = Drop_viewContext; +OracleSqlParser.Comment_on_columnContext = Comment_on_columnContext; +OracleSqlParser.Enable_or_disableContext = Enable_or_disableContext; +OracleSqlParser.Allow_or_disallowContext = Allow_or_disallowContext; +OracleSqlParser.Alter_synonymContext = Alter_synonymContext; +OracleSqlParser.Create_synonymContext = Create_synonymContext; +OracleSqlParser.Drop_synonymContext = Drop_synonymContext; +OracleSqlParser.Create_spfileContext = Create_spfileContext; +OracleSqlParser.Spfile_nameContext = Spfile_nameContext; +OracleSqlParser.Pfile_nameContext = Pfile_nameContext; +OracleSqlParser.Comment_on_tableContext = Comment_on_tableContext; +OracleSqlParser.Comment_on_materializedContext = Comment_on_materializedContext; +OracleSqlParser.Alter_analytic_viewContext = Alter_analytic_viewContext; +OracleSqlParser.Alter_add_cache_clauseContext = Alter_add_cache_clauseContext; +OracleSqlParser.Levels_itemContext = Levels_itemContext; +OracleSqlParser.Measure_listContext = Measure_listContext; +OracleSqlParser.Alter_drop_cache_clauseContext = Alter_drop_cache_clauseContext; +OracleSqlParser.Alter_attribute_dimensionContext = Alter_attribute_dimensionContext; +OracleSqlParser.Alter_audit_policyContext = Alter_audit_policyContext; +OracleSqlParser.Alter_clusterContext = Alter_clusterContext; +OracleSqlParser.Drop_analytic_viewContext = Drop_analytic_viewContext; +OracleSqlParser.Drop_attribute_dimensionContext = Drop_attribute_dimensionContext; +OracleSqlParser.Drop_audit_policyContext = Drop_audit_policyContext; +OracleSqlParser.Drop_flashback_archiveContext = Drop_flashback_archiveContext; +OracleSqlParser.Drop_clusterContext = Drop_clusterContext; +OracleSqlParser.Drop_contextContext = Drop_contextContext; +OracleSqlParser.Drop_directoryContext = Drop_directoryContext; +OracleSqlParser.Drop_diskgroupContext = Drop_diskgroupContext; +OracleSqlParser.Drop_editionContext = Drop_editionContext; +OracleSqlParser.Truncate_clusterContext = Truncate_clusterContext; +OracleSqlParser.Cache_or_nocacheContext = Cache_or_nocacheContext; +OracleSqlParser.Database_nameContext = Database_nameContext; +OracleSqlParser.Alter_databaseContext = Alter_databaseContext; +OracleSqlParser.Database_clauseContext = Database_clauseContext; +OracleSqlParser.Startup_clausesContext = Startup_clausesContext; +OracleSqlParser.Resetlogs_or_noresetlogsContext = Resetlogs_or_noresetlogsContext; +OracleSqlParser.Upgrade_or_downgradeContext = Upgrade_or_downgradeContext; +OracleSqlParser.Recovery_clausesContext = Recovery_clausesContext; +OracleSqlParser.Begin_or_endContext = Begin_or_endContext; +OracleSqlParser.General_recoveryContext = General_recoveryContext; +OracleSqlParser.Full_database_recoveryContext = Full_database_recoveryContext; +OracleSqlParser.Partial_database_recoveryContext = Partial_database_recoveryContext; +OracleSqlParser.Partial_database_recovery_10gContext = Partial_database_recovery_10gContext; +OracleSqlParser.Managed_standby_recoveryContext = Managed_standby_recoveryContext; +OracleSqlParser.Db_nameContext = Db_nameContext; +OracleSqlParser.Database_file_clausesContext = Database_file_clausesContext; +OracleSqlParser.Create_datafile_clauseContext = Create_datafile_clauseContext; +OracleSqlParser.Alter_datafile_clauseContext = Alter_datafile_clauseContext; +OracleSqlParser.Alter_tempfile_clauseContext = Alter_tempfile_clauseContext; +OracleSqlParser.Move_datafile_clauseContext = Move_datafile_clauseContext; +OracleSqlParser.Logfile_clausesContext = Logfile_clausesContext; +OracleSqlParser.Add_logfile_clausesContext = Add_logfile_clausesContext; +OracleSqlParser.Group_redo_logfileContext = Group_redo_logfileContext; +OracleSqlParser.Drop_logfile_clausesContext = Drop_logfile_clausesContext; +OracleSqlParser.Switch_logfile_clauseContext = Switch_logfile_clauseContext; +OracleSqlParser.Supplemental_db_loggingContext = Supplemental_db_loggingContext; +OracleSqlParser.Add_or_dropContext = Add_or_dropContext; +OracleSqlParser.Supplemental_plsql_clauseContext = Supplemental_plsql_clauseContext; +OracleSqlParser.Logfile_descriptorContext = Logfile_descriptorContext; +OracleSqlParser.Controlfile_clausesContext = Controlfile_clausesContext; +OracleSqlParser.Trace_file_clauseContext = Trace_file_clauseContext; +OracleSqlParser.Standby_database_clausesContext = Standby_database_clausesContext; +OracleSqlParser.Activate_standby_db_clauseContext = Activate_standby_db_clauseContext; +OracleSqlParser.Maximize_standby_db_clauseContext = Maximize_standby_db_clauseContext; +OracleSqlParser.Register_logfile_clauseContext = Register_logfile_clauseContext; +OracleSqlParser.Commit_switchover_clauseContext = Commit_switchover_clauseContext; +OracleSqlParser.Start_standby_clauseContext = Start_standby_clauseContext; +OracleSqlParser.Stop_standby_clauseContext = Stop_standby_clauseContext; +OracleSqlParser.Convert_database_clauseContext = Convert_database_clauseContext; +OracleSqlParser.Default_settings_clauseContext = Default_settings_clauseContext; +OracleSqlParser.Set_time_zone_clauseContext = Set_time_zone_clauseContext; +OracleSqlParser.Instance_clausesContext = Instance_clausesContext; +OracleSqlParser.Security_clauseContext = Security_clauseContext; +OracleSqlParser.DomainContext = DomainContext; +OracleSqlParser.DatabaseContext = DatabaseContext; +OracleSqlParser.Edition_nameContext = Edition_nameContext; +OracleSqlParser.FilenumberContext = FilenumberContext; +OracleSqlParser.FilenameContext = FilenameContext; +OracleSqlParser.Prepare_clauseContext = Prepare_clauseContext; +OracleSqlParser.Drop_mirror_clauseContext = Drop_mirror_clauseContext; +OracleSqlParser.Lost_write_protectionContext = Lost_write_protectionContext; +OracleSqlParser.Cdb_fleet_clausesContext = Cdb_fleet_clausesContext; +OracleSqlParser.Lead_cdb_clauseContext = Lead_cdb_clauseContext; +OracleSqlParser.Lead_cdb_uri_clauseContext = Lead_cdb_uri_clauseContext; +OracleSqlParser.Property_clausesContext = Property_clausesContext; +OracleSqlParser.Replay_upgrade_clausesContext = Replay_upgrade_clausesContext; +OracleSqlParser.Alter_database_linkContext = Alter_database_linkContext; +OracleSqlParser.Password_valueContext = Password_valueContext; +OracleSqlParser.Link_authenticationContext = Link_authenticationContext; +OracleSqlParser.Create_schemaContext = Create_schemaContext; +OracleSqlParser.Create_databaseContext = Create_databaseContext; +OracleSqlParser.Database_logging_clausesContext = Database_logging_clausesContext; +OracleSqlParser.Database_logging_sub_clauseContext = Database_logging_sub_clauseContext; +OracleSqlParser.Tablespace_clausesContext = Tablespace_clausesContext; +OracleSqlParser.Enable_pluggable_databaseContext = Enable_pluggable_databaseContext; +OracleSqlParser.File_name_convertContext = File_name_convertContext; +OracleSqlParser.Filename_convert_sub_clauseContext = Filename_convert_sub_clauseContext; +OracleSqlParser.Tablespace_datafile_clausesContext = Tablespace_datafile_clausesContext; +OracleSqlParser.Undo_mode_clauseContext = Undo_mode_clauseContext; +OracleSqlParser.Default_tablespaceContext = Default_tablespaceContext; +OracleSqlParser.Default_temp_tablespaceContext = Default_temp_tablespaceContext; +OracleSqlParser.Undo_tablespaceContext = Undo_tablespaceContext; +OracleSqlParser.Drop_databaseContext = Drop_databaseContext; +OracleSqlParser.Create_database_linkContext = Create_database_linkContext; +OracleSqlParser.Drop_database_linkContext = Drop_database_linkContext; +OracleSqlParser.Alter_tablespace_setContext = Alter_tablespace_setContext; +OracleSqlParser.Alter_tablespace_attrsContext = Alter_tablespace_attrsContext; +OracleSqlParser.Alter_tablespace_encryptionContext = Alter_tablespace_encryptionContext; +OracleSqlParser.Ts_file_name_convertContext = Ts_file_name_convertContext; +OracleSqlParser.Alter_roleContext = Alter_roleContext; +OracleSqlParser.Role_identified_clauseContext = Role_identified_clauseContext; +OracleSqlParser.Alter_tableContext = Alter_tableContext; +OracleSqlParser.Memoptimize_read_write_clauseContext = Memoptimize_read_write_clauseContext; +OracleSqlParser.Alter_table_propertiesContext = Alter_table_propertiesContext; +OracleSqlParser.Alter_table_partitioningContext = Alter_table_partitioningContext; +OracleSqlParser.Add_table_partitionContext = Add_table_partitionContext; +OracleSqlParser.Drop_table_partitionContext = Drop_table_partitionContext; +OracleSqlParser.Merge_table_partitionContext = Merge_table_partitionContext; +OracleSqlParser.Modify_table_partitionContext = Modify_table_partitionContext; +OracleSqlParser.Split_table_partitionContext = Split_table_partitionContext; +OracleSqlParser.Truncate_table_partitionContext = Truncate_table_partitionContext; +OracleSqlParser.Exchange_table_partitionContext = Exchange_table_partitionContext; +OracleSqlParser.Coalesce_table_partitionContext = Coalesce_table_partitionContext; +OracleSqlParser.Alter_interval_partitionContext = Alter_interval_partitionContext; +OracleSqlParser.Move_table_partitionContext = Move_table_partitionContext; +OracleSqlParser.Filter_conditionContext = Filter_conditionContext; +OracleSqlParser.Partition_extended_namesContext = Partition_extended_namesContext; +OracleSqlParser.Subpartition_extended_namesContext = Subpartition_extended_namesContext; +OracleSqlParser.Alter_table_properties_1Context = Alter_table_properties_1Context; +OracleSqlParser.Alter_iot_clausesContext = Alter_iot_clausesContext; +OracleSqlParser.Alter_mapping_table_clauseContext = Alter_mapping_table_clauseContext; +OracleSqlParser.Alter_overflow_clauseContext = Alter_overflow_clauseContext; +OracleSqlParser.Add_overflow_clauseContext = Add_overflow_clauseContext; +OracleSqlParser.Update_index_clausesContext = Update_index_clausesContext; +OracleSqlParser.Update_global_index_clauseContext = Update_global_index_clauseContext; +OracleSqlParser.Update_all_indexes_clauseContext = Update_all_indexes_clauseContext; +OracleSqlParser.Update_all_indexes_index_clauseContext = Update_all_indexes_index_clauseContext; +OracleSqlParser.Update_index_partitionContext = Update_index_partitionContext; +OracleSqlParser.Update_index_subpartitionContext = Update_index_subpartitionContext; +OracleSqlParser.Enable_disable_clauseContext = Enable_disable_clauseContext; +OracleSqlParser.Using_index_clauseContext = Using_index_clauseContext; +OracleSqlParser.Index_attributesContext = Index_attributesContext; +OracleSqlParser.Sort_or_nosortContext = Sort_or_nosortContext; +OracleSqlParser.Exceptions_clauseContext = Exceptions_clauseContext; +OracleSqlParser.Move_table_clauseContext = Move_table_clauseContext; +OracleSqlParser.Index_org_table_clauseContext = Index_org_table_clauseContext; +OracleSqlParser.Mapping_table_clauseContext = Mapping_table_clauseContext; +OracleSqlParser.Key_compressionContext = Key_compressionContext; +OracleSqlParser.Index_org_overflow_clauseContext = Index_org_overflow_clauseContext; +OracleSqlParser.Column_clausesContext = Column_clausesContext; +OracleSqlParser.Modify_collection_retrievalContext = Modify_collection_retrievalContext; +OracleSqlParser.Collection_itemContext = Collection_itemContext; +OracleSqlParser.Rename_column_clauseContext = Rename_column_clauseContext; +OracleSqlParser.Old_column_nameContext = Old_column_nameContext; +OracleSqlParser.New_column_nameContext = New_column_nameContext; +OracleSqlParser.Add_modify_drop_column_clausesContext = Add_modify_drop_column_clausesContext; +OracleSqlParser.Drop_column_clauseContext = Drop_column_clauseContext; +OracleSqlParser.Modify_column_clausesContext = Modify_column_clausesContext; +OracleSqlParser.Modify_col_propertiesContext = Modify_col_propertiesContext; +OracleSqlParser.Modify_col_visibilityContext = Modify_col_visibilityContext; +OracleSqlParser.Modify_col_substitutableContext = Modify_col_substitutableContext; +OracleSqlParser.Add_column_clauseContext = Add_column_clauseContext; +OracleSqlParser.Varray_col_propertiesContext = Varray_col_propertiesContext; +OracleSqlParser.Varray_storage_clauseContext = Varray_storage_clauseContext; +OracleSqlParser.Lob_segnameContext = Lob_segnameContext; +OracleSqlParser.Lob_itemContext = Lob_itemContext; +OracleSqlParser.Lob_storage_parametersContext = Lob_storage_parametersContext; +OracleSqlParser.Lob_storage_clauseContext = Lob_storage_clauseContext; +OracleSqlParser.Modify_lob_storage_clauseContext = Modify_lob_storage_clauseContext; +OracleSqlParser.Modify_lob_parametersContext = Modify_lob_parametersContext; +OracleSqlParser.Lob_parametersContext = Lob_parametersContext; +OracleSqlParser.Lob_deduplicate_clauseContext = Lob_deduplicate_clauseContext; +OracleSqlParser.Lob_compression_clauseContext = Lob_compression_clauseContext; +OracleSqlParser.Lob_retention_clauseContext = Lob_retention_clauseContext; +OracleSqlParser.Encryption_specContext = Encryption_specContext; +OracleSqlParser.TablespaceContext = TablespaceContext; +OracleSqlParser.Varray_itemContext = Varray_itemContext; +OracleSqlParser.Column_propertiesContext = Column_propertiesContext; +OracleSqlParser.Lob_partition_storageContext = Lob_partition_storageContext; +OracleSqlParser.Period_definitionContext = Period_definitionContext; +OracleSqlParser.Start_time_columnContext = Start_time_columnContext; +OracleSqlParser.End_time_columnContext = End_time_columnContext; +OracleSqlParser.Column_definitionContext = Column_definitionContext; +OracleSqlParser.Column_collation_nameContext = Column_collation_nameContext; +OracleSqlParser.Identity_clauseContext = Identity_clauseContext; +OracleSqlParser.Identity_options_parenthesesContext = Identity_options_parenthesesContext; +OracleSqlParser.Identity_optionsContext = Identity_optionsContext; +OracleSqlParser.Virtual_column_definitionContext = Virtual_column_definitionContext; +OracleSqlParser.Virtual_column_expressionContext = Virtual_column_expressionContext; +OracleSqlParser.Autogenerated_sequence_definitionContext = Autogenerated_sequence_definitionContext; +OracleSqlParser.By_user_for_statistics_clauseContext = By_user_for_statistics_clauseContext; +OracleSqlParser.Evaluation_edition_clauseContext = Evaluation_edition_clauseContext; +OracleSqlParser.Nested_table_col_propertiesContext = Nested_table_col_propertiesContext; +OracleSqlParser.Nested_itemContext = Nested_itemContext; +OracleSqlParser.Substitutable_column_clauseContext = Substitutable_column_clauseContext; +OracleSqlParser.Partition_nameContext = Partition_nameContext; +OracleSqlParser.Supplemental_logging_propsContext = Supplemental_logging_propsContext; +OracleSqlParser.Object_type_col_propertiesContext = Object_type_col_propertiesContext; +OracleSqlParser.Constraint_clausesContext = Constraint_clausesContext; +OracleSqlParser.Old_constraint_nameContext = Old_constraint_nameContext; +OracleSqlParser.New_constraint_nameContext = New_constraint_nameContext; +OracleSqlParser.Drop_constraint_clauseContext = Drop_constraint_clauseContext; +OracleSqlParser.Check_constraintContext = Check_constraintContext; +OracleSqlParser.Foreign_key_clauseContext = Foreign_key_clauseContext; +OracleSqlParser.References_clauseContext = References_clauseContext; +OracleSqlParser.On_delete_clauseContext = On_delete_clauseContext; +OracleSqlParser.Anonymous_blockContext = Anonymous_blockContext; +OracleSqlParser.Invoker_rights_clauseContext = Invoker_rights_clauseContext; +OracleSqlParser.Call_specContext = Call_specContext; +OracleSqlParser.Java_specContext = Java_specContext; +OracleSqlParser.C_specContext = C_specContext; +OracleSqlParser.C_agent_in_clauseContext = C_agent_in_clauseContext; +OracleSqlParser.C_parameters_clauseContext = C_parameters_clauseContext; +OracleSqlParser.C_external_parameterContext = C_external_parameterContext; +OracleSqlParser.C_propertyContext = C_propertyContext; +OracleSqlParser.ParameterContext = ParameterContext; +OracleSqlParser.Default_value_partContext = Default_value_partContext; +OracleSqlParser.Seq_of_declare_specsContext = Seq_of_declare_specsContext; +OracleSqlParser.Declare_specContext = Declare_specContext; +OracleSqlParser.Variable_declarationContext = Variable_declarationContext; +OracleSqlParser.Subtype_declarationContext = Subtype_declarationContext; +OracleSqlParser.Cursor_declarationContext = Cursor_declarationContext; +OracleSqlParser.Parameter_specContext = Parameter_specContext; +OracleSqlParser.Exception_declarationContext = Exception_declarationContext; +OracleSqlParser.Pragma_declarationContext = Pragma_declarationContext; +OracleSqlParser.Record_type_defContext = Record_type_defContext; +OracleSqlParser.Field_specContext = Field_specContext; +OracleSqlParser.Ref_cursor_type_defContext = Ref_cursor_type_defContext; +OracleSqlParser.Type_declarationContext = Type_declarationContext; +OracleSqlParser.Table_type_defContext = Table_type_defContext; +OracleSqlParser.Table_indexed_by_partContext = Table_indexed_by_partContext; +OracleSqlParser.Varray_type_defContext = Varray_type_defContext; +OracleSqlParser.Seq_of_statementsContext = Seq_of_statementsContext; +OracleSqlParser.Label_declarationContext = Label_declarationContext; +OracleSqlParser.StatementContext = StatementContext; +OracleSqlParser.Assignment_statementContext = Assignment_statementContext; +OracleSqlParser.Continue_statementContext = Continue_statementContext; +OracleSqlParser.Exit_statementContext = Exit_statementContext; +OracleSqlParser.Goto_statementContext = Goto_statementContext; +OracleSqlParser.If_statementContext = If_statementContext; +OracleSqlParser.Elsif_partContext = Elsif_partContext; +OracleSqlParser.Else_partContext = Else_partContext; +OracleSqlParser.Loop_statementContext = Loop_statementContext; +OracleSqlParser.Cursor_loop_paramContext = Cursor_loop_paramContext; +OracleSqlParser.Forall_statementContext = Forall_statementContext; +OracleSqlParser.Bounds_clauseContext = Bounds_clauseContext; +OracleSqlParser.Between_boundContext = Between_boundContext; +OracleSqlParser.Lower_boundContext = Lower_boundContext; +OracleSqlParser.Upper_boundContext = Upper_boundContext; +OracleSqlParser.Null_statementContext = Null_statementContext; +OracleSqlParser.Raise_statementContext = Raise_statementContext; +OracleSqlParser.Return_statementContext = Return_statementContext; +OracleSqlParser.Call_statementContext = Call_statementContext; +OracleSqlParser.Pipe_row_statementContext = Pipe_row_statementContext; +OracleSqlParser.Selection_directiveContext = Selection_directiveContext; +OracleSqlParser.Error_directiveContext = Error_directiveContext; +OracleSqlParser.Selection_directive_bodyContext = Selection_directive_bodyContext; +OracleSqlParser.BodyContext = BodyContext; +OracleSqlParser.Exception_handlerContext = Exception_handlerContext; +OracleSqlParser.Trigger_blockContext = Trigger_blockContext; +OracleSqlParser.Tps_blockContext = Tps_blockContext; +OracleSqlParser.BlockContext = BlockContext; +OracleSqlParser.Sql_statementContext = Sql_statementContext; +OracleSqlParser.Execute_immediateContext = Execute_immediateContext; +OracleSqlParser.Dynamic_returning_clauseContext = Dynamic_returning_clauseContext; +OracleSqlParser.Data_manipulation_language_statementsContext = Data_manipulation_language_statementsContext; +OracleSqlParser.Cursor_manipulation_statementsContext = Cursor_manipulation_statementsContext; +OracleSqlParser.Close_statementContext = Close_statementContext; +OracleSqlParser.Open_statementContext = Open_statementContext; +OracleSqlParser.Fetch_statementContext = Fetch_statementContext; +OracleSqlParser.Variable_or_collectionContext = Variable_or_collectionContext; +OracleSqlParser.Open_for_statementContext = Open_for_statementContext; +OracleSqlParser.Transaction_control_statementsContext = Transaction_control_statementsContext; +OracleSqlParser.Set_transaction_commandContext = Set_transaction_commandContext; +OracleSqlParser.Set_constraint_commandContext = Set_constraint_commandContext; +OracleSqlParser.Commit_statementContext = Commit_statementContext; +OracleSqlParser.Write_clauseContext = Write_clauseContext; +OracleSqlParser.Rollback_statementContext = Rollback_statementContext; +OracleSqlParser.Savepoint_statementContext = Savepoint_statementContext; +OracleSqlParser.Collection_method_callContext = Collection_method_callContext; +OracleSqlParser.Explain_statementContext = Explain_statementContext; +OracleSqlParser.Select_only_statementContext = Select_only_statementContext; +OracleSqlParser.Select_statementContext = Select_statementContext; +OracleSqlParser.With_clauseContext = With_clauseContext; +OracleSqlParser.With_factoring_clauseContext = With_factoring_clauseContext; +OracleSqlParser.Subquery_factoring_clauseContext = Subquery_factoring_clauseContext; +OracleSqlParser.Search_clauseContext = Search_clauseContext; +OracleSqlParser.Cycle_clauseContext = Cycle_clauseContext; +OracleSqlParser.Subav_factoring_clauseContext = Subav_factoring_clauseContext; +OracleSqlParser.Subav_clauseContext = Subav_clauseContext; +OracleSqlParser.Hierarchies_clauseContext = Hierarchies_clauseContext; +OracleSqlParser.Filter_clausesContext = Filter_clausesContext; +OracleSqlParser.Filter_clauseContext = Filter_clauseContext; +OracleSqlParser.Add_calcs_clauseContext = Add_calcs_clauseContext; +OracleSqlParser.Add_calc_meas_clauseContext = Add_calc_meas_clauseContext; +OracleSqlParser.SubqueryContext = SubqueryContext; +OracleSqlParser.Subquery_basic_elementsContext = Subquery_basic_elementsContext; +OracleSqlParser.Subquery_operation_partContext = Subquery_operation_partContext; +OracleSqlParser.Query_blockContext = Query_blockContext; +OracleSqlParser.Selected_listContext = Selected_listContext; +OracleSqlParser.From_clauseContext = From_clauseContext; +OracleSqlParser.Select_list_elementsContext = Select_list_elementsContext; +OracleSqlParser.Table_ref_listContext = Table_ref_listContext; +OracleSqlParser.Table_refContext = Table_refContext; +OracleSqlParser.Table_ref_auxContext = Table_ref_auxContext; +OracleSqlParser.Table_ref_aux_internalContext = Table_ref_aux_internalContext; +OracleSqlParser.Join_clauseContext = Join_clauseContext; +OracleSqlParser.Join_on_partContext = Join_on_partContext; +OracleSqlParser.Join_using_partContext = Join_using_partContext; +OracleSqlParser.Outer_join_typeContext = Outer_join_typeContext; +OracleSqlParser.Query_partition_clauseContext = Query_partition_clauseContext; +OracleSqlParser.Flashback_query_clauseContext = Flashback_query_clauseContext; +OracleSqlParser.Pivot_clauseContext = Pivot_clauseContext; +OracleSqlParser.Pivot_elementContext = Pivot_elementContext; +OracleSqlParser.Pivot_for_clauseContext = Pivot_for_clauseContext; +OracleSqlParser.Pivot_in_clauseContext = Pivot_in_clauseContext; +OracleSqlParser.Pivot_in_clause_elementContext = Pivot_in_clause_elementContext; +OracleSqlParser.Pivot_in_clause_elementsContext = Pivot_in_clause_elementsContext; +OracleSqlParser.Unpivot_clauseContext = Unpivot_clauseContext; +OracleSqlParser.Unpivot_in_clauseContext = Unpivot_in_clauseContext; +OracleSqlParser.Unpivot_in_elementsContext = Unpivot_in_elementsContext; +OracleSqlParser.Hierarchical_query_clauseContext = Hierarchical_query_clauseContext; +OracleSqlParser.Start_partContext = Start_partContext; +OracleSqlParser.Group_by_clauseContext = Group_by_clauseContext; +OracleSqlParser.Group_by_elementsContext = Group_by_elementsContext; +OracleSqlParser.Rollup_cube_clauseContext = Rollup_cube_clauseContext; +OracleSqlParser.Grouping_sets_clauseContext = Grouping_sets_clauseContext; +OracleSqlParser.Grouping_sets_elementsContext = Grouping_sets_elementsContext; +OracleSqlParser.Having_clauseContext = Having_clauseContext; +OracleSqlParser.Model_clauseContext = Model_clauseContext; +OracleSqlParser.Cell_reference_optionsContext = Cell_reference_optionsContext; +OracleSqlParser.Return_rows_clauseContext = Return_rows_clauseContext; +OracleSqlParser.Reference_modelContext = Reference_modelContext; +OracleSqlParser.Main_modelContext = Main_modelContext; +OracleSqlParser.Model_column_clausesContext = Model_column_clausesContext; +OracleSqlParser.Model_column_partition_partContext = Model_column_partition_partContext; +OracleSqlParser.Model_column_listContext = Model_column_listContext; +OracleSqlParser.Model_columnContext = Model_columnContext; +OracleSqlParser.Model_rules_clauseContext = Model_rules_clauseContext; +OracleSqlParser.Model_rules_partContext = Model_rules_partContext; +OracleSqlParser.Model_rules_elementContext = Model_rules_elementContext; +OracleSqlParser.Cell_assignmentContext = Cell_assignmentContext; +OracleSqlParser.Model_iterate_clauseContext = Model_iterate_clauseContext; +OracleSqlParser.Until_partContext = Until_partContext; +OracleSqlParser.Order_by_clauseContext = Order_by_clauseContext; +OracleSqlParser.Order_by_elementsContext = Order_by_elementsContext; +OracleSqlParser.Offset_clauseContext = Offset_clauseContext; +OracleSqlParser.Fetch_clauseContext = Fetch_clauseContext; +OracleSqlParser.For_update_clauseContext = For_update_clauseContext; +OracleSqlParser.For_update_of_partContext = For_update_of_partContext; +OracleSqlParser.For_update_optionsContext = For_update_optionsContext; +OracleSqlParser.Update_statementContext = Update_statementContext; +OracleSqlParser.Update_set_clauseContext = Update_set_clauseContext; +OracleSqlParser.Column_based_update_set_clauseContext = Column_based_update_set_clauseContext; +OracleSqlParser.Delete_statementContext = Delete_statementContext; +OracleSqlParser.Insert_statementContext = Insert_statementContext; +OracleSqlParser.Single_table_insertContext = Single_table_insertContext; +OracleSqlParser.Multi_table_insertContext = Multi_table_insertContext; +OracleSqlParser.Multi_table_elementContext = Multi_table_elementContext; +OracleSqlParser.Conditional_insert_clauseContext = Conditional_insert_clauseContext; +OracleSqlParser.Conditional_insert_when_partContext = Conditional_insert_when_partContext; +OracleSqlParser.Conditional_insert_else_partContext = Conditional_insert_else_partContext; +OracleSqlParser.Insert_into_clauseContext = Insert_into_clauseContext; +OracleSqlParser.Values_clauseContext = Values_clauseContext; +OracleSqlParser.Merge_statementContext = Merge_statementContext; +OracleSqlParser.Merge_update_clauseContext = Merge_update_clauseContext; +OracleSqlParser.Merge_elementContext = Merge_elementContext; +OracleSqlParser.Merge_update_delete_partContext = Merge_update_delete_partContext; +OracleSqlParser.Merge_insert_clauseContext = Merge_insert_clauseContext; +OracleSqlParser.Selected_tableviewContext = Selected_tableviewContext; +OracleSqlParser.Lock_table_statementContext = Lock_table_statementContext; +OracleSqlParser.Wait_nowait_partContext = Wait_nowait_partContext; +OracleSqlParser.Lock_table_elementContext = Lock_table_elementContext; +OracleSqlParser.Lock_modeContext = Lock_modeContext; +OracleSqlParser.General_table_refContext = General_table_refContext; +OracleSqlParser.Static_returning_clauseContext = Static_returning_clauseContext; +OracleSqlParser.Error_logging_clauseContext = Error_logging_clauseContext; +OracleSqlParser.Error_logging_into_partContext = Error_logging_into_partContext; +OracleSqlParser.Error_logging_reject_partContext = Error_logging_reject_partContext; +OracleSqlParser.Dml_table_expression_clauseContext = Dml_table_expression_clauseContext; +OracleSqlParser.Table_collection_expressionContext = Table_collection_expressionContext; +OracleSqlParser.Subquery_restriction_clauseContext = Subquery_restriction_clauseContext; +OracleSqlParser.Sample_clauseContext = Sample_clauseContext; +OracleSqlParser.Seed_partContext = Seed_partContext; +OracleSqlParser.ConditionContext = ConditionContext; +OracleSqlParser.Expressions_Context = Expressions_Context; +OracleSqlParser.ExpressionContext = ExpressionContext; +OracleSqlParser.Cursor_expressionContext = Cursor_expressionContext; +OracleSqlParser.Logical_expressionContext = Logical_expressionContext; +OracleSqlParser.Unary_logical_expressionContext = Unary_logical_expressionContext; +OracleSqlParser.Unary_logical_operationContext = Unary_logical_operationContext; +OracleSqlParser.Logical_operationContext = Logical_operationContext; +OracleSqlParser.Multiset_expressionContext = Multiset_expressionContext; +OracleSqlParser.Relational_expressionContext = Relational_expressionContext; +OracleSqlParser.Compound_expressionContext = Compound_expressionContext; +OracleSqlParser.Relational_operatorContext = Relational_operatorContext; +OracleSqlParser.In_elementsContext = In_elementsContext; +OracleSqlParser.Between_elementsContext = Between_elementsContext; +OracleSqlParser.ConcatenationContext = ConcatenationContext; +OracleSqlParser.Interval_expressionContext = Interval_expressionContext; +OracleSqlParser.Model_expressionContext = Model_expressionContext; +OracleSqlParser.Model_expression_elementContext = Model_expression_elementContext; +OracleSqlParser.Single_column_for_loopContext = Single_column_for_loopContext; +OracleSqlParser.Multi_column_for_loopContext = Multi_column_for_loopContext; +OracleSqlParser.Unary_expressionContext = Unary_expressionContext; +OracleSqlParser.Implicit_cursor_expressionContext = Implicit_cursor_expressionContext; +OracleSqlParser.Collection_expressionContext = Collection_expressionContext; +OracleSqlParser.Case_statementContext = Case_statementContext; +OracleSqlParser.Simple_case_statementContext = Simple_case_statementContext; +OracleSqlParser.Searched_case_statementContext = Searched_case_statementContext; +OracleSqlParser.Case_when_part_statementContext = Case_when_part_statementContext; +OracleSqlParser.Case_else_part_statementContext = Case_else_part_statementContext; +OracleSqlParser.Case_expressionContext = Case_expressionContext; +OracleSqlParser.Simple_case_expressionContext = Simple_case_expressionContext; +OracleSqlParser.Searched_case_expressionContext = Searched_case_expressionContext; +OracleSqlParser.Case_when_part_expressionContext = Case_when_part_expressionContext; +OracleSqlParser.Case_else_part_expressionContext = Case_else_part_expressionContext; +OracleSqlParser.AtomContext = AtomContext; +OracleSqlParser.Quantified_expressionContext = Quantified_expressionContext; +OracleSqlParser.String_functionContext = String_functionContext; +OracleSqlParser.Standard_functionContext = Standard_functionContext; +OracleSqlParser.Json_functionContext = Json_functionContext; +OracleSqlParser.Json_object_contentContext = Json_object_contentContext; +OracleSqlParser.Json_object_entryContext = Json_object_entryContext; +OracleSqlParser.Json_table_clauseContext = Json_table_clauseContext; +OracleSqlParser.Json_array_elementContext = Json_array_elementContext; +OracleSqlParser.Json_on_null_clauseContext = Json_on_null_clauseContext; +OracleSqlParser.Json_return_clauseContext = Json_return_clauseContext; +OracleSqlParser.Json_transform_opContext = Json_transform_opContext; +OracleSqlParser.Json_column_clauseContext = Json_column_clauseContext; +OracleSqlParser.Json_column_definitionContext = Json_column_definitionContext; +OracleSqlParser.Json_query_returning_clauseContext = Json_query_returning_clauseContext; +OracleSqlParser.Json_query_return_typeContext = Json_query_return_typeContext; +OracleSqlParser.Json_query_wrapper_clauseContext = Json_query_wrapper_clauseContext; +OracleSqlParser.Json_query_on_error_clauseContext = Json_query_on_error_clauseContext; +OracleSqlParser.Json_query_on_empty_clauseContext = Json_query_on_empty_clauseContext; +OracleSqlParser.Json_value_return_clauseContext = Json_value_return_clauseContext; +OracleSqlParser.Json_value_return_typeContext = Json_value_return_typeContext; +OracleSqlParser.Json_value_on_mismatch_clauseContext = Json_value_on_mismatch_clauseContext; +OracleSqlParser.LiteralContext = LiteralContext; +OracleSqlParser.Numeric_function_wrapperContext = Numeric_function_wrapperContext; +OracleSqlParser.Numeric_functionContext = Numeric_functionContext; +OracleSqlParser.Listagg_overflow_clauseContext = Listagg_overflow_clauseContext; +OracleSqlParser.Other_functionContext = Other_functionContext; +OracleSqlParser.Over_clause_keywordContext = Over_clause_keywordContext; +OracleSqlParser.Within_or_over_clause_keywordContext = Within_or_over_clause_keywordContext; +OracleSqlParser.Standard_prediction_function_keywordContext = Standard_prediction_function_keywordContext; +OracleSqlParser.Over_clauseContext = Over_clauseContext; +OracleSqlParser.Windowing_clauseContext = Windowing_clauseContext; +OracleSqlParser.Windowing_typeContext = Windowing_typeContext; +OracleSqlParser.Windowing_elementsContext = Windowing_elementsContext; +OracleSqlParser.Using_clauseContext = Using_clauseContext; +OracleSqlParser.Using_elementContext = Using_elementContext; +OracleSqlParser.Collect_order_by_partContext = Collect_order_by_partContext; +OracleSqlParser.Within_or_over_partContext = Within_or_over_partContext; +OracleSqlParser.String_delimiterContext = String_delimiterContext; +OracleSqlParser.Cost_matrix_clauseContext = Cost_matrix_clauseContext; +OracleSqlParser.Xml_passing_clauseContext = Xml_passing_clauseContext; +OracleSqlParser.Xml_attributes_clauseContext = Xml_attributes_clauseContext; +OracleSqlParser.Xml_namespaces_clauseContext = Xml_namespaces_clauseContext; +OracleSqlParser.Xml_table_columnContext = Xml_table_columnContext; +OracleSqlParser.Xml_general_default_partContext = Xml_general_default_partContext; +OracleSqlParser.Xml_multiuse_expression_elementContext = Xml_multiuse_expression_elementContext; +OracleSqlParser.Xmlroot_param_version_partContext = Xmlroot_param_version_partContext; +OracleSqlParser.Xmlroot_param_standalone_partContext = Xmlroot_param_standalone_partContext; +OracleSqlParser.Xmlserialize_param_enconding_partContext = Xmlserialize_param_enconding_partContext; +OracleSqlParser.Xmlserialize_param_version_partContext = Xmlserialize_param_version_partContext; +OracleSqlParser.Xmlserialize_param_ident_partContext = Xmlserialize_param_ident_partContext; +OracleSqlParser.Annotations_clauseContext = Annotations_clauseContext; +OracleSqlParser.Annotations_listContext = Annotations_listContext; +OracleSqlParser.AnnotationContext = AnnotationContext; +OracleSqlParser.Sql_plus_command_no_semicolonContext = Sql_plus_command_no_semicolonContext; +OracleSqlParser.Sql_plus_commandContext = Sql_plus_commandContext; +OracleSqlParser.Start_commandContext = Start_commandContext; +OracleSqlParser.Whenever_commandContext = Whenever_commandContext; +OracleSqlParser.Set_commandContext = Set_commandContext; +OracleSqlParser.Timing_commandContext = Timing_commandContext; +OracleSqlParser.Clear_commandContext = Clear_commandContext; +OracleSqlParser.Partition_extension_clauseContext = Partition_extension_clauseContext; +OracleSqlParser.Column_aliasContext = Column_aliasContext; +OracleSqlParser.Table_aliasContext = Table_aliasContext; +OracleSqlParser.Where_clauseContext = Where_clauseContext; +OracleSqlParser.Into_clauseContext = Into_clauseContext; +OracleSqlParser.Xml_column_nameContext = Xml_column_nameContext; +OracleSqlParser.Cost_class_nameContext = Cost_class_nameContext; +OracleSqlParser.Attribute_nameContext = Attribute_nameContext; +OracleSqlParser.Savepoint_nameContext = Savepoint_nameContext; +OracleSqlParser.Rollback_segment_nameContext = Rollback_segment_nameContext; +OracleSqlParser.Schema_nameContext = Schema_nameContext; +OracleSqlParser.Routine_nameContext = Routine_nameContext; +OracleSqlParser.Package_nameContext = Package_nameContext; +OracleSqlParser.Implementation_type_nameContext = Implementation_type_nameContext; +OracleSqlParser.Parameter_nameContext = Parameter_nameContext; +OracleSqlParser.Reference_model_nameContext = Reference_model_nameContext; +OracleSqlParser.Main_model_nameContext = Main_model_nameContext; +OracleSqlParser.Container_tableview_nameContext = Container_tableview_nameContext; +OracleSqlParser.Aggregate_function_nameContext = Aggregate_function_nameContext; +OracleSqlParser.Query_nameContext = Query_nameContext; +OracleSqlParser.Grantee_nameContext = Grantee_nameContext; +OracleSqlParser.Role_nameContext = Role_nameContext; +OracleSqlParser.Constraint_nameContext = Constraint_nameContext; +OracleSqlParser.Label_nameContext = Label_nameContext; +OracleSqlParser.Type_nameContext = Type_nameContext; +OracleSqlParser.Sequence_nameContext = Sequence_nameContext; +OracleSqlParser.Exception_nameContext = Exception_nameContext; +OracleSqlParser.Function_nameContext = Function_nameContext; +OracleSqlParser.Procedure_nameContext = Procedure_nameContext; +OracleSqlParser.Trigger_nameContext = Trigger_nameContext; +OracleSqlParser.Variable_nameContext = Variable_nameContext; +OracleSqlParser.Index_nameContext = Index_nameContext; +OracleSqlParser.Cursor_nameContext = Cursor_nameContext; +OracleSqlParser.Record_nameContext = Record_nameContext; +OracleSqlParser.Link_nameContext = Link_nameContext; +OracleSqlParser.Local_link_nameContext = Local_link_nameContext; +OracleSqlParser.Connection_qualifierContext = Connection_qualifierContext; +OracleSqlParser.Column_nameContext = Column_nameContext; +OracleSqlParser.Tableview_nameContext = Tableview_nameContext; +OracleSqlParser.XmltableContext = XmltableContext; +OracleSqlParser.Char_set_nameContext = Char_set_nameContext; +OracleSqlParser.Synonym_nameContext = Synonym_nameContext; +OracleSqlParser.Schema_object_nameContext = Schema_object_nameContext; +OracleSqlParser.Dir_object_nameContext = Dir_object_nameContext; +OracleSqlParser.User_object_nameContext = User_object_nameContext; +OracleSqlParser.Grant_object_nameContext = Grant_object_nameContext; +OracleSqlParser.Column_listContext = Column_listContext; +OracleSqlParser.Paren_column_listContext = Paren_column_listContext; +OracleSqlParser.Keep_clauseContext = Keep_clauseContext; +OracleSqlParser.Function_argumentContext = Function_argumentContext; +OracleSqlParser.Function_argument_analyticContext = Function_argument_analyticContext; +OracleSqlParser.Function_argument_modelingContext = Function_argument_modelingContext; +OracleSqlParser.Respect_or_ignore_nullsContext = Respect_or_ignore_nullsContext; +OracleSqlParser.ArgumentContext = ArgumentContext; +OracleSqlParser.Type_specContext = Type_specContext; +OracleSqlParser.DatatypeContext = DatatypeContext; +OracleSqlParser.Precision_partContext = Precision_partContext; +OracleSqlParser.Native_datatype_elementContext = Native_datatype_elementContext; +OracleSqlParser.Bind_variableContext = Bind_variableContext; +OracleSqlParser.General_elementContext = General_elementContext; +OracleSqlParser.General_element_partContext = General_element_partContext; +OracleSqlParser.Table_elementContext = Table_elementContext; +OracleSqlParser.Object_privilegeContext = Object_privilegeContext; +OracleSqlParser.System_privilegeContext = System_privilegeContext; +OracleSqlParser.ConstantContext = ConstantContext; +OracleSqlParser.NumericContext = NumericContext; +OracleSqlParser.Numeric_negativeContext = Numeric_negativeContext; +OracleSqlParser.Quoted_stringContext = Quoted_stringContext; +OracleSqlParser.IdentifierContext = IdentifierContext; +OracleSqlParser.Id_expressionContext = Id_expressionContext; +OracleSqlParser.Inquiry_directiveContext = Inquiry_directiveContext; +OracleSqlParser.Outer_join_signContext = Outer_join_signContext; +OracleSqlParser.Regular_idContext = Regular_idContext; +OracleSqlParser.Non_reserved_keywords_in_18cContext = Non_reserved_keywords_in_18cContext; +OracleSqlParser.Non_reserved_keywords_in_12cContext = Non_reserved_keywords_in_12cContext; +OracleSqlParser.Non_reserved_keywords_pre12cContext = Non_reserved_keywords_pre12cContext; diff --git a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.tokens b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.tokens new file mode 100644 index 000000000..bf88124a0 --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.tokens @@ -0,0 +1,4934 @@ +ABORT=1 +ABS=2 +ABSENT=3 +ACCESS=4 +ACCESSED=5 +ACCESSIBLE=6 +ACCOUNT=7 +ACL=8 +ACOS=9 +ACROSS=10 +ACTION=11 +ACTIONS=12 +ACTIVATE=13 +ACTIVE=14 +ACTIVE_COMPONENT=15 +ACTIVE_DATA=16 +ACTIVE_FUNCTION=17 +ACTIVE_TAG=18 +ACTIVITY=19 +ADAPTIVE_PLAN=20 +ADD=21 +ADD_COLUMN=22 +ADD_GROUP=23 +ADD_MONTHS=24 +ADJ_DATE=25 +ADMIN=26 +ADMINISTER=27 +ADMINISTRATOR=28 +ADVANCED=29 +ADVISE=30 +ADVISOR=31 +AFD_DISKSTRING=32 +AFTER=33 +AGENT=34 +AGGREGATE=35 +A_LETTER=36 +ALIAS=37 +ALL=38 +ALLOCATE=39 +ALLOW=40 +ALL_ROWS=41 +ALTER=42 +ALTERNATE=43 +ALWAYS=44 +ANALYTIC=45 +ANALYZE=46 +ANCESTOR=47 +ANCILLARY=48 +AND=49 +AND_EQUAL=50 +ANNOTATIONS=51 +ANOMALY=52 +ANSI_REARCH=53 +ANTIJOIN=54 +ANY=55 +ANYSCHEMA=56 +APPEND=57 +APPENDCHILDXML=58 +APPEND_VALUES=59 +APPLICATION=60 +APPLY=61 +APPROX_COUNT_DISTINCT=62 +ARCHIVAL=63 +ARCHIVE=64 +ARCHIVED=65 +ARCHIVELOG=66 +ARE=67 +ARRAY=68 +AS=69 +ASC=70 +ASCII=71 +ASCIISTR=72 +ASIN=73 +ASIS=74 +ASSEMBLY=75 +ASSIGN=76 +ASSOCIATE=77 +ASYNC=78 +ASYNCHRONOUS=79 +ATAN2=80 +ATAN=81 +AT=82 +ATTRIBUTE=83 +ATTRIBUTES=84 +AUDIT=85 +AUTHENTICATED=86 +AUTHENTICATION=87 +AUTHID=88 +AUTHORIZATION=89 +AUTOALLOCATE=90 +AUTO=91 +AUTOBACKUP=92 +AUTOEXTEND=93 +AUTO_LOGIN=94 +AUTOMATIC=95 +AUTONOMOUS_TRANSACTION=96 +AUTO_REOPTIMIZE=97 +AVAILABILITY=98 +AVRO=99 +BACKGROUND=100 +BACKINGFILE=101 +BACKUP=102 +BACKUPS=103 +BACKUPSET=104 +BADFILE=105 +BASIC=106 +BASICFILE=107 +BATCH=108 +BATCHSIZE=109 +BATCH_TABLE_ACCESS_BY_ROWID=110 +BECOME=111 +BEFORE=112 +BEGIN=113 +BEGINNING=114 +BEGIN_OUTLINE_DATA=115 +BEHALF=116 +BEQUEATH=117 +BETWEEN=118 +BFILE=119 +BFILENAME=120 +BIG=121 +BIGFILE=122 +BIGINT=123 +BINARY=124 +BINARY_DOUBLE=125 +BINARY_DOUBLE_INFINITY=126 +BINARY_DOUBLE_NAN=127 +BINARY_FLOAT=128 +BINARY_FLOAT_INFINITY=129 +BINARY_FLOAT_NAN=130 +BINARY_INTEGER=131 +BIND_AWARE=132 +BINDING=133 +BIN_TO_NUM=134 +BITAND=135 +BITMAP_AND=136 +BITMAP=137 +BITMAPS=138 +BITMAP_TREE=139 +BITS=140 +BLANKS=141 +BLOB=142 +BLOCK=143 +BLOCK_RANGE=144 +BLOCKS=145 +BLOCKSIZE=146 +BODY=147 +BOOLEAN=148 +BOTH=149 +BOUND=150 +BRANCH=151 +BREADTH=152 +BROADCAST=153 +BSON=154 +BUFFER=155 +BUFFER_CACHE=156 +BUFFER_POOL=157 +BUILD=158 +BULK=159 +BY=160 +BYPASS_RECURSIVE_CHECK=161 +BYPASS_UJVC=162 +BYTE=163 +BYTES=164 +BYTEORDERMARK=165 +CACHE=166 +CACHE_CB=167 +CACHE_INSTANCES=168 +CACHE_TEMP_TABLE=169 +CACHING=170 +CALCULATED=171 +CALLBACK=172 +CALL=173 +CANCEL=174 +CANONICAL=175 +CAPACITY=176 +CAPTION=177 +CARDINALITY=178 +CASCADE=179 +CASE=180 +CAST=181 +CASESENSITIVE=182 +CATEGORY=183 +CDBDEFAULT=184 +CEIL=185 +CELL_FLASH_CACHE=186 +CERTIFICATE=187 +CFILE=188 +CHAINED=189 +CHANGE=190 +CHANGETRACKING=191 +CHANGE_DUPKEY_ERROR_INDEX=192 +CHARACTER=193 +CHARACTERS=194 +CHARACTERSET=195 +CHAR=196 +CHAR_CS=197 +CHARTOROWID=198 +CHECK_ACL_REWRITE=199 +CHECK=200 +CHECKPOINT=201 +CHILD=202 +CHOOSE=203 +CHR=204 +CHUNK=205 +CLASS=206 +CLASSIFICATION=207 +CLASSIFIER=208 +CLAUSE=209 +CLEAN=210 +CLEANUP=211 +CLEAR=212 +C_LETTER=213 +CLIENT=214 +CLOB=215 +CLONE=216 +CLOSE_CACHED_OPEN_CURSORS=217 +CLOSE=218 +CLUSTER_BY_ROWID=219 +CLUSTER=220 +CLUSTER_DETAILS=221 +CLUSTER_DISTANCE=222 +CLUSTER_ID=223 +CLUSTERING=224 +CLUSTERING_FACTOR=225 +CLUSTER_PROBABILITY=226 +CLUSTER_SET=227 +COALESCE=228 +COALESCE_SQ=229 +COARSE=230 +CO_AUTH_IND=231 +COLD=232 +COLLECT=233 +COLLECTION=234 +COLUMNAR=235 +COLUMN_AUTH_INDICATOR=236 +COLUMN=237 +COLUMNS=238 +COLUMN_STATS=239 +COLUMN_VALUE=240 +COMMENT=241 +COMMIT=242 +COMMITTED=243 +COMMON=244 +COMMON_DATA=245 +COMPACT=246 +COMPATIBLE=247 +COMPATIBILITY=248 +COMPILE=249 +COMPLETE=250 +COMPLIANCE=251 +COMPONENT=252 +COMPONENTS=253 +COMPOSE=254 +COMPOSITE=255 +COMPOSITE_LIMIT=256 +COMPOUND=257 +COMPRESS=258 +COMPRESSION=259 +COMPUTE=260 +CONCAT=261 +CON_DBID_TO_ID=262 +CONDITIONAL=263 +CONDITION=264 +CONFIRM=265 +CONFORMING=266 +CON_GUID_TO_ID=267 +CON_ID=268 +CON_NAME_TO_ID=269 +CONNECT_BY_CB_WHR_ONLY=270 +CONNECT_BY_COMBINE_SW=271 +CONNECT_BY_COST_BASED=272 +CONNECT_BY_ELIM_DUPS=273 +CONNECT_BY_FILTERING=274 +CONNECT_BY_ISCYCLE=275 +CONNECT_BY_ISLEAF=276 +CONNECT_BY_ROOT=277 +CONNECT=278 +CONNECT_TIME=279 +CONSIDER=280 +CONSISTENT=281 +CONSTANT=282 +CONST=283 +CONSTRAINT=284 +CONSTRAINTS=285 +CONSTRUCTOR=286 +CONTAINER=287 +CONTAINERS=288 +CONTAINERS_DEFAULT=289 +CONTAINER_DATA=290 +CONTAINER_MAP=291 +CONTENT=292 +CONTENTS=293 +CONTEXT=294 +CONTINUE=295 +CONTROLFILE=296 +CON_UID_TO_ID=297 +CONVERT=298 +CONVERSION=299 +COOKIE=300 +COPY=301 +CORR_K=302 +CORR_S=303 +CORRUPTION=304 +CORRUPT_XID_ALL=305 +CORRUPT_XID=306 +COS=307 +COSH=308 +COST=309 +COST_XML_QUERY_REWRITE=310 +COUNT=311 +COUNTED=312 +COVAR_POP=313 +COVAR_SAMP=314 +CPU_COSTING=315 +CPU_PER_CALL=316 +CPU_PER_SESSION=317 +CRASH=318 +CREATE=319 +CREATE_FILE_DEST=320 +CREATE_STORED_OUTLINES=321 +CREATION=322 +CREDENTIAL=323 +CRITICAL=324 +CROSS=325 +CROSSEDITION=326 +CSCONVERT=327 +CSV=328 +CUBE_AJ=329 +CUBE=330 +CUBE_GB=331 +CUBE_SJ=332 +CUME_DISTM=333 +CURRENT=334 +CURRENT_DATE=335 +CURRENT_SCHEMA=336 +CURRENT_TIME=337 +CURRENT_TIMESTAMP=338 +CURRENT_USER=339 +CURRENTV=340 +CURSOR=341 +CURSOR_SHARING_EXACT=342 +CURSOR_SPECIFIC_SEGMENT=343 +CUSTOMDATUM=344 +CV=345 +CYCLE=346 +DANGLING=347 +DATABASE=348 +DATA=349 +DATAFILE=350 +DATAFILES=351 +DATAGUARDCONFIG=352 +DATAMOVEMENT=353 +DATAOBJNO=354 +DATAOBJ_TO_MAT_PARTITION=355 +DATAOBJ_TO_PARTITION=356 +DATAPUMP=357 +DATA_SECURITY_REWRITE_LIMIT=358 +DATE=359 +DATE_CACHE=360 +DATE_FORMAT=361 +DATE_MODE=362 +DAY=363 +DAYS=364 +DAY_TO_SECOND=365 +DBA=366 +DBA_RECYCLEBIN=367 +DBLINK=368 +DBMS_STATS=369 +DB_ROLE_CHANGE=370 +DBTIMEZONE=371 +DB_UNIQUE_NAME=372 +DB_VERSION=373 +DDL=374 +DEALLOCATE=375 +DEBUG=376 +DEBUGGER=377 +DEC=378 +DECIMAL=379 +DECLARE=380 +DECOMPOSE=381 +DECORRELATE=382 +DECR=383 +DECREMENT=384 +DECRYPT=385 +DEDUPLICATE=386 +DEFAULT=387 +DEFAULTIF=388 +DEFAULTS=389 +DEFAULT_COLLATION=390 +DEFAULT_CREDENTIAL=391 +DEFERRABLE=392 +DEFERRED=393 +DEFINED=394 +DEFINE=395 +DEFINER=396 +DEGREE=397 +DELAY=398 +DELEGATE=399 +DELETE_ALL=400 +DELETE=401 +DELETEXML=402 +DELIMITED=403 +DEMAND=404 +DENSE_RANKM=405 +DEPENDENT=406 +DEPRECATE=407 +DEPTH=408 +DEQUEUE=409 +DEREF=410 +DEREF_NO_REWRITE=411 +DESC=412 +DESCRIPTION=413 +DESTROY=414 +DETACHED=415 +DETECTED=416 +DETERMINES=417 +DETERMINISTIC=418 +DICTIONARY=419 +DIMENSION=420 +DIMENSIONS=421 +DIRECTIO=422 +DIRECT_LOAD=423 +DIRECTORY=424 +DIRECT_PATH=425 +DISABLE_ALL=426 +DISABLE=427 +DISABLED=428 +DISABLE_DIRECTORY_LINK_CHECK=429 +DISABLE_PARALLEL_DML=430 +DISABLE_PRESET=431 +DISABLE_RPKE=432 +DISALLOW=433 +DISASSOCIATE=434 +DISCARD=435 +DISCARDFILE=436 +DISCONNECT=437 +DISK=438 +DISKGROUP=439 +DISKGROUP_PLUS=440 +DISKS=441 +DISMOUNT=442 +DISTINCT=443 +DISTINGUISHED=444 +DISTRIBUTED=445 +DISTRIBUTE=446 +DML=447 +DML_UPDATE=448 +DNFS_DISABLE=449 +DNFS_ENABLE=450 +DNFS_READBUFFERS=451 +DOCFIDELITY=452 +DOCUMENT=453 +DOLLAR_ELSE=454 +DOLLAR_ELSIF=455 +DOLLAR_END=456 +DOLLAR_ERROR=457 +DOLLAR_IF=458 +DOLLAR_THEN=459 +DOMAIN_INDEX_FILTER=460 +DOMAIN_INDEX_NO_SORT=461 +DOMAIN_INDEX_SORT=462 +DOUBLE=463 +DOWNGRADE=464 +DRIVING_SITE=465 +DROP_COLUMN=466 +DROP=467 +DROP_GROUP=468 +DSINTERVAL_UNCONSTRAINED=469 +DST_UPGRADE_INSERT_CONV=470 +DUMP=471 +DUMPSET=472 +DUPLICATE=473 +DV=474 +DYNAMIC=475 +DYNAMIC_SAMPLING=476 +DYNAMIC_SAMPLING_EST_CDN=477 +E_LETTER=478 +EACH=479 +EDITIONABLE=480 +EDITION=481 +EDITIONING=482 +EDITIONS=483 +ELEMENT=484 +ELIM_GROUPBY=485 +ELIMINATE_JOIN=486 +ELIMINATE_OBY=487 +ELIMINATE_OUTER_JOIN=488 +ELSE=489 +ELSIF=490 +EM=491 +EMBEDDED=492 +EMPTY_BLOB=493 +EMPTY_CLOB=494 +EMPTY_=495 +ENABLE_ALL=496 +ENABLE=497 +ENABLED=498 +ENABLE_PARALLEL_DML=499 +ENABLE_PRESET=500 +ENCLOSED=501 +ENCODING=502 +ENCRYPT=503 +ENCRYPTION=504 +ENCRYPTPASSWORDISNULL=505 +END=506 +END_OUTLINE_DATA=507 +ENDIAN=508 +ENFORCED=509 +ENFORCE=510 +ENQUEUE=511 +ENTERPRISE=512 +ENTITYESCAPING=513 +ENTRY=514 +EQUIPART=515 +ERR=516 +ERROR_ARGUMENT=517 +ERROR=518 +ERROR_ON_OVERLAP_TIME=519 +ERRORS=520 +ERROR_INDEX=521 +ERROR_CODE=522 +ESCAPE=523 +ESCAPED=524 +ESTIMATE=525 +EVAL=526 +EVALNAME=527 +EVALUATE=528 +EVALUATION=529 +EVENTS=530 +EVERY=531 +EXCEPT=532 +EXCEPTION=533 +EXCEPTION_INIT=534 +EXCEPTIONS=535 +EXCHANGE=536 +EXCLUDE=537 +EXCLUDING=538 +EXCLUSIVE=539 +EXECUTE=540 +EXEMPT=541 +EXISTING=542 +EXISTS=543 +EXISTSNODE=544 +EXIT=545 +EXPAND_GSET_TO_UNION=546 +EXPAND_TABLE=547 +EXP=548 +EXPIRE=549 +EXPLAIN=550 +EXPLOSION=551 +EXPORT=552 +EXPR_CORR_CHECK=553 +EXPRESS=554 +EXTENDS=555 +EXTENT=556 +EXTENTS=557 +EXTERNAL=558 +EXTERNALLY=559 +EXTRACTCLOBXML=560 +EXTRACT=561 +EXTRACTVALUE=562 +EXTRA=563 +FACILITY=564 +FACT=565 +FACTOR=566 +FACTORIZE_JOIN=567 +FAILED=568 +FAILED_LOGIN_ATTEMPTS=569 +FAILGROUP=570 +FAILOVER=571 +FAILURE=572 +FALSE=573 +FAMILY=574 +FAR=575 +FAST=576 +FASTSTART=577 +FBTSCAN=578 +FEATURE=579 +FEATURE_DETAILS=580 +FEATURE_ID=581 +FEATURE_SET=582 +FEATURE_VALUE=583 +FETCH=584 +FIELD=585 +FIELDS=586 +FILE=587 +FILE_NAME_CONVERT=588 +FILEGROUP=589 +FILESTORE=590 +FILESYSTEM_LIKE_LOGGING=591 +FILTER=592 +FINAL=593 +FINE=594 +FINISH=595 +FIRST=596 +FIRSTM=597 +FIRST_ROWS=598 +FIRST_VALUE=599 +FIXED=600 +FIXED_VIEW_DATA=601 +FLAGGER=602 +FLASHBACK=603 +FLASH_CACHE=604 +FLOAT=605 +FLOB=606 +FLEX=607 +FLOOR=608 +FLUSH=609 +FOLDER=610 +FOLLOWING=611 +FOLLOWS=612 +FORALL=613 +FORCE=614 +FORCE_XML_QUERY_REWRITE=615 +FOREIGN=616 +FOREVER=617 +FOR=618 +FORMAT=619 +FORWARD=620 +FRAGMENT_NUMBER=621 +FREELIST=622 +FREELISTS=623 +FREEPOOLS=624 +FRESH=625 +FROM=626 +FROM_TZ=627 +FULL=628 +FULL_OUTER_JOIN_TO_OUTER=629 +FUNCTION=630 +FUNCTIONS=631 +FTP=632 +G_LETTER=633 +GATHER_OPTIMIZER_STATISTICS=634 +GATHER_PLAN_STATISTICS=635 +GBY_CONC_ROLLUP=636 +GBY_PUSHDOWN=637 +GENERATED=638 +GET=639 +GLOBAL=640 +GLOBALLY=641 +GLOBAL_NAME=642 +GLOBAL_TOPIC_ENABLED=643 +GOTO=644 +GRANT=645 +GROUP_BY=646 +GROUP=647 +GROUP_ID=648 +GROUPING=649 +GROUPING_ID=650 +GROUPS=651 +GUARANTEED=652 +GUARANTEE=653 +GUARD=654 +HADOOP_TRAILERS=655 +HALF_YEARS=656 +HASH_AJ=657 +HASH=658 +HASHKEYS=659 +HASH_SJ=660 +HAVING=661 +HEADER=662 +HEAP=663 +HELP=664 +HEXTORAW=665 +HEXTOREF=666 +HIDDEN_KEYWORD=667 +HIDE=668 +HIER_ORDER=669 +HIERARCHICAL=670 +HIERARCHIES=671 +HIERARCHY=672 +HIGH=673 +HINTSET_BEGIN=674 +HINTSET_END=675 +HOT=676 +HOUR=677 +HOURS=678 +HTTP=679 +HWM_BROKERED=680 +HYBRID=681 +H_LETTER=682 +IDENTIFIED=683 +IDENTIFIER=684 +IDENTITY=685 +IDGENERATORS=686 +ID=687 +IDLE_TIME=688 +IF=689 +IGNORE=690 +IGNORE_CHARS_AFTER_EOR=691 +IGNORE_OPTIM_EMBEDDED_HINTS=692 +IGNORE_ROW_ON_DUPKEY_INDEX=693 +IGNORE_WHERE_CLAUSE=694 +ILM=695 +IMMEDIATE=696 +IMPACT=697 +IMPORT=698 +INACTIVE=699 +INACTIVE_ACCOUNT_TIME=700 +INCLUDE=701 +INCLUDE_VERSION=702 +INCLUDING=703 +INCREMENTAL=704 +INCREMENT=705 +INCR=706 +INDENT=707 +INDEX_ASC=708 +INDEX_COMBINE=709 +INDEX_DESC=710 +INDEXED=711 +INDEXES=712 +INDEX_FFS=713 +INDEX_FILTER=714 +INDEX=715 +INDEXING=716 +INDEX_JOIN=717 +INDEX_ROWS=718 +INDEX_RRS=719 +INDEX_RS_ASC=720 +INDEX_RS_DESC=721 +INDEX_RS=722 +INDEX_SCAN=723 +INDEX_SKIP_SCAN=724 +INDEX_SS_ASC=725 +INDEX_SS_DESC=726 +INDEX_SS=727 +INDEX_STATS=728 +INDEXTYPE=729 +INDEXTYPES=730 +INDICATOR=731 +INDICES=732 +INFINITE=733 +INFORMATIONAL=734 +INHERIT=735 +IN=736 +INITCAP=737 +INITIAL=738 +INITIALIZED=739 +INITIALLY=740 +INITRANS=741 +INLINE=742 +INLINE_XMLTYPE_NT=743 +INMEMORY=744 +IN_MEMORY_METADATA=745 +INMEMORY_PRUNING=746 +INNER=747 +INOUT=748 +INPLACE=749 +INPUTFORMAT=750 +INSERTCHILDXMLAFTER=751 +INSERTCHILDXMLBEFORE=752 +INSERTCHILDXML=753 +INSERT=754 +INSERTXMLAFTER=755 +INSERTXMLBEFORE=756 +INSTANCE=757 +INSTANCES=758 +INSTANTIABLE=759 +INSTANTLY=760 +INSTEAD=761 +INSTR2=762 +INSTR4=763 +INSTRB=764 +INSTRC=765 +INSTR=766 +INTEGER=767 +INTERLEAVED=768 +INTERMEDIATE=769 +INTERNAL_CONVERT=770 +INTERNAL_USE=771 +INTERPRETED=772 +INTERSECT=773 +INTERVAL=774 +INT=775 +INTERNAL=776 +INTO=777 +INVALIDATE=778 +INVALIDATION=779 +INVISIBLE=780 +IN_XQUERY=781 +IO_OPTIONS=782 +IS=783 +IS_LEAF=784 +ISOLATION=785 +ISOLATION_LEVEL=786 +ITEMS=787 +ITERATE=788 +ITERATION_NUMBER=789 +JAVA=790 +JOB=791 +JOIN=792 +JSON_ARRAYAGG=793 +JSON_ARRAY=794 +JSON_EQUAL=795 +JSON_EXISTS2=796 +JSON_EXISTS=797 +JSONGET=798 +JSON=799 +JSON_OBJECTAGG=800 +JSON_OBJECT=801 +JSONPARSE=802 +JSON_QUERY=803 +JSON_SERIALIZE=804 +JSON_TABLE=805 +JSON_TEXTCONTAINS2=806 +JSON_TEXTCONTAINS=807 +JSON_TRANSFORM=808 +JSON_VALUE=809 +K_LETTER=810 +KEEP_DUPLICATES=811 +KEEP=812 +KERBEROS=813 +KEY=814 +KEY_LENGTH=815 +KEYSIZE=816 +KEYS=817 +KEYSTORE=818 +KILL=819 +LABEL=820 +LANGUAGE=821 +LAST_DAY=822 +LAST=823 +LAST_VALUE=824 +LATERAL=825 +LATEST=826 +LAX=827 +LAYER=828 +LDAP_REGISTRATION_ENABLED=829 +LDAP_REGISTRATION=830 +LDAP_REG_SYNC_INTERVAL=831 +LDRTRIM=832 +LEAF=833 +LEAD_CDB=834 +LEAD_CDB_URI=835 +LEADING=836 +LEFT=837 +LENGTH2=838 +LENGTH4=839 +LENGTHB=840 +LENGTHC=841 +LENGTH=842 +LESS=843 +LEVEL=844 +LEVEL_NAME=845 +LEVELS=846 +LIBRARY=847 +LIFECYCLE=848 +LIFE=849 +LIFETIME=850 +LIKE2=851 +LIKE4=852 +LIKEC=853 +LIKE_EXPAND=854 +LIKE=855 +LIMIT=856 +LINEAR=857 +LINES=858 +LINK=859 +LIST=860 +LITTLE=861 +LLS=862 +LN=863 +LNNVL=864 +LOAD=865 +LOB=866 +LOBFILE=867 +LOBNVL=868 +LOBS=869 +LOCAL_INDEXES=870 +LOCAL=871 +LOCALTIME=872 +LOCALTIMESTAMP=873 +LOCATION=874 +LOCATOR=875 +LOCKDOWN=876 +LOCKED=877 +LOCKING=878 +LOCK=879 +LOGFILE=880 +LOGFILES=881 +LOGGING=882 +LOGICAL=883 +LOGICAL_READS_PER_CALL=884 +LOGICAL_READS_PER_SESSION=885 +LOG=886 +LOGMINING=887 +LOGOFF=888 +LOGON=889 +LOG_READ_ONLY_VIOLATIONS=890 +LONG=891 +LOOP=892 +LOST=893 +LOWER=894 +LOW=895 +LPAD=896 +LRTRIM=897 +LTRIM=898 +M_LETTER=899 +MAIN=900 +MAKE_REF=901 +MANAGED=902 +MANAGE=903 +MANAGEMENT=904 +MANAGER=905 +MANDATORY=906 +MANUAL=907 +MAP=908 +MAPPING=909 +MASK=910 +MASTER=911 +MATCHED=912 +MATCHES=913 +MATCH=914 +MATCH_NUMBER=915 +MATCH_RECOGNIZE=916 +MATERIALIZED=917 +MATERIALIZE=918 +MAXARCHLOGS=919 +MAXDATAFILES=920 +MAXEXTENTS=921 +MAXIMIZE=922 +MAXINSTANCES=923 +MAXLOGFILES=924 +MAXLOGHISTORY=925 +MAXLOGMEMBERS=926 +MAX_SHARED_TEMP_SIZE=927 +MAXSIZE=928 +MAXTRANS=929 +MAXVALUE=930 +MEASURE=931 +MEASURES=932 +MEDIUM=933 +MEMBER=934 +MEMBER_CAPTION=935 +MEMBER_DESCRIPTION=936 +MEMBER_NAME=937 +MEMBER_UNIQUE_NAME=938 +MEMCOMPRESS=939 +MEMORY=940 +MERGEACTIONS=941 +MERGE_AJ=942 +MERGE_CONST_ON=943 +MERGE=944 +MERGE_SJ=945 +METADATA=946 +METHOD=947 +MIGRATE=948 +MIGRATION=949 +MINEXTENTS=950 +MINIMIZE=951 +MINIMUM=952 +MINING=953 +MINUS=954 +MINUS_NULL=955 +MINUTE=956 +MINUTES=957 +MINVALUE=958 +MIRRORCOLD=959 +MIRRORHOT=960 +MIRROR=961 +MISSING=962 +MISMATCH=963 +MLSLABEL=964 +MODEL_COMPILE_SUBQUERY=965 +MODEL_DONTVERIFY_UNIQUENESS=966 +MODEL_DYNAMIC_SUBQUERY=967 +MODEL_MIN_ANALYSIS=968 +MODEL=969 +MODEL_NB=970 +MODEL_NO_ANALYSIS=971 +MODEL_PBY=972 +MODEL_PUSH_REF=973 +MODEL_SV=974 +MODE=975 +MODIFICATION=976 +MODIFY_COLUMN_TYPE=977 +MODIFY=978 +MOD=979 +MODULE=980 +MONITORING=981 +MONITOR=982 +MONTH=983 +MONTHS_BETWEEN=984 +MONTHS=985 +MOUNT=986 +MOUNTPATH=987 +MOUNTPOINT=988 +MOVEMENT=989 +MOVE=990 +MULTIDIMENSIONAL=991 +MULTISET=992 +MV_MERGE=993 +NAMED=994 +NAME=995 +NAMESPACE=996 +NAN_=997 +NANVL=998 +NATIONAL=999 +NATIVE_FULL_OUTER_JOIN=1000 +NATIVE=1001 +NATURAL=1002 +NATURALN=1003 +NAV=1004 +NCHAR_CS=1005 +NCHAR=1006 +NCHR=1007 +NCLOB=1008 +NEEDED=1009 +NEG=1010 +NESTED=1011 +NESTED_TABLE_FAST_INSERT=1012 +NESTED_TABLE_GET_REFS=1013 +NESTED_TABLE_ID=1014 +NESTED_TABLE_SET_REFS=1015 +NESTED_TABLE_SET_SETID=1016 +NETWORK=1017 +NEVER=1018 +NEW=1019 +NEWLINE_=1020 +NEW_TIME=1021 +NEXT_DAY=1022 +NEXT=1023 +NL_AJ=1024 +NLJ_BATCHING=1025 +NLJ_INDEX_FILTER=1026 +NLJ_INDEX_SCAN=1027 +NLJ_PREFETCH=1028 +NLS_CALENDAR=1029 +NLS_CHARACTERSET=1030 +NLS_CHARSET_DECL_LEN=1031 +NLS_CHARSET_ID=1032 +NLS_CHARSET_NAME=1033 +NLS_COMP=1034 +NLS_CURRENCY=1035 +NLS_DATE_FORMAT=1036 +NLS_DATE_LANGUAGE=1037 +NLS_INITCAP=1038 +NLS_ISO_CURRENCY=1039 +NL_SJ=1040 +NLS_LANG=1041 +NLS_LANGUAGE=1042 +NLS_LENGTH_SEMANTICS=1043 +NLS_LOWER=1044 +NLS_NCHAR_CONV_EXCP=1045 +NLS_NUMERIC_CHARACTERS=1046 +NLS_SORT=1047 +NLSSORT=1048 +NLS_SPECIAL_CHARS=1049 +NLS_TERRITORY=1050 +NLS_UPPER=1051 +NO_ACCESS=1052 +NO_ADAPTIVE_PLAN=1053 +NO_ANSI_REARCH=1054 +NOAPPEND=1055 +NOARCHIVELOG=1056 +NOAUDIT=1057 +NOBADFILE=1058 +NO_AUTO_REOPTIMIZE=1059 +NO_BASETABLE_MULTIMV_REWRITE=1060 +NO_BATCH_TABLE_ACCESS_BY_ROWID=1061 +NO_BIND_AWARE=1062 +NO_BUFFER=1063 +NOCACHE=1064 +NOCHECK=1065 +NO_CARTESIAN=1066 +NO_CHECK_ACL_REWRITE=1067 +NO_CLUSTER_BY_ROWID=1068 +NO_CLUSTERING=1069 +NO_COALESCE_SQ=1070 +NO_COMMON_DATA=1071 +NOCOMPRESS=1072 +NO_CONNECT_BY_CB_WHR_ONLY=1073 +NO_CONNECT_BY_COMBINE_SW=1074 +NO_CONNECT_BY_COST_BASED=1075 +NO_CONNECT_BY_ELIM_DUPS=1076 +NO_CONNECT_BY_FILTERING=1077 +NOCOPY=1078 +NO_COST_XML_QUERY_REWRITE=1079 +NO_CPU_COSTING=1080 +NOCPU_COSTING=1081 +NOCYCLE=1082 +NO_DATA_SECURITY_REWRITE=1083 +NO_DECORRELATE=1084 +NODELAY=1085 +NODIRECTIO=1086 +NODISCARDFILE=1087 +NO_DOMAIN_INDEX_FILTER=1088 +NO_DST_UPGRADE_INSERT_CONV=1089 +NO_ELIM_GROUPBY=1090 +NO_ELIMINATE_JOIN=1091 +NO_ELIMINATE_OBY=1092 +NO_ELIMINATE_OUTER_JOIN=1093 +NOENTITYESCAPING=1094 +NO_EXPAND_GSET_TO_UNION=1095 +NO_EXPAND=1096 +NO_EXPAND_TABLE=1097 +NOEXTEND=1098 +NO_FACT=1099 +NO_FACTORIZE_JOIN=1100 +NO_FILTERING=1101 +NOFORCE=1102 +NO_FULL_OUTER_JOIN_TO_OUTER=1103 +NO_GATHER_OPTIMIZER_STATISTICS=1104 +NO_GBY_PUSHDOWN=1105 +NOGUARANTEE=1106 +NO_INDEX_FFS=1107 +NO_INDEX=1108 +NO_INDEX_SS=1109 +NO_INMEMORY=1110 +NO_INMEMORY_PRUNING=1111 +NOKEEP=1112 +NO_LOAD=1113 +NOLOCAL=1114 +NOLOG=1115 +NOLOGFILE=1116 +NOLOGGING=1117 +NOMAPPING=1118 +NOMAXVALUE=1119 +NO_MERGE=1120 +NOMINIMIZE=1121 +NOMINVALUE=1122 +NO_MODEL_PUSH_REF=1123 +NO_MONITORING=1124 +NOMONITORING=1125 +NO_MONITOR=1126 +NO_MULTIMV_REWRITE=1127 +NO_NATIVE_FULL_OUTER_JOIN=1128 +NONBLOCKING=1129 +NONEDITIONABLE=1130 +NONE=1131 +NONULLIF=1132 +NO_NLJ_BATCHING=1133 +NO_NLJ_PREFETCH=1134 +NO=1135 +NONSCHEMA=1136 +NO_OBJECT_LINK=1137 +NOORDER=1138 +NO_ORDER_ROLLUPS=1139 +NO_OUTER_JOIN_TO_ANTI=1140 +NO_OUTER_JOIN_TO_INNER=1141 +NOOVERRIDE=1142 +NO_PARALLEL_INDEX=1143 +NOPARALLEL_INDEX=1144 +NO_PARALLEL=1145 +NOPARALLEL=1146 +NO_PARTIAL_COMMIT=1147 +NO_PARTIAL_JOIN=1148 +NO_PARTIAL_ROLLUP_PUSHDOWN=1149 +NOPARTITION=1150 +NO_PLACE_DISTINCT=1151 +NO_PLACE_GROUP_BY=1152 +NO_PQ_CONCURRENT_UNION=1153 +NO_PQ_MAP=1154 +NOPROMPT=1155 +NO_PQ_REPLICATE=1156 +NO_PQ_SKEW=1157 +NO_PRUNE_GSETS=1158 +NO_PULL_PRED=1159 +NO_PUSH_PRED=1160 +NO_PUSH_SUBQ=1161 +NO_PX_FAULT_TOLERANCE=1162 +NO_PX_JOIN_FILTER=1163 +NO_QKN_BUFF=1164 +NO_QUERY_TRANSFORMATION=1165 +NO_REF_CASCADE=1166 +NORELOCATE=1167 +NORELY=1168 +NOREPAIR=1169 +NOREPLAY=1170 +NORESETLOGS=1171 +NO_RESULT_CACHE=1172 +NOREVERSE=1173 +NO_REWRITE=1174 +NOREWRITE=1175 +NORMAL=1176 +NO_ROOT_SW_FOR_LOCAL=1177 +NOROWDEPENDENCIES=1178 +NOSCALE=1179 +NOSCHEMACHECK=1180 +NOSEGMENT=1181 +NO_SEMIJOIN=1182 +NO_SEMI_TO_INNER=1183 +NO_SET_TO_JOIN=1184 +NOSHARD=1185 +NOSORT=1186 +NO_SQL_TRANSLATION=1187 +NO_SQL_TUNE=1188 +NO_STAR_TRANSFORMATION=1189 +NO_STATEMENT_QUEUING=1190 +NO_STATS_GSETS=1191 +NOSTRICT=1192 +NO_SUBQUERY_PRUNING=1193 +NO_SUBSTRB_PAD=1194 +NO_SWAP_JOIN_INPUTS=1195 +NOSWITCH=1196 +NO_TABLE_LOOKUP_BY_NL=1197 +NO_TEMP_TABLE=1198 +NOTHING=1199 +NOTIFICATION=1200 +NOTRIM=1201 +NOT=1202 +NO_TRANSFORM_DISTINCT_AGG=1203 +NO_UNNEST=1204 +NO_USE_CUBE=1205 +NO_USE_HASH_AGGREGATION=1206 +NO_USE_HASH_GBY_FOR_PUSHDOWN=1207 +NO_USE_HASH=1208 +NO_USE_INVISIBLE_INDEXES=1209 +NO_USE_MERGE=1210 +NO_USE_NL=1211 +NO_USE_VECTOR_AGGREGATION=1212 +NOVALIDATE=1213 +NO_VECTOR_TRANSFORM_DIMS=1214 +NO_VECTOR_TRANSFORM_FACT=1215 +NO_VECTOR_TRANSFORM=1216 +NOWAIT=1217 +NO_XDB_FASTPATH_INSERT=1218 +NO_XML_DML_REWRITE=1219 +NO_XMLINDEX_REWRITE_IN_SELECT=1220 +NO_XMLINDEX_REWRITE=1221 +NO_XML_QUERY_REWRITE=1222 +NO_ZONEMAP=1223 +NTH_VALUE=1224 +NULLIF=1225 +NULL_=1226 +NULLS=1227 +NUMBER=1228 +NUMERIC=1229 +NUM_INDEX_KEYS=1230 +NUMTODSINTERVAL=1231 +NUMTOYMINTERVAL=1232 +NVARCHAR2=1233 +NVL2=1234 +OBJECT2XML=1235 +OBJECT=1236 +OBJ_ID=1237 +OBJNO=1238 +OBJNO_REUSE=1239 +OCCURENCES=1240 +OFFLINE=1241 +OFF=1242 +OFFSET=1243 +OF=1244 +OIDINDEX=1245 +OID=1246 +OLAP=1247 +OLD=1248 +OLD_PUSH_PRED=1249 +OLS=1250 +OLTP=1251 +OMIT=1252 +ONE=1253 +ONLINE=1254 +ONLINELOG=1255 +ONLY=1256 +ON=1257 +OPAQUE=1258 +OPAQUE_TRANSFORM=1259 +OPAQUE_XCANONICAL=1260 +OPCODE=1261 +OPEN=1262 +OPERATIONS=1263 +OPERATOR=1264 +OPT_ESTIMATE=1265 +OPTIMAL=1266 +OPTIMIZE=1267 +OPTIMIZER_FEATURES_ENABLE=1268 +OPTIMIZER_GOAL=1269 +OPTION=1270 +OPTIONALLY=1271 +OPT_PARAM=1272 +ORA_BRANCH=1273 +ORA_CHECK_ACL=1274 +ORA_CHECK_PRIVILEGE=1275 +ORA_CLUSTERING=1276 +ORADATA=1277 +ORC=1278 +ORACLE_DATE=1279 +ORACLE_NUMBER=1280 +ORADEBUG=1281 +ORA_DST_AFFECTED=1282 +ORA_DST_CONVERT=1283 +ORA_DST_ERROR=1284 +ORA_GET_ACLIDS=1285 +ORA_GET_PRIVILEGES=1286 +ORA_HASH=1287 +ORA_INVOKING_USERID=1288 +ORA_INVOKING_USER=1289 +ORA_INVOKING_XS_USER_GUID=1290 +ORA_INVOKING_XS_USER=1291 +ORA_RAWCOMPARE=1292 +ORA_RAWCONCAT=1293 +ORA_ROWSCN=1294 +ORA_ROWSCN_RAW=1295 +ORA_ROWVERSION=1296 +ORA_TABVERSION=1297 +ORA_WRITE_TIME=1298 +ORDERED=1299 +ORDERED_PREDICATES=1300 +ORDER=1301 +ORDINALITY=1302 +OR_EXPAND=1303 +ORGANIZATION=1304 +OR=1305 +OR_PREDICATES=1306 +OSERROR=1307 +OTHER=1308 +OUTER_JOIN_TO_ANTI=1309 +OUTER_JOIN_TO_INNER=1310 +OUTER=1311 +OUTLINE_LEAF=1312 +OUTLINE=1313 +OUTPUTFORMAT=1314 +OUT_OF_LINE=1315 +OUT=1316 +OVERFLOW_NOMOVE=1317 +OVERFLOW_=1318 +OVERLAPS=1319 +OVER=1320 +OVERRIDE=1321 +OVERRIDING=1322 +OWNER=1323 +OWNERSHIP=1324 +OWN=1325 +P_LETTER=1326 +PACKAGE=1327 +PACKAGES=1328 +PARALLEL_ENABLE=1329 +PARALLEL_INDEX=1330 +PARALLEL=1331 +PARAMETERFILE=1332 +PARAMETERS=1333 +PARAM=1334 +PARENT=1335 +PARENT_LEVEL_NAME=1336 +PARENT_UNIQUE_NAME=1337 +PARITY=1338 +PARQUET=1339 +PARTIAL_JOIN=1340 +PARTIALLY=1341 +PARTIAL=1342 +PARTIAL_ROLLUP_PUSHDOWN=1343 +PARTITION_HASH=1344 +PARTITION_LIST=1345 +PARTITION=1346 +PARTITION_RANGE=1347 +PARTITIONS=1348 +PARTNUMINST=1349 +PASSING=1350 +PASSWORD_GRACE_TIME=1351 +PASSWORD_LIFE_TIME=1352 +PASSWORD_LOCK_TIME=1353 +PASSWORD=1354 +PASSWORD_REUSE_MAX=1355 +PASSWORD_REUSE_TIME=1356 +PASSWORD_ROLLOVER_TIME=1357 +PASSWORD_VERIFY_FUNCTION=1358 +PAST=1359 +PATCH=1360 +PATH=1361 +PATH_PREFIX=1362 +PATHS=1363 +PATTERN=1364 +PBL_HS_BEGIN=1365 +PBL_HS_END=1366 +PCTFREE=1367 +PCTINCREASE=1368 +PCTTHRESHOLD=1369 +PCTUSED=1370 +PCTVERSION=1371 +PENDING=1372 +PERCENT_FOUND=1373 +PERCENT_ISOPEN=1374 +PERCENT_NOTFOUND=1375 +PERCENT_KEYWORD=1376 +PERCENT_RANKM=1377 +PERCENT_ROWCOUNT=1378 +PERCENT_ROWTYPE=1379 +PERCENT_TYPE=1380 +PERCENT_BULK_EXCEPTIONS=1381 +PERCENT_BULK_ROWCOUNT=1382 +PERFORMANCE=1383 +PERIOD_KEYWORD=1384 +PERMANENT=1385 +PERMISSION=1386 +PERMUTE=1387 +PER=1388 +PFILE=1389 +PHYSICAL=1390 +PIKEY=1391 +PIPELINED=1392 +PIPE=1393 +PIV_GB=1394 +PIVOT=1395 +PIV_SSF=1396 +PLACE_DISTINCT=1397 +PLACE_GROUP_BY=1398 +PLAN=1399 +PLSCOPE_SETTINGS=1400 +PLS_INTEGER=1401 +PLSQL_CCFLAGS=1402 +PLSQL_CODE_TYPE=1403 +PLSQL_DEBUG=1404 +PLSQL_OPTIMIZE_LEVEL=1405 +PLSQL_WARNINGS=1406 +PLUGGABLE=1407 +PMEM=1408 +POINT=1409 +POLICY=1410 +POOL_16K=1411 +POOL_2K=1412 +POOL_32K=1413 +POOL_4K=1414 +POOL_8K=1415 +POSITION=1416 +POSITIVEN=1417 +POSITIVE=1418 +POST_TRANSACTION=1419 +POWERMULTISET_BY_CARDINALITY=1420 +POWERMULTISET=1421 +POWER=1422 +PQ_CONCURRENT_UNION=1423 +PQ_DISTRIBUTE=1424 +PQ_DISTRIBUTE_WINDOW=1425 +PQ_FILTER=1426 +PQ_MAP=1427 +PQ_NOMAP=1428 +PQ_REPLICATE=1429 +PQ_SKEW=1430 +PRAGMA=1431 +PREBUILT=1432 +PRECEDES=1433 +PRECEDING=1434 +PRECISION=1435 +PRECOMPUTE_SUBQUERY=1436 +PREDICATE_REORDERS=1437 +PRELOAD=1438 +PREPARE=1439 +PREPROCESSOR=1440 +PRESENTNNV=1441 +PRESENT=1442 +PRESENTV=1443 +PRESERVE_OID=1444 +PRESERVE=1445 +PRETTY=1446 +PREVIOUS=1447 +PREV=1448 +PRIMARY=1449 +PRINTBLOBTOCLOB=1450 +PRIORITY=1451 +PRIOR=1452 +PRIVATE=1453 +PRIVATE_SGA=1454 +PRIVILEGED=1455 +PRIVILEGE=1456 +PRIVILEGES=1457 +PROCEDURAL=1458 +PROCEDURE=1459 +PROCESS=1460 +PROFILE=1461 +PROGRAM=1462 +PROJECT=1463 +PROPAGATE=1464 +PROPERTY=1465 +PROTECTED=1466 +PROTECTION=1467 +PROTOCOL=1468 +PROXY=1469 +PRUNING=1470 +PUBLIC=1471 +PULL_PRED=1472 +PURGE=1473 +PUSH_PRED=1474 +PUSH_SUBQ=1475 +PX_FAULT_TOLERANCE=1476 +PX_GRANULE=1477 +PX_JOIN_FILTER=1478 +QB_NAME=1479 +QUARTERS=1480 +QUERY_BLOCK=1481 +QUERY=1482 +QUEUE_CURR=1483 +QUEUE=1484 +QUEUE_ROWP=1485 +QUIESCE=1486 +QUORUM=1487 +QUOTA=1488 +QUOTAGROUP=1489 +RAISE=1490 +RANDOM_LOCAL=1491 +RANDOM=1492 +RANGE=1493 +RANKM=1494 +RAPIDLY=1495 +RAW=1496 +RAWTOHEX=1497 +RAWTONHEX=1498 +RBA=1499 +RBO_OUTLINE=1500 +RCFILE=1501 +RDBA=1502 +READ=1503 +READS=1504 +READSIZE=1505 +REALM=1506 +REAL=1507 +REBALANCE=1508 +REBUILD=1509 +RECORD=1510 +RECORDS=1511 +RECORDS_PER_BLOCK=1512 +RECOVERABLE=1513 +RECOVER=1514 +RECOVERY=1515 +RECYCLEBIN=1516 +RECYCLE=1517 +REDACTION=1518 +REDEFINE=1519 +REDO=1520 +REDUCED=1521 +REDUNDANCY=1522 +REF_CASCADE_CURSOR=1523 +REFERENCED=1524 +REFERENCE=1525 +REFERENCES=1526 +REFERENCING=1527 +REF=1528 +REFRESH=1529 +REFTOHEX=1530 +REGEXP_COUNT=1531 +REGEXP_INSTR=1532 +REGEXP_LIKE=1533 +REGEXP_REPLACE=1534 +REGEXP_SUBSTR=1535 +REGISTER=1536 +REGR_AVGX=1537 +REGR_AVGY=1538 +REGR_COUNT=1539 +REGR_INTERCEPT=1540 +REGR_R2=1541 +REGR_SLOPE=1542 +REGR_SXX=1543 +REGR_SXY=1544 +REGR_SYY=1545 +REGULAR=1546 +REJECT=1547 +REKEY=1548 +RELATIONAL=1549 +RELIES_ON=1550 +RELOCATE=1551 +RELY=1552 +REMAINDER=1553 +REMOTE=1554 +REMOTE_MAPPED=1555 +REMOVE=1556 +RENAME=1557 +REPAIR=1558 +REPEAT=1559 +REPLACE=1560 +REPLICATION=1561 +REQUIRED=1562 +RESETLOGS=1563 +RESET=1564 +RESIZE=1565 +RESOLVE=1566 +RESOLVER=1567 +RESOURCE=1568 +RESPECT=1569 +RESTART=1570 +RESTORE_AS_INTERVALS=1571 +RESTORE=1572 +RESTRICT_ALL_REF_CONS=1573 +RESTRICTED=1574 +RESTRICT_REFERENCES=1575 +RESTRICT=1576 +RESULT_CACHE=1577 +RESULT=1578 +RESUMABLE=1579 +RESUME=1580 +RETENTION=1581 +RETRY_ON_ROW_CHANGE=1582 +RETURNING=1583 +RETURN=1584 +REUSE=1585 +REVERSE=1586 +REVOKE=1587 +REWRITE_OR_ERROR=1588 +REWRITE=1589 +RIGHT=1590 +ROLE=1591 +ROLESET=1592 +ROLES=1593 +ROLLBACK=1594 +ROLLING=1595 +ROLLUP=1596 +ROWDEPENDENCIES=1597 +ROWID_MAPPING_TABLE=1598 +ROWID=1599 +ROWIDTOCHAR=1600 +ROWIDTONCHAR=1601 +ROW_LENGTH=1602 +ROWNUM=1603 +ROW=1604 +ROWS=1605 +RPAD=1606 +RTRIM=1607 +RULE=1608 +RULES=1609 +RUNNING=1610 +SALT=1611 +SAMPLE=1612 +SAVE_AS_INTERVALS=1613 +SAVEPOINT=1614 +SAVE=1615 +SB4=1616 +SCALE_ROWS=1617 +SCALE=1618 +SCAN_INSTANCES=1619 +SCAN=1620 +SCHEDULER=1621 +SCHEMACHECK=1622 +SCHEMA=1623 +SCN_ASCENDING=1624 +SCN=1625 +SCOPE=1626 +SCRUB=1627 +SD_ALL=1628 +SD_INHIBIT=1629 +SDO_GEOM_MBR=1630 +SDO_GEOMETRY=1631 +SD_SHOW=1632 +SEARCH=1633 +SECOND=1634 +SECONDS=1635 +SECRET=1636 +SECUREFILE_DBA=1637 +SECUREFILE=1638 +SECURITY=1639 +SEED=1640 +SEG_BLOCK=1641 +SEG_FILE=1642 +SEGMENT=1643 +SELECTIVITY=1644 +SELECT=1645 +SELF=1646 +SEMIJOIN_DRIVER=1647 +SEMIJOIN=1648 +SEMI_TO_INNER=1649 +SEQUENCED=1650 +SEQUENCE=1651 +SEQUENCEFILE=1652 +SEQUENTIAL=1653 +SEQ=1654 +SERDE=1655 +SERDEPROPERTIES=1656 +SERIALIZABLE=1657 +SERIALLY_REUSABLE=1658 +SERIAL=1659 +SERVERERROR=1660 +SERVICE_NAME_CONVERT=1661 +SERVICE=1662 +SERVICES=1663 +SESSION_CACHED_CURSORS=1664 +SESSION=1665 +SESSIONS_PER_USER=1666 +SESSIONTIMEZONE=1667 +SESSIONTZNAME=1668 +SET=1669 +SETS=1670 +SETTINGS=1671 +SET_TO_JOIN=1672 +SEVERE=1673 +SHARD=1674 +SHARDSPACE=1675 +SHARED_POOL=1676 +SHARED=1677 +SHARE=1678 +SHARING=1679 +SHELFLIFE=1680 +SHOW=1681 +SHRINK=1682 +SHUTDOWN=1683 +SIBLINGS=1684 +SID=1685 +SITE=1686 +SIGNAL_COMPONENT=1687 +SIGNAL_FUNCTION=1688 +SIGN=1689 +SIGNTYPE=1690 +SIMPLE_INTEGER=1691 +SIMPLE=1692 +SINGLE=1693 +SINGLETASK=1694 +SINH=1695 +SIN=1696 +SIZE=1697 +SIZES=1698 +SKIP_EXT_OPTIMIZER=1699 +SKIP_=1700 +SKIP_UNQ_UNUSABLE_IDX=1701 +SKIP_UNUSABLE_INDEXES=1702 +SMALLFILE=1703 +SMALLINT=1704 +SNAPSHOT=1705 +SOME=1706 +SORT=1707 +SOUNDEX=1708 +SOURCE_FILE_DIRECTORY=1709 +SOURCE_FILE_NAME_CONVERT=1710 +SOURCE=1711 +SPACE_KEYWORD=1712 +SPECIFICATION=1713 +SPFILE=1714 +SPLIT=1715 +SPREADSHEET=1716 +SQLDATA=1717 +SQLERROR=1718 +SQLLDR=1719 +SQL=1720 +FILE_EXT=1721 +SQL_MACRO=1722 +SQL_TRACE=1723 +SQL_TRANSLATION_PROFILE=1724 +SQRT=1725 +STALE=1726 +STANDALONE=1727 +STANDARD=1728 +STANDARD_HASH=1729 +STANDBY_MAX_DATA_DELAY=1730 +STANDBYS=1731 +STANDBY=1732 +STAR=1733 +STAR_TRANSFORMATION=1734 +START=1735 +STARTOF=1736 +STARTUP=1737 +STATEMENT_ID=1738 +STATEMENT_QUEUING=1739 +STATEMENTS=1740 +STATEMENT=1741 +STATE=1742 +STATIC=1743 +STATISTICS=1744 +STATS_BINOMIAL_TEST=1745 +STATS_CROSSTAB=1746 +STATS_F_TEST=1747 +STATS_KS_TEST=1748 +STATS_MODE=1749 +STATS_MW_TEST=1750 +STATS_ONE_WAY_ANOVA=1751 +STATS_T_TEST_INDEP=1752 +STATS_T_TEST_INDEPU=1753 +STATS_T_TEST_ONE=1754 +STATS_T_TEST_PAIRED=1755 +STATS_WSR_TEST=1756 +STDDEV_POP=1757 +STDDEV_SAMP=1758 +STOP=1759 +STORAGE=1760 +STORE=1761 +STREAMS=1762 +STREAM=1763 +STRICT=1764 +STRING=1765 +STRIPE_COLUMNS=1766 +STRIPE_WIDTH=1767 +STRIP=1768 +STRUCTURE=1769 +SUBMULTISET=1770 +SUBPARTITION_REL=1771 +SUBPARTITIONS=1772 +SUBPARTITION=1773 +SUBQUERIES=1774 +SUBQUERY_PRUNING=1775 +SUBSCRIBE=1776 +SUBSET=1777 +SUBSTITUTABLE=1778 +SUBSTR2=1779 +SUBSTR4=1780 +SUBSTRB=1781 +SUBSTRC=1782 +SUBTYPE=1783 +SUCCESSFUL=1784 +SUCCESS=1785 +SUMMARY=1786 +SUPPLEMENTAL=1787 +SUSPEND=1788 +SWAP_JOIN_INPUTS=1789 +SWITCHOVER=1790 +SWITCH=1791 +SYNCHRONOUS=1792 +SYNC=1793 +SYNONYM=1794 +SYS=1795 +SYSASM=1796 +SYS_AUDIT=1797 +SYSAUX=1798 +SYSBACKUP=1799 +SYS_CHECKACL=1800 +SYS_CHECK_PRIVILEGE=1801 +SYS_CONNECT_BY_PATH=1802 +SYS_CONTEXT=1803 +SYSDATE=1804 +SYSDBA=1805 +SYS_DBURIGEN=1806 +SYSDG=1807 +SYS_DL_CURSOR=1808 +SYS_DM_RXFORM_CHR=1809 +SYS_DM_RXFORM_NUM=1810 +SYS_DOM_COMPARE=1811 +SYS_DST_PRIM2SEC=1812 +SYS_DST_SEC2PRIM=1813 +SYS_ET_BFILE_TO_RAW=1814 +SYS_ET_BLOB_TO_IMAGE=1815 +SYS_ET_IMAGE_TO_BLOB=1816 +SYS_ET_RAW_TO_BFILE=1817 +SYS_EXTPDTXT=1818 +SYS_EXTRACT_UTC=1819 +SYS_FBT_INSDEL=1820 +SYS_FILTER_ACLS=1821 +SYS_FNMATCHES=1822 +SYS_FNREPLACE=1823 +SYS_GET_ACLIDS=1824 +SYS_GET_COL_ACLIDS=1825 +SYS_GET_PRIVILEGES=1826 +SYS_GETTOKENID=1827 +SYS_GETXTIVAL=1828 +SYS_GUID=1829 +SYSGUID=1830 +SYSKM=1831 +SYS_MAKE_XMLNODEID=1832 +SYS_MAKEXML=1833 +SYS_MKXMLATTR=1834 +SYS_MKXTI=1835 +SYSOBJ=1836 +SYS_OP_ADT2BIN=1837 +SYS_OP_ADTCONS=1838 +SYS_OP_ALSCRVAL=1839 +SYS_OP_ATG=1840 +SYS_OP_BIN2ADT=1841 +SYS_OP_BITVEC=1842 +SYS_OP_BL2R=1843 +SYS_OP_BLOOM_FILTER_LIST=1844 +SYS_OP_BLOOM_FILTER=1845 +SYS_OP_C2C=1846 +SYS_OP_CAST=1847 +SYS_OP_CEG=1848 +SYS_OP_CL2C=1849 +SYS_OP_COMBINED_HASH=1850 +SYS_OP_COMP=1851 +SYS_OP_CONVERT=1852 +SYS_OP_COUNTCHG=1853 +SYS_OP_CSCONV=1854 +SYS_OP_CSCONVTEST=1855 +SYS_OP_CSR=1856 +SYS_OP_CSX_PATCH=1857 +SYS_OP_CYCLED_SEQ=1858 +SYS_OP_DECOMP=1859 +SYS_OP_DESCEND=1860 +SYS_OP_DISTINCT=1861 +SYS_OP_DRA=1862 +SYS_OP_DUMP=1863 +SYS_OP_DV_CHECK=1864 +SYS_OP_ENFORCE_NOT_NULL=1865 +SYSOPER=1866 +SYS_OP_EXTRACT=1867 +SYS_OP_GROUPING=1868 +SYS_OP_GUID=1869 +SYS_OP_HASH=1870 +SYS_OP_IIX=1871 +SYS_OP_ITR=1872 +SYS_OP_KEY_VECTOR_CREATE=1873 +SYS_OP_KEY_VECTOR_FILTER_LIST=1874 +SYS_OP_KEY_VECTOR_FILTER=1875 +SYS_OP_KEY_VECTOR_SUCCEEDED=1876 +SYS_OP_KEY_VECTOR_USE=1877 +SYS_OP_LBID=1878 +SYS_OP_LOBLOC2BLOB=1879 +SYS_OP_LOBLOC2CLOB=1880 +SYS_OP_LOBLOC2ID=1881 +SYS_OP_LOBLOC2NCLOB=1882 +SYS_OP_LOBLOC2TYP=1883 +SYS_OP_LSVI=1884 +SYS_OP_LVL=1885 +SYS_OP_MAKEOID=1886 +SYS_OP_MAP_NONNULL=1887 +SYS_OP_MSR=1888 +SYS_OP_NICOMBINE=1889 +SYS_OP_NIEXTRACT=1890 +SYS_OP_NII=1891 +SYS_OP_NIX=1892 +SYS_OP_NOEXPAND=1893 +SYS_OP_NTCIMG=1894 +SYS_OP_NUMTORAW=1895 +SYS_OP_OIDVALUE=1896 +SYS_OP_OPNSIZE=1897 +SYS_OP_PAR_1=1898 +SYS_OP_PARGID_1=1899 +SYS_OP_PARGID=1900 +SYS_OP_PAR=1901 +SYS_OP_PART_ID=1902 +SYS_OP_PIVOT=1903 +SYS_OP_R2O=1904 +SYS_OP_RAWTONUM=1905 +SYS_OP_RDTM=1906 +SYS_OP_REF=1907 +SYS_OP_RMTD=1908 +SYS_OP_ROWIDTOOBJ=1909 +SYS_OP_RPB=1910 +SYS_OPTLOBPRBSC=1911 +SYS_OP_TOSETID=1912 +SYS_OP_TPR=1913 +SYS_OP_TRTB=1914 +SYS_OPTXICMP=1915 +SYS_OPTXQCASTASNQ=1916 +SYS_OP_UNDESCEND=1917 +SYS_OP_VECAND=1918 +SYS_OP_VECBIT=1919 +SYS_OP_VECOR=1920 +SYS_OP_VECXOR=1921 +SYS_OP_VERSION=1922 +SYS_OP_VREF=1923 +SYS_OP_VVD=1924 +SYS_OP_XMLCONS_FOR_CSX=1925 +SYS_OP_XPTHATG=1926 +SYS_OP_XPTHIDX=1927 +SYS_OP_XPTHOP=1928 +SYS_OP_XTXT2SQLT=1929 +SYS_OP_ZONE_ID=1930 +SYS_ORDERKEY_DEPTH=1931 +SYS_ORDERKEY_MAXCHILD=1932 +SYS_ORDERKEY_PARENT=1933 +SYS_PARALLEL_TXN=1934 +SYS_PATHID_IS_ATTR=1935 +SYS_PATHID_IS_NMSPC=1936 +SYS_PATHID_LASTNAME=1937 +SYS_PATHID_LASTNMSPC=1938 +SYS_PATH_REVERSE=1939 +SYS_PXQEXTRACT=1940 +SYS_RAW_TO_XSID=1941 +SYS_RID_ORDER=1942 +SYS_ROW_DELTA=1943 +SYS_SC_2_XMLT=1944 +SYS_SYNRCIREDO=1945 +SYSTEM_DEFINED=1946 +SYSTEM=1947 +SYSTIMESTAMP=1948 +SYS_TYPEID=1949 +SYS_UMAKEXML=1950 +SYS_XMLANALYZE=1951 +SYS_XMLCONTAINS=1952 +SYS_XMLCONV=1953 +SYS_XMLEXNSURI=1954 +SYS_XMLGEN=1955 +SYS_XMLI_LOC_ISNODE=1956 +SYS_XMLI_LOC_ISTEXT=1957 +SYS_XMLINSTR=1958 +SYS_XMLLOCATOR_GETSVAL=1959 +SYS_XMLNODEID_GETCID=1960 +SYS_XMLNODEID_GETLOCATOR=1961 +SYS_XMLNODEID_GETOKEY=1962 +SYS_XMLNODEID_GETPATHID=1963 +SYS_XMLNODEID_GETPTRID=1964 +SYS_XMLNODEID_GETRID=1965 +SYS_XMLNODEID_GETSVAL=1966 +SYS_XMLNODEID_GETTID=1967 +SYS_XMLNODEID=1968 +SYS_XMLT_2_SC=1969 +SYS_XMLTRANSLATE=1970 +SYS_XMLTYPE2SQL=1971 +SYS_XQ_ASQLCNV=1972 +SYS_XQ_ATOMCNVCHK=1973 +SYS_XQBASEURI=1974 +SYS_XQCASTABLEERRH=1975 +SYS_XQCODEP2STR=1976 +SYS_XQCODEPEQ=1977 +SYS_XQCON2SEQ=1978 +SYS_XQCONCAT=1979 +SYS_XQDELETE=1980 +SYS_XQDFLTCOLATION=1981 +SYS_XQDOC=1982 +SYS_XQDOCURI=1983 +SYS_XQDURDIV=1984 +SYS_XQED4URI=1985 +SYS_XQENDSWITH=1986 +SYS_XQERRH=1987 +SYS_XQERR=1988 +SYS_XQESHTMLURI=1989 +SYS_XQEXLOBVAL=1990 +SYS_XQEXSTWRP=1991 +SYS_XQEXTRACT=1992 +SYS_XQEXTRREF=1993 +SYS_XQEXVAL=1994 +SYS_XQFB2STR=1995 +SYS_XQFNBOOL=1996 +SYS_XQFNCMP=1997 +SYS_XQFNDATIM=1998 +SYS_XQFNLNAME=1999 +SYS_XQFNNM=2000 +SYS_XQFNNSURI=2001 +SYS_XQFNPREDTRUTH=2002 +SYS_XQFNQNM=2003 +SYS_XQFNROOT=2004 +SYS_XQFORMATNUM=2005 +SYS_XQFTCONTAIN=2006 +SYS_XQFUNCR=2007 +SYS_XQGETCONTENT=2008 +SYS_XQINDXOF=2009 +SYS_XQINSERT=2010 +SYS_XQINSPFX=2011 +SYS_XQIRI2URI=2012 +SYS_XQLANG=2013 +SYS_XQLLNMFRMQNM=2014 +SYS_XQMKNODEREF=2015 +SYS_XQNILLED=2016 +SYS_XQNODENAME=2017 +SYS_XQNORMSPACE=2018 +SYS_XQNORMUCODE=2019 +SYS_XQ_NRNG=2020 +SYS_XQNSP4PFX=2021 +SYS_XQNSPFRMQNM=2022 +SYS_XQPFXFRMQNM=2023 +SYS_XQ_PKSQL2XML=2024 +SYS_XQPOLYABS=2025 +SYS_XQPOLYADD=2026 +SYS_XQPOLYCEL=2027 +SYS_XQPOLYCSTBL=2028 +SYS_XQPOLYCST=2029 +SYS_XQPOLYDIV=2030 +SYS_XQPOLYFLR=2031 +SYS_XQPOLYMOD=2032 +SYS_XQPOLYMUL=2033 +SYS_XQPOLYRND=2034 +SYS_XQPOLYSQRT=2035 +SYS_XQPOLYSUB=2036 +SYS_XQPOLYUMUS=2037 +SYS_XQPOLYUPLS=2038 +SYS_XQPOLYVEQ=2039 +SYS_XQPOLYVGE=2040 +SYS_XQPOLYVGT=2041 +SYS_XQPOLYVLE=2042 +SYS_XQPOLYVLT=2043 +SYS_XQPOLYVNE=2044 +SYS_XQREF2VAL=2045 +SYS_XQRENAME=2046 +SYS_XQREPLACE=2047 +SYS_XQRESVURI=2048 +SYS_XQRNDHALF2EVN=2049 +SYS_XQRSLVQNM=2050 +SYS_XQRYENVPGET=2051 +SYS_XQRYVARGET=2052 +SYS_XQRYWRP=2053 +SYS_XQSEQ2CON4XC=2054 +SYS_XQSEQ2CON=2055 +SYS_XQSEQDEEPEQ=2056 +SYS_XQSEQINSB=2057 +SYS_XQSEQRM=2058 +SYS_XQSEQRVS=2059 +SYS_XQSEQSUB=2060 +SYS_XQSEQTYPMATCH=2061 +SYS_XQSTARTSWITH=2062 +SYS_XQSTATBURI=2063 +SYS_XQSTR2CODEP=2064 +SYS_XQSTRJOIN=2065 +SYS_XQSUBSTRAFT=2066 +SYS_XQSUBSTRBEF=2067 +SYS_XQTOKENIZE=2068 +SYS_XQTREATAS=2069 +SYS_XQ_UPKXML2SQL=2070 +SYS_XQXFORM=2071 +SYS_XSID_TO_RAW=2072 +SYS_ZMAP_FILTER=2073 +SYS_ZMAP_REFRESH=2074 +T_LETTER=2075 +TABLE_LOOKUP_BY_NL=2076 +TABLESPACE_NO=2077 +TABLESPACE=2078 +TABLES=2079 +TABLE_STATS=2080 +TABLE=2081 +TABNO=2082 +TAG=2083 +TANH=2084 +TAN=2085 +TBLORIDXPARTNUM=2086 +TEMPFILE=2087 +TEMPLATE=2088 +TEMPLATE_TABLE=2089 +TEMPORARY=2090 +TEMP_TABLE=2091 +TERMINATED=2092 +TEST=2093 +TEXT=2094 +TEXTFILE=2095 +THAN=2096 +THEN=2097 +THE=2098 +THESE=2099 +THREAD=2100 +THROUGH=2101 +TIER=2102 +TIES=2103 +TIMEOUT=2104 +TIMESTAMP_LTZ_UNCONSTRAINED=2105 +TIMESTAMP=2106 +TIMESTAMP_TZ_UNCONSTRAINED=2107 +TIMESTAMP_UNCONSTRAINED=2108 +TIMES=2109 +TIME=2110 +TIMEZONE=2111 +TIMEZONE_ABBR=2112 +TIMEZONE_HOUR=2113 +TIMEZONE_MINUTE=2114 +TIMEZONE_OFFSET=2115 +TIMEZONE_REGION=2116 +TIME_ZONE=2117 +TIMING=2118 +TINYINT=2119 +TIV_GB=2120 +TIV_SSF=2121 +TO_ACLID=2122 +TO_BINARY_DOUBLE=2123 +TO_BINARY_FLOAT=2124 +TO_BLOB=2125 +TO_CLOB=2126 +TO_DSINTERVAL=2127 +TO_LOB=2128 +TO_MULTI_BYTE=2129 +TO_NCHAR=2130 +TO_NCLOB=2131 +TO_NUMBER=2132 +TOPLEVEL=2133 +TO_SINGLE_BYTE=2134 +TO_TIMESTAMP=2135 +TO_TIMESTAMP_TZ=2136 +TO_TIME=2137 +TO_TIME_TZ=2138 +TO=2139 +TO_YMINTERVAL=2140 +TRACE=2141 +TRACING=2142 +TRACKING=2143 +TRAILING=2144 +TRANSACTION=2145 +TRANSFORM=2146 +TRANSFORMS=2147 +TRANSFORM_DISTINCT_AGG=2148 +TRANSITIONAL=2149 +TRANSITION=2150 +TRANSLATE=2151 +TRANSLATION=2152 +TREAT=2153 +TRIGGERS=2154 +TRIGGER=2155 +TRUE=2156 +TRUNCATE=2157 +TRUNC=2158 +TRUSTED=2159 +TRUST=2160 +TUNING=2161 +TX=2162 +TYPES=2163 +TYPE=2164 +TZ_OFFSET=2165 +UB2=2166 +UBA=2167 +UCS2=2168 +UDF=2169 +UID=2170 +UNARCHIVED=2171 +UNBOUNDED=2172 +UNBOUND=2173 +UNCONDITIONAL=2174 +UNDER=2175 +UNDO=2176 +UNDROP=2177 +UNIFORM=2178 +UNION=2179 +UNIONTYPE=2180 +UNIQUE=2181 +UNISTR=2182 +UNLIMITED=2183 +UNLOAD=2184 +UNLOCK=2185 +UNMATCHED=2186 +UNNEST_INNERJ_DISTINCT_VIEW=2187 +UNNEST_NOSEMIJ_NODISTINCTVIEW=2188 +UNNEST_SEMIJ_VIEW=2189 +UNNEST=2190 +UNPACKED=2191 +UNPIVOT=2192 +UNPLUG=2193 +UNPROTECTED=2194 +UNQUIESCE=2195 +UNRECOVERABLE=2196 +UNRESTRICTED=2197 +UNSIGNED=2198 +UNSUBSCRIBE=2199 +UNTIL=2200 +UNUSABLE=2201 +UNUSED=2202 +UPDATABLE=2203 +UPDATED=2204 +UPDATE=2205 +UPDATEXML=2206 +UPD_INDEXES=2207 +UPD_JOININDEX=2208 +UPGRADE=2209 +UPPER=2210 +UPSERT=2211 +UROWID=2212 +USABLE=2213 +USAGE=2214 +USE_ANTI=2215 +USE_CONCAT=2216 +USE_CUBE=2217 +USE_HASH_AGGREGATION=2218 +USE_HASH_GBY_FOR_PUSHDOWN=2219 +USE_HASH=2220 +USE_HIDDEN_PARTITIONS=2221 +USE_INVISIBLE_INDEXES=2222 +USE_MERGE_CARTESIAN=2223 +USE_MERGE=2224 +USE_NL=2225 +USE_NL_WITH_INDEX=2226 +USE_PRIVATE_OUTLINES=2227 +USER_DATA=2228 +USER_DEFINED=2229 +USERENV=2230 +USERGROUP=2231 +USER_RECYCLEBIN=2232 +USERS=2233 +USER_TABLESPACES=2234 +USER=2235 +USE_SEMI=2236 +USE_STORED_OUTLINES=2237 +USE_TTT_FOR_GSETS=2238 +USE=2239 +USE_VECTOR_AGGREGATION=2240 +USE_WEAK_NAME_RESL=2241 +USING_NO_EXPAND=2242 +USING_NLS_COMP=2243 +USING=2244 +UTF16BE=2245 +UTF16LE=2246 +UTF32=2247 +UTF8=2248 +V1=2249 +V2=2250 +VALIDATE=2251 +VALIDATE_CONVERSION=2252 +VALIDATION=2253 +VALID_TIME_END=2254 +VALUES=2255 +VALUE=2256 +VARCHAR2=2257 +VARCHAR=2258 +VARCHARC=2259 +VARIABLE=2260 +VARRAW=2261 +VARRAWC=2262 +VAR_POP=2263 +VARRAYS=2264 +VARRAY=2265 +VAR_SAMP=2266 +VARYING=2267 +VECTOR_READ_TRACE=2268 +VECTOR_READ=2269 +VECTOR_TRANSFORM_DIMS=2270 +VECTOR_TRANSFORM_FACT=2271 +VECTOR_TRANSFORM=2272 +VERIFIER=2273 +VERIFY=2274 +VERSIONING=2275 +VERSIONS_ENDSCN=2276 +VERSIONS_ENDTIME=2277 +VERSIONS_OPERATION=2278 +VERSIONS_STARTSCN=2279 +VERSIONS_STARTTIME=2280 +VERSIONS=2281 +VERSIONS_XID=2282 +VERSION=2283 +VIEW=2284 +VIOLATION=2285 +VIRTUAL=2286 +VISIBILITY=2287 +VISIBLE=2288 +VOLUME=2289 +VSIZE=2290 +WAIT=2291 +WALLET=2292 +WARNING=2293 +WEEKS=2294 +WEEK=2295 +WELLFORMED=2296 +WHENEVER=2297 +WHEN=2298 +WHERE=2299 +WHILE=2300 +WHITESPACE=2301 +WIDTH_BUCKET=2302 +WITHIN=2303 +WITHOUT=2304 +WITH_PLSQL=2305 +WITH=2306 +WORK=2307 +WORKERID=2308 +WRAPPED=2309 +WRAPPER=2310 +WRITE=2311 +XDB_FASTPATH_INSERT=2312 +XDB=2313 +X_DYN_PRUNE=2314 +XID=2315 +XML2OBJECT=2316 +XMLAGG=2317 +XMLATTRIBUTES=2318 +XMLCAST=2319 +XMLCDATA=2320 +XMLCOLATTVAL=2321 +XMLCOMMENT=2322 +XMLCONCAT=2323 +XMLDIFF=2324 +XML_DML_RWT_STMT=2325 +XMLELEMENT=2326 +XMLEXISTS2=2327 +XMLEXISTS=2328 +XMLFOREST=2329 +XMLINDEX=2330 +XMLINDEX_REWRITE_IN_SELECT=2331 +XMLINDEX_REWRITE=2332 +XMLINDEX_SEL_IDX_TBL=2333 +XMLISNODE=2334 +XMLISVALID=2335 +XMLNAMESPACES=2336 +XMLPARSE=2337 +XMLPATCH=2338 +XMLPI=2339 +XMLQUERYVAL=2340 +XMLQUERY=2341 +XMLROOT=2342 +XMLSCHEMA=2343 +XMLSERIALIZE=2344 +XMLTABLE=2345 +XMLTAG=2346 +XMLTRANSFORMBLOB=2347 +XMLTRANSFORM=2348 +XMLTYPE=2349 +XML=2350 +XPATHTABLE=2351 +XS_SYS_CONTEXT=2352 +XS=2353 +XTRANSPORT=2354 +YEARS=2355 +YEAR=2356 +YEAR_TO_MONTH=2357 +YES=2358 +YMINTERVAL_UNCONSTRAINED=2359 +ZONEMAP=2360 +ZONE=2361 +ZONED=2362 +PREDICTION=2363 +PREDICTION_BOUNDS=2364 +PREDICTION_COST=2365 +PREDICTION_DETAILS=2366 +PREDICTION_PROBABILITY=2367 +PREDICTION_SET=2368 +BLOCKCHAIN=2369 +COLLATE=2370 +COLLATION=2371 +DEFINITION=2372 +DUPLICATED=2373 +EXTENDED=2374 +HASHING=2375 +IDLE=2376 +IMMUTABLE=2377 +ORACLE_DATAPUMP=2378 +ORACLE_HDFS=2379 +ORACLE_HIVE=2380 +ORACLE_LOADER=2381 +SHA2_512_Q=2382 +SHARDED=2383 +V1_Q=2384 +ISOLATE=2385 +ROOT=2386 +UNITE=2387 +ALGORITHM=2388 +CUME_DIST=2389 +DENSE_RANK=2390 +LISTAGG=2391 +PERCENT_RANK=2392 +PERCENTILE_CONT=2393 +PERCENTILE_DISC=2394 +RANK=2395 +AVG=2396 +CORR=2397 +COVAR_=2398 +DECODE=2399 +LAG=2400 +LAG_DIFF=2401 +LAG_DIFF_PERCENT=2402 +LEAD=2403 +MAX=2404 +MEDIAN=2405 +MEMOPTIMIZE=2406 +MIN=2407 +NTILE=2408 +NVL=2409 +RATIO_TO_REPORT=2410 +REGR_=2411 +ROUND=2412 +ROW_NUMBER=2413 +SUBSTR=2414 +TO_CHAR=2415 +TRIM=2416 +SUM=2417 +STDDEV=2418 +VAR_=2419 +VARIANCE=2420 +LEAST=2421 +GREATEST=2422 +TO_DATE=2423 +CHARSETID=2424 +CHARSETFORM=2425 +DURATION=2426 +EXTEND=2427 +MAXLEN=2428 +PERSISTABLE=2429 +POLYMORPHIC=2430 +STRUCT=2431 +TDO=2432 +WM_CONCAT=2433 +NATIONAL_CHAR_STRING_LIT=2434 +BIT_STRING_LIT=2435 +HEX_STRING_LIT=2436 +DOUBLE_PERIOD=2437 +PERIOD=2438 +UNSIGNED_INTEGER=2439 +APPROXIMATE_NUM_LIT=2440 +CHAR_STRING=2441 +DELIMITED_ID=2442 +PERCENT=2443 +AMPERSAND=2444 +LEFT_PAREN=2445 +RIGHT_PAREN=2446 +DOUBLE_ASTERISK=2447 +ASTERISK=2448 +PLUS_SIGN=2449 +MINUS_SIGN=2450 +COMMA=2451 +SOLIDUS=2452 +AT_SIGN=2453 +ASSIGN_OP=2454 +HASH_OP=2455 +LEFT_CURLY_PAREN=2456 +RIGHT_CURLY_PAREN=2457 +SQ=2458 +BINDVAR=2459 +NOT_EQUAL_OP=2460 +CARRET_OPERATOR_PART=2461 +TILDE_OPERATOR_PART=2462 +EXCLAMATION_OPERATOR_PART=2463 +GREATER_THAN_OP=2464 +LESS_THAN_OP=2465 +COLON=2466 +SEMICOLON=2467 +BAR=2468 +EQUALS_OP=2469 +LEFT_BRACKET=2470 +RIGHT_BRACKET=2471 +INTRODUCER=2472 +SINGLE_LINE_COMMENT=2473 +MULTI_LINE_COMMENT=2474 +REMARK_COMMENT=2475 +PROMPT_MESSAGE=2476 +START_CMD=2477 +REGULAR_ID=2478 +INQUIRY_DIRECTIVE=2479 +SPACES=2480 +'ABORT'=1 +'ABS'=2 +'ABSENT'=3 +'ACCESS'=4 +'ACCESSED'=5 +'ACCESSIBLE'=6 +'ACCOUNT'=7 +'ACL'=8 +'ACOS'=9 +'ACROSS'=10 +'ACTION'=11 +'ACTIONS'=12 +'ACTIVATE'=13 +'ACTIVE'=14 +'ACTIVE_COMPONENT'=15 +'ACTIVE_DATA'=16 +'ACTIVE_FUNCTION'=17 +'ACTIVE_TAG'=18 +'ACTIVITY'=19 +'ADAPTIVE_PLAN'=20 +'ADD'=21 +'ADD_COLUMN'=22 +'ADD_GROUP'=23 +'ADD_MONTHS'=24 +'ADJ_DATE'=25 +'ADMIN'=26 +'ADMINISTER'=27 +'ADMINISTRATOR'=28 +'ADVANCED'=29 +'ADVISE'=30 +'ADVISOR'=31 +'AFD_DISKSTRING'=32 +'AFTER'=33 +'AGENT'=34 +'AGGREGATE'=35 +'A'=36 +'ALIAS'=37 +'ALL'=38 +'ALLOCATE'=39 +'ALLOW'=40 +'ALL_ROWS'=41 +'ALTER'=42 +'ALTERNATE'=43 +'ALWAYS'=44 +'ANALYTIC'=45 +'ANALYZE'=46 +'ANCESTOR'=47 +'ANCILLARY'=48 +'AND'=49 +'AND_EQUAL'=50 +'ANNOTATIONS'=51 +'ANOMALY'=52 +'ANSI_REARCH'=53 +'ANTIJOIN'=54 +'ANY'=55 +'ANYSCHEMA'=56 +'APPEND'=57 +'APPENDCHILDXML'=58 +'APPEND_VALUES'=59 +'APPLICATION'=60 +'APPLY'=61 +'APPROX_COUNT_DISTINCT'=62 +'ARCHIVAL'=63 +'ARCHIVE'=64 +'ARCHIVED'=65 +'ARCHIVELOG'=66 +'ARE'=67 +'ARRAY'=68 +'AS'=69 +'ASC'=70 +'ASCII'=71 +'ASCIISTR'=72 +'ASIN'=73 +'ASIS'=74 +'ASSEMBLY'=75 +'ASSIGN'=76 +'ASSOCIATE'=77 +'ASYNC'=78 +'ASYNCHRONOUS'=79 +'ATAN2'=80 +'ATAN'=81 +'AT'=82 +'ATTRIBUTE'=83 +'ATTRIBUTES'=84 +'AUDIT'=85 +'AUTHENTICATED'=86 +'AUTHENTICATION'=87 +'AUTHID'=88 +'AUTHORIZATION'=89 +'AUTOALLOCATE'=90 +'AUTO'=91 +'AUTOBACKUP'=92 +'AUTOEXTEND'=93 +'AUTO_LOGIN'=94 +'AUTOMATIC'=95 +'AUTONOMOUS_TRANSACTION'=96 +'AUTO_REOPTIMIZE'=97 +'AVAILABILITY'=98 +'AVRO'=99 +'BACKGROUND'=100 +'BACKINGFILE'=101 +'BACKUP'=102 +'BACKUPS'=103 +'BACKUPSET'=104 +'BADFILE'=105 +'BASIC'=106 +'BASICFILE'=107 +'BATCH'=108 +'BATCHSIZE'=109 +'BATCH_TABLE_ACCESS_BY_ROWID'=110 +'BECOME'=111 +'BEFORE'=112 +'BEGIN'=113 +'BEGINNING'=114 +'BEGIN_OUTLINE_DATA'=115 +'BEHALF'=116 +'BEQUEATH'=117 +'BETWEEN'=118 +'BFILE'=119 +'BFILENAME'=120 +'BIG'=121 +'BIGFILE'=122 +'BIGINT'=123 +'BINARY'=124 +'BINARY_DOUBLE'=125 +'BINARY_DOUBLE_INFINITY'=126 +'BINARY_DOUBLE_NAN'=127 +'BINARY_FLOAT'=128 +'BINARY_FLOAT_INFINITY'=129 +'BINARY_FLOAT_NAN'=130 +'BINARY_INTEGER'=131 +'BIND_AWARE'=132 +'BINDING'=133 +'BIN_TO_NUM'=134 +'BITAND'=135 +'BITMAP_AND'=136 +'BITMAP'=137 +'BITMAPS'=138 +'BITMAP_TREE'=139 +'BITS'=140 +'BLANKS'=141 +'BLOB'=142 +'BLOCK'=143 +'BLOCK_RANGE'=144 +'BLOCKS'=145 +'BLOCKSIZE'=146 +'BODY'=147 +'BOOLEAN'=148 +'BOTH'=149 +'BOUND'=150 +'BRANCH'=151 +'BREADTH'=152 +'BROADCAST'=153 +'BSON'=154 +'BUFFER'=155 +'BUFFER_CACHE'=156 +'BUFFER_POOL'=157 +'BUILD'=158 +'BULK'=159 +'BY'=160 +'BYPASS_RECURSIVE_CHECK'=161 +'BYPASS_UJVC'=162 +'BYTE'=163 +'BYTES'=164 +'BYTEORDERMARK'=165 +'CACHE'=166 +'CACHE_CB'=167 +'CACHE_INSTANCES'=168 +'CACHE_TEMP_TABLE'=169 +'CACHING'=170 +'CALCULATED'=171 +'CALLBACK'=172 +'CALL'=173 +'CANCEL'=174 +'CANONICAL'=175 +'CAPACITY'=176 +'CAPTION'=177 +'CARDINALITY'=178 +'CASCADE'=179 +'CASE'=180 +'CAST'=181 +'CASE-SENSITIVE'=182 +'CATEGORY'=183 +'CDB$DEFAULT'=184 +'CEIL'=185 +'CELL_FLASH_CACHE'=186 +'CERTIFICATE'=187 +'CFILE'=188 +'CHAINED'=189 +'CHANGE'=190 +'CHANGETRACKING'=191 +'CHANGE_DUPKEY_ERROR_INDEX'=192 +'CHARACTER'=193 +'CHARACTERS'=194 +'CHARACTERSET'=195 +'CHAR'=196 +'CHAR_CS'=197 +'CHARTOROWID'=198 +'CHECK_ACL_REWRITE'=199 +'CHECK'=200 +'CHECKPOINT'=201 +'CHILD'=202 +'CHOOSE'=203 +'CHR'=204 +'CHUNK'=205 +'CLASS'=206 +'CLASSIFICATION'=207 +'CLASSIFIER'=208 +'CLAUSE'=209 +'CLEAN'=210 +'CLEANUP'=211 +'CLEAR'=212 +'C'=213 +'CLIENT'=214 +'CLOB'=215 +'CLONE'=216 +'CLOSE_CACHED_OPEN_CURSORS'=217 +'CLOSE'=218 +'CLUSTER_BY_ROWID'=219 +'CLUSTER'=220 +'CLUSTER_DETAILS'=221 +'CLUSTER_DISTANCE'=222 +'CLUSTER_ID'=223 +'CLUSTERING'=224 +'CLUSTERING_FACTOR'=225 +'CLUSTER_PROBABILITY'=226 +'CLUSTER_SET'=227 +'COALESCE'=228 +'COALESCE_SQ'=229 +'COARSE'=230 +'CO_AUTH_IND'=231 +'COLD'=232 +'COLLECT'=233 +'COLLECTION'=234 +'COLUMNAR'=235 +'COLUMN_AUTH_INDICATOR'=236 +'COLUMN'=237 +'COLUMNS'=238 +'COLUMN_STATS'=239 +'COLUMN_VALUE'=240 +'COMMENT'=241 +'COMMIT'=242 +'COMMITTED'=243 +'COMMON'=244 +'COMMON_DATA'=245 +'COMPACT'=246 +'COMPATIBLE'=247 +'COMPATIBILITY'=248 +'COMPILE'=249 +'COMPLETE'=250 +'COMPLIANCE'=251 +'COMPONENT'=252 +'COMPONENTS'=253 +'COMPOSE'=254 +'COMPOSITE'=255 +'COMPOSITE_LIMIT'=256 +'COMPOUND'=257 +'COMPRESS'=258 +'COMPRESSION'=259 +'COMPUTE'=260 +'CONCAT'=261 +'CON_DBID_TO_ID'=262 +'CONDITIONAL'=263 +'CONDITION'=264 +'CONFIRM'=265 +'CONFORMING'=266 +'CON_GUID_TO_ID'=267 +'CON_ID'=268 +'CON_NAME_TO_ID'=269 +'CONNECT_BY_CB_WHR_ONLY'=270 +'CONNECT_BY_COMBINE_SW'=271 +'CONNECT_BY_COST_BASED'=272 +'CONNECT_BY_ELIM_DUPS'=273 +'CONNECT_BY_FILTERING'=274 +'CONNECT_BY_ISCYCLE'=275 +'CONNECT_BY_ISLEAF'=276 +'CONNECT_BY_ROOT'=277 +'CONNECT'=278 +'CONNECT_TIME'=279 +'CONSIDER'=280 +'CONSISTENT'=281 +'CONSTANT'=282 +'CONST'=283 +'CONSTRAINT'=284 +'CONSTRAINTS'=285 +'CONSTRUCTOR'=286 +'CONTAINER'=287 +'CONTAINERS'=288 +'CONTAINERS_DEFAULT'=289 +'CONTAINER_DATA'=290 +'CONTAINER_MAP'=291 +'CONTENT'=292 +'CONTENTS'=293 +'CONTEXT'=294 +'CONTINUE'=295 +'CONTROLFILE'=296 +'CON_UID_TO_ID'=297 +'CONVERT'=298 +'CONVERSION'=299 +'COOKIE'=300 +'COPY'=301 +'CORR_K'=302 +'CORR_S'=303 +'CORRUPTION'=304 +'CORRUPT_XID_ALL'=305 +'CORRUPT_XID'=306 +'COS'=307 +'COSH'=308 +'COST'=309 +'COST_XML_QUERY_REWRITE'=310 +'COUNT'=311 +'COUNTED'=312 +'COVAR_POP'=313 +'COVAR_SAMP'=314 +'CPU_COSTING'=315 +'CPU_PER_CALL'=316 +'CPU_PER_SESSION'=317 +'CRASH'=318 +'CREATE'=319 +'CREATE_FILE_DEST'=320 +'CREATE_STORED_OUTLINES'=321 +'CREATION'=322 +'CREDENTIAL'=323 +'CRITICAL'=324 +'CROSS'=325 +'CROSSEDITION'=326 +'CSCONVERT'=327 +'CSV'=328 +'CUBE_AJ'=329 +'CUBE'=330 +'CUBE_GB'=331 +'CUBE_SJ'=332 +'CUME_DISTM'=333 +'CURRENT'=334 +'CURRENT_DATE'=335 +'CURRENT_SCHEMA'=336 +'CURRENT_TIME'=337 +'CURRENT_TIMESTAMP'=338 +'CURRENT_USER'=339 +'CURRENTV'=340 +'CURSOR'=341 +'CURSOR_SHARING_EXACT'=342 +'CURSOR_SPECIFIC_SEGMENT'=343 +'CUSTOMDATUM'=344 +'CV'=345 +'CYCLE'=346 +'DANGLING'=347 +'DATABASE'=348 +'DATA'=349 +'DATAFILE'=350 +'DATAFILES'=351 +'DATAGUARDCONFIG'=352 +'DATAMOVEMENT'=353 +'DATAOBJNO'=354 +'DATAOBJ_TO_MAT_PARTITION'=355 +'DATAOBJ_TO_PARTITION'=356 +'DATAPUMP'=357 +'DATA_SECURITY_REWRITE_LIMIT'=358 +'DATE'=359 +'DATE_CACHE'=360 +'DATE_FORMAT'=361 +'DATE_MODE'=362 +'DAY'=363 +'DAYS'=364 +'DAY_TO_SECOND'=365 +'DBA'=366 +'DBA_RECYCLEBIN'=367 +'DBLINK'=368 +'DBMS_STATS'=369 +'DB_ROLE_CHANGE'=370 +'DBTIMEZONE'=371 +'DB_UNIQUE_NAME'=372 +'DB_VERSION'=373 +'DDL'=374 +'DEALLOCATE'=375 +'DEBUG'=376 +'DEBUGGER'=377 +'DEC'=378 +'DECIMAL'=379 +'DECLARE'=380 +'DECOMPOSE'=381 +'DECORRELATE'=382 +'DECR'=383 +'DECREMENT'=384 +'DECRYPT'=385 +'DEDUPLICATE'=386 +'DEFAULT'=387 +'DEFAULTIF'=388 +'DEFAULTS'=389 +'DEFAULT_COLLATION'=390 +'DEFAULT_CREDENTIAL'=391 +'DEFERRABLE'=392 +'DEFERRED'=393 +'DEFINED'=394 +'DEFINE'=395 +'DEFINER'=396 +'DEGREE'=397 +'DELAY'=398 +'DELEGATE'=399 +'DELETE_ALL'=400 +'DELETE'=401 +'DELETEXML'=402 +'DELIMITED'=403 +'DEMAND'=404 +'DENSE_RANKM'=405 +'DEPENDENT'=406 +'DEPRECATE'=407 +'DEPTH'=408 +'DEQUEUE'=409 +'DEREF'=410 +'DEREF_NO_REWRITE'=411 +'DESC'=412 +'DESCRIPTION'=413 +'DESTROY'=414 +'DETACHED'=415 +'DETECTED'=416 +'DETERMINES'=417 +'DETERMINISTIC'=418 +'DICTIONARY'=419 +'DIMENSION'=420 +'DIMENSIONS'=421 +'DIRECTIO'=422 +'DIRECT_LOAD'=423 +'DIRECTORY'=424 +'DIRECT_PATH'=425 +'DISABLE_ALL'=426 +'DISABLE'=427 +'DISABLED'=428 +'DISABLE_DIRECTORY_LINK_CHECK'=429 +'DISABLE_PARALLEL_DML'=430 +'DISABLE_PRESET'=431 +'DISABLE_RPKE'=432 +'DISALLOW'=433 +'DISASSOCIATE'=434 +'DISCARD'=435 +'DISCARDFILE'=436 +'DISCONNECT'=437 +'DISK'=438 +'DISKGROUP'=439 +'\'+ DISKGROUP'=440 +'DISKS'=441 +'DISMOUNT'=442 +'DISTINCT'=443 +'DISTINGUISHED'=444 +'DISTRIBUTED'=445 +'DISTRIBUTE'=446 +'DML'=447 +'DML_UPDATE'=448 +'DNFS_DISABLE'=449 +'DNFS_ENABLE'=450 +'DNFS_READBUFFERS'=451 +'DOCFIDELITY'=452 +'DOCUMENT'=453 +'$ELSE'=454 +'$ELSIF'=455 +'$END'=456 +'$ERROR'=457 +'$IF'=458 +'$THEN'=459 +'DOMAIN_INDEX_FILTER'=460 +'DOMAIN_INDEX_NO_SORT'=461 +'DOMAIN_INDEX_SORT'=462 +'DOUBLE'=463 +'DOWNGRADE'=464 +'DRIVING_SITE'=465 +'DROP_COLUMN'=466 +'DROP'=467 +'DROP_GROUP'=468 +'DSINTERVAL_UNCONSTRAINED'=469 +'DST_UPGRADE_INSERT_CONV'=470 +'DUMP'=471 +'DUMPSET'=472 +'DUPLICATE'=473 +'DV'=474 +'DYNAMIC'=475 +'DYNAMIC_SAMPLING'=476 +'DYNAMIC_SAMPLING_EST_CDN'=477 +'E'=478 +'EACH'=479 +'EDITIONABLE'=480 +'EDITION'=481 +'EDITIONING'=482 +'EDITIONS'=483 +'ELEMENT'=484 +'ELIM_GROUPBY'=485 +'ELIMINATE_JOIN'=486 +'ELIMINATE_OBY'=487 +'ELIMINATE_OUTER_JOIN'=488 +'ELSE'=489 +'ELSIF'=490 +'EM'=491 +'EMBEDDED'=492 +'EMPTY_BLOB'=493 +'EMPTY_CLOB'=494 +'EMPTY'=495 +'ENABLE_ALL'=496 +'ENABLE'=497 +'ENABLED'=498 +'ENABLE_PARALLEL_DML'=499 +'ENABLE_PRESET'=500 +'ENCLOSED'=501 +'ENCODING'=502 +'ENCRYPT'=503 +'ENCRYPTION'=504 +'ENCRYPTPASSWORDISNULL'=505 +'END'=506 +'END_OUTLINE_DATA'=507 +'ENDIAN'=508 +'ENFORCED'=509 +'ENFORCE'=510 +'ENQUEUE'=511 +'ENTERPRISE'=512 +'ENTITYESCAPING'=513 +'ENTRY'=514 +'EQUIPART'=515 +'ERR'=516 +'ERROR_ARGUMENT'=517 +'ERROR'=518 +'ERROR_ON_OVERLAP_TIME'=519 +'ERRORS'=520 +'ERROR_INDEX'=521 +'ERROR_CODE'=522 +'ESCAPE'=523 +'ESCAPED'=524 +'ESTIMATE'=525 +'EVAL'=526 +'EVALNAME'=527 +'EVALUATE'=528 +'EVALUATION'=529 +'EVENTS'=530 +'EVERY'=531 +'EXCEPT'=532 +'EXCEPTION'=533 +'EXCEPTION_INIT'=534 +'EXCEPTIONS'=535 +'EXCHANGE'=536 +'EXCLUDE'=537 +'EXCLUDING'=538 +'EXCLUSIVE'=539 +'EXECUTE'=540 +'EXEMPT'=541 +'EXISTING'=542 +'EXISTS'=543 +'EXISTSNODE'=544 +'EXIT'=545 +'EXPAND_GSET_TO_UNION'=546 +'EXPAND_TABLE'=547 +'EXP'=548 +'EXPIRE'=549 +'EXPLAIN'=550 +'EXPLOSION'=551 +'EXPORT'=552 +'EXPR_CORR_CHECK'=553 +'EXPRESS'=554 +'EXTENDS'=555 +'EXTENT'=556 +'EXTENTS'=557 +'EXTERNAL'=558 +'EXTERNALLY'=559 +'EXTRACTCLOBXML'=560 +'EXTRACT'=561 +'EXTRACTVALUE'=562 +'EXTRA'=563 +'FACILITY'=564 +'FACT'=565 +'FACTOR'=566 +'FACTORIZE_JOIN'=567 +'FAILED'=568 +'FAILED_LOGIN_ATTEMPTS'=569 +'FAILGROUP'=570 +'FAILOVER'=571 +'FAILURE'=572 +'FALSE'=573 +'FAMILY'=574 +'FAR'=575 +'FAST'=576 +'FASTSTART'=577 +'FBTSCAN'=578 +'FEATURE'=579 +'FEATURE_DETAILS'=580 +'FEATURE_ID'=581 +'FEATURE_SET'=582 +'FEATURE_VALUE'=583 +'FETCH'=584 +'FIELD'=585 +'FIELDS'=586 +'FILE'=587 +'FILE_NAME_CONVERT'=588 +'FILEGROUP'=589 +'FILESTORE'=590 +'FILESYSTEM_LIKE_LOGGING'=591 +'FILTER'=592 +'FINAL'=593 +'FINE'=594 +'FINISH'=595 +'FIRST'=596 +'FIRSTM'=597 +'FIRST_ROWS'=598 +'FIRST_VALUE'=599 +'FIXED'=600 +'FIXED_VIEW_DATA'=601 +'FLAGGER'=602 +'FLASHBACK'=603 +'FLASH_CACHE'=604 +'FLOAT'=605 +'FLOB'=606 +'FLEX'=607 +'FLOOR'=608 +'FLUSH'=609 +'FOLDER'=610 +'FOLLOWING'=611 +'FOLLOWS'=612 +'FORALL'=613 +'FORCE'=614 +'FORCE_XML_QUERY_REWRITE'=615 +'FOREIGN'=616 +'FOREVER'=617 +'FOR'=618 +'FORMAT'=619 +'FORWARD'=620 +'FRAGMENT_NUMBER'=621 +'FREELIST'=622 +'FREELISTS'=623 +'FREEPOOLS'=624 +'FRESH'=625 +'FROM'=626 +'FROM_TZ'=627 +'FULL'=628 +'FULL_OUTER_JOIN_TO_OUTER'=629 +'FUNCTION'=630 +'FUNCTIONS'=631 +'FTP'=632 +'G'=633 +'GATHER_OPTIMIZER_STATISTICS'=634 +'GATHER_PLAN_STATISTICS'=635 +'GBY_CONC_ROLLUP'=636 +'GBY_PUSHDOWN'=637 +'GENERATED'=638 +'GET'=639 +'GLOBAL'=640 +'GLOBALLY'=641 +'GLOBAL_NAME'=642 +'GLOBAL_TOPIC_ENABLED'=643 +'GOTO'=644 +'GRANT'=645 +'GROUP_BY'=646 +'GROUP'=647 +'GROUP_ID'=648 +'GROUPING'=649 +'GROUPING_ID'=650 +'GROUPS'=651 +'GUARANTEED'=652 +'GUARANTEE'=653 +'GUARD'=654 +'HADOOP_TRAILERS'=655 +'HALF_YEARS'=656 +'HASH_AJ'=657 +'HASH'=658 +'HASHKEYS'=659 +'HASH_SJ'=660 +'HAVING'=661 +'HEADER'=662 +'HEAP'=663 +'HELP'=664 +'HEXTORAW'=665 +'HEXTOREF'=666 +'HIDDEN'=667 +'HIDE'=668 +'HIER_ORDER'=669 +'HIERARCHICAL'=670 +'HIERARCHIES'=671 +'HIERARCHY'=672 +'HIGH'=673 +'HINTSET_BEGIN'=674 +'HINTSET_END'=675 +'HOT'=676 +'HOUR'=677 +'HOURS'=678 +'HTTP'=679 +'HWM_BROKERED'=680 +'HYBRID'=681 +'H'=682 +'IDENTIFIED'=683 +'IDENTIFIER'=684 +'IDENTITY'=685 +'IDGENERATORS'=686 +'ID'=687 +'IDLE_TIME'=688 +'IF'=689 +'IGNORE'=690 +'IGNORE_CHARS_AFTER_EOR'=691 +'IGNORE_OPTIM_EMBEDDED_HINTS'=692 +'IGNORE_ROW_ON_DUPKEY_INDEX'=693 +'IGNORE_WHERE_CLAUSE'=694 +'ILM'=695 +'IMMEDIATE'=696 +'IMPACT'=697 +'IMPORT'=698 +'INACTIVE'=699 +'INACTIVE_ACCOUNT_TIME'=700 +'INCLUDE'=701 +'INCLUDE_VERSION'=702 +'INCLUDING'=703 +'INCREMENTAL'=704 +'INCREMENT'=705 +'INCR'=706 +'INDENT'=707 +'INDEX_ASC'=708 +'INDEX_COMBINE'=709 +'INDEX_DESC'=710 +'INDEXED'=711 +'INDEXES'=712 +'INDEX_FFS'=713 +'INDEX_FILTER'=714 +'INDEX'=715 +'INDEXING'=716 +'INDEX_JOIN'=717 +'INDEX_ROWS'=718 +'INDEX_RRS'=719 +'INDEX_RS_ASC'=720 +'INDEX_RS_DESC'=721 +'INDEX_RS'=722 +'INDEX_SCAN'=723 +'INDEX_SKIP_SCAN'=724 +'INDEX_SS_ASC'=725 +'INDEX_SS_DESC'=726 +'INDEX_SS'=727 +'INDEX_STATS'=728 +'INDEXTYPE'=729 +'INDEXTYPES'=730 +'INDICATOR'=731 +'INDICES'=732 +'INFINITE'=733 +'INFORMATIONAL'=734 +'INHERIT'=735 +'IN'=736 +'INITCAP'=737 +'INITIAL'=738 +'INITIALIZED'=739 +'INITIALLY'=740 +'INITRANS'=741 +'INLINE'=742 +'INLINE_XMLTYPE_NT'=743 +'INMEMORY'=744 +'IN_MEMORY_METADATA'=745 +'INMEMORY_PRUNING'=746 +'INNER'=747 +'INOUT'=748 +'INPLACE'=749 +'INPUTFORMAT'=750 +'INSERTCHILDXMLAFTER'=751 +'INSERTCHILDXMLBEFORE'=752 +'INSERTCHILDXML'=753 +'INSERT'=754 +'INSERTXMLAFTER'=755 +'INSERTXMLBEFORE'=756 +'INSTANCE'=757 +'INSTANCES'=758 +'INSTANTIABLE'=759 +'INSTANTLY'=760 +'INSTEAD'=761 +'INSTR2'=762 +'INSTR4'=763 +'INSTRB'=764 +'INSTRC'=765 +'INSTR'=766 +'INTEGER'=767 +'INTERLEAVED'=768 +'INTERMEDIATE'=769 +'INTERNAL_CONVERT'=770 +'INTERNAL_USE'=771 +'INTERPRETED'=772 +'INTERSECT'=773 +'INTERVAL'=774 +'INT'=775 +'INTERNAL'=776 +'INTO'=777 +'INVALIDATE'=778 +'INVALIDATION'=779 +'INVISIBLE'=780 +'IN_XQUERY'=781 +'IO_OPTIONS'=782 +'IS'=783 +'IS_LEAF'=784 +'ISOLATION'=785 +'ISOLATION_LEVEL'=786 +'ITEMS'=787 +'ITERATE'=788 +'ITERATION_NUMBER'=789 +'JAVA'=790 +'JOB'=791 +'JOIN'=792 +'JSON_ARRAYAGG'=793 +'JSON_ARRAY'=794 +'JSON_EQUAL'=795 +'JSON_EXISTS2'=796 +'JSON_EXISTS'=797 +'JSONGET'=798 +'JSON'=799 +'JSON_OBJECTAGG'=800 +'JSON_OBJECT'=801 +'JSONPARSE'=802 +'JSON_QUERY'=803 +'JSON_SERIALIZE'=804 +'JSON_TABLE'=805 +'JSON_TEXTCONTAINS2'=806 +'JSON_TEXTCONTAINS'=807 +'JSON_TRANSFORM'=808 +'JSON_VALUE'=809 +'K'=810 +'KEEP_DUPLICATES'=811 +'KEEP'=812 +'KERBEROS'=813 +'KEY'=814 +'KEY_LENGTH'=815 +'KEYSIZE'=816 +'KEYS'=817 +'KEYSTORE'=818 +'KILL'=819 +'LABEL'=820 +'LANGUAGE'=821 +'LAST_DAY'=822 +'LAST'=823 +'LAST_VALUE'=824 +'LATERAL'=825 +'LATEST'=826 +'LAX'=827 +'LAYER'=828 +'LDAP_REGISTRATION_ENABLED'=829 +'LDAP_REGISTRATION'=830 +'LDAP_REG_SYNC_INTERVAL'=831 +'LDRTRIM'=832 +'LEAF'=833 +'LEAD_CDB'=834 +'LEAD_CDB_URI'=835 +'LEADING'=836 +'LEFT'=837 +'LENGTH2'=838 +'LENGTH4'=839 +'LENGTHB'=840 +'LENGTHC'=841 +'LENGTH'=842 +'LESS'=843 +'LEVEL'=844 +'LEVEL_NAME'=845 +'LEVELS'=846 +'LIBRARY'=847 +'LIFECYCLE'=848 +'LIFE'=849 +'LIFETIME'=850 +'LIKE2'=851 +'LIKE4'=852 +'LIKEC'=853 +'LIKE_EXPAND'=854 +'LIKE'=855 +'LIMIT'=856 +'LINEAR'=857 +'LINES'=858 +'LINK'=859 +'LIST'=860 +'LITTLE'=861 +'LLS'=862 +'LN'=863 +'LNNVL'=864 +'LOAD'=865 +'LOB'=866 +'LOBFILE'=867 +'LOBNVL'=868 +'LOBS'=869 +'LOCAL_INDEXES'=870 +'LOCAL'=871 +'LOCALTIME'=872 +'LOCALTIMESTAMP'=873 +'LOCATION'=874 +'LOCATOR'=875 +'LOCKDOWN'=876 +'LOCKED'=877 +'LOCKING'=878 +'LOCK'=879 +'LOGFILE'=880 +'LOGFILES'=881 +'LOGGING'=882 +'LOGICAL'=883 +'LOGICAL_READS_PER_CALL'=884 +'LOGICAL_READS_PER_SESSION'=885 +'LOG'=886 +'LOGMINING'=887 +'LOGOFF'=888 +'LOGON'=889 +'LOG_READ_ONLY_VIOLATIONS'=890 +'LONG'=891 +'LOOP'=892 +'LOST'=893 +'LOWER'=894 +'LOW'=895 +'LPAD'=896 +'LRTRIM'=897 +'LTRIM'=898 +'M'=899 +'MAIN'=900 +'MAKE_REF'=901 +'MANAGED'=902 +'MANAGE'=903 +'MANAGEMENT'=904 +'MANAGER'=905 +'MANDATORY'=906 +'MANUAL'=907 +'MAP'=908 +'MAPPING'=909 +'MASK'=910 +'MASTER'=911 +'MATCHED'=912 +'MATCHES'=913 +'MATCH'=914 +'MATCH_NUMBER'=915 +'MATCH_RECOGNIZE'=916 +'MATERIALIZED'=917 +'MATERIALIZE'=918 +'MAXARCHLOGS'=919 +'MAXDATAFILES'=920 +'MAXEXTENTS'=921 +'MAXIMIZE'=922 +'MAXINSTANCES'=923 +'MAXLOGFILES'=924 +'MAXLOGHISTORY'=925 +'MAXLOGMEMBERS'=926 +'MAX_SHARED_TEMP_SIZE'=927 +'MAXSIZE'=928 +'MAXTRANS'=929 +'MAXVALUE'=930 +'MEASURE'=931 +'MEASURES'=932 +'MEDIUM'=933 +'MEMBER'=934 +'MEMBER_CAPTION'=935 +'MEMBER_DESCRIPTION'=936 +'MEMBER_NAME'=937 +'MEMBER_UNIQUE_NAME'=938 +'MEMCOMPRESS'=939 +'MEMORY'=940 +'MERGE$ACTIONS'=941 +'MERGE_AJ'=942 +'MERGE_CONST_ON'=943 +'MERGE'=944 +'MERGE_SJ'=945 +'METADATA'=946 +'METHOD'=947 +'MIGRATE'=948 +'MIGRATION'=949 +'MINEXTENTS'=950 +'MINIMIZE'=951 +'MINIMUM'=952 +'MINING'=953 +'MINUS'=954 +'MINUS_NULL'=955 +'MINUTE'=956 +'MINUTES'=957 +'MINVALUE'=958 +'MIRRORCOLD'=959 +'MIRRORHOT'=960 +'MIRROR'=961 +'MISSING'=962 +'MISMATCH'=963 +'MLSLABEL'=964 +'MODEL_COMPILE_SUBQUERY'=965 +'MODEL_DONTVERIFY_UNIQUENESS'=966 +'MODEL_DYNAMIC_SUBQUERY'=967 +'MODEL_MIN_ANALYSIS'=968 +'MODEL'=969 +'MODEL_NB'=970 +'MODEL_NO_ANALYSIS'=971 +'MODEL_PBY'=972 +'MODEL_PUSH_REF'=973 +'MODEL_SV'=974 +'MODE'=975 +'MODIFICATION'=976 +'MODIFY_COLUMN_TYPE'=977 +'MODIFY'=978 +'MOD'=979 +'MODULE'=980 +'MONITORING'=981 +'MONITOR'=982 +'MONTH'=983 +'MONTHS_BETWEEN'=984 +'MONTHS'=985 +'MOUNT'=986 +'MOUNTPATH'=987 +'MOUNTPOINT'=988 +'MOVEMENT'=989 +'MOVE'=990 +'MULTIDIMENSIONAL'=991 +'MULTISET'=992 +'MV_MERGE'=993 +'NAMED'=994 +'NAME'=995 +'NAMESPACE'=996 +'NAN'=997 +'NANVL'=998 +'NATIONAL'=999 +'NATIVE_FULL_OUTER_JOIN'=1000 +'NATIVE'=1001 +'NATURAL'=1002 +'NATURALN'=1003 +'NAV'=1004 +'NCHAR_CS'=1005 +'NCHAR'=1006 +'NCHR'=1007 +'NCLOB'=1008 +'NEEDED'=1009 +'NEG'=1010 +'NESTED'=1011 +'NESTED_TABLE_FAST_INSERT'=1012 +'NESTED_TABLE_GET_REFS'=1013 +'NESTED_TABLE_ID'=1014 +'NESTED_TABLE_SET_REFS'=1015 +'NESTED_TABLE_SET_SETID'=1016 +'NETWORK'=1017 +'NEVER'=1018 +'NEW'=1019 +'NEWLINE'=1020 +'NEW_TIME'=1021 +'NEXT_DAY'=1022 +'NEXT'=1023 +'NL_AJ'=1024 +'NLJ_BATCHING'=1025 +'NLJ_INDEX_FILTER'=1026 +'NLJ_INDEX_SCAN'=1027 +'NLJ_PREFETCH'=1028 +'NLS_CALENDAR'=1029 +'NLS_CHARACTERSET'=1030 +'NLS_CHARSET_DECL_LEN'=1031 +'NLS_CHARSET_ID'=1032 +'NLS_CHARSET_NAME'=1033 +'NLS_COMP'=1034 +'NLS_CURRENCY'=1035 +'NLS_DATE_FORMAT'=1036 +'NLS_DATE_LANGUAGE'=1037 +'NLS_INITCAP'=1038 +'NLS_ISO_CURRENCY'=1039 +'NL_SJ'=1040 +'NLS_LANG'=1041 +'NLS_LANGUAGE'=1042 +'NLS_LENGTH_SEMANTICS'=1043 +'NLS_LOWER'=1044 +'NLS_NCHAR_CONV_EXCP'=1045 +'NLS_NUMERIC_CHARACTERS'=1046 +'NLS_SORT'=1047 +'NLSSORT'=1048 +'NLS_SPECIAL_CHARS'=1049 +'NLS_TERRITORY'=1050 +'NLS_UPPER'=1051 +'NO_ACCESS'=1052 +'NO_ADAPTIVE_PLAN'=1053 +'NO_ANSI_REARCH'=1054 +'NOAPPEND'=1055 +'NOARCHIVELOG'=1056 +'NOAUDIT'=1057 +'NOBADFILE'=1058 +'NO_AUTO_REOPTIMIZE'=1059 +'NO_BASETABLE_MULTIMV_REWRITE'=1060 +'NO_BATCH_TABLE_ACCESS_BY_ROWID'=1061 +'NO_BIND_AWARE'=1062 +'NO_BUFFER'=1063 +'NOCACHE'=1064 +'NOCHECK'=1065 +'NO_CARTESIAN'=1066 +'NO_CHECK_ACL_REWRITE'=1067 +'NO_CLUSTER_BY_ROWID'=1068 +'NO_CLUSTERING'=1069 +'NO_COALESCE_SQ'=1070 +'NO_COMMON_DATA'=1071 +'NOCOMPRESS'=1072 +'NO_CONNECT_BY_CB_WHR_ONLY'=1073 +'NO_CONNECT_BY_COMBINE_SW'=1074 +'NO_CONNECT_BY_COST_BASED'=1075 +'NO_CONNECT_BY_ELIM_DUPS'=1076 +'NO_CONNECT_BY_FILTERING'=1077 +'NOCOPY'=1078 +'NO_COST_XML_QUERY_REWRITE'=1079 +'NO_CPU_COSTING'=1080 +'NOCPU_COSTING'=1081 +'NOCYCLE'=1082 +'NO_DATA_SECURITY_REWRITE'=1083 +'NO_DECORRELATE'=1084 +'NODELAY'=1085 +'NODIRECTIO'=1086 +'NODISCARDFILE'=1087 +'NO_DOMAIN_INDEX_FILTER'=1088 +'NO_DST_UPGRADE_INSERT_CONV'=1089 +'NO_ELIM_GROUPBY'=1090 +'NO_ELIMINATE_JOIN'=1091 +'NO_ELIMINATE_OBY'=1092 +'NO_ELIMINATE_OUTER_JOIN'=1093 +'NOENTITYESCAPING'=1094 +'NO_EXPAND_GSET_TO_UNION'=1095 +'NO_EXPAND'=1096 +'NO_EXPAND_TABLE'=1097 +'NOEXTEND'=1098 +'NO_FACT'=1099 +'NO_FACTORIZE_JOIN'=1100 +'NO_FILTERING'=1101 +'NOFORCE'=1102 +'NO_FULL_OUTER_JOIN_TO_OUTER'=1103 +'NO_GATHER_OPTIMIZER_STATISTICS'=1104 +'NO_GBY_PUSHDOWN'=1105 +'NOGUARANTEE'=1106 +'NO_INDEX_FFS'=1107 +'NO_INDEX'=1108 +'NO_INDEX_SS'=1109 +'NO_INMEMORY'=1110 +'NO_INMEMORY_PRUNING'=1111 +'NOKEEP'=1112 +'NO_LOAD'=1113 +'NOLOCAL'=1114 +'NOLOG'=1115 +'NOLOGFILE'=1116 +'NOLOGGING'=1117 +'NOMAPPING'=1118 +'NOMAXVALUE'=1119 +'NO_MERGE'=1120 +'NOMINIMIZE'=1121 +'NOMINVALUE'=1122 +'NO_MODEL_PUSH_REF'=1123 +'NO_MONITORING'=1124 +'NOMONITORING'=1125 +'NO_MONITOR'=1126 +'NO_MULTIMV_REWRITE'=1127 +'NO_NATIVE_FULL_OUTER_JOIN'=1128 +'NONBLOCKING'=1129 +'NONEDITIONABLE'=1130 +'NONE'=1131 +'NONULLIF'=1132 +'NO_NLJ_BATCHING'=1133 +'NO_NLJ_PREFETCH'=1134 +'NO'=1135 +'NONSCHEMA'=1136 +'NO_OBJECT_LINK'=1137 +'NOORDER'=1138 +'NO_ORDER_ROLLUPS'=1139 +'NO_OUTER_JOIN_TO_ANTI'=1140 +'NO_OUTER_JOIN_TO_INNER'=1141 +'NOOVERRIDE'=1142 +'NO_PARALLEL_INDEX'=1143 +'NOPARALLEL_INDEX'=1144 +'NO_PARALLEL'=1145 +'NOPARALLEL'=1146 +'NO_PARTIAL_COMMIT'=1147 +'NO_PARTIAL_JOIN'=1148 +'NO_PARTIAL_ROLLUP_PUSHDOWN'=1149 +'NOPARTITION'=1150 +'NO_PLACE_DISTINCT'=1151 +'NO_PLACE_GROUP_BY'=1152 +'NO_PQ_CONCURRENT_UNION'=1153 +'NO_PQ_MAP'=1154 +'NOPROMPT'=1155 +'NO_PQ_REPLICATE'=1156 +'NO_PQ_SKEW'=1157 +'NO_PRUNE_GSETS'=1158 +'NO_PULL_PRED'=1159 +'NO_PUSH_PRED'=1160 +'NO_PUSH_SUBQ'=1161 +'NO_PX_FAULT_TOLERANCE'=1162 +'NO_PX_JOIN_FILTER'=1163 +'NO_QKN_BUFF'=1164 +'NO_QUERY_TRANSFORMATION'=1165 +'NO_REF_CASCADE'=1166 +'NORELOCATE'=1167 +'NORELY'=1168 +'NOREPAIR'=1169 +'NOREPLAY'=1170 +'NORESETLOGS'=1171 +'NO_RESULT_CACHE'=1172 +'NOREVERSE'=1173 +'NO_REWRITE'=1174 +'NOREWRITE'=1175 +'NORMAL'=1176 +'NO_ROOT_SW_FOR_LOCAL'=1177 +'NOROWDEPENDENCIES'=1178 +'NOSCALE'=1179 +'NOSCHEMACHECK'=1180 +'NOSEGMENT'=1181 +'NO_SEMIJOIN'=1182 +'NO_SEMI_TO_INNER'=1183 +'NO_SET_TO_JOIN'=1184 +'NOSHARD'=1185 +'NOSORT'=1186 +'NO_SQL_TRANSLATION'=1187 +'NO_SQL_TUNE'=1188 +'NO_STAR_TRANSFORMATION'=1189 +'NO_STATEMENT_QUEUING'=1190 +'NO_STATS_GSETS'=1191 +'NOSTRICT'=1192 +'NO_SUBQUERY_PRUNING'=1193 +'NO_SUBSTRB_PAD'=1194 +'NO_SWAP_JOIN_INPUTS'=1195 +'NOSWITCH'=1196 +'NO_TABLE_LOOKUP_BY_NL'=1197 +'NO_TEMP_TABLE'=1198 +'NOTHING'=1199 +'NOTIFICATION'=1200 +'NOTRIM'=1201 +'NOT'=1202 +'NO_TRANSFORM_DISTINCT_AGG'=1203 +'NO_UNNEST'=1204 +'NO_USE_CUBE'=1205 +'NO_USE_HASH_AGGREGATION'=1206 +'NO_USE_HASH_GBY_FOR_PUSHDOWN'=1207 +'NO_USE_HASH'=1208 +'NO_USE_INVISIBLE_INDEXES'=1209 +'NO_USE_MERGE'=1210 +'NO_USE_NL'=1211 +'NO_USE_VECTOR_AGGREGATION'=1212 +'NOVALIDATE'=1213 +'NO_VECTOR_TRANSFORM_DIMS'=1214 +'NO_VECTOR_TRANSFORM_FACT'=1215 +'NO_VECTOR_TRANSFORM'=1216 +'NOWAIT'=1217 +'NO_XDB_FASTPATH_INSERT'=1218 +'NO_XML_DML_REWRITE'=1219 +'NO_XMLINDEX_REWRITE_IN_SELECT'=1220 +'NO_XMLINDEX_REWRITE'=1221 +'NO_XML_QUERY_REWRITE'=1222 +'NO_ZONEMAP'=1223 +'NTH_VALUE'=1224 +'NULLIF'=1225 +'NULL'=1226 +'NULLS'=1227 +'NUMBER'=1228 +'NUMERIC'=1229 +'NUM_INDEX_KEYS'=1230 +'NUMTODSINTERVAL'=1231 +'NUMTOYMINTERVAL'=1232 +'NVARCHAR2'=1233 +'NVL2'=1234 +'OBJECT2XML'=1235 +'OBJECT'=1236 +'OBJ_ID'=1237 +'OBJNO'=1238 +'OBJNO_REUSE'=1239 +'OCCURENCES'=1240 +'OFFLINE'=1241 +'OFF'=1242 +'OFFSET'=1243 +'OF'=1244 +'OIDINDEX'=1245 +'OID'=1246 +'OLAP'=1247 +'OLD'=1248 +'OLD_PUSH_PRED'=1249 +'OLS'=1250 +'OLTP'=1251 +'OMIT'=1252 +'ONE'=1253 +'ONLINE'=1254 +'ONLINELOG'=1255 +'ONLY'=1256 +'ON'=1257 +'OPAQUE'=1258 +'OPAQUE_TRANSFORM'=1259 +'OPAQUE_XCANONICAL'=1260 +'OPCODE'=1261 +'OPEN'=1262 +'OPERATIONS'=1263 +'OPERATOR'=1264 +'OPT_ESTIMATE'=1265 +'OPTIMAL'=1266 +'OPTIMIZE'=1267 +'OPTIMIZER_FEATURES_ENABLE'=1268 +'OPTIMIZER_GOAL'=1269 +'OPTION'=1270 +'OPTIONALLY'=1271 +'OPT_PARAM'=1272 +'ORA_BRANCH'=1273 +'ORA_CHECK_ACL'=1274 +'ORA_CHECK_PRIVILEGE'=1275 +'ORA_CLUSTERING'=1276 +'ORADATA'=1277 +'ORC'=1278 +'ORACLE_DATE'=1279 +'ORACLE_NUMBER'=1280 +'ORADEBUG'=1281 +'ORA_DST_AFFECTED'=1282 +'ORA_DST_CONVERT'=1283 +'ORA_DST_ERROR'=1284 +'ORA_GET_ACLIDS'=1285 +'ORA_GET_PRIVILEGES'=1286 +'ORA_HASH'=1287 +'ORA_INVOKING_USERID'=1288 +'ORA_INVOKING_USER'=1289 +'ORA_INVOKING_XS_USER_GUID'=1290 +'ORA_INVOKING_XS_USER'=1291 +'ORA_RAWCOMPARE'=1292 +'ORA_RAWCONCAT'=1293 +'ORA_ROWSCN'=1294 +'ORA_ROWSCN_RAW'=1295 +'ORA_ROWVERSION'=1296 +'ORA_TABVERSION'=1297 +'ORA_WRITE_TIME'=1298 +'ORDERED'=1299 +'ORDERED_PREDICATES'=1300 +'ORDER'=1301 +'ORDINALITY'=1302 +'OR_EXPAND'=1303 +'ORGANIZATION'=1304 +'OR'=1305 +'OR_PREDICATES'=1306 +'OSERROR'=1307 +'OTHER'=1308 +'OUTER_JOIN_TO_ANTI'=1309 +'OUTER_JOIN_TO_INNER'=1310 +'OUTER'=1311 +'OUTLINE_LEAF'=1312 +'OUTLINE'=1313 +'OUTPUTFORMAT'=1314 +'OUT_OF_LINE'=1315 +'OUT'=1316 +'OVERFLOW_NOMOVE'=1317 +'OVERFLOW'=1318 +'OVERLAPS'=1319 +'OVER'=1320 +'OVERRIDE'=1321 +'OVERRIDING'=1322 +'OWNER'=1323 +'OWNERSHIP'=1324 +'OWN'=1325 +'P'=1326 +'PACKAGE'=1327 +'PACKAGES'=1328 +'PARALLEL_ENABLE'=1329 +'PARALLEL_INDEX'=1330 +'PARALLEL'=1331 +'PARAMETERFILE'=1332 +'PARAMETERS'=1333 +'PARAM'=1334 +'PARENT'=1335 +'PARENT_LEVEL_NAME'=1336 +'PARENT_UNIQUE_NAME'=1337 +'PARITY'=1338 +'PARQUET'=1339 +'PARTIAL_JOIN'=1340 +'PARTIALLY'=1341 +'PARTIAL'=1342 +'PARTIAL_ROLLUP_PUSHDOWN'=1343 +'PARTITION_HASH'=1344 +'PARTITION_LIST'=1345 +'PARTITION'=1346 +'PARTITION_RANGE'=1347 +'PARTITIONS'=1348 +'PART$NUM$INST'=1349 +'PASSING'=1350 +'PASSWORD_GRACE_TIME'=1351 +'PASSWORD_LIFE_TIME'=1352 +'PASSWORD_LOCK_TIME'=1353 +'PASSWORD'=1354 +'PASSWORD_REUSE_MAX'=1355 +'PASSWORD_REUSE_TIME'=1356 +'PASSWORD_ROLLOVER_TIME'=1357 +'PASSWORD_VERIFY_FUNCTION'=1358 +'PAST'=1359 +'PATCH'=1360 +'PATH'=1361 +'PATH_PREFIX'=1362 +'PATHS'=1363 +'PATTERN'=1364 +'PBL_HS_BEGIN'=1365 +'PBL_HS_END'=1366 +'PCTFREE'=1367 +'PCTINCREASE'=1368 +'PCTTHRESHOLD'=1369 +'PCTUSED'=1370 +'PCTVERSION'=1371 +'PENDING'=1372 +'PERCENT'=1376 +'PERCENT_RANKM'=1377 +'PERFORMANCE'=1383 +'PERIOD'=1384 +'PERMANENT'=1385 +'PERMISSION'=1386 +'PERMUTE'=1387 +'PER'=1388 +'PFILE'=1389 +'PHYSICAL'=1390 +'PIKEY'=1391 +'PIPELINED'=1392 +'PIPE'=1393 +'PIV_GB'=1394 +'PIVOT'=1395 +'PIV_SSF'=1396 +'PLACE_DISTINCT'=1397 +'PLACE_GROUP_BY'=1398 +'PLAN'=1399 +'PLSCOPE_SETTINGS'=1400 +'PLS_INTEGER'=1401 +'PLSQL_CCFLAGS'=1402 +'PLSQL_CODE_TYPE'=1403 +'PLSQL_DEBUG'=1404 +'PLSQL_OPTIMIZE_LEVEL'=1405 +'PLSQL_WARNINGS'=1406 +'PLUGGABLE'=1407 +'PMEM'=1408 +'POINT'=1409 +'POLICY'=1410 +'POOL_16K'=1411 +'POOL_2K'=1412 +'POOL_32K'=1413 +'POOL_4K'=1414 +'POOL_8K'=1415 +'POSITION'=1416 +'POSITIVEN'=1417 +'POSITIVE'=1418 +'POST_TRANSACTION'=1419 +'POWERMULTISET_BY_CARDINALITY'=1420 +'POWERMULTISET'=1421 +'POWER'=1422 +'PQ_CONCURRENT_UNION'=1423 +'PQ_DISTRIBUTE'=1424 +'PQ_DISTRIBUTE_WINDOW'=1425 +'PQ_FILTER'=1426 +'PQ_MAP'=1427 +'PQ_NOMAP'=1428 +'PQ_REPLICATE'=1429 +'PQ_SKEW'=1430 +'PRAGMA'=1431 +'PREBUILT'=1432 +'PRECEDES'=1433 +'PRECEDING'=1434 +'PRECISION'=1435 +'PRECOMPUTE_SUBQUERY'=1436 +'PREDICATE_REORDERS'=1437 +'PRELOAD'=1438 +'PREPARE'=1439 +'PREPROCESSOR'=1440 +'PRESENTNNV'=1441 +'PRESENT'=1442 +'PRESENTV'=1443 +'PRESERVE_OID'=1444 +'PRESERVE'=1445 +'PRETTY'=1446 +'PREVIOUS'=1447 +'PREV'=1448 +'PRIMARY'=1449 +'PRINTBLOBTOCLOB'=1450 +'PRIORITY'=1451 +'PRIOR'=1452 +'PRIVATE'=1453 +'PRIVATE_SGA'=1454 +'PRIVILEGED'=1455 +'PRIVILEGE'=1456 +'PRIVILEGES'=1457 +'PROCEDURAL'=1458 +'PROCEDURE'=1459 +'PROCESS'=1460 +'PROFILE'=1461 +'PROGRAM'=1462 +'PROJECT'=1463 +'PROPAGATE'=1464 +'PROPERTY'=1465 +'PROTECTED'=1466 +'PROTECTION'=1467 +'PROTOCOL'=1468 +'PROXY'=1469 +'PRUNING'=1470 +'PUBLIC'=1471 +'PULL_PRED'=1472 +'PURGE'=1473 +'PUSH_PRED'=1474 +'PUSH_SUBQ'=1475 +'PX_FAULT_TOLERANCE'=1476 +'PX_GRANULE'=1477 +'PX_JOIN_FILTER'=1478 +'QB_NAME'=1479 +'QUARTERS'=1480 +'QUERY_BLOCK'=1481 +'QUERY'=1482 +'QUEUE_CURR'=1483 +'QUEUE'=1484 +'QUEUE_ROWP'=1485 +'QUIESCE'=1486 +'QUORUM'=1487 +'QUOTA'=1488 +'QUOTAGROUP'=1489 +'RAISE'=1490 +'RANDOM_LOCAL'=1491 +'RANDOM'=1492 +'RANGE'=1493 +'RANKM'=1494 +'RAPIDLY'=1495 +'RAW'=1496 +'RAWTOHEX'=1497 +'RAWTONHEX'=1498 +'RBA'=1499 +'RBO_OUTLINE'=1500 +'RCFILE'=1501 +'RDBA'=1502 +'READ'=1503 +'READS'=1504 +'READSIZE'=1505 +'REALM'=1506 +'REAL'=1507 +'REBALANCE'=1508 +'REBUILD'=1509 +'RECORD'=1510 +'RECORDS'=1511 +'RECORDS_PER_BLOCK'=1512 +'RECOVERABLE'=1513 +'RECOVER'=1514 +'RECOVERY'=1515 +'RECYCLEBIN'=1516 +'RECYCLE'=1517 +'REDACTION'=1518 +'REDEFINE'=1519 +'REDO'=1520 +'REDUCED'=1521 +'REDUNDANCY'=1522 +'REF_CASCADE_CURSOR'=1523 +'REFERENCED'=1524 +'REFERENCE'=1525 +'REFERENCES'=1526 +'REFERENCING'=1527 +'REF'=1528 +'REFRESH'=1529 +'REFTOHEX'=1530 +'REGEXP_COUNT'=1531 +'REGEXP_INSTR'=1532 +'REGEXP_LIKE'=1533 +'REGEXP_REPLACE'=1534 +'REGEXP_SUBSTR'=1535 +'REGISTER'=1536 +'REGR_AVGX'=1537 +'REGR_AVGY'=1538 +'REGR_COUNT'=1539 +'REGR_INTERCEPT'=1540 +'REGR_R2'=1541 +'REGR_SLOPE'=1542 +'REGR_SXX'=1543 +'REGR_SXY'=1544 +'REGR_SYY'=1545 +'REGULAR'=1546 +'REJECT'=1547 +'REKEY'=1548 +'RELATIONAL'=1549 +'RELIES_ON'=1550 +'RELOCATE'=1551 +'RELY'=1552 +'REMAINDER'=1553 +'REMOTE'=1554 +'REMOTE_MAPPED'=1555 +'REMOVE'=1556 +'RENAME'=1557 +'REPAIR'=1558 +'REPEAT'=1559 +'REPLACE'=1560 +'REPLICATION'=1561 +'REQUIRED'=1562 +'RESETLOGS'=1563 +'RESET'=1564 +'RESIZE'=1565 +'RESOLVE'=1566 +'RESOLVER'=1567 +'RESOURCE'=1568 +'RESPECT'=1569 +'RESTART'=1570 +'RESTORE_AS_INTERVALS'=1571 +'RESTORE'=1572 +'RESTRICT_ALL_REF_CONS'=1573 +'RESTRICTED'=1574 +'RESTRICT_REFERENCES'=1575 +'RESTRICT'=1576 +'RESULT_CACHE'=1577 +'RESULT'=1578 +'RESUMABLE'=1579 +'RESUME'=1580 +'RETENTION'=1581 +'RETRY_ON_ROW_CHANGE'=1582 +'RETURNING'=1583 +'RETURN'=1584 +'REUSE'=1585 +'REVERSE'=1586 +'REVOKE'=1587 +'REWRITE_OR_ERROR'=1588 +'REWRITE'=1589 +'RIGHT'=1590 +'ROLE'=1591 +'ROLESET'=1592 +'ROLES'=1593 +'ROLLBACK'=1594 +'ROLLING'=1595 +'ROLLUP'=1596 +'ROWDEPENDENCIES'=1597 +'ROWID_MAPPING_TABLE'=1598 +'ROWID'=1599 +'ROWIDTOCHAR'=1600 +'ROWIDTONCHAR'=1601 +'ROW_LENGTH'=1602 +'ROWNUM'=1603 +'ROW'=1604 +'ROWS'=1605 +'RPAD'=1606 +'RTRIM'=1607 +'RULE'=1608 +'RULES'=1609 +'RUNNING'=1610 +'SALT'=1611 +'SAMPLE'=1612 +'SAVE_AS_INTERVALS'=1613 +'SAVEPOINT'=1614 +'SAVE'=1615 +'SB4'=1616 +'SCALE_ROWS'=1617 +'SCALE'=1618 +'SCAN_INSTANCES'=1619 +'SCAN'=1620 +'SCHEDULER'=1621 +'SCHEMACHECK'=1622 +'SCHEMA'=1623 +'SCN_ASCENDING'=1624 +'SCN'=1625 +'SCOPE'=1626 +'SCRUB'=1627 +'SD_ALL'=1628 +'SD_INHIBIT'=1629 +'SDO_GEOM_MBR'=1630 +'SDO_GEOMETRY'=1631 +'SD_SHOW'=1632 +'SEARCH'=1633 +'SECOND'=1634 +'SECONDS'=1635 +'SECRET'=1636 +'SECUREFILE_DBA'=1637 +'SECUREFILE'=1638 +'SECURITY'=1639 +'SEED'=1640 +'SEG_BLOCK'=1641 +'SEG_FILE'=1642 +'SEGMENT'=1643 +'SELECTIVITY'=1644 +'SELECT'=1645 +'SELF'=1646 +'SEMIJOIN_DRIVER'=1647 +'SEMIJOIN'=1648 +'SEMI_TO_INNER'=1649 +'SEQUENCED'=1650 +'SEQUENCE'=1651 +'SEQUENCEFILE'=1652 +'SEQUENTIAL'=1653 +'SEQ'=1654 +'SERDE'=1655 +'SERDEPROPERTIES'=1656 +'SERIALIZABLE'=1657 +'SERIALLY_REUSABLE'=1658 +'SERIAL'=1659 +'SERVERERROR'=1660 +'SERVICE_NAME_CONVERT'=1661 +'SERVICE'=1662 +'SERVICES'=1663 +'SESSION_CACHED_CURSORS'=1664 +'SESSION'=1665 +'SESSIONS_PER_USER'=1666 +'SESSIONTIMEZONE'=1667 +'SESSIONTZNAME'=1668 +'SET'=1669 +'SETS'=1670 +'SETTINGS'=1671 +'SET_TO_JOIN'=1672 +'SEVERE'=1673 +'SHARD'=1674 +'SHARDSPACE'=1675 +'SHARED_POOL'=1676 +'SHARED'=1677 +'SHARE'=1678 +'SHARING'=1679 +'SHELFLIFE'=1680 +'SHOW'=1681 +'SHRINK'=1682 +'SHUTDOWN'=1683 +'SIBLINGS'=1684 +'SID'=1685 +'SITE'=1686 +'SIGNAL_COMPONENT'=1687 +'SIGNAL_FUNCTION'=1688 +'SIGN'=1689 +'SIGNTYPE'=1690 +'SIMPLE_INTEGER'=1691 +'SIMPLE'=1692 +'SINGLE'=1693 +'SINGLETASK'=1694 +'SINH'=1695 +'SIN'=1696 +'SIZE'=1697 +'SIZES'=1698 +'SKIP_EXT_OPTIMIZER'=1699 +'SKIP'=1700 +'SKIP_UNQ_UNUSABLE_IDX'=1701 +'SKIP_UNUSABLE_INDEXES'=1702 +'SMALLFILE'=1703 +'SMALLINT'=1704 +'SNAPSHOT'=1705 +'SOME'=1706 +'SORT'=1707 +'SOUNDEX'=1708 +'SOURCE_FILE_DIRECTORY'=1709 +'SOURCE_FILE_NAME_CONVERT'=1710 +'SOURCE'=1711 +'SPACE'=1712 +'SPECIFICATION'=1713 +'SPFILE'=1714 +'SPLIT'=1715 +'SPREADSHEET'=1716 +'SQLDATA'=1717 +'SQLERROR'=1718 +'SQLLDR'=1719 +'SQL'=1720 +'SQL_MACRO'=1722 +'SQL_TRACE'=1723 +'SQL_TRANSLATION_PROFILE'=1724 +'SQRT'=1725 +'STALE'=1726 +'STANDALONE'=1727 +'STANDARD'=1728 +'STANDARD_HASH'=1729 +'STANDBY_MAX_DATA_DELAY'=1730 +'STANDBYS'=1731 +'STANDBY'=1732 +'STAR'=1733 +'STAR_TRANSFORMATION'=1734 +'START'=1735 +'STARTOF'=1736 +'STARTUP'=1737 +'STATEMENT_ID'=1738 +'STATEMENT_QUEUING'=1739 +'STATEMENTS'=1740 +'STATEMENT'=1741 +'STATE'=1742 +'STATIC'=1743 +'STATISTICS'=1744 +'STATS_BINOMIAL_TEST'=1745 +'STATS_CROSSTAB'=1746 +'STATS_F_TEST'=1747 +'STATS_KS_TEST'=1748 +'STATS_MODE'=1749 +'STATS_MW_TEST'=1750 +'STATS_ONE_WAY_ANOVA'=1751 +'STATS_T_TEST_INDEP'=1752 +'STATS_T_TEST_INDEPU'=1753 +'STATS_T_TEST_ONE'=1754 +'STATS_T_TEST_PAIRED'=1755 +'STATS_WSR_TEST'=1756 +'STDDEV_POP'=1757 +'STDDEV_SAMP'=1758 +'STOP'=1759 +'STORAGE'=1760 +'STORE'=1761 +'STREAMS'=1762 +'STREAM'=1763 +'STRICT'=1764 +'STRING'=1765 +'STRIPE_COLUMNS'=1766 +'STRIPE_WIDTH'=1767 +'STRIP'=1768 +'STRUCTURE'=1769 +'SUBMULTISET'=1770 +'SUBPARTITION_REL'=1771 +'SUBPARTITIONS'=1772 +'SUBPARTITION'=1773 +'SUBQUERIES'=1774 +'SUBQUERY_PRUNING'=1775 +'SUBSCRIBE'=1776 +'SUBSET'=1777 +'SUBSTITUTABLE'=1778 +'SUBSTR2'=1779 +'SUBSTR4'=1780 +'SUBSTRB'=1781 +'SUBSTRC'=1782 +'SUBTYPE'=1783 +'SUCCESSFUL'=1784 +'SUCCESS'=1785 +'SUMMARY'=1786 +'SUPPLEMENTAL'=1787 +'SUSPEND'=1788 +'SWAP_JOIN_INPUTS'=1789 +'SWITCHOVER'=1790 +'SWITCH'=1791 +'SYNCHRONOUS'=1792 +'SYNC'=1793 +'SYNONYM'=1794 +'SYS'=1795 +'SYSASM'=1796 +'SYS_AUDIT'=1797 +'SYSAUX'=1798 +'SYSBACKUP'=1799 +'SYS_CHECKACL'=1800 +'SYS_CHECK_PRIVILEGE'=1801 +'SYS_CONNECT_BY_PATH'=1802 +'SYS_CONTEXT'=1803 +'SYSDATE'=1804 +'SYSDBA'=1805 +'SYS_DBURIGEN'=1806 +'SYSDG'=1807 +'SYS_DL_CURSOR'=1808 +'SYS_DM_RXFORM_CHR'=1809 +'SYS_DM_RXFORM_NUM'=1810 +'SYS_DOM_COMPARE'=1811 +'SYS_DST_PRIM2SEC'=1812 +'SYS_DST_SEC2PRIM'=1813 +'SYS_ET_BFILE_TO_RAW'=1814 +'SYS_ET_BLOB_TO_IMAGE'=1815 +'SYS_ET_IMAGE_TO_BLOB'=1816 +'SYS_ET_RAW_TO_BFILE'=1817 +'SYS_EXTPDTXT'=1818 +'SYS_EXTRACT_UTC'=1819 +'SYS_FBT_INSDEL'=1820 +'SYS_FILTER_ACLS'=1821 +'SYS_FNMATCHES'=1822 +'SYS_FNREPLACE'=1823 +'SYS_GET_ACLIDS'=1824 +'SYS_GET_COL_ACLIDS'=1825 +'SYS_GET_PRIVILEGES'=1826 +'SYS_GETTOKENID'=1827 +'SYS_GETXTIVAL'=1828 +'SYS_GUID'=1829 +'SYSGUID'=1830 +'SYSKM'=1831 +'SYS_MAKE_XMLNODEID'=1832 +'SYS_MAKEXML'=1833 +'SYS_MKXMLATTR'=1834 +'SYS_MKXTI'=1835 +'SYSOBJ'=1836 +'SYS_OP_ADT2BIN'=1837 +'SYS_OP_ADTCONS'=1838 +'SYS_OP_ALSCRVAL'=1839 +'SYS_OP_ATG'=1840 +'SYS_OP_BIN2ADT'=1841 +'SYS_OP_BITVEC'=1842 +'SYS_OP_BL2R'=1843 +'SYS_OP_BLOOM_FILTER_LIST'=1844 +'SYS_OP_BLOOM_FILTER'=1845 +'SYS_OP_C2C'=1846 +'SYS_OP_CAST'=1847 +'SYS_OP_CEG'=1848 +'SYS_OP_CL2C'=1849 +'SYS_OP_COMBINED_HASH'=1850 +'SYS_OP_COMP'=1851 +'SYS_OP_CONVERT'=1852 +'SYS_OP_COUNTCHG'=1853 +'SYS_OP_CSCONV'=1854 +'SYS_OP_CSCONVTEST'=1855 +'SYS_OP_CSR'=1856 +'SYS_OP_CSX_PATCH'=1857 +'SYS_OP_CYCLED_SEQ'=1858 +'SYS_OP_DECOMP'=1859 +'SYS_OP_DESCEND'=1860 +'SYS_OP_DISTINCT'=1861 +'SYS_OP_DRA'=1862 +'SYS_OP_DUMP'=1863 +'SYS_OP_DV_CHECK'=1864 +'SYS_OP_ENFORCE_NOT_NULL$'=1865 +'SYSOPER'=1866 +'SYS_OP_EXTRACT'=1867 +'SYS_OP_GROUPING'=1868 +'SYS_OP_GUID'=1869 +'SYS_OP_HASH'=1870 +'SYS_OP_IIX'=1871 +'SYS_OP_ITR'=1872 +'SYS_OP_KEY_VECTOR_CREATE'=1873 +'SYS_OP_KEY_VECTOR_FILTER_LIST'=1874 +'SYS_OP_KEY_VECTOR_FILTER'=1875 +'SYS_OP_KEY_VECTOR_SUCCEEDED'=1876 +'SYS_OP_KEY_VECTOR_USE'=1877 +'SYS_OP_LBID'=1878 +'SYS_OP_LOBLOC2BLOB'=1879 +'SYS_OP_LOBLOC2CLOB'=1880 +'SYS_OP_LOBLOC2ID'=1881 +'SYS_OP_LOBLOC2NCLOB'=1882 +'SYS_OP_LOBLOC2TYP'=1883 +'SYS_OP_LSVI'=1884 +'SYS_OP_LVL'=1885 +'SYS_OP_MAKEOID'=1886 +'SYS_OP_MAP_NONNULL'=1887 +'SYS_OP_MSR'=1888 +'SYS_OP_NICOMBINE'=1889 +'SYS_OP_NIEXTRACT'=1890 +'SYS_OP_NII'=1891 +'SYS_OP_NIX'=1892 +'SYS_OP_NOEXPAND'=1893 +'SYS_OP_NTCIMG$'=1894 +'SYS_OP_NUMTORAW'=1895 +'SYS_OP_OIDVALUE'=1896 +'SYS_OP_OPNSIZE'=1897 +'SYS_OP_PAR_1'=1898 +'SYS_OP_PARGID_1'=1899 +'SYS_OP_PARGID'=1900 +'SYS_OP_PAR'=1901 +'SYS_OP_PART_ID'=1902 +'SYS_OP_PIVOT'=1903 +'SYS_OP_R2O'=1904 +'SYS_OP_RAWTONUM'=1905 +'SYS_OP_RDTM'=1906 +'SYS_OP_REF'=1907 +'SYS_OP_RMTD'=1908 +'SYS_OP_ROWIDTOOBJ'=1909 +'SYS_OP_RPB'=1910 +'SYS_OPTLOBPRBSC'=1911 +'SYS_OP_TOSETID'=1912 +'SYS_OP_TPR'=1913 +'SYS_OP_TRTB'=1914 +'SYS_OPTXICMP'=1915 +'SYS_OPTXQCASTASNQ'=1916 +'SYS_OP_UNDESCEND'=1917 +'SYS_OP_VECAND'=1918 +'SYS_OP_VECBIT'=1919 +'SYS_OP_VECOR'=1920 +'SYS_OP_VECXOR'=1921 +'SYS_OP_VERSION'=1922 +'SYS_OP_VREF'=1923 +'SYS_OP_VVD'=1924 +'SYS_OP_XMLCONS_FOR_CSX'=1925 +'SYS_OP_XPTHATG'=1926 +'SYS_OP_XPTHIDX'=1927 +'SYS_OP_XPTHOP'=1928 +'SYS_OP_XTXT2SQLT'=1929 +'SYS_OP_ZONE_ID'=1930 +'SYS_ORDERKEY_DEPTH'=1931 +'SYS_ORDERKEY_MAXCHILD'=1932 +'SYS_ORDERKEY_PARENT'=1933 +'SYS_PARALLEL_TXN'=1934 +'SYS_PATHID_IS_ATTR'=1935 +'SYS_PATHID_IS_NMSPC'=1936 +'SYS_PATHID_LASTNAME'=1937 +'SYS_PATHID_LASTNMSPC'=1938 +'SYS_PATH_REVERSE'=1939 +'SYS_PXQEXTRACT'=1940 +'SYS_RAW_TO_XSID'=1941 +'SYS_RID_ORDER'=1942 +'SYS_ROW_DELTA'=1943 +'SYS_SC_2_XMLT'=1944 +'SYS_SYNRCIREDO'=1945 +'SYSTEM_DEFINED'=1946 +'SYSTEM'=1947 +'SYSTIMESTAMP'=1948 +'SYS_TYPEID'=1949 +'SYS_UMAKEXML'=1950 +'SYS_XMLANALYZE'=1951 +'SYS_XMLCONTAINS'=1952 +'SYS_XMLCONV'=1953 +'SYS_XMLEXNSURI'=1954 +'SYS_XMLGEN'=1955 +'SYS_XMLI_LOC_ISNODE'=1956 +'SYS_XMLI_LOC_ISTEXT'=1957 +'SYS_XMLINSTR'=1958 +'SYS_XMLLOCATOR_GETSVAL'=1959 +'SYS_XMLNODEID_GETCID'=1960 +'SYS_XMLNODEID_GETLOCATOR'=1961 +'SYS_XMLNODEID_GETOKEY'=1962 +'SYS_XMLNODEID_GETPATHID'=1963 +'SYS_XMLNODEID_GETPTRID'=1964 +'SYS_XMLNODEID_GETRID'=1965 +'SYS_XMLNODEID_GETSVAL'=1966 +'SYS_XMLNODEID_GETTID'=1967 +'SYS_XMLNODEID'=1968 +'SYS_XMLT_2_SC'=1969 +'SYS_XMLTRANSLATE'=1970 +'SYS_XMLTYPE2SQL'=1971 +'SYS_XQ_ASQLCNV'=1972 +'SYS_XQ_ATOMCNVCHK'=1973 +'SYS_XQBASEURI'=1974 +'SYS_XQCASTABLEERRH'=1975 +'SYS_XQCODEP2STR'=1976 +'SYS_XQCODEPEQ'=1977 +'SYS_XQCON2SEQ'=1978 +'SYS_XQCONCAT'=1979 +'SYS_XQDELETE'=1980 +'SYS_XQDFLTCOLATION'=1981 +'SYS_XQDOC'=1982 +'SYS_XQDOCURI'=1983 +'SYS_XQDURDIV'=1984 +'SYS_XQED4URI'=1985 +'SYS_XQENDSWITH'=1986 +'SYS_XQERRH'=1987 +'SYS_XQERR'=1988 +'SYS_XQESHTMLURI'=1989 +'SYS_XQEXLOBVAL'=1990 +'SYS_XQEXSTWRP'=1991 +'SYS_XQEXTRACT'=1992 +'SYS_XQEXTRREF'=1993 +'SYS_XQEXVAL'=1994 +'SYS_XQFB2STR'=1995 +'SYS_XQFNBOOL'=1996 +'SYS_XQFNCMP'=1997 +'SYS_XQFNDATIM'=1998 +'SYS_XQFNLNAME'=1999 +'SYS_XQFNNM'=2000 +'SYS_XQFNNSURI'=2001 +'SYS_XQFNPREDTRUTH'=2002 +'SYS_XQFNQNM'=2003 +'SYS_XQFNROOT'=2004 +'SYS_XQFORMATNUM'=2005 +'SYS_XQFTCONTAIN'=2006 +'SYS_XQFUNCR'=2007 +'SYS_XQGETCONTENT'=2008 +'SYS_XQINDXOF'=2009 +'SYS_XQINSERT'=2010 +'SYS_XQINSPFX'=2011 +'SYS_XQIRI2URI'=2012 +'SYS_XQLANG'=2013 +'SYS_XQLLNMFRMQNM'=2014 +'SYS_XQMKNODEREF'=2015 +'SYS_XQNILLED'=2016 +'SYS_XQNODENAME'=2017 +'SYS_XQNORMSPACE'=2018 +'SYS_XQNORMUCODE'=2019 +'SYS_XQ_NRNG'=2020 +'SYS_XQNSP4PFX'=2021 +'SYS_XQNSPFRMQNM'=2022 +'SYS_XQPFXFRMQNM'=2023 +'SYS_XQ_PKSQL2XML'=2024 +'SYS_XQPOLYABS'=2025 +'SYS_XQPOLYADD'=2026 +'SYS_XQPOLYCEL'=2027 +'SYS_XQPOLYCSTBL'=2028 +'SYS_XQPOLYCST'=2029 +'SYS_XQPOLYDIV'=2030 +'SYS_XQPOLYFLR'=2031 +'SYS_XQPOLYMOD'=2032 +'SYS_XQPOLYMUL'=2033 +'SYS_XQPOLYRND'=2034 +'SYS_XQPOLYSQRT'=2035 +'SYS_XQPOLYSUB'=2036 +'SYS_XQPOLYUMUS'=2037 +'SYS_XQPOLYUPLS'=2038 +'SYS_XQPOLYVEQ'=2039 +'SYS_XQPOLYVGE'=2040 +'SYS_XQPOLYVGT'=2041 +'SYS_XQPOLYVLE'=2042 +'SYS_XQPOLYVLT'=2043 +'SYS_XQPOLYVNE'=2044 +'SYS_XQREF2VAL'=2045 +'SYS_XQRENAME'=2046 +'SYS_XQREPLACE'=2047 +'SYS_XQRESVURI'=2048 +'SYS_XQRNDHALF2EVN'=2049 +'SYS_XQRSLVQNM'=2050 +'SYS_XQRYENVPGET'=2051 +'SYS_XQRYVARGET'=2052 +'SYS_XQRYWRP'=2053 +'SYS_XQSEQ2CON4XC'=2054 +'SYS_XQSEQ2CON'=2055 +'SYS_XQSEQDEEPEQ'=2056 +'SYS_XQSEQINSB'=2057 +'SYS_XQSEQRM'=2058 +'SYS_XQSEQRVS'=2059 +'SYS_XQSEQSUB'=2060 +'SYS_XQSEQTYPMATCH'=2061 +'SYS_XQSTARTSWITH'=2062 +'SYS_XQSTATBURI'=2063 +'SYS_XQSTR2CODEP'=2064 +'SYS_XQSTRJOIN'=2065 +'SYS_XQSUBSTRAFT'=2066 +'SYS_XQSUBSTRBEF'=2067 +'SYS_XQTOKENIZE'=2068 +'SYS_XQTREATAS'=2069 +'SYS_XQ_UPKXML2SQL'=2070 +'SYS_XQXFORM'=2071 +'SYS_XSID_TO_RAW'=2072 +'SYS_ZMAP_FILTER'=2073 +'SYS_ZMAP_REFRESH'=2074 +'T'=2075 +'TABLE_LOOKUP_BY_NL'=2076 +'TABLESPACE_NO'=2077 +'TABLESPACE'=2078 +'TABLES'=2079 +'TABLE_STATS'=2080 +'TABLE'=2081 +'TABNO'=2082 +'TAG'=2083 +'TANH'=2084 +'TAN'=2085 +'TBL$OR$IDX$PART$NUM'=2086 +'TEMPFILE'=2087 +'TEMPLATE'=2088 +'TEMPLATE_TABLE'=2089 +'TEMPORARY'=2090 +'TEMP_TABLE'=2091 +'TERMINATED'=2092 +'TEST'=2093 +'TEXT'=2094 +'TEXTFILE'=2095 +'THAN'=2096 +'THEN'=2097 +'THE'=2098 +'THESE'=2099 +'THREAD'=2100 +'THROUGH'=2101 +'TIER'=2102 +'TIES'=2103 +'TIMEOUT'=2104 +'TIMESTAMP_LTZ_UNCONSTRAINED'=2105 +'TIMESTAMP'=2106 +'TIMESTAMP_TZ_UNCONSTRAINED'=2107 +'TIMESTAMP_UNCONSTRAINED'=2108 +'TIMES'=2109 +'TIME'=2110 +'TIMEZONE'=2111 +'TIMEZONE_ABBR'=2112 +'TIMEZONE_HOUR'=2113 +'TIMEZONE_MINUTE'=2114 +'TIMEZONE_OFFSET'=2115 +'TIMEZONE_REGION'=2116 +'TIME_ZONE'=2117 +'TIMING'=2118 +'TINYINT'=2119 +'TIV_GB'=2120 +'TIV_SSF'=2121 +'TO_ACLID'=2122 +'TO_BINARY_DOUBLE'=2123 +'TO_BINARY_FLOAT'=2124 +'TO_BLOB'=2125 +'TO_CLOB'=2126 +'TO_DSINTERVAL'=2127 +'TO_LOB'=2128 +'TO_MULTI_BYTE'=2129 +'TO_NCHAR'=2130 +'TO_NCLOB'=2131 +'TO_NUMBER'=2132 +'TOPLEVEL'=2133 +'TO_SINGLE_BYTE'=2134 +'TO_TIMESTAMP'=2135 +'TO_TIMESTAMP_TZ'=2136 +'TO_TIME'=2137 +'TO_TIME_TZ'=2138 +'TO'=2139 +'TO_YMINTERVAL'=2140 +'TRACE'=2141 +'TRACING'=2142 +'TRACKING'=2143 +'TRAILING'=2144 +'TRANSACTION'=2145 +'TRANSFORM'=2146 +'TRANSFORMS'=2147 +'TRANSFORM_DISTINCT_AGG'=2148 +'TRANSITIONAL'=2149 +'TRANSITION'=2150 +'TRANSLATE'=2151 +'TRANSLATION'=2152 +'TREAT'=2153 +'TRIGGERS'=2154 +'TRIGGER'=2155 +'TRUE'=2156 +'TRUNCATE'=2157 +'TRUNC'=2158 +'TRUSTED'=2159 +'TRUST'=2160 +'TUNING'=2161 +'TX'=2162 +'TYPES'=2163 +'TYPE'=2164 +'TZ_OFFSET'=2165 +'UB2'=2166 +'UBA'=2167 +'UCS2'=2168 +'UDF'=2169 +'UID'=2170 +'UNARCHIVED'=2171 +'UNBOUNDED'=2172 +'UNBOUND'=2173 +'UNCONDITIONAL'=2174 +'UNDER'=2175 +'UNDO'=2176 +'UNDROP'=2177 +'UNIFORM'=2178 +'UNION'=2179 +'UNIONTYPE'=2180 +'UNIQUE'=2181 +'UNISTR'=2182 +'UNLIMITED'=2183 +'UNLOAD'=2184 +'UNLOCK'=2185 +'UNMATCHED'=2186 +'UNNEST_INNERJ_DISTINCT_VIEW'=2187 +'UNNEST_NOSEMIJ_NODISTINCTVIEW'=2188 +'UNNEST_SEMIJ_VIEW'=2189 +'UNNEST'=2190 +'UNPACKED'=2191 +'UNPIVOT'=2192 +'UNPLUG'=2193 +'UNPROTECTED'=2194 +'UNQUIESCE'=2195 +'UNRECOVERABLE'=2196 +'UNRESTRICTED'=2197 +'UNSIGNED'=2198 +'UNSUBSCRIBE'=2199 +'UNTIL'=2200 +'UNUSABLE'=2201 +'UNUSED'=2202 +'UPDATABLE'=2203 +'UPDATED'=2204 +'UPDATE'=2205 +'UPDATEXML'=2206 +'UPD_INDEXES'=2207 +'UPD_JOININDEX'=2208 +'UPGRADE'=2209 +'UPPER'=2210 +'UPSERT'=2211 +'UROWID'=2212 +'USABLE'=2213 +'USAGE'=2214 +'USE_ANTI'=2215 +'USE_CONCAT'=2216 +'USE_CUBE'=2217 +'USE_HASH_AGGREGATION'=2218 +'USE_HASH_GBY_FOR_PUSHDOWN'=2219 +'USE_HASH'=2220 +'USE_HIDDEN_PARTITIONS'=2221 +'USE_INVISIBLE_INDEXES'=2222 +'USE_MERGE_CARTESIAN'=2223 +'USE_MERGE'=2224 +'USE_NL'=2225 +'USE_NL_WITH_INDEX'=2226 +'USE_PRIVATE_OUTLINES'=2227 +'USER_DATA'=2228 +'USER_DEFINED'=2229 +'USERENV'=2230 +'USERGROUP'=2231 +'USER_RECYCLEBIN'=2232 +'USERS'=2233 +'USER_TABLESPACES'=2234 +'USER'=2235 +'USE_SEMI'=2236 +'USE_STORED_OUTLINES'=2237 +'USE_TTT_FOR_GSETS'=2238 +'USE'=2239 +'USE_VECTOR_AGGREGATION'=2240 +'USE_WEAK_NAME_RESL'=2241 +'USING_NO_EXPAND'=2242 +'USING_NLS_COMP'=2243 +'USING'=2244 +'UTF16BE'=2245 +'UTF16LE'=2246 +'UTF32'=2247 +'UTF8'=2248 +'V1'=2249 +'V2'=2250 +'VALIDATE'=2251 +'VALIDATE_CONVERSION'=2252 +'VALIDATION'=2253 +'VALID_TIME_END'=2254 +'VALUES'=2255 +'VALUE'=2256 +'VARCHAR2'=2257 +'VARCHAR'=2258 +'VARCHARC'=2259 +'VARIABLE'=2260 +'VARRAW'=2261 +'VARRAWC'=2262 +'VAR_POP'=2263 +'VARRAYS'=2264 +'VARRAY'=2265 +'VAR_SAMP'=2266 +'VARYING'=2267 +'VECTOR_READ_TRACE'=2268 +'VECTOR_READ'=2269 +'VECTOR_TRANSFORM_DIMS'=2270 +'VECTOR_TRANSFORM_FACT'=2271 +'VECTOR_TRANSFORM'=2272 +'VERIFIER'=2273 +'VERIFY'=2274 +'VERSIONING'=2275 +'VERSIONS_ENDSCN'=2276 +'VERSIONS_ENDTIME'=2277 +'VERSIONS_OPERATION'=2278 +'VERSIONS_STARTSCN'=2279 +'VERSIONS_STARTTIME'=2280 +'VERSIONS'=2281 +'VERSIONS_XID'=2282 +'VERSION'=2283 +'VIEW'=2284 +'VIOLATION'=2285 +'VIRTUAL'=2286 +'VISIBILITY'=2287 +'VISIBLE'=2288 +'VOLUME'=2289 +'VSIZE'=2290 +'WAIT'=2291 +'WALLET'=2292 +'WARNING'=2293 +'WEEKS'=2294 +'WEEK'=2295 +'WELLFORMED'=2296 +'WHENEVER'=2297 +'WHEN'=2298 +'WHERE'=2299 +'WHILE'=2300 +'WHITESPACE'=2301 +'WIDTH_BUCKET'=2302 +'WITHIN'=2303 +'WITHOUT'=2304 +'WITH_PLSQL'=2305 +'WITH'=2306 +'WORK'=2307 +'WORKERID'=2308 +'WRAPPED'=2309 +'WRAPPER'=2310 +'WRITE'=2311 +'XDB_FASTPATH_INSERT'=2312 +'XDB'=2313 +'X_DYN_PRUNE'=2314 +'XID'=2315 +'XML2OBJECT'=2316 +'XMLAGG'=2317 +'XMLATTRIBUTES'=2318 +'XMLCAST'=2319 +'XMLCDATA'=2320 +'XMLCOLATTVAL'=2321 +'XMLCOMMENT'=2322 +'XMLCONCAT'=2323 +'XMLDIFF'=2324 +'XML_DML_RWT_STMT'=2325 +'XMLELEMENT'=2326 +'XMLEXISTS2'=2327 +'XMLEXISTS'=2328 +'XMLFOREST'=2329 +'XMLINDEX'=2330 +'XMLINDEX_REWRITE_IN_SELECT'=2331 +'XMLINDEX_REWRITE'=2332 +'XMLINDEX_SEL_IDX_TBL'=2333 +'XMLISNODE'=2334 +'XMLISVALID'=2335 +'XMLNAMESPACES'=2336 +'XMLPARSE'=2337 +'XMLPATCH'=2338 +'XMLPI'=2339 +'XMLQUERYVAL'=2340 +'XMLQUERY'=2341 +'XMLROOT'=2342 +'XMLSCHEMA'=2343 +'XMLSERIALIZE'=2344 +'XMLTABLE'=2345 +'XMLTAG'=2346 +'XMLTRANSFORMBLOB'=2347 +'XMLTRANSFORM'=2348 +'XMLTYPE'=2349 +'XML'=2350 +'XPATHTABLE'=2351 +'XS_SYS_CONTEXT'=2352 +'XS'=2353 +'XTRANSPORT'=2354 +'YEARS'=2355 +'YEAR'=2356 +'YEAR_TO_MONTH'=2357 +'YES'=2358 +'YMINTERVAL_UNCONSTRAINED'=2359 +'ZONEMAP'=2360 +'ZONE'=2361 +'ZONED'=2362 +'PREDICTION'=2363 +'PREDICTION_BOUNDS'=2364 +'PREDICTION_COST'=2365 +'PREDICTION_DETAILS'=2366 +'PREDICTION_PROBABILITY'=2367 +'PREDICTION_SET'=2368 +'BLOCKCHAIN'=2369 +'COLLATE'=2370 +'COLLATION'=2371 +'DEFINITION'=2372 +'DUPLICATED'=2373 +'EXTENDED'=2374 +'HASHING'=2375 +'IDLE'=2376 +'IMMUTABLE'=2377 +'ORACLE_DATAPUMP'=2378 +'ORACLE_HDFS'=2379 +'ORACLE_HIVE'=2380 +'ORACLE_LOADER'=2381 +'"SHA2_512"'=2382 +'SHARDED'=2383 +'"V1"'=2384 +'ISOLATE'=2385 +'ROOT'=2386 +'UNITE'=2387 +'ALGORITHM'=2388 +'CUME_DIST'=2389 +'DENSE_RANK'=2390 +'LISTAGG'=2391 +'PERCENT_RANK'=2392 +'PERCENTILE_CONT'=2393 +'PERCENTILE_DISC'=2394 +'RANK'=2395 +'AVG'=2396 +'CORR'=2397 +'COVAR_'=2398 +'DECODE'=2399 +'LAG'=2400 +'LAG_DIFF'=2401 +'LAG_DIFF_PERCENT'=2402 +'LEAD'=2403 +'MAX'=2404 +'MEDIAN'=2405 +'MEMOPTIMIZE'=2406 +'MIN'=2407 +'NTILE'=2408 +'NVL'=2409 +'RATIO_TO_REPORT'=2410 +'REGR_'=2411 +'ROUND'=2412 +'ROW_NUMBER'=2413 +'SUBSTR'=2414 +'TO_CHAR'=2415 +'TRIM'=2416 +'SUM'=2417 +'STDDEV'=2418 +'VAR_'=2419 +'VARIANCE'=2420 +'LEAST'=2421 +'GREATEST'=2422 +'TO_DATE'=2423 +'CHARSETID'=2424 +'CHARSETFORM'=2425 +'DURATION'=2426 +'EXTEND'=2427 +'MAXLEN'=2428 +'PERSISTABLE'=2429 +'POLYMORPHIC'=2430 +'STRUCT'=2431 +'TDO'=2432 +'WM_CONCAT'=2433 +'..'=2437 +'.'=2438 +'%'=2443 +'&'=2444 +'('=2445 +')'=2446 +'**'=2447 +'*'=2448 +'+'=2449 +'-'=2450 +','=2451 +'/'=2452 +'@'=2453 +':='=2454 +'#'=2455 +'{'=2456 +'}'=2457 +'\''=2458 +'^'=2461 +'~'=2462 +'!'=2463 +'>'=2464 +'<'=2465 +':'=2466 +';'=2467 +'|'=2468 +'='=2469 +'['=2470 +']'=2471 +'_'=2472 diff --git a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParserBase.js b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParserBase.js new file mode 100644 index 000000000..6a200a38f --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParserBase.js @@ -0,0 +1,34 @@ +import antlr4 from 'antlr4'; + +export default class OracleSqlParserBase extends antlr4.Parser { + constructor (input) { + super(input); + this._isVersion10 = true; + this._isVersion11 = true; + this._isVersion12 = true; + } + + isVersion10 () { + return this._isVersion10; + } + + isVersion11 () { + return this._isVersion11; + } + + isVersion12 () { + return this._isVersion12; + } + + setVersion10 (value) { + this._isVersion10 = value; + } + + setVersion11 (value) { + this._isVersion11 = value; + } + + setVersion12 (value) { + this._isVersion12 = value; + } +} diff --git a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParserVisitor.js b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParserVisitor.js new file mode 100644 index 000000000..487822d24 --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParserVisitor.js @@ -0,0 +1,7240 @@ +// Generated from OracleSqlParser.g4 by ANTLR 4.13.2 +// jshint ignore: start +import antlr4 from 'antlr4'; + +// This class defines a complete generic visitor for a parse tree produced by OracleSqlParser. + +export default class OracleSqlParserVisitor extends antlr4.tree.ParseTreeVisitor { + + // Visit a parse tree produced by OracleSqlParser#sql_script. + visitSql_script(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#unit_statement. + visitUnit_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_diskgroup. + visitAlter_diskgroup(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_disk_clause. + visitAdd_disk_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_disk_clause. + visitDrop_disk_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#resize_disk_clause. + visitResize_disk_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#replace_disk_clause. + visitReplace_disk_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#wait_nowait. + visitWait_nowait(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#rename_disk_clause. + visitRename_disk_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#disk_online_clause. + visitDisk_online_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#disk_offline_clause. + visitDisk_offline_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#timeout_clause. + visitTimeout_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#rebalance_diskgroup_clause. + visitRebalance_diskgroup_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#phase. + visitPhase(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#check_diskgroup_clause. + visitCheck_diskgroup_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#diskgroup_template_clauses. + visitDiskgroup_template_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#qualified_template_clause. + visitQualified_template_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#redundancy_clause. + visitRedundancy_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#striping_clause. + visitStriping_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#force_noforce. + visitForce_noforce(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#diskgroup_directory_clauses. + visitDiskgroup_directory_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dir_name. + visitDir_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#diskgroup_alias_clauses. + visitDiskgroup_alias_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#diskgroup_volume_clauses. + visitDiskgroup_volume_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_volume_clause. + visitAdd_volume_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_volume_clause. + visitModify_volume_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#diskgroup_attributes. + visitDiskgroup_attributes(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_diskgroup_file_clause. + visitDrop_diskgroup_file_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#convert_redundancy_clause. + visitConvert_redundancy_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#usergroup_clauses. + visitUsergroup_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#user_clauses. + visitUser_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#file_permissions_clause. + visitFile_permissions_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#file_owner_clause. + visitFile_owner_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#scrub_clause. + visitScrub_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#quotagroup_clauses. + visitQuotagroup_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#property_name. + visitProperty_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#property_value. + visitProperty_value(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#filegroup_clauses. + visitFilegroup_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_filegroup_clause. + visitAdd_filegroup_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_filegroup_clause. + visitModify_filegroup_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#move_to_filegroup_clause. + visitMove_to_filegroup_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_filegroup_clause. + visitDrop_filegroup_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#quorum_regular. + visitQuorum_regular(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#undrop_disk_clause. + visitUndrop_disk_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#diskgroup_availability. + visitDiskgroup_availability(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#enable_disable_volume. + visitEnable_disable_volume(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_function. + visitDrop_function(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_flashback_archive. + visitAlter_flashback_archive(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_hierarchy. + visitAlter_hierarchy(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_function. + visitAlter_function(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_java. + visitAlter_java(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#match_string. + visitMatch_string(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_function_body. + visitCreate_function_body(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sql_macro_body. + visitSql_macro_body(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#parallel_enable_clause. + visitParallel_enable_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#partition_by_clause. + visitPartition_by_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#result_cache_clause. + visitResult_cache_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#accessible_by_clause. + visitAccessible_by_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_collation_clause. + visitDefault_collation_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#aggregate_clause. + visitAggregate_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pipelined_using_clause. + visitPipelined_using_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#accessor. + visitAccessor(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#relies_on_part. + visitRelies_on_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#streaming_clause. + visitStreaming_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_outline. + visitAlter_outline(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#outline_options. + visitOutline_options(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_lockdown_profile. + visitAlter_lockdown_profile(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lockdown_feature. + visitLockdown_feature(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lockdown_options. + visitLockdown_options(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lockdown_statements. + visitLockdown_statements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#statement_clauses. + visitStatement_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#clause_options. + visitClause_options(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#option_values. + visitOption_values(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#string_list. + visitString_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#disable_enable. + visitDisable_enable(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_lockdown_profile. + visitDrop_lockdown_profile(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_package. + visitDrop_package(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_package. + visitAlter_package(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_package. + visitCreate_package(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_package_body. + visitCreate_package_body(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#package_obj_spec. + visitPackage_obj_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#procedure_spec. + visitProcedure_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#function_spec. + visitFunction_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#package_obj_body. + visitPackage_obj_body(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_pmem_filestore. + visitAlter_pmem_filestore(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_pmem_filestore. + visitDrop_pmem_filestore(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_procedure. + visitDrop_procedure(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_procedure. + visitAlter_procedure(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#function_body. + visitFunction_body(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#procedure_body. + visitProcedure_body(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_procedure_body. + visitCreate_procedure_body(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_resource_cost. + visitAlter_resource_cost(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_outline. + visitDrop_outline(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_rollback_segment. + visitAlter_rollback_segment(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_restore_point. + visitDrop_restore_point(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_rollback_segment. + visitDrop_rollback_segment(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_role. + visitDrop_role(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_pmem_filestore. + visitCreate_pmem_filestore(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pmem_filestore_options. + visitPmem_filestore_options(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#file_path. + visitFile_path(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_rollback_segment. + visitCreate_rollback_segment(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_trigger. + visitDrop_trigger(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_trigger. + visitAlter_trigger(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_trigger. + visitCreate_trigger(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#trigger_follows_clause. + visitTrigger_follows_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#trigger_when_clause. + visitTrigger_when_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#simple_dml_trigger. + visitSimple_dml_trigger(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#for_each_row. + visitFor_each_row(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#compound_dml_trigger. + visitCompound_dml_trigger(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#non_dml_trigger. + visitNon_dml_trigger(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#trigger_body. + visitTrigger_body(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#compound_trigger_block. + visitCompound_trigger_block(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#timing_point_section. + visitTiming_point_section(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#non_dml_event. + visitNon_dml_event(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dml_event_clause. + visitDml_event_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dml_event_element. + visitDml_event_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dml_event_nested_clause. + visitDml_event_nested_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#referencing_clause. + visitReferencing_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#referencing_element. + visitReferencing_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_type. + visitDrop_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_type. + visitAlter_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#compile_type_clause. + visitCompile_type_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#replace_type_clause. + visitReplace_type_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_method_spec. + visitAlter_method_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_method_element. + visitAlter_method_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_collection_clauses. + visitAlter_collection_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dependent_handling_clause. + visitDependent_handling_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dependent_exceptions_part. + visitDependent_exceptions_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_type. + visitCreate_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#type_definition. + visitType_definition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_type_def. + visitObject_type_def(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_as_part. + visitObject_as_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_under_part. + visitObject_under_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#nested_table_type_def. + visitNested_table_type_def(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sqlj_object_type. + visitSqlj_object_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#type_body. + visitType_body(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#type_body_elements. + visitType_body_elements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#map_order_func_declaration. + visitMap_order_func_declaration(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subprog_decl_in_type. + visitSubprog_decl_in_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#proc_decl_in_type. + visitProc_decl_in_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#func_decl_in_type. + visitFunc_decl_in_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#constructor_declaration. + visitConstructor_declaration(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modifier_clause. + visitModifier_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_member_spec. + visitObject_member_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sqlj_object_type_attr. + visitSqlj_object_type_attr(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#element_spec. + visitElement_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#element_spec_options. + visitElement_spec_options(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subprogram_spec. + visitSubprogram_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#overriding_subprogram_spec. + visitOverriding_subprogram_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#overriding_function_spec. + visitOverriding_function_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#type_procedure_spec. + visitType_procedure_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#type_function_spec. + visitType_function_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#constructor_spec. + visitConstructor_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#map_order_function_spec. + visitMap_order_function_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pragma_clause. + visitPragma_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pragma_elements. + visitPragma_elements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#type_elements_parameter. + visitType_elements_parameter(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_sequence. + visitDrop_sequence(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_sequence. + visitAlter_sequence(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_session. + visitAlter_session(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_session_set_clause. + visitAlter_session_set_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_sequence. + visitCreate_sequence(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sequence_spec. + visitSequence_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sequence_start_clause. + visitSequence_start_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_analytic_view. + visitCreate_analytic_view(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#classification_clause. + visitClassification_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#caption_clause. + visitCaption_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#description_clause. + visitDescription_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#classification_item. + visitClassification_item(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#language. + visitLanguage(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cav_using_clause. + visitCav_using_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dim_by_clause. + visitDim_by_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dim_key. + visitDim_key(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dim_ref. + visitDim_ref(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hier_ref. + visitHier_ref(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#measures_clause. + visitMeasures_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#av_measure. + visitAv_measure(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#base_meas_clause. + visitBase_meas_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#meas_aggregate_clause. + visitMeas_aggregate_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#calc_meas_clause. + visitCalc_meas_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_measure_clause. + visitDefault_measure_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_aggregate_clause. + visitDefault_aggregate_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cache_clause. + visitCache_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cache_specification. + visitCache_specification(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#levels_clause. + visitLevels_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#level_specification. + visitLevel_specification(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#level_group_type. + visitLevel_group_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#fact_columns_clause. + visitFact_columns_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#qry_transform_clause. + visitQry_transform_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_attribute_dimension. + visitCreate_attribute_dimension(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#ad_using_clause. + visitAd_using_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#source_clause. + visitSource_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#join_path_clause. + visitJoin_path_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#join_condition. + visitJoin_condition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#join_condition_item. + visitJoin_condition_item(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#attributes_clause. + visitAttributes_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#ad_attributes_clause. + visitAd_attributes_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#ad_level_clause. + visitAd_level_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#key_clause. + visitKey_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alternate_key_clause. + visitAlternate_key_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dim_order_clause. + visitDim_order_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#all_clause. + visitAll_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_audit_policy. + visitCreate_audit_policy(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#privilege_audit_clause. + visitPrivilege_audit_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#action_audit_clause. + visitAction_audit_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#system_actions. + visitSystem_actions(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#standard_actions. + visitStandard_actions(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#actions_clause. + visitActions_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_action. + visitObject_action(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#system_action. + visitSystem_action(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#component_actions. + visitComponent_actions(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#component_action. + visitComponent_action(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#role_audit_clause. + visitRole_audit_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_controlfile. + visitCreate_controlfile(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#controlfile_options. + visitControlfile_options(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#logfile_clause. + visitLogfile_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#character_set_clause. + visitCharacter_set_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#file_specification. + visitFile_specification(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_diskgroup. + visitCreate_diskgroup(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#qualified_disk_clause. + visitQualified_disk_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_edition. + visitCreate_edition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_flashback_archive. + visitCreate_flashback_archive(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#flashback_archive_quota. + visitFlashback_archive_quota(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#flashback_archive_retention. + visitFlashback_archive_retention(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_hierarchy. + visitCreate_hierarchy(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hier_using_clause. + visitHier_using_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#level_hier_clause. + visitLevel_hier_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hier_attrs_clause. + visitHier_attrs_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hier_attr_clause. + visitHier_attr_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hier_attr_name. + visitHier_attr_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_index. + visitCreate_index(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cluster_index_clause. + visitCluster_index_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cluster_name. + visitCluster_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_index_clause. + visitTable_index_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#bitmap_join_index_clause. + visitBitmap_join_index_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#index_expr. + visitIndex_expr(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#index_properties. + visitIndex_properties(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#domain_index_clause. + visitDomain_index_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#local_domain_index_clause. + visitLocal_domain_index_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmlindex_clause. + visitXmlindex_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#local_xmlindex_clause. + visitLocal_xmlindex_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#global_partitioned_index. + visitGlobal_partitioned_index(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#index_partitioning_clause. + visitIndex_partitioning_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#index_partitioning_values_list. + visitIndex_partitioning_values_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#local_partitioned_index. + visitLocal_partitioned_index(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#on_range_partitioned_table. + visitOn_range_partitioned_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#on_list_partitioned_table. + visitOn_list_partitioned_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#partitioned_table. + visitPartitioned_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#on_hash_partitioned_table. + visitOn_hash_partitioned_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#on_hash_partitioned_clause. + visitOn_hash_partitioned_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#on_comp_partitioned_table. + visitOn_comp_partitioned_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#on_comp_partitioned_clause. + visitOn_comp_partitioned_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#index_subpartition_clause. + visitIndex_subpartition_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#index_subpartition_subclause. + visitIndex_subpartition_subclause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#odci_parameters. + visitOdci_parameters(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#indextype. + visitIndextype(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_index. + visitAlter_index(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_index_ops_set1. + visitAlter_index_ops_set1(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_index_ops_set2. + visitAlter_index_ops_set2(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#visible_or_invisible. + visitVisible_or_invisible(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#monitoring_nomonitoring. + visitMonitoring_nomonitoring(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#rebuild_clause. + visitRebuild_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_index_partitioning. + visitAlter_index_partitioning(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_index_default_attrs. + visitModify_index_default_attrs(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_hash_index_partition. + visitAdd_hash_index_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#coalesce_index_partition. + visitCoalesce_index_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_index_partition. + visitModify_index_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_index_partitions_ops. + visitModify_index_partitions_ops(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#rename_index_partition. + visitRename_index_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_index_partition. + visitDrop_index_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#split_index_partition. + visitSplit_index_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#index_partition_description. + visitIndex_partition_description(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_index_subpartition. + visitModify_index_subpartition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#partition_name_old. + visitPartition_name_old(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#new_partition_name. + visitNew_partition_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#new_index_name. + visitNew_index_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_inmemory_join_group. + visitAlter_inmemory_join_group(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_user. + visitCreate_user(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_user. + visitAlter_user(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_user. + visitDrop_user(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_identified_by. + visitAlter_identified_by(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#identified_by. + visitIdentified_by(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#identified_other_clause. + visitIdentified_other_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#user_tablespace_clause. + visitUser_tablespace_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#quota_clause. + visitQuota_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#profile_clause. + visitProfile_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#role_clause. + visitRole_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#user_default_role_clause. + visitUser_default_role_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#password_expire_clause. + visitPassword_expire_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#user_lock_clause. + visitUser_lock_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#user_editions_clause. + visitUser_editions_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_user_editions_clause. + visitAlter_user_editions_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#proxy_clause. + visitProxy_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#container_names. + visitContainer_names(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#set_container_data. + visitSet_container_data(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_rem_container_data. + visitAdd_rem_container_data(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#container_data_clause. + visitContainer_data_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#administer_key_management. + visitAdminister_key_management(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#keystore_management_clauses. + visitKeystore_management_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_keystore. + visitCreate_keystore(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#open_keystore. + visitOpen_keystore(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#force_keystore. + visitForce_keystore(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#close_keystore. + visitClose_keystore(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#backup_keystore. + visitBackup_keystore(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_keystore_password. + visitAlter_keystore_password(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#merge_into_new_keystore. + visitMerge_into_new_keystore(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#merge_into_existing_keystore. + visitMerge_into_existing_keystore(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#isolate_keystore. + visitIsolate_keystore(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#unite_keystore. + visitUnite_keystore(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#key_management_clauses. + visitKey_management_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#set_key. + visitSet_key(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_key. + visitCreate_key(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#mkid. + visitMkid(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#mk. + visitMk(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#use_key. + visitUse_key(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#set_key_tag. + visitSet_key_tag(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#export_keys. + visitExport_keys(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#import_keys. + visitImport_keys(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#migrate_keys. + visitMigrate_keys(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#reverse_migrate_keys. + visitReverse_migrate_keys(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#move_keys. + visitMove_keys(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#identified_by_store. + visitIdentified_by_store(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#using_algorithm_clause. + visitUsing_algorithm_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#using_tag_clause. + visitUsing_tag_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#secret_management_clauses. + visitSecret_management_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_update_secret. + visitAdd_update_secret(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#delete_secret. + visitDelete_secret(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_update_secret_seps. + visitAdd_update_secret_seps(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#delete_secret_seps. + visitDelete_secret_seps(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#zero_downtime_software_patching_clauses. + visitZero_downtime_software_patching_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#with_backup_clause. + visitWith_backup_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#identified_by_password_clause. + visitIdentified_by_password_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#keystore_password. + visitKeystore_password(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#path. + visitPath(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#secret. + visitSecret(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#analyze. + visitAnalyze(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#partition_extention_clause. + visitPartition_extention_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#validation_clauses. + visitValidation_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#compute_clauses. + visitCompute_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#for_clause. + visitFor_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#online_or_offline. + visitOnline_or_offline(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#into_clause1. + visitInto_clause1(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#partition_key_value. + visitPartition_key_value(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subpartition_key_value. + visitSubpartition_key_value(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#associate_statistics. + visitAssociate_statistics(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#column_association. + visitColumn_association(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#function_association. + visitFunction_association(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#indextype_name. + visitIndextype_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#using_statistics_type. + visitUsing_statistics_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#statistics_type_name. + visitStatistics_type_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_cost_clause. + visitDefault_cost_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cpu_cost. + visitCpu_cost(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#io_cost. + visitIo_cost(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#network_cost. + visitNetwork_cost(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_selectivity_clause. + visitDefault_selectivity_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_selectivity. + visitDefault_selectivity(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#storage_table_clause. + visitStorage_table_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#unified_auditing. + visitUnified_auditing(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#policy_name. + visitPolicy_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#audit_traditional. + visitAudit_traditional(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#audit_direct_path. + visitAudit_direct_path(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#audit_container_clause. + visitAudit_container_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#audit_operation_clause. + visitAudit_operation_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#auditing_by_clause. + visitAuditing_by_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#audit_user. + visitAudit_user(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#audit_schema_object_clause. + visitAudit_schema_object_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sql_operation. + visitSql_operation(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#auditing_on_clause. + visitAuditing_on_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#model_name. + visitModel_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_name. + visitObject_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#profile_name. + visitProfile_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sql_statement_shortcut. + visitSql_statement_shortcut(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_index. + visitDrop_index(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#disassociate_statistics. + visitDisassociate_statistics(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_indextype. + visitDrop_indextype(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_inmemory_join_group. + visitDrop_inmemory_join_group(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#flashback_table. + visitFlashback_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#restore_point. + visitRestore_point(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#purge_statement. + visitPurge_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#noaudit_statement. + visitNoaudit_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#rename_object. + visitRename_object(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#grant_statement. + visitGrant_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#container_clause. + visitContainer_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#revoke_statement. + visitRevoke_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#revoke_system_privilege. + visitRevoke_system_privilege(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#revokee_clause. + visitRevokee_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#revoke_object_privileges. + visitRevoke_object_privileges(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#on_object_clause. + visitOn_object_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#revoke_roles_from_programs. + visitRevoke_roles_from_programs(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#program_unit. + visitProgram_unit(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_dimension. + visitCreate_dimension(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_directory. + visitCreate_directory(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#directory_name. + visitDirectory_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#directory_path. + visitDirectory_path(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_inmemory_join_group. + visitCreate_inmemory_join_group(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_hierarchy. + visitDrop_hierarchy(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_library. + visitAlter_library(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_java. + visitDrop_java(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_library. + visitDrop_library(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_java. + visitCreate_java(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_library. + visitCreate_library(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#plsql_library_source. + visitPlsql_library_source(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#credential_name. + visitCredential_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#library_editionable. + visitLibrary_editionable(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#library_debug. + visitLibrary_debug(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#compiler_parameters_clause. + visitCompiler_parameters_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#parameter_value. + visitParameter_value(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#library_name. + visitLibrary_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_dimension. + visitAlter_dimension(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#level_clause. + visitLevel_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hierarchy_clause. + visitHierarchy_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dimension_join_clause. + visitDimension_join_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#attribute_clause. + visitAttribute_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#extended_attribute_clause. + visitExtended_attribute_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#column_one_or_more_sub_clause. + visitColumn_one_or_more_sub_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_view. + visitAlter_view(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_view_editionable. + visitAlter_view_editionable(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_view. + visitCreate_view(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#editioning_clause. + visitEditioning_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#view_options. + visitView_options(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#view_alias_constraint. + visitView_alias_constraint(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_view_clause. + visitObject_view_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#inline_constraint. + visitInline_constraint(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#inline_ref_constraint. + visitInline_ref_constraint(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#out_of_line_ref_constraint. + visitOut_of_line_ref_constraint(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#out_of_line_constraint. + visitOut_of_line_constraint(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#constraint_state. + visitConstraint_state(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmltype_view_clause. + visitXmltype_view_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xml_schema_spec. + visitXml_schema_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xml_schema_url. + visitXml_schema_url(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#element. + visitElement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_tablespace. + visitAlter_tablespace(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#datafile_tempfile_clauses. + visitDatafile_tempfile_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tablespace_logging_clauses. + visitTablespace_logging_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tablespace_group_clause. + visitTablespace_group_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tablespace_group_name. + visitTablespace_group_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tablespace_state_clauses. + visitTablespace_state_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#flashback_mode_clause. + visitFlashback_mode_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#new_tablespace_name. + visitNew_tablespace_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_tablespace. + visitCreate_tablespace(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#permanent_tablespace_clause. + visitPermanent_tablespace_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tablespace_encryption_spec. + visitTablespace_encryption_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#logging_clause. + visitLogging_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#extent_management_clause. + visitExtent_management_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#segment_management_clause. + visitSegment_management_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#temporary_tablespace_clause. + visitTemporary_tablespace_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#undo_tablespace_clause. + visitUndo_tablespace_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tablespace_retention_clause. + visitTablespace_retention_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_tablespace_set. + visitCreate_tablespace_set(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#permanent_tablespace_attrs. + visitPermanent_tablespace_attrs(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tablespace_encryption_clause. + visitTablespace_encryption_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_tablespace_params. + visitDefault_tablespace_params(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_table_compression. + visitDefault_table_compression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#low_high. + visitLow_high(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_index_compression. + visitDefault_index_compression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#inmmemory_clause. + visitInmmemory_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#datafile_specification. + visitDatafile_specification(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tempfile_specification. + visitTempfile_specification(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#datafile_tempfile_spec. + visitDatafile_tempfile_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#redo_log_file_spec. + visitRedo_log_file_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#autoextend_clause. + visitAutoextend_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#maxsize_clause. + visitMaxsize_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#build_clause. + visitBuild_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#parallel_clause. + visitParallel_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#parallel_instances_clause. + visitParallel_instances_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_materialized_view. + visitAlter_materialized_view(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_mv_option1. + visitAlter_mv_option1(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_mv_refresh. + visitAlter_mv_refresh(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#rollback_segment. + visitRollback_segment(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_mv_column_clause. + visitModify_mv_column_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_materialized_view_log. + visitAlter_materialized_view_log(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_mv_log_column_clause. + visitAdd_mv_log_column_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#move_mv_log_clause. + visitMove_mv_log_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#mv_log_augmentation. + visitMv_log_augmentation(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_materialized_view_log. + visitCreate_materialized_view_log(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#new_values_clause. + visitNew_values_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#mv_log_purge_clause. + visitMv_log_purge_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_materialized_zonemap. + visitCreate_materialized_zonemap(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_materialized_zonemap. + visitAlter_materialized_zonemap(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_materialized_zonemap. + visitDrop_materialized_zonemap(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#zonemap_refresh_clause. + visitZonemap_refresh_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#zonemap_attributes. + visitZonemap_attributes(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#zonemap_name. + visitZonemap_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#operator_name. + visitOperator_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#operator_function_name. + visitOperator_function_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_zonemap_on_table. + visitCreate_zonemap_on_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_zonemap_as_subquery. + visitCreate_zonemap_as_subquery(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_operator. + visitAlter_operator(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_operator. + visitDrop_operator(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_operator. + visitCreate_operator(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#binding_clause. + visitBinding_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_binding_clause. + visitAdd_binding_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#implementation_clause. + visitImplementation_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#primary_operator_list. + visitPrimary_operator_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#primary_operator_item. + visitPrimary_operator_item(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#operator_context_clause. + visitOperator_context_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#using_function_clause. + visitUsing_function_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_binding_clause. + visitDrop_binding_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_materialized_view. + visitCreate_materialized_view(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#scoped_table_ref_constraint. + visitScoped_table_ref_constraint(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#mv_column_alias. + visitMv_column_alias(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_mv_refresh. + visitCreate_mv_refresh(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_materialized_view. + visitDrop_materialized_view(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_materialized_view_log. + visitDrop_materialized_view_log(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_context. + visitCreate_context(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#oracle_namespace. + visitOracle_namespace(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_cluster. + visitCreate_cluster(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_profile. + visitCreate_profile(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#resource_parameters. + visitResource_parameters(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#password_parameters. + visitPassword_parameters(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_lockdown_profile. + visitCreate_lockdown_profile(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#static_base_profile. + visitStatic_base_profile(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dynamic_base_profile. + visitDynamic_base_profile(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_outline. + visitCreate_outline(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_restore_point. + visitCreate_restore_point(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_role. + visitCreate_role(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_table. + visitCreate_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmltype_table. + visitXmltype_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmltype_virtual_columns. + visitXmltype_virtual_columns(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmltype_column_properties. + visitXmltype_column_properties(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmltype_storage. + visitXmltype_storage(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmlschema_spec. + visitXmlschema_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_table. + visitObject_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_type. + visitObject_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#oid_index_clause. + visitOid_index_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#oid_clause. + visitOid_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_properties. + visitObject_properties(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_table_substitution. + visitObject_table_substitution(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#relational_table. + visitRelational_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#relational_table_properties. + visitRelational_table_properties(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#relational_table_property. + visitRelational_table_property(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#immutable_table_clauses. + visitImmutable_table_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#immutable_table_no_drop_clause. + visitImmutable_table_no_drop_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#immutable_table_no_delete_clause. + visitImmutable_table_no_delete_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#blockchain_table_clauses. + visitBlockchain_table_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#blockchain_drop_table_clause. + visitBlockchain_drop_table_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#blockchain_row_retention_clause. + visitBlockchain_row_retention_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#blockchain_hash_and_data_format_clause. + visitBlockchain_hash_and_data_format_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#collation_name. + visitCollation_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_properties. + visitTable_properties(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#read_only_clause. + visitRead_only_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#indexing_clause. + visitIndexing_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#attribute_clustering_clause. + visitAttribute_clustering_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#clustering_join. + visitClustering_join(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#clustering_join_item. + visitClustering_join_item(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#equijoin_condition. + visitEquijoin_condition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cluster_clause. + visitCluster_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#clustering_columns. + visitClustering_columns(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#clustering_column_group. + visitClustering_column_group(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#yes_no. + visitYes_no(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#zonemap_clause. + visitZonemap_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#logical_replication_clause. + visitLogical_replication_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_name. + visitTable_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#relational_property. + visitRelational_property(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_partitioning_clauses. + visitTable_partitioning_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#range_partitions. + visitRange_partitions(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#list_partitions. + visitList_partitions(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hash_partitions. + visitHash_partitions(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#individual_hash_partitions. + visitIndividual_hash_partitions(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hash_partitions_by_quantity. + visitHash_partitions_by_quantity(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hash_partition_quantity. + visitHash_partition_quantity(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#composite_range_partitions. + visitComposite_range_partitions(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#composite_list_partitions. + visitComposite_list_partitions(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#composite_hash_partitions. + visitComposite_hash_partitions(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#reference_partitioning. + visitReference_partitioning(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#reference_partition_desc. + visitReference_partition_desc(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#system_partitioning. + visitSystem_partitioning(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#range_partition_desc. + visitRange_partition_desc(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#list_partition_desc. + visitList_partition_desc(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subpartition_template. + visitSubpartition_template(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hash_subpartition_quantity. + visitHash_subpartition_quantity(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subpartition_by_range. + visitSubpartition_by_range(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subpartition_by_list. + visitSubpartition_by_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subpartition_by_hash. + visitSubpartition_by_hash(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subpartition_name. + visitSubpartition_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#range_subpartition_desc. + visitRange_subpartition_desc(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#list_subpartition_desc. + visitList_subpartition_desc(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#individual_hash_subparts. + visitIndividual_hash_subparts(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hash_subparts_by_quantity. + visitHash_subparts_by_quantity(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#range_values_clause. + visitRange_values_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#range_values_list. + visitRange_values_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#list_values_clause. + visitList_values_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_partition_description. + visitTable_partition_description(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#partitioning_storage_clause. + visitPartitioning_storage_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lob_partitioning_storage. + visitLob_partitioning_storage(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#size_clause. + visitSize_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_compression. + visitTable_compression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#inmemory_table_clause. + visitInmemory_table_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#inmemory_attributes. + visitInmemory_attributes(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#inmemory_memcompress. + visitInmemory_memcompress(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#inmemory_priority. + visitInmemory_priority(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#inmemory_distribute. + visitInmemory_distribute(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#inmemory_duplicate. + visitInmemory_duplicate(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#inmemory_column_clause. + visitInmemory_column_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#physical_attributes_clause. + visitPhysical_attributes_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#storage_clause. + visitStorage_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#deferred_segment_creation. + visitDeferred_segment_creation(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#segment_attributes_clause. + visitSegment_attributes_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#physical_properties. + visitPhysical_properties(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#ilm_clause. + visitIlm_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#ilm_policy_clause. + visitIlm_policy_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#ilm_compression_policy. + visitIlm_compression_policy(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#ilm_tiering_policy. + visitIlm_tiering_policy(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#ilm_after_on. + visitIlm_after_on(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#segment_group. + visitSegment_group(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#ilm_inmemory_policy. + visitIlm_inmemory_policy(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#ilm_time_period. + visitIlm_time_period(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#heap_org_table_clause. + visitHeap_org_table_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_clause. + visitExternal_table_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#access_driver_type. + visitAccess_driver_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_data_props. + visitExternal_table_data_props(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_data_format. + visitExternal_table_data_format(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_transform. + visitExternal_table_transform(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_field. + visitExternal_table_field(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_field_list. + visitExternal_table_field_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_fields_clause. + visitExternal_table_fields_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_position_clause. + visitExternal_table_position_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_datatype_clause. + visitExternal_table_datatype_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_delimit_clause. + visitExternal_table_delimit_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_trim_clause. + visitExternal_table_trim_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_date_format_clause. + visitExternal_table_date_format_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_init_clause. + visitExternal_table_init_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_condition_clause. + visitExternal_table_condition_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_lls_clause. + visitExternal_table_lls_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_records. + visitExternal_table_records(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_record_options_clause. + visitExternal_table_record_options_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_output_files. + visitExternal_table_output_files(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_fields. + visitExternal_table_fields(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_datapump. + visitExternal_table_datapump(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_hive. + visitExternal_table_hive(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_hive_parameter_map. + visitExternal_table_hive_parameter_map(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_hive_parameter_map_entry. + visitExternal_table_hive_parameter_map_entry(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#external_table_directory. + visitExternal_table_directory(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#row_movement_clause. + visitRow_movement_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#flashback_archive_clause. + visitFlashback_archive_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#log_grp. + visitLog_grp(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#supplemental_table_logging. + visitSupplemental_table_logging(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#supplemental_log_grp_clause. + visitSupplemental_log_grp_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#supplemental_id_key_clause. + visitSupplemental_id_key_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#allocate_extent_clause. + visitAllocate_extent_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#deallocate_unused_clause. + visitDeallocate_unused_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#shrink_clause. + visitShrink_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#records_per_block_clause. + visitRecords_per_block_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#upgrade_table_clause. + visitUpgrade_table_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#truncate_table. + visitTruncate_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_table. + visitDrop_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_tablespace. + visitDrop_tablespace(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_tablespace_set. + visitDrop_tablespace_set(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#including_contents_clause. + visitIncluding_contents_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_view. + visitDrop_view(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#comment_on_column. + visitComment_on_column(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#enable_or_disable. + visitEnable_or_disable(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#allow_or_disallow. + visitAllow_or_disallow(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_synonym. + visitAlter_synonym(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_synonym. + visitCreate_synonym(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_synonym. + visitDrop_synonym(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_spfile. + visitCreate_spfile(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#spfile_name. + visitSpfile_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pfile_name. + visitPfile_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#comment_on_table. + visitComment_on_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#comment_on_materialized. + visitComment_on_materialized(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_analytic_view. + visitAlter_analytic_view(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_add_cache_clause. + visitAlter_add_cache_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#levels_item. + visitLevels_item(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#measure_list. + visitMeasure_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_drop_cache_clause. + visitAlter_drop_cache_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_attribute_dimension. + visitAlter_attribute_dimension(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_audit_policy. + visitAlter_audit_policy(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_cluster. + visitAlter_cluster(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_analytic_view. + visitDrop_analytic_view(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_attribute_dimension. + visitDrop_attribute_dimension(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_audit_policy. + visitDrop_audit_policy(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_flashback_archive. + visitDrop_flashback_archive(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_cluster. + visitDrop_cluster(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_context. + visitDrop_context(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_directory. + visitDrop_directory(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_diskgroup. + visitDrop_diskgroup(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_edition. + visitDrop_edition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#truncate_cluster. + visitTruncate_cluster(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cache_or_nocache. + visitCache_or_nocache(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#database_name. + visitDatabase_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_database. + visitAlter_database(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#database_clause. + visitDatabase_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#startup_clauses. + visitStartup_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#resetlogs_or_noresetlogs. + visitResetlogs_or_noresetlogs(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#upgrade_or_downgrade. + visitUpgrade_or_downgrade(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#recovery_clauses. + visitRecovery_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#begin_or_end. + visitBegin_or_end(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#general_recovery. + visitGeneral_recovery(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#full_database_recovery. + visitFull_database_recovery(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#partial_database_recovery. + visitPartial_database_recovery(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#partial_database_recovery_10g. + visitPartial_database_recovery_10g(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#managed_standby_recovery. + visitManaged_standby_recovery(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#db_name. + visitDb_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#database_file_clauses. + visitDatabase_file_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_datafile_clause. + visitCreate_datafile_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_datafile_clause. + visitAlter_datafile_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_tempfile_clause. + visitAlter_tempfile_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#move_datafile_clause. + visitMove_datafile_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#logfile_clauses. + visitLogfile_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_logfile_clauses. + visitAdd_logfile_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#group_redo_logfile. + visitGroup_redo_logfile(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_logfile_clauses. + visitDrop_logfile_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#switch_logfile_clause. + visitSwitch_logfile_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#supplemental_db_logging. + visitSupplemental_db_logging(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_or_drop. + visitAdd_or_drop(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#supplemental_plsql_clause. + visitSupplemental_plsql_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#logfile_descriptor. + visitLogfile_descriptor(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#controlfile_clauses. + visitControlfile_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#trace_file_clause. + visitTrace_file_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#standby_database_clauses. + visitStandby_database_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#activate_standby_db_clause. + visitActivate_standby_db_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#maximize_standby_db_clause. + visitMaximize_standby_db_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#register_logfile_clause. + visitRegister_logfile_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#commit_switchover_clause. + visitCommit_switchover_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#start_standby_clause. + visitStart_standby_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#stop_standby_clause. + visitStop_standby_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#convert_database_clause. + visitConvert_database_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_settings_clause. + visitDefault_settings_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#set_time_zone_clause. + visitSet_time_zone_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#instance_clauses. + visitInstance_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#security_clause. + visitSecurity_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#domain. + visitDomain(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#database. + visitDatabase(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#edition_name. + visitEdition_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#filenumber. + visitFilenumber(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#filename. + visitFilename(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#prepare_clause. + visitPrepare_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_mirror_clause. + visitDrop_mirror_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lost_write_protection. + visitLost_write_protection(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cdb_fleet_clauses. + visitCdb_fleet_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lead_cdb_clause. + visitLead_cdb_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lead_cdb_uri_clause. + visitLead_cdb_uri_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#property_clauses. + visitProperty_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#replay_upgrade_clauses. + visitReplay_upgrade_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_database_link. + visitAlter_database_link(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#password_value. + visitPassword_value(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#link_authentication. + visitLink_authentication(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_schema. + visitCreate_schema(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_database. + visitCreate_database(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#database_logging_clauses. + visitDatabase_logging_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#database_logging_sub_clause. + visitDatabase_logging_sub_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tablespace_clauses. + visitTablespace_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#enable_pluggable_database. + visitEnable_pluggable_database(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#file_name_convert. + visitFile_name_convert(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#filename_convert_sub_clause. + visitFilename_convert_sub_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tablespace_datafile_clauses. + visitTablespace_datafile_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#undo_mode_clause. + visitUndo_mode_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_tablespace. + visitDefault_tablespace(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_temp_tablespace. + visitDefault_temp_tablespace(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#undo_tablespace. + visitUndo_tablespace(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_database. + visitDrop_database(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#create_database_link. + visitCreate_database_link(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_database_link. + visitDrop_database_link(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_tablespace_set. + visitAlter_tablespace_set(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_tablespace_attrs. + visitAlter_tablespace_attrs(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_tablespace_encryption. + visitAlter_tablespace_encryption(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#ts_file_name_convert. + visitTs_file_name_convert(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_role. + visitAlter_role(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#role_identified_clause. + visitRole_identified_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_table. + visitAlter_table(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#memoptimize_read_write_clause. + visitMemoptimize_read_write_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_table_properties. + visitAlter_table_properties(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_table_partitioning. + visitAlter_table_partitioning(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_table_partition. + visitAdd_table_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_table_partition. + visitDrop_table_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#merge_table_partition. + visitMerge_table_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_table_partition. + visitModify_table_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#split_table_partition. + visitSplit_table_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#truncate_table_partition. + visitTruncate_table_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#exchange_table_partition. + visitExchange_table_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#coalesce_table_partition. + visitCoalesce_table_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_interval_partition. + visitAlter_interval_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#move_table_partition. + visitMove_table_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#filter_condition. + visitFilter_condition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#partition_extended_names. + visitPartition_extended_names(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subpartition_extended_names. + visitSubpartition_extended_names(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_table_properties_1. + visitAlter_table_properties_1(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_iot_clauses. + visitAlter_iot_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_mapping_table_clause. + visitAlter_mapping_table_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#alter_overflow_clause. + visitAlter_overflow_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_overflow_clause. + visitAdd_overflow_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#update_index_clauses. + visitUpdate_index_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#update_global_index_clause. + visitUpdate_global_index_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#update_all_indexes_clause. + visitUpdate_all_indexes_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#update_all_indexes_index_clause. + visitUpdate_all_indexes_index_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#update_index_partition. + visitUpdate_index_partition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#update_index_subpartition. + visitUpdate_index_subpartition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#enable_disable_clause. + visitEnable_disable_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#using_index_clause. + visitUsing_index_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#index_attributes. + visitIndex_attributes(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sort_or_nosort. + visitSort_or_nosort(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#exceptions_clause. + visitExceptions_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#move_table_clause. + visitMove_table_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#index_org_table_clause. + visitIndex_org_table_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#mapping_table_clause. + visitMapping_table_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#key_compression. + visitKey_compression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#index_org_overflow_clause. + visitIndex_org_overflow_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#column_clauses. + visitColumn_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_collection_retrieval. + visitModify_collection_retrieval(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#collection_item. + visitCollection_item(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#rename_column_clause. + visitRename_column_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#old_column_name. + visitOld_column_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#new_column_name. + visitNew_column_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_modify_drop_column_clauses. + visitAdd_modify_drop_column_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_column_clause. + visitDrop_column_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_column_clauses. + visitModify_column_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_col_properties. + visitModify_col_properties(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_col_visibility. + visitModify_col_visibility(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_col_substitutable. + visitModify_col_substitutable(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_column_clause. + visitAdd_column_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#varray_col_properties. + visitVarray_col_properties(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#varray_storage_clause. + visitVarray_storage_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lob_segname. + visitLob_segname(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lob_item. + visitLob_item(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lob_storage_parameters. + visitLob_storage_parameters(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lob_storage_clause. + visitLob_storage_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_lob_storage_clause. + visitModify_lob_storage_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#modify_lob_parameters. + visitModify_lob_parameters(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lob_parameters. + visitLob_parameters(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lob_deduplicate_clause. + visitLob_deduplicate_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lob_compression_clause. + visitLob_compression_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lob_retention_clause. + visitLob_retention_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#encryption_spec. + visitEncryption_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tablespace. + visitTablespace(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#varray_item. + visitVarray_item(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#column_properties. + visitColumn_properties(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lob_partition_storage. + visitLob_partition_storage(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#period_definition. + visitPeriod_definition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#start_time_column. + visitStart_time_column(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#end_time_column. + visitEnd_time_column(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#column_definition. + visitColumn_definition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#column_collation_name. + visitColumn_collation_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#identity_clause. + visitIdentity_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#identity_options_parentheses. + visitIdentity_options_parentheses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#identity_options. + visitIdentity_options(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#virtual_column_definition. + visitVirtual_column_definition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#virtual_column_expression. + visitVirtual_column_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#autogenerated_sequence_definition. + visitAutogenerated_sequence_definition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#by_user_for_statistics_clause. + visitBy_user_for_statistics_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#evaluation_edition_clause. + visitEvaluation_edition_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#nested_table_col_properties. + visitNested_table_col_properties(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#nested_item. + visitNested_item(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#substitutable_column_clause. + visitSubstitutable_column_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#partition_name. + visitPartition_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#supplemental_logging_props. + visitSupplemental_logging_props(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_type_col_properties. + visitObject_type_col_properties(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#constraint_clauses. + visitConstraint_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#old_constraint_name. + visitOld_constraint_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#new_constraint_name. + visitNew_constraint_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#drop_constraint_clause. + visitDrop_constraint_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#check_constraint. + visitCheck_constraint(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#foreign_key_clause. + visitForeign_key_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#references_clause. + visitReferences_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#on_delete_clause. + visitOn_delete_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#anonymous_block. + visitAnonymous_block(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#invoker_rights_clause. + visitInvoker_rights_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#call_spec. + visitCall_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#java_spec. + visitJava_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#c_spec. + visitC_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#c_agent_in_clause. + visitC_agent_in_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#c_parameters_clause. + visitC_parameters_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#c_external_parameter. + visitC_external_parameter(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#c_property. + visitC_property(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#parameter. + visitParameter(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#default_value_part. + visitDefault_value_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#seq_of_declare_specs. + visitSeq_of_declare_specs(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#declare_spec. + visitDeclare_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#variable_declaration. + visitVariable_declaration(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subtype_declaration. + visitSubtype_declaration(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cursor_declaration. + visitCursor_declaration(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#parameter_spec. + visitParameter_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#exception_declaration. + visitException_declaration(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pragma_declaration. + visitPragma_declaration(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#record_type_def. + visitRecord_type_def(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#field_spec. + visitField_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#ref_cursor_type_def. + visitRef_cursor_type_def(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#type_declaration. + visitType_declaration(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_type_def. + visitTable_type_def(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_indexed_by_part. + visitTable_indexed_by_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#varray_type_def. + visitVarray_type_def(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#seq_of_statements. + visitSeq_of_statements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#label_declaration. + visitLabel_declaration(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#statement. + visitStatement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#assignment_statement. + visitAssignment_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#continue_statement. + visitContinue_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#exit_statement. + visitExit_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#goto_statement. + visitGoto_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#if_statement. + visitIf_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#elsif_part. + visitElsif_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#else_part. + visitElse_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#loop_statement. + visitLoop_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cursor_loop_param. + visitCursor_loop_param(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#forall_statement. + visitForall_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#bounds_clause. + visitBounds_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#between_bound. + visitBetween_bound(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lower_bound. + visitLower_bound(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#upper_bound. + visitUpper_bound(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#null_statement. + visitNull_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#raise_statement. + visitRaise_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#return_statement. + visitReturn_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#call_statement. + visitCall_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pipe_row_statement. + visitPipe_row_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#selection_directive. + visitSelection_directive(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#error_directive. + visitError_directive(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#selection_directive_body. + visitSelection_directive_body(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#body. + visitBody(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#exception_handler. + visitException_handler(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#trigger_block. + visitTrigger_block(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tps_block. + visitTps_block(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#block. + visitBlock(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sql_statement. + visitSql_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#execute_immediate. + visitExecute_immediate(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dynamic_returning_clause. + visitDynamic_returning_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#data_manipulation_language_statements. + visitData_manipulation_language_statements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cursor_manipulation_statements. + visitCursor_manipulation_statements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#close_statement. + visitClose_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#open_statement. + visitOpen_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#fetch_statement. + visitFetch_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#variable_or_collection. + visitVariable_or_collection(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#open_for_statement. + visitOpen_for_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#transaction_control_statements. + visitTransaction_control_statements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#set_transaction_command. + visitSet_transaction_command(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#set_constraint_command. + visitSet_constraint_command(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#commit_statement. + visitCommit_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#write_clause. + visitWrite_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#rollback_statement. + visitRollback_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#savepoint_statement. + visitSavepoint_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#collection_method_call. + visitCollection_method_call(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#explain_statement. + visitExplain_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#select_only_statement. + visitSelect_only_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#select_statement. + visitSelect_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#with_clause. + visitWith_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#with_factoring_clause. + visitWith_factoring_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subquery_factoring_clause. + visitSubquery_factoring_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#search_clause. + visitSearch_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cycle_clause. + visitCycle_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subav_factoring_clause. + visitSubav_factoring_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subav_clause. + visitSubav_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hierarchies_clause. + visitHierarchies_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#filter_clauses. + visitFilter_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#filter_clause. + visitFilter_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_calcs_clause. + visitAdd_calcs_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#add_calc_meas_clause. + visitAdd_calc_meas_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subquery. + visitSubquery(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subquery_basic_elements. + visitSubquery_basic_elements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subquery_operation_part. + visitSubquery_operation_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#query_block. + visitQuery_block(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#selected_list. + visitSelected_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#from_clause. + visitFrom_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#select_list_elements. + visitSelect_list_elements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_ref_list. + visitTable_ref_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_ref. + visitTable_ref(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_ref_aux. + visitTable_ref_aux(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_ref_aux_internal_one. + visitTable_ref_aux_internal_one(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_ref_aux_internal_two. + visitTable_ref_aux_internal_two(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_ref_aux_internal_thre. + visitTable_ref_aux_internal_thre(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#join_clause. + visitJoin_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#join_on_part. + visitJoin_on_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#join_using_part. + visitJoin_using_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#outer_join_type. + visitOuter_join_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#query_partition_clause. + visitQuery_partition_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#flashback_query_clause. + visitFlashback_query_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pivot_clause. + visitPivot_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pivot_element. + visitPivot_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pivot_for_clause. + visitPivot_for_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pivot_in_clause. + visitPivot_in_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pivot_in_clause_element. + visitPivot_in_clause_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#pivot_in_clause_elements. + visitPivot_in_clause_elements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#unpivot_clause. + visitUnpivot_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#unpivot_in_clause. + visitUnpivot_in_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#unpivot_in_elements. + visitUnpivot_in_elements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#hierarchical_query_clause. + visitHierarchical_query_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#start_part. + visitStart_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#group_by_clause. + visitGroup_by_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#group_by_elements. + visitGroup_by_elements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#rollup_cube_clause. + visitRollup_cube_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#grouping_sets_clause. + visitGrouping_sets_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#grouping_sets_elements. + visitGrouping_sets_elements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#having_clause. + visitHaving_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#model_clause. + visitModel_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cell_reference_options. + visitCell_reference_options(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#return_rows_clause. + visitReturn_rows_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#reference_model. + visitReference_model(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#main_model. + visitMain_model(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#model_column_clauses. + visitModel_column_clauses(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#model_column_partition_part. + visitModel_column_partition_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#model_column_list. + visitModel_column_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#model_column. + visitModel_column(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#model_rules_clause. + visitModel_rules_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#model_rules_part. + visitModel_rules_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#model_rules_element. + visitModel_rules_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cell_assignment. + visitCell_assignment(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#model_iterate_clause. + visitModel_iterate_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#until_part. + visitUntil_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#order_by_clause. + visitOrder_by_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#order_by_elements. + visitOrder_by_elements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#offset_clause. + visitOffset_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#fetch_clause. + visitFetch_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#for_update_clause. + visitFor_update_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#for_update_of_part. + visitFor_update_of_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#for_update_options. + visitFor_update_options(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#update_statement. + visitUpdate_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#update_set_clause. + visitUpdate_set_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#column_based_update_set_clause. + visitColumn_based_update_set_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#delete_statement. + visitDelete_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#insert_statement. + visitInsert_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#single_table_insert. + visitSingle_table_insert(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#multi_table_insert. + visitMulti_table_insert(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#multi_table_element. + visitMulti_table_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#conditional_insert_clause. + visitConditional_insert_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#conditional_insert_when_part. + visitConditional_insert_when_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#conditional_insert_else_part. + visitConditional_insert_else_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#insert_into_clause. + visitInsert_into_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#values_clause. + visitValues_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#merge_statement. + visitMerge_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#merge_update_clause. + visitMerge_update_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#merge_element. + visitMerge_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#merge_update_delete_part. + visitMerge_update_delete_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#merge_insert_clause. + visitMerge_insert_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#selected_tableview. + visitSelected_tableview(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lock_table_statement. + visitLock_table_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#wait_nowait_part. + visitWait_nowait_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lock_table_element. + visitLock_table_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#lock_mode. + visitLock_mode(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#general_table_ref. + visitGeneral_table_ref(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#static_returning_clause. + visitStatic_returning_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#error_logging_clause. + visitError_logging_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#error_logging_into_part. + visitError_logging_into_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#error_logging_reject_part. + visitError_logging_reject_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dml_table_expression_clause. + visitDml_table_expression_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_collection_expression. + visitTable_collection_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#subquery_restriction_clause. + visitSubquery_restriction_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sample_clause. + visitSample_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#seed_part. + visitSeed_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#condition. + visitCondition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#expressions_. + visitExpressions_(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#expression. + visitExpression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cursor_expression. + visitCursor_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#logical_expression. + visitLogical_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#unary_logical_expression. + visitUnary_logical_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#unary_logical_operation. + visitUnary_logical_operation(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#logical_operation. + visitLogical_operation(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#multiset_expression. + visitMultiset_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#relational_expression. + visitRelational_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#compound_expression. + visitCompound_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#relational_operator. + visitRelational_operator(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#in_elements. + visitIn_elements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#between_elements. + visitBetween_elements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#concatenation. + visitConcatenation(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#interval_expression. + visitInterval_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#model_expression. + visitModel_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#model_expression_element. + visitModel_expression_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#single_column_for_loop. + visitSingle_column_for_loop(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#multi_column_for_loop. + visitMulti_column_for_loop(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#unary_expression. + visitUnary_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#implicit_cursor_expression. + visitImplicit_cursor_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#collection_expression. + visitCollection_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#case_statement. + visitCase_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#simple_case_statement. + visitSimple_case_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#searched_case_statement. + visitSearched_case_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#case_when_part_statement. + visitCase_when_part_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#case_else_part_statement. + visitCase_else_part_statement(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#case_expression. + visitCase_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#simple_case_expression. + visitSimple_case_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#searched_case_expression. + visitSearched_case_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#case_when_part_expression. + visitCase_when_part_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#case_else_part_expression. + visitCase_else_part_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#atom. + visitAtom(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#quantified_expression. + visitQuantified_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#string_function. + visitString_function(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#standard_function. + visitStandard_function(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_function. + visitJson_function(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_object_content. + visitJson_object_content(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_object_entry. + visitJson_object_entry(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_table_clause. + visitJson_table_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_array_element. + visitJson_array_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_on_null_clause. + visitJson_on_null_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_return_clause. + visitJson_return_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_transform_op. + visitJson_transform_op(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_column_clause. + visitJson_column_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_column_definition. + visitJson_column_definition(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_query_returning_clause. + visitJson_query_returning_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_query_return_type. + visitJson_query_return_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_query_wrapper_clause. + visitJson_query_wrapper_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_query_on_error_clause. + visitJson_query_on_error_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_query_on_empty_clause. + visitJson_query_on_empty_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_value_return_clause. + visitJson_value_return_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_value_return_type. + visitJson_value_return_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#json_value_on_mismatch_clause. + visitJson_value_on_mismatch_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#literal. + visitLiteral(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#numeric_function_wrapper. + visitNumeric_function_wrapper(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#numeric_function. + visitNumeric_function(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#listagg_overflow_clause. + visitListagg_overflow_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#other_function. + visitOther_function(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#over_clause_keyword. + visitOver_clause_keyword(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#within_or_over_clause_keyword. + visitWithin_or_over_clause_keyword(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#standard_prediction_function_keyword. + visitStandard_prediction_function_keyword(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#over_clause. + visitOver_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#windowing_clause. + visitWindowing_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#windowing_type. + visitWindowing_type(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#windowing_elements. + visitWindowing_elements(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#using_clause. + visitUsing_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#using_element. + visitUsing_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#collect_order_by_part. + visitCollect_order_by_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#within_or_over_part. + visitWithin_or_over_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#string_delimiter. + visitString_delimiter(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cost_matrix_clause. + visitCost_matrix_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xml_passing_clause. + visitXml_passing_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xml_attributes_clause. + visitXml_attributes_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xml_namespaces_clause. + visitXml_namespaces_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xml_table_column. + visitXml_table_column(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xml_general_default_part. + visitXml_general_default_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xml_multiuse_expression_element. + visitXml_multiuse_expression_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmlroot_param_version_part. + visitXmlroot_param_version_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmlroot_param_standalone_part. + visitXmlroot_param_standalone_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmlserialize_param_enconding_part. + visitXmlserialize_param_enconding_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmlserialize_param_version_part. + visitXmlserialize_param_version_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmlserialize_param_ident_part. + visitXmlserialize_param_ident_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#annotations_clause. + visitAnnotations_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#annotations_list. + visitAnnotations_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#annotation. + visitAnnotation(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sql_plus_command_no_semicolon. + visitSql_plus_command_no_semicolon(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sql_plus_command. + visitSql_plus_command(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#start_command. + visitStart_command(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#whenever_command. + visitWhenever_command(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#set_command. + visitSet_command(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#timing_command. + visitTiming_command(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#clear_command. + visitClear_command(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#partition_extension_clause. + visitPartition_extension_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#column_alias. + visitColumn_alias(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_alias. + visitTable_alias(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#where_clause. + visitWhere_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#into_clause. + visitInto_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xml_column_name. + visitXml_column_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cost_class_name. + visitCost_class_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#attribute_name. + visitAttribute_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#savepoint_name. + visitSavepoint_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#rollback_segment_name. + visitRollback_segment_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#schema_name. + visitSchema_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#routine_name. + visitRoutine_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#package_name. + visitPackage_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#implementation_type_name. + visitImplementation_type_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#parameter_name. + visitParameter_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#reference_model_name. + visitReference_model_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#main_model_name. + visitMain_model_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#container_tableview_name. + visitContainer_tableview_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#aggregate_function_name. + visitAggregate_function_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#query_name. + visitQuery_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#grantee_name. + visitGrantee_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#role_name. + visitRole_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#constraint_name. + visitConstraint_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#label_name. + visitLabel_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#type_name. + visitType_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#sequence_name. + visitSequence_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#exception_name. + visitException_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#function_name. + visitFunction_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#procedure_name. + visitProcedure_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#trigger_name. + visitTrigger_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#variable_name. + visitVariable_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#index_name. + visitIndex_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#cursor_name. + visitCursor_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#record_name. + visitRecord_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#link_name. + visitLink_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#local_link_name. + visitLocal_link_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#connection_qualifier. + visitConnection_qualifier(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#column_name. + visitColumn_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#tableview_name. + visitTableview_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#xmltable. + visitXmltable(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#char_set_name. + visitChar_set_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#synonym_name. + visitSynonym_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#schema_object_name. + visitSchema_object_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#dir_object_name. + visitDir_object_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#user_object_name. + visitUser_object_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#grant_object_name. + visitGrant_object_name(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#column_list. + visitColumn_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#paren_column_list. + visitParen_column_list(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#keep_clause. + visitKeep_clause(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#function_argument. + visitFunction_argument(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#function_argument_analytic. + visitFunction_argument_analytic(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#function_argument_modeling. + visitFunction_argument_modeling(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#respect_or_ignore_nulls. + visitRespect_or_ignore_nulls(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#argument. + visitArgument(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#type_spec. + visitType_spec(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#datatype. + visitDatatype(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#precision_part. + visitPrecision_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#native_datatype_element. + visitNative_datatype_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#bind_variable. + visitBind_variable(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#general_element. + visitGeneral_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#general_element_part. + visitGeneral_element_part(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#table_element. + visitTable_element(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#object_privilege. + visitObject_privilege(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#system_privilege. + visitSystem_privilege(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#constant. + visitConstant(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#numeric. + visitNumeric(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#numeric_negative. + visitNumeric_negative(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#quoted_string. + visitQuoted_string(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#identifier. + visitIdentifier(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#id_expression. + visitId_expression(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#inquiry_directive. + visitInquiry_directive(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#outer_join_sign. + visitOuter_join_sign(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#regular_id. + visitRegular_id(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#non_reserved_keywords_in_18c. + visitNon_reserved_keywords_in_18c(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#non_reserved_keywords_in_12c. + visitNon_reserved_keywords_in_12c(ctx) { + return this.visitChildren(ctx); + } + + + // Visit a parse tree produced by OracleSqlParser#non_reserved_keywords_pre12c. + visitNon_reserved_keywords_pre12c(ctx) { + return this.visitChildren(ctx); + } + + + +} \ No newline at end of file diff --git a/packages/dbml-core/src/parse/Parser.js b/packages/dbml-core/src/parse/Parser.js index cb8b724df..0ddc1751c 100644 --- a/packages/dbml-core/src/parse/Parser.js +++ b/packages/dbml-core/src/parse/Parser.js @@ -79,6 +79,10 @@ class Parser { return parse(str, 'snowflake'); } + static parseOracleToJSON (str) { + return parse(str, 'oracle'); + } + static parse (str, format) { return new Parser().parse(str, format); } @@ -127,6 +131,10 @@ class Parser { rawDatabase = Parser.parseMSSQLToJSONv2(str); break; + case 'oracle': + rawDatabase = Parser.parseOracleToJSON(str); + break; + case 'json': if (typeof str === 'object') { rawDatabase = str; diff --git a/packages/dbml-core/types/import/index.d.ts b/packages/dbml-core/types/import/index.d.ts index 69ad487a7..cc4eb0683 100644 --- a/packages/dbml-core/types/import/index.d.ts +++ b/packages/dbml-core/types/import/index.d.ts @@ -1,4 +1,4 @@ -declare function _import(str: string, format: 'dbml' | 'mysql' | 'postgres' | 'json' | 'mssql' | 'postgresLegacy' | 'mssqlLegacy'): string; +declare function _import(str: string, format: 'dbml' | 'mysql' | 'postgres' | 'json' | 'mssql' | 'postgresLegacy' | 'mssqlLegacy' | 'oracle'): string; /** * @param {any} schemaJson diff --git a/packages/dbml-core/types/parse/Parser.d.ts b/packages/dbml-core/types/parse/Parser.d.ts index 38ab4b1d2..4535daa89 100644 --- a/packages/dbml-core/types/parse/Parser.d.ts +++ b/packages/dbml-core/types/parse/Parser.d.ts @@ -7,7 +7,8 @@ declare type ParseFormat = 'json' | 'dbml' | 'dbmlv2' | 'mssql' | 'mssqlLegacy' | 'schemarb' - | 'snowflake'; + | 'snowflake' + | 'oracle'; declare class Parser { public DBMLCompiler: Compiler; @@ -23,6 +24,7 @@ declare class Parser { static parseMSSQLToJSON(str: string): RawDatabase; static parseMSSQLToJSONv2(str: string): RawDatabase; static parseSnowflakeToJSON(str: string): RawDatabase; + static parseOracleToJSON(str: string): RawDatabase; /** * Should use parse() instance method instead of this static method whenever possible */ From 8a79a4d9d04966b1430b655ad45fc51c8609643d Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Thu, 6 Nov 2025 15:39:43 +0700 Subject: [PATCH 02/17] feat(dbml-cli): add oracle to sql2dbml --- .../expect-out-files/schema.dbml | 83 ++++++++++ .../in-files/schema.sql | 147 ++++++++++++++++++ .../filename --oracle --out-file/options.json | 8 + .../filename --oracle --out-file/stdout.txt | 1 + packages/dbml-cli/src/cli/index.js | 1 + 5 files changed, 240 insertions(+) create mode 100644 packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/expect-out-files/schema.dbml create mode 100644 packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/in-files/schema.sql create mode 100644 packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/options.json create mode 100644 packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt diff --git a/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/expect-out-files/schema.dbml b/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/expect-out-files/schema.dbml new file mode 100644 index 000000000..1a17848dd --- /dev/null +++ b/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/expect-out-files/schema.dbml @@ -0,0 +1,83 @@ +Table "departments" { + "dept_id" NUMBER(10) [pk] + "dept_name" VARCHAR2(100) + "location_id" NUMBER(10) + "manager_id" NUMBER(10) +} + +Table "locations" { + "location_id" NUMBER(10) [pk] + "city" VARCHAR2(100) + "country_code" CHAR(2) +} + +Table "countries" { + "country_code" CHAR(2) [pk] + "country_name" VARCHAR2(100) +} + +Table "employees" { + "emp_id" NUMBER(10) [pk] + "emp_name" VARCHAR2(100) + "department_id" NUMBER(10) + "manager_id" NUMBER(10) + "hire_date" DATE + "location_id" NUMBER(10) +} + +Table "projects" { + "project_id" NUMBER(10) [pk] + "project_name" VARCHAR2(200) + "dept_id" NUMBER(10) + "lead_emp_id" NUMBER(10) + "backup_emp_id" NUMBER(10) +} + +Table "assignments" { + "assignment_id" NUMBER(10) [pk] + "emp_id" NUMBER(10) + "project_id" NUMBER(10) + "start_date" DATE +} + +Table "project_tasks" { + "project_id" NUMBER(10) + "task_id" NUMBER(10) + "task_name" VARCHAR2(200) + "assigned_emp_id" NUMBER(10) + + Indexes { + (project_id, task_id) [pk] + } +} + +Table "task_hours" { + "hour_id" NUMBER(10) [pk] + "project_id" NUMBER(10) + "task_id" NUMBER(10) + "hours_worked" NUMBER(5,2) +} + +Ref "fk_emp_dept":"departments"."dept_id" < "employees"."department_id" + +Ref "fk_dept_location":"locations"."location_id" < "departments"."location_id" + +Ref "fk_loc_country":"countries"."country_code" < "locations"."country_code" + +Ref "fk_emp_manager":"employees"."emp_id" < "employees"."manager_id" + +Ref "fk_dept_manager":"employees"."emp_id" < "departments"."manager_id" + +Ref:"departments"."dept_id" < "projects"."dept_id" + +Ref:"employees"."emp_id" < "assignments"."emp_id" + +Ref:"projects"."project_id" < "assignments"."project_id" + +Ref "fk_task_hours_project_task":"project_tasks".("project_id", "task_id") < "task_hours".("project_id", "task_id") + +Ref "fk_proj_lead_emp":"employees"."emp_id" < "projects"."lead_emp_id" + +Ref "fk_proj_backup_emp":"employees"."emp_id" < "projects"."backup_emp_id" + +Ref "fk_task_assigned_emp":"employees"."emp_id" < "project_tasks"."assigned_emp_id" diff --git a/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/in-files/schema.sql b/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/in-files/schema.sql new file mode 100644 index 000000000..6909b7c9b --- /dev/null +++ b/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/in-files/schema.sql @@ -0,0 +1,147 @@ +-- Oracle SQL ALTER TABLE ADD FOREIGN KEY Constraint Test Cases +-- Test setup: Create base tables with primary keys +CREATE TABLE departments ( + dept_id NUMBER(10) PRIMARY KEY, + dept_name VARCHAR2(100), + location_id NUMBER(10), + manager_id NUMBER(10) +); + +CREATE TABLE locations ( + location_id NUMBER(10) PRIMARY KEY, + city VARCHAR2(100), + country_code CHAR(2) +); + +CREATE TABLE countries ( + country_code CHAR(2) PRIMARY KEY, + country_name VARCHAR2(100) +); + +CREATE TABLE employees ( + emp_id NUMBER(10) PRIMARY KEY, + emp_name VARCHAR2(100), + department_id NUMBER(10), + manager_id NUMBER(10), + hire_date DATE, + location_id NUMBER(10) +); + +CREATE TABLE projects ( + project_id NUMBER(10) PRIMARY KEY, + project_name VARCHAR2(200), + dept_id NUMBER(10), + lead_emp_id NUMBER(10), + backup_emp_id NUMBER(10) +); + +CREATE TABLE assignments ( + assignment_id NUMBER(10) PRIMARY KEY, + emp_id NUMBER(10), + project_id NUMBER(10), + start_date DATE +); + +-- Table with composite primary key +CREATE TABLE project_tasks ( + project_id NUMBER(10), + task_id NUMBER(10), + task_name VARCHAR2(200), + assigned_emp_id NUMBER(10), + PRIMARY KEY (project_id, task_id) +); + +CREATE TABLE task_hours ( + hour_id NUMBER(10) PRIMARY KEY, + project_id NUMBER(10), + task_id NUMBER(10), + hours_worked NUMBER(5,2) +); + +-- ============================================ +-- NAMED FOREIGN KEY CONSTRAINTS - BASIC +-- ============================================ + +-- Simple single-column FK with constraint name +ALTER TABLE employees +ADD CONSTRAINT fk_emp_dept +FOREIGN KEY (department_id) +REFERENCES departments(dept_id); + +-- Single-column FK referencing different table +ALTER TABLE departments +ADD CONSTRAINT fk_dept_location +FOREIGN KEY (location_id) +REFERENCES locations(location_id); + +-- FK with explicit column name in referenced table +ALTER TABLE locations +ADD CONSTRAINT fk_loc_country +FOREIGN KEY (country_code) +REFERENCES countries(country_code); + +-- Self-referencing FK (hierarchical) +ALTER TABLE employees +ADD CONSTRAINT fk_emp_manager +FOREIGN KEY (manager_id) +REFERENCES employees(emp_id); + +-- Another self-referencing FK on different table +ALTER TABLE departments +ADD CONSTRAINT fk_dept_manager +FOREIGN KEY (manager_id) +REFERENCES employees(emp_id); + +-- ============================================ +-- UNNAMED FOREIGN KEY CONSTRAINTS +-- ============================================ + +-- FK without explicit constraint name (Oracle auto-generates) +ALTER TABLE projects +ADD FOREIGN KEY (dept_id) +REFERENCES departments(dept_id); + +-- Another unnamed FK +ALTER TABLE assignments +ADD FOREIGN KEY (emp_id) +REFERENCES employees(emp_id); + +-- Unnamed FK with different columns +ALTER TABLE assignments +ADD FOREIGN KEY (project_id) +REFERENCES projects(project_id); + +-- ============================================ +-- COMPOSITE FOREIGN KEYS (Multiple Columns) +-- ============================================ + +-- Two-column composite FK +ALTER TABLE task_hours +ADD CONSTRAINT fk_task_hours_project_task +FOREIGN KEY (project_id, task_id) +REFERENCES project_tasks(project_id, task_id); + +-- ============================================ +-- FOREIGN KEYS WITH ON DELETE ACTIONS +-- ============================================ + +-- ON DELETE CASCADE - delete child records when parent is deleted +ALTER TABLE projects +ADD CONSTRAINT fk_proj_lead_emp +FOREIGN KEY (lead_emp_id) +REFERENCES employees(emp_id) +ON DELETE CASCADE; + +-- ON DELETE SET NULL - set FK to NULL when parent is deleted +ALTER TABLE projects +ADD CONSTRAINT fk_proj_backup_emp +FOREIGN KEY (backup_emp_id) +REFERENCES employees(emp_id) +ON DELETE SET NULL; + +-- ON DELETE CASCADE with named constraint +ALTER TABLE project_tasks +ADD CONSTRAINT fk_task_assigned_emp +FOREIGN KEY (assigned_emp_id) +REFERENCES employees(emp_id) +ON DELETE CASCADE; diff --git a/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/options.json b/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/options.json new file mode 100644 index 000000000..66e1dcdab --- /dev/null +++ b/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/options.json @@ -0,0 +1,8 @@ +{ + "args": [ + "./in-files/schema.sql", + "--oracle", + "-o", + "./out-files/schema.dbml" + ] +} diff --git a/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt b/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt new file mode 100644 index 000000000..dc70cd53b --- /dev/null +++ b/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt @@ -0,0 +1 @@ + ✔ Generated DBML file from SQL file (SQL Server): schema.dbml diff --git a/packages/dbml-cli/src/cli/index.js b/packages/dbml-cli/src/cli/index.js index f56bd8992..89261a344 100644 --- a/packages/dbml-cli/src/cli/index.js +++ b/packages/dbml-cli/src/cli/index.js @@ -38,6 +38,7 @@ function sql2dbml (args) { .option('--mssql') .option('--mssql-legacy') .option('--snowflake') + .option('--oracle') .option('-o, --out-file ', 'compile all input files into a single files'); // .option('-d, --out-dir ', 'compile an input directory of sql files into an output directory'); From 13ed4dce63514b847e3e02cc583d441a9f1439f3 Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Thu, 6 Nov 2025 15:43:53 +0700 Subject: [PATCH 03/17] fix(dbml-core): define own TABLE_CONSTRAINT_KIND and COLUMN_CONSTRAINT_KIND in Oracle parser --- .../parse/ANTLR/ASTGeneration/constants.js | 32 +++++++++---------- .../oraclesql/OracleSQLASTGen.js | 31 ++++++++++++++++-- 2 files changed, 44 insertions(+), 19 deletions(-) diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/constants.js b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/constants.js index 5e3547f9e..4a8220134 100644 --- a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/constants.js +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/constants.js @@ -1,23 +1,23 @@ export const TABLE_CONSTRAINT_KIND = { - FIELD: 'table_field', - INDEX: 'table_index', - FK: 'table_fk', - UNIQUE: 'table_unique', - PK: 'table_pk', - DEFAULT: 'table_default', - CHECK: 'table_check', + FIELD: 'field', + INDEX: 'index', + FK: 'fk', + UNIQUE: 'unique', + PK: 'pk', + DEFAULT: 'default', + CHECK: 'check', }; export const COLUMN_CONSTRAINT_KIND = { - NOT_NULL: 'col_not_null', - NULLABLE: 'col_nullable', - UNIQUE: 'col_unique', - PK: 'col_pk', - DEFAULT: 'col_dbdefault', - INCREMENT: 'col_increment', - INLINE_REF: 'col_inline_ref', - NOTE: 'col_note', - CHECK: 'col_check', + NOT_NULL: 'not_null', + NULLABLE: 'nullable', + UNIQUE: 'unique', + PK: 'pk', + DEFAULT: 'dbdefault', + INCREMENT: 'increment', + INLINE_REF: 'inline_ref', + NOTE: 'note', + CHECK: 'check', }; export const DATA_TYPE = { diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js index f05bda6fa..e6349e87e 100644 --- a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js @@ -1,4 +1,4 @@ -import { last, flatten, merge } from 'lodash'; +import { last, flatten } from 'lodash'; import { Field, Index, @@ -8,8 +8,6 @@ import { Endpoint, } from '../AST'; import { - TABLE_CONSTRAINT_KIND, - COLUMN_CONSTRAINT_KIND, DATA_TYPE, CONSTRAINT_TYPE, } from '../constants'; @@ -17,6 +15,33 @@ import { getOriginalText } from '../helpers'; import { CompilerError } from '../../../error'; import OracleSqlParserVisitor from '../../parsers/oraclesql/OracleSqlParserVisitor'; +// We cannot use TABLE_CONSTRAINT_KIND and COLUMN_CONSTRAINT_KIND from '../constants' as their values are indistinguishable from each other +// For example: TABLE_CONSTRAINT_KIND.UNIQUE === COLUMN_CONSTRAINT_KIND.UNIQUE +// Therefore, we redefine them to be different +// TODO: Migrate the other parser to use our version instead +const TABLE_CONSTRAINT_KIND = { + FIELD: 'table_field', + INDEX: 'table_index', + FK: 'table_fk', + UNIQUE: 'table_unique', + PK: 'table_pk', + DEFAULT: 'table_default', + CHECK: 'table_check', +}; +const COLUMN_CONSTRAINT_KIND = { + NOT_NULL: 'col_not_null', + NULLABLE: 'col_nullable', + UNIQUE: 'col_unique', + PK: 'col_pk', + DEFAULT: 'col_dbdefault', + INCREMENT: 'col_increment', + INLINE_REF: 'col_inline_ref', + NOTE: 'col_note', + CHECK: 'col_check', +}; + + + const findTable = (tables, schemaName, tableName) => { const realSchemaName = schemaName || null; const table = tables.find(table => { From 066d9aecc8b1051b49bb8ddbf0b4e1c38fd5c0cd Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Thu, 6 Nov 2025 16:11:52 +0700 Subject: [PATCH 04/17] test(dbml-cli): update stdout.txt of oracle --- .../__test__/sql2dbml/filename --oracle --out-file/stdout.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt b/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt index dc70cd53b..af4e6e89f 100644 --- a/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt +++ b/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt @@ -1 +1 @@ - ✔ Generated DBML file from SQL file (SQL Server): schema.dbml +✔ Generated DBML file from SQL file (Oracle): schema.dbml From 9f156e73ad8e9e35bb0dccc14dec0f8b132a96bb Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Fri, 7 Nov 2025 14:49:04 +0700 Subject: [PATCH 05/17] doc(dbml-core): add supported syntax and bugs for parsers --- .../parse/ANTLR/ASTGeneration/mssql/README.md | 157 ++++++++++++++++++ .../parse/ANTLR/ASTGeneration/mysql/README.md | 157 ++++++++++++++++++ .../ANTLR/ASTGeneration/oraclesql/README.md | 157 ++++++++++++++++++ .../ANTLR/ASTGeneration/postgres/README.md | 157 ++++++++++++++++++ .../ANTLR/ASTGeneration/snowflake/README.md | 157 ++++++++++++++++++ 5 files changed, 785 insertions(+) create mode 100644 packages/dbml-core/src/parse/ANTLR/ASTGeneration/mssql/README.md create mode 100644 packages/dbml-core/src/parse/ANTLR/ASTGeneration/mysql/README.md create mode 100644 packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/README.md create mode 100644 packages/dbml-core/src/parse/ANTLR/ASTGeneration/postgres/README.md create mode 100644 packages/dbml-core/src/parse/ANTLR/ASTGeneration/snowflake/README.md diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/mssql/README.md b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/mssql/README.md new file mode 100644 index 000000000..35dd49b57 --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/mssql/README.md @@ -0,0 +1,157 @@ +# MSSQL model structure generator + +This folder houses the implementation of the MSSQL model structure generator based on the ANTLR4 parser. + +This file documents the current features and bugs of this model structure generator. + +In the below table, the following notation is used: + - ✅: Supported. + - 🤷🏼‍♂️: Invalid SQL in MSSQL. + - ❓: Valid SQL in MSSQL, the generator can still generate output but it ignores this syntax. + - ❌: Valid SQL in MSSQL, but the generator fails to generate any output. + +| SQL syntax | MSSQL | +|-------------------------------|---------------| +| 1. INSERT statement | | +| 1.a. Basic INSERT ... VALUES | ✅ | +| 1.b. INSERT ... SELECT | ❌ | +| 1.c. Multi-row INSERT | ✅ | +| 1.d. Common table expression (WITH clause) | ❌ | +| 1.e. Target table alias | 🤷🏼‍♂️ | +| 1.f. INSERT … OUTPUT | ❓ (ignore the OUTPUT clause) | +| 1.g. INSERT ... ON CONFLICT (UPSERT)/INSERT ... ON DUPLICATE KEY/INSERT … IGNORE | 🤷🏼‍♂️ | +| 1.h. INSERT OVERWRITE | 🤷🏼‍♂️ | +| 1.i. Multi-table INSERT | ❌ | +| 1.j. Conditional multi-table INSERT (WHEN/FIRST/ALL) | ❌ | +| 6. CREATE TABLE | | +| 6.a. Basic syntax | ✅ | +| 6.a.i. Enumerated data type | 🤷🏼‍♂️ | +| 6.a.ii. Data type of the form name(...) | ✅ | +| 6.a.iii. Data type of the form name\[...\] | 🤷🏼‍♂️ | +| 6.b. PRIMARY KEY | | +| 6.b.i. Inline PRIMARY KEY | ✅ | +| 6.b.ii. Out-of-line PRIMARY KEY | ✅ | +| 6.b.iii. Composite PRIMARY KEY | ✅ | +| 6.b.iv. Named PRIMARY KEY | ✅ | +| 6.b.v. Other options (deferrable, etc.) | ❓ (ignore the options) | +| 6.c. FOREIGN KEY | | +| 6.c.i. Inline FOREIGN KEY | ❌ (bug) | +| 6.c.ii. Out-of-line FOREIGN KEY | ❌ (bug) | +| 6.c.iii. Composite FOREIGN KEY | ❌ (bug) | +| 6.c.iv. Named FOREIGN KEY | ❌ (bug) | +| 6.c.v. ON UPDATE | ❌ (bug) | +| 6.c.vi. ON DELETE | ❌ (bug) | +| 6.c.vii. Other options (deferrable, etc.) | ❌ (bug) | +| 6.d. UNIQUE | | +| 6.d.i. Inline UNIQUE | ✅ | +| 6.d.ii. Out-of-line UNIQUE | ✅ | +| 6.d.iii. Composite UNIQUE | ✅ | +| 6.d.iv. Named UNIQUE | ❓ (ignore the name) | +| 6.d.v. Other options (deferrable, etc) | ❓ (ignore the option) | +| 6.d.vi. NULLS NOT DISTINCT | 🤷🏼‍♂️ | +| 6.d.vii. UNIQUE KEY/UNIQUE INDEX | 🤷🏼‍♂️ | +| 6.e. CHECK | | +| 6.e.i. Inline CHECK | ❌ (parse fail) | +| 6.e.ii. Out-of-line CHECK | ❌ (parse fail) | +| 6.e.iii. Named CHECK | ❌ (parse fail) | +| 6.e.iv. Other options (enforcement control, etc.) | ❌ (parse fail) | +| 6.f. DEFAULT values | | +| 6.f.i. Inline DEFAULT | ✅ | +| 6.f.ii. Out-of-line DEFAULT | ❌ (Totally ignore) | +| 6.f.iii. Functional DEFAULT | ✅ | +| 6.f.iv. Named DEFAULT | ❓ (ignore the name) | +| 6.g. NULL | ✅ | +| 6.h. NOT NULL | | +| 6.h.i. Inline NOT NULL | ✅ | +| 6.h.ii. Out-of-line NOT NULL | 🤷🏼‍♂️ | +| 6.h.iii. Named NOT NULL | 🤷🏼‍♂️ | +| 6.h.iv. Other options (deferrable, etc.) | ❓ (Ignore) | +| 6.i. Indexes | | +| 6.i.i. Inline indexes | 🤷🏼‍♂️ (except for UNIQUE/PRIMARY KEY) | +| 6.i.ii. Out-of-line indexes | 🤷🏼‍♂️ (except for UNIQUE/PRIMARY KEY) | +| 6.i.iii. Named indexes | 🤷🏼‍♂️ | +| 6.i.iv. Multi-column indexes | 🤷🏼‍♂️ | +| 6.i.v. CLUSTERED/NONCLUSTERED | ❓ (ignore) | +| 6.i.vi. FULLTEXT | 🤷🏼‍♂️ | +| 6.i.vii. SPATIAL | 🤷🏼‍♂️ | +| 6.i.viii. Other options | 🤷🏼‍♂️ | +| 6.i.ix. USING HASH/BTREE | 🤷🏼‍♂️ | +| 6.j. Auto-increment | | +| 6.j.i. AUTO_INCREMENT | 🤷🏼‍♂️ | +| 6.j.ii. SERIAL/BIG SERIAL | 🤷🏼‍♂️ | +| 6.j.iii. IDENTITY | ✅ | +| 6.j.iv. Increment range | ✅ | +| 6.j.v. GENERATED ... AS IDENTITY | ❌ (parse fail) | +| 6.k. Computed column | ❓ | +| 6.l. TEMPORARY tables | ✅ (indication of temporary table via # prefix) | +| 6.m. CREATE TABLE AS SELECT (CTAS) | ❌ | +| 6.n. Comments | | +| 6.n.i. Table comments | 🤷🏼‍♂️ | +| 6.n.ii. Column comments | 🤷🏼‍♂️ | +| 6.o. Other options (inheritance, UNLOGGED, partition, collate, etc.) | ❓ | +| 7. ALTER TABLE | | +| 7.a. ADD COLUMN | | +| 7.a.i. Type | ❌ | +| 7.a.ii. DEFAULT | ❌ | +| 7.a.iii. NOT NULL | ❌ | +| 7.a.iv. NULL | ❌ | +| 7.a.v. CHECK | ❌ | +| 7.a.vi. UNIQUE | ❌ | +| 7.a.vii. FOREIGN KEY | ❌ (parse fail) | +| 7.a.viii. PRIMARY KEY | ❌ | +| 7.a.ix. AUTOINCREMENT/SERIAL/BIGSERIAL/IDENTITY/GENERATED AS IDENTITY | ❌ | +| 7.a.x. Computed column | ❌ | +| 7.b. DROP COLUMN | ❌ | +| 7.c. ALTER COLUMN / MODIFY COLUMN | | +| 7.c.i. COMMENT | 🤷🏼‍♂️ | +| 7.c.ii. Others | ❌ | +| 7.d. RENAME COLUMN | ❌ | +| 7.e. ADD CONSTRAINT | | +| 7.e.i. DEFAULT | ✅ (ignore name) | +| 7.e.ii. NOT NULL | ❌ | +| 7.e.iii. NULL | ❌ | +| 7.e.iv. named CHECK | ✅ | +| 7.e.v. unnamed CHECK | ✅ | +| 7.e.vi. named UNIQUE | ✅ | +| 7.e.vii. unnamed UNIQUE | ✅ | +| 7.e.viii. named PRIMARY KEY | ✅ | +| 7.e.ix. unnamed PRIMARY KEY | ✅ | +| 7.e.x. named FOREIGN KEY | ✅ | +| 7.e.xi. unnamed FOREIGN KEY | ✅ | +| 7.g. DROP CONSTRAINT | ❌ | +| 7.h. ALTER CONSTRAINT | ❌ | +| 7.i. RENAME TABLE | ❌ | +| 7.j. SET SCHEMA | ❌ | +| 7.k. ALTER INDEX | ❌ | +| 7.l. DROP INDEX | ❌ | +| 7.m. SET COMMENT/COMMENT = | 🤷🏼‍♂️ | +| 7.n. ADD INDEX | ❌ | +| 8. DROP TABLE | | +| 8.a. Basic syntax | ❌ | +| 9. CREATE INDEX | | +| 9.a. Basic syntax | ✅ | +| 9.b. Composite index | ✅ | +| 9.c. Named index | ✅ | +| 9.d. UNIQUE index | ✅ | +| 9.e. Partial/Filtered index | ❓ (ignore) | +| 9.f. BTREE/HASH/GIST/BRIN/… index | ❌ (parse fail) | +| 9.g. INCLUDE columns | ❓ (ignore) | +| 9.h. CLUSTERED/NONCLUSTERED | ❓ (ignore) | +| 9.i. Functional index | 🤷🏼‍♂️ (However, the MSSQL exporter is currently exporting this syntax) | +| 9.j. FULLTEXT/SPATIAL index | ❌ (parse fail) | +| 9.k. COLLATE | 🤷🏼‍♂️ | +| 9.l. COMMENT | 🤷🏼‍♂️ | +| 9.m. NULLS LAST/FIRST | 🤷🏼‍♂️ | +| 9.n. ASC/DESC | ❓ (ignore) | +| 10. DROP INDEX | | +| 10.a. Basic syntax | ❌ | +| 11. ALTER INDEX | | +| 11.a. RENAME | ❌ | +| 11.b. ALTER COLUMN | ❌ | +| 12. CREATE VIEW | | +| 12.a. Basic syntax | ❌ | +| 13. Comment | | +| 13.a. Table comments | ✅ (but unreliable) | +| 13.b. Column comments | ✅ (but unreliable) | +| 13.c. COMMENT … IS NULL | ✅ (but unreliable) | +| 13.d. Index comments | ❌ | diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/mysql/README.md b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/mysql/README.md new file mode 100644 index 000000000..b3182fd29 --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/mysql/README.md @@ -0,0 +1,157 @@ +# MySQL model structure generator + +This folder houses the implementation of the MySQL model structure generator based on the ANTLR4 parser. + +This file documents the current features and bugs of this model structure generator. + +In the below table, the following notation is used: + - ✅: Supported. + - 🤷🏼‍♂️: Invalid SQL in MySQL. + - ❓: Valid SQL in MySQL, the generator can still generate output but it ignores this syntax. + - ❌: Valid SQL in MySQL, but the generator fails to generate any output. + +| SQL syntax | MySQL | +|-------------------------------|---------------| +| 1. INSERT statement | | +| 1.a. Basic INSERT ... VALUES | ✅ | +| 1.b. INSERT ... SELECT | ❌ | +| 1.c. Multi-row INSERT | ✅ | +| 1.d. Common table expression (WITH clause) | ❌ | +| 1.e. Target table alias | 🤷🏼‍♂️ | +| 1.f. INSERT ... RETURNING/INSERT … OUTPUT | 🤷🏼‍♂️ | +| 1.g. INSERT ... ON CONFLICT (UPSERT)/INSERT ... ON DUPLICATE KEY/INSERT … IGNORE | ❓ (ignore the ON DUPLICATE KEY and IGNORE clauses) | +| 1.h. INSERT OVERWRITE | 🤷🏼‍♂️ | +| 1.i. Multi-table INSERT | ❌ | +| 1.j. Conditional multi-table INSERT (WHEN/FIRST/ALL) | ❌ | +| 6. CREATE TABLE | | +| 6.a. Basic syntax | ✅ | +| 6.a.i. Enumerated data type | 🤷🏼‍♂️ | +| 6.a.ii. Data type of the form name(...) | ✅ | +| 6.a.iii. Data type of the form name\[...\] | 🤷🏼‍♂️ | +| 6.b. PRIMARY KEY | | +| 6.b.i. Inline PRIMARY KEY | ✅ | +| 6.b.ii. Out-of-line PRIMARY KEY | ✅ | +| 6.b.iii. Composite PRIMARY KEY | ✅ | +| 6.b.iv. Named PRIMARY KEY | ✅ | +| 6.b.v. Other options (deferrable, etc.) | ❓ (ignore the options) | +| 6.c. FOREIGN KEY | | +| 6.c.i. Inline FOREIGN KEY | ✅ | +| 6.c.ii. Out-of-line FOREIGN KEY | ✅ | +| 6.c.iii. Composite FOREIGN KEY | ✅ | +| 6.c.iv. Named FOREIGN KEY | ✅ | +| 6.c.v. ON UPDATE | ✅ | +| 6.c.vi. ON DELETE | ✅ | +| 6.c.vii. Other options (deferrable, etc.) | ❓ (ignore the options) | +| 6.d. UNIQUE | | +| 6.d.i. Inline UNIQUE | ✅ | +| 6.d.ii. Out-of-line UNIQUE | ✅ | +| 6.d.iii. Composite UNIQUE | ✅ | +| 6.d.iv. Named UNIQUE | ✅ | +| 6.d.v. Other options (deferrable, etc) | ❓ (ignore the option) | +| 6.d.vi. NULLS NOT DISTINCT | ❌ (parse fail) | +| 6.d.vii. UNIQUE KEY/UNIQUE INDEX | ✅ | +| 6.e. CHECK | | +| 6.e.i. Inline CHECK | ✅ | +| 6.e.ii. Out-of-line CHECK | ✅ | +| 6.e.iii. Named CHECK | ✅ (ignored for inline checks) | +| 6.e.iv. Other options (enforcement control, etc.) | ❓ (ignore the options) | +| 6.f. DEFAULT values | | +| 6.f.i. Inline DEFAULT | ✅ | +| 6.f.ii. Out-of-line DEFAULT | 🤷🏼‍♂️ | +| 6.f.iii. Functional DEFAULT | ✅ | +| 6.f.iv. Named DEFAULT | 🤷🏼‍♂️ | +| 6.g. NULL | ✅ | +| 6.h. NOT NULL | | +| 6.h.i. Inline NOT NULL | ✅ | +| 6.h.ii. Out-of-line NOT NULL | 🤷🏼‍♂️ | +| 6.h.iii. Named NOT NULL | 🤷🏼‍♂️ | +| 6.h.iv. Other options (deferrable, etc.) | ❓ (ignore) | +| 6.i. Indexes | | +| 6.i.i. Inline indexes | ❌ (parse fail) | +| 6.i.ii. Out-of-line indexes | ✅ | +| 6.i.iii. Named indexes | ✅ | +| 6.i.iv. Multi-column indexes | ✅ | +| 6.i.v. CLUSTERED/NONCLUSTERED | 🤷🏼‍♂️ | +| 6.i.vi. FULLTEXT | ❓ (ignore) | +| 6.i.vii. SPATIAL | ❓ (ignore) | +| 6.i.viii. Other options | ❓ (ignore) | +| 6.i.ix. USING HASH/BTREE | ✅ | +| 6.j. Auto-increment | | +| 6.j.i. AUTO_INCREMENT | ✅ | +| 6.j.ii. SERIAL/BIG SERIAL | 🤷🏼‍♂️ | +| 6.j.iii. IDENTITY | 🤷🏼‍♂️ | +| 6.j.iv. Increment range | ❓ (ignore) | +| 6.j.v. GENERATED ... AS IDENTITY | 🤷🏼‍♂️ | +| 6.k. Computed column | ❓ | +| 6.l. TEMPORARY tables | ❌ (Totally ignored) | +| 6.m. CREATE TABLE AS SELECT (CTAS) | ❌ | +| 6.n. Comments | | +| 6.n.i. Table comments | ✅ | +| 6.n.ii. Column comments | ✅ | +| 6.o. Other options (inheritance, UNLOGGED, partition, collate, etc.) | ❓ | +| 7. ALTER TABLE | | +| 7.a. ADD COLUMN | | +| 7.a.i. Type | ❌ | +| 7.a.ii. DEFAULT | ❌ | +| 7.a.iii. NOT NULL | ❌ | +| 7.a.iv. NULL | ❌ | +| 7.a.v. CHECK | ❌ | +| 7.a.vi. UNIQUE | ❌ (parse fail when giving a name) | +| 7.a.vii. FOREIGN KEY | ❌ (parse fail for FOREIGN KEY name REFERENCES ...) | +| 7.a.viii. PRIMARY KEY | ❌ | +| 7.a.ix. AUTOINCREMENT/SERIAL/BIGSERIAL/IDENTITY/GENERATED AS IDENTITY | ❌ | +| 7.a.x. Computed column | ❌ | +| 7.b. DROP COLUMN | ❌ | +| 7.c. ALTER COLUMN / MODIFY COLUMN | | +| 7.c.i. COMMENT | ❌ | +| 7.c.ii. Others | ❌ | +| 7.d. RENAME COLUMN | ❌ | +| 7.e. ADD CONSTRAINT | | +| 7.e.i. DEFAULT | ❌ (parse fail) | +| 7.e.ii. NOT NULL | ❌ | +| 7.e.iii. NULL | ❌ | +| 7.e.iv. named CHECK | ✅ | +| 7.e.v. unnamed CHECK | ✅ | +| 7.e.vi. named UNIQUE | ❌ | +| 7.e.vii. unnamed UNIQUE | ❌ | +| 7.e.viii. named PRIMARY KEY | ❓ (ignore name) | +| 7.e.ix. unnamed PRIMARY KEY | ✅ | +| 7.e.x. named FOREIGN KEY | ✅ | +| 7.e.xi. unnamed FOREIGN KEY | ✅ | +| 7.g. DROP CONSTRAINT | ❌ | +| 7.h. ALTER CONSTRAINT | ❌ | +| 7.i. RENAME TABLE | ❌ | +| 7.j. SET SCHEMA | ❌ | +| 7.k. ALTER INDEX | ❌ | +| 7.l. DROP INDEX | ❌ | +| 7.m. SET COMMENT/COMMENT = | ❌ | +| 7.n. ADD INDEX | ❌ | +| 8. DROP TABLE | | +| 8.a. Basic syntax | ❌ | +| 9. CREATE INDEX | | +| 9.a. Basic syntax | ✅ | +| 9.b. Composite index | ✅ | +| 9.c. Named index | ✅ | +| 9.d. UNIQUE index | ✅ | +| 9.e. Partial/Filtered index | ❌ (parse fail) | +| 9.f. BTREE/HASH/GIST/BRIN/… index | ✅ | +| 9.g. INCLUDE columns | 🤷🏼‍♂️ | +| 9.h. CLUSTERED/NONCLUSTERED | ❓ (ignore) | +| 9.i. Functional index | ✅ | +| 9.j. FULLTEXT/SPATIAL index | ❓ (ignore) | +| 9.k. COLLATE | ❌ (parse fail) | +| 9.l. COMMENT | ❓ (ignore) | +| 9.m. NULLS LAST/FIRST | 🤷🏼‍♂️ | +| 9.n. ASC/DESC | ❓ (ignore) | +| 10. DROP INDEX | | +| 10.a. Basic syntax | ❌ | +| 11. ALTER INDEX | 🤷🏼‍♂️ | +| 11.a. RENAME | 🤷🏼‍♂️ | +| 11.b. ALTER COLUMN | 🤷🏼‍♂️ | +| 12. CREATE VIEW | | +| 12.a. Basic syntax | ❌ | +| 13. Comment | | +| 13.a. Table comments | 🤷🏼‍♂️ | +| 13.b. Column comments | 🤷🏼‍♂️ | +| 13.c. COMMENT … IS NULL | 🤷🏼‍♂️ | +| 13.d. Index comments | ❌ (parse fail) | diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/README.md b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/README.md new file mode 100644 index 000000000..eb4be8284 --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/README.md @@ -0,0 +1,157 @@ +# OracleSQL model structure generator + +This folder houses the implementation of the OracleSQL model structure generator based on the ANTLR4 parser. + +This file documents the current features and bugs of this model structure generator. + +In the below table, the following notation is used: + - ✅: Supported. + - 🤷🏼‍♂️: Invalid SQL in OracleSQL. + - ❓: Valid SQL in OracleSQL, the generator can still generate output but it ignores this syntax. + - ❌: Valid SQL in OracleSQL, but the generator fails to generate any output. + +| SQL syntax | OracleSQL | +|-------------------------------|---------------| +| 1. INSERT statement | | +| 1.a. Basic INSERT ... VALUES | ✅ | +| 1.b. INSERT ... SELECT | ❌ | +| 1.c. Multi-row INSERT | 🤷🏼‍♂️ | +| 1.d. Common table expression (WITH clause) | ❌ | +| 1.e. Target table alias | ❌ | +| 1.f. INSERT ... RETURNING/INSERT … OUTPUT | ❓ | +| 1.g. INSERT ... ON CONFLICT (UPSERT)/INSERT ... ON DUPLICATE KEY/INSERT … IGNORE | 🤷🏼‍♂️ | +| 1.h. INSERT OVERWRITE | 🤷🏼‍♂️ | +| 1.i. Multi-table INSERT | ❌ | +| 1.j. Conditional multi-table INSERT (WHEN/FIRST/ALL) | ❌ | +| 6. CREATE TABLE | | +| 6.a. Basic syntax | ✅ | +| 6.a.i. Enumerated data type | 🤷🏼‍♂️ (but supported in Oracle 23ai) | +| 6.a.ii. Data type of the form name(...) | ✅ | +| 6.a.iii. Data type of the form name\[...\] | 🤷🏼‍♂️ | +| 6.b. PRIMARY KEY | | +| 6.b.i. Inline PRIMARY KEY | ✅ | +| 6.b.ii. Out-of-line PRIMARY KEY | ✅ | +| 6.b.iii. Composite PRIMARY KEY | ✅ | +| 6.b.iv. Named PRIMARY KEY | ✅ | +| 6.b.v. Other options (deferrable, etc.) | ❓ (ignore the options) | +| 6.c. FOREIGN KEY | | +| 6.c.i. Inline FOREIGN KEY | ✅ | +| 6.c.ii. Out-of-line FOREIGN KEY | ✅ | +| 6.c.iii. Composite FOREIGN KEY | ✅ | +| 6.c.iv. Named FOREIGN KEY | ✅ | +| 6.c.v. ON UPDATE | 🤷🏼‍♂️ | +| 6.c.vi. ON DELETE | ✅ | +| 6.c.vii. Other options (deferrable, etc.) | ❓ | +| 6.d. UNIQUE | | +| 6.d.i. Inline UNIQUE | ✅ | +| 6.d.ii. Out-of-line UNIQUE | ✅ | +| 6.d.iii. Composite UNIQUE | ✅ | +| 6.d.iv. Named UNIQUE | ✅ | +| 6.d.v. Other options (deferrable, etc) | ❓ | +| 6.d.vi. NULLS NOT DISTINCT | ❓ | +| 6.d.vii. UNIQUE KEY/UNIQUE INDEX | 🤷🏼‍♂️ | +| 6.e. CHECK | | +| 6.e.i. Inline CHECK | ✅ | +| 6.e.ii. Out-of-line CHECK | ✅ | +| 6.e.iii. Named CHECK | ✅ | +| 6.e.iv. Other options (enforcement control, etc.) | ❓ | +| 6.f. DEFAULT values | | +| 6.f.i. Inline DEFAULT | ✅ | +| 6.f.ii. Out-of-line DEFAULT | 🤷🏼‍♂️ | +| 6.f.iii. Functional DEFAULT | ✅ | +| 6.f.iv. Named DEFAULT | 🤷🏼‍♂️ | +| 6.g. NULL | ✅ | +| 6.h. NOT NULL | | +| 6.h.i. Inline NOT NULL | ✅ | +| 6.h.ii. Out-of-line NOT NULL | 🤷🏼‍♂️ | +| 6.h.iii. Named NOT NULL | 🤷🏼‍♂️ | +| 6.h.iv. Other options (deferrable, etc.) | ❓ | +| 6.i. Indexes | | +| 6.i.i. Inline indexes | 🤷🏼‍♂️ | +| 6.i.ii. Out-of-line indexes | ✅ | +| 6.i.iii. Named indexes | ✅ | +| 6.i.iv. Multi-column indexes | ✅ | +| 6.i.v. CLUSTERED/NONCLUSTERED | 🤷🏼‍♂️ | +| 6.i.vi. FULLTEXT | 🤷🏼‍♂️ | +| 6.i.vii. SPATIAL | 🤷🏼‍♂️ | +| 6.i.viii. Other options | ❓ | +| 6.i.ix. USING HASH/BTREE | 🤷🏼‍♂️ | +| 6.j. Auto-increment | | +| 6.j.i. AUTO_INCREMENT | 🤷🏼‍♂️ | +| 6.j.ii. SERIAL/BIG SERIAL | 🤷🏼‍♂️ | +| 6.j.iii. IDENTITY | 🤷🏼‍♂️ | +| 6.j.iv. Increment range | ❓ | +| 6.j.v. GENERATED ... AS IDENTITY | ✅ | +| 6.k. Computed column | ❓ | +| 6.l. TEMPORARY tables | ❓ (No indication of temporary table) | +| 6.m. CREATE TABLE AS SELECT (CTAS) | ❌ | +| 6.n. Comments | | +| 6.n.i. Table comments | ✅ | +| 6.n.ii. Column comments | ✅ | +| 6.o. Other options (inheritance, UNLOGGED, partition, collate, etc.) | ❓ | +| 7. ALTER TABLE | | +| 7.a. ADD COLUMN | | +| 7.a.i. Type | ❌ | +| 7.a.ii. DEFAULT | ❌ | +| 7.a.iii. NOT NULL | ❌ | +| 7.a.iv. NULL | ❌ | +| 7.a.v. CHECK | ❌ | +| 7.a.vi. UNIQUE | ❌ | +| 7.a.vii. FOREIGN KEY | ❌ | +| 7.a.viii. PRIMARY KEY | ❌ | +| 7.a.ix. AUTOINCREMENT/SERIAL/BIGSERIAL/IDENTITY/GENERATED AS IDENTITY | ❌ | +| 7.a.x. Computed column | ❌ | +| 7.b. DROP COLUMN | ❌ | +| 7.c. ALTER COLUMN / MODIFY COLUMN | | +| 7.c.i. COMMENT | 🤷🏼‍♂️ | +| 7.c.ii. Others | ❌ | +| 7.d. RENAME COLUMN | ❌ | +| 7.e. ADD CONSTRAINT | | +| 7.e.i. DEFAULT | ✅ | +| 7.e.ii. NOT NULL | ✅ | +| 7.e.iii. NULL | ✅ | +| 7.e.iv. named CHECK | ✅ | +| 7.e.v. unnamed CHECK | ✅ | +| 7.e.vi. named UNIQUE | ✅ | +| 7.e.vii. unnamed UNIQUE | ✅ | +| 7.e.viii. named PRIMARY KEY | ✅ | +| 7.e.ix. unnamed PRIMARY KEY | ✅ | +| 7.e.x. named FOREIGN KEY | ✅ | +| 7.e.xi. unnamed FOREIGN KEY | ✅ | +| 7.g. DROP CONSTRAINT | ❌ | +| 7.h. ALTER CONSTRAINT | ❌ | +| 7.i. RENAME TABLE | ❌ | +| 7.j. SET SCHEMA | ❌ | +| 7.k. ALTER INDEX | 🤷🏼‍♂️ | +| 7.l. DROP INDEX | 🤷🏼‍♂️ | +| 7.m. SET COMMENT/COMMENT = | 🤷🏼‍♂️ | +| 7.n. ADD INDEX | 🤷🏼‍♂️ | +| 8. DROP TABLE | | +| 8.a. Basic syntax | ❌ | +| 9. CREATE INDEX | | +| 9.a. Basic syntax | ✅ | +| 9.b. Composite index | ✅ | +| 9.c. Named index | ✅ | +| 9.d. UNIQUE index | ✅ | +| 9.e. Partial/Filtered index | ❓ (ignore) | +| 9.f. BTREE/HASH/GIST/BRIN/… index | 🤷🏼‍♂️ | +| 9.g. INCLUDE columns | 🤷🏼‍♂️ | +| 9.h. CLUSTERED/NONCLUSTERED | 🤷🏼‍♂️ | +| 9.i. Functional index | ✅ | +| 9.j. FULLTEXT/SPATIAL index | 🤷🏼‍♂️ | +| 9.k. COLLATE | ❓ | +| 9.l. COMMENT | ❓ | +| 9.m. NULLS LAST/FIRST | 🤷🏼‍♂️ | +| 9.n. ASC/DESC | ❓ | +| 10. DROP INDEX | | +| 10.a. Basic syntax | ❌ | +| 11. ALTER INDEX | | +| 11.a. RENAME | ❌ | +| 11.b. ALTER COLUMN | 🤷🏼‍♂️ | +| 12. CREATE VIEW | | +| 12.a. Basic syntax | ❌ | +| 13. Comment | | +| 13.a. Table comments | ✅ | +| 13.b. Column comments | ✅ | +| 13.c. COMMENT … IS NULL | ✅ | +| 13.d. Index comments | ❌ | diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/postgres/README.md b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/postgres/README.md new file mode 100644 index 000000000..641711a4e --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/postgres/README.md @@ -0,0 +1,157 @@ +# PostgreSQL model structure generator + +This folder houses the implementation of the PostgreSQL model structure generator based on the ANTLR4 parser. + +This file documents the current features and bugs of this model structure generator. + +In the below table, the following notation is used: + - ✅: Supported. + - 🤷🏼‍♂️: Invalid SQL in PostgreSQL. + - ❓: Valid SQL in PostgreSQL, the generator can still generate output but it ignores this syntax. + - ❌: Valid SQL in PostgreSQL, but the generator fails to generate any output. + +| SQL syntax | PostgreSQL | +|-------------------------------|---------------| +| 1. INSERT statement | | +| 1.a. Basic INSERT ... VALUES | ✅ | +| 1.b. INSERT ... SELECT | ❌ | +| 1.c. Multi-row INSERT | ✅ | +| 1.d. Common table expression (WITH clause) | ❌ | +| 1.e. Target table alias | ❌ | +| 1.f. INSERT ... RETURNING/INSERT … OUTPUT | ❓ (ignore the RETURNING clause) | +| 1.g. INSERT ... ON CONFLICT (UPSERT)/INSERT ... ON DUPLICATE KEY/INSERT … IGNORE | ❓ (ignore the ON CONFLICT clause) | +| 1.h. INSERT OVERWRITE | 🤷🏼‍♂️ | +| 1.i. Multi-table INSERT | ❌ | +| 1.j. Conditional multi-table INSERT (WHEN/FIRST/ALL) | ❌ | +| 6. CREATE TABLE | | +| 6.a. Basic syntax | ✅ | +| 6.a.i. Enumerated data type | ✅ | +| 6.a.ii. Data type of the form name(...) | ✅ | +| 6.a.iii. Data type of the form name\[...\] | ✅ | +| 6.b. PRIMARY KEY | | +| 6.b.i. Inline PRIMARY KEY | ✅ | +| 6.b.ii. Out-of-line PRIMARY KEY | ✅ | +| 6.b.iii. Composite PRIMARY KEY | ✅ | +| 6.b.iv. Named PRIMARY KEY | ✅ | +| 6.b.v. Other options (deferrable, etc.) | ❓ (ignore the options) | +| 6.c. FOREIGN KEY | | +| 6.c.i. Inline FOREIGN KEY | ✅ | +| 6.c.ii. Out-of-line FOREIGN KEY | ✅ | +| 6.c.iii. Composite FOREIGN KEY | ✅ | +| 6.c.iv. Named FOREIGN KEY | ✅ | +| 6.c.v. ON UPDATE | ✅ | +| 6.c.vi. ON DELETE | ✅ | +| 6.c.vii. Other options (deferrable, etc.) | ❓ (ignore the options) | +| 6.d. UNIQUE | | +| 6.d.i. Inline UNIQUE | ✅ | +| 6.d.ii. Out-of-line UNIQUE | ✅ | +| 6.d.iii. Composite UNIQUE | ✅ | +| 6.d.iv. Named UNIQUE | ✅ | +| 6.d.v. Other options (deferrable, etc) | ❓ (ignore the option) | +| 6.d.vi. NULLS NOT DISTINCT | 🤷🏼‍♂️ | +| 6.d.vii. UNIQUE KEY/UNIQUE INDEX | 🤷🏼‍♂️ | +| 6.e. CHECK | | +| 6.e.i. Inline CHECK | ✅ | +| 6.e.ii. Out-of-line CHECK | ✅ | +| 6.e.iii. Named CHECK | ✅ (ignored for inline checks) | +| 6.e.iv. Other options (enforcement control, etc.) | ❓ (ignore the options) | +| 6.f. DEFAULT values | | +| 6.f.i. Inline DEFAULT | ✅ | +| 6.f.ii. Out-of-line DEFAULT | 🤷🏼‍♂️ | +| 6.f.iii. Functional DEFAULT | ✅ | +| 6.f.iv. Named DEFAULT | 🤷🏼‍♂️ | +| 6.g. NULL | ✅ | +| 6.h. NOT NULL | | +| 6.h.i. Inline NOT NULL | ✅ | +| 6.h.ii. Out-of-line NOT NULL | 🤷🏼‍♂️ | +| 6.h.iii. Named NOT NULL | 🤷🏼‍♂️ | +| 6.h.iv. Other options (deferrable, etc.) | ❓ (ignore) | +| 6.i. Indexes | | +| 6.i.i. Inline indexes | 🤷🏼‍♂️ (except for UNIQUE/PRIMARY KEY) | +| 6.i.ii. Out-of-line indexes | 🤷🏼‍♂️ (except for UNIQUE/PRIMARY KEY) | +| 6.i.iii. Named indexes | 🤷🏼‍♂️ | +| 6.i.iv. Multi-column indexes | 🤷🏼‍♂️ | +| 6.i.v. CLUSTERED/NONCLUSTERED | 🤷🏼‍♂️ | +| 6.i.vi. FULLTEXT | 🤷🏼‍♂️ | +| 6.i.vii. SPATIAL | 🤷🏼‍♂️ | +| 6.i.viii. Other options | 🤷🏼‍♂️ | +| 6.i.ix. USING HASH/BTREE | 🤷🏼‍♂️ | +| 6.j. Auto-increment | | +| 6.j.i. AUTO_INCREMENT | 🤷🏼‍♂️ | +| 6.j.ii. SERIAL/BIG SERIAL | ✅ (extraneous increment) | +| 6.j.iii. IDENTITY | 🤷🏼‍♂️ | +| 6.j.iv. Increment range | ❓ (ignore) | +| 6.j.v. GENERATED ... AS IDENTITY | ✅ | +| 6.k. Computed column | ❓ | +| 6.l. TEMPORARY tables | ❓ (No indication of temporary table) | +| 6.m. CREATE TABLE AS SELECT (CTAS) | ❌ | +| 6.n. Comments | | +| 6.n.i. Table comments | 🤷🏼‍♂️ | +| 6.n.ii. Column comments | 🤷🏼‍♂️ | +| 6.o. Other options (inheritance, UNLOGGED, partition, collate, etc.) | ❓ | +| 7. ALTER TABLE | | +| 7.a. ADD COLUMN | | +| 7.a.i. Type | ❌ | +| 7.a.ii. DEFAULT | ❌ | +| 7.a.iii. NOT NULL | ❌ | +| 7.a.iv. NULL | ❌ | +| 7.a.v. CHECK | ❌ | +| 7.a.vi. UNIQUE | ❌ | +| 7.a.vii. FOREIGN KEY | ❌ (unsupported for REFERENCES...) | +| 7.a.viii. PRIMARY KEY | ❌ | +| 7.a.ix. AUTOINCREMENT/SERIAL/BIGSERIAL/IDENTITY/GENERATED AS IDENTITY | ❌ | +| 7.a.x. Computed column | ❌ | +| 7.b. DROP COLUMN | ❌ | +| 7.c. ALTER COLUMN / MODIFY COLUMN | | +| 7.c.i. COMMENT | 🤷🏼‍♂️ | +| 7.c.ii. Others | ❌ | +| 7.d. RENAME COLUMN | ❌ | +| 7.e. ADD CONSTRAINT | | +| 7.e.i. DEFAULT | ❌ (parse fail) | +| 7.e.ii. NOT NULL | ❌ | +| 7.e.iii. NULL | ❌ | +| 7.e.iv. named CHECK | ✅ | +| 7.e.v. unnamed CHECK | ✅ | +| 7.e.vi. named UNIQUE | ✅ (ignore name) | +| 7.e.vii. unnamed UNIQUE | ✅ | +| 7.e.viii. named PRIMARY KEY | ❓ (ignore name) | +| 7.e.ix. unnamed PRIMARY KEY | ✅ | +| 7.e.x. named FOREIGN KEY | ✅ | +| 7.e.xi. unnamed FOREIGN KEY | ✅ | +| 7.g. DROP CONSTRAINT | ❌ | +| 7.h. ALTER CONSTRAINT | ❌ | +| 7.i. RENAME TABLE | ❌ | +| 7.j. SET SCHEMA | ❌ | +| 7.k. ALTER INDEX | ❌ | +| 7.l. DROP INDEX | ❌ | +| 7.m. SET COMMENT/COMMENT = | 🤷🏼‍♂️ | +| 7.n. ADD INDEX | ❌ | +| 8. DROP TABLE | | +| 8.a. Basic syntax | ❌ | +| 9. CREATE INDEX | | +| 9.a. Basic syntax | ✅ | +| 9.b. Composite index | ✅ | +| 9.c. Named index | ✅ | +| 9.d. UNIQUE index | ✅ | +| 9.e. Partial/Filtered index | ❓ (ignore) | +| 9.f. BTREE/HASH/GIST/BRIN/… index | ✅ | +| 9.g. INCLUDE columns | ❓ (ignore) | +| 9.h. CLUSTERED/NONCLUSTERED | 🤷🏼‍♂️ | +| 9.i. Functional index | ✅ | +| 9.j. FULLTEXT/SPATIAL index | 🤷🏼‍♂️ | +| 9.k. COLLATE | ❓ (ignore) | +| 9.l. COMMENT | ❓ (ignore) | +| 9.m. NULLS LAST/FIRST | ❓ (ignore) | +| 9.n. ASC/DESC | ❓ (ignore) | +| 10. DROP INDEX | | +| 10.a. Basic syntax | ❌ | +| 11. ALTER INDEX | | +| 11.a. RENAME | ❌ | +| 11.b. ALTER COLUMN | 🤷🏼‍♂️ | +| 12. CREATE VIEW | | +| 12.a. Basic syntax | ❌ | +| 13. Comment | | +| 13.a. Table comments | ✅ | +| 13.b. Column comments | ✅ | +| 13.c. COMMENT … IS NULL | ✅ | +| 13.d. Index comments | ❓ (ignore) | diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/snowflake/README.md b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/snowflake/README.md new file mode 100644 index 000000000..9e40f09b3 --- /dev/null +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/snowflake/README.md @@ -0,0 +1,157 @@ +# Snowflake model structure generator + +This folder houses the implementation of the Snowflake model structure generator based on the ANTLR4 parser. + +This file documents the current features and bugs of this model structure generator. + +In the below table, the following notation is used: + - ✅: Supported. + - 🤷🏼‍♂️: Invalid SQL in Snowflake. + - ❓: Valid SQL in Snowflake, the generator can still generate output but it ignores this syntax. + - ❌: Valid SQL in Snowflake, but the generator fails to generate any output. + +| SQL syntax | Snowflake | +|-------------------------------|---------------| +| 1. INSERT statement | | +| 1.a. Basic INSERT ... VALUES | ❌ | +| 1.b. INSERT ... SELECT | ❌ | +| 1.c. Multi-row INSERT | ✅ | +| 1.d. Common table expression (WITH clause) | ❌ | +| 1.e. Target table alias | 🤷🏼‍♂️ | +| 1.f. INSERT ... RETURNING/INSERT … OUTPUT | 🤷🏼‍♂️ | +| 1.g. INSERT ... ON CONFLICT (UPSERT)/INSERT ... ON DUPLICATE KEY/INSERT … IGNORE | 🤷🏼‍♂️ | +| 1.h. INSERT OVERWRITE | ❌ | +| 1.i. Multi-table INSERT | ❌ | +| 1.j. Conditional multi-table INSERT (WHEN/FIRST/ALL) | ❌ | +| 6. CREATE TABLE | | +| 6.a. Basic syntax | ✅ | +| 6.a.i. Enumerated data type | 🤷🏼‍♂️ | +| 6.a.ii. Data type of the form name(...) | ✅ | +| 6.a.iii. Data type of the form name\[...\] | 🤷🏼‍♂️ | +| 6.b. PRIMARY KEY | | +| 6.b.i. Inline PRIMARY KEY | ✅ | +| 6.b.ii. Out-of-line PRIMARY KEY | ✅ | +| 6.b.iii. Composite PRIMARY KEY | ✅ | +| 6.b.iv. Named PRIMARY KEY | ✅ | +| 6.b.v. Other options (deferrable, etc.) | ❓ (ignore the options) | +| 6.c. FOREIGN KEY | | +| 6.c.i. Inline FOREIGN KEY | ❌ (weird error: (undefined:undefined) undefined) | +| 6.c.ii. Out-of-line FOREIGN KEY | ❌ (weird error: (undefined:undefined) undefined) | +| 6.c.iii. Composite FOREIGN KEY | ❌ (weird error: (undefined:undefined) undefined) | +| 6.c.iv. Named FOREIGN KEY | ❌ (weird error: (undefined:undefined) undefined) | +| 6.c.v. ON UPDATE | ❌ (weird error: (undefined:undefined) undefined) | +| 6.c.vi. ON DELETE | ❌ (weird error: (undefined:undefined) undefined) | +| 6.c.vii. Other options (deferrable, etc.) | ❌ (weird error: (undefined:undefined) undefined) | +| 6.d. UNIQUE | | +| 6.d.i. Inline UNIQUE | ✅ | +| 6.d.ii. Out-of-line UNIQUE | ✅ | +| 6.d.iii. Composite UNIQUE | ✅ | +| 6.d.iv. Named UNIQUE | ❓ (ignore the name) | +| 6.d.v. Other options (deferrable, etc) | ❓ (ignore the option) | +| 6.d.vi. NULLS NOT DISTINCT | 🤷🏼‍♂️ | +| 6.d.vii. UNIQUE KEY/UNIQUE INDEX | 🤷🏼‍♂️ | +| 6.e. CHECK | | +| 6.e.i. Inline CHECK | ❌ (parse fail) | +| 6.e.ii. Out-of-line CHECK | ❌ (parse fail) | +| 6.e.iii. Named CHECK | ❌ (parse fail) | +| 6.e.iv. Other options (enforcement control, etc.) | ❌ (parse fail) | +| 6.f. DEFAULT values | | +| 6.f.i. Inline DEFAULT | ✅ | +| 6.f.ii. Out-of-line DEFAULT | ❌ (parse fail) | +| 6.f.iii. Functional DEFAULT | ✅ | +| 6.f.iv. Named DEFAULT | ❓ (ignore the name) | +| 6.g. NULL | ✅ | +| 6.h. NOT NULL | | +| 6.h.i. Inline NOT NULL | ✅ | +| 6.h.ii. Out-of-line NOT NULL | 🤷🏼‍♂️ | +| 6.h.iii. Named NOT NULL | 🤷🏼‍♂️ | +| 6.h.iv. Other options (deferrable, etc.) | ❓ (ignore) | +| 6.i. Indexes | | +| 6.i.i. Inline indexes | 🤷🏼‍♂️ | +| 6.i.ii. Out-of-line indexes | 🤷🏼‍♂️ | +| 6.i.iii. Named indexes | 🤷🏼‍♂️ | +| 6.i.iv. Multi-column indexes | 🤷🏼‍♂️ | +| 6.i.v. CLUSTERED/NONCLUSTERED | 🤷🏼‍♂️ | +| 6.i.vi. FULLTEXT | 🤷🏼‍♂️ | +| 6.i.vii. SPATIAL | 🤷🏼‍♂️ | +| 6.i.viii. Other options | 🤷🏼‍♂️ | +| 6.i.ix. USING HASH/BTREE | 🤷🏼‍♂️ | +| 6.j. Auto-increment | | +| 6.j.i. AUTO_INCREMENT | 🤷🏼‍♂️ | +| 6.j.ii. SERIAL/BIG SERIAL | 🤷🏼‍♂️ | +| 6.j.iii. IDENTITY | ✅ | +| 6.j.iv. Increment range | ✅ (only for IDENTITY()) | +| 6.j.v. GENERATED ... AS IDENTITY | ❌ (parse fail) | +| 6.k. Computed column | ❓ | +| 6.l. TEMPORARY tables | ❓ (No indication of temporary table) | +| 6.m. CREATE TABLE AS SELECT (CTAS) | ❌ | +| 6.n. Comments | | +| 6.n.i. Table comments | ✅ | +| 6.n.ii. Column comments | ❌ | +| 6.o. Other options (inheritance, UNLOGGED, partition, collate, etc.) | ❓ | +| 7. ALTER TABLE | | +| 7.a. ADD COLUMN | | +| 7.a.i. Type | ❌ | +| 7.a.ii. DEFAULT | ❌ | +| 7.a.iii. NOT NULL | ❌ | +| 7.a.iv. NULL | ❌ | +| 7.a.v. CHECK | ❌ | +| 7.a.vi. UNIQUE | ❌ | +| 7.a.vii. FOREIGN KEY | ❌ | +| 7.a.viii. PRIMARY KEY | ❌ | +| 7.a.ix. AUTOINCREMENT/SERIAL/BIGSERIAL/IDENTITY/GENERATED AS IDENTITY | ❌ | +| 7.a.x. Computed column | ❌ | +| 7.b. DROP COLUMN | ❌ | +| 7.c. ALTER COLUMN / MODIFY COLUMN | | +| 7.c.i. COMMENT | ❌ | +| 7.c.ii. Others | ❌ | +| 7.d. RENAME COLUMN | ❌ | +| 7.e. ADD CONSTRAINT | | +| 7.e.i. DEFAULT | ❌ (parse fail) | +| 7.e.ii. NOT NULL | ❌ | +| 7.e.iii. NULL | ❌ | +| 7.e.iv. named CHECK | 🤷🏼‍♂️ | +| 7.e.v. unnamed CHECK | 🤷🏼‍♂️ | +| 7.e.vi. named UNIQUE | ❓ (ignore name) | +| 7.e.vii. unnamed UNIQUE | ✅ | +| 7.e.viii. named PRIMARY KEY | ❌ | +| 7.e.ix. unnamed PRIMARY KEY | ❌ | +| 7.e.x. named FOREIGN KEY | ❓ (ignore name) | +| 7.e.xi. unnamed FOREIGN KEY | ✅ | +| 7.g. DROP CONSTRAINT | ❌ | +| 7.h. ALTER CONSTRAINT | ❌ | +| 7.i. RENAME TABLE | ❌ | +| 7.j. SET SCHEMA | ❌ | +| 7.k. ALTER INDEX | 🤷🏼‍♂️ | +| 7.l. DROP INDEX | 🤷🏼‍♂️ | +| 7.m. SET COMMENT/COMMENT = | 🤷🏼‍♂️ | +| 7.n. ADD INDEX | 🤷🏼‍♂️ | +| 8. DROP TABLE | | +| 8.a. Basic syntax | ❌ | +| 9. CREATE INDEX | 🤷🏼‍♂️ | +| 9.a. Basic syntax | ❌ | +| 9.b. Composite index | ❌ | +| 9.c. Named index | ❌ | +| 9.d. UNIQUE index | 🤷🏼‍♂️ | +| 9.e. Partial/Filtered index | 🤷🏼‍♂️ | +| 9.f. BTREE/HASH/GIST/BRIN/… index | 🤷🏼‍♂️ | +| 9.g. INCLUDE columns | 🤷🏼‍♂️ | +| 9.h. CLUSTERED/NONCLUSTERED | 🤷🏼‍♂️ | +| 9.i. Functional index | 🤷🏼‍♂️ | +| 9.j. FULLTEXT/SPATIAL index | 🤷🏼‍♂️ | +| 9.k. COLLATE | 🤷🏼‍♂️ | +| 9.l. COMMENT | 🤷🏼‍♂️ | +| 9.m. NULLS LAST/FIRST | 🤷🏼‍♂️ | +| 9.n. ASC/DESC | 🤷🏼‍♂️ | +| 10. DROP INDEX | 🤷🏼‍♂️ | +| 10.a. Basic syntax | 🤷🏼‍♂️ | +| 11. ALTER INDEX | 🤷🏼‍♂️ | +| 11.a. RENAME | 🤷🏼‍♂️ | +| 11.b. ALTER COLUMN | 🤷🏼‍♂️ | +| 12. CREATE VIEW | | +| 12.a. Basic syntax | ❌ | +| 13. Comment | | +| 13.a. Table comments | ❌ | +| 13.b. Column comments | ❌ | +| 13.c. COMMENT … IS NULL | 🤷🏼‍♂️ | +| 13.d. Index comments | 🤷🏼‍♂️ | From 7413c4c95f176725b31e3952a195481f9d9669d3 Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Fri, 7 Nov 2025 15:34:12 +0700 Subject: [PATCH 06/17] test(dbml-cli): update stdout.txt of oracle --- .../__test__/sql2dbml/filename --oracle --out-file/stdout.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt b/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt index af4e6e89f..791a1c0ab 100644 --- a/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt +++ b/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt @@ -1 +1 @@ -✔ Generated DBML file from SQL file (Oracle): schema.dbml + ✔ Generated DBML file from SQL file (Oracle): schema.dbml From 805f384a605dbfcc33b12e321b9aadff1c41ee77 Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Mon, 17 Nov 2025 11:48:18 +0700 Subject: [PATCH 07/17] chore: fix lint issues --- .../oraclesql/OracleSQLASTGen.js | 58 +++++++++---------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js index e6349e87e..42c9372eb 100644 --- a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js @@ -40,11 +40,9 @@ const COLUMN_CONSTRAINT_KIND = { CHECK: 'col_check', }; - - const findTable = (tables, schemaName, tableName) => { const realSchemaName = schemaName || null; - const table = tables.find(table => { + const table = tables.find((table) => { const targetSchemaName = table.schemaName || null; return targetSchemaName === realSchemaName && table.name === tableName; }); @@ -52,7 +50,7 @@ const findTable = (tables, schemaName, tableName) => { }; const findColumn = (table, columnName) => { - const column = table.fields.find(field => field.name === columnName); + const column = table.fields.find((field) => field.name === columnName); return column; }; @@ -125,7 +123,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { // )? EOF // ; visitSql_script (ctx) { - ctx.unit_statement()?.forEach(stmt => stmt.accept(this)); + ctx.unit_statement()?.forEach((stmt) => stmt.accept(this)); return this.data; } @@ -184,7 +182,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { }, [[], [], [], []]); this.data.refs.push(...flatten( - fieldsData.map(fieldData => fieldData.inline_refs.map(inlineRef => { + fieldsData.map((fieldData) => fieldData.inline_refs.map((inlineRef) => { inlineRef.endpoints[0].tableName = tableName; inlineRef.endpoints[0].schemaName = schemaName; inlineRef.endpoints[0].fieldNames = [fieldData.field.name]; @@ -192,7 +190,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { })), )); - this.data.refs.push(...tableRefs.map(tableRef => { + this.data.refs.push(...tableRefs.map((tableRef) => { tableRef.endpoints[0].tableName = tableName; tableRef.endpoints[0].schemaName = schemaName; return tableRef; @@ -201,7 +199,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { this.data.tables.push(new Table({ name: tableName, schemaName, - fields: fieldsData.map(fd => fd.field), + fields: fieldsData.map((fd) => fd.field), indexes, checks: tableChecks, })); @@ -213,7 +211,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { // ; visitRelational_table (ctx) { if (ctx.relational_property()) { - return ctx.relational_property().map(p => p.accept(this)); + return ctx.relational_property().map((p) => p.accept(this)); } return []; } @@ -250,7 +248,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { const name = last(ctx.column_name().accept(this)); const type = ctx.datatype()?.accept(this) || ctx.type_name()?.accept(this); if (!type) throw createCompilerError(ctx, 'Importing a column definition without a type is not supported'); - const constraints = (ctx.inline_constraint() || []).map(c => c.accept(this)).filter(Boolean); + const constraints = (ctx.inline_constraint() || []).map((c) => c.accept(this)).filter(Boolean); if (ctx.DEFAULT()) { const value = ctx.expression().accept(this); constraints.push({ @@ -270,7 +268,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { } const settings = { checks: [], inline_refs: [] }; - constraints.forEach(constraint => { + constraints.forEach((constraint) => { switch (constraint.type) { case COLUMN_CONSTRAINT_KIND.DEFAULT: settings.dbdefault = constraint.value.dbdefault; @@ -390,7 +388,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { // ; visitOut_of_line_constraint (ctx) { if (ctx.UNIQUE()) { - const columns = ctx.column_name().map(c => ({ value: last(c.accept(this)), type: CONSTRAINT_TYPE.COLUMN })); + const columns = ctx.column_name().map((c) => ({ value: last(c.accept(this)), type: CONSTRAINT_TYPE.COLUMN })); return { type: TABLE_CONSTRAINT_KIND.UNIQUE, value: new Index({ @@ -401,7 +399,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { }; } if (ctx.PRIMARY()) { - const columns = ctx.column_name().map(c => ({ value: last(c.accept(this)), type: CONSTRAINT_TYPE.COLUMN })); + const columns = ctx.column_name().map((c) => ({ value: last(c.accept(this)), type: CONSTRAINT_TYPE.COLUMN })); return { type: TABLE_CONSTRAINT_KIND.PK, value: new Index({ @@ -439,7 +437,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { // ; visitOut_of_line_ref_constraint (ctx) { const refName = ctx.constraint_name()?.accept(this); - const firstFieldNames = ctx.regular_id().map(c => c.accept(this)); + const firstFieldNames = ctx.regular_id().map((c) => c.accept(this)); const ref = ctx.references_clause().accept(this); ref.endpoints[0].fieldNames = firstFieldNames; if (refName) { @@ -455,7 +453,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { // : FOREIGN KEY paren_column_list references_clause on_delete_clause? // ; visitForeign_key_clause (ctx) { - const firstFieldNames = ctx.paren_column_list().accept(this).map(c => last(c)); + const firstFieldNames = ctx.paren_column_list().accept(this).map((c) => last(c)); const ref = ctx.references_clause().accept(this); ref.endpoints[0].fieldNames = firstFieldNames; if (ctx.on_delete_clause()) { @@ -475,7 +473,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { const names = ctx.tableview_name().accept(this); const refTableName = last(names); const refSchemaName = names.length > 1 ? names[names.length - 2] : undefined; - const secondFieldNames = ctx.paren_column_list().accept(this).map(c => last(c)); + const secondFieldNames = ctx.paren_column_list().accept(this).map((c) => last(c)); return new Ref({ endpoints: [ @@ -522,7 +520,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { } visitColumn_list (ctx) { - return ctx.column_name().map(c => c.accept(this)); + return ctx.column_name().map((c) => c.accept(this)); } // tableview_name @@ -547,7 +545,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { } visitColumn_name (ctx) { - return [ctx.identifier().accept(this)].concat(ctx.id_expression().map(i => i.accept(this))); + return [ctx.identifier().accept(this)].concat(ctx.id_expression().map((i) => i.accept(this))); } visitIdentifier (ctx) { @@ -560,7 +558,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { } visitType_name (ctx) { - const names = ctx.id_expression().map(i => i.accept(this)); + const names = ctx.id_expression().map((i) => i.accept(this)); const typeName = last(names); const schemaName = names.length > 1 ? names[names.length - 2] : undefined; return { @@ -679,12 +677,12 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { if (ctx.constraint_clauses() || ctx.column_clauses()) { const res = ctx.constraint_clauses() ? [{ column: null, constraints: ctx.constraint_clauses().accept(this) }] : ctx.column_clauses().accept(this); - res.forEach(r => { + res.forEach((r) => { const column = r.column !== null ? findColumn(table, r.column) : null; if (r.column !== null && !column) { throw new CompilerError(ctx.tableview_name(), `Column ${r.column} not found on Table ${tableName}`); } - r.constraints.forEach(c => handleConstraint.bind(this)(column, c)); + r.constraints.forEach((c) => handleConstraint.bind(this)(column, c)); }); } } @@ -706,10 +704,10 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { visitAdd_modify_drop_column_clauses (ctx) { const constraints = []; if (ctx.constraint_clauses()) { - constraints.push({ column: null, constraints: ctx.constraint_clauses().flatMap(c => c.accept(this)) }); + constraints.push({ column: null, constraints: ctx.constraint_clauses().flatMap((c) => c.accept(this)) }); } if (ctx.modify_column_clauses()) { - constraints.push(...ctx.modify_column_clauses().flatMap(c => c.accept(this))); + constraints.push(...ctx.modify_column_clauses().flatMap((c) => c.accept(this))); } return constraints; } @@ -724,7 +722,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { // ) // ; visitModify_column_clauses (ctx) { - return ctx.modify_col_properties().map(c => c.accept(this)); + return ctx.modify_col_properties().map((c) => c.accept(this)); } // modify_col_properties @@ -742,7 +740,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { }, }); } else if (ctx.inline_constraint()) { - constraints.push(...ctx.inline_constraint().map(c => c.accept(this))); + constraints.push(...ctx.inline_constraint().map((c) => c.accept(this))); } return { column: columnName, @@ -757,7 +755,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { // ; visitConstraint_clauses (ctx) { if (ctx.out_of_line_constraint()) { - return ctx.out_of_line_constraint().map(c => c.accept(this)).filter(Boolean); + return ctx.out_of_line_constraint().map((c) => c.accept(this)).filter(Boolean); } if (ctx.out_of_line_ref_constraint()) { return [ctx.out_of_line_ref_constraint().accept(this)]; @@ -805,7 +803,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { // ; visitTable_index_clause (ctx) { const names = ctx.tableview_name().accept(this); - const columns = ctx.index_expr().map(i => i.accept(this)); + const columns = ctx.index_expr().map((i) => i.accept(this)); return { names, columns, @@ -880,7 +878,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { const names = ctx.general_table_ref().accept(this); const tableName = last(names); const schemaName = names.length > 1 ? names[names.length - 2] : undefined; - const columns = ctx.paren_column_list() ? ctx.paren_column_list().accept(this).map(c => last(c)) : []; + const columns = ctx.paren_column_list() ? ctx.paren_column_list().accept(this).map((c) => last(c)) : []; return { tableName, schemaName, @@ -909,7 +907,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { visitValues_clause (ctx) { const expressions = ctx.expressions_().accept(this); return { - values: [expressions.map(e => ({ + values: [expressions.map((e) => ({ value: e.type !== CONSTRAINT_TYPE.COLUMN ? e.value : e.rawValue, type: e.type !== CONSTRAINT_TYPE.COLUMN ? e.type : DATA_TYPE.EXPRESSION, }))], @@ -917,7 +915,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { } visitExpressions_ (ctx) { - return ctx.expression().map(e => e.accept(this)); + return ctx.expression().map((e) => e.accept(this)); } visitId_expression (ctx) { From 0da7b0e64d32810a291c6db8ead9254d96d9ce9c Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Tue, 18 Nov 2025 14:06:31 +0700 Subject: [PATCH 08/17] doc: add comment to oraclesql --- .../src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.g4 | 5 +++++ .../src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.g4 | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.g4 b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.g4 index 1bd35eed0..7ed034919 100644 --- a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.g4 +++ b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlLexer.g4 @@ -1,3 +1,8 @@ +/* +Original: https://github.com/antlr/grammars-v4/blob/master/sql/plsql/PlSqlLexer.g4 +Last updated: 2025-11-01 +*/ + /** * Oracle(c) PL/SQL 11g Parser * diff --git a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.g4 b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.g4 index a37787868..723945897 100644 --- a/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.g4 +++ b/packages/dbml-core/src/parse/ANTLR/parsers/oraclesql/OracleSqlParser.g4 @@ -1,3 +1,8 @@ +/* +Original: https://github.com/antlr/grammars-v4/blob/master/sql/plsql/PlSqlParser.g4 +Last updated: 2025-11-01 +*/ + /** * Oracle(c) PL/SQL 11g Parser * From 496cb894fddbf3453aeba2133e69681876c6f6fe Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Tue, 18 Nov 2025 14:11:51 +0700 Subject: [PATCH 09/17] doc: add oracle option to sql2dbml in dbml-homepage --- dbml-homepage/docs/cli.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dbml-homepage/docs/cli.md b/dbml-homepage/docs/cli.md index 05a87103d..aa11f7054 100644 --- a/dbml-homepage/docs/cli.md +++ b/dbml-homepage/docs/cli.md @@ -65,7 +65,7 @@ $ dbml2sql [-o|--out-file ] ``` -## Convert a SQL file to DBML +## Convert a SQL file to DBML To convert SQL to DBML file: @@ -92,7 +92,7 @@ $ sql2dbml --mysql dump.sql -o mydatabase.dbml ```bash $ sql2dbml - [--mysql|--postgres|--mssql|--postgres-legacy|--mysql-legacy|--mssql-legacy|--snowflake] + [--mysql|--postgres|--mssql|--postgres-legacy|--mysql-legacy|--mssql-legacy|--snowflake|--oracle] [-o|--out-file ] ``` From 003b6b708e66df41f7e793daceff4bd2722aad16 Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Tue, 18 Nov 2025 14:15:22 +0700 Subject: [PATCH 10/17] doc: add oracle option to dbml/core markdown --- dbml-homepage/docs/js-module/core.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dbml-homepage/docs/js-module/core.md b/dbml-homepage/docs/js-module/core.md index 44cd660c8..ab3271a55 100644 --- a/dbml-homepage/docs/js-module/core.md +++ b/dbml-homepage/docs/js-module/core.md @@ -29,7 +29,7 @@ const { importer } = require('@dbml/core'); * **Arguments:** * ```{string} str``` - * ```{'mysql'|'mysqlLegacy'|'postgres'|'postgresLegacy'|'dbml'|'schemarb'|'mssql'|'mssqlLegacy'|'snowflake'|'json'} format``` + * ```{'mysql'|'mysqlLegacy'|'postgres'|'postgresLegacy'|'dbml'|'schemarb'|'mssql'|'mssqlLegacy'|'snowflake'|'json'|'oracle'} format``` * **Returns:** * ```{string} DBML``` @@ -120,7 +120,7 @@ const parser = new Parser(); * **Arguments:** * ```{string} str``` - * ```{'mysql'|'mysqlLegacy'|'postgres'|'postgresLegacy'|'dbml'|'schemarb'|'mssql'|'mssqlLegacy'|'snowflake'|'json'|'dbmlv2'} format``` + * ```{'mysql'|'mysqlLegacy'|'postgres'|'postgresLegacy'|'dbml'|'schemarb'|'mssql'|'mssqlLegacy'|'snowflake'|'json'|'dbmlv2'|'oracle'} format``` * **Returns:** ```Database``` object From 3671a50d3d2010eb022fa289484b6f3db1292736 Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Tue, 18 Nov 2025 14:44:41 +0700 Subject: [PATCH 11/17] test(dbml-cli): move some tests --- .../filename --oracle --out-file/expect-out-files/schema.dbml | 0 .../sql2dbml/filename --oracle --out-file/in-files/schema.sql | 0 .../sql2dbml/filename --oracle --out-file/options.json | 0 .../sql2dbml/filename --oracle --out-file/stdout.txt | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename packages/dbml-cli/{__test__ => __tests__}/sql2dbml/filename --oracle --out-file/expect-out-files/schema.dbml (100%) rename packages/dbml-cli/{__test__ => __tests__}/sql2dbml/filename --oracle --out-file/in-files/schema.sql (100%) rename packages/dbml-cli/{__test__ => __tests__}/sql2dbml/filename --oracle --out-file/options.json (100%) rename packages/dbml-cli/{__test__ => __tests__}/sql2dbml/filename --oracle --out-file/stdout.txt (100%) diff --git a/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/filename --oracle --out-file/expect-out-files/schema.dbml similarity index 100% rename from packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/expect-out-files/schema.dbml rename to packages/dbml-cli/__tests__/sql2dbml/filename --oracle --out-file/expect-out-files/schema.dbml diff --git a/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/in-files/schema.sql b/packages/dbml-cli/__tests__/sql2dbml/filename --oracle --out-file/in-files/schema.sql similarity index 100% rename from packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/in-files/schema.sql rename to packages/dbml-cli/__tests__/sql2dbml/filename --oracle --out-file/in-files/schema.sql diff --git a/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/options.json b/packages/dbml-cli/__tests__/sql2dbml/filename --oracle --out-file/options.json similarity index 100% rename from packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/options.json rename to packages/dbml-cli/__tests__/sql2dbml/filename --oracle --out-file/options.json diff --git a/packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/filename --oracle --out-file/stdout.txt similarity index 100% rename from packages/dbml-cli/__test__/sql2dbml/filename --oracle --out-file/stdout.txt rename to packages/dbml-cli/__tests__/sql2dbml/filename --oracle --out-file/stdout.txt From d40fcc983c7e1289e0cb9a8cddd065f78e354cfc Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Tue, 18 Nov 2025 14:54:12 +0700 Subject: [PATCH 12/17] fix(dbml-core): wrong use of CompilerError --- .../src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js index 42c9372eb..0887a83c8 100644 --- a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js @@ -680,7 +680,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { res.forEach((r) => { const column = r.column !== null ? findColumn(table, r.column) : null; if (r.column !== null && !column) { - throw new CompilerError(ctx.tableview_name(), `Column ${r.column} not found on Table ${tableName}`); + throw createCompilerError(ctx.tableview_name(), `Column ${r.column} not found on Table ${tableName}`); } r.constraints.forEach((c) => handleConstraint.bind(this)(column, c)); }); From 603659217701c4b4dc8d3a21f351a890b90a46f7 Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Tue, 18 Nov 2025 15:53:17 +0700 Subject: [PATCH 13/17] fix(dbml-core): improve oracle parser error handling --- .../ASTGeneration/oraclesql/OracleSQLASTGen.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js index 0887a83c8..e0de87ef5 100644 --- a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js @@ -86,11 +86,11 @@ const createCompilerError = (ctx, message) => { location: { start: { line: ctx.start.line, - column: ctx.start.charPositionInLine + 1, + column: ctx.start.column + 1, }, end: { line: ctx.stop.line, - column: ctx.stop.charPositionInLine + ctx.stop.text.length + 1, + column: ctx.stop.column + getOriginalText(ctx).length + 1, }, }, }]); @@ -583,7 +583,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { const schemaName = names.length > 1 ? names[names.length - 2] : undefined; const table = findTable(this.data.tables, schemaName, tableName); if (!table) { - throw createCompilerError(ctx.tableview_name(), `Table ${tableName} not found`); + throw createCompilerError(ctx.tableview_name(), `Table "${tableName}" not found`); } const note = ctx.quoted_string().accept(this); table.note = { value: note }; @@ -602,11 +602,11 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { const table = findTable(this.data.tables, schemaName, tableName); if (!table) { - throw createCompilerError(ctx.tableview_name(), `Table ${tableName} not found`); + throw createCompilerError(ctx.tableview_name(), `Table "${tableName}" not found`); } const field = findColumn(table, columnName); if (!field) { - throw createCompilerError(ctx.column_name(), `Column ${columnName} not found in table ${tableName}`); + throw createCompilerError(ctx.column_name(), `Column "${columnName}" not found in table "${tableName}"`); } const note = ctx.quoted_string().accept(this); field.note = { value: note }; @@ -622,7 +622,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { const schemaName = names.length > 1 ? names[names.length - 2] : undefined; const table = findTable(this.data.tables, schemaName, tableName); if (!table) { - throw createCompilerError(ctx.tableview_name(), `Table ${tableName} not found`); + throw createCompilerError(ctx.tableview_name(), `Table "${tableName}" not found`); } function handleConstraint (column, constraint) { @@ -680,7 +680,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { res.forEach((r) => { const column = r.column !== null ? findColumn(table, r.column) : null; if (r.column !== null && !column) { - throw createCompilerError(ctx.tableview_name(), `Column ${r.column} not found on Table ${tableName}`); + throw createCompilerError(ctx.tableview_name(), `Column "${r.column}" not found on Table "${tableName}"`); } r.constraints.forEach((c) => handleConstraint.bind(this)(column, c)); }); @@ -784,7 +784,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { const table = findTable(this.data.tables, schemaName, tableName); if (!table) { - throw createCompilerError(ctx.tableview_name(), `Table ${tableName} not found`); + throw createCompilerError(ctx.table_index_clause(), `Table ${tableName} not found`); } if (!table.indexes) table.indexes = []; From 913a985dae66da121bc4f71485ce6aa7e390dc5d Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Tue, 18 Nov 2025 16:00:41 +0700 Subject: [PATCH 14/17] test(dbml-cli): add oracle tests for custom errors --- .../expect-out-files/schema.dbml | 1 + .../in-files/schema.sql | 6 ++++++ .../options.json | 8 ++++++++ .../stdout.txt | 5 +++++ .../expect-out-files/schema.dbml | 1 + .../in-files/schema.sql | 2 ++ .../options.json | 8 ++++++++ .../stdout.txt | 5 +++++ .../expect-out-files/schema.dbml | 0 .../in-files/schema.sql | 6 ++++++ .../options.json | 8 ++++++++ .../stdout.txt | 5 +++++ .../expect-out-files/schema.dbml | 0 .../in-files/schema.sql | 5 +++++ .../options.json | 8 ++++++++ .../stdout.txt | 5 +++++ .../expect-out-files/schema.dbml | 0 .../in-files/schema.sql | 1 + .../options.json | 8 ++++++++ .../stdout.txt | 5 +++++ .../expect-out-files/schema.dbml | 0 .../in-files/schema.sql | 5 +++++ .../options.json | 8 ++++++++ .../stdout.txt | 5 +++++ .../ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js | 2 +- 25 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/expect-out-files/schema.dbml create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/in-files/schema.sql create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/options.json create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/stdout.txt create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/expect-out-files/schema.dbml create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/in-files/schema.sql create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/options.json create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/stdout.txt create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/expect-out-files/schema.dbml create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/in-files/schema.sql create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/options.json create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/stdout.txt create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/expect-out-files/schema.dbml create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/in-files/schema.sql create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/options.json create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/stdout.txt create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/expect-out-files/schema.dbml create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/in-files/schema.sql create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/options.json create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/stdout.txt create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/expect-out-files/schema.dbml create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/in-files/schema.sql create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/options.json create mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/stdout.txt diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/expect-out-files/schema.dbml new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/expect-out-files/schema.dbml @@ -0,0 +1 @@ + diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/in-files/schema.sql b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/in-files/schema.sql new file mode 100644 index 000000000..67f26541d --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/in-files/schema.sql @@ -0,0 +1,6 @@ +CREATE TABLE Users ( + id TEXT PRIMARY KEY +); + +ALTER TABLE Users +ADD CONSTRAINT unq UNIQUE (name); diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/options.json b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/options.json new file mode 100644 index 000000000..66e1dcdab --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/options.json @@ -0,0 +1,8 @@ +{ + "args": [ + "./in-files/schema.sql", + "--oracle", + "-o", + "./out-files/schema.dbml" + ] +} diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/stdout.txt new file mode 100644 index 000000000..9bd85757d --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/stdout.txt @@ -0,0 +1,5 @@ + ERROR: + You have a syntax error at "schema.sql" line 1 column 1. Column "name" do not exist in table "Users" + + A complete log can be found in: + /home/huydna/projects/dbml-release/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/dbml-error.log diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/expect-out-files/schema.dbml new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/expect-out-files/schema.dbml @@ -0,0 +1 @@ + diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/in-files/schema.sql b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/in-files/schema.sql new file mode 100644 index 000000000..587360854 --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/in-files/schema.sql @@ -0,0 +1,2 @@ +ALTER TABLE Users +ADD CONSTRAINT unq UNIQUE (id); diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/options.json b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/options.json new file mode 100644 index 000000000..66e1dcdab --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/options.json @@ -0,0 +1,8 @@ +{ + "args": [ + "./in-files/schema.sql", + "--oracle", + "-o", + "./out-files/schema.dbml" + ] +} diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/stdout.txt new file mode 100644 index 000000000..7b84dc5ad --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/stdout.txt @@ -0,0 +1,5 @@ + ERROR: + You have a syntax error at "schema.sql" line 1 column 13. Table "Users" not found + + A complete log can be found in: + /home/huydna/projects/dbml-release/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/dbml-error.log diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/expect-out-files/schema.dbml new file mode 100644 index 000000000..e69de29bb diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/in-files/schema.sql b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/in-files/schema.sql new file mode 100644 index 000000000..97f96c41f --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/in-files/schema.sql @@ -0,0 +1,6 @@ +CREATE TABLE Users ( + id TEXT +); + +COMMENT ON COLUMN Users.name IS 'fullname'; + diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/options.json b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/options.json new file mode 100644 index 000000000..66e1dcdab --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/options.json @@ -0,0 +1,8 @@ +{ + "args": [ + "./in-files/schema.sql", + "--oracle", + "-o", + "./out-files/schema.dbml" + ] +} diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/stdout.txt new file mode 100644 index 000000000..7dd85d5cd --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/stdout.txt @@ -0,0 +1,5 @@ + ERROR: + You have a syntax error at "schema.sql" line 5 column 19. Column "name" not found in table "Users" + + A complete log can be found in: + /home/huydna/projects/dbml-release/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/dbml-error.log diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/expect-out-files/schema.dbml new file mode 100644 index 000000000..e69de29bb diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/in-files/schema.sql b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/in-files/schema.sql new file mode 100644 index 000000000..9005f54b2 --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/in-files/schema.sql @@ -0,0 +1,5 @@ +CREATE TABLE Users ( + id TEXT +); + +COMMENT ON COLUMN Posts.title IS 'title'; diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/options.json b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/options.json new file mode 100644 index 000000000..66e1dcdab --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/options.json @@ -0,0 +1,8 @@ +{ + "args": [ + "./in-files/schema.sql", + "--oracle", + "-o", + "./out-files/schema.dbml" + ] +} diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/stdout.txt new file mode 100644 index 000000000..35bae6348 --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/stdout.txt @@ -0,0 +1,5 @@ + ERROR: + You have a syntax error at "schema.sql" line 5 column 19. Table "Posts" not found + + A complete log can be found in: + /home/huydna/projects/dbml-release/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/dbml-error.log diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/expect-out-files/schema.dbml new file mode 100644 index 000000000..e69de29bb diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/in-files/schema.sql b/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/in-files/schema.sql new file mode 100644 index 000000000..9b7003fab --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/in-files/schema.sql @@ -0,0 +1 @@ +CREATE UNIQUE INDEX idx ON Users(id); diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/options.json b/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/options.json new file mode 100644 index 000000000..66e1dcdab --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/options.json @@ -0,0 +1,8 @@ +{ + "args": [ + "./in-files/schema.sql", + "--oracle", + "-o", + "./out-files/schema.dbml" + ] +} diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/stdout.txt new file mode 100644 index 000000000..e443a7abd --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/stdout.txt @@ -0,0 +1,5 @@ + ERROR: + You have a syntax error at "schema.sql" line 1 column 28. Table Users not found + + A complete log can be found in: + /home/huydna/projects/dbml-release/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/dbml-error.log diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/expect-out-files/schema.dbml new file mode 100644 index 000000000..e69de29bb diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/in-files/schema.sql b/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/in-files/schema.sql new file mode 100644 index 000000000..fb69d51ff --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/in-files/schema.sql @@ -0,0 +1,5 @@ +CREATE TABLE Users ( + id TEXT +); + +COMMENT ON TABLE Posts IS 'id'; diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/options.json b/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/options.json new file mode 100644 index 000000000..66e1dcdab --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/options.json @@ -0,0 +1,8 @@ +{ + "args": [ + "./in-files/schema.sql", + "--oracle", + "-o", + "./out-files/schema.dbml" + ] +} diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/stdout.txt new file mode 100644 index 000000000..c675cbf9f --- /dev/null +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/stdout.txt @@ -0,0 +1,5 @@ + ERROR: + You have a syntax error at "schema.sql" line 5 column 18. Table "Posts" not found + + A complete log can be found in: + /home/huydna/projects/dbml-release/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/dbml-error.log diff --git a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js index e0de87ef5..373e668bb 100644 --- a/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js +++ b/packages/dbml-core/src/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.js @@ -602,7 +602,7 @@ export default class OracleSqlASTGen extends OracleSqlParserVisitor { const table = findTable(this.data.tables, schemaName, tableName); if (!table) { - throw createCompilerError(ctx.tableview_name(), `Table "${tableName}" not found`); + throw createCompilerError(ctx.column_name(), `Table "${tableName}" not found`); } const field = findColumn(table, columnName); if (!field) { From 96783d436eedaec29880e80ab5801c22398ec2d4 Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Tue, 18 Nov 2025 17:49:22 +0700 Subject: [PATCH 15/17] test(dbml-cli): fix test outputs --- .../stdout.txt | 1 - .../custom-error-alter-table-table-not-found --oracle/stdout.txt | 1 - .../stdout.txt | 1 - .../stdout.txt | 1 - .../stdout.txt | 1 - .../stdout.txt | 1 - 6 files changed, 6 deletions(-) diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/stdout.txt index 9bd85757d..44c6aeeb1 100644 --- a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/stdout.txt +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/stdout.txt @@ -2,4 +2,3 @@ You have a syntax error at "schema.sql" line 1 column 1. Column "name" do not exist in table "Users" A complete log can be found in: - /home/huydna/projects/dbml-release/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/dbml-error.log diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/stdout.txt index 7b84dc5ad..cb38a8da3 100644 --- a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/stdout.txt +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/stdout.txt @@ -2,4 +2,3 @@ You have a syntax error at "schema.sql" line 1 column 13. Table "Users" not found A complete log can be found in: - /home/huydna/projects/dbml-release/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/dbml-error.log diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/stdout.txt index 7dd85d5cd..419f00e74 100644 --- a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/stdout.txt +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/stdout.txt @@ -2,4 +2,3 @@ You have a syntax error at "schema.sql" line 5 column 19. Column "name" not found in table "Users" A complete log can be found in: - /home/huydna/projects/dbml-release/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/dbml-error.log diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/stdout.txt index 35bae6348..83735d036 100644 --- a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/stdout.txt +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/stdout.txt @@ -2,4 +2,3 @@ You have a syntax error at "schema.sql" line 5 column 19. Table "Posts" not found A complete log can be found in: - /home/huydna/projects/dbml-release/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/dbml-error.log diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/stdout.txt index e443a7abd..c2c2bbbc0 100644 --- a/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/stdout.txt +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/stdout.txt @@ -2,4 +2,3 @@ You have a syntax error at "schema.sql" line 1 column 28. Table Users not found A complete log can be found in: - /home/huydna/projects/dbml-release/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/dbml-error.log diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/stdout.txt b/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/stdout.txt index c675cbf9f..2b7129575 100644 --- a/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/stdout.txt +++ b/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/stdout.txt @@ -2,4 +2,3 @@ You have a syntax error at "schema.sql" line 5 column 18. Table "Posts" not found A complete log can be found in: - /home/huydna/projects/dbml-release/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/dbml-error.log From 1062d5dbed5b8bfba7f630cd0176edcb37f31c6e Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Tue, 18 Nov 2025 18:36:13 +0700 Subject: [PATCH 16/17] test(dbml-cli): remove expect out files of erroneous test cases --- .../expect-out-files/schema.dbml | 1 - .../expect-out-files/schema.dbml | 1 - .../expect-out-files/schema.dbml | 0 .../expect-out-files/schema.dbml | 0 .../expect-out-files/schema.dbml | 0 .../expect-out-files/schema.dbml | 0 6 files changed, 2 deletions(-) delete mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/expect-out-files/schema.dbml delete mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/expect-out-files/schema.dbml delete mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/expect-out-files/schema.dbml delete mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/expect-out-files/schema.dbml delete mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/expect-out-files/schema.dbml delete mode 100644 packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/expect-out-files/schema.dbml diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/expect-out-files/schema.dbml deleted file mode 100644 index 8b1378917..000000000 --- a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-column-not-found --oracle/expect-out-files/schema.dbml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/expect-out-files/schema.dbml deleted file mode 100644 index 8b1378917..000000000 --- a/packages/dbml-cli/__tests__/sql2dbml/custom-error-alter-table-table-not-found --oracle/expect-out-files/schema.dbml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-column-not-found --oracle/expect-out-files/schema.dbml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/custom-error-column-comment-table-not-found --oracle/expect-out-files/schema.dbml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/custom-error-create-index-table-not-found --oracle/expect-out-files/schema.dbml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/expect-out-files/schema.dbml b/packages/dbml-cli/__tests__/sql2dbml/custom-error-table-comment-table-not-found --oracle/expect-out-files/schema.dbml deleted file mode 100644 index e69de29bb..000000000 From 2242194a214069fb8a480084155e3433f5871cef Mon Sep 17 00:00:00 2001 From: Huy-DNA Date: Tue, 18 Nov 2025 19:03:59 +0700 Subject: [PATCH 17/17] test(dbml-cli): test expect.toContain error instead of syntax-error --- packages/dbml-cli/__tests__/cli.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/dbml-cli/__tests__/cli.test.js b/packages/dbml-cli/__tests__/cli.test.js index 21b7b6889..4bf7e398b 100644 --- a/packages/dbml-cli/__tests__/cli.test.js +++ b/packages/dbml-cli/__tests__/cli.test.js @@ -23,8 +23,8 @@ describe('@dbml/cli', () => { const expectStdout = fs.readFileSync(path.join(dirName, './stdout.txt'), 'utf-8'); const actualStdout = stripAnsi(stdout); - // folder name contains `syntax-error` - if (path.basename(dirName).includes('syntax-error')) { + // folder name contains `error` + if (path.basename(dirName).includes('error')) { expect(actualStdout).toContain(expectStdout); } else { expect(actualStdout).toBe(expectStdout);